ZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvQ1JUX2ZwMTAuYyBiL21pbmd3LXc2NC1jcnQvQ1JUX2ZwMTAuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMTJmZmE3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9DUlRfZnAxMC5jCkBAIC0wLDAgKzEsNCBAQAordm9pZCBfZnByZXNldCAodm9pZCkKKyAgeyBfX2FzbV9fICgiZm5pbml0IiApIDt9CisKK3ZvaWQgX19hdHRyaWJ1dGVfXyAoKGFsaWFzICgiX2ZwcmVzZXQiKSkpIGZwcmVzZXQodm9pZCk7CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L0NSVF9mcDguYyBiL21pbmd3LXc2NC1jcnQvQ1JUX2ZwOC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc4OWU3MWMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L0NSVF9mcDguYwpAQCAtMCwwICsxLDUgQEAKK2V4dGVybiB2b2lkICgqX2ltcF9fX2ZwcmVzZXQpKHZvaWQpIDsKK3ZvaWQgX2ZwcmVzZXQgKHZvaWQpCit7ICgqX2ltcF9fX2ZwcmVzZXQpKCk7IH0KKwordm9pZCBfX2F0dHJpYnV0ZV9fICgoYWxpYXMgKCJfZnByZXNldCIpKSkgZnByZXNldCh2b2lkKTsKZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvQ2hhbmdlTG9nIGIvbWluZ3ctdzY0LWNydC9DaGFuZ2VMb2cKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTExZjkzOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvQ2hhbmdlTG9nCkBAIC0wLDAgKzEsNTEgQEAKKzIwMDctMDctMjUgIEthaSBUaWV0eiAgPGthaS50aWV0ekBvbmV2aXNpb24uY29tPgorCisJKiBtaW5nd19oZWxwZXJzLmM6IE5ldyBmaWxlIGZvciBsaWJtaW5ndzMyLmEuCisJKiBjcnRkbGwuYywgY3J0ZXhlLmM6IChfX2R5bl90bHNfaW5pdF9jYWxsYmFjaywKKwlfZGVjb2RlX3BvaW50ZXIsIF9lbmNvZGVfcG9pbnRlciwgbWluZ3dfYXBwX3R5cGUpOiBNb3ZlZAorCWltcGxlbWVudGF0aW9uIHRvIG1pbmd3X2hlbHBlcnMuYy4KKworMjAwNy0wNy0yNSAgS2FpIFRpZXR6ICA8a2FpLnRpZXR6QG9uZXZpc2lvbi5jb20+CisKKwkqIGNydGJlZ2luLmMsIGNydGVuZC5jOiBOZXcuCisJKiBNYWtmaWxlOiBnZW5lcmF0ZSBjcnRiZWdpbi5vIGFuZCBjcnRlbmQubyBvYmplY3RzLgorCSogQ1JUX2ZwMTAuYzogUmVuYW1lZCBhY2NvcmRpbmcgdG8gTWFrZWZpbGUuCisJKiBDUlRfZnA4LmM6IFJlbmFtZWQgYWNjb3JkaW5nIHRvIE1ha2VmaWxlLgorCisyMDA3LTA3LTE5ICBLYWkgVGlldHogIDxrYWkudGlldHpAb25ldmlzaW9uLmNvbT4KKworCSogTWFrZWZpbGU6IEFkZCBjcnQwX2MuYyBhbmQgY3J0MF93LmMKKwkqIGNydDBfYy5jOiBOZXcuCisJKiBjcnQwX3cuYzogTmV3LgorCSogY3J0ZXhlLmM6IENvbWJpbmUgd2luL2NvbnNvbGUgZm9yIHNha2Ugb2YgLW1jb25zb2xlIGFuZAorCS1td2luZG93cyBhbmQgbW92ZSBkZWZhdWx0IG1haW4gZm9yIHdpbiBpbnRvIGxpYm1pbmd3MzIuYS4KKworMjAwNy0wNy0xOSAgTmlnaHRTdHJpa2UgIDxuaWdodHN0cmlrZUBnbWFpbC5jb20+CisKKwkqIE1ha2VmaWxlOiBSZXBsYWNlIEVYRSBieSBFWEVFWFQgYXMgYXV0b2NvbmYgZGVmaW5lcyBpdC4KKworMjAwNy0wNy0xOCAgS2FpIFRpZXR6ICA8a2FpLnRpZXR6QG9uZXZpc2lvbi5jb20+CisKKwkqIE1ha2VmaWxlOiBFbmFibGUgd2luZG93cyBzdGFydXAuCisJQWRkIG1pc2Mvd2Fzc2VydC5jIHRvIGxpYm1pbmd3ZXguYS4KKwkqIG1pc2Mvd2Fzc2VydC5jOiBBZGQgX3dhc3NlcnQgbWV0aG9kLgorCisyMDA3LTA3LTE3ICBLYWkgVGlldHogIDxrYWkudGlldHpAb25ldmlzaW9uLmNvbT4KKworCSogY3J0ZXhlLmM6IERlZmluZSBhcmd2LCBlbnZwIHVuaWNvZGUgc3BlY2lmaWMuCisJQ29ycmVjdGVkIGRlZmluaXRpb24gb2YgX19pbml0ZW52IGFuZCBfX3dpbml0ZW52LgorCSogaW50ZXJuYWwuaDogQ29ycmVjdGVkIGRlZmluaXRpb24gb2YgX19pbml0ZW52IGFuZCBfX3dpbml0ZW52LgorCisyMDA3LTA3LTE3ICBQcm9mZXNzb3IgQnJpYW4gUmlwbGV5ICA8cmlwbGV5QHN0YXRzLm94LmFjLnVrPgorCisJKiBNYWtlZmlsZTogUmVwbGFjZWQgaGFyZGNvZGVkIC91c3IvbG9jYWwgYnkgJHByZWZpeC4KKwlSZW1vdmVkIGluc3RhbGwgb2Ygbm9uZSBleGlzdGluZyBkb2NkaXIuCisKKzIwMDctMDctMTUgIEthaSBUaWV0eiAgPGthaS50aWV0ekBvbmV2aXNpb24uY29tPgorCisJKiBDb250cmlidXRlZCBpbml0aWFsIGNydCBzZXQuCisKKwwKK0xvY2FsIFZhcmlhYmxlczoKK3ZlcnNpb24tY29udHJvbDogbmV2ZXIKK0VuZDoKZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvRElTQ0xBSU1FUiBiL21pbmd3LXc2NC1jcnQvRElTQ0xBSU1FUgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wYjhiNTM0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9ESVNDTEFJTUVSCkBAIC0wLDAgKzEsMTIgQEAKKy8qKg0KKyAqIERJU0NMQUlNRVINCisgKiBUaGlzIGZpbGUgaGFzIG5vIGNvcHlyaWdodCBhc3NpZ25lZCBhbmQgaXMgcGxhY2VkIGluIHRoZSBQdWJsaWMgRG9tYWluLg0KKyAqIFRoaXMgZmlsZSBpcyBhIHBhcnQgb2YgdGhlIHc2NCBtaW5ndy1ydW50aW1lIHBhY2thZ2UuDQorICoNCisgKiBUaGUgdzY0IG1pbmd3LXJ1bnRpbWUgcGFja2FnZSBhbmQgaXRzIGNvZGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCANCisgKiB3aWxsIGJlIHVzZWZ1bCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFkuICBBTEwgV0FSUkFOVElFUywgRVhQUkVTU0VEIE9SIA0KKyAqIElNUExJRUQgQVJFIEhFUkVCWSBESVNDTEFJTUVELiAgVGhpcyBpbmNsdWRlcyBidXQgaXMgbm90IGxpbWl0ZWQgdG8gDQorICogd2FycmFudGllcyBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuDQorICoNCisgKiBZb3UgYXJlIGZyZWUgdG8gdXNlIHRoaXMgcGFja2FnZSBhbmQgaXRzIGNvZGUgd2l0aG91dCBsaW1pdGF0aW9uLg0KKyAqLw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvTWFrZWZpbGUgYi9taW5ndy13NjQtY3J0L01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUwYzZlNDUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L01ha2VmaWxlCkBAIC0wLDAgKzEsNDYyIEBACisjIFRoaXMgbWFrZWZpbGUgcmVxdWlyZXMgR05VIG1ha2UuCisKK1BBQ0tBR0UgPSB4ODZfNjQtbWluZ3ctcnVudGltZQorVkVSU0lPTiA9IDMuOQorQ1lHUkVMRUFTRSA9IDEKKworVlBBVEggPSAuOi4vbWF0aDouL2NvbXBsZXg6Li9zdGRpbzouL21pc2M6Li90ZXJtaW9zCitzcmNkaXIgPSAuCitvYmpkaXIgPSAuCisKK2hvc3RfYWxpYXMgPSB4ODZfNjQtcGMtbWluZ3czMgorYnVpbGRfYWxpYXMgPSB4ODZfNjQtcGMtbWluZ3czMgordGFyZ2V0X2FsaWFzID0geDg2XzY0LXBjLW1pbmd3MzIKKyMgcHJlZml4ID0gL3ZvbC9tCitwcmVmaXggPSAvdXNyL2xvY2FsCitjb25mX3ByZWZpeCA9ICQocHJlZml4KQorRVhFRVhUPS5leGUKKworcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IHMseCx4LAorZXhlY19wcmVmaXggPSAkKHByZWZpeCkKK2JpbmRpciA9ICQoZXhlY19wcmVmaXgpL2JpbgorbGliZGlyID0gJChleGVjX3ByZWZpeCkvbGliCit0b29sZGlyOj0kKGV4ZWNfcHJlZml4KS8kKHRhcmdldF9hbGlhcykKK2RhdGFkaXIgPSAkKHByZWZpeCkvc2hhcmUKK2luZm9kaXIgPSAkKHByZWZpeCkvaW5mbworaW5jbHVkZWRpciA9ICQocHJlZml4KS8kKHRhcmdldF9hbGlhcykvaW5jbHVkZQoraW5zdF9iaW5kaXI6PSQodG9vbGRpcikvYmluCitpbnN0X2luY2x1ZGVkaXI6PSQodG9vbGRpcikvaW5jbHVkZS9taW5ndworaW5zdF9saWJkaXI6PSQodG9vbGRpcikvbGliL21pbmd3CitpbnN0X2RvY2Rpcjo9JCh0b29sZGlyKS9zaGFyZS9kb2MvbWluZ3ctcnVudGltZQorCisjIFRoZSBNaW5ndyBoZWFkZXJzIGFyZSBpbnN0YWxsZWQgdW5kZXIgYSBzdWJkaXJlY3Rvcnkgb2YgCisjICQodG9vbGRpcikvaW5jbHVkZSB3aGVuIGNvbmZpZ3VyaW5nIGluIEN5Z3dpbi4KK0hFQURFUl9TVUJESVIgPSAKKworU0hFTEwgPSAvYmluL3NoCisKK0lOU1RBTEwgPSAvdXNyL2Jpbi9pbnN0YWxsIC1jCitJTlNUQUxMX0RBVEEgPSAkKElOU1RBTEwpIC1tIDY0NAorSU5TVEFMTF9QUk9HUkFNID0gJChJTlNUQUxMKQorbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpIG1raW5zdGFsbGRpcnMKKworQ0MgOj0gJChwcmVmaXgpL2Jpbi94ODZfNjQtcGMtbWluZ3czMi1nY2MkKEVYRUVYVCkKK292ZXJyaWRlIENDIDo9ICQoZmlsdGVyLW91dCAtTCUgLUIlLCQoc2hlbGwgZWNobyAkKENDKSB8IHNlZCAtZSAncyVcKC1pc3lzdGVtXHwtaXdpdGhwcmVmaXhiZWZvcmVcKSAgKlteIF0qXCggXHwkJFwpJSAlZycpKQorIyBGSVhNRTogV2hpY2ggaXMgaXQsIENDIG9yIENDX0ZPUl9UQVJHRVQ/CitDQ19GT1JfVEFSR0VUID0gJChDQykKK0FTX0ZPUl9UQVJHRVQgPSAkKEFTKQorQ0ZMQUdTID0gLWcgLU8yIC1JLiAtRF9DUlRCTEQgLURfU1lTQ1JUPTEgLURDUlRETEw9MSAtRFdJTkhFQVA9MQorQ1hYRkxBR1MgPSAkKENGTEFHUykKKworIyBjb21waWxpbmcgd2l0aCBDeWd3aW4/CitNTk9fQ1lHV0lOID0gCitpZmRlZiBNTk9fQ1lHV0lOCisgICBzdWJkaXJmb3JsaWI9L21pbmd3CitlbHNlCisgICBsaWJkaXI9CitlbmRpZgorCisjIE5lZWRlZCBmb3IgdGhyZWFkaW5nIGRsbC4KKworIyBWYXJpb3VzIGxpYnJhcmllcy4KK0xJQk1fQT1saWJtLmEKKworVzMyQVBJX0lOQ0xVREUgPSAKK0lOQ0xVREVTKz0gLUkuCitBTExfQ0ZMQUdTID0gJChDRkxBR1MpICQoVzMyQVBJX0lOQ0xVREUpICQoSU5DTFVERVMpICQoTU5PX0NZR1dJTikKK0FMTF9DWFhGTEFHUyA9ICQoQ1hYRkxBR1MpICQoVzMyQVBJX0lOQ0xVREUpICQoSU5DTFVERVMpIC1ub3N0ZGluYysrICQoTU5PX0NZR1dJTikKKworQVMgPSAkKHByZWZpeCkvYmluL3g4Nl82NC1wYy1taW5ndzMyLWFzJChFWEVFWFQpCitBUiA9ICQocHJlZml4KS9iaW4veDg2XzY0LXBjLW1pbmd3MzItYXIkKEVYRUVYVCkKK0xEID0gJChwcmVmaXgpL2Jpbi94ODZfNjQtcGMtbWluZ3czMi1sZCQoRVhFRVhUKQorQVJfRkxBR1MgPSByY3YKK1JBTkxJQiA9ICQocHJlZml4KS9iaW4veDg2XzY0LXBjLW1pbmd3MzItcmFubGliJChFWEVFWFQpCitETExUT09MID0gJChwcmVmaXgpL2Jpbi94ODZfNjQtcGMtbWluZ3czMi1kbGx0b29sJChFWEVFWFQpCitETExUT09MRkxBR1MgPSAKK0RMTFRPT0xfRk9SX1RBUkdFVCA9ICQoRExMVE9PTCkKK0RMTFRPT0xfRkxBR1MgPSAtLWFzICQoQVNfRk9SX1RBUkdFVCkKK0RMTFdSQVAgPSAkKHByZWZpeCkvYmluL3g4Nl82NC1wYy1taW5ndzMyLWRsbHRvb2wkKEVYRUVYVCkKK0RMTFdSQVBfRk9SX1RBUkdFVCA9ICQoRExMV1JBUCkKK0RMTFdSQVBfRkxBR1MgPSAtLWRsbHRvb2wgJChETExUT09MKSAtLWFzICQoQVMpIC0tZHJpdmVyLW5hbWUgJChDQykKKworVEFSID0gdGFyCitUQVJGTEFHUyA9IHoKK1RBUkZJTEVFWFQgPSAudGFyLmd6CisKK1NVQkRJUlMgOj0gbWtsaWJzCisKK0ZMQUdTX1RPX1BBU1M6PVwKKwlBUz0iJChBUykiIFwKKwlDQz0iJChDQykiIFwKKwlDRkxBR1M9IiQoQ0ZMQUdTKSAkKENGTEFHU19DT01NT04pICQoQ0ZMQUdTX0NPTkZJRykiIFwKKwlDWFhGTEFHUz0iJChDWFhGTEFHUykgJChDRkxBR1NfQ09NTU9OKSAkKENGTEFHU19DT05GSUcpIiBcCisJRVhFX0xERkxBR1M9IiQoRVhFX0xERkxBR1MpIiBcCisJQVI9IiQoQVIpIiBcCisJUkFOTElCPSIkKFJBTkxJQikiIFwKKwlMRD0iJChMRCkiIFwKKwlETExUT09MPSIkKERMTFRPT0wpIiBcCisJZXhlY19wcmVmaXg9IiQoZXhlY19wcmVmaXgpIiBcCisJYmluZGlyPSIkKGJpbmRpcikiIFwKKwlsaWJkaXI9IiQobGliZGlyKSIgXAorCXRvb2xkaXI9IiQodG9vbGRpcikiIFwKKwlkYXRhZGlyPSIkKGRhdGFkaXIpIiBcCisJaW5mb2Rpcj0iJChpbmZvZGlyKSIgXAorCWluY2x1ZGVkaXI9IiQoaW5jbHVkZWRpcikiIFwKKwlpbnN0X2JpbmRpcj0iJChpbnN0X2JpbmRpcikiIFwKKwlpbnN0X2luY2x1ZGVkaXI9IiQoaW5zdF9pbmNsdWRlZGlyKSIgXAorCWluc3RfbGliZGlyPSIkKGluc3RfbGliZGlyKSIgXAorCWluc3RfZG9jZGlyPSIkKGluc3RfZG9jZGlyKSIgXAorCXByZWZpeD0iJChwcmVmaXgpIiBcCisJdGFyZ2V0X2FsaWFzPSIkKHRhcmdldF9hbGlhcykiIFwKKwlUQVI9IiQoVEFSKSIgXAorCVRBUkZMQUdTPSIkKFRBUkZMQUdTKSIgXAorCVRBUkZJTEVFWFQ9IiQoVEFSRklMRUVYVCkiCisKK0NSVDBTID0gY3J0MS5vIGNydDIubyBkbGxjcnQxLm8gZGxsY3J0Mi5vIFwKKwlDUlRfZnA4Lm8gQ1JUX2ZwMTAubyB0eHRtb2RlLm8gYmlubW9kZS5vIGNydGJlZ2luLm8gY3J0ZW5kLm8KK01JTkdXX09CSlMgPSBjcnQwX2MubyBjcnQwX3cubyBkbGxfYXJndi5vICBnY2NtYWluLm8gXAorCSAgICAgQ1JUX2ZwMTAubyBcCisJICAgICBwc2V1ZG8tcmVsb2MubyBwc2V1ZG8tcmVsb2MtbGlzdC5vIHBlc2VjdC5vIGNpbml0ZXhlLm8gXAorCSAgICAgbmF0c3RhcnQubyBnc19zdXBwb3J0Lm8gYXRvbmV4aXQubyBkbGxtYWluLm8gXAorCSAgICAgd2lsZGNhcmQubyBtZXJyLm8gXAorCSAgICAgZGxsYXJndi5vIFwKKwkgICAgIGNoYXJtYXgubyB4dHh0bW9kZS5vIFwKKwkgICAgIHRsc3N1cC5vIHhuY29tbW9kLm8gX25ld21vZGUubyBcCisJICAgICB4dGhkbG9jLm8gbWluZ3dfaGVscGVycy5vCisKK01BVEhfT0JKUyA9IFwKKwlhY29zZi5vIGFjb3NsLm8gYXNpbmYubyBhc2lubC5vIGF0YW4yZi5vIGF0YW4ybC5vIFwKKwlhdGFuZi5vIGF0YW5sLm8gY2JydC5vIGNicnRmLm8gY2JydGwubyBjZWlsZi5vIGNlaWxsLm8gXAorCWNlcGhlc19lbWF0aC5vIFwKKwljb3B5c2lnbi5vIGNvcHlzaWduZi5vIGNvcHlzaWdubC5vIGNvc2YubyBjb3NoZi5vIGNvc2hsLm8gY29zbC5vIFwKKwllcmZsLm8gZXhwMi5vIGV4cDJmLm8gZXhwMmwubyBleHBmLm8gZXhwbC5vIGV4cG0xLm8gZXhwbTFsLm8gZXhwbTFmLm8gXAorCWZhYnMubyBmYWJzZi5vIGZhYnNsLm8gXAorCWZkaW0ubyBmZGltZi5vIGZkaW1sLm8gZmxvb3JmLm8gZmxvb3JsLm8gZm1hLm8gZm1hZi5vIGZtYWwubyBcCisJZm1heC5vIGZtYXhmLm8gZm1heGwubyBmbWluLm8gZm1pbmYubyBmbWlubC5vIGZtb2RmLm8gXAorCWZtb2RsLm8gZnBfY29uc3RzLm8gZnBfY29uc3RzZi5vIGZwX2NvbnN0c2wubyBcCisJZnBjbGFzc2lmeS5vIGZwY2xhc3NpZnlmLm8gZnBjbGFzc2lmeWwubyBcCisJZnJleHBmLm8gZnJleHBsLm8gZnVjb20ubyBoeXBvdGYubyBoeXBvdGwubyBpbG9nYi5vIGlsb2diZi5vIFwKKwlpbG9nYmwubyBpc25hbi5vIGlzbmFuZi5vIGlzbmFubC5vIGxkZXhwZi5vIGxkZXhwbC5vIFwKKwlsZ2FtbWEubyBsZ2FtbWFmLm8gbGdhbW1hbC5vIGxscmludC5vIFwKKwlsbHJpbnRmLm8gbGxyaW50bC5vIGxscm91bmQubyBsbHJvdW5kZi5vIGxscm91bmRsLm8gXAorCWxvZzEwZi5vIGxvZzEwbC5vIGxvZzFwLm8gbG9nMXBmLm8gbG9nMXBsLm8gbG9nMi5vIGxvZzJmLm8gXAorCWxvZzJsLm8gbG9nYi5vIGxvZ2JmLm8gbG9nYmwubyBsb2dmLm8gbG9nbC5vIGxyaW50Lm8gbHJpbnRmLm8gXAorCWxyaW50bC5vIGxyb3VuZC5vIGxyb3VuZGYubyBscm91bmRsLm8gbW9kZmYubyBtb2RmbC5vIFwKKwluZWFyYnlpbnQubyBuZWFyYnlpbnRmLm8gbmVhcmJ5aW50bC5vIFwKKwluZXh0YWZ0ZXJmLm8gbmV4dGFmdGVybC5vIG5leHR0b3dhcmRmLm8gbmV4dHRvd2FyZC5vIFwKKwlwb3dmLm8gcG93aS5vIHBvd2lmLm8gcG93aWwubyBwb3dsLm8gXAorCXJlbWFpbmRlci5vIHJlbWFpbmRlcmYubyByZW1haW5kZXJsLm8gcmVtcXVvLm8gXAorCXJlbXF1b2YubyByZW1xdW9sLm8gcmludC5vIHJpbnRmLm8gcmludGwubyByb3VuZC5vIHJvdW5kZi5vIFwKKwlyb3VuZGwubyBzY2FsYm4ubyBzY2FsYm5mLm8gc2NhbGJubC5vIHNfZXJmLm8gc2ZfZXJmLm8gXAorCXNpZ25iaXQubyBzaWduYml0Zi5vIHNpZ25iaXRsLm8gc2luZi5vIHNpbmhmLm8gc2luaGwubyBzaW5sLm8gXAorCXNxcnRmLm8gc3FydGwubyB0YW5mLm8gdGFuaGYubyB0YW5obC5vIHRhbmwubyB0Z2FtbWEubyBcCisJdGdhbW1hZi5vIHRnYW1tYWwubyB0cnVuYy5vIHRydW5jZi5vIHRydW5jbC5vIFwKKwlhY29zaC5vIGFjb3NoZi5vIGFjb3NobC5vIGFzaW5oLm8gYXNpbmhmLm8gYXNpbmhsLm8gXAorCWF0YW5oLm8gYXRhbmhmLm8gYXRhbmhsLm8KK0ZFTlZfT0JKUyA9IGZlc2V0cm91bmQubyAgZmVnZXRyb3VuZC5vIFwKKwlmZWdldGVudi5vIGZlc2V0ZW52Lm8gZmV1cGRhdGVlbnYubyBcCisJZmVjbGVhcmV4Y2VwdC5vIGZlaG9sZGV4Y2VwdC5vIGZlZ2V0ZXhjZXB0ZmxhZy5vIFwKKwlmZXJhaXNlZXhjZXB0Lm8gZmV0ZXN0ZXhjZXB0Lm8gZmVzZXRleGNlcHRmbGFnLm8KKworQ09NUExFWF9PQkpTID0gXAorCWNhYnMubyBjYWJzZi5vIGNhYnNsLm8gY2Fjb3MubyBjYWNvc2YubyBjYWNvc2wubyBjYWNvc2gubyBcCisJY2Fjb3NoZi5vIGNhY29zaGwubyBjYXJnLm8gY2FyZ2YubyBjYXJnbC5vIGNhc2luLm8gY2FzaW5mLm8gXAorCWNhc2lubC5vIGNhc2luaC5vIGNhc2luaGYubyBjYXNpbmhsLm8gY2F0YW4ubyBjYXRhbmYubyBjYXRhbmwubyBcCisJY2F0YW5oLm8gY2F0YW5oZi5vIGNhdGFuaGwubyBjY29zLm8gY2Nvc2YubyBjY29zbC5vIGNjb3NoLm8gXAorCWNjb3NoZi5vIGNjb3NobC5vIGNleHAubyBjZXhwZi5vIGNleHBsLm8gY2ltYWcubyBjaW1hZ2YubyBcCisJY2ltYWdsLm8gY2xvZy5vIGNsb2dmLm8gY2xvZ2wubyBjcG93Lm8gY3Bvd2YubyBjcG93bC5vIGNwcm9qLm8gXAorCWNwcm9qZi5vIGNwcm9qbC5vIGNyZWFsLm8gY3JlYWxmLm8gY3JlYWxsLm8gY3Npbi5vIGNzaW5mLm8gXAorCWNzaW5sLm8gY3NpbmgubyBjc2luaGYubyBjc2luaGwubyBjc3FydC5vIGNzcXJ0Zi5vIGNzcXJ0bC5vIFwKKwljdGFuLm8gY3RhbmYubyBjdGFubC5vIGN0YW5oLm8gY3RhbmhmLm8gY3RhbmhsLm8KKworU1RESU9fT0JKUyA9IFwKKwlmb3BlbjY0Lm8gZnNlZWtvNjQubyBmdGVsbG82NC5vIGxzZWVrNjQubyBcCisJc25wcmludGYubyAgdnNucHJpbnRmLm8gc253cHJpbnRmLm8gdnNud3ByaW50Zi5vIFwKKwl2ZnNjYW5mLm8gdmZ3c2NhbmYubyB2c2NhbmYubyB2c3NjYW5mLm8gdnN3c2NhbmYubyB2d3NjYW5mLm8KKworU1RETElCX1NUVUJfT0JKUyA9IFwKKwlsbHRvYS5vIHVsbHRvYS5vIFwKKwlsbHRvdy5vIHVsbHRvdy5vIFwKKwlhdG9sbC5vIHd0b2xsLm8gXAorCXN0cnRvZi5vIHdjc3RvZi5vIFwKKwlfRXhpdC5vCisKK0ZFTlZfT0JKUyA9IGZlc2V0cm91bmQubyAgZmVnZXRyb3VuZC5vIFwKKwlmZWdldGVudi5vIGZlc2V0ZW52Lm8gZmV1cGRhdGVlbnYubyBcCisJZmVjbGVhcmV4Y2VwdC5vIGZlaG9sZGV4Y2VwdC5vIGZlZ2V0ZXhjZXB0ZmxhZy5vIFwKKwlmZXJhaXNlZXhjZXB0Lm8gZmV0ZXN0ZXhjZXB0Lm8gZmVzZXRleGNlcHRmbGFnLm8KKworUkVQTEFDRV9PQkpTID0gXAorCW1pbmd3LWFsaWduZWQtbWFsbG9jLm8gbWluZ3ctZnNlZWsubworCitROF9PQkpTID0gXAorCWZ3aWRlLm8gaW1heGFicy5vIGltYXhkaXYubyBtYnNpbml0Lm8gXAorCXN0cnRvaW1heC5vIHN0cnRvdW1heC5vIHdjc3RvaW1heC5vIHdjc3RvdW1heC5vIFwKKwl3bWVtY2hyLm8gd21lbWNtcC5vIHdtZW1jcHkubyB3bWVtbW92ZS5vIHdtZW1zZXQubyBcCisJd2N0cmFucy5vIHdjdHlwZS5vIHdjcnRvbWIubyB3Y3RvYi5vIG1icnRvd2MubyBidG93Yy5vIHNldGVycm5vLm8gXAorCXNsZWVwLm8gYWxhcm0ubyBnZXRsb2dpbi5vIGdldHRpbWVvZmRheS5vIHdhc3NlcnQubworCitTVERMSUJfT0JKUyA9IFwKKwlzdHJ0b2xkLm8gd2NzdG9sZC5vCisKK01JTkdXRVhfT0JKUyA9IGRpcmVudC5vIHdkaXJlbnQubyBnZXRvcHQubyBmdHJ1bmNhdGUubworCitNT0xEX09CSlMgPSBpc2FzY2lpLm8gaXNjc3ltLm8gaXNjc3ltZi5vIHRvYXNjaWkubyBcCisJc3RyY2FzZWNtcC5vIHN0cm5jYXNlY21wLm8gd2NzY21waS5vCisKK1RFUk1JT1NfT0JKUyA9IFwKKwljZm1ha2VyYXcubyBjZnNldHNwZWVkLm8gc3BlZWQubyB0Y2RyYWluLm8gdGNmbG93Lm8gdGNmbHVzaC5vIFwKKwl0Y2dldGF0dHIubyB0Y2dldHBncnAubyB0Y2dldHNpZC5vIHRjc2VuZGJyay5vIHRjc2V0YXR0ci5vIHRjc2V0cGdycC5vIGlvY3RsLm8gXAorCXR0eW5hbWUubworCitMSUJTID0gbGliY3J0ZGxsLmEgXAorICAgICAgIGxpYm1zdmNydC5hIFwKKyAgICAgICBsaWJtc3ZjcjgwLmEgXAorICAgICAgIGxpYm1pbmd3MzIuYSBcCisgICAgICAgbGlibW9sZG5hbWUuYSBcCisgICAgICAgbGlibWluZ3dleC5hIFwKKyAgICAgICAkKExJQk1fQSkKKworRExMUyA9IAorCitTUkNESVNUX0ZJTEVTID0gZGxsX2FyZ3YuYyBDaGFuZ2VMb2cgXAorUkVBRE1FIFRPRE8gY29uZmlnLmd1ZXNzIGNvbmZpZy5zdWIgY29uZmlndXJlIGNvbmZpZ3VyZS5pbiBcCitjcnQxLmMgY3J0ZGxsLmRlZiBcCitnY2NtYWluLmMgaW5pdC5jIGluc3RhbGwtc2ggamFtZmlsZSBta2luc3RhbGxkaXJzIFwKK25hdHN0YXJ0LmMgZ3Nfc3VwcG9ydC5jIGF0b25leGl0LmMgXAorbXRoci5jIG10aHJfaW5pdC5jIG10aHJfc3R1Yi5jIHJlYWRtZS50eHQgXAoraXNhc2NpaS5jIGlzY3N5bS5jIGlzY3N5bWYuYyB0b2FzY2lpLmMgXAorc3RyY2FzZWNtcC5jIHN0cm5jYXNlY21wLmMgd2NzY21waS5jIFwKK0NSVF9mcDguYyBDUlRfZnAxMC5jIHRlc3RfaGVhZGVycy5jIHR4dG1vZGUuYyBiaW5tb2RlLmMgcHNldWRvLXJlbG9jLmMgXAorcHNldWRvLXJlbG9jLWxpc3QuYyBhdG9uZXhpdC5jIGRsbG1haW4uYyBcCit3aWxkY2FyZC5jIG1lcnIuYyBcCitkbGxhcmd2LmMgY2hhcm1heC5jIFwKK3Rsc3N1cC5jIHh0eHRtb2RlLmMgeG5jb21tb2QuYyBfbmV3bW9kZS5jIFwKK3h0aGRsb2MuYyBjcnQwX2MuYyBjcnQwX3cuYyBtaW5nd19oZWxwZXJzLmMgXAorRElTQ0xBSU1FUiBDT05UUklCVVRPUlMKKworCithbGxfZGxsc19ob3N0ID0gYWxsX2RsbHNfaG9zdAoraW5zdGFsbF9kbGxzX2hvc3QgPSBpbnN0YWxsX2RsbHNfaG9zdAorCithbGw6ICQoQ1JUMFMpICQoTElCUykgJChhbGxfZGxsc19ob3N0KQorCUAkKE1BS0UpIHN1YmRpcnMgRE89JEAgJChGTEFHU19UT19QQVNTKQorCithbGxfZGxsc19ob3N0OiAkKERMTFMpCisKK2luc3RhbGxfZGxsc19ob3N0OgorCWZvciBpIGluICQoRExMUyk7IGRvIFwKKwkJJChJTlNUQUxMX1BST0dSQU0pICQkaSAkKGluc3RfYmluZGlyKS8kJGkgOyBcCisJZG9uZQorCitfbGlibV9kdW1teS5vOgorCXJtIC1mIF9saWJtX2R1bW15LmMKKwllY2hvICJzdGF0aWMgaW50IF9fbWluZ3dfbGlibV9kdW1teTsiID4gX2xpYm1fZHVtbXkuYworCSQoQ0MpIC1jICQoQUxMX0NGTEFHUykgX2xpYm1fZHVtbXkuYworCXJtIC1mIF9saWJtX2R1bW15LmMKKworbGlibS5hOiBfbGlibV9kdW1teS5vCisJJChBUikgcmMgJEAgX2xpYm1fZHVtbXkubworCSQoUkFOTElCKSAkQAorCitETExfT0ZJTEVTICAgICAgICA9IG10aHIubyBtdGhyX2luaXQubworRExMX0NDX1NUVUZGICAgICAgPSAtQi4vIC1tZGxsICQoTU5PX0NZR1dJTikgLVdsLC0taW1hZ2UtYmFzZSwweDZGQkMwMDAwIFwKKwkJICAgIC1XbCwtLWVudHJ5LF9EbGxNYWluQ1JUU3RhcnR1cEAyNCBcCisgICAgICAgICAgICAgICAgICAgICQoRExMX09GSUxFUykgXAorCQkgICAgLUxtaW5nd2V4CisKK2xpYm1pbmd3MzIuYTogJChNSU5HV19PQkpTKQorCSQoQVIpIHJjICRAICQoTUlOR1dfT0JKUykKKwkkKFJBTkxJQikgJEAKKworbXN2Y3J0LmRlZiBcCisJJChDQykgLURSVU5USU1FPSQoYmFzZW5hbWUgJChub3RkaXIgJEApKSBcCisJCS1EX18kKGJhc2VuYW1lICQobm90ZGlyICRAKSlfXz0xIFwKKwkJLURfX01TVkNSVF9fIC1DIC1FIC1QIFwKKwkJLXhjLWhlYWRlciAkPyA+ICRACisKK21zdmNyODAuZGVmIFwKKwkkKENDKSAtRFJVTlRJTUU9JChiYXNlbmFtZSAkKG5vdGRpciAkQCkpIFwKKwkJLURfXyQoYmFzZW5hbWUgJChub3RkaXIgJEApKV9fPTEgXAorCQktRF9fTVNWQ1JUX18gLUMgLUUgLVAgXAorCQkteGMtaGVhZGVyICQ/ID4gJEAKKworbGlibW9sZG5hbWUuYTogbW9sZG5hbWUtbXN2Y3J0LmRlZiAkKE1PTERfT0JKUykKKwkkKERMTFRPT0wpIC0tYXMgJChBUykgLWsgLVUJXAorCQktLWRsbG5hbWUgbXN2Y3J0LmRsbAlcCisJCS0tZGVmIG1vbGRuYW1lLW1zdmNydC5kZWYJXAorCQktLW91dHB1dC1saWIgJEAKKwkkKEFSKSByYyAkQCAkKE1PTERfT0JKUykKKwkkKFJBTkxJQikgJEAKKworbGlibWluZ3dleC5hOiAkKE1JTkdXRVhfT0JKUykgJChNQVRIX09CSlMpICQoQ09NUExFWF9PQkpTKSAkKFNURElPX09CSlMpICQoU1RETElCX1NUVUJfT0JKUykgJChTVERMSUJfT0JKUykgJChGRU5WX09CSlMpICQoUkVQTEFDRV9PQkpTKSAkKFE4X09CSlMpCisJJChBUikgcmMgJEAgJChNSU5HV0VYX09CSlMpICQoTUFUSF9PQkpTKSAkKENPTVBMRVhfT0JKUykgJChTVERJT19PQkpTKSAkKFNURExJQl9TVFVCX09CSlMpICQoU1RETElCX09CSlMpICQoRkVOVl9PQkpTKSAkKFJFUExBQ0VfT0JKUykgJChROF9PQkpTKQorCSQoUkFOTElCKSAkQAorCisjIFRoZSBzcGVjaWFsIHJ1bGVzIGFyZSBuZWNlc3NhcnkuCitjcnQxLm86CisJJChDQykgLWMgLURfX0NSVERMTF9fIC1VX19NU1ZDUlRfXyAkKEFMTF9DRkxBR1MpICQ8IC1vICRACisKK2NydDIubzoKKwkkKENDKSAtYyAtRF9fTVNWQ1JUX18gLVVfX0NSVERMTF9fICQoQUxMX0NGTEFHUykgJDwgLW8gJEAKKworZGxsY3J0MS5vOgorCSQoQ0MpIC1jIC1EX19DUlRETExfXyAtVV9fTVNWQ1JUX18gJChBTExfQ0ZMQUdTKSAkPCAtbyAkQAorCitkbGxjcnQyLm86CisJJChDQykgLWMgLURfX01TVkNSVF9fIC1VX19DUlRETExfXyAkKEFMTF9DRkxBR1MpICQ8IC1vICRACisKK2NydGJlZ2luLm86CisJJChDQykgLWMgJChBTExfQ0ZMQUdTKSAkPCAtbyAkQAorCitjcnRlbmQubzoKKwkkKENDKSAtYyAkKEFMTF9DRkxBR1MpICQ8IC1vICRACisKK1RFU1RfSF9PUFRJT05TID0gJChBTExfQ0ZMQUdTKSAtV2FsbCAtVyAtV3N5c3RlbS1oZWFkZXJzIC1jIFwKKwkkKHNyY2RpcikvdGVzdF9oZWFkZXJzLmMgLW8gdGVzdF9oZWFkZXJzLm8KKworLlBIT05ZOiB0ZXN0X2hlYWRlcnMKK3Rlc3RfaGVhZGVyczoKKwlAZWNobyAiVGVzdGluZyBydW50aW1lIGhlYWRlcnMuLi4iCisJQGZvciBsYW5nIGluIGMgYysrIG9iamVjdGl2ZS1jIDsgZG8gXAorCQllY2hvICIkJGxhbmcgLi4uIjsgXAorCQkkKENDKSAteCQkbGFuZyAgJChURVNUX0hfT1BUSU9OUykgOyBcCisJCWVjaG8gIiQkbGFuZyAtYW5zaSI7IFwKKwkJJChDQykgLXgkJGxhbmcgLWFuc2kgJChURVNUX0hfT1BUSU9OUykgOyBcCisJZG9uZQorIyBzcGVjaWZ5IC1zdGQ9eHggb25seSBmb3IgQworCUBmb3Igc3RkIGluIGdudTg5IGdudTk5IGM4OSBjOTkgOyBkbyBcCisJCWVjaG8gInN0ZCA9ICQkc3RkIjsgXAorCQkkKENDKSAtc3RkPSQkc3RkICAkKFRFU1RfSF9PUFRJT05TKSA7IFwKKwlkb25lCisKKwlAcm0gLWYgdGVzdF9oZWFkZXJzLm8KKworY2xlYW46CisJLXJtIC1mICoubyAqLmEgKn4gY29yZSBhLm91dAorCUAkKE1BS0UpIHN1YmRpcnMgRE89JEAgJChGTEFHU19UT19QQVNTKQorCitkaXN0Y2xlYW46IGNsZWFuCisJQCQoTUFLRSkgc3ViZGlycyBETz0kQCAkKEZMQUdTX1RPX1BBU1MpCisJLXJtIC1mIGNvbmZpZy5jYWNoZSBjb25maWcuc3RhdHVzIGNvbmZpZy5sb2cgCitkaXN0ZGlyPSQoUEFDS0FHRSktJChWRVJTSU9OKQorCisgIFRBUkZMQUdTID0gagorICBUQVJGSUxFRVhUID0gLnRhci5iejIKKworaWZuZXEgKCwkKGZpbmRzdHJpbmcgbWluZ3csICQodGFyZ2V0X2FsaWFzKSkpCisgICAgZGlzdF9wcmVmaXggPQorZWxzZQorICAgIGRpc3RfcHJlZml4ID0gJChjb25mX3ByZWZpeCkKK2VuZGlmCisKK2Rpc3Q6IHNyY2Rpc3QgYmluZGlzdAorCitzcmNkaXN0OgorCXJtIC1yZiAkKGRpc3RkaXIpCisJbWtkaXIgJChkaXN0ZGlyKQorCWNobW9kIDc1NSAkKGRpc3RkaXIpCisJZm9yIGkgaW4gJChTUkNESVNUX0ZJTEVTKTsgZG8gXAorCQljcCAtcCAkKHNyY2RpcikvJCRpICQoZGlzdGRpcikvJCRpIDsgXAorCWRvbmUKKwlmb3IgaSBpbiAkKFNVQkRJUlMpOyBkbyBcCisJCShjZCAkJGk7ICQoTUFLRSkgZGlzdGRpcj0uLi8kKGRpc3RkaXIpIGRpc3QpOyBcCisJZG9uZQorI0ZJWE1FIHRoaXMgbmVlZHMgdG8gYmUgZG9uZSB3aXRoIFNVQkRJUlMgYW5kIE1ha2VmaWxlcy4KKwlta2RpciAkKGRpc3RkaXIpL2luY2x1ZGUKKwlta2RpciAkKGRpc3RkaXIpL2luY2x1ZGUvc3lzCisJY3AgJChzcmNkaXIpL2luY2x1ZGUvKi5oICQoZGlzdGRpcikvaW5jbHVkZS8KKwljcCAkKHNyY2RpcikvaW5jbHVkZS9zeXMvKi5oICQoZGlzdGRpcikvaW5jbHVkZS9zeXMvCisjZW5kIEZJWE1FCisJcm0gLWYgJChkaXN0ZGlyKS1zcmMudGFyLmd6CisJJChUQVIpICQoVEFSRkxBR1MpY2YgJChkaXN0ZGlyKS1zcmMkKFRBUkZJTEVFWFQpICQoZGlzdGRpcikKKworCitiaW5kaXN0OgorCXJtIC1yZiAkKGRpc3RkaXIpCisJbWtkaXIgJChkaXN0ZGlyKQorCWNobW9kIDc1NSAkKGRpc3RkaXIpCisJJChNQUtFKSBpbnN0YWxsIHByZWZpeD0kKHNoZWxsIHB3ZCkvJChkaXN0ZGlyKSQoZGlzdF9wcmVmaXgpCisJcm0gLWYgJChkaXN0ZGlyKS50YXIuZ3oKKwljZCAkKGRpc3RkaXIpOyBcCisJJChUQVIpICQoVEFSRkxBR1MpY2YgLi4vJChkaXN0ZGlyKSQoVEFSRklMRUVYVCkgKgorCitzbmFwc2hvdDogCisJbWFrZSBkaXN0IFNOQVBEQVRFPSQoc2hlbGwgZGF0ZSAnKyVZJW0lZCcpCisKK2luZm86CisKK2luZm8taHRtbDoKKworaW5zdGFsbC1pbmZvOiBpbmZvCisKK2luc3RhbGwtZGlyczoKKwkkKG1raW5zdGFsbGRpcnMpICQoaW5zdF9iaW5kaXIpCisJJChta2luc3RhbGxkaXJzKSAkKGluc3RfaW5jbHVkZWRpcikKKwkkKG1raW5zdGFsbGRpcnMpICQoaW5zdF9saWJkaXIpCisJJChta2luc3RhbGxkaXJzKSAkKGluc3RfZG9jZGlyKQorCitpbnN0YWxsOiBhbGwgaW5zdGFsbC1kaXJzICQoaW5zdGFsbF9kbGxzX2hvc3QpCisJZm9yIGkgaW4gJChMSUJTKTsgZG8gXAorCQkkKElOU1RBTExfREFUQSkgJCRpICQoaW5zdF9saWJkaXIpLyQkaSA7IFwKKwlkb25lCisJZm9yIGkgaW4gJChDUlQwUyk7IGRvIFwKKwkJJChJTlNUQUxMX0RBVEEpICQkaSAkKGluc3RfbGliZGlyKS8kJGkgOyBcCisJZG9uZQorCWZvciBzdWIgaW4gLiBzeXMgOyBkbyBcCisJCWRzdGRpcj0kKGluc3RfaW5jbHVkZWRpcikvJCRzdWIgOyBcCisJCSQobWtpbnN0YWxsZGlycykgJCRkc3RkaXIgOyBcCisJCWZvciBpIGluICQoc3JjZGlyKS9pbmNsdWRlLyQkc3ViLyouaCA7IGRvIFwKKwkJICAkKElOU1RBTExfREFUQSkgJCRpICQkZHN0ZGlyL2BiYXNlbmFtZSAkJGlgIDsgXAorCQlkb25lIDsgXAorCWRvbmUKKwlAJChNQUtFKSBzdWJkaXJzIERPPSRAICQoRkxBR1NfVE9fUEFTUykKKworc3ViZGlyczogJChTVUJESVJTKQorCUB0cnVlCisKKyMgVGhlIC4gaXMgaGVyZSBiZWNhdXNlIFNVQkRJUlMgbWF5IGJlIGVtcHR5CisKKy4gJChTVUJESVJTKTogZm9yY2UKKwlAaWYgWyAtZCAuLyRAIF07IHRoZW4gXAorCSAgZWNobyAiTWFraW5nICQoRE8pIGluICRALi4uIiA7IFwKKwkgIGlmIChyb290bWU9YHB3ZGAvIDsgZXhwb3J0IHJvb3RtZSA7IFwKKwkgICAgcm9vdHNyYz1gY2QgJChzcmNkaXIpOyBwd2RgLyA7IGV4cG9ydCByb290c3JjIDsgXAorCSAgICBjZCAuLyRAOyBcCisJICAgICQoTUFLRSkgJChGTEFHU19UT19QQVNTKSAkKERPKSkgOyB0aGVuIHRydWUgOyBcCisJICBlbHNlIGV4aXQgMSA7IGZpIDsgXAorCWVsc2UgdHJ1ZSA7IGZpIDsgXAorCitmb3JjZToKKworIworIyBEZXBlbmRhbmNpZXMKKyMKK2xpYmNydGRsbC5hOiBjcnRkbGwuZGVmCitsaWJtc3ZjcnQuYTogbXN2Y3J0LmRlZgorbGlibXN2Y3I4MC5hOiBtc3ZjcjgwLmRlZgorZGxsX2FyZ3YubzogZGxsX2FyZ3YuYworY3J0YmVnaW4ubzogY3J0YmVnaW4uYworY3J0ZW5kLm86IGNydGVuZC5jCitjcnQxLm86IGNydGV4ZS5jCitjcnQyLm86IGNydGV4ZS5jCitkbGxjcnQxLm86IGNydGRsbC5jCitkbGxjcnQyLm86IGNydGRsbC5jCitjdHlwZV9vbGQubzogY3R5cGVfb2xkLmMKK3N0cmluZ19vbGQubzogc3RyaW5nX29sZC5jCitDUlRfZnA4Lm86IENSVF9mcDguYworQ1JUX2ZwMTAubzogQ1JUX2ZwMTAuYworCisKK2NvbmZpZy5zdGF0dXM6IGNvbmZpZ3VyZQorCSQoU0hFTEwpIGNvbmZpZy5zdGF0dXMgLS1yZWNoZWNrCisKKy5TVUZGSVhFUzogLnkgJChTVUZGSVhFUykgLmNjIC5vIC5kZWYgLmEKKworLmMubzoKKwkkKENDKSAtYyAkKEFMTF9DRkxBR1MpICQ8IC1vICRACisKKworbGliJS5hOiAlLmRlZgorCSQoRExMVE9PTCkgLS1hcz0kKEFTKSAtayAtLWRsbG5hbWUgJCouZGxsIC0tb3V0cHV0LWxpYiBsaWIkKi5hIC0tZGVmICQ8CisKZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvX25ld21vZGUuYyBiL21pbmd3LXc2NC1jcnQvX25ld21vZGUuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYjY5NjIxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9fbmV3bW9kZS5jCkBAIC0wLDAgKzEgQEAKK2ludCBfbmV3bW9kZSA9IDA7CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2F0b25leGl0LmMgYi9taW5ndy13NjQtY3J0L2F0b25leGl0LmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2ViODM0OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvYXRvbmV4aXQuYwpAQCAtMCwwICsxLDUxIEBACisjdW5kZWYgQ1JURExMCisjaWZuZGVmIF9ETEwKKyNkZWZpbmUgX0RMTAorI2VuZGlmCisKKyNpbmNsdWRlIDxvc2NhbGxzLmg+CisjaW5jbHVkZSA8aW50ZXJuYWwuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxjcnRkZWZzLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8d2luZG93cy5oPgorCisjZGVmaW5lIF9FWElUX0xPQ0sxIDgKKworICB2b2lkIF9fY2RlY2wgX2xvY2sgKGludCBfRmlsZSk7CisgIHZvaWQgX19jZGVjbCBfdW5sb2NrIChpbnQgX0ZpbGUpOworICAKK19QVkZWICpfX29uZXhpdGJlZ2luOworX1BWRlYgKl9fb25leGl0ZW5kOworCitleHRlcm4gX0NSVElNUCBfb25leGl0X3QgX19kbGxvbmV4aXQgKF9vbmV4aXRfdCwgX1BWRlYqKiwgX1BWRlYqKik7CitleHRlcm4gX29uZXhpdF90IChfX2NkZWNsICpfaW1wX19fb25leGl0KSAoX29uZXhpdF90IGZ1bmMpOworCisvKiBDaG9vc2UgYSBkaWZmZXJlbnQgbmFtZSB0byBwcmV2ZW50IG5hbWUgY29uZmxpY3RzLiBUaGUgQ1JUIG9uZSB3b3JrcyBmaW5lLiAgKi8KK19vbmV4aXRfdCBfX2NkZWNsIG1pbmd3X29uZXhpdChfb25leGl0X3QgZnVuYykKK3sKKyAgX1BWRlYgKm9uZXhpdGJlZ2luOworICBfUFZGViAqb25leGl0ZW5kOworICBfb25leGl0X3QgcmV0dmFsOworCisgIG9uZXhpdGJlZ2luID0gKF9QVkZWICopIF9kZWNvZGVfcG9pbnRlciAoX19vbmV4aXRiZWdpbik7CisKKyAgaWYgKG9uZXhpdGJlZ2luID09IChfUFZGViAqKSAtMSkKKyAgICByZXR1cm4gKCpfaW1wX19fb25leGl0KSAoZnVuYyk7CisgIF9sb2NrIChfRVhJVF9MT0NLMSk7CisgIG9uZXhpdGJlZ2luID0gKF9QVkZWICopIF9kZWNvZGVfcG9pbnRlciAoX19vbmV4aXRiZWdpbik7CisgIG9uZXhpdGVuZCA9IChfUFZGViAqKSBfZGVjb2RlX3BvaW50ZXIgKF9fb25leGl0ZW5kKTsKKyAgCisgIHJldHZhbCA9IF9fZGxsb25leGl0IChmdW5jLCAmb25leGl0YmVnaW4sICZvbmV4aXRlbmQpOworCisgIF9fb25leGl0YmVnaW4gPSAoX1BWRlYgKikgX2VuY29kZV9wb2ludGVyIChvbmV4aXRiZWdpbik7CisgIF9fb25leGl0ZW5kID0gKF9QVkZWICopIF9lbmNvZGVfcG9pbnRlciAob25leGl0ZW5kKTsKKyAgX3VubG9jayAoX0VYSVRfTE9DSzEpOworICByZXR1cm4gcmV0dmFsOworfQorCitpbnQgX19jZGVjbAorYXRleGl0IChfUFZGViBmdW5jKQoreworICByZXR1cm4gKG1pbmd3X29uZXhpdCgoX29uZXhpdF90KWZ1bmMpID09IE5VTEwpID8gLTEgOiAwOworfQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9iaW5tb2RlLmMgYi9taW5ndy13NjQtY3J0L2Jpbm1vZGUuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNWFlYzI0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9iaW5tb2RlLmMKQEAgLTAsMCArMSw0IEBACisjZGVmaW5lIFNQRUNJQUxfQ1JURVhFCisKKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jaGFybWF4LmMgYi9taW5ndy13NjQtY3J0L2NoYXJtYXguYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMjRiM2Q5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jaGFybWF4LmMKQEAgLTAsMCArMSwxMCBAQAorI2luY2x1ZGUgPHNlY3RfYXR0cmlicy5oPgorI2luY2x1ZGUgPGludGVybmFsLmg+CisKK2ludCBfX2xjb252X2luaXQgKHZvaWQpOworCitpbnQgbWluZ3dfaW5pdGNoYXJtYXggPSAwOworCitpbnQgX2NoYXJtYXggPSAyNTU7CisKK19DUlRBTExPQygiLkNSVCRYSUMiKSBzdGF0aWMgX1BJRlYgcGluaXQgPSBfX2xjb252X2luaXQ7CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2Npbml0ZXhlLmMgYi9taW5ndy13NjQtY3J0L2Npbml0ZXhlLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjY5ZWViZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY2luaXRleGUuYwpAQCAtMCwwICsxLDggQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGludGVybmFsLmg+CisjaW5jbHVkZSA8c2VjdF9hdHRyaWJzLmg+CisKK19DUlRBTExPQygiLkNSVCRYSUEiKSBfUFZGViBfX3hpX2FbXSA9IHsgTlVMTCB9OworX0NSVEFMTE9DKCIuQ1JUJFhJWiIpIF9QVkZWIF9feGlfeltdID0geyBOVUxMIH07CitfQ1JUQUxMT0MoIi5DUlQkWENBIikgX1BWRlYgX194Y19hW10gPSB7IE5VTEwgfTsKK19DUlRBTExPQygiLkNSVCRYQ1oiKSBfUFZGViBfX3hjX3pbXSA9IHsgTlVMTCB9OwpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NhYnMuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYWJzLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDk1ZjE4NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYWJzLmMKQEAgLTAsMCArMSw3IEBACisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorDQorZG91YmxlIGNhYnMgKGRvdWJsZSBjb21wbGV4IFopDQorew0KKyAgcmV0dXJuIF9oeXBvdCAoIF9fcmVhbF9fIFosICBfX2ltYWdfXyBaKTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NhYnNmLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Fic2YuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MTY0M2ZhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NhYnNmLmMKQEAgLTAsMCArMSw3IEBACisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorDQorZmxvYXQgY2Fic2YgKGZsb2F0IGNvbXBsZXggWikNCit7DQorICByZXR1cm4gKGZsb2F0KSBfaHlwb3QgKCBfX3JlYWxfXyBaLCAgX19pbWFnX18gWik7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYWJzbC5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NhYnNsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmJlMmIzYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYWJzbC5jCkBAIC0wLDAgKzEsNyBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8Y29tcGxleC5oPg0KKw0KK2xvbmcgZG91YmxlIGNhYnNsIChsb25nIGRvdWJsZSBjb21wbGV4IFopDQorew0KKyAgcmV0dXJuICBoeXBvdGwgKCBfX3JlYWxfXyBaLCAgX19pbWFnX18gWik7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYWNvcy5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NhY29zLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTI1MDM3YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYWNvcy5jCkBAIC0wLDAgKzEsMTIgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisNCisvKiBjYWNvcyAoIFogKSA9ICBwaS8yIC0gY2FzaW4gKCBaICkgKi8NCisNCitkb3VibGUgY29tcGxleCBjYWNvcyAoZG91YmxlIGNvbXBsZXggWikNCit7DQorICBkb3VibGUgY29tcGxleCBSZXMgID0gY2FzaW4gKFopOw0KKyAgX19yZWFsX18gUmVzID0gTV9QSV8yIC0gX19yZWFsX18gUmVzOw0KKyAgX19pbWFnX18gUmVzID0gLSBfX2ltYWdfXyBSZXM7DQorICByZXR1cm4gUmVzOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Fjb3NmLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Fjb3NmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmYzMjQ4ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYWNvc2YuYwpAQCAtMCwwICsxLDY0IEBACisvKg0KKyAgIGNhY29zZi5jDQorICAgQ29udHJpYnV0ZWQgYnkgRGFubnkgU21pdGgNCisgICAyMDA0LTEyLTI0DQorKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorDQorI2lmIDANCisvKiBjYWNvcyAoWikgPSAtSSAqIGNsb2coWiArIEkgKiBjc3FydCgxIC0gWiAqIFopKSAqLw0KKw0KK2Zsb2F0IGNvbXBsZXggY2Fjb3MgKGZsb2F0ICBjb21wbGV4IFopDQorew0KKyAgZmxvYXQgY29tcGxleCBSZXM7DQorICBmbG9hdCB4LCB5Ow0KKw0KKyAgeCA9IF9fcmVhbF9fIFo7DQorICB5ID0gX19pbWFnX18gWjsNCisNCisgIGlmICh5ID09IDAuMGYpDQorICAgIHsNCisgICAgICBfX3JlYWxfXyBSZXMgPSBhY29zZiAoeCk7DQorICAgICAgX19pbWFnX18gUmVzID0gMC4wZjsNCisgICAgfQ0KKw0KKyAgZWxzZQ0KKyAgICB7DQorICAgICAgZmxvYXQgY29tcGxleCBaWjsNCisgICAgICAvKiBaICogWiA9ICgoeCAtIHkpICogKHggKyB5KSkgKyAoMi4wICogeCAqIHkpICogSSAqLw0KKyAgICAgIC8qIGNhY3VsYXRlIDEgLSBaICogWiAqLw0KKyAgICAgIF9fcmVhbF9fIFpaID0gMS4wZiAtICh4IC0geSkgKiAoeCArIHkpOw0KKyAgICAgIF9faW1hZ19fIFpaID0gLTIuMGYgKiB4ICogeTsNCisNCisgICAgICAgDQorICAgICAgIFJlcyA9IGNzcXJ0ZihaWik7DQorDQorICAgICAgLyogY2FsY3VsYXRlIFpaICsgSSAqIHNxcnQgKFpaKSAqLw0KKyAgICANCisgICAgICBfX3JlYWxfXyBaWiA9IHggLSBfX2ltYWdfXyBSZXM7DQorICAgICAgX19pbWFnX18gWlogPSB5ICsgX19yZWFsX18gUmVzOw0KKyAgICAgICANCisgICAgICBaWiA9IGNsb2coWlopOw0KKw0KKyAgICAgIC8qIG11bHQgYnkgLUkgKi8NCisNCisgICAgICBfX3JlYWxfXyBSZXMgID0gIF9faW1hZ19fIFpaOw0KKyAgICAgIF9faW1hZ19fIFJlcyA9IC0gX19yZWFsX18gWlo7DQorICAgIH0NCisgIHJldHVybiBSZXM7DQorfQ0KKw0KKyNlbHNlDQorDQorLyogY2Fjb3MgKCBaICkgPSAgcGkvMiAtIGNhc2luICggWiApICovDQorDQorZmxvYXQgY29tcGxleCBjYWNvc2YgKGZsb2F0IGNvbXBsZXggWikNCit7DQorICBmbG9hdCBjb21wbGV4IFJlcyAgPSBjYXNpbmYgKFopOw0KKyAgX19yZWFsX18gUmVzID0gTV9QSV8yIC0gX19yZWFsX18gUmVzOw0KKyAgX19pbWFnX18gUmVzID0gLSBfX2ltYWdfXyBSZXM7DQorICByZXR1cm4gUmVzOw0KK30NCisjZW5kaWYNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Fjb3NoLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Fjb3NoLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODI5NzcyOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYWNvc2guYwpAQCAtMCwwICsxLDM3IEBACisvKg0KKyAgIGNhY29zaC5jDQorICAgQ29udHJpYnV0ZWQgYnkgRGFubnkgU21pdGgNCisgICAyMDAzLTEwLTIwDQorKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorDQorI2lmIDANCisvKiBjYWNvc2ggKHopID0gSSAqIGNhY29zICh6KSAgKi8NCitkb3VibGUgY29tcGxleCBjYWNvc2ggKGRvdWJsZSBjb21wbGV4IFopDQorew0KKyAgZG91YmxlIGNvbXBsZXggVG1wOw0KKyAgZG91YmxlIGNvbXBsZXggUmVzOw0KKw0KKyAgVG1wID0gY2Fjb3MgKFopOw0KKyAgX19yZWFsX18gUmVzID0gLV9faW1hZ19fIFRtcDsNCisgIF9faW1hZ19fIFJlcyA9IF9fcmVhbF9fIFRtcDsNCisgIHJldHVybiBSZXM7DQorfQ0KKw0KKyNlbHNlDQorDQorLyogY2Fjb3NoICh6KSA9IEkgKiBjYWNvcyAoeikgPSBJICogKHBpLzIgLSBjYXNpbiAoeikpICAqLw0KKw0KK2RvdWJsZSBjb21wbGV4IGNhY29zaCAoZG91YmxlIGNvbXBsZXggWikNCit7DQorICBkb3VibGUgY29tcGxleCBUbXA7DQorICBkb3VibGUgY29tcGxleCBSZXM7DQorDQorICBUbXAgPSBjYXNpbiAoWik7DQorICBfX3JlYWxfXyBSZXMgPSBfX2ltYWdfXyBUbXA7DQorICBfX2ltYWdfXyBSZXMgPSAgTV9QSV8yIC0gX19yZWFsX18gVG1wOw0KKyAgcmV0dXJuIFJlczsNCit9DQorI2VuZGlmDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NhY29zaGYuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYWNvc2hmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDU5OWZlMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYWNvc2hmLmMKQEAgLTAsMCArMSwzNyBAQAorLyoNCisgICBjYWNvc2hmLmMNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDQtMTItMjQNCisqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisNCisjaWYgMA0KKy8qIGNhY29zaGYgKHopID0gSSAqIGNhY29zICh6KSAgKi8NCitmbG9hdCBjb21wbGV4IGNhY29zaCAoZmxvYXQgY29tcGxleCBaKQ0KK3sNCisgIGZsb2F0IGNvbXBsZXggVG1wOw0KKyAgZmxvYXQgY29tcGxleCBSZXM7DQorDQorICBUbXAgPSBjYWNvc2YgKFopOw0KKyAgX19yZWFsX18gUmVzID0gLV9faW1hZ19fIFRtcDsNCisgIF9faW1hZ19fIFJlcyA9IF9fcmVhbF9fIFRtcDsNCisgIHJldHVybiBSZXM7DQorfQ0KKw0KKyNlbHNlDQorDQorLyogY2Fjb3NoICh6KSA9IEkgKiBjYWNvcyAoeikgPSBJICogKHBpLzIgLSBjYXNpbiAoeikpICAqLw0KKw0KK2Zsb2F0IGNvbXBsZXggY2Fjb3NoZiAoZmxvYXQgY29tcGxleCBaKQ0KK3sNCisgIGZsb2F0IGNvbXBsZXggVG1wOw0KKyAgZmxvYXQgY29tcGxleCBSZXM7DQorDQorICBUbXAgPSBjYXNpbmYgKFopOw0KKyAgX19yZWFsX18gUmVzID0gX19pbWFnX18gVG1wOw0KKyAgX19pbWFnX18gUmVzID0gIE1fUElfMiAtIF9fcmVhbF9fIFRtcDsNCisgIHJldHVybiBSZXM7DQorfQ0KKyNlbmRpZg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYWNvc2hsLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Fjb3NobC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhlYzVjYWYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Fjb3NobC5jCkBAIC0wLDAgKzEsMzkgQEAKKy8qDQorICAgY2Fjb3NobC5jDQorICAgQ29udHJpYnV0ZWQgYnkgRGFubnkgU21pdGgNCisgICAyMDA1LTAxLTA0DQorKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorDQorI2lmIDANCisvKiBjYWNvc2ggKHopID0gSSAqIGNhY29zICh6KSAgKi8NCitsb25nIGRvdWJsZSBjb21wbGV4IGNhY29zaGwgKGxvbmcgZG91YmxlIGNvbXBsZXggWikNCit7DQorICBsb25nIGRvdWJsZSBjb21wbGV4IFRtcDsNCisgIGxvbmcgZG91YmxlIGNvbXBsZXggUmVzOw0KKw0KKyAgVG1wID0gY2Fjb3NsIChaKTsNCisgIF9fcmVhbF9fIFJlcyA9IC1fX2ltYWdfXyBUbXA7DQorICBfX2ltYWdfXyBSZXMgPSBfX3JlYWxfXyBUbXA7DQorICByZXR1cm4gUmVzOw0KK30NCisNCisjZWxzZQ0KKw0KKy8qIGNhY29zaCAoeikgPSBJICogY2Fjb3MgKHopID0gSSAqIChwaS8yIC0gY2FzaW4gKHopKSAgKi8NCisjaWZuZGVmIF9NX1BJXzJMDQorI2RlZmluZSBfTV9QSV8yTCAxLjU3MDc5NjMyNjc5NDg5NjYxOTIzMTNMDQorI2VuZGlmDQorbG9uZyBkb3VibGUgY29tcGxleCBjYWNvc2hsIChsb25nIGRvdWJsZSBjb21wbGV4IFopDQorew0KKyAgbG9uZyBkb3VibGUgY29tcGxleCBUbXA7DQorICBsb25nIGRvdWJsZSBjb21wbGV4IFJlczsNCisNCisgIFRtcCA9IGNhc2lubCAoWik7DQorICBfX3JlYWxfXyBSZXMgPSBfX2ltYWdfXyBUbXA7DQorICBfX2ltYWdfXyBSZXMgPSAgX01fUElfMkwgLSBfX3JlYWxfXyBUbXA7DQorICByZXR1cm4gUmVzOw0KK30NCisjZW5kaWYNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Fjb3NsLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Fjb3NsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDA5OWZkMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYWNvc2wuYwpAQCAtMCwwICsxLDY2IEBACisvKg0KKyAgIGNhY29zbC5jDQorICAgQ29udHJpYnV0ZWQgYnkgRGFubnkgU21pdGgNCisgICAyMDA0LTAxLTA0DQorKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorDQorI2lmIDANCisvKiBjYWNvcyAoWikgPSAtSSAqIGNsb2coWiArIEkgKiBjc3FydCgxIC0gWiAqIFopKSAqLw0KKw0KK2xvbmcgZG91YmxlIGNvbXBsZXggY2Fjb3NsIChsb25nIGRvdWJsZSAgY29tcGxleCBaKQ0KK3sNCisgIGxvbmcgZG91YmxlIGNvbXBsZXggUmVzOw0KKyAgbG9uZyBkb3VibGUgeCwgeTsNCisNCisgIHggPSBfX3JlYWxfXyBaOw0KKyAgeSA9IF9faW1hZ19fIFo7DQorDQorICBpZiAoeSA9PSAwLjBMKQ0KKyAgICB7DQorICAgICAgX19yZWFsX18gUmVzID0gYWNvc2wgKHgpOw0KKyAgICAgIF9faW1hZ19fIFJlcyA9IDAuMEw7DQorICAgIH0NCisNCisgIGVsc2UNCisgICAgew0KKyAgICAgIGxvbmcgZG91YmxlIGNvbXBsZXggWlo7DQorICAgICAgLyogWiAqIFogPSAoKHggLSB5KSAqICh4ICsgeSkpICsgKDIuMCAqIHggKiB5KSAqIEkgKi8NCisgICAgICAvKiBjYWN1bGF0ZSAxIC0gWiAqIFogKi8NCisgICAgICBfX3JlYWxfXyBaWiA9IDEuMEwgLSAoeCAtIHkpICogKHggKyB5KTsNCisgICAgICBfX2ltYWdfXyBaWiA9IC0yLjBMICogeCAqIHk7DQorDQorICAgICAgIA0KKyAgICAgICBSZXMgPSBjc3FydGwoWlopOw0KKw0KKyAgICAgIC8qIGNhbGN1bGF0ZSBaWiArIEkgKiBzcXJ0IChaWikgKi8NCisgICAgDQorICAgICAgX19yZWFsX18gWlogPSB4IC0gX19pbWFnX18gUmVzOw0KKyAgICAgIF9faW1hZ19fIFpaID0geSArIF9fcmVhbF9fIFJlczsNCisgICAgICAgDQorICAgICAgWlogPSBjbG9nbChaWik7DQorDQorICAgICAgLyogbXVsdCBieSAtSSAqLw0KKw0KKyAgICAgIF9fcmVhbF9fIFJlcyAgPSAgX19pbWFnX18gWlo7DQorICAgICAgX19pbWFnX18gUmVzID0gLSBfX3JlYWxfXyBaWjsNCisgICAgfQ0KKyAgcmV0dXJuIFJlczsNCit9DQorDQorI2Vsc2UNCisNCisvKiBjYWNvcyAoIFogKSA9ICBwaS8yIC0gY2FzaW4gKCBaICkgKi8NCisjaWZuZGVmIF9NX1BJXzJMDQorI2RlZmluZSBfTV9QSV8yTCAxLjU3MDc5NjMyNjc5NDg5NjYxOTIzMTNMDQorI2VuZGlmDQorbG9uZyBkb3VibGUgY29tcGxleCBjYWNvc2wgKGxvbmcgZG91YmxlIGNvbXBsZXggWikNCit7DQorICBsb25nIGRvdWJsZSBjb21wbGV4IFJlcyAgPSBjYXNpbmwgKFopOw0KKyAgX19yZWFsX18gUmVzID0gX01fUElfMkwgLSBfX3JlYWxfXyBSZXM7DQorICBfX2ltYWdfXyBSZXMgPSAtIF9faW1hZ19fIFJlczsNCisgIHJldHVybiBSZXM7DQorfQ0KKyNlbmRpZg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYXJnLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2FyZy5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM5MDFjOTkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2FyZy5jCkBAIC0wLDAgKzEsOSBAQAorI2luY2x1ZGUgPGNvbXBsZXguaD4NCitkb3VibGUgIF9fYXR0cmlidXRlX18gKChjb25zdCkpIGNhcmcgKGRvdWJsZSBfQ29tcGxleCBfWikNCit7DQorICBkb3VibGUgcmVzOw0KKyAgX19hc21fXyAoImZwYXRhbjsiDQorCSAgIDogIj10IiAocmVzKSA6ICIwIiAoX19yZWFsX18gX1opLCAidSIgKF9faW1hZ19fIF9aKSA6ICJzdCgxKSIpOw0KKyAgcmV0dXJuIHJlczsNCit9DQorDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NhcmdmLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2FyZ2YuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNDk3ZGZmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NhcmdmLmMKQEAgLTAsMCArMSw5IEBACisjaW5jbHVkZSA8Y29tcGxleC5oPg0KK2Zsb2F0ICBfX2F0dHJpYnV0ZV9fICgoY29uc3QpKSBjYXJnZiAoZmxvYXQgX0NvbXBsZXggX1opDQorew0KKyAgZmxvYXQgcmVzOw0KKyAgX19hc21fXyAoImZwYXRhbjsiDQorCSAgIDogIj10IiAocmVzKSA6ICIwIiAoX19yZWFsX18gX1opLCAidSIgKF9faW1hZ19fIF9aKSA6ICJzdCgxKSIpOw0KKyAgcmV0dXJuIHJlczsNCit9DQorDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NhcmdsLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2FyZ2wuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ODI2MjNhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NhcmdsLmMKQEAgLTAsMCArMSw4IEBACisjaW5jbHVkZSA8Y29tcGxleC5oPg0KK2xvbmcgZG91YmxlICAgX19hdHRyaWJ1dGVfXyAoKGNvbnN0KSkgY2FyZ2wgKGxvbmcgZG91YmxlIF9Db21wbGV4IF9aKQ0KK3sNCisgIGxvbmcgZG91YmxlIHJlczsNCisgIF9fYXNtX18gKCJmcGF0YW47Ig0KKwkgICA6ICI9dCIgKHJlcykgOiAiMCIgKF9fcmVhbF9fIF9aKSwgInUiIChfX2ltYWdfXyBfWikgOiAic3QoMSkiKTsNCisgIHJldHVybiByZXM7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYXNpbi5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2Nhc2luLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjUzMzIwNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYXNpbi5jCkBAIC0wLDAgKzEsNDggQEAKKy8qDQorICAgY2FzaW4uYw0KKyAgIENvbnRyaWJ1dGVkIGJ5IERhbm55IFNtaXRoDQorICAgMjAwMy0xMC0yMA0KKyovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8Y29tcGxleC5oPg0KKw0KKy8qIGNhc2luIChaICkgPSAtSSAqIGNsb2coSSAqIFogKyBjc3FydCAoMS4wIC0gWiAqIFopKSkgKi8NCisNCitkb3VibGUgY29tcGxleCBjYXNpbiAoZG91YmxlIGNvbXBsZXggWikNCit7DQorICBkb3VibGUgY29tcGxleCBSZXM7DQorICBkb3VibGUgeCwgeTsNCisNCisgIHggPSBfX3JlYWxfXyBaOw0KKyAgeSA9IF9faW1hZ19fIFo7DQorDQorICBpZiAoeSA9PSAwLjApDQorICAgIHsNCisgICAgICBfX3JlYWxfXyBSZXMgPSBhc2luICh4KTsNCisgICAgICBfX2ltYWdfXyBSZXMgPSAwLjA7DQorICAgIH0NCisgIGVsc2UgIC8qIC1JICogY2xvZyhJICogWiArIGNzcXJ0KDEuMCAtIFogKiBaKSkpICovDQorICAgIHsNCisgICAgICBkb3VibGUgY29tcGxleCBaWjsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisgICAgICAvKiBaICogWiA9ICgoeCAtIHkpICogKHggKyB5KSkgKyAoMi4wICogeCAqIHkpICogSSAqLw0KKyAgICAgIC8qIGNhbGN1bGF0ZSAxIC0gWiAqIFogKi8NCisgICAgICBfX3JlYWxfXyBaWiA9IDEuMCAtICh4IC0geSkgKiAoeCArIHkpOw0KKyAgICAgIF9faW1hZ19fIFpaID0gLTIuMCAqIHggKiB5Ow0KKyAgICAgIFpaID0gY3NxcnQgKFpaKTsNCisNCisNCisgICAgICAvKiBhZGQgIEkgKiBaICB0byBaWiAqLw0KKw0KKyAgICAgIF9fcmVhbF9fIFpaIC09IHk7DQorICAgICAgX19pbWFnX18gWlogKz0geDsNCisNCisgICAgICBaWiA9IGNsb2cgKFpaKTsNCisNCisgICAgICAvKiBtdWx0IGJ5IC1JICovDQorICAgICAgX19yZWFsX18gUmVzID0gX19pbWFnX18gWlo7DQorICAgICAgX19pbWFnX18gUmVzID0gLSBfX3JlYWxfXyBaWjsgIA0KKyAgICB9DQorICByZXR1cm4gKFJlcyk7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYXNpbmYuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYXNpbmYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ODg5NDIxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2Nhc2luZi5jCkBAIC0wLDAgKzEsNDggQEAKKy8qDQorICAgY2FzaW5mLmMNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDQtMTItMjQNCisqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisNCisvKiBjYXNpbiAoWiApID0gLUkgKiBjbG9nKEkgKiBaICsgY3NxcnQgKDEuMCAtIFogKiBaKSkpICovDQorDQorZmxvYXQgY29tcGxleCBjYXNpbmYgKGZsb2F0IGNvbXBsZXggWikNCit7DQorICBmbG9hdCBjb21wbGV4IFJlczsNCisgIGZsb2F0IHgsIHk7DQorDQorICB4ID0gX19yZWFsX18gWjsNCisgIHkgPSBfX2ltYWdfXyBaOw0KKw0KKyAgaWYgKHkgPT0gMC4wZikNCisgICAgew0KKyAgICAgIF9fcmVhbF9fIFJlcyA9IGFzaW5mICh4KTsNCisgICAgICBfX2ltYWdfXyBSZXMgPSAwLjBmOw0KKyAgICB9DQorICBlbHNlICAvKiAtSSAqIGNsb2coSSAqIFogKyBjc3FydCgxLjAgLSBaICogWikpKSAqLw0KKyAgICB7DQorICAgICAgZmxvYXQgY29tcGxleCBaWjsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisgICAgICAvKiBaICogWiA9ICgoeCAtIHkpICogKHggKyB5KSkgKyAoMi4wICogeCAqIHkpICogSSAqLw0KKyAgICAgIC8qIGNhbGN1bGF0ZSAxIC0gWiAqIFogKi8NCisgICAgICBfX3JlYWxfXyBaWiA9IDEuMGYgLSAoeCAtIHkpICogKHggKyB5KTsNCisgICAgICBfX2ltYWdfXyBaWiA9IC0yLjBmICogeCAqIHk7DQorICAgICAgWlogPSBjc3FydGYgKFpaKTsNCisNCisNCisgICAgICAvKiBhZGQgIEkgKiBaICB0byBaWiAqLw0KKw0KKyAgICAgIF9fcmVhbF9fIFpaIC09IHk7DQorICAgICAgX19pbWFnX18gWlogKz0geDsNCisNCisgICAgICBaWiA9IGNsb2dmIChaWik7DQorDQorICAgICAgLyogbXVsdCBieSAtSSAqLw0KKyAgICAgIF9fcmVhbF9fIFJlcyA9IF9faW1hZ19fIFpaOw0KKyAgICAgIF9faW1hZ19fIFJlcyA9IC0gX19yZWFsX18gWlo7ICANCisgICAgfQ0KKyAgcmV0dXJuIChSZXMpOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2FzaW5oLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2FzaW5oLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjExMGRhMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYXNpbmguYwpAQCAtMCwwICsxLDIzIEBACisvKg0KKyAgIGNhc2luaC5jDQorICAgQ29udHJpYnV0ZWQgYnkgRGFubnkgU21pdGgNCisgICAyMDAzLTEwLTIwDQorKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorDQorLyogY2FzaW5oICh6KSA9IC1JIGNhc2luIChJICogeikgKi8NCisNCitkb3VibGUgY29tcGxleCBjYXNpbmggKGRvdWJsZSBjb21wbGV4IFopDQorew0KKyAgZG91YmxlIGNvbXBsZXggVG1wOw0KKyAgZG91YmxlIGNvbXBsZXggUmVzOw0KKw0KKyAgX19yZWFsX18gVG1wID0gLSBfX2ltYWdfXyBaOw0KKyAgX19pbWFnX18gVG1wID0gICBfX3JlYWxfXyBaOw0KKyAgVG1wID0gY2FzaW4gKFRtcCk7DQorICBfX3JlYWxfXyBSZXMgPSAgIF9faW1hZ19fIFRtcDsNCisgIF9faW1hZ19fIFJlcyA9IC0gX19yZWFsX18gVG1wOw0KKyAgcmV0dXJuIFJlczsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2Nhc2luaGYuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYXNpbmhmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTEzOTA4ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYXNpbmhmLmMKQEAgLTAsMCArMSwyMyBAQAorLyoNCisgICBjYXNpbmhmLmMNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDQtMTItMjQNCisqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisNCisvKiBjYXNpbmggKHopID0gLUkgY2FzaW4gKEkgKiB6KSAqLw0KKw0KK2Zsb2F0IGNvbXBsZXggY2FzaW5oZiAoZmxvYXQgY29tcGxleCBaKQ0KK3sNCisgIGZsb2F0IGNvbXBsZXggVG1wOw0KKyAgZmxvYXQgY29tcGxleCBSZXM7DQorDQorICBfX3JlYWxfXyBUbXAgPSAtIF9faW1hZ19fIFo7DQorICBfX2ltYWdfXyBUbXAgPSAgIF9fcmVhbF9fIFo7DQorICBUbXAgPSBjYXNpbmYgKFRtcCk7DQorICBfX3JlYWxfXyBSZXMgPSAgIF9faW1hZ19fIFRtcDsNCisgIF9faW1hZ19fIFJlcyA9IC0gX19yZWFsX18gVG1wOw0KKyAgcmV0dXJuIFJlczsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2Nhc2luaGwuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYXNpbmhsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2QwZGRmNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYXNpbmhsLmMKQEAgLTAsMCArMSwyMyBAQAorLyoNCisgICBjYXNpbmhsLmMNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDUtMDEtMDQNCisqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisNCisvKiBjYXNpbmggKHopID0gLUkgY2FzaW4gKEkgKiB6KSAqLw0KKw0KK2xvbmcgZG91YmxlIGNvbXBsZXggY2FzaW5obCAobG9uZyBkb3VibGUgY29tcGxleCBaKQ0KK3sNCisgIGxvbmcgZG91YmxlIGNvbXBsZXggVG1wOw0KKyAgbG9uZyBkb3VibGUgY29tcGxleCBSZXM7DQorDQorICBfX3JlYWxfXyBUbXAgPSAtIF9faW1hZ19fIFo7DQorICBfX2ltYWdfXyBUbXAgPSAgIF9fcmVhbF9fIFo7DQorICBUbXAgPSBjYXNpbmwgKFRtcCk7DQorICBfX3JlYWxfXyBSZXMgPSAgIF9faW1hZ19fIFRtcDsNCisgIF9faW1hZ19fIFJlcyA9IC0gX19yZWFsX18gVG1wOw0KKyAgcmV0dXJuIFJlczsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2Nhc2lubC5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2Nhc2lubC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZiYTQxYTEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2FzaW5sLmMKQEAgLTAsMCArMSw0OCBAQAorLyoNCisgICBjYXNpbmwuYw0KKyAgIENvbnRyaWJ1dGVkIGJ5IERhbm55IFNtaXRoDQorICAgMjAwNS0wMS0wNA0KKyovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8Y29tcGxleC5oPg0KKw0KKy8qIGNhc2luIChaICkgPSAtSSAqIGNsb2coSSAqIFogKyBjc3FydCAoMS4wIC0gWiAqIFopKSkgKi8NCisNCitsb25nIGRvdWJsZSBjb21wbGV4IGNhc2lubCAobG9uZyBkb3VibGUgY29tcGxleCBaKQ0KK3sNCisgIGxvbmcgZG91YmxlIGNvbXBsZXggUmVzOw0KKyAgbG9uZyBkb3VibGUgeCwgeTsNCisNCisgIHggPSBfX3JlYWxfXyBaOw0KKyAgeSA9IF9faW1hZ19fIFo7DQorDQorICBpZiAoeSA9PSAwLjBMKQ0KKyAgICB7DQorICAgICAgX19yZWFsX18gUmVzID0gYXNpbmwgKHgpOw0KKyAgICAgIF9faW1hZ19fIFJlcyA9IDAuMEw7DQorICAgIH0NCisgIGVsc2UgIC8qIC1JICogY2xvZyhJICogWiArIGNzcXJ0KDEuMCAtIFogKiBaKSkpICovDQorICAgIHsNCisgICAgICBsb25nIGRvdWJsZSBjb21wbGV4IFpaOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKyAgICAgIC8qIFogKiBaID0gKCh4IC0geSkgKiAoeCArIHkpKSArICgyLjAgKiB4ICogeSkgKiBJICovDQorICAgICAgLyogY2FsY3VsYXRlIDEgLSBaICogWiAqLw0KKyAgICAgIF9fcmVhbF9fIFpaID0gMS4wTCAtICh4IC0geSkgKiAoeCArIHkpOw0KKyAgICAgIF9faW1hZ19fIFpaID0gLTIuMEwgKiB4ICogeTsNCisgICAgICBaWiA9IGNzcXJ0bCAoWlopOw0KKw0KKw0KKyAgICAgIC8qIGFkZCAgSSAqIFogIHRvIFpaICovDQorDQorICAgICAgX19yZWFsX18gWlogLT0geTsNCisgICAgICBfX2ltYWdfXyBaWiArPSB4Ow0KKw0KKyAgICAgIFpaID0gY2xvZ2wgKFpaKTsNCisNCisgICAgICAvKiBtdWx0IGJ5IC1JICovDQorICAgICAgX19yZWFsX18gUmVzID0gX19pbWFnX18gWlo7DQorICAgICAgX19pbWFnX18gUmVzID0gLSBfX3JlYWxfXyBaWjsgIA0KKyAgICB9DQorICByZXR1cm4gKFJlcyk7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYXRhbi5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NhdGFuLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzBlNjIyOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYXRhbi5jCkBAIC0wLDAgKzEsNDkgQEAKKy8qIGNhdGFuLmMgKi8NCisNCisvKg0KKyAgIENvbnRyaWJ1dGVkIGJ5IERhbm55IFNtaXRoDQorICAgMjAwMy0xMC0xNw0KKw0KKyAgIEZJWE1FOiBUaGlzIG5lZWRzIHNvbWUgc2VyaW91cyBudW1lcmljYWwgYW5hbHlzaXMuDQorKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorI2luY2x1ZGUgPGVycm5vLmg+DQorDQorLyogY2F0YW4gKHopID0gLUkvMiAqIGNsb2cgKChJICsgeikgLyAoSSAtIHopKSAqLyANCisNCitkb3VibGUgY29tcGxleCANCitjYXRhbiAoZG91YmxlIGNvbXBsZXggWikNCit7DQorICBkb3VibGUgY29tcGxleCBSZXM7DQorICBkb3VibGUgY29tcGxleCBUbXA7DQorICBkb3VibGUgeCA9IF9fcmVhbF9fIFo7DQorICBkb3VibGUgeSA9IF9faW1hZ19fIFo7DQorDQorICBpZiAoIHggPT0gMC4wICYmICgxLjAgLSBmYWJzICh5KSkgPT0gMC4wKQ0KKyAgICB7DQorICAgICAgZXJybm8gPSBFUkFOR0U7DQorICAgICAgX19yZWFsX18gUmVzID0gSFVHRV9WQUw7DQorICAgICAgX19pbWFnX18gUmVzID0gSFVHRV9WQUw7DQorICAgIH0NCisgICBlbHNlIGlmIChpc2luZiAoX2h5cG90ICh4LCB5KSkpDQorICAgew0KKyAgICAgX19yZWFsX18gUmVzID0gKHggPiAwID8gTV9QSV8yIDogLU1fUElfMik7DQorICAgICBfX2ltYWdfXyBSZXMgPSAwLjA7DQorICAgfQ0KKyAgZWxzZQ0KKyAgICB7DQorICAgICAgX19yZWFsX18gVG1wID0gLSB4OyANCisgICAgICBfX2ltYWdfXyBUbXAgPSAxLjAgLSB5Ow0KKw0KKyAgICAgIF9fcmVhbF9fIFJlcyA9IHg7IA0KKyAgICAgIF9faW1hZ19fIFJlcyA9IHkgKyAxLjA7DQorDQorICAgICAgVG1wID0gY2xvZyAoUmVzL1RtcCk7CQ0KKyAgICAgIF9fcmVhbF9fIFJlcyAgPSAtIDAuNSAqIF9faW1hZ19fIFRtcDsNCisgICAgICBfX2ltYWdfXyBSZXMgPSAgMC41ICogX19yZWFsX18gVG1wOw0KKyAgICB9DQorDQorICAgcmV0dXJuIFJlczsgDQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYXRhbmYuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYXRhbmYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42Njc4ZGE1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NhdGFuZi5jCkBAIC0wLDAgKzEsNDkgQEAKKy8qIGNhdGFuZi5jICovDQorDQorLyoNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDQtMTItMjQNCisNCisgICBGSVhNRTogVGhpcyBuZWVkcyBzb21lIHNlcmlvdXMgbnVtZXJpY2FsIGFuYWx5c2lzLg0KKyovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8Y29tcGxleC5oPg0KKyNpbmNsdWRlIDxlcnJuby5oPg0KKw0KKy8qIGNhdGFuICh6KSA9IC1JLzIgKiBjbG9nICgoSSArIHopIC8gKEkgLSB6KSkgKi8gDQorDQorZmxvYXQgY29tcGxleCANCitjYXRhbmYgKGZsb2F0IGNvbXBsZXggWikNCit7DQorICBmbG9hdCBjb21wbGV4IFJlczsNCisgIGZsb2F0IGNvbXBsZXggVG1wOw0KKyAgZmxvYXQgeCA9IF9fcmVhbF9fIFo7DQorICBmbG9hdCB5ID0gX19pbWFnX18gWjsNCisNCisgIGlmICggeCA9PSAwLjBmICYmICgxLjBmIC0gZmFic2YgKHkpKSA9PSAwLjBmKQ0KKyAgICB7DQorICAgICAgZXJybm8gPSBFUkFOR0U7DQorICAgICAgX19yZWFsX18gUmVzID0gSFVHRV9WQUxGOw0KKyAgICAgIF9faW1hZ19fIFJlcyA9IEhVR0VfVkFMRjsNCisgICAgfQ0KKyAgIGVsc2UgaWYgKGlzaW5mIChoeXBvdGYgKHgsIHkpKSkNCisgICB7DQorICAgICBfX3JlYWxfXyBSZXMgPSAoeCA+IDAgPyBNX1BJXzIgOiAtTV9QSV8yKTsNCisgICAgIF9faW1hZ19fIFJlcyA9IDAuMGY7DQorICAgfQ0KKyAgZWxzZQ0KKyAgICB7DQorICAgICAgX19yZWFsX18gVG1wID0gLSB4OyANCisgICAgICBfX2ltYWdfXyBUbXAgPSAxLjBmIC0geTsNCisNCisgICAgICBfX3JlYWxfXyBSZXMgPSB4OyANCisgICAgICBfX2ltYWdfXyBSZXMgPSB5ICsgMS4wZjsNCisNCisgICAgICBUbXAgPSBjbG9nZiAoUmVzL1RtcCk7CQ0KKyAgICAgIF9fcmVhbF9fIFJlcyAgPSAtIDAuNWYgKiBfX2ltYWdfXyBUbXA7DQorICAgICAgX19pbWFnX18gUmVzID0gIDAuNWYgKiBfX3JlYWxfXyBUbXA7DQorICAgIH0NCisNCisgICByZXR1cm4gUmVzOyANCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NhdGFuaC5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NhdGFuaC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgwOWQwMjUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2F0YW5oLmMKQEAgLTAsMCArMSwyMyBAQAorLyogY2F0YW5oLmMgKi8NCisvKg0KKyAgIENvbnRyaWJ1dGVkIGJ5IERhbm55IFNtaXRoDQorICAgMjAwMy0xMC0yMA0KKyovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8Y29tcGxleC5oPg0KKw0KKy8qICBjYXRhbmggKHopID0gLUkgKiBjYXRhbiAoSSAgKiB6KSAgKi8NCisNCitkb3VibGUgY29tcGxleCBjYXRhbmggKGRvdWJsZSBjb21wbGV4IFopDQorew0KKyAgZG91YmxlIGNvbXBsZXggVG1wOw0KKyAgZG91YmxlIGNvbXBsZXggUmVzOw0KKw0KKyAgX19yZWFsX18gVG1wID0gLSBfX2ltYWdfXyBaOw0KKyAgX19pbWFnX18gVG1wID0gICBfX3JlYWxfXyBaOw0KKyAgVG1wID0gY2F0YW4gKFRtcCk7DQorICBfX3JlYWxfXyBSZXMgPSAgX19pbWFnX18gVG1wOw0KKyAgX19pbWFnX18gUmVzID0gLSBfX3JlYWxfXyBUbXA7DQorICByZXR1cm4gUmVzOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2F0YW5oZi5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NhdGFuaGYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZDU1N2E4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NhdGFuaGYuYwpAQCAtMCwwICsxLDIzIEBACisvKiBjYXRhbmhmLmMgKi8NCisvKg0KKyAgIENvbnRyaWJ1dGVkIGJ5IERhbm55IFNtaXRoDQorICAgMjAwNC0xMi0yNA0KKyovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8Y29tcGxleC5oPg0KKw0KKy8qICBjYXRhbmggKHopID0gLUkgKiBjYXRhbiAoSSAgKiB6KSAgKi8NCisNCitmbG9hdCBjb21wbGV4IGNhdGFuaGYgKGZsb2F0IGNvbXBsZXggWikNCit7DQorICBmbG9hdCBjb21wbGV4IFRtcDsNCisgIGZsb2F0IGNvbXBsZXggUmVzOw0KKw0KKyAgX19yZWFsX18gVG1wID0gLSBfX2ltYWdfXyBaOw0KKyAgX19pbWFnX18gVG1wID0gICBfX3JlYWxfXyBaOw0KKyAgVG1wID0gY2F0YW5mIChUbXApOw0KKyAgX19yZWFsX18gUmVzID0gIF9faW1hZ19fIFRtcDsNCisgIF9faW1hZ19fIFJlcyA9IC0gX19yZWFsX18gVG1wOw0KKyAgcmV0dXJuIFJlczsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NhdGFuaGwuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYXRhbmhsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTM1MDYzZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYXRhbmhsLmMKQEAgLTAsMCArMSwyMyBAQAorLyogY2F0YW5obC5jICovDQorLyoNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDUtMDEtMDQNCisqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisNCisvKiAgY2F0YW5oICh6KSA9IC1JICogY2F0YW4gKEkgICogeikgICovDQorDQorbG9uZyBkb3VibGUgY29tcGxleCBjYXRhbmhsIChsb25nIGRvdWJsZSBjb21wbGV4IFopDQorew0KKyAgbG9uZyBkb3VibGUgY29tcGxleCBUbXA7DQorICBsb25nIGRvdWJsZSBjb21wbGV4IFJlczsNCisNCisgIF9fcmVhbF9fIFRtcCA9IC0gX19pbWFnX18gWjsNCisgIF9faW1hZ19fIFRtcCA9ICAgX19yZWFsX18gWjsNCisgIFRtcCA9IGNhdGFubCAoVG1wKTsNCisgIF9fcmVhbF9fIFJlcyA9ICBfX2ltYWdfXyBUbXA7DQorICBfX2ltYWdfXyBSZXMgPSAtIF9fcmVhbF9fIFRtcDsNCisgIHJldHVybiBSZXM7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYXRhbmwuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jYXRhbmwuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMjk2NGE2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NhdGFubC5jCkBAIC0wLDAgKzEsNTMgQEAKKy8qIGNhdGFubC5jICovDQorDQorLyoNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDUtMDEtMDQNCisNCisgICBGSVhNRTogVGhpcyBuZWVkcyBzb21lIHNlcmlvdXMgbnVtZXJpY2FsIGFuYWx5c2lzLg0KKyovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8Y29tcGxleC5oPg0KKyNpbmNsdWRlIDxlcnJuby5oPg0KKw0KKy8qIGNhdGFuICh6KSA9IC1JLzIgKiBjbG9nICgoSSArIHopIC8gKEkgLSB6KSkgKi8gDQorDQorI2lmbmRlZiBfTV9QSV8yTA0KKyNkZWZpbmUgX01fUElfMkwgMS41NzA3OTYzMjY3OTQ4OTY2MTkyMzEzTA0KKyNlbmRpZg0KKw0KK2xvbmcgZG91YmxlIGNvbXBsZXggDQorY2F0YW5sIChsb25nIGRvdWJsZSBjb21wbGV4IFopDQorew0KKyAgbG9uZyBkb3VibGUgY29tcGxleCBSZXM7DQorICBsb25nIGRvdWJsZSBjb21wbGV4IFRtcDsNCisgIGxvbmcgZG91YmxlIHggPSBfX3JlYWxfXyBaOw0KKyAgbG9uZyBkb3VibGUgeSA9IF9faW1hZ19fIFo7DQorDQorICBpZiAoIHggPT0gMC4wTCAmJiAoMS4wTCAtIGZhYnNsICh5KSkgPT0gMC4wTCkNCisgICAgew0KKyAgICAgIGVycm5vID0gRVJBTkdFOw0KKyAgICAgIF9fcmVhbF9fIFJlcyA9IEhVR0VfVkFMTDsNCisgICAgICBfX2ltYWdfXyBSZXMgPSBIVUdFX1ZBTEw7DQorICAgIH0NCisgICBlbHNlIGlmIChpc2luZiAoaHlwb3RsICh4LCB5KSkpDQorICAgew0KKyAgICAgX19yZWFsX18gUmVzID0gKHggPiAwID8gX01fUElfMkwgOiAtX01fUElfMkwpOw0KKyAgICAgX19pbWFnX18gUmVzID0gMC4wTDsNCisgICB9DQorICBlbHNlDQorICAgIHsNCisgICAgICBfX3JlYWxfXyBUbXAgPSAtIHg7IA0KKyAgICAgIF9faW1hZ19fIFRtcCA9IDEuMEwgLSB5Ow0KKw0KKyAgICAgIF9fcmVhbF9fIFJlcyA9IHg7IA0KKyAgICAgIF9faW1hZ19fIFJlcyA9IHkgKyAxLjBMOw0KKw0KKyAgICAgIFRtcCA9IGNsb2dsIChSZXMvVG1wKTsJDQorICAgICAgX19yZWFsX18gUmVzICA9IC0gMC41TCAqIF9faW1hZ19fIFRtcDsNCisgICAgICBfX2ltYWdfXyBSZXMgPSAgMC41TCAqIF9fcmVhbF9fIFRtcDsNCisgICAgfQ0KKw0KKyAgIHJldHVybiBSZXM7IA0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Nvcy5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2Njb3MuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNmRkMGUxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2Njb3MuYwpAQCAtMCwwICsxLDIwIEBACisvKg0KKyAgIGNjb3MuYw0KKyAgIENvbnRyaWJ1dGVkIGJ5IERhbm55IFNtaXRoDQorICAgMjAwMy0xMC0yMA0KKyovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8Y29tcGxleC5oPg0KKw0KKy8qIGNjb3MgKHggKyBJICogeSkgPSBjb3MgKHgpICogY29zaCAoeSkNCisgICAgKyBJICogKHNpbiAoeCkgKiBzaW5oICh5KSkgKi8gDQorDQorDQorZG91YmxlIGNvbXBsZXggY2NvcyAoZG91YmxlIGNvbXBsZXggWikNCit7DQorICBkb3VibGUgY29tcGxleCBSZXM7DQorICBfX3JlYWxfXyBSZXMgPSBjb3MgKF9fcmVhbF9fIFopICogY29zaCAoIF9faW1hZ19fIFopOw0KKyAgX19pbWFnX18gUmVzID0gLXNpbiAoX19yZWFsX18gWikgKiBzaW5oICggX19pbWFnX18gWik7DQorICByZXR1cm4gUmVzOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Nvc2YuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jY29zZi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYyZDAxZDMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Nvc2YuYwpAQCAtMCwwICsxLDIwIEBACisvKg0KKyAgIGNjb3NmLmMNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDMtMTItMjQNCisqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisNCisvKiBjY29zICh4ICsgSSAqIHkpID0gY29zICh4KSAqIGNvc2ggKHkpDQorICAgICsgSSAqIChzaW4gKHgpICogc2luaCAoeSkpICovIA0KKw0KKw0KK2Zsb2F0IGNvbXBsZXggY2Nvc2YgKGZsb2F0IGNvbXBsZXggWikNCit7DQorICBmbG9hdCBjb21wbGV4IFJlczsNCisgIF9fcmVhbF9fIFJlcyA9IGNvc2YgKF9fcmVhbF9fIFopICogY29zaGYgKCBfX2ltYWdfXyBaKTsNCisgIF9faW1hZ19fIFJlcyA9IC1zaW5mIChfX3JlYWxfXyBaKSAqIHNpbmhmICggX19pbWFnX18gWik7DQorICByZXR1cm4gUmVzOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Nvc2guYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jY29zaC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNkMTg4MzAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Nvc2guYwpAQCAtMCwwICsxLDE5IEBACisvKg0KKyAgIGNjb3NoLmMNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDMtMTAtMjANCisqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisNCisvKiBjY29zaCAoeCArIEkgKiB5KSA9IGNvc2ggKHgpICogY29zICh5KQ0KKyAgICArIEkgKiAoc2luaCAoeCkgKiBzaW4gKHkpKSAqLyANCisNCitkb3VibGUgY29tcGxleCBjY29zaCAoZG91YmxlIGNvbXBsZXggWikNCit7DQorICBkb3VibGUgY29tcGxleCBSZXM7DQorICBfX3JlYWxfXyBSZXMgPSBjb3NoIChfX3JlYWxfXyBaKSAqIGNvcyAoX19pbWFnX18gWik7DQorICBfX2ltYWdfXyBSZXMgPSBzaW5oIChfX3JlYWxfXyBaKSAqIHNpbiAoX19pbWFnX18gWik7DQorICByZXR1cm4gUmVzOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Nvc2hmLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Nvc2hmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDQ3ODNiOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jY29zaGYuYwpAQCAtMCwwICsxLDE5IEBACisvKg0KKyAgIGNjb3NoZi5jDQorICAgQ29udHJpYnV0ZWQgYnkgRGFubnkgU21pdGgNCisgICAyMDA0LTEyLTI0DQorKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorDQorLyogY2Nvc2ggKHggKyBJICogeSkgPSBjb3NoICh4KSAqIGNvcyAoeSkNCisgICAgKyBJICogKHNpbmggKHgpICogc2luICh5KSkgKi8gDQorDQorZmxvYXQgY29tcGxleCBjY29zaGYgKGZsb2F0IGNvbXBsZXggWikNCit7DQorICBmbG9hdCBjb21wbGV4IFJlczsNCisgIF9fcmVhbF9fIFJlcyA9IGNvc2hmIChfX3JlYWxfXyBaKSAqIGNvc2YgKF9faW1hZ19fIFopOw0KKyAgX19pbWFnX18gUmVzID0gc2luaGYgKF9fcmVhbF9fIFopICogc2luZiAoX19pbWFnX18gWik7DQorICByZXR1cm4gUmVzOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Nvc2hsLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Nvc2hsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODFkZTc2MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jY29zaGwuYwpAQCAtMCwwICsxLDE5IEBACisvKg0KKyAgIGNjb3NobC5jDQorICAgQ29udHJpYnV0ZWQgYnkgRGFubnkgU21pdGgNCisgICAyMDA1LTAxLTA0DQorKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorDQorLyogY2Nvc2ggKHggKyBJICogeSkgPSBjb3NoICh4KSAqIGNvcyAoeSkNCisgICAgKyBJICogKHNpbmggKHgpICogc2luICh5KSkgKi8gDQorDQorbG9uZyBkb3VibGUgY29tcGxleCBjY29zaGwgKGxvbmcgZG91YmxlIGNvbXBsZXggWikNCit7DQorICBsb25nIGRvdWJsZSBjb21wbGV4IFJlczsNCisgIF9fcmVhbF9fIFJlcyA9IGNvc2hsIChfX3JlYWxfXyBaKSAqIGNvc2wgKF9faW1hZ19fIFopOw0KKyAgX19pbWFnX18gUmVzID0gc2luaGwgKF9fcmVhbF9fIFopICogc2lubCAoX19pbWFnX18gWik7DQorICByZXR1cm4gUmVzOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Nvc2wuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jY29zbC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY2MzBjYmUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2Nvc2wuYwpAQCAtMCwwICsxLDIwIEBACisvKg0KKyAgIGNjb3NsLmMNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDUtMDEtMDQNCisqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisNCisvKiBjY29zICh4ICsgSSAqIHkpID0gY29zICh4KSAqIGNvc2ggKHkpDQorICAgICsgSSAqIChzaW4gKHgpICogc2luaCAoeSkpICovIA0KKw0KKw0KK2xvbmcgZG91YmxlIGNvbXBsZXggY2Nvc2wgKGxvbmcgZG91YmxlIGNvbXBsZXggWikNCit7DQorICBsb25nIGRvdWJsZSBjb21wbGV4IFJlczsNCisgIF9fcmVhbF9fIFJlcyA9IGNvc2wgKF9fcmVhbF9fIFopICogY29zaGwgKCBfX2ltYWdfXyBaKTsNCisgIF9faW1hZ19fIFJlcyA9IC1zaW5sIChfX3JlYWxfXyBaKSAqIHNpbmhsICggX19pbWFnX18gWik7DQorICByZXR1cm4gUmVzOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2V4cC5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NleHAuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMGNjZGQyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NleHAuYwpAQCAtMCwwICsxLDE5IEBACisvKg0KKyAgIGNleHAuYw0KKyAgIENvbnRyaWJ1dGVkIGJ5IERhbm55IFNtaXRoDQorICAgMjAwMy0xMC0yMA0KKyovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8Y29tcGxleC5oPg0KKw0KKy8qIGNleHAgKHggKyBJICogeSkgPSBleHAgKHgpICogY29zICh5KSArIEkgKiBleHAgKHgpICogc2luICh5KSAqLw0KKw0KK2RvdWJsZSBjb21wbGV4IGNleHAgKGRvdWJsZSBjb21wbGV4IFopDQorew0KKyAgZG91YmxlIGNvbXBsZXggIFJlczsNCisgIGxvbmcgZG91YmxlIHJobyA9IGV4cCAoX19yZWFsX18gWik7DQorICBfX3JlYWxfXyBSZXMgPSByaG8gKiBjb3MoX19pbWFnX18gWik7DQorICBfX2ltYWdfXyBSZXMgPSByaG8gKiBzaW4oX19pbWFnX18gWik7DQorICByZXR1cm4gUmVzOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2V4cGYuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jZXhwZi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ3YzM3YmIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2V4cGYuYwpAQCAtMCwwICsxLDE5IEBACisvKg0KKyAgIGNleHBmLmMNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDQtMTItMjQNCisqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisNCisvKiBjZXhwICh4ICsgSSAqIHkpID0gZXhwICh4KSAqIGNvcyAoeSkgKyBJICogZXhwICh4KSAqIHNpbiAoeSkgKi8NCisNCitmbG9hdCBjb21wbGV4IGNleHBmIChmbG9hdCBjb21wbGV4IFopDQorew0KKyAgZmxvYXQgY29tcGxleCAgUmVzOw0KKyAgZG91YmxlIHJobyA9IGV4cCAoX19yZWFsX18gWik7DQorICBfX3JlYWxfXyBSZXMgPSByaG8gKiBjb3NmKF9faW1hZ19fIFopOw0KKyAgX19pbWFnX18gUmVzID0gcmhvICogc2luZihfX2ltYWdfXyBaKTsNCisgIHJldHVybiBSZXM7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jZXhwbC5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NleHBsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTFkZDJkYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jZXhwbC5jCkBAIC0wLDAgKzEsMTkgQEAKKy8qDQorICAgY2V4cGwuYw0KKyAgIENvbnRyaWJ1dGVkIGJ5IERhbm55IFNtaXRoDQorICAgMjAwNS0wMS0wNA0KKyovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8Y29tcGxleC5oPg0KKw0KKy8qIGNleHAgKHggKyBJICogeSkgPSBleHAgKHgpICogY29zICh5KSArIEkgKiBleHAgKHgpICogc2luICh5KSAqLw0KKw0KK2xvbmcgZG91YmxlIGNvbXBsZXggY2V4cGwgKGxvbmcgZG91YmxlIGNvbXBsZXggWikNCit7DQorICBsb25nIGRvdWJsZSBjb21wbGV4ICBSZXM7DQorICBsb25nIGRvdWJsZSByaG8gPSBleHBsIChfX3JlYWxfXyBaKTsNCisgIF9fcmVhbF9fIFJlcyA9IHJobyAqIGNvc2woX19pbWFnX18gWik7DQorICBfX2ltYWdfXyBSZXMgPSByaG8gKiBzaW5sKF9faW1hZ19fIFopOw0KKyAgcmV0dXJuIFJlczsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NpbWFnLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2ltYWcuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41YzRmOTVlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NpbWFnLmMKQEAgLTAsMCArMSw2IEBACisjaW5jbHVkZSA8Y29tcGxleC5oPg0KK2RvdWJsZSBfX2F0dHJpYnV0ZV9fICgoY29uc3QpKSBjaW1hZyAoZG91YmxlIGNvbXBsZXggX1opDQorew0KKyAgcmV0dXJuIF9faW1hZ19fIF9aOw0KK30NCisNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2ltYWdmLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2ltYWdmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjU3MjE3MAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jaW1hZ2YuYwpAQCAtMCwwICsxLDYgQEAKKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorZmxvYXQgX19hdHRyaWJ1dGVfXyAoKGNvbnN0KSkgY2ltYWdmIChmbG9hdCBjb21wbGV4IF9aKQ0KK3sNCisgIHJldHVybiBfX2ltYWdfXyBfWjsNCit9DQorDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NpbWFnbC5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NpbWFnbC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ4ZWMzOGYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2ltYWdsLmMKQEAgLTAsMCArMSw1IEBACisjaW5jbHVkZSA8Y29tcGxleC5oPg0KK2xvbmcgZG91YmxlIF9fYXR0cmlidXRlX18gKChjb25zdCkpIGNpbWFnbCAobG9uZyBkb3VibGUgY29tcGxleCBfWikNCit7DQorICByZXR1cm4gX19pbWFnX18gX1o7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jbG9nLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2xvZy5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRkMjU0NDcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2xvZy5jCkBAIC0wLDAgKzEsMTkgQEAKKy8qDQorICAgY2xvZy5jDQorICAgQ29udHJpYnV0ZWQgYnkgRGFubnkgU21pdGgNCisgICAyMDAzLTEwLTIwDQorKi8NCisNCisvKiBjbG9nICh4ICsgSSAqIHkpID0gbG9nIChoeXBvdCAoeCwgeSkpICsgSSAqIGF0YW4yICh5LCB4KSAqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisNCitkb3VibGUgY29tcGxleCBjbG9nIChkb3VibGUgY29tcGxleCBaKQ0KK3sNCisgIGRvdWJsZSBjb21wbGV4IFJlczsNCisgIF9fcmVhbF9fIFJlcyA9IGxvZyAoX2h5cG90IChfX3JlYWxfXyBaLCAgX19pbWFnX18gWikpOw0KKyAgX19pbWFnX18gUmVzID0gY2FyZyAoWik7DQorICByZXR1cm4gUmVzOw0KK30NCisNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2xvZ2YuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jbG9nZi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUxODZmNDYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY2xvZ2YuYwpAQCAtMCwwICsxLDE5IEBACisvKg0KKyAgIGNsb2dmLmMNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDQtMTItMjQNCisqLw0KKw0KKy8qIGNsb2cgKHggKyBJICogeSkgPSBsb2cgKGh5cG90ICh4LCB5KSkgKyBJICogYXRhbjIgKHksIHgpICovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8Y29tcGxleC5oPg0KKw0KK2Zsb2F0IGNvbXBsZXggY2xvZ2YgKGZsb2F0IGNvbXBsZXggWikNCit7DQorICBmbG9hdCBjb21wbGV4IFJlczsNCisgIF9fcmVhbF9fIFJlcyA9IGxvZ2YgKF9oeXBvdCAoX19yZWFsX18gWiwgIF9faW1hZ19fIFopKTsNCisgIF9faW1hZ19fIFJlcyA9IGNhcmdmIChaKTsNCisgIHJldHVybiBSZXM7DQorfQ0KKw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jbG9nbC5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2Nsb2dsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGEyYzFiZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jbG9nbC5jCkBAIC0wLDAgKzEsMTkgQEAKKy8qDQorICAgY2xvZ2wuYw0KKyAgIENvbnRyaWJ1dGVkIGJ5IERhbm55IFNtaXRoDQorICAgMjAwNS0wMS0wNA0KKyovDQorDQorLyogY2xvZyAoeCArIEkgKiB5KSA9IGxvZyAoaHlwb3QgKHgsIHkpKSArIEkgKiBhdGFuMiAoeSwgeCkgKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorDQorbG9uZyBkb3VibGUgY29tcGxleCBjbG9nbCAobG9uZyBkb3VibGUgY29tcGxleCBaKQ0KK3sNCisgIGxvbmcgZG91YmxlIGNvbXBsZXggUmVzOw0KKyAgX19yZWFsX18gUmVzID0gbG9nbCAoaHlwb3RsIChfX3JlYWxfXyBaLCAgX19pbWFnX18gWikpOw0KKyAgX19pbWFnX18gUmVzID0gY2FyZ2wgKFopOw0KKyAgcmV0dXJuIFJlczsNCit9DQorDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2Nwb3cuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jcG93LmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODM2NzM5YgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jcG93LmMKQEAgLTAsMCArMSw0OCBAQAorLyogIGNwb3cuYyAqLw0KKy8qDQorICAgQ29udHJpYnV0ZWQgYnkgRGFubnkgU21pdGgNCisgICAyMDAzLTEwLTIwDQorKi8NCisNCisvKiBjcG93KFgsIFkpID0gY2V4cChYICogY2xvZyhZKSkgKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorDQorLyogVXNlIGRsbCB2ZXJzaW9uIG9mIHBvdyAqLw0KK2V4dGVybiBkb3VibGUgICgqX2ltcF9fcG93KSAoZG91YmxlLCBkb3VibGUpOw0KKyNkZWZpbmUgcG93ICgqX2ltcF9fcG93KQ0KKw0KK2RvdWJsZSBjb21wbGV4IGNwb3cgKGRvdWJsZSBjb21wbGV4IFgsIGRvdWJsZSBjb21wbGV4IFkpDQorew0KKyAgZG91YmxlIGNvbXBsZXggUmVzOw0KKyAgZG91YmxlIGk7DQorICBkb3VibGUgciA9IGh5cG90IChfX3JlYWxfXyBYLCBfX2ltYWdfXyBYKTsNCisgIGlmIChyID09IDAuMCkNCisgICAgew0KKyAgICAgICBfX3JlYWxfXyBSZXMgPSBfX2ltYWdfXyBSZXMgPSAwLjA7DQorICAgIH0NCisgIGVsc2UNCisgICAgew0KKyAgICAgIGRvdWJsZSByaG87DQorICAgICAgZG91YmxlIHRoZXRhOw0KKyAgICAgIGkgPSBjYXJnIChYKTsNCisgICAgICB0aGV0YSA9IGkgKiBfX3JlYWxfXyBZOw0KKyANCisgICAgICBpZiAoX19pbWFnX18gWSA9PSAwLjApDQorCS8qIFRoaXMgZ2l2ZXMgc2xpZ2h0bHkgbW9yZSBhY2N1cmF0ZSByZXN1bHRzIGluIHRoZXNlIGNhc2VzLiAqLw0KKyAgIAlyaG8gPSBwb3cgKHIsIF9fcmVhbF9fIFkpOw0KKyAgICAgIGVsc2UNCisJew0KKyAgICAgICAgICByID0gbG9nIChyKTsNCisJICAvKiByZWFycmFuZ2VtZW50IG9mIGNleHAoWCAqIGNsb2coWSkpICovDQorCSAgdGhldGEgKz0gciAqIF9faW1hZ19fIFk7DQorCSAgcmhvID0gZXhwIChyICogX19yZWFsX18gWSAtIGkgKiBfX2ltYWdfXyBZKTsNCisJfQ0KKw0KKyAgICAgIF9fcmVhbF9fIFJlcyA9IHJobyAqIGNvcyAodGhldGEpOw0KKyAgICAgIF9faW1hZ19fIFJlcyA9IHJobyAqIHNpbiAodGhldGEpOw0KKyAgICB9DQorICByZXR1cm4gIFJlczsNCit9DQorDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2Nwb3dmLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3Bvd2YuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNGMwZmFhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2Nwb3dmLmMKQEAgLTAsMCArMSw0MyBAQAorLyogIGNwb3dmLmMgKi8NCisvKg0KKyAgIENvbnRyaWJ1dGVkIGJ5IERhbm55IFNtaXRoDQorICAgMjAwNC0xMi0yNA0KKyovDQorDQorLyogY3BvdyhYLCBZKSA9IGNleHAoWCAqIGNsb2coWSkpICovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8Y29tcGxleC5oPg0KKw0KK2Zsb2F0IGNvbXBsZXggY3Bvd2YgKGZsb2F0IGNvbXBsZXggWCwgZmxvYXQgY29tcGxleCBZKQ0KK3sNCisgIGZsb2F0IGNvbXBsZXggUmVzOw0KKyAgZmxvYXQgaTsNCisgIGZsb2F0IHIgPSBfaHlwb3QgKF9fcmVhbF9fIFgsIF9faW1hZ19fIFgpOw0KKyAgaWYgKHIgPT0gMC4wZikNCisgICAgew0KKyAgICAgICBfX3JlYWxfXyBSZXMgPSBfX2ltYWdfXyBSZXMgPSAwLjA7DQorICAgIH0NCisgIGVsc2UNCisgICAgew0KKyAgICAgIGZsb2F0IHJobzsNCisgICAgICBmbG9hdCB0aGV0YTsNCisgICAgICBpID0gY2FyZ2YgKFgpOw0KKyAgICAgIHRoZXRhID0gaSAqIF9fcmVhbF9fIFk7DQorIA0KKyAgICAgIGlmIChfX2ltYWdfXyBZID09IDAuMGYpDQorCS8qIFRoaXMgZ2l2ZXMgc2xpZ2h0bHkgbW9yZSBhY2N1cmF0ZSByZXN1bHRzIGluIHRoZXNlIGNhc2VzLiAqLw0KKyAgIAlyaG8gPSBwb3dmIChyLCBfX3JlYWxfXyBZKTsNCisgICAgICBlbHNlDQorCXsNCisgICAgICAgICAgciA9IGxvZ2YgKHIpOw0KKwkgIC8qIHJlYXJyYW5nZW1lbnQgb2YgY2V4cChYICogY2xvZyhZKSkgKi8NCisJICB0aGV0YSArPSByICogX19pbWFnX18gWTsNCisJICByaG8gPSBleHBmIChyICogX19yZWFsX18gWSAtIGkgKiBfX2ltYWdfXyBZKTsNCisJfQ0KKw0KKyAgICAgIF9fcmVhbF9fIFJlcyA9IHJobyAqIGNvc2YgKHRoZXRhKTsNCisgICAgICBfX2ltYWdfXyBSZXMgPSByaG8gKiBzaW5mICh0aGV0YSk7DQorICAgIH0NCisgIHJldHVybiAgUmVzOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3Bvd2wuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jcG93bC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQwMWU5MGIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3Bvd2wuYwpAQCAtMCwwICsxLDQzIEBACisvKiAgY3Bvd2wuYyAqLw0KKy8qDQorICAgQ29udHJpYnV0ZWQgYnkgRGFubnkgU21pdGgNCisgICAyMDA1LTAxLTA0DQorKi8NCisNCisvKiBjcG93KFgsIFkpID0gY2V4cChYICogY2xvZyhZKSkgKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorDQorbG9uZyBkb3VibGUgY29tcGxleCBjcG93bCAobG9uZyBkb3VibGUgY29tcGxleCBYLCBsb25nIGRvdWJsZSBjb21wbGV4IFkpDQorew0KKyAgbG9uZyBkb3VibGUgY29tcGxleCBSZXM7DQorICBsb25nIGRvdWJsZSBpOw0KKyAgbG9uZyBkb3VibGUgciA9IGh5cG90bCAoX19yZWFsX18gWCwgX19pbWFnX18gWCk7DQorICBpZiAociA9PSAwLjBMKQ0KKyAgICB7DQorICAgICAgIF9fcmVhbF9fIFJlcyA9IF9faW1hZ19fIFJlcyA9IDAuMEw7DQorICAgIH0NCisgIGVsc2UNCisgICAgew0KKyAgICAgIGxvbmcgZG91YmxlIHJobzsNCisgICAgICBsb25nIGRvdWJsZSB0aGV0YTsNCisgICAgICBpID0gY2FyZ2wgKFgpOw0KKyAgICAgIHRoZXRhID0gaSAqIF9fcmVhbF9fIFk7DQorIA0KKyAgICAgIGlmIChfX2ltYWdfXyBZID09IDAuMEwpDQorCS8qIFRoaXMgZ2l2ZXMgc2xpZ2h0bHkgbW9yZSBhY2N1cmF0ZSByZXN1bHRzIGluIHRoZXNlIGNhc2VzLiAqLw0KKyAgIAlyaG8gPSBwb3dsIChyLCBfX3JlYWxfXyBZKTsNCisgICAgICBlbHNlDQorCXsNCisgICAgICAgICAgciA9IGxvZ2wgKHIpOw0KKwkgIC8qIHJlYXJyYW5nZW1lbnQgb2YgY2V4cChYICogY2xvZyhZKSkgKi8NCisJICB0aGV0YSArPSByICogX19pbWFnX18gWTsNCisJICByaG8gPSBleHBsIChyICogX19yZWFsX18gWSAtIGkgKiBfX2ltYWdfXyBZKTsNCisJfQ0KKw0KKyAgICAgIF9fcmVhbF9fIFJlcyA9IHJobyAqIGNvc2wgKHRoZXRhKTsNCisgICAgICBfX2ltYWdfXyBSZXMgPSByaG8gKiBzaW5sICh0aGV0YSk7DQorICAgIH0NCisgIHJldHVybiAgUmVzOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3Byb2ouYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jcHJvai5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI5MTAwYzEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3Byb2ouYwpAQCAtMCwwICsxLDIyIEBACisvKg0KKyAgIGNwcm9qLmMNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDMtMTAtMjANCisqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisNCisvKiBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBwcm9qZWN0aW9uIG9udG8gdGhlIFJpZW1hbm4gc3BoZXJlLiovDQorDQorZG91YmxlIGNvbXBsZXggY3Byb2ogKGRvdWJsZSBjb21wbGV4IFopDQorew0KKyAgY29tcGxleCBkb3VibGUgUmVzID0gWjsNCisgIGlmIChpc2luZiAoX19yZWFsX18gWikgfHwgaXNpbmYgKF9faW1hZ19fIFopKQ0KKyAgICB7DQorICAgICAgX19yZWFsX18gUmVzID0gSFVHRV9WQUw7DQorICAgICAgX19pbWFnX18gUmVzID0gY29weXNpZ24gKDAuMCwgX19pbWFnX18gWik7DQorICAgIH0NCisgIHJldHVybiBSZXM7DQorfQ0KKw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jcHJvamYuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jcHJvamYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMzExZTlkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2Nwcm9qZi5jCkBAIC0wLDAgKzEsMjIgQEAKKy8qDQorICAgY3Byb2pmLmMNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDQtMTItMjQNCisqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisNCisvKiBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBwcm9qZWN0aW9uIG9udG8gdGhlIFJpZW1hbm4gc3BoZXJlLiovDQorDQorZmxvYXQgY29tcGxleCBjcHJvamYgKGZsb2F0IGNvbXBsZXggWikNCit7DQorICBjb21wbGV4IGZsb2F0IFJlcyA9IFo7DQorICBpZiAoaXNpbmYgKF9fcmVhbF9fIFopIHx8IGlzaW5mIChfX2ltYWdfXyBaKSkNCisgICAgew0KKyAgICAgIF9fcmVhbF9fIFJlcyA9IEhVR0VfVkFMRjsNCisgICAgICBfX2ltYWdfXyBSZXMgPSBjb3B5c2lnbmYgKDAuMGYsIF9faW1hZ19fIFopOw0KKyAgICB9DQorICByZXR1cm4gUmVzOw0KK30NCisNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3Byb2psLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3Byb2psLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDA0MTczYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jcHJvamwuYwpAQCAtMCwwICsxLDIyIEBACisvKg0KKyAgIGNwcm9qbC5jDQorICAgQ29udHJpYnV0ZWQgYnkgRGFubnkgU21pdGgNCisgICAyMDA1LTAxLTA0DQorKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorDQorLyogUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgcHJvamVjdGlvbiBvbnRvIHRoZSBSaWVtYW5uIHNwaGVyZS4qLw0KKw0KK2xvbmcgZG91YmxlIGNvbXBsZXggY3Byb2psIChsb25nIGRvdWJsZSBjb21wbGV4IFopDQorew0KKyAgY29tcGxleCBsb25nIGRvdWJsZSBSZXMgPSBaOw0KKyAgaWYgKGlzaW5mIChfX3JlYWxfXyBaKSB8fCBpc2luZiAoX19pbWFnX18gWikpDQorICAgIHsNCisgICAgICBfX3JlYWxfXyBSZXMgPSBIVUdFX1ZBTEw7DQorICAgICAgX19pbWFnX18gUmVzID0gY29weXNpZ25sICgwLjBMLCBfX2ltYWdfXyBaKTsNCisgICAgfQ0KKyAgcmV0dXJuIFJlczsNCit9DQorDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NyZWFsLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3JlYWwuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNDgzMjdhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NyZWFsLmMKQEAgLTAsMCArMSw2IEBACisjaW5jbHVkZSA8Y29tcGxleC5oPg0KK2RvdWJsZSBfX2F0dHJpYnV0ZV9fICgoY29uc3QpKSBjcmVhbCAoZG91YmxlIGNvbXBsZXggX1opDQorew0KKyAgcmV0dXJuIF9fcmVhbF9fIF9aOw0KK30NCisNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3JlYWxmLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3JlYWxmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjkwY2JjYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jcmVhbGYuYwpAQCAtMCwwICsxLDYgQEAKKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorZmxvYXQgX19hdHRyaWJ1dGVfXyAoKGNvbnN0KSkgY3JlYWxmIChmbG9hdCBjb21wbGV4IF9aKQ0KK3sNCisgIHJldHVybiBfX3JlYWxfXyBfWjsNCit9DQorDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NyZWFsbC5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NyZWFsbC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQwM2YyYWMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3JlYWxsLmMKQEAgLTAsMCArMSw1IEBACisjaW5jbHVkZSA8Y29tcGxleC5oPg0KK2xvbmcgZG91YmxlIF9fYXR0cmlidXRlX18gKChjb25zdCkpIGNyZWFsbCAobG9uZyBkb3VibGUgY29tcGxleCBfWikNCit7DQorICByZXR1cm4gX19yZWFsX18gX1o7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jc2luLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3Npbi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZmMTA5OGIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3Npbi5jCkBAIC0wLDAgKzEsMjEgQEAKKy8qICBjc2luLmMgKi8NCisNCisvKg0KKyAgIENvbnRyaWJ1dGVkIGJ5IERhbm55IFNtaXRoDQorICAgMjAwMy0xMC0yMA0KKyovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8Y29tcGxleC5oPg0KKw0KKy8qIGNzaW4gKHggKyBJICogeSkgPSBzaW4gKHgpICogY29zaCAoeSkNCisgICAgKyBJICogKGNvcyAoeCkgKiBzaW5oICh5KSkgKi8gDQorDQorZG91YmxlIGNvbXBsZXggY3NpbiAoZG91YmxlIGNvbXBsZXggWikNCit7DQorICBkb3VibGUgY29tcGxleCBSZXM7DQorICBfX3JlYWxfXyBSZXMgPSBzaW4gKF9fcmVhbF9fIFopICogY29zaCAoIF9faW1hZ19fIFopOw0KKyAgX19pbWFnX18gUmVzID0gY29zIChfX3JlYWxfXyBaKSAqIHNpbmggKCBfX2ltYWdfXyBaKTsNCisgIHJldHVybiBSZXM7DQorfQ0KKw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jc2luZi5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NzaW5mLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODZkZmNiOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jc2luZi5jCkBAIC0wLDAgKzEsMjEgQEAKKy8qICBjc2luZi5jICovDQorDQorLyoNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDQtMTItMjQNCisqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisNCisvKiBjc2luICh4ICsgSSAqIHkpID0gc2luICh4KSAqIGNvc2ggKHkpDQorICAgICsgSSAqIChjb3MgKHgpICogc2luaCAoeSkpICovIA0KKw0KK2Zsb2F0IGNvbXBsZXggY3NpbmYgKGZsb2F0IGNvbXBsZXggWikNCit7DQorICBmbG9hdCBjb21wbGV4IFJlczsNCisgIF9fcmVhbF9fIFJlcyA9IHNpbmYgKF9fcmVhbF9fIFopICogY29zaGYgKCBfX2ltYWdfXyBaKTsNCisgIF9faW1hZ19fIFJlcyA9IGNvc2YgKF9fcmVhbF9fIFopICogc2luaGYgKCBfX2ltYWdfXyBaKTsNCisgIHJldHVybiBSZXM7DQorfQ0KKw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jc2luaC5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NzaW5oLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGQ1OGVjYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jc2luaC5jCkBAIC0wLDAgKzEsMjEgQEAKKy8qIGNzaW5oLmMgKi8NCisvKg0KKyAgIENvbnRyaWJ1dGVkIGJ5IERhbm55IFNtaXRoDQorICAgMjAwMy0xMC0yMA0KKyovDQorDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8Y29tcGxleC5oPg0KKw0KKy8qIGNzaW5oICh4ICsgSSAqIHkpID0gc2luaCAoeCkgKiBjb3MgKHkpDQorICAgICsgSSAqIChjb3NoICh4KSAqIHNpbiAoeSkpICovIA0KKw0KKw0KK2RvdWJsZSBjb21wbGV4IGNzaW5oIChkb3VibGUgY29tcGxleCBaKQ0KK3sNCisgIGRvdWJsZSBjb21wbGV4IFJlczsNCisgIF9fcmVhbF9fIFJlcyA9IHNpbmggKF9fcmVhbF9fIFopICogY29zIChfX2ltYWdfXyBaKTsNCisgIF9faW1hZ19fIFJlcyA9IGNvc2ggKF9fcmVhbF9fIFopICogc2luIChfX2ltYWdfXyBaKTsNCisgIHJldHVybiBSZXM7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jc2luaGYuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jc2luaGYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZGNkOGI4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NzaW5oZi5jCkBAIC0wLDAgKzEsMjEgQEAKKy8qIGNzaW5oZi5jICovDQorLyoNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDQtMTItMjQNCisqLw0KKw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisNCisvKiBjc2luaCAoeCArIEkgKiB5KSA9IHNpbmggKHgpICogY29zICh5KQ0KKyAgICArIEkgKiAoY29zaCAoeCkgKiBzaW4gKHkpKSAqLyANCisNCisNCitmbG9hdCBjb21wbGV4IGNzaW5oZiAoZmxvYXQgY29tcGxleCBaKQ0KK3sNCisgIGZsb2F0IGNvbXBsZXggUmVzOw0KKyAgX19yZWFsX18gUmVzID0gc2luaGYgKF9fcmVhbF9fIFopICogY29zZiAoX19pbWFnX18gWik7DQorICBfX2ltYWdfXyBSZXMgPSBjb3NoZiAoX19yZWFsX18gWikgKiBzaW5mIChfX2ltYWdfXyBaKTsNCisgIHJldHVybiBSZXM7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jc2luaGwuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jc2luaGwuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NmFhNmRiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NzaW5obC5jCkBAIC0wLDAgKzEsMjAgQEAKKy8qIGNzaW5obC5jICovDQorLyoNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDUtMDEtMDQNCisqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisNCisvKiBjc2luaCAoeCArIEkgKiB5KSA9IHNpbmggKHgpICogY29zICh5KQ0KKyAgICArIEkgKiAoY29zaCAoeCkgKiBzaW4gKHkpKSAqLyANCisNCisNCitsb25nIGRvdWJsZSBjb21wbGV4IGNzaW5obCAobG9uZyBkb3VibGUgY29tcGxleCBaKQ0KK3sNCisgIGxvbmcgZG91YmxlIGNvbXBsZXggUmVzOw0KKyAgX19yZWFsX18gUmVzID0gc2luaGwgKF9fcmVhbF9fIFopICogY29zbCAoX19pbWFnX18gWik7DQorICBfX2ltYWdfXyBSZXMgPSBjb3NobCAoX19yZWFsX18gWikgKiBzaW5sIChfX2ltYWdfXyBaKTsNCisgIHJldHVybiBSZXM7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jc2lubC5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NzaW5sLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDY4NzRlNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jc2lubC5jCkBAIC0wLDAgKzEsMjEgQEAKKy8qICBjc2lubC5jICovDQorDQorLyoNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDUtMDEtMDQNCisqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisNCisvKiBjc2luICh4ICsgSSAqIHkpID0gc2luICh4KSAqIGNvc2ggKHkpDQorICAgICsgSSAqIChjb3MgKHgpICogc2luaCAoeSkpICovIA0KKw0KK2xvbmcgZG91YmxlIGNvbXBsZXggY3NpbmwgKGxvbmcgZG91YmxlIGNvbXBsZXggWikNCit7DQorICBsb25nIGRvdWJsZSBjb21wbGV4IFJlczsNCisgIF9fcmVhbF9fIFJlcyA9IHNpbmwgKF9fcmVhbF9fIFopICogY29zaGwgKCBfX2ltYWdfXyBaKTsNCisgIF9faW1hZ19fIFJlcyA9IGNvc2wgKF9fcmVhbF9fIFopICogc2luaGwgKCBfX2ltYWdfXyBaKTsNCisgIHJldHVybiBSZXM7DQorfQ0KKw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jc3FydC5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NzcXJ0LmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWI2YmE3ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jc3FydC5jCkBAIC0wLDAgKzEsNTYgQEAKKy8qDQorICAgY3NxcnQuYw0KKyAgIENvbnRyaWJ1dGVkIGJ5IERhbm55IFNtaXRoDQorICAgMjAwMy0xMC0yMA0KKyovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8Y29tcGxleC5oPg0KKw0KK2RvdWJsZSBjb21wbGV4ICBjc3FydCAoZG91YmxlIGNvbXBsZXggWikNCit7DQorICBkb3VibGUgY29tcGxleCBSZXM7DQorICBkb3VibGUgdDsNCisgIGRvdWJsZSB4ID0gX19yZWFsX18gWjsNCisgIGRvdWJsZSB5ID0gX19pbWFnX18gWjsNCisNCisgIGlmICh5ID09IDAuMCkNCisgICAgew0KKyAgICAgIGlmICh4IDwgMC4wKQ0KKyAgICAgICAgew0KKyAJICBfX3JlYWxfXyBSZXMgPSAwLjA7DQorCSAgX19pbWFnX18gUmVzID0gc3FydCAoLXgpOw0KKyAgICAgICAgfQ0KKyAgICAgIGVsc2UNCisgICAgICAgIHsNCisgCSAgX19yZWFsX18gUmVzID0gc3FydCAoeCk7DQorCSAgX19pbWFnX18gUmVzID0gMC4wOw0KKyAgICAgICAgfQ0KKyAgICB9DQorDQorICBlbHNlIGlmICh4ID09IDAuMCkNCisgICAgew0KKyAgICAgIHQgPSBzcXJ0KDAuNSAqIGZhYnMgKHkpKTsNCisgICAgICBfX3JlYWxfXyBSZXMgPSB0Ow0KKyAgICAgIF9faW1hZ19fIFJlcyA9IHkgPiAwID8gdCA6IC10Ow0KKyAgICB9DQorDQorICBlbHNlDQorICAgIHsNCisgICAgICB0ID0gc3FydCAoMi4wICAqIChfaHlwb3QgKHgsIHkpICsgZmFicyAoeCkpKTsNCisgICAgICBkb3VibGUgdSA9IHQgLyAyLjA7DQorICAgICAgaWYgKCB4ID4gMC4wKQ0KKyAgICAgICAgewkNCisgICAgICAgICAgX19yZWFsX18gUmVzID0gdTsNCisgICAgICAgICAgX19pbWFnX18gUmVzID0geSAvIHQ7DQorICAgICAgICB9DQorICAgICAgZWxzZQ0KKyAgICAgICAgew0KKwkgIF9fcmVhbF9fIFJlcyA9IGZhYnMgKCB5IC8gdCk7DQorCSAgX19pbWFnX18gUmVzID0geSA8IDAuMCA/IC11IDogdTsNCisgICAgICAgIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIFJlczsNCit9DQorDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NzcXJ0Zi5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NzcXJ0Zi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJiNzA0OTkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3NxcnRmLmMKQEAgLTAsMCArMSw0OSBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8Y29tcGxleC5oPg0KKw0KK2Zsb2F0IGNvbXBsZXggIGNzcXJ0ZiAoZmxvYXQgY29tcGxleCBaKQ0KK3sNCisgIGZsb2F0IGNvbXBsZXggUmVzOw0KKyAgZmxvYXQgcjsNCisgIGZsb2F0IHggPSBfX3JlYWxfXyBaOw0KKyAgZmxvYXQgeSA9IF9faW1hZ19fIFo7DQorDQorICBpZiAoeSA9PSAwLjBmKQ0KKyAgICB7DQorICAgICAgaWYgKHggPCAwLjBmKQ0KKyAgICAgICAgew0KKyAJICBfX3JlYWxfXyBSZXMgPSAwLjBmOw0KKwkgIF9faW1hZ19fIFJlcyA9IHNxcnRmICgteCk7DQorICAgICAgICB9DQorICAgICAgZWxzZQ0KKyAgICAgICAgew0KKyAJICBfX3JlYWxfXyBSZXMgPSBzcXJ0ZiAoeCk7DQorCSAgX19pbWFnX18gUmVzID0gMC4wZjsNCisgICAgICAgIH0NCisgICAgfQ0KKw0KKyAgZWxzZSBpZiAoeCA9PSAwLjBmKQ0KKyAgICB7DQorICAgICAgciA9IHNxcnRmKDAuNWYgKiBmYWJzZiAoeSkpOw0KKyAgICAgIF9fcmVhbF9fIFJlcyA9IHI7DQorICAgICAgX19pbWFnX18gUmVzID0geSA+IDAgPyByIDogLXI7DQorICAgIH0NCisNCisgIGVsc2UNCisgICAgew0KKyAgICAgIGZsb2F0IHQgPSBzcXJ0ZiAoMiAqIChfaHlwb3QgKF9fcmVhbF9fIFosIF9faW1hZ19fIFopICsgZmFic2YgKHgpKSk7DQorICAgICAgZmxvYXQgdSA9IHQgLyAyLjBmOw0KKyAgICAgIGlmICggeCA+IDAuMGYpDQorICAgICAgICB7CQ0KKyAgICAgICAgICBfX3JlYWxfXyBSZXMgPSB1Ow0KKyAgICAgICAgICBfX2ltYWdfXyBSZXMgPSB5IC8gdDsNCisgICAgICAgIH0NCisgICAgICBlbHNlDQorICAgICAgICB7DQorCSAgX19yZWFsX18gUmVzID0gZmFic2YgKHkgLyB0KTsNCisJICBfX2ltYWdfXyBSZXMgPSB5IDwgMCA/IC11IDogdTsNCisgICAgICAgIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIFJlczsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NzcXJ0bC5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2NzcXJ0bC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNmZWY5MzcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3NxcnRsLmMKQEAgLTAsMCArMSw1NSBAQAorLyogIGNzcXJ0bC5jICovDQorLyoNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDUtMDEtMDQNCisqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisNCitsb25nIGRvdWJsZSBjb21wbGV4ICBjc3FydGwgKGxvbmcgZG91YmxlIGNvbXBsZXggWikNCit7DQorICBsb25nIGRvdWJsZSBjb21wbGV4IFJlczsNCisgIGxvbmcgZG91YmxlIHI7DQorICBsb25nIGRvdWJsZSB4ID0gX19yZWFsX18gWjsNCisgIGxvbmcgZG91YmxlIHkgPSBfX2ltYWdfXyBaOw0KKw0KKyAgaWYgKHkgPT0gMC4wTCkNCisgICAgew0KKyAgICAgIGlmICh4IDwgMC4wTCkNCisgICAgICAgIHsNCisgCSAgX19yZWFsX18gUmVzID0gMC4wTDsNCisJICBfX2ltYWdfXyBSZXMgPSBzcXJ0bCAoLXgpOw0KKyAgICAgICAgfQ0KKyAgICAgIGVsc2UNCisgICAgICAgIHsNCisgCSAgX19yZWFsX18gUmVzID0gc3FydGwgKHgpOw0KKwkgIF9faW1hZ19fIFJlcyA9IDAuMEw7DQorICAgICAgICB9DQorICAgIH0NCisNCisgIGVsc2UgaWYgKHggPT0gMC4wTCkNCisgICAgew0KKyAgICAgIHIgPSBzcXJ0bCgwLjVMICogZmFic2wgKHkpKTsNCisgICAgICBfX3JlYWxfXyBSZXMgPSByOw0KKyAgICAgIF9faW1hZ19fIFJlcyA9IHkgPiAwID8gciA6IC1yOw0KKyAgICB9DQorDQorICBlbHNlDQorICAgIHsNCisgICAgICBsb25nIGRvdWJsZSB0ID0gc3FydGwgKDIuMEwgKiAoaHlwb3RsIChfX3JlYWxfXyBaLCBfX2ltYWdfXyBaKSArIGZhYnNsICh4KSkpOw0KKyAgICAgIGxvbmcgZG91YmxlIHUgPSB0IC8gMi4wTDsNCisgICAgICBpZiAoIHggPiAwLjBMKQ0KKyAgICAgICAgewkNCisgICAgICAgICAgX19yZWFsX18gUmVzID0gdTsNCisgICAgICAgICAgX19pbWFnX18gUmVzID0geSAvIHQ7DQorICAgICAgICB9DQorICAgICAgZWxzZQ0KKyAgICAgICAgew0KKwkgIF9fcmVhbF9fIFJlcyA9IGZhYnNsICh5IC8gdCk7DQorCSAgX19pbWFnX18gUmVzID0geSA8IDAgPyAtdSA6IHU7DQorICAgICAgICB9DQorICAgIH0NCisNCisgIHJldHVybiBSZXM7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jdGFuLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3Rhbi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQyYmU0NDQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3Rhbi5jCkBAIC0wLDAgKzEsNDEgQEAKKy8qIGN0YW4uYyAqLw0KKw0KKy8qDQorICAgQ29udHJpYnV0ZWQgYnkgRGFubnkgU21pdGgNCisgICAyMDAzLTEwLTIwDQorKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorI2luY2x1ZGUgPGVycm5vLmg+DQorDQorDQorLyogY3RhbiAoeCArIEkgKiB5KSA9IChzaW4gKDIgKiB4KSAgKyAgSSAqIHNpbmgoMiAqIHkpKQ0KKwkJICAgICAgLyAoY29zICgyICogeCkgICsgIGNvc2ggKDIgKiB5KSkgKi8NCisNCitkb3VibGUgY29tcGxleCBjdGFuIChkb3VibGUgY29tcGxleCBaKQ0KK3sNCisgIGRvdWJsZSBjb21wbGV4IFJlczsNCisgIGRvdWJsZSB0d29fSSA9IDIuMCAqIF9faW1hZ19fIFo7DQorICBkb3VibGUgdHdvX1IgPSAyLjAgKiBfX3JlYWxfXyBaOw0KKyAgZG91YmxlIGRlbm9tID0gY29zICh0d29fUikgKyBjb3NoICh0d29fSSk7DQorICBpZiAoZGVub20gPT0gMC4wKQ0KKyAgICB7DQorICAgICAgZXJybm8gPSBFUkFOR0U7DQorICAgICAgX19yZWFsX18gUmVzID0gSFVHRV9WQUw7DQorICAgICAgX19pbWFnX18gUmVzID0gSFVHRV9WQUw7DQorICAgIH0NCisgIGVsc2UgaWYgKGlzaW5mIChkZW5vbSkpDQorICAgIHsNCisgICAgICBlcnJubyA9IEVSQU5HRTsNCisgICAgICBfX3JlYWxfXyBSZXMgPSAwLjA7DQorICAgICAgX19pbWFnX18gUmVzID0gdHdvX0kgPiAwID8gMS4wIDogLTEuMDsNCisgICAgfQ0KKyAgZWxzZQ0KKyAgICB7DQorICAgICAgX19yZWFsX18gUmVzID0gc2luICh0d29fUikgLyBkZW5vbTsNCisgICAgICBfX2ltYWdfXyBSZXMgPSBzaW5oICh0d29fSSkgLyBkZW5vbTsNCisgICAgfQ0KKyAgcmV0dXJuIFJlczsNCit9DQorDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2N0YW5mLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3RhbmYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZjEwYjgwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2N0YW5mLmMKQEAgLTAsMCArMSw0MSBAQAorLyogY3RhbmYuYyAqLw0KKw0KKy8qDQorICAgQ29udHJpYnV0ZWQgYnkgRGFubnkgU21pdGgNCisgICAyMDA0LTEyLTI0DQorKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorI2luY2x1ZGUgPGVycm5vLmg+DQorDQorDQorLyogY3RhbiAoeCArIEkgKiB5KSA9IChzaW4gKDIgKiB4KSAgKyAgSSAqIHNpbmgoMiAqIHkpKQ0KKwkJICAgICAgLyAoY29zICgyICogeCkgICsgIGNvc2ggKDIgKiB5KSkgKi8NCisNCitmbG9hdCBjb21wbGV4IGN0YW5mIChmbG9hdCBjb21wbGV4IFopDQorew0KKyAgZmxvYXQgY29tcGxleCBSZXM7DQorICBmbG9hdCB0d29fSSA9IDIuMGYgKiBfX2ltYWdfXyBaOw0KKyAgZmxvYXQgdHdvX1IgPSAyLjBmICogX19yZWFsX18gWjsNCisgIGZsb2F0IGRlbm9tID0gY29zZiAodHdvX1IpICsgY29zaGYgKHR3b19JKTsNCisgIGlmIChkZW5vbSA9PSAwLjBmKQ0KKyAgICB7DQorICAgICAgZXJybm8gPSBFUkFOR0U7DQorICAgICAgX19yZWFsX18gUmVzID0gSFVHRV9WQUxGOw0KKyAgICAgIF9faW1hZ19fIFJlcyA9IEhVR0VfVkFMRjsNCisgICAgfQ0KKyAgZWxzZSBpZiAoaXNpbmYgKGRlbm9tKSkNCisgICAgew0KKyAgICAgIGVycm5vID0gRVJBTkdFOw0KKyAgICAgIF9fcmVhbF9fIFJlcyA9IDAuMDsNCisgICAgICBfX2ltYWdfXyBSZXMgPSB0d29fSSA+IDAgPyAxLjBmIDogLTEuMGY7DQorICAgIH0NCisgIGVsc2UNCisgICAgew0KKyAgICAgIF9fcmVhbF9fIFJlcyA9IHNpbmYgKHR3b19SKSAvIGRlbm9tOw0KKyAgICAgIF9faW1hZ19fIFJlcyA9IHNpbmhmICh0d29fSSkgLyBkZW5vbTsNCisgICAgfQ0KKyAgcmV0dXJuIFJlczsNCit9DQorDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2N0YW5oLmMgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3RhbmguYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YWM5YmJhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2N0YW5oLmMKQEAgLTAsMCArMSw0NCBAQAorLyogIGN0YW5oLmMgKi8NCisNCisvKg0KKyAgIENvbnRyaWJ1dGVkIGJ5IERhbm55IFNtaXRoDQorICAgMjAwMy0xMC0yMA0KKyovDQorDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8Y29tcGxleC5oPg0KKyNpbmNsdWRlIDxlcnJuby5oPg0KKw0KKy8qDQorICBjdGFuaCAoeCArIEkgKiB5KSA9IChzaW5oICgyICogeCkgICsgIHNpbiAoMiAqIHkpICogSSApDQorCQkgICAgIC8gKGNvc2ggKDIgKiB4KSArIGNvcyAoMiAqIHkpKSAuDQorKi8NCisNCitkb3VibGUgY29tcGxleA0KK2N0YW5oIChkb3VibGUgY29tcGxleCBaKQ0KK3sNCisgIGRvdWJsZSBjb21wbGV4IFJlczsNCisgIGRvdWJsZSB0d29fUiA9IDIuMCAqIF9fcmVhbF9fIFo7DQorICBkb3VibGUgdHdvX0kgPSAyLjAgKiBfX2ltYWdfXyBaOw0KKyAgZG91YmxlIGRlbm9tID0gY29zaCAodHdvX1IpICsgY29zICh0d29fSSk7DQorDQorICBpZiAoZGVub20gPT0gMC4wKQ0KKyAgICB7DQorICAgICAgZXJybm8gPSBFUkFOR0U7DQorICAgICAgX19yZWFsX18gUmVzID0gSFVHRV9WQUw7DQorICAgICAgX19pbWFnX18gUmVzID0gSFVHRV9WQUw7DQorICAgIH0NCisgIGVsc2UgaWYgKCBpc2luZiAoZGVub20pKQ0KKyAgICB7DQorICAgICAgZXJybm8gPSBFUkFOR0U7DQorICAgICAgX19yZWFsX18gUmVzID0gdHdvX1IgPiAwID8gMS4wIDogLTEuMDsNCisgICAgICBfX2ltYWdfXyBSZXMgPSAwLjA7DQorICAgIH0NCisgIGVsc2UNCisgICAgew0KKyAgICAgIF9fcmVhbF9fIFJlcyA9IHNpbmggKHR3b19SKSAvIGRlbm9tOw0KKyAgICAgIF9faW1hZ19fIFJlcyA9IHNpbiAodHdvX0kpIC8gZGVub207DQorICAgIH0NCisgIHJldHVybiBSZXM7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY29tcGxleC9jdGFuaGYuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jdGFuaGYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNjVhYWUxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2N0YW5oZi5jCkBAIC0wLDAgKzEsNDQgQEAKKy8qICBjdGFuaGYuYyAqLw0KKw0KKy8qDQorICAgQ29udHJpYnV0ZWQgYnkgRGFubnkgU21pdGgNCisgICAyMDA0LTEyLTI0DQorKi8NCisNCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxjb21wbGV4Lmg+DQorI2luY2x1ZGUgPGVycm5vLmg+DQorDQorLyoNCisgIGN0YW5oICh4ICsgSSAqIHkpID0gKHNpbmggKDIgKiB4KSAgKyAgc2luICgyICogeSkgKiBJICkNCisJCSAgICAgLyAoY29zaCAoMiAqIHgpICsgY29zICgyICogeSkpIC4NCisqLw0KKw0KK2Zsb2F0IGNvbXBsZXgNCitjdGFuaGYgKGZsb2F0IGNvbXBsZXggWikNCit7DQorICBmbG9hdCBjb21wbGV4IFJlczsNCisgIGZsb2F0IHR3b19SID0gMi4wZiAqIF9fcmVhbF9fIFo7DQorICBmbG9hdCB0d29fSSA9IDIuMGYgKiBfX2ltYWdfXyBaOw0KKyAgZmxvYXQgZGVub20gPSBjb3NoZiAodHdvX1IpICsgY29zZiAodHdvX0kpOw0KKw0KKyAgaWYgKGRlbm9tID09IDAuMGYpDQorICAgIHsNCisgICAgICBlcnJubyA9IEVSQU5HRTsNCisgICAgICBfX3JlYWxfXyBSZXMgPSBIVUdFX1ZBTEY7DQorICAgICAgX19pbWFnX18gUmVzID0gSFVHRV9WQUxGOw0KKyAgICB9DQorICBlbHNlIGlmIChpc2luZiAoZGVub20pKQ0KKyAgICB7DQorICAgICAgZXJybm8gPSBFUkFOR0U7DQorICAgICAgX19yZWFsX18gUmVzID0gdHdvX1IgPiAwID8gMS4wZiA6IC0xLjBmOw0KKyAgICAgIF9faW1hZ19fIFJlcyA9IDAuMGY7DQorICAgIH0NCisgIGVsc2UNCisgICAgew0KKyAgICAgIF9fcmVhbF9fIFJlcyA9IHNpbmhmICh0d29fUikgLyBkZW5vbTsNCisgICAgICBfX2ltYWdfXyBSZXMgPSBzaW5mICh0d29fSSkgLyBkZW5vbTsNCisgICAgfQ0KKyAgcmV0dXJuIFJlczsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jb21wbGV4L2N0YW5obC5jIGIvbWluZ3ctdzY0LWNydC9jb21wbGV4L2N0YW5obC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkyOGU1MWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3RhbmhsLmMKQEAgLTAsMCArMSw0NCBAQAorLyogIGN0YW5obC5jICovDQorDQorLyoNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDUtMDEtMDQNCisqLw0KKw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisjaW5jbHVkZSA8ZXJybm8uaD4NCisNCisvKg0KKyAgY3RhbmggKHggKyBJICogeSkgPSAoc2luaCAoMiAqIHgpICArICBzaW4gKDIgKiB5KSAqIEkgKQ0KKwkJICAgICAvIChjb3NoICgyICogeCkgKyBjb3MgKDIgKiB5KSkgLg0KKyovDQorDQorbG9uZyBkb3VibGUgY29tcGxleA0KK2N0YW5obCAobG9uZyBkb3VibGUgY29tcGxleCBaKQ0KK3sNCisgIGxvbmcgZG91YmxlIGNvbXBsZXggUmVzOw0KKyAgbG9uZyBkb3VibGUgdHdvX1IgPSAyLjBMICogX19yZWFsX18gWjsNCisgIGxvbmcgZG91YmxlIHR3b19JID0gMi4wTCAqIF9faW1hZ19fIFo7DQorICBsb25nIGRvdWJsZSBkZW5vbSA9IGNvc2hsICh0d29fUikgKyBjb3NsICh0d29fSSk7DQorDQorICBpZiAoZGVub20gPT0gMC4wTCkNCisgICAgew0KKyAgICAgIGVycm5vID0gRVJBTkdFOw0KKyAgICAgIF9fcmVhbF9fIFJlcyA9IEhVR0VfVkFMTDsNCisgICAgICBfX2ltYWdfXyBSZXMgPSBIVUdFX1ZBTEw7DQorICAgIH0NCisgIGVsc2UgaWYgKGlzaW5mIChkZW5vbSkpDQorICAgIHsNCisgICAgICBlcnJubyA9IEVSQU5HRTsNCisgICAgICBfX3JlYWxfXyBSZXMgPSB0d29fUiA+IDAgPyAxLjBMIDogLTEuMEw7DQorICAgICAgX19pbWFnX18gUmVzID0gMC4wTDsNCisgICAgfQ0KKyAgZWxzZQ0KKyAgICB7DQorICAgICAgX19yZWFsX18gUmVzID0gc2luaGwgKHR3b19SKSAvIGRlbm9tOw0KKyAgICAgIF9faW1hZ19fIFJlcyA9IHNpbmwgKHR3b19JKSAvIGRlbm9tOw0KKyAgICB9DQorICByZXR1cm4gUmVzOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3RhbmwuYyBiL21pbmd3LXc2NC1jcnQvY29tcGxleC9jdGFubC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjViODU3NjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NvbXBsZXgvY3RhbmwuYwpAQCAtMCwwICsxLDQxIEBACisvKiBjdGFubC5jICovDQorDQorLyoNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aA0KKyAgIDIwMDUtMDEtMDQNCisqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGNvbXBsZXguaD4NCisjaW5jbHVkZSA8ZXJybm8uaD4NCisNCisNCisvKiBjdGFuICh4ICsgSSAqIHkpID0gKHNpbiAoMiAqIHgpICArICBJICogc2luaCgyICogeSkpDQorCQkgICAgICAvIChjb3MgKDIgKiB4KSAgKyAgY29zaCAoMiAqIHkpKSAqLw0KKw0KK2xvbmcgZG91YmxlIGNvbXBsZXggY3RhbmwgKGxvbmcgZG91YmxlIGNvbXBsZXggWikNCit7DQorICBsb25nIGRvdWJsZSBjb21wbGV4IFJlczsNCisgIGxvbmcgZG91YmxlIHR3b19JID0gMi4wTCAqIF9faW1hZ19fIFo7DQorICBsb25nIGRvdWJsZSB0d29fUiA9IDIuMEwgKiBfX3JlYWxfXyBaOw0KKyAgbG9uZyBkb3VibGUgZGVub20gPSBjb3NsICh0d29fUikgKyBjb3NobCAodHdvX0kpOw0KKyAgaWYgKGRlbm9tID09IDAuMEwpDQorICAgIHsNCisgICAgICBlcnJubyA9IEVSQU5HRTsNCisgICAgICBfX3JlYWxfXyBSZXMgPSBIVUdFX1ZBTEw7DQorICAgICAgX19pbWFnX18gUmVzID0gSFVHRV9WQUxMOw0KKyAgICB9DQorICBlbHNlIGlmIChpc2luZiAoZGVub20pKQ0KKyAgICB7DQorICAgICAgZXJybm8gPSBFUkFOR0U7DQorICAgICAgX19yZWFsX18gUmVzID0gMC4wOw0KKyAgICAgIF9faW1hZ19fIFJlcyA9IHR3b19JID4gMCA/IDEuMEwgOiAtMS4wTDsNCisgICAgfQ0KKyAgZWxzZQ0KKyAgICB7DQorICAgICAgX19yZWFsX18gUmVzID0gc2lubCAodHdvX1IpIC8gZGVub207DQorICAgICAgX19pbWFnX18gUmVzID0gc2luaGwgKHR3b19JKSAvIGRlbm9tOw0KKyAgICB9DQorICByZXR1cm4gUmVzOw0KK30NCisNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NydDBfYy5jIGIvbWluZ3ctdzY0LWNydC9jcnQwX2MuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNjUyNGE4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jcnQwX2MuYwpAQCAtMCwwICsxLDYgQEAKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisKK2ludCBtYWluIChpbnQgZmxhZ3MsIGNoYXIgKipjbWRsaW5lLCBjaGFyICppbnN0KQoreworICByZXR1cm4gKGludCkgV2luTWFpbiAoKEhJTlNUQU5DRSkgaW5zdCwgTlVMTCwgKExQU1RSKSBjbWRsaW5lLChEV09SRCkgZmxhZ3MpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvY3J0MF93LmMgYi9taW5ndy13NjQtY3J0L2NydDBfdy5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRkYzZlNjAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2NydDBfdy5jCkBAIC0wLDAgKzEsNiBAQAorI2luY2x1ZGUgPHdpbmRvd3MuaD4KKworaW50IHdtYWluIChpbnQgZmxhZ3MsIHdjaGFyX3QgKipjbWRsaW5lLCB3Y2hhcl90ICppbnN0KQoreworICByZXR1cm4gKGludCkgd1dpbk1haW4gKChISU5TVEFOQ0UpIGluc3QsIE5VTEwsIChMUFdTVFIpIGNtZGxpbmUsKERXT1JEKSBmbGFncyk7Cit9CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NydGJlZ2luLmMgYi9taW5ndy13NjQtY3J0L2NydGJlZ2luLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY3J0YmVnaW4uYwpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jcnRkbGwuYyBiL21pbmd3LXc2NC1jcnQvY3J0ZGxsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTk4YzY4OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY3J0ZGxsLmMKQEAgLTAsMCArMSwyMDEgQEAKKyNpZmRlZiBDUlRETEwKKyN1bmRlZiBDUlRETEwKKyNkZWZpbmUgX0RMTAorCisjaW5jbHVkZSA8b3NjYWxscy5oPgorI2luY2x1ZGUgPGludGVybmFsLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8d2luZG93cy5oPgorI2RlZmluZSBfREVDTF9ETExNQUlOCisjaW5jbHVkZSA8cHJvY2Vzcy5oPgorI2luY2x1ZGUgPGNydGRiZy5oPgorCisjaWZuZGVmIF9DUlRJTVAKKyNpZmRlZiBDUlRETEwKKyNkZWZpbmUgX0NSVElNUCBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKyNlbHNlCisjaWZkZWYgX0RMTAorI2RlZmluZSBfQ1JUSU1QIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQorI2Vsc2UKKyNkZWZpbmUgX0NSVElNUAorI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorI2luY2x1ZGUgPHNlY3RfYXR0cmlicy5oPgorI2luY2x1ZGUgPGxvY2FsZS5oPgorCitleHRlcm4gdm9pZCBfX2NkZWNsIF9pbml0dGVybShfUFZGViAqLF9QVkZWICopOworCitleHRlcm4gX0NSVEFMTE9DKCIuQ1JUJFhJQSIpIF9QSUZWIF9feGlfYVtdOworZXh0ZXJuIF9DUlRBTExPQygiLkNSVCRYSVoiKSBfUElGViBfX3hpX3pbXTsKK2V4dGVybiBfQ1JUQUxMT0MoIi5DUlQkWENBIikgX1BWRlYgX194Y19hW107CitleHRlcm4gX0NSVEFMTE9DKCIuQ1JUJFhDWiIpIF9QVkZWIF9feGNfeltdOworCitleHRlcm4gY29uc3QgUElNQUdFX1RMU19DQUxMQkFDSyBfX2R5bl90bHNfaW5pdF9jYWxsYmFjazsKKworc3RhdGljIGludCBfX3Byb2NfYXR0YWNoZWQgPSAwOworCitleHRlcm4gX1BWRlYgKl9fb25leGl0YmVnaW47CitleHRlcm4gX1BWRlYgKl9fb25leGl0ZW5kOworCitleHRlcm4gaW50IG1pbmd3X2FwcF90eXBlOworCitleHRlcm4gQk9PTCBXSU5BUEkgRGxsTWFpbiAoSEFORExFIGhEbGxIYW5kbGUsIERXT1JEIGR3UmVhc29uLCBMUFZPSUQgbHByZXNlcnZlZCk7CisKK2V4dGVybiBCT09MIChXSU5BUEkgKiBjb25zdCBfcFJhd0RsbE1haW4pIChIQU5ETEUsIERXT1JELCBMUFZPSUQpOworQk9PTCAoV0lOQVBJICogY29uc3QgX3BSYXdEbGxNYWluKSAoSEFORExFLCBEV09SRCwgTFBWT0lEKSA9IE5VTEw7CisKK3N0YXRpYyBpbnQgcHJlX2NfaW5pdCAodm9pZCk7CisKK19DUlRBTExPQygiLkNSVCRYSUFBIikgX1BJRlYgcGNpbml0ID0gcHJlX2NfaW5pdDsKKworc3RhdGljIGludAorcHJlX2NfaW5pdCAodm9pZCkKK3sKKyAgX1BWRlYgKm9uZXhpdGJlZ2luOworCisgIG9uZXhpdGJlZ2luID0gKF9QVkZWICopIG1hbGxvYyAoMzIgKiBzaXplb2YgKF9QVkZWKSk7CisgIF9fb25leGl0ZW5kID0gX19vbmV4aXRiZWdpbiA9IChfUFZGViAqKSBfZW5jb2RlX3BvaW50ZXIgKG9uZXhpdGJlZ2luKTsKKworICBpZiAob25leGl0YmVnaW4gPT0gTlVMTCkKKyAgICByZXR1cm4gMTsKKyAgKm9uZXhpdGJlZ2luID0gKF9QVkZWKSBOVUxMOworICByZXR1cm4gMDsKK30KKworQk9PTCBXSU5BUEkgX0NSVF9JTklUIChIQU5ETEUgaERsbEhhbmRsZSwgRFdPUkQgZHdSZWFzb24sIExQVk9JRCBscHJlc2VydmVkKQoreworICBpZiAoZHdSZWFzb24gPT0gRExMX1BST0NFU1NfREVUQUNIKQorICAgIHsKKyAgICAgIGlmIChfX3Byb2NfYXR0YWNoZWQgPiAwKQorCV9fcHJvY19hdHRhY2hlZC0tOworICAgICAgZWxzZQorCXJldHVybiBGQUxTRTsKKyAgICB9CisgIGlmIChkd1JlYXNvbiA9PSBETExfUFJPQ0VTU19BVFRBQ0gpCisgICAgeworICAgICAgdm9pZCAqbG9ja19mcmVlID0gTlVMTDsKKyAgICAgIHZvaWQgKmZpYmVyaWQgPSAoKFBOVF9USUIpTnRDdXJyZW50VGViICgpKS0+U3RhY2tCYXNlOworICAgICAgaW50IG5lc3RlZCA9IEZBTFNFOworICAgICAgCisgICAgICB3aGlsZSAoKGxvY2tfZnJlZSA9IEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlUG9pbnRlciAoKHZvbGF0aWxlIFBWT0lEICopICZfX25hdGl2ZV9zdGFydHVwX2xvY2ssCisJCQkJCQkJICAgICBmaWJlcmlkLCAwKSkgIT0gMCkKKwl7CisJICBpZiAobG9ja19mcmVlID09IGZpYmVyaWQpCisJICAgIHsKKwkgICAgICBuZXN0ZWQgPSBUUlVFOworCSAgICAgIGJyZWFrOworCSAgICB9CisJICBTbGVlcCgxMDAwKTsKKwl9CisgICAgICBpZiAoX19uYXRpdmVfc3RhcnR1cF9zdGF0ZSAhPSBfX3VuaW5pdGlhbGl6ZWQpCisJeworCSAgX2Ftc2dfZXhpdCgzMSk7CisJfQorICAgICAgZWxzZQorCXsKKwkgIF9fbmF0aXZlX3N0YXJ0dXBfc3RhdGUgPSBfX2luaXRpYWxpemluZzsKKwkgIAorCSAgX2luaXR0ZXJtICgoX1BWRlYgKikgKHZvaWQgKikgX194aV9hLCAoX1BWRlYgKikgKHZvaWQgKikgX194aV96KTsKKwkgIF9pbml0dGVybSAoX194Y19hLF9feGNfeik7CisJICBfX25hdGl2ZV9zdGFydHVwX3N0YXRlID0gX19pbml0aWFsaXplZDsKKwl9CisgICAgICBpZiAoISBuZXN0ZWQpCisJeworCSAgSW50ZXJsb2NrZWRFeGNoYW5nZVBvaW50ZXIgKCh2b2xhdGlsZSBQVk9JRCAqKSAmX19uYXRpdmVfc3RhcnR1cF9sb2NrLCAwKTsKKwl9CisgICAgICBpZiAoX19keW5fdGxzX2luaXRfY2FsbGJhY2sgIT0gTlVMTCAmJgorCSAgX0lzTm9ud3JpdGFibGVJbkN1cnJlbnRJbWFnZSAoKFBCWVRFKSAmX19keW5fdGxzX2luaXRfY2FsbGJhY2spKQorCXsKKwkgIF9fZHluX3Rsc19pbml0X2NhbGxiYWNrIChoRGxsSGFuZGxlLCBETExfVEhSRUFEX0FUVEFDSCwgbHByZXNlcnZlZCk7CisJfQorICAgICAgX0NydFNldENoZWNrQ291bnQgKFRSVUUpOworICAgICAgX19wcm9jX2F0dGFjaGVkKys7CisgICAgfQorICBlbHNlIGlmIChkd1JlYXNvbiA9PSBETExfUFJPQ0VTU19ERVRBQ0gpCisgICAgeworICAgICAgdm9pZCAqbG9ja19mcmVlID0gTlVMTDsKKyAgICAgIHdoaWxlICgobG9ja19mcmVlID0gSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2VQb2ludGVyICgodm9sYXRpbGUgUFZPSUQgKikgJl9fbmF0aXZlX3N0YXJ0dXBfbG9jaywoUFZPSUQpIDEsIDApKSAhPSAwKQorCXsKKwkgIFNsZWVwKDEwMDApOworCX0KKyAgICAgIGlmKF9fbmF0aXZlX3N0YXJ0dXBfc3RhdGUhPV9faW5pdGlhbGl6ZWQpCisJeworCSAgX2Ftc2dfZXhpdCAoMzEpOworCX0KKyAgICAgIGVsc2UKKwl7CisJICBfUFZGViAqIG9uZXhpdGJlZ2luID0gKF9QVkZWICopIF9kZWNvZGVfcG9pbnRlciAoX19vbmV4aXRiZWdpbik7CisJICBpZiAob25leGl0YmVnaW4pCisJICAgIHsKKwkgICAgICBfUFZGViAqb25leGl0ZW5kID0gKF9QVkZWICopIF9kZWNvZGVfcG9pbnRlciAoX19vbmV4aXRlbmQpOworCSAgICAgIHdoaWxlICgtLW9uZXhpdGVuZCA+PSBvbmV4aXRiZWdpbikKKwkJaWYgKCpvbmV4aXRlbmQgIT0gTlVMTCkKKwkJICAoKipvbmV4aXRlbmQpICgpOworCSAgICAgIGZyZWUgKG9uZXhpdGJlZ2luKTsKKwkgICAgICBfX29uZXhpdGJlZ2luID0gX19vbmV4aXRlbmQgPSAoX1BWRlYgKikgTlVMTDsKKwkgICAgfQorCSAgX19uYXRpdmVfc3RhcnR1cF9zdGF0ZSA9IF9fdW5pbml0aWFsaXplZDsKKwkgIEludGVybG9ja2VkRXhjaGFuZ2VQb2ludGVyICgodm9sYXRpbGUgUFZPSUQgKikgJl9fbmF0aXZlX3N0YXJ0dXBfbG9jaywgMCk7CisJfQorICAgIH0KKyAgcmV0dXJuIFRSVUU7Cit9CisKK3N0YXRpYyBCT09MIF9fRGxsTWFpbkNSVFN0YXJ0dXAgKEhBTkRMRSwgRFdPUkQsIExQVk9JRCk7CisKK0JPT0wgV0lOQVBJCitEbGxNYWluQ1JUU3RhcnR1cChIQU5ETEUgaERsbEhhbmRsZSxEV09SRCBkd1JlYXNvbixMUFZPSUQgbHByZXNlcnZlZCkKK3sKKyAgbWluZ3dfYXBwX3R5cGUgPSAwOworICBpZiAoZHdSZWFzb24gPT0gRExMX1BST0NFU1NfQVRUQUNIKQorICAgIHsKKyAgICAgIF9fc2VjdXJpdHlfaW5pdF9jb29raWUgKCk7CisgICAgfQorICByZXR1cm4gX19EbGxNYWluQ1JUU3RhcnR1cCAoaERsbEhhbmRsZSwgZHdSZWFzb24sIGxwcmVzZXJ2ZWQpOworfQorCitfX2RlY2xzcGVjKG5vaW5saW5lKSBCT09MCitfX0RsbE1haW5DUlRTdGFydHVwIChIQU5ETEUgaERsbEhhbmRsZSwgRFdPUkQgZHdSZWFzb24sIExQVk9JRCBscHJlc2VydmVkKQoreworICBCT09MIHJldGNvZGUgPSBUUlVFOworCisgIF9fbmF0aXZlX2RsbG1haW5fcmVhc29uID0gZHdSZWFzb247CisgIGlmIChkd1JlYXNvbiA9PSBETExfUFJPQ0VTU19ERVRBQ0ggJiYgX19wcm9jX2F0dGFjaGVkID09IDApCisgICAgeworCXJldGNvZGUgPSBGQUxTRTsKKwlnb3RvIGlfX2xlYXZlOworICAgIH0KKyAgaWYgKGR3UmVhc29uID09IERMTF9QUk9DRVNTX0FUVEFDSCB8fCBkd1JlYXNvbiA9PSBETExfVEhSRUFEX0FUVEFDSCkKKyAgICB7CisJaWYgKF9wUmF3RGxsTWFpbikKKwkgIHJldGNvZGUgPSAoKl9wUmF3RGxsTWFpbikgKGhEbGxIYW5kbGUsIGR3UmVhc29uLCBscHJlc2VydmVkKTsKKwlpZiAocmV0Y29kZSkKKwkgIHJldGNvZGUgPSBfQ1JUX0lOSVQgKGhEbGxIYW5kbGUsIGR3UmVhc29uLCBscHJlc2VydmVkKTsKKwlpZiAoISByZXRjb2RlKQorCSAgZ290byBpX19sZWF2ZTsKKyAgICB9CisgIHJldGNvZGUgPSBEbGxNYWluKGhEbGxIYW5kbGUsZHdSZWFzb24sbHByZXNlcnZlZCk7CisgIGlmICgoZHdSZWFzb24gPT0gRExMX1BST0NFU1NfQVRUQUNIKSAmJiAhIHJldGNvZGUpCisgICAgeworCURsbE1haW4gKGhEbGxIYW5kbGUsIERMTF9QUk9DRVNTX0RFVEFDSCwgbHByZXNlcnZlZCk7CisJX0NSVF9JTklUIChoRGxsSGFuZGxlLCBETExfUFJPQ0VTU19ERVRBQ0gsIGxwcmVzZXJ2ZWQpOworCWlmIChfcFJhd0RsbE1haW4pCisJICAoKl9wUmF3RGxsTWFpbikgKGhEbGxIYW5kbGUsIERMTF9QUk9DRVNTX0RFVEFDSCwgbHByZXNlcnZlZCk7CisgICAgfQorICBpZiAoZHdSZWFzb24gPT0gRExMX1BST0NFU1NfREVUQUNIIHx8IGR3UmVhc29uID09IERMTF9USFJFQURfREVUQUNIKQorICAgIHsKKwlpZiAoX0NSVF9JTklUIChoRGxsSGFuZGxlLCBkd1JlYXNvbiwgbHByZXNlcnZlZCkgPT0gRkFMU0UpCisJICB7CisJICAgIHJldGNvZGUgPSBGQUxTRTsKKwkgIH0KKwlpZiAocmV0Y29kZSAmJiBfcFJhd0RsbE1haW4pCisJICB7CisJICAgIHJldGNvZGUgPSAoKl9wUmF3RGxsTWFpbikgKGhEbGxIYW5kbGUsIGR3UmVhc29uLCBscHJlc2VydmVkKTsKKwkgIH0KKyAgICB9CitpX19sZWF2ZToKKyAgX19uYXRpdmVfZGxsbWFpbl9yZWFzb24gPSBVSU5UX01BWDsKKyAgcmV0dXJuIHJldGNvZGUgOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NydGRsbC5kZWYgYi9taW5ndy13NjQtY3J0L2NydGRsbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWZlYmRkZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY3J0ZGxsLmRlZgpAQCAtMCwwICsxLDg0NCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc3ZjcnQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitFWFBPUlRTDQorJEkxMF9PVVRQVVQNCis7IHB1YmxpYzogX19jZGVjbCBfX25vbl9ydHRpX29iamVjdDo6X19ub25fcnR0aV9vYmplY3QoY2xhc3MgX19ub25fcnR0aV9vYmplY3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorOyBHQ0MgPSBfX1pOMTdfX25vbl9ydHRpX29iamVjdEMyRVJLU18NCis/PzBfX25vbl9ydHRpX29iamVjdEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIF9fbm9uX3J0dGlfb2JqZWN0OjpfX25vbl9ydHRpX29iamVjdChjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKzsgR0NDID0gX19aTjE3X19ub25fcnR0aV9vYmplY3RDMUVSS1NfDQorPz8wX19ub25fcnR0aV9vYmplY3RAQFFFQUFAUEVCREBaDQorOyBwcml2YXRlOiBfX2NkZWNsIGJhZF9jYXN0OjpiYWRfY2FzdChjaGFyIGNvbnN0ICogX19wdHI2NCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBiYWRfY2FzdEBAQUVBQUBQRUJRRUJEQFoNCis7IHB1YmxpYzogX19jZGVjbCBiYWRfY2FzdDo6YmFkX2Nhc3QoY2hhciBjb25zdCAqIF9fcHRyNjQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wYmFkX2Nhc3RAQFFFQUFAQUVCUUVCREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgYmFkX2Nhc3Q6OmJhZF9jYXN0KGNsYXNzIGJhZF9jYXN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MGJhZF9jYXN0QEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgYmFkX2Nhc3Q6OmJhZF9jYXN0KGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wYmFkX2Nhc3RAQFFFQUFAUEVCREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgYmFkX3R5cGVpZDo6YmFkX3R5cGVpZChjbGFzcyBiYWRfdHlwZWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MGJhZF90eXBlaWRAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBiYWRfdHlwZWlkOjpiYWRfdHlwZWlkKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wYmFkX3R5cGVpZEBAUUVBQUBQRUJEQFoNCis7IHB1YmxpYzogX19jZGVjbCBleGNlcHRpb246OmV4Y2VwdGlvbihjaGFyIGNvbnN0ICogX19wdHI2NCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBleGNlcHRpb25AQFFFQUFAQUVCUUVCREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgZXhjZXB0aW9uOjpleGNlcHRpb24oY2hhciBjb25zdCAqIF9fcHRyNjQgY29uc3QgJiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MGV4Y2VwdGlvbkBAUUVBQUBBRUJRRUJESEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgZXhjZXB0aW9uOjpleGNlcHRpb24oY2xhc3MgZXhjZXB0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MGV4Y2VwdGlvbkBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIGV4Y2VwdGlvbjo6ZXhjZXB0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzBleGNlcHRpb25AQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIF9fbm9uX3J0dGlfb2JqZWN0Ojp+X19ub25fcnR0aV9vYmplY3Qodm9pZCkgX19wdHI2NA0KKz8/MV9fbm9uX3J0dGlfb2JqZWN0QEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBiYWRfY2FzdDo6fmJhZF9jYXN0KHZvaWQpIF9fcHRyNjQNCis/PzFiYWRfY2FzdEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgYmFkX3R5cGVpZDo6fmJhZF90eXBlaWQodm9pZCkgX19wdHI2NA0KKz8/MWJhZF90eXBlaWRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIGV4Y2VwdGlvbjo6fmV4Y2VwdGlvbih2b2lkKSBfX3B0cjY0DQorPz8xZXhjZXB0aW9uQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCB0eXBlX2luZm86On50eXBlX2luZm8odm9pZCkgX19wdHI2NA0KKz8/MXR5cGVfaW5mb0BAVUVBQUBYWg0KKzsgdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBvcGVyYXRvciBuZXcodW5zaWduZWQgX19pbnQ2NCkNCis7IEdDQyA9IF9fWm53eQ0KKz8/MkBZQVBFQVhfS0BaDQorOyB2b2lkIF9fY2RlY2wgb3BlcmF0b3IgZGVsZXRlKHZvaWQgKiBfX3B0cjY0KQ0KKzsgR0NDID0gX19aZGxQdg0KKz8/M0BZQVhQRUFYQFoNCis7IHB1YmxpYzogY2xhc3MgX19ub25fcnR0aV9vYmplY3QgJiBfX3B0cjY0IF9fY2RlY2wgX19ub25fcnR0aV9vYmplY3Q6Om9wZXJhdG9yPShjbGFzcyBfX25vbl9ydHRpX29iamVjdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRfX25vbl9ydHRpX29iamVjdEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIGJhZF9jYXN0ICYgX19wdHI2NCBfX2NkZWNsIGJhZF9jYXN0OjpvcGVyYXRvcj0oY2xhc3MgYmFkX2Nhc3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80YmFkX2Nhc3RAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBiYWRfdHlwZWlkICYgX19wdHI2NCBfX2NkZWNsIGJhZF90eXBlaWQ6Om9wZXJhdG9yPShjbGFzcyBiYWRfdHlwZWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NGJhZF90eXBlaWRAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBleGNlcHRpb24gJiBfX3B0cjY0IF9fY2RlY2wgZXhjZXB0aW9uOjpvcGVyYXRvcj0oY2xhc3MgZXhjZXB0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NGV4Y2VwdGlvbkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHR5cGVfaW5mbzo6b3BlcmF0b3I9PShjbGFzcyB0eXBlX2luZm8gY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz84dHlwZV9pbmZvQEBRRUJBSEFFQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHR5cGVfaW5mbzo6b3BlcmF0b3IhPShjbGFzcyB0eXBlX2luZm8gY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz85dHlwZV9pbmZvQEBRRUJBSEFFQlYwQEBaDQorOyBjb25zdCAgX19ub25fcnR0aV9vYmplY3Q6OmB2ZnRhYmxlJw0KKz8/XzdfX25vbl9ydHRpX29iamVjdEBANkJADQorOyBjb25zdCAgYmFkX2Nhc3Q6OmB2ZnRhYmxlJw0KKz8/XzdiYWRfY2FzdEBANkJADQorOyBjb25zdCAgYmFkX3R5cGVpZDo6YHZmdGFibGUnDQorPz9fN2JhZF90eXBlaWRAQDZCQA0KKzsgY29uc3QgIGV4Y2VwdGlvbjo6YHZmdGFibGUnDQorPz9fN2V4Y2VwdGlvbkBANkJADQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBiYWRfY2FzdDo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZiYWRfY2FzdEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgYmFkX3R5cGVpZDo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZiYWRfdHlwZWlkQEBRRUFBWFhaDQorOyB2b2lkICogX19wdHI2NCBfX2NkZWNsIG9wZXJhdG9yIG5ld1tdKHVuc2lnbmVkIF9faW50NjQpDQorOyBHTlUgPSBfX1puYXkNCis/P19VQFlBUEVBWF9LQFoNCis7IHZvaWQgX19jZGVjbCBvcGVyYXRvciBkZWxldGVbXSh2b2lkICogX19wdHI2NCkNCis7IEdOVSA9IF9fWmRhUHYNCis/P19WQFlBWFBFQVhAWg0KK19fdW5jYXVnaHRfZXhjZXB0aW9uDQorOyBpbnQgKF9fY2RlY2wqX19jZGVjbCBfcXVlcnlfbmV3X2hhbmRsZXIodm9pZCkpKHVuc2lnbmVkIF9faW50NjQpDQorOyBHTlUgPSBfX1oxOF9xdWVyeV9uZXdfaGFuZGxlcnYNCis/X3F1ZXJ5X25ld19oYW5kbGVyQEBZQVA2QUhfS0BaWFoNCis7IGludCBfX2NkZWNsIF9xdWVyeV9uZXdfbW9kZSh2b2lkKQ0KKzsgR05VID0gX19aMTVfcXVlcnlfbmV3X21vZGV2DQorP19xdWVyeV9uZXdfbW9kZUBAWUFIWFoNCis7IGludCAoX19jZGVjbCpfX2NkZWNsIF9zZXRfbmV3X2hhbmRsZXIoaW50IChfX2NkZWNsKikodW5zaWduZWQgX19pbnQ2NCkpKSh1bnNpZ25lZCBfX2ludDY0KQ0KKzsgR05VID0gX19aMTZfc2V0X25ld19oYW5kbGVyUEZpeUUNCis/X3NldF9uZXdfaGFuZGxlckBAWUFQNkFIX0tAWlA2QUgwQFpAWg0KKzsgaW50IF9fY2RlY2wgX3NldF9uZXdfbW9kZShpbnQpDQorOyBHTlUgPSBfX1oxM19zZXRfbmV3X21vZGVpDQorP19zZXRfbmV3X21vZGVAQFlBSEhAWg0KKzsgdm9pZCAoX19jZGVjbCpfX2NkZWNsIF9zZXRfc2VfdHJhbnNsYXRvcih2b2lkIChfX2NkZWNsKikodW5zaWduZWQgaW50LHN0cnVjdCBfRVhDRVBUSU9OX1BPSU5URVJTICogX19wdHI2NCkpKSh1bnNpZ25lZCBpbnQsc3RydWN0IF9FWENFUFRJT05fUE9JTlRFUlMgKiBfX3B0cjY0KQ0KKzsgR05VID0gX19aMThfc2V0X3NlX3RyYW5zbGF0b3JQRnZqUDE5X0VYQ0VQVElPTl9QT0lOVEVSU0UNCis/X3NldF9zZV90cmFuc2xhdG9yQEBZQVA2QVhJUEVBVV9FWENFUFRJT05fUE9JTlRFUlNAQEBaUDZBWEkwQFpAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCB0eXBlX2luZm86OmJlZm9yZShjbGFzcyB0eXBlX2luZm8gY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2JlZm9yZUB0eXBlX2luZm9AQFFFQkFIQUVCVjFAQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCB0eXBlX2luZm86Om5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9uYW1lQHR5cGVfaW5mb0BAUUVCQVBFQkRYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIHR5cGVfaW5mbzo6cmF3X25hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9yYXdfbmFtZUB0eXBlX2luZm9AQFFFQkFQRUJEWFoNCis7IHZvaWQgKF9fY2RlY2wqX19jZGVjbCBzZXRfbmV3X2hhbmRsZXIodm9pZCAoX19jZGVjbCopKHZvaWQpKSkodm9pZCkNCis7IEdOVSA9IF9fWjE1c2V0X25ld19oYW5kbGVyUEZ2dkUNCis/c2V0X25ld19oYW5kbGVyQEBZQVA2QVhYWlA2QVhYWkBaDQorOyB2b2lkIChfX2NkZWNsKl9fY2RlY2wgc2V0X3Rlcm1pbmF0ZSh2b2lkIChfX2NkZWNsKikodm9pZCkpKSh2b2lkKQ0KKzsgR05VID0gX19aMTNzZXRfdGVybWluYXRlUEZ2dkUNCis/c2V0X3Rlcm1pbmF0ZUBAWUFQNkFYWFpQNkFYWFpAWg0KKzsgdm9pZCAoX19jZGVjbCpfX2NkZWNsIHNldF91bmV4cGVjdGVkKHZvaWQgKF9fY2RlY2wqKSh2b2lkKSkpKHZvaWQpDQorOyBHTlUgPSBfX1oxNHNldF91bmV4cGVjdGVkUEZ2dkUNCis/c2V0X3VuZXhwZWN0ZWRAQFlBUDZBWFhaUDZBWFhaQFoNCis7IHZvaWQgX19jZGVjbCB0ZXJtaW5hdGUodm9pZCkNCis7IEdOVSA9IF9fWjl0ZXJtaW5hdGV2DQorP3Rlcm1pbmF0ZUBAWUFYWFoNCis7IHZvaWQgX19jZGVjbCB1bmV4cGVjdGVkKHZvaWQpDQorOyBHTlUgPSBfX1oxMHVuZXhwZWN0ZWR2DQorP3VuZXhwZWN0ZWRAQFlBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBleGNlcHRpb246OndoYXQodm9pZCljb25zdCAgX19wdHI2NA0KKz93aGF0QGV4Y2VwdGlvbkBAVUVCQVBFQkRYWg0KK19DeHhUaHJvd0V4Y2VwdGlvbg0KK19HZXRkYXlzDQorX0dldG1vbnRocw0KK19HZXR0bmFtZXMNCitfSFVHRSBEQVRBDQorX1N0cmZ0aW1lDQorX1hjcHRGaWx0ZXINCitfX0Nfc3BlY2lmaWNfaGFuZGxlcg0KK19fQ3BwWGNwdEZpbHRlcg0KK19fQ3h4RnJhbWVIYW5kbGVyDQorX19EZXN0cnVjdEV4Y2VwdGlvbk9iamVjdA0KK19fUlRDYXN0VG9Wb2lkDQorX19SVER5bmFtaWNDYXN0DQorX19SVHR5cGVpZA0KK19fU1RSSU5HVE9MRA0KK19fX2xjX2NvZGVwYWdlX2Z1bmMNCitfX19sY19jb2xsYXRlX2NwX2Z1bmMNCitfX19sY19oYW5kbGVfZnVuYw0KK19fX21iX2N1cl9tYXhfZnVuYw0KK19fX3NldGxjX2FjdGl2ZV9mdW5jDQorX19fdW5ndWFyZGVkX3JlYWRsY19hY3RpdmVfYWRkX2Z1bmMNCitfX2FyZ2MgREFUQQ0KK19fYXJndiBEQVRBDQorX19iYWRpb2luZm8gREFUQQ0KK19fY3J0Q29tcGFyZVN0cmluZ0ENCitfX2NydENvbXBhcmVTdHJpbmdXDQorX19jcnRHZXRMb2NhbGVJbmZvVw0KK19fY3J0R2V0U3RyaW5nVHlwZVcNCitfX2NydExDTWFwU3RyaW5nQQ0KK19fY3J0TENNYXBTdHJpbmdXDQorX19kbGxvbmV4aXQNCitfX2Rvc2Vycm5vDQorX19mcGVjb2RlDQorX19nZXRtYWluYXJncw0KK19faW5pdGVudiBEQVRBDQorX19pb2JfZnVuYw0KK19faXNhc2NpaQ0KK19faXNjc3ltDQorX19pc2NzeW1mDQorX19sY19jb2RlcGFnZSBEQVRBDQorX19sY19jb2xsYXRlX2NwIERBVEENCitfX2xjX2hhbmRsZSBEQVRBDQorX19sY29udl9pbml0DQorX19tYl9jdXJfbWF4IERBVEENCitfX3BjdHlwZV9mdW5jDQorX19waW9pbmZvIERBVEENCitfX3B3Y3R5cGVfZnVuYw0KK19fcHhjcHRpbmZvcHRycw0KK19fc2V0X2FwcF90eXBlDQorX19zZXRsY19hY3RpdmUgREFUQQ0KK19fc2V0dXNlcm1hdGhlcnINCitfX3RocmVhZGhhbmRsZQ0KK19fdGhyZWFkaWQNCitfX3RvYXNjaWkNCitfX3VuRE5hbWUNCitfX3VuRE5hbWVFeA0KK19fdW5ndWFyZGVkX3JlYWRsY19hY3RpdmUgREFUQQ0KK19fd2FyZ3YgREFUQQ0KK19fd2NzZXJyb3INCitfX3dnZXRtYWluYXJncw0KK19fd2luaXRlbnYgREFUQQ0KK19hYnM2NA0KK19hY2Nlc3MNCitfYWNtZGxuIERBVEENCitfYWV4aXRfcnRuIERBVEENCitfYWxpZ25lZF9mcmVlDQorX2FsaWduZWRfbWFsbG9jDQorX2FsaWduZWRfb2Zmc2V0X21hbGxvYw0KK19hbGlnbmVkX29mZnNldF9yZWFsbG9jDQorX2FsaWduZWRfcmVhbGxvYw0KK19hbXNnX2V4aXQNCitfYXNzZXJ0DQorX2F0b2RibA0KK19hdG9pNjQNCitfYXRvbGRibA0KK19iZWVwDQorX2JlZ2ludGhyZWFkDQorX2JlZ2ludGhyZWFkZXgNCitfY19leGl0DQorX2NhYnMNCitfY2FsbG5ld2gNCitfY2V4aXQNCitfY2dldHMNCitfY2dldHdzDQorX2NoZGlyDQorX2NoZHJpdmUNCitfY2hnc2lnbg0KK19jaGdzaWduZg0KK19jaG1vZA0KK19jaHNpemUNCitfY2xlYXJmcA0KK19jbG9zZQ0KK19jb21taXQNCitfY29tbW9kZSBEQVRBDQorX2NvbnRyb2w4Nw0KK19jb250cm9sZnANCitfY29weXNpZ24NCitfY29weXNpZ25mDQorX2NwcmludGYNCitfY3B1dHMNCitfY3B1dHdzDQorX2NyZWF0DQorX2NzY2FuZg0KK19jdGltZTY0DQorX2N0eXBlDQorX2N3YWl0DQorX2N3cHJpbnRmDQorX2N3c2NhbmYNCitfZGF5bGlnaHQgREFUQQ0KK19kc3RiaWFzIERBVEENCitfZHVwDQorX2R1cDINCitfZWN2dA0KK19lbmR0aHJlYWQNCitfZW5kdGhyZWFkZXgNCitfZW52aXJvbiBEQVRBDQorX2VvZg0KK19lcnJubw0KK19leGVjbA0KK19leGVjbGUNCitfZXhlY2xwDQorX2V4ZWNscGUNCitfZXhlY3YNCitfZXhlY3ZlDQorX2V4ZWN2cA0KK19leGVjdnBlDQorX2V4aXQNCitfZXhwYW5kDQorX2ZjbG9zZWFsbA0KK19mY3Z0DQorX2Zkb3Blbg0KK19mZ2V0Y2hhcg0KK19mZ2V0d2NoYXINCitfZmlsYnVmDQorX2ZpbGVpbmZvIERBVEENCitfZmlsZWxlbmd0aA0KK19maWxlbGVuZ3RoaTY0DQorX2ZpbGVubw0KK19maW5kY2xvc2UNCitfZmluZGZpcnN0DQorX2ZpbmRmaXJzdDY0DQorX2ZpbmRmaXJzdGk2NA0KK19maW5kbmV4dA0KK19maW5kbmV4dDY0DQorX2ZpbmRuZXh0aTY0DQorX2Zpbml0ZQ0KK19maW5pdGVmDQorX2Zsc2J1Zg0KK19mbHVzaGFsbA0KK19mbW9kZSBEQVRBDQorX2ZwY2xhc3MNCitfZnBjbGFzc2YNCitfZnByZXNldA0KK19mcHV0Y2hhcg0KK19mcHV0d2NoYXINCitfZnNvcGVuDQorX2ZzdGF0DQorX2ZzdGF0NjQNCitfZnN0YXRpNjQNCitfZnRpbWUNCitfZnRpbWU2NA0KK19mdWxscGF0aA0KK19mdXRpbWUNCitfZnV0aW1lNjQNCitfZ2N2dA0KK19nZXRfaGVhcF9oYW5kbGUNCitfZ2V0X29zZmhhbmRsZQ0KK19nZXRfc2JoX3RocmVzaG9sZA0KK19nZXRjaA0KK19nZXRjaGUNCitfZ2V0Y3dkDQorX2dldGRjd2QNCitfZ2V0ZGlza2ZyZWUNCitfZ2V0ZGxscHJvY2FkZHINCitfZ2V0ZHJpdmUNCitfZ2V0ZHJpdmVzDQorX2dldG1heHN0ZGlvDQorX2dldG1iY3ANCitfZ2V0cGlkDQorX2dldHN5c3RpbWUNCitfZ2V0dw0KK19nZXR3Y2gNCitfZ2V0d2NoZQ0KK19nZXR3cw0KK19nbXRpbWU2NA0KK19oZWFwYWRkDQorX2hlYXBjaGsNCitfaGVhcG1pbg0KK19oZWFwc2V0DQorX2hlYXB1c2VkDQorX2hlYXB3YWxrDQorX2h5cG90DQorX2h5cG90Zg0KK19pNjR0b2ENCitfaTY0dG93DQorX2luaXR0ZXJtDQorX2lvYiBEQVRBDQorX2lzYXR0eQ0KK19pc2N0eXBlDQorX2lzbWJiYWxudW0NCitfaXNtYmJhbHBoYQ0KK19pc21iYmdyYXBoDQorX2lzbWJia2FsbnVtDQorX2lzbWJia2FuYQ0KK19pc21iYmtwcmludA0KK19pc21iYmtwdW5jdA0KK19pc21iYmxlYWQNCitfaXNtYmJwcmludA0KK19pc21iYnB1bmN0DQorX2lzbWJidHJhaWwNCitfaXNtYmNhbG51bQ0KK19pc21iY2FscGhhDQorX2lzbWJjZGlnaXQNCitfaXNtYmNncmFwaA0KK19pc21iY2hpcmENCitfaXNtYmNrYXRhDQorX2lzbWJjbDANCitfaXNtYmNsMQ0KK19pc21iY2wyDQorX2lzbWJjbGVnYWwNCitfaXNtYmNsb3dlcg0KK19pc21iY3ByaW50DQorX2lzbWJjcHVuY3QNCitfaXNtYmNzcGFjZQ0KK19pc21iY3N5bWJvbA0KK19pc21iY3VwcGVyDQorX2lzbWJzbGVhZA0KK19pc21ic3RyYWlsDQorX2lzbmFuDQorX2lzbmFuZg0KK19pdG9hDQorX2l0b3cNCitfajANCitfajENCitfam4NCitfa2JoaXQNCitfbGZpbmQNCitfbG9hZGRsbA0KK19sb2NhbF91bndpbmQNCitfbG9jYWx0aW1lNjQNCitfbG9jaw0KK19sb2NraW5nDQorX2xvZ2INCitfbG9nYmYNCitfbHJvdGwNCitfbHJvdHINCitfbHNlYXJjaA0KK19sc2Vlaw0KK19sc2Vla2k2NA0KK19sdG9hDQorX2x0b3cNCitfbWFrZXBhdGgNCitfbWJidG9tYmMNCitfbWJidHlwZQ0KK19tYmNhc2VtYXAgREFUQQ0KK19tYmNjcHkNCitfbWJjamlzdG9qbXMNCitfbWJjam1zdG9qaXMNCitfbWJjbGVuDQorX21iY3RvaGlyYQ0KK19tYmN0b2thdGENCitfbWJjdG9sb3dlcg0KK19tYmN0b21iYg0KK19tYmN0b3VwcGVyDQorX21iY3R5cGUgREFUQQ0KK19tYnNidHlwZQ0KK19tYnNjYXQNCitfbWJzY2hyDQorX21ic2NtcA0KK19tYnNjb2xsDQorX21ic2NweQ0KK19tYnNjc3BuDQorX21ic2RlYw0KK19tYnNkdXANCitfbWJzaWNtcA0KK19tYnNpY29sbA0KK19tYnNpbmMNCitfbWJzbGVuDQorX21ic2x3cg0KK19tYnNuYmNhdA0KK19tYnNuYmNtcA0KK19tYnNuYmNudA0KK19tYnNuYmNvbGwNCitfbWJzbmJjcHkNCitfbWJzbmJpY21wDQorX21ic25iaWNvbGwNCitfbWJzbmJzZXQNCitfbWJzbmNhdA0KK19tYnNuY2NudA0KK19tYnNuY21wDQorX21ic25jb2xsDQorX21ic25jcHkNCitfbWJzbmV4dGMNCitfbWJzbmljbXANCitfbWJzbmljb2xsDQorX21ic25pbmMNCitfbWJzbnNldA0KK19tYnNwYnJrDQorX21ic3JjaHINCitfbWJzcmV2DQorX21ic3NldA0KK19tYnNzcG4NCitfbWJzc3BucA0KK19tYnNzdHINCitfbWJzdG9rDQorX21ic3RybGVuDQorX21ic3Vwcg0KK19tZW1jY3B5DQorX21lbWljbXANCitfbWtkaXINCitfbWtnbXRpbWUNCitfbWtnbXRpbWU2NA0KK19ta3RlbXANCitfbWt0aW1lNjQNCitfbXNpemUNCitfbmV4dGFmdGVyDQorX25leHRhZnRlcmYNCitfb25leGl0DQorX29wZW4NCitfb3Blbl9vc2ZoYW5kbGUNCitfb3NwbGF0Zm9ybSBEQVRBDQorX29zdmVyIERBVEENCitfcGNsb3NlDQorX3BjdHlwZSBEQVRBDQorX3BnbXB0ciBEQVRBDQorX3BpcGUNCitfcG9wZW4NCitfcHVyZWNhbGwNCitfcHV0Y2gNCitfcHV0ZW52DQorX3B1dHcNCitfcHV0d2NoDQorX3B1dHdzDQorX3B3Y3R5cGUgREFUQQ0KK19yZWFkDQorX3Jlc2V0c3Rrb2Zsdw0KK19ybWRpcg0KK19ybXRtcA0KK19yb3RsDQorX3JvdGw2NA0KK19yb3RyDQorX3JvdHI2NA0KK19zY2FsYg0KK19zY2FsYmYNCitfc2NwcmludGYNCitfc2N3cHJpbnRmDQorX3NlYXJjaGVudg0KK19zZXRfZXJyb3JfbW9kZQ0KK19zZXRfc2JoX3RocmVzaG9sZA0KK19zZXRlcnJvcm1vZGUNCitfc2V0am1wDQorX3NldGptcGV4DQorX3NldG1heHN0ZGlvDQorX3NldG1iY3ANCitfc2V0bW9kZQ0KK19zZXRzeXN0aW1lDQorX3NsZWVwDQorX3NucHJpbnRmDQorX3Nuc2NhbmYNCitfc253cHJpbnRmDQorX3Nud3NjYW5mDQorX3NvcGVuDQorX3NwYXdubA0KK19zcGF3bmxlDQorX3NwYXdubHANCitfc3Bhd25scGUNCitfc3Bhd252DQorX3NwYXdudmUNCitfc3Bhd252cA0KK19zcGF3bnZwZQ0KK19zcGxpdHBhdGgNCitfc3RhdA0KK19zdGF0NjQNCitfc3RhdGk2NA0KK19zdGF0dXNmcA0KK19zdHJjbXBpDQorX3N0cmRhdGUNCitfc3RyZHVwDQorX3N0cmVycm9yDQorX3N0cmljbXANCitfc3RyaWNvbGwNCitfc3RybHdyDQorX3N0cm5jb2xsDQorX3N0cm5pY21wDQorX3N0cm5pY29sbA0KK19zdHJuc2V0DQorX3N0cnJldg0KK19zdHJzZXQNCitfc3RydGltZQ0KK19zdHJ0b2k2NA0KK19zdHJ0b3VpNjQNCitfc3RydXByDQorX3N3YWINCitfc3lzX2Vycmxpc3QgREFUQQ0KK19zeXNfbmVyciBEQVRBDQorX3RlbGwNCitfdGVsbGk2NA0KK190ZW1wbmFtDQorX3RpbWU2NA0KK190aW1lem9uZSBEQVRBDQorX3RvbG93ZXINCitfdG91cHBlcg0KK190em5hbWUgREFUQQ0KK190enNldA0KK191aTY0dG9hDQorX3VpNjR0b3cNCitfdWx0b2ENCitfdWx0b3cNCitfdW1hc2sNCitfdW5nZXRjaA0KK191bmdldHdjaA0KK191bmxpbmsNCitfdW5sb2FkZGxsDQorX3VubG9jaw0KK191dGltZQ0KK191dGltZTY0DQorX3ZzY3ByaW50Zg0KK192c2N3cHJpbnRmDQorX3ZzbnByaW50Zg0KK192c253cHJpbnRmDQorX3dhY2Nlc3MNCitfd2FzY3RpbWUNCitfd2NoZGlyDQorX3djaG1vZA0KK193Y21kbG4gREFUQQ0KK193Y3JlYXQNCitfd2NzZHVwDQorX3djc2Vycm9yDQorX3djc2ljbXANCitfd2NzaWNvbGwNCitfd2NzbHdyDQorX3djc25jb2xsDQorX3djc25pY21wDQorX3djc25pY29sbA0KK193Y3Nuc2V0DQorX3djc3Jldg0KK193Y3NzZXQNCitfd2NzdG9pNjQNCitfd2NzdG91aTY0DQorX3djc3Vwcg0KK193Y3RpbWUNCitfd2N0aW1lNjQNCitfd2N0eXBlDQorX3dlbnZpcm9uIERBVEENCitfd2V4ZWNsDQorX3dleGVjbGUNCitfd2V4ZWNscA0KK193ZXhlY2xwZQ0KK193ZXhlY3YNCitfd2V4ZWN2ZQ0KK193ZXhlY3ZwDQorX3dleGVjdnBlDQorX3dmZG9wZW4NCitfd2ZpbmRmaXJzdA0KK193ZmluZGZpcnN0NjQNCitfd2ZpbmRmaXJzdGk2NA0KK193ZmluZG5leHQNCitfd2ZpbmRuZXh0NjQNCitfd2ZpbmRuZXh0aTY0DQorX3dmb3Blbg0KK193ZnJlb3Blbg0KK193ZnNvcGVuDQorX3dmdWxscGF0aA0KK193Z2V0Y3dkDQorX3dnZXRkY3dkDQorX3dnZXRlbnYNCitfd2lubWFqb3IgREFUQQ0KK193aW5taW5vciBEQVRBDQorX3dpbnZlciBEQVRBDQorX3dtYWtlcGF0aA0KK193bWtkaXINCitfd21rdGVtcA0KK193b3Blbg0KK193cGVycm9yDQorX3dwZ21wdHIgREFUQQ0KK193cG9wZW4NCitfd3B1dGVudg0KK193cmVtb3ZlDQorX3dyZW5hbWUNCitfd3JpdGUNCitfd3JtZGlyDQorX3dzZWFyY2hlbnYNCitfd3NldGxvY2FsZQ0KK193c29wZW4NCitfd3NwYXdubA0KK193c3Bhd25sZQ0KK193c3Bhd25scA0KK193c3Bhd25scGUNCitfd3NwYXdudg0KK193c3Bhd252ZQ0KK193c3Bhd252cA0KK193c3Bhd252cGUNCitfd3NwbGl0cGF0aA0KK193c3RhdA0KK193c3RhdDY0DQorX3dzdGF0aTY0DQorX3dzdHJkYXRlDQorX3dzdHJ0aW1lDQorX3dzeXN0ZW0NCitfd3RlbXBuYW0NCitfd3RtcG5hbQ0KK193dG9mDQorX3d0b2kNCitfd3RvaTY0DQorX3d0b2wNCitfd3VubGluaw0KK193dXRpbWUNCitfd3V0aW1lNjQNCitfeTANCitfeTENCitfeW4NCithYm9ydA0KK2Ficw0KK2Fjb3MNCithY29zZg0KK2FzY3RpbWUNCithc2luDQorYXNpbmYNCithdGFuDQorYXRhbjINCithdGFuMmYNCithdGFuZg0KK2F0ZXhpdA0KK2F0b2YNCithdG9pDQorYXRvbA0KK2JzZWFyY2gNCitjYWxsb2MNCitjZWlsDQorY2VpbGYNCitjbGVhcmVycg0KK2Nsb2NrDQorY29zDQorY29zZg0KK2Nvc2gNCitjb3NoZg0KK2N0aW1lDQorZGlmZnRpbWUNCitkaXYNCitleGl0DQorZXhwDQorZXhwZg0KK2ZhYnMNCitmY2xvc2UNCitmZW9mDQorZmVycm9yDQorZmZsdXNoDQorZmdldGMNCitmZ2V0cG9zDQorZmdldHMNCitmZ2V0d2MNCitmZ2V0d3MNCitmbG9vcg0KK2Zsb29yZg0KK2Ztb2QNCitmbW9kZg0KK2ZvcGVuDQorZnByaW50Zg0KK2ZwdXRjDQorZnB1dHMNCitmcHV0d2MNCitmcHV0d3MNCitmcmVhZA0KK2ZyZWUNCitmcmVvcGVuDQorZnJleHANCitmc2NhbmYNCitmc2Vlaw0KK2ZzZXRwb3MNCitmdGVsbA0KK2Z3cHJpbnRmDQorZndyaXRlDQorZndzY2FuZg0KK2dldGMNCitnZXRjaGFyDQorZ2V0ZW52DQorZ2V0cw0KK2dldHdjDQorZ2V0d2NoYXINCitnbXRpbWUNCitpc193Y3R5cGUNCitpc2FsbnVtDQoraXNhbHBoYQ0KK2lzY250cmwNCitpc2RpZ2l0DQoraXNncmFwaA0KK2lzbGVhZGJ5dGUNCitpc2xvd2VyDQoraXNwcmludA0KK2lzcHVuY3QNCitpc3NwYWNlDQoraXN1cHBlcg0KK2lzd2FsbnVtDQoraXN3YWxwaGENCitpc3dhc2NpaQ0KK2lzd2NudHJsDQoraXN3Y3R5cGUNCitpc3dkaWdpdA0KK2lzd2dyYXBoDQoraXN3bG93ZXINCitpc3dwcmludA0KK2lzd3B1bmN0DQoraXN3c3BhY2UNCitpc3d1cHBlcg0KK2lzd3hkaWdpdA0KK2lzeGRpZ2l0DQorbGFicw0KK2xkZXhwDQorbGRpdg0KK2xvY2FsZWNvbnYNCitsb2NhbHRpbWUNCitsb2cNCitsb2cxMA0KK2xvZzEwZg0KK2xvZ2YNCitsb25nam1wDQorbWFsbG9jDQorbWJsZW4NCittYnN0b3djcw0KK21idG93Yw0KK21lbWNocg0KK21lbWNtcA0KK21lbWNweQ0KK21lbW1vdmUNCittZW1zZXQNCitta3RpbWUNCittb2RmDQorbW9kZmYNCitwZXJyb3INCitwb3cNCitwb3dmDQorcHJpbnRmDQorcHV0Yw0KK3B1dGNoYXINCitwdXRzDQorcHV0d2MNCitwdXR3Y2hhcg0KK3Fzb3J0DQorcmFpc2UNCityYW5kDQorcmVhbGxvYw0KK3JlbW92ZQ0KK3JlbmFtZQ0KK3Jld2luZA0KK3NjYW5mDQorc2V0YnVmDQorc2V0am1wDQorc2V0bG9jYWxlDQorc2V0dmJ1Zg0KK3NpZ25hbA0KK3Npbg0KK3NpbmYNCitzaW5oDQorc2luaGYNCitzcHJpbnRmDQorc3FydA0KK3NxcnRmDQorc3JhbmQNCitzc2NhbmYNCitzdHJjYXQNCitzdHJjaHINCitzdHJjbXANCitzdHJjb2xsDQorc3RyY3B5DQorc3RyY3Nwbg0KK3N0cmVycm9yDQorc3RyZnRpbWUNCitzdHJsZW4NCitzdHJuY2F0DQorc3RybmNtcA0KK3N0cm5jcHkNCitzdHJwYnJrDQorc3RycmNocg0KK3N0cnNwbg0KK3N0cnN0cg0KK3N0cnRvZA0KK3N0cnRvaw0KK3N0cnRvbA0KK3N0cnRvdWwNCitzdHJ4ZnJtDQorc3dwcmludGYNCitzd3NjYW5mDQorc3lzdGVtDQordGFuDQordGFuZg0KK3RhbmgNCit0aW1lDQordG1wZmlsZQ0KK3RtcG5hbQ0KK3RvbG93ZXINCit0b3VwcGVyDQordG93bG93ZXINCit0b3d1cHBlcg0KK3VuZ2V0Yw0KK3VuZ2V0d2MNCit2ZnByaW50Zg0KK3Zmd3ByaW50Zg0KK3ZwcmludGYNCit2c3ByaW50Zg0KK3Zzd3ByaW50Zg0KK3Z3cHJpbnRmDQord2NzY2F0DQord2NzY2hyDQord2NzY21wDQord2NzY29sbA0KK3djc2NweQ0KK3djc2NzcG4NCit3Y3NmdGltZQ0KK3djc2xlbg0KK3djc25jYXQNCit3Y3NuY21wDQord2NzbmNweQ0KK3djc3BicmsNCit3Y3NyY2hyDQord2Nzc3BuDQord2Nzc3RyDQord2NzdG9kDQord2NzdG9rDQord2NzdG9sDQord2NzdG9tYnMNCit3Y3N0b3VsDQord2NzeGZybQ0KK3djdG9tYg0KK3dwcmludGYNCit3c2NhbmYNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2NydGVuZC5jIGIvbWluZ3ctdzY0LWNydC9jcnRlbmQuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9jcnRlbmQuYwpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9jcnRleGUuYyBiL21pbmd3LXc2NC1jcnQvY3J0ZXhlLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTg3OTMyYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvY3J0ZXhlLmMKQEAgLTAsMCArMSwyOTEgQEAKKyN1bmRlZiBDUlRETEwKKyNkZWZpbmUgX0RMTAorCisjZGVmaW5lIFNQRUNJQUxfQ1JURVhFCisKKyNpbmNsdWRlIDxvc2NhbGxzLmg+CisjaW5jbHVkZSA8aW50ZXJuYWwuaD4KKyNpbmNsdWRlIDxwcm9jZXNzLmg+CisjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHRjaGFyLmg+CisjaW5jbHVkZSA8c2VjdF9hdHRyaWJzLmg+CisjaW5jbHVkZSA8bG9jYWxlLmg+CisKKyNpZm5kZWYgX193aW5pdGVudgorZXh0ZXJuIHdjaGFyX3QgKioqX2ltcF9fX193aW5pdGVudjsKKyNkZWZpbmUgX193aW5pdGVudiAoKl9pbXBfX19fd2luaXRlbnYpCisjZW5kaWYKKworI2lmbmRlZiBfX2luaXRlbnYKK2V4dGVybiBjaGFyICoqKl9pbXBfX19faW5pdGVudjsKKyNkZWZpbmUgX19pbml0ZW52ICgqX2ltcF9fX19pbml0ZW52KQorI2VuZGlmCisKKy8qIFRoaXMgc3ltYm9sIGlzIGRlZmluZWQgYnkgbGQuICAqLworZXh0ZXJuIElNQUdFX0RPU19IRUFERVIgX0ltYWdlQmFzZTsKKworI2RlZmluZSBTUEFDRUNIQVIgX1QoJyAnKQorI2RlZmluZSBEUVVPVEVDSEFSIF9UKCdcIicpCisKK19DUlRJTVAgdm9pZCBfX3NldHVzZXJtYXRoZXJyKGludCAoX19jZGVjbCAqKShzdHJ1Y3QgX2V4Y2VwdGlvbiAqKSk7CisKK2V4dGVybiBpbnQgKl9pbXBfX19mbW9kZTsKK2V4dGVybiBpbnQgKl9pbXBfX19jb21tb2RlOworCitleHRlcm4gaW50IF9mbW9kZTsKK2V4dGVybiBpbnQgKl9pbXBfX19jb21tb2RlOworI2RlZmluZSBfY29tbW9kZSAoKl9pbXBfX19jb21tb2RlKQorZXh0ZXJuIGludCBfZG93aWxkY2FyZDsKKworZXh0ZXJuIGludCBfX2RlZmF1bHRtYXRoZXJyOworZXh0ZXJuIF9DUlRJTVAgdm9pZCBfX2NkZWNsIF9pbml0dGVybShfUFZGViAqLCBfUFZGViAqKTsKKworc3RhdGljIGludCBfX2NkZWNsIGNoZWNrX21hbmFnZWRfYXBwICh2b2lkKTsKKworZXh0ZXJuIF9DUlRBTExPQygiLkNSVCRYSUEiKSBfUElGViBfX3hpX2FbXTsKK2V4dGVybiBfQ1JUQUxMT0MoIi5DUlQkWElaIikgX1BJRlYgX194aV96W107CitleHRlcm4gX0NSVEFMTE9DKCIuQ1JUJFhDQSIpIF9QVkZWIF9feGNfYVtdOworZXh0ZXJuIF9DUlRBTExPQygiLkNSVCRYQ1oiKSBfUFZGViBfX3hjX3pbXTsKKworZXh0ZXJuIGNvbnN0IFBJTUFHRV9UTFNfQ0FMTEJBQ0sgX19keW5fdGxzX2luaXRfY2FsbGJhY2s7CisKK2V4dGVybiBfUFZGViAqX19vbmV4aXRiZWdpbjsKK2V4dGVybiBfUFZGViAqX19vbmV4aXRlbmQ7CisKK2V4dGVybiBpbnQgbWluZ3dfYXBwX3R5cGU7CisKK3N0YXRpYyBpbnQgYXJnYzsKKyNpZmRlZiBXUFJGTEFHCitzdGF0aWMgd2NoYXJfdCAqKmFyZ3Y7CitzdGF0aWMgd2NoYXJfdCAqKmVudnA7CisjZWxzZQorc3RhdGljIGNoYXIgKiphcmd2Oworc3RhdGljIGNoYXIgKiplbnZwOworI2VuZGlmCisKK3N0YXRpYyBpbnQgYXJncmV0Oworc3RhdGljIGludCBtYWlucmV0PTA7CitzdGF0aWMgaW50IG1hbmFnZWRhcHA7CitzdGF0aWMgaW50IGhhc19jY3RvciA9IDA7CitzdGF0aWMgX3N0YXJ0dXBpbmZvIHN0YXJ0aW5mbzsKKworc3RhdGljIGludCBfX2NkZWNsIHByZV9jX2luaXQgKHZvaWQpOworc3RhdGljIHZvaWQgX19jZGVjbCBwcmVfY3BwX2luaXQgKHZvaWQpOworCitfQ1JUQUxMT0MoIi5DUlQkWElBQSIpIF9QSUZWIG1pbmd3X3BjaW5pdCA9IHByZV9jX2luaXQ7CitfQ1JUQUxMT0MoIi5DUlQkWENBQSIpIF9QVkZWIG1pbmd3X3BjcHBpbml0ID0gcHJlX2NwcF9pbml0OworCitzdGF0aWMgaW50IF9fY2RlY2wKK3ByZV9jX2luaXQgKHZvaWQpCit7CisgIG1hbmFnZWRhcHAgPSBjaGVja19tYW5hZ2VkX2FwcCAoKTsKKyAgaWYgKG1pbmd3X2FwcF90eXBlKQorICAgIF9fc2V0X2FwcF90eXBlKF9HVUlfQVBQKTsKKyAgZWxzZQorICAgIF9fc2V0X2FwcF90eXBlIChfQ09OU09MRV9BUFApOworICBfX29uZXhpdGJlZ2luID0gX19vbmV4aXRlbmQgPSAoX1BWRlYgKikgX2VuY29kZV9wb2ludGVyICgoX1BWRlYgKikoLTEpKTsKKworICAqX2ltcF9fX2Ztb2RlID0gX2Ztb2RlOworICAqX2ltcF9fX2NvbW1vZGUgPSBfY29tbW9kZTsKKworI2lmZGVmIFdQUkZMQUcKKyAgX3dzZXRhcmd2KCk7CisjZWxzZQorICBfc2V0YXJndigpOworI2VuZGlmCisKKyAgaWYgKCEgX19kZWZhdWx0bWF0aGVycikKKyAgICBfX3NldHVzZXJtYXRoZXJyIChfbWF0aGVycik7CisKKyAgaWYgKF9fZ2xvYmFsbG9jYWxlc3RhdHVzID09IC0xKQorICAgIHsKKyAgICB9CisgIHJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2NkZWNsCitwcmVfY3BwX2luaXQgKHZvaWQpCit7CisgIHN0YXJ0aW5mby5uZXdtb2RlID0gX25ld21vZGU7CisKKyNpZmRlZiBXUFJGTEFHCisgIGFyZ3JldCA9IF9fd2dldG1haW5hcmdzKCZhcmdjLCZhcmd2LCZlbnZwLF9kb3dpbGRjYXJkLCZzdGFydGluZm8pOworI2Vsc2UKKyAgYXJncmV0ID0gX19nZXRtYWluYXJncygmYXJnYywmYXJndiwmZW52cCxfZG93aWxkY2FyZCwmc3RhcnRpbmZvKTsKKyNlbmRpZgorfQorCitzdGF0aWMgaW50IF9fdG1haW5DUlRTdGFydHVwICh2b2lkKTsKKworI2lmZGVmIFdQUkZMQUcKK2ludCB3V2luTWFpbkNSVFN0YXJ0dXAgKHZvaWQpCisjZWxzZQoraW50IFdpbk1haW5DUlRTdGFydHVwICh2b2lkKQorI2VuZGlmCit7CisgIG1pbmd3X2FwcF90eXBlID0gMTsKKyAgX19zZWN1cml0eV9pbml0X2Nvb2tpZSAoKTsKKyAgcmV0dXJuIF9fdG1haW5DUlRTdGFydHVwICgpOworfQorCisjaWZkZWYgV1BSRkxBRworaW50IHdtYWluQ1JUU3RhcnR1cCAodm9pZCkKKyNlbHNlCitpbnQgbWFpbkNSVFN0YXJ0dXAgKHZvaWQpCisjZW5kaWYKK3sKKyAgbWluZ3dfYXBwX3R5cGUgPSAwOworICBfX3NlY3VyaXR5X2luaXRfY29va2llICgpOworICByZXR1cm4gX190bWFpbkNSVFN0YXJ0dXAgKCk7Cit9CisKKworX19kZWNsc3BlYyhub2lubGluZSkgaW50CitfX3RtYWluQ1JUU3RhcnR1cCAodm9pZCkKK3sKKyAgX1RVQ0hBUiAqbHBzekNvbW1hbmRMaW5lID0gTlVMTDsKKyAgU1RBUlRVUElORk8gU3RhcnR1cEluZm87CisgIEJPT0wgaW5Eb3VibGVRdW90ZSA9IEZBTFNFOworICBtZW1zZXQgKCZTdGFydHVwSW5mbywgMCwgc2l6ZW9mIChTVEFSVFVQSU5GTykpOworICAKKyAgaWYgKG1pbmd3X2FwcF90eXBlKQorICAgIEdldFN0YXJ0dXBJbmZvICgmU3RhcnR1cEluZm8pOworICB7CisgICAgdm9pZCAqbG9ja19mcmVlID0gTlVMTDsKKyAgICB2b2lkICpmaWJlcmlkID0gKChQTlRfVElCKU50Q3VycmVudFRlYigpKS0+U3RhY2tCYXNlOworICAgIGludCBuZXN0ZWQgPSBGQUxTRTsKKyAgICB3aGlsZSgobG9ja19mcmVlID0gSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2VQb2ludGVyICgodm9sYXRpbGUgUFZPSUQgKikgJl9fbmF0aXZlX3N0YXJ0dXBfbG9jaywKKwkJCQkJCQkgIGZpYmVyaWQsIDApKSAhPSAwKQorICAgICAgeworCWlmIChsb2NrX2ZyZWUgPT0gZmliZXJpZCkKKwkgIHsKKwkgICAgbmVzdGVkID0gVFJVRTsKKwkgICAgYnJlYWs7CisJICB9CisJU2xlZXAoMTAwMCk7CisgICAgICB9CisgICAgaWYgKF9fbmF0aXZlX3N0YXJ0dXBfc3RhdGUgPT0gX19pbml0aWFsaXppbmcpCisgICAgICB7CisJX2Ftc2dfZXhpdCAoMzEpOworICAgICAgfQorICAgIGVsc2UgaWYgKF9fbmF0aXZlX3N0YXJ0dXBfc3RhdGUgPT0gX191bmluaXRpYWxpemVkKQorICAgICAgeworCV9fbmF0aXZlX3N0YXJ0dXBfc3RhdGUgPSBfX2luaXRpYWxpemluZzsKKwlfaW5pdHRlcm0gKChfUFZGViAqKSh2b2lkICopX194aV9hLCAoX1BWRlYgKikodm9pZCAqKSBfX3hpX3opOworICAgICAgfQorICAgIGVsc2UKKyAgICAgIGhhc19jY3RvciA9IDE7CisKKyAgICBpZiAoX19uYXRpdmVfc3RhcnR1cF9zdGF0ZSA9PSBfX2luaXRpYWxpemluZykKKyAgICAgIHsKKwlfaW5pdHRlcm0gKF9feGNfYSwgX194Y196KTsKKwlfX25hdGl2ZV9zdGFydHVwX3N0YXRlID0gX19pbml0aWFsaXplZDsKKyAgICAgIH0KKyAgICBfQVNTRVJURShfX25hdGl2ZV9zdGFydHVwX3N0YXRlID09IF9faW5pdGlhbGl6ZWQpOworICAgIGlmICghIG5lc3RlZCkKKyAgICAgIEludGVybG9ja2VkRXhjaGFuZ2VQb2ludGVyICgodm9sYXRpbGUgUFZPSUQgKikgJl9fbmF0aXZlX3N0YXJ0dXBfbG9jaywgMCk7CisgICAgCisgICAgaWYgKF9fZHluX3Rsc19pbml0X2NhbGxiYWNrICE9IE5VTEwgJiYgX0lzTm9ud3JpdGFibGVJbkN1cnJlbnRJbWFnZSAoKFBCWVRFKSAmX19keW5fdGxzX2luaXRfY2FsbGJhY2spKQorICAgICAgX19keW5fdGxzX2luaXRfY2FsbGJhY2sgKE5VTEwsIERMTF9USFJFQURfQVRUQUNILCBOVUxMKTsKKyAgICAKKyAgICBfQ3J0U2V0Q2hlY2tDb3VudCAoRkFMU0UpOworCisgICAgaWYgKG1pbmd3X2FwcF90eXBlKQorICAgICAgeworI2lmZGVmIFdQUkZMQUcKKyAgICBpZiAoX3djbWRsbiA9PSBOVUxMKQorICAgICAgcmV0dXJuIDI1NTsKKyAgICBscHN6Q29tbWFuZExpbmUgPSAod2NoYXJfdCAqKSBfd2NtZGxuOworI2Vsc2UKKyAgICBscHN6Q29tbWFuZExpbmUgPSAodW5zaWduZWQgY2hhciAqKSBfYWNtZGxuOworI2VuZGlmCisgICAgd2hpbGUgKCpscHN6Q29tbWFuZExpbmUgPiBTUEFDRUNIQVIgfHwgKCpscHN6Q29tbWFuZExpbmUmJmluRG91YmxlUXVvdGUpKQorICAgICAgeworCWlmICgqbHBzekNvbW1hbmRMaW5lID09IERRVU9URUNIQVIpCisJICBpbkRvdWJsZVF1b3RlID0gIWluRG91YmxlUXVvdGU7CisjaWZkZWYgX01CQ1MKKwlpZiAoX2lzbWJibGVhZCAoKmxwc3pDb21tYW5kTGluZSkpCisJICB7CisJICAgIGlmIChscHN6Q29tbWFuZExpbmUpCisJICAgICAgbHBzekNvbW1hbmRMaW5lKys7CisJICB9CisjZW5kaWYKKwkrK2xwc3pDb21tYW5kTGluZTsKKyAgICAgIH0KKyAgICB3aGlsZSAoKmxwc3pDb21tYW5kTGluZSAmJiAoKmxwc3pDb21tYW5kTGluZSA8PSBTUEFDRUNIQVIpKQorICAgICAgbHBzekNvbW1hbmRMaW5lKys7CisKKyNpZmRlZiBXUFJGTEFHCisgICAgbWFpbnJldCA9IHdtYWluICgKKyAgICAJKGludCkgKFN0YXJ0dXBJbmZvLmR3RmxhZ3MgJiBTVEFSVEZfVVNFU0hPV1dJTkRPVyA/IFN0YXJ0dXBJbmZvLndTaG93V2luZG93IDogU1dfU0hPV0RFRkFVTFQpLAorICAgIAkod2NoYXJfdCAqKikgbHBzekNvbW1hbmRMaW5lLCAod2NoYXJfdCAqKikgKEhJTlNUQU5DRSkgJl9JbWFnZUJhc2UpOworI2Vsc2UKKyAgICBtYWlucmV0ID0gbWFpbiAoCisgICAgCShpbnQpIChTdGFydHVwSW5mby5kd0ZsYWdzICYgU1RBUlRGX1VTRVNIT1dXSU5ET1cgPyBTdGFydHVwSW5mby53U2hvd1dpbmRvdyA6IFNXX1NIT1dERUZBVUxUKSwKKyAgICAJKGNoYXIgKiopIGxwc3pDb21tYW5kTGluZSwgKGNoYXIgKiopIChISU5TVEFOQ0UpICZfSW1hZ2VCYXNlKTsKKyNlbmRpZgorICAgIH0KKyAgZWxzZQorICAgIHsKKyNpZmRlZiBXUFJGTEFHCisgICAgX193aW5pdGVudiA9IGVudnA7CisgICAgbWFpbnJldCA9IHdtYWluIChhcmdjLCBhcmd2LCBlbnZwKTsKKyNlbHNlCisgICAgX19pbml0ZW52ID0gZW52cDsKKyAgICBtYWlucmV0ID0gbWFpbiAoYXJnYywgYXJndiwgZW52cCk7CisjZW5kaWYKKyAgICB9CisgICAgaWYgKCFtYW5hZ2VkYXBwKQorICAgICAgZXhpdCAobWFpbnJldCk7CisKKyAgICBpZiAoaGFzX2NjdG9yID09IDApCisgICAgICBfY2V4aXQgKCk7CisgIH0KKyAgcmV0dXJuIG1haW5yZXQ7Cit9CisKK2V4dGVybiBpbnQgbWluZ3dfaW5pdGx0c2Ryb3RfZm9yY2U7CitleHRlcm4gaW50IG1pbmd3X2luaXRsdHNkeW5fZm9yY2U7CitleHRlcm4gaW50IG1pbmd3X2luaXRsdHNzdW9fZm9yY2U7CitleHRlcm4gaW50IG1pbmd3X2luaXRjaGFybWF4OworCitzdGF0aWMgaW50IF9fY2RlY2wKK2NoZWNrX21hbmFnZWRfYXBwICh2b2lkKQoreworICBQSU1BR0VfRE9TX0hFQURFUiBwRE9TSGVhZGVyOworICBQSU1BR0VfTlRfSEVBREVSUyBwUEVIZWFkZXI7CisgIFBJTUFHRV9PUFRJT05BTF9IRUFERVIzMiBwTlRIZWFkZXIzMjsKKyAgUElNQUdFX09QVElPTkFMX0hFQURFUjY0IHBOVEhlYWRlcjY0OworCisgIC8qIEZvcmNlIHRvIGJlIGxpbmtlZC4gICovCisgIG1pbmd3X2luaXRsdHNkcm90X2ZvcmNlPTE7CisgIG1pbmd3X2luaXRsdHNkeW5fZm9yY2U9MTsKKyAgbWluZ3dfaW5pdGx0c3N1b19mb3JjZT0xOworICBtaW5nd19pbml0Y2hhcm1heD0xOworCisgIHBET1NIZWFkZXIgPSAoUElNQUdFX0RPU19IRUFERVIpICZfSW1hZ2VCYXNlOworICBpZiAocERPU0hlYWRlci0+ZV9tYWdpYyAhPSBJTUFHRV9ET1NfU0lHTkFUVVJFKQorICAgIHJldHVybiAwOworCisgIHBQRUhlYWRlciA9IChQSU1BR0VfTlRfSEVBREVSUykoKGNoYXIgKilwRE9TSGVhZGVyICsgcERPU0hlYWRlci0+ZV9sZmFuZXcpOworICBpZiAocFBFSGVhZGVyLT5TaWduYXR1cmUgIT0gSU1BR0VfTlRfU0lHTkFUVVJFKQorICAgIHJldHVybiAwOworCisgIHBOVEhlYWRlcjMyID0gKFBJTUFHRV9PUFRJT05BTF9IRUFERVIzMikgJnBQRUhlYWRlci0+T3B0aW9uYWxIZWFkZXI7CisgIHN3aXRjaCAocE5USGVhZGVyMzItPk1hZ2ljKQorICAgIHsKKyAgICBjYXNlIElNQUdFX05UX09QVElPTkFMX0hEUjMyX01BR0lDOgorICAgICAgaWYgKHBOVEhlYWRlcjMyLT5OdW1iZXJPZlJ2YUFuZFNpemVzIDw9IElNQUdFX0RJUkVDVE9SWV9FTlRSWV9DT01fREVTQ1JJUFRPUikKKwlyZXR1cm4gMDsKKyAgICAgIHJldHVybiAhISBwTlRIZWFkZXIzMi0+RGF0YURpcmVjdG9yeVtJTUFHRV9ESVJFQ1RPUllfRU5UUllfQ09NX0RFU0NSSVBUT1JdLlZpcnR1YWxBZGRyZXNzOworICAgIGNhc2UgSU1BR0VfTlRfT1BUSU9OQUxfSERSNjRfTUFHSUM6CisgICAgICBwTlRIZWFkZXI2NCA9IChQSU1BR0VfT1BUSU9OQUxfSEVBREVSNjQpcE5USGVhZGVyMzI7CisgICAgICBpZiAocE5USGVhZGVyNjQtPk51bWJlck9mUnZhQW5kU2l6ZXMgPD0gSU1BR0VfRElSRUNUT1JZX0VOVFJZX0NPTV9ERVNDUklQVE9SKQorCXJldHVybiAwOworICAgICAgcmV0dXJuICEhIHBOVEhlYWRlcjY0LT5EYXRhRGlyZWN0b3J5W0lNQUdFX0RJUkVDVE9SWV9FTlRSWV9DT01fREVTQ1JJUFRPUl0uVmlydHVhbEFkZHJlc3M7CisgICAgfQorICByZXR1cm4gMDsKK30KKworaW50IF9fZGVmYXVsdG1hdGhlcnI7CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2RpcmVudC5jIGIvbWluZ3ctdzY0LWNydC9kaXJlbnQuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44Yzk1MmYzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9kaXJlbnQuYwpAQCAtMCwwICsxLDI0MyBAQAorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxpby5oPgorI2luY2x1ZGUgPGRpcmVjdC5oPgorI2luY2x1ZGUgPGRpcmVudC5oPgorCisjZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4KKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisKKyNpbmNsdWRlIDx0Y2hhci5oPgorI2RlZmluZSBTVUZGSVggX1QoIioiKQorI2RlZmluZSBTTEFTSCBfVCgiXFwiKQorCitfVERJUiAqCitfdG9wZW5kaXIgKGNvbnN0IF9UQ0hBUiAqc3pQYXRoKQoreworICBfVERJUiAqbmQ7CisgIHVuc2lnbmVkIGludCByYzsKKyAgX1RDSEFSIHN6RnVsbFBhdGhbTUFYX1BBVEhdOworCisgIGVycm5vID0gMDsKKworICBpZiAoIXN6UGF0aCkKKyAgICB7CisgICAgICBlcnJubyA9IEVGQVVMVDsKKyAgICAgIHJldHVybiAoX1RESVIgKikgMDsKKyAgICB9CisKKyAgaWYgKHN6UGF0aFswXSA9PSBfVCgnXDAnKSkKKyAgICB7CisgICAgICBlcnJubyA9IEVOT1RESVI7CisgICAgICByZXR1cm4gKF9URElSICopIDA7CisgICAgfQorCisgIHJjID0gR2V0RmlsZUF0dHJpYnV0ZXMgKHN6UGF0aCk7CisgIGlmIChyYyA9PSAodW5zaWduZWQgaW50KS0xKQorICAgIHsKKworICAgICAgZXJybm8gPSBFTk9FTlQ7CisgICAgICByZXR1cm4gKF9URElSICopIDA7CisgICAgfQorICBpZiAoIShyYyAmIEZJTEVfQVRUUklCVVRFX0RJUkVDVE9SWSkpCisgICAgeworCisgICAgICBlcnJubyA9IEVOT1RESVI7CisgICAgICByZXR1cm4gKF9URElSICopIDA7CisgICAgfQorCisgIF90ZnVsbHBhdGggKHN6RnVsbFBhdGgsc3pQYXRoLE1BWF9QQVRIKTsKKworICBuZCA9IChfVERJUiAqKSBtYWxsb2MgKHNpemVvZiAoX1RESVIpICsgKF90Y3NsZW4gKHN6RnVsbFBhdGgpCisJCQkJCSAgICsgX3Rjc2xlbiAoU0xBU0gpCisJCQkJCSAgICsgX3Rjc2xlbiAoU1VGRklYKSArIDEpCisJCQkJCSAgKiBzaXplb2YgKF9UQ0hBUikpOworCisgIGlmICghbmQpCisgICAgeworCisgICAgICBlcnJubyA9IEVOT01FTTsKKyAgICAgIHJldHVybiAoX1RESVIgKikgMDsKKyAgICB9CisKKyAgX3Rjc2NweSAobmQtPmRkX25hbWUsc3pGdWxsUGF0aCk7CisKKyAgaWYgKG5kLT5kZF9uYW1lWzBdICE9IF9UKCdcMCcpCisgICAgICAmJiBfdGNzcmNociAobmQtPmRkX25hbWUsX1QoJy8nKSkgIT0gbmQtPmRkX25hbWUKKwkJCQkJICAgICsgX3Rjc2xlbiAobmQtPmRkX25hbWUpIC0gMQorICAgICAgJiYgX3Rjc3JjaHIgKG5kLT5kZF9uYW1lLF9UKCdcXCcpKSAhPSBuZC0+ZGRfbmFtZQorICAgICAgCQkJCQkgICAgICsgX3Rjc2xlbiAobmQtPmRkX25hbWUpIC0gMSkKKyAgICB7CisgICAgICBfdGNzY2F0IChuZC0+ZGRfbmFtZSxTTEFTSCk7CisgICAgfQorCisgIF90Y3NjYXQgKG5kLT5kZF9uYW1lLFNVRkZJWCk7CisKKyAgbmQtPmRkX2hhbmRsZSA9IC0xOworCisgIG5kLT5kZF9zdGF0ID0gMDsKKworICBuZC0+ZGRfZGlyLmRfaW5vID0gMDsKKyAgbmQtPmRkX2Rpci5kX3JlY2xlbiA9IDA7CisgIG5kLT5kZF9kaXIuZF9uYW1sZW4gPSAwOworICBtZW1zZXQgKG5kLT5kZF9kaXIuZF9uYW1lLDAsRklMRU5BTUVfTUFYKTsKKworICByZXR1cm4gbmQ7Cit9CisKK3N0cnVjdCBfdGRpcmVudCAqCitfdHJlYWRkaXIgKF9URElSICogZGlycCkKK3sKKyAgZXJybm8gPSAwOworCisgIGlmICghZGlycCkKKyAgICB7CisgICAgICBlcnJubyA9IEVGQVVMVDsKKyAgICAgIHJldHVybiAoc3RydWN0IF90ZGlyZW50ICopIDA7CisgICAgfQorCisgIGlmIChkaXJwLT5kZF9zdGF0IDwgMCkKKyAgICB7CisKKyAgICAgIHJldHVybiAoc3RydWN0IF90ZGlyZW50ICopIDA7CisgICAgfQorICBlbHNlIGlmIChkaXJwLT5kZF9zdGF0ID09IDApCisgICAgeworCisgICAgICBkaXJwLT5kZF9oYW5kbGUgPSBfdGZpbmRmaXJzdCAoZGlycC0+ZGRfbmFtZSwmKGRpcnAtPmRkX2R0YSkpOworCisgICAgICBpZiAoZGlycC0+ZGRfaGFuZGxlID09IC0xKQorCXsKKworCSAgZGlycC0+ZGRfc3RhdCA9IC0xOworCX0KKyAgICAgIGVsc2UKKwl7CisJICBkaXJwLT5kZF9zdGF0ID0gMTsKKwl9CisgICAgfQorICBlbHNlCisgICAgeworCisgICAgICBpZiAoX3RmaW5kbmV4dCAoZGlycC0+ZGRfaGFuZGxlLCYoZGlycC0+ZGRfZHRhKSkpCisJeworCisJICBEV09SRCB3aW5lcnIgPSBHZXRMYXN0RXJyb3IgKCk7CisJICBpZiAod2luZXJyID09IEVSUk9SX05PX01PUkVfRklMRVMpCisJICAgIGVycm5vID0gMDsKKwkgIF9maW5kY2xvc2UgKGRpcnAtPmRkX2hhbmRsZSk7CisJICBkaXJwLT5kZF9oYW5kbGUgPSAtMTsKKwkgIGRpcnAtPmRkX3N0YXQgPSAtMTsKKwl9CisgICAgICBlbHNlCisJeworCisJICBkaXJwLT5kZF9zdGF0Kys7CisJfQorICAgIH0KKworICBpZiAoZGlycC0+ZGRfc3RhdCA+IDApCisgICAgeworCisgICAgICBkaXJwLT5kZF9kaXIuZF9uYW1sZW4gPSBfdGNzbGVuIChkaXJwLT5kZF9kdGEubmFtZSk7CisgICAgICBfdGNzY3B5IChkaXJwLT5kZF9kaXIuZF9uYW1lLGRpcnAtPmRkX2R0YS5uYW1lKTsKKyAgICAgIHJldHVybiAmZGlycC0+ZGRfZGlyOworICAgIH0KKworICByZXR1cm4gKHN0cnVjdCBfdGRpcmVudCAqKSAwOworfQorCitpbnQKK190Y2xvc2VkaXIgKF9URElSICogZGlycCkKK3sKKyAgaW50IHJjOworCisgIGVycm5vID0gMDsKKyAgcmMgPSAwOworCisgIGlmICghZGlycCkKKyAgICB7CisgICAgICBlcnJubyA9IEVGQVVMVDsKKyAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgaWYgKGRpcnAtPmRkX2hhbmRsZSAhPSAtMSkKKyAgICB7CisgICAgICByYyA9IF9maW5kY2xvc2UgKGRpcnAtPmRkX2hhbmRsZSk7CisgICAgfQorCisgIGZyZWUgKGRpcnApOworCisgIHJldHVybiByYzsKK30KKwordm9pZAorX3RyZXdpbmRkaXIgKF9URElSICogZGlycCkKK3sKKyAgZXJybm8gPSAwOworCisgIGlmICghZGlycCkKKyAgICB7CisgICAgICBlcnJubyA9IEVGQVVMVDsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgaWYgKGRpcnAtPmRkX2hhbmRsZSAhPSAtMSkKKyAgICB7CisgICAgICBfZmluZGNsb3NlIChkaXJwLT5kZF9oYW5kbGUpOworICAgIH0KKworICBkaXJwLT5kZF9oYW5kbGUgPSAtMTsKKyAgZGlycC0+ZGRfc3RhdCA9IDA7Cit9CisKK2xvbmcKK190dGVsbGRpciAoX1RESVIgKiBkaXJwKQoreworICBlcnJubyA9IDA7CisKKyAgaWYgKCFkaXJwKQorICAgIHsKKyAgICAgIGVycm5vID0gRUZBVUxUOworICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgcmV0dXJuIGRpcnAtPmRkX3N0YXQ7Cit9CisKK3ZvaWQKK190c2Vla2RpciAoX1RESVIgKiBkaXJwLGxvbmcgbFBvcykKK3sKKyAgZXJybm8gPSAwOworCisgIGlmICghZGlycCkKKyAgICB7CisgICAgICBlcnJubyA9IEVGQVVMVDsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgaWYgKGxQb3MgPCAtMSkKKyAgICB7CisKKyAgICAgIGVycm5vID0gRUlOVkFMOworICAgICAgcmV0dXJuOworICAgIH0KKyAgZWxzZSBpZiAobFBvcyA9PSAtMSkKKyAgICB7CisKKyAgICAgIGlmIChkaXJwLT5kZF9oYW5kbGUgIT0gLTEpCisJeworCSAgX2ZpbmRjbG9zZSAoZGlycC0+ZGRfaGFuZGxlKTsKKwl9CisgICAgICBkaXJwLT5kZF9oYW5kbGUgPSAtMTsKKyAgICAgIGRpcnAtPmRkX3N0YXQgPSAtMTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisKKyAgICAgIF90cmV3aW5kZGlyIChkaXJwKTsKKworICAgICAgd2hpbGUgKChkaXJwLT5kZF9zdGF0IDwgbFBvcykgJiYgX3RyZWFkZGlyIChkaXJwKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9kbGxfYXJndi5jIGIvbWluZ3ctdzY0LWNydC9kbGxfYXJndi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM4MGU2NjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2RsbF9hcmd2LmMKQEAgLTAsMCArMSwxOSBAQAorI2lmZGVmIENSVERMTAorI3VuZGVmIENSVERMTAorI2VuZGlmCisKKyNpbmNsdWRlIDxpbnRlcm5hbC5oPgorCitleHRlcm4gaW50IF9kb3dpbGRjYXJkOworCisjaWZkZWYgV1BSRkxBRworaW50IF9fQ1JUREVDTAorX193c2V0YXJndiAodm9pZCkKKyNlbHNlCitpbnQgX19DUlRERUNMCitfX3NldGFyZ3YgKHZvaWQpCisjZW5kaWYKK3sKKyAgX2Rvd2lsZGNhcmQgPSAxOworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvZGxsYXJndi5jIGIvbWluZ3ctdzY0LWNydC9kbGxhcmd2LmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjZlNDRhMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvZGxsYXJndi5jCkBAIC0wLDAgKzEsMTYgQEAKKyNpZmRlZiBDUlRETEwKKyN1bmRlZiBDUlRETEwKKyNlbmRpZgorCisjaW5jbHVkZSA8aW50ZXJuYWwuaD4KKworI2lmZGVmIFdQUkZMQUcKK2ludCBfX0NSVERFQ0wKK193c2V0YXJndiAodm9pZCkKKyNlbHNlCitpbnQgX19DUlRERUNMCitfc2V0YXJndiAodm9pZCkKKyNlbmRpZgoreworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvZGxsbWFpbi5jIGIvbWluZ3ctdzY0LWNydC9kbGxtYWluLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDU4MGMzYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvZGxsbWFpbi5jCkBAIC0wLDAgKzEsMTIgQEAKKyNpbmNsdWRlIDxvc2NhbGxzLmg+CisjZGVmaW5lIF9ERUNMX0RMTE1BSU4KKyNpbmNsdWRlIDxwcm9jZXNzLmg+CisKK0JPT0wgV0lOQVBJIERsbE1haW4oSEFORExFIGhEbGxIYW5kbGUsIERXT1JEIGR3UmVhc29uLCBMUFZPSUQgbHByZXNlcnZlZCkKK3sKKyNpZiBkZWZpbmVkIChDUlRETEwpCisgIGlmIChkd1JlYXNvbiA9PSBETExfUFJPQ0VTU19BVFRBQ0ggJiYgIV9wUmF3RGxsTWFpbikKKyAgICBEaXNhYmxlVGhyZWFkTGlicmFyeUNhbGxzIChoRGxsSGFuZGxlKTsKKyNlbmRpZgorICByZXR1cm4gVFJVRTsKK30KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvZnRydW5jYXRlLmMgYi9taW5ndy13NjQtY3J0L2Z0cnVuY2F0ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEwNjhiMTEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2Z0cnVuY2F0ZS5jCkBAIC0wLDAgKzEsNCBAQAoraW50IGZ0cnVuY2F0ZShpbnQgX19mZCxpbnQgX19sZW5ndGgpCit7CisgIHJldHVybiBfY2hzaXplIChfX2ZkLF9fbGVuZ3RoKTsKK30KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvZ2NjbWFpbi5jIGIvbWluZ3ctdzY0LWNydC9nY2NtYWluLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmM3NjMzNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvZ2NjbWFpbi5jCkBAIC0wLDAgKzEsNDggQEAKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKwordHlwZWRlZiB2b2lkICgqZnVuY19wdHIpICh2b2lkKTsKK2V4dGVybiBmdW5jX3B0ciBfX0NUT1JfTElTVF9fW107CitleHRlcm4gZnVuY19wdHIgX19EVE9SX0xJU1RfX1tdOworCit2b2lkCitfX2RvX2dsb2JhbF9kdG9ycyAodm9pZCkKK3sKKyAgc3RhdGljIGZ1bmNfcHRyICpwID0gX19EVE9SX0xJU1RfXyArIDE7CisKKyAgd2hpbGUgKCpwKQorICAgIHsKKyAgICAgICgqKHApKSAoKTsKKyAgICAgIHArKzsKKyAgICB9Cit9CisKK3ZvaWQKK19fZG9fZ2xvYmFsX2N0b3JzICh2b2lkKQoreworICB1bnNpZ25lZCBsb25nIG5wdHJzID0gKHVuc2lnbmVkIGxvbmcpIChwdHJkaWZmX3QpIF9fQ1RPUl9MSVNUX19bMF07CisgIHVuc2lnbmVkIGxvbmcgaTsKKworICBpZiAobnB0cnMgPT0gKHVuc2lnbmVkIGxvbmcpIC0xKQorICAgIHsKKyAgICAgIGZvciAobnB0cnMgPSAwOyBfX0NUT1JfTElTVF9fW25wdHJzICsgMV0gIT0gMDsgbnB0cnMrKyk7CisgICAgfQorCisgIGZvciAoaSA9IG5wdHJzOyBpID49IDE7IGktLSkKKyAgICB7CisgICAgICBfX0NUT1JfTElTVF9fW2ldICgpOworICAgIH0KKworICBhdGV4aXQgKF9fZG9fZ2xvYmFsX2R0b3JzKTsKK30KKworc3RhdGljIGludCBpbml0aWFsaXplZCA9IDA7CisKK3ZvaWQKK19fbWFpbiAodm9pZCkKK3sKKyAgaWYgKCFpbml0aWFsaXplZCkKKyAgICB7CisgICAgICBpbml0aWFsaXplZCA9IDE7CisgICAgICBfX2RvX2dsb2JhbF9jdG9ycyAoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2dldG9wdC5jIGIvbWluZ3ctdzY0LWNydC9nZXRvcHQuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jZDc1OWIyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9nZXRvcHQuYwpAQCAtMCwwICsxLDM5NCBAQAorI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKworI2RlZmluZSBSRVBMQUNFX0dFVE9QVAorCisjZGVmaW5lIF9ESUFHQVNTRVJUKHgpIGRvIHt9IHdoaWxlICgwKQorCisjaWZkZWYgUkVQTEFDRV9HRVRPUFQKKyNpZmRlZiBfX3dlYWtfYWxpYXMKK19fd2Vha19hbGlhcyhnZXRvcHQsX2dldG9wdCkKKyNlbmRpZgoraW50IG9wdGVyciA9IDE7CitpbnQgb3B0aW5kID0gMTsKK2ludCBvcHRvcHQgPSAnPyc7CitpbnQgb3B0cmVzZXQ7CitjaGFyICpvcHRhcmc7CisjZW5kaWYKKworI2lmZGVmIF9fd2Vha19hbGlhcworX193ZWFrX2FsaWFzKGdldG9wdF9sb25nLF9nZXRvcHRfbG9uZykKKyNlbmRpZgorCisjaWZuZGVmIF9fQ1lHV0lOX18KKyNkZWZpbmUgX19wcm9nbmFtZSBfX2FyZ3ZbMF0KKyNlbHNlCitleHRlcm4gY2hhciBfX2RlY2xzcGVjKGRsbGltcG9ydCkgKl9fcHJvZ25hbWU7CisjZW5kaWYKKworI2RlZmluZSBJR05PUkVfRklSU1QgKCpvcHRpb25zID09ICctJyB8fCAqb3B0aW9ucyA9PSAnKycpCisjZGVmaW5lIFBSSU5UX0VSUk9SICgob3B0ZXJyKSAmJiAoKCpvcHRpb25zICE9ICc6JykgfHwgKElHTk9SRV9GSVJTVCAmJiBvcHRpb25zWzFdICE9ICc6JykpKQorCisjaWZuZGVmIElTX1BPU0lYTFlfQ09SUkVDVAorI2RlZmluZSBJU19QT1NJWExZX0NPUlJFQ1QgKGdldGVudigiUE9TSVhMWV9DT1JSRUNUIikgIT0gTlVMTCkKKyNlbmRpZgorCisjZGVmaW5lIFBFUk1VVEUgKCFJU19QT1NJWExZX0NPUlJFQ1QgJiYgIUlHTk9SRV9GSVJTVCkKKworI2RlZmluZSBJTl9PUkRFUiAoIUlTX1BPU0lYTFlfQ09SUkVDVCAmJiAqb3B0aW9ucyA9PSAnLScpCisKKyNkZWZpbmUgQkFEQ0ggKGludCknPycKKyNkZWZpbmUgQkFEQVJHICgoSUdOT1JFX0ZJUlNUICYmIG9wdGlvbnNbMV0gPT0gJzonKSB8fCAoKm9wdGlvbnMgPT0gJzonKSA/IChpbnQpJzonIDogKGludCknPycpCisjZGVmaW5lIElOT1JERVIgKGludCkxCisKK3N0YXRpYyBjaGFyIEVNU0dbMV07CisKK3N0YXRpYyBpbnQgZ2V0b3B0X2ludGVybmFsIChpbnQsY2hhciAqIGNvbnN0ICosY29uc3QgY2hhciAqKTsKK3N0YXRpYyBpbnQgZ2NkIChpbnQsaW50KTsKK3N0YXRpYyB2b2lkIHBlcm11dGVfYXJncyAoaW50LGludCxpbnQsY2hhciAqIGNvbnN0ICopOworCitzdGF0aWMgY2hhciAqcGxhY2UgPSBFTVNHOworCitzdGF0aWMgaW50IG5vbm9wdF9zdGFydCA9IC0xOworc3RhdGljIGludCBub25vcHRfZW5kID0gLTE7CisKK3N0YXRpYyBjb25zdCBjaGFyIHJlY2FyZ2NoYXJbXSA9ICJvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJWMiOworc3RhdGljIGNvbnN0IGNoYXIgcmVjYXJnc3RyaW5nW10gPSAib3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50IC0tICVzIjsKK3N0YXRpYyBjb25zdCBjaGFyIGFtYmlnW10gPSAiYW1iaWd1b3VzIG9wdGlvbiAtLSAlLipzIjsKK3N0YXRpYyBjb25zdCBjaGFyIG5vYXJnW10gPSAib3B0aW9uIGRvZXNuJ3QgdGFrZSBhbiBhcmd1bWVudCAtLSAlLipzIjsKK3N0YXRpYyBjb25zdCBjaGFyIGlsbG9wdGNoYXJbXSA9ICJ1bmtub3duIG9wdGlvbiAtLSAlYyI7CitzdGF0aWMgY29uc3QgY2hhciBpbGxvcHRzdHJpbmdbXSA9ICJ1bmtub3duIG9wdGlvbiAtLSAlcyI7CisKK3N0YXRpYyB2b2lkCitfdndhcm54KGNvbnN0IGNoYXIgKmZtdCx2YV9saXN0IGFwKQoreworICAodm9pZClmcHJpbnRmKHN0ZGVyciwiJXM6ICIsX19wcm9nbmFtZSk7CisgIGlmIChmbXQgIT0gTlVMTCkKKyAgICAodm9pZCl2ZnByaW50ZihzdGRlcnIsZm10LGFwKTsKKyAgKHZvaWQpZnByaW50ZihzdGRlcnIsIlxuIik7Cit9CisKK3N0YXRpYyB2b2lkCit3YXJueChjb25zdCBjaGFyICpmbXQsLi4uKQoreworICB2YV9saXN0IGFwOworICB2YV9zdGFydChhcCxmbXQpOworICBfdndhcm54KGZtdCxhcCk7CisgIHZhX2VuZChhcCk7Cit9CisKK3N0YXRpYyBpbnQKK2djZChhLGIpCisJaW50IGE7CisJaW50IGI7Cit7CisJaW50IGM7CisKKwljID0gYSAlIGI7CisJd2hpbGUgKGMgIT0gMCkgeworCQlhID0gYjsKKwkJYiA9IGM7CisJCWMgPSBhICUgYjsKKwl9CisKKwlyZXR1cm4gYjsKK30KKworc3RhdGljIHZvaWQKK3Blcm11dGVfYXJncyhwYW5vbm9wdF9zdGFydCxwYW5vbm9wdF9lbmQsb3B0X2VuZCxuYXJndikKKwlpbnQgcGFub25vcHRfc3RhcnQ7CisJaW50IHBhbm9ub3B0X2VuZDsKKwlpbnQgb3B0X2VuZDsKKwljaGFyICogY29uc3QgKm5hcmd2OworeworCWludCBjc3RhcnQsY3ljbGVsZW4saSxqLG5jeWNsZSxubm9ub3B0cyxub3B0cyxwb3M7CisJY2hhciAqc3dhcDsKKworCV9ESUFHQVNTRVJUKG5hcmd2ICE9IE5VTEwpOworCisJbm5vbm9wdHMgPSBwYW5vbm9wdF9lbmQgLSBwYW5vbm9wdF9zdGFydDsKKwlub3B0cyA9IG9wdF9lbmQgLSBwYW5vbm9wdF9lbmQ7CisJbmN5Y2xlID0gZ2NkKG5ub25vcHRzLG5vcHRzKTsKKwljeWNsZWxlbiA9IChvcHRfZW5kIC0gcGFub25vcHRfc3RhcnQpIC8gbmN5Y2xlOworCisJZm9yIChpID0gMDsgaSA8IG5jeWNsZTsgaSsrKSB7CisJCWNzdGFydCA9IHBhbm9ub3B0X2VuZCtpOworCQlwb3MgPSBjc3RhcnQ7CisJCWZvciAoaiA9IDA7IGogPCBjeWNsZWxlbjsgaisrKSB7CisJCQlpZiAocG9zID49IHBhbm9ub3B0X2VuZCkKKwkJCQlwb3MgLT0gbm5vbm9wdHM7CisJCQllbHNlCisJCQkJcG9zICs9IG5vcHRzOworCQkJc3dhcCA9IG5hcmd2W3Bvc107CisKKwkJCSgoY2hhciAqKikgbmFyZ3YpW3Bvc10gPSBuYXJndltjc3RhcnRdOworCisJCQkoKGNoYXIgKiopbmFyZ3YpW2NzdGFydF0gPSBzd2FwOworCQl9CisJfQorfQorCitzdGF0aWMgaW50CitnZXRvcHRfaW50ZXJuYWwobmFyZ2MsbmFyZ3Ysb3B0aW9ucykKKwlpbnQgbmFyZ2M7CisJY2hhciAqIGNvbnN0ICpuYXJndjsKKwljb25zdCBjaGFyICpvcHRpb25zOworeworCWNoYXIgKm9saTsKKwlpbnQgb3B0Y2hhcjsKKworCV9ESUFHQVNTRVJUKG5hcmd2ICE9IE5VTEwpOworCV9ESUFHQVNTRVJUKG9wdGlvbnMgIT0gTlVMTCk7CisKKwlvcHRhcmcgPSBOVUxMOworCisJaWYgKG9wdGluZCA9PSAwKQorCQlvcHRpbmQgPSAxOworCisJaWYgKG9wdHJlc2V0KQorCQlub25vcHRfc3RhcnQgPSBub25vcHRfZW5kID0gLTE7CitzdGFydDoKKwlpZiAob3B0cmVzZXQgfHwgISpwbGFjZSkgeworCQlvcHRyZXNldCA9IDA7CisJCWlmIChvcHRpbmQgPj0gbmFyZ2MpIHsKKwkJCXBsYWNlID0gRU1TRzsKKwkJCWlmIChub25vcHRfZW5kICE9IC0xKSB7CisKKwkJCQlwZXJtdXRlX2FyZ3Mobm9ub3B0X3N0YXJ0LG5vbm9wdF9lbmQsb3B0aW5kLG5hcmd2KTsKKwkJCQlvcHRpbmQgLT0gbm9ub3B0X2VuZCAtIG5vbm9wdF9zdGFydDsKKwkJCX0KKwkJCWVsc2UgaWYgKG5vbm9wdF9zdGFydCAhPSAtMSkgeworCisJCQkJb3B0aW5kID0gbm9ub3B0X3N0YXJ0OworCQkJfQorCQkJbm9ub3B0X3N0YXJ0ID0gbm9ub3B0X2VuZCA9IC0xOworCQkJcmV0dXJuIC0xOworCQl9CisJCWlmICgoKihwbGFjZSA9IG5hcmd2W29wdGluZF0pICE9ICctJykKKwkJICAgIHx8IChwbGFjZVsxXSA9PSAnXDAnKSkgeworCQkJcGxhY2UgPSBFTVNHOworCQkJaWYgKElOX09SREVSKSB7CisKKwkJCQlvcHRhcmcgPSBuYXJndltvcHRpbmQrK107CisJCQkJcmV0dXJuIElOT1JERVI7CisJCQl9CisJCQlpZiAoIVBFUk1VVEUpIHsKKworCQkJCXJldHVybiAtMTsKKwkJCX0KKworCQkJaWYgKG5vbm9wdF9zdGFydCA9PSAtMSkKKwkJCQlub25vcHRfc3RhcnQgPSBvcHRpbmQ7CisJCQllbHNlIGlmIChub25vcHRfZW5kICE9IC0xKSB7CisJCQkJcGVybXV0ZV9hcmdzKG5vbm9wdF9zdGFydCxub25vcHRfZW5kLG9wdGluZCxuYXJndik7CisJCQkJbm9ub3B0X3N0YXJ0ID0gb3B0aW5kIC0KKwkJCQkgICAgKG5vbm9wdF9lbmQgLSBub25vcHRfc3RhcnQpOworCQkJCW5vbm9wdF9lbmQgPSAtMTsKKwkJCX0KKwkJCW9wdGluZCsrOworCisJCQlnb3RvIHN0YXJ0OworCQl9CisJCWlmIChub25vcHRfc3RhcnQgIT0gLTEgJiYgbm9ub3B0X2VuZCA9PSAtMSkKKwkJCW5vbm9wdF9lbmQgPSBvcHRpbmQ7CisJCWlmIChwbGFjZVsxXSAmJiAqKytwbGFjZSA9PSAnLScpIHsKKwkJCXBsYWNlKys7CisJCQlyZXR1cm4gLTI7CisJCX0KKwl9CisJaWYgKChvcHRjaGFyID0gKGludCkqcGxhY2UrKykgPT0gKGludCknOicgfHwKKwkgICAgKG9saSA9IHN0cmNocihvcHRpb25zICsgKElHTk9SRV9GSVJTVCA/IDEgOiAwKSxvcHRjaGFyKSkgPT0gTlVMTCkgeworCisJCWlmICghKnBsYWNlKQorCQkJKytvcHRpbmQ7CisJCWlmIChQUklOVF9FUlJPUikKKwkJCXdhcm54KGlsbG9wdGNoYXIsb3B0Y2hhcik7CisJCW9wdG9wdCA9IG9wdGNoYXI7CisJCXJldHVybiBCQURDSDsKKwl9CisJaWYgKG9wdGNoYXIgPT0gJ1cnICYmIG9saVsxXSA9PSAnOycpIHsKKworCQlpZiAoKnBsYWNlKQorCQkJcmV0dXJuIC0yOworCisJCWlmICgrK29wdGluZCA+PSBuYXJnYykgeworCQkJcGxhY2UgPSBFTVNHOworCQkJaWYgKFBSSU5UX0VSUk9SKQorCQkJCXdhcm54KHJlY2FyZ2NoYXIsb3B0Y2hhcik7CisJCQlvcHRvcHQgPSBvcHRjaGFyOworCQkJcmV0dXJuIEJBREFSRzsKKwkJfSBlbHNlCisJCQlwbGFjZSA9IG5hcmd2W29wdGluZF07CisKKwkJcmV0dXJuIC0yOworCX0KKwlpZiAoKisrb2xpICE9ICc6JykgeworCQlpZiAoISpwbGFjZSkKKwkJCSsrb3B0aW5kOworCX0gZWxzZSB7CisJCW9wdGFyZyA9IE5VTEw7CisJCWlmICgqcGxhY2UpCisJCQlvcHRhcmcgPSBwbGFjZTsKKworCQllbHNlIGlmIChvbGlbMV0gIT0gJzonKSB7CisJCQlpZiAoKytvcHRpbmQgPj0gbmFyZ2MpIHsKKwkJCQlwbGFjZSA9IEVNU0c7CisJCQkJaWYgKFBSSU5UX0VSUk9SKQorCQkJCQl3YXJueChyZWNhcmdjaGFyLG9wdGNoYXIpOworCQkJCW9wdG9wdCA9IG9wdGNoYXI7CisJCQkJcmV0dXJuIEJBREFSRzsKKwkJCX0gZWxzZQorCQkJCW9wdGFyZyA9IG5hcmd2W29wdGluZF07CisJCX0KKwkJcGxhY2UgPSBFTVNHOworCQkrK29wdGluZDsKKwl9CisKKwlyZXR1cm4gb3B0Y2hhcjsKK30KKworI2lmZGVmIFJFUExBQ0VfR0VUT1BUCisKK2ludAorZ2V0b3B0KG5hcmdjLG5hcmd2LG9wdGlvbnMpCisJaW50IG5hcmdjOworCWNoYXIgKiBjb25zdCAqbmFyZ3Y7CisJY29uc3QgY2hhciAqb3B0aW9uczsKK3sKKwlpbnQgcmV0dmFsOworCisJX0RJQUdBU1NFUlQobmFyZ3YgIT0gTlVMTCk7CisJX0RJQUdBU1NFUlQob3B0aW9ucyAhPSBOVUxMKTsKKworCWlmICgocmV0dmFsID0gZ2V0b3B0X2ludGVybmFsKG5hcmdjLG5hcmd2LG9wdGlvbnMpKSA9PSAtMikgeworCQkrK29wdGluZDsKKworCQlpZiAobm9ub3B0X2VuZCAhPSAtMSkgeworCQkJcGVybXV0ZV9hcmdzKG5vbm9wdF9zdGFydCxub25vcHRfZW5kLG9wdGluZCxuYXJndik7CisJCQlvcHRpbmQgLT0gbm9ub3B0X2VuZCAtIG5vbm9wdF9zdGFydDsKKwkJfQorCQlub25vcHRfc3RhcnQgPSBub25vcHRfZW5kID0gLTE7CisJCXJldHZhbCA9IC0xOworCX0KKwlyZXR1cm4gcmV0dmFsOworfQorI2VuZGlmCisKK2ludAorZ2V0b3B0X2xvbmcobmFyZ2MsbmFyZ3Ysb3B0aW9ucyxsb25nX29wdGlvbnMsaWR4KQorCWludCBuYXJnYzsKKwljaGFyICogY29uc3QgKm5hcmd2OworCWNvbnN0IGNoYXIgKm9wdGlvbnM7CisJY29uc3Qgc3RydWN0IG9wdGlvbiAqbG9uZ19vcHRpb25zOworCWludCAqaWR4OworeworCWludCByZXR2YWw7CisKKwlfRElBR0FTU0VSVChuYXJndiAhPSBOVUxMKTsKKwlfRElBR0FTU0VSVChvcHRpb25zICE9IE5VTEwpOworCV9ESUFHQVNTRVJUKGxvbmdfb3B0aW9ucyAhPSBOVUxMKTsKKworCWlmICgocmV0dmFsID0gZ2V0b3B0X2ludGVybmFsKG5hcmdjLG5hcmd2LG9wdGlvbnMpKSA9PSAtMikgeworCQljaGFyICpjdXJyZW50X2FyZ3YsKmhhc19lcXVhbDsKKwkJc2l6ZV90IGN1cnJlbnRfYXJndl9sZW47CisJCWludCBpLG1hdGNoOworCisJCWN1cnJlbnRfYXJndiA9IHBsYWNlOworCQltYXRjaCA9IC0xOworCisJCW9wdGluZCsrOworCQlwbGFjZSA9IEVNU0c7CisKKwkJaWYgKCpjdXJyZW50X2FyZ3YgPT0gJ1wwJykgeworCisJCQlpZiAobm9ub3B0X2VuZCAhPSAtMSkgeworCQkJCXBlcm11dGVfYXJncyhub25vcHRfc3RhcnQsbm9ub3B0X2VuZCxvcHRpbmQsbmFyZ3YpOworCQkJCW9wdGluZCAtPSBub25vcHRfZW5kIC0gbm9ub3B0X3N0YXJ0OworCQkJfQorCQkJbm9ub3B0X3N0YXJ0ID0gbm9ub3B0X2VuZCA9IC0xOworCQkJcmV0dXJuIC0xOworCQl9CisJCWlmICgoaGFzX2VxdWFsID0gc3RyY2hyKGN1cnJlbnRfYXJndiwnPScpKSAhPSBOVUxMKSB7CisKKwkJCWN1cnJlbnRfYXJndl9sZW4gPSBoYXNfZXF1YWwgLSBjdXJyZW50X2FyZ3Y7CisJCQloYXNfZXF1YWwrKzsKKwkJfSBlbHNlCisJCQljdXJyZW50X2FyZ3ZfbGVuID0gc3RybGVuKGN1cnJlbnRfYXJndik7CisKKwkJZm9yIChpID0gMDsgbG9uZ19vcHRpb25zW2ldLm5hbWU7IGkrKykgeworCisJCQlpZiAoc3RybmNtcChjdXJyZW50X2FyZ3YsbG9uZ19vcHRpb25zW2ldLm5hbWUsY3VycmVudF9hcmd2X2xlbikpCisJCQkJY29udGludWU7CisKKwkJCWlmIChzdHJsZW4obG9uZ19vcHRpb25zW2ldLm5hbWUpID09CisJCQkgICAgKHVuc2lnbmVkKWN1cnJlbnRfYXJndl9sZW4pIHsKKworCQkJCW1hdGNoID0gaTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmIChtYXRjaCA9PSAtMSkKKwkJCQltYXRjaCA9IGk7CisJCQllbHNlIHsKKworCQkJCWlmIChQUklOVF9FUlJPUikKKwkJCQkJd2FybngoYW1iaWcsKGludCljdXJyZW50X2FyZ3ZfbGVuLGN1cnJlbnRfYXJndik7CisJCQkJb3B0b3B0ID0gMDsKKwkJCQlyZXR1cm4gQkFEQ0g7CisJCQl9CisJCX0KKwkJaWYgKG1hdGNoICE9IC0xKSB7CisJCQlpZiAobG9uZ19vcHRpb25zW21hdGNoXS5oYXNfYXJnID09IG5vX2FyZ3VtZW50CisJCQkgICAgJiYgaGFzX2VxdWFsKSB7CisJCQkJaWYgKFBSSU5UX0VSUk9SKQorCQkJCQl3YXJueChub2FyZywoaW50KWN1cnJlbnRfYXJndl9sZW4sY3VycmVudF9hcmd2KTsKKworCQkJCWlmIChsb25nX29wdGlvbnNbbWF0Y2hdLmZsYWcgPT0gTlVMTCkKKwkJCQkJb3B0b3B0ID0gbG9uZ19vcHRpb25zW21hdGNoXS52YWw7CisJCQkJZWxzZQorCQkJCQlvcHRvcHQgPSAwOworCQkJCXJldHVybiBCQURBUkc7CisJCQl9CisJCQlpZiAobG9uZ19vcHRpb25zW21hdGNoXS5oYXNfYXJnID09IHJlcXVpcmVkX2FyZ3VtZW50IHx8CisJCQkgICAgbG9uZ19vcHRpb25zW21hdGNoXS5oYXNfYXJnID09IG9wdGlvbmFsX2FyZ3VtZW50KSB7CisJCQkJaWYgKGhhc19lcXVhbCkKKwkJCQkJb3B0YXJnID0gaGFzX2VxdWFsOworCQkJCWVsc2UgaWYgKGxvbmdfb3B0aW9uc1ttYXRjaF0uaGFzX2FyZyA9PQorCQkJCSAgICByZXF1aXJlZF9hcmd1bWVudCkgeworCisJCQkJCW9wdGFyZyA9IG5hcmd2W29wdGluZCsrXTsKKwkJCQl9CisJCQl9CisJCQlpZiAoKGxvbmdfb3B0aW9uc1ttYXRjaF0uaGFzX2FyZyA9PSByZXF1aXJlZF9hcmd1bWVudCkKKwkJCSAgICAmJiAob3B0YXJnID09IE5VTEwpKSB7CisKKwkJCQlpZiAoUFJJTlRfRVJST1IpCisJCQkJCXdhcm54KHJlY2FyZ3N0cmluZyxjdXJyZW50X2FyZ3YpOworCisJCQkJaWYgKGxvbmdfb3B0aW9uc1ttYXRjaF0uZmxhZyA9PSBOVUxMKQorCQkJCQlvcHRvcHQgPSBsb25nX29wdGlvbnNbbWF0Y2hdLnZhbDsKKwkJCQllbHNlCisJCQkJCW9wdG9wdCA9IDA7CisJCQkJLS1vcHRpbmQ7CisJCQkJcmV0dXJuIEJBREFSRzsKKwkJCX0KKwkJfSBlbHNlIHsKKwkJCWlmIChQUklOVF9FUlJPUikKKwkJCQl3YXJueChpbGxvcHRzdHJpbmcsY3VycmVudF9hcmd2KTsKKwkJCW9wdG9wdCA9IDA7CisJCQlyZXR1cm4gQkFEQ0g7CisJCX0KKwkJaWYgKGxvbmdfb3B0aW9uc1ttYXRjaF0uZmxhZykgeworCQkJKmxvbmdfb3B0aW9uc1ttYXRjaF0uZmxhZyA9IGxvbmdfb3B0aW9uc1ttYXRjaF0udmFsOworCQkJcmV0dmFsID0gMDsKKwkJfSBlbHNlCisJCQlyZXR2YWwgPSBsb25nX29wdGlvbnNbbWF0Y2hdLnZhbDsKKwkJaWYgKGlkeCkKKwkJCSppZHggPSBtYXRjaDsKKwl9CisJcmV0dXJuIHJldHZhbDsKK30KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvZ3Nfc3VwcG9ydC5jIGIvbWluZ3ctdzY0LWNydC9nc19zdXBwb3J0LmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGFiYTQ0ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvZ3Nfc3VwcG9ydC5jCkBAIC0wLDAgKzEsMTI1IEBACisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPGludHJpbi5oPgorCisjaWZkZWYgX1dJTjY0CisjZGVmaW5lIERFRkFVTFRfU0VDVVJJVFlfQ09PS0lFIDB4MDAwMDJCOTkyRERGQTIzMmxsCisjZWxzZQorI2RlZmluZSBERUZBVUxUX1NFQ1VSSVRZX0NPT0tJRSAweEJCNDBFNjRFCisjZW5kaWYKKworLyogRXh0ZXJuYWxzLiAgKi8KK1BSVU5USU1FX0ZVTkNUSU9OIFJ0bExvb2t1cEZ1bmN0aW9uRW50cnkgKFVMT05HNjQsIFBVTE9ORzY0LCBQVk9JRCk7CitQVk9JRCBSdGxWaXJ0dWFsVW53aW5kIChVTE9ORyBIYW5kbGVyVHlwZSwgVUxPTkc2NCwgVUxPTkc2NCwgUFJVTlRJTUVfRlVOQ1RJT04sCisJCQlQQ09OVEVYVCwgUFZPSUQgKiwgUFVMT05HNjQsIFBWT0lEKTsKKwordHlwZWRlZiBMT05HIE5UU1RBVFVTOworCisjZGVmaW5lIFVOV19GTEFHX05IQU5ETEVSIDB4MDAKKyNkZWZpbmUgU1RBVFVTX1NUQUNLX0JVRkZFUl9PVkVSUlVOICgoTlRTVEFUVVMpMHhDMDAwMDQwOUwpCisKK3R5cGVkZWYgdW5pb24KK3sKKyAgdW5zaWduZWQgX19pbnQ2NCBmdF9zY2FsYXI7CisgIEZJTEVUSU1FIGZ0X3N0cnVjdDsKK30gRlQ7CisKK3N0YXRpYyBFWENFUFRJT05fUkVDT1JEIEdTX0V4Y2VwdGlvblJlY29yZDsKK3N0YXRpYyBDT05URVhUIEdTX0NvbnRleHRSZWNvcmQ7CisKK3N0YXRpYyBjb25zdCBFWENFUFRJT05fUE9JTlRFUlMgR1NfRXhjZXB0aW9uUG9pbnRlcnMgPSB7CisgICZHU19FeGNlcHRpb25SZWNvcmQsJkdTX0NvbnRleHRSZWNvcmQKK307CisKK0RFQ0xTUEVDX1NFTEVDVEFOWSBVSU5UX1BUUiBfX3NlY3VyaXR5X2Nvb2tpZSA9IERFRkFVTFRfU0VDVVJJVFlfQ09PS0lFOworREVDTFNQRUNfU0VMRUNUQU5ZIFVJTlRfUFRSIF9fc2VjdXJpdHlfY29va2llX2NvbXBsZW1lbnQgPSB+KERFRkFVTFRfU0VDVVJJVFlfQ09PS0lFKTsKKwordm9pZCBfX2NkZWNsCitfX3NlY3VyaXR5X2luaXRfY29va2llICh2b2lkKQoreworICBVSU5UX1BUUiBjb29raWU7CisgIEZUIHN5c3RpbWUgPSB7IDAsIH07CisgIExBUkdFX0lOVEVHRVIgcGVyZmN0cjsKKyNpZmRlZiBDSEVDS19GT1JfTEFURV9DT09LSUVfSU5JVAorICBQRVhDRVBUSU9OX1JFR0lTVFJBVElPTl9SRUNPUkQgZWhyZWM7CisjZW5kaWYKKworICBpZiAoX19zZWN1cml0eV9jb29raWUgIT0gREVGQVVMVF9TRUNVUklUWV9DT09LSUUpCisgICAgeworICAgICAgX19zZWN1cml0eV9jb29raWVfY29tcGxlbWVudCA9IH5fX3NlY3VyaXR5X2Nvb2tpZTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyNpZmRlZiBDSEVDS19GT1JfTEFURV9DT09LSUVfSU5JVAorICBmb3IgKGVocmVjID0gKFBFWENFUFRJT05fUkVHSVNUUkFUSU9OX1JFQ09SRCkgKFVJTlRfUFRSKSBfX3JlYWRmc2R3b3JkKEZJRUxEX09GRlNFVChOVF9USUIsRXhjZXB0aW9uTGlzdCkpOworICAgICAgIGVocmVjICE9IEVYQ0VQVElPTl9DSEFJTl9FTkQ7IGVocmVjID0gZWhyZWMtPk5leHQpCisgICAgeworICAgICAgaWYgKGVocmVjLT5IYW5kbGVyID09ICZfZXhjZXB0X2hhbmRsZXI0KQorCUZhdGFsQXBwRXhpdCAoMCwgX1JUX0NPT0tJRV9JTklUX1RYVCk7CisKKyAgICAgIGlmIChlaHJlYyA+PSBlaHJlYy0+TmV4dCkKKwlicmVhazsKKyAgICB9CisjZW5kaWYKKyAgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUgKCZzeXN0aW1lLmZ0X3N0cnVjdCk7CisjaWZkZWYgX1dJTjY0CisgIGNvb2tpZSA9IHN5c3RpbWUuZnRfc2NhbGFyOworI2Vsc2UKKyAgY29va2llID0gc3lzdGltZS5mdF9zdHJ1Y3QuZHdMb3dEYXRlVGltZTsKKyAgY29va2llIF49IHN5c3RpbWUuZnRfc3RydWN0LmR3SGlnaERhdGVUaW1lOworI2VuZGlmCisKKyAgY29va2llIF49IEdldEN1cnJlbnRQcm9jZXNzSWQgKCk7CisgIGNvb2tpZSBePSBHZXRDdXJyZW50VGhyZWFkSWQgKCk7CisgIGNvb2tpZSBePSBHZXRUaWNrQ291bnQgKCk7CisKKyAgUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIgKCZwZXJmY3RyKTsKKyNpZmRlZiBfV0lONjQKKyAgY29va2llIF49IHBlcmZjdHIuUXVhZFBhcnQ7CisjZWxzZQorICBjb29raWUgXj0gcGVyZmN0ci5Mb3dQYXJ0OworICBjb29raWUgXj0gcGVyZmN0ci5IaWdoUGFydDsKKyNlbmRpZgorCisjaWZkZWYgX1dJTjY0CisgIGNvb2tpZSAmPSAweDAwMDBmZmZmZmZmZmZmZmZsbDsKKyNlbmRpZgorCisgIGlmIChjb29raWUgPT0gREVGQVVMVF9TRUNVUklUWV9DT09LSUUpCisgICAgY29va2llID0gREVGQVVMVF9TRUNVUklUWV9DT09LSUUgKyAxOworICBfX3NlY3VyaXR5X2Nvb2tpZSA9IGNvb2tpZTsKKyAgX19zZWN1cml0eV9jb29raWVfY29tcGxlbWVudCA9IH5jb29raWU7Cit9CisKK19fZGVjbHNwZWMobm9yZXR1cm4pIHZvaWQgX19jZGVjbAorX19yZXBvcnRfZ3NmYWlsdXJlIChVTE9OR0xPTkcgU3RhY2tDb29raWUpCit7CisgIHZvbGF0aWxlIFVJTlRfUFRSIGNvb2tpZVsyXTsKKyAgVUxPTkc2NCBjb250cm9sUEMsIGltZ0Jhc2UsIGVzdGFibGlzaGVyRnJhbWU7CisgIFBSVU5USU1FX0ZVTkNUSU9OIGZjdEVudHJ5OworICBQVk9JRCBobmREYXRhOworCisgIFJ0bENhcHR1cmVDb250ZXh0ICgmR1NfQ29udGV4dFJlY29yZCk7CisgIGNvbnRyb2xQQyA9IEdTX0NvbnRleHRSZWNvcmQuUmlwOworICBmY3RFbnRyeSA9IFJ0bExvb2t1cEZ1bmN0aW9uRW50cnkgKGNvbnRyb2xQQywgJmltZ0Jhc2UsIE5VTEwpOworICBpZiAoZmN0RW50cnkgIT0gTlVMTCkKKyAgICB7CisgICAgICBSdGxWaXJ0dWFsVW53aW5kIChVTldfRkxBR19OSEFORExFUiwgaW1nQmFzZSwgY29udHJvbFBDLCBmY3RFbnRyeSwKKwkJCSZHU19Db250ZXh0UmVjb3JkLCAmaG5kRGF0YSwgJmVzdGFibGlzaGVyRnJhbWUsIE5VTEwpOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIEdTX0NvbnRleHRSZWNvcmQuUmlwID0gKFVMT05HTE9ORykgX19idWlsdGluX3JldHVybl9hZGRyZXNzICgwKTsKKyAgICAgIEdTX0NvbnRleHRSZWNvcmQuUnNwID0gKFVMT05HTE9ORykgX19idWlsdGluX2ZyYW1lX2FkZHJlc3MgKDApICsgODsKKyAgICB9CisKKyAgR1NfRXhjZXB0aW9uUmVjb3JkLkV4Y2VwdGlvbkFkZHJlc3MgPSAoUFZPSUQpIEdTX0NvbnRleHRSZWNvcmQuUmlwOworICBHU19Db250ZXh0UmVjb3JkLlJjeCA9IFN0YWNrQ29va2llOworICBHU19FeGNlcHRpb25SZWNvcmQuRXhjZXB0aW9uQ29kZSA9IFNUQVRVU19TVEFDS19CVUZGRVJfT1ZFUlJVTjsKKyAgR1NfRXhjZXB0aW9uUmVjb3JkLkV4Y2VwdGlvbkZsYWdzID0gRVhDRVBUSU9OX05PTkNPTlRJTlVBQkxFOworICBjb29raWVbMF0gPSBfX3NlY3VyaXR5X2Nvb2tpZTsKKyAgY29va2llWzFdID0gX19zZWN1cml0eV9jb29raWVfY29tcGxlbWVudDsKKyAgU2V0VW5oYW5kbGVkRXhjZXB0aW9uRmlsdGVyIChOVUxMKTsKKyAgVW5oYW5kbGVkRXhjZXB0aW9uRmlsdGVyICgoRVhDRVBUSU9OX1BPSU5URVJTICopICZHU19FeGNlcHRpb25Qb2ludGVycyk7CisgIFRlcm1pbmF0ZVByb2Nlc3MgKEdldEN1cnJlbnRQcm9jZXNzICgpLCBTVEFUVVNfU1RBQ0tfQlVGRkVSX09WRVJSVU4pOworICBhYm9ydCgpOworfQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9pbnRlcm5hbC5oIGIvbWluZ3ctdzY0LWNydC9pbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYyYTY3ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2ludGVybmFsLmgKQEAgLTAsMCArMSwxNjggQEAKKyNpZm5kZWYgX0lOQ19JTlRFUk5BTAorI2RlZmluZSBfSU5DX0lOVEVSTkFMCisKKyNpbmNsdWRlIDxjcnRkZWZzLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHdpbmRvd3MuaD4KKworI3ByYWdtYSBwYWNrKHB1c2gsX0NSVF9QQUNLSU5HKQorCisgIHR5cGVkZWYgdm9pZCAoX19jZGVjbCAqX1BWRlYpKHZvaWQpOworICB0eXBlZGVmIGludCAoX19jZGVjbCAqX1BJRlYpKHZvaWQpOworICB0eXBlZGVmIHZvaWQgKF9fY2RlY2wgKl9QVkZJKShpbnQpOworCisjaWYgZGVmaW5lZCAoU1BFQ0lBTF9DUlRFWEUpICYmIGRlZmluZWQgKF9ETEwpCisgIGV4dGVybiBpbnQgX2NvbW1vZGU7CisjZWxzZQorICBfQ1JUSU1QIGV4dGVybiBpbnQgX2NvbW1vZGU7CisjZW5kaWYKKworI2RlZmluZSBfX0lPSU5GT19UTV9BTlNJIDAKKyNkZWZpbmUgX19JT0lORk9fVE1fVVRGOCAxCisjZGVmaW5lIF9fSU9JTkZPX1RNX1VURjE2TEUgMgorCisgIHR5cGVkZWYgc3RydWN0IHsKKyAgICBpbnRwdHJfdCBvc2ZobmQ7CisgICAgY2hhciBvc2ZpbGU7CisgICAgY2hhciBwaXBlY2g7CisgICAgaW50IGxvY2tpbml0ZmxhZzsKKyAgICBDUklUSUNBTF9TRUNUSU9OIGxvY2s7CisgICAgY2hhciB0ZXh0bW9kZSA6IDc7CisgICAgY2hhciB1bmljb2RlIDogMTsKKyAgICBjaGFyIHBpcGVjaDJbMl07CisgIH0gaW9pbmZvOworCisjZGVmaW5lIElPSU5GT19BUlJBWV9FTFRTICgxIDw8IDUpCisKKyNkZWZpbmUgX3Bpb2luZm8oaSkgKF9fcGlvaW5mb1soaSkgPj4gNV0gKyAoKGkpICYgKElPSU5GT19BUlJBWV9FTFRTIC0gMSkpKQorI2RlZmluZSBfb3NmaWxlKGkpIChfcGlvaW5mbyhpKS0+b3NmaWxlKQorI2RlZmluZSBfcGlwZWNoMihpKSAoX3Bpb2luZm8oaSktPnBpcGVjaDIpCisjZGVmaW5lIF90ZXh0bW9kZShpKSAoX3Bpb2luZm8oaSktPnRleHRtb2RlKQorI2RlZmluZSBfdG1fdW5pY29kZShpKSAoX3Bpb2luZm8oaSktPnVuaWNvZGUpCisjZGVmaW5lIF9waW9pbmZvX3NhZmUoaSkgKCgoKGkpICE9IC0xKSAmJiAoKGkpICE9IC0yKSkgPyBfcGlvaW5mbyhpKSA6ICZfX2JhZGlvaW5mbykKKyNkZWZpbmUgX29zZmhuZF9zYWZlKGkpIChfcGlvaW5mb19zYWZlKGkpLT5vc2ZobmQpCisjZGVmaW5lIF9vc2ZpbGVfc2FmZShpKSAoX3Bpb2luZm9fc2FmZShpKS0+b3NmaWxlKQorI2RlZmluZSBfcGlwZWNoX3NhZmUoaSkgKF9waW9pbmZvX3NhZmUoaSktPnBpcGVjaCkKKyNkZWZpbmUgX3BpcGVjaDJfc2FmZShpKSAoX3Bpb2luZm9fc2FmZShpKS0+cGlwZWNoMikKKyNkZWZpbmUgX3RleHRtb2RlX3NhZmUoaSkgKF9waW9pbmZvX3NhZmUoaSktPnRleHRtb2RlKQorI2RlZmluZSBfdG1fdW5pY29kZV9zYWZlKGkpIChfcGlvaW5mb19zYWZlKGkpLT51bmljb2RlKQorCisjaWZuZGVmIF9fYmFkaW9pbmZvCisgIGV4dGVybiBpb2luZm8gKiogX2ltcF9fX19iYWRpb2luZm9bXTsKKyNkZWZpbmUgX19iYWRpb2luZm8gKCpfaW1wX19fX2JhZGlvaW5mbykKKyNlbmRpZgorCisjaWZuZGVmIF9fcGlvaW5mbworICBleHRlcm4gaW9pbmZvICoqIF9pbXBfX19fcGlvaW5mb1tdOworI2RlZmluZSBfX3Bpb2luZm8gKCpfaW1wX19fX3Bpb2luZm8pCisjZW5kaWYKKworI2RlZmluZSBfTk9fQ09OU09MRV9GSUxFTk8gKGludHB0cl90KS0yCisKKyNpZm5kZWYgX0ZJTEVfREVGSU5FRAorI2RlZmluZSBfRklMRV9ERUZJTkVECisgIHN0cnVjdCBfaW9idWYgeworICAgIGNoYXIgKl9wdHI7CisgICAgaW50IF9jbnQ7CisgICAgY2hhciAqX2Jhc2U7CisgICAgaW50IF9mbGFnOworICAgIGludCBfZmlsZTsKKyAgICBpbnQgX2NoYXJidWY7CisgICAgaW50IF9idWZzaXo7CisgICAgY2hhciAqX3RtcGZuYW1lOworICB9OworICB0eXBlZGVmIHN0cnVjdCBfaW9idWYgRklMRTsKKyNlbmRpZgorCisjaWYgIWRlZmluZWQgKF9GSUxFWF9ERUZJTkVEKSAmJiBkZWZpbmVkIChfV0lORE9XU18pCisjZGVmaW5lIF9GSUxFWF9ERUZJTkVECisgIHR5cGVkZWYgc3RydWN0IHsKKyAgICBGSUxFIGY7CisgICAgQ1JJVElDQUxfU0VDVElPTiBsb2NrOworICB9IF9GSUxFWDsKKyNlbmRpZgorCisgIGV4dGVybiBpbnQgX2Rvd2lsZGNhcmQ7CisgIGV4dGVybiBpbnQgX25ld21vZGU7CisKKyNpZm5kZWYgX193aW5pdGVudgorZXh0ZXJuIHdjaGFyX3QgKioqX2ltcF9fX193aW5pdGVudjsKKyNkZWZpbmUgX193aW5pdGVudiAoKl9pbXBfX19fd2luaXRlbnYpCisjZW5kaWYKKworI2lmbmRlZiBfX2luaXRlbnYKK2V4dGVybiBjaGFyICoqKl9pbXBfX19faW5pdGVudjsKKyNkZWZpbmUgX19pbml0ZW52ICgqX2ltcF9fX19pbml0ZW52KQorI2VuZGlmCisKKyNpZm5kZWYgX2FjbWRsbgorZXh0ZXJuIGNoYXIgKipfaW1wX19fYWNtZGxuOworI2RlZmluZSBfYWNtZGxuICgqX2ltcF9fX2FjbWRsbikKKy8qICBfQ1JUSU1QIGV4dGVybiBjaGFyICpfYWNtZGxuOyAqLworI2VuZGlmCisKKyNpZm5kZWYgX3djbWRsbgorZXh0ZXJuIGNoYXIgKipfaW1wX19fd2NtZGxuOworI2RlZmluZSBfd2NtZGxuICgqX2ltcF9fX3djbWRsbikKKy8qICBfX0NSVElNUCBleHRlcm4gd2NoYXJfdCAqX3djbWRsbjsgKi8KKyNlbmRpZgorCisgIF9DUlRJTVAgdm9pZCBfX2NkZWNsIF9hbXNnX2V4aXQoaW50KTsKKworICBpbnQgX19DUlRERUNMIF9zZXRhcmd2KHZvaWQpOworICBpbnQgX19DUlRERUNMIF9fc2V0YXJndih2b2lkKTsKKyAgaW50IF9fQ1JUREVDTCBfd3NldGFyZ3Yodm9pZCk7CisgIGludCBfX0NSVERFQ0wgX193c2V0YXJndih2b2lkKTsKKworICBpbnQgX19DUlRERUNMIG1haW4oaW50IF9BcmdjLCBjaGFyICoqX0FyZ3YsIGNoYXIgKipfRW52KTsKKyAgaW50IF9fQ1JUREVDTCB3bWFpbihpbnQgX0FyZ2MsIHdjaGFyX3QgKipfQXJndiwgd2NoYXJfdCAqKl9FbnYpOworCisjaWZuZGVmIF9TVEFSVFVQX0lORk9fREVGSU5FRAorI2RlZmluZSBfU1RBUlRVUF9JTkZPX0RFRklORUQKKyAgdHlwZWRlZiBzdHJ1Y3QgeworICAgIGludCBuZXdtb2RlOworICB9IF9zdGFydHVwaW5mbzsKKyNlbmRpZgorCisgIF9DUlRJTVAgaW50IF9fY2RlY2wgX19nZXRtYWluYXJncyhpbnQgKiBfQXJnYywgY2hhciAqKiogX0FyZ3YsIGNoYXIgKioqX0VudiwgaW50IF9Eb1dpbGRDYXJkLCBfc3RhcnR1cGluZm8gKl9TdGFydEluZm8pOworICBfQ1JUSU1QIGludCBfX2NkZWNsIF9fd2dldG1haW5hcmdzKGludCAqIF9BcmdjLCB3Y2hhcl90ICoqKl9Bcmd2LCB3Y2hhcl90ICoqKl9FbnYsIGludCBfRG9XaWxkQ2FyZCwgX3N0YXJ0dXBpbmZvICpfU3RhcnRJbmZvKTsKKworI2RlZmluZSBfQ09OU09MRV9BUFAgMQorI2RlZmluZSBfR1VJX0FQUCAyCisKKyAgdHlwZWRlZiBlbnVtIF9fZW5hdGl2ZV9zdGFydHVwX3N0YXRlIHsKKyAgICBfX3VuaW5pdGlhbGl6ZWQsIF9faW5pdGlhbGl6aW5nLCBfX2luaXRpYWxpemVkCisgIH0gX19lbmF0aXZlX3N0YXJ0dXBfc3RhdGU7CisKKyAgZXh0ZXJuIHZvbGF0aWxlIF9fZW5hdGl2ZV9zdGFydHVwX3N0YXRlIF9fbmF0aXZlX3N0YXJ0dXBfc3RhdGU7CisgIGV4dGVybiB2b2xhdGlsZSB2b2lkICpfX25hdGl2ZV9zdGFydHVwX2xvY2s7CisKKyAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGludCBfX25hdGl2ZV9kbGxtYWluX3JlYXNvbjsKKyAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGludCBfX25hdGl2ZV92Y2Nscml0X3JlYXNvbjsKKworICBfQ1JUSU1QIHZvaWQgX19jZGVjbCBfX3NldF9hcHBfdHlwZSAoaW50KTsKKworICB0eXBlZGVmIExPTkcgTlRTVEFUVVM7CisKKyNpbmNsdWRlIDxjcnRkYmcuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorCisgIHZvaWQgKiBfX2NkZWNsIF9lbmNvZGVfcG9pbnRlcih2b2lkICopOworICB2b2lkICogX19jZGVjbCBfZW5jb2RlZF9udWxsKCk7CisgIHZvaWQgKiBfX2NkZWNsIF9kZWNvZGVfcG9pbnRlcih2b2lkICopOworCisgIEJPT0wgX19jZGVjbCBfVmFsaWRhdGVJbWFnZUJhc2UgKFBCWVRFIHBJbWFnZUJhc2UpOworICBQSU1BR0VfU0VDVElPTl9IRUFERVIgX19jZGVjbCBfRmluZFBFU2VjdGlvbiAoUEJZVEUgcEltYWdlQmFzZSwgRFdPUkRfUFRSIHJ2YSk7CisgIEJPT0wgX19jZGVjbCBfSXNOb253cml0YWJsZUluQ3VycmVudEltYWdlIChQQllURSBwVGFyZ2V0KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI3ByYWdtYSBwYWNrKHBvcCkKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9pc2FzY2lpLmMgYi9taW5ndy13NjQtY3J0L2lzYXNjaWkuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNDEyZWViCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9pc2FzY2lpLmMKQEAgLTAsMCArMSw4IEBACisjaW5jbHVkZSA8Y3R5cGUuaD4KKworI3VuZGVmIGlzYXNjaWkKK2ludAoraXNhc2NpaSAoaW50IGMpCit7CisJcmV0dXJuIF9faXNhc2NpaShjKTsKK30KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvaXNjc3ltLmMgYi9taW5ndy13NjQtY3J0L2lzY3N5bS5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI4YzkzNjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2lzY3N5bS5jCkBAIC0wLDAgKzEsNyBAQAorI2luY2x1ZGUgPGN0eXBlLmg+CisjdW5kZWYgaXNjc3ltCitpbnQKK2lzY3N5bSAoaW50IGMpCit7CisJcmV0dXJuIF9faXNjc3ltKGMpOworfQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9pc2NzeW1mLmMgYi9taW5ndy13NjQtY3J0L2lzY3N5bWYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NDhlYzdmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9pc2NzeW1mLmMKQEAgLTAsMCArMSw4IEBACisjaW5jbHVkZSA8Y3R5cGUuaD4KKyN1bmRlZiBpc2NzeW1mCisKK2ludAoraXNjc3ltZiAoaW50IGMpCit7CisJcmV0dXJuIF9faXNjc3ltZihjKTsKK30KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliLzZ0bzRzdmMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvNnRvNHN2Yy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmMyZjBkZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliLzZ0bzRzdmMuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSA2dG80U3ZjLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSAiNnRvNFN2Yy5kbGwiDQorRVhQT1JUUw0KK1NlcnZpY2VNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvQ0lOVElNRS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9DSU5USU1FLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MjUzYTliCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvQ0lOVElNRS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENJTlRJTUUuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENJTlRJTUUuRExMDQorRVhQT1JUUw0KK1VuaUNyZWF0ZUluc3RMSW5zdGFuY2UNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9DbWRFdlRnUHJvdi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9DbWRFdlRnUHJvdi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzdiMTQxMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL0NtZEV2VGdQcm92LmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEV2VGdQcm92LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBFdlRnUHJvdi5kbGwNCitFWFBPUlRTDQorOyB1bnNpZ25lZCBsb25nICBtX2R3TmV4dFRyaWdnZXJJRA0KKz9tX2R3TmV4dFRyaWdnZXJJREBAM0tBIERBVEENCis7IHVuc2lnbmVkIGxvbmcgIG1fZHdUb3RhbFRyaWdnZXJzDQorP21fZHdUb3RhbFRyaWdnZXJzQEAzS0EgREFUQQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvUFM1VUkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvUFM1VUkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRhOWFlYzEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9QUzVVSS5kZWYKQEAgLTAsMCArMSwyMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBwczV1aS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcHM1dWkuZGxsDQorRVhQT1JUUw0KK0RydlNwbERldmljZUNhcHMNCitEZXZRdWVyeVByaW50RXgNCitEbGxNYWluDQorRHJ2Q29udmVydERldk1vZGUNCitEcnZEZXZpY2VDYXBhYmlsaXRpZXMNCitEcnZEZXZpY2VQcm9wZXJ0eVNoZWV0cw0KK0RydkRvY3VtZW50RXZlbnQNCitEcnZEb2N1bWVudFByb3BlcnR5U2hlZXRzDQorRHJ2RHJpdmVyRXZlbnQNCitEcnZQcmludGVyRXZlbnQNCitEcnZRdWVyeUNvbG9yUHJvZmlsZQ0KK0RydlF1ZXJ5Sm9iQXR0cmlidXRlcw0KK0RydlVwZ3JhZGVQcmludGVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvUFNDUklQVDUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvUFNDUklQVDUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA1YzM0YzgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9QU0NSSVBUNS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBwc2NyaXB0NS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcHNjcmlwdDUuZGxsDQorRVhQT1JUUw0KK0RsbE1haW4NCitEcnZEaXNhYmxlRHJpdmVyDQorRHJ2RW5hYmxlRHJpdmVyDQorRHJ2UXVlcnlEcml2ZXJJbmZvDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvVU5JRFJWLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL1VOSURSVi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2ZhM2M4ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL1VOSURSVi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB1bmlkcnYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHVuaWRydi5kbGwNCitFWFBPUlRTDQorRGxsTWFpbg0KK0RydkRpc2FibGVEcml2ZXINCitEcnZFbmFibGVEcml2ZXINCitEcnZRdWVyeURyaXZlckluZm8NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9VTklEUlZVSS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9VTklEUlZVSS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjQxODNmOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL1VOSURSVlVJLmRlZgpAQCAtMCwwICsxLDIxIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHVuaWRydnVpLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSB1bmlkcnZ1aS5kbGwNCitFWFBPUlRTDQorRHJ2U3BsRGV2aWNlQ2Fwcw0KK0RldlF1ZXJ5UHJpbnRFeA0KK0RsbE1haW4NCitEcnZDb252ZXJ0RGV2TW9kZQ0KK0RydkRldmljZUNhcGFiaWxpdGllcw0KK0RydkRldmljZVByb3BlcnR5U2hlZXRzDQorRHJ2RG9jdW1lbnRFdmVudA0KK0RydkRvY3VtZW50UHJvcGVydHlTaGVldHMNCitEcnZEcml2ZXJFdmVudA0KK0RydlByaW50ZXJFdmVudA0KK0RydlF1ZXJ5Q29sb3JQcm9maWxlDQorRHJ2UXVlcnlKb2JBdHRyaWJ1dGVzDQorRHJ2VXBncmFkZVByaW50ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9hYWFhbW9uLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2FhYWFtb24uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY4NTAzMzYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hYWFhbW9uLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQUFBQU1PTi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQUFBQU1PTi5kbGwNCitFWFBPUlRTDQorSW5pdEhlbHBlckRsbA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2FjZ2VuNjQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYWNnZW42NC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGY4YTg5OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2FjZ2VuNjQuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTlVMTC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTlVMTC5kbGwNCitFWFBPUlRTDQorR2V0SG9va0FQSXMNCitOb3RpZnlTaGltcw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2FjbGVkaXQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYWNsZWRpdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmEzZTE4MAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2FjbGVkaXQuZGVmCkBAIC0wLDAgKzEsMTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQUNMRURJVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQUNMRURJVC5kbGwNCitFWFBPUlRTDQorRWRpdEF1ZGl0SW5mbw0KK0VkaXRPd25lckluZm8NCitFZGl0UGVybWlzc2lvbkluZm8NCitEbGxNYWluDQorRk1FeHRlbnNpb25Qcm9jVw0KK1NlZERpc2NyZXRpb25hcnlBY2xFZGl0b3INCitTZWRTeXN0ZW1BY2xFZGl0b3INCitTZWRUYWtlT3duZXJzaGlwDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYWNsdWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYWNsdWkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU5NWQ4NGUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hY2x1aS5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBQ0xVSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQUNMVUkuZGxsDQorRVhQT1JUUw0KK0NyZWF0ZVNlY3VyaXR5UGFnZQ0KK0VkaXRTZWN1cml0eQ0KK0lJRF9JU2VjdXJpdHlJbmZvcm1hdGlvbiBEQVRBDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYWN0aXZlZHMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYWN0aXZlZHMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmExZTg4NjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hY3RpdmVkcy5kZWYKQEAgLTAsMCArMSwzOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBQ1RJVkVEUy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQUNUSVZFRFMuZGxsDQorRVhQT1JUUw0KK0FEc0dldE9iamVjdA0KK0FEc0J1aWxkRW51bWVyYXRvcg0KK0FEc0ZyZWVFbnVtZXJhdG9yDQorQURzRW51bWVyYXRlTmV4dA0KK0FEc0J1aWxkVmFyQXJyYXlTdHINCitBRHNCdWlsZFZhckFycmF5SW50DQorQURzT3Blbk9iamVjdA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorQURzU2V0TGFzdEVycm9yDQorQURzR2V0TGFzdEVycm9yDQorQWxsb2NBRHNNZW0NCitGcmVlQURzTWVtDQorUmVhbGxvY0FEc01lbQ0KK0FsbG9jQURzU3RyDQorRnJlZUFEc1N0cg0KK1JlYWxsb2NBRHNTdHINCitBRHNFbmNvZGVCaW5hcnlEYXRhDQorUHJvcFZhcmlhbnRUb0Fkc1R5cGUNCitBZHNUeXBlVG9Qcm9wVmFyaWFudA0KK0Fkc0ZyZWVBZHNWYWx1ZXMNCitBRHNEZWNvZGVCaW5hcnlEYXRhDQorQWRzVHlwZVRvUHJvcFZhcmlhbnQyDQorUHJvcFZhcmlhbnRUb0Fkc1R5cGUyDQorQ29udmVydFNlY0Rlc2NyaXB0b3JUb1ZhcmlhbnQNCitDb252ZXJ0U2VjdXJpdHlEZXNjcmlwdG9yVG9TZWNEZXMNCitCaW5hcnlTRFRvU2VjdXJpdHlEZXNjcmlwdG9yDQorU2VjdXJpdHlEZXNjcmlwdG9yVG9CaW5hcnlTRA0KK0NvbnZlcnRUcnVzdGVlVG9TaWQNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9hY3R4cHJ4eS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9hY3R4cHJ4eS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzIxOWMwZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2FjdHhwcnh5LmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNXRUVQUlguZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNXRUVQUlguZGxsDQorRVhQT1JUUw0KK0dldFByb3h5RGxsSW5mbw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYWRtcGFyc2UuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYWRtcGFyc2UuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQwNzI2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hZG1wYXJzZS5kZWYKQEAgLTAsMCArMSwyNyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBhZG1wYXJzZS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgYWRtcGFyc2UuZGxsDQorRVhQT1JUUw0KK0RsbE1haW4NCitJc0FkbURpcnR5DQorUmVzZXRBZG1EaXJ0eUZsYWcNCitBZG1DbG9zZQ0KK0FkbUZpbmlzaGVkQQ0KK0FkbUZpbmlzaGVkVw0KK0FkbUluaXRBDQorQWRtSW5pdFcNCitBZG1SZXNldEENCitBZG1SZXNldFcNCitBZG1TYXZlRGF0YQ0KK0NoZWNrRHVwbGljYXRlS2V5c0ENCitDaGVja0R1cGxpY2F0ZUtleXNXDQorQ3JlYXRlQWRtVWlBDQorQ3JlYXRlQWRtVWlXDQorR2V0QWRtQ2F0ZWdvcmllc0ENCitHZXRBZG1DYXRlZ29yaWVzVw0KK0dldEZvbnRJbmZvQQ0KK0dldEZvbnRJbmZvVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2FkbXdwcm94LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2FkbXdwcm94LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wOGVlZTNkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvYWRtd3Byb3guZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQURNV1BST1guZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEFETVdQUk9YLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK1JlbGVhc2VPYmplY3RTZWN1cml0eUNvbnRleHRXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYWRwdGlmLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2FkcHRpZi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWRkY2I0ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2FkcHRpZi5kZWYKQEAgLTAsMCArMSw0OCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBhZHB0aWYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGFkcHRpZi5kbGwNCitFWFBPUlRTDQorQ3JlYXRlU29ja2V0UG9ydA0KK0RlbGV0ZVNvY2tldFBvcnQNCitGd0JpbmRGd0ludGVyZmFjZVRvQWRhcHRlcg0KK0Z3Q29ubmVjdGlvblJlcXVlc3RGYWlsZWQNCitGd0NyZWF0ZUludGVyZmFjZQ0KK0Z3RGVsZXRlSW50ZXJmYWNlDQorRndEaXNhYmxlRndJbnRlcmZhY2UNCitGd0VuYWJsZUZ3SW50ZXJmYWNlDQorRndHZXRJbnRlcmZhY2UNCitGd0dldE5vdGlmaWNhdGlvblJlc3VsdA0KK0Z3R2V0U3RhdGljTmV0Ymlvc05hbWVzDQorRndJc1N0YXJ0ZWQNCitGd05vdGlmeUNvbm5lY3Rpb25SZXF1ZXN0DQorRndTZXRJbnRlcmZhY2UNCitGd1NldFN0YXRpY05ldGJpb3NOYW1lcw0KK0Z3U3RhcnQNCitGd1N0b3ANCitGd1VuYmluZEZ3SW50ZXJmYWNlRnJvbUFkYXB0ZXINCitGd1VwZGF0ZUNvbmZpZw0KK0Z3VXBkYXRlUm91dGVUYWJsZQ0KK0dldEFkYXB0ZXJOYW1lRnJvbU1hY0FkZHJXDQorR2V0QWRhcHRlck5hbWVXDQorR2V0RmlsdGVycw0KK0lweEFkanVzdElvQ29tcGxldGlvblBhcmFtcw0KK0lweENyZWF0ZUFkYXB0ZXJDb25maWd1cmF0aW9uUG9ydA0KK0lweERlbGV0ZUFkYXB0ZXJDb25maWd1cmF0aW9uUG9ydA0KK0lweERvZXNSb3V0ZUV4aXN0DQorSXB4R2V0QWRhcHRlckNvbmZpZw0KK0lweEdldEFkYXB0ZXJMaXN0DQorSXB4R2V0T3ZlcmxhcHBlZFJlc3VsdA0KK0lweEdldFF1ZXVlZEFkYXB0ZXJDb25maWd1cmF0aW9uU3RhdHVzDQorSXB4R2V0UXVldWVkQ29tcGxldGlvblN0YXR1cw0KK0lweFBvc3RRdWV1ZWRDb21wbGV0aW9uU3RhdHVzDQorSXB4UmVjdlBhY2tldA0KK0lweFNlbmRQYWNrZXQNCitJcHhXYW5DcmVhdGVBZGFwdGVyQ29uZmlndXJhdGlvblBvcnQNCitJcHhXYW5RdWVyeUluYWN0aXZpdHlUaW1lcg0KK0lweFdhblNldEFkYXB0ZXJDb25maWd1cmF0aW9uDQorU2VydmljZU1haW4NCitTZXRGaWx0ZXJzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYWRyb3QuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYWRyb3QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAwMDU0M2IKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hZHJvdC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBZFJvdC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQWRSb3QuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYWRzaWlzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Fkc2lpcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWM5MWRmNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Fkc2lpcy5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBRFNJSVMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEFEU0lJUy5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9hZHNpaXNleC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9hZHNpaXNleC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWFhOGFiNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Fkc2lpc2V4LmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEFEU0lJU0VYLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBBRFNJSVNFWC5kbGwNCitFWFBPUlRTDQorSXNFeHRlbnNpb25DbGFzcw0KK0NyZWF0ZUV4dGVuc2lvbkNsYXNzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYWRzbGRwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Fkc2xkcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjg0ZTQ0OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Fkc2xkcC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBhZHNsZHAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGFkc2xkcC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9hZHNsZHBjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Fkc2xkcGMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhlMDYwNmYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hZHNsZHBjLmRlZgpAQCAtMCwwICsxLDE4OCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBhZHNsZHBjLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBhZHNsZHBjLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBDTGV4ZXI6OkNMZXhlcih2b2lkKSBfX3B0cjY0DQorPz8wQ0xleGVyQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0xleGVyOjp+Q0xleGVyKHZvaWQpIF9fcHRyNjQNCis/PzFDTGV4ZXJAQFFFQUFAWFoNCitBRHNBYmFuZG9uU2VhcmNoDQorQURzQ2xvc2VTZWFyY2hIYW5kbGUNCitBRHNDcmVhdGVBdHRyaWJ1dGVEZWZpbml0aW9uDQorQURzQ3JlYXRlQ2xhc3NEZWZpbml0aW9uDQorQURzQ3JlYXRlRFNPYmplY3QNCitBRHNDcmVhdGVEU09iamVjdEV4dA0KK0FEc0RlbGV0ZUF0dHJpYnV0ZURlZmluaXRpb24NCitBRHNEZWxldGVDbGFzc0RlZmluaXRpb24NCitBRHNEZWxldGVEU09iamVjdA0KK0FEc0VudW1BdHRyaWJ1dGVzDQorQURzRW51bUNsYXNzZXMNCitBRHNFeGVjdXRlU2VhcmNoDQorQURzRnJlZUNvbHVtbg0KK0FEc0dldENvbHVtbg0KK0FEc0dldEZpcnN0Um93DQorQURzR2V0TmV4dENvbHVtbk5hbWUNCitBRHNHZXROZXh0Um93DQorQURzR2V0T2JqZWN0QXR0cmlidXRlcw0KK0FEc0dldFByZXZpb3VzUm93DQorQURzSGVscGVyR2V0Q3VycmVudFJvd01lc3NhZ2UNCitBRHNPYmplY3QNCitBRHNTZXRPYmplY3RBdHRyaWJ1dGVzDQorQURzU2V0U2VhcmNoUHJlZmVyZW5jZQ0KK0FEc1dyaXRlQXR0cmlidXRlRGVmaW5pdGlvbg0KK0FEc1dyaXRlQ2xhc3NEZWZpbml0aW9uDQorQWRzVHlwZVRvTGRhcFR5cGVDb3B5Q29uc3RydWN0DQorQWRzVHlwZVRvTGRhcFR5cGVDb3B5RE5XaXRoQmluYXJ5DQorQWRzVHlwZVRvTGRhcFR5cGVDb3B5RE5XaXRoU3RyaW5nDQorQWRzVHlwZVRvTGRhcFR5cGVDb3B5R2VuZXJhbGl6ZWRUaW1lDQorQWRzVHlwZVRvTGRhcFR5cGVDb3B5VGltZQ0KK0JlckJ2RnJlZQ0KK0JlckVuY29kaW5nUXVvdGFDb250cm9sDQorQnVpbGRBRHNQYXJlbnRQYXRoDQorQnVpbGRBRHNQYXJlbnRQYXRoRnJvbU9iamVjdEluZm8yDQorQnVpbGRBRHNQYXJlbnRQYXRoRnJvbU9iamVjdEluZm8NCitCdWlsZEFEc1BhdGhGcm9tTERBUFBhdGgyDQorQnVpbGRBRHNQYXRoRnJvbUxEQVBQYXRoDQorQnVpbGRBRHNQYXRoRnJvbVBhcmVudA0KK0J1aWxkTERBUFBhdGhGcm9tQURzUGF0aDINCitCdWlsZExEQVBQYXRoRnJvbUFEc1BhdGgNCitDaGFuZ2VTZXBhcmF0b3INCitDb21wb25lbnQNCitDb252ZXJ0U2lkVG9TdHJpbmcNCitDb252ZXJ0U2lkVG9VMlRydXN0ZWUNCitDb252ZXJ0VTJUcnVzdGVlVG9TaWQNCitGaW5kRW50cnlJblNlYXJjaFRhYmxlDQorRmluZFNlYXJjaFRhYmxlSW5kZXgNCitGcmVlT2JqZWN0SW5mbw0KK0dldERlZmF1bHRTZXJ2ZXINCitHZXREaXNwbGF5TmFtZQ0KK0dldERvbWFpbkROU05hbWVGb3JEb21haW4NCitHZXRMREFQVHlwZU5hbWUNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENMZXhlcjo6R2V0TmV4dFRva2VuKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXROZXh0VG9rZW5AQ0xleGVyQEBRRUFBSlBFQUdQRUFLQFoNCitHZXRTeW50YXhPZkF0dHJpYnV0ZQ0KK0luaXRPYmplY3RJbmZvDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTGV4ZXI6OkluaXRpYWxpemVQYXRoKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0aWFsaXplUGF0aEBDTGV4ZXJAQFFFQUFKUEVBR0BaDQorSXNHQ05hbWVzcGFjZQ0KK0xkYXBBZGRFeHRTDQorTGRhcEFkZFMNCitMZGFwQXR0cmlidXRlRnJlZQ0KK0xkYXBDYWNoZUFkZFJlZg0KK0xkYXBDbG9zZU9iamVjdA0KK0xkYXBDb21wYXJlRXh0DQorTGRhcENvbnRyb2xGcmVlDQorTGRhcENvbnRyb2xzRnJlZQ0KK0xkYXBDb3VudEVudHJpZXMNCitMZGFwQ3JhY2tVc2VyRE50b05UTE1Vc2VyMg0KK0xkYXBDcmFja1VzZXJETnRvTlRMTVVzZXINCitMZGFwQ3JlYXRlUGFnZUNvbnRyb2wNCitMZGFwRGVsZXRlRXh0Uw0KK0xkYXBEZWxldGVTDQorTGRhcEZpcnN0QXR0cmlidXRlDQorTGRhcEZpcnN0RW50cnkNCitMZGFwR2V0RG4NCitMZGFwR2V0TmV4dFBhZ2VTDQorTGRhcEdldFNjaGVtYU9iamVjdENvdW50DQorTGRhcEdldFN1YlNjaGVtYVN1YkVudHJ5UGF0aA0KK0xkYXBHZXRTeW50YXhJZE9mQXR0cmlidXRlDQorTGRhcEdldFN5bnRheE9mQXR0cmlidXRlT25TZXJ2ZXINCitMZGFwR2V0VmFsdWVzDQorTGRhcEdldFZhbHVlc0xlbg0KK0xkYXBJbml0aWFsaXplU2VhcmNoUHJlZmVyZW5jZXMNCitMZGFwSXNDbGFzc05hbWVWYWxpZE9uU2VydmVyDQorTGRhcE1ha2VTY2hlbWFDYWNoZU9ic29sZXRlDQorTGRhcE1lbUZyZWUNCitMZGFwTW9kRG5TDQorTGRhcE1vZGlmeUV4dFMNCitMZGFwTW9kaWZ5Uw0KK0xkYXBNc2dGcmVlDQorTGRhcE5leHRBdHRyaWJ1dGUNCitMZGFwTmV4dEVudHJ5DQorTGRhcE9wZW5PYmplY3QyDQorTGRhcE9wZW5PYmplY3QNCitMZGFwUGFyc2VQYWdlQ29udHJvbA0KK0xkYXBQYXJzZVJlc3VsdA0KK0xkYXBSZWFkQXR0cmlidXRlMg0KK0xkYXBSZWFkQXR0cmlidXRlDQorTGRhcFJlYWRBdHRyaWJ1dGVGYXN0DQorTGRhcFJlbmFtZUV4dFMNCitMZGFwUmVzdWx0DQorTGRhcFNlYXJjaA0KK0xkYXBTZWFyY2hBYmFuZG9uUGFnZQ0KK0xkYXBTZWFyY2hFeHRTDQorTGRhcFNlYXJjaEluaXRQYWdlDQorTGRhcFNlYXJjaFMNCitMZGFwU2VhcmNoU1QNCitMZGFwVHlwZUJpbmFyeVRvU3RyaW5nDQorTGRhcFR5cGVDb3B5Q29uc3RydWN0DQorTGRhcFR5cGVGcmVlTGRhcE1vZExpc3QNCitMZGFwVHlwZUZyZWVMZGFwTW9kT2JqZWN0DQorTGRhcFR5cGVGcmVlTGRhcE9iamVjdHMNCitMZGFwVHlwZVRvQWRzVHlwZUROV2l0aEJpbmFyeQ0KK0xkYXBUeXBlVG9BZHNUeXBlRE5XaXRoU3RyaW5nDQorTGRhcFR5cGVUb0Fkc1R5cGVHZW5lcmFsaXplZFRpbWUNCitMZGFwVHlwZVRvQWRzVHlwZVVUQ1RpbWUNCitMZGFwVmFsdWVGcmVlDQorTGRhcFZhbHVlRnJlZUxlbg0KK0xkYXBjS2VlcEhhbmRsZUFyb3VuZA0KK0xkYXBjU2V0U3RpY2t5U2VydmVyDQorUGF0aE5hbWUNCitSZWFkUGFnaW5nU3VwcG9ydGVkQXR0cg0KK1JlYWRTZWN1cml0eURlc2NyaXB0b3JDb250cm9sVHlwZQ0KK1JlYWRTZXJ2ZXJTdXBwb3J0c0lzQURDb250cm9sDQorU2NoZW1hQWRkUmVmDQorU2NoZW1hQ2xvc2UNCitTY2hlbWFHZXRDbGFzc0luZm8NCitTY2hlbWFHZXRDbGFzc0luZm9CeUluZGV4DQorU2NoZW1hR2V0T2JqZWN0Q291bnQNCitTY2hlbWFHZXRQcm9wZXJ0eUluZm8NCitTY2hlbWFHZXRQcm9wZXJ0eUluZm9CeUluZGV4DQorU2NoZW1hR2V0U3RyaW5nc0Zyb21TdHJpbmdUYWJsZQ0KK1NjaGVtYUdldFN5bnRheE9mQXR0cmlidXRlDQorU2NoZW1hSXNDbGFzc0FDb250YWluZXINCitTY2hlbWFPcGVuDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTGV4ZXI6OlNldEF0RGlzYWJsZXIoaW50KSBfX3B0cjY0DQorP1NldEF0RGlzYWJsZXJAQ0xleGVyQEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xleGVyOjpTZXRFeGNsYWltbmF0aW9uRGlzYWJsZXIoaW50KSBfX3B0cjY0DQorP1NldEV4Y2xhaW1uYXRpb25EaXNhYmxlckBDTGV4ZXJAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTGV4ZXI6OlNldEZTbGFzaERpc2FibGVyKGludCkgX19wdHI2NA0KKz9TZXRGU2xhc2hEaXNhYmxlckBDTGV4ZXJAQFFFQUFYSEBaDQorU29ydEFuZFJlbW92ZUR1cGxpY2F0ZU9JRHMNCitVbk1hcnNoYWxsTERBUFRvTERBUFN5bklEDQoraW50Y21wDQorQURTSUFiYW5kb25TZWFyY2gNCitBRFNJQ2xvc2VEU09iamVjdA0KK0FEU0lDbG9zZVNlYXJjaEhhbmRsZQ0KK0FEU0lDcmVhdGVEU09iamVjdA0KK0FEU0lEZWxldGVEU09iamVjdA0KK0FEU0lFeGVjdXRlU2VhcmNoDQorQURTSUZyZWVDb2x1bW4NCitBRFNJR2V0Q29sdW1uDQorQURTSUdldEZpcnN0Um93DQorQURTSUdldE5leHRDb2x1bW5OYW1lDQorQURTSUdldE5leHRSb3cNCitBRFNJR2V0T2JqZWN0QXR0cmlidXRlcw0KK0FEU0lHZXRQcmV2aW91c1Jvdw0KK0FEU0lNb2RpZnlSZG4NCitBRFNJT3BlbkRTT2JqZWN0DQorQURTSVNldE9iamVjdEF0dHJpYnV0ZXMNCitBRFNJU2V0U2VhcmNoUHJlZmVyZW5jZQ0KK0FEc0RlY29kZUJpbmFyeURhdGENCitBRHNFbmNvZGVCaW5hcnlEYXRhDQorQURzR2V0TGFzdEVycm9yDQorQURzU2V0TGFzdEVycm9yDQorQWRzVHlwZUZyZWVBZHNPYmplY3RzDQorQWxsb2NBRHNNZW0NCitBbGxvY0FEc1N0cg0KK0ZyZWVBRHNNZW0NCitGcmVlQURzU3RyDQorTGRhcFR5cGVUb0Fkc1R5cGVDb3B5Q29uc3RydWN0DQorTWFwQURTVHlwZVRvTERBUFR5cGUNCitNYXBMREFQVHlwZVRvQURTVHlwZQ0KK1JlYWxsb2NBRHNNZW0NCitSZWFsbG9jQURzU3RyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYWRzbXNleHQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYWRzbXNleHQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI4ZjU2MDgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hZHNtc2V4dC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBhZHNtc2V4dC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgYWRzbXNleHQuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYWRzbnQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYWRzbnQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQyYzQ1NTUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hZHNudC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBRFNOVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQURTTlQuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYWR2YXBpMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYWR2YXBpMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUzY2YyYWQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hZHZhcGkzMi5kZWYKQEAgLTAsMCArMSw2OTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQURWQVBJMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEFEVkFQSTMyLmRsbA0KK0VYUE9SVFMNCitJX1NjR2V0Q3VycmVudEdyb3VwU3RhdGVXDQorQV9TSEFGaW5hbA0KK0FfU0hBSW5pdA0KK0FfU0hBVXBkYXRlDQorQWJvcnRTeXN0ZW1TaHV0ZG93bkENCitBYm9ydFN5c3RlbVNodXRkb3duVw0KK0FjY2Vzc0NoZWNrDQorQWNjZXNzQ2hlY2tBbmRBdWRpdEFsYXJtQQ0KK0FjY2Vzc0NoZWNrQW5kQXVkaXRBbGFybVcNCitBY2Nlc3NDaGVja0J5VHlwZQ0KK0FjY2Vzc0NoZWNrQnlUeXBlQW5kQXVkaXRBbGFybUENCitBY2Nlc3NDaGVja0J5VHlwZUFuZEF1ZGl0QWxhcm1XDQorQWNjZXNzQ2hlY2tCeVR5cGVSZXN1bHRMaXN0DQorQWNjZXNzQ2hlY2tCeVR5cGVSZXN1bHRMaXN0QW5kQXVkaXRBbGFybUENCitBY2Nlc3NDaGVja0J5VHlwZVJlc3VsdExpc3RBbmRBdWRpdEFsYXJtQnlIYW5kbGVBDQorQWNjZXNzQ2hlY2tCeVR5cGVSZXN1bHRMaXN0QW5kQXVkaXRBbGFybUJ5SGFuZGxlVw0KK0FjY2Vzc0NoZWNrQnlUeXBlUmVzdWx0TGlzdEFuZEF1ZGl0QWxhcm1XDQorQWRkQWNjZXNzQWxsb3dlZEFjZQ0KK0FkZEFjY2Vzc0FsbG93ZWRBY2VFeA0KK0FkZEFjY2Vzc0FsbG93ZWRPYmplY3RBY2UNCitBZGRBY2Nlc3NEZW5pZWRBY2UNCitBZGRBY2Nlc3NEZW5pZWRBY2VFeA0KK0FkZEFjY2Vzc0RlbmllZE9iamVjdEFjZQ0KK0FkZEFjZQ0KK0FkZEF1ZGl0QWNjZXNzQWNlDQorQWRkQXVkaXRBY2Nlc3NBY2VFeA0KK0FkZEF1ZGl0QWNjZXNzT2JqZWN0QWNlDQorQWRkVXNlcnNUb0VuY3J5cHRlZEZpbGUNCitBZGp1c3RUb2tlbkdyb3Vwcw0KK0FkanVzdFRva2VuUHJpdmlsZWdlcw0KK0FsbG9jYXRlQW5kSW5pdGlhbGl6ZVNpZA0KK0FsbG9jYXRlTG9jYWxseVVuaXF1ZUlkDQorQXJlQWxsQWNjZXNzZXNHcmFudGVkDQorQXJlQW55QWNjZXNzZXNHcmFudGVkDQorQmFja3VwRXZlbnRMb2dBDQorQmFja3VwRXZlbnRMb2dXDQorQnVpbGRFeHBsaWNpdEFjY2Vzc1dpdGhOYW1lQQ0KK0J1aWxkRXhwbGljaXRBY2Nlc3NXaXRoTmFtZVcNCitCdWlsZEltcGVyc29uYXRlRXhwbGljaXRBY2Nlc3NXaXRoTmFtZUENCitCdWlsZEltcGVyc29uYXRlRXhwbGljaXRBY2Nlc3NXaXRoTmFtZVcNCitCdWlsZEltcGVyc29uYXRlVHJ1c3RlZUENCitCdWlsZEltcGVyc29uYXRlVHJ1c3RlZVcNCitCdWlsZFNlY3VyaXR5RGVzY3JpcHRvckENCitCdWlsZFNlY3VyaXR5RGVzY3JpcHRvclcNCitCdWlsZFRydXN0ZWVXaXRoTmFtZUENCitCdWlsZFRydXN0ZWVXaXRoTmFtZVcNCitCdWlsZFRydXN0ZWVXaXRoT2JqZWN0c0FuZE5hbWVBDQorQnVpbGRUcnVzdGVlV2l0aE9iamVjdHNBbmROYW1lVw0KK0J1aWxkVHJ1c3RlZVdpdGhPYmplY3RzQW5kU2lkQQ0KK0J1aWxkVHJ1c3RlZVdpdGhPYmplY3RzQW5kU2lkVw0KK0J1aWxkVHJ1c3RlZVdpdGhTaWRBDQorQnVpbGRUcnVzdGVlV2l0aFNpZFcNCitDYW5jZWxPdmVybGFwcGVkQWNjZXNzDQorQ2hhbmdlU2VydmljZUNvbmZpZzJBDQorQ2hhbmdlU2VydmljZUNvbmZpZzJXDQorQ2hhbmdlU2VydmljZUNvbmZpZ0ENCitDaGFuZ2VTZXJ2aWNlQ29uZmlnVw0KK0NoZWNrVG9rZW5NZW1iZXJzaGlwDQorQ2xlYXJFdmVudExvZ0ENCitDbGVhckV2ZW50TG9nVw0KK0Nsb3NlQ29kZUF1dGh6TGV2ZWwNCitDbG9zZUVuY3J5cHRlZEZpbGVSYXcNCitDbG9zZUV2ZW50TG9nDQorQ2xvc2VTZXJ2aWNlSGFuZGxlDQorQ2xvc2VUcmFjZQ0KK0NvbW1hbmRMaW5lRnJvbU1zaURlc2NyaXB0b3INCitDb21wdXRlQWNjZXNzVG9rZW5Gcm9tQ29kZUF1dGh6TGV2ZWwNCitDb250cm9sU2VydmljZQ0KK0NvbnRyb2xUcmFjZUENCitDb250cm9sVHJhY2VXDQorQ29udmVydEFjY2Vzc1RvU2VjdXJpdHlEZXNjcmlwdG9yQQ0KK0NvbnZlcnRBY2Nlc3NUb1NlY3VyaXR5RGVzY3JpcHRvclcNCitDb252ZXJ0U0RUb1N0cmluZ1NEUm9vdERvbWFpbkENCitDb252ZXJ0U0RUb1N0cmluZ1NEUm9vdERvbWFpblcNCitDb252ZXJ0U2VjdXJpdHlEZXNjcmlwdG9yVG9BY2Nlc3NBDQorQ29udmVydFNlY3VyaXR5RGVzY3JpcHRvclRvQWNjZXNzTmFtZWRBDQorQ29udmVydFNlY3VyaXR5RGVzY3JpcHRvclRvQWNjZXNzTmFtZWRXDQorQ29udmVydFNlY3VyaXR5RGVzY3JpcHRvclRvQWNjZXNzVw0KK0NvbnZlcnRTZWN1cml0eURlc2NyaXB0b3JUb1N0cmluZ1NlY3VyaXR5RGVzY3JpcHRvckENCitDb252ZXJ0U2VjdXJpdHlEZXNjcmlwdG9yVG9TdHJpbmdTZWN1cml0eURlc2NyaXB0b3JXDQorQ29udmVydFNpZFRvU3RyaW5nU2lkQQ0KK0NvbnZlcnRTaWRUb1N0cmluZ1NpZFcNCitDb252ZXJ0U3RyaW5nU0RUb1NERG9tYWluQQ0KK0NvbnZlcnRTdHJpbmdTRFRvU0REb21haW5XDQorQ29udmVydFN0cmluZ1NEVG9TRFJvb3REb21haW5BDQorQ29udmVydFN0cmluZ1NEVG9TRFJvb3REb21haW5XDQorQ29udmVydFN0cmluZ1NlY3VyaXR5RGVzY3JpcHRvclRvU2VjdXJpdHlEZXNjcmlwdG9yQQ0KK0NvbnZlcnRTdHJpbmdTZWN1cml0eURlc2NyaXB0b3JUb1NlY3VyaXR5RGVzY3JpcHRvclcNCitDb252ZXJ0U3RyaW5nU2lkVG9TaWRBDQorQ29udmVydFN0cmluZ1NpZFRvU2lkVw0KK0NvbnZlcnRUb0F1dG9Jbmhlcml0UHJpdmF0ZU9iamVjdFNlY3VyaXR5DQorQ29weVNpZA0KK0NyZWF0ZUNvZGVBdXRoekxldmVsDQorQ3JlYXRlUHJpdmF0ZU9iamVjdFNlY3VyaXR5DQorQ3JlYXRlUHJpdmF0ZU9iamVjdFNlY3VyaXR5RXgNCitDcmVhdGVQcml2YXRlT2JqZWN0U2VjdXJpdHlXaXRoTXVsdGlwbGVJbmhlcml0YW5jZQ0KK0NyZWF0ZVByb2Nlc3NBc1VzZXJBDQorQ3JlYXRlUHJvY2Vzc0FzVXNlclcNCitDcmVhdGVQcm9jZXNzV2l0aExvZ29uVw0KK0NyZWF0ZVByb2Nlc3NXaXRoVG9rZW5XDQorQ3JlYXRlUmVzdHJpY3RlZFRva2VuDQorQ3JlYXRlU2VydmljZUENCitDcmVhdGVTZXJ2aWNlVw0KK0NyZWF0ZVRyYWNlSW5zdGFuY2VJZA0KK0NyZWF0ZVdlbGxLbm93blNpZA0KK0NyZWREZWxldGVBDQorQ3JlZERlbGV0ZVcNCitDcmVkRW51bWVyYXRlQQ0KK0NyZWRFbnVtZXJhdGVXDQorQ3JlZEZyZWUNCitDcmVkR2V0U2Vzc2lvblR5cGVzDQorQ3JlZEdldFRhcmdldEluZm9BDQorQ3JlZEdldFRhcmdldEluZm9XDQorQ3JlZElzTWFyc2hhbGVkQ3JlZGVudGlhbEENCitDcmVkSXNNYXJzaGFsZWRDcmVkZW50aWFsVw0KK0NyZWRNYXJzaGFsQ3JlZGVudGlhbEENCitDcmVkTWFyc2hhbENyZWRlbnRpYWxXDQorQ3JlZFByb2ZpbGVMb2FkZWQNCitDcmVkUmVhZEENCitDcmVkUmVhZERvbWFpbkNyZWRlbnRpYWxzQQ0KK0NyZWRSZWFkRG9tYWluQ3JlZGVudGlhbHNXDQorQ3JlZFJlYWRXDQorQ3JlZFJlbmFtZUENCitDcmVkUmVuYW1lVw0KK0NyZWRVbm1hcnNoYWxDcmVkZW50aWFsQQ0KK0NyZWRVbm1hcnNoYWxDcmVkZW50aWFsVw0KK0NyZWRXcml0ZUENCitDcmVkV3JpdGVEb21haW5DcmVkZW50aWFsc0ENCitDcmVkV3JpdGVEb21haW5DcmVkZW50aWFsc1cNCitDcmVkV3JpdGVXDQorQ3JlZHBDb252ZXJ0Q3JlZGVudGlhbA0KK0NyZWRwQ29udmVydFRhcmdldEluZm8NCitDcmVkcERlY29kZUNyZWRlbnRpYWwNCitDcmVkcEVuY29kZUNyZWRlbnRpYWwNCitDcnlwdEFjcXVpcmVDb250ZXh0QQ0KK0NyeXB0QWNxdWlyZUNvbnRleHRXDQorQ3J5cHRDb250ZXh0QWRkUmVmDQorQ3J5cHRDcmVhdGVIYXNoDQorQ3J5cHREZWNyeXB0DQorQ3J5cHREZXJpdmVLZXkNCitDcnlwdERlc3Ryb3lIYXNoDQorQ3J5cHREZXN0cm95S2V5DQorQ3J5cHREdXBsaWNhdGVIYXNoDQorQ3J5cHREdXBsaWNhdGVLZXkNCitDcnlwdEVuY3J5cHQNCitDcnlwdEVudW1Qcm92aWRlclR5cGVzQQ0KK0NyeXB0RW51bVByb3ZpZGVyVHlwZXNXDQorQ3J5cHRFbnVtUHJvdmlkZXJzQQ0KK0NyeXB0RW51bVByb3ZpZGVyc1cNCitDcnlwdEV4cG9ydEtleQ0KK0NyeXB0R2VuS2V5DQorQ3J5cHRHZW5SYW5kb20NCitDcnlwdEdldERlZmF1bHRQcm92aWRlckENCitDcnlwdEdldERlZmF1bHRQcm92aWRlclcNCitDcnlwdEdldEhhc2hQYXJhbQ0KK0NyeXB0R2V0S2V5UGFyYW0NCitDcnlwdEdldFByb3ZQYXJhbQ0KK0NyeXB0R2V0VXNlcktleQ0KK0NyeXB0SGFzaERhdGENCitDcnlwdEhhc2hTZXNzaW9uS2V5DQorQ3J5cHRJbXBvcnRLZXkNCitDcnlwdFJlbGVhc2VDb250ZXh0DQorQ3J5cHRTZXRIYXNoUGFyYW0NCitDcnlwdFNldEtleVBhcmFtDQorQ3J5cHRTZXRQcm92UGFyYW0NCitDcnlwdFNldFByb3ZpZGVyQQ0KK0NyeXB0U2V0UHJvdmlkZXJFeEENCitDcnlwdFNldFByb3ZpZGVyRXhXDQorQ3J5cHRTZXRQcm92aWRlclcNCitDcnlwdFNpZ25IYXNoQQ0KK0NyeXB0U2lnbkhhc2hXDQorQ3J5cHRWZXJpZnlTaWduYXR1cmVBDQorQ3J5cHRWZXJpZnlTaWduYXR1cmVXDQorRGVjcnlwdEZpbGVBDQorRGVjcnlwdEZpbGVXDQorRGVsZXRlQWNlDQorRGVsZXRlU2VydmljZQ0KK0RlcmVnaXN0ZXJFdmVudFNvdXJjZQ0KK0Rlc3Ryb3lQcml2YXRlT2JqZWN0U2VjdXJpdHkNCitEdXBsaWNhdGVFbmNyeXB0aW9uSW5mb0ZpbGUNCitEdXBsaWNhdGVUb2tlbg0KK0R1cGxpY2F0ZVRva2VuRXgNCitFbGZCYWNrdXBFdmVudExvZ0ZpbGVBDQorRWxmQmFja3VwRXZlbnRMb2dGaWxlVw0KK0VsZkNoYW5nZU5vdGlmeQ0KK0VsZkNsZWFyRXZlbnRMb2dGaWxlQQ0KK0VsZkNsZWFyRXZlbnRMb2dGaWxlVw0KK0VsZkNsb3NlRXZlbnRMb2cNCitFbGZEZXJlZ2lzdGVyRXZlbnRTb3VyY2UNCitFbGZGbHVzaEV2ZW50TG9nDQorRWxmTnVtYmVyT2ZSZWNvcmRzDQorRWxmT2xkZXN0UmVjb3JkDQorRWxmT3BlbkJhY2t1cEV2ZW50TG9nQQ0KK0VsZk9wZW5CYWNrdXBFdmVudExvZ1cNCitFbGZPcGVuRXZlbnRMb2dBDQorRWxmT3BlbkV2ZW50TG9nVw0KK0VsZlJlYWRFdmVudExvZ0ENCitFbGZSZWFkRXZlbnRMb2dXDQorRWxmUmVnaXN0ZXJFdmVudFNvdXJjZUENCitFbGZSZWdpc3RlckV2ZW50U291cmNlVw0KK0VsZlJlcG9ydEV2ZW50QQ0KK0VsZlJlcG9ydEV2ZW50QW5kU291cmNlVw0KK0VsZlJlcG9ydEV2ZW50Vw0KK0VuYWJsZVRyYWNlDQorRW5jcnlwdEZpbGVBDQorRW5jcnlwdEZpbGVXDQorRW5jcnlwdGVkRmlsZUtleUluZm8NCitFbmNyeXB0aW9uRGlzYWJsZQ0KK0VudW1EZXBlbmRlbnRTZXJ2aWNlc0ENCitFbnVtRGVwZW5kZW50U2VydmljZXNXDQorRW51bVNlcnZpY2VHcm91cFcNCitFbnVtU2VydmljZXNTdGF0dXNBDQorRW51bVNlcnZpY2VzU3RhdHVzRXhBDQorRW51bVNlcnZpY2VzU3RhdHVzRXhXDQorRW51bVNlcnZpY2VzU3RhdHVzVw0KK0VudW1lcmF0ZVRyYWNlR3VpZHMNCitFcXVhbERvbWFpblNpZA0KK0VxdWFsUHJlZml4U2lkDQorRXF1YWxTaWQNCitGaWxlRW5jcnlwdGlvblN0YXR1c0ENCitGaWxlRW5jcnlwdGlvblN0YXR1c1cNCitGaW5kRmlyc3RGcmVlQWNlDQorRmx1c2hUcmFjZUENCitGbHVzaFRyYWNlVw0KK0ZyZWVFbmNyeXB0ZWRGaWxlS2V5SW5mbw0KK0ZyZWVFbmNyeXB0aW9uQ2VydGlmaWNhdGVIYXNoTGlzdA0KK0ZyZWVJbmhlcml0ZWRGcm9tQXJyYXkNCitGcmVlU2lkDQorR2V0QWNjZXNzUGVybWlzc2lvbnNGb3JPYmplY3RBDQorR2V0QWNjZXNzUGVybWlzc2lvbnNGb3JPYmplY3RXDQorR2V0QWNlDQorR2V0QWNsSW5mb3JtYXRpb24NCitHZXRBdWRpdGVkUGVybWlzc2lvbnNGcm9tQWNsQQ0KK0dldEF1ZGl0ZWRQZXJtaXNzaW9uc0Zyb21BY2xXDQorR2V0Q3VycmVudEh3UHJvZmlsZUENCitHZXRDdXJyZW50SHdQcm9maWxlVw0KK0dldEVmZmVjdGl2ZVJpZ2h0c0Zyb21BY2xBDQorR2V0RWZmZWN0aXZlUmlnaHRzRnJvbUFjbFcNCitHZXRFdmVudExvZ0luZm9ybWF0aW9uDQorR2V0RXhwbGljaXRFbnRyaWVzRnJvbUFjbEENCitHZXRFeHBsaWNpdEVudHJpZXNGcm9tQWNsVw0KK0dldEZpbGVTZWN1cml0eUENCitHZXRGaWxlU2VjdXJpdHlXDQorR2V0SW5mb3JtYXRpb25Db2RlQXV0aHpMZXZlbFcNCitHZXRJbmZvcm1hdGlvbkNvZGVBdXRoelBvbGljeVcNCitHZXRJbmhlcml0YW5jZVNvdXJjZUENCitHZXRJbmhlcml0YW5jZVNvdXJjZVcNCitHZXRLZXJuZWxPYmplY3RTZWN1cml0eQ0KK0dldExlbmd0aFNpZA0KK0dldExvY2FsTWFuYWdlZEFwcGxpY2F0aW9uRGF0YQ0KK0dldExvY2FsTWFuYWdlZEFwcGxpY2F0aW9ucw0KK0dldE1hbmFnZWRBcHBsaWNhdGlvbkNhdGVnb3JpZXMNCitHZXRNYW5hZ2VkQXBwbGljYXRpb25zDQorR2V0TXVsdGlwbGVUcnVzdGVlQQ0KK0dldE11bHRpcGxlVHJ1c3RlZU9wZXJhdGlvbkENCitHZXRNdWx0aXBsZVRydXN0ZWVPcGVyYXRpb25XDQorR2V0TXVsdGlwbGVUcnVzdGVlVw0KK0dldE5hbWVkU2VjdXJpdHlJbmZvQQ0KK0dldE5hbWVkU2VjdXJpdHlJbmZvRXhBDQorR2V0TmFtZWRTZWN1cml0eUluZm9FeFcNCitHZXROYW1lZFNlY3VyaXR5SW5mb1cNCitHZXROdW1iZXJPZkV2ZW50TG9nUmVjb3Jkcw0KK0dldE9sZGVzdEV2ZW50TG9nUmVjb3JkDQorR2V0T3ZlcmxhcHBlZEFjY2Vzc1Jlc3VsdHMNCitHZXRQcml2YXRlT2JqZWN0U2VjdXJpdHkNCitHZXRTZWN1cml0eURlc2NyaXB0b3JDb250cm9sDQorR2V0U2VjdXJpdHlEZXNjcmlwdG9yRGFjbA0KK0dldFNlY3VyaXR5RGVzY3JpcHRvckdyb3VwDQorR2V0U2VjdXJpdHlEZXNjcmlwdG9yTGVuZ3RoDQorR2V0U2VjdXJpdHlEZXNjcmlwdG9yT3duZXINCitHZXRTZWN1cml0eURlc2NyaXB0b3JSTUNvbnRyb2wNCitHZXRTZWN1cml0eURlc2NyaXB0b3JTYWNsDQorR2V0U2VjdXJpdHlJbmZvDQorR2V0U2VjdXJpdHlJbmZvRXhBDQorR2V0U2VjdXJpdHlJbmZvRXhXDQorR2V0U2VydmljZURpc3BsYXlOYW1lQQ0KK0dldFNlcnZpY2VEaXNwbGF5TmFtZVcNCitHZXRTZXJ2aWNlS2V5TmFtZUENCitHZXRTZXJ2aWNlS2V5TmFtZVcNCitHZXRTaWRJZGVudGlmaWVyQXV0aG9yaXR5DQorR2V0U2lkTGVuZ3RoUmVxdWlyZWQNCitHZXRTaWRTdWJBdXRob3JpdHkNCitHZXRTaWRTdWJBdXRob3JpdHlDb3VudA0KK0dldFRva2VuSW5mb3JtYXRpb24NCitHZXRUcmFjZUVuYWJsZUZsYWdzDQorR2V0VHJhY2VFbmFibGVMZXZlbA0KK0dldFRyYWNlTG9nZ2VySGFuZGxlDQorR2V0VHJ1c3RlZUZvcm1BDQorR2V0VHJ1c3RlZUZvcm1XDQorR2V0VHJ1c3RlZU5hbWVBDQorR2V0VHJ1c3RlZU5hbWVXDQorR2V0VHJ1c3RlZVR5cGVBDQorR2V0VHJ1c3RlZVR5cGVXDQorR2V0VXNlck5hbWVBDQorR2V0VXNlck5hbWVXDQorR2V0V2luZG93c0FjY291bnREb21haW5TaWQNCitJX1F1ZXJ5VGFnSW5mb3JtYXRpb24NCitJX1NjSXNTZWN1cml0eVByb2Nlc3MNCitJX1NjUG5QR2V0U2VydmljZU5hbWUNCitJX1NjU2VuZFRTTWVzc2FnZQ0KK0lfU2NTZXRTZXJ2aWNlQml0c0ENCitJX1NjU2V0U2VydmljZUJpdHNXDQorSWRlbnRpZnlDb2RlQXV0aHpMZXZlbFcNCitJbXBlcnNvbmF0ZUFub255bW91c1Rva2VuDQorSW1wZXJzb25hdGVMb2dnZWRPblVzZXINCitJbXBlcnNvbmF0ZU5hbWVkUGlwZUNsaWVudA0KK0ltcGVyc29uYXRlU2VsZg0KK0luaXRpYWxpemVBY2wNCitJbml0aWFsaXplU2VjdXJpdHlEZXNjcmlwdG9yDQorSW5pdGlhbGl6ZVNpZA0KK0luaXRpYXRlU3lzdGVtU2h1dGRvd25BDQorSW5pdGlhdGVTeXN0ZW1TaHV0ZG93bkV4QQ0KK0luaXRpYXRlU3lzdGVtU2h1dGRvd25FeFcNCitJbml0aWF0ZVN5c3RlbVNodXRkb3duVw0KK0luc3RhbGxBcHBsaWNhdGlvbg0KK0lzVGV4dFVuaWNvZGUNCitJc1Rva2VuUmVzdHJpY3RlZA0KK0lzVG9rZW5VbnRydXN0ZWQNCitJc1ZhbGlkQWNsDQorSXNWYWxpZFNlY3VyaXR5RGVzY3JpcHRvcg0KK0lzVmFsaWRTaWQNCitJc1dlbGxLbm93blNpZA0KK0xvY2tTZXJ2aWNlRGF0YWJhc2UNCitMb2dvblVzZXJBDQorTG9nb25Vc2VyRXhBDQorTG9nb25Vc2VyRXhXDQorTG9nb25Vc2VyVw0KK0xvb2t1cEFjY291bnROYW1lQQ0KK0xvb2t1cEFjY291bnROYW1lVw0KK0xvb2t1cEFjY291bnRTaWRBDQorTG9va3VwQWNjb3VudFNpZFcNCitMb29rdXBQcml2aWxlZ2VEaXNwbGF5TmFtZUENCitMb29rdXBQcml2aWxlZ2VEaXNwbGF5TmFtZVcNCitMb29rdXBQcml2aWxlZ2VOYW1lQQ0KK0xvb2t1cFByaXZpbGVnZU5hbWVXDQorTG9va3VwUHJpdmlsZWdlVmFsdWVBDQorTG9va3VwUHJpdmlsZWdlVmFsdWVXDQorTG9va3VwU2VjdXJpdHlEZXNjcmlwdG9yUGFydHNBDQorTG9va3VwU2VjdXJpdHlEZXNjcmlwdG9yUGFydHNXDQorTHNhQWRkQWNjb3VudFJpZ2h0cw0KK0xzYUFkZFByaXZpbGVnZXNUb0FjY291bnQNCitMc2FDbGVhckF1ZGl0TG9nDQorTHNhQ2xvc2UNCitMc2FDcmVhdGVBY2NvdW50DQorTHNhQ3JlYXRlU2VjcmV0DQorTHNhQ3JlYXRlVHJ1c3RlZERvbWFpbg0KK0xzYUNyZWF0ZVRydXN0ZWREb21haW5FeA0KK0xzYURlbGV0ZQ0KK0xzYURlbGV0ZVRydXN0ZWREb21haW4NCitMc2FFbnVtZXJhdGVBY2NvdW50UmlnaHRzDQorTHNhRW51bWVyYXRlQWNjb3VudHMNCitMc2FFbnVtZXJhdGVBY2NvdW50c1dpdGhVc2VyUmlnaHQNCitMc2FFbnVtZXJhdGVQcml2aWxlZ2VzDQorTHNhRW51bWVyYXRlUHJpdmlsZWdlc09mQWNjb3VudA0KK0xzYUVudW1lcmF0ZVRydXN0ZWREb21haW5zDQorTHNhRW51bWVyYXRlVHJ1c3RlZERvbWFpbnNFeA0KK0xzYUZyZWVNZW1vcnkNCitMc2FHZXRRdW90YXNGb3JBY2NvdW50DQorTHNhR2V0UmVtb3RlVXNlck5hbWUNCitMc2FHZXRTeXN0ZW1BY2Nlc3NBY2NvdW50DQorTHNhR2V0VXNlck5hbWUNCitMc2FJQ0xvb2t1cE5hbWVzDQorTHNhSUNMb29rdXBOYW1lc1dpdGhDcmVkcw0KK0xzYUlDTG9va3VwU2lkcw0KK0xzYUlDTG9va3VwU2lkc1dpdGhDcmVkcw0KK0xzYUxvb2t1cE5hbWVzDQorTHNhTG9va3VwTmFtZXMyDQorTHNhTG9va3VwUHJpdmlsZWdlRGlzcGxheU5hbWUNCitMc2FMb29rdXBQcml2aWxlZ2VOYW1lDQorTHNhTG9va3VwUHJpdmlsZWdlVmFsdWUNCitMc2FMb29rdXBTaWRzDQorTHNhTnRTdGF0dXNUb1dpbkVycm9yDQorTHNhT3BlbkFjY291bnQNCitMc2FPcGVuUG9saWN5DQorTHNhT3BlblBvbGljeVNjZQ0KK0xzYU9wZW5TZWNyZXQNCitMc2FPcGVuVHJ1c3RlZERvbWFpbg0KK0xzYU9wZW5UcnVzdGVkRG9tYWluQnlOYW1lDQorTHNhUXVlcnlEb21haW5JbmZvcm1hdGlvblBvbGljeQ0KK0xzYVF1ZXJ5Rm9yZXN0VHJ1c3RJbmZvcm1hdGlvbg0KK0xzYVF1ZXJ5SW5mb1RydXN0ZWREb21haW4NCitMc2FRdWVyeUluZm9ybWF0aW9uUG9saWN5DQorTHNhUXVlcnlTZWNyZXQNCitMc2FRdWVyeVNlY3VyaXR5T2JqZWN0DQorTHNhUXVlcnlUcnVzdGVkRG9tYWluSW5mbw0KK0xzYVF1ZXJ5VHJ1c3RlZERvbWFpbkluZm9CeU5hbWUNCitMc2FSZW1vdmVBY2NvdW50UmlnaHRzDQorTHNhUmVtb3ZlUHJpdmlsZWdlc0Zyb21BY2NvdW50DQorTHNhUmV0cmlldmVQcml2YXRlRGF0YQ0KK0xzYVNldERvbWFpbkluZm9ybWF0aW9uUG9saWN5DQorTHNhU2V0Rm9yZXN0VHJ1c3RJbmZvcm1hdGlvbg0KK0xzYVNldEluZm9ybWF0aW9uUG9saWN5DQorTHNhU2V0SW5mb3JtYXRpb25UcnVzdGVkRG9tYWluDQorTHNhU2V0UXVvdGFzRm9yQWNjb3VudA0KK0xzYVNldFNlY3JldA0KK0xzYVNldFNlY3VyaXR5T2JqZWN0DQorTHNhU2V0U3lzdGVtQWNjZXNzQWNjb3VudA0KK0xzYVNldFRydXN0ZWREb21haW5JbmZvQnlOYW1lDQorTHNhU2V0VHJ1c3RlZERvbWFpbkluZm9ybWF0aW9uDQorTHNhU3RvcmVQcml2YXRlRGF0YQ0KK01ENEZpbmFsDQorTUQ0SW5pdA0KK01ENFVwZGF0ZQ0KK01ENUZpbmFsDQorTUQ1SW5pdA0KK01ENVVwZGF0ZQ0KK01TQ2hhcFNydkNoYW5nZVBhc3N3b3JkDQorTVNDaGFwU3J2Q2hhbmdlUGFzc3dvcmQyDQorTWFrZUFic29sdXRlU0QNCitNYWtlQWJzb2x1dGVTRDINCitNYWtlU2VsZlJlbGF0aXZlU0QNCitNYXBHZW5lcmljTWFzaw0KK05vdGlmeUJvb3RDb25maWdTdGF0dXMNCitOb3RpZnlDaGFuZ2VFdmVudExvZw0KK09iamVjdENsb3NlQXVkaXRBbGFybUENCitPYmplY3RDbG9zZUF1ZGl0QWxhcm1XDQorT2JqZWN0RGVsZXRlQXVkaXRBbGFybUENCitPYmplY3REZWxldGVBdWRpdEFsYXJtVw0KK09iamVjdE9wZW5BdWRpdEFsYXJtQQ0KK09iamVjdE9wZW5BdWRpdEFsYXJtVw0KK09iamVjdFByaXZpbGVnZUF1ZGl0QWxhcm1BDQorT2JqZWN0UHJpdmlsZWdlQXVkaXRBbGFybVcNCitPcGVuQmFja3VwRXZlbnRMb2dBDQorT3BlbkJhY2t1cEV2ZW50TG9nVw0KK09wZW5FbmNyeXB0ZWRGaWxlUmF3QQ0KK09wZW5FbmNyeXB0ZWRGaWxlUmF3Vw0KK09wZW5FdmVudExvZ0ENCitPcGVuRXZlbnRMb2dXDQorT3BlblByb2Nlc3NUb2tlbg0KK09wZW5TQ01hbmFnZXJBDQorT3BlblNDTWFuYWdlclcNCitPcGVuU2VydmljZUENCitPcGVuU2VydmljZVcNCitPcGVuVGhyZWFkVG9rZW4NCitPcGVuVHJhY2VBDQorT3BlblRyYWNlVw0KK1ByaXZpbGVnZUNoZWNrDQorUHJpdmlsZWdlZFNlcnZpY2VBdWRpdEFsYXJtQQ0KK1ByaXZpbGVnZWRTZXJ2aWNlQXVkaXRBbGFybVcNCitQcm9jZXNzSWRsZVRhc2tzDQorUHJvY2Vzc1RyYWNlDQorUXVlcnlBbGxUcmFjZXNBDQorUXVlcnlBbGxUcmFjZXNXDQorUXVlcnlSZWNvdmVyeUFnZW50c09uRW5jcnlwdGVkRmlsZQ0KK1F1ZXJ5U2VydmljZUNvbmZpZzJBDQorUXVlcnlTZXJ2aWNlQ29uZmlnMlcNCitRdWVyeVNlcnZpY2VDb25maWdBDQorUXVlcnlTZXJ2aWNlQ29uZmlnVw0KK1F1ZXJ5U2VydmljZUxvY2tTdGF0dXNBDQorUXVlcnlTZXJ2aWNlTG9ja1N0YXR1c1cNCitRdWVyeVNlcnZpY2VPYmplY3RTZWN1cml0eQ0KK1F1ZXJ5U2VydmljZVN0YXR1cw0KK1F1ZXJ5U2VydmljZVN0YXR1c0V4DQorUXVlcnlUcmFjZUENCitRdWVyeVRyYWNlVw0KK1F1ZXJ5VXNlcnNPbkVuY3J5cHRlZEZpbGUNCitSZWFkRW5jcnlwdGVkRmlsZVJhdw0KK1JlYWRFdmVudExvZ0ENCitSZWFkRXZlbnRMb2dXDQorUmVnQ2xvc2VLZXkNCitSZWdDb25uZWN0UmVnaXN0cnlBDQorUmVnQ29ubmVjdFJlZ2lzdHJ5RXhBDQorUmVnQ29ubmVjdFJlZ2lzdHJ5RXhXDQorUmVnQ29ubmVjdFJlZ2lzdHJ5Vw0KK1JlZ0NyZWF0ZUtleUENCitSZWdDcmVhdGVLZXlFeEENCitSZWdDcmVhdGVLZXlFeFcNCitSZWdDcmVhdGVLZXlXDQorUmVnRGVsZXRlS2V5QQ0KK1JlZ0RlbGV0ZUtleUV4QQ0KK1JlZ0RlbGV0ZUtleUV4Vw0KK1JlZ0RlbGV0ZUtleVcNCitSZWdEZWxldGVWYWx1ZUENCitSZWdEZWxldGVWYWx1ZVcNCitSZWdEaXNhYmxlUHJlZGVmaW5lZENhY2hlDQorUmVnRGlzYWJsZVJlZmxlY3Rpb25LZXkNCitSZWdFbmFibGVSZWZsZWN0aW9uS2V5DQorUmVnRW51bUtleUENCitSZWdFbnVtS2V5RXhBDQorUmVnRW51bUtleUV4Vw0KK1JlZ0VudW1LZXlXDQorUmVnRW51bVZhbHVlQQ0KK1JlZ0VudW1WYWx1ZVcNCitSZWdGbHVzaEtleQ0KK1JlZ0dldEtleVNlY3VyaXR5DQorUmVnR2V0VmFsdWVBDQorUmVnR2V0VmFsdWVXDQorUmVnTG9hZEtleUENCitSZWdMb2FkS2V5Vw0KK1JlZ05vdGlmeUNoYW5nZUtleVZhbHVlDQorUmVnT3BlbkN1cnJlbnRVc2VyDQorUmVnT3BlbktleUENCitSZWdPcGVuS2V5RXhBDQorUmVnT3BlbktleUV4Vw0KK1JlZ09wZW5LZXlXDQorUmVnT3BlblVzZXJDbGFzc2VzUm9vdA0KK1JlZ092ZXJyaWRlUHJlZGVmS2V5DQorUmVnUXVlcnlJbmZvS2V5QQ0KK1JlZ1F1ZXJ5SW5mb0tleVcNCitSZWdRdWVyeU11bHRpcGxlVmFsdWVzQQ0KK1JlZ1F1ZXJ5TXVsdGlwbGVWYWx1ZXNXDQorUmVnUXVlcnlSZWZsZWN0aW9uS2V5DQorUmVnUXVlcnlWYWx1ZUENCitSZWdRdWVyeVZhbHVlRXhBDQorUmVnUXVlcnlWYWx1ZUV4Vw0KK1JlZ1F1ZXJ5VmFsdWVXDQorUmVnUmVwbGFjZUtleUENCitSZWdSZXBsYWNlS2V5Vw0KK1JlZ1Jlc3RvcmVLZXlBDQorUmVnUmVzdG9yZUtleVcNCitSZWdTYXZlS2V5QQ0KK1JlZ1NhdmVLZXlFeEENCitSZWdTYXZlS2V5RXhXDQorUmVnU2F2ZUtleVcNCitSZWdTZXRLZXlTZWN1cml0eQ0KK1JlZ1NldFZhbHVlQQ0KK1JlZ1NldFZhbHVlRXhBDQorUmVnU2V0VmFsdWVFeFcNCitSZWdTZXRWYWx1ZVcNCitSZWdVbkxvYWRLZXlBDQorUmVnVW5Mb2FkS2V5Vw0KK1JlZ2lzdGVyRXZlbnRTb3VyY2VBDQorUmVnaXN0ZXJFdmVudFNvdXJjZVcNCitSZWdpc3RlcklkbGVUYXNrDQorUmVnaXN0ZXJTZXJ2aWNlQ3RybEhhbmRsZXJBDQorUmVnaXN0ZXJTZXJ2aWNlQ3RybEhhbmRsZXJFeEENCitSZWdpc3RlclNlcnZpY2VDdHJsSGFuZGxlckV4Vw0KK1JlZ2lzdGVyU2VydmljZUN0cmxIYW5kbGVyVw0KK1JlZ2lzdGVyVHJhY2VHdWlkc0ENCitSZWdpc3RlclRyYWNlR3VpZHNXDQorUmVtb3ZlVHJhY2VDYWxsYmFjaw0KK1JlbW92ZVVzZXJzRnJvbUVuY3J5cHRlZEZpbGUNCitSZXBvcnRFdmVudEENCitSZXBvcnRFdmVudFcNCitSZXZlcnRUb1NlbGYNCitTYWZlckNsb3NlTGV2ZWwNCitTYWZlckNvbXB1dGVUb2tlbkZyb21MZXZlbA0KK1NhZmVyQ3JlYXRlTGV2ZWwNCitTYWZlckdldExldmVsSW5mb3JtYXRpb24NCitTYWZlckdldFBvbGljeUluZm9ybWF0aW9uDQorU2FmZXJJZGVudGlmeUxldmVsDQorU2FmZXJSZWNvcmRFdmVudExvZ0VudHJ5DQorU2FmZXJTZXRMZXZlbEluZm9ybWF0aW9uDQorU2FmZXJTZXRQb2xpY3lJbmZvcm1hdGlvbg0KK1NhZmVyaUNoYW5nZVJlZ2lzdHJ5U2NvcGUNCitTYWZlcmlDb21wYXJlVG9rZW5MZXZlbHMNCitTYWZlcmlJc0V4ZWN1dGFibGVGaWxlVHlwZQ0KK1NhZmVyaVBvcHVsYXRlRGVmYXVsdHNJblJlZ2lzdHJ5DQorU2FmZXJpUmVjb3JkRXZlbnRMb2dFbnRyeQ0KK1NhZmVyaVJlcGxhY2VQcm9jZXNzVGhyZWFkVG9rZW5zDQorU2FmZXJpU2VhcmNoTWF0Y2hpbmdIYXNoUnVsZXMNCitTZXRBY2xJbmZvcm1hdGlvbg0KK1NldEVudHJpZXNJbkFjY2Vzc0xpc3RBDQorU2V0RW50cmllc0luQWNjZXNzTGlzdFcNCitTZXRFbnRyaWVzSW5BY2xBDQorU2V0RW50cmllc0luQWNsVw0KK1NldEVudHJpZXNJbkF1ZGl0TGlzdEENCitTZXRFbnRyaWVzSW5BdWRpdExpc3RXDQorU2V0RmlsZVNlY3VyaXR5QQ0KK1NldEZpbGVTZWN1cml0eVcNCitTZXRJbmZvcm1hdGlvbkNvZGVBdXRoekxldmVsVw0KK1NldEluZm9ybWF0aW9uQ29kZUF1dGh6UG9saWN5Vw0KK1NldEtlcm5lbE9iamVjdFNlY3VyaXR5DQorU2V0TmFtZWRTZWN1cml0eUluZm9BDQorU2V0TmFtZWRTZWN1cml0eUluZm9FeEENCitTZXROYW1lZFNlY3VyaXR5SW5mb0V4Vw0KK1NldE5hbWVkU2VjdXJpdHlJbmZvVw0KK1NldFByaXZhdGVPYmplY3RTZWN1cml0eQ0KK1NldFByaXZhdGVPYmplY3RTZWN1cml0eUV4DQorU2V0U2VjdXJpdHlEZXNjcmlwdG9yQ29udHJvbA0KK1NldFNlY3VyaXR5RGVzY3JpcHRvckRhY2wNCitTZXRTZWN1cml0eURlc2NyaXB0b3JHcm91cA0KK1NldFNlY3VyaXR5RGVzY3JpcHRvck93bmVyDQorU2V0U2VjdXJpdHlEZXNjcmlwdG9yUk1Db250cm9sDQorU2V0U2VjdXJpdHlEZXNjcmlwdG9yU2FjbA0KK1NldFNlY3VyaXR5SW5mbw0KK1NldFNlY3VyaXR5SW5mb0V4QQ0KK1NldFNlY3VyaXR5SW5mb0V4Vw0KK1NldFNlcnZpY2VCaXRzDQorU2V0U2VydmljZU9iamVjdFNlY3VyaXR5DQorU2V0U2VydmljZVN0YXR1cw0KK1NldFRocmVhZFRva2VuDQorU2V0VG9rZW5JbmZvcm1hdGlvbg0KK1NldFRyYWNlQ2FsbGJhY2sNCitTZXRVc2VyRmlsZUVuY3J5cHRpb25LZXkNCitTdGFydFNlcnZpY2VBDQorU3RhcnRTZXJ2aWNlQ3RybERpc3BhdGNoZXJBDQorU3RhcnRTZXJ2aWNlQ3RybERpc3BhdGNoZXJXDQorU3RhcnRTZXJ2aWNlVw0KK1N0YXJ0VHJhY2VBDQorU3RhcnRUcmFjZVcNCitTdG9wVHJhY2VBDQorU3RvcFRyYWNlVw0KK1N5c3RlbUZ1bmN0aW9uMDAxDQorU3lzdGVtRnVuY3Rpb24wMDINCitTeXN0ZW1GdW5jdGlvbjAwMw0KK1N5c3RlbUZ1bmN0aW9uMDA0DQorU3lzdGVtRnVuY3Rpb24wMDUNCitTeXN0ZW1GdW5jdGlvbjAwNg0KK1N5c3RlbUZ1bmN0aW9uMDA3DQorU3lzdGVtRnVuY3Rpb24wMDgNCitTeXN0ZW1GdW5jdGlvbjAwOQ0KK1N5c3RlbUZ1bmN0aW9uMDEwDQorU3lzdGVtRnVuY3Rpb24wMTENCitTeXN0ZW1GdW5jdGlvbjAxMg0KK1N5c3RlbUZ1bmN0aW9uMDEzDQorU3lzdGVtRnVuY3Rpb24wMTQNCitTeXN0ZW1GdW5jdGlvbjAxNQ0KK1N5c3RlbUZ1bmN0aW9uMDE2DQorU3lzdGVtRnVuY3Rpb24wMTcNCitTeXN0ZW1GdW5jdGlvbjAxOA0KK1N5c3RlbUZ1bmN0aW9uMDE5DQorU3lzdGVtRnVuY3Rpb24wMjANCitTeXN0ZW1GdW5jdGlvbjAyMQ0KK1N5c3RlbUZ1bmN0aW9uMDIyDQorU3lzdGVtRnVuY3Rpb24wMjMNCitTeXN0ZW1GdW5jdGlvbjAyNA0KK1N5c3RlbUZ1bmN0aW9uMDI1DQorU3lzdGVtRnVuY3Rpb24wMjYNCitTeXN0ZW1GdW5jdGlvbjAyNw0KK1N5c3RlbUZ1bmN0aW9uMDI4DQorU3lzdGVtRnVuY3Rpb24wMjkNCitTeXN0ZW1GdW5jdGlvbjAzMA0KK1N5c3RlbUZ1bmN0aW9uMDMxDQorU3lzdGVtRnVuY3Rpb24wMzINCitTeXN0ZW1GdW5jdGlvbjAzMw0KK1N5c3RlbUZ1bmN0aW9uMDM0DQorU3lzdGVtRnVuY3Rpb24wMzUNCitTeXN0ZW1GdW5jdGlvbjAzNg0KK1N5c3RlbUZ1bmN0aW9uMDQwDQorU3lzdGVtRnVuY3Rpb24wNDENCitUcmFjZUV2ZW50DQorVHJhY2VFdmVudEluc3RhbmNlDQorVHJhY2VNZXNzYWdlDQorVHJhY2VNZXNzYWdlVmENCitUcmVlUmVzZXROYW1lZFNlY3VyaXR5SW5mb0ENCitUcmVlUmVzZXROYW1lZFNlY3VyaXR5SW5mb1cNCitUcnVzdGVlQWNjZXNzVG9PYmplY3RBDQorVHJ1c3RlZUFjY2Vzc1RvT2JqZWN0Vw0KK1VuaW5zdGFsbEFwcGxpY2F0aW9uDQorVW5sb2NrU2VydmljZURhdGFiYXNlDQorVW5yZWdpc3RlcklkbGVUYXNrDQorVW5yZWdpc3RlclRyYWNlR3VpZHMNCitVcGRhdGVUcmFjZUENCitVcGRhdGVUcmFjZVcNCitXZG1XbWlTZXJ2aWNlTWFpbg0KK1dtaUNsb3NlQmxvY2sNCitXbWlDbG9zZVRyYWNlV2l0aEN1cnNvcg0KK1dtaUNvbnZlcnRUaW1lc3RhbXANCitXbWlEZXZJbnN0VG9JbnN0YW5jZU5hbWVBDQorV21pRGV2SW5zdFRvSW5zdGFuY2VOYW1lVw0KK1dtaUVudW1lcmF0ZUd1aWRzDQorV21pRXhlY3V0ZU1ldGhvZEENCitXbWlFeGVjdXRlTWV0aG9kVw0KK1dtaUZpbGVIYW5kbGVUb0luc3RhbmNlTmFtZUENCitXbWlGaWxlSGFuZGxlVG9JbnN0YW5jZU5hbWVXDQorV21pRnJlZUJ1ZmZlcg0KK1dtaUdldEZpcnN0VHJhY2VPZmZzZXQNCitXbWlHZXROZXh0RXZlbnQNCitXbWlHZXRUcmFjZUhlYWRlcg0KK1dtaU1vZkVudW1lcmF0ZVJlc291cmNlc0ENCitXbWlNb2ZFbnVtZXJhdGVSZXNvdXJjZXNXDQorV21pTm90aWZpY2F0aW9uUmVnaXN0cmF0aW9uQQ0KK1dtaU5vdGlmaWNhdGlvblJlZ2lzdHJhdGlvblcNCitXbWlPcGVuQmxvY2sNCitXbWlPcGVuVHJhY2VXaXRoQ3Vyc29yDQorV21pUGFyc2VUcmFjZUV2ZW50DQorV21pUXVlcnlBbGxEYXRhQQ0KK1dtaVF1ZXJ5QWxsRGF0YU11bHRpcGxlQQ0KK1dtaVF1ZXJ5QWxsRGF0YU11bHRpcGxlVw0KK1dtaVF1ZXJ5QWxsRGF0YVcNCitXbWlRdWVyeUd1aWRJbmZvcm1hdGlvbg0KK1dtaVF1ZXJ5U2luZ2xlSW5zdGFuY2VBDQorV21pUXVlcnlTaW5nbGVJbnN0YW5jZU11bHRpcGxlQQ0KK1dtaVF1ZXJ5U2luZ2xlSW5zdGFuY2VNdWx0aXBsZVcNCitXbWlRdWVyeVNpbmdsZUluc3RhbmNlVw0KK1dtaVJlY2VpdmVOb3RpZmljYXRpb25zQQ0KK1dtaVJlY2VpdmVOb3RpZmljYXRpb25zVw0KK1dtaVNldFNpbmdsZUluc3RhbmNlQQ0KK1dtaVNldFNpbmdsZUluc3RhbmNlVw0KK1dtaVNldFNpbmdsZUl0ZW1BDQorV21pU2V0U2luZ2xlSXRlbVcNCitXb3c2NFdpbjMyQXBpRW50cnkNCitXcml0ZUVuY3J5cHRlZEZpbGVSYXcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9hZHZwYWNrLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2FkdnBhY2suZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM0MTQzMDkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hZHZwYWNrLmRlZgpAQCAtMCwwICsxLDQwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEFEVlBBQ0suZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEFEVlBBQ0suZGxsDQorRVhQT1JUUw0KK0FkZERlbEJhY2t1cEVudHJ5DQorQWR2SW5zdGFsbEZpbGUNCitDbG9zZUlORkVuZ2luZQ0KK0RlbE5vZGUNCitEZWxOb2RlUnVuRExMMzINCitEbGxNYWluDQorRG9JbmZJbnN0YWxsDQorRXhlY3V0ZUNhYg0KK0V4dHJhY3RGaWxlcw0KK0ZpbGVTYXZlTWFya05vdEV4aXN0DQorRmlsZVNhdmVSZXN0b3JlDQorRmlsZVNhdmVSZXN0b3JlT25JTkYNCitHZXRWZXJzaW9uRnJvbUZpbGUNCitHZXRWZXJzaW9uRnJvbUZpbGVFeA0KK0lzTlRBZG1pbg0KK0xhdW5jaElORlNlY3Rpb24NCitMYXVuY2hJTkZTZWN0aW9uRXgNCitOZWVkUmVib290DQorTmVlZFJlYm9vdEluaXQNCitPcGVuSU5GRW5naW5lDQorUmVib290Q2hlY2tPbkluc3RhbGwNCitSZWdJbnN0YWxsDQorUmVnUmVzdG9yZUFsbA0KK1JlZ1NhdmVSZXN0b3JlDQorUmVnU2F2ZVJlc3RvcmVPbklORg0KK1JlZ2lzdGVyT0NYDQorUnVuU2V0dXBDb21tYW5kDQorU2V0UGVyVXNlclNlY1ZhbHVlcw0KK1RyYW5zbGF0ZUluZlN0cmluZw0KK1RyYW5zbGF0ZUluZlN0cmluZ0V4DQorVXNlckluc3RTdHViV3JhcHBlcg0KK1VzZXJVbkluc3RTdHViV3JhcHBlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2FlbHVwc3ZjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2FlbHVwc3ZjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZWRiZGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvYWVsdXBzdmMuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBRUxVUFNWQy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQUVMVVBTVkMuZGxsDQorRVhQT1JUUw0KK1NlcnZpY2VNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYWdlbnRhbm0uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYWdlbnRhbm0uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk4MDU2NjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hZ2VudGFubS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBZ2VudEFubS5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQWdlbnRBbm0uRExMDQorRVhQT1JUUw0KK0NyZWF0ZUFnZW50QW5pbUENCitDcmVhdGVBZ2VudEFuaW1XDQorQ3JlYXRlQWdlbnRSZW5kZXJBDQorQ3JlYXRlQWdlbnRSZW5kZXJXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYWdlbnRjdGwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYWdlbnRjdGwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNiNjZjNzAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hZ2VudGN0bC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBZ2VudEN0bC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQWdlbnRDdGwuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYWdlbnRkcDIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYWdlbnRkcDIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk4YWFjZGYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hZ2VudGRwMi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBZ2VudERQMi5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQWdlbnREUDIuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYWdlbnRkcHYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYWdlbnRkcHYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNlYzA4MzkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hZ2VudGRwdi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBZ2VudERQdi5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQWdlbnREUHYuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYWdlbnRtcHguZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYWdlbnRtcHguZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJiYWVlZTEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hZ2VudG1weC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBZ2VudE1QeC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQWdlbnRNUHguRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYWdlbnRwc2guZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYWdlbnRwc2guZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU4MTFmMzcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hZ2VudHBzaC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBZ2VudFBzaC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQWdlbnRQc2guRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYWdlbnRzci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9hZ2VudHNyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMGYyYjc3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvYWdlbnRzci5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBZ2VudFNSLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBBZ2VudFNSLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Fncm1jbzY0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Fncm1jbzY0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zM2E2OGEyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvYWdybWNvNjQuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBR1JNQ082NC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQUdSTUNPNjQuZGxsDQorRVhQT1JUUw0KK0FnZXJlV2luTW9kZW1Db0luc3RhbGxlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2FndGludGwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYWd0aW50bC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODQ3ZTFkZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2FndGludGwuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQWd0SW50bC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQWd0SW50bC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9ha3Njb2luc3QuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYWtzY29pbnN0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yODI4M2ZlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvYWtzY29pbnN0LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQUtTQ0xBU1MuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEFLU0NMQVNTLmRsbA0KK0VYUE9SVFMNCitBa3NIYXNwQ29JbnN0YWxsRW50cnlQb2ludA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2FscnN2Yy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9hbHJzdmMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA5MTBjMzMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hbHJzdmMuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYWxyc3ZjLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBhbHJzdmMuZGxsDQorRVhQT1JUUw0KK1NlcnZpY2VNYWluDQorU3ZjaG9zdFB1c2hTZXJ2aWNlR2xvYmFscw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Ftc3RyZWFtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Ftc3RyZWFtLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYmNhY2NhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvYW1zdHJlYW0uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYW1zdHJlYW0uRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGFtc3RyZWFtLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2FwY3Vwcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9hcGN1cHMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjliOTA5OWQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hcGN1cHMuZGVmCkBAIC0wLDAgKzEsMTQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYXBjdXBzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBhcGN1cHMuZGxsDQorRVhQT1JUUw0KK1VQU0NhbmNlbFdhaXQNCitVUFNHZXRTdGF0ZQ0KK1VQU0luaXQNCitVUFNTdG9wDQorVVBTVHVybk9mZg0KK1VQU1dhaXRGb3JTdGF0ZUNoYW5nZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2FwcGhlbHAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYXBwaGVscC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTJiOWVkNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2FwcGhlbHAuZGVmCkBAIC0wLDAgKzEsMTY2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGFwcGhlbHAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGFwcGhlbHAuZGxsDQorRVhQT1JUUw0KK0FsbG93UGVybUxheWVyDQorQXBwaGVscENoZWNrRXhlDQorQXBwaGVscENoZWNrSU1FDQorQXBwaGVscENoZWNrSW5zdGFsbFNoaWVsZFBhY2thZ2UNCitBcHBoZWxwQ2hlY2tNc2lQYWNrYWdlDQorQXBwaGVscENoZWNrUnVuQXBwDQorQXBwaGVscENoZWNrU2hlbGxPYmplY3QNCitBcHBoZWxwRml4TXNpUGFja2FnZQ0KK0FwcGhlbHBGaXhNc2lQYWNrYWdlRXhlDQorQXBwaGVscEZyZWVGaWxlQXR0cmlidXRlcw0KK0FwcGhlbHBHZXRGaWxlQXR0cmlidXRlcw0KK0FwcGhlbHBHZXROVFZETUluZm8NCitBcHBoZWxwR2V0U2hpbURlYnVnTGV2ZWwNCitBcHBoZWxwUXVlcnlNb2R1bGVEYXRhDQorQXBwaGVscFJlbGVhc2VFeGUNCitBcHBoZWxwU2hvd0RpYWxvZw0KK0FwcGhlbHBTaG93VUkNCitBcHBoZWxwVXBkYXRlQ2FjaGVFbnRyeQ0KK0dldFBlcm1MYXllcnMNCitTZGJCZWdpbldyaXRlTGlzdFRhZw0KK1NkYkJ1aWxkQ29tcGF0RW52VmFyaWFibGVzDQorU2RiQ2xvc2VBcHBoZWxwSW5mb3JtYXRpb24NCitTZGJDbG9zZURhdGFiYXNlDQorU2RiQ2xvc2VEYXRhYmFzZVdyaXRlDQorU2RiQ2xvc2VMb2NhbERhdGFiYXNlDQorU2RiQ29tbWl0SW5kZXhlcw0KK1NkYkNyZWF0ZURhdGFiYXNlDQorU2RiQ3JlYXRlSGVscENlbnRlclVSTA0KK1NkYkNyZWF0ZU1zaVRyYW5zZm9ybUZpbGUNCitTZGJEZWNsYXJlSW5kZXgNCitTZGJEZWxldGVQZXJtTGF5ZXJLZXlzDQorU2RiRW5kV3JpdGVMaXN0VGFnDQorU2RiRW51bU1zaVRyYW5zZm9ybXMNCitTZGJFc2NhcGVBcHBoZWxwVVJMDQorU2RiRmluZEN1c3RvbUFjdGlvbkZvclBhY2thZ2UNCitTZGJGaW5kRmlyc3REV09SREluZGV4ZWRUYWcNCitTZGJGaW5kRmlyc3RHVUlESW5kZXhlZFRhZw0KK1NkYkZpbmRGaXJzdE1zaVBhY2thZ2UNCitTZGJGaW5kRmlyc3RNc2lQYWNrYWdlX1N0cg0KK1NkYkZpbmRGaXJzdE5hbWVkVGFnDQorU2RiRmluZEZpcnN0U3RyaW5nSW5kZXhlZFRhZw0KK1NkYkZpbmRGaXJzdFRhZw0KK1NkYkZpbmRGaXJzdFRhZ1JlZg0KK1NkYkZpbmRNc2lQYWNrYWdlQnlJRA0KK1NkYkZpbmROZXh0RFdPUkRJbmRleGVkVGFnDQorU2RiRmluZE5leHRHVUlESW5kZXhlZFRhZw0KK1NkYkZpbmROZXh0TXNpUGFja2FnZQ0KK1NkYkZpbmROZXh0U3RyaW5nSW5kZXhlZFRhZw0KK1NkYkZpbmROZXh0VGFnDQorU2RiRmluZE5leHRUYWdSZWYNCitTZGJGb3JtYXRBdHRyaWJ1dGUNCitTZGJGcmVlRGF0YWJhc2VJbmZvcm1hdGlvbg0KK1NkYkZyZWVGaWxlQXR0cmlidXRlcw0KK1NkYkZyZWVGaWxlSW5mbw0KK1NkYkZyZWVGbGFnSW5mbw0KK1NkYkdVSURGcm9tU3RyaW5nDQorU2RiR1VJRFRvU3RyaW5nDQorU2RiR2V0QXBwQ29tcGF0RGF0YVNpemUNCitTZGJHZXRBcHBQYXRjaERpcg0KK1NkYkdldEJpbmFyeVRhZ0RhdGENCitTZGJHZXREYXRhYmFzZUdVSUQNCitTZGJHZXREYXRhYmFzZUlEDQorU2RiR2V0RGF0YWJhc2VJbmZvcm1hdGlvbg0KK1NkYkdldERhdGFiYXNlSW5mb3JtYXRpb25CeU5hbWUNCitTZGJHZXREYXRhYmFzZU1hdGNoDQorU2RiR2V0RGF0YWJhc2VWZXJzaW9uDQorU2RiR2V0RGxsUGF0aA0KK1NkYkdldEVudHJ5RmxhZ3MNCitTZGJHZXRGaWxlQXR0cmlidXRlcw0KK1NkYkdldEZpbGVJbmZvDQorU2RiR2V0Rmlyc3RDaGlsZA0KK1NkYkdldEltYWdlVHlwZQ0KK1NkYkdldEluZGV4DQorU2RiR2V0SXRlbUZyb21JdGVtUmVmDQorU2RiR2V0TGF5ZXJOYW1lDQorU2RiR2V0TGF5ZXJUYWdSZWYNCitTZGJHZXRMb2NhbFBEQg0KK1NkYkdldE1hdGNoaW5nRXhlDQorU2RiR2V0TXNpUGFja2FnZUluZm9ybWF0aW9uDQorU2RiR2V0TmFtZWRMYXllcg0KK1NkYkdldE5leHRDaGlsZA0KK1NkYkdldE50aFVzZXJTZGINCitTZGJHZXRQREJGcm9tR1VJRA0KK1NkYkdldFBlcm1MYXllcktleXMNCitTZGJHZXRTaG93RGVidWdJbmZvT3B0aW9uDQorU2RiR2V0U2hvd0RlYnVnSW5mb09wdGlvblZhbHVlDQorU2RiR2V0U3RhbmRhcmREYXRhYmFzZUdVSUQNCitTZGJHZXRTdHJpbmdUYWdQdHINCitTZGJHZXRUYWdEYXRhU2l6ZQ0KK1NkYkdldFRhZ0Zyb21UYWdJRA0KK1NkYkdyYWJNYXRjaGluZ0luZm8NCitTZGJHcmFiTWF0Y2hpbmdJbmZvRXgNCitTZGJJbml0RGF0YWJhc2UNCitTZGJJbml0RGF0YWJhc2VFeA0KK1NkYklzTnVsbEdVSUQNCitTZGJJc1RhZ3JlZkZyb21Mb2NhbERCDQorU2RiSXNUYWdyZWZGcm9tTWFpbkRCDQorU2RiTWFrZUluZGV4S2V5RnJvbVN0cmluZw0KK1NkYk9wZW5BcHBoZWxwRGV0YWlsc0RhdGFiYXNlDQorU2RiT3BlbkFwcGhlbHBEZXRhaWxzRGF0YWJhc2VTUA0KK1NkYk9wZW5BcHBoZWxwSW5mb3JtYXRpb24NCitTZGJPcGVuQXBwaGVscEluZm9ybWF0aW9uQnlJRA0KK1NkYk9wZW5EYXRhYmFzZQ0KK1NkYk9wZW5Mb2NhbERhdGFiYXNlDQorU2RiUGFja0FwcENvbXBhdERhdGENCitTZGJRdWVyeUFwcGhlbHBJbmZvcm1hdGlvbg0KK1NkYlF1ZXJ5RGF0YQ0KK1NkYlF1ZXJ5RGF0YUV4DQorU2RiUXVlcnlEYXRhRXhUYWdJRA0KK1NkYlF1ZXJ5RmxhZ0luZm8NCitTZGJRdWVyeUZsYWdNYXNrDQorU2RiUmVhZEFwcGhlbHBEYXRhDQorU2RiUmVhZEFwcGhlbHBEZXRhaWxzRGF0YQ0KK1NkYlJlYWRCWVRFVGFnDQorU2RiUmVhZEJZVEVUYWdSZWYNCitTZGJSZWFkQmluYXJ5VGFnDQorU2RiUmVhZERXT1JEVGFnDQorU2RiUmVhZERXT1JEVGFnUmVmDQorU2RiUmVhZEVudHJ5SW5mb3JtYXRpb24NCitTZGJSZWFkTXNpVHJhbnNmb3JtSW5mbw0KK1NkYlJlYWRQYXRjaEJpdHMNCitTZGJSZWFkUVdPUkRUYWcNCitTZGJSZWFkUVdPUkRUYWdSZWYNCitTZGJSZWFkU3RyaW5nVGFnDQorU2RiUmVhZFN0cmluZ1RhZ1JlZg0KK1NkYlJlYWRXT1JEVGFnDQorU2RiUmVhZFdPUkRUYWdSZWYNCitTZGJSZWdpc3RlckRhdGFiYXNlDQorU2RiUmVnaXN0ZXJEYXRhYmFzZUV4DQorU2RiUmVsZWFzZURhdGFiYXNlDQorU2RiUmVsZWFzZU1hdGNoaW5nRXhlDQorU2RiUmVzb2x2ZURhdGFiYXNlDQorU2RiU2V0QXBwaGVscERlYnVnUGFyYW1ldGVycw0KK1NkYlNldEVudHJ5RmxhZ3MNCitTZGJTZXRJbWFnZVR5cGUNCitTZGJTZXRQZXJtTGF5ZXJLZXlzDQorU2RiU2hvd0FwcGhlbHBEaWFsb2cNCitTZGJTdGFydEluZGV4aW5nDQorU2RiU3RvcEluZGV4aW5nDQorU2RiVGFnSURUb1RhZ1JlZg0KK1NkYlRhZ1JlZlRvVGFnSUQNCitTZGJUYWdUb1N0cmluZw0KK1NkYlVucGFja0FwcENvbXBhdERhdGENCitTZGJVbnJlZ2lzdGVyRGF0YWJhc2UNCitTZGJXcml0ZUJZVEVUYWcNCitTZGJXcml0ZUJpbmFyeVRhZw0KK1NkYldyaXRlQmluYXJ5VGFnRnJvbUZpbGUNCitTZGJXcml0ZURXT1JEVGFnDQorU2RiV3JpdGVOVUxMVGFnDQorU2RiV3JpdGVRV09SRFRhZw0KK1NkYldyaXRlU3RyaW5nUmVmVGFnDQorU2RiV3JpdGVTdHJpbmdUYWcNCitTZGJXcml0ZVN0cmluZ1RhZ0RpcmVjdA0KK1NkYldyaXRlV09SRFRhZw0KK1NldFBlcm1MYXllcnMNCitTaGltRGJnUHJpbnQNCitTaGltRHVtcENhY2hlDQorU2hpbUZsdXNoQ2FjaGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9hcHBtZ210cy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9hcHBtZ210cy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGMzODUxYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2FwcG1nbXRzLmRlZgpAQCAtMCwwICsxLDI1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEFQUE1HTVRTLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBBUFBNR01UUy5kbGwNCitFWFBPUlRTDQorQ3NTZXRPcHRpb25zDQorQ3NDcmVhdGVDbGFzc1N0b3JlDQorQ3NFbnVtQXBwcw0KK0NzR2V0QXBwQ2F0ZWdvcmllcw0KK0NzR2V0Q2xhc3NBY2Nlc3MNCitDc0dldENsYXNzU3RvcmUNCitDc0dldENsYXNzU3RvcmVQYXRoDQorQ3NSZWdpc3RlckFwcENhdGVnb3J5DQorQ3NTZXJ2ZXJHZXRDbGFzc1N0b3JlDQorQ3NVbnJlZ2lzdGVyQXBwQ2F0ZWdvcnkNCitHZW5lcmF0ZUdyb3VwUG9saWN5DQorSUlEX0lDbGFzc0FkbWluDQorUHJvY2Vzc0dyb3VwUG9saWN5T2JqZWN0c0V4DQorUmVsZWFzZUFwcENhdGVnb3J5SW5mb0xpc3QNCitSZWxlYXNlUGFja2FnZURldGFpbA0KK1JlbGVhc2VQYWNrYWdlSW5mbw0KK1NlcnZpY2VNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYXBwbWdyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2FwcG1nci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzc3NTJkOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2FwcG1nci5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTTkFQSU4uRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNOQVBJTi5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitHZW5lcmF0ZVNjcmlwdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2FxYWRtaW4uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYXFhZG1pbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjkyOGJiNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2FxYWRtaW4uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQVFBRE1JTi5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQVFBRE1JTi5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9hcXVldWUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYXF1ZXVlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNjhhNTA4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvYXF1ZXVlLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGFxdWV1ZS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgYXF1ZXVlLmRsbA0KK0VYUE9SVFMNCitIckFkdlF1ZXVlSW5pdGlhbGl6ZQ0KK0hyQWR2UXVldWVEZWluaXRpYWxpemUNCitIckFkdlF1ZXVlSW5pdGlhbGl6ZUV4DQorSHJBZHZRdWV1ZURlaW5pdGlhbGl6ZUV4DQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9hc3AuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYXNwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNmExMThlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvYXNwLmRlZgpAQCAtMCwwICsxLDE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGFzcC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgYXNwLmRsbA0KK0VYUE9SVFMNCitBc3BTdGF0dXNIdG1sRHVtcA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldEV4dGVuc2lvblZlcnNpb24NCitIdHRwRXh0ZW5zaW9uUHJvYw0KK1Rlcm1pbmF0ZUV4dGVuc2lvbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2FzcHBlcmYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYXNwcGVyZi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmYwYzBmMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2FzcHBlcmYuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYXNwcGVyZi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgYXNwcGVyZi5kbGwNCitFWFBPUlRTDQorT3BlbkFTUFBlcmZvcm1hbmNlRGF0YQ0KK0NvbGxlY3RBU1BQZXJmb3JtYW5jZURhdGENCitDbG9zZUFTUFBlcmZvcm1hbmNlRGF0YQ0KK1JlZ2lzdGVyQVhTDQorVW5SZWdpc3RlckFYUw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2FzeWNmaWx0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2FzeWNmaWx0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YWZkYzNhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvYXN5Y2ZpbHQuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQVNZQ0ZJTFQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEFTWUNGSUxULmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitGaWx0ZXJDcmVhdGVJbnN0YW5jZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2F0a2N0cnMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYXRrY3Rycy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDM5MjAwNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2F0a2N0cnMuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYXRrY3Rycy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgYXRrY3Rycy5kbGwNCitFWFBPUlRTDQorT3BlbkF0a1BlcmZvcm1hbmNlRGF0YQ0KK0NvbGxlY3RBdGtQZXJmb3JtYW5jZURhdGENCitDbG9zZUF0a1BlcmZvcm1hbmNlRGF0YQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2F0bC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9hdGwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNhYjUzOWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hdGwuZGVmCkBAIC0wLDAgKzEsNjAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQVRMLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBBVEwuRExMDQorRVhQT1JUUw0KK0F0bEFkdmlzZQ0KK0F0bFVuYWR2aXNlDQorQXRsRnJlZU1hcnNoYWxTdHJlYW0NCitBdGxNYXJzaGFsUHRySW5Qcm9jDQorQXRsVW5tYXJzaGFsUHRyDQorQXRsTW9kdWxlR2V0Q2xhc3NPYmplY3QNCitBdGxNb2R1bGVJbml0DQorQXRsTW9kdWxlUmVnaXN0ZXJDbGFzc09iamVjdHMNCitBdGxNb2R1bGVSZWdpc3RlclNlcnZlcg0KK0F0bE1vZHVsZVJlZ2lzdGVyVHlwZUxpYg0KK0F0bE1vZHVsZVJldm9rZUNsYXNzT2JqZWN0cw0KK0F0bE1vZHVsZVRlcm0NCitBdGxNb2R1bGVVbnJlZ2lzdGVyU2VydmVyDQorQXRsTW9kdWxlVXBkYXRlUmVnaXN0cnlGcm9tUmVzb3VyY2VEDQorQXRsV2FpdFdpdGhNZXNzYWdlTG9vcA0KK0F0bFNldEVycm9ySW5mbw0KK0F0bENyZWF0ZVRhcmdldERDDQorQXRsSGlNZXRyaWNUb1BpeGVsDQorQXRsUGl4ZWxUb0hpTWV0cmljDQorQXRsRGV2TW9kZVcyQQ0KK0F0bENvbVB0ckFzc2lnbg0KK0F0bENvbVFJUHRyQXNzaWduDQorQXRsSW50ZXJuYWxRdWVyeUludGVyZmFjZQ0KK0RsbENhblVubG9hZE5vdw0KK0F0bEdldFZlcnNpb24NCitBdGxBeERpYWxvZ0JveFcNCitBdGxBeERpYWxvZ0JveEENCitBdGxBeENyZWF0ZURpYWxvZ1cNCitBdGxBeENyZWF0ZURpYWxvZ0ENCitBdGxBeENyZWF0ZUNvbnRyb2wNCitBdGxBeENyZWF0ZUNvbnRyb2xFeA0KK0F0bEF4QXR0YWNoQ29udHJvbA0KK0F0bEF4V2luSW5pdA0KK0F0bE1vZHVsZUFkZENyZWF0ZVduZERhdGENCitBdGxNb2R1bGVFeHRyYWN0Q3JlYXRlV25kRGF0YQ0KK0F0bE1vZHVsZVJlZ2lzdGVyV25kQ2xhc3NJbmZvVw0KK0F0bE1vZHVsZVJlZ2lzdGVyV25kQ2xhc3NJbmZvQQ0KK0F0bEF4R2V0Q29udHJvbA0KK0F0bEF4R2V0SG9zdA0KK0F0bFJlZ2lzdGVyQ2xhc3NDYXRlZ29yaWVzSGVscGVyDQorQXRsSVBlcnNpc3RTdHJlYW1Jbml0X0xvYWQNCitBdGxJUGVyc2lzdFN0cmVhbUluaXRfU2F2ZQ0KK0F0bElQZXJzaXN0UHJvcGVydHlCYWdfTG9hZA0KK0F0bElQZXJzaXN0UHJvcGVydHlCYWdfU2F2ZQ0KK0F0bEdldE9iamVjdFNvdXJjZUludGVyZmFjZQ0KK0F0bE1vZHVsZVVuUmVnaXN0ZXJUeXBlTGliDQorQXRsTW9kdWxlTG9hZFR5cGVMaWINCitBdGxNb2R1bGVVbnJlZ2lzdGVyU2VydmVyRXgNCitBdGxNb2R1bGVBZGRUZXJtRnVuYw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYXRtbGliLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2F0bWxpYi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmUxZWMwYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2F0bWxpYi5kZWYKQEAgLTAsMCArMSw4NCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBVE1MSUIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEFUTUxJQi5kbGwNCitFWFBPUlRTDQorQVRNQWRkRm9udA0KK0FUTUFkZEZvbnRBDQorQVRNQWRkRm9udEV4DQorQVRNQWRkRm9udEV4QQ0KK0FUTUFkZEZvbnRFeFcNCitBVE1BZGRGb250Vw0KK0FUTUJCb3hCYXNlWFlTaG93VGV4dA0KK0FUTUJCb3hCYXNlWFlTaG93VGV4dEENCitBVE1CQm94QmFzZVhZU2hvd1RleHRXDQorQVRNQmVnaW5Gb250Q2hhbmdlDQorQVRNQ2xpZW50DQorQVRNRW5kRm9udENoYW5nZQ0KK0FUTUVudW1Gb250cw0KK0FUTUVudW1Gb250c0ENCitBVE1FbnVtRm9udHNXDQorQVRNRW51bU1NRm9udHMNCitBVE1FbnVtTU1Gb250c0ENCitBVE1FbnVtTU1Gb250c1cNCitBVE1GaW5pc2gNCitBVE1Gb250QXZhaWxhYmxlDQorQVRNRm9udEF2YWlsYWJsZUENCitBVE1Gb250QXZhaWxhYmxlVw0KK0FUTUZvbnRTZWxlY3RlZA0KK0FUTUZvbnRTdGF0dXMNCitBVE1Gb250U3RhdHVzQQ0KK0FUTUZvbnRTdGF0dXNXDQorQVRNRm9yY2VGb250Q2hhbmdlDQorQVRNR2V0QnVpbGRTdHINCitBVE1HZXRCdWlsZFN0ckENCitBVE1HZXRCdWlsZFN0clcNCitBVE1HZXRGb250QkJveA0KK0FUTUdldEZvbnRJbmZvDQorQVRNR2V0Rm9udEluZm9BDQorQVRNR2V0Rm9udEluZm9XDQorQVRNR2V0Rm9udFBhdGhzDQorQVRNR2V0Rm9udFBhdGhzQQ0KK0FUTUdldEZvbnRQYXRoc1cNCitBVE1HZXRHbHlwaExpc3QNCitBVE1HZXRHbHlwaExpc3RBDQorQVRNR2V0R2x5cGhMaXN0Vw0KK0FUTUdldE1lbnVOYW1lDQorQVRNR2V0TWVudU5hbWVBDQorQVRNR2V0TWVudU5hbWVXDQorQVRNR2V0TnRtRmllbGRzDQorQVRNR2V0TnRtRmllbGRzQQ0KK0FUTUdldE50bUZpZWxkc1cNCitBVE1HZXRPdXRsaW5lDQorQVRNR2V0T3V0bGluZUENCitBVE1HZXRPdXRsaW5lVw0KK0FUTUdldFBvc3RTY3JpcHROYW1lDQorQVRNR2V0UG9zdFNjcmlwdE5hbWVBDQorQVRNR2V0UG9zdFNjcmlwdE5hbWVXDQorQVRNR2V0VmVyc2lvbg0KK0FUTUdldFZlcnNpb25FeA0KK0FUTUdldFZlcnNpb25FeEENCitBVE1HZXRWZXJzaW9uRXhXDQorQVRNSW5zdGFsbFN1YnN0Rm9udEENCitBVE1JbnN0YWxsU3Vic3RGb250Vw0KK0FUTU1ha2VQRk0NCitBVE1NYWtlUEZNQQ0KK0FUTU1ha2VQRk1XDQorQVRNTWFrZVBTUw0KK0FUTU1ha2VQU1NBDQorQVRNTWFrZVBTU1cNCitBVE1Qcm9wZXJseUxvYWRlZA0KK0FUTVJlbW92ZUZvbnQNCitBVE1SZW1vdmVGb250QQ0KK0FUTVJlbW92ZUZvbnRXDQorQVRNUmVtb3ZlU3Vic3RGb250QQ0KK0FUTVJlbW92ZVN1YnN0Rm9udFcNCitBVE1TZWxlY3RFbmNvZGluZw0KK0FUTVNlbGVjdE9iamVjdA0KK0FUTVNldEZsYWdzDQorQVRNWFlTaG93VGV4dA0KK0FUTVhZU2hvd1RleHRBDQorQVRNWFlTaG93VGV4dFcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9hdG1wdmNuby5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9hdG1wdmNuby5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjIxNGM3OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2F0bXB2Y25vLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNGSUxURVIyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTRklMVEVSMi5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9hdHJhY2UuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYXRyYWNlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42M2ZkNDI3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvYXRyYWNlLmRlZgpAQCAtMCwwICsxLDE1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGF0cmFjZS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgYXRyYWNlLmRsbA0KK0VYUE9SVFMNCitJTlRFUk5BTF9fQXN5bmNCaW5hcnlUcmFjZQ0KK0lOVEVSTkFMX19Bc3luY1N0cmluZ1RyYWNlDQorSU5URVJOQUxfX0RlYnVnQXNzZXJ0DQorSU5URVJOQUxfX0ZsdXNoQXN5bmNUcmFjZQ0KK0lOVEVSTkFMX19Jbml0QXN5bmNUcmFjZQ0KK0lOVEVSTkFMX19TZXRBc3luY1RyYWNlUGFyYW1zDQorSU5URVJOQUxfX1Rlcm1Bc3luY1RyYWNlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYXVkaW9zcnYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYXVkaW9zcnYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJlMmIxMDYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9hdWRpb3Nydi5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBVURJT1NSVi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQVVESU9TUlYuZGxsDQorRVhQT1JUUw0KK1NlcnZpY2VNYWluDQorU3ZjaG9zdFB1c2hTZXJ2aWNlR2xvYmFscw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2F1dGh6LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2F1dGh6LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41ODdjNDNiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvYXV0aHouZGVmCkBAIC0wLDAgKzEsNDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQVVUSFouZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEFVVEhaLmRsbA0KK0VYUE9SVFMNCitBdXRoekFjY2Vzc0NoZWNrDQorQXV0aHpBZGRTaWRzVG9Db250ZXh0DQorQXV0aHpDYWNoZWRBY2Nlc3NDaGVjaw0KK0F1dGh6RW51bWVyYXRlU2VjdXJpdHlFdmVudFNvdXJjZXMNCitBdXRoekZyZWVBdWRpdEV2ZW50DQorQXV0aHpGcmVlQ29udGV4dA0KK0F1dGh6RnJlZUhhbmRsZQ0KK0F1dGh6RnJlZVJlc291cmNlTWFuYWdlcg0KK0F1dGh6R2V0SW5mb3JtYXRpb25Gcm9tQ29udGV4dA0KK0F1dGh6SW5pdGlhbGl6ZUNvbnRleHRGcm9tQXV0aHpDb250ZXh0DQorQXV0aHpJbml0aWFsaXplQ29udGV4dEZyb21TaWQNCitBdXRoekluaXRpYWxpemVDb250ZXh0RnJvbVRva2VuDQorQXV0aHpJbml0aWFsaXplT2JqZWN0QWNjZXNzQXVkaXRFdmVudA0KK0F1dGh6SW5pdGlhbGl6ZU9iamVjdEFjY2Vzc0F1ZGl0RXZlbnQyDQorQXV0aHpJbml0aWFsaXplUmVzb3VyY2VNYW5hZ2VyDQorQXV0aHpJbnN0YWxsU2VjdXJpdHlFdmVudFNvdXJjZQ0KK0F1dGh6T3Blbk9iamVjdEF1ZGl0DQorQXV0aHpSZWdpc3RlclNlY3VyaXR5RXZlbnRTb3VyY2UNCitBdXRoelJlcG9ydFNlY3VyaXR5RXZlbnQNCitBdXRoelJlcG9ydFNlY3VyaXR5RXZlbnRGcm9tUGFyYW1zDQorQXV0aHpVbmluc3RhbGxTZWN1cml0eUV2ZW50U291cmNlDQorQXV0aHpVbnJlZ2lzdGVyU2VjdXJpdHlFdmVudFNvdXJjZQ0KK0F1dGh6aUFsbG9jYXRlQXVkaXRQYXJhbXMNCitBdXRoemlGcmVlQXVkaXRFdmVudFR5cGUNCitBdXRoemlGcmVlQXVkaXRQYXJhbXMNCitBdXRoemlGcmVlQXVkaXRRdWV1ZQ0KK0F1dGh6aUluaXRpYWxpemVBdWRpdEV2ZW50DQorQXV0aHppSW5pdGlhbGl6ZUF1ZGl0RXZlbnRUeXBlDQorQXV0aHppSW5pdGlhbGl6ZUF1ZGl0UGFyYW1zDQorQXV0aHppSW5pdGlhbGl6ZUF1ZGl0UGFyYW1zRnJvbUFycmF5DQorQXV0aHppSW5pdGlhbGl6ZUF1ZGl0UGFyYW1zV2l0aFJNDQorQXV0aHppSW5pdGlhbGl6ZUF1ZGl0UXVldWUNCitBdXRoemlJbml0aWFsaXplQ29udGV4dEZyb21TaWQNCitBdXRoemlMb2dBdWRpdEV2ZW50DQorQXV0aHppTW9kaWZ5QXVkaXRFdmVudA0KK0F1dGh6aU1vZGlmeUF1ZGl0RXZlbnQyDQorQXV0aHppTW9kaWZ5QXVkaXRFdmVudFR5cGUNCitBdXRoemlNb2RpZnlBdWRpdFF1ZXVlDQorQXV0aHppUXVlcnlBdWRpdFBvbGljeQ0KK0F1dGh6aVNldEF1ZGl0UG9saWN5DQorQXV0aHppU291cmNlQXVkaXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9hdXRvZGlzYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9hdXRvZGlzYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzNiMjM1OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2F1dG9kaXNjLmRlZgpAQCAtMCwwICsxLDE1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEF1dG9EaXNjLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBBdXRvRGlzYy5kbGwNCitFWFBPUlRTDQorQWRkRW1haWxUb0F1dG9Db21wbGV0ZQ0KK0F1dG9EaXNjb3ZlckFuZE9wZW5FbWFpbA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2F2aWNhcDMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2F2aWNhcDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lN2MxMWYwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvYXZpY2FwMzIuZGVmCkBAIC0wLDAgKzEsMTQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQVZJQ0FQMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEFWSUNBUDMyLmRsbA0KK0VYUE9SVFMNCitBcHBDbGVhbnVwDQorY2FwQ3JlYXRlQ2FwdHVyZVdpbmRvd0ENCitjYXBDcmVhdGVDYXB0dXJlV2luZG93Vw0KK2NhcEdldERyaXZlckRlc2NyaXB0aW9uQQ0KK2NhcEdldERyaXZlckRlc2NyaXB0aW9uVw0KK3ZpZGVvVGh1bmszMg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2F2aWZpbDMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2F2aWZpbDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNjlmNGUwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvYXZpZmlsMzIuZGVmCkBAIC0wLDAgKzEsODQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQVZJRklMMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEFWSUZJTDMyLmRsbA0KK0VYUE9SVFMNCitBVklCdWlsZEZpbHRlcg0KK0FWSUJ1aWxkRmlsdGVyQQ0KK0FWSUJ1aWxkRmlsdGVyVw0KK0FWSUNsZWFyQ2xpcGJvYXJkDQorQVZJRmlsZUFkZFJlZg0KK0FWSUZpbGVDcmVhdGVTdHJlYW0NCitBVklGaWxlQ3JlYXRlU3RyZWFtQQ0KK0FWSUZpbGVDcmVhdGVTdHJlYW1XDQorQVZJRmlsZUVuZFJlY29yZA0KK0FWSUZpbGVFeGl0DQorQVZJRmlsZUdldFN0cmVhbQ0KK0FWSUZpbGVJbmZvDQorQVZJRmlsZUluZm9BDQorQVZJRmlsZUluZm9XDQorQVZJRmlsZUluaXQNCitBVklGaWxlT3Blbg0KK0FWSUZpbGVPcGVuQQ0KK0FWSUZpbGVPcGVuVw0KK0FWSUZpbGVSZWFkRGF0YQ0KK0FWSUZpbGVSZWxlYXNlDQorQVZJRmlsZVdyaXRlRGF0YQ0KK0FWSUdldEZyb21DbGlwYm9hcmQNCitBVklNYWtlQ29tcHJlc3NlZFN0cmVhbQ0KK0FWSU1ha2VGaWxlRnJvbVN0cmVhbXMNCitBVklNYWtlU3RyZWFtRnJvbUNsaXBib2FyZA0KK0FWSVB1dEZpbGVPbkNsaXBib2FyZA0KK0FWSVNhdmUNCitBVklTYXZlQQ0KK0FWSVNhdmVPcHRpb25zDQorQVZJU2F2ZU9wdGlvbnNGcmVlDQorQVZJU2F2ZVYNCitBVklTYXZlVkENCitBVklTYXZlVlcNCitBVklTYXZlVw0KK0FWSVN0cmVhbUFkZFJlZg0KK0FWSVN0cmVhbUJlZ2luU3RyZWFtaW5nDQorQVZJU3RyZWFtQ3JlYXRlDQorQVZJU3RyZWFtRW5kU3RyZWFtaW5nDQorQVZJU3RyZWFtRmluZFNhbXBsZQ0KK0FWSVN0cmVhbUdldEZyYW1lDQorQVZJU3RyZWFtR2V0RnJhbWVDbG9zZQ0KK0FWSVN0cmVhbUdldEZyYW1lT3Blbg0KK0FWSVN0cmVhbUluZm8NCitBVklTdHJlYW1JbmZvQQ0KK0FWSVN0cmVhbUluZm9XDQorQVZJU3RyZWFtTGVuZ3RoDQorQVZJU3RyZWFtT3BlbkZyb21GaWxlDQorQVZJU3RyZWFtT3BlbkZyb21GaWxlQQ0KK0FWSVN0cmVhbU9wZW5Gcm9tRmlsZVcNCitBVklTdHJlYW1SZWFkDQorQVZJU3RyZWFtUmVhZERhdGENCitBVklTdHJlYW1SZWFkRm9ybWF0DQorQVZJU3RyZWFtUmVsZWFzZQ0KK0FWSVN0cmVhbVNhbXBsZVRvVGltZQ0KK0FWSVN0cmVhbVNldEZvcm1hdA0KK0FWSVN0cmVhbVN0YXJ0DQorQVZJU3RyZWFtVGltZVRvU2FtcGxlDQorQVZJU3RyZWFtV3JpdGUNCitBVklTdHJlYW1Xcml0ZURhdGENCitDcmVhdGVFZGl0YWJsZVN0cmVhbQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRWRpdFN0cmVhbUNsb25lDQorRWRpdFN0cmVhbUNvcHkNCitFZGl0U3RyZWFtQ3V0DQorRWRpdFN0cmVhbVBhc3RlDQorRWRpdFN0cmVhbVNldEluZm8NCitFZGl0U3RyZWFtU2V0SW5mb0ENCitFZGl0U3RyZWFtU2V0SW5mb1cNCitFZGl0U3RyZWFtU2V0TmFtZQ0KK0VkaXRTdHJlYW1TZXROYW1lQQ0KK0VkaXRTdHJlYW1TZXROYW1lVw0KK0lJRF9JQVZJRWRpdFN0cmVhbQ0KK0lJRF9JQVZJRmlsZQ0KK0lJRF9JQVZJU3RyZWFtDQorSUlEX0lHZXRGcmFtZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2F6cm9sZXMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYXpyb2xlcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTdhZmRmNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2F6cm9sZXMuZGVmCkBAIC0wLDAgKzEsNTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYXpyb2xlcy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgYXpyb2xlcy5ETEwNCitFWFBPUlRTDQorQXpBZGRQcm9wZXJ0eUl0ZW0NCitBekFwcGxpY2F0aW9uQ2xvc2UNCitBekFwcGxpY2F0aW9uQ3JlYXRlDQorQXpBcHBsaWNhdGlvbkRlbGV0ZQ0KK0F6QXBwbGljYXRpb25FbnVtDQorQXpBcHBsaWNhdGlvbk9wZW4NCitBekF1dGhvcml6YXRpb25TdG9yZURlbGV0ZQ0KK0F6Q2xvc2VIYW5kbGUNCitBekNvbnRleHRBY2Nlc3NDaGVjaw0KK0F6Q29udGV4dEdldEFzc2lnbmVkU2NvcGVzUGFnZQ0KK0F6Q29udGV4dEdldFJvbGVzDQorQXpGcmVlTWVtb3J5DQorQXpHZXRQcm9wZXJ0eQ0KK0F6R3JvdXBDcmVhdGUNCitBekdyb3VwRGVsZXRlDQorQXpHcm91cEVudW0NCitBekdyb3VwT3Blbg0KK0F6SW5pdGlhbGl6ZQ0KK0F6SW5pdGlhbGl6ZUNvbnRleHRGcm9tTmFtZQ0KK0F6SW5pdGlhbGl6ZUNvbnRleHRGcm9tVG9rZW4NCitBek9wZXJhdGlvbkNyZWF0ZQ0KK0F6T3BlcmF0aW9uRGVsZXRlDQorQXpPcGVyYXRpb25FbnVtDQorQXpPcGVyYXRpb25PcGVuDQorQXpSZW1vdmVQcm9wZXJ0eUl0ZW0NCitBelJvbGVDcmVhdGUNCitBelJvbGVEZWxldGUNCitBelJvbGVFbnVtDQorQXpSb2xlT3Blbg0KK0F6U2NvcGVDcmVhdGUNCitBelNjb3BlRGVsZXRlDQorQXpTY29wZUVudW0NCitBelNjb3BlT3Blbg0KK0F6U2V0UHJvcGVydHkNCitBelN1Ym1pdA0KK0F6VGFza0NyZWF0ZQ0KK0F6VGFza0RlbGV0ZQ0KK0F6VGFza0VudW0NCitBelRhc2tPcGVuDQorQXpVcGRhdGVDYWNoZQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYXpyb2xldWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYXpyb2xldWkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI5ZWZkZjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9henJvbGV1aS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBhenJvbGV1aS5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgYXpyb2xldWkuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvYmFzZXNydi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9iYXNlc3J2LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wOTIwZWZjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvYmFzZXNydi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBCQVNFU1JWLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBCQVNFU1JWLmRsbA0KK0VYUE9SVFMNCitCYXNlU2V0UHJvY2Vzc0NyZWF0ZU5vdGlmeQ0KK0Jhc2VTcnZObHNMb2dvbg0KK0Jhc2VTcnZObHNVcGRhdGVSZWdpc3RyeUNhY2hlDQorU2VydmVyRGxsSW5pdGlhbGl6YXRpb24NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9iYXRtZXRlci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9iYXRtZXRlci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDE1MzAyYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2JhdG1ldGVyLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEJhdE1ldGVyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBCYXRNZXRlci5kbGwNCitFWFBPUlRTDQorQmF0TWV0ZXJDYXBhYmlsaXRpZXMNCitDcmVhdGVCYXRNZXRlcg0KK0Rlc3Ryb3lCYXRNZXRlcg0KK1Bvd2VyQ2FwYWJpbGl0aWVzDQorVXBkYXRlQmF0TWV0ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9iYXR0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2JhdHQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjExZWRkMjQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9iYXR0LmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGJhdHQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGJhdHQuZGxsDQorRVhQT1JUUw0KK0JhdHRlcnlDbGFzc0NvSW5zdGFsbGVyDQorQmF0dGVyeUNsYXNzSW5zdGFsbA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2JpZGlzcGwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYmlkaXNwbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODBjYjdjYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2JpZGlzcGwuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYmlkaXNwbC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgYmlkaXNwbC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9iaXRzcHJ4Mi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9iaXRzcHJ4Mi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWVjMzg5YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2JpdHNwcngyLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGJpdHNwcngyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBiaXRzcHJ4Mi5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9iaXRzcHJ4My5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9iaXRzcHJ4My5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2YxYTE4NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2JpdHNwcngzLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGJpdHNwcngzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBiaXRzcHJ4My5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9ibnRzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2JudHMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI4NDQ5NDcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9ibnRzLmRlZgpAQCAtMCwwICsxLDg0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGJudHMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGJudHMuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIEJOVFM6OkJOVFModm9pZCkgX19wdHI2NA0KKz8/MEJOVFNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCTlRTOjp+Qk5UUyh2b2lkKSBfX3B0cjY0DQorPz8xQk5UU0BAUUVBQUBYWg0KKzsgcHVibGljOiBjbGFzcyBCTlRTICYgX19wdHI2NCBfX2NkZWNsIEJOVFM6Om9wZXJhdG9yPShjbGFzcyBCTlRTIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NEJOVFNAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBCTlRTOjpCR2V0UHJvcEl0ZW1SZWFsKGNsYXNzIExUQk5QUk9QICYgX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCxpbnQsZG91YmxlICYgX19wdHI2NCkgX19wdHI2NA0KKz9CR2V0UHJvcEl0ZW1SZWFsQEJOVFNAQElFQUFIQUVBVkxUQk5QUk9QQEBQRUJESEFFQU5AWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBCTlRTOjpCR2V0UHJvcEl0ZW1TdHIoY2xhc3MgTFRCTlBST1AgJiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGludCxjbGFzcyBaU1RSICYgX19wdHI2NCkgX19wdHI2NA0KKz9CR2V0UHJvcEl0ZW1TdHJAQk5UU0BASUVBQUhBRUFWTFRCTlBST1BAQFBFQkRIQUVBVlpTVFJAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJOVFM6OkJHZXRSZWNvbW1lbmRhdGlvbnModm9pZCkgX19wdHI2NA0KKz9CR2V0UmVjb21tZW5kYXRpb25zQEJOVFNAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQk5UUzo6QkltcG9zc2libGUodm9pZCkgX19wdHI2NA0KKz9CSW1wb3NzaWJsZUBCTlRTQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJOVFM6OkJOZXRQcm9wSXRlbVJlYWwoY2hhciBjb25zdCAqIF9fcHRyNjQsaW50LGRvdWJsZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Qk5ldFByb3BJdGVtUmVhbEBCTlRTQEBRRUFBSFBFQkRIQUVBTkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJOVFM6OkJOZXRQcm9wSXRlbVN0cihjaGFyIGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/Qk5ldFByb3BJdGVtU3RyQEJOVFNAQFFFQUFIUEVCREhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBCTlRTOjpCTm9kZVByb3BJdGVtUmVhbChjaGFyIGNvbnN0ICogX19wdHI2NCxpbnQsZG91YmxlICYgX19wdHI2NCkgX19wdHI2NA0KKz9CTm9kZVByb3BJdGVtUmVhbEBCTlRTQEBRRUFBSFBFQkRIQUVBTkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJOVFM6OkJOb2RlUHJvcEl0ZW1TdHIoY2hhciBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0JOb2RlUHJvcEl0ZW1TdHJAQk5UU0BAUUVBQUhQRUJESEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJOVFM6OkJOb2RlU2V0KGludCxib29sKSBfX3B0cjY0DQorP0JOb2RlU2V0QEJOVFNAQFFFQUFISF9OQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQk5UUzo6Qk5vZGVTZXRDdXJyZW50KGludCkgX19wdHI2NA0KKz9CTm9kZVNldEN1cnJlbnRAQk5UU0BAUUVBQUhIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQk5UUzo6QlJlYWRNb2RlbChjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9CUmVhZE1vZGVsQEJOVFNAQFFFQUFIUEVCRDBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQk5UUzo6QlZhbGlkTmV0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/QlZhbGlkTmV0QEJOVFNAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBCTlRTOjpCVmFsaWROb2RlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/QlZhbGlkTm9kZUBCTlRTQEBRRUJBX05YWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBCTlRTOjpDSW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q0ludEBCTlRTQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJOVFM6OkNOb2RlKHZvaWQpIF9fcHRyNjQNCis/Q05vZGVAQk5UU0BAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBCTlRTOjpDUmVhbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NSZWFsQEJOVFNAQFFFQkFIWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEJOVFM6OkNsZWFyKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJAQk5UU0BAUUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQk5UUzo6Q2xlYXJBcnJheXModm9pZCkgX19wdHI2NA0KKz9DbGVhckFycmF5c0BCTlRTQEBJRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBCTlRTOjpDbGVhclN0cmluZyh2b2lkKSBfX3B0cjY0DQorP0NsZWFyU3RyaW5nQEJOVFNAQElFQUFYWFoNCis7IHB1YmxpYzogZW51bSBFU1RETEJMICBfX2NkZWNsIEJOVFM6OkVMYmxOb2RlKHZvaWQpIF9fcHRyNjQNCis/RUxibE5vZGVAQk5UU0BAUUVBQT9BVzRFU1RETEJMQEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBCTlRTOjpJTm9kZShjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9JTm9kZUBCTlRTQEBRRUFBSFBFQkRAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBCTlRTOjpJTm9kZUNzdCh2b2lkKSBfX3B0cjY0DQorP0lOb2RlQ3N0QEJOVFNAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQk5UUzo6SU5vZGVDdXJyZW50KHZvaWQpIF9fcHRyNjQNCis/SU5vZGVDdXJyZW50QEJOVFNAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQk5UUzo6SU5vZGVTdGF0ZSh2b2lkKSBfX3B0cjY0DQorP0lOb2RlU3RhdGVAQk5UU0BAUUVBQUhYWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBNQk5FVERTQ1RTICYgX19wdHI2NCBfX2NkZWNsIEJOVFM6Ok1ibmV0KHZvaWQpIF9fcHRyNjQNCis/TWJuZXRAQk5UU0BASUVBQUFFQVZNQk5FVERTQ1RTQEBYWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBNQk5FVERTQ1RTIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIEJOVFM6Ok1ibmV0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TWJuZXRAQk5UU0BASUVCQUFFQlZNQk5FVERTQ1RTQEBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQk5UUzo6Tm9kZUJlbGllZih2b2lkKSBfX3B0cjY0DQorP05vZGVCZWxpZWZAQk5UU0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQk5UUzo6Tm9kZUZ1bGxOYW1lKHZvaWQpIF9fcHRyNjQNCis/Tm9kZUZ1bGxOYW1lQEJOVFNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEJOVFM6Ok5vZGVTdGF0ZU5hbWUoaW50KSBfX3B0cjY0DQorP05vZGVTdGF0ZU5hbWVAQk5UU0BAUUVBQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEJOVFM6Ok5vZGVTeW1OYW1lKHZvaWQpIF9fcHRyNjQNCis/Tm9kZVN5bU5hbWVAQk5UU0BAUUVBQVhYWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBHTk9ERU1CTkQgKiBfX3B0cjY0IF9fY2RlY2wgQk5UUzo6UGduZGQodm9pZCkgX19wdHI2NA0KKz9QZ25kZEBCTlRTQEBJRUFBUEVBVkdOT0RFTUJOREBAWFoNCis7IHB1YmxpYzogaW50IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEJOVFM6OlJnSW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UmdJbnRAQk5UU0BAUUVCQVBFQkhYWg0KKzsgcHVibGljOiBkb3VibGUgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQk5UUzo6UmdSZWFsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UmdSZWFsQEJOVFNAQFFFQkFQRUJOWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBCTlRTOjpTemNSZXN1bHQodm9pZCljb25zdCAgX19wdHI2NA0KKz9TemNSZXN1bHRAQk5UU0BAUUVCQVBFQkRYWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBaU1RSICYgX19wdHI2NCBfX2NkZWNsIEJOVFM6OlpzdHJSZXN1bHQodm9pZCkgX19wdHI2NA0KKz9ac3RyUmVzdWx0QEJOVFNAQElFQUFBRUFWWlNUUkBAWFoNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9ib290dmlkLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Jvb3R2aWQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNiNDUyN2IKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9ib290dmlkLmRlZgpAQCAtMCwwICsxLDE5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEJPT1RWSUQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEJPT1RWSUQuZGxsDQorRVhQT1JUUw0KK1ZpZEJpdEJsdA0KK1ZpZEJ1ZmZlclRvU2NyZWVuQmx0DQorVmlkQ2xlYW5VcA0KK1ZpZERpc3BsYXlTdHJpbmcNCitWaWREaXNwbGF5U3RyaW5nWFkNCitWaWRJbml0aWFsaXplDQorVmlkUmVzZXREaXNwbGF5DQorVmlkU2NyZWVuVG9CdWZmZXJCbHQNCitWaWRTZXRTY3JvbGxSZWdpb24NCitWaWRTZXRUZXh0Q29sb3INCitWaWRTb2xpZENvbG9yRmlsbA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Jyb3dzY2FwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Jyb3dzY2FwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYjQ5NmZhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvYnJvd3NjYXAuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQnJvd3NDYXAuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEJyb3dzQ2FwLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Jyb3dzZXIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYnJvd3Nlci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDMyY2M2NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Jyb3dzZXIuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYnJvd3Nlci5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgYnJvd3Nlci5kbGwNCitFWFBPUlRTDQorSV9Ccm93c2VyU2VydmVyRW51bUZvclhhY3RzcnYNCitTZXJ2aWNlTWFpbg0KK1N2Y2hvc3RQdXNoU2VydmljZUdsb2JhbHMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9icm93c2V1aS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9icm93c2V1aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjRlZTVhYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Jyb3dzZXVpLmRlZgpAQCAtMCwwICsxLDE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEJST1dTRVVJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBCUk9XU0VVSS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxHZXRWZXJzaW9uDQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2JycGluZm8uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYnJwaW5mby5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzk4M2EyMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2JycGluZm8uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYnJwX3N5c2luZm8uRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGJycF9zeXNpbmZvLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2J0aGNpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2J0aGNpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lOTA0Njg1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvYnRoY2kuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU1BPUlRTLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU1BPUlRTLkRMTA0KK0VYUE9SVFMNCitCbHVldG9vdGhDbGFzc0luc3RhbGxlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2J0aHNlcnYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYnRoc2Vydi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjU1OWRhNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2J0aHNlcnYuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBCVEhTRVJWLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBCVEhTRVJWLmRsbA0KK0VYUE9SVFMNCitTZXJ2aWNlTWFpbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2J0cGFudWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvYnRwYW51aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTQ5ODBkMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2J0cGFudWkuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYnRocGFudXguZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGJ0aHBhbnV4LmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NfZzE4MDMwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NfZzE4MDMwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kOWY4Nzk2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY19nMTgwMzAuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY19nYjE4MDMwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBjX2diMTgwMzAuZGxsDQorRVhQT1JUUw0KK0J5dGVzVG9Vbmljb2RlDQorTmxzRGxsQ29kZVBhZ2VUcmFuc2xhdGlvbg0KK1VuaWNvZGVUb0J5dGVzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY19pczIwMjIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY19pczIwMjIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZlMmM3NDQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jX2lzMjAyMi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGNfaXMyMDIyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBjX2lzMjAyMi5kbGwNCitFWFBPUlRTDQorTmxzRGxsQ29kZVBhZ2VUcmFuc2xhdGlvbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NfaXNjaWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY19pc2NpaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjNmM2JiZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NfaXNjaWkuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBjX2lzY2lpLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBjX2lzY2lpLmRsbA0KK0VYUE9SVFMNCitObHNEbGxDb2RlUGFnZVRyYW5zbGF0aW9uDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY2FiaW5ldC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jYWJpbmV0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44OTI1MzUyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY2FiaW5ldC5kZWYKQEAgLTAsMCArMSwyMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDYWJpbmV0LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDYWJpbmV0LmRsbA0KK0VYUE9SVFMNCitHZXREbGxWZXJzaW9uDQorRGxsR2V0VmVyc2lvbg0KK0V4dHJhY3QNCitEZWxldGVFeHRyYWN0ZWRGaWxlcw0KK0ZDSUNyZWF0ZQ0KK0ZDSUFkZEZpbGUNCitGQ0lGbHVzaEZvbGRlcg0KK0ZDSUZsdXNoQ2FiaW5ldA0KK0ZDSURlc3Ryb3kNCitGRElDcmVhdGUNCitGRElJc0NhYmluZXQNCitGRElDb3B5DQorRkRJRGVzdHJveQ0KK0ZESVRydW5jYXRlQ2FiaW5ldA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NhYnZpZXcuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY2Fidmlldy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTE4Y2QxNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NhYnZpZXcuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ0FCVklFVy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ0FCVklFVy5kbGwNCitFWFBPUlRTDQorVW5pbnN0YWxsDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jYW1vY3guZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY2Ftb2N4LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZDZlYzM4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY2Ftb2N4LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGNhbW9jeC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgY2Ftb2N4LkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NhcmRzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NhcmRzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZWZjYzc3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY2FyZHMuZGVmCkBAIC0wLDAgKzEsMTQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ0FSRFMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENBUkRTLmRsbA0KK0VYUE9SVFMNCitXRVANCitjZHRBbmltYXRlDQorY2R0RHJhdw0KK2NkdERyYXdFeHQNCitjZHRJbml0DQorY2R0VGVybQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NhdHNydi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jYXRzcnYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA5NjRmNDEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jYXRzcnYuZGVmCkBAIC0wLDAgKzEsMjYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY2F0c3J2LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBjYXRzcnYuZGxsDQorRVhQT1JUUw0KKzsgbG9uZyBfX2NkZWNsIENhbmNlbFdyaXRlSUNSKHN0cnVjdCBJQ29tcG9uZW50UmVjb3JkcyAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9DYW5jZWxXcml0ZUlDUkBAWUFKUEVBUEVBVUlDb21wb25lbnRSZWNvcmRzQEBAWg0KK0NyZWF0ZUNvbXBvbmVudExpYnJhcnlUUw0KK0dldENhdGFsb2dDUk1DbGVyaw0KKzsgbG9uZyBfX2NkZWNsIEdldFJlYWRJQ1IoaW50LHN0cnVjdCBJQ29tcG9uZW50UmVjb3JkcyAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9HZXRSZWFkSUNSQEBZQUpIUEVBUEVBVUlDb21wb25lbnRSZWNvcmRzQEBAWg0KKzsgbG9uZyBfX2NkZWNsIEdldFdyaXRlSUNSKHN0cnVjdCBJQ29tcG9uZW50UmVjb3JkcyAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9HZXRXcml0ZUlDUkBAWUFKUEVBUEVBVUlDb21wb25lbnRSZWNvcmRzQEBAWg0KK09wZW5Db21wb25lbnRMaWJyYXJ5U2hhcmVkVFMNCitPcGVuQ29tcG9uZW50TGlicmFyeVRTDQorOyB2b2lkIF9fY2RlY2wgUmVsZWFzZVJlYWRJQ1Ioc3RydWN0IElDb21wb25lbnRSZWNvcmRzICogX19wdHI2NCAqIF9fcHRyNjQpDQorP1JlbGVhc2VSZWFkSUNSQEBZQVhQRUFQRUFVSUNvbXBvbmVudFJlY29yZHNAQEBaDQorOyBsb25nIF9fY2RlY2wgU2F2ZVdyaXRlSUNSKHN0cnVjdCBJQ29tcG9uZW50UmVjb3JkcyAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9TYXZlV3JpdGVJQ1JAQFlBSlBFQVBFQVVJQ29tcG9uZW50UmVjb3Jkc0BAQFoNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NhdHNydnBzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NhdHNydnBzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMGM5OWFjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY2F0c3J2cHMuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY2F0c3J2cHMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNhdHNydnBzLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldFByb3h5RGxsSW5mbw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NhdHNydnV0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NhdHNydnV0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZjY0NTJkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY2F0c3J2dXQuZGVmCkBAIC0wLDAgKzEsNTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY2F0c3J2dXQuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNhdHNydnV0LkRMTA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBDQ29tUGx1c0NvbXBvbmVudDo6Q0NvbVBsdXNDb21wb25lbnQoY2xhc3MgQ0NvbVBsdXNDb21wb25lbnQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0NvbVBsdXNDb21wb25lbnRAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ29tUGx1c0ludGVyZmFjZTo6Q0NvbVBsdXNJbnRlcmZhY2UoY2xhc3MgQ0NvbVBsdXNJbnRlcmZhY2UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0NvbVBsdXNJbnRlcmZhY2VAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ29tUGx1c01ldGhvZDo6Q0NvbVBsdXNNZXRob2QoY2xhc3MgQ0NvbVBsdXNNZXRob2QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0NvbVBsdXNNZXRob2RAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ29tUGx1c09iamVjdDo6Q0NvbVBsdXNPYmplY3QoY2xhc3MgQ0NvbVBsdXNPYmplY3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0NvbVBsdXNPYmplY3RAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENDb21QbHVzQ29tcG9uZW50Ojp+Q0NvbVBsdXNDb21wb25lbnQodm9pZCkgX19wdHI2NA0KKz8/MUNDb21QbHVzQ29tcG9uZW50QEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDQ29tUGx1c0ludGVyZmFjZTo6fkNDb21QbHVzSW50ZXJmYWNlKHZvaWQpIF9fcHRyNjQNCis/PzFDQ29tUGx1c0ludGVyZmFjZUBAVUVBQUBYWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tUGx1c0NvbXBvbmVudCAmIF9fcHRyNjQgX19jZGVjbCBDQ29tUGx1c0NvbXBvbmVudDo6b3BlcmF0b3I9KGNsYXNzIENDb21QbHVzQ29tcG9uZW50IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENDb21QbHVzQ29tcG9uZW50QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbVBsdXNJbnRlcmZhY2UgJiBfX3B0cjY0IF9fY2RlY2wgQ0NvbVBsdXNJbnRlcmZhY2U6Om9wZXJhdG9yPShjbGFzcyBDQ29tUGx1c0ludGVyZmFjZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDQ29tUGx1c0ludGVyZmFjZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENDb21QbHVzTWV0aG9kICYgX19wdHI2NCBfX2NkZWNsIENDb21QbHVzTWV0aG9kOjpvcGVyYXRvcj0oY2xhc3MgQ0NvbVBsdXNNZXRob2QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0NvbVBsdXNNZXRob2RAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tUGx1c09iamVjdCAmIF9fcHRyNjQgX19jZGVjbCBDQ29tUGx1c09iamVjdDo6b3BlcmF0b3I9KGNsYXNzIENDb21QbHVzT2JqZWN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENDb21QbHVzT2JqZWN0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbVBsdXNUeXBlbGliICYgX19wdHI2NCBfX2NkZWNsIENDb21QbHVzVHlwZWxpYjo6b3BlcmF0b3I9KGNsYXNzIENDb21QbHVzVHlwZWxpYiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDQ29tUGx1c1R5cGVsaWJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgY29uc3QgIENDb21QbHVzQ29tcG9uZW50OjpgdmZ0YWJsZScNCis/P183Q0NvbVBsdXNDb21wb25lbnRAQDZCQA0KKzsgY29uc3QgIENDb21QbHVzSW50ZXJmYWNlOjpgdmZ0YWJsZScNCis/P183Q0NvbVBsdXNJbnRlcmZhY2VAQDZCQA0KKzsgY29uc3QgIENDb21QbHVzTWV0aG9kOjpgdmZ0YWJsZScNCis/P183Q0NvbVBsdXNNZXRob2RAQDZCQA0KKzsgY29uc3QgIENDb21QbHVzT2JqZWN0OjpgdmZ0YWJsZScNCis/P183Q0NvbVBsdXNPYmplY3RAQDZCQA0KKzsgcHVibGljOiBzdHJ1Y3QgSVR5cGVMaWIgKiBfX3B0cjY0IF9fY2RlY2wgQ0NvbVBsdXNUeXBlbGliOjpHZXRJVHlwZUxpYih2b2lkKSBfX3B0cjY0DQorP0dldElUeXBlTGliQENDb21QbHVzVHlwZWxpYkBAUUVBQVBFQVVJVHlwZUxpYkBAWFoNCitSZWdEQkJhY2t1cA0KK1JlZ0RCUmVzdG9yZQ0KK1N0YXJ0TVRTVE9DT00NCitXaW5sb2dvbkhhbmRsZVBlbmRpbmdJbmZPcGVyYXRpb25zDQorQ0dNSXNBZG1pbmlzdHJhdG9yDQorQ09NUGx1c1VuaW5zdGFsbEFjdGlvblcNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0ZpbmRBc3NlbWJseU1vZHVsZXNXDQorTWFuYWdlZFJlcXVlc3RXDQorUXVlcnlVc2VyRGxsVw0KK1J1bk1UU1RvQ29tDQorU3lzcHJlcENvbXBsdXMNCitTeXNwcmVwQ29tcGx1czINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jY2ZnbnQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY2NmZ250LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hODlkMWUzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY2NmZ250LmRlZgpAQCAtMCwwICsxLDIzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElDRkdOVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSUNGR05ULmRsbA0KK0VYUE9SVFMNCitJY2ZnU2V0SW5zdGFsbFNvdXJjZVBhdGgNCitJbmV0U2V0QXV0b2RpYWxBZGRyZXNzDQorSWNmZ0dldExhc3RJbnN0YWxsRXJyb3JUZXh0DQorSWNmZ0luc3RhbGxJbmV0Q29tcG9uZW50cw0KK0ljZmdJbnN0YWxsTW9kZW0NCitJY2ZnSXNGaWxlU2hhcmluZ1R1cm5lZE9uDQorSWNmZ0lzR2xvYmFsRE5TDQorSWNmZ05lZWRJbmV0Q29tcG9uZW50cw0KK0ljZmdOZWVkTW9kZW0NCitJY2ZnUmVtb3ZlR2xvYmFsRE5TDQorSWNmZ1N0YXJ0U2VydmljZXMNCitJY2ZnVHVybk9mZkZpbGVTaGFyaW5nDQorSW5ldEdldEF1dG9kaWFsDQorSW5ldEdldFN1cHBvcnRlZFBsYXRmb3JtDQorSW5ldFNldEF1dG9kaWFsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY2Rmdmlldy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jZGZ2aWV3LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYTk0N2I3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY2Rmdmlldy5kZWYKQEAgLTAsMCArMSwxNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDZGZWaWV3LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDZGZWaWV3LmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK09wZW5DaGFubmVsDQorUGFyc2VEZXNrdG9wQ29tcG9uZW50DQorU3Vic2NyaWJlDQorU3Vic2NyaWJlVG9DREYNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jZG0uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY2RtLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jZjdiNTJmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY2RtLmRlZgpAQCAtMCwwICsxLDE5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENETS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ0RNLmRsbA0KK0VYUE9SVFMNCitDYW5jZWxDRE1PcGVyYXRpb24NCitDbG9zZUNETUNvbnRleHQNCitEZXRGaWxlc0Rvd25sb2FkZWQNCitEb3dubG9hZEdldFVwZGF0ZWRGaWxlcw0KK0Rvd25sb2FkSXNJbnRlcm5ldEF2YWlsYWJsZQ0KK0Rvd25sb2FkVXBkYXRlZEZpbGVzDQorRmluZE1hdGNoaW5nRHJpdmVyDQorTG9nRHJpdmVyTm90Rm91bmQNCitPcGVuQ0RNQ29udGV4dA0KK09wZW5DRE1Db250ZXh0RXgNCitRdWVyeURldGVjdGlvbkZpbGVzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY2Rvc3lzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Nkb3N5cy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2NlZTg1OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Nkb3N5cy5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDZG9TeXMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENkb1N5cy5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jZXJ0Y2xpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NlcnRjbGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ1OTU5MzUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jZXJ0Y2xpLmRlZgpAQCAtMCwwICsxLDg5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGNlcnRjbGkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNlcnRjbGkuZGxsDQorRVhQT1JUUw0KK0NBQWNjZXNzQ2hlY2sNCitDQUFjY2Vzc0NoZWNrRXgNCitDQUFkZENBQ2VydGlmaWNhdGVUeXBlDQorQ0FDZXJ0VHlwZUFjY2Vzc0NoZWNrDQorQ0FDZXJ0VHlwZUFjY2Vzc0NoZWNrRXgNCitDQUNlcnRUeXBlR2V0U2VjdXJpdHkNCitDQUNlcnRUeXBlUXVlcnkNCitDQUNlcnRUeXBlUmVnaXN0ZXJRdWVyeQ0KK0NBQ2VydFR5cGVTZXRTZWN1cml0eQ0KK0NBQ2VydFR5cGVVbnJlZ2lzdGVyUXVlcnkNCitDQUNsb25lQ2VydFR5cGUNCitDQUNsb3NlQ0ENCitDQUNsb3NlQ2VydFR5cGUNCitDQUNvdW50Q0FzDQorQ0FDb3VudENlcnRUeXBlcw0KK0NBQ3JlYXRlQXV0b0Vucm9sbG1lbnRPYmplY3RFeA0KK0NBQ3JlYXRlQ2VydFR5cGUNCitDQUNyZWF0ZUxvY2FsQXV0b0Vucm9sbG1lbnRPYmplY3QNCitDQUNyZWF0ZU5ld0NBDQorQ0FEZWxldGVDQQ0KK0NBRGVsZXRlQ2VydFR5cGUNCitDQURlbGV0ZUxvY2FsQXV0b0Vucm9sbG1lbnRPYmplY3QNCitDQUVudW1DZXJ0VHlwZXMNCitDQUVudW1DZXJ0VHlwZXNFeA0KK0NBRW51bUNlcnRUeXBlc0ZvckNBDQorQ0FFbnVtQ2VydFR5cGVzRm9yQ0FFeA0KK0NBRW51bUZpcnN0Q0ENCitDQUVudW1OZXh0Q0ENCitDQUVudW1OZXh0Q2VydFR5cGUNCitDQUZpbmRCeUNlcnRUeXBlDQorQ0FGaW5kQnlJc3N1ZXJETg0KK0NBRmluZEJ5TmFtZQ0KK0NBRmluZENlcnRUeXBlQnlOYW1lDQorQ0FGcmVlQ0FQcm9wZXJ0eQ0KK0NBRnJlZUNlcnRUeXBlRXh0ZW5zaW9ucw0KK0NBRnJlZUNlcnRUeXBlUHJvcGVydHkNCitDQUdldENBQ2VydGlmaWNhdGUNCitDQUdldENBRXhwaXJhdGlvbg0KK0NBR2V0Q0FGbGFncw0KK0NBR2V0Q0FQcm9wZXJ0eQ0KK0NBR2V0Q0FTZWN1cml0eQ0KK0NBR2V0Q2VydFR5cGVFeHBpcmF0aW9uDQorQ0FHZXRDZXJ0VHlwZUV4dGVuc2lvbnMNCitDQUdldENlcnRUeXBlRXh0ZW5zaW9uc0V4DQorQ0FHZXRDZXJ0VHlwZUZsYWdzDQorQ0FHZXRDZXJ0VHlwZUZsYWdzRXgNCitDQUdldENlcnRUeXBlS2V5U3BlYw0KK0NBR2V0Q2VydFR5cGVQcm9wZXJ0eQ0KK0NBR2V0Q2VydFR5cGVQcm9wZXJ0eUV4DQorQ0FHZXRETg0KK0NBSW5zdGFsbERlZmF1bHRDZXJ0VHlwZQ0KK0NBSXNDZXJ0VHlwZUN1cnJlbnQNCitDQU9JREFkZA0KK0NBT0lEQ3JlYXRlTmV3DQorQ0FPSUREZWxldGUNCitDQU9JREZyZWVMZGFwVVJMDQorQ0FPSURGcmVlUHJvcGVydHkNCitDQU9JREdldExkYXBVUkwNCitDQU9JREdldFByb3BlcnR5DQorQ0FPSURTZXRQcm9wZXJ0eQ0KK0NBUmVtb3ZlQ0FDZXJ0aWZpY2F0ZVR5cGUNCitDQVNldENBQ2VydGlmaWNhdGUNCitDQVNldENBRXhwaXJhdGlvbg0KK0NBU2V0Q0FGbGFncw0KK0NBU2V0Q0FQcm9wZXJ0eQ0KK0NBU2V0Q0FTZWN1cml0eQ0KK0NBU2V0Q2VydFR5cGVFeHBpcmF0aW9uDQorQ0FTZXRDZXJ0VHlwZUV4dGVuc2lvbg0KK0NBU2V0Q2VydFR5cGVGbGFncw0KK0NBU2V0Q2VydFR5cGVGbGFnc0V4DQorQ0FTZXRDZXJ0VHlwZUtleVNwZWMNCitDQVNldENlcnRUeXBlUHJvcGVydHkNCitDQVNldENlcnRUeXBlUHJvcGVydHlFeA0KK0NBVXBkYXRlQ0ENCitDQVVwZGF0ZUNlcnRUeXBlDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxJbnN0YWxsDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorR2V0UHJveHlEbGxJbmZvDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY2VydG1nci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jZXJ0bWdyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yODZlZmRkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY2VydG1nci5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDZXJ0TWdyLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDZXJ0TWdyLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbEluc3RhbGwNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jZXJ0b2JqLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NlcnRvYmouZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUzNDYzZGUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jZXJ0b2JqLmRlZgpAQCAtMCwwICsxLDQ2NiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDZXJ0T2JqLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDZXJ0T2JqLkRMTA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+KGNsYXNzIGxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPihjbGFzcyBsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFAQUVCVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+KGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAqIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICogX19wdHI2NCxjbGFzcyBsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFAUEVCVkNTdHJpbmdASUlTQEAwQUVCVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+KGNsYXNzIGxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpjb25zdF9pdGVyYXRvcixjbGFzcyBsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6Y29uc3RfaXRlcmF0b3IsY2xhc3MgbGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBQFZjb25zdF9pdGVyYXRvckAwMUAwQUVCVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+KHVuc2lnbmVkIF9faW50NjQsY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFAX0tBRUJWQ1N0cmluZ0BJSVNAQEFFQlY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Vycm9yOjpDRXJyb3IoY2xhc3MgQ0Vycm9yIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENFcnJvckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENFcnJvcjo6Q0Vycm9yKGxvbmcpIF9fcHRyNjQNCis/PzBDRXJyb3JAQFFFQUFASkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Vycm9yOjpDRXJyb3IodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENFcnJvckBAUUVBQUBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXJyb3I6OkNFcnJvcih2b2lkKSBfX3B0cjY0DQorPz8wQ0Vycm9yQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpDSUlTQXBwbGljYXRpb24oY2xhc3MgQ0lJU0FwcGxpY2F0aW9uICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENJSVNBcHBsaWNhdGlvbkBAUUVBQUBBRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJSVNJbnRlcmZhY2U6OkNJSVNJbnRlcmZhY2UoY2xhc3MgQ0lJU0ludGVyZmFjZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSUlTSW50ZXJmYWNlQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6OkNJSVNTdmNDb250cm9sKGNsYXNzIENJSVNTdmNDb250cm9sICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENJSVNTdmNDb250cm9sQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFCYWNrOjpDTWV0YUJhY2soY2xhc3MgQ01ldGFCYWNrICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENNZXRhQmFja0BAUUVBQUBBRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhRW51bWVyYXRvcjo6Q01ldGFFbnVtZXJhdG9yKGNsYXNzIENNZXRhRW51bWVyYXRvciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0YUVudW1lcmF0b3JAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0YUludGVyZmFjZTo6Q01ldGFJbnRlcmZhY2UoY2xhc3MgQ01ldGFJbnRlcmZhY2UgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01ldGFJbnRlcmZhY2VAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0YUtleTo6Q01ldGFLZXkoY2xhc3MgQ01ldGFLZXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01ldGFLZXlAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpDTWV0YWJhc2VQYXRoKGNsYXNzIENNZXRhYmFzZVBhdGggY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01ldGFiYXNlUGF0aEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENTdHJpbmdMaXN0RXg6OkNTdHJpbmdMaXN0RXgoY2xhc3MgQ1N0cmluZ0xpc3RFeCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDU3RyaW5nTGlzdEV4QEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1dhbUludGVyZmFjZTo6Q1dhbUludGVyZmFjZShjbGFzcyBDV2FtSW50ZXJmYWNlICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENXYW1JbnRlcmZhY2VAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6fmxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPih2b2lkKSBfX3B0cjY0DQorPz8xPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENCbG9iOjp+Q0Jsb2Iodm9pZCkgX19wdHI2NA0KKz8/MUNCbG9iQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjp+Q0NvbUF1dGhJbmZvKHZvaWQpIF9fcHRyNjQNCis/PzFDQ29tQXV0aEluZm9AQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6fkNJSVNBcHBsaWNhdGlvbih2b2lkKSBfX3B0cjY0DQorPz8xQ0lJU0FwcGxpY2F0aW9uQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU0ludGVyZmFjZTo6fkNJSVNJbnRlcmZhY2Uodm9pZCkgX19wdHI2NA0KKz8/MUNJSVNJbnRlcmZhY2VAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENNZXRhQmFjazo6fkNNZXRhQmFjayh2b2lkKSBfX3B0cjY0DQorPz8xQ01ldGFCYWNrQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDTWV0YUVudW1lcmF0b3I6On5DTWV0YUVudW1lcmF0b3Iodm9pZCkgX19wdHI2NA0KKz8/MUNNZXRhRW51bWVyYXRvckBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhYmFzZVBhdGg6On5DTWV0YWJhc2VQYXRoKHZvaWQpIF9fcHRyNjQNCis/PzFDTWV0YWJhc2VQYXRoQEBRRUFBQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0Vycm9yIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENFcnJvcjo6b3BlcmF0b3I9KGNsYXNzIENFcnJvciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDRXJyb3JAQFFFQUFBRUJWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRXJyb3IgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ0Vycm9yOjpvcGVyYXRvcj0obG9uZykgX19wdHI2NA0KKz8/NENFcnJvckBAUUVBQUFFQlYwQEpAWg0KKzsgcHVibGljOiBjbGFzcyBDSUlTQXBwbGljYXRpb24gJiBfX3B0cjY0IF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpvcGVyYXRvcj0oY2xhc3MgQ0lJU0FwcGxpY2F0aW9uICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJSVNBcHBsaWNhdGlvbkBAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJSVNJbnRlcmZhY2UgJiBfX3B0cjY0IF9fY2RlY2wgQ0lJU0ludGVyZmFjZTo6b3BlcmF0b3I9KGNsYXNzIENJSVNJbnRlcmZhY2UgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0lJU0ludGVyZmFjZUBAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJSVNTdmNDb250cm9sICYgX19wdHI2NCBfX2NkZWNsIENJSVNTdmNDb250cm9sOjpvcGVyYXRvcj0oY2xhc3MgQ0lJU1N2Y0NvbnRyb2wgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0lJU1N2Y0NvbnRyb2xAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTWV0YUJhY2sgJiBfX3B0cjY0IF9fY2RlY2wgQ01ldGFCYWNrOjpvcGVyYXRvcj0oY2xhc3MgQ01ldGFCYWNrICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENNZXRhQmFja0BAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENNZXRhRW51bWVyYXRvciAmIF9fcHRyNjQgX19jZGVjbCBDTWV0YUVudW1lcmF0b3I6Om9wZXJhdG9yPShjbGFzcyBDTWV0YUVudW1lcmF0b3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q01ldGFFbnVtZXJhdG9yQEBRRUFBQUVBVjBAQUVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ01ldGFJbnRlcmZhY2UgJiBfX3B0cjY0IF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6Om9wZXJhdG9yPShjbGFzcyBDTWV0YUludGVyZmFjZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTWV0YUludGVyZmFjZUBAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENNZXRhS2V5ICYgX19wdHI2NCBfX2NkZWNsIENNZXRhS2V5OjpvcGVyYXRvcj0oY2xhc3MgQ01ldGFLZXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q01ldGFLZXlAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTWV0YWJhc2VQYXRoICYgX19wdHI2NCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6Om9wZXJhdG9yPShjbGFzcyBDTWV0YWJhc2VQYXRoIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENNZXRhYmFzZVBhdGhAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nTGlzdEV4ICYgX19wdHI2NCBfX2NkZWNsIENTdHJpbmdMaXN0RXg6Om9wZXJhdG9yPShjbGFzcyBDU3RyaW5nTGlzdEV4IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENTdHJpbmdMaXN0RXhAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2FtSW50ZXJmYWNlICYgX19wdHI2NCBfX2NkZWNsIENXYW1JbnRlcmZhY2U6Om9wZXJhdG9yPShjbGFzcyBDV2FtSW50ZXJmYWNlICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENXYW1JbnRlcmZhY2VAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBpbnQgY29uc3QgIF9fY2RlY2wgQ0Vycm9yOjpvcGVyYXRvcj09KGNsYXNzIENFcnJvciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzhDRXJyb3JAQFFFQUE/QkhBRUFWMEBAWg0KKzsgcHVibGljOiBpbnQgY29uc3QgIF9fY2RlY2wgQ0Vycm9yOjpvcGVyYXRvcj09KGxvbmcpIF9fcHRyNjQNCis/PzhDRXJyb3JAQFFFQUE/QkhKQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0Jsb2I6Om9wZXJhdG9yIT0oY2xhc3MgQ0Jsb2IgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz85Q0Jsb2JAQFFFQkFIQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IGNvbnN0ICBfX2NkZWNsIENFcnJvcjo6b3BlcmF0b3IhPShjbGFzcyBDRXJyb3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz85Q0Vycm9yQEBRRUFBP0JIQUVBVjBAQFoNCis7IHB1YmxpYzogaW50IGNvbnN0ICBfX2NkZWNsIENFcnJvcjo6b3BlcmF0b3IhPShsb25nKSBfX3B0cjY0DQorPz85Q0Vycm9yQEBRRUFBP0JISkBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU3RyUGFzc3dvcmQ6Om9wZXJhdG9yIT0oY2xhc3MgQ1N0clBhc3N3b3JkICYgX19wdHI2NCkgX19wdHI2NA0KKz8/OUNTdHJQYXNzd29yZEBAUUVBQV9OQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ29tQXV0aEluZm86Om9wZXJhdG9yIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCh2b2lkKSBfX3B0cjY0DQorPz9CQ0NvbUF1dGhJbmZvQEBRRUFBUEVBR1haDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjpvcGVyYXRvciBjbGFzcyBDQ29tQXV0aEluZm8gKiBfX3B0cjY0KHZvaWQpIF9fcHRyNjQNCis/P0JDQ29tQXV0aEluZm9AQFFFQUFQRUFWMEBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENFcnJvcjo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KHZvaWQpIF9fcHRyNjQNCis/P0JDRXJyb3JAQFFFQUFQRUJHWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXJyb3I6Om9wZXJhdG9yIGludCBjb25zdCAodm9pZCljb25zdCAgX19wdHI2NA0KKz8/QkNFcnJvckBAUUVCQT9CSFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Vycm9yOjpvcGVyYXRvciBsb25nIGNvbnN0ICh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CQ0Vycm9yQEBRRUJBP0JKWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXJyb3I6Om9wZXJhdG9yIHVuc2lnbmVkIGxvbmcgY29uc3QgKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDRXJyb3JAQFFFQkE/QktYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJSVNJbnRlcmZhY2U6Om9wZXJhdG9yIGludCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CQ0lJU0ludGVyZmFjZUBAUUVCQUhYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJSVNJbnRlcmZhY2U6Om9wZXJhdG9yIGxvbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz8/QkNJSVNJbnRlcmZhY2VAQFFFQkFKWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0YUtleTo6b3BlcmF0b3IgaW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDTWV0YUtleUBAUUVCQUhYWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhS2V5OjpvcGVyYXRvciB1bnNpZ25lZCBsb25nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDTWV0YUtleUBAUUVCQUtYWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhS2V5OjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQodm9pZCljb25zdCAgX19wdHI2NA0KKz8/QkNNZXRhS2V5QEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDTWV0YWJhc2VQYXRoQEBRRUJBUEVCR1haDQorOyBjb25zdCAgQ0lJU0FwcGxpY2F0aW9uOjpgdmZ0YWJsZSd7Zm9yIGBDTWV0YUtleSd9DQorPz9fN0NJSVNBcHBsaWNhdGlvbkBANkJDTWV0YUtleUBAQA0KKzsgY29uc3QgIENJSVNBcHBsaWNhdGlvbjo6YHZmdGFibGUne2ZvciBgQ1dhbUludGVyZmFjZSd9DQorPz9fN0NJSVNBcHBsaWNhdGlvbkBANkJDV2FtSW50ZXJmYWNlQEBADQorOyBjb25zdCAgQ0lJU0ludGVyZmFjZTo6YHZmdGFibGUnDQorPz9fN0NJSVNJbnRlcmZhY2VAQDZCQA0KKzsgY29uc3QgIENJSVNTdmNDb250cm9sOjpgdmZ0YWJsZScNCis/P183Q0lJU1N2Y0NvbnRyb2xAQDZCQA0KKzsgY29uc3QgIENNZXRhQmFjazo6YHZmdGFibGUne2ZvciBgQ01ldGFJbnRlcmZhY2UnfQ0KKz8/XzdDTWV0YUJhY2tAQDZCQ01ldGFJbnRlcmZhY2VAQEANCis7IGNvbnN0ICBDTWV0YUJhY2s6OmB2ZnRhYmxlJ3tmb3IgYENXYW1JbnRlcmZhY2UnfQ0KKz8/XzdDTWV0YUJhY2tAQDZCQ1dhbUludGVyZmFjZUBAQA0KKzsgY29uc3QgIENNZXRhRW51bWVyYXRvcjo6YHZmdGFibGUnDQorPz9fN0NNZXRhRW51bWVyYXRvckBANkJADQorOyBjb25zdCAgQ01ldGFJbnRlcmZhY2U6OmB2ZnRhYmxlJw0KKz8/XzdDTWV0YUludGVyZmFjZUBANkJADQorOyBjb25zdCAgQ01ldGFLZXk6OmB2ZnRhYmxlJw0KKz8/XzdDTWV0YUtleUBANkJADQorOyBjb25zdCAgQ1dhbUludGVyZmFjZTo6YHZmdGFibGUnDQorPz9fN0NXYW1JbnRlcmZhY2VAQDZCQA0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNDb21BdXRoSW5mb0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDTWV0YWJhc2VQYXRoQEBRRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6QWRkS2V5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEtleUBDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6QWRkS2V5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRLZXlAQ01ldGFLZXlAQFFFQUFKUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpBcHBEZWxldGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9BcHBEZWxldGVAQ1dhbUludGVyZmFjZUBASUVBQUpQRUJHSEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpBcHBEZWxldGVSZWNvdmVyYWJsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0FwcERlbGV0ZVJlY292ZXJhYmxlQENXYW1JbnRlcmZhY2VAQElFQUFKUEVCR0hAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ1dhbUludGVyZmFjZTo6QXBwR2V0U3RhdHVzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBHZXRTdGF0dXNAQ1dhbUludGVyZmFjZUBASUVBQUpQRUJHUEVBS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpBcHBSZWNvdmVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/QXBwUmVjb3ZlckBDV2FtSW50ZXJmYWNlQEBJRUFBSlBFQkdIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENXYW1JbnRlcmZhY2U6OkFwcFVuTG9hZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0FwcFVuTG9hZEBDV2FtSW50ZXJmYWNlQEBJRUFBSlBFQkdIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6OkFwcGx5UHJveHlCbGFua2V0KHZvaWQpIF9fcHRyNjQNCis/QXBwbHlQcm94eUJsYW5rZXRAQ0lJU1N2Y0NvbnRyb2xAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgQ01ldGFCYWNrOjpBcHBseVByb3h5QmxhbmtldCh2b2lkKSBfX3B0cjY0DQorP0FwcGx5UHJveHlCbGFua2V0QENNZXRhQmFja0BATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6QXBwbHlQcm94eUJsYW5rZXQodm9pZCkgX19wdHI2NA0KKz9BcHBseVByb3h5QmxhbmtldEBDTWV0YUludGVyZmFjZUBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpBcHBseVByb3h5QmxhbmtldCh2b2lkKSBfX3B0cjY0DQorP0FwcGx5UHJveHlCbGFua2V0QENXYW1JbnRlcmZhY2VAQE1FQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhQmFjazo6QmFja3VwKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9CYWNrdXBAQ01ldGFCYWNrQEBRRUFBSlBFQkdAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkJhY2t1cCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0JhY2t1cEBDTWV0YUludGVyZmFjZUBASUVBQUpQRUJHS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDSUlTSW50ZXJmYWNlOjpDaGFuZ2VQcm94eUJsYW5rZXQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DaGFuZ2VQcm94eUJsYW5rZXRAQ0lJU0ludGVyZmFjZUBAVUVBQUpQRUJHMEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6Q2xvc2VLZXkodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9DbG9zZUtleUBDTWV0YUludGVyZmFjZUBASUVBQUpLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpDb3B5RGF0YSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/Q29weURhdGFAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdLMEtLS0hAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkNvcHlLZXkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz9Db3B5S2V5QENNZXRhSW50ZXJmYWNlQEBJRUFBSktQRUJHSzBISEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSUlTQXBwbGljYXRpb246OkRlbGV0ZShpbnQpIF9fcHRyNjQNCis/RGVsZXRlQENJSVNBcHBsaWNhdGlvbkBAUUVBQUpIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhQmFjazo6RGVsZXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0RlbGV0ZUBDTWV0YUJhY2tAQFFFQUFKUEVCR0tAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkRlbGV0ZUFsbERhdGEodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0RlbGV0ZUFsbERhdGFAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdLS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6RGVsZXRlQmFja3VwKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0RlbGV0ZUJhY2t1cEBDTWV0YUludGVyZmFjZUBASUVBQUpQRUJHS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6RGVsZXRlQ2hpbGRLZXlzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZUNoaWxkS2V5c0BDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6RGVsZXRlRGF0YSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RGVsZXRlRGF0YUBDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR0tLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpEZWxldGVLZXkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlS2V5QENNZXRhSW50ZXJmYWNlQEBJRUFBSktQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpEZWxldGVLZXkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZUtleUBDTWV0YUtleUBAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6RGVsZXRlUmVjb3ZlcmFibGUoaW50KSBfX3B0cjY0DQorP0RlbGV0ZVJlY292ZXJhYmxlQENJSVNBcHBsaWNhdGlvbkBAUUVBQUpIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpFbnVtQmFja3Vwcyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsc3RydWN0IF9GSUxFVElNRSAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9FbnVtQmFja3Vwc0BDTWV0YUludGVyZmFjZUBASUVBQUpQRUFHUEVBS1BFQVVfRklMRVRJTUVAQEtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkVudW1EYXRhKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBfTUVUQURBVEFfUkVDT1JEICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0VudW1EYXRhQENNZXRhSW50ZXJmYWNlQEBJRUFBSktQRUJHUEVBVV9NRVRBREFUQV9SRUNPUkRAQEtQRUFLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpFbnVtS2V5cyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9FbnVtS2V5c0BDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR1BFQUdLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0Vycm9yOjpGYWlsZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9GYWlsZWRAQ0Vycm9yQEBRRUJBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDRXJyb3I6OkZhaWxlZChsb25nKQ0KKz9GYWlsZWRAQ0Vycm9yQEBTQUhKQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpHZXRBbGxEYXRhKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0QWxsRGF0YUBDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR0tLS1BFQUsxS1BFQUUxQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpHZXRCYXNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0QmFzZUBDTWV0YUtleUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENCbG9iOjpHZXREYXRhKHZvaWQpIF9fcHRyNjQNCis/R2V0RGF0YUBDQmxvYkBAUUVBQVBFQUVYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkdldERhdGEodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IF9NRVRBREFUQV9SRUNPUkQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERhdGFAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdQRUFVX01FVEFEQVRBX1JFQ09SREBAUEVBS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6R2V0RGF0YVBhdGhzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREYXRhUGF0aHNAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdLS0tQRUFHUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTWV0YUtleTo6R2V0SGFuZGxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0SGFuZGxlQENNZXRhS2V5QEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTWV0YUVudW1lcmF0b3I6OkdldEluZGV4KHZvaWQpIF9fcHRyNjQNCis/R2V0SW5kZXhAQ01ldGFFbnVtZXJhdG9yQEBRRUFBS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpHZXRJbnN0YW5jZVBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIElJUzo6Q1N0cmluZyAmIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nICogX19wdHI2NCkNCis/R2V0SW5zdGFuY2VQYXRoQENNZXRhYmFzZVBhdGhAQFNBUEVCR1BFQkdBRUFWQ1N0cmluZ0BJSVNAQFBFQVYyM0BAWg0KKzsgcHVibGljOiBzdHJ1Y3QgSU1TQWRtaW5CYXNlVyAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6R2V0SW50ZXJmYWNlKHZvaWQpIF9fcHRyNjQNCis/R2V0SW50ZXJmYWNlQENNZXRhSW50ZXJmYWNlQEBRRUFBUEVBVUlNU0FkbWluQmFzZVdAQFhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6R2V0TGFzdENoYW5nZVRpbWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IF9GSUxFVElNRSAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldExhc3RDaGFuZ2VUaW1lQENNZXRhSW50ZXJmYWNlQEBJRUFBSktQRUJHUEVBVV9GSUxFVElNRUBASEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRXJyb3I6OkdldExhc3RXaW5FcnJvcih2b2lkKSBfX3B0cjY0DQorP0dldExhc3RXaW5FcnJvckBDRXJyb3JAQFFFQUFYWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OkdldE1hY2hpbmVQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBJSVM6OkNTdHJpbmcgJiBfX3B0cjY0LGNsYXNzIElJUzo6Q1N0cmluZyAqIF9fcHRyNjQpDQorP0dldE1hY2hpbmVQYXRoQENNZXRhYmFzZVBhdGhAQFNBUEVCR1BFQkdBRUFWQ1N0cmluZ0BJSVNAQFBFQVYyM0BAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6R2V0Um9vdFBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIElJUzo6Q1N0cmluZyAmIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nICogX19wdHI2NCkNCis/R2V0Um9vdFBhdGhAQ01ldGFiYXNlUGF0aEBAU0FQRUJHUEVCR0FFQVZDU3RyaW5nQElJU0BAUEVBVjIzQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpHZXRTZXJ2aWNlUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCxjbGFzcyBJSVM6OkNTdHJpbmcgKiBfX3B0cjY0KQ0KKz9HZXRTZXJ2aWNlUGF0aEBDTWV0YWJhc2VQYXRoQEBTQVBFQkdQRUJHQUVBVkNTdHJpbmdASUlTQEBQRUFWMjNAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENCbG9iOjpHZXRTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U2l6ZUBDQmxvYkBAUUVCQUtYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0Vycm9yOjpIUmVzdWx0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SFJlc3VsdEBDRXJyb3JAQFFFQkFKWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDRXJyb3I6OkhSZXN1bHQobG9uZykNCis/SFJlc3VsdEBDRXJyb3JAQFNBSkpAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDSUlTU3ZjQ29udHJvbDo6SGFzSW50ZXJmYWNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SGFzSW50ZXJmYWNlQENJSVNTdmNDb250cm9sQEBJRUJBSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpIYXNJbnRlcmZhY2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9IYXNJbnRlcmZhY2VAQ01ldGFJbnRlcmZhY2VAQElFQkFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ1dhbUludGVyZmFjZTo6SGFzSW50ZXJmYWNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SGFzSW50ZXJmYWNlQENXYW1JbnRlcmZhY2VAQElFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0Jsb2I6OklzRW1wdHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0VtcHR5QENCbG9iQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6SXNFbmFibGVkQXBwbGljYXRpb24odm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0VuYWJsZWRBcHBsaWNhdGlvbkBDSUlTQXBwbGljYXRpb25AQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ01ldGFLZXk6OklzSG9tZURpcmVjdG9yeVBhdGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0hvbWVEaXJlY3RvcnlQYXRoQENNZXRhS2V5QEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OklzSG9tZURpcmVjdG9yeVBhdGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0hvbWVEaXJlY3RvcnlQYXRoQENNZXRhYmFzZVBhdGhAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpJc0lucHJvYyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzSW5wcm9jQENJSVNBcHBsaWNhdGlvbkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ29tQXV0aEluZm86OklzTG9jYWwodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0xvY2FsQENDb21BdXRoSW5mb0BAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSUlTSW50ZXJmYWNlOjpJc0xvY2FsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNMb2NhbEBDSUlTSW50ZXJmYWNlQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENNZXRhS2V5OjpJc09wZW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc09wZW5AQ01ldGFLZXlAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpJc091dE9mUHJvYyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzT3V0T2ZQcm9jQENJSVNBcHBsaWNhdGlvbkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSUlTQXBwbGljYXRpb246OklzUG9vbGVkUHJvYyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUG9vbGVkUHJvY0BDSUlTQXBwbGljYXRpb25AQFFFQkFIWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNTdmNDb250cm9sOjpLaWxsKHZvaWQpIF9fcHRyNjQNCis/S2lsbEBDSUlTU3ZjQ29udHJvbEBAUUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFCYWNrOjpOZXh0KHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxzdHJ1Y3QgX0ZJTEVUSU1FICogX19wdHI2NCkgX19wdHI2NA0KKz9OZXh0QENNZXRhQmFja0BAUUVBQUpQRUFLUEVBR1BFQVVfRklMRVRJTUVAQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6T3BlbktleSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP09wZW5LZXlAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdLUEVBS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTWV0YUVudW1lcmF0b3I6OlBvcCh2b2lkKSBfX3B0cjY0DQorP1BvcEBDTWV0YUVudW1lcmF0b3JAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNZXRhRW51bWVyYXRvcjo6UHVzaCh2b2lkKSBfX3B0cjY0DQorP1B1c2hAQ01ldGFFbnVtZXJhdG9yQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSUlTQXBwbGljYXRpb246OlF1ZXJ5QXBwU3RhdGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUFwcFN0YXRlQENJSVNBcHBsaWNhdGlvbkBAUUVCQUtYWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tQXV0aEluZm8gKiBfX3B0cjY0IF9fY2RlY2wgQ0lJU0ludGVyZmFjZTo6UXVlcnlBdXRoSW5mbyh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5QXV0aEluZm9AQ0lJU0ludGVyZmFjZUBAUUVBQVBFQVZDQ29tQXV0aEluZm9AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTWV0YUtleTo6UXVlcnlGbGFncyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RmxhZ3NAQ01ldGFLZXlAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ01ldGFLZXk6OlF1ZXJ5TWV0YVBhdGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1ldGFQYXRoQENNZXRhS2V5QEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OlF1ZXJ5TWV0YVBhdGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1ldGFQYXRoQENNZXRhYmFzZVBhdGhAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjpRdWVyeVBhc3N3b3JkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQYXNzd29yZEBDQ29tQXV0aEluZm9AQFFFQkFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0lJU0ludGVyZmFjZTo6UXVlcnlSZXN1bHQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVJlc3VsdEBDSUlTSW50ZXJmYWNlQEBVRUJBSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENDb21BdXRoSW5mbzo6UXVlcnlTZXJ2ZXJOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZXJ2ZXJOYW1lQENDb21BdXRoSW5mb0BAUUVCQVBFQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSUlTSW50ZXJmYWNlOjpRdWVyeVNlcnZlck5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNlcnZlck5hbWVAQ0lJU0ludGVyZmFjZUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDQ29tQXV0aEluZm86OlF1ZXJ5VXNlck5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVVzZXJOYW1lQENDb21BdXRoSW5mb0BAUUVCQVBFQUdYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlF1ZXJ5VmFsdWUodW5zaWduZWQgbG9uZyxpbnQgJiBfX3B0cjY0LGludCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5VmFsdWVAQ01ldGFLZXlAQFFFQUFKS0FFQUhQRUFIUEVCR1BFQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSUlTQXBwbGljYXRpb246OlF1ZXJ5V2FtUGF0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5V2FtUGF0aEBDSUlTQXBwbGljYXRpb25AQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpSZU9wZW4odW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZU9wZW5AQ01ldGFLZXlAQFFFQUFKS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6UmVPcGVuKHZvaWQpIF9fcHRyNjQNCis/UmVPcGVuQENNZXRhS2V5QEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSUlTU3ZjQ29udHJvbDo6UmVib290KHVuc2lnbmVkIGxvbmcsaW50KSBfX3B0cjY0DQorP1JlYm9vdEBDSUlTU3ZjQ29udHJvbEBAUUVBQUpLSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSUlTQXBwbGljYXRpb246OlJlY292ZXIoaW50KSBfX3B0cjY0DQorP1JlY292ZXJAQ0lJU0FwcGxpY2F0aW9uQEBRRUFBSkhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Vycm9yOjpSZW1vdmVPdmVycmlkZShsb25nKSBfX3B0cjY0DQorP1JlbW92ZU92ZXJyaWRlQENFcnJvckBAUUVBQVhKQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpSZW5hbWVLZXkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbmFtZUtleUBDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCRzBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlJlbmFtZUtleSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbmFtZUtleUBDTWV0YUtleUBAUUVBQUpQRUJHMEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRXJyb3I6OlJlc2V0KHZvaWQpIF9fcHRyNjQNCis/UmVzZXRAQ0Vycm9yQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTWV0YUJhY2s6OlJlc2V0KHZvaWQpIF9fcHRyNjQNCis/UmVzZXRAQ01ldGFCYWNrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTWV0YUVudW1lcmF0b3I6OlJlc2V0KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVzZXRAQ01ldGFFbnVtZXJhdG9yQEBRRUFBWEtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OlJlc3RvcmUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZXN0b3JlQENNZXRhSW50ZXJmYWNlQEBJRUFBSlBFQkdLS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6U2F2ZURhdGEodm9pZCkgX19wdHI2NA0KKz9TYXZlRGF0YUBDTWV0YUludGVyZmFjZUBAUUVBQUpYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OlNldERhdGEodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IF9NRVRBREFUQV9SRUNPUkQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERhdGFAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdQRUFVX01FVEFEQVRBX1JFQ09SREBAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpTZXRMYXN0Q2hhbmdlVGltZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgX0ZJTEVUSU1FICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/U2V0TGFzdENoYW5nZVRpbWVAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdQRUFVX0ZJTEVUSU1FQEBIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENFcnJvcjo6U2V0TGFzdFdpbkVycm9yKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U2V0TGFzdFdpbkVycm9yQENFcnJvckBAUUVCQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlNldFZhbHVlKHVuc2lnbmVkIGxvbmcsY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCxpbnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWYWx1ZUBDTWV0YUtleUBAUUVBQUpLQUVBVkNTdHJpbmdASUlTQEBQRUFIUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6U2V0VmFsdWUodW5zaWduZWQgbG9uZyxpbnQsaW50ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VmFsdWVAQ01ldGFLZXlAQFFFQUFKS0hQRUFIUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6U2V0VmFsdWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFZhbHVlQENNZXRhS2V5QEBRRUFBSktLUEVBSFBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6OlN0YXJ0KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U3RhcnRAQ0lJU1N2Y0NvbnRyb2xAQFFFQUFKS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSUlTU3ZjQ29udHJvbDo6U3RhdHVzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U3RhdHVzQENJSVNTdmNDb250cm9sQEBRRUFBSktQRUFFUEVBSzFAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6OlN0b3AodW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/U3RvcEBDSUlTU3ZjQ29udHJvbEBAUUVBQUpLSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29tQXV0aEluZm86OlN0b3JlUGFzc3dvcmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1N0b3JlUGFzc3dvcmRAQ0NvbUF1dGhJbmZvQEBRRUFBWFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRXJyb3I6OlN1Y2NlZWRlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1N1Y2NlZWRlZEBDRXJyb3JAQFFFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENFcnJvcjo6U3VjY2VlZGVkKGxvbmcpDQorP1N1Y2NlZWRlZEBDRXJyb3JAQFNBSEpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENJSVNJbnRlcmZhY2U6OlN1Y2NlZWRlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1N1Y2NlZWRlZEBDSUlTSW50ZXJmYWNlQEBVRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXYW1JbnRlcmZhY2U6OlN1cHBvcnRzUG9vbGVkUHJvYyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1N1cHBvcnRzUG9vbGVkUHJvY0BDV2FtSW50ZXJmYWNlQEBRRUJBSFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSUlTQXBwbGljYXRpb246OlVubG9hZChpbnQpIF9fcHRyNjQNCis/VW5sb2FkQENJSVNBcHBsaWNhdGlvbkBAUUVBQUpIQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDRXJyb3I6OlVucmVnaXN0ZXJGYWNpbGl0eSh1bnNpZ25lZCBsb25nKQ0KKz9VbnJlZ2lzdGVyRmFjaWxpdHlAQ0Vycm9yQEBTQVhLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjpVc2VzSW1wZXJzb25hdGlvbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1VzZXNJbXBlcnNvbmF0aW9uQENDb21BdXRoSW5mb0BAUUVCQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0Vycm9yOjpXaW4zMkVycm9yKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/V2luMzJFcnJvckBDRXJyb3JAQFFFQkFLWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRXJyb3I6OldpbjMyRXJyb3IobG9uZykNCis/V2luMzJFcnJvckBDRXJyb3JAQFNBS0pAWg0KKzsgcHJvdGVjdGVkOiBzdHJ1Y3Qgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Ol9Ob2RlICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpfQnV5bm9kZShzdHJ1Y3Qgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Ol9Ob2RlICogX19wdHI2NCxzdHJ1Y3Qgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Ol9Ob2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9fQnV5bm9kZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBJRUFBUEVBVV9Ob2RlQDEyQFBFQVUzMTJAMEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6X0ZyZWVub2RlKHN0cnVjdCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6X05vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP19GcmVlbm9kZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBJRUFBWFBFQVVfTm9kZUAxMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Ol9TcGxpY2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yLGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+ICYgX19wdHI2NCxjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yKSBfX3B0cjY0DQorP19TcGxpY2VAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBASUVBQVhWaXRlcmF0b3JAMTJAQUVBVjEyQDAwQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpfWHJhbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP19YcmFuQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQElFQkFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojphc3NpZ24oY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmNvbnN0X2l0ZXJhdG9yLGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpjb25zdF9pdGVyYXRvcikgX19wdHI2NA0KKz9hc3NpZ25APyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhWY29uc3RfaXRlcmF0b3JAMTJAMEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6YXNzaWduKHVuc2lnbmVkIF9faW50NjQsY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9hc3NpZ25APyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhfS0FFQlZDU3RyaW5nQElJU0BAQFoNCis7IHB1YmxpYzogY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpiYWNrKHZvaWQpIF9fcHRyNjQNCis/YmFja0A/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBQUVBVkNTdHJpbmdASUlTQEBYWg0KKzsgcHVibGljOiBjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmJhY2sodm9pZCljb25zdCAgX19wdHI2NA0KKz9iYWNrQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQkFBRUJWQ1N0cmluZ0BJSVNAQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvciAgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6YmVnaW4odm9pZCkgX19wdHI2NA0KKz9iZWdpbkA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBP0FWaXRlcmF0b3JAMTJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmNvbnN0X2l0ZXJhdG9yICBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpiZWdpbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2JlZ2luQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQkE/QVZjb25zdF9pdGVyYXRvckAxMkBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmNsZWFyKHZvaWQpIF9fcHRyNjQNCis/Y2xlYXJAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmVtcHR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZW1wdHlAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVCQV9OWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yICBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjplbmQodm9pZCkgX19wdHI2NA0KKz9lbmRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQT9BVml0ZXJhdG9yQDEyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpjb25zdF9pdGVyYXRvciAgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6ZW5kKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZW5kQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQkE/QVZjb25zdF9pdGVyYXRvckAxMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IgIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmVyYXNlKGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IpIF9fcHRyNjQNCis/ZXJhc2VAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQT9BVml0ZXJhdG9yQDEyQFYzMTJAMEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvciAgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6ZXJhc2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yKSBfX3B0cjY0DQorP2VyYXNlQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUE/QVZpdGVyYXRvckAxMkBWMzEyQEBaDQorOyBwdWJsaWM6IGNsYXNzIElJUzo6Q1N0cmluZyAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6ZnJvbnQodm9pZCkgX19wdHI2NA0KKz9mcm9udEA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBQUVBVkNTdHJpbmdASUlTQEBYWg0KKzsgcHVibGljOiBjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmZyb250KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZnJvbnRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVCQUFFQlZDU3RyaW5nQElJU0BAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiAgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6Z2V0X2FsbG9jYXRvcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2dldF9hbGxvY2F0b3JAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVCQT9BVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yICBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppbnNlcnQoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yLGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/aW5zZXJ0QD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUE/QVZpdGVyYXRvckAxMkBWMzEyQEFFQlZDU3RyaW5nQElJU0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppbnNlcnQoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yLGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAqIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9pbnNlcnRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhWaXRlcmF0b3JAMTJAUEVCVkNTdHJpbmdASUlTQEAxQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppbnNlcnQoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yLGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpjb25zdF9pdGVyYXRvcixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6Y29uc3RfaXRlcmF0b3IpIF9fcHRyNjQNCis/aW5zZXJ0QD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYVml0ZXJhdG9yQDEyQFZjb25zdF9pdGVyYXRvckAxMkAxQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppbnNlcnQoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yLHVuc2lnbmVkIF9faW50NjQsY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9pbnNlcnRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhWaXRlcmF0b3JAMTJAX0tBRUJWQ1N0cmluZ0BJSVNAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6bWF4X3NpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9tYXhfc2l6ZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUJBX0tYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Om1lcmdlKGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+ICYgX19wdHI2NCkgX19wdHI2NA0KKz9tZXJnZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWEFFQVYxMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Om1lcmdlKGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+ICYgX19wdHI2NCxzdHJ1Y3Qgc3RkOjpncmVhdGVyPGNsYXNzIElJUzo6Q1N0cmluZz4pIF9fcHRyNjQNCis/bWVyZ2VAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhBRUFWMTJAVT8kZ3JlYXRlckBWQ1N0cmluZ0BJSVNAQEAyQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6cG9wX2JhY2sodm9pZCkgX19wdHI2NA0KKz9wb3BfYmFja0A/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6cG9wX2Zyb250KHZvaWQpIF9fcHRyNjQNCis/cG9wX2Zyb250QD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpwdXNoX2JhY2soY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9wdXNoX2JhY2tAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhBRUJWQ1N0cmluZ0BJSVNAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6cHVzaF9mcm9udChjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP3B1c2hfZnJvbnRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhBRUJWQ1N0cmluZ0BJSVNAQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6cmV2ZXJzZV9iaWRpcmVjdGlvbmFsX2l0ZXJhdG9yPGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcixjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCxjbGFzcyBJSVM6OkNTdHJpbmcgKiBfX3B0cjY0LF9faW50NjQ+ICBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpyYmVnaW4odm9pZCkgX19wdHI2NA0KKz9yYmVnaW5APyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQT9BVj8kcmV2ZXJzZV9iaWRpcmVjdGlvbmFsX2l0ZXJhdG9yQFZpdGVyYXRvckA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBWQ1N0cmluZ0BJSVNAQEFFQVY0NUBQRUFWNDVAX0pAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfYmlkaXJlY3Rpb25hbF9pdGVyYXRvcjxjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6Y29uc3RfaXRlcmF0b3IsY2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICogX19wdHI2NCxfX2ludDY0PiAgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6cmJlZ2luKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmJlZ2luQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JHJldmVyc2VfYmlkaXJlY3Rpb25hbF9pdGVyYXRvckBWY29uc3RfaXRlcmF0b3JAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAVkNTdHJpbmdASUlTQEBBRUJWNDVAUEVCVjQ1QF9KQDJAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpyZW1vdmUoY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9yZW1vdmVAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhBRUJWQ1N0cmluZ0BJSVNAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6cmVtb3ZlX2lmKGNsYXNzIHN0ZDo6YmluZGVyMm5kPHN0cnVjdCBzdGQ6Om5vdF9lcXVhbF90bzxjbGFzcyBJSVM6OkNTdHJpbmc+ID4pIF9fcHRyNjQNCis/cmVtb3ZlX2lmQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYVj8kYmluZGVyMm5kQFU/JG5vdF9lcXVhbF90b0BWQ1N0cmluZ0BJSVNAQEBzdGRAQEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6cmV2ZXJzZV9iaWRpcmVjdGlvbmFsX2l0ZXJhdG9yPGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcixjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCxjbGFzcyBJSVM6OkNTdHJpbmcgKiBfX3B0cjY0LF9faW50NjQ+ICBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpyZW5kKHZvaWQpIF9fcHRyNjQNCis/cmVuZEA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBP0FWPyRyZXZlcnNlX2JpZGlyZWN0aW9uYWxfaXRlcmF0b3JAVml0ZXJhdG9yQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFZDU3RyaW5nQElJU0BAQUVBVjQ1QFBFQVY0NUBfSkAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6cmV2ZXJzZV9iaWRpcmVjdGlvbmFsX2l0ZXJhdG9yPGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpjb25zdF9pdGVyYXRvcixjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgKiBfX3B0cjY0LF9faW50NjQ+ICBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpyZW5kKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmVuZEA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRyZXZlcnNlX2JpZGlyZWN0aW9uYWxfaXRlcmF0b3JAVmNvbnN0X2l0ZXJhdG9yQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFZDU3RyaW5nQElJU0BAQUVCVjQ1QFBFQlY0NUBfSkAyQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6cmVzaXplKHVuc2lnbmVkIF9faW50NjQsY2xhc3MgSUlTOjpDU3RyaW5nKSBfX3B0cjY0DQorP3Jlc2l6ZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWF9LVkNTdHJpbmdASUlTQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnJldmVyc2Uodm9pZCkgX19wdHI2NA0KKz9yZXZlcnNlQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpzaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/c2l6ZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUJBX0tYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnNvcnQoc3RydWN0IHN0ZDo6Z3JlYXRlcjxjbGFzcyBJSVM6OkNTdHJpbmc+KSBfX3B0cjY0DQorP3NvcnRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhVPyRncmVhdGVyQFZDU3RyaW5nQElJU0BAQDJAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpzb3J0KHZvaWQpIF9fcHRyNjQNCis/c29ydEA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6c3BsaWNlKGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yLGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcikgX19wdHI2NA0KKz9zcGxpY2VAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhWaXRlcmF0b3JAMTJAQUVBVjEyQDAwQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpzcGxpY2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yLGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+ICYgX19wdHI2NCxjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IpIF9fcHRyNjQNCis/c3BsaWNlQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYVml0ZXJhdG9yQDEyQEFFQVYxMkAwQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpzcGxpY2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yLGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+ICYgX19wdHI2NCkgX19wdHI2NA0KKz9zcGxpY2VAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhWaXRlcmF0b3JAMTJAQUVBVjEyQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6c3dhcChjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/c3dhcEA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWEFFQVYxMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnVuaXF1ZShzdHJ1Y3Qgc3RkOjpub3RfZXF1YWxfdG88Y2xhc3MgSUlTOjpDU3RyaW5nPikgX19wdHI2NA0KKz91bmlxdWVAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhVPyRub3RfZXF1YWxfdG9AVkNTdHJpbmdASUlTQEBAMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnVuaXF1ZSh2b2lkKSBfX3B0cjY0DQorP3VuaXF1ZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWFhaDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jZmdia2VuZC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jZmdia2VuZC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDA5ZTJiNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NmZ2JrZW5kLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENmZ0JrRW5kLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDZmdCa0VuZC5ETEwNCitFWFBPUlRTDQorQ0xTSURfQ2ZnQ29tcA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorSUlEX0lDZmdDb21wDQorSUlEX0lTZXR0aW5nc0NvbXANCitJSURfSVNldHRpbmdzQ29tcDINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jZmdtZ3IzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jZmdtZ3IzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmQ3YWIxMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NmZ21ncjMyLmRlZgpAQCAtMCwwICsxLDIwNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDRkdNR1IzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ0ZHTUdSMzIuZGxsDQorRVhQT1JUUw0KK0NNUF9Jbml0X0RldGVjdGlvbg0KK0NNUF9SZWdpc3Rlck5vdGlmaWNhdGlvbg0KK0NNUF9SZXBvcnRfTG9nT24NCitDTVBfVW5yZWdpc3Rlck5vdGlmaWNhdGlvbg0KK0NNUF9XYWl0Tm9QZW5kaW5nSW5zdGFsbEV2ZW50cw0KK0NNUF9XYWl0U2VydmljZXNBdmFpbGFibGUNCitDTV9BZGRfRW1wdHlfTG9nX0NvbmYNCitDTV9BZGRfRW1wdHlfTG9nX0NvbmZfRXgNCitDTV9BZGRfSURBDQorQ01fQWRkX0lEVw0KK0NNX0FkZF9JRF9FeEENCitDTV9BZGRfSURfRXhXDQorQ01fQWRkX1JhbmdlDQorQ01fQWRkX1Jlc19EZXMNCitDTV9BZGRfUmVzX0Rlc19FeA0KK0NNX0Nvbm5lY3RfTWFjaGluZUENCitDTV9Db25uZWN0X01hY2hpbmVXDQorQ01fQ3JlYXRlX0Rldk5vZGVBDQorQ01fQ3JlYXRlX0Rldk5vZGVXDQorQ01fQ3JlYXRlX0Rldk5vZGVfRXhBDQorQ01fQ3JlYXRlX0Rldk5vZGVfRXhXDQorQ01fQ3JlYXRlX1JhbmdlX0xpc3QNCitDTV9EZWxldGVfQ2xhc3NfS2V5DQorQ01fRGVsZXRlX0NsYXNzX0tleV9FeA0KK0NNX0RlbGV0ZV9EZXZOb2RlX0tleQ0KK0NNX0RlbGV0ZV9EZXZOb2RlX0tleV9FeA0KK0NNX0RlbGV0ZV9SYW5nZQ0KK0NNX0RldGVjdF9SZXNvdXJjZV9Db25mbGljdA0KK0NNX0RldGVjdF9SZXNvdXJjZV9Db25mbGljdF9FeA0KK0NNX0Rpc2FibGVfRGV2Tm9kZQ0KK0NNX0Rpc2FibGVfRGV2Tm9kZV9FeA0KK0NNX0Rpc2Nvbm5lY3RfTWFjaGluZQ0KK0NNX0R1cF9SYW5nZV9MaXN0DQorQ01fRW5hYmxlX0Rldk5vZGUNCitDTV9FbmFibGVfRGV2Tm9kZV9FeA0KK0NNX0VudW1lcmF0ZV9DbGFzc2VzDQorQ01fRW51bWVyYXRlX0NsYXNzZXNfRXgNCitDTV9FbnVtZXJhdGVfRW51bWVyYXRvcnNBDQorQ01fRW51bWVyYXRlX0VudW1lcmF0b3JzVw0KK0NNX0VudW1lcmF0ZV9FbnVtZXJhdG9yc19FeEENCitDTV9FbnVtZXJhdGVfRW51bWVyYXRvcnNfRXhXDQorQ01fRmluZF9SYW5nZQ0KK0NNX0ZpcnN0X1JhbmdlDQorQ01fRnJlZV9Mb2dfQ29uZg0KK0NNX0ZyZWVfTG9nX0NvbmZfRXgNCitDTV9GcmVlX0xvZ19Db25mX0hhbmRsZQ0KK0NNX0ZyZWVfUmFuZ2VfTGlzdA0KK0NNX0ZyZWVfUmVzX0Rlcw0KK0NNX0ZyZWVfUmVzX0Rlc19FeA0KK0NNX0ZyZWVfUmVzX0Rlc19IYW5kbGUNCitDTV9GcmVlX1Jlc291cmNlX0NvbmZsaWN0X0hhbmRsZQ0KK0NNX0dldF9DaGlsZA0KK0NNX0dldF9DaGlsZF9FeA0KK0NNX0dldF9DbGFzc19LZXlfTmFtZUENCitDTV9HZXRfQ2xhc3NfS2V5X05hbWVXDQorQ01fR2V0X0NsYXNzX0tleV9OYW1lX0V4QQ0KK0NNX0dldF9DbGFzc19LZXlfTmFtZV9FeFcNCitDTV9HZXRfQ2xhc3NfTmFtZUENCitDTV9HZXRfQ2xhc3NfTmFtZVcNCitDTV9HZXRfQ2xhc3NfTmFtZV9FeEENCitDTV9HZXRfQ2xhc3NfTmFtZV9FeFcNCitDTV9HZXRfQ2xhc3NfUmVnaXN0cnlfUHJvcGVydHlBDQorQ01fR2V0X0NsYXNzX1JlZ2lzdHJ5X1Byb3BlcnR5Vw0KK0NNX0dldF9EZXB0aA0KK0NNX0dldF9EZXB0aF9FeA0KK0NNX0dldF9EZXZOb2RlX1JlZ2lzdHJ5X1Byb3BlcnR5QQ0KK0NNX0dldF9EZXZOb2RlX1JlZ2lzdHJ5X1Byb3BlcnR5Vw0KK0NNX0dldF9EZXZOb2RlX1JlZ2lzdHJ5X1Byb3BlcnR5X0V4QQ0KK0NNX0dldF9EZXZOb2RlX1JlZ2lzdHJ5X1Byb3BlcnR5X0V4Vw0KK0NNX0dldF9EZXZOb2RlX1N0YXR1cw0KK0NNX0dldF9EZXZOb2RlX1N0YXR1c19FeA0KK0NNX0dldF9EZXZpY2VfSURBDQorQ01fR2V0X0RldmljZV9JRFcNCitDTV9HZXRfRGV2aWNlX0lEX0V4QQ0KK0NNX0dldF9EZXZpY2VfSURfRXhXDQorQ01fR2V0X0RldmljZV9JRF9MaXN0QQ0KK0NNX0dldF9EZXZpY2VfSURfTGlzdFcNCitDTV9HZXRfRGV2aWNlX0lEX0xpc3RfRXhBDQorQ01fR2V0X0RldmljZV9JRF9MaXN0X0V4Vw0KK0NNX0dldF9EZXZpY2VfSURfTGlzdF9TaXplQQ0KK0NNX0dldF9EZXZpY2VfSURfTGlzdF9TaXplVw0KK0NNX0dldF9EZXZpY2VfSURfTGlzdF9TaXplX0V4QQ0KK0NNX0dldF9EZXZpY2VfSURfTGlzdF9TaXplX0V4Vw0KK0NNX0dldF9EZXZpY2VfSURfU2l6ZQ0KK0NNX0dldF9EZXZpY2VfSURfU2l6ZV9FeA0KK0NNX0dldF9EZXZpY2VfSW50ZXJmYWNlX0FsaWFzQQ0KK0NNX0dldF9EZXZpY2VfSW50ZXJmYWNlX0FsaWFzVw0KK0NNX0dldF9EZXZpY2VfSW50ZXJmYWNlX0FsaWFzX0V4QQ0KK0NNX0dldF9EZXZpY2VfSW50ZXJmYWNlX0FsaWFzX0V4Vw0KK0NNX0dldF9EZXZpY2VfSW50ZXJmYWNlX0xpc3RBDQorQ01fR2V0X0RldmljZV9JbnRlcmZhY2VfTGlzdFcNCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9MaXN0X0V4QQ0KK0NNX0dldF9EZXZpY2VfSW50ZXJmYWNlX0xpc3RfRXhXDQorQ01fR2V0X0RldmljZV9JbnRlcmZhY2VfTGlzdF9TaXplQQ0KK0NNX0dldF9EZXZpY2VfSW50ZXJmYWNlX0xpc3RfU2l6ZVcNCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9MaXN0X1NpemVfRXhBDQorQ01fR2V0X0RldmljZV9JbnRlcmZhY2VfTGlzdF9TaXplX0V4Vw0KK0NNX0dldF9GaXJzdF9Mb2dfQ29uZg0KK0NNX0dldF9GaXJzdF9Mb2dfQ29uZl9FeA0KK0NNX0dldF9HbG9iYWxfU3RhdGUNCitDTV9HZXRfR2xvYmFsX1N0YXRlX0V4DQorQ01fR2V0X0hXX1Byb2ZfRmxhZ3NBDQorQ01fR2V0X0hXX1Byb2ZfRmxhZ3NXDQorQ01fR2V0X0hXX1Byb2ZfRmxhZ3NfRXhBDQorQ01fR2V0X0hXX1Byb2ZfRmxhZ3NfRXhXDQorQ01fR2V0X0hhcmR3YXJlX1Byb2ZpbGVfSW5mb0ENCitDTV9HZXRfSGFyZHdhcmVfUHJvZmlsZV9JbmZvVw0KK0NNX0dldF9IYXJkd2FyZV9Qcm9maWxlX0luZm9fRXhBDQorQ01fR2V0X0hhcmR3YXJlX1Byb2ZpbGVfSW5mb19FeFcNCitDTV9HZXRfTG9nX0NvbmZfUHJpb3JpdHkNCitDTV9HZXRfTG9nX0NvbmZfUHJpb3JpdHlfRXgNCitDTV9HZXRfTmV4dF9Mb2dfQ29uZg0KK0NNX0dldF9OZXh0X0xvZ19Db25mX0V4DQorQ01fR2V0X05leHRfUmVzX0Rlcw0KK0NNX0dldF9OZXh0X1Jlc19EZXNfRXgNCitDTV9HZXRfUGFyZW50DQorQ01fR2V0X1BhcmVudF9FeA0KK0NNX0dldF9SZXNfRGVzX0RhdGENCitDTV9HZXRfUmVzX0Rlc19EYXRhX0V4DQorQ01fR2V0X1Jlc19EZXNfRGF0YV9TaXplDQorQ01fR2V0X1Jlc19EZXNfRGF0YV9TaXplX0V4DQorQ01fR2V0X1Jlc291cmNlX0NvbmZsaWN0X0NvdW50DQorQ01fR2V0X1Jlc291cmNlX0NvbmZsaWN0X0RldGFpbHNBDQorQ01fR2V0X1Jlc291cmNlX0NvbmZsaWN0X0RldGFpbHNXDQorQ01fR2V0X1NpYmxpbmcNCitDTV9HZXRfU2libGluZ19FeA0KK0NNX0dldF9WZXJzaW9uDQorQ01fR2V0X1ZlcnNpb25fRXgNCitDTV9JbnRlcnNlY3RfUmFuZ2VfTGlzdA0KK0NNX0ludmVydF9SYW5nZV9MaXN0DQorQ01fSXNfRG9ja19TdGF0aW9uX1ByZXNlbnQNCitDTV9Jc19Eb2NrX1N0YXRpb25fUHJlc2VudF9FeA0KK0NNX0xvY2F0ZV9EZXZOb2RlQQ0KK0NNX0xvY2F0ZV9EZXZOb2RlVw0KK0NNX0xvY2F0ZV9EZXZOb2RlX0V4QQ0KK0NNX0xvY2F0ZV9EZXZOb2RlX0V4Vw0KK0NNX01lcmdlX1JhbmdlX0xpc3QNCitDTV9Nb2RpZnlfUmVzX0Rlcw0KK0NNX01vZGlmeV9SZXNfRGVzX0V4DQorQ01fTW92ZV9EZXZOb2RlDQorQ01fTW92ZV9EZXZOb2RlX0V4DQorQ01fTmV4dF9SYW5nZQ0KK0NNX09wZW5fQ2xhc3NfS2V5QQ0KK0NNX09wZW5fQ2xhc3NfS2V5Vw0KK0NNX09wZW5fQ2xhc3NfS2V5X0V4QQ0KK0NNX09wZW5fQ2xhc3NfS2V5X0V4Vw0KK0NNX09wZW5fRGV2Tm9kZV9LZXkNCitDTV9PcGVuX0Rldk5vZGVfS2V5X0V4DQorQ01fUXVlcnlfQW5kX1JlbW92ZV9TdWJUcmVlQQ0KK0NNX1F1ZXJ5X0FuZF9SZW1vdmVfU3ViVHJlZVcNCitDTV9RdWVyeV9BbmRfUmVtb3ZlX1N1YlRyZWVfRXhBDQorQ01fUXVlcnlfQW5kX1JlbW92ZV9TdWJUcmVlX0V4Vw0KK0NNX1F1ZXJ5X0FyYml0cmF0b3JfRnJlZV9EYXRhDQorQ01fUXVlcnlfQXJiaXRyYXRvcl9GcmVlX0RhdGFfRXgNCitDTV9RdWVyeV9BcmJpdHJhdG9yX0ZyZWVfU2l6ZQ0KK0NNX1F1ZXJ5X0FyYml0cmF0b3JfRnJlZV9TaXplX0V4DQorQ01fUXVlcnlfUmVtb3ZlX1N1YlRyZWUNCitDTV9RdWVyeV9SZW1vdmVfU3ViVHJlZV9FeA0KK0NNX1F1ZXJ5X1Jlc291cmNlX0NvbmZsaWN0X0xpc3QNCitDTV9SZWVudW1lcmF0ZV9EZXZOb2RlDQorQ01fUmVlbnVtZXJhdGVfRGV2Tm9kZV9FeA0KK0NNX1JlZ2lzdGVyX0RldmljZV9Ecml2ZXINCitDTV9SZWdpc3Rlcl9EZXZpY2VfRHJpdmVyX0V4DQorQ01fUmVnaXN0ZXJfRGV2aWNlX0ludGVyZmFjZUENCitDTV9SZWdpc3Rlcl9EZXZpY2VfSW50ZXJmYWNlVw0KK0NNX1JlZ2lzdGVyX0RldmljZV9JbnRlcmZhY2VfRXhBDQorQ01fUmVnaXN0ZXJfRGV2aWNlX0ludGVyZmFjZV9FeFcNCitDTV9SZW1vdmVfU3ViVHJlZQ0KK0NNX1JlbW92ZV9TdWJUcmVlX0V4DQorQ01fUmVxdWVzdF9FamVjdF9QQw0KK0NNX1JlcXVlc3RfRWplY3RfUENfRXgNCitDTV9SdW5fRGV0ZWN0aW9uDQorQ01fUnVuX0RldGVjdGlvbl9FeA0KK0NNX1NldF9DbGFzc19SZWdpc3RyeV9Qcm9wZXJ0eUENCitDTV9TZXRfQ2xhc3NfUmVnaXN0cnlfUHJvcGVydHlXDQorQ01fU2V0X0Rldk5vZGVfUHJvYmxlbQ0KK0NNX1NldF9EZXZOb2RlX1Byb2JsZW1fRXgNCitDTV9TZXRfRGV2Tm9kZV9SZWdpc3RyeV9Qcm9wZXJ0eUENCitDTV9TZXRfRGV2Tm9kZV9SZWdpc3RyeV9Qcm9wZXJ0eVcNCitDTV9TZXRfRGV2Tm9kZV9SZWdpc3RyeV9Qcm9wZXJ0eV9FeEENCitDTV9TZXRfRGV2Tm9kZV9SZWdpc3RyeV9Qcm9wZXJ0eV9FeFcNCitDTV9TZXRfSFdfUHJvZg0KK0NNX1NldF9IV19Qcm9mX0V4DQorQ01fU2V0X0hXX1Byb2ZfRmxhZ3NBDQorQ01fU2V0X0hXX1Byb2ZfRmxhZ3NXDQorQ01fU2V0X0hXX1Byb2ZfRmxhZ3NfRXhBDQorQ01fU2V0X0hXX1Byb2ZfRmxhZ3NfRXhXDQorQ01fU2V0dXBfRGV2Tm9kZQ0KK0NNX1NldHVwX0Rldk5vZGVfRXgNCitDTV9UZXN0X1JhbmdlX0F2YWlsYWJsZQ0KK0NNX1VuaW5zdGFsbF9EZXZOb2RlDQorQ01fVW5pbnN0YWxsX0Rldk5vZGVfRXgNCitDTV9VbnJlZ2lzdGVyX0RldmljZV9JbnRlcmZhY2VBDQorQ01fVW5yZWdpc3Rlcl9EZXZpY2VfSW50ZXJmYWNlVw0KK0NNX1VucmVnaXN0ZXJfRGV2aWNlX0ludGVyZmFjZV9FeEENCitDTV9VbnJlZ2lzdGVyX0RldmljZV9JbnRlcmZhY2VfRXhXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY2hzYnJrci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jaHNicmtyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMDE3YzEzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY2hzYnJrci5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDaHNCcktyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDaHNCcktyLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NodGJya3IuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY2h0YnJrci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGI5ZWFkYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NodGJya3IuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ0hUQlJLUi5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ0hUQlJLUi5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jaHRza2RpYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jaHRza2RpYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDZhYjBjMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NodHNrZGljLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGltZXNrZGljLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpbWVza2RpYy5kbGwNCitFWFBPUlRTDQorQ3JlYXRlSUltZVNrZGljSW5zdGFuY2UNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NodHNrZi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jaHRza2YuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZmNjExNDMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jaHRza2YuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbWFpbi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbWFpbi5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jaWFkbWluLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NpYWRtaW4uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM1NzM5MDMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jaWFkbWluLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENJQURNSU4uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENJQURNSU4uZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY2ljLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NpYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWZhNzU0OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NpYy5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBjaWMuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNpYy5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jaW13aW4zMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jaW13aW4zMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjUwYTAzZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NpbXdpbjMyLmRlZgpAQCAtMCwwICsxLDI2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGNpbXdpbjMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBjaW13aW4zMi5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1RjcE1pYjo6Q1RjcE1pYihjbGFzcyBDVGNwTWliIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENUY3BNaWJAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDVGNwTWliOjpDVGNwTWliKHZvaWQpIF9fcHRyNjQNCis/PzBDVGNwTWliQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDVGNwTWliOjp+Q1RjcE1pYih2b2lkKSBfX3B0cjY0DQorPz8xQ1RjcE1pYkBAVUVBQUBYWg0KKzsgcHVibGljOiBjbGFzcyBDVGNwTWliICYgX19wdHI2NCBfX2NkZWNsIENUY3BNaWI6Om9wZXJhdG9yPShjbGFzcyBDVGNwTWliIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENUY3BNaWJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgY29uc3QgIENUY3BNaWI6OmB2ZnRhYmxlJw0KKz8/XzdDVGNwTWliQEA2QkANCis7IGNsYXNzIFdpbjMyU2VjdXJpdHlEZXNjcmlwdG9yICBNeVNlY3VyaXR5RGVzY3JpcHRvcg0KKz9NeVNlY3VyaXR5RGVzY3JpcHRvckBAM1ZXaW4zMlNlY3VyaXR5RGVzY3JpcHRvckBAQSBEQVRBDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitHZXRTREZyb21XaW4zMlNlY3VyaXR5RGVzY3JpcHRvcg0KK1NldFdpbjMyU2VjdXJpdHlEZXNjcmlwdG9yRnJvbVNEDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY2lvZG0uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY2lvZG0uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM4OTgwY2QKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jaW9kbS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBjaW9kbS5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgY2lvZG0uRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY2xiLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NsYi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmIzM2UxNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NsYi5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBjbGIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNsYi5kbGwNCitFWFBPUlRTDQorQ2xiQWRkRGF0YQ0KK0NsYlNldENvbHVtbldpZHRocw0KK0NsYlN0eWxlVw0KK0NsYlduZFByb2MNCitDdXN0b21Db250cm9sSW5mb1cNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jbGJjYXRleC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jbGJjYXRleC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjE3MDhhZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NsYmNhdGV4LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENPTEJDQVQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENPTEJDQVQuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY2xiY2F0cS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jbGJjYXRxLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZmY1ZTEzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY2xiY2F0cS5kZWYKQEAgLTAsMCArMSw2NyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDTEJDYXRRLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDTEJDYXRRLkRMTA0KK0VYUE9SVFMNCitBY3RpdmF0b3JVcGRhdGVGb3JJc1JvdXRlckNoYW5nZXMNCis7IHZvaWQgX19jZGVjbCBDbGVhckxpc3QoY2xhc3MgQ1N0cnVjdEFycmF5ICogX19wdHI2NCkNCis/Q2xlYXJMaXN0QEBZQVhQRUFWQ1N0cnVjdEFycmF5QEBAWg0KK0NvUmVnQ2xlYW51cA0KKzsgbG9uZyBfX2NkZWNsIENyZWF0ZUNvbXBvbmVudExpYnJhcnlUUyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyxzdHJ1Y3QgSUNvbXBvbmVudFJlY29yZHMgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/Q3JlYXRlQ29tcG9uZW50TGlicmFyeVRTQEBZQUpQRUJHSlBFQVBFQVVJQ29tcG9uZW50UmVjb3Jkc0BAQFoNCis7IGxvbmcgX19jZGVjbCBEYXRhQ29udmVydCh1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgbG9uZykNCis/RGF0YUNvbnZlcnRAQFlBSkdHS1BFQUtQRUFYMUtLMEVFS0BaDQorRGVsZXRlQWxsQWN0aXZhdG9yc0ZvckNsc2lkDQorOyB2b2lkIF9fY2RlY2wgRGVzdHJveVN0Z0RhdGFiYXNlKGNsYXNzIFN0Z0RhdGFiYXNlICogX19wdHI2NCkNCis/RGVzdHJveVN0Z0RhdGFiYXNlQEBZQVhQRUFWU3RnRGF0YWJhc2VAQEBaDQorRG93bmdyYWRlQVBMDQorOyBsb25nIF9fY2RlY2wgR2V0RGF0YUNvbnZlcnNpb24oc3RydWN0IElEYXRhQ29udmVydCAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9HZXREYXRhQ29udmVyc2lvbkBAWUFKUEVBUEVBVUlEYXRhQ29udmVydEBAQFoNCis7IGNsYXNzIENHZXREYXRhQ29udmVyc2lvbiAqIF9fcHRyNjQgX19jZGVjbCBHZXREYXRhQ29udmVydE9iamVjdCh2b2lkKQ0KKz9HZXREYXRhQ29udmVydE9iamVjdEBAWUFQRUFWQ0dldERhdGFDb252ZXJzaW9uQEBYWg0KK0dldEdsb2JhbEJhYnlKSVRFbmFibGVkDQorOyBsb25nIF9fY2RlY2wgR2V0UHJvcFZhbHVlKHVuc2lnbmVkIHNob3J0LGxvbmcgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LGludCxpbnQgKiBfX3B0cjY0LHN0cnVjdCB0YWdEQlBST1AgJiBfX3B0cjY0KQ0KKz9HZXRQcm9wVmFsdWVAQFlBSkdQRUFKUEVBWEhQRUFIQUVBVXRhZ0RCUFJPUEBAQFoNCis7IGxvbmcgX19jZGVjbCBHZXRTdGdEYXRhYmFzZShjbGFzcyBTdGdEYXRhYmFzZSAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9HZXRTdGdEYXRhYmFzZUBAWUFKUEVBUEVBVlN0Z0RhdGFiYXNlQEBAWg0KKzsgdm9pZCBfX2NkZWNsIEluaXRFcnJvcnModW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpDQorP0luaXRFcnJvcnNAQFlBWFBFQUtAWg0KKzsgbG9uZyBfX2NkZWNsIE9wZW5Db21wb25lbnRMaWJyYXJ5U2hhcmVkVFModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHN0cnVjdCBfU0VDVVJJVFlfQVRUUklCVVRFUyAqIF9fcHRyNjQsbG9uZyxzdHJ1Y3QgSUNvbXBvbmVudFJlY29yZHMgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/T3BlbkNvbXBvbmVudExpYnJhcnlTaGFyZWRUU0BAWUFKUEVCRzBLUEVBVV9TRUNVUklUWV9BVFRSSUJVVEVTQEBKUEVBUEVBVUlDb21wb25lbnRSZWNvcmRzQEBAWg0KKzsgbG9uZyBfX2NkZWNsIE9wZW5Db21wb25lbnRMaWJyYXJ5VFModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcsc3RydWN0IElDb21wb25lbnRSZWNvcmRzICogX19wdHI2NCAqIF9fcHRyNjQpDQorP09wZW5Db21wb25lbnRMaWJyYXJ5VFNAQFlBSlBFQkdKUEVBUEVBVUlDb21wb25lbnRSZWNvcmRzQEBAWg0KKzsgbG9uZyBfX2NkZWNsIFBvc3RFcnJvcihsb25nLC4uLikNCis/UG9zdEVycm9yQEBZQUpKWloNCis7IHZvaWQgX19jZGVjbCBTaHV0RG93bkRhdGFDb252ZXJzaW9uKHZvaWQpDQorP1NodXREb3duRGF0YUNvbnZlcnNpb25AQFlBWFhaDQorVXBkYXRlRnJvbUFwcENoYW5nZQ0KK1VwZGF0ZUZyb21Db21wb25lbnRDaGFuZ2UNCitDTFNJREZyb21TdHJpbmdCeUJpdG5lc3MNCitDaGVja01lbW9yeUdhdGVzDQorQ29tUGx1c0VuYWJsZVBhcnRpdGlvbnMNCitDb21QbHVzRW5hYmxlUmVtb3RlQWNjZXNzDQorQ29tUGx1c01pZ3JhdGUNCitDb21QbHVzUGFydGl0aW9uc0VuYWJsZWQNCitDb21QbHVzUmVtb3RlQWNjZXNzRW5hYmxlZA0KK0NyZWF0ZUNvbXBvbmVudExpYnJhcnlFeA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorR2V0Q2F0YWxvZ09iamVjdA0KK0dldENhdGFsb2dPYmplY3QyDQorR2V0Q29tcHV0ZXJPYmplY3QNCitHZXRTaW1wbGVUYWJsZURpc3BlbnNlcg0KK0lucHJvY1NlcnZlcjMyRnJvbVN0cmluZw0KK09wZW5Db21wb25lbnRMaWJyYXJ5RXgNCitPcGVuQ29tcG9uZW50TGlicmFyeU9uTWVtRXgNCitPcGVuQ29tcG9uZW50TGlicmFyeU9uU3RyZWFtRXgNCitPcGVuQ29tcG9uZW50TGlicmFyeVNoYXJlZEV4DQorU2VydmVyR2V0QXBwbGljYXRpb25UeXBlDQorU2V0U2V0dXBPcGVuDQorU2V0U2V0dXBTYXZlDQorU2V0dXBPcGVuDQorU2V0dXBTYXZlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY2xpY29uZmcuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY2xpY29uZmcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY2NTJlNzQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jbGljb25mZy5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDTElDT05GRy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ0xJQ09ORkcuRExMDQorRVhQT1JUUw0KK0NQbEFwcGxldA0KK0NsaWVudENvbmZpZ3VyZUFkZEVkaXQNCitPbkluaXREaWFsb2dNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY2x1c2FwaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jbHVzYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNGNjM2Q2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY2x1c2FwaS5kZWYKQEAgLTAsMCArMSwxMjMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ0xVU0FQSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ0xVU0FQSS5kbGwNCitFWFBPUlRTDQorQWRkQ2x1c3RlclJlc291cmNlRGVwZW5kZW5jeQ0KK0FkZENsdXN0ZXJSZXNvdXJjZU5vZGUNCitCYWNrdXBDbHVzdGVyRGF0YWJhc2UNCitDYW5SZXNvdXJjZUJlRGVwZW5kZW50DQorQ2hhbmdlQ2x1c3RlclJlc291cmNlR3JvdXANCitDbG9zZUNsdXN0ZXINCitDbG9zZUNsdXN0ZXJHcm91cA0KK0Nsb3NlQ2x1c3Rlck5ldEludGVyZmFjZQ0KK0Nsb3NlQ2x1c3Rlck5ldHdvcmsNCitDbG9zZUNsdXN0ZXJOb2RlDQorQ2xvc2VDbHVzdGVyTm90aWZ5UG9ydA0KK0Nsb3NlQ2x1c3RlclJlc291cmNlDQorQ2x1c3RlckNsb3NlRW51bQ0KK0NsdXN0ZXJDb250cm9sDQorQ2x1c3RlckVudW0NCitDbHVzdGVyR2V0RW51bUNvdW50DQorQ2x1c3Rlckdyb3VwQ2xvc2VFbnVtDQorQ2x1c3Rlckdyb3VwQ29udHJvbA0KK0NsdXN0ZXJHcm91cEVudW0NCitDbHVzdGVyR3JvdXBHZXRFbnVtQ291bnQNCitDbHVzdGVyR3JvdXBPcGVuRW51bQ0KK0NsdXN0ZXJOZXRJbnRlcmZhY2VDb250cm9sDQorQ2x1c3Rlck5ldHdvcmtDbG9zZUVudW0NCitDbHVzdGVyTmV0d29ya0NvbnRyb2wNCitDbHVzdGVyTmV0d29ya0VudW0NCitDbHVzdGVyTmV0d29ya0dldEVudW1Db3VudA0KK0NsdXN0ZXJOZXR3b3JrT3BlbkVudW0NCitDbHVzdGVyTm9kZUNsb3NlRW51bQ0KK0NsdXN0ZXJOb2RlQ29udHJvbA0KK0NsdXN0ZXJOb2RlRW51bQ0KK0NsdXN0ZXJOb2RlR2V0RW51bUNvdW50DQorQ2x1c3Rlck5vZGVPcGVuRW51bQ0KK0NsdXN0ZXJPcGVuRW51bQ0KK0NsdXN0ZXJSZWdDbG9zZUtleQ0KK0NsdXN0ZXJSZWdDcmVhdGVLZXkNCitDbHVzdGVyUmVnRGVsZXRlS2V5DQorQ2x1c3RlclJlZ0RlbGV0ZVZhbHVlDQorQ2x1c3RlclJlZ0VudW1LZXkNCitDbHVzdGVyUmVnRW51bVZhbHVlDQorQ2x1c3RlclJlZ0dldEtleVNlY3VyaXR5DQorQ2x1c3RlclJlZ09wZW5LZXkNCitDbHVzdGVyUmVnUXVlcnlJbmZvS2V5DQorQ2x1c3RlclJlZ1F1ZXJ5VmFsdWUNCitDbHVzdGVyUmVnU2V0S2V5U2VjdXJpdHkNCitDbHVzdGVyUmVnU2V0VmFsdWUNCitDbHVzdGVyUmVzb3VyY2VDbG9zZUVudW0NCitDbHVzdGVyUmVzb3VyY2VDb250cm9sDQorQ2x1c3RlclJlc291cmNlRW51bQ0KK0NsdXN0ZXJSZXNvdXJjZUdldEVudW1Db3VudA0KK0NsdXN0ZXJSZXNvdXJjZU9wZW5FbnVtDQorQ2x1c3RlclJlc291cmNlVHlwZUNsb3NlRW51bQ0KK0NsdXN0ZXJSZXNvdXJjZVR5cGVDb250cm9sDQorQ2x1c3RlclJlc291cmNlVHlwZUVudW0NCitDbHVzdGVyUmVzb3VyY2VUeXBlR2V0RW51bUNvdW50DQorQ2x1c3RlclJlc291cmNlVHlwZU9wZW5FbnVtDQorQ3JlYXRlQ2x1c3Rlckdyb3VwDQorQ3JlYXRlQ2x1c3Rlck5vdGlmeVBvcnQNCitDcmVhdGVDbHVzdGVyUmVzb3VyY2UNCitDcmVhdGVDbHVzdGVyUmVzb3VyY2VUeXBlDQorRGVsZXRlQ2x1c3Rlckdyb3VwDQorRGVsZXRlQ2x1c3RlclJlc291cmNlDQorRGVsZXRlQ2x1c3RlclJlc291cmNlVHlwZQ0KK0V2aWN0Q2x1c3Rlck5vZGUNCitFdmljdENsdXN0ZXJOb2RlRXgNCitGYWlsQ2x1c3RlclJlc291cmNlDQorR2V0Q2x1c3RlckZyb21Hcm91cA0KK0dldENsdXN0ZXJGcm9tTmV0SW50ZXJmYWNlDQorR2V0Q2x1c3RlckZyb21OZXR3b3JrDQorR2V0Q2x1c3RlckZyb21Ob2RlDQorR2V0Q2x1c3RlckZyb21SZXNvdXJjZQ0KK0dldENsdXN0ZXJHcm91cEtleQ0KK0dldENsdXN0ZXJHcm91cFN0YXRlDQorR2V0Q2x1c3RlckluZm9ybWF0aW9uDQorR2V0Q2x1c3RlcktleQ0KK0dldENsdXN0ZXJOZXRJbnRlcmZhY2UNCitHZXRDbHVzdGVyTmV0SW50ZXJmYWNlS2V5DQorR2V0Q2x1c3Rlck5ldEludGVyZmFjZVN0YXRlDQorR2V0Q2x1c3Rlck5ldHdvcmtJZA0KK0dldENsdXN0ZXJOZXR3b3JrS2V5DQorR2V0Q2x1c3Rlck5ldHdvcmtTdGF0ZQ0KK0dldENsdXN0ZXJOb2RlSWQNCitHZXRDbHVzdGVyTm9kZUtleQ0KK0dldENsdXN0ZXJOb2RlU3RhdGUNCitHZXRDbHVzdGVyTm90aWZ5DQorR2V0Q2x1c3RlclF1b3J1bVJlc291cmNlDQorR2V0Q2x1c3RlclJlc291cmNlS2V5DQorR2V0Q2x1c3RlclJlc291cmNlTmV0d29ya05hbWUNCitHZXRDbHVzdGVyUmVzb3VyY2VTdGF0ZQ0KK0dldENsdXN0ZXJSZXNvdXJjZVR5cGVLZXkNCitHZXROb2RlQ2x1c3RlclN0YXRlDQorTW92ZUNsdXN0ZXJHcm91cA0KK09mZmxpbmVDbHVzdGVyR3JvdXANCitPZmZsaW5lQ2x1c3RlclJlc291cmNlDQorT25saW5lQ2x1c3Rlckdyb3VwDQorT25saW5lQ2x1c3RlclJlc291cmNlDQorT3BlbkNsdXN0ZXINCitPcGVuQ2x1c3Rlckdyb3VwDQorT3BlbkNsdXN0ZXJOZXRJbnRlcmZhY2UNCitPcGVuQ2x1c3Rlck5ldHdvcmsNCitPcGVuQ2x1c3Rlck5vZGUNCitPcGVuQ2x1c3RlclJlc291cmNlDQorUGF1c2VDbHVzdGVyTm9kZQ0KK1JlZ2lzdGVyQ2x1c3Rlck5vdGlmeQ0KK1JlbW92ZUNsdXN0ZXJSZXNvdXJjZURlcGVuZGVuY3kNCitSZW1vdmVDbHVzdGVyUmVzb3VyY2VOb2RlDQorUmVzdG9yZUNsdXN0ZXJEYXRhYmFzZQ0KK1Jlc3VtZUNsdXN0ZXJOb2RlDQorU2V0Q2x1c3Rlckdyb3VwTmFtZQ0KK1NldENsdXN0ZXJHcm91cE5vZGVMaXN0DQorU2V0Q2x1c3Rlck5hbWUNCitTZXRDbHVzdGVyTmV0d29ya05hbWUNCitTZXRDbHVzdGVyTmV0d29ya1ByaW9yaXR5T3JkZXINCitTZXRDbHVzdGVyUXVvcnVtUmVzb3VyY2UNCitTZXRDbHVzdGVyUmVzb3VyY2VOYW1lDQorU2V0Q2x1c3RlclNlcnZpY2VBY2NvdW50UGFzc3dvcmQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jbWNmZzMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NtY2ZnMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNkNGI0YTUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jbWNmZzMyLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGNtY2ZnMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNtY2ZnMzIuZGxsDQorRVhQT1JUUw0KK0Ntc3RwRXh0ZW5zaW9uUHJvYw0KK0NNQ29uZmlnDQorQ01Db25maWdFeA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NtZGlhbDMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NtZGlhbDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NWY1N2M0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY21kaWFsMzIuZGVmCkBAIC0wLDAgKzEsMTkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY21kaWFsMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNtZGlhbDMyLmRsbA0KK0VYUE9SVFMNCitBdXRvRGlhbEZ1bmMNCitDbUN1c3RvbURpYWxEbGcNCitDbUN1c3RvbUhhbmdVcA0KK0NtUmVDb25uZWN0DQorR2V0Q3VzdG9tUHJvcGVydHkNCitJbmV0RGlhbEhhbmRsZXINCitSYXNDdXN0b21EZWxldGVFbnRyeU5vdGlmeQ0KK1Jhc0N1c3RvbURpYWwNCitSYXNDdXN0b21EaWFsRGxnDQorUmFzQ3VzdG9tRW50cnlEbGcNCitSYXNDdXN0b21IYW5nVXANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jbXBiazMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NtcGJrMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRiNTVhYzcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jbXBiazMyLmRlZgpAQCAtMCwwICsxLDMxIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGNtcGJrMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNtcGJrMzIuZGxsDQorRVhQT1JUUw0KK1Bob25lQm9va0NvcHlGaWx0ZXINCitQaG9uZUJvb2tFbnVtQ291bnRyaWVzDQorUGhvbmVCb29rRW51bU51bWJlcnMNCitQaG9uZUJvb2tFbnVtTnVtYmVyc1dpdGhSZWdpb25zWmVybw0KK1Bob25lQm9va0VudW1SZWdpb25zDQorUGhvbmVCb29rRnJlZUZpbHRlcg0KK1Bob25lQm9va0dldENvdW50cnlJZA0KK1Bob25lQm9va0dldENvdW50cnlOYW1lQQ0KK1Bob25lQm9va0dldENvdW50cnlOYW1lVw0KK1Bob25lQm9va0dldEN1cnJlbnRDb3VudHJ5SWQNCitQaG9uZUJvb2tHZXRQaG9uZUNhbm9uaWNhbEENCitQaG9uZUJvb2tHZXRQaG9uZURVTkENCitQaG9uZUJvb2tHZXRQaG9uZURlc2NBDQorUGhvbmVCb29rR2V0UGhvbmVEaXNwQQ0KK1Bob25lQm9va0dldFBob25lTm9uQ2Fub25pY2FsQQ0KK1Bob25lQm9va0dldFBob25lVHlwZQ0KK1Bob25lQm9va0dldFJlZ2lvbk5hbWVBDQorUGhvbmVCb29rSGFzUGhvbmVUeXBlDQorUGhvbmVCb29rTG9hZA0KK1Bob25lQm9va01hdGNoRmlsdGVyDQorUGhvbmVCb29rTWVyZ2VDaGFuZ2VzDQorUGhvbmVCb29rUGFyc2VJbmZvQQ0KK1Bob25lQm9va1VubG9hZA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NtcHJvcHMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY21wcm9wcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWM1MTJiMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NtcHJvcHMuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ01Qcm9wcy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ01Qcm9wcy5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jbXNldGFjbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jbXNldGFjbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjJjMzk0NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Ntc2V0YWNsLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGNtU2V0QUNMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBjbVNldEFDTC5kbGwNCitFWFBPUlRTDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY211dGlsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NtdXRpbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGU2MDYxMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NtdXRpbC5kZWYKQEAgLTAsMCArMSwyNTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY211dGlsLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBjbXV0aWwuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIENJbmlBOjpDSW5pQShzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0luaUFAQFFFQUFAUEVBVUhJTlNUQU5DRV9fQEBQRUJEMTExQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW5pVzo6Q0luaVcoc3RydWN0IEhJTlNUQU5DRV9fICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSW5pV0BAUUVBQUBQRUFVSElOU1RBTkNFX19AQFBFQkcxMTFAWg0KKzsgcHVibGljOiBfX2NkZWNsIENSYW5kb206OkNSYW5kb20odW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQ1JhbmRvbUBAUUVBQUBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmFuZG9tOjpDUmFuZG9tKHZvaWQpIF9fcHRyNjQNCis/PzBDUmFuZG9tQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ21Mb2dGaWxlOjpDbUxvZ0ZpbGUodm9pZCkgX19wdHI2NA0KKz8/MENtTG9nRmlsZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbmlBOjp+Q0luaUEodm9pZCkgX19wdHI2NA0KKz8/MUNJbmlBQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0luaVc6On5DSW5pVyh2b2lkKSBfX3B0cjY0DQorPz8xQ0luaVdAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDbUxvZ0ZpbGU6On5DbUxvZ0ZpbGUodm9pZCkgX19wdHI2NA0KKz8/MUNtTG9nRmlsZUBAUUVBQUBYWg0KKzsgcHVibGljOiBjbGFzcyBDSW5pQSAmIF9fcHRyNjQgX19jZGVjbCBDSW5pQTo6b3BlcmF0b3I9KGNsYXNzIENJbmlBIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJbmlBQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0luaVcgJiBfX3B0cjY0IF9fY2RlY2wgQ0luaVc6Om9wZXJhdG9yPShjbGFzcyBDSW5pVyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDSW5pV0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENSYW5kb20gJiBfX3B0cjY0IF9fY2RlY2wgQ1JhbmRvbTo6b3BlcmF0b3I9KGNsYXNzIENSYW5kb20gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1JhbmRvbUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENtTG9nRmlsZSAmIF9fcHRyNjQgX19jZGVjbCBDbUxvZ0ZpbGU6Om9wZXJhdG9yPShjbGFzcyBDbUxvZ0ZpbGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q21Mb2dGaWxlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlBOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNJbmlBQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSW5pVzo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDSW5pV0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ21Mb2dGaWxlOjpCYW5uZXIodm9pZCkgX19wdHI2NA0KKz9CYW5uZXJAQ21Mb2dGaWxlQEBRRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENJbmlBOjpDSW5pQV9EZWxldGVFbnRyeUZyb21SZWcoc3RydWN0IEhLRVlfXyAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q0luaUFfRGVsZXRlRW50cnlGcm9tUmVnQENJbmlBQEBJRUJBSFBFQVVIS0VZX19AQFBFQkQxQFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDSW5pQTo6Q0luaUFfR2V0RW50cnlGcm9tUmVnKHN0cnVjdCBIS0VZX18gKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9DSW5pQV9HZXRFbnRyeUZyb21SZWdAQ0luaUFAQElFQkFQRUFFUEVBVUhLRVlfX0BAUEVCRDFLS0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENJbmlBOjpDSW5pQV9Xcml0ZUVudHJ5VG9SZWcoc3RydWN0IEhLRVlfXyAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP0NJbmlBX1dyaXRlRW50cnlUb1JlZ0BDSW5pQUBASUVCQUhQRUFVSEtFWV9fQEBQRUJEMVBFQkVLS0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENJbmlXOjpDSW5pV19EZWxldGVFbnRyeUZyb21SZWcoc3RydWN0IEhLRVlfXyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9DSW5pV19EZWxldGVFbnRyeUZyb21SZWdAQ0luaVdAQElFQkFIUEVBVUhLRVlfX0BAUEVCRzFAWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENJbmlXOjpDSW5pV19HZXRFbnRyeUZyb21SZWcoc3RydWN0IEhLRVlfXyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/Q0luaVdfR2V0RW50cnlGcm9tUmVnQENJbmlXQEBJRUJBUEVBRVBFQVVIS0VZX19AQFBFQkcxS0tAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDSW5pVzo6Q0luaVdfV3JpdGVFbnRyeVRvUmVnKHN0cnVjdCBIS0VZX18gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP0NJbmlXX1dyaXRlRW50cnlUb1JlZ0BDSW5pV0BASUVCQUhQRUFVSEtFWV9fQEBQRUJHMVBFQkVLS0BaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ0luaUE6OkNJbmlfU2V0RmlsZShjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpDQorP0NJbmlfU2V0RmlsZUBDSW5pQUBAS0FYUEVBUEVBRFBFQkRAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENJbmlXOjpDSW5pX1NldEZpbGUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0NJbmlfU2V0RmlsZUBDSW5pV0BAS0FYUEVBUEVBR1BFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0luaUE6OkNsZWFyKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJAQ0luaUFAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlXOjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQENJbmlXQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDbUxvZ0ZpbGU6OkNsZWFyKGludCkgX19wdHI2NA0KKz9DbGVhckBDbUxvZ0ZpbGVAQFFFQUFYSEBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgQ21Mb2dGaWxlOjpDbG9zZUZpbGUodm9pZCkgX19wdHI2NA0KKz9DbG9zZUZpbGVAQ21Mb2dGaWxlQEBBRUFBSlhaDQorQ21BdG9sQQ0KK0NtQXRvbFcNCitDbUJ1aWxkRnVsbFBhdGhGcm9tUmVsYXRpdmVBDQorQ21CdWlsZEZ1bGxQYXRoRnJvbVJlbGF0aXZlVw0KK0NtQ29tcGFyZVN0cmluZ0ENCitDbUNvbXBhcmVTdHJpbmdXDQorQ21Db252ZXJ0UmVsYXRpdmVQYXRoQQ0KK0NtQ29udmVydFJlbGF0aXZlUGF0aFcNCitDbUVuZE9mU3RyQQ0KK0NtRW5kT2ZTdHJXDQorQ21GbXRNc2dBDQorQ21GbXRNc2dXDQorQ21GcmVlDQorQ21Jc0RpZ2l0QQ0KK0NtSXNEaWdpdFcNCitDbUlzU3BhY2VBDQorQ21Jc1NwYWNlVw0KK0NtTG9hZEljb25BDQorQ21Mb2FkSWNvblcNCitDbUxvYWRJbWFnZQ0KK0NtTG9hZEltYWdlQQ0KK0NtTG9hZEltYWdlVw0KK0NtTG9hZFNtYWxsSWNvbkENCitDbUxvYWRTbWFsbEljb25XDQorQ21Mb2FkU3RyaW5nQQ0KK0NtTG9hZFN0cmluZ1cNCitDbU1hbGxvYw0KK0NtUGFyc2VQYXRoQQ0KK0NtUGFyc2VQYXRoVw0KK0NtUmVhbGxvYw0KK0NtU3RyQ2F0QWxsb2NBDQorQ21TdHJDYXRBbGxvY1cNCitDbVN0ckNweUFsbG9jQQ0KK0NtU3RyQ3B5QWxsb2NXDQorQ21TdHJTdHJBDQorQ21TdHJTdHJXDQorQ21TdHJUcmltQQ0KK0NtU3RyVHJpbVcNCitDbVN0cmNockENCitDbVN0cmNoclcNCitDbVN0cmlwRmlsZU5hbWVBDQorQ21TdHJpcEZpbGVOYW1lVw0KK0NtU3RyaXBQYXRoQW5kRXh0QQ0KK0NtU3RyaXBQYXRoQW5kRXh0Vw0KK0NtU3RycmNockENCitDbVN0cnJjaHJXDQorQ21TdHJ0b2tBDQorQ21TdHJ0b2tXDQorQ21XaW5IZWxwDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDbUxvZ0ZpbGU6OkRlSW5pdCh2b2lkKSBfX3B0cjY0DQorP0RlSW5pdEBDbUxvZ0ZpbGVAQFFFQUFKWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDbUxvZ0ZpbGU6OkZvcm1hdFdyaXRlKGVudW0gX0NNTE9HX0lURU0sdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0Zvcm1hdFdyaXRlQENtTG9nRmlsZUBAQUVBQVhXNF9DTUxPR19JVEVNQEBQRUFHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0luaUE6OkdQUEIoY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsaW50KWNvbnN0ICBfX3B0cjY0DQorP0dQUEJAQ0luaUFAQFFFQkFIUEVCRDBIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0luaVc6OkdQUEIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpY29uc3QgIF9fcHRyNjQNCis/R1BQQkBDSW5pV0BAUUVCQUhQRUJHMEhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0luaUE6OkdQUEkoY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9HUFBJQENJbmlBQEBRRUJBS1BFQkQwS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSW5pVzo6R1BQSSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/R1BQSUBDSW5pV0BAUUVCQUtQRUJHMEtAWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIENJbmlBOjpHUFBTKGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0dQUFNAQ0luaUFAQFFFQkFQRUFEUEVCRDAwQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ0luaVc6OkdQUFModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/R1BQU0BDSW5pV0BAUUVCQVBFQUdQRUJHMDBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUmFuZG9tOjpHZW5lcmF0ZSh2b2lkKSBfX3B0cjY0DQorP0dlbmVyYXRlQENSYW5kb21AQFFFQUFIWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSW5pQTo6R2V0RmlsZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEZpbGVAQ0luaUFAQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0luaVc6OkdldEZpbGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRGaWxlQENJbmlXQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQgX19jZGVjbCBDSW5pQTo6R2V0SEluc3Qodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRISW5zdEBDSW5pQUBAUUVCQVBFQVVISU5TVEFOQ0VfX0BAWFoNCis7IHB1YmxpYzogc3RydWN0IEhJTlNUQU5DRV9fICogX19wdHI2NCBfX2NkZWNsIENJbmlXOjpHZXRISW5zdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEhJbnN0QENJbmlXQEBRRUJBUEVBVUhJTlNUQU5DRV9fQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDbUxvZ0ZpbGU6OkdldExvZ0ZpbGVQYXRoKHZvaWQpIF9fcHRyNjQNCis/R2V0TG9nRmlsZVBhdGhAQ21Mb2dGaWxlQEBRRUFBUEVCR1haDQorR2V0T1NCdWlsZE51bWJlcg0KK0dldE9TTWFqb3JWZXJzaW9uDQorR2V0T1NWZXJzaW9uDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0luaUE6OkdldFByaW1hcnlGaWxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0UHJpbWFyeUZpbGVAQ0luaUFAQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0luaVc6OkdldFByaW1hcnlGaWxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0UHJpbWFyeUZpbGVAQ0luaVdAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSW5pQTo6R2V0UHJpbWFyeVJlZ1BhdGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRQcmltYXJ5UmVnUGF0aEBDSW5pQUBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSW5pVzo6R2V0UHJpbWFyeVJlZ1BhdGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRQcmltYXJ5UmVnUGF0aEBDSW5pV0BAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENJbmlBOjpHZXRSZWdQYXRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0UmVnUGF0aEBDSW5pQUBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSW5pVzo6R2V0UmVnUGF0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFJlZ1BhdGhAQ0luaVdAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSW5pQTo6R2V0U2VjdGlvbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFNlY3Rpb25AQ0luaUFAQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0luaVc6OkdldFNlY3Rpb24odm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTZWN0aW9uQENJbmlXQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmFuZG9tOjpJbml0KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SW5pdEBDUmFuZG9tQEBRRUFBWEtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ21Mb2dGaWxlOjpJbml0KHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQsaW50LGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRAQ21Mb2dGaWxlQEBRRUFBSlBFQVVISU5TVEFOQ0VfX0BASFBFQkRAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ21Mb2dGaWxlOjpJbml0KHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0QENtTG9nRmlsZUBAUUVBQUpQRUFVSElOU1RBTkNFX19AQEhQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ21Mb2dGaWxlOjpJc0VuYWJsZWQodm9pZCkgX19wdHI2NA0KKz9Jc0VuYWJsZWRAQ21Mb2dGaWxlQEBRRUFBSFhaDQorSXNGYXJFYXN0Tm9uT1NSMldpbjk1DQorSXNMb2dvbkFzU3lzdGVtDQorOyBwcm90ZWN0ZWQ6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0luaUE6OkxvYWRFbnRyeShjaGFyIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Mb2FkRW50cnlAQ0luaUFAQElFQkFQRUFEUEVCREBaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENJbmlXOjpMb2FkRW50cnkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0xvYWRFbnRyeUBDSW5pV0BASUVCQVBFQUdQRUJHQFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDSW5pQTo6TG9hZFNlY3Rpb24oY2hhciBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/TG9hZFNlY3Rpb25AQ0luaUFAQFFFQkFQRUFEUEVCREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENJbmlXOjpMb2FkU2VjdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/TG9hZFNlY3Rpb25AQ0luaVdAQFFFQkFQRUFHUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDbUxvZ0ZpbGU6OkxvZyhlbnVtIF9DTUxPR19JVEVNLC4uLikgX19wdHI2NA0KKz9Mb2dAQ21Mb2dGaWxlQEBRRUFBWFc0X0NNTE9HX0lURU1AQFpaDQorTWFrZUJvbGQNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBDbUxvZ0ZpbGU6Ok9wZW5GaWxlKHZvaWQpIF9fcHRyNjQNCis/T3BlbkZpbGVAQ21Mb2dGaWxlQEBBRUFBSlhaDQorUmVsZWFzZUJvbGQNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlBOjpTZXRFbnRyeShjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRFbnRyeUBDSW5pQUBAUUVBQVhQRUJEQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlXOjpTZXRFbnRyeSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RW50cnlAQ0luaVdAQFFFQUFYUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSW5pQTo6U2V0RW50cnlGcm9tSWR4KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0RW50cnlGcm9tSWR4QENJbmlBQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0luaVc6OlNldEVudHJ5RnJvbUlkeCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldEVudHJ5RnJvbUlkeEBDSW5pV0BAUUVBQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlBOjpTZXRGaWxlKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEZpbGVAQ0luaUFAQFFFQUFYUEVCREBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSW5pVzo6U2V0RmlsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RmlsZUBDSW5pV0BAUUVBQVhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlBOjpTZXRISW5zdChzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEhJbnN0QENJbmlBQEBRRUFBWFBFQVVISU5TVEFOQ0VfX0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlXOjpTZXRISW5zdChzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEhJbnN0QENJbmlXQEBRRUFBWFBFQVVISU5TVEFOQ0VfX0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlBOjpTZXRJQ1NEYXRhUGF0aChjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRJQ1NEYXRhUGF0aEBDSW5pQUBAUUVBQVhQRUJEQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlXOjpTZXRJQ1NEYXRhUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0SUNTRGF0YVBhdGhAQ0luaVdAQFFFQUFYUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDbUxvZ0ZpbGU6OlNldFBhcmFtcyhpbnQsdW5zaWduZWQgbG9uZyxjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQYXJhbXNAQ21Mb2dGaWxlQEBRRUFBSkhLUEVCREBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDbUxvZ0ZpbGU6OlNldFBhcmFtcyhpbnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UGFyYW1zQENtTG9nRmlsZUBAUUVBQUpIS1BFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0luaUE6OlNldFByaW1hcnlGaWxlKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFByaW1hcnlGaWxlQENJbmlBQEBRRUFBWFBFQkRAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0luaVc6OlNldFByaW1hcnlGaWxlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQcmltYXJ5RmlsZUBDSW5pV0BAUUVBQVhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlBOjpTZXRQcmltYXJ5UmVnUGF0aChjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQcmltYXJ5UmVnUGF0aEBDSW5pQUBAUUVBQVhQRUJEQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlXOjpTZXRQcmltYXJ5UmVnUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UHJpbWFyeVJlZ1BhdGhAQ0luaVdAQFFFQUFYUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSW5pQTo6U2V0UmVhZElDU0RhdGEoaW50KSBfX3B0cjY0DQorP1NldFJlYWRJQ1NEYXRhQENJbmlBQEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0luaVc6OlNldFJlYWRJQ1NEYXRhKGludCkgX19wdHI2NA0KKz9TZXRSZWFkSUNTRGF0YUBDSW5pV0BAUUVBQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlBOjpTZXRSZWdQYXRoKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFJlZ1BhdGhAQ0luaUFAQFFFQUFYUEVCREBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSW5pVzo6U2V0UmVnUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UmVnUGF0aEBDSW5pV0BAUUVBQVhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlBOjpTZXRTZWN0aW9uKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFNlY3Rpb25AQ0luaUFAQFFFQUFYUEVCREBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSW5pVzo6U2V0U2VjdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0U2VjdGlvbkBDSW5pV0BAUUVBQVhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlBOjpTZXRXcml0ZUlDU0RhdGEoaW50KSBfX3B0cjY0DQorP1NldFdyaXRlSUNTRGF0YUBDSW5pQUBAUUVBQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlXOjpTZXRXcml0ZUlDU0RhdGEoaW50KSBfX3B0cjY0DQorP1NldFdyaXRlSUNTRGF0YUBDSW5pV0BAUUVBQVhIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENtTG9nRmlsZTo6U3RhcnQoaW50KSBfX3B0cjY0DQorP1N0YXJ0QENtTG9nRmlsZUBAUUVBQUpIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENtTG9nRmlsZTo6U3RvcCh2b2lkKSBfX3B0cjY0DQorP1N0b3BAQ21Mb2dGaWxlQEBRRUFBSlhaDQorU3pUb1d6DQorU3pUb1d6V2l0aEFsbG9jDQorVXBkYXRlRm9udA0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0luaUE6OldQUEIoY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1dQUEJAQ0luaUFAQFFFQUFYUEVCRDBIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlXOjpXUFBCKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1dQUEJAQ0luaVdAQFFFQUFYUEVCRzBIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlBOjpXUFBJKGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/V1BQSUBDSW5pQUBAUUVBQVhQRUJEMEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0luaVc6OldQUEkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1dQUElAQ0luaVdAQFFFQUFYUEVCRzBLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlBOjpXUFBTKGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1dQUFNAQ0luaUFAQFFFQUFYUEVCRDAwQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbmlXOjpXUFBTKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1dQUFNAQ0luaVdAQFFFQUFYUEVCRzAwQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBDbUxvZ0ZpbGU6OldyaXRlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Xcml0ZUBDbUxvZ0ZpbGVAQEFFQUFKUEVBR0BaDQorV3pUb1N6DQorV3pUb1N6V2l0aEFsbG9jDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY25iam1vbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jbmJqbW9uLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMjJmZTFiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY25iam1vbi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENOQkpNT04uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENOQkpNT04uZGxsDQorRVhQT1JUUw0KK0luaXRpYWxpemVQcmludE1vbml0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jbmV0Y2ZnLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NuZXRjZmcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE1ZjZjNTMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jbmV0Y2ZnLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENORVRDRkcuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENORVRDRkcuZGxsDQorRVhQT1JUUw0KK0luZXRDb25maWdTeXN0ZW0NCitJbmV0TmVlZE1vZGVtDQorSW5ldE5lZWRTeXN0ZW1Db21wb25lbnRzDQorSW5ldFN0YXJ0U2VydmljZXMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jbnZmYXQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY252ZmF0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kN2ZlMDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY252ZmF0LmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENVRkFULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDVUZBVC5kbGwNCitFWFBPUlRTDQorSXNDb252ZXJzaW9uQXZhaWxhYmxlDQorQ29udmVydEZBVA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NvYWRtaW4uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY29hZG1pbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODRiODJiMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NvYWRtaW4uZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ09BRE1JTi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ09BRE1JTi5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorSW5pdENvbUFkbWluZGF0YQ0KK1Rlcm1pbmF0ZUNvbUFkbWluZGF0YQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NvbGJhY3QuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY29sYmFjdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDczNThiYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NvbGJhY3QuZGVmCkBAIC0wLDAgKzEsMTUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY29sYmFjdC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgY29sYmFjdC5ETEwNCitFWFBPUlRTDQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitHZXRDbGFzc0luZm9Gb3JDdXJyZW50VXNlcg0KK0dldERlZmF1bHRQYXJ0aXRpb25Gb3JDdXJyZW50VXNlcg0KK0dldERlZmF1bHRQYXJ0aXRpb25Gb3JTaWQNCitQYXJ0aXRpb25BY2Nlc3NDaGVjaw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NvbWFkZGluLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NvbWFkZGluLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZjdiMGVlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY29tYWRkaW4uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ09NQURESU4uRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENPTUFERElOLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NvbWFkbWluLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NvbWFkbWluLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMDMyZjY3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY29tYWRtaW4uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ09NQURNSU4uRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENPTUFETUlOLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NvbWNhdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jb21jYXQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdjMWE4NzYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jb21jYXQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ09NQ0FULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDT01DQVQuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY29tY3RsMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY29tY3RsMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI4NTNjNTMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jb21jdGwzMi5kZWYKQEAgLTAsMCArMSwxMTcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ09NQ1RMMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENPTUNUTDMyLmRsbA0KK0VYUE9SVFMNCitNZW51SGVscA0KK1Nob3dIaWRlTWVudUN0bA0KK0dldEVmZmVjdGl2ZUNsaWVudFJlY3QNCitEcmF3U3RhdHVzVGV4dEENCitDcmVhdGVTdGF0dXNXaW5kb3dBDQorQ3JlYXRlVG9vbGJhcg0KK0NyZWF0ZU1hcHBlZEJpdG1hcA0KK0NyZWF0ZVByb3BlcnR5U2hlZXRQYWdlDQorTWFrZURyYWdMaXN0DQorTEJJdGVtRnJvbVB0DQorRHJhd0luc2VydA0KK0NyZWF0ZVVwRG93bkNvbnRyb2wNCitJbml0Q29tbW9uQ29udHJvbHMNCitDcmVhdGVQcm9wZXJ0eVNoZWV0UGFnZUENCitDcmVhdGVQcm9wZXJ0eVNoZWV0UGFnZVcNCitDcmVhdGVTdGF0dXNXaW5kb3cNCitDcmVhdGVTdGF0dXNXaW5kb3dXDQorQ3JlYXRlVG9vbGJhckV4DQorRGVzdHJveVByb3BlcnR5U2hlZXRQYWdlDQorRGxsR2V0VmVyc2lvbg0KK0RsbEluc3RhbGwNCitEcmF3U3RhdHVzVGV4dA0KK0RyYXdTdGF0dXNUZXh0Vw0KK0ZsYXRTQl9FbmFibGVTY3JvbGxCYXINCitGbGF0U0JfR2V0U2Nyb2xsSW5mbw0KK0ZsYXRTQl9HZXRTY3JvbGxQb3MNCitGbGF0U0JfR2V0U2Nyb2xsUHJvcA0KK0ZsYXRTQl9HZXRTY3JvbGxQcm9wUHRyDQorRmxhdFNCX0dldFNjcm9sbFJhbmdlDQorRmxhdFNCX1NldFNjcm9sbEluZm8NCitGbGF0U0JfU2V0U2Nyb2xsUG9zDQorRmxhdFNCX1NldFNjcm9sbFByb3ANCitGbGF0U0JfU2V0U2Nyb2xsUmFuZ2UNCitGbGF0U0JfU2hvd1Njcm9sbEJhcg0KK0dldE1VSUxhbmd1YWdlDQorSW1hZ2VMaXN0X0FkZA0KK0ltYWdlTGlzdF9BZGRJY29uDQorSW1hZ2VMaXN0X0FkZE1hc2tlZA0KK0ltYWdlTGlzdF9CZWdpbkRyYWcNCitJbWFnZUxpc3RfQ29weQ0KK0ltYWdlTGlzdF9DcmVhdGUNCitJbWFnZUxpc3RfRGVzdHJveQ0KK0ltYWdlTGlzdF9EcmFnRW50ZXINCitJbWFnZUxpc3RfRHJhZ0xlYXZlDQorSW1hZ2VMaXN0X0RyYWdNb3ZlDQorSW1hZ2VMaXN0X0RyYWdTaG93Tm9sb2NrDQorSW1hZ2VMaXN0X0RyYXcNCitJbWFnZUxpc3RfRHJhd0V4DQorSW1hZ2VMaXN0X0RyYXdJbmRpcmVjdA0KK0ltYWdlTGlzdF9EdXBsaWNhdGUNCitJbWFnZUxpc3RfRW5kRHJhZw0KK0ltYWdlTGlzdF9HZXRCa0NvbG9yDQorSW1hZ2VMaXN0X0dldERyYWdJbWFnZQ0KK0ltYWdlTGlzdF9HZXRGbGFncw0KK0ltYWdlTGlzdF9HZXRJY29uDQorSW1hZ2VMaXN0X0dldEljb25TaXplDQorSW1hZ2VMaXN0X0dldEltYWdlQ291bnQNCitJbWFnZUxpc3RfR2V0SW1hZ2VJbmZvDQorSW1hZ2VMaXN0X0dldEltYWdlUmVjdA0KK0ltYWdlTGlzdF9Mb2FkSW1hZ2UNCitJbWFnZUxpc3RfTG9hZEltYWdlQQ0KK0ltYWdlTGlzdF9Mb2FkSW1hZ2VXDQorSW1hZ2VMaXN0X01lcmdlDQorSW1hZ2VMaXN0X1JlYWQNCitJbWFnZUxpc3RfUmVtb3ZlDQorSW1hZ2VMaXN0X1JlcGxhY2UNCitJbWFnZUxpc3RfUmVwbGFjZUljb24NCitJbWFnZUxpc3RfU2V0QmtDb2xvcg0KK0ltYWdlTGlzdF9TZXREcmFnQ3Vyc29ySW1hZ2UNCitJbWFnZUxpc3RfU2V0RmlsdGVyDQorSW1hZ2VMaXN0X1NldEZsYWdzDQorSW1hZ2VMaXN0X1NldEljb25TaXplDQorSW1hZ2VMaXN0X1NldEltYWdlQ291bnQNCitJbWFnZUxpc3RfU2V0T3ZlcmxheUltYWdlDQorSW1hZ2VMaXN0X1dyaXRlDQorSW5pdENvbW1vbkNvbnRyb2xzRXgNCitJbml0TVVJTGFuZ3VhZ2UNCitJbml0aWFsaXplRmxhdFNCDQorUHJvcGVydHlTaGVldA0KK1Byb3BlcnR5U2hlZXRBDQorUHJvcGVydHlTaGVldFcNCitSZWdpc3RlckNsYXNzTmFtZVcNCitVbmluaXRpYWxpemVGbGF0U0INCitfVHJhY2tNb3VzZUV2ZW50DQorRnJlZU1SVUxpc3QNCitTdHJfU2V0UHRyVw0KK0RTQV9DcmVhdGUNCitEU0FfRGVzdHJveQ0KK0RTQV9HZXRJdGVtUHRyDQorRFNBX0luc2VydEl0ZW0NCitEU0FfRGVsZXRlQWxsSXRlbXMNCitEUEFfQ3JlYXRlDQorRFBBX0Rlc3Ryb3kNCitEUEFfR2V0UHRyDQorRFBBX0luc2VydFB0cg0KK0RQQV9TZXRQdHINCitEUEFfRGVsZXRlUHRyDQorRFBBX0RlbGV0ZUFsbFB0cnMNCitEUEFfU29ydA0KK0RQQV9TZWFyY2gNCitEUEFfRW51bUNhbGxiYWNrDQorRFBBX0Rlc3Ryb3lDYWxsYmFjaw0KK0RTQV9EZXN0cm95Q2FsbGJhY2sNCitDcmVhdGVNUlVMaXN0Vw0KK0FkZE1SVVN0cmluZ1cNCitFbnVtTVJVTGlzdFcNCitTZXRXaW5kb3dTdWJjbGFzcw0KK1JlbW92ZVdpbmRvd1N1YmNsYXNzDQorRGVmU3ViY2xhc3NQcm9jDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY29tZGxnMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY29tZGxnMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ2Y2ZhOWIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jb21kbGczMi5kZWYKQEAgLTAsMCArMSwzNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBjb21kbGczMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgY29tZGxnMzIuZGxsDQorRVhQT1JUUw0KK0Nob29zZUNvbG9yQQ0KK0Nob29zZUNvbG9yVw0KK0Nob29zZUZvbnRBDQorQ2hvb3NlRm9udFcNCitDb21tRGxnRXh0ZW5kZWRFcnJvcg0KK0ZpbmRUZXh0QQ0KK0ZpbmRUZXh0Vw0KK0dldEZpbGVUaXRsZUENCitHZXRGaWxlVGl0bGVXDQorR2V0T3BlbkZpbGVOYW1lQQ0KK0dldE9wZW5GaWxlTmFtZVcNCitHZXRTYXZlRmlsZU5hbWVBDQorR2V0U2F2ZUZpbGVOYW1lVw0KK0xvYWRBbHRlckJpdG1hcA0KK1BhZ2VTZXR1cERsZ0ENCitQYWdlU2V0dXBEbGdXDQorUHJpbnREbGdBDQorUHJpbnREbGdFeEENCitQcmludERsZ0V4Vw0KK1ByaW50RGxnVw0KK1JlcGxhY2VUZXh0QQ0KK1JlcGxhY2VUZXh0Vw0KK1NzeW5jX0FOU0lfVU5JQ09ERV9TdHJ1Y3RfRm9yX1dPVw0KK1dhbnRBcnJvd3MNCitkd0xCU3ViY2xhc3MNCitkd09LU3ViY2xhc3MNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jb21wYXR1aS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jb21wYXR1aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzkzZDljMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NvbXBhdHVpLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENvbXBhdFVJLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDb21wYXRVSS5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jb21wc3R1aS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jb21wc3R1aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGU2ZGY4NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NvbXBzdHVpLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENPTVBTVFVJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDT01QU1RVSS5kbGwNCitFWFBPUlRTDQorQ29tbW9uUHJvcGVydHlTaGVldFVJQQ0KK0NvbW1vblByb3BlcnR5U2hlZXRVSVcNCitHZXRDUFNVSVVzZXJEYXRhDQorU2V0Q1BTVUlVc2VyRGF0YQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NvbXJlcGwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY29tcmVwbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2EzM2IyOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NvbXJlcGwuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ29tUmVwbC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ29tUmVwbC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jb21yZXMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY29tcmVzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZmNjZjZlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY29tcmVzLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ09NUmVzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDT01SZXMuZGxsDQorRVhQT1JUUw0KK0NPTVJlc01vZHVsZUluc3RhbmNlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY29tc2V0dXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY29tc2V0dXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEzYTk2YzAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jb21zZXR1cC5kZWYKQEAgLTAsMCArMSwxNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBjb21zZXR1cC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgY29tc2V0dXAuZGxsDQorRVhQT1JUUw0KK0hhbmRsZVBlbmRpbmdJbmZPcGVyYXRpb25zDQorSW5zdGFsbE9uUmVib290DQorT2NFbnRyeQ0KK1J1bkNvbVBsdXNTZXRXZWJBcHBsaWNhdGlvblNlcnZlclJvbGVXDQorU2V0dXBQcmludExvZw0KK1VwZ3JhZGVEU1NjaGVtYQ0KK0NvbVBsdXNHZXRXZWJBcHBsaWNhdGlvblNlcnZlclJvbGUNCitDb21QbHVzU2V0V2ViQXBwbGljYXRpb25TZXJ2ZXJSb2xlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY29tc25hcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jb21zbmFwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZDY1Njk5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY29tc25hcC5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDb21TbmFwLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDb21TbmFwLkRMTA0KK0VYUE9SVFMNCitJbnN0YWxsRHNFeHRlbnNpb24NCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NvbXN2Y3MuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY29tc3Zjcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2EwOGJlMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NvbXN2Y3MuZGVmCkBAIC0wLDAgKzEsMjkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY29tc3Zjcy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgY29tc3Zjcy5kbGwNCitFWFBPUlRTDQorQ29zR2V0Q2FsbENvbnRleHQNCitHZXRNVEFUaHJlYWRQb29sTWV0cmljcw0KK0NvQ3JlYXRlQWN0aXZpdHkNCitDb0VudGVyU2VydmljZURvbWFpbg0KK0NvTGVhdmVTZXJ2aWNlRG9tYWluDQorQ29Mb2FkU2VydmljZXMNCitDb21TdmNzRXhjZXB0aW9uRmlsdGVyDQorQ29tU3Zjc0xvZ0Vycm9yDQorRGlzcE1hbkdldENvbnRleHQNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldE1hbmFnZWRFeHRlbnNpb25zDQorR2V0T2JqZWN0Q29udGV4dA0KK0dldFRya1N2ck9iamVjdA0KK01UU0NyZWF0ZUFjdGl2aXR5DQorTWluaUR1bXBXDQorUmVjeWNsZVN1cnJvZ2F0ZQ0KK1JlZ2lzdGVyQ29tRXZlbnRzDQorU2FmZVJlZg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NvbXVpZC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jb211aWQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJhMDQzMTEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jb211aWQuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ29tVUlELkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDb21VSUQuRExMDQorRVhQT1JUUw0KK0NyZWF0ZURDT01TZWN1cml0eVVJUGFnZQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY29uZm1zcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jb25mbXNwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ODVmY2QyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY29uZm1zcC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBjb25mbXNwLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBjb25mbXNwLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NvbnNvbGUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvY29uc29sZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDgwNjY1OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NvbnNvbGUuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDb25zb2xlLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDb25zb2xlLmRsbA0KK0VYUE9SVFMNCitDUGxBcHBsZXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jb250cm90LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NvbnRyb3QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVlOGY2NzYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jb250cm90LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENPTlRST1QuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENPTlRST1QuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY29ycG9sLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NvcnBvbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzFhYTI5YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NvcnBvbC5kZWYKQEAgLTAsMCArMSwxNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBjb3Jwb2wuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNvcnBvbC5kbGwNCitFWFBPUlRTDQorQ09STG9ja0Rvd25Qcm92aWRlcg0KK0NPUlBvbGljeUVFDQorQ09SUG9saWN5UHJvdmlkZXINCitEbGxDYW5VbmxvYWROb3cNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitHZXRQdWJsaXNoZXINCitHZXRVbnNpZ25lZFBlcm1pc3Npb25zDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY3JlZHVpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NyZWR1aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDQ2MDU0MAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NyZWR1aS5kZWYKQEAgLTAsMCArMSwyNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBjcmVkdWkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNyZWR1aS5kbGwNCitFWFBPUlRTDQorQ3JlZFVJQ21kTGluZVByb21wdEZvckNyZWRlbnRpYWxzQQ0KK0NyZWRVSUNtZExpbmVQcm9tcHRGb3JDcmVkZW50aWFsc1cNCitDcmVkVUlDb25maXJtQ3JlZGVudGlhbHNBDQorQ3JlZFVJQ29uZmlybUNyZWRlbnRpYWxzVw0KK0NyZWRVSUluaXRDb250cm9scw0KK0NyZWRVSVBhcnNlVXNlck5hbWVBDQorQ3JlZFVJUGFyc2VVc2VyTmFtZVcNCitDcmVkVUlQcm9tcHRGb3JDcmVkZW50aWFsc0ENCitDcmVkVUlQcm9tcHRGb3JDcmVkZW50aWFsc1cNCitDcmVkVUlSZWFkU1NPQ3JlZEENCitDcmVkVUlSZWFkU1NPQ3JlZFcNCitDcmVkVUlTdG9yZVNTT0NyZWRBDQorQ3JlZFVJU3RvcmVTU09DcmVkVw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvY3J5cHQzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jcnlwdDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jZjk4MGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY3J5cHQzMi5kZWYKQEAgLTAsMCArMSwyNzEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ1JZUFQzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ1JZUFQzMi5kbGwNCitFWFBPUlRTDQorQ2hhaW5XbHhMb2dvZmZFdmVudA0KK0Nsb3NlQ2VydFBlcmZvcm1hbmNlRGF0YQ0KK0NvbGxlY3RDZXJ0UGVyZm9ybWFuY2VEYXRhDQorT3BlbkNlcnRQZXJmb3JtYW5jZURhdGENCitDZXJ0QWRkQ1JMQ29udGV4dFRvU3RvcmUNCitDZXJ0QWRkQ1JMTGlua1RvU3RvcmUNCitDZXJ0QWRkQ1RMQ29udGV4dFRvU3RvcmUNCitDZXJ0QWRkQ1RMTGlua1RvU3RvcmUNCitDZXJ0QWRkQ2VydGlmaWNhdGVDb250ZXh0VG9TdG9yZQ0KK0NlcnRBZGRDZXJ0aWZpY2F0ZUxpbmtUb1N0b3JlDQorQ2VydEFkZEVuY29kZWRDUkxUb1N0b3JlDQorQ2VydEFkZEVuY29kZWRDVExUb1N0b3JlDQorQ2VydEFkZEVuY29kZWRDZXJ0aWZpY2F0ZVRvU3RvcmUNCitDZXJ0QWRkRW5jb2RlZENlcnRpZmljYXRlVG9TeXN0ZW1TdG9yZUENCitDZXJ0QWRkRW5jb2RlZENlcnRpZmljYXRlVG9TeXN0ZW1TdG9yZVcNCitDZXJ0QWRkRW5oYW5jZWRLZXlVc2FnZUlkZW50aWZpZXINCitDZXJ0QWRkU2VyaWFsaXplZEVsZW1lbnRUb1N0b3JlDQorQ2VydEFkZFN0b3JlVG9Db2xsZWN0aW9uDQorQ2VydEFsZ0lkVG9PSUQNCitDZXJ0Q2xvc2VTdG9yZQ0KK0NlcnRDb21wYXJlQ2VydGlmaWNhdGUNCitDZXJ0Q29tcGFyZUNlcnRpZmljYXRlTmFtZQ0KK0NlcnRDb21wYXJlSW50ZWdlckJsb2INCitDZXJ0Q29tcGFyZVB1YmxpY0tleUluZm8NCitDZXJ0Q29udHJvbFN0b3JlDQorQ2VydENyZWF0ZUNSTENvbnRleHQNCitDZXJ0Q3JlYXRlQ1RMQ29udGV4dA0KK0NlcnRDcmVhdGVDVExFbnRyeUZyb21DZXJ0aWZpY2F0ZUNvbnRleHRQcm9wZXJ0aWVzDQorQ2VydENyZWF0ZUNlcnRpZmljYXRlQ2hhaW5FbmdpbmUNCitDZXJ0Q3JlYXRlQ2VydGlmaWNhdGVDb250ZXh0DQorQ2VydENyZWF0ZUNvbnRleHQNCitDZXJ0Q3JlYXRlU2VsZlNpZ25DZXJ0aWZpY2F0ZQ0KK0NlcnREZWxldGVDUkxGcm9tU3RvcmUNCitDZXJ0RGVsZXRlQ1RMRnJvbVN0b3JlDQorQ2VydERlbGV0ZUNlcnRpZmljYXRlRnJvbVN0b3JlDQorQ2VydER1cGxpY2F0ZUNSTENvbnRleHQNCitDZXJ0RHVwbGljYXRlQ1RMQ29udGV4dA0KK0NlcnREdXBsaWNhdGVDZXJ0aWZpY2F0ZUNoYWluDQorQ2VydER1cGxpY2F0ZUNlcnRpZmljYXRlQ29udGV4dA0KK0NlcnREdXBsaWNhdGVTdG9yZQ0KK0NlcnRFbnVtQ1JMQ29udGV4dFByb3BlcnRpZXMNCitDZXJ0RW51bUNSTHNJblN0b3JlDQorQ2VydEVudW1DVExDb250ZXh0UHJvcGVydGllcw0KK0NlcnRFbnVtQ1RMc0luU3RvcmUNCitDZXJ0RW51bUNlcnRpZmljYXRlQ29udGV4dFByb3BlcnRpZXMNCitDZXJ0RW51bUNlcnRpZmljYXRlc0luU3RvcmUNCitDZXJ0RW51bVBoeXNpY2FsU3RvcmUNCitDZXJ0RW51bVN1YmplY3RJblNvcnRlZENUTA0KK0NlcnRFbnVtU3lzdGVtU3RvcmUNCitDZXJ0RW51bVN5c3RlbVN0b3JlTG9jYXRpb24NCitDZXJ0RmluZEF0dHJpYnV0ZQ0KK0NlcnRGaW5kQ1JMSW5TdG9yZQ0KK0NlcnRGaW5kQ1RMSW5TdG9yZQ0KK0NlcnRGaW5kQ2VydGlmaWNhdGVJbkNSTA0KK0NlcnRGaW5kQ2VydGlmaWNhdGVJblN0b3JlDQorQ2VydEZpbmRDaGFpbkluU3RvcmUNCitDZXJ0RmluZEV4dGVuc2lvbg0KK0NlcnRGaW5kUkROQXR0cg0KK0NlcnRGaW5kU3ViamVjdEluQ1RMDQorQ2VydEZpbmRTdWJqZWN0SW5Tb3J0ZWRDVEwNCitDZXJ0RnJlZUNSTENvbnRleHQNCitDZXJ0RnJlZUNUTENvbnRleHQNCitDZXJ0RnJlZUNlcnRpZmljYXRlQ2hhaW4NCitDZXJ0RnJlZUNlcnRpZmljYXRlQ2hhaW5FbmdpbmUNCitDZXJ0RnJlZUNlcnRpZmljYXRlQ29udGV4dA0KK0NlcnRHZXRDUkxDb250ZXh0UHJvcGVydHkNCitDZXJ0R2V0Q1JMRnJvbVN0b3JlDQorQ2VydEdldENUTENvbnRleHRQcm9wZXJ0eQ0KK0NlcnRHZXRDZXJ0aWZpY2F0ZUNoYWluDQorQ2VydEdldENlcnRpZmljYXRlQ29udGV4dFByb3BlcnR5DQorQ2VydEdldEVuaGFuY2VkS2V5VXNhZ2UNCitDZXJ0R2V0SW50ZW5kZWRLZXlVc2FnZQ0KK0NlcnRHZXRJc3N1ZXJDZXJ0aWZpY2F0ZUZyb21TdG9yZQ0KK0NlcnRHZXROYW1lU3RyaW5nQQ0KK0NlcnRHZXROYW1lU3RyaW5nVw0KK0NlcnRHZXRQdWJsaWNLZXlMZW5ndGgNCitDZXJ0R2V0U3RvcmVQcm9wZXJ0eQ0KK0NlcnRHZXRTdWJqZWN0Q2VydGlmaWNhdGVGcm9tU3RvcmUNCitDZXJ0R2V0VmFsaWRVc2FnZXMNCitDZXJ0SXNSRE5BdHRyc0luQ2VydGlmaWNhdGVOYW1lDQorQ2VydElzVmFsaWRDUkxGb3JDZXJ0aWZpY2F0ZQ0KK0NlcnROYW1lVG9TdHJBDQorQ2VydE5hbWVUb1N0clcNCitDZXJ0T0lEVG9BbGdJZA0KK0NlcnRPcGVuU3RvcmUNCitDZXJ0T3BlblN5c3RlbVN0b3JlQQ0KK0NlcnRPcGVuU3lzdGVtU3RvcmVXDQorQ2VydFJETlZhbHVlVG9TdHJBDQorQ2VydFJETlZhbHVlVG9TdHJXDQorQ2VydFJlZ2lzdGVyUGh5c2ljYWxTdG9yZQ0KK0NlcnRSZWdpc3RlclN5c3RlbVN0b3JlDQorQ2VydFJlbW92ZUVuaGFuY2VkS2V5VXNhZ2VJZGVudGlmaWVyDQorQ2VydFJlbW92ZVN0b3JlRnJvbUNvbGxlY3Rpb24NCitDZXJ0UmVzeW5jQ2VydGlmaWNhdGVDaGFpbkVuZ2luZQ0KK0NlcnRTYXZlU3RvcmUNCitDZXJ0U2VyaWFsaXplQ1JMU3RvcmVFbGVtZW50DQorQ2VydFNlcmlhbGl6ZUNUTFN0b3JlRWxlbWVudA0KK0NlcnRTZXJpYWxpemVDZXJ0aWZpY2F0ZVN0b3JlRWxlbWVudA0KK0NlcnRTZXRDUkxDb250ZXh0UHJvcGVydHkNCitDZXJ0U2V0Q1RMQ29udGV4dFByb3BlcnR5DQorQ2VydFNldENlcnRpZmljYXRlQ29udGV4dFByb3BlcnRpZXNGcm9tQ1RMRW50cnkNCitDZXJ0U2V0Q2VydGlmaWNhdGVDb250ZXh0UHJvcGVydHkNCitDZXJ0U2V0RW5oYW5jZWRLZXlVc2FnZQ0KK0NlcnRTZXRTdG9yZVByb3BlcnR5DQorQ2VydFN0clRvTmFtZUENCitDZXJ0U3RyVG9OYW1lVw0KK0NlcnRVbnJlZ2lzdGVyUGh5c2ljYWxTdG9yZQ0KK0NlcnRVbnJlZ2lzdGVyU3lzdGVtU3RvcmUNCitDZXJ0VmVyaWZ5Q1JMUmV2b2NhdGlvbg0KK0NlcnRWZXJpZnlDUkxUaW1lVmFsaWRpdHkNCitDZXJ0VmVyaWZ5Q1RMVXNhZ2UNCitDZXJ0VmVyaWZ5Q2VydGlmaWNhdGVDaGFpblBvbGljeQ0KK0NlcnRWZXJpZnlSZXZvY2F0aW9uDQorQ2VydFZlcmlmeVN1YmplY3RDZXJ0aWZpY2F0ZUNvbnRleHQNCitDZXJ0VmVyaWZ5VGltZVZhbGlkaXR5DQorQ2VydFZlcmlmeVZhbGlkaXR5TmVzdGluZw0KK0NyeXB0QWNxdWlyZUNlcnRpZmljYXRlUHJpdmF0ZUtleQ0KK0NyeXB0QmluYXJ5VG9TdHJpbmdBDQorQ3J5cHRCaW5hcnlUb1N0cmluZ1cNCitDcnlwdENsb3NlQXN5bmNIYW5kbGUNCitDcnlwdENyZWF0ZUFzeW5jSGFuZGxlDQorQ3J5cHRDcmVhdGVLZXlJZGVudGlmaWVyRnJvbUNTUA0KK0NyeXB0RGVjb2RlTWVzc2FnZQ0KK0NyeXB0RGVjb2RlT2JqZWN0DQorQ3J5cHREZWNvZGVPYmplY3RFeA0KK0NyeXB0RGVjcnlwdEFuZFZlcmlmeU1lc3NhZ2VTaWduYXR1cmUNCitDcnlwdERlY3J5cHRNZXNzYWdlDQorQ3J5cHRFbmNvZGVPYmplY3QNCitDcnlwdEVuY29kZU9iamVjdEV4DQorQ3J5cHRFbmNyeXB0TWVzc2FnZQ0KK0NyeXB0RW51bUtleUlkZW50aWZpZXJQcm9wZXJ0aWVzDQorQ3J5cHRFbnVtT0lERnVuY3Rpb24NCitDcnlwdEVudW1PSURJbmZvDQorQ3J5cHRFeHBvcnRQS0NTOA0KK0NyeXB0RXhwb3J0UHVibGljS2V5SW5mbw0KK0NyeXB0RXhwb3J0UHVibGljS2V5SW5mb0V4DQorQ3J5cHRGaW5kQ2VydGlmaWNhdGVLZXlQcm92SW5mbw0KK0NyeXB0RmluZExvY2FsaXplZE5hbWUNCitDcnlwdEZpbmRPSURJbmZvDQorQ3J5cHRGb3JtYXRPYmplY3QNCitDcnlwdEZyZWVPSURGdW5jdGlvbkFkZHJlc3MNCitDcnlwdEdldEFzeW5jUGFyYW0NCitDcnlwdEdldERlZmF1bHRPSUREbGxMaXN0DQorQ3J5cHRHZXREZWZhdWx0T0lERnVuY3Rpb25BZGRyZXNzDQorQ3J5cHRHZXRLZXlJZGVudGlmaWVyUHJvcGVydHkNCitDcnlwdEdldE1lc3NhZ2VDZXJ0aWZpY2F0ZXMNCitDcnlwdEdldE1lc3NhZ2VTaWduZXJDb3VudA0KK0NyeXB0R2V0T0lERnVuY3Rpb25BZGRyZXNzDQorQ3J5cHRHZXRPSURGdW5jdGlvblZhbHVlDQorQ3J5cHRIYXNoQ2VydGlmaWNhdGUNCitDcnlwdEhhc2hNZXNzYWdlDQorQ3J5cHRIYXNoUHVibGljS2V5SW5mbw0KK0NyeXB0SGFzaFRvQmVTaWduZWQNCitDcnlwdEltcG9ydFBLQ1M4DQorQ3J5cHRJbXBvcnRQdWJsaWNLZXlJbmZvDQorQ3J5cHRJbXBvcnRQdWJsaWNLZXlJbmZvRXgNCitDcnlwdEluaXRPSURGdW5jdGlvblNldA0KK0NyeXB0SW5zdGFsbERlZmF1bHRDb250ZXh0DQorQ3J5cHRJbnN0YWxsT0lERnVuY3Rpb25BZGRyZXNzDQorQ3J5cHRMb2FkU2lwDQorQ3J5cHRNZW1BbGxvYw0KK0NyeXB0TWVtRnJlZQ0KK0NyeXB0TWVtUmVhbGxvYw0KK0NyeXB0TXNnQ2FsY3VsYXRlRW5jb2RlZExlbmd0aA0KK0NyeXB0TXNnQ2xvc2UNCitDcnlwdE1zZ0NvbnRyb2wNCitDcnlwdE1zZ0NvdW50ZXJzaWduDQorQ3J5cHRNc2dDb3VudGVyc2lnbkVuY29kZWQNCitDcnlwdE1zZ0R1cGxpY2F0ZQ0KK0NyeXB0TXNnRW5jb2RlQW5kU2lnbkNUTA0KK0NyeXB0TXNnR2V0QW5kVmVyaWZ5U2lnbmVyDQorQ3J5cHRNc2dHZXRQYXJhbQ0KK0NyeXB0TXNnT3BlblRvRGVjb2RlDQorQ3J5cHRNc2dPcGVuVG9FbmNvZGUNCitDcnlwdE1zZ1NpZ25DVEwNCitDcnlwdE1zZ1VwZGF0ZQ0KK0NyeXB0TXNnVmVyaWZ5Q291bnRlcnNpZ25hdHVyZUVuY29kZWQNCitDcnlwdE1zZ1ZlcmlmeUNvdW50ZXJzaWduYXR1cmVFbmNvZGVkRXgNCitDcnlwdFByb3RlY3REYXRhDQorQ3J5cHRQcm90ZWN0TWVtb3J5DQorQ3J5cHRRdWVyeU9iamVjdA0KK0NyeXB0UmVnaXN0ZXJEZWZhdWx0T0lERnVuY3Rpb24NCitDcnlwdFJlZ2lzdGVyT0lERnVuY3Rpb24NCitDcnlwdFJlZ2lzdGVyT0lESW5mbw0KK0NyeXB0U0lQQWRkUHJvdmlkZXINCitDcnlwdFNJUENyZWF0ZUluZGlyZWN0RGF0YQ0KK0NyeXB0U0lQR2V0U2lnbmVkRGF0YU1zZw0KK0NyeXB0U0lQTG9hZA0KK0NyeXB0U0lQUHV0U2lnbmVkRGF0YU1zZw0KK0NyeXB0U0lQUmVtb3ZlUHJvdmlkZXINCitDcnlwdFNJUFJlbW92ZVNpZ25lZERhdGFNc2cNCitDcnlwdFNJUFJldHJpZXZlU3ViamVjdEd1aWQNCitDcnlwdFNJUFJldHJpZXZlU3ViamVjdEd1aWRGb3JDYXRhbG9nRmlsZQ0KK0NyeXB0U0lQVmVyaWZ5SW5kaXJlY3REYXRhDQorQ3J5cHRTZXRBc3luY1BhcmFtDQorQ3J5cHRTZXRLZXlJZGVudGlmaWVyUHJvcGVydHkNCitDcnlwdFNldE9JREZ1bmN0aW9uVmFsdWUNCitDcnlwdFNpZ25BbmRFbmNvZGVDZXJ0aWZpY2F0ZQ0KK0NyeXB0U2lnbkFuZEVuY3J5cHRNZXNzYWdlDQorQ3J5cHRTaWduQ2VydGlmaWNhdGUNCitDcnlwdFNpZ25NZXNzYWdlDQorQ3J5cHRTaWduTWVzc2FnZVdpdGhLZXkNCitDcnlwdFN0cmluZ1RvQmluYXJ5QQ0KK0NyeXB0U3RyaW5nVG9CaW5hcnlXDQorQ3J5cHRVbmluc3RhbGxEZWZhdWx0Q29udGV4dA0KK0NyeXB0VW5wcm90ZWN0RGF0YQ0KK0NyeXB0VW5wcm90ZWN0TWVtb3J5DQorQ3J5cHRVbnJlZ2lzdGVyRGVmYXVsdE9JREZ1bmN0aW9uDQorQ3J5cHRVbnJlZ2lzdGVyT0lERnVuY3Rpb24NCitDcnlwdFVucmVnaXN0ZXJPSURJbmZvDQorQ3J5cHRWZXJpZnlDZXJ0aWZpY2F0ZVNpZ25hdHVyZQ0KK0NyeXB0VmVyaWZ5Q2VydGlmaWNhdGVTaWduYXR1cmVFeA0KK0NyeXB0VmVyaWZ5RGV0YWNoZWRNZXNzYWdlSGFzaA0KK0NyeXB0VmVyaWZ5RGV0YWNoZWRNZXNzYWdlU2lnbmF0dXJlDQorQ3J5cHRWZXJpZnlNZXNzYWdlSGFzaA0KK0NyeXB0VmVyaWZ5TWVzc2FnZVNpZ25hdHVyZQ0KK0NyeXB0VmVyaWZ5TWVzc2FnZVNpZ25hdHVyZVdpdGhLZXkNCitJX0NlcnRQcm90ZWN0RnVuY3Rpb24NCitJX0NlcnRTcnZQcm90ZWN0RnVuY3Rpb24NCitJX0NlcnRTeW5jU3RvcmUNCitJX0NlcnRVcGRhdGVTdG9yZQ0KK0lfQ3J5cHRBZGRSZWZMcnVFbnRyeQ0KK0lfQ3J5cHRBZGRTbWFydENhcmRDZXJ0VG9TdG9yZQ0KK0lfQ3J5cHRBbGxvY1Rscw0KK0lfQ3J5cHRDcmVhdGVMcnVDYWNoZQ0KK0lfQ3J5cHRDcmVhdGVMcnVFbnRyeQ0KK0lfQ3J5cHREZXRhY2hUbHMNCitJX0NyeXB0RGlzYWJsZUxydU9mRW50cmllcw0KK0lfQ3J5cHRFbmFibGVMcnVPZkVudHJpZXMNCitJX0NyeXB0RW51bU1hdGNoaW5nTHJ1RW50cmllcw0KK0lfQ3J5cHRGaW5kTHJ1RW50cnkNCitJX0NyeXB0RmluZExydUVudHJ5RGF0YQ0KK0lfQ3J5cHRGaW5kU21hcnRDYXJkQ2VydEluU3RvcmUNCitJX0NyeXB0Rmx1c2hMcnVDYWNoZQ0KK0lfQ3J5cHRGcmVlTHJ1Q2FjaGUNCitJX0NyeXB0RnJlZVRscw0KK0lfQ3J5cHRHZXRBc24xRGVjb2Rlcg0KK0lfQ3J5cHRHZXRBc24xRW5jb2Rlcg0KK0lfQ3J5cHRHZXREZWZhdWx0Q3J5cHRQcm92DQorSV9DcnlwdEdldERlZmF1bHRDcnlwdFByb3ZGb3JFbmNyeXB0DQorSV9DcnlwdEdldEZpbGVWZXJzaW9uDQorSV9DcnlwdEdldExydUVudHJ5RGF0YQ0KK0lfQ3J5cHRHZXRMcnVFbnRyeUlkZW50aWZpZXINCitJX0NyeXB0R2V0T3NzR2xvYmFsDQorSV9DcnlwdEdldFRscw0KK0lfQ3J5cHRJbnNlcnRMcnVFbnRyeQ0KK0lfQ3J5cHRJbnN0YWxsQXNuMU1vZHVsZQ0KK0lfQ3J5cHRJbnN0YWxsT3NzR2xvYmFsDQorSV9DcnlwdFJlYWRUcnVzdGVkUHVibGlzaGVyRFdPUkRWYWx1ZUZyb21SZWdpc3RyeQ0KK0lfQ3J5cHRSZWdpc3RlclNtYXJ0Q2FyZFN0b3JlDQorSV9DcnlwdFJlbGVhc2VMcnVFbnRyeQ0KK0lfQ3J5cHRSZW1vdmVMcnVFbnRyeQ0KK0lfQ3J5cHRTZXRUbHMNCitJX0NyeXB0VG91Y2hMcnVFbnRyeQ0KK0lfQ3J5cHRVbmluc3RhbGxBc24xTW9kdWxlDQorSV9DcnlwdFVuaW5zdGFsbE9zc0dsb2JhbA0KK0lfQ3J5cHRVbnJlZ2lzdGVyU21hcnRDYXJkU3RvcmUNCitJX0NyeXB0V2Fsa0FsbExydUNhY2hlRW50cmllcw0KK1BGWEV4cG9ydENlcnRTdG9yZQ0KK1BGWEV4cG9ydENlcnRTdG9yZUV4DQorUEZYSW1wb3J0Q2VydFN0b3JlDQorUEZYSXNQRlhCbG9iDQorUEZYVmVyaWZ5UGFzc3dvcmQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jcnlwdGRsZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jcnlwdGRsZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGRjNGRjMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NyeXB0ZGxnLmRlZgpAQCAtMCwwICsxLDI5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENSWVBURExHLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDUllQVERMRy5kbGwNCitFWFBPUlRTDQorQ2VydENvbmZpZ3VyZVRydXN0QQ0KK0NlcnRDb25maWd1cmVUcnVzdFcNCitDZXJ0VHJ1c3RDZXJ0UG9saWN5DQorQ2VydFRydXN0Q2xlYW51cA0KK0NlcnRUcnVzdEZpbmFsUG9saWN5DQorQ2VydFRydXN0SW5pdA0KK0RlY29kZUF0dHJTZXF1ZW5jZQ0KK0RlY29kZVJlY2lwaWVudElEDQorRW5jb2RlQXR0clNlcXVlbmNlDQorRW5jb2RlUmVjaXBpZW50SUQNCitGb3JtYXRQS0lYRW1haWxQcm90ZWN0aW9uDQorRm9ybWF0VmVyaXNpZ25FeHRlbnNpb24NCitDZXJ0TW9kaWZ5Q2VydGlmaWNhdGVzVG9UcnVzdA0KK0NlcnRTZWxlY3RDZXJ0aWZpY2F0ZUENCitDZXJ0U2VsZWN0Q2VydGlmaWNhdGVXDQorQ2VydFZpZXdQcm9wZXJ0aWVzQQ0KK0NlcnRWaWV3UHJvcGVydGllc1cNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitHZXRGcmllbmRseU5hbWVPZkNlcnRBDQorR2V0RnJpZW5kbHlOYW1lT2ZDZXJ0Vw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NyeXB0ZGxsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NyeXB0ZGxsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43YmQyODU3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY3J5cHRkbGwuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY3J5cHRkbGwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNyeXB0ZGxsLmRsbA0KK0VYUE9SVFMNCitDREJ1aWxkSW50ZWdyaXR5VmVjdA0KK0NEQnVpbGRWZWN0DQorQ0RGaW5kQ29tbW9uQ1N5c3RlbQ0KK0NERmluZENvbW1vbkNTeXN0ZW1XaXRoS2V5DQorQ0RHZW5lcmF0ZVJhbmRvbUJpdHMNCitDRExvY2F0ZUNTeXN0ZW0NCitDRExvY2F0ZUNoZWNrU3VtDQorQ0RMb2NhdGVSbmcNCitDRFJlZ2lzdGVyQ1N5c3RlbQ0KK0NEUmVnaXN0ZXJDaGVja1N1bQ0KK0NEUmVnaXN0ZXJSbmcNCitNRDVGaW5hbA0KK01ENUluaXQNCitNRDVVcGRhdGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jcnlwdGV4dC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jcnlwdGV4dC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjY5YWRlNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NyeXB0ZXh0LmRlZgpAQCAtMCwwICsxLDQwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENSWVBURVhULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDUllQVEVYVC5kbGwNCitFWFBPUlRTDQorQ3J5cHRFeHRBZGRDRVINCitDcnlwdEV4dEFkZENFUlcNCitDcnlwdEV4dEFkZENSTA0KK0NyeXB0RXh0QWRkQ1JMVw0KK0NyeXB0RXh0QWRkQ1RMDQorQ3J5cHRFeHRBZGRDVExXDQorQ3J5cHRFeHRBZGRQN1INCitDcnlwdEV4dEFkZFA3UlcNCitDcnlwdEV4dEFkZFBGWA0KK0NyeXB0RXh0QWRkUEZYVw0KK0NyeXB0RXh0QWRkU1BDDQorQ3J5cHRFeHRBZGRTUENXDQorQ3J5cHRFeHRPcGVuQ0FUDQorQ3J5cHRFeHRPcGVuQ0FUVw0KK0NyeXB0RXh0T3BlbkNFUg0KK0NyeXB0RXh0T3BlbkNFUlcNCitDcnlwdEV4dE9wZW5DUkwNCitDcnlwdEV4dE9wZW5DUkxXDQorQ3J5cHRFeHRPcGVuQ1RMDQorQ3J5cHRFeHRPcGVuQ1RMVw0KK0NyeXB0RXh0T3BlblAxMA0KK0NyeXB0RXh0T3BlblAxMFcNCitDcnlwdEV4dE9wZW5QN1INCitDcnlwdEV4dE9wZW5QN1JXDQorQ3J5cHRFeHRPcGVuUEtDUzcNCitDcnlwdEV4dE9wZW5QS0NTN1cNCitDcnlwdEV4dE9wZW5TVFINCitDcnlwdEV4dE9wZW5TVFJXDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jcnlwdG5ldC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jcnlwdG5ldC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmY0NjdmNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2NyeXB0bmV0LmRlZgpAQCAtMCwwICsxLDI2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENSWVBUTkVULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDUllQVE5FVC5kbGwNCitFWFBPUlRTDQorQ2VydERsbFZlcmlmeUNUTFVzYWdlDQorQ2VydERsbFZlcmlmeVJldm9jYXRpb24NCitDcnlwdG5ldFdseExvZ29mZkV2ZW50DQorTGRhcFByb3ZPcGVuU3RvcmUNCitDcnlwdENhbmNlbEFzeW5jUmV0cmlldmFsDQorQ3J5cHRGbHVzaFRpbWVWYWxpZE9iamVjdA0KK0NyeXB0R2V0T2JqZWN0VXJsDQorQ3J5cHRHZXRUaW1lVmFsaWRPYmplY3QNCitDcnlwdEluc3RhbGxDYW5jZWxSZXRyaWV2YWwNCitDcnlwdFJldHJpZXZlT2JqZWN0QnlVcmxBDQorQ3J5cHRSZXRyaWV2ZU9iamVjdEJ5VXJsVw0KK0NyeXB0VW5pbnN0YWxsQ2FuY2VsUmV0cmlldmFsDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorSV9DcnlwdE5ldEVudW1VcmxDYWNoZUVudHJ5DQorSV9DcnlwdE5ldEdldEhvc3ROYW1lRnJvbVVybA0KK0lfQ3J5cHROZXRHZXRVc2VyRHNTdG9yZVVybA0KK0lfQ3J5cHROZXRJc0Nvbm5lY3RlZA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NyeXB0c3ZjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NyeXB0c3ZjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zOTY5YzVjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY3J5cHRzdmMuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDUllQVFNWQy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ1JZUFRTVkMuZGxsDQorRVhQT1JUUw0KK0NyeXB0U2VydmljZU1haW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9jcnlwdHVpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NyeXB0dWkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYyMThjNjQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jcnlwdHVpLmRlZgpAQCAtMCwwICsxLDU2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENSWVBUVUkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENSWVBUVUkuZGxsDQorRVhQT1JUUw0KK0FDVUlQcm92aWRlckludm9rZVVJDQorQ3J5cHRVSURsZ0NlcnRNZ3INCitDcnlwdFVJRGxnRnJlZUNBQ29udGV4dA0KK0NyeXB0VUlEbGdTZWxlY3RDQQ0KK0NyeXB0VUlEbGdTZWxlY3RDZXJ0aWZpY2F0ZUENCitDcnlwdFVJRGxnU2VsZWN0Q2VydGlmaWNhdGVGcm9tU3RvcmUNCitDcnlwdFVJRGxnU2VsZWN0Q2VydGlmaWNhdGVXDQorQ3J5cHRVSURsZ1NlbGVjdFN0b3JlQQ0KK0NyeXB0VUlEbGdTZWxlY3RTdG9yZVcNCitDcnlwdFVJRGxnVmlld0NSTEENCitDcnlwdFVJRGxnVmlld0NSTFcNCitDcnlwdFVJRGxnVmlld0NUTEENCitDcnlwdFVJRGxnVmlld0NUTFcNCitDcnlwdFVJRGxnVmlld0NlcnRpZmljYXRlQQ0KK0NyeXB0VUlEbGdWaWV3Q2VydGlmaWNhdGVQcm9wZXJ0aWVzQQ0KK0NyeXB0VUlEbGdWaWV3Q2VydGlmaWNhdGVQcm9wZXJ0aWVzVw0KK0NyeXB0VUlEbGdWaWV3Q2VydGlmaWNhdGVXDQorQ3J5cHRVSURsZ1ZpZXdDb250ZXh0DQorQ3J5cHRVSURsZ1ZpZXdTaWduZXJJbmZvQQ0KK0NyeXB0VUlEbGdWaWV3U2lnbmVySW5mb1cNCitDcnlwdFVJRnJlZUNlcnRpZmljYXRlUHJvcGVydGllc1BhZ2VzQQ0KK0NyeXB0VUlGcmVlQ2VydGlmaWNhdGVQcm9wZXJ0aWVzUGFnZXNXDQorQ3J5cHRVSUZyZWVWaWV3U2lnbmF0dXJlc1BhZ2VzQQ0KK0NyeXB0VUlGcmVlVmlld1NpZ25hdHVyZXNQYWdlc1cNCitDcnlwdFVJR2V0Q2VydGlmaWNhdGVQcm9wZXJ0aWVzUGFnZXNBDQorQ3J5cHRVSUdldENlcnRpZmljYXRlUHJvcGVydGllc1BhZ2VzVw0KK0NyeXB0VUlHZXRWaWV3U2lnbmF0dXJlc1BhZ2VzQQ0KK0NyeXB0VUlHZXRWaWV3U2lnbmF0dXJlc1BhZ2VzVw0KK0NyeXB0VUlTdGFydENlcnRNZ3INCitDcnlwdFVJV2l6QnVpbGRDVEwNCitDcnlwdFVJV2l6Q2VydFJlcXVlc3QNCitDcnlwdFVJV2l6Q3JlYXRlQ2VydFJlcXVlc3ROb0RTDQorQ3J5cHRVSVdpekRpZ2l0YWxTaWduDQorQ3J5cHRVSVdpekV4cG9ydA0KK0NyeXB0VUlXaXpGcmVlQ2VydFJlcXVlc3ROb0RTDQorQ3J5cHRVSVdpekZyZWVEaWdpdGFsU2lnbkNvbnRleHQNCitDcnlwdFVJV2l6SW1wb3J0DQorQ3J5cHRVSVdpelF1ZXJ5Q2VydFJlcXVlc3ROb0RTDQorQ3J5cHRVSVdpelN1Ym1pdENlcnRSZXF1ZXN0Tm9EUw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0Vucm9sbG1lbnRDT01PYmplY3RGYWN0b3J5X2dldEluc3RhbmNlDQorSV9DcnlwdFVJUHJvdGVjdA0KK0lfQ3J5cHRVSVByb3RlY3RGYWlsdXJlDQorTG9jYWxFbnJvbGwNCitMb2NhbEVucm9sbE5vRFMNCitSZXRyaWV2ZVBLQ1M3RnJvbUNBDQorV2l6YXJkRnJlZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NzY2RsbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jc2NkbGwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ0YWMyNjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jc2NkbGwuZGVmCkBAIC0wLDAgKzEsNzYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ1NDRExMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDU0NETEwuZGxsDQorRVhQT1JUUw0KK01wclNlcnZpY2VQcm9jDQorUmVJbnRfV25kUHJvYw0KK0xvZ29uSGFwcGVuZWQNCitMb2dvZmZIYXBwZW5lZA0KK1VwZGF0ZQ0KK1JlZnJlc2hDb25uZWN0aW9ucw0KK0JyZWFrQ29ubmVjdGlvbnMNCitDaGVja0NTQw0KK0NTQ0lzQ1NDRW5hYmxlZA0KK0NTQ0ZpbmRDbG9zZQ0KK0NTQ1NldE1heFNwYWNlDQorQ1NDRnJlZVNwYWNlDQorQ2hlY2tDU0NFeA0KK0NTQ0RvRW5hYmxlRGlzYWJsZQ0KK0NTQ1BpbkZpbGVBDQorQ1NDVW5waW5GaWxlQQ0KK0NTQ1F1ZXJ5RmlsZVN0YXR1c0ENCitDU0NGaW5kRmlyc3RGaWxlQQ0KK0NTQ0ZpbmROZXh0RmlsZUENCitDU0NEZWxldGVBDQorQ1NDRmlsbFNwYXJzZUZpbGVzQQ0KK0NTQ01lcmdlU2hhcmVBDQorQ1NDQ29weVJlcGxpY2FBDQorQ1NDRW51bUZvclN0YXRzQQ0KK0NTQ0lzU2VydmVyT2ZmbGluZUENCitDU0NHZXRTcGFjZVVzYWdlQQ0KK0NTQ1RyYW5zaXRpb25TZXJ2ZXJPbmxpbmVBDQorQ1NDQ2hlY2tTaGFyZU9ubGluZUENCitDU0NEb0xvY2FsUmVuYW1lQQ0KK0NTQ0VudW1Gb3JTdGF0c0V4QQ0KK0NTQ0ZpbmRGaXJzdEZpbGVGb3JTaWRBDQorQ1NDUXVlcnlGaWxlU3RhdHVzRXhBDQorQ1NDUXVlcnlTaGFyZVN0YXR1c0ENCitDU0NQdXJnZVVucGlubmVkRmlsZXMNCitDU0NQaW5GaWxlVw0KK0NTQ1VucGluRmlsZVcNCitDU0NRdWVyeUZpbGVTdGF0dXNXDQorQ1NDRmluZEZpcnN0RmlsZVcNCitDU0NGaW5kTmV4dEZpbGVXDQorQ1NDRGVsZXRlVw0KK0NTQ0ZpbGxTcGFyc2VGaWxlc1cNCitDU0NNZXJnZVNoYXJlVw0KK0NTQ0NvcHlSZXBsaWNhVw0KK0NTQ0VudW1Gb3JTdGF0c1cNCitDU0NJc1NlcnZlck9mZmxpbmVXDQorQ1NDR2V0U3BhY2VVc2FnZVcNCitDU0NUcmFuc2l0aW9uU2VydmVyT25saW5lVw0KK0NTQ0NoZWNrU2hhcmVPbmxpbmVXDQorQ1NDRG9Mb2NhbFJlbmFtZVcNCitDU0NFbnVtRm9yU3RhdHNFeFcNCitDU0NEb0xvY2FsUmVuYW1lRXhXDQorQ1NDQ2hlY2tTaGFyZU9ubGluZUV4Vw0KK0NTQ0JlZ2luU3luY2hyb25pemF0aW9uVw0KK0NTQ0VuZFN5bmNocm9uaXphdGlvblcNCitDU0NGaW5kRmlyc3RGaWxlRm9yU2lkVw0KK0NTQ0VuY3J5cHREZWNyeXB0RGF0YWJhc2UNCitDU0NRdWVyeURhdGFiYXNlU3RhdHVzDQorQ1NDUXVlcnlGaWxlU3RhdHVzRXhXDQorQ1NDUXVlcnlTaGFyZVN0YXR1c1cNCitDU0NTaGFyZUlkVG9TaGFyZU5hbWUNCitXaW5sb2dvbkxvZ29uRXZlbnQNCitXaW5sb2dvbkxvZ29mZkV2ZW50DQorV2lubG9nb25TY3JlZW5TYXZlckV2ZW50DQorV2lubG9nb25TaHV0ZG93bkV2ZW50DQorV2lubG9nb25Mb2NrRXZlbnQNCitXaW5sb2dvblVubG9ja0V2ZW50DQorV2lubG9nb25TdGFydFNoZWxsRXZlbnQNCitXaW5sb2dvblN0YXJ0dXBFdmVudA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NzY3VpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2NzY3VpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40YTgzYzMwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvY3NjdWkuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ1NDVUkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENTQ1VJLmRsbA0KK0VYUE9SVFMNCitDU0NVSU9wdGlvbnNQcm9wZXJ0eVNoZWV0DQorUHJvY2Vzc0dyb3VwUG9saWN5DQorQ1NDT3B0aW9uc19SdW5ETEwNCitDU0NPcHRpb25zX1J1bkRMTEENCitDU0NPcHRpb25zX1J1bkRMTFcNCitDU0NVSUluaXRpYWxpemUNCitDU0NVSU1zZ1Byb2Nlc3MNCitDU0NVSVJlbW92ZUZvbGRlckZyb21DYWNoZQ0KK0NTQ1VJU2V0U3RhdGUNCitDc2NQb2xpY3lQcm9jZXNzaW5nX1J1bkRMTFcNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2NzcnNydi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9jc3JzcnYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQyMzliMjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9jc3JzcnYuZGVmCkBAIC0wLDAgKzEsNDMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ1NSU1JWLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDU1JTUlYuZGxsDQorRVhQT1JUUw0KK0NzckFkZFN0YXRpY1NlcnZlclRocmVhZA0KK0NzckNhbGxTZXJ2ZXJGcm9tU2VydmVyDQorQ3NyQ29ubmVjdFRvVXNlcg0KK0NzckNyZWF0ZVByb2Nlc3MNCitDc3JDcmVhdGVSZW1vdGVUaHJlYWQNCitDc3JDcmVhdGVUaHJlYWQNCitDc3JDcmVhdGVXYWl0DQorQ3NyRGVidWdQcm9jZXNzDQorQ3NyRGVidWdQcm9jZXNzU3RvcA0KK0NzckRlcmVmZXJlbmNlUHJvY2Vzcw0KK0NzckRlcmVmZXJlbmNlVGhyZWFkDQorQ3NyRGVyZWZlcmVuY2VXYWl0DQorQ3NyRGVzdHJveVByb2Nlc3MNCitDc3JEZXN0cm95VGhyZWFkDQorQ3NyRXhlY1NlcnZlclRocmVhZA0KK0NzckdldFByb2Nlc3NMdWlkDQorQ3NySW1wZXJzb25hdGVDbGllbnQNCitDc3JMb2NrUHJvY2Vzc0J5Q2xpZW50SWQNCitDc3JMb2NrVGhyZWFkQnlDbGllbnRJZA0KK0Nzck1vdmVTYXRpc2ZpZWRXYWl0DQorQ3NyTm90aWZ5V2FpdA0KK0NzclBvcHVsYXRlRG9zRGV2aWNlcw0KK0NzclF1ZXJ5QXBpUG9ydA0KK0NzclJlZmVyZW5jZVRocmVhZA0KK0NzclJldmVydFRvU2VsZg0KK0NzclNlcnZlckluaXRpYWxpemF0aW9uDQorQ3NyU2V0QmFja2dyb3VuZFByaW9yaXR5DQorQ3NyU2V0Q2FsbGluZ1Nwb29sZXINCitDc3JTZXRGb3JlZ3JvdW5kUHJpb3JpdHkNCitDc3JTaHV0ZG93blByb2Nlc3Nlcw0KK0NzclVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcg0KK0NzclVubG9ja1Byb2Nlc3MNCitDc3JVbmxvY2tUaHJlYWQNCitDc3JWYWxpZGF0ZU1lc3NhZ2VCdWZmZXINCitDc3JWYWxpZGF0ZU1lc3NhZ2VTdHJpbmcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kM2Q4dGhrLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2QzZDh0aGsuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUyNjZmYmUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kM2Q4dGhrLmRlZgpAQCAtMCwwICsxLDY0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGQzZDh0aGsuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGQzZDh0aGsuZGxsDQorRVhQT1JUUw0KK09zVGh1bmtEM2RDb250ZXh0Q3JlYXRlDQorT3NUaHVua0QzZENvbnRleHREZXN0cm95DQorT3NUaHVua0QzZENvbnRleHREZXN0cm95QWxsDQorT3NUaHVua0QzZERyYXdQcmltaXRpdmVzMg0KK09zVGh1bmtEM2RWYWxpZGF0ZVRleHR1cmVTdGFnZVN0YXRlDQorT3NUaHVua0RkQWRkQXR0YWNoZWRTdXJmYWNlDQorT3NUaHVua0RkQWxwaGFCbHQNCitPc1RodW5rRGRBdHRhY2hTdXJmYWNlDQorT3NUaHVua0RkQmVnaW5Nb0NvbXBGcmFtZQ0KK09zVGh1bmtEZEJsdA0KK09zVGh1bmtEZENhbkNyZWF0ZUQzREJ1ZmZlcg0KK09zVGh1bmtEZENhbkNyZWF0ZVN1cmZhY2UNCitPc1RodW5rRGRDb2xvckNvbnRyb2wNCitPc1RodW5rRGRDcmVhdGVEM0RCdWZmZXINCitPc1RodW5rRGRDcmVhdGVEaXJlY3REcmF3T2JqZWN0DQorT3NUaHVua0RkQ3JlYXRlTW9Db21wDQorT3NUaHVua0RkQ3JlYXRlU3VyZmFjZQ0KK09zVGh1bmtEZENyZWF0ZVN1cmZhY2VFeA0KK09zVGh1bmtEZENyZWF0ZVN1cmZhY2VPYmplY3QNCitPc1RodW5rRGREZWxldGVEaXJlY3REcmF3T2JqZWN0DQorT3NUaHVua0RkRGVsZXRlU3VyZmFjZU9iamVjdA0KK09zVGh1bmtEZERlc3Ryb3lEM0RCdWZmZXINCitPc1RodW5rRGREZXN0cm95TW9Db21wDQorT3NUaHVua0RkRGVzdHJveVN1cmZhY2UNCitPc1RodW5rRGRFbmRNb0NvbXBGcmFtZQ0KK09zVGh1bmtEZEZsaXANCitPc1RodW5rRGRGbGlwVG9HRElTdXJmYWNlDQorT3NUaHVua0RkR2V0QXZhaWxEcml2ZXJNZW1vcnkNCitPc1RodW5rRGRHZXRCbHRTdGF0dXMNCitPc1RodW5rRGRHZXREQw0KK09zVGh1bmtEZEdldERyaXZlckluZm8NCitPc1RodW5rRGRHZXREcml2ZXJTdGF0ZQ0KK09zVGh1bmtEZEdldER4SGFuZGxlDQorT3NUaHVua0RkR2V0RmxpcFN0YXR1cw0KK09zVGh1bmtEZEdldEludGVybmFsTW9Db21wSW5mbw0KK09zVGh1bmtEZEdldE1vQ29tcEJ1ZmZJbmZvDQorT3NUaHVua0RkR2V0TW9Db21wRm9ybWF0cw0KK09zVGh1bmtEZEdldE1vQ29tcEd1aWRzDQorT3NUaHVua0RkR2V0U2NhbkxpbmUNCitPc1RodW5rRGRMb2NrDQorT3NUaHVua0RkTG9ja0QzRA0KK09zVGh1bmtEZFF1ZXJ5RGlyZWN0RHJhd09iamVjdA0KK09zVGh1bmtEZFF1ZXJ5TW9Db21wU3RhdHVzDQorT3NUaHVua0RkUmVlbmFibGVEaXJlY3REcmF3T2JqZWN0DQorT3NUaHVua0RkUmVsZWFzZURDDQorT3NUaHVua0RkUmVuZGVyTW9Db21wDQorT3NUaHVua0RkUmVzZXRWaXNyZ24NCitPc1RodW5rRGRTZXRDb2xvcktleQ0KK09zVGh1bmtEZFNldEV4Y2x1c2l2ZU1vZGUNCitPc1RodW5rRGRTZXRHYW1tYVJhbXANCitPc1RodW5rRGRTZXRPdmVybGF5UG9zaXRpb24NCitPc1RodW5rRGRVbmF0dGFjaFN1cmZhY2UNCitPc1RodW5rRGRVbmxvY2sNCitPc1RodW5rRGRVbmxvY2tEM0QNCitPc1RodW5rRGRVcGRhdGVPdmVybGF5DQorT3NUaHVua0RkV2FpdEZvclZlcnRpY2FsQmxhbmsNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kM2Q5LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2QzZDkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE3ZWNlMDIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kM2Q5LmRlZgpAQCAtMCwwICsxLDIyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGQzZDkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGQzZDkuZGxsDQorRVhQT1JUUw0KK0NoZWNrRnVsbHNjcmVlbg0KK0RpcmVjdDNEU2hhZGVyVmFsaWRhdG9yQ3JlYXRlOQ0KK1BTR1BFcnJvcg0KK1BTR1BTYW1wbGVUZXh0dXJlDQorRDNEUEVSRl9CZWdpbkV2ZW50DQorRDNEUEVSRl9FbmRFdmVudA0KK0QzRFBFUkZfR2V0U3RhdHVzDQorRDNEUEVSRl9RdWVyeVJlcGVhdEZyYW1lDQorRDNEUEVSRl9TZXRNYXJrZXINCitEM0RQRVJGX1NldE9wdGlvbnMNCitEM0RQRVJGX1NldFJlZ2lvbg0KK0RlYnVnU2V0TGV2ZWwNCitEZWJ1Z1NldE11dGUNCitEaXJlY3QzRENyZWF0ZTkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kM2R4b2YuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZDNkeG9mLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMDg2ZTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZDNkeG9mLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGQzZHhvZi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZDNkeG9mLmRsbA0KK0VYUE9SVFMNCitEaXJlY3RYRmlsZUNyZWF0ZQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZGFuaW0uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZGFuaW0uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU4OWQxY2MKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kYW5pbS5kZWYKQEAgLTAsMCArMSwxMTkyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERBTklNLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEQU5JTS5kbGwNCitFWFBPUlRTDQorOyBjbGFzcyBDUkJ2ciAqIF9fcHRyNjQgX19jZGVjbCBDT01Ub0NSQnZyKHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQpDQorP0NPTVRvQ1JCdnJAQFlBUEVBVkNSQnZyQEBQRUFVSVVua25vd25AQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUkFicyhjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSQWJzQEBZQVBFQVZDUk51bWJlckBAUEVBVjFAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSQWNvcyhjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSQWNvc0BAWUFQRUFWQ1JOdW1iZXJAQFBFQVYxQEBaDQorOyBib29sIF9fY2RlY2wgQ1JBY3F1aXJlR0NMb2NrKHZvaWQpDQorP0NSQWNxdWlyZUdDTG9ja0BAWUFfTlhaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUkFkZChjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUkFkZEBAWUFQRUFWQ1JOdW1iZXJAQFBFQVYxQDBAWg0KKzsgY2xhc3MgQ1JQb2ludDIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JBZGQoY2xhc3MgQ1JQb2ludDIgKiBfX3B0cjY0LGNsYXNzIENSVmVjdG9yMiAqIF9fcHRyNjQpDQorP0NSQWRkQEBZQVBFQVZDUlBvaW50MkBAUEVBVjFAUEVBVkNSVmVjdG9yMkBAQFoNCis7IGNsYXNzIENSUG9pbnQzICogX19wdHI2NCBfX2NkZWNsIENSQWRkKGNsYXNzIENSUG9pbnQzICogX19wdHI2NCxjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0KQ0KKz9DUkFkZEBAWUFQRUFWQ1JQb2ludDNAQFBFQVYxQFBFQVZDUlZlY3RvcjNAQEBaDQorOyBjbGFzcyBDUlZlY3RvcjIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JBZGQoY2xhc3MgQ1JWZWN0b3IyICogX19wdHI2NCxjbGFzcyBDUlZlY3RvcjIgKiBfX3B0cjY0KQ0KKz9DUkFkZEBAWUFQRUFWQ1JWZWN0b3IyQEBQRUFWMUAwQFoNCis7IGNsYXNzIENSVmVjdG9yMyAqIF9fcHRyNjQgX19jZGVjbCBDUkFkZChjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0LGNsYXNzIENSVmVjdG9yMyAqIF9fcHRyNjQpDQorP0NSQWRkQEBZQVBFQVZDUlZlY3RvcjNAQFBFQVYxQDBAWg0KKzsgYm9vbCBfX2NkZWNsIENSQWRkQnZyVG9SdW4oY2xhc3MgQ1JWaWV3ICogX19wdHI2NCxjbGFzcyBDUkJ2ciAqIF9fcHRyNjQsYm9vbCxsb25nICogX19wdHI2NCkNCis/Q1JBZGRCdnJUb1J1bkBAWUFfTlBFQVZDUlZpZXdAQFBFQVZDUkJ2ckBAX05QRUFKQFoNCis7IGxvbmcgX19jZGVjbCBDUkFkZEVsZW1lbnQoY2xhc3MgQ1JBcnJheSAqIF9fcHRyNjQsY2xhc3MgQ1JCdnIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpDQorP0NSQWRkRWxlbWVudEBAWUFKUEVBVkNSQXJyYXlAQFBFQVZDUkJ2ckBAS0BaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCBfX2NkZWNsIENSQWRkUGlja0RhdGEoY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQsc3RydWN0IElVbmtub3duICogX19wdHI2NCxib29sKQ0KKz9DUkFkZFBpY2tEYXRhQEBZQVBFQVZDUkdlb21ldHJ5QEBQRUFWMUBQRUFVSVVua25vd25AQF9OQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JBZGRQaWNrRGF0YShjbGFzcyBDUkltYWdlICogX19wdHI2NCxzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0LGJvb2wpDQorP0NSQWRkUGlja0RhdGFAQFlBUEVBVkNSSW1hZ2VAQFBFQVYxQFBFQVVJVW5rbm93bkBAX05AWg0KKzsgYm9vbCBfX2NkZWNsIENSQWRkUmVmR0Modm9pZCAqIF9fcHRyNjQpDQorP0NSQWRkUmVmR0NAQFlBX05QRUFYQFoNCis7IGJvb2wgX19jZGVjbCBDUkFkZFNpdGUoY2xhc3MgQ1JTaXRlICogX19wdHI2NCkNCis/Q1JBZGRTaXRlQEBZQV9OUEVBVkNSU2l0ZUBAQFoNCis7IGNsYXNzIENSRXZlbnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1JBbHdheXModm9pZCkNCis/Q1JBbHdheXNAQFlBUEVBVkNSRXZlbnRAQFhaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCBfX2NkZWNsIENSQW1iaWVudENvbG9yKGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0LGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0KQ0KKz9DUkFtYmllbnRDb2xvckBAWUFQRUFWQ1JHZW9tZXRyeUBAUEVBVjFAUEVBVkNSQ29sb3JAQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCBfX2NkZWNsIENSQW1iaWVudExpZ2h0KHZvaWQpDQorP0NSQW1iaWVudExpZ2h0QEBZQVBFQVZDUkdlb21ldHJ5QEBYWg0KKzsgY2xhc3MgQ1JCb29sZWFuICogX19wdHI2NCBfX2NkZWNsIENSQW5kKGNsYXNzIENSQm9vbGVhbiAqIF9fcHRyNjQsY2xhc3MgQ1JCb29sZWFuICogX19wdHI2NCkNCis/Q1JBbmRAQFlBUEVBVkNSQm9vbGVhbkBAUEVBVjFAMEBaDQorOyBjbGFzcyBDUkV2ZW50ICogX19wdHI2NCBfX2NkZWNsIENSQW5kRXZlbnQoY2xhc3MgQ1JFdmVudCAqIF9fcHRyNjQsY2xhc3MgQ1JFdmVudCAqIF9fcHRyNjQpDQorP0NSQW5kRXZlbnRAQFlBUEVBVkNSRXZlbnRAQFBFQVYxQDBAWg0KKzsgY2xhc3MgQ1JGb250U3R5bGUgKiBfX3B0cjY0IF9fY2RlY2wgQ1JBbnRpQWxpYXNpbmcoY2xhc3MgQ1JGb250U3R5bGUgKiBfX3B0cjY0LGRvdWJsZSkNCis/Q1JBbnRpQWxpYXNpbmdAQFlBUEVBVkNSRm9udFN0eWxlQEBQRUFWMUBOQFoNCis7IGNsYXNzIENSTGluZVN0eWxlICogX19wdHI2NCBfX2NkZWNsIENSQW50aUFsaWFzaW5nKGNsYXNzIENSTGluZVN0eWxlICogX19wdHI2NCxkb3VibGUpDQorP0NSQW50aUFsaWFzaW5nQEBZQVBFQVZDUkxpbmVTdHlsZUBAUEVBVjFATkBaDQorOyBjbGFzcyBDUkV2ZW50ICogX19wdHI2NCBfX2NkZWNsIENSQXBwVHJpZ2dlcmVkRXZlbnQodm9pZCkNCis/Q1JBcHBUcmlnZ2VyZWRFdmVudEBAWUFQRUFWQ1JFdmVudEBAWFoNCis7IGNsYXNzIENSRFhUcmFuc2Zvcm1SZXN1bHQgKiBfX3B0cjY0IF9fY2RlY2wgQ1JBcHBseURYVHJhbnNmb3JtKHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQsbG9uZyxjbGFzcyBDUkJ2ciAqIF9fcHRyNjQgKiBfX3B0cjY0LGNsYXNzIENSQnZyICogX19wdHI2NCkNCis/Q1JBcHBseURYVHJhbnNmb3JtQEBZQVBFQVZDUkRYVHJhbnNmb3JtUmVzdWx0QEBQRUFVSVVua25vd25AQEpQRUFQRUFWQ1JCdnJAQFBFQVYzQEBaDQorOyBjbGFzcyBDUkNvbG9yICogX19wdHI2NCBfX2NkZWNsIENSQXF1YSh2b2lkKQ0KKz9DUkFxdWFAQFlBUEVBVkNSQ29sb3JAQFhaDQorOyBjbGFzcyBDUlBhdGgyICogX19wdHI2NCBfX2NkZWNsIENSQXJjKGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSkNCis/Q1JBcmNAQFlBUEVBVkNSUGF0aDJAQE5OTk5AWg0KKzsgY2xhc3MgQ1JQYXRoMiAqIF9fcHRyNjQgX19jZGVjbCBDUkFyY1JhZGlhbnMoZG91YmxlLGRvdWJsZSxkb3VibGUsZG91YmxlKQ0KKz9DUkFyY1JhZGlhbnNAQFlBUEVBVkNSUGF0aDJAQE5OTk5AWg0KKzsgY2xhc3MgQ1JQYXRoMiAqIF9fcHRyNjQgX19jZGVjbCBDUkFyY1JhZGlhbnMoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUkFyY1JhZGlhbnNAQFlBUEVBVkNSUGF0aDJAQFBFQVZDUk51bWJlckBAMDAwQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSQXNpbihjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSQXNpbkBAWUFQRUFWQ1JOdW1iZXJAQFBFQVYxQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUkF0YW4yKGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSQXRhbjJAQFlBUEVBVkNSTnVtYmVyQEBQRUFWMUAwQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSQXRhbihjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSQXRhbkBAWUFQRUFWQ1JOdW1iZXJAQFBFQVYxQEBaDQorOyBjbGFzcyBDUkV2ZW50ICogX19wdHI2NCBfX2NkZWNsIENSQXR0YWNoRGF0YShjbGFzcyBDUkV2ZW50ICogX19wdHI2NCxjbGFzcyBDUkJ2ciAqIF9fcHRyNjQpDQorP0NSQXR0YWNoRGF0YUBAWUFQRUFWQ1JFdmVudEBAUEVBVjFAUEVBVkNSQnZyQEBAWg0KKzsgY2xhc3MgQ1JCdnIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JCU3BsaW5lKGludCxsb25nLGNsYXNzIENSTnVtYmVyICogX19wdHI2NCAqIF9fcHRyNjQgY29uc3QsbG9uZyxjbGFzcyBDUkJ2ciAqIF9fcHRyNjQgKiBfX3B0cjY0IGNvbnN0LGxvbmcsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0ICogX19wdHI2NCBjb25zdCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsZW51bSBDUl9CVlJfVFlQRUlEKQ0KKz9DUkJTcGxpbmVAQFlBUEVBVkNSQnZyQEBISlFFQVBFQVZDUk51bWJlckBASlFFQVBFQVYxQEowUEVBVjJAVzRDUl9CVlJfVFlQRUlEQEBAWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQgX19jZGVjbCBDUkJpbGxib2FyZChjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCxjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0KQ0KKz9DUkJpbGxib2FyZEBAWUFQRUFWQ1JHZW9tZXRyeUBAUEVBVjFAUEVBVkNSVmVjdG9yM0BAQFoNCis7IGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0IF9fY2RlY2wgQ1JCbGFjayh2b2lkKQ0KKz9DUkJsYWNrQEBZQVBFQVZDUkNvbG9yQEBYWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQgX19jZGVjbCBDUkJsZW5kVGV4dHVyZURpZmZ1c2UoY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQsY2xhc3MgQ1JCb29sZWFuICogX19wdHI2NCkNCis/Q1JCbGVuZFRleHR1cmVEaWZmdXNlQEBZQVBFQVZDUkdlb21ldHJ5QEBQRUFWMUBQRUFWQ1JCb29sZWFuQEBAWg0KKzsgY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQgX19jZGVjbCBDUkJsdWUodm9pZCkNCis/Q1JCbHVlQEBZQVBFQVZDUkNvbG9yQEBYWg0KKzsgY2xhc3MgQ1JGb250U3R5bGUgKiBfX3B0cjY0IF9fY2RlY2wgQ1JCb2xkKGNsYXNzIENSRm9udFN0eWxlICogX19wdHI2NCkNCis/Q1JCb2xkQEBZQVBFQVZDUkZvbnRTdHlsZUBAUEVBVjFAQFoNCis7IGNsYXNzIENSQmJveDIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JCb3VuZGluZ0JveChjbGFzcyBDUkltYWdlICogX19wdHI2NCkNCis/Q1JCb3VuZGluZ0JveEBAWUFQRUFWQ1JCYm94MkBAUEVBVkNSSW1hZ2VAQEBaDQorOyBjbGFzcyBDUkJib3gyICogX19wdHI2NCBfX2NkZWNsIENSQm91bmRpbmdCb3goY2xhc3MgQ1JQYXRoMiAqIF9fcHRyNjQsY2xhc3MgQ1JMaW5lU3R5bGUgKiBfX3B0cjY0KQ0KKz9DUkJvdW5kaW5nQm94QEBZQVBFQVZDUkJib3gyQEBQRUFWQ1JQYXRoMkBAUEVBVkNSTGluZVN0eWxlQEBAWg0KKzsgY2xhc3MgQ1JCYm94MyAqIF9fcHRyNjQgX19jZGVjbCBDUkJvdW5kaW5nQm94KGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0KQ0KKz9DUkJvdW5kaW5nQm94QEBZQVBFQVZDUkJib3gzQEBQRUFWQ1JHZW9tZXRyeUBAQFoNCis7IGNsYXNzIENSQnZyICogX19wdHI2NCBfX2NkZWNsIENSQnZyQXBwbHlQcmVmZXJlbmNlKGNsYXNzIENSQnZyICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsc3RydWN0IHRhZ1ZBUklBTlQpDQorP0NSQnZyQXBwbHlQcmVmZXJlbmNlQEBZQVBFQVZDUkJ2ckBAUEVBVjFAUEVBR1V0YWdWQVJJQU5UQEBAWg0KKzsgYm9vbCBfX2NkZWNsIENSQnZyVG9DT00oY2xhc3MgQ1JCdnIgKiBfX3B0cjY0LHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9DUkJ2clRvQ09NQEBZQV9OUEVBVkNSQnZyQEBBRUJVX0dVSURAQFBFQVBFQVhAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JDZWlsaW5nKGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JDZWlsaW5nQEBZQVBFQVZDUk51bWJlckBAUEVBVjFAQFoNCis7IHZvaWQgX19jZGVjbCBDUkNsZWFyTGFzdEVycm9yKHZvaWQpDQorP0NSQ2xlYXJMYXN0RXJyb3JAQFlBWFhaDQorOyBjbGFzcyBDUk1hdHRlICogX19wdHI2NCBfX2NkZWNsIENSQ2xlYXJNYXR0ZSh2b2lkKQ0KKz9DUkNsZWFyTWF0dGVAQFlBUEVBVkNSTWF0dGVAQFhaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENSQ2xpcChjbGFzcyBDUkltYWdlICogX19wdHI2NCxjbGFzcyBDUk1hdHRlICogX19wdHI2NCkNCis/Q1JDbGlwQEBZQVBFQVZDUkltYWdlQEBQRUFWMUBQRUFWQ1JNYXR0ZUBAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JDbGlwUG9seWdvbkltYWdlKGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0LGNsYXNzIENSQXJyYXkgKiBfX3B0cjY0KQ0KKz9DUkNsaXBQb2x5Z29uSW1hZ2VAQFlBUEVBVkNSSW1hZ2VAQFBFQVYxQFBFQVZDUkFycmF5QEBAWg0KKzsgY2xhc3MgQ1JQYXRoMiAqIF9fcHRyNjQgX19jZGVjbCBDUkNsb3NlKGNsYXNzIENSUGF0aDIgKiBfX3B0cjY0KQ0KKz9DUkNsb3NlQEBZQVBFQVZDUlBhdGgyQEBQRUFWMUBAWg0KKzsgY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQgX19jZGVjbCBDUkNvbG9ySHNsKGRvdWJsZSxkb3VibGUsZG91YmxlKQ0KKz9DUkNvbG9ySHNsQEBZQVBFQVZDUkNvbG9yQEBOTk5AWg0KKzsgY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQgX19jZGVjbCBDUkNvbG9ySHNsKGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUkNvbG9ySHNsQEBZQVBFQVZDUkNvbG9yQEBQRUFWQ1JOdW1iZXJAQDAwQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JDb2xvcktleShjbGFzcyBDUkltYWdlICogX19wdHI2NCxjbGFzcyBDUkNvbG9yICogX19wdHI2NCkNCis/Q1JDb2xvcktleUBAWUFQRUFWQ1JJbWFnZUBAUEVBVjFAUEVBVkNSQ29sb3JAQEBaDQorOyBjbGFzcyBDUkNvbG9yICogX19wdHI2NCBfX2NkZWNsIENSQ29sb3JSZ2IyNTUoc2hvcnQsc2hvcnQsc2hvcnQpDQorP0NSQ29sb3JSZ2IyNTVAQFlBUEVBVkNSQ29sb3JAQEZGRkBaDQorOyBjbGFzcyBDUkNvbG9yICogX19wdHI2NCBfX2NkZWNsIENSQ29sb3JSZ2IoZG91YmxlLGRvdWJsZSxkb3VibGUpDQorP0NSQ29sb3JSZ2JAQFlBUEVBVkNSQ29sb3JAQE5OTkBaDQorOyBjbGFzcyBDUkNvbG9yICogX19wdHI2NCBfX2NkZWNsIENSQ29sb3JSZ2IoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSQ29sb3JSZ2JAQFlBUEVBVkNSQ29sb3JAQFBFQVZDUk51bWJlckBAMDBAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCBfX2NkZWNsIENSQ29tcG9zZTIoY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCxjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3B0cjY0KQ0KKz9DUkNvbXBvc2UyQEBZQVBFQVZDUlRyYW5zZm9ybTJAQFBFQVYxQDBAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCBfX2NkZWNsIENSQ29tcG9zZTIoY2xhc3MgQ1JBcnJheSAqIF9fcHRyNjQpDQorP0NSQ29tcG9zZTJAQFlBUEVBVkNSVHJhbnNmb3JtMkBAUEVBVkNSQXJyYXlAQEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JDb21wb3NlMyhjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3B0cjY0LGNsYXNzIENSVHJhbnNmb3JtMyAqIF9fcHRyNjQpDQorP0NSQ29tcG9zZTNAQFlBUEVBVkNSVHJhbnNmb3JtM0BAUEVBVjFAMEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JDb21wb3NlMyhjbGFzcyBDUkFycmF5ICogX19wdHI2NCkNCis/Q1JDb21wb3NlM0BAWUFQRUFWQ1JUcmFuc2Zvcm0zQEBQRUFWQ1JBcnJheUBAQFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JDb25jYXQoY2xhc3MgQ1JQYXRoMiAqIF9fcHRyNjQsY2xhc3MgQ1JQYXRoMiAqIF9fcHRyNjQpDQorP0NSQ29uY2F0QEBZQVBFQVZDUlBhdGgyQEBQRUFWMUAwQFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JDb25jYXQoY2xhc3MgQ1JBcnJheSAqIF9fcHRyNjQpDQorP0NSQ29uY2F0QEBZQVBFQVZDUlBhdGgyQEBQRUFWQ1JBcnJheUBAQFoNCis7IGNsYXNzIENSU3RyaW5nICogX19wdHI2NCBfX2NkZWNsIENSQ29uY2F0U3RyaW5nKGNsYXNzIENSU3RyaW5nICogX19wdHI2NCxjbGFzcyBDUlN0cmluZyAqIF9fcHRyNjQpDQorP0NSQ29uY2F0U3RyaW5nQEBZQVBFQVZDUlN0cmluZ0BAUEVBVjFAMEBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fcHRyNjQgX19jZGVjbCBDUkNvbmQoY2xhc3MgQ1JCb29sZWFuICogX19wdHI2NCxjbGFzcyBDUkJ2ciAqIF9fcHRyNjQsY2xhc3MgQ1JCdnIgKiBfX3B0cjY0KQ0KKz9DUkNvbmRAQFlBUEVBVkNSQnZyQEBQRUFWQ1JCb29sZWFuQEBQRUFWMUAxQFoNCis7IGJvb2wgX19jZGVjbCBDUkNvbm5lY3Qoc3RydWN0IEhJTlNUQU5DRV9fICogX19wdHI2NCkNCis/Q1JDb25uZWN0QEBZQV9OUEVBVUhJTlNUQU5DRV9fQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JDb3MoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUkNvc0BAWUFQRUFWQ1JOdW1iZXJAQFBFQVYxQEBaDQorOyBjbGFzcyBDUkFycmF5ICogX19wdHI2NCBfX2NkZWNsIENSQ3JlYXRlQXJyYXkobG9uZyxkb3VibGUgKiBfX3B0cjY0IGNvbnN0LGVudW0gQ1JfQlZSX1RZUEVJRCkNCis/Q1JDcmVhdGVBcnJheUBAWUFQRUFWQ1JBcnJheUBASlFFQU5XNENSX0JWUl9UWVBFSURAQEBaDQorOyBjbGFzcyBDUkFycmF5ICogX19wdHI2NCBfX2NkZWNsIENSQ3JlYXRlQXJyYXkobG9uZyxjbGFzcyBDUkJ2ciAqIF9fcHRyNjQgKiBfX3B0cjY0IGNvbnN0LHVuc2lnbmVkIGxvbmcpDQorP0NSQ3JlYXRlQXJyYXlAQFlBUEVBVkNSQXJyYXlAQEpRRUFQRUFWQ1JCdnJAQEtAWg0KKzsgY2xhc3MgQ1JCb29sZWFuICogX19wdHI2NCBfX2NkZWNsIENSQ3JlYXRlQm9vbGVhbihib29sKQ0KKz9DUkNyZWF0ZUJvb2xlYW5AQFlBUEVBVkNSQm9vbGVhbkBAX05AWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JDcmVhdGVOdW1iZXIoZG91YmxlKQ0KKz9DUkNyZWF0ZU51bWJlckBAWUFQRUFWQ1JOdW1iZXJAQE5AWg0KKzsgY2xhc3MgQ1JQb2ludDIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JDcmVhdGVQb2ludDIoZG91YmxlLGRvdWJsZSkNCis/Q1JDcmVhdGVQb2ludDJAQFlBUEVBVkNSUG9pbnQyQEBOTkBaDQorOyBjbGFzcyBDUlBvaW50MiAqIF9fcHRyNjQgX19jZGVjbCBDUkNyZWF0ZVBvaW50MihjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUkNyZWF0ZVBvaW50MkBAWUFQRUFWQ1JQb2ludDJAQFBFQVZDUk51bWJlckBAMEBaDQorOyBjbGFzcyBDUlBvaW50MyAqIF9fcHRyNjQgX19jZGVjbCBDUkNyZWF0ZVBvaW50Myhkb3VibGUsZG91YmxlLGRvdWJsZSkNCis/Q1JDcmVhdGVQb2ludDNAQFlBUEVBVkNSUG9pbnQzQEBOTk5AWg0KKzsgY2xhc3MgQ1JQb2ludDMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JDcmVhdGVQb2ludDMoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSQ3JlYXRlUG9pbnQzQEBZQVBFQVZDUlBvaW50M0BAUEVBVkNSTnVtYmVyQEAwMEBaDQorOyBjbGFzcyBDUlN0cmluZyAqIF9fcHRyNjQgX19jZGVjbCBDUkNyZWF0ZVN0cmluZyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP0NSQ3JlYXRlU3RyaW5nQEBZQVBFQVZDUlN0cmluZ0BAUEVBR0BaDQorOyBjbGFzcyBDUlR1cGxlICogX19wdHI2NCBfX2NkZWNsIENSQ3JlYXRlVHVwbGUobG9uZyxjbGFzcyBDUkJ2ciAqIF9fcHRyNjQgKiBfX3B0cjY0IGNvbnN0KQ0KKz9DUkNyZWF0ZVR1cGxlQEBZQVBFQVZDUlR1cGxlQEBKUUVBUEVBVkNSQnZyQEBAWg0KKzsgY2xhc3MgQ1JVc2VyRGF0YSAqIF9fcHRyNjQgX19jZGVjbCBDUkNyZWF0ZVVzZXJEYXRhKHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQpDQorP0NSQ3JlYXRlVXNlckRhdGFAQFlBUEVBVkNSVXNlckRhdGFAQFBFQVVJVW5rbm93bkBAQFoNCis7IGNsYXNzIENSVmVjdG9yMiAqIF9fcHRyNjQgX19jZGVjbCBDUkNyZWF0ZVZlY3RvcjIoZG91YmxlLGRvdWJsZSkNCis/Q1JDcmVhdGVWZWN0b3IyQEBZQVBFQVZDUlZlY3RvcjJAQE5OQFoNCis7IGNsYXNzIENSVmVjdG9yMiAqIF9fcHRyNjQgX19jZGVjbCBDUkNyZWF0ZVZlY3RvcjIoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JDcmVhdGVWZWN0b3IyQEBZQVBFQVZDUlZlY3RvcjJAQFBFQVZDUk51bWJlckBAMEBaDQorOyBjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JDcmVhdGVWZWN0b3IzKGRvdWJsZSxkb3VibGUsZG91YmxlKQ0KKz9DUkNyZWF0ZVZlY3RvcjNAQFlBUEVBVkNSVmVjdG9yM0BATk5OQFoNCis7IGNsYXNzIENSVmVjdG9yMyAqIF9fcHRyNjQgX19jZGVjbCBDUkNyZWF0ZVZlY3RvcjMoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSQ3JlYXRlVmVjdG9yM0BAWUFQRUFWQ1JWZWN0b3IzQEBQRUFWQ1JOdW1iZXJAQDAwQFoNCis7IGNsYXNzIENSVmlldyAqIF9fcHRyNjQgX19jZGVjbCBDUkNyZWF0ZVZpZXcodm9pZCkNCis/Q1JDcmVhdGVWaWV3QEBZQVBFQVZDUlZpZXdAQFhaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENSQ3JvcChjbGFzcyBDUkltYWdlICogX19wdHI2NCxjbGFzcyBDUlBvaW50MiAqIF9fcHRyNjQsY2xhc3MgQ1JQb2ludDIgKiBfX3B0cjY0KQ0KKz9DUkNyb3BAQFlBUEVBVkNSSW1hZ2VAQFBFQVYxQFBFQVZDUlBvaW50MkBAMUBaDQorOyBjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JDcm9zcyhjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0LGNsYXNzIENSVmVjdG9yMyAqIF9fcHRyNjQpDQorP0NSQ3Jvc3NAQFlBUEVBVkNSVmVjdG9yM0BAUEVBVjFAMEBaDQorOyBjbGFzcyBDUlBhdGgyICogX19wdHI2NCBfX2NkZWNsIENSQ3ViaWNCU3BsaW5lUGF0aChjbGFzcyBDUkFycmF5ICogX19wdHI2NCxjbGFzcyBDUkFycmF5ICogX19wdHI2NCkNCis/Q1JDdWJpY0JTcGxpbmVQYXRoQEBZQVBFQVZDUlBhdGgyQEBQRUFWQ1JBcnJheUBAMEBaDQorOyBjbGFzcyBDUkNvbG9yICogX19wdHI2NCBfX2NkZWNsIENSQ3lhbih2b2lkKQ0KKz9DUkN5YW5AQFlBUEVBVkNSQ29sb3JAQFhaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCBfX2NkZWNsIENSRDNEUk1UZXh0dXJlKGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0LHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQpDQorP0NSRDNEUk1UZXh0dXJlQEBZQVBFQVZDUkdlb21ldHJ5QEBQRUFWMUBQRUFVSVVua25vd25AQEBaDQorOyBjbGFzcyBDUkxpbmVTdHlsZSAqIF9fcHRyNjQgX19jZGVjbCBDUkRhc2goY2xhc3MgQ1JMaW5lU3R5bGUgKiBfX3B0cjY0LGNsYXNzIENSRGFzaFN0eWxlICogX19wdHI2NCkNCis/Q1JEYXNoQEBZQVBFQVZDUkxpbmVTdHlsZUBAUEVBVjFAUEVBVkNSRGFzaFN0eWxlQEBAWg0KKzsgY2xhc3MgQ1JMaW5lU3R5bGUgKiBfX3B0cjY0IF9fY2RlY2wgQ1JEYXNoRXgoY2xhc3MgQ1JMaW5lU3R5bGUgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpDQorP0NSRGFzaEV4QEBZQVBFQVZDUkxpbmVTdHlsZUBAUEVBVjFAS0BaDQorOyBjbGFzcyBDUkRhc2hTdHlsZSAqIF9fcHRyNjQgX19jZGVjbCBDUkRhc2hTdHlsZURhc2hlZCh2b2lkKQ0KKz9DUkRhc2hTdHlsZURhc2hlZEBAWUFQRUFWQ1JEYXNoU3R5bGVAQFhaDQorOyBjbGFzcyBDUkRhc2hTdHlsZSAqIF9fcHRyNjQgX19jZGVjbCBDUkRhc2hTdHlsZVNvbGlkKHZvaWQpDQorP0NSRGFzaFN0eWxlU29saWRAQFlBUEVBVkNSRGFzaFN0eWxlQEBYWg0KKzsgY2xhc3MgQ1JGb250U3R5bGUgKiBfX3B0cjY0IF9fY2RlY2wgQ1JEZWZhdWx0Rm9udCh2b2lkKQ0KKz9DUkRlZmF1bHRGb250QEBZQVBFQVZDUkZvbnRTdHlsZUBAWFoNCis7IGNsYXNzIENSTGluZVN0eWxlICogX19wdHI2NCBfX2NkZWNsIENSRGVmYXVsdExpbmVTdHlsZSh2b2lkKQ0KKz9DUkRlZmF1bHRMaW5lU3R5bGVAQFlBUEVBVkNSTGluZVN0eWxlQEBYWg0KKzsgY2xhc3MgQ1JNaWNyb3Bob25lICogX19wdHI2NCBfX2NkZWNsIENSRGVmYXVsdE1pY3JvcGhvbmUodm9pZCkNCis/Q1JEZWZhdWx0TWljcm9waG9uZUBAWUFQRUFWQ1JNaWNyb3Bob25lQEBYWg0KKzsgY2xhc3MgQ1JDYW1lcmEgKiBfX3B0cjY0IF9fY2RlY2wgQ1JEZXB0aChjbGFzcyBDUkNhbWVyYSAqIF9fcHRyNjQsZG91YmxlKQ0KKz9DUkRlcHRoQEBZQVBFQVZDUkNhbWVyYUBAUEVBVjFATkBaDQorOyBjbGFzcyBDUkNhbWVyYSAqIF9fcHRyNjQgX19jZGVjbCBDUkRlcHRoKGNsYXNzIENSQ2FtZXJhICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSRGVwdGhAQFlBUEVBVkNSQ2FtZXJhQEBQRUFWMUBQRUFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkNhbWVyYSAqIF9fcHRyNjQgX19jZGVjbCBDUkRlcHRoUmVzb2x1dGlvbihjbGFzcyBDUkNhbWVyYSAqIF9fcHRyNjQsZG91YmxlKQ0KKz9DUkRlcHRoUmVzb2x1dGlvbkBAWUFQRUFWQ1JDYW1lcmFAQFBFQVYxQE5AWg0KKzsgY2xhc3MgQ1JDYW1lcmEgKiBfX3B0cjY0IF9fY2RlY2wgQ1JEZXB0aFJlc29sdXRpb24oY2xhc3MgQ1JDYW1lcmEgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JEZXB0aFJlc29sdXRpb25AQFlBUEVBVkNSQ2FtZXJhQEBQRUFWMUBQRUFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUkRlcml2YXRpdmUoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUkRlcml2YXRpdmVAQFlBUEVBVkNSTnVtYmVyQEBQRUFWMUBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IyICogX19wdHI2NCBfX2NkZWNsIENSRGVyaXZhdGl2ZShjbGFzcyBDUlZlY3RvcjIgKiBfX3B0cjY0KQ0KKz9DUkRlcml2YXRpdmVAQFlBUEVBVkNSVmVjdG9yMkBAUEVBVjFAQFoNCis7IGNsYXNzIENSVmVjdG9yMiAqIF9fcHRyNjQgX19jZGVjbCBDUkRlcml2YXRpdmUoY2xhc3MgQ1JQb2ludDIgKiBfX3B0cjY0KQ0KKz9DUkRlcml2YXRpdmVAQFlBUEVBVkNSVmVjdG9yMkBAUEVBVkNSUG9pbnQyQEBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19wdHI2NCBfX2NkZWNsIENSRGVyaXZhdGl2ZShjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0KQ0KKz9DUkRlcml2YXRpdmVAQFlBUEVBVkNSVmVjdG9yM0BAUEVBVjFAQFoNCis7IGNsYXNzIENSVmVjdG9yMyAqIF9fcHRyNjQgX19jZGVjbCBDUkRlcml2YXRpdmUoY2xhc3MgQ1JQb2ludDMgKiBfX3B0cjY0KQ0KKz9DUkRlcml2YXRpdmVAQFlBUEVBVkNSVmVjdG9yM0BAUEVBVkNSUG9pbnQzQEBAWg0KKzsgdm9pZCBfX2NkZWNsIENSRGVzdHJveVZpZXcoY2xhc3MgQ1JWaWV3ICogX19wdHI2NCkNCis/Q1JEZXN0cm95Vmlld0BAWUFYUEVBVkNSVmlld0BAQFoNCis7IGNsYXNzIENSTGluZVN0eWxlICogX19wdHI2NCBfX2NkZWNsIENSRGV0YWlsKGNsYXNzIENSTGluZVN0eWxlICogX19wdHI2NCkNCis/Q1JEZXRhaWxAQFlBUEVBVkNSTGluZVN0eWxlQEBQRUFWMUBAWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fcHRyNjQgX19jZGVjbCBDUkRldGVjdGFibGVFbXB0eUltYWdlKHZvaWQpDQorP0NSRGV0ZWN0YWJsZUVtcHR5SW1hZ2VAQFlBUEVBVkNSSW1hZ2VAQFhaDQorOyBjbGFzcyBDUk1hdHRlICogX19wdHI2NCBfX2NkZWNsIENSRGlmZmVyZW5jZU1hdHRlKGNsYXNzIENSTWF0dGUgKiBfX3B0cjY0LGNsYXNzIENSTWF0dGUgKiBfX3B0cjY0KQ0KKz9DUkRpZmZlcmVuY2VNYXR0ZUBAWUFQRUFWQ1JNYXR0ZUBAUEVBVjFAMEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCBfX2NkZWNsIENSRGlmZnVzZUNvbG9yKGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0LGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0KQ0KKz9DUkRpZmZ1c2VDb2xvckBAWUFQRUFWQ1JHZW9tZXRyeUBAUEVBVjFAUEVBVkNSQ29sb3JAQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCBfX2NkZWNsIENSRGlyZWN0aW9uYWxMaWdodCh2b2lkKQ0KKz9DUkRpcmVjdGlvbmFsTGlnaHRAQFlBUEVBVkNSR2VvbWV0cnlAQFhaDQorOyBib29sIF9fY2RlY2wgQ1JEaXNjb25uZWN0KHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQpDQorP0NSRGlzY29ubmVjdEBAWUFfTlBFQVVISU5TVEFOQ0VfX0BAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSRGlzdGFuY2UoY2xhc3MgQ1JQb2ludDIgKiBfX3B0cjY0LGNsYXNzIENSUG9pbnQyICogX19wdHI2NCkNCis/Q1JEaXN0YW5jZUBAWUFQRUFWQ1JOdW1iZXJAQFBFQVZDUlBvaW50MkBAMEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUkRpc3RhbmNlKGNsYXNzIENSUG9pbnQzICogX19wdHI2NCxjbGFzcyBDUlBvaW50MyAqIF9fcHRyNjQpDQorP0NSRGlzdGFuY2VAQFlBUEVBVkNSTnVtYmVyQEBQRUFWQ1JQb2ludDNAQDBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JEaXN0YW5jZVNxdWFyZWQoY2xhc3MgQ1JQb2ludDIgKiBfX3B0cjY0LGNsYXNzIENSUG9pbnQyICogX19wdHI2NCkNCis/Q1JEaXN0YW5jZVNxdWFyZWRAQFlBUEVBVkNSTnVtYmVyQEBQRUFWQ1JQb2ludDJAQDBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JEaXN0YW5jZVNxdWFyZWQoY2xhc3MgQ1JQb2ludDMgKiBfX3B0cjY0LGNsYXNzIENSUG9pbnQzICogX19wdHI2NCkNCis/Q1JEaXN0YW5jZVNxdWFyZWRAQFlBUEVBVkNSTnVtYmVyQEBQRUFWQ1JQb2ludDNAQDBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JEaXYoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JEaXZAQFlBUEVBVkNSTnVtYmVyQEBQRUFWMUAwQFoNCis7IGNsYXNzIENSVmVjdG9yMiAqIF9fcHRyNjQgX19jZGVjbCBDUkRpdihjbGFzcyBDUlZlY3RvcjIgKiBfX3B0cjY0LGRvdWJsZSkNCis/Q1JEaXZAQFlBUEVBVkNSVmVjdG9yMkBAUEVBVjFATkBaDQorOyBjbGFzcyBDUlZlY3RvcjIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JEaXYoY2xhc3MgQ1JWZWN0b3IyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSRGl2QEBZQVBFQVZDUlZlY3RvcjJAQFBFQVYxQFBFQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSVmVjdG9yMyAqIF9fcHRyNjQgX19jZGVjbCBDUkRpdihjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0LGRvdWJsZSkNCis/Q1JEaXZAQFlBUEVBVkNSVmVjdG9yM0BAUEVBVjFATkBaDQorOyBjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JEaXYoY2xhc3MgQ1JWZWN0b3IzICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSRGl2QEBZQVBFQVZDUlZlY3RvcjNAQFBFQVYxQFBFQVZDUk51bWJlckBAQFoNCis7IGJvb2wgX19jZGVjbCBDUkRvR0Modm9pZCkNCis/Q1JEb0dDQEBZQV9OWFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSRG90KGNsYXNzIENSVmVjdG9yMiAqIF9fcHRyNjQsY2xhc3MgQ1JWZWN0b3IyICogX19wdHI2NCkNCis/Q1JEb3RAQFlBUEVBVkNSTnVtYmVyQEBQRUFWQ1JWZWN0b3IyQEAwQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSRG90KGNsYXNzIENSVmVjdG9yMyAqIF9fcHRyNjQsY2xhc3MgQ1JWZWN0b3IzICogX19wdHI2NCkNCis/Q1JEb3RAQFlBUEVBVkNSTnVtYmVyQEBQRUFWQ1JWZWN0b3IzQEAwQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JEcmF3KGNsYXNzIENSUGF0aDIgKiBfX3B0cjY0LGNsYXNzIENSTGluZVN0eWxlICogX19wdHI2NCkNCis/Q1JEcmF3QEBZQVBFQVZDUkltYWdlQEBQRUFWQ1JQYXRoMkBAUEVBVkNSTGluZVN0eWxlQEBAWg0KKzsgY2xhc3MgQ1JCdnIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JEdXJhdGlvbihjbGFzcyBDUkJ2ciAqIF9fcHRyNjQsZG91YmxlKQ0KKz9DUkR1cmF0aW9uQEBZQVBFQVZDUkJ2ckBAUEVBVjFATkBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fcHRyNjQgX19jZGVjbCBDUkR1cmF0aW9uKGNsYXNzIENSQnZyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSRHVyYXRpb25AQFlBUEVBVkNSQnZyQEBQRUFWMUBQRUFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkJvb2xlYW4gKiBfX3B0cjY0IF9fY2RlY2wgQ1JFUShjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUkVRQEBZQVBFQVZDUkJvb2xlYW5AQFBFQVZDUk51bWJlckBAMEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCBfX2NkZWNsIENSRW1pc3NpdmVDb2xvcihjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCxjbGFzcyBDUkNvbG9yICogX19wdHI2NCkNCis/Q1JFbWlzc2l2ZUNvbG9yQEBZQVBFQVZDUkdlb21ldHJ5QEBQRUFWMUBQRUFWQ1JDb2xvckBAQFoNCis7IGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0IF9fY2RlY2wgQ1JFbXB0eUNvbG9yKHZvaWQpDQorP0NSRW1wdHlDb2xvckBAWUFQRUFWQ1JDb2xvckBAWFoNCis7IGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ1JFbXB0eUdlb21ldHJ5KHZvaWQpDQorP0NSRW1wdHlHZW9tZXRyeUBAWUFQRUFWQ1JHZW9tZXRyeUBAWFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JFbXB0eUltYWdlKHZvaWQpDQorP0NSRW1wdHlJbWFnZUBAWUFQRUFWQ1JJbWFnZUBAWFoNCis7IGNsYXNzIENSTGluZVN0eWxlICogX19wdHI2NCBfX2NkZWNsIENSRW1wdHlMaW5lU3R5bGUodm9pZCkNCis/Q1JFbXB0eUxpbmVTdHlsZUBAWUFQRUFWQ1JMaW5lU3R5bGVAQFhaDQorOyBjbGFzcyBDUk1vbnRhZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JFbXB0eU1vbnRhZ2Uodm9pZCkNCis/Q1JFbXB0eU1vbnRhZ2VAQFlBUEVBVkNSTW9udGFnZUBAWFoNCis7IGNsYXNzIENSTGluZVN0eWxlICogX19wdHI2NCBfX2NkZWNsIENSRW5kKGNsYXNzIENSTGluZVN0eWxlICogX19wdHI2NCxjbGFzcyBDUkVuZFN0eWxlICogX19wdHI2NCkNCis/Q1JFbmRAQFlBUEVBVkNSTGluZVN0eWxlQEBQRUFWMUBQRUFWQ1JFbmRTdHlsZUBAQFoNCis7IGNsYXNzIENSQnZyICogX19wdHI2NCBfX2NkZWNsIENSRW5kRXZlbnQoY2xhc3MgQ1JCdnIgKiBfX3B0cjY0KQ0KKz9DUkVuZEV2ZW50QEBZQVBFQVZDUkJ2ckBAUEVBVjFAQFoNCis7IGNsYXNzIENSTGluZVN0eWxlICogX19wdHI2NCBfX2NkZWNsIENSRW5kRXgoY2xhc3MgQ1JMaW5lU3R5bGUgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpDQorP0NSRW5kRXhAQFlBUEVBVkNSTGluZVN0eWxlQEBQRUFWMUBLQFoNCis7IGNsYXNzIENSRW5kU3R5bGUgKiBfX3B0cjY0IF9fY2RlY2wgQ1JFbmRTdHlsZUZsYXQodm9pZCkNCis/Q1JFbmRTdHlsZUZsYXRAQFlBUEVBVkNSRW5kU3R5bGVAQFhaDQorOyBjbGFzcyBDUkVuZFN0eWxlICogX19wdHI2NCBfX2NkZWNsIENSRW5kU3R5bGVSb3VuZCh2b2lkKQ0KKz9DUkVuZFN0eWxlUm91bmRAQFlBUEVBVkNSRW5kU3R5bGVAQFhaDQorOyBjbGFzcyBDUkVuZFN0eWxlICogX19wdHI2NCBfX2NkZWNsIENSRW5kU3R5bGVTcXVhcmUodm9pZCkNCis/Q1JFbmRTdHlsZVNxdWFyZUBAWUFQRUFWQ1JFbmRTdHlsZUBAWFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSRXhwKGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JFeHBAQFlBUEVBVkNSTnVtYmVyQEBQRUFWMUBAWg0KKzsgY2xhc3MgQ1JCdnIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JFeHRlbmRlZEF0dHJpYihjbGFzcyBDUkJ2ciAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHN0cnVjdCB0YWdWQVJJQU5UKQ0KKz9DUkV4dGVuZGVkQXR0cmliQEBZQVBFQVZDUkJ2ckBAUEVBVjFAUEVBR1V0YWdWQVJJQU5UQEBAWg0KKzsgZG91YmxlIF9fY2RlY2wgQ1JFeHRyYWN0KGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JFeHRyYWN0QEBZQU5QRUFWQ1JOdW1iZXJAQEBaDQorOyB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDUkV4dHJhY3QoY2xhc3MgQ1JTdHJpbmcgKiBfX3B0cjY0KQ0KKz9DUkV4dHJhY3RAQFlBUEVBR1BFQVZDUlN0cmluZ0BAQFoNCis7IGJvb2wgX19jZGVjbCBDUkV4dHJhY3QoY2xhc3MgQ1JCb29sZWFuICogX19wdHI2NCkNCis/Q1JFeHRyYWN0QEBZQV9OUEVBVkNSQm9vbGVhbkBAQFoNCis7IGNsYXNzIENSQm9vbGVhbiAqIF9fcHRyNjQgX19jZGVjbCBDUkZhbHNlKHZvaWQpDQorP0NSRmFsc2VAQFlBUEVBVkNSQm9vbGVhbkBAWFoNCis7IGNsYXNzIENSRm9udFN0eWxlICogX19wdHI2NCBfX2NkZWNsIENSRmFtaWx5KGNsYXNzIENSRm9udFN0eWxlICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP0NSRmFtaWx5QEBZQVBFQVZDUkZvbnRTdHlsZUBAUEVBVjFAUEVBR0BaDQorOyBjbGFzcyBDUkZvbnRTdHlsZSAqIF9fcHRyNjQgX19jZGVjbCBDUkZhbWlseShjbGFzcyBDUkZvbnRTdHlsZSAqIF9fcHRyNjQsY2xhc3MgQ1JTdHJpbmcgKiBfX3B0cjY0KQ0KKz9DUkZhbWlseUBAWUFQRUFWQ1JGb250U3R5bGVAQFBFQVYxQFBFQVZDUlN0cmluZ0BAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JGaWxsKGNsYXNzIENSUGF0aDIgKiBfX3B0cjY0LGNsYXNzIENSTGluZVN0eWxlICogX19wdHI2NCxjbGFzcyBDUkltYWdlICogX19wdHI2NCkNCis/Q1JGaWxsQEBZQVBFQVZDUkltYWdlQEBQRUFWQ1JQYXRoMkBAUEVBVkNSTGluZVN0eWxlQEBQRUFWMUBAWg0KKzsgY2xhc3MgQ1JNYXR0ZSAqIF9fcHRyNjQgX19jZGVjbCBDUkZpbGxNYXR0ZShjbGFzcyBDUlBhdGgyICogX19wdHI2NCkNCis/Q1JGaWxsTWF0dGVAQFlBUEVBVkNSTWF0dGVAQFBFQVZDUlBhdGgyQEBAWg0KKzsgY2xhc3MgQ1JCdnIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JGaXJzdChjbGFzcyBDUlBhaXIgKiBfX3B0cjY0KQ0KKz9DUkZpcnN0QEBZQVBFQVZDUkJ2ckBAUEVBVkNSUGFpckBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSRmxvb3IoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUkZsb29yQEBZQVBFQVZDUk51bWJlckBAUEVBVjFAQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fcHRyNjQgX19jZGVjbCBDUkZvbGxvd1BhdGgoY2xhc3MgQ1JQYXRoMiAqIF9fcHRyNjQsZG91YmxlKQ0KKz9DUkZvbGxvd1BhdGhAQFlBUEVBVkNSVHJhbnNmb3JtMkBAUEVBVkNSUGF0aDJAQE5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCBfX2NkZWNsIENSRm9sbG93UGF0aChjbGFzcyBDUlBhdGgyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSRm9sbG93UGF0aEBAWUFQRUFWQ1JUcmFuc2Zvcm0yQEBQRUFWQ1JQYXRoMkBAUEVBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCBfX2NkZWNsIENSRm9sbG93UGF0aEFuZ2xlKGNsYXNzIENSUGF0aDIgKiBfX3B0cjY0LGRvdWJsZSkNCis/Q1JGb2xsb3dQYXRoQW5nbGVAQFlBUEVBVkNSVHJhbnNmb3JtMkBAUEVBVkNSUGF0aDJAQE5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCBfX2NkZWNsIENSRm9sbG93UGF0aEFuZ2xlKGNsYXNzIENSUGF0aDIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JGb2xsb3dQYXRoQW5nbGVAQFlBUEVBVkNSVHJhbnNmb3JtMkBAUEVBVkNSUGF0aDJAQFBFQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fcHRyNjQgX19jZGVjbCBDUkZvbGxvd1BhdGhBbmdsZUV2YWwoY2xhc3MgQ1JQYXRoMiAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUkZvbGxvd1BhdGhBbmdsZUV2YWxAQFlBUEVBVkNSVHJhbnNmb3JtMkBAUEVBVkNSUGF0aDJAQFBFQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fcHRyNjQgX19jZGVjbCBDUkZvbGxvd1BhdGhBbmdsZVVwcmlnaHQoY2xhc3MgQ1JQYXRoMiAqIF9fcHRyNjQsZG91YmxlKQ0KKz9DUkZvbGxvd1BhdGhBbmdsZVVwcmlnaHRAQFlBUEVBVkNSVHJhbnNmb3JtMkBAUEVBVkNSUGF0aDJAQE5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCBfX2NkZWNsIENSRm9sbG93UGF0aEFuZ2xlVXByaWdodChjbGFzcyBDUlBhdGgyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSRm9sbG93UGF0aEFuZ2xlVXByaWdodEBAWUFQRUFWQ1JUcmFuc2Zvcm0yQEBQRUFWQ1JQYXRoMkBAUEVBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCBfX2NkZWNsIENSRm9sbG93UGF0aEFuZ2xlVXByaWdodEV2YWwoY2xhc3MgQ1JQYXRoMiAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUkZvbGxvd1BhdGhBbmdsZVVwcmlnaHRFdmFsQEBZQVBFQVZDUlRyYW5zZm9ybTJAQFBFQVZDUlBhdGgyQEBQRUFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JGb2xsb3dQYXRoRXZhbChjbGFzcyBDUlBhdGgyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSRm9sbG93UGF0aEV2YWxAQFlBUEVBVkNSVHJhbnNmb3JtMkBAUEVBVkNSUGF0aDJAQFBFQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSRm9udFN0eWxlICogX19wdHI2NCBfX2NkZWNsIENSRm9udCh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsZG91YmxlLGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0KQ0KKz9DUkZvbnRAQFlBUEVBVkNSRm9udFN0eWxlQEBQRUFHTlBFQVZDUkNvbG9yQEBAWg0KKzsgY2xhc3MgQ1JGb250U3R5bGUgKiBfX3B0cjY0IF9fY2RlY2wgQ1JGb250KGNsYXNzIENSU3RyaW5nICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQpDQorP0NSRm9udEBAWUFQRUFWQ1JGb250U3R5bGVAQFBFQVZDUlN0cmluZ0BAUEVBVkNSTnVtYmVyQEBQRUFWQ1JDb2xvckBAQFoNCis7IGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0IF9fY2RlY2wgQ1JGdWNoc2lhKHZvaWQpDQorP0NSRnVjaHNpYUBAWUFQRUFWQ1JDb2xvckBAWFoNCis7IGNsYXNzIENSQm9vbGVhbiAqIF9fcHRyNjQgX19jZGVjbCBDUkdUKGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSR1RAQFlBUEVBVkNSQm9vbGVhbkBAUEVBVkNSTnVtYmVyQEAwQFoNCis7IGNsYXNzIENSQm9vbGVhbiAqIF9fcHRyNjQgX19jZGVjbCBDUkdURShjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUkdURUBAWUFQRUFWQ1JCb29sZWFuQEBQRUFWQ1JOdW1iZXJAQDBAWg0KKzsgY2xhc3MgQ1JTb3VuZCAqIF9fcHRyNjQgX19jZGVjbCBDUkdhaW4oY2xhc3MgQ1JTb3VuZCAqIF9fcHRyNjQsZG91YmxlKQ0KKz9DUkdhaW5AQFlBUEVBVkNSU291bmRAQFBFQVYxQE5AWg0KKzsgY2xhc3MgQ1JTb3VuZCAqIF9fcHRyNjQgX19jZGVjbCBDUkdhaW4oY2xhc3MgQ1JTb3VuZCAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUkdhaW5AQFlBUEVBVkNSU291bmRAQFBFQVYxQFBFQVZDUk51bWJlckBAQFoNCis7IGVudW0gQ1JfQlZSX1RZUEVJRCAgX19jZGVjbCBDUkdldEFycmF5VHlwZUlkKGNsYXNzIENSQnZyICogX19wdHI2NCkNCis/Q1JHZXRBcnJheVR5cGVJZEBAWUE/QVc0Q1JfQlZSX1RZUEVJREBAUEVBVkNSQnZyQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JHZXRCbHVlKGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0KQ0KKz9DUkdldEJsdWVAQFlBUEVBVkNSTnVtYmVyQEBQRUFWQ1JDb2xvckBAQFoNCis7IGNsYXNzIENSRXZlbnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1JHZXRDb21wbGV0aW9uRXZlbnQoY2xhc3MgQ1JJbXBvcnRhdGlvblJlc3VsdCAqIF9fcHRyNjQpDQorP0NSR2V0Q29tcGxldGlvbkV2ZW50QEBZQVBFQVZDUkV2ZW50QEBQRUFWQ1JJbXBvcnRhdGlvblJlc3VsdEBAQFoNCis7IGJvb2wgX19jZGVjbCBDUkdldENvbXBvc2l0ZURpcmVjdGx5VG9UYXJnZXQoY2xhc3MgQ1JWaWV3ICogX19wdHI2NCkNCis/Q1JHZXRDb21wb3NpdGVEaXJlY3RseVRvVGFyZ2V0QEBZQV9OUEVBVkNSVmlld0BAQFoNCis7IGRvdWJsZSBfX2NkZWNsIENSR2V0Q29uc3REdXJhdGlvbihjbGFzcyBDUkV2ZW50ICogX19wdHI2NCkNCis/Q1JHZXRDb25zdER1cmF0aW9uQEBZQU5QRUFWQ1JFdmVudEBAQFoNCis7IHN0cnVjdCBIRENfXyAqIF9fcHRyNjQgX19jZGVjbCBDUkdldERDKGNsYXNzIENSVmlldyAqIF9fcHRyNjQpDQorP0NSR2V0RENAQFlBUEVBVUhEQ19fQEBQRUFWQ1JWaWV3QEBAWg0KKzsgYm9vbCBfX2NkZWNsIENSR2V0REREM0RSTShjbGFzcyBDUlZpZXcgKiBfX3B0cjY0LHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9DUkdldERERDNEUk1AQFlBX05QRUFWQ1JWaWV3QEBQRUFQRUFVSVVua25vd25AQDFAWg0KKzsgc3RydWN0IElVbmtub3duICogX19wdHI2NCBfX2NkZWNsIENSR2V0RGF0YShjbGFzcyBDUlVzZXJEYXRhICogX19wdHI2NCkNCis/Q1JHZXREYXRhQEBZQVBFQVVJVW5rbm93bkBAUEVBVkNSVXNlckRhdGFAQEBaDQorOyBzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0IF9fY2RlY2wgQ1JHZXREaXJlY3REcmF3U3VyZmFjZShjbGFzcyBDUlZpZXcgKiBfX3B0cjY0KQ0KKz9DUkdldERpcmVjdERyYXdTdXJmYWNlQEBZQVBFQVVJVW5rbm93bkBAUEVBVkNSVmlld0BAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSR2V0RHVyYXRpb24oY2xhc3MgQ1JJbXBvcnRhdGlvblJlc3VsdCAqIF9fcHRyNjQpDQorP0NSR2V0RHVyYXRpb25AQFlBUEVBVkNSTnVtYmVyQEBQRUFWQ1JJbXBvcnRhdGlvblJlc3VsdEBAQFoNCis7IGNsYXNzIENSQnZyICogX19wdHI2NCBfX2NkZWNsIENSR2V0RWxlbWVudChjbGFzcyBDUkFycmF5ICogX19wdHI2NCxsb25nKQ0KKz9DUkdldEVsZW1lbnRAQFlBUEVBVkNSQnZyQEBQRUFWQ1JBcnJheUBASkBaDQorOyBjbGFzcyBDUkV2ZW50ICogX19wdHI2NCBfX2NkZWNsIENSR2V0RXZlbnQoY2xhc3MgQ1JQaWNrYWJsZVJlc3VsdCAqIF9fcHRyNjQpDQorP0NSR2V0RXZlbnRAQFlBUEVBVkNSRXZlbnRAQFBFQVZDUlBpY2thYmxlUmVzdWx0QEBAWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQgX19jZGVjbCBDUkdldEdlb21ldHJ5KGNsYXNzIENSSW1wb3J0YXRpb25SZXN1bHQgKiBfX3B0cjY0KQ0KKz9DUkdldEdlb21ldHJ5QEBZQVBFQVZDUkdlb21ldHJ5QEBQRUFWQ1JJbXBvcnRhdGlvblJlc3VsdEBAQFoNCis7IGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ1JHZXRHZW9tZXRyeShjbGFzcyBDUlBpY2thYmxlUmVzdWx0ICogX19wdHI2NCkNCis/Q1JHZXRHZW9tZXRyeUBAWUFQRUFWQ1JHZW9tZXRyeUBAUEVBVkNSUGlja2FibGVSZXN1bHRAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUkdldEdyZWVuKGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0KQ0KKz9DUkdldEdyZWVuQEBZQVBFQVZDUk51bWJlckBAUEVBVkNSQ29sb3JAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUkdldEh1ZShjbGFzcyBDUkNvbG9yICogX19wdHI2NCkNCis/Q1JHZXRIdWVAQFlBUEVBVkNSTnVtYmVyQEBQRUFWQ1JDb2xvckBAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JHZXRJbWFnZShjbGFzcyBDUkltcG9ydGF0aW9uUmVzdWx0ICogX19wdHI2NCkNCis/Q1JHZXRJbWFnZUBAWUFQRUFWQ1JJbWFnZUBAUEVBVkNSSW1wb3J0YXRpb25SZXN1bHRAQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENSR2V0SW1hZ2UoY2xhc3MgQ1JQaWNrYWJsZVJlc3VsdCAqIF9fcHRyNjQpDQorP0NSR2V0SW1hZ2VAQFlBUEVBVkNSSW1hZ2VAQFBFQVZDUlBpY2thYmxlUmVzdWx0QEBAWg0KKzsgZmxvYXQgX19jZGVjbCBDUkdldEltcG9ydFByaW9yaXR5KGNsYXNzIENSQnZyICogX19wdHI2NCkNCis/Q1JHZXRJbXBvcnRQcmlvcml0eUBAWUFNUEVBVkNSQnZyQEBAWg0KKzsgbG9uZyBfX2NkZWNsIENSR2V0SW52YWxpZGF0ZWRSZWN0cyhjbGFzcyBDUlZpZXcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsbG9uZyxzdHJ1Y3QgdGFnUkVDVCAqIF9fcHRyNjQpDQorP0NSR2V0SW52YWxpZGF0ZWRSZWN0c0BAWUFKUEVBVkNSVmlld0BAS0pQRUFVdGFnUkVDVEBAQFoNCis7IGxvbmcgX19jZGVjbCBDUkdldExhc3RFcnJvcih2b2lkKQ0KKz9DUkdldExhc3RFcnJvckBAWUFKWFoNCis7IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENSR2V0TGFzdEVycm9yU3RyaW5nKHZvaWQpDQorP0NSR2V0TGFzdEVycm9yU3RyaW5nQEBZQVBFQkdYWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JHZXRMaWdodG5lc3MoY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQpDQorP0NSR2V0TGlnaHRuZXNzQEBZQVBFQVZDUk51bWJlckBAUEVBVkNSQ29sb3JAQEBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fcHRyNjQgX19jZGVjbCBDUkdldE1vZGlmaWFibGVCdnIoY2xhc3MgQ1JCdnIgKiBfX3B0cjY0KQ0KKz9DUkdldE1vZGlmaWFibGVCdnJAQFlBUEVBVkNSQnZyQEBQRUFWMUBAWg0KKzsgY2xhc3MgQ1JCdnIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JHZXRPdXRwdXRCdnIoY2xhc3MgQ1JEWFRyYW5zZm9ybVJlc3VsdCAqIF9fcHRyNjQpDQorP0NSR2V0T3V0cHV0QnZyQEBZQVBFQVZDUkJ2ckBAUEVBVkNSRFhUcmFuc2Zvcm1SZXN1bHRAQEBaDQorOyBib29sIF9fY2RlY2wgQ1JHZXRQcmVmZXJlbmNlKGNsYXNzIENSVmlldyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHN0cnVjdCB0YWdWQVJJQU5UICogX19wdHI2NCkNCis/Q1JHZXRQcmVmZXJlbmNlQEBZQV9OUEVBVkNSVmlld0BAUEVBR1BFQVV0YWdWQVJJQU5UQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JHZXRQcm9ncmVzcyhjbGFzcyBDUkltcG9ydGF0aW9uUmVzdWx0ICogX19wdHI2NCkNCis/Q1JHZXRQcm9ncmVzc0BAWUFQRUFWQ1JOdW1iZXJAQFBFQVZDUkltcG9ydGF0aW9uUmVzdWx0QEBAWg0KKzsgYm9vbCBfX2NkZWNsIENSR2V0Uk1EZXZpY2UoY2xhc3MgQ1JWaWV3ICogX19wdHI2NCxzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkNCis/Q1JHZXRSTURldmljZUBAWUFfTlBFQVZDUlZpZXdAQFBFQVBFQVVJVW5rbm93bkBAUEVBS0BaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUkdldFJlZChjbGFzcyBDUkNvbG9yICogX19wdHI2NCkNCis/Q1JHZXRSZWRAQFlBUEVBVkNSTnVtYmVyQEBQRUFWQ1JDb2xvckBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSR2V0U2F0dXJhdGlvbihjbGFzcyBDUkNvbG9yICogX19wdHI2NCkNCis/Q1JHZXRTYXR1cmF0aW9uQEBZQVBFQVZDUk51bWJlckBAUEVBVkNSQ29sb3JAQEBaDQorOyBzdHJ1Y3QgSVNlcnZpY2VQcm92aWRlciAqIF9fcHRyNjQgX19jZGVjbCBDUkdldFNlcnZpY2VQcm92aWRlcihjbGFzcyBDUlZpZXcgKiBfX3B0cjY0KQ0KKz9DUkdldFNlcnZpY2VQcm92aWRlckBAWUFQRUFVSVNlcnZpY2VQcm92aWRlckBAUEVBVkNSVmlld0BAQFoNCis7IGRvdWJsZSBfX2NkZWNsIENSR2V0U2ltdWxhdGlvblRpbWUoY2xhc3MgQ1JWaWV3ICogX19wdHI2NCkNCis/Q1JHZXRTaW11bGF0aW9uVGltZUBAWUFOUEVBVkNSVmlld0BAQFoNCis7IGNsYXNzIENSVmlld1NpdGUgKiBfX3B0cjY0IF9fY2RlY2wgQ1JHZXRTaXRlKGNsYXNzIENSVmlldyAqIF9fcHRyNjQpDQorP0NSR2V0U2l0ZUBAWUFQRUFWQ1JWaWV3U2l0ZUBAUEVBVkNSVmlld0BAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSR2V0U2l6ZShjbGFzcyBDUkltcG9ydGF0aW9uUmVzdWx0ICogX19wdHI2NCkNCis/Q1JHZXRTaXplQEBZQVBFQVZDUk51bWJlckBAUEVBVkNSSW1wb3J0YXRpb25SZXN1bHRAQEBaDQorOyBjbGFzcyBDUlNvdW5kICogX19wdHI2NCBfX2NkZWNsIENSR2V0U291bmQoY2xhc3MgQ1JJbXBvcnRhdGlvblJlc3VsdCAqIF9fcHRyNjQpDQorP0NSR2V0U291bmRAQFlBUEVBVkNSU291bmRAQFBFQVZDUkltcG9ydGF0aW9uUmVzdWx0QEBAWg0KKzsgc3RydWN0IElVbmtub3duICogX19wdHI2NCBfX2NkZWNsIENSR2V0VHJhbnNmb3JtKGNsYXNzIENSRFhUcmFuc2Zvcm1SZXN1bHQgKiBfX3B0cjY0KQ0KKz9DUkdldFRyYW5zZm9ybUBAWUFQRUFVSVVua25vd25AQFBFQVZDUkRYVHJhbnNmb3JtUmVzdWx0QEBAWg0KKzsgZW51bSBDUl9CVlJfVFlQRUlEICBfX2NkZWNsIENSR2V0VHlwZUlkKGNsYXNzIENSQnZyICogX19wdHI2NCkNCis/Q1JHZXRUeXBlSWRAQFlBP0FXNENSX0JWUl9UWVBFSURAQFBFQVZDUkJ2ckBAQFoNCis7IHN0cnVjdCBIV05EX18gKiBfX3B0cjY0IF9fY2RlY2wgQ1JHZXRXaW5kb3coY2xhc3MgQ1JWaWV3ICogX19wdHI2NCkNCis/Q1JHZXRXaW5kb3dAQFlBUEVBVUhXTkRfX0BAUEVBVkNSVmlld0BAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSR2V0WChjbGFzcyBDUlBvaW50MiAqIF9fcHRyNjQpDQorP0NSR2V0WEBAWUFQRUFWQ1JOdW1iZXJAQFBFQVZDUlBvaW50MkBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSR2V0WChjbGFzcyBDUlBvaW50MyAqIF9fcHRyNjQpDQorP0NSR2V0WEBAWUFQRUFWQ1JOdW1iZXJAQFBFQVZDUlBvaW50M0BAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSR2V0WChjbGFzcyBDUlZlY3RvcjIgKiBfX3B0cjY0KQ0KKz9DUkdldFhAQFlBUEVBVkNSTnVtYmVyQEBQRUFWQ1JWZWN0b3IyQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JHZXRYKGNsYXNzIENSVmVjdG9yMyAqIF9fcHRyNjQpDQorP0NSR2V0WEBAWUFQRUFWQ1JOdW1iZXJAQFBFQVZDUlZlY3RvcjNAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUkdldFkoY2xhc3MgQ1JQb2ludDIgKiBfX3B0cjY0KQ0KKz9DUkdldFlAQFlBUEVBVkNSTnVtYmVyQEBQRUFWQ1JQb2ludDJAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUkdldFkoY2xhc3MgQ1JQb2ludDMgKiBfX3B0cjY0KQ0KKz9DUkdldFlAQFlBUEVBVkNSTnVtYmVyQEBQRUFWQ1JQb2ludDNAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUkdldFkoY2xhc3MgQ1JWZWN0b3IyICogX19wdHI2NCkNCis/Q1JHZXRZQEBZQVBFQVZDUk51bWJlckBAUEVBVkNSVmVjdG9yMkBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSR2V0WShjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0KQ0KKz9DUkdldFlAQFlBUEVBVkNSTnVtYmVyQEBQRUFWQ1JWZWN0b3IzQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JHZXRaKGNsYXNzIENSUG9pbnQzICogX19wdHI2NCkNCis/Q1JHZXRaQEBZQVBFQVZDUk51bWJlckBAUEVBVkNSUG9pbnQzQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JHZXRaKGNsYXNzIENSVmVjdG9yMyAqIF9fcHRyNjQpDQorP0NSR2V0WkBAWUFQRUFWQ1JOdW1iZXJAQFBFQVZDUlZlY3RvcjNAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUkdsb2JhbFRpbWUodm9pZCkNCis/Q1JHbG9iYWxUaW1lQEBZQVBFQVZDUk51bWJlckBAWFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JHcmFkaWVudEhvcml6b250YWwoY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQsY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQsZG91YmxlKQ0KKz9DUkdyYWRpZW50SG9yaXpvbnRhbEBAWUFQRUFWQ1JJbWFnZUBAUEVBVkNSQ29sb3JAQDBOQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JHcmFkaWVudEhvcml6b250YWwoY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQsY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUkdyYWRpZW50SG9yaXpvbnRhbEBAWUFQRUFWQ1JJbWFnZUBAUEVBVkNSQ29sb3JAQDBQRUFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENSR3JhZGllbnRQb2x5Z29uKGNsYXNzIENSQXJyYXkgKiBfX3B0cjY0LGNsYXNzIENSQXJyYXkgKiBfX3B0cjY0KQ0KKz9DUkdyYWRpZW50UG9seWdvbkBAWUFQRUFWQ1JJbWFnZUBAUEVBVkNSQXJyYXlAQDBAWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fcHRyNjQgX19jZGVjbCBDUkdyYWRpZW50U3F1YXJlKGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0LGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0LGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0LGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0KQ0KKz9DUkdyYWRpZW50U3F1YXJlQEBZQVBFQVZDUkltYWdlQEBQRUFWQ1JDb2xvckBAMDAwQFoNCis7IGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0IF9fY2RlY2wgQ1JHcmF5KHZvaWQpDQorP0NSR3JheUBAWUFQRUFWQ1JDb2xvckBAWFoNCis7IGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0IF9fY2RlY2wgQ1JHcmVlbih2b2lkKQ0KKz9DUkdyZWVuQEBZQVBFQVZDUkNvbG9yQEBYWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fcHRyNjQgX19jZGVjbCBDUkhhdGNoQmFja3dhcmREaWFnb25hbChjbGFzcyBDUkNvbG9yICogX19wdHI2NCxkb3VibGUpDQorP0NSSGF0Y2hCYWNrd2FyZERpYWdvbmFsQEBZQVBFQVZDUkltYWdlQEBQRUFWQ1JDb2xvckBATkBaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENSSGF0Y2hCYWNrd2FyZERpYWdvbmFsKGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JIYXRjaEJhY2t3YXJkRGlhZ29uYWxAQFlBUEVBVkNSSW1hZ2VAQFBFQVZDUkNvbG9yQEBQRUFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENSSGF0Y2hDcm9zcyhjbGFzcyBDUkNvbG9yICogX19wdHI2NCxkb3VibGUpDQorP0NSSGF0Y2hDcm9zc0BAWUFQRUFWQ1JJbWFnZUBAUEVBVkNSQ29sb3JAQE5AWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fcHRyNjQgX19jZGVjbCBDUkhhdGNoQ3Jvc3MoY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUkhhdGNoQ3Jvc3NAQFlBUEVBVkNSSW1hZ2VAQFBFQVZDUkNvbG9yQEBQRUFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENSSGF0Y2hEaWFnb25hbENyb3NzKGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0LGRvdWJsZSkNCis/Q1JIYXRjaERpYWdvbmFsQ3Jvc3NAQFlBUEVBVkNSSW1hZ2VAQFBFQVZDUkNvbG9yQEBOQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JIYXRjaERpYWdvbmFsQ3Jvc3MoY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUkhhdGNoRGlhZ29uYWxDcm9zc0BAWUFQRUFWQ1JJbWFnZUBAUEVBVkNSQ29sb3JAQFBFQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JIYXRjaEZvcndhcmREaWFnb25hbChjbGFzcyBDUkNvbG9yICogX19wdHI2NCxkb3VibGUpDQorP0NSSGF0Y2hGb3J3YXJkRGlhZ29uYWxAQFlBUEVBVkNSSW1hZ2VAQFBFQVZDUkNvbG9yQEBOQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JIYXRjaEZvcndhcmREaWFnb25hbChjbGFzcyBDUkNvbG9yICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSSGF0Y2hGb3J3YXJkRGlhZ29uYWxAQFlBUEVBVkNSSW1hZ2VAQFBFQVZDUkNvbG9yQEBQRUFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENSSGF0Y2hIb3Jpem9udGFsKGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0LGRvdWJsZSkNCis/Q1JIYXRjaEhvcml6b250YWxAQFlBUEVBVkNSSW1hZ2VAQFBFQVZDUkNvbG9yQEBOQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JIYXRjaEhvcml6b250YWwoY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUkhhdGNoSG9yaXpvbnRhbEBAWUFQRUFWQ1JJbWFnZUBAUEVBVkNSQ29sb3JAQFBFQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JIYXRjaFZlcnRpY2FsKGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0LGRvdWJsZSkNCis/Q1JIYXRjaFZlcnRpY2FsQEBZQVBFQVZDUkltYWdlQEBQRUFWQ1JDb2xvckBATkBaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENSSGF0Y2hWZXJ0aWNhbChjbGFzcyBDUkNvbG9yICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSSGF0Y2hWZXJ0aWNhbEBAWUFQRUFWQ1JJbWFnZUBAUEVBVkNSQ29sb3JAQFBFQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSQnZyICogX19wdHI2NCBfX2NkZWNsIENSSG9vayhjbGFzcyBDUkJ2ciAqIF9fcHRyNjQsY2xhc3MgQ1JCdnJIb29rICogX19wdHI2NCkNCis/Q1JIb29rQEBZQVBFQVZDUkJ2ckBAUEVBVjFAUEVBVkNSQnZySG9va0BAQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fcHRyNjQgX19jZGVjbCBDUklkZW50aXR5VHJhbnNmb3JtMih2b2lkKQ0KKz9DUklkZW50aXR5VHJhbnNmb3JtMkBAWUFQRUFWQ1JUcmFuc2Zvcm0yQEBYWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0zICogX19wdHI2NCBfX2NkZWNsIENSSWRlbnRpdHlUcmFuc2Zvcm0zKHZvaWQpDQorP0NSSWRlbnRpdHlUcmFuc2Zvcm0zQEBZQVBFQVZDUlRyYW5zZm9ybTNAQFhaDQorOyBjbGFzcyBDUk1vbnRhZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JJbWFnZU1vbnRhZ2UoY2xhc3MgQ1JJbWFnZSAqIF9fcHRyNjQsZG91YmxlKQ0KKz9DUkltYWdlTW9udGFnZUBAWUFQRUFWQ1JNb250YWdlQEBQRUFWQ1JJbWFnZUBATkBaDQorOyBjbGFzcyBDUk1vbnRhZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JJbWFnZU1vbnRhZ2VBbmltKGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JJbWFnZU1vbnRhZ2VBbmltQEBZQVBFQVZDUk1vbnRhZ2VAQFBFQVZDUkltYWdlQEBQRUFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENSSW1hZ2VRdWFsaXR5KGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpDQorP0NSSW1hZ2VRdWFsaXR5QEBZQVBFQVZDUkltYWdlQEBQRUFWMUBLQFoNCis7IGJvb2wgX19jZGVjbCBDUkltcG9ydENhbmNlbChjbGFzcyBDUkJ2ciAqIF9fcHRyNjQpDQorP0NSSW1wb3J0Q2FuY2VsQEBZQV9OUEVBVkNSQnZyQEBAWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQgX19jZGVjbCBDUkltcG9ydERpcmVjdDNEUk1WaXN1YWwoc3RydWN0IElVbmtub3duICogX19wdHI2NCkNCis/Q1JJbXBvcnREaXJlY3QzRFJNVmlzdWFsQEBZQVBFQVZDUkdlb21ldHJ5QEBQRUFVSVVua25vd25AQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCBfX2NkZWNsIENSSW1wb3J0RGlyZWN0M0RSTVZpc3VhbFdyYXBwZWQoc3RydWN0IElVbmtub3duICogX19wdHI2NCxsb25nLGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSx1bnNpZ25lZCBsb25nKQ0KKz9DUkltcG9ydERpcmVjdDNEUk1WaXN1YWxXcmFwcGVkQEBZQVBFQVZDUkdlb21ldHJ5QEBQRUFVSVVua25vd25AQEpOTk5OTk5OTk5OTk5OS0BaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENSSW1wb3J0RGlyZWN0RHJhd1N1cmZhY2Uoc3RydWN0IElVbmtub3duICogX19wdHI2NCxjbGFzcyBDUkV2ZW50ICogX19wdHI2NCkNCis/Q1JJbXBvcnREaXJlY3REcmF3U3VyZmFjZUBAWUFQRUFWQ1JJbWFnZUBAUEVBVUlVbmtub3duQEBQRUFWQ1JFdmVudEBAQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUkltcG9ydEdlb21ldHJ5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1JJbXBvcnRTaXRlICogX19wdHI2NCxzdHJ1Y3QgSUJpbmRIb3N0ICogX19wdHI2NCxjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCxjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCAqIF9fcHRyNjQsY2xhc3MgQ1JFdmVudCAqIF9fcHRyNjQgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/Q1JJbXBvcnRHZW9tZXRyeUBAWUFLUEVCRzBQRUFWQ1JJbXBvcnRTaXRlQEBQRUFVSUJpbmRIb3N0QEBQRUFWQ1JHZW9tZXRyeUBAUEVBUEVBVjNAUEVBUEVBVkNSRXZlbnRAQFBFQVBFQVZDUk51bWJlckBANkBaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1JJbXBvcnRHZW9tZXRyeVdyYXBwZWQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDUkltcG9ydFNpdGUgKiBfX3B0cjY0LHN0cnVjdCBJQmluZEhvc3QgKiBfX3B0cjY0LGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0LGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0ICogX19wdHI2NCxjbGFzcyBDUkV2ZW50ICogX19wdHI2NCAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0ICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgKiBfX3B0cjY0LGxvbmcsZG91YmxlLGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUsZG91YmxlLHVuc2lnbmVkIGxvbmcpDQorP0NSSW1wb3J0R2VvbWV0cnlXcmFwcGVkQEBZQUtQRUJHMFBFQVZDUkltcG9ydFNpdGVAQFBFQVVJQmluZEhvc3RAQFBFQVZDUkdlb21ldHJ5QEBQRUFQRUFWM0BQRUFQRUFWQ1JFdmVudEBAUEVBUEVBVkNSTnVtYmVyQEA2Sk5OTk5OTk5OTk5OTk5LQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUkltcG9ydEltYWdlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1JJbXBvcnRTaXRlICogX19wdHI2NCxzdHJ1Y3QgSUJpbmRIb3N0ICogX19wdHI2NCxib29sLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0LGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0ICogX19wdHI2NCxjbGFzcyBDUkV2ZW50ICogX19wdHI2NCAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0ICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9DUkltcG9ydEltYWdlQEBZQUtQRUJHMFBFQVZDUkltcG9ydFNpdGVAQFBFQVVJQmluZEhvc3RAQF9ORUVFUEVBVkNSSW1hZ2VAQFBFQVBFQVYzQFBFQVBFQVZDUkV2ZW50QEBQRUFQRUFWQ1JOdW1iZXJAQDdAWg0KKzsgY2xhc3MgQ1JJbXBvcnRhdGlvblJlc3VsdCAqIF9fcHRyNjQgX19jZGVjbCBDUkltcG9ydE1lZGlhKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCxlbnVtIENSX01FRElBX1NPVVJDRSx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQgY29uc3QsdW5zaWduZWQgbG9uZyxjbGFzcyBDUkltcG9ydFNpdGUgKiBfX3B0cjY0KQ0KKz9DUkltcG9ydE1lZGlhQEBZQVBFQVZDUkltcG9ydGF0aW9uUmVzdWx0QEBQRUFHUEVBWFc0Q1JfTUVESUFfU09VUkNFQEBRRUFQRUFYS1BFQVZDUkltcG9ydFNpdGVAQEBaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1JJbXBvcnRNb3ZpZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENSSW1wb3J0U2l0ZSAqIF9fcHRyNjQsc3RydWN0IElCaW5kSG9zdCAqIF9fcHRyNjQsYm9vbCxjbGFzcyBDUkltYWdlICogX19wdHI2NCxjbGFzcyBDUlNvdW5kICogX19wdHI2NCxjbGFzcyBDUkltYWdlICogX19wdHI2NCAqIF9fcHRyNjQsY2xhc3MgQ1JTb3VuZCAqIF9fcHRyNjQgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCAqIF9fcHRyNjQsY2xhc3MgQ1JFdmVudCAqIF9fcHRyNjQgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/Q1JJbXBvcnRNb3ZpZUBAWUFLUEVCRzBQRUFWQ1JJbXBvcnRTaXRlQEBQRUFVSUJpbmRIb3N0QEBfTlBFQVZDUkltYWdlQEBQRUFWQ1JTb3VuZEBAUEVBUEVBVjNAUEVBUEVBVjRAUEVBUEVBVkNSTnVtYmVyQEBQRUFQRUFWQ1JFdmVudEBAODhAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSSW1wb3J0U291bmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDUkltcG9ydFNpdGUgKiBfX3B0cjY0LHN0cnVjdCBJQmluZEhvc3QgKiBfX3B0cjY0LGJvb2wsY2xhc3MgQ1JTb3VuZCAqIF9fcHRyNjQsY2xhc3MgQ1JTb3VuZCAqIF9fcHRyNjQgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCAqIF9fcHRyNjQsY2xhc3MgQ1JFdmVudCAqIF9fcHRyNjQgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/Q1JJbXBvcnRTb3VuZEBAWUFLUEVCRzBQRUFWQ1JJbXBvcnRTaXRlQEBQRUFVSUJpbmRIb3N0QEBfTlBFQVZDUlNvdW5kQEBQRUFQRUFWM0BQRUFQRUFWQ1JOdW1iZXJAQFBFQVBFQVZDUkV2ZW50QEA2NkBaDQorOyBsb25nIF9fY2RlY2wgQ1JJbXBvcnRTdGF0dXMoY2xhc3MgQ1JCdnIgKiBfX3B0cjY0KQ0KKz9DUkltcG9ydFN0YXR1c0BAWUFKUEVBVkNSQnZyQEBAWg0KKzsgY2xhc3MgQ1JCdnIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JJbXBvcnRhbmNlKGNsYXNzIENSQnZyICogX19wdHI2NCxkb3VibGUpDQorP0NSSW1wb3J0YW5jZUBAWUFQRUFWQ1JCdnJAQFBFQVYxQE5AWg0KKzsgYm9vbCBfX2NkZWNsIENSSW5pdChjbGFzcyBDUkJ2ciAqIF9fcHRyNjQsY2xhc3MgQ1JCdnIgKiBfX3B0cjY0KQ0KKz9DUkluaXRAQFlBX05QRUFWQ1JCdnJAQDBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JJbnRlZ3JhbChjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSSW50ZWdyYWxAQFlBUEVBVkNSTnVtYmVyQEBQRUFWMUBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IyICogX19wdHI2NCBfX2NkZWNsIENSSW50ZWdyYWwoY2xhc3MgQ1JWZWN0b3IyICogX19wdHI2NCkNCis/Q1JJbnRlZ3JhbEBAWUFQRUFWQ1JWZWN0b3IyQEBQRUFWMUBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19wdHI2NCBfX2NkZWNsIENSSW50ZWdyYWwoY2xhc3MgQ1JWZWN0b3IzICogX19wdHI2NCkNCis/Q1JJbnRlZ3JhbEBAWUFQRUFWQ1JWZWN0b3IzQEBQRUFWMUBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JJbnRlcnBvbGF0ZShkb3VibGUsZG91YmxlLGRvdWJsZSkNCis/Q1JJbnRlcnBvbGF0ZUBAWUFQRUFWQ1JOdW1iZXJAQE5OTkBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUkludGVycG9sYXRlKGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUkludGVycG9sYXRlQEBZQVBFQVZDUk51bWJlckBAUEVBVjFAMDBAWg0KKzsgY2xhc3MgQ1JNYXR0ZSAqIF9fcHRyNjQgX19jZGVjbCBDUkludGVyc2VjdE1hdHRlKGNsYXNzIENSTWF0dGUgKiBfX3B0cjY0LGNsYXNzIENSTWF0dGUgKiBfX3B0cjY0KQ0KKz9DUkludGVyc2VjdE1hdHRlQEBZQVBFQVZDUk1hdHRlQEBQRUFWMUAwQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fcHRyNjQgX19jZGVjbCBDUkludmVyc2UoY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCkNCis/Q1JJbnZlcnNlQEBZQVBFQVZDUlRyYW5zZm9ybTJAQFBFQVYxQEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JJbnZlcnNlKGNsYXNzIENSVHJhbnNmb3JtMyAqIF9fcHRyNjQpDQorP0NSSW52ZXJzZUBAWUFQRUFWQ1JUcmFuc2Zvcm0zQEBQRUFWMUBAWg0KKzsgYm9vbCBfX2NkZWNsIENSSXNDb25uZWN0ZWQoc3RydWN0IEhJTlNUQU5DRV9fICogX19wdHI2NCkNCis/Q1JJc0Nvbm5lY3RlZEBAWUFfTlBFQVVISU5TVEFOQ0VfX0BAQFoNCis7IGJvb2wgX19jZGVjbCBDUklzQ29uc3RhbnRCdnIoY2xhc3MgQ1JCdnIgKiBfX3B0cjY0KQ0KKz9DUklzQ29uc3RhbnRCdnJAQFlBX05QRUFWQ1JCdnJAQEBaDQorOyBib29sIF9fY2RlY2wgQ1JJc0ltcG9ydChjbGFzcyBDUkJ2ciAqIF9fcHRyNjQpDQorP0NSSXNJbXBvcnRAQFlBX05QRUFWQ1JCdnJAQEBaDQorOyBib29sIF9fY2RlY2wgQ1JJc01vZGlmaWFibGVCdnIoY2xhc3MgQ1JCdnIgKiBfX3B0cjY0KQ0KKz9DUklzTW9kaWZpYWJsZUJ2ckBAWUFfTlBFQVZDUkJ2ckBAQFoNCis7IGJvb2wgX19jZGVjbCBDUklzUmVhZHkoY2xhc3MgQ1JCdnIgKiBfX3B0cjY0LGJvb2wpDQorP0NSSXNSZWFkeUBAWUFfTlBFQVZDUkJ2ckBAX05AWg0KKzsgY2xhc3MgQ1JCb29sZWFuICogX19wdHI2NCBfX2NkZWNsIENSSXNTaW5ndWxhcihjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3B0cjY0KQ0KKz9DUklzU2luZ3VsYXJAQFlBUEVBVkNSQm9vbGVhbkBAUEVBVkNSVHJhbnNmb3JtMkBAQFoNCis7IGNsYXNzIENSQm9vbGVhbiAqIF9fcHRyNjQgX19jZGVjbCBDUklzU2luZ3VsYXIoY2xhc3MgQ1JUcmFuc2Zvcm0zICogX19wdHI2NCkNCis/Q1JJc1Npbmd1bGFyQEBZQVBFQVZDUkJvb2xlYW5AQFBFQVZDUlRyYW5zZm9ybTNAQEBaDQorOyBjbGFzcyBDUkZvbnRTdHlsZSAqIF9fcHRyNjQgX19jZGVjbCBDUkl0YWxpYyhjbGFzcyBDUkZvbnRTdHlsZSAqIF9fcHRyNjQpDQorP0NSSXRhbGljQEBZQVBFQVZDUkZvbnRTdHlsZUBAUEVBVjFAQFoNCis7IGNsYXNzIENSTGluZVN0eWxlICogX19wdHI2NCBfX2NkZWNsIENSSm9pbihjbGFzcyBDUkxpbmVTdHlsZSAqIF9fcHRyNjQsY2xhc3MgQ1JKb2luU3R5bGUgKiBfX3B0cjY0KQ0KKz9DUkpvaW5AQFlBUEVBVkNSTGluZVN0eWxlQEBQRUFWMUBQRUFWQ1JKb2luU3R5bGVAQEBaDQorOyBjbGFzcyBDUkxpbmVTdHlsZSAqIF9fcHRyNjQgX19jZGVjbCBDUkpvaW5FeChjbGFzcyBDUkxpbmVTdHlsZSAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/Q1JKb2luRXhAQFlBUEVBVkNSTGluZVN0eWxlQEBQRUFWMUBLQFoNCis7IGNsYXNzIENSSm9pblN0eWxlICogX19wdHI2NCBfX2NkZWNsIENSSm9pblN0eWxlQmV2ZWwodm9pZCkNCis/Q1JKb2luU3R5bGVCZXZlbEBAWUFQRUFWQ1JKb2luU3R5bGVAQFhaDQorOyBjbGFzcyBDUkpvaW5TdHlsZSAqIF9fcHRyNjQgX19jZGVjbCBDUkpvaW5TdHlsZU1pdGVyKHZvaWQpDQorP0NSSm9pblN0eWxlTWl0ZXJAQFlBUEVBVkNSSm9pblN0eWxlQEBYWg0KKzsgY2xhc3MgQ1JKb2luU3R5bGUgKiBfX3B0cjY0IF9fY2RlY2wgQ1JKb2luU3R5bGVSb3VuZCh2b2lkKQ0KKz9DUkpvaW5TdHlsZVJvdW5kQEBZQVBFQVZDUkpvaW5TdHlsZUBAWFoNCis7IGNsYXNzIENSRXZlbnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1JLZXlEb3duKGxvbmcpDQorP0NSS2V5RG93bkBAWUFQRUFWQ1JFdmVudEBASkBaDQorOyBjbGFzcyBDUkJvb2xlYW4gKiBfX3B0cjY0IF9fY2RlY2wgQ1JLZXlTdGF0ZShjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSS2V5U3RhdGVAQFlBUEVBVkNSQm9vbGVhbkBAUEVBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JFdmVudCAqIF9fcHRyNjQgX19jZGVjbCBDUktleVVwKGxvbmcpDQorP0NSS2V5VXBAQFlBUEVBVkNSRXZlbnRAQEpAWg0KKzsgY2xhc3MgQ1JCb29sZWFuICogX19wdHI2NCBfX2NkZWNsIENSTFQoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JMVEBAWUFQRUFWQ1JCb29sZWFuQEBQRUFWQ1JOdW1iZXJAQDBAWg0KKzsgY2xhc3MgQ1JCb29sZWFuICogX19wdHI2NCBfX2NkZWNsIENSTFRFKGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSTFRFQEBZQVBFQVZDUkJvb2xlYW5AQFBFQVZDUk51bWJlckBAMEBaDQorOyBjbGFzcyBDUkV2ZW50ICogX19wdHI2NCBfX2NkZWNsIENSTGVmdEJ1dHRvbkRvd24odm9pZCkNCis/Q1JMZWZ0QnV0dG9uRG93bkBAWUFQRUFWQ1JFdmVudEBAWFoNCis7IGNsYXNzIENSQm9vbGVhbiAqIF9fcHRyNjQgX19jZGVjbCBDUkxlZnRCdXR0b25TdGF0ZSh2b2lkKQ0KKz9DUkxlZnRCdXR0b25TdGF0ZUBAWUFQRUFWQ1JCb29sZWFuQEBYWg0KKzsgY2xhc3MgQ1JFdmVudCAqIF9fcHRyNjQgX19jZGVjbCBDUkxlZnRCdXR0b25VcCh2b2lkKQ0KKz9DUkxlZnRCdXR0b25VcEBAWUFQRUFWQ1JFdmVudEBAWFoNCis7IGxvbmcgX19jZGVjbCBDUkxlbmd0aChjbGFzcyBDUlR1cGxlICogX19wdHI2NCkNCis/Q1JMZW5ndGhAQFlBSlBFQVZDUlR1cGxlQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JMZW5ndGgoY2xhc3MgQ1JBcnJheSAqIF9fcHRyNjQpDQorP0NSTGVuZ3RoQEBZQVBFQVZDUk51bWJlckBAUEVBVkNSQXJyYXlAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUkxlbmd0aChjbGFzcyBDUlZlY3RvcjIgKiBfX3B0cjY0KQ0KKz9DUkxlbmd0aEBAWUFQRUFWQ1JOdW1iZXJAQFBFQVZDUlZlY3RvcjJAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUkxlbmd0aChjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0KQ0KKz9DUkxlbmd0aEBAWUFQRUFWQ1JOdW1iZXJAQFBFQVZDUlZlY3RvcjNAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUkxlbmd0aFNxdWFyZWQoY2xhc3MgQ1JWZWN0b3IyICogX19wdHI2NCkNCis/Q1JMZW5ndGhTcXVhcmVkQEBZQVBFQVZDUk51bWJlckBAUEVBVkNSVmVjdG9yMkBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSTGVuZ3RoU3F1YXJlZChjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0KQ0KKz9DUkxlbmd0aFNxdWFyZWRAQFlBUEVBVkNSTnVtYmVyQEBQRUFWQ1JWZWN0b3IzQEBAWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQgX19jZGVjbCBDUkxpZ2h0QXR0ZW51YXRpb24oY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQsZG91YmxlLGRvdWJsZSxkb3VibGUpDQorP0NSTGlnaHRBdHRlbnVhdGlvbkBAWUFQRUFWQ1JHZW9tZXRyeUBAUEVBVjFATk5OQFoNCis7IGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ1JMaWdodEF0dGVudWF0aW9uKGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUkxpZ2h0QXR0ZW51YXRpb25AQFlBUEVBVkNSR2VvbWV0cnlAQFBFQVYxQFBFQVZDUk51bWJlckBAMTFAWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQgX19jZGVjbCBDUkxpZ2h0Q29sb3IoY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQsY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQpDQorP0NSTGlnaHRDb2xvckBAWUFQRUFWQ1JHZW9tZXRyeUBAUEVBVjFAUEVBVkNSQ29sb3JAQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCBfX2NkZWNsIENSTGlnaHRSYW5nZShjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCxkb3VibGUpDQorP0NSTGlnaHRSYW5nZUBAWUFQRUFWQ1JHZW9tZXRyeUBAUEVBVjFATkBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCBfX2NkZWNsIENSTGlnaHRSYW5nZShjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSTGlnaHRSYW5nZUBAWUFQRUFWQ1JHZW9tZXRyeUBAUEVBVjFAUEVBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQgX19jZGVjbCBDUkxpZ2h0aW5nKGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0LGNsYXNzIENSQm9vbGVhbiAqIF9fcHRyNjQpDQorP0NSTGlnaHRpbmdAQFlBUEVBVkNSR2VvbWV0cnlAQFBFQVYxQFBFQVZDUkJvb2xlYW5AQEBaDQorOyBjbGFzcyBDUkNvbG9yICogX19wdHI2NCBfX2NkZWNsIENSTGltZSh2b2lkKQ0KKz9DUkxpbWVAQFlBUEVBVkNSQ29sb3JAQFhaDQorOyBjbGFzcyBDUlBhdGgyICogX19wdHI2NCBfX2NkZWNsIENSTGluZShjbGFzcyBDUlBvaW50MiAqIF9fcHRyNjQsY2xhc3MgQ1JQb2ludDIgKiBfX3B0cjY0KQ0KKz9DUkxpbmVAQFlBUEVBVkNSUGF0aDJAQFBFQVZDUlBvaW50MkBAMEBaDQorOyBjbGFzcyBDUkxpbmVTdHlsZSAqIF9fcHRyNjQgX19jZGVjbCBDUkxpbmVDb2xvcihjbGFzcyBDUkxpbmVTdHlsZSAqIF9fcHRyNjQsY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQpDQorP0NSTGluZUNvbG9yQEBZQVBFQVZDUkxpbmVTdHlsZUBAUEVBVjFAUEVBVkNSQ29sb3JAQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENSTGluZWFyR3JhZGllbnRNdWx0aWNvbG9yKGNsYXNzIENSQXJyYXkgKiBfX3B0cjY0LGNsYXNzIENSQXJyYXkgKiBfX3B0cjY0KQ0KKz9DUkxpbmVhckdyYWRpZW50TXVsdGljb2xvckBAWUFQRUFWQ1JJbWFnZUBAUEVBVkNSQXJyYXlAQDBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JMbihjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSTG5AQFlBUEVBVkNSTnVtYmVyQEBQRUFWMUBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JMb2NhbFRpbWUodm9pZCkNCis/Q1JMb2NhbFRpbWVAQFlBUEVBVkNSTnVtYmVyQEBYWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JMb2cxMChjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSTG9nMTBAQFlBUEVBVkNSTnVtYmVyQEBQRUFWMUBAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0zICogX19wdHI2NCBfX2NkZWNsIENSTG9va0F0RnJvbShjbGFzcyBDUlBvaW50MyAqIF9fcHRyNjQsY2xhc3MgQ1JQb2ludDMgKiBfX3B0cjY0LGNsYXNzIENSVmVjdG9yMyAqIF9fcHRyNjQpDQorP0NSTG9va0F0RnJvbUBAWUFQRUFWQ1JUcmFuc2Zvcm0zQEBQRUFWQ1JQb2ludDNAQDBQRUFWQ1JWZWN0b3IzQEBAWg0KKzsgY2xhc3MgQ1JTb3VuZCAqIF9fcHRyNjQgX19jZGVjbCBDUkxvb3AoY2xhc3MgQ1JTb3VuZCAqIF9fcHRyNjQpDQorP0NSTG9vcEBAWUFQRUFWQ1JTb3VuZEBAUEVBVjFAQFoNCis7IGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0IF9fY2RlY2wgQ1JNYWdlbnRhKHZvaWQpDQorP0NSTWFnZW50YUBAWUFQRUFWQ1JDb2xvckBAWFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JNYXBUb1VuaXRTcXVhcmUoY2xhc3MgQ1JJbWFnZSAqIF9fcHRyNjQpDQorP0NSTWFwVG9Vbml0U3F1YXJlQEBZQVBFQVZDUkltYWdlQEBQRUFWMUBAWg0KKzsgY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQgX19jZGVjbCBDUk1hcm9vbih2b2lkKQ0KKz9DUk1hcm9vbkBAWUFQRUFWQ1JDb2xvckBAWFoNCis7IGNsYXNzIENSUG9pbnQyICogX19wdHI2NCBfX2NkZWNsIENSTWF4KGNsYXNzIENSQmJveDIgKiBfX3B0cjY0KQ0KKz9DUk1heEBAWUFQRUFWQ1JQb2ludDJAQFBFQVZDUkJib3gyQEBAWg0KKzsgY2xhc3MgQ1JQb2ludDMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JNYXgoY2xhc3MgQ1JCYm94MyAqIF9fcHRyNjQpDQorP0NSTWF4QEBZQVBFQVZDUlBvaW50M0BAUEVBVkNSQmJveDNAQEBaDQorOyBjbGFzcyBDUlBvaW50MiAqIF9fcHRyNjQgX19jZGVjbCBDUk1pbihjbGFzcyBDUkJib3gyICogX19wdHI2NCkNCis/Q1JNaW5AQFlBUEVBVkNSUG9pbnQyQEBQRUFWQ1JCYm94MkBAQFoNCis7IGNsYXNzIENSUG9pbnQzICogX19wdHI2NCBfX2NkZWNsIENSTWluKGNsYXNzIENSQmJveDMgKiBfX3B0cjY0KQ0KKz9DUk1pbkBAWUFQRUFWQ1JQb2ludDNAQFBFQVZDUkJib3gzQEBAWg0KKzsgY2xhc3MgQ1JMaW5lU3R5bGUgKiBfX3B0cjY0IF9fY2RlY2wgQ1JNaXRlckxpbWl0KGNsYXNzIENSTGluZVN0eWxlICogX19wdHI2NCxkb3VibGUpDQorP0NSTWl0ZXJMaW1pdEBAWUFQRUFWQ1JMaW5lU3R5bGVAQFBFQVYxQE5AWg0KKzsgY2xhc3MgQ1JMaW5lU3R5bGUgKiBfX3B0cjY0IF9fY2RlY2wgQ1JNaXRlckxpbWl0KGNsYXNzIENSTGluZVN0eWxlICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSTWl0ZXJMaW1pdEBAWUFQRUFWQ1JMaW5lU3R5bGVAQFBFQVYxQFBFQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSU291bmQgKiBfX3B0cjY0IF9fY2RlY2wgQ1JNaXgoY2xhc3MgQ1JTb3VuZCAqIF9fcHRyNjQsY2xhc3MgQ1JTb3VuZCAqIF9fcHRyNjQpDQorP0NSTWl4QEBZQVBFQVZDUlNvdW5kQEBQRUFWMUAwQFoNCis7IGNsYXNzIENSU291bmQgKiBfX3B0cjY0IF9fY2RlY2wgQ1JNaXgoY2xhc3MgQ1JBcnJheSAqIF9fcHRyNjQpDQorP0NSTWl4QEBZQVBFQVZDUlNvdW5kQEBQRUFWQ1JBcnJheUBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSTW9kKGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSTW9kQEBZQVBFQVZDUk51bWJlckBAUEVBVjFAMEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCBfX2NkZWNsIENSTW9kZWxDbGlwKGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0LGNsYXNzIENSUG9pbnQzICogX19wdHI2NCxjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0KQ0KKz9DUk1vZGVsQ2xpcEBAWUFQRUFWQ1JHZW9tZXRyeUBAUEVBVjFAUEVBVkNSUG9pbnQzQEBQRUFWQ1JWZWN0b3IzQEBAWg0KKzsgY2xhc3MgQ1JCdnIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JNb2RpZmlhYmxlQnZyKGNsYXNzIENSQnZyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKQ0KKz9DUk1vZGlmaWFibGVCdnJAQFlBUEVBVkNSQnZyQEBQRUFWMUBLQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSTW9kaWZpYWJsZU51bWJlcihkb3VibGUpDQorP0NSTW9kaWZpYWJsZU51bWJlckBAWUFQRUFWQ1JOdW1iZXJAQE5AWg0KKzsgY2xhc3MgQ1JTdHJpbmcgKiBfX3B0cjY0IF9fY2RlY2wgQ1JNb2RpZmlhYmxlU3RyaW5nKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/Q1JNb2RpZmlhYmxlU3RyaW5nQEBZQVBFQVZDUlN0cmluZ0BAUEVBR0BaDQorOyBjbGFzcyBDUlBvaW50MiAqIF9fcHRyNjQgX19jZGVjbCBDUk1vdXNlUG9zaXRpb24odm9pZCkNCis/Q1JNb3VzZVBvc2l0aW9uQEBZQVBFQVZDUlBvaW50MkBAWFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSTXVsKGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSTXVsQEBZQVBFQVZDUk51bWJlckBAUEVBVjFAMEBaDQorOyBjbGFzcyBDUlZlY3RvcjIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JNdWwoY2xhc3MgQ1JWZWN0b3IyICogX19wdHI2NCxkb3VibGUpDQorP0NSTXVsQEBZQVBFQVZDUlZlY3RvcjJAQFBFQVYxQE5AWg0KKzsgY2xhc3MgQ1JWZWN0b3IyICogX19wdHI2NCBfX2NkZWNsIENSTXVsKGNsYXNzIENSVmVjdG9yMiAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUk11bEBAWUFQRUFWQ1JWZWN0b3IyQEBQRUFWMUBQRUFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JNdWwoY2xhc3MgQ1JWZWN0b3IzICogX19wdHI2NCxkb3VibGUpDQorP0NSTXVsQEBZQVBFQVZDUlZlY3RvcjNAQFBFQVYxQE5AWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19wdHI2NCBfX2NkZWNsIENSTXVsKGNsYXNzIENSVmVjdG9yMyAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUk11bEBAWUFQRUFWQ1JWZWN0b3IzQEBQRUFWMUBQRUFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkJvb2xlYW4gKiBfX3B0cjY0IF9fY2RlY2wgQ1JORShjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUk5FQEBZQVBFQVZDUkJvb2xlYW5AQFBFQVZDUk51bWJlckBAMEBaDQorOyBjbGFzcyBDUkNvbG9yICogX19wdHI2NCBfX2NkZWNsIENSTmF2eSh2b2lkKQ0KKz9DUk5hdnlAQFlBUEVBVkNSQ29sb3JAQFhaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUk5lZyhjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSTmVnQEBZQVBFQVZDUk51bWJlckBAUEVBVjFAQFoNCis7IGNsYXNzIENSVmVjdG9yMiAqIF9fcHRyNjQgX19jZGVjbCBDUk5lZyhjbGFzcyBDUlZlY3RvcjIgKiBfX3B0cjY0KQ0KKz9DUk5lZ0BAWUFQRUFWQ1JWZWN0b3IyQEBQRUFWMUBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19wdHI2NCBfX2NkZWNsIENSTmVnKGNsYXNzIENSVmVjdG9yMyAqIF9fcHRyNjQpDQorP0NSTmVnQEBZQVBFQVZDUlZlY3RvcjNAQFBFQVYxQEBaDQorOyBjbGFzcyBDUkV2ZW50ICogX19wdHI2NCBfX2NkZWNsIENSTmV2ZXIodm9pZCkNCis/Q1JOZXZlckBAWUFQRUFWQ1JFdmVudEBAWFoNCis7IGNsYXNzIENSVmVjdG9yMiAqIF9fcHRyNjQgX19jZGVjbCBDUk5vcm1hbGl6ZShjbGFzcyBDUlZlY3RvcjIgKiBfX3B0cjY0KQ0KKz9DUk5vcm1hbGl6ZUBAWUFQRUFWQ1JWZWN0b3IyQEBQRUFWMUBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19wdHI2NCBfX2NkZWNsIENSTm9ybWFsaXplKGNsYXNzIENSVmVjdG9yMyAqIF9fcHRyNjQpDQorP0NSTm9ybWFsaXplQEBZQVBFQVZDUlZlY3RvcjNAQFBFQVYxQEBaDQorOyBjbGFzcyBDUkJvb2xlYW4gKiBfX3B0cjY0IF9fY2RlY2wgQ1JOb3QoY2xhc3MgQ1JCb29sZWFuICogX19wdHI2NCkNCis/Q1JOb3RAQFlBUEVBVkNSQm9vbGVhbkBAUEVBVjFAQFoNCis7IGNsYXNzIENSRXZlbnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1JOb3RFdmVudChjbGFzcyBDUkV2ZW50ICogX19wdHI2NCkNCis/Q1JOb3RFdmVudEBAWUFQRUFWQ1JFdmVudEBAUEVBVjFAQFoNCis7IGNsYXNzIENSRXZlbnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1JOb3RpZnkoY2xhc3MgQ1JFdmVudCAqIF9fcHRyNjQsY2xhc3MgQ1JVbnRpbE5vdGlmaWVyICogX19wdHI2NCkNCis/Q1JOb3RpZnlAQFlBUEVBVkNSRXZlbnRAQFBFQVYxQFBFQVZDUlVudGlsTm90aWZpZXJAQEBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fcHRyNjQgX19jZGVjbCBDUk50aChjbGFzcyBDUkFycmF5ICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSTnRoQEBZQVBFQVZDUkJ2ckBAUEVBVkNSQXJyYXlAQFBFQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSQnZyICogX19wdHI2NCBfX2NkZWNsIENSTnRoKGNsYXNzIENSVHVwbGUgKiBfX3B0cjY0LGxvbmcpDQorP0NSTnRoQEBZQVBFQVZDUkJ2ckBAUEVBVkNSVHVwbGVAQEpAWg0KKzsgY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQgX19jZGVjbCBDUk9saXZlKHZvaWQpDQorP0NST2xpdmVAQFlBUEVBVkNSQ29sb3JAQFhaDQorOyBib29sIF9fY2RlY2wgQ1JPbkZvY3VzKGNsYXNzIENSVmlldyAqIF9fcHRyNjQsYm9vbCkNCis/Q1JPbkZvY3VzQEBZQV9OUEVBVkNSVmlld0BAX05AWg0KKzsgYm9vbCBfX2NkZWNsIENST25LZXkoY2xhc3MgQ1JWaWV3ICogX19wdHI2NCxkb3VibGUsbG9uZyxib29sLHVuc2lnbmVkIGNoYXIpDQorP0NST25LZXlAQFlBX05QRUFWQ1JWaWV3QEBOSl9ORUBaDQorOyBib29sIF9fY2RlY2wgQ1JPbk1vdXNlQnV0dG9uKGNsYXNzIENSVmlldyAqIF9fcHRyNjQsZG91YmxlLGxvbmcsbG9uZyx1bnNpZ25lZCBjaGFyLGJvb2wsdW5zaWduZWQgY2hhcikNCis/Q1JPbk1vdXNlQnV0dG9uQEBZQV9OUEVBVkNSVmlld0BATkpKRV9ORUBaDQorOyBib29sIF9fY2RlY2wgQ1JPbk1vdXNlTGVhdmUoY2xhc3MgQ1JWaWV3ICogX19wdHI2NCxkb3VibGUpDQorP0NST25Nb3VzZUxlYXZlQEBZQV9OUEVBVkNSVmlld0BATkBaDQorOyBib29sIF9fY2RlY2wgQ1JPbk1vdXNlTW92ZShjbGFzcyBDUlZpZXcgKiBfX3B0cjY0LGRvdWJsZSxsb25nLGxvbmcsdW5zaWduZWQgY2hhcikNCis/Q1JPbk1vdXNlTW92ZUBAWUFfTlBFQVZDUlZpZXdAQE5KSkVAWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQgX19jZGVjbCBDUk9wYWNpdHkoY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQsZG91YmxlKQ0KKz9DUk9wYWNpdHlAQFlBUEVBVkNSR2VvbWV0cnlAQFBFQVYxQE5AWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQgX19jZGVjbCBDUk9wYWNpdHkoY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUk9wYWNpdHlAQFlBUEVBVkNSR2VvbWV0cnlAQFBFQVYxQFBFQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JPcGFjaXR5KGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0LGRvdWJsZSkNCis/Q1JPcGFjaXR5QEBZQVBFQVZDUkltYWdlQEBQRUFWMUBOQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JPcGFjaXR5KGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JPcGFjaXR5QEBZQVBFQVZDUkltYWdlQEBQRUFWMUBQRUFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUk1hdHRlICogX19wdHI2NCBfX2NkZWNsIENST3BhcXVlTWF0dGUodm9pZCkNCis/Q1JPcGFxdWVNYXR0ZUBAWUFQRUFWQ1JNYXR0ZUBAWFoNCis7IGNsYXNzIENSQm9vbGVhbiAqIF9fcHRyNjQgX19jZGVjbCBDUk9yKGNsYXNzIENSQm9vbGVhbiAqIF9fcHRyNjQsY2xhc3MgQ1JCb29sZWFuICogX19wdHI2NCkNCis/Q1JPckBAWUFQRUFWQ1JCb29sZWFuQEBQRUFWMUAwQFoNCis7IGNsYXNzIENSRXZlbnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1JPckV2ZW50KGNsYXNzIENSRXZlbnQgKiBfX3B0cjY0LGNsYXNzIENSRXZlbnQgKiBfX3B0cjY0KQ0KKz9DUk9yRXZlbnRAQFlBUEVBVkNSRXZlbnRAQFBFQVYxQDBAWg0KKzsgY2xhc3MgQ1JQb2ludDIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JPcmlnaW4yKHZvaWQpDQorP0NST3JpZ2luMkBAWUFQRUFWQ1JQb2ludDJAQFhaDQorOyBjbGFzcyBDUlBvaW50MyAqIF9fcHRyNjQgX19jZGVjbCBDUk9yaWdpbjModm9pZCkNCis/Q1JPcmlnaW4zQEBZQVBFQVZDUlBvaW50M0BAWFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JPdmFsKGRvdWJsZSxkb3VibGUpDQorP0NST3ZhbEBAWUFQRUFWQ1JQYXRoMkBATk5AWg0KKzsgY2xhc3MgQ1JQYXRoMiAqIF9fcHRyNjQgX19jZGVjbCBDUk92YWwoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JPdmFsQEBZQVBFQVZDUlBhdGgyQEBQRUFWQ1JOdW1iZXJAQDBAWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fcHRyNjQgX19jZGVjbCBDUk92ZXJsYXkoY2xhc3MgQ1JJbWFnZSAqIF9fcHRyNjQsY2xhc3MgQ1JJbWFnZSAqIF9fcHRyNjQpDQorP0NST3ZlcmxheUBAWUFQRUFWQ1JJbWFnZUBAUEVBVjFAMEBaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENST3ZlcmxheShjbGFzcyBDUkFycmF5ICogX19wdHI2NCkNCis/Q1JPdmVybGF5QEBZQVBFQVZDUkltYWdlQEBQRUFWQ1JBcnJheUBAQFoNCis7IGNsYXNzIENSU291bmQgKiBfX3B0cjY0IF9fY2RlY2wgQ1JQYW4oY2xhc3MgQ1JTb3VuZCAqIF9fcHRyNjQsZG91YmxlKQ0KKz9DUlBhbkBAWUFQRUFWQ1JTb3VuZEBAUEVBVjFATkBaDQorOyBjbGFzcyBDUlNvdW5kICogX19wdHI2NCBfX2NkZWNsIENSUGFuKGNsYXNzIENSU291bmQgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JQYW5AQFlBUEVBVkNSU291bmRAQFBFQVYxQFBFQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSQ2FtZXJhICogX19wdHI2NCBfX2NkZWNsIENSUGFyYWxsZWxDYW1lcmEoZG91YmxlKQ0KKz9DUlBhcmFsbGVsQ2FtZXJhQEBZQVBFQVZDUkNhbWVyYUBATkBaDQorOyBjbGFzcyBDUkNhbWVyYSAqIF9fcHRyNjQgX19jZGVjbCBDUlBhcmFsbGVsQ2FtZXJhQW5pbShjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSUGFyYWxsZWxDYW1lcmFBbmltQEBZQVBFQVZDUkNhbWVyYUBAUEVBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCBfX2NkZWNsIENSUGFyYWxsZWxUcmFuc2Zvcm0yKGNsYXNzIENSVHJhbnNmb3JtMyAqIF9fcHRyNjQpDQorP0NSUGFyYWxsZWxUcmFuc2Zvcm0yQEBZQVBFQVZDUlRyYW5zZm9ybTJAQFBFQVZDUlRyYW5zZm9ybTNAQEBaDQorOyBib29sIF9fY2RlY2wgQ1JQYXVzZU1vZGVsKGNsYXNzIENSVmlldyAqIF9fcHRyNjQpDQorP0NSUGF1c2VNb2RlbEBAWUFfTlBFQVZDUlZpZXdAQEBaDQorOyBjbGFzcyBDUkNhbWVyYSAqIF9fcHRyNjQgX19jZGVjbCBDUlBlcnNwZWN0aXZlQ2FtZXJhKGRvdWJsZSxkb3VibGUpDQorP0NSUGVyc3BlY3RpdmVDYW1lcmFAQFlBUEVBVkNSQ2FtZXJhQEBOTkBaDQorOyBjbGFzcyBDUkNhbWVyYSAqIF9fcHRyNjQgX19jZGVjbCBDUlBlcnNwZWN0aXZlQ2FtZXJhQW5pbShjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUlBlcnNwZWN0aXZlQ2FtZXJhQW5pbUBAWUFQRUFWQ1JDYW1lcmFAQFBFQVZDUk51bWJlckBAMEBaDQorOyBjbGFzcyBDUlNvdW5kICogX19wdHI2NCBfX2NkZWNsIENSUGhhc2UoY2xhc3MgQ1JTb3VuZCAqIF9fcHRyNjQsZG91YmxlKQ0KKz9DUlBoYXNlQEBZQVBFQVZDUlNvdW5kQEBQRUFWMUBOQFoNCis7IGNsYXNzIENSU291bmQgKiBfX3B0cjY0IF9fY2RlY2wgQ1JQaGFzZShjbGFzcyBDUlNvdW5kICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSUGhhc2VAQFlBUEVBVkNSU291bmRAQFBFQVYxQFBFQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSUGlja2FibGVSZXN1bHQgKiBfX3B0cjY0IF9fY2RlY2wgQ1JQaWNrYWJsZShjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCkNCis/Q1JQaWNrYWJsZUBAWUFQRUFWQ1JQaWNrYWJsZVJlc3VsdEBAUEVBVkNSR2VvbWV0cnlAQEBaDQorOyBjbGFzcyBDUlBpY2thYmxlUmVzdWx0ICogX19wdHI2NCBfX2NkZWNsIENSUGlja2FibGUoY2xhc3MgQ1JJbWFnZSAqIF9fcHRyNjQpDQorP0NSUGlja2FibGVAQFlBUEVBVkNSUGlja2FibGVSZXN1bHRAQFBFQVZDUkltYWdlQEBAWg0KKzsgY2xhc3MgQ1JQaWNrYWJsZVJlc3VsdCAqIF9fcHRyNjQgX19jZGVjbCBDUlBpY2thYmxlT2NjbHVkZWQoY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQpDQorP0NSUGlja2FibGVPY2NsdWRlZEBAWUFQRUFWQ1JQaWNrYWJsZVJlc3VsdEBAUEVBVkNSR2VvbWV0cnlAQEBaDQorOyBjbGFzcyBDUlBpY2thYmxlUmVzdWx0ICogX19wdHI2NCBfX2NkZWNsIENSUGlja2FibGVPY2NsdWRlZChjbGFzcyBDUkltYWdlICogX19wdHI2NCkNCis/Q1JQaWNrYWJsZU9jY2x1ZGVkQEBZQVBFQVZDUlBpY2thYmxlUmVzdWx0QEBQRUFWQ1JJbWFnZUBAQFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JQaWUoZG91YmxlLGRvdWJsZSxkb3VibGUsZG91YmxlKQ0KKz9DUlBpZUBAWUFQRUFWQ1JQYXRoMkBATk5OTkBaDQorOyBjbGFzcyBDUlBhdGgyICogX19wdHI2NCBfX2NkZWNsIENSUGllUmFkaWFucyhkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUpDQorP0NSUGllUmFkaWFuc0BAWUFQRUFWQ1JQYXRoMkBATk5OTkBaDQorOyBjbGFzcyBDUlBhdGgyICogX19wdHI2NCBfX2NkZWNsIENSUGllUmFkaWFucyhjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSUGllUmFkaWFuc0BAWUFQRUFWQ1JQYXRoMkBAUEVBVkNSTnVtYmVyQEAwMDBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JQaXhlbCh2b2lkKQ0KKz9DUlBpeGVsQEBZQVBFQVZDUk51bWJlckBAWFoNCis7IGNsYXNzIENSUG9pbnQyICogX19wdHI2NCBfX2NkZWNsIENSUG9pbnQyUG9sYXIoZG91YmxlLGRvdWJsZSkNCis/Q1JQb2ludDJQb2xhckBAWUFQRUFWQ1JQb2ludDJAQE5OQFoNCis7IGNsYXNzIENSUG9pbnQyICogX19wdHI2NCBfX2NkZWNsIENSUG9pbnQyUG9sYXIoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JQb2ludDJQb2xhckBAWUFQRUFWQ1JQb2ludDJAQFBFQVZDUk51bWJlckBAMEBaDQorOyBjbGFzcyBDUlBvaW50MyAqIF9fcHRyNjQgX19jZGVjbCBDUlBvaW50M1NwaGVyaWNhbChkb3VibGUsZG91YmxlLGRvdWJsZSkNCis/Q1JQb2ludDNTcGhlcmljYWxAQFlBUEVBVkNSUG9pbnQzQEBOTk5AWg0KKzsgY2xhc3MgQ1JQb2ludDMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JQb2ludDNTcGhlcmljYWwoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSUG9pbnQzU3BoZXJpY2FsQEBZQVBFQVZDUlBvaW50M0BAUEVBVkNSTnVtYmVyQEAwMEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCBfX2NkZWNsIENSUG9pbnRMaWdodCh2b2lkKQ0KKz9DUlBvaW50TGlnaHRAQFlBUEVBVkNSR2VvbWV0cnlAQFhaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUlBvbGFyQ29vcmRBbmdsZShjbGFzcyBDUlBvaW50MiAqIF9fcHRyNjQpDQorP0NSUG9sYXJDb29yZEFuZ2xlQEBZQVBFQVZDUk51bWJlckBAUEVBVkNSUG9pbnQyQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JQb2xhckNvb3JkQW5nbGUoY2xhc3MgQ1JWZWN0b3IyICogX19wdHI2NCkNCis/Q1JQb2xhckNvb3JkQW5nbGVAQFlBUEVBVkNSTnVtYmVyQEBQRUFWQ1JWZWN0b3IyQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JQb2xhckNvb3JkTGVuZ3RoKGNsYXNzIENSUG9pbnQyICogX19wdHI2NCkNCis/Q1JQb2xhckNvb3JkTGVuZ3RoQEBZQVBFQVZDUk51bWJlckBAUEVBVkNSUG9pbnQyQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JQb2xhckNvb3JkTGVuZ3RoKGNsYXNzIENSVmVjdG9yMiAqIF9fcHRyNjQpDQorP0NSUG9sYXJDb29yZExlbmd0aEBAWUFQRUFWQ1JOdW1iZXJAQFBFQVZDUlZlY3RvcjJAQEBaDQorOyBjbGFzcyBDUlBhdGgyICogX19wdHI2NCBfX2NkZWNsIENSUG9seWRyYXdQYXRoKGRvdWJsZSAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGRvdWJsZSAqIF9fcHRyNjQsdW5zaWduZWQgaW50KQ0KKz9DUlBvbHlkcmF3UGF0aEBAWUFQRUFWQ1JQYXRoMkBAUEVBTkkwSUBaDQorOyBjbGFzcyBDUlBhdGgyICogX19wdHI2NCBfX2NkZWNsIENSUG9seWRyYXdQYXRoKGNsYXNzIENSQXJyYXkgKiBfX3B0cjY0LGNsYXNzIENSQXJyYXkgKiBfX3B0cjY0KQ0KKz9DUlBvbHlkcmF3UGF0aEBAWUFQRUFWQ1JQYXRoMkBAUEVBVkNSQXJyYXlAQDBAWg0KKzsgY2xhc3MgQ1JQYXRoMiAqIF9fcHRyNjQgX19jZGVjbCBDUlBvbHlsaW5lKGNsYXNzIENSQXJyYXkgKiBfX3B0cjY0KQ0KKz9DUlBvbHlsaW5lQEBZQVBFQVZDUlBhdGgyQEBQRUFWQ1JBcnJheUBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSUG93KGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSUG93QEBZQVBFQVZDUk51bWJlckBAUEVBVjFAMEBaDQorOyBjbGFzcyBDUkV2ZW50ICogX19wdHI2NCBfX2NkZWNsIENSUHJlZGljYXRlKGNsYXNzIENSQm9vbGVhbiAqIF9fcHRyNjQpDQorP0NSUHJlZGljYXRlQEBZQVBFQVZDUkV2ZW50QEBQRUFWQ1JCb29sZWFuQEBAWg0KKzsgY2xhc3MgQ1JQb2ludDIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JQcm9qZWN0KGNsYXNzIENSUG9pbnQzICogX19wdHI2NCxjbGFzcyBDUkNhbWVyYSAqIF9fcHRyNjQpDQorP0NSUHJvamVjdEBAWUFQRUFWQ1JQb2ludDJAQFBFQVZDUlBvaW50M0BAUEVBVkNSQ2FtZXJhQEBAWg0KKzsgYm9vbCBfX2NkZWNsIENSUHJvcGFnYXRlKGNsYXNzIENSVmlldyAqIF9fcHRyNjQpDQorP0NSUHJvcGFnYXRlQEBZQV9OUEVBVkNSVmlld0BAQFoNCis7IGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0IF9fY2RlY2wgQ1JQdXJwbGUodm9pZCkNCis/Q1JQdXJwbGVAQFlBUEVBVkNSQ29sb3JAQFhaDQorOyBib29sIF9fY2RlY2wgQ1JQdXRQcmVmZXJlbmNlKGNsYXNzIENSVmlldyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHN0cnVjdCB0YWdWQVJJQU5UKQ0KKz9DUlB1dFByZWZlcmVuY2VAQFlBX05QRUFWQ1JWaWV3QEBQRUFHVXRhZ1ZBUklBTlRAQEBaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1JRdWVyeUhpdFBvaW50KGNsYXNzIENSVmlldyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgdGFnUkVDVCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IHRhZ1BPSU5ULGxvbmcpDQorP0NSUXVlcnlIaXRQb2ludEBAWUFLUEVBVkNSVmlld0BAS1BFQlV0YWdSRUNUQEBVdGFnUE9JTlRAQEpAWg0KKzsgbG9uZyBfX2NkZWNsIENSUXVlcnlIaXRQb2ludEV4KGNsYXNzIENSVmlldyAqIF9fcHRyNjQsbG9uZyx1bnNpZ25lZCBfX2ludDY0ICogX19wdHI2NCxkb3VibGUgKiBfX3B0cjY0LHN0cnVjdCB0YWdSRUNUIGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgdGFnUE9JTlQpDQorP0NSUXVlcnlIaXRQb2ludEV4QEBZQUpQRUFWQ1JWaWV3QEBKUEVBX0tQRUFOUEVCVXRhZ1JFQ1RAQFV0YWdQT0lOVEBAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JSYWRpYWxHcmFkaWVudE11bHRpY29sb3IoY2xhc3MgQ1JBcnJheSAqIF9fcHRyNjQsY2xhc3MgQ1JBcnJheSAqIF9fcHRyNjQpDQorP0NSUmFkaWFsR3JhZGllbnRNdWx0aWNvbG9yQEBZQVBFQVZDUkltYWdlQEBQRUFWQ1JBcnJheUBAMEBaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENSUmFkaWFsR3JhZGllbnRQb2x5Z29uKGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0LGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0LGNsYXNzIENSQXJyYXkgKiBfX3B0cjY0LGRvdWJsZSkNCis/Q1JSYWRpYWxHcmFkaWVudFBvbHlnb25AQFlBUEVBVkNSSW1hZ2VAQFBFQVZDUkNvbG9yQEAwUEVBVkNSQXJyYXlAQE5AWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fcHRyNjQgX19jZGVjbCBDUlJhZGlhbEdyYWRpZW50UG9seWdvbihjbGFzcyBDUkNvbG9yICogX19wdHI2NCxjbGFzcyBDUkNvbG9yICogX19wdHI2NCxjbGFzcyBDUkFycmF5ICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSUmFkaWFsR3JhZGllbnRQb2x5Z29uQEBZQVBFQVZDUkltYWdlQEBQRUFWQ1JDb2xvckBAMFBFQVZDUkFycmF5QEBQRUFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENSUmFkaWFsR3JhZGllbnRSZWd1bGFyUG9seShjbGFzcyBDUkNvbG9yICogX19wdHI2NCxjbGFzcyBDUkNvbG9yICogX19wdHI2NCxkb3VibGUsZG91YmxlKQ0KKz9DUlJhZGlhbEdyYWRpZW50UmVndWxhclBvbHlAQFlBUEVBVkNSSW1hZ2VAQFBFQVZDUkNvbG9yQEAwTk5AWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fcHRyNjQgX19jZGVjbCBDUlJhZGlhbEdyYWRpZW50UmVndWxhclBvbHkoY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQsY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JSYWRpYWxHcmFkaWVudFJlZ3VsYXJQb2x5QEBZQVBFQVZDUkltYWdlQEBQRUFWQ1JDb2xvckBAMFBFQVZDUk51bWJlckBAMUBaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENSUmFkaWFsR3JhZGllbnRTcXVhcmUoY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQsY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQsZG91YmxlKQ0KKz9DUlJhZGlhbEdyYWRpZW50U3F1YXJlQEBZQVBFQVZDUkltYWdlQEBQRUFWQ1JDb2xvckBAME5AWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fcHRyNjQgX19jZGVjbCBDUlJhZGlhbEdyYWRpZW50U3F1YXJlKGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0LGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JSYWRpYWxHcmFkaWVudFNxdWFyZUBAWUFQRUFWQ1JJbWFnZUBAUEVBVkNSQ29sb3JAQDBQRUFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUlNvdW5kICogX19wdHI2NCBfX2NkZWNsIENSUmF0ZShjbGFzcyBDUlNvdW5kICogX19wdHI2NCxkb3VibGUpDQorP0NSUmF0ZUBAWUFQRUFWQ1JTb3VuZEBAUEVBVjFATkBaDQorOyBjbGFzcyBDUlNvdW5kICogX19wdHI2NCBfX2NkZWNsIENSUmF0ZShjbGFzcyBDUlNvdW5kICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSUmF0ZUBAWUFQRUFWQ1JTb3VuZEBAUEVBVjFAUEVBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JQYXRoMiAqIF9fcHRyNjQgX19jZGVjbCBDUlJheShjbGFzcyBDUlBvaW50MiAqIF9fcHRyNjQpDQorP0NSUmF5QEBZQVBFQVZDUlBhdGgyQEBQRUFWQ1JQb2ludDJAQEBaDQorOyBjbGFzcyBDUlBhdGgyICogX19wdHI2NCBfX2NkZWNsIENSUmVjdChkb3VibGUsZG91YmxlKQ0KKz9DUlJlY3RAQFlBUEVBVkNSUGF0aDJAQE5OQFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JSZWN0KGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSUmVjdEBAWUFQRUFWQ1JQYXRoMkBAUEVBVkNSTnVtYmVyQEAwQFoNCis7IGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0IF9fY2RlY2wgQ1JSZWQodm9pZCkNCis/Q1JSZWRAQFlBUEVBVkNSQ29sb3JAQFhaDQorOyBib29sIF9fY2RlY2wgQ1JSZWxlYXNlR0Modm9pZCAqIF9fcHRyNjQpDQorP0NSUmVsZWFzZUdDQEBZQV9OUEVBWEBaDQorOyBib29sIF9fY2RlY2wgQ1JSZWxlYXNlR0NMb2NrKHZvaWQpDQorP0NSUmVsZWFzZUdDTG9ja0BAWUFfTlhaDQorOyBib29sIF9fY2RlY2wgQ1JSZW1vdmVFbGVtZW50KGNsYXNzIENSQXJyYXkgKiBfX3B0cjY0LGxvbmcpDQorP0NSUmVtb3ZlRWxlbWVudEBAWUFfTlBFQVZDUkFycmF5QEBKQFoNCis7IGJvb2wgX19jZGVjbCBDUlJlbW92ZVJ1bm5pbmdCdnIoY2xhc3MgQ1JWaWV3ICogX19wdHI2NCxsb25nKQ0KKz9DUlJlbW92ZVJ1bm5pbmdCdnJAQFlBX05QRUFWQ1JWaWV3QEBKQFoNCis7IGJvb2wgX19jZGVjbCBDUlJlbW92ZVNpdGUoY2xhc3MgQ1JTaXRlICogX19wdHI2NCkNCis/Q1JSZW1vdmVTaXRlQEBZQV9OUEVBVkNSU2l0ZUBAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JSZW5kZXIoY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQsY2xhc3MgQ1JDYW1lcmEgKiBfX3B0cjY0KQ0KKz9DUlJlbmRlckBAWUFQRUFWQ1JJbWFnZUBAUEVBVkNSR2VvbWV0cnlAQFBFQVZDUkNhbWVyYUBAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JSZW5kZXIoY2xhc3MgQ1JNb250YWdlICogX19wdHI2NCkNCis/Q1JSZW5kZXJAQFlBUEVBVkNSSW1hZ2VAQFBFQVZDUk1vbnRhZ2VAQEBaDQorOyBib29sIF9fY2RlY2wgQ1JSZW5kZXIoY2xhc3MgQ1JWaWV3ICogX19wdHI2NCkNCis/Q1JSZW5kZXJAQFlBX05QRUFWQ1JWaWV3QEBAWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fcHRyNjQgX19jZGVjbCBDUlJlbmRlclJlc29sdXRpb24oY2xhc3MgQ1JJbWFnZSAqIF9fcHRyNjQsbG9uZyxsb25nKQ0KKz9DUlJlbmRlclJlc29sdXRpb25AQFlBUEVBVkNSSW1hZ2VAQFBFQVYxQEpKQFoNCis7IGNsYXNzIENSU291bmQgKiBfX3B0cjY0IF9fY2RlY2wgQ1JSZW5kZXJTb3VuZChjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCxjbGFzcyBDUk1pY3JvcGhvbmUgKiBfX3B0cjY0KQ0KKz9DUlJlbmRlclNvdW5kQEBZQVBFQVZDUlNvdW5kQEBQRUFWQ1JHZW9tZXRyeUBAUEVBVkNSTWljcm9waG9uZUBAQFoNCis7IGJvb2wgX19jZGVjbCBDUlJlcGFpbnQoY2xhc3MgQ1JWaWV3ICogX19wdHI2NCxsb25nLGxvbmcsbG9uZyxsb25nKQ0KKz9DUlJlcGFpbnRAQFlBX05QRUFWQ1JWaWV3QEBKSkpKQFoNCis7IGNsYXNzIENSQnZyICogX19wdHI2NCBfX2NkZWNsIENSUmVwZWF0KGNsYXNzIENSQnZyICogX19wdHI2NCxsb25nKQ0KKz9DUlJlcGVhdEBAWUFQRUFWQ1JCdnJAQFBFQVYxQEpAWg0KKzsgY2xhc3MgQ1JCdnIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JSZXBlYXRGb3JldmVyKGNsYXNzIENSQnZyICogX19wdHI2NCkNCis/Q1JSZXBlYXRGb3JldmVyQEBZQVBFQVZDUkJ2ckBAUEVBVjFAQFoNCis7IGJvb2wgX19jZGVjbCBDUlJlc3VtZU1vZGVsKGNsYXNzIENSVmlldyAqIF9fcHRyNjQpDQorP0NSUmVzdW1lTW9kZWxAQFlBX05QRUFWQ1JWaWV3QEBAWg0KKzsgY2xhc3MgQ1JFdmVudCAqIF9fcHRyNjQgX19jZGVjbCBDUlJpZ2h0QnV0dG9uRG93bih2b2lkKQ0KKz9DUlJpZ2h0QnV0dG9uRG93bkBAWUFQRUFWQ1JFdmVudEBAWFoNCis7IGNsYXNzIENSQm9vbGVhbiAqIF9fcHRyNjQgX19jZGVjbCBDUlJpZ2h0QnV0dG9uU3RhdGUodm9pZCkNCis/Q1JSaWdodEJ1dHRvblN0YXRlQEBZQVBFQVZDUkJvb2xlYW5AQFhaDQorOyBjbGFzcyBDUkV2ZW50ICogX19wdHI2NCBfX2NkZWNsIENSUmlnaHRCdXR0b25VcCh2b2lkKQ0KKz9DUlJpZ2h0QnV0dG9uVXBAQFlBUEVBVkNSRXZlbnRAQFhaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JSb3RhdGUyKGRvdWJsZSkNCis/Q1JSb3RhdGUyQEBZQVBFQVZDUlRyYW5zZm9ybTJAQE5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCBfX2NkZWNsIENSUm90YXRlMihjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSUm90YXRlMkBAWUFQRUFWQ1JUcmFuc2Zvcm0yQEBQRUFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JSb3RhdGUyRGVncmVlcyhkb3VibGUpDQorP0NSUm90YXRlMkRlZ3JlZXNAQFlBUEVBVkNSVHJhbnNmb3JtMkBATkBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JSb3RhdGUzKGNsYXNzIENSVmVjdG9yMyAqIF9fcHRyNjQsZG91YmxlKQ0KKz9DUlJvdGF0ZTNAQFlBUEVBVkNSVHJhbnNmb3JtM0BAUEVBVkNSVmVjdG9yM0BATkBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JSb3RhdGUzKGNsYXNzIENSVmVjdG9yMyAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUlJvdGF0ZTNAQFlBUEVBVkNSVHJhbnNmb3JtM0BAUEVBVkNSVmVjdG9yM0BAUEVBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JSb3VuZChjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSUm91bmRAQFlBUEVBVkNSTnVtYmVyQEBQRUFWMUBAWg0KKzsgY2xhc3MgQ1JQYXRoMiAqIF9fcHRyNjQgX19jZGVjbCBDUlJvdW5kUmVjdChkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUpDQorP0NSUm91bmRSZWN0QEBZQVBFQVZDUlBhdGgyQEBOTk5OQFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JSb3VuZFJlY3QoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUlJvdW5kUmVjdEBAWUFQRUFWQ1JQYXRoMkBAUEVBVkNSTnVtYmVyQEAwMDBAWg0KKzsgY2xhc3MgQ1JCdnIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JSdW5PbmNlKGNsYXNzIENSQnZyICogX19wdHI2NCkNCis/Q1JSdW5PbmNlQEBZQVBFQVZDUkJ2ckBAUEVBVjFAQFoNCis7IGNsYXNzIENSQnZyICogX19wdHI2NCBfX2NkZWNsIENSU2FtcGxlQXRMb2NhbFRpbWUoY2xhc3MgQ1JCdnIgKiBfX3B0cjY0LGRvdWJsZSkNCis/Q1JTYW1wbGVBdExvY2FsVGltZUBAWUFQRUFWQ1JCdnJAQFBFQVYxQE5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCBfX2NkZWNsIENSU2NhbGUyKGRvdWJsZSxkb3VibGUpDQorP0NSU2NhbGUyQEBZQVBFQVZDUlRyYW5zZm9ybTJAQE5OQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fcHRyNjQgX19jZGVjbCBDUlNjYWxlMihjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUlNjYWxlMkBAWUFQRUFWQ1JUcmFuc2Zvcm0yQEBQRUFWQ1JOdW1iZXJAQDBAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCBfX2NkZWNsIENSU2NhbGUyKGNsYXNzIENSVmVjdG9yMiAqIF9fcHRyNjQpDQorP0NSU2NhbGUyQEBZQVBFQVZDUlRyYW5zZm9ybTJAQFBFQVZDUlZlY3RvcjJAQEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTY2FsZTJVbmlmb3JtKGRvdWJsZSkNCis/Q1JTY2FsZTJVbmlmb3JtQEBZQVBFQVZDUlRyYW5zZm9ybTJAQE5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCBfX2NkZWNsIENSU2NhbGUyVW5pZm9ybShjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSU2NhbGUyVW5pZm9ybUBAWUFQRUFWQ1JUcmFuc2Zvcm0yQEBQRUFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTY2FsZTMoZG91YmxlLGRvdWJsZSxkb3VibGUpDQorP0NSU2NhbGUzQEBZQVBFQVZDUlRyYW5zZm9ybTNAQE5OTkBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTY2FsZTMoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSU2NhbGUzQEBZQVBFQVZDUlRyYW5zZm9ybTNAQFBFQVZDUk51bWJlckBAMDBAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0zICogX19wdHI2NCBfX2NkZWNsIENSU2NhbGUzKGNsYXNzIENSVmVjdG9yMyAqIF9fcHRyNjQpDQorP0NSU2NhbGUzQEBZQVBFQVZDUlRyYW5zZm9ybTNAQFBFQVZDUlZlY3RvcjNAQEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTY2FsZTNVbmlmb3JtKGRvdWJsZSkNCis/Q1JTY2FsZTNVbmlmb3JtQEBZQVBFQVZDUlRyYW5zZm9ybTNAQE5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0zICogX19wdHI2NCBfX2NkZWNsIENSU2NhbGUzVW5pZm9ybShjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSU2NhbGUzVW5pZm9ybUBAWUFQRUFWQ1JUcmFuc2Zvcm0zQEBQRUFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fcHRyNjQgX19jZGVjbCBDUlNlY29uZChjbGFzcyBDUlBhaXIgKiBfX3B0cjY0KQ0KKz9DUlNlY29uZEBAWUFQRUFWQ1JCdnJAQFBFQVZDUlBhaXJAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUlNlZWRlZFJhbmRvbShkb3VibGUpDQorP0NSU2VlZGVkUmFuZG9tQEBZQVBFQVZDUk51bWJlckBATkBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fcHRyNjQgX19jZGVjbCBDUlNlcXVlbmNlKGNsYXNzIENSQnZyICogX19wdHI2NCxjbGFzcyBDUkJ2ciAqIF9fcHRyNjQpDQorP0NSU2VxdWVuY2VAQFlBUEVBVkNSQnZyQEBQRUFWMUAwQFoNCis7IGNsYXNzIENSQnZyICogX19wdHI2NCBfX2NkZWNsIENSU2VxdWVuY2VBcnJheShsb25nLGNsYXNzIENSQnZyICogX19wdHI2NCAqIF9fcHRyNjQgY29uc3QpDQorP0NSU2VxdWVuY2VBcnJheUBAWUFQRUFWQ1JCdnJAQEpRRUFQRUFWMUBAWg0KKzsgYm9vbCBfX2NkZWNsIENSU2V0QnZyQXNQcm9wZXJ0eShjbGFzcyBDUkRYVHJhbnNmb3JtUmVzdWx0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1JCdnIgKiBfX3B0cjY0KQ0KKz9DUlNldEJ2ckFzUHJvcGVydHlAQFlBX05QRUFWQ1JEWFRyYW5zZm9ybVJlc3VsdEBAUEVCR1BFQVZDUkJ2ckBAQFoNCis7IGJvb2wgX19jZGVjbCBDUlNldENsaXBSZWN0KGNsYXNzIENSVmlldyAqIF9fcHRyNjQsbG9uZyxsb25nLGxvbmcsbG9uZykNCis/Q1JTZXRDbGlwUmVjdEBAWUFfTlBFQVZDUlZpZXdAQEpKSkpAWg0KKzsgYm9vbCBfX2NkZWNsIENSU2V0Q29tcG9zaXRlRGlyZWN0bHlUb1RhcmdldChjbGFzcyBDUlZpZXcgKiBfX3B0cjY0LGJvb2wpDQorP0NSU2V0Q29tcG9zaXRlRGlyZWN0bHlUb1RhcmdldEBAWUFfTlBFQVZDUlZpZXdAQF9OQFoNCis7IGJvb2wgX19jZGVjbCBDUlNldERDKGNsYXNzIENSVmlldyAqIF9fcHRyNjQsc3RydWN0IEhEQ19fICogX19wdHI2NCkNCis/Q1JTZXREQ0BAWUFfTlBFQVZDUlZpZXdAQFBFQVVIRENfX0BAQFoNCis7IGJvb2wgX19jZGVjbCBDUlNldERpcmVjdERyYXdTdXJmYWNlKGNsYXNzIENSVmlldyAqIF9fcHRyNjQsc3RydWN0IElVbmtub3duICogX19wdHI2NCkNCis/Q1JTZXREaXJlY3REcmF3U3VyZmFjZUBAWUFfTlBFQVZDUlZpZXdAQFBFQVVJVW5rbm93bkBAQFoNCis7IGJvb2wgX19jZGVjbCBDUlNldEVsZW1lbnQoY2xhc3MgQ1JBcnJheSAqIF9fcHRyNjQsbG9uZyxjbGFzcyBDUkJ2ciAqIF9fcHRyNjQsbG9uZykNCis/Q1JTZXRFbGVtZW50QEBZQV9OUEVBVkNSQXJyYXlAQEpQRUFWQ1JCdnJAQEpAWg0KKzsgYm9vbCBfX2NkZWNsIENSU2V0SW1wb3J0UHJpb3JpdHkoY2xhc3MgQ1JCdnIgKiBfX3B0cjY0LGZsb2F0KQ0KKz9DUlNldEltcG9ydFByaW9yaXR5QEBZQV9OUEVBVkNSQnZyQEBNQFoNCis7IHZvaWQgX19jZGVjbCBDUlNldExhc3RFcnJvcihsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/Q1JTZXRMYXN0RXJyb3JAQFlBWEpQRUJHQFoNCis7IGJvb2wgX19jZGVjbCBDUlNldFNlcnZpY2VQcm92aWRlcihjbGFzcyBDUlZpZXcgKiBfX3B0cjY0LHN0cnVjdCBJU2VydmljZVByb3ZpZGVyICogX19wdHI2NCkNCis/Q1JTZXRTZXJ2aWNlUHJvdmlkZXJAQFlBX05QRUFWQ1JWaWV3QEBQRUFVSVNlcnZpY2VQcm92aWRlckBAQFoNCis7IGJvb2wgX19jZGVjbCBDUlNldFNpdGUoY2xhc3MgQ1JWaWV3ICogX19wdHI2NCxjbGFzcyBDUlZpZXdTaXRlICogX19wdHI2NCkNCis/Q1JTZXRTaXRlQEBZQV9OUEVBVkNSVmlld0BAUEVBVkNSVmlld1NpdGVAQEBaDQorOyBib29sIF9fY2RlY2wgQ1JTZXRWaWV3cG9ydChjbGFzcyBDUlZpZXcgKiBfX3B0cjY0LGxvbmcsbG9uZyxsb25nLGxvbmcpDQorP0NSU2V0Vmlld3BvcnRAQFlBX05QRUFWQ1JWaWV3QEBKSkpKQFoNCis7IGJvb2wgX19jZGVjbCBDUlNldFdpbmRvdyhjbGFzcyBDUlZpZXcgKiBfX3B0cjY0LHN0cnVjdCBIV05EX18gKiBfX3B0cjY0KQ0KKz9DUlNldFdpbmRvd0BAWUFfTlBFQVZDUlZpZXdAQFBFQVVIV05EX19AQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCBfX2NkZWNsIENSU2hhZG93KGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0LGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0LGNsYXNzIENSUG9pbnQzICogX19wdHI2NCxjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0KQ0KKz9DUlNoYWRvd0BAWUFQRUFWQ1JHZW9tZXRyeUBAUEVBVjFAMFBFQVZDUlBvaW50M0BAUEVBVkNSVmVjdG9yM0BAQFoNCis7IGNsYXNzIENSU291bmQgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTaWxlbmNlKHZvaWQpDQorP0NSU2lsZW5jZUBAWUFQRUFWQ1JTb3VuZEBAWFoNCis7IGNsYXNzIENSQ29sb3IgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTaWx2ZXIodm9pZCkNCis/Q1JTaWx2ZXJAQFlBUEVBVkNSQ29sb3JAQFhaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUlNpbihjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSU2luQEBZQVBFQVZDUk51bWJlckBAUEVBVjFAQFoNCis7IGNsYXNzIENSU291bmQgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTaW5TeW50aCh2b2lkKQ0KKz9DUlNpblN5bnRoQEBZQVBFQVZDUlNvdW5kQEBYWg0KKzsgY2xhc3MgQ1JGb250U3R5bGUgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTaXplKGNsYXNzIENSRm9udFN0eWxlICogX19wdHI2NCxkb3VibGUpDQorP0NSU2l6ZUBAWUFQRUFWQ1JGb250U3R5bGVAQFBFQVYxQE5AWg0KKzsgY2xhc3MgQ1JGb250U3R5bGUgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTaXplKGNsYXNzIENSRm9udFN0eWxlICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSU2l6ZUBAWUFQRUFWQ1JGb250U3R5bGVAQFBFQVYxQFBFQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSU2xvd0luU2xvd091dChkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUpDQorP0NSU2xvd0luU2xvd091dEBAWUFQRUFWQ1JOdW1iZXJAQE5OTk5AWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTbG93SW5TbG93T3V0KGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JTbG93SW5TbG93T3V0QEBZQVBFQVZDUk51bWJlckBAUEVBVjFAMDAwQFoNCis7IGNsYXNzIENSRXZlbnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTbmFwc2hvdChjbGFzcyBDUkV2ZW50ICogX19wdHI2NCxjbGFzcyBDUkJ2ciAqIF9fcHRyNjQpDQorP0NSU25hcHNob3RAQFlBUEVBVkNSRXZlbnRAQFBFQVYxQFBFQVZDUkJ2ckBAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTb2xpZENvbG9ySW1hZ2UoY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQpDQorP0NSU29saWRDb2xvckltYWdlQEBZQVBFQVZDUkltYWdlQEBQRUFWQ1JDb2xvckBAQFoNCis7IGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTb3VuZFNvdXJjZShjbGFzcyBDUlNvdW5kICogX19wdHI2NCkNCis/Q1JTb3VuZFNvdXJjZUBAWUFQRUFWQ1JHZW9tZXRyeUBAUEVBVkNSU291bmRAQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCBfX2NkZWNsIENSU3BlY3VsYXJDb2xvcihjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCxjbGFzcyBDUkNvbG9yICogX19wdHI2NCkNCis/Q1JTcGVjdWxhckNvbG9yQEBZQVBFQVZDUkdlb21ldHJ5QEBQRUFWMUBQRUFWQ1JDb2xvckBAQFoNCis7IGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTcGVjdWxhckV4cG9uZW50KGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0LGRvdWJsZSkNCis/Q1JTcGVjdWxhckV4cG9uZW50QEBZQVBFQVZDUkdlb21ldHJ5QEBQRUFWMUBOQFoNCis7IGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTcGVjdWxhckV4cG9uZW50QW5pbShjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSU3BlY3VsYXJFeHBvbmVudEFuaW1AQFlBUEVBVkNSR2VvbWV0cnlAQFBFQVYxQFBFQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSU3BoZXJpY2FsQ29vcmRMZW5ndGgoY2xhc3MgQ1JQb2ludDMgKiBfX3B0cjY0KQ0KKz9DUlNwaGVyaWNhbENvb3JkTGVuZ3RoQEBZQVBFQVZDUk51bWJlckBAUEVBVkNSUG9pbnQzQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTcGhlcmljYWxDb29yZExlbmd0aChjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0KQ0KKz9DUlNwaGVyaWNhbENvb3JkTGVuZ3RoQEBZQVBFQVZDUk51bWJlckBAUEVBVkNSVmVjdG9yM0BAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSU3BoZXJpY2FsQ29vcmRYWUFuZ2xlKGNsYXNzIENSUG9pbnQzICogX19wdHI2NCkNCis/Q1JTcGhlcmljYWxDb29yZFhZQW5nbGVAQFlBUEVBVkNSTnVtYmVyQEBQRUFWQ1JQb2ludDNAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUlNwaGVyaWNhbENvb3JkWFlBbmdsZShjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0KQ0KKz9DUlNwaGVyaWNhbENvb3JkWFlBbmdsZUBAWUFQRUFWQ1JOdW1iZXJAQFBFQVZDUlZlY3RvcjNAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUlNwaGVyaWNhbENvb3JkWVpBbmdsZShjbGFzcyBDUlBvaW50MyAqIF9fcHRyNjQpDQorP0NSU3BoZXJpY2FsQ29vcmRZWkFuZ2xlQEBZQVBFQVZDUk51bWJlckBAUEVBVkNSUG9pbnQzQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTcGhlcmljYWxDb29yZFlaQW5nbGUoY2xhc3MgQ1JWZWN0b3IzICogX19wdHI2NCkNCis/Q1JTcGhlcmljYWxDb29yZFlaQW5nbGVAQFlBUEVBVkNSTnVtYmVyQEBQRUFWQ1JWZWN0b3IzQEBAWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQgX19jZGVjbCBDUlNwb3RMaWdodChjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUlNwb3RMaWdodEBAWUFQRUFWQ1JHZW9tZXRyeUBAUEVBVkNSTnVtYmVyQEAwQFoNCis7IGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTcG90TGlnaHQoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGRvdWJsZSkNCis/Q1JTcG90TGlnaHRAQFlBUEVBVkNSR2VvbWV0cnlAQFBFQVZDUk51bWJlckBATkBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUlNxcnQoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUlNxcnRAQFlBUEVBVkNSTnVtYmVyQEBQRUFWMUBAWg0KKzsgYm9vbCBfX2NkZWNsIENSU3RhcnRNb2RlbChjbGFzcyBDUlZpZXcgKiBfX3B0cjY0LGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0LGNsYXNzIENSU291bmQgKiBfX3B0cjY0LGRvdWJsZSx1bnNpZ25lZCBsb25nLGJvb2wgKiBfX3B0cjY0KQ0KKz9DUlN0YXJ0TW9kZWxAQFlBX05QRUFWQ1JWaWV3QEBQRUFWQ1JJbWFnZUBAUEVBVkNSU291bmRAQE5LUEVBX05AWg0KKzsgYm9vbCBfX2NkZWNsIENSU3RvcE1vZGVsKGNsYXNzIENSVmlldyAqIF9fcHRyNjQpDQorP0NSU3RvcE1vZGVsQEBZQV9OUEVBVkNSVmlld0BAQFoNCis7IGNsYXNzIENSRm9udFN0eWxlICogX19wdHI2NCBfX2NkZWNsIENSU3RyaWtldGhyb3VnaChjbGFzcyBDUkZvbnRTdHlsZSAqIF9fcHRyNjQpDQorP0NSU3RyaWtldGhyb3VnaEBAWUFQRUFWQ1JGb250U3R5bGVAQFBFQVYxQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENSU3RyaW5nSW1hZ2UodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGNsYXNzIENSRm9udFN0eWxlICogX19wdHI2NCkNCis/Q1JTdHJpbmdJbWFnZUBAWUFQRUFWQ1JJbWFnZUBAUEVBR1BFQVZDUkZvbnRTdHlsZUBAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTdHJpbmdJbWFnZShjbGFzcyBDUlN0cmluZyAqIF9fcHRyNjQsY2xhc3MgQ1JGb250U3R5bGUgKiBfX3B0cjY0KQ0KKz9DUlN0cmluZ0ltYWdlQEBZQVBFQVZDUkltYWdlQEBQRUFWQ1JTdHJpbmdAQFBFQVZDUkZvbnRTdHlsZUBAQFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTdHJpbmdQYXRoKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxjbGFzcyBDUkZvbnRTdHlsZSAqIF9fcHRyNjQpDQorP0NSU3RyaW5nUGF0aEBAWUFQRUFWQ1JQYXRoMkBAUEVBR1BFQVZDUkZvbnRTdHlsZUBAQFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTdHJpbmdQYXRoKGNsYXNzIENSU3RyaW5nICogX19wdHI2NCxjbGFzcyBDUkZvbnRTdHlsZSAqIF9fcHRyNjQpDQorP0NSU3RyaW5nUGF0aEBAWUFQRUFWQ1JQYXRoMkBAUEVBVkNSU3RyaW5nQEBQRUFWQ1JGb250U3R5bGVAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUlN1YihjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUlN1YkBAWUFQRUFWQ1JOdW1iZXJAQFBFQVYxQDBAWg0KKzsgY2xhc3MgQ1JQb2ludDIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTdWIoY2xhc3MgQ1JQb2ludDIgKiBfX3B0cjY0LGNsYXNzIENSVmVjdG9yMiAqIF9fcHRyNjQpDQorP0NSU3ViQEBZQVBFQVZDUlBvaW50MkBAUEVBVjFAUEVBVkNSVmVjdG9yMkBAQFoNCis7IGNsYXNzIENSUG9pbnQzICogX19wdHI2NCBfX2NkZWNsIENSU3ViKGNsYXNzIENSUG9pbnQzICogX19wdHI2NCxjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0KQ0KKz9DUlN1YkBAWUFQRUFWQ1JQb2ludDNAQFBFQVYxQFBFQVZDUlZlY3RvcjNAQEBaDQorOyBjbGFzcyBDUlZlY3RvcjIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTdWIoY2xhc3MgQ1JWZWN0b3IyICogX19wdHI2NCxjbGFzcyBDUlZlY3RvcjIgKiBfX3B0cjY0KQ0KKz9DUlN1YkBAWUFQRUFWQ1JWZWN0b3IyQEBQRUFWMUAwQFoNCis7IGNsYXNzIENSVmVjdG9yMiAqIF9fcHRyNjQgX19jZGVjbCBDUlN1YihjbGFzcyBDUlBvaW50MiAqIF9fcHRyNjQsY2xhc3MgQ1JQb2ludDIgKiBfX3B0cjY0KQ0KKz9DUlN1YkBAWUFQRUFWQ1JWZWN0b3IyQEBQRUFWQ1JQb2ludDJAQDBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19wdHI2NCBfX2NkZWNsIENSU3ViKGNsYXNzIENSVmVjdG9yMyAqIF9fcHRyNjQsY2xhc3MgQ1JWZWN0b3IzICogX19wdHI2NCkNCis/Q1JTdWJAQFlBUEVBVkNSVmVjdG9yM0BAUEVBVjFAMEBaDQorOyBjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JTdWIoY2xhc3MgQ1JQb2ludDMgKiBfX3B0cjY0LGNsYXNzIENSUG9pbnQzICogX19wdHI2NCkNCis/Q1JTdWJAQFlBUEVBVkNSVmVjdG9yM0BAUEVBVkNSUG9pbnQzQEAwQFoNCis7IGNsYXNzIENSQnZyICogX19wdHI2NCBfX2NkZWNsIENSU3Vic3RpdHV0ZVRpbWUoY2xhc3MgQ1JCdnIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JTdWJzdGl0dXRlVGltZUBAWUFQRUFWQ1JCdnJAQFBFQVYxQFBFQVZDUk51bWJlckBAQFoNCis7IGJvb2wgX19jZGVjbCBDUlN3aXRjaFRvKGNsYXNzIENSQnZyICogX19wdHI2NCxjbGFzcyBDUkJ2ciAqIF9fcHRyNjQsYm9vbCx1bnNpZ25lZCBsb25nLGRvdWJsZSkNCis/Q1JTd2l0Y2hUb0BAWUFfTlBFQVZDUkJ2ckBAMF9OS05AWg0KKzsgYm9vbCBfX2NkZWNsIENSU3dpdGNoVG9Cb29sKGNsYXNzIENSQm9vbGVhbiAqIF9fcHRyNjQsYm9vbCkNCis/Q1JTd2l0Y2hUb0Jvb2xAQFlBX05QRUFWQ1JCb29sZWFuQEBfTkBaDQorOyBib29sIF9fY2RlY2wgQ1JTd2l0Y2hUb051bWJlcihjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsZG91YmxlKQ0KKz9DUlN3aXRjaFRvTnVtYmVyQEBZQV9OUEVBVkNSTnVtYmVyQEBOQFoNCis7IGJvb2wgX19jZGVjbCBDUlN3aXRjaFRvU3RyaW5nKGNsYXNzIENSU3RyaW5nICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP0NSU3dpdGNoVG9TdHJpbmdAQFlBX05QRUFWQ1JTdHJpbmdAQFBFQUdAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JUYW4oY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUlRhbkBAWUFQRUFWQ1JOdW1iZXJAQFBFQVYxQEBaDQorOyBjbGFzcyBDUkNvbG9yICogX19wdHI2NCBfX2NkZWNsIENSVGVhbCh2b2lkKQ0KKz9DUlRlYWxAQFlBUEVBVkNSQ29sb3JAQFhaDQorOyBjbGFzcyBDUkZvbnRTdHlsZSAqIF9fcHRyNjQgX19jZGVjbCBDUlRleHRDb2xvcihjbGFzcyBDUkZvbnRTdHlsZSAqIF9fcHRyNjQsY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQpDQorP0NSVGV4dENvbG9yQEBZQVBFQVZDUkZvbnRTdHlsZUBAUEVBVjFAUEVBVkNSQ29sb3JAQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENSVGV4dEltYWdlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxjbGFzcyBDUkZvbnRTdHlsZSAqIF9fcHRyNjQpDQorP0NSVGV4dEltYWdlQEBZQVBFQVZDUkltYWdlQEBQRUFHUEVBVkNSRm9udFN0eWxlQEBAWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fcHRyNjQgX19jZGVjbCBDUlRleHRJbWFnZShjbGFzcyBDUlN0cmluZyAqIF9fcHRyNjQsY2xhc3MgQ1JGb250U3R5bGUgKiBfX3B0cjY0KQ0KKz9DUlRleHRJbWFnZUBAWUFQRUFWQ1JJbWFnZUBAUEVBVkNSU3RyaW5nQEBQRUFWQ1JGb250U3R5bGVAQEBaDQorOyBjbGFzcyBDUk1hdHRlICogX19wdHI2NCBfX2NkZWNsIENSVGV4dE1hdHRlKGNsYXNzIENSU3RyaW5nICogX19wdHI2NCxjbGFzcyBDUkZvbnRTdHlsZSAqIF9fcHRyNjQpDQorP0NSVGV4dE1hdHRlQEBZQVBFQVZDUk1hdHRlQEBQRUFWQ1JTdHJpbmdAQFBFQVZDUkZvbnRTdHlsZUBAQFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JUZXh0UGF0aChjbGFzcyBDUlN0cmluZyAqIF9fcHRyNjQsY2xhc3MgQ1JGb250U3R5bGUgKiBfX3B0cjY0KQ0KKz9DUlRleHRQYXRoQEBZQVBFQVZDUlBhdGgyQEBQRUFWQ1JTdHJpbmdAQFBFQVZDUkZvbnRTdHlsZUBAQFoNCis7IGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ1JUZXh0dXJlKGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0LGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0KQ0KKz9DUlRleHR1cmVAQFlBUEVBVkNSR2VvbWV0cnlAQFBFQVYxQFBFQVZDUkltYWdlQEBAWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQgX19jZGVjbCBDUlRleHR1cmVJbWFnZShjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCxjbGFzcyBDUkltYWdlICogX19wdHI2NCkNCis/Q1JUZXh0dXJlSW1hZ2VAQFlBUEVBVkNSR2VvbWV0cnlAQFBFQVYxQFBFQVZDUkltYWdlQEBAWg0KKzsgY2xhc3MgQ1JFdmVudCAqIF9fcHRyNjQgX19jZGVjbCBDUlRoZW5FdmVudChjbGFzcyBDUkV2ZW50ICogX19wdHI2NCxjbGFzcyBDUkV2ZW50ICogX19wdHI2NCkNCis/Q1JUaGVuRXZlbnRAQFlBUEVBVkNSRXZlbnRAQFBFQVYxQDBAWg0KKzsgYm9vbCBfX2NkZWNsIENSVGljayhjbGFzcyBDUlZpZXcgKiBfX3B0cjY0LGRvdWJsZSxib29sICogX19wdHI2NCkNCis/Q1JUaWNrQEBZQV9OUEVBVkNSVmlld0BATlBFQV9OQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JUaWxlKGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0KQ0KKz9DUlRpbGVAQFlBUEVBVkNSSW1hZ2VAQFBFQVYxQEBaDQorOyBjbGFzcyBDUkV2ZW50ICogX19wdHI2NCBfX2NkZWNsIENSVGltZXIoZG91YmxlKQ0KKz9DUlRpbWVyQEBZQVBFQVZDUkV2ZW50QEBOQFoNCis7IGNsYXNzIENSRXZlbnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1JUaW1lcihjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSVGltZXJAQFlBUEVBVkNSRXZlbnRAQFBFQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSVG9EZWdyZWVzKGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JUb0RlZ3JlZXNAQFlBUEVBVkNSTnVtYmVyQEBQRUFWMUBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JUb1JhZGlhbnMoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUlRvUmFkaWFuc0BAWUFQRUFWQ1JOdW1iZXJAQFBFQVYxQEBaDQorOyBjbGFzcyBDUlN0cmluZyAqIF9fcHRyNjQgX19jZGVjbCBDUlRvU3RyaW5nKGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSVG9TdHJpbmdAQFlBUEVBVkNSU3RyaW5nQEBQRUFWQ1JOdW1iZXJAQDBAWg0KKzsgY2xhc3MgQ1JTdHJpbmcgKiBfX3B0cjY0IF9fY2RlY2wgQ1JUb1N0cmluZyhjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsZG91YmxlKQ0KKz9DUlRvU3RyaW5nQEBZQVBFQVZDUlN0cmluZ0BAUEVBVkNSTnVtYmVyQEBOQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fcHRyNjQgX19jZGVjbCBDUlRyYW5zZm9ybTN4Mihkb3VibGUgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkNCis/Q1JUcmFuc2Zvcm0zeDJAQFlBUEVBVkNSVHJhbnNmb3JtMkBAUEVBTklAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCBfX2NkZWNsIENSVHJhbnNmb3JtM3gyKGNsYXNzIENSQXJyYXkgKiBfX3B0cjY0KQ0KKz9DUlRyYW5zZm9ybTN4MkBAWUFQRUFWQ1JUcmFuc2Zvcm0yQEBQRUFWQ1JBcnJheUBAQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMyAqIF9fcHRyNjQgX19jZGVjbCBDUlRyYW5zZm9ybTR4NChjbGFzcyBDUkFycmF5ICogX19wdHI2NCkNCis/Q1JUcmFuc2Zvcm00eDRAQFlBUEVBVkNSVHJhbnNmb3JtM0BAUEVBVkNSQXJyYXlAQEBaDQorOyBjbGFzcyBDUkNhbWVyYSAqIF9fcHRyNjQgX19jZGVjbCBDUlRyYW5zZm9ybShjbGFzcyBDUkNhbWVyYSAqIF9fcHRyNjQsY2xhc3MgQ1JUcmFuc2Zvcm0zICogX19wdHI2NCkNCis/Q1JUcmFuc2Zvcm1AQFlBUEVBVkNSQ2FtZXJhQEBQRUFWMUBQRUFWQ1JUcmFuc2Zvcm0zQEBAWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQgX19jZGVjbCBDUlRyYW5zZm9ybShjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCxjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3B0cjY0KQ0KKz9DUlRyYW5zZm9ybUBAWUFQRUFWQ1JHZW9tZXRyeUBAUEVBVjFAUEVBVkNSVHJhbnNmb3JtM0BAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JUcmFuc2Zvcm0oY2xhc3MgQ1JJbWFnZSAqIF9fcHRyNjQsY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCkNCis/Q1JUcmFuc2Zvcm1AQFlBUEVBVkNSSW1hZ2VAQFBFQVYxQFBFQVZDUlRyYW5zZm9ybTJAQEBaDQorOyBjbGFzcyBDUk1hdHRlICogX19wdHI2NCBfX2NkZWNsIENSVHJhbnNmb3JtKGNsYXNzIENSTWF0dGUgKiBfX3B0cjY0LGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fcHRyNjQpDQorP0NSVHJhbnNmb3JtQEBZQVBFQVZDUk1hdHRlQEBQRUFWMUBQRUFWQ1JUcmFuc2Zvcm0yQEBAWg0KKzsgY2xhc3MgQ1JNaWNyb3Bob25lICogX19wdHI2NCBfX2NkZWNsIENSVHJhbnNmb3JtKGNsYXNzIENSTWljcm9waG9uZSAqIF9fcHRyNjQsY2xhc3MgQ1JUcmFuc2Zvcm0zICogX19wdHI2NCkNCis/Q1JUcmFuc2Zvcm1AQFlBUEVBVkNSTWljcm9waG9uZUBAUEVBVjFAUEVBVkNSVHJhbnNmb3JtM0BAQFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JUcmFuc2Zvcm0oY2xhc3MgQ1JQYXRoMiAqIF9fcHRyNjQsY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCkNCis/Q1JUcmFuc2Zvcm1AQFlBUEVBVkNSUGF0aDJAQFBFQVYxQFBFQVZDUlRyYW5zZm9ybTJAQEBaDQorOyBjbGFzcyBDUlBvaW50MiAqIF9fcHRyNjQgX19jZGVjbCBDUlRyYW5zZm9ybShjbGFzcyBDUlBvaW50MiAqIF9fcHRyNjQsY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCkNCis/Q1JUcmFuc2Zvcm1AQFlBUEVBVkNSUG9pbnQyQEBQRUFWMUBQRUFWQ1JUcmFuc2Zvcm0yQEBAWg0KKzsgY2xhc3MgQ1JQb2ludDMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JUcmFuc2Zvcm0oY2xhc3MgQ1JQb2ludDMgKiBfX3B0cjY0LGNsYXNzIENSVHJhbnNmb3JtMyAqIF9fcHRyNjQpDQorP0NSVHJhbnNmb3JtQEBZQVBFQVZDUlBvaW50M0BAUEVBVjFAUEVBVkNSVHJhbnNmb3JtM0BAQFoNCis7IGNsYXNzIENSVmVjdG9yMiAqIF9fcHRyNjQgX19jZGVjbCBDUlRyYW5zZm9ybShjbGFzcyBDUlZlY3RvcjIgKiBfX3B0cjY0LGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fcHRyNjQpDQorP0NSVHJhbnNmb3JtQEBZQVBFQVZDUlZlY3RvcjJAQFBFQVYxQFBFQVZDUlRyYW5zZm9ybTJAQEBaDQorOyBjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JUcmFuc2Zvcm0oY2xhc3MgQ1JWZWN0b3IzICogX19wdHI2NCxjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3B0cjY0KQ0KKz9DUlRyYW5zZm9ybUBAWUFQRUFWQ1JWZWN0b3IzQEBQRUFWMUBQRUFWQ1JUcmFuc2Zvcm0zQEBAWg0KKzsgY2xhc3MgQ1JGb250U3R5bGUgKiBfX3B0cjY0IF9fY2RlY2wgQ1JUcmFuc2Zvcm1DaGFyYWN0ZXJzKGNsYXNzIENSRm9udFN0eWxlICogX19wdHI2NCxjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3B0cjY0KQ0KKz9DUlRyYW5zZm9ybUNoYXJhY3RlcnNAQFlBUEVBVkNSRm9udFN0eWxlQEBQRUFWMUBQRUFWQ1JUcmFuc2Zvcm0yQEBAWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fcHRyNjQgX19jZGVjbCBDUlRyYW5zZm9ybUNvbG9yUkdCKGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0LGNsYXNzIENSVHJhbnNmb3JtMyAqIF9fcHRyNjQpDQorP0NSVHJhbnNmb3JtQ29sb3JSR0JAQFlBUEVBVkNSSW1hZ2VAQFBFQVYxQFBFQVZDUlRyYW5zZm9ybTNAQEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JUcmFuc2xhdGUyKGRvdWJsZSxkb3VibGUpDQorP0NSVHJhbnNsYXRlMkBAWUFQRUFWQ1JUcmFuc2Zvcm0yQEBOTkBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JUcmFuc2xhdGUyKGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSVHJhbnNsYXRlMkBAWUFQRUFWQ1JUcmFuc2Zvcm0yQEBQRUFWQ1JOdW1iZXJAQDBAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCBfX2NkZWNsIENSVHJhbnNsYXRlMihjbGFzcyBDUlBvaW50MiAqIF9fcHRyNjQpDQorP0NSVHJhbnNsYXRlMkBAWUFQRUFWQ1JUcmFuc2Zvcm0yQEBQRUFWQ1JQb2ludDJAQEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JUcmFuc2xhdGUyKGNsYXNzIENSVmVjdG9yMiAqIF9fcHRyNjQpDQorP0NSVHJhbnNsYXRlMkBAWUFQRUFWQ1JUcmFuc2Zvcm0yQEBQRUFWQ1JWZWN0b3IyQEBAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0zICogX19wdHI2NCBfX2NkZWNsIENSVHJhbnNsYXRlMyhkb3VibGUsZG91YmxlLGRvdWJsZSkNCis/Q1JUcmFuc2xhdGUzQEBZQVBFQVZDUlRyYW5zZm9ybTNAQE5OTkBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JUcmFuc2xhdGUzKGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQsY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0KQ0KKz9DUlRyYW5zbGF0ZTNAQFlBUEVBVkNSVHJhbnNmb3JtM0BAUEVBVkNSTnVtYmVyQEAwMEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JUcmFuc2xhdGUzKGNsYXNzIENSUG9pbnQzICogX19wdHI2NCkNCis/Q1JUcmFuc2xhdGUzQEBZQVBFQVZDUlRyYW5zZm9ybTNAQFBFQVZDUlBvaW50M0BAQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMyAqIF9fcHRyNjQgX19jZGVjbCBDUlRyYW5zbGF0ZTMoY2xhc3MgQ1JWZWN0b3IzICogX19wdHI2NCkNCis/Q1JUcmFuc2xhdGUzQEBZQVBFQVZDUlRyYW5zZm9ybTNAQFBFQVZDUlZlY3RvcjNAQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCBfX2NkZWNsIENSVHJpTWVzaChjbGFzcyBUcmlNZXNoRGF0YSAmIF9fcHRyNjQpDQorP0NSVHJpTWVzaEBAWUFQRUFWQ1JHZW9tZXRyeUBAQUVBVlRyaU1lc2hEYXRhQEBAWg0KKzsgYm9vbCBfX2NkZWNsIENSVHJpZ2dlckV2ZW50KGNsYXNzIENSRXZlbnQgKiBfX3B0cjY0LGNsYXNzIENSQnZyICogX19wdHI2NCkNCis/Q1JUcmlnZ2VyRXZlbnRAQFlBX05QRUFWQ1JFdmVudEBAUEVBVkNSQnZyQEBAWg0KKzsgY2xhc3MgQ1JCb29sZWFuICogX19wdHI2NCBfX2NkZWNsIENSVHJ1ZSh2b2lkKQ0KKz9DUlRydWVAQFlBUEVBVkNSQm9vbGVhbkBAWFoNCis7IGNsYXNzIENSRm9udFN0eWxlICogX19wdHI2NCBfX2NkZWNsIENSVW5kZXJsaW5lKGNsYXNzIENSRm9udFN0eWxlICogX19wdHI2NCkNCis/Q1JVbmRlcmxpbmVAQFlBUEVBVkNSRm9udFN0eWxlQEBQRUFWMUBAWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fcHRyNjQgX19jZGVjbCBDUlVuZGV0ZWN0YWJsZShjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCkNCis/Q1JVbmRldGVjdGFibGVAQFlBUEVBVkNSR2VvbWV0cnlAQFBFQVYxQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19wdHI2NCBfX2NkZWNsIENSVW5kZXRlY3RhYmxlKGNsYXNzIENSSW1hZ2UgKiBfX3B0cjY0KQ0KKz9DUlVuZGV0ZWN0YWJsZUBAWUFQRUFWQ1JJbWFnZUBAUEVBVjFAQFoNCis7IGNsYXNzIENSQXJyYXkgKiBfX3B0cjY0IF9fY2RlY2wgQ1JVbmluaXRpYWxpemVkQXJyYXkoY2xhc3MgQ1JBcnJheSAqIF9fcHRyNjQpDQorP0NSVW5pbml0aWFsaXplZEFycmF5QEBZQVBFQVZDUkFycmF5QEBQRUFWMUBAWg0KKzsgY2xhc3MgQ1JCdnIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JVbmluaXRpYWxpemVkQnZyKGVudW0gQ1JfQlZSX1RZUEVJRCkNCis/Q1JVbmluaXRpYWxpemVkQnZyQEBZQVBFQVZDUkJ2ckBAVzRDUl9CVlJfVFlQRUlEQEBAWg0KKzsgY2xhc3MgQ1JUdXBsZSAqIF9fcHRyNjQgX19jZGVjbCBDUlVuaW5pdGlhbGl6ZWRUdXBsZShjbGFzcyBDUlR1cGxlICogX19wdHI2NCkNCis/Q1JVbmluaXRpYWxpemVkVHVwbGVAQFlBUEVBVkNSVHVwbGVAQFBFQVYxQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCBfX2NkZWNsIENSVW5pb25HZW9tZXRyeShjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCxjbGFzcyBDUkdlb21ldHJ5ICogX19wdHI2NCkNCis/Q1JVbmlvbkdlb21ldHJ5QEBZQVBFQVZDUkdlb21ldHJ5QEBQRUFWMUAwQFoNCis7IGNsYXNzIENSR2VvbWV0cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ1JVbmlvbkdlb21ldHJ5KGNsYXNzIENSQXJyYXkgKiBfX3B0cjY0KQ0KKz9DUlVuaW9uR2VvbWV0cnlAQFlBUEVBVkNSR2VvbWV0cnlAQFBFQVZDUkFycmF5QEBAWg0KKzsgY2xhc3MgQ1JNYXR0ZSAqIF9fcHRyNjQgX19jZGVjbCBDUlVuaW9uTWF0dGUoY2xhc3MgQ1JNYXR0ZSAqIF9fcHRyNjQsY2xhc3MgQ1JNYXR0ZSAqIF9fcHRyNjQpDQorP0NSVW5pb25NYXR0ZUBAWUFQRUFWQ1JNYXR0ZUBAUEVBVjFAMEBaDQorOyBjbGFzcyBDUk1vbnRhZ2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1JVbmlvbk1vbnRhZ2UoY2xhc3MgQ1JNb250YWdlICogX19wdHI2NCxjbGFzcyBDUk1vbnRhZ2UgKiBfX3B0cjY0KQ0KKz9DUlVuaW9uTW9udGFnZUBAWUFQRUFWQ1JNb250YWdlQEBQRUFWMUAwQFoNCis7IGNsYXNzIENSTW9udGFnZSAqIF9fcHRyNjQgX19jZGVjbCBDUlVuaW9uTW9udGFnZUFycmF5KGNsYXNzIENSQXJyYXkgKiBfX3B0cjY0KQ0KKz9DUlVuaW9uTW9udGFnZUFycmF5QEBZQVBFQVZDUk1vbnRhZ2VAQFBFQVZDUkFycmF5QEBAWg0KKzsgY2xhc3MgQ1JCdnIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JVbnRpbChjbGFzcyBDUkJ2ciAqIF9fcHRyNjQsY2xhc3MgQ1JFdmVudCAqIF9fcHRyNjQsY2xhc3MgQ1JCdnIgKiBfX3B0cjY0KQ0KKz9DUlVudGlsQEBZQVBFQVZDUkJ2ckBAUEVBVjFAUEVBVkNSRXZlbnRAQDBAWg0KKzsgY2xhc3MgQ1JCdnIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JVbnRpbEV4KGNsYXNzIENSQnZyICogX19wdHI2NCxjbGFzcyBDUkV2ZW50ICogX19wdHI2NCkNCis/Q1JVbnRpbEV4QEBZQVBFQVZDUkJ2ckBAUEVBVjFAUEVBVkNSRXZlbnRAQEBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fcHRyNjQgX19jZGVjbCBDUlVudGlsTm90aWZ5KGNsYXNzIENSQnZyICogX19wdHI2NCxjbGFzcyBDUkV2ZW50ICogX19wdHI2NCxjbGFzcyBDUlVudGlsTm90aWZpZXIgKiBfX3B0cjY0KQ0KKz9DUlVudGlsTm90aWZ5QEBZQVBFQVZDUkJ2ckBAUEVBVjFAUEVBVkNSRXZlbnRAQFBFQVZDUlVudGlsTm90aWZpZXJAQEBaDQorOyBjbGFzcyBDUlZlY3RvcjIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JWZWN0b3IyUG9sYXIoZG91YmxlLGRvdWJsZSkNCis/Q1JWZWN0b3IyUG9sYXJAQFlBUEVBVkNSVmVjdG9yMkBATk5AWg0KKzsgY2xhc3MgQ1JWZWN0b3IyICogX19wdHI2NCBfX2NkZWNsIENSVmVjdG9yMlBvbGFyKGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSVmVjdG9yMlBvbGFyQEBZQVBFQVZDUlZlY3RvcjJAQFBFQVZDUk51bWJlckBAMEBaDQorOyBjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JWZWN0b3IzU3BoZXJpY2FsKGRvdWJsZSxkb3VibGUsZG91YmxlKQ0KKz9DUlZlY3RvcjNTcGhlcmljYWxAQFlBUEVBVkNSVmVjdG9yM0BATk5OQFoNCis7IGNsYXNzIENSVmVjdG9yMyAqIF9fcHRyNjQgX19jZGVjbCBDUlZlY3RvcjNTcGhlcmljYWwoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSVmVjdG9yM1NwaGVyaWNhbEBAWUFQRUFWQ1JWZWN0b3IzQEBQRUFWQ1JOdW1iZXJAQDAwQFoNCis7IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENSVmVyc2lvblN0cmluZyh2b2lkKQ0KKz9DUlZlcnNpb25TdHJpbmdAQFlBUEVCR1haDQorOyBjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQgX19jZGVjbCBDUlZpZXdGcmFtZVJhdGUodm9pZCkNCis/Q1JWaWV3RnJhbWVSYXRlQEBZQVBFQVZDUk51bWJlckBAWFoNCis7IGNsYXNzIENSTnVtYmVyICogX19wdHI2NCBfX2NkZWNsIENSVmlld1RpbWVEZWx0YSh2b2lkKQ0KKz9DUlZpZXdUaW1lRGVsdGFAQFlBUEVBVkNSTnVtYmVyQEBYWg0KKzsgY2xhc3MgQ1JGb250U3R5bGUgKiBfX3B0cjY0IF9fY2RlY2wgQ1JXZWlnaHQoY2xhc3MgQ1JGb250U3R5bGUgKiBfX3B0cjY0LGRvdWJsZSkNCis/Q1JXZWlnaHRAQFlBUEVBVkNSRm9udFN0eWxlQEBQRUFWMUBOQFoNCis7IGNsYXNzIENSRm9udFN0eWxlICogX19wdHI2NCBfX2NkZWNsIENSV2VpZ2h0KGNsYXNzIENSRm9udFN0eWxlICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSV2VpZ2h0QEBZQVBFQVZDUkZvbnRTdHlsZUBAUEVBVjFAUEVBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQgX19jZGVjbCBDUldoaXRlKHZvaWQpDQorP0NSV2hpdGVAQFlBUEVBVkNSQ29sb3JAQFhaDQorOyBjbGFzcyBDUkxpbmVTdHlsZSAqIF9fcHRyNjQgX19jZGVjbCBDUldpZHRoKGNsYXNzIENSTGluZVN0eWxlICogX19wdHI2NCxkb3VibGUpDQorP0NSV2lkdGhAQFlBUEVBVkNSTGluZVN0eWxlQEBQRUFWMUBOQFoNCis7IGNsYXNzIENSTGluZVN0eWxlICogX19wdHI2NCBfX2NkZWNsIENSV2lkdGgoY2xhc3MgQ1JMaW5lU3R5bGUgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JXaWR0aEBAWUFQRUFWQ1JMaW5lU3R5bGVAQFBFQVYxQFBFQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fcHRyNjQgX19jZGVjbCBDUlhTaGVhcjIoZG91YmxlKQ0KKz9DUlhTaGVhcjJAQFlBUEVBVkNSVHJhbnNmb3JtMkBATkBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JYU2hlYXIyKGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JYU2hlYXIyQEBZQVBFQVZDUlRyYW5zZm9ybTJAQFBFQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMyAqIF9fcHRyNjQgX19jZGVjbCBDUlhTaGVhcjMoZG91YmxlLGRvdWJsZSkNCis/Q1JYU2hlYXIzQEBZQVBFQVZDUlRyYW5zZm9ybTNAQE5OQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMyAqIF9fcHRyNjQgX19jZGVjbCBDUlhTaGVhcjMoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JYU2hlYXIzQEBZQVBFQVZDUlRyYW5zZm9ybTNAQFBFQVZDUk51bWJlckBAMEBaDQorOyBjbGFzcyBDUlZlY3RvcjIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JYVmVjdG9yMih2b2lkKQ0KKz9DUlhWZWN0b3IyQEBZQVBFQVZDUlZlY3RvcjJAQFhaDQorOyBjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JYVmVjdG9yMyh2b2lkKQ0KKz9DUlhWZWN0b3IzQEBZQVBFQVZDUlZlY3RvcjNAQFhaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JZU2hlYXIyKGRvdWJsZSkNCis/Q1JZU2hlYXIyQEBZQVBFQVZDUlRyYW5zZm9ybTJAQE5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19wdHI2NCBfX2NkZWNsIENSWVNoZWFyMihjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSWVNoZWFyMkBAWUFQRUFWQ1JUcmFuc2Zvcm0yQEBQRUFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JZU2hlYXIzKGRvdWJsZSxkb3VibGUpDQorP0NSWVNoZWFyM0BAWUFQRUFWQ1JUcmFuc2Zvcm0zQEBOTkBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JZU2hlYXIzKGNsYXNzIENSTnVtYmVyICogX19wdHI2NCxjbGFzcyBDUk51bWJlciAqIF9fcHRyNjQpDQorP0NSWVNoZWFyM0BAWUFQRUFWQ1JUcmFuc2Zvcm0zQEBQRUFWQ1JOdW1iZXJAQDBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IyICogX19wdHI2NCBfX2NkZWNsIENSWVZlY3RvcjIodm9pZCkNCis/Q1JZVmVjdG9yMkBAWUFQRUFWQ1JWZWN0b3IyQEBYWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19wdHI2NCBfX2NkZWNsIENSWVZlY3RvcjModm9pZCkNCis/Q1JZVmVjdG9yM0BAWUFQRUFWQ1JWZWN0b3IzQEBYWg0KKzsgY2xhc3MgQ1JDb2xvciAqIF9fcHRyNjQgX19jZGVjbCBDUlllbGxvdyh2b2lkKQ0KKz9DUlllbGxvd0BAWUFQRUFWQ1JDb2xvckBAWFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMyAqIF9fcHRyNjQgX19jZGVjbCBDUlpTaGVhcjMoZG91YmxlLGRvdWJsZSkNCis/Q1JaU2hlYXIzQEBZQVBFQVZDUlRyYW5zZm9ybTNAQE5OQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMyAqIF9fcHRyNjQgX19jZGVjbCBDUlpTaGVhcjMoY2xhc3MgQ1JOdW1iZXIgKiBfX3B0cjY0LGNsYXNzIENSTnVtYmVyICogX19wdHI2NCkNCis/Q1JaU2hlYXIzQEBZQVBFQVZDUlRyYW5zZm9ybTNAQFBFQVZDUk51bWJlckBAMEBaDQorOyBjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JaVmVjdG9yMyh2b2lkKQ0KKz9DUlpWZWN0b3IzQEBZQVBFQVZDUlZlY3RvcjNAQFhaDQorOyBjbGFzcyBDUlZlY3RvcjIgKiBfX3B0cjY0IF9fY2RlY2wgQ1JaZXJvVmVjdG9yMih2b2lkKQ0KKz9DUlplcm9WZWN0b3IyQEBZQVBFQVZDUlZlY3RvcjJAQFhaDQorOyBjbGFzcyBDUlZlY3RvcjMgKiBfX3B0cjY0IF9fY2RlY2wgQ1JaZXJvVmVjdG9yMyh2b2lkKQ0KKz9DUlplcm9WZWN0b3IzQEBZQVBFQVZDUlZlY3RvcjNAQFhaDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kYXRhY2xlbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kYXRhY2xlbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzI0NDllYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2RhdGFjbGVuLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERBVEFDTEVOLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEQVRBQ0xFTi5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kYXRpbWUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZGF0aW1lLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MGQxODdiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZGF0aW1lLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERBVElNRS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgREFUSU1FLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RhdmNsbnQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZGF2Y2xudC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGJjMDMyMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2RhdmNsbnQuZGVmCkBAIC0wLDAgKzEsMjcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZGF2Y2xudC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZGF2Y2xudC5kbGwNCitFWFBPUlRTDQorRGF2RnJlZVVzZWREaXNrU3BhY2UNCitEYXZHZXREaXNrU3BhY2VVc2FnZQ0KK0RhdkdldFRoZUxvY2tPd25lck9mVGhlRmlsZQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsTWFpbg0KK05QQWRkQ29ubmVjdGlvbg0KK05QQWRkQ29ubmVjdGlvbjMNCitOUENhbmNlbENvbm5lY3Rpb24NCitOUENsb3NlRW51bQ0KK05QRW51bVJlc291cmNlDQorTlBGb3JtYXROZXR3b3JrTmFtZQ0KK05QR2V0Q2Fwcw0KK05QR2V0Q29ubmVjdGlvbg0KK05QR2V0UmVzb3VyY2VJbmZvcm1hdGlvbg0KK05QR2V0UmVzb3VyY2VQYXJlbnQNCitOUEdldFVuaXZlcnNhbE5hbWUNCitOUEdldFVzZXINCitOUE9wZW5FbnVtDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZGF2Y3Byb3guZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZGF2Y3Byb3guZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYxM2ZmZjQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kYXZjcHJveC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEQVZDUFJPWC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgREFWQ1BST1guZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZGJnZW5nLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2RiZ2VuZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2RhODQyMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2RiZ2VuZy5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBkYmdlbmcuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGRiZ2VuZy5kbGwNCitFWFBPUlRTDQorRGVidWdDb25uZWN0DQorRGVidWdDcmVhdGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kYmdoZWxwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2RiZ2hlbHAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU0YjcxZGUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kYmdoZWxwLmRlZgpAQCAtMCwwICsxLDExNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBkYmdoZWxwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkYmdoZWxwLmRsbA0KK0VYUE9SVFMNCitEYmdIZWxwQ3JlYXRlVXNlckR1bXANCitEYmdIZWxwQ3JlYXRlVXNlckR1bXBXDQorRW51bWVyYXRlTG9hZGVkTW9kdWxlcw0KK0VudW1lcmF0ZUxvYWRlZE1vZHVsZXM2NA0KK0V4dGVuc2lvbkFwaVZlcnNpb24NCitGaW5kRGVidWdJbmZvRmlsZQ0KK0ZpbmREZWJ1Z0luZm9GaWxlRXgNCitGaW5kRXhlY3V0YWJsZUltYWdlDQorRmluZEV4ZWN1dGFibGVJbWFnZUV4DQorRmluZEZpbGVJblBhdGgNCitGaW5kRmlsZUluU2VhcmNoUGF0aA0KK0dldFRpbWVzdGFtcEZvckxvYWRlZExpYnJhcnkNCitJbWFnZURpcmVjdG9yeUVudHJ5VG9EYXRhDQorSW1hZ2VEaXJlY3RvcnlFbnRyeVRvRGF0YUV4DQorSW1hZ2VOdEhlYWRlcg0KK0ltYWdlUnZhVG9TZWN0aW9uDQorSW1hZ2VSdmFUb1ZhDQorSW1hZ2VobHBBcGlWZXJzaW9uDQorSW1hZ2VobHBBcGlWZXJzaW9uRXgNCitNYWtlU3VyZURpcmVjdG9yeVBhdGhFeGlzdHMNCitNaW5pRHVtcFJlYWREdW1wU3RyZWFtDQorTWluaUR1bXBXcml0ZUR1bXANCitTZWFyY2hUcmVlRm9yRmlsZQ0KK1N0YWNrV2Fsaw0KK1N0YWNrV2FsazY0DQorU3ltQWRkU3ltYm9sDQorU3ltQ2xlYW51cA0KK1N5bURlbGV0ZVN5bWJvbA0KK1N5bUVudW1MaW5lcw0KK1N5bUVudW1Tb3VyY2VGaWxlcw0KK1N5bUVudW1TeW0NCitTeW1FbnVtU3ltYm9scw0KK1N5bUVudW1TeW1ib2xzRm9yQWRkcg0KK1N5bUVudW1UeXBlcw0KK1N5bUVudW1lcmF0ZU1vZHVsZXMNCitTeW1FbnVtZXJhdGVNb2R1bGVzNjQNCitTeW1FbnVtZXJhdGVTeW1ib2xzDQorU3ltRW51bWVyYXRlU3ltYm9sczY0DQorU3ltRW51bWVyYXRlU3ltYm9sc1cNCitTeW1FbnVtZXJhdGVTeW1ib2xzVzY0DQorU3ltRmluZEZpbGVJblBhdGgNCitTeW1Gcm9tQWRkcg0KK1N5bUZyb21OYW1lDQorU3ltRnJvbVRva2VuDQorU3ltRnVuY3Rpb25UYWJsZUFjY2Vzcw0KK1N5bUZ1bmN0aW9uVGFibGVBY2Nlc3M2NA0KK1N5bUdldEZpbGVMaW5lT2Zmc2V0czY0DQorU3ltR2V0SG9tZURpcmVjdG9yeQ0KK1N5bUdldExpbmVGcm9tQWRkcg0KK1N5bUdldExpbmVGcm9tQWRkcjY0DQorU3ltR2V0TGluZUZyb21OYW1lDQorU3ltR2V0TGluZUZyb21OYW1lNjQNCitTeW1HZXRMaW5lTmV4dA0KK1N5bUdldExpbmVOZXh0NjQNCitTeW1HZXRMaW5lUHJldg0KK1N5bUdldExpbmVQcmV2NjQNCitTeW1HZXRNb2R1bGVCYXNlDQorU3ltR2V0TW9kdWxlQmFzZTY0DQorU3ltR2V0TW9kdWxlSW5mbw0KK1N5bUdldE1vZHVsZUluZm82NA0KK1N5bUdldE1vZHVsZUluZm9XDQorU3ltR2V0TW9kdWxlSW5mb1c2NA0KK1N5bUdldE9wdGlvbnMNCitTeW1HZXRTZWFyY2hQYXRoDQorU3ltR2V0U3ltRnJvbUFkZHINCitTeW1HZXRTeW1Gcm9tQWRkcjY0DQorU3ltR2V0U3ltRnJvbU5hbWUNCitTeW1HZXRTeW1Gcm9tTmFtZTY0DQorU3ltR2V0U3ltTmV4dA0KK1N5bUdldFN5bU5leHQ2NA0KK1N5bUdldFN5bVByZXYNCitTeW1HZXRTeW1QcmV2NjQNCitTeW1HZXRUeXBlRnJvbU5hbWUNCitTeW1HZXRUeXBlSW5mbw0KK1N5bUluaXRpYWxpemUNCitTeW1Mb2FkTW9kdWxlDQorU3ltTG9hZE1vZHVsZTY0DQorU3ltTG9hZE1vZHVsZUV4DQorU3ltTWF0Y2hGaWxlTmFtZQ0KK1N5bU1hdGNoU3RyaW5nDQorU3ltUmVnaXN0ZXJDYWxsYmFjaw0KK1N5bVJlZ2lzdGVyQ2FsbGJhY2s2NA0KK1N5bVJlZ2lzdGVyRnVuY3Rpb25FbnRyeUNhbGxiYWNrDQorU3ltUmVnaXN0ZXJGdW5jdGlvbkVudHJ5Q2FsbGJhY2s2NA0KK1N5bVNldENvbnRleHQNCitTeW1TZXRIb21lRGlyZWN0b3J5DQorU3ltU2V0T3B0aW9ucw0KK1N5bVNldFBhcmVudFdpbmRvdw0KK1N5bVNldFNlYXJjaFBhdGgNCitTeW1VbkROYW1lDQorU3ltVW5ETmFtZTY0DQorU3ltVW5sb2FkTW9kdWxlDQorU3ltVW5sb2FkTW9kdWxlNjQNCitVbkRlY29yYXRlU3ltYm9sTmFtZQ0KK1dpbkRiZ0V4dGVuc2lvbkRsbEluaXQNCitkYmdoZWxwDQorZGgNCitmcHRyDQorbG0NCitsbWkNCitvbWFwDQorc3JjZmlsZXMNCitzdGFja2RiZw0KK3N5bQ0KK3N5bXNydg0KK3ZjN2Zwbw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RibmV0bGliLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2RibmV0bGliLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZDIxODA0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZGJuZXRsaWIuZGVmCkBAIC0wLDAgKzEsMzYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgREJuZXRsaWIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERCbmV0bGliLmRsbA0KK0VYUE9SVFMNCitDb25uZWN0aW9uT2JqZWN0U2l6ZQ0KK0Nvbm5lY3Rpb25SZWFkDQorQ29ubmVjdGlvbldyaXRlDQorQ29ubmVjdGlvblRyYW5zYWN0DQorQ29ubmVjdGlvbldyaXRlT09CDQorQ29ubmVjdGlvbk1vZGUNCitDb25uZWN0aW9uU3RhdHVzDQorQ29ubmVjdGlvbk9wZW4NCitDb25uZWN0aW9uQ2xvc2UNCitDb25uZWN0aW9uQ2hlY2tGb3JEYXRhDQorQ29ubmVjdGlvbkVycm9yDQorQ29ubmVjdGlvblZlcg0KK0Nvbm5lY3Rpb25TcWxWZXINCitDb25uZWN0aW9uU2VydmVyRW51bQ0KK0Nvbm5lY3Rpb25TZXJ2ZXJFbnVtVw0KK0Nvbm5lY3Rpb25PcGVuVw0KK0Nvbm5lY3Rpb25FcnJvclcNCitDb25uZWN0aW9uT3B0aW9uDQorQ29ubmVjdGlvbkdldFN2clVzZXINCitJbml0RW51bVNlcnZlcnMNCitHZXROZXh0RW51bWVyYXRpb24NCitDbG9zZUVudW1TZXJ2ZXJzDQorSW5pdFNTUElQYWNrYWdlDQorVGVybVNTUElQYWNrYWdlDQorSW5pdFNlc3Npb24NCitUZXJtU2Vzc2lvbg0KK0dlbkNsaWVudENvbnRleHQNCitDb25uZWN0aW9uRmx1c2hDYWNoZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Ribm1wbnR3LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Ribm1wbnR3LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZGYwZTY3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZGJubXBudHcuZGVmCkBAIC0wLDAgKzEsMjQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgREJubXBudHcuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERCbm1wbnR3LmRsbA0KK0VYUE9SVFMNCitDb25uZWN0aW9uT2JqZWN0U2l6ZQ0KK0Nvbm5lY3Rpb25SZWFkDQorQ29ubmVjdGlvbldyaXRlDQorQ29ubmVjdGlvbkNsb3NlDQorQ29ubmVjdGlvbkVycm9yDQorQ29ubmVjdGlvblZlcg0KK0Nvbm5lY3Rpb25UcmFuc2FjdA0KK0Nvbm5lY3Rpb25Xcml0ZU9PQg0KK0Nvbm5lY3Rpb25Nb2RlDQorQ29ubmVjdGlvblN0YXR1cw0KK0Nvbm5lY3Rpb25PcGVuDQorQ29ubmVjdGlvblNlcnZlckVudW0NCitDb25uZWN0aW9uQ2hlY2tGb3JEYXRhDQorQ29ubmVjdGlvbk9wZW5XDQorQ29ubmVjdGlvbkVycm9yVw0KK0Nvbm5lY3Rpb25TZXJ2ZXJFbnVtVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RjaW1hbjMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2RjaW1hbjMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42OTFjNTc5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZGNpbWFuMzIuZGVmCkBAIC0wLDAgKzEsMjggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRENJTUFOMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERDSU1BTjMyLmRsbA0KK0VYUE9SVFMNCitEQ0lCZWdpbkFjY2Vzcw0KK0RDSUNsb3NlUHJvdmlkZXINCitEQ0lDcmVhdGVPZmZzY3JlZW4NCitEQ0lDcmVhdGVPdmVybGF5DQorRENJQ3JlYXRlUHJpbWFyeQ0KK0RDSURlc3Ryb3kNCitEQ0lEcmF3DQorRENJRW5kQWNjZXNzDQorRENJRW51bQ0KK0RDSU9wZW5Qcm92aWRlcg0KK0RDSVNldENsaXBMaXN0DQorRENJU2V0RGVzdGluYXRpb24NCitEQ0lTZXRTcmNEZXN0Q2xpcA0KK0dldERDUmVnaW9uRGF0YQ0KK0dldFdpbmRvd1JlZ2lvbkRhdGENCitXaW5XYXRjaENsb3NlDQorV2luV2F0Y2hEaWRTdGF0dXNDaGFuZ2UNCitXaW5XYXRjaEdldENsaXBMaXN0DQorV2luV2F0Y2hOb3RpZnkNCitXaW5XYXRjaE9wZW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kZHJhdy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kZHJhdy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjkyYjUxNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2RkcmF3LmRlZgpAQCAtMCwwICsxLDMwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEREUkFXLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBERFJBVy5kbGwNCitFWFBPUlRTDQorQWNxdWlyZUREVGhyZWFkTG9jaw0KK0NoZWNrRnVsbHNjcmVlbg0KK0NvbXBsZXRlQ3JlYXRlU3lzbWVtU3VyZmFjZQ0KK0QzRFBhcnNlVW5rbm93bkNvbW1hbmQNCitEREdldEF0dGFjaGVkU3VyZmFjZUxjbA0KK0RESW50ZXJuYWxMb2NrDQorRERJbnRlcm5hbFVubG9jaw0KK0RTb3VuZEhlbHANCitEaXJlY3REcmF3Q3JlYXRlDQorRGlyZWN0RHJhd0NyZWF0ZUNsaXBwZXINCitEaXJlY3REcmF3Q3JlYXRlRXgNCitEaXJlY3REcmF3RW51bWVyYXRlQQ0KK0RpcmVjdERyYXdFbnVtZXJhdGVFeEENCitEaXJlY3REcmF3RW51bWVyYXRlRXhXDQorRGlyZWN0RHJhd0VudW1lcmF0ZVcNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0dldEREU3VyZmFjZUxvY2FsDQorR2V0T0xFVGh1bmtEYXRhDQorR2V0U3VyZmFjZUZyb21EQw0KK1JlZ2lzdGVyU3BlY2lhbENhc2UNCitSZWxlYXNlRERUaHJlYWRMb2NrDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZGRyYXdleC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kZHJhd2V4LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNWY2NjdhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZGRyYXdleC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBERFJBV0VYLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBERFJBV0VYLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Rlc2thZHAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZGVza2FkcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTIzYzAyNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Rlc2thZHAuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZGVza2FkcC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZGVza2FkcC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kZXNrbW9uLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Rlc2ttb24uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYyNDQ3NWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kZXNrbW9uLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGRlc2ttb24uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGRlc2ttb24uZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZGVza3BlcmYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZGVza3BlcmYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmViMzY3MTcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kZXNrcGVyZi5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBkZXNrcGVyZi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZGVza3BlcmYuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZGV2ZW51bS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kZXZlbnVtLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZWE1MDQxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZGV2ZW51bS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBERVZFTlVNLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBERVZFTlVNLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Rldm1nci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kZXZtZ3IuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFlN2I4NTUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kZXZtZ3IuZGVmCkBAIC0wLDAgKzEsMzAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgREVWTUdSLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBERVZNR1IuRExMDQorRVhQT1JUUw0KK0RldmljZVByb3BlcnRpZXNfUnVuRExMQQ0KK0RldmljZVByb3BlcnRpZXNfUnVuRExMVw0KK0RldmljZVByb3BlcnRpZXNBDQorRGV2aWNlUHJvcGVydGllc1cNCitEZXZpY2VNYW5hZ2VyX0V4ZWN1dGVBDQorRGV2aWNlTWFuYWdlcl9FeGVjdXRlVw0KK0RldmljZVByb2JsZW1UZXh0QQ0KK0RldmljZVByb2JsZW1UZXh0Vw0KK0RldmljZVByb2JsZW1XaXphcmRBDQorRGV2aWNlUHJvYmxlbVdpemFyZFcNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RldmljZUFkdmFuY2VkUHJvcGVydGllc0ENCitEZXZpY2VBZHZhbmNlZFByb3BlcnRpZXNXDQorRGV2aWNlQ3JlYXRlSGFyZHdhcmVQYWdlDQorRGV2aWNlQ3JlYXRlSGFyZHdhcmVQYWdlRXgNCitEZXZpY2VQcm9wZXJ0aWVzRXhBDQorRGV2aWNlUHJvcGVydGllc0V4Vw0KK0RldmljZVByb2JsZW5XaXphcmRfUnVuRExMQQ0KK0RldmljZVByb2JsZW5XaXphcmRfUnVuRExMVw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RmcmdpZnBzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2RmcmdpZnBzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMGRlNjA2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZGZyZ2lmcHMuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZGZyZ2lmY1BTLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkZnJnaWZjUFMuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorR2V0UHJveHlEbGxJbmZvDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZGZyZ3NuYXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZGZyZ3NuYXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg2NjA4M2MKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kZnJnc25hcC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEZnJnU25hcC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRGZyZ1NuYXAuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZGZyZ3VpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Rmcmd1aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTMzZWRkNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Rmcmd1aS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEZnJnVUkuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERmcmdVSS5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kZnNzaGxleC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kZnNzaGxleC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzNjMzlhNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Rmc3NobGV4LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERmc1NobEV4LkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEZnNTaGxFeC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kZ25ldC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kZ25ldC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWRkMGE2YgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2RnbmV0LmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERnbmV0LkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEZ25ldC5ETEwNCitFWFBPUlRTDQorSW5pdEhlbHBlckRsbA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZGhjcGNzdmMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZGhjcGNzdmMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlmZDRmNzQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kaGNwY3N2Yy5kZWYKQEAgLTAsMCArMSw0NSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBESENQQ1NWQy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgREhDUENTVkMuRExMDQorRVhQT1JUUw0KK0RoY3BBY3F1aXJlUGFyYW1ldGVycw0KK0RoY3BBY3F1aXJlUGFyYW1ldGVyc0J5QnJvYWRjYXN0DQorRGhjcENBcGlDbGVhbnVwDQorRGhjcENBcGlJbml0aWFsaXplDQorRGhjcERlUmVnaXN0ZXJPcHRpb25zDQorRGhjcERlUmVnaXN0ZXJQYXJhbUNoYW5nZQ0KK0RoY3BEZWxQZXJzaXN0ZW50UmVxdWVzdFBhcmFtcw0KK0RoY3BFbnVtQ2xhc3Nlcw0KK0RoY3BGYWxsYmFja1JlZnJlc2hQYXJhbXMNCitEaGNwSGFuZGxlUG5QRXZlbnQNCitEaGNwTGVhc2VJcEFkZHJlc3MNCitEaGNwTGVhc2VJcEFkZHJlc3NFeA0KK0RoY3BOb3RpZnlDb25maWdDaGFuZ2UNCitEaGNwTm90aWZ5Q29uZmlnQ2hhbmdlRXgNCitEaGNwTm90aWZ5TWVkaWFSZWNvbm5lY3RlZA0KK0RoY3BPcGVuR2xvYmFsRXZlbnQNCitEaGNwUGVyc2lzdGVudFJlcXVlc3RQYXJhbXMNCitEaGNwUmVnaXN0ZXJPcHRpb25zDQorRGhjcFJlZ2lzdGVyUGFyYW1DaGFuZ2UNCitEaGNwUmVsZWFzZUlwQWRkcmVzc0xlYXNlDQorRGhjcFJlbGVhc2VJcEFkZHJlc3NMZWFzZUV4DQorRGhjcFJlbGVhc2VQYXJhbWV0ZXJzDQorRGhjcFJlbW92ZUROU1JlZ2lzdHJhdGlvbnMNCitEaGNwUmVuZXdJcEFkZHJlc3NMZWFzZQ0KK0RoY3BSZW5ld0lwQWRkcmVzc0xlYXNlRXgNCitEaGNwUmVxdWVzdE9wdGlvbnMNCitEaGNwUmVxdWVzdFBhcmFtcw0KK0RoY3BTdGF0aWNSZWZyZXNoUGFyYW1zDQorRGhjcFVuZG9SZXF1ZXN0UGFyYW1zDQorTWNhc3RBcGlDbGVhbnVwDQorTWNhc3RBcGlTdGFydHVwDQorTWNhc3RFbnVtZXJhdGVTY29wZXMNCitNY2FzdEdlblVJRA0KK01jYXN0UmVsZWFzZUFkZHJlc3MNCitNY2FzdFJlbmV3QWRkcmVzcw0KK01jYXN0UmVxdWVzdEFkZHJlc3MNCitTZXJ2aWNlTWFpbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RoY3Btb24uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZGhjcG1vbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzQwMmM3ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2RoY3Btb24uZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBESENQTU9OLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBESENQTU9OLmRsbA0KK0VYUE9SVFMNCitJbml0SGVscGVyRGxsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZGhjcHNhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZGhjcHNhcGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRlMGMyNjkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kaGNwc2FwaS5kZWYKQEAgLTAsMCArMSwxMDEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgREhDUFNBUEkuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERIQ1BTQVBJLkRMTA0KK0VYUE9SVFMNCitEaGNwQWRkTVNjb3BlRWxlbWVudA0KK0RoY3BBZGRTZXJ2ZXINCitEaGNwQWRkU3VibmV0RWxlbWVudA0KK0RoY3BBZGRTdWJuZXRFbGVtZW50VjQNCitEaGNwQWRkU3VibmV0RWxlbWVudFY1DQorRGhjcEF1ZGl0TG9nR2V0UGFyYW1zDQorRGhjcEF1ZGl0TG9nU2V0UGFyYW1zDQorRGhjcENyZWF0ZUNsYXNzDQorRGhjcENyZWF0ZUNsaWVudEluZm8NCitEaGNwQ3JlYXRlQ2xpZW50SW5mb1Y0DQorRGhjcENyZWF0ZU9wdGlvbg0KK0RoY3BDcmVhdGVPcHRpb25WNQ0KK0RoY3BDcmVhdGVTdWJuZXQNCitEaGNwRGVsZXRlQ2xhc3MNCitEaGNwRGVsZXRlQ2xpZW50SW5mbw0KK0RoY3BEZWxldGVNQ2xpZW50SW5mbw0KK0RoY3BEZWxldGVNU2NvcGUNCitEaGNwRGVsZXRlU2VydmVyDQorRGhjcERlbGV0ZVN1Ym5ldA0KK0RoY3BEZWxldGVTdXBlclNjb3BlVjQNCitEaGNwRHNDbGVhbnVwDQorRGhjcERzQ2xlYXJIb3N0U2VydmVyRW50cmllcw0KK0RoY3BEc0luaXQNCitEaGNwRW51bUNsYXNzZXMNCitEaGNwRW51bU1TY29wZUNsaWVudHMNCitEaGNwRW51bU1TY29wZUVsZW1lbnRzDQorRGhjcEVudW1NU2NvcGVzDQorRGhjcEVudW1PcHRpb25WYWx1ZXMNCitEaGNwRW51bU9wdGlvblZhbHVlc1Y1DQorRGhjcEVudW1PcHRpb25zDQorRGhjcEVudW1PcHRpb25zVjUNCitEaGNwRW51bVNlcnZlcnMNCitEaGNwRW51bVN1Ym5ldENsaWVudHMNCitEaGNwRW51bVN1Ym5ldENsaWVudHNWNA0KK0RoY3BFbnVtU3VibmV0Q2xpZW50c1Y1DQorRGhjcEVudW1TdWJuZXRFbGVtZW50cw0KK0RoY3BFbnVtU3VibmV0RWxlbWVudHNWNA0KK0RoY3BFbnVtU3VibmV0RWxlbWVudHNWNQ0KK0RoY3BFbnVtU3VibmV0cw0KK0RoY3BHZXRBbGxPcHRpb25WYWx1ZXMNCitEaGNwR2V0QWxsT3B0aW9ucw0KK0RoY3BHZXRDbGFzc0luZm8NCitEaGNwR2V0Q2xpZW50SW5mbw0KK0RoY3BHZXRDbGllbnRJbmZvVjQNCitEaGNwR2V0Q2xpZW50T3B0aW9ucw0KK0RoY3BHZXRNQ2FzdE1pYkluZm8NCitEaGNwR2V0TVNjb3BlSW5mbw0KK0RoY3BHZXRNaWJJbmZvDQorRGhjcEdldE9wdGlvbkluZm8NCitEaGNwR2V0T3B0aW9uSW5mb1Y1DQorRGhjcEdldE9wdGlvblZhbHVlDQorRGhjcEdldE9wdGlvblZhbHVlVjUNCitEaGNwR2V0U2VydmVyQmluZGluZ0luZm8NCitEaGNwR2V0U3VibmV0SW5mbw0KK0RoY3BHZXRTdXBlclNjb3BlSW5mb1Y0DQorRGhjcEdldFRocmVhZE9wdGlvbnMNCitEaGNwR2V0VmVyc2lvbg0KK0RoY3BNb2RpZnlDbGFzcw0KK0RoY3BSZW1vdmVNU2NvcGVFbGVtZW50DQorRGhjcFJlbW92ZU9wdGlvbg0KK0RoY3BSZW1vdmVPcHRpb25WNQ0KK0RoY3BSZW1vdmVPcHRpb25WYWx1ZQ0KK0RoY3BSZW1vdmVPcHRpb25WYWx1ZVY1DQorRGhjcFJlbW92ZVN1Ym5ldEVsZW1lbnQNCitEaGNwUmVtb3ZlU3VibmV0RWxlbWVudFY0DQorRGhjcFJlbW92ZVN1Ym5ldEVsZW1lbnRWNQ0KK0RoY3BScGNGcmVlTWVtb3J5DQorRGhjcFNjYW5EYXRhYmFzZQ0KK0RoY3BTY2FuTURhdGFiYXNlDQorRGhjcFNlcnZlckJhY2t1cERhdGFiYXNlDQorRGhjcFNlcnZlckdldENvbmZpZw0KK0RoY3BTZXJ2ZXJHZXRDb25maWdWNA0KK0RoY3BTZXJ2ZXJRdWVyeUF0dHJpYnV0ZQ0KK0RoY3BTZXJ2ZXJRdWVyeUF0dHJpYnV0ZXMNCitEaGNwU2VydmVyUXVlcnlEbnNSZWdDcmVkZW50aWFscw0KK0RoY3BTZXJ2ZXJSZWRvQXV0aG9yaXphdGlvbg0KK0RoY3BTZXJ2ZXJSZXN0b3JlRGF0YWJhc2UNCitEaGNwU2VydmVyU2V0Q29uZmlnDQorRGhjcFNlcnZlclNldENvbmZpZ1Y0DQorRGhjcFNlcnZlclNldERuc1JlZ0NyZWRlbnRpYWxzDQorRGhjcFNldENsaWVudEluZm8NCitEaGNwU2V0Q2xpZW50SW5mb1Y0DQorRGhjcFNldE1TY29wZUluZm8NCitEaGNwU2V0T3B0aW9uSW5mbw0KK0RoY3BTZXRPcHRpb25JbmZvVjUNCitEaGNwU2V0T3B0aW9uVmFsdWUNCitEaGNwU2V0T3B0aW9uVmFsdWVWNQ0KK0RoY3BTZXRPcHRpb25WYWx1ZXMNCitEaGNwU2V0T3B0aW9uVmFsdWVzVjUNCitEaGNwU2V0U2VydmVyQmluZGluZ0luZm8NCitEaGNwU2V0U3VibmV0SW5mbw0KK0RoY3BTZXRTdXBlclNjb3BlVjQNCitEaGNwU2V0VGhyZWFkT3B0aW9ucw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RpYWN0ZnJtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2RpYWN0ZnJtLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43N2ZkNDc5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZGlhY3Rmcm0uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZGlhY3Rmcm0uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGRpYWN0ZnJtLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RpZ2VzdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kaWdlc3QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY5OGU5NTIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kaWdlc3QuZGVmCkBAIC0wLDAgKzEsMzEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRElHRVNULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBESUdFU1QuZGxsDQorRVhQT1JUUw0KK0FjY2VwdFNlY3VyaXR5Q29udGV4dA0KK0FjcXVpcmVDcmVkZW50aWFsc0hhbmRsZUENCitBY3F1aXJlQ3JlZGVudGlhbHNIYW5kbGVXDQorQXBwbHlDb250cm9sVG9rZW4NCitDb21wbGV0ZUF1dGhUb2tlbg0KK0RlbGV0ZVNlY3VyaXR5Q29udGV4dA0KK0RsbEluc3RhbGwNCitFbnVtZXJhdGVTZWN1cml0eVBhY2thZ2VzQQ0KK0VudW1lcmF0ZVNlY3VyaXR5UGFja2FnZXNXDQorRnJlZUNvbnRleHRCdWZmZXINCitGcmVlQ3JlZGVudGlhbHNIYW5kbGUNCitJbXBlcnNvbmF0ZVNlY3VyaXR5Q29udGV4dA0KK0luaXRTZWN1cml0eUludGVyZmFjZUENCitJbml0U2VjdXJpdHlJbnRlcmZhY2VXDQorSW5pdGlhbGl6ZVNlY3VyaXR5Q29udGV4dEENCitJbml0aWFsaXplU2VjdXJpdHlDb250ZXh0Vw0KK01ha2VTaWduYXR1cmUNCitRdWVyeUNvbnRleHRBdHRyaWJ1dGVzQQ0KK1F1ZXJ5Q29udGV4dEF0dHJpYnV0ZXNXDQorUXVlcnlTZWN1cml0eVBhY2thZ2VJbmZvQQ0KK1F1ZXJ5U2VjdXJpdHlQYWNrYWdlSW5mb1cNCitSZXZlcnRTZWN1cml0eUNvbnRleHQNCitWZXJpZnlTaWduYXR1cmUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kaW1hcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kaW1hcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGNhMTI0NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2RpbWFwLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERJTUFQLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBESU1BUC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kaW1zbnRmeS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kaW1zbnRmeS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjE0ZWRmNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2RpbXNudGZ5LmRlZgpAQCAtMCwwICsxLDE1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGRpbXNudGZ5LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkaW1zbnRmeS5kbGwNCitFWFBPUlRTDQorV2xEaW1zTG9jaw0KK1dsRGltc0xvZ29mZg0KK1dsRGltc0xvZ29uDQorV2xEaW1zU2h1dGRvd24NCitXbERpbXNTdGFydFNoZWxsDQorV2xEaW1zU3RhcnR1cA0KK1dsRGltc1VubG9jaw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RpbXNyb2FtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2RpbXNyb2FtLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xY2JlZDVlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZGltc3JvYW0uZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBkaW1zcm9hbS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZGltc3JvYW0uZGxsDQorRVhQT1JUUw0KK0RpbXNSb2FtRW50cnkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kaW5wdXQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZGlucHV0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jOGYxMjJhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZGlucHV0LmRlZgpAQCAtMCwwICsxLDE1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERJTlBVVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRElOUFVULmRsbA0KK0VYUE9SVFMNCitEaXJlY3RJbnB1dENyZWF0ZUENCitEaXJlY3RJbnB1dENyZWF0ZUV4DQorRGlyZWN0SW5wdXRDcmVhdGVXDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kaW5wdXQ4LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2RpbnB1dDguZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJjOGVkYzQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kaW5wdXQ4LmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERJTlBVVDguZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERJTlBVVDguZGxsDQorRVhQT1JUUw0KK0RpcmVjdElucHV0OENyZWF0ZQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZGlyZWN0ZGIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZGlyZWN0ZGIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZlZDVkZTYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kaXJlY3RkYi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBESVJFQ1REQi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRElSRUNUREIuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZGlza2NvcHkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZGlza2NvcHkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM2YmFkMDEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kaXNrY29weS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBESVNLQ09QWS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRElTS0NPUFkuZGxsDQorRVhQT1JUUw0KK0Rpc2tDb3B5UnVuRGxsDQorRGlza0NvcHlSdW5EbGxXDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kaXNwZXguZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZGlzcGV4LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MTJlYTMwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZGlzcGV4LmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERpc3BFeC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRGlzcEV4LmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldFByb3h5RGxsSW5mbw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RtY29uZmlnLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2RtY29uZmlnLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jZTYxM2MxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZG1jb25maWcuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZG1jb25maWcuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGRtY29uZmlnLmRsbA0KK0VYUE9SVFMNCitEbGxNYWluDQorY3NfZ2V0X2FwaV9jYWxscw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RtZGxncy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kbWRsZ3MuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg4YTdkMjkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kbWRsZ3MuZGVmCkBAIC0wLDAgKzEsMjkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRE1ETEdTLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBETURMR1MuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RhdGFDYWNoZTo6QWRkTERNT2JqTWFwRW50cnkoc3RydWN0IF9MRE1fT0JKX01BUF9FTlRSWSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkTERNT2JqTWFwRW50cnlAQ0RhdGFDYWNoZUBAUUVBQVhQRUFVX0xETV9PQkpfTUFQX0VOVFJZQEBAWg0KKzsgdm9pZCBfX2NkZWNsIEZyZWVBcnJheU9mU3RyaW5ncyhzdHJ1Y3QgYXJyYXlPZlN0cmluZ3MgKiBfX3B0cjY0KQ0KKz9GcmVlQXJyYXlPZlN0cmluZ3NAQFlBWFBFQVVhcnJheU9mU3RyaW5nc0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENEYXRhQ2FjaGU6OkdldERpc2tDb3VudCh2b2lkKSBfX3B0cjY0DQorP0dldERpc2tDb3VudEBDRGF0YUNhY2hlQEBRRUFBS1haDQorOyBwdWJsaWM6IF9faW50NjQgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRMZG1PYmplY3RJZCh2b2lkKSBfX3B0cjY0DQorP0dldExkbU9iamVjdElkQENETU5vZGVPYmpAQFFFQUFfSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXROdW1NZW1iZXJzKHZvaWQpIF9fcHRyNjQNCis/R2V0TnVtTWVtYmVyc0BDRE1Ob2RlT2JqQEBRRUFBS1haDQorOyBwdWJsaWM6IGNsYXNzIENXbmQgKiBfX3B0cjY0IF9fY2RlY2wgQ1Rhc2tEYXRhOjpHZXRPY3hGcmFtZUNXbmRQdHIodm9pZCkgX19wdHI2NA0KKz9HZXRPY3hGcmFtZUNXbmRQdHJAQ1Rhc2tEYXRhQEBRRUFBUEVBVkNXbmRAQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVGFza0RhdGE6OkdldFJlZ2lvbkNvbG9yU3RydWN0UHRyKHN0cnVjdCBfUkVHSU9OX0NPTE9SUyAqIF9fcHRyNjQgKiBfX3B0cjY0LGludCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UmVnaW9uQ29sb3JTdHJ1Y3RQdHJAQ1Rhc2tEYXRhQEBRRUFBWFBFQVBFQVVfUkVHSU9OX0NPTE9SU0BAQUVBSEBaDQorOyBwdWJsaWM6IGNsYXNzIENTdHJpbmcgIF9fY2RlY2wgQ0RhdGFDYWNoZTo6R2V0U2VydmVyTmFtZSh2b2lkKSBfX3B0cjY0DQorP0dldFNlcnZlck5hbWVAQ0RhdGFDYWNoZUBAUUVBQT9BVkNTdHJpbmdAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRGF0YUNhY2hlOjpHZXRWb2x1bWVDb3VudCh2b2lkKSBfX3B0cjY0DQorP0dldFZvbHVtZUNvdW50QENEYXRhQ2FjaGVAQFFFQUFLWFoNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZG1kc2ttZ3IuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZG1kc2ttZ3IuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU5ZjQ1MmQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kbWRza21nci5kZWYKQEAgLTAsMCArMSw0MzMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRE1Ec2tNZ3IuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERNRHNrTWdyLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBDRGF0YUNhY2hlOjpDRGF0YUNhY2hlKHZvaWQpIF9fcHRyNjQNCis/PzBDRGF0YUNhY2hlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0RNTm9kZU9iajo6fkNETU5vZGVPYmoodm9pZCkgX19wdHI2NA0KKz8/MUNETU5vZGVPYmpAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENEYXRhQ2FjaGU6On5DRGF0YUNhY2hlKHZvaWQpIF9fcHRyNjQNCis/PzFDRGF0YUNhY2hlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRGF0YUNhY2hlOjpBZGRGaWxlU3lzdGVtSW5mb1RvTGlzdEFuZE1hcCh1bnNpZ25lZCBsb25nLHN0cnVjdCBmaWxlc3lzdGVtaW5mbyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkRmlsZVN5c3RlbUluZm9Ub0xpc3RBbmRNYXBAQ0RhdGFDYWNoZUBAUUVBQVhLUEVBVWZpbGVzeXN0ZW1pbmZvQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RhdGFDYWNoZTo6QWRkSW5zdGFsbGVkRmlsZVN5c3RlbXNUb0xpc3QodW5zaWduZWQgbG9uZyxzdHJ1Y3QgaWZpbGVzeXN0ZW1pbmZvICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRJbnN0YWxsZWRGaWxlU3lzdGVtc1RvTGlzdEBDRGF0YUNhY2hlQEBRRUFBWEtQRUFVaWZpbGVzeXN0ZW1pbmZvQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RhdGFDYWNoZTo6QWRkTERNT2JqTWFwRW50cnkoc3RydWN0IF9MRE1fT0JKX01BUF9FTlRSWSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkTERNT2JqTWFwRW50cnlAQ0RhdGFDYWNoZUBAUUVBQVhQRUFVX0xETV9PQkpfTUFQX0VOVFJZQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RhdGFDYWNoZTo6QWRkUmVnaW9uVG9Wb2x1bWVNZW1iZXJMaXN0KGNsYXNzIENETU5vZGVPYmogKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZFJlZ2lvblRvVm9sdW1lTWVtYmVyTGlzdEBDRGF0YUNhY2hlQEBRRUFBWFBFQVZDRE1Ob2RlT2JqQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RNQ29tcG9uZW50RGF0YTo6QWRkUm93KF9faW50NjQpIF9fcHRyNjQNCis/QWRkUm93QENETUNvbXBvbmVudERhdGFAQFFFQUFYX0pAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RhdGFDYWNoZTo6QWRqdXN0UmVnaW9uQ291bnRJbkxlZ2VuZExpc3QoZW51bSBfUkVHSU9OVFlQRSxpbnQpIF9fcHRyNjQNCis/QWRqdXN0UmVnaW9uQ291bnRJbkxlZ2VuZExpc3RAQ0RhdGFDYWNoZUBAUUVBQVhXNF9SRUdJT05UWVBFQEBIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENEYXRhQ2FjaGU6OkFkanVzdFZvbHVtZUNvdW50SW5MZWdlbmRMaXN0KGVudW0gX1ZPTFVNRUxBWU9VVCxpbnQpIF9fcHRyNjQNCis/QWRqdXN0Vm9sdW1lQ291bnRJbkxlZ2VuZExpc3RAQ0RhdGFDYWNoZUBAUUVBQVhXNF9WT0xVTUVMQVlPVVRAQEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpDYW5IYXZlR1BUKHZvaWQpIF9fcHRyNjQNCis/Q2FuSGF2ZUdQVEBDRE1Ob2RlT2JqQEBRRUFBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRE1Db21wb25lbnREYXRhOjpDaGFuZ2VSb3coX19pbnQ2NCkgX19wdHI2NA0KKz9DaGFuZ2VSb3dAQ0RNQ29tcG9uZW50RGF0YUBAUUVBQVhfSkBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQ29udGV4dE1lbnU6OkNvbW1hbmQobG9uZyxzdHJ1Y3QgSURhdGFPYmplY3QgKiBfX3B0cjY0LF9faW50NjQpIF9fcHRyNjQNCis/Q29tbWFuZEBDQ29udGV4dE1lbnVAQFFFQUFKSlBFQVVJRGF0YU9iamVjdEBAX0pAWg0KKzsgaW50IF9fY2RlY2wgQ29tcGFyZURpc2tOYW1lcyhfX2ludDY0LF9faW50NjQpDQorP0NvbXBhcmVEaXNrTmFtZXNAQFlBSF9KMEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENETU5vZGVPYmo6OkNvbnRhaW5zQWN0aXZlUGFydGl0aW9uKHZvaWQpIF9fcHRyNjQNCis/Q29udGFpbnNBY3RpdmVQYXJ0aXRpb25AQ0RNTm9kZU9iakBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpDb250YWluc0Jvb3RJbmlQYXJ0aXRpb24odm9pZCkgX19wdHI2NA0KKz9Db250YWluc0Jvb3RJbmlQYXJ0aXRpb25AQ0RNTm9kZU9iakBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpDb250YWluc0Jvb3RJbmlQYXJ0aXRpb25Gb3JXb2xmcGFjayh2b2lkKSBfX3B0cjY0DQorP0NvbnRhaW5zQm9vdEluaVBhcnRpdGlvbkZvcldvbGZwYWNrQENETU5vZGVPYmpAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNTm9kZU9iajo6Q29udGFpbnNCb290Vm9sdW1lc051bWJlckNoYW5nZShfX2ludDY0LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29udGFpbnNCb290Vm9sdW1lc051bWJlckNoYW5nZUBDRE1Ob2RlT2JqQEBRRUFBSF9KUEVBSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENETU5vZGVPYmo6OkNvbnRhaW5zRVNQUGFydGl0aW9uKHZvaWQpIF9fcHRyNjQNCis/Q29udGFpbnNFU1BQYXJ0aXRpb25AQ0RNTm9kZU9iakBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpDb250YWluc0xvZ2ljYWxEcnZCb290UGFydGl0aW9uKHZvaWQpIF9fcHRyNjQNCis/Q29udGFpbnNMb2dpY2FsRHJ2Qm9vdFBhcnRpdGlvbkBDRE1Ob2RlT2JqQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENETU5vZGVPYmo6OkNvbnRhaW5zUGFnZUZpbGUodm9pZCkgX19wdHI2NA0KKz9Db250YWluc1BhZ2VGaWxlQENETU5vZGVPYmpAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNTm9kZU9iajo6Q29udGFpbnNSZWFsU3lzdGVtUGFydGl0aW9uKHZvaWQpIF9fcHRyNjQNCis/Q29udGFpbnNSZWFsU3lzdGVtUGFydGl0aW9uQENETU5vZGVPYmpAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNTm9kZU9iajo6Q29udGFpbnNTdWJEaXNrTmVlZFJlc3luYyh2b2lkKSBfX3B0cjY0DQorP0NvbnRhaW5zU3ViRGlza05lZWRSZXN5bmNAQ0RNTm9kZU9iakBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpDb250YWluc1N5c3RlbUluZm9ybWF0aW9uKHZvaWQpIF9fcHRyNjQNCis/Q29udGFpbnNTeXN0ZW1JbmZvcm1hdGlvbkBDRE1Ob2RlT2JqQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENETU5vZGVPYmo6OkNvbnRhaW5zU3lzdGVtUGFydGl0aW9uKHZvaWQpIF9fcHRyNjQNCis/Q29udGFpbnNTeXN0ZW1QYXJ0aXRpb25AQ0RNTm9kZU9iakBAUUVBQUhYWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENvbnZlcnRCeXRlc1RvTUIoX19pbnQ2NCkNCis/Q29udmVydEJ5dGVzVG9NQkBAWUFLX0pAWg0KKzsgX19pbnQ2NCBfX2NkZWNsIENvbnZlcnRNQlRvQnl0ZXMoX19pbnQ2NCkNCis/Q29udmVydE1CVG9CeXRlc0BAWUFfSl9KQFoNCis7IHZvaWQgX19jZGVjbCBDb29raWVTb3J0KF9faW50NjQgKiBfX3B0cjY0LGxvbmcsbG9uZyxpbnQgKF9fY2RlY2wqKShfX2ludDY0LF9faW50NjQpKQ0KKz9Db29raWVTb3J0QEBZQVhQRUFfSkpKUDZBSF9KMUBaQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENEYXRhQ2FjaGU6OkNyZWF0ZURpc2tMaXN0KHZvaWQpIF9fcHRyNjQNCis/Q3JlYXRlRGlza0xpc3RAQ0RhdGFDYWNoZUBAUUVBQVhYWg0KKzsgcHVibGljOiBjbGFzcyBDRE1Ob2RlT2JqICogX19wdHI2NCBfX2NkZWNsIENEYXRhQ2FjaGU6OkNyZWF0ZU5vZGVPYmpBbmRBZGRUb01hcChpbnQsZW51bSBfTk9ERU9CSl9UWVBFUyxjbGFzcyBDRGF0YUNhY2hlICogX19wdHI2NCx2b2lkICogX19wdHI2NCxfX2ludDY0KSBfX3B0cjY0DQorP0NyZWF0ZU5vZGVPYmpBbmRBZGRUb01hcEBDRGF0YUNhY2hlQEBRRUFBUEVBVkNETU5vZGVPYmpAQEhXNF9OT0RFT0JKX1RZUEVTQEBQRUFWMUBQRUFYX0pAWg0KKzsgcHVibGljOiBjbGFzcyBDRE1Ob2RlT2JqICogX19wdHI2NCBfX2NkZWNsIENEYXRhQ2FjaGU6OkNyZWF0ZVJlZ2lvbk5vZGVPYmooY2xhc3MgQ0RNTm9kZU9iaiAqIF9fcHRyNjQsc3RydWN0IHJlZ2lvbmluZm9leCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q3JlYXRlUmVnaW9uTm9kZU9iakBDRGF0YUNhY2hlQEBRRUFBUEVBVkNETU5vZGVPYmpAQFBFQVYyQFBFQVVyZWdpb25pbmZvZXhAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRGF0YUNhY2hlOjpDcmVhdGVTaG9ydERpc2tOYW1lKHN0cnVjdCBkaXNraW5mb2V4ICYgX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVTaG9ydERpc2tOYW1lQENEYXRhQ2FjaGVAQFFFQUFYQUVBVWRpc2tpbmZvZXhAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRGF0YUNhY2hlOjpDcmVhdGVWb2x1bWVMaXN0KHZvaWQpIF9fcHRyNjQNCis/Q3JlYXRlVm9sdW1lTGlzdEBDRGF0YUNhY2hlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRGF0YUNhY2hlOjpEZWxldGVEaXNrR3JvdXBEYXRhKHN0cnVjdCBESVNLX0dST1VQX0RBVEEgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZURpc2tHcm91cERhdGFAQ0RhdGFDYWNoZUBAUUVBQVhQRUFVRElTS19HUk9VUF9EQVRBQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RhdGFDYWNoZTo6RGVsZXRlRW5jYXBzdWxhdGVEYXRhKHN0cnVjdCBFTkNBUFNVTEFURV9EQVRBICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVFbmNhcHN1bGF0ZURhdGFAQ0RhdGFDYWNoZUBAUUVBQVhQRUFVRU5DQVBTVUxBVEVfREFUQUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENEYXRhQ2FjaGU6OkRlbGV0ZUxpc3RzKHZvaWQpIF9fcHRyNjQNCis/RGVsZXRlTGlzdHNAQ0RhdGFDYWNoZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RhdGFDYWNoZTo6RGVsZXRlUmVnaW9uRnJvbVZvbHVtZU1lbWJlckxpc3QoY2xhc3MgQ0RNTm9kZU9iaiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlUmVnaW9uRnJvbVZvbHVtZU1lbWJlckxpc3RAQ0RhdGFDYWNoZUBAUUVBQVhQRUFWQ0RNTm9kZU9iakBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENETUNvbXBvbmVudERhdGE6OkRlbGV0ZVJvdyhfX2ludDY0KSBfX3B0cjY0DQorP0RlbGV0ZVJvd0BDRE1Db21wb25lbnREYXRhQEBRRUFBWF9KQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDb250ZXh0TWVudTo6RG9EZWxldGUoX19pbnQ2NCkgX19wdHI2NA0KKz9Eb0RlbGV0ZUBDQ29udGV4dE1lbnVAQFFFQUFYX0pAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RNQ29tcG9uZW50RGF0YTo6RW1wdHlPY3hWaWV3RGF0YSh2b2lkKSBfX3B0cjY0DQorP0VtcHR5T2N4Vmlld0RhdGFAQ0RNQ29tcG9uZW50RGF0YUBAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpFbmhhbmNlZElzVXBncmFkZWFibGUoY2xhc3MgQ1Rhc2tEYXRhICogX19wdHI2NCkgX19wdHI2NA0KKz9FbmhhbmNlZElzVXBncmFkZWFibGVAQ0RNTm9kZU9iakBAUUVBQUhQRUFWQ1Rhc2tEYXRhQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RNTm9kZU9iajo6RW51bURpc2tSZWdpb25zKF9faW50NjQgKiBfX3B0cjY0ICogX19wdHI2NCxsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz9FbnVtRGlza1JlZ2lvbnNAQ0RNTm9kZU9iakBAUUVBQVhQRUFQRUFfSkFFQUpAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Rhc2tEYXRhOjpFbnVtRGlza3ModW5zaWduZWQgbG9uZyAmIF9fcHRyNjQsX19pbnQ2NCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0VudW1EaXNrc0BDVGFza0RhdGFAQFFFQUFYQUVBS1BFQVBFQV9KQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENETU5vZGVPYmo6OkVudW1GaXJzdFZvbHVtZU1lbWJlcihfX2ludDY0ICYgX19wdHI2NCxsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz9FbnVtRmlyc3RWb2x1bWVNZW1iZXJAQ0RNTm9kZU9iakBAUUVBQVhBRUFfSkFFQUpAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RhdGFDYWNoZTo6RW51bU5URlN3aXRoRHJpdmVMZXR0ZXIoaW50ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0VudW1OVEZTd2l0aERyaXZlTGV0dGVyQENEYXRhQ2FjaGVAQFFFQUFYUEVBSFBFQVBFQUdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Rhc2tEYXRhOjpFbnVtTlRGU3dpdGhEcml2ZUxldHRlcihpbnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RW51bU5URlN3aXRoRHJpdmVMZXR0ZXJAQ1Rhc2tEYXRhQEBRRUFBWFBFQUhQRUFQRUFHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENETU5vZGVPYmo6OkVudW1Wb2x1bWVNZW1iZXJzKF9faW50NjQgKiBfX3B0cjY0ICogX19wdHI2NCxsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz9FbnVtVm9sdW1lTWVtYmVyc0BDRE1Ob2RlT2JqQEBRRUFBWFBFQVBFQV9KQUVBSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVGFza0RhdGE6OkVudW1Wb2x1bWVzKHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LF9faW50NjQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9FbnVtVm9sdW1lc0BDVGFza0RhdGFAQFFFQUFYQUVBS1BFQVBFQV9KQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENEYXRhQ2FjaGU6OkZpbGxEZXZpY2VJbnN0YW5jZUlkKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmlsbERldmljZUluc3RhbmNlSWRAQ0RhdGFDYWNoZUBAUUVBQVhQRUFHMEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVGFza0RhdGE6OkZpbHRlckNvb2tpZXNCaWdFbm91Z2hGb3JGVFJlcGFpcih1bnNpZ25lZCBsb25nICYgX19wdHI2NCxfX2ludDY0ICogX19wdHI2NCxfX2ludDY0ICogX19wdHI2NCAqIF9fcHRyNjQsbG9uZyxjbGFzcyBDRE1Ob2RlT2JqICogX19wdHI2NCkgX19wdHI2NA0KKz9GaWx0ZXJDb29raWVzQmlnRW5vdWdoRm9yRlRSZXBhaXJAQ1Rhc2tEYXRhQEBRRUFBWEFFQUtQRUFfSlBFQVBFQV9KSlBFQVZDRE1Ob2RlT2JqQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Rhc2tEYXRhOjpGaWx0ZXJDb29raWVzQmlnRW5vdWdoRm9yUkFJRDVSZXBhaXIodW5zaWduZWQgbG9uZyAmIF9fcHRyNjQsX19pbnQ2NCAqIF9fcHRyNjQsX19pbnQ2NCAqIF9fcHRyNjQgKiBfX3B0cjY0LGxvbmcsY2xhc3MgQ0RNTm9kZU9iaiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmlsdGVyQ29va2llc0JpZ0Vub3VnaEZvclJBSUQ1UmVwYWlyQENUYXNrRGF0YUBAUUVBQVhBRUFLUEVBX0pQRUFQRUFfSkpQRUFWQ0RNTm9kZU9iakBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RhdGFDYWNoZTo6RmluZENvb2tpZUFuZFJlbW92ZUZyb21MaXN0KF9faW50NjQsY2xhc3MgQ0xpc3Q8Y2xhc3MgQ0RNTm9kZU9iaiAqIF9fcHRyNjQsY2xhc3MgQ0RNTm9kZU9iaiAqIF9fcHRyNjQ+ICogX19wdHI2NCkgX19wdHI2NA0KKz9GaW5kQ29va2llQW5kUmVtb3ZlRnJvbUxpc3RAQ0RhdGFDYWNoZUBAUUVBQUhfSlBFQVY/JENMaXN0QFBFQVZDRE1Ob2RlT2JqQEBQRUFWMUBAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENEYXRhQ2FjaGU6OkZpbmREZXZpY2VJbnN0YW5jZUlkKF9faW50NjQpIF9fcHRyNjQNCis/RmluZERldmljZUluc3RhbmNlSWRAQ0RhdGFDYWNoZUBAUUVBQVBFQUdfSkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENEYXRhQ2FjaGU6OkZpbmREaXNrUHRyRnJvbURpc2tJZChfX2ludDY0LGNsYXNzIENETU5vZGVPYmogKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9GaW5kRGlza1B0ckZyb21EaXNrSWRAQ0RhdGFDYWNoZUBAUUVBQUhfSlBFQVBFQVZDRE1Ob2RlT2JqQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGF0YUNhY2hlOjpGaW5kRHJpdmVMZXR0ZXIoX19pbnQ2NCx1bnNpZ25lZCBzaG9ydCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RmluZERyaXZlTGV0dGVyQENEYXRhQ2FjaGVAQFFFQUFIX0pBRUFHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENUYXNrRGF0YTo6RmluZERyaXZlTGV0dGVyKF9faW50NjQsdW5zaWduZWQgc2hvcnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmREcml2ZUxldHRlckBDVGFza0RhdGFAQFFFQUFYX0pBRUFHQFoNCis7IGludCBfX2NkZWNsIEZpbmREcml2ZUxldHRlckhlbHBlcihzdHJ1Y3QgZHJpdmVsZXR0ZXJpbmZvICogX19wdHI2NCxpbnQsX19pbnQ2NCx1bnNpZ25lZCBzaG9ydCAmIF9fcHRyNjQpDQorP0ZpbmREcml2ZUxldHRlckhlbHBlckBAWUFIUEVBVWRyaXZlbGV0dGVyaW5mb0BASF9KQUVBR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENEYXRhQ2FjaGU6OkZpbmRGaWxlU3lzdGVtKF9faW50NjQsc3RydWN0IGZpbGVzeXN0ZW1pbmZvICYgX19wdHI2NCkgX19wdHI2NA0KKz9GaW5kRmlsZVN5c3RlbUBDRGF0YUNhY2hlQEBRRUFBSF9KQUVBVWZpbGVzeXN0ZW1pbmZvQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVGFza0RhdGE6OkZpbmRGaWxlU3lzdGVtKF9faW50NjQsc3RydWN0IGZpbGVzeXN0ZW1pbmZvICYgX19wdHI2NCkgX19wdHI2NA0KKz9GaW5kRmlsZVN5c3RlbUBDVGFza0RhdGFAQFFFQUFIX0pBRUFVZmlsZXN5c3RlbWluZm9AQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENEYXRhQ2FjaGU6OkZpbmRSZWdpb25QdHJGcm9tUmVnaW9uSWQoX19pbnQ2NCxjbGFzcyBDRE1Ob2RlT2JqICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmluZFJlZ2lvblB0ckZyb21SZWdpb25JZEBDRGF0YUNhY2hlQEBRRUFBSF9KUEVBUEVBVkNETU5vZGVPYmpAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENUYXNrRGF0YTo6RmluZFJlZ2lvblB0ckZyb21SZWdpb25JZChfX2ludDY0LGNsYXNzIENETU5vZGVPYmogKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9GaW5kUmVnaW9uUHRyRnJvbVJlZ2lvbklkQENUYXNrRGF0YUBAUUVBQUhfSlBFQVBFQVZDRE1Ob2RlT2JqQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGF0YUNhY2hlOjpGaW5kUmVnaW9uUHRyT25EaXNrRnJvbVJlZ2lvbklkKGNsYXNzIENETU5vZGVPYmogKiBfX3B0cjY0LF9faW50NjQsY2xhc3MgQ0RNTm9kZU9iaiAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCBfX1BPU0lUSU9OICogX19wdHI2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RmluZFJlZ2lvblB0ck9uRGlza0Zyb21SZWdpb25JZEBDRGF0YUNhY2hlQEBRRUFBSFBFQVZDRE1Ob2RlT2JqQEBfSlBFQVBFQVYyQEFFQVBFQVVfX1BPU0lUSU9OQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVGFza0RhdGE6OkdldEFzc2lnbmVkRHJpdmVMZXR0ZXIoX19pbnQ2NCx1bnNpZ25lZCBzaG9ydCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0QXNzaWduZWREcml2ZUxldHRlckBDVGFza0RhdGFAQFFFQUFIX0pBRUFHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Rhc2tEYXRhOjpHZXRCb290UG9ydCh2b2lkKSBfX3B0cjY0DQorP0dldEJvb3RQb3J0QENUYXNrRGF0YUBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1TbmFwaW46OkdldEJvdHRvbVZpZXdTdHlsZSh2b2lkKSBfX3B0cjY0DQorP0dldEJvdHRvbVZpZXdTdHlsZUBDRE1TbmFwaW5AQFFFQUFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENETU5vZGVPYmo6OkdldENvbG9yUmVmKHZvaWQpIF9fcHRyNjQNCis/R2V0Q29sb3JSZWZAQ0RNTm9kZU9iakBAUUVBQUtYWg0KKzsgcHVibGljOiBjbGFzcyBDRE1Ob2RlT2JqICogX19wdHI2NCBfX2NkZWNsIENUYXNrRGF0YTo6R2V0RE1EYXRhT2JqUHRyRnJvbUlkKF9faW50NjQpIF9fcHRyNjQNCis/R2V0RE1EYXRhT2JqUHRyRnJvbUlkQENUYXNrRGF0YUBAUUVBQVBFQVZDRE1Ob2RlT2JqQEBfSkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXREZXZpY2VTdGF0ZSh2b2lkKSBfX3B0cjY0DQorP0dldERldmljZVN0YXRlQENETU5vZGVPYmpAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENETU5vZGVPYmo6OkdldERldmljZVR5cGUodm9pZCkgX19wdHI2NA0KKz9HZXREZXZpY2VUeXBlQENETU5vZGVPYmpAQFFFQUFLWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENEYXRhQ2FjaGU6OkdldERpc2tDb29raWVzKHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LF9faW50NjQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREaXNrQ29va2llc0BDRGF0YUNhY2hlQEBJRUFBWEFFQUtQRUFQRUFfSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVGFza0RhdGE6OkdldERpc2tDb29raWVzKHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LF9faW50NjQgKiBfX3B0cjY0ICogX19wdHI2NCxpbnQsdW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/R2V0RGlza0Nvb2tpZXNAQ1Rhc2tEYXRhQEBRRUFBWEFFQUtQRUFQRUFfSkhLSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVGFza0RhdGE6OkdldERpc2tDb29raWVzRm9yU2lnKHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LF9faW50NjQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREaXNrQ29va2llc0ZvclNpZ0BDVGFza0RhdGFAQFFFQUFYQUVBS1BFQVBFQV9KQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENUYXNrRGF0YTo6R2V0RGlza0Nvb2tpZXNGb3JVcGdyYWRlKHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LF9faW50NjQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREaXNrQ29va2llc0ZvclVwZ3JhZGVAQ1Rhc2tEYXRhQEBRRUFBWEFFQUtQRUFQRUFfSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVGFza0RhdGE6OkdldERpc2tDb29raWVzVG9FbmNhcCh1bnNpZ25lZCBsb25nICYgX19wdHI2NCxfX2ludDY0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RGlza0Nvb2tpZXNUb0VuY2FwQENUYXNrRGF0YUBAUUVBQVhBRUFLUEVBUEVBX0pAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0RhdGFDYWNoZTo6R2V0RGlza0NvdW50KHZvaWQpIF9fcHRyNjQNCis/R2V0RGlza0NvdW50QENEYXRhQ2FjaGVAQFFFQUFLWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNTm9kZU9iajo6R2V0RGlza0luZm8oc3RydWN0IGRpc2tpbmZvZXggJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERpc2tJbmZvQENETU5vZGVPYmpAQFFFQUFIQUVBVWRpc2tpbmZvZXhAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVGFza0RhdGE6OkdldERpc2tJbmZvRnJvbVZvbENvb2tpZShfX2ludDY0LGludCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQsX19pbnQ2NCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsaW50KSBfX3B0cjY0DQorP0dldERpc2tJbmZvRnJvbVZvbENvb2tpZUBDVGFza0RhdGFAQFFFQUFYX0pBRUFIQUVBS1BFQVBFQV9KS0hAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1TbmFwaW46OkdldERpc2tTY2FsaW5nKHZvaWQpIF9fcHRyNjQNCis/R2V0RGlza1NjYWxpbmdAQ0RNU25hcGluQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENETU5vZGVPYmo6OkdldERpc2tTcGVjKHN0cnVjdCBkaXNrc3BlYyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RGlza1NwZWNAQ0RNTm9kZU9iakBAUUVBQUhBRUFVZGlza3NwZWNAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENETU5vZGVPYmo6OkdldERpc2tTdGF0dXMoY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RGlza1N0YXR1c0BDRE1Ob2RlT2JqQEBRRUFBSEFFQVZDU3RyaW5nQEBAWg0KKzsgaW50IF9fY2RlY2wgR2V0RGlza1N0YXR1c0hlbHBlcihzdHJ1Y3QgZGlza2luZm9leCAqIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQsaW50KQ0KKz9HZXREaXNrU3RhdHVzSGVscGVyQEBZQUhQRUFVZGlza2luZm9leEBAQUVBVkNTdHJpbmdAQEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RNTm9kZU9iajo6R2V0RGlza1R5cGVOYW1lKGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERpc2tUeXBlTmFtZUBDRE1Ob2RlT2JqQEBRRUFBWEFFQVZDU3RyaW5nQEBAWg0KKzsgdm9pZCBfX2NkZWNsIEdldERpc2tUeXBlTmFtZUhlbHBlcihzdHJ1Y3QgZGlza2luZm9leCAqIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQpDQorP0dldERpc2tUeXBlTmFtZUhlbHBlckBAWUFYUEVBVWRpc2tpbmZvZXhAQEFFQVZDU3RyaW5nQEBHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENETU5vZGVPYmo6OkdldERyaXZlTGV0dGVyKHVuc2lnbmVkIHNob3J0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXREcml2ZUxldHRlckBDRE1Ob2RlT2JqQEBRRUFBWEFFQUdAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0RhdGFDYWNoZTo6R2V0RHJpdmVMZXR0ZXJzKHNob3J0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP0dldERyaXZlTGV0dGVyc0BDRGF0YUNhY2hlQEBJRUFBWEFFQUZQRUFQRUFHR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVGFza0RhdGE6OkdldERyaXZlTGV0dGVycyhzaG9ydCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9HZXREcml2ZUxldHRlcnNAQ1Rhc2tEYXRhQEBRRUFBWEFFQUZQRUFQRUFHR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRFeHRlbmRlZFJlZ2lvbkNvbG9yKHZvaWQpIF9fcHRyNjQNCis/R2V0RXh0ZW5kZWRSZWdpb25Db2xvckBDRE1Ob2RlT2JqQEBRRUFBS1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENETU5vZGVPYmo6OkdldEV4dHJhUmVnaW9uU3RhdHVzKGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXRFeHRyYVJlZ2lvblN0YXR1c0BDRE1Ob2RlT2JqQEBRRUFBSEFFQVZDU3RyaW5nQEBIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENETU5vZGVPYmo6OkdldEZpbGVTeXN0ZW1MYWJlbChjbGFzcyBDU3RyaW5nICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRGaWxlU3lzdGVtTGFiZWxAQ0RNTm9kZU9iakBAUUVBQVhBRUFWQ1N0cmluZ0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENETU5vZGVPYmo6OkdldEZpbGVTeXN0ZW1OYW1lKGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEZpbGVTeXN0ZW1OYW1lQENETU5vZGVPYmpAQFFFQUFYQUVBVkNTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRGaWxlU3lzdGVtU2l6ZShsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRGaWxlU3lzdGVtU2l6ZUBDRE1Ob2RlT2JqQEBRRUFBWEFFQUpAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRGaWxlU3lzdGVtVHlwZSh2b2lkKSBfX3B0cjY0DQorP0dldEZpbGVTeXN0ZW1UeXBlQENETU5vZGVPYmpAQFFFQUFIWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENEYXRhQ2FjaGU6OkdldEZpbGVTeXN0ZW1UeXBlcyh1bnNpZ25lZCBsb25nICYgX19wdHI2NCxzdHJ1Y3QgaWZpbGVzeXN0ZW1pbmZvICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RmlsZVN5c3RlbVR5cGVzQENEYXRhQ2FjaGVAQFFFQUFYQUVBS1BFQVBFQVVpZmlsZXN5c3RlbWluZm9AQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVGFza0RhdGE6OkdldEZpbGVTeXN0ZW1UeXBlcyh1bnNpZ25lZCBsb25nICYgX19wdHI2NCxzdHJ1Y3QgaWZpbGVzeXN0ZW1pbmZvICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RmlsZVN5c3RlbVR5cGVzQENUYXNrRGF0YUBAUUVBQVhBRUFLUEVBUEVBVWlmaWxlc3lzdGVtaW5mb0BAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNU25hcGluOjpHZXRGaWx0ZXJUb2dnbGUodm9pZCkgX19wdHI2NA0KKz9HZXRGaWx0ZXJUb2dnbGVAQ0RNU25hcGluQEBRRUFBSFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRGbGFncyh2b2lkKSBfX3B0cjY0DQorP0dldEZsYWdzQENETU5vZGVPYmpAQFFFQUFKWFoNCis7IHB1YmxpYzogc2hvcnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRJVm9sdW1lQ2xpZW50VmVyc2lvbih2b2lkKSBfX3B0cjY0DQorP0dldElWb2x1bWVDbGllbnRWZXJzaW9uQENETU5vZGVPYmpAQFFFQUFGWFoNCis7IHB1YmxpYzogc2hvcnQgX19jZGVjbCBDVGFza0RhdGE6OkdldElWb2x1bWVDbGllbnRWZXJzaW9uKHZvaWQpIF9fcHRyNjQNCis/R2V0SVZvbHVtZUNsaWVudFZlcnNpb25AQ1Rhc2tEYXRhQEBRRUFBRlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIENETU5vZGVPYmo6OkdldEljb25JZChpbnQpIF9fcHRyNjQNCis/R2V0SWNvbklkQENETU5vZGVPYmpAQFFFQUFJSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENETU5vZGVPYmo6OkdldEltYWdlTnVtKHZvaWQpIF9fcHRyNjQNCis/R2V0SW1hZ2VOdW1AQ0RNTm9kZU9iakBAUUVBQUhYWg0KKzsgcHVibGljOiBfX2ludDY0IF9fY2RlY2wgQ0RhdGFDYWNoZTo6R2V0TGFzdEtub3duU3RhdGUoX19pbnQ2NCkgX19wdHI2NA0KKz9HZXRMYXN0S25vd25TdGF0ZUBDRGF0YUNhY2hlQEBRRUFBX0pfSkBaDQorOyBwdWJsaWM6IGVudW0gX0xBWU9VVF9UWVBFUyAgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRMYXlvdXRUeXBlKHZvaWQpIF9fcHRyNjQNCis/R2V0TGF5b3V0VHlwZUBDRE1Ob2RlT2JqQEBRRUFBP0FXNF9MQVlPVVRfVFlQRVNAQFhaDQorOyBwdWJsaWM6IF9faW50NjQgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRMZG1PYmplY3RJZCh2b2lkKSBfX3B0cjY0DQorP0dldExkbU9iamVjdElkQENETU5vZGVPYmpAQFFFQUFfSlhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENETVNuYXBpbjo6R2V0TGlzdEJlaGF2aW9yKHZvaWQpIF9fcHRyNjQNCis/R2V0TGlzdEJlaGF2aW9yQENETVNuYXBpbkBAUUVBQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0RNTm9kZU9iajo6R2V0TG9naWNhbERyaXZlQ291bnQodm9pZCkgX19wdHI2NA0KKz9HZXRMb2dpY2FsRHJpdmVDb3VudEBDRE1Ob2RlT2JqQEBRRUFBS1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRMb25nTmFtZShjbGFzcyBDU3RyaW5nICYgX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0TG9uZ05hbWVAQ0RNTm9kZU9iakBAUUVBQVhBRUFWQ1N0cmluZ0BASEBaDQorOyBwdWJsaWM6IHN0cnVjdCBIV05EX18gKiBfX3B0cjY0IF9fY2RlY2wgQ0RNQ29tcG9uZW50RGF0YTo6R2V0TU1DV2luZG93KHZvaWQpIF9fcHRyNjQNCis/R2V0TU1DV2luZG93QENETUNvbXBvbmVudERhdGFAQFFFQUFQRUFVSFdORF9fQEBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RNTm9kZU9iajo6R2V0TWF4QWRqdXN0ZWRGcmVlU2l6ZShfX2ludDY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRNYXhBZGp1c3RlZEZyZWVTaXplQENETU5vZGVPYmpAQFFFQUFYQUVBX0pAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0RNTm9kZU9iajo6R2V0TWF4UGFydGl0aW9uQ291bnQodm9pZCkgX19wdHI2NA0KKz9HZXRNYXhQYXJ0aXRpb25Db3VudEBDRE1Ob2RlT2JqQEBRRUFBS1haDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDRGF0YUNhY2hlOjpHZXRNaW5NYXhQYXJ0aXRpb25TaXplcyhfX2ludDY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE1pbk1heFBhcnRpdGlvblNpemVzQENEYXRhQ2FjaGVAQElFQUFYX0pBRUFLMUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVGFza0RhdGE6OkdldE1pbk1heFBhcnRpdGlvblNpemVzKF9faW50NjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TWluTWF4UGFydGl0aW9uU2l6ZXNAQ1Rhc2tEYXRhQEBRRUFBWF9KQUVBSzFAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RNTm9kZU9iajo6R2V0TmFtZShjbGFzcyBDU3RyaW5nICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXROYW1lQENETU5vZGVPYmpAQFFFQUFYQUVBVkNTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXROdW1NZW1iZXJzKHZvaWQpIF9fcHRyNjQNCis/R2V0TnVtTWVtYmVyc0BDRE1Ob2RlT2JqQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXROdW1SZWdpb25zKHZvaWQpIF9fcHRyNjQNCis/R2V0TnVtUmVnaW9uc0BDRE1Ob2RlT2JqQEBRRUFBS1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRPYmplY3RJZChfX2ludDY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRPYmplY3RJZEBDRE1Ob2RlT2JqQEBRRUFBWEFFQV9KQFoNCis7IHB1YmxpYzogY2xhc3MgQ1duZCAqIF9fcHRyNjQgX19jZGVjbCBDVGFza0RhdGE6OkdldE9jeEZyYW1lQ1duZFB0cih2b2lkKSBfX3B0cjY0DQorP0dldE9jeEZyYW1lQ1duZFB0ckBDVGFza0RhdGFAQFFFQUFQRUFWQ1duZEBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0RNTm9kZU9iaiAqIF9fcHRyNjQgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRQYXJlbnREaXNrUHRyKHZvaWQpIF9fcHRyNjQNCis/R2V0UGFyZW50RGlza1B0ckBDRE1Ob2RlT2JqQEBRRUFBUEVBVjFAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0RNTm9kZU9iaiAqIF9fcHRyNjQgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRQYXJlbnRWb2x1bWVQdHIodm9pZCkgX19wdHI2NA0KKz9HZXRQYXJlbnRWb2x1bWVQdHJAQ0RNTm9kZU9iakBAUUVBQVBFQVYxQFhaDQorOyBwdWJsaWM6IGVudW0gX1BBUlRJVElPTlNUWUxFICBfX2NkZWNsIENETU5vZGVPYmo6OkdldFBhcnRpdGlvblN0eWxlKHZvaWQpIF9fcHRyNjQNCis/R2V0UGFydGl0aW9uU3R5bGVAQ0RNTm9kZU9iakBAUUVBQT9BVzRfUEFSVElUSU9OU1RZTEVAQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRQYXJ0aXRpb25TdHlsZVN0cmluZyhjbGFzcyBDU3RyaW5nICYgX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0UGFydGl0aW9uU3R5bGVTdHJpbmdAQ0RNTm9kZU9iakBAUUVBQVhBRUFWQ1N0cmluZ0BASEBaDQorOyB2b2lkIF9fY2RlY2wgR2V0UGFydGl0aW9uU3R5bGVTdHJpbmdIZWxwZXIoZW51bSBfUEFSVElUSU9OU1RZTEUsY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQsaW50LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQpDQorP0dldFBhcnRpdGlvblN0eWxlU3RyaW5nSGVscGVyQEBZQVhXNF9QQVJUSVRJT05TVFlMRUBAQUVBVkNTdHJpbmdAQEhLS0hAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRQYXR0ZXJuUmVmKHZvaWQpIF9fcHRyNjQNCis/R2V0UGF0dGVyblJlZkBDRE1Ob2RlT2JqQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENETU5vZGVPYmo6OkdldFBvcnQodm9pZCkgX19wdHI2NA0KKz9HZXRQb3J0QENETU5vZGVPYmpAQFFFQUFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENETU5vZGVPYmo6OkdldFByaW1hcnlQYXJ0aXRpb25Db3VudCh2b2lkKSBfX3B0cjY0DQorP0dldFByaW1hcnlQYXJ0aXRpb25Db3VudEBDRE1Ob2RlT2JqQEBRRUFBS1haDQorR2V0UHJvcGVydHlQYWdlRGF0YQ0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Rhc2tEYXRhOjpHZXRSZWdpb25Db2xvclN0cnVjdFB0cihzdHJ1Y3QgX1JFR0lPTl9DT0xPUlMgKiBfX3B0cjY0ICogX19wdHI2NCxpbnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFJlZ2lvbkNvbG9yU3RydWN0UHRyQENUYXNrRGF0YUBAUUVBQVhQRUFQRUFVX1JFR0lPTl9DT0xPUlNAQEFFQUhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRSZWdpb25JbmZvKHN0cnVjdCByZWdpb25pbmZvZXggJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFJlZ2lvbkluZm9AQ0RNTm9kZU9iakBAUUVBQUhBRUFVcmVnaW9uaW5mb2V4QEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1TbmFwaW46OkdldFJlZ2lvblNjYWxpbmcodm9pZCkgX19wdHI2NA0KKz9HZXRSZWdpb25TY2FsaW5nQENETVNuYXBpbkBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRSZXN1bHRTdHJpbmdBcnJheShjbGFzcyBDU3RyaW5nQXJyYXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFJlc3VsdFN0cmluZ0FycmF5QENETU5vZGVPYmpAQFFFQUFIQUVBVkNTdHJpbmdBcnJheUBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQgX19jZGVjbCBDU2VydmVyUmVxdWVzdHM6OkdldFJldmVydERpc2tOYW1lKHZvaWQpIF9fcHRyNjQNCis/R2V0UmV2ZXJ0RGlza05hbWVAQ1NlcnZlclJlcXVlc3RzQEBRRUFBQUVBVkNTdHJpbmdAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENTdHJpbmcgIF9fY2RlY2wgQ0RhdGFDYWNoZTo6R2V0U2VydmVyTmFtZSh2b2lkKSBfX3B0cjY0DQorP0dldFNlcnZlck5hbWVAQ0RhdGFDYWNoZUBAUUVBQT9BVkNTdHJpbmdAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENTdHJpbmcgIF9fY2RlY2wgQ1Rhc2tEYXRhOjpHZXRTZXJ2ZXJOYW1lKHZvaWQpIF9fcHRyNjQNCis/R2V0U2VydmVyTmFtZUBDVGFza0RhdGFAQFFFQUE/QVZDU3RyaW5nQEBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RNTm9kZU9iajo6R2V0U2hvcnROYW1lKGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFNob3J0TmFtZUBDRE1Ob2RlT2JqQEBRRUFBWEFFQVZDU3RyaW5nQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RNTm9kZU9iajo6R2V0U2l6ZShsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRTaXplQENETU5vZGVPYmpAQFFFQUFYQUVBSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRTaXplKF9faW50NjQgJiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXRTaXplQENETU5vZGVPYmpAQFFFQUFYQUVBX0pIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENETU5vZGVPYmo6OkdldFNpemVTdHJpbmcoY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0U2l6ZVN0cmluZ0BDRE1Ob2RlT2JqQEBRRUFBWEFFQVZDU3RyaW5nQEBAWg0KKzsgcHVibGljOiBfX2ludDY0IF9fY2RlY2wgQ0RNTm9kZU9iajo6R2V0U3RhcnRPZmZzZXQodm9pZCkgX19wdHI2NA0KKz9HZXRTdGFydE9mZnNldEBDRE1Ob2RlT2JqQEBRRUFBX0pYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRTdGF0dXModm9pZCkgX19wdHI2NA0KKz9HZXRTdGF0dXNAQ0RNTm9kZU9iakBAUUVBQUhYWg0KKzsgcHVibGljOiBlbnVtIF9TVE9SQUdFX1RZUEVTICBfX2NkZWNsIENETU5vZGVPYmo6OkdldFN0b3JhZ2VUeXBlKHZvaWQpIF9fcHRyNjQNCis/R2V0U3RvcmFnZVR5cGVAQ0RNTm9kZU9iakBAUUVBQT9BVzRfU1RPUkFHRV9UWVBFU0BAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENETU5vZGVPYmo6OkdldFN0b3JhZ2VUeXBlKGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXRTdG9yYWdlVHlwZUBDRE1Ob2RlT2JqQEBRRUFBWEFFQVZDU3RyaW5nQEBIQFoNCis7IGNsYXNzIENTdHJpbmcgIF9fY2RlY2wgR2V0U3RyaW5nRnJvbVJjKHVuc2lnbmVkIGxvbmcpDQorP0dldFN0cmluZ0Zyb21SY0BAWUE/QVZDU3RyaW5nQEBLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNU25hcGluOjpHZXRUb3BWaWV3U3R5bGUodm9pZCkgX19wdHI2NA0KKz9HZXRUb3BWaWV3U3R5bGVAQ0RNU25hcGluQEBRRUFBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDVGFza0RhdGE6OkdldFVJU3RhdGUodm9pZCkgX19wdHI2NA0KKz9HZXRVSVN0YXRlQENUYXNrRGF0YUBAUUVBQUtYWg0KKzsgcHVibGljOiBfX2ludDY0IF9fY2RlY2wgQ0RNTm9kZU9iajo6R2V0VW5hbGxvY1NwYWNlKGludCkgX19wdHI2NA0KKz9HZXRVbmFsbG9jU3BhY2VAQ0RNTm9kZU9iakBAUUVBQV9KSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDRGF0YUNhY2hlOjpHZXRWb2x1bWVDb29raWVzKHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LF9faW50NjQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRWb2x1bWVDb29raWVzQENEYXRhQ2FjaGVAQElFQUFYQUVBS1BFQVBFQV9KQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENEYXRhQ2FjaGU6OkdldFZvbHVtZUNvdW50KHZvaWQpIF9fcHRyNjQNCis/R2V0Vm9sdW1lQ291bnRAQ0RhdGFDYWNoZUBAUUVBQUtYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRWb2x1bWVJbmZvKHN0cnVjdCB2b2x1bWVpbmZvICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRWb2x1bWVJbmZvQENETU5vZGVPYmpAQFFFQUFIQUVBVXZvbHVtZWluZm9AQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENETU5vZGVPYmo6OkdldFZvbHVtZVN0YXR1cyhjbGFzcyBDU3RyaW5nICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRWb2x1bWVTdGF0dXNAQ0RNTm9kZU9iakBAUUVBQUhBRUFWQ1N0cmluZ0BAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNU25hcGluOjpHZXRXYWl0Q3Vyc29yKHZvaWQpIF9fcHRyNjQNCis/R2V0V2FpdEN1cnNvckBDRE1TbmFwaW5AQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNTm9kZU9iajo6SGFzRXh0ZW5kZWRQYXJ0aXRpb24odm9pZCkgX19wdHI2NA0KKz9IYXNFeHRlbmRlZFBhcnRpdGlvbkBDRE1Ob2RlT2JqQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENEYXRhQ2FjaGU6Okhhc05URlN3aXRoRHJpdmVMZXR0ZXIodm9pZCkgX19wdHI2NA0KKz9IYXNOVEZTd2l0aERyaXZlTGV0dGVyQENEYXRhQ2FjaGVAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Rhc2tEYXRhOjpIYXNOVEZTd2l0aERyaXZlTGV0dGVyKHZvaWQpIF9fcHRyNjQNCis/SGFzTlRGU3dpdGhEcml2ZUxldHRlckBDVGFza0RhdGFAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RhdGFDYWNoZTo6SGFzVk1EaXNrKHZvaWQpIF9fcHRyNjQNCis/SGFzVk1EaXNrQENEYXRhQ2FjaGVAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNTm9kZU9iajo6SXNBY3RpdmUodm9pZCkgX19wdHI2NA0KKz9Jc0FjdGl2ZUBDRE1Ob2RlT2JqQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENEYXRhQ2FjaGU6OklzQWxwaGEodm9pZCkgX19wdHI2NA0KKz9Jc0FscGhhQENEYXRhQ2FjaGVAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Rhc2tEYXRhOjpJc0FscGhhKHZvaWQpIF9fcHRyNjQNCis/SXNBbHBoYUBDVGFza0RhdGFAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNTm9kZU9iajo6SXNDdXJyQm9vdFZvbHVtZSh2b2lkKSBfX3B0cjY0DQorP0lzQ3VyckJvb3RWb2x1bWVAQ0RNTm9kZU9iakBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpJc0N1cnJTeXN0ZW1Wb2x1bWUodm9pZCkgX19wdHI2NA0KKz9Jc0N1cnJTeXN0ZW1Wb2x1bWVAQ0RNTm9kZU9iakBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpJc0Rpc2tFbXB0eSh2b2lkKSBfX3B0cjY0DQorP0lzRGlza0VtcHR5QENETU5vZGVPYmpAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RhdGFDYWNoZTo6SXNEeW5hbWljMTM5NCh2b2lkKSBfX3B0cjY0DQorP0lzRHluYW1pYzEzOTRAQ0RhdGFDYWNoZUBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpJc0VFQ292ZXJlZEdQVERpc2sodm9pZCkgX19wdHI2NA0KKz9Jc0VFQ292ZXJlZEdQVERpc2tAQ0RNTm9kZU9iakBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpJc0VTUFBhcnRpdGlvbih2b2lkKSBfX3B0cjY0DQorP0lzRVNQUGFydGl0aW9uQENETU5vZGVPYmpAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RhdGFDYWNoZTo6SXNFZmkodm9pZCkgX19wdHI2NA0KKz9Jc0VmaUBDRGF0YUNhY2hlQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENUYXNrRGF0YTo6SXNFZmkodm9pZCkgX19wdHI2NA0KKz9Jc0VmaUBDVGFza0RhdGFAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNTm9kZU9iajo6SXNGVFZvbHVtZSh2b2lkKSBfX3B0cjY0DQorP0lzRlRWb2x1bWVAQ0RNTm9kZU9iakBAUUVBQUhYWg0KK0lzRmFpbFBvcHVwTWdtdFN1cHBvcnRlZA0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpJc0Zha2VWb2x1bWUodm9pZCkgX19wdHI2NA0KKz9Jc0Zha2VWb2x1bWVAQ0RNTm9kZU9iakBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpJc0ZpcnN0RnJlZVJlZ2lvbih2b2lkKSBfX3B0cjY0DQorP0lzRmlyc3RGcmVlUmVnaW9uQENETU5vZGVPYmpAQFFFQUFIWFoNCis7IGludCBfX2NkZWNsIElzSGlkZGVuUmVnaW9uKHN0cnVjdCByZWdpb25pbmZvZXggJiBfX3B0cjY0KQ0KKz9Jc0hpZGRlblJlZ2lvbkBAWUFIQUVBVXJlZ2lvbmluZm9leEBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNTm9kZU9iajo6SXNIaWRkZW5SZWdpb24odm9pZCkgX19wdHI2NA0KKz9Jc0hpZGRlblJlZ2lvbkBDRE1Ob2RlT2JqQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENETU5vZGVPYmo6OklzSW5GbHV4KHZvaWQpIF9fcHRyNjQNCis/SXNJbkZsdXhAQ0RNTm9kZU9iakBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVGFza0RhdGE6OklzTG9jYWxNYWNoaW5lKHZvaWQpIF9fcHRyNjQNCis/SXNMb2NhbE1hY2hpbmVAQ1Rhc2tEYXRhQEBRRUFBSFhaDQorOyBpbnQgX19jZGVjbCBJc01ickVFUGFydGl0aW9uKHN0cnVjdCByZWdpb25pbmZvZXggJiBfX3B0cjY0KQ0KKz9Jc01ickVFUGFydGl0aW9uQEBZQUhBRUFVcmVnaW9uaW5mb2V4QEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpJc01ickVFUGFydGl0aW9uKHZvaWQpIF9fcHRyNjQNCis/SXNNYnJFRVBhcnRpdGlvbkBDRE1Ob2RlT2JqQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENETU5vZGVPYmo6OklzTWVtYmVyKGNsYXNzIENETU5vZGVPYmogKiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzTWVtYmVyQENETU5vZGVPYmpAQFFFQUFIUEVBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNTm9kZU9iajo6SXNORUNfOThEaXNrKHZvaWQpIF9fcHRyNjQNCis/SXNORUNfOThEaXNrQENETU5vZGVPYmpAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RhdGFDYWNoZTo6SXNORUNfOThTZXJ2ZXIodm9pZCkgX19wdHI2NA0KKz9Jc05FQ185OFNlcnZlckBDRGF0YUNhY2hlQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENUYXNrRGF0YTo6SXNORUNfOThTZXJ2ZXIodm9pZCkgX19wdHI2NA0KKz9Jc05FQ185OFNlcnZlckBDVGFza0RhdGFAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Rhc2tEYXRhOjpJc05UU2VydmVyKHZvaWQpIF9fcHRyNjQNCis/SXNOVFNlcnZlckBDVGFza0RhdGFAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNTm9kZU9iajo6SXNPZW1QYXJ0aXRpb24odm9pZCkgX19wdHI2NA0KKz9Jc09lbVBhcnRpdGlvbkBDRE1Ob2RlT2JqQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENEYXRhQ2FjaGU6OklzUGVyc29uYWxPckxhcFRvcFNlcnZlcih2b2lkKSBfX3B0cjY0DQorP0lzUGVyc29uYWxPckxhcFRvcFNlcnZlckBDRGF0YUNhY2hlQEBRRUFBSFhaDQorSXNSZXF1ZXN0UGVuZGluZw0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1Ob2RlT2JqOjpJc1JldmVydGFibGUodm9pZCkgX19wdHI2NA0KKz9Jc1JldmVydGFibGVAQ0RNTm9kZU9iakBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVGFza0RhdGE6OklzU2VjdXJlU3lzdGVtUGFydGl0aW9uKHZvaWQpIF9fcHRyNjQNCis/SXNTZWN1cmVTeXN0ZW1QYXJ0aXRpb25AQ1Rhc2tEYXRhQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENETU5vZGVPYmo6OklzVW5rbm93blBhcnRpdGlvbih2b2lkKSBfX3B0cjY0DQorP0lzVW5rbm93blBhcnRpdGlvbkBDRE1Ob2RlT2JqQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENETU5vZGVPYmo6OklzVXBncmFkZWFibGUodm9pZCkgX19wdHI2NA0KKz9Jc1VwZ3JhZGVhYmxlQENETU5vZGVPYmpAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Rhc2tEYXRhOjpJc1dvbGZwYWNrKHZvaWQpIF9fcHRyNjQNCis/SXNXb2xmcGFja0BDVGFza0RhdGFAQFFFQUFIWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENETUNvbXBvbmVudERhdGE6OkxvYWREYXRhKGxvbmcpIF9fcHRyNjQNCis/TG9hZERhdGFAQ0RNQ29tcG9uZW50RGF0YUBAUUVBQVhKQFoNCitMb2FkUHJvcGVydHlQYWdlRGF0YQ0KKzsgdm9pZCBfX2NkZWNsIFBhcnNlRGV2aWNlTmFtZShpbnQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP1BhcnNlRGV2aWNlTmFtZUBAWUFYUEVBSDAwUEVBR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29udGV4dE1lbnU6OlBvcFVwSW5pdChjbGFzcyBDRE1Ob2RlT2JqICogX19wdHI2NCxpbnQgJiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9Qb3BVcEluaXRAQ0NvbnRleHRNZW51QEBRRUFBWFBFQVZDRE1Ob2RlT2JqQEBBRUFISEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRGF0YUNhY2hlOjpQb3B1bGF0ZURpc2tHcm91cERhdGEoc3RydWN0IERJU0tfR1JPVVBfREFUQSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UG9wdWxhdGVEaXNrR3JvdXBEYXRhQENEYXRhQ2FjaGVAQFFFQUFYUEVBVURJU0tfR1JPVVBfREFUQUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENEYXRhQ2FjaGU6OlBvcHVsYXRlRW5jYXBzdWxhdGVEYXRhKHN0cnVjdCBFTkNBUFNVTEFURV9EQVRBICogX19wdHI2NCkgX19wdHI2NA0KKz9Qb3B1bGF0ZUVuY2Fwc3VsYXRlRGF0YUBDRGF0YUNhY2hlQEBRRUFBWFBFQVVFTkNBUFNVTEFURV9EQVRBQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RNTm9kZU9iajo6UmVjYWxjdWxhdGVTcGFjZSh2b2lkKSBfX3B0cjY0DQorP1JlY2FsY3VsYXRlU3BhY2VAQ0RNTm9kZU9iakBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RNQ29tcG9uZW50RGF0YTo6UmVmcmVzaERpc2tWaWV3KHZvaWQpIF9fcHRyNjQNCis/UmVmcmVzaERpc2tWaWV3QENETUNvbXBvbmVudERhdGFAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDb250ZXh0TWVudTo6UmVmcmVzaEZpbGVTeXMoX19pbnQ2NCkgX19wdHI2NA0KKz9SZWZyZXNoRmlsZVN5c0BDQ29udGV4dE1lbnVAQFFFQUFYX0pAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RNQ29tcG9uZW50RGF0YTo6UmVsb2FkRGF0YSh2b2lkKSBfX3B0cjY0DQorP1JlbG9hZERhdGFAQ0RNQ29tcG9uZW50RGF0YUBAUUVBQVhYWg0KKzsgX19pbnQ2NCBfX2NkZWNsIFJvdW5kVXBUb01CKF9faW50NjQpDQorP1JvdW5kVXBUb01CQEBZQV9KX0pAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RNU25hcGluOjpTZXREZXNjcmlwdGlvbkJhclRleHQodm9pZCkgX19wdHI2NA0KKz9TZXREZXNjcmlwdGlvbkJhclRleHRAQ0RNU25hcGluQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRGF0YUNhY2hlOjpTZXREaXNrTGlzdChzdHJ1Y3QgZGlza2luZm9leCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXREaXNrTGlzdEBDRGF0YUNhY2hlQEBRRUFBWFBFQVVkaXNraW5mb2V4QEBLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENEYXRhQ2FjaGU6OlNldERyaXZlTGV0dGVySW5Vc2UodW5zaWduZWQgc2hvcnQsaW50KSBfX3B0cjY0DQorP1NldERyaXZlTGV0dGVySW5Vc2VAQ0RhdGFDYWNoZUBAUUVBQVhHSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRE1Ob2RlT2JqOjpTZXRGU0lkKF9faW50NjQpIF9fcHRyNjQNCis/U2V0RlNJZEBDRE1Ob2RlT2JqQEBRRUFBWF9KQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENETUNvbXBvbmVudERhdGE6OlNldE9jeFZpZXdUeXBlKHZvaWQpIF9fcHRyNjQNCis/U2V0T2N4Vmlld1R5cGVAQ0RNQ29tcG9uZW50RGF0YUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RNQ29tcG9uZW50RGF0YTo6U2V0T2N4Vmlld1R5cGVGb3JjZSh2b2lkKSBfX3B0cjY0DQorP1NldE9jeFZpZXdUeXBlRm9yY2VAQ0RNQ29tcG9uZW50RGF0YUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Rhc2tEYXRhOjpTZXRVSVN0YXRlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0VUlTdGF0ZUBDVGFza0RhdGFAQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRGF0YUNhY2hlOjpTZXRWb2x1bWVMaXN0KHN0cnVjdCB2b2x1bWVpbmZvICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFZvbHVtZUxpc3RAQ0RhdGFDYWNoZUBAUUVBQVhQRUFVdm9sdW1laW5mb0BAS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQ29udGV4dE1lbnU6OlNob3dDb250ZXh0TWVudShjbGFzcyBDV25kICogX19wdHI2NCxsb25nLGxvbmcsX19pbnQ2NCkgX19wdHI2NA0KKz9TaG93Q29udGV4dE1lbnVAQ0NvbnRleHRNZW51QEBRRUFBSlBFQVZDV25kQEBKSl9KQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RhdGFDYWNoZTo6U3VwcG9ydEdwdCh2b2lkKSBfX3B0cjY0DQorP1N1cHBvcnRHcHRAQ0RhdGFDYWNoZUBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVGFza0RhdGE6OlN1cHBvcnRHcHQodm9pZCkgX19wdHI2NA0KKz9TdXBwb3J0R3B0QENUYXNrRGF0YUBAUUVBQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RNQ29tcG9uZW50RGF0YTo6VUlTdGF0ZUNoYW5nZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1VJU3RhdGVDaGFuZ2VAQ0RNQ29tcG9uZW50RGF0YUBAUUVBQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENETVNuYXBpbjo6VXBEYXRlQ29uc29sZVZpZXcodm9pZCkgX19wdHI2NA0KKz9VcERhdGVDb25zb2xlVmlld0BDRE1TbmFwaW5AQFFFQUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNTm9kZU9iajo6Vm9sdW1lQ29udGFpbnNBY3RpdmVSZWdpb24odm9pZCkgX19wdHI2NA0KKz9Wb2x1bWVDb250YWluc0FjdGl2ZVJlZ2lvbkBDRE1Ob2RlT2JqQEBRRUFBSFhaDQorOyBpbnQgX19jZGVjbCBuYW1lY21wKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP25hbWVjbXBAQFlBSFBFQkcwQFoNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZG1pbnRmLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2RtaW50Zi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWEyOGM0NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2RtaW50Zi5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBETUlOVEYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERNSU5URi5kbGwNCitFWFBPUlRTDQorR2V0UHJveHlEbGxJbmZvDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kbWl2Y2l0Zi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kbWl2Y2l0Zi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTAxZWQ2NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2RtaXZjaXRmLmRlZgpAQCAtMCwwICsxLDQyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGRtaXZjaXRmLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkbWl2Y2l0Zi5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRGF0YUNhY2hlOjpBZGRMRE1PYmpNYXBFbnRyeShzdHJ1Y3QgX0xETV9PQkpfTUFQX0VOVFJZICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRMRE1PYmpNYXBFbnRyeUBDRGF0YUNhY2hlQEBRRUFBWFBFQVVfTERNX09CSl9NQVBfRU5UUllAQEBaDQorQ3JlYXRlRGF0YUNhY2hlWA0KK0NyZWF0ZVNlcnZlclJlcXVlc3RzWA0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1TbmFwaW46OkdldEJvdHRvbVZpZXdTdHlsZSh2b2lkKSBfX3B0cjY0DQorP0dldEJvdHRvbVZpZXdTdHlsZUBDRE1TbmFwaW5AQFFFQUFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENEYXRhQ2FjaGU6OkdldERpc2tDb3VudCh2b2lkKSBfX3B0cjY0DQorP0dldERpc2tDb3VudEBDRGF0YUNhY2hlQEBRRUFBS1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENETVNuYXBpbjo6R2V0RGlza1NjYWxpbmcodm9pZCkgX19wdHI2NA0KKz9HZXREaXNrU2NhbGluZ0BDRE1TbmFwaW5AQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNU25hcGluOjpHZXRGaWx0ZXJUb2dnbGUodm9pZCkgX19wdHI2NA0KKz9HZXRGaWx0ZXJUb2dnbGVAQ0RNU25hcGluQEBRRUFBSFhaDQorOyBwdWJsaWM6IF9faW50NjQgX19jZGVjbCBDRE1Ob2RlT2JqOjpHZXRMZG1PYmplY3RJZCh2b2lkKSBfX3B0cjY0DQorP0dldExkbU9iamVjdElkQENETU5vZGVPYmpAQFFFQUFfSlhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENETVNuYXBpbjo6R2V0TGlzdEJlaGF2aW9yKHZvaWQpIF9fcHRyNjQNCis/R2V0TGlzdEJlaGF2aW9yQENETVNuYXBpbkBAUUVBQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0RNTm9kZU9iajo6R2V0TnVtTWVtYmVycyh2b2lkKSBfX3B0cjY0DQorP0dldE51bU1lbWJlcnNAQ0RNTm9kZU9iakBAUUVBQUtYWg0KKzsgcHVibGljOiBjbGFzcyBDV25kICogX19wdHI2NCBfX2NkZWNsIENUYXNrRGF0YTo6R2V0T2N4RnJhbWVDV25kUHRyKHZvaWQpIF9fcHRyNjQNCis/R2V0T2N4RnJhbWVDV25kUHRyQENUYXNrRGF0YUBAUUVBQVBFQVZDV25kQEBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Rhc2tEYXRhOjpHZXRSZWdpb25Db2xvclN0cnVjdFB0cihzdHJ1Y3QgX1JFR0lPTl9DT0xPUlMgKiBfX3B0cjY0ICogX19wdHI2NCxpbnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFJlZ2lvbkNvbG9yU3RydWN0UHRyQENUYXNrRGF0YUBAUUVBQVhQRUFQRUFVX1JFR0lPTl9DT0xPUlNAQEFFQUhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1TbmFwaW46OkdldFJlZ2lvblNjYWxpbmcodm9pZCkgX19wdHI2NA0KKz9HZXRSZWdpb25TY2FsaW5nQENETVNuYXBpbkBAUUVBQUhYWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nICBfX2NkZWNsIENEYXRhQ2FjaGU6OkdldFNlcnZlck5hbWUodm9pZCkgX19wdHI2NA0KKz9HZXRTZXJ2ZXJOYW1lQENEYXRhQ2FjaGVAQFFFQUE/QVZDU3RyaW5nQEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1TbmFwaW46OkdldFRvcFZpZXdTdHlsZSh2b2lkKSBfX3B0cjY0DQorP0dldFRvcFZpZXdTdHlsZUBDRE1TbmFwaW5AQFFFQUFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENEYXRhQ2FjaGU6OkdldFZvbHVtZUNvdW50KHZvaWQpIF9fcHRyNjQNCis/R2V0Vm9sdW1lQ291bnRAQ0RhdGFDYWNoZUBAUUVBQUtYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1TbmFwaW46OkdldFdhaXRDdXJzb3Iodm9pZCkgX19wdHI2NA0KKz9HZXRXYWl0Q3Vyc29yQENETVNuYXBpbkBAUUVBQUhYWg0KK0hyR2V0RXJyb3JEYXRhDQorTG9hZFByb3BlcnR5UGFnZURhdGENCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kbW9jeC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kbW9jeC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmNkOWFiNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Rtb2N4LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERNT0NYLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBETU9DWC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kbXNlcnZlci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kbXNlcnZlci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTg3NmIxNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Rtc2VydmVyLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZG1zZXJ2ZXIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGRtc2VydmVyLmRsbA0KK0VYUE9SVFMNCitTZXJ2aWNlTWFpbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RtdXRpbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kbXV0aWwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE0M2ZjZTkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kbXV0aWwuZGVmCkBAIC0wLDAgKzEsMzcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZG11dGlsLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkbXV0aWwuZGxsDQorRVhQT1JUUw0KK0NvRGlzYWJsZUR5bmFtaWNWb2x1bWVzDQorQWRkRW50cnlCb290RmlsZUdwdA0KK0FkZEVudHJ5Qm9vdEZpbGVNYnINCitEaXNwbGF5RXJyb3INCitEaXNwbGF5RXJyb3JSZ3N6dw0KK0RsbE1haW4NCitEbUNvbW1vbk50T3BlbkZpbGUNCitEeW5hbWljU3VwcG9ydA0KK0ZUcmFjZQ0KK0ZUcmFjZVZhbGlzdA0KK0ZyZWVSZ3N6dw0KK0dldEVycm9yRGF0YQ0KK0dldEluc3RhbGxEaXJlY3RvcnlQYXRoDQorR2V0U3lzdGVtVm9sdW1lDQorSXNQZXJzb25hbFNLVQ0KK0xvd0FjcXVpcmVQcml2aWxlZ2UNCitMb3dHZXRQYXJ0aXRpb25JbmZvDQorTG93TnRBZGRCb290RW50cnkNCitMb3dOdFJlYWRGaWxlDQorTG93TnRSZWFkT25seUF0dHJpYnV0ZU9mZg0KK0xvd050V3JpdGVGaWxlDQorUmdzendEdXBSZ3N6dw0KK1Jnc3p3RnJvbUFyZ3MNCitSZ3N6d0Zyb21WYWxpc3QNCitTaG93TWVzc2FnZQ0KK1Nob3dNZXNzYWdlVmFsaXN0DQorU3p3RHVwU3p3DQorU3p3RnJvbVN6YQ0KK1RyYW5zbGF0ZUVycm9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZG12ZHNpdGYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZG12ZHNpdGYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA4YWQ2MTgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kbXZkc2l0Zi5kZWYKQEAgLTAsMCArMSw0MCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBkbWl2Y2l0Zi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZG1pdmNpdGYuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RhdGFDYWNoZTo6QWRkTERNT2JqTWFwRW50cnkoc3RydWN0IF9MRE1fT0JKX01BUF9FTlRSWSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkTERNT2JqTWFwRW50cnlAQ0RhdGFDYWNoZUBAUUVBQVhQRUFVX0xETV9PQkpfTUFQX0VOVFJZQEBAWg0KK0NyZWF0ZURhdGFDYWNoZVoNCitDcmVhdGVTZXJ2ZXJSZXF1ZXN0c1oNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNU25hcGluOjpHZXRCb3R0b21WaWV3U3R5bGUodm9pZCkgX19wdHI2NA0KKz9HZXRCb3R0b21WaWV3U3R5bGVAQ0RNU25hcGluQEBRRUFBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRGF0YUNhY2hlOjpHZXREaXNrQ291bnQodm9pZCkgX19wdHI2NA0KKz9HZXREaXNrQ291bnRAQ0RhdGFDYWNoZUBAUUVBQUtYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1TbmFwaW46OkdldERpc2tTY2FsaW5nKHZvaWQpIF9fcHRyNjQNCis/R2V0RGlza1NjYWxpbmdAQ0RNU25hcGluQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENETVNuYXBpbjo6R2V0RmlsdGVyVG9nZ2xlKHZvaWQpIF9fcHRyNjQNCis/R2V0RmlsdGVyVG9nZ2xlQENETVNuYXBpbkBAUUVBQUhYWg0KKzsgcHVibGljOiBfX2ludDY0IF9fY2RlY2wgQ0RNTm9kZU9iajo6R2V0TGRtT2JqZWN0SWQodm9pZCkgX19wdHI2NA0KKz9HZXRMZG1PYmplY3RJZEBDRE1Ob2RlT2JqQEBRRUFBX0pYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRE1TbmFwaW46OkdldExpc3RCZWhhdmlvcih2b2lkKSBfX3B0cjY0DQorP0dldExpc3RCZWhhdmlvckBDRE1TbmFwaW5AQFFFQUFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENETU5vZGVPYmo6OkdldE51bU1lbWJlcnModm9pZCkgX19wdHI2NA0KKz9HZXROdW1NZW1iZXJzQENETU5vZGVPYmpAQFFFQUFLWFoNCis7IHB1YmxpYzogY2xhc3MgQ1duZCAqIF9fcHRyNjQgX19jZGVjbCBDVGFza0RhdGE6OkdldE9jeEZyYW1lQ1duZFB0cih2b2lkKSBfX3B0cjY0DQorP0dldE9jeEZyYW1lQ1duZFB0ckBDVGFza0RhdGFAQFFFQUFQRUFWQ1duZEBAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENUYXNrRGF0YTo6R2V0UmVnaW9uQ29sb3JTdHJ1Y3RQdHIoc3RydWN0IF9SRUdJT05fQ09MT1JTICogX19wdHI2NCAqIF9fcHRyNjQsaW50ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRSZWdpb25Db2xvclN0cnVjdFB0ckBDVGFza0RhdGFAQFFFQUFYUEVBUEVBVV9SRUdJT05fQ09MT1JTQEBBRUFIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNU25hcGluOjpHZXRSZWdpb25TY2FsaW5nKHZvaWQpIF9fcHRyNjQNCis/R2V0UmVnaW9uU2NhbGluZ0BDRE1TbmFwaW5AQFFFQUFIWFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyAgX19jZGVjbCBDRGF0YUNhY2hlOjpHZXRTZXJ2ZXJOYW1lKHZvaWQpIF9fcHRyNjQNCis/R2V0U2VydmVyTmFtZUBDRGF0YUNhY2hlQEBRRUFBP0FWQ1N0cmluZ0BAWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNU25hcGluOjpHZXRUb3BWaWV3U3R5bGUodm9pZCkgX19wdHI2NA0KKz9HZXRUb3BWaWV3U3R5bGVAQ0RNU25hcGluQEBRRUFBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRGF0YUNhY2hlOjpHZXRWb2x1bWVDb3VudCh2b2lkKSBfX3B0cjY0DQorP0dldFZvbHVtZUNvdW50QENEYXRhQ2FjaGVAQFFFQUFLWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNU25hcGluOjpHZXRXYWl0Q3Vyc29yKHZvaWQpIF9fcHRyNjQNCis/R2V0V2FpdEN1cnNvckBDRE1TbmFwaW5AQFFFQUFIWFoNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kbnNhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZG5zYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNjg2NWMyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZG5zYXBpLmRlZgpAQCAtMCwwICsxLDE3NiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBETlNBUEkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEROU0FQSS5kbGwNCitFWFBPUlRTDQorQnJlYWtSZWNvcmRzSW50b0Jsb2INCitDb21iaW5lUmVjb3Jkc0luQmxvYg0KK0Ruc0FjcXVpcmVDb250ZXh0SGFuZGxlX0ENCitEbnNBY3F1aXJlQ29udGV4dEhhbmRsZV9XDQorRG5zQWxsb2NhdGVSZWNvcmQNCitEbnNBcGlBbGxvYw0KK0Ruc0FwaUFsbG9jWmVybw0KK0Ruc0FwaUZyZWUNCitEbnNBcGlIZWFwUmVzZXQNCitEbnNBcGlSZWFsbG9jDQorRG5zQXBpU2V0RGVidWdHbG9iYWxzDQorRG5zQXN5bmNSZWdpc3Rlckhvc3RBZGRycw0KK0Ruc0FzeW5jUmVnaXN0ZXJJbml0DQorRG5zQXN5bmNSZWdpc3RlclRlcm0NCitEbnNDb3B5U3RyaW5nRXgNCitEbnNDcmVhdGVSZXZlcnNlTmFtZVN0cmluZ0ZvcklwQWRkcmVzcw0KK0Ruc0NyZWF0ZVN0YW5kYXJkRG5zTmFtZUNvcHkNCitEbnNDcmVhdGVTdHJpbmdDb3B5DQorRG5zRGhjcFJlZ2lzdGVySG9zdEFkZHJzDQorRG5zRGhjcFJlZ2lzdGVySW5pdA0KK0Ruc0RoY3BSZWdpc3RlclRlcm0NCitEbnNEaGNwUmVtb3ZlUmVnaXN0cmF0aW9ucw0KK0Ruc0RoY3BTcnZSZWdpc3Rlckhvc3ROYW1lDQorRG5zRGhjcFNydlJlZ2lzdGVySW5pdA0KK0Ruc0RoY3BTcnZSZWdpc3RlckluaXRpYWxpemUNCitEbnNEaGNwU3J2UmVnaXN0ZXJUZXJtDQorRG5zRG93bmNhc2VEbnNOYW1lTGFiZWwNCitEbnNFeHRyYWN0UmVjb3Jkc0Zyb21NZXNzYWdlX1VURjgNCitEbnNFeHRyYWN0UmVjb3Jkc0Zyb21NZXNzYWdlX1cNCitEbnNGaW5kQXV0aG9yaXRhdGl2ZVpvbmUNCitEbnNGbHVzaFJlc29sdmVyQ2FjaGUNCitEbnNGbHVzaFJlc29sdmVyQ2FjaGVFbnRyeV9BDQorRG5zRmx1c2hSZXNvbHZlckNhY2hlRW50cnlfVVRGOA0KK0Ruc0ZsdXNoUmVzb2x2ZXJDYWNoZUVudHJ5X1cNCitEbnNGcmVlDQorRG5zRnJlZUNvbmZpZ1N0cnVjdHVyZQ0KK0Ruc0dldEJ1ZmZlckxlbmd0aEZvclN0cmluZ0NvcHkNCitEbnNHZXRDYWNoZURhdGFUYWJsZQ0KK0Ruc0dldERuc1NlcnZlckxpc3QNCitEbnNHZXREb21haW5OYW1lDQorRG5zR2V0TGFzdEZhaWxlZFVwZGF0ZUluZm8NCitEbnNHZXRQcmltYXJ5RG9tYWluTmFtZV9BDQorRG5zR2xvYmFscyBEQVRBDQorRG5zSXB2NkFkZHJlc3NUb1N0cmluZw0KK0Ruc0lwdjZTdHJpbmdUb0FkZHJlc3MNCitEbnNJc0FNYWlsYm94VHlwZQ0KK0Ruc0lzU3RhdHVzUmNvZGUNCitEbnNJc1N0cmluZ0NvdW50VmFsaWRGb3JUZXh0VHlwZQ0KK0Ruc01hcFJjb2RlVG9TdGF0dXMNCitEbnNNb2RpZnlSZWNvcmRzSW5TZXRfQQ0KK0Ruc01vZGlmeVJlY29yZHNJblNldF9VVEY4DQorRG5zTW9kaWZ5UmVjb3Jkc0luU2V0X1cNCitEbnNOYW1lQ29tcGFyZUV4X0ENCitEbnNOYW1lQ29tcGFyZUV4X1VURjgNCitEbnNOYW1lQ29tcGFyZUV4X1cNCitEbnNOYW1lQ29tcGFyZV9BDQorRG5zTmFtZUNvbXBhcmVfVVRGOA0KK0Ruc05hbWVDb21wYXJlX1cNCitEbnNOYW1lQ29weQ0KK0Ruc05hbWVDb3B5QWxsb2NhdGUNCitEbnNOZXR3b3JrSW5mb19DcmVhdGVGcm9tRkFaDQorRG5zTmV0d29ya0luZm9ybWF0aW9uX0NyZWF0ZUZyb21GQVoNCitEbnNOb3RpZnlSZXNvbHZlcg0KK0Ruc05vdGlmeVJlc29sdmVyQ2x1c3RlcklwDQorRG5zTm90aWZ5UmVzb2x2ZXJFeA0KK0Ruc1F1ZXJ5Q29uZmlnDQorRG5zUXVlcnlDb25maWdBbGxvY0V4DQorRG5zUXVlcnlDb25maWdEd29yZA0KK0Ruc1F1ZXJ5RXhBDQorRG5zUXVlcnlFeFVURjgNCitEbnNRdWVyeUV4Vw0KK0Ruc1F1ZXJ5X0ENCitEbnNRdWVyeV9VVEY4DQorRG5zUXVlcnlfVw0KK0Ruc1JlY29yZEJ1aWxkX1VURjgNCitEbnNSZWNvcmRCdWlsZF9XDQorRG5zUmVjb3JkQ29tcGFyZQ0KK0Ruc1JlY29yZENvcHlFeA0KK0Ruc1JlY29yZExpc3RGcmVlDQorRG5zUmVjb3JkU2V0Q29tcGFyZQ0KK0Ruc1JlY29yZFNldENvcHlFeA0KK0Ruc1JlY29yZFNldERldGFjaA0KK0Ruc1JlY29yZFN0cmluZ0ZvclR5cGUNCitEbnNSZWNvcmRTdHJpbmdGb3JXcml0YWJsZVR5cGUNCitEbnNSZWNvcmRUeXBlRm9yTmFtZQ0KK0Ruc1JlZ2lzdGVyQ2x1c3RlckFkZHJlc3MNCitEbnNSZWxlYXNlQ29udGV4dEhhbmRsZQ0KK0Ruc1JlbW92ZVJlZ2lzdHJhdGlvbnMNCitEbnNSZXBsYWNlUmVjb3JkU2V0QQ0KK0Ruc1JlcGxhY2VSZWNvcmRTZXRVVEY4DQorRG5zUmVwbGFjZVJlY29yZFNldFcNCitEbnNTY3JlZW5Mb2NhbEFkZHJzRm9yUmVnaXN0cmF0aW9uDQorRG5zU2V0Q29uZmlnRHdvcmQNCitEbnNTdGF0dXNTdHJpbmcNCitEbnNTdHJpbmdDb3B5QWxsb2NhdGVFeA0KK0Ruc1VuaWNvZGVUb1V0ZjgNCitEbnNVcGRhdGUNCitEbnNVcGRhdGVUZXN0X0ENCitEbnNVcGRhdGVUZXN0X1VURjgNCitEbnNVcGRhdGVUZXN0X1cNCitEbnNVdGY4VG9Vbmljb2RlDQorRG5zVmFsaWRhdGVOYW1lX0ENCitEbnNWYWxpZGF0ZU5hbWVfVVRGOA0KK0Ruc1ZhbGlkYXRlTmFtZV9XDQorRG5zVmFsaWRhdGVVdGY4Qnl0ZQ0KK0Ruc1dyaXRlUXVlc3Rpb25Ub0J1ZmZlcl9VVEY4DQorRG5zV3JpdGVRdWVzdGlvblRvQnVmZmVyX1cNCitEbnNXcml0ZVJldmVyc2VOYW1lU3RyaW5nRm9ySXBBZGRyZXNzDQorRG5zX0FkZFJlY29yZHNUb01lc3NhZ2UNCitEbnNfQWxsb2NhdGVNc2dCdWYNCitEbnNfQnVpbGRQYWNrZXQNCitEbnNfQ2xlYW51cFdpbnNvY2sNCitEbnNfQ2xvc2VDb25uZWN0aW9uDQorRG5zX0Nsb3NlU29ja2V0DQorRG5zX0NyZWF0ZU11bHRpY2FzdFNvY2tldA0KK0Ruc19DcmVhdGVTb2NrZXQNCitEbnNfQ3JlYXRlU29ja2V0RXgNCitEbnNfRmluZEF1dGhvcml0YXRpdmVab25lTGliDQorRG5zX0dldFJhbmRvbVhpZA0KK0Ruc19Jbml0aWFsaXplTXNnUmVtb3RlU29ja2FkZHINCitEbnNfSW5pdGlhbGl6ZVdpbnNvY2sNCitEbnNfT3BlblRjcENvbm5lY3Rpb25BbmRTZW5kDQorRG5zX1BhcnNlTWVzc2FnZQ0KK0Ruc19QYXJzZVBhY2tldFJlY29yZA0KK0Ruc19QaW5nQWRhcHRlclNlcnZlcnMNCitEbnNfUmVhZFBhY2tldE5hbWUNCitEbnNfUmVhZFBhY2tldE5hbWVBbGxvY2F0ZQ0KK0Ruc19SZWFkUmVjb3JkU3RydWN0dXJlRnJvbVBhY2tldA0KK0Ruc19SZWN2VGNwDQorRG5zX1Jlc2V0TmV0d29ya0luZm8NCitEbnNfU2VuZEFuZFJlY3ZVZHANCitEbnNfU2VuZEV4DQorRG5zX1NldFJlY29yZERhdGFsZW5ndGgNCitEbnNfU2tpcFBhY2tldE5hbWUNCitEbnNfU2tpcFRvUmVjb3JkDQorRG5zX1VwZGF0ZUxpYg0KK0Ruc19VcGRhdGVMaWJFeA0KK0Ruc19Xcml0ZURvdHRlZE5hbWVUb1BhY2tldA0KK0Ruc19Xcml0ZVF1ZXN0aW9uVG9NZXNzYWdlDQorRG5zX1dyaXRlUmVjb3JkU3RydWN0dXJlVG9QYWNrZXRFeA0KK0dldEN1cnJlbnRUaW1lSW5TZWNvbmRzDQorSG9zdHNGaWxlX0Nsb3NlDQorSG9zdHNGaWxlX09wZW4NCitIb3N0c0ZpbGVfUmVhZExpbmUNCitMb2NhbF9HZXRSZWNvcmRzRm9yTG9jYWxOYW1lDQorTmV0SW5mb19CdWlsZA0KK05ldEluZm9fQ2xlYW4NCitOZXRJbmZvX0NvcHkNCitOZXRJbmZvX0ZyZWUNCitOZXRJbmZvX0lzRm9yVXBkYXRlDQorTmV0SW5mb19SZXNldFNlcnZlclByaW9yaXRpZXMNCitRdWVyeURpcmVjdEV4DQorUXVlcnlfTWFpbg0KK1JlZ19HZXRWYWx1ZUV4DQorUmVnX1JlYWRHbG9iYWxzRXgNCitTZW5kX0FuZFJlY3ZVZHBXaXRoUGFyYW0NCitTZW5kX01lc3NhZ2VQcml2YXRlDQorU2VuZF9PcGVuVGNwQ29ubmVjdGlvbkFuZFNlbmQNCitTb2NrZXRfQ2FjaGVDbGVhbnVwDQorU29ja2V0X0NhY2hlSW5pdA0KK1NvY2tldF9DbGVhbnVwV2luc29jaw0KK1NvY2tldF9DbGVhck1lc3NhZ2VTb2NrZXRzDQorU29ja2V0X0Nsb3NlRXgNCitTb2NrZXRfQ2xvc2VNZXNzYWdlU29ja2V0cw0KK1NvY2tldF9DcmVhdGUNCitTb2NrZXRfQ3JlYXRlTXVsdGljYXN0DQorU29ja2V0X0luaXRXaW5zb2NrDQorVXRpbF9Jc0lwNlJ1bm5pbmcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kbnNyc2x2ci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kbnNyc2x2ci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmQ5MWQ3YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Ruc3JzbHZyLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGRuc3JzbHZyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkbnNyc2x2ci5kbGwNCitFWFBPUlRTDQorU2VydmljZU1haW4NCitTdmNob3N0UHVzaFNlcnZpY2VHbG9iYWxzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZG9jcHJvcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kb2Nwcm9wLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNDY2YTNjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZG9jcHJvcC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBET0NQUk9QLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBET0NQUk9QLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RvY3Byb3AyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2RvY3Byb3AyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NmNkMGFhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZG9jcHJvcDIuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRE9DUFJPUDIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERPQ1BST1AyLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RwbmFkZHIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZHBuYWRkci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjJjODUzZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2RwbmFkZHIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBkcG5hZGRyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkcG5hZGRyLmRsbA0KK0VYUE9SVFMNCitEaXJlY3RQbGF5OEFkZHJlc3NDcmVhdGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kcG5ldC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kcG5ldC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjM0ZWExYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2RwbmV0LmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERQTmV0LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEUE5ldC5kbGwNCitFWFBPUlRTDQorRGlyZWN0UGxheThDcmVhdGUNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RwbmhwYXN0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2RwbmhwYXN0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xYTA5ZDg1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZHBuaHBhc3QuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFBOSFBBU1QuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERQTkhQQVNULmRsbA0KK0VYUE9SVFMNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Rwbmh1cG5wLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Rwbmh1cG5wLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZTdiNDdhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZHBuaHVwbnAuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFBOSFVQTlAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERQTkhVUE5QLmRsbA0KK0VYUE9SVFMNCitEaXJlY3RQbGF5TkFUSGVscENyZWF0ZQ0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZHBubG9iYnkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZHBubG9iYnkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFlN2UwNWIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kcG5sb2JieS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERQTkxvYmJ5LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEUE5Mb2JieS5kbGwNCitFWFBPUlRTDQorRGlyZWN0UGxheThMb2JieUNyZWF0ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RwdmFjbS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kcHZhY20uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlmNDhlZDIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kcHZhY20uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFBWQUNNLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEUFZBQ00uZGxsDQorRVhQT1JUUw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZHB2b2ljZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kcHZvaWNlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMGI4M2UwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZHB2b2ljZS5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEUFZPSUNFLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEUFZPSUNFLmRsbA0KK0VYUE9SVFMNCitEaXJlY3RQbGF5Vm9pY2VDcmVhdGUNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RwdnZveC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kcHZ2b3guZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU1ZjBkZDQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kcHZ2b3guZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFBWVk9YLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEUFZWT1guZGxsDQorRVhQT1JUUw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZHJwcm92LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2RycHJvdi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDgyYWYyMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2RycHJvdi5kZWYKQEAgLTAsMCArMSwxOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBkcnByb3YuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGRycHJvdi5kbGwNCitFWFBPUlRTDQorTlBBZGRDb25uZWN0aW9uDQorTlBBZGRDb25uZWN0aW9uMw0KK05QQ2FuY2VsQ29ubmVjdGlvbg0KK05QQ2xvc2VFbnVtDQorTlBFbnVtUmVzb3VyY2UNCitOUEdldENhcHMNCitOUEdldENvbm5lY3Rpb24NCitOUEdldFJlc291cmNlSW5mb3JtYXRpb24NCitOUEdldFJlc291cmNlUGFyZW50DQorTlBHZXRVbml2ZXJzYWxOYW1lDQorTlBPcGVuRW51bQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RzMzJndC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kczMyZ3QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZhMGM3MGIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kczMyZ3QuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEUzMyR1QuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERTMzJHVC5kbGwNCitFWFBPUlRTDQorRGlzcGF0Y2gNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kc2F1dGguZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZHNhdXRoLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNGU1NTlhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZHNhdXRoLmRlZgpAQCAtMCwwICsxLDMyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERTQVVUSC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRFNBVVRILmRsbA0KK0VYUE9SVFMNCitEaGNwQWRkU2VydmVyRFMNCitEaGNwRGVsZXRlU2VydmVyRFMNCitEaGNwRHNBZGRTZXJ2ZXINCitEaGNwRHNDbGVhbnVwRFMNCitEaGNwRHNEZWxTZXJ2ZXINCitEaGNwRHNFbnVtU2VydmVycw0KK0RoY3BEc0dldEF0dHJpYnMNCitEaGNwRHNHZXRMaXN0cw0KK0RoY3BEc0dldFJvb3QNCitEaGNwRHNJbml0RFMNCitEaGNwRHNTZXRMaXN0cw0KK0RoY3BEc1ZhbGlkYXRlU2VydmljZQ0KK0RoY3BFbnVtU2VydmVyc0RTDQorU3RvcmVCZWdpblNlYXJjaA0KK1N0b3JlQ2xlYW51cEhhbmRsZQ0KK1N0b3JlQ29sbGVjdEF0dHJpYnV0ZXMNCitTdG9yZUNyZWF0ZU9iamVjdFZBDQorU3RvcmVEZWxldGVPYmplY3QNCitTdG9yZUVuZFNlYXJjaA0KK1N0b3JlR2V0SGFuZGxlDQorU3RvcmVJbml0SGFuZGxlDQorU3RvcmVTZWFyY2hHZXROZXh0DQorU3RvcmVTZXRTZWFyY2hPbmVMZXZlbA0KK1N0b3JlU2V0U2VhcmNoU3ViVHJlZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RzZG1vLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2RzZG1vLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43YzIxYzkyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZHNkbW8uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZHNkbW8uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGRzZG1vLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RzZG1vcHJwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2RzZG1vcHJwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hOTQ2MWQwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZHNkbW9wcnAuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZHNkbW9wcnAuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGRzZG1vcHJwLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Rza3F1b3RhLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Rza3F1b3RhLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZTUzMmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZHNrcXVvdGEuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFNLUVVPVEEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERTS1FVT1RBLmRsbA0KK0VYUE9SVFMNCitQcm9jZXNzR3JvdXBQb2xpY3kNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Rza3F1b3VpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Rza3F1b3VpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZjhiZWFlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZHNrcXVvdWkuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFNLUVVPVUkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERTS1FVT1VJLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Rzb3VuZC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kc291bmQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNiYTA0MWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kc291bmQuZGVmCkBAIC0wLDAgKzEsMjAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFNPVU5ELmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEU09VTkQuZGxsDQorRVhQT1JUUw0KK0RpcmVjdFNvdW5kQ3JlYXRlDQorRGlyZWN0U291bmRFbnVtZXJhdGVBDQorRGlyZWN0U291bmRFbnVtZXJhdGVXDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEaXJlY3RTb3VuZENhcHR1cmVDcmVhdGUNCitEaXJlY3RTb3VuZENhcHR1cmVFbnVtZXJhdGVBDQorRGlyZWN0U291bmRDYXB0dXJlRW51bWVyYXRlVw0KK0dldERldmljZUlEDQorRGlyZWN0U291bmRGdWxsRHVwbGV4Q3JlYXRlDQorRGlyZWN0U291bmRDcmVhdGU4DQorRGlyZWN0U291bmRDYXB0dXJlQ3JlYXRlOA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Rzb3VuZDNkLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Rzb3VuZDNkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMmI1MDliCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZHNvdW5kM2QuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEU09VTkQzRC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRFNPVU5EM0QuZGxsDQorRVhQT1JUUw0KK0NhZkJpcXVhZENvZWZmcw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RzcHJvcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kc3Byb3AuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEyZmRjYzMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kc3Byb3AuZGVmCkBAIC0wLDAgKzEsMzEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZHNwcm9wLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkc3Byb3AuZGxsDQorRVhQT1JUUw0KK0NoZWNrQURzRXJyb3INCitDcmFja05hbWUNCitEU1BST1BfR2V0R0NTZWFyY2hPbkRvbWFpbg0KK0Vyck1zZw0KK0Vyck1zZ1BhcmFtDQorRmluZFNoZWV0DQorTXNnQm94DQorUmVwb3J0RXJyb3INCitTbWFydF9QQURTX0FUVFJfSU5GT19fRW1wdHkNCitBRHNQcm9wQ2hlY2tJZldyaXRhYmxlDQorQURzUHJvcENyZWF0ZU5vdGlmeU9iag0KK0FEc1Byb3BHZXRJbml0SW5mbw0KK0FEc1Byb3BTZW5kRXJyb3JNZXNzYWdlDQorQURzUHJvcFNldEh3bmQNCitBRHNQcm9wU2V0SHduZFdpdGhUaXRsZQ0KK0FEc1Byb3BTaG93RXJyb3JEaWFsb2cNCitCcmluZ1NoZWV0VG9Gb3JlZ3JvdW5kDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitJc1NoZWV0QWxyZWFkeVVwDQorUG9zdEFEc1Byb3BTaGVldA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2RzcHJvdi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kc3Byb3YuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZkZGNkMjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kc3Byb3YuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZHNwcm92LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkc3Byb3YuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZHNxdWVyeS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kc3F1ZXJ5LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43OTZjMDdkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZHNxdWVyeS5kZWYKQEAgLTAsMCArMSwxNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBkc3F1ZXJ5LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkc3F1ZXJ5LmRsbA0KK0VYUE9SVFMNCitPcGVuU2F2ZWREc1F1ZXJ5DQorT3BlblNhdmVkRHNRdWVyeVcNCitPcGVuUXVlcnlXaW5kb3cNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbEluc3RhbGwNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kc3NlYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kc3NlYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWQ5MzgxYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Rzc2VjLmRlZgpAQCAtMCwwICsxLDE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERTU0VDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEU1NFQy5kbGwNCitFWFBPUlRTDQorRFNDcmVhdGVJU2VjdXJpdHlJbmZvT2JqZWN0DQorRFNDcmVhdGVTZWN1cml0eVBhZ2UNCitEU0VkaXRTZWN1cml0eQ0KK0RTQ3JlYXRlSVNlY3VyaXR5SW5mb09iamVjdEV4DQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kc3NlbmguZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZHNzZW5oLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iZTkyZjU0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZHNzZW5oLmRlZgpAQCAtMCwwICsxLDM1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERTU0VOSC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRFNTRU5ILmRsbA0KK0VYUE9SVFMNCitDUEFjcXVpcmVDb250ZXh0DQorQ1BDcmVhdGVIYXNoDQorQ1BEZWNyeXB0DQorQ1BEZXJpdmVLZXkNCitDUERlc3Ryb3lIYXNoDQorQ1BEZXN0cm95S2V5DQorQ1BEdXBsaWNhdGVIYXNoDQorQ1BEdXBsaWNhdGVLZXkNCitDUEVuY3J5cHQNCitDUEV4cG9ydEtleQ0KK0NQR2VuS2V5DQorQ1BHZW5SYW5kb20NCitDUEdldEhhc2hQYXJhbQ0KK0NQR2V0S2V5UGFyYW0NCitDUEdldFByb3ZQYXJhbQ0KK0NQR2V0VXNlcktleQ0KK0NQSGFzaERhdGENCitDUEhhc2hTZXNzaW9uS2V5DQorQ1BJbXBvcnRLZXkNCitDUFJlbGVhc2VDb250ZXh0DQorQ1BTZXRIYXNoUGFyYW0NCitDUFNldEtleVBhcmFtDQorQ1BTZXRQcm92UGFyYW0NCitDUFNpZ25IYXNoDQorQ1BWZXJpZnlTaWduYXR1cmUNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kc3VpZXh0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2RzdWlleHQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE2NGRlZjQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9kc3VpZXh0LmRlZgpAQCAtMCwwICsxLDE3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGRzdWlleHQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGRzdWlleHQuZGxsDQorRVhQT1JUUw0KK0RzQnJvd3NlRm9yQ29udGFpbmVyQQ0KK0RzQnJvd3NlRm9yQ29udGFpbmVyVw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0RzR2V0SWNvbg0KK0RzR2V0RnJpZW5kbHlDbGFzc05hbWUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9kdXNlci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9kdXNlci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2JmZDQyZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2R1c2VyLmRlZgpAQCAtMCwwICsxLDEyMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEVVNFUi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRFVTRVIuZGxsDQorRVhQT1JUUw0KK0RVc2VyQ2FzdEhhbmRsZQ0KK0RVc2VyRGVsZXRlR2FkZ2V0DQorR2V0U3RkQ29sb3JCcnVzaEYNCitHZXRTdGRDb2xvckYNCitHZXRTdGRDb2xvclBlbkYNCitVdGlsRHJhd091dGxpbmVSZWN0DQorQWRkR2FkZ2V0TWVzc2FnZUhhbmRsZXINCitBdHRhY2hXbmRQcm9jQQ0KK0F0dGFjaFduZFByb2NXDQorQXV0b1RyYWNlDQorQmVnaW5UcmFuc2l0aW9uDQorQnVpbGRBbmltYXRpb24NCitCdWlsZERyb3BUYXJnZXQNCitCdWlsZEludGVycG9sYXRpb24NCitDcmVhdGVBY3Rpb24NCitDcmVhdGVHYWRnZXQNCitDcmVhdGVUcmFuc2l0aW9uDQorRFVzZXJCdWlsZEdhZGdldA0KK0RVc2VyQ2FzdENsYXNzDQorRFVzZXJDYXN0RGlyZWN0DQorRFVzZXJGaW5kQ2xhc3MNCitEVXNlckdldEFscGhhUFJJRA0KK0RVc2VyR2V0R3V0c0RhdGENCitEVXNlckdldFJlY3RQUklEDQorRFVzZXJHZXRSb3RhdGVQUklEDQorRFVzZXJHZXRTY2FsZVBSSUQNCitEVXNlckluc3RhbmNlT2YNCitEVXNlclBvc3RFdmVudA0KK0RVc2VyUG9zdE1ldGhvZA0KK0RVc2VyUmVnaXN0ZXJHdXRzDQorRFVzZXJSZWdpc3RlclN0dWINCitEVXNlclJlZ2lzdGVyU3VwZXINCitEVXNlclNlbmRFdmVudA0KK0RVc2VyU2VuZE1ldGhvZA0KK0RVc2VyU3RvcEFuaW1hdGlvbg0KK0RlbGV0ZUhhbmRsZQ0KK0RldGFjaFduZFByb2MNCitEbGxNYWluDQorRHJhd0dhZGdldFRyZWUNCitFbmRUcmFuc2l0aW9uDQorRW51bUdhZGdldHMNCitGaW5kR2FkZ2V0RnJvbVBvaW50DQorRmluZEdhZGdldE1lc3NhZ2VzDQorRmluZFN0ZENvbG9yDQorRmlyZUdhZGdldE1lc3NhZ2VzDQorRm9yd2FyZEdhZGdldE1lc3NhZ2UNCitHZXRBY3Rpb25UaW1lc2xpY2UNCitHZXREZWJ1Zw0KK0dldEdhZGdldA0KK0dldEdhZGdldEFuaW1hdGlvbg0KK0dldEdhZGdldEJ1ZmZlckluZm8NCitHZXRHYWRnZXRDZW50ZXJQb2ludA0KK0dldEdhZGdldEZvY3VzDQorR2V0R2FkZ2V0TWVzc2FnZUZpbHRlcg0KK0dldEdhZGdldFByb3BlcnR5DQorR2V0R2FkZ2V0UmVjdA0KK0dldEdhZGdldFJnbg0KK0dldEdhZGdldFJvb3RJbmZvDQorR2V0R2FkZ2V0Um90YXRpb24NCitHZXRHYWRnZXRTY2FsZQ0KK0dldEdhZGdldFNpemUNCitHZXRHYWRnZXRTdHlsZQ0KK0dldEdhZGdldFRpY2tldA0KK0dldE1lc3NhZ2VFeEENCitHZXRNZXNzYWdlRXhXDQorR2V0U3RkQ29sb3JCcnVzaEkNCitHZXRTdGRDb2xvckkNCitHZXRTdGRDb2xvck5hbWUNCitHZXRTdGRDb2xvclBlbkkNCitHZXRTdGRQYWxldHRlDQorR2V0VHJhbnNpdGlvbkludGVyZmFjZQ0KK0luaXRHYWRnZXRDb21wb25lbnQNCitJbml0R2FkZ2V0cw0KK0ludmFsaWRhdGVHYWRnZXQNCitJc0dhZGdldFBhcmVudENoYWluU3R5bGUNCitJc0luc2lkZUNvbnRleHQNCitJc1N0YXJ0RGVsZXRlDQorTG9va3VwR2FkZ2V0VGlja2V0DQorTWFwR2FkZ2V0UG9pbnRzDQorUGVla01lc3NhZ2VFeEENCitQZWVrTWVzc2FnZUV4Vw0KK1BsYXlUcmFuc2l0aW9uDQorUHJpbnRUcmFuc2l0aW9uDQorUmVnaXN0ZXJHYWRnZXRNZXNzYWdlDQorUmVnaXN0ZXJHYWRnZXRNZXNzYWdlU3RyaW5nDQorUmVnaXN0ZXJHYWRnZXRQcm9wZXJ0eQ0KK1JlbW92ZUdhZGdldE1lc3NhZ2VIYW5kbGVyDQorUmVtb3ZlR2FkZ2V0UHJvcGVydHkNCitTZXRBY3Rpb25UaW1lc2xpY2UNCitTZXRHYWRnZXRCdWZmZXJJbmZvDQorU2V0R2FkZ2V0Q2VudGVyUG9pbnQNCitTZXRHYWRnZXRGaWxsRg0KK1NldEdhZGdldEZpbGxJDQorU2V0R2FkZ2V0Rm9jdXMNCitTZXRHYWRnZXRNZXNzYWdlRmlsdGVyDQorU2V0R2FkZ2V0T3JkZXINCitTZXRHYWRnZXRQYXJlbnQNCitTZXRHYWRnZXRQcm9wZXJ0eQ0KK1NldEdhZGdldFJlY3QNCitTZXRHYWRnZXRSb290SW5mbw0KK1NldEdhZGdldFJvdGF0aW9uDQorU2V0R2FkZ2V0U2NhbGUNCitTZXRHYWRnZXRTdHlsZQ0KK1VuaW5pdEdhZGdldENvbXBvbmVudA0KK1VucmVnaXN0ZXJHYWRnZXRNZXNzYWdlDQorVW5yZWdpc3RlckdhZGdldE1lc3NhZ2VTdHJpbmcNCitVbnJlZ2lzdGVyR2FkZ2V0UHJvcGVydHkNCitVdGlsQnVpbGRGb250DQorVXRpbERyYXdCbGVuZFJlY3QNCitVdGlsR2V0Q29sb3INCitVdGlsU2V0QmFja2dyb3VuZA0KK1dhaXRNZXNzYWdlRXgNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9keGRpYWduLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2R4ZGlhZ24uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFhMmE3NzgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9keGRpYWduLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIER4RGlhZ24uRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIER4RGlhZ24uRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZHh0bXNmdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9keHRtc2Z0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yZjFmMDAyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZHh0bXNmdC5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBkeHRtc2Z0LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkeHRtc2Z0LmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxFbnVtQ2xhc3NPYmplY3RzDQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9keHRyYW5zLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2R4dHJhbnMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU3NTRkMjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9keHRyYW5zLmRlZgpAQCAtMCwwICsxLDI1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGR4dHJhbnMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGR4dHJhbnMuZGxsDQorRVhQT1JUUw0KKzsgdm9pZCBfX2NkZWNsIERYQ29uc3RPdmVyQXJyYXkoY2xhc3MgRFhQTVNBTVBMRSAqIF9fcHRyNjQsY2xhc3MgRFhQTVNBTVBMRSBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/RFhDb25zdE92ZXJBcnJheUBAWUFYUEVBVkRYUE1TQU1QTEVAQEFFQlYxQEtAWg0KKzsgdm9pZCBfX2NkZWNsIERYQ29uc3RVbmRlckFycmF5KGNsYXNzIERYUE1TQU1QTEUgKiBfX3B0cjY0LGNsYXNzIERYUE1TQU1QTEUgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpDQorP0RYQ29uc3RVbmRlckFycmF5QEBZQVhQRUFWRFhQTVNBTVBMRUBAQUVCVjFAS0BaDQorOyB2b2lkIF9fY2RlY2wgRFhEaXRoZXJBcnJheShzdHJ1Y3QgRFhESVRIRVJERVNDIGNvbnN0ICogX19wdHI2NCkNCis/RFhEaXRoZXJBcnJheUBAWUFYUEVCVURYRElUSEVSREVTQ0BAQFoNCis7IHZvaWQgX19jZGVjbCBEWExpbmVhckludGVycG9sYXRlQXJyYXkoY2xhc3MgRFhCQVNFU0FNUExFIGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgRFhMSU1BUElORk8gKiBfX3B0cjY0LGNsYXNzIERYQkFTRVNBTVBMRSAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/RFhMaW5lYXJJbnRlcnBvbGF0ZUFycmF5QEBZQVhQRUJWRFhCQVNFU0FNUExFQEBQRUFVRFhMSU1BUElORk9AQFBFQVYxQEtAWg0KKzsgdm9pZCBfX2NkZWNsIERYT3ZlckFycmF5KGNsYXNzIERYUE1TQU1QTEUgKiBfX3B0cjY0LGNsYXNzIERYUE1TQU1QTEUgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpDQorP0RYT3ZlckFycmF5QEBZQVhQRUFWRFhQTVNBTVBMRUBAUEVCVjFAS0BaDQorOyB2b2lkIF9fY2RlY2wgRFhPdmVyQXJyYXlNTVgoY2xhc3MgRFhQTVNBTVBMRSAqIF9fcHRyNjQsY2xhc3MgRFhQTVNBTVBMRSBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/RFhPdmVyQXJyYXlNTVhAQFlBWFBFQVZEWFBNU0FNUExFQEBQRUJWMUBLQFoNCitEbGxDYW5VbmxvYWROb3cNCitEbGxFbnVtQ2xhc3NPYmplY3RzDQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9lZnNhZHUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZWZzYWR1LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZDBiMDVkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZWZzYWR1LmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEVGU0FEVS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRUZTQURVLmRsbA0KK0VYUE9SVFMNCitBZGRVc2VyVG9PYmplY3RXDQorQmFja0N1cnJlbnRFZnNDZXJ0DQorRWZzRGV0YWlsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZWxzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Vscy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmRhZDg5MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Vscy5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBlbHMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGVscy5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9lbmNhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZW5jYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NDNiOTljCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZW5jYXBpLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGVuY2FwaS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZW5jYXBpLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Vyc3ZjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Vyc3ZjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NThhNThmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZXJzdmMuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBlcnN2Yy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZXJzdmMuRExMDQorRVhQT1JUUw0KK1NlcnZpY2VNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZXMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZXMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJhMTdkNzkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9lcy5kZWYKQEAgLTAsMCArMSwxOCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBFUy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRVMuZGxsDQorRVhQT1JUUw0KK05vdGlmeUxvZ29mZlVzZXINCitOb3RpZnlMb2dvblVzZXINCitTZXJ2aWNlTWFpbg0KK0xDRUNvbnRyb2xTZXJ2ZXINCitSZWdpc3RlclRoZUV2ZW50U2VydmljZUR1cmluZ1NldHVwDQorUmVnaXN0ZXJUaGVFdmVudFNlcnZpY2VBZnRlclNldHVwDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9lc2VudC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9lc2VudC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTEwZmNmMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2VzZW50LmRlZgpAQCAtMCwwICsxLDE1NiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBFU0VOVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRVNFTlQuZGxsDQorRVhQT1JUUw0KK0pldEFkZENvbHVtbg0KK0pldEF0dGFjaERhdGFiYXNlDQorSmV0QXR0YWNoRGF0YWJhc2UyDQorSmV0QXR0YWNoRGF0YWJhc2VXaXRoU3RyZWFtaW5nDQorSmV0QmFja3VwDQorSmV0QmFja3VwSW5zdGFuY2UNCitKZXRCZWdpbkV4dGVybmFsQmFja3VwDQorSmV0QmVnaW5FeHRlcm5hbEJhY2t1cEluc3RhbmNlDQorSmV0QmVnaW5TZXNzaW9uDQorSmV0QmVnaW5UcmFuc2FjdGlvbg0KK0pldEJlZ2luVHJhbnNhY3Rpb24yDQorSmV0Q2xvc2VEYXRhYmFzZQ0KK0pldENsb3NlRmlsZQ0KK0pldENsb3NlRmlsZUluc3RhbmNlDQorSmV0Q2xvc2VUYWJsZQ0KK0pldENvbW1pdFRyYW5zYWN0aW9uDQorSmV0Q29tcGFjdA0KK0pldENvbXB1dGVTdGF0cw0KK0pldENvbnZlcnREREwNCitKZXRDcmVhdGVEYXRhYmFzZQ0KK0pldENyZWF0ZURhdGFiYXNlMg0KK0pldENyZWF0ZURhdGFiYXNlV2l0aFN0cmVhbWluZw0KK0pldENyZWF0ZUluZGV4DQorSmV0Q3JlYXRlSW5kZXgyDQorSmV0Q3JlYXRlSW5zdGFuY2UNCitKZXRDcmVhdGVJbnN0YW5jZTINCitKZXRDcmVhdGVUYWJsZQ0KK0pldENyZWF0ZVRhYmxlQ29sdW1uSW5kZXgNCitKZXRDcmVhdGVUYWJsZUNvbHVtbkluZGV4Mg0KK0pldERCVXRpbGl0aWVzDQorSmV0RGVmcmFnbWVudA0KK0pldERlZnJhZ21lbnQyDQorSmV0RGVsZXRlDQorSmV0RGVsZXRlQ29sdW1uDQorSmV0RGVsZXRlQ29sdW1uMg0KK0pldERlbGV0ZUluZGV4DQorSmV0RGVsZXRlVGFibGUNCitKZXREZXRhY2hEYXRhYmFzZQ0KK0pldERldGFjaERhdGFiYXNlMg0KK0pldER1cEN1cnNvcg0KK0pldER1cFNlc3Npb24NCitKZXRFbmFibGVNdWx0aUluc3RhbmNlDQorSmV0RW5kRXh0ZXJuYWxCYWNrdXANCitKZXRFbmRFeHRlcm5hbEJhY2t1cEluc3RhbmNlDQorSmV0RW5kRXh0ZXJuYWxCYWNrdXBJbnN0YW5jZTINCitKZXRFbmRTZXNzaW9uDQorSmV0RW51bWVyYXRlQ29sdW1ucw0KK0pldEVzY3Jvd1VwZGF0ZQ0KK0pldEV4dGVybmFsUmVzdG9yZQ0KK0pldEV4dGVybmFsUmVzdG9yZTINCitKZXRGcmVlQnVmZmVyDQorSmV0R2V0QXR0YWNoSW5mbw0KK0pldEdldEF0dGFjaEluZm9JbnN0YW5jZQ0KK0pldEdldEJvb2ttYXJrDQorSmV0R2V0Q29sdW1uSW5mbw0KK0pldEdldENvdW50ZXINCitKZXRHZXRDdXJyZW50SW5kZXgNCitKZXRHZXRDdXJzb3JJbmZvDQorSmV0R2V0RGF0YWJhc2VGaWxlSW5mbw0KK0pldEdldERhdGFiYXNlSW5mbw0KK0pldEdldEluZGV4SW5mbw0KK0pldEdldEluc3RhbmNlSW5mbw0KK0pldEdldExTDQorSmV0R2V0TG9jaw0KK0pldEdldExvZ0luZm8NCitKZXRHZXRMb2dJbmZvSW5zdGFuY2UNCitKZXRHZXRMb2dJbmZvSW5zdGFuY2UyDQorSmV0R2V0T2JqZWN0SW5mbw0KK0pldEdldFJlY29yZFBvc2l0aW9uDQorSmV0R2V0U2Vjb25kYXJ5SW5kZXhCb29rbWFyaw0KK0pldEdldFN5c3RlbVBhcmFtZXRlcg0KK0pldEdldFRhYmxlQ29sdW1uSW5mbw0KK0pldEdldFRhYmxlSW5kZXhJbmZvDQorSmV0R2V0VGFibGVJbmZvDQorSmV0R2V0VHJ1bmNhdGVMb2dJbmZvSW5zdGFuY2UNCitKZXRHZXRWZXJzaW9uDQorSmV0R290b0Jvb2ttYXJrDQorSmV0R290b1Bvc2l0aW9uDQorSmV0R290b1NlY29uZGFyeUluZGV4Qm9va21hcmsNCitKZXRHcm93RGF0YWJhc2UNCitKZXRJZGxlDQorSmV0SW5kZXhSZWNvcmRDb3VudA0KK0pldEluaXQNCitKZXRJbml0Mg0KK0pldEluaXQzDQorSmV0SW50ZXJzZWN0SW5kZXhlcw0KK0pldE1ha2VLZXkNCitKZXRNb3ZlDQorSmV0T1NTbmFwc2hvdEFib3J0DQorSmV0T1NTbmFwc2hvdEZyZWV6ZQ0KK0pldE9TU25hcHNob3RQcmVwYXJlDQorSmV0T1NTbmFwc2hvdFRoYXcNCitKZXRPcGVuRGF0YWJhc2UNCitKZXRPcGVuRmlsZQ0KK0pldE9wZW5GaWxlSW5zdGFuY2UNCitKZXRPcGVuRmlsZVNlY3Rpb25JbnN0YW5jZQ0KK0pldE9wZW5UYWJsZQ0KK0pldE9wZW5UZW1wVGFibGUNCitKZXRPcGVuVGVtcFRhYmxlMg0KK0pldE9wZW5UZW1wVGFibGUzDQorSmV0UHJlcGFyZVRvQ29tbWl0VHJhbnNhY3Rpb24NCitKZXRQcmVwYXJlVXBkYXRlDQorSmV0UmVhZEZpbGUNCitKZXRSZWFkRmlsZUluc3RhbmNlDQorSmV0UmVnaXN0ZXJDYWxsYmFjaw0KK0pldFJlbmFtZUNvbHVtbg0KK0pldFJlbmFtZVRhYmxlDQorSmV0UmVzZXRDb3VudGVyDQorSmV0UmVzZXRTZXNzaW9uQ29udGV4dA0KK0pldFJlc2V0VGFibGVTZXF1ZW50aWFsDQorSmV0UmVzdG9yZQ0KK0pldFJlc3RvcmUyDQorSmV0UmVzdG9yZUluc3RhbmNlDQorSmV0UmV0cmlldmVDb2x1bW4NCitKZXRSZXRyaWV2ZUNvbHVtbnMNCitKZXRSZXRyaWV2ZUtleQ0KK0pldFJldHJpZXZlVGFnZ2VkQ29sdW1uTGlzdA0KK0pldFJvbGxiYWNrDQorSmV0U2Vlaw0KK0pldFNldENvbHVtbg0KK0pldFNldENvbHVtbkRlZmF1bHRWYWx1ZQ0KK0pldFNldENvbHVtbnMNCitKZXRTZXRDdXJyZW50SW5kZXgNCitKZXRTZXRDdXJyZW50SW5kZXgyDQorSmV0U2V0Q3VycmVudEluZGV4Mw0KK0pldFNldEN1cnJlbnRJbmRleDQNCitKZXRTZXREYXRhYmFzZVNpemUNCitKZXRTZXRJbmRleFJhbmdlDQorSmV0U2V0TFMNCitKZXRTZXRTZXNzaW9uQ29udGV4dA0KK0pldFNldFN5c3RlbVBhcmFtZXRlcg0KK0pldFNldFRhYmxlU2VxdWVudGlhbA0KK0pldFNuYXBzaG90U3RhcnQNCitKZXRTbmFwc2hvdFN0b3ANCitKZXRTdG9wQmFja3VwDQorSmV0U3RvcEJhY2t1cEluc3RhbmNlDQorSmV0U3RvcFNlcnZpY2UNCitKZXRTdG9wU2VydmljZUluc3RhbmNlDQorSmV0VGVybQ0KK0pldFRlcm0yDQorSmV0VHJ1bmNhdGVMb2cNCitKZXRUcnVuY2F0ZUxvZ0luc3RhbmNlDQorSmV0VW5yZWdpc3RlckNhbGxiYWNrDQorSmV0VXBkYXRlDQorSmV0VXBkYXRlMg0KK0pldFVwZ3JhZGVEYXRhYmFzZQ0KK2VzZQ0KK2VzZW50DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZXNlbnRwcmYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZXNlbnRwcmYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVlMjczYWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9lc2VudHByZi5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBFU0VOVFBSRi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRVNFTlRQUkYuZGxsDQorRVhQT1JUUw0KK0Nsb3NlUGVyZm9ybWFuY2VEYXRhDQorQ29sbGVjdFBlcmZvcm1hbmNlRGF0YQ0KK09wZW5QZXJmb3JtYW5jZURhdGENCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9lc3NjbGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZXNzY2xpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNTE2NTA1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZXNzY2xpLmRlZgpAQCAtMCwwICsxLDMzOCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBlc3NjbGkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGVzc2NsaS5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NsYXNzSW5mb0FycmF5OjpDQ2xhc3NJbmZvQXJyYXkodm9pZCkgX19wdHI2NA0KKz8/MENDbGFzc0luZm9BcnJheUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENDbGFzc0luZm9ybWF0aW9uOjpDQ2xhc3NJbmZvcm1hdGlvbihzdHJ1Y3QgQ0NsYXNzSW5mb3JtYXRpb24gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0NsYXNzSW5mb3JtYXRpb25AQFFFQUFAQUVCVTBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ2xhc3NJbmZvcm1hdGlvbjo6Q0NsYXNzSW5mb3JtYXRpb24odm9pZCkgX19wdHI2NA0KKz8/MENDbGFzc0luZm9ybWF0aW9uQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NvbnRleHRNZXRhRGF0YTo6Q0NvbnRleHRNZXRhRGF0YShjbGFzcyBDTWV0YURhdGEgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNvbnRleHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0NvbnRleHRNZXRhRGF0YUBAUUVBQUBQRUFWQ01ldGFEYXRhQEBQRUFVSVdiZW1Db250ZXh0QEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENFdmFsTm9kZTo6Q0V2YWxOb2RlKGNsYXNzIENFdmFsTm9kZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRXZhbE5vZGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXZhbE5vZGU6OkNFdmFsTm9kZSh2b2lkKSBfX3B0cjY0DQorPz8wQ0V2YWxOb2RlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0V2YWxUcmVlOjpDRXZhbFRyZWUoY2xhc3MgQ0V2YWxUcmVlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENFdmFsVHJlZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENFdmFsVHJlZTo6Q0V2YWxUcmVlKHZvaWQpIF9fcHRyNjQNCis/PzBDRXZhbFRyZWVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0YURhdGE6OkNNZXRhRGF0YShjbGFzcyBDTWV0YURhdGEgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01ldGFEYXRhQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFEYXRhOjpDTWV0YURhdGEodm9pZCkgX19wdHI2NA0KKz8/MENNZXRhRGF0YUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENPYmplY3RJbmZvOjpDT2JqZWN0SW5mbyh2b2lkKSBfX3B0cjY0DQorPz8wQ09iamVjdEluZm9AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUHJvcGVydHlQcm9qZWN0aW9uRmlsdGVyOjpDUHJvcGVydHlQcm9qZWN0aW9uRmlsdGVyKGNsYXNzIENQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1Byb3BlcnR5UHJvamVjdGlvbkZpbHRlckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXI6OkNQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXIodm9pZCkgX19wdHI2NA0KKz8/MENQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmV1c2VNZW1vcnlNYW5hZ2VyOjpDUmV1c2VNZW1vcnlNYW5hZ2VyKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MENSZXVzZU1lbW9yeU1hbmFnZXJAQFFFQUFAX0swQFoNCis7IHB1YmxpYzogX19jZGVjbCBDU29ydGVkQXJyYXk6OkNTb3J0ZWRBcnJheShjbGFzcyBDU29ydGVkQXJyYXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1NvcnRlZEFycmF5QEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1NvcnRlZEFycmF5OjpDU29ydGVkQXJyYXkoaW50LGludCkgX19wdHI2NA0KKz8/MENTb3J0ZWRBcnJheUBAUUVBQUBISEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1NvcnRlZEFycmF5OjpDU29ydGVkQXJyYXkodW5zaWduZWQgaW50LHVuc2lnbmVkIF9faW50NjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1NvcnRlZEFycmF5QEBRRUFBQElQRUFfS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1N0YW5kYXJkTWV0YURhdGE6OkNTdGFuZGFyZE1ldGFEYXRhKGNsYXNzIENTdGFuZGFyZE1ldGFEYXRhIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENTdGFuZGFyZE1ldGFEYXRhQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1N0YW5kYXJkTWV0YURhdGE6OkNTdGFuZGFyZE1ldGFEYXRhKHN0cnVjdCBJV2JlbVNlcnZpY2VzICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENTdGFuZGFyZE1ldGFEYXRhQEBRRUFBQFBFQVVJV2JlbVNlcnZpY2VzQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENUZW1wTWVtb3J5TWFuYWdlcjo6Q1RlbXBNZW1vcnlNYW5hZ2VyKHZvaWQpIF9fcHRyNjQNCis/PzBDVGVtcE1lbW9yeU1hbmFnZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVGltZUtlZXBlcjo6Q1RpbWVLZWVwZXIodm9pZCkgX19wdHI2NA0KKz8/MENUaW1lS2VlcGVyQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NsYXNzSW5mb0FycmF5Ojp+Q0NsYXNzSW5mb0FycmF5KHZvaWQpIF9fcHRyNjQNCis/PzFDQ2xhc3NJbmZvQXJyYXlAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ2xhc3NJbmZvcm1hdGlvbjo6fkNDbGFzc0luZm9ybWF0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFDQ2xhc3NJbmZvcm1hdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENDb250ZXh0TWV0YURhdGE6On5DQ29udGV4dE1ldGFEYXRhKHZvaWQpIF9fcHRyNjQNCis/PzFDQ29udGV4dE1ldGFEYXRhQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDRXZhbE5vZGU6On5DRXZhbE5vZGUodm9pZCkgX19wdHI2NA0KKz8/MUNFdmFsTm9kZUBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENFdmFsVHJlZTo6fkNFdmFsVHJlZSh2b2lkKSBfX3B0cjY0DQorPz8xQ0V2YWxUcmVlQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDTWV0YURhdGE6On5DTWV0YURhdGEodm9pZCkgX19wdHI2NA0KKz8/MUNNZXRhRGF0YUBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENPYmplY3RJbmZvOjp+Q09iamVjdEluZm8odm9pZCkgX19wdHI2NA0KKz8/MUNPYmplY3RJbmZvQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Byb3BlcnR5UHJvamVjdGlvbkZpbHRlcjo6fkNQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXIodm9pZCkgX19wdHI2NA0KKz8/MUNQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmV1c2VNZW1vcnlNYW5hZ2VyOjp+Q1JldXNlTWVtb3J5TWFuYWdlcih2b2lkKSBfX3B0cjY0DQorPz8xQ1JldXNlTWVtb3J5TWFuYWdlckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTb3J0ZWRBcnJheTo6fkNTb3J0ZWRBcnJheSh2b2lkKSBfX3B0cjY0DQorPz8xQ1NvcnRlZEFycmF5QEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDU3RhbmRhcmRNZXRhRGF0YTo6fkNTdGFuZGFyZE1ldGFEYXRhKHZvaWQpIF9fcHRyNjQNCis/PzFDU3RhbmRhcmRNZXRhRGF0YUBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENUZW1wTWVtb3J5TWFuYWdlcjo6fkNUZW1wTWVtb3J5TWFuYWdlcih2b2lkKSBfX3B0cjY0DQorPz8xQ1RlbXBNZW1vcnlNYW5hZ2VyQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1RpbWVLZWVwZXI6On5DVGltZUtlZXBlcih2b2lkKSBfX3B0cjY0DQorPz8xQ1RpbWVLZWVwZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENDbGFzc0luZm9BcnJheTo6b3BlcmF0b3I9KGNsYXNzIENDbGFzc0luZm9BcnJheSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDQ2xhc3NJbmZvQXJyYXlAQFFFQUFfTkFFQVYwQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBDQ2xhc3NJbmZvcm1hdGlvbiAmIF9fcHRyNjQgX19jZGVjbCBDQ2xhc3NJbmZvcm1hdGlvbjo6b3BlcmF0b3I9KHN0cnVjdCBDQ2xhc3NJbmZvcm1hdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDQ2xhc3NJbmZvcm1hdGlvbkBAUUVBQUFFQVUwQEFFQlUwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENDb250ZXh0TWV0YURhdGEgJiBfX3B0cjY0IF9fY2RlY2wgQ0NvbnRleHRNZXRhRGF0YTo6b3BlcmF0b3I9KGNsYXNzIENDb250ZXh0TWV0YURhdGEgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0NvbnRleHRNZXRhRGF0YUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRXZhbFRyZWU6Om9wZXJhdG9yPShjbGFzcyBDRXZhbFRyZWUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0V2YWxUcmVlQEBRRUFBWEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENNZXRhRGF0YSAmIF9fcHRyNjQgX19jZGVjbCBDTWV0YURhdGE6Om9wZXJhdG9yPShjbGFzcyBDTWV0YURhdGEgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q01ldGFEYXRhQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ09iamVjdEluZm8gJiBfX3B0cjY0IF9fY2RlY2wgQ09iamVjdEluZm86Om9wZXJhdG9yPShjbGFzcyBDT2JqZWN0SW5mbyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDT2JqZWN0SW5mb0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXIgJiBfX3B0cjY0IF9fY2RlY2wgQ1Byb3BlcnR5UHJvamVjdGlvbkZpbHRlcjo6b3BlcmF0b3I9KGNsYXNzIENQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1Byb3BlcnR5UHJvamVjdGlvbkZpbHRlckBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENRdWVyeUFuYWx5c2VyICYgX19wdHI2NCBfX2NkZWNsIENRdWVyeUFuYWx5c2VyOjpvcGVyYXRvcj0oY2xhc3MgQ1F1ZXJ5QW5hbHlzZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1F1ZXJ5QW5hbHlzZXJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUmV1c2VNZW1vcnlNYW5hZ2VyICYgX19wdHI2NCBfX2NkZWNsIENSZXVzZU1lbW9yeU1hbmFnZXI6Om9wZXJhdG9yPShjbGFzcyBDUmV1c2VNZW1vcnlNYW5hZ2VyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENSZXVzZU1lbW9yeU1hbmFnZXJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NvcnRlZEFycmF5OjpvcGVyYXRvcj0oY2xhc3MgQ1NvcnRlZEFycmF5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENTb3J0ZWRBcnJheUBAUUVBQVhBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RhbmRhcmRNZXRhRGF0YSAmIF9fcHRyNjQgX19jZGVjbCBDU3RhbmRhcmRNZXRhRGF0YTo6b3BlcmF0b3I9KGNsYXNzIENTdGFuZGFyZE1ldGFEYXRhIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENTdGFuZGFyZE1ldGFEYXRhQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1RlbXBNZW1vcnlNYW5hZ2VyICYgX19wdHI2NCBfX2NkZWNsIENUZW1wTWVtb3J5TWFuYWdlcjo6b3BlcmF0b3I9KGNsYXNzIENUZW1wTWVtb3J5TWFuYWdlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDVGVtcE1lbW9yeU1hbmFnZXJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDVGltZUtlZXBlciAmIF9fcHRyNjQgX19jZGVjbCBDVGltZUtlZXBlcjo6b3BlcmF0b3I9KGNsYXNzIENUaW1lS2VlcGVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENUaW1lS2VlcGVyQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IGNvbnN0ICBDRXZhbE5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdDRXZhbE5vZGVAQDZCQA0KKzsgY29uc3QgIENNZXRhRGF0YTo6YHZmdGFibGUnDQorPz9fN0NNZXRhRGF0YUBANkJADQorOyBjb25zdCAgQ1Byb3BlcnR5UHJvamVjdGlvbkZpbHRlcjo6YHZmdGFibGUnDQorPz9fN0NQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXJAQDZCQA0KKzsgY29uc3QgIENTdGFuZGFyZE1ldGFEYXRhOjpgdmZ0YWJsZScNCis/P183Q1N0YW5kYXJkTWV0YURhdGFAQDZCQA0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NvcnRlZEFycmF5OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNTb3J0ZWRBcnJheUBAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU29ydGVkQXJyYXk6OkFkZCh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP0FkZEBDU29ydGVkQXJyYXlAQFFFQUFIX0tAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0NsYXNzSW5mb0FycmF5OjpBZGRDbGFzcyhzdHJ1Y3QgQ0NsYXNzSW5mb3JtYXRpb24gKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZENsYXNzQENDbGFzc0luZm9BcnJheUBAUUVBQV9OUEVBVUNDbGFzc0luZm9ybWF0aW9uQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU29ydGVkQXJyYXk6OkFkZERhdGFGcm9tKGNsYXNzIENTb3J0ZWRBcnJheSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkRGF0YUZyb21AQ1NvcnRlZEFycmF5QEBRRUFBSEFFQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTb3J0ZWRBcnJheTo6QWRkRGF0YUZyb20odW5zaWduZWQgX19pbnQ2NCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0FkZERhdGFGcm9tQENTb3J0ZWRBcnJheUBAUUVBQUhQRUJfS0lAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1Byb3BlcnR5UHJvamVjdGlvbkZpbHRlcjo6QWRkUHJvcGVydHkoY2xhc3MgQ1Byb3BlcnR5TmFtZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkUHJvcGVydHlAQ1Byb3BlcnR5UHJvamVjdGlvbkZpbHRlckBAUUVBQV9OQUVCVkNQcm9wZXJ0eU5hbWVAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENNZXRhRGF0YTo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQENNZXRhRGF0YUBAVUVBQUtYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENSZXVzZU1lbW9yeU1hbmFnZXI6OkFsbG9jYXRlKHZvaWQpIF9fcHRyNjQNCis/QWxsb2NhdGVAQ1JldXNlTWVtb3J5TWFuYWdlckBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENUZW1wTWVtb3J5TWFuYWdlcjo6QWxsb2NhdGUodW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9BbGxvY2F0ZUBDVGVtcE1lbW9yeU1hbmFnZXJAQFFFQUFQRUFYX0tAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENRdWVyeUFuYWx5c2VyOjpBbmREZWZpbml0ZUNsYXNzQXJyYXlzKGNsYXNzIENDbGFzc0luZm9BcnJheSAqIF9fcHRyNjQsY2xhc3MgQ0NsYXNzSW5mb0FycmF5ICogX19wdHI2NCxjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKiBfX3B0cjY0KQ0KKz9BbmREZWZpbml0ZUNsYXNzQXJyYXlzQENRdWVyeUFuYWx5c2VyQEBLQUpQRUFWQ0NsYXNzSW5mb0FycmF5QEAwMEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1F1ZXJ5QW5hbHlzZXI6OkFuZFBvc3NpYmxlQ2xhc3NBcnJheXMoY2xhc3MgQ0NsYXNzSW5mb0FycmF5ICogX19wdHI2NCxjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKiBfX3B0cjY0LGNsYXNzIENDbGFzc0luZm9BcnJheSAqIF9fcHRyNjQpDQorP0FuZFBvc3NpYmxlQ2xhc3NBcnJheXNAQ1F1ZXJ5QW5hbHlzZXJAQEtBSlBFQVZDQ2xhc3NJbmZvQXJyYXlAQDAwQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgX19jZGVjbCBDUXVlcnlBbmFseXNlcjo6QW5kUXVlcnlFeHByZXNzaW9ucyhzdHJ1Y3QgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAqIF9fcHRyNjQsc3RydWN0IFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gKiBfX3B0cjY0LHN0cnVjdCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OICogX19wdHI2NCkNCis/QW5kUXVlcnlFeHByZXNzaW9uc0BDUXVlcnlBbmFseXNlckBAS0FKUEVBVVFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT05AQDAwQFoNCis7IHByb3RlY3RlZDogc3RhdGljIHZvaWQgX19jZGVjbCBDUXVlcnlBbmFseXNlcjo6QXBwZW5kUXVlcnlFeHByZXNzaW9uKHN0cnVjdCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OICogX19wdHI2NCxzdHJ1Y3QgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAqIF9fcHRyNjQpDQorP0FwcGVuZFF1ZXJ5RXhwcmVzc2lvbkBDUXVlcnlBbmFseXNlckBAS0FYUEVBVVFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT05AQDBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0V2YWxUcmVlOjpBcHBseVByZWRpY2F0ZShjbGFzcyBDTGVhZlByZWRpY2F0ZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwbHlQcmVkaWNhdGVAQ0V2YWxUcmVlQEBRRUFBSlBFQVZDTGVhZlByZWRpY2F0ZUBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDRXZhbFRyZWU6OkJ1aWxkRnJvbVRva2VuKGNsYXNzIENDb250ZXh0TWV0YURhdGEgKiBfX3B0cjY0LGNsYXNzIENJbXBsaWNhdGlvbkxpc3QgJiBfX3B0cjY0LHN0cnVjdCBRTF9MRVZFTF8xX1RPS0VOICYgX19wdHI2NCxjbGFzcyBDRXZhbE5vZGUgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/QnVpbGRGcm9tVG9rZW5AQ0V2YWxUcmVlQEBTQUpQRUFWQ0NvbnRleHRNZXRhRGF0YUBAQUVBVkNJbXBsaWNhdGlvbkxpc3RAQEFFQVVRTF9MRVZFTF8xX1RPS0VOQEBQRUFQRUFWQ0V2YWxOb2RlQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENFdmFsVHJlZTo6QnVpbGRUd29Qcm9wRnJvbVRva2VuKGNsYXNzIENDb250ZXh0TWV0YURhdGEgKiBfX3B0cjY0LGNsYXNzIENJbXBsaWNhdGlvbkxpc3QgJiBfX3B0cjY0LHN0cnVjdCBRTF9MRVZFTF8xX1RPS0VOICYgX19wdHI2NCxjbGFzcyBDRXZhbE5vZGUgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/QnVpbGRUd29Qcm9wRnJvbVRva2VuQENFdmFsVHJlZUBAU0FKUEVBVkNDb250ZXh0TWV0YURhdGFAQEFFQVZDSW1wbGljYXRpb25MaXN0QEBBRUFVUUxfTEVWRUxfMV9UT0tFTkBAUEVBUEVBVkNFdmFsTm9kZUBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDUXVlcnlBbmFseXNlcjo6Q2FuUG9pbnRUb0NsYXNzKHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENDb250ZXh0TWV0YURhdGEgKiBfX3B0cjY0KQ0KKz9DYW5Qb2ludFRvQ2xhc3NAQ1F1ZXJ5QW5hbHlzZXJAQFNBSlBFQVVJV2JlbUNsYXNzT2JqZWN0QEBQRUJHMVBFQVZDQ29udGV4dE1ldGFEYXRhQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NsYXNzSW5mb0FycmF5OjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQENDbGFzc0luZm9BcnJheUBAUUVBQVhYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0V2YWxUcmVlOjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQENFdmFsVHJlZUBAUUVBQV9OWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENPYmplY3RJbmZvOjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQENPYmplY3RJbmZvQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmV1c2VNZW1vcnlNYW5hZ2VyOjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQENSZXVzZU1lbW9yeU1hbmFnZXJAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdGFuZGFyZE1ldGFEYXRhOjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQENTdGFuZGFyZE1ldGFEYXRhQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVGVtcE1lbW9yeU1hbmFnZXI6OkNsZWFyKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJAQ1RlbXBNZW1vcnlNYW5hZ2VyQEBRRUFBWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBDRXZhbE5vZGUgKiBfX3B0cjY0IF9fY2RlY2wgQ0V2YWxOb2RlOjpDbG9uZU5vZGUoY2xhc3MgQ0V2YWxOb2RlIGNvbnN0ICogX19wdHI2NCkNCis/Q2xvbmVOb2RlQENFdmFsTm9kZUBAU0FQRUFWMUBQRUJWMUBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENFdmFsVHJlZTo6Q29tYmluZShjbGFzcyBDRXZhbE5vZGUgKiBfX3B0cjY0LGNsYXNzIENFdmFsTm9kZSAqIF9fcHRyNjQsaW50LGNsYXNzIENDb250ZXh0TWV0YURhdGEgKiBfX3B0cjY0LGNsYXNzIENJbXBsaWNhdGlvbkxpc3QgJiBfX3B0cjY0LGJvb2wsYm9vbCxjbGFzcyBDRXZhbE5vZGUgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/Q29tYmluZUBDRXZhbFRyZWVAQFNBSlBFQVZDRXZhbE5vZGVAQDBIUEVBVkNDb250ZXh0TWV0YURhdGFAQEFFQVZDSW1wbGljYXRpb25MaXN0QEBfTjNQRUFQRUFWMkBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENFdmFsVHJlZTo6Q29tYmluZUxlYWZXaXRoQnJhbmNoKGNsYXNzIENWYWx1ZU5vZGUgKiBfX3B0cjY0LGNsYXNzIENCcmFuY2hpbmdOb2RlICogX19wdHI2NCxpbnQsY2xhc3MgQ0NvbnRleHRNZXRhRGF0YSAqIF9fcHRyNjQsY2xhc3MgQ0ltcGxpY2F0aW9uTGlzdCAmIF9fcHRyNjQsYm9vbCxib29sLGNsYXNzIENFdmFsTm9kZSAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9Db21iaW5lTGVhZldpdGhCcmFuY2hAQ0V2YWxUcmVlQEBLQUpQRUFWQ1ZhbHVlTm9kZUBAUEVBVkNCcmFuY2hpbmdOb2RlQEBIUEVBVkNDb250ZXh0TWV0YURhdGFAQEFFQVZDSW1wbGljYXRpb25MaXN0QEBfTjRQRUFQRUFWQ0V2YWxOb2RlQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0V2YWxUcmVlOjpDb21iaW5lV2l0aChjbGFzcyBDRXZhbFRyZWUgJiBfX3B0cjY0LGNsYXNzIENDb250ZXh0TWV0YURhdGEgKiBfX3B0cjY0LGludCxsb25nKSBfX3B0cjY0DQorP0NvbWJpbmVXaXRoQENFdmFsVHJlZUBAUUVBQUpBRUFWMUBQRUFWQ0NvbnRleHRNZXRhRGF0YUBASEpAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0V2YWxUcmVlOjpDb21wYXJlKGNsYXNzIENFdmFsTm9kZSAqIF9fcHRyNjQsY2xhc3MgQ0V2YWxOb2RlICogX19wdHI2NCkNCis/Q29tcGFyZUBDRXZhbFRyZWVAQFNBSFBFQVZDRXZhbE5vZGVAQDBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU29ydGVkQXJyYXk6OkNvbXBhcmUoY2xhc3MgQ1NvcnRlZEFycmF5ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db21wYXJlQENTb3J0ZWRBcnJheUBAUUVBQUhBRUFWMUBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1F1ZXJ5QW5hbHlzZXI6OkNvbXBhcmVSZXF1ZXN0ZWRUb1Byb3ZpZGVkKGNsYXNzIENDbGFzc0luZm9BcnJheSAmIF9fcHRyNjQsY2xhc3MgQ0NsYXNzSW5mb0FycmF5ICYgX19wdHI2NCkNCis/Q29tcGFyZVJlcXVlc3RlZFRvUHJvdmlkZWRAQ1F1ZXJ5QW5hbHlzZXJAQFNBSEFFQVZDQ2xhc3NJbmZvQXJyYXlAQDBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU29ydGVkQXJyYXk6OkNvcHlEYXRhRnJvbShjbGFzcyBDU29ydGVkQXJyYXkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlEYXRhRnJvbUBDU29ydGVkQXJyYXlAQFFFQUFIQUVCVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1NvcnRlZEFycmF5OjpDb3B5RGF0YUZyb20odW5zaWduZWQgX19pbnQ2NCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0NvcHlEYXRhRnJvbUBDU29ydGVkQXJyYXlAQFFFQUFIUEVCX0tJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgQ1NvcnRlZEFycmF5OjpDb3B5VG8odW5zaWduZWQgX19pbnQ2NCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0NvcHlUb0BDU29ydGVkQXJyYXlAQFFFQUFJUEVBX0tJQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDRXZhbFRyZWU6OkNyZWF0ZUZyb21Db25qdW5jdGlvbihjbGFzcyBDQ29udGV4dE1ldGFEYXRhICogX19wdHI2NCxjbGFzcyBDSW1wbGljYXRpb25MaXN0ICYgX19wdHI2NCxjbGFzcyBDQ29uanVuY3Rpb24gKiBfX3B0cjY0LGNsYXNzIENFdmFsTm9kZSAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9DcmVhdGVGcm9tQ29uanVuY3Rpb25AQ0V2YWxUcmVlQEBTQUpQRUFWQ0NvbnRleHRNZXRhRGF0YUBAQUVBVkNJbXBsaWNhdGlvbkxpc3RAQFBFQVZDQ29uanVuY3Rpb25AQFBFQVBFQVZDRXZhbE5vZGVAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRXZhbFRyZWU6OkNyZWF0ZUZyb21ETkYoY2xhc3MgQ0NvbnRleHRNZXRhRGF0YSAqIF9fcHRyNjQsY2xhc3MgQ0ltcGxpY2F0aW9uTGlzdCAmIF9fcHRyNjQsY2xhc3MgQ0RORkV4cHJlc3Npb24gKiBfX3B0cjY0LGNsYXNzIENFdmFsTm9kZSAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZUZyb21ETkZAQ0V2YWxUcmVlQEBRRUFBSlBFQVZDQ29udGV4dE1ldGFEYXRhQEBBRUFWQ0ltcGxpY2F0aW9uTGlzdEBAUEVBVkNETkZFeHByZXNzaW9uQEBQRUFQRUFWQ0V2YWxOb2RlQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0V2YWxUcmVlOjpDcmVhdGVGcm9tUXVlcnkoY2xhc3MgQ0NvbnRleHRNZXRhRGF0YSAqIF9fcHRyNjQsc3RydWN0IFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gKiBfX3B0cjY0LGxvbmcsbG9uZykgX19wdHI2NA0KKz9DcmVhdGVGcm9tUXVlcnlAQ0V2YWxUcmVlQEBRRUFBSlBFQVZDQ29udGV4dE1ldGFEYXRhQEBQRUFVUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTkBASkpAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0V2YWxUcmVlOjpDcmVhdGVGcm9tUXVlcnkoY2xhc3MgQ0NvbnRleHRNZXRhRGF0YSAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCxzdHJ1Y3QgUUxfTEVWRUxfMV9UT0tFTiAqIF9fcHRyNjQsbG9uZyxsb25nKSBfX3B0cjY0DQorP0NyZWF0ZUZyb21RdWVyeUBDRXZhbFRyZWVAQFFFQUFKUEVBVkNDb250ZXh0TWV0YURhdGFAQFBFQkdIUEVBVVFMX0xFVkVMXzFfVE9LRU5AQEpKQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENFdmFsVHJlZTo6Q3JlYXRlRnJvbVF1ZXJ5KGNsYXNzIENDb250ZXh0TWV0YURhdGEgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nLGxvbmcpIF9fcHRyNjQNCis/Q3JlYXRlRnJvbVF1ZXJ5QENFdmFsVHJlZUBAUUVBQUpQRUFWQ0NvbnRleHRNZXRhRGF0YUBAUEVCR0pKQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENFdmFsVHJlZTo6Q3JlYXRlUHJvamVjdGlvbihjbGFzcyBDRXZhbFRyZWUgJiBfX3B0cjY0LGNsYXNzIENDb250ZXh0TWV0YURhdGEgKiBfX3B0cjY0LGNsYXNzIENQcm9qZWN0aW9uRmlsdGVyICogX19wdHI2NCxlbnVtIEVQcm9qZWN0aW9uVHlwZSxib29sKSBfX3B0cjY0DQorP0NyZWF0ZVByb2plY3Rpb25AQ0V2YWxUcmVlQEBRRUFBSkFFQVYxQFBFQVZDQ29udGV4dE1ldGFEYXRhQEBQRUFWQ1Byb2plY3Rpb25GaWx0ZXJAQFc0RVByb2plY3Rpb25UeXBlQEBfTkBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDVGltZUtlZXBlcjo6RGVjb3JhdGVPYmplY3Qoc3RydWN0IF9JV21pT2JqZWN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWNvcmF0ZU9iamVjdEBDVGltZUtlZXBlckBAUUVBQV9OUEVBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NvcnRlZEFycmF5OjpFbXB0eSh2b2lkKSBfX3B0cjY0DQorP0VtcHR5QENTb3J0ZWRBcnJheUBAUUVBQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0V2YWxUcmVlOjpFdmFsdWF0ZShzdHJ1Y3QgSVdiZW1PYmplY3RBY2Nlc3MgKiBfX3B0cjY0LGNsYXNzIENTb3J0ZWRBcnJheSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RXZhbHVhdGVAQ0V2YWxUcmVlQEBRRUFBSlBFQVVJV2JlbU9iamVjdEFjY2Vzc0BAQUVBVkNTb3J0ZWRBcnJheUBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDRXZhbFRyZWU6OkV2YWx1YXRlKGNsYXNzIENPYmplY3RJbmZvICYgX19wdHI2NCxjbGFzcyBDRXZhbE5vZGUgKiBfX3B0cjY0LGNsYXNzIENTb3J0ZWRBcnJheSAmIF9fcHRyNjQpDQorP0V2YWx1YXRlQENFdmFsVHJlZUBAU0FKQUVBVkNPYmplY3RJbmZvQEBQRUFWQ0V2YWxOb2RlQEBBRUFWQ1NvcnRlZEFycmF5QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBDU29ydGVkQXJyYXk6OkZpbmQodW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9GaW5kQENTb3J0ZWRBcnJheUBAUUVBQUlfS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmV1c2VNZW1vcnlNYW5hZ2VyOjpGcmVlKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZyZWVAQ1JldXNlTWVtb3J5TWFuYWdlckBAUUVBQVhQRUFYQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENUZW1wTWVtb3J5TWFuYWdlcjo6RnJlZSh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP0ZyZWVAQ1RlbXBNZW1vcnlNYW5hZ2VyQEBRRUFBWFBFQVhfS0BaDQorOyBsb25nIF9fY2RlY2wgR2V0QWNjZXNzTWFzayh2b2lkICogX19wdHI2NCxzdHJ1Y3QgX0FDTCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpDQorP0dldEFjY2Vzc01hc2tAQFlBSlBFQVhQRUFVX0FDTEBAUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgKiBfX3B0cjY0IF9fY2RlY2wgQ1NvcnRlZEFycmF5OjpHZXRBcnJheVB0cih2b2lkKSBfX3B0cjY0DQorP0dldEFycmF5UHRyQENTb3J0ZWRBcnJheUBAUUVBQVBFQV9LWFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIENTb3J0ZWRBcnJheTo6R2V0QXQoaW50KSBfX3B0cjY0DQorP0dldEF0QENTb3J0ZWRBcnJheUBAUUVBQV9LSEBaDQorOyBwdWJsaWM6IHN0cnVjdCBDQ2xhc3NJbmZvcm1hdGlvbiAqIF9fcHRyNjQgX19jZGVjbCBDQ2xhc3NJbmZvQXJyYXk6OkdldENsYXNzKGludCkgX19wdHI2NA0KKz9HZXRDbGFzc0BDQ2xhc3NJbmZvQXJyYXlAQFFFQUFQRUFVQ0NsYXNzSW5mb3JtYXRpb25AQEhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0NvbnRleHRNZXRhRGF0YTo6R2V0Q2xhc3ModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBfSVdtaU9iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldENsYXNzQENDb250ZXh0TWV0YURhdGFAQFFFQUFKUEVCR1BFQVBFQVVfSVdtaU9iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ01ldGFEYXRhOjpHZXRDbGFzcyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IElXYmVtQ29udGV4dCAqIF9fcHRyNjQsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDbGFzc0BDTWV0YURhdGFAQFVFQUFKUEVCR1BFQVVJV2JlbUNvbnRleHRAQFBFQVBFQVVJV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDU3RhbmRhcmRNZXRhRGF0YTo6R2V0Q2xhc3ModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNvbnRleHQgKiBfX3B0cjY0LHN0cnVjdCBfSVdtaU9iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldENsYXNzQENTdGFuZGFyZE1ldGFEYXRhQEBVRUFBSlBFQkdQRUFVSVdiZW1Db250ZXh0QEBQRUFQRUFVX0lXbWlPYmplY3RAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1F1ZXJ5QW5hbHlzZXI6OkdldERlZmluaXRlSW5zdGFuY2VDbGFzc2VzKHN0cnVjdCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OICogX19wdHI2NCxjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKiBfX3B0cjY0ICYgX19wdHI2NCkNCis/R2V0RGVmaW5pdGVJbnN0YW5jZUNsYXNzZXNAQ1F1ZXJ5QW5hbHlzZXJAQFNBSlBFQVVRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBBRUFQRUFWQ0NsYXNzSW5mb0FycmF5QEBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENRdWVyeUFuYWx5c2VyOjpHZXRJbnN0YW5jZUNsYXNzZXMoc3RydWN0IFFMX0xFVkVMXzFfVE9LRU4gJiBfX3B0cjY0LGNsYXNzIENDbGFzc0luZm9BcnJheSAmIF9fcHRyNjQpDQorP0dldEluc3RhbmNlQ2xhc3Nlc0BDUXVlcnlBbmFseXNlckBAS0FKQUVBVVFMX0xFVkVMXzFfVE9LRU5AQEFFQVZDQ2xhc3NJbmZvQXJyYXlAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDT2JqZWN0SW5mbzo6R2V0TGVuZ3RoKHZvaWQpIF9fcHRyNjQNCis/R2V0TGVuZ3RoQENPYmplY3RJbmZvQEBRRUFBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1F1ZXJ5QW5hbHlzZXI6OkdldExpbWl0aW5nUXVlcnlGb3JJbnN0YW5jZUNsYXNzKHN0cnVjdCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OICogX19wdHI2NCxzdHJ1Y3QgQ0NsYXNzSW5mb3JtYXRpb24gJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAmIF9fcHRyNjQpDQorP0dldExpbWl0aW5nUXVlcnlGb3JJbnN0YW5jZUNsYXNzQENRdWVyeUFuYWx5c2VyQEBTQUpQRUFVUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTkBAQUVBVUNDbGFzc0luZm9ybWF0aW9uQEBBRUFQRUFHQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDUXVlcnlBbmFseXNlcjo6R2V0TmVjZXNzYXJ5UXVlcnlGb3JDbGFzcyhzdHJ1Y3QgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAqIF9fcHRyNjQsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0LGNsYXNzIENXU3RyaW5nQXJyYXkgJiBfX3B0cjY0LHN0cnVjdCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OICogX19wdHI2NCAmIF9fcHRyNjQpDQorP0dldE5lY2Vzc2FyeVF1ZXJ5Rm9yQ2xhc3NAQ1F1ZXJ5QW5hbHlzZXJAQFNBSlBFQVVRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBQRUFVSVdiZW1DbGFzc09iamVjdEBAQUVBVkNXU3RyaW5nQXJyYXlAQEFFQVBFQVUyQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1F1ZXJ5QW5hbHlzZXI6OkdldE5lY2Vzc2FyeVF1ZXJ5Rm9yUHJvcGVydHkoc3RydWN0IFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gKiBfX3B0cjY0LGNsYXNzIENQcm9wZXJ0eU5hbWUgJiBfX3B0cjY0LHN0cnVjdCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OICogX19wdHI2NCAmIF9fcHRyNjQpDQorP0dldE5lY2Vzc2FyeVF1ZXJ5Rm9yUHJvcGVydHlAQ1F1ZXJ5QW5hbHlzZXJAQFNBSlBFQVVRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBBRUFWQ1Byb3BlcnR5TmFtZUBAQUVBUEVBVTJAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NsYXNzSW5mb0FycmF5OjpHZXROdW1DbGFzc2VzKHZvaWQpIF9fcHRyNjQNCis/R2V0TnVtQ2xhc3Nlc0BDQ2xhc3NJbmZvQXJyYXlAQFFFQUFIWFoNCis7IHB1YmxpYzogc3RydWN0IF9JV21pT2JqZWN0ICogX19wdHI2NCBfX2NkZWNsIENPYmplY3RJbmZvOjpHZXRPYmplY3RBdChsb25nKSBfX3B0cjY0DQorP0dldE9iamVjdEF0QENPYmplY3RJbmZvQEBRRUFBUEVBVV9JV21pT2JqZWN0QEBKQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDUXVlcnlBbmFseXNlcjo6R2V0UG9zc2libGVJbnN0YW5jZUNsYXNzZXMoc3RydWN0IFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gKiBfX3B0cjY0LGNsYXNzIENDbGFzc0luZm9BcnJheSAqIF9fcHRyNjQgJiBfX3B0cjY0KQ0KKz9HZXRQb3NzaWJsZUluc3RhbmNlQ2xhc3Nlc0BDUXVlcnlBbmFseXNlckBAU0FKUEVBVVFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT05AQEFFQVBFQVZDQ2xhc3NJbmZvQXJyYXlAQEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1F1ZXJ5QW5hbHlzZXI6OkdldFByb3BlcnRpZXNUaGF0TXVzdERpZmZlcihzdHJ1Y3QgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAqIF9fcHRyNjQsc3RydWN0IENDbGFzc0luZm9ybWF0aW9uICYgX19wdHI2NCxjbGFzcyBDV1N0cmluZ0FycmF5ICYgX19wdHI2NCkNCis/R2V0UHJvcGVydGllc1RoYXRNdXN0RGlmZmVyQENRdWVyeUFuYWx5c2VyQEBLQUpQRUFVUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTkBAQUVBVUNDbGFzc0luZm9ybWF0aW9uQEBBRUFWQ1dTdHJpbmdBcnJheUBAQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENFdmFsTm9kZTo6R2V0VHlwZShjbGFzcyBDRXZhbE5vZGUgKiBfX3B0cjY0KQ0KKz9HZXRUeXBlQENFdmFsTm9kZUBAU0FIUEVBVjFAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgX19jZGVjbCBDRXZhbFRyZWU6OklubmVyQ29tYmluZShjbGFzcyBDRXZhbE5vZGUgKiBfX3B0cjY0LGNsYXNzIENFdmFsTm9kZSAqIF9fcHRyNjQsaW50LGNsYXNzIENDb250ZXh0TWV0YURhdGEgKiBfX3B0cjY0LGNsYXNzIENJbXBsaWNhdGlvbkxpc3QgJiBfX3B0cjY0LGJvb2wsYm9vbCxjbGFzcyBDRXZhbE5vZGUgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/SW5uZXJDb21iaW5lQENFdmFsVHJlZUBAS0FKUEVBVkNFdmFsTm9kZUBAMEhQRUFWQ0NvbnRleHRNZXRhRGF0YUBAQUVBVkNJbXBsaWNhdGlvbkxpc3RAQF9OM1BFQVBFQVYyQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU29ydGVkQXJyYXk6Okluc2VydCh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP0luc2VydEBDU29ydGVkQXJyYXlAQFFFQUFYX0tAWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIENFdmFsTm9kZTo6SXNBbGxGYWxzZShjbGFzcyBDRXZhbE5vZGUgKiBfX3B0cjY0KQ0KKz9Jc0FsbEZhbHNlQENFdmFsTm9kZUBAU0FfTlBFQVYxQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgYm9vbCBfX2NkZWNsIENFdmFsTm9kZTo6SXNBbGxGYWxzZSh2b2lkKSBfX3B0cjY0DQorP0lzQWxsRmFsc2VAQ0V2YWxOb2RlQEBVRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0V2YWxUcmVlOjpJc0ZhbHNlKHZvaWQpIF9fcHRyNjQNCis/SXNGYWxzZUBDRXZhbFRyZWVAQFFFQUFfTlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgYm9vbCBfX2NkZWNsIENQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXI6OklzSW5TZXQoY2xhc3MgQ0V2YWxOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9Jc0luU2V0QENQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXJAQFVFQUFfTlBFQVZDRXZhbE5vZGVAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgQ0V2YWxOb2RlOjpJc0ludmFsaWQoY2xhc3MgQ0V2YWxOb2RlICogX19wdHI2NCkNCis/SXNJbnZhbGlkQENFdmFsTm9kZUBAU0FfTlBFQVYxQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgYm9vbCBfX2NkZWNsIENFdmFsTm9kZTo6SXNJbnZhbGlkKHZvaWQpIF9fcHRyNjQNCis/SXNJbnZhbGlkQENFdmFsTm9kZUBAVUVBQV9OWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NsYXNzSW5mb0FycmF5OjpJc0xpbWl0ZWQodm9pZCkgX19wdHI2NA0KKz9Jc0xpbWl0ZWRAQ0NsYXNzSW5mb0FycmF5QEBRRUFBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ0V2YWxUcmVlOjpJc01lcmdlQWR2aXNhYmxlKGNsYXNzIENFdmFsTm9kZSAqIF9fcHRyNjQsY2xhc3MgQ0V2YWxOb2RlICogX19wdHI2NCxjbGFzcyBDSW1wbGljYXRpb25MaXN0ICYgX19wdHI2NCkNCis/SXNNZXJnZUFkdmlzYWJsZUBDRXZhbFRyZWVAQFNBSlBFQVZDRXZhbE5vZGVAQDBBRUFWQ0ltcGxpY2F0aW9uTGlzdEBAQFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBDRXZhbE5vZGU6OklzTm9vcChjbGFzcyBDRXZhbE5vZGUgKiBfX3B0cjY0LGludCkNCis/SXNOb29wQENFdmFsTm9kZUBAU0FfTlBFQVYxQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGJvb2wgX19jZGVjbCBDRXZhbE5vZGU6OklzTm9vcChpbnQpIF9fcHRyNjQNCis/SXNOb29wQENFdmFsTm9kZUBAVUVBQV9OSEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBpbnQgX19jZGVjbCBDUXVlcnlBbmFseXNlcjo6SXNQcm9wZXJ0eUluQ2xhc3MoY2xhc3MgQ1Byb3BlcnR5TmFtZSAmIF9fcHRyNjQsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0LGNsYXNzIENXU3RyaW5nQXJyYXkgJiBfX3B0cjY0KQ0KKz9Jc1Byb3BlcnR5SW5DbGFzc0BDUXVlcnlBbmFseXNlckBAS0FIQUVBVkNQcm9wZXJ0eU5hbWVAQFBFQVVJV2JlbUNsYXNzT2JqZWN0QEBBRUFWQ1dTdHJpbmdBcnJheUBAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX2NkZWNsIENRdWVyeUFuYWx5c2VyOjpJc1Rva2VuQWJvdXRDbGFzcyhzdHJ1Y3QgUUxfTEVWRUxfMV9UT0tFTiAmIF9fcHRyNjQsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0LGNsYXNzIENXU3RyaW5nQXJyYXkgJiBfX3B0cjY0KQ0KKz9Jc1Rva2VuQWJvdXRDbGFzc0BDUXVlcnlBbmFseXNlckBAS0FIQUVBVVFMX0xFVkVMXzFfVE9LRU5AQFBFQVVJV2JlbUNsYXNzT2JqZWN0QEBBRUFWQ1dTdHJpbmdBcnJheUBAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX2NkZWNsIENRdWVyeUFuYWx5c2VyOjpJc1Rva2VuQWJvdXRQcm9wZXJ0eShzdHJ1Y3QgUUxfTEVWRUxfMV9UT0tFTiAmIF9fcHRyNjQsY2xhc3MgQ1Byb3BlcnR5TmFtZSAmIF9fcHRyNjQpDQorP0lzVG9rZW5BYm91dFByb3BlcnR5QENRdWVyeUFuYWx5c2VyQEBLQUhBRUFVUUxfTEVWRUxfMV9UT0tFTkBAQUVBVkNQcm9wZXJ0eU5hbWVAQEBaDQorOyBsb25nIF9fY2RlY2wgSXNVc2VyQWRtaW5pc3RyYXRvcih2b2lkICogX19wdHI2NCkNCis/SXNVc2VyQWRtaW5pc3RyYXRvckBAWUFKUEVBWEBaDQorOyBsb25nIF9fY2RlY2wgSXNVc2VySW5Hcm91cCh2b2lkICogX19wdHI2NCx2b2lkICogX19wdHI2NCkNCis/SXNVc2VySW5Hcm91cEBAWUFKUEVBWDBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0V2YWxUcmVlOjpJc1ZhbGlkKHZvaWQpIF9fcHRyNjQNCis/SXNWYWxpZEBDRXZhbFRyZWVAQFFFQUFfTlhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1F1ZXJ5QW5hbHlzZXI6Ok5lZ2F0ZURlZmluaXRlQ2xhc3NBcnJheShjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKiBfX3B0cjY0LGNsYXNzIENDbGFzc0luZm9BcnJheSAqIF9fcHRyNjQpDQorP05lZ2F0ZURlZmluaXRlQ2xhc3NBcnJheUBDUXVlcnlBbmFseXNlckBAS0FKUEVBVkNDbGFzc0luZm9BcnJheUBAMEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1F1ZXJ5QW5hbHlzZXI6Ok5lZ2F0ZVBvc3NpYmxlQ2xhc3NBcnJheShjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKiBfX3B0cjY0LGNsYXNzIENDbGFzc0luZm9BcnJheSAqIF9fcHRyNjQpDQorP05lZ2F0ZVBvc3NpYmxlQ2xhc3NBcnJheUBDUXVlcnlBbmFseXNlckBAS0FKUEVBVkNDbGFzc0luZm9BcnJheUBAMEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1F1ZXJ5QW5hbHlzZXI6Ok5lZ2F0ZVF1ZXJ5RXhwcmVzc2lvbihzdHJ1Y3QgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAqIF9fcHRyNjQsc3RydWN0IFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gKiBfX3B0cjY0KQ0KKz9OZWdhdGVRdWVyeUV4cHJlc3Npb25AQ1F1ZXJ5QW5hbHlzZXJAQEtBSlBFQVVRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEAwQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0V2YWxOb2RlOjpPcHRpbWl6ZShjbGFzcyBDQ29udGV4dE1ldGFEYXRhICogX19wdHI2NCxjbGFzcyBDRXZhbE5vZGUgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9PcHRpbWl6ZUBDRXZhbE5vZGVAQFVFQUFKUEVBVkNDb250ZXh0TWV0YURhdGFAQFBFQVBFQVYxQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRXZhbFRyZWU6Ok9wdGltaXplKGNsYXNzIENDb250ZXh0TWV0YURhdGEgKiBfX3B0cjY0KSBfX3B0cjY0DQorP09wdGltaXplQENFdmFsVHJlZUBAUUVBQUpQRUFWQ0NvbnRleHRNZXRhRGF0YUBAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgX19jZGVjbCBDUXVlcnlBbmFseXNlcjo6T3JEZWZpbml0ZUNsYXNzQXJyYXlzKGNsYXNzIENDbGFzc0luZm9BcnJheSAqIF9fcHRyNjQsY2xhc3MgQ0NsYXNzSW5mb0FycmF5ICogX19wdHI2NCxjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKiBfX3B0cjY0KQ0KKz9PckRlZmluaXRlQ2xhc3NBcnJheXNAQ1F1ZXJ5QW5hbHlzZXJAQEtBSlBFQVZDQ2xhc3NJbmZvQXJyYXlAQDAwQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgX19jZGVjbCBDUXVlcnlBbmFseXNlcjo6T3JQb3NzaWJsZUNsYXNzQXJyYXlzKGNsYXNzIENDbGFzc0luZm9BcnJheSAqIF9fcHRyNjQsY2xhc3MgQ0NsYXNzSW5mb0FycmF5ICogX19wdHI2NCxjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKiBfX3B0cjY0KQ0KKz9PclBvc3NpYmxlQ2xhc3NBcnJheXNAQ1F1ZXJ5QW5hbHlzZXJAQEtBSlBFQVZDQ2xhc3NJbmZvQXJyYXlAQDAwQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgX19jZGVjbCBDUXVlcnlBbmFseXNlcjo6T3JRdWVyeUV4cHJlc3Npb25zKHN0cnVjdCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OICogX19wdHI2NCxzdHJ1Y3QgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAqIF9fcHRyNjQsc3RydWN0IFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gKiBfX3B0cjY0KQ0KKz9PclF1ZXJ5RXhwcmVzc2lvbnNAQ1F1ZXJ5QW5hbHlzZXJAQEtBSlBFQVVRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEAwMEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ0V2YWxOb2RlOjpQcmludE9mZnNldChzdHJ1Y3QgX2lvYnVmICogX19wdHI2NCxpbnQpDQorP1ByaW50T2Zmc2V0QENFdmFsTm9kZUBAU0FYUEVBVV9pb2J1ZkBASEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ0V2YWxUcmVlOjpQcm9qZWN0KGNsYXNzIENDb250ZXh0TWV0YURhdGEgKiBfX3B0cjY0LGNsYXNzIENJbXBsaWNhdGlvbkxpc3QgJiBfX3B0cjY0LGNsYXNzIENFdmFsTm9kZSAqIF9fcHRyNjQsY2xhc3MgQ1Byb2plY3Rpb25GaWx0ZXIgKiBfX3B0cjY0LGVudW0gRVByb2plY3Rpb25UeXBlLGJvb2wsY2xhc3MgQ0V2YWxOb2RlICogX19wdHI2NCAqIF9fcHRyNjQpDQorP1Byb2plY3RAQ0V2YWxUcmVlQEBTQUpQRUFWQ0NvbnRleHRNZXRhRGF0YUBAQUVBVkNJbXBsaWNhdGlvbkxpc3RAQFBFQVZDRXZhbE5vZGVAQFBFQVZDUHJvamVjdGlvbkZpbHRlckBAVzRFUHJvamVjdGlvblR5cGVAQF9OUEVBUEVBVjRAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ01ldGFEYXRhOjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUludGVyZmFjZUBDTWV0YURhdGFAQFVFQUFKQUVCVV9HVUlEQEBQRUFQRUFYQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENFdmFsVHJlZTo6UmViYXNlKHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/UmViYXNlQENFdmFsVHJlZUBAUUVBQVhfS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU29ydGVkQXJyYXk6OlJlYmFzZSh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP1JlYmFzZUBDU29ydGVkQXJyYXlAQFFFQUFYX0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTWV0YURhdGE6OlJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlQENNZXRhRGF0YUBAVUVBQUtYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NvcnRlZEFycmF5OjpSZW1vdmUodW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9SZW1vdmVAQ1NvcnRlZEFycmF5QEBRRUFBX05fS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ2xhc3NJbmZvQXJyYXk6OlJlbW92ZUNsYXNzKGludCkgX19wdHI2NA0KKz9SZW1vdmVDbGFzc0BDQ2xhc3NJbmZvQXJyYXlAQFFFQUFYSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRXZhbFRyZWU6OlJlbW92ZUluZGV4KGludCkgX19wdHI2NA0KKz9SZW1vdmVJbmRleEBDRXZhbFRyZWVAQFFFQUFKSEBaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBDVGVtcE1lbW9yeU1hbmFnZXI6OlJvdW5kVXAodW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9Sb3VuZFVwQENUZW1wTWVtb3J5TWFuYWdlckBASUVBQV9LX0tAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0V2YWxUcmVlOjpTZXRCb29sKGludCkgX19wdHI2NA0KKz9TZXRCb29sQENFdmFsVHJlZUBAUUVBQV9OSEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDT2JqZWN0SW5mbzo6U2V0TGVuZ3RoKGxvbmcpIF9fcHRyNjQNCis/U2V0TGVuZ3RoQENPYmplY3RJbmZvQEBRRUFBX05KQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDbGFzc0luZm9BcnJheTo6U2V0TGltaXRlZChpbnQpIF9fcHRyNjQNCis/U2V0TGltaXRlZEBDQ2xhc3NJbmZvQXJyYXlAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDT2JqZWN0SW5mbzo6U2V0T2JqZWN0QXQobG9uZyxzdHJ1Y3QgX0lXbWlPYmplY3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldE9iamVjdEF0QENPYmplY3RJbmZvQEBRRUFBWEpQRUFVX0lXbWlPYmplY3RAQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDQ2xhc3NJbmZvQXJyYXk6OlNldE9uZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1NldE9uZUBDQ2xhc3NJbmZvQXJyYXlAQFFFQUFfTlBFQkdIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTb3J0ZWRBcnJheTo6U2V0U2l6ZShpbnQpIF9fcHRyNjQNCis/U2V0U2l6ZUBDU29ydGVkQXJyYXlAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1F1ZXJ5QW5hbHlzZXI6OlNpbXBsaWZ5UXVlcnlGb3JDaGlsZChzdHJ1Y3QgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCxjbGFzcyBDQ29udGV4dE1ldGFEYXRhICogX19wdHI2NCxzdHJ1Y3QgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAqIF9fcHRyNjQgJiBfX3B0cjY0KQ0KKz9TaW1wbGlmeVF1ZXJ5Rm9yQ2hpbGRAQ1F1ZXJ5QW5hbHlzZXJAQFNBSlBFQVVRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBQRUJHUEVBVUlXYmVtQ2xhc3NPYmplY3RAQFBFQVZDQ29udGV4dE1ldGFEYXRhQEBBRUFQRUFVMkBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1F1ZXJ5QW5hbHlzZXI6OlNpbXBsaWZ5VG9rZW5Gb3JDaGlsZChzdHJ1Y3QgUUxfTEVWRUxfMV9UT0tFTiAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCxjbGFzcyBDQ29udGV4dE1ldGFEYXRhICogX19wdHI2NCkNCis/U2ltcGxpZnlUb2tlbkZvckNoaWxkQENRdWVyeUFuYWx5c2VyQEBLQUhBRUFVUUxfTEVWRUxfMV9UT0tFTkBAUEVCR1BFQVVJV2JlbUNsYXNzT2JqZWN0QEBQRUFWQ0NvbnRleHRNZXRhRGF0YUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1NvcnRlZEFycmF5OjpTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U2l6ZUBDU29ydGVkQXJyYXlAQFFFQkFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCAqIF9fcHRyNjQgX19jZGVjbCBDU29ydGVkQXJyYXk6OlVuYmluZFB0cih2b2lkKSBfX3B0cjY0DQorP1VuYmluZFB0ckBDU29ydGVkQXJyYXlAQFFFQUFQRUFfS1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRXZhbFRyZWU6OlV0aWxpemVHdWFyYW50ZWUoY2xhc3MgQ0V2YWxUcmVlICYgX19wdHI2NCxjbGFzcyBDQ29udGV4dE1ldGFEYXRhICogX19wdHI2NCkgX19wdHI2NA0KKz9VdGlsaXplR3VhcmFudGVlQENFdmFsVHJlZUBAUUVBQUpBRUFWMUBQRUFWQ0NvbnRleHRNZXRhRGF0YUBAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX2NkZWNsIENRdWVyeUFuYWx5c2VyOjpWYWxpZGF0ZVNRTERhdGVUaW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/VmFsaWRhdGVTUUxEYXRlVGltZUBDUXVlcnlBbmFseXNlckBAS0FIUEVCR0BaDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9ldmVudGNscy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9ldmVudGNscy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTUxZDM3MAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2V2ZW50Y2xzLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEV2ZW50Q2xzLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBFdmVudENscy5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxJbnN0YWxsDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZXZlbnRsb2cuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZXZlbnRsb2cuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJlOWM0NTcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9ldmVudGxvZy5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGV2ZW50bG9nLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBldmVudGxvZy5kbGwNCitFWFBPUlRTDQorU3ZjRW50cnlfRXZlbnRsb2cNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9ldm50YWdudC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9ldm50YWdudC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDZiZGQ3MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2V2bnRhZ250LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHNubXBlbGVhLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBzbm1wZWxlYS5kbGwNCitFWFBPUlRTDQorU25tcEV4dGVuc2lvbkNsb3NlDQorU25tcEV4dGVuc2lvbkluaXQNCitTbm1wRXh0ZW5zaW9uUXVlcnkNCitTbm1wRXh0ZW5zaW9uVHJhcA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2V2bnRycHJ2LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2V2bnRycHJ2LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40OGQyY2E2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZXZudHJwcnYuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZXZudHJwcnYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGV2bnRycHJ2LmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2V2dGdwcm92LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2V2dGdwcm92LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jN2IxNDEwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZXZ0Z3Byb3YuZGVmCkBAIC0wLDAgKzEsMTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRXZUZ1Byb3YuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEV2VGdQcm92LmRsbA0KK0VYUE9SVFMNCis7IHVuc2lnbmVkIGxvbmcgIG1fZHdOZXh0VHJpZ2dlcklEDQorP21fZHdOZXh0VHJpZ2dlcklEQEAzS0EgREFUQQ0KKzsgdW5zaWduZWQgbG9uZyAgbV9kd1RvdGFsVHJpZ2dlcnMNCis/bV9kd1RvdGFsVHJpZ2dlcnNAQDNLQSBEQVRBDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9leHN0cmFjZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9leHN0cmFjZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODQzMjRiNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2V4c3RyYWNlLmRlZgpAQCAtMCwwICsxLDIxIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGV4c3RyYWNlLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBleHN0cmFjZS5kbGwNCitFWFBPUlRTDQorQXN5bmNCaW5hcnlUcmFjZQ0KK0FzeW5jU3RyaW5nVHJhY2UNCitEZWJ1Z0Fzc2VydA0KK0RsbE1haW4NCitGbHVzaEFzeW5jVHJhY2UNCitJbml0QXN5bmNUcmFjZQ0KK1NldEFzeW5jVHJhY2VQYXJhbXMNCitTZXRBc3luY1RyYWNlUGFyYW1zRXgNCitUZXJtQXN5bmNUcmFjZQ0KK19fZHdFbmFibGVkVHJhY2VzIERBVEENCitnX1Rlc3RUcmFjZQ0KK2dfVGVzdFRyYWNlRGlzYWJsZQ0KK2dfVGVzdFRyYWNlRW5hYmxlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZXh0bWdyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2V4dG1nci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzk4NmI5MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2V4dG1nci5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBleHRtZ3IuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGV4dG1nci5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9mM2Fodm9hcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9mM2Fodm9hcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmFiNmY1NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2YzYWh2b2FzLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEYzQUhWT0FTLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBGM0FIVk9BUy5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQorS2JkTmxzTGF5ZXJEZXNjcmlwdG9yDQorRnVqaXRzdU95YXl1YmlDb250cm9sDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZmFzdHByb3guZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZmFzdHByb3guZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM2ZmI2YzQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9mYXN0cHJveC5kZWYKQEAgLTAsMCArMSwzMTEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEZhc3RQcm94LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBGYXN0UHJveC5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ltcGw8c3RydWN0IElXYmVtT2JqZWN0VGV4dFNyYyxjbGFzcyBDV21pT2JqZWN0VGV4dFNyYz46OkNJbXBsPHN0cnVjdCBJV2JlbU9iamVjdFRleHRTcmMsY2xhc3MgQ1dtaU9iamVjdFRleHRTcmM+KGNsYXNzIENJbXBsPHN0cnVjdCBJV2JlbU9iamVjdFRleHRTcmMsY2xhc3MgQ1dtaU9iamVjdFRleHRTcmM+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kQ0ltcGxAVUlXYmVtT2JqZWN0VGV4dFNyY0BAVkNXbWlPYmplY3RUZXh0U3JjQEBAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW1wbDxzdHJ1Y3QgSVdiZW1PYmplY3RUZXh0U3JjLGNsYXNzIENXbWlPYmplY3RUZXh0U3JjPjo6Q0ltcGw8c3RydWN0IElXYmVtT2JqZWN0VGV4dFNyYyxjbGFzcyBDV21pT2JqZWN0VGV4dFNyYz4oY2xhc3MgQ1dtaU9iamVjdFRleHRTcmMgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRDSW1wbEBVSVdiZW1PYmplY3RUZXh0U3JjQEBWQ1dtaU9iamVjdFRleHRTcmNAQEBAUUVBQUBQRUFWQ1dtaU9iamVjdFRleHRTcmNAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ltcGw8c3RydWN0IElXYmVtUmVmcmVzaGluZ1NlcnZpY2VzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz46OkNJbXBsPHN0cnVjdCBJV2JlbVJlZnJlc2hpbmdTZXJ2aWNlcyxjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM+KGNsYXNzIENJbXBsPHN0cnVjdCBJV2JlbVJlZnJlc2hpbmdTZXJ2aWNlcyxjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kQ0ltcGxAVUlXYmVtUmVmcmVzaGluZ1NlcnZpY2VzQEBWQ1diZW1SZWZyZXNoaW5nU3ZjQEBAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW1wbDxzdHJ1Y3QgSVdiZW1SZWZyZXNoaW5nU2VydmljZXMsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPjo6Q0ltcGw8c3RydWN0IElXYmVtUmVmcmVzaGluZ1NlcnZpY2VzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz4oY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjICogX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kQ0ltcGxAVUlXYmVtUmVmcmVzaGluZ1NlcnZpY2VzQEBWQ1diZW1SZWZyZXNoaW5nU3ZjQEBAQFFFQUFAUEVBVkNXYmVtUmVmcmVzaGluZ1N2Y0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW1wbDxzdHJ1Y3QgSVdiZW1SZW1vdGVSZWZyZXNoZXIsY2xhc3MgQ1diZW1SZW1vdGVSZWZyZXNoZXI+OjpDSW1wbDxzdHJ1Y3QgSVdiZW1SZW1vdGVSZWZyZXNoZXIsY2xhc3MgQ1diZW1SZW1vdGVSZWZyZXNoZXI+KGNsYXNzIENJbXBsPHN0cnVjdCBJV2JlbVJlbW90ZVJlZnJlc2hlcixjbGFzcyBDV2JlbVJlbW90ZVJlZnJlc2hlcj4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRDSW1wbEBVSVdiZW1SZW1vdGVSZWZyZXNoZXJAQFZDV2JlbVJlbW90ZVJlZnJlc2hlckBAQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ltcGw8c3RydWN0IElXYmVtUmVtb3RlUmVmcmVzaGVyLGNsYXNzIENXYmVtUmVtb3RlUmVmcmVzaGVyPjo6Q0ltcGw8c3RydWN0IElXYmVtUmVtb3RlUmVmcmVzaGVyLGNsYXNzIENXYmVtUmVtb3RlUmVmcmVzaGVyPihjbGFzcyBDV2JlbVJlbW90ZVJlZnJlc2hlciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JENJbXBsQFVJV2JlbVJlbW90ZVJlZnJlc2hlckBAVkNXYmVtUmVtb3RlUmVmcmVzaGVyQEBAQFFFQUFAUEVBVkNXYmVtUmVtb3RlUmVmcmVzaGVyQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbXBsPHN0cnVjdCBfSVdiZW1Db25maWd1cmVSZWZyZXNoaW5nU3ZjcyxjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM+OjpDSW1wbDxzdHJ1Y3QgX0lXYmVtQ29uZmlndXJlUmVmcmVzaGluZ1N2Y3MsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPihjbGFzcyBDSW1wbDxzdHJ1Y3QgX0lXYmVtQ29uZmlndXJlUmVmcmVzaGluZ1N2Y3MsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JENJbXBsQFVfSVdiZW1Db25maWd1cmVSZWZyZXNoaW5nU3Zjc0BAVkNXYmVtUmVmcmVzaGluZ1N2Y0BAQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ltcGw8c3RydWN0IF9JV2JlbUNvbmZpZ3VyZVJlZnJlc2hpbmdTdmNzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz46OkNJbXBsPHN0cnVjdCBfSVdiZW1Db25maWd1cmVSZWZyZXNoaW5nU3ZjcyxjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM+KGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2YyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JENJbXBsQFVfSVdiZW1Db25maWd1cmVSZWZyZXNoaW5nU3Zjc0BAVkNXYmVtUmVmcmVzaGluZ1N2Y0BAQEBRRUFBQFBFQVZDV2JlbVJlZnJlc2hpbmdTdmNAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ltcGw8c3RydWN0IF9JV2JlbUVudW1NYXJzaGFsaW5nLGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmc+OjpDSW1wbDxzdHJ1Y3QgX0lXYmVtRW51bU1hcnNoYWxpbmcsY2xhc3MgQ1diZW1FbnVtTWFyc2hhbGluZz4oY2xhc3MgQ0ltcGw8c3RydWN0IF9JV2JlbUVudW1NYXJzaGFsaW5nLGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmc+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kQ0ltcGxAVV9JV2JlbUVudW1NYXJzaGFsaW5nQEBWQ1diZW1FbnVtTWFyc2hhbGluZ0BAQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ltcGw8c3RydWN0IF9JV2JlbUVudW1NYXJzaGFsaW5nLGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmc+OjpDSW1wbDxzdHJ1Y3QgX0lXYmVtRW51bU1hcnNoYWxpbmcsY2xhc3MgQ1diZW1FbnVtTWFyc2hhbGluZz4oY2xhc3MgQ1diZW1FbnVtTWFyc2hhbGluZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JENJbXBsQFVfSVdiZW1FbnVtTWFyc2hhbGluZ0BAVkNXYmVtRW51bU1hcnNoYWxpbmdAQEBAUUVBQUBQRUFWQ1diZW1FbnVtTWFyc2hhbGluZ0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW1wbDxzdHJ1Y3QgX0lXYmVtRmV0Y2hSZWZyZXNoZXJNZ3IsY2xhc3MgQ1diZW1GZXRjaFJlZnJNZ3I+OjpDSW1wbDxzdHJ1Y3QgX0lXYmVtRmV0Y2hSZWZyZXNoZXJNZ3IsY2xhc3MgQ1diZW1GZXRjaFJlZnJNZ3I+KGNsYXNzIENJbXBsPHN0cnVjdCBfSVdiZW1GZXRjaFJlZnJlc2hlck1ncixjbGFzcyBDV2JlbUZldGNoUmVmck1ncj4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRDSW1wbEBVX0lXYmVtRmV0Y2hSZWZyZXNoZXJNZ3JAQFZDV2JlbUZldGNoUmVmck1nckBAQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ltcGw8c3RydWN0IF9JV2JlbUZldGNoUmVmcmVzaGVyTWdyLGNsYXNzIENXYmVtRmV0Y2hSZWZyTWdyPjo6Q0ltcGw8c3RydWN0IF9JV2JlbUZldGNoUmVmcmVzaGVyTWdyLGNsYXNzIENXYmVtRmV0Y2hSZWZyTWdyPihjbGFzcyBDV2JlbUZldGNoUmVmck1nciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JENJbXBsQFVfSVdiZW1GZXRjaFJlZnJlc2hlck1nckBAVkNXYmVtRmV0Y2hSZWZyTWdyQEBAQFFFQUFAUEVBVkNXYmVtRmV0Y2hSZWZyTWdyQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbXBsPHN0cnVjdCBfSVdtaU9iamVjdEZhY3RvcnksY2xhc3MgQ1dtaU9iamVjdEZhY3Rvcnk+OjpDSW1wbDxzdHJ1Y3QgX0lXbWlPYmplY3RGYWN0b3J5LGNsYXNzIENXbWlPYmplY3RGYWN0b3J5PihjbGFzcyBDSW1wbDxzdHJ1Y3QgX0lXbWlPYmplY3RGYWN0b3J5LGNsYXNzIENXbWlPYmplY3RGYWN0b3J5PiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JENJbXBsQFVfSVdtaU9iamVjdEZhY3RvcnlAQFZDV21pT2JqZWN0RmFjdG9yeUBAQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ltcGw8c3RydWN0IF9JV21pT2JqZWN0RmFjdG9yeSxjbGFzcyBDV21pT2JqZWN0RmFjdG9yeT46OkNJbXBsPHN0cnVjdCBfSVdtaU9iamVjdEZhY3RvcnksY2xhc3MgQ1dtaU9iamVjdEZhY3Rvcnk+KGNsYXNzIENXbWlPYmplY3RGYWN0b3J5ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kQ0ltcGxAVV9JV21pT2JqZWN0RmFjdG9yeUBAVkNXbWlPYmplY3RGYWN0b3J5QEBAQFFFQUFAUEVBVkNXbWlPYmplY3RGYWN0b3J5QEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0sY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+LGNsYXNzIENGbGV4QXJyYXk+OjpDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5PihjbGFzcyBDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5PiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBAUUVBQUBBRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0sY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+LGNsYXNzIENGbGV4QXJyYXk+OjpDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5PihjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRDUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFZDRmxleEFycmF5QEBAQFFFQUFAQUVCVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT46OkNQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+KGNsYXNzIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kQ1BvaW50ZXJBcnJheUBWQ1dtaVRleHRTb3VyY2VAQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDV21pVGV4dFNvdXJjZUBAQEBWQ0ZsZXhBcnJheUBAQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT46OkNQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+KGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENXbWlUZXh0U291cmNlPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBAUUVBQUBBRUJWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmVmZWRQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+OjpDUmVmZWRQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+KGNsYXNzIENSZWZlZFBvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRDUmVmZWRQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmVmZWRQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+OjpDUmVmZWRQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+KHZvaWQpIF9fcHRyNjQNCis/PzA/JENSZWZlZFBvaW50ZXJBcnJheUBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENSZWZlZFBvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZT46OkNSZWZlZFBvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZT4oY2xhc3MgQ1JlZmVkUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlPiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JENSZWZlZFBvaW50ZXJBcnJheUBWQ1dtaVRleHRTb3VyY2VAQEBAUUVBQUBBRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENSZWZlZFBvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZT46OkNSZWZlZFBvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZT4odm9pZCkgX19wdHI2NA0KKz8/MD8kQ1JlZmVkUG9pbnRlckFycmF5QFZDV21pVGV4dFNvdXJjZUBAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpDQmFzaWNRdWFsaWZpZXJTZXQodm9pZCkgX19wdHI2NA0KKz8/MENCYXNpY1F1YWxpZmllclNldEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENDbGFzc0FuZE1ldGhvZHM6OkNDbGFzc0FuZE1ldGhvZHMoY2xhc3MgQ0NsYXNzQW5kTWV0aG9kcyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQ2xhc3NBbmRNZXRob2RzQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NsYXNzQW5kTWV0aG9kczo6Q0NsYXNzQW5kTWV0aG9kcyh2b2lkKSBfX3B0cjY0DQorPz8wQ0NsYXNzQW5kTWV0aG9kc0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENDbGFzc1BhcnQ6OkNDbGFzc1BhcnQoY2xhc3MgQ0NsYXNzUGFydCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQ2xhc3NQYXJ0QEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NsYXNzUGFydDo6Q0NsYXNzUGFydCh2b2lkKSBfX3B0cjY0DQorPz8wQ0NsYXNzUGFydEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENDbGFzc1BhcnRDb250YWluZXI6OkNDbGFzc1BhcnRDb250YWluZXIoY2xhc3MgQ0NsYXNzUGFydENvbnRhaW5lciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQ2xhc3NQYXJ0Q29udGFpbmVyQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NsYXNzUGFydENvbnRhaW5lcjo6Q0NsYXNzUGFydENvbnRhaW5lcih2b2lkKSBfX3B0cjY0DQorPz8wQ0NsYXNzUGFydENvbnRhaW5lckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENDbGFzc1F1YWxpZmllclNldDo6Q0NsYXNzUXVhbGlmaWVyU2V0KGNsYXNzIENDbGFzc1F1YWxpZmllclNldCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQ2xhc3NRdWFsaWZpZXJTZXRAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ2xhc3NRdWFsaWZpZXJTZXQ6OkNDbGFzc1F1YWxpZmllclNldChpbnQpIF9fcHRyNjQNCis/PzBDQ2xhc3NRdWFsaWZpZXJTZXRAQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0RlY29yYXRpb25QYXJ0OjpDRGVjb3JhdGlvblBhcnQodm9pZCkgX19wdHI2NA0KKz8/MENEZWNvcmF0aW9uUGFydEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENGYXN0UHJvcGVydHlCYWc6OkNGYXN0UHJvcGVydHlCYWcoY2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRmFzdFByb3BlcnR5QmFnQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Zhc3RQcm9wZXJ0eUJhZzo6Q0Zhc3RQcm9wZXJ0eUJhZyh2b2lkKSBfX3B0cjY0DQorPz8wQ0Zhc3RQcm9wZXJ0eUJhZ0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENGaXhlZEJTVFJBcnJheTo6Q0ZpeGVkQlNUUkFycmF5KHZvaWQpIF9fcHRyNjQNCis/PzBDRml4ZWRCU1RSQXJyYXlAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSGlQZXJmTG9jazo6Q0hpUGVyZkxvY2sodm9pZCkgX19wdHI2NA0KKz8/MENIaVBlcmZMb2NrQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0luc3RhbmNlUFFTQ29udGFpbmVyOjpDSW5zdGFuY2VQUVNDb250YWluZXIoY2xhc3MgQ0luc3RhbmNlUFFTQ29udGFpbmVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENJbnN0YW5jZVBRU0NvbnRhaW5lckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbnN0YW5jZVBRU0NvbnRhaW5lcjo6Q0luc3RhbmNlUFFTQ29udGFpbmVyKHZvaWQpIF9fcHRyNjQNCis/PzBDSW5zdGFuY2VQUVNDb250YWluZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW5zdGFuY2VQYXJ0OjpDSW5zdGFuY2VQYXJ0KGNsYXNzIENJbnN0YW5jZVBhcnQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0luc3RhbmNlUGFydEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OkNJbnN0YW5jZVBhcnQodm9pZCkgX19wdHI2NA0KKz8/MENJbnN0YW5jZVBhcnRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW5zdGFuY2VQYXJ0Q29udGFpbmVyOjpDSW5zdGFuY2VQYXJ0Q29udGFpbmVyKGNsYXNzIENJbnN0YW5jZVBhcnRDb250YWluZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0luc3RhbmNlUGFydENvbnRhaW5lckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbnN0YW5jZVBhcnRDb250YWluZXI6OkNJbnN0YW5jZVBhcnRDb250YWluZXIodm9pZCkgX19wdHI2NA0KKz8/MENJbnN0YW5jZVBhcnRDb250YWluZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW5zdGFuY2VRdWFsaWZpZXJTZXQ6OkNJbnN0YW5jZVF1YWxpZmllclNldChjbGFzcyBDSW5zdGFuY2VRdWFsaWZpZXJTZXQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0luc3RhbmNlUXVhbGlmaWVyU2V0QEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0luc3RhbmNlUXVhbGlmaWVyU2V0OjpDSW5zdGFuY2VRdWFsaWZpZXJTZXQoaW50KSBfX3B0cjY0DQorPz8wQ0luc3RhbmNlUXVhbGlmaWVyU2V0QEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbnRlcm5hbFN0cmluZzo6Q0ludGVybmFsU3RyaW5nKGNsYXNzIENJbnRlcm5hbFN0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSW50ZXJuYWxTdHJpbmdAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW50ZXJuYWxTdHJpbmc6OkNJbnRlcm5hbFN0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSW50ZXJuYWxTdHJpbmdAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ludGVybmFsU3RyaW5nOjpDSW50ZXJuYWxTdHJpbmcodm9pZCkgX19wdHI2NA0KKz8/MENJbnRlcm5hbFN0cmluZ0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENMaW1pdGF0aW9uTWFwcGluZzo6Q0xpbWl0YXRpb25NYXBwaW5nKGNsYXNzIENMaW1pdGF0aW9uTWFwcGluZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTGltaXRhdGlvbk1hcHBpbmdAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTGltaXRhdGlvbk1hcHBpbmc6OkNMaW1pdGF0aW9uTWFwcGluZyh2b2lkKSBfX3B0cjY0DQorPz8wQ0xpbWl0YXRpb25NYXBwaW5nQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGhvZFBhcnQ6OkNNZXRob2RQYXJ0KGNsYXNzIENNZXRob2RQYXJ0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENNZXRob2RQYXJ0QEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGhvZFBhcnQ6OkNNZXRob2RQYXJ0KHZvaWQpIF9fcHRyNjQNCis/PzBDTWV0aG9kUGFydEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRob2RQYXJ0Q29udGFpbmVyOjpDTWV0aG9kUGFydENvbnRhaW5lcihjbGFzcyBDTWV0aG9kUGFydENvbnRhaW5lciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0aG9kUGFydENvbnRhaW5lckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRob2RQYXJ0Q29udGFpbmVyOjpDTWV0aG9kUGFydENvbnRhaW5lcih2b2lkKSBfX3B0cjY0DQorPz8wQ01ldGhvZFBhcnRDb250YWluZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0aG9kUXVhbGlmaWVyU2V0OjpDTWV0aG9kUXVhbGlmaWVyU2V0KGNsYXNzIENNZXRob2RRdWFsaWZpZXJTZXQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01ldGhvZFF1YWxpZmllclNldEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRob2RRdWFsaWZpZXJTZXQ6OkNNZXRob2RRdWFsaWZpZXJTZXQodm9pZCkgX19wdHI2NA0KKz8/MENNZXRob2RRdWFsaWZpZXJTZXRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyOjpDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyKGNsYXNzIENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXI6OkNNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXIodm9pZCkgX19wdHI2NA0KKz8/MENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUHJvcGVydHlCYWdJdGVtQXJyYXk6OkNQcm9wZXJ0eUJhZ0l0ZW1BcnJheShjbGFzcyBDUHJvcGVydHlCYWdJdGVtQXJyYXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1Byb3BlcnR5QmFnSXRlbUFycmF5QEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Byb3BlcnR5QmFnSXRlbUFycmF5OjpDUHJvcGVydHlCYWdJdGVtQXJyYXkodm9pZCkgX19wdHI2NA0KKz8/MENQcm9wZXJ0eUJhZ0l0ZW1BcnJheUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENRdWFsaWZpZXJTZXQ6OkNRdWFsaWZpZXJTZXQoY2xhc3MgQ1F1YWxpZmllclNldCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDUXVhbGlmaWVyU2V0QEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1F1YWxpZmllclNldDo6Q1F1YWxpZmllclNldChpbnQsaW50KSBfX3B0cjY0DQorPz8wQ1F1YWxpZmllclNldEBAUUVBQUBISEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1F1YWxpZmllclNldExpc3RDb250YWluZXI6OkNRdWFsaWZpZXJTZXRMaXN0Q29udGFpbmVyKGNsYXNzIENRdWFsaWZpZXJTZXRMaXN0Q29udGFpbmVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENRdWFsaWZpZXJTZXRMaXN0Q29udGFpbmVyQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1F1YWxpZmllclNldExpc3RDb250YWluZXI6OkNRdWFsaWZpZXJTZXRMaXN0Q29udGFpbmVyKHZvaWQpIF9fcHRyNjQNCis/PzBDUXVhbGlmaWVyU2V0TGlzdENvbnRhaW5lckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENUeXBlOjpDVHlwZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wQ1R5cGVAQFFFQUFAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1R5cGU6OkNUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBDVHlwZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENXYmVtQ2FsbFNlY3VyaXR5OjpDV2JlbUNhbGxTZWN1cml0eShjbGFzcyBDV2JlbUNhbGxTZWN1cml0eSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDV2JlbUNhbGxTZWN1cml0eUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXYmVtQ2FsbFNlY3VyaXR5OjpDV2JlbUNhbGxTZWN1cml0eShjbGFzcyBDTGlmZUNvbnRyb2wgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1diZW1DYWxsU2VjdXJpdHlAQFFFQUFAUEVBVkNMaWZlQ29udHJvbEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbUNsYXNzOjpDV2JlbUNsYXNzKGNsYXNzIENXYmVtQ2xhc3MgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1diZW1DbGFzc0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXYmVtQ2xhc3M6OkNXYmVtQ2xhc3Modm9pZCkgX19wdHI2NA0KKz8/MENXYmVtQ2xhc3NAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbUNsYXNzQ2FjaGU6OkNXYmVtQ2xhc3NDYWNoZShjbGFzcyBDV2JlbUNsYXNzQ2FjaGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1diZW1DbGFzc0NhY2hlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1DbGFzc0NhY2hlOjpDV2JlbUNsYXNzQ2FjaGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENXYmVtQ2xhc3NDYWNoZUBAUUVBQUBLQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBDV2JlbURhdGFQYWNrZXQ6OkNXYmVtRGF0YVBhY2tldCh2b2lkKSBfX3B0cjY0DQorPz8wQ1diZW1EYXRhUGFja2V0QEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1EYXRhUGFja2V0OjpDV2JlbURhdGFQYWNrZXQodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxib29sKSBfX3B0cjY0DQorPz8wQ1diZW1EYXRhUGFja2V0QEBRRUFBQFBFQUVLX05AWg0KKzsgcHVibGljOiBfX2NkZWNsIENXYmVtRW51bU1hcnNoYWxpbmc6OkNXYmVtRW51bU1hcnNoYWxpbmcoY2xhc3MgQ1diZW1FbnVtTWFyc2hhbGluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDV2JlbUVudW1NYXJzaGFsaW5nQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1FbnVtTWFyc2hhbGluZzo6Q1diZW1FbnVtTWFyc2hhbGluZyhjbGFzcyBDTGlmZUNvbnRyb2wgKiBfX3B0cjY0LHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDV2JlbUVudW1NYXJzaGFsaW5nQEBRRUFBQFBFQVZDTGlmZUNvbnRyb2xAQFBFQVVJVW5rbm93bkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbUZldGNoUmVmck1ncjo6Q1diZW1GZXRjaFJlZnJNZ3IoY2xhc3MgQ1diZW1GZXRjaFJlZnJNZ3IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1diZW1GZXRjaFJlZnJNZ3JAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbUZldGNoUmVmck1ncjo6Q1diZW1GZXRjaFJlZnJNZ3IoY2xhc3MgQ0xpZmVDb250cm9sICogX19wdHI2NCxzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1diZW1GZXRjaFJlZnJNZ3JAQFFFQUFAUEVBVkNMaWZlQ29udHJvbEBAUEVBVUlVbmtub3duQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXYmVtR3VpZFRvQ2xhc3NNYXA6OkNXYmVtR3VpZFRvQ2xhc3NNYXAoY2xhc3MgQ1diZW1HdWlkVG9DbGFzc01hcCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDV2JlbUd1aWRUb0NsYXNzTWFwQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1HdWlkVG9DbGFzc01hcDo6Q1diZW1HdWlkVG9DbGFzc01hcCh2b2lkKSBfX3B0cjY0DQorPz8wQ1diZW1HdWlkVG9DbGFzc01hcEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkNXYmVtSW5zdGFuY2UoY2xhc3MgQ1diZW1JbnN0YW5jZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDV2JlbUluc3RhbmNlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6Q1diZW1JbnN0YW5jZSh2b2lkKSBfX3B0cjY0DQorPz8wQ1diZW1JbnN0YW5jZUBAUUVBQUBYWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBDV2JlbU10Z3REZWxpdmVyRXZlbnRQYWNrZXQ6OkNXYmVtTXRndERlbGl2ZXJFdmVudFBhY2tldCh2b2lkKSBfX3B0cjY0DQorPz8wQ1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0QEBBRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0OjpDV2JlbU10Z3REZWxpdmVyRXZlbnRQYWNrZXQodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxib29sKSBfX3B0cjY0DQorPz8wQ1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0QEBRRUFBQFBFQUVLX05AWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIENXYmVtT2JqZWN0OjpDV2JlbU9iamVjdChjbGFzcyBDRGF0YVRhYmxlICYgX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgJiBfX3B0cjY0LGNsYXNzIENEZXJpdmF0aW9uTGlzdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDV2JlbU9iamVjdEBASUVBQUBBRUFWQ0RhdGFUYWJsZUBAQUVBVkNGYXN0SGVhcEBAQUVBVkNEZXJpdmF0aW9uTGlzdEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbU9iamVjdDo6Q1diZW1PYmplY3QoY2xhc3MgQ1diZW1PYmplY3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1diZW1PYmplY3RAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbU9iamVjdEFycmF5UGFja2V0OjpDV2JlbU9iamVjdEFycmF5UGFja2V0KHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsYm9vbCkgX19wdHI2NA0KKz8/MENXYmVtT2JqZWN0QXJyYXlQYWNrZXRAQFFFQUFAUEVBRUtfTkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1SZWZyZXNoaW5nU3ZjOjpDV2JlbVJlZnJlc2hpbmdTdmMoY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENXYmVtUmVmcmVzaGluZ1N2Y0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXYmVtUmVmcmVzaGluZ1N2Yzo6Q1diZW1SZWZyZXNoaW5nU3ZjKGNsYXNzIENMaWZlQ29udHJvbCAqIF9fcHRyNjQsc3RydWN0IElVbmtub3duICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENXYmVtUmVmcmVzaGluZ1N2Y0BAUUVBQUBQRUFWQ0xpZmVDb250cm9sQEBQRUFVSVVua25vd25AQEBaDQorOyBwcml2YXRlOiBfX2NkZWNsIENXYmVtU21hcnRFbnVtTmV4dFBhY2tldDo6Q1diZW1TbWFydEVudW1OZXh0UGFja2V0KHZvaWQpIF9fcHRyNjQNCis/PzBDV2JlbVNtYXJ0RW51bU5leHRQYWNrZXRAQEFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbVNtYXJ0RW51bU5leHRQYWNrZXQ6OkNXYmVtU21hcnRFbnVtTmV4dFBhY2tldCh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGJvb2wpIF9fcHRyNjQNCis/PzBDV2JlbVNtYXJ0RW51bU5leHRQYWNrZXRAQFFFQUFAUEVBRUtfTkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6Q1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZShjbGFzcyBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjpDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlKGNsYXNzIENMaWZlQ29udHJvbCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlQEBRRUFBQFBFQVZDTGlmZUNvbnRyb2xAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1dtaU9iamVjdEZhY3Rvcnk6OkNXbWlPYmplY3RGYWN0b3J5KGNsYXNzIENXbWlPYmplY3RGYWN0b3J5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENXbWlPYmplY3RGYWN0b3J5QEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1dtaU9iamVjdEZhY3Rvcnk6OkNXbWlPYmplY3RGYWN0b3J5KGNsYXNzIENMaWZlQ29udHJvbCAqIF9fcHRyNjQsc3RydWN0IElVbmtub3duICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENXbWlPYmplY3RGYWN0b3J5QEBRRUFBQFBFQVZDTGlmZUNvbnRyb2xAQFBFQVVJVW5rbm93bkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV21pVGV4dFNvdXJjZUFycmF5OjpDV21pVGV4dFNvdXJjZUFycmF5KGNsYXNzIENXbWlUZXh0U291cmNlQXJyYXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1dtaVRleHRTb3VyY2VBcnJheUBAUUVBQUBBRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXbWlUZXh0U291cmNlQXJyYXk6OkNXbWlUZXh0U291cmNlQXJyYXkodm9pZCkgX19wdHI2NA0KKz8/MENXbWlUZXh0U291cmNlQXJyYXlAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTSEFSRURfTE9DS19EQVRBOjpTSEFSRURfTE9DS19EQVRBKHZvaWQpIF9fcHRyNjQNCis/PzBTSEFSRURfTE9DS19EQVRBQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1SZWZyZXNoaW5nU3ZjOjpYQ2ZnUmVmclNydmM6OlhDZmdSZWZyU3J2YyhjbGFzcyBYQ2ZnUmVmclNydmM6OlhDZmdSZWZyU3J2YyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBYQ2ZnUmVmclNydmNAQ1diZW1SZWZyZXNoaW5nU3ZjQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXYmVtUmVmcmVzaGluZ1N2Yzo6WENmZ1JlZnJTcnZjOjpYQ2ZnUmVmclNydmMoY2xhc3MgWENmZ1JlZnJTcnZjICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFhDZmdSZWZyU3J2Y0BDV2JlbVJlZnJlc2hpbmdTdmNAQFFFQUFAUEVBVjFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbUVudW1NYXJzaGFsaW5nOjpYRW51bU1hcnNoYWxpbmc6OlhFbnVtTWFyc2hhbGluZyhjbGFzcyBYRW51bU1hcnNoYWxpbmc6OlhFbnVtTWFyc2hhbGluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBYRW51bU1hcnNoYWxpbmdAQ1diZW1FbnVtTWFyc2hhbGluZ0BAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbUVudW1NYXJzaGFsaW5nOjpYRW51bU1hcnNoYWxpbmc6OlhFbnVtTWFyc2hhbGluZyhjbGFzcyBYRW51bU1hcnNoYWxpbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wWEVudW1NYXJzaGFsaW5nQENXYmVtRW51bU1hcnNoYWxpbmdAQFFFQUFAUEVBVjFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbUZldGNoUmVmck1ncjo6WEZldGNoUmVmck1ncjo6WEZldGNoUmVmck1ncihjbGFzcyBYRmV0Y2hSZWZyTWdyOjpYRmV0Y2hSZWZyTWdyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFhGZXRjaFJlZnJNZ3JAQ1diZW1GZXRjaFJlZnJNZ3JAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1GZXRjaFJlZnJNZ3I6OlhGZXRjaFJlZnJNZ3I6OlhGZXRjaFJlZnJNZ3IoY2xhc3MgWEZldGNoUmVmck1nciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBYRmV0Y2hSZWZyTWdyQENXYmVtRmV0Y2hSZWZyTWdyQEBRRUFBQFBFQVYxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1dtaU9iamVjdEZhY3Rvcnk6OlhPYmplY3RGYWN0b3J5OjpYT2JqZWN0RmFjdG9yeShjbGFzcyBYT2JqZWN0RmFjdG9yeTo6WE9iamVjdEZhY3RvcnkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wWE9iamVjdEZhY3RvcnlAQ1dtaU9iamVjdEZhY3RvcnlAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1dtaU9iamVjdEZhY3Rvcnk6OlhPYmplY3RGYWN0b3J5OjpYT2JqZWN0RmFjdG9yeShjbGFzcyBYT2JqZWN0RmFjdG9yeSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBYT2JqZWN0RmFjdG9yeUBDV21pT2JqZWN0RmFjdG9yeUBAUUVBQUBQRUFWMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXbWlPYmplY3RUZXh0U3JjOjpYT2JqZWN0VGV4dFNyYzo6WE9iamVjdFRleHRTcmMoY2xhc3MgWE9iamVjdFRleHRTcmM6OlhPYmplY3RUZXh0U3JjIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFhPYmplY3RUZXh0U3JjQENXbWlPYmplY3RUZXh0U3JjQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXbWlPYmplY3RUZXh0U3JjOjpYT2JqZWN0VGV4dFNyYzo6WE9iamVjdFRleHRTcmMoY2xhc3MgWE9iamVjdFRleHRTcmMgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wWE9iamVjdFRleHRTcmNAQ1dtaU9iamVjdFRleHRTcmNAQFFFQUFAUEVBVjFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbVJlZnJlc2hpbmdTdmM6OlhXYmVtUmVmclN2Yzo6WFdiZW1SZWZyU3ZjKGNsYXNzIFhXYmVtUmVmclN2Yzo6WFdiZW1SZWZyU3ZjIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFhXYmVtUmVmclN2Y0BDV2JlbVJlZnJlc2hpbmdTdmNAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1SZWZyZXNoaW5nU3ZjOjpYV2JlbVJlZnJTdmM6OlhXYmVtUmVmclN2YyhjbGFzcyBYV2JlbVJlZnJTdmMgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wWFdiZW1SZWZyU3ZjQENXYmVtUmVmcmVzaGluZ1N2Y0BAUUVBQUBQRUFWMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXYmVtUmVtb3RlUmVmcmVzaGVyOjpYV2JlbVJlbW90ZVJlZnI6OlhXYmVtUmVtb3RlUmVmcihjbGFzcyBYV2JlbVJlbW90ZVJlZnI6OlhXYmVtUmVtb3RlUmVmciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBYV2JlbVJlbW90ZVJlZnJAQ1diZW1SZW1vdGVSZWZyZXNoZXJAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1SZW1vdGVSZWZyZXNoZXI6OlhXYmVtUmVtb3RlUmVmcjo6WFdiZW1SZW1vdGVSZWZyKGNsYXNzIFhXYmVtUmVtb3RlUmVmciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBYV2JlbVJlbW90ZVJlZnJAQ1diZW1SZW1vdGVSZWZyZXNoZXJAQFFFQUFAUEVBVjFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW1wbDxzdHJ1Y3QgSVdiZW1PYmplY3RUZXh0U3JjLGNsYXNzIENXbWlPYmplY3RUZXh0U3JjPjo6fkNJbXBsPHN0cnVjdCBJV2JlbU9iamVjdFRleHRTcmMsY2xhc3MgQ1dtaU9iamVjdFRleHRTcmM+KHZvaWQpIF9fcHRyNjQNCis/PzE/JENJbXBsQFVJV2JlbU9iamVjdFRleHRTcmNAQFZDV21pT2JqZWN0VGV4dFNyY0BAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ltcGw8c3RydWN0IElXYmVtUmVmcmVzaGluZ1NlcnZpY2VzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz46On5DSW1wbDxzdHJ1Y3QgSVdiZW1SZWZyZXNoaW5nU2VydmljZXMsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPih2b2lkKSBfX3B0cjY0DQorPz8xPyRDSW1wbEBVSVdiZW1SZWZyZXNoaW5nU2VydmljZXNAQFZDV2JlbVJlZnJlc2hpbmdTdmNAQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbXBsPHN0cnVjdCBJV2JlbVJlbW90ZVJlZnJlc2hlcixjbGFzcyBDV2JlbVJlbW90ZVJlZnJlc2hlcj46On5DSW1wbDxzdHJ1Y3QgSVdiZW1SZW1vdGVSZWZyZXNoZXIsY2xhc3MgQ1diZW1SZW1vdGVSZWZyZXNoZXI+KHZvaWQpIF9fcHRyNjQNCis/PzE/JENJbXBsQFVJV2JlbVJlbW90ZVJlZnJlc2hlckBAVkNXYmVtUmVtb3RlUmVmcmVzaGVyQEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW1wbDxzdHJ1Y3QgX0lXYmVtQ29uZmlndXJlUmVmcmVzaGluZ1N2Y3MsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPjo6fkNJbXBsPHN0cnVjdCBfSVdiZW1Db25maWd1cmVSZWZyZXNoaW5nU3ZjcyxjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM+KHZvaWQpIF9fcHRyNjQNCis/PzE/JENJbXBsQFVfSVdiZW1Db25maWd1cmVSZWZyZXNoaW5nU3Zjc0BAVkNXYmVtUmVmcmVzaGluZ1N2Y0BAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ltcGw8c3RydWN0IF9JV2JlbUVudW1NYXJzaGFsaW5nLGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmc+Ojp+Q0ltcGw8c3RydWN0IF9JV2JlbUVudW1NYXJzaGFsaW5nLGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmc+KHZvaWQpIF9fcHRyNjQNCis/PzE/JENJbXBsQFVfSVdiZW1FbnVtTWFyc2hhbGluZ0BAVkNXYmVtRW51bU1hcnNoYWxpbmdAQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbXBsPHN0cnVjdCBfSVdiZW1GZXRjaFJlZnJlc2hlck1ncixjbGFzcyBDV2JlbUZldGNoUmVmck1ncj46On5DSW1wbDxzdHJ1Y3QgX0lXYmVtRmV0Y2hSZWZyZXNoZXJNZ3IsY2xhc3MgQ1diZW1GZXRjaFJlZnJNZ3I+KHZvaWQpIF9fcHRyNjQNCis/PzE/JENJbXBsQFVfSVdiZW1GZXRjaFJlZnJlc2hlck1nckBAVkNXYmVtRmV0Y2hSZWZyTWdyQEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW1wbDxzdHJ1Y3QgX0lXbWlPYmplY3RGYWN0b3J5LGNsYXNzIENXbWlPYmplY3RGYWN0b3J5Pjo6fkNJbXBsPHN0cnVjdCBfSVdtaU9iamVjdEZhY3RvcnksY2xhc3MgQ1dtaU9iamVjdEZhY3Rvcnk+KHZvaWQpIF9fcHRyNjQNCis/PzE/JENJbXBsQFVfSVdtaU9iamVjdEZhY3RvcnlAQFZDV21pT2JqZWN0RmFjdG9yeUBAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT46On5DUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5Pih2b2lkKSBfX3B0cjY0DQorPz8xPyRDUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFZDRmxleEFycmF5QEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENXbWlUZXh0U291cmNlPixjbGFzcyBDRmxleEFycmF5Pjo6fkNQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+KHZvaWQpIF9fcHRyNjQNCis/PzE/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENSZWZlZFBvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT46On5DUmVmZWRQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+KHZvaWQpIF9fcHRyNjQNCis/PzE/JENSZWZlZFBvaW50ZXJBcnJheUBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENSZWZlZFBvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZT46On5DUmVmZWRQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+KHZvaWQpIF9fcHRyNjQNCis/PzE/JENSZWZlZFBvaW50ZXJBcnJheUBWQ1dtaVRleHRTb3VyY2VAQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENCYXNpY1F1YWxpZmllclNldDo6fkNCYXNpY1F1YWxpZmllclNldCh2b2lkKSBfX3B0cjY0DQorPz8xQ0Jhc2ljUXVhbGlmaWVyU2V0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NsYXNzQW5kTWV0aG9kczo6fkNDbGFzc0FuZE1ldGhvZHModm9pZCkgX19wdHI2NA0KKz8/MUNDbGFzc0FuZE1ldGhvZHNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ2xhc3NQYXJ0Ojp+Q0NsYXNzUGFydCh2b2lkKSBfX3B0cjY0DQorPz8xQ0NsYXNzUGFydEBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ0NsYXNzUXVhbGlmaWVyU2V0Ojp+Q0NsYXNzUXVhbGlmaWVyU2V0KHZvaWQpIF9fcHRyNjQNCis/PzFDQ2xhc3NRdWFsaWZpZXJTZXRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENGYXN0UHJvcGVydHlCYWc6On5DRmFzdFByb3BlcnR5QmFnKHZvaWQpIF9fcHRyNjQNCis/PzFDRmFzdFByb3BlcnR5QmFnQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ZpeGVkQlNUUkFycmF5Ojp+Q0ZpeGVkQlNUUkFycmF5KHZvaWQpIF9fcHRyNjQNCis/PzFDRml4ZWRCU1RSQXJyYXlAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW5zdGFuY2VQUVNDb250YWluZXI6On5DSW5zdGFuY2VQUVNDb250YWluZXIodm9pZCkgX19wdHI2NA0KKz8/MUNJbnN0YW5jZVBRU0NvbnRhaW5lckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6On5DSW5zdGFuY2VQYXJ0KHZvaWQpIF9fcHRyNjQNCis/PzFDSW5zdGFuY2VQYXJ0QEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDSW5zdGFuY2VRdWFsaWZpZXJTZXQ6On5DSW5zdGFuY2VRdWFsaWZpZXJTZXQodm9pZCkgX19wdHI2NA0KKz8/MUNJbnN0YW5jZVF1YWxpZmllclNldEBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbnRlcm5hbFN0cmluZzo6fkNJbnRlcm5hbFN0cmluZyh2b2lkKSBfX3B0cjY0DQorPz8xQ0ludGVybmFsU3RyaW5nQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0xpbWl0YXRpb25NYXBwaW5nOjp+Q0xpbWl0YXRpb25NYXBwaW5nKHZvaWQpIF9fcHRyNjQNCis/PzFDTGltaXRhdGlvbk1hcHBpbmdAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENNZXRob2RRdWFsaWZpZXJTZXQ6On5DTWV0aG9kUXVhbGlmaWVyU2V0KHZvaWQpIF9fcHRyNjQNCis/PzFDTWV0aG9kUXVhbGlmaWVyU2V0QEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lcjo6fkNNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXIodm9pZCkgX19wdHI2NA0KKz8/MUNNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUHJvcGVydHlCYWdJdGVtQXJyYXk6On5DUHJvcGVydHlCYWdJdGVtQXJyYXkodm9pZCkgX19wdHI2NA0KKz8/MUNQcm9wZXJ0eUJhZ0l0ZW1BcnJheUBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1F1YWxpZmllclNldDo6fkNRdWFsaWZpZXJTZXQodm9pZCkgX19wdHI2NA0KKz8/MUNRdWFsaWZpZXJTZXRAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbUNhbGxTZWN1cml0eTo6fkNXYmVtQ2FsbFNlY3VyaXR5KHZvaWQpIF9fcHRyNjQNCis/PzFDV2JlbUNhbGxTZWN1cml0eUBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1diZW1DbGFzczo6fkNXYmVtQ2xhc3Modm9pZCkgX19wdHI2NA0KKz8/MUNXYmVtQ2xhc3NAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbUNsYXNzQ2FjaGU6On5DV2JlbUNsYXNzQ2FjaGUodm9pZCkgX19wdHI2NA0KKz8/MUNXYmVtQ2xhc3NDYWNoZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENXYmVtRGF0YVBhY2tldDo6fkNXYmVtRGF0YVBhY2tldCh2b2lkKSBfX3B0cjY0DQorPz8xQ1diZW1EYXRhUGFja2V0QEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDV2JlbUVudW1NYXJzaGFsaW5nOjp+Q1diZW1FbnVtTWFyc2hhbGluZyh2b2lkKSBfX3B0cjY0DQorPz8xQ1diZW1FbnVtTWFyc2hhbGluZ0BAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1diZW1GZXRjaFJlZnJNZ3I6On5DV2JlbUZldGNoUmVmck1ncih2b2lkKSBfX3B0cjY0DQorPz8xQ1diZW1GZXRjaFJlZnJNZ3JAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbUd1aWRUb0NsYXNzTWFwOjp+Q1diZW1HdWlkVG9DbGFzc01hcCh2b2lkKSBfX3B0cjY0DQorPz8xQ1diZW1HdWlkVG9DbGFzc01hcEBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6fkNXYmVtSW5zdGFuY2Uodm9pZCkgX19wdHI2NA0KKz8/MUNXYmVtSW5zdGFuY2VAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbU10Z3REZWxpdmVyRXZlbnRQYWNrZXQ6On5DV2JlbU10Z3REZWxpdmVyRXZlbnRQYWNrZXQodm9pZCkgX19wdHI2NA0KKz8/MUNXYmVtTXRndERlbGl2ZXJFdmVudFBhY2tldEBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1diZW1PYmplY3Q6On5DV2JlbU9iamVjdCh2b2lkKSBfX3B0cjY0DQorPz8xQ1diZW1PYmplY3RAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbU9iamVjdEFycmF5UGFja2V0Ojp+Q1diZW1PYmplY3RBcnJheVBhY2tldCh2b2lkKSBfX3B0cjY0DQorPz8xQ1diZW1PYmplY3RBcnJheVBhY2tldEBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1diZW1SZWZyZXNoaW5nU3ZjOjp+Q1diZW1SZWZyZXNoaW5nU3ZjKHZvaWQpIF9fcHRyNjQNCis/PzFDV2JlbVJlZnJlc2hpbmdTdmNAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbVNtYXJ0RW51bU5leHRQYWNrZXQ6On5DV2JlbVNtYXJ0RW51bU5leHRQYWNrZXQodm9pZCkgX19wdHI2NA0KKz8/MUNXYmVtU21hcnRFbnVtTmV4dFBhY2tldEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGU6On5DV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlKHZvaWQpIF9fcHRyNjQNCis/PzFDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDV21pT2JqZWN0RmFjdG9yeTo6fkNXbWlPYmplY3RGYWN0b3J5KHZvaWQpIF9fcHRyNjQNCis/PzFDV21pT2JqZWN0RmFjdG9yeUBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENXbWlUZXh0U291cmNlQXJyYXk6On5DV21pVGV4dFNvdXJjZUFycmF5KHZvaWQpIF9fcHRyNjQNCis/PzFDV21pVGV4dFNvdXJjZUFycmF5QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1SZWZyZXNoaW5nU3ZjOjpYQ2ZnUmVmclNydmM6On5YQ2ZnUmVmclNydmModm9pZCkgX19wdHI2NA0KKz8/MVhDZmdSZWZyU3J2Y0BDV2JlbVJlZnJlc2hpbmdTdmNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbUVudW1NYXJzaGFsaW5nOjpYRW51bU1hcnNoYWxpbmc6On5YRW51bU1hcnNoYWxpbmcodm9pZCkgX19wdHI2NA0KKz8/MVhFbnVtTWFyc2hhbGluZ0BDV2JlbUVudW1NYXJzaGFsaW5nQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1GZXRjaFJlZnJNZ3I6OlhGZXRjaFJlZnJNZ3I6On5YRmV0Y2hSZWZyTWdyKHZvaWQpIF9fcHRyNjQNCis/PzFYRmV0Y2hSZWZyTWdyQENXYmVtRmV0Y2hSZWZyTWdyQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1dtaU9iamVjdEZhY3Rvcnk6OlhPYmplY3RGYWN0b3J5Ojp+WE9iamVjdEZhY3Rvcnkodm9pZCkgX19wdHI2NA0KKz8/MVhPYmplY3RGYWN0b3J5QENXbWlPYmplY3RGYWN0b3J5QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1dtaU9iamVjdFRleHRTcmM6OlhPYmplY3RUZXh0U3JjOjp+WE9iamVjdFRleHRTcmModm9pZCkgX19wdHI2NA0KKz8/MVhPYmplY3RUZXh0U3JjQENXbWlPYmplY3RUZXh0U3JjQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1SZWZyZXNoaW5nU3ZjOjpYV2JlbVJlZnJTdmM6On5YV2JlbVJlZnJTdmModm9pZCkgX19wdHI2NA0KKz8/MVhXYmVtUmVmclN2Y0BDV2JlbVJlZnJlc2hpbmdTdmNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbVJlbW90ZVJlZnJlc2hlcjo6WFdiZW1SZW1vdGVSZWZyOjp+WFdiZW1SZW1vdGVSZWZyKHZvaWQpIF9fcHRyNjQNCis/PzFYV2JlbVJlbW90ZVJlZnJAQ1diZW1SZW1vdGVSZWZyZXNoZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0ltcGw8c3RydWN0IElXYmVtT2JqZWN0VGV4dFNyYyxjbGFzcyBDV21pT2JqZWN0VGV4dFNyYz4gJiBfX3B0cjY0IF9fY2RlY2wgQ0ltcGw8c3RydWN0IElXYmVtT2JqZWN0VGV4dFNyYyxjbGFzcyBDV21pT2JqZWN0VGV4dFNyYz46Om9wZXJhdG9yPShjbGFzcyBDSW1wbDxzdHJ1Y3QgSVdiZW1PYmplY3RUZXh0U3JjLGNsYXNzIENXbWlPYmplY3RUZXh0U3JjPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JENJbXBsQFVJV2JlbU9iamVjdFRleHRTcmNAQFZDV21pT2JqZWN0VGV4dFNyY0BAQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0ltcGw8c3RydWN0IElXYmVtUmVmcmVzaGluZ1NlcnZpY2VzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz4gJiBfX3B0cjY0IF9fY2RlY2wgQ0ltcGw8c3RydWN0IElXYmVtUmVmcmVzaGluZ1NlcnZpY2VzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz46Om9wZXJhdG9yPShjbGFzcyBDSW1wbDxzdHJ1Y3QgSVdiZW1SZWZyZXNoaW5nU2VydmljZXMsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JENJbXBsQFVJV2JlbVJlZnJlc2hpbmdTZXJ2aWNlc0BAVkNXYmVtUmVmcmVzaGluZ1N2Y0BAQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0ltcGw8c3RydWN0IElXYmVtUmVtb3RlUmVmcmVzaGVyLGNsYXNzIENXYmVtUmVtb3RlUmVmcmVzaGVyPiAmIF9fcHRyNjQgX19jZGVjbCBDSW1wbDxzdHJ1Y3QgSVdiZW1SZW1vdGVSZWZyZXNoZXIsY2xhc3MgQ1diZW1SZW1vdGVSZWZyZXNoZXI+OjpvcGVyYXRvcj0oY2xhc3MgQ0ltcGw8c3RydWN0IElXYmVtUmVtb3RlUmVmcmVzaGVyLGNsYXNzIENXYmVtUmVtb3RlUmVmcmVzaGVyPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JENJbXBsQFVJV2JlbVJlbW90ZVJlZnJlc2hlckBAVkNXYmVtUmVtb3RlUmVmcmVzaGVyQEBAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSW1wbDxzdHJ1Y3QgX0lXYmVtQ29uZmlndXJlUmVmcmVzaGluZ1N2Y3MsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPiAmIF9fcHRyNjQgX19jZGVjbCBDSW1wbDxzdHJ1Y3QgX0lXYmVtQ29uZmlndXJlUmVmcmVzaGluZ1N2Y3MsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPjo6b3BlcmF0b3I9KGNsYXNzIENJbXBsPHN0cnVjdCBfSVdiZW1Db25maWd1cmVSZWZyZXNoaW5nU3ZjcyxjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ0ltcGxAVV9JV2JlbUNvbmZpZ3VyZVJlZnJlc2hpbmdTdmNzQEBWQ1diZW1SZWZyZXNoaW5nU3ZjQEBAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSW1wbDxzdHJ1Y3QgX0lXYmVtRW51bU1hcnNoYWxpbmcsY2xhc3MgQ1diZW1FbnVtTWFyc2hhbGluZz4gJiBfX3B0cjY0IF9fY2RlY2wgQ0ltcGw8c3RydWN0IF9JV2JlbUVudW1NYXJzaGFsaW5nLGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmc+OjpvcGVyYXRvcj0oY2xhc3MgQ0ltcGw8c3RydWN0IF9JV2JlbUVudW1NYXJzaGFsaW5nLGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmc+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ0ltcGxAVV9JV2JlbUVudW1NYXJzaGFsaW5nQEBWQ1diZW1FbnVtTWFyc2hhbGluZ0BAQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0ltcGw8c3RydWN0IF9JV2JlbUZldGNoUmVmcmVzaGVyTWdyLGNsYXNzIENXYmVtRmV0Y2hSZWZyTWdyPiAmIF9fcHRyNjQgX19jZGVjbCBDSW1wbDxzdHJ1Y3QgX0lXYmVtRmV0Y2hSZWZyZXNoZXJNZ3IsY2xhc3MgQ1diZW1GZXRjaFJlZnJNZ3I+OjpvcGVyYXRvcj0oY2xhc3MgQ0ltcGw8c3RydWN0IF9JV2JlbUZldGNoUmVmcmVzaGVyTWdyLGNsYXNzIENXYmVtRmV0Y2hSZWZyTWdyPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JENJbXBsQFVfSVdiZW1GZXRjaFJlZnJlc2hlck1nckBAVkNXYmVtRmV0Y2hSZWZyTWdyQEBAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSW1wbDxzdHJ1Y3QgX0lXbWlPYmplY3RGYWN0b3J5LGNsYXNzIENXbWlPYmplY3RGYWN0b3J5PiAmIF9fcHRyNjQgX19jZGVjbCBDSW1wbDxzdHJ1Y3QgX0lXbWlPYmplY3RGYWN0b3J5LGNsYXNzIENXbWlPYmplY3RGYWN0b3J5Pjo6b3BlcmF0b3I9KGNsYXNzIENJbXBsPHN0cnVjdCBfSVdtaU9iamVjdEZhY3RvcnksY2xhc3MgQ1dtaU9iamVjdEZhY3Rvcnk+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ0ltcGxAVV9JV21pT2JqZWN0RmFjdG9yeUBAVkNXbWlPYmplY3RGYWN0b3J5QEBAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5PiAmIF9fcHRyNjQgX19jZGVjbCBDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5Pjo6b3BlcmF0b3I9KGNsYXNzIENQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0sY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+LGNsYXNzIENGbGV4QXJyYXk+ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ1BvaW50ZXJBcnJheUBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQEBWQ0ZsZXhBcnJheUBAQEBRRUFBQUVBVjBAQUVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT4gJiBfX3B0cjY0IF9fY2RlY2wgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT46Om9wZXJhdG9yPShjbGFzcyBDUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENXbWlUZXh0U291cmNlPixjbGFzcyBDRmxleEFycmF5PiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENSZWZlZFBvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4gJiBfX3B0cjY0IF9fY2RlY2wgQ1JlZmVkUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPjo6b3BlcmF0b3I9KGNsYXNzIENSZWZlZFBvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDUmVmZWRQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUmVmZWRQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+ICYgX19wdHI2NCBfX2NkZWNsIENSZWZlZFBvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZT46Om9wZXJhdG9yPShjbGFzcyBDUmVmZWRQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ1JlZmVkUG9pbnRlckFycmF5QFZDV21pVGV4dFNvdXJjZUBAQEBRRUFBQUVBVjBAQUVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0Jhc2ljUXVhbGlmaWVyU2V0ICYgX19wdHI2NCBfX2NkZWNsIENCYXNpY1F1YWxpZmllclNldDo6b3BlcmF0b3I9KGNsYXNzIENCYXNpY1F1YWxpZmllclNldCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDQmFzaWNRdWFsaWZpZXJTZXRAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ2xhc3NBbmRNZXRob2RzICYgX19wdHI2NCBfX2NkZWNsIENDbGFzc0FuZE1ldGhvZHM6Om9wZXJhdG9yPShjbGFzcyBDQ2xhc3NBbmRNZXRob2RzIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENDbGFzc0FuZE1ldGhvZHNAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ2xhc3NQYXJ0ICYgX19wdHI2NCBfX2NkZWNsIENDbGFzc1BhcnQ6Om9wZXJhdG9yPShjbGFzcyBDQ2xhc3NQYXJ0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENDbGFzc1BhcnRAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ2xhc3NQYXJ0Q29udGFpbmVyICYgX19wdHI2NCBfX2NkZWNsIENDbGFzc1BhcnRDb250YWluZXI6Om9wZXJhdG9yPShjbGFzcyBDQ2xhc3NQYXJ0Q29udGFpbmVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENDbGFzc1BhcnRDb250YWluZXJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ2xhc3NRdWFsaWZpZXJTZXQgJiBfX3B0cjY0IF9fY2RlY2wgQ0NsYXNzUXVhbGlmaWVyU2V0OjpvcGVyYXRvcj0oY2xhc3MgQ0NsYXNzUXVhbGlmaWVyU2V0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENDbGFzc1F1YWxpZmllclNldEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENDb21wcmVzc2VkU3RyaW5nICYgX19wdHI2NCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nOjpvcGVyYXRvcj0oY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0NvbXByZXNzZWRTdHJpbmdAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tcHJlc3NlZFN0cmluZ0xpc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmdMaXN0OjpvcGVyYXRvcj0oY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmdMaXN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENDb21wcmVzc2VkU3RyaW5nTGlzdEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENEYXRhVGFibGUgJiBfX3B0cjY0IF9fY2RlY2wgQ0RhdGFUYWJsZTo6b3BlcmF0b3I9KGNsYXNzIENEYXRhVGFibGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0RhdGFUYWJsZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENEZWNvcmF0aW9uUGFydCAmIF9fcHRyNjQgX19jZGVjbCBDRGVjb3JhdGlvblBhcnQ6Om9wZXJhdG9yPShjbGFzcyBDRGVjb3JhdGlvblBhcnQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0RlY29yYXRpb25QYXJ0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0Rlcml2YXRpb25MaXN0ICYgX19wdHI2NCBfX2NkZWNsIENEZXJpdmF0aW9uTGlzdDo6b3BlcmF0b3I9KGNsYXNzIENEZXJpdmF0aW9uTGlzdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDRGVyaXZhdGlvbkxpc3RAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRW1iZWRkZWRPYmplY3QgJiBfX3B0cjY0IF9fY2RlY2wgQ0VtYmVkZGVkT2JqZWN0OjpvcGVyYXRvcj0oY2xhc3MgQ0VtYmVkZGVkT2JqZWN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENFbWJlZGRlZE9iamVjdEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENGYXN0SGVhcCAmIF9fcHRyNjQgX19jZGVjbCBDRmFzdEhlYXA6Om9wZXJhdG9yPShjbGFzcyBDRmFzdEhlYXAgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0Zhc3RIZWFwQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZyAmIF9fcHRyNjQgX19jZGVjbCBDRmFzdFByb3BlcnR5QmFnOjpvcGVyYXRvcj0oY2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDRmFzdFByb3BlcnR5QmFnQEBRRUFBQUVBVjBAQUVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZpeGVkQlNUUkFycmF5ICYgX19wdHI2NCBfX2NkZWNsIENGaXhlZEJTVFJBcnJheTo6b3BlcmF0b3I9KGNsYXNzIENGaXhlZEJTVFJBcnJheSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDRml4ZWRCU1RSQXJyYXlAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSGlQZXJmTG9jayAmIF9fcHRyNjQgX19jZGVjbCBDSGlQZXJmTG9jazo6b3BlcmF0b3I9KGNsYXNzIENIaVBlcmZMb2NrIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENIaVBlcmZMb2NrQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0luc3RhbmNlUFFTQ29udGFpbmVyICYgX19wdHI2NCBfX2NkZWNsIENJbnN0YW5jZVBRU0NvbnRhaW5lcjo6b3BlcmF0b3I9KGNsYXNzIENJbnN0YW5jZVBRU0NvbnRhaW5lciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDSW5zdGFuY2VQUVNDb250YWluZXJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSW5zdGFuY2VQYXJ0ICYgX19wdHI2NCBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6Om9wZXJhdG9yPShjbGFzcyBDSW5zdGFuY2VQYXJ0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJbnN0YW5jZVBhcnRAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSW5zdGFuY2VQYXJ0Q29udGFpbmVyICYgX19wdHI2NCBfX2NkZWNsIENJbnN0YW5jZVBhcnRDb250YWluZXI6Om9wZXJhdG9yPShjbGFzcyBDSW5zdGFuY2VQYXJ0Q29udGFpbmVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJbnN0YW5jZVBhcnRDb250YWluZXJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSW5zdGFuY2VRdWFsaWZpZXJTZXQgJiBfX3B0cjY0IF9fY2RlY2wgQ0luc3RhbmNlUXVhbGlmaWVyU2V0OjpvcGVyYXRvcj0oY2xhc3MgQ0luc3RhbmNlUXVhbGlmaWVyU2V0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJbnN0YW5jZVF1YWxpZmllclNldEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJbnRlcm5hbFN0cmluZyAmIF9fcHRyNjQgX19jZGVjbCBDSW50ZXJuYWxTdHJpbmc6Om9wZXJhdG9yPShjbGFzcyBDSW50ZXJuYWxTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0ludGVybmFsU3RyaW5nQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0ludGVybmFsU3RyaW5nOjpvcGVyYXRvcj0oY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0ludGVybmFsU3RyaW5nQEBRRUFBSFBFQVZDQ29tcHJlc3NlZFN0cmluZ0BAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0ludGVybmFsU3RyaW5nOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0ludGVybmFsU3RyaW5nQEBRRUFBSFBFQkdAWg0KKzsgcHVibGljOiBjbGFzcyBDS25vd25TdHJpbmdUYWJsZSAmIF9fcHRyNjQgX19jZGVjbCBDS25vd25TdHJpbmdUYWJsZTo6b3BlcmF0b3I9KGNsYXNzIENLbm93blN0cmluZ1RhYmxlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENLbm93blN0cmluZ1RhYmxlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpbWl0YXRpb25NYXBwaW5nICYgX19wdHI2NCBfX2NkZWNsIENMaW1pdGF0aW9uTWFwcGluZzo6b3BlcmF0b3I9KGNsYXNzIENMaW1pdGF0aW9uTWFwcGluZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTGltaXRhdGlvbk1hcHBpbmdAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBzdHJ1Y3QgQ01ldGhvZERlc2NyaXB0aW9uICYgX19wdHI2NCBfX2NkZWNsIENNZXRob2REZXNjcmlwdGlvbjo6b3BlcmF0b3I9KHN0cnVjdCBDTWV0aG9kRGVzY3JpcHRpb24gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q01ldGhvZERlc2NyaXB0aW9uQEBRRUFBQUVBVTBAQUVCVTBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ01ldGhvZFBhcnQgJiBfX3B0cjY0IF9fY2RlY2wgQ01ldGhvZFBhcnQ6Om9wZXJhdG9yPShjbGFzcyBDTWV0aG9kUGFydCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTWV0aG9kUGFydEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENNZXRob2RQYXJ0Q29udGFpbmVyICYgX19wdHI2NCBfX2NkZWNsIENNZXRob2RQYXJ0Q29udGFpbmVyOjpvcGVyYXRvcj0oY2xhc3MgQ01ldGhvZFBhcnRDb250YWluZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q01ldGhvZFBhcnRDb250YWluZXJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTWV0aG9kUXVhbGlmaWVyU2V0ICYgX19wdHI2NCBfX2NkZWNsIENNZXRob2RRdWFsaWZpZXJTZXQ6Om9wZXJhdG9yPShjbGFzcyBDTWV0aG9kUXVhbGlmaWVyU2V0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENNZXRob2RRdWFsaWZpZXJTZXRAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyICYgX19wdHI2NCBfX2NkZWNsIENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXI6Om9wZXJhdG9yPShjbGFzcyBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUHJvcGVydHlCYWdJdGVtQXJyYXkgJiBfX3B0cjY0IF9fY2RlY2wgQ1Byb3BlcnR5QmFnSXRlbUFycmF5OjpvcGVyYXRvcj0oY2xhc3MgQ1Byb3BlcnR5QmFnSXRlbUFycmF5ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENQcm9wZXJ0eUJhZ0l0ZW1BcnJheUBAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENQcm9wZXJ0eUxvb2t1cFRhYmxlICYgX19wdHI2NCBfX2NkZWNsIENQcm9wZXJ0eUxvb2t1cFRhYmxlOjpvcGVyYXRvcj0oY2xhc3MgQ1Byb3BlcnR5TG9va3VwVGFibGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1Byb3BlcnR5TG9va3VwVGFibGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUXVhbGlmaWVyU2V0ICYgX19wdHI2NCBfX2NkZWNsIENRdWFsaWZpZXJTZXQ6Om9wZXJhdG9yPShjbGFzcyBDUXVhbGlmaWVyU2V0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENRdWFsaWZpZXJTZXRAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUXVhbGlmaWVyU2V0TGlzdCAmIF9fcHRyNjQgX19jZGVjbCBDUXVhbGlmaWVyU2V0TGlzdDo6b3BlcmF0b3I9KGNsYXNzIENRdWFsaWZpZXJTZXRMaXN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENRdWFsaWZpZXJTZXRMaXN0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1F1YWxpZmllclNldExpc3RDb250YWluZXIgJiBfX3B0cjY0IF9fY2RlY2wgQ1F1YWxpZmllclNldExpc3RDb250YWluZXI6Om9wZXJhdG9yPShjbGFzcyBDUXVhbGlmaWVyU2V0TGlzdENvbnRhaW5lciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDUXVhbGlmaWVyU2V0TGlzdENvbnRhaW5lckBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENSZXNlcnZlZFdvcmRUYWJsZSAmIF9fcHRyNjQgX19jZGVjbCBDUmVzZXJ2ZWRXb3JkVGFibGU6Om9wZXJhdG9yPShjbGFzcyBDUmVzZXJ2ZWRXb3JkVGFibGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1Jlc2VydmVkV29yZFRhYmxlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1NoYXJlZExvY2sgJiBfX3B0cjY0IF9fY2RlY2wgQ1NoYXJlZExvY2s6Om9wZXJhdG9yPShjbGFzcyBDU2hhcmVkTG9jayBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDU2hhcmVkTG9ja0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTeXN0ZW1Qcm9wZXJ0aWVzICYgX19wdHI2NCBfX2NkZWNsIENTeXN0ZW1Qcm9wZXJ0aWVzOjpvcGVyYXRvcj0oY2xhc3MgQ1N5c3RlbVByb3BlcnRpZXMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1N5c3RlbVByb3BlcnRpZXNAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBDVHlwZTo6b3BlcmF0b3I9KGNsYXNzIENUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1VudHlwZWRBcnJheSAmIF9fcHRyNjQgX19jZGVjbCBDVW50eXBlZEFycmF5OjpvcGVyYXRvcj0oY2xhc3MgQ1VudHlwZWRBcnJheSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDVW50eXBlZEFycmF5QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1diZW1DYWxsU2VjdXJpdHkgJiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1DYWxsU2VjdXJpdHk6Om9wZXJhdG9yPShjbGFzcyBDV2JlbUNhbGxTZWN1cml0eSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDV2JlbUNhbGxTZWN1cml0eUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXYmVtQ2xhc3NDYWNoZSAmIF9fcHRyNjQgX19jZGVjbCBDV2JlbUNsYXNzQ2FjaGU6Om9wZXJhdG9yPShjbGFzcyBDV2JlbUNsYXNzQ2FjaGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1diZW1DbGFzc0NhY2hlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1diZW1EYXRhUGFja2V0ICYgX19wdHI2NCBfX2NkZWNsIENXYmVtRGF0YVBhY2tldDo6b3BlcmF0b3I9KGNsYXNzIENXYmVtRGF0YVBhY2tldCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDV2JlbURhdGFQYWNrZXRAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbUVudW1NYXJzaGFsaW5nICYgX19wdHI2NCBfX2NkZWNsIENXYmVtRW51bU1hcnNoYWxpbmc6Om9wZXJhdG9yPShjbGFzcyBDV2JlbUVudW1NYXJzaGFsaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENXYmVtRW51bU1hcnNoYWxpbmdAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbUZldGNoUmVmck1nciAmIF9fcHRyNjQgX19jZGVjbCBDV2JlbUZldGNoUmVmck1ncjo6b3BlcmF0b3I9KGNsYXNzIENXYmVtRmV0Y2hSZWZyTWdyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENXYmVtRmV0Y2hSZWZyTWdyQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1diZW1HdWlkVG9DbGFzc01hcCAmIF9fcHRyNjQgX19jZGVjbCBDV2JlbUd1aWRUb0NsYXNzTWFwOjpvcGVyYXRvcj0oY2xhc3MgQ1diZW1HdWlkVG9DbGFzc01hcCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDV2JlbUd1aWRUb0NsYXNzTWFwQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0ICYgX19wdHI2NCBfX2NkZWNsIENXYmVtTXRndERlbGl2ZXJFdmVudFBhY2tldDo6b3BlcmF0b3I9KGNsYXNzIENXYmVtTXRndERlbGl2ZXJFdmVudFBhY2tldCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDV2JlbU10Z3REZWxpdmVyRXZlbnRQYWNrZXRAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbU9iamVjdEFycmF5UGFja2V0ICYgX19wdHI2NCBfX2NkZWNsIENXYmVtT2JqZWN0QXJyYXlQYWNrZXQ6Om9wZXJhdG9yPShjbGFzcyBDV2JlbU9iamVjdEFycmF5UGFja2V0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENXYmVtT2JqZWN0QXJyYXlQYWNrZXRAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmMgJiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1SZWZyZXNoaW5nU3ZjOjpvcGVyYXRvcj0oY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENXYmVtUmVmcmVzaGluZ1N2Y0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXYmVtU21hcnRFbnVtTmV4dFBhY2tldCAmIF9fcHRyNjQgX19jZGVjbCBDV2JlbVNtYXJ0RW51bU5leHRQYWNrZXQ6Om9wZXJhdG9yPShjbGFzcyBDV2JlbVNtYXJ0RW51bU5leHRQYWNrZXQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1diZW1TbWFydEVudW1OZXh0UGFja2V0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZSAmIF9fcHRyNjQgX19jZGVjbCBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjpvcGVyYXRvcj0oY2xhc3MgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1dtaU9iamVjdEZhY3RvcnkgJiBfX3B0cjY0IF9fY2RlY2wgQ1dtaU9iamVjdEZhY3Rvcnk6Om9wZXJhdG9yPShjbGFzcyBDV21pT2JqZWN0RmFjdG9yeSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDV21pT2JqZWN0RmFjdG9yeUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXbWlUZXh0U291cmNlQXJyYXkgJiBfX3B0cjY0IF9fY2RlY2wgQ1dtaVRleHRTb3VyY2VBcnJheTo6b3BlcmF0b3I9KGNsYXNzIENXbWlUZXh0U291cmNlQXJyYXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1dtaVRleHRTb3VyY2VBcnJheUBAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBTSEFSRURfTE9DS19EQVRBICYgX19wdHI2NCBfX2NkZWNsIFNIQVJFRF9MT0NLX0RBVEE6Om9wZXJhdG9yPShzdHJ1Y3QgU0hBUkVEX0xPQ0tfREFUQSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTSEFSRURfTE9DS19EQVRBQEBRRUFBQUVBVTBAQUVCVTBAQFoNCis7IHB1YmxpYzogc3RydWN0IFNITUVNX0hBTkRMRSAmIF9fcHRyNjQgX19jZGVjbCBTSE1FTV9IQU5ETEU6Om9wZXJhdG9yPShzdHJ1Y3QgU0hNRU1fSEFORExFIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNITUVNX0hBTkRMRUBAUUVBQUFFQVUwQEFFQlUwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yzo6WENmZ1JlZnJTcnZjICYgX19wdHI2NCBfX2NkZWNsIENXYmVtUmVmcmVzaGluZ1N2Yzo6WENmZ1JlZnJTcnZjOjpvcGVyYXRvcj0oY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjOjpYQ2ZnUmVmclNydmMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80WENmZ1JlZnJTcnZjQENXYmVtUmVmcmVzaGluZ1N2Y0BAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1diZW1FbnVtTWFyc2hhbGluZzo6WEVudW1NYXJzaGFsaW5nICYgX19wdHI2NCBfX2NkZWNsIENXYmVtRW51bU1hcnNoYWxpbmc6OlhFbnVtTWFyc2hhbGluZzo6b3BlcmF0b3I9KGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmc6OlhFbnVtTWFyc2hhbGluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRYRW51bU1hcnNoYWxpbmdAQ1diZW1FbnVtTWFyc2hhbGluZ0BAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1diZW1GZXRjaFJlZnJNZ3I6OlhGZXRjaFJlZnJNZ3IgJiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1GZXRjaFJlZnJNZ3I6OlhGZXRjaFJlZnJNZ3I6Om9wZXJhdG9yPShjbGFzcyBDV2JlbUZldGNoUmVmck1ncjo6WEZldGNoUmVmck1nciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRYRmV0Y2hSZWZyTWdyQENXYmVtRmV0Y2hSZWZyTWdyQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBDV21pT2JqZWN0RmFjdG9yeTo6WE9iamVjdEZhY3RvcnkgJiBfX3B0cjY0IF9fY2RlY2wgQ1dtaU9iamVjdEZhY3Rvcnk6OlhPYmplY3RGYWN0b3J5OjpvcGVyYXRvcj0oY2xhc3MgQ1dtaU9iamVjdEZhY3Rvcnk6OlhPYmplY3RGYWN0b3J5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFhPYmplY3RGYWN0b3J5QENXbWlPYmplY3RGYWN0b3J5QEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBDV21pT2JqZWN0VGV4dFNyYzo6WE9iamVjdFRleHRTcmMgJiBfX3B0cjY0IF9fY2RlY2wgQ1dtaU9iamVjdFRleHRTcmM6OlhPYmplY3RUZXh0U3JjOjpvcGVyYXRvcj0oY2xhc3MgQ1dtaU9iamVjdFRleHRTcmM6OlhPYmplY3RUZXh0U3JjIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFhPYmplY3RUZXh0U3JjQENXbWlPYmplY3RUZXh0U3JjQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM6OlhXYmVtUmVmclN2YyAmIF9fcHRyNjQgX19jZGVjbCBDV2JlbVJlZnJlc2hpbmdTdmM6OlhXYmVtUmVmclN2Yzo6b3BlcmF0b3I9KGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yzo6WFdiZW1SZWZyU3ZjIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFhXYmVtUmVmclN2Y0BDV2JlbVJlZnJlc2hpbmdTdmNAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXYmVtUmVtb3RlUmVmcmVzaGVyOjpYV2JlbVJlbW90ZVJlZnIgJiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1SZW1vdGVSZWZyZXNoZXI6OlhXYmVtUmVtb3RlUmVmcjo6b3BlcmF0b3I9KGNsYXNzIENXYmVtUmVtb3RlUmVmcmVzaGVyOjpYV2JlbVJlbW90ZVJlZnIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80WFdiZW1SZW1vdGVSZWZyQENXYmVtUmVtb3RlUmVmcmVzaGVyQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0ludGVybmFsU3RyaW5nOjpvcGVyYXRvcj09KGNsYXNzIENJbnRlcm5hbFN0cmluZyBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzhDSW50ZXJuYWxTdHJpbmdAQFFFQkFfTkFFQlYwQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSW50ZXJuYWxTdHJpbmc6Om9wZXJhdG9yPT0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz84Q0ludGVybmFsU3RyaW5nQEBRRUJBX05QRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1F1YWxpZmllclNldDo6b3BlcmF0b3I9PShjbGFzcyBDUXVhbGlmaWVyU2V0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/OENRdWFsaWZpZXJTZXRAQFFFQUFIQUVBVjBAQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENJbnRlcm5hbFN0cmluZzo6b3BlcmF0b3IhPShjbGFzcyBDSW50ZXJuYWxTdHJpbmcgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz85Q0ludGVybmFsU3RyaW5nQEBRRUJBX05BRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSAqIF9fcHRyNjQgX19jZGVjbCBDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5Pjo6b3BlcmF0b3JbXShpbnQpIF9fcHRyNjQNCis/P0E/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBAUUVBQVBFQVZDRmFzdFByb3BlcnR5QmFnSXRlbUBASEBaDQorOyBwdWJsaWM6IGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0sY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+LGNsYXNzIENGbGV4QXJyYXk+OjpvcGVyYXRvcltdKGludCljb25zdCAgX19wdHI2NA0KKz8/QT8kQ1BvaW50ZXJBcnJheUBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQEBWQ0ZsZXhBcnJheUBAQEBRRUJBUEVCVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBIQFoNCis7IHB1YmxpYzogY2xhc3MgQ1dtaVRleHRTb3VyY2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT46Om9wZXJhdG9yW10oaW50KSBfX3B0cjY0DQorPz9BPyRDUG9pbnRlckFycmF5QFZDV21pVGV4dFNvdXJjZUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNXbWlUZXh0U291cmNlQEBAQFZDRmxleEFycmF5QEBAQFFFQUFQRUFWQ1dtaVRleHRTb3VyY2VAQEhAWg0KKzsgcHVibGljOiBjbGFzcyBDV21pVGV4dFNvdXJjZSBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENXbWlUZXh0U291cmNlPixjbGFzcyBDRmxleEFycmF5Pjo6b3BlcmF0b3JbXShpbnQpY29uc3QgIF9fcHRyNjQNCis/P0E/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBAUUVCQVBFQlZDV21pVGV4dFNvdXJjZUBASEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAmIF9fcHRyNjQgX19jZGVjbCBDRml4ZWRCU1RSQXJyYXk6Om9wZXJhdG9yW10oaW50KSBfX3B0cjY0DQorPz9BQ0ZpeGVkQlNUUkFycmF5QEBRRUFBQUVBUEVBR0hAWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBDSW50ZXJuYWxTdHJpbmc6Om9wZXJhdG9yIGNsYXNzIENDb21wcmVzc2VkU3RyaW5nICogX19wdHI2NCh2b2lkKSBfX3B0cjY0DQorPz9CQ0ludGVybmFsU3RyaW5nQEBBRUFBUEVBVkNDb21wcmVzc2VkU3RyaW5nQEBYWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBDSW50ZXJuYWxTdHJpbmc6Om9wZXJhdG9yIGNsYXNzIENDb21wcmVzc2VkU3RyaW5nICogX19wdHI2NCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CQ0ludGVybmFsU3RyaW5nQEBBRUJBUEVBVkNDb21wcmVzc2VkU3RyaW5nQEBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbnRlcm5hbFN0cmluZzo6b3BlcmF0b3IgY2xhc3MgV1N0cmluZyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CQ0ludGVybmFsU3RyaW5nQEBRRUJBP0FWV1N0cmluZ0BAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVHlwZTo6b3BlcmF0b3IgdW5zaWduZWQgbG9uZyh2b2lkKSBfX3B0cjY0DQorPz9CQ1R5cGVAQFFFQUFLWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENJbnRlcm5hbFN0cmluZzo6b3BlcmF0b3I8KGNsYXNzIENJbnRlcm5hbFN0cmluZyBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/P01DSW50ZXJuYWxTdHJpbmdAQFFFQkFfTkFFQlYwQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSW50ZXJuYWxTdHJpbmc6Om9wZXJhdG9yPihjbGFzcyBDSW50ZXJuYWxTdHJpbmcgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz9PQ0ludGVybmFsU3RyaW5nQEBRRUJBX05BRUJWMEBAWg0KKzsgY29uc3QgIENJbXBsPHN0cnVjdCBJV2JlbU9iamVjdFRleHRTcmMsY2xhc3MgQ1dtaU9iamVjdFRleHRTcmM+OjpgdmZ0YWJsZScNCis/P183PyRDSW1wbEBVSVdiZW1PYmplY3RUZXh0U3JjQEBWQ1dtaU9iamVjdFRleHRTcmNAQEBANkJADQorOyBjb25zdCAgQ0ltcGw8c3RydWN0IElXYmVtUmVmcmVzaGluZ1NlcnZpY2VzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz46OmB2ZnRhYmxlJw0KKz8/Xzc/JENJbXBsQFVJV2JlbVJlZnJlc2hpbmdTZXJ2aWNlc0BAVkNXYmVtUmVmcmVzaGluZ1N2Y0BAQEA2QkANCis7IGNvbnN0ICBDSW1wbDxzdHJ1Y3QgSVdiZW1SZW1vdGVSZWZyZXNoZXIsY2xhc3MgQ1diZW1SZW1vdGVSZWZyZXNoZXI+OjpgdmZ0YWJsZScNCis/P183PyRDSW1wbEBVSVdiZW1SZW1vdGVSZWZyZXNoZXJAQFZDV2JlbVJlbW90ZVJlZnJlc2hlckBAQEA2QkANCis7IGNvbnN0ICBDSW1wbDxzdHJ1Y3QgX0lXYmVtQ29uZmlndXJlUmVmcmVzaGluZ1N2Y3MsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPjo6YHZmdGFibGUnDQorPz9fNz8kQ0ltcGxAVV9JV2JlbUNvbmZpZ3VyZVJlZnJlc2hpbmdTdmNzQEBWQ1diZW1SZWZyZXNoaW5nU3ZjQEBAQDZCQA0KKzsgY29uc3QgIENJbXBsPHN0cnVjdCBfSVdiZW1FbnVtTWFyc2hhbGluZyxjbGFzcyBDV2JlbUVudW1NYXJzaGFsaW5nPjo6YHZmdGFibGUnDQorPz9fNz8kQ0ltcGxAVV9JV2JlbUVudW1NYXJzaGFsaW5nQEBWQ1diZW1FbnVtTWFyc2hhbGluZ0BAQEA2QkANCis7IGNvbnN0ICBDSW1wbDxzdHJ1Y3QgX0lXYmVtRmV0Y2hSZWZyZXNoZXJNZ3IsY2xhc3MgQ1diZW1GZXRjaFJlZnJNZ3I+OjpgdmZ0YWJsZScNCis/P183PyRDSW1wbEBVX0lXYmVtRmV0Y2hSZWZyZXNoZXJNZ3JAQFZDV2JlbUZldGNoUmVmck1nckBAQEA2QkANCis7IGNvbnN0ICBDSW1wbDxzdHJ1Y3QgX0lXbWlPYmplY3RGYWN0b3J5LGNsYXNzIENXbWlPYmplY3RGYWN0b3J5Pjo6YHZmdGFibGUnDQorPz9fNz8kQ0ltcGxAVV9JV21pT2JqZWN0RmFjdG9yeUBAVkNXbWlPYmplY3RGYWN0b3J5QEBAQDZCQA0KKzsgY29uc3QgIENDbGFzc0FuZE1ldGhvZHM6OmB2ZnRhYmxlJ3tmb3IgYENDbGFzc1BhcnRDb250YWluZXInfQ0KKz8/XzdDQ2xhc3NBbmRNZXRob2RzQEA2QkNDbGFzc1BhcnRDb250YWluZXJAQEANCis7IGNvbnN0ICBDQ2xhc3NBbmRNZXRob2RzOjpgdmZ0YWJsZSd7Zm9yIGBDTWV0aG9kUGFydENvbnRhaW5lcid9DQorPz9fN0NDbGFzc0FuZE1ldGhvZHNAQDZCQ01ldGhvZFBhcnRDb250YWluZXJAQEANCis7IGNvbnN0ICBDQ2xhc3NQYXJ0OjpgdmZ0YWJsZSd7Zm9yIGBDRGF0YVRhYmxlQ29udGFpbmVyJ30NCis/P183Q0NsYXNzUGFydEBANkJDRGF0YVRhYmxlQ29udGFpbmVyQEBADQorOyBjb25zdCAgQ0NsYXNzUGFydDo6YHZmdGFibGUne2ZvciBgQ0hlYXBDb250YWluZXInfQ0KKz8/XzdDQ2xhc3NQYXJ0QEA2QkNIZWFwQ29udGFpbmVyQEBADQorOyBjb25zdCAgQ0NsYXNzUGFydDo6YHZmdGFibGUne2ZvciBgQ1Byb3BlcnR5VGFibGVDb250YWluZXInfQ0KKz8/XzdDQ2xhc3NQYXJ0QEA2QkNQcm9wZXJ0eVRhYmxlQ29udGFpbmVyQEBADQorOyBjb25zdCAgQ0NsYXNzUGFydDo6YHZmdGFibGUne2ZvciBgQ1F1YWxpZmllclNldENvbnRhaW5lcid9DQorPz9fN0NDbGFzc1BhcnRAQDZCQ1F1YWxpZmllclNldENvbnRhaW5lckBAQA0KKzsgY29uc3QgIENDbGFzc1BhcnRDb250YWluZXI6OmB2ZnRhYmxlJw0KKz8/XzdDQ2xhc3NQYXJ0Q29udGFpbmVyQEA2QkANCis7IGNvbnN0ICBDQ2xhc3NRdWFsaWZpZXJTZXQ6OmB2ZnRhYmxlJw0KKz8/XzdDQ2xhc3NRdWFsaWZpZXJTZXRAQDZCQA0KKzsgY29uc3QgIENGYXN0UHJvcGVydHlCYWc6OmB2ZnRhYmxlJw0KKz8/XzdDRmFzdFByb3BlcnR5QmFnQEA2QkANCis7IGNvbnN0ICBDSW5zdGFuY2VQUVNDb250YWluZXI6OmB2ZnRhYmxlJw0KKz8/XzdDSW5zdGFuY2VQUVNDb250YWluZXJAQDZCQA0KKzsgY29uc3QgIENJbnN0YW5jZVBhcnQ6OmB2ZnRhYmxlJ3tmb3IgYENEYXRhVGFibGVDb250YWluZXInfQ0KKz8/XzdDSW5zdGFuY2VQYXJ0QEA2QkNEYXRhVGFibGVDb250YWluZXJAQEANCis7IGNvbnN0ICBDSW5zdGFuY2VQYXJ0OjpgdmZ0YWJsZSd7Zm9yIGBDSGVhcENvbnRhaW5lcid9DQorPz9fN0NJbnN0YW5jZVBhcnRAQDZCQ0hlYXBDb250YWluZXJAQEANCis7IGNvbnN0ICBDSW5zdGFuY2VQYXJ0OjpgdmZ0YWJsZSd7Zm9yIGBDUXVhbGlmaWVyU2V0Q29udGFpbmVyJ30NCis/P183Q0luc3RhbmNlUGFydEBANkJDUXVhbGlmaWVyU2V0Q29udGFpbmVyQEBADQorOyBjb25zdCAgQ0luc3RhbmNlUGFydDo6YHZmdGFibGUne2ZvciBgQ1F1YWxpZmllclNldExpc3RDb250YWluZXInfQ0KKz8/XzdDSW5zdGFuY2VQYXJ0QEA2QkNRdWFsaWZpZXJTZXRMaXN0Q29udGFpbmVyQEBADQorOyBjb25zdCAgQ0luc3RhbmNlUGFydENvbnRhaW5lcjo6YHZmdGFibGUnDQorPz9fN0NJbnN0YW5jZVBhcnRDb250YWluZXJAQDZCQA0KKzsgY29uc3QgIENJbnN0YW5jZVF1YWxpZmllclNldDo6YHZmdGFibGUnDQorPz9fN0NJbnN0YW5jZVF1YWxpZmllclNldEBANkJADQorOyBjb25zdCAgQ01ldGhvZFBhcnQ6OmB2ZnRhYmxlJw0KKz8/XzdDTWV0aG9kUGFydEBANkJADQorOyBjb25zdCAgQ01ldGhvZFBhcnRDb250YWluZXI6OmB2ZnRhYmxlJw0KKz8/XzdDTWV0aG9kUGFydENvbnRhaW5lckBANkJADQorOyBjb25zdCAgQ01ldGhvZFF1YWxpZmllclNldDo6YHZmdGFibGUnDQorPz9fN0NNZXRob2RRdWFsaWZpZXJTZXRAQDZCQA0KKzsgY29uc3QgIENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXI6OmB2ZnRhYmxlJw0KKz8/XzdDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyQEA2QkANCis7IGNvbnN0ICBDUXVhbGlmaWVyU2V0OjpgdmZ0YWJsZScNCis/P183Q1F1YWxpZmllclNldEBANkJADQorOyBjb25zdCAgQ1F1YWxpZmllclNldExpc3RDb250YWluZXI6OmB2ZnRhYmxlJw0KKz8/XzdDUXVhbGlmaWVyU2V0TGlzdENvbnRhaW5lckBANkJADQorOyBjb25zdCAgQ1diZW1DYWxsU2VjdXJpdHk6OmB2ZnRhYmxlJ3tmb3IgYElTZXJ2ZXJTZWN1cml0eSd9DQorPz9fN0NXYmVtQ2FsbFNlY3VyaXR5QEA2QklTZXJ2ZXJTZWN1cml0eUBAQA0KKzsgY29uc3QgIENXYmVtQ2FsbFNlY3VyaXR5OjpgdmZ0YWJsZSd7Zm9yIGBfSVdtaUNhbGxTZWMnfQ0KKz8/XzdDV2JlbUNhbGxTZWN1cml0eUBANkJfSVdtaUNhbGxTZWNAQEANCis7IGNvbnN0ICBDV2JlbUNsYXNzOjpgdmZ0YWJsZSd7Zm9yIGBJRXJyb3JJbmZvJ30NCis/P183Q1diZW1DbGFzc0BANkJJRXJyb3JJbmZvQEBADQorOyBjb25zdCAgQ1diZW1DbGFzczo6YHZmdGFibGUne2ZvciBgSU1hcnNoYWwnfQ0KKz8/XzdDV2JlbUNsYXNzQEA2QklNYXJzaGFsQEBADQorOyBjb25zdCAgQ1diZW1DbGFzczo6YHZmdGFibGUne2ZvciBgSVdiZW1Db25zdHJ1Y3RDbGFzc09iamVjdCd9DQorPz9fN0NXYmVtQ2xhc3NAQDZCSVdiZW1Db25zdHJ1Y3RDbGFzc09iamVjdEBAQA0KKzsgY29uc3QgIENXYmVtQ2xhc3M6OmB2ZnRhYmxlJ3tmb3IgYElXYmVtUHJvcGVydHlTb3VyY2UnfQ0KKz8/XzdDV2JlbUNsYXNzQEA2QklXYmVtUHJvcGVydHlTb3VyY2VAQEANCis7IGNvbnN0ICBDV2JlbUNsYXNzOjpgdmZ0YWJsZSd7Zm9yIGBfSVdtaU9iamVjdCd9DQorPz9fN0NXYmVtQ2xhc3NAQDZCX0lXbWlPYmplY3RAQEANCis7IGNvbnN0ICBDV2JlbUVudW1NYXJzaGFsaW5nOjpgdmZ0YWJsZScNCis/P183Q1diZW1FbnVtTWFyc2hhbGluZ0BANkJADQorOyBjb25zdCAgQ1diZW1GZXRjaFJlZnJNZ3I6OmB2ZnRhYmxlJw0KKz8/XzdDV2JlbUZldGNoUmVmck1nckBANkJADQorOyBjb25zdCAgQ1diZW1JbnN0YW5jZTo6YHZmdGFibGUne2ZvciBgQ0NsYXNzUGFydENvbnRhaW5lcid9DQorPz9fN0NXYmVtSW5zdGFuY2VAQDZCQ0NsYXNzUGFydENvbnRhaW5lckBAQA0KKzsgY29uc3QgIENXYmVtSW5zdGFuY2U6OmB2ZnRhYmxlJ3tmb3IgYENJbnN0YW5jZVBhcnRDb250YWluZXInfQ0KKz8/XzdDV2JlbUluc3RhbmNlQEA2QkNJbnN0YW5jZVBhcnRDb250YWluZXJAQEANCis7IGNvbnN0ICBDV2JlbUluc3RhbmNlOjpgdmZ0YWJsZSd7Zm9yIGBJRXJyb3JJbmZvJ30NCis/P183Q1diZW1JbnN0YW5jZUBANkJJRXJyb3JJbmZvQEBADQorOyBjb25zdCAgQ1diZW1JbnN0YW5jZTo6YHZmdGFibGUne2ZvciBgSU1hcnNoYWwnfQ0KKz8/XzdDV2JlbUluc3RhbmNlQEA2QklNYXJzaGFsQEBADQorOyBjb25zdCAgQ1diZW1JbnN0YW5jZTo6YHZmdGFibGUne2ZvciBgSVdiZW1Db25zdHJ1Y3RDbGFzc09iamVjdCd9DQorPz9fN0NXYmVtSW5zdGFuY2VAQDZCSVdiZW1Db25zdHJ1Y3RDbGFzc09iamVjdEBAQA0KKzsgY29uc3QgIENXYmVtSW5zdGFuY2U6OmB2ZnRhYmxlJ3tmb3IgYElXYmVtUHJvcGVydHlTb3VyY2UnfQ0KKz8/XzdDV2JlbUluc3RhbmNlQEA2QklXYmVtUHJvcGVydHlTb3VyY2VAQEANCis7IGNvbnN0ICBDV2JlbUluc3RhbmNlOjpgdmZ0YWJsZSd7Zm9yIGBfSVdtaU9iamVjdCd9DQorPz9fN0NXYmVtSW5zdGFuY2VAQDZCX0lXbWlPYmplY3RAQEANCis7IGNvbnN0ICBDV2JlbU9iamVjdDo6YHZmdGFibGUne2ZvciBgSUVycm9ySW5mbyd9DQorPz9fN0NXYmVtT2JqZWN0QEA2QklFcnJvckluZm9AQEANCis7IGNvbnN0ICBDV2JlbU9iamVjdDo6YHZmdGFibGUne2ZvciBgSU1hcnNoYWwnfQ0KKz8/XzdDV2JlbU9iamVjdEBANkJJTWFyc2hhbEBAQA0KKzsgY29uc3QgIENXYmVtT2JqZWN0OjpgdmZ0YWJsZSd7Zm9yIGBJV2JlbUNvbnN0cnVjdENsYXNzT2JqZWN0J30NCis/P183Q1diZW1PYmplY3RAQDZCSVdiZW1Db25zdHJ1Y3RDbGFzc09iamVjdEBAQA0KKzsgY29uc3QgIENXYmVtT2JqZWN0OjpgdmZ0YWJsZSd7Zm9yIGBJV2JlbVByb3BlcnR5U291cmNlJ30NCis/P183Q1diZW1PYmplY3RAQDZCSVdiZW1Qcm9wZXJ0eVNvdXJjZUBAQA0KKzsgY29uc3QgIENXYmVtT2JqZWN0OjpgdmZ0YWJsZSd7Zm9yIGBfSVdtaU9iamVjdCd9DQorPz9fN0NXYmVtT2JqZWN0QEA2Ql9JV21pT2JqZWN0QEBADQorOyBjb25zdCAgQ1diZW1SZWZyZXNoaW5nU3ZjOjpgdmZ0YWJsZScNCis/P183Q1diZW1SZWZyZXNoaW5nU3ZjQEA2QkANCis7IGNvbnN0ICBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjpgdmZ0YWJsZScNCis/P183Q1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZUBANkJADQorOyBjb25zdCAgQ1dtaU9iamVjdEZhY3Rvcnk6OmB2ZnRhYmxlJw0KKz8/XzdDV21pT2JqZWN0RmFjdG9yeUBANkJADQorOyBjb25zdCAgQ1diZW1SZWZyZXNoaW5nU3ZjOjpYQ2ZnUmVmclNydmM6OmB2ZnRhYmxlJw0KKz8/XzdYQ2ZnUmVmclNydmNAQ1diZW1SZWZyZXNoaW5nU3ZjQEA2QkANCis7IGNvbnN0ICBDV2JlbUVudW1NYXJzaGFsaW5nOjpYRW51bU1hcnNoYWxpbmc6OmB2ZnRhYmxlJw0KKz8/XzdYRW51bU1hcnNoYWxpbmdAQ1diZW1FbnVtTWFyc2hhbGluZ0BANkJADQorOyBjb25zdCAgQ1diZW1GZXRjaFJlZnJNZ3I6OlhGZXRjaFJlZnJNZ3I6OmB2ZnRhYmxlJw0KKz8/XzdYRmV0Y2hSZWZyTWdyQENXYmVtRmV0Y2hSZWZyTWdyQEA2QkANCis7IGNvbnN0ICBDV21pT2JqZWN0RmFjdG9yeTo6WE9iamVjdEZhY3Rvcnk6OmB2ZnRhYmxlJw0KKz8/XzdYT2JqZWN0RmFjdG9yeUBDV21pT2JqZWN0RmFjdG9yeUBANkJADQorOyBjb25zdCAgQ1dtaU9iamVjdFRleHRTcmM6OlhPYmplY3RUZXh0U3JjOjpgdmZ0YWJsZScNCis/P183WE9iamVjdFRleHRTcmNAQ1dtaU9iamVjdFRleHRTcmNAQDZCQA0KKzsgY29uc3QgIENXYmVtUmVmcmVzaGluZ1N2Yzo6WFdiZW1SZWZyU3ZjOjpgdmZ0YWJsZScNCis/P183WFdiZW1SZWZyU3ZjQENXYmVtUmVmcmVzaGluZ1N2Y0BANkJADQorOyBjb25zdCAgQ1diZW1SZW1vdGVSZWZyZXNoZXI6OlhXYmVtUmVtb3RlUmVmcjo6YHZmdGFibGUnDQorPz9fN1hXYmVtUmVtb3RlUmVmckBDV2JlbVJlbW90ZVJlZnJlc2hlckBANkJADQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5Pjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0Y/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GPyRDUG9pbnRlckFycmF5QFZDV21pVGV4dFNvdXJjZUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNXbWlUZXh0U291cmNlQEBAQFZDRmxleEFycmF5QEBAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDbGFzc1F1YWxpZmllclNldDo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDQ2xhc3NRdWFsaWZpZXJTZXRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbnN0YW5jZVF1YWxpZmllclNldDo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDSW5zdGFuY2VRdWFsaWZpZXJTZXRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENXYmVtQ2xhc3NDYWNoZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDV2JlbUNsYXNzQ2FjaGVAQFFFQUFYWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENGYXN0SGVhcDo6QWJzb2x1dGVUb0hlYXAodW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWJzb2x1dGVUb0hlYXBAQ0Zhc3RIZWFwQEBJRUFBS1BFQUVAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ludGVybmFsU3RyaW5nOjpBY3F1aXJlQ29tcHJlc3NlZFN0cmluZyhjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWNxdWlyZUNvbXByZXNzZWRTdHJpbmdAQ0ludGVybmFsU3RyaW5nQEBRRUFBWFBFQVZDQ29tcHJlc3NlZFN0cmluZ0BAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT46OkFkZChjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkQD8kQ1BvaW50ZXJBcnJheUBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQEBWQ0ZsZXhBcnJheUBAQEBRRUFBSFBFQVZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT46OkFkZChjbGFzcyBDV21pVGV4dFNvdXJjZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkQD8kQ1BvaW50ZXJBcnJheUBWQ1dtaVRleHRTb3VyY2VAQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDV21pVGV4dFNvdXJjZUBAQEBWQ0ZsZXhBcnJheUBAQEBRRUFBSFBFQVZDV21pVGV4dFNvdXJjZUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENGYXN0UHJvcGVydHlCYWc6OkFkZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkQENGYXN0UHJvcGVydHlCYWdAQFFFQUFKUEVCR0pLS1BFQVhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVJlZnJlc2hpbmdTdmM6OkFkZEVudW1Ub1JlZnJlc2hlcihzdHJ1Y3QgX1dCRU1fUkVGUkVTSEVSX0lEICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyxzdHJ1Y3QgSVdiZW1Db250ZXh0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHN0cnVjdCBfV0JFTV9SRUZSRVNIX0lORk8gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEVudW1Ub1JlZnJlc2hlckBDV2JlbVJlZnJlc2hpbmdTdmNAQE1FQUFKUEVBVV9XQkVNX1JFRlJFU0hFUl9JREBAUEVCR0pQRUFVSVdiZW1Db250ZXh0QEBLUEVBVV9XQkVNX1JFRlJFU0hfSU5GT0BAUEVBS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtUmVmcmVzaGluZ1N2Yzo6WFdiZW1SZWZyU3ZjOjpBZGRFbnVtVG9SZWZyZXNoZXIoc3RydWN0IF9XQkVNX1JFRlJFU0hFUl9JRCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgX1dCRU1fUkVGUkVTSF9JTkZPICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRFbnVtVG9SZWZyZXNoZXJAWFdiZW1SZWZyU3ZjQENXYmVtUmVmcmVzaGluZ1N2Y0BAVUVBQUpQRUFVX1dCRU1fUkVGUkVTSEVSX0lEQEBQRUJHSlBFQVVJV2JlbUNvbnRleHRAQEtQRUFVX1dCRU1fUkVGUkVTSF9JTkZPQEBQRUFLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENXYmVtUmVmcmVzaGluZ1N2Yzo6QWRkRW51bVRvUmVmcmVzaGVyXyhpbnQsc3RydWN0IF9XQkVNX1JFRlJFU0hFUl9JRCAqIF9fcHRyNjQsY2xhc3MgQ1diZW1PYmplY3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKiBfX3B0cjY0LHN0cnVjdCBfV0JFTV9SRUZSRVNIX0lORk8gKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEVudW1Ub1JlZnJlc2hlcl9AQ1diZW1SZWZyZXNoaW5nU3ZjQEBJRUFBSkhQRUFVX1dCRU1fUkVGUkVTSEVSX0lEQEBQRUFWQ1diZW1PYmplY3RAQFBFQkdKUEVBVUlXYmVtQ29udGV4dEBAUEVBVV9XQkVNX1JFRlJFU0hfSU5GT0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtR3VpZFRvQ2xhc3NNYXA6OkFkZE1hcChjbGFzcyBDR1VJRCAmIF9fcHRyNjQsY2xhc3MgQ1diZW1DbGFzc1RvSWRNYXAgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRNYXBAQ1diZW1HdWlkVG9DbGFzc01hcEBAUUVBQUpBRUFWQ0dVSURAQFBFQVBFQVZDV2JlbUNsYXNzVG9JZE1hcEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3NDYWNoZTo6QWRkT2JqZWN0KHN0cnVjdCBfR1VJRCAmIF9fcHRyNjQsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZE9iamVjdEBDV2JlbUNsYXNzQ2FjaGVAQFFFQUFKQUVBVV9HVUlEQEBQRUFVSVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1SZWZyZXNoaW5nU3ZjOjpBZGRPYmplY3RUb1JlZnJlc2hlcihzdHJ1Y3QgX1dCRU1fUkVGUkVTSEVSX0lEICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyxzdHJ1Y3QgSVdiZW1Db250ZXh0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHN0cnVjdCBfV0JFTV9SRUZSRVNIX0lORk8gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZE9iamVjdFRvUmVmcmVzaGVyQENXYmVtUmVmcmVzaGluZ1N2Y0BATUVBQUpQRUFVX1dCRU1fUkVGUkVTSEVSX0lEQEBQRUJHSlBFQVVJV2JlbUNvbnRleHRAQEtQRUFVX1dCRU1fUkVGUkVTSF9JTkZPQEBQRUFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1SZWZyZXNoaW5nU3ZjOjpYV2JlbVJlZnJTdmM6OkFkZE9iamVjdFRvUmVmcmVzaGVyKHN0cnVjdCBfV0JFTV9SRUZSRVNIRVJfSUQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsc3RydWN0IF9XQkVNX1JFRlJFU0hfSU5GTyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkT2JqZWN0VG9SZWZyZXNoZXJAWFdiZW1SZWZyU3ZjQENXYmVtUmVmcmVzaGluZ1N2Y0BAVUVBQUpQRUFVX1dCRU1fUkVGUkVTSEVSX0lEQEBQRUJHSlBFQVVJV2JlbUNvbnRleHRAQEtQRUFVX1dCRU1fUkVGUkVTSF9JTkZPQEBQRUFLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1SZWZyZXNoaW5nU3ZjOjpBZGRPYmplY3RUb1JlZnJlc2hlckJ5VGVtcGxhdGUoc3RydWN0IF9XQkVNX1JFRlJFU0hFUl9JRCAqIF9fcHRyNjQsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0LGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgX1dCRU1fUkVGUkVTSF9JTkZPICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRPYmplY3RUb1JlZnJlc2hlckJ5VGVtcGxhdGVAQ1diZW1SZWZyZXNoaW5nU3ZjQEBNRUFBSlBFQVVfV0JFTV9SRUZSRVNIRVJfSURAQFBFQVVJV2JlbUNsYXNzT2JqZWN0QEBKUEVBVUlXYmVtQ29udGV4dEBAS1BFQVVfV0JFTV9SRUZSRVNIX0lORk9AQFBFQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVJlZnJlc2hpbmdTdmM6OlhXYmVtUmVmclN2Yzo6QWRkT2JqZWN0VG9SZWZyZXNoZXJCeVRlbXBsYXRlKHN0cnVjdCBfV0JFTV9SRUZSRVNIRVJfSUQgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsc3RydWN0IF9XQkVNX1JFRlJFU0hfSU5GTyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkT2JqZWN0VG9SZWZyZXNoZXJCeVRlbXBsYXRlQFhXYmVtUmVmclN2Y0BDV2JlbVJlZnJlc2hpbmdTdmNAQFVFQUFKUEVBVV9XQkVNX1JFRlJFU0hFUl9JREBAUEVBVUlXYmVtQ2xhc3NPYmplY3RAQEpQRUFVSVdiZW1Db250ZXh0QEBLUEVBVV9XQkVNX1JFRlJFU0hfSU5GT0BAUEVBS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDV2JlbVJlZnJlc2hpbmdTdmM6OkFkZE9iamVjdFRvUmVmcmVzaGVyXyhpbnQsc3RydWN0IF9XQkVNX1JFRlJFU0hFUl9JRCAqIF9fcHRyNjQsY2xhc3MgQ1diZW1PYmplY3QgKiBfX3B0cjY0LGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqIF9fcHRyNjQsc3RydWN0IF9XQkVNX1JFRlJFU0hfSU5GTyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkT2JqZWN0VG9SZWZyZXNoZXJfQENXYmVtUmVmcmVzaGluZ1N2Y0BASUVBQUpIUEVBVV9XQkVNX1JFRlJFU0hFUl9JREBAUEVBVkNXYmVtT2JqZWN0QEBKUEVBVUlXYmVtQ29udGV4dEBAUEVBVV9XQkVNX1JFRlJFU0hfSU5GT0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkFkZFByb3BlcnR5VGV4dChjbGFzcyBXU3RyaW5nICYgX19wdHI2NCxzdHJ1Y3QgQ1Byb3BlcnR5TG9va3VwICogX19wdHI2NCxjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz9BZGRQcm9wZXJ0eVRleHRAQ1diZW1DbGFzc0BAUUVBQUpBRUFWV1N0cmluZ0BAUEVBVUNQcm9wZXJ0eUxvb2t1cEBAUEVBVkNQcm9wZXJ0eUluZm9ybWF0aW9uQEBKQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDVHlwZTo6QWRkUHJvcGVydHlUeXBlKGNsYXNzIFdTdHJpbmcgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/QWRkUHJvcGVydHlUeXBlQENUeXBlQEBTQVhBRUFWV1N0cmluZ0BAUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDUXVhbGlmaWVyU2V0OjpBZGRRdWFsaWZpZXJDb25mbGljdHMoY2xhc3MgQ1ZhclZlY3RvciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkUXVhbGlmaWVyQ29uZmxpY3RzQENRdWFsaWZpZXJTZXRAQElFQUFKQUVBVkNWYXJWZWN0b3JAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENJbXBsPHN0cnVjdCBJV2JlbU9iamVjdFRleHRTcmMsY2xhc3MgQ1dtaU9iamVjdFRleHRTcmM+OjpBZGRSZWYodm9pZCkgX19wdHI2NA0KKz9BZGRSZWZAPyRDSW1wbEBVSVdiZW1PYmplY3RUZXh0U3JjQEBWQ1dtaU9iamVjdFRleHRTcmNAQEBAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSW1wbDxzdHJ1Y3QgSVdiZW1SZWZyZXNoaW5nU2VydmljZXMsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPjo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQD8kQ0ltcGxAVUlXYmVtUmVmcmVzaGluZ1NlcnZpY2VzQEBWQ1diZW1SZWZyZXNoaW5nU3ZjQEBAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0ltcGw8c3RydWN0IElXYmVtUmVtb3RlUmVmcmVzaGVyLGNsYXNzIENXYmVtUmVtb3RlUmVmcmVzaGVyPjo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQD8kQ0ltcGxAVUlXYmVtUmVtb3RlUmVmcmVzaGVyQEBWQ1diZW1SZW1vdGVSZWZyZXNoZXJAQEBAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSW1wbDxzdHJ1Y3QgX0lXYmVtQ29uZmlndXJlUmVmcmVzaGluZ1N2Y3MsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPjo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQD8kQ0ltcGxAVV9JV2JlbUNvbmZpZ3VyZVJlZnJlc2hpbmdTdmNzQEBWQ1diZW1SZWZyZXNoaW5nU3ZjQEBAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0ltcGw8c3RydWN0IF9JV2JlbUVudW1NYXJzaGFsaW5nLGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmc+OjpBZGRSZWYodm9pZCkgX19wdHI2NA0KKz9BZGRSZWZAPyRDSW1wbEBVX0lXYmVtRW51bU1hcnNoYWxpbmdAQFZDV2JlbUVudW1NYXJzaGFsaW5nQEBAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0ltcGw8c3RydWN0IF9JV2JlbUZldGNoUmVmcmVzaGVyTWdyLGNsYXNzIENXYmVtRmV0Y2hSZWZyTWdyPjo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQD8kQ0ltcGxAVV9JV2JlbUZldGNoUmVmcmVzaGVyTWdyQEBWQ1diZW1GZXRjaFJlZnJNZ3JAQEBAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSW1wbDxzdHJ1Y3QgX0lXbWlPYmplY3RGYWN0b3J5LGNsYXNzIENXbWlPYmplY3RGYWN0b3J5Pjo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQD8kQ0ltcGxAVV9JV21pT2JqZWN0RmFjdG9yeUBAVkNXbWlPYmplY3RGYWN0b3J5QEBAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1F1YWxpZmllclNldDo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQENRdWFsaWZpZXJTZXRAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1diZW1DYWxsU2VjdXJpdHk6OkFkZFJlZih2b2lkKSBfX3B0cjY0DQorP0FkZFJlZkBDV2JlbUNhbGxTZWN1cml0eUBAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQENXYmVtT2JqZWN0QEBVRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGU6OkFkZFJlZih2b2lkKSBfX3B0cjY0DQorP0FkZFJlZkBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlQEBVRUFBS1haDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5Pjo6QWRkUmVmRWxlbWVudChjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkUmVmRWxlbWVudEA/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBASUVBQVhQRUFWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENXbWlUZXh0U291cmNlPixjbGFzcyBDRmxleEFycmF5Pjo6QWRkUmVmRWxlbWVudChjbGFzcyBDV21pVGV4dFNvdXJjZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkUmVmRWxlbWVudEA/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBASUVBQVhQRUFWQ1dtaVRleHRTb3VyY2VAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6OkFkZFN0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkU3RyaW5nQENDb21wcmVzc2VkU3RyaW5nTGlzdEBAUUVBQVhQRUJHQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDTWV0aG9kRGVzY3JpcHRpb246OkFkZFRleHQoc3RydWN0IENNZXRob2REZXNjcmlwdGlvbiAqIF9fcHRyNjQgX19wdHI2NCxjbGFzcyBXU3RyaW5nICYgX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0LGxvbmcpDQorP0FkZFRleHRAQ01ldGhvZERlc2NyaXB0aW9uQEBTQUpQRUZBVTFAQUVBVldTdHJpbmdAQFBFQVZDRmFzdEhlYXBAQEpAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGhvZFBhcnQ6OkFkZFRleHQoY2xhc3MgV1N0cmluZyAmIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz9BZGRUZXh0QENNZXRob2RQYXJ0QEBRRUFBSkFFQVZXU3RyaW5nQEBKQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0Zhc3RIZWFwOjpBbGxvY2F0ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0IF9fcHRyNjQpIF9fcHRyNjQNCis/QWxsb2NhdGVAQ0Zhc3RIZWFwQEBRRUFBSEtBRUZBS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENGYXN0SGVhcDo6QWxsb2NhdGVTdHJpbmcoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQgX19wdHI2NCkgX19wdHI2NA0KKz9BbGxvY2F0ZVN0cmluZ0BDRmFzdEhlYXBAQFFFQUFIUEVCREFFRkFLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0Zhc3RIZWFwOjpBbGxvY2F0ZVN0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQgX19wdHI2NCkgX19wdHI2NA0KKz9BbGxvY2F0ZVN0cmluZ0BDRmFzdEhlYXBAQFFFQUFIUEVCR0FFRkFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkFwcGVuZEFycmF5UHJvcFJhbmdlQnlIYW5kbGUobG9uZyxsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRBcnJheVByb3BSYW5nZUJ5SGFuZGxlQENXYmVtT2JqZWN0QEBVRUFBSkpKS0tQRUFYQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpBcHBlbmRRdWFsaWZpZXJBcnJheVJhbmdlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50LGxvbmcsbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kUXVhbGlmaWVyQXJyYXlSYW5nZUBDV2JlbU9iamVjdEBAUUVBQUpQRUJHMEhKSktLUEVBWEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1VudHlwZWRBcnJheTo6QXBwZW5kUmFuZ2UoY2xhc3MgQ1B0clNvdXJjZSAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0KQ0KKz9BcHBlbmRSYW5nZUBDVW50eXBlZEFycmF5QEBTQUpQRUFWQ1B0clNvdXJjZUBAS0tQRUFWQ0Zhc3RIZWFwQEBLS1BFQVhAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1diZW1PYmplY3Q6OkFyZUVxdWFsKGNsYXNzIENXYmVtT2JqZWN0ICogX19wdHI2NCxjbGFzcyBDV2JlbU9iamVjdCAqIF9fcHRyNjQsbG9uZykNCis/QXJlRXF1YWxAQ1diZW1PYmplY3RAQFNBSFBFQVYxQDBKQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RlY29yYXRpb25QYXJ0OjpBcmVLZXlzUmVtb3ZlZCh2b2lkKSBfX3B0cjY0DQorP0FyZUtleXNSZW1vdmVkQENEZWNvcmF0aW9uUGFydEBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTGltaXRhdGlvbk1hcHBpbmc6OkFyZVByb3BlcnRpZXNMaW1pdGVkKHZvaWQpIF9fcHRyNjQNCis/QXJlUHJvcGVydGllc0xpbWl0ZWRAQ0xpbWl0YXRpb25NYXBwaW5nQEBRRUFBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6QXN5bW1ldHJpY01lcmdlKGNsYXNzIENXYmVtSW5zdGFuY2UgKiBfX3B0cjY0LGNsYXNzIENXYmVtSW5zdGFuY2UgKiBfX3B0cjY0KQ0KKz9Bc3ltbWV0cmljTWVyZ2VAQ1diZW1JbnN0YW5jZUBAU0FKUEVBVjFAMEBaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRmFzdEhlYXA6OkF1Z21lbnRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BdWdtZW50UmVxdWVzdEBDRmFzdEhlYXBAQElFQUFLS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDUXVhbGlmaWVyU2V0OjpCZWdpbkVudW1lcmF0aW9uKGxvbmcpIF9fcHRyNjQNCis/QmVnaW5FbnVtZXJhdGlvbkBDUXVhbGlmaWVyU2V0QEBVRUFBSkpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6QmVnaW5FbnVtZXJhdGlvbihsb25nKSBfX3B0cjY0DQorP0JlZ2luRW51bWVyYXRpb25AQ1diZW1PYmplY3RAQFVFQUFKSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpCZWdpbkVudW1lcmF0aW9uRXgobG9uZyxsb25nKSBfX3B0cjY0DQorP0JlZ2luRW51bWVyYXRpb25FeEBDV2JlbU9iamVjdEBAVUVBQUpKSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkJlZ2luTWV0aG9kRW51bWVyYXRpb24obG9uZykgX19wdHI2NA0KKz9CZWdpbk1ldGhvZEVudW1lcmF0aW9uQENXYmVtQ2xhc3NAQFVFQUFKSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkJlZ2luTWV0aG9kRW51bWVyYXRpb24obG9uZykgX19wdHI2NA0KKz9CZWdpbk1ldGhvZEVudW1lcmF0aW9uQENXYmVtSW5zdGFuY2VAQFVFQUFKSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTGltaXRhdGlvbk1hcHBpbmc6OkJ1aWxkKGludCkgX19wdHI2NA0KKz9CdWlsZEBDTGltaXRhdGlvbk1hcHBpbmdAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpDSU1UWVBFVG9WQVJUWVBFKGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NJTVRZUEVUb1ZBUlRZUEVAQ1diZW1PYmplY3RAQFVFQUFKSlBFQUdAWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ1R5cGUgIF9fY2RlY2wgQ1R5cGU6OkNWYXJUb1R5cGUoY2xhc3MgQ1ZhciAmIF9fcHRyNjQpDQorP0NWYXJUb1R5cGVAQ1R5cGVAQFNBP0FWMUBBRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1ZhciAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpDYWxjdWxhdGVDYWNoZWRLZXkodm9pZCkgX19wdHI2NA0KKz9DYWxjdWxhdGVDYWNoZWRLZXlAQ1diZW1JbnN0YW5jZUBAUUVBQVBFQVZDVmFyQEBYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0OjpDYWxjdWxhdGVMZW5ndGgobG9uZyxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LGNsYXNzIENXYmVtQ2xhc3NUb0lkTWFwICYgX19wdHI2NCxzdHJ1Y3QgX0dVSUQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2FsY3VsYXRlTGVuZ3RoQENXYmVtTXRndERlbGl2ZXJFdmVudFBhY2tldEBAUUVBQUpKUEVBUEVBVUlXYmVtQ2xhc3NPYmplY3RAQFBFQUtBRUFWQ1diZW1DbGFzc1RvSWRNYXBAQFBFQVVfR1VJREBAUEVBSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdEFycmF5UGFja2V0OjpDYWxjdWxhdGVMZW5ndGgobG9uZyxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LGNsYXNzIENXYmVtQ2xhc3NUb0lkTWFwICYgX19wdHI2NCxzdHJ1Y3QgX0dVSUQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2FsY3VsYXRlTGVuZ3RoQENXYmVtT2JqZWN0QXJyYXlQYWNrZXRAQFFFQUFKSlBFQVBFQVVJV2JlbUNsYXNzT2JqZWN0QEBQRUFLQUVBVkNXYmVtQ2xhc3NUb0lkTWFwQEBQRUFVX0dVSURAQFBFQUhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1TbWFydEVudW1OZXh0UGFja2V0OjpDYWxjdWxhdGVMZW5ndGgobG9uZyxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LGNsYXNzIENXYmVtQ2xhc3NUb0lkTWFwICYgX19wdHI2NCxzdHJ1Y3QgX0dVSUQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2FsY3VsYXRlTGVuZ3RoQENXYmVtU21hcnRFbnVtTmV4dFBhY2tldEBAUUVBQUpKUEVBUEVBVUlXYmVtQ2xhc3NPYmplY3RAQFBFQUtBRUFWQ1diZW1DbGFzc1RvSWRNYXBAQFBFQVVfR1VJREBAUEVBSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1VudHlwZWRBcnJheTo6Q2FsY3VsYXRlTmVjZXNzYXJ5U3BhY2VCeUxlbmd0aChpbnQsaW50KQ0KKz9DYWxjdWxhdGVOZWNlc3NhcnlTcGFjZUJ5TGVuZ3RoQENVbnR5cGVkQXJyYXlAQFNBS0hIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDVW50eXBlZEFycmF5OjpDYWxjdWxhdGVOZWNlc3NhcnlTcGFjZUJ5VHlwZShjbGFzcyBDVHlwZSxpbnQpDQorP0NhbGN1bGF0ZU5lY2Vzc2FyeVNwYWNlQnlUeXBlQENVbnR5cGVkQXJyYXlAQFNBS1ZDVHlwZUBASEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDVHlwZTo6Q2FuQmVLZXkodW5zaWduZWQgbG9uZykNCis/Q2FuQmVLZXlAQ1R5cGVAQFNBSEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OkNhbkJlUmVjb25jaWxlZFdpdGgoY2xhc3MgQ0Jhc2ljUXVhbGlmaWVyU2V0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9DYW5CZVJlY29uY2lsZWRXaXRoQENCYXNpY1F1YWxpZmllclNldEBAUUVBQUhBRUFWMUBAWg0KKzsgcHVibGljOiBlbnVtIEVSZWNvbmNpbGlhdGlvbiAgX19jZGVjbCBDQ2xhc3NBbmRNZXRob2RzOjpDYW5CZVJlY29uY2lsZWRXaXRoKGNsYXNzIENDbGFzc0FuZE1ldGhvZHMgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NhbkJlUmVjb25jaWxlZFdpdGhAQ0NsYXNzQW5kTWV0aG9kc0BAUUVBQT9BVzRFUmVjb25jaWxpYXRpb25AQEFFQVYxQEBaDQorOyBwdWJsaWM6IGVudW0gRVJlY29uY2lsaWF0aW9uICBfX2NkZWNsIENDbGFzc1BhcnQ6OkNhbkJlUmVjb25jaWxlZFdpdGgoY2xhc3MgQ0NsYXNzUGFydCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2FuQmVSZWNvbmNpbGVkV2l0aEBDQ2xhc3NQYXJ0QEBRRUFBP0FXNEVSZWNvbmNpbGlhdGlvbkBAQUVBVjFAQFoNCis7IHB1YmxpYzogZW51bSBFUmVjb25jaWxpYXRpb24gIF9fY2RlY2wgQ01ldGhvZFBhcnQ6OkNhbkJlUmVjb25jaWxlZFdpdGgoY2xhc3MgQ01ldGhvZFBhcnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NhbkJlUmVjb25jaWxlZFdpdGhAQ01ldGhvZFBhcnRAQFFFQUE/QVc0RVJlY29uY2lsaWF0aW9uQEBBRUFWMUBAWg0KKzsgcHVibGljOiBlbnVtIEVSZWNvbmNpbGlhdGlvbiAgX19jZGVjbCBDV2JlbUNsYXNzOjpDYW5CZVJlY29uY2lsZWRXaXRoKGNsYXNzIENXYmVtQ2xhc3MgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NhbkJlUmVjb25jaWxlZFdpdGhAQ1diZW1DbGFzc0BAUUVBQT9BVzRFUmVjb25jaWxpYXRpb25AQFBFQVYxQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OkNhbkNvbnRhaW5BYnN0cmFjdChpbnQpIF9fcHRyNjQNCis/Q2FuQ29udGFpbkFic3RyYWN0QENDbGFzc1BhcnRAQFVFQUFKSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENJbnN0YW5jZVBRU0NvbnRhaW5lcjo6Q2FuQ29udGFpbkFic3RyYWN0KGludCkgX19wdHI2NA0KKz9DYW5Db250YWluQWJzdHJhY3RAQ0luc3RhbmNlUFFTQ29udGFpbmVyQEBVRUFBSkhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDSW5zdGFuY2VQYXJ0OjpDYW5Db250YWluQWJzdHJhY3QoaW50KSBfX3B0cjY0DQorP0NhbkNvbnRhaW5BYnN0cmFjdEBDSW5zdGFuY2VQYXJ0QEBVRUFBSkhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyOjpDYW5Db250YWluQWJzdHJhY3QoaW50KSBfX3B0cjY0DQorP0NhbkNvbnRhaW5BYnN0cmFjdEBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyQEBVRUFBSkhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDQ2xhc3NQYXJ0OjpDYW5Db250YWluRHluYW1pYyh2b2lkKSBfX3B0cjY0DQorP0NhbkNvbnRhaW5EeW5hbWljQENDbGFzc1BhcnRAQFVFQUFKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0luc3RhbmNlUFFTQ29udGFpbmVyOjpDYW5Db250YWluRHluYW1pYyh2b2lkKSBfX3B0cjY0DQorP0NhbkNvbnRhaW5EeW5hbWljQENJbnN0YW5jZVBRU0NvbnRhaW5lckBAVUVBQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDSW5zdGFuY2VQYXJ0OjpDYW5Db250YWluRHluYW1pYyh2b2lkKSBfX3B0cjY0DQorP0NhbkNvbnRhaW5EeW5hbWljQENJbnN0YW5jZVBhcnRAQFVFQUFKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lcjo6Q2FuQ29udGFpbkR5bmFtaWModm9pZCkgX19wdHI2NA0KKz9DYW5Db250YWluRHluYW1pY0BDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyQEBVRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OkNhbkNvbnRhaW5LZXkodm9pZCkgX19wdHI2NA0KKz9DYW5Db250YWluS2V5QENDbGFzc1BhcnRAQFVFQUFKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0luc3RhbmNlUFFTQ29udGFpbmVyOjpDYW5Db250YWluS2V5KHZvaWQpIF9fcHRyNjQNCis/Q2FuQ29udGFpbktleUBDSW5zdGFuY2VQUVNDb250YWluZXJAQFVFQUFKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0luc3RhbmNlUGFydDo6Q2FuQ29udGFpbktleSh2b2lkKSBfX3B0cjY0DQorP0NhbkNvbnRhaW5LZXlAQ0luc3RhbmNlUGFydEBAVUVBQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyOjpDYW5Db250YWluS2V5KHZvaWQpIF9fcHRyNjQNCis/Q2FuQ29udGFpbktleUBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyQEBVRUFBSlhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDbGFzc1BhcnQ6OkNhbkNvbnRhaW5LZXllZFByb3BzKHZvaWQpIF9fcHRyNjQNCis/Q2FuQ29udGFpbktleWVkUHJvcHNAQ0NsYXNzUGFydEBAUUVBQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDQ2xhc3NQYXJ0OjpDYW5Db250YWluU2luZ2xldG9uKHZvaWQpIF9fcHRyNjQNCis/Q2FuQ29udGFpblNpbmdsZXRvbkBDQ2xhc3NQYXJ0QEBVRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENJbnN0YW5jZVBRU0NvbnRhaW5lcjo6Q2FuQ29udGFpblNpbmdsZXRvbih2b2lkKSBfX3B0cjY0DQorP0NhbkNvbnRhaW5TaW5nbGV0b25AQ0luc3RhbmNlUFFTQ29udGFpbmVyQEBVRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OkNhbkNvbnRhaW5TaW5nbGV0b24odm9pZCkgX19wdHI2NA0KKz9DYW5Db250YWluU2luZ2xldG9uQENJbnN0YW5jZVBhcnRAQFVFQUFKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lcjo6Q2FuQ29udGFpblNpbmdsZXRvbih2b2lkKSBfX3B0cjY0DQorP0NhbkNvbnRhaW5TaW5nbGV0b25AQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lckBAVUVBQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENDbGFzc1BhcnQ6OkNhbkhhdmVDaW10eXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DYW5IYXZlQ2ltdHlwZUBDQ2xhc3NQYXJ0QEBVRUFBSFBFQkdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENJbnN0YW5jZVBRU0NvbnRhaW5lcjo6Q2FuSGF2ZUNpbXR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NhbkhhdmVDaW10eXBlQENJbnN0YW5jZVBRU0NvbnRhaW5lckBAVUVBQUhQRUJHQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDSW5zdGFuY2VQYXJ0OjpDYW5IYXZlQ2ltdHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2FuSGF2ZUNpbXR5cGVAQ0luc3RhbmNlUGFydEBAVUVBQUhQRUJHQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyOjpDYW5IYXZlQ2ltdHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2FuSGF2ZUNpbXR5cGVAQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lckBAVUVBQUhQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmc6OkNoZWFwQ29tcGFyZShjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q2hlYXBDb21wYXJlQENDb21wcmVzc2VkU3RyaW5nQEBRRUJBSEFFQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDbGFzc1BhcnQ6OkNoZWNrQm9vbFF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2hlY2tCb29sUXVhbGlmaWVyQENDbGFzc1BhcnRAQFFFQUFIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXYmVtT2JqZWN0OjpDaGVja0Jvb2xlYW5Qcm9wUXVhbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoZWNrQm9vbGVhblByb3BRdWFsQENXYmVtT2JqZWN0QEBRRUFBSFBFQkcwQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENVbnR5cGVkQXJyYXk6OkNoZWNrQ1ZhclZlY3RvcihjbGFzcyBDVmFyVmVjdG9yICYgX19wdHI2NCx1bnNpZ25lZCBsb25nKQ0KKz9DaGVja0NWYXJWZWN0b3JAQ1VudHlwZWRBcnJheUBAU0FIQUVBVkNWYXJWZWN0b3JAQEtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGhvZFBhcnQ6OkNoZWNrRHVwbGljYXRlUGFyYW1ldGVycyhjbGFzcyBDV2JlbU9iamVjdCAqIF9fcHRyNjQsY2xhc3MgQ1diZW1PYmplY3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoZWNrRHVwbGljYXRlUGFyYW1ldGVyc0BDTWV0aG9kUGFydEBASUVBQUpQRUFWQ1diZW1PYmplY3RAQDBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGhvZFBhcnQ6OkNoZWNrSWRzKGNsYXNzIENXYmVtQ2xhc3MgKiBfX3B0cjY0LGNsYXNzIENXYmVtQ2xhc3MgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoZWNrSWRzQENNZXRob2RQYXJ0QEBJRUFBSlBFQVZDV2JlbUNsYXNzQEAwQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENVbnR5cGVkQXJyYXk6OkNoZWNrSW50ZXJ2YWxEYXRlVGltZShjbGFzcyBDVmFyVmVjdG9yICYgX19wdHI2NCkNCis/Q2hlY2tJbnRlcnZhbERhdGVUaW1lQENVbnR5cGVkQXJyYXlAQFNBSEFFQVZDVmFyVmVjdG9yQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpDaGVja0xvY2FsQm9vbFF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2hlY2tMb2NhbEJvb2xRdWFsaWZpZXJAQ0NsYXNzUGFydEBAUUVBQUhQRUJHQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDVW50eXBlZEFycmF5OjpDaGVja1JhbmdlU2l6ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0KQ0KKz9DaGVja1JhbmdlU2l6ZUBDVW50eXBlZEFycmF5QEBTQUpLS0tLUEVBWEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1VudHlwZWRBcnJheTo6Q2hlY2tSYW5nZVNpemVGb3JHZXQodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCkNCis/Q2hlY2tSYW5nZVNpemVGb3JHZXRAQ1VudHlwZWRBcnJheUBAS0FKS0tLS1BFQUtAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENXYmVtQ2xhc3NDYWNoZTo6Q2xlYXIodm9pZCkgX19wdHI2NA0KKz9DbGVhckBDV2JlbUNsYXNzQ2FjaGVAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDV2JlbUd1aWRUb0NsYXNzTWFwOjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQENXYmVtR3VpZFRvQ2xhc3NNYXBAQEFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkNsZWFyQ2FjaGVkS2V5KHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJDYWNoZWRLZXlAQ1diZW1JbnN0YW5jZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpDbGVhckNhY2hlZEtleVZhbHVlKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJDYWNoZWRLZXlWYWx1ZUBDV2JlbUluc3RhbmNlQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkNsZWFyV3JpdGVPbmx5UHJvcGVydGllcyh2b2lkKSBfX3B0cjY0DQorP0NsZWFyV3JpdGVPbmx5UHJvcGVydGllc0BDV2JlbUNsYXNzQEBVRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkNsZWFyV3JpdGVPbmx5UHJvcGVydGllcyh2b2lkKSBfX3B0cjY0DQorP0NsZWFyV3JpdGVPbmx5UHJvcGVydGllc0BDV2JlbUluc3RhbmNlQEBVRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkNsb25lKHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2xvbmVAQ1diZW1DbGFzc0BAVUVBQUpQRUFQRUFVSVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6Q2xvbmUoc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DbG9uZUBDV2JlbUluc3RhbmNlQEBVRUFBSlBFQVBFQVVJV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpDbG9uZUFuZERlY29yYXRlKGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0Nsb25lQW5kRGVjb3JhdGVAQ1diZW1DbGFzc0BAVUVBQUpKUEVBRzBQRUFQRUFVSVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6Q2xvbmVBbmREZWNvcmF0ZShsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DbG9uZUFuZERlY29yYXRlQENXYmVtSW5zdGFuY2VAQFVFQUFKSlBFQUcwUEVBUEVBVUlXYmVtQ2xhc3NPYmplY3RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkNsb25lRXgobG9uZyxzdHJ1Y3QgX0lXbWlPYmplY3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0Nsb25lRXhAQ1diZW1DbGFzc0BAVUVBQUpKUEVBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpDbG9uZUV4KGxvbmcsc3RydWN0IF9JV21pT2JqZWN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DbG9uZUV4QENXYmVtSW5zdGFuY2VAQFVFQUFKSlBFQVVfSVdtaU9iamVjdEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGU6OkNsb25lUHJvY2Vzc0NvbnRleHQodm9pZCkgX19wdHI2NA0KKz9DbG9uZVByb2Nlc3NDb250ZXh0QENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGU6OkNsb25lUnBjQ29udGV4dChzdHJ1Y3QgSVNlcnZlclNlY3VyaXR5ICogX19wdHI2NCkgX19wdHI2NA0KKz9DbG9uZVJwY0NvbnRleHRAQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZUBAUUVBQUpQRUFVSVNlcnZlclNlY3VyaXR5QEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6Q2xvbmVUaHJlYWRDb250ZXh0KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Q2xvbmVUaHJlYWRDb250ZXh0QENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFFFQUFKS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ2xhc3NBbmRNZXRob2RzOjpDb21wYWN0KHZvaWQpIF9fcHRyNjQNCis/Q29tcGFjdEBDQ2xhc3NBbmRNZXRob2RzQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpDb21wYWN0KHZvaWQpIF9fcHRyNjQNCis/Q29tcGFjdEBDQ2xhc3NQYXJ0QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSW5zdGFuY2VQYXJ0OjpDb21wYWN0KGJvb2wpIF9fcHRyNjQNCis/Q29tcGFjdEBDSW5zdGFuY2VQYXJ0QEBRRUFBWF9OQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNZXRob2RQYXJ0OjpDb21wYWN0KHZvaWQpIF9fcHRyNjQNCis/Q29tcGFjdEBDTWV0aG9kUGFydEBAUUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDV2JlbUNsYXNzOjpDb21wYWN0QWxsKHZvaWQpIF9fcHRyNjQNCis/Q29tcGFjdEFsbEBDV2JlbUNsYXNzQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkNvbXBhY3RBbGwodm9pZCkgX19wdHI2NA0KKz9Db21wYWN0QWxsQENXYmVtSW5zdGFuY2VAQFVFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkNvbXBhY3RDbGFzcyh2b2lkKSBfX3B0cjY0DQorP0NvbXBhY3RDbGFzc0BDV2JlbUluc3RhbmNlQEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENCYXNpY1F1YWxpZmllclNldDo6Q29tcGFyZShjbGFzcyBDQmFzaWNRdWFsaWZpZXJTZXQgJiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NvbXBhcmVAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBRRUFBSEFFQVYxQEVQRUFQRUJHS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nOjpDb21wYXJlKGNsYXNzIENDb21wcmVzc2VkU3RyaW5nIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db21wYXJlQENDb21wcmVzc2VkU3RyaW5nQEBRRUJBSEFFQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nOjpDb21wYXJlKGNoYXIgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0NvbXBhcmVAQ0NvbXByZXNzZWRTdHJpbmdAQFFFQkFIUEVCREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nOjpDb21wYXJlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db21wYXJlQENDb21wcmVzc2VkU3RyaW5nQEBRRUJBSFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSW50ZXJuYWxTdHJpbmc6OkNvbXBhcmUoY2xhc3MgQ0ludGVybmFsU3RyaW5nIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db21wYXJlQENJbnRlcm5hbFN0cmluZ0BAUUVCQUhBRUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSW50ZXJuYWxTdHJpbmc6OkNvbXBhcmUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0NvbXBhcmVAQ0ludGVybmFsU3RyaW5nQEBRRUJBSFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUXVhbGlmaWVyU2V0OjpDb21wYXJlKGNsYXNzIENRdWFsaWZpZXJTZXQgJiBfX3B0cjY0LGNsYXNzIENGaXhlZEJTVFJBcnJheSAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0NvbXBhcmVAQ1F1YWxpZmllclNldEBAUUVBQUhBRUFWMUBQRUFWQ0ZpeGVkQlNUUkFycmF5QEBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkNvbXBhcmVDbGFzc1BhcnRzKHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCxsb25nKSBfX3B0cjY0DQorP0NvbXBhcmVDbGFzc1BhcnRzQENXYmVtT2JqZWN0QEBVRUFBSlBFQVVJV2JlbUNsYXNzT2JqZWN0QEBKQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NsYXNzUGFydDo6Q29tcGFyZURlZnMoY2xhc3MgQ0NsYXNzUGFydCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29tcGFyZURlZnNAQ0NsYXNzUGFydEBAUUVBQUhBRUFWMUBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpDb21wYXJlRGVyaXZlZE1vc3RDbGFzcyhsb25nLHN0cnVjdCBfSVdtaU9iamVjdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29tcGFyZURlcml2ZWRNb3N0Q2xhc3NAQ1diZW1DbGFzc0BAVUVBQUpKUEVBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpDb21wYXJlRGVyaXZlZE1vc3RDbGFzcyhsb25nLHN0cnVjdCBfSVdtaU9iamVjdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29tcGFyZURlcml2ZWRNb3N0Q2xhc3NAQ1diZW1JbnN0YW5jZUBAVUVBQUpKUEVBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHVibGljOiBlbnVtIEVSZWNvbmNpbGlhdGlvbiAgX19jZGVjbCBDQ2xhc3NQYXJ0OjpDb21wYXJlRXhhY3RNYXRjaChjbGFzcyBDQ2xhc3NQYXJ0ICYgX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/Q29tcGFyZUV4YWN0TWF0Y2hAQ0NsYXNzUGFydEBAUUVBQT9BVzRFUmVjb25jaWxpYXRpb25AQEFFQVYxQEhAWg0KKzsgcHVibGljOiBlbnVtIEVSZWNvbmNpbGlhdGlvbiAgX19jZGVjbCBDTWV0aG9kUGFydDo6Q29tcGFyZUV4YWN0TWF0Y2goY2xhc3MgQ01ldGhvZFBhcnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbXBhcmVFeGFjdE1hdGNoQENNZXRob2RQYXJ0QEBRRUFBP0FXNEVSZWNvbmNpbGlhdGlvbkBAQUVBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpDb21wYXJlTG9jYWxpemVkU2V0KGNsYXNzIENCYXNpY1F1YWxpZmllclNldCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29tcGFyZUxvY2FsaXplZFNldEBDQmFzaWNRdWFsaWZpZXJTZXRAQFFFQUFIQUVBVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkNvbXBhcmVNb3N0RGVyaXZlZENsYXNzKGNsYXNzIENXYmVtQ2xhc3MgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbXBhcmVNb3N0RGVyaXZlZENsYXNzQENXYmVtQ2xhc3NAQFFFQUFKUEVBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmc6OkNvbXBhcmVOb0Nhc2UoY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0NvbXBhcmVOb0Nhc2VAQ0NvbXByZXNzZWRTdHJpbmdAQFFFQkFIQUVCVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmc6OkNvbXBhcmVOb0Nhc2UoY2hhciBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q29tcGFyZU5vQ2FzZUBDQ29tcHJlc3NlZFN0cmluZ0BAUUVCQUhQRUJEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmc6OkNvbXBhcmVOb0Nhc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0NvbXBhcmVOb0Nhc2VAQ0NvbXByZXNzZWRTdHJpbmdAQFFFQkFIUEVCR0BaDQorOyBwdWJsaWM6IGVudW0gRVJlY29uY2lsaWF0aW9uICBfX2NkZWNsIENDbGFzc0FuZE1ldGhvZHM6OkNvbXBhcmVUbyhjbGFzcyBDQ2xhc3NBbmRNZXRob2RzICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db21wYXJlVG9AQ0NsYXNzQW5kTWV0aG9kc0BAUUVBQT9BVzRFUmVjb25jaWxpYXRpb25AQEFFQVYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENEZWNvcmF0aW9uUGFydDo6Q29tcGFyZVRvKGNsYXNzIENEZWNvcmF0aW9uUGFydCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29tcGFyZVRvQENEZWNvcmF0aW9uUGFydEBAUUVBQUhBRUFWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGhvZFBhcnQ6OkNvbXBhcmVUbyhsb25nLGNsYXNzIENNZXRob2RQYXJ0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db21wYXJlVG9AQ01ldGhvZFBhcnRAQFFFQUFKSkFFQVYxQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENRdWFsaWZpZXJTZXQ6OkNvbXBhcmVUbyhsb25nLHN0cnVjdCBJV2JlbVF1YWxpZmllclNldCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29tcGFyZVRvQENRdWFsaWZpZXJTZXRAQFVFQUFKSlBFQVVJV2JlbVF1YWxpZmllclNldEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6Q29tcGFyZVRvKGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbXBhcmVUb0BDV2JlbUNsYXNzQEBVRUFBSkpQRUFVSVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkNvbXBhcmVUbyhsb25nLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Db21wYXJlVG9AQ1diZW1PYmplY3RAQFVFQUFKSlBFQVVJV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmc6OkNvbXBhcmVVbmljb2RlVG9Bc2NpaSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCkNCis/Q29tcGFyZVVuaWNvZGVUb0FzY2lpQENDb21wcmVzc2VkU3RyaW5nQEBLQUhQRUZCR1BFQkRAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmc6OkNvbXBhcmVVbmljb2RlVG9Bc2NpaU5vQ2FzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCxpbnQpDQorP0NvbXBhcmVVbmljb2RlVG9Bc2NpaU5vQ2FzZUBDQ29tcHJlc3NlZFN0cmluZ0BAS0FIUEVGQkdQRUJESEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpDb21wdXRlTWVyZ2VTcGFjZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQsaW50KQ0KKz9Db21wdXRlTWVyZ2VTcGFjZUBDQmFzaWNRdWFsaWZpZXJTZXRAQFNBS1BFQUVQRUFWQ0Zhc3RIZWFwQEAwMUhAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmc6OkNvbXB1dGVOZWNlc3NhcnlTcGFjZShjaGFyIGNvbnN0ICogX19wdHI2NCkNCis/Q29tcHV0ZU5lY2Vzc2FyeVNwYWNlQENDb21wcmVzc2VkU3RyaW5nQEBTQUhQRUJEQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nOjpDb21wdXRlTmVjZXNzYXJ5U3BhY2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9Db21wdXRlTmVjZXNzYXJ5U3BhY2VAQ0NvbXByZXNzZWRTdHJpbmdAQFNBSFBFQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmc6OkNvbXB1dGVOZWNlc3NhcnlTcGFjZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50ICYgX19wdHI2NCkNCis/Q29tcHV0ZU5lY2Vzc2FyeVNwYWNlQENDb21wcmVzc2VkU3RyaW5nQEBTQUhQRUJHQUVBSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6OkNvbXB1dGVOZWNlc3NhcnlTcGFjZShjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29tcHV0ZU5lY2Vzc2FyeVNwYWNlQENDb21wcmVzc2VkU3RyaW5nTGlzdEBAUUVBQUtQRUFWQ0NvbXByZXNzZWRTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0RhdGFUYWJsZTo6Q29tcHV0ZU5lY2Vzc2FyeVNwYWNlKGludCxpbnQpDQorP0NvbXB1dGVOZWNlc3NhcnlTcGFjZUBDRGF0YVRhYmxlQEBTQUtISEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0RlY29yYXRpb25QYXJ0OjpDb21wdXRlTmVjZXNzYXJ5U3BhY2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/Q29tcHV0ZU5lY2Vzc2FyeVNwYWNlQENEZWNvcmF0aW9uUGFydEBAU0FLUEVCRzBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OkNvbXB1dGVOZWNlc3NhcnlTcGFjZShjbGFzcyBDQ2xhc3NQYXJ0ICogX19wdHI2NCkNCis/Q29tcHV0ZU5lY2Vzc2FyeVNwYWNlQENJbnN0YW5jZVBhcnRAQFNBS1BFQVZDQ2xhc3NQYXJ0QEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENRdWFsaWZpZXJTZXRMaXN0OjpDb21wdXRlTmVjZXNzYXJ5U3BhY2UoaW50KQ0KKz9Db21wdXRlTmVjZXNzYXJ5U3BhY2VAQ1F1YWxpZmllclNldExpc3RAQFNBS0hAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENCYXNpY1F1YWxpZmllclNldDo6Q29tcHV0ZU5lY2Vzc2FyeVNwYWNlRm9yUHJvcGFnYXRpb24odW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcikNCis/Q29tcHV0ZU5lY2Vzc2FyeVNwYWNlRm9yUHJvcGFnYXRpb25AQ0Jhc2ljUXVhbGlmaWVyU2V0QEBTQUtQRUFFRUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1F1YWxpZmllclNldExpc3Q6OkNvbXB1dGVSZWFsU3BhY2UoaW50KQ0KKz9Db21wdXRlUmVhbFNwYWNlQENRdWFsaWZpZXJTZXRMaXN0QEBTQUtIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OkNvbXB1dGVVbm1lcmdlZFNwYWNlKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KQ0KKz9Db21wdXRlVW5tZXJnZWRTcGFjZUBDQmFzaWNRdWFsaWZpZXJTZXRAQFNBS1BFQUVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OkNvbnZlcnRUb0NsYXNzKGNsYXNzIENDbGFzc1BhcnQgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29udmVydFRvQ2xhc3NAQ0luc3RhbmNlUGFydEBAUUVBQVBFQUVBRUFWQ0NsYXNzUGFydEBAS1BFQUVAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6Q29udmVydFRvQ2xhc3MoY2xhc3MgQ1diZW1DbGFzcyAqIF9fcHRyNjQsY2xhc3MgQ1diZW1JbnN0YW5jZSAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbnZlcnRUb0NsYXNzQENXYmVtSW5zdGFuY2VAQFFFQUFKUEVBVkNXYmVtQ2xhc3NAQFBFQVBFQVYxQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpDb252ZXJ0VG9NZXJnZWRJbnN0YW5jZSh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRUb01lcmdlZEluc3RhbmNlQENXYmVtSW5zdGFuY2VAQFFFQUFKWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nOjpDb252ZXJ0VG9Vbmljb2RlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db252ZXJ0VG9Vbmljb2RlQENDb21wcmVzc2VkU3RyaW5nQEBRRUJBWFBFQUdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Zhc3RIZWFwOjpDb3B5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NvcHlAQ0Zhc3RIZWFwQEBRRUFBWEtLS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRmFzdFByb3BlcnR5QmFnOjpDb3B5KGNsYXNzIENGYXN0UHJvcGVydHlCYWcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlAQ0Zhc3RQcm9wZXJ0eUJhZ0BAUUVBQUpBRUJWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6Q29weUFjdHVhbFRyYW5zZmVyQmxvYihsb25nLHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlBY3R1YWxUcmFuc2ZlckJsb2JAQ1diZW1JbnN0YW5jZUBAUUVBQUpKUEVBRUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpDb3B5QmxvYih1bnNpZ25lZCBjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/Q29weUJsb2JAQ1diZW1JbnN0YW5jZUBAUUVBQUpQRUFFSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkNvcHlCbG9iT2YoY2xhc3MgQ1diZW1PYmplY3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlCbG9iT2ZAQ1diZW1DbGFzc0BAVUVBQUpQRUFWQ1diZW1PYmplY3RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkNvcHlCbG9iT2YoY2xhc3MgQ1diZW1PYmplY3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlCbG9iT2ZAQ1diZW1JbnN0YW5jZUBAVUVBQUpQRUFWQ1diZW1PYmplY3RAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmdMaXN0OjpDb3B5RGF0YSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5RGF0YUBDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQFFFQUFQRUFFUEVBRUBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDTGltaXRhdGlvbk1hcHBpbmc6OkNvcHlJbmZvKGNsYXNzIENQcm9wZXJ0eUluZm9ybWF0aW9uICYgX19wdHI2NCxjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weUluZm9AQ0xpbWl0YXRpb25NYXBwaW5nQEBJRUFBWEFFQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBAQUVCVjJAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6Q29weUluc3RhbmNlRGF0YShsb25nLHN0cnVjdCBfSVdtaU9iamVjdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weUluc3RhbmNlRGF0YUBDV2JlbUNsYXNzQEBVRUFBSkpQRUFVX0lXbWlPYmplY3RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkNvcHlJbnN0YW5jZURhdGEobG9uZyxzdHJ1Y3QgX0lXbWlPYmplY3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlJbnN0YW5jZURhdGFAQ1diZW1JbnN0YW5jZUBAVUVBQUpKUEVBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1F1YWxpZmllclNldDo6Q29weUxvY2FsUXVhbGlmaWVycyhjbGFzcyBDUXVhbGlmaWVyU2V0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5TG9jYWxRdWFsaWZpZXJzQENRdWFsaWZpZXJTZXRAQFFFQUFKQUVBVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENEYXRhVGFibGU6OkNvcHlOdWxsbmVzcyhjbGFzcyBDRGF0YVRhYmxlICogX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5TnVsbG5lc3NAQ0RhdGFUYWJsZUBAUUVBQVhQRUFWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0NsYXNzUGFydDo6Q29weVBhcmVudFByb3BlcnR5KGNsYXNzIENDbGFzc1BhcnQgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5UGFyZW50UHJvcGVydHlAQ0NsYXNzUGFydEBAUUVBQUpBRUFWMUBQRUJHQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nOjpDb3B5VG9OZXdIZWFwKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0IF9fcHRyNjQpDQorP0NvcHlUb05ld0hlYXBAQ0NvbXByZXNzZWRTdHJpbmdAQFNBSEtQRUFWQ0Zhc3RIZWFwQEAwQUVGQUtAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0VtYmVkZGVkT2JqZWN0OjpDb3B5VG9OZXdIZWFwKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0IF9fcHRyNjQpDQorP0NvcHlUb05ld0hlYXBAQ0VtYmVkZGVkT2JqZWN0QEBTQUhLUEVBVkNGYXN0SGVhcEBAMEFFRkFLQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENVbnR5cGVkQXJyYXk6OkNvcHlUb05ld0hlYXAodW5zaWduZWQgbG9uZyxjbGFzcyBDVHlwZSxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQgX19wdHI2NCkNCis/Q29weVRvTmV3SGVhcEBDVW50eXBlZEFycmF5QEBTQUhLVkNUeXBlQEBQRUFWQ0Zhc3RIZWFwQEAxQUVGQUtAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkNvcHlUcmFuc2ZlckFycmF5QmxvYihjbGFzcyBDV2JlbUluc3RhbmNlICogX19wdHI2NCxsb25nLGxvbmcsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsY2xhc3MgQ0ZsZXhBcnJheSAmIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpDQorP0NvcHlUcmFuc2ZlckFycmF5QmxvYkBDV2JlbUluc3RhbmNlQEBTQUpQRUFWMUBKSlBFQUVBRUFWQ0ZsZXhBcnJheUBAUEVBSkBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpDb3B5VHJhbnNmZXJCbG9iKGxvbmcsbG9uZyx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5VHJhbnNmZXJCbG9iQENXYmVtSW5zdGFuY2VAQFFFQUFKSkpQRUFFQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENEZWNvcmF0aW9uUGFydDo6Q3JlYXRlKHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVAQ0RlY29yYXRpb25QYXJ0QEBRRUFBWEVQRUJHMFBFQUVAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZpeGVkQlNUUkFycmF5OjpDcmVhdGUoaW50KSBfX3B0cjY0DQorP0NyZWF0ZUBDRml4ZWRCU1RSQXJyYXlAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSW5zdGFuY2VQUVNDb250YWluZXI6OkNyZWF0ZShjbGFzcyBDUXVhbGlmaWVyU2V0TGlzdCAqIF9fcHRyNjQsaW50LGNsYXNzIENDbGFzc1BhcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Q3JlYXRlQENJbnN0YW5jZVBRU0NvbnRhaW5lckBAUUVBQVhQRUFWQ1F1YWxpZmllclNldExpc3RAQEhQRUFWQ0NsYXNzUGFydEBAS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0luc3RhbmNlUGFydDo6Q3JlYXRlKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGNsYXNzIENDbGFzc1BhcnQgKiBfX3B0cjY0LGNsYXNzIENJbnN0YW5jZVBhcnRDb250YWluZXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZUBDSW5zdGFuY2VQYXJ0QEBRRUFBUEVBRVBFQUVQRUFWQ0NsYXNzUGFydEBAUEVBVkNJbnN0YW5jZVBhcnRDb250YWluZXJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV21pT2JqZWN0RmFjdG9yeTo6Q3JlYXRlKHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZUBDV21pT2JqZWN0RmFjdG9yeUBAUUVBQUpQRUFVSVVua25vd25AQEtBRUJVX0dVSURAQDFQRUFQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1dtaU9iamVjdEZhY3Rvcnk6OlhPYmplY3RGYWN0b3J5OjpDcmVhdGUoc3RydWN0IElVbmtub3duICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q3JlYXRlQFhPYmplY3RGYWN0b3J5QENXbWlPYmplY3RGYWN0b3J5QEBVRUFBSlBFQVVJVW5rbm93bkBAS0FFQlVfR1VJREBAMVBFQVBFQVhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDQ29tcHJlc3NlZFN0cmluZzo6Q3JlYXRlQlNUUkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9DcmVhdGVCU1RSQ29weUBDQ29tcHJlc3NlZFN0cmluZ0BAUUVCQVBFQUdYWg0KKzsgcHVibGljOiBjbGFzcyBDVmFyVmVjdG9yICogX19wdHI2NCBfX2NkZWNsIENVbnR5cGVkQXJyYXk6OkNyZWF0ZUNWYXJWZWN0b3IoY2xhc3MgQ1R5cGUsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVDVmFyVmVjdG9yQENVbnR5cGVkQXJyYXlAQFFFQUFQRUFWQ1ZhclZlY3RvckBAVkNUeXBlQEBQRUFWQ0Zhc3RIZWFwQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6Q3JlYXRlRGVyaXZlZENsYXNzKGNsYXNzIENXYmVtQ2xhc3MgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVEZXJpdmVkQ2xhc3NAQ1diZW1DbGFzc0BAUUVBQUpQRUFQRUFWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6Q3JlYXRlRGVyaXZlZENsYXNzKGNsYXNzIENXYmVtQ2xhc3MgKiBfX3B0cjY0LGludCxjbGFzcyBDRGVjb3JhdGlvblBhcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZURlcml2ZWRDbGFzc0BDV2JlbUNsYXNzQEBRRUFBSlBFQVYxQEhQRUFWQ0RlY29yYXRpb25QYXJ0QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENDbGFzc0FuZE1ldGhvZHM6OkNyZWF0ZURlcml2ZWRQYXJ0KHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Q3JlYXRlRGVyaXZlZFBhcnRAQ0NsYXNzQW5kTWV0aG9kc0BAUUVBQVBFQUVQRUFFS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0NsYXNzUGFydDo6Q3JlYXRlRGVyaXZlZFBhcnQodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0NyZWF0ZURlcml2ZWRQYXJ0QENDbGFzc1BhcnRAQFFFQUFQRUFFUEVBRUhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENNZXRob2RQYXJ0OjpDcmVhdGVEZXJpdmVkUGFydCh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NyZWF0ZURlcml2ZWRQYXJ0QENNZXRob2RQYXJ0QEBRRUFBUEVBRVBFQUVLQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENNZXRob2REZXNjcmlwdGlvbjo6Q3JlYXRlRGVyaXZlZFZlcnNpb24oc3RydWN0IENNZXRob2REZXNjcmlwdGlvbiAqIF9fcHRyNjQgX19wdHI2NCxzdHJ1Y3QgQ01ldGhvZERlc2NyaXB0aW9uICogX19wdHI2NCBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCkNCis/Q3JlYXRlRGVyaXZlZFZlcnNpb25AQ01ldGhvZERlc2NyaXB0aW9uQEBTQUhQRUZBVTFAMFBFQVZDRmFzdEhlYXBAQDFAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OkNyZWF0ZUVtcHR5KHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KQ0KKz9DcmVhdGVFbXB0eUBDQmFzaWNRdWFsaWZpZXJTZXRAQFNBUEVBRVBFQUVAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDQ2xhc3NBbmRNZXRob2RzOjpDcmVhdGVFbXB0eSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCkNCis/Q3JlYXRlRW1wdHlAQ0NsYXNzQW5kTWV0aG9kc0BAU0FQRUFFUEVBRUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENDbGFzc1BhcnQ6OkNyZWF0ZUVtcHR5KHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KQ0KKz9DcmVhdGVFbXB0eUBDQ2xhc3NQYXJ0QEBTQVBFQUVQRUFFQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmc6OkNyZWF0ZUVtcHR5KHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KQ0KKz9DcmVhdGVFbXB0eUBDQ29tcHJlc3NlZFN0cmluZ0BAU0FQRUFFUEVBRUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nTGlzdDo6Q3JlYXRlRW1wdHkodW5zaWduZWQgY2hhciAqIF9fcHRyNjQpDQorP0NyZWF0ZUVtcHR5QENDb21wcmVzc2VkU3RyaW5nTGlzdEBAU0FQRUFFUEVBRUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENEYXRhVGFibGU6OkNyZWF0ZUVtcHR5KHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KQ0KKz9DcmVhdGVFbXB0eUBDRGF0YVRhYmxlQEBTQVBFQUVQRUFFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDRGVjb3JhdGlvblBhcnQ6OkNyZWF0ZUVtcHR5KHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q3JlYXRlRW1wdHlAQ0RlY29yYXRpb25QYXJ0QEBRRUFBUEVBRUVQRUFFQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0Zhc3RIZWFwOjpDcmVhdGVFbXB0eSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCkNCis/Q3JlYXRlRW1wdHlAQ0Zhc3RIZWFwQEBTQVBFQUVQRUFFQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ01ldGhvZFBhcnQ6OkNyZWF0ZUVtcHR5KHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KQ0KKz9DcmVhdGVFbXB0eUBDTWV0aG9kUGFydEBAU0FQRUFFUEVBRUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENQcm9wZXJ0eUxvb2t1cFRhYmxlOjpDcmVhdGVFbXB0eSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCkNCis/Q3JlYXRlRW1wdHlAQ1Byb3BlcnR5TG9va3VwVGFibGVAQFNBUEVBRVBFQUVAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbUNsYXNzOjpDcmVhdGVFbXB0eSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCkNCis/Q3JlYXRlRW1wdHlAQ1diZW1DbGFzc0BAU0FQRUFFUEVBRUBaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBDV2JlbUNsYXNzICogX19wdHI2NCBfX2NkZWNsIENXYmVtQ2xhc3M6OkNyZWF0ZUZyb21CbG9iMihjbGFzcyBDV2JlbUNsYXNzICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9DcmVhdGVGcm9tQmxvYjJAQ1diZW1DbGFzc0BAU0FQRUFWMUBQRUFWMUBQRUFFUEVBRzJAWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ1diZW1JbnN0YW5jZSAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpDcmVhdGVGcm9tQmxvYjIoY2xhc3MgQ1diZW1DbGFzcyAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/Q3JlYXRlRnJvbUJsb2IyQENXYmVtSW5zdGFuY2VAQFNBUEVBVjFAUEVBVkNXYmVtQ2xhc3NAQFBFQUVQRUFHMkBaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBDV2JlbUNsYXNzICogX19wdHI2NCBfX2NkZWNsIENXYmVtQ2xhc3M6OkNyZWF0ZUZyb21CbG9iKGNsYXNzIENXYmVtQ2xhc3MgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpDQorP0NyZWF0ZUZyb21CbG9iQENXYmVtQ2xhc3NAQFNBUEVBVjFAUEVBVjFAUEVBRV9LQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIENXYmVtSW5zdGFuY2UgKiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6Q3JlYXRlRnJvbUJsb2IoY2xhc3MgQ1diZW1DbGFzcyAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkNCis/Q3JlYXRlRnJvbUJsb2JAQ1diZW1JbnN0YW5jZUBAU0FQRUFWMUBQRUFWQ1diZW1DbGFzc0BAUEVBRV9LQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIENXYmVtT2JqZWN0ICogX19wdHI2NCBfX2NkZWNsIENXYmVtT2JqZWN0OjpDcmVhdGVGcm9tTWVtb3J5KHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGludCxpbnQsY2xhc3MgQ0Jsb2JDb250cm9sICYgX19wdHI2NCkNCis/Q3JlYXRlRnJvbU1lbW9yeUBDV2JlbU9iamVjdEBAU0FQRUFWMUBQRUFFSEhBRUFWQ0Jsb2JDb250cm9sQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ1diZW1PYmplY3QgKiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1PYmplY3Q6OkNyZWF0ZUZyb21TdHJlYW0oc3RydWN0IElTdHJlYW0gKiBfX3B0cjY0KQ0KKz9DcmVhdGVGcm9tU3RyZWFtQENXYmVtT2JqZWN0QEBTQVBFQVYxQFBFQVVJU3RyZWFtQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV21pT2JqZWN0VGV4dFNyYzo6WE9iamVjdFRleHRTcmM6OkNyZWF0ZUZyb21UZXh0KGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqIF9fcHRyNjQsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVGcm9tVGV4dEBYT2JqZWN0VGV4dFNyY0BDV21pT2JqZWN0VGV4dFNyY0BAVUVBQUpKUEVBR0tQRUFVSVdiZW1Db250ZXh0QEBQRUFQRUFVSVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ0ludGVybmFsU3RyaW5nOjpDcmVhdGVMUFdTVFJDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q3JlYXRlTFBXU1RSQ29weUBDSW50ZXJuYWxTdHJpbmdAQFFFQkFQRUFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDQ2xhc3NBbmRNZXRob2RzOjpDcmVhdGVMaW1pdGVkUmVwcmVzZW50YXRpb24oY2xhc3MgQ0xpbWl0YXRpb25NYXBwaW5nICogX19wdHI2NCxpbnQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsaW50ICYgX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVMaW1pdGVkUmVwcmVzZW50YXRpb25AQ0NsYXNzQW5kTWV0aG9kc0BAUUVBQVBFQUVQRUFWQ0xpbWl0YXRpb25NYXBwaW5nQEBIUEVBRUFFQUhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENDbGFzc1BhcnQ6OkNyZWF0ZUxpbWl0ZWRSZXByZXNlbnRhdGlvbihjbGFzcyBDTGltaXRhdGlvbk1hcHBpbmcgKiBfX3B0cjY0LGludCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCxpbnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZUxpbWl0ZWRSZXByZXNlbnRhdGlvbkBDQ2xhc3NQYXJ0QEBRRUFBUEVBRVBFQVZDTGltaXRhdGlvbk1hcHBpbmdAQEhQRUFFQUVBSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0RhdGFUYWJsZTo6Q3JlYXRlTGltaXRlZFJlcHJlc2VudGF0aW9uKGNsYXNzIENMaW1pdGF0aW9uTWFwcGluZyAqIF9fcHRyNjQsaW50LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVMaW1pdGVkUmVwcmVzZW50YXRpb25AQ0RhdGFUYWJsZUBAUUVBQVBFQUVQRUFWQ0xpbWl0YXRpb25NYXBwaW5nQEBIUEVBVkNGYXN0SGVhcEBAMVBFQUVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENEZWNvcmF0aW9uUGFydDo6Q3JlYXRlTGltaXRlZFJlcHJlc2VudGF0aW9uKGNsYXNzIENMaW1pdGF0aW9uTWFwcGluZyAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q3JlYXRlTGltaXRlZFJlcHJlc2VudGF0aW9uQENEZWNvcmF0aW9uUGFydEBAUUVBQVBFQUVQRUFWQ0xpbWl0YXRpb25NYXBwaW5nQEBQRUFFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDRGVyaXZhdGlvbkxpc3Q6OkNyZWF0ZUxpbWl0ZWRSZXByZXNlbnRhdGlvbihjbGFzcyBDTGltaXRhdGlvbk1hcHBpbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZUxpbWl0ZWRSZXByZXNlbnRhdGlvbkBDRGVyaXZhdGlvbkxpc3RAQFFFQUFQRUFFUEVBVkNMaW1pdGF0aW9uTWFwcGluZ0BAUEVBRUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0luc3RhbmNlUGFydDo6Q3JlYXRlTGltaXRlZFJlcHJlc2VudGF0aW9uKGNsYXNzIENMaW1pdGF0aW9uTWFwcGluZyAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZUxpbWl0ZWRSZXByZXNlbnRhdGlvbkBDSW5zdGFuY2VQYXJ0QEBRRUFBUEVBRVBFQVZDTGltaXRhdGlvbk1hcHBpbmdAQEhQRUFFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDUHJvcGVydHlMb29rdXBUYWJsZTo6Q3JlYXRlTGltaXRlZFJlcHJlc2VudGF0aW9uKGNsYXNzIENMaW1pdGF0aW9uTWFwcGluZyAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCxpbnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZUxpbWl0ZWRSZXByZXNlbnRhdGlvbkBDUHJvcGVydHlMb29rdXBUYWJsZUBAUUVBQVBFQUVQRUFWQ0xpbWl0YXRpb25NYXBwaW5nQEBQRUFWQ0Zhc3RIZWFwQEBQRUFFQUVBSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1F1YWxpZmllclNldExpc3Q6OkNyZWF0ZUxpbWl0ZWRSZXByZXNlbnRhdGlvbihjbGFzcyBDTGltaXRhdGlvbk1hcHBpbmcgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVMaW1pdGVkUmVwcmVzZW50YXRpb25AQ1F1YWxpZmllclNldExpc3RAQFFFQUFQRUFFUEVBVkNMaW1pdGF0aW9uTWFwcGluZ0BAUEVBVkNGYXN0SGVhcEBAMVBFQUVAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDUXVhbGlmaWVyU2V0TGlzdDo6Q3JlYXRlTGlzdE9mRW1wdGllcyh1bnNpZ25lZCBjaGFyICogX19wdHI2NCxpbnQpDQorP0NyZWF0ZUxpc3RPZkVtcHRpZXNAQ1F1YWxpZmllclNldExpc3RAQFNBUEVBRVBFQUVIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRob2RQYXJ0OjpDcmVhdGVNZXRob2QodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENXYmVtT2JqZWN0ICogX19wdHI2NCxjbGFzcyBDV2JlbU9iamVjdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q3JlYXRlTWV0aG9kQENNZXRob2RQYXJ0QEBJRUFBSlBFQkdQRUFWQ1diZW1PYmplY3RAQDFAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRmFzdEhlYXA6OkNyZWF0ZU5vQ2FzZVN0cmluZ0hlYXBQdHIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0IF9fcHRyNjQpIF9fcHRyNjQNCis/Q3JlYXRlTm9DYXNlU3RyaW5nSGVhcFB0ckBDRmFzdEhlYXBAQFFFQUFIUEVCR0FFRkFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDRmFzdEhlYXA6OkNyZWF0ZU91dE9mTGluZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NyZWF0ZU91dE9mTGluZUBDRmFzdEhlYXBAQFFFQUFQRUFFUEVBRUtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ1diZW1SZWZyZXNoaW5nU3ZjOjpDcmVhdGVSZWZyZXNoYWJsZU9iamVjdFRlbXBsYXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q3JlYXRlUmVmcmVzaGFibGVPYmplY3RUZW1wbGF0ZUBDV2JlbVJlZnJlc2hpbmdTdmNAQElFQUFKUEVCR0pQRUFQRUFVSVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENNZXRob2REZXNjcmlwdGlvbjo6Q3JlYXRlVW5tZXJnZWRWZXJzaW9uKHN0cnVjdCBDTWV0aG9kRGVzY3JpcHRpb24gKiBfX3B0cjY0IF9fcHRyNjQsc3RydWN0IENNZXRob2REZXNjcmlwdGlvbiAqIF9fcHRyNjQgX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQpDQorP0NyZWF0ZVVubWVyZ2VkVmVyc2lvbkBDTWV0aG9kRGVzY3JpcHRpb25AQFNBSFBFRkFVMUAwUEVBVkNGYXN0SGVhcEBAMUBaDQorOyBwdWJsaWM6IGNsYXNzIFdTdHJpbmcgIF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmc6OkNyZWF0ZVdTdHJpbmdDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q3JlYXRlV1N0cmluZ0NvcHlAQ0NvbXByZXNzZWRTdHJpbmdAQFFFQkE/QVZXU3RyaW5nQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nTGlzdDo6Q3JlYXRlV2l0aEV4dHJhKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGNsYXNzIENDb21wcmVzc2VkU3RyaW5nICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVXaXRoRXh0cmFAQ0NvbXByZXNzZWRTdHJpbmdMaXN0QEBRRUFBUEVBRVBFQUVQRUFWQ0NvbXByZXNzZWRTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkRlY29yYXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVjb3JhdGVAQ1diZW1DbGFzc0BAVUVBQUpQRUJHMEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkRlY29yYXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVjb3JhdGVAQ1diZW1JbnN0YW5jZUBAVUVBQUpQRUJHMEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpEZWxldGUodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCkNCis/RGVsZXRlQENCYXNpY1F1YWxpZmllclNldEBAU0FYUEVBRVBFQVZDRmFzdEhlYXBAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENRdWFsaWZpZXJTZXQ6OkRlbGV0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlQENRdWFsaWZpZXJTZXRAQFVFQUFKUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVW50eXBlZEFycmF5OjpEZWxldGUoY2xhc3MgQ1R5cGUsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVAQ1VudHlwZWRBcnJheUBAUUVBQVhWQ1R5cGVAQFBFQVZDRmFzdEhlYXBAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkRlbGV0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlQENXYmVtQ2xhc3NAQFVFQUFKUEVCR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkRlbGV0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlQENXYmVtSW5zdGFuY2VAQFVFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0aG9kUGFydDo6RGVsZXRlTWV0aG9kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVNZXRob2RAQ01ldGhvZFBhcnRAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkRlbGV0ZU1ldGhvZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlTWV0aG9kQENXYmVtQ2xhc3NAQFVFQUFKUEVCR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkRlbGV0ZU1ldGhvZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlTWV0aG9kQENXYmVtSW5zdGFuY2VAQFVFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQ2xhc3NQYXJ0OjpEZWxldGVQcm9wZXJ0eSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlUHJvcGVydHlAQ0NsYXNzUGFydEBAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDbGFzc1BhcnQ6OkRlbGV0ZVByb3BlcnR5KGludCkgX19wdHI2NA0KKz9EZWxldGVQcm9wZXJ0eUBDQ2xhc3NQYXJ0QEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0luc3RhbmNlUGFydDo6RGVsZXRlUHJvcGVydHkoY2xhc3MgQ1Byb3BlcnR5SW5mb3JtYXRpb24gKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZVByb3BlcnR5QENJbnN0YW5jZVBhcnRAQFFFQUFYUEVBVkNQcm9wZXJ0eUluZm9ybWF0aW9uQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Byb3BlcnR5TG9va3VwVGFibGU6OkRlbGV0ZVByb3BlcnR5KHN0cnVjdCBDUHJvcGVydHlMb29rdXAgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9EZWxldGVQcm9wZXJ0eUBDUHJvcGVydHlMb29rdXBUYWJsZUBAUUVBQVhQRUFVQ1Byb3BlcnR5TG9va3VwQEBIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkRlbGV0ZVByb3BlcnR5KGludCkgX19wdHI2NA0KKz9EZWxldGVQcm9wZXJ0eUBDV2JlbUluc3RhbmNlQEBRRUFBSkhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1F1YWxpZmllclNldDo6RGVsZXRlUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/RGVsZXRlUXVhbGlmaWVyQENRdWFsaWZpZXJTZXRAQFFFQUFKUEVCR0hAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1F1YWxpZmllclNldExpc3Q6OkRlbGV0ZVF1YWxpZmllclNldChpbnQpIF9fcHRyNjQNCis/RGVsZXRlUXVhbGlmaWVyU2V0QENRdWFsaWZpZXJTZXRMaXN0QEBRRUFBWEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ01ldGhvZFBhcnQ6OkRlbGV0ZVNpZ25hdHVyZShpbnQsaW50KSBfX3B0cjY0DQorP0RlbGV0ZVNpZ25hdHVyZUBDTWV0aG9kUGFydEBASUVBQVhISEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkRpc2FibGVkVmFsaWRhdGVPYmplY3QoY2xhc3MgQ1diZW1PYmplY3QgKiBfX3B0cjY0KQ0KKz9EaXNhYmxlZFZhbGlkYXRlT2JqZWN0QENXYmVtT2JqZWN0QEBLQUpQRUFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT46OkRpc2NhcmQoaW50KSBfX3B0cjY0DQorP0Rpc2NhcmRAPyRDUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFZDRmxleEFycmF5QEBAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENXbWlUZXh0U291cmNlPixjbGFzcyBDRmxleEFycmF5Pjo6RGlzY2FyZChpbnQpIF9fcHRyNjQNCis/RGlzY2FyZEA/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBAUUVBQVhIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkRpc2Nvbm5lY3RPYmplY3QodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9EaXNjb25uZWN0T2JqZWN0QENXYmVtT2JqZWN0QEBVRUFBSktAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDTWV0aG9kUGFydDo6RG9TaWduYXR1cmVzTWF0Y2goaW50LGVudW0gTUVUSE9EX1NJR05BVFVSRV9UWVBFLGNsYXNzIENXYmVtT2JqZWN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Eb1NpZ25hdHVyZXNNYXRjaEBDTWV0aG9kUGFydEBASUVBQUhIVzRNRVRIT0RfU0lHTkFUVVJFX1RZUEVAQFBFQVZDV2JlbU9iamVjdEBAQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENUeXBlOjpEb2VzQ0lNVFlQRU1hdGNoVkFSVFlQRShsb25nLHVuc2lnbmVkIHNob3J0KQ0KKz9Eb2VzQ0lNVFlQRU1hdGNoVkFSVFlQRUBDVHlwZUBAU0FISkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDTWV0aG9kUGFydDo6RG9lc1NpZ25hdHVyZU1hdGNoT3RoZXIoY2xhc3MgQ01ldGhvZFBhcnQgJiBfX3B0cjY0LGludCxlbnVtIE1FVEhPRF9TSUdOQVRVUkVfVFlQRSkgX19wdHI2NA0KKz9Eb2VzU2lnbmF0dXJlTWF0Y2hPdGhlckBDTWV0aG9kUGFydEBASUVBQUhBRUFWMUBIVzRNRVRIT0RfU0lHTkFUVVJFX1RZUEVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENGYXN0SGVhcDo6RWxlbWVudE1heFNpemUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9FbGVtZW50TWF4U2l6ZUBDRmFzdEhlYXBAQFFFQUFIS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmFzdEhlYXA6OkVtcHR5KHZvaWQpIF9fcHRyNjQNCis/RW1wdHlAQ0Zhc3RIZWFwQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSW50ZXJuYWxTdHJpbmc6OkVtcHR5KHZvaWQpIF9fcHRyNjQNCis/RW1wdHlAQ0ludGVybmFsU3RyaW5nQEBRRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkVuYWJsZWRWYWxpZGF0ZU9iamVjdChjbGFzcyBDV2JlbU9iamVjdCAqIF9fcHRyNjQpDQorP0VuYWJsZWRWYWxpZGF0ZU9iamVjdEBDV2JlbU9iamVjdEBAS0FKUEVBVjFAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1F1YWxpZmllclNldDo6RW5kRW51bWVyYXRpb24odm9pZCkgX19wdHI2NA0KKz9FbmRFbnVtZXJhdGlvbkBDUXVhbGlmaWVyU2V0QEBVRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpFbmRFbnVtZXJhdGlvbih2b2lkKSBfX3B0cjY0DQorP0VuZEVudW1lcmF0aW9uQENXYmVtT2JqZWN0QEBVRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkVuZE1ldGhvZEVudW1lcmF0aW9uKHZvaWQpIF9fcHRyNjQNCis/RW5kTWV0aG9kRW51bWVyYXRpb25AQ1diZW1DbGFzc0BAVUVBQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpFbmRNZXRob2RFbnVtZXJhdGlvbih2b2lkKSBfX3B0cjY0DQorP0VuZE1ldGhvZEVudW1lcmF0aW9uQENXYmVtSW5zdGFuY2VAQFVFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OkVuc3VyZVByb3BlcnR5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCxsb25nLGludCkgX19wdHI2NA0KKz9FbnN1cmVQcm9wZXJ0eUBDQ2xhc3NQYXJ0QEBRRUFBSlBFQkdHSkhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGhvZFBhcnQ6OkVuc3VyZVF1YWxpZmllcihjbGFzcyBDV2JlbU9iamVjdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENXYmVtT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RW5zdXJlUXVhbGlmaWVyQENNZXRob2RQYXJ0QEBRRUFBSlBFQVZDV2JlbU9iamVjdEBAUEVCR1BFQVBFQVYyQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpFbnN1cmVRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0Vuc3VyZVF1YWxpZmllckBDV2JlbUNsYXNzQEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUXVhbGlmaWVyU2V0TGlzdDo6RW5zdXJlUmVhbCh2b2lkKSBfX3B0cjY0DQorP0Vuc3VyZVJlYWxAQ1F1YWxpZmllclNldExpc3RAQFFFQUFIWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENCYXNpY1F1YWxpZmllclNldDo6RW51bVByaW1hcnlRdWFsaWZpZXJzKHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhcixjbGFzcyBDRml4ZWRCU1RSQXJyYXkgJiBfX3B0cjY0LGNsYXNzIENGaXhlZEJTVFJBcnJheSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RW51bVByaW1hcnlRdWFsaWZpZXJzQENCYXNpY1F1YWxpZmllclNldEBAUUVBQUpFRUFFQVZDRml4ZWRCU1RSQXJyYXlAQDBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1F1YWxpZmllclNldDo6RW51bVF1YWxpZmllcnModW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLGNsYXNzIENGaXhlZEJTVFJBcnJheSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RW51bVF1YWxpZmllcnNAQ1F1YWxpZmllclNldEBAUUVBQUpFRUFFQVZDRml4ZWRCU1RSQXJyYXlAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpFc3RpbWF0ZURlcml2ZWRDbGFzc1NwYWNlKGNsYXNzIENEZWNvcmF0aW9uUGFydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RXN0aW1hdGVEZXJpdmVkQ2xhc3NTcGFjZUBDV2JlbUNsYXNzQEBRRUFBS1BFQVZDRGVjb3JhdGlvblBhcnRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ2xhc3NBbmRNZXRob2RzOjpFc3RpbWF0ZURlcml2ZWRQYXJ0U3BhY2Uodm9pZCkgX19wdHI2NA0KKz9Fc3RpbWF0ZURlcml2ZWRQYXJ0U3BhY2VAQ0NsYXNzQW5kTWV0aG9kc0BAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NsYXNzUGFydDo6RXN0aW1hdGVEZXJpdmVkUGFydFNwYWNlKHZvaWQpIF9fcHRyNjQNCis/RXN0aW1hdGVEZXJpdmVkUGFydFNwYWNlQENDbGFzc1BhcnRAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENNZXRob2RQYXJ0OjpFc3RpbWF0ZURlcml2ZWRQYXJ0U3BhY2Uodm9pZCkgX19wdHI2NA0KKz9Fc3RpbWF0ZURlcml2ZWRQYXJ0U3BhY2VAQ01ldGhvZFBhcnRAQFFFQUFLWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6OkVzdGltYXRlRXh0cmFTcGFjZShjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqIF9fcHRyNjQpDQorP0VzdGltYXRlRXh0cmFTcGFjZUBDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQFNBS1BFQVZDQ29tcHJlc3NlZFN0cmluZ0BAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6OkVzdGltYXRlRXh0cmFTcGFjZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0VzdGltYXRlRXh0cmFTcGFjZUBDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQFNBS1BFQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkVzdGltYXRlSW5zdGFuY2VTcGFjZShjbGFzcyBDQ2xhc3NQYXJ0ICYgX19wdHI2NCxjbGFzcyBDRGVjb3JhdGlvblBhcnQgKiBfX3B0cjY0KQ0KKz9Fc3RpbWF0ZUluc3RhbmNlU3BhY2VAQ1diZW1JbnN0YW5jZUBAU0FLQUVBVkNDbGFzc1BhcnRAQFBFQVZDRGVjb3JhdGlvblBhcnRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6RXN0aW1hdGVMaW1pdGVkUmVwcmVzZW50YXRpb25TcGFjZShsb25nLGNsYXNzIENXU3RyaW5nQXJyYXkgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0VzdGltYXRlTGltaXRlZFJlcHJlc2VudGF0aW9uU3BhY2VAQ1diZW1PYmplY3RAQFFFQUFLSlBFQVZDV1N0cmluZ0FycmF5QEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENDbGFzc0FuZE1ldGhvZHM6OkVzdGltYXRlTWVyZ2VTcGFjZShjbGFzcyBDQ2xhc3NBbmRNZXRob2RzICYgX19wdHI2NCxjbGFzcyBDQ2xhc3NBbmRNZXRob2RzICYgX19wdHI2NCkNCis/RXN0aW1hdGVNZXJnZVNwYWNlQENDbGFzc0FuZE1ldGhvZHNAQFNBS0FFQVYxQDBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OkVzdGltYXRlTWVyZ2VTcGFjZShjbGFzcyBDQ2xhc3NQYXJ0ICYgX19wdHI2NCxjbGFzcyBDQ2xhc3NQYXJ0ICYgX19wdHI2NCkNCis/RXN0aW1hdGVNZXJnZVNwYWNlQENDbGFzc1BhcnRAQFNBS0FFQVYxQDBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENNZXRob2RQYXJ0OjpFc3RpbWF0ZU1lcmdlU3BhY2UoY2xhc3MgQ01ldGhvZFBhcnQgJiBfX3B0cjY0LGNsYXNzIENNZXRob2RQYXJ0ICYgX19wdHI2NCkNCis/RXN0aW1hdGVNZXJnZVNwYWNlQENNZXRob2RQYXJ0QEBTQUtBRUFWMUAwQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkVzdGltYXRlTWVyZ2VTcGFjZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCxsb25nKSBfX3B0cjY0DQorP0VzdGltYXRlTWVyZ2VTcGFjZUBDV2JlbUNsYXNzQEBRRUFBS1BFQUVKQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRW1iZWRkZWRPYmplY3Q6OkVzdGltYXRlTmVjZXNzYXJ5U3BhY2UoY2xhc3MgQ1ZhciAmIF9fcHRyNjQpDQorP0VzdGltYXRlTmVjZXNzYXJ5U3BhY2VAQ0VtYmVkZGVkT2JqZWN0QEBTQUtBRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRW1iZWRkZWRPYmplY3Q6OkVzdGltYXRlTmVjZXNzYXJ5U3BhY2UoY2xhc3MgQ1diZW1PYmplY3QgKiBfX3B0cjY0KQ0KKz9Fc3RpbWF0ZU5lY2Vzc2FyeVNwYWNlQENFbWJlZGRlZE9iamVjdEBAU0FLUEVBVkNXYmVtT2JqZWN0QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NsYXNzQW5kTWV0aG9kczo6RXN0aW1hdGVVbm1lcmdlU3BhY2Uodm9pZCkgX19wdHI2NA0KKz9Fc3RpbWF0ZVVubWVyZ2VTcGFjZUBDQ2xhc3NBbmRNZXRob2RzQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ2xhc3NQYXJ0OjpFc3RpbWF0ZVVubWVyZ2VTcGFjZSh2b2lkKSBfX3B0cjY0DQorP0VzdGltYXRlVW5tZXJnZVNwYWNlQENDbGFzc1BhcnRAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENNZXRob2RQYXJ0OjpFc3RpbWF0ZVVubWVyZ2VTcGFjZSh2b2lkKSBfX3B0cjY0DQorP0VzdGltYXRlVW5tZXJnZVNwYWNlQENNZXRob2RQYXJ0QEBRRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkVzdGltYXRlVW5tZXJnZVNwYWNlKHZvaWQpIF9fcHRyNjQNCis/RXN0aW1hdGVVbm1lcmdlU3BhY2VAQ1diZW1DbGFzc0BAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpFc3RpbWF0ZVVubWVyZ2VTcGFjZSh2b2lkKSBfX3B0cjY0DQorP0VzdGltYXRlVW5tZXJnZVNwYWNlQENXYmVtSW5zdGFuY2VAQFVFQUFLWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0Zhc3RIZWFwOjpFeHRlbmQodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RXh0ZW5kQENGYXN0SGVhcEBAUUVBQUhLS0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV2JlbUNsYXNzOjpFeHRlbmRDbGFzc0FuZE1ldGhvZHNTcGFjZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0V4dGVuZENsYXNzQW5kTWV0aG9kc1NwYWNlQENXYmVtQ2xhc3NAQFFFQUFIS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0NsYXNzQW5kTWV0aG9kczo6RXh0ZW5kQ2xhc3NQYXJ0U3BhY2UoY2xhc3MgQ0NsYXNzUGFydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9FeHRlbmRDbGFzc1BhcnRTcGFjZUBDQ2xhc3NBbmRNZXRob2RzQEBVRUFBSFBFQVZDQ2xhc3NQYXJ0QEBLQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpFeHRlbmRDbGFzc1BhcnRTcGFjZShjbGFzcyBDQ2xhc3NQYXJ0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0V4dGVuZENsYXNzUGFydFNwYWNlQENXYmVtSW5zdGFuY2VAQFVFQUFIUEVBVkNDbGFzc1BhcnRAQEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENDbGFzc1BhcnQ6OkV4dGVuZERhdGFUYWJsZVNwYWNlKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9FeHRlbmREYXRhVGFibGVTcGFjZUBDQ2xhc3NQYXJ0QEBVRUFBSFBFQUVLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0luc3RhbmNlUGFydDo6RXh0ZW5kRGF0YVRhYmxlU3BhY2UodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0V4dGVuZERhdGFUYWJsZVNwYWNlQENJbnN0YW5jZVBhcnRAQFVFQUFIUEVBRUtLQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpFeHRlbmRIZWFwU2l6ZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RXh0ZW5kSGVhcFNpemVAQ0NsYXNzUGFydEBAVUVBQUhQRUFFS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OkV4dGVuZEhlYXBTaXplKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9FeHRlbmRIZWFwU2l6ZUBDSW5zdGFuY2VQYXJ0QEBVRUFBSFBFQUVLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ01ldGhvZFBhcnQ6OkV4dGVuZEhlYXBTaXplKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9FeHRlbmRIZWFwU2l6ZUBDTWV0aG9kUGFydEBAVUVBQUhQRUFFS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkV4dGVuZEluc3RhbmNlUGFydFNwYWNlKGNsYXNzIENJbnN0YW5jZVBhcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RXh0ZW5kSW5zdGFuY2VQYXJ0U3BhY2VAQ1diZW1JbnN0YW5jZUBAVUVBQUhQRUFWQ0luc3RhbmNlUGFydEBAS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0NsYXNzQW5kTWV0aG9kczo6RXh0ZW5kTWV0aG9kUGFydFNwYWNlKGNsYXNzIENNZXRob2RQYXJ0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0V4dGVuZE1ldGhvZFBhcnRTcGFjZUBDQ2xhc3NBbmRNZXRob2RzQEBVRUFBSFBFQVZDTWV0aG9kUGFydEBAS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0NsYXNzUGFydDo6RXh0ZW5kUHJvcGVydHlUYWJsZVNwYWNlKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9FeHRlbmRQcm9wZXJ0eVRhYmxlU3BhY2VAQ0NsYXNzUGFydEBAVUVBQUhQRUFFS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OkV4dGVuZFF1YWxpZmllclNldExpc3RTcGFjZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RXh0ZW5kUXVhbGlmaWVyU2V0TGlzdFNwYWNlQENJbnN0YW5jZVBhcnRAQFVFQUFIUEVBRUtLQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpFeHRlbmRRdWFsaWZpZXJTZXRTcGFjZShjbGFzcyBDQmFzaWNRdWFsaWZpZXJTZXQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RXh0ZW5kUXVhbGlmaWVyU2V0U3BhY2VAQ0NsYXNzUGFydEBAVUVBQUhQRUFWQ0Jhc2ljUXVhbGlmaWVyU2V0QEBLQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDSW5zdGFuY2VQUVNDb250YWluZXI6OkV4dGVuZFF1YWxpZmllclNldFNwYWNlKGNsYXNzIENCYXNpY1F1YWxpZmllclNldCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9FeHRlbmRRdWFsaWZpZXJTZXRTcGFjZUBDSW5zdGFuY2VQUVNDb250YWluZXJAQFVFQUFIUEVBVkNCYXNpY1F1YWxpZmllclNldEBAS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0luc3RhbmNlUGFydDo6RXh0ZW5kUXVhbGlmaWVyU2V0U3BhY2UoY2xhc3MgQ0Jhc2ljUXVhbGlmaWVyU2V0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0V4dGVuZFF1YWxpZmllclNldFNwYWNlQENJbnN0YW5jZVBhcnRAQFVFQUFIUEVBVkNCYXNpY1F1YWxpZmllclNldEBAS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lcjo6RXh0ZW5kUXVhbGlmaWVyU2V0U3BhY2UoY2xhc3MgQ0Jhc2ljUXVhbGlmaWVyU2V0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0V4dGVuZFF1YWxpZmllclNldFNwYWNlQENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXJAQFVFQUFIUEVBVkNCYXNpY1F1YWxpZmllclNldEBAS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENRdWFsaWZpZXJTZXRMaXN0OjpFeHRlbmRRdWFsaWZpZXJTZXRTcGFjZShjbGFzcyBDQmFzaWNRdWFsaWZpZXJTZXQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RXh0ZW5kUXVhbGlmaWVyU2V0U3BhY2VAQ1F1YWxpZmllclNldExpc3RAQFFFQUFIUEVBVkNCYXNpY1F1YWxpZmllclNldEBAS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENEYXRhVGFibGU6OkV4dGVuZFRvKHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RXh0ZW5kVG9AQ0RhdGFUYWJsZUBAUUVBQUhHS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpGYXN0Q2xvbmUoY2xhc3MgQ1diZW1JbnN0YW5jZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmFzdENsb25lQENXYmVtSW5zdGFuY2VAQFFFQUFKUEVBVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGaXhlZEJTVFJBcnJheTo6RmlsdGVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/RmlsdGVyQENGaXhlZEJTVFJBcnJheUBAUUVBQVhQRUJHSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nTGlzdDo6RmluZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmluZEBDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQFFFQUFIUEVCR0BaDQorOyBwdWJsaWM6IGNsYXNzIFdTdHJpbmcgIF9fY2RlY2wgQ1diZW1DbGFzczo6RmluZExpbWl0YXRpb25FcnJvcihsb25nLGNsYXNzIENXU3RyaW5nQXJyYXkgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmRMaW1pdGF0aW9uRXJyb3JAQ1diZW1DbGFzc0BAUUVBQT9BVldTdHJpbmdAQEpQRUFWQ1dTdHJpbmdBcnJheUBAQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ01ldGhvZFBhcnQ6OkZpbmRNZXRob2QodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmRNZXRob2RAQ01ldGhvZFBhcnRAQElFQUFIUEVCR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkZpbmRNZXRob2QodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmRNZXRob2RAQ1diZW1DbGFzc0BAVUVBQUpQRUJHQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkZpbmRNZXRob2QodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmRNZXRob2RAQ1diZW1PYmplY3RAQFVFQUFKUEVCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDU3lzdGVtUHJvcGVydGllczo6RmluZE5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9GaW5kTmFtZUBDU3lzdGVtUHJvcGVydGllc0BAU0FIUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtICogX19wdHI2NCBfX2NkZWNsIENGYXN0UHJvcGVydHlCYWc6OkZpbmRQcm9wZXJ0eSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmluZFByb3BlcnR5QENGYXN0UHJvcGVydHlCYWdAQElFQUFQRUFWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQFBFQkdAWg0KKzsgcHVibGljOiBzdHJ1Y3QgQ1Byb3BlcnR5TG9va3VwICogX19wdHI2NCBfX2NkZWNsIENQcm9wZXJ0eUxvb2t1cFRhYmxlOjpGaW5kUHJvcGVydHkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmRQcm9wZXJ0eUBDUHJvcGVydHlMb29rdXBUYWJsZUBAUUVBQVBFQVVDUHJvcGVydHlMb29rdXBAQFBFQkdAWg0KKzsgcHVibGljOiBzdHJ1Y3QgQ1Byb3BlcnR5TG9va3VwICogX19wdHI2NCBfX2NkZWNsIENQcm9wZXJ0eUxvb2t1cFRhYmxlOjpGaW5kUHJvcGVydHlCeU5hbWUoY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmRQcm9wZXJ0eUJ5TmFtZUBDUHJvcGVydHlMb29rdXBUYWJsZUBAUUVBQVBFQVVDUHJvcGVydHlMb29rdXBAQFBFQVZDQ29tcHJlc3NlZFN0cmluZ0BAQFoNCis7IHB1YmxpYzogc3RydWN0IENQcm9wZXJ0eUxvb2t1cCAqIF9fcHRyNjQgX19jZGVjbCBDUHJvcGVydHlMb29rdXBUYWJsZTo6RmluZFByb3BlcnR5QnlPZmZzZXQodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9GaW5kUHJvcGVydHlCeU9mZnNldEBDUHJvcGVydHlMb29rdXBUYWJsZUBAUUVBQVBFQVVDUHJvcGVydHlMb29rdXBAQEtAWg0KKzsgcHVibGljOiBzdHJ1Y3QgQ1Byb3BlcnR5TG9va3VwICogX19wdHI2NCBfX2NkZWNsIENQcm9wZXJ0eUxvb2t1cFRhYmxlOjpGaW5kUHJvcGVydHlCeVB0cih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0ZpbmRQcm9wZXJ0eUJ5UHRyQENQcm9wZXJ0eUxvb2t1cFRhYmxlQEBRRUFBUEVBVUNQcm9wZXJ0eUxvb2t1cEBAS0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENGYXN0UHJvcGVydHlCYWc6OkZpbmRQcm9wZXJ0eUluZGV4KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9GaW5kUHJvcGVydHlJbmRleEBDRmFzdFByb3BlcnR5QmFnQEBJRUFBSFBFQkdAWg0KKzsgcHVibGljOiBjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqIF9fcHRyNjQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpGaW5kUHJvcGVydHlJbmZvKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9GaW5kUHJvcGVydHlJbmZvQENDbGFzc1BhcnRAQFFFQUFQRUFWQ1Byb3BlcnR5SW5mb3JtYXRpb25AQFBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6Rm9yY2VQcm9wVmFsdWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENWYXIgKiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/Rm9yY2VQcm9wVmFsdWVAQ1diZW1DbGFzc0BAUUVBQUpQRUJHUEVBVkNWYXJAQEpAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6Rm9yY2VQdXQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcsc3RydWN0IHRhZ1ZBUklBTlQgKiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/Rm9yY2VQdXRAQ1diZW1DbGFzc0BAUUVBQUpQRUJHSlBFQVV0YWdWQVJJQU5UQEBKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGYXN0SGVhcDo6RnJlZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RnJlZUBDRmFzdEhlYXBAQFFFQUFYS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZpeGVkQlNUUkFycmF5OjpGcmVlKHZvaWQpIF9fcHRyNjQNCis/RnJlZUBDRml4ZWRCU1RSQXJyYXlAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGYXN0SGVhcDo6RnJlZVN0cmluZyh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0ZyZWVTdHJpbmdAQ0Zhc3RIZWFwQEBRRUFBWEtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0Zhc3RQcm9wZXJ0eUJhZzo6R2V0KGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRAQ0Zhc3RQcm9wZXJ0eUJhZ0BAUUVBQUpIUEVBUEVCR1BFQUpQRUFLMlBFQVBFQVhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0Zhc3RQcm9wZXJ0eUJhZzo6R2V0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0QENGYXN0UHJvcGVydHlCYWdAQFFFQUFKUEVCR1BFQUpQRUFLMlBFQVBFQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDUXVhbGlmaWVyU2V0OjpHZXQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcsc3RydWN0IHRhZ1ZBUklBTlQgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEBDUXVhbGlmaWVyU2V0QEBVRUFBSlBFQkdKUEVBVXRhZ1ZBUklBTlRAQFBFQUpAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1GZXRjaFJlZnJNZ3I6OkdldChzdHJ1Y3QgX0lXYmVtUmVmcmVzaGVyTWdyICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0QENXYmVtRmV0Y2hSZWZyTWdyQEBRRUFBSlBFQVBFQVVfSVdiZW1SZWZyZXNoZXJNZ3JAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpHZXQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcsc3RydWN0IHRhZ1ZBUklBTlQgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEBDV2JlbU9iamVjdEBAVUVBQUpQRUJHSlBFQVV0YWdWQVJJQU5UQEBQRUFKMkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtRmV0Y2hSZWZyTWdyOjpYRmV0Y2hSZWZyTWdyOjpHZXQoc3RydWN0IF9JV2JlbVJlZnJlc2hlck1nciAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEBYRmV0Y2hSZWZyTWdyQENXYmVtRmV0Y2hSZWZyTWdyQEBVRUFBSlBFQVBFQVVfSVdiZW1SZWZyZXNoZXJNZ3JAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBDQ2xhc3NQYXJ0OjpHZXRBYnN0cmFjdEZsYXZvcih2b2lkKSBfX3B0cjY0DQorP0dldEFic3RyYWN0Rmxhdm9yQENDbGFzc1BhcnRAQFFFQUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIENXYmVtQ2xhc3M6OkdldEFic3RyYWN0Rmxhdm9yKHZvaWQpIF9fcHRyNjQNCis/R2V0QWJzdHJhY3RGbGF2b3JAQ1diZW1DbGFzc0BAUUVBQUVYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0QWN0dWFsVHJhbnNmZXJCbG9iKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEFjdHVhbFRyYW5zZmVyQmxvYkBDV2JlbUluc3RhbmNlQEBRRUFBWFBFQUVAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0QWN0dWFsVHJhbnNmZXJCbG9iU2l6ZSh2b2lkKSBfX3B0cjY0DQorP0dldEFjdHVhbFRyYW5zZmVyQmxvYlNpemVAQ1diZW1JbnN0YW5jZUBAUUVBQUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1R5cGU6OkdldEFjdHVhbFR5cGUodm9pZCkgX19wdHI2NA0KKz9HZXRBY3R1YWxUeXBlQENUeXBlQEBRRUFBS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1R5cGU6OkdldEFjdHVhbFR5cGUodW5zaWduZWQgbG9uZykNCis/R2V0QWN0dWFsVHlwZUBDVHlwZUBAU0FLS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSW5zdGFuY2VQYXJ0OjpHZXRBY3R1YWxWYWx1ZShjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqIF9fcHRyNjQsY2xhc3MgQ1ZhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0QWN0dWFsVmFsdWVAQ0luc3RhbmNlUGFydEBAUUVBQUpQRUFWQ1Byb3BlcnR5SW5mb3JtYXRpb25AQFBFQVZDVmFyQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0Zhc3RIZWFwOjpHZXRBbGxvY2F0ZWREYXRhTGVuZ3RoKHZvaWQpIF9fcHRyNjQNCis/R2V0QWxsb2NhdGVkRGF0YUxlbmd0aEBDRmFzdEhlYXBAQFFFQUFLWFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZsZXhBcnJheSAmIF9fcHRyNjQgX19jZGVjbCBDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5Pjo6R2V0QXJyYXkodm9pZCkgX19wdHI2NA0KKz9HZXRBcnJheUA/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBAUUVBQUFFQVZDRmxleEFycmF5QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDRmxleEFycmF5ICYgX19wdHI2NCBfX2NkZWNsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+OjpHZXRBcnJheSh2b2lkKSBfX3B0cjY0DQorP0dldEFycmF5QD8kQ1BvaW50ZXJBcnJheUBWQ1dtaVRleHRTb3VyY2VAQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDV21pVGV4dFNvdXJjZUBAQEBWQ0ZsZXhBcnJheUBAQEBRRUFBQUVBVkNGbGV4QXJyYXlAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENVbnR5cGVkQXJyYXkgKiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1PYmplY3Q6OkdldEFycmF5QnlIYW5kbGUobG9uZykgX19wdHI2NA0KKz9HZXRBcnJheUJ5SGFuZGxlQENXYmVtT2JqZWN0QEBRRUFBUEVBVkNVbnR5cGVkQXJyYXlAQEpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0QXJyYXlQcm9wQWRkckJ5SGFuZGxlKGxvbmcsbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0QXJyYXlQcm9wQWRkckJ5SGFuZGxlQENXYmVtT2JqZWN0QEBVRUFBSkpKUEVBS1BFQVBFQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0QXJyYXlQcm9wRWxlbWVudEJ5SGFuZGxlKGxvbmcsbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRBcnJheVByb3BFbGVtZW50QnlIYW5kbGVAQ1diZW1PYmplY3RAQFVFQUFKSkpLUEVBSzBQRUFQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkdldEFycmF5UHJvcEluZm9CeUhhbmRsZShsb25nLGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCxsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRBcnJheVByb3BJbmZvQnlIYW5kbGVAQ1diZW1PYmplY3RAQFVFQUFKSkpQRUFQRUFHUEVBSlBFQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0QXJyYXlQcm9wUmFuZ2VCeUhhbmRsZShsb25nLGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0QXJyYXlQcm9wUmFuZ2VCeUhhbmRsZUBDV2JlbU9iamVjdEBAVUVBQUpKSktLS1BFQUswUEVBWEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0QXJyYXlQcm9wZXJ0eUhhbmRsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0QXJyYXlQcm9wZXJ0eUhhbmRsZUBDV2JlbU9iamVjdEBAUUVBQUpQRUJHUEVBSjFAWg0KKzsgcHVibGljOiBjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSAqIF9fcHRyNjQgKiBfX3B0cjY0IF9fY2RlY2wgQ1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT46OkdldEFycmF5UHRyKHZvaWQpIF9fcHRyNjQNCis/R2V0QXJyYXlQdHJAPyRDUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFZDRmxleEFycmF5QEBAQFFFQUFQRUFQRUFWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQFhaDQorOyBwdWJsaWM6IGNsYXNzIENXbWlUZXh0U291cmNlICogX19wdHI2NCAqIF9fcHRyNjQgX19jZGVjbCBDUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENXbWlUZXh0U291cmNlPixjbGFzcyBDRmxleEFycmF5Pjo6R2V0QXJyYXlQdHIodm9pZCkgX19wdHI2NA0KKz9HZXRBcnJheVB0ckA/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBAUUVBQVBFQVBFQVZDV21pVGV4dFNvdXJjZUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0gKiBfX3B0cjY0IF9fY2RlY2wgQ1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT46OkdldEF0KGludCkgX19wdHI2NA0KKz9HZXRBdEA/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBAUUVBQVBFQVZDRmFzdFByb3BlcnR5QmFnSXRlbUBASEBaDQorOyBwdWJsaWM6IGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0sY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+LGNsYXNzIENGbGV4QXJyYXk+OjpHZXRBdChpbnQpY29uc3QgIF9fcHRyNjQNCis/R2V0QXRAPyRDUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFZDRmxleEFycmF5QEBAQFFFQkFQRUJWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEhAWg0KKzsgcHVibGljOiBjbGFzcyBDV21pVGV4dFNvdXJjZSAqIF9fcHRyNjQgX19jZGVjbCBDUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENXbWlUZXh0U291cmNlPixjbGFzcyBDRmxleEFycmF5Pjo6R2V0QXQoaW50KSBfX3B0cjY0DQorP0dldEF0QD8kQ1BvaW50ZXJBcnJheUBWQ1dtaVRleHRTb3VyY2VAQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDV21pVGV4dFNvdXJjZUBAQEBWQ0ZsZXhBcnJheUBAQEBRRUFBUEVBVkNXbWlUZXh0U291cmNlQEBIQFoNCis7IHB1YmxpYzogY2xhc3MgQ1dtaVRleHRTb3VyY2UgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT46OkdldEF0KGludCljb25zdCAgX19wdHI2NA0KKz9HZXRBdEA/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBAUUVCQVBFQlZDV21pVGV4dFNvdXJjZUBASEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAmIF9fcHRyNjQgX19jZGVjbCBDRml4ZWRCU1RSQXJyYXk6OkdldEF0KGludCkgX19wdHI2NA0KKz9HZXRBdEBDRml4ZWRCU1RSQXJyYXlAQFFFQUFBRUFQRUFHSEBaDQorOyBwdWJsaWM6IHN0cnVjdCBDUHJvcGVydHlMb29rdXAgKiBfX3B0cjY0IF9fY2RlY2wgQ1Byb3BlcnR5TG9va3VwVGFibGU6OkdldEF0KGludCkgX19wdHI2NA0KKz9HZXRBdEBDUHJvcGVydHlMb29rdXBUYWJsZUBAUUVBQVBFQVVDUHJvcGVydHlMb29rdXBAQEhAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqIF9fcHRyNjQgX19jZGVjbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6OkdldEF0RnJvbUxhc3QoaW50KSBfX3B0cjY0DQorP0dldEF0RnJvbUxhc3RAQ0NvbXByZXNzZWRTdHJpbmdMaXN0QEBRRUFBUEVBVkNDb21wcmVzc2VkU3RyaW5nQEBIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtQ2FsbFNlY3VyaXR5OjpHZXRBdXRoZW50aWNhdGlvbih1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRBdXRoZW50aWNhdGlvbkBDV2JlbUNhbGxTZWN1cml0eUBAUUVBQUpQRUFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6R2V0QXV0aGVudGljYXRpb24odW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0QXV0aGVudGljYXRpb25AQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZUBAVUVBQUpQRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGU6OkdldEF1dGhlbnRpY2F0aW9uTGV2ZWwodm9pZCkgX19wdHI2NA0KKz9HZXRBdXRoZW50aWNhdGlvbkxldmVsQENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFFFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DYWxsU2VjdXJpdHk6OkdldEF1dGhlbnRpY2F0aW9uTHVpZCh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRBdXRoZW50aWNhdGlvbkx1aWRAQ1diZW1DYWxsU2VjdXJpdHlAQFVFQUFKUEVBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGU6OkdldEF1dGhlbnRpY2F0aW9uTHVpZCh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRBdXRoZW50aWNhdGlvbkx1aWRAQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZUBAVUVBQUpQRUFYQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGU6OkdldEF1dGhlbnRpY2F0aW9uU2VydmljZSh2b2lkKSBfX3B0cjY0DQorP0dldEF1dGhlbnRpY2F0aW9uU2VydmljZUBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjpHZXRBdXRob3JpemF0aW9uU2VydmljZSh2b2lkKSBfX3B0cjY0DQorP0dldEF1dGhvcml6YXRpb25TZXJ2aWNlQENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENUeXBlOjpHZXRCYXNpYyh2b2lkKSBfX3B0cjY0DQorP0dldEJhc2ljQENUeXBlQEBRRUFBS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1R5cGU6OkdldEJhc2ljKHVuc2lnbmVkIGxvbmcpDQorP0dldEJhc2ljQENUeXBlQEBTQUtLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6R2V0QmxvY2tMZW5ndGgodm9pZCkgX19wdHI2NA0KKz9HZXRCbG9ja0xlbmd0aEBDV2JlbUNsYXNzQEBNRUFBS1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkdldEJsb2NrTGVuZ3RoKHZvaWQpIF9fcHRyNjQNCis/R2V0QmxvY2tMZW5ndGhAQ1diZW1JbnN0YW5jZUBATUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NsYXNzUGFydDo6R2V0Q2xhc3NJbmRleCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0Q2xhc3NJbmRleEBDQ2xhc3NQYXJ0QEBRRUFBS1BFQkdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkdldENsYXNzSW5kZXgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldENsYXNzSW5kZXhAQ1diZW1PYmplY3RAQFFFQUFLUEVCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENDb21wcmVzc2VkU3RyaW5nICogX19wdHI2NCBfX2NkZWNsIENXYmVtT2JqZWN0OjpHZXRDbGFzc0ludGVybmFsKHZvaWQpIF9fcHRyNjQNCis/R2V0Q2xhc3NJbnRlcm5hbEBDV2JlbU9iamVjdEBAUUVBQVBFQVZDQ29tcHJlc3NlZFN0cmluZ0BAWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDQ2xhc3NBbmRNZXRob2RzOjpHZXRDbGFzc05hbWVXKGNsYXNzIFdTdHJpbmcgJiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KQ0KKz9HZXRDbGFzc05hbWVXQENDbGFzc0FuZE1ldGhvZHNAQFNBSkFFQVZXU3RyaW5nQEBQRUFFQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OkdldENsYXNzTmFtZVcoY2xhc3MgQ1ZhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0Q2xhc3NOYW1lV0BDQ2xhc3NQYXJ0QEBRRUFBSlBFQVZDVmFyQEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqIF9fcHRyNjQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpHZXRDbGFzc05hbWVXKHZvaWQpIF9fcHRyNjQNCis/R2V0Q2xhc3NOYW1lV0BDQ2xhc3NQYXJ0QEBRRUFBUEVBVkNDb21wcmVzc2VkU3RyaW5nQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpHZXRDbGFzc05hbWVXKGNsYXNzIENWYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldENsYXNzTmFtZVdAQ1diZW1DbGFzc0BAVUVBQUpQRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0Q2xhc3NOYW1lVyhjbGFzcyBDVmFyICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDbGFzc05hbWVXQENXYmVtSW5zdGFuY2VAQFVFQUFKUEVBVkNWYXJAQEBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3RBcnJheVBhY2tldDo6R2V0Q2xhc3NPYmplY3QoY2xhc3MgQ1diZW1PYmplY3RQYWNrZXQgJiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0Q2xhc3NPYmplY3RAQ1diZW1PYmplY3RBcnJheVBhY2tldEBAQUVBQUpBRUFWQ1diZW1PYmplY3RQYWNrZXRAQFBFQVBFQVVJV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIENDbGFzc1BhcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1DbGFzczo6R2V0Q2xhc3NQYXJ0KHZvaWQpIF9fcHRyNjQNCis/R2V0Q2xhc3NQYXJ0QENXYmVtQ2xhc3NAQE1FQUFQRUFWQ0NsYXNzUGFydEBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6R2V0Q2xhc3NQYXJ0KHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0Q2xhc3NQYXJ0QENXYmVtQ2xhc3NAQFVFQUFKUEVBWEtQRUFLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBDQ2xhc3NQYXJ0ICogX19wdHI2NCBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkdldENsYXNzUGFydCh2b2lkKSBfX3B0cjY0DQorP0dldENsYXNzUGFydEBDV2JlbUluc3RhbmNlQEBNRUFBUEVBVkNDbGFzc1BhcnRAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkdldENsYXNzUGFydCh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldENsYXNzUGFydEBDV2JlbUluc3RhbmNlQEBVRUFBSlBFQVhLUEVBS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQ2xhc3NQYXJ0OjpHZXRDbGFzc1F1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQsY2xhc3MgQ1R5cGVkVmFsdWUgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXRDbGFzc1F1YWxpZmllckBDQ2xhc3NQYXJ0QEBRRUFBSlBFQkdQRUFKUEVBVkNUeXBlZFZhbHVlQEBQRUFQRUFWQ0Zhc3RIZWFwQEBIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OkdldENsYXNzUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDVmFyICogX19wdHI2NCxsb25nICogX19wdHI2NCxsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDbGFzc1F1YWxpZmllckBDQ2xhc3NQYXJ0QEBRRUFBSlBFQkdQRUFWQ1ZhckBAUEVBSjJAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpHZXRDbGFzc1N1YnNldCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQsc3RydWN0IF9JV21pT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0Q2xhc3NTdWJzZXRAQ1diZW1DbGFzc0BAVUVBQUpLUEVBUEVCR1BFQVBFQVVfSVdtaU9iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0Q2xhc3NTdWJzZXQodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCBfSVdtaU9iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldENsYXNzU3Vic2V0QENXYmVtSW5zdGFuY2VAQFVFQUFKS1BFQVBFQkdQRUFQRUFVX0lXbWlPYmplY3RAQEBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3RBcnJheVBhY2tldDo6R2V0Q2xhc3NsZXNzSW5zdGFuY2VPYmplY3QoY2xhc3MgQ1diZW1PYmplY3RQYWNrZXQgJiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQsY2xhc3MgQ1diZW1DbGFzc0NhY2hlICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDbGFzc2xlc3NJbnN0YW5jZU9iamVjdEBDV2JlbU9iamVjdEFycmF5UGFja2V0QEBBRUFBSkFFQVZDV2JlbU9iamVjdFBhY2tldEBAUEVBUEVBVUlXYmVtQ2xhc3NPYmplY3RAQEFFQVZDV2JlbUNsYXNzQ2FjaGVAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENDbGFzc0FuZE1ldGhvZHM6OkdldEN1cnJlbnRPcmlnaW4odm9pZCkgX19wdHI2NA0KKz9HZXRDdXJyZW50T3JpZ2luQENDbGFzc0FuZE1ldGhvZHNAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NsYXNzUGFydDo6R2V0Q3VycmVudE9yaWdpbih2b2lkKSBfX3B0cjY0DQorP0dldEN1cnJlbnRPcmlnaW5AQ0NsYXNzUGFydEBAVUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6R2V0Q3VycmVudE9yaWdpbih2b2lkKSBfX3B0cjY0DQorP0dldEN1cnJlbnRPcmlnaW5AQ1diZW1DbGFzc0BAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0RhdGFUYWJsZTo6R2V0RGF0YUxlbmd0aCh2b2lkKSBfX3B0cjY0DQorP0dldERhdGFMZW5ndGhAQ0RhdGFUYWJsZUBAUUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIENEYXRhVGFibGUgKiBfX3B0cjY0IF9fY2RlY2wgQ0NsYXNzUGFydDo6R2V0RGF0YVRhYmxlKHZvaWQpIF9fcHRyNjQNCis/R2V0RGF0YVRhYmxlQENDbGFzc1BhcnRAQFVFQUFQRUFWQ0RhdGFUYWJsZUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0RhdGFUYWJsZSAqIF9fcHRyNjQgX19jZGVjbCBDSW5zdGFuY2VQYXJ0OjpHZXREYXRhVGFibGUodm9pZCkgX19wdHI2NA0KKz9HZXREYXRhVGFibGVAQ0luc3RhbmNlUGFydEBAUUVBQVBFQVZDRGF0YVRhYmxlQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDSW5zdGFuY2VQYXJ0OjpHZXREYXRhVGFibGVEYXRhKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KQ0KKz9HZXREYXRhVGFibGVEYXRhQENJbnN0YW5jZVBhcnRAQFNBUEVBRVBFQUVAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0NsYXNzUGFydDo6R2V0RGVmYXVsdEJ5SGFuZGxlKGxvbmcsbG9uZyxsb25nICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREZWZhdWx0QnlIYW5kbGVAQ0NsYXNzUGFydEBAUUVBQUpKSlBFQUpQRUFFQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OkdldERlZmF1bHRQdHJCeUhhbmRsZShsb25nLHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREZWZhdWx0UHRyQnlIYW5kbGVAQ0NsYXNzUGFydEBAUUVBQUpKUEVBUEVBWEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQ2xhc3NQYXJ0OjpHZXREZWZhdWx0VmFsdWUoY2xhc3MgQ1Byb3BlcnR5SW5mb3JtYXRpb24gKiBfX3B0cjY0LGNsYXNzIENWYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERlZmF1bHRWYWx1ZUBDQ2xhc3NQYXJ0QEBRRUFBSlBFQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBAUEVBVkNWYXJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQ2xhc3NQYXJ0OjpHZXREZWZhdWx0VmFsdWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENWYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERlZmF1bHRWYWx1ZUBDQ2xhc3NQYXJ0QEBRRUFBSlBFQkdQRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OkdldERlcml2YXRpb24oY2xhc3MgQ1ZhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RGVyaXZhdGlvbkBDQ2xhc3NQYXJ0QEBRRUFBSlBFQVZDVmFyQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkdldERlcml2YXRpb24oY2xhc3MgQ1ZhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RGVyaXZhdGlvbkBDV2JlbU9iamVjdEBAUUVBQUpQRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkdldERlcml2YXRpb24obG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREZXJpdmF0aW9uQENXYmVtT2JqZWN0QEBVRUFBSkpLUEVBSzBQRUFHQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkdldERlc2NyaXB0aW9uKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RGVzY3JpcHRpb25AQ1diZW1PYmplY3RAQFVFQUFKUEVBUEVBR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQ2xhc3NQYXJ0OjpHZXREeW5hc3R5KGNsYXNzIENWYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldER5bmFzdHlAQ0NsYXNzUGFydEBAUUVBQUpQRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgKiBfX3B0cjY0IF9fY2RlY2wgQ0NsYXNzUGFydDo6R2V0RHluYXN0eSh2b2lkKSBfX3B0cjY0DQorP0dldER5bmFzdHlAQ0NsYXNzUGFydEBAUUVBQVBFQVZDQ29tcHJlc3NlZFN0cmluZ0BAWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6R2V0RHluYXN0eShjbGFzcyBDVmFyICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREeW5hc3R5QENXYmVtQ2xhc3NAQFVFQUFKUEVBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkdldER5bmFzdHkoY2xhc3MgQ1ZhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RHluYXN0eUBDV2JlbUluc3RhbmNlQEBVRUFBSlBFQVZDVmFyQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENVbnR5cGVkQXJyYXk6OkdldEVsZW1lbnQoaW50LGludCkgX19wdHI2NA0KKz9HZXRFbGVtZW50QENVbnR5cGVkQXJyYXlAQFFFQUFQRUFFSEhAWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbU9iamVjdCAqIF9fcHRyNjQgX19jZGVjbCBDRW1iZWRkZWRPYmplY3Q6OkdldEVtYmVkZGVkKHZvaWQpIF9fcHRyNjQNCis/R2V0RW1iZWRkZWRAQ0VtYmVkZGVkT2JqZWN0QEBRRUFBUEVBVkNXYmVtT2JqZWN0QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbU9iamVjdCAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0RW1iZWRkZWRPYmoobG9uZykgX19wdHI2NA0KKz9HZXRFbWJlZGRlZE9iakBDV2JlbU9iamVjdEBAUUVBQVBFQVYxQEpAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqIF9fcHRyNjQgX19jZGVjbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6OkdldEZpcnN0KHZvaWQpIF9fcHRyNjQNCis/R2V0Rmlyc3RAQ0NvbXByZXNzZWRTdHJpbmdMaXN0QEBRRUFBUEVBVkNDb21wcmVzc2VkU3RyaW5nQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgQ1F1YWxpZmllciAqIF9fcHRyNjQgX19jZGVjbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OkdldEZpcnN0UXVhbGlmaWVyKHZvaWQpIF9fcHRyNjQNCis/R2V0Rmlyc3RRdWFsaWZpZXJAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBRRUFBUEVBVUNRdWFsaWZpZXJAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgQ1F1YWxpZmllciAqIF9fcHRyNjQgX19jZGVjbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OkdldEZpcnN0UXVhbGlmaWVyRnJvbURhdGEodW5zaWduZWQgY2hhciAqIF9fcHRyNjQpDQorP0dldEZpcnN0UXVhbGlmaWVyRnJvbURhdGFAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBTQVBFQVVDUXVhbGlmaWVyQEBQRUFFQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENMaW1pdGF0aW9uTWFwcGluZzo6R2V0RmxhZ3Modm9pZCkgX19wdHI2NA0KKz9HZXRGbGFnc0BDTGltaXRhdGlvbk1hcHBpbmdAQFFFQUFKWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1PYmplY3Q6OkdldEZ1bGxQYXRoKHZvaWQpIF9fcHRyNjQNCis/R2V0RnVsbFBhdGhAQ1diZW1PYmplY3RAQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkdldEdVSUQoc3RydWN0IF9HVUlEICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRHVUlEQENXYmVtT2JqZWN0QEBVRUFBSlBFQVVfR1VJREBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6R2V0R2VudXMoY2xhc3MgQ1ZhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0R2VudXNAQ1diZW1DbGFzc0BAVUVBQUpQRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0R2VudXMoY2xhc3MgQ1ZhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0R2VudXNAQ1diZW1JbnN0YW5jZUBAVUVBQUpQRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1SZW1vdGVSZWZyZXNoZXI6OlhXYmVtUmVtb3RlUmVmcjo6R2V0R3VpZChsb25nLHN0cnVjdCBfR1VJRCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0R3VpZEBYV2JlbVJlbW90ZVJlZnJAQ1diZW1SZW1vdGVSZWZyZXNoZXJAQFVFQUFKSlBFQVVfR1VJREBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6R2V0SGFuZGxlVHlwZSh1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRIYW5kbGVUeXBlQENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFVFQUFKUEVBS0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmdMaXN0OjpHZXRIZWFkZXJMZW5ndGgodm9pZCkNCis/R2V0SGVhZGVyTGVuZ3RoQENDb21wcmVzc2VkU3RyaW5nTGlzdEBAU0FLWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENGYXN0SGVhcDo6R2V0SGVhZGVyTGVuZ3RoKHZvaWQpIF9fcHRyNjQNCis/R2V0SGVhZGVyTGVuZ3RoQENGYXN0SGVhcEBASUVBQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1F1YWxpZmllclNldExpc3Q6OkdldEhlYWRlckxlbmd0aCh2b2lkKQ0KKz9HZXRIZWFkZXJMZW5ndGhAQ1F1YWxpZmllclNldExpc3RAQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1VudHlwZWRBcnJheTo6R2V0SGVhZGVyTGVuZ3RoKHZvaWQpDQorP0dldEhlYWRlckxlbmd0aEBDVW50eXBlZEFycmF5QEBTQUtYWg0KKzsgcHVibGljOiBjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0IF9fY2RlY2wgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpHZXRIZWFwKHZvaWQpIF9fcHRyNjQNCis/R2V0SGVhcEBDQmFzaWNRdWFsaWZpZXJTZXRAQFFFQUFQRUFWQ0Zhc3RIZWFwQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpHZXRIZWFwKHZvaWQpIF9fcHRyNjQNCis/R2V0SGVhcEBDQ2xhc3NQYXJ0QEBVRUFBUEVBVkNGYXN0SGVhcEBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0IF9fY2RlY2wgQ0luc3RhbmNlUFFTQ29udGFpbmVyOjpHZXRIZWFwKHZvaWQpIF9fcHRyNjQNCis/R2V0SGVhcEBDSW5zdGFuY2VQUVNDb250YWluZXJAQFVFQUFQRUFWQ0Zhc3RIZWFwQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQgX19jZGVjbCBDSW5zdGFuY2VQYXJ0OjpHZXRIZWFwKHZvaWQpIF9fcHRyNjQNCis/R2V0SGVhcEBDSW5zdGFuY2VQYXJ0QEBVRUFBUEVBVkNGYXN0SGVhcEBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCBfX2NkZWNsIENNZXRob2RQYXJ0OjpHZXRIZWFwKHZvaWQpIF9fcHRyNjQNCis/R2V0SGVhcEBDTWV0aG9kUGFydEBAUUVBQVBFQVZDRmFzdEhlYXBAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCBfX2NkZWNsIENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXI6OkdldEhlYXAodm9pZCkgX19wdHI2NA0KKz9HZXRIZWFwQENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXJAQFVFQUFQRUFWQ0Zhc3RIZWFwQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0IF9fY2RlY2wgQ1Byb3BlcnR5TG9va3VwVGFibGU6OkdldEhlYXAodm9pZCkgX19wdHI2NA0KKz9HZXRIZWFwQENQcm9wZXJ0eUxvb2t1cFRhYmxlQEBRRUFBUEVBVkNGYXN0SGVhcEBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCBfX2NkZWNsIENRdWFsaWZpZXJTZXRMaXN0OjpHZXRIZWFwKHZvaWQpIF9fcHRyNjQNCis/R2V0SGVhcEBDUXVhbGlmaWVyU2V0TGlzdEBAUUVBQVBFQVZDRmFzdEhlYXBAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0Zhc3RIZWFwOjpHZXRIZWFwRGF0YSh2b2lkKSBfX3B0cjY0DQorP0dldEhlYXBEYXRhQENGYXN0SGVhcEBAUUVBQVBFQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NsYXNzUGFydDo6R2V0SGVhcFB0ckJ5SGFuZGxlKGxvbmcpIF9fcHRyNjQNCis/R2V0SGVhcFB0ckJ5SGFuZGxlQENDbGFzc1BhcnRAQFFFQUFLSkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0SGVhcFB0ckJ5SGFuZGxlKGxvbmcpIF9fcHRyNjQNCis/R2V0SGVhcFB0ckJ5SGFuZGxlQENXYmVtT2JqZWN0QEBRRUFBS0pAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0SGVscENvbnRleHQodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0SGVscENvbnRleHRAQ1diZW1PYmplY3RAQFVFQUFKUEVBS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpHZXRIZWxwRmlsZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEhlbHBGaWxlQENXYmVtT2JqZWN0QEBVRUFBSlBFQVBFQUdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjpHZXRJZGVudGl0eSh2b2lkKSBfX3B0cjY0DQorP0dldElkZW50aXR5QENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkdldElkcyhjbGFzcyBDRmxleEFycmF5ICYgX19wdHI2NCxjbGFzcyBDV2JlbUNsYXNzICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRJZHNAQ1diZW1DbGFzc0BAUUVBQUpBRUFWQ0ZsZXhBcnJheUBAUEVBVjFAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DYWxsU2VjdXJpdHk6OkdldEltcGVyc29uYXRpb24odW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0SW1wZXJzb25hdGlvbkBDV2JlbUNhbGxTZWN1cml0eUBAVUVBQUpQRUFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6R2V0SW1wZXJzb25hdGlvbih1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRJbXBlcnNvbmF0aW9uQENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFVFQUFKUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjpHZXRJbXBlcnNvbmF0aW9uTGV2ZWwodm9pZCkgX19wdHI2NA0KKz9HZXRJbXBlcnNvbmF0aW9uTGV2ZWxAQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZUBAUUVBQUtYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBsb25nICogX19wdHI2NCBfX3B0cjY0IF9fY2RlY2wgQ0Zhc3RIZWFwOjpHZXRJbkxpbmVMZW5ndGgodm9pZCkgX19wdHI2NA0KKz9HZXRJbkxpbmVMZW5ndGhAQ0Zhc3RIZWFwQEBJRUFBUEVGQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0Zhc3RIZWFwOjpHZXRJbmRleEZyb21GYWtlKHVuc2lnbmVkIGxvbmcpDQorP0dldEluZGV4RnJvbUZha2VAQ0Zhc3RIZWFwQEBTQUhLQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENLbm93blN0cmluZ1RhYmxlOjpHZXRJbmRleE9mS2V5KHZvaWQpDQorP0dldEluZGV4T2ZLZXlAQ0tub3duU3RyaW5nVGFibGVAQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDQ2xhc3NBbmRNZXRob2RzOjpHZXRJbmRleGVkUHJvcHMoY2xhc3MgQ1dTdHJpbmdBcnJheSAmIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQpDQorP0dldEluZGV4ZWRQcm9wc0BDQ2xhc3NBbmRNZXRob2RzQEBTQUhBRUFWQ1dTdHJpbmdBcnJheUBAUEVBRUBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDbGFzc1BhcnQ6OkdldEluZGV4ZWRQcm9wcyhjbGFzcyBDV1N0cmluZ0FycmF5ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRJbmRleGVkUHJvcHNAQ0NsYXNzUGFydEBAUUVBQUhBRUFWQ1dTdHJpbmdBcnJheUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDV2JlbUNsYXNzOjpHZXRJbmRleGVkUHJvcHMoY2xhc3MgQ1dTdHJpbmdBcnJheSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0SW5kZXhlZFByb3BzQENXYmVtQ2xhc3NAQFVFQUFIQUVBVkNXU3RyaW5nQXJyYXlAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0SW5kZXhlZFByb3BzKGNsYXNzIENXU3RyaW5nQXJyYXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEluZGV4ZWRQcm9wc0BDV2JlbUluc3RhbmNlQEBVRUFBSEFFQVZDV1N0cmluZ0FycmF5QEBAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0QXJyYXlQYWNrZXQ6OkdldEluc3RhbmNlT2JqZWN0KGNsYXNzIENXYmVtT2JqZWN0UGFja2V0ICYgX19wdHI2NCxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0LGNsYXNzIENXYmVtQ2xhc3NDYWNoZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0SW5zdGFuY2VPYmplY3RAQ1diZW1PYmplY3RBcnJheVBhY2tldEBAQUVBQUpBRUFWQ1diZW1PYmplY3RQYWNrZXRAQFBFQVBFQVVJV2JlbUNsYXNzT2JqZWN0QEBBRUFWQ1diZW1DbGFzc0NhY2hlQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpHZXRJbnN0YW5jZU9iamVjdFVua25vd24odm9pZCkgX19wdHI2NA0KKz9HZXRJbnN0YW5jZU9iamVjdFVua25vd25AQ1diZW1JbnN0YW5jZUBAVUVBQVBFQVVJVW5rbm93bkBAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkICogX19wdHI2NCBfX2NkZWNsIENXYmVtRW51bU1hcnNoYWxpbmc6OkdldEludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEludGVyZmFjZUBDV2JlbUVudW1NYXJzaGFsaW5nQEBNRUFBUEVBWEFFQlVfR1VJREBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkICogX19wdHI2NCBfX2NkZWNsIENXYmVtRmV0Y2hSZWZyTWdyOjpHZXRJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRJbnRlcmZhY2VAQ1diZW1GZXRjaFJlZnJNZ3JAQE1FQUFQRUFYQUVCVV9HVUlEQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1SZWZyZXNoaW5nU3ZjOjpHZXRJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRJbnRlcmZhY2VAQ1diZW1SZWZyZXNoaW5nU3ZjQEBNRUFBUEVBWEFFQlVfR1VJREBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkICogX19wdHI2NCBfX2NkZWNsIENXbWlPYmplY3RGYWN0b3J5OjpHZXRJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRJbnRlcmZhY2VAQ1dtaU9iamVjdEZhY3RvcnlAQE1FQUFQRUFYQUVCVV9HVUlEQEBAWg0KKzsgcHVibGljOiBjbGFzcyBDVmFyICogX19wdHI2NCBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkdldEtleSh2b2lkKSBfX3B0cjY0DQorP0dldEtleUBDV2JlbUluc3RhbmNlQEBRRUFBUEVBVkNWYXJAQFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQ2xhc3NQYXJ0OjpHZXRLZXlPcmlnaW4oY2xhc3MgV1N0cmluZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0S2V5T3JpZ2luQENDbGFzc1BhcnRAQFFFQUFKQUVBVldTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkdldEtleU9yaWdpbihjbGFzcyBXU3RyaW5nICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRLZXlPcmlnaW5AQ1diZW1DbGFzc0BAVUVBQUpBRUFWV1N0cmluZ0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0S2V5T3JpZ2luKGNsYXNzIFdTdHJpbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEtleU9yaWdpbkBDV2JlbUluc3RhbmNlQEBVRUFBSkFFQVZXU3RyaW5nQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0S2V5T3JpZ2luKGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0S2V5T3JpZ2luQENXYmVtT2JqZWN0QEBVRUFBSkpLUEVBS1BFQUdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpHZXRLZXlQcm9wcyhjbGFzcyBDV1N0cmluZ0FycmF5ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRLZXlQcm9wc0BDQ2xhc3NQYXJ0QEBRRUFBSEFFQVZDV1N0cmluZ0FycmF5QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENXYmVtQ2xhc3M6OkdldEtleVByb3BzKGNsYXNzIENXU3RyaW5nQXJyYXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEtleVByb3BzQENXYmVtQ2xhc3NAQFVFQUFIQUVBVkNXU3RyaW5nQXJyYXlAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0S2V5UHJvcHMoY2xhc3MgQ1dTdHJpbmdBcnJheSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0S2V5UHJvcHNAQ1diZW1JbnN0YW5jZUBAVUVBQUhBRUFWQ1dTdHJpbmdBcnJheUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0S2V5U3RyKHZvaWQpIF9fcHRyNjQNCis/R2V0S2V5U3RyQENXYmVtSW5zdGFuY2VAQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkdldEtleVN0cmluZyhsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0S2V5U3RyaW5nQENXYmVtT2JqZWN0QEBVRUFBSkpQRUFQRUFHQFoNCis7IHB1YmxpYzogc3RydWN0IENRdWFsaWZpZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpHZXRLbm93blF1YWxpZmllckxvY2FsbHkoaW50KSBfX3B0cjY0DQorP0dldEtub3duUXVhbGlmaWVyTG9jYWxseUBDQmFzaWNRdWFsaWZpZXJTZXRAQFFFQUFQRUFVQ1F1YWxpZmllckBASEBaDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgQ1F1YWxpZmllciAqIF9fcHRyNjQgX19jZGVjbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OkdldEtub3duUXVhbGlmaWVyTG9jYWxseSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCxpbnQpDQorP0dldEtub3duUXVhbGlmaWVyTG9jYWxseUBDQmFzaWNRdWFsaWZpZXJTZXRAQFNBUEVBVUNRdWFsaWZpZXJAQFBFQUVIQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIENDb21wcmVzc2VkU3RyaW5nICYgX19wdHI2NCBfX2NkZWNsIENLbm93blN0cmluZ1RhYmxlOjpHZXRLbm93blN0cmluZyhpbnQpDQorP0dldEtub3duU3RyaW5nQENLbm93blN0cmluZ1RhYmxlQEBTQUFFQVZDQ29tcHJlc3NlZFN0cmluZ0BASEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDS25vd25TdHJpbmdUYWJsZTo6R2V0S25vd25TdHJpbmdJbmRleCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0dldEtub3duU3RyaW5nSW5kZXhAQ0tub3duU3RyaW5nVGFibGVAQFNBSFBFQkdAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqIF9fcHRyNjQgX19jZGVjbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6OkdldExhc3Qodm9pZCkgX19wdHI2NA0KKz9HZXRMYXN0QENDb21wcmVzc2VkU3RyaW5nTGlzdEBAUUVBQVBFQVZDQ29tcHJlc3NlZFN0cmluZ0BAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENCYXNpY1F1YWxpZmllclNldDo6R2V0TGVuZ3RoKHZvaWQpIF9fcHRyNjQNCis/R2V0TGVuZ3RoQENCYXNpY1F1YWxpZmllclNldEBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NsYXNzQW5kTWV0aG9kczo6R2V0TGVuZ3RoKHZvaWQpIF9fcHRyNjQNCis/R2V0TGVuZ3RoQENDbGFzc0FuZE1ldGhvZHNAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OkdldExlbmd0aCh2b2lkKSBfX3B0cjY0DQorP0dldExlbmd0aEBDQ2xhc3NQYXJ0QEBRRUFBS1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nOjpHZXRMZW5ndGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRMZW5ndGhAQ0NvbXByZXNzZWRTdHJpbmdAQFFFQkFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nTGlzdDo6R2V0TGVuZ3RoKHZvaWQpIF9fcHRyNjQNCis/R2V0TGVuZ3RoQENDb21wcmVzc2VkU3RyaW5nTGlzdEBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0RhdGFUYWJsZTo6R2V0TGVuZ3RoKHZvaWQpIF9fcHRyNjQNCis/R2V0TGVuZ3RoQENEYXRhVGFibGVAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENEZWNvcmF0aW9uUGFydDo6R2V0TGVuZ3RoKHZvaWQpIF9fcHRyNjQNCis/R2V0TGVuZ3RoQENEZWNvcmF0aW9uUGFydEBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0VtYmVkZGVkT2JqZWN0OjpHZXRMZW5ndGgodm9pZCkgX19wdHI2NA0KKz9HZXRMZW5ndGhAQ0VtYmVkZGVkT2JqZWN0QEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRmFzdEhlYXA6OkdldExlbmd0aCh2b2lkKSBfX3B0cjY0DQorP0dldExlbmd0aEBDRmFzdEhlYXBAQFFFQUFLWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0ZpeGVkQlNUUkFycmF5OjpHZXRMZW5ndGgodm9pZCkgX19wdHI2NA0KKz9HZXRMZW5ndGhAQ0ZpeGVkQlNUUkFycmF5QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OkdldExlbmd0aCh2b2lkKSBfX3B0cjY0DQorP0dldExlbmd0aEBDSW5zdGFuY2VQYXJ0QEBRRUFBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDSW5zdGFuY2VQYXJ0OjpHZXRMZW5ndGgodW5zaWduZWQgY2hhciAqIF9fcHRyNjQpDQorP0dldExlbmd0aEBDSW5zdGFuY2VQYXJ0QEBTQUhQRUFFQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0ludGVybmFsU3RyaW5nOjpHZXRMZW5ndGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRMZW5ndGhAQ0ludGVybmFsU3RyaW5nQEBRRUJBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTWV0aG9kUGFydDo6R2V0TGVuZ3RoKHZvaWQpIF9fcHRyNjQNCis/R2V0TGVuZ3RoQENNZXRob2RQYXJ0QEBRRUFBS1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENQcm9wZXJ0eUxvb2t1cFRhYmxlOjpHZXRMZW5ndGgodm9pZCkgX19wdHI2NA0KKz9HZXRMZW5ndGhAQ1Byb3BlcnR5TG9va3VwVGFibGVAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1F1YWxpZmllclNldExpc3Q6OkdldExlbmd0aCh2b2lkKSBfX3B0cjY0DQorP0dldExlbmd0aEBDUXVhbGlmaWVyU2V0TGlzdEBAUUVBQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1F1YWxpZmllclNldExpc3Q6OkdldExlbmd0aCh1bnNpZ25lZCBjaGFyICogX19wdHI2NCxpbnQpDQorP0dldExlbmd0aEBDUXVhbGlmaWVyU2V0TGlzdEBAU0FIUEVBRUhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1R5cGU6OkdldExlbmd0aCh2b2lkKSBfX3B0cjY0DQorP0dldExlbmd0aEBDVHlwZUBAUUVBQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENUeXBlOjpHZXRMZW5ndGgodW5zaWduZWQgbG9uZykNCis/R2V0TGVuZ3RoQENUeXBlQEBTQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkdldExlbmd0aCh2b2lkKSBfX3B0cjY0DQorP0dldExlbmd0aEBDV2JlbUNsYXNzQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpHZXRMZW5ndGgodm9pZCkgX19wdHI2NA0KKz9HZXRMZW5ndGhAQ1diZW1JbnN0YW5jZUBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1VudHlwZWRBcnJheTo6R2V0TGVuZ3RoQnlBY3R1YWxMZW5ndGgoaW50KSBfX3B0cjY0DQorP0dldExlbmd0aEJ5QWN0dWFsTGVuZ3RoQENVbnR5cGVkQXJyYXlAQFFFQUFLSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDVW50eXBlZEFycmF5OjpHZXRMZW5ndGhCeVR5cGUoY2xhc3MgQ1R5cGUpIF9fcHRyNjQNCis/R2V0TGVuZ3RoQnlUeXBlQENVbnR5cGVkQXJyYXlAQFFFQUFLVkNUeXBlQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENCYXNpY1F1YWxpZmllclNldDo6R2V0TGVuZ3RoRnJvbURhdGEodW5zaWduZWQgY2hhciAqIF9fcHRyNjQpDQorP0dldExlbmd0aEZyb21EYXRhQENCYXNpY1F1YWxpZmllclNldEBAU0FLUEVBRUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpHZXRMaW1pdGVkVmVyc2lvbihjbGFzcyBDTGltaXRhdGlvbk1hcHBpbmcgKiBfX3B0cjY0LGNsYXNzIENXYmVtQ2xhc3MgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRMaW1pdGVkVmVyc2lvbkBDV2JlbUNsYXNzQEBRRUFBSlBFQVZDTGltaXRhdGlvbk1hcHBpbmdAQFBFQVBFQVYxQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpHZXRMaW1pdGVkVmVyc2lvbihjbGFzcyBDTGltaXRhdGlvbk1hcHBpbmcgKiBfX3B0cjY0LGNsYXNzIENXYmVtSW5zdGFuY2UgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRMaW1pdGVkVmVyc2lvbkBDV2JlbUluc3RhbmNlQEBRRUFBSlBFQVZDTGltaXRhdGlvbk1hcHBpbmdAQFBFQVBFQVYxQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbUd1aWRUb0NsYXNzTWFwOjpHZXRNYXAoY2xhc3MgQ0dVSUQgJiBfX3B0cjY0LGNsYXNzIENXYmVtQ2xhc3NUb0lkTWFwICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TWFwQENXYmVtR3VpZFRvQ2xhc3NNYXBAQFFFQUFKQUVBVkNHVUlEQEBQRUFQRUFWQ1diZW1DbGFzc1RvSWRNYXBAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ0xpbWl0YXRpb25NYXBwaW5nOjpHZXRNYXBwZWQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/R2V0TWFwcGVkQENMaW1pdGF0aW9uTWFwcGluZ0BAUUVBQUdHQFoNCis7IHB1YmxpYzogY2xhc3MgQ1Byb3BlcnR5SW5mb3JtYXRpb24gKiBfX3B0cjY0IF9fY2RlY2wgQ0xpbWl0YXRpb25NYXBwaW5nOjpHZXRNYXBwZWQoY2xhc3MgQ1Byb3BlcnR5SW5mb3JtYXRpb24gKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE1hcHBlZEBDTGltaXRhdGlvbk1hcHBpbmdAQFFFQUFQRUFWQ1Byb3BlcnR5SW5mb3JtYXRpb25AQFBFQVYyQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbUVudW1NYXJzaGFsaW5nOjpHZXRNYXJzaGFsUGFja2V0KHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRNYXJzaGFsUGFja2V0QENXYmVtRW51bU1hcnNoYWxpbmdAQFFFQUFKQUVCVV9HVUlEQEBLUEVBUEVBVUlXYmVtQ2xhc3NPYmplY3RAQFBFQUtQRUFQRUFFQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1FbnVtTWFyc2hhbGluZzo6WEVudW1NYXJzaGFsaW5nOjpHZXRNYXJzaGFsUGFja2V0KHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRNYXJzaGFsUGFja2V0QFhFbnVtTWFyc2hhbGluZ0BDV2JlbUVudW1NYXJzaGFsaW5nQEBVRUFBSkFFQlVfR1VJREBAS1BFQVBFQVVJV2JlbUNsYXNzT2JqZWN0QEBQRUFLUEVBUEVBRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpHZXRNYXJzaGFsU2l6ZU1heChzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRNYXJzaGFsU2l6ZU1heEBDV2JlbU9iamVjdEBAVUVBQUpBRUJVX0dVSURAQFBFQVhLMUtQRUFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0TWF4TWFyc2hhbFN0cmVhbVNpemUodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TWF4TWFyc2hhbFN0cmVhbVNpemVAQ1diZW1JbnN0YW5jZUBAVUVBQUpQRUFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkdldE1heE1hcnNoYWxTdHJlYW1TaXplKHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE1heE1hcnNoYWxTdHJlYW1TaXplQENXYmVtT2JqZWN0QEBVRUFBSlBFQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0NsYXNzUGFydDo6R2V0TWVtb3J5TGltaXQodm9pZCkgX19wdHI2NA0KKz9HZXRNZW1vcnlMaW1pdEBDQ2xhc3NQYXJ0QEBVRUFBUEVBRVhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDSW5zdGFuY2VQYXJ0OjpHZXRNZW1vcnlMaW1pdCh2b2lkKSBfX3B0cjY0DQorP0dldE1lbW9yeUxpbWl0QENJbnN0YW5jZVBhcnRAQFVFQUFQRUFFWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENNZXRob2RQYXJ0OjpHZXRNZW1vcnlMaW1pdCh2b2lkKSBfX3B0cjY0DQorP0dldE1lbW9yeUxpbWl0QENNZXRob2RQYXJ0QEBVRUFBUEVBRVhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0aG9kUGFydDo6R2V0TWV0aG9kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nLGNsYXNzIENXYmVtT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQsY2xhc3MgQ1diZW1PYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRNZXRob2RAQ01ldGhvZFBhcnRAQFFFQUFKUEVCR0pQRUFQRUFWQ1diZW1PYmplY3RAQDFAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpHZXRNZXRob2QodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE1ldGhvZEBDV2JlbUNsYXNzQEBVRUFBSlBFQkdKUEVBUEVBVUlXYmVtQ2xhc3NPYmplY3RAQDFAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpHZXRNZXRob2QodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE1ldGhvZEBDV2JlbUluc3RhbmNlQEBVRUFBSlBFQkdKUEVBUEVBVUlXYmVtQ2xhc3NPYmplY3RAQDFAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGhvZFBhcnQ6OkdldE1ldGhvZEF0KGludCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0LGNsYXNzIENXYmVtT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQsY2xhc3MgQ1diZW1PYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRNZXRob2RBdEBDTWV0aG9kUGFydEBAUUVBQUpIUEVBUEVBR1BFQVBFQVZDV2JlbU9iamVjdEBAMUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0aG9kUGFydDo6R2V0TWV0aG9kT3JpZ2luKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRNZXRob2RPcmlnaW5AQ01ldGhvZFBhcnRAQFFFQUFKUEVCR1BFQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpHZXRNZXRob2RPcmlnaW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TWV0aG9kT3JpZ2luQENXYmVtQ2xhc3NAQFVFQUFKUEVCR1BFQVBFQUdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpHZXRNZXRob2RPcmlnaW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TWV0aG9kT3JpZ2luQENXYmVtSW5zdGFuY2VAQFVFQUFKUEVCR1BFQVBFQUdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0TWV0aG9kUXVhbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcsdW5zaWduZWQgbG9uZyxsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRNZXRob2RRdWFsQENXYmVtT2JqZWN0QEBVRUFBSlBFQkcwSktQRUFKUEVBSzJQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6R2V0TWV0aG9kUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQsY2xhc3MgQ1R5cGVkVmFsdWUgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXRNZXRob2RRdWFsaWZpZXJAQ1diZW1DbGFzc0BAVUVBQUpQRUJHMFBFQUpQRUFWQ1R5cGVkVmFsdWVAQFBFQVBFQVZDRmFzdEhlYXBAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpHZXRNZXRob2RRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDVmFyICogX19wdHI2NCxsb25nICogX19wdHI2NCxsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRNZXRob2RRdWFsaWZpZXJAQ1diZW1DbGFzc0BAVUVBQUpQRUJHMFBFQVZDVmFyQEBQRUFKMkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkdldE1ldGhvZFF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0LGNsYXNzIENUeXBlZFZhbHVlICogX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0TWV0aG9kUXVhbGlmaWVyQENXYmVtSW5zdGFuY2VAQFVFQUFKUEVCRzBQRUFKUEVBVkNUeXBlZFZhbHVlQEBQRUFQRUFWQ0Zhc3RIZWFwQEBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0TWV0aG9kUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1ZhciAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TWV0aG9kUXVhbGlmaWVyQENXYmVtSW5zdGFuY2VAQFVFQUFKUEVCRzBQRUFWQ1ZhckBAUEVBSjJAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGhvZFBhcnQ6OkdldE1ldGhvZFF1YWxpZmllclNldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IElXYmVtUXVhbGlmaWVyU2V0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TWV0aG9kUXVhbGlmaWVyU2V0QENNZXRob2RQYXJ0QEBRRUFBSlBFQkdQRUFQRUFVSVdiZW1RdWFsaWZpZXJTZXRAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkdldE1ldGhvZFF1YWxpZmllclNldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IElXYmVtUXVhbGlmaWVyU2V0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TWV0aG9kUXVhbGlmaWVyU2V0QENXYmVtQ2xhc3NAQFVFQUFKUEVCR1BFQVBFQVVJV2JlbVF1YWxpZmllclNldEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0TWV0aG9kUXVhbGlmaWVyU2V0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1RdWFsaWZpZXJTZXQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRNZXRob2RRdWFsaWZpZXJTZXRAQ1diZW1JbnN0YW5jZUBAVUVBQUpQRUJHUEVBUEVBVUlXYmVtUXVhbGlmaWVyU2V0QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1diZW1EYXRhUGFja2V0OjpHZXRNaW5IZWFkZXJTaXplKHZvaWQpIF9fcHRyNjQNCis/R2V0TWluSGVhZGVyU2l6ZUBDV2JlbURhdGFQYWNrZXRAQFFFQUFLWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OkdldE1pbkxlbmd0aCh2b2lkKQ0KKz9HZXRNaW5MZW5ndGhAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBTQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENDbGFzc0FuZE1ldGhvZHM6OkdldE1pbkxlbmd0aCh2b2lkKQ0KKz9HZXRNaW5MZW5ndGhAQ0NsYXNzQW5kTWV0aG9kc0BAU0FLWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENDbGFzc1BhcnQ6OkdldE1pbkxlbmd0aCh2b2lkKQ0KKz9HZXRNaW5MZW5ndGhAQ0NsYXNzUGFydEBAU0FIWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRGF0YVRhYmxlOjpHZXRNaW5MZW5ndGgodm9pZCkNCis/R2V0TWluTGVuZ3RoQENEYXRhVGFibGVAQFNBS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0RlY29yYXRpb25QYXJ0OjpHZXRNaW5MZW5ndGgodm9pZCkNCis/R2V0TWluTGVuZ3RoQENEZWNvcmF0aW9uUGFydEBAU0FLWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRmFzdEhlYXA6OkdldE1pbkxlbmd0aCh2b2lkKQ0KKz9HZXRNaW5MZW5ndGhAQ0Zhc3RIZWFwQEBTQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENNZXRob2RQYXJ0OjpHZXRNaW5MZW5ndGgodm9pZCkNCis/R2V0TWluTGVuZ3RoQENNZXRob2RQYXJ0QEBTQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENQcm9wZXJ0eUxvb2t1cFRhYmxlOjpHZXRNaW5MZW5ndGgodm9pZCkNCis/R2V0TWluTGVuZ3RoQENQcm9wZXJ0eUxvb2t1cFRhYmxlQEBTQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkdldE1pbkxlbmd0aCh2b2lkKQ0KKz9HZXRNaW5MZW5ndGhAQ1diZW1DbGFzc0BAU0FLWFoNCis7IHByb3RlY3RlZDogY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgKiBfX3B0cjY0IF9fY2RlY2wgQ01ldGhvZFBhcnQ6OkdldE5hbWUoaW50KSBfX3B0cjY0DQorP0dldE5hbWVAQ01ldGhvZFBhcnRAQElFQUFQRUFWQ0NvbXByZXNzZWRTdHJpbmdAQEhAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1N5c3RlbVByb3BlcnRpZXM6OkdldE5hbWVBc0JTVFIoaW50KQ0KKz9HZXROYW1lQXNCU1RSQENTeXN0ZW1Qcm9wZXJ0aWVzQEBTQVBFQUdIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1F1YWxpZmllclNldDo6R2V0TmFtZXMobG9uZyxzdHJ1Y3QgdGFnU0FGRUFSUkFZICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TmFtZXNAQ1F1YWxpZmllclNldEBAVUVBQUpKUEVBUEVBVXRhZ1NBRkVBUlJBWUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkdldE5hbWVzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nLHN0cnVjdCB0YWdWQVJJQU5UICogX19wdHI2NCxzdHJ1Y3QgdGFnU0FGRUFSUkFZICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TmFtZXNAQ1diZW1PYmplY3RAQFVFQUFKUEVCR0pQRUFVdGFnVkFSSUFOVEBAUEVBUEVBVXRhZ1NBRkVBUlJBWUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpHZXROYW1lc3BhY2UoY2xhc3MgQ1ZhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TmFtZXNwYWNlQENXYmVtT2JqZWN0QEBRRUFBSlBFQVZDVmFyQEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqIF9fcHRyNjQgX19jZGVjbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6OkdldE5leHQoY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE5leHRAQ0NvbXByZXNzZWRTdHJpbmdMaXN0QEBRRUFBUEVBVkNDb21wcmVzc2VkU3RyaW5nQEBQRUFWMkBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0Tm9uc3lzdGVtUHJvcGVydHlWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1ZhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0Tm9uc3lzdGVtUHJvcGVydHlWYWx1ZUBDV2JlbUluc3RhbmNlQEBRRUFBSlBFQkdQRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkdldE5vcm1hbGl6ZWRQYXRoKGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXROb3JtYWxpemVkUGF0aEBDV2JlbU9iamVjdEBAVUVBQUpKUEVBUEVBR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRGF0YVRhYmxlOjpHZXROdWxsbmVzc0xlbmd0aCh2b2lkKSBfX3B0cjY0DQorP0dldE51bGxuZXNzTGVuZ3RoQENEYXRhVGFibGVAQFFFQUFLWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENTeXN0ZW1Qcm9wZXJ0aWVzOjpHZXROdW1EZWNvcmF0aW9uSW5kZXBlbmRlbnRQcm9wZXJ0aWVzKHZvaWQpDQorP0dldE51bURlY29yYXRpb25JbmRlcGVuZGVudFByb3BlcnRpZXNAQ1N5c3RlbVByb3BlcnRpZXNAQFNBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENVbnR5cGVkQXJyYXk6OkdldE51bUVsZW1lbnRzKHZvaWQpIF9fcHRyNjQNCis/R2V0TnVtRWxlbWVudHNAQ1VudHlwZWRBcnJheUBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTGltaXRhdGlvbk1hcHBpbmc6OkdldE51bU1hcHBpbmdzKHZvaWQpIF9fcHRyNjQNCis/R2V0TnVtTWFwcGluZ3NAQ0xpbWl0YXRpb25NYXBwaW5nQEBRRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENNZXRob2RQYXJ0OjpHZXROdW1NZXRob2RzKHZvaWQpIF9fcHRyNjQNCis/R2V0TnVtTWV0aG9kc0BDTWV0aG9kUGFydEBASUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0TnVtUGFyZW50cyh2b2lkKSBfX3B0cjY0DQorP0dldE51bVBhcmVudHNAQ1diZW1PYmplY3RAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Byb3BlcnR5TG9va3VwVGFibGU6OkdldE51bVByb3BlcnRpZXModm9pZCkgX19wdHI2NA0KKz9HZXROdW1Qcm9wZXJ0aWVzQENQcm9wZXJ0eUxvb2t1cFRhYmxlQEBRRUFBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ1diZW1DbGFzczo6R2V0TnVtUHJvcGVydGllcyh2b2lkKSBfX3B0cjY0DQorP0dldE51bVByb3BlcnRpZXNAQ1diZW1DbGFzc0BAVUVBQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkdldE51bVByb3BlcnRpZXModm9pZCkgX19wdHI2NA0KKz9HZXROdW1Qcm9wZXJ0aWVzQENXYmVtSW5zdGFuY2VAQFVFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1F1YWxpZmllclNldExpc3Q6OkdldE51bVNldHModm9pZCkgX19wdHI2NA0KKz9HZXROdW1TZXRzQENRdWFsaWZpZXJTZXRMaXN0QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nTGlzdDo6R2V0TnVtU3RyaW5ncyh2b2lkKSBfX3B0cjY0DQorP0dldE51bVN0cmluZ3NAQ0NvbXByZXNzZWRTdHJpbmdMaXN0QEBRRUFBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDU3lzdGVtUHJvcGVydGllczo6R2V0TnVtU3lzdGVtUHJvcGVydGllcyh2b2lkKQ0KKz9HZXROdW1TeXN0ZW1Qcm9wZXJ0aWVzQENTeXN0ZW1Qcm9wZXJ0aWVzQEBTQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OkdldE51bVVwcGVyQm91bmQodm9pZCkgX19wdHI2NA0KKz9HZXROdW1VcHBlckJvdW5kQENCYXNpY1F1YWxpZmllclNldEBAUUVBQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0T2JqUXVhbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyx1bnNpZ25lZCBsb25nLGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE9ialF1YWxAQ1diZW1PYmplY3RAQFVFQUFKUEVCR0pLUEVBSlBFQUsyUEVBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpHZXRPYmplY3RNZW1vcnkodm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRPYmplY3RNZW1vcnlAQ1diZW1PYmplY3RAQFVFQUFKUEVBWEtQRUFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6R2V0T2JqZWN0UGFydHModm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE9iamVjdFBhcnRzQENXYmVtQ2xhc3NAQFVFQUFKUEVBWEtLUEVBS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkdldE9iamVjdFBhcnRzKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRPYmplY3RQYXJ0c0BDV2JlbUluc3RhbmNlQEBVRUFBSlBFQVhLS1BFQUtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0luc3RhbmNlUGFydDo6R2V0T2JqZWN0UXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDVmFyICogX19wdHI2NCxsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRPYmplY3RRdWFsaWZpZXJAQ0luc3RhbmNlUGFydEBAUUVBQUpQRUJHUEVBVkNWYXJAQFBFQUpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpHZXRPYmplY3RUZXh0KGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRPYmplY3RUZXh0QENXYmVtQ2xhc3NAQFVFQUFKSlBFQVBFQUdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpHZXRPYmplY3RUZXh0KGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRPYmplY3RUZXh0QENXYmVtSW5zdGFuY2VAQFVFQUFKSlBFQVBFQUdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1DbGFzc0NhY2hlOjpHZXRPYmplY3RXKHN0cnVjdCBfR1VJRCAmIF9fcHRyNjQsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRPYmplY3RXQENXYmVtQ2xhc3NDYWNoZUBAUUVBQUpBRUFVX0dVSURAQFBFQVBFQVVJV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHVibGljOiBjbGFzcyBDVW50eXBlZFZhbHVlICogX19wdHI2NCBfX2NkZWNsIENEYXRhVGFibGU6OkdldE9mZnNldCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldE9mZnNldEBDRGF0YVRhYmxlQEBRRUFBUEVBVkNVbnR5cGVkVmFsdWVAQEtAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0UGFyZW50QXRJbmRleChpbnQpIF9fcHRyNjQNCis/R2V0UGFyZW50QXRJbmRleEBDV2JlbU9iamVjdEBAUUVBQVBFQVZDQ29tcHJlc3NlZFN0cmluZ0BASEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkdldFBhcmVudENsYXNzRnJvbUJsb2IobG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UGFyZW50Q2xhc3NGcm9tQmxvYkBDV2JlbUNsYXNzQEBVRUFBSkpLUEVBWFBFQVBFQUdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0UGFyZW50Q2xhc3NGcm9tQmxvYihsb25nLHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQYXJlbnRDbGFzc0Zyb21CbG9iQENXYmVtT2JqZWN0QEBVRUFBSkpLUEVBWFBFQVBFQUdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkdldFBhdGgoY2xhc3MgQ1ZhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UGF0aEBDV2JlbU9iamVjdEBAUUVBQUpQRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIENVbnR5cGVkQXJyYXkgKiBfX3B0cjY0IF9fY2RlY2wgQ1VudHlwZWRBcnJheTo6R2V0UG9pbnRlcihjbGFzcyBDUHRyU291cmNlICogX19wdHI2NCkNCis/R2V0UG9pbnRlckBDVW50eXBlZEFycmF5QEBTQVBFQVYxQFBFQVZDUHRyU291cmNlQEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqIF9fcHRyNjQgX19jZGVjbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6OkdldFByZXZpb3VzKGNsYXNzIENDb21wcmVzc2VkU3RyaW5nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQcmV2aW91c0BDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQFFFQUFQRUFWQ0NvbXByZXNzZWRTdHJpbmdAQFBFQVYyQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpHZXRQcm9wQWRkckJ5SGFuZGxlKGxvbmcsbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcEFkZHJCeUhhbmRsZUBDV2JlbU9iamVjdEBAVUVBQUpKSlBFQUtQRUFQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6R2V0UHJvcE5hbWUoaW50LGNsYXNzIENWYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFByb3BOYW1lQENXYmVtQ2xhc3NAQFVFQUFKSFBFQVZDVmFyQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpHZXRQcm9wTmFtZShpbnQsY2xhc3MgQ1ZhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcE5hbWVAQ1diZW1JbnN0YW5jZUBAVUVBQUpIUEVBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpHZXRQcm9wUXVhbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcsdW5zaWduZWQgbG9uZyxsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQcm9wUXVhbEBDV2JlbU9iamVjdEBAVUVBQUpQRUJHMEpLUEVBSlBFQUsyUEVBWEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQ2xhc3NQYXJ0OjpHZXRQcm9wUXVhbGlmaWVyKGNsYXNzIENQcm9wZXJ0eUluZm9ybWF0aW9uICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1ZhciAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcFF1YWxpZmllckBDQ2xhc3NQYXJ0QEBRRUFBSlBFQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBAUEVCR1BFQVZDVmFyQEBQRUFKM0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQ2xhc3NQYXJ0OjpHZXRQcm9wUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQsY2xhc3MgQ1R5cGVkVmFsdWUgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXRQcm9wUXVhbGlmaWVyQENDbGFzc1BhcnRAQFFFQUFKUEVCRzBQRUFKUEVBVkNUeXBlZFZhbHVlQEBQRUFQRUFWQ0Zhc3RIZWFwQEBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6R2V0UHJvcFF1YWxpZmllcihjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0LGNsYXNzIENUeXBlZFZhbHVlICogX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0UHJvcFF1YWxpZmllckBDV2JlbUNsYXNzQEBVRUFBSlBFQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBAUEVCR1BFQUpQRUFWQ1R5cGVkVmFsdWVAQFBFQVBFQVZDRmFzdEhlYXBAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpHZXRQcm9wUXVhbGlmaWVyKGNsYXNzIENQcm9wZXJ0eUluZm9ybWF0aW9uICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1ZhciAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcFF1YWxpZmllckBDV2JlbUNsYXNzQEBVRUFBSlBFQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBAUEVCR1BFQVZDVmFyQEBQRUFKM0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkdldFByb3BRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nICogX19wdHI2NCxjbGFzcyBDVHlwZWRWYWx1ZSAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldFByb3BRdWFsaWZpZXJAQ1diZW1DbGFzc0BAVUVBQUpQRUJHMFBFQUpQRUFWQ1R5cGVkVmFsdWVAQFBFQVBFQVZDRmFzdEhlYXBAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpHZXRQcm9wUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1ZhciAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcFF1YWxpZmllckBDV2JlbUNsYXNzQEBVRUFBSlBFQkcwUEVBVkNWYXJAQFBFQUoyQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0UHJvcFF1YWxpZmllcihjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0LGNsYXNzIENUeXBlZFZhbHVlICogX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0UHJvcFF1YWxpZmllckBDV2JlbUluc3RhbmNlQEBVRUFBSlBFQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBAUEVCR1BFQUpQRUFWQ1R5cGVkVmFsdWVAQFBFQVBFQVZDRmFzdEhlYXBAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpHZXRQcm9wUXVhbGlmaWVyKGNsYXNzIENQcm9wZXJ0eUluZm9ybWF0aW9uICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1ZhciAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcFF1YWxpZmllckBDV2JlbUluc3RhbmNlQEBVRUFBSlBFQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBAUEVCR1BFQVZDVmFyQEBQRUFKM0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkdldFByb3BRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nICogX19wdHI2NCxjbGFzcyBDVHlwZWRWYWx1ZSAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldFByb3BRdWFsaWZpZXJAQ1diZW1JbnN0YW5jZUBAVUVBQUpQRUJHMFBFQUpQRUFWQ1R5cGVkVmFsdWVAQFBFQVBFQVZDRmFzdEhlYXBAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpHZXRQcm9wUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1ZhciAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcFF1YWxpZmllckBDV2JlbUluc3RhbmNlQEBVRUFBSlBFQkcwUEVBVkNWYXJAQFBFQUoyQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6R2V0UHJvcGVydHkoY2xhc3MgQ1Byb3BlcnR5SW5mb3JtYXRpb24gKiBfX3B0cjY0LGNsYXNzIENWYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFByb3BlcnR5QENXYmVtQ2xhc3NAQE1FQUFKUEVBVkNQcm9wZXJ0eUluZm9ybWF0aW9uQEBQRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6R2V0UHJvcGVydHkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENWYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFByb3BlcnR5QENXYmVtQ2xhc3NAQFVFQUFKUEVCR1BFQVZDVmFyQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpHZXRQcm9wZXJ0eShjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqIF9fcHRyNjQsY2xhc3MgQ1ZhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcGVydHlAQ1diZW1JbnN0YW5jZUBATUVBQUpQRUFWQ1Byb3BlcnR5SW5mb3JtYXRpb25AQFBFQVZDVmFyQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpHZXRQcm9wZXJ0eSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1ZhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcGVydHlAQ1diZW1JbnN0YW5jZUBAVUVBQUpQRUJHUEVBVkNWYXJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQ2xhc3NQYXJ0OjpHZXRQcm9wZXJ0eUNvdW50KGNsYXNzIENWYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFByb3BlcnR5Q291bnRAQ0NsYXNzUGFydEBAUUVBQUpQRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6R2V0UHJvcGVydHlDb3VudChjbGFzcyBDVmFyICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQcm9wZXJ0eUNvdW50QENXYmVtQ2xhc3NAQFVFQUFKUEVBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkdldFByb3BlcnR5Q291bnQoY2xhc3MgQ1ZhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcGVydHlDb3VudEBDV2JlbUluc3RhbmNlQEBVRUFBSlBFQVZDVmFyQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0NsYXNzUGFydDo6R2V0UHJvcGVydHlIYW5kbGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFByb3BlcnR5SGFuZGxlQENDbGFzc1BhcnRAQFFFQUFKUEVCR1BFQUoxQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkdldFByb3BlcnR5SGFuZGxlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nICogX19wdHI2NCxsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQcm9wZXJ0eUhhbmRsZUBDV2JlbU9iamVjdEBAVUVBQUpQRUJHUEVBSjFAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0NsYXNzUGFydDo6R2V0UHJvcGVydHlIYW5kbGVFeCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcGVydHlIYW5kbGVFeEBDQ2xhc3NQYXJ0QEBRRUFBSlBFQkdQRUFKMUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpHZXRQcm9wZXJ0eUhhbmRsZUV4KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nLGxvbmcgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFByb3BlcnR5SGFuZGxlRXhAQ1diZW1PYmplY3RAQFVFQUFKUEVCR0pQRUFKMUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0UHJvcGVydHlJbmRleCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQcm9wZXJ0eUluZGV4QENXYmVtT2JqZWN0QEBRRUFBSlBFQkdQRUFIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OkdldFByb3BlcnR5SW5mb0J5SGFuZGxlKGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCxsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQcm9wZXJ0eUluZm9CeUhhbmRsZUBDQ2xhc3NQYXJ0QEBRRUFBSkpQRUFQRUFHUEVBSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpHZXRQcm9wZXJ0eUluZm9CeUhhbmRsZShsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcGVydHlJbmZvQnlIYW5kbGVAQ1diZW1PYmplY3RAQFVFQUFKSlBFQVBFQUdQRUFKQFoNCis7IHB1YmxpYzogc3RydWN0IENQcm9wZXJ0eUxvb2t1cCAqIF9fcHRyNjQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpHZXRQcm9wZXJ0eUxvb2t1cChpbnQpIF9fcHRyNjQNCis/R2V0UHJvcGVydHlMb29rdXBAQ0NsYXNzUGFydEBAUUVBQVBFQVVDUHJvcGVydHlMb29rdXBAQEhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkdldFByb3BlcnR5TmFtZUZyb21JbmRleChpbnQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQcm9wZXJ0eU5hbWVGcm9tSW5kZXhAQ1diZW1PYmplY3RAQFFFQUFKSFBFQVBFQUdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0NsYXNzUGFydDo6R2V0UHJvcGVydHlPcmlnaW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcGVydHlPcmlnaW5AQ0NsYXNzUGFydEBAUUVBQUpQRUJHUEVBUEVBR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpHZXRQcm9wZXJ0eU9yaWdpbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQcm9wZXJ0eU9yaWdpbkBDV2JlbU9iamVjdEBAVUVBQUpQRUJHUEVBUEVBR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkdldFByb3BlcnR5UXVhbGlmaWVyU2V0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1RdWFsaWZpZXJTZXQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQcm9wZXJ0eVF1YWxpZmllclNldEBDV2JlbUNsYXNzQEBVRUFBSlBFQkdQRUFQRUFVSVdiZW1RdWFsaWZpZXJTZXRAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkdldFByb3BlcnR5UXVhbGlmaWVyU2V0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1RdWFsaWZpZXJTZXQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQcm9wZXJ0eVF1YWxpZmllclNldEBDV2JlbUluc3RhbmNlQEBVRUFBSlBFQkdQRUFQRUFVSVdiZW1RdWFsaWZpZXJTZXRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0NsYXNzUGFydDo6R2V0UHJvcGVydHlRdWFsaWZpZXJTZXREYXRhKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQcm9wZXJ0eVF1YWxpZmllclNldERhdGFAQ0NsYXNzUGFydEBAUUVBQVBFQUVQRUJHQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgKiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1PYmplY3Q6OkdldFByb3BlcnR5U3RyaW5nKGxvbmcpIF9fcHRyNjQNCis/R2V0UHJvcGVydHlTdHJpbmdAQ1diZW1PYmplY3RAQFFFQUFQRUFWQ0NvbXByZXNzZWRTdHJpbmdAQEpAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0NsYXNzUGFydDo6R2V0UHJvcGVydHlUeXBlKGNsYXNzIENQcm9wZXJ0eUluZm9ybWF0aW9uICogX19wdHI2NCxsb25nICogX19wdHI2NCxsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQcm9wZXJ0eVR5cGVAQ0NsYXNzUGFydEBAUUVBQUpQRUFWQ1Byb3BlcnR5SW5mb3JtYXRpb25AQFBFQUoxQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OkdldFByb3BlcnR5VHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcGVydHlUeXBlQENDbGFzc1BhcnRAQFFFQUFKUEVCR1BFQUoxQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDU3lzdGVtUHJvcGVydGllczo6R2V0UHJvcGVydHlUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nICogX19wdHI2NCxsb25nICogX19wdHI2NCkNCis/R2V0UHJvcGVydHlUeXBlQENTeXN0ZW1Qcm9wZXJ0aWVzQEBTQUpQRUJHUEVBSjFAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpHZXRQcm9wZXJ0eVR5cGUoY2xhc3MgQ1Byb3BlcnR5SW5mb3JtYXRpb24gKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFByb3BlcnR5VHlwZUBDV2JlbUNsYXNzQEBVRUFBSlBFQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBAUEVBSjFAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpHZXRQcm9wZXJ0eVR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFByb3BlcnR5VHlwZUBDV2JlbUNsYXNzQEBVRUFBSlBFQkdQRUFKMUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkdldFByb3BlcnR5VHlwZShjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcGVydHlUeXBlQENXYmVtSW5zdGFuY2VAQFVFQUFKUEVBVkNQcm9wZXJ0eUluZm9ybWF0aW9uQEBQRUFKMUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkdldFByb3BlcnR5VHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcGVydHlUeXBlQENXYmVtSW5zdGFuY2VAQFVFQUFKUEVCR1BFQUoxQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkdldFByb3BlcnR5VmFsdWUoc3RydWN0IF90YWdfV2JlbVByb3BlcnR5TmFtZSAqIF9fcHRyNjQsbG9uZyx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCB0YWdWQVJJQU5UICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQcm9wZXJ0eVZhbHVlQENXYmVtT2JqZWN0QEBVRUFBSlBFQVVfdGFnX1diZW1Qcm9wZXJ0eU5hbWVAQEpQRUFQRUFHUEVBVXRhZ1ZBUklBTlRAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQ2xhc3NQYXJ0OjpHZXRRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENWYXIgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFF1YWxpZmllckBDQ2xhc3NQYXJ0QEBRRUFBSlBFQkdQRUFWQ1ZhckBAUEVBSjJAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0luc3RhbmNlUGFydDo6R2V0UXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nICogX19wdHI2NCxjbGFzcyBDVHlwZWRWYWx1ZSAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldFF1YWxpZmllckBDSW5zdGFuY2VQYXJ0QEBRRUFBSlBFQkdQRUFKUEVBVkNUeXBlZFZhbHVlQEBQRUFQRUFWQ0Zhc3RIZWFwQEBIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OkdldFF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1ZhciAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UXVhbGlmaWVyQENJbnN0YW5jZVBhcnRAQFFFQUFKUEVCR1BFQVZDVmFyQEBQRUFKMkBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDUXVhbGlmaWVyU2V0OjpHZXRRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0LGNsYXNzIENUeXBlZFZhbHVlICogX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0UXVhbGlmaWVyQENRdWFsaWZpZXJTZXRAQFFFQUFKUEVCR1BFQUpQRUFWQ1R5cGVkVmFsdWVAQFBFQVBFQVZDRmFzdEhlYXBAQEhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1F1YWxpZmllclNldDo6R2V0UXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDVmFyICogX19wdHI2NCxsb25nICogX19wdHI2NCxsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRRdWFsaWZpZXJAQ1F1YWxpZmllclNldEBAUUVBQUpQRUJHUEVBVkNWYXJAQFBFQUoyQFoNCis7IHB1YmxpYzogc3RydWN0IENRdWFsaWZpZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1F1YWxpZmllclNldDo6R2V0UXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRRdWFsaWZpZXJAQ1F1YWxpZmllclNldEBAUUVBQVBFQVVDUXVhbGlmaWVyQEBQRUJHQFoNCis7IHB1YmxpYzogc3RydWN0IENRdWFsaWZpZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1F1YWxpZmllclNldDo6R2V0UXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFF1YWxpZmllckBDUXVhbGlmaWVyU2V0QEBRRUFBUEVBVUNRdWFsaWZpZXJAQFBFQkdBRUFIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6R2V0UXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nICogX19wdHI2NCxjbGFzcyBDVHlwZWRWYWx1ZSAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldFF1YWxpZmllckBDV2JlbUNsYXNzQEBVRUFBSlBFQkdQRUFKUEVBVkNUeXBlZFZhbHVlQEBQRUFQRUFWQ0Zhc3RIZWFwQEBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6R2V0UXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDVmFyICogX19wdHI2NCxsb25nICogX19wdHI2NCxsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRRdWFsaWZpZXJAQ1diZW1DbGFzc0BAVUVBQUpQRUJHUEVBVkNWYXJAQFBFQUoyQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0UXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nICogX19wdHI2NCxjbGFzcyBDVHlwZWRWYWx1ZSAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldFF1YWxpZmllckBDV2JlbUluc3RhbmNlQEBVRUFBSlBFQkdQRUFKUEVBVkNUeXBlZFZhbHVlQEBQRUFQRUFWQ0Zhc3RIZWFwQEBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0UXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDVmFyICogX19wdHI2NCxsb25nICogX19wdHI2NCxsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRRdWFsaWZpZXJAQ1diZW1JbnN0YW5jZUBAVUVBQUpQRUJHUEVBVkNWYXJAQFBFQUoyQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpHZXRRdWFsaWZpZXJBcnJheUluZm8odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQsbG9uZyxsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRRdWFsaWZpZXJBcnJheUluZm9AQ1diZW1PYmplY3RAQFFFQUFKUEVCRzBISlBFQUpQRUFLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpHZXRRdWFsaWZpZXJBcnJheVJhbmdlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50LGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UXVhbGlmaWVyQXJyYXlSYW5nZUBDV2JlbU9iamVjdEBAUUVBQUpQRUJHMEhKS0tLUEVBSzFQRUFYQFoNCis7IHB1YmxpYzogc3RydWN0IENRdWFsaWZpZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpHZXRRdWFsaWZpZXJMb2NhbGx5KGNsYXNzIENDb21wcmVzc2VkU3RyaW5nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRRdWFsaWZpZXJMb2NhbGx5QENCYXNpY1F1YWxpZmllclNldEBAUUVBQVBFQVVDUXVhbGlmaWVyQEBQRUFWQ0NvbXByZXNzZWRTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBDUXVhbGlmaWVyICogX19wdHI2NCBfX2NkZWNsIENCYXNpY1F1YWxpZmllclNldDo6R2V0UXVhbGlmaWVyTG9jYWxseSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UXVhbGlmaWVyTG9jYWxseUBDQmFzaWNRdWFsaWZpZXJTZXRAQFFFQUFQRUFVQ1F1YWxpZmllckBAUEVCR0BaDQorOyBwdWJsaWM6IHN0cnVjdCBDUXVhbGlmaWVyICogX19wdHI2NCBfX2NkZWNsIENCYXNpY1F1YWxpZmllclNldDo6R2V0UXVhbGlmaWVyTG9jYWxseSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRRdWFsaWZpZXJMb2NhbGx5QENCYXNpY1F1YWxpZmllclNldEBAUUVBQVBFQVVDUXVhbGlmaWVyQEBQRUJHQUVBSEBaDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgQ1F1YWxpZmllciAqIF9fcHRyNjQgX19jZGVjbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OkdldFF1YWxpZmllckxvY2FsbHkodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCxjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqIF9fcHRyNjQpDQorP0dldFF1YWxpZmllckxvY2FsbHlAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBTQVBFQVVDUXVhbGlmaWVyQEBQRUFFUEVBVkNGYXN0SGVhcEBAUEVBVkNDb21wcmVzc2VkU3RyaW5nQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IENRdWFsaWZpZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpHZXRRdWFsaWZpZXJMb2NhbGx5KHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9HZXRRdWFsaWZpZXJMb2NhbGx5QENCYXNpY1F1YWxpZmllclNldEBAU0FQRUFVQ1F1YWxpZmllckBAUEVBRVBFQVZDRmFzdEhlYXBAQFBFQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IENRdWFsaWZpZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpHZXRRdWFsaWZpZXJMb2NhbGx5KHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCAmIF9fcHRyNjQpDQorP0dldFF1YWxpZmllckxvY2FsbHlAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBTQVBFQVVDUXVhbGlmaWVyQEBQRUFFUEVBVkNGYXN0SGVhcEBAUEVCR0FFQUhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpHZXRRdWFsaWZpZXJTZXQoc3RydWN0IElXYmVtUXVhbGlmaWVyU2V0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UXVhbGlmaWVyU2V0QENXYmVtQ2xhc3NAQFVFQUFKUEVBUEVBVUlXYmVtUXVhbGlmaWVyU2V0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpHZXRRdWFsaWZpZXJTZXQoc3RydWN0IElXYmVtUXVhbGlmaWVyU2V0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UXVhbGlmaWVyU2V0QENXYmVtSW5zdGFuY2VAQFVFQUFKUEVBUEVBVUlXYmVtUXVhbGlmaWVyU2V0QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENRdWFsaWZpZXJTZXRMaXN0OjpHZXRRdWFsaWZpZXJTZXREYXRhKGludCkgX19wdHI2NA0KKz9HZXRRdWFsaWZpZXJTZXREYXRhQENRdWFsaWZpZXJTZXRMaXN0QEBRRUFBUEVBRUhAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDUXVhbGlmaWVyU2V0TGlzdDo6R2V0UXVhbGlmaWVyU2V0RGF0YSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCxpbnQpDQorP0dldFF1YWxpZmllclNldERhdGFAQ1F1YWxpZmllclNldExpc3RAQFNBUEVBRVBFQUVIQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OkdldFF1YWxpZmllclNldExpc3RTdGFydCh2b2lkKSBfX3B0cjY0DQorP0dldFF1YWxpZmllclNldExpc3RTdGFydEBDSW5zdGFuY2VQYXJ0QEBVRUFBUEVBRVhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpHZXRRdWFsaWZpZXJTZXRTdGFydCh2b2lkKSBfX3B0cjY0DQorP0dldFF1YWxpZmllclNldFN0YXJ0QENDbGFzc1BhcnRAQFVFQUFQRUFFWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENJbnN0YW5jZVBRU0NvbnRhaW5lcjo6R2V0UXVhbGlmaWVyU2V0U3RhcnQodm9pZCkgX19wdHI2NA0KKz9HZXRRdWFsaWZpZXJTZXRTdGFydEBDSW5zdGFuY2VQUVNDb250YWluZXJAQFVFQUFQRUFFWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OkdldFF1YWxpZmllclNldFN0YXJ0KHZvaWQpIF9fcHRyNjQNCis/R2V0UXVhbGlmaWVyU2V0U3RhcnRAQ0luc3RhbmNlUGFydEBAVUVBQVBFQUVYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lcjo6R2V0UXVhbGlmaWVyU2V0U3RhcnQodm9pZCkgX19wdHI2NA0KKz9HZXRRdWFsaWZpZXJTZXRTdGFydEBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyQEBVRUFBUEVBRVhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1VudHlwZWRBcnJheTo6R2V0UmFuZ2UoY2xhc3MgQ1B0clNvdXJjZSAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpDQorP0dldFJhbmdlQENVbnR5cGVkQXJyYXlAQFNBSlBFQVZDUHRyU291cmNlQEBLS1BFQVZDRmFzdEhlYXBAQEtLS1BFQUtQRUFYQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDQ29tcHJlc3NlZFN0cmluZzo6R2V0UmF3RGF0YSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFJhd0RhdGFAQ0NvbXByZXNzZWRTdHJpbmdAQFFFQkFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENGYXN0SGVhcDo6R2V0UmVhbExlbmd0aCh2b2lkKSBfX3B0cjY0DQorP0dldFJlYWxMZW5ndGhAQ0Zhc3RIZWFwQEBRRUFBS1haDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDV2JlbVJlZnJlc2hpbmdTdmM6OkdldFJlZnJNZ3Ioc3RydWN0IF9JV2JlbVJlZnJlc2hlck1nciAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFJlZnJNZ3JAQ1diZW1SZWZyZXNoaW5nU3ZjQEBJRUFBSlBFQVBFQVVfSVdiZW1SZWZyZXNoZXJNZ3JAQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBDUXVhbGlmaWVyICogX19wdHI2NCBfX2NkZWNsIENCYXNpY1F1YWxpZmllclNldDo6R2V0UmVndWxhclF1YWxpZmllckxvY2FsbHkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFJlZ3VsYXJRdWFsaWZpZXJMb2NhbGx5QENCYXNpY1F1YWxpZmllclNldEBAUUVBQVBFQVVDUXVhbGlmaWVyQEBQRUJHQFoNCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBDUXVhbGlmaWVyICogX19wdHI2NCBfX2NkZWNsIENCYXNpY1F1YWxpZmllclNldDo6R2V0UmVndWxhclF1YWxpZmllckxvY2FsbHkodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0dldFJlZ3VsYXJRdWFsaWZpZXJMb2NhbGx5QENCYXNpY1F1YWxpZmllclNldEBAU0FQRUFVQ1F1YWxpZmllckBAUEVBRVBFQVZDRmFzdEhlYXBAQFBFQkdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENXYmVtQ2xhc3M6OkdldFJlbFBhdGgoaW50KSBfX3B0cjY0DQorP0dldFJlbFBhdGhAQ1diZW1DbGFzc0BAVUVBQVBFQUdIQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpHZXRSZWxQYXRoKGludCkgX19wdHI2NA0KKz9HZXRSZWxQYXRoQENXYmVtSW5zdGFuY2VAQFVFQUFQRUFHSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0UmVsUGF0aChjbGFzcyBDVmFyICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRSZWxQYXRoQENXYmVtT2JqZWN0QEBRRUFBSlBFQVZDVmFyQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVJlZnJlc2hpbmdTdmM6OkdldFJlbW90ZVJlZnJlc2hlcihzdHJ1Y3QgX1dCRU1fUkVGUkVTSEVSX0lEICogX19wdHI2NCxsb25nLHVuc2lnbmVkIGxvbmcsc3RydWN0IElXYmVtUmVtb3RlUmVmcmVzaGVyICogX19wdHI2NCAqIF9fcHRyNjQsc3RydWN0IF9HVUlEICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRSZW1vdGVSZWZyZXNoZXJAQ1diZW1SZWZyZXNoaW5nU3ZjQEBNRUFBSlBFQVVfV0JFTV9SRUZSRVNIRVJfSURAQEpLUEVBUEVBVUlXYmVtUmVtb3RlUmVmcmVzaGVyQEBQRUFVX0dVSURAQFBFQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVJlZnJlc2hpbmdTdmM6OlhXYmVtUmVmclN2Yzo6R2V0UmVtb3RlUmVmcmVzaGVyKHN0cnVjdCBfV0JFTV9SRUZSRVNIRVJfSUQgKiBfX3B0cjY0LGxvbmcsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgSVdiZW1SZW1vdGVSZWZyZXNoZXIgKiBfX3B0cjY0ICogX19wdHI2NCxzdHJ1Y3QgX0dVSUQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFJlbW90ZVJlZnJlc2hlckBYV2JlbVJlZnJTdmNAQ1diZW1SZWZyZXNoaW5nU3ZjQEBVRUFBSlBFQVVfV0JFTV9SRUZSRVNIRVJfSURAQEpLUEVBUEVBVUlXYmVtUmVtb3RlUmVmcmVzaGVyQEBQRUFVX0dVSURAQFBFQUtAWg0KKzsgcHVibGljOiBjbGFzcyBDQmFzaWNRdWFsaWZpZXJTZXQgKiBfX3B0cjY0IF9fY2RlY2wgQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lcjo6R2V0U2Vjb25kYXJ5U2V0KHZvaWQpIF9fcHRyNjQNCis/R2V0U2Vjb25kYXJ5U2V0QENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXJAQFFFQUFQRUFWQ0Jhc2ljUXVhbGlmaWVyU2V0QEBYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nTGlzdDo6R2V0U2VwYXJhdG9yTGVuZ3RoKHZvaWQpDQorP0dldFNlcGFyYXRvckxlbmd0aEBDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQEtBS1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0U2VydmVyKGNsYXNzIENWYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFNlcnZlckBDV2JlbU9iamVjdEBAUUVBQUpQRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpHZXRTZXJ2ZXJBbmROYW1lc3BhY2UoY2xhc3MgQ1ZhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0U2VydmVyQW5kTmFtZXNwYWNlQENXYmVtT2JqZWN0QEBRRUFBSlBFQVZDVmFyQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjpHZXRTZXJ2ZXJQcmluY2lwYWxOYW1lKHZvaWQpIF9fcHRyNjQNCis/R2V0U2VydmVyUHJpbmNpcGFsTmFtZUBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlQEBRRUFBUEVBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTWV0aG9kRGVzY3JpcHRpb246OkdldFNpZyhpbnQpIF9fcHRyNjQNCis/R2V0U2lnQENNZXRob2REZXNjcmlwdGlvbkBAUUVBQUtIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENNZXRob2RQYXJ0OjpHZXRTaWduYXR1cmUoaW50LGludCxjbGFzcyBDV2JlbU9iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFNpZ25hdHVyZUBDTWV0aG9kUGFydEBASUVBQVhISFBFQVBFQVZDV2JlbU9iamVjdEBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT46OkdldFNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTaXplQD8kQ1BvaW50ZXJBcnJheUBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQEBWQ0ZsZXhBcnJheUBAQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+OjpHZXRTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U2l6ZUA/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBAUUVCQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0U291cmNlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0U291cmNlQENXYmVtT2JqZWN0QEBVRUFBSlBFQVBFQUdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENCYXNpY1F1YWxpZmllclNldDo6R2V0U3RhcnQodm9pZCkgX19wdHI2NA0KKz9HZXRTdGFydEBDQmFzaWNRdWFsaWZpZXJTZXRAQFFFQUFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDQ2xhc3NBbmRNZXRob2RzOjpHZXRTdGFydCh2b2lkKSBfX3B0cjY0DQorP0dldFN0YXJ0QENDbGFzc0FuZE1ldGhvZHNAQFFFQUFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpHZXRTdGFydCh2b2lkKSBfX3B0cjY0DQorP0dldFN0YXJ0QENDbGFzc1BhcnRAQFFFQUFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDQ29tcHJlc3NlZFN0cmluZzo6R2V0U3RhcnQodm9pZCkgX19wdHI2NA0KKz9HZXRTdGFydEBDQ29tcHJlc3NlZFN0cmluZ0BAUUVBQVBFQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nTGlzdDo6R2V0U3RhcnQodm9pZCkgX19wdHI2NA0KKz9HZXRTdGFydEBDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQFFFQUFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDRGF0YVRhYmxlOjpHZXRTdGFydCh2b2lkKSBfX3B0cjY0DQorP0dldFN0YXJ0QENEYXRhVGFibGVAQFFFQUFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDRGVjb3JhdGlvblBhcnQ6OkdldFN0YXJ0KHZvaWQpIF9fcHRyNjQNCis/R2V0U3RhcnRAQ0RlY29yYXRpb25QYXJ0QEBRRUFBUEVBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0VtYmVkZGVkT2JqZWN0OjpHZXRTdGFydCh2b2lkKSBfX3B0cjY0DQorP0dldFN0YXJ0QENFbWJlZGRlZE9iamVjdEBAUUVBQVBFQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENGYXN0SGVhcDo6R2V0U3RhcnQodm9pZCkgX19wdHI2NA0KKz9HZXRTdGFydEBDRmFzdEhlYXBAQFFFQUFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDSW5zdGFuY2VQYXJ0OjpHZXRTdGFydCh2b2lkKSBfX3B0cjY0DQorP0dldFN0YXJ0QENJbnN0YW5jZVBhcnRAQFFFQUFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDTWV0aG9kUGFydDo6R2V0U3RhcnQodm9pZCkgX19wdHI2NA0KKz9HZXRTdGFydEBDTWV0aG9kUGFydEBAUUVBQVBFQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENQcm9wZXJ0eUxvb2t1cFRhYmxlOjpHZXRTdGFydCh2b2lkKSBfX3B0cjY0DQorP0dldFN0YXJ0QENQcm9wZXJ0eUxvb2t1cFRhYmxlQEBRRUFBUEVBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1F1YWxpZmllclNldExpc3Q6OkdldFN0YXJ0KHZvaWQpIF9fcHRyNjQNCis/R2V0U3RhcnRAQ1F1YWxpZmllclNldExpc3RAQFFFQUFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpHZXRTdGFydCh2b2lkKSBfX3B0cjY0DQorP0dldFN0YXJ0QENXYmVtSW5zdGFuY2VAQFFFQUFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0U3RhcnQodm9pZCkgX19wdHI2NA0KKz9HZXRTdGFydEBDV2JlbU9iamVjdEBAUUVBQVBFQUVYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ29tcHJlc3NlZFN0cmluZzo6R2V0U3RyaW5nTGVuZ3RoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nTGVuZ3RoQENDb21wcmVzc2VkU3RyaW5nQEBRRUJBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ0NsYXNzQW5kTWV0aG9kczo6R2V0U3VwZXJjbGFzc05hbWUoY2xhc3MgV1N0cmluZyAmIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQpDQorP0dldFN1cGVyY2xhc3NOYW1lQENDbGFzc0FuZE1ldGhvZHNAQFNBSkFFQVZXU3RyaW5nQEBQRUFFQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OkdldFN1cGVyY2xhc3NOYW1lKGNsYXNzIENWYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFN1cGVyY2xhc3NOYW1lQENDbGFzc1BhcnRAQFFFQUFKUEVBVkNWYXJAQEBaDQorOyBwdWJsaWM6IGNsYXNzIENDb21wcmVzc2VkU3RyaW5nICogX19wdHI2NCBfX2NkZWNsIENDbGFzc1BhcnQ6OkdldFN1cGVyY2xhc3NOYW1lKHZvaWQpIF9fcHRyNjQNCis/R2V0U3VwZXJjbGFzc05hbWVAQ0NsYXNzUGFydEBAUUVBQVBFQVZDQ29tcHJlc3NlZFN0cmluZ0BAWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6R2V0U3VwZXJjbGFzc05hbWUoY2xhc3MgQ1ZhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0U3VwZXJjbGFzc05hbWVAQ1diZW1DbGFzc0BAVUVBQUpQRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0U3VwZXJjbGFzc05hbWUoY2xhc3MgQ1ZhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0U3VwZXJjbGFzc05hbWVAQ1diZW1JbnN0YW5jZUBAVUVBQUpQRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1R5cGU6OkdldFN5bnRheCh2b2lkKSBfX3B0cjY0DQorP0dldFN5bnRheEBDVHlwZUBAUUVBQVBFQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1R5cGU6OkdldFN5bnRheCh1bnNpZ25lZCBsb25nKQ0KKz9HZXRTeW50YXhAQ1R5cGVAQFNBUEVBR0tAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkdldFN5c3RlbVByb3BlcnR5KGludCxjbGFzcyBDVmFyICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRTeXN0ZW1Qcm9wZXJ0eUBDV2JlbU9iamVjdEBAUUVBQUpIUEVBVkNWYXJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0U3lzdGVtUHJvcGVydHlCeU5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENWYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFN5c3RlbVByb3BlcnR5QnlOYW1lQENXYmVtT2JqZWN0QEBRRUFBSlBFQkdQRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENCYXNpY1F1YWxpZmllclNldDo6R2V0VGV4dChsb25nLGNsYXNzIFdTdHJpbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFRleHRAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBRRUFBSkpBRUFWV1N0cmluZ0BAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OkdldFRleHQodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCxsb25nLGNsYXNzIFdTdHJpbmcgJiBfX3B0cjY0KQ0KKz9HZXRUZXh0QENCYXNpY1F1YWxpZmllclNldEBAU0FKUEVBRVBFQVZDRmFzdEhlYXBAQEpBRUFWV1N0cmluZ0BAQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSW50ZXJuYWxTdHJpbmc6OkdldFRleHQodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRUZXh0QENJbnRlcm5hbFN0cmluZ0BAUUVCQVBFQkRYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV21pT2JqZWN0VGV4dFNyYzo6WE9iamVjdFRleHRTcmM6OkdldFRleHQobG9uZyxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgSVdiZW1Db250ZXh0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFRleHRAWE9iamVjdFRleHRTcmNAQ1dtaU9iamVjdFRleHRTcmNAQFVFQUFKSlBFQVVJV2JlbUNsYXNzT2JqZWN0QEBLUEVBVUlXYmVtQ29udGV4dEBAUEVBUEVBR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2FsbFNlY3VyaXR5OjpHZXRUaHJlYWRTZWN1cml0eShlbnVtIHRhZ19XTUlfVEhSRUFEX1NFQ1VSSVRZX09SSUdJTixzdHJ1Y3QgX0lXbWlUaHJlYWRTZWNIYW5kbGUgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRUaHJlYWRTZWN1cml0eUBDV2JlbUNhbGxTZWN1cml0eUBAVUVBQUpXNHRhZ19XTUlfVEhSRUFEX1NFQ1VSSVRZX09SSUdJTkBAUEVBUEVBVV9JV21pVGhyZWFkU2VjSGFuZGxlQEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlICogX19wdHI2NCBfX2NkZWNsIENXYmVtQ2FsbFNlY3VyaXR5OjpHZXRUaHJlYWRTZWN1cml0eUhhbmRsZSh2b2lkKSBfX3B0cjY0DQorP0dldFRocmVhZFNlY3VyaXR5SGFuZGxlQENXYmVtQ2FsbFNlY3VyaXR5QEBRRUFBUEVBVkNXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6R2V0VGhyZWFkVG9rZW4odm9pZCkgX19wdHI2NA0KKz9HZXRUaHJlYWRUb2tlbkBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlQEBRRUFBUEVBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGU6OkdldFRva2VuKHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRUb2tlbkBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlQEBVRUFBSlBFQVBFQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjpHZXRUb2tlbk9yaWdpbihlbnVtIHRhZ19XTUlfVEhSRUFEX1NFQ1VSSVRZX09SSUdJTiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0VG9rZW5PcmlnaW5AQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZUBAVUVBQUpQRUFXNHRhZ19XTUlfVEhSRUFEX1NFQ1VSSVRZX09SSUdJTkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OkdldFRvdGFsUmVhbExlbmd0aCh2b2lkKSBfX3B0cjY0DQorP0dldFRvdGFsUmVhbExlbmd0aEBDQ2xhc3NQYXJ0QEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSW5zdGFuY2VQYXJ0OjpHZXRUb3RhbFJlYWxMZW5ndGgodm9pZCkgX19wdHI2NA0KKz9HZXRUb3RhbFJlYWxMZW5ndGhAQ0luc3RhbmNlUGFydEBAUUVBQUtYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0VHJhbnNmZXJBcnJheUJsb2IobG9uZyx1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0VHJhbnNmZXJBcnJheUJsb2JAQ1diZW1JbnN0YW5jZUBAUUVBQUpKUEVBUEVBRVBFQUpAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0VHJhbnNmZXJBcnJheUJsb2JTaXplKHZvaWQpIF9fcHRyNjQNCis/R2V0VHJhbnNmZXJBcnJheUJsb2JTaXplQENXYmVtSW5zdGFuY2VAQFFFQUFKWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpHZXRUcmFuc2ZlckFycmF5SGVhZGVyU2l6ZSh2b2lkKQ0KKz9HZXRUcmFuc2ZlckFycmF5SGVhZGVyU2l6ZUBDV2JlbUluc3RhbmNlQEBTQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0VHJhbnNmZXJCbG9iKGxvbmcgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRUcmFuc2ZlckJsb2JAQ1diZW1JbnN0YW5jZUBAUUVBQUpQRUFKMFBFQVBFQUVAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0VHJhbnNmZXJCbG9iU2l6ZSh2b2lkKSBfX3B0cjY0DQorP0dldFRyYW5zZmVyQmxvYlNpemVAQ1diZW1JbnN0YW5jZUBAUUVBQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6R2V0VW5tYXJzaGFsQ2xhc3Moc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCx2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsc3RydWN0IF9HVUlEICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRVbm1hcnNoYWxDbGFzc0BDV2JlbU9iamVjdEBAVUVBQUpBRUJVX0dVSURAQFBFQVhLMUtQRUFVMkBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0Zhc3RIZWFwOjpHZXRVc2VkTGVuZ3RoKHZvaWQpIF9fcHRyNjQNCis/R2V0VXNlZExlbmd0aEBDRmFzdEhlYXBAQFFFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DYWxsU2VjdXJpdHk6OkdldFVzZXIodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFVzZXJAQ1diZW1DYWxsU2VjdXJpdHlAQFVFQUFKUEVBS1BFQUdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjpHZXRVc2VyKHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRVc2VyQENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFVFQUFKUEVBS1BFQUdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNhbGxTZWN1cml0eTo6R2V0VXNlclNpZCh1bnNpZ25lZCBsb25nICogX19wdHI2NCx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRVc2VyU2lkQENXYmVtQ2FsbFNlY3VyaXR5QEBVRUFBSlBFQUtQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6R2V0VXNlclNpZCh1bnNpZ25lZCBsb25nICogX19wdHI2NCx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRVc2VyU2lkQENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFVFQUFKUEVBS1BFQVhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENUeXBlOjpHZXRWQVJUWVBFKHZvaWQpIF9fcHRyNjQNCis/R2V0VkFSVFlQRUBDVHlwZUBAUUVBQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDVHlwZTo6R2V0VkFSVFlQRSh1bnNpZ25lZCBsb25nKQ0KKz9HZXRWQVJUWVBFQENUeXBlQEBTQUdLQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENXYmVtT2JqZWN0OjpHZXRWYWx1ZVRleHQobG9uZyxjbGFzcyBDVmFyICYgX19wdHI2NCx1bnNpZ25lZCBsb25nKQ0KKz9HZXRWYWx1ZVRleHRAQ1diZW1PYmplY3RAQFNBUEVBR0pBRUFWQ1ZhckBAS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTGltaXRhdGlvbk1hcHBpbmc6OkdldFZ0YWJsZUxlbmd0aCh2b2lkKSBfX3B0cjY0DQorP0dldFZ0YWJsZUxlbmd0aEBDTGltaXRhdGlvbk1hcHBpbmdAQFFFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCBzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0IF9fY2RlY2wgQ0NsYXNzQW5kTWV0aG9kczo6R2V0V2JlbU9iamVjdFVua25vd24odm9pZCkgX19wdHI2NA0KKz9HZXRXYmVtT2JqZWN0VW5rbm93bkBDQ2xhc3NBbmRNZXRob2RzQEBVRUFBUEVBVUlVbmtub3duQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpHZXRXYmVtT2JqZWN0VW5rbm93bih2b2lkKSBfX3B0cjY0DQorP0dldFdiZW1PYmplY3RVbmtub3duQENDbGFzc1BhcnRAQFVFQUFQRUFVSVVua25vd25AQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgc3RydWN0IElVbmtub3duICogX19wdHI2NCBfX2NkZWNsIENJbnN0YW5jZVBRU0NvbnRhaW5lcjo6R2V0V2JlbU9iamVjdFVua25vd24odm9pZCkgX19wdHI2NA0KKz9HZXRXYmVtT2JqZWN0VW5rbm93bkBDSW5zdGFuY2VQUVNDb250YWluZXJAQFVFQUFQRUFVSVVua25vd25AQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgc3RydWN0IElVbmtub3duICogX19wdHI2NCBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OkdldFdiZW1PYmplY3RVbmtub3duKHZvaWQpIF9fcHRyNjQNCis/R2V0V2JlbU9iamVjdFVua25vd25AQ0luc3RhbmNlUGFydEBAVUVBQVBFQVVJVW5rbm93bkBAWFoNCis7IHB1YmxpYzogc3RydWN0IElVbmtub3duICogX19wdHI2NCBfX2NkZWNsIENNZXRob2RQYXJ0OjpHZXRXYmVtT2JqZWN0VW5rbm93bih2b2lkKSBfX3B0cjY0DQorP0dldFdiZW1PYmplY3RVbmtub3duQENNZXRob2RQYXJ0QEBRRUFBUEVBVUlVbmtub3duQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQgX19jZGVjbCBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyOjpHZXRXYmVtT2JqZWN0VW5rbm93bih2b2lkKSBfX3B0cjY0DQorP0dldFdiZW1PYmplY3RVbmtub3duQENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXJAQFVFQUFQRUFVSVVua25vd25AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQgX19jZGVjbCBDUXVhbGlmaWVyU2V0TGlzdDo6R2V0V2JlbU9iamVjdFVua25vd24odm9pZCkgX19wdHI2NA0KKz9HZXRXYmVtT2JqZWN0VW5rbm93bkBDUXVhbGlmaWVyU2V0TGlzdEBAUUVBQVBFQVVJVW5rbm93bkBAWFoNCis7IHB1YmxpYzogc3RydWN0IElVbmtub3duICogX19wdHI2NCBfX2NkZWNsIENXYmVtQ2xhc3M6OkdldFdiZW1PYmplY3RVbmtub3duKHZvaWQpIF9fcHRyNjQNCis/R2V0V2JlbU9iamVjdFVua25vd25AQ1diZW1DbGFzc0BAUUVBQVBFQVVJVW5rbm93bkBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6R2V0V2JlbU9iamVjdFVua25vd24odm9pZCkgX19wdHI2NA0KKz9HZXRXYmVtT2JqZWN0VW5rbm93bkBDV2JlbUluc3RhbmNlQEBVRUFBUEVBVUlVbmtub3duQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpIYXNMb2NhbFF1YWxpZmllcnModW5zaWduZWQgY2hhciAqIF9fcHRyNjQpDQorP0hhc0xvY2FsUXVhbGlmaWVyc0BDQmFzaWNRdWFsaWZpZXJTZXRAQFNBSFBFQUVAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV2JlbU9iamVjdDo6SGFzUmVmcyh2b2lkKSBfX3B0cjY0DQorP0hhc1JlZnNAQ1diZW1PYmplY3RAQFFFQUFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DYWxsU2VjdXJpdHk6OkltcGVyc29uYXRlQ2xpZW50KHZvaWQpIF9fcHRyNjQNCis/SW1wZXJzb25hdGVDbGllbnRAQ1diZW1DYWxsU2VjdXJpdHlAQFVFQUFKWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENCYXNpY1F1YWxpZmllclNldDo6SW5jcmVtZW50TGVuZ3RoKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SW5jcmVtZW50TGVuZ3RoQENCYXNpY1F1YWxpZmllclNldEBAUUVBQVhLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NsYXNzUGFydDo6SW5oZXJpdHNGcm9tKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbmhlcml0c0Zyb21AQ0NsYXNzUGFydEBAUUVBQUhQRUJHQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkluaGVyaXRzRnJvbSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5oZXJpdHNGcm9tQENXYmVtT2JqZWN0QEBVRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1GZXRjaFJlZnJNZ3I6OkluaXQoc3RydWN0IF9JV21pUHJvdlNTICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1TZXJ2aWNlcyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdEBDV2JlbUZldGNoUmVmck1nckBAUUVBQUpQRUFVX0lXbWlQcm92U1NAQFBFQVVJV2JlbVNlcnZpY2VzQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUZldGNoUmVmck1ncjo6WEZldGNoUmVmck1ncjo6SW5pdChzdHJ1Y3QgX0lXbWlQcm92U1MgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbVNlcnZpY2VzICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0QFhGZXRjaFJlZnJNZ3JAQ1diZW1GZXRjaFJlZnJNZ3JAQFVFQUFKUEVBVV9JV21pUHJvdlNTQEBQRUFVSVdiZW1TZXJ2aWNlc0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OkluaXRFbXB0eShpbnQsaW50KSBfX3B0cjY0DQorP0luaXRFbXB0eUBDV2JlbUNsYXNzQEBRRUFBSkhIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkluaXRFbXB0eUluc3RhbmNlKGNsYXNzIENDbGFzc1BhcnQgJiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGludCxjbGFzcyBDRGVjb3JhdGlvblBhcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRFbXB0eUluc3RhbmNlQENXYmVtSW5zdGFuY2VAQFFFQUFKQUVBVkNDbGFzc1BhcnRAQFBFQUVIUEVBVkNEZWNvcmF0aW9uUGFydEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OkluaXROZXcoY2xhc3MgQ1diZW1DbGFzcyAqIF9fcHRyNjQsaW50LGNsYXNzIENEZWNvcmF0aW9uUGFydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdE5ld0BDV2JlbUluc3RhbmNlQEBRRUFBSlBFQVZDV2JlbUNsYXNzQEBIUEVBVkNEZWNvcmF0aW9uUGFydEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OkluaXRQcm9wZXJ0eVF1YWxpZmllclNldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0NsYXNzUHJvcGVydHlRdWFsaWZpZXJTZXQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRQcm9wZXJ0eVF1YWxpZmllclNldEBDQ2xhc3NQYXJ0QEBRRUFBSlBFQkdQRUFWQ0NsYXNzUHJvcGVydHlRdWFsaWZpZXJTZXRAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ0tub3duU3RyaW5nVGFibGU6OkluaXRpYWxpemUodm9pZCkNCis/SW5pdGlhbGl6ZUBDS25vd25TdHJpbmdUYWJsZUBAU0FYWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDV2JlbVJlZnJlc2hpbmdTdmM6OkluaXRpYWxpemUodm9pZCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQENXYmVtUmVmcmVzaGluZ1N2Y0BAVUVBQUhYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6SW5pdGlhbGl6ZVByb3BRdWFsaWZpZXJTZXQoY2xhc3MgQ1Byb3BlcnR5SW5mb3JtYXRpb24gKiBfX3B0cjY0LGNsYXNzIENJbnN0YW5jZVByb3BlcnR5UXVhbGlmaWVyU2V0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0aWFsaXplUHJvcFF1YWxpZmllclNldEBDV2JlbUluc3RhbmNlQEBJRUFBSlBFQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBAQUVBVkNJbnN0YW5jZVByb3BlcnR5UXVhbGlmaWVyU2V0QEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6SW5pdGlhbGl6ZVByb3BRdWFsaWZpZXJTZXQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENJbnN0YW5jZVByb3BlcnR5UXVhbGlmaWVyU2V0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0aWFsaXplUHJvcFF1YWxpZmllclNldEBDV2JlbUluc3RhbmNlQEBJRUFBSlBFQkdBRUFWQ0luc3RhbmNlUHJvcGVydHlRdWFsaWZpZXJTZXRAQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5Pjo6SW5zZXJ0QXQoaW50LGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtICogX19wdHI2NCkgX19wdHI2NA0KKz9JbnNlcnRBdEA/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBAUUVBQV9OSFBFQVZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+OjpJbnNlcnRBdChpbnQsY2xhc3MgQ1dtaVRleHRTb3VyY2UgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luc2VydEF0QD8kQ1BvaW50ZXJBcnJheUBWQ1dtaVRleHRTb3VyY2VAQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDV21pVGV4dFNvdXJjZUBAQEBWQ0ZsZXhBcnJheUBAQEBRRUFBX05IUEVBVkNXbWlUZXh0U291cmNlQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1Byb3BlcnR5TG9va3VwVGFibGU6Okluc2VydFByb3BlcnR5KHN0cnVjdCBDUHJvcGVydHlMb29rdXAgY29uc3QgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5zZXJ0UHJvcGVydHlAQ1Byb3BlcnR5TG9va3VwVGFibGVAQFFFQUFKQUVCVUNQcm9wZXJ0eUxvb2t1cEBAQUVBSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDUHJvcGVydHlMb29rdXBUYWJsZTo6SW5zZXJ0UHJvcGVydHkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsaW50ICYgX19wdHI2NCkgX19wdHI2NA0KKz9JbnNlcnRQcm9wZXJ0eUBDUHJvcGVydHlMb29rdXBUYWJsZUBAUUVBQUpQRUJHS0FFQUhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1F1YWxpZmllclNldExpc3Q6Okluc2VydFF1YWxpZmllclNldChpbnQpIF9fcHRyNjQNCis/SW5zZXJ0UXVhbGlmaWVyU2V0QENRdWFsaWZpZXJTZXRMaXN0QEBRRUFBSkhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpJc0Fic3RyYWN0KHZvaWQpIF9fcHRyNjQNCis/SXNBYnN0cmFjdEBDQ2xhc3NQYXJ0QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXYmVtQ2xhc3M6OklzQWJzdHJhY3Qodm9pZCkgX19wdHI2NA0KKz9Jc0Fic3RyYWN0QENXYmVtQ2xhc3NAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NsYXNzUGFydDo6SXNBbWVuZG1lbnQodm9pZCkgX19wdHI2NA0KKz9Jc0FtZW5kbWVudEBDQ2xhc3NQYXJ0QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXYmVtQ2xhc3M6OklzQW1lbmRtZW50KHZvaWQpIF9fcHRyNjQNCis/SXNBbWVuZG1lbnRAQ1diZW1DbGFzc0BAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVHlwZTo6SXNBcnJheSh2b2lkKSBfX3B0cjY0DQorP0lzQXJyYXlAQ1R5cGVAQFFFQUFIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENUeXBlOjpJc0FycmF5KHVuc2lnbmVkIGxvbmcpDQorP0lzQXJyYXlAQ1R5cGVAQFNBSEtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OklzQXJyYXlQcm9wZXJ0eUhhbmRsZShsb25nLGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzQXJyYXlQcm9wZXJ0eUhhbmRsZUBDV2JlbU9iamVjdEBAUUVBQUpKUEVBSlBFQUtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1VudHlwZWRBcnJheTo6SXNBcnJheVZhbGlkKGNsYXNzIENUeXBlLGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNBcnJheVZhbGlkQENVbnR5cGVkQXJyYXlAQFFFQUFKVkNUeXBlQEBQRUFWQ0Zhc3RIZWFwQEBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmc6OklzQXNjaWlhYmxlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/SXNBc2NpaWFibGVAQ0NvbXByZXNzZWRTdHJpbmdAQEtBSFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpJc0Fzc29jaWF0aW9uKHZvaWQpIF9fcHRyNjQNCis/SXNBc3NvY2lhdGlvbkBDQ2xhc3NQYXJ0QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDbGFzc1BhcnQ6OklzQXV0b2Nvb2sodm9pZCkgX19wdHI2NA0KKz9Jc0F1dG9jb29rQENDbGFzc1BhcnRAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1diZW1DbGFzczo6SXNDaGlsZE9mKGNsYXNzIENXYmVtQ2xhc3MgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzQ2hpbGRPZkBDV2JlbUNsYXNzQEBRRUFBSFBFQVYxQEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OklzQ2xhc3NQYXJ0QXZhaWxhYmxlKHZvaWQpIF9fcHRyNjQNCis/SXNDbGFzc1BhcnRBdmFpbGFibGVAQ1diZW1JbnN0YW5jZUBASUVBQUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpJc0NsYXNzUGFydEludGVybmFsKHZvaWQpIF9fcHRyNjQNCis/SXNDbGFzc1BhcnRJbnRlcm5hbEBDV2JlbUluc3RhbmNlQEBJRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OklzQ2xhc3NQYXJ0U2hhcmVkKHZvaWQpIF9fcHRyNjQNCis/SXNDbGFzc1BhcnRTaGFyZWRAQ1diZW1JbnN0YW5jZUBASUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGVjb3JhdGlvblBhcnQ6OklzQ2xpZW50T25seSh2b2lkKSBfX3B0cjY0DQorP0lzQ2xpZW50T25seUBDRGVjb3JhdGlvblBhcnRAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1diZW1PYmplY3Q6OklzQ2xpZW50T25seSh2b2lkKSBfX3B0cjY0DQorP0lzQ2xpZW50T25seUBDV2JlbU9iamVjdEBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUXVhbGlmaWVyU2V0OjpJc0NvbXBsZXRlKHZvaWQpIF9fcHRyNjQNCis/SXNDb21wbGV0ZUBDUXVhbGlmaWVyU2V0QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDbGFzc1BhcnQ6OklzQ29tcHJlc3NlZCh2b2lkKSBfX3B0cjY0DQorP0lzQ29tcHJlc3NlZEBDQ2xhc3NQYXJ0QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXYmVtQ2xhc3M6OklzQ29tcHJlc3NlZCh2b2lkKSBfX3B0cjY0DQorP0lzQ29tcHJlc3NlZEBDV2JlbUNsYXNzQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENEZWNvcmF0aW9uUGFydDo6SXNEZWNvcmF0ZWQodm9pZCkgX19wdHI2NA0KKz9Jc0RlY29yYXRlZEBDRGVjb3JhdGlvblBhcnRAQFFFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6SXNEZWNvcmF0aW9uUGFydEF2YWlsYWJsZSh2b2lkKSBfX3B0cjY0DQorP0lzRGVjb3JhdGlvblBhcnRBdmFpbGFibGVAQ1diZW1JbnN0YW5jZUBASUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGF0YVRhYmxlOjpJc0RlZmF1bHQoaW50KSBfX3B0cjY0DQorP0lzRGVmYXVsdEBDRGF0YVRhYmxlQEBRRUFBSEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpJc0R5bmFtaWModm9pZCkgX19wdHI2NA0KKz9Jc0R5bmFtaWNAQ0NsYXNzUGFydEBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV2JlbUNsYXNzOjpJc0R5bmFtaWModm9pZCkgX19wdHI2NA0KKz9Jc0R5bmFtaWNAQ1diZW1DbGFzc0BAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OklzRW1wdHkodm9pZCkgX19wdHI2NA0KKz9Jc0VtcHR5QENCYXNpY1F1YWxpZmllclNldEBAUUVBQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpJc0VtcHR5KHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KQ0KKz9Jc0VtcHR5QENCYXNpY1F1YWxpZmllclNldEBAU0FIUEVBRUBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nTGlzdDo6SXNFbXB0eSh2b2lkKSBfX3B0cjY0DQorP0lzRW1wdHlAQ0NvbXByZXNzZWRTdHJpbmdMaXN0QEBRRUFBSFhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSW50ZXJuYWxTdHJpbmc6OklzRW1wdHkodm9pZCkgX19wdHI2NA0KKz9Jc0VtcHR5QENJbnRlcm5hbFN0cmluZ0BAUUVBQV9OWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1F1YWxpZmllclNldExpc3Q6OklzRW1wdHkodm9pZCkgX19wdHI2NA0KKz9Jc0VtcHR5QENRdWFsaWZpZXJTZXRMaXN0QEBRRUFBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDRmFzdEhlYXA6OklzRmFrZUFkZHJlc3ModW5zaWduZWQgbG9uZykNCis/SXNGYWtlQWRkcmVzc0BDRmFzdEhlYXBAQFNBSEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpJc0hpUGVyZih2b2lkKSBfX3B0cjY0DQorP0lzSGlQZXJmQENDbGFzc1BhcnRAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NsYXNzUGFydDo6SXNJZGVudGljYWxXaXRoKGNsYXNzIENDbGFzc1BhcnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzSWRlbnRpY2FsV2l0aEBDQ2xhc3NQYXJ0QEBRRUFBSEFFQVYxQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDU3lzdGVtUHJvcGVydGllczo6SXNJbGxlZ2FsRGVyaXZlZENsYXNzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/SXNJbGxlZ2FsRGVyaXZlZENsYXNzQENTeXN0ZW1Qcm9wZXJ0aWVzQEBTQUhQRUJHQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDV2JlbUNhbGxTZWN1cml0eTo6SXNJbXBlcnNvbmF0aW5nKHZvaWQpIF9fcHRyNjQNCis/SXNJbXBlcnNvbmF0aW5nQENXYmVtQ2FsbFNlY3VyaXR5QEBVRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXYmVtQ2xhc3M6OklzSW5kZXhMb2NhbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNJbmRleExvY2FsQENXYmVtQ2xhc3NAQFFFQUFIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENEZWNvcmF0aW9uUGFydDo6SXNJbnN0YW5jZSh2b2lkKSBfX3B0cjY0DQorP0lzSW5zdGFuY2VAQ0RlY29yYXRpb25QYXJ0QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXYmVtT2JqZWN0OjpJc0luc3RhbmNlKHZvaWQpIF9fcHRyNjQNCis/SXNJbnN0YW5jZUBDV2JlbU9iamVjdEBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpJc0luc3RhbmNlT2YoY2xhc3MgQ1diZW1DbGFzcyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNJbnN0YW5jZU9mQENXYmVtSW5zdGFuY2VAQFFFQUFIUEVBVkNXYmVtQ2xhc3NAQEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OklzSW5zdGFuY2VQYXJ0QXZhaWxhYmxlKHZvaWQpIF9fcHRyNjQNCis/SXNJbnN0YW5jZVBhcnRBdmFpbGFibGVAQ1diZW1JbnN0YW5jZUBASUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV2JlbUNsYXNzOjpJc0tleUxvY2FsKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Jc0tleUxvY2FsQENXYmVtQ2xhc3NAQFFFQUFIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDbGFzc1BhcnQ6OklzS2V5ZWQodm9pZCkgX19wdHI2NA0KKz9Jc0tleWVkQENDbGFzc1BhcnRAQFFFQUFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDV2JlbUNsYXNzOjpJc0tleWVkKHZvaWQpIF9fcHRyNjQNCis/SXNLZXllZEBDV2JlbUNsYXNzQEBVRUFBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6SXNLZXllZCh2b2lkKSBfX3B0cjY0DQorP0lzS2V5ZWRAQ1diZW1JbnN0YW5jZUBAVUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGVjb3JhdGlvblBhcnQ6OklzTGltaXRlZCh2b2lkKSBfX3B0cjY0DQorP0lzTGltaXRlZEBDRGVjb3JhdGlvblBhcnRAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1diZW1PYmplY3Q6OklzTGltaXRlZCh2b2lkKSBfX3B0cjY0DQorP0lzTGltaXRlZEBDV2JlbU9iamVjdEBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpJc0xvY2FsaXplZCh2b2lkKSBfX3B0cjY0DQorP0lzTG9jYWxpemVkQENDbGFzc1BhcnRAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0luc3RhbmNlUGFydDo6SXNMb2NhbGl6ZWQodm9pZCkgX19wdHI2NA0KKz9Jc0xvY2FsaXplZEBDSW5zdGFuY2VQYXJ0QEBRRUFBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ1diZW1DbGFzczo6SXNMb2NhbGl6ZWQodm9pZCkgX19wdHI2NA0KKz9Jc0xvY2FsaXplZEBDV2JlbUNsYXNzQEBVRUFBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6SXNMb2NhbGl6ZWQodm9pZCkgX19wdHI2NA0KKz9Jc0xvY2FsaXplZEBDV2JlbUluc3RhbmNlQEBVRUFBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDVHlwZTo6SXNNZW1Db3B5QWJsZSh1bnNpZ25lZCBzaG9ydCxsb25nKQ0KKz9Jc01lbUNvcHlBYmxlQENUeXBlQEBTQUhHSkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENUeXBlOjpJc05vbkFycmF5UG9pbnRlclR5cGUodm9pZCkgX19wdHI2NA0KKz9Jc05vbkFycmF5UG9pbnRlclR5cGVAQ1R5cGVAQFFFQUFIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENUeXBlOjpJc05vbkFycmF5UG9pbnRlclR5cGUodW5zaWduZWQgbG9uZykNCis/SXNOb25BcnJheVBvaW50ZXJUeXBlQENUeXBlQEBTQUhLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RhdGFUYWJsZTo6SXNOdWxsKGludCkgX19wdHI2NA0KKz9Jc051bGxAQ0RhdGFUYWJsZUBAUUVBQUhIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OklzT2JqZWN0SW5zdGFuY2Uodm9pZCkgX19wdHI2NA0KKz9Jc09iamVjdEluc3RhbmNlQENXYmVtT2JqZWN0QEBVRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENGYXN0SGVhcDo6SXNPdXRPZkxpbmUodm9pZCkgX19wdHI2NA0KKz9Jc091dE9mTGluZUBDRmFzdEhlYXBAQElFQUFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6SXNQYXJlbnRDbGFzcyhsb25nLHN0cnVjdCBfSVdtaU9iamVjdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNQYXJlbnRDbGFzc0BDV2JlbUNsYXNzQEBVRUFBSkpQRUFVX0lXbWlPYmplY3RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OklzUGFyZW50Q2xhc3MobG9uZyxzdHJ1Y3QgX0lXbWlPYmplY3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzUGFyZW50Q2xhc3NAQ1diZW1JbnN0YW5jZUBAVUVBQUpKUEVBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVHlwZTo6SXNQYXJlbnRzKHZvaWQpIF9fcHRyNjQNCis/SXNQYXJlbnRzQENUeXBlQEBRRUFBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDVHlwZTo6SXNQYXJlbnRzKHVuc2lnbmVkIGxvbmcpDQorP0lzUGFyZW50c0BDVHlwZUBAU0FIS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENUeXBlOjpJc1BvaW50ZXJUeXBlKHZvaWQpIF9fcHRyNjQNCis/SXNQb2ludGVyVHlwZUBDVHlwZUBAUUVBQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1R5cGU6OklzUG9pbnRlclR5cGUodW5zaWduZWQgbG9uZykNCis/SXNQb2ludGVyVHlwZUBDVHlwZUBAU0FIS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDU3lzdGVtUHJvcGVydGllczo6SXNQb3NzaWJsZVN5c3RlbVByb3BlcnR5TmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0lzUG9zc2libGVTeXN0ZW1Qcm9wZXJ0eU5hbWVAQ1N5c3RlbVByb3BlcnRpZXNAQFNBSFBFQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDTWV0aG9kUGFydDo6SXNQcm9wYWdhdGVkKGludCkgX19wdHI2NA0KKz9Jc1Byb3BhZ2F0ZWRAQ01ldGhvZFBhcnRAQElFQUFISEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDbGFzc1BhcnQ6OklzUHJvcGVydHlJbmRleGVkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Jc1Byb3BlcnR5SW5kZXhlZEBDQ2xhc3NQYXJ0QEBRRUFBSFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpJc1Byb3BlcnR5S2V5ZWQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzUHJvcGVydHlLZXllZEBDQ2xhc3NQYXJ0QEBRRUFBSFBFQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1Jlc2VydmVkV29yZFRhYmxlOjpJc1Jlc2VydmVkV29yZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0lzUmVzZXJ2ZWRXb3JkQENSZXNlcnZlZFdvcmRUYWJsZUBAU0FIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXYmVtT2JqZWN0OjpJc1NhbWVDbGFzcyhjbGFzcyBDV2JlbU9iamVjdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNTYW1lQ2xhc3NAQ1diZW1PYmplY3RAQFFFQUFIUEVBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NsYXNzUGFydDo6SXNTaW5nbGV0b24odm9pZCkgX19wdHI2NA0KKz9Jc1NpbmdsZXRvbkBDQ2xhc3NQYXJ0QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXYmVtQ2xhc3M6OklzU2luZ2xldG9uKHZvaWQpIF9fcHRyNjQNCis/SXNTaW5nbGV0b25AQ1diZW1DbGFzc0BAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVHlwZTo6SXNTdHJpbmdUeXBlKHZvaWQpIF9fcHRyNjQNCis/SXNTdHJpbmdUeXBlQENUeXBlQEBRRUFBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDVHlwZTo6SXNTdHJpbmdUeXBlKHVuc2lnbmVkIGxvbmcpDQorP0lzU3RyaW5nVHlwZUBDVHlwZUBAU0FIS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDbGFzc1BhcnQ6OklzVG9wTGV2ZWwodm9pZCkgX19wdHI2NA0KKz9Jc1RvcExldmVsQENDbGFzc1BhcnRAQFFFQUFIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENNZXRob2REZXNjcmlwdGlvbjo6SXNUb3VjaGVkKHN0cnVjdCBDTWV0aG9kRGVzY3JpcHRpb24gKiBfX3B0cjY0IF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCkNCis/SXNUb3VjaGVkQENNZXRob2REZXNjcmlwdGlvbkBAU0FIUEVGQVUxQFBFQVZDRmFzdEhlYXBAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENNZXRob2RQYXJ0OjpJc1RvdWNoZWQoaW50LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNUb3VjaGVkQENNZXRob2RQYXJ0QEBRRUFBSEhQRUFIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ01ldGhvZFBhcnQ6OklzVG91Y2hlZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9Jc1RvdWNoZWRAQ01ldGhvZFBhcnRAQFFFQUFIUEVCR1BFQUhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ29tcHJlc3NlZFN0cmluZzo6SXNVbmljb2RlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNVbmljb2RlQENDb21wcmVzc2VkU3RyaW5nQEBRRUJBSFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbURhdGFQYWNrZXQ6OklzVmFsaWQodm9pZCkgX19wdHI2NA0KKz9Jc1ZhbGlkQENXYmVtRGF0YVBhY2tldEBAUUVBQUpYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1diZW1PYmplY3RBcnJheVBhY2tldDo6SXNWYWxpZChjbGFzcyBDV2JlbUNsYXNzQ2FjaGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzVmFsaWRAQ1diZW1PYmplY3RBcnJheVBhY2tldEBAUUVBQV9OUEVBVkNXYmVtQ2xhc3NDYWNoZUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OklzVmFsaWRDbGFzc1BhcnQodm9pZCkgX19wdHI2NA0KKz9Jc1ZhbGlkQ2xhc3NQYXJ0QENDbGFzc1BhcnRAQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OklzVmFsaWRJbnN0YW5jZVBhcnQoY2xhc3MgQ0NsYXNzUGFydCAqIF9fcHRyNjQsY2xhc3Mgc3RkOjp2ZWN0b3I8c3RydWN0IEVtYmVkZGVkT2JqLGNsYXNzIHdiZW1fYWxsb2NhdG9yPHN0cnVjdCBFbWJlZGRlZE9iaj4gPiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNWYWxpZEluc3RhbmNlUGFydEBDSW5zdGFuY2VQYXJ0QEBRRUFBSlBFQVZDQ2xhc3NQYXJ0QEBBRUFWPyR2ZWN0b3JAVUVtYmVkZGVkT2JqQEBWPyR3YmVtX2FsbG9jYXRvckBVRW1iZWRkZWRPYmpAQEBAQHN0ZEBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6SXNWYWxpZEtleSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNWYWxpZEtleUBDV2JlbUluc3RhbmNlQEBRRUFBSFBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGhvZFBhcnQ6OklzVmFsaWRNZXRob2RQYXJ0KHZvaWQpIF9fcHRyNjQNCis/SXNWYWxpZE1ldGhvZFBhcnRAQ01ldGhvZFBhcnRAQFFFQUFKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6SXNWYWxpZE9iaih2b2lkKSBfX3B0cjY0DQorP0lzVmFsaWRPYmpAQ1diZW1DbGFzc0BAVUVBQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpJc1ZhbGlkT2JqKHZvaWQpIF9fcHRyNjQNCis/SXNWYWxpZE9iakBDV2JlbUluc3RhbmNlQEBVRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQ2xhc3NQYXJ0OjpJc1ZhbGlkUHJvcGVydHlIYW5kbGUobG9uZykgX19wdHI2NA0KKz9Jc1ZhbGlkUHJvcGVydHlIYW5kbGVAQ0NsYXNzUGFydEBAUUVBQUpKQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpJc1ZhbGlkUHJvcGVydHlIYW5kbGUobG9uZykgX19wdHI2NA0KKz9Jc1ZhbGlkUHJvcGVydHlIYW5kbGVAQ1diZW1PYmplY3RAQFFFQUFKSkBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRmFzdEhlYXA6OklzVmFsaWRQdHIodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Jc1ZhbGlkUHRyQENGYXN0SGVhcEBAUUVBQV9OS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OklzVmFsaWRRdWFsaWZpZXJTZXQodm9pZCkgX19wdHI2NA0KKz9Jc1ZhbGlkUXVhbGlmaWVyU2V0QENCYXNpY1F1YWxpZmllclNldEBAUUVBQUpYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpJc1ZhbGlkUXVhbGlmaWVyVHlwZSh1bnNpZ25lZCBzaG9ydCkNCis/SXNWYWxpZFF1YWxpZmllclR5cGVAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBTQUhHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ1diZW1SZWZyZXNoaW5nU3ZjOjpJc1dpbm1nbXQoc3RydWN0IF9XQkVNX1JFRlJFU0hFUl9JRCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNXaW5tZ210QENXYmVtUmVmcmVzaGluZ1N2Y0BASUVBQUhQRUFVX1dCRU1fUkVGUkVTSEVSX0lEQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENVbnR5cGVkQXJyYXk6OkxvYWRGcm9tQ1ZhclZlY3RvcihjbGFzcyBDUHRyU291cmNlICogX19wdHI2NCxjbGFzcyBDVmFyVmVjdG9yICYgX19wdHI2NCx1bnNpZ25lZCBsb25nLGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQsaW50KQ0KKz9Mb2FkRnJvbUNWYXJWZWN0b3JAQ1VudHlwZWRBcnJheUBAU0FKUEVBVkNQdHJTb3VyY2VAQEFFQVZDVmFyVmVjdG9yQEBLUEVBVkNGYXN0SGVhcEBAQUVBS0hAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OkxvY2FsaXplUHJvcGVydGllcyhpbnQsYm9vbCxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0LGJvb2wgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0xvY2FsaXplUHJvcGVydGllc0BDV2JlbU9iamVjdEBASUVBQUpIX05QRUFVSVdiZW1DbGFzc09iamVjdEBAMUFFQV9OQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpMb2NhbGl6ZVF1YWxpZmllcnMoaW50LGJvb2wsc3RydWN0IElXYmVtUXVhbGlmaWVyU2V0ICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1RdWFsaWZpZXJTZXQgKiBfX3B0cjY0LGJvb2wgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0xvY2FsaXplUXVhbGlmaWVyc0BDV2JlbU9iamVjdEBASUVBQUpIX05QRUFVSVdiZW1RdWFsaWZpZXJTZXRAQDFBRUFfTkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENIaVBlcmZMb2NrOjpMb2NrKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/TG9ja0BDSGlQZXJmTG9ja0BAUUVBQUhLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1NoYXJlZExvY2s6OkxvY2sodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Mb2NrQENTaGFyZWRMb2NrQEBRRUFBSEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6TG9jayhsb25nKSBfX3B0cjY0DQorP0xvY2tAQ1diZW1PYmplY3RAQFVFQUFKSkBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjaGFyIF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmc6Okxvd2VyQnl0ZSh1bnNpZ25lZCBzaG9ydCkNCis/TG93ZXJCeXRlQENDb21wcmVzc2VkU3RyaW5nQEBLQURHQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDVHlwZTo6TWFrZUFycmF5KHVuc2lnbmVkIGxvbmcpDQorP01ha2VBcnJheUBDVHlwZUBAU0FLS0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0Zhc3RIZWFwOjpNYWtlRmFrZUZyb21JbmRleChpbnQpDQorP01ha2VGYWtlRnJvbUluZGV4QENGYXN0SGVhcEBAU0FLSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1R5cGU6Ok1ha2VMb2NhbCh1bnNpZ25lZCBsb25nKQ0KKz9NYWtlTG9jYWxAQ1R5cGVAQFNBS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmc6Ok1ha2VMb3dlcmNhc2Uodm9pZCkgX19wdHI2NA0KKz9NYWtlTG93ZXJjYXNlQENDb21wcmVzc2VkU3RyaW5nQEBRRUFBWFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1R5cGU6Ok1ha2VOb3RBcnJheSh1bnNpZ25lZCBsb25nKQ0KKz9NYWtlTm90QXJyYXlAQ1R5cGVAQFNBS0tAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENUeXBlOjpNYWtlUGFyZW50cyh1bnNpZ25lZCBsb25nKQ0KKz9NYWtlUGFyZW50c0BDVHlwZUBAU0FLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6Ok1ha2VTdWJzZXRJbnN0KHN0cnVjdCBfSVdtaU9iamVjdCAqIF9fcHRyNjQsc3RydWN0IF9JV21pT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TWFrZVN1YnNldEluc3RAQ1diZW1DbGFzc0BAVUVBQUpQRUFVX0lXbWlPYmplY3RAQFBFQVBFQVUyQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6Ok1ha2VTdWJzZXRJbnN0KHN0cnVjdCBfSVdtaU9iamVjdCAqIF9fcHRyNjQsc3RydWN0IF9JV21pT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TWFrZVN1YnNldEluc3RAQ1diZW1JbnN0YW5jZUBAVUVBQUpQRUFVX0lXbWlPYmplY3RAQFBFQVBFQVUyQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTGltaXRhdGlvbk1hcHBpbmc6Ok1hcChjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqIF9fcHRyNjQsY2xhc3MgQ1Byb3BlcnR5SW5mb3JtYXRpb24gKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9NYXBAQ0xpbWl0YXRpb25NYXBwaW5nQEBRRUFBWFBFQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBAMEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpNYXBMaW1pdGF0aW9uKGxvbmcsY2xhc3MgQ1dTdHJpbmdBcnJheSAqIF9fcHRyNjQsY2xhc3MgQ0xpbWl0YXRpb25NYXBwaW5nICogX19wdHI2NCkgX19wdHI2NA0KKz9NYXBMaW1pdGF0aW9uQENDbGFzc1BhcnRAQFFFQUFISlBFQVZDV1N0cmluZ0FycmF5QEBQRUFWQ0xpbWl0YXRpb25NYXBwaW5nQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0RlY29yYXRpb25QYXJ0OjpNYXBMaW1pdGF0aW9uKGNsYXNzIENXU3RyaW5nQXJyYXkgKiBfX3B0cjY0LGNsYXNzIENMaW1pdGF0aW9uTWFwcGluZyAqIF9fcHRyNjQpDQorP01hcExpbWl0YXRpb25AQ0RlY29yYXRpb25QYXJ0QEBTQUhQRUFWQ1dTdHJpbmdBcnJheUBAUEVBVkNMaW1pdGF0aW9uTWFwcGluZ0BAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Byb3BlcnR5TG9va3VwVGFibGU6Ok1hcExpbWl0YXRpb24obG9uZyxjbGFzcyBDV1N0cmluZ0FycmF5ICogX19wdHI2NCxjbGFzcyBDTGltaXRhdGlvbk1hcHBpbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP01hcExpbWl0YXRpb25AQ1Byb3BlcnR5TG9va3VwVGFibGVAQFFFQUFISlBFQVZDV1N0cmluZ0FycmF5QEBQRUFWQ0xpbWl0YXRpb25NYXBwaW5nQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV2JlbUNsYXNzOjpNYXBMaW1pdGF0aW9uKGxvbmcsY2xhc3MgQ1dTdHJpbmdBcnJheSAqIF9fcHRyNjQsY2xhc3MgQ0xpbWl0YXRpb25NYXBwaW5nICogX19wdHI2NCkgX19wdHI2NA0KKz9NYXBMaW1pdGF0aW9uQENXYmVtQ2xhc3NAQFFFQUFISlBFQVZDV1N0cmluZ0FycmF5QEBQRUFWQ0xpbWl0YXRpb25NYXBwaW5nQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENEZWNvcmF0aW9uUGFydDo6TWFya0tleVJlbW92YWwodW5zaWduZWQgY2hhciAqIF9fcHRyNjQpDQorP01hcmtLZXlSZW1vdmFsQENEZWNvcmF0aW9uUGFydEBAU0FYUEVBRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpNYXJzaGFsSW50ZXJmYWNlKHN0cnVjdCBJU3RyZWFtICogX19wdHI2NCxzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9NYXJzaGFsSW50ZXJmYWNlQENXYmVtT2JqZWN0QEBVRUFBSlBFQVVJU3RyZWFtQEBBRUJVX0dVSURAQFBFQVhLMktAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0OjpNYXJzaGFsUGFja2V0KGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCxzdHJ1Y3QgX0dVSUQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TWFyc2hhbFBhY2tldEBDV2JlbU10Z3REZWxpdmVyRXZlbnRQYWNrZXRAQFFFQUFKSlBFQVBFQVVJV2JlbUNsYXNzT2JqZWN0QEBQRUFVX0dVSURAQFBFQUhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0OjpNYXJzaGFsUGFja2V0KHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsbG9uZyxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCBfR1VJRCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9NYXJzaGFsUGFja2V0QENXYmVtTXRndERlbGl2ZXJFdmVudFBhY2tldEBAUUVBQUpQRUFFS0pQRUFQRUFVSVdiZW1DbGFzc09iamVjdEBAUEVBVV9HVUlEQEBQRUFIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0QXJyYXlQYWNrZXQ6Ok1hcnNoYWxQYWNrZXQobG9uZyxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCBfR1VJRCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9NYXJzaGFsUGFja2V0QENXYmVtT2JqZWN0QXJyYXlQYWNrZXRAQFFFQUFKSlBFQVBFQVVJV2JlbUNsYXNzT2JqZWN0QEBQRUFVX0dVSURAQFBFQUhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3RBcnJheVBhY2tldDo6TWFyc2hhbFBhY2tldCh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCxzdHJ1Y3QgX0dVSUQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TWFyc2hhbFBhY2tldEBDV2JlbU9iamVjdEFycmF5UGFja2V0QEBRRUFBSlBFQUVLSlBFQVBFQVVJV2JlbUNsYXNzT2JqZWN0QEBQRUFVX0dVSURAQFBFQUhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1TbWFydEVudW1OZXh0UGFja2V0OjpNYXJzaGFsUGFja2V0KGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCxzdHJ1Y3QgX0dVSUQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TWFyc2hhbFBhY2tldEBDV2JlbVNtYXJ0RW51bU5leHRQYWNrZXRAQFFFQUFKSlBFQVBFQVVJV2JlbUNsYXNzT2JqZWN0QEBQRUFVX0dVSURAQFBFQUhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1TbWFydEVudW1OZXh0UGFja2V0OjpNYXJzaGFsUGFja2V0KHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsbG9uZyxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCBfR1VJRCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9NYXJzaGFsUGFja2V0QENXYmVtU21hcnRFbnVtTmV4dFBhY2tldEBAUUVBQUpQRUFFS0pQRUFQRUFVSVdiZW1DbGFzc09iamVjdEBAUEVBVV9HVUlEQEBQRUFIQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENTeXN0ZW1Qcm9wZXJ0aWVzOjpNYXhOdW1Qcm9wZXJ0aWVzKHZvaWQpDQorP01heE51bVByb3BlcnRpZXNAQ1N5c3RlbVByb3BlcnRpZXNAQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENCYXNpY1F1YWxpZmllclNldDo6TWVyZ2UodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQsaW50KQ0KKz9NZXJnZUBDQmFzaWNRdWFsaWZpZXJTZXRAQFNBUEVBRVBFQUVQRUFWQ0Zhc3RIZWFwQEAwMTAxSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENDbGFzc0FuZE1ldGhvZHM6Ok1lcmdlKGNsYXNzIENDbGFzc0FuZE1ldGhvZHMgJiBfX3B0cjY0LGNsYXNzIENDbGFzc0FuZE1ldGhvZHMgJiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGludCkNCis/TWVyZ2VAQ0NsYXNzQW5kTWV0aG9kc0BAU0FQRUFFQUVBVjFAMFBFQUVIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0NsYXNzUGFydDo6TWVyZ2UoY2xhc3MgQ0NsYXNzUGFydCAmIF9fcHRyNjQsY2xhc3MgQ0NsYXNzUGFydCAmIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsaW50KQ0KKz9NZXJnZUBDQ2xhc3NQYXJ0QEBTQVBFQUVBRUFWMUAwUEVBRUhAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDRGF0YVRhYmxlOjpNZXJnZShjbGFzcyBDRGF0YVRhYmxlICogX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0LGNsYXNzIENEYXRhVGFibGUgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQsY2xhc3MgQ1Byb3BlcnR5TG9va3VwVGFibGUgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQpDQorP01lcmdlQENEYXRhVGFibGVAQFNBUEVBRVBFQVYxQFBFQVZDRmFzdEhlYXBAQDAxUEVBVkNQcm9wZXJ0eUxvb2t1cFRhYmxlQEBQRUFFMUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENEZXJpdmF0aW9uTGlzdDo6TWVyZ2UoY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmdMaXN0ICYgX19wdHI2NCxjbGFzcyBDQ29tcHJlc3NlZFN0cmluZ0xpc3QgJiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KQ0KKz9NZXJnZUBDRGVyaXZhdGlvbkxpc3RAQFNBUEVBRUFFQVZDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQDBQRUFFQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ01ldGhvZFBhcnQ6Ok1lcmdlKGNsYXNzIENNZXRob2RQYXJ0ICYgX19wdHI2NCxjbGFzcyBDTWV0aG9kUGFydCAmIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/TWVyZ2VAQ01ldGhvZFBhcnRAQFNBUEVBRUFFQVYxQDBQRUFFS0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENQcm9wZXJ0eUxvb2t1cFRhYmxlOjpNZXJnZShjbGFzcyBDUHJvcGVydHlMb29rdXBUYWJsZSAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCxjbGFzcyBDUHJvcGVydHlMb29rdXBUYWJsZSAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0LGludCkNCis/TWVyZ2VAQ1Byb3BlcnR5TG9va3VwVGFibGVAQFNBUEVBRVBFQVYxQFBFQVZDRmFzdEhlYXBAQDAxUEVBRTFIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbUNsYXNzOjpNZXJnZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCxpbnQsaW50KSBfX3B0cjY0DQorP01lcmdlQENXYmVtQ2xhc3NAQFFFQUFQRUFFUEVBRTBISEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6Ok1lcmdlKGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCxzdHJ1Y3QgX0lXbWlPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9NZXJnZUBDV2JlbUNsYXNzQEBVRUFBSkpLUEVBWFBFQVBFQVVfSVdtaU9iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6TWVyZ2UobG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0LHN0cnVjdCBfSVdtaU9iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP01lcmdlQENXYmVtSW5zdGFuY2VAQFVFQUFKSktQRUFYUEVBUEVBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6TWVyZ2VBbWVuZGVkKGxvbmcsc3RydWN0IF9JV21pT2JqZWN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9NZXJnZUFtZW5kZWRAQ1diZW1PYmplY3RAQFVFQUFKSlBFQVVfSVdtaU9iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6TWVyZ2VBbmREZWNvcmF0ZShsb25nLHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxzdHJ1Y3QgX0lXbWlPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9NZXJnZUFuZERlY29yYXRlQENXYmVtQ2xhc3NAQFVFQUFKSktQRUFYUEVBRzFQRUFQRUFVX0lXbWlPYmplY3RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6Ok1lcmdlQW5kRGVjb3JhdGUobG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsc3RydWN0IF9JV21pT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TWVyZ2VBbmREZWNvcmF0ZUBDV2JlbUluc3RhbmNlQEBVRUFBSkpLUEVBWFBFQUcxUEVBUEVBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpNZXJnZUNsYXNzUGFydChzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TWVyZ2VDbGFzc1BhcnRAQ1diZW1DbGFzc0BAVUVBQUpQRUFVSVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6TWVyZ2VDbGFzc1BhcnQoc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP01lcmdlQ2xhc3NQYXJ0QENXYmVtSW5zdGFuY2VAQFVFQUFKUEVBVUlXYmVtQ2xhc3NPYmplY3RAQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDQ29tcHJlc3NlZFN0cmluZzo6TlZhbGlkYXRlU2l6ZShpbnQpY29uc3QgIF9fcHRyNjQNCis/TlZhbGlkYXRlU2l6ZUBDQ29tcHJlc3NlZFN0cmluZ0BAUUVCQV9OSEBaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBDV2JlbUNhbGxTZWN1cml0eSAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbUNhbGxTZWN1cml0eTo6TmV3KHZvaWQpDQorP05ld0BDV2JlbUNhbGxTZWN1cml0eUBAU0FQRUFWMUBYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZSAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjpOZXcodm9pZCkNCis/TmV3QENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFNBUEVBVjFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1F1YWxpZmllclNldDo6TmV4dChsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQsc3RydWN0IHRhZ1ZBUklBTlQgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP05leHRAQ1F1YWxpZmllclNldEBAVUVBQUpKUEVBUEVBR1BFQVV0YWdWQVJJQU5UQEBQRUFKQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6Ok5leHQobG9uZyx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCB0YWdWQVJJQU5UICogX19wdHI2NCxsb25nICogX19wdHI2NCxsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9OZXh0QENXYmVtT2JqZWN0QEBVRUFBSkpQRUFQRUFHUEVBVXRhZ1ZBUklBTlRAQFBFQUoyQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0xpbWl0YXRpb25NYXBwaW5nOjpOZXh0TWFwcGluZyhjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqIF9fcHRyNjQsY2xhc3MgQ1Byb3BlcnR5SW5mb3JtYXRpb24gKiBfX3B0cjY0KSBfX3B0cjY0DQorP05leHRNYXBwaW5nQENMaW1pdGF0aW9uTWFwcGluZ0BAUUVBQUhQRUFWQ1Byb3BlcnR5SW5mb3JtYXRpb25AQDBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpOZXh0TWV0aG9kKGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TmV4dE1ldGhvZEBDV2JlbUNsYXNzQEBVRUFBSkpQRUFQRUFHUEVBUEVBVUlXYmVtQ2xhc3NPYmplY3RAQDFAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpOZXh0TWV0aG9kKGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TmV4dE1ldGhvZEBDV2JlbUluc3RhbmNlQEBVRUFBSkpQRUFQRUFHUEVBUEVBVUlXYmVtQ2xhc3NPYmplY3RAQDFAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6UGx1Z0tleUhvbGVzKHZvaWQpIF9fcHRyNjQNCis/UGx1Z0tleUhvbGVzQENXYmVtSW5zdGFuY2VAQFFFQUFKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1F1YWxpZmllclNldDo6UHV0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgdGFnVkFSSUFOVCAqIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz9QdXRAQ1F1YWxpZmllclNldEBAVUVBQUpQRUJHUEVBVXRhZ1ZBUklBTlRAQEpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpQdXQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcsc3RydWN0IHRhZ1ZBUklBTlQgKiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/UHV0QENXYmVtQ2xhc3NAQFVFQUFKUEVCR0pQRUFVdGFnVkFSSUFOVEBASkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OlB1dCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyxzdHJ1Y3QgdGFnVkFSSUFOVCAqIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz9QdXRAQ1diZW1JbnN0YW5jZUBAVUVBQUpQRUJHSlBFQVV0YWdWQVJJQU5UQEBKQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRob2RQYXJ0OjpQdXRNZXRob2QodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcsY2xhc3MgQ1diZW1PYmplY3QgKiBfX3B0cjY0LGNsYXNzIENXYmVtT2JqZWN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QdXRNZXRob2RAQ01ldGhvZFBhcnRAQFFFQUFKUEVCR0pQRUFWQ1diZW1PYmplY3RAQDFAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpQdXRNZXRob2QodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QdXRNZXRob2RAQ1diZW1DbGFzc0BAVUVBQUpQRUJHSlBFQVVJV2JlbUNsYXNzT2JqZWN0QEAxQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6UHV0TWV0aG9kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UHV0TWV0aG9kQENXYmVtSW5zdGFuY2VAQFVFQUFKUEVCR0pQRUFVSVdiZW1DbGFzc09iamVjdEBAMUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2FsbFNlY3VyaXR5OjpRdWVyeUJsYW5rZXQodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlCbGFua2V0QENXYmVtQ2FsbFNlY3VyaXR5QEBVRUFBSlBFQUswUEVBUEVBRzAwUEVBUEVBWDBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDSW1wbDxzdHJ1Y3QgSVdiZW1PYmplY3RUZXh0U3JjLGNsYXNzIENXbWlPYmplY3RUZXh0U3JjPjo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlJbnRlcmZhY2VAPyRDSW1wbEBVSVdiZW1PYmplY3RUZXh0U3JjQEBWQ1dtaU9iamVjdFRleHRTcmNAQEBAVUVBQUpBRUJVX0dVSURAQFBFQVBFQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDSW1wbDxzdHJ1Y3QgSVdiZW1SZWZyZXNoaW5nU2VydmljZXMsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPjo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlJbnRlcmZhY2VAPyRDSW1wbEBVSVdiZW1SZWZyZXNoaW5nU2VydmljZXNAQFZDV2JlbVJlZnJlc2hpbmdTdmNAQEBAVUVBQUpBRUJVX0dVSURAQFBFQVBFQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDSW1wbDxzdHJ1Y3QgSVdiZW1SZW1vdGVSZWZyZXNoZXIsY2xhc3MgQ1diZW1SZW1vdGVSZWZyZXNoZXI+OjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUludGVyZmFjZUA/JENJbXBsQFVJV2JlbVJlbW90ZVJlZnJlc2hlckBAVkNXYmVtUmVtb3RlUmVmcmVzaGVyQEBAQFVFQUFKQUVCVV9HVUlEQEBQRUFQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0ltcGw8c3RydWN0IF9JV2JlbUNvbmZpZ3VyZVJlZnJlc2hpbmdTdmNzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz46OlF1ZXJ5SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5SW50ZXJmYWNlQD8kQ0ltcGxAVV9JV2JlbUNvbmZpZ3VyZVJlZnJlc2hpbmdTdmNzQEBWQ1diZW1SZWZyZXNoaW5nU3ZjQEBAQFVFQUFKQUVCVV9HVUlEQEBQRUFQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0ltcGw8c3RydWN0IF9JV2JlbUVudW1NYXJzaGFsaW5nLGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmc+OjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUludGVyZmFjZUA/JENJbXBsQFVfSVdiZW1FbnVtTWFyc2hhbGluZ0BAVkNXYmVtRW51bU1hcnNoYWxpbmdAQEBAVUVBQUpBRUJVX0dVSURAQFBFQVBFQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDSW1wbDxzdHJ1Y3QgX0lXYmVtRmV0Y2hSZWZyZXNoZXJNZ3IsY2xhc3MgQ1diZW1GZXRjaFJlZnJNZ3I+OjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUludGVyZmFjZUA/JENJbXBsQFVfSVdiZW1GZXRjaFJlZnJlc2hlck1nckBAVkNXYmVtRmV0Y2hSZWZyTWdyQEBAQFVFQUFKQUVCVV9HVUlEQEBQRUFQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0ltcGw8c3RydWN0IF9JV21pT2JqZWN0RmFjdG9yeSxjbGFzcyBDV21pT2JqZWN0RmFjdG9yeT46OlF1ZXJ5SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5SW50ZXJmYWNlQD8kQ0ltcGxAVV9JV21pT2JqZWN0RmFjdG9yeUBAVkNXbWlPYmplY3RGYWN0b3J5QEBAQFVFQUFKQUVCVV9HVUlEQEBQRUFQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1F1YWxpZmllclNldDo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlJbnRlcmZhY2VAQ1F1YWxpZmllclNldEBAVUVBQUpBRUJVX0dVSURAQFBFQVBFQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNhbGxTZWN1cml0eTo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlJbnRlcmZhY2VAQ1diZW1DYWxsU2VjdXJpdHlAQFVFQUFKQUVCVV9HVUlEQEBQRUFQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OlF1ZXJ5SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5SW50ZXJmYWNlQENXYmVtT2JqZWN0QEBVRUFBSkFFQlVfR1VJREBAUEVBUEVBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGU6OlF1ZXJ5SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5SW50ZXJmYWNlQENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFVFQUFKQUVCVV9HVUlEQEBQRUFQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OlF1ZXJ5T2JqZWN0RmxhZ3MobG9uZyx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5T2JqZWN0RmxhZ3NAQ1diZW1PYmplY3RAQFVFQUFKSl9LUEVBX0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6UXVlcnlQYXJ0SW5mbyh1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeVBhcnRJbmZvQENXYmVtT2JqZWN0QEBVRUFBSlBFQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6UXVlcnlQcm9wZXJ0eUZsYWdzKGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlQcm9wZXJ0eUZsYWdzQENXYmVtT2JqZWN0QEBVRUFBSkpQRUJHX0tQRUFfS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpSZWFkRFdPUkQobG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWFkRFdPUkRAQ1diZW1PYmplY3RAQFVFQUFKSlBFQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6UmVhZFByb3AodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcsdW5zaWduZWQgbG9uZyxsb25nICogX19wdHI2NCxsb25nICogX19wdHI2NCxpbnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlYWRQcm9wQENXYmVtT2JqZWN0QEBVRUFBSlBFQkdKS1BFQUoxUEVBSFBFQUtQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OlJlYWRQcm9wZXJ0eVZhbHVlKGxvbmcsbG9uZyxsb25nICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWFkUHJvcGVydHlWYWx1ZUBDV2JlbU9iamVjdEBAVUVBQUpKSlBFQUpQRUFFQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OlJlYWRRV09SRChsb25nLHVuc2lnbmVkIF9faW50NjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlYWRRV09SREBDV2JlbU9iamVjdEBAVUVBQUpKUEVBX0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpSZWFsbG9jQW5kQ29tcGFjdCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlYWxsb2NBbmRDb21wYWN0QENDbGFzc1BhcnRAQFFFQUFIS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OlJlYWxsb2NBbmRDb21wYWN0KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVhbGxvY0FuZENvbXBhY3RAQ0luc3RhbmNlUGFydEBAUUVBQUhLQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgX19jZGVjbCBDVW50eXBlZEFycmF5OjpSZWFsbG9jQXJyYXkoY2xhc3MgQ1B0clNvdXJjZSAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpDQorP1JlYWxsb2NBcnJheUBDVW50eXBlZEFycmF5QEBLQUpQRUFWQ1B0clNvdXJjZUBAS1BFQVZDRmFzdEhlYXBAQEtQRUFLMjJAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRmFzdEhlYXA6OlJlYWxsb2NhdGUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQgX19wdHI2NCkgX19wdHI2NA0KKz9SZWFsbG9jYXRlQENGYXN0SGVhcEBAUUVBQUhLS0tBRUZBS0BaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1PYmplY3Q6OlJlYWxsb2NhdGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZWFsbG9jYXRlQENXYmVtT2JqZWN0QEBJRUFBUEVBRUtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpSZWJhc2UodW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmViYXNlQENCYXNpY1F1YWxpZmllclNldEBAUUVBQVhQRUFFQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDbGFzc0FuZE1ldGhvZHM6OlJlYmFzZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWJhc2VAQ0NsYXNzQW5kTWV0aG9kc0BAUUVBQVhQRUFFQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDbGFzc1BhcnQ6OlJlYmFzZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWJhc2VAQ0NsYXNzUGFydEBAUUVBQVhQRUFFQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nTGlzdDo6UmViYXNlKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlYmFzZUBDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQFFFQUFYUEVBRUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRGF0YVRhYmxlOjpSZWJhc2UodW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmViYXNlQENEYXRhVGFibGVAQFFFQUFYUEVBRUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRGVjb3JhdGlvblBhcnQ6OlJlYmFzZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWJhc2VAQ0RlY29yYXRpb25QYXJ0QEBRRUFBWFBFQUVAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Zhc3RIZWFwOjpSZWJhc2UodW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmViYXNlQENGYXN0SGVhcEBAUUVBQVhQRUFFQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OlJlYmFzZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWJhc2VAQ0luc3RhbmNlUGFydEBAUUVBQVhQRUFFQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNZXRob2RQYXJ0OjpSZWJhc2UodW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmViYXNlQENNZXRob2RQYXJ0QEBRRUFBWFBFQUVAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Byb3BlcnR5TG9va3VwVGFibGU6OlJlYmFzZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWJhc2VAQ1Byb3BlcnR5TG9va3VwVGFibGVAQFFFQUFYUEVBRUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUXVhbGlmaWVyU2V0TGlzdDo6UmViYXNlKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlYmFzZUBDUXVhbGlmaWVyU2V0TGlzdEBAUUVBQVhQRUFFQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENRdWFsaWZpZXJTZXRMaXN0OjpSZWJhc2Uodm9pZCkgX19wdHI2NA0KKz9SZWJhc2VAQ1F1YWxpZmllclNldExpc3RAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENXYmVtQ2xhc3M6OlJlYmFzZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWJhc2VAQ1diZW1DbGFzc0BAUUVBQVhQRUFFQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OlJlYmFzZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWJhc2VAQ1diZW1JbnN0YW5jZUBAUUVBQVhQRUFFQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbnN0YW5jZVBRU0NvbnRhaW5lcjo6UmViYXNlU2Vjb25kYXJ5U2V0KHZvaWQpIF9fcHRyNjQNCis/UmViYXNlU2Vjb25kYXJ5U2V0QENJbnN0YW5jZVBRU0NvbnRhaW5lckBAUUVBQVhYWg0KKzsgcHVibGljOiBlbnVtIEVSZWNvbmNpbGlhdGlvbiAgX19jZGVjbCBDQ2xhc3NBbmRNZXRob2RzOjpSZWNvbmNpbGVXaXRoKGNsYXNzIENDbGFzc0FuZE1ldGhvZHMgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlY29uY2lsZVdpdGhAQ0NsYXNzQW5kTWV0aG9kc0BAUUVBQT9BVzRFUmVjb25jaWxpYXRpb25AQEFFQVYxQEBaDQorOyBwdWJsaWM6IGVudW0gRVJlY29uY2lsaWF0aW9uICBfX2NkZWNsIENDbGFzc1BhcnQ6OlJlY29uY2lsZVdpdGgoY2xhc3MgQ0NsYXNzUGFydCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVjb25jaWxlV2l0aEBDQ2xhc3NQYXJ0QEBRRUFBP0FXNEVSZWNvbmNpbGlhdGlvbkBAQUVBVjFAQFoNCis7IHB1YmxpYzogZW51bSBFUmVjb25jaWxpYXRpb24gIF9fY2RlY2wgQ01ldGhvZFBhcnQ6OlJlY29uY2lsZVdpdGgoY2xhc3MgQ01ldGhvZFBhcnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlY29uY2lsZVdpdGhAQ01ldGhvZFBhcnRAQFFFQUE/QVc0RVJlY29uY2lsaWF0aW9uQEBBRUFWMUBAWg0KKzsgcHVibGljOiBlbnVtIEVSZWNvbmNpbGlhdGlvbiAgX19jZGVjbCBDV2JlbUNsYXNzOjpSZWNvbmNpbGVXaXRoKGNsYXNzIENXYmVtQ2xhc3MgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlY29uY2lsZVdpdGhAQ1diZW1DbGFzc0BAUUVBQT9BVzRFUmVjb25jaWxpYXRpb25AQFBFQVYxQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OlJlY29uY2lsZVdpdGgobG9uZyxzdHJ1Y3QgX0lXbWlPYmplY3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlY29uY2lsZVdpdGhAQ1diZW1DbGFzc0BAVUVBQUpKUEVBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpSZWNvbmNpbGVXaXRoKGxvbmcsc3RydWN0IF9JV21pT2JqZWN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWNvbmNpbGVXaXRoQENXYmVtSW5zdGFuY2VAQFVFQUFKSlBFQVVfSVdtaU9iamVjdEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1SZWZyZXNoaW5nU3ZjOjpSZWNvbm5lY3RSZW1vdGVSZWZyZXNoZXIoc3RydWN0IF9XQkVNX1JFRlJFU0hFUl9JRCAqIF9fcHRyNjQsbG9uZyxsb25nLHVuc2lnbmVkIGxvbmcsc3RydWN0IF9XQkVNX1JFQ09OTkVDVF9JTkZPICogX19wdHI2NCxzdHJ1Y3QgX1dCRU1fUkVDT05ORUNUX1JFU1VMVFMgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlY29ubmVjdFJlbW90ZVJlZnJlc2hlckBDV2JlbVJlZnJlc2hpbmdTdmNAQE1FQUFKUEVBVV9XQkVNX1JFRlJFU0hFUl9JREBASkpLUEVBVV9XQkVNX1JFQ09OTkVDVF9JTkZPQEBQRUFVX1dCRU1fUkVDT05ORUNUX1JFU1VMVFNAQFBFQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVJlZnJlc2hpbmdTdmM6OlhXYmVtUmVmclN2Yzo6UmVjb25uZWN0UmVtb3RlUmVmcmVzaGVyKHN0cnVjdCBfV0JFTV9SRUZSRVNIRVJfSUQgKiBfX3B0cjY0LGxvbmcsbG9uZyx1bnNpZ25lZCBsb25nLHN0cnVjdCBfV0JFTV9SRUNPTk5FQ1RfSU5GTyAqIF9fcHRyNjQsc3RydWN0IF9XQkVNX1JFQ09OTkVDVF9SRVNVTFRTICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWNvbm5lY3RSZW1vdGVSZWZyZXNoZXJAWFdiZW1SZWZyU3ZjQENXYmVtUmVmcmVzaGluZ1N2Y0BAVUVBQUpQRUFVX1dCRU1fUkVGUkVTSEVSX0lEQEBKSktQRUFVX1dCRU1fUkVDT05ORUNUX0lORk9AQFBFQVVfV0JFTV9SRUNPTk5FQ1RfUkVTVUxUU0BAUEVBS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmFzdEhlYXA6OlJlZHVjZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZWR1Y2VAQ0Zhc3RIZWFwQEBRRUFBWEtLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDV2JlbUNsYXNzOjpSZWR1Y2VDbGFzc0FuZE1ldGhvZHNTcGFjZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlZHVjZUNsYXNzQW5kTWV0aG9kc1NwYWNlQENXYmVtQ2xhc3NAQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENDbGFzc0FuZE1ldGhvZHM6OlJlZHVjZUNsYXNzUGFydFNwYWNlKGNsYXNzIENDbGFzc1BhcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVkdWNlQ2xhc3NQYXJ0U3BhY2VAQ0NsYXNzQW5kTWV0aG9kc0BAVUVBQVhQRUFWQ0NsYXNzUGFydEBAS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OlJlZHVjZUNsYXNzUGFydFNwYWNlKGNsYXNzIENDbGFzc1BhcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVkdWNlQ2xhc3NQYXJ0U3BhY2VAQ1diZW1JbnN0YW5jZUBAVUVBQVhQRUFWQ0NsYXNzUGFydEBAS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENDbGFzc1BhcnQ6OlJlZHVjZURhdGFUYWJsZVNwYWNlKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZWR1Y2VEYXRhVGFibGVTcGFjZUBDQ2xhc3NQYXJ0QEBVRUFBWFBFQUVLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OlJlZHVjZURhdGFUYWJsZVNwYWNlKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZWR1Y2VEYXRhVGFibGVTcGFjZUBDSW5zdGFuY2VQYXJ0QEBVRUFBWFBFQUVLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENDbGFzc1BhcnQ6OlJlZHVjZUhlYXBTaXplKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZWR1Y2VIZWFwU2l6ZUBDQ2xhc3NQYXJ0QEBVRUFBWFBFQUVLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OlJlZHVjZUhlYXBTaXplKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZWR1Y2VIZWFwU2l6ZUBDSW5zdGFuY2VQYXJ0QEBVRUFBWFBFQUVLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENNZXRob2RQYXJ0OjpSZWR1Y2VIZWFwU2l6ZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVkdWNlSGVhcFNpemVAQ01ldGhvZFBhcnRAQFVFQUFYUEVBRUtLQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6UmVkdWNlSW5zdGFuY2VQYXJ0U3BhY2UoY2xhc3MgQ0luc3RhbmNlUGFydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZWR1Y2VJbnN0YW5jZVBhcnRTcGFjZUBDV2JlbUluc3RhbmNlQEBVRUFBWFBFQVZDSW5zdGFuY2VQYXJ0QEBLQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ0NsYXNzQW5kTWV0aG9kczo6UmVkdWNlTWV0aG9kUGFydFNwYWNlKGNsYXNzIENNZXRob2RQYXJ0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlZHVjZU1ldGhvZFBhcnRTcGFjZUBDQ2xhc3NBbmRNZXRob2RzQEBVRUFBWFBFQVZDTWV0aG9kUGFydEBAS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENDbGFzc1BhcnQ6OlJlZHVjZVByb3BlcnR5VGFibGVTcGFjZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVkdWNlUHJvcGVydHlUYWJsZVNwYWNlQENDbGFzc1BhcnRAQFVFQUFYUEVBRUtLQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ0luc3RhbmNlUGFydDo6UmVkdWNlUXVhbGlmaWVyU2V0TGlzdFNwYWNlKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZWR1Y2VRdWFsaWZpZXJTZXRMaXN0U3BhY2VAQ0luc3RhbmNlUGFydEBAVUVBQVhQRUFFS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpSZWR1Y2VRdWFsaWZpZXJTZXRTcGFjZShjbGFzcyBDQmFzaWNRdWFsaWZpZXJTZXQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVkdWNlUXVhbGlmaWVyU2V0U3BhY2VAQ0NsYXNzUGFydEBAVUVBQVhQRUFWQ0Jhc2ljUXVhbGlmaWVyU2V0QEBLQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ0luc3RhbmNlUFFTQ29udGFpbmVyOjpSZWR1Y2VRdWFsaWZpZXJTZXRTcGFjZShjbGFzcyBDQmFzaWNRdWFsaWZpZXJTZXQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVkdWNlUXVhbGlmaWVyU2V0U3BhY2VAQ0luc3RhbmNlUFFTQ29udGFpbmVyQEBVRUFBWFBFQVZDQmFzaWNRdWFsaWZpZXJTZXRAQEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDSW5zdGFuY2VQYXJ0OjpSZWR1Y2VRdWFsaWZpZXJTZXRTcGFjZShjbGFzcyBDQmFzaWNRdWFsaWZpZXJTZXQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVkdWNlUXVhbGlmaWVyU2V0U3BhY2VAQ0luc3RhbmNlUGFydEBAVUVBQVhQRUFWQ0Jhc2ljUXVhbGlmaWVyU2V0QEBLQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lcjo6UmVkdWNlUXVhbGlmaWVyU2V0U3BhY2UoY2xhc3MgQ0Jhc2ljUXVhbGlmaWVyU2V0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlZHVjZVF1YWxpZmllclNldFNwYWNlQENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXJAQFVFQUFYUEVBVkNCYXNpY1F1YWxpZmllclNldEBAS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUXVhbGlmaWVyU2V0TGlzdDo6UmVkdWNlUXVhbGlmaWVyU2V0U3BhY2UoY2xhc3MgQ0Jhc2ljUXVhbGlmaWVyU2V0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlZHVjZVF1YWxpZmllclNldFNwYWNlQENRdWFsaWZpZXJTZXRMaXN0QEBRRUFBWFBFQVZDQmFzaWNRdWFsaWZpZXJTZXRAQEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSW1wbDxzdHJ1Y3QgSVdiZW1PYmplY3RUZXh0U3JjLGNsYXNzIENXbWlPYmplY3RUZXh0U3JjPjo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAPyRDSW1wbEBVSVdiZW1PYmplY3RUZXh0U3JjQEBWQ1dtaU9iamVjdFRleHRTcmNAQEBAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSW1wbDxzdHJ1Y3QgSVdiZW1SZWZyZXNoaW5nU2VydmljZXMsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPjo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAPyRDSW1wbEBVSVdiZW1SZWZyZXNoaW5nU2VydmljZXNAQFZDV2JlbVJlZnJlc2hpbmdTdmNAQEBAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSW1wbDxzdHJ1Y3QgSVdiZW1SZW1vdGVSZWZyZXNoZXIsY2xhc3MgQ1diZW1SZW1vdGVSZWZyZXNoZXI+OjpSZWxlYXNlKHZvaWQpIF9fcHRyNjQNCis/UmVsZWFzZUA/JENJbXBsQFVJV2JlbVJlbW90ZVJlZnJlc2hlckBAVkNXYmVtUmVtb3RlUmVmcmVzaGVyQEBAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0ltcGw8c3RydWN0IF9JV2JlbUNvbmZpZ3VyZVJlZnJlc2hpbmdTdmNzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz46OlJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlQD8kQ0ltcGxAVV9JV2JlbUNvbmZpZ3VyZVJlZnJlc2hpbmdTdmNzQEBWQ1diZW1SZWZyZXNoaW5nU3ZjQEBAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0ltcGw8c3RydWN0IF9JV2JlbUVudW1NYXJzaGFsaW5nLGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmc+OjpSZWxlYXNlKHZvaWQpIF9fcHRyNjQNCis/UmVsZWFzZUA/JENJbXBsQFVfSVdiZW1FbnVtTWFyc2hhbGluZ0BAVkNXYmVtRW51bU1hcnNoYWxpbmdAQEBAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSW1wbDxzdHJ1Y3QgX0lXYmVtRmV0Y2hSZWZyZXNoZXJNZ3IsY2xhc3MgQ1diZW1GZXRjaFJlZnJNZ3I+OjpSZWxlYXNlKHZvaWQpIF9fcHRyNjQNCis/UmVsZWFzZUA/JENJbXBsQFVfSVdiZW1GZXRjaFJlZnJlc2hlck1nckBAVkNXYmVtRmV0Y2hSZWZyTWdyQEBAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0ltcGw8c3RydWN0IF9JV21pT2JqZWN0RmFjdG9yeSxjbGFzcyBDV21pT2JqZWN0RmFjdG9yeT46OlJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlQD8kQ0ltcGxAVV9JV21pT2JqZWN0RmFjdG9yeUBAVkNXbWlPYmplY3RGYWN0b3J5QEBAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NsYXNzUXVhbGlmaWVyU2V0OjpSZWxlYXNlKHZvaWQpIF9fcHRyNjQNCis/UmVsZWFzZUBDQ2xhc3NRdWFsaWZpZXJTZXRAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0luc3RhbmNlUXVhbGlmaWVyU2V0OjpSZWxlYXNlKHZvaWQpIF9fcHRyNjQNCis/UmVsZWFzZUBDSW5zdGFuY2VRdWFsaWZpZXJTZXRAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ01ldGhvZFF1YWxpZmllclNldDo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ01ldGhvZFF1YWxpZmllclNldEBAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUXVhbGlmaWVyU2V0OjpSZWxlYXNlKHZvaWQpIF9fcHRyNjQNCis/UmVsZWFzZUBDUXVhbGlmaWVyU2V0QEBVRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENXYmVtQ2FsbFNlY3VyaXR5OjpSZWxlYXNlKHZvaWQpIF9fcHRyNjQNCis/UmVsZWFzZUBDV2JlbUNhbGxTZWN1cml0eUBAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ1diZW1PYmplY3RAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZUBAVUVBQUtYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT46OlJlbGVhc2VFbGVtZW50KGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWxlYXNlRWxlbWVudEA/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBASUVBQVhQRUFWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENXbWlUZXh0U291cmNlPixjbGFzcyBDRmxleEFycmF5Pjo6UmVsZWFzZUVsZW1lbnQoY2xhc3MgQ1dtaVRleHRTb3VyY2UgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbGVhc2VFbGVtZW50QD8kQ1BvaW50ZXJBcnJheUBWQ1dtaVRleHRTb3VyY2VAQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDV21pVGV4dFNvdXJjZUBAQEBWQ0ZsZXhBcnJheUBAQEBJRUFBWFBFQVZDV21pVGV4dFNvdXJjZUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OlJlbGVhc2VNYXJzaGFsRGF0YShzdHJ1Y3QgSVN0cmVhbSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVsZWFzZU1hcnNoYWxEYXRhQENXYmVtT2JqZWN0QEBVRUFBSlBFQVVJU3RyZWFtQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVJlbW90ZVJlZnJlc2hlcjo6WFdiZW1SZW1vdGVSZWZyOjpSZW1vdGVSZWZyZXNoKGxvbmcsbG9uZyAqIF9fcHRyNjQsc3RydWN0IF9XQkVNX1JFRlJFU0hFRF9PQkpFQ1QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdGVSZWZyZXNoQFhXYmVtUmVtb3RlUmVmckBDV2JlbVJlbW90ZVJlZnJlc2hlckBAVUVBQUpKUEVBSlBFQVBFQVVfV0JFTV9SRUZSRVNIRURfT0JKRUNUQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0Zhc3RQcm9wZXJ0eUJhZzo6UmVtb3ZlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVAQ0Zhc3RQcm9wZXJ0eUJhZ0BAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0sY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+LGNsYXNzIENGbGV4QXJyYXk+OjpSZW1vdmVBbGwodm9pZCkgX19wdHI2NA0KKz9SZW1vdmVBbGxAPyRDUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFZDRmxleEFycmF5QEBAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+OjpSZW1vdmVBbGwodm9pZCkgX19wdHI2NA0KKz9SZW1vdmVBbGxAPyRDUG9pbnRlckFycmF5QFZDV21pVGV4dFNvdXJjZUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNXbWlUZXh0U291cmNlQEBAQFZDRmxleEFycmF5QEBAQFFFQUFYWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENGYXN0UHJvcGVydHlCYWc6OlJlbW92ZUFsbCh2b2lkKSBfX3B0cjY0DQorP1JlbW92ZUFsbEBDRmFzdFByb3BlcnR5QmFnQEBRRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpSZW1vdmVBcnJheVByb3BFbGVtZW50QnlIYW5kbGUobG9uZyxsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVtb3ZlQXJyYXlQcm9wRWxlbWVudEJ5SGFuZGxlQENXYmVtT2JqZWN0QEBVRUFBSkpKS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpSZW1vdmVBcnJheVByb3BSYW5nZUJ5SGFuZGxlKGxvbmcsbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVtb3ZlQXJyYXlQcm9wUmFuZ2VCeUhhbmRsZUBDV2JlbU9iamVjdEBAVUVBQUpKSktLQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0sY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+LGNsYXNzIENGbGV4QXJyYXk+OjpSZW1vdmVBdChpbnQsY2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0gKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVBdEA/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBAUUVBQV9OSFBFQVBFQVZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+OjpSZW1vdmVBdChpbnQsY2xhc3MgQ1dtaVRleHRTb3VyY2UgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVBdEA/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBAUUVBQV9OSFBFQVBFQVZDV21pVGV4dFNvdXJjZUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OlJlbW92ZURlY29yYXRpb24odm9pZCkgX19wdHI2NA0KKz9SZW1vdmVEZWNvcmF0aW9uQENXYmVtT2JqZWN0QEBVRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtUmVmcmVzaGluZ1N2Yzo6UmVtb3ZlT2JqZWN0RnJvbVJlZnJlc2hlcihzdHJ1Y3QgX1dCRU1fUkVGUkVTSEVSX0lEICogX19wdHI2NCxsb25nLGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVPYmplY3RGcm9tUmVmcmVzaGVyQENXYmVtUmVmcmVzaGluZ1N2Y0BATUVBQUpQRUFVX1dCRU1fUkVGUkVTSEVSX0lEQEBKSktQRUFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1SZWZyZXNoaW5nU3ZjOjpYV2JlbVJlZnJTdmM6OlJlbW92ZU9iamVjdEZyb21SZWZyZXNoZXIoc3RydWN0IF9XQkVNX1JFRlJFU0hFUl9JRCAqIF9fcHRyNjQsbG9uZyxsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVtb3ZlT2JqZWN0RnJvbVJlZnJlc2hlckBYV2JlbVJlZnJTdmNAQ1diZW1SZWZyZXNoaW5nU3ZjQEBVRUFBSlBFQVVfV0JFTV9SRUZSRVNIRVJfSURAQEpKS1BFQUtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RhdGFUYWJsZTo6UmVtb3ZlUHJvcGVydHkodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlbW92ZVByb3BlcnR5QENEYXRhVGFibGVAQFFFQUFYR0tLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpSZW1vdmVRdWFsaWZpZXJBcnJheVJhbmdlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50LGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlbW92ZVF1YWxpZmllckFycmF5UmFuZ2VAQ1diZW1PYmplY3RAQFFFQUFKUEVCRzBISktLQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDVW50eXBlZEFycmF5OjpSZW1vdmVSYW5nZShjbGFzcyBDUHRyU291cmNlICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP1JlbW92ZVJhbmdlQENVbnR5cGVkQXJyYXlAQFNBSlBFQVZDUHRyU291cmNlQEBLS1BFQVZDRmFzdEhlYXBAQEtLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMaW1pdGF0aW9uTWFwcGluZzo6UmVtb3ZlU3BlY2lmaWModm9pZCkgX19wdHI2NA0KKz9SZW1vdmVTcGVjaWZpY0BDTGltaXRhdGlvbk1hcHBpbmdAQFFFQUFYWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OlJlcGFyZW50KGNsYXNzIENXYmVtQ2xhc3MgKiBfX3B0cjY0LGNsYXNzIENXYmVtSW5zdGFuY2UgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZXBhcmVudEBDV2JlbUluc3RhbmNlQEBRRUFBSlBFQVZDV2JlbUNsYXNzQEBQRUFQRUFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmdMaXN0OjpSZXNldCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QENDb21wcmVzc2VkU3RyaW5nTGlzdEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xpbWl0YXRpb25NYXBwaW5nOjpSZXNldCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QENMaW1pdGF0aW9uTWFwcGluZ0BAUUVBQVhYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ1diZW1SZWZyZXNoaW5nU3ZjOjpSZXNldFJlZnJlc2hJbmZvKHN0cnVjdCBfV0JFTV9SRUZSRVNIX0lORk8gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1Jlc2V0UmVmcmVzaEluZm9AQ1diZW1SZWZyZXNoaW5nU3ZjQEBJRUFBSlBFQVVfV0JFTV9SRUZSRVNIX0lORk9AQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0NsYXNzUGFydDo6UmVzb2x2ZUhlYXBQb2ludGVyKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVzb2x2ZUhlYXBQb2ludGVyQENDbGFzc1BhcnRAQFFFQUFQRUFFS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0Zhc3RIZWFwOjpSZXNvbHZlSGVhcFBvaW50ZXIodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZXNvbHZlSGVhcFBvaW50ZXJAQ0Zhc3RIZWFwQEBRRUFBUEVBRUtAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqIF9fcHRyNjQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpSZXNvbHZlSGVhcFN0cmluZyh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1Jlc29sdmVIZWFwU3RyaW5nQENDbGFzc1BhcnRAQFFFQUFQRUFWQ0NvbXByZXNzZWRTdHJpbmdAQEtAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqIF9fcHRyNjQgX19jZGVjbCBDRmFzdEhlYXA6OlJlc29sdmVTdHJpbmcodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZXNvbHZlU3RyaW5nQENGYXN0SGVhcEBAUUVBQVBFQVZDQ29tcHJlc3NlZFN0cmluZ0BAS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2FsbFNlY3VyaXR5OjpSZXZlcnRUb1NlbGYodm9pZCkgX19wdHI2NA0KKz9SZXZlcnRUb1NlbGZAQ1diZW1DYWxsU2VjdXJpdHlAQFVFQUFKWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1F1YWxpZmllclNldDo6U2VsZlJlYmFzZSh2b2lkKSBfX3B0cjY0DQorP1NlbGZSZWJhc2VAQ1F1YWxpZmllclNldEBAUUVBQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0luc3RhbmNlUGFydDo6U2V0QWN0dWFsVmFsdWUoY2xhc3MgQ1Byb3BlcnR5SW5mb3JtYXRpb24gKiBfX3B0cjY0LGNsYXNzIENWYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEFjdHVhbFZhbHVlQENJbnN0YW5jZVBhcnRAQFFFQUFKUEVBVkNQcm9wZXJ0eUluZm9ybWF0aW9uQEBQRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMaW1pdGF0aW9uTWFwcGluZzo6U2V0QWRkQ2hpbGRLZXlzKGludCkgX19wdHI2NA0KKz9TZXRBZGRDaGlsZEtleXNAQ0xpbWl0YXRpb25NYXBwaW5nQEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RhdGFUYWJsZTo6U2V0QWxsVG9EZWZhdWx0KHZvaWQpIF9fcHRyNjQNCis/U2V0QWxsVG9EZWZhdWx0QENEYXRhVGFibGVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGYXN0SGVhcDo6U2V0QWxsb2NhdGVkRGF0YUxlbmd0aCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldEFsbG9jYXRlZERhdGFMZW5ndGhAQ0Zhc3RIZWFwQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6U2V0QXJyYXlQcm9wRWxlbWVudEJ5SGFuZGxlKGxvbmcsbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QXJyYXlQcm9wRWxlbWVudEJ5SGFuZGxlQENXYmVtT2JqZWN0QEBVRUFBSkpKS0tQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OlNldEFycmF5UHJvcFJhbmdlQnlIYW5kbGUobG9uZyxsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEFycmF5UHJvcFJhbmdlQnlIYW5kbGVAQ1diZW1PYmplY3RAQFVFQUFKSkpLS0tQRUFYQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0sY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+LGNsYXNzIENGbGV4QXJyYXk+OjpTZXRBdChpbnQsY2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0gKiBfX3B0cjY0LGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QXRAPyRDUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFZDRmxleEFycmF5QEBAQFFFQUFYSFBFQVZDRmFzdFByb3BlcnR5QmFnSXRlbUBAUEVBUEVBVjJAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+OjpTZXRBdChpbnQsY2xhc3MgQ1dtaVRleHRTb3VyY2UgKiBfX3B0cjY0LGNsYXNzIENXbWlUZXh0U291cmNlICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QXRAPyRDUG9pbnRlckFycmF5QFZDV21pVGV4dFNvdXJjZUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNXbWlUZXh0U291cmNlQEBAQFZDRmxleEFycmF5QEBAQFFFQUFYSFBFQVZDV21pVGV4dFNvdXJjZUBAUEVBUEVBVjJAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OlNldENsYXNzTmFtZShjbGFzcyBDVmFyICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRDbGFzc05hbWVAQ0NsYXNzUGFydEBAUUVBQUpQRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMaW1pdGF0aW9uTWFwcGluZzo6U2V0Q2xhc3NPYmplY3QoY2xhc3MgQ1diZW1DbGFzcyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Q2xhc3NPYmplY3RAQ0xpbWl0YXRpb25NYXBwaW5nQEBRRUFBWFBFQVZDV2JlbUNsYXNzQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpTZXRDbGFzc1BhcnQodm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRDbGFzc1BhcnRAQ1diZW1DbGFzc0BAVUVBQUpQRUFYS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OlNldENsYXNzUGFydCh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldENsYXNzUGFydEBDV2JlbUluc3RhbmNlQEBVRUFBSlBFQVhLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OlNldENsYXNzUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nLGNsYXNzIENUeXBlZFZhbHVlICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRDbGFzc1F1YWxpZmllckBDQ2xhc3NQYXJ0QEBRRUFBSlBFQkdKUEVBVkNUeXBlZFZhbHVlQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0NsYXNzUGFydDo6U2V0Q2xhc3NRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENWYXIgKiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/U2V0Q2xhc3NRdWFsaWZpZXJAQ0NsYXNzUGFydEBAUUVBQUpQRUJHUEVBVkNWYXJAQEpAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RlY29yYXRpb25QYXJ0OjpTZXRDbGllbnRPbmx5KHZvaWQpIF9fcHRyNjQNCis/U2V0Q2xpZW50T25seUBDRGVjb3JhdGlvblBhcnRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENXYmVtT2JqZWN0OjpTZXRDbGllbnRPbmx5KHZvaWQpIF9fcHRyNjQNCis/U2V0Q2xpZW50T25seUBDV2JlbU9iamVjdEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Zhc3RIZWFwOjpTZXRDb250YWluZXIoY2xhc3MgQ0hlYXBDb250YWluZXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldENvbnRhaW5lckBDRmFzdEhlYXBAQFFFQUFYUEVBVkNIZWFwQ29udGFpbmVyQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RGF0YUBDQmFzaWNRdWFsaWZpZXJTZXRAQFFFQUFYUEVBRVBFQVZDRmFzdEhlYXBAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ2xhc3NBbmRNZXRob2RzOjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGNsYXNzIENXYmVtQ2xhc3MgKiBfX3B0cjY0LGNsYXNzIENDbGFzc0FuZE1ldGhvZHMgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERhdGFAQ0NsYXNzQW5kTWV0aG9kc0BAUUVBQVhQRUFFUEVBVkNXYmVtQ2xhc3NAQFBFQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGNsYXNzIENDbGFzc1BhcnRDb250YWluZXIgKiBfX3B0cjY0LGNsYXNzIENDbGFzc1BhcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERhdGFAQ0NsYXNzUGFydEBAUUVBQVhQRUFFUEVBVkNDbGFzc1BhcnRDb250YWluZXJAQFBFQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6OlNldERhdGEodW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RGF0YUBDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQFFFQUFYUEVBRUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRGF0YVRhYmxlOjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGludCxpbnQsY2xhc3MgQ0RhdGFUYWJsZUNvbnRhaW5lciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RGF0YUBDRGF0YVRhYmxlQEBRRUFBWFBFQUVISFBFQVZDRGF0YVRhYmxlQ29udGFpbmVyQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RlY29yYXRpb25QYXJ0OjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERhdGFAQ0RlY29yYXRpb25QYXJ0QEBRRUFBWFBFQUVAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRmFzdEhlYXA6OlNldERhdGEodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsY2xhc3MgQ0hlYXBDb250YWluZXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERhdGFAQ0Zhc3RIZWFwQEBRRUFBSFBFQUVQRUFWQ0hlYXBDb250YWluZXJAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSW5zdGFuY2VQYXJ0OjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGNsYXNzIENJbnN0YW5jZVBhcnRDb250YWluZXIgKiBfX3B0cjY0LGNsYXNzIENDbGFzc1BhcnQgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/U2V0RGF0YUBDSW5zdGFuY2VQYXJ0QEBRRUFBWFBFQUVQRUFWQ0luc3RhbmNlUGFydENvbnRhaW5lckBAQUVBVkNDbGFzc1BhcnRAQF9LQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNZXRob2RQYXJ0OjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGNsYXNzIENNZXRob2RQYXJ0Q29udGFpbmVyICogX19wdHI2NCxjbGFzcyBDTWV0aG9kUGFydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RGF0YUBDTWV0aG9kUGFydEBAUUVBQVhQRUFFUEVBVkNNZXRob2RQYXJ0Q29udGFpbmVyQEBQRUFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01ldGhvZFF1YWxpZmllclNldDo6U2V0RGF0YShjbGFzcyBDTWV0aG9kUGFydCAqIF9fcHRyNjQsY2xhc3MgQ01ldGhvZFBhcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREYXRhQENNZXRob2RRdWFsaWZpZXJTZXRAQFFFQUFYUEVBVkNNZXRob2RQYXJ0QEAwUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyOjpTZXREYXRhKGNsYXNzIENNZXRob2RQYXJ0ICogX19wdHI2NCxjbGFzcyBDTWV0aG9kUGFydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERhdGFAQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lckBAUUVBQVhQRUFWQ01ldGhvZFBhcnRAQDBQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQcm9wZXJ0eUxvb2t1cFRhYmxlOjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGNsYXNzIENQcm9wZXJ0eVRhYmxlQ29udGFpbmVyICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREYXRhQENQcm9wZXJ0eUxvb2t1cFRhYmxlQEBRRUFBWFBFQUVQRUFWQ1Byb3BlcnR5VGFibGVDb250YWluZXJAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUXVhbGlmaWVyU2V0OjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGNsYXNzIENRdWFsaWZpZXJTZXRDb250YWluZXIgKiBfX3B0cjY0LGNsYXNzIENCYXNpY1F1YWxpZmllclNldCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RGF0YUBDUXVhbGlmaWVyU2V0QEBRRUFBWFBFQUVQRUFWQ1F1YWxpZmllclNldENvbnRhaW5lckBAUEVBVkNCYXNpY1F1YWxpZmllclNldEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENRdWFsaWZpZXJTZXRMaXN0OjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGludCxjbGFzcyBDUXVhbGlmaWVyU2V0TGlzdENvbnRhaW5lciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RGF0YUBDUXVhbGlmaWVyU2V0TGlzdEBAUUVBQVhQRUFFSFBFQVZDUXVhbGlmaWVyU2V0TGlzdENvbnRhaW5lckBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTaGFyZWRMb2NrOjpTZXREYXRhKHN0cnVjdCBTSEFSRURfTE9DS19EQVRBICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREYXRhQENTaGFyZWRMb2NrQEBRRUFBWFBFQVVTSEFSRURfTE9DS19EQVRBQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDV2JlbUNsYXNzOjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9TZXREYXRhQENXYmVtQ2xhc3NAQFVFQUFYUEVBRUhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1diZW1EYXRhUGFja2V0OjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsYm9vbCkgX19wdHI2NA0KKz9TZXREYXRhQENXYmVtRGF0YVBhY2tldEBAUUVBQVhQRUFFS19OQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OlNldERhdGEodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0RGF0YUBDV2JlbUluc3RhbmNlQEBRRUFBWFBFQUVIS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OlNldERhdGEodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1NldERhdGFAQ1diZW1JbnN0YW5jZUBAVUVBQVhQRUFFSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDV2JlbU10Z3REZWxpdmVyRXZlbnRQYWNrZXQ6OlNldERhdGEodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxib29sKSBfX3B0cjY0DQorP1NldERhdGFAQ1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0QEBRRUFBWFBFQUVLX05AWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1diZW1PYmplY3RBcnJheVBhY2tldDo6U2V0RGF0YSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGJvb2wpIF9fcHRyNjQNCis/U2V0RGF0YUBDV2JlbU9iamVjdEFycmF5UGFja2V0QEBRRUFBWFBFQUVLX05AWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1diZW1TbWFydEVudW1OZXh0UGFja2V0OjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsYm9vbCkgX19wdHI2NA0KKz9TZXREYXRhQENXYmVtU21hcnRFbnVtTmV4dFBhY2tldEBAUUVBQVhQRUFFS19OQFoNCis7IHByb3RlY3RlZDogc3RhdGljIHZvaWQgX19jZGVjbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OlNldERhdGFMZW5ndGgodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/U2V0RGF0YUxlbmd0aEBDQmFzaWNRdWFsaWZpZXJTZXRAQEtBWFBFQUVLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDbGFzc1BhcnQ6OlNldERhdGFMZW5ndGgodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXREYXRhTGVuZ3RoQENDbGFzc1BhcnRAQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSW5zdGFuY2VQYXJ0OjpTZXREYXRhTGVuZ3RoKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0RGF0YUxlbmd0aEBDSW5zdGFuY2VQYXJ0QEBRRUFBWEtAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENCYXNpY1F1YWxpZmllclNldDo6U2V0RGF0YVRvTm9uZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCkNCis/U2V0RGF0YVRvTm9uZUBDQmFzaWNRdWFsaWZpZXJTZXRAQFNBWFBFQUVAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NsYXNzQW5kTWV0aG9kczo6U2V0RGF0YVdpdGhOdW1Qcm9wcyh1bnNpZ25lZCBjaGFyICogX19wdHI2NCxjbGFzcyBDV2JlbUNsYXNzICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGNsYXNzIENDbGFzc0FuZE1ldGhvZHMgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERhdGFXaXRoTnVtUHJvcHNAQ0NsYXNzQW5kTWV0aG9kc0BAUUVBQVhQRUFFUEVBVkNXYmVtQ2xhc3NAQEtQRUFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NsYXNzUGFydDo6U2V0RGF0YVdpdGhOdW1Qcm9wcyh1bnNpZ25lZCBjaGFyICogX19wdHI2NCxjbGFzcyBDQ2xhc3NQYXJ0Q29udGFpbmVyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGNsYXNzIENDbGFzc1BhcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERhdGFXaXRoTnVtUHJvcHNAQ0NsYXNzUGFydEBAUUVBQVhQRUFFUEVBVkNDbGFzc1BhcnRDb250YWluZXJAQEtQRUFWMUBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6U2V0RGVjb3JhdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERlY29yYXRpb25AQ1diZW1PYmplY3RAQFVFQUFKUEVCRzBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ0NsYXNzUGFydDo6U2V0RGVmYXVsdFZhbHVlKGNsYXNzIENQcm9wZXJ0eUluZm9ybWF0aW9uICogX19wdHI2NCxjbGFzcyBDVmFyICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREZWZhdWx0VmFsdWVAQ0NsYXNzUGFydEBASUVBQUpQRUFWQ1Byb3BlcnR5SW5mb3JtYXRpb25AQFBFQVZDVmFyQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0NsYXNzUGFydDo6U2V0RGVmYXVsdFZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDVmFyICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREZWZhdWx0VmFsdWVAQ0NsYXNzUGFydEBAUUVBQUpQRUJHUEVBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRGF0YVRhYmxlOjpTZXREZWZhdWx0bmVzcyhpbnQsaW50KSBfX3B0cjY0DQorP1NldERlZmF1bHRuZXNzQENEYXRhVGFibGVAQFFFQUFYSEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xpbWl0YXRpb25NYXBwaW5nOjpTZXRGbGFncyhsb25nKSBfX3B0cjY0DQorP1NldEZsYWdzQENMaW1pdGF0aW9uTWFwcGluZ0BAUUVBQVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nOjpTZXRGcm9tQXNjaWkoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9TZXRGcm9tQXNjaWlAQ0NvbXByZXNzZWRTdHJpbmdAQFFFQUFYUEVCRF9LQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nOjpTZXRGcm9tVW5pY29kZShpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEZyb21Vbmljb2RlQENDb21wcmVzc2VkU3RyaW5nQEBRRUFBWEhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nOjpTZXRGcm9tVW5pY29kZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RnJvbVVuaWNvZGVAQ0NvbXByZXNzZWRTdHJpbmdAQFFFQUFYUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDRmFzdEhlYXA6OlNldEluTGluZUxlbmd0aCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldEluTGluZUxlbmd0aEBDRmFzdEhlYXBAQElFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTGltaXRhdGlvbk1hcHBpbmc6OlNldEluY2x1ZGVEZXJpdmF0aW9uKGludCkgX19wdHI2NA0KKz9TZXRJbmNsdWRlRGVyaXZhdGlvbkBDTGltaXRhdGlvbk1hcHBpbmdAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTGltaXRhdGlvbk1hcHBpbmc6OlNldEluY2x1ZGVOYW1lc3BhY2UoaW50KSBfX3B0cjY0DQorP1NldEluY2x1ZGVOYW1lc3BhY2VAQ0xpbWl0YXRpb25NYXBwaW5nQEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xpbWl0YXRpb25NYXBwaW5nOjpTZXRJbmNsdWRlU2VydmVyKGludCkgX19wdHI2NA0KKz9TZXRJbmNsdWRlU2VydmVyQENMaW1pdGF0aW9uTWFwcGluZ0BAUUVBQVhIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OlNldEluaGVyaXRhbmNlQ2hhaW4obG9uZyx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEluaGVyaXRhbmNlQ2hhaW5AQ0NsYXNzUGFydEBAUUVBQUpKUEVBUEVBR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OlNldEluaGVyaXRhbmNlQ2hhaW4obG9uZyx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEluaGVyaXRhbmNlQ2hhaW5AQ1diZW1DbGFzc0BAVUVBQUpKUEVBUEVBR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OlNldEluaGVyaXRhbmNlQ2hhaW4obG9uZyx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEluaGVyaXRhbmNlQ2hhaW5AQ1diZW1JbnN0YW5jZUBAVUVBQUpKUEVBUEVBR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSW5zdGFuY2VQYXJ0OjpTZXRJbnN0YW5jZVF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyxjbGFzcyBDVHlwZWRWYWx1ZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0SW5zdGFuY2VRdWFsaWZpZXJAQ0luc3RhbmNlUGFydEBAUUVBQUpQRUJHSlBFQVZDVHlwZWRWYWx1ZUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OlNldEluc3RhbmNlUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDVmFyICogX19wdHI2NCxsb25nKSBfX3B0cjY0DQorP1NldEluc3RhbmNlUXVhbGlmaWVyQENJbnN0YW5jZVBhcnRAQFFFQUFKUEVCR1BFQVZDVmFyQEBKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGaXhlZEJTVFJBcnJheTo6U2V0TGVuZ3RoKGludCkgX19wdHI2NA0KKz9TZXRMZW5ndGhAQ0ZpeGVkQlNUUkFycmF5QEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RlY29yYXRpb25QYXJ0OjpTZXRMaW1pdGVkKHZvaWQpIF9fcHRyNjQNCis/U2V0TGltaXRlZEBDRGVjb3JhdGlvblBhcnRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDbGFzc1BhcnQ6OlNldExvY2FsaXplZChpbnQpIF9fcHRyNjQNCis/U2V0TG9jYWxpemVkQENDbGFzc1BhcnRAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSW5zdGFuY2VQYXJ0OjpTZXRMb2NhbGl6ZWQoaW50KSBfX3B0cjY0DQorP1NldExvY2FsaXplZEBDSW5zdGFuY2VQYXJ0QEBRRUFBWEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDV2JlbUNsYXNzOjpTZXRMb2NhbGl6ZWQoaW50KSBfX3B0cjY0DQorP1NldExvY2FsaXplZEBDV2JlbUNsYXNzQEBVRUFBWEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpTZXRMb2NhbGl6ZWQoaW50KSBfX3B0cjY0DQorP1NldExvY2FsaXplZEBDV2JlbUluc3RhbmNlQEBVRUFBWEhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGhvZFBhcnQ6OlNldE1ldGhvZE9yaWdpbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz9TZXRNZXRob2RPcmlnaW5AQ01ldGhvZFBhcnRAQFFFQUFKUEVCR0pAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpTZXRNZXRob2RPcmlnaW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/U2V0TWV0aG9kT3JpZ2luQENXYmVtQ2xhc3NAQFVFQUFKUEVCR0pAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpTZXRNZXRob2RPcmlnaW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/U2V0TWV0aG9kT3JpZ2luQENXYmVtSW5zdGFuY2VAQFVFQUFKUEVCR0pAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6U2V0TWV0aG9kUXVhbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRNZXRob2RRdWFsQENXYmVtT2JqZWN0QEBVRUFBSlBFQkcwSktLSktQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6U2V0TWV0aG9kUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyxjbGFzcyBDVHlwZWRWYWx1ZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TWV0aG9kUXVhbGlmaWVyQENXYmVtQ2xhc3NAQFVFQUFKUEVCRzBKUEVBVkNUeXBlZFZhbHVlQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpTZXRNZXRob2RRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nLGNsYXNzIENWYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldE1ldGhvZFF1YWxpZmllckBDV2JlbUNsYXNzQEBVRUFBSlBFQkcwSlBFQVZDVmFyQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpTZXRNZXRob2RRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nLGNsYXNzIENUeXBlZFZhbHVlICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRNZXRob2RRdWFsaWZpZXJAQ1diZW1JbnN0YW5jZUBAVUVBQUpQRUJHMEpQRUFWQ1R5cGVkVmFsdWVAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OlNldE1ldGhvZFF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcsY2xhc3MgQ1ZhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TWV0aG9kUXVhbGlmaWVyQENXYmVtSW5zdGFuY2VAQFVFQUFKUEVCRzBKUEVBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRGF0YVRhYmxlOjpTZXROdWxsbmVzcyhpbnQsaW50KSBfX3B0cjY0DQorP1NldE51bGxuZXNzQENEYXRhVGFibGVAQFFFQUFYSEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6U2V0T2JqUXVhbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsbG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldE9ialF1YWxAQ1diZW1PYmplY3RAQFVFQUFKUEVCR0pLS0pLUEVBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpTZXRPYmplY3RGbGFncyhsb25nLHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9TZXRPYmplY3RGbGFnc0BDV2JlbU9iamVjdEBAVUVBQUpKX0swQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OlNldE9iamVjdE1lbW9yeSh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldE9iamVjdE1lbW9yeUBDV2JlbU9iamVjdEBAVUVBQUpQRUFYS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OlNldE9iamVjdFBhcnRzKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRPYmplY3RQYXJ0c0BDV2JlbUNsYXNzQEBVRUFBSlBFQVhLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OlNldE9iamVjdFBhcnRzKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRPYmplY3RQYXJ0c0BDV2JlbUluc3RhbmNlQEBVRUFBSlBFQVhLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjpTZXRPcmlnaW4oZW51bSB0YWdfV01JX1RIUkVBRF9TRUNVUklUWV9PUklHSU4pIF9fcHRyNjQNCis/U2V0T3JpZ2luQENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFFFQUFYVzR0YWdfV01JX1RIUkVBRF9TRUNVUklUWV9PUklHSU5AQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpTZXRQcm9wQnlIYW5kbGUobG9uZyxsb25nLHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UHJvcEJ5SGFuZGxlQENXYmVtT2JqZWN0QEBVRUFBSkpKS1BFQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6U2V0UHJvcFF1YWwodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxsb25nLHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UHJvcFF1YWxAQ1diZW1PYmplY3RAQFVFQUFKUEVCRzBKS0tKS1BFQVhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0NsYXNzUGFydDo6U2V0UHJvcFF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcsY2xhc3MgQ1R5cGVkVmFsdWUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFByb3BRdWFsaWZpZXJAQ0NsYXNzUGFydEBAUUVBQUpQRUJHMEpQRUFWQ1R5cGVkVmFsdWVAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQ2xhc3NQYXJ0OjpTZXRQcm9wUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyxjbGFzcyBDVmFyICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQcm9wUXVhbGlmaWVyQENDbGFzc1BhcnRAQFFFQUFKUEVCRzBKUEVBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OlNldFByb3BRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nLGNsYXNzIENUeXBlZFZhbHVlICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQcm9wUXVhbGlmaWVyQENXYmVtQ2xhc3NAQFVFQUFKUEVCRzBKUEVBVkNUeXBlZFZhbHVlQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpTZXRQcm9wUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyxjbGFzcyBDVmFyICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQcm9wUXVhbGlmaWVyQENXYmVtQ2xhc3NAQFVFQUFKUEVCRzBKUEVBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OlNldFByb3BRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nLGNsYXNzIENUeXBlZFZhbHVlICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQcm9wUXVhbGlmaWVyQENXYmVtSW5zdGFuY2VAQFVFQUFKUEVCRzBKUEVBVkNUeXBlZFZhbHVlQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpTZXRQcm9wUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyxjbGFzcyBDVmFyICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQcm9wUXVhbGlmaWVyQENXYmVtSW5zdGFuY2VAQFVFQUFKUEVCRzBKUEVBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OlNldFByb3BWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1ZhciAqIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz9TZXRQcm9wVmFsdWVAQ1diZW1DbGFzc0BAVUVBQUpQRUJHUEVBVkNWYXJAQEpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpTZXRQcm9wVmFsdWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENWYXIgKiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/U2V0UHJvcFZhbHVlQENXYmVtSW5zdGFuY2VAQFVFQUFKUEVCR1BFQVZDVmFyQEBKQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OlNldFByb3BlcnR5T3JpZ2luKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nKSBfX3B0cjY0DQorP1NldFByb3BlcnR5T3JpZ2luQENDbGFzc1BhcnRAQFFFQUFKUEVCR0pAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpTZXRQcm9wZXJ0eU9yaWdpbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz9TZXRQcm9wZXJ0eU9yaWdpbkBDV2JlbUNsYXNzQEBVRUFBSlBFQkdKQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6U2V0UHJvcGVydHlPcmlnaW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/U2V0UHJvcGVydHlPcmlnaW5AQ1diZW1JbnN0YW5jZUBAVUVBQUpQRUJHSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OlNldFF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyxjbGFzcyBDVHlwZWRWYWx1ZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UXVhbGlmaWVyQENXYmVtQ2xhc3NAQFVFQUFKUEVCR0pQRUFWQ1R5cGVkVmFsdWVAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OlNldFF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1ZhciAqIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz9TZXRRdWFsaWZpZXJAQ1diZW1DbGFzc0BAVUVBQUpQRUJHUEVBVkNWYXJAQEpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpTZXRRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcsY2xhc3MgQ1R5cGVkVmFsdWUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFF1YWxpZmllckBDV2JlbUluc3RhbmNlQEBVRUFBSlBFQkdKUEVBVkNUeXBlZFZhbHVlQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpTZXRRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENWYXIgKiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/U2V0UXVhbGlmaWVyQENXYmVtSW5zdGFuY2VAQFVFQUFKUEVCR1BFQVZDVmFyQEBKQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpTZXRRdWFsaWZpZXJBcnJheVJhbmdlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50LGxvbmcsdW5zaWduZWQgbG9uZyxsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFF1YWxpZmllckFycmF5UmFuZ2VAQ1diZW1PYmplY3RAQFFFQUFKUEVCRzBISktKS0tLUEVBWEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDUXVhbGlmaWVyU2V0OjpTZXRRdWFsaWZpZXJWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcixjbGFzcyBDVHlwZWRWYWx1ZSAqIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz9TZXRRdWFsaWZpZXJWYWx1ZUBDUXVhbGlmaWVyU2V0QEBRRUFBSlBFQkdFUEVBVkNUeXBlZFZhbHVlQEBISEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1VudHlwZWRBcnJheTo6U2V0UmFuZ2UoY2xhc3MgQ1B0clNvdXJjZSAqIF9fcHRyNjQsbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCkNCis/U2V0UmFuZ2VAQ1VudHlwZWRBcnJheUBAU0FKUEVBVkNQdHJTb3VyY2VAQEpLS1BFQVZDRmFzdEhlYXBAQEtLS1BFQVhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0luc3RhbmNlUFFTQ29udGFpbmVyOjpTZXRTZWNvbmRhcnlTZXREYXRhKHZvaWQpIF9fcHRyNjQNCis/U2V0U2Vjb25kYXJ5U2V0RGF0YUBDSW5zdGFuY2VQUVNDb250YWluZXJAQFFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OlNldFNlcnZlck5hbWVzcGFjZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFNlcnZlck5hbWVzcGFjZUBDV2JlbU9iamVjdEBAVUVBQUpQRUJHMEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtUmVmcmVzaGluZ1N2Yzo6U2V0U2VydmljZURhdGEodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRTZXJ2aWNlRGF0YUBDV2JlbVJlZnJlc2hpbmdTdmNAQE1FQUFKUEVBRzBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVJlZnJlc2hpbmdTdmM6OlhDZmdSZWZyU3J2Yzo6U2V0U2VydmljZURhdGEodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRTZXJ2aWNlRGF0YUBYQ2ZnUmVmclNydmNAQ1diZW1SZWZyZXNoaW5nU3ZjQEBVRUFBSlBFQUcwQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNZXRob2REZXNjcmlwdGlvbjo6U2V0U2lnKGludCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFNpZ0BDTWV0aG9kRGVzY3JpcHRpb25AQFFFQUFYSEtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGhvZFBhcnQ6OlNldFNpZ25hdHVyZShpbnQsZW51bSBNRVRIT0RfU0lHTkFUVVJFX1RZUEUsY2xhc3MgQ1diZW1PYmplY3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFNpZ25hdHVyZUBDTWV0aG9kUGFydEBASUVBQUpIVzRNRVRIT0RfU0lHTkFUVVJFX1RZUEVAQFBFQVZDV2JlbU9iamVjdEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0sY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+LGNsYXNzIENGbGV4QXJyYXk+OjpTZXRTaXplKGludCkgX19wdHI2NA0KKz9TZXRTaXplQD8kQ1BvaW50ZXJBcnJheUBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQEBWQ0ZsZXhBcnJheUBAQEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT46OlNldFNpemUoaW50KSBfX3B0cjY0DQorP1NldFNpemVAPyRDUG9pbnRlckFycmF5QFZDV21pVGV4dFNvdXJjZUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNXbWlUZXh0U291cmNlQEBAQFZDRmxleEFycmF5QEBAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2FsbFNlY3VyaXR5OjpTZXRUaHJlYWRTZWN1cml0eShzdHJ1Y3QgX0lXbWlUaHJlYWRTZWNIYW5kbGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFRocmVhZFNlY3VyaXR5QENXYmVtQ2FsbFNlY3VyaXR5QEBVRUFBSlBFQVVfSVdtaVRocmVhZFNlY0hhbmRsZUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGYXN0SGVhcDo6U2V0VXNlZExlbmd0aCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFVzZWRMZW5ndGhAQ0Zhc3RIZWFwQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xpbWl0YXRpb25NYXBwaW5nOjpTZXRWdGFibGVMZW5ndGgodW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/U2V0VnRhYmxlTGVuZ3RoQENMaW1pdGF0aW9uTWFwcGluZ0BAUUVBQVhLSEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDV2JlbURhdGFQYWNrZXQ6OlNldHVwRGF0YVBhY2tldEhlYWRlcih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldHVwRGF0YVBhY2tldEhlYWRlckBDV2JlbURhdGFQYWNrZXRAQElFQUFKS0VLS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENMaW1pdGF0aW9uTWFwcGluZzo6U2hvdWxkQWRkQ2hpbGRLZXlzKHZvaWQpIF9fcHRyNjQNCis/U2hvdWxkQWRkQ2hpbGRLZXlzQENMaW1pdGF0aW9uTWFwcGluZ0BAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTGltaXRhdGlvbk1hcHBpbmc6OlNob3VsZEluY2x1ZGVEZXJpdmF0aW9uKHZvaWQpIF9fcHRyNjQNCis/U2hvdWxkSW5jbHVkZURlcml2YXRpb25AQ0xpbWl0YXRpb25NYXBwaW5nQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENMaW1pdGF0aW9uTWFwcGluZzo6U2hvdWxkSW5jbHVkZU5hbWVzcGFjZSh2b2lkKSBfX3B0cjY0DQorP1Nob3VsZEluY2x1ZGVOYW1lc3BhY2VAQ0xpbWl0YXRpb25NYXBwaW5nQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENMaW1pdGF0aW9uTWFwcGluZzo6U2hvdWxkSW5jbHVkZVNlcnZlcih2b2lkKSBfX3B0cjY0DQorP1Nob3VsZEluY2x1ZGVTZXJ2ZXJAQ0xpbWl0YXRpb25NYXBwaW5nQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENGYXN0UHJvcGVydHlCYWc6OlNpemUodm9pZCkgX19wdHI2NA0KKz9TaXplQENGYXN0UHJvcGVydHlCYWdAQFFFQUFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OlNraXAodm9pZCkgX19wdHI2NA0KKz9Ta2lwQENCYXNpY1F1YWxpZmllclNldEBAUUVBQVBFQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENGYXN0SGVhcDo6U2tpcCh2b2lkKSBfX3B0cjY0DQorP1NraXBAQ0Zhc3RIZWFwQEBRRUFBUEVBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1Byb3BlcnR5TG9va3VwVGFibGU6OlNraXAodm9pZCkgX19wdHI2NA0KKz9Ta2lwQENQcm9wZXJ0eUxvb2t1cFRhYmxlQEBRRUFBUEVBRVhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRml4ZWRCU1RSQXJyYXk6OlNvcnRJblBsYWNlKHZvaWQpIF9fcHRyNjQNCis/U29ydEluUGxhY2VAQ0ZpeGVkQlNUUkFycmF5QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OlNwYXduRGVyaXZlZENsYXNzKGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TcGF3bkRlcml2ZWRDbGFzc0BDV2JlbUNsYXNzQEBVRUFBSkpQRUFQRUFVSVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6U3Bhd25EZXJpdmVkQ2xhc3MobG9uZyxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NwYXduRGVyaXZlZENsYXNzQENXYmVtSW5zdGFuY2VAQFVFQUFKSlBFQVBFQVVJV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpTcGF3bkluc3RhbmNlKGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TcGF3bkluc3RhbmNlQENXYmVtQ2xhc3NAQFVFQUFKSlBFQVBFQVVJV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpTcGF3bkluc3RhbmNlKGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TcGF3bkluc3RhbmNlQENXYmVtSW5zdGFuY2VAQFVFQUFKSlBFQVBFQVVJV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpTcGF3bktleWVkSW5zdGFuY2UobG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IF9JV21pT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U3Bhd25LZXllZEluc3RhbmNlQENXYmVtQ2xhc3NAQFVFQUFKSlBFQkdQRUFQRUFVX0lXbWlPYmplY3RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OlNwYXduS2V5ZWRJbnN0YW5jZShsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgX0lXbWlPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TcGF3bktleWVkSW5zdGFuY2VAQ1diZW1JbnN0YW5jZUBAVUVBQUpKUEVCR1BFQVBFQVVfSVdtaU9iamVjdEBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmc6OlN0YXJ0c1dpdGhOb0Nhc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1N0YXJ0c1dpdGhOb0Nhc2VAQ0NvbXByZXNzZWRTdHJpbmdAQFFFQkFIUEVCR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtUmVtb3RlUmVmcmVzaGVyOjpYV2JlbVJlbW90ZVJlZnI6OlN0b3BSZWZyZXNoaW5nKGxvbmcsbG9uZyAqIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz9TdG9wUmVmcmVzaGluZ0BYV2JlbVJlbW90ZVJlZnJAQ1diZW1SZW1vdGVSZWZyZXNoZXJAQFVFQUFKSlBFQUpKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENFbWJlZGRlZE9iamVjdDo6U3RvcmVFbWJlZGRlZCh1bnNpZ25lZCBsb25nLGNsYXNzIENWYXIgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1N0b3JlRW1iZWRkZWRAQ0VtYmVkZGVkT2JqZWN0QEBRRUFBWEtBRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENFbWJlZGRlZE9iamVjdDo6U3RvcmVFbWJlZGRlZCh1bnNpZ25lZCBsb25nLGNsYXNzIENXYmVtT2JqZWN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TdG9yZUVtYmVkZGVkQENFbWJlZGRlZE9iamVjdEBAUUVBQVhLUEVBVkNXYmVtT2JqZWN0QEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ1F1YWxpZmllclNldDo6U3RvcmVRdWFsaWZpZXJDb25mbGljdHModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENWYXIgJiBfX3B0cjY0LGNsYXNzIENRdWFsaWZpZXJGbGF2b3IgJiBfX3B0cjY0LGNsYXNzIENWYXJWZWN0b3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1N0b3JlUXVhbGlmaWVyQ29uZmxpY3RzQENRdWFsaWZpZXJTZXRAQElFQUFKUEVCR0FFQVZDVmFyQEBBRUFWQ1F1YWxpZmllckZsYXZvckBAQUVBVkNWYXJWZWN0b3JAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nOjpTdG9yZVRvQ1ZhcihjbGFzcyBDVmFyICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9TdG9yZVRvQ1ZhckBDQ29tcHJlc3NlZFN0cmluZ0BAUUVCQUhBRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENFbWJlZGRlZE9iamVjdDo6U3RvcmVUb0NWYXIoY2xhc3MgQ1ZhciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U3RvcmVUb0NWYXJAQ0VtYmVkZGVkT2JqZWN0QEBRRUFBWEFFQVZDVmFyQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpTdHJpcENsYXNzUGFydCh2b2lkKSBfX3B0cjY0DQorP1N0cmlwQ2xhc3NQYXJ0QENXYmVtQ2xhc3NAQFVFQUFKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6U3RyaXBDbGFzc1BhcnQodm9pZCkgX19wdHI2NA0KKz9TdHJpcENsYXNzUGFydEBDV2JlbUluc3RhbmNlQEBVRUFBSlhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5Pjo6U3dhcChpbnQsaW50KSBfX3B0cjY0DQorP1N3YXBAPyRDUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFZDRmxleEFycmF5QEBAQFFFQUFYSEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT46OlN3YXAoaW50LGludCkgX19wdHI2NA0KKz9Td2FwQD8kQ1BvaW50ZXJBcnJheUBWQ1dtaVRleHRTb3VyY2VAQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDV21pVGV4dFNvdXJjZUBAQEBWQ0ZsZXhBcnJheUBAQEBRRUFBWEhIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OlRlc3RDaXJjdWxhclJlZmVyZW5jZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VGVzdENpcmN1bGFyUmVmZXJlbmNlQENDbGFzc1BhcnRAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRml4ZWRCU1RSQXJyYXk6OlRocmVlV2F5TWVyZ2VPcmRlcmVkKGNsYXNzIENGaXhlZEJTVFJBcnJheSAmIF9fcHRyNjQsY2xhc3MgQ0ZpeGVkQlNUUkFycmF5ICYgX19wdHI2NCxjbGFzcyBDRml4ZWRCU1RSQXJyYXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1RocmVlV2F5TWVyZ2VPcmRlcmVkQENGaXhlZEJTVFJBcnJheUBAUUVBQVhBRUFWMUAwMEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OlRyYW5zbGF0ZVRvTmV3SGVhcChjbGFzcyBDUHRyU291cmNlICogX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQpDQorP1RyYW5zbGF0ZVRvTmV3SGVhcEBDQmFzaWNRdWFsaWZpZXJTZXRAQFNBSFBFQVZDUHRyU291cmNlQEBQRUFWQ0Zhc3RIZWFwQEAxQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NvbXByZXNzZWRTdHJpbmc6OlRyYW5zbGF0ZVRvTmV3SGVhcChjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VHJhbnNsYXRlVG9OZXdIZWFwQENDb21wcmVzc2VkU3RyaW5nQEBRRUFBSFBFQVZDRmFzdEhlYXBAQDBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGF0YVRhYmxlOjpUcmFuc2xhdGVUb05ld0hlYXAoY2xhc3MgQ1Byb3BlcnR5TG9va3VwVGFibGUgKiBfX3B0cjY0LGludCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VHJhbnNsYXRlVG9OZXdIZWFwQENEYXRhVGFibGVAQFFFQUFIUEVBVkNQcm9wZXJ0eUxvb2t1cFRhYmxlQEBIUEVBVkNGYXN0SGVhcEBAMUBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OlRyYW5zbGF0ZVRvTmV3SGVhcChjbGFzcyBDQ2xhc3NQYXJ0ICYgX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VHJhbnNsYXRlVG9OZXdIZWFwQENJbnN0YW5jZVBhcnRAQFFFQUFIQUVBVkNDbGFzc1BhcnRAQFBFQVZDRmFzdEhlYXBAQDFAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUXVhbGlmaWVyU2V0TGlzdDo6VHJhbnNsYXRlVG9OZXdIZWFwKGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCkgX19wdHI2NA0KKz9UcmFuc2xhdGVUb05ld0hlYXBAQ1F1YWxpZmllclNldExpc3RAQFFFQUFIUEVBVkNGYXN0SGVhcEBAMEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDVW50eXBlZEFycmF5OjpUcmFuc2xhdGVUb05ld0hlYXAoY2xhc3MgQ1B0clNvdXJjZSAqIF9fcHRyNjQsY2xhc3MgQ1R5cGUsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0KQ0KKz9UcmFuc2xhdGVUb05ld0hlYXBAQ1VudHlwZWRBcnJheUBAU0FIUEVBVkNQdHJTb3VyY2VAQFZDVHlwZUBAUEVBVkNGYXN0SGVhcEBAMkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5Pjo6VHJpbSh2b2lkKSBfX3B0cjY0DQorP1RyaW1APyRDUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFZDRmxleEFycmF5QEBAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+OjpUcmltKHZvaWQpIF9fcHRyNjQNCis/VHJpbUA/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Zhc3RIZWFwOjpUcmltKHZvaWQpIF9fcHRyNjQNCis/VHJpbUBDRmFzdEhlYXBAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbnRlcm5hbFN0cmluZzo6VW5iaW5kKHZvaWQpIF9fcHRyNjQNCis/VW5iaW5kQENJbnRlcm5hbFN0cmluZ0BAUUVBQVhYWg0KKzsgcHVibGljOiBjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSAqIF9fcHRyNjQgKiBfX3B0cjY0IF9fY2RlY2wgQ1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT46OlVuYmluZFB0cih2b2lkKSBfX3B0cjY0DQorP1VuYmluZFB0ckA/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBAUUVBQVBFQVBFQVZDRmFzdFByb3BlcnR5QmFnSXRlbUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ1dtaVRleHRTb3VyY2UgKiBfX3B0cjY0ICogX19wdHI2NCBfX2NkZWNsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+OjpVbmJpbmRQdHIodm9pZCkgX19wdHI2NA0KKz9VbmJpbmRQdHJAPyRDUG9pbnRlckFycmF5QFZDV21pVGV4dFNvdXJjZUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNXbWlUZXh0U291cmNlQEBAQFZDRmxleEFycmF5QEBAQFFFQUFQRUFQRUFWQ1dtaVRleHRTb3VyY2VAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENXYmVtQ2xhc3M6OlVuZGVjb3JhdGUodm9pZCkgX19wdHI2NA0KKz9VbmRlY29yYXRlQENXYmVtQ2xhc3NAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6VW5kZWNvcmF0ZSh2b2lkKSBfX3B0cjY0DQorP1VuZGVjb3JhdGVAQ1diZW1JbnN0YW5jZUBAVUVBQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1GZXRjaFJlZnJNZ3I6OlVuaW5pdCh2b2lkKSBfX3B0cjY0DQorP1VuaW5pdEBDV2JlbUZldGNoUmVmck1nckBAUUVBQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUZldGNoUmVmck1ncjo6WEZldGNoUmVmck1ncjo6VW5pbml0KHZvaWQpIF9fcHRyNjQNCis/VW5pbml0QFhGZXRjaFJlZnJNZ3JAQ1diZW1GZXRjaFJlZnJNZ3JAQFVFQUFKWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0hpUGVyZkxvY2s6OlVubG9jayh2b2lkKSBfX3B0cjY0DQorP1VubG9ja0BDSGlQZXJmTG9ja0BAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU2hhcmVkTG9jazo6VW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/VW5sb2NrQENTaGFyZWRMb2NrQEBRRUFBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpVbmxvY2sobG9uZykgX19wdHI2NA0KKz9VbmxvY2tAQ1diZW1PYmplY3RAQFVFQUFKSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpVbm1hcnNoYWxJbnRlcmZhY2Uoc3RydWN0IElTdHJlYW0gKiBfX3B0cjY0LHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1VubWFyc2hhbEludGVyZmFjZUBDV2JlbU9iamVjdEBAVUVBQUpQRUFVSVN0cmVhbUBAQUVCVV9HVUlEQEBQRUFQRUFYQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtTXRndERlbGl2ZXJFdmVudFBhY2tldDo6VW5tYXJzaGFsUGFja2V0KGxvbmcgJiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQgJiBfX3B0cjY0LGNsYXNzIENXYmVtQ2xhc3NDYWNoZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/VW5tYXJzaGFsUGFja2V0QENXYmVtTXRndERlbGl2ZXJFdmVudFBhY2tldEBAUUVBQUpBRUFKQUVBUEVBUEVBVUlXYmVtQ2xhc3NPYmplY3RAQEFFQVZDV2JlbUNsYXNzQ2FjaGVAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdEFycmF5UGFja2V0OjpVbm1hcnNoYWxQYWNrZXQobG9uZyAmIF9fcHRyNjQsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCAmIF9fcHRyNjQsY2xhc3MgQ1diZW1DbGFzc0NhY2hlICYgX19wdHI2NCkgX19wdHI2NA0KKz9Vbm1hcnNoYWxQYWNrZXRAQ1diZW1PYmplY3RBcnJheVBhY2tldEBAUUVBQUpBRUFKQUVBUEVBUEVBVUlXYmVtQ2xhc3NPYmplY3RAQEFFQVZDV2JlbUNsYXNzQ2FjaGVAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbVNtYXJ0RW51bU5leHRQYWNrZXQ6OlVubWFyc2hhbFBhY2tldChsb25nICYgX19wdHI2NCxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0ICYgX19wdHI2NCxjbGFzcyBDV2JlbUNsYXNzQ2FjaGUgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1VubWFyc2hhbFBhY2tldEBDV2JlbVNtYXJ0RW51bU5leHRQYWNrZXRAQFFFQUFKQUVBSkFFQVBFQVBFQVVJV2JlbUNsYXNzT2JqZWN0QEBBRUFWQ1diZW1DbGFzc0NhY2hlQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OlVubWVyZ2UodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0KQ0KKz9Vbm1lcmdlQENCYXNpY1F1YWxpZmllclNldEBAU0FQRUFFUEVBRVBFQVZDRmFzdEhlYXBAQDAxQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDQ2xhc3NBbmRNZXRob2RzOjpVbm1lcmdlKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/VW5tZXJnZUBDQ2xhc3NBbmRNZXRob2RzQEBRRUFBUEVBRVBFQUVLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDQ2xhc3NQYXJ0OjpVbm1lcmdlKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9Vbm1lcmdlQENDbGFzc1BhcnRAQFFFQUFQRUFFUEVBRUhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENEYXRhVGFibGU6OlVubWVyZ2UoY2xhc3MgQ1Byb3BlcnR5TG9va3VwVGFibGUgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCkgX19wdHI2NA0KKz9Vbm1lcmdlQENEYXRhVGFibGVAQFFFQUFQRUFFUEVBVkNQcm9wZXJ0eUxvb2t1cFRhYmxlQEBQRUFWQ0Zhc3RIZWFwQEBQRUFFMUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0Rlcml2YXRpb25MaXN0OjpVbm1lcmdlKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1VubWVyZ2VAQ0Rlcml2YXRpb25MaXN0QEBRRUFBUEVBRVBFQUVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENNZXRob2RQYXJ0OjpVbm1lcmdlKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/VW5tZXJnZUBDTWV0aG9kUGFydEBAUUVBQVBFQUVQRUFFS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1Byb3BlcnR5TG9va3VwVGFibGU6OlVubWVyZ2UoY2xhc3MgQ0RhdGFUYWJsZSAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1VubWVyZ2VAQ1Byb3BlcnR5TG9va3VwVGFibGVAQFFFQUFQRUFFUEVBVkNEYXRhVGFibGVAQFBFQVZDRmFzdEhlYXBAQFBFQUUxQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6VW5tZXJnZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCxpbnQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VW5tZXJnZUBDV2JlbUNsYXNzQEBVRUFBSlBFQUVIUEVBS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OlVubWVyZ2UodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1VubWVyZ2VAQ1diZW1JbnN0YW5jZUBAVUVBQUpQRUFFSFBFQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OlVubWVyZ2UodW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1VubWVyZ2VAQ1diZW1PYmplY3RAQFFFQUFLUEVBUEVBRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpVbm1lcmdlKGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9Vbm1lcmdlQENXYmVtT2JqZWN0QEBVRUFBSkpLUEVBS1BFQVhAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENDbGFzc0FuZE1ldGhvZHM6OlVwZGF0ZShjbGFzcyBDQ2xhc3NBbmRNZXRob2RzICYgX19wdHI2NCxjbGFzcyBDQ2xhc3NBbmRNZXRob2RzICYgX19wdHI2NCxsb25nKQ0KKz9VcGRhdGVAQ0NsYXNzQW5kTWV0aG9kc0BAU0FKQUVBVjFAMEpAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENDbGFzc1BhcnQ6OlVwZGF0ZShjbGFzcyBDQ2xhc3NQYXJ0ICYgX19wdHI2NCxjbGFzcyBDQ2xhc3NQYXJ0ICYgX19wdHI2NCxsb25nKQ0KKz9VcGRhdGVAQ0NsYXNzUGFydEBAU0FKQUVBVjFAMEpAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENNZXRob2RQYXJ0OjpVcGRhdGUoY2xhc3MgQ01ldGhvZFBhcnQgJiBfX3B0cjY0LGNsYXNzIENNZXRob2RQYXJ0ICYgX19wdHI2NCxsb25nKQ0KKz9VcGRhdGVAQ01ldGhvZFBhcnRAQFNBSkFFQVYxQDBKQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENRdWFsaWZpZXJTZXQ6OlVwZGF0ZShjbGFzcyBDQmFzaWNRdWFsaWZpZXJTZXQgJiBfX3B0cjY0LGxvbmcsY2xhc3MgQ0ZpeGVkQlNUUkFycmF5ICogX19wdHI2NCkgX19wdHI2NA0KKz9VcGRhdGVAQ1F1YWxpZmllclNldEBAUUVBQUpBRUFWQ0Jhc2ljUXVhbGlmaWVyU2V0QEBKUEVBVkNGaXhlZEJTVFJBcnJheUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtQ2xhc3M6OlVwZGF0ZShjbGFzcyBDV2JlbUNsYXNzICogX19wdHI2NCxsb25nLGNsYXNzIENXYmVtQ2xhc3MgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9VcGRhdGVAQ1diZW1DbGFzc0BAUUVBQUpQRUFWMUBKUEVBUEVBVjFAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6VXBkYXRlKHN0cnVjdCBfSVdtaU9iamVjdCAqIF9fcHRyNjQsbG9uZyxzdHJ1Y3QgX0lXbWlPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9VcGRhdGVAQ1diZW1DbGFzc0BAVUVBQUpQRUFVX0lXbWlPYmplY3RAQEpQRUFQRUFVMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpVcGRhdGUoc3RydWN0IF9JV21pT2JqZWN0ICogX19wdHI2NCxsb25nLHN0cnVjdCBfSVdtaU9iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1VwZGF0ZUBDV2JlbUluc3RhbmNlQEBVRUFBSlBFQVVfSVdtaU9iamVjdEBASlBFQVBFQVUyQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ0NsYXNzUGFydDo6VXBkYXRlUHJvcGVydGllcyhjbGFzcyBDQ2xhc3NQYXJ0ICYgX19wdHI2NCxjbGFzcyBDQ2xhc3NQYXJ0ICYgX19wdHI2NCxsb25nKQ0KKz9VcGRhdGVQcm9wZXJ0aWVzQENDbGFzc1BhcnRAQFNBSkFFQVYxQDBKQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DbGFzczo6VXBncmFkZShzdHJ1Y3QgX0lXbWlPYmplY3QgKiBfX3B0cjY0LGxvbmcsc3RydWN0IF9JV21pT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VXBncmFkZUBDV2JlbUNsYXNzQEBVRUFBSlBFQVVfSVdtaU9iamVjdEBASlBFQVBFQVUyQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OlVwZ3JhZGUoc3RydWN0IF9JV21pT2JqZWN0ICogX19wdHI2NCxsb25nLHN0cnVjdCBfSVdtaU9iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1VwZ3JhZGVAQ1diZW1JbnN0YW5jZUBAVUVBQUpQRUFVX0lXbWlPYmplY3RAQEpQRUFQRUFVMkBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2hhciBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nOjpVcHBlckJ5dGUodW5zaWduZWQgc2hvcnQpDQorP1VwcGVyQnl0ZUBDQ29tcHJlc3NlZFN0cmluZ0BAS0FER0BaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBDVHlwZSAgX19jZGVjbCBDVHlwZTo6VkFSVFlQRVRvVHlwZSh1bnNpZ25lZCBzaG9ydCkNCis/VkFSVFlQRVRvVHlwZUBDVHlwZUBAU0E/QVYxQEdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6VmFsaWRhdGUodm9pZCkgX19wdHI2NA0KKz9WYWxpZGF0ZUBDV2JlbUluc3RhbmNlQEBRRUFBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpWYWxpZGF0ZUJ1ZmZlcih1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KQ0KKz9WYWxpZGF0ZUJ1ZmZlckBDQmFzaWNRdWFsaWZpZXJTZXRAQFNBX0tQRUFFX0tAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIENDbGFzc0FuZE1ldGhvZHM6OlZhbGlkYXRlQnVmZmVyKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpDQorP1ZhbGlkYXRlQnVmZmVyQENDbGFzc0FuZE1ldGhvZHNAQFNBX0tQRUFFX0tAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIENDbGFzc1BhcnQ6OlZhbGlkYXRlQnVmZmVyKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpDQorP1ZhbGlkYXRlQnVmZmVyQENDbGFzc1BhcnRAQFNBX0tQRUFFX0tAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nTGlzdDo6VmFsaWRhdGVCdWZmZXIodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkNCis/VmFsaWRhdGVCdWZmZXJAQ0NvbXByZXNzZWRTdHJpbmdMaXN0QEBTQV9LUEVBRV9LQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBDRGF0YVRhYmxlOjpWYWxpZGF0ZUJ1ZmZlcih1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LGludCkNCis/VmFsaWRhdGVCdWZmZXJAQ0RhdGFUYWJsZUBAU0FfS1BFQUVfS0hAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIENEZWNvcmF0aW9uUGFydDo6VmFsaWRhdGVCdWZmZXIodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkNCis/VmFsaWRhdGVCdWZmZXJAQ0RlY29yYXRpb25QYXJ0QEBTQV9LUEVBRV9LQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDRW1iZWRkZWRPYmplY3Q6OlZhbGlkYXRlQnVmZmVyKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsY2xhc3Mgc3RkOjp2ZWN0b3I8c3RydWN0IEVtYmVkZGVkT2JqLGNsYXNzIHdiZW1fYWxsb2NhdG9yPHN0cnVjdCBFbWJlZGRlZE9iaj4gPiAmIF9fcHRyNjQpDQorP1ZhbGlkYXRlQnVmZmVyQENFbWJlZGRlZE9iamVjdEBAU0FYUEVBRV9LQUVBVj8kdmVjdG9yQFVFbWJlZGRlZE9iakBAVj8kd2JlbV9hbGxvY2F0b3JAVUVtYmVkZGVkT2JqQEBAQEBzdGRAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgQ0Zhc3RIZWFwOjpWYWxpZGF0ZUJ1ZmZlcih1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KQ0KKz9WYWxpZGF0ZUJ1ZmZlckBDRmFzdEhlYXBAQFNBX0tQRUFFX0tAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIENJbnN0YW5jZVBhcnQ6OlZhbGlkYXRlQnVmZmVyKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsY2xhc3MgQ0NsYXNzUGFydCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjp2ZWN0b3I8c3RydWN0IEVtYmVkZGVkT2JqLGNsYXNzIHdiZW1fYWxsb2NhdG9yPHN0cnVjdCBFbWJlZGRlZE9iaj4gPiAmIF9fcHRyNjQpDQorP1ZhbGlkYXRlQnVmZmVyQENJbnN0YW5jZVBhcnRAQFNBX0tQRUFFX0tBRUFWQ0NsYXNzUGFydEBAQUVBVj8kdmVjdG9yQFVFbWJlZGRlZE9iakBAVj8kd2JlbV9hbGxvY2F0b3JAVUVtYmVkZGVkT2JqQEBAQEBzdGRAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgQ01ldGhvZFBhcnQ6OlZhbGlkYXRlQnVmZmVyKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpDQorP1ZhbGlkYXRlQnVmZmVyQENNZXRob2RQYXJ0QEBTQV9LUEVBRV9LQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBDUHJvcGVydHlMb29rdXBUYWJsZTo6VmFsaWRhdGVCdWZmZXIodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkNCis/VmFsaWRhdGVCdWZmZXJAQ1Byb3BlcnR5TG9va3VwVGFibGVAQFNBX0tQRUFFX0tAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIENRdWFsaWZpZXJTZXRMaXN0OjpWYWxpZGF0ZUJ1ZmZlcih1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LGludCkNCis/VmFsaWRhdGVCdWZmZXJAQ1F1YWxpZmllclNldExpc3RAQFNBX0tQRUFFX0tIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBDV2JlbUNsYXNzOjpWYWxpZGF0ZUJ1ZmZlcih1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KQ0KKz9WYWxpZGF0ZUJ1ZmZlckBDV2JlbUNsYXNzQEBTQV9LUEVBRV9LQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBDV2JlbUluc3RhbmNlOjpWYWxpZGF0ZUJ1ZmZlcih1bnNpZ25lZCBjaGFyICogX19wdHI2NCxpbnQsdW5zaWduZWQgbG9uZyxjbGFzcyBzdGQ6OnZlY3RvcjxzdHJ1Y3QgRW1iZWRkZWRPYmosY2xhc3Mgd2JlbV9hbGxvY2F0b3I8c3RydWN0IEVtYmVkZGVkT2JqPiA+ICYgX19wdHI2NCkNCis/VmFsaWRhdGVCdWZmZXJAQ1diZW1JbnN0YW5jZUBAU0FfS1BFQUVIS0FFQVY/JHZlY3RvckBVRW1iZWRkZWRPYmpAQFY/JHdiZW1fYWxsb2NhdG9yQFVFbWJlZGRlZE9iakBAQEBAc3RkQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OlZhbGlkYXRlQnVmZmVyKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGludCxjbGFzcyBDV2JlbUluc3RhbmNlICogX19wdHI2NCxjbGFzcyBzdGQ6OnZlY3RvcjxzdHJ1Y3QgRW1iZWRkZWRPYmosY2xhc3Mgd2JlbV9hbGxvY2F0b3I8c3RydWN0IEVtYmVkZGVkT2JqPiA+ICYgX19wdHI2NCkNCis/VmFsaWRhdGVCdWZmZXJAQ1diZW1JbnN0YW5jZUBAU0FfS1BFQUVIUEVBVjFAQUVBVj8kdmVjdG9yQFVFbWJlZGRlZE9iakBAVj8kd2JlbV9hbGxvY2F0b3JAVUVtYmVkZGVkT2JqQEBAQEBzdGRAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6VmFsaWRhdGVCdWZmZXIodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCxjbGFzcyBzdGQ6OnZlY3RvcjxzdHJ1Y3QgRW1iZWRkZWRPYmosY2xhc3Mgd2JlbV9hbGxvY2F0b3I8c3RydWN0IEVtYmVkZGVkT2JqPiA+ICYgX19wdHI2NCkNCis/VmFsaWRhdGVCdWZmZXJAQ1diZW1JbnN0YW5jZUBAU0FfS1BFQUVfS0FFQVY/JHZlY3RvckBVRW1iZWRkZWRPYmpAQFY/JHdiZW1fYWxsb2NhdG9yQFVFbWJlZGRlZE9iakBAQEBAc3RkQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0xpbWl0YXRpb25NYXBwaW5nOjpWYWxpZGF0ZUluc3RhbmNlKGNsYXNzIENXYmVtSW5zdGFuY2UgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1ZhbGlkYXRlSW5zdGFuY2VAQ0xpbWl0YXRpb25NYXBwaW5nQEBRRUFBSlBFQVZDV2JlbUluc3RhbmNlQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6VmFsaWRhdGVPYmplY3QobG9uZykgX19wdHI2NA0KKz9WYWxpZGF0ZU9iamVjdEBDV2JlbU9iamVjdEBAVUVBQUpKQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRob2RQYXJ0OjpWYWxpZGF0ZU91dFBhcmFtcyhjbGFzcyBDV2JlbU9iamVjdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VmFsaWRhdGVPdXRQYXJhbXNAQ01ldGhvZFBhcnRAQElFQUFKUEVBVkNXYmVtT2JqZWN0QEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OlZhbGlkYXRlUGF0aChzdHJ1Y3QgUGFyc2VkT2JqZWN0UGF0aCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VmFsaWRhdGVQYXRoQENXYmVtT2JqZWN0QEBRRUFBSlBFQVVQYXJzZWRPYmplY3RQYXRoQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1Byb3BlcnR5TG9va3VwVGFibGU6OlZhbGlkYXRlUmFuZ2UodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCxjbGFzcyBDRGF0YVRhYmxlICogX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1ZhbGlkYXRlUmFuZ2VAQ1Byb3BlcnR5TG9va3VwVGFibGVAQFFFQUFKUEVBUEVBR1BFQVZDRGF0YVRhYmxlQEBQRUFWQ0Zhc3RIZWFwQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV2JlbU9iamVjdDo6VmFsaWRhdGVSYW5nZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1ZhbGlkYXRlUmFuZ2VAQ1diZW1PYmplY3RAQFFFQUFIUEVBUEVBR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDUXVhbGlmaWVyU2V0OjpWYWxpZGF0ZVNldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcixjbGFzcyBDVHlwZWRWYWx1ZSAqIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz9WYWxpZGF0ZVNldEBDUXVhbGlmaWVyU2V0QEBRRUFBSlBFQkdFUEVBVkNUeXBlZFZhbHVlQEBISEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nOjpWYWxpZGF0ZVNpemUoaW50KWNvbnN0ICBfX3B0cjY0DQorP1ZhbGlkYXRlU2l6ZUBDQ29tcHJlc3NlZFN0cmluZ0BAUUVCQUhIQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6V2JlbU9iamVjdEZyb21DT01QdHIoc3RydWN0IElVbmtub3duICogX19wdHI2NCxjbGFzcyBDV2JlbU9iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9XYmVtT2JqZWN0RnJvbUNPTVB0ckBDV2JlbU9iamVjdEBAU0FKUEVBVUlVbmtub3duQEBQRUFQRUFWMUBAWg0KKzsgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgV2JlbVN0cmluZ0NvcHkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9XYmVtU3RyaW5nQ29weUBAWUFQRUFHUEVCR0BaDQorOyB2b2lkIF9fY2RlY2wgV2JlbVN0cmluZ0ZyZWUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9XYmVtU3RyaW5nRnJlZUBAWUFYUEVBR0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDV2JlbVJlZnJlc2hpbmdTdmM6OldyYXBSZW1vdGVSZWZyZXNoZXIoc3RydWN0IElXYmVtUmVtb3RlUmVmcmVzaGVyICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/V3JhcFJlbW90ZVJlZnJlc2hlckBDV2JlbVJlZnJlc2hpbmdTdmNAQElFQUFKUEVBUEVBVUlXYmVtUmVtb3RlUmVmcmVzaGVyQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6V3JpdGVEV09SRChsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/V3JpdGVEV09SREBDV2JlbU9iamVjdEBAVUVBQUpKS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpXcml0ZURlcml2ZWRDbGFzcyh1bnNpZ25lZCBjaGFyICogX19wdHI2NCxpbnQsY2xhc3MgQ0RlY29yYXRpb25QYXJ0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Xcml0ZURlcml2ZWRDbGFzc0BDV2JlbUNsYXNzQEBRRUFBSlBFQUVIUEVBVkNEZWNvcmF0aW9uUGFydEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OldyaXRlUHJvcCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsbG9uZyx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9Xcml0ZVByb3BAQ1diZW1PYmplY3RAQFVFQUFKUEVCR0pLS0pQRUFYQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpXcml0ZVByb3BhZ2F0ZWRWZXJzaW9uKGNsYXNzIENQdHJTb3VyY2UgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIsY2xhc3MgQ1B0clNvdXJjZSAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0KQ0KKz9Xcml0ZVByb3BhZ2F0ZWRWZXJzaW9uQENCYXNpY1F1YWxpZmllclNldEBAU0FQRUFFUEVBVkNQdHJTb3VyY2VAQEUwUEVBVkNGYXN0SGVhcEBAMUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0RhdGFUYWJsZTo6V3JpdGVQcm9wYWdhdGVkVmVyc2lvbihjbGFzcyBDUHJvcGVydHlMb29rdXBUYWJsZSAqIF9fcHRyNjQsY2xhc3MgQ0Zhc3RIZWFwICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCxjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1dyaXRlUHJvcGFnYXRlZFZlcnNpb25AQ0RhdGFUYWJsZUBAUUVBQVBFQUVQRUFWQ1Byb3BlcnR5TG9va3VwVGFibGVAQFBFQVZDRmFzdEhlYXBAQFBFQUUxQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDUHJvcGVydHlMb29rdXBUYWJsZTo6V3JpdGVQcm9wYWdhdGVkVmVyc2lvbihjbGFzcyBDRmFzdEhlYXAgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGNsYXNzIENGYXN0SGVhcCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/V3JpdGVQcm9wYWdhdGVkVmVyc2lvbkBDUHJvcGVydHlMb29rdXBUYWJsZUBAUUVBQVBFQUVQRUFWQ0Zhc3RIZWFwQEBQRUFFMEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbUNsYXNzOjpXcml0ZVByb3BlcnR5QXNNZXRob2RQYXJhbShjbGFzcyBXU3RyaW5nICYgX19wdHI2NCxpbnQsbG9uZyxjbGFzcyBDV2JlbUNsYXNzICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/V3JpdGVQcm9wZXJ0eUFzTWV0aG9kUGFyYW1AQ1diZW1DbGFzc0BAUUVBQUpBRUFWV1N0cmluZ0BASEpQRUFWMUBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OldyaXRlUHJvcGVydHlWYWx1ZShsb25nLGxvbmcsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/V3JpdGVQcm9wZXJ0eVZhbHVlQENXYmVtT2JqZWN0QEBVRUFBSkpKUEVCRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtT2JqZWN0OjpXcml0ZVFXT1JEKGxvbmcsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9Xcml0ZVFXT1JEQENXYmVtT2JqZWN0QEBVRUFBSkpfS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0RhdGFUYWJsZTo6V3JpdGVTbWFsbGVyVmVyc2lvbihpbnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9Xcml0ZVNtYWxsZXJWZXJzaW9uQENEYXRhVGFibGVAQFFFQUFQRUFFSEtQRUFFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDUXVhbGlmaWVyU2V0TGlzdDo6V3JpdGVTbWFsbGVyVmVyc2lvbihpbnQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/V3JpdGVTbWFsbGVyVmVyc2lvbkBDUXVhbGlmaWVyU2V0TGlzdEBAUUVBQVBFQUVIUEVBRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtSW5zdGFuY2U6OldyaXRlVG9TdHJlYW0oc3RydWN0IElTdHJlYW0gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1dyaXRlVG9TdHJlYW1AQ1diZW1JbnN0YW5jZUBAVUVBQUpQRUFVSVN0cmVhbUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1PYmplY3Q6OldyaXRlVG9TdHJlYW0oc3RydWN0IElTdHJlYW0gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1dyaXRlVG9TdHJlYW1AQ1diZW1PYmplY3RAQFVFQUFKUEVBVUlTdHJlYW1AQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1diZW1JbnN0YW5jZTo6V3JpdGVUcmFuc2ZlckFycmF5SGVhZGVyKGxvbmcsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9Xcml0ZVRyYW5zZmVyQXJyYXlIZWFkZXJAQ1diZW1JbnN0YW5jZUBAU0FYSlBFQVBFQUVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbU9iamVjdDo6X0dldENvcmVJbmZvKGxvbmcsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP19HZXRDb3JlSW5mb0BDV2JlbU9iamVjdEBAVUVBQUpKUEVBUEVBWEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDQ29tcHJlc3NlZFN0cmluZzo6ZmFzdF93Y3NjcHkodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/ZmFzdF93Y3NjcHlAQ0NvbXByZXNzZWRTdHJpbmdAQFNBUEVBR1BFQUdQRUJHQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nOjpmYXN0X3djc2xlbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP2Zhc3Rfd2NzbGVuQENDb21wcmVzc2VkU3RyaW5nQEBTQUhQRUJHQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENDb21wcmVzc2VkU3RyaW5nOjpmYXN0X3djc25jcHkodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpDQorP2Zhc3Rfd2NzbmNweUBDQ29tcHJlc3NlZFN0cmluZ0BAU0FQRUFHUEVBR1BFQkdIQFoNCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIGNoYXIgKiAgQ1diZW1EYXRhUGFja2V0OjpzX2FiU2lnbmF0dXJlDQorP3NfYWJTaWduYXR1cmVAQ1diZW1EYXRhUGFja2V0QEAxUEFFQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0ICogIENSZXNlcnZlZFdvcmRUYWJsZTo6c19hcHdzelJlc2VydmVkV29yZHMNCis/c19hcHdzelJlc2VydmVkV29yZHNAQ1Jlc2VydmVkV29yZFRhYmxlQEAwUEFQRUJHQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjbGFzcyBDU3RhdGljQ3JpdFNlYyAgQ1diZW1GZXRjaFJlZnJNZ3I6OnNfY3MNCis/c19jc0BDV2JlbUZldGNoUmVmck1nckBAMVZDU3RhdGljQ3JpdFNlY0BAQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgX0lXYmVtUmVmcmVzaGVyTWdyICogX19wdHI2NCAgX19wdHI2NCBDV2JlbUZldGNoUmVmck1ncjo6c19wUmVmck1ncg0KKz9zX3BSZWZyTWdyQENXYmVtRmV0Y2hSZWZyTWdyQEAxUEVBVV9JV2JlbVJlZnJlc2hlck1nckBARUEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBjb25zdCAgX19wdHI2NCBDUmVzZXJ2ZWRXb3JkVGFibGU6OnNfcHN6U3RhcnRpbmdDaGFyc0xDYXNlDQorP3NfcHN6U3RhcnRpbmdDaGFyc0xDYXNlQENSZXNlcnZlZFdvcmRUYWJsZUBAMFBFQkdFQiBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IGNvbnN0ICBfX3B0cjY0IENSZXNlcnZlZFdvcmRUYWJsZTo6c19wc3pTdGFydGluZ0NoYXJzVUNhc2UNCis/c19wc3pTdGFydGluZ0NoYXJzVUNhc2VAQ1Jlc2VydmVkV29yZFRhYmxlQEAwUEVCR0VCIERBVEENCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldE9iamVjdENvdW50DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZmF1bHRyZXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZmF1bHRyZXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkzNGU3NGMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9mYXVsdHJlcC5kZWYKQEAgLTAsMCArMSwxOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBmYXVsdHJlcC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZmF1bHRyZXAuRExMDQorRVhQT1JUUw0KK0FkZEVSRXhjbHVkZWRBcHBsaWNhdGlvbkENCitBZGRFUkV4Y2x1ZGVkQXBwbGljYXRpb25XDQorQ3JlYXRlTWluaWR1bXBXDQorUmVwb3J0RVJFdmVudA0KK1JlcG9ydEVSRXZlbnREVw0KK1JlcG9ydEZhdWx0DQorUmVwb3J0RmF1bHREV00NCitSZXBvcnRGYXVsdEZyb21RdWV1ZQ0KK1JlcG9ydEZhdWx0VG9RdWV1ZQ0KK1JlcG9ydEhhbmcNCitSZXBvcnRLZXJuZWxGYXVsdERXVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2ZjYWNoZGxsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2ZjYWNoZGxsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NTIwOGJmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZmNhY2hkbGwuZGVmCkBAIC0wLDAgKzEsNDMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRkNBQ0hETEwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEZDQUNIRExMLmRsbA0KK0VYUE9SVFMNCitBZGRSZWZDb250ZXh0DQorQXNzb2NpYXRlQ29udGV4dFdpdGhOYW1lDQorQXNzb2NpYXRlRmlsZQ0KK0Fzc29jaWF0ZUZpbGVFeA0KK0NhY2hlQ3JlYXRlRmlsZQ0KK0NhY2hlUmVtb3ZlRmlsZXMNCitDYWNoZVJpY2hDcmVhdGVGaWxlDQorQ2xvc2VOb25DYWNoZWRGaWxlDQorQ29tcGxldGVEb3RTdHVmZmluZ09uV3JpdGVzDQorRklPSW5pdGlhbGl6ZQ0KK0ZJT1JlYWRGaWxlDQorRklPUmVhZEZpbGVFeA0KK0ZJT1Rlcm1pbmF0ZQ0KK0ZJT1dyaXRlRmlsZQ0KK0ZJT1dyaXRlRmlsZUV4DQorRmluZENvbnRleHRGcm9tTmFtZQ0KK0ZpbmRPckNyZWF0ZU5hbWVDYWNoZQ0KK0ZpbmRTeW5jQ29udGV4dEZyb21OYW1lDQorR2V0RG90U3R1ZmZTdGF0ZQ0KK0dldEZpbGVTaXplRnJvbUNvbnRleHQNCitHZXRJc0ZpbGVEb3RUZXJtaW5hdGVkDQorSW5pdGlhbGl6ZUNhY2hlDQorSW5zZXJ0RmlsZQ0KK0ludmFsaWRhdGVOYW1lDQorUHJvZHVjZURvdFN0dWZmZWRDb250ZXh0DQorUHJvZHVjZURvdFN0dWZmZWRDb250ZXh0SW5Db250ZXh0DQorUmVsZWFzZUNvbnRleHQNCitSZWxlYXNlTmFtZUNhY2hlDQorU2V0RG90U2Nhbm5pbmdPblJlYWRzDQorU2V0RG90U2Nhbm5pbmdPbldyaXRlcw0KK1NldERvdFN0dWZmU3RhdGUNCitTZXREb3RTdHVmZmluZ09uV3JpdGVzDQorU2V0SXNGaWxlRG90VGVybWluYXRlZA0KK1NldE5hbWVDYWNoZVNlY3VyaXR5RnVuY3Rpb24NCitUZXJtaW5hdGVDYWNoZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2ZkZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9mZGUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhlOWFlYTcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9mZGUuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRkRFLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBGREUuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZmRlcGxveS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9mZGVwbG95LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43Y2QyNmYyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZmRlcGxveS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGREVQTE9ZLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBGREVQTE9ZLmRsbA0KK0VYUE9SVFMNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitHZW5lcmF0ZUdyb3VwUG9saWN5DQorUHJvY2Vzc0dyb3VwUG9saWN5RXgNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9mZWNsaWVudC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9mZWNsaWVudC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2MxMjgyNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2ZlY2xpZW50LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRmVDbGllbnQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEZlQ2xpZW50LmRsbA0KK0VYUE9SVFMNCitGZUNsaWVudEluaXRpYWxpemUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9maWxlbWdtdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9maWxlbWdtdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDk3MDNmOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2ZpbGVtZ210LmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEZJTEVNR01ULkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBGSUxFTUdNVC5ETEwNCitFWFBPUlRTDQorQ2FjaGVTZXR0aW5nc0RsZw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZmxkcmNsbnIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZmxkcmNsbnIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc5ZDhmNGUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9mbGRyY2xuci5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGbGRyQ2xuci5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRmxkckNsbnIuZGxsDQorRVhQT1JUUw0KK0RsbEluc3RhbGwNCitEbGxNYWluDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitXaXphcmRfUnVuRExMDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZmx0bGliLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2ZsdGxpYi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTdiYzhkNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2ZsdGxpYi5kZWYKQEAgLTAsMCArMSwzNyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGTFRMSUIuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEZMVExJQi5ETEwNCitFWFBPUlRTDQorRmlsdGVyQXR0YWNoDQorRmlsdGVyQXR0YWNoQXRBbHRpdHVkZQ0KK0ZpbHRlckNsb3NlDQorRmlsdGVyQ29ubmVjdENvbW11bmljYXRpb25Qb3J0DQorRmlsdGVyQ3JlYXRlDQorRmlsdGVyRGV0YWNoDQorRmlsdGVyRmluZENsb3NlDQorRmlsdGVyRmluZEZpcnN0DQorRmlsdGVyRmluZE5leHQNCitGaWx0ZXJHZXREb3NOYW1lDQorRmlsdGVyR2V0SW5mb3JtYXRpb24NCitGaWx0ZXJHZXRNZXNzYWdlDQorRmlsdGVySW5zdGFuY2VDbG9zZQ0KK0ZpbHRlckluc3RhbmNlQ3JlYXRlDQorRmlsdGVySW5zdGFuY2VGaW5kQ2xvc2UNCitGaWx0ZXJJbnN0YW5jZUZpbmRGaXJzdA0KK0ZpbHRlckluc3RhbmNlRmluZE5leHQNCitGaWx0ZXJJbnN0YW5jZUdldEluZm9ybWF0aW9uDQorRmlsdGVyTG9hZA0KK0ZpbHRlclJlcGx5TWVzc2FnZQ0KK0ZpbHRlclNlbmRNZXNzYWdlDQorRmlsdGVyVW5sb2FkDQorRmlsdGVyVm9sdW1lQ2xvc2UNCitGaWx0ZXJWb2x1bWVGaW5kQ2xvc2UNCitGaWx0ZXJWb2x1bWVGaW5kRmlyc3QNCitGaWx0ZXJWb2x1bWVGaW5kTmV4dA0KK0ZpbHRlclZvbHVtZUluc3RhbmNlRmluZENsb3NlDQorRmlsdGVyVm9sdW1lSW5zdGFuY2VGaW5kRmlyc3QNCitGaWx0ZXJWb2x1bWVJbnN0YW5jZUZpbmROZXh0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZm1pZnMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZm1pZnMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVjYWM3NGMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9mbWlmcy5kZWYKQEAgLTAsMCArMSwyNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGTUlGUy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRk1JRlMuZGxsDQorRVhQT1JUUw0KK0Noa2Rzaw0KK0Noa2Rza0V4DQorQ29tcHV0ZUZtTWVkaWFUeXBlDQorRGlza0NvcHkNCitFbmFibGVWb2x1bWVDb21wcmVzc2lvbg0KK0V4dGVuZA0KK0Zvcm1hdA0KK0Zvcm1hdEV4DQorRm9ybWF0RXgyDQorUXVlcnlBdmFpbGFibGVGaWxlU3lzdGVtRm9ybWF0DQorUXVlcnlEZXZpY2VJbmZvcm1hdGlvbg0KK1F1ZXJ5RGV2aWNlSW5mb3JtYXRpb25CeUhhbmRsZQ0KK1F1ZXJ5RmlsZVN5c3RlbU5hbWUNCitRdWVyeUxhdGVzdEZpbGVTeXN0ZW1WZXJzaW9uDQorUXVlcnlTdXBwb3J0ZWRNZWRpYQ0KK1NldExhYmVsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZm9udGV4dC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9mb250ZXh0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNDg0YTA5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZm9udGV4dC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBmb250ZXh0LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBmb250ZXh0LmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2ZvbnRzdWIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZm9udHN1Yi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODQ5MDExZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2ZvbnRzdWIuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRk9OVFNVQi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRk9OVFNVQi5kbGwNCitFWFBPUlRTDQorQ3JlYXRlRm9udFBhY2thZ2UNCitNZXJnZUZvbnRQYWNrYWdlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZnJhbWVkeW4uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZnJhbWVkeW4uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmEyYjhhYjEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9mcmFtZWR5bi5kZWYKQEAgLTAsMCArMSwxMjE5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGZyYW1lZHluLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBmcmFtZWR5bi5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0F1dG9FdmVudDo6Q0F1dG9FdmVudCh2b2lkKSBfX3B0cjY0DQorPz8wQ0F1dG9FdmVudEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENGcmFtZXdvcmtRdWVyeTo6Q0ZyYW1ld29ya1F1ZXJ5KGNsYXNzIENGcmFtZXdvcmtRdWVyeSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRnJhbWV3b3JrUXVlcnlAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRnJhbWV3b3JrUXVlcnk6OkNGcmFtZXdvcmtRdWVyeSh2b2lkKSBfX3B0cjY0DQorPz8wQ0ZyYW1ld29ya1F1ZXJ5QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ZyYW1ld29ya1F1ZXJ5RXg6OkNGcmFtZXdvcmtRdWVyeUV4KGNsYXNzIENGcmFtZXdvcmtRdWVyeUV4IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENGcmFtZXdvcmtRdWVyeUV4QEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ZyYW1ld29ya1F1ZXJ5RXg6OkNGcmFtZXdvcmtRdWVyeUV4KHZvaWQpIF9fcHRyNjQNCis/PzBDRnJhbWV3b3JrUXVlcnlFeEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENIUHRyQXJyYXk6OkNIUHRyQXJyYXkodm9pZCkgX19wdHI2NA0KKz8/MENIUHRyQXJyYXlAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSFN0cmluZzo6Q0hTdHJpbmcoY2xhc3MgQ0hTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0hTdHJpbmdAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSFN0cmluZzo6Q0hTdHJpbmcodW5zaWduZWQgc2hvcnQsaW50KSBfX3B0cjY0DQorPz8wQ0hTdHJpbmdAQFFFQUFAR0hAWg0KKzsgcHVibGljOiBfX2NkZWNsIENIU3RyaW5nOjpDSFN0cmluZyhjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENIU3RyaW5nQEBRRUFBQFBFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIENIU3RyaW5nOjpDSFN0cmluZyh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENIU3RyaW5nQEBRRUFBQFBFQkVAWg0KKzsgcHVibGljOiBfX2NkZWNsIENIU3RyaW5nOjpDSFN0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSFN0cmluZ0BAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSFN0cmluZzo6Q0hTdHJpbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MENIU3RyaW5nQEBRRUFBQFBFQkdIQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSFN0cmluZzo6Q0hTdHJpbmcodm9pZCkgX19wdHI2NA0KKz8/MENIU3RyaW5nQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0hTdHJpbmdBcnJheTo6Q0hTdHJpbmdBcnJheSh2b2lkKSBfX3B0cjY0DQorPz8wQ0hTdHJpbmdBcnJheUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbnN0YW5jZTo6Q0luc3RhbmNlKGNsYXNzIENJbnN0YW5jZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSW5zdGFuY2VAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW5zdGFuY2U6OkNJbnN0YW5jZShzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQsY2xhc3MgTWV0aG9kQ29udGV4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSW5zdGFuY2VAQFFFQUFAUEVBVUlXYmVtQ2xhc3NPYmplY3RAQFBFQVZNZXRob2RDb250ZXh0QEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENPYmplY3RQYXRoUGFyc2VyOjpDT2JqZWN0UGF0aFBhcnNlcihlbnVtIE9iamVjdFBhcnNlckZsYWdzKSBfX3B0cjY0DQorPz8wQ09iamVjdFBhdGhQYXJzZXJAQFFFQUFAVzRPYmplY3RQYXJzZXJGbGFnc0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmVnaXN0cnk6OkNSZWdpc3RyeShjbGFzcyBDUmVnaXN0cnkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1JlZ2lzdHJ5QEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1JlZ2lzdHJ5OjpDUmVnaXN0cnkodm9pZCkgX19wdHI2NA0KKz8/MENSZWdpc3RyeUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENSZWdpc3RyeVNlYXJjaDo6Q1JlZ2lzdHJ5U2VhcmNoKGNsYXNzIENSZWdpc3RyeVNlYXJjaCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDUmVnaXN0cnlTZWFyY2hAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmVnaXN0cnlTZWFyY2g6OkNSZWdpc3RyeVNlYXJjaCh2b2lkKSBfX3B0cjY0DQorPz8wQ1JlZ2lzdHJ5U2VhcmNoQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1RocmVhZEJhc2U6OkNUaHJlYWRCYXNlKGNsYXNzIENUaHJlYWRCYXNlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENUaHJlYWRCYXNlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1RocmVhZEJhc2U6OkNUaHJlYWRCYXNlKGVudW0gQ1RocmVhZEJhc2U6OlRIUkVBRF9TQUZFVFlfTUVDSEFOSVNNKSBfX3B0cjY0DQorPz8wQ1RocmVhZEJhc2VAQFFFQUFAVzRUSFJFQURfU0FGRVRZX01FQ0hBTklTTUAwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1HbHVlRmFjdG9yeTo6Q1diZW1HbHVlRmFjdG9yeShjbGFzcyBDV2JlbUdsdWVGYWN0b3J5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENXYmVtR2x1ZUZhY3RvcnlAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbUdsdWVGYWN0b3J5OjpDV2JlbUdsdWVGYWN0b3J5KGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1diZW1HbHVlRmFjdG9yeUBAUUVBQUBQRUFKQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbUdsdWVGYWN0b3J5OjpDV2JlbUdsdWVGYWN0b3J5KHZvaWQpIF9fcHRyNjQNCis/PzBDV2JlbUdsdWVGYWN0b3J5QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkNXYmVtUHJvdmlkZXJHbHVlKGNsYXNzIENXYmVtUHJvdmlkZXJHbHVlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENXYmVtUHJvdmlkZXJHbHVlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkNXYmVtUHJvdmlkZXJHbHVlKGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1diZW1Qcm92aWRlckdsdWVAQFFFQUFAUEVBSkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkNXYmVtUHJvdmlkZXJHbHVlKHZvaWQpIF9fcHRyNjQNCis/PzBDV2JlbVByb3ZpZGVyR2x1ZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENXaW5Nc2dFdmVudDo6Q1dpbk1zZ0V2ZW50KGNsYXNzIENXaW5Nc2dFdmVudCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDV2luTXNnRXZlbnRAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2luTXNnRXZlbnQ6OkNXaW5Nc2dFdmVudCh2b2lkKSBfX3B0cjY0DQorPz8wQ1dpbk1zZ0V2ZW50QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ3JlYXRlTXV0ZXhBc1Byb2Nlc3M6OkNyZWF0ZU11dGV4QXNQcm9jZXNzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENyZWF0ZU11dGV4QXNQcm9jZXNzQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIEtleVJlZjo6S2V5UmVmKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgdGFnVkFSSUFOVCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBLZXlSZWZAQFFFQUFAUEVCR1BFQlV0YWdWQVJJQU5UQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIEtleVJlZjo6S2V5UmVmKHZvaWQpIF9fcHRyNjQNCis/PzBLZXlSZWZAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBNZXRob2RDb250ZXh0OjpNZXRob2RDb250ZXh0KGNsYXNzIE1ldGhvZENvbnRleHQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTWV0aG9kQ29udGV4dEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE1ldGhvZENvbnRleHQ6Ok1ldGhvZENvbnRleHQoc3RydWN0IElXYmVtQ29udGV4dCAqIF9fcHRyNjQsY2xhc3MgQ1diZW1Qcm92aWRlckdsdWUgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTWV0aG9kQ29udGV4dEBAUUVBQUBQRUFVSVdiZW1Db250ZXh0QEBQRUFWQ1diZW1Qcm92aWRlckdsdWVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUGFyc2VkT2JqZWN0UGF0aDo6UGFyc2VkT2JqZWN0UGF0aCh2b2lkKSBfX3B0cjY0DQorPz8wUGFyc2VkT2JqZWN0UGF0aEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZpZGVyOjpQcm92aWRlcihjbGFzcyBQcm92aWRlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92aWRlckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZpZGVyOjpQcm92aWRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdmlkZXJAQFFFQUFAUEVCRzBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZpZGVyTG9nOjpQcm92aWRlckxvZyhjbGFzcyBQcm92aWRlckxvZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92aWRlckxvZ0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZpZGVyTG9nOjpQcm92aWRlckxvZyh2b2lkKSBfX3B0cjY0DQorPz8wUHJvdmlkZXJMb2dAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBXQkVNVGltZTo6V0JFTVRpbWUoc3RydWN0IF9GSUxFVElNRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXQkVNVGltZUBAUUVBQUBBRUJVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdCRU1UaW1lOjpXQkVNVGltZShzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV0JFTVRpbWVAQFFFQUFAQUVCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdCRU1UaW1lOjpXQkVNVGltZShzdHJ1Y3QgdG0gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV0JFTVRpbWVAQFFFQUFAQUVCVXRtQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdCRU1UaW1lOjpXQkVNVGltZShfX2ludDY0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFdCRU1UaW1lQEBRRUFBQEFFQl9KQFoNCis7IHB1YmxpYzogX19jZGVjbCBXQkVNVGltZTo6V0JFTVRpbWUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IGNvbnN0KSBfX3B0cjY0DQorPz8wV0JFTVRpbWVAQFFFQUFAUUVBR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgV0JFTVRpbWU6OldCRU1UaW1lKHZvaWQpIF9fcHRyNjQNCis/PzBXQkVNVGltZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFdCRU1UaW1lU3Bhbjo6V0JFTVRpbWVTcGFuKHN0cnVjdCBfRklMRVRJTUUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV0JFTVRpbWVTcGFuQEBRRUFBQEFFQlVfRklMRVRJTUVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV0JFTVRpbWVTcGFuOjpXQkVNVGltZVNwYW4oX19pbnQ2NCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXQkVNVGltZVNwYW5AQFFFQUFAQUVCX0pAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdCRU1UaW1lU3Bhbjo6V0JFTVRpbWVTcGFuKGludCxpbnQsaW50LGludCxpbnQsaW50LGludCkgX19wdHI2NA0KKz8/MFdCRU1UaW1lU3BhbkBAUUVBQUBISEhISEhIQFoNCis7IHB1YmxpYzogX19jZGVjbCBXQkVNVGltZVNwYW46OldCRU1UaW1lU3Bhbih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgY29uc3QpIF9fcHRyNjQNCis/PzBXQkVNVGltZVNwYW5AQFFFQUFAUUVBR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgV0JFTVRpbWVTcGFuOjpXQkVNVGltZVNwYW4odm9pZCkgX19wdHI2NA0KKz8/MFdCRU1UaW1lU3BhbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6X0xvY2tpdDo6X0xvY2tpdCh2b2lkKSBfX3B0cjY0DQorPz8wX0xvY2tpdEBzdGRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQXV0b0V2ZW50Ojp+Q0F1dG9FdmVudCh2b2lkKSBfX3B0cjY0DQorPz8xQ0F1dG9FdmVudEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENGcmFtZXdvcmtRdWVyeTo6fkNGcmFtZXdvcmtRdWVyeSh2b2lkKSBfX3B0cjY0DQorPz8xQ0ZyYW1ld29ya1F1ZXJ5QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ZyYW1ld29ya1F1ZXJ5RXg6On5DRnJhbWV3b3JrUXVlcnlFeCh2b2lkKSBfX3B0cjY0DQorPz8xQ0ZyYW1ld29ya1F1ZXJ5RXhAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSFB0ckFycmF5Ojp+Q0hQdHJBcnJheSh2b2lkKSBfX3B0cjY0DQorPz8xQ0hQdHJBcnJheUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENIU3RyaW5nOjp+Q0hTdHJpbmcodm9pZCkgX19wdHI2NA0KKz8/MUNIU3RyaW5nQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0hTdHJpbmdBcnJheTo6fkNIU3RyaW5nQXJyYXkodm9pZCkgX19wdHI2NA0KKz8/MUNIU3RyaW5nQXJyYXlAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENJbnN0YW5jZTo6fkNJbnN0YW5jZSh2b2lkKSBfX3B0cjY0DQorPz8xQ0luc3RhbmNlQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09iamVjdFBhdGhQYXJzZXI6On5DT2JqZWN0UGF0aFBhcnNlcih2b2lkKSBfX3B0cjY0DQorPz8xQ09iamVjdFBhdGhQYXJzZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmVnaXN0cnk6On5DUmVnaXN0cnkodm9pZCkgX19wdHI2NA0KKz8/MUNSZWdpc3RyeUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENSZWdpc3RyeVNlYXJjaDo6fkNSZWdpc3RyeVNlYXJjaCh2b2lkKSBfX3B0cjY0DQorPz8xQ1JlZ2lzdHJ5U2VhcmNoQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDVGhyZWFkQmFzZTo6fkNUaHJlYWRCYXNlKHZvaWQpIF9fcHRyNjQNCis/PzFDVGhyZWFkQmFzZUBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENXYmVtR2x1ZUZhY3Rvcnk6On5DV2JlbUdsdWVGYWN0b3J5KHZvaWQpIF9fcHRyNjQNCis/PzFDV2JlbUdsdWVGYWN0b3J5QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6On5DV2JlbVByb3ZpZGVyR2x1ZSh2b2lkKSBfX3B0cjY0DQorPz8xQ1diZW1Qcm92aWRlckdsdWVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2luTXNnRXZlbnQ6On5DV2luTXNnRXZlbnQodm9pZCkgX19wdHI2NA0KKz8/MUNXaW5Nc2dFdmVudEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENyZWF0ZU11dGV4QXNQcm9jZXNzOjp+Q3JlYXRlTXV0ZXhBc1Byb2Nlc3Modm9pZCkgX19wdHI2NA0KKz8/MUNyZWF0ZU11dGV4QXNQcm9jZXNzQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgS2V5UmVmOjp+S2V5UmVmKHZvaWQpIF9fcHRyNjQNCis/PzFLZXlSZWZAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE1ldGhvZENvbnRleHQ6On5NZXRob2RDb250ZXh0KHZvaWQpIF9fcHRyNjQNCis/PzFNZXRob2RDb250ZXh0QEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUGFyc2VkT2JqZWN0UGF0aDo6flBhcnNlZE9iamVjdFBhdGgodm9pZCkgX19wdHI2NA0KKz8/MVBhcnNlZE9iamVjdFBhdGhAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFByb3ZpZGVyOjp+UHJvdmlkZXIodm9pZCkgX19wdHI2NA0KKz8/MVByb3ZpZGVyQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQcm92aWRlckxvZzo6flByb3ZpZGVyTG9nKHZvaWQpIF9fcHRyNjQNCis/PzFQcm92aWRlckxvZ0BAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6X0xvY2tpdDo6fl9Mb2NraXQodm9pZCkgX19wdHI2NA0KKz8/MV9Mb2NraXRAc3RkQEBRRUFBQFhaDQorOyBwdWJsaWM6IGNsYXNzIENBdXRvRXZlbnQgJiBfX3B0cjY0IF9fY2RlY2wgQ0F1dG9FdmVudDo6b3BlcmF0b3I9KGNsYXNzIENBdXRvRXZlbnQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0F1dG9FdmVudEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENGcmFtZXdvcmtRdWVyeSAmIF9fcHRyNjQgX19jZGVjbCBDRnJhbWV3b3JrUXVlcnk6Om9wZXJhdG9yPShjbGFzcyBDRnJhbWV3b3JrUXVlcnkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0ZyYW1ld29ya1F1ZXJ5QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZyYW1ld29ya1F1ZXJ5RXggJiBfX3B0cjY0IF9fY2RlY2wgQ0ZyYW1ld29ya1F1ZXJ5RXg6Om9wZXJhdG9yPShjbGFzcyBDRnJhbWV3b3JrUXVlcnlFeCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDRnJhbWV3b3JrUXVlcnlFeEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENIUHRyQXJyYXkgJiBfX3B0cjY0IF9fY2RlY2wgQ0hQdHJBcnJheTo6b3BlcmF0b3I9KGNsYXNzIENIUHRyQXJyYXkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0hQdHJBcnJheUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENIU3RyaW5nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENIU3RyaW5nOjpvcGVyYXRvcj0oY2xhc3MgQ0hTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0hTdHJpbmdAQFFFQUFBRUJWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDSFN0cmluZzo6b3BlcmF0b3I9KGNoYXIpIF9fcHRyNjQNCis/PzRDSFN0cmluZ0BAUUVBQUFFQlYwQERAWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDSFN0cmluZzo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorPz80Q0hTdHJpbmdAQFFFQUFBRUJWMEBHQFoNCis7IHB1YmxpYzogY2xhc3MgQ0hTdHJpbmcgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ0hTdHJpbmc6Om9wZXJhdG9yPShjbGFzcyBDSFN0cmluZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDSFN0cmluZ0BAUUVBQUFFQlYwQFBFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENIU3RyaW5nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENIU3RyaW5nOjpvcGVyYXRvcj0oY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDSFN0cmluZ0BAUUVBQUFFQlYwQFBFQkRAWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDSFN0cmluZzo6b3BlcmF0b3I9KHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0hTdHJpbmdAQFFFQUFBRUJWMEBQRUJFQFoNCis7IHB1YmxpYzogY2xhc3MgQ0hTdHJpbmcgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ0hTdHJpbmc6Om9wZXJhdG9yPSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDSFN0cmluZ0BAUUVBQUFFQlYwQFBFQkdAWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZ0FycmF5ICYgX19wdHI2NCBfX2NkZWNsIENIU3RyaW5nQXJyYXk6Om9wZXJhdG9yPShjbGFzcyBDSFN0cmluZ0FycmF5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENIU3RyaW5nQXJyYXlAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSW5zdGFuY2UgJiBfX3B0cjY0IF9fY2RlY2wgQ0luc3RhbmNlOjpvcGVyYXRvcj0oY2xhc3MgQ0luc3RhbmNlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJbnN0YW5jZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENPYmplY3RQYXRoUGFyc2VyICYgX19wdHI2NCBfX2NkZWNsIENPYmplY3RQYXRoUGFyc2VyOjpvcGVyYXRvcj0oY2xhc3MgQ09iamVjdFBhdGhQYXJzZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q09iamVjdFBhdGhQYXJzZXJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUmVnaXN0cnkgJiBfX3B0cjY0IF9fY2RlY2wgQ1JlZ2lzdHJ5OjpvcGVyYXRvcj0oY2xhc3MgQ1JlZ2lzdHJ5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENSZWdpc3RyeUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENSZWdpc3RyeVNlYXJjaCAmIF9fcHRyNjQgX19jZGVjbCBDUmVnaXN0cnlTZWFyY2g6Om9wZXJhdG9yPShjbGFzcyBDUmVnaXN0cnlTZWFyY2ggY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1JlZ2lzdHJ5U2VhcmNoQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1RocmVhZEJhc2UgJiBfX3B0cjY0IF9fY2RlY2wgQ1RocmVhZEJhc2U6Om9wZXJhdG9yPShjbGFzcyBDVGhyZWFkQmFzZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDVGhyZWFkQmFzZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXYmVtR2x1ZUZhY3RvcnkgJiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1HbHVlRmFjdG9yeTo6b3BlcmF0b3I9KGNsYXNzIENXYmVtR2x1ZUZhY3RvcnkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1diZW1HbHVlRmFjdG9yeUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXYmVtUHJvdmlkZXJHbHVlICYgX19wdHI2NCBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpvcGVyYXRvcj0oY2xhc3MgQ1diZW1Qcm92aWRlckdsdWUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1diZW1Qcm92aWRlckdsdWVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2luTXNnRXZlbnQgJiBfX3B0cjY0IF9fY2RlY2wgQ1dpbk1zZ0V2ZW50OjpvcGVyYXRvcj0oY2xhc3MgQ1dpbk1zZ0V2ZW50IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENXaW5Nc2dFdmVudEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENyZWF0ZU11dGV4QXNQcm9jZXNzICYgX19wdHI2NCBfX2NkZWNsIENyZWF0ZU11dGV4QXNQcm9jZXNzOjpvcGVyYXRvcj0oY2xhc3MgQ3JlYXRlTXV0ZXhBc1Byb2Nlc3MgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q3JlYXRlTXV0ZXhBc1Byb2Nlc3NAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBzdHJ1Y3QgS2V5UmVmICYgX19wdHI2NCBfX2NkZWNsIEtleVJlZjo6b3BlcmF0b3I9KHN0cnVjdCBLZXlSZWYgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80S2V5UmVmQEBRRUFBQUVBVTBAQUVCVTBAQFoNCis7IHB1YmxpYzogY2xhc3MgTWV0aG9kQ29udGV4dCAmIF9fcHRyNjQgX19jZGVjbCBNZXRob2RDb250ZXh0OjpvcGVyYXRvcj0oY2xhc3MgTWV0aG9kQ29udGV4dCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRNZXRob2RDb250ZXh0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogc3RydWN0IFBhcnNlZE9iamVjdFBhdGggJiBfX3B0cjY0IF9fY2RlY2wgUGFyc2VkT2JqZWN0UGF0aDo6b3BlcmF0b3I9KHN0cnVjdCBQYXJzZWRPYmplY3RQYXRoIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFBhcnNlZE9iamVjdFBhdGhAQFFFQUFBRUFVMEBBRUJVMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92aWRlciAmIF9fcHRyNjQgX19jZGVjbCBQcm92aWRlcjo6b3BlcmF0b3I9KGNsYXNzIFByb3ZpZGVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFByb3ZpZGVyQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdmlkZXJMb2cgJiBfX3B0cjY0IF9fY2RlY2wgUHJvdmlkZXJMb2c6Om9wZXJhdG9yPShjbGFzcyBQcm92aWRlckxvZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRQcm92aWRlckxvZ0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdCRU1UaW1lICYgX19wdHI2NCBfX2NkZWNsIFdCRU1UaW1lOjpvcGVyYXRvcj0oY2xhc3MgV0JFTVRpbWUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80V0JFTVRpbWVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXQkVNVGltZSBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBXQkVNVGltZTo6b3BlcmF0b3I9KHN0cnVjdCBfRklMRVRJTUUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80V0JFTVRpbWVAQFFFQUFBRUJWMEBBRUJVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiBjbGFzcyBXQkVNVGltZSBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBXQkVNVGltZTo6b3BlcmF0b3I9KHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRXQkVNVGltZUBAUUVBQUFFQlYwQEFFQlVfU1lTVEVNVElNRUBAQFoNCis7IHB1YmxpYzogY2xhc3MgV0JFTVRpbWUgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgV0JFTVRpbWU6Om9wZXJhdG9yPShzdHJ1Y3QgdG0gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80V0JFTVRpbWVAQFFFQUFBRUJWMEBBRUJVdG1AQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdCRU1UaW1lIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIFdCRU1UaW1lOjpvcGVyYXRvcj0oX19pbnQ2NCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRXQkVNVGltZUBAUUVBQUFFQlYwQEFFQl9KQFoNCis7IHB1YmxpYzogY2xhc3MgV0JFTVRpbWUgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgV0JFTVRpbWU6Om9wZXJhdG9yPSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgY29uc3QpIF9fcHRyNjQNCis/PzRXQkVNVGltZUBAUUVBQUFFQlYwQFFFQUdAWg0KKzsgcHVibGljOiBjbGFzcyBXQkVNVGltZVNwYW4gJiBfX3B0cjY0IF9fY2RlY2wgV0JFTVRpbWVTcGFuOjpvcGVyYXRvcj0oY2xhc3MgV0JFTVRpbWVTcGFuIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFdCRU1UaW1lU3BhbkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdCRU1UaW1lU3BhbiBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBXQkVNVGltZVNwYW46Om9wZXJhdG9yPShzdHJ1Y3QgX0ZJTEVUSU1FIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFdCRU1UaW1lU3BhbkBAUUVBQUFFQlYwQEFFQlVfRklMRVRJTUVAQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdCRU1UaW1lU3BhbiBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBXQkVNVGltZVNwYW46Om9wZXJhdG9yPShfX2ludDY0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFdCRU1UaW1lU3BhbkBAUUVBQUFFQlYwQEFFQl9KQFoNCis7IHB1YmxpYzogY2xhc3MgV0JFTVRpbWVTcGFuIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIFdCRU1UaW1lU3Bhbjo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCkgX19wdHI2NA0KKz8/NFdCRU1UaW1lU3BhbkBAUUVBQUFFQlYwQFFFQUdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXQkVNVGltZTo6b3BlcmF0b3I9PShjbGFzcyBXQkVNVGltZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzhXQkVNVGltZUBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXQkVNVGltZVNwYW46Om9wZXJhdG9yPT0oY2xhc3MgV0JFTVRpbWVTcGFuIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OFdCRU1UaW1lU3BhbkBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXQkVNVGltZTo6b3BlcmF0b3IhPShjbGFzcyBXQkVNVGltZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzlXQkVNVGltZUBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXQkVNVGltZVNwYW46Om9wZXJhdG9yIT0oY2xhc3MgV0JFTVRpbWVTcGFuIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OVdCRU1UaW1lU3BhbkBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCAmIF9fcHRyNjQgX19jZGVjbCBDSFB0ckFycmF5OjpvcGVyYXRvcltdKGludCkgX19wdHI2NA0KKz8/QUNIUHRyQXJyYXlAQFFFQUFBRUFQRUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ0hQdHJBcnJheTo6b3BlcmF0b3JbXShpbnQpY29uc3QgIF9fcHRyNjQNCis/P0FDSFB0ckFycmF5QEBRRUJBUEVBWEhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENIU3RyaW5nOjpvcGVyYXRvcltdKGludCljb25zdCAgX19wdHI2NA0KKz8/QUNIU3RyaW5nQEBRRUJBR0hAWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyAmIF9fcHRyNjQgX19jZGVjbCBDSFN0cmluZ0FycmF5OjpvcGVyYXRvcltdKGludCkgX19wdHI2NA0KKz8/QUNIU3RyaW5nQXJyYXlAQFFFQUFBRUFWQ0hTdHJpbmdAQEhAWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyAgX19jZGVjbCBDSFN0cmluZ0FycmF5OjpvcGVyYXRvcltdKGludCljb25zdCAgX19wdHI2NA0KKz8/QUNIU3RyaW5nQXJyYXlAQFFFQkE/QVZDSFN0cmluZ0BASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0hTdHJpbmc6Om9wZXJhdG9yIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CQ0hTdHJpbmdAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogY2xhc3MgV0JFTVRpbWVTcGFuICBfX2NkZWNsIFdCRU1UaW1lOjpvcGVyYXRvci0oY2xhc3MgV0JFTVRpbWUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz9HV0JFTVRpbWVAQFFFQUE/QVZXQkVNVGltZVNwYW5AQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdCRU1UaW1lICBfX2NkZWNsIFdCRU1UaW1lOjpvcGVyYXRvci0oY2xhc3MgV0JFTVRpbWVTcGFuIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/R1dCRU1UaW1lQEBRRUJBP0FWMEBBRUJWV0JFTVRpbWVTcGFuQEBAWg0KKzsgcHVibGljOiBjbGFzcyBXQkVNVGltZVNwYW4gIF9fY2RlY2wgV0JFTVRpbWVTcGFuOjpvcGVyYXRvci0oY2xhc3MgV0JFTVRpbWVTcGFuIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/R1dCRU1UaW1lU3BhbkBAUUVCQT9BVjBAQUVCVjBAQFoNCis7IGNsYXNzIENIU3RyaW5nICBfX2NkZWNsIG9wZXJhdG9yKyhjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fcHRyNjQsY2xhc3MgQ0hTdHJpbmcgY29uc3QgJiBfX3B0cjY0KQ0KKz8/SEBZQT9BVkNIU3RyaW5nQEBBRUJWMEAwQFoNCis7IGNsYXNzIENIU3RyaW5nICBfX2NkZWNsIG9wZXJhdG9yKyhjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQpDQorPz9IQFlBP0FWQ0hTdHJpbmdAQEFFQlYwQEdAWg0KKzsgY2xhc3MgQ0hTdHJpbmcgIF9fY2RlY2wgb3BlcmF0b3IrKGNsYXNzIENIU3RyaW5nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorPz9IQFlBP0FWQ0hTdHJpbmdAQEFFQlYwQFBFQkdAWg0KKzsgY2xhc3MgQ0hTdHJpbmcgIF9fY2RlY2wgb3BlcmF0b3IrKHVuc2lnbmVkIHNob3J0LGNsYXNzIENIU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkNCis/P0hAWUE/QVZDSFN0cmluZ0BAR0FFQlYwQEBaDQorOyBjbGFzcyBDSFN0cmluZyAgX19jZGVjbCBvcGVyYXRvcisodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENIU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkNCis/P0hAWUE/QVZDSFN0cmluZ0BAUEVCR0FFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdCRU1UaW1lICBfX2NkZWNsIFdCRU1UaW1lOjpvcGVyYXRvcisoY2xhc3MgV0JFTVRpbWVTcGFuIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/SFdCRU1UaW1lQEBRRUJBP0FWMEBBRUJWV0JFTVRpbWVTcGFuQEBAWg0KKzsgcHVibGljOiBjbGFzcyBXQkVNVGltZVNwYW4gIF9fY2RlY2wgV0JFTVRpbWVTcGFuOjpvcGVyYXRvcisoY2xhc3MgV0JFTVRpbWVTcGFuIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/SFdCRU1UaW1lU3BhbkBAUUVCQT9BVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV0JFTVRpbWU6Om9wZXJhdG9yPChjbGFzcyBXQkVNVGltZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/P01XQkVNVGltZUBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXQkVNVGltZVNwYW46Om9wZXJhdG9yPChjbGFzcyBXQkVNVGltZVNwYW4gY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz9NV0JFTVRpbWVTcGFuQEBRRUJBSEFFQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdCRU1UaW1lOjpvcGVyYXRvcjw9KGNsYXNzIFdCRU1UaW1lIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/TldCRU1UaW1lQEBRRUJBSEFFQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdCRU1UaW1lU3Bhbjo6b3BlcmF0b3I8PShjbGFzcyBXQkVNVGltZVNwYW4gY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz9OV0JFTVRpbWVTcGFuQEBRRUJBSEFFQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdCRU1UaW1lOjpvcGVyYXRvcj4oY2xhc3MgV0JFTVRpbWUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz9PV0JFTVRpbWVAQFFFQkFIQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV0JFTVRpbWVTcGFuOjpvcGVyYXRvcj4oY2xhc3MgV0JFTVRpbWVTcGFuIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/T1dCRU1UaW1lU3BhbkBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXQkVNVGltZTo6b3BlcmF0b3I+PShjbGFzcyBXQkVNVGltZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/P1BXQkVNVGltZUBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXQkVNVGltZVNwYW46Om9wZXJhdG9yPj0oY2xhc3MgV0JFTVRpbWVTcGFuIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/UFdCRU1UaW1lU3BhbkBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDSFN0cmluZzo6b3BlcmF0b3IrPShjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/P1lDSFN0cmluZ0BAUUVBQUFFQlYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENIU3RyaW5nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENIU3RyaW5nOjpvcGVyYXRvcis9KGNoYXIpIF9fcHRyNjQNCis/P1lDSFN0cmluZ0BAUUVBQUFFQlYwQERAWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDSFN0cmluZzo6b3BlcmF0b3IrPSh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz8/WUNIU3RyaW5nQEBRRUFBQUVCVjBAR0BaDQorOyBwdWJsaWM6IGNsYXNzIENIU3RyaW5nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENIU3RyaW5nOjpvcGVyYXRvcis9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/WUNIU3RyaW5nQEBRRUFBQUVCVjBAUEVCR0BaDQorOyBwdWJsaWM6IGNsYXNzIFdCRU1UaW1lIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIFdCRU1UaW1lOjpvcGVyYXRvcis9KGNsYXNzIFdCRU1UaW1lU3BhbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/P1lXQkVNVGltZUBAUUVBQUFFQlYwQEFFQlZXQkVNVGltZVNwYW5AQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdCRU1UaW1lU3BhbiBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBXQkVNVGltZVNwYW46Om9wZXJhdG9yKz0oY2xhc3MgV0JFTVRpbWVTcGFuIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/WVdCRU1UaW1lU3BhbkBAUUVBQUFFQlYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdCRU1UaW1lIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIFdCRU1UaW1lOjpvcGVyYXRvci09KGNsYXNzIFdCRU1UaW1lU3BhbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/P1pXQkVNVGltZUBAUUVBQUFFQlYwQEFFQlZXQkVNVGltZVNwYW5AQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdCRU1UaW1lU3BhbiBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBXQkVNVGltZVNwYW46Om9wZXJhdG9yLT0oY2xhc3MgV0JFTVRpbWVTcGFuIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/WldCRU1UaW1lU3BhbkBAUUVBQUFFQlYwQEFFQlYwQEBaDQorOyBjb25zdCAgQ0ZyYW1ld29ya1F1ZXJ5RXg6OmB2ZnRhYmxlJw0KKz8/XzdDRnJhbWV3b3JrUXVlcnlFeEBANkJADQorOyBjb25zdCAgQ0luc3RhbmNlOjpgdmZ0YWJsZScNCis/P183Q0luc3RhbmNlQEA2QkANCis7IGNvbnN0ICBDVGhyZWFkQmFzZTo6YHZmdGFibGUnDQorPz9fN0NUaHJlYWRCYXNlQEA2QkANCis7IGNvbnN0ICBDV2JlbUdsdWVGYWN0b3J5OjpgdmZ0YWJsZScNCis/P183Q1diZW1HbHVlRmFjdG9yeUBANkJADQorOyBjb25zdCAgQ1diZW1Qcm92aWRlckdsdWU6OmB2ZnRhYmxlJ3tmb3IgYElXYmVtUHJvdmlkZXJJbml0J30NCis/P183Q1diZW1Qcm92aWRlckdsdWVAQDZCSVdiZW1Qcm92aWRlckluaXRAQEANCis7IGNvbnN0ICBDV2JlbVByb3ZpZGVyR2x1ZTo6YHZmdGFibGUne2ZvciBgSVdiZW1TZXJ2aWNlcyd9DQorPz9fN0NXYmVtUHJvdmlkZXJHbHVlQEA2QklXYmVtU2VydmljZXNAQEANCis7IGNvbnN0ICBDV2luTXNnRXZlbnQ6OmB2ZnRhYmxlJw0KKz8/XzdDV2luTXNnRXZlbnRAQDZCQA0KKzsgY29uc3QgIE1ldGhvZENvbnRleHQ6OmB2ZnRhYmxlJw0KKz8/XzdNZXRob2RDb250ZXh0QEA2QkANCis7IGNvbnN0ICBQcm92aWRlcjo6YHZmdGFibGUnDQorPz9fN1Byb3ZpZGVyQEA2QkANCis7IGNvbnN0ICBQcm92aWRlckxvZzo6YHZmdGFibGUnDQorPz9fN1Byb3ZpZGVyTG9nQEA2QkANCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENPYmplY3RQYXRoUGFyc2VyOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNPYmplY3RQYXRoUGFyc2VyQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVGhyZWFkQmFzZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDVGhyZWFkQmFzZUBAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSFB0ckFycmF5OjpBZGQodm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkQENIUHRyQXJyYXlAQFFFQUFIUEVBWEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENIU3RyaW5nQXJyYXk6OkFkZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkQENIU3RyaW5nQXJyYXlAQFFFQUFIUEVCR0BaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkFkZEZsdXNoUHRyKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEZsdXNoUHRyQENXYmVtUHJvdmlkZXJHbHVlQEBBRUFBWFBFQVhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBQYXJzZWRPYmplY3RQYXRoOjpBZGRLZXlSZWYoc3RydWN0IEtleVJlZiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkS2V5UmVmQFBhcnNlZE9iamVjdFBhdGhAQFFFQUFIUEVBVUtleVJlZkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUGFyc2VkT2JqZWN0UGF0aDo6QWRkS2V5UmVmKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgdGFnVkFSSUFOVCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkS2V5UmVmQFBhcnNlZE9iamVjdFBhdGhAQFFFQUFIUEVCR1BFQlV0YWdWQVJJQU5UQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBQYXJzZWRPYmplY3RQYXRoOjpBZGRLZXlSZWZFeCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IHRhZ1ZBUklBTlQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEtleVJlZkV4QFBhcnNlZE9iamVjdFBhdGhAQFFFQUFIUEVCR1BFQlV0YWdWQVJJQU5UQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBQYXJzZWRPYmplY3RQYXRoOjpBZGROYW1lc3BhY2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZE5hbWVzcGFjZUBQYXJzZWRPYmplY3RQYXRoQEBRRUFBSFBFQkdAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIFByb3ZpZGVyICogX19wdHI2NCBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpBZGRQcm92aWRlclRvTWFwKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgUHJvdmlkZXIgKiBfX3B0cjY0KQ0KKz9BZGRQcm92aWRlclRvTWFwQENXYmVtUHJvdmlkZXJHbHVlQEBDQVBFQVZQcm92aWRlckBAUEVCRzBQRUFWMkBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0luc3RhbmNlOjpBZGRSZWYodm9pZCkgX19wdHI2NA0KKz9BZGRSZWZAQ0luc3RhbmNlQEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDVGhyZWFkQmFzZTo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQENUaHJlYWRCYXNlQEBRRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENXYmVtR2x1ZUZhY3Rvcnk6OkFkZFJlZih2b2lkKSBfX3B0cjY0DQorP0FkZFJlZkBDV2JlbUdsdWVGYWN0b3J5QEBVRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpBZGRSZWYodm9pZCkgX19wdHI2NA0KKz9BZGRSZWZAQ1diZW1Qcm92aWRlckdsdWVAQFVFQUFLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE1ldGhvZENvbnRleHQ6OkFkZFJlZih2b2lkKSBfX3B0cjY0DQorP0FkZFJlZkBNZXRob2RDb250ZXh0QEBRRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkFkZFRvRmFjdG9yeU1hcChjbGFzcyBDV2JlbUdsdWVGYWN0b3J5IGNvbnN0ICogX19wdHI2NCxsb25nICogX19wdHI2NCkNCis/QWRkVG9GYWN0b3J5TWFwQENXYmVtUHJvdmlkZXJHbHVlQEBLQVhQRUJWQ1diZW1HbHVlRmFjdG9yeUBAUEVBSkBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRnJhbWV3b3JrUXVlcnk6OkFsbFByb3BlcnRpZXNBcmVSZXF1aXJlZCh2b2lkKSBfX3B0cjY0DQorP0FsbFByb3BlcnRpZXNBcmVSZXF1aXJlZEBDRnJhbWV3b3JrUXVlcnlAQFFFQUFfTlhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDSFN0cmluZzo6QWxsb2NCZWZvcmVXcml0ZShpbnQpIF9fcHRyNjQNCis/QWxsb2NCZWZvcmVXcml0ZUBDSFN0cmluZ0BASUVBQVhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENIU3RyaW5nOjpBbGxvY0J1ZmZlcihpbnQpIF9fcHRyNjQNCis/QWxsb2NCdWZmZXJAQ0hTdHJpbmdAQElFQUFYSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDSFN0cmluZzo6QWxsb2NDb3B5KGNsYXNzIENIU3RyaW5nICYgX19wdHI2NCxpbnQsaW50LGludCljb25zdCAgX19wdHI2NA0KKz9BbGxvY0NvcHlAQ0hTdHJpbmdAQElFQkFYQUVBVjFASEhIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ0hTdHJpbmc6OkFsbG9jU3lzU3RyaW5nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/QWxsb2NTeXNTdHJpbmdAQ0hTdHJpbmdAQFFFQkFQRUFHWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0hQdHJBcnJheTo6QXBwZW5kKGNsYXNzIENIUHRyQXJyYXkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0FwcGVuZEBDSFB0ckFycmF5QEBRRUFBSEFFQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENIU3RyaW5nQXJyYXk6OkFwcGVuZChjbGFzcyBDSFN0cmluZ0FycmF5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRAQ0hTdHJpbmdBcnJheUBAUUVBQUhBRUJWMUBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0hTdHJpbmc6OkFzc2lnbkNvcHkoaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Bc3NpZ25Db3B5QENIU3RyaW5nQEBJRUFBWEhQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1RocmVhZEJhc2U6OkJlZ2luUmVhZCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0JlZ2luUmVhZEBDVGhyZWFkQmFzZUBAUUVBQUhLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1RocmVhZEJhc2U6OkJlZ2luV3JpdGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9CZWdpbldyaXRlQENUaHJlYWRCYXNlQEBRRUFBSEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6Q2FuY2VsQXN5bmNDYWxsKHN0cnVjdCBJV2JlbU9iamVjdFNpbmsgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NhbmNlbEFzeW5jQ2FsbEBDV2JlbVByb3ZpZGVyR2x1ZUBAVUVBQUpQRUFVSVdiZW1PYmplY3RTaW5rQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6Q2FuY2VsQXN5bmNSZXF1ZXN0KGxvbmcpIF9fcHRyNjQNCis/Q2FuY2VsQXN5bmNSZXF1ZXN0QENXYmVtUHJvdmlkZXJHbHVlQEBVRUFBSkpAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENSZWdpc3RyeVNlYXJjaDo6Q2hlY2tBbmRBZGRUb0xpc3QoY2xhc3MgQ1JlZ2lzdHJ5ICogX19wdHI2NCxjbGFzcyBDSFN0cmluZyxjbGFzcyBDSFN0cmluZyxjbGFzcyBDSFB0ckFycmF5ICYgX19wdHI2NCxjbGFzcyBDSFN0cmluZyxjbGFzcyBDSFN0cmluZyxpbnQpIF9fcHRyNjQNCis/Q2hlY2tBbmRBZGRUb0xpc3RAQ1JlZ2lzdHJ5U2VhcmNoQEBBRUFBWFBFQVZDUmVnaXN0cnlAQFZDSFN0cmluZ0BAMUFFQVZDSFB0ckFycmF5QEAxMUhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFByb3ZpZGVyTG9nOjpDaGVja0ZpbGVTaXplKHVuaW9uIF9MQVJHRV9JTlRFR0VSICYgX19wdHI2NCxjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2hlY2tGaWxlU2l6ZUBQcm92aWRlckxvZ0BAQUVBQVhBRUFUX0xBUkdFX0lOVEVHRVJAQEFFQlZDSFN0cmluZ0BAQFoNCis7IHByaXZhdGU6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkNoZWNrSW1wZXJzb25hdGlvbkxldmVsKHZvaWQpDQorP0NoZWNrSW1wZXJzb25hdGlvbkxldmVsQENXYmVtUHJvdmlkZXJHbHVlQEBDQUpYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV0JFTVRpbWU6OkNsZWFyKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJAV0JFTVRpbWVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdCRU1UaW1lU3Bhbjo6Q2xlYXIodm9pZCkgX19wdHI2NA0KKz9DbGVhckBXQkVNVGltZVNwYW5AQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFBhcnNlZE9iamVjdFBhdGg6OkNsZWFyS2V5cyh2b2lkKSBfX3B0cjY0DQorP0NsZWFyS2V5c0BQYXJzZWRPYmplY3RQYXRoQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVnaXN0cnk6OkNsb3NlKHZvaWQpIF9fcHRyNjQNCis/Q2xvc2VAQ1JlZ2lzdHJ5QEBRRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpDbG9zZVN1YktleSh2b2lkKSBfX3B0cjY0DQorP0Nsb3NlU3ViS2V5QENSZWdpc3RyeUBAQUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSFN0cmluZzo6Q29sbGF0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q29sbGF0ZUBDSFN0cmluZ0BAUUVCQUhQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJbnN0YW5jZTo6Q29tbWl0KHZvaWQpIF9fcHRyNjQNCis/Q29tbWl0QENJbnN0YW5jZUBAUUVBQUpYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgUHJvdmlkZXI6OkNvbW1pdChjbGFzcyBDSW5zdGFuY2UgKiBfX3B0cjY0LGJvb2wpIF9fcHRyNjQNCis/Q29tbWl0QFByb3ZpZGVyQEBJRUFBSlBFQVZDSW5zdGFuY2VAQF9OQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0hTdHJpbmc6OkNvbXBhcmUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0NvbXBhcmVAQ0hTdHJpbmdAQFFFQkFIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENIU3RyaW5nOjpDb21wYXJlTm9DYXNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db21wYXJlTm9DYXNlQENIU3RyaW5nQEBRRUJBSFBFQkdAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0hTdHJpbmc6OkNvbmNhdENvcHkoaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbmNhdENvcHlAQ0hTdHJpbmdAQElFQUFYSFBFQkdIMEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDSFN0cmluZzo6Q29uY2F0SW5QbGFjZShpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbmNhdEluUGxhY2VAQ0hTdHJpbmdAQElFQUFYSFBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0hQdHJBcnJheTo6Q29weShjbGFzcyBDSFB0ckFycmF5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5QENIUHRyQXJyYXlAQFFFQUFYQUVCVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENIU3RyaW5nQXJyYXk6OkNvcHkoY2xhc3MgQ0hTdHJpbmdBcnJheSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weUBDSFN0cmluZ0FycmF5QEBRRUFBWEFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDSFN0cmluZzo6Q29weUJlZm9yZVdyaXRlKHZvaWQpIF9fcHRyNjQNCis/Q29weUJlZm9yZVdyaXRlQENIU3RyaW5nQEBJRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpDcmVhdGVDbGFzc0VudW0odW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IGNvbnN0LGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqIF9fcHRyNjQsc3RydWN0IElFbnVtV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q3JlYXRlQ2xhc3NFbnVtQENXYmVtUHJvdmlkZXJHbHVlQEBVRUFBSlFFQUdKUEVBVUlXYmVtQ29udGV4dEBAUEVBUEVBVUlFbnVtV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6Q3JlYXRlQ2xhc3NFbnVtQXN5bmModW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IGNvbnN0LGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqIF9fcHRyNjQsc3RydWN0IElXYmVtT2JqZWN0U2luayAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q3JlYXRlQ2xhc3NFbnVtQXN5bmNAQ1diZW1Qcm92aWRlckdsdWVAQFVFQUFKUUVBR0pQRUFVSVdiZW1Db250ZXh0QEBQRUFVSVdiZW1PYmplY3RTaW5rQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUdsdWVGYWN0b3J5OjpDcmVhdGVJbnN0YW5jZShzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0LHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZUluc3RhbmNlQENXYmVtR2x1ZUZhY3RvcnlAQFVFQUFKUEVBVUlVbmtub3duQEBBRUJVX0dVSURAQFBFQVBFQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6Q3JlYXRlSW5zdGFuY2VFbnVtKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKiBfX3B0cjY0LHN0cnVjdCBJRW51bVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZUluc3RhbmNlRW51bUBDV2JlbVByb3ZpZGVyR2x1ZUBAVUVBQUpRRUFHSlBFQVVJV2JlbUNvbnRleHRAQFBFQVBFQVVJRW51bVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBQcm92aWRlcjo6Q3JlYXRlSW5zdGFuY2VFbnVtKGNsYXNzIE1ldGhvZENvbnRleHQgKiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/Q3JlYXRlSW5zdGFuY2VFbnVtQFByb3ZpZGVyQEBBRUFBSlBFQVZNZXRob2RDb250ZXh0QEBKQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkNyZWF0ZUluc3RhbmNlRW51bUFzeW5jKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbU9iamVjdFNpbmsgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZUluc3RhbmNlRW51bUFzeW5jQENXYmVtUHJvdmlkZXJHbHVlQEBVRUFBSlFFQUdKUEVBVUlXYmVtQ29udGV4dEBAUEVBVUlXYmVtT2JqZWN0U2lua0BAQFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1dpbk1zZ0V2ZW50OjpDcmVhdGVNc2dQcm92aWRlcih2b2lkKQ0KKz9DcmVhdGVNc2dQcm92aWRlckBDV2luTXNnRXZlbnRAQENBWFhaDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQgX19jZGVjbCBDV2luTXNnRXZlbnQ6OkNyZWF0ZU1zZ1dpbmRvdyh2b2lkKQ0KKz9DcmVhdGVNc2dXaW5kb3dAQ1dpbk1zZ0V2ZW50QEBDQVBFQVVIV05EX19AQFhaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIENJbnN0YW5jZSAqIF9fcHRyNjQgX19jZGVjbCBQcm92aWRlcjo6Q3JlYXRlTmV3SW5zdGFuY2UoY2xhc3MgTWV0aG9kQ29udGV4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q3JlYXRlTmV3SW5zdGFuY2VAUHJvdmlkZXJAQElFQUFQRUFWQ0luc3RhbmNlQEBQRUFWTWV0aG9kQ29udGV4dEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6Q3JlYXRlT3BlbihzdHJ1Y3QgSEtFWV9fICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgX1NFQ1VSSVRZX0FUVFJJQlVURVMgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZU9wZW5AQ1JlZ2lzdHJ5QEBRRUFBSlBFQVVIS0VZX19AQFBFQkdQRUFHS0tQRUFVX1NFQ1VSSVRZX0FUVFJJQlVURVNAQFBFQUtAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCBfX2NkZWNsIENXaW5Nc2dFdmVudDo6Q3RybEhhbmRsZXJSb3V0aW5lKHVuc2lnbmVkIGxvbmcpDQorP0N0cmxIYW5kbGVyUm91dGluZUBDV2luTXNnRXZlbnRAQENBSEtAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpEZWNyZW1lbnRNYXBDb3VudChsb25nICogX19wdHI2NCkNCis/RGVjcmVtZW50TWFwQ291bnRAQ1diZW1Qcm92aWRlckdsdWVAQEtBSlBFQUpAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpEZWNyZW1lbnRNYXBDb3VudChjbGFzcyBDV2JlbUdsdWVGYWN0b3J5IGNvbnN0ICogX19wdHI2NCkNCis/RGVjcmVtZW50TWFwQ291bnRAQ1diZW1Qcm92aWRlckdsdWVAQEtBSlBFQlZDV2JlbUdsdWVGYWN0b3J5QEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpEZWNyZW1lbnRPYmplY3RDb3VudCh2b2lkKQ0KKz9EZWNyZW1lbnRPYmplY3RDb3VudEBDV2JlbVByb3ZpZGVyR2x1ZUBAU0FKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkRlbGV0ZUNsYXNzKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNhbGxSZXN1bHQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVDbGFzc0BDV2JlbVByb3ZpZGVyR2x1ZUBAVUVBQUpRRUFHSlBFQVVJV2JlbUNvbnRleHRAQFBFQVBFQVVJV2JlbUNhbGxSZXN1bHRAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpEZWxldGVDbGFzc0FzeW5jKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbU9iamVjdFNpbmsgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZUNsYXNzQXN5bmNAQ1diZW1Qcm92aWRlckdsdWVAQFVFQUFKUUVBR0pQRUFVSVdiZW1Db250ZXh0QEBQRUFVSVdiZW1PYmplY3RTaW5rQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpEZWxldGVDdXJyZW50S2V5VmFsdWUoc3RydWN0IEhLRVlfXyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZUN1cnJlbnRLZXlWYWx1ZUBDUmVnaXN0cnlAQFFFQUFLUEVBVUhLRVlfX0BAUEVCR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUmVnaXN0cnk6OkRlbGV0ZUN1cnJlbnRLZXlWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlQ3VycmVudEtleVZhbHVlQENSZWdpc3RyeUBAUUVBQUtQRUJHQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkRlbGV0ZUluc3RhbmNlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNhbGxSZXN1bHQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVJbnN0YW5jZUBDV2JlbVByb3ZpZGVyR2x1ZUBAVUVBQUpRRUFHSlBFQVVJV2JlbUNvbnRleHRAQFBFQVBFQVVJV2JlbUNhbGxSZXN1bHRAQEBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgUHJvdmlkZXI6OkRlbGV0ZUluc3RhbmNlKHN0cnVjdCBQYXJzZWRPYmplY3RQYXRoICogX19wdHI2NCxsb25nLGNsYXNzIE1ldGhvZENvbnRleHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZUluc3RhbmNlQFByb3ZpZGVyQEBBRUFBSlBFQVVQYXJzZWRPYmplY3RQYXRoQEBKUEVBVk1ldGhvZENvbnRleHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFByb3ZpZGVyOjpEZWxldGVJbnN0YW5jZShjbGFzcyBDSW5zdGFuY2UgY29uc3QgJiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/RGVsZXRlSW5zdGFuY2VAUHJvdmlkZXJAQE1FQUFKQUVCVkNJbnN0YW5jZUBASkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpEZWxldGVJbnN0YW5jZUFzeW5jKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbU9iamVjdFNpbmsgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZUluc3RhbmNlQXN5bmNAQ1diZW1Qcm92aWRlckdsdWVAQFVFQUFKUUVBR0pQRUFVSVdiZW1Db250ZXh0QEBQRUFVSVdiZW1PYmplY3RTaW5rQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpEZWxldGVLZXkoY2xhc3MgQ0hTdHJpbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZUtleUBDUmVnaXN0cnlAQFFFQUFKUEVBVkNIU3RyaW5nQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpEZWxldGVWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlVmFsdWVAQ1JlZ2lzdHJ5QEBRRUFBSlBFQkdAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHZvaWQgX19jZGVjbCBDV2luTXNnRXZlbnQ6OkRlc3Ryb3lNc2dXaW5kb3codm9pZCkNCis/RGVzdHJveU1zZ1dpbmRvd0BDV2luTXNnRXZlbnRAQENBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0ICYgX19wdHI2NCBfX2NkZWNsIENIUHRyQXJyYXk6OkVsZW1lbnRBdChpbnQpIF9fcHRyNjQNCis/RWxlbWVudEF0QENIUHRyQXJyYXlAQFFFQUFBRUFQRUFYSEBaDQorOyBwdWJsaWM6IGNsYXNzIENIU3RyaW5nICYgX19wdHI2NCBfX2NkZWNsIENIU3RyaW5nQXJyYXk6OkVsZW1lbnRBdChpbnQpIF9fcHRyNjQNCis/RWxlbWVudEF0QENIU3RyaW5nQXJyYXlAQFFFQUFBRUFWQ0hTdHJpbmdAQEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0hTdHJpbmc6OkVtcHR5KHZvaWQpIF9fcHRyNjQNCis/RW1wdHlAQ0hTdHJpbmdAQFFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDT2JqZWN0UGF0aFBhcnNlcjo6RW1wdHkodm9pZCkgX19wdHI2NA0KKz9FbXB0eUBDT2JqZWN0UGF0aFBhcnNlckBAQUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1RocmVhZEJhc2U6OkVuZFJlYWQodm9pZCkgX19wdHI2NA0KKz9FbmRSZWFkQENUaHJlYWRCYXNlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVGhyZWFkQmFzZTo6RW5kV3JpdGUodm9pZCkgX19wdHI2NA0KKz9FbmRXcml0ZUBDVGhyZWFkQmFzZUBAUUVBQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpFbnVtZXJhdGVBbmRHZXRWYWx1ZXModW5zaWduZWQgbG9uZyAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICYgX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RW51bWVyYXRlQW5kR2V0VmFsdWVzQENSZWdpc3RyeUBAUUVBQUpBRUFLQUVBUEVBR0FFQVBFQUVAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBQcm92aWRlcjo6RW51bWVyYXRlSW5zdGFuY2VzKGNsYXNzIE1ldGhvZENvbnRleHQgKiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/RW51bWVyYXRlSW5zdGFuY2VzQFByb3ZpZGVyQEBNRUFBSlBFQVZNZXRob2RDb250ZXh0QEBKQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkV4ZWNNZXRob2QodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IGNvbnN0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNhbGxSZXN1bHQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9FeGVjTWV0aG9kQENXYmVtUHJvdmlkZXJHbHVlQEBVRUFBSlFFQUcwSlBFQVVJV2JlbUNvbnRleHRAQFBFQVVJV2JlbUNsYXNzT2JqZWN0QEBQRUFQRUFVM0BQRUFQRUFVSVdiZW1DYWxsUmVzdWx0QEBAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIFByb3ZpZGVyOjpFeGVjTWV0aG9kKHN0cnVjdCBQYXJzZWRPYmplY3RQYXRoICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsbG9uZyxjbGFzcyBDSW5zdGFuY2UgKiBfX3B0cjY0LGNsYXNzIENJbnN0YW5jZSAqIF9fcHRyNjQsY2xhc3MgTWV0aG9kQ29udGV4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RXhlY01ldGhvZEBQcm92aWRlckBAQUVBQUpQRUFVUGFyc2VkT2JqZWN0UGF0aEBAUEVBR0pQRUFWQ0luc3RhbmNlQEAyUEVBVk1ldGhvZENvbnRleHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFByb3ZpZGVyOjpFeGVjTWV0aG9kKGNsYXNzIENJbnN0YW5jZSBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IGNvbnN0LGNsYXNzIENJbnN0YW5jZSAqIF9fcHRyNjQsY2xhc3MgQ0luc3RhbmNlICogX19wdHI2NCxsb25nKSBfX3B0cjY0DQorP0V4ZWNNZXRob2RAUHJvdmlkZXJAQE1FQUFKQUVCVkNJbnN0YW5jZUBAUUVBR1BFQVYyQDJKQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkV4ZWNNZXRob2RBc3luYyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgY29uc3QsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IGNvbnN0LGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqIF9fcHRyNjQsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbU9iamVjdFNpbmsgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0V4ZWNNZXRob2RBc3luY0BDV2JlbVByb3ZpZGVyR2x1ZUBAVUVBQUpRRUFHMEpQRUFVSVdiZW1Db250ZXh0QEBQRUFVSVdiZW1DbGFzc09iamVjdEBAUEVBVUlXYmVtT2JqZWN0U2lua0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkV4ZWNOb3RpZmljYXRpb25RdWVyeSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgY29uc3QsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IGNvbnN0LGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqIF9fcHRyNjQsc3RydWN0IElFbnVtV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RXhlY05vdGlmaWNhdGlvblF1ZXJ5QENXYmVtUHJvdmlkZXJHbHVlQEBVRUFBSlFFQUcwSlBFQVVJV2JlbUNvbnRleHRAQFBFQVBFQVVJRW51bVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkV4ZWNOb3RpZmljYXRpb25RdWVyeUFzeW5jKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgY29uc3QsbG9uZyxzdHJ1Y3QgSVdiZW1Db250ZXh0ICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1PYmplY3RTaW5rICogX19wdHI2NCkgX19wdHI2NA0KKz9FeGVjTm90aWZpY2F0aW9uUXVlcnlBc3luY0BDV2JlbVByb3ZpZGVyR2x1ZUBAVUVBQUpRRUFHMEpQRUFVSVdiZW1Db250ZXh0QEBQRUFVSVdiZW1PYmplY3RTaW5rQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6RXhlY1F1ZXJ5KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgY29uc3QsbG9uZyxzdHJ1Y3QgSVdiZW1Db250ZXh0ICogX19wdHI2NCxzdHJ1Y3QgSUVudW1XYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9FeGVjUXVlcnlAQ1diZW1Qcm92aWRlckdsdWVAQFVFQUFKUUVBRzBKUEVBVUlXYmVtQ29udGV4dEBAUEVBUEVBVUlFbnVtV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBQcm92aWRlcjo6RXhlY1F1ZXJ5KGNsYXNzIE1ldGhvZENvbnRleHQgKiBfX3B0cjY0LGNsYXNzIENGcmFtZXdvcmtRdWVyeSAmIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz9FeGVjUXVlcnlAUHJvdmlkZXJAQE1FQUFKUEVBVk1ldGhvZENvbnRleHRAQEFFQVZDRnJhbWV3b3JrUXVlcnlAQEpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6RXhlY1F1ZXJ5QXN5bmModW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IGNvbnN0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbU9iamVjdFNpbmsgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0V4ZWNRdWVyeUFzeW5jQENXYmVtUHJvdmlkZXJHbHVlQEBVRUFBSlFFQUcwSlBFQVVJV2JlbUNvbnRleHRAQFBFQVVJV2JlbU9iamVjdFNpbmtAQEBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgUHJvdmlkZXI6OkV4ZWN1dGVRdWVyeShjbGFzcyBNZXRob2RDb250ZXh0ICogX19wdHI2NCxjbGFzcyBDRnJhbWV3b3JrUXVlcnkgJiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/RXhlY3V0ZVF1ZXJ5QFByb3ZpZGVyQEBBRUFBSlBFQVZNZXRob2RDb250ZXh0QEBBRUFWQ0ZyYW1ld29ya1F1ZXJ5QEBKQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6RmlsbEluc3RhbmNlKGNsYXNzIENJbnN0YW5jZSAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9GaWxsSW5zdGFuY2VAQ1diZW1Qcm92aWRlckdsdWVAQFNBSlBFQVZDSW5zdGFuY2VAQFBFQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpGaWxsSW5zdGFuY2UoY2xhc3MgTWV0aG9kQ29udGV4dCAqIF9fcHRyNjQsY2xhc3MgQ0luc3RhbmNlICogX19wdHI2NCkNCis/RmlsbEluc3RhbmNlQENXYmVtUHJvdmlkZXJHbHVlQEBTQUpQRUFWTWV0aG9kQ29udGV4dEBAUEVBVkNJbnN0YW5jZUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0hTdHJpbmc6OkZpbmQodW5zaWduZWQgc2hvcnQpY29uc3QgIF9fcHRyNjQNCis/RmluZEBDSFN0cmluZ0BAUUVCQUhHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0hTdHJpbmc6OkZpbmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0ZpbmRAQ0hTdHJpbmdAQFFFQkFIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENIU3RyaW5nOjpGaW5kT25lT2YodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0ZpbmRPbmVPZkBDSFN0cmluZ0BAUUVCQUhQRUJHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgUHJvdmlkZXI6OkZsdXNoKHZvaWQpIF9fcHRyNjQNCis/Rmx1c2hAUHJvdmlkZXJAQE1FQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6Rmx1c2hBbGwodm9pZCkgX19wdHI2NA0KKz9GbHVzaEFsbEBDV2JlbVByb3ZpZGVyR2x1ZUBAQUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0hTdHJpbmc6OkZvcm1hdCh1bnNpZ25lZCBpbnQsLi4uKSBfX3B0cjY0DQorP0Zvcm1hdEBDSFN0cmluZ0BAUUVBQVhJWloNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENIU3RyaW5nOjpGb3JtYXQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LC4uLikgX19wdHI2NA0KKz9Gb3JtYXRAQ0hTdHJpbmdAQFFFQUFYUEVCR1paDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSFN0cmluZzo6Rm9ybWF0TWVzc2FnZVcodW5zaWduZWQgaW50LC4uLikgX19wdHI2NA0KKz9Gb3JtYXRNZXNzYWdlV0BDSFN0cmluZ0BAUUVBQVhJWloNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENIU3RyaW5nOjpGb3JtYXRNZXNzYWdlVyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsLi4uKSBfX3B0cjY0DQorP0Zvcm1hdE1lc3NhZ2VXQENIU3RyaW5nQEBRRUFBWFBFQkdaWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0hTdHJpbmc6OkZvcm1hdFYodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0Zvcm1hdFZAQ0hTdHJpbmdAQFFFQUFYUEVCR1BFQURAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpGcmFtZXdvcmtMb2dpbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgUHJvdmlkZXIgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/RnJhbWV3b3JrTG9naW5AQ1diZW1Qcm92aWRlckdsdWVAQFNBWFBFQkdQRUFWUHJvdmlkZXJAQDBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkZyYW1ld29ya0xvZ2luRExMKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/RnJhbWV3b3JrTG9naW5ETExAQ1diZW1Qcm92aWRlckdsdWVAQFNBSFBFQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkZyYW1ld29ya0xvZ2luRExMKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nICogX19wdHI2NCkNCis/RnJhbWV3b3JrTG9naW5ETExAQ1diZW1Qcm92aWRlckdsdWVAQFNBSFBFQkdQRUFKQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6RnJhbWV3b3JrTG9nb2ZmKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0ZyYW1ld29ya0xvZ29mZkBDV2JlbVByb3ZpZGVyR2x1ZUBAU0FYUEVCRzBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkZyYW1ld29ya0xvZ29mZkRMTCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0ZyYW1ld29ya0xvZ29mZkRMTEBDV2JlbVByb3ZpZGVyR2x1ZUBAU0FIUEVCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6RnJhbWV3b3JrTG9nb2ZmRExMKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nICogX19wdHI2NCkNCis/RnJhbWV3b3JrTG9nb2ZmRExMQENXYmVtUHJvdmlkZXJHbHVlQEBTQUhQRUJHUEVBSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDT2JqZWN0UGF0aFBhcnNlcjo6RnJlZShzdHJ1Y3QgUGFyc2VkT2JqZWN0UGF0aCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RnJlZUBDT2JqZWN0UGF0aFBhcnNlckBAUUVBQVhQRUFVUGFyc2VkT2JqZWN0UGF0aEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENIUHRyQXJyYXk6OkZyZWVFeHRyYSh2b2lkKSBfX3B0cjY0DQorP0ZyZWVFeHRyYUBDSFB0ckFycmF5QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSFN0cmluZzo6RnJlZUV4dHJhKHZvaWQpIF9fcHRyNjQNCis/RnJlZUV4dHJhQENIU3RyaW5nQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSFN0cmluZ0FycmF5OjpGcmVlRXh0cmEodm9pZCkgX19wdHI2NA0KKz9GcmVlRXh0cmFAQ0hTdHJpbmdBcnJheUBAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUmVnaXN0cnlTZWFyY2g6OkZyZWVTZWFyY2hMaXN0KGludCxjbGFzcyBDSFB0ckFycmF5ICYgX19wdHI2NCkgX19wdHI2NA0KKz9GcmVlU2VhcmNoTGlzdEBDUmVnaXN0cnlTZWFyY2hAQFFFQUFISEFFQVZDSFB0ckFycmF5QEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpHZXRBbGxEZXJpdmVkSW5zdGFuY2VzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBUUmVmUG9pbnRlckNvbGxlY3Rpb248Y2xhc3MgQ0luc3RhbmNlPiAqIF9fcHRyNjQsY2xhc3MgTWV0aG9kQ29udGV4dCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9HZXRBbGxEZXJpdmVkSW5zdGFuY2VzQENXYmVtUHJvdmlkZXJHbHVlQEBTQUpQRUJHUEVBVj8kVFJlZlBvaW50ZXJDb2xsZWN0aW9uQFZDSW5zdGFuY2VAQEBAUEVBVk1ldGhvZENvbnRleHRAQDBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpHZXRBbGxEZXJpdmVkSW5zdGFuY2VzQXN5bmNoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBQcm92aWRlciAqIF9fcHRyNjQsbG9uZyAoX19jZGVjbCopKGNsYXNzIFByb3ZpZGVyICogX19wdHI2NCxjbGFzcyBDSW5zdGFuY2UgKiBfX3B0cjY0LGNsYXNzIE1ldGhvZENvbnRleHQgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgTWV0aG9kQ29udGV4dCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpDQorP0dldEFsbERlcml2ZWRJbnN0YW5jZXNBc3luY2hAQ1diZW1Qcm92aWRlckdsdWVAQFNBSlBFQkdQRUFWUHJvdmlkZXJAQFA2QUoxUEVBVkNJbnN0YW5jZUBAUEVBVk1ldGhvZENvbnRleHRAQFBFQVhAWjAzNEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkdldEFsbEluc3RhbmNlcyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgVFJlZlBvaW50ZXJDb2xsZWN0aW9uPGNsYXNzIENJbnN0YW5jZT4gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBNZXRob2RDb250ZXh0ICogX19wdHI2NCkNCis/R2V0QWxsSW5zdGFuY2VzQENXYmVtUHJvdmlkZXJHbHVlQEBTQUpQRUJHUEVBVj8kVFJlZlBvaW50ZXJDb2xsZWN0aW9uQFZDSW5zdGFuY2VAQEBAMFBFQVZNZXRob2RDb250ZXh0QEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpHZXRBbGxJbnN0YW5jZXNBc3luY2godW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIFByb3ZpZGVyICogX19wdHI2NCxsb25nIChfX2NkZWNsKikoY2xhc3MgUHJvdmlkZXIgKiBfX3B0cjY0LGNsYXNzIENJbnN0YW5jZSAqIF9fcHRyNjQsY2xhc3MgTWV0aG9kQ29udGV4dCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBNZXRob2RDb250ZXh0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCkNCis/R2V0QWxsSW5zdGFuY2VzQXN5bmNoQENXYmVtUHJvdmlkZXJHbHVlQEBTQUpQRUJHUEVBVlByb3ZpZGVyQEBQNkFKMVBFQVZDSW5zdGFuY2VAQFBFQVZNZXRob2RDb250ZXh0QEBQRUFYQFowMzRAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSFN0cmluZzo6R2V0QWxsb2NMZW5ndGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRBbGxvY0xlbmd0aEBDSFN0cmluZ0BAUUVCQUhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENIUHRyQXJyYXk6OkdldEF0KGludCljb25zdCAgX19wdHI2NA0KKz9HZXRBdEBDSFB0ckFycmF5QEBRRUJBUEVBWEhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENIU3RyaW5nOjpHZXRBdChpbnQpY29uc3QgIF9fcHRyNjQNCis/R2V0QXRAQ0hTdHJpbmdAQFFFQkFHSEBaDQorOyBwdWJsaWM6IGNsYXNzIENIU3RyaW5nICBfX2NkZWNsIENIU3RyaW5nQXJyYXk6OkdldEF0KGludCljb25zdCAgX19wdHI2NA0KKz9HZXRBdEBDSFN0cmluZ0FycmF5QEBRRUJBP0FWQ0hTdHJpbmdAQEhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBXQkVNVGltZTo6R2V0QlNUUih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEJTVFJAV0JFTVRpbWVAQFFFQkFQRUFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgV0JFTVRpbWVTcGFuOjpHZXRCU1RSKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0QlNUUkBXQkVNVGltZVNwYW5AQFFFQkFQRUFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ0hTdHJpbmc6OkdldEJ1ZmZlcihpbnQpIF9fcHRyNjQNCis/R2V0QnVmZmVyQENIU3RyaW5nQEBRRUFBUEVBR0hAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDSFN0cmluZzo6R2V0QnVmZmVyU2V0TGVuZ3RoKGludCkgX19wdHI2NA0KKz9HZXRCdWZmZXJTZXRMZW5ndGhAQ0hTdHJpbmdAQFFFQUFQRUFHSEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSW5zdGFuY2U6OkdldEJ5dGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0dldEJ5dGVAQ0luc3RhbmNlQEBRRUJBX05QRUJHQUVBRUBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSW5zdGFuY2U6OkdldENIU3RyaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDSFN0cmluZyAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/R2V0Q0hTdHJpbmdAQ0luc3RhbmNlQEBRRUJBX05QRUJHQUVBVkNIU3RyaW5nQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkdldENTRFZlcnNpb24odm9pZCkNCis/R2V0Q1NEVmVyc2lvbkBDV2JlbVByb3ZpZGVyR2x1ZUBAU0FQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1JlZ2lzdHJ5OjpHZXRDbGFzc05hbWVXKHZvaWQpIF9fcHRyNjQNCis/R2V0Q2xhc3NOYW1lV0BDUmVnaXN0cnlAQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0luc3RhbmNlOjpHZXRDbGFzc09iamVjdEludGVyZmFjZSh2b2lkKSBfX3B0cjY0DQorP0dldENsYXNzT2JqZWN0SW50ZXJmYWNlQENJbnN0YW5jZUBAUUVBQVBFQVVJV2JlbUNsYXNzT2JqZWN0QEBYWg0KKzsgcHJpdmF0ZTogc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdmlkZXI6OkdldENsYXNzT2JqZWN0SW50ZXJmYWNlKGNsYXNzIE1ldGhvZENvbnRleHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldENsYXNzT2JqZWN0SW50ZXJmYWNlQFByb3ZpZGVyQEBBRUFBUEVBVUlXYmVtQ2xhc3NPYmplY3RAQFBFQVZNZXRob2RDb250ZXh0QEBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHZvaWQgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6R2V0Q29tcHV0ZXJOYW1lVyhjbGFzcyBDSFN0cmluZyAmIF9fcHRyNjQpDQorP0dldENvbXB1dGVyTmFtZVdAQ1diZW1Qcm92aWRlckdsdWVAQENBWEFFQVZDSFN0cmluZ0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6R2V0Q3VycmVudEJpbmFyeUtleVZhbHVlKHN0cnVjdCBIS0VZX18gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDdXJyZW50QmluYXJ5S2V5VmFsdWVAQ1JlZ2lzdHJ5QEBRRUFBS1BFQVVIS0VZX19AQFBFQkdQRUFFUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUmVnaXN0cnk6OkdldEN1cnJlbnRCaW5hcnlLZXlWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0hTdHJpbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEN1cnJlbnRCaW5hcnlLZXlWYWx1ZUBDUmVnaXN0cnlAQFFFQUFLUEVCR0FFQVZDSFN0cmluZ0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6R2V0Q3VycmVudEJpbmFyeUtleVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDdXJyZW50QmluYXJ5S2V5VmFsdWVAQ1JlZ2lzdHJ5QEBRRUFBS1BFQkdQRUFFUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUmVnaXN0cnk6OkdldEN1cnJlbnRLZXlWYWx1ZShzdHJ1Y3QgSEtFWV9fICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0Q3VycmVudEtleVZhbHVlQENSZWdpc3RyeUBAUUVBQUtQRUFVSEtFWV9fQEBQRUJHQUVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUmVnaXN0cnk6OkdldEN1cnJlbnRLZXlWYWx1ZShzdHJ1Y3QgSEtFWV9fICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0hTdHJpbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEN1cnJlbnRLZXlWYWx1ZUBDUmVnaXN0cnlAQFFFQUFLUEVBVUhLRVlfX0BAUEVCR0FFQVZDSFN0cmluZ0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6R2V0Q3VycmVudEtleVZhbHVlKHN0cnVjdCBIS0VZX18gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDSFN0cmluZ0FycmF5ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDdXJyZW50S2V5VmFsdWVAQ1JlZ2lzdHJ5QEBRRUFBS1BFQVVIS0VZX19AQFBFQkdBRUFWQ0hTdHJpbmdBcnJheUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6R2V0Q3VycmVudEtleVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDdXJyZW50S2V5VmFsdWVAQ1JlZ2lzdHJ5QEBRRUFBS1BFQkdBRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6R2V0Q3VycmVudEtleVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDSFN0cmluZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0Q3VycmVudEtleVZhbHVlQENSZWdpc3RyeUBAUUVBQUtQRUJHQUVBVkNIU3RyaW5nQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpHZXRDdXJyZW50S2V5VmFsdWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENIU3RyaW5nQXJyYXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEN1cnJlbnRLZXlWYWx1ZUBDUmVnaXN0cnlAQFFFQUFLUEVCR0FFQVZDSFN0cmluZ0FycmF5QEBAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6R2V0Q3VycmVudFJhd0tleVZhbHVlKHN0cnVjdCBIS0VZX18gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDdXJyZW50UmF3S2V5VmFsdWVAQ1JlZ2lzdHJ5QEBBRUFBS1BFQVVIS0VZX19AQFBFQkdQRUFYUEVBSzNAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6R2V0Q3VycmVudFJhd1N1YktleVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDdXJyZW50UmF3U3ViS2V5VmFsdWVAQ1JlZ2lzdHJ5QEBBRUFBS1BFQkdQRUFYUEVBSzJAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpHZXRDdXJyZW50U3ViS2V5Q291bnQodm9pZCkgX19wdHI2NA0KKz9HZXRDdXJyZW50U3ViS2V5Q291bnRAQ1JlZ2lzdHJ5QEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUmVnaXN0cnk6OkdldEN1cnJlbnRTdWJLZXlOYW1lKGNsYXNzIENIU3RyaW5nICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDdXJyZW50U3ViS2V5TmFtZUBDUmVnaXN0cnlAQFFFQUFLQUVBVkNIU3RyaW5nQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpHZXRDdXJyZW50U3ViS2V5UGF0aChjbGFzcyBDSFN0cmluZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0Q3VycmVudFN1YktleVBhdGhAQ1JlZ2lzdHJ5QEBRRUFBS0FFQVZDSFN0cmluZ0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6R2V0Q3VycmVudFN1YktleVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDdXJyZW50U3ViS2V5VmFsdWVAQ1JlZ2lzdHJ5QEBRRUFBS1BFQkdBRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6R2V0Q3VycmVudFN1YktleVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDSFN0cmluZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0Q3VycmVudFN1YktleVZhbHVlQENSZWdpc3RyeUBAUUVBQUtQRUJHQUVBVkNIU3RyaW5nQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpHZXRDdXJyZW50U3ViS2V5VmFsdWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEN1cnJlbnRTdWJLZXlWYWx1ZUBDUmVnaXN0cnlAQFFFQUFLUEVCR1BFQVhQRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgV0JFTVRpbWU6OkdldERNVEYoaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldERNVEZAV0JFTVRpbWVAQFFFQkFQRUFHSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFdCRU1UaW1lOjpHZXRETVRGTm9uTnRmcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldERNVEZOb25OdGZzQFdCRU1UaW1lQEBRRUJBUEVBR1haDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSW5zdGFuY2U6OkdldERPVUJMRSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsZG91YmxlICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXRET1VCTEVAQ0luc3RhbmNlQEBRRUJBX05QRUJHQUVBTkBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSW5zdGFuY2U6OkdldERXT1JEKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXREV09SREBDSW5zdGFuY2VAQFFFQkFfTlBFQkdBRUFLQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0IF9fY2RlY2wgQ0hQdHJBcnJheTo6R2V0RGF0YSh2b2lkKSBfX3B0cjY0DQorP0dldERhdGFAQ0hQdHJBcnJheUBAUUVBQVBFQVBFQVhYWg0KKzsgcHVibGljOiB2b2lkIGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQgX19jZGVjbCBDSFB0ckFycmF5OjpHZXREYXRhKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0RGF0YUBDSFB0ckFycmF5QEBRRUJBUEVBUEVCWFhaDQorOyBwcm90ZWN0ZWQ6IHN0cnVjdCBDSFN0cmluZ0RhdGEgKiBfX3B0cjY0IF9fY2RlY2wgQ0hTdHJpbmc6OkdldERhdGEodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXREYXRhQENIU3RyaW5nQEBJRUJBUEVBVUNIU3RyaW5nRGF0YUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0hTdHJpbmcgKiBfX3B0cjY0IF9fY2RlY2wgQ0hTdHJpbmdBcnJheTo6R2V0RGF0YSh2b2lkKSBfX3B0cjY0DQorP0dldERhdGFAQ0hTdHJpbmdBcnJheUBAUUVBQVBFQVZDSFN0cmluZ0BAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0hTdHJpbmcgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0hTdHJpbmdBcnJheTo6R2V0RGF0YSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldERhdGFAQ0hTdHJpbmdBcnJheUBAUUVCQVBFQlZDSFN0cmluZ0BAWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENJbnN0YW5jZTo6R2V0RGF0ZVRpbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIFdCRU1UaW1lICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXREYXRlVGltZUBDSW5zdGFuY2VAQFFFQkFfTlBFQkdBRUFWV0JFTVRpbWVAQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSW5zdGFuY2U6OkdldEVtYmVkZGVkT2JqZWN0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDSW5zdGFuY2UgKiBfX3B0cjY0ICogX19wdHI2NCxjbGFzcyBNZXRob2RDb250ZXh0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXRFbWJlZGRlZE9iamVjdEBDSW5zdGFuY2VAQFFFQkFfTlBFQkdQRUFQRUFWMUBQRUFWTWV0aG9kQ29udGV4dEBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6R2V0RW1wdHlJbnN0YW5jZShjbGFzcyBNZXRob2RDb250ZXh0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0luc3RhbmNlICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9HZXRFbXB0eUluc3RhbmNlQENXYmVtUHJvdmlkZXJHbHVlQEBTQUpQRUFWTWV0aG9kQ29udGV4dEBAUEVCR1BFQVBFQVZDSW5zdGFuY2VAQDFAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpHZXRFbXB0eUluc3RhbmNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDSW5zdGFuY2UgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0dldEVtcHR5SW5zdGFuY2VAQ1diZW1Qcm92aWRlckdsdWVAQFNBSlBFQkdQRUFQRUFWQ0luc3RhbmNlQEAwQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV0JFTVRpbWU6OkdldEZJTEVUSU1FKHN0cnVjdCBfRklMRVRJTUUgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0dldEZJTEVUSU1FQFdCRU1UaW1lQEBRRUJBSFBFQVVfRklMRVRJTUVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdCRU1UaW1lU3Bhbjo6R2V0RklMRVRJTUUoc3RydWN0IF9GSUxFVElNRSAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/R2V0RklMRVRJTUVAV0JFTVRpbWVTcGFuQEBRRUJBSFBFQVVfRklMRVRJTUVAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgc3RydWN0IElXYmVtQ29udGV4dCAqIF9fcHRyNjQgX19jZGVjbCBNZXRob2RDb250ZXh0OjpHZXRJV0JFTUNvbnRleHQodm9pZCkgX19wdHI2NA0KKz9HZXRJV0JFTUNvbnRleHRATWV0aG9kQ29udGV4dEBAVUVBQVBFQVVJV2JlbUNvbnRleHRAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkdldEluc3RhbmNlQnlQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDSW5zdGFuY2UgKiBfX3B0cjY0ICogX19wdHI2NCxjbGFzcyBNZXRob2RDb250ZXh0ICogX19wdHI2NCkNCis/R2V0SW5zdGFuY2VCeVBhdGhAQ1diZW1Qcm92aWRlckdsdWVAQFNBSlBFQkdQRUFQRUFWQ0luc3RhbmNlQEBQRUFWTWV0aG9kQ29udGV4dEBAQFoNCis7IHByaXZhdGU6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkdldEluc3RhbmNlRnJvbUNJTU9NKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgTWV0aG9kQ29udGV4dCAqIF9fcHRyNjQsY2xhc3MgQ0luc3RhbmNlICogX19wdHI2NCAqIF9fcHRyNjQpDQorP0dldEluc3RhbmNlRnJvbUNJTU9NQENXYmVtUHJvdmlkZXJHbHVlQEBDQUpQRUJHMFBFQVZNZXRob2RDb250ZXh0QEBQRUFQRUFWQ0luc3RhbmNlQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpHZXRJbnN0YW5jZUtleXNCeVBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENJbnN0YW5jZSAqIF9fcHRyNjQgKiBfX3B0cjY0LGNsYXNzIE1ldGhvZENvbnRleHQgKiBfX3B0cjY0KQ0KKz9HZXRJbnN0YW5jZUtleXNCeVBhdGhAQ1diZW1Qcm92aWRlckdsdWVAQFNBSlBFQkdQRUFQRUFWQ0luc3RhbmNlQEBQRUFWTWV0aG9kQ29udGV4dEBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6R2V0SW5zdGFuY2VQcm9wZXJ0aWVzQnlQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDSW5zdGFuY2UgKiBfX3B0cjY0ICogX19wdHI2NCxjbGFzcyBNZXRob2RDb250ZXh0ICogX19wdHI2NCxjbGFzcyBDSFN0cmluZ0FycmF5ICYgX19wdHI2NCkNCis/R2V0SW5zdGFuY2VQcm9wZXJ0aWVzQnlQYXRoQENXYmVtUHJvdmlkZXJHbHVlQEBTQUpQRUJHUEVBUEVBVkNJbnN0YW5jZUBAUEVBVk1ldGhvZENvbnRleHRAQEFFQVZDSFN0cmluZ0FycmF5QEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpHZXRJbnN0YW5jZXNCeVF1ZXJ5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBUUmVmUG9pbnRlckNvbGxlY3Rpb248Y2xhc3MgQ0luc3RhbmNlPiAqIF9fcHRyNjQsY2xhc3MgTWV0aG9kQ29udGV4dCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9HZXRJbnN0YW5jZXNCeVF1ZXJ5QENXYmVtUHJvdmlkZXJHbHVlQEBTQUpQRUJHUEVBVj8kVFJlZlBvaW50ZXJDb2xsZWN0aW9uQFZDSW5zdGFuY2VAQEBAUEVBVk1ldGhvZENvbnRleHRAQDBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpHZXRJbnN0YW5jZXNCeVF1ZXJ5QXN5bmNoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBQcm92aWRlciAqIF9fcHRyNjQsbG9uZyAoX19jZGVjbCopKGNsYXNzIFByb3ZpZGVyICogX19wdHI2NCxjbGFzcyBDSW5zdGFuY2UgKiBfX3B0cjY0LGNsYXNzIE1ldGhvZENvbnRleHQgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgTWV0aG9kQ29udGV4dCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpDQorP0dldEluc3RhbmNlc0J5UXVlcnlBc3luY2hAQ1diZW1Qcm92aWRlckdsdWVAQFNBSlBFQkdQRUFWUHJvdmlkZXJAQFA2QUoxUEVBVkNJbnN0YW5jZUBAUEVBVk1ldGhvZENvbnRleHRAQFBFQVhAWjAzNEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFBhcnNlZE9iamVjdFBhdGg6OkdldEtleVN0cmluZyh2b2lkKSBfX3B0cjY0DQorP0dldEtleVN0cmluZ0BQYXJzZWRPYmplY3RQYXRoQEBRRUFBUEVBR1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENIU3RyaW5nOjpHZXRMZW5ndGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRMZW5ndGhAQ0hTdHJpbmdAQFFFQkFIWFoNCis7IHByb3RlY3RlZDogY2xhc3MgQ0hTdHJpbmcgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgUHJvdmlkZXI6OkdldExvY2FsQ29tcHV0ZXJOYW1lKHZvaWQpIF9fcHRyNjQNCis/R2V0TG9jYWxDb21wdXRlck5hbWVAUHJvdmlkZXJAQElFQUFBRUJWQ0hTdHJpbmdAQFhaDQorOyBwcm90ZWN0ZWQ6IGJvb2wgX19jZGVjbCBQcm92aWRlcjo6R2V0TG9jYWxJbnN0YW5jZVBhdGgoY2xhc3MgQ0luc3RhbmNlIGNvbnN0ICogX19wdHI2NCxjbGFzcyBDSFN0cmluZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TG9jYWxJbnN0YW5jZVBhdGhAUHJvdmlkZXJAQElFQUFfTlBFQlZDSW5zdGFuY2VAQEFFQVZDSFN0cmluZ0BAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBXQkVNVGltZTo6R2V0TG9jYWxPZmZzZXRGb3JEYXRlKF9faW50NjQgY29uc3QgJiBfX3B0cjY0KQ0KKz9HZXRMb2NhbE9mZnNldEZvckRhdGVAV0JFTVRpbWVAQFNBSkFFQl9KQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBXQkVNVGltZTo6R2V0TG9jYWxPZmZzZXRGb3JEYXRlKHN0cnVjdCBfRklMRVRJTUUgY29uc3QgKiBfX3B0cjY0KQ0KKz9HZXRMb2NhbE9mZnNldEZvckRhdGVAV0JFTVRpbWVAQFNBSlBFQlVfRklMRVRJTUVAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgV0JFTVRpbWU6OkdldExvY2FsT2Zmc2V0Rm9yRGF0ZShzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgKiBfX3B0cjY0KQ0KKz9HZXRMb2NhbE9mZnNldEZvckRhdGVAV0JFTVRpbWVAQFNBSlBFQlVfU1lTVEVNVElNRUBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBXQkVNVGltZTo6R2V0TG9jYWxPZmZzZXRGb3JEYXRlKHN0cnVjdCB0bSBjb25zdCAqIF9fcHRyNjQpDQorP0dldExvY2FsT2Zmc2V0Rm9yRGF0ZUBXQkVNVGltZUBAU0FKUEVCVXRtQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpHZXRMb25nZXN0Q2xhc3NTdHJpbmdTaXplKHZvaWQpIF9fcHRyNjQNCis/R2V0TG9uZ2VzdENsYXNzU3RyaW5nU2l6ZUBDUmVnaXN0cnlAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6R2V0TG9uZ2VzdFN1YktleVNpemUodm9pZCkgX19wdHI2NA0KKz9HZXRMb25nZXN0U3ViS2V5U2l6ZUBDUmVnaXN0cnlAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6R2V0TG9uZ2VzdFZhbHVlRGF0YSh2b2lkKSBfX3B0cjY0DQorP0dldExvbmdlc3RWYWx1ZURhdGFAQ1JlZ2lzdHJ5QEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUmVnaXN0cnk6OkdldExvbmdlc3RWYWx1ZU5hbWUodm9pZCkgX19wdHI2NA0KKz9HZXRMb25nZXN0VmFsdWVOYW1lQENSZWdpc3RyeUBAUUVBQUtYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6R2V0TWFwQ291bnRQdHIoY2xhc3MgQ1diZW1HbHVlRmFjdG9yeSBjb25zdCAqIF9fcHRyNjQpDQorP0dldE1hcENvdW50UHRyQENXYmVtUHJvdmlkZXJHbHVlQEBLQVBFQUpQRUJWQ1diZW1HbHVlRmFjdG9yeUBAQFoNCis7IHB1YmxpYzogY2xhc3MgTWV0aG9kQ29udGV4dCAqIF9fcHRyNjQgX19jZGVjbCBDSW5zdGFuY2U6OkdldE1ldGhvZENvbnRleHQodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRNZXRob2RDb250ZXh0QENJbnN0YW5jZUBAUUVCQVBFQVZNZXRob2RDb250ZXh0QEBYWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDRnJhbWV3b3JrUXVlcnk6OkdldE5hbWVzcGFjZSh2b2lkKSBfX3B0cjY0DQorP0dldE5hbWVzcGFjZUBDRnJhbWV3b3JrUXVlcnlAQElFQUFBRUJWQ0hTdHJpbmdAQFhaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIENIU3RyaW5nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIFByb3ZpZGVyOjpHZXROYW1lc3BhY2Uodm9pZCkgX19wdHI2NA0KKz9HZXROYW1lc3BhY2VAUHJvdmlkZXJAQElFQUFBRUJWQ0hTdHJpbmdAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgSVdiZW1TZXJ2aWNlcyAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6R2V0TmFtZXNwYWNlQ29ubmVjdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0dldE5hbWVzcGFjZUNvbm5lY3Rpb25AQ1diZW1Qcm92aWRlckdsdWVAQFNBUEVBVUlXYmVtU2VydmljZXNAQFBFQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IElXYmVtU2VydmljZXMgKiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkdldE5hbWVzcGFjZUNvbm5lY3Rpb24odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIE1ldGhvZENvbnRleHQgKiBfX3B0cjY0KQ0KKz9HZXROYW1lc3BhY2VDb25uZWN0aW9uQENXYmVtUHJvdmlkZXJHbHVlQEBTQVBFQVVJV2JlbVNlcnZpY2VzQEBQRUJHUEVBVk1ldGhvZENvbnRleHRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFBhcnNlZE9iamVjdFBhdGg6OkdldE5hbWVzcGFjZVBhcnQodm9pZCkgX19wdHI2NA0KKz9HZXROYW1lc3BhY2VQYXJ0QFBhcnNlZE9iamVjdFBhdGhAQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6R2V0T1NNYWpvclZlcnNpb24odm9pZCkNCis/R2V0T1NNYWpvclZlcnNpb25AQ1diZW1Qcm92aWRlckdsdWVAQFNBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpHZXRPYmplY3QodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IGNvbnN0LGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqIF9fcHRyNjQsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1DYWxsUmVzdWx0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0T2JqZWN0QENXYmVtUHJvdmlkZXJHbHVlQEBVRUFBSlFFQUdKUEVBVUlXYmVtQ29udGV4dEBAUEVBUEVBVUlXYmVtQ2xhc3NPYmplY3RAQFBFQVBFQVVJV2JlbUNhbGxSZXN1bHRAQEBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgUHJvdmlkZXI6OkdldE9iamVjdChzdHJ1Y3QgUGFyc2VkT2JqZWN0UGF0aCAqIF9fcHRyNjQsY2xhc3MgTWV0aG9kQ29udGV4dCAqIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz9HZXRPYmplY3RAUHJvdmlkZXJAQEFFQUFKUEVBVVBhcnNlZE9iamVjdFBhdGhAQFBFQVZNZXRob2RDb250ZXh0QEBKQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgUHJvdmlkZXI6OkdldE9iamVjdChjbGFzcyBDSW5zdGFuY2UgKiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/R2V0T2JqZWN0QFByb3ZpZGVyQEBNRUFBSlBFQVZDSW5zdGFuY2VAQEpAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBQcm92aWRlcjo6R2V0T2JqZWN0KGNsYXNzIENJbnN0YW5jZSAqIF9fcHRyNjQsbG9uZyxjbGFzcyBDRnJhbWV3b3JrUXVlcnkgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE9iamVjdEBQcm92aWRlckBATUVBQUpQRUFWQ0luc3RhbmNlQEBKQUVBVkNGcmFtZXdvcmtRdWVyeUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkdldE9iamVjdEFzeW5jKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbU9iamVjdFNpbmsgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE9iamVjdEFzeW5jQENXYmVtUHJvdmlkZXJHbHVlQEBVRUFBSlFFQUdKUEVBVUlXYmVtQ29udGV4dEBAUEVBVUlXYmVtT2JqZWN0U2lua0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgUGFyc2VkT2JqZWN0UGF0aDo6R2V0UGFyZW50TmFtZXNwYWNlUGFydCh2b2lkKSBfX3B0cjY0DQorP0dldFBhcmVudE5hbWVzcGFjZVBhcnRAUGFyc2VkT2JqZWN0UGF0aEBAUUVBQVBFQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpHZXRQbGF0Zm9ybSh2b2lkKQ0KKz9HZXRQbGF0Zm9ybUBDV2JlbVByb3ZpZGVyR2x1ZUBAU0FLWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGcmFtZXdvcmtRdWVyeUV4OjpHZXRQcm9wZXJ0eUJpdE1hc2soY2xhc3MgQ0hQdHJBcnJheSBjb25zdCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcGVydHlCaXRNYXNrQENGcmFtZXdvcmtRdWVyeUV4QEBRRUFBWEFFQlZDSFB0ckFycmF5QEBQRUFYQFoNCis7IHByaXZhdGU6IGNsYXNzIENXYmVtUHJvdmlkZXJHbHVlICogX19wdHI2NCBfX2NkZWNsIE1ldGhvZENvbnRleHQ6OkdldFByb3ZpZGVyR2x1ZSh2b2lkKSBfX3B0cjY0DQorP0dldFByb3ZpZGVyR2x1ZUBNZXRob2RDb250ZXh0QEBBRUFBUEVBVkNXYmVtUHJvdmlkZXJHbHVlQEBYWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBQcm92aWRlcjo6R2V0UHJvdmlkZXJOYW1lKHZvaWQpIF9fcHRyNjQNCis/R2V0UHJvdmlkZXJOYW1lQFByb3ZpZGVyQEBJRUFBQUVCVkNIU3RyaW5nQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDRnJhbWV3b3JrUXVlcnk6OkdldFF1ZXJ5KHZvaWQpIF9fcHRyNjQNCis/R2V0UXVlcnlAQ0ZyYW1ld29ya1F1ZXJ5QEBRRUFBQUVCVkNIU3RyaW5nQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDRnJhbWV3b3JrUXVlcnk6OkdldFF1ZXJ5Q2xhc3NOYW1lKHZvaWQpIF9fcHRyNjQNCis/R2V0UXVlcnlDbGFzc05hbWVAQ0ZyYW1ld29ya1F1ZXJ5QEBRRUFBUEVBR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDT2JqZWN0UGF0aFBhcnNlcjo6R2V0UmVsYXRpdmVQYXRoKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/R2V0UmVsYXRpdmVQYXRoQENPYmplY3RQYXRoUGFyc2VyQEBTQVBFQUdQRUFHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGcmFtZXdvcmtRdWVyeTo6R2V0UmVxdWlyZWRQcm9wZXJ0aWVzKGNsYXNzIENIU3RyaW5nQXJyYXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFJlcXVpcmVkUHJvcGVydGllc0BDRnJhbWV3b3JrUXVlcnlAQFFFQUFYQUVBVkNIU3RyaW5nQXJyYXlAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdCRU1UaW1lOjpHZXRTWVNURU1USU1FKHN0cnVjdCBfU1lTVEVNVElNRSAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/R2V0U1lTVEVNVElNRUBXQkVNVGltZUBAUUVCQUhQRUFVX1NZU1RFTVRJTUVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENIUHRyQXJyYXk6OkdldFNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTaXplQENIUHRyQXJyYXlAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0hTdHJpbmdBcnJheTo6R2V0U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFNpemVAQ0hTdHJpbmdBcnJheUBAUUVCQUhYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0luc3RhbmNlOjpHZXRTdGF0dXModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGJvb2wgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXRTdGF0dXNAQ0luc3RhbmNlQEBRRUJBX05QRUJHQUVBX05BRUFHQFoNCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6R2V0U3RhdHVzT2JqZWN0KGNsYXNzIE1ldGhvZENvbnRleHQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/R2V0U3RhdHVzT2JqZWN0QENXYmVtUHJvdmlkZXJHbHVlQEBDQVBFQVVJV2JlbUNsYXNzT2JqZWN0QEBQRUFWTWV0aG9kQ29udGV4dEBAUEVCR0BaDQorOyBwdWJsaWM6IHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCBfX2NkZWNsIE1ldGhvZENvbnRleHQ6OkdldFN0YXR1c09iamVjdCh2b2lkKSBfX3B0cjY0DQorP0dldFN0YXR1c09iamVjdEBNZXRob2RDb250ZXh0QEBRRUFBUEVBVUlXYmVtQ2xhc3NPYmplY3RAQFhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSW5zdGFuY2U6OkdldFN0cmluZ0FycmF5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgdGFnU0FGRUFSUkFZICogX19wdHI2NCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nQXJyYXlAQ0luc3RhbmNlQEBRRUJBX05QRUJHQUVBUEVBVXRhZ1NBRkVBUlJBWUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV0JFTVRpbWU6OkdldFN0cnVjdHRtKHN0cnVjdCB0bSAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RydWN0dG1AV0JFTVRpbWVAQFFFQkFIUEVBVXRtQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgV0JFTVRpbWU6OkdldFRpbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRUaW1lQFdCRU1UaW1lQEBRRUJBX0tYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgV0JFTVRpbWVTcGFuOjpHZXRUaW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VGltZUBXQkVNVGltZVNwYW5AQFFFQkFfS1haDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSW5zdGFuY2U6OkdldFRpbWVTcGFuKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBXQkVNVGltZVNwYW4gJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0dldFRpbWVTcGFuQENJbnN0YW5jZUBAUUVCQV9OUEVCR0FFQVZXQkVNVGltZVNwYW5AQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENIUHRyQXJyYXk6OkdldFVwcGVyQm91bmQodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRVcHBlckJvdW5kQENIUHRyQXJyYXlAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0hTdHJpbmdBcnJheTo6R2V0VXBwZXJCb3VuZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFVwcGVyQm91bmRAQ0hTdHJpbmdBcnJheUBAUUVCQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpHZXRWYWx1ZUNvdW50KHZvaWQpIF9fcHRyNjQNCis/R2V0VmFsdWVDb3VudEBDUmVnaXN0cnlAQFFFQUFLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENGcmFtZXdvcmtRdWVyeTo6R2V0VmFsdWVzRm9yUHJvcCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3Mgc3RkOjp2ZWN0b3I8Y2xhc3MgX2JzdHJfdCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBfYnN0cl90PiA+ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRWYWx1ZXNGb3JQcm9wQENGcmFtZXdvcmtRdWVyeUBAUUVBQUpQRUJHQUVBVj8kdmVjdG9yQFZfYnN0cl90QEBWPyRhbGxvY2F0b3JAVl9ic3RyX3RAQEBzdGRAQEBzdGRAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRnJhbWV3b3JrUXVlcnk6OkdldFZhbHVlc0ZvclByb3AodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENIU3RyaW5nQXJyYXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFZhbHVlc0ZvclByb3BAQ0ZyYW1ld29ya1F1ZXJ5QEBRRUFBSlBFQkdBRUFWQ0hTdHJpbmdBcnJheUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENGcmFtZXdvcmtRdWVyeUV4OjpHZXRWYWx1ZXNGb3JQcm9wKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBzdGQ6OnZlY3RvcjxpbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8aW50PiA+ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRWYWx1ZXNGb3JQcm9wQENGcmFtZXdvcmtRdWVyeUV4QEBRRUFBSlBFQkdBRUFWPyR2ZWN0b3JASFY/JGFsbG9jYXRvckBIQHN0ZEBAQHN0ZEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENGcmFtZXdvcmtRdWVyeUV4OjpHZXRWYWx1ZXNGb3JQcm9wKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBzdGQ6OnZlY3RvcjxjbGFzcyBfdmFyaWFudF90LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIF92YXJpYW50X3Q+ID4gJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFZhbHVlc0ZvclByb3BAQ0ZyYW1ld29ya1F1ZXJ5RXhAQFFFQUFKUEVCR0FFQVY/JHZlY3RvckBWX3ZhcmlhbnRfdEBAVj8kYWxsb2NhdG9yQFZfdmFyaWFudF90QEBAc3RkQEBAc3RkQEBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0luc3RhbmNlOjpHZXRWYXJpYW50KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgdGFnVkFSSUFOVCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFyaWFudEBDSW5zdGFuY2VAQFFFQkFfTlBFQkdBRUFVdGFnVkFSSUFOVEBAQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENJbnN0YW5jZTo6R2V0V0JFTUlOVDE2KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzaG9ydCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/R2V0V0JFTUlOVDE2QENJbnN0YW5jZUBAUUVCQV9OUEVCR0FFQUZAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0luc3RhbmNlOjpHZXRXQkVNSU5UNjQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENIU3RyaW5nICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXRXQkVNSU5UNjRAQ0luc3RhbmNlQEBRRUJBX05QRUJHQUVBVkNIU3RyaW5nQEBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0luc3RhbmNlOjpHZXRXQkVNSU5UNjQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LF9faW50NjQgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0dldFdCRU1JTlQ2NEBDSW5zdGFuY2VAQFFFQkFfTlBFQkdBRUFfSkBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSW5zdGFuY2U6OkdldFdCRU1JTlQ2NCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/R2V0V0JFTUlOVDY0QENJbnN0YW5jZUBAUUVCQV9OUEVCR0FFQV9LQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENJbnN0YW5jZTo6R2V0V0NIQVIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/R2V0V0NIQVJAQ0luc3RhbmNlQEBRRUJBX05QRUJHUEVBUEVBR0BaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSW5zdGFuY2U6OkdldFdPUkQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXRXT1JEQENJbnN0YW5jZUBAUUVCQV9OUEVCR0FFQUdAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0luc3RhbmNlOjpHZXRib29sKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxib29sICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXRib29sQENJbnN0YW5jZUBAUUVCQV9OUEVCR0FFQV9OQFoNCis7IHB1YmxpYzogc3RydWN0IEhLRVlfXyAqIF9fcHRyNjQgX19jZGVjbCBDUmVnaXN0cnk6OkdldGhLZXkodm9pZCkgX19wdHI2NA0KKz9HZXRoS2V5QENSZWdpc3RyeUBAUUVBQVBFQVVIS0VZX19AQFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdCRU1UaW1lOjpHZXR0aW1lX3QoX19pbnQ2NCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/R2V0dGltZV90QFdCRU1UaW1lQEBRRUJBSFBFQV9KQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV0JFTVRpbWVTcGFuOjpHZXR0aW1lX3QoX19pbnQ2NCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/R2V0dGltZV90QFdCRU1UaW1lU3BhbkBAUUVCQUhQRUFfSkBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkluY3JlbWVudE1hcENvdW50KGxvbmcgKiBfX3B0cjY0KQ0KKz9JbmNyZW1lbnRNYXBDb3VudEBDV2JlbVByb3ZpZGVyR2x1ZUBAS0FKUEVBSkBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkluY3JlbWVudE1hcENvdW50KGNsYXNzIENXYmVtR2x1ZUZhY3RvcnkgY29uc3QgKiBfX3B0cjY0KQ0KKz9JbmNyZW1lbnRNYXBDb3VudEBDV2JlbVByb3ZpZGVyR2x1ZUBAS0FKUEVCVkNXYmVtR2x1ZUZhY3RvcnlAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OkluY3JlbWVudE9iamVjdENvdW50KHZvaWQpDQorP0luY3JlbWVudE9iamVjdENvdW50QENXYmVtUHJvdmlkZXJHbHVlQEBTQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZyYW1ld29ya1F1ZXJ5OjpJbml0MihzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdDJAQ0ZyYW1ld29ya1F1ZXJ5QEBRRUFBWFBFQVVJV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0ZyYW1ld29ya1F1ZXJ5OjpJbml0KHN0cnVjdCBQYXJzZWRPYmplY3RQYXRoICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1Db250ZXh0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0hTdHJpbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRAQ0ZyYW1ld29ya1F1ZXJ5QEBRRUFBSlBFQVVQYXJzZWRPYmplY3RQYXRoQEBQRUFVSVdiZW1Db250ZXh0QEBQRUJHQUVBVkNIU3RyaW5nQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0ZyYW1ld29ya1F1ZXJ5OjpJbml0KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgY29uc3QsbG9uZyxjbGFzcyBDSFN0cmluZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdEBDRnJhbWV3b3JrUXVlcnlAQFFFQUFKUUVBRzBKQUVBVkNIU3RyaW5nQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0hTdHJpbmc6OkluaXQodm9pZCkgX19wdHI2NA0KKz9Jbml0QENIU3RyaW5nQEBJRUFBWFhaDQorOyBwcml2YXRlOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpJbml0KHZvaWQpDQorP0luaXRAQ1diZW1Qcm92aWRlckdsdWVAQENBWFhaDQorOyBwcml2YXRlOiBzdGF0aWMgdm9pZCBfX2NkZWNsIFByb3ZpZGVyOjpJbml0Q29tcHV0ZXJOYW1lKHZvaWQpDQorP0luaXRDb21wdXRlck5hbWVAUHJvdmlkZXJAQENBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENGcmFtZXdvcmtRdWVyeUV4OjpJbml0RXgodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IGNvbnN0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCxsb25nLGNsYXNzIENIU3RyaW5nICYgX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0RXhAQ0ZyYW1ld29ya1F1ZXJ5RXhAQFVFQUFKUUVBRzBKQUVBVkNIU3RyaW5nQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6SW5pdGlhbGl6ZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsbG9uZyx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbVNlcnZpY2VzICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1Db250ZXh0ICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1Qcm92aWRlckluaXRTaW5rICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQENXYmVtUHJvdmlkZXJHbHVlQEBVRUFBSlBFQUdKMDBQRUFVSVdiZW1TZXJ2aWNlc0BAUEVBVUlXYmVtQ29udGV4dEBAUEVBVUlXYmVtUHJvdmlkZXJJbml0U2lua0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENIUHRyQXJyYXk6Okluc2VydEF0KGludCxjbGFzcyBDSFB0ckFycmF5ICogX19wdHI2NCkgX19wdHI2NA0KKz9JbnNlcnRBdEBDSFB0ckFycmF5QEBRRUFBWEhQRUFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0hQdHJBcnJheTo6SW5zZXJ0QXQoaW50LHZvaWQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9JbnNlcnRBdEBDSFB0ckFycmF5QEBRRUFBWEhQRUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSFN0cmluZ0FycmF5OjpJbnNlcnRBdChpbnQsY2xhc3MgQ0hTdHJpbmdBcnJheSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5zZXJ0QXRAQ0hTdHJpbmdBcnJheUBAUUVBQVhIUEVBVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENIU3RyaW5nQXJyYXk6Okluc2VydEF0KGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0luc2VydEF0QENIU3RyaW5nQXJyYXlAQFFFQUFYSFBFQkdIQFoNCis7IHByaXZhdGU6IHN0cnVjdCBJV2JlbVNlcnZpY2VzICogX19wdHI2NCBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpJbnRlcm5hbEdldE5hbWVzcGFjZUNvbm5lY3Rpb24odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ludGVybmFsR2V0TmFtZXNwYWNlQ29ubmVjdGlvbkBDV2JlbVByb3ZpZGVyR2x1ZUBAQUVBQVBFQVVJV2JlbVNlcnZpY2VzQEBQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0ZyYW1ld29ya1F1ZXJ5RXg6OklzM1Rva2VuT1IodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgdGFnVkFSSUFOVCAmIF9fcHRyNjQsc3RydWN0IHRhZ1ZBUklBTlQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzM1Rva2VuT1JAQ0ZyYW1ld29ya1F1ZXJ5RXhAQFFFQUFIUEVCRzBBRUFVdGFnVkFSSUFOVEBAMUBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFBhcnNlZE9iamVjdFBhdGg6OklzQ2xhc3Modm9pZCkgX19wdHI2NA0KKz9Jc0NsYXNzQFBhcnNlZE9iamVjdFBhdGhAQFFFQUFIWFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6SXNEZXJpdmVkRnJvbSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIE1ldGhvZENvbnRleHQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/SXNEZXJpdmVkRnJvbUBDV2JlbVByb3ZpZGVyR2x1ZUBAU0FfTlBFQkcwUEVBVk1ldGhvZENvbnRleHRAQDBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSFN0cmluZzo6SXNFbXB0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRW1wdHlAQ0hTdHJpbmdAQFFFQkFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBib29sIF9fY2RlY2wgQ0ZyYW1ld29ya1F1ZXJ5RXg6OklzRXh0ZW5kZWQodm9pZCkgX19wdHI2NA0KKz9Jc0V4dGVuZGVkQENGcmFtZXdvcmtRdWVyeUV4QEBVRUFBX05YWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0ZyYW1ld29ya1F1ZXJ5OjpJc0luTGlzdChjbGFzcyBDSFN0cmluZ0FycmF5IGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNJbkxpc3RAQ0ZyYW1ld29ya1F1ZXJ5QEBJRUFBS0FFQlZDSFN0cmluZ0FycmF5QEBQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUGFyc2VkT2JqZWN0UGF0aDo6SXNJbnN0YW5jZSh2b2lkKSBfX3B0cjY0DQorP0lzSW5zdGFuY2VAUGFyc2VkT2JqZWN0UGF0aEBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBQYXJzZWRPYmplY3RQYXRoOjpJc0xvY2FsKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Jc0xvY2FsQFBhcnNlZE9iamVjdFBhdGhAQFFFQUFIUEVCR0BaDQorOyBwdWJsaWM6IGVudW0gUHJvdmlkZXJMb2c6OkxvZ0xldmVsICBfX2NkZWNsIFByb3ZpZGVyTG9nOjpJc0xvZ2dpbmdPbihjbGFzcyBDSFN0cmluZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNMb2dnaW5nT25AUHJvdmlkZXJMb2dAQFFFQUE/QVc0TG9nTGV2ZWxAMUBQRUFWQ0hTdHJpbmdAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENGcmFtZXdvcmtRdWVyeUV4OjpJc05Ub2tlbkFuZChjbGFzcyBDSFN0cmluZ0FycmF5ICYgX19wdHI2NCxjbGFzcyBDSFB0ckFycmF5ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Jc05Ub2tlbkFuZEBDRnJhbWV3b3JrUXVlcnlFeEBAUUVBQUhBRUFWQ0hTdHJpbmdBcnJheUBAQUVBVkNIUHRyQXJyYXlAQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSW5zdGFuY2U6OklzTnVsbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/SXNOdWxsQENJbnN0YW5jZUBAUUVCQV9OUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFBhcnNlZE9iamVjdFBhdGg6OklzT2JqZWN0KHZvaWQpIF9fcHRyNjQNCis/SXNPYmplY3RAUGFyc2VkT2JqZWN0UGF0aEBAUUVBQUhYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgV0JFTVRpbWU6OklzT2sodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc09rQFdCRU1UaW1lQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgV0JFTVRpbWVTcGFuOjpJc09rKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNPa0BXQkVNVGltZVNwYW5AQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRnJhbWV3b3JrUXVlcnk6OklzUHJvcGVydHlSZXF1aXJlZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNQcm9wZXJ0eVJlcXVpcmVkQENGcmFtZXdvcmtRdWVyeUBAUUVBQV9OUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENGcmFtZXdvcmtRdWVyeTo6SXNSZWZlcmVuY2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzUmVmZXJlbmNlQENGcmFtZXdvcmtRdWVyeUBASUVBQUhQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUGFyc2VkT2JqZWN0UGF0aDo6SXNSZWxhdGl2ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzUmVsYXRpdmVAUGFyc2VkT2JqZWN0UGF0aEBAUUVBQUhQRUJHMEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRnJhbWV3b3JrUXVlcnk6OktleXNPbmx5KHZvaWQpIF9fcHRyNjQNCis/S2V5c09ubHlAQ0ZyYW1ld29ya1F1ZXJ5QEBRRUFBX05YWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyAgX19jZGVjbCBDSFN0cmluZzo6TGVmdChpbnQpY29uc3QgIF9fcHRyNjQNCis/TGVmdEBDSFN0cmluZ0BAUUVCQT9BVjFASEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENIU3RyaW5nOjpMb2FkU3RyaW5nVyh1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9Mb2FkU3RyaW5nV0BDSFN0cmluZ0BASUVBQUhJUEVBR0lAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSFN0cmluZzo6TG9hZFN0cmluZ1codW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0xvYWRTdHJpbmdXQENIU3RyaW5nQEBRRUFBSElAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUHJvdmlkZXJMb2c6OkxvY2FsTG9nTWVzc2FnZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCxlbnVtIFByb3ZpZGVyTG9nOjpMb2dMZXZlbCkgX19wdHI2NA0KKz9Mb2NhbExvZ01lc3NhZ2VAUHJvdmlkZXJMb2dAQFFFQUFYUEVCRzBIVzRMb2dMZXZlbEAxQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQcm92aWRlckxvZzo6TG9jYWxMb2dNZXNzYWdlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQsZW51bSBQcm92aWRlckxvZzo6TG9nTGV2ZWwsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LC4uLikgX19wdHI2NA0KKz9Mb2NhbExvZ01lc3NhZ2VAUHJvdmlkZXJMb2dAQFFFQUFYUEVCR0hXNExvZ0xldmVsQDFAMFpaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENSZWdpc3RyeVNlYXJjaDo6TG9jYXRlS2V5QnlOYW1lT3JWYWx1ZU5hbWUoc3RydWN0IEhLRVlfXyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0hTdHJpbmcgJiBfX3B0cjY0LGNsYXNzIENIU3RyaW5nICYgX19wdHI2NCkgX19wdHI2NA0KKz9Mb2NhdGVLZXlCeU5hbWVPclZhbHVlTmFtZUBDUmVnaXN0cnlTZWFyY2hAQFFFQUFIUEVBVUhLRVlfX0BAUEVCRzFQRUFQRUJHS0FFQVZDSFN0cmluZ0BAM0BaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1RocmVhZEJhc2U6OkxvY2sodm9pZCkgX19wdHI2NA0KKz9Mb2NrQENUaHJlYWRCYXNlQEBBRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENIU3RyaW5nOjpMb2NrQnVmZmVyKHZvaWQpIF9fcHRyNjQNCis/TG9ja0J1ZmZlckBDSFN0cmluZ0BAUUVBQVBFQUdYWg0KKzsgcHJpdmF0ZTogc3RhdGljIHZvaWQgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6TG9ja0ZhY3RvcnlNYXAodm9pZCkNCis/TG9ja0ZhY3RvcnlNYXBAQ1diZW1Qcm92aWRlckdsdWVAQENBWFhaDQorOyBwcml2YXRlOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpMb2NrUHJvdmlkZXJNYXAodm9pZCkNCis/TG9ja1Byb3ZpZGVyTWFwQENXYmVtUHJvdmlkZXJHbHVlQEBDQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUdsdWVGYWN0b3J5OjpMb2NrU2VydmVyKGludCkgX19wdHI2NA0KKz9Mb2NrU2VydmVyQENXYmVtR2x1ZUZhY3RvcnlAQFVFQUFKSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDSW5zdGFuY2U6OkxvZ0Vycm9yKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcpY29uc3QgIF9fcHRyNjQNCis/TG9nRXJyb3JAQ0luc3RhbmNlQEBJRUJBWFBFQkcwMEpAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDSFN0cmluZyAgX19jZGVjbCBQcm92aWRlcjo6TWFrZUxvY2FsUGF0aChjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/TWFrZUxvY2FsUGF0aEBQcm92aWRlckBASUVBQT9BVkNIU3RyaW5nQEBBRUJWMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0hTdHJpbmc6Ok1ha2VMb3dlcih2b2lkKSBfX3B0cjY0DQorP01ha2VMb3dlckBDSFN0cmluZ0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0hTdHJpbmc6Ok1ha2VSZXZlcnNlKHZvaWQpIF9fcHRyNjQNCis/TWFrZVJldmVyc2VAQ0hTdHJpbmdAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENIU3RyaW5nOjpNYWtlVXBwZXIodm9pZCkgX19wdHI2NA0KKz9NYWtlVXBwZXJAQ0hTdHJpbmdAQFFFQUFYWFoNCis7IHB1YmxpYzogY2xhc3MgQ0hTdHJpbmcgIF9fY2RlY2wgQ0hTdHJpbmc6Ok1pZChpbnQpY29uc3QgIF9fcHRyNjQNCis/TWlkQENIU3RyaW5nQEBRRUJBP0FWMUBIQFoNCis7IHB1YmxpYzogY2xhc3MgQ0hTdHJpbmcgIF9fY2RlY2wgQ0hTdHJpbmc6Ok1pZChpbnQsaW50KWNvbnN0ICBfX3B0cjY0DQorP01pZEBDSFN0cmluZ0BAUUVCQT9BVjFASEhAWg0KKzsgcHJpdmF0ZTogc3RhdGljIF9faW50NjQgX19jZGVjbCBDV2luTXNnRXZlbnQ6Ok1zZ1duZFByb2Moc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIF9faW50NjQsX19pbnQ2NCkNCis/TXNnV25kUHJvY0BDV2luTXNnRXZlbnRAQENBX0pQRUFVSFdORF9fQEBJX0tfSkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUmVnaXN0cnk6Ok5leHRTdWJLZXkodm9pZCkgX19wdHI2NA0KKz9OZXh0U3ViS2V5QENSZWdpc3RyeUBAUUVBQUtYWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgQ09iamVjdFBhdGhQYXJzZXI6Ok5leHRUb2tlbih2b2lkKSBfX3B0cjY0DQorP05leHRUb2tlbkBDT2JqZWN0UGF0aFBhcnNlckBAQUVBQUhYWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIE5vcm1hbGl6ZVBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxjbGFzcyBDSFN0cmluZyAmIF9fcHRyNjQpDQorP05vcm1hbGl6ZVBhdGhAQFlBS1BFQkcwMEtBRUFWQ0hTdHJpbmdAQEBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6Ok51bGxPdXRVbnNldFByb3BlcnRpZXMoc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQsc3RydWN0IHRhZ1ZBUklBTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP051bGxPdXRVbnNldFByb3BlcnRpZXNAQ1diZW1Qcm92aWRlckdsdWVAQEFFQUFKUEVBVUlXYmVtQ2xhc3NPYmplY3RAQFBFQVBFQVUyQEFFQlV0YWdWQVJJQU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDVGhyZWFkQmFzZTo6T25GaW5hbFJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9PbkZpbmFsUmVsZWFzZUBDVGhyZWFkQmFzZUBATUVBQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpPcGVuKHN0cnVjdCBIS0VZX18gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP09wZW5AQ1JlZ2lzdHJ5QEBRRUFBSlBFQVVIS0VZX19AQFBFQkdLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6T3BlbkFuZEVudW1lcmF0ZVN1YktleXMoc3RydWN0IEhLRVlfXyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/T3BlbkFuZEVudW1lcmF0ZVN1YktleXNAQ1JlZ2lzdHJ5QEBRRUFBSlBFQVVIS0VZX19AQFBFQkdLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6T3BlbkN1cnJlbnRVc2VyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP09wZW5DdXJyZW50VXNlckBDUmVnaXN0cnlAQFFFQUFLUEVCR0tAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpPcGVuTG9jYWxNYWNoaW5lS2V5QW5kUmVhZFZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0hTdHJpbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09wZW5Mb2NhbE1hY2hpbmVLZXlBbmRSZWFkVmFsdWVAQ1JlZ2lzdHJ5QEBRRUFBSlBFQkcwQUVBVkNIU3RyaW5nQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6T3Blbk5hbWVzcGFjZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgY29uc3QsbG9uZyxzdHJ1Y3QgSVdiZW1Db250ZXh0ICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1TZXJ2aWNlcyAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNhbGxSZXN1bHQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9PcGVuTmFtZXNwYWNlQENXYmVtUHJvdmlkZXJHbHVlQEBVRUFBSlFFQUdKUEVBVUlXYmVtQ29udGV4dEBAUEVBUEVBVUlXYmVtU2VydmljZXNAQFBFQVBFQVVJV2JlbUNhbGxSZXN1bHRAQEBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpPcGVuU3ViS2V5KHZvaWQpIF9fcHRyNjQNCis/T3BlblN1YktleUBDUmVnaXN0cnlAQEFFQUFLWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ09iamVjdFBhdGhQYXJzZXI6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgUGFyc2VkT2JqZWN0UGF0aCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1BhcnNlQENPYmplY3RQYXRoUGFyc2VyQEBRRUFBSFBFQkdQRUFQRUFVUGFyc2VkT2JqZWN0UGF0aEBAQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6UHJlUHJvY2Vzc1B1dEluc3RhbmNlUGFybXMoc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCAqIF9fcHRyNjQsc3RydWN0IElXYmVtQ29udGV4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UHJlUHJvY2Vzc1B1dEluc3RhbmNlUGFybXNAQ1diZW1Qcm92aWRlckdsdWVAQEFFQUFKUEVBVUlXYmVtQ2xhc3NPYmplY3RAQFBFQVBFQVUyQFBFQVVJV2JlbUNvbnRleHRAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpQcmVwYXJlVG9SZU9wZW4odm9pZCkgX19wdHI2NA0KKz9QcmVwYXJlVG9SZU9wZW5AQ1JlZ2lzdHJ5QEBBRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpQdXRDbGFzcyhzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQsbG9uZyxzdHJ1Y3QgSVdiZW1Db250ZXh0ICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1DYWxsUmVzdWx0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UHV0Q2xhc3NAQ1diZW1Qcm92aWRlckdsdWVAQFVFQUFKUEVBVUlXYmVtQ2xhc3NPYmplY3RAQEpQRUFVSVdiZW1Db250ZXh0QEBQRUFQRUFVSVdiZW1DYWxsUmVzdWx0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6UHV0Q2xhc3NBc3luYyhzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQsbG9uZyxzdHJ1Y3QgSVdiZW1Db250ZXh0ICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1PYmplY3RTaW5rICogX19wdHI2NCkgX19wdHI2NA0KKz9QdXRDbGFzc0FzeW5jQENXYmVtUHJvdmlkZXJHbHVlQEBVRUFBSlBFQVVJV2JlbUNsYXNzT2JqZWN0QEBKUEVBVUlXYmVtQ29udGV4dEBAUEVBVUlXYmVtT2JqZWN0U2lua0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OlB1dEluc3RhbmNlKHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNhbGxSZXN1bHQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QdXRJbnN0YW5jZUBDV2JlbVByb3ZpZGVyR2x1ZUBAVUVBQUpQRUFVSVdiZW1DbGFzc09iamVjdEBASlBFQVVJV2JlbUNvbnRleHRAQFBFQVBFQVVJV2JlbUNhbGxSZXN1bHRAQEBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgUHJvdmlkZXI6OlB1dEluc3RhbmNlKHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCxsb25nLGNsYXNzIE1ldGhvZENvbnRleHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1B1dEluc3RhbmNlQFByb3ZpZGVyQEBBRUFBSlBFQVVJV2JlbUNsYXNzT2JqZWN0QEBKUEVBVk1ldGhvZENvbnRleHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFByb3ZpZGVyOjpQdXRJbnN0YW5jZShjbGFzcyBDSW5zdGFuY2UgY29uc3QgJiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/UHV0SW5zdGFuY2VAUHJvdmlkZXJAQE1FQUFKQUVCVkNJbnN0YW5jZUBASkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpQdXRJbnN0YW5jZUFzeW5jKHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbU9iamVjdFNpbmsgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1B1dEluc3RhbmNlQXN5bmNAQ1diZW1Qcm92aWRlckdsdWVAQFVFQUFKUEVBVUlXYmVtQ2xhc3NPYmplY3RAQEpQRUFVSVdiZW1Db250ZXh0QEBQRUFVSVdiZW1PYmplY3RTaW5rQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUdsdWVGYWN0b3J5OjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUludGVyZmFjZUBDV2JlbUdsdWVGYWN0b3J5QEBVRUFBSkFFQlVfR1VJREBAUEVBUEVBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUludGVyZmFjZUBDV2JlbVByb3ZpZGVyR2x1ZUBAVUVBQUpBRUJVX0dVSURAQFBFQVBFQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6UXVlcnlPYmplY3RTaW5rKGxvbmcsc3RydWN0IElXYmVtT2JqZWN0U2luayAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5T2JqZWN0U2lua0BDV2JlbVByb3ZpZGVyR2x1ZUBAVUVBQUpKUEVBUEVBVUlXYmVtT2JqZWN0U2lua0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgTWV0aG9kQ29udGV4dDo6UXVlcnlQb3N0UHJvY2Vzcyh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5UG9zdFByb2Nlc3NATWV0aG9kQ29udGV4dEBAVUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ1dpbk1zZ0V2ZW50OjpSZWdpc3RlckZvck1lc3NhZ2UodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1JlZ2lzdGVyRm9yTWVzc2FnZUBDV2luTXNnRXZlbnRAQElFQUFYSUBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDSFN0cmluZzo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ0hTdHJpbmdAQElFQUFYWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHZvaWQgX19jZGVjbCBDSFN0cmluZzo6UmVsZWFzZShzdHJ1Y3QgQ0hTdHJpbmdEYXRhICogX19wdHI2NCkNCis/UmVsZWFzZUBDSFN0cmluZ0BAS0FYUEVBVUNIU3RyaW5nRGF0YUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJbnN0YW5jZTo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ0luc3RhbmNlQEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDVGhyZWFkQmFzZTo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ1RocmVhZEJhc2VAQFFFQUFKWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1diZW1HbHVlRmFjdG9yeTo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ1diZW1HbHVlRmFjdG9yeUBAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ1diZW1Qcm92aWRlckdsdWVAQFVFQUFLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE1ldGhvZENvbnRleHQ6OlJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlQE1ldGhvZENvbnRleHRAQFFFQUFKWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENIU3RyaW5nOjpSZWxlYXNlQnVmZmVyKGludCkgX19wdHI2NA0KKz9SZWxlYXNlQnVmZmVyQENIU3RyaW5nQEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0hQdHJBcnJheTo6UmVtb3ZlQWxsKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlQWxsQENIUHRyQXJyYXlAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENIU3RyaW5nQXJyYXk6OlJlbW92ZUFsbCh2b2lkKSBfX3B0cjY0DQorP1JlbW92ZUFsbEBDSFN0cmluZ0FycmF5QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSFB0ckFycmF5OjpSZW1vdmVBdChpbnQsaW50KSBfX3B0cjY0DQorP1JlbW92ZUF0QENIUHRyQXJyYXlAQFFFQUFYSEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0hTdHJpbmdBcnJheTo6UmVtb3ZlQXQoaW50LGludCkgX19wdHI2NA0KKz9SZW1vdmVBdEBDSFN0cmluZ0FycmF5QEBRRUFBWEhIQFoNCis7IHByb3RlY3RlZDogc3RhdGljIHZvaWQgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6UmVtb3ZlRnJvbUZhY3RvcnlNYXAoY2xhc3MgQ1diZW1HbHVlRmFjdG9yeSBjb25zdCAqIF9fcHRyNjQpDQorP1JlbW92ZUZyb21GYWN0b3J5TWFwQENXYmVtUHJvdmlkZXJHbHVlQEBLQVhQRUJWQ1diZW1HbHVlRmFjdG9yeUBAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDRnJhbWV3b3JrUXVlcnk6OlJlc2V0KHZvaWQpIF9fcHRyNjQNCis/UmVzZXRAQ0ZyYW1ld29ya1F1ZXJ5QEBBRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENIU3RyaW5nOjpSZXZlcnNlRmluZCh1bnNpZ25lZCBzaG9ydCljb25zdCAgX19wdHI2NA0KKz9SZXZlcnNlRmluZEBDSFN0cmluZ0BAUUVCQUhHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWdpc3RyeTo6UmV3aW5kU3ViS2V5cyh2b2lkKSBfX3B0cjY0DQorP1Jld2luZFN1YktleXNAQ1JlZ2lzdHJ5QEBRRUFBWFhaDQorOyBwdWJsaWM6IGNsYXNzIENIU3RyaW5nICBfX2NkZWNsIENIU3RyaW5nOjpSaWdodChpbnQpY29uc3QgIF9fcHRyNjQNCis/UmlnaHRAQ0hTdHJpbmdAQFFFQkE/QVYxQEhAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0hTdHJpbmc6OlNhZmVTdHJsZW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9TYWZlU3RybGVuQENIU3RyaW5nQEBLQUhQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1JlZ2lzdHJ5U2VhcmNoOjpTZWFyY2hBbmRCdWlsZExpc3QoY2xhc3MgQ0hTdHJpbmcsY2xhc3MgQ0hQdHJBcnJheSAmIF9fcHRyNjQsY2xhc3MgQ0hTdHJpbmcsY2xhc3MgQ0hTdHJpbmcsaW50LHN0cnVjdCBIS0VZX18gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NlYXJjaEFuZEJ1aWxkTGlzdEBDUmVnaXN0cnlTZWFyY2hAQFFFQUFIVkNIU3RyaW5nQEBBRUFWQ0hQdHJBcnJheUBAMDBIUEVBVUhLRVlfX0BAQFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBQcm92aWRlciAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6U2VhcmNoTWFwRm9yUHJvdmlkZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/U2VhcmNoTWFwRm9yUHJvdmlkZXJAQ1diZW1Qcm92aWRlckdsdWVAQENBUEVBVlByb3ZpZGVyQEBQRUJHMEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSFB0ckFycmF5OjpTZXRBdChpbnQsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QXRAQ0hQdHJBcnJheUBAUUVBQVhIUEVBWEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSFN0cmluZzo6U2V0QXQoaW50LHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1NldEF0QENIU3RyaW5nQEBRRUFBWEhHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENIU3RyaW5nQXJyYXk6OlNldEF0KGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QXRAQ0hTdHJpbmdBcnJheUBAUUVBQVhIUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSFB0ckFycmF5OjpTZXRBdEdyb3coaW50LHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEF0R3Jvd0BDSFB0ckFycmF5QEBRRUFBWEhQRUFYQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENIU3RyaW5nQXJyYXk6OlNldEF0R3JvdyhpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEF0R3Jvd0BDSFN0cmluZ0FycmF5QEBRRUFBWEhQRUJHQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENJbnN0YW5jZTo6U2V0Qnl0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9TZXRCeXRlQENJbnN0YW5jZUBAUUVBQV9OUEVCR0VAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0luc3RhbmNlOjpTZXRDSFN0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldENIU3RyaW5nQENJbnN0YW5jZUBAUUVBQV9OUEVCRzBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0luc3RhbmNlOjpTZXRDSFN0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0hTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldENIU3RyaW5nQENJbnN0YW5jZUBAUUVBQV9OUEVCR0FFQlZDSFN0cmluZ0BAQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENJbnN0YW5jZTo6U2V0Q0hTdHJpbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldENIU3RyaW5nQENJbnN0YW5jZUBAUUVBQV9OUEVCR1BFQkRAWg0KKzsgdm9pZCBfX2NkZWNsIFNldENIU3RyaW5nUmVzb3VyY2VIYW5kbGUoc3RydWN0IEhJTlNUQU5DRV9fICogX19wdHI2NCkNCis/U2V0Q0hTdHJpbmdSZXNvdXJjZUhhbmRsZUBAWUFYUEVBVUhJTlNUQU5DRV9fQEBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0luc3RhbmNlOjpTZXRDaGFyU3BsYXQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRDaGFyU3BsYXRAQ0luc3RhbmNlQEBRRUFBX05QRUJHMEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSW5zdGFuY2U6OlNldENoYXJTcGxhdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRDaGFyU3BsYXRAQ0luc3RhbmNlQEBRRUFBX05QRUJHS0BaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSW5zdGFuY2U6OlNldENoYXJTcGxhdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Q2hhclNwbGF0QENJbnN0YW5jZUBAUUVBQV9OUEVCR1BFQkRAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBQYXJzZWRPYmplY3RQYXRoOjpTZXRDbGFzc05hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldENsYXNzTmFtZUBQYXJzZWRPYmplY3RQYXRoQEBRRUFBSFBFQkdAWg0KKzsgcHJvdGVjdGVkOiBib29sIF9fY2RlY2wgUHJvdmlkZXI6OlNldENyZWF0aW9uQ2xhc3NOYW1lKGNsYXNzIENJbnN0YW5jZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Q3JlYXRpb25DbGFzc05hbWVAUHJvdmlkZXJAQElFQUFfTlBFQVZDSW5zdGFuY2VAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUmVnaXN0cnk6OlNldEN1cnJlbnRLZXlWYWx1ZShzdHJ1Y3QgSEtFWV9fICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Q3VycmVudEtleVZhbHVlQENSZWdpc3RyeUBAUUVBQUtQRUFVSEtFWV9fQEBQRUJHQUVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUmVnaXN0cnk6OlNldEN1cnJlbnRLZXlWYWx1ZShzdHJ1Y3QgSEtFWV9fICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0hTdHJpbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEN1cnJlbnRLZXlWYWx1ZUBDUmVnaXN0cnlAQFFFQUFLUEVBVUhLRVlfX0BAUEVCR0FFQVZDSFN0cmluZ0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6U2V0Q3VycmVudEtleVZhbHVlKHN0cnVjdCBIS0VZX18gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDSFN0cmluZ0FycmF5ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRDdXJyZW50S2V5VmFsdWVAQ1JlZ2lzdHJ5QEBRRUFBS1BFQVVIS0VZX19AQFBFQkdBRUFWQ0hTdHJpbmdBcnJheUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6U2V0Q3VycmVudEtleVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRDdXJyZW50S2V5VmFsdWVAQ1JlZ2lzdHJ5QEBRRUFBS1BFQkdBRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6U2V0Q3VycmVudEtleVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDSFN0cmluZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Q3VycmVudEtleVZhbHVlQENSZWdpc3RyeUBAUUVBQUtQRUJHQUVBVkNIU3RyaW5nQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpTZXRDdXJyZW50S2V5VmFsdWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENIU3RyaW5nQXJyYXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEN1cnJlbnRLZXlWYWx1ZUBDUmVnaXN0cnlAQFFFQUFLUEVCR0FFQVZDSFN0cmluZ0FycmF5QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpTZXRDdXJyZW50S2V5VmFsdWVFeHBhbmQoc3RydWN0IEhLRVlfXyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENIU3RyaW5nICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRDdXJyZW50S2V5VmFsdWVFeHBhbmRAQ1JlZ2lzdHJ5QEBRRUFBS1BFQVVIS0VZX19AQFBFQkdBRUFWQ0hTdHJpbmdAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdCRU1UaW1lOjpTZXRETVRGKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCkgX19wdHI2NA0KKz9TZXRETVRGQFdCRU1UaW1lQEBRRUFBSFFFQUdAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0luc3RhbmNlOjpTZXRET1VCTEUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGRvdWJsZSkgX19wdHI2NA0KKz9TZXRET1VCTEVAQ0luc3RhbmNlQEBRRUFBX05QRUJHTkBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSW5zdGFuY2U6OlNldERXT1JEKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldERXT1JEQENJbnN0YW5jZUBAUUVBQV9OUEVCR0tAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0luc3RhbmNlOjpTZXREYXRlVGltZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgV0JFTVRpbWUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERhdGVUaW1lQENJbnN0YW5jZUBAUUVBQV9OUEVCR0FFQlZXQkVNVGltZUBAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDUmVnaXN0cnk6OlNldERlZmF1bHRWYWx1ZXModm9pZCkgX19wdHI2NA0KKz9TZXREZWZhdWx0VmFsdWVzQENSZWdpc3RyeUBAQUVBQVhYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0luc3RhbmNlOjpTZXRFbWJlZGRlZE9iamVjdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0luc3RhbmNlICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRFbWJlZGRlZE9iamVjdEBDSW5zdGFuY2VAQFFFQUFfTlBFQkdBRUFWMUBAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgUHJvdmlkZXI6OlNldEtleUZyb21QYXJzZWRPYmplY3RQYXRoKGNsYXNzIENJbnN0YW5jZSAqIF9fcHRyNjQsc3RydWN0IFBhcnNlZE9iamVjdFBhdGggKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEtleUZyb21QYXJzZWRPYmplY3RQYXRoQFByb3ZpZGVyQEBBRUFBSFBFQVZDSW5zdGFuY2VAQFBFQVVQYXJzZWRPYmplY3RQYXRoQEBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0luc3RhbmNlOjpTZXROdWxsKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXROdWxsQENJbnN0YW5jZUBAUUVBQV9OUEVCR0BaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1JlZ2lzdHJ5OjpTZXRQbGF0Zm9ybUlEKHZvaWQpDQorP1NldFBsYXRmb3JtSURAQ1JlZ2lzdHJ5QEBDQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0hQdHJBcnJheTo6U2V0U2l6ZShpbnQsaW50KSBfX3B0cjY0DQorP1NldFNpemVAQ0hQdHJBcnJheUBAUUVBQVhISEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSFN0cmluZ0FycmF5OjpTZXRTaXplKGludCxpbnQpIF9fcHRyNjQNCis/U2V0U2l6ZUBDSFN0cmluZ0FycmF5QEBRRUFBWEhIQFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBDV2JlbVByb3ZpZGVyR2x1ZTo6U2V0U3RhdHVzT2JqZWN0KGNsYXNzIE1ldGhvZENvbnRleHQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsbG9uZyxzdHJ1Y3QgdGFnU0FGRUFSUkFZIGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgdGFnU0FGRUFSUkFZIGNvbnN0ICogX19wdHI2NCkNCis/U2V0U3RhdHVzT2JqZWN0QENXYmVtUHJvdmlkZXJHbHVlQEBTQV9OUEVBVk1ldGhvZENvbnRleHRAQFBFQkcxSlBFQlV0YWdTQUZFQVJSQVlAQDJAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgTWV0aG9kQ29udGV4dDo6U2V0U3RhdHVzT2JqZWN0KHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRTdGF0dXNPYmplY3RATWV0aG9kQ29udGV4dEBAUUVBQV9OUEVBVUlXYmVtQ2xhc3NPYmplY3RAQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSW5zdGFuY2U6OlNldFN0cmluZ0FycmF5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgdGFnU0FGRUFSUkFZIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRTdHJpbmdBcnJheUBDSW5zdGFuY2VAQFFFQUFfTlBFQkdBRUJVdGFnU0FGRUFSUkFZQEBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0luc3RhbmNlOjpTZXRUaW1lU3Bhbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgV0JFTVRpbWVTcGFuIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRUaW1lU3BhbkBDSW5zdGFuY2VAQFFFQUFfTlBFQkdBRUJWV0JFTVRpbWVTcGFuQEBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0luc3RhbmNlOjpTZXRWYXJpYW50KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgdGFnVkFSSUFOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VmFyaWFudEBDSW5zdGFuY2VAQFFFQUFfTlBFQkdBRUJVdGFnVkFSSUFOVEBAQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENJbnN0YW5jZTo6U2V0V0JFTUlOVDE2KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzaG9ydCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0V0JFTUlOVDE2QENJbnN0YW5jZUBAUUVBQV9OUEVCR0FFQkZAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0luc3RhbmNlOjpTZXRXQkVNSU5UNjQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENIU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRXQkVNSU5UNjRAQ0luc3RhbmNlQEBRRUFBX05QRUJHQUVCVkNIU3RyaW5nQEBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0luc3RhbmNlOjpTZXRXQkVNSU5UNjQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LF9faW50NjQpIF9fcHRyNjQNCis/U2V0V0JFTUlOVDY0QENJbnN0YW5jZUBAUUVBQV9OUEVCR19KQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENJbnN0YW5jZTo6U2V0V0JFTUlOVDY0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP1NldFdCRU1JTlQ2NEBDSW5zdGFuY2VAQFFFQUFfTlBFQkdfS0BaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSW5zdGFuY2U6OlNldFdDSEFSU3BsYXQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRXQ0hBUlNwbGF0QENJbnN0YW5jZUBAUUVBQV9OUEVCRzBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0luc3RhbmNlOjpTZXRXT1JEKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZXRXT1JEQENJbnN0YW5jZUBAUUVBQV9OUEVCR0dAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0luc3RhbmNlOjpTZXRib29sKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxib29sKSBfX3B0cjY0DQorP1NldGJvb2xAQ0luc3RhbmNlQEBRRUFBX05QRUJHX05AWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQXV0b0V2ZW50OjpTaWduYWwodm9pZCkgX19wdHI2NA0KKz9TaWduYWxAQ0F1dG9FdmVudEBAUUVBQUhYWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyAgX19jZGVjbCBDSFN0cmluZzo6U3BhbkV4Y2x1ZGluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/U3BhbkV4Y2x1ZGluZ0BDSFN0cmluZ0BAUUVCQT9BVjFAUEVCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENIU3RyaW5nICBfX2NkZWNsIENIU3RyaW5nOjpTcGFuSW5jbHVkaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9TcGFuSW5jbHVkaW5nQENIU3RyaW5nQEBRRUJBP0FWMUBQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENIU3RyaW5nOjpUcmltTGVmdCh2b2lkKSBfX3B0cjY0DQorP1RyaW1MZWZ0QENIU3RyaW5nQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSFN0cmluZzo6VHJpbVJpZ2h0KHZvaWQpIF9fcHRyNjQNCis/VHJpbVJpZ2h0QENIU3RyaW5nQEBRRUFBWFhaDQorOyBwcml2YXRlOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENXYmVtUHJvdmlkZXJHbHVlOjpVbkluaXQodm9pZCkNCis/VW5Jbml0QENXYmVtUHJvdmlkZXJHbHVlQEBDQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ1dpbk1zZ0V2ZW50OjpVblJlZ2lzdGVyQWxsTWVzc2FnZXModm9pZCkgX19wdHI2NA0KKz9VblJlZ2lzdGVyQWxsTWVzc2FnZXNAQ1dpbk1zZ0V2ZW50QEBJRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IGJvb2wgX19jZGVjbCBDV2luTXNnRXZlbnQ6OlVuUmVnaXN0ZXJNZXNzYWdlKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9VblJlZ2lzdGVyTWVzc2FnZUBDV2luTXNnRXZlbnRAQElFQUFfTklAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENUaHJlYWRCYXNlOjpVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9VbmxvY2tAQ1RocmVhZEJhc2VAQEFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENIU3RyaW5nOjpVbmxvY2tCdWZmZXIodm9pZCkgX19wdHI2NA0KKz9VbmxvY2tCdWZmZXJAQ0hTdHJpbmdAQFFFQUFYWFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OlVubG9ja0ZhY3RvcnlNYXAodm9pZCkNCis/VW5sb2NrRmFjdG9yeU1hcEBDV2JlbVByb3ZpZGVyR2x1ZUBAQ0FYWFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1diZW1Qcm92aWRlckdsdWU6OlVubG9ja1Byb3ZpZGVyTWFwKHZvaWQpDQorP1VubG9ja1Byb3ZpZGVyTWFwQENXYmVtUHJvdmlkZXJHbHVlQEBDQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ09iamVjdFBhdGhQYXJzZXI6OlVucGFyc2Uoc3RydWN0IFBhcnNlZE9iamVjdFBhdGggKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQpDQorP1VucGFyc2VAQ09iamVjdFBhdGhQYXJzZXJAQFNBSFBFQVVQYXJzZWRPYmplY3RQYXRoQEBQRUFQRUFHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgUHJvdmlkZXI6OlZhbGlkYXRlRGVsZXRpb25GbGFncyhsb25nKSBfX3B0cjY0DQorP1ZhbGlkYXRlRGVsZXRpb25GbGFnc0BQcm92aWRlckBATUVBQUpKQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgUHJvdmlkZXI6OlZhbGlkYXRlRW51bWVyYXRpb25GbGFncyhsb25nKSBfX3B0cjY0DQorP1ZhbGlkYXRlRW51bWVyYXRpb25GbGFnc0BQcm92aWRlckBATUVBQUpKQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIFByb3ZpZGVyOjpWYWxpZGF0ZUZsYWdzKGxvbmcsZW51bSBQcm92aWRlcjo6RmxhZ0RlZnMpIF9fcHRyNjQNCis/VmFsaWRhdGVGbGFnc0BQcm92aWRlckBASUVBQUpKVzRGbGFnRGVmc0AxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFByb3ZpZGVyOjpWYWxpZGF0ZUdldE9iakZsYWdzKGxvbmcpIF9fcHRyNjQNCis/VmFsaWRhdGVHZXRPYmpGbGFnc0BQcm92aWRlckBATUVBQUpKQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIFByb3ZpZGVyOjpWYWxpZGF0ZUlNT1NQb2ludGVyKHZvaWQpIF9fcHRyNjQNCis/VmFsaWRhdGVJTU9TUG9pbnRlckBQcm92aWRlckBAQUVBQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBQcm92aWRlcjo6VmFsaWRhdGVNZXRob2RGbGFncyhsb25nKSBfX3B0cjY0DQorP1ZhbGlkYXRlTWV0aG9kRmxhZ3NAUHJvdmlkZXJAQE1FQUFKSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFByb3ZpZGVyOjpWYWxpZGF0ZVB1dEluc3RhbmNlRmxhZ3MobG9uZykgX19wdHI2NA0KKz9WYWxpZGF0ZVB1dEluc3RhbmNlRmxhZ3NAUHJvdmlkZXJAQE1FQUFKSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFByb3ZpZGVyOjpWYWxpZGF0ZVF1ZXJ5RmxhZ3MobG9uZykgX19wdHI2NA0KKz9WYWxpZGF0ZVF1ZXJ5RmxhZ3NAUHJvdmlkZXJAQE1FQUFKSkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQXV0b0V2ZW50OjpXYWl0KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/V2FpdEBDQXV0b0V2ZW50QEBRRUFBS0tAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHZvaWQgX19jZGVjbCBDV2luTXNnRXZlbnQ6OldpbmRvd3NEaXNwYXRjaCh2b2lkKQ0KKz9XaW5kb3dzRGlzcGF0Y2hAQ1dpbk1zZ0V2ZW50QEBDQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENPYmplY3RQYXRoUGFyc2VyOjpaZXJvKHZvaWQpIF9fcHRyNjQNCis/WmVyb0BDT2JqZWN0UGF0aFBhcnNlckBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgQ09iamVjdFBhdGhQYXJzZXI6OmJlZ2luX3BhcnNlKHZvaWQpIF9fcHRyNjQNCis/YmVnaW5fcGFyc2VAQ09iamVjdFBhdGhQYXJzZXJAQEFFQUFIWFoNCis7IGNsYXNzIFByb3ZpZGVyTG9nICBjYXB0YWluc0xvZw0KKz9jYXB0YWluc0xvZ0BAM1ZQcm92aWRlckxvZ0BAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENXaW5Nc2dFdmVudDo6ZHdUaHJlYWRQcm9jKHZvaWQgKiBfX3B0cjY0KQ0KKz9kd1RocmVhZFByb2NAQ1dpbk1zZ0V2ZW50QEBDQUtQRUFYQFoNCis7IGNsYXNzIENDcml0U2VjICBnX2NzDQorP2dfY3NAQDNWQ0NyaXRTZWNAQEEgREFUQQ0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgQ09iamVjdFBhdGhQYXJzZXI6OmlkZW50X2JlY29tZXNfY2xhc3Modm9pZCkgX19wdHI2NA0KKz9pZGVudF9iZWNvbWVzX2NsYXNzQENPYmplY3RQYXRoUGFyc2VyQEBBRUFBSFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBDT2JqZWN0UGF0aFBhcnNlcjo6aWRlbnRfYmVjb21lc19ucyh2b2lkKSBfX3B0cjY0DQorP2lkZW50X2JlY29tZXNfbnNAQ09iamVjdFBhdGhQYXJzZXJAQEFFQUFIWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIENPYmplY3RQYXRoUGFyc2VyOjprZXlfY29uc3Qodm9pZCkgX19wdHI2NA0KKz9rZXlfY29uc3RAQ09iamVjdFBhdGhQYXJzZXJAQEFFQUFIWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIENPYmplY3RQYXRoUGFyc2VyOjprZXlyZWYodm9pZCkgX19wdHI2NA0KKz9rZXlyZWZAQ09iamVjdFBhdGhQYXJzZXJAQEFFQUFIWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIENPYmplY3RQYXRoUGFyc2VyOjprZXlyZWZfbGlzdCh2b2lkKSBfX3B0cjY0DQorP2tleXJlZl9saXN0QENPYmplY3RQYXRoUGFyc2VyQEBBRUFBSFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBDT2JqZWN0UGF0aFBhcnNlcjo6a2V5cmVmX3Rlcm0odm9pZCkgX19wdHI2NA0KKz9rZXlyZWZfdGVybUBDT2JqZWN0UGF0aFBhcnNlckBAQUVBQUhYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIHN0ZDo6c2V0PHZvaWQgKiBfX3B0cjY0LHN0cnVjdCBzdGQ6Omxlc3M8dm9pZCAqIF9fcHRyNjQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHZvaWQgKiBfX3B0cjY0PiA+ICBDV2JlbVByb3ZpZGVyR2x1ZTo6bV9GbHVzaFB0cnMNCis/bV9GbHVzaFB0cnNAQ1diZW1Qcm92aWRlckdsdWVAQDBWPyRzZXRAUEVBWFU/JGxlc3NAUEVBWEBzdGRAQFY/JGFsbG9jYXRvckBQRUFYQDJAQHN0ZEBAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ0NyaXRTZWMgIENXYmVtUHJvdmlkZXJHbHVlOjptX2NzRmx1c2hQdHJzDQorP21fY3NGbHVzaFB0cnNAQ1diZW1Qcm92aWRlckdsdWVAQDBWQ0NyaXRTZWNAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENDcml0U2VjICBDV2JlbVByb3ZpZGVyR2x1ZTo6bV9jc1N0YXR1c09iamVjdA0KKz9tX2NzU3RhdHVzT2JqZWN0QENXYmVtUHJvdmlkZXJHbHVlQEAwVkNDcml0U2VjQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQgIF9fcHRyNjQgQ1diZW1Qcm92aWRlckdsdWU6Om1fcFN0YXR1c09iamVjdA0KKz9tX3BTdGF0dXNPYmplY3RAQ1diZW1Qcm92aWRlckdsdWVAQDBQRUFVSVdiZW1DbGFzc09iamVjdEBARUEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENBdXRvRXZlbnQgIENXaW5Nc2dFdmVudDo6bWdfYWVDcmVhdGVXaW5kb3cNCis/bWdfYWVDcmVhdGVXaW5kb3dAQ1dpbk1zZ0V2ZW50QEAwVkNBdXRvRXZlbnRAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENDcml0U2VjICBDV2luTXNnRXZlbnQ6Om1nX2NzTWFwTG9jaw0KKz9tZ19jc01hcExvY2tAQ1dpbk1zZ0V2ZW50QEAwVkNDcml0U2VjQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDQ3JpdFNlYyAgQ1dpbk1zZ0V2ZW50OjptZ19jc1dpbmRvd0xvY2sNCis/bWdfY3NXaW5kb3dMb2NrQENXaW5Nc2dFdmVudEBAMFZDQ3JpdFNlY0BAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgdm9pZCAqIF9fcHRyNjQgIF9fcHRyNjQgQ1dpbk1zZ0V2ZW50OjptZ19oVGhyZWFkUHVtcEhhbmRsZQ0KKz9tZ19oVGhyZWFkUHVtcEhhbmRsZUBDV2luTXNnRXZlbnRAQDBQRUFYRUEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIHN0cnVjdCBIV05EX18gKiBfX3B0cjY0ICBfX3B0cjY0IENXaW5Nc2dFdmVudDo6bWdfaFduZA0KKz9tZ19oV25kQENXaW5Nc2dFdmVudEBAMFBFQVVIV05EX19AQEVBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBzdGQ6Om11bHRpbWFwPHVuc2lnbmVkIGludCxjbGFzcyBDV2luTXNnRXZlbnQgKiBfX3B0cjY0LHN0cnVjdCBzdGQ6Omxlc3M8dW5zaWduZWQgaW50PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBDV2luTXNnRXZlbnQgKiBfX3B0cjY0PiA+ICBDV2luTXNnRXZlbnQ6Om1nX29TaW5rTWFwDQorP21nX29TaW5rTWFwQENXaW5Nc2dFdmVudEBAMFY/JG11bHRpbWFwQElQRUFWQ1dpbk1zZ0V2ZW50QEBVPyRsZXNzQElAc3RkQEBWPyRhbGxvY2F0b3JAUEVBVkNXaW5Nc2dFdmVudEBAQDNAQHN0ZEBAQSBEQVRBDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpteVJlZ0NyZWF0ZUtleUV4KHN0cnVjdCBIS0VZX18gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsc3RydWN0IF9TRUNVUklUWV9BVFRSSUJVVEVTICogX19wdHI2NCxzdHJ1Y3QgSEtFWV9fICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/bXlSZWdDcmVhdGVLZXlFeEBDUmVnaXN0cnlAQEFFQUFKUEVBVUhLRVlfX0BAUEVCR0tQRUFHS0tQRUFVX1NFQ1VSSVRZX0FUVFJJQlVURVNAQFBFQVBFQVUyQFBFQUtAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6bXlSZWdEZWxldGVLZXkoc3RydWN0IEhLRVlfXyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP215UmVnRGVsZXRlS2V5QENSZWdpc3RyeUBAQUVBQUpQRUFVSEtFWV9fQEBQRUJHQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBDUmVnaXN0cnk6Om15UmVnRGVsZXRlVmFsdWUoc3RydWN0IEhLRVlfXyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP215UmVnRGVsZXRlVmFsdWVAQ1JlZ2lzdHJ5QEBBRUFBSlBFQVVIS0VZX19AQFBFQkdAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6bXlSZWdFbnVtS2V5KHN0cnVjdCBIS0VZX18gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/bXlSZWdFbnVtS2V5QENSZWdpc3RyeUBAQUVBQUpQRUFVSEtFWV9fQEBLUEVBR0tAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6bXlSZWdFbnVtVmFsdWUoc3RydWN0IEhLRVlfXyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/bXlSZWdFbnVtVmFsdWVAQ1JlZ2lzdHJ5QEBBRUFBSlBFQVVIS0VZX19AQEtQRUFHUEVBSzIyUEVBRTJAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6bXlSZWdPcGVuS2V5RXgoc3RydWN0IEhLRVlfXyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgSEtFWV9fICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/bXlSZWdPcGVuS2V5RXhAQ1JlZ2lzdHJ5QEBBRUFBSlBFQVVIS0VZX19AQFBFQkdLS1BFQVBFQVUyQEBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpteVJlZ1F1ZXJ5SW5mb0tleShzdHJ1Y3QgSEtFWV9fICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsc3RydWN0IF9GSUxFVElNRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/bXlSZWdRdWVyeUluZm9LZXlAQ1JlZ2lzdHJ5QEBBRUFBSlBFQVVIS0VZX19AQFBFQUdQRUFLMjIyMjIyMjJQRUFVX0ZJTEVUSU1FQEBAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIENSZWdpc3RyeTo6bXlSZWdRdWVyeVZhbHVlRXgoc3RydWN0IEhLRVlfXyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP215UmVnUXVlcnlWYWx1ZUV4QENSZWdpc3RyeUBAQUVBQUpQRUFVSEtFWV9fQEBQRUJHUEVBSzJQRUFFMkBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgQ1JlZ2lzdHJ5OjpteVJlZ1NldFZhbHVlRXgoc3RydWN0IEhLRVlfXyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP215UmVnU2V0VmFsdWVFeEBDUmVnaXN0cnlAQEFFQUFKUEVBVUhLRVlfX0BAUEVCR0tLUEVCRUtAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgQ09iamVjdFBhdGhQYXJzZXI6Om5zX2xpc3Qodm9pZCkgX19wdHI2NA0KKz9uc19saXN0QENPYmplY3RQYXRoUGFyc2VyQEBBRUFBSFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBDT2JqZWN0UGF0aFBhcnNlcjo6bnNfbGlzdF9yZXN0KHZvaWQpIF9fcHRyNjQNCis/bnNfbGlzdF9yZXN0QENPYmplY3RQYXRoUGFyc2VyQEBBRUFBSFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBDT2JqZWN0UGF0aFBhcnNlcjo6bnNfb3JfY2xhc3Modm9pZCkgX19wdHI2NA0KKz9uc19vcl9jbGFzc0BDT2JqZWN0UGF0aFBhcnNlckBAQUVBQUhYWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgQ09iamVjdFBhdGhQYXJzZXI6Om5zX29yX3NlcnZlcih2b2lkKSBfX3B0cjY0DQorP25zX29yX3NlcnZlckBDT2JqZWN0UGF0aFBhcnNlckBAQUVBQUhYWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgQ09iamVjdFBhdGhQYXJzZXI6Om9ianJlZih2b2lkKSBfX3B0cjY0DQorP29ianJlZkBDT2JqZWN0UGF0aFBhcnNlckBAQUVBQUhYWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgQ09iamVjdFBhdGhQYXJzZXI6Om9ianJlZl9yZXN0KHZvaWQpIF9fcHRyNjQNCis/b2JqcmVmX3Jlc3RAQ09iamVjdFBhdGhQYXJzZXJAQEFFQUFIWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIENPYmplY3RQYXRoUGFyc2VyOjpvcHRpb25hbF9vYmpyZWYodm9pZCkgX19wdHI2NA0KKz9vcHRpb25hbF9vYmpyZWZAQ09iamVjdFBhdGhQYXJzZXJAQEFFQUFIWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIENPYmplY3RQYXRoUGFyc2VyOjpwcm9wbmFtZSh2b2lkKSBfX3B0cjY0DQorP3Byb3BuYW1lQENPYmplY3RQYXRoUGFyc2VyQEBBRUFBSFhaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50ICBDV2JlbVByb3ZpZGVyR2x1ZTo6c19iSW5pdHRlZA0KKz9zX2JJbml0dGVkQENXYmVtUHJvdmlkZXJHbHVlQEAwSEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENDcml0U2VjICBDV2JlbVByb3ZpZGVyR2x1ZTo6c19jc0ZhY3RvcnlNYXANCis/c19jc0ZhY3RvcnlNYXBAQ1diZW1Qcm92aWRlckdsdWVAQDBWQ0NyaXRTZWNAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENDcml0U2VjICBDV2JlbVByb3ZpZGVyR2x1ZTo6c19jc1Byb3ZpZGVyTWFwDQorP3NfY3NQcm92aWRlck1hcEBDV2JlbVByb3ZpZGVyR2x1ZUBAMFZDQ3JpdFNlY0BAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgbG9uZyAgQ1diZW1Qcm92aWRlckdsdWU6OnNfZHdNYWpvclZlcnNpb24NCis/c19kd01ham9yVmVyc2lvbkBDV2JlbVByb3ZpZGVyR2x1ZUBAMEtBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBsb25nICBDUmVnaXN0cnk6OnNfZHdQbGF0Zm9ybQ0KKz9zX2R3UGxhdGZvcm1AQ1JlZ2lzdHJ5QEAwS0EgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGxvbmcgIENXYmVtUHJvdmlkZXJHbHVlOjpzX2R3UGxhdGZvcm0NCis/c19kd1BsYXRmb3JtQENXYmVtUHJvdmlkZXJHbHVlQEAwS0EgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGludCAgQ1JlZ2lzdHJ5OjpzX2ZQbGF0Zm9ybVNldA0KKz9zX2ZQbGF0Zm9ybVNldEBDUmVnaXN0cnlAQDBIQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3Mgc3RkOjptYXA8dm9pZCBjb25zdCAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQsc3RydWN0IHN0ZDo6bGVzczx2b2lkIGNvbnN0ICogX19wdHI2ND4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8bG9uZyAqIF9fcHRyNjQ+ID4gIENXYmVtUHJvdmlkZXJHbHVlOjpzX2ZhY3RvcnltYXANCis/c19mYWN0b3J5bWFwQENXYmVtUHJvdmlkZXJHbHVlQEAwVj8kbWFwQFBFQlhQRUFKVT8kbGVzc0BQRUJYQHN0ZEBAVj8kYWxsb2NhdG9yQFBFQUpAMkBAc3RkQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBsb25nICBDV2JlbVByb3ZpZGVyR2x1ZTo6c19sT2JqZWN0cw0KKz9zX2xPYmplY3RzQENXYmVtUHJvdmlkZXJHbHVlQEAwSkEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIHN0ZDo6bWFwPGNsYXNzIENIU3RyaW5nLHZvaWQgKiBfX3B0cjY0LHN0cnVjdCBzdGQ6Omxlc3M8Y2xhc3MgQ0hTdHJpbmc+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHZvaWQgKiBfX3B0cjY0PiA+ICBDV2JlbVByb3ZpZGVyR2x1ZTo6c19wcm92aWRlcnNtYXANCis/c19wcm92aWRlcnNtYXBAQ1diZW1Qcm92aWRlckdsdWVAQDBWPyRtYXBAVkNIU3RyaW5nQEBQRUFYVT8kbGVzc0BWQ0hTdHJpbmdAQEBzdGRAQFY/JGFsbG9jYXRvckBQRUFYQDNAQHN0ZEBAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ0hTdHJpbmcgIFByb3ZpZGVyOjpzX3N0ckNvbXB1dGVyTmFtZQ0KKz9zX3N0ckNvbXB1dGVyTmFtZUBQcm92aWRlckBAMFZDSFN0cmluZ0BAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgKiAgQ1diZW1Qcm92aWRlckdsdWU6OnNfd3N0ckNTRFZlcnNpb24NCis/c193c3RyQ1NEVmVyc2lvbkBDV2JlbVByb3ZpZGVyR2x1ZUBAMFBBR0EgREFUQQ0KK0RvQ21kDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZnN1c2QuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZnN1c2QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhmYzQyY2MKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9mc3VzZC5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGU1VTRC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRlNVU0QuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsTWFpbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Z0cGN0cnMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Z0cGN0cnMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNTBmZDE0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZnRwY3RyczIuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRlRQQ1RSUzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEZUUENUUlMyLmRsbA0KK0VYUE9SVFMNCitPcGVuRnRwUGVyZm9ybWFuY2VEYXRhDQorQ29sbGVjdEZ0cFBlcmZvcm1hbmNlRGF0YQ0KK0Nsb3NlRnRwUGVyZm9ybWFuY2VEYXRhDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZnRwbWliLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Z0cG1pYi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWE2YWZkMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Z0cG1pYi5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGVFBNSUIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEZUUE1JQi5kbGwNCitFWFBPUlRTDQorU25tcEV4dGVuc2lvbkluaXQNCitTbm1wRXh0ZW5zaW9uUXVlcnkNCitTbm1wRXh0ZW5zaW9uVHJhcA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Z0cHN2YzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZnRwc3ZjMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjM0MDY3YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Z0cHN2YzIuZGVmCkBAIC0wLDAgKzEsMjY1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEZUUFNWQzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEZUUFNWQzIuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIEhBU0hfVEFCTEU6OkhBU0hfVEFCTEUoY2xhc3MgSEFTSF9UQUJMRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBIQVNIX1RBQkxFQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSFRfRUxFTUVOVDo6SFRfRUxFTUVOVChjbGFzcyBIVF9FTEVNRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MEhUX0VMRU1FTlRAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBIVF9FTEVNRU5UOjpIVF9FTEVNRU5UKHZvaWQpIF9fcHRyNjQNCis/PzBIVF9FTEVNRU5UQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OklJU19TRVJWSUNFKGNsYXNzIElJU19TRVJWSUNFIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MElJU19TRVJWSUNFQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE9HR0lORzo6TE9HR0lORyhjbGFzcyBMT0dHSU5HIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MExPR0dJTkdAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIEhBU0hfVEFCTEU6On5IQVNIX1RBQkxFKHZvaWQpIF9fcHRyNjQNCis/PzFIQVNIX1RBQkxFQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBIVF9FTEVNRU5UOjp+SFRfRUxFTUVOVCh2b2lkKSBfX3B0cjY0DQorPz8xSFRfRUxFTUVOVEBAVUVBQUBYWg0KKzsgcHVibGljOiBjbGFzcyBIQVNIX1RBQkxFICYgX19wdHI2NCBfX2NkZWNsIEhBU0hfVEFCTEU6Om9wZXJhdG9yPShjbGFzcyBIQVNIX1RBQkxFIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NEhBU0hfVEFCTEVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBIVF9FTEVNRU5UICYgX19wdHI2NCBfX2NkZWNsIEhUX0VMRU1FTlQ6Om9wZXJhdG9yPShjbGFzcyBIVF9FTEVNRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NEhUX0VMRU1FTlRAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBJSVNfU0VSVklDRSAmIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVklDRTo6b3BlcmF0b3I9KGNsYXNzIElJU19TRVJWSUNFIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NElJU19TRVJWSUNFQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTE9HR0lORyAmIF9fcHRyNjQgX19jZGVjbCBMT0dHSU5HOjpvcGVyYXRvcj0oY2xhc3MgTE9HR0lORyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRMT0dHSU5HQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgVFNWQ19DQUNIRSAmIF9fcHRyNjQgX19jZGVjbCBUU1ZDX0NBQ0hFOjpvcGVyYXRvcj0oY2xhc3MgVFNWQ19DQUNIRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRUU1ZDX0NBQ0hFQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IGNvbnN0ICBIQVNIX1RBQkxFOjpgdmZ0YWJsZScNCis/P183SEFTSF9UQUJMRUBANkJADQorOyBjb25zdCAgSFRfRUxFTUVOVDo6YHZmdGFibGUnDQorPz9fN0hUX0VMRU1FTlRAQDZCQA0KKzsgY29uc3QgIElJU19TRVJWSUNFOjpgdmZ0YWJsZScNCis/P183SUlTX1NFUlZJQ0VAQDZCQA0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6QWNxdWlyZUZhc3RMb2NrKHZvaWQpIF9fcHRyNjQNCis/QWNxdWlyZUZhc3RMb2NrQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWSUNFOjpBY3F1aXJlU2VydmljZUxvY2soaW50KSBfX3B0cjY0DQorP0FjcXVpcmVTZXJ2aWNlTG9ja0BJSVNfU0VSVklDRUBAUUVBQVhIQFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fY2RlY2wgSUlTX1ZST09UX1RBQkxFOjpBZGRSZWZSZWNvcmQodm9pZCBjb25zdCAqIF9fcHRyNjQsaW50KQ0KKz9BZGRSZWZSZWNvcmRASUlTX1ZST09UX1RBQkxFQEBDQVhQRUJYSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEhBU0hfVEFCTEU6OkNhbGN1bGF0ZUhhc2goY2hhciBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q2FsY3VsYXRlSGFzaEBIQVNIX1RBQkxFQEBVRUJBS1BFQkRAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6Q2xlYW51cEFmdGVyQ29uc3RydWN0b3JGYWlsdXJlKHZvaWQpIF9fcHRyNjQNCis/Q2xlYW51cEFmdGVyQ29uc3RydWN0b3JGYWlsdXJlQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OkRlY3JlbWVudEN1cnJlbnRDb25uZWN0aW9ucyh2b2lkKSBfX3B0cjY0DQorP0RlY3JlbWVudEN1cnJlbnRDb25uZWN0aW9uc0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVklDRTo6RGVsYXlDdXJyZW50U2VydmljZUN0cmxPcGVyYXRpb24odW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9EZWxheUN1cnJlbnRTZXJ2aWNlQ3RybE9wZXJhdGlvbkBJSVNfU0VSVklDRUBAUUVBQUtLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgTUlNRV9NQVBfRU5UUlk6OkRlcmVmZXJlbmNlKHZvaWQpIF9fcHRyNjQNCis/RGVyZWZlcmVuY2VATUlNRV9NQVBfRU5UUllAQFVFQUFKWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6RG9TZXJ2ZXJOYW1lQ2hlY2sodm9pZCljb25zdCAgX19wdHI2NA0KKz9Eb1NlcnZlck5hbWVDaGVja0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ09NTU9OX01FVEFEQVRBOjpGaW5pc2hQcml2YXRlUHJvcGVydGllcyhjbGFzcyBCVUZGRVIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsaW50KSBfX3B0cjY0DQorP0ZpbmlzaFByaXZhdGVQcm9wZXJ0aWVzQENPTU1PTl9NRVRBREFUQUBAVUVBQUhQRUFWQlVGRkVSQEBLSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBIQVNIX1RBQkxFOjpGbHVzaEVsZW1lbnRzKHZvaWQpIF9fcHRyNjQNCis/Rmx1c2hFbGVtZW50c0BIQVNIX1RBQkxFQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBUU1ZDX0NBQ0hFOjpHZXRJbnN0YW5jZUlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0SW5zdGFuY2VJZEBUU1ZDX0NBQ0hFQEBRRUJBS1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVklDRTo6R2V0TURJbnN0YW5jZVBhdGgodW5zaWduZWQgbG9uZyxjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRNREluc3RhbmNlUGF0aEBJSVNfU0VSVklDRUBAUUVBQVhLUEVBREBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgVFNWQ19DQUNIRTo6R2V0U2VydmVySW5zdGFuY2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTZXJ2ZXJJbnN0YW5jZUBUU1ZDX0NBQ0hFQEBRRUJBUEVBWFhaDQorOyBwcml2YXRlOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVklDRTo6R2V0U2VydmljZUNvbmZpZ0luZm9TaXplKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/R2V0U2VydmljZUNvbmZpZ0luZm9TaXplQElJU19TRVJWSUNFQEBFRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgVFNWQ19DQUNIRTo6R2V0U2VydmljZUlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U2VydmljZUlkQFRTVkNfQ0FDSEVAQFFFQkFLWFoNCis7IHB1YmxpYzogY2xhc3MgQ0FDSEVEX1RPS0VOICogX19wdHI2NCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpHZXRUb2tlbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFRva2VuQFRDUF9BVVRIRU5UQEBRRUJBUEVBVkNBQ0hFRF9UT0tFTkBAWFoNCis7IHB1YmxpYzogY2xhc3MgVFNWQ19DQUNIRSAmIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpHZXRUc3ZjQ2FjaGUodm9pZCkgX19wdHI2NA0KKz9HZXRUc3ZjQ2FjaGVASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQUFFQVZUU1ZDX0NBQ0hFQEBYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpHZXRVc2VySGFuZGxlKHZvaWQpIF9fcHRyNjQNCis/R2V0VXNlckhhbmRsZUBUQ1BfQVVUSEVOVEBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENPTU1PTl9NRVRBREFUQTo6SGFuZGxlUHJpdmF0ZVByb3BlcnR5KGNoYXIgKiBfX3B0cjY0LGNsYXNzIElJU19TRVJWRVJfSU5TVEFOQ0UgKiBfX3B0cjY0LHN0cnVjdCBfTUVUQURBVEFfR0VUQUxMX0lOVEVSTkFMX1JFQ09SRCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQsY2xhc3MgQlVGRkVSICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCxzdHJ1Y3QgX01FVEFEQVRBX0VSUk9SX0lORk8gKiBfX3B0cjY0KSBfX3B0cjY0DQorP0hhbmRsZVByaXZhdGVQcm9wZXJ0eUBDT01NT05fTUVUQURBVEFAQFVFQUFIUEVBRFBFQVZJSVNfU0VSVkVSX0lOU1RBTkNFQEBQRUFVX01FVEFEQVRBX0dFVEFMTF9JTlRFUk5BTF9SRUNPUkRAQFBFQVhQRUFWQlVGRkVSQEBQRUFLUEVBVV9NRVRBREFUQV9FUlJPUl9JTkZPQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpIYXNOb3JtYWxCaW5kaW5ncyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0hhc05vcm1hbEJpbmRpbmdzQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6SGFzU2VjdXJlQmluZGluZ3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9IYXNTZWN1cmVCaW5kaW5nc0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpJbmNyZW1lbnRDdXJyZW50Q29ubmVjdGlvbnModm9pZCkgX19wdHI2NA0KKz9JbmNyZW1lbnRDdXJyZW50Q29ubmVjdGlvbnNASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVklDRTo6SXNBY3RpdmUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0FjdGl2ZUBJSVNfU0VSVklDRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpJc0F1dG9TdGFydCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzQXV0b1N0YXJ0QElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6SXNDbHVzdGVyRW5hYmxlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzQ2x1c3RlckVuYWJsZWRASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpJc0Rvd25MZXZlbEluc3RhbmNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNEb3duTGV2ZWxJbnN0YW5jZUBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OklzTG9nZ2luZ0VuYWJsZWRBKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNMb2dnaW5nRW5hYmxlZEFASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIE1JTUVfTUFQX0VOVFJZOjpJc01hdGNoKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/SXNNYXRjaEBNSU1FX01BUF9FTlRSWUBAVUVCQUhQRUJES0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TRVJWSUNFOjpJc011bHRpSW5zdGFuY2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc011bHRpSW5zdGFuY2VASUlTX1NFUlZJQ0VAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OklzU3lzdGVtREJDUyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzU3lzdGVtREJDU0BJSVNfU0VSVklDRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBIQVNIX1RBQkxFOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBIQVNIX1RBQkxFQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRTX09QRU5fRklMRV9JTkZPOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBUU19PUEVOX0ZJTEVfSU5GT0BAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpMb2FkU3RyKGNsYXNzIFNUUiAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxpbnQpY29uc3QgIF9fcHRyNjQNCis/TG9hZFN0ckBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBSEFFQVZTVFJAQEtIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19WUk9PVF9UQUJMRTo6TG9ja0NvbnZlcnRFeGNsdXNpdmUodm9pZCkgX19wdHI2NA0KKz9Mb2NrQ29udmVydEV4Y2x1c2l2ZUBJSVNfVlJPT1RfVEFCTEVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19WUk9PVF9UQUJMRTo6TG9ja0V4Y2x1c2l2ZSh2b2lkKSBfX3B0cjY0DQorP0xvY2tFeGNsdXNpdmVASUlTX1ZST09UX1RBQkxFQEBRRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HR0lORzo6TG9ja0V4Y2x1c2l2ZSh2b2lkKSBfX3B0cjY0DQorP0xvY2tFeGNsdXNpdmVATE9HR0lOR0BAQUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1ZST09UX1RBQkxFOjpMb2NrU2hhcmVkKHZvaWQpIF9fcHRyNjQNCis/TG9ja1NoYXJlZEBJSVNfVlJPT1RfVEFCTEVAQFFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBMT0dHSU5HOjpMb2NrU2hhcmVkKHZvaWQpIF9fcHRyNjQNCis/TG9ja1NoYXJlZEBMT0dHSU5HQEBBRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpMb2NrVGhpc0ZvclJlYWQodm9pZCkgX19wdHI2NA0KKz9Mb2NrVGhpc0ZvclJlYWRASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6TG9ja1RoaXNGb3JXcml0ZSh2b2lkKSBfX3B0cjY0DQorP0xvY2tUaGlzRm9yV3JpdGVASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1NFUlZJQ0U6OkxvZ0V2ZW50KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQsY2hhciBjb25zdCAqIF9fcHRyNjQgKiBfX3B0cjY0IGNvbnN0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/TG9nRXZlbnRASUlTX1NFUlZJQ0VAQFFFQUFYS0dRRUFQRUJES0BaDQorOyBwdWJsaWM6IGNsYXNzIEhUX0VMRU1FTlQgKiBfX3B0cjY0IF9fY2RlY2wgSEFTSF9UQUJMRTo6TG9va3VwKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0xvb2t1cEBIQVNIX1RBQkxFQEBRRUFBUEVBVkhUX0VMRU1FTlRAQFBFQkRAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTUlNRV9NQVA6OlByaW50KHZvaWQpIF9fcHRyNjQNCis/UHJpbnRATUlNRV9NQVBAQFFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgTUlNRV9NQVBfRU5UUlk6OlByaW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UHJpbnRATUlNRV9NQVBfRU5UUllAQFVFQkFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5QWNjZXB0RXhPdXRzdGFuZGluZyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QWNjZXB0RXhPdXRzdGFuZGluZ0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeUFjY2VwdEV4VGltZW91dCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QWNjZXB0RXhUaW1lb3V0QElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFLWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBJSVNfU1NMX0lORk8gKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlBbmRSZWZlcmVuY2VTU0xJbmZvT2JqKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlBbmRSZWZlcmVuY2VTU0xJbmZvT2JqQElJU19TRVJWRVJfSU5TVEFOQ0VAQFVFQUFQRUFWSUlTX1NTTF9JTkZPQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgVFNfT1BFTl9GSUxFX0lORk86OlF1ZXJ5QXR0cmlidXRlcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QXR0cmlidXRlc0BUU19PUEVOX0ZJTEVfSU5GT0BAUUVCQUtYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5QmFuZHdpZHRoSW5mbyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QmFuZHdpZHRoSW5mb0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeUNvbm5lY3Rpb25UaW1lb3V0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDb25uZWN0aW9uVGltZW91dEBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBS1haDQorOyBwdWJsaWM6IHN0cnVjdCBfU2VjSGFuZGxlICogX19wdHI2NCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpRdWVyeUNyZWRIYW5kbGUodm9pZCkgX19wdHI2NA0KKz9RdWVyeUNyZWRIYW5kbGVAVENQX0FVVEhFTlRAQFFFQUFQRUFVX1NlY0hhbmRsZUBAWFoNCis7IHB1YmxpYzogc3RydWN0IF9TZWNIYW5kbGUgKiBfX3B0cjY0IF9fY2RlY2wgVENQX0FVVEhFTlQ6OlF1ZXJ5Q3R4dEhhbmRsZSh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5Q3R4dEhhbmRsZUBUQ1BfQVVUSEVOVEBAUUVBQVBFQVVfU2VjSGFuZGxlQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlDdXJyZW50Q29ubmVjdGlvbnModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUN1cnJlbnRDb25uZWN0aW9uc0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVklDRTo6UXVlcnlDdXJyZW50U2VydmljZUVycm9yKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDdXJyZW50U2VydmljZUVycm9yQElJU19TRVJWSUNFQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVklDRTo6UXVlcnlDdXJyZW50U2VydmljZVN0YXRlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDdXJyZW50U2VydmljZVN0YXRlQElJU19TRVJWSUNFQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlEZWZhdWx0UG9ydCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RGVmYXVsdFBvcnRASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlF1ZXJ5RG93bkxldmVsSW5zdGFuY2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeURvd25MZXZlbEluc3RhbmNlQElJU19TRVJWSUNFQEBRRUJBS1haDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgVFNfT1BFTl9GSUxFX0lORk86OlF1ZXJ5RVRhZyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RVRhZ0BUU19PUEVOX0ZJTEVfSU5GT0BAUUVCQVBFQURYWg0KKzsgcHVibGljOiBjbGFzcyBFVkVOVF9MT0cgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlF1ZXJ5RXZlbnRMb2codm9pZCkgX19wdHI2NA0KKz9RdWVyeUV2ZW50TG9nQElJU19TRVJWSUNFQEBRRUFBUEVBVkVWRU5UX0xPR0BAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWSUNFOjpRdWVyeUluc3RhbmNlQ291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUluc3RhbmNlQ291bnRASUlTX1NFUlZJQ0VAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5SW5zdGFuY2VJZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SW5zdGFuY2VJZEBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBNSU1FX01BUF9FTlRSWTo6UXVlcnlLZXkodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUtleUBNSU1FX01BUF9FTlRSWUBAVUVCQVBFQkRYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBNSU1FX01BUF9FTlRSWTo6UXVlcnlLZXlMZW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUtleUxlbkBNSU1FX01BUF9FTlRSWUBAVUVCQUtYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUU19PUEVOX0ZJTEVfSU5GTzo6UXVlcnlMYXN0V3JpdGVUaW1lKHN0cnVjdCBfRklMRVRJTUUgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TGFzdFdyaXRlVGltZUBUU19PUEVOX0ZJTEVfSU5GT0BAUUVCQUhQRUFVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeUxvZ0Fub255bW91cyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TG9nQW5vbnltb3VzQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlMb2dOb25Bbm9ueW1vdXModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUxvZ05vbkFub255bW91c0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBSFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlNRFBhdGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1EUGF0aEBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBUEVCRFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlF1ZXJ5TURQYXRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNRFBhdGhASUlTX1NFUlZJQ0VAQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5TURQYXRoTGVuKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNRFBhdGhMZW5ASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUtYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5TURWUlBhdGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1EVlJQYXRoQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5TURWUlBhdGhMZW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1EVlJQYXRoTGVuQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5TWF4Q29ubmVjdGlvbnModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1heENvbm5lY3Rpb25zQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5TWF4RW5kcG9pbnRDb25uZWN0aW9ucyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TWF4RW5kcG9pbnRDb25uZWN0aW9uc0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBS1haDQorOyBwdWJsaWM6IGNsYXNzIE1JTUVfTUFQICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWSUNFOjpRdWVyeU1pbWVNYXAodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1pbWVNYXBASUlTX1NFUlZJQ0VAQFFFQkFQRUFWTUlNRV9NQVBAQFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlF1ZXJ5TW9kdWxlTmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TW9kdWxlTmFtZUBJSVNfU0VSVklDRUBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiBsb25nICogX19wdHI2NCBfX2NkZWNsIFJlZkJsb2I6OlF1ZXJ5UmVmQ291bnQodm9pZCkgX19wdHI2NA0KKz9RdWVyeVJlZkNvdW50QFJlZkJsb2JAQFFFQUFQRUFKWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeVJlZ1BhcmFtS2V5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlSZWdQYXJhbUtleUBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBUEVCRFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlF1ZXJ5UmVnUGFyYW1LZXkodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVJlZ1BhcmFtS2V5QElJU19TRVJWSUNFQEBRRUJBUEVCRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlSb290KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlSb290QElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFQRUFEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5U2F2ZWRTdGF0ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2F2ZWRTdGF0ZUBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeVNlcnZlclNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNlcnZlclNpemVASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlTZXJ2ZXJTdGF0ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2VydmVyU3RhdGVASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUtYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWSUNFOjpRdWVyeVNlcnZpY2VDb21tZW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZXJ2aWNlQ29tbWVudEBJSVNfU0VSVklDRUBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlF1ZXJ5U2VydmljZUlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZXJ2aWNlSWRASUlTX1NFUlZJQ0VAQFFFQkFLWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVklDRTo6UXVlcnlTZXJ2aWNlTmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2VydmljZU5hbWVASUlTX1NFUlZJQ0VAQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWSUNFOjpRdWVyeVNlcnZpY2VTcGVjaWZpY0V4aXRDb2RlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZXJ2aWNlU3BlY2lmaWNFeGl0Q29kZUBJSVNfU0VSVklDRUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlF1ZXJ5U2h1dGRvd25TY2hlZHVsZUlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTaHV0ZG93blNjaGVkdWxlSWRASUlTX1NFUlZJQ0VAQFFFQkFLWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeVNpdGVOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTaXRlTmFtZUBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBUEVCRFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRTX09QRU5fRklMRV9JTkZPOjpRdWVyeVNpemUodW5pb24gX0xBUkdFX0lOVEVHRVIgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2l6ZUBUU19PUEVOX0ZJTEVfSU5GT0BAUUVCQUhBRUFUX0xBUkdFX0lOVEVHRVJAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRTX09QRU5fRklMRV9JTkZPOjpRdWVyeVNpemUodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTaXplQFRTX09QRU5fRklMRV9JTkZPQEBRRUJBSFBFQUswQFoNCis7IHB1YmxpYzogc3RydWN0IF9TZWNIYW5kbGUgKiBfX3B0cjY0IF9fY2RlY2wgVENQX0FVVEhFTlQ6OlF1ZXJ5U3NsQ3R4dEhhbmRsZSh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5U3NsQ3R4dEhhbmRsZUBUQ1BfQVVUSEVOVEBAUUVBQVBFQVVfU2VjSGFuZGxlQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1ZST09UX1RBQkxFOjpRdWVyeVZyb290Q291bnQodm9pZCkgX19wdHI2NA0KKz9RdWVyeVZyb290Q291bnRASUlTX1ZST09UX1RBQkxFQEBRRUFBS1haDQorOyBwdWJsaWM6IGNsYXNzIElJU19WUk9PVF9UQUJMRSAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeVZyb290VGFibGUodm9pZCkgX19wdHI2NA0KKz9RdWVyeVZyb290VGFibGVASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQVBFQVZJSVNfVlJPT1RfVEFCTEVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIE1JTUVfTUFQX0VOVFJZOjpSZWZlcmVuY2Uodm9pZCkgX19wdHI2NA0KKz9SZWZlcmVuY2VATUlNRV9NQVBfRU5UUllAQFVFQUFKWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlJlbGVhc2VGYXN0TG9jayh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VGYXN0TG9ja0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVklDRTo6UmVsZWFzZVNlcnZpY2VMb2NrKGludCkgX19wdHI2NA0KKz9SZWxlYXNlU2VydmljZUxvY2tASUlTX1NFUlZJQ0VAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpSZW1vdmVOb3JtYWxCaW5kaW5ncyh2b2lkKSBfX3B0cjY0DQorP1JlbW92ZU5vcm1hbEJpbmRpbmdzQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlJlbW92ZVNlY3VyZUJpbmRpbmdzKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlU2VjdXJlQmluZGluZ3NASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQUtYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUU19PUEVOX0ZJTEVfSU5GTzo6UmV0cmlldmVIdHRwSW5mbyhjaGFyICogX19wdHI2NCxpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JldHJpZXZlSHR0cEluZm9AVFNfT1BFTl9GSUxFX0lORk9AQFFFQUFIUEVBRFBFQUhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6U2F2ZVNlcnZlclN0YXRlKHZvaWQpIF9fcHRyNjQNCis/U2F2ZVNlcnZlclN0YXRlQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCitTZXJ2aWNlRW50cnkNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENPTU1PTl9NRVRBREFUQTo6U2V0QWNjZXNzUGVybXModW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRBY2Nlc3NQZXJtc0BDT01NT05fTUVUQURBVEFAQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBUU1ZDX0NBQ0hFOjpTZXRQYXJhbWV0ZXJzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQYXJhbWV0ZXJzQFRTVkNfQ0FDSEVAQFFFQUFYS0tQRUFYQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWSUNFOjpTZXRTZXJ2aWNlQ29tbWVudChjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRTZXJ2aWNlQ29tbWVudEBJSVNfU0VSVklDRUBAUUVBQVhQRUFEQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWSUNFOjpTZXRTZXJ2aWNlU3BlY2lmaWNFeGl0Q29kZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFNlcnZpY2VTcGVjaWZpY0V4aXRDb2RlQElJU19TRVJWSUNFQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6U2V0WmFwUmVnS2V5KHZvaWQpIF9fcHRyNjQNCis/U2V0WmFwUmVnS2V5QElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlN0b3BJbnN0YW5jZVByb2NzKGNsYXNzIElJU19TRVJWRVJfSU5TVEFOQ0UgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1N0b3BJbnN0YW5jZVByb2NzQElJU19TRVJWSUNFQEBVRUFBWFBFQVZJSVNfU0VSVkVSX0lOU1RBTkNFQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1ZST09UX1RBQkxFOjpVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9VbmxvY2tASUlTX1ZST09UX1RBQkxFQEBRRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HR0lORzo6VW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/VW5sb2NrQExPR0dJTkdAQEFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlVubG9ja1RoaXModm9pZCkgX19wdHI2NA0KKz9VbmxvY2tUaGlzQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlVwZGF0ZU5vcm1hbEJpbmRpbmdzKHZvaWQpIF9fcHRyNjQNCis/VXBkYXRlTm9ybWFsQmluZGluZ3NASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6VXBkYXRlU2VjdXJlQmluZGluZ3Modm9pZCkgX19wdHI2NA0KKz9VcGRhdGVTZWN1cmVCaW5kaW5nc0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUFBS1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRTX09QRU5fRklMRV9JTkZPOjpXZWFrRVRhZyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1dlYWtFVGFnQFRTX09QRU5fRklMRV9JTkZPQEBRRUJBSFhaDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZndjZmcuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZndjZmcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE0MjM4MDUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9md2NmZy5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGV0NGRy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRldDRkcuRExMDQorRVhQT1JUUw0KK0dldFJlc291cmNlU3RyaW5nDQorSW5pdEhlbHBlckRsbA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Z4c2FwaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9meHNhcGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJjYTcxYWEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9meHNhcGkuZGVmCkBAIC0wLDAgKzEsMTY0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEZYU0FQSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRlhTQVBJLmRsbA0KK0VYUE9SVFMNCitGWFNBUElGcmVlDQorRlhTQVBJSW5pdGlhbGl6ZQ0KK0ZheEFib3J0DQorRmF4QWNjZXNzQ2hlY2sNCitGYXhBY2Nlc3NDaGVja0V4DQorRmF4QWRkT3V0Ym91bmRHcm91cEENCitGYXhBZGRPdXRib3VuZEdyb3VwVw0KK0ZheEFkZE91dGJvdW5kUnVsZUENCitGYXhBZGRPdXRib3VuZFJ1bGVXDQorRmF4QW5zd2VyQ2FsbA0KK0ZheENoZWNrVmFsaWRGYXhGb2xkZXINCitGYXhDbG9zZQ0KK0ZheENvbXBsZXRlSm9iUGFyYW1zQQ0KK0ZheENvbXBsZXRlSm9iUGFyYW1zVw0KK0ZheENvbm5lY3RGYXhTZXJ2ZXJBDQorRmF4Q29ubmVjdEZheFNlcnZlclcNCitGYXhFbmFibGVSb3V0aW5nTWV0aG9kQQ0KK0ZheEVuYWJsZVJvdXRpbmdNZXRob2RXDQorRmF4RW5kTWVzc2FnZXNFbnVtDQorRmF4RW51bUdsb2JhbFJvdXRpbmdJbmZvQQ0KK0ZheEVudW1HbG9iYWxSb3V0aW5nSW5mb1cNCitGYXhFbnVtSm9ic0ENCitGYXhFbnVtSm9ic0V4QQ0KK0ZheEVudW1Kb2JzRXhXDQorRmF4RW51bUpvYnNXDQorRmF4RW51bU1lc3NhZ2VzQQ0KK0ZheEVudW1NZXNzYWdlc1cNCitGYXhFbnVtT3V0Ym91bmRHcm91cHNBDQorRmF4RW51bU91dGJvdW5kR3JvdXBzVw0KK0ZheEVudW1PdXRib3VuZFJ1bGVzQQ0KK0ZheEVudW1PdXRib3VuZFJ1bGVzVw0KK0ZheEVudW1Qb3J0c0ENCitGYXhFbnVtUG9ydHNFeEENCitGYXhFbnVtUG9ydHNFeFcNCitGYXhFbnVtUG9ydHNXDQorRmF4RW51bVJvdXRpbmdFeHRlbnNpb25zQQ0KK0ZheEVudW1Sb3V0aW5nRXh0ZW5zaW9uc1cNCitGYXhFbnVtUm91dGluZ01ldGhvZHNBDQorRmF4RW51bVJvdXRpbmdNZXRob2RzVw0KK0ZheEVudW1lcmF0ZVByb3ZpZGVyc0ENCitGYXhFbnVtZXJhdGVQcm92aWRlcnNXDQorRmF4RnJlZUJ1ZmZlcg0KK0ZheEZyZWVTZW5kZXJJbmZvcm1hdGlvbg0KK0ZheEdldEFjdGl2aXR5TG9nZ2luZ0NvbmZpZ3VyYXRpb25BDQorRmF4R2V0QWN0aXZpdHlMb2dnaW5nQ29uZmlndXJhdGlvblcNCitGYXhHZXRBcmNoaXZlQ29uZmlndXJhdGlvbkENCitGYXhHZXRBcmNoaXZlQ29uZmlndXJhdGlvblcNCitGYXhHZXRDb25maWdXaXphcmRVc2VkDQorRmF4R2V0Q29uZmlndXJhdGlvbkENCitGYXhHZXRDb25maWd1cmF0aW9uVw0KK0ZheEdldENvdW50cnlMaXN0QQ0KK0ZheEdldENvdW50cnlMaXN0Vw0KK0ZheEdldERldmljZVN0YXR1c0ENCitGYXhHZXREZXZpY2VTdGF0dXNXDQorRmF4R2V0RXh0ZW5zaW9uRGF0YUENCitGYXhHZXRFeHRlbnNpb25EYXRhVw0KK0ZheEdldEpvYkENCitGYXhHZXRKb2JFeEENCitGYXhHZXRKb2JFeFcNCitGYXhHZXRKb2JXDQorRmF4R2V0TG9nZ2luZ0NhdGVnb3JpZXNBDQorRmF4R2V0TG9nZ2luZ0NhdGVnb3JpZXNXDQorRmF4R2V0TWVzc2FnZUENCitGYXhHZXRNZXNzYWdlVGlmZkENCitGYXhHZXRNZXNzYWdlVGlmZlcNCitGYXhHZXRNZXNzYWdlVw0KK0ZheEdldE91dGJveENvbmZpZ3VyYXRpb24NCitGYXhHZXRQYWdlRGF0YQ0KK0ZheEdldFBlcnNvbmFsQ292ZXJQYWdlc09wdGlvbg0KK0ZheEdldFBvcnRBDQorRmF4R2V0UG9ydEV4QQ0KK0ZheEdldFBvcnRFeFcNCitGYXhHZXRQb3J0Vw0KK0ZheEdldFF1ZXVlU3RhdGVzDQorRmF4R2V0UmVjZWlwdHNDb25maWd1cmF0aW9uQQ0KK0ZheEdldFJlY2VpcHRzQ29uZmlndXJhdGlvblcNCitGYXhHZXRSZWNlaXB0c09wdGlvbnMNCitGYXhHZXRSZWNpcGllbnRJbmZvQQ0KK0ZheEdldFJlY2lwaWVudEluZm9XDQorRmF4R2V0UmVjaXBpZW50c0xpbWl0DQorRmF4R2V0UmVwb3J0ZWRTZXJ2ZXJBUElWZXJzaW9uDQorRmF4R2V0Um91dGluZ0luZm9BDQorRmF4R2V0Um91dGluZ0luZm9XDQorRmF4R2V0U2VjdXJpdHkNCitGYXhHZXRTZWN1cml0eUV4DQorRmF4R2V0U2VuZGVySW5mb0ENCitGYXhHZXRTZW5kZXJJbmZvVw0KK0ZheEdldFNlbmRlckluZm9ybWF0aW9uDQorRmF4R2V0U2VydmVyQWN0aXZpdHkNCitGYXhHZXRTZXJ2ZXJTS1UNCitGYXhHZXRTZXJ2aWNlUHJpbnRlcnNBDQorRmF4R2V0U2VydmljZVByaW50ZXJzVw0KK0ZheEdldFZlcnNpb24NCitGYXhJbml0aWFsaXplRXZlbnRRdWV1ZQ0KK0ZheE9wZW5Qb3J0DQorRmF4UHJpbnRDb3ZlclBhZ2VBDQorRmF4UHJpbnRDb3ZlclBhZ2VXDQorRmF4UmVmcmVzaEFyY2hpdmUNCitGYXhSZWdpc3RlckZvclNlcnZlckV2ZW50cw0KK0ZheFJlZ2lzdGVyUm91dGluZ0V4dGVuc2lvblcNCitGYXhSZWdpc3RlclNlcnZpY2VQcm92aWRlckV4QQ0KK0ZheFJlZ2lzdGVyU2VydmljZVByb3ZpZGVyRXhXDQorRmF4UmVsZWFzZQ0KK0ZheFJlbW92ZU1lc3NhZ2UNCitGYXhSZW1vdmVPdXRib3VuZEdyb3VwQQ0KK0ZheFJlbW92ZU91dGJvdW5kR3JvdXBXDQorRmF4UmVtb3ZlT3V0Ym91bmRSdWxlDQorRmF4U2VuZERvY3VtZW50QQ0KK0ZheFNlbmREb2N1bWVudEV4QQ0KK0ZheFNlbmREb2N1bWVudEV4Vw0KK0ZheFNlbmREb2N1bWVudEZvckJyb2FkY2FzdEENCitGYXhTZW5kRG9jdW1lbnRGb3JCcm9hZGNhc3RXDQorRmF4U2VuZERvY3VtZW50Vw0KK0ZheFNldEFjdGl2aXR5TG9nZ2luZ0NvbmZpZ3VyYXRpb25BDQorRmF4U2V0QWN0aXZpdHlMb2dnaW5nQ29uZmlndXJhdGlvblcNCitGYXhTZXRBcmNoaXZlQ29uZmlndXJhdGlvbkENCitGYXhTZXRBcmNoaXZlQ29uZmlndXJhdGlvblcNCitGYXhTZXRDb25maWdXaXphcmRVc2VkDQorRmF4U2V0Q29uZmlndXJhdGlvbkENCitGYXhTZXRDb25maWd1cmF0aW9uVw0KK0ZheFNldERldmljZU9yZGVySW5Hcm91cEENCitGYXhTZXREZXZpY2VPcmRlckluR3JvdXBXDQorRmF4U2V0RXh0ZW5zaW9uRGF0YUENCitGYXhTZXRFeHRlbnNpb25EYXRhVw0KK0ZheFNldEdsb2JhbFJvdXRpbmdJbmZvQQ0KK0ZheFNldEdsb2JhbFJvdXRpbmdJbmZvVw0KK0ZheFNldEpvYkENCitGYXhTZXRKb2JXDQorRmF4U2V0TG9nZ2luZ0NhdGVnb3JpZXNBDQorRmF4U2V0TG9nZ2luZ0NhdGVnb3JpZXNXDQorRmF4U2V0T3V0Ym91bmRHcm91cEENCitGYXhTZXRPdXRib3VuZEdyb3VwVw0KK0ZheFNldE91dGJvdW5kUnVsZUENCitGYXhTZXRPdXRib3VuZFJ1bGVXDQorRmF4U2V0T3V0Ym94Q29uZmlndXJhdGlvbg0KK0ZheFNldFBvcnRBDQorRmF4U2V0UG9ydEV4QQ0KK0ZheFNldFBvcnRFeFcNCitGYXhTZXRQb3J0Vw0KK0ZheFNldFF1ZXVlDQorRmF4U2V0UmVjZWlwdHNDb25maWd1cmF0aW9uQQ0KK0ZheFNldFJlY2VpcHRzQ29uZmlndXJhdGlvblcNCitGYXhTZXRSb3V0aW5nSW5mb0ENCitGYXhTZXRSb3V0aW5nSW5mb1cNCitGYXhTZXRTZWN1cml0eQ0KK0ZheFNldFNlbmRlckluZm9ybWF0aW9uDQorRmF4U3RhcnRNZXNzYWdlc0VudW0NCitGYXhTdGFydFByaW50Sm9iMlcNCitGYXhTdGFydFByaW50Sm9iQQ0KK0ZheFN0YXJ0UHJpbnRKb2JXDQorRmF4VW5yZWdpc3RlckZvclNlcnZlckV2ZW50cw0KK0ZheFVucmVnaXN0ZXJSb3V0aW5nRXh0ZW5zaW9uQQ0KK0ZheFVucmVnaXN0ZXJSb3V0aW5nRXh0ZW5zaW9uVw0KK0ZheFVucmVnaXN0ZXJTZXJ2aWNlUHJvdmlkZXJFeEENCitGYXhVbnJlZ2lzdGVyU2VydmljZVByb3ZpZGVyRXhXDQorSXNEZXZpY2VWaXJ0dWFsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZnhzY2Znd3ouZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZnhzY2Znd3ouZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNkYzNlODEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9meHNjZmd3ei5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGWFNDRkdXWi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRlhTQ0ZHV1ouZGxsDQorRVhQT1JUUw0KK0ZheENmZ1d6cmREbGxXDQorRmF4Q29uZmlnV2l6YXJkDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZnhzY29tLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Z4c2NvbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2U0YjU3OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Z4c2NvbS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGeHNDb20uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEZ4c0NvbS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9meHNjb21leC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9meHNjb21leC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmNiZmRmNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Z4c2NvbWV4LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEZ4c0NvbUV4LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBGeHNDb21FeC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9meHNkcnYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZnhzZHJ2LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YWNiNDYwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZnhzZHJ2LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEZ4c0Rydi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRnhzRHJ2LmRsbA0KK0VYUE9SVFMNCitEbGxFbnRyeVBvaW50DQorRHJ2RGlzYWJsZURyaXZlcg0KK0RydkVuYWJsZURyaXZlcg0KK0RydlF1ZXJ5RHJpdmVySW5mbw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Z4c21vbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9meHNtb24uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFjMGMwODAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9meHNtb24uZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBmeHNtb24uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGZ4c21vbi5kbGwNCitFWFBPUlRTDQorSW5pdGlhbGl6ZVByaW50TW9uaXRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Z4c29jbS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9meHNvY20uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZkNmYzYTEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9meHNvY20uZGVmCkBAIC0wLDAgKzEsMTcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRlhTT0NNLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBGWFNPQ00uZGxsDQorRVhQT1JUUw0KK0ZheE1vZGVtQ29DbGFzc0luc3RhbGxlcg0KK0ZheE9jbVNldHVwUHJvYw0KK1NlY3VyZUZheFNlcnZpY2VEaXJlY3Rvcmllcw0KK1doZXJlRGlkTXlGYXhHbw0KK1hQX1VuaW5zdGFsbFByb3ZpZGVyDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9meHNwZXJmLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2Z4c3BlcmYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjViYzJmMzIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9meHNwZXJmLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEZYU1BFUkYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEZYU1BFUkYuZGxsDQorRVhQT1JUUw0KK09wZW5GYXhQZXJmb3JtYW5jZURhdGENCitDb2xsZWN0RmF4UGVyZm9ybWFuY2VEYXRhDQorQ2xvc2VGYXhQZXJmb3JtYW5jZURhdGENCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9meHNyb3V0ZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9meHNyb3V0ZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGExM2RmOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Z4c3JvdXRlLmRlZgpAQCAtMCwwICsxLDE4IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEZ4c1JvdXRlLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBGeHNSb3V0ZS5kbGwNCitFWFBPUlRTDQorRmF4Um91dGVDb25maWd1cmUNCitGYXhSb3V0ZUVtYWlsDQorRmF4Um91dGVQcmludA0KK0ZheFJvdXRlU3RvcmUNCitGYXhFeHRJbml0aWFsaXplQ29uZmlnDQorRmF4Um91dGVEZXZpY2VDaGFuZ2VOb3RpZmljYXRpb24NCitGYXhSb3V0ZURldmljZUVuYWJsZQ0KK0ZheFJvdXRlR2V0Um91dGluZ0luZm8NCitGYXhSb3V0ZUluaXRpYWxpemUNCitGYXhSb3V0ZVNldFJvdXRpbmdJbmZvDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZnhzc3QuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZnhzc3QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNkNmQ3MGYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9meHNzdC5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGWFNTVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRlhTU1QuZGxsDQorRVhQT1JUUw0KK0RsbE1haW4NCitGYXhNb25pdG9yU2h1dGRvd24NCitJc0ZheE1lc3NhZ2UNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9meHN0MzAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZnhzdDMwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44Njk1MzJlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZnhzdDMwLmRlZgpAQCAtMCwwICsxLDE3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEZYU1QzMC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRlhTVDMwLmRsbA0KK0VYUE9SVFMNCitGYXhEZXZBYm9ydE9wZXJhdGlvbg0KK0ZheERldkVuZEpvYg0KK0ZheERldkluaXRpYWxpemUNCitGYXhEZXZSZWNlaXZlDQorRmF4RGV2UmVwb3J0U3RhdHVzDQorRmF4RGV2U2VuZA0KK0ZheERldlNodXRkb3duDQorRmF4RGV2U3RhcnRKb2INCitGYXhFeHRJbml0aWFsaXplQ29uZmlnDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZnhzdGlmZi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9meHN0aWZmLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYjUzMTVmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZnhzdGlmZi5kZWYKQEAgLTAsMCArMSw0NCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGWFNUSUZGLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBGWFNUSUZGLmRsbA0KK0VYUE9SVFMNCitDb252TW1yUGFnZUhpUmVzVG9NckxvUmVzDQorQ29udk1tclBhZ2VUb01oDQorQ29udk1tclBhZ2VUb01yU2FtZVJlcw0KK0NvbnZlcnRUaWZmRmlsZVRvVmFsaWRGYXhGb3JtYXQNCitGWFNUSUZGSW5pdGlhbGl6ZQ0KK0ZpbmROZXh0RW9sDQorRnJlZU1zVGFnSW5mbw0KK0dldE1zVGFnRHdvcmRMb25nDQorR2V0TXNUYWdGaWxlVGltZQ0KK0dldE1zVGFnU3RyaW5nDQorR2V0VzJrTXNUaWZmVGFncw0KK01lbW9yeU1hcFRpZmZGaWxlDQorTWVyZ2VUaWZmRmlsZXMNCitNbXJBZGRCcmFuZGluZw0KK1ByaW50VGlmZkZpbGUNCitTY2FuTWhTZWdtZW50DQorU2Nhbk1yU2VnbWVudA0KK1RpZmZBZGRNc1RhZ3MNCitUaWZmQ2xvc2UNCitUaWZmQ3JlYXRlDQorVGlmZkVuZFBhZ2UNCitUaWZmRXh0cmFjdEZpcnN0UGFnZQ0KK1RpZmZHZXRDdXJyZW50UGFnZURhdGENCitUaWZmTGltaXRUYWdOdW1iZXINCitUaWZmT3Blbg0KK1RpZmZQb3N0UHJvY2Vzc0Zhc3QNCitUaWZmUHJpbnQNCitUaWZmUHJpbnREQw0KK1RpZmZSZWFkDQorVGlmZlJlY292ZXJHb29kUGFnZXMNCitUaWZmU2Vla1RvUGFnZQ0KK1RpZmZTZXRDdXJyZW50UGFnZVBhcmFtcw0KK1RpZmZTdGFydFBhZ2UNCitUaWZmVW5jb21wcmVzc01tclBhZ2UNCitUaWZmVW5jb21wcmVzc01tclBhZ2VSYXcNCitUaWZmV3JpdGVSYXcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9meHN1aS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9meHN1aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjAyYjYxMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Z4c3VpLmRlZgpAQCAtMCwwICsxLDE4IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGZ4c3VpLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBmeHN1aS5kbGwNCitFWFBPUlRTDQorRGV2UXVlcnlQcmludEV4DQorRHJ2QWR2YW5jZWREb2N1bWVudFByb3BlcnRpZXMNCitEcnZDb252ZXJ0RGV2TW9kZQ0KK0RydkRldmljZUNhcGFiaWxpdGllcw0KK0RydkRldmljZVByb3BlcnR5U2hlZXRzDQorRHJ2RG9jdW1lbnRFdmVudA0KK0RydkRvY3VtZW50UHJvcGVydGllcw0KK0RydkRvY3VtZW50UHJvcGVydHlTaGVldHMNCitEcnZQcmludGVyRXZlbnQNCitQcmludGVyUHJvcGVydGllcw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2Z4c3d6cmQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvZnhzd3pyZC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmI2ZjlkNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2Z4c3d6cmQuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRlhTV1pSRC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRlhTV1pSRC5kbGwNCitFWFBPUlRTDQorRmF4RnJlZVNlbmRXaXphcmREYXRhDQorRmF4U2VuZFdpemFyZA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2djZGVmLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2djZGVmLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yZDE3ZDZmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZ2NkZWYuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgR0NERUYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEdDREVGLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2dkaTMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2dkaTMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ODQyMWJmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZ2RpMzIuZGVmCkBAIC0wLDAgKzEsNjE3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEdESTMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBHREkzMi5kbGwNCitFWFBPUlRTDQorQWJvcnREb2MNCitBYm9ydFBhdGgNCitBZGRGb250TWVtUmVzb3VyY2VFeA0KK0FkZEZvbnRSZXNvdXJjZUENCitBZGRGb250UmVzb3VyY2VFeEENCitBZGRGb250UmVzb3VyY2VFeFcNCitBZGRGb250UmVzb3VyY2VUcmFja2luZw0KK0FkZEZvbnRSZXNvdXJjZVcNCitBbmdsZUFyYw0KK0FuaW1hdGVQYWxldHRlDQorQW55TGlua2VkRm9udHMNCitBcmMNCitBcmNUbw0KK0JSVVNIT0JKX2hHZXRDb2xvclRyYW5zZm9ybQ0KK0JSVVNIT0JKX3B2QWxsb2NSYnJ1c2gNCitCUlVTSE9CSl9wdkdldFJicnVzaA0KK0JSVVNIT0JKX3VsR2V0QnJ1c2hDb2xvcg0KK0JlZ2luUGF0aA0KK0JpdEJsdA0KK0NMSVBPQkpfYkVudW0NCitDTElQT0JKX2NFbnVtU3RhcnQNCitDTElQT0JKX3Bwb0dldFBhdGgNCitDYW5jZWxEQw0KK0NoZWNrQ29sb3JzSW5HYW11dA0KK0Nob29zZVBpeGVsRm9ybWF0DQorQ2hvcmQNCitDbGVhckJpdG1hcEF0dHJpYnV0ZXMNCitDbGVhckJydXNoQXR0cmlidXRlcw0KK0Nsb3NlRW5oTWV0YUZpbGUNCitDbG9zZUZpZ3VyZQ0KK0Nsb3NlTWV0YUZpbGUNCitDb2xvckNvcnJlY3RQYWxldHRlDQorQ29sb3JNYXRjaFRvVGFyZ2V0DQorQ29tYmluZVJnbg0KK0NvbWJpbmVUcmFuc2Zvcm0NCitDb3B5RW5oTWV0YUZpbGVBDQorQ29weUVuaE1ldGFGaWxlVw0KK0NvcHlNZXRhRmlsZUENCitDb3B5TWV0YUZpbGVXDQorQ3JlYXRlQml0bWFwDQorQ3JlYXRlQml0bWFwSW5kaXJlY3QNCitDcmVhdGVCcnVzaEluZGlyZWN0DQorQ3JlYXRlQ29sb3JTcGFjZUENCitDcmVhdGVDb2xvclNwYWNlVw0KK0NyZWF0ZUNvbXBhdGlibGVCaXRtYXANCitDcmVhdGVDb21wYXRpYmxlREMNCitDcmVhdGVEQ0ENCitDcmVhdGVEQ1cNCitDcmVhdGVESUJQYXR0ZXJuQnJ1c2gNCitDcmVhdGVESUJQYXR0ZXJuQnJ1c2hQdA0KK0NyZWF0ZURJQlNlY3Rpb24NCitDcmVhdGVESUJpdG1hcA0KK0NyZWF0ZURpc2NhcmRhYmxlQml0bWFwDQorQ3JlYXRlRWxsaXB0aWNSZ24NCitDcmVhdGVFbGxpcHRpY1JnbkluZGlyZWN0DQorQ3JlYXRlRW5oTWV0YUZpbGVBDQorQ3JlYXRlRW5oTWV0YUZpbGVXDQorQ3JlYXRlRm9udEENCitDcmVhdGVGb250SW5kaXJlY3RBDQorQ3JlYXRlRm9udEluZGlyZWN0RXhBDQorQ3JlYXRlRm9udEluZGlyZWN0RXhXDQorQ3JlYXRlRm9udEluZGlyZWN0Vw0KK0NyZWF0ZUZvbnRXDQorQ3JlYXRlSGFsZnRvbmVQYWxldHRlDQorQ3JlYXRlSGF0Y2hCcnVzaA0KK0NyZWF0ZUlDQQ0KK0NyZWF0ZUlDVw0KK0NyZWF0ZU1ldGFGaWxlQQ0KK0NyZWF0ZU1ldGFGaWxlVw0KK0NyZWF0ZVBhbGV0dGUNCitDcmVhdGVQYXR0ZXJuQnJ1c2gNCitDcmVhdGVQZW4NCitDcmVhdGVQZW5JbmRpcmVjdA0KK0NyZWF0ZVBvbHlQb2x5Z29uUmduDQorQ3JlYXRlUG9seWdvblJnbg0KK0NyZWF0ZVJlY3RSZ24NCitDcmVhdGVSZWN0UmduSW5kaXJlY3QNCitDcmVhdGVSb3VuZFJlY3RSZ24NCitDcmVhdGVTY2FsYWJsZUZvbnRSZXNvdXJjZUENCitDcmVhdGVTY2FsYWJsZUZvbnRSZXNvdXJjZVcNCitDcmVhdGVTb2xpZEJydXNoDQorRFB0b0xQDQorRGRFbnRyeTANCitEZEVudHJ5MQ0KK0RkRW50cnkxMA0KK0RkRW50cnkxMQ0KK0RkRW50cnkxMg0KK0RkRW50cnkxMw0KK0RkRW50cnkxNA0KK0RkRW50cnkxNQ0KK0RkRW50cnkxNg0KK0RkRW50cnkxNw0KK0RkRW50cnkxOA0KK0RkRW50cnkxOQ0KK0RkRW50cnkyDQorRGRFbnRyeTIwDQorRGRFbnRyeTIxDQorRGRFbnRyeTIyDQorRGRFbnRyeTIzDQorRGRFbnRyeTI0DQorRGRFbnRyeTI1DQorRGRFbnRyeTI2DQorRGRFbnRyeTI3DQorRGRFbnRyeTI4DQorRGRFbnRyeTI5DQorRGRFbnRyeTMNCitEZEVudHJ5MzANCitEZEVudHJ5MzENCitEZEVudHJ5MzINCitEZEVudHJ5MzMNCitEZEVudHJ5MzQNCitEZEVudHJ5MzUNCitEZEVudHJ5MzYNCitEZEVudHJ5MzcNCitEZEVudHJ5MzgNCitEZEVudHJ5MzkNCitEZEVudHJ5NA0KK0RkRW50cnk0MA0KK0RkRW50cnk0MQ0KK0RkRW50cnk0Mg0KK0RkRW50cnk0Mw0KK0RkRW50cnk0NA0KK0RkRW50cnk0NQ0KK0RkRW50cnk0Ng0KK0RkRW50cnk0Nw0KK0RkRW50cnk0OA0KK0RkRW50cnk0OQ0KK0RkRW50cnk1DQorRGRFbnRyeTUwDQorRGRFbnRyeTUxDQorRGRFbnRyeTUyDQorRGRFbnRyeTUzDQorRGRFbnRyeTU0DQorRGRFbnRyeTU1DQorRGRFbnRyeTU2DQorRGRFbnRyeTYNCitEZEVudHJ5Nw0KK0RkRW50cnk4DQorRGRFbnRyeTkNCitEZWxldGVDb2xvclNwYWNlDQorRGVsZXRlREMNCitEZWxldGVFbmhNZXRhRmlsZQ0KK0RlbGV0ZU1ldGFGaWxlDQorRGVsZXRlT2JqZWN0DQorRGVzY3JpYmVQaXhlbEZvcm1hdA0KK0RldmljZUNhcGFiaWxpdGllc0V4QQ0KK0RldmljZUNhcGFiaWxpdGllc0V4Vw0KK0RyYXdFc2NhcGUNCitFbGxpcHNlDQorRW5hYmxlRVVEQw0KK0VuZERvYw0KK0VuZEZvcm1QYWdlDQorRW5kUGFnZQ0KK0VuZFBhdGgNCitFbmdBY3F1aXJlU2VtYXBob3JlDQorRW5nQWxwaGFCbGVuZA0KK0VuZ0Fzc29jaWF0ZVN1cmZhY2UNCitFbmdCaXRCbHQNCitFbmdDaGVja0Fib3J0DQorRW5nQ29tcHV0ZUdseXBoU2V0DQorRW5nQ29weUJpdHMNCitFbmdDcmVhdGVCaXRtYXANCitFbmdDcmVhdGVDbGlwDQorRW5nQ3JlYXRlRGV2aWNlQml0bWFwDQorRW5nQ3JlYXRlRGV2aWNlU3VyZmFjZQ0KK0VuZ0NyZWF0ZVBhbGV0dGUNCitFbmdDcmVhdGVTZW1hcGhvcmUNCitFbmdEZWxldGVDbGlwDQorRW5nRGVsZXRlUGFsZXR0ZQ0KK0VuZ0RlbGV0ZVBhdGgNCitFbmdEZWxldGVTZW1hcGhvcmUNCitFbmdEZWxldGVTdXJmYWNlDQorRW5nRXJhc2VTdXJmYWNlDQorRW5nRmlsbFBhdGgNCitFbmdGaW5kUmVzb3VyY2UNCitFbmdGcmVlTW9kdWxlDQorRW5nR2V0Q3VycmVudENvZGVQYWdlDQorRW5nR2V0RHJpdmVyTmFtZQ0KK0VuZ0dldFByaW50ZXJEYXRhRmlsZU5hbWUNCitFbmdHcmFkaWVudEZpbGwNCitFbmdMaW5lVG8NCitFbmdMb2FkTW9kdWxlDQorRW5nTG9ja1N1cmZhY2UNCitFbmdNYXJrQmFuZGluZ1N1cmZhY2UNCitFbmdNdWx0aUJ5dGVUb1VuaWNvZGVODQorRW5nTXVsdGlCeXRlVG9XaWRlQ2hhcg0KK0VuZ1BhaW50DQorRW5nUGxnQmx0DQorRW5nUXVlcnlFTUZJbmZvDQorRW5nUXVlcnlMb2NhbFRpbWUNCitFbmdSZWxlYXNlU2VtYXBob3JlDQorRW5nU3RyZXRjaEJsdA0KK0VuZ1N0cmV0Y2hCbHRST1ANCitFbmdTdHJva2VBbmRGaWxsUGF0aA0KK0VuZ1N0cm9rZVBhdGgNCitFbmdUZXh0T3V0DQorRW5nVHJhbnNwYXJlbnRCbHQNCitFbmdVbmljb2RlVG9NdWx0aUJ5dGVODQorRW5nVW5sb2NrU3VyZmFjZQ0KK0VuZ1dpZGVDaGFyVG9NdWx0aUJ5dGUNCitFbnVtRW5oTWV0YUZpbGUNCitFbnVtRm9udEZhbWlsaWVzQQ0KK0VudW1Gb250RmFtaWxpZXNFeEENCitFbnVtRm9udEZhbWlsaWVzRXhXDQorRW51bUZvbnRGYW1pbGllc1cNCitFbnVtRm9udHNBDQorRW51bUZvbnRzVw0KK0VudW1JQ01Qcm9maWxlc0ENCitFbnVtSUNNUHJvZmlsZXNXDQorRW51bU1ldGFGaWxlDQorRW51bU9iamVjdHMNCitFcXVhbFJnbg0KK0VzY2FwZQ0KK0V1ZGNMb2FkTGlua1cNCitFdWRjVW5sb2FkTGlua1cNCitFeGNsdWRlQ2xpcFJlY3QNCitFeHRDcmVhdGVQZW4NCitFeHRDcmVhdGVSZWdpb24NCitFeHRFc2NhcGUNCitFeHRGbG9vZEZpbGwNCitFeHRTZWxlY3RDbGlwUmduDQorRXh0VGV4dE91dEENCitFeHRUZXh0T3V0Vw0KK0ZPTlRPQkpfY0dldEFsbEdseXBoSGFuZGxlcw0KK0ZPTlRPQkpfY0dldEdseXBocw0KK0ZPTlRPQkpfcFF1ZXJ5R2x5cGhBdHRycw0KK0ZPTlRPQkpfcGZkZw0KK0ZPTlRPQkpfcGlmaQ0KK0ZPTlRPQkpfcHZUcnVlVHlwZUZvbnRGaWxlDQorRk9OVE9CSl9weG9HZXRYZm9ybQ0KK0ZPTlRPQkpfdkdldEluZm8NCitGaWxsUGF0aA0KK0ZpbGxSZ24NCitGaXhCcnVzaE9yZ0V4DQorRmxhdHRlblBhdGgNCitGbG9vZEZpbGwNCitGb250SXNMaW5rZWQNCitGcmFtZVJnbg0KK0dkaUFkZEZvbnRSZXNvdXJjZVcNCitHZGlBZGRHbHNCb3VuZHMNCitHZGlBZGRHbHNSZWNvcmQNCitHZGlBbHBoYUJsZW5kDQorR2RpQXJ0aWZpY2lhbERlY3JlbWVudERyaXZlcg0KK0dkaUNsZWFuQ2FjaGVEQw0KK0dkaUNvbW1lbnQNCitHZGlDb25zb2xlVGV4dE91dA0KK0dkaUNvbnZlcnRBbmRDaGVja0RDDQorR2RpQ29udmVydEJpdG1hcA0KK0dkaUNvbnZlcnRCaXRtYXBWNQ0KK0dkaUNvbnZlcnRCcnVzaA0KK0dkaUNvbnZlcnREQw0KK0dkaUNvbnZlcnRFbmhNZXRhRmlsZQ0KK0dkaUNvbnZlcnRGb250DQorR2RpQ29udmVydE1ldGFGaWxlUGljdA0KK0dkaUNvbnZlcnRQYWxldHRlDQorR2RpQ29udmVydFJlZ2lvbg0KK0dkaUNvbnZlcnRUb0Rldm1vZGVXDQorR2RpQ3JlYXRlTG9jYWxFbmhNZXRhRmlsZQ0KK0dkaUNyZWF0ZUxvY2FsTWV0YUZpbGVQaWN0DQorR2RpRGVsZXRlTG9jYWxEQw0KK0dkaURlbGV0ZVNwb29sRmlsZUhhbmRsZQ0KK0dkaURlc2NyaWJlUGl4ZWxGb3JtYXQNCitHZGlEbGxJbml0aWFsaXplDQorR2RpRHJhd1N0cmVhbQ0KK0dkaUVuZERvY0VNRg0KK0dkaUVuZFBhZ2VFTUYNCitHZGlFbnRyeTENCitHZGlFbnRyeTEwDQorR2RpRW50cnkxMQ0KK0dkaUVudHJ5MTINCitHZGlFbnRyeTEzDQorR2RpRW50cnkxNA0KK0dkaUVudHJ5MTUNCitHZGlFbnRyeTE2DQorR2RpRW50cnkyDQorR2RpRW50cnkzDQorR2RpRW50cnk0DQorR2RpRW50cnk1DQorR2RpRW50cnk2DQorR2RpRW50cnk3DQorR2RpRW50cnk4DQorR2RpRW50cnk5DQorR2RpRml4VXBIYW5kbGUNCitHZGlGbHVzaA0KK0dkaUZ1bGxzY3JlZW5Db250cm9sDQorR2RpR2V0QmF0Y2hMaW1pdA0KK0dkaUdldENoYXJEaW1lbnNpb25zDQorR2RpR2V0Q29kZVBhZ2UNCitHZGlHZXREQw0KK0dkaUdldERldm1vZGVGb3JQYWdlDQorR2RpR2V0TG9jYWxCcnVzaA0KK0dkaUdldExvY2FsREMNCitHZGlHZXRMb2NhbEZvbnQNCitHZGlHZXRQYWdlQ291bnQNCitHZGlHZXRQYWdlSGFuZGxlDQorR2RpR2V0U3Bvb2xGaWxlSGFuZGxlDQorR2RpR2V0U3Bvb2xNZXNzYWdlDQorR2RpR3JhZGllbnRGaWxsDQorR2RpSW5pdFNwb29sDQorR2RpSW5pdGlhbGl6ZUxhbmd1YWdlUGFjaw0KK0dkaUlzTWV0YUZpbGVEQw0KK0dkaUlzTWV0YVByaW50REMNCitHZGlJc1BsYXlNZXRhZmlsZURDDQorR2RpUGxheURDU2NyaXB0DQorR2RpUGxheUVNRg0KK0dkaVBsYXlKb3VybmFsDQorR2RpUGxheVBhZ2VFTUYNCitHZGlQbGF5UHJpdmF0ZVBhZ2VFTUYNCitHZGlQbGF5U2NyaXB0DQorR2RpUHJpbnRlclRodW5rDQorR2RpUHJvY2Vzc1NldHVwDQorR2RpUXVlcnlGb250cw0KK0dkaVF1ZXJ5VGFibGUNCitHZGlSZWFsaXphdGlvbkluZm8NCitHZGlSZWxlYXNlREMNCitHZGlSZWxlYXNlTG9jYWxEQw0KK0dkaVJlc2V0RENFTUYNCitHZGlTZXRBdHRycw0KK0dkaVNldEJhdGNoTGltaXQNCitHZGlTZXRMYXN0RXJyb3INCitHZGlTZXRQaXhlbEZvcm1hdA0KK0dkaVNldFNlcnZlckF0dHINCitHZGlTdGFydERvY0VNRg0KK0dkaVN0YXJ0UGFnZUVNRg0KK0dkaVN3YXBCdWZmZXJzDQorR2RpVHJhbnNwYXJlbnRCbHQNCitHZGlWYWxpZGF0ZUhhbmRsZQ0KK0dldEFyY0RpcmVjdGlvbg0KK0dldEFzcGVjdFJhdGlvRmlsdGVyRXgNCitHZXRCaXRtYXBBdHRyaWJ1dGVzDQorR2V0Qml0bWFwQml0cw0KK0dldEJpdG1hcERpbWVuc2lvbkV4DQorR2V0QmtDb2xvcg0KK0dldEJrTW9kZQ0KK0dldEJvdW5kc1JlY3QNCitHZXRCcnVzaEF0dHJpYnV0ZXMNCitHZXRCcnVzaE9yZ0V4DQorR2V0Q2hhckFCQ1dpZHRoc0ENCitHZXRDaGFyQUJDV2lkdGhzRmxvYXRBDQorR2V0Q2hhckFCQ1dpZHRoc0Zsb2F0Vw0KK0dldENoYXJBQkNXaWR0aHNJDQorR2V0Q2hhckFCQ1dpZHRoc1cNCitHZXRDaGFyV2lkdGgzMkENCitHZXRDaGFyV2lkdGgzMlcNCitHZXRDaGFyV2lkdGhBDQorR2V0Q2hhcldpZHRoRmxvYXRBDQorR2V0Q2hhcldpZHRoRmxvYXRXDQorR2V0Q2hhcldpZHRoSQ0KK0dldENoYXJXaWR0aEluZm8NCitHZXRDaGFyV2lkdGhXDQorR2V0Q2hhcmFjdGVyUGxhY2VtZW50QQ0KK0dldENoYXJhY3RlclBsYWNlbWVudFcNCitHZXRDbGlwQm94DQorR2V0Q2xpcFJnbg0KK0dldENvbG9yQWRqdXN0bWVudA0KK0dldENvbG9yU3BhY2UNCitHZXRDdXJyZW50T2JqZWN0DQorR2V0Q3VycmVudFBvc2l0aW9uRXgNCitHZXREQ0JydXNoQ29sb3INCitHZXREQ09yZ0V4DQorR2V0RENQZW5Db2xvcg0KK0dldERJQkNvbG9yVGFibGUNCitHZXRESUJpdHMNCitHZXREZXZpY2VDYXBzDQorR2V0RGV2aWNlR2FtbWFSYW1wDQorR2V0RVRNDQorR2V0RVVEQ1RpbWVTdGFtcA0KK0dldEVVRENUaW1lU3RhbXBFeFcNCitHZXRFbmhNZXRhRmlsZUENCitHZXRFbmhNZXRhRmlsZUJpdHMNCitHZXRFbmhNZXRhRmlsZURlc2NyaXB0aW9uQQ0KK0dldEVuaE1ldGFGaWxlRGVzY3JpcHRpb25XDQorR2V0RW5oTWV0YUZpbGVIZWFkZXINCitHZXRFbmhNZXRhRmlsZVBhbGV0dGVFbnRyaWVzDQorR2V0RW5oTWV0YUZpbGVQaXhlbEZvcm1hdA0KK0dldEVuaE1ldGFGaWxlVw0KK0dldEZvbnRBc3NvY1N0YXR1cw0KK0dldEZvbnREYXRhDQorR2V0Rm9udExhbmd1YWdlSW5mbw0KK0dldEZvbnRSZXNvdXJjZUluZm9XDQorR2V0Rm9udFVuaWNvZGVSYW5nZXMNCitHZXRHbHlwaEluZGljZXNBDQorR2V0R2x5cGhJbmRpY2VzVw0KK0dldEdseXBoT3V0bGluZQ0KK0dldEdseXBoT3V0bGluZUENCitHZXRHbHlwaE91dGxpbmVXDQorR2V0R2x5cGhPdXRsaW5lV293DQorR2V0R3JhcGhpY3NNb2RlDQorR2V0SEZPTlQNCitHZXRJQ01Qcm9maWxlQQ0KK0dldElDTVByb2ZpbGVXDQorR2V0S2VybmluZ1BhaXJzDQorR2V0S2VybmluZ1BhaXJzQQ0KK0dldEtlcm5pbmdQYWlyc1cNCitHZXRMYXlvdXQNCitHZXRMb2dDb2xvclNwYWNlQQ0KK0dldExvZ0NvbG9yU3BhY2VXDQorR2V0TWFwTW9kZQ0KK0dldE1ldGFGaWxlQQ0KK0dldE1ldGFGaWxlQml0c0V4DQorR2V0TWV0YUZpbGVXDQorR2V0TWV0YVJnbg0KK0dldE1pdGVyTGltaXQNCitHZXROZWFyZXN0Q29sb3INCitHZXROZWFyZXN0UGFsZXR0ZUluZGV4DQorR2V0T2JqZWN0QQ0KK0dldE9iamVjdFR5cGUNCitHZXRPYmplY3RXDQorR2V0T3V0bGluZVRleHRNZXRyaWNzQQ0KK0dldE91dGxpbmVUZXh0TWV0cmljc1cNCitHZXRQYWxldHRlRW50cmllcw0KK0dldFBhdGgNCitHZXRQaXhlbA0KK0dldFBpeGVsRm9ybWF0DQorR2V0UG9seUZpbGxNb2RlDQorR2V0Uk9QMg0KK0dldFJhbmRvbVJnbg0KK0dldFJhc3Rlcml6ZXJDYXBzDQorR2V0UmVnaW9uRGF0YQ0KK0dldFJlbEFicw0KK0dldFJnbkJveA0KK0dldFN0b2NrT2JqZWN0DQorR2V0U3RyZXRjaEJsdE1vZGUNCitHZXRTdHJpbmdCaXRtYXBBDQorR2V0U3RyaW5nQml0bWFwVw0KK0dldFN5c3RlbVBhbGV0dGVFbnRyaWVzDQorR2V0U3lzdGVtUGFsZXR0ZVVzZQ0KK0dldFRleHRBbGlnbg0KK0dldFRleHRDaGFyYWN0ZXJFeHRyYQ0KK0dldFRleHRDaGFyc2V0DQorR2V0VGV4dENoYXJzZXRJbmZvDQorR2V0VGV4dENvbG9yDQorR2V0VGV4dEV4dGVudEV4UG9pbnRBDQorR2V0VGV4dEV4dGVudEV4UG9pbnRJDQorR2V0VGV4dEV4dGVudEV4UG9pbnRXDQorR2V0VGV4dEV4dGVudEV4UG9pbnRXUHJpDQorR2V0VGV4dEV4dGVudFBvaW50MzJBDQorR2V0VGV4dEV4dGVudFBvaW50MzJXDQorR2V0VGV4dEV4dGVudFBvaW50QQ0KK0dldFRleHRFeHRlbnRQb2ludEkNCitHZXRUZXh0RXh0ZW50UG9pbnRXDQorR2V0VGV4dEZhY2VBDQorR2V0VGV4dEZhY2VBbGlhc1cNCitHZXRUZXh0RmFjZVcNCitHZXRUZXh0TWV0cmljc0ENCitHZXRUZXh0TWV0cmljc1cNCitHZXRUcmFuc2Zvcm0NCitHZXRWaWV3cG9ydEV4dEV4DQorR2V0Vmlld3BvcnRPcmdFeA0KK0dldFdpbk1ldGFGaWxlQml0cw0KK0dldFdpbmRvd0V4dEV4DQorR2V0V2luZG93T3JnRXgNCitHZXRXb3JsZFRyYW5zZm9ybQ0KK0hUX0dldDhCUFBGb3JtYXRQYWxldHRlDQorSFRfR2V0OEJQUE1hc2tQYWxldHRlDQorSW50ZXJzZWN0Q2xpcFJlY3QNCitJbnZlcnRSZ24NCitJc1ZhbGlkRW5oTWV0YVJlY29yZA0KK0lzVmFsaWRFbmhNZXRhUmVjb3JkT2ZmRXh0DQorTFB0b0RQDQorTGluZUREQQ0KK0xpbmVUbw0KK01hc2tCbHQNCitNaXJyb3JSZ24NCitNb2RpZnlXb3JsZFRyYW5zZm9ybQ0KK01vdmVUb0V4DQorTmFtZWRFc2NhcGUNCitPZmZzZXRDbGlwUmduDQorT2Zmc2V0UmduDQorT2Zmc2V0Vmlld3BvcnRPcmdFeA0KK09mZnNldFdpbmRvd09yZ0V4DQorUEFUSE9CSl9iRW51bQ0KK1BBVEhPQkpfYkVudW1DbGlwTGluZXMNCitQQVRIT0JKX3ZFbnVtU3RhcnQNCitQQVRIT0JKX3ZFbnVtU3RhcnRDbGlwTGluZXMNCitQQVRIT0JKX3ZHZXRCb3VuZHMNCitQYWludFJnbg0KK1BhdEJsdA0KK1BhdGhUb1JlZ2lvbg0KK1BpZQ0KK1BsYXlFbmhNZXRhRmlsZQ0KK1BsYXlFbmhNZXRhRmlsZVJlY29yZA0KK1BsYXlNZXRhRmlsZQ0KK1BsYXlNZXRhRmlsZVJlY29yZA0KK1BsZ0JsdA0KK1BvbHlCZXppZXINCitQb2x5QmV6aWVyVG8NCitQb2x5RHJhdw0KK1BvbHlQYXRCbHQNCitQb2x5UG9seWdvbg0KK1BvbHlQb2x5bGluZQ0KK1BvbHlUZXh0T3V0QQ0KK1BvbHlUZXh0T3V0Vw0KK1BvbHlnb24NCitQb2x5bGluZQ0KK1BvbHlsaW5lVG8NCitQdEluUmVnaW9uDQorUHRWaXNpYmxlDQorUXVlcnlGb250QXNzb2NTdGF0dXMNCitSZWFsaXplUGFsZXR0ZQ0KK1JlY3RJblJlZ2lvbg0KK1JlY3RWaXNpYmxlDQorUmVjdGFuZ2xlDQorUmVtb3ZlRm9udE1lbVJlc291cmNlRXgNCitSZW1vdmVGb250UmVzb3VyY2VBDQorUmVtb3ZlRm9udFJlc291cmNlRXhBDQorUmVtb3ZlRm9udFJlc291cmNlRXhXDQorUmVtb3ZlRm9udFJlc291cmNlVHJhY2tpbmcNCitSZW1vdmVGb250UmVzb3VyY2VXDQorUmVzZXREQ0ENCitSZXNldERDVw0KK1Jlc2l6ZVBhbGV0dGUNCitSZXN0b3JlREMNCitSb3VuZFJlY3QNCitTVFJPQkpfYkVudW0NCitTVFJPQkpfYkVudW1Qb3NpdGlvbnNPbmx5DQorU1RST0JKX2JHZXRBZHZhbmNlV2lkdGhzDQorU1RST0JKX2R3R2V0Q29kZVBhZ2UNCitTVFJPQkpfdkVudW1TdGFydA0KK1NhdmVEQw0KK1NjYWxlVmlld3BvcnRFeHRFeA0KK1NjYWxlV2luZG93RXh0RXgNCitTZWxlY3RCcnVzaExvY2FsDQorU2VsZWN0Q2xpcFBhdGgNCitTZWxlY3RDbGlwUmduDQorU2VsZWN0Rm9udExvY2FsDQorU2VsZWN0T2JqZWN0DQorU2VsZWN0UGFsZXR0ZQ0KK1NldEFib3J0UHJvYw0KK1NldEFyY0RpcmVjdGlvbg0KK1NldEJpdG1hcEF0dHJpYnV0ZXMNCitTZXRCaXRtYXBCaXRzDQorU2V0Qml0bWFwRGltZW5zaW9uRXgNCitTZXRCa0NvbG9yDQorU2V0QmtNb2RlDQorU2V0Qm91bmRzUmVjdA0KK1NldEJydXNoQXR0cmlidXRlcw0KK1NldEJydXNoT3JnRXgNCitTZXRDb2xvckFkanVzdG1lbnQNCitTZXRDb2xvclNwYWNlDQorU2V0RENCcnVzaENvbG9yDQorU2V0RENQZW5Db2xvcg0KK1NldERJQkNvbG9yVGFibGUNCitTZXRESUJpdHMNCitTZXRESUJpdHNUb0RldmljZQ0KK1NldERldmljZUdhbW1hUmFtcA0KK1NldEVuaE1ldGFGaWxlQml0cw0KK1NldEZvbnRFbnVtZXJhdGlvbg0KK1NldEdyYXBoaWNzTW9kZQ0KK1NldElDTU1vZGUNCitTZXRJQ01Qcm9maWxlQQ0KK1NldElDTVByb2ZpbGVXDQorU2V0TGF5b3V0DQorU2V0TGF5b3V0V2lkdGgNCitTZXRNYWdpY0NvbG9ycw0KK1NldE1hcE1vZGUNCitTZXRNYXBwZXJGbGFncw0KK1NldE1ldGFGaWxlQml0c0V4DQorU2V0TWV0YVJnbg0KK1NldE1pdGVyTGltaXQNCitTZXRQYWxldHRlRW50cmllcw0KK1NldFBpeGVsDQorU2V0UGl4ZWxGb3JtYXQNCitTZXRQaXhlbFYNCitTZXRQb2x5RmlsbE1vZGUNCitTZXRST1AyDQorU2V0UmVjdFJnbg0KK1NldFJlbEFicw0KK1NldFN0cmV0Y2hCbHRNb2RlDQorU2V0U3lzdGVtUGFsZXR0ZVVzZQ0KK1NldFRleHRBbGlnbg0KK1NldFRleHRDaGFyYWN0ZXJFeHRyYQ0KK1NldFRleHRDb2xvcg0KK1NldFRleHRKdXN0aWZpY2F0aW9uDQorU2V0Vmlld3BvcnRFeHRFeA0KK1NldFZpZXdwb3J0T3JnRXgNCitTZXRWaXJ0dWFsUmVzb2x1dGlvbg0KK1NldFdpbk1ldGFGaWxlQml0cw0KK1NldFdpbmRvd0V4dEV4DQorU2V0V2luZG93T3JnRXgNCitTZXRXb3JsZFRyYW5zZm9ybQ0KK1N0YXJ0RG9jQQ0KK1N0YXJ0RG9jVw0KK1N0YXJ0Rm9ybVBhZ2UNCitTdGFydFBhZ2UNCitTdHJldGNoQmx0DQorU3RyZXRjaERJQml0cw0KK1N0cm9rZUFuZEZpbGxQYXRoDQorU3Ryb2tlUGF0aA0KK1N3YXBCdWZmZXJzDQorVGV4dE91dEENCitUZXh0T3V0Vw0KK1RyYW5zbGF0ZUNoYXJzZXRJbmZvDQorVW5sb2FkTmV0d29ya0ZvbnRzDQorVW5yZWFsaXplT2JqZWN0DQorVXBkYXRlQ29sb3JzDQorVXBkYXRlSUNNUmVnS2V5QQ0KK1VwZGF0ZUlDTVJlZ0tleVcNCitXaWRlblBhdGgNCitYRk9STU9CSl9iQXBwbHlYZm9ybQ0KK1hGT1JNT0JKX2lHZXRYZm9ybQ0KK1hMQVRFT0JKX2NHZXRQYWxldHRlDQorWExBVEVPQkpfaEdldENvbG9yVHJhbnNmb3JtDQorWExBVEVPQkpfaVhsYXRlDQorWExBVEVPQkpfcGlWZWN0b3INCitiSW5pdFN5c3RlbUFuZEZvbnRzRGlyZWN0b3JpZXNXDQorYk1ha2VQYXRoTmFtZVcNCitjR2V0VFRGRnJvbUZPVA0KK2dkaVBsYXlTcG9vbFN0cmVhbQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2dldHVuYW1lLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2dldHVuYW1lLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNzQxOWJhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZ2V0dW5hbWUuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBHZXRVTmFtZS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgR2V0VU5hbWUuZGxsDQorRVhQT1JUUw0KK0dldFVOYW1lDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZ2xtZjMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2dsbWYzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODgxMGNmMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2dsbWYzMi5kZWYKQEAgLTAsMCArMSwxNDIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgR0xNRjMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBHTE1GMzIuZGxsDQorRVhQT1JUUw0KK19fZ2xzUGFyc2VyX2NyZWF0ZQ0KK19fZ2xzUGFyc2VyX3ByaW50DQorX19nbHNTdHJpbmdfYXBwZW5kQ2hhcg0KK19fZ2xzU3RyaW5nX2Fzc2lnbg0KK19fZ2xzU3RyaW5nX2luaXQNCitnbHNBYm9ydENhbGwNCitnbHNBcHBSZWYNCitnbHNCZWdpbkNhcHR1cmUNCitnbHNCZWdpbkdMUw0KK2dsc0JlZ2luT2JqDQorZ2xzQmluYXJ5DQorZ2xzQmxvY2sNCitnbHNDYWxsQXJyYXkNCitnbHNDYWxsQXJyYXlJbkNvbnRleHQNCitnbHNDYWxsU3RyZWFtDQorZ2xzQ2FwdHVyZUZsYWdzDQorZ2xzQ2FwdHVyZUZ1bmMNCitnbHNDaGFubmVsDQorZ2xzQ2hhcnVieg0KK2dsc0NvbW1hbmRBUEkNCitnbHNDb21tYW5kRnVuYw0KK2dsc0NvbW1hbmRTdHJpbmcNCitnbHNDb21tZW50DQorZ2xzQ29udGV4dA0KK2dsc0NvcHlTdHJlYW0NCitnbHNEYXRhUG9pbnRlcg0KK2dsc0RlbGV0ZUNvbnRleHQNCitnbHNEZWxldGVSZWFkUHJlZml4DQorZ2xzRGVsZXRlU3RyZWFtDQorZ2xzRGlzcGxheU1hcGZ2DQorZ2xzRW5kQ2FwdHVyZQ0KK2dsc0VuZEdMUw0KK2dsc0VuZE9iag0KK2dsc0VudW1TdHJpbmcNCitnbHNFcnJvcg0KK2dsc0ZsdXNoDQorZ2xzR0xSQw0KK2dsc0dMUkNMYXllcg0KK2dsc0dlbkNvbnRleHQNCitnbHNHZXRBbGxDb250ZXh0cw0KK2dsc0dldENhcHR1cmVEaXNwYXRjaFRhYmxlDQorZ2xzR2V0Q2FwdHVyZUV4ZWNUYWJsZQ0KK2dsc0dldENhcHR1cmVGbGFncw0KK2dsc0dldENvbW1hbmRBbGlnbm1lbnQNCitnbHNHZXRDb21tYW5kQXR0cmliDQorZ2xzR2V0Q29tbWFuZEZ1bmMNCitnbHNHZXRDb25zdGkNCitnbHNHZXRDb25zdGl2DQorZ2xzR2V0Q29uc3R1YnoNCitnbHNHZXRDb250ZXh0RnVuYw0KK2dsc0dldENvbnRleHRMaXN0bA0KK2dsc0dldENvbnRleHRMaXN0dWJ6DQorZ2xzR2V0Q29udGV4dFBvaW50ZXINCitnbHNHZXRDb250ZXh0aQ0KK2dsc0dldENvbnRleHR1YnoNCitnbHNHZXRDdXJyZW50Q29udGV4dA0KK2dsc0dldEN1cnJlbnRUaW1lDQorZ2xzR2V0RXJyb3INCitnbHNHZXRHTFJDaQ0KK2dsc0dldEhlYWRlcmYNCitnbHNHZXRIZWFkZXJmdg0KK2dsc0dldEhlYWRlcmkNCitnbHNHZXRIZWFkZXJpdg0KK2dsc0dldEhlYWRlcnVieg0KK2dsc0dldExheWVyZg0KK2dsc0dldExheWVyaQ0KK2dsc0dldE9wY29kZUNvdW50DQorZ2xzR2V0T3Bjb2Rlcw0KK2dsc0dldFN0cmVhbUF0dHJpYg0KK2dsc0dldFN0cmVhbUNSQzMyDQorZ2xzR2V0U3RyZWFtUmVhZE5hbWUNCitnbHNHZXRTdHJlYW1TaXplDQorZ2xzR2V0U3RyZWFtVHlwZQ0KK2dsc0hlYWRlckdMUkNpDQorZ2xzSGVhZGVyTGF5ZXJmDQorZ2xzSGVhZGVyTGF5ZXJpDQorZ2xzSGVhZGVyZg0KK2dsc0hlYWRlcmZ2DQorZ2xzSGVhZGVyaQ0KK2dsc0hlYWRlcml2DQorZ2xzSGVhZGVydWJ6DQorZ2xzSXNDb250ZXh0DQorZ2xzSXNDb250ZXh0U3RyZWFtDQorZ2xzSXNFeHRlbnNpb25TdXBwb3J0ZWQNCitnbHNJc1VURjhTdHJpbmcNCitnbHNMb25nDQorZ2xzTG9uZ0hpZ2gNCitnbHNMb25nTG93DQorZ2xzTnVsbENvbW1hbmRGdW5jDQorZ2xzTnVtYg0KK2dsc051bWJ2DQorZ2xzTnVtZA0KK2dsc051bWR2DQorZ2xzTnVtZg0KK2dsc051bWZ2DQorZ2xzTnVtaQ0KK2dsc051bWl2DQorZ2xzTnVtbA0KK2dsc051bWx2DQorZ2xzTnVtcw0KK2dsc051bXN2DQorZ2xzTnVtdWINCitnbHNOdW11YnYNCitnbHNOdW11aQ0KK2dsc051bXVpdg0KK2dsc051bXVsDQorZ2xzTnVtdWx2DQorZ2xzTnVtdXMNCitnbHNOdW11c3YNCitnbHNQYWQNCitnbHNQaXhlbFNldHVwDQorZ2xzUGl4ZWxTZXR1cEdlbg0KK2dsc1JlYWRGdW5jDQorZ2xzUmVhZFByZWZpeA0KK2dsc1JlcXVpcmVFeHRlbnNpb24NCitnbHNTd2FwQnVmZmVycw0KK2dsc1VDUzF0b1VURjh6DQorZ2xzVUNTMnRvVVRGOHoNCitnbHNVQ1M0dG9VVEY4DQorZ2xzVUNTNHRvVVRGOHoNCitnbHNVQ1N0b1VURjh6DQorZ2xzVUxvbmcNCitnbHNVTG9uZ0hpZ2gNCitnbHNVTG9uZ0xvdw0KK2dsc1VURjh0b1VDUzF6DQorZ2xzVVRGOHRvVUNTMnoNCitnbHNVVEY4dG9VQ1M0DQorZ2xzVVRGOHRvVUNTNHoNCitnbHNVVEY4dG9VQ1N6DQorZ2xzVW5yZWFkRnVuYw0KK2dsc1Vuc3VwcG9ydGVkQ29tbWFuZA0KK2dsc1VwZGF0ZUNhcHR1cmVFeGVjVGFibGUNCitnbHNXcml0ZUZ1bmMNCitnbHNXcml0ZVByZWZpeA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2dsdTMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2dsdTMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40N2Y1ODljCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZ2x1MzIuZGVmCkBAIC0wLDAgKzEsNjAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgR0xVMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEdMVTMyLmRsbA0KK0VYUE9SVFMNCitnbHVCZWdpbkN1cnZlDQorZ2x1QmVnaW5Qb2x5Z29uDQorZ2x1QmVnaW5TdXJmYWNlDQorZ2x1QmVnaW5UcmltDQorZ2x1QnVpbGQxRE1pcG1hcHMNCitnbHVCdWlsZDJETWlwbWFwcw0KK2dsdUN5bGluZGVyDQorZ2x1RGVsZXRlTnVyYnNSZW5kZXJlcg0KK2dsdURlbGV0ZVF1YWRyaWMNCitnbHVEZWxldGVUZXNzDQorZ2x1RGlzaw0KK2dsdUVuZEN1cnZlDQorZ2x1RW5kUG9seWdvbg0KK2dsdUVuZFN1cmZhY2UNCitnbHVFbmRUcmltDQorZ2x1RXJyb3JTdHJpbmcNCitnbHVFcnJvclVuaWNvZGVTdHJpbmdFWFQNCitnbHVHZXROdXJic1Byb3BlcnR5DQorZ2x1R2V0U3RyaW5nDQorZ2x1R2V0VGVzc1Byb3BlcnR5DQorZ2x1TG9hZFNhbXBsaW5nTWF0cmljZXMNCitnbHVMb29rQXQNCitnbHVOZXdOdXJic1JlbmRlcmVyDQorZ2x1TmV3UXVhZHJpYw0KK2dsdU5ld1Rlc3MNCitnbHVOZXh0Q29udG91cg0KK2dsdU51cmJzQ2FsbGJhY2sNCitnbHVOdXJic0N1cnZlDQorZ2x1TnVyYnNQcm9wZXJ0eQ0KK2dsdU51cmJzU3VyZmFjZQ0KK2dsdU9ydGhvMkQNCitnbHVQYXJ0aWFsRGlzaw0KK2dsdVBlcnNwZWN0aXZlDQorZ2x1UGlja01hdHJpeA0KK2dsdVByb2plY3QNCitnbHVQd2xDdXJ2ZQ0KK2dsdVF1YWRyaWNDYWxsYmFjaw0KK2dsdVF1YWRyaWNEcmF3U3R5bGUNCitnbHVRdWFkcmljTm9ybWFscw0KK2dsdVF1YWRyaWNPcmllbnRhdGlvbg0KK2dsdVF1YWRyaWNUZXh0dXJlDQorZ2x1U2NhbGVJbWFnZQ0KK2dsdVNwaGVyZQ0KK2dsdVRlc3NCZWdpbkNvbnRvdXINCitnbHVUZXNzQmVnaW5Qb2x5Z29uDQorZ2x1VGVzc0NhbGxiYWNrDQorZ2x1VGVzc0VuZENvbnRvdXINCitnbHVUZXNzRW5kUG9seWdvbg0KK2dsdVRlc3NOb3JtYWwNCitnbHVUZXNzUHJvcGVydHkNCitnbHVUZXNzVmVydGV4DQorZ2x1VW5Qcm9qZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZ3BlZGl0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2dwZWRpdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzEwNTNhMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2dwZWRpdC5kZWYKQEAgLTAsMCArMSwxOCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBHUEVESVQuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEdQRURJVC5ETEwNCitFWFBPUlRTDQorQnJvd3NlRm9yR1BPDQorQ3JlYXRlR1BPTGluaw0KK0RlbGV0ZUFsbEdQT0xpbmtzDQorRGVsZXRlR1BPTGluaw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorRXhwb3J0UlNvUERhdGENCitJbXBvcnRSU29QRGF0YQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2dwa2NzcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9ncGtjc3AuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFlN2VhNDIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9ncGtjc3AuZGVmCkBAIC0wLDAgKzEsMzQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgR1BLQ1NQLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBHUEtDU1AuZGxsDQorRVhQT1JUUw0KK0NQQWNxdWlyZUNvbnRleHQNCitDUENyZWF0ZUhhc2gNCitDUERlY3J5cHQNCitDUERlcml2ZUtleQ0KK0NQRGVzdHJveUhhc2gNCitDUERlc3Ryb3lLZXkNCitDUEVuY3J5cHQNCitDUEV4cG9ydEtleQ0KK0NQR2VuS2V5DQorQ1BHZW5SYW5kb20NCitDUEdldEhhc2hQYXJhbQ0KK0NQR2V0S2V5UGFyYW0NCitDUEdldFByb3ZQYXJhbQ0KK0NQR2V0VXNlcktleQ0KK0NQSGFzaERhdGENCitDUEhhc2hTZXNzaW9uS2V5DQorQ1BJbXBvcnRLZXkNCitDUFJlbGVhc2VDb250ZXh0DQorQ1BTZXRIYXNoUGFyYW0NCitDUFNldEtleVBhcmFtDQorQ1BTZXRQcm92UGFyYW0NCitDUFNpZ25IYXNoDQorQ1BWZXJpZnlTaWduYXR1cmUNCitEbGxNYWluDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZ3B0ZXh0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2dwdGV4dC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTBhMzFlMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2dwdGV4dC5kZWYKQEAgLTAsMCArMSwyMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBHUFRFWFQuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEdQVEVYVC5ETEwNCitFWFBPUlRTDQorR2VuZXJhdGVJUFNFQ1BvbGljeQ0KK0dlbmVyYXRlU2NyaXB0c0dyb3VwUG9saWN5DQorR2VuZXJhdGVXSVJFTEVTU1BvbGljeQ0KK1Byb2Nlc3NJUFNFQ1BvbGljeUV4DQorUHJvY2Vzc1BTQ0hFRFBvbGljeQ0KK1Byb2Nlc3NTY3JpcHRzR3JvdXBQb2xpY3kNCitQcm9jZXNzU2NyaXB0c0dyb3VwUG9saWN5RXgNCitQcm9jZXNzV0lSRUxFU1NQb2xpY3lFeA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorU2NyUmVnR1BPTGlzdFRvV2JlbQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2d1aXRybi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9ndWl0cm4uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA4YTU1MzIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9ndWl0cm4uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgR1VJVFJOLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBHVUlUUk4uZGxsDQorRVhQT1JUUw0KK0RsbE1haW4NCitNb2R1bGVJbml0aWFsaXplDQorTW9kdWxlVGVybWluYXRlDQorVHJhbnNwb3J0TW9kdWxlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvZ3ppcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9nemlwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NWFhYTU3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvZ3ppcC5kZWYKQEAgLTAsMCArMSwxNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBnemlwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBnemlwLmRsbA0KK0VYUE9SVFMNCitDb21wcmVzcw0KK0NyZWF0ZUNvbXByZXNzaW9uDQorRGVJbml0Q29tcHJlc3Npb24NCitEZXN0cm95Q29tcHJlc3Npb24NCitJbml0Q29tcHJlc3Npb24NCitSZXNldENvbXByZXNzaW9uDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaDMyM21zcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9oMzIzbXNwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MjExN2YwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaDMyM21zcC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBoMzIzbXNwLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBoMzIzbXNwLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2hhbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9oYWwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMyMmE1YzEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9oYWwuZGVmCkBAIC0wLDAgKzEsNzEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSEFMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBIQUwuZGxsDQorRVhQT1JUUw0KK0hhbEFjcXVpcmVEaXNwbGF5T3duZXJzaGlwDQorSGFsQWRqdXN0UmVzb3VyY2VMaXN0DQorSGFsQWxsUHJvY2Vzc29yc1N0YXJ0ZWQNCitIYWxBbGxvY2F0ZUFkYXB0ZXJDaGFubmVsDQorSGFsQWxsb2NhdGVDb21tb25CdWZmZXINCitIYWxBbGxvY2F0ZUNyYXNoRHVtcFJlZ2lzdGVycw0KK0hhbEFzc2lnblNsb3RSZXNvdXJjZXMNCitIYWxDYWxpYnJhdGVQZXJmb3JtYW5jZUNvdW50ZXINCitIYWxDYWxsQmlvcw0KK0hhbENsZWFyU29mdHdhcmVJbnRlcnJ1cHQNCitIYWxEaXNhYmxlU3lzdGVtSW50ZXJydXB0DQorSGFsRGlzcGxheVN0cmluZw0KK0hhbEVuYWJsZVN5c3RlbUludGVycnVwdA0KK0hhbEZsdXNoQ29tbW9uQnVmZmVyDQorSGFsRnJlZUNvbW1vbkJ1ZmZlcg0KK0hhbEdldEFkYXB0ZXINCitIYWxHZXRCdXNEYXRhDQorSGFsR2V0QnVzRGF0YUJ5T2Zmc2V0DQorSGFsR2V0RW52aXJvbm1lbnRWYXJpYWJsZQ0KK0hhbEdldEludGVycnVwdFZlY3Rvcg0KK0hhbEhhbmRsZU1jaGVjaw0KK0hhbEhhbmRsZU5NSQ0KK0hhbEluaXRTeXN0ZW0NCitIYWxJbml0aWFsaXplUHJvY2Vzc29yDQorSGFsSXNIeXBlclRocmVhZGluZ0VuYWJsZWQNCitIYWxNYWtlQmVlcA0KK0hhbFByb2Nlc3NvcklkbGUNCitIYWxRdWVyeURpc3BsYXlQYXJhbWV0ZXJzDQorSGFsUXVlcnlSZWFsVGltZUNsb2NrDQorSGFsUmVhZERtYUNvdW50ZXINCitIYWxSZXBvcnRSZXNvdXJjZVVzYWdlDQorSGFsUmVxdWVzdElwaQ0KK0hhbFJlcXVlc3RTb2Z0d2FyZUludGVycnVwdA0KK0hhbFJldHVyblRvRmlybXdhcmUNCitIYWxTZW5kTk1JDQorSGFsU2VuZFNvZnR3YXJlSW50ZXJydXB0DQorSGFsU2V0QnVzRGF0YQ0KK0hhbFNldEJ1c0RhdGFCeU9mZnNldA0KK0hhbFNldERpc3BsYXlQYXJhbWV0ZXJzDQorSGFsU2V0RW52aXJvbm1lbnRWYXJpYWJsZQ0KK0hhbFNldFByb2ZpbGVJbnRlcnZhbA0KK0hhbFNldFJlYWxUaW1lQ2xvY2sNCitIYWxTZXRUaW1lSW5jcmVtZW50DQorSGFsU3RhcnROZXh0UHJvY2Vzc29yDQorSGFsU3RhcnRQcm9maWxlSW50ZXJydXB0DQorSGFsU3RvcFByb2ZpbGVJbnRlcnJ1cHQNCitIYWxTeXN0ZW1WZWN0b3JEaXNwYXRjaEVudHJ5DQorSGFsVHJhbnNsYXRlQnVzQWRkcmVzcw0KK0lvQXNzaWduRHJpdmVMZXR0ZXJzDQorSW9GbHVzaEFkYXB0ZXJCdWZmZXJzDQorSW9GcmVlQWRhcHRlckNoYW5uZWwNCitJb0ZyZWVNYXBSZWdpc3RlcnMNCitJb01hcFRyYW5zZmVyDQorSW9SZWFkUGFydGl0aW9uVGFibGUNCitJb1NldFBhcnRpdGlvbkluZm9ybWF0aW9uDQorSW9Xcml0ZVBhcnRpdGlvblRhYmxlDQorS2RDb21Qb3J0SW5Vc2UgREFUQQ0KK0tlRmx1c2hXcml0ZUJ1ZmZlcg0KK0tlUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXINCitLZVN0YWxsRXhlY3V0aW9uUHJvY2Vzc29yDQoreDg2Qmlvc0V4ZWN1dGVJbnRlcnJ1cHQNCit4ODZCaW9zSW5pdGlhbGl6ZUJpb3NFeA0KK3g4NkJpb3NUcmFuc2xhdGVBZGRyZXNzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaGJhYXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2hiYWFwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTkzZWQ2MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2hiYWFwaS5kZWYKQEAgLTAsMCArMSw2NSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBIQkFBUEkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEhCQUFQSS5kbGwNCitFWFBPUlRTDQorSEJBX0Nsb3NlQWRhcHRlcg0KK0hCQV9GcmVlTGlicmFyeQ0KK0hCQV9HZXRBZGFwdGVyQXR0cmlidXRlcw0KK0hCQV9HZXRBZGFwdGVyTmFtZQ0KK0hCQV9HZXRBZGFwdGVyUG9ydEF0dHJpYnV0ZXMNCitIQkFfR2V0QmluZGluZ0NhcGFiaWxpdHkNCitIQkFfR2V0QmluZGluZ1N1cHBvcnQNCitIQkFfR2V0RGlzY292ZXJlZFBvcnRBdHRyaWJ1dGVzDQorSEJBX0dldEV2ZW50QnVmZmVyDQorSEJBX0dldEZDNFN0YXRpc3RpY3MNCitIQkFfR2V0RkNQU3RhdGlzdGljcw0KK0hCQV9HZXRGY3BQZXJzaXN0ZW50QmluZGluZw0KK0hCQV9HZXRGY3BUYXJnZXRNYXBwaW5nDQorSEJBX0dldEZjcFRhcmdldE1hcHBpbmdWMg0KK0hCQV9HZXROdW1iZXJPZkFkYXB0ZXJzDQorSEJBX0dldFBlcnNpc3RlbnRCaW5kaW5nVjINCitIQkFfR2V0UG9ydEF0dHJpYnV0ZXNCeVdXTg0KK0hCQV9HZXRQb3J0U3RhdGlzdGljcw0KK0hCQV9HZXRSTklETWdtdEluZm8NCitIQkFfR2V0VmVuZG9yTGlicmFyeUF0dHJpYnV0ZXMNCitIQkFfR2V0VmVyc2lvbg0KK0hCQV9HZXRXcmFwcGVyTGlicmFyeUF0dHJpYnV0ZXMNCitIQkFfTG9hZExpYnJhcnkNCitIQkFfT3BlbkFkYXB0ZXINCitIQkFfT3BlbkFkYXB0ZXJCeVdXTg0KK0hCQV9SZWZyZXNoQWRhcHRlckNvbmZpZ3VyYXRpb24NCitIQkFfUmVmcmVzaEluZm9ybWF0aW9uDQorSEJBX1JlZ2lzdGVyRm9yQWRhcHRlckFkZEV2ZW50cw0KK0hCQV9SZWdpc3RlckZvckFkYXB0ZXJFdmVudHMNCitIQkFfUmVnaXN0ZXJGb3JBZGFwdGVyUG9ydEV2ZW50cw0KK0hCQV9SZWdpc3RlckZvckFkYXB0ZXJQb3J0U3RhdEV2ZW50cw0KK0hCQV9SZWdpc3RlckZvckxpbmtFdmVudHMNCitIQkFfUmVnaXN0ZXJGb3JUYXJnZXRFdmVudHMNCitIQkFfUmVnaXN0ZXJMaWJyYXJ5DQorSEJBX1JlZ2lzdGVyTGlicmFyeVYyDQorSEJBX1JlbW92ZUFsbFBlcnNpc3RlbnRCaW5kaW5ncw0KK0hCQV9SZW1vdmVDYWxsYmFjaw0KK0hCQV9SZW1vdmVQZXJzaXN0ZW50QmluZGluZw0KK0hCQV9SZXNldFN0YXRpc3RpY3MNCitIQkFfU2NzaUlucXVpcnlWMg0KK0hCQV9TY3NpUmVhZENhcGFjaXR5VjINCitIQkFfU2NzaVJlcG9ydExVTnNWMg0KK0hCQV9TZW5kQ1RQYXNzVGhydQ0KK0hCQV9TZW5kQ1RQYXNzVGhydVYyDQorSEJBX1NlbmRMSVJSDQorSEJBX1NlbmRSTFMNCitIQkFfU2VuZFJOSUQNCitIQkFfU2VuZFJOSURWMg0KK0hCQV9TZW5kUlBMDQorSEJBX1NlbmRSUFMNCitIQkFfU2VuZFJlYWRDYXBhY2l0eQ0KK0hCQV9TZW5kUmVwb3J0TFVOcw0KK0hCQV9TZW5kU1JMDQorSEJBX1NlbmRTY3NpSW5xdWlyeQ0KK0hCQV9TZXRCaW5kaW5nU3VwcG9ydA0KK0hCQV9TZXRQZXJzaXN0ZW50QmluZGluZ1YyDQorSEJBX1NldFJOSURNZ210SW5mbw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2hnZnMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaGdmcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjg3NDg0NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2hnZnMuZGVmCkBAIC0wLDAgKzEsMTggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaGdmcy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaGdmcy5kbGwNCitFWFBPUlRTDQorTlBHZXRDb25uZWN0aW9uDQorTlBHZXRDYXBzDQorTlBBZGRDb25uZWN0aW9uDQorTlBDYW5jZWxDb25uZWN0aW9uDQorTlBPcGVuRW51bQ0KK05QRW51bVJlc291cmNlDQorTlBDbG9zZUVudW0NCitOUEFkZENvbm5lY3Rpb24zDQorTlBHZXRSZXNvdXJjZVBhcmVudA0KK05QR2V0UmVzb3VyY2VJbmZvcm1hdGlvbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2hoc2V0dXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaGhzZXR1cC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGY2NTY2MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2hoc2V0dXAuZGVmCkBAIC0wLDAgKzEsMjk4IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGhoc2V0dXAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGhoc2V0dXAuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIENDb2xsZWN0aW9uOjpDQ29sbGVjdGlvbih2b2lkKSBfX3B0cjY0DQorPz8wQ0NvbGxlY3Rpb25AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRklGT1N0cmluZzo6Q0ZJRk9TdHJpbmcodm9pZCkgX19wdHI2NA0KKz8/MENGSUZPU3RyaW5nQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ZvbGRlcjo6Q0ZvbGRlcih2b2lkKSBfX3B0cjY0DQorPz8wQ0ZvbGRlckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENMb2NhdGlvbjo6Q0xvY2F0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzBDTG9jYXRpb25AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUG9pbnRlckxpc3Q6OkNQb2ludGVyTGlzdCh2b2lkKSBfX3B0cjY0DQorPz8wQ1BvaW50ZXJMaXN0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1RpdGxlOjpDVGl0bGUodm9pZCkgX19wdHI2NA0KKz8/MENUaXRsZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENDb2xsZWN0aW9uOjp+Q0NvbGxlY3Rpb24odm9pZCkgX19wdHI2NA0KKz8/MUNDb2xsZWN0aW9uQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ZJRk9TdHJpbmc6On5DRklGT1N0cmluZyh2b2lkKSBfX3B0cjY0DQorPz8xQ0ZJRk9TdHJpbmdAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRm9sZGVyOjp+Q0ZvbGRlcih2b2lkKSBfX3B0cjY0DQorPz8xQ0ZvbGRlckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENMb2NhdGlvbjo6fkNMb2NhdGlvbih2b2lkKSBfX3B0cjY0DQorPz8xQ0xvY2F0aW9uQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1BvaW50ZXJMaXN0Ojp+Q1BvaW50ZXJMaXN0KHZvaWQpIF9fcHRyNjQNCis/PzFDUG9pbnRlckxpc3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVGl0bGU6On5DVGl0bGUodm9pZCkgX19wdHI2NA0KKz8/MUNUaXRsZUBAUUVBQUBYWg0KKzsgcHVibGljOiBjbGFzcyBDQ29sbGVjdGlvbiAmIF9fcHRyNjQgX19jZGVjbCBDQ29sbGVjdGlvbjo6b3BlcmF0b3I9KGNsYXNzIENDb2xsZWN0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENDb2xsZWN0aW9uQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZJRk9TdHJpbmcgJiBfX3B0cjY0IF9fY2RlY2wgQ0ZJRk9TdHJpbmc6Om9wZXJhdG9yPShjbGFzcyBDRklGT1N0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDRklGT1N0cmluZ0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENGb2xkZXIgJiBfX3B0cjY0IF9fY2RlY2wgQ0ZvbGRlcjo6b3BlcmF0b3I9KGNsYXNzIENGb2xkZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0ZvbGRlckBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NhdGlvbiAmIF9fcHRyNjQgX19jZGVjbCBDTG9jYXRpb246Om9wZXJhdG9yPShjbGFzcyBDTG9jYXRpb24gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0xvY2F0aW9uQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1BvaW50ZXJMaXN0ICYgX19wdHI2NCBfX2NkZWNsIENQb2ludGVyTGlzdDo6b3BlcmF0b3I9KGNsYXNzIENQb2ludGVyTGlzdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDUG9pbnRlckxpc3RAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDVGl0bGUgJiBfX3B0cjY0IF9fY2RlY2wgQ1RpdGxlOjpvcGVyYXRvcj0oY2xhc3MgQ1RpdGxlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENUaXRsZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBMaXN0SXRlbSAqIF9fcHRyNjQgX19jZGVjbCBDUG9pbnRlckxpc3Q6OkFkZCh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRAQ1BvaW50ZXJMaXN0QEBRRUFBUEVBVUxpc3RJdGVtQEBQRUFYQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENGb2xkZXI6OkFkZENoaWxkRm9sZGVyKGNsYXNzIENGb2xkZXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZENoaWxkRm9sZGVyQENGb2xkZXJAQFFFQUFLUEVBVjFAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZvbGRlciAqIF9fcHRyNjQgX19jZGVjbCBDRm9sZGVyOjpBZGRDaGlsZEZvbGRlcihjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP0FkZENoaWxkRm9sZGVyQENGb2xkZXJAQFFFQUFQRUFWMUBQRUJES1BFQUtHQFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZvbGRlciAqIF9fcHRyNjQgX19jZGVjbCBDRm9sZGVyOjpBZGRDaGlsZEZvbGRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9BZGRDaGlsZEZvbGRlckBDRm9sZGVyQEBRRUFBUEVBVjFAUEVCR0tQRUFLR0BaDQorOyBwdWJsaWM6IGNsYXNzIENDb2xMaXN0ICogX19wdHI2NCBfX2NkZWNsIENDb2xsZWN0aW9uOjpBZGRDb2xsZWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/QWRkQ29sbGVjdGlvbkBDQ29sbGVjdGlvbkBAUUVBQVBFQVZDQ29sTGlzdEBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZvbGRlciAqIF9fcHRyNjQgX19jZGVjbCBDQ29sbGVjdGlvbjo6QWRkRm9sZGVyKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/QWRkRm9sZGVyQENDb2xsZWN0aW9uQEBRRUFBUEVBVkNGb2xkZXJAQFBFQkRLUEVBS0dAWg0KKzsgcHVibGljOiBjbGFzcyBDRm9sZGVyICogX19wdHI2NCBfX2NkZWNsIENDb2xsZWN0aW9uOjpBZGRGb2xkZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/QWRkRm9sZGVyQENDb2xsZWN0aW9uQEBRRUFBUEVBVkNGb2xkZXJAQFBFQkdLUEVBS0dAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9jYXRpb24gKiBfX3B0cjY0IF9fY2RlY2wgQ0NvbGxlY3Rpb246OkFkZExvY2F0aW9uKGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZExvY2F0aW9uQENDb2xsZWN0aW9uQEBRRUFBUEVBVkNMb2NhdGlvbkBAUEVCRDAwMFBFQUtAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9jYXRpb24gKiBfX3B0cjY0IF9fY2RlY2wgQ0NvbGxlY3Rpb246OkFkZExvY2F0aW9uKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRMb2NhdGlvbkBDQ29sbGVjdGlvbkBAUUVBQVBFQVZDTG9jYXRpb25AQFBFQkcwMDBQRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENUaXRsZTo6QWRkTG9jYXRpb25IaXN0b3J5KHVuc2lnbmVkIGxvbmcsY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0xvY2F0aW9uIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/QWRkTG9jYXRpb25IaXN0b3J5QENUaXRsZUBAUUVBQUtLUEVCRDAwUEVCVkNMb2NhdGlvbkBAMDBIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENUaXRsZTo6QWRkTG9jYXRpb25IaXN0b3J5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0xvY2F0aW9uIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9BZGRMb2NhdGlvbkhpc3RvcnlAQ1RpdGxlQEBRRUFBS0tQRUJHMDBQRUJWQ0xvY2F0aW9uQEAwMEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NvbGxlY3Rpb246OkFkZFJlZih2b2lkKSBfX3B0cjY0DQorP0FkZFJlZkBDQ29sbGVjdGlvbkBAUUVBQVhYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENDb2xsZWN0aW9uOjpBZGRSZWZlZFRpdGxlKGNsYXNzIENGb2xkZXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZFJlZmVkVGl0bGVAQ0NvbGxlY3Rpb25AQEFFQUFLUEVBVkNGb2xkZXJAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRklGT1N0cmluZzo6QWRkVGFpbChjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRUYWlsQENGSUZPU3RyaW5nQEBRRUFBS1BFQURAWg0KKzsgcHVibGljOiBjbGFzcyBDVGl0bGUgKiBfX3B0cjY0IF9fY2RlY2wgQ0NvbGxlY3Rpb246OkFkZFRpdGxlKGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGludCxjbGFzcyBDTG9jYXRpb24gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LGludCxjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRUaXRsZUBDQ29sbGVjdGlvbkBAUUVBQVBFQVZDVGl0bGVAQFBFQkQwMDAwR0lQRUFWQ0xvY2F0aW9uQEBQRUFLSDBAWg0KKzsgcHVibGljOiBjbGFzcyBDVGl0bGUgKiBfX3B0cjY0IF9fY2RlY2wgQ0NvbGxlY3Rpb246OkFkZFRpdGxlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgaW50LGNsYXNzIENMb2NhdGlvbiAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRUaXRsZUBDQ29sbGVjdGlvbkBAUUVBQVBFQVZDVGl0bGVAQFBFQkcwMDAwR0lQRUFWQ0xvY2F0aW9uQEBQRUFLSDBAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENDb2xsZWN0aW9uOjpBbGxvY0NvcHlWYWx1ZShjbGFzcyBDUGFyc2VYTUwgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BbGxvY0NvcHlWYWx1ZUBDQ29sbGVjdGlvbkBAQUVBQUtQRUFWQ1BhcnNlWE1MQEBQRUFEUEVBUEVBREBaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQWxsb2NTZXRWYWx1ZShjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyICogX19wdHI2NCAqIF9fcHRyNjQpDQorP0FsbG9jU2V0VmFsdWVAQFlBS1BFQkRQRUFQRUFEQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ29sbGVjdGlvbjo6Q2hlY2tUaXRsZVJlZihjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9DaGVja1RpdGxlUmVmQENDb2xsZWN0aW9uQEBBRUFBS1BFQkRHQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ29sbGVjdGlvbjo6Q2hlY2tUaXRsZVJlZih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/Q2hlY2tUaXRsZVJlZkBDQ29sbGVjdGlvbkBAQUVBQUtQRUJHR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ29sbGVjdGlvbjo6Q2xvc2Uodm9pZCkgX19wdHI2NA0KKz9DbG9zZUBDQ29sbGVjdGlvbkBAUUVBQUtYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NvbGxlY3Rpb246OkNvbmZpcm1UaXRsZXModm9pZCkgX19wdHI2NA0KKz9Db25maXJtVGl0bGVzQENDb2xsZWN0aW9uQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29sbGVjdGlvbjo6RGVjcmVtZW50UmVmVGl0bGVDb3VudCh2b2lkKSBfX3B0cjY0DQorP0RlY3JlbWVudFJlZlRpdGxlQ291bnRAQ0NvbGxlY3Rpb25AQFFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDQ29sbGVjdGlvbjo6RGVsZXRlQ2hpbGRyZW4oY2xhc3MgQ0ZvbGRlciAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZUNoaWxkcmVuQENDb2xsZWN0aW9uQEBBRUFBWFBFQVBFQVZDRm9sZGVyQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NvbGxlY3Rpb246OkRlbGV0ZUZvbGRlcihjbGFzcyBDRm9sZGVyICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVGb2xkZXJAQ0NvbGxlY3Rpb25AQFFFQUFLUEVBVkNGb2xkZXJAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ0NvbGxlY3Rpb246OkRlbGV0ZUZvbGRlcnMoY2xhc3MgQ0ZvbGRlciAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZUZvbGRlcnNAQ0NvbGxlY3Rpb25AQEFFQUFYUEVBUEVBVkNGb2xkZXJAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ0NvbGxlY3Rpb246OkRlbGV0ZUxvY2FsRmlsZXMoc3RydWN0IExvY2F0aW9uSGlzdG9yeSAqIF9fcHRyNjQsY2xhc3MgQ1RpdGxlICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVMb2NhbEZpbGVzQENDb2xsZWN0aW9uQEBBRUFBWFBFQVVMb2NhdGlvbkhpc3RvcnlAQFBFQVZDVGl0bGVAQEBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NvbGxlY3Rpb246OkRlbGV0ZUxvY2F0aW9uKGNsYXNzIENMb2NhdGlvbiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlTG9jYXRpb25AQ0NvbGxlY3Rpb25AQEFFQUFLUEVBVkNMb2NhdGlvbkBAQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ29sbGVjdGlvbjo6RGVsZXRlVGl0bGUoY2xhc3MgQ1RpdGxlICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVUaXRsZUBDQ29sbGVjdGlvbkBAQUVBQUtQRUFWQ1RpdGxlQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NvbGxlY3Rpb246OkRpcnR5KHZvaWQpIF9fcHRyNjQNCis/RGlydHlAQ0NvbGxlY3Rpb25AQFFFQUFYWFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbExpc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0NvbGxlY3Rpb246OkZpbmRDb2xsZWN0aW9uKGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmRDb2xsZWN0aW9uQENDb2xsZWN0aW9uQEBRRUFBUEVBVkNDb2xMaXN0QEBQRUFEQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2F0aW9uICogX19wdHI2NCBfX2NkZWNsIENDb2xsZWN0aW9uOjpGaW5kTG9jYXRpb24oY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9GaW5kTG9jYXRpb25AQ0NvbGxlY3Rpb25AQFFFQUFQRUFWQ0xvY2F0aW9uQEBQRUJEUEVBSUBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NhdGlvbiAqIF9fcHRyNjQgX19jZGVjbCBDQ29sbGVjdGlvbjo6RmluZExvY2F0aW9uKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmRMb2NhdGlvbkBDQ29sbGVjdGlvbkBAUUVBQVBFQVZDTG9jYXRpb25AQFBFQkdQRUFJQFoNCis7IHB1YmxpYzogY2xhc3MgQ1RpdGxlICogX19wdHI2NCBfX2NkZWNsIENDb2xsZWN0aW9uOjpGaW5kVGl0bGUoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/RmluZFRpdGxlQENDb2xsZWN0aW9uQEBRRUFBUEVBVkNUaXRsZUBAUEVCREdAWg0KKzsgcHVibGljOiBjbGFzcyBDVGl0bGUgKiBfX3B0cjY0IF9fY2RlY2wgQ0NvbGxlY3Rpb246OkZpbmRUaXRsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/RmluZFRpdGxlQENDb2xsZWN0aW9uQEBRRUFBUEVBVkNUaXRsZUBAUEVCR0dAWg0KKzsgcHVibGljOiBzdHJ1Y3QgTGlzdEl0ZW0gKiBfX3B0cjY0IF9fY2RlY2wgQ1BvaW50ZXJMaXN0OjpGaXJzdCh2b2lkKSBfX3B0cjY0DQorP0ZpcnN0QENQb2ludGVyTGlzdEBAUUVBQVBFQVVMaXN0SXRlbUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2F0aW9uICogX19wdHI2NCBfX2NkZWNsIENDb2xsZWN0aW9uOjpGaXJzdExvY2F0aW9uKHZvaWQpIF9fcHRyNjQNCis/Rmlyc3RMb2NhdGlvbkBDQ29sbGVjdGlvbkBAUUVBQVBFQVZDTG9jYXRpb25AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ29sbGVjdGlvbjo6R2V0Q29sTm8odm9pZCkgX19wdHI2NA0KKz9HZXRDb2xOb0BDQ29sbGVjdGlvbkBAUUVBQUtYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENDb2xsZWN0aW9uOjpHZXRDb2xsZWN0aW9uRmlsZU5hbWUodm9pZCkgX19wdHI2NA0KKz9HZXRDb2xsZWN0aW9uRmlsZU5hbWVAQ0NvbGxlY3Rpb25AQFFFQUFQRUJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0NvbGxlY3Rpb246OkdldENvbGxlY3Rpb25GaWxlTmFtZVcodm9pZCkgX19wdHI2NA0KKz9HZXRDb2xsZWN0aW9uRmlsZU5hbWVXQENDb2xsZWN0aW9uQEBRRUFBUEVCR1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDb2xsZWN0aW9uOjpHZXRGaW5kTWVyZ2VkQ0hNUyh2b2lkKSBfX3B0cjY0DQorP0dldEZpbmRNZXJnZWRDSE1TQENDb2xsZWN0aW9uQEBRRUFBSFhaDQorOyBwdWJsaWM6IGNsYXNzIENGb2xkZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0ZvbGRlcjo6R2V0Rmlyc3RDaGlsZEZvbGRlcih2b2lkKSBfX3B0cjY0DQorP0dldEZpcnN0Q2hpbGRGb2xkZXJAQ0ZvbGRlckBAUUVBQVBFQVYxQFhaDQorOyBwdWJsaWM6IGNsYXNzIENUaXRsZSAqIF9fcHRyNjQgX19jZGVjbCBDQ29sbGVjdGlvbjo6R2V0Rmlyc3RUaXRsZSh2b2lkKSBfX3B0cjY0DQorP0dldEZpcnN0VGl0bGVAQ0NvbGxlY3Rpb25AQFFFQUFQRUFWQ1RpdGxlQEBYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIENMb2NhdGlvbjo6R2V0SWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRJZEBDTG9jYXRpb25AQFFFQkFQRUFEWFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDVGl0bGU6OkdldElkKHZvaWQpIF9fcHRyNjQNCis/R2V0SWRAQ1RpdGxlQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENMb2NhdGlvbjo6R2V0SWRXKHZvaWQpIF9fcHRyNjQNCis/R2V0SWRXQENMb2NhdGlvbkBAUUVBQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDVGl0bGU6OkdldElkVyh2b2lkKSBfX3B0cjY0DQorP0dldElkV0BDVGl0bGVAQFFFQUFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDQ29sbGVjdGlvbjo6R2V0TGFuZ0lkKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldExhbmdJZEBDQ29sbGVjdGlvbkBAUUVBQUdQRUJEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDQ29sbGVjdGlvbjo6R2V0TGFuZ0lkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRMYW5nSWRAQ0NvbGxlY3Rpb25AQFFFQUFHUEVCR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ0ZvbGRlcjo6R2V0TGFuZ3VhZ2Uodm9pZCkgX19wdHI2NA0KKz9HZXRMYW5ndWFnZUBDRm9sZGVyQEBRRUFBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1RpdGxlOjpHZXRMYW5ndWFnZSh2b2lkKSBfX3B0cjY0DQorP0dldExhbmd1YWdlQENUaXRsZUBAUUVBQUdYWg0KKzsgcHVibGljOiBzdHJ1Y3QgTG9jYXRpb25IaXN0b3J5ICogX19wdHI2NCBfX2NkZWNsIENUaXRsZTo6R2V0TG9jYXRpb24odW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9HZXRMb2NhdGlvbkBDVGl0bGVAQFFFQUFQRUFVTG9jYXRpb25IaXN0b3J5QEBLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NvbGxlY3Rpb246OkdldE1hc3RlckNITShjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE1hc3RlckNITUBDQ29sbGVjdGlvbkBAUUVBQUhQRUFQRUFEUEVBR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDb2xsZWN0aW9uOjpHZXRNYXN0ZXJDSE0odW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TWFzdGVyQ0hNQENDb2xsZWN0aW9uQEBRRUFBSFBFQVBFQUdQRUFHQFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZvbGRlciAqIF9fcHRyNjQgX19jZGVjbCBDRm9sZGVyOjpHZXROZXh0Rm9sZGVyKHZvaWQpIF9fcHRyNjQNCis/R2V0TmV4dEZvbGRlckBDRm9sZGVyQEBRRUFBUEVBVjFAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2F0aW9uICogX19wdHI2NCBfX2NkZWNsIENMb2NhdGlvbjo6R2V0TmV4dExvY2F0aW9uKHZvaWQpIF9fcHRyNjQNCis/R2V0TmV4dExvY2F0aW9uQENMb2NhdGlvbkBAUUVBQVBFQVYxQFhaDQorOyBwdWJsaWM6IGNsYXNzIENUaXRsZSAqIF9fcHRyNjQgX19jZGVjbCBDVGl0bGU6OkdldE5leHRUaXRsZSh2b2lkKSBfX3B0cjY0DQorP0dldE5leHRUaXRsZUBDVGl0bGVAQFFFQUFQRUFWMUBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0ZvbGRlcjo6R2V0T3JkZXIodm9pZCkgX19wdHI2NA0KKz9HZXRPcmRlckBDRm9sZGVyQEBRRUFBS1haDQorOyBwdWJsaWM6IGNsYXNzIENGb2xkZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0ZvbGRlcjo6R2V0UGFyZW50KHZvaWQpIF9fcHRyNjQNCis/R2V0UGFyZW50QENGb2xkZXJAQFFFQUFQRUFWMUBYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIENMb2NhdGlvbjo6R2V0UGF0aCh2b2lkKSBfX3B0cjY0DQorP0dldFBhdGhAQ0xvY2F0aW9uQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENMb2NhdGlvbjo6R2V0UGF0aFcodm9pZCkgX19wdHI2NA0KKz9HZXRQYXRoV0BDTG9jYXRpb25AQFFFQUFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENDb2xsZWN0aW9uOjpHZXRSZWZUaXRsZUNvdW50KHZvaWQpIF9fcHRyNjQNCis/R2V0UmVmVGl0bGVDb3VudEBDQ29sbGVjdGlvbkBAUUVBQUtYWg0KKzsgcHVibGljOiBjbGFzcyBDRm9sZGVyICogX19wdHI2NCBfX2NkZWNsIENDb2xsZWN0aW9uOjpHZXRSb290Rm9sZGVyKHZvaWQpIF9fcHRyNjQNCis/R2V0Um9vdEZvbGRlckBDQ29sbGVjdGlvbkBAUUVBQVBFQVZDRm9sZGVyQEBYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIENDb2xsZWN0aW9uOjpHZXRTYW1wbGVMb2NhdGlvbih2b2lkKSBfX3B0cjY0DQorP0dldFNhbXBsZUxvY2F0aW9uQENDb2xsZWN0aW9uQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENDb2xsZWN0aW9uOjpHZXRTYW1wbGVMb2NhdGlvblcodm9pZCkgX19wdHI2NA0KKz9HZXRTYW1wbGVMb2NhdGlvbldAQ0NvbGxlY3Rpb25AQFFFQUFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENGSUZPU3RyaW5nOjpHZXRUYWlsKGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRUYWlsQENGSUZPU3RyaW5nQEBRRUFBS1BFQVBFQURAWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIENGb2xkZXI6OkdldFRpdGxlKHZvaWQpIF9fcHRyNjQNCis/R2V0VGl0bGVAQ0ZvbGRlckBAUUVBQVBFQURYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIENMb2NhdGlvbjo6R2V0VGl0bGUodm9pZCkgX19wdHI2NA0KKz9HZXRUaXRsZUBDTG9jYXRpb25AQFFFQUFQRUFEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0ZvbGRlcjo6R2V0VGl0bGVXKHZvaWQpIF9fcHRyNjQNCis/R2V0VGl0bGVXQENGb2xkZXJAQFFFQUFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0xvY2F0aW9uOjpHZXRUaXRsZVcodm9pZCkgX19wdHI2NA0KKz9HZXRUaXRsZVdAQ0xvY2F0aW9uQEBRRUFBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ29sbGVjdGlvbjo6R2V0VmVyc2lvbih2b2lkKSBfX3B0cjY0DQorP0dldFZlcnNpb25AQ0NvbGxlY3Rpb25AQFFFQUFLWFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZvbGRlciAqIF9fcHRyNjQgX19jZGVjbCBDQ29sbGVjdGlvbjo6R2V0VmlzYWJsZVJvb3RGb2xkZXIodm9pZCkgX19wdHI2NA0KKz9HZXRWaXNhYmxlUm9vdEZvbGRlckBDQ29sbGVjdGlvbkBAUUVBQVBFQVZDRm9sZGVyQEBYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIENMb2NhdGlvbjo6R2V0Vm9sdW1lKHZvaWQpIF9fcHRyNjQNCis/R2V0Vm9sdW1lQENMb2NhdGlvbkBAUUVBQVBFQURYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTG9jYXRpb246OkdldFZvbHVtZVcodm9pZCkgX19wdHI2NA0KKz9HZXRWb2x1bWVXQENMb2NhdGlvbkBAUUVBQVBFQkdYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENDb2xsZWN0aW9uOjpIYW5kbGVDb2xsZWN0aW9uKGNsYXNzIENQYXJzZVhNTCAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SGFuZGxlQ29sbGVjdGlvbkBDQ29sbGVjdGlvbkBAQUVBQUtQRUFWQ1BhcnNlWE1MQEBQRUFEQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ29sbGVjdGlvbjo6SGFuZGxlQ29sbGVjdGlvbkVudHJ5KGNsYXNzIENQYXJzZVhNTCAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SGFuZGxlQ29sbGVjdGlvbkVudHJ5QENDb2xsZWN0aW9uQEBBRUFBS1BFQVZDUGFyc2VYTUxAQFBFQURAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENDb2xsZWN0aW9uOjpIYW5kbGVGb2xkZXIoY2xhc3MgQ1BhcnNlWE1MICogX19wdHI2NCxjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9IYW5kbGVGb2xkZXJAQ0NvbGxlY3Rpb25AQEFFQUFLUEVBVkNQYXJzZVhNTEBAUEVBREBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NvbGxlY3Rpb246OkhhbmRsZUxvY2F0aW9uKGNsYXNzIENQYXJzZVhNTCAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SGFuZGxlTG9jYXRpb25AQ0NvbGxlY3Rpb25AQEFFQUFLUEVBVkNQYXJzZVhNTEBAUEVBREBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NvbGxlY3Rpb246OkhhbmRsZVRpdGxlKGNsYXNzIENQYXJzZVhNTCAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SGFuZGxlVGl0bGVAQ0NvbGxlY3Rpb25AQEFFQUFLUEVBVkNQYXJzZVhNTEBAUEVBREBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29sbGVjdGlvbjo6SW5jcmVtZW50UmVmVGl0bGVDb3VudCh2b2lkKSBfX3B0cjY0DQorP0luY3JlbWVudFJlZlRpdGxlQ291bnRAQ0NvbGxlY3Rpb25AQFFFQUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NvbGxlY3Rpb246OklzRGlydHkodm9pZCkgX19wdHI2NA0KKz9Jc0RpcnR5QENDb2xsZWN0aW9uQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDb2xsZWN0aW9uOjpNZXJnZUtleXdvcmRzKGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP01lcmdlS2V5d29yZHNAQ0NvbGxlY3Rpb25AQFFFQUFIUEVBREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDb2xsZWN0aW9uOjpNZXJnZUtleXdvcmRzKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz9NZXJnZUtleXdvcmRzQENDb2xsZWN0aW9uQEBRRUFBSFBFQUdAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0xvY2F0aW9uICogX19wdHI2NCBfX2NkZWNsIENDb2xsZWN0aW9uOjpOZXdMb2NhdGlvbih2b2lkKSBfX3B0cjY0DQorP05ld0xvY2F0aW9uQENDb2xsZWN0aW9uQEBBRUFBUEVBVkNMb2NhdGlvbkBAWFoNCis7IHB1YmxpYzogc3RydWN0IExvY2F0aW9uSGlzdG9yeSAqIF9fcHRyNjQgX19jZGVjbCBDVGl0bGU6Ok5ld0xvY2F0aW9uSGlzdG9yeSh2b2lkKSBfX3B0cjY0DQorP05ld0xvY2F0aW9uSGlzdG9yeUBDVGl0bGVAQFFFQUFQRUFVTG9jYXRpb25IaXN0b3J5QEBYWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ1RpdGxlICogX19wdHI2NCBfX2NkZWNsIENDb2xsZWN0aW9uOjpOZXdUaXRsZSh2b2lkKSBfX3B0cjY0DQorP05ld1RpdGxlQENDb2xsZWN0aW9uQEBBRUFBUEVBVkNUaXRsZUBAWFoNCis7IHB1YmxpYzogc3RydWN0IExpc3RJdGVtICogX19wdHI2NCBfX2NkZWNsIENQb2ludGVyTGlzdDo6TmV4dChzdHJ1Y3QgTGlzdEl0ZW0gKiBfX3B0cjY0KSBfX3B0cjY0DQorP05leHRAQ1BvaW50ZXJMaXN0QEBRRUFBUEVBVUxpc3RJdGVtQEBQRUFVMkBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NvbGxlY3Rpb246Ok9wZW4oY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T3BlbkBDQ29sbGVjdGlvbkBAUUVBQUtQRUJEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENDb2xsZWN0aW9uOjpPcGVuKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9PcGVuQENDb2xsZWN0aW9uQEBRRUFBS1BFQkdAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENDb2xsZWN0aW9uOjpQYXJzZUZpbGUoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UGFyc2VGaWxlQENDb2xsZWN0aW9uQEBBRUFBS1BFQkRAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENDb2xsZWN0aW9uOjpSZWxlYXNlKHZvaWQpIF9fcHRyNjQNCis/UmVsZWFzZUBDQ29sbGVjdGlvbkBAQUVBQUtYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZJRk9TdHJpbmc6OlJlbW92ZUFsbCh2b2lkKSBfX3B0cjY0DQorP1JlbW92ZUFsbEBDRklGT1N0cmluZ0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1BvaW50ZXJMaXN0OjpSZW1vdmVBbGwodm9pZCkgX19wdHI2NA0KKz9SZW1vdmVBbGxAQ1BvaW50ZXJMaXN0QEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ29sbGVjdGlvbjo6UmVtb3ZlQ29sbGVjdGlvbihpbnQpIF9fcHRyNjQNCis/UmVtb3ZlQ29sbGVjdGlvbkBDQ29sbGVjdGlvbkBAUUVBQUtIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDb2xsZWN0aW9uOjpSZW1vdmVDb2xsZWN0aW9uRW50cnkoY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVtb3ZlQ29sbGVjdGlvbkVudHJ5QENDb2xsZWN0aW9uQEBRRUFBWFBFQURAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NvbGxlY3Rpb246OlNhdmUodm9pZCkgX19wdHI2NA0KKz9TYXZlQENDb2xsZWN0aW9uQEBRRUFBS1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRm9sZGVyOjpTZXRFeFRpdGxlUHRyKGNsYXNzIENFeFRpdGxlICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRFeFRpdGxlUHRyQENGb2xkZXJAQFFFQUFYUEVBVkNFeFRpdGxlQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NvbGxlY3Rpb246OlNldEZpbmRNZXJnZWRDSE1TKGludCkgX19wdHI2NA0KKz9TZXRGaW5kTWVyZ2VkQ0hNU0BDQ29sbGVjdGlvbkBAUUVBQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGb2xkZXI6OlNldEZpcnN0Q2hpbGRGb2xkZXIoY2xhc3MgQ0ZvbGRlciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Rmlyc3RDaGlsZEZvbGRlckBDRm9sZGVyQEBRRUFBWFBFQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTG9jYXRpb246OlNldElkKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldElkQENMb2NhdGlvbkBAUUVBQVhQRUJEQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMb2NhdGlvbjo6U2V0SWQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldElkQENMb2NhdGlvbkBAUUVBQVhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENUaXRsZTo6U2V0SWQoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0SWRAQ1RpdGxlQEBRRUFBWFBFQkRAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1RpdGxlOjpTZXRJZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0SWRAQ1RpdGxlQEBRRUFBWFBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZvbGRlcjo6U2V0TGFuZ3VhZ2UodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0TGFuZ3VhZ2VAQ0ZvbGRlckBAUUVBQVhHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENUaXRsZTo6U2V0TGFuZ3VhZ2UodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0TGFuZ3VhZ2VAQ1RpdGxlQEBRRUFBWEdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NvbGxlY3Rpb246OlNldE1hc3RlckNITShjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZXRNYXN0ZXJDSE1AQ0NvbGxlY3Rpb25AQFFFQUFYUEVCREdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NvbGxlY3Rpb246OlNldE1hc3RlckNITSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0TWFzdGVyQ0hNQENDb2xsZWN0aW9uQEBRRUFBWFBFQkdHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGb2xkZXI6OlNldE5leHRGb2xkZXIoY2xhc3MgQ0ZvbGRlciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TmV4dEZvbGRlckBDRm9sZGVyQEBRRUFBWFBFQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTG9jYXRpb246OlNldE5leHRMb2NhdGlvbihjbGFzcyBDTG9jYXRpb24gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldE5leHRMb2NhdGlvbkBDTG9jYXRpb25AQFFFQUFYUEVBVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENUaXRsZTo6U2V0TmV4dFRpdGxlKGNsYXNzIENUaXRsZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TmV4dFRpdGxlQENUaXRsZUBAUUVBQVhQRUFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZvbGRlcjo6U2V0T3JkZXIodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRPcmRlckBDRm9sZGVyQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZvbGRlcjo6U2V0UGFyZW50KGNsYXNzIENGb2xkZXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFBhcmVudEBDRm9sZGVyQEBRRUFBWFBFQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTG9jYXRpb246OlNldFBhdGgoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UGF0aEBDTG9jYXRpb25AQFFFQUFYUEVCREBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTG9jYXRpb246OlNldFBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFBhdGhAQ0xvY2F0aW9uQEBRRUFBWFBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NvbGxlY3Rpb246OlNldFNhbXBsZUxvY2F0aW9uKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFNhbXBsZUxvY2F0aW9uQENDb2xsZWN0aW9uQEBRRUFBWFBFQkRAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NvbGxlY3Rpb246OlNldFNhbXBsZUxvY2F0aW9uKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRTYW1wbGVMb2NhdGlvbkBDQ29sbGVjdGlvbkBAUUVBQVhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGb2xkZXI6OlNldFRpdGxlKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFRpdGxlQENGb2xkZXJAQFFFQUFYUEVCREBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRm9sZGVyOjpTZXRUaXRsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VGl0bGVAQ0ZvbGRlckBAUUVBQVhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMb2NhdGlvbjo6U2V0VGl0bGUoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VGl0bGVAQ0xvY2F0aW9uQEBRRUFBWFBFQkRAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xvY2F0aW9uOjpTZXRUaXRsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VGl0bGVAQ0xvY2F0aW9uQEBRRUFBWFBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NvbGxlY3Rpb246OlNldFZlcnNpb24odW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRWZXJzaW9uQENDb2xsZWN0aW9uQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xvY2F0aW9uOjpTZXRWb2x1bWUoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Vm9sdW1lQENMb2NhdGlvbkBAUUVBQVhQRUJEQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMb2NhdGlvbjo6U2V0Vm9sdW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWb2x1bWVAQ0xvY2F0aW9uQEBRRUFBWFBFQkdAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgQ0NvbGxlY3Rpb246OldyaXRlRm9sZGVyKGNsYXNzIENGb2xkZXIgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Xcml0ZUZvbGRlckBDQ29sbGVjdGlvbkBAQUVBQUhQRUFQRUFWQ0ZvbGRlckBAQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIENDb2xsZWN0aW9uOjpXcml0ZUZvbGRlcnMoY2xhc3MgQ0ZvbGRlciAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1dyaXRlRm9sZGVyc0BDQ29sbGVjdGlvbkBAQUVBQUhQRUFQRUFWQ0ZvbGRlckBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0ZvbGRlcjo6YklzVmlzYWJsZSh2b2lkKSBfX3B0cjY0DQorP2JJc1Zpc2FibGVAQ0ZvbGRlckBAUUVBQUhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENDb2xsZWN0aW9uOjp3c3NSZXNldE5leHRDb2xOdW0odm9pZCkgX19wdHI2NA0KKz93c3NSZXNldE5leHRDb2xOdW1AQ0NvbGxlY3Rpb25AQEFFQUFYWFoNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9oaWQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaGlkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMmZkYjRjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaGlkLmRlZgpAQCAtMCwwICsxLDUyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEhJRC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSElELkRMTA0KK0VYUE9SVFMNCitIaWREX0ZsdXNoUXVldWUNCitIaWREX0ZyZWVQcmVwYXJzZWREYXRhDQorSGlkRF9HZXRBdHRyaWJ1dGVzDQorSGlkRF9HZXRDb25maWd1cmF0aW9uDQorSGlkRF9HZXRGZWF0dXJlDQorSGlkRF9HZXRIaWRHdWlkDQorSGlkRF9HZXRJbmRleGVkU3RyaW5nDQorSGlkRF9HZXRJbnB1dFJlcG9ydA0KK0hpZERfR2V0TWFudWZhY3R1cmVyU3RyaW5nDQorSGlkRF9HZXRNc0dlbnJlRGVzY3JpcHRvcg0KK0hpZERfR2V0TnVtSW5wdXRCdWZmZXJzDQorSGlkRF9HZXRQaHlzaWNhbERlc2NyaXB0b3INCitIaWREX0dldFByZXBhcnNlZERhdGENCitIaWREX0dldFByb2R1Y3RTdHJpbmcNCitIaWREX0dldFNlcmlhbE51bWJlclN0cmluZw0KK0hpZERfSGVsbG8NCitIaWREX1NldENvbmZpZ3VyYXRpb24NCitIaWREX1NldEZlYXR1cmUNCitIaWREX1NldE51bUlucHV0QnVmZmVycw0KK0hpZERfU2V0T3V0cHV0UmVwb3J0DQorSGlkUF9HZXRCdXR0b25DYXBzDQorSGlkUF9HZXRDYXBzDQorSGlkUF9HZXREYXRhDQorSGlkUF9HZXRFeHRlbmRlZEF0dHJpYnV0ZXMNCitIaWRQX0dldExpbmtDb2xsZWN0aW9uTm9kZXMNCitIaWRQX0dldFNjYWxlZFVzYWdlVmFsdWUNCitIaWRQX0dldFNwZWNpZmljQnV0dG9uQ2Fwcw0KK0hpZFBfR2V0U3BlY2lmaWNWYWx1ZUNhcHMNCitIaWRQX0dldFVzYWdlVmFsdWUNCitIaWRQX0dldFVzYWdlVmFsdWVBcnJheQ0KK0hpZFBfR2V0VXNhZ2VzDQorSGlkUF9HZXRVc2FnZXNFeA0KK0hpZFBfR2V0VmFsdWVDYXBzDQorSGlkUF9Jbml0aWFsaXplUmVwb3J0Rm9ySUQNCitIaWRQX01heERhdGFMaXN0TGVuZ3RoDQorSGlkUF9NYXhVc2FnZUxpc3RMZW5ndGgNCitIaWRQX1NldERhdGENCitIaWRQX1NldFNjYWxlZFVzYWdlVmFsdWUNCitIaWRQX1NldFVzYWdlVmFsdWUNCitIaWRQX1NldFVzYWdlVmFsdWVBcnJheQ0KK0hpZFBfU2V0VXNhZ2VzDQorSGlkUF9UcmFuc2xhdGVVc2FnZXNUb0k4MDQyU2NhbkNvZGVzDQorSGlkUF9VbnNldFVzYWdlcw0KK0hpZFBfVXNhZ2VMaXN0RGlmZmVyZW5jZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2hsaW5rLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2hsaW5rLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZjMwMTMwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaGxpbmsuZGVmCkBAIC0wLDAgKzEsNDAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaGxpbmsuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGhsaW5rLmRsbA0KK0VYUE9SVFMNCitIbGlua0NyZWF0ZUZyb21Nb25pa2VyDQorSGxpbmtDcmVhdGVGcm9tU3RyaW5nDQorSGxpbmtDcmVhdGVGcm9tRGF0YQ0KK0hsaW5rQ3JlYXRlQnJvd3NlQ29udGV4dA0KK0hsaW5rQ2xvbmUNCitIbGlua05hdmlnYXRlVG9TdHJpbmdSZWZlcmVuY2UNCitIbGlua09uTmF2aWdhdGUNCitIbGlua05hdmlnYXRlDQorSGxpbmtVcGRhdGVTdGFja0l0ZW0NCitIbGlua09uUmVuYW1lRG9jdW1lbnQNCitEbGxDYW5VbmxvYWROb3cNCitIbGlua1Jlc29sdmVNb25pa2VyRm9yRGF0YQ0KK0hsaW5rUmVzb2x2ZVN0cmluZ0ZvckRhdGENCitPbGVTYXZlVG9TdHJlYW1FeA0KK0RsbEdldENsYXNzT2JqZWN0DQorSGxpbmtQYXJzZURpc3BsYXlOYW1lDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitIbGlua1F1ZXJ5Q3JlYXRlRnJvbURhdGENCitIbGlua1NldFNwZWNpYWxSZWZlcmVuY2UNCitIbGlua0dldFNwZWNpYWxSZWZlcmVuY2UNCitIbGlua0NyZWF0ZVNob3J0Y3V0DQorSGxpbmtSZXNvbHZlU2hvcnRjdXQNCitIbGlua0lzU2hvcnRjdXQNCitIbGlua1Jlc29sdmVTaG9ydGN1dFRvU3RyaW5nDQorSGxpbmtDcmVhdGVTaG9ydGN1dEZyb21TdHJpbmcNCitIbGlua0dldFZhbHVlRnJvbVBhcmFtcw0KK0hsaW5rQ3JlYXRlU2hvcnRjdXRGcm9tTW9uaWtlcg0KK0hsaW5rUmVzb2x2ZVNob3J0Y3V0VG9Nb25pa2VyDQorSGxpbmtUcmFuc2xhdGVVUkwNCitIbGlua0NyZWF0ZUV4dGVuc2lvblNlcnZpY2VzDQorSGxpbmtQcmVwcm9jZXNzTW9uaWtlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9obW1hcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaG1tYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZDVhMWY1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaG1tYXBpLmRlZgpAQCAtMCwwICsxLDM1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEhNTUFQSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSE1NQVBJLmRsbA0KK0VYUE9SVFMNCitNQVBJRnJlZUJ1ZmZlcg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK01BUElTZW5kRG9jdW1lbnRzDQorTUFQSUxvZ29uDQorTUFQSUxvZ29mZg0KK01BUElTZW5kTWFpbA0KK01BUElTYXZlTWFpbA0KK01BUElSZWFkTWFpbA0KK01BUElGaW5kTmV4dA0KK01BUElEZWxldGVNYWlsDQorTUFQSUFkZHJlc3MNCitNQVBJRGV0YWlscw0KK01BUElSZXNvbHZlTmFtZQ0KK0JNQVBJU2VuZE1haWwNCitCTUFQSVNhdmVNYWlsDQorQk1BUElSZWFkTWFpbA0KK0JNQVBJR2V0UmVhZE1haWwNCitCTUFQSUZpbmROZXh0DQorQk1BUElBZGRyZXNzDQorQk1BUElHZXRBZGRyZXNzDQorQk1BUElEZXRhaWxzDQorQk1BUElSZXNvbHZlTmFtZQ0KK01haWxUb1Byb3RvY29sSGFuZGxlcg0KK09wZW5JbmJveEhhbmRsZXINCitBZGRTZXJ2aWNlDQorUmVtb3ZlU2VydmljZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2huZXRjZmcuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaG5ldGNmZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmI4MjQwNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2huZXRjZmcuZGVmCkBAIC0wLDAgKzEsNTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSE5ldENmZy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSE5ldENmZy5kbGwNCitFWFBPUlRTDQorSE5ldERlbGV0ZVJhc0Nvbm5lY3Rpb24NCitITmV0RnJlZVNoYXJpbmdTZXJ2aWNlc1BhZ2UNCitITmV0R2V0U2hhcmluZ1NlcnZpY2VzUGFnZQ0KK1dpbkJvbUNvbmZpZ3VyZVdpbmRvd3NGaXJld2FsbA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorSE5ldEZyZWVGaXJld2FsbExvZ2dpbmdTZXR0aW5ncw0KK0hOZXRHZXRGaXJld2FsbFNldHRpbmdzUGFnZQ0KK0hOZXRHZXRTaGFyZUFuZEJyaWRnZVNldHRpbmdzDQorSE5ldFNldFNoYXJlQW5kQnJpZGdlU2V0dGluZ3MNCitITmV0U2hhcmVkQWNjZXNzU2V0dGluZ3NEbGcNCitITmV0U2hhcmluZ0FuZEZpcmV3YWxsU2V0dGluZ3NEbGcNCitJY2ZDaGFuZ2VOb3RpZmljYXRpb25DcmVhdGUNCitJY2ZDaGFuZ2VOb3RpZmljYXRpb25EZXN0cm95DQorSWNmQ2hlY2tBcHBBdXRob3JpemF0aW9uDQorSWNmQ2xvc2VEeW5hbWljRndQb3J0DQorSWNmQ29ubmVjdA0KK0ljZkRpc2Nvbm5lY3QNCitJY2ZGcmVlQWRhcHRlcnMNCitJY2ZGcmVlRHluYW1pY0Z3UG9ydHMNCitJY2ZGcmVlUHJvZmlsZQ0KK0ljZkZyZWVTdHJpbmcNCitJY2ZGcmVlVGlja2V0cw0KK0ljZkdldEFkYXB0ZXJzDQorSWNmR2V0Q3VycmVudFByb2ZpbGVUeXBlDQorSWNmR2V0RHluYW1pY0Z3UG9ydHMNCitJY2ZHZXRPcGVyYXRpb25hbE1vZGUNCitJY2ZHZXRQcm9maWxlDQorSWNmR2V0VGlja2V0cw0KK0ljZklzSWNtcFR5cGVBbGxvd2VkDQorSWNmSXNQb3J0QWxsb3dlZA0KK0ljZk9wZW5EeW5hbWljRndQb3J0DQorSWNmT3BlbkR5bmFtaWNGd1BvcnRXaXRob3V0U29ja2V0DQorSWNmT3BlbkZpbGVTaGFyaW5nUG9ydHMNCitJY2ZSZWZyZXNoUG9saWN5DQorSWNmUmVtb3ZlRGlzYWJsZWRBdXRob3JpemVkQXBwDQorSWNmU2V0UHJvZmlsZQ0KK0ljZlNldFNlcnZpY2VQZXJtaXNzaW9uDQorSWNmU3ViTmV0c0dldFNjb3BlDQorSWNmU3ViTmV0c0lzU3RyaW5nVmFsaWQNCitJY2ZTdWJOZXRzVG9TdHJpbmcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9obmV0bW9uLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2huZXRtb24uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMyMWZkNzYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9obmV0bW9uLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaG5ldG1vbi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaG5ldG1vbi5kbGwNCitFWFBPUlRTDQorSW5pdEhlbHBlckRsbA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2huZXR3aXouZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaG5ldHdpei5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2NlYjZkYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2huZXR3aXouZGVmCkBAIC0wLDAgKzEsMTQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSE5FVFdJWi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSE5FVFdJWi5kbGwNCitFWFBPUlRTDQorSG9tZU5ldFdpemFyZFJ1bkRsbA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsTWFpbg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2hvc3RtaWIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaG9zdG1pYi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDY5YWQ5OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2hvc3RtaWIuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaG9zdG1pYi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaG9zdG1pYi5kbGwNCitFWFBPUlRTDQorU25tcEV4dGVuc2lvbkluaXQNCitTbm1wRXh0ZW5zaW9uUXVlcnkNCitTbm1wRXh0ZW5zaW9uVHJhcA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2hvdHBsdWcuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaG90cGx1Zy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTViMmFiMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2hvdHBsdWcuZGVmCkBAIC0wLDAgKzEsMjEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaG90cGx1Zy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaG90cGx1Zy5ETEwNCitFWFBPUlRTDQorQ1BsQXBwbGV0DQorSG90UGx1Z0NoaWxkV2l0aEludmFsaWRJZFcNCitIb3RQbHVnRHJpdmVyQmxvY2tlZFcNCitIb3RQbHVnRWplY3RWZXRvZWRXDQorSG90UGx1Z0hpYmVybmF0ZVZldG9lZFcNCitIb3RQbHVnUmVtb3ZhbFZldG9lZFcNCitIb3RQbHVnU2FmZVJlbW92YWxOb3RpZmljYXRpb25XDQorSG90UGx1Z1N0YW5kYnlWZXRvZWRXDQorSG90UGx1Z1dhcm1FamVjdFZldG9lZFcNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2h0aWNvbnMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaHRpY29ucy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzhhNTZhNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2h0aWNvbnMuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSFRJQ09OUy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSFRJQ09OUy5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9odHJuX2ppcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9odHJuX2ppcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGY0NjlkMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2h0cm5famlzLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEhUUk5fSklTLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBIVFJOX0pJUy5kbGwNCitFWFBPUlRTDQordHJhbnNDaGFySW4NCit0cmFuc0NoYXJPdXQNCit0cmFuc0NyZWF0ZUhhbmRsZQ0KK3RyYW5zRGVzdHJveUhhbmRsZQ0KK3RyYW5zRG9EaWFsb2cNCit0cmFuc0luaXRIYW5kbGUNCit0cmFuc0xvYWRIYW5kbGUNCit0cmFuc1NhdmVIYW5kbGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9odHRwYXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2h0dHBhcGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI2ZTM5N2MKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9odHRwYXBpLmRlZgpAQCAtMCwwICsxLDUzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEhUVFBBUEkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEhUVFBBUEkuZGxsDQorRVhQT1JUUw0KK0h0dHBBZGRGcmFnbWVudFRvQ2FjaGUNCitIdHRwQWRkVXJsDQorSHR0cEFkZFVybFRvQ29uZmlnR3JvdXANCitIdHRwQ3JlYXRlQXBwUG9vbA0KK0h0dHBDcmVhdGVDb25maWdHcm91cA0KK0h0dHBDcmVhdGVGaWx0ZXINCitIdHRwQ3JlYXRlSHR0cEhhbmRsZQ0KK0h0dHBEZWxldGVDb25maWdHcm91cA0KK0h0dHBEZWxldGVTZXJ2aWNlQ29uZmlndXJhdGlvbg0KK0h0dHBGaWx0ZXJBY2NlcHQNCitIdHRwRmlsdGVyQXBwUmVhZA0KK0h0dHBGaWx0ZXJBcHBXcml0ZQ0KK0h0dHBGaWx0ZXJBcHBXcml0ZUFuZFJhd1JlYWQNCitIdHRwRmlsdGVyQ2xvc2UNCitIdHRwRmlsdGVyUmF3UmVhZA0KK0h0dHBGaWx0ZXJSYXdXcml0ZQ0KK0h0dHBGaWx0ZXJSYXdXcml0ZUFuZEFwcFJlYWQNCitIdHRwRmx1c2hSZXNwb25zZUNhY2hlDQorSHR0cEdldENvdW50ZXJzDQorSHR0cEluaXRpYWxpemUNCitIdHRwT3BlbkFwcFBvb2wNCitIdHRwT3BlbkNvbnRyb2xDaGFubmVsDQorSHR0cE9wZW5GaWx0ZXINCitIdHRwUXVlcnlBcHBQb29sSW5mb3JtYXRpb24NCitIdHRwUXVlcnlDb25maWdHcm91cEluZm9ybWF0aW9uDQorSHR0cFF1ZXJ5Q29udHJvbENoYW5uZWxJbmZvcm1hdGlvbg0KK0h0dHBRdWVyeVNlcnZpY2VDb25maWd1cmF0aW9uDQorSHR0cFJlYWRGcmFnbWVudEZyb21DYWNoZQ0KK0h0dHBSZWNlaXZlQ2xpZW50Q2VydGlmaWNhdGUNCitIdHRwUmVjZWl2ZUh0dHBSZXF1ZXN0DQorSHR0cFJlY2VpdmVSZXF1ZXN0RW50aXR5Qm9keQ0KK0h0dHBSZW1vdmVBbGxVcmxzRnJvbUNvbmZpZ0dyb3VwDQorSHR0cFJlbW92ZVVybA0KK0h0dHBSZW1vdmVVcmxGcm9tQ29uZmlnR3JvdXANCitIdHRwU2VuZEh0dHBSZXNwb25zZQ0KK0h0dHBTZW5kUmVzcG9uc2VFbnRpdHlCb2R5DQorSHR0cFNldEFwcFBvb2xJbmZvcm1hdGlvbg0KK0h0dHBTZXRDb25maWdHcm91cEluZm9ybWF0aW9uDQorSHR0cFNldENvbnRyb2xDaGFubmVsSW5mb3JtYXRpb24NCitIdHRwU2V0U2VydmljZUNvbmZpZ3VyYXRpb24NCitIdHRwU2h1dGRvd25BcHBQb29sDQorSHR0cFNodXRkb3duRmlsdGVyDQorSHR0cFRlcm1pbmF0ZQ0KK0h0dHBXYWl0Rm9yRGVtYW5kU3RhcnQNCitIdHRwV2FpdEZvckRpc2Nvbm5lY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9odHRwZXh0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2h0dHBleHQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdjZjJkOTYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9odHRwZXh0LmRlZgpAQCAtMCwwICsxLDE1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEhUVFBFWFQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEhUVFBFWFQuZGxsDQorRVhQT1JUUw0KK0dldEV4dGVuc2lvblZlcnNpb24NCitIdHRwRXh0ZW5zaW9uUHJvYw0KK1Rlcm1pbmF0ZUV4dGVuc2lvbg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaHR0cG1pYi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9odHRwbWliLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wOGMwODczCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaHR0cG1pYi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBIVFRQTUlCLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBIVFRQTUlCLmRsbA0KK0VYUE9SVFMNCitEbGxMaWJNYWluDQorU25tcEV4dGVuc2lvbkluaXQNCitTbm1wRXh0ZW5zaW9uUXVlcnkNCitTbm1wRXh0ZW5zaW9uVHJhcA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2h0dHBvZGJjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2h0dHBvZGJjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMThkNmYxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaHR0cG9kYmMuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSFRUUE9EQkMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEhUVFBPREJDLmRsbA0KK0VYUE9SVFMNCitHZXRFeHRlbnNpb25WZXJzaW9uDQorSHR0cEV4dGVuc2lvblByb2MNCitUZXJtaW5hdGVFeHRlbnNpb24NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9odHVpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2h0dWkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQwNTI3ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9odHVpLmRlZgpAQCAtMCwwICsxLDE1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGh0VUkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGh0VUkuZGxsDQorRVhQT1JUUw0KK0RsbE1haW4NCitIVFVJX0NvbG9yQWRqdXN0bWVudA0KK0hUVUlfQ29sb3JBZGp1c3RtZW50QQ0KK0hUVUlfQ29sb3JBZGp1c3RtZW50Vw0KK0hUVUlfRGV2aWNlQ29sb3JBZGp1c3RtZW50DQorSFRVSV9EZXZpY2VDb2xvckFkanVzdG1lbnRBDQorSFRVSV9EZXZpY2VDb2xvckFkanVzdG1lbnRXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaHlwZXJ0cm0uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaHlwZXJ0cm0uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVhZjgyYzQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9oeXBlcnRybS5kZWYKQEAgLTAsMCArMSwxNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBIWVBFUlRSTS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSFlQRVJUUk0uZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorSW5pdEluc3RhbmNlDQorTWVzc2FnZUxvb3ANCitzZXNzUXVlcnlTeXNGaWxlSGRsDQorc2Vzc1F1ZXJ5VHJhbnNsYXRlSGRsDQorc2ZHZXRTZXNzaW9uSXRlbQ0KK3NmUHV0U2Vzc2lvbkl0ZW0NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pYXNhY2N0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lhc2FjY3QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhkZGU3MjIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pYXNhY2N0LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGlhc2FjY3QuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlhc2FjY3QuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaWFzYWRzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lhc2Fkcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDE0OWQxNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lhc2Fkcy5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpYXNhZHMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlhc2Fkcy5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pYXNobHByLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lhc2hscHIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgyZjZlMDIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pYXNobHByLmRlZgpAQCAtMCwwICsxLDIxIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGlhc2hscHIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlhc2hscHIuZGxsDQorRVhQT1JUUw0KK0FsbG9jYXRlQXR0cmlidXRlcw0KK0NvbmZpZ3VyZUlhcw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorRG9SZXF1ZXN0DQorRnJlZUF0dHJpYnV0ZXMNCitJbml0aWFsaXplSWFzDQorTWVtQWxsb2NJYXMNCitNZW1GcmVlSWFzDQorTWVtUmVhbGxvY0lhcw0KK1NodXRkb3duSWFzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaWFzbmFwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lhc25hcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzExNDg5YgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lhc25hcC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpYXNuYXAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlhc25hcC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pYXNwb2xjeS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pYXNwb2xjeS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmVjOWJmNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lhc3BvbGN5LmRlZgpAQCAtMCwwICsxLDE3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGlhc3BvbGN5LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpYXNwb2xjeS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitJQVNBdHRyaWJ1dGVBZGRSZWYNCitJQVNBdHRyaWJ1dGVBbGxvYw0KK0lBU0F0dHJpYnV0ZUFuc2lBbGxvYw0KK0lBU0F0dHJpYnV0ZVJlbGVhc2UNCitJQVNBdHRyaWJ1dGVVbmljb2RlQWxsb2MNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pYXNyYWQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaWFzcmFkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZDk5ODdmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaWFzcmFkLmRlZgpAQCAtMCwwICsxLDIyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGlhc3JhZC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaWFzcmFkLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFZTQUZpbHRlcjo6aW5pdGlhbGl6ZSh2b2lkKSBfX3B0cjY0DQorP2luaXRpYWxpemVAVlNBRmlsdGVyQEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBWU0FGaWx0ZXI6OnJhZGl1c0Zyb21JQVMoc3RydWN0IElBdHRyaWJ1dGVzUmF3ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9yYWRpdXNGcm9tSUFTQFZTQUZpbHRlckBAUUVCQUpQRUFVSUF0dHJpYnV0ZXNSYXdAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBWU0FGaWx0ZXI6OnJhZGl1c1RvSUFTKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsY2xhc3MgSUFTVEw6OklBU0F0dHJpYnV0ZVZlY3RvciAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/cmFkaXVzVG9JQVNAVlNBRmlsdGVyQEBRRUJBSlBFQUVLQUVBVklBU0F0dHJpYnV0ZVZlY3RvckBJQVNUTEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFZTQUZpbHRlcjo6cmFkaXVzVG9JQVMoc3RydWN0IElBdHRyaWJ1dGVzUmF3ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9yYWRpdXNUb0lBU0BWU0FGaWx0ZXJAQFFFQkFKUEVBVUlBdHRyaWJ1dGVzUmF3QEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVlNBRmlsdGVyOjpzaHV0ZG93bih2b2lkKSBfX3B0cjY0DQorP3NodXRkb3duQFZTQUZpbHRlckBAUUVBQUpYWg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaWFzc2FtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lhc3NhbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTNmMTRkMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lhc3NhbS5kZWYKQEAgLTAsMCArMSwxNyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpYXNzYW0uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlhc3NhbS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitJQVNQYXJtc0ZyZWVVc2VyUGFybXMNCitJQVNQYXJtc1F1ZXJ5UmFzVXNlcjANCitJQVNQYXJtc1F1ZXJ5VXNlclByb3BlcnR5DQorSUFTUGFybXNTZXRSYXNVc2VyMA0KK0lBU1Bhcm1zU2V0VXNlclByb3BlcnR5DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaWFzc2RvLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lhc3Nkby5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWJmNzA4MgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lhc3Nkby5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpYXNzZG8uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlhc3Nkby5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pYXNzdmNzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lhc3N2Y3MuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUwNjA2ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pYXNzdmNzLmRlZgpAQCAtMCwwICsxLDMwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGlhc3N2Y3MuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlhc3N2Y3MuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorSUFTQWRsZXIzMg0KK0lBU0FsbG9jYXRlVW5pcXVlSUQNCitJQVNHZXREaWN0aW9uYXJ5DQorSUFTR2V0SG9zdEJ5TmFtZQ0KK0lBU0dldExvY2FsRGljdGlvbmFyeQ0KK0lBU0dldFByb2R1Y3RMaW1pdHMNCitJQVNHbG9iYWxMb2NrDQorSUFTR2xvYmFsVW5sb2NrDQorSUFTSW5pdGlhbGl6ZQ0KK0lBU1JhZGl1c0NyeXB0DQorSUFTUmVnaXN0ZXJDb21wb25lbnQNCitJQVNSZXBvcnRFdmVudA0KK0lBU1JlcG9ydExpY2Vuc2VWaW9sYXRpb24NCitJQVNSZXF1ZXN0VGhyZWFkDQorSUFTU2V0TWF4TnVtYmVyT2ZUaHJlYWRzDQorSUFTU2V0TWF4VGhyZWFkSWRsZQ0KK0lBU1VuaW5pdGlhbGl6ZQ0KK0lBU1ZhcmlhbnRDaGFuZ2VUeXBlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaWNhYXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2ljYWFwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTdhNDM2ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2ljYWFwaS5kZWYKQEAgLTAsMCArMSw0MiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJQ0FBUEkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElDQUFQSS5kbGwNCitFWFBPUlRTDQorSWNhQ2RDcmVhdGVUaHJlYWQNCitJY2FDZElvQ29udHJvbA0KK0ljYUNkV2FpdEZvck11bHRpcGxlT2JqZWN0cw0KK0ljYUNkV2FpdEZvclNpbmdsZU9iamVjdA0KK0ljYUNoYW5uZWxDbG9zZQ0KK0ljYUNoYW5uZWxJb0NvbnRyb2wNCitJY2FDaGFubmVsT3Blbg0KK0ljYUNoYW5uZWxUcmFjZQ0KK0ljYUNsb3NlDQorSWNhSW9Db250cm9sDQorSWNhTWVtb3J5QWxsb2NhdGUNCitJY2FNZW1vcnlGcmVlDQorSWNhT3Blbg0KK0ljYVB1c2hDb25zb2xlU3RhY2sNCitJY2FTdGFja0NhbGxiYWNrDQorSWNhU3RhY2tDbG9zZQ0KK0ljYVN0YWNrQ29ubmVjdGlvbkFjY2VwdA0KK0ljYVN0YWNrQ29ubmVjdGlvbkNsb3NlDQorSWNhU3RhY2tDb25uZWN0aW9uUmVxdWVzdA0KK0ljYVN0YWNrQ29ubmVjdGlvbldhaXQNCitJY2FTdGFja0NyZWF0ZVNoYWRvd0VuZHBvaW50DQorSWNhU3RhY2tEaXNjb25uZWN0DQorSWNhU3RhY2tJb0NvbnRyb2wNCitJY2FTdGFja0lvQ29udHJvbE5vQ29ubkxvY2sNCitJY2FTdGFja09wZW4NCitJY2FTdGFja1F1ZXJ5TG9jYWxBZGRyZXNzDQorSWNhU3RhY2tRdWVyeVN0YXRlDQorSWNhU3RhY2tSZWNvbm5lY3QNCitJY2FTdGFja1Rlcm1pbmF0ZQ0KK0ljYVN0YWNrVHJhY2UNCitJY2FTdGFja1VubG9jaw0KK0ljYVN5c3RlbVRyYWNlDQorSWNhVHJhY2UNCitfSWNhU3RhY2tJb0NvbnRyb2wNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pY2ZnbnQ1LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2ljZmdudDUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVlYjlkYmYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pY2ZnbnQ1LmRlZgpAQCAtMCwwICsxLDIzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElDRkdOVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSUNGR05ULmRsbA0KK0VYUE9SVFMNCitJY2ZnSW5zdGFsbE1vZGVtDQorSWNmZ05lZWRNb2RlbQ0KK0ljZmdTZXRJbnN0YWxsU291cmNlUGF0aA0KK0luZXRTZXRBdXRvZGlhbA0KK0luZXRTZXRBdXRvZGlhbEFkZHJlc3MNCitJY2ZnR2V0TGFzdEluc3RhbGxFcnJvclRleHQNCitJY2ZnSW5zdGFsbEluZXRDb21wb25lbnRzDQorSWNmZ0lzRmlsZVNoYXJpbmdUdXJuZWRPbg0KK0ljZmdJc0dsb2JhbEROUw0KK0ljZmdOZWVkSW5ldENvbXBvbmVudHMNCitJY2ZnUmVtb3ZlR2xvYmFsRE5TDQorSWNmZ1N0YXJ0U2VydmljZXMNCitJY2ZnVHVybk9mZkZpbGVTaGFyaW5nDQorSW5ldEdldEF1dG9kaWFsDQorSW5ldEdldFN1cHBvcnRlZFBsYXRmb3JtDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaWNtMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaWNtMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY5ZGFiMDYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pY20zMi5kZWYKQEAgLTAsMCArMSwyOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJQ00zMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSUNNMzIuZGxsDQorRVhQT1JUUw0KK0NNQ2hlY2tDb2xvcnMNCitDTUNoZWNrQ29sb3JzSW5HYW11dA0KK0NNQ2hlY2tSR0JzDQorQ01DcmVhdGVEZXZpY2VMaW5rUHJvZmlsZQ0KK0NNQ3JlYXRlTXVsdGlQcm9maWxlVHJhbnNmb3JtDQorQ01DcmVhdGVQcm9maWxlDQorQ01DcmVhdGVQcm9maWxlVw0KK0NNQ3JlYXRlVHJhbnNmb3JtDQorQ01DcmVhdGVUcmFuc2Zvcm1FeHQNCitDTUNyZWF0ZVRyYW5zZm9ybUV4dFcNCitDTUNyZWF0ZVRyYW5zZm9ybVcNCitDTURlbGV0ZVRyYW5zZm9ybQ0KK0NNR2V0SW5mbw0KK0NNSXNQcm9maWxlVmFsaWQNCitDTVRyYW5zbGF0ZUNvbG9ycw0KK0NNVHJhbnNsYXRlUkdCDQorQ01UcmFuc2xhdGVSR0JzDQorQ01UcmFuc2xhdGVSR0JzRXh0DQorQ01Db252ZXJ0Q29sb3JOYW1lVG9JbmRleA0KK0NNQ29udmVydEluZGV4VG9Db2xvck5hbWUNCitDTUdldE5hbWVkUHJvZmlsZUluZm8NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pY21wLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2ljbXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIzYTMzZWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pY21wLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGljbXAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGljbXAuZGxsDQorRVhQT1JUUw0KK0ljbXBDbG9zZUhhbmRsZQ0KK0ljbXBDcmVhdGVGaWxlDQorSWNtcFBhcnNlUmVwbGllcw0KK0ljbXBTZW5kRWNobw0KK0ljbXBTZW5kRWNobzINCitkb19lY2hvX3JlcA0KK2RvX2VjaG9fcmVxDQorcmVnaXN0ZXJfaWNtcA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2ljbXVpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2ljbXVpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xYzNlYWJiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaWNtdWkuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSUNNVUkuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElDTVVJLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK1NldHVwQ29sb3JNYXRjaGluZ0ENCitTZXR1cENvbG9yTWF0Y2hpbmdXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaWN3Y29ubi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pY3djb25uLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYTFlYjZjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaWN3Y29ubi5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJQ1dDT05OLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJQ1dDT05OLmRsbA0KK0VYUE9SVFMNCitHZXRJQ1dDT05OVmVyc2lvbg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaWN3ZGlhbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pY3dkaWFsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YmQ4ODUwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaWN3ZGlhbC5kZWYKQEAgLTAsMCArMSwxNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBVVRPRElBTC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQVVUT0RJQUwuZGxsDQorRVhQT1JUUw0KK0F1dG9EaWFsSGFuZGxlcg0KK0F1dG9EaWFsSW5pdA0KK1Jhc1NldEVudHJ5UHJvcGVydGllc1NjcmlwdFBhdGNoDQorRGlhbGluZ0Rvd25sb2FkRGlhbG9nDQorRGlhbGluZ0Vycm9yRGlhbG9nDQorSUNXR2V0UmFzRW50cnkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pY3dkbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pY3dkbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTg3NGNjNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2ljd2RsLmRlZgpAQCAtMCwwICsxLDE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGljd2RsLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpY3dkbC5kbGwNCitFWFBPUlRTDQorRG93bkxvYWRDYW5jZWwNCitEb3duTG9hZENsb3NlDQorRG93bkxvYWRFeGVjdXRlDQorRG93bkxvYWRJbml0DQorRG93bkxvYWRQcm9jZXNzDQorRG93bkxvYWRTZXRTdGF0dXNDYWxsYmFjaw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2ljd2hlbHAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaWN3aGVscC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjg5ZGVjMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2ljd2hlbHAuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaWN3aGVscC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaWN3aGVscC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pY3dwaGJrLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2ljd3BoYmsuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJiMjFhYjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pY3dwaGJrLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGljd3BoYmsuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGljd3BoYmsuZGxsDQorRVhQT1JUUw0KK0dldFN1cHBvcnROdW1iZXJzDQorUGhia0dlbmVyaWNEbGdQcm9jDQorUGhvbmVCb29rRGlzcGxheVNpZ25VcE51bWJlcnMNCitQaG9uZUJvb2tHZXRDYW5vbmljYWwNCitQaG9uZUJvb2tMb2FkDQorUGhvbmVCb29rTWVyZ2VDaGFuZ2VzDQorUGhvbmVCb29rU3VnZ2VzdE51bWJlcnMNCitQaG9uZUJvb2tVbmxvYWQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pY3d1dGlsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2ljd3V0aWwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYwYzNjMGMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pY3d1dGlsLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElDV1VUSUwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElDV1VUSUwuZGxsDQorRVhQT1JUUw0KK1JlZ2lzdGVyU2VydmVyDQorVVJMQXBwZW5kUXVlcnlQYWlyDQorVVJMRW5jb2RlDQorVW5yZWdpc3RlclNlcnZlcg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaWRxLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lkcS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTBlN2RhYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lkcS5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJRFEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElEUS5kbGwNCitFWFBPUlRTDQorR2V0RXh0ZW5zaW9uVmVyc2lvbg0KK0h0dHBFeHRlbnNpb25Qcm9jDQorVGVybWluYXRlRXh0ZW5zaW9uDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaWVha2VuZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pZWFrZW5nLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YjFmNjk1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaWVha2VuZy5kZWYKQEAgLTAsMCArMSwxNTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSUVBS0VORy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSUVBS0VORy5kbGwNCitFWFBPUlRTDQorQWRkQURNSXRlbUENCitBZGRBRE1JdGVtVw0KK0JUb29sYmFyX0VkaXQNCitCVG9vbGJhcl9Jbml0QQ0KK0JUb29sYmFyX0luaXRXDQorQlRvb2xiYXJfUmVtb3ZlDQorQlRvb2xiYXJfU2F2ZUENCitCVG9vbGJhcl9TYXZlVw0KK0Jyb3dzZUZvckZpbGVBDQorQnJvd3NlRm9yRmlsZVcNCitCcm93c2VGb3JGb2xkZXJBDQorQnJvd3NlRm9yRm9sZGVyVw0KK0J1aWxkUGFsZXR0ZQ0KK0NhbkRlbGV0ZUFETQ0KK0NoZWNrRmllbGQNCitDaGVja0ZvckR1cEtleXMNCitDaGVja1ZlckENCitDaGVja1ZlclcNCitDb3B5QW5pbUJtcEENCitDb3B5QW5pbUJtcFcNCitDb3B5SHR0RmlsZUENCitDb3B5SHR0RmlsZVcNCitDb3B5TG9nb0JtcEENCitDb3B5TG9nb0JtcFcNCitDb3B5V2FsbFBhcGVyQQ0KK0NvcHlXYWxsUGFwZXJXDQorQ3JlYXRlQURNV2luZG93DQorRGVsZXRlQURNSXRlbUENCitEZWxldGVBRE1JdGVtVw0KK0RlbGV0ZUFETUl0ZW1zQQ0KK0RlbGV0ZUFETUl0ZW1zVw0KK0RlbGV0ZUZhdm9yaXRlQQ0KK0RlbGV0ZUZhdm9yaXRlVw0KK0Rlc3Ryb3lBRE1XaW5kb3cNCitEaXNwbGF5QURNSXRlbQ0KK0RvUmVib290DQorRW5jb2RlU2lnbmF0dXJlQQ0KK0VuY29kZVNpZ25hdHVyZVcNCitFcnJvck1lc3NhZ2VCb3gNCitFeHBvcnRGYXZvcml0ZXNBDQorRXhwb3J0RmF2b3JpdGVzVw0KK0V4cG9ydFF1aWNrTGlua3NBDQorRXhwb3J0UXVpY2tMaW5rc1cNCitFeHBvcnRSZWdLZXkySW5mQQ0KK0V4cG9ydFJlZ0tleTJJbmZXDQorRXhwb3J0UmVnVHJlZTJJbmZBDQorRXhwb3J0UmVnVHJlZTJJbmZXDQorRXhwb3J0UmVnVmFsdWUySW5mQQ0KK0V4cG9ydFJlZ1ZhbHVlMkluZlcNCitHZW5lcmF0ZU5ld1ZlcnNpb25TdHJBDQorR2VuZXJhdGVOZXdWZXJzaW9uU3RyVw0KK0dldEFkbUZpbGVMaXN0QQ0KK0dldEFkbUZpbGVMaXN0Vw0KK0dldEFkbVdpbmRvd0hhbmRsZQ0KK0dldEJhc2VGaWxlTmFtZUENCitHZXRCYXNlRmlsZU5hbWVXDQorR2V0RmF2b3JpdGVVcmxBDQorR2V0RmF2b3JpdGVVcmxXDQorR2V0RmF2b3JpdGVzSW5mb1RpcEENCitHZXRGYXZvcml0ZXNJbmZvVGlwVw0KK0dldEZhdm9yaXRlc01heE51bWJlcg0KK0dldEZhdm9yaXRlc051bWJlcg0KK0dldFByb3h5RGxnQQ0KK0dldFByb3h5RGxnVw0KK0ltcG9ydEFETUZpbGVBDQorSW1wb3J0QURNRmlsZVcNCitJbXBvcnRBRFRJbmZvQQ0KK0ltcG9ydEFEVEluZm9XDQorSW1wb3J0QXV0aENvZGVBDQorSW1wb3J0QXV0aENvZGVXDQorSW1wb3J0Q29ubmVjdFNldEENCitJbXBvcnRDb25uZWN0U2V0Vw0KK0ltcG9ydEZhdm9yaXRlc0ENCitJbXBvcnRGYXZvcml0ZXNDbWRBDQorSW1wb3J0RmF2b3JpdGVzQ21kVw0KK0ltcG9ydEZhdm9yaXRlc1cNCitJbXBvcnRMREFQQml0bWFwQQ0KK0ltcG9ydExEQVBCaXRtYXBXDQorSW1wb3J0T0VJbmZvQQ0KK0ltcG9ydE9FSW5mb1cNCitJbXBvcnRQcm9ncmFtc0ENCitJbXBvcnRQcm9ncmFtc1cNCitJbXBvcnRRdWlja0xpbmtzQQ0KK0ltcG9ydFF1aWNrTGlua3NXDQorSW1wb3J0UmF0aW5nc0ENCitJbXBvcnRSYXRpbmdzVw0KK0ltcG9ydFNpdGVDZXJ0QQ0KK0ltcG9ydFNpdGVDZXJ0Vw0KK0ltcG9ydFRvb2xiYXJJbmZvQQ0KK0ltcG9ydFRvb2xiYXJJbmZvVw0KK0ltcG9ydFpvbmVzQQ0KK0ltcG9ydFpvbmVzVw0KK0luaXRpYWxpemVTdGFydFNlYXJjaEENCitJbml0aWFsaXplU3RhcnRTZWFyY2hXDQorSXNBRE1GaWxlVmlzaWJsZUENCitJc0FETUZpbGVWaXNpYmxlVw0KK0lzQW5pbUJpdG1hcEZpbGVWYWxpZEENCitJc0FuaW1CaXRtYXBGaWxlVmFsaWRXDQorSXNCaXRtYXBGaWxlVmFsaWRBDQorSXNCaXRtYXBGaWxlVmFsaWRXDQorSXNGYXZvcml0ZUl0ZW0NCitMb2FkQURNRmlsZXNBDQorTG9hZEFETUZpbGVzVw0KK01pZ3JhdGVGYXZvcml0ZXNBDQorTWlncmF0ZUZhdm9yaXRlc1cNCitNaWdyYXRlVG9PbGRGYXZvcml0ZXNBDQorTWlncmF0ZVRvT2xkRmF2b3JpdGVzVw0KK01vZGlmeUF1dGhDb2RlDQorTW9kaWZ5RmF2b3JpdGVBDQorTW9kaWZ5RmF2b3JpdGVXDQorTW9kaWZ5UmF0aW5ncw0KK01vZGlmeVNpdGVDZXJ0DQorTW9kaWZ5Wm9uZXMNCitNb3ZlQURNV2luZG93DQorTW92ZURvd25GYXZvcml0ZQ0KK01vdmVVcEZhdm9yaXRlDQorTmV3Rm9sZGVyDQorTmV3VXJsQQ0KK05ld1VybFcNCitQcm9jZXNzRmF2U2VsQ2hhbmdlDQorUmVzZXRBZG1GaWxlc0ENCitSZXNldEFkbUZpbGVzVw0KK1NhdmVBRE1JdGVtDQorU2F2ZUFkbUZpbGVzQQ0KK1NhdmVBZG1GaWxlc1cNCitTYXZlU3RhcnRTZWFyY2hBDQorU2F2ZVN0YXJ0U2VhcmNoVw0KK1NlbGVjdEFETUl0ZW0NCitTZXRBRE1XaW5kb3dUZXh0QQ0KK1NldEFETVdpbmRvd1RleHRXDQorU2V0TEJXaWR0aA0KK1NldE9yQ2xlYXJWZXJzaW9uSW5mb0ENCitTZXRPckNsZWFyVmVyc2lvbkluZm9XDQorU2V0UHJveHlEbGdBDQorU2V0UHJveHlEbGdXDQorU2hvd0FETVdpbmRvdw0KK1Nob3dCaXRtYXBBDQorU2hvd0JpdG1hcFcNCitTaG93RGVza0NwbA0KK1Nob3dJbmV0Y3BsDQorU2lnbkZpbGVBDQorU2lnbkZpbGVXDQorVGVzdFVSTEENCitUZXN0VVJMVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2llYWtzaWUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaWVha3NpZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjZhYmRkZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2llYWtzaWUuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSUVBS1NJRS5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSUVBS1NJRS5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pZWRrY3MzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pZWRrY3MzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmUxZGQyZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2llZGtjczMyLmRlZgpAQCAtMCwwICsxLDI2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGllZGtjczMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpZWRrY3MzMi5kbGwNCitFWFBPUlRTDQorQnJhbmRFeHRlcm5hbA0KK0Nsb3NlUkFTQ29ubmVjdGlvbnMNCitHZW5lcmF0ZUdyb3VwUG9saWN5DQorUHJvY2Vzc0dyb3VwUG9saWN5DQorUHJvY2Vzc0dyb3VwUG9saWN5RXgNCitQcm9jZXNzR3JvdXBQb2xpY3lGb3Jab25lTWFwDQorQnJhbmRDbGVhbkluc3RhbGxTdHVicw0KK0JyYW5kSUNXDQorQnJhbmRJQ1cyDQorQnJhbmRJRTQNCitCcmFuZEluZkFuZE91dGxvb2tFeHByZXNzDQorQnJhbmRJbnRlcm5ldEV4cGxvcmVyDQorQnJhbmRJbnRyYQ0KK0JyYW5kTWUNCitDbGVhcg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0ludGVybmV0SW5pdGlhbGl6ZUF1dG9Qcm94eURsbA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2llZW5jb2RlLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2llZW5jb2RlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYmMyNGEwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaWVlbmNvZGUuZGVmCkBAIC0wLDAgKzEsMTcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZXhwb3J0cy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZXhwb3J0cy5kbGwNCitFWFBPUlRTDQorQ2NlRGV0ZWN0SW5wdXRDb2RlDQorQ2NlR2V0QXZhaWxhYmxlRW5jb2RpbmdzDQorQ2NlSXNBdmFpbGFibGVFbmNvZGluZw0KK0NjZVN0cmVhbU11bHRpQnl0ZVRvVW5pY29kZQ0KK0NjZVN0cmVhbVVuaWNvZGVUb011bHRpQnl0ZQ0KK0NjZVN0cmluZ011bHRpQnl0ZVRvVW5pY29kZQ0KK0NjZVN0cmluZ1VuaWNvZGVUb011bHRpQnl0ZQ0KK0RsbE1haW4NCitGZXRjaE1zRW5jb2RlRGxsVmVyc2lvbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2llcGVlcnMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaWVwZWVycy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODI4ZDU4ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2llcGVlcnMuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaWVwZWVycy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaWVwZWVycy5ETEwNCitFWFBPUlRTDQorRGxsRW51bUNsYXNzT2JqZWN0cw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaWVybm9uY2UuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaWVybm9uY2UuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJjMjE3MGEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pZXJub25jZS5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJRVJOT05DRS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSUVSTk9OQ0UuZGxsDQorRVhQT1JUUw0KK0luaXRDYWxsYmFjaw0KK1J1bk9uY2VFeFByb2Nlc3MNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pZXNldHVwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2llc2V0dXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFjNzRlMGQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pZXNldHVwLmRlZgpAQCAtMCwwICsxLDE3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGllc2V0dXAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGllc2V0dXAuZGxsDQorRVhQT1JUUw0KK0lFSGFyZGVuQWRtaW4NCitJRUhhcmRlbkFkbWluTm93DQorSUVIYXJkZW5NYWNoaW5lTm93DQorSUVIYXJkZW5Vc2VyDQorU2V0Rmlyc3RIb21lcGFnZQ0KK0RsbEluc3RhbGwNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitGaXhJRQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2lmbW9uLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lmbW9uLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZGQxMWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaWZtb24uZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSUZNT04uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElGTU9OLmRsbA0KK0VYUE9SVFMNCitHZXRSZXNvdXJjZVN0cmluZw0KK0luaXRIZWxwZXJEbGwNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pZnN1dGlsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lmc3V0aWwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk2N2FkNDcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pZnN1dGlsLmRlZgpAQCAtMCwwICsxLDM1MiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpZnN1dGlsLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpZnN1dGlsLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBDQU5ORURfU0VDVVJJVFk6OkNBTk5FRF9TRUNVUklUWSh2b2lkKSBfX3B0cjY0DQorPz8wQ0FOTkVEX1NFQ1VSSVRZQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRElHUkFQSDo6RElHUkFQSCh2b2lkKSBfX3B0cjY0DQorPz8wRElHUkFQSEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIERJR1JBUEhfRURHRTo6RElHUkFQSF9FREdFKHZvaWQpIF9fcHRyNjQNCis/PzBESUdSQVBIX0VER0VAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBEUF9EUklWRTo6RFBfRFJJVkUodm9pZCkgX19wdHI2NA0KKz8/MERQX0RSSVZFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgSU5UU1RBQ0s6OklOVFNUQUNLKHZvaWQpIF9fcHRyNjQNCis/PzBJTlRTVEFDS0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExPR19JT19EUF9EUklWRTo6TE9HX0lPX0RQX0RSSVZFKHZvaWQpIF9fcHRyNjQNCis/PzBMT0dfSU9fRFBfRFJJVkVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBNT1VOVF9QT0lOVF9NQVA6Ok1PVU5UX1BPSU5UX01BUCh2b2lkKSBfX3B0cjY0DQorPz8wTU9VTlRfUE9JTlRfTUFQQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTU9VTlRfUE9JTlRfVFVQTEU6Ok1PVU5UX1BPSU5UX1RVUExFKHZvaWQpIF9fcHRyNjQNCis/PzBNT1VOVF9QT0lOVF9UVVBMRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE5VTUJFUl9TRVQ6Ok5VTUJFUl9TRVQodm9pZCkgX19wdHI2NA0KKz8/ME5VTUJFUl9TRVRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBSRUFEX0NBQ0hFOjpSRUFEX0NBQ0hFKHZvaWQpIF9fcHRyNjQNCis/PzBSRUFEX0NBQ0hFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUkVBRF9XUklURV9DQUNIRTo6UkVBRF9XUklURV9DQUNIRSh2b2lkKSBfX3B0cjY0DQorPz8wUkVBRF9XUklURV9DQUNIRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNFQ1JVTjo6U0VDUlVOKHZvaWQpIF9fcHRyNjQNCis/PzBTRUNSVU5AQFFFQUFAWFoNCis7IHByaXZhdGU6IF9fY2RlY2wgU05BUFNIT1Q6OlNOQVBTSE9UKHZvaWQpIF9fcHRyNjQNCis/PzBTTkFQU0hPVEBAQUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNQQVJTRV9TRVQ6OlNQQVJTRV9TRVQodm9pZCkgX19wdHI2NA0KKz8/MFNQQVJTRV9TRVRAQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBTVVBFUkFSRUE6OlNVUEVSQVJFQSh2b2lkKSBfX3B0cjY0DQorPz8wU1VQRVJBUkVBQEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVExJTks6OlRMSU5LKHZvaWQpIF9fcHRyNjQNCis/PzBUTElOS0BAUUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIFZPTF9MSU9EUERSVjo6Vk9MX0xJT0RQRFJWKHZvaWQpIF9fcHRyNjQNCis/PzBWT0xfTElPRFBEUlZAQElFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENBTk5FRF9TRUNVUklUWTo6fkNBTk5FRF9TRUNVUklUWSh2b2lkKSBfX3B0cjY0DQorPz8xQ0FOTkVEX1NFQ1VSSVRZQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBESUdSQVBIOjp+RElHUkFQSCh2b2lkKSBfX3B0cjY0DQorPz8xRElHUkFQSEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgRFBfRFJJVkU6On5EUF9EUklWRSh2b2lkKSBfX3B0cjY0DQorPz8xRFBfRFJJVkVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIElOVFNUQUNLOjp+SU5UU1RBQ0sodm9pZCkgX19wdHI2NA0KKz8/MUlOVFNUQUNLQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBMT0dfSU9fRFBfRFJJVkU6On5MT0dfSU9fRFBfRFJJVkUodm9pZCkgX19wdHI2NA0KKz8/MUxPR19JT19EUF9EUklWRUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgTU9VTlRfUE9JTlRfTUFQOjp+TU9VTlRfUE9JTlRfTUFQKHZvaWQpIF9fcHRyNjQNCis/PzFNT1VOVF9QT0lOVF9NQVBAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE5VTUJFUl9TRVQ6On5OVU1CRVJfU0VUKHZvaWQpIF9fcHRyNjQNCis/PzFOVU1CRVJfU0VUQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTRUNSVU46On5TRUNSVU4odm9pZCkgX19wdHI2NA0KKz8/MVNFQ1JVTkBAVUVBQUBYWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBfX2NkZWNsIFNOQVBTSE9UOjp+U05BUFNIT1Qodm9pZCkgX19wdHI2NA0KKz8/MVNOQVBTSE9UQEBFRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTUEFSU0VfU0VUOjp+U1BBUlNFX1NFVCh2b2lkKSBfX3B0cjY0DQorPz8xU1BBUlNFX1NFVEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU1VQRVJBUkVBOjp+U1VQRVJBUkVBKHZvaWQpIF9fcHRyNjQNCis/PzFTVVBFUkFSRUFAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFRMSU5LOjp+VExJTksodm9pZCkgX19wdHI2NA0KKz8/MVRMSU5LQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBWT0xfTElPRFBEUlY6On5WT0xfTElPRFBEUlYodm9pZCkgX19wdHI2NA0KKz8/MVZPTF9MSU9EUERSVkBAVUVBQUBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlVNQkVSX1NFVDo6QWRkKGNsYXNzIE5VTUJFUl9TRVQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEBOVU1CRVJfU0VUQEBRRUFBRVBFQlYxQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVU1CRVJfU0VUOjpBZGQoY2xhc3MgQklHX0lOVCxjbGFzcyBCSUdfSU5UKSBfX3B0cjY0DQorP0FkZEBOVU1CRVJfU0VUQEBRRUFBRVZCSUdfSU5UQEAwQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5VTUJFUl9TRVQ6OkFkZChjbGFzcyBCSUdfSU5UKSBfX3B0cjY0DQorP0FkZEBOVU1CRVJfU0VUQEBRRUFBRVZCSUdfSU5UQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTU9VTlRfUE9JTlRfTUFQOjpBZGREcml2ZU5hbWUoY2xhc3MgV1NUUklORyAqIF9fcHRyNjQsY2xhc3MgV1NUUklORyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkRHJpdmVOYW1lQE1PVU5UX1BPSU5UX01BUEBAUUVBQUVQRUFWV1NUUklOR0BAMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBESUdSQVBIOjpBZGRFZGdlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BZGRFZGdlQERJR1JBUEhAQFFFQUFFS0tAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIEFVVE9SRUc6OkFkZEVudHJ5KGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0KQ0KKz9BZGRFbnRyeUBBVVRPUkVHQEBTQUVQRUJWV1NUUklOR0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5VTUJFUl9TRVQ6OkFkZE5leHQoY2xhc3MgQklHX0lOVCkgX19wdHI2NA0KKz9BZGROZXh0QE5VTUJFUl9TRVRAQFFFQUFFVkJJR19JTlRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVU1CRVJfU0VUOjpBZGRTdGFydChjbGFzcyBCSUdfSU5UKSBfX3B0cjY0DQorP0FkZFN0YXJ0QE5VTUJFUl9TRVRAQFFFQUFFVkJJR19JTlRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBNT1VOVF9QT0lOVF9NQVA6OkFkZFZvbHVtZU5hbWUoY2xhc3MgV1NUUklORyAqIF9fcHRyNjQsY2xhc3MgV1NUUklORyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkVm9sdW1lTmFtZUBNT1VOVF9QT0lOVF9NQVBAQFFFQUFFUEVBVldTVFJJTkdAQDBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlVNQkVSX1NFVDo6Q2hlY2tBbmRBZGQoY2xhc3MgQklHX0lOVCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9DaGVja0FuZEFkZEBOVU1CRVJfU0VUQEBRRUFBRVZCSUdfSU5UQEBQRUFFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFNQQVJTRV9TRVQ6OkNoZWNrQW5kQWRkKGNsYXNzIEJJR19JTlQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2hlY2tBbmRBZGRAU1BBUlNFX1NFVEBAUUVBQUVWQklHX0lOVEBAUEVBRUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVU1CRVJfU0VUOjpDaGVja0FuZFJlbW92ZShjbGFzcyBCSUdfSU5ULHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoZWNrQW5kUmVtb3ZlQE5VTUJFUl9TRVRAQFFFQUFFVkJJR19JTlRAQFBFQUVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgU1BBUlNFX1NFVDo6Q2hlY2tBbmRSZW1vdmUoY2xhc3MgQklHX0lOVCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9DaGVja0FuZFJlbW92ZUBTUEFSU0VfU0VUQEBRRUFBRVZCSUdfSU5UQEBQRUFFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFNOQVBTSE9UOjpDaGVja1NuYXBzaG90UHJlc2VuY2Uodm9pZCkgX19wdHI2NA0KKz9DaGVja1NuYXBzaG90UHJlc2VuY2VAU05BUFNIT1RAQFFFQUFFWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBJRlNfU1lTVEVNOjpDaGVja1ZhbGlkU2VjdXJpdHlEZXNjcmlwdG9yKHVuc2lnbmVkIGxvbmcsc3RydWN0IF9TRUNVUklUWV9ERVNDUklQVE9SICogX19wdHI2NCkNCis/Q2hlY2tWYWxpZFNlY3VyaXR5RGVzY3JpcHRvckBJRlNfU1lTVEVNQEBTQUVLUEVBVV9TRUNVUklUWV9ERVNDUklQVE9SQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgVk9MX0xJT0RQRFJWOjpDaGtEc2soZW51bSBGSVhfTEVWRUwsY2xhc3MgTUVTU0FHRSAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0Noa0Rza0BWT0xfTElPRFBEUlZAQFFFQUFFVzRGSVhfTEVWRUxAQFBFQVZNRVNTQUdFQEBLS0dQRUFLUEVCVldTVFJJTkdAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBEUF9EUklWRTo6Q2xvc2VEcml2ZUhhbmRsZSh2b2lkKSBfX3B0cjY0DQorP0Nsb3NlRHJpdmVIYW5kbGVARFBfRFJJVkVAQFFFQUFYWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBTVVBFUkFSRUE6OkNvbXB1dGVWb2xJZCh1bnNpZ25lZCBsb25nKQ0KKz9Db21wdXRlVm9sSWRAU1VQRVJBUkVBQEBTQUtLQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBBVVRPUkVHOjpEZWxldGVFbnRyeShjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCkNCis/RGVsZXRlRW50cnlAQVVUT1JFR0BAU0FFUEVCVldTVFJJTkdAQDBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIEFVVE9SRUc6OkRlbGV0ZUVudHJ5KGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIpDQorP0RlbGV0ZUVudHJ5QEFVVE9SRUdAQFNBRVBFQlZXU1RSSU5HQEBFQFoNCis7IGludCBfX2NkZWNsIERpc2tDb3B5TWFpbkxvb3AoY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcixjbGFzcyBNRVNTQUdFICogX19wdHI2NCxjbGFzcyBNRVNTQUdFICogX19wdHI2NCkNCis/RGlza0NvcHlNYWluTG9vcEBAWUFIUEVCVldTVFJJTkdAQDAwMEVQRUFWTUVTU0FHRUBAMUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBJT19EUF9EUklWRTo6RGlzbW91bnRBbmRMb2NrKHZvaWQpIF9fcHRyNjQNCis/RGlzbW91bnRBbmRMb2NrQElPX0RQX0RSSVZFQEBRRUFBRVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgSUZTX1NZU1RFTTo6RGlzbW91bnRWb2x1bWUoY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQpDQorP0Rpc21vdW50Vm9sdW1lQElGU19TWVNURU1AQFNBRVBFQlZXU1RSSU5HQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlVNQkVSX1NFVDo6RG9lc0ludGVyc2VjdFNldChjbGFzcyBCSUdfSU5ULGNsYXNzIEJJR19JTlQpY29uc3QgIF9fcHRyNjQNCis/RG9lc0ludGVyc2VjdFNldEBOVU1CRVJfU0VUQEBRRUJBRVZCSUdfSU5UQEAwQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBJRlNfU1lTVEVNOjpEb3NEcml2ZU5hbWVUb050RHJpdmVOYW1lKGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0LGNsYXNzIFdTVFJJTkcgKiBfX3B0cjY0KQ0KKz9Eb3NEcml2ZU5hbWVUb050RHJpdmVOYW1lQElGU19TWVNURU1AQFNBRVBFQlZXU1RSSU5HQEBQRUFWMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU1BBUlNFX1NFVDo6RHVtcEhhc2hUYWJsZSh2b2lkKSBfX3B0cjY0DQorP0R1bXBIYXNoVGFibGVAU1BBUlNFX1NFVEBAUUVBQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRElHUkFQSDo6RWxpbWluYXRlQ3ljbGVzKGNsYXNzIENPTlRBSU5FUiAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RWxpbWluYXRlQ3ljbGVzQERJR1JBUEhAQFFFQUFFUEVBVkNPTlRBSU5FUkBAUEVBRUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgSUZTX1NZU1RFTTo6RW5hYmxlRmlsZVN5c3RlbShjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCkNCis/RW5hYmxlRmlsZVN5c3RlbUBJRlNfU1lTVEVNQEBTQUVQRUJWV1NUUklOR0BAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBJRlNfU1lTVEVNOjpFbmFibGVWb2x1bWVDb21wcmVzc2lvbihjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCkNCis/RW5hYmxlVm9sdW1lQ29tcHJlc3Npb25ASUZTX1NZU1RFTUBAU0FFUEVCVldTVFJJTkdAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgSUZTX1NZU1RFTTo6RW5hYmxlVm9sdW1lVXBncmFkZShjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCkNCis/RW5hYmxlVm9sdW1lVXBncmFkZUBJRlNfU1lTVEVNQEBTQUVQRUJWV1NUUklOR0BAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBJRlNfU1lTVEVNOjpGaWxlU2V0QXR0cmlidXRlcyhjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KQ0KKz9GaWxlU2V0QXR0cmlidXRlc0BJRlNfU1lTVEVNQEBTQUVQRUJWV1NUUklOR0BAS1BFQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgSU9fRFBfRFJJVkU6OkZsdXNoQ2FjaGUodm9pZCkgX19wdHI2NA0KKz9GbHVzaENhY2hlQElPX0RQX0RSSVZFQEBRRUFBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBWT0xfTElPRFBEUlY6OkZvcmNlQXV0b2Noayh1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCxjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Gb3JjZUF1dG9jaGtAVk9MX0xJT0RQRFJWQEBRRUFBRUVLS0dQRUJWV1NUUklOR0BAQFoNCis7IHB1YmxpYzogZW51bSBGT1JNQVRfRVJST1JfQ09ERSAgX19jZGVjbCBWT0xfTElPRFBEUlY6OkZvcm1hdChjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxjbGFzcyBNRVNTQUdFICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Gb3JtYXRAVk9MX0xJT0RQRFJWQEBRRUFBP0FXNEZPUk1BVF9FUlJPUl9DT0RFQEBQRUJWV1NUUklOR0BAUEVBVk1FU1NBR0VAQEtLS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgU1VQRVJBUkVBOjpHZW5lcmF0ZUxhYmVsTm90aWZpY2F0aW9uKGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0LGNsYXNzIFdTVFJJTkcgKiBfX3B0cjY0LHN0cnVjdCBfRklMRV9GU19TSVpFX0lORk9STUFUSU9OICogX19wdHI2NCxzdHJ1Y3QgX0ZJTEVfRlNfVk9MVU1FX0lORk9STUFUSU9OICogX19wdHI2NCkNCis/R2VuZXJhdGVMYWJlbE5vdGlmaWNhdGlvbkBTVVBFUkFSRUFAQFNBSlBFQlZXU1RSSU5HQEBQRUFWMkBQRUFVX0ZJTEVfRlNfU0laRV9JTkZPUk1BVElPTkBAUEVBVV9GSUxFX0ZTX1ZPTFVNRV9JTkZPUk1BVElPTkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE1PVU5UX1BPSU5UX01BUDo6R2V0QXQodW5zaWduZWQgbG9uZyxjbGFzcyBXU1RSSU5HICogX19wdHI2NCxjbGFzcyBXU1RSSU5HICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRBdEBNT1VOVF9QT0lOVF9NQVBAQFFFQUFFS1BFQVZXU1RSSU5HQEAwQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBUTElOSzo6R2V0QnVmZmVyKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEJ1ZmZlckBUTElOS0BAUUVBQVBFQVhQRUFYQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIENBTk5FRF9TRUNVUklUWSAqIF9fcHRyNjQgX19jZGVjbCBJRlNfU1lTVEVNOjpHZXRDYW5uZWRTZWN1cml0eSh2b2lkKQ0KKz9HZXRDYW5uZWRTZWN1cml0eUBJRlNfU1lTVEVNQEBTQVBFQVZDQU5ORURfU0VDVVJJVFlAQFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ0FOTkVEX1NFQ1VSSVRZOjpHZXRDYW5uZWRTZWN1cml0eURlc2NyaXB0b3IoZW51bSBfQ0FOTkVEX1NFQ1VSSVRZX1RZUEUsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0Q2FubmVkU2VjdXJpdHlEZXNjcmlwdG9yQENBTk5FRF9TRUNVUklUWUBAUUVBQVBFQVhXNF9DQU5ORURfU0VDVVJJVFlfVFlQRUBAUEVBS0BaDQorOyBwdWJsaWM6IGNsYXNzIEJJR19JTlQgJiBfX3B0cjY0IF9fY2RlY2wgVExJTks6OkdldERhdGEodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/R2V0RGF0YUBUTElOS0BAUUVBQUFFQVZCSUdfSU5UQEBHQFoNCis7IHB1YmxpYzogY2xhc3MgQklHX0lOVCAmIF9fcHRyNjQgX19jZGVjbCBUTElOSzo6R2V0RGF0YSh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREYXRhQFRMSU5LQEBRRUFBQUVBVkJJR19JTlRAQFBFQVhAWg0KKzsgcHVibGljOiBjbGFzcyBJT19EUF9EUklWRSAqIF9fcHRyNjQgX19jZGVjbCBTRUNSVU46OkdldERyaXZlKHZvaWQpIF9fcHRyNjQNCis/R2V0RHJpdmVAU0VDUlVOQEBRRUFBUEVBVklPX0RQX0RSSVZFQEBYWg0KKzsgcHVibGljOiBjbGFzcyBJT19EUF9EUklWRSAqIF9fcHRyNjQgX19jZGVjbCBTVVBFUkFSRUE6OkdldERyaXZlKHZvaWQpIF9fcHRyNjQNCis/R2V0RHJpdmVAU1VQRVJBUkVBQEBRRUFBUEVBVklPX0RQX0RSSVZFQEBYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIFRMSU5LOjpHZXRGaXJzdCh2b2lkKSBfX3B0cjY0DQorP0dldEZpcnN0QFRMSU5LQEBRRUFBUEVBWFhaDQorOyBwdWJsaWM6IGNsYXNzIE1FU1NBR0UgKiBfX3B0cjY0IF9fY2RlY2wgSU9fRFBfRFJJVkU6OkdldE1lc3NhZ2VXKHZvaWQpIF9fcHRyNjQNCis/R2V0TWVzc2FnZVdASU9fRFBfRFJJVkVAQFFFQUFQRUFWTUVTU0FHRUBAWFoNCis7IHB1YmxpYzogY2xhc3MgTUVTU0FHRSAqIF9fcHRyNjQgX19jZGVjbCBTVVBFUkFSRUE6OkdldE1lc3NhZ2VXKHZvaWQpIF9fcHRyNjQNCis/R2V0TWVzc2FnZVdAU1VQRVJBUkVBQEBRRUFBUEVBVk1FU1NBR0VAQFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgVExJTks6OkdldE5leHQodm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TmV4dEBUTElOS0BAUUVBQVBFQVhQRUFYQFoNCis7IHB1YmxpYzogY2xhc3MgQklHX0lOVCAmIF9fcHRyNjQgX19jZGVjbCBUTElOSzo6R2V0TmV4dERhdGFTbG90KHZvaWQpIF9fcHRyNjQNCis/R2V0TmV4dERhdGFTbG90QFRMSU5LQEBRRUFBQUVBVkJJR19JTlRAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFNOQVBTSE9UOjpHZXRTbmFwc2hvdEdsb2JhbERldmljZU5hbWUodm9pZCkgX19wdHI2NA0KKz9HZXRTbmFwc2hvdEdsb2JhbERldmljZU5hbWVAU05BUFNIT1RAQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgU05BUFNIT1Q6OkdldFNuYXBzaG90TnREZXZpY2VOYW1lKHZvaWQpIF9fcHRyNjQNCis/R2V0U25hcHNob3ROdERldmljZU5hbWVAU05BUFNIT1RAQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBUTElOSzo6R2V0U29ydGVkRmlyc3Qodm9pZCkgX19wdHI2NA0KKz9HZXRTb3J0ZWRGaXJzdEBUTElOS0BAUUVBQVBFQVhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIFRMSU5LOjpHZXRTb3J0ZWROZXh0KHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFNvcnRlZE5leHRAVExJTktAQFFFQUFQRUFYUEVBWEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgU05BUFNIT1Q6OkdldFZvbHVtZVNuYXBzaG90KGNsYXNzIFdTVFJJTkcgKiBfX3B0cjY0LGNsYXNzIFNOQVBTSE9UICogX19wdHI2NCAqIF9fcHRyNjQpDQorP0dldFZvbHVtZVNuYXBzaG90QFNOQVBTSE9UQEBTQUVQRUFWV1NUUklOR0BAUEVBUEVBVjFAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIENBTk5FRF9TRUNVUklUWTo6SW5pdGlhbGl6ZSh2b2lkKSBfX3B0cjY0DQorP0luaXRpYWxpemVAQ0FOTkVEX1NFQ1VSSVRZQEBRRUFBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBESUdSQVBIOjpJbml0aWFsaXplKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBESUdSQVBIQEBRRUFBRUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRFBfRFJJVkU6OkluaXRpYWxpemUoY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsY2xhc3MgTUVTU0FHRSAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP0luaXRpYWxpemVARFBfRFJJVkVAQFFFQUFFUEVCVldTVFJJTkdAQDBQRUFWTUVTU0FHRUBARUVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRFBfRFJJVkU6OkluaXRpYWxpemUoY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsY2xhc3MgTUVTU0FHRSAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP0luaXRpYWxpemVARFBfRFJJVkVAQFFFQUFFUEVCVldTVFJJTkdAQFBFQVZNRVNTQUdFQEBFRUdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgSU5UU1RBQ0s6OkluaXRpYWxpemUodm9pZCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQElOVFNUQUNLQEBRRUFBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBMT0dfSU9fRFBfRFJJVkU6OkluaXRpYWxpemUoY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsY2xhc3MgTUVTU0FHRSAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9Jbml0aWFsaXplQExPR19JT19EUF9EUklWRUBAUUVBQUVQRUJWV1NUUklOR0BAMFBFQVZNRVNTQUdFQEBFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIExPR19JT19EUF9EUklWRTo6SW5pdGlhbGl6ZShjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxjbGFzcyBNRVNTQUdFICogX19wdHI2NCx1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP0luaXRpYWxpemVATE9HX0lPX0RQX0RSSVZFQEBRRUFBRVBFQlZXU1RSSU5HQEBQRUFWTUVTU0FHRUBARUdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTU9VTlRfUE9JTlRfTUFQOjpJbml0aWFsaXplKHZvaWQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBNT1VOVF9QT0lOVF9NQVBAQFFFQUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5VTUJFUl9TRVQ6OkluaXRpYWxpemUodm9pZCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQE5VTUJFUl9TRVRAQFFFQUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFJFQURfQ0FDSEU6OkluaXRpYWxpemUoY2xhc3MgSU9fRFBfRFJJVkUgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBSRUFEX0NBQ0hFQEBRRUFBRVBFQVZJT19EUF9EUklWRUBAS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBSRUFEX1dSSVRFX0NBQ0hFOjpJbml0aWFsaXplKGNsYXNzIElPX0RQX0RSSVZFICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0luaXRpYWxpemVAUkVBRF9XUklURV9DQUNIRUBAUUVBQUVQRUFWSU9fRFBfRFJJVkVAQEtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgU0VDUlVOOjpJbml0aWFsaXplKGNsYXNzIE1FTSAqIF9fcHRyNjQsY2xhc3MgSU9fRFBfRFJJVkUgKiBfX3B0cjY0LGNsYXNzIEJJR19JTlQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Jbml0aWFsaXplQFNFQ1JVTkBAUUVBQUVQRUFWTUVNQEBQRUFWSU9fRFBfRFJJVkVAQFZCSUdfSU5UQEBLQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBTTkFQU0hPVDo6SW5pdGlhbGl6ZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBTTkFQU0hPVEBAQUVBQUpQRUFHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFNQQVJTRV9TRVQ6OkluaXRpYWxpemUodm9pZCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQFNQQVJTRV9TRVRAQFFFQUFFWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgY2hhciBfX2NkZWNsIFNVUEVSQVJFQTo6SW5pdGlhbGl6ZShjbGFzcyBNRU0gKiBfX3B0cjY0LGNsYXNzIExPR19JT19EUF9EUklWRSAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxjbGFzcyBNRVNTQUdFICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQFNVUEVSQVJFQUBASUVBQUVQRUFWTUVNQEBQRUFWTE9HX0lPX0RQX0RSSVZFQEBLUEVBVk1FU1NBR0VAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBUTElOSzo6SW5pdGlhbGl6ZSh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQFRMSU5LQEBRRUFBRUdAWg0KKzsgcHJvdGVjdGVkOiBlbnVtIEZPUk1BVF9FUlJPUl9DT0RFICBfX2NkZWNsIFZPTF9MSU9EUERSVjo6SW5pdGlhbGl6ZShjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxjbGFzcyBTVVBFUkFSRUEgKiBfX3B0cjY0LGNsYXNzIE1FU1NBR0UgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhcixlbnVtIF9NRURJQV9UWVBFLHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBWT0xfTElPRFBEUlZAQElFQUE/QVc0Rk9STUFUX0VSUk9SX0NPREVAQFBFQlZXU1RSSU5HQEBQRUFWU1VQRVJBUkVBQEBQRUFWTUVTU0FHRUBARUVXNF9NRURJQV9UWVBFQEBHRUBaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBWT0xfTElPRFBEUlY6OkluaXRpYWxpemUoY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsY2xhc3MgU1VQRVJBUkVBICogX19wdHI2NCxjbGFzcyBNRVNTQUdFICogX19wdHI2NCx1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP0luaXRpYWxpemVAVk9MX0xJT0RQRFJWQEBJRUFBRVBFQlZXU1RSSU5HQEAwUEVBVlNVUEVSQVJFQUBAUEVBVk1FU1NBR0VAQEVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgSU9fRFBfRFJJVkU6OkludmFsaWRhdGVWb2x1bWUodm9pZCkgX19wdHI2NA0KKz9JbnZhbGlkYXRlVm9sdW1lQElPX0RQX0RSSVZFQEBRRUFBRVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgSUZTX1NZU1RFTTo6SXNBcmNTeXN0ZW1QYXJ0aXRpb24oY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQpDQorP0lzQXJjU3lzdGVtUGFydGl0aW9uQElGU19TWVNURU1AQFNBRVBFQlZXU1RSSU5HQEBQRUFFQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBBVVRPUkVHOjpJc0VudHJ5UHJlc2VudChjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCkNCis/SXNFbnRyeVByZXNlbnRAQVVUT1JFR0BAU0FFUEVCVldTVFJJTkdAQDBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIEFVVE9SRUc6OklzRW50cnlQcmVzZW50KGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0KQ0KKz9Jc0VudHJ5UHJlc2VudEBBVVRPUkVHQEBTQUVQRUJWV1NUUklOR0BAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBJRlNfU1lTVEVNOjpJc0ZpbGVTeXN0ZW1FbmFibGVkKGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KQ0KKz9Jc0ZpbGVTeXN0ZW1FbmFibGVkQElGU19TWVNURU1AQFNBRVBFQlZXU1RSSU5HQEBQRUFFQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBBVVRPUkVHOjpJc0Zyb250RW5kUHJlc2VudChjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCkNCis/SXNGcm9udEVuZFByZXNlbnRAQVVUT1JFR0BAU0FFUEVCVldTVFJJTkdAQDBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIElGU19TWVNURU06OklzVGhpc050ZnMoY2xhc3MgQklHX0lOVCx1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0KQ0KKz9Jc1RoaXNOdGZzQElGU19TWVNURU1AQFNBRVZCSUdfSU5UQEBLUEVBWEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgSUZTX1NZU1RFTTo6SXNWb2x1bWVEaXJ0eShjbGFzcyBXU1RSSU5HICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkNCis/SXNWb2x1bWVEaXJ0eUBJRlNfU1lTVEVNQEBTQUVQRUFWV1NUUklOR0BAUEVBRUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBJT19EUF9EUklWRTo6TG9jayh2b2lkKSBfX3B0cjY0DQorP0xvY2tASU9fRFBfRFJJVkVAQFFFQUFFWFoNCis7IHB1YmxpYzogY2xhc3MgQklHX0lOVCAgX19jZGVjbCBJTlRTVEFDSzo6TG9vayh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP0xvb2tASU5UU1RBQ0tAQFFFQkE/QVZCSUdfSU5UQEBLQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBJRlNfU1lTVEVNOjpOdERyaXZlTmFtZVRvRG9zRHJpdmVOYW1lKGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0LGNsYXNzIFdTVFJJTkcgKiBfX3B0cjY0KQ0KKz9OdERyaXZlTmFtZVRvRG9zRHJpdmVOYW1lQElGU19TWVNURU1AQFNBRVBFQlZXU1RSSU5HQEBQRUFWMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSU5UU1RBQ0s6OlBvcCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1BvcEBJTlRTVEFDS0BAUUVBQVhLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIElOVFNUQUNLOjpQdXNoKGNsYXNzIEJJR19JTlQpIF9fcHRyNjQNCis/UHVzaEBJTlRTVEFDS0BAUUVBQUVWQklHX0lOVEBAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBBVVRPUkVHOjpQdXNoRW50cnkoY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQpDQorP1B1c2hFbnRyeUBBVVRPUkVHQEBTQUVQRUJWV1NUUklOR0BAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBWT0xfTElPRFBEUlY6OlF1ZXJ5QXV0b2Noa1RpbWVPdXQodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpDQorP1F1ZXJ5QXV0b2Noa1RpbWVPdXRAVk9MX0xJT0RQRFJWQEBTQUVQRUFLQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBJRlNfU1lTVEVNOjpRdWVyeUNhbm9uaWNhbE50RHJpdmVOYW1lKGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0LGNsYXNzIFdTVFJJTkcgKiBfX3B0cjY0KQ0KKz9RdWVyeUNhbm9uaWNhbE50RHJpdmVOYW1lQElGU19TWVNURU1AQFNBRVBFQlZXU1RSSU5HQEBQRUFWMkBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRElHUkFQSDo6UXVlcnlDaGlsZHJlbih1bnNpZ25lZCBsb25nLGNsYXNzIE5VTUJFUl9TRVQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q2hpbGRyZW5ARElHUkFQSEBAUUVCQUVLUEVBVk5VTUJFUl9TRVRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCSUdfSU5UOjpRdWVyeUNvbXByZXNzZWRJbnRlZ2VyKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q29tcHJlc3NlZEludGVnZXJAQklHX0lOVEBAUUVCQVhQRUFFMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVU1CRVJfU0VUOjpRdWVyeUNvbnRhaW5pbmdSYW5nZShjbGFzcyBCSUdfSU5ULGNsYXNzIEJJR19JTlQgKiBfX3B0cjY0LGNsYXNzIEJJR19JTlQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q29udGFpbmluZ1JhbmdlQE5VTUJFUl9TRVRAQFFFQkFFVkJJR19JTlRAQFBFQVYyQDFAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTlVNQkVSX1NFVDo6UXVlcnlEaXNqb2ludFJhbmdlKHVuc2lnbmVkIGxvbmcsY2xhc3MgQklHX0lOVCAqIF9fcHRyNjQsY2xhc3MgQklHX0lOVCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEaXNqb2ludFJhbmdlQE5VTUJFUl9TRVRAQFFFQkFYS1BFQVZCSUdfSU5UQEAwQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBUTElOSzo6UXVlcnlEaXNqb2ludFJhbmdlQW5kQXNzaWduQnVmZmVyKGNsYXNzIEJJR19JTlQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeURpc2pvaW50UmFuZ2VBbmRBc3NpZ25CdWZmZXJAVExJTktAQFFFQUFQRUFYUEVBVkJJR19JTlRAQFBFQUcxUEVBWEsyQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBEUF9EUklWRTo6UXVlcnlEcml2ZUhhbmRsZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RHJpdmVIYW5kbGVARFBfRFJJVkVAQFFFQkFQRUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE1PVU5UX1BPSU5UX01BUDo6UXVlcnlEcml2ZU5hbWUoY2xhc3MgV1NUUklORyAqIF9fcHRyNjQsY2xhc3MgV1NUUklORyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlEcml2ZU5hbWVATU9VTlRfUE9JTlRfTUFQQEBRRUFBRVBFQVZXU1RSSU5HQEAwQFoNCis7IHB1YmxpYzogZW51bSBEUklWRV9UWVBFICBfX2NkZWNsIERQX0RSSVZFOjpRdWVyeURyaXZlVHlwZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RHJpdmVUeXBlQERQX0RSSVZFQEBRRUJBP0FXNERSSVZFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgSUZTX1NZU1RFTTo6UXVlcnlGaWxlU3lzdGVtTmFtZShjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxjbGFzcyBXU1RSSU5HICogX19wdHI2NCxsb25nICogX19wdHI2NCxjbGFzcyBXU1RSSU5HICogX19wdHI2NCkNCis/UXVlcnlGaWxlU3lzdGVtTmFtZUBJRlNfU1lTVEVNQEBTQUVQRUJWV1NUUklOR0BAUEVBVjJAUEVBSjFAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIElGU19TWVNURU06OlF1ZXJ5RnJlZURpc2tTcGFjZShjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxjbGFzcyBCSUdfSU5UICogX19wdHI2NCkNCis/UXVlcnlGcmVlRGlza1NwYWNlQElGU19TWVNURU1AQFNBRVBFQlZXU1RSSU5HQEBQRUFWQklHX0lOVEBAQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBRdWVyeU1hY2hpbmVVbmlxdWVUb2tlbih2b2lkKQ0KKz9RdWVyeU1hY2hpbmVVbmlxdWVUb2tlbkBAWUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIERQX0RSSVZFOjpRdWVyeU1lZGlhQnl0ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TWVkaWFCeXRlQERQX0RSSVZFQEBRRUJBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgVExJTks6OlF1ZXJ5TWVtYmVyQ291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1lbWJlckNvdW50QFRMSU5LQEBRRUJBR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRFBfRFJJVkU6OlF1ZXJ5TXJ3U3VwcG9ydCh2b2lkICogX19wdHI2NCkNCis/UXVlcnlNcndTdXBwb3J0QERQX0RSSVZFQEBTQUVQRUFYQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBEUF9EUklWRTo6UXVlcnlOdGZzU3VwcG9ydEluZm8odm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQpDQorP1F1ZXJ5TnRmc1N1cHBvcnRJbmZvQERQX0RSSVZFQEBTQUpQRUFYUEVBRUBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgSUZTX1NZU1RFTTo6UXVlcnlOdGZzVGltZSh1bmlvbiBfTEFSR0VfSU5URUdFUiAqIF9fcHRyNjQpDQorP1F1ZXJ5TnRmc1RpbWVASUZTX1NZU1RFTUBAU0FYUEVBVF9MQVJHRV9JTlRFR0VSQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIElGU19TWVNURU06OlF1ZXJ5TnRmc1ZlcnNpb24odW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsY2xhc3MgTE9HX0lPX0RQX0RSSVZFICogX19wdHI2NCx2b2lkICogX19wdHI2NCkNCis/UXVlcnlOdGZzVmVyc2lvbkBJRlNfU1lTVEVNQEBTQUVQRUFFMFBFQVZMT0dfSU9fRFBfRFJJVkVAQFBFQVhAWg0KKzsgcHVibGljOiBjbGFzcyBCSUdfSU5UICBfX2NkZWNsIE5VTUJFUl9TRVQ6OlF1ZXJ5TnVtYmVyKGNsYXNzIEJJR19JTlQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOdW1iZXJATlVNQkVSX1NFVEBAUUVCQT9BVkJJR19JTlRAQFYyQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUZTX1NZU1RFTTo6UXVlcnlQYWdlU2l6ZSh2b2lkKQ0KKz9RdWVyeVBhZ2VTaXplQElGU19TWVNURU1AQFNBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBESUdSQVBIOjpRdWVyeVBhcmVudHModW5zaWduZWQgbG9uZyxjbGFzcyBOVU1CRVJfU0VUICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBhcmVudHNARElHUkFQSEBAUUVCQUVLUEVBVk5VTUJFUl9TRVRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBESUdSQVBIOjpRdWVyeVBhcmVudHNXaXRoQ2hpbGRyZW4oY2xhc3MgTlVNQkVSX1NFVCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBhcmVudHNXaXRoQ2hpbGRyZW5ARElHUkFQSEBAUUVCQUVQRUFWTlVNQkVSX1NFVEBAS0BaDQorOyBwdWJsaWM6IGVudW0gX01FRElBX1RZUEUgIF9fY2RlY2wgRFBfRFJJVkU6OlF1ZXJ5UmVjb21tZW5kZWRNZWRpYVR5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVJlY29tbWVuZGVkTWVkaWFUeXBlQERQX0RSSVZFQEBRRUJBP0FXNF9NRURJQV9UWVBFQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBEUF9EUklWRTo6UXVlcnlTZWN0b3JTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZWN0b3JTaXplQERQX0RSSVZFQEBVRUJBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgQklHX0lOVCAgX19jZGVjbCBEUF9EUklWRTo6UXVlcnlTZWN0b3JzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZWN0b3JzQERQX0RSSVZFQEBVRUJBP0FWQklHX0lOVEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBUTElOSzo6UXVlcnlTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTaXplQFRMSU5LQEBRRUJBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBNT1VOVF9QT0lOVF9NQVA6OlF1ZXJ5Vm9sdW1lTmFtZShjbGFzcyBXU1RSSU5HICogX19wdHI2NCxjbGFzcyBXU1RSSU5HICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeVZvbHVtZU5hbWVATU9VTlRfUE9JTlRfTUFQQEBRRUFBRVBFQVZXU1RSSU5HQEAwQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIElPX0RQX0RSSVZFOjpSZWFkKGNsYXNzIEJJR19JTlQsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWFkQElPX0RQX0RSSVZFQEBRRUFBRVZCSUdfSU5UQEBLUEVBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciBfX2NkZWNsIFNFQ1JVTjo6UmVhZCh2b2lkKSBfX3B0cjY0DQorP1JlYWRAU0VDUlVOQEBVRUFBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBWT0xfTElPRFBEUlY6OlJlY292ZXIoY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsY2xhc3MgTUVTU0FHRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVjb3ZlckBWT0xfTElPRFBEUlZAQFFFQUFFUEVCVldTVFJJTkdAQFBFQVZNRVNTQUdFQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIFNOQVBTSE9UOjpSZWxlYXNlVm9sdW1lU25hcHNob3QoY2xhc3MgU05BUFNIT1QgKiBfX3B0cjY0KQ0KKz9SZWxlYXNlVm9sdW1lU25hcHNob3RAU05BUFNIT1RAQFNBRVBFQVYxQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVU1CRVJfU0VUOjpSZW1vdmUoY2xhc3MgTlVNQkVSX1NFVCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVtb3ZlQE5VTUJFUl9TRVRAQFFFQUFFUEVCVjFAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5VTUJFUl9TRVQ6OlJlbW92ZShjbGFzcyBCSUdfSU5ULGNsYXNzIEJJR19JTlQpIF9fcHRyNjQNCis/UmVtb3ZlQE5VTUJFUl9TRVRAQFFFQUFFVkJJR19JTlRAQDBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlVNQkVSX1NFVDo6UmVtb3ZlKGNsYXNzIEJJR19JTlQpIF9fcHRyNjQNCis/UmVtb3ZlQE5VTUJFUl9TRVRAQFFFQUFFVkJJR19JTlRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVU1CRVJfU0VUOjpSZW1vdmVBbGwodm9pZCkgX19wdHI2NA0KKz9SZW1vdmVBbGxATlVNQkVSX1NFVEBAUUVBQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgU1BBUlNFX1NFVDo6UmVtb3ZlQWxsKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlQWxsQFNQQVJTRV9TRVRAQFFFQUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIERJR1JBUEg6OlJlbW92ZUVkZ2UodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlbW92ZUVkZ2VARElHUkFQSEBAUUVBQUVLS0BaDQorOyB2b2lkIF9fY2RlY2wgUmVzdG9yZVRocmVhZEV4ZWN1dGlvblN0YXRlKGxvbmcsdW5zaWduZWQgbG9uZykNCis/UmVzdG9yZVRocmVhZEV4ZWN1dGlvblN0YXRlQEBZQVhKS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBJTlRTVEFDSzo6UmV2ZXJzZUNvcHkoY2xhc3MgSU5UU1RBQ0sgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JldmVyc2VDb3B5QElOVFNUQUNLQEBRRUFBRVBFQVYxQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBEUF9EUklWRTo6U2VuZFNvbnlNU0Zvcm1hdENtZCh2b2lkKSBfX3B0cjY0DQorP1NlbmRTb255TVNGb3JtYXRDbWRARFBfRFJJVkVAQFFFQUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIERQX0RSSVZFOjpTZW5kU29ueU1TSW5xdWlyeUNtZChzdHJ1Y3QgU09OWV9NU19JTlFVSVJZX0RBVEEgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NlbmRTb255TVNJbnF1aXJ5Q21kQERQX0RSSVZFQEBRRUFBRVBFQVVTT05ZX01TX0lOUVVJUllfREFUQUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIERQX0RSSVZFOjpTZW5kU29ueU1TTW9kZVNlbnNlQ21kKHN0cnVjdCBTT05ZX01TX01PREVfU0VOU0VfREFUQSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VuZFNvbnlNU01vZGVTZW5zZUNtZEBEUF9EUklWRUBAUUVBQUVQRUFVU09OWV9NU19NT0RFX1NFTlNFX0RBVEFAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBEUF9EUklWRTo6U2VuZFNvbnlNU1JlcXVlc3RTZW5zZUNtZChzdHJ1Y3QgX1NFTlNFX0RBVEEgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NlbmRTb255TVNSZXF1ZXN0U2Vuc2VDbWRARFBfRFJJVkVAQFFFQUFFUEVBVV9TRU5TRV9EQVRBQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRFBfRFJJVkU6OlNlbmRTb255TVNUZXN0VW5pdFJlYWR5Q21kKHN0cnVjdCBfU0VOU0VfREFUQSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VuZFNvbnlNU1Rlc3RVbml0UmVhZHlDbWRARFBfRFJJVkVAQFFFQUFFUEVBVV9TRU5TRV9EQVRBQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQklHX0lOVDo6U2V0KHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QEJJR19JTlRAQFFFQUFYRVBFQkVAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIFZPTF9MSU9EUERSVjo6U2V0QXV0b2Noa1RpbWVPdXQodW5zaWduZWQgbG9uZykNCis/U2V0QXV0b2Noa1RpbWVPdXRAVk9MX0xJT0RQRFJWQEBTQUVLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElPX0RQX0RSSVZFOjpTZXRDYWNoZShjbGFzcyBEUklWRV9DQUNIRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Q2FjaGVASU9fRFBfRFJJVkVAQFFFQUFYUEVBVkRSSVZFX0NBQ0hFQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTE9HX0lPX0RQX0RSSVZFOjpTZXRTeXN0ZW1JZCh1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP1NldFN5c3RlbUlkQExPR19JT19EUF9EUklWRUBAUUVBQUVFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFZPTF9MSU9EUERSVjo6U2V0Vm9sdW1lTGFiZWxBbmRQcmludEZvcm1hdFJlcG9ydChjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxjbGFzcyBNRVNTQUdFICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWb2x1bWVMYWJlbEFuZFByaW50Rm9ybWF0UmVwb3J0QFZPTF9MSU9EUERSVkBAUUVBQUVQRUJWV1NUUklOR0BAUEVBVk1FU1NBR0VAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBUTElOSzo6U2hlbGxTb3J0KHZvaWQpIF9fcHRyNjQNCis/U2hlbGxTb3J0QFRMSU5LQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBUTElOSzo6U29ydCh2b2lkKSBfX3B0cjY0DQorP1NvcnRAVExJTktAQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIElPX0RQX0RSSVZFOjpWZXJpZnkoY2xhc3MgQklHX0lOVCxjbGFzcyBCSUdfSU5UKSBfX3B0cjY0DQorP1ZlcmlmeUBJT19EUF9EUklWRUBAUUVBQUVWQklHX0lOVEBAMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBJT19EUF9EUklWRTo6VmVyaWZ5KGNsYXNzIEJJR19JTlQsY2xhc3MgQklHX0lOVCxjbGFzcyBOVU1CRVJfU0VUICogX19wdHI2NCkgX19wdHI2NA0KKz9WZXJpZnlASU9fRFBfRFJJVkVAQFFFQUFFVkJJR19JTlRAQDBQRUFWTlVNQkVSX1NFVEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIElPX0RQX0RSSVZFOjpXcml0ZShjbGFzcyBCSUdfSU5ULHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/V3JpdGVASU9fRFBfRFJJVkVAQFFFQUFFVkJJR19JTlRAQEtQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgU0VDUlVOOjpXcml0ZSh2b2lkKSBfX3B0cjY0DQorP1dyaXRlQFNFQ1JVTkBAVUVBQUVYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIElGU19TWVNURU06OldyaXRlVG9GaWxlKGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhcikNCis/V3JpdGVUb0ZpbGVASUZTX1NZU1RFTUBAU0FFUEVCVldTVFJJTkdAQFBFQVhLRUBaDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaWdtcGFnbnQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaWdtcGFnbnQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAzOThiZGIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pZ21wYWdudC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJR01QQUdOVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSUdNUEFHTlQuZGxsDQorRVhQT1JUUw0KK1NubXBFeHRlbnNpb25DbG9zZQ0KK1NubXBFeHRlbnNpb25Jbml0DQorU25tcEV4dGVuc2lvblF1ZXJ5DQorU25tcEV4dGVuc2lvblRyYXANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9paXMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaWlzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YmYwYmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaWlzLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElJUy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSUlTLmRsbA0KK0VYUE9SVFMNCitPY0VudHJ5DQorSUlTNUxvZw0KK0lJUzVMb2dQYXJtU3RyaW5nDQorSUlTNUxvZ1Bhcm1Ed29yZA0KK1Byb2Nlc3NJbmZTZWN0aW9uDQorU3lzUHJlcEJhY2t1cA0KK1N5c1ByZXBSZXN0b3JlDQorQXBwbHlJSVNBY2wNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9paXNhZG1pbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9paXNhZG1pbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODQ0MDk0NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lpc2FkbWluLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElJU0FETUlOLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJSVNBRE1JTi5kbGwNCitFWFBPUlRTDQorUmV0cmlldmVUcmFjaW5nSGFuZGxlDQorU2VydmljZUVudHJ5DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaWlzY2ZnLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lpc2NmZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODQ1M2Q2ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lpc2NmZy5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJSVNDRkcuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElJU0NGRy5ETEwNCitFWFBPUlRTDQorRGxsR2V0U2ltcGxlT2JqZWN0DQorRGxsR2V0U2ltcGxlT2JqZWN0QnlJRA0KK0RsbEdldFNpbXBsZU9iamVjdEJ5SURFeA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2lpc2NsZXg0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lpc2NsZXg0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMmRmZmZhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaWlzY2xleDQuZGVmCkBAIC0wLDAgKzEsMTQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSUlTQ0xFWDQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElJU0NMRVg0LmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyQ2x1QWRtaW5FeHRlbnNpb24NCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJDbHVBZG1pbkV4dGVuc2lvbg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9paXNleHQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaWlzZXh0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZTQxN2IxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaWlzZXh0LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElJU0VYVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSUlTRVhULmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2lpc2xvZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9paXNsb2cuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMyYzdiZmUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9paXNsb2cuZGVmCkBAIC0wLDAgKzEsMTEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElJU0xPRy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSUlTTE9HLkRMTA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBMT0dHSU5HOjpMT0dHSU5HKGNsYXNzIExPR0dJTkcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTE9HR0lOR0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE9EQkNfQ09OTkVDVElPTjo6T0RCQ19DT05ORUNUSU9OKHZvaWQpIF9fcHRyNjQNCis/PzBPREJDX0NPTk5FQ1RJT05AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBPREJDX1BBUkFNRVRFUjo6T0RCQ19QQVJBTUVURVIodW5zaWduZWQgc2hvcnQsc2hvcnQsc2hvcnQsc2hvcnQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/ME9EQkNfUEFSQU1FVEVSQEBRRUFBQEdGRkZLQFoNCis7IHB1YmxpYzogX19jZGVjbCBPREJDX0NPTk5FQ1RJT046On5PREJDX0NPTk5FQ1RJT04odm9pZCkgX19wdHI2NA0KKz8/MU9EQkNfQ09OTkVDVElPTkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE9EQkNfUEFSQU1FVEVSOjp+T0RCQ19QQVJBTUVURVIodm9pZCkgX19wdHI2NA0KKz8/MU9EQkNfUEFSQU1FVEVSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgT0RCQ19TVEFURU1FTlQ6On5PREJDX1NUQVRFTUVOVCh2b2lkKSBfX3B0cjY0DQorPz8xT0RCQ19TVEFURU1FTlRAQFFFQUFAWFoNCis7IHB1YmxpYzogY2xhc3MgTE9HR0lORyAmIF9fcHRyNjQgX19jZGVjbCBMT0dHSU5HOjpvcGVyYXRvcj0oY2xhc3MgTE9HR0lORyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRMT0dHSU5HQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgT0RCQ19TVEFURU1FTlQgKiBfX3B0cjY0IF9fY2RlY2wgT0RCQ19DT05ORUNUSU9OOjpBbGxvY1N0YXRlbWVudCh2b2lkKSBfX3B0cjY0DQorP0FsbG9jU3RhdGVtZW50QE9EQkNfQ09OTkVDVElPTkBAUUVBQVBFQVZPREJDX1NUQVRFTUVOVEBAWFoNCis7IHB1YmxpYzogc2hvcnQgX19jZGVjbCBPREJDX1BBUkFNRVRFUjo6QmluZCh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9CaW5kQE9EQkNfUEFSQU1FVEVSQEBRRUFBRlBFQVhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPREJDX1NUQVRFTUVOVDo6QmluZFBhcmFtZXRlcihjbGFzcyBPREJDX1BBUkFNRVRFUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QmluZFBhcmFtZXRlckBPREJDX1NUQVRFTUVOVEBAUUVBQUhQRUFWT0RCQ19QQVJBTUVURVJAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9EQkNfQ09OTkVDVElPTjo6Q2xvc2Uodm9pZCkgX19wdHI2NA0KKz9DbG9zZUBPREJDX0NPTk5FQ1RJT05AQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OkNvcHlWYWx1ZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NvcHlWYWx1ZUBPREJDX1BBUkFNRVRFUkBAUUVBQUhLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OkNvcHlWYWx1ZShzdHJ1Y3QgX1NZU1RFTVRJTUUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlWYWx1ZUBPREJDX1BBUkFNRVRFUkBAUUVBQUhQRUFVX1NZU1RFTVRJTUVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9EQkNfUEFSQU1FVEVSOjpDb3B5VmFsdWUodm9pZCAqIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz9Db3B5VmFsdWVAT0RCQ19QQVJBTUVURVJAQFFFQUFIUEVBWEpAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPREJDX1BBUkFNRVRFUjo6Q29weVZhbHVlKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlWYWx1ZUBPREJDX1BBUkFNRVRFUkBAUUVBQUhQRUJEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OkNvcHlWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weVZhbHVlQE9EQkNfUEFSQU1FVEVSQEBRRUFBSFBFQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIE9EQkNfQ09OTkVDVElPTjo6RGlzcGxheVNpemUoc2hvcnQsdW5zaWduZWQgX19pbnQ2NCkNCis/RGlzcGxheVNpemVAT0RCQ19DT05ORUNUSU9OQEBTQV9LRl9LQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT0RCQ19TVEFURU1FTlQ6OkV4ZWNEaXJlY3QoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9FeGVjRGlyZWN0QE9EQkNfU1RBVEVNRU5UQEBRRUFBSFBFQkRLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT0RCQ19TVEFURU1FTlQ6OkV4ZWN1dGVTdGF0ZW1lbnQodm9pZCkgX19wdHI2NA0KKz9FeGVjdXRlU3RhdGVtZW50QE9EQkNfU1RBVEVNRU5UQEBRRUFBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBPREJDX1NUQVRFTUVOVDo6RnJlZUNvbHVtbk1lbW9yeSh2b2lkKSBfX3B0cjY0DQorP0ZyZWVDb2x1bW5NZW1vcnlAT0RCQ19TVEFURU1FTlRAQFFFQUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT0RCQ19DT05ORUNUSU9OOjpHZXRJbmZvKHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRJbmZvQE9EQkNfQ09OTkVDVElPTkBAUUVBQUhLUEVBWEtQRUFLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT0RCQ19DT05ORUNUSU9OOjpHZXRMYXN0RXJyb3JUZXh0KGNsYXNzIFNUUiAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQsc2hvcnQpY29uc3QgIF9fcHRyNjQNCis/R2V0TGFzdEVycm9yVGV4dEBPREJDX0NPTk5FQ1RJT05AQFFFQkFIUEVBVlNUUkBAUEVBWEZAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPREJDX0NPTk5FQ1RJT046OkdldExhc3RFcnJvclRleHRBc0h0bWwoY2xhc3MgU1RSICogX19wdHI2NCx2b2lkICogX19wdHI2NCxzaG9ydCljb25zdCAgX19wdHI2NA0KKz9HZXRMYXN0RXJyb3JUZXh0QXNIdG1sQE9EQkNfQ09OTkVDVElPTkBAUUVCQUhQRUFWU1RSQEBQRUFYRkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9EQkNfQ09OTkVDVElPTjo6SXNWYWxpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVmFsaWRAT0RCQ19DT05ORUNUSU9OQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9EQkNfU1RBVEVNRU5UOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBPREJDX1NUQVRFTUVOVEBAUUVCQUhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExPR0dJTkc6OkxvY2tFeGNsdXNpdmUodm9pZCkgX19wdHI2NA0KKz9Mb2NrRXhjbHVzaXZlQExPR0dJTkdAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBMT0dHSU5HOjpMb2NrU2hhcmVkKHZvaWQpIF9fcHRyNjQNCis/TG9ja1NoYXJlZEBMT0dHSU5HQEBBRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9EQkNfU1RBVEVNRU5UOjpNb3JlUmVzdWx0cyhpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP01vcmVSZXN1bHRzQE9EQkNfU1RBVEVNRU5UQEBRRUFBSFBFQUhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPREJDX0NPTk5FQ1RJT046Ok9wZW4oY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP09wZW5AT0RCQ19DT05ORUNUSU9OQEBRRUFBSFBFQkQwMEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPREJDX1NUQVRFTUVOVDo6UHJlcGFyZVN0YXRlbWVudChjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QcmVwYXJlU3RhdGVtZW50QE9EQkNfU1RBVEVNRU5UQEBRRUFBSFBFQkRAWg0KKzsgcHVibGljOiBzaG9ydCBfX2NkZWNsIE9EQkNfUEFSQU1FVEVSOjpRdWVyeUNUeXBlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDVHlwZUBPREJDX1BBUkFNRVRFUkBAUUVCQUZYWg0KKzsgcHVibGljOiBfX2ludDY0IF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OlF1ZXJ5Q2JWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q2JWYWx1ZUBPREJDX1BBUkFNRVRFUkBAUUVCQV9KWFoNCis7IHB1YmxpYzogX19pbnQ2NCAmIF9fcHRyNjQgX19jZGVjbCBPREJDX1BBUkFNRVRFUjo6UXVlcnlDYlZhbHVlUmVmKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlDYlZhbHVlUmVmQE9EQkNfUEFSQU1FVEVSQEBRRUFBQUVBX0pYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPREJDX1NUQVRFTUVOVDo6UXVlcnlDb2xOYW1lcyhjbGFzcyBTVFIgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlDb2xOYW1lc0BPREJDX1NUQVRFTUVOVEBAUUVBQUhQRUFQRUFWU1RSQEBQRUFLS1BFQUhAWg0KKzsgcHVibGljOiBzaG9ydCBfX2NkZWNsIE9EQkNfQ09OTkVDVElPTjo6UXVlcnlFcnJvckNvZGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUVycm9yQ29kZUBPREJDX0NPTk5FQ1RJT05AQFFFQkFGWFoNCis7IHB1YmxpYzogc2hvcnQgX19jZGVjbCBPREJDX1NUQVRFTUVOVDo6UXVlcnlFcnJvckNvZGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUVycm9yQ29kZUBPREJDX1NUQVRFTUVOVEBAUUVCQUZYWg0KKzsgcHVibGljOiBfX2ludDY0IF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OlF1ZXJ5TWF4Q2JWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TWF4Q2JWYWx1ZUBPREJDX1BBUkFNRVRFUkBAUUVCQV9KWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBPREJDX1BBUkFNRVRFUjo6UXVlcnlQYXJhbU51bWJlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UGFyYW1OdW1iZXJAT0RCQ19QQVJBTUVURVJAQFFFQkFHWFoNCis7IHB1YmxpYzogc2hvcnQgX19jZGVjbCBPREJDX1BBUkFNRVRFUjo6UXVlcnlQYXJhbVR5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBhcmFtVHlwZUBPREJDX1BBUkFNRVRFUkBAUUVCQUZYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OlF1ZXJ5UHJlY2lzaW9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQcmVjaXNpb25AT0RCQ19QQVJBTUVURVJAQFFFQkFLWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT0RCQ19TVEFURU1FTlQ6OlF1ZXJ5Um93Q291bnQoX19pbnQ2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlSb3dDb3VudEBPREJDX1NUQVRFTUVOVEBAUUVBQUhQRUFfSkBaDQorOyBwdWJsaWM6IHNob3J0IF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OlF1ZXJ5U2NhbGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNjYWxlQE9EQkNfUEFSQU1FVEVSQEBRRUJBRlhaDQorOyBwdWJsaWM6IHNob3J0IF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OlF1ZXJ5U3FsVHlwZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U3FsVHlwZUBPREJDX1BBUkFNRVRFUkBAUUVCQUZYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIE9EQkNfUEFSQU1FVEVSOjpRdWVyeVZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlWYWx1ZUBPREJDX1BBUkFNRVRFUkBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPREJDX1NUQVRFTUVOVDo6UXVlcnlWYWx1ZXNBc1N0cihjbGFzcyBTVFIgKiBfX3B0cjY0ICogX19wdHI2NCxpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5VmFsdWVzQXNTdHJAT0RCQ19TVEFURU1FTlRAQFFFQUFIUEVBUEVBVlNUUkBAUEVBSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9EQkNfQ09OTkVDVElPTjo6U2V0Q29ubmVjdE9wdGlvbih1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP1NldENvbm5lY3RPcHRpb25AT0RCQ19DT05ORUNUSU9OQEBRRUFBSEdfS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9EQkNfUEFSQU1FVEVSOjpTZXRWYWx1ZUJ1ZmZlcihsb25nLGxvbmcpIF9fcHRyNjQNCis/U2V0VmFsdWVCdWZmZXJAT0RCQ19QQVJBTUVURVJAQFFFQUFISkpAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgT0RCQ19DT05ORUNUSU9OOjpTdWNjZXNzKHNob3J0KQ0KKz9TdWNjZXNzQE9EQkNfQ09OTkVDVElPTkBAU0FIRkBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HR0lORzo6VW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/VW5sb2NrQExPR0dJTkdAQEFFQUFYWFoNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2lpc21hcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9paXNtYXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVmMDhjOWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9paXNtYXAuZGVmCkBAIC0wLDAgKzEsNDE4IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElJU01BUC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSUlTTUFQLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBDQWxsb2NTdHJpbmc6OkNBbGxvY1N0cmluZyh2b2lkKSBfX3B0cjY0DQorPz8wQ0FsbG9jU3RyaW5nQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Jsb2I6OkNCbG9iKHZvaWQpIF9fcHRyNjQNCis/PzBDQmxvYkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENCbG9iWEJGOjpDQmxvYlhCRih2b2lkKSBfX3B0cjY0DQorPz8wQ0Jsb2JYQkZAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ2VydDExTWFwcGluZzo6Q0NlcnQxMU1hcHBpbmcoY2xhc3MgQ0lpc0FjY3RNYXBwZXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0NlcnQxMU1hcHBpbmdAQFFFQUFAUEVBVkNJaXNBY2N0TWFwcGVyQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENDZXJ0R2xvYmFsUnVsZUluZm86OkNDZXJ0R2xvYmFsUnVsZUluZm8odm9pZCkgX19wdHI2NA0KKz8/MENDZXJ0R2xvYmFsUnVsZUluZm9AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ2VydE1hcFJ1bGU6OkNDZXJ0TWFwUnVsZSh2b2lkKSBfX3B0cjY0DQorPz8wQ0NlcnRNYXBSdWxlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0RlY29kZWRDZXJ0OjpDRGVjb2RlZENlcnQoc3RydWN0IF9DRVJUX0NPTlRFWFQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0RlY29kZWRDZXJ0QEBRRUFBQFBFQVVfQ0VSVF9DT05URVhUQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJaXNBY2N0TWFwcGVyOjpDSWlzQWNjdE1hcHBlcih2b2lkKSBfX3B0cjY0DQorPz8wQ0lpc0FjY3RNYXBwZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSWlzQ2VydDExTWFwcGVyOjpDSWlzQ2VydDExTWFwcGVyKHZvaWQpIF9fcHRyNjQNCis/PzBDSWlzQ2VydDExTWFwcGVyQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lpc1J1bGVNYXBwZXI6OkNJaXNSdWxlTWFwcGVyKHZvaWQpIF9fcHRyNjQNCis/PzBDSWlzUnVsZU1hcHBlckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJc3N1ZXJTdG9yZTo6Q0lzc3VlclN0b3JlKHZvaWQpIF9fcHRyNjQNCis/PzBDSXNzdWVyU3RvcmVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUHRyRHdvcmRYQkY6OkNQdHJEd29yZFhCRih2b2lkKSBfX3B0cjY0DQorPz8wQ1B0ckR3b3JkWEJGQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1B0clhCRjo6Q1B0clhCRih2b2lkKSBfX3B0cjY0DQorPz8wQ1B0clhCRkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTdG9yZVhCRjo6Q1N0b3JlWEJGKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MENTdG9yZVhCRkBAUUVBQUBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQWxsb2NTdHJpbmc6On5DQWxsb2NTdHJpbmcodm9pZCkgX19wdHI2NA0KKz8/MUNBbGxvY1N0cmluZ0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENCbG9iOjp+Q0Jsb2Iodm9pZCkgX19wdHI2NA0KKz8/MUNCbG9iQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Jsb2JYQkY6On5DQmxvYlhCRih2b2lkKSBfX3B0cjY0DQorPz8xQ0Jsb2JYQkZAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ2VydDExTWFwcGluZzo6fkNDZXJ0MTFNYXBwaW5nKHZvaWQpIF9fcHRyNjQNCis/PzFDQ2VydDExTWFwcGluZ0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENDZXJ0R2xvYmFsUnVsZUluZm86On5DQ2VydEdsb2JhbFJ1bGVJbmZvKHZvaWQpIF9fcHRyNjQNCis/PzFDQ2VydEdsb2JhbFJ1bGVJbmZvQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NlcnRNYXBSdWxlOjp+Q0NlcnRNYXBSdWxlKHZvaWQpIF9fcHRyNjQNCis/PzFDQ2VydE1hcFJ1bGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRGVjb2RlZENlcnQ6On5DRGVjb2RlZENlcnQodm9pZCkgX19wdHI2NA0KKz8/MUNEZWNvZGVkQ2VydEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJaXNBY2N0TWFwcGVyOjp+Q0lpc0FjY3RNYXBwZXIodm9pZCkgX19wdHI2NA0KKz8/MUNJaXNBY2N0TWFwcGVyQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lpc0NlcnQxMU1hcHBlcjo6fkNJaXNDZXJ0MTFNYXBwZXIodm9pZCkgX19wdHI2NA0KKz8/MUNJaXNDZXJ0MTFNYXBwZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSWlzUnVsZU1hcHBlcjo6fkNJaXNSdWxlTWFwcGVyKHZvaWQpIF9fcHRyNjQNCis/PzFDSWlzUnVsZU1hcHBlckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJc3N1ZXJTdG9yZTo6fkNJc3N1ZXJTdG9yZSh2b2lkKSBfX3B0cjY0DQorPz8xQ0lzc3VlclN0b3JlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1N0b3JlWEJGOjp+Q1N0b3JlWEJGKHZvaWQpIF9fcHRyNjQNCis/PzFDU3RvcmVYQkZAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDU3RyUHRyWEJGOjp+Q1N0clB0clhCRih2b2lkKSBfX3B0cjY0DQorPz8xQ1N0clB0clhCRkBAUUVBQUBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0b3JlWEJGOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNTdG9yZVhCRkBAUUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENJaXNBY2N0TWFwcGVyOjpBZGQoY2xhc3MgQ0lpc01hcHBpbmcgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9BZGRAQ0lpc0FjY3RNYXBwZXJAQFVFQUFIUEVBVkNJaXNNYXBwaW5nQEBIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENCbG9iWEJGOjpBZGRFbnRyeSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FkZEVudHJ5QENCbG9iWEJGQEBRRUFBS1BFQUVLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENTdHJQdHJYQkY6OkFkZEVudHJ5KGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEVudHJ5QENTdHJQdHJYQkZAQFFFQUFLUEVBREBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENJaXNBY2N0TWFwcGVyOjpBZGRFeChjbGFzcyBDSWlzTWFwcGluZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkRXhAQ0lpc0FjY3RNYXBwZXJAQFVFQUFLUEVBVkNJaXNNYXBwaW5nQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2VydE1hcFJ1bGU6OkFkZElzc3VlckVudHJ5KGNoYXIgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9BZGRJc3N1ZXJFbnRyeUBDQ2VydE1hcFJ1bGVAQFFFQUFIUEVBREhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1B0ckR3b3JkWEJGOjpBZGRQdHIodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BZGRQdHJAQ1B0ckR3b3JkWEJGQEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1B0clhCRjo6QWRkUHRyKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZFB0ckBDUHRyWEJGQEBRRUFBS1BFQVhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0lpc1J1bGVNYXBwZXI6OkFkZFJ1bGUoY2xhc3MgQ0NlcnRNYXBSdWxlICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRSdWxlQENJaXNSdWxlTWFwcGVyQEBRRUFBS1BFQVZDQ2VydE1hcFJ1bGVAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSWlzUnVsZU1hcHBlcjo6QWRkUnVsZSh2b2lkKSBfX3B0cjY0DQorP0FkZFJ1bGVAQ0lpc1J1bGVNYXBwZXJAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENDZXJ0TWFwUnVsZTo6QWRkUnVsZUVsZW0odW5zaWduZWQgbG9uZyxlbnVtIENFUlRfRklFTERfSUQsY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FkZFJ1bGVFbGVtQENDZXJ0TWFwUnVsZUBAUUVBQUtLVzRDRVJUX0ZJRUxEX0lEQEBQRUFEUEVBRUtLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NlcnRHbG9iYWxSdWxlSW5mbzo6QWRkUnVsZU9yZGVyKHZvaWQpIF9fcHRyNjQNCis/QWRkUnVsZU9yZGVyQENDZXJ0R2xvYmFsUnVsZUluZm9AQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0FsbG9jU3RyaW5nOjpBcHBlbmQoY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQENBbGxvY1N0cmluZ0BAUUVBQUhQRUFEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1N0b3JlWEJGOjpBcHBlbmQodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BcHBlbmRAQ1N0b3JlWEJGQEBRRUFBSEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU3RvcmVYQkY6OkFwcGVuZChjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRAQ1N0b3JlWEJGQEBRRUFBSFBFQURAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU3RvcmVYQkY6OkFwcGVuZCh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FwcGVuZEBDU3RvcmVYQkZAQFFFQUFIUEVBRUtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU3RvcmVYQkY6OkFwcGVuZFooY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kWkBDU3RvcmVYQkZAQFFFQUFIUEVBREBaDQorOyBpbnQgX19jZGVjbCBCaW5hcnlUb01hdGNoUmVxdWVzdCh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/QmluYXJ5VG9NYXRjaFJlcXVlc3RAQFlBSFBFQUVLUEVBUEVBREBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RvcmVYQkY6OkNsZWFyKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJAQ1N0b3JlWEJGQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0lpc01hcHBpbmc6OkNsb25lKGNsYXNzIENJaXNNYXBwaW5nICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2xvbmVAQ0lpc01hcHBpbmdAQFVFQUFIUEVBUEVBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lpc01hcHBpbmc6OkNsb25lRXgoY2xhc3MgQ0lpc01hcHBpbmcgKiBfX3B0cjY0ICogX19wdHI2NCxjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9DbG9uZUV4QENJaXNNYXBwaW5nQEBRRUFBSFBFQVBFQVYxQFBFQVBFQUQxUEVBSzJJQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lpc01hcHBpbmc6OkNvcHkoY2xhc3MgQ0lpc01hcHBpbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlAQ0lpc01hcHBpbmdAQFFFQUFIUEVBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lpc0FjY3RNYXBwZXI6OkNyZWF0ZSh2b2lkKSBfX3B0cjY0DQorP0NyZWF0ZUBDSWlzQWNjdE1hcHBlckBAUUVBQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIENJaXNNYXBwaW5nICogX19wdHI2NCBfX2NkZWNsIENJaXNBY2N0TWFwcGVyOjpDcmVhdGVOZXdNYXBwaW5nKHZvaWQpIF9fcHRyNjQNCis/Q3JlYXRlTmV3TWFwcGluZ0BDSWlzQWNjdE1hcHBlckBAVUVBQVBFQVZDSWlzTWFwcGluZ0BAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0lpc01hcHBpbmcgKiBfX3B0cjY0IF9fY2RlY2wgQ0lpc0NlcnQxMU1hcHBlcjo6Q3JlYXRlTmV3TWFwcGluZyh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NyZWF0ZU5ld01hcHBpbmdAQ0lpc0NlcnQxMU1hcHBlckBAUUVBQVBFQVZDSWlzTWFwcGluZ0BAUEVBRUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIENJaXNNYXBwaW5nICogX19wdHI2NCBfX2NkZWNsIENJaXNDZXJ0MTFNYXBwZXI6OkNyZWF0ZU5ld01hcHBpbmcodm9pZCkgX19wdHI2NA0KKz9DcmVhdGVOZXdNYXBwaW5nQENJaXNDZXJ0MTFNYXBwZXJAQFVFQUFQRUFWQ0lpc01hcHBpbmdAQFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTdG9yZVhCRjo6RGVjcmVhc2VVc2UodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9EZWNyZWFzZVVzZUBDU3RvcmVYQkZAQFFFQUFIS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJaXNBY2N0TWFwcGVyOjpEZWxldGUodW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/RGVsZXRlQENJaXNBY2N0TWFwcGVyQEBRRUFBSEtIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lpc0FjY3RNYXBwZXI6OkRlbGV0ZSh2b2lkKSBfX3B0cjY0DQorP0RlbGV0ZUBDSWlzQWNjdE1hcHBlckBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQmxvYlhCRjo6RGVsZXRlRW50cnkodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9EZWxldGVFbnRyeUBDQmxvYlhCRkBAUUVBQUhLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1N0clB0clhCRjo6RGVsZXRlRW50cnkodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9EZWxldGVFbnRyeUBDU3RyUHRyWEJGQEBRRUFBSEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2VydE1hcFJ1bGU6OkRlbGV0ZUlzc3VlckVudHJ5KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RGVsZXRlSXNzdWVyRW50cnlAQ0NlcnRNYXBSdWxlQEBRRUFBSEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUHRyRHdvcmRYQkY6OkRlbGV0ZVB0cih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0RlbGV0ZVB0ckBDUHRyRHdvcmRYQkZAQFFFQUFIS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENQdHJYQkY6OkRlbGV0ZVB0cih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0RlbGV0ZVB0ckBDUHRyWEJGQEBRRUFBSEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSWlzUnVsZU1hcHBlcjo6RGVsZXRlUnVsZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0RlbGV0ZVJ1bGVAQ0lpc1J1bGVNYXBwZXJAQFFFQUFIS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDZXJ0R2xvYmFsUnVsZUluZm86OkRlbGV0ZVJ1bGVCeUlkKHVuc2lnbmVkIGxvbmcsaW50KSBfX3B0cjY0DQorP0RlbGV0ZVJ1bGVCeUlkQENDZXJ0R2xvYmFsUnVsZUluZm9AQFFFQUFIS0hAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2VydE1hcFJ1bGU6OkRlbGV0ZVJ1bGVFbGVtKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RGVsZXRlUnVsZUVsZW1AQ0NlcnRNYXBSdWxlQEBRRUFBSEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2VydE1hcFJ1bGU6OkRlbGV0ZVJ1bGVFbGVtc0J5RmllbGQoZW51bSBDRVJUX0ZJRUxEX0lEKSBfX3B0cjY0DQorP0RlbGV0ZVJ1bGVFbGVtc0J5RmllbGRAQ0NlcnRNYXBSdWxlQEBRRUFBSFc0Q0VSVF9GSUVMRF9JREBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDSWlzTWFwcGluZzo6RGVzZXJpYWxpemUoc3RydWN0IF9pb2J1ZiAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVzZXJpYWxpemVAQ0lpc01hcHBpbmdAQFVFQUFIUEVBVV9pb2J1ZkBAUEVBWDFAWg0KKzsgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBFbnVtZXJhdGVLbm93blN1YkZpZWxkcyh1bnNpZ25lZCBsb25nKQ0KKz9FbnVtZXJhdGVLbm93blN1YkZpZWxkc0BAWUFQRUFES0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJaXNBY2N0TWFwcGVyOjpGaW5kTWF0Y2goY2xhc3MgQ0lpc01hcHBpbmcgKiBfX3B0cjY0LGNsYXNzIENJaXNNYXBwaW5nICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmluZE1hdGNoQENJaXNBY2N0TWFwcGVyQEBRRUFBSFBFQVZDSWlzTWFwcGluZ0BAUEVBUEVBVjJAUEVBS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJaXNBY2N0TWFwcGVyOjpGbHVzaEFsdGVybmF0ZShpbnQpIF9fcHRyNjQNCis/Rmx1c2hBbHRlcm5hdGVAQ0lpc0FjY3RNYXBwZXJAQFFFQUFISEBaDQorOyB2b2lkIF9fY2RlY2wgRnJlZU1hdGNoQ29udmVyc2lvbih2b2lkICogX19wdHI2NCkNCis/RnJlZU1hdGNoQ29udmVyc2lvbkBAWUFYUEVBWEBaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0FsbG9jU3RyaW5nOjpHZXQodm9pZCkgX19wdHI2NA0KKz9HZXRAQ0FsbG9jU3RyaW5nQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0Jsb2I6OkdldCh1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRAQ0Jsb2JAQFFFQUFQRUFFUEVBS0BaDQorOyBwdWJsaWM6IGNsYXNzIENCbG9iICogX19wdHI2NCBfX2NkZWNsIENCbG9iWEJGOjpHZXRCbG9iKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/R2V0QmxvYkBDQmxvYlhCRkBAUUVBQVBFQVZDQmxvYkBAS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1N0b3JlWEJGOjpHZXRCdWZmKHZvaWQpIF9fcHRyNjQNCis/R2V0QnVmZkBDU3RvcmVYQkZAQFFFQUFQRUFFWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0Jsb2JYQkY6OkdldEVudHJ5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEVudHJ5QENCbG9iWEJGQEBRRUFBSEtQRUFQRUFFUEVBS0BaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1N0clB0clhCRjo6R2V0RW50cnkodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9HZXRFbnRyeUBDU3RyUHRyWEJGQEBRRUFBUEVBREtAWg0KKzsgcHVibGljOiBjbGFzcyBDQ2VydEdsb2JhbFJ1bGVJbmZvICogX19wdHI2NCBfX2NkZWNsIENJaXNSdWxlTWFwcGVyOjpHZXRHbG9iYWxSdWxlc0luZm8odm9pZCkgX19wdHI2NA0KKz9HZXRHbG9iYWxSdWxlc0luZm9AQ0lpc1J1bGVNYXBwZXJAQFFFQUFQRUFWQ0NlcnRHbG9iYWxSdWxlSW5mb0BAWFoNCis7IHB1YmxpYzogc3RydWN0IF9JSVNNREJfSEVudHJ5ICogX19wdHI2NCBfX2NkZWNsIENJaXNBY2N0TWFwcGVyOjpHZXRIaWVyYXJjaHkodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0SGllcmFyY2h5QENJaXNBY2N0TWFwcGVyQEBRRUFBUEVBVV9JSVNNREJfSEVudHJ5QEBQRUFLQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBHZXRJZEZsYWdzKGVudW0gQ0VSVF9GSUVMRF9JRCkNCis/R2V0SWRGbGFnc0BAWUFLVzRDRVJUX0ZJRUxEX0lEQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGVjb2RlZENlcnQ6OkdldElzc3Vlcih2b2lkICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0SXNzdWVyQENEZWNvZGVkQ2VydEBAUUVBQUhQRUFQRUFYUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ2VydE1hcFJ1bGU6OkdldElzc3VlckNvdW50KHZvaWQpIF9fcHRyNjQNCis/R2V0SXNzdWVyQ291bnRAQ0NlcnRNYXBSdWxlQEBRRUFBS1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDZXJ0TWFwUnVsZTo6R2V0SXNzdWVyRW50cnkodW5zaWduZWQgbG9uZyxpbnQgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRJc3N1ZXJFbnRyeUBDQ2VydE1hcFJ1bGVAQFFFQUFIS1BFQUhQRUFQRUFEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NlcnRNYXBSdWxlOjpHZXRJc3N1ZXJFbnRyeUJ5TmFtZShjaGFyICogX19wdHI2NCxpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldElzc3VlckVudHJ5QnlOYW1lQENDZXJ0TWFwUnVsZUBAUUVBQUhQRUFEUEVBSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJaXNBY2N0TWFwcGVyOjpHZXRNYXBwaW5nKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0lpc01hcHBpbmcgKiBfX3B0cjY0ICogX19wdHI2NCxpbnQsaW50KSBfX3B0cjY0DQorP0dldE1hcHBpbmdAQ0lpc0FjY3RNYXBwZXJAQFFFQUFIS1BFQVBFQVZDSWlzTWFwcGluZ0BASEhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0lpc0FjY3RNYXBwZXI6OkdldE1hcHBpbmdDb3VudCh2b2lkKSBfX3B0cjY0DQorP0dldE1hcHBpbmdDb3VudEBDSWlzQWNjdE1hcHBlckBAUUVBQUtYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2VydE1hcFJ1bGU6OkdldE1hdGNoQWxsSXNzdWVyKHZvaWQpIF9fcHRyNjQNCis/R2V0TWF0Y2hBbGxJc3N1ZXJAQ0NlcnRNYXBSdWxlQEBRRUFBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQmxvYlhCRjo6R2V0TmJFbnRyeSh2b2lkKSBfX3B0cjY0DQorP0dldE5iRW50cnlAQ0Jsb2JYQkZAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENTdHJQdHJYQkY6OkdldE5iRW50cnkodm9pZCkgX19wdHI2NA0KKz9HZXROYkVudHJ5QENTdHJQdHJYQkZAQFFFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBpbnQgX19jZGVjbCBDSWlzTWFwcGluZzo6R2V0TmJGaWVsZChjaGFyICogX19wdHI2NCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE5iRmllbGRAQ0lpc01hcHBpbmdAQFVFQUFJUEVBUEVBUEVBREBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgaW50IF9fY2RlY2wgQ0lpc01hcHBpbmc6OkdldE5iRmllbGQoY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TmJGaWVsZEBDSWlzTWFwcGluZ0BAVUVBQUlQRUFQRUFQRUFEUEVBUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSXNzdWVyU3RvcmU6OkdldE5iSXNzdWVycyh2b2lkKSBfX3B0cjY0DQorP0dldE5iSXNzdWVyc0BDSXNzdWVyU3RvcmVAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENJaXNBY2N0TWFwcGVyOjpHZXROYk1hcHBpbmcoaW50KSBfX3B0cjY0DQorP0dldE5iTWFwcGluZ0BDSWlzQWNjdE1hcHBlckBAUUVBQUtIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENQdHJEd29yZFhCRjo6R2V0TmJQdHIodm9pZCkgX19wdHI2NA0KKz9HZXROYlB0ckBDUHRyRHdvcmRYQkZAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENQdHJYQkY6OkdldE5iUHRyKHZvaWQpIF9fcHRyNjQNCis/R2V0TmJQdHJAQ1B0clhCRkBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0lpc0FjY3RNYXBwZXI6OkdldE9wdGlvbnModm9pZCkgX19wdHI2NA0KKz9HZXRPcHRpb25zQENJaXNBY2N0TWFwcGVyQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0IF9fY2RlY2wgQ1B0ckR3b3JkWEJGOjpHZXRQdHIodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9HZXRQdHJAQ1B0ckR3b3JkWEJGQEBRRUFBUEVBS0tAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENQdHJYQkY6OkdldFB0cih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldFB0ckBDUHRyWEJGQEBRRUFBUEVBWEtAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENQdHJYQkY6OkdldFB0ckFkZHIodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9HZXRQdHJBZGRyQENQdHJYQkZAQFFFQUFQRUFYS0BaDQorOyBwdWJsaWM6IGNsYXNzIENDZXJ0TWFwUnVsZSAqIF9fcHRyNjQgX19jZGVjbCBDSWlzUnVsZU1hcHBlcjo6R2V0UnVsZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldFJ1bGVAQ0lpc1J1bGVNYXBwZXJAQFFFQUFQRUFWQ0NlcnRNYXBSdWxlQEBLQFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDQ2VydE1hcFJ1bGU6OkdldFJ1bGVBY2NvdW50KHZvaWQpIF9fcHRyNjQNCis/R2V0UnVsZUFjY291bnRAQ0NlcnRNYXBSdWxlQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSWlzUnVsZU1hcHBlcjo6R2V0UnVsZUNvdW50KHZvaWQpIF9fcHRyNjQNCis/R2V0UnVsZUNvdW50QENJaXNSdWxlTWFwcGVyQEBRRUFBS1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDZXJ0TWFwUnVsZTo6R2V0UnVsZURlbnlBY2Nlc3Modm9pZCkgX19wdHI2NA0KKz9HZXRSdWxlRGVueUFjY2Vzc0BDQ2VydE1hcFJ1bGVAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NlcnRNYXBSdWxlOjpHZXRSdWxlRWxlbSh1bnNpZ25lZCBsb25nLGVudW0gQ0VSVF9GSUVMRF9JRCAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRSdWxlRWxlbUBDQ2VydE1hcFJ1bGVAQFFFQUFIS1BFQVc0Q0VSVF9GSUVMRF9JREBAUEVBUEVBRFBFQUsxMkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ2VydE1hcFJ1bGU6OkdldFJ1bGVFbGVtQ291bnQodm9pZCkgX19wdHI2NA0KKz9HZXRSdWxlRWxlbUNvdW50QENDZXJ0TWFwUnVsZUBAUUVBQUtYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2VydE1hcFJ1bGU6OkdldFJ1bGVFbmFibGVkKHZvaWQpIF9fcHRyNjQNCis/R2V0UnVsZUVuYWJsZWRAQ0NlcnRNYXBSdWxlQEBRRUFBSFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0NlcnRNYXBSdWxlOjpHZXRSdWxlTmFtZSh2b2lkKSBfX3B0cjY0DQorP0dldFJ1bGVOYW1lQENDZXJ0TWFwUnVsZUBAUUVBQVBFQURYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nICogX19wdHI2NCBfX2NkZWNsIENDZXJ0R2xvYmFsUnVsZUluZm86OkdldFJ1bGVPcmRlckFycmF5KHZvaWQpIF9fcHRyNjQNCis/R2V0UnVsZU9yZGVyQXJyYXlAQ0NlcnRHbG9iYWxSdWxlSW5mb0BAUUVBQVBFQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NlcnRHbG9iYWxSdWxlSW5mbzo6R2V0UnVsZU9yZGVyQ291bnQodm9pZCkgX19wdHI2NA0KKz9HZXRSdWxlT3JkZXJDb3VudEBDQ2VydEdsb2JhbFJ1bGVJbmZvQEBRRUFBS1haDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0NlcnRNYXBSdWxlOjpHZXRSdWxlUGFzc3dvcmQodm9pZCkgX19wdHI2NA0KKz9HZXRSdWxlUGFzc3dvcmRAQ0NlcnRNYXBSdWxlQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDZXJ0R2xvYmFsUnVsZUluZm86OkdldFJ1bGVzRW5hYmxlZCh2b2lkKSBfX3B0cjY0DQorP0dldFJ1bGVzRW5hYmxlZEBDQ2VydEdsb2JhbFJ1bGVJbmZvQEBRRUFBSFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfQ0VSVF9SRE5fQVRUUiAqIF9fcHRyNjQgKiBfX3B0cjY0IF9fY2RlY2wgQ0RlY29kZWRDZXJ0OjpHZXRTdWJGaWVsZChlbnVtIENFUlRfRklFTERfSUQsY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0U3ViRmllbGRAQ0RlY29kZWRDZXJ0QEBRRUFBUEVBUEVBVV9DRVJUX1JETl9BVFRSQEBXNENFUlRfRklFTERfSURAQFBFQURQRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENTdG9yZVhCRjo6R2V0VXNlZCh2b2lkKSBfX3B0cjY0DQorP0dldFVzZWRAQ1N0b3JlWEJGQEBRRUFBS1haDQorOyBpbnQgX19jZGVjbCBJSVN1dWRlY29kZShjaGFyICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCxpbnQpDQorP0lJU3V1ZGVjb2RlQEBZQUhQRUFEUEVBRVBFQUtIQFoNCis7IGludCBfX2NkZWNsIElJU3V1ZW5jb2RlKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsaW50KQ0KKz9JSVN1dWVuY29kZUBAWUFIUEVBRUswSEBaDQorOyB2b2lkIF9fY2RlY2wgSW1wb3J0SUlTQ2VydE1hcHBpbmdzVG9JSVM2KHZvaWQpDQorP0ltcG9ydElJU0NlcnRNYXBwaW5nc1RvSUlTNkBAWUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0Jsb2I6OkluaXRTZXQodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Jbml0U2V0QENCbG9iQEBRRUFBSFBFQUVLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENCbG9iWEJGOjpJbnNlcnRFbnRyeSh1bnNpZ25lZCBsb25nLGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SW5zZXJ0RW50cnlAQ0Jsb2JYQkZAQFFFQUFLS1BFQURLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENTdHJQdHJYQkY6Okluc2VydEVudHJ5KHVuc2lnbmVkIGxvbmcsY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5zZXJ0RW50cnlAQ1N0clB0clhCRkBAUUVBQUtLUEVBREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUHRyRHdvcmRYQkY6Okluc2VydFB0cih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SW5zZXJ0UHRyQENQdHJEd29yZFhCRkBAUUVBQUtLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUHRyWEJGOjpJbnNlcnRQdHIodW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9JbnNlcnRQdHJAQ1B0clhCRkBAUUVBQUtLUEVBWEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDZXJ0R2xvYmFsUnVsZUluZm86OklzVmFsaWQodm9pZCkgX19wdHI2NA0KKz9Jc1ZhbGlkQENDZXJ0R2xvYmFsUnVsZUluZm9AQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NlcnRNYXBSdWxlOjpJc1ZhbGlkKHZvaWQpIF9fcHRyNjQNCis/SXNWYWxpZEBDQ2VydE1hcFJ1bGVAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lpc1J1bGVNYXBwZXI6OklzVmFsaWQodm9pZCkgX19wdHI2NA0KKz9Jc1ZhbGlkQENJaXNSdWxlTWFwcGVyQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJaXNBY2N0TWFwcGVyOjpMb2FkKHZvaWQpIF9fcHRyNjQNCis/TG9hZEBDSWlzQWNjdE1hcHBlckBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU3RvcmVYQkY6OkxvYWQodm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TG9hZEBDU3RvcmVYQkZAQFFFQUFIUEVBWEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSWlzQWNjdE1hcHBlcjo6TG9jayh2b2lkKSBfX3B0cjY0DQorP0xvY2tAQ0lpc0FjY3RNYXBwZXJAQFFFQUFYWFoNCis7IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgTWFwQXNuMVRvU3ViRmllbGQoY2hhciAqIF9fcHRyNjQpDQorP01hcEFzbjFUb1N1YkZpZWxkQEBZQVBFQURQRUFEQFoNCis7IGVudW0gQ0VSVF9GSUVMRF9JRCAgX19jZGVjbCBNYXBGaWVsZFRvSWQoY2hhciAqIF9fcHRyNjQpDQorP01hcEZpZWxkVG9JZEBAWUE/QVc0Q0VSVF9GSUVMRF9JREBAUEVBREBaDQorOyBjaGFyICogX19wdHI2NCBfX2NkZWNsIE1hcElkVG9GaWVsZChlbnVtIENFUlRfRklFTERfSUQpDQorP01hcElkVG9GaWVsZEBAWUFQRUFEVzRDRVJUX0ZJRUxEX0lEQEBAWg0KKzsgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBNYXBTdWJGaWVsZFRvQXNuMShjaGFyICogX19wdHI2NCkNCis/TWFwU3ViRmllbGRUb0FzbjFAQFlBUEVBRFBFQURAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENJaXNNYXBwaW5nOjpNYXBwaW5nR2V0RmllbGQodW5zaWduZWQgbG9uZyxjaGFyICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TWFwcGluZ0dldEZpZWxkQENJaXNNYXBwaW5nQEBVRUFBSEtQRUFQRUFEQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDSWlzTWFwcGluZzo6TWFwcGluZ0dldEZpZWxkKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9NYXBwaW5nR2V0RmllbGRAQ0lpc01hcHBpbmdAQFVFQUFIS1BFQVBFQUVQRUFLSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJaXNBY2N0TWFwcGVyOjpNYXBwaW5nR2V0RmllbGRMaXN0KHN0cnVjdCBfSUlTTURCX0ZpZWxkcyAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP01hcHBpbmdHZXRGaWVsZExpc3RAQ0lpc0FjY3RNYXBwZXJAQFFFQUFIUEVBUEVBVV9JSVNNREJfRmllbGRzQEBQRUFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDSWlzTWFwcGluZzo6TWFwcGluZ1NldEZpZWxkKHVuc2lnbmVkIGxvbmcsY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TWFwcGluZ1NldEZpZWxkQENJaXNNYXBwaW5nQEBVRUFBSEtQRUFEQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDSWlzTWFwcGluZzo6TWFwcGluZ1NldEZpZWxkKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/TWFwcGluZ1NldEZpZWxkQENJaXNNYXBwaW5nQEBVRUFBSEtQRUFFS0hAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2VydE1hcFJ1bGU6Ok1hdGNoKGNsYXNzIENEZWNvZGVkQ2VydCAqIF9fcHRyNjQsY2xhc3MgQ0RlY29kZWRDZXJ0ICogX19wdHI2NCxjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCxpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP01hdGNoQENDZXJ0TWFwUnVsZUBAUUVBQUhQRUFWQ0RlY29kZWRDZXJ0QEAwUEVBRDFQRUFIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lpc1J1bGVNYXBwZXI6Ok1hdGNoKHN0cnVjdCBfQ0VSVF9DT05URVhUICogX19wdHI2NCxzdHJ1Y3QgX0NFUlRfQ09OVEVYVCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz9NYXRjaEBDSWlzUnVsZU1hcHBlckBAUUVBQUhQRUFVX0NFUlRfQ09OVEVYVEBAMFBFQUcxQFoNCis7IGludCBfX2NkZWNsIE1hdGNoUmVxdWVzdFRvQmluYXJ5KGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkNCis/TWF0Y2hSZXF1ZXN0VG9CaW5hcnlAQFlBSFBFQURQRUFQRUFFUEVBS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTdG9yZVhCRjo6TmVlZCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP05lZWRAQ1N0b3JlWEJGQEBRRUFBSEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0lpc1J1bGVNYXBwZXI6OlJlYWRMb2NrUnVsZXModm9pZCkgX19wdHI2NA0KKz9SZWFkTG9ja1J1bGVzQENJaXNSdWxlTWFwcGVyQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSWlzUnVsZU1hcHBlcjo6UmVhZFVubG9ja1J1bGVzKHZvaWQpIF9fcHRyNjQNCis/UmVhZFVubG9ja1J1bGVzQENJaXNSdWxlTWFwcGVyQEBRRUFBWFhaDQorOyBpbnQgX19jZGVjbCBSZXBvcnRJaXNNYXBFdmVudCh1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0LGNoYXIgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/UmVwb3J0SWlzTWFwRXZlbnRAQFlBSEdLR1BFQVBFQkRAWg0KKzsgaW50IF9fY2RlY2wgUmVwb3J0SWlzTWFwRXZlbnRXKHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/UmVwb3J0SWlzTWFwRXZlbnRXQEBZQUhHS0dQRUFQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENBbGxvY1N0cmluZzo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBDQWxsb2NTdHJpbmdAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENCbG9iOjpSZXNldCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QENCbG9iQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQmxvYlhCRjo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBDQmxvYlhCRkBAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2VydEdsb2JhbFJ1bGVJbmZvOjpSZXNldCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QENDZXJ0R2xvYmFsUnVsZUluZm9AQFFFQUFIWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDZXJ0TWFwUnVsZTo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBDQ2VydE1hcFJ1bGVAQFFFQUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lpc0FjY3RNYXBwZXI6OlJlc2V0KHZvaWQpIF9fcHRyNjQNCis/UmVzZXRAQ0lpc0FjY3RNYXBwZXJAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lpc1J1bGVNYXBwZXI6OlJlc2V0KHZvaWQpIF9fcHRyNjQNCis/UmVzZXRAQ0lpc1J1bGVNYXBwZXJAQFFFQUFIWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJc3N1ZXJTdG9yZTo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBDSXNzdWVyU3RvcmVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdG9yZVhCRjo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBDU3RvcmVYQkZAQFFFQUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lpc0FjY3RNYXBwZXI6OlNhdmUodm9pZCkgX19wdHI2NA0KKz9TYXZlQENJaXNBY2N0TWFwcGVyQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTdG9yZVhCRjo6U2F2ZSh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9TYXZlQENTdG9yZVhCRkBAUUVBQUhQRUFYQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0FsbG9jU3RyaW5nOjpTZXJpYWxpemUoY2xhc3MgQ1N0b3JlWEJGICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXJpYWxpemVAQ0FsbG9jU3RyaW5nQEBRRUFBSFBFQVZDU3RvcmVYQkZAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENCbG9iOjpTZXJpYWxpemUoY2xhc3MgQ1N0b3JlWEJGICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXJpYWxpemVAQ0Jsb2JAQFFFQUFIUEVBVkNTdG9yZVhCRkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0Jsb2JYQkY6OlNlcmlhbGl6ZShjbGFzcyBDU3RvcmVYQkYgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NlcmlhbGl6ZUBDQmxvYlhCRkBAUUVBQUhQRUFWQ1N0b3JlWEJGQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2VydE1hcFJ1bGU6OlNlcmlhbGl6ZShjbGFzcyBDU3RvcmVYQkYgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NlcmlhbGl6ZUBDQ2VydE1hcFJ1bGVAQFFFQUFIUEVBVkNTdG9yZVhCRkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lpc0FjY3RNYXBwZXI6OlNlcmlhbGl6ZShjbGFzcyBDU3RvcmVYQkYgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NlcmlhbGl6ZUBDSWlzQWNjdE1hcHBlckBAUUVBQUhQRUFWQ1N0b3JlWEJGQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSWlzQWNjdE1hcHBlcjo6U2VyaWFsaXplKHZvaWQpIF9fcHRyNjQNCis/U2VyaWFsaXplQENJaXNBY2N0TWFwcGVyQEBRRUFBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0lpc01hcHBpbmc6OlNlcmlhbGl6ZShzdHJ1Y3QgX2lvYnVmICogX19wdHI2NCx2b2lkICogX19wdHI2NCx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXJpYWxpemVAQ0lpc01hcHBpbmdAQFVFQUFIUEVBVV9pb2J1ZkBAUEVBWDFAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSWlzUnVsZU1hcHBlcjo6U2VyaWFsaXplKGNsYXNzIENTdG9yZVhCRiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VyaWFsaXplQENJaXNSdWxlTWFwcGVyQEBRRUFBSFBFQVZDU3RvcmVYQkZAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJc3N1ZXJTdG9yZTo6U2VyaWFsaXplKGNsYXNzIENTdG9yZVhCRiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VyaWFsaXplQENJc3N1ZXJTdG9yZUBAUUVBQUhQRUFWQ1N0b3JlWEJGQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUHRyRHdvcmRYQkY6OlNlcmlhbGl6ZShjbGFzcyBDU3RvcmVYQkYgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NlcmlhbGl6ZUBDUHRyRHdvcmRYQkZAQFFFQUFIUEVBVkNTdG9yZVhCRkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1B0clhCRjo6U2VyaWFsaXplKGNsYXNzIENTdG9yZVhCRiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VyaWFsaXplQENQdHJYQkZAQFFFQUFIUEVBVkNTdG9yZVhCRkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1N0clB0clhCRjo6U2VyaWFsaXplKGNsYXNzIENTdG9yZVhCRiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VyaWFsaXplQENTdHJQdHJYQkZAQFFFQUFIUEVBVkNTdG9yZVhCRkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NlcnRHbG9iYWxSdWxlSW5mbzo6U2VyaWFsaXplR2xvYmFsUnVsZUluZm8oY2xhc3MgQ1N0b3JlWEJGICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXJpYWxpemVHbG9iYWxSdWxlSW5mb0BDQ2VydEdsb2JhbFJ1bGVJbmZvQEBRRUFBSFBFQVZDU3RvcmVYQkZAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENBbGxvY1N0cmluZzo6U2V0KGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEBDQWxsb2NTdHJpbmdAQFFFQUFIUEVBREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENCbG9iOjpTZXQodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRAQ0Jsb2JAQFFFQUFIUEVBRUtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQmxvYlhCRjo6U2V0RW50cnkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldEVudHJ5QENCbG9iWEJGQEBRRUFBSEtQRUFFS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTdHJQdHJYQkY6OlNldEVudHJ5KHVuc2lnbmVkIGxvbmcsY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RW50cnlAQ1N0clB0clhCRkBAUUVBQUhLUEVBREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDZXJ0TWFwUnVsZTo6U2V0SXNzdWVyRW50cnlBY2NlcHRTdGF0dXModW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/U2V0SXNzdWVyRW50cnlBY2NlcHRTdGF0dXNAQ0NlcnRNYXBSdWxlQEBRRUFBSEtIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDZXJ0TWFwUnVsZTo6U2V0TWF0Y2hBbGxJc3N1ZXIoaW50KSBfX3B0cjY0DQorP1NldE1hdGNoQWxsSXNzdWVyQENDZXJ0TWFwUnVsZUBAUUVBQVhIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1B0ckR3b3JkWEJGOjpTZXRQdHIodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFB0ckBDUHRyRHdvcmRYQkZAQFFFQUFIS0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUHRyWEJGOjpTZXRQdHIodW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQdHJAQ1B0clhCRkBAUUVBQUhLUEVBWEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDZXJ0TWFwUnVsZTo6U2V0UnVsZUFjY291bnQoY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UnVsZUFjY291bnRAQ0NlcnRNYXBSdWxlQEBRRUFBSFBFQURAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NlcnRNYXBSdWxlOjpTZXRSdWxlRGVueUFjY2VzcyhpbnQpIF9fcHRyNjQNCis/U2V0UnVsZURlbnlBY2Nlc3NAQ0NlcnRNYXBSdWxlQEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NlcnRNYXBSdWxlOjpTZXRSdWxlRW5hYmxlZChpbnQpIF9fcHRyNjQNCis/U2V0UnVsZUVuYWJsZWRAQ0NlcnRNYXBSdWxlQEBRRUFBWEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2VydE1hcFJ1bGU6OlNldFJ1bGVOYW1lKGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFJ1bGVOYW1lQENDZXJ0TWFwUnVsZUBAUUVBQUhQRUFEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NlcnRNYXBSdWxlOjpTZXRSdWxlUGFzc3dvcmQoY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UnVsZVBhc3N3b3JkQENDZXJ0TWFwUnVsZUBAUUVBQUhQRUFEQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDZXJ0R2xvYmFsUnVsZUluZm86OlNldFJ1bGVzRW5hYmxlZChpbnQpIF9fcHRyNjQNCis/U2V0UnVsZXNFbmFibGVkQENDZXJ0R2xvYmFsUnVsZUluZm9AQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSWlzQWNjdE1hcHBlcjo6VW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/VW5sb2NrQENJaXNBY2N0TWFwcGVyQEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENBbGxvY1N0cmluZzo6VW5zZXJpYWxpemUodW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1Vuc2VyaWFsaXplQENBbGxvY1N0cmluZ0BAUUVBQUhQRUFQRUFFUEVBS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENCbG9iOjpVbnNlcmlhbGl6ZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VW5zZXJpYWxpemVAQ0Jsb2JAQFFFQUFIUEVBUEVBRVBFQUtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQmxvYlhCRjo6VW5zZXJpYWxpemUodW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/VW5zZXJpYWxpemVAQ0Jsb2JYQkZAQFFFQUFIUEVBUEVBRVBFQUtLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NlcnRNYXBSdWxlOjpVbnNlcmlhbGl6ZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VW5zZXJpYWxpemVAQ0NlcnRNYXBSdWxlQEBRRUFBSFBFQVBFQUVQRUFLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NlcnRNYXBSdWxlOjpVbnNlcmlhbGl6ZShjbGFzcyBDU3RvcmVYQkYgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1Vuc2VyaWFsaXplQENDZXJ0TWFwUnVsZUBAUUVBQUhQRUFWQ1N0b3JlWEJGQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSWlzQWNjdE1hcHBlcjo6VW5zZXJpYWxpemUodW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1Vuc2VyaWFsaXplQENJaXNBY2N0TWFwcGVyQEBRRUFBSFBFQVBFQUVQRUFLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lpc0FjY3RNYXBwZXI6OlVuc2VyaWFsaXplKGNsYXNzIENTdG9yZVhCRiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VW5zZXJpYWxpemVAQ0lpc0FjY3RNYXBwZXJAQFFFQUFIUEVBVkNTdG9yZVhCRkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lpc0FjY3RNYXBwZXI6OlVuc2VyaWFsaXplKHZvaWQpIF9fcHRyNjQNCis/VW5zZXJpYWxpemVAQ0lpc0FjY3RNYXBwZXJAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lpc1J1bGVNYXBwZXI6OlVuc2VyaWFsaXplKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9VbnNlcmlhbGl6ZUBDSWlzUnVsZU1hcHBlckBAUUVBQUhQRUFQRUFFUEVBS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJaXNSdWxlTWFwcGVyOjpVbnNlcmlhbGl6ZShjbGFzcyBDU3RvcmVYQkYgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1Vuc2VyaWFsaXplQENJaXNSdWxlTWFwcGVyQEBRRUFBSFBFQVZDU3RvcmVYQkZAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJc3N1ZXJTdG9yZTo6VW5zZXJpYWxpemUodW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1Vuc2VyaWFsaXplQENJc3N1ZXJTdG9yZUBAUUVBQUhQRUFQRUFFUEVBS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJc3N1ZXJTdG9yZTo6VW5zZXJpYWxpemUoY2xhc3MgQ1N0b3JlWEJGICogX19wdHI2NCkgX19wdHI2NA0KKz9VbnNlcmlhbGl6ZUBDSXNzdWVyU3RvcmVAQFFFQUFIUEVBVkNTdG9yZVhCRkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1B0ckR3b3JkWEJGOjpVbnNlcmlhbGl6ZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9VbnNlcmlhbGl6ZUBDUHRyRHdvcmRYQkZAQFFFQUFIUEVBUEVBRVBFQUtLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1B0clhCRjo6VW5zZXJpYWxpemUodW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/VW5zZXJpYWxpemVAQ1B0clhCRkBAUUVBQUhQRUFQRUFFUEVBS0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU3RyUHRyWEJGOjpVbnNlcmlhbGl6ZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9VbnNlcmlhbGl6ZUBDU3RyUHRyWEJGQEBRRUFBSFBFQVBFQUVQRUFLS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDZXJ0R2xvYmFsUnVsZUluZm86OlVuc2VyaWFsaXplR2xvYmFsUnVsZUluZm8odW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1Vuc2VyaWFsaXplR2xvYmFsUnVsZUluZm9AQ0NlcnRHbG9iYWxSdWxlSW5mb0BAUUVBQUhQRUFQRUFFUEVBS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJaXNBY2N0TWFwcGVyOjpVcGRhdGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9VcGRhdGVAQ0lpc0FjY3RNYXBwZXJAQFFFQUFIS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJaXNBY2N0TWFwcGVyOjpVcGRhdGUodW5zaWduZWQgbG9uZyxjbGFzcyBDSWlzTWFwcGluZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VXBkYXRlQENJaXNBY2N0TWFwcGVyQEBRRUFBSEtQRUFWQ0lpc01hcHBpbmdAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJaXNBY2N0TWFwcGVyOjpVcGRhdGVDbGFzc2VzKGludCkgX19wdHI2NA0KKz9VcGRhdGVDbGFzc2VzQENJaXNBY2N0TWFwcGVyQEBRRUFBSEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSWlzQWNjdE1hcHBlcjo6VXBkYXRlSGllcmFyY2h5KHZvaWQpIF9fcHRyNjQNCis/VXBkYXRlSGllcmFyY2h5QENJaXNBY2N0TWFwcGVyQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJaXNNYXBwaW5nOjpVcGRhdGVNYXNrKHN0cnVjdCBfSUlTTURCX0hFbnRyeSAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9VcGRhdGVNYXNrQENJaXNNYXBwaW5nQEBRRUFBSFBFQVVfSUlTTURCX0hFbnRyeUBAS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSWlzUnVsZU1hcHBlcjo6V3JpdGVMb2NrUnVsZXModm9pZCkgX19wdHI2NA0KKz9Xcml0ZUxvY2tSdWxlc0BDSWlzUnVsZU1hcHBlckBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0lpc1J1bGVNYXBwZXI6OldyaXRlVW5sb2NrUnVsZXModm9pZCkgX19wdHI2NA0KKz9Xcml0ZVVubG9ja1J1bGVzQENJaXNSdWxlTWFwcGVyQEBRRUFBWFhaDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaWlzcnN0YXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaWlzcnN0YXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdkYzFmZjkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9paXNyc3RhcC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJSVNSU1RBUC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSUlTUlNUQVAuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaWlzcnRsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lpc3J0bC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzc1NGM1YQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lpc3J0bC5kZWYKQEAgLTAsMCArMSwyMDQ0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElpc1JUTC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSWlzUlRMLkRMTA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBDRGF0YUNhY2hlPHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlk+OjpDRGF0YUNhY2hlPHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlk+KHZvaWQpIF9fcHRyNjQNCis/PzA/JENEYXRhQ2FjaGVAVURBVEVUSU1FX0ZPUk1BVF9FTlRSWUBAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0RhdGFDYWNoZTxjbGFzcyBDRGF0ZVRpbWU+OjpDRGF0YUNhY2hlPGNsYXNzIENEYXRlVGltZT4odm9pZCkgX19wdHI2NA0KKz8/MD8kQ0RhdGFDYWNoZUBWQ0RhdGVUaW1lQEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpBTExPQ19DQUNIRV9IQU5ETEVSKGNoYXIgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBfQUxMT0NfQ0FDSEVfQ09ORklHVVJBVElPTiBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wQUxMT0NfQ0FDSEVfSEFORExFUkBAUUVBQUBQRUJEUEVCVV9BTExPQ19DQUNIRV9DT05GSUdVUkFUSU9OQEBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBBU0NMT0dfREFURVRJTUVfQ0FDSEU6OkFTQ0xPR19EQVRFVElNRV9DQUNIRSh2b2lkKSBfX3B0cjY0DQorPz8wQVNDTE9HX0RBVEVUSU1FX0NBQ0hFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlVGRkVSOjpCVUZGRVIodW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQlVGRkVSQEBRRUFBQElAWg0KKzsgcHVibGljOiBfX2NkZWNsIEJVRkZFUjo6QlVGRkVSKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MEJVRkZFUkBAUUVBQUBQRUFFSUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlVGRkVSX0NIQUlOOjpCVUZGRVJfQ0hBSU4odm9pZCkgX19wdHI2NA0KKz8/MEJVRkZFUl9DSEFJTkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEJVRkZFUl9DSEFJTl9JVEVNOjpCVUZGRVJfQ0hBSU5fSVRFTSh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBCVUZGRVJfQ0hBSU5fSVRFTUBAUUVBQUBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQUNIRURfREFURVRJTUVfRk9STUFUUzo6Q0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFModm9pZCkgX19wdHI2NA0KKz8/MENBQ0hFRF9EQVRFVElNRV9GT1JNQVRTQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NyaXRTZWM6OkNDcml0U2VjKHZvaWQpIF9fcHRyNjQNCis/PzBDQ3JpdFNlY0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENERlRDYWNoZTo6Q0RGVENhY2hlKHZvaWQpIF9fcHRyNjQNCis/PzBDREZUQ2FjaGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRGF0ZVRpbWU6OkNEYXRlVGltZShzdHJ1Y3QgX0ZJTEVUSU1FIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENEYXRlVGltZUBAUUVBQUBBRUJVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENEYXRlVGltZTo6Q0RhdGVUaW1lKHN0cnVjdCBfRklMRVRJTUUgY29uc3QgJiBfX3B0cjY0LHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRGF0ZVRpbWVAQFFFQUFAQUVCVV9GSUxFVElNRUBAQUVCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENEYXRlVGltZTo6Q0RhdGVUaW1lKHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRGF0ZVRpbWVAQFFFQUFAQUVCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENEYXRlVGltZTo6Q0RhdGVUaW1lKHZvaWQpIF9fcHRyNjQNCis/PzBDRGF0ZVRpbWVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRG91YmxlTGlzdDo6Q0RvdWJsZUxpc3Qodm9pZCkgX19wdHI2NA0KKz8/MENEb3VibGVMaXN0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0V0d1RyYWNlcjo6Q0V0d1RyYWNlcih2b2lkKSBfX3B0cjY0DQorPz8wQ0V0d1RyYWNlckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENGYWtlTG9jazo6Q0Zha2VMb2NrKHZvaWQpIF9fcHRyNjQNCis/PzBDRmFrZUxvY2tAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpDTEtSSGFzaFRhYmxlKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQgY29uc3QgIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQpLHVuc2lnbmVkIGxvbmcgKF9fY2RlY2wqKSh1bnNpZ25lZCBfX2ludDY0KSxib29sIChfX2NkZWNsKikodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KSx2b2lkIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsaW50KSxkb3VibGUsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGJvb2wpIF9fcHRyNjQNCis/PzBDTEtSSGFzaFRhYmxlQEBRRUFBQFBFQkRQNkE/Ql9LUEVCWEBaUDZBS19LQFpQNkFfTjMzQFpQNkFYMUhAWk5LS19OQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTEtSSGFzaFRhYmxlU3RhdHM6OkNMS1JIYXNoVGFibGVTdGF0cyh2b2lkKSBfX3B0cjY0DQorPz8wQ0xLUkhhc2hUYWJsZVN0YXRzQEBRRUFBQFhaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6Q0xLUkhhc2hUYWJsZV9JdGVyYXRvcihjbGFzcyBDTEtSSGFzaFRhYmxlICogX19wdHI2NCxzaG9ydCkgX19wdHI2NA0KKz8/MENMS1JIYXNoVGFibGVfSXRlcmF0b3JAQElFQUFAUEVBVkNMS1JIYXNoVGFibGVAQEZAWg0KKzsgcHVibGljOiBfX2NkZWNsIENMS1JIYXNoVGFibGVfSXRlcmF0b3I6OkNMS1JIYXNoVGFibGVfSXRlcmF0b3IoY2xhc3MgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6Q0xLUkhhc2hUYWJsZV9JdGVyYXRvcih2b2lkKSBfX3B0cjY0DQorPz8wQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAUUVBQUBYWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpDTEtSTGluZWFySGFzaFRhYmxlKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQgY29uc3QgIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQpLHVuc2lnbmVkIGxvbmcgKF9fY2RlY2wqKSh1bnNpZ25lZCBfX2ludDY0KSxib29sIChfX2NkZWNsKikodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KSx2b2lkIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsaW50KSxkb3VibGUsdW5zaWduZWQgbG9uZyxjbGFzcyBDTEtSSGFzaFRhYmxlICogX19wdHI2NCxib29sKSBfX3B0cjY0DQorPz8wQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQUBQRUJEUDZBP0JfS1BFQlhAWlA2QUtfS0BaUDZBX04zM0BaUDZBWDFIQFpOS1BFQVZDTEtSSGFzaFRhYmxlQEBfTkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q0xLUkxpbmVhckhhc2hUYWJsZShjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0IGNvbnN0ICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0KSx1bnNpZ25lZCBsb25nIChfX2NkZWNsKikodW5zaWduZWQgX19pbnQ2NCksYm9vbCAoX19jZGVjbCopKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCksdm9pZCAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LGludCksZG91YmxlLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxib29sKSBfX3B0cjY0DQorPz8wQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQUBQRUJEUDZBP0JfS1BFQlhAWlA2QUtfS0BaUDZBX04zM0BaUDZBWDFIQFpOS0tfTkBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcjo6Q0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcihjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlICogX19wdHI2NCxjbGFzcyBDTm9kZUNsdW1wICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHNob3J0KSBfX3B0cjY0DQorPz8wQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBASUVBQUBQRUFWQ0xLUkxpbmVhckhhc2hUYWJsZUBAUEVBVkNOb2RlQ2x1bXBAQEtGQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjpDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3I6OkNMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3Iodm9pZCkgX19wdHI2NA0KKz8/MENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTG9ja2VkRG91YmxlTGlzdDo6Q0xvY2tlZERvdWJsZUxpc3Qodm9pZCkgX19wdHI2NA0KKz8/MENMb2NrZWREb3VibGVMaXN0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0xvY2tlZFNpbmdsZUxpc3Q6OkNMb2NrZWRTaW5nbGVMaXN0KHZvaWQpIF9fcHRyNjQNCis/PzBDTG9ja2VkU2luZ2xlTGlzdEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6Q1JlYWRlcldyaXRlckxvY2syKHZvaWQpIF9fcHRyNjQNCis/PzBDUmVhZGVyV3JpdGVyTG9jazJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OkNSZWFkZXJXcml0ZXJMb2NrMyh2b2lkKSBfX3B0cjY0DQorPz8wQ1JlYWRlcldyaXRlckxvY2szQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OkNSZWFkZXJXcml0ZXJMb2NrKHZvaWQpIF9fcHRyNjQNCis/PzBDUmVhZGVyV3JpdGVyTG9ja0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENSdGxSZXNvdXJjZTo6Q1J0bFJlc291cmNlKHZvaWQpIF9fcHRyNjQNCis/PzBDUnRsUmVzb3VyY2VAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDU2hhcmVMb2NrOjpDU2hhcmVMb2NrKHZvaWQpIF9fcHRyNjQNCis/PzBDU2hhcmVMb2NrQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1NoYXJlbG9jazo6Q1NoYXJlbG9jayhpbnQsaW50KSBfX3B0cjY0DQorPz8wQ1NoYXJlbG9ja0BAUUVBQUBISEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1NpbmdsZUxpc3Q6OkNTaW5nbGVMaXN0KHZvaWQpIF9fcHRyNjQNCis/PzBDU2luZ2xlTGlzdEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpDU21hbGxTcGluTG9jayh2b2lkKSBfX3B0cjY0DQorPz8wQ1NtYWxsU3BpbkxvY2tAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDU3BpbkxvY2s6OkNTcGluTG9jayh2b2lkKSBfX3B0cjY0DQorPz8wQ1NwaW5Mb2NrQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRVZFTlRfTE9HOjpFVkVOVF9MT0coY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBFVkVOVF9MT0dAQFFFQUFAUEVCREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgRVhUTE9HX0RBVEVUSU1FX0NBQ0hFOjpFWFRMT0dfREFURVRJTUVfQ0FDSEUodm9pZCkgX19wdHI2NA0KKz8/MEVYVExPR19EQVRFVElNRV9DQUNIRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEhBU0hfVEFCTEU6OkhBU0hfVEFCTEUoY2xhc3MgSEFTSF9UQUJMRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBIQVNIX1RBQkxFQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSEFTSF9UQUJMRTo6SEFTSF9UQUJMRSh1bnNpZ25lZCBsb25nLGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBIQVNIX1RBQkxFQEBRRUFBQEtQRUJES0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgSEFTSF9UQUJMRV9CVUNLRVQ6OkhBU0hfVEFCTEVfQlVDS0VUKHZvaWQpIF9fcHRyNjQNCis/PzBIQVNIX1RBQkxFX0JVQ0tFVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEhUQl9FTEVNRU5UOjpIVEJfRUxFTUVOVCh2b2lkKSBfX3B0cjY0DQorPz8wSFRCX0VMRU1FTlRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBIVF9FTEVNRU5UOjpIVF9FTEVNRU5UKGNsYXNzIEhUX0VMRU1FTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wSFRfRUxFTUVOVEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIEhUX0VMRU1FTlQ6OkhUX0VMRU1FTlQodm9pZCkgX19wdHI2NA0KKz8/MEhUX0VMRU1FTlRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBNTFNaQVU6Ok1MU1pBVShjbGFzcyBNTFNaQVUgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTUxTWkFVQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTUxTWkFVOjpNTFNaQVUoY2hhciAqIF9fcHRyNjQgY29uc3QsaW50LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBNTFNaQVVAQFFFQUFAUUVBREhLQFoNCis7IHB1YmxpYzogX19jZGVjbCBNTFNaQVU6Ok1MU1pBVShjaGFyICogX19wdHI2NCBjb25zdCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wTUxTWkFVQEBRRUFBQFFFQURLQFoNCis7IHB1YmxpYzogX19jZGVjbCBNTFNaQVU6Ok1MU1pBVSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgY29uc3QsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/ME1MU1pBVUBAUUVBQUBRRUFHS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgTUxTWkFVOjpNTFNaQVUodm9pZCkgX19wdHI2NA0KKz8/ME1MU1pBVUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE1VTFRJU1o6Ok1VTFRJU1ooY2xhc3MgTVVMVElTWiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBNVUxUSVNaQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTVVMVElTWjo6TVVMVElTWihjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wTVVMVElTWkBAUUVBQUBQRUFES0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgTVVMVElTWjo6TVVMVElTWihjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/ME1VTFRJU1pAQFFFQUFAUEVCREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTVVMVElTWjo6TVVMVElTWih2b2lkKSBfX3B0cjY0DQorPz8wTVVMVElTWkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUjo6U1RSKGNsYXNzIFNUUiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTVFJAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTVFI6OlNUUih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wU1RSQEBRRUFBQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUjo6U1RSKGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsaW50KSBfX3B0cjY0DQorPz8wU1RSQEBRRUFBQFBFQURLSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1RSOjpTVFIoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTVFJAQFFFQUFAUEVCREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1RSOjpTVFIodm9pZCkgX19wdHI2NA0KKz8/MFNUUkBAUUVBQUBYWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBTVFJBOjpTVFJBKGNsYXNzIFNUUkEgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU1RSQUBAQUVBQUBBRUJWMEBAWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBTVFJBOjpTVFJBKGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU1RSQUBAQUVBQUBQRUFEQFoNCis7IHByaXZhdGU6IF9fY2RlY2wgU1RSQTo6U1RSQShjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNUUkFAQEFFQUFAUEVCREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1RSQTo6U1RSQShjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wU1RSQUBAUUVBQUBQRUFES0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1RSQTo6U1RSQSh2b2lkKSBfX3B0cjY0DQorPz8wU1RSQUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUkFVOjpTVFJBVShjbGFzcyBTVFJBVSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTVFJBVUBAUUVBQUBBRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUkFVOjpTVFJBVShjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNUUkFVQEBRRUFBQFBFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUkFVOjpTVFJBVShjaGFyIGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBTVFJBVUBAUUVBQUBQRUJESEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1RSQVU6OlNUUkFVKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNUUkFVQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUkFVOjpTVFJBVSh2b2lkKSBfX3B0cjY0DQorPz8wU1RSQVVAQFFFQUFAWFoNCis7IHByaXZhdGU6IF9fY2RlY2wgU1RSVTo6U1RSVShjbGFzcyBTVFJVIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNUUlVAQEFFQUFAQUVCVjBAQFoNCis7IHByaXZhdGU6IF9fY2RlY2wgU1RSVTo6U1RSVSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTVFJVQEBBRUFBQFBFQUdAWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBTVFJVOjpTVFJVKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNUUlVAQEFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1RSVTo6U1RSVSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNUUlVAQFFFQUFAUEVBR0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUlU6OlNUUlUodm9pZCkgX19wdHI2NA0KKz8/MFNUUlVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBUU19SRVNPVVJDRTo6VFNfUkVTT1VSQ0Uodm9pZCkgX19wdHI2NA0KKz8/MFRTX1JFU09VUkNFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVzNfREFURVRJTUVfQ0FDSEU6OlczX0RBVEVUSU1FX0NBQ0hFKHZvaWQpIF9fcHRyNjQNCis/PzBXM19EQVRFVElNRV9DQUNIRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6On5BTExPQ19DQUNIRV9IQU5ETEVSKHZvaWQpIF9fcHRyNjQNCis/PzFBTExPQ19DQUNIRV9IQU5ETEVSQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBBU0NMT0dfREFURVRJTUVfQ0FDSEU6On5BU0NMT0dfREFURVRJTUVfQ0FDSEUodm9pZCkgX19wdHI2NA0KKz8/MUFTQ0xPR19EQVRFVElNRV9DQUNIRUBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEJVRkZFUjo6fkJVRkZFUih2b2lkKSBfX3B0cjY0DQorPz8xQlVGRkVSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlVGRkVSX0NIQUlOOjp+QlVGRkVSX0NIQUlOKHZvaWQpIF9fcHRyNjQNCis/PzFCVUZGRVJfQ0hBSU5AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCVUZGRVJfQ0hBSU5fSVRFTTo6fkJVRkZFUl9DSEFJTl9JVEVNKHZvaWQpIF9fcHRyNjQNCis/PzFCVUZGRVJfQ0hBSU5fSVRFTUBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFM6On5DQUNIRURfREFURVRJTUVfRk9STUFUUyh2b2lkKSBfX3B0cjY0DQorPz8xQ0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFNAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ3JpdFNlYzo6fkNDcml0U2VjKHZvaWQpIF9fcHRyNjQNCis/PzFDQ3JpdFNlY0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENEb3VibGVMaXN0Ojp+Q0RvdWJsZUxpc3Qodm9pZCkgX19wdHI2NA0KKz8/MUNEb3VibGVMaXN0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0V0d1RyYWNlcjo6fkNFdHdUcmFjZXIodm9pZCkgX19wdHI2NA0KKz8/MUNFdHdUcmFjZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRmFrZUxvY2s6On5DRmFrZUxvY2sodm9pZCkgX19wdHI2NA0KKz8/MUNGYWtlTG9ja0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENMS1JIYXNoVGFibGU6On5DTEtSSGFzaFRhYmxlKHZvaWQpIF9fcHRyNjQNCis/PzFDTEtSSGFzaFRhYmxlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6fkNMS1JIYXNoVGFibGVfSXRlcmF0b3Iodm9pZCkgX19wdHI2NA0KKz8/MUNMS1JIYXNoVGFibGVfSXRlcmF0b3JAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjp+Q0xLUkxpbmVhckhhc2hUYWJsZSh2b2lkKSBfX3B0cjY0DQorPz8xQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3I6On5DTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yKHZvaWQpIF9fcHRyNjQNCis/PzFDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0xvY2tlZERvdWJsZUxpc3Q6On5DTG9ja2VkRG91YmxlTGlzdCh2b2lkKSBfX3B0cjY0DQorPz8xQ0xvY2tlZERvdWJsZUxpc3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTG9ja2VkU2luZ2xlTGlzdDo6fkNMb2NrZWRTaW5nbGVMaXN0KHZvaWQpIF9fcHRyNjQNCis/PzFDTG9ja2VkU2luZ2xlTGlzdEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENSdGxSZXNvdXJjZTo6fkNSdGxSZXNvdXJjZSh2b2lkKSBfX3B0cjY0DQorPz8xQ1J0bFJlc291cmNlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1NoYXJlTG9jazo6fkNTaGFyZUxvY2sodm9pZCkgX19wdHI2NA0KKz8/MUNTaGFyZUxvY2tAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDU2hhcmVsb2NrOjp+Q1NoYXJlbG9jayh2b2lkKSBfX3B0cjY0DQorPz8xQ1NoYXJlbG9ja0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTaW5nbGVMaXN0Ojp+Q1NpbmdsZUxpc3Qodm9pZCkgX19wdHI2NA0KKz8/MUNTaW5nbGVMaXN0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRVZFTlRfTE9HOjp+RVZFTlRfTE9HKHZvaWQpIF9fcHRyNjQNCis/PzFFVkVOVF9MT0dAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIEVYVExPR19EQVRFVElNRV9DQUNIRTo6fkVYVExPR19EQVRFVElNRV9DQUNIRSh2b2lkKSBfX3B0cjY0DQorPz8xRVhUTE9HX0RBVEVUSU1FX0NBQ0hFQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBIQVNIX1RBQkxFOjp+SEFTSF9UQUJMRSh2b2lkKSBfX3B0cjY0DQorPz8xSEFTSF9UQUJMRUBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEhBU0hfVEFCTEVfQlVDS0VUOjp+SEFTSF9UQUJMRV9CVUNLRVQodm9pZCkgX19wdHI2NA0KKz8/MUhBU0hfVEFCTEVfQlVDS0VUQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgSFRCX0VMRU1FTlQ6On5IVEJfRUxFTUVOVCh2b2lkKSBfX3B0cjY0DQorPz8xSFRCX0VMRU1FTlRAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIEhUX0VMRU1FTlQ6On5IVF9FTEVNRU5UKHZvaWQpIF9fcHRyNjQNCis/PzFIVF9FTEVNRU5UQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTUxTWkFVOjp+TUxTWkFVKHZvaWQpIF9fcHRyNjQNCis/PzFNTFNaQVVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBNVUxUSVNaOjp+TVVMVElTWih2b2lkKSBfX3B0cjY0DQorPz8xTVVMVElTWkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUjo6flNUUih2b2lkKSBfX3B0cjY0DQorPz8xU1RSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1RSQTo6flNUUkEodm9pZCkgX19wdHI2NA0KKz8/MVNUUkFAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTVFJBVTo6flNUUkFVKHZvaWQpIF9fcHRyNjQNCis/PzFTVFJBVUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUlU6On5TVFJVKHZvaWQpIF9fcHRyNjQNCis/PzFTVFJVQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVFNfUkVTT1VSQ0U6On5UU19SRVNPVVJDRSh2b2lkKSBfX3B0cjY0DQorPz8xVFNfUkVTT1VSQ0VAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFczX0RBVEVUSU1FX0NBQ0hFOjp+VzNfREFURVRJTUVfQ0FDSEUodm9pZCkgX19wdHI2NA0KKz8/MVczX0RBVEVUSU1FX0NBQ0hFQEBVRUFBQFhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkICogX19wdHI2NCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Om9wZXJhdG9yIG5ldyh1bnNpZ25lZCBfX2ludDY0KQ0KKz8/MkNMS1JMaW5lYXJIYXNoVGFibGVAQFNBUEVBWF9LQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpvcGVyYXRvciBkZWxldGUodm9pZCAqIF9fcHRyNjQpDQorPz8zQ0xLUkxpbmVhckhhc2hUYWJsZUBAU0FYUEVBWEBaDQorOyBwdWJsaWM6IGNsYXNzIENEYXRhQ2FjaGU8c3RydWN0IERBVEVUSU1FX0ZPUk1BVF9FTlRSWT4gJiBfX3B0cjY0IF9fY2RlY2wgQ0RhdGFDYWNoZTxzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZPjo6b3BlcmF0b3I9KGNsYXNzIENEYXRhQ2FjaGU8c3RydWN0IERBVEVUSU1FX0ZPUk1BVF9FTlRSWT4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDRGF0YUNhY2hlQFVEQVRFVElNRV9GT1JNQVRfRU5UUllAQEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENEYXRhQ2FjaGU8Y2xhc3MgQ0RhdGVUaW1lPiAmIF9fcHRyNjQgX19jZGVjbCBDRGF0YUNhY2hlPGNsYXNzIENEYXRlVGltZT46Om9wZXJhdG9yPShjbGFzcyBDRGF0YUNhY2hlPGNsYXNzIENEYXRlVGltZT4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDRGF0YUNhY2hlQFZDRGF0ZVRpbWVAQEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrQmFzZTwxLDEsMywxLDMsMj4gJiBfX3B0cjY0IF9fY2RlY2wgQ0xvY2tCYXNlPDEsMSwzLDEsMywyPjo6b3BlcmF0b3I9KGNsYXNzIENMb2NrQmFzZTwxLDEsMywxLDMsMj4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDTG9ja0Jhc2VAJDAwJDAwJDAyJDAwJDAyJDAxQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tCYXNlPDIsMSwxLDEsMywyPiAmIF9fcHRyNjQgX19jZGVjbCBDTG9ja0Jhc2U8MiwxLDEsMSwzLDI+OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tCYXNlPDIsMSwxLDEsMywyPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JENMb2NrQmFzZUAkMDEkMDAkMDAkMDAkMDIkMDFAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+ICYgX19wdHI2NCBfX2NkZWNsIENMb2NrQmFzZTwzLDEsMSwxLDEsMT46Om9wZXJhdG9yPShjbGFzcyBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ0xvY2tCYXNlQCQwMiQwMCQwMCQwMCQwMCQwMEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrQmFzZTw0LDEsMSwyLDMsMz4gJiBfX3B0cjY0IF9fY2RlY2wgQ0xvY2tCYXNlPDQsMSwxLDIsMywzPjo6b3BlcmF0b3I9KGNsYXNzIENMb2NrQmFzZTw0LDEsMSwyLDMsMz4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDTG9ja0Jhc2VAJDAzJDAwJDAwJDAxJDAyJDAyQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tCYXNlPDUsMiwxLDIsMywzPiAmIF9fcHRyNjQgX19jZGVjbCBDTG9ja0Jhc2U8NSwyLDEsMiwzLDM+OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tCYXNlPDUsMiwxLDIsMywzPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JENMb2NrQmFzZUAkMDQkMDEkMDAkMDEkMDIkMDJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja0Jhc2U8NiwyLDEsMiwzLDM+ICYgX19wdHI2NCBfX2NkZWNsIENMb2NrQmFzZTw2LDIsMSwyLDMsMz46Om9wZXJhdG9yPShjbGFzcyBDTG9ja0Jhc2U8NiwyLDEsMiwzLDM+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ0xvY2tCYXNlQCQwNSQwMSQwMCQwMSQwMiQwMkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrQmFzZTw3LDIsMiwxLDMsMj4gJiBfX3B0cjY0IF9fY2RlY2wgQ0xvY2tCYXNlPDcsMiwyLDEsMywyPjo6b3BlcmF0b3I9KGNsYXNzIENMb2NrQmFzZTw3LDIsMiwxLDMsMj4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDTG9ja0Jhc2VAJDA2JDAxJDAxJDAwJDAyJDAxQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tCYXNlPDgsMiwyLDEsMywyPiAmIF9fcHRyNjQgX19jZGVjbCBDTG9ja0Jhc2U8OCwyLDIsMSwzLDI+OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tCYXNlPDgsMiwyLDEsMywyPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JENMb2NrQmFzZUAkMDckMDEkMDEkMDAkMDIkMDFAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja0Jhc2U8OSwyLDEsMSwzLDI+ICYgX19wdHI2NCBfX2NkZWNsIENMb2NrQmFzZTw5LDIsMSwxLDMsMj46Om9wZXJhdG9yPShjbGFzcyBDTG9ja0Jhc2U8OSwyLDEsMSwzLDI+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ0xvY2tCYXNlQCQwOCQwMSQwMCQwMCQwMiQwMUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIEFMTE9DX0NBQ0hFX0hBTkRMRVIgJiBfX3B0cjY0IF9fY2RlY2wgQUxMT0NfQ0FDSEVfSEFORExFUjo6b3BlcmF0b3I9KGNsYXNzIEFMTE9DX0NBQ0hFX0hBTkRMRVIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80QUxMT0NfQ0FDSEVfSEFORExFUkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIEJVRkZFUiAmIF9fcHRyNjQgX19jZGVjbCBCVUZGRVI6Om9wZXJhdG9yPShjbGFzcyBCVUZGRVIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80QlVGRkVSQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQlVGRkVSX0NIQUlOICYgX19wdHI2NCBfX2NkZWNsIEJVRkZFUl9DSEFJTjo6b3BlcmF0b3I9KGNsYXNzIEJVRkZFUl9DSEFJTiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRCVUZGRVJfQ0hBSU5AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBCVUZGRVJfQ0hBSU5fSVRFTSAmIF9fcHRyNjQgX19jZGVjbCBCVUZGRVJfQ0hBSU5fSVRFTTo6b3BlcmF0b3I9KGNsYXNzIEJVRkZFUl9DSEFJTl9JVEVNIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NEJVRkZFUl9DSEFJTl9JVEVNQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NyaXRTZWMgJiBfX3B0cjY0IF9fY2RlY2wgQ0NyaXRTZWM6Om9wZXJhdG9yPShjbGFzcyBDQ3JpdFNlYyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDQ3JpdFNlY0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENERlRDYWNoZSAmIF9fcHRyNjQgX19jZGVjbCBDREZUQ2FjaGU6Om9wZXJhdG9yPShjbGFzcyBDREZUQ2FjaGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0RGVENhY2hlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0RhdGVUaW1lICYgX19wdHI2NCBfX2NkZWNsIENEYXRlVGltZTo6b3BlcmF0b3I9KGNsYXNzIENEYXRlVGltZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDRGF0ZVRpbWVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRG91YmxlTGlzdCAmIF9fcHRyNjQgX19jZGVjbCBDRG91YmxlTGlzdDo6b3BlcmF0b3I9KGNsYXNzIENEb3VibGVMaXN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENEb3VibGVMaXN0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0Zha2VMb2NrICYgX19wdHI2NCBfX2NkZWNsIENGYWtlTG9jazo6b3BlcmF0b3I9KGNsYXNzIENGYWtlTG9jayBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDRmFrZUxvY2tAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTEtSSGFzaFRhYmxlU3RhdHMgJiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZVN0YXRzOjpvcGVyYXRvcj0oY2xhc3MgQ0xLUkhhc2hUYWJsZVN0YXRzIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENMS1JIYXNoVGFibGVTdGF0c0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgJiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6b3BlcmF0b3I9KGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgJiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcjo6b3BlcmF0b3I9KGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrZWREb3VibGVMaXN0ICYgX19wdHI2NCBfX2NkZWNsIENMb2NrZWREb3VibGVMaXN0OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tlZERvdWJsZUxpc3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0xvY2tlZERvdWJsZUxpc3RAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja2VkU2luZ2xlTGlzdCAmIF9fcHRyNjQgX19jZGVjbCBDTG9ja2VkU2luZ2xlTGlzdDo6b3BlcmF0b3I9KGNsYXNzIENMb2NrZWRTaW5nbGVMaXN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENMb2NrZWRTaW5nbGVMaXN0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1JlYWRlcldyaXRlckxvY2syICYgX19wdHI2NCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6b3BlcmF0b3I9KGNsYXNzIENSZWFkZXJXcml0ZXJMb2NrMiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDUmVhZGVyV3JpdGVyTG9jazJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUmVhZGVyV3JpdGVyTG9jazMgJiBfX3B0cjY0IF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpvcGVyYXRvcj0oY2xhc3MgQ1JlYWRlcldyaXRlckxvY2szIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENSZWFkZXJXcml0ZXJMb2NrM0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENSZWFkZXJXcml0ZXJMb2NrICYgX19wdHI2NCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpvcGVyYXRvcj0oY2xhc3MgQ1JlYWRlcldyaXRlckxvY2sgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1JlYWRlcldyaXRlckxvY2tAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUnRsUmVzb3VyY2UgJiBfX3B0cjY0IF9fY2RlY2wgQ1J0bFJlc291cmNlOjpvcGVyYXRvcj0oY2xhc3MgQ1J0bFJlc291cmNlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENSdGxSZXNvdXJjZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTaW5nbGVMaXN0ICYgX19wdHI2NCBfX2NkZWNsIENTaW5nbGVMaXN0OjpvcGVyYXRvcj0oY2xhc3MgQ1NpbmdsZUxpc3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1NpbmdsZUxpc3RAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU21hbGxTcGluTG9jayAmIF9fcHRyNjQgX19jZGVjbCBDU21hbGxTcGluTG9jazo6b3BlcmF0b3I9KGNsYXNzIENTbWFsbFNwaW5Mb2NrIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENTbWFsbFNwaW5Mb2NrQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1NwaW5Mb2NrICYgX19wdHI2NCBfX2NkZWNsIENTcGluTG9jazo6b3BlcmF0b3I9KGNsYXNzIENTcGluTG9jayBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDU3BpbkxvY2tAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZICYgX19wdHI2NCBfX2NkZWNsIERBVEVUSU1FX0ZPUk1BVF9FTlRSWTo6b3BlcmF0b3I9KHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80REFURVRJTUVfRk9STUFUX0VOVFJZQEBRRUFBQUVBVTBAQUVCVTBAQFoNCis7IHB1YmxpYzogY2xhc3MgRVZFTlRfTE9HICYgX19wdHI2NCBfX2NkZWNsIEVWRU5UX0xPRzo6b3BlcmF0b3I9KGNsYXNzIEVWRU5UX0xPRyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRFVkVOVF9MT0dAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBIQVNIX1RBQkxFICYgX19wdHI2NCBfX2NkZWNsIEhBU0hfVEFCTEU6Om9wZXJhdG9yPShjbGFzcyBIQVNIX1RBQkxFIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NEhBU0hfVEFCTEVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBIQVNIX1RBQkxFX0JVQ0tFVCAmIF9fcHRyNjQgX19jZGVjbCBIQVNIX1RBQkxFX0JVQ0tFVDo6b3BlcmF0b3I9KGNsYXNzIEhBU0hfVEFCTEVfQlVDS0VUIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NEhBU0hfVEFCTEVfQlVDS0VUQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogc3RydWN0IEhUQl9FTEVNRU5UICYgX19wdHI2NCBfX2NkZWNsIEhUQl9FTEVNRU5UOjpvcGVyYXRvcj0oc3RydWN0IEhUQl9FTEVNRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NEhUQl9FTEVNRU5UQEBRRUFBQUVBVTBAQUVCVTBAQFoNCis7IHB1YmxpYzogY2xhc3MgSFRfRUxFTUVOVCAmIF9fcHRyNjQgX19jZGVjbCBIVF9FTEVNRU5UOjpvcGVyYXRvcj0oY2xhc3MgSFRfRUxFTUVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRIVF9FTEVNRU5UQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTUxTWkFVICYgX19wdHI2NCBfX2NkZWNsIE1MU1pBVTo6b3BlcmF0b3I9KGNsYXNzIE1MU1pBVSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRNTFNaQVVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBNVUxUSVNaICYgX19wdHI2NCBfX2NkZWNsIE1VTFRJU1o6Om9wZXJhdG9yPShjbGFzcyBNVUxUSVNaIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE1VTFRJU1pAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTVFIgJiBfX3B0cjY0IF9fY2RlY2wgU1RSOjpvcGVyYXRvcj0oY2xhc3MgU1RSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNUUkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwcml2YXRlOiBjbGFzcyBTVFJBICYgX19wdHI2NCBfX2NkZWNsIFNUUkE6Om9wZXJhdG9yPShjbGFzcyBTVFJBIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNUUkFAQEFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTVFJBVSAmIF9fcHRyNjQgX19jZGVjbCBTVFJBVTo6b3BlcmF0b3I9KGNsYXNzIFNUUkFVIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNUUkFVQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHByaXZhdGU6IGNsYXNzIFNUUlUgJiBfX3B0cjY0IF9fY2RlY2wgU1RSVTo6b3BlcmF0b3I9KGNsYXNzIFNUUlUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U1RSVUBAQUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFRTX1JFU09VUkNFICYgX19wdHI2NCBfX2NkZWNsIFRTX1JFU09VUkNFOjpvcGVyYXRvcj0oY2xhc3MgVFNfUkVTT1VSQ0UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80VFNfUkVTT1VSQ0VAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6b3BlcmF0b3I9PShjbGFzcyBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OENMS1JIYXNoVGFibGVfSXRlcmF0b3JAQFFFQkFfTkFFQlYwQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjpvcGVyYXRvcj09KGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz84Q0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAUUVCQV9OQUVCVjBAQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JIYXNoVGFibGVfSXRlcmF0b3I6Om9wZXJhdG9yIT0oY2xhc3MgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvciBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzlDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBRRUJBX05BRUJWMEBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcjo6b3BlcmF0b3IhPShjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OUNMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQFFFQkFfTkFFQlYwQEBaDQorOyBjb25zdCAgQVNDTE9HX0RBVEVUSU1FX0NBQ0hFOjpgdmZ0YWJsZScNCis/P183QVNDTE9HX0RBVEVUSU1FX0NBQ0hFQEA2QkANCis7IGNvbnN0ICBDQUNIRURfREFURVRJTUVfRk9STUFUUzo6YHZmdGFibGUnDQorPz9fN0NBQ0hFRF9EQVRFVElNRV9GT1JNQVRTQEA2QkANCis7IGNvbnN0ICBFWFRMT0dfREFURVRJTUVfQ0FDSEU6OmB2ZnRhYmxlJw0KKz8/XzdFWFRMT0dfREFURVRJTUVfQ0FDSEVAQDZCQA0KKzsgY29uc3QgIEhBU0hfVEFCTEU6OmB2ZnRhYmxlJw0KKz8/XzdIQVNIX1RBQkxFQEA2QkANCis7IGNvbnN0ICBIVF9FTEVNRU5UOjpgdmZ0YWJsZScNCis/P183SFRfRUxFTUVOVEBANkJADQorOyBjb25zdCAgVzNfREFURVRJTUVfQ0FDSEU6OmB2ZnRhYmxlJw0KKz8/XzdXM19EQVRFVElNRV9DQUNIRUBANkJADQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCVUZGRVI6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GQlVGRkVSQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCVUZGRVJfQ0hBSU5fSVRFTTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZCVUZGRVJfQ0hBSU5fSVRFTUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NoYXJlbG9jazo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDU2hhcmVsb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTaGFyZWxvY2s6OkFjdGl2ZVVzZXJzKHZvaWQpIF9fcHRyNjQNCis/QWN0aXZlVXNlcnNAQ1NoYXJlbG9ja0BAUUVBQUhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OkFsbG9jKHZvaWQpIF9fcHRyNjQNCis/QWxsb2NAQUxMT0NfQ0FDSEVfSEFORExFUkBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNVUxUSVNaOjpBcHBlbmQoY2xhc3MgU1RSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRATVVMVElTWkBAUUVBQUhBRUJWU1RSQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNVUxUSVNaOjpBcHBlbmQoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQE1VTFRJU1pAQFFFQUFIUEVCREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1VTFRJU1o6OkFwcGVuZChjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FwcGVuZEBNVUxUSVNaQEBRRUFBSFBFQkRLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSOjpBcHBlbmQoY2xhc3MgU1RSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRAU1RSQEBRRUFBSEFFQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUjo6QXBwZW5kKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FwcGVuZEBTVFJAQFFFQUFIUEVCREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUjo6QXBwZW5kKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QXBwZW5kQFNUUkBAUUVBQUhQRUJES0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTVFI6OkFwcGVuZChjaGFyKSBfX3B0cjY0DQorP0FwcGVuZEBTVFJAQFFFQUFYREBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTVFI6OkFwcGVuZChjaGFyLGNoYXIpIF9fcHRyNjQNCis/QXBwZW5kQFNUUkBAUUVBQVhEREBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpBcHBlbmQoY2xhc3MgU1RSQSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNUUkFAQFFFQUFKQUVCVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkFwcGVuZChjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRAU1RSQUBAUUVBQUpQRUJEQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkFwcGVuZChjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FwcGVuZEBTVFJBQEBRRUFBSlBFQkRLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSQVU6OkFwcGVuZChjbGFzcyBTVFJBVSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNUUkFVQEBRRUFBSEFFQVYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUkFVOjpBcHBlbmQoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNUUkFVQEBRRUFBSFBFQkRAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJBVTo6QXBwZW5kKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QXBwZW5kQFNUUkFVQEBRRUFBSFBFQkRLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSQVU6OkFwcGVuZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNUUkFVQEBRRUFBSFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJBVTo6QXBwZW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FwcGVuZEBTVFJBVUBAUUVBQUhQRUJHS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJVOjpBcHBlbmQoY2xhc3MgU1RSVSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNUUlVAQFFFQUFKQUVCVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUlU6OkFwcGVuZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNUUlVAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJVOjpBcHBlbmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QXBwZW5kQFNUUlVAQFFFQUFKUEVCR0tAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSVTo6QXBwZW5kQShjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRBQFNUUlVAQFFFQUFKUEVCREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJVRkZFUl9DSEFJTjo6QXBwZW5kQnVmZmVyKGNsYXNzIEJVRkZFUl9DSEFJTl9JVEVNICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRCdWZmZXJAQlVGRkVSX0NIQUlOQEBRRUFBSFBFQVZCVUZGRVJfQ0hBSU5fSVRFTUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNUUjo6QXBwZW5kQ1JMRih2b2lkKSBfX3B0cjY0DQorP0FwcGVuZENSTEZAU1RSQEBRRUFBWFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpBcHBlbmRXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRXQFNUUkFAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpBcHBlbmRXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FwcGVuZFdAU1RSQUBAUUVBQUpQRUJHS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpBcHBlbmRXVHJ1bmNhdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FwcGVuZFdUcnVuY2F0ZUBTVFJBQEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSQTo6QXBwZW5kV1RydW5jYXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FwcGVuZFdUcnVuY2F0ZUBTVFJBQEBRRUFBSlBFQkdLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkFwcGx5KGVudW0gTEtfQUNUSU9OICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSx2b2lkICogX19wdHI2NCxlbnVtIExLX0xPQ0tUWVBFKSBfX3B0cjY0DQorP0FwcGx5QENMS1JIYXNoVGFibGVAQFFFQUFLUDZBP0FXNExLX0FDVElPTkBAUEVCWFBFQVhAWjFXNExLX0xPQ0tUWVBFQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6QXBwbHkoZW51bSBMS19BQ1RJT04gIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpLHZvaWQgKiBfX3B0cjY0LGVudW0gTEtfTE9DS1RZUEUpIF9fcHRyNjQNCis/QXBwbHlAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQUtQNkE/QVc0TEtfQUNUSU9OQEBQRUJYUEVBWEBaMVc0TEtfTE9DS1RZUEVAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpBcHBseUlmKGVudW0gTEtfUFJFRElDQVRFICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSxlbnVtIExLX0FDVElPTiAgKF9fY2RlY2wqKSh2b2lkIGNvbnN0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCksdm9pZCAqIF9fcHRyNjQsZW51bSBMS19MT0NLVFlQRSkgX19wdHI2NA0KKz9BcHBseUlmQENMS1JIYXNoVGFibGVAQFFFQUFLUDZBP0FXNExLX1BSRURJQ0FURUBAUEVCWFBFQVhAWlA2QT9BVzRMS19BQ1RJT05AQDAxQFoxVzRMS19MT0NLVFlQRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkFwcGx5SWYoZW51bSBMS19QUkVESUNBVEUgIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpLGVudW0gTEtfQUNUSU9OICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSx2b2lkICogX19wdHI2NCxlbnVtIExLX0xPQ0tUWVBFKSBfX3B0cjY0DQorP0FwcGx5SWZAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQUtQNkE/QVc0TEtfUFJFRElDQVRFQEBQRUJYUEVBWEBaUDZBP0FXNExLX0FDVElPTkBAMDFAWjFXNExLX0xPQ0tUWVBFQEBAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgTVVMVElTWjo6QXV4QXBwZW5kKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxpbnQpIF9fcHRyNjQNCis/QXV4QXBwZW5kQE1VTFRJU1pAQEFFQUFIUEVCRUlIQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIFNUUjo6QXV4QXBwZW5kKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxpbnQpIF9fcHRyNjQNCis/QXV4QXBwZW5kQFNUUkBAQUVBQUhQRUJFSUhAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIFNUUkE6OkF1eEFwcGVuZCh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50KSBfX3B0cjY0DQorP0F1eEFwcGVuZEBTVFJBQEBBRUFBSlBFQkVLS0hAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgU1RSQVU6OkF1eEFwcGVuZChjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQsaW50KSBfX3B0cjY0DQorP0F1eEFwcGVuZEBTVFJBVUBAQUVBQUhQRUJESUhAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgU1RSQVU6OkF1eEFwcGVuZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGludCkgX19wdHI2NA0KKz9BdXhBcHBlbmRAU1RSQVVAQEFFQUFIUEVCR0lIQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBTVFJVOjpBdXhBcHBlbmQodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz9BdXhBcHBlbmRAU1RSVUBAQUVBQUpQRUJFS0tIQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBTVFJVOjpBdXhBcHBlbmRBKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/QXV4QXBwZW5kQUBTVFJVQEBBRUFBSlBFQkVLS0hAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIFNUUkE6OkF1eEFwcGVuZFcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/QXV4QXBwZW5kV0BTVFJBQEBBRUFBSlBFQkdLS0hAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIFNUUkE6OkF1eEFwcGVuZFdUcnVuY2F0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz9BdXhBcHBlbmRXVHJ1bmNhdGVAU1RSQUBAQUVBQUpQRUJHS0tIQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBNTFNaQVU6OkF1eEluaXQoY2hhciAqIF9fcHRyNjQgY29uc3QsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BdXhJbml0QE1MU1pBVUBAQUVBQVhRRUFES0BaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTUxTWkFVOjpBdXhJbml0KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0F1eEluaXRATUxTWkFVQEBBRUFBWFFFQUdLQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBNVUxUSVNaOjpBdXhJbml0KHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0F1eEluaXRATVVMVElTWkBAQUVBQVhQRUJFQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBTVFI6OkF1eEluaXQodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXV4SW5pdEBTVFJAQEFFQUFYUEVCRUBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgU1RSQVU6OkF1eEluaXQoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXV4SW5pdEBTVFJBVUBAQUVBQVhQRUJEQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBTVFJBVTo6QXV4SW5pdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXV4SW5pdEBTVFJBVUBAQUVBQVhQRUJHQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvciAgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpCZWdpbih2b2lkKSBfX3B0cjY0DQorP0JlZ2luQENMS1JIYXNoVGFibGVAQFFFQUE/QVZDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkJlZ2luKHZvaWQpIF9fcHRyNjQNCis/QmVnaW5AQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQT9BVkNMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZVN0YXRzOjpCdWNrZXRJbmRleChsb25nKQ0KKz9CdWNrZXRJbmRleEBDTEtSSGFzaFRhYmxlU3RhdHNAQFNBSkpAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENMS1JIYXNoVGFibGVTdGF0czo6QnVja2V0U2l6ZShsb25nKQ0KKz9CdWNrZXRTaXplQENMS1JIYXNoVGFibGVTdGF0c0BAU0FKSkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENMS1JIYXNoVGFibGVTdGF0czo6QnVja2V0U2l6ZXModm9pZCkNCis/QnVja2V0U2l6ZXNAQ0xLUkhhc2hUYWJsZVN0YXRzQEBTQVBFQkpYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIE1VTFRJU1o6OkNhbGNMZW5ndGgoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpDQorP0NhbGNMZW5ndGhATVVMVElTWkBAU0FLUEVCRFBFQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQlVGRkVSX0NIQUlOOjpDYWxjVG90YWxTaXplKGludCljb25zdCAgX19wdHI2NA0KKz9DYWxjVG90YWxTaXplQEJVRkZFUl9DSEFJTkBAUUVCQUtIQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSEFTSF9UQUJMRTo6Q2FsY3VsYXRlSGFzaChjaGFyIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9DYWxjdWxhdGVIYXNoQEhBU0hfVEFCTEVAQFVFQkFLUEVCREBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEhBU0hfVEFCTEU6OkNhbGN1bGF0ZUhhc2goY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9DYWxjdWxhdGVIYXNoQEhBU0hfVEFCTEVAQFVFQkFLUEVCREtAWg0KK0Nhbm9uVVJMDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU2hhcmVsb2NrOjpDaGFuZ2VFeGNsdXNpdmVMb2NrVG9TaGFyZWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/Q2hhbmdlRXhjbHVzaXZlTG9ja1RvU2hhcmVkTG9ja0BDU2hhcmVsb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBDU2hhcmVsb2NrOjpDaGFuZ2VTaGFyZWRMb2NrVG9FeGNsdXNpdmVMb2NrKGludCkgX19wdHI2NA0KKz9DaGFuZ2VTaGFyZWRMb2NrVG9FeGNsdXNpdmVMb2NrQENTaGFyZWxvY2tAQFFFQUFFSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkNoZWNrVGFibGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9DaGVja1RhYmxlQENMS1JIYXNoVGFibGVAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q2hlY2tUYWJsZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NoZWNrVGFibGVAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQ1NoYXJlbG9jazo6Q2xhaW1FeGNsdXNpdmVMb2NrKGludCkgX19wdHI2NA0KKz9DbGFpbUV4Y2x1c2l2ZUxvY2tAQ1NoYXJlbG9ja0BAUUVBQUVIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIENTaGFyZWxvY2s6OkNsYWltU2hhcmVMb2NrKGludCkgX19wdHI2NA0KKz9DbGFpbVNoYXJlTG9ja0BDU2hhcmVsb2NrQEBRRUFBRUhAWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDQ3JpdFNlYzo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDQ3JpdFNlY0BAU0FQRUJEWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENDcml0U2VjOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENDcml0U2VjQEBTQVBFQkdYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDRmFrZUxvY2s6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ0Zha2VMb2NrQEBTQVBFQkRYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0Zha2VMb2NrOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENGYWtlTG9ja0BAU0FQRUJHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ0xLUkhhc2hUYWJsZUBAU0FQRUJHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ0xLUkxpbmVhckhhc2hUYWJsZUBAU0FQRUJHWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENSZWFkZXJXcml0ZXJMb2NrMkBAU0FQRUJEWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDUmVhZGVyV3JpdGVyTG9jazJAQFNBUEVCR1haDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDUmVhZGVyV3JpdGVyTG9jazNAQFNBUEVCRFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ1JlYWRlcldyaXRlckxvY2szQEBTQVBFQkdYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDUmVhZGVyV3JpdGVyTG9ja0BAU0FQRUJEWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENSZWFkZXJXcml0ZXJMb2NrQEBTQVBFQkdYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDUnRsUmVzb3VyY2U6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ1J0bFJlc291cmNlQEBTQVBFQkRYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDU2hhcmVMb2NrOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENTaGFyZUxvY2tAQFNBUEVCRFhaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENTbWFsbFNwaW5Mb2NrQEBTQVBFQkRYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ1NtYWxsU3BpbkxvY2tAQFNBUEVCR1haDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENTcGluTG9jazo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDU3BpbkxvY2tAQFNBUEVCRFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDU3BpbkxvY2s6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ1NwaW5Mb2NrQEBTQVBFQkdYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQUxMT0NfQ0FDSEVfSEFORExFUjo6Q2xlYW51cCh2b2lkKQ0KKz9DbGVhbnVwQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFNBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBIQVNIX1RBQkxFOjpDbGVhbnVwKHZvaWQpIF9fcHRyNjQNCis/Q2xlYW51cEBIQVNIX1RBQkxFQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBIVEJfRUxFTUVOVDo6Q2xlYW51cCh2b2lkKSBfX3B0cjY0DQorP0NsZWFudXBASFRCX0VMRU1FTlRAQFFFQUFYWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpDbGVhbnVwQWxsTG9va2FzaWRlcyh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBjaGFyKQ0KKz9DbGVhbnVwQWxsTG9va2FzaWRlc0BBTExPQ19DQUNIRV9IQU5ETEVSQEBTQVhQRUFYRUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpDbGVhbnVwTG9va2FzaWRlKGludCkgX19wdHI2NA0KKz9DbGVhbnVwTG9va2FzaWRlQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQENMS1JIYXNoVGFibGVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkNsZWFyKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU1RSOjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQFNUUkBAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNVUxUSVNaOjpDbG9uZShjbGFzcyBNVUxUSVNaICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9DbG9uZUBNVUxUSVNaQEBRRUJBSFBFQVYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUjo6Q2xvbmUoY2xhc3MgU1RSICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9DbG9uZUBTVFJAQFFFQkFIUEVBVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkNsb25lKGNsYXNzIFNUUkEgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0Nsb25lQFNUUkFAQFFFQkFKUEVBVjFAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkNsb3NlSXRlcmF0b3IoY2xhc3MgQ0xLUkhhc2hUYWJsZTo6Q0l0ZXJhdG9yICogX19wdHI2NCkgX19wdHI2NA0KKz9DbG9zZUl0ZXJhdG9yQENMS1JIYXNoVGFibGVAQFFFQUE/QVc0TEtfUkVUQ09ERUBAUEVBVkNJdGVyYXRvckAxQEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpDbG9zZUl0ZXJhdG9yKGNsYXNzIENMS1JIYXNoVGFibGU6OkNDb25zdEl0ZXJhdG9yICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9DbG9zZUl0ZXJhdG9yQENMS1JIYXNoVGFibGVAQFFFQkE/QVc0TEtfUkVUQ09ERUBAUEVBVkNDb25zdEl0ZXJhdG9yQDFAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkNsb3NlSXRlcmF0b3IoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q0l0ZXJhdG9yICogX19wdHI2NCkgX19wdHI2NA0KKz9DbG9zZUl0ZXJhdG9yQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUE/QVc0TEtfUkVUQ09ERUBAUEVBVkNJdGVyYXRvckAxQEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpDbG9zZUl0ZXJhdG9yKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNDb25zdEl0ZXJhdG9yICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9DbG9zZUl0ZXJhdG9yQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkE/QVc0TEtfUkVUQ09ERUBAUEVBVkNDb25zdEl0ZXJhdG9yQDFAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIEhBU0hfVEFCTEU6OkNsb3NlSXRlcmF0b3Ioc3RydWN0IEhUX0lURVJBVE9SICogX19wdHI2NCkgX19wdHI2NA0KKz9DbG9zZUl0ZXJhdG9yQEhBU0hfVEFCTEVAQFFFQUFLUEVBVUhUX0lURVJBVE9SQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSEFTSF9UQUJMRV9CVUNLRVQ6OkNsb3NlSXRlcmF0b3Ioc3RydWN0IEhUX0lURVJBVE9SICogX19wdHI2NCkgX19wdHI2NA0KKz9DbG9zZUl0ZXJhdG9yQEhBU0hfVEFCTEVfQlVDS0VUQEBRRUFBS1BFQVVIVF9JVEVSQVRPUkBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFRTX1JFU09VUkNFOjpDb252ZXJ0KGVudW0gVFNSRVNfQ09OVl9UWVBFKSBfX3B0cjY0DQorP0NvbnZlcnRAVFNfUkVTT1VSQ0VAQFFFQUFYVzRUU1JFU19DT05WX1RZUEVAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ3JpdFNlYzo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENDcml0U2VjQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmFrZUxvY2s6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZEBDRmFrZUxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZEBDTEtSSGFzaFRhYmxlQEBRRUJBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCkgX19wdHI2NA0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ1JlYWRlcldyaXRlckxvY2syQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZEBDUmVhZGVyV3JpdGVyTG9jazNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCkgX19wdHI2NA0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ1JlYWRlcldyaXRlckxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSdGxSZXNvdXJjZTo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENSdGxSZXNvdXJjZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NoYXJlTG9jazo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENTaGFyZUxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCkgX19wdHI2NA0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ1NtYWxsU3BpbkxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTcGluTG9jazo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENTcGluTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NyaXRTZWM6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDQ3JpdFNlY0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Zha2VMb2NrOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkgX19wdHI2NA0KKz9Db252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ0Zha2VMb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ0xLUkhhc2hUYWJsZUBAUUVCQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENSZWFkZXJXcml0ZXJMb2NrMkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkgX19wdHI2NA0KKz9Db252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ1JlYWRlcldyaXRlckxvY2szQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENSZWFkZXJXcml0ZXJMb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUnRsUmVzb3VyY2U6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDUnRsUmVzb3VyY2VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTaGFyZUxvY2s6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDU2hhcmVMb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU21hbGxTcGluTG9jazo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENTbWFsbFNwaW5Mb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3BpbkxvY2s6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDU3BpbkxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTVVMVElTWjo6Q29weShjbGFzcyBNVUxUSVNaIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5QE1VTFRJU1pAQFFFQUFIQUVCVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTVVMVElTWjo6Q29weShjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NvcHlATVVMVElTWkBAUUVBQUhQRUJES0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUjo6Q29weShjbGFzcyBTVFIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlAU1RSQEBRRUFBSEFFQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUjo6Q29weShjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5QFNUUkBAUUVBQUhQRUJEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSOjpDb3B5KGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Q29weUBTVFJAQFFFQUFIUEVCREtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSQTo6Q29weShjbGFzcyBTVFJBIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5QFNUUkFAQFFFQUFKQUVCVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkNvcHkoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weUBTVFJBQEBRRUFBSlBFQkRAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSQTo6Q29weShjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NvcHlAU1RSQUBAUUVBQUpQRUJES0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUkFVOjpDb3B5KGNsYXNzIFNUUkFVICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5QFNUUkFVQEBRRUFBSEFFQVYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUkFVOjpDb3B5KGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlAU1RSQVVAQFFFQUFIUEVCREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUkFVOjpDb3B5KGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Q29weUBTVFJBVUBAUUVBQUhQRUJES0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUkFVOjpDb3B5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5QFNUUkFVQEBRRUFBSFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJBVTo6Q29weSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Db3B5QFNUUkFVQEBRRUFBSFBFQkdLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUlU6OkNvcHkoY2xhc3MgU1RSVSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weUBTVFJVQEBRRUFBSkFFQlYxQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJVOjpDb3B5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5QFNUUlVAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJVOjpDb3B5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NvcHlAU1RSVUBAUUVBQUpQRUJHS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJVOjpDb3B5QShjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5QUBTVFJVQEBRRUFBSlBFQkRAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSVTo6Q29weUEoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Db3B5QUBTVFJVQEBRRUFBSlBFQkRLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkNvcHlCaW5hcnkodm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Db3B5QmluYXJ5QFNUUkFAQFFFQUFKUEVBWEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDREZUQ2FjaGU6OkNvcHlGb3JtYXR0ZWREYXRhKHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q29weUZvcm1hdHRlZERhdGFAQ0RGVENhY2hlQEBRRUJBSFBFQlVfU1lTVEVNVElNRUBAUEVBREBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBEQVRFVElNRV9GT1JNQVRfRU5UUlk6OkNvcHlGb3JtYXR0ZWREYXRhKHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q29weUZvcm1hdHRlZERhdGFAREFURVRJTUVfRk9STUFUX0VOVFJZQEBRRUJBWFBFQlVfU1lTVEVNVElNRUBAUEVBREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1VTFRJU1o6OkNvcHlUb0J1ZmZlcihjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db3B5VG9CdWZmZXJATVVMVElTWkBAUUVCQUhQRUFEUEVBS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUjo6Q29weVRvQnVmZmVyKGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0NvcHlUb0J1ZmZlckBTVFJAQFFFQkFIUEVBRFBFQUtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFI6OkNvcHlUb0J1ZmZlcih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q29weVRvQnVmZmVyQFNUUkBAUUVCQUhQRUFHUEVBS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpDb3B5VG9CdWZmZXIoY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q29weVRvQnVmZmVyQFNUUkFAQFFFQkFKUEVBRFBFQUtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSVTo6Q29weVRvQnVmZmVyKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db3B5VG9CdWZmZXJAU1RSVUBAUUVCQUpQRUFHUEVBS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpDb3B5Vyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weVdAU1RSQUBAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkNvcHlXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NvcHlXQFNUUkFAQFFFQUFKUEVCR0tAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSQTo6Q29weVdUb1VURjgoY2xhc3MgU1RSVSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weVdUb1VURjhAU1RSQUBAUUVBQUpBRUJWU1RSVUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkNvcHlXVG9VVEY4KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5V1RvVVRGOEBTVFJBQEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSQTo6Q29weVdUb1VURjgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Q29weVdUb1VURjhAU1RSQUBAUUVBQUpQRUJHS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpDb3B5V1RvVVRGOFVuZXNjYXBlZChjbGFzcyBTVFJVIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5V1RvVVRGOFVuZXNjYXBlZEBTVFJBQEBRRUFBSkFFQlZTVFJVQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSQTo6Q29weVdUb1VURjhVbmVzY2FwZWQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlXVG9VVEY4VW5lc2NhcGVkQFNUUkFAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpDb3B5V1RvVVRGOFVuZXNjYXBlZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Db3B5V1RvVVRGOFVuZXNjYXBlZEBTVFJBQEBRRUFBSlBFQkdLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkNvcHlXVHJ1bmNhdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlXVHJ1bmNhdGVAU1RSQUBAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkNvcHlXVHJ1bmNhdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Q29weVdUcnVuY2F0ZUBTVFJBQEBRRUFBSlBFQkdLQFoNCitDcmVhdGVLZXkNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENERlRDYWNoZTo6RGF0ZVRpbWVDaGFycyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0RhdGVUaW1lQ2hhcnNAQ0RGVENhY2hlQEBRRUJBS1haDQorOyBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIERheU9mV2VlazNDaGFyTmFtZXModW5zaWduZWQgbG9uZykNCis/RGF5T2ZXZWVrM0NoYXJOYW1lc0BAWUFQRUJES0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBIVEJfRUxFTUVOVDo6RGVjcmVtZW50RWxlbWVudHModm9pZCkgX19wdHI2NA0KKz9EZWNyZW1lbnRFbGVtZW50c0BIVEJfRUxFTUVOVEBAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBIQVNIX1RBQkxFOjpEZWxldGUoY2xhc3MgSFRfRUxFTUVOVCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlQEhBU0hfVEFCTEVAQFFFQUFIUEVBVkhUX0VMRU1FTlRAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEhBU0hfVEFCTEVfQlVDS0VUOjpEZWxldGUoY2xhc3MgSFRfRUxFTUVOVCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlQEhBU0hfVEFCTEVfQlVDS0VUQEBRRUFBSFBFQVZIVF9FTEVNRU5UQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBIVEJfRUxFTUVOVDo6RGVsZXRlKGNsYXNzIEhUX0VMRU1FTlQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZUBIVEJfRUxFTUVOVEBAUUVBQUhQRUFWSFRfRUxFTUVOVEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIEJVRkZFUl9DSEFJTjo6RGVsZXRlQ2hhaW4odm9pZCkgX19wdHI2NA0KKz9EZWxldGVDaGFpbkBCVUZGRVJfQ0hBSU5AQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkRlbGV0ZUlmKGVudW0gTEtfUFJFRElDQVRFICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVJZkBDTEtSSGFzaFRhYmxlQEBRRUFBS1A2QT9BVzRMS19QUkVESUNBVEVAQFBFQlhQRUFYQFoxQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkRlbGV0ZUlmKGVudW0gTEtfUFJFRElDQVRFICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVJZkBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUFBS1A2QT9BVzRMS19QUkVESUNBVEVAQFBFQlhQRUFYQFoxQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkRlbGV0ZUtleSh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP0RlbGV0ZUtleUBDTEtSSGFzaFRhYmxlQEBRRUFBP0FXNExLX1JFVENPREVAQF9LQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkRlbGV0ZUtleSh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP0RlbGV0ZUtleUBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUFBP0FXNExLX1JFVENPREVAQF9LQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkRlbGV0ZVJlY29yZCh2b2lkIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVSZWNvcmRAQ0xLUkhhc2hUYWJsZUBAUUVBQT9BVzRMS19SRVRDT0RFQEBQRUJYQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkRlbGV0ZVJlY29yZCh2b2lkIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVSZWNvcmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQT9BVzRMS19SRVRDT0RFQEBQRUJYQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0V0d1RyYWNlcjo6RGlzYWJsZUV2ZW50c0NhbGxiYWNrQ3VzdG9tSGFuZGxlcih2b2lkKSBfX3B0cjY0DQorP0Rpc2FibGVFdmVudHNDYWxsYmFja0N1c3RvbUhhbmRsZXJAQ0V0d1RyYWNlckBAVUVBQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQUxMT0NfQ0FDSEVfSEFORExFUjo6RHVtcFN0YXRzVG9IdG1sKGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KQ0KKz9EdW1wU3RhdHNUb0h0bWxAQUxMT0NfQ0FDSEVfSEFORExFUkBAU0FIUEVBRFBFQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRXR3VHJhY2VyOjpFbmFibGVFdmVudHNDYWxsYmFja0N1c3RvbUhhbmRsZXIodm9pZCkgX19wdHI2NA0KKz9FbmFibGVFdmVudHNDYWxsYmFja0N1c3RvbUhhbmRsZXJAQ0V0d1RyYWNlckBAVUVBQUtYWg0KKzsgcHVibGljOiBjbGFzcyBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yICBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkVuZCh2b2lkKSBfX3B0cjY0DQorP0VuZEBDTEtSSGFzaFRhYmxlQEBRRUFBP0FWQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpFbmQodm9pZCkgX19wdHI2NA0KKz9FbmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQT9BVkNMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUjo6RXF1KGNsYXNzIFNUUiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1QFNUUkBAUUVCQUhBRUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFI6OkVxdShjaGFyICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVAU1RSQEBRRUJBSFBFQURAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6RXF1YWxSYW5nZSh1bnNpZ25lZCBfX2ludDY0LGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgJiBfX3B0cjY0LGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0VxdWFsUmFuZ2VAQ0xLUkhhc2hUYWJsZUBAUUVBQV9OX0tBRUFWQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAMUBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpFcXVhbFJhbmdlKHVuc2lnbmVkIF9faW50NjQsY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciAmIF9fcHRyNjQsY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RXF1YWxSYW5nZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUFBX05fS0FFQVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEAxQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSQTo6RXF1YWxzKGNsYXNzIFNUUkEgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWFsc0BTVFJBQEBRRUJBSEFFQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUkE6OkVxdWFscyhjaGFyICogX19wdHI2NCBjb25zdCljb25zdCAgX19wdHI2NA0KKz9FcXVhbHNAU1RSQUBAUUVCQUhRRUFEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSVTo6RXF1YWxzKGNsYXNzIFNUUlUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWFsc0BTVFJVQEBRRUJBSEFFQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUlU6OkVxdWFscyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1YWxzQFNUUlVAQFFFQkFIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUkE6OkVxdWFsc05vQ2FzZShjbGFzcyBTVFJBIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVhbHNOb0Nhc2VAU1RSQUBAUUVCQUhBRUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJBOjpFcXVhbHNOb0Nhc2UoY2hhciAqIF9fcHRyNjQgY29uc3QpY29uc3QgIF9fcHRyNjQNCis/RXF1YWxzTm9DYXNlQFNUUkFAQFFFQkFIUUVBREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUlU6OkVxdWFsc05vQ2FzZShjbGFzcyBTVFJVIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVhbHNOb0Nhc2VAU1RSVUBAUUVCQUhBRUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJVOjpFcXVhbHNOb0Nhc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWFsc05vQ2FzZUBTVFJVQEBRRUJBSFBFQkdAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6RXJhc2UoY2xhc3MgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvciAmIF9fcHRyNjQsY2xhc3MgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RXJhc2VAQ0xLUkhhc2hUYWJsZUBAUUVBQV9OQUVBVkNMS1JIYXNoVGFibGVfSXRlcmF0b3JAQDBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6RXJhc2UoY2xhc3MgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RXJhc2VAQ0xLUkhhc2hUYWJsZUBAUUVBQV9OQUVBVkNMS1JIYXNoVGFibGVfSXRlcmF0b3JAQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpFcmFzZShjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yICYgX19wdHI2NCxjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yICYgX19wdHI2NCkgX19wdHI2NA0KKz9FcmFzZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUFBX05BRUFWQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAMEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpFcmFzZShjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yICYgX19wdHI2NCkgX19wdHI2NA0KKz9FcmFzZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUFBX05BRUFWQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSOjpFc2NhcGUodm9pZCkgX19wdHI2NA0KKz9Fc2NhcGVAU1RSQEBRRUFBSFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpFc2NhcGUoaW50LGludCkgX19wdHI2NA0KKz9Fc2NhcGVAU1RSQUBAUUVBQUpISEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJVOjpFc2NhcGUodm9pZCkgX19wdHI2NA0KKz9Fc2NhcGVAU1RSVUBAUUVBQUpYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFI6OkVzY2FwZVNwYWNlcyh2b2lkKSBfX3B0cjY0DQorP0VzY2FwZVNwYWNlc0BTVFJAQFFFQUFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENFdHdUcmFjZXI6OkV0d1RyYWNlRXZlbnQoc3RydWN0IF9HVUlEIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLC4uLikgX19wdHI2NA0KKz9FdHdUcmFjZUV2ZW50QENFdHdUcmFjZXJAQFFFQUFLUEVCVV9HVUlEQEBLWloNCis7IGludCBfX2NkZWNsIEZpbGVUaW1lVG9HTVQoc3RydWN0IF9GSUxFVElNRSBjb25zdCAmIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/RmlsZVRpbWVUb0dNVEBAWUFIQUVCVV9GSUxFVElNRUBAUEVBREtAWg0KKzsgaW50IF9fY2RlY2wgRmlsZVRpbWVUb0dNVEV4KHN0cnVjdCBfRklMRVRJTUUgY29uc3QgJiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/RmlsZVRpbWVUb0dNVEV4QEBZQUhBRUJVX0ZJTEVUSU1FQEBQRUFES0tAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6RmluZCh1bnNpZ25lZCBfX2ludDY0LGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmRAQ0xLUkhhc2hUYWJsZUBAUUVBQV9OX0tBRUFWQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkZpbmQodW5zaWduZWQgX19pbnQ2NCxjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yICYgX19wdHI2NCkgX19wdHI2NA0KKz9GaW5kQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUFfTl9LQUVBVkNMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpGaW5kS2V5KHVuc2lnbmVkIF9faW50NjQsdm9pZCBjb25zdCAqIF9fcHRyNjQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0ZpbmRLZXlAQ0xLUkhhc2hUYWJsZUBAUUVCQT9BVzRMS19SRVRDT0RFQEBfS1BFQVBFQlhAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6RmluZEtleSh1bnNpZ25lZCBfX2ludDY0LHZvaWQgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9GaW5kS2V5QENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkE/QVc0TEtfUkVUQ09ERUBAX0tQRUFQRUJYQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIEhBU0hfVEFCTEU6OkZpbmROZXh0RWxlbWVudChzdHJ1Y3QgSFRfSVRFUkFUT1IgKiBfX3B0cjY0LGNsYXNzIEhUX0VMRU1FTlQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9GaW5kTmV4dEVsZW1lbnRASEFTSF9UQUJMRUBAUUVBQUtQRUFVSFRfSVRFUkFUT1JAQFBFQVBFQVZIVF9FTEVNRU5UQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSEFTSF9UQUJMRV9CVUNLRVQ6OkZpbmROZXh0RWxlbWVudChzdHJ1Y3QgSFRfSVRFUkFUT1IgKiBfX3B0cjY0LGNsYXNzIEhUX0VMRU1FTlQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9GaW5kTmV4dEVsZW1lbnRASEFTSF9UQUJMRV9CVUNLRVRAQFFFQUFLUEVBVUhUX0lURVJBVE9SQEBQRUFQRUFWSFRfRUxFTUVOVEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIEhUQl9FTEVNRU5UOjpGaW5kTmV4dEVsZW1lbnQodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsY2xhc3MgSFRfRUxFTUVOVCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmROZXh0RWxlbWVudEBIVEJfRUxFTUVOVEBAUUVBQUtQRUFLUEVBUEVBVkhUX0VMRU1FTlRAQEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpGaW5kUmVjb3JkKHZvaWQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0ZpbmRSZWNvcmRAQ0xLUkhhc2hUYWJsZUBAUUVCQT9BVzRMS19SRVRDT0RFQEBQRUJYQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkZpbmRSZWNvcmQodm9pZCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RmluZFJlY29yZEBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBP0FXNExLX1JFVENPREVAQFBFQlhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNVUxUSVNaOjpGaW5kU3RyaW5nKGNsYXNzIFNUUiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RmluZFN0cmluZ0BNVUxUSVNaQEBRRUFBSEFFQlZTVFJAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1VTFRJU1o6OkZpbmRTdHJpbmcoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmluZFN0cmluZ0BNVUxUSVNaQEBRRUFBSFBFQkRAWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5ICogX19wdHI2NCBfX2NkZWNsIENEb3VibGVMaXN0OjpGaXJzdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0ZpcnN0QENEb3VibGVMaXN0QEBRRUJBUUVBVkNMaXN0RW50cnlAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENMaXN0RW50cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ0xvY2tlZERvdWJsZUxpc3Q6OkZpcnN0KHZvaWQpIF9fcHRyNjQNCis/Rmlyc3RAQ0xvY2tlZERvdWJsZUxpc3RAQFFFQUFRRUFWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBNVUxUSVNaOjpGaXJzdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0ZpcnN0QE1VTFRJU1pAQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogc3RydWN0IEhUQkVfRU5UUlkgKiBfX3B0cjY0IF9fY2RlY2wgSFRCX0VMRU1FTlQ6OkZpcnN0RWxlbWVudCh2b2lkKSBfX3B0cjY0DQorP0ZpcnN0RWxlbWVudEBIVEJfRUxFTUVOVEBAUUVBQVBFQVVIVEJFX0VOVFJZQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSEFTSF9UQUJMRTo6Rmx1c2hFbGVtZW50cyh2b2lkKSBfX3B0cjY0DQorP0ZsdXNoRWxlbWVudHNASEFTSF9UQUJMRUBAUUVBQUtYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFI6OkZvcm1hdFN0cmluZyh1bnNpZ25lZCBsb25nLGNoYXIgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCBjb25zdCxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0Zvcm1hdFN0cmluZ0BTVFJAQFFFQUFIS1FFQVBFQkRQRUJES0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpGb3JtYXRTdHJpbmcodW5zaWduZWQgbG9uZyxjaGFyIGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQgY29uc3QsY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Gb3JtYXRTdHJpbmdAU1RSQUBAUUVBQUpLUUVBUEVCRFBFQkRLQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDREZUQ2FjaGU6OkZvcm1hdHRlZEJ1ZmZlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0Zvcm1hdHRlZEJ1ZmZlckBDREZUQ2FjaGVAQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQUxMT0NfQ0FDSEVfSEFORExFUjo6RnJlZSh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9GcmVlQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFFFQUFIUEVBWEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCVUZGRVI6OkZyZWVNZW1vcnkodm9pZCkgX19wdHI2NA0KKz9GcmVlTWVtb3J5QEJVRkZFUkBAUUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBBU0NMT0dfREFURVRJTUVfQ0FDSEU6OkdlbmVyYXRlRGF0ZVRpbWVTdHJpbmcoc3RydWN0IERBVEVUSU1FX0ZPUk1BVF9FTlRSWSAqIF9fcHRyNjQsc3RydWN0IF9TWVNURU1USU1FIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZW5lcmF0ZURhdGVUaW1lU3RyaW5nQEFTQ0xPR19EQVRFVElNRV9DQUNIRUBAVUVBQVhQRUFVREFURVRJTUVfRk9STUFUX0VOVFJZQEBQRUJVX1NZU1RFTVRJTUVAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIEVYVExPR19EQVRFVElNRV9DQUNIRTo6R2VuZXJhdGVEYXRlVGltZVN0cmluZyhzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZICogX19wdHI2NCxzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dlbmVyYXRlRGF0ZVRpbWVTdHJpbmdARVhUTE9HX0RBVEVUSU1FX0NBQ0hFQEBVRUFBWFBFQVVEQVRFVElNRV9GT1JNQVRfRU5UUllAQFBFQlVfU1lTVEVNVElNRUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgVzNfREFURVRJTUVfQ0FDSEU6OkdlbmVyYXRlRGF0ZVRpbWVTdHJpbmcoc3RydWN0IERBVEVUSU1FX0ZPUk1BVF9FTlRSWSAqIF9fcHRyNjQsc3RydWN0IF9TWVNURU1USU1FIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZW5lcmF0ZURhdGVUaW1lU3RyaW5nQFczX0RBVEVUSU1FX0NBQ0hFQEBVRUFBWFBFQVVEQVRFVElNRV9GT1JNQVRfRU5UUllAQFBFQlVfU1lTVEVNVElNRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpHZXRCdWNrZXRMb2NrU3BpbkNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0QnVja2V0TG9ja1NwaW5Db3VudEBDTEtSSGFzaFRhYmxlQEBRRUJBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6R2V0QnVja2V0TG9ja1NwaW5Db3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEJ1Y2tldExvY2tTcGluQ291bnRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgQ0NyaXRTZWM6OkdldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcih2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ0NyaXRTZWNAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBDRmFrZUxvY2s6OkdldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcih2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ0Zha2VMb2NrQEBTQU5YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpHZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3Iodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENSZWFkZXJXcml0ZXJMb2NrMkBAU0FOWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUmVhZGVyV3JpdGVyTG9jazNAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUmVhZGVyV3JpdGVyTG9ja0BAU0FOWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIENSdGxSZXNvdXJjZTo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUnRsUmVzb3VyY2VAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBDU2hhcmVMb2NrOjpHZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3Iodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENTaGFyZUxvY2tAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBDU21hbGxTcGluTG9jazo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDU21hbGxTcGluTG9ja0BAU0FOWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIENTcGluTG9jazo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDU3BpbkxvY2tAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENDcml0U2VjOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ0NyaXRTZWNAQFNBR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENGYWtlTG9jazo6R2V0RGVmYXVsdFNwaW5Db3VudCh2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkNvdW50QENGYWtlTG9ja0BAU0FHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2syQEBTQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OkdldERlZmF1bHRTcGluQ291bnQodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazNAQFNBR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2tAQFNBR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENSdGxSZXNvdXJjZTo6R2V0RGVmYXVsdFNwaW5Db3VudCh2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkNvdW50QENSdGxSZXNvdXJjZUBAU0FHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1NoYXJlTG9jazo6R2V0RGVmYXVsdFNwaW5Db3VudCh2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkNvdW50QENTaGFyZUxvY2tAQFNBR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ1NtYWxsU3BpbkxvY2tAQFNBR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENTcGluTG9jazo6R2V0RGVmYXVsdFNwaW5Db3VudCh2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkNvdW50QENTcGluTG9ja0BAU0FHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIEVWRU5UX0xPRzo6R2V0RXJyb3JDb2RlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0RXJyb3JDb2RlQEVWRU5UX0xPR0BAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFM6OkdldEZvcm1hdHRlZEN1cnJlbnREYXRlVGltZShjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRGb3JtYXR0ZWRDdXJyZW50RGF0ZVRpbWVAQ0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFNAQFFFQUFLUEVBREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQUNIRURfREFURVRJTUVfRk9STUFUUzo6R2V0Rm9ybWF0dGVkRGF0ZVRpbWUoc3RydWN0IF9TWVNURU1USU1FIGNvbnN0ICogX19wdHI2NCxjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRGb3JtYXR0ZWREYXRlVGltZUBDQUNIRURfREFURVRJTUVfRk9STUFUU0BAUUVBQUtQRUJVX1NZU1RFTVRJTUVAQFBFQURAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgQlVGRkVSOjpHZXROZXdTdG9yYWdlKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9HZXROZXdTdG9yYWdlQEJVRkZFUkBAQUVBQUhJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDQ3JpdFNlYzo6R2V0U3BpbkNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3BpbkNvdW50QENDcml0U2VjQEBRRUJBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ0Zha2VMb2NrOjpHZXRTcGluQ291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTcGluQ291bnRAQ0Zha2VMb2NrQEBRRUJBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpHZXRTcGluQ291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2syQEBRRUJBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpHZXRTcGluQ291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2szQEBRRUJBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OkdldFNwaW5Db3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9ja0BAUUVCQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENSdGxSZXNvdXJjZTo6R2V0U3BpbkNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3BpbkNvdW50QENSdGxSZXNvdXJjZUBAUUVCQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENTaGFyZUxvY2s6OkdldFNwaW5Db3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFNwaW5Db3VudEBDU2hhcmVMb2NrQEBRRUJBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OkdldFNwaW5Db3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFNwaW5Db3VudEBDU21hbGxTcGluTG9ja0BAUUVCQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENTcGluTG9jazo6R2V0U3BpbkNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3BpbkNvdW50QENTcGluTG9ja0BAUUVCQUdYWg0KKzsgcHVibGljOiBjbGFzcyBDTEtSSGFzaFRhYmxlU3RhdHMgIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6R2V0U3RhdGlzdGljcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0YXRpc3RpY3NAQ0xLUkhhc2hUYWJsZUBAUUVCQT9BVkNMS1JIYXNoVGFibGVTdGF0c0BAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xLUkhhc2hUYWJsZVN0YXRzICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkdldFN0YXRpc3RpY3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdGF0aXN0aWNzQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkE/QVZDTEtSSGFzaFRhYmxlU3RhdHNAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6R2V0VGFibGVMb2NrU3BpbkNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VGFibGVMb2NrU3BpbkNvdW50QENMS1JIYXNoVGFibGVAQFFFQkFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpHZXRUYWJsZUxvY2tTcGluQ291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRUYWJsZUxvY2tTcGluQ291bnRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQUdYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWU6OkdldFRpY2tDb3VudCh2b2lkKSBfX3B0cjY0DQorP0dldFRpY2tDb3VudEBDRGF0ZVRpbWVAQFFFQUFIWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkhUTUxFbmNvZGUodm9pZCkgX19wdHI2NA0KKz9IVE1MRW5jb2RlQFNUUkFAQFFFQUFKWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNUUjo6SGFzaCh2b2lkKSBfX3B0cjY0DQorP0hhc2hAU1RSQEBRRUFBWFhaDQorOyBwdWJsaWM6IGNsYXNzIENMaXN0RW50cnkgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0RvdWJsZUxpc3Q6OkhlYWROb2RlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SGVhZE5vZGVAQ0RvdWJsZUxpc3RAQFFFQkFRRUJWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTG9ja2VkRG91YmxlTGlzdDo6SGVhZE5vZGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9IZWFkTm9kZUBDTG9ja2VkRG91YmxlTGlzdEBAUUVCQVFFQlZDTGlzdEVudHJ5QEBYWg0KK0lJU0NyZWF0ZURpcmVjdG9yeQ0KK0lJU3N0cmljbXANCitJSVNzdHJsZW4NCitJSVNzdHJsd3INCitJSVNzdHJuY3B5DQorSUlTc3RybmljbXANCitJSVNzdHJyY2hyDQorSUlTc3RydXByDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yOjpJbmNyZW1lbnQodm9pZCkgX19wdHI2NA0KKz9JbmNyZW1lbnRAQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAUUVBQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3I6OkluY3JlbWVudCh2b2lkKSBfX3B0cjY0DQorP0luY3JlbWVudEBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBRRUFBX05YWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSFRCX0VMRU1FTlQ6OkluY3JlbWVudEVsZW1lbnRzKHZvaWQpIF9fcHRyNjQNCis/SW5jcmVtZW50RWxlbWVudHNASFRCX0VMRU1FTlRAQFFFQUFYWFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkluY3JlbWVudEl0ZXJhdG9yKGNsYXNzIENMS1JIYXNoVGFibGU6OkNJdGVyYXRvciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5jcmVtZW50SXRlcmF0b3JAQ0xLUkhhc2hUYWJsZUBAUUVBQT9BVzRMS19SRVRDT0RFQEBQRUFWQ0l0ZXJhdG9yQDFAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkluY3JlbWVudEl0ZXJhdG9yKGNsYXNzIENMS1JIYXNoVGFibGU6OkNDb25zdEl0ZXJhdG9yICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9JbmNyZW1lbnRJdGVyYXRvckBDTEtSSGFzaFRhYmxlQEBRRUJBP0FXNExLX1JFVENPREVAQFBFQVZDQ29uc3RJdGVyYXRvckAxQEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpJbmNyZW1lbnRJdGVyYXRvcihjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDSXRlcmF0b3IgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luY3JlbWVudEl0ZXJhdG9yQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUE/QVc0TEtfUkVUQ09ERUBAUEVBVkNJdGVyYXRvckAxQEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpJbmNyZW1lbnRJdGVyYXRvcihjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDQ29uc3RJdGVyYXRvciAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/SW5jcmVtZW50SXRlcmF0b3JAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQT9BVzRMS19SRVRDT0RFQEBQRUFWQ0NvbnN0SXRlcmF0b3JAMUBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQUxMT0NfQ0FDSEVfSEFORExFUjo6SW5pdGlhbGl6ZSh2b2lkKQ0KKz9Jbml0aWFsaXplQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFNBSFhaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpJbml0aWFsaXplSXRlcmF0b3IoY2xhc3MgQ0xLUkhhc2hUYWJsZTo6Q0l0ZXJhdG9yICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0aWFsaXplSXRlcmF0b3JAQ0xLUkhhc2hUYWJsZUBAUUVBQT9BVzRMS19SRVRDT0RFQEBQRUFWQ0l0ZXJhdG9yQDFAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkluaXRpYWxpemVJdGVyYXRvcihjbGFzcyBDTEtSSGFzaFRhYmxlOjpDQ29uc3RJdGVyYXRvciAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUl0ZXJhdG9yQENMS1JIYXNoVGFibGVAQFFFQkE/QVc0TEtfUkVUQ09ERUBAUEVBVkNDb25zdEl0ZXJhdG9yQDFAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkluaXRpYWxpemVJdGVyYXRvcihjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDSXRlcmF0b3IgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVJdGVyYXRvckBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUFBP0FXNExLX1JFVENPREVAQFBFQVZDSXRlcmF0b3JAMUBAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SW5pdGlhbGl6ZUl0ZXJhdG9yKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNDb25zdEl0ZXJhdG9yICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Jbml0aWFsaXplSXRlcmF0b3JAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQT9BVzRMS19SRVRDT0RFQEBQRUFWQ0NvbnN0SXRlcmF0b3JAMUBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSEFTSF9UQUJMRTo6SW5pdGlhbGl6ZUl0ZXJhdG9yKHN0cnVjdCBIVF9JVEVSQVRPUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUl0ZXJhdG9yQEhBU0hfVEFCTEVAQFFFQUFLUEVBVUhUX0lURVJBVE9SQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSEFTSF9UQUJMRV9CVUNLRVQ6OkluaXRpYWxpemVJdGVyYXRvcihzdHJ1Y3QgSFRfSVRFUkFUT1IgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVJdGVyYXRvckBIQVNIX1RBQkxFX0JVQ0tFVEBAUUVBQUtQRUFVSFRfSVRFUkFUT1JAQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpJbnNlcnQodm9pZCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvciAmIF9fcHRyNjQsYm9vbCkgX19wdHI2NA0KKz9JbnNlcnRAQ0xLUkhhc2hUYWJsZUBAUUVBQV9OUEVCWEFFQVZDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBfTkBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpJbnNlcnQodm9pZCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciAmIF9fcHRyNjQsYm9vbCkgX19wdHI2NA0KKz9JbnNlcnRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQV9OUEVCWEFFQVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBfTkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEhBU0hfVEFCTEU6Okluc2VydChjbGFzcyBIVF9FTEVNRU5UICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/SW5zZXJ0QEhBU0hfVEFCTEVAQFFFQUFIUEVBVkhUX0VMRU1FTlRAQEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBIQVNIX1RBQkxFX0JVQ0tFVDo6SW5zZXJ0KHVuc2lnbmVkIGxvbmcsY2xhc3MgSFRfRUxFTUVOVCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0luc2VydEBIQVNIX1RBQkxFX0JVQ0tFVEBAUUVBQUhLUEVBVkhUX0VMRU1FTlRAQEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBIVEJfRUxFTUVOVDo6SW5zZXJ0KHVuc2lnbmVkIGxvbmcsY2xhc3MgSFRfRUxFTUVOVCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5zZXJ0QEhUQl9FTEVNRU5UQEBRRUFBSEtQRUFWSFRfRUxFTUVOVEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENEb3VibGVMaXN0OjpJbnNlcnRIZWFkKGNsYXNzIENMaXN0RW50cnkgKiBfX3B0cjY0IGNvbnN0KSBfX3B0cjY0DQorP0luc2VydEhlYWRAQ0RvdWJsZUxpc3RAQFFFQUFYUUVBVkNMaXN0RW50cnlAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTG9ja2VkRG91YmxlTGlzdDo6SW5zZXJ0SGVhZChjbGFzcyBDTGlzdEVudHJ5ICogX19wdHI2NCBjb25zdCkgX19wdHI2NA0KKz9JbnNlcnRIZWFkQENMb2NrZWREb3VibGVMaXN0QEBRRUFBWFFFQVZDTGlzdEVudHJ5QEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6Okluc2VydE5ld0l0ZW0oY2xhc3MgQUxMT0NfQ0FDSEVfSEFORExFUiAqIF9fcHRyNjQpDQorP0luc2VydE5ld0l0ZW1AQUxMT0NfQ0FDSEVfSEFORExFUkBAU0FYUEVBVjFAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JIYXNoVGFibGU6Okluc2VydFJlY29yZCh2b2lkIGNvbnN0ICogX19wdHI2NCxib29sKSBfX3B0cjY0DQorP0luc2VydFJlY29yZEBDTEtSSGFzaFRhYmxlQEBRRUFBP0FXNExLX1JFVENPREVAQFBFQlhfTkBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpJbnNlcnRSZWNvcmQodm9pZCBjb25zdCAqIF9fcHRyNjQsYm9vbCkgX19wdHI2NA0KKz9JbnNlcnRSZWNvcmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQT9BVzRMS19SRVRDT0RFQEBQRUJYX05AWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RvdWJsZUxpc3Q6Okluc2VydFRhaWwoY2xhc3MgQ0xpc3RFbnRyeSAqIF9fcHRyNjQgY29uc3QpIF9fcHRyNjQNCis/SW5zZXJ0VGFpbEBDRG91YmxlTGlzdEBAUUVBQVhRRUFWQ0xpc3RFbnRyeUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMb2NrZWREb3VibGVMaXN0OjpJbnNlcnRUYWlsKGNsYXNzIENMaXN0RW50cnkgKiBfX3B0cjY0IGNvbnN0KSBfX3B0cjY0DQorP0luc2VydFRhaWxAQ0xvY2tlZERvdWJsZUxpc3RAQFFFQUFYUUVBVkNMaXN0RW50cnlAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OklwUHJpbnQoY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXBQcmludEBBTExPQ19DQUNIRV9IQU5ETEVSQEBRRUFBSFBFQURQRUFLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTUxTWkFVOjpJc0N1cnJlbnRVbmljb2RlKHZvaWQpIF9fcHRyNjQNCis/SXNDdXJyZW50VW5pY29kZUBNTFNaQVVAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSQVU6OklzQ3VycmVudFVuaWNvZGUodm9pZCkgX19wdHI2NA0KKz9Jc0N1cnJlbnRVbmljb2RlQFNUUkFVQEBRRUFBSFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBCVUZGRVI6OklzRHluQWxsb2NlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRHluQWxsb2NlZEBCVUZGRVJAQEFFQkFIWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENEb3VibGVMaXN0OjpJc0VtcHR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNFbXB0eUBDRG91YmxlTGlzdEBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMb2NrZWREb3VibGVMaXN0OjpJc0VtcHR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNFbXB0eUBDTG9ja2VkRG91YmxlTGlzdEBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMb2NrZWRTaW5nbGVMaXN0OjpJc0VtcHR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNFbXB0eUBDTG9ja2VkU2luZ2xlTGlzdEBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTaW5nbGVMaXN0OjpJc0VtcHR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNFbXB0eUBDU2luZ2xlTGlzdEBAUUVCQV9OWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTVVMVElTWjo6SXNFbXB0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRW1wdHlATVVMVElTWkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFI6OklzRW1wdHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0VtcHR5QFNUUkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJBOjpJc0VtcHR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNFbXB0eUBTVFJBQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUkFVOjpJc0VtcHR5KHZvaWQpIF9fcHRyNjQNCis/SXNFbXB0eUBTVFJBVUBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJVOjpJc0VtcHR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNFbXB0eUBTVFJVQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENERlRDYWNoZTo6SXNIaXQoc3RydWN0IF9TWVNURU1USU1FIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Jc0hpdEBDREZUQ2FjaGVAQFFFQkFIUEVCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBEQVRFVElNRV9GT1JNQVRfRU5UUlk6OklzSGl0KHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/SXNIaXRAREFURVRJTUVfRk9STUFUX0VOVFJZQEBRRUJBSFBFQlVfU1lTVEVNVElNRUBAQFoNCitJc0lQQWRkcmVzc0xvY2FsDQorSXNMYXJnZUludGVnZXJUb0RlY2ltYWxDaGFyDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTG9ja2VkRG91YmxlTGlzdDo6SXNMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0xvY2tlZEBDTG9ja2VkRG91YmxlTGlzdEBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMb2NrZWRTaW5nbGVMaXN0OjpJc0xvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzTG9ja2VkQENMb2NrZWRTaW5nbGVMaXN0QEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0NyaXRTZWM6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZExvY2tlZEBDQ3JpdFNlY0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENGYWtlTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNSZWFkTG9ja2VkQENGYWtlTG9ja0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JIYXNoVGFibGU6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZExvY2tlZEBDTEtSSGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNSZWFkTG9ja2VkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZExvY2tlZEBDUmVhZGVyV3JpdGVyTG9jazJAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZExvY2tlZEBDUmVhZGVyV3JpdGVyTG9jazNAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNSZWFkTG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1J0bFJlc291cmNlOjpJc1JlYWRMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRMb2NrZWRAQ1J0bFJlc291cmNlQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NoYXJlTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNSZWFkTG9ja2VkQENTaGFyZUxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU21hbGxTcGluTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNSZWFkTG9ja2VkQENTbWFsbFNwaW5Mb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NwaW5Mb2NrOjpJc1JlYWRMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRMb2NrZWRAQ1NwaW5Mb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0NyaXRTZWM6OklzUmVhZFVubG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNSZWFkVW5sb2NrZWRAQ0NyaXRTZWNAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRmFrZUxvY2s6OklzUmVhZFVubG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNSZWFkVW5sb2NrZWRAQ0Zha2VMb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRVbmxvY2tlZEBDTEtSSGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRVbmxvY2tlZEBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpJc1JlYWRVbmxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZFVubG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrMkBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRVbmxvY2tlZEBDUmVhZGVyV3JpdGVyTG9jazNAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRVbmxvY2tlZEBDUmVhZGVyV3JpdGVyTG9ja0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSdGxSZXNvdXJjZTo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRVbmxvY2tlZEBDUnRsUmVzb3VyY2VAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU2hhcmVMb2NrOjpJc1JlYWRVbmxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZFVubG9ja2VkQENTaGFyZUxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU21hbGxTcGluTG9jazo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRVbmxvY2tlZEBDU21hbGxTcGluTG9ja0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTcGluTG9jazo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRVbmxvY2tlZEBDU3BpbkxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEhUQl9FTEVNRU5UOjpJc1NwYWNlQXZhaWxhYmxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNTcGFjZUF2YWlsYWJsZUBIVEJfRUxFTUVOVEBAUUVCQUhYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xvY2tlZERvdWJsZUxpc3Q6OklzVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1VubG9ja2VkQENMb2NrZWREb3VibGVMaXN0QEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xvY2tlZFNpbmdsZUxpc3Q6OklzVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1VubG9ja2VkQENMb2NrZWRTaW5nbGVMaXN0QEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6SXNVc2FibGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1VzYWJsZUBDTEtSSGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SXNVc2FibGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1VzYWJsZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBBTExPQ19DQUNIRV9IQU5ETEVSQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJVRkZFUjo6SXNWYWxpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVmFsaWRAQlVGRkVSQEBRRUJBSFhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBDTEtSSGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6SXNWYWxpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVmFsaWRAQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OklzVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1ZhbGlkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBRRUJBX05YWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBIQVNIX1RBQkxFOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBIQVNIX1RBQkxFQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1MU1pBVTo6SXNWYWxpZCh2b2lkKSBfX3B0cjY0DQorP0lzVmFsaWRATUxTWkFVQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1VTFRJU1o6OklzVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1ZhbGlkQE1VTFRJU1pAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBTVFJAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSQTo6SXNWYWxpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVmFsaWRAU1RSQUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJBVTo6SXNWYWxpZCh2b2lkKSBfX3B0cjY0DQorP0lzVmFsaWRAU1RSQVVAQFFFQUFIWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENDcml0U2VjOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZUxvY2tlZEBDQ3JpdFNlY0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENGYWtlTG9jazo6SXNXcml0ZUxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV3JpdGVMb2NrZWRAQ0Zha2VMb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6SXNXcml0ZUxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV3JpdGVMb2NrZWRAQ0xLUkhhc2hUYWJsZUBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlTG9ja2VkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlTG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrMkBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6SXNXcml0ZUxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV3JpdGVMb2NrZWRAQ1JlYWRlcldyaXRlckxvY2szQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlTG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1J0bFJlc291cmNlOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZUxvY2tlZEBDUnRsUmVzb3VyY2VAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU2hhcmVMb2NrOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZUxvY2tlZEBDU2hhcmVMb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlTG9ja2VkQENTbWFsbFNwaW5Mb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NwaW5Mb2NrOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZUxvY2tlZEBDU3BpbkxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDQ3JpdFNlYzo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZVVubG9ja2VkQENDcml0U2VjQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0Zha2VMb2NrOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ0Zha2VMb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZVVubG9ja2VkQENMS1JIYXNoVGFibGVAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZVVubG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrMkBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZVVubG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrM0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ1JlYWRlcldyaXRlckxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUnRsUmVzb3VyY2U6OklzV3JpdGVVbmxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV3JpdGVVbmxvY2tlZEBDUnRsUmVzb3VyY2VAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU2hhcmVMb2NrOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ1NoYXJlTG9ja0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ1NtYWxsU3BpbkxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU3BpbkxvY2s6OklzV3JpdGVVbmxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV3JpdGVVbmxvY2tlZEBDU3BpbkxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgY29uc3QgIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6S2V5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/S2V5QENMS1JIYXNoVGFibGVfSXRlcmF0b3JAQFFFQkE/Ql9LWFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBjb25zdCAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjpLZXkodm9pZCljb25zdCAgX19wdHI2NA0KKz9LZXlAQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAUUVCQT9CX0tYWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5ICogX19wdHI2NCBfX2NkZWNsIENEb3VibGVMaXN0OjpMYXN0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TGFzdEBDRG91YmxlTGlzdEBAUUVCQVFFQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5ICogX19wdHI2NCBfX2NkZWNsIENMb2NrZWREb3VibGVMaXN0OjpMYXN0KHZvaWQpIF9fcHRyNjQNCis/TGFzdEBDTG9ja2VkRG91YmxlTGlzdEBAUUVBQVFFQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSFRCRV9FTlRSWSAqIF9fcHRyNjQgX19jZGVjbCBIVEJfRUxFTUVOVDo6TGFzdEVsZW1lbnQodm9pZCkgX19wdHI2NA0KKz9MYXN0RWxlbWVudEBIVEJfRUxFTUVOVEBAUUVBQVBFQVVIVEJFX0VOVFJZQEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFI6OkxvYWRTdHJpbmdBKHVuc2lnbmVkIGxvbmcsc3RydWN0IEhJTlNUQU5DRV9fICogX19wdHI2NCkgX19wdHI2NA0KKz9Mb2FkU3RyaW5nQUBTVFJAQFFFQUFIS1BFQVVISU5TVEFOQ0VfX0BAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSOjpMb2FkU3RyaW5nQSh1bnNpZ25lZCBsb25nLGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/TG9hZFN0cmluZ0FAU1RSQEBRRUFBSEtQRUJES0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpMb2FkU3RyaW5nVyh1bnNpZ25lZCBsb25nLHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TG9hZFN0cmluZ1dAU1RSQUBAUUVBQUpLUEVBVUhJTlNUQU5DRV9fQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSQTo6TG9hZFN0cmluZ1codW5zaWduZWQgbG9uZyxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0xvYWRTdHJpbmdXQFNUUkFAQFFFQUFKS1BFQkRLQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpMb2NrKHZvaWQpIF9fcHRyNjQNCis/TG9ja0BBTExPQ19DQUNIRV9IQU5ETEVSQEBBRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTG9ja2VkRG91YmxlTGlzdDo6TG9jayh2b2lkKSBfX3B0cjY0DQorP0xvY2tAQ0xvY2tlZERvdWJsZUxpc3RAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMb2NrZWRTaW5nbGVMaXN0OjpMb2NrKHZvaWQpIF9fcHRyNjQNCis/TG9ja0BDTG9ja2VkU2luZ2xlTGlzdEBAUUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIEhBU0hfVEFCTEVfQlVDS0VUOjpMb2NrKHZvaWQpIF9fcHRyNjQNCis/TG9ja0BIQVNIX1RBQkxFX0JVQ0tFVEBAQUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgVFNfUkVTT1VSQ0U6OkxvY2soZW51bSBUU1JFU19MT0NLX1RZUEUpIF9fcHRyNjQNCis/TG9ja0BUU19SRVNPVVJDRUBAUUVBQVhXNFRTUkVTX0xPQ0tfVFlQRUBAQFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19MT0NLVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8MSwxLDMsMSwzLDI+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDAkMDAkMDIkMDAkMDIkMDFAQFNBP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fY2RlY2wgQ0xvY2tCYXNlPDIsMSwxLDEsMywyPjo6TG9ja1R5cGUodm9pZCkNCis/TG9ja1R5cGVAPyRDTG9ja0Jhc2VAJDAxJDAwJDAwJDAwJDAyJDAxQEBTQT9BVzRMT0NLX0xPQ0tUWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX0xPQ0tUWVBFICBfX2NkZWNsIENMb2NrQmFzZTwzLDEsMSwxLDEsMT46OkxvY2tUeXBlKHZvaWQpDQorP0xvY2tUeXBlQD8kQ0xvY2tCYXNlQCQwMiQwMCQwMCQwMCQwMCQwMEBAU0E/QVc0TE9DS19MT0NLVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19MT0NLVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8NCwxLDEsMiwzLDM+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDMkMDAkMDAkMDEkMDIkMDJAQFNBP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fY2RlY2wgQ0xvY2tCYXNlPDUsMiwxLDIsMywzPjo6TG9ja1R5cGUodm9pZCkNCis/TG9ja1R5cGVAPyRDTG9ja0Jhc2VAJDA0JDAxJDAwJDAxJDAyJDAyQEBTQT9BVzRMT0NLX0xPQ0tUWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX0xPQ0tUWVBFICBfX2NkZWNsIENMb2NrQmFzZTw2LDIsMSwyLDMsMz46OkxvY2tUeXBlKHZvaWQpDQorP0xvY2tUeXBlQD8kQ0xvY2tCYXNlQCQwNSQwMSQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19MT0NLVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19MT0NLVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8NywyLDIsMSwzLDI+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDYkMDEkMDEkMDAkMDIkMDFAQFNBP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fY2RlY2wgQ0xvY2tCYXNlPDgsMiwyLDEsMywyPjo6TG9ja1R5cGUodm9pZCkNCis/TG9ja1R5cGVAPyRDTG9ja0Jhc2VAJDA3JDAxJDAxJDAwJDAyJDAxQEBTQT9BVzRMT0NLX0xPQ0tUWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX0xPQ0tUWVBFICBfX2NkZWNsIENMb2NrQmFzZTw5LDIsMSwxLDMsMj46OkxvY2tUeXBlKHZvaWQpDQorP0xvY2tUeXBlQD8kQ0xvY2tCYXNlQCQwOCQwMSQwMCQwMCQwMiQwMUBAU0E/QVc0TE9DS19MT0NLVFlQRUBAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEVWRU5UX0xPRzo6TG9nRXZlbnQodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCxjaGFyIGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQgY29uc3QsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Mb2dFdmVudEBFVkVOVF9MT0dAQFFFQUFYS0dRRUFQRUJES0BaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgRVZFTlRfTE9HOjpMb2dFdmVudFByaXZhdGUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCxjaGFyIGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQgY29uc3QsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Mb2dFdmVudFByaXZhdGVARVZFTlRfTE9HQEBBRUFBWEtHR1FFQVBFQkRLQFoNCis7IHB1YmxpYzogY2xhc3MgSFRfRUxFTUVOVCAqIF9fcHRyNjQgX19jZGVjbCBIQVNIX1RBQkxFOjpMb29rdXAoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TG9va3VwQEhBU0hfVEFCTEVAQFFFQUFQRUFWSFRfRUxFTUVOVEBAUEVCREBaDQorOyBwdWJsaWM6IGNsYXNzIEhUX0VMRU1FTlQgKiBfX3B0cjY0IF9fY2RlY2wgSEFTSF9UQUJMRTo6TG9va3VwKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/TG9va3VwQEhBU0hfVEFCTEVAQFFFQUFQRUFWSFRfRUxFTUVOVEBAUEVCREtAWg0KKzsgcHVibGljOiBjbGFzcyBIVF9FTEVNRU5UICogX19wdHI2NCBfX2NkZWNsIEhBU0hfVEFCTEVfQlVDS0VUOjpMb29rdXAodW5zaWduZWQgbG9uZyxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0xvb2t1cEBIQVNIX1RBQkxFX0JVQ0tFVEBAUUVBQVBFQVZIVF9FTEVNRU5UQEBLUEVCREtAWg0KKzsgcHVibGljOiBjbGFzcyBIVF9FTEVNRU5UICogX19wdHI2NCBfX2NkZWNsIEhUQl9FTEVNRU5UOjpMb29rdXAodW5zaWduZWQgbG9uZyxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0xvb2t1cEBIVEJfRUxFTUVOVEBAUUVBQVBFQVZIVF9FTEVNRU5UQEBLUEVCREtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6TWF4U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP01heFNpemVAQ0xLUkhhc2hUYWJsZUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6TWF4U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP01heFNpemVAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQUtYWg0KKzsgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBNb250aDNDaGFyTmFtZXModW5zaWduZWQgbG9uZykNCis/TW9udGgzQ2hhck5hbWVzQEBZQVBFQkRLQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JIYXNoVGFibGU6Ok11bHRpS2V5cyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP011bHRpS2V5c0BDTEtSSGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6TXVsdGlLZXlzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TXVsdGlLZXlzQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFfTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fY2RlY2wgQ0xvY2tCYXNlPDEsMSwzLDEsMywyPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDAkMDAkMDIkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fY2RlY2wgQ0xvY2tCYXNlPDIsMSwxLDEsMywyPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDEkMDAkMDAkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fY2RlY2wgQ0xvY2tCYXNlPDMsMSwxLDEsMSwxPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDIkMDAkMDAkMDAkMDAkMDBAQFNBP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fY2RlY2wgQ0xvY2tCYXNlPDQsMSwxLDIsMywzPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDMkMDAkMDAkMDEkMDIkMDJAQFNBP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fY2RlY2wgQ0xvY2tCYXNlPDUsMiwxLDIsMywzPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDQkMDEkMDAkMDEkMDIkMDJAQFNBP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fY2RlY2wgQ0xvY2tCYXNlPDYsMiwxLDIsMywzPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDUkMDEkMDAkMDEkMDIkMDJAQFNBP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fY2RlY2wgQ0xvY2tCYXNlPDcsMiwyLDEsMywyPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDYkMDEkMDEkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fY2RlY2wgQ0xvY2tCYXNlPDgsMiwyLDEsMywyPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDckMDEkMDEkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fY2RlY2wgQ0xvY2tCYXNlPDksMiwxLDEsMywyPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDgkMDEkMDAkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTVVMVElTWjo6TmV4dChjaGFyIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9OZXh0QE1VTFRJU1pAQFFFQkFQRUJEUEVCREBaDQorOyBwdWJsaWM6IGNsYXNzIEJVRkZFUl9DSEFJTl9JVEVNICogX19wdHI2NCBfX2NkZWNsIEJVRkZFUl9DSEFJTjo6TmV4dEJ1ZmZlcihjbGFzcyBCVUZGRVJfQ0hBSU5fSVRFTSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TmV4dEJ1ZmZlckBCVUZGRVJfQ0hBSU5AQFFFQUFQRUFWQlVGRkVSX0NIQUlOX0lURU1AQFBFQVYyQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBIVEJfRUxFTUVOVDo6TmV4dEVsZW1lbnQoc3RydWN0IEhUQkVfRU5UUlkgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9OZXh0RWxlbWVudEBIVEJfRUxFTUVOVEBAUUVBQVhBRUFQRUFVSFRCRV9FTlRSWUBAQFoNCis7IGxvbmcgX19jZGVjbCBOb3JtYWxpemVVcmwoY2hhciAqIF9fcHRyNjQpDQorP05vcm1hbGl6ZVVybEBAWUFKUEVBREBaDQorOyBsb25nIF9fY2RlY2wgTm9ybWFsaXplVXJsVyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP05vcm1hbGl6ZVVybFdAQFlBSlBFQUdAWg0KK050TGFyZ2VJbnRlZ2VyVGltZVRvTG9jYWxTeXN0ZW1UaW1lDQorTnRMYXJnZUludGVnZXJUaW1lVG9TeXN0ZW1UaW1lDQorTnRTeXN0ZW1UaW1lVG9MYXJnZUludGVnZXINCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIEhUQl9FTEVNRU5UOjpOdW1FbGVtZW50cyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP051bUVsZW1lbnRzQEhUQl9FTEVNRU5UQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBIQVNIX1RBQkxFX0JVQ0tFVDo6TnVtRW50cmllcyh2b2lkKSBfX3B0cjY0DQorP051bUVudHJpZXNASEFTSF9UQUJMRV9CVUNLRVRAQFFFQUFLWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6TnVtU3ViVGFibGVzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TnVtU3ViVGFibGVzQENMS1JIYXNoVGFibGVAQFFFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTEtfVEFCTEVTSVpFICBfX2NkZWNsIENMS1JIYXNoVGFibGU6Ok51bVN1YlRhYmxlcyh1bnNpZ25lZCBsb25nICYgX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCkNCis/TnVtU3ViVGFibGVzQENMS1JIYXNoVGFibGVAQFNBP0FXNExLX1RBQkxFU0laRUBAQUVBSzBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpOdW1TdWJUYWJsZXModm9pZCljb25zdCAgX19wdHI2NA0KKz9OdW1TdWJUYWJsZXNAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMS19UQUJMRVNJWkUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6TnVtU3ViVGFibGVzKHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0KQ0KKz9OdW1TdWJUYWJsZXNAQ0xLUkxpbmVhckhhc2hUYWJsZUBAU0E/QVc0TEtfVEFCTEVTSVpFQEBBRUFLMEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENERlRDYWNoZTo6T2Zmc2V0U2Vjb25kcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP09mZnNldFNlY29uZHNAQ0RGVENhY2hlQEBRRUJBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX2NkZWNsIENMb2NrQmFzZTwxLDEsMywxLDMsMj46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwMCQwMCQwMiQwMCQwMiQwMUBAU0E/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX2NkZWNsIENMb2NrQmFzZTwyLDEsMSwxLDMsMj46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwMSQwMCQwMCQwMCQwMiQwMUBAU0E/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX2NkZWNsIENMb2NrQmFzZTwzLDEsMSwxLDEsMT46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwMiQwMCQwMCQwMCQwMCQwMEBAU0E/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX2NkZWNsIENMb2NrQmFzZTw0LDEsMSwyLDMsMz46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwMyQwMCQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX2NkZWNsIENMb2NrQmFzZTw1LDIsMSwyLDMsMz46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwNCQwMSQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX2NkZWNsIENMb2NrQmFzZTw2LDIsMSwyLDMsMz46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwNSQwMSQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX2NkZWNsIENMb2NrQmFzZTw3LDIsMiwxLDMsMj46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwNiQwMSQwMSQwMCQwMiQwMUBAU0E/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX2NkZWNsIENMb2NrQmFzZTw4LDIsMiwxLDMsMj46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwNyQwMSQwMSQwMCQwMiQwMUBAU0E/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX2NkZWNsIENMb2NrQmFzZTw5LDIsMSwxLDMsMj46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwOCQwMSQwMCQwMCQwMiQwMUBAU0E/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IGNsYXNzIENTaW5nbGVMaXN0RW50cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ0xvY2tlZFNpbmdsZUxpc3Q6OlBvcCh2b2lkKSBfX3B0cjY0DQorP1BvcEBDTG9ja2VkU2luZ2xlTGlzdEBAUUVBQVFFQVZDU2luZ2xlTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDU2luZ2xlTGlzdEVudHJ5ICogX19wdHI2NCBfX2NkZWNsIENTaW5nbGVMaXN0OjpQb3Aodm9pZCkgX19wdHI2NA0KKz9Qb3BAQ1NpbmdsZUxpc3RAQFFFQUFRRUFWQ1NpbmdsZUxpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OlByaW50KHZvaWQpIF9fcHRyNjQNCis/UHJpbnRAQUxMT0NfQ0FDSEVfSEFORExFUkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSEFTSF9UQUJMRTo6UHJpbnQodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9QcmludEBIQVNIX1RBQkxFQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSEFTSF9UQUJMRV9CVUNLRVQ6OlByaW50KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UHJpbnRASEFTSF9UQUJMRV9CVUNLRVRAQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBIVEJfRUxFTUVOVDo6UHJpbnQodW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9QcmludEBIVEJfRUxFTUVOVEBAUUVCQVhLQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFNUUkFVOjpQcml2YXRlUXVlcnlTdHIoaW50KSBfX3B0cjY0DQorP1ByaXZhdGVRdWVyeVN0ckBTVFJBVUBAQUVBQVBFQUdIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMb2NrZWRTaW5nbGVMaXN0OjpQdXNoKGNsYXNzIENTaW5nbGVMaXN0RW50cnkgKiBfX3B0cjY0IGNvbnN0KSBfX3B0cjY0DQorP1B1c2hAQ0xvY2tlZFNpbmdsZUxpc3RAQFFFQUFYUUVBVkNTaW5nbGVMaXN0RW50cnlAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU2luZ2xlTGlzdDo6UHVzaChjbGFzcyBDU2luZ2xlTGlzdEVudHJ5ICogX19wdHI2NCBjb25zdCkgX19wdHI2NA0KKz9QdXNoQENTaW5nbGVMaXN0QEBRRUFBWFFFQVZDU2luZ2xlTGlzdEVudHJ5QEBAWg0KKzsgcHVibGljOiBjbGFzcyBCVUZGRVIgKiBfX3B0cjY0IF9fY2RlY2wgU1RSVTo6UXVlcnlCdWZmZXIodm9pZCkgX19wdHI2NA0KKz9RdWVyeUJ1ZmZlckBTVFJVQEBRRUFBUEVBVkJVRkZFUkBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTUxTWkFVOjpRdWVyeUNCKGludCkgX19wdHI2NA0KKz9RdWVyeUNCQE1MU1pBVUBAUUVBQUlIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTVVMVElTWjo6UXVlcnlDQih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q0JATVVMVElTWkBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBTVFI6OlF1ZXJ5Q0Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNCQFNUUkBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBTVFJBOjpRdWVyeUNCKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDQkBTVFJBQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIFNUUkFVOjpRdWVyeUNCKGludCkgX19wdHI2NA0KKz9RdWVyeUNCQFNUUkFVQEBRRUFBSUhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBTVFJVOjpRdWVyeUNCKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDQkBTVFJVQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIE1MU1pBVTo6UXVlcnlDQkEodm9pZCkgX19wdHI2NA0KKz9RdWVyeUNCQUBNTFNaQVVAQFFFQUFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgU1RSQVU6OlF1ZXJ5Q0JBKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlDQkFAU1RSQVVAQFFFQUFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTUxTWkFVOjpRdWVyeUNCVyh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5Q0JXQE1MU1pBVUBAUUVBQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBTVFJBVTo6UXVlcnlDQlcodm9pZCkgX19wdHI2NA0KKz9RdWVyeUNCV0BTVFJBVUBAUUVBQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBNTFNaQVU6OlF1ZXJ5Q0NIKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlDQ0hATUxTWkFVQEBRRUFBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIE1VTFRJU1o6OlF1ZXJ5Q0NIKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDQ0hATVVMVElTWkBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBTVFI6OlF1ZXJ5Q0NIKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDQ0hAU1RSQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIFNUUkE6OlF1ZXJ5Q0NIKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDQ0hAU1RSQUBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBTVFJBVTo6UXVlcnlDQ0godm9pZCkgX19wdHI2NA0KKz9RdWVyeUNDSEBTVFJBVUBAUUVBQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBTVFJVOjpRdWVyeUNDSCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q0NIQFNUUlVAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENFdHdUcmFjZXI6OlF1ZXJ5RW5hYmxlTGV2ZWwodm9pZCkgX19wdHI2NA0KKz9RdWVyeUVuYWJsZUxldmVsQENFdHdUcmFjZXJAQFFFQUFLWFoNCis7IHB1YmxpYzogY2hhciBfX2NkZWNsIFNUUjo6UXVlcnlGaXJzdENoYXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUZpcnN0Q2hhckBTVFJAQFFFQkFEWFoNCis7IHB1YmxpYzogY2hhciBfX2NkZWNsIFNUUjo6UXVlcnlMYXN0Q2hhcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TGFzdENoYXJAU1RSQEBRRUJBRFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQlVGRkVSOjpRdWVyeVB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UHRyQEJVRkZFUkBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBCVUZGRVI6OlF1ZXJ5U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2l6ZUBCVUZGRVJAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgU1RSQTo6UXVlcnlTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTaXplQFNUUkFAQFFFQkFJWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OlF1ZXJ5U3RhdHMoc3RydWN0IF9BTExPQ19DQUNIRV9TVEFUSVNUSUNTICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeVN0YXRzQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFFFQUFYUEVBVV9BTExPQ19DQUNIRV9TVEFUSVNUSUNTQEBAWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIE1MU1pBVTo6UXVlcnlTdHIoaW50KSBfX3B0cjY0DQorP1F1ZXJ5U3RyQE1MU1pBVUBAUUVBQVBFQURIQFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBNVUxUSVNaOjpRdWVyeVN0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U3RyQE1VTFRJU1pAQFFFQkFQRUFEWFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBTVFI6OlF1ZXJ5U3RyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTdHJAU1RSQEBRRUJBUEVBRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgU1RSQTo6UXVlcnlTdHIodm9pZCkgX19wdHI2NA0KKz9RdWVyeVN0ckBTVFJBQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgU1RSQTo6UXVlcnlTdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVN0ckBTVFJBQEBRRUJBUEVCRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgU1RSQVU6OlF1ZXJ5U3RyKGludCkgX19wdHI2NA0KKz9RdWVyeVN0ckBTVFJBVUBAUUVBQVBFQURIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgU1RSQVU6OlF1ZXJ5U3RyKGludCkgX19wdHI2NA0KKz9RdWVyeVN0ckBTVFJBVUBAUUVBQVBFQUdIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgU1RSVTo6UXVlcnlTdHIodm9pZCkgX19wdHI2NA0KKz9RdWVyeVN0ckBTVFJVQEBRRUFBUEVBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFNUUlU6OlF1ZXJ5U3RyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTdHJAU1RSVUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIE1MU1pBVTo6UXVlcnlTdHJBKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlTdHJBQE1MU1pBVUBAUUVBQVBFQURYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIE1VTFRJU1o6OlF1ZXJ5U3RyQSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U3RyQUBNVUxUSVNaQEBRRUJBUEVBRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgU1RSOjpRdWVyeVN0ckEodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVN0ckFAU1RSQEBRRUJBUEVBRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgU1RSQVU6OlF1ZXJ5U3RyQSh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5U3RyQUBTVFJBVUBAUUVBQVBFQURYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBNTFNaQVU6OlF1ZXJ5U3RyVyh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5U3RyV0BNTFNaQVVAQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgU1RSQVU6OlF1ZXJ5U3RyVyh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5U3RyV0BTVFJBVUBAUUVBQVBFQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTVVMVElTWjo6UXVlcnlTdHJpbmdDb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U3RyaW5nQ291bnRATVVMVElTWkBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgQ0V0d1RyYWNlcjo6UXVlcnlUcmFjZUhhbmRsZSh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5VHJhY2VIYW5kbGVAQ0V0d1RyYWNlckBAUUVBQV9LWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIEJVRkZFUl9DSEFJTl9JVEVNOjpRdWVyeVVzZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVVzZWRAQlVGRkVSX0NIQUlOX0lURU1AQFFFQkFLWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19RVUVVRV9UWVBFICBfX2NkZWNsIENMb2NrQmFzZTwxLDEsMywxLDMsMj46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDAwJDAwJDAyJDAwJDAyJDAxQEBTQT9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8MiwxLDEsMSwzLDI+OjpRdWV1ZVR5cGUodm9pZCkNCis/UXVldWVUeXBlQD8kQ0xvY2tCYXNlQCQwMSQwMCQwMCQwMCQwMiQwMUBAU0E/QVc0TE9DS19RVUVVRV9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1FVRVVFX1RZUEUgIF9fY2RlY2wgQ0xvY2tCYXNlPDMsMSwxLDEsMSwxPjo6UXVldWVUeXBlKHZvaWQpDQorP1F1ZXVlVHlwZUA/JENMb2NrQmFzZUAkMDIkMDAkMDAkMDAkMDAkMDBAQFNBP0FXNExPQ0tfUVVFVUVfVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19RVUVVRV9UWVBFICBfX2NkZWNsIENMb2NrQmFzZTw0LDEsMSwyLDMsMz46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDAzJDAwJDAwJDAxJDAyJDAyQEBTQT9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8NSwyLDEsMiwzLDM+OjpRdWV1ZVR5cGUodm9pZCkNCis/UXVldWVUeXBlQD8kQ0xvY2tCYXNlQCQwNCQwMSQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19RVUVVRV9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1FVRVVFX1RZUEUgIF9fY2RlY2wgQ0xvY2tCYXNlPDYsMiwxLDIsMywzPjo6UXVldWVUeXBlKHZvaWQpDQorP1F1ZXVlVHlwZUA/JENMb2NrQmFzZUAkMDUkMDEkMDAkMDEkMDIkMDJAQFNBP0FXNExPQ0tfUVVFVUVfVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19RVUVVRV9UWVBFICBfX2NkZWNsIENMb2NrQmFzZTw3LDIsMiwxLDMsMj46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDA2JDAxJDAxJDAwJDAyJDAxQEBTQT9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8OCwyLDIsMSwzLDI+OjpRdWV1ZVR5cGUodm9pZCkNCis/UXVldWVUeXBlQD8kQ0xvY2tCYXNlQCQwNyQwMSQwMSQwMCQwMiQwMUBAU0E/QVc0TE9DS19RVUVVRV9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1FVRVVFX1RZUEUgIF9fY2RlY2wgQ0xvY2tCYXNlPDksMiwxLDEsMywyPjo6UXVldWVUeXBlKHZvaWQpDQorP1F1ZXVlVHlwZUA/JENMb2NrQmFzZUAkMDgkMDEkMDAkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUVVFVUVfVFlQRUBAWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENEYXRhQ2FjaGU8Y2xhc3MgQ0RhdGVUaW1lPjo6UmVhZChjbGFzcyBDRGF0ZVRpbWUgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1JlYWRAPyRDRGF0YUNhY2hlQFZDRGF0ZVRpbWVAQEBAUUVCQV9OQUVBVkNEYXRlVGltZUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDcml0U2VjOjpSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRMb2NrQENDcml0U2VjQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmFrZUxvY2s6OlJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZExvY2tAQ0Zha2VMb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpSZWFkTG9jayh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1JlYWRMb2NrQENMS1JIYXNoVGFibGVAQFFFQkFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OlJlYWRMb2NrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UmVhZExvY2tAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRMb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRMb2NrQENSZWFkZXJXcml0ZXJMb2NrM0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OlJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSdGxSZXNvdXJjZTo6UmVhZExvY2sodm9pZCkgX19wdHI2NA0KKz9SZWFkTG9ja0BDUnRsUmVzb3VyY2VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTaGFyZUxvY2s6OlJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZExvY2tAQ1NoYXJlTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OlJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZExvY2tAQ1NtYWxsU3BpbkxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTcGluTG9jazo6UmVhZExvY2sodm9pZCkgX19wdHI2NA0KKz9SZWFkTG9ja0BDU3BpbkxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENDcml0U2VjOjpSZWFkT3JXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9SZWFkT3JXcml0ZUxvY2tAQ0NyaXRTZWNAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRmFrZUxvY2s6OlJlYWRPcldyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRPcldyaXRlTG9ja0BDRmFrZUxvY2tAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OlJlYWRPcldyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRPcldyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9jazNAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU3BpbkxvY2s6OlJlYWRPcldyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRPcldyaXRlTG9ja0BDU3BpbkxvY2tAQFFFQUFfTlhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ3JpdFNlYzo6UmVhZE9yV3JpdGVVbmxvY2soYm9vbCkgX19wdHI2NA0KKz9SZWFkT3JXcml0ZVVubG9ja0BDQ3JpdFNlY0BAUUVBQVhfTkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmFrZUxvY2s6OlJlYWRPcldyaXRlVW5sb2NrKGJvb2wpIF9fcHRyNjQNCis/UmVhZE9yV3JpdGVVbmxvY2tAQ0Zha2VMb2NrQEBRRUFBWF9OQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6UmVhZE9yV3JpdGVVbmxvY2soYm9vbCkgX19wdHI2NA0KKz9SZWFkT3JXcml0ZVVubG9ja0BDUmVhZGVyV3JpdGVyTG9jazNAQFFFQUFYX05AWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NwaW5Mb2NrOjpSZWFkT3JXcml0ZVVubG9jayhib29sKSBfX3B0cjY0DQorP1JlYWRPcldyaXRlVW5sb2NrQENTcGluTG9ja0BAUUVBQVhfTkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ3JpdFNlYzo6UmVhZFVubG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRVbmxvY2tAQ0NyaXRTZWNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGYWtlTG9jazo6UmVhZFVubG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRVbmxvY2tAQ0Zha2VMb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpSZWFkVW5sb2NrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UmVhZFVubG9ja0BDTEtSSGFzaFRhYmxlQEBRRUJBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpSZWFkVW5sb2NrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UmVhZFVubG9ja0BDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OlJlYWRVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9SZWFkVW5sb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpSZWFkVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZFVubG9ja0BDUmVhZGVyV3JpdGVyTG9jazNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpSZWFkVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZFVubG9ja0BDUmVhZGVyV3JpdGVyTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1J0bFJlc291cmNlOjpSZWFkVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZFVubG9ja0BDUnRsUmVzb3VyY2VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTaGFyZUxvY2s6OlJlYWRVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9SZWFkVW5sb2NrQENTaGFyZUxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpSZWFkVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZFVubG9ja0BDU21hbGxTcGluTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NwaW5Mb2NrOjpSZWFkVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZFVubG9ja0BDU3BpbkxvY2tAQFFFQUFYWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIEJVRkZFUjo6UmVhbGxvY1N0b3JhZ2UodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1JlYWxsb2NTdG9yYWdlQEJVRkZFUkBAQUVBQUhJQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE1VTFRJU1o6OlJlY2FsY0xlbih2b2lkKSBfX3B0cjY0DQorP1JlY2FsY0xlbkBNVUxUSVNaQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6UmVjb3JkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UmVjb3JkQENMS1JIYXNoVGFibGVfSXRlcmF0b3JAQFFFQkFQRUJYWFoNCis7IHB1YmxpYzogdm9pZCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjpSZWNvcmQodm9pZCljb25zdCAgX19wdHI2NA0KKz9SZWNvcmRAQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAUUVCQVBFQlhYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JFQ1VSU0lPTiAgX19jZGVjbCBDTG9ja0Jhc2U8MSwxLDMsMSwzLDI+OjpSZWN1cnNpb24odm9pZCkNCis/UmVjdXJzaW9uQD8kQ0xvY2tCYXNlQCQwMCQwMCQwMiQwMCQwMiQwMUBAU0E/QVc0TE9DS19SRUNVUlNJT05AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUkVDVVJTSU9OICBfX2NkZWNsIENMb2NrQmFzZTwyLDEsMSwxLDMsMj46OlJlY3Vyc2lvbih2b2lkKQ0KKz9SZWN1cnNpb25APyRDTG9ja0Jhc2VAJDAxJDAwJDAwJDAwJDAyJDAxQEBTQT9BVzRMT0NLX1JFQ1VSU0lPTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SRUNVUlNJT04gIF9fY2RlY2wgQ0xvY2tCYXNlPDMsMSwxLDEsMSwxPjo6UmVjdXJzaW9uKHZvaWQpDQorP1JlY3Vyc2lvbkA/JENMb2NrQmFzZUAkMDIkMDAkMDAkMDAkMDAkMDBAQFNBP0FXNExPQ0tfUkVDVVJTSU9OQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JFQ1VSU0lPTiAgX19jZGVjbCBDTG9ja0Jhc2U8NCwxLDEsMiwzLDM+OjpSZWN1cnNpb24odm9pZCkNCis/UmVjdXJzaW9uQD8kQ0xvY2tCYXNlQCQwMyQwMCQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19SRUNVUlNJT05AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUkVDVVJTSU9OICBfX2NkZWNsIENMb2NrQmFzZTw1LDIsMSwyLDMsMz46OlJlY3Vyc2lvbih2b2lkKQ0KKz9SZWN1cnNpb25APyRDTG9ja0Jhc2VAJDA0JDAxJDAwJDAxJDAyJDAyQEBTQT9BVzRMT0NLX1JFQ1VSU0lPTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SRUNVUlNJT04gIF9fY2RlY2wgQ0xvY2tCYXNlPDYsMiwxLDIsMywzPjo6UmVjdXJzaW9uKHZvaWQpDQorP1JlY3Vyc2lvbkA/JENMb2NrQmFzZUAkMDUkMDEkMDAkMDEkMDIkMDJAQFNBP0FXNExPQ0tfUkVDVVJTSU9OQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JFQ1VSU0lPTiAgX19jZGVjbCBDTG9ja0Jhc2U8NywyLDIsMSwzLDI+OjpSZWN1cnNpb24odm9pZCkNCis/UmVjdXJzaW9uQD8kQ0xvY2tCYXNlQCQwNiQwMSQwMSQwMCQwMiQwMUBAU0E/QVc0TE9DS19SRUNVUlNJT05AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUkVDVVJTSU9OICBfX2NkZWNsIENMb2NrQmFzZTw4LDIsMiwxLDMsMj46OlJlY3Vyc2lvbih2b2lkKQ0KKz9SZWN1cnNpb25APyRDTG9ja0Jhc2VAJDA3JDAxJDAxJDAwJDAyJDAxQEBTQT9BVzRMT0NLX1JFQ1VSU0lPTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SRUNVUlNJT04gIF9fY2RlY2wgQ0xvY2tCYXNlPDksMiwxLDEsMywyPjo6UmVjdXJzaW9uKHZvaWQpDQorP1JlY3Vyc2lvbkA/JENMb2NrQmFzZUAkMDgkMDEkMDAkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUkVDVVJTSU9OQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0V0d1RyYWNlcjo6UmVnaXN0ZXIoc3RydWN0IF9HVUlEIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlZ2lzdGVyQENFdHdUcmFjZXJAQFFFQUFLUEVCVV9HVUlEQEBQRUFHMUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU2hhcmVsb2NrOjpSZWxlYXNlRXhjbHVzaXZlTG9jayh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VFeGNsdXNpdmVMb2NrQENTaGFyZWxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTaGFyZWxvY2s6OlJlbGVhc2VTaGFyZUxvY2sodm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlU2hhcmVMb2NrQENTaGFyZWxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDRG91YmxlTGlzdDo6UmVtb3ZlRW50cnkoY2xhc3MgQ0xpc3RFbnRyeSAqIF9fcHRyNjQgY29uc3QpDQorP1JlbW92ZUVudHJ5QENEb3VibGVMaXN0QEBTQVhRRUFWQ0xpc3RFbnRyeUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMb2NrZWREb3VibGVMaXN0OjpSZW1vdmVFbnRyeShjbGFzcyBDTGlzdEVudHJ5ICogX19wdHI2NCBjb25zdCkgX19wdHI2NA0KKz9SZW1vdmVFbnRyeUBDTG9ja2VkRG91YmxlTGlzdEBAUUVBQVhRRUFWQ0xpc3RFbnRyeUBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fcHRyNjQgX19jZGVjbCBDRG91YmxlTGlzdDo6UmVtb3ZlSGVhZCh2b2lkKSBfX3B0cjY0DQorP1JlbW92ZUhlYWRAQ0RvdWJsZUxpc3RAQFFFQUFRRUFWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fcHRyNjQgX19jZGVjbCBDTG9ja2VkRG91YmxlTGlzdDo6UmVtb3ZlSGVhZCh2b2lkKSBfX3B0cjY0DQorP1JlbW92ZUhlYWRAQ0xvY2tlZERvdWJsZUxpc3RAQFFFQUFRRUFWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpSZW1vdmVJdGVtKGNsYXNzIEFMTE9DX0NBQ0hFX0hBTkRMRVIgKiBfX3B0cjY0KQ0KKz9SZW1vdmVJdGVtQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFNBWFBFQVYxQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMaXN0RW50cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ0RvdWJsZUxpc3Q6OlJlbW92ZVRhaWwodm9pZCkgX19wdHI2NA0KKz9SZW1vdmVUYWlsQENEb3VibGVMaXN0QEBRRUFBUUVBVkNMaXN0RW50cnlAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENMaXN0RW50cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ0xvY2tlZERvdWJsZUxpc3Q6OlJlbW92ZVRhaWwodm9pZCkgX19wdHI2NA0KKz9SZW1vdmVUYWlsQENMb2NrZWREb3VibGVMaXN0QEBRRUFBUUVBVkNMaXN0RW50cnlAQFhaDQorUmVtb3ZlV29ya0l0ZW0NCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE1MU1pBVTo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBNTFNaQVVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE1VTFRJU1o6OlJlc2V0KHZvaWQpIF9fcHRyNjQNCis/UmVzZXRATVVMVElTWkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU1RSOjpSZXNldCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QFNUUkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU1RSQTo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBTVFJBQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTVFJBVTo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBTVFJBVUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU1RSVTo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBTVFJVQEBRRUFBWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpSZXNldExvb2thc2lkZUNsZWFudXBJbnRlcnZhbCh2b2lkKQ0KKz9SZXNldExvb2thc2lkZUNsZWFudXBJbnRlcnZhbEBBTExPQ19DQUNIRV9IQU5ETEVSQEBTQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBCVUZGRVI6OlJlc2l6ZSh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/UmVzaXplQEJVRkZFUkBAUUVBQUhJQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQlVGRkVSOjpSZXNpemUodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9SZXNpemVAQlVGRkVSQEBRRUFBSElJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OlJlc2l6ZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1Jlc2l6ZUBTVFJBQEBRRUFBSktAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSVTo6UmVzaXplKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVzaXplQFNUUlVAQFFFQUFKS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUkFVOjpSZXNpemVXKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVzaXplV0BTVFJBVUBAUUVBQUhLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSOjpTYWZlQ29weShjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TYWZlQ29weUBTVFJAQFFFQUFIUEVCREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUkFVOjpTYWZlQ29weShjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TYWZlQ29weUBTVFJBVUBAUUVBQUhQRUJEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSQVU6OlNhZmVDb3B5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TYWZlQ29weUBTVFJBVUBAUUVBQUhQRUJHQFoNCitTY2hlZHVsZUFkanVzdFRpbWUNCitTY2hlZHVsZVdvcmtJdGVtDQorU2NoZWR1bGVySW5pdGlhbGl6ZQ0KK1NjaGVkdWxlclRlcm1pbmF0ZQ0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENERlRDYWNoZTo6U2Vjb25kcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1NlY29uZHNAQ0RGVENhY2hlQEBRRUJBR1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpTZXRCdWNrZXRMb2NrU3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1NldEJ1Y2tldExvY2tTcGluQ291bnRAQ0xLUkhhc2hUYWJsZUBAUUVBQVhHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OlNldEJ1Y2tldExvY2tTcGluQ291bnQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0QnVja2V0TG9ja1NwaW5Db3VudEBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUFBWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENDcml0U2VjOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ0NyaXRTZWNAQFNBWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENGYWtlTG9jazo6U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKGRvdWJsZSkNCis/U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENGYWtlTG9ja0BAU0FYTkBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1JlYWRlcldyaXRlckxvY2syQEBTQVhOQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OlNldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcihkb3VibGUpDQorP1NldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUmVhZGVyV3JpdGVyTG9jazNAQFNBWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1JlYWRlcldyaXRlckxvY2tAQFNBWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENSdGxSZXNvdXJjZTo6U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKGRvdWJsZSkNCis/U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENSdGxSZXNvdXJjZUBAU0FYTkBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1NoYXJlTG9jazo6U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKGRvdWJsZSkNCis/U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENTaGFyZUxvY2tAQFNBWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1NtYWxsU3BpbkxvY2tAQFNBWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENTcGluTG9jazo6U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKGRvdWJsZSkNCis/U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENTcGluTG9ja0BAU0FYTkBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ0NyaXRTZWM6OlNldERlZmF1bHRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldERlZmF1bHRTcGluQ291bnRAQ0NyaXRTZWNAQFNBWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENGYWtlTG9jazo6U2V0RGVmYXVsdFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0RGVmYXVsdFNwaW5Db3VudEBDRmFrZUxvY2tAQFNBWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6U2V0RGVmYXVsdFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazJAQFNBWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6U2V0RGVmYXVsdFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazNAQFNBWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrQEBTQVhHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDUnRsUmVzb3VyY2U6OlNldERlZmF1bHRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldERlZmF1bHRTcGluQ291bnRAQ1J0bFJlc291cmNlQEBTQVhHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDU2hhcmVMb2NrOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENTaGFyZUxvY2tAQFNBWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENTbWFsbFNwaW5Mb2NrQEBTQVhHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDU3BpbkxvY2s6OlNldERlZmF1bHRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldERlZmF1bHRTcGluQ291bnRAQ1NwaW5Mb2NrQEBTQVhHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSOjpTZXRMZW4odW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRMZW5AU1RSQEBRRUFBSEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJBOjpTZXRMZW4odW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRMZW5AU1RSQUBAUUVBQUhLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSQVU6OlNldExlbih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldExlbkBTVFJBVUBAUUVBQUhLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSVTo6U2V0TGVuKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0TGVuQFNUUlVAQFFFQUFIS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBBU0NMT0dfREFURVRJTUVfQ0FDSEU6OlNldExvY2FsVGltZShzdHJ1Y3QgX1NZU1RFTVRJTUUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldExvY2FsVGltZUBBU0NMT0dfREFURVRJTUVfQ0FDSEVAQFFFQUFYUEVBVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQUxMT0NfQ0FDSEVfSEFORExFUjo6U2V0TG9va2FzaWRlQ2xlYW51cEludGVydmFsKHZvaWQpDQorP1NldExvb2thc2lkZUNsZWFudXBJbnRlcnZhbEBBTExPQ19DQUNIRV9IQU5ETEVSQEBTQUhYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0NyaXRTZWM6OlNldFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZXRTcGluQ291bnRAQ0NyaXRTZWNAQFFFQUFfTkdAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENDcml0U2VjOjpTZXRTcGluQ291bnQoc3RydWN0IF9SVExfQ1JJVElDQUxfU0VDVElPTiAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/U2V0U3BpbkNvdW50QENDcml0U2VjQEBTQUtQRUFVX1JUTF9DUklUSUNBTF9TRUNUSU9OQEBLQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENGYWtlTG9jazo6U2V0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1NldFNwaW5Db3VudEBDRmFrZUxvY2tAQFFFQUFfTkdAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrMkBAUUVBQV9OR0BaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OlNldFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZXRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2szQEBRRUFBX05HQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrQEBRRUFBX05HQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSdGxSZXNvdXJjZTo6U2V0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1NldFNwaW5Db3VudEBDUnRsUmVzb3VyY2VAQFFFQUFfTkdAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NoYXJlTG9jazo6U2V0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1NldFNwaW5Db3VudEBDU2hhcmVMb2NrQEBRRUFBX05HQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0U3BpbkNvdW50QENTbWFsbFNwaW5Mb2NrQEBRRUFBX05HQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTcGluTG9jazo6U2V0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1NldFNwaW5Db3VudEBDU3BpbkxvY2tAQFFFQUFfTkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgRVhUTE9HX0RBVEVUSU1FX0NBQ0hFOjpTZXRTeXN0ZW1UaW1lKHN0cnVjdCBfU1lTVEVNVElNRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0U3lzdGVtVGltZUBFWFRMT0dfREFURVRJTUVfQ0FDSEVAQFFFQUFYUEVBVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6U2V0VGFibGVMb2NrU3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1NldFRhYmxlTG9ja1NwaW5Db3VudEBDTEtSSGFzaFRhYmxlQEBRRUFBWEdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6U2V0VGFibGVMb2NrU3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1NldFRhYmxlTG9ja1NwaW5Db3VudEBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUFBWEdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWU6OlNldFRpbWUoc3RydWN0IF9GSUxFVElNRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VGltZUBDRGF0ZVRpbWVAQFFFQUFIQUVCVV9GSUxFVElNRUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RhdGVUaW1lOjpTZXRUaW1lKHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VGltZUBDRGF0ZVRpbWVAQFFFQUFIQUVCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQlVGRkVSX0NIQUlOX0lURU06OlNldFVzZWQodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRVc2VkQEJVRkZFUl9DSEFJTl9JVEVNQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQlVGRkVSOjpTZXRWYWxpZChpbnQpIF9fcHRyNjQNCis/U2V0VmFsaWRAQlVGRkVSQEBRRUFBWEhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1NpemVAQ0xLUkhhc2hUYWJsZUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1NpemVAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQUtYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgY2hhciBfX2NkZWNsIENTaGFyZWxvY2s6OlNsZWVwV2FpdGluZ0ZvckxvY2soaW50KSBfX3B0cjY0DQorP1NsZWVwV2FpdGluZ0ZvckxvY2tAQ1NoYXJlbG9ja0BAQUVBQUVIQFoNCitTdHJpbmdUaW1lVG9GaWxlVGltZQ0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBFVkVOVF9MT0c6OlN1Y2Nlc3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9TdWNjZXNzQEVWRU5UX0xPR0BAUUVCQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU1RSQTo6U3luY1dpdGhCdWZmZXIodm9pZCkgX19wdHI2NA0KKz9TeW5jV2l0aEJ1ZmZlckBTVFJBQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTVFJVOjpTeW5jV2l0aEJ1ZmZlcih2b2lkKSBfX3B0cjY0DQorP1N5bmNXaXRoQnVmZmVyQFNUUlVAQFFFQUFYWFoNCitTeXN0ZW1UaW1lVG9HTVQNCitTeXN0ZW1UaW1lVG9HTVRFeA0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRXR3VHJhY2VyOjpUcmFjZVBlclVybEVuYWJsZWQodm9pZCkgX19wdHI2NA0KKz9UcmFjZVBlclVybEVuYWJsZWRAQ0V0d1RyYWNlckBAUUVBQUhYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpUcnlDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkgX19wdHI2NA0KKz9UcnlDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ1JlYWRlcldyaXRlckxvY2szQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0NyaXRTZWM6OlRyeVJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/VHJ5UmVhZExvY2tAQ0NyaXRTZWNAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRmFrZUxvY2s6OlRyeVJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/VHJ5UmVhZExvY2tAQ0Zha2VMb2NrQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpUcnlSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVJlYWRMb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAUUVBQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6VHJ5UmVhZExvY2sodm9pZCkgX19wdHI2NA0KKz9UcnlSZWFkTG9ja0BDUmVhZGVyV3JpdGVyTG9jazNAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6VHJ5UmVhZExvY2sodm9pZCkgX19wdHI2NA0KKz9UcnlSZWFkTG9ja0BDUmVhZGVyV3JpdGVyTG9ja0BAUUVBQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSdGxSZXNvdXJjZTo6VHJ5UmVhZExvY2sodm9pZCkgX19wdHI2NA0KKz9UcnlSZWFkTG9ja0BDUnRsUmVzb3VyY2VAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU2hhcmVMb2NrOjpUcnlSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVJlYWRMb2NrQENTaGFyZUxvY2tAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU21hbGxTcGluTG9jazo6VHJ5UmVhZExvY2sodm9pZCkgX19wdHI2NA0KKz9UcnlSZWFkTG9ja0BDU21hbGxTcGluTG9ja0BAUUVBQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTcGluTG9jazo6VHJ5UmVhZExvY2sodm9pZCkgX19wdHI2NA0KKz9UcnlSZWFkTG9ja0BDU3BpbkxvY2tAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDQ3JpdFNlYzo6VHJ5V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/VHJ5V3JpdGVMb2NrQENDcml0U2VjQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0Zha2VMb2NrOjpUcnlXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9UcnlXcml0ZUxvY2tAQ0Zha2VMb2NrQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpUcnlXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9UcnlXcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2syQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpUcnlXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9UcnlXcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OlRyeVdyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVdyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9ja0BAUUVBQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSdGxSZXNvdXJjZTo6VHJ5V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/VHJ5V3JpdGVMb2NrQENSdGxSZXNvdXJjZUBAUUVBQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTaGFyZUxvY2s6OlRyeVdyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVdyaXRlTG9ja0BDU2hhcmVMb2NrQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OlRyeVdyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVdyaXRlTG9ja0BDU21hbGxTcGluTG9ja0BAUUVBQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTcGluTG9jazo6VHJ5V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/VHJ5V3JpdGVMb2NrQENTcGluTG9ja0BAUUVBQV9OWFoNCis7IGxvbmcgX19jZGVjbCBVbENsZWFuQW5kQ29weVVybCh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9VbENsZWFuQW5kQ29weVVybEBAWUFKUEVBRUtQRUFLUEVBR1BFQVBFQUdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0V0d1RyYWNlcjo6VW5SZWdpc3Rlcih2b2lkKSBfX3B0cjY0DQorP1VuUmVnaXN0ZXJAQ0V0d1RyYWNlckBAUUVBQUtYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFI6OlVuZXNjYXBlKHZvaWQpIF9fcHRyNjQNCis/VW5lc2NhcGVAU1RSQEBRRUFBSFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpVbmVzY2FwZSh2b2lkKSBfX3B0cjY0DQorP1VuZXNjYXBlQFNUUkFAQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUlU6OlVuZXNjYXBlKHZvaWQpIF9fcHRyNjQNCis/VW5lc2NhcGVAU1RSVUBAUUVBQUpYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU1RSOjpVbmhhc2godm9pZCkgX19wdHI2NA0KKz9Vbmhhc2hAU1RSQEBRRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQUxMT0NfQ0FDSEVfSEFORExFUjo6VW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/VW5sb2NrQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQEFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMb2NrZWREb3VibGVMaXN0OjpVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9VbmxvY2tAQ0xvY2tlZERvdWJsZUxpc3RAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMb2NrZWRTaW5nbGVMaXN0OjpVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9VbmxvY2tAQ0xvY2tlZFNpbmdsZUxpc3RAQFFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBIQVNIX1RBQkxFX0JVQ0tFVDo6VW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/VW5sb2NrQEhBU0hfVEFCTEVfQlVDS0VUQEBBRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBUU19SRVNPVVJDRTo6VW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/VW5sb2NrQFRTX1JFU09VUkNFQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBDU2hhcmVsb2NrOjpVcGRhdGVNYXhTcGlucyhpbnQpIF9fcHRyNjQNCis/VXBkYXRlTWF4U3BpbnNAQ1NoYXJlbG9ja0BAUUVBQUVIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIENTaGFyZWxvY2s6OlVwZGF0ZU1heFVzZXJzKGludCkgX19wdHI2NA0KKz9VcGRhdGVNYXhVc2Vyc0BDU2hhcmVsb2NrQEBRRUFBRUhAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6VmFsaWRTaWduYXR1cmUodm9pZCljb25zdCAgX19wdHI2NA0KKz9WYWxpZFNpZ25hdHVyZUBDTEtSSGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6VmFsaWRTaWduYXR1cmUodm9pZCljb25zdCAgX19wdHI2NA0KKz9WYWxpZFNpZ25hdHVyZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIEJVRkZFUjo6VmVyaWZ5U3RhdGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9WZXJpZnlTdGF0ZUBCVUZGRVJAQEFFQkFYWFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBDU2hhcmVsb2NrOjpXYWl0Rm9yRXhjbHVzaXZlTG9jayhpbnQpIF9fcHRyNjQNCis/V2FpdEZvckV4Y2x1c2l2ZUxvY2tAQ1NoYXJlbG9ja0BAQUVBQUVIQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBDU2hhcmVsb2NrOjpXYWl0Rm9yU2hhcmVMb2NrKGludCkgX19wdHI2NA0KKz9XYWl0Rm9yU2hhcmVMb2NrQENTaGFyZWxvY2tAQEFFQUFFSEBaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfV0FJVF9UWVBFICBfX2NkZWNsIENMb2NrQmFzZTwxLDEsMywxLDMsMj46OldhaXRUeXBlKHZvaWQpDQorP1dhaXRUeXBlQD8kQ0xvY2tCYXNlQCQwMCQwMCQwMiQwMCQwMiQwMUBAU0E/QVc0TE9DS19XQUlUX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfV0FJVF9UWVBFICBfX2NkZWNsIENMb2NrQmFzZTwyLDEsMSwxLDMsMj46OldhaXRUeXBlKHZvaWQpDQorP1dhaXRUeXBlQD8kQ0xvY2tCYXNlQCQwMSQwMCQwMCQwMCQwMiQwMUBAU0E/QVc0TE9DS19XQUlUX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfV0FJVF9UWVBFICBfX2NkZWNsIENMb2NrQmFzZTwzLDEsMSwxLDEsMT46OldhaXRUeXBlKHZvaWQpDQorP1dhaXRUeXBlQD8kQ0xvY2tCYXNlQCQwMiQwMCQwMCQwMCQwMCQwMEBAU0E/QVc0TE9DS19XQUlUX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfV0FJVF9UWVBFICBfX2NkZWNsIENMb2NrQmFzZTw0LDEsMSwyLDMsMz46OldhaXRUeXBlKHZvaWQpDQorP1dhaXRUeXBlQD8kQ0xvY2tCYXNlQCQwMyQwMCQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19XQUlUX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfV0FJVF9UWVBFICBfX2NkZWNsIENMb2NrQmFzZTw1LDIsMSwyLDMsMz46OldhaXRUeXBlKHZvaWQpDQorP1dhaXRUeXBlQD8kQ0xvY2tCYXNlQCQwNCQwMSQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19XQUlUX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfV0FJVF9UWVBFICBfX2NkZWNsIENMb2NrQmFzZTw2LDIsMSwyLDMsMz46OldhaXRUeXBlKHZvaWQpDQorP1dhaXRUeXBlQD8kQ0xvY2tCYXNlQCQwNSQwMSQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19XQUlUX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfV0FJVF9UWVBFICBfX2NkZWNsIENMb2NrQmFzZTw3LDIsMiwxLDMsMj46OldhaXRUeXBlKHZvaWQpDQorP1dhaXRUeXBlQD8kQ0xvY2tCYXNlQCQwNiQwMSQwMSQwMCQwMiQwMUBAU0E/QVc0TE9DS19XQUlUX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfV0FJVF9UWVBFICBfX2NkZWNsIENMb2NrQmFzZTw4LDIsMiwxLDMsMj46OldhaXRUeXBlKHZvaWQpDQorP1dhaXRUeXBlQD8kQ0xvY2tCYXNlQCQwNyQwMSQwMSQwMCQwMiQwMUBAU0E/QVc0TE9DS19XQUlUX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfV0FJVF9UWVBFICBfX2NkZWNsIENMb2NrQmFzZTw5LDIsMSwxLDMsMj46OldhaXRUeXBlKHZvaWQpDQorP1dhaXRUeXBlQD8kQ0xvY2tCYXNlQCQwOCQwMSQwMCQwMCQwMiQwMUBAU0E/QVc0TE9DS19XQUlUX1RZUEVAQFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1NoYXJlbG9jazo6V2FrZUFsbFNsZWVwZXJzKHZvaWQpIF9fcHRyNjQNCis/V2FrZUFsbFNsZWVwZXJzQENTaGFyZWxvY2tAQEFFQUFYWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENEYXRhQ2FjaGU8c3RydWN0IERBVEVUSU1FX0ZPUk1BVF9FTlRSWT46OldyaXRlKHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1dyaXRlQD8kQ0RhdGFDYWNoZUBVREFURVRJTUVfRk9STUFUX0VOVFJZQEBAQFFFQUFfTkFFQlVEQVRFVElNRV9GT1JNQVRfRU5UUllAQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRGF0YUNhY2hlPGNsYXNzIENEYXRlVGltZT46OldyaXRlKGNsYXNzIENEYXRlVGltZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/V3JpdGVAPyRDRGF0YUNhY2hlQFZDRGF0ZVRpbWVAQEBAUUVBQV9OQUVCVkNEYXRlVGltZUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDcml0U2VjOjpXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9Xcml0ZUxvY2tAQ0NyaXRTZWNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGYWtlTG9jazo6V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVMb2NrQENGYWtlTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVMb2NrQENMS1JIYXNoVGFibGVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OldyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlTG9ja0BDTEtSTGluZWFySGFzaFRhYmxlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OldyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVMb2NrQENSZWFkZXJXcml0ZXJMb2NrM0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OldyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1J0bFJlc291cmNlOjpXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9Xcml0ZUxvY2tAQ1J0bFJlc291cmNlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU2hhcmVMb2NrOjpXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9Xcml0ZUxvY2tAQ1NoYXJlTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OldyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlTG9ja0BDU21hbGxTcGluTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NwaW5Mb2NrOjpXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9Xcml0ZUxvY2tAQ1NwaW5Mb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ3JpdFNlYzo6V3JpdGVVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9Xcml0ZVVubG9ja0BDQ3JpdFNlY0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Zha2VMb2NrOjpXcml0ZVVubG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlVW5sb2NrQENGYWtlTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6V3JpdGVVbmxvY2sodm9pZCljb25zdCAgX19wdHI2NA0KKz9Xcml0ZVVubG9ja0BDTEtSSGFzaFRhYmxlQEBRRUJBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpXcml0ZVVubG9jayh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1dyaXRlVW5sb2NrQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6V3JpdGVVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9Xcml0ZVVubG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6V3JpdGVVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9Xcml0ZVVubG9ja0BDUmVhZGVyV3JpdGVyTG9jazNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpXcml0ZVVubG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlVW5sb2NrQENSZWFkZXJXcml0ZXJMb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUnRsUmVzb3VyY2U6OldyaXRlVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVVbmxvY2tAQ1J0bFJlc291cmNlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU2hhcmVMb2NrOjpXcml0ZVVubG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlVW5sb2NrQENTaGFyZUxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpXcml0ZVVubG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlVW5sb2NrQENTbWFsbFNwaW5Mb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3BpbkxvY2s6OldyaXRlVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVVbmxvY2tAQ1NwaW5Mb2NrQEBRRUFBWFhaDQorWmFwUmVnaXN0cnlLZXkNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3I6Ol9BZGRSZWYoaW50KWNvbnN0ICBfX3B0cjY0DQorP19BZGRSZWZAQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBASUVCQVhIQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQWRkUmVmUmVjb3JkKHZvaWQgY29uc3QgKiBfX3B0cjY0LGludCljb25zdCAgX19wdHI2NA0KKz9fQWRkUmVmUmVjb3JkQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQkFYUEVCWEhAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENOb2RlQ2x1bXAgKiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0FsbG9jYXRlTm9kZUNsdW1wKHZvaWQpDQorP19BbGxvY2F0ZU5vZGVDbHVtcEBDTEtSTGluZWFySGFzaFRhYmxlQEBDQVFFQVZDTm9kZUNsdW1wQEBYWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ1NlZ21lbnQgKiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0FsbG9jYXRlU2VnbWVudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP19BbGxvY2F0ZVNlZ21lbnRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVCQVFFQVZDU2VnbWVudEBAWFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDRGlyRW50cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0FsbG9jYXRlU2VnbWVudERpcmVjdG9yeSh1bnNpZ25lZCBfX2ludDY0KQ0KKz9fQWxsb2NhdGVTZWdtZW50RGlyZWN0b3J5QENMS1JMaW5lYXJIYXNoVGFibGVAQENBUUVBVkNEaXJFbnRyeUBAX0tAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGUgKiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6X0FsbG9jYXRlU3ViVGFibGUoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCBjb25zdCAgKF9fY2RlY2wqKSh2b2lkIGNvbnN0ICogX19wdHI2NCksdW5zaWduZWQgbG9uZyAoX19jZGVjbCopKHVuc2lnbmVkIF9faW50NjQpLGJvb2wgKF9fY2RlY2wqKSh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQpLHZvaWQgKF9fY2RlY2wqKSh2b2lkIGNvbnN0ICogX19wdHI2NCxpbnQpLGRvdWJsZSx1bnNpZ25lZCBsb25nLGNsYXNzIENMS1JIYXNoVGFibGUgKiBfX3B0cjY0LGJvb2wpDQorP19BbGxvY2F0ZVN1YlRhYmxlQENMS1JIYXNoVGFibGVAQENBUUVBVkNMS1JMaW5lYXJIYXNoVGFibGVAQFBFQkRQNkE/Ql9LUEVCWEBaUDZBS19LQFpQNkFfTjMzQFpQNkFYMUhAWk5LUEVBVjFAX05AWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGUgKiBfX3B0cjY0ICogX19wdHI2NCBfX2NkZWNsIENMS1JIYXNoVGFibGU6Ol9BbGxvY2F0ZVN1YlRhYmxlQXJyYXkodW5zaWduZWQgX19pbnQ2NCkNCis/X0FsbG9jYXRlU3ViVGFibGVBcnJheUBDTEtSSGFzaFRhYmxlQEBDQVFFQVBFQVZDTEtSTGluZWFySGFzaFRhYmxlQEBfS0BaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0FwcGx5KGVudW0gTEtfQUNUSU9OICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSx2b2lkICogX19wdHI2NCxlbnVtIExLX0xPQ0tUWVBFLGVudW0gTEtfUFJFRElDQVRFICYgX19wdHI2NCkgX19wdHI2NA0KKz9fQXBwbHlAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQUtQNkE/QVc0TEtfQUNUSU9OQEBQRUJYUEVBWEBaMVc0TEtfTE9DS1RZUEVAQEFFQVc0TEtfUFJFRElDQVRFQEBAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9BcHBseUlmKGVudW0gTEtfUFJFRElDQVRFICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSxlbnVtIExLX0FDVElPTiAgKF9fY2RlY2wqKSh2b2lkIGNvbnN0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCksdm9pZCAqIF9fcHRyNjQsZW51bSBMS19MT0NLVFlQRSxlbnVtIExLX1BSRURJQ0FURSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/X0FwcGx5SWZAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQUtQNkE/QVc0TEtfUFJFRElDQVRFQEBQRUJYUEVBWEBaUDZBP0FXNExLX0FDVElPTkBAMDFAWjFXNExLX0xPQ0tUWVBFQEBBRUFXNDJAQFoNCis7IHByaXZhdGU6IGNsYXNzIENCdWNrZXQgKiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0J1Y2tldCh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP19CdWNrZXRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVCQVBFQVZDQnVja2V0QEBLQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQnVja2V0QWRkcmVzcyh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP19CdWNrZXRBZGRyZXNzQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQkFLS0BaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6X0NhbGNLZXlIYXNoKHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/X0NhbGNLZXlIYXNoQENMS1JIYXNoVGFibGVAQEFFQkFLX0tAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9DYWxjS2V5SGFzaCh1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP19DYWxjS2V5SGFzaEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBS19LQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQ2xlYXIoYm9vbCkgX19wdHI2NA0KKz9fQ2xlYXJAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQVhfTkBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0Nsb3NlSXRlcmF0b3IoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q0l0ZXJhdG9yICogX19wdHI2NCkgX19wdHI2NA0KKz9fQ2xvc2VJdGVyYXRvckBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBP0FXNExLX1JFVENPREVAQFBFQVZDSXRlcmF0b3JAMUBAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6X0NtcEV4Y2gobG9uZyxsb25nKSBfX3B0cjY0DQorP19DbXBFeGNoQENSZWFkZXJXcml0ZXJMb2NrMkBAQUVBQV9OSkpAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6X0NtcEV4Y2gobG9uZyxsb25nKSBfX3B0cjY0DQorP19DbXBFeGNoQENSZWFkZXJXcml0ZXJMb2NrM0BAQUVBQV9OSkpAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpfQ21wRXhjaChsb25nLGxvbmcpIF9fcHRyNjQNCis/X0NtcEV4Y2hAQ1JlYWRlcldyaXRlckxvY2tAQEFFQUFfTkpKQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQ29udHJhY3Qodm9pZCkgX19wdHI2NA0KKz9fQ29udHJhY3RAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQT9BVzRMS19SRVRDT0RFQEBYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGxvbmcgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9DdXJyZW50VGhyZWFkSWQodm9pZCkNCis/X0N1cnJlbnRUaHJlYWRJZEBDUmVhZGVyV3JpdGVyTG9jazNAQENBSlhaDQorOyBwcml2YXRlOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpfQ3VycmVudFRocmVhZElkKHZvaWQpDQorP19DdXJyZW50VGhyZWFkSWRAQ1NtYWxsU3BpbkxvY2tAQENBSlhaDQorOyBwcml2YXRlOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENTcGluTG9jazo6X0N1cnJlbnRUaHJlYWRJZCh2b2lkKQ0KKz9fQ3VycmVudFRocmVhZElkQENTcGluTG9ja0BAQ0FKWFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRGVsZXRlSWYoZW51bSBMS19QUkVESUNBVEUgIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpLHZvaWQgKiBfX3B0cjY0LGVudW0gTEtfUFJFRElDQVRFICYgX19wdHI2NCkgX19wdHI2NA0KKz9fRGVsZXRlSWZAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQUtQNkE/QVc0TEtfUFJFRElDQVRFQEBQRUJYUEVBWEBaMUFFQVc0MkBAWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9EZWxldGVLZXkodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP19EZWxldGVLZXlAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQT9BVzRMS19SRVRDT0RFQEBfS0tAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9EZWxldGVOb2RlKGNsYXNzIENCdWNrZXQgKiBfX3B0cjY0LGNsYXNzIENOb2RlQ2x1bXAgKiBfX3B0cjY0ICYgX19wdHI2NCxjbGFzcyBDTm9kZUNsdW1wICogX19wdHI2NCAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCkgX19wdHI2NA0KKz9fRGVsZXRlTm9kZUBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBX05QRUFWQ0J1Y2tldEBAQUVBUEVBVkNOb2RlQ2x1bXBAQDFBRUFIQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRGVsZXRlUmVjb3JkKHZvaWQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/X0RlbGV0ZVJlY29yZEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBP0FXNExLX1JFVENPREVAQFBFQlhLQFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRXF1YWxLZXlzKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9fRXF1YWxLZXlzQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQkFfTl9LMEBaDQorOyBwcml2YXRlOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0VyYXNlKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/X0VyYXNlQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQUFfTkFFQVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBLQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRXhwYW5kKHZvaWQpIF9fcHRyNjQNCis/X0V4cGFuZEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBP0FXNExLX1JFVENPREVAQFhaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBfX2ludDY0IGNvbnN0ICBfX2NkZWNsIENMS1JIYXNoVGFibGU6Ol9FeHRyYWN0S2V5KHZvaWQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP19FeHRyYWN0S2V5QENMS1JIYXNoVGFibGVAQEFFQkE/Ql9LUEVCWEBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBfX2ludDY0IGNvbnN0ICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9FeHRyYWN0S2V5KHZvaWQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP19FeHRyYWN0S2V5QENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQkE/Ql9LUEVCWEBaDQorOyBwcml2YXRlOiBjbGFzcyBDQnVja2V0ICogX19wdHI2NCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9GaW5kQnVja2V0KHVuc2lnbmVkIGxvbmcsYm9vbCljb25zdCAgX19wdHI2NA0KKz9fRmluZEJ1Y2tldEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBUEVBVkNCdWNrZXRAQEtfTkBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0ZpbmRLZXkodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBsb25nLHZvaWQgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCxjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9fRmluZEtleUBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBP0FXNExLX1JFVENPREVAQF9LS1BFQVBFQlhQRUFWQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRmluZFJlY29yZCh2b2lkIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP19GaW5kUmVjb3JkQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQkE/QVc0TEtfUkVUQ09ERUBAUEVCWEtAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRnJlZU5vZGVDbHVtcChjbGFzcyBDTm9kZUNsdW1wICogX19wdHI2NCkNCis/X0ZyZWVOb2RlQ2x1bXBAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQ0FfTlBFQVZDTm9kZUNsdW1wQEBAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9GcmVlU2VnbWVudChjbGFzcyBDU2VnbWVudCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/X0ZyZWVTZWdtZW50QENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQkFfTlBFQVZDU2VnbWVudEBAQFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRnJlZVNlZ21lbnREaXJlY3Rvcnkodm9pZCkgX19wdHI2NA0KKz9fRnJlZVNlZ21lbnREaXJlY3RvcnlAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQV9OWFoNCis7IHByaXZhdGU6IHN0YXRpYyBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6X0ZyZWVTdWJUYWJsZShjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlICogX19wdHI2NCkNCis/X0ZyZWVTdWJUYWJsZUBDTEtSSGFzaFRhYmxlQEBDQV9OUEVBVkNMS1JMaW5lYXJIYXNoVGFibGVAQEBaDQorOyBwcml2YXRlOiBzdGF0aWMgYm9vbCBfX2NkZWNsIENMS1JIYXNoVGFibGU6Ol9GcmVlU3ViVGFibGVBcnJheShjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlICogX19wdHI2NCAqIF9fcHRyNjQpDQorP19GcmVlU3ViVGFibGVBcnJheUBDTEtSSGFzaFRhYmxlQEBDQV9OUEVBUEVBVkNMS1JMaW5lYXJIYXNoVGFibGVAQEBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0gwKHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/X0gwQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQkFLS0BaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9IMCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP19IMEBDTEtSTGluZWFySGFzaFRhYmxlQEBDQUtLS0BaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0gxKHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/X0gxQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQkFLS0BaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9IMSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP19IMUBDTEtSTGluZWFySGFzaFRhYmxlQEBDQUtLS0BaDQorOyBwcm90ZWN0ZWQ6IGJvb2wgX19jZGVjbCBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yOjpfSW5jcmVtZW50KGJvb2wpIF9fcHRyNjQNCis/X0luY3JlbWVudEBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBJRUFBX05fTkBaDQorOyBwcm90ZWN0ZWQ6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjpfSW5jcmVtZW50KGJvb2wpIF9fcHRyNjQNCis/X0luY3JlbWVudEBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBJRUFBX05fTkBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0luaXRpYWxpemUodW5zaWduZWQgX19pbnQ2NCBjb25zdCAgKF9fY2RlY2wqKSh2b2lkIGNvbnN0ICogX19wdHI2NCksdW5zaWduZWQgbG9uZyAoX19jZGVjbCopKHVuc2lnbmVkIF9faW50NjQpLGJvb2wgKF9fY2RlY2wqKSh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQpLHZvaWQgKF9fY2RlY2wqKSh2b2lkIGNvbnN0ICogX19wdHI2NCxpbnQpLGNoYXIgY29uc3QgKiBfX3B0cjY0LGRvdWJsZSx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP19Jbml0aWFsaXplQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQUE/QVc0TEtfUkVUQ09ERUBAUDZBP0JfS1BFQlhAWlA2QUtfS0BaUDZBX04yMkBaUDZBWDBIQFpQRUJETktAWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9Jbml0aWFsaXplSXRlcmF0b3IoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q0l0ZXJhdG9yICogX19wdHI2NCkgX19wdHI2NA0KKz9fSW5pdGlhbGl6ZUl0ZXJhdG9yQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQUE/QVc0TEtfUkVUQ09ERUBAUEVBVkNJdGVyYXRvckAxQEBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0luc2VydFJlY29yZCh2b2lkIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGJvb2wsY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/X0luc2VydFJlY29yZEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBP0FXNExLX1JFVENPREVAQFBFQlhLX05QRUFWQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpfSW5zZXJ0VGhpc0ludG9HbG9iYWxMaXN0KHZvaWQpIF9fcHRyNjQNCis/X0luc2VydFRoaXNJbnRvR2xvYmFsTGlzdEBDTEtSSGFzaFRhYmxlQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0luc2VydFRoaXNJbnRvR2xvYmFsTGlzdCh2b2lkKSBfX3B0cjY0DQorP19JbnNlcnRUaGlzSW50b0dsb2JhbExpc3RAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENTcGluTG9jazo6X0lzTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X0lzTG9ja2VkQENTcGluTG9ja0BAQUVCQV9OWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9Jc05vZGVDb21wYWN0KGNsYXNzIENCdWNrZXQgKiBfX3B0cjY0IGNvbnN0KWNvbnN0ICBfX3B0cjY0DQorP19Jc05vZGVDb21wYWN0QENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQkFIUUVBVkNCdWNrZXRAQEBaDQorOyBwcml2YXRlOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6X0lzVmFsaWRJdGVyYXRvcihjbGFzcyBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9fSXNWYWxpZEl0ZXJhdG9yQENMS1JIYXNoVGFibGVAQEFFQkFfTkFFQlZDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9Jc1ZhbGlkSXRlcmF0b3IoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/X0lzVmFsaWRJdGVyYXRvckBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBX05BRUJWQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDU3BpbkxvY2s6Ol9Mb2NrKHZvaWQpIF9fcHRyNjQNCis/X0xvY2tAQ1NwaW5Mb2NrQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpfTG9ja1NwaW4oYm9vbCkgX19wdHI2NA0KKz9fTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2syQEBBRUFBWF9OQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9Mb2NrU3BpbihlbnVtIENSZWFkZXJXcml0ZXJMb2NrMzo6U1BJTl9UWVBFKSBfX3B0cjY0DQorP19Mb2NrU3BpbkBDUmVhZGVyV3JpdGVyTG9jazNAQEFFQUFYVzRTUElOX1RZUEVAMUBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpfTG9ja1NwaW4oYm9vbCkgX19wdHI2NA0KKz9fTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2tAQEFFQUFYX05AWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpfTG9ja1NwaW4odm9pZCkgX19wdHI2NA0KKz9fTG9ja1NwaW5AQ1NtYWxsU3BpbkxvY2tAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDU3BpbkxvY2s6Ol9Mb2NrU3Bpbih2b2lkKSBfX3B0cjY0DQorP19Mb2NrU3BpbkBDU3BpbkxvY2tAQEFFQUFYWFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfTWVyZ2VSZWNvcmRTZXRzKGNsYXNzIENCdWNrZXQgKiBfX3B0cjY0LGNsYXNzIENOb2RlQ2x1bXAgKiBfX3B0cjY0LGNsYXNzIENOb2RlQ2x1bXAgKiBfX3B0cjY0KSBfX3B0cjY0DQorP19NZXJnZVJlY29yZFNldHNAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQT9BVzRMS19SRVRDT0RFQEBQRUFWQ0J1Y2tldEBAUEVBVkNOb2RlQ2x1bXBAQDFAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGVudW0gTEtfUFJFRElDQVRFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9QcmVkVHJ1ZSh2b2lkIGNvbnN0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCkNCis/X1ByZWRUcnVlQENMS1JMaW5lYXJIYXNoVGFibGVAQENBP0FXNExLX1BSRURJQ0FURUBAUEVCWFBFQVhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6X1JlYWRMb2NrU3Bpbih2b2lkKSBfX3B0cjY0DQorP19SZWFkTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2syQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpfUmVhZExvY2tTcGluKGVudW0gQ1JlYWRlcldyaXRlckxvY2szOjpTUElOX1RZUEUpIF9fcHRyNjQNCis/X1JlYWRMb2NrU3BpbkBDUmVhZGVyV3JpdGVyTG9jazNAQEFFQUFYVzRTUElOX1RZUEVAMUBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpfUmVhZExvY2tTcGluKHZvaWQpIF9fcHRyNjQNCis/X1JlYWRMb2NrU3BpbkBDUmVhZGVyV3JpdGVyTG9ja0BAQUVBQVhYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENEYXRhQ2FjaGU8c3RydWN0IERBVEVUSU1FX0ZPUk1BVF9FTlRSWT46Ol9SZWFkTWVtb3J5QmFycmllcih2b2lkKQ0KKz9fUmVhZE1lbW9yeUJhcnJpZXJAPyRDRGF0YUNhY2hlQFVEQVRFVElNRV9GT1JNQVRfRU5UUllAQEBAS0FYWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHZvaWQgX19jZGVjbCBDRGF0YUNhY2hlPGNsYXNzIENEYXRlVGltZT46Ol9SZWFkTWVtb3J5QmFycmllcih2b2lkKQ0KKz9fUmVhZE1lbW9yeUJhcnJpZXJAPyRDRGF0YUNhY2hlQFZDRGF0ZVRpbWVAQEBAS0FYWFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfUmVhZE9yV3JpdGVMb2NrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X1JlYWRPcldyaXRlTG9ja0BDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBX05YWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9SZWFkT3JXcml0ZVVubG9jayhib29sKWNvbnN0ICBfX3B0cjY0DQorP19SZWFkT3JXcml0ZVVubG9ja0BDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBWF9OQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENEYXRhQ2FjaGU8c3RydWN0IERBVEVUSU1FX0ZPUk1BVF9FTlRSWT46Ol9SZWFkU2VxdWVuY2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9fUmVhZFNlcXVlbmNlQD8kQ0RhdGFDYWNoZUBVREFURVRJTUVfRk9STUFUX0VOVFJZQEBAQElFQkFKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENEYXRhQ2FjaGU8Y2xhc3MgQ0RhdGVUaW1lPjo6X1JlYWRTZXF1ZW5jZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP19SZWFkU2VxdWVuY2VAPyRDRGF0YUNhY2hlQFZDRGF0ZVRpbWVAQEBASUVCQUpYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENMS1JIYXNoVGFibGU6Ol9SZW1vdmVUaGlzRnJvbUdsb2JhbExpc3Qodm9pZCkgX19wdHI2NA0KKz9fUmVtb3ZlVGhpc0Zyb21HbG9iYWxMaXN0QENMS1JIYXNoVGFibGVAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfUmVtb3ZlVGhpc0Zyb21HbG9iYWxMaXN0KHZvaWQpIF9fcHRyNjQNCis/X1JlbW92ZVRoaXNGcm9tR2xvYmFsTGlzdEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBWFhaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X1NlZ0luZGV4KHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/X1NlZ0luZGV4QENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQkFLS0BaDQorOyBwcml2YXRlOiBjbGFzcyBDU2VnbWVudCAqIF9fcHRyNjQgJiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X1NlZ21lbnQodW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9fU2VnbWVudEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBQUVBUEVBVkNTZWdtZW50QEBLQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfU2V0U2VnVmFycyhlbnVtIExLX1RBQkxFU0laRSx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP19TZXRTZWdWYXJzQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQUE/QVc0TEtfUkVUQ09ERUBAVzRMS19UQUJMRVNJWkVAQEtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ0RhdGFDYWNoZTxzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZPjo6X1NldFNlcXVlbmNlKGxvbmcpIF9fcHRyNjQNCis/X1NldFNlcXVlbmNlQD8kQ0RhdGFDYWNoZUBVREFURVRJTUVfRk9STUFUX0VOVFJZQEBAQElFQUFKSkBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDRGF0YUNhY2hlPGNsYXNzIENEYXRlVGltZT46Ol9TZXRTZXF1ZW5jZShsb25nKSBfX3B0cjY0DQorP19TZXRTZXF1ZW5jZUA/JENEYXRhQ2FjaGVAVkNEYXRlVGltZUBAQEBJRUFBSkpAWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9TcGxpdFJlY29yZFNldChjbGFzcyBDTm9kZUNsdW1wICogX19wdHI2NCxjbGFzcyBDTm9kZUNsdW1wICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBDTm9kZUNsdW1wICogX19wdHI2NCkgX19wdHI2NA0KKz9fU3BsaXRSZWNvcmRTZXRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQT9BVzRMS19SRVRDT0RFQEBQRUFWQ05vZGVDbHVtcEBAMEtLSzBAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSAqIF9fcHRyNjQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpfU3ViVGFibGUodW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9fU3ViVGFibGVAQ0xLUkhhc2hUYWJsZUBAQUVCQVBFQVZDTEtSTGluZWFySGFzaFRhYmxlQEBLQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIENMS1JIYXNoVGFibGU6Ol9TdWJUYWJsZUluZGV4KGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGUgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP19TdWJUYWJsZUluZGV4QENMS1JIYXNoVGFibGVAQEFFQkFIUEVBVkNMS1JMaW5lYXJIYXNoVGFibGVAQEBaDQorOyBwcml2YXRlOiBib29sIF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6Ol9UcnlMb2NrKHZvaWQpIF9fcHRyNjQNCis/X1RyeUxvY2tAQ1NtYWxsU3BpbkxvY2tAQEFFQUFfTlhaDQorOyBwcml2YXRlOiBib29sIF9fY2RlY2wgQ1NwaW5Mb2NrOjpfVHJ5TG9jayh2b2lkKSBfX3B0cjY0DQorP19UcnlMb2NrQENTcGluTG9ja0BAQUVBQV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6Ol9UcnlSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP19UcnlSZWFkTG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQEFFQUFfTlhaDQorOyBwcml2YXRlOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpfVHJ5UmVhZExvY2sodm9pZCkgX19wdHI2NA0KKz9fVHJ5UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBBRUFBX05YWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpfVHJ5UmVhZExvY2sodm9pZCkgX19wdHI2NA0KKz9fVHJ5UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2tAQEFFQUFfTlhaDQorOyBwcml2YXRlOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpfVHJ5UmVhZExvY2tSZWN1cnNpdmUodm9pZCkgX19wdHI2NA0KKz9fVHJ5UmVhZExvY2tSZWN1cnNpdmVAQ1JlYWRlcldyaXRlckxvY2szQEBBRUFBX05YWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6X1RyeVdyaXRlTG9jazIodm9pZCkgX19wdHI2NA0KKz9fVHJ5V3JpdGVMb2NrMkBDUmVhZGVyV3JpdGVyTG9jazNAQEFFQUFfTlhaDQorOyBwcml2YXRlOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpfVHJ5V3JpdGVMb2NrKGxvbmcpIF9fcHRyNjQNCis/X1RyeVdyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQEFFQUFfTkpAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6X1RyeVdyaXRlTG9jayhsb25nKSBfX3B0cjY0DQorP19UcnlXcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBBRUFBX05KQFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6X1RyeVdyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP19UcnlXcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2tAQEFFQUFfTlhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1NwaW5Mb2NrOjpfVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/X1VubG9ja0BDU3BpbkxvY2tAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6Ol9Xcml0ZUxvY2tTcGluKHZvaWQpIF9fcHRyNjQNCis/X1dyaXRlTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2syQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpfV3JpdGVMb2NrU3Bpbih2b2lkKSBfX3B0cjY0DQorP19Xcml0ZUxvY2tTcGluQENSZWFkZXJXcml0ZXJMb2NrM0BAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpfV3JpdGVMb2NrU3Bpbih2b2lkKSBfX3B0cjY0DQorP19Xcml0ZUxvY2tTcGluQENSZWFkZXJXcml0ZXJMb2NrQEBBRUFBWFhaDQorOyBsb25nIGNvbnN0ICogY29uc3QgIGBwdWJsaWM6IHN0YXRpYyBsb25nIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENMS1JIYXNoVGFibGVTdGF0czo6QnVja2V0U2l6ZXModm9pZCknOjpgMic6OnNfYUJ1Y2tldFNpemVzDQorP3NfYUJ1Y2tldFNpemVzQD8xPz9CdWNrZXRTaXplc0BDTEtSSGFzaFRhYmxlU3RhdHNAQFNBUEVCSlhaQDRRQkpCDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IF9SVExfQ1JJVElDQUxfU0VDVElPTiAgQUxMT0NfQ0FDSEVfSEFORExFUjo6c21fY3NJdGVtcw0KKz9zbV9jc0l0ZW1zQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQDBVX1JUTF9DUklUSUNBTF9TRUNUSU9OQEBBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGRvdWJsZSAgQ0NyaXRTZWM6OnNtX2RibERmbHRTcGluQWRqRmN0cg0KKz9zbV9kYmxEZmx0U3BpbkFkakZjdHJAQ0NyaXRTZWNAQDFOQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBkb3VibGUgIENGYWtlTG9jazo6c21fZGJsRGZsdFNwaW5BZGpGY3RyDQorP3NtX2RibERmbHRTcGluQWRqRmN0ckBDRmFrZUxvY2tAQDFOQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBkb3VibGUgIENSZWFkZXJXcml0ZXJMb2NrMjo6c21fZGJsRGZsdFNwaW5BZGpGY3RyDQorP3NtX2RibERmbHRTcGluQWRqRmN0ckBDUmVhZGVyV3JpdGVyTG9jazJAQDFOQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBkb3VibGUgIENSZWFkZXJXcml0ZXJMb2NrMzo6c21fZGJsRGZsdFNwaW5BZGpGY3RyDQorP3NtX2RibERmbHRTcGluQWRqRmN0ckBDUmVhZGVyV3JpdGVyTG9jazNAQDFOQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBkb3VibGUgIENSZWFkZXJXcml0ZXJMb2NrOjpzbV9kYmxEZmx0U3BpbkFkakZjdHINCis/c21fZGJsRGZsdFNwaW5BZGpGY3RyQENSZWFkZXJXcml0ZXJMb2NrQEAxTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDUnRsUmVzb3VyY2U6OnNtX2RibERmbHRTcGluQWRqRmN0cg0KKz9zbV9kYmxEZmx0U3BpbkFkakZjdHJAQ1J0bFJlc291cmNlQEAxTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDU2hhcmVMb2NrOjpzbV9kYmxEZmx0U3BpbkFkakZjdHINCis/c21fZGJsRGZsdFNwaW5BZGpGY3RyQENTaGFyZUxvY2tAQDFOQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBkb3VibGUgIENTbWFsbFNwaW5Mb2NrOjpzbV9kYmxEZmx0U3BpbkFkakZjdHINCis/c21fZGJsRGZsdFNwaW5BZGpGY3RyQENTbWFsbFNwaW5Mb2NrQEAxTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDU3BpbkxvY2s6OnNtX2RibERmbHRTcGluQWRqRmN0cg0KKz9zbV9kYmxEZmx0U3BpbkFkakZjdHJAQ1NwaW5Mb2NrQEAxTkEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGludCAgQUxMT0NfQ0FDSEVfSEFORExFUjo6c21fZkluaXRDc0l0ZW1zDQorP3NtX2ZJbml0Q3NJdGVtc0BBTExPQ19DQUNIRV9IQU5ETEVSQEAwSEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIHZvaWQgKiBfX3B0cjY0ICBfX3B0cjY0IEFMTE9DX0NBQ0hFX0hBTkRMRVI6OnNtX2hUaW1lcg0KKz9zbV9oVGltZXJAQUxMT0NfQ0FDSEVfSEFORExFUkBAMFBFQVhFQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IF9MSVNUX0VOVFJZICBBTExPQ19DQUNIRV9IQU5ETEVSOjpzbV9sSXRlbXNIZWFkDQorP3NtX2xJdGVtc0hlYWRAQUxMT0NfQ0FDSEVfSEFORExFUkBAMFVfTElTVF9FTlRSWUBAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ0xvY2tlZERvdWJsZUxpc3QgIENMS1JIYXNoVGFibGU6OnNtX2xsR2xvYmFsTGlzdA0KKz9zbV9sbEdsb2JhbExpc3RAQ0xLUkhhc2hUYWJsZUBAMFZDTG9ja2VkRG91YmxlTGlzdEBAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ0xvY2tlZERvdWJsZUxpc3QgIENMS1JMaW5lYXJIYXNoVGFibGU6OnNtX2xsR2xvYmFsTGlzdA0KKz9zbV9sbEdsb2JhbExpc3RAQ0xLUkxpbmVhckhhc2hUYWJsZUBAMFZDTG9ja2VkRG91YmxlTGlzdEBAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgbG9uZyAgQUxMT0NfQ0FDSEVfSEFORExFUjo6c21fbkZpbGxQYXR0ZXJuDQorP3NtX25GaWxsUGF0dGVybkBBTExPQ19DQUNIRV9IQU5ETEVSQEAwSkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2xhc3MgQUxMT0NfQ0FDSEVfSEFORExFUiAqIF9fcHRyNjQgIF9fcHRyNjQgQ0xLUkxpbmVhckhhc2hUYWJsZTo6c21fcGFsbG9jDQorP3NtX3BhbGxvY0BDTEtSTGluZWFySGFzaFRhYmxlQEAxUEVBVkFMTE9DX0NBQ0hFX0hBTkRMRVJAQEVBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0ICBDQ3JpdFNlYzo6c21fd0RlZmF1bHRTcGluQ291bnQNCis/c21fd0RlZmF1bHRTcGluQ291bnRAQ0NyaXRTZWNAQDFHQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgQ0Zha2VMb2NrOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDRmFrZUxvY2tAQDFHQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgQ1JlYWRlcldyaXRlckxvY2syOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazJAQDFHQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgQ1JlYWRlcldyaXRlckxvY2szOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazNAQDFHQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgQ1JlYWRlcldyaXRlckxvY2s6OnNtX3dEZWZhdWx0U3BpbkNvdW50DQorP3NtX3dEZWZhdWx0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrQEAxR0EgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgIENSdGxSZXNvdXJjZTo6c21fd0RlZmF1bHRTcGluQ291bnQNCis/c21fd0RlZmF1bHRTcGluQ291bnRAQ1J0bFJlc291cmNlQEAxR0EgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgIENTaGFyZUxvY2s6OnNtX3dEZWZhdWx0U3BpbkNvdW50DQorP3NtX3dEZWZhdWx0U3BpbkNvdW50QENTaGFyZUxvY2tAQDFHQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgQ1NtYWxsU3BpbkxvY2s6OnNtX3dEZWZhdWx0U3BpbkNvdW50DQorP3NtX3dEZWZhdWx0U3BpbkNvdW50QENTbWFsbFNwaW5Mb2NrQEAxR0EgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgIENTcGluTG9jazo6c21fd0RlZmF1bHRTcGluQ291bnQNCis/c21fd0RlZmF1bHRTcGluQ291bnRAQ1NwaW5Mb2NrQEAxR0EgREFUQQ0KK0NyZWF0ZVJlZlRyYWNlTG9nDQorQ3JlYXRlVHJhY2VMb2cNCitEZXN0cm95UmVmVHJhY2VMb2cNCitEZXN0cm95VHJhY2VMb2cNCitEbGxNYWluDQorR2V0QWxsb2NDb3VudGVycw0KK0dldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZHMNCitHZXRDdXJyZW50VGltZUluU2Vjb25kcw0KK0dldFF1ZXJ5VHlwZQ0KK0lJU0NhcHR1cmVTdGFja0JhY2tUcmFjZQ0KK0lJU0dldEN1cnJlbnRUaW1lDQorSUlTR2V0UGxhdGZvcm1UeXBlDQorSUlTSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbg0KK0lJU1NldENyaXRpY2FsU2VjdGlvblNwaW5Db3VudA0KK0lpc0NhbGxvYw0KK0lpc0ZyZWUNCitJaXNIZWFwDQorSWlzTWFsbG9jDQorSWlzUmVBbGxvYw0KK0luZXRBY3F1aXJlUmVzb3VyY2VFeGNsdXNpdmUNCitJbmV0QWNxdWlyZVJlc291cmNlU2hhcmVkDQorSW5ldENvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZA0KK0luZXRDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUNCitJbmV0RGVsZXRlUmVzb3VyY2UNCitJbmV0SW5pdGlhbGl6ZVJlc291cmNlDQorSW5ldFJlbGVhc2VSZXNvdXJjZQ0KK0luaXRpYWxpemVJSVNSVEwNCitJbml0aWFsaXplU2Vjb25kc1RpbWVyDQorSXNOdW1iZXJJblVuaWNvZGVMaXN0DQorTEtSSGFzaFRhYmxlSW5pdA0KK0xLUkhhc2hUYWJsZVVuaW5pdA0KK01JRExfdXNlcl9hbGxvY2F0ZQ0KK01JRExfdXNlcl9mcmVlDQorTW9uQnVpbGRJbnN0YW5jZURlZmluaXRpb24NCitQdUNsb3NlRGJnUHJpbnRGaWxlDQorUHVDcmVhdGVEZWJ1Z1ByaW50c09iamVjdA0KK1B1RGJnQXNzZXJ0RmFpbGVkDQorUHVEYmdDYXB0dXJlQ29udGV4dA0KK1B1RGJnQ3JlYXRlRXZlbnQNCitQdURiZ0NyZWF0ZU11dGV4DQorUHVEYmdDcmVhdGVTZW1hcGhvcmUNCitQdURiZ0R1bXANCitQdURiZ1ByaW50DQorUHVEYmdQcmludFcNCitQdURlbGV0ZURlYnVnUHJpbnRzT2JqZWN0DQorUHVMb2FkRGVidWdGbGFnc0Zyb21SZWcNCitQdUxvYWREZWJ1Z0ZsYWdzRnJvbVJlZ1N0cg0KK1Jlc2V0VHJhY2VMb2cNCitScGNCaW5kSGFuZGxlRm9yU2VydmVyDQorUnBjQmluZEhhbmRsZUZyZWUNCitScGNCaW5kSGFuZGxlT3ZlckxwYw0KK1JwY0JpbmRIYW5kbGVPdmVyTmFtZWRQaXBlDQorUnBjQmluZEhhbmRsZU92ZXJUY3BJcA0KK1JwY3VGaW5kUHJvdG9jb2xUb1VzZQ0KK1Rlcm1pbmF0ZUlJU1JUTA0KK1Rlcm1pbmF0ZVNlY29uZHNUaW1lcg0KK1dyaXRlUmVmVHJhY2VMb2cNCitXcml0ZVJlZlRyYWNlTG9nRXgNCitXcml0ZVRyYWNlTG9nDQorc3RyaXN0cg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2lpc3N1YmEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaWlzc3ViYS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODcwZGRlOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lpc3N1YmEuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU1VCQVVUSC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU1VCQVVUSC5kbGwNCitFWFBPUlRTDQorTXN2MV8wU3ViQXV0aGVudGljYXRpb25Sb3V0aW5lRXgNCitSZWdpc3RlcklJU1NVQkENCitVbnJlZ2lzdGVySUlTU1VCQQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2lpc3VpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lpc3VpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MGU0N2U0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaWlzdWkuZGVmCkBAIC0wLDAgKzEsMTkwMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpaXN1aS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaWlzdWkuZGxsDQorRVhQT1JUUw0KK0luaXRDb21tb25EbGwNCis7IHB1YmxpYzogX19jZGVjbCBDQWNjZXNzRW50cnk6OkNBY2Nlc3NFbnRyeShjbGFzcyBDQWNjZXNzRW50cnkgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0FjY2Vzc0VudHJ5QEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0FjY2Vzc0VudHJ5OjpDQWNjZXNzRW50cnkodW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wQ0FjY2Vzc0VudHJ5QEBRRUFBQEtQRUFYUEVCR0hAWg0KKzsgcHVibGljOiBfX2NkZWNsIENBY2Nlc3NFbnRyeTo6Q0FjY2Vzc0VudHJ5KHZvaWQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MENBY2Nlc3NFbnRyeUBAUUVBQUBQRUFYSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0FjY2Vzc0VudHJ5OjpDQWNjZXNzRW50cnkodm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENBY2Nlc3NFbnRyeUBAUUVBQUBQRUFYUEVCRzFAWg0KKzsgcHVibGljOiBfX2NkZWNsIENCbG9iOjpDQmxvYihjbGFzcyBDQmxvYiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQmxvYkBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENCbG9iOjpDQmxvYih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MENCbG9iQEBRRUFBQEtQRUFFSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Jsb2I6OkNCbG9iKHZvaWQpIF9fcHRyNjQNCis/PzBDQmxvYkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENDb21BdXRoSW5mbzo6Q0NvbUF1dGhJbmZvKGNsYXNzIENDb21BdXRoSW5mbyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQ29tQXV0aEluZm9AQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ29tQXV0aEluZm86OkNDb21BdXRoSW5mbyhjbGFzcyBDQ29tQXV0aEluZm8gKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0NvbUF1dGhJbmZvQEBRRUFBQFBFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjpDQ29tQXV0aEluZm8odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQ29tQXV0aEluZm9AQFFFQUFAUEVCRzAwQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ29uZmlybURsZzo6Q0NvbmZpcm1EbGcoY2xhc3MgQ1duZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQ29uZmlybURsZ0BAUUVBQUBQRUFWQ1duZEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRGlyQnJvd3NlRGxnOjpDRGlyQnJvd3NlRGxnKGNsYXNzIENEaXJCcm93c2VEbGcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0RpckJyb3dzZURsZ0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENEaXJCcm93c2VEbGc6OkNEaXJCcm93c2VEbGcoY2xhc3MgQ1duZCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0RpckJyb3dzZURsZ0BAUUVBQUBQRUFWQ1duZEBAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Rvd25CdXR0b246OkNEb3duQnV0dG9uKHZvaWQpIF9fcHRyNjQNCis/PzBDRG93bkJ1dHRvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENFbXBoYXNpemVkRGlhbG9nOjpDRW1waGFzaXplZERpYWxvZyh1bnNpZ25lZCBpbnQsY2xhc3MgQ1duZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRW1waGFzaXplZERpYWxvZ0BAUUVBQUBJUEVBVkNXbmRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0VtcGhhc2l6ZWREaWFsb2c6OkNFbXBoYXNpemVkRGlhbG9nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDV25kICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENFbXBoYXNpemVkRGlhbG9nQEBRRUFBQFBFQkdQRUFWQ1duZEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRW1waGFzaXplZERpYWxvZzo6Q0VtcGhhc2l6ZWREaWFsb2codm9pZCkgX19wdHI2NA0KKz8/MENFbXBoYXNpemVkRGlhbG9nQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Vycm9yOjpDRXJyb3IobG9uZykgX19wdHI2NA0KKz8/MENFcnJvckBAUUVBQUBKQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXJyb3I6OkNFcnJvcih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wQ0Vycm9yQEBRRUFBQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIENFcnJvcjo6Q0Vycm9yKHZvaWQpIF9fcHRyNjQNCis/PzBDRXJyb3JAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDR2V0Q29tcHV0ZXI6OkNHZXRDb21wdXRlcihjbGFzcyBDR2V0Q29tcHV0ZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0dldENvbXB1dGVyQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0dldENvbXB1dGVyOjpDR2V0Q29tcHV0ZXIodm9pZCkgX19wdHI2NA0KKz8/MENHZXRDb21wdXRlckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENHZXRVc2Vyczo6Q0dldFVzZXJzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBDR2V0VXNlcnNAQFFFQUFAUEVCR0hAWg0KKzsgcHVibGljOiBfX2NkZWNsIENIZWFkZXJMaXN0Qm94OjpDSGVhZGVyTGlzdEJveCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENIZWFkZXJMaXN0Qm94QEBRRUFBQEtQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSUlTQXBwUG9vbDo6Q0lJU0FwcFBvb2woY2xhc3MgQ0lJU0FwcFBvb2wgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0lJU0FwcFBvb2xAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSUlTQXBwUG9vbDo6Q0lJU0FwcFBvb2woY2xhc3MgQ0NvbUF1dGhJbmZvICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSUlTQXBwUG9vbEBAUUVBQUBQRUFWQ0NvbUF1dGhJbmZvQEBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSUlTQXBwbGljYXRpb246OkNJSVNBcHBsaWNhdGlvbihjbGFzcyBDSUlTQXBwbGljYXRpb24gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0lJU0FwcGxpY2F0aW9uQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpDSUlTQXBwbGljYXRpb24oY2xhc3MgQ0NvbUF1dGhJbmZvICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSUlTQXBwbGljYXRpb25AQFFFQUFAUEVBVkNDb21BdXRoSW5mb0BAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU0ludGVyZmFjZTo6Q0lJU0ludGVyZmFjZShjbGFzcyBDSUlTSW50ZXJmYWNlICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENJSVNJbnRlcmZhY2VAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSUlTSW50ZXJmYWNlOjpDSUlTSW50ZXJmYWNlKGNsYXNzIENDb21BdXRoSW5mbyAqIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz8/MENJSVNJbnRlcmZhY2VAQFFFQUFAUEVBVkNDb21BdXRoSW5mb0BASkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6OkNJSVNTdmNDb250cm9sKGNsYXNzIENJSVNTdmNDb250cm9sICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENJSVNTdmNDb250cm9sQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6OkNJSVNTdmNDb250cm9sKGNsYXNzIENJSVNTdmNDb250cm9sICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENJSVNTdmNDb250cm9sQEBRRUFBQFBFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6OkNJSVNTdmNDb250cm9sKGNsYXNzIENDb21BdXRoSW5mbyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSUlTU3ZjQ29udHJvbEBAUUVBQUBQRUFWQ0NvbUF1dGhJbmZvQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJSVNXaXphcmRCb29rRW5kOjpDSUlTV2l6YXJkQm9va0VuZCh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQ0lJU1dpemFyZEJvb2tFbmRAQFFFQUFASUlJSUlAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJSVNXaXphcmRCb29rRW5kOjpDSUlTV2l6YXJkQm9va0VuZChsb25nICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBDSUlTV2l6YXJkQm9va0VuZEBAUUVBQUBQRUFKSUlJSUlJSUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU1dpemFyZFBhZ2U6OkNJSVNXaXphcmRQYWdlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBDSUlTV2l6YXJkUGFnZUBAUUVBQUBJSUhJSUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU1dpemFyZFNoZWV0OjpDSUlTV2l6YXJkU2hlZXQodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDSUlTV2l6YXJkU2hlZXRAQFFFQUFASUlLS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lMb25nOjpDSUxvbmcobG9uZykgX19wdHI2NA0KKz8/MENJTG9uZ0BAUUVBQUBKQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSUxvbmc6OkNJTG9uZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSUxvbmdAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lMb25nOjpDSUxvbmcodm9pZCkgX19wdHI2NA0KKz8/MENJTG9uZ0BAUUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIENJTnVtYmVyOjpDSU51bWJlcih2b2lkKSBfX3B0cjY0DQorPz8wQ0lOdW1iZXJAQElFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSVBBY2Nlc3NEZXNjcmlwdG9yOjpDSVBBY2Nlc3NEZXNjcmlwdG9yKGNsYXNzIENJUEFjY2Vzc0Rlc2NyaXB0b3IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0lQQWNjZXNzRGVzY3JpcHRvckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJUEFjY2Vzc0Rlc2NyaXB0b3I6OkNJUEFjY2Vzc0Rlc2NyaXB0b3IoaW50KSBfX3B0cjY0DQorPz8wQ0lQQWNjZXNzRGVzY3JpcHRvckBAUUVBQUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSVBBY2Nlc3NEZXNjcmlwdG9yOjpDSVBBY2Nlc3NEZXNjcmlwdG9yKGludCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50KSBfX3B0cjY0DQorPz8wQ0lQQWNjZXNzRGVzY3JpcHRvckBAUUVBQUBIS0tIQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSVBBY2Nlc3NEZXNjcmlwdG9yOjpDSVBBY2Nlc3NEZXNjcmlwdG9yKGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSVBBY2Nlc3NEZXNjcmlwdG9yQEBRRUFBQEhQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSVBBZGRyZXNzOjpDSVBBZGRyZXNzKGNsYXNzIENJUEFkZHJlc3MgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0lQQWRkcmVzc0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJUEFkZHJlc3M6OkNJUEFkZHJlc3MoY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSVBBZGRyZXNzQEBRRUFBQEFFQlZDU3RyaW5nQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJUEFkZHJlc3M6OkNJUEFkZHJlc3ModW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz8/MENJUEFkZHJlc3NAQFFFQUFARUVFRUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lQQWRkcmVzczo6Q0lQQWRkcmVzcyh1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz8/MENJUEFkZHJlc3NAQFFFQUFAS0hAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJUEFkZHJlc3M6OkNJUEFkZHJlc3ModW5zaWduZWQgY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wQ0lQQWRkcmVzc0BAUUVBQUBQRUFFSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lQQWRkcmVzczo6Q0lQQWRkcmVzcyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wQ0lQQWRkcmVzc0BAUUVBQUBQRUJHSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lQQWRkcmVzczo6Q0lQQWRkcmVzcyh2b2lkKSBfX3B0cjY0DQorPz8wQ0lQQWRkcmVzc0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbmhlcml0YW5jZURsZzo6Q0luaGVyaXRhbmNlRGxnKGludCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQsY2xhc3MgQ0NvbUF1dGhJbmZvICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1duZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSW5oZXJpdGFuY2VEbGdAQFFFQUFASEtLS0tQRUJHSFBFQVZDQ29tQXV0aEluZm9AQDBQRUFWQ1duZEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW5oZXJpdGFuY2VEbGc6OkNJbmhlcml0YW5jZURsZyh1bnNpZ25lZCBsb25nLGludCxjbGFzcyBDQ29tQXV0aEluZm8gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1duZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSW5oZXJpdGFuY2VEbGdAQFFFQUFAS0hQRUFWQ0NvbUF1dGhJbmZvQEBQRUJHMVBFQVZDV25kQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbmhlcml0YW5jZURsZzo6Q0luaGVyaXRhbmNlRGxnKHVuc2lnbmVkIGxvbmcsaW50LGNsYXNzIENDb21BdXRoSW5mbyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENTdHJpbmdMaXN0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1duZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSW5oZXJpdGFuY2VEbGdAQFFFQUFAS0hQRUFWQ0NvbUF1dGhJbmZvQEBQRUJHQUVBVkNTdHJpbmdMaXN0QEAxUEVBVkNXbmRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01hcHBlZEJpdG1hcEJ1dHRvbjo6Q01hcHBlZEJpdG1hcEJ1dHRvbih2b2lkKSBfX3B0cjY0DQorPz8wQ01hcHBlZEJpdG1hcEJ1dHRvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhQmFjazo6Q01ldGFCYWNrKGNsYXNzIENNZXRhQmFjayAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0YUJhY2tAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0YUJhY2s6OkNNZXRhQmFjayhjbGFzcyBDQ29tQXV0aEluZm8gKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01ldGFCYWNrQEBRRUFBQFBFQVZDQ29tQXV0aEluZm9AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFFbnVtZXJhdG9yOjpDTWV0YUVudW1lcmF0b3IoY2xhc3MgQ01ldGFFbnVtZXJhdG9yICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENNZXRhRW51bWVyYXRvckBAUUVBQUBBRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhRW51bWVyYXRvcjo6Q01ldGFFbnVtZXJhdG9yKGludCxjbGFzcyBDTWV0YUtleSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0YUVudW1lcmF0b3JAQFFFQUFASFBFQVZDTWV0YUtleUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0YUVudW1lcmF0b3I6OkNNZXRhRW51bWVyYXRvcihjbGFzcyBDQ29tQXV0aEluZm8gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wQ01ldGFFbnVtZXJhdG9yQEBRRUFBQFBFQVZDQ29tQXV0aEluZm9AQFBFQkdLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0YUVudW1lcmF0b3I6OkNNZXRhRW51bWVyYXRvcihjbGFzcyBDTWV0YUludGVyZmFjZSAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDTWV0YUVudW1lcmF0b3JAQFFFQUFAUEVBVkNNZXRhSW50ZXJmYWNlQEBQRUJHS0BaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkNNZXRhSW50ZXJmYWNlKGNsYXNzIENNZXRhSW50ZXJmYWNlICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENNZXRhSW50ZXJmYWNlQEBJRUFBQFBFQVYwQEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkNNZXRhSW50ZXJmYWNlKGNsYXNzIENDb21BdXRoSW5mbyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0YUludGVyZmFjZUBASUVBQUBQRUFWQ0NvbUF1dGhJbmZvQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpDTWV0YUludGVyZmFjZShjbGFzcyBDTWV0YUludGVyZmFjZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0YUludGVyZmFjZUBAUUVBQUBBRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhS2V5OjpDTWV0YUtleShjbGFzcyBDTWV0YUtleSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0YUtleUBAUUVBQUBBRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhS2V5OjpDTWV0YUtleShpbnQsY2xhc3MgQ01ldGFLZXkgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01ldGFLZXlAQFFFQUFASFBFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFLZXk6OkNNZXRhS2V5KGNsYXNzIENDb21BdXRoSW5mbyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0YUtleUBAUUVBQUBQRUFWQ0NvbUF1dGhJbmZvQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhS2V5OjpDTWV0YUtleShjbGFzcyBDQ29tQXV0aEluZm8gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDTWV0YUtleUBAUUVBQUBQRUFWQ0NvbUF1dGhJbmZvQEBQRUJHS0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhS2V5OjpDTWV0YUtleShjbGFzcyBDTWV0YUludGVyZmFjZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0YUtleUBAUUVBQUBQRUFWQ01ldGFJbnRlcmZhY2VAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFLZXk6OkNNZXRhS2V5KGNsYXNzIENNZXRhSW50ZXJmYWNlICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wQ01ldGFLZXlAQFFFQUFAUEVBVkNNZXRhSW50ZXJmYWNlQEBQRUJHS0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OkNNZXRhYmFzZVBhdGgoY2xhc3MgQ01ldGFiYXNlUGF0aCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0YWJhc2VQYXRoQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6Q01ldGFiYXNlUGF0aChpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01ldGFiYXNlUGF0aEBAUUVBQUBIUEVCRzAwMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6Q01ldGFiYXNlUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01ldGFiYXNlUGF0aEBAUUVBQUBQRUJHSzAwQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBDT0RMQm94OjpDT0RMQm94KHZvaWQpIF9fcHRyNjQNCis/PzBDT0RMQm94QEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09iTGlzdEl0ZXI6OkNPYkxpc3RJdGVyKGNsYXNzIENPYkxpc3RQbHVzIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENPYkxpc3RJdGVyQEBRRUFBQEFFQlZDT2JMaXN0UGx1c0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDT2JMaXN0UGx1czo6Q09iTGlzdFBsdXMoaW50KSBfX3B0cjY0DQorPz8wQ09iTGlzdFBsdXNAQFFFQUFASEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQ09iakhlbHBlcjo6Q09iakhlbHBlcih2b2lkKSBfX3B0cjY0DQorPz8wQ09iakhlbHBlckBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENPYmpIZWxwZXI6OkNPYmpIZWxwZXIoY2xhc3MgQ09iakhlbHBlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDT2JqSGVscGVyQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09iamVjdFBsdXM6OkNPYmplY3RQbHVzKHZvaWQpIF9fcHRyNjQNCis/PzBDT2JqZWN0UGx1c0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENSTUNDb21ib0JveDo6Q1JNQ0NvbWJvQm94KHZvaWQpIF9fcHRyNjQNCis/PzBDUk1DQ29tYm9Cb3hAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUk1DTGlzdEJveDo6Q1JNQ0xpc3RCb3godm9pZCkgX19wdHI2NA0KKz8/MENSTUNMaXN0Qm94QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1JNQ0xpc3RCb3hEcmF3U3RydWN0OjpDUk1DTGlzdEJveERyYXdTdHJ1Y3QoY2xhc3MgQ0RDICogX19wdHI2NCxzdHJ1Y3QgdGFnUkVDVCAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIF9faW50NjQsaW50LGNsYXNzIENSTUNMaXN0Qm94UmVzb3VyY2VzIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENSTUNMaXN0Qm94RHJhd1N0cnVjdEBAUUVBQUBQRUFWQ0RDQEBQRUFVdGFnUkVDVEBASF9LSFBFQlZDUk1DTGlzdEJveFJlc291cmNlc0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDUk1DTGlzdEJveEhlYWRlcjo6Q1JNQ0xpc3RCb3hIZWFkZXIodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENSTUNMaXN0Qm94SGVhZGVyQEBRRUFBQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIENSTUNMaXN0Qm94UmVzb3VyY2VzOjpDUk1DTGlzdEJveFJlc291cmNlcyhpbnQsaW50LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDUk1DTGlzdEJveFJlc291cmNlc0BAUUVBQUBISEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIENTdHJQYXNzd29yZDo6Q1N0clBhc3N3b3JkKGNsYXNzIENTdHJQYXNzd29yZCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDU3RyUGFzc3dvcmRAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDU3RyUGFzc3dvcmQ6OkNTdHJQYXNzd29yZCh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDU3RyUGFzc3dvcmRAQFFFQUFAUEVBR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1N0clBhc3N3b3JkOjpDU3RyUGFzc3dvcmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1N0clBhc3N3b3JkQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIENTdHJQYXNzd29yZDo6Q1N0clBhc3N3b3JkKHZvaWQpIF9fcHRyNjQNCis/PzBDU3RyUGFzc3dvcmRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDU3RyaW5nTGlzdEV4OjpDU3RyaW5nTGlzdEV4KGludCkgX19wdHI2NA0KKz8/MENTdHJpbmdMaXN0RXhAQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1VwQnV0dG9uOjpDVXBCdXR0b24odm9pZCkgX19wdHI2NA0KKz8/MENVcEJ1dHRvbkBAUUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIENXYW1JbnRlcmZhY2U6OkNXYW1JbnRlcmZhY2UoY2xhc3MgQ1dhbUludGVyZmFjZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDV2FtSW50ZXJmYWNlQEBJRUFBQFBFQVYwQEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQ1dhbUludGVyZmFjZTo6Q1dhbUludGVyZmFjZShjbGFzcyBDQ29tQXV0aEluZm8gKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1dhbUludGVyZmFjZUBASUVBQUBQRUFWQ0NvbUF1dGhJbmZvQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXYW1JbnRlcmZhY2U6OkNXYW1JbnRlcmZhY2UoY2xhc3MgQ1dhbUludGVyZmFjZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDV2FtSW50ZXJmYWNlQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDQWNjZXNzRW50cnk6On5DQWNjZXNzRW50cnkodm9pZCkgX19wdHI2NA0KKz8/MUNBY2Nlc3NFbnRyeUBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENCbG9iOjp+Q0Jsb2Iodm9pZCkgX19wdHI2NA0KKz8/MUNCbG9iQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjp+Q0NvbUF1dGhJbmZvKHZvaWQpIF9fcHRyNjQNCis/PzFDQ29tQXV0aEluZm9AQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENDb25maXJtRGxnOjp+Q0NvbmZpcm1EbGcodm9pZCkgX19wdHI2NA0KKz8/MUNDb25maXJtRGxnQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0RpckJyb3dzZURsZzo6fkNEaXJCcm93c2VEbGcodm9pZCkgX19wdHI2NA0KKz8/MUNEaXJCcm93c2VEbGdAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENEb3duQnV0dG9uOjp+Q0Rvd25CdXR0b24odm9pZCkgX19wdHI2NA0KKz8/MUNEb3duQnV0dG9uQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDRW1waGFzaXplZERpYWxvZzo6fkNFbXBoYXNpemVkRGlhbG9nKHZvaWQpIF9fcHRyNjQNCis/PzFDRW1waGFzaXplZERpYWxvZ0BAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENFcnJvcjo6fkNFcnJvcih2b2lkKSBfX3B0cjY0DQorPz8xQ0Vycm9yQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0dldENvbXB1dGVyOjp+Q0dldENvbXB1dGVyKHZvaWQpIF9fcHRyNjQNCis/PzFDR2V0Q29tcHV0ZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENHZXRVc2Vyczo6fkNHZXRVc2Vycyh2b2lkKSBfX3B0cjY0DQorPz8xQ0dldFVzZXJzQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDSGVhZGVyTGlzdEJveDo6fkNIZWFkZXJMaXN0Qm94KHZvaWQpIF9fcHRyNjQNCis/PzFDSGVhZGVyTGlzdEJveEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ0lJU0FwcFBvb2w6On5DSUlTQXBwUG9vbCh2b2lkKSBfX3B0cjY0DQorPz8xQ0lJU0FwcFBvb2xAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6fkNJSVNBcHBsaWNhdGlvbih2b2lkKSBfX3B0cjY0DQorPz8xQ0lJU0FwcGxpY2F0aW9uQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU0ludGVyZmFjZTo6fkNJSVNJbnRlcmZhY2Uodm9pZCkgX19wdHI2NA0KKz8/MUNJSVNJbnRlcmZhY2VAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENJSVNTdmNDb250cm9sOjp+Q0lJU1N2Y0NvbnRyb2wodm9pZCkgX19wdHI2NA0KKz8/MUNJSVNTdmNDb250cm9sQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDSUlTV2l6YXJkQm9va0VuZDo6fkNJSVNXaXphcmRCb29rRW5kKHZvaWQpIF9fcHRyNjQNCis/PzFDSUlTV2l6YXJkQm9va0VuZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ0lJU1dpemFyZFBhZ2U6On5DSUlTV2l6YXJkUGFnZSh2b2lkKSBfX3B0cjY0DQorPz8xQ0lJU1dpemFyZFBhZ2VAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENJSVNXaXphcmRTaGVldDo6fkNJSVNXaXphcmRTaGVldCh2b2lkKSBfX3B0cjY0DQorPz8xQ0lJU1dpemFyZFNoZWV0QEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lMb25nOjp+Q0lMb25nKHZvaWQpIF9fcHRyNjQNCis/PzFDSUxvbmdAQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBDSU51bWJlcjo6fkNJTnVtYmVyKHZvaWQpIF9fcHRyNjQNCis/PzFDSU51bWJlckBASUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6fkNJUEFjY2Vzc0Rlc2NyaXB0b3Iodm9pZCkgX19wdHI2NA0KKz8/MUNJUEFjY2Vzc0Rlc2NyaXB0b3JAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENJUEFkZHJlc3M6On5DSVBBZGRyZXNzKHZvaWQpIF9fcHRyNjQNCis/PzFDSVBBZGRyZXNzQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDSW5oZXJpdGFuY2VEbGc6On5DSW5oZXJpdGFuY2VEbGcodm9pZCkgX19wdHI2NA0KKz8/MUNJbmhlcml0YW5jZURsZ0BAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ01hcHBlZEJpdG1hcEJ1dHRvbjo6fkNNYXBwZWRCaXRtYXBCdXR0b24odm9pZCkgX19wdHI2NA0KKz8/MUNNYXBwZWRCaXRtYXBCdXR0b25AQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENNZXRhQmFjazo6fkNNZXRhQmFjayh2b2lkKSBfX3B0cjY0DQorPz8xQ01ldGFCYWNrQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDTWV0YUVudW1lcmF0b3I6On5DTWV0YUVudW1lcmF0b3Iodm9pZCkgX19wdHI2NA0KKz8/MUNNZXRhRW51bWVyYXRvckBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6On5DTWV0YUludGVyZmFjZSh2b2lkKSBfX3B0cjY0DQorPz8xQ01ldGFJbnRlcmZhY2VAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENNZXRhS2V5Ojp+Q01ldGFLZXkodm9pZCkgX19wdHI2NA0KKz8/MUNNZXRhS2V5QEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6fkNNZXRhYmFzZVBhdGgodm9pZCkgX19wdHI2NA0KKz8/MUNNZXRhYmFzZVBhdGhAQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBDT0RMQm94Ojp+Q09ETEJveCh2b2lkKSBfX3B0cjY0DQorPz8xQ09ETEJveEBASUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ09iTGlzdEl0ZXI6On5DT2JMaXN0SXRlcih2b2lkKSBfX3B0cjY0DQorPz8xQ09iTGlzdEl0ZXJAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENPYkxpc3RQbHVzOjp+Q09iTGlzdFBsdXModm9pZCkgX19wdHI2NA0KKz8/MUNPYkxpc3RQbHVzQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDT2JqZWN0UGx1czo6fkNPYmplY3RQbHVzKHZvaWQpIF9fcHRyNjQNCis/PzFDT2JqZWN0UGx1c0BAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1JNQ0NvbWJvQm94Ojp+Q1JNQ0NvbWJvQm94KHZvaWQpIF9fcHRyNjQNCis/PzFDUk1DQ29tYm9Cb3hAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENSTUNMaXN0Qm94Ojp+Q1JNQ0xpc3RCb3godm9pZCkgX19wdHI2NA0KKz8/MUNSTUNMaXN0Qm94QEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDUk1DTGlzdEJveEhlYWRlcjo6fkNSTUNMaXN0Qm94SGVhZGVyKHZvaWQpIF9fcHRyNjQNCis/PzFDUk1DTGlzdEJveEhlYWRlckBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENSTUNMaXN0Qm94UmVzb3VyY2VzOjp+Q1JNQ0xpc3RCb3hSZXNvdXJjZXModm9pZCkgX19wdHI2NA0KKz8/MUNSTUNMaXN0Qm94UmVzb3VyY2VzQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1N0clBhc3N3b3JkOjp+Q1N0clBhc3N3b3JkKHZvaWQpIF9fcHRyNjQNCis/PzFDU3RyUGFzc3dvcmRAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENTdHJpbmdMaXN0RXg6On5DU3RyaW5nTGlzdEV4KHZvaWQpIF9fcHRyNjQNCis/PzFDU3RyaW5nTGlzdEV4QEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDVXBCdXR0b246On5DVXBCdXR0b24odm9pZCkgX19wdHI2NA0KKz8/MUNVcEJ1dHRvbkBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1dhbUludGVyZmFjZTo6fkNXYW1JbnRlcmZhY2Uodm9pZCkgX19wdHI2NA0KKz8/MUNXYW1JbnRlcmZhY2VAQFVFQUFAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0Jsb2IgJiBfX3B0cjY0IF9fY2RlY2wgQ0Jsb2I6Om9wZXJhdG9yPShjbGFzcyBDQmxvYiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDQmxvYkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENDb21BdXRoSW5mbyAmIF9fcHRyNjQgX19jZGVjbCBDQ29tQXV0aEluZm86Om9wZXJhdG9yPShjbGFzcyBDQ29tQXV0aEluZm8gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0NvbUF1dGhJbmZvQEBRRUFBQUVBVjBAQUVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbUF1dGhJbmZvICYgX19wdHI2NCBfX2NkZWNsIENDb21BdXRoSW5mbzo6b3BlcmF0b3I9KGNsYXNzIENDb21BdXRoSW5mbyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDQ29tQXV0aEluZm9AQFFFQUFBRUFWMEBQRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tQXV0aEluZm8gJiBfX3B0cjY0IF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0NvbUF1dGhJbmZvQEBRRUFBQUVBVjBAUEVCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENEaXJCcm93c2VEbGcgJiBfX3B0cjY0IF9fY2RlY2wgQ0RpckJyb3dzZURsZzo6b3BlcmF0b3I9KGNsYXNzIENEaXJCcm93c2VEbGcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0RpckJyb3dzZURsZ0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENFcnJvciBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDRXJyb3I6Om9wZXJhdG9yPShjbGFzcyBDRXJyb3IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0Vycm9yQEBRRUFBQUVCVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0Vycm9yIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENFcnJvcjo6b3BlcmF0b3I9KGxvbmcpIF9fcHRyNjQNCis/PzRDRXJyb3JAQFFFQUFBRUJWMEBKQFoNCis7IHB1YmxpYzogY2xhc3MgQ0dldENvbXB1dGVyICYgX19wdHI2NCBfX2NkZWNsIENHZXRDb21wdXRlcjo6b3BlcmF0b3I9KGNsYXNzIENHZXRDb21wdXRlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDR2V0Q29tcHV0ZXJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSUlTQXBwUG9vbCAmIF9fcHRyNjQgX19jZGVjbCBDSUlTQXBwUG9vbDo6b3BlcmF0b3I9KGNsYXNzIENJSVNBcHBQb29sICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJSVNBcHBQb29sQEBRRUFBQUVBVjBAQUVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0lJU0FwcGxpY2F0aW9uICYgX19wdHI2NCBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6b3BlcmF0b3I9KGNsYXNzIENJSVNBcHBsaWNhdGlvbiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDSUlTQXBwbGljYXRpb25AQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSUlTSW50ZXJmYWNlICYgX19wdHI2NCBfX2NkZWNsIENJSVNJbnRlcmZhY2U6Om9wZXJhdG9yPShjbGFzcyBDSUlTSW50ZXJmYWNlICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJSVNJbnRlcmZhY2VAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSUlTU3ZjQ29udHJvbCAmIF9fcHRyNjQgX19jZGVjbCBDSUlTU3ZjQ29udHJvbDo6b3BlcmF0b3I9KGNsYXNzIENJSVNTdmNDb250cm9sICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJSVNTdmNDb250cm9sQEBRRUFBQUVBVjBAQUVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0lMb25nICYgX19wdHI2NCBfX2NkZWNsIENJTG9uZzo6b3BlcmF0b3I9KGNsYXNzIENJTG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDSUxvbmdAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSUxvbmcgJiBfX3B0cjY0IF9fY2RlY2wgQ0lMb25nOjpvcGVyYXRvcj0obG9uZykgX19wdHI2NA0KKz8/NENJTG9uZ0BAUUVBQUFFQVYwQEpAWg0KKzsgcHVibGljOiBjbGFzcyBDSUxvbmcgJiBfX3B0cjY0IF9fY2RlY2wgQ0lMb25nOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0lMb25nQEBRRUFBQUVBVjBAUEVCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENJTnVtYmVyICYgX19wdHI2NCBfX2NkZWNsIENJTnVtYmVyOjpvcGVyYXRvcj0oY2xhc3MgQ0lOdW1iZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0lOdW1iZXJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSVBBZGRyZXNzIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENJUEFkZHJlc3M6Om9wZXJhdG9yPShjbGFzcyBDSVBBZGRyZXNzIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJUEFkZHJlc3NAQFFFQUFBRUJWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSVBBZGRyZXNzIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENJUEFkZHJlc3M6Om9wZXJhdG9yPShjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJUEFkZHJlc3NAQFFFQUFBRUJWMEBBRUJWQ1N0cmluZ0BAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0lQQWRkcmVzcyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDSVBBZGRyZXNzOjpvcGVyYXRvcj0odW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/NENJUEFkZHJlc3NAQFFFQUFBRUJWMEBLQFoNCis7IHB1YmxpYzogY2xhc3MgQ0lQQWRkcmVzcyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDSVBBZGRyZXNzOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0lQQWRkcmVzc0BAUUVBQUFFQlYwQFBFQkdAWg0KKzsgcHVibGljOiBjbGFzcyBDTWV0YUJhY2sgJiBfX3B0cjY0IF9fY2RlY2wgQ01ldGFCYWNrOjpvcGVyYXRvcj0oY2xhc3MgQ01ldGFCYWNrICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENNZXRhQmFja0BAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENNZXRhRW51bWVyYXRvciAmIF9fcHRyNjQgX19jZGVjbCBDTWV0YUVudW1lcmF0b3I6Om9wZXJhdG9yPShjbGFzcyBDTWV0YUVudW1lcmF0b3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q01ldGFFbnVtZXJhdG9yQEBRRUFBQUVBVjBAQUVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ01ldGFJbnRlcmZhY2UgJiBfX3B0cjY0IF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6Om9wZXJhdG9yPShjbGFzcyBDTWV0YUludGVyZmFjZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTWV0YUludGVyZmFjZUBAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENNZXRhS2V5ICYgX19wdHI2NCBfX2NkZWNsIENNZXRhS2V5OjpvcGVyYXRvcj0oY2xhc3MgQ01ldGFLZXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q01ldGFLZXlAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTWV0YWJhc2VQYXRoICYgX19wdHI2NCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6Om9wZXJhdG9yPShjbGFzcyBDTWV0YWJhc2VQYXRoIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENNZXRhYmFzZVBhdGhAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDT2JqSGVscGVyICYgX19wdHI2NCBfX2NkZWNsIENPYmpIZWxwZXI6Om9wZXJhdG9yPShjbGFzcyBDT2JqSGVscGVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENPYmpIZWxwZXJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUk1DTGlzdEJveERyYXdTdHJ1Y3QgJiBfX3B0cjY0IF9fY2RlY2wgQ1JNQ0xpc3RCb3hEcmF3U3RydWN0OjpvcGVyYXRvcj0oY2xhc3MgQ1JNQ0xpc3RCb3hEcmF3U3RydWN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENSTUNMaXN0Qm94RHJhd1N0cnVjdEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTdHJQYXNzd29yZCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDU3RyUGFzc3dvcmQ6Om9wZXJhdG9yPShjbGFzcyBDU3RyUGFzc3dvcmQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1N0clBhc3N3b3JkQEBRRUFBQUVCVjBAQUVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0clBhc3N3b3JkIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENTdHJQYXNzd29yZDo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/NENTdHJQYXNzd29yZEBAUUVBQUFFQlYwQFBFQkdAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nTGlzdEV4ICYgX19wdHI2NCBfX2NkZWNsIENTdHJpbmdMaXN0RXg6Om9wZXJhdG9yPShjbGFzcyBDU3RyaW5nTGlzdEV4IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENTdHJpbmdMaXN0RXhAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nTGlzdEV4ICYgX19wdHI2NCBfX2NkZWNsIENTdHJpbmdMaXN0RXg6Om9wZXJhdG9yPShjbGFzcyBDU3RyaW5nTGlzdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDU3RyaW5nTGlzdEV4QEBRRUFBQUVBVjBAQUVCVkNTdHJpbmdMaXN0QEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2FtSW50ZXJmYWNlICYgX19wdHI2NCBfX2NkZWNsIENXYW1JbnRlcmZhY2U6Om9wZXJhdG9yPShjbGFzcyBDV2FtSW50ZXJmYWNlICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENXYW1JbnRlcmZhY2VAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQWNjZXNzRW50cnk6Om9wZXJhdG9yPT0oY2xhc3MgQ0FjY2Vzc0VudHJ5IGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OENBY2Nlc3NFbnRyeUBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQWNjZXNzRW50cnk6Om9wZXJhdG9yPT0odm9pZCAqIF9fcHRyNjQgY29uc3QpY29uc3QgIF9fcHRyNjQNCis/PzhDQWNjZXNzRW50cnlAQFFFQkFIUUVBWEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENCbG9iOjpvcGVyYXRvcj09KGNsYXNzIENCbG9iIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OENCbG9iQEBRRUJBSEFFQlYwQEBaDQorOyBwdWJsaWM6IGludCBjb25zdCAgX19jZGVjbCBDRXJyb3I6Om9wZXJhdG9yPT0oY2xhc3MgQ0Vycm9yICYgX19wdHI2NCkgX19wdHI2NA0KKz8/OENFcnJvckBAUUVBQT9CSEFFQVYwQEBaDQorOyBwdWJsaWM6IGludCBjb25zdCAgX19jZGVjbCBDRXJyb3I6Om9wZXJhdG9yPT0obG9uZykgX19wdHI2NA0KKz8/OENFcnJvckBAUUVBQT9CSEpAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSUxvbmc6Om9wZXJhdG9yPT0obG9uZykgX19wdHI2NA0KKz8/OENJTG9uZ0BAUUVBQUhKQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6b3BlcmF0b3I9PShjbGFzcyBDSVBBY2Nlc3NEZXNjcmlwdG9yIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OENJUEFjY2Vzc0Rlc2NyaXB0b3JAQFFFQkFIQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lQQWRkcmVzczo6b3BlcmF0b3I9PShjbGFzcyBDSVBBZGRyZXNzIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OENJUEFkZHJlc3NAQFFFQkFIQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lQQWRkcmVzczo6b3BlcmF0b3I9PSh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorPz84Q0lQQWRkcmVzc0BAUUVCQUhLQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTdHJQYXNzd29yZDo6b3BlcmF0b3I9PShjbGFzcyBDU3RyUGFzc3dvcmQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz84Q1N0clBhc3N3b3JkQEBRRUFBX05BRUFWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU3RyaW5nTGlzdEV4OjpvcGVyYXRvcj09KGNsYXNzIENTdHJpbmdMaXN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/OENTdHJpbmdMaXN0RXhAQFFFQUFIQUVCVkNTdHJpbmdMaXN0QEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQmxvYjo6b3BlcmF0b3IhPShjbGFzcyBDQmxvYiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzlDQmxvYkBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgY29uc3QgIF9fY2RlY2wgQ0Vycm9yOjpvcGVyYXRvciE9KGNsYXNzIENFcnJvciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzlDRXJyb3JAQFFFQUE/QkhBRUFWMEBAWg0KKzsgcHVibGljOiBpbnQgY29uc3QgIF9fY2RlY2wgQ0Vycm9yOjpvcGVyYXRvciE9KGxvbmcpIF9fcHRyNjQNCis/PzlDRXJyb3JAQFFFQUE/QkhKQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lMb25nOjpvcGVyYXRvciE9KGNsYXNzIENJTG9uZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzlDSUxvbmdAQFFFQUFIQUVBVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lQQWRkcmVzczo6b3BlcmF0b3IhPShjbGFzcyBDSVBBZGRyZXNzIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OUNJUEFkZHJlc3NAQFFFQkFIQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lQQWRkcmVzczo6b3BlcmF0b3IhPSh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorPz85Q0lQQWRkcmVzc0BAUUVCQUhLQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTdHJQYXNzd29yZDo6b3BlcmF0b3IhPShjbGFzcyBDU3RyUGFzc3dvcmQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz85Q1N0clBhc3N3b3JkQEBRRUFBX05BRUFWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU3RyaW5nTGlzdEV4OjpvcGVyYXRvciE9KGNsYXNzIENTdHJpbmdMaXN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/OUNTdHJpbmdMaXN0RXhAQFFFQUFIQUVCVkNTdHJpbmdMaXN0QEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENDb21BdXRoSW5mbzo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KHZvaWQpIF9fcHRyNjQNCis/P0JDQ29tQXV0aEluZm9AQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ29tQXV0aEluZm86Om9wZXJhdG9yIGNsYXNzIENDb21BdXRoSW5mbyAqIF9fcHRyNjQodm9pZCkgX19wdHI2NA0KKz8/QkNDb21BdXRoSW5mb0BAUUVBQVBFQVYwQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Vycm9yOjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQodm9pZCkgX19wdHI2NA0KKz8/QkNFcnJvckBAUUVBQVBFQUdYWg0KKzsgcHVibGljOiBfX2NkZWNsIENFcnJvcjo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KHZvaWQpIF9fcHRyNjQNCis/P0JDRXJyb3JAQFFFQUFQRUJHWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXJyb3I6Om9wZXJhdG9yIGludCBjb25zdCAodm9pZCljb25zdCAgX19wdHI2NA0KKz8/QkNFcnJvckBAUUVCQT9CSFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Vycm9yOjpvcGVyYXRvciBsb25nIGNvbnN0ICh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CQ0Vycm9yQEBRRUJBP0JKWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXJyb3I6Om9wZXJhdG9yIHVuc2lnbmVkIGxvbmcgY29uc3QgKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDRXJyb3JAQFFFQkE/QktYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJSVNJbnRlcmZhY2U6Om9wZXJhdG9yIGludCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CQ0lJU0ludGVyZmFjZUBAUUVCQUhYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJSVNJbnRlcmZhY2U6Om9wZXJhdG9yIGxvbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz8/QkNJSVNJbnRlcmZhY2VAQFFFQkFKWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSUxvbmc6Om9wZXJhdG9yIGxvbmcgY29uc3QgKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDSUxvbmdAQFFFQkE/QkpYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJTG9uZzo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDSUxvbmdAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSVBBZGRyZXNzOjpvcGVyYXRvciBjbGFzcyBDU3RyaW5nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDSVBBZGRyZXNzQEBRRUJBP0FWQ1N0cmluZ0BAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSVBBZGRyZXNzOjpvcGVyYXRvciB1bnNpZ25lZCBsb25nIGNvbnN0ICh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CQ0lQQWRkcmVzc0BAUUVCQT9CS1haDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lQQWRkcmVzczo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDSVBBZGRyZXNzQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFLZXk6Om9wZXJhdG9yIGludCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CQ01ldGFLZXlAQFFFQkFIWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0YUtleTo6b3BlcmF0b3IgdW5zaWduZWQgbG9uZyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CQ01ldGFLZXlAQFFFQkFLWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0YUtleTo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDTWV0YUtleUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhYmFzZVBhdGg6Om9wZXJhdG9yIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CQ01ldGFiYXNlUGF0aEBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBfX2NkZWNsIENPYmpIZWxwZXI6Om9wZXJhdG9yIGludCh2b2lkKSBfX3B0cjY0DQorPz9CQ09iakhlbHBlckBAUUVBQUhYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTdHJQYXNzd29yZDo6b3BlcmF0b3IgY2xhc3MgQ1N0cmluZyh2b2lkKSBfX3B0cjY0DQorPz9CQ1N0clBhc3N3b3JkQEBRRUFBP0FWQ1N0cmluZ0BAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0lMb25nICYgX19wdHI2NCBfX2NkZWNsIENJTG9uZzo6b3BlcmF0b3IqPShjbGFzcyBDSUxvbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz9YQ0lMb25nQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0lMb25nICYgX19wdHI2NCBfX2NkZWNsIENJTG9uZzo6b3BlcmF0b3IqPShsb25nKSBfX3B0cjY0DQorPz9YQ0lMb25nQEBRRUFBQUVBVjBASkBaDQorOyBwdWJsaWM6IGNsYXNzIENJTG9uZyAmIF9fcHRyNjQgX19jZGVjbCBDSUxvbmc6Om9wZXJhdG9yKj0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IGNvbnN0KSBfX3B0cjY0DQorPz9YQ0lMb25nQEBRRUFBQUVBVjBAUUVCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENJTG9uZyAmIF9fcHRyNjQgX19jZGVjbCBDSUxvbmc6Om9wZXJhdG9yKz0oY2xhc3MgQ0lMb25nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/WUNJTG9uZ0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJTG9uZyAmIF9fcHRyNjQgX19jZGVjbCBDSUxvbmc6Om9wZXJhdG9yKz0obG9uZykgX19wdHI2NA0KKz8/WUNJTG9uZ0BAUUVBQUFFQVYwQEpAWg0KKzsgcHVibGljOiBjbGFzcyBDSUxvbmcgJiBfX3B0cjY0IF9fY2RlY2wgQ0lMb25nOjpvcGVyYXRvcis9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBjb25zdCkgX19wdHI2NA0KKz8/WUNJTG9uZ0BAUUVBQUFFQVYwQFFFQkdAWg0KKzsgcHVibGljOiBjbGFzcyBDSUxvbmcgJiBfX3B0cjY0IF9fY2RlY2wgQ0lMb25nOjpvcGVyYXRvci09KGNsYXNzIENJTG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/P1pDSUxvbmdAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSUxvbmcgJiBfX3B0cjY0IF9fY2RlY2wgQ0lMb25nOjpvcGVyYXRvci09KGxvbmcpIF9fcHRyNjQNCis/P1pDSUxvbmdAQFFFQUFBRUFWMEBKQFoNCis7IHB1YmxpYzogY2xhc3MgQ0lMb25nICYgX19wdHI2NCBfX2NkZWNsIENJTG9uZzo6b3BlcmF0b3ItPSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgY29uc3QpIF9fcHRyNjQNCis/P1pDSUxvbmdAQFFFQUFBRUFWMEBRRUJHQFoNCis7IHB1YmxpYzogY2xhc3MgQ0lMb25nICYgX19wdHI2NCBfX2NkZWNsIENJTG9uZzo6b3BlcmF0b3IvPShjbGFzcyBDSUxvbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz9fMENJTG9uZ0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJTG9uZyAmIF9fcHRyNjQgX19jZGVjbCBDSUxvbmc6Om9wZXJhdG9yLz0obG9uZykgX19wdHI2NA0KKz8/XzBDSUxvbmdAQFFFQUFBRUFWMEBKQFoNCis7IHB1YmxpYzogY2xhc3MgQ0lMb25nICYgX19wdHI2NCBfX2NkZWNsIENJTG9uZzo6b3BlcmF0b3IvPSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgY29uc3QpIF9fcHRyNjQNCis/P18wQ0lMb25nQEBRRUFBQUVBVjBAUUVCR0BaDQorOyBjb25zdCAgQ0FjY2Vzc0VudHJ5OjpgdmZ0YWJsZSd7Zm9yIGBDT2JqSGVscGVyJ30NCis/P183Q0FjY2Vzc0VudHJ5QEA2QkNPYmpIZWxwZXJAQEANCis7IGNvbnN0ICBDQWNjZXNzRW50cnk6OmB2ZnRhYmxlJ3tmb3IgYENPYmplY3QnfQ0KKz8/XzdDQWNjZXNzRW50cnlAQDZCQ09iamVjdEBAQA0KKzsgY29uc3QgIENDb25maXJtRGxnOjpgdmZ0YWJsZScNCis/P183Q0NvbmZpcm1EbGdAQDZCQA0KKzsgY29uc3QgIENEaXJCcm93c2VEbGc6OmB2ZnRhYmxlJw0KKz8/XzdDRGlyQnJvd3NlRGxnQEA2QkANCis7IGNvbnN0ICBDRG93bkJ1dHRvbjo6YHZmdGFibGUnDQorPz9fN0NEb3duQnV0dG9uQEA2QkANCis7IGNvbnN0ICBDRW1waGFzaXplZERpYWxvZzo6YHZmdGFibGUnDQorPz9fN0NFbXBoYXNpemVkRGlhbG9nQEA2QkANCis7IGNvbnN0ICBDR2V0VXNlcnM6OmB2ZnRhYmxlJw0KKz8/XzdDR2V0VXNlcnNAQDZCQA0KKzsgY29uc3QgIENIZWFkZXJMaXN0Qm94OjpgdmZ0YWJsZSd7Zm9yIGBDTGlzdEJveCd9DQorPz9fN0NIZWFkZXJMaXN0Qm94QEA2QkNMaXN0Qm94QEBADQorOyBjb25zdCAgQ0hlYWRlckxpc3RCb3g6OmB2ZnRhYmxlJ3tmb3IgYENPRExCb3gnfQ0KKz8/XzdDSGVhZGVyTGlzdEJveEBANkJDT0RMQm94QEBADQorOyBjb25zdCAgQ0lJU0FwcFBvb2w6OmB2ZnRhYmxlJ3tmb3IgYENNZXRhS2V5J30NCis/P183Q0lJU0FwcFBvb2xAQDZCQ01ldGFLZXlAQEANCis7IGNvbnN0ICBDSUlTQXBwUG9vbDo6YHZmdGFibGUne2ZvciBgQ1dhbUludGVyZmFjZSd9DQorPz9fN0NJSVNBcHBQb29sQEA2QkNXYW1JbnRlcmZhY2VAQEANCis7IGNvbnN0ICBDSUlTQXBwbGljYXRpb246OmB2ZnRhYmxlJ3tmb3IgYENNZXRhS2V5J30NCis/P183Q0lJU0FwcGxpY2F0aW9uQEA2QkNNZXRhS2V5QEBADQorOyBjb25zdCAgQ0lJU0FwcGxpY2F0aW9uOjpgdmZ0YWJsZSd7Zm9yIGBDV2FtSW50ZXJmYWNlJ30NCis/P183Q0lJU0FwcGxpY2F0aW9uQEA2QkNXYW1JbnRlcmZhY2VAQEANCis7IGNvbnN0ICBDSUlTSW50ZXJmYWNlOjpgdmZ0YWJsZScNCis/P183Q0lJU0ludGVyZmFjZUBANkJADQorOyBjb25zdCAgQ0lJU1N2Y0NvbnRyb2w6OmB2ZnRhYmxlJw0KKz8/XzdDSUlTU3ZjQ29udHJvbEBANkJADQorOyBjb25zdCAgQ0lJU1dpemFyZEJvb2tFbmQ6OmB2ZnRhYmxlJw0KKz8/XzdDSUlTV2l6YXJkQm9va0VuZEBANkJADQorOyBjb25zdCAgQ0lJU1dpemFyZFBhZ2U6OmB2ZnRhYmxlJw0KKz8/XzdDSUlTV2l6YXJkUGFnZUBANkJADQorOyBjb25zdCAgQ0lJU1dpemFyZFNoZWV0OjpgdmZ0YWJsZScNCis/P183Q0lJU1dpemFyZFNoZWV0QEA2QkANCis7IGNvbnN0ICBDSVBBY2Nlc3NEZXNjcmlwdG9yOjpgdmZ0YWJsZSd7Zm9yIGBDT2JqSGVscGVyJ30NCis/P183Q0lQQWNjZXNzRGVzY3JpcHRvckBANkJDT2JqSGVscGVyQEBADQorOyBjb25zdCAgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6YHZmdGFibGUne2ZvciBgQ09iamVjdCd9DQorPz9fN0NJUEFjY2Vzc0Rlc2NyaXB0b3JAQDZCQ09iamVjdEBAQA0KKzsgY29uc3QgIENJUEFkZHJlc3M6OmB2ZnRhYmxlJ3tmb3IgYENPYmpIZWxwZXInfQ0KKz8/XzdDSVBBZGRyZXNzQEA2QkNPYmpIZWxwZXJAQEANCis7IGNvbnN0ICBDSVBBZGRyZXNzOjpgdmZ0YWJsZSd7Zm9yIGBDT2JqZWN0J30NCis/P183Q0lQQWRkcmVzc0BANkJDT2JqZWN0QEBADQorOyBjb25zdCAgQ0luaGVyaXRhbmNlRGxnOjpgdmZ0YWJsZScNCis/P183Q0luaGVyaXRhbmNlRGxnQEA2QkANCis7IGNvbnN0ICBDTWFwcGVkQml0bWFwQnV0dG9uOjpgdmZ0YWJsZScNCis/P183Q01hcHBlZEJpdG1hcEJ1dHRvbkBANkJADQorOyBjb25zdCAgQ01ldGFCYWNrOjpgdmZ0YWJsZSd7Zm9yIGBDTWV0YUludGVyZmFjZSd9DQorPz9fN0NNZXRhQmFja0BANkJDTWV0YUludGVyZmFjZUBAQA0KKzsgY29uc3QgIENNZXRhQmFjazo6YHZmdGFibGUne2ZvciBgQ1dhbUludGVyZmFjZSd9DQorPz9fN0NNZXRhQmFja0BANkJDV2FtSW50ZXJmYWNlQEBADQorOyBjb25zdCAgQ01ldGFFbnVtZXJhdG9yOjpgdmZ0YWJsZScNCis/P183Q01ldGFFbnVtZXJhdG9yQEA2QkANCis7IGNvbnN0ICBDTWV0YUludGVyZmFjZTo6YHZmdGFibGUnDQorPz9fN0NNZXRhSW50ZXJmYWNlQEA2QkANCis7IGNvbnN0ICBDTWV0YUtleTo6YHZmdGFibGUnDQorPz9fN0NNZXRhS2V5QEA2QkANCis7IGNvbnN0ICBDT0RMQm94OjpgdmZ0YWJsZScNCis/P183Q09ETEJveEBANkJADQorOyBjb25zdCAgQ09iTGlzdEl0ZXI6OmB2ZnRhYmxlJ3tmb3IgYENPYmpIZWxwZXInfQ0KKz8/XzdDT2JMaXN0SXRlckBANkJDT2JqSGVscGVyQEBADQorOyBjb25zdCAgQ09iTGlzdEl0ZXI6OmB2ZnRhYmxlJ3tmb3IgYENPYmplY3QnfQ0KKz8/XzdDT2JMaXN0SXRlckBANkJDT2JqZWN0QEBADQorOyBjb25zdCAgQ09iTGlzdFBsdXM6OmB2ZnRhYmxlJ3tmb3IgYENPYkxpc3QnfQ0KKz8/XzdDT2JMaXN0UGx1c0BANkJDT2JMaXN0QEBADQorOyBjb25zdCAgQ09iTGlzdFBsdXM6OmB2ZnRhYmxlJ3tmb3IgYENPYmpIZWxwZXInfQ0KKz8/XzdDT2JMaXN0UGx1c0BANkJDT2JqSGVscGVyQEBADQorOyBjb25zdCAgQ09iakhlbHBlcjo6YHZmdGFibGUnDQorPz9fN0NPYmpIZWxwZXJAQDZCQA0KKzsgY29uc3QgIENPYmplY3RQbHVzOjpgdmZ0YWJsZSd7Zm9yIGBDT2JqSGVscGVyJ30NCis/P183Q09iamVjdFBsdXNAQDZCQ09iakhlbHBlckBAQA0KKzsgY29uc3QgIENPYmplY3RQbHVzOjpgdmZ0YWJsZSd7Zm9yIGBDT2JqZWN0J30NCis/P183Q09iamVjdFBsdXNAQDZCQ09iamVjdEBAQA0KKzsgY29uc3QgIENSTUNDb21ib0JveDo6YHZmdGFibGUne2ZvciBgQ0NvbWJvQm94J30NCis/P183Q1JNQ0NvbWJvQm94QEA2QkNDb21ib0JveEBAQA0KKzsgY29uc3QgIENSTUNDb21ib0JveDo6YHZmdGFibGUne2ZvciBgQ09ETEJveCd9DQorPz9fN0NSTUNDb21ib0JveEBANkJDT0RMQm94QEBADQorOyBjb25zdCAgQ1JNQ0xpc3RCb3g6OmB2ZnRhYmxlJ3tmb3IgYENMaXN0Qm94J30NCis/P183Q1JNQ0xpc3RCb3hAQDZCQ0xpc3RCb3hAQEANCis7IGNvbnN0ICBDUk1DTGlzdEJveDo6YHZmdGFibGUne2ZvciBgQ09ETEJveCd9DQorPz9fN0NSTUNMaXN0Qm94QEA2QkNPRExCb3hAQEANCis7IGNvbnN0ICBDUk1DTGlzdEJveEhlYWRlcjo6YHZmdGFibGUnDQorPz9fN0NSTUNMaXN0Qm94SGVhZGVyQEA2QkANCis7IGNvbnN0ICBDU3RyaW5nTGlzdEV4OjpgdmZ0YWJsZScNCis/P183Q1N0cmluZ0xpc3RFeEBANkJADQorOyBjb25zdCAgQ1VwQnV0dG9uOjpgdmZ0YWJsZScNCis/P183Q1VwQnV0dG9uQEA2QkANCis7IGNvbnN0ICBDV2FtSW50ZXJmYWNlOjpgdmZ0YWJsZScNCis/P183Q1dhbUludGVyZmFjZUBANkJADQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29tQXV0aEluZm86OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GQ0NvbUF1dGhJbmZvQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29uZmlybURsZzo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDQ29uZmlybURsZ0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RpckJyb3dzZURsZzo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDRGlyQnJvd3NlRGxnQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSGVhZGVyTGlzdEJveDo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDSGVhZGVyTGlzdEJveEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0lJU1dpemFyZEJvb2tFbmQ6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GQ0lJU1dpemFyZEJvb2tFbmRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJSVNXaXphcmRQYWdlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNJSVNXaXphcmRQYWdlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSUlTV2l6YXJkU2hlZXQ6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GQ0lJU1dpemFyZFNoZWV0QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSVBBY2Nlc3NEZXNjcmlwdG9yOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNJUEFjY2Vzc0Rlc2NyaXB0b3JAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GQ01ldGFiYXNlUGF0aEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ09iTGlzdFBsdXM6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GQ09iTGlzdFBsdXNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSTUNMaXN0Qm94SGVhZGVyOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNSTUNMaXN0Qm94SGVhZGVyQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RyaW5nTGlzdEV4OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNTdHJpbmdMaXN0RXhAQFFFQUFYWFoNCis7IHZvaWQgX19jZGVjbCBBY3RpdmF0ZUNvbnRyb2woY2xhc3MgQ1duZCAmIF9fcHRyNjQsaW50KQ0KKz9BY3RpdmF0ZUNvbnRyb2xAQFlBWEFFQVZDV25kQEBIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpBZGRLZXkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkS2V5QENNZXRhSW50ZXJmYWNlQEBJRUFBSktQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpBZGRLZXkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEtleUBDTWV0YUtleUBAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgQ0Vycm9yOjpBZGRPdmVycmlkZShsb25nLHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9BZGRPdmVycmlkZUBDRXJyb3JAQFFFQUFJSklAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0FjY2Vzc0VudHJ5OjpBZGRQZXJtaXNzaW9ucyh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FkZFBlcm1pc3Npb25zQENBY2Nlc3NFbnRyeUBAUUVBQVhLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ09ETEJveDo6QWRkVGFiKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9BZGRUYWJAQ09ETEJveEBAUUVBQUhJQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ09ETEJveDo6QWRkVGFiRnJvbUhlYWRlcnMoY2xhc3MgQ1duZCAmIF9fcHRyNjQsY2xhc3MgQ1duZCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkVGFiRnJvbUhlYWRlcnNAQ09ETEJveEBAUUVBQUhBRUFWQ1duZEBAMEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENPRExCb3g6OkFkZFRhYkZyb21IZWFkZXJzKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/QWRkVGFiRnJvbUhlYWRlcnNAQ09ETEJveEBAUUVBQUhJSUBaDQorOyBjaGFyICogX19wdHI2NCBfX2NkZWNsIEFsbG9jQW5zaVN0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0FsbG9jQW5zaVN0cmluZ0BAWUFQRUFEUEVCR0BaDQorOyB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBBbGxvY1N0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KQ0KKz9BbGxvY1N0cmluZ0BAWUFQRUFHUEVCR0hAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0lOdW1iZXI6OkFsbG9jYXRlKHZvaWQpDQorP0FsbG9jYXRlQENJTnVtYmVyQEBLQUhYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0Vycm9yOjpBbGxvY2F0ZVN0YXRpY3Modm9pZCkNCis/QWxsb2NhdGVTdGF0aWNzQENFcnJvckBAS0FIWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENXYW1JbnRlcmZhY2U6OkFwcENyZWF0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BcHBDcmVhdGVAQ1dhbUludGVyZmFjZUBASUVBQUpQRUJHS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpBcHBEZWxldGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9BcHBEZWxldGVAQ1dhbUludGVyZmFjZUBASUVBQUpQRUJHSEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpBcHBEZWxldGVSZWNvdmVyYWJsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0FwcERlbGV0ZVJlY292ZXJhYmxlQENXYW1JbnRlcmZhY2VAQElFQUFKUEVCR0hAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ1dhbUludGVyZmFjZTo6QXBwR2V0U3RhdHVzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBHZXRTdGF0dXNAQ1dhbUludGVyZmFjZUBASUVBQUpQRUJHUEVBS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpBcHBSZWNvdmVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/QXBwUmVjb3ZlckBDV2FtSW50ZXJmYWNlQEBJRUFBSlBFQkdIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENXYW1JbnRlcmZhY2U6OkFwcFVuTG9hZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0FwcFVuTG9hZEBDV2FtSW50ZXJmYWNlQEBJRUFBSlBFQkdIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OkFwcGVuZFBhdGgodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BcHBlbmRQYXRoQENNZXRhYmFzZVBhdGhAQElFQUFYS0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpBcHBlbmRQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRQYXRoQENNZXRhYmFzZVBhdGhAQElFQUFYUEVCR0BaDQorOyBjbGFzcyBDU3RyaW5nICBfX2NkZWNsIEFwcGVuZFRvRGV2aWNlUGF0aChjbGFzcyBDU3RyaW5nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/QXBwZW5kVG9EZXZpY2VQYXRoQEBZQT9BVkNTdHJpbmdAQFYxQFBFQkdAWg0KKzsgdm9pZCBfX2NkZWNsIEFwcGx5Rm9udFRvQ29udHJvbHMoY2xhc3MgQ1duZCAqIF9fcHRyNjQsY2xhc3MgQ0ZvbnQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP0FwcGx5Rm9udFRvQ29udHJvbHNAQFlBWFBFQVZDV25kQEBQRUFWQ0ZvbnRAQElJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENDb21BdXRoSW5mbzo6QXBwbHlQcm94eUJsYW5rZXQoc3RydWN0IElVbmtub3duICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBseVByb3h5QmxhbmtldEBDQ29tQXV0aEluZm9AQFFFQUFKUEVBVUlVbmtub3duQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjpBcHBseVByb3h5QmxhbmtldChzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QXBwbHlQcm94eUJsYW5rZXRAQ0NvbUF1dGhJbmZvQEBRRUFBSlBFQVVJVW5rbm93bkBAS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENJSVNTdmNDb250cm9sOjpBcHBseVByb3h5QmxhbmtldCh2b2lkKSBfX3B0cjY0DQorP0FwcGx5UHJveHlCbGFua2V0QENJSVNTdmNDb250cm9sQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENNZXRhQmFjazo6QXBwbHlQcm94eUJsYW5rZXQodm9pZCkgX19wdHI2NA0KKz9BcHBseVByb3h5QmxhbmtldEBDTWV0YUJhY2tAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkFwcGx5UHJveHlCbGFua2V0KHZvaWQpIF9fcHRyNjQNCis/QXBwbHlQcm94eUJsYW5rZXRAQ01ldGFJbnRlcmZhY2VAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1dhbUludGVyZmFjZTo6QXBwbHlQcm94eUJsYW5rZXQodm9pZCkgX19wdHI2NA0KKz9BcHBseVByb3h5QmxhbmtldEBDV2FtSW50ZXJmYWNlQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBpbnQgX19jZGVjbCBDRXJyb3I6OkFyZVN0YXRpY3NBbGxvY2F0ZWQodm9pZCkNCis/QXJlU3RhdGljc0FsbG9jYXRlZEBDRXJyb3JAQEtBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDT0RMQm94OjpBdHRhY2hSZXNvdXJjZXMoY2xhc3MgQ1JNQ0xpc3RCb3hSZXNvdXJjZXMgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0F0dGFjaFJlc291cmNlc0BDT0RMQm94QEBRRUFBWFBFQlZDUk1DTGlzdEJveFJlc291cmNlc0BAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENPRExCb3g6OkF0dGFjaFdpbmRvdyhjbGFzcyBDV25kICogX19wdHI2NCkgX19wdHI2NA0KKz9BdHRhY2hXaW5kb3dAQ09ETEJveEBASUVBQVhQRUFWQ1duZEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhQmFjazo6QmFja3VwKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9CYWNrdXBAQ01ldGFCYWNrQEBRRUFBSlBFQkdAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkJhY2t1cCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0JhY2t1cEBDTWV0YUludGVyZmFjZUBASUVBQUpQRUJHS0tAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFCYWNrOjpCYWNrdXBXaXRoUGFzc3dvcmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9CYWNrdXBXaXRoUGFzc3dvcmRAQ01ldGFCYWNrQEBRRUFBSlBFQkcwQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpCYWNrdXBXaXRoUGFzc3dvcmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QmFja3VwV2l0aFBhc3N3b3JkQENNZXRhSW50ZXJmYWNlQEBJRUFBSlBFQkdLSzBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUk1DTGlzdEJveFJlc291cmNlczo6Qml0bWFwSGVpZ2h0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Qml0bWFwSGVpZ2h0QENSTUNMaXN0Qm94UmVzb3VyY2VzQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENSTUNMaXN0Qm94UmVzb3VyY2VzOjpCaXRtYXBXaWR0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0JpdG1hcFdpZHRoQENSTUNMaXN0Qm94UmVzb3VyY2VzQEBRRUJBSFhaDQorOyBpbnQgX19jZGVjbCBCdWlsZEFjbEJsb2IoY2xhc3MgQ09iTGlzdFBsdXMgJiBfX3B0cjY0LGNsYXNzIENCbG9iICYgX19wdHI2NCkNCis/QnVpbGRBY2xCbG9iQEBZQUhBRUFWQ09iTGlzdFBsdXNAQEFFQVZDQmxvYkBAQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBCdWlsZEFjbE9ibGlzdEZyb21CbG9iKGNsYXNzIENCbG9iICYgX19wdHI2NCxjbGFzcyBDT2JMaXN0UGx1cyAmIF9fcHRyNjQpDQorP0J1aWxkQWNsT2JsaXN0RnJvbUJsb2JAQFlBS0FFQVZDQmxvYkBAQUVBVkNPYkxpc3RQbHVzQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgQ0lOdW1iZXI6OkJ1aWxkRmxvYXQobG9uZyxsb25nKQ0KKz9CdWlsZEZsb2F0QENJTnVtYmVyQEBTQU5KSkBaDQorOyB2b2lkIF9fY2RlY2wgQnVpbGRJcGxCbG9iKGNsYXNzIENPYkxpc3RQbHVzICYgX19wdHI2NCxpbnQsY2xhc3MgQ0Jsb2IgJiBfX3B0cjY0KQ0KKz9CdWlsZElwbEJsb2JAQFlBWEFFQVZDT2JMaXN0UGx1c0BASEFFQVZDQmxvYkBAQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBCdWlsZElwbE9ibGlzdEZyb21CbG9iKGNsYXNzIENCbG9iICYgX19wdHI2NCxjbGFzcyBDT2JMaXN0UGx1cyAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCkNCis/QnVpbGRJcGxPYmxpc3RGcm9tQmxvYkBAWUFLQUVBVkNCbG9iQEBBRUFWQ09iTGlzdFBsdXNAQEFFQUhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6QnVpbGRNZXRhUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QnVpbGRNZXRhUGF0aEBDTWV0YWJhc2VQYXRoQEBJRUFBWFBFQkcwMDBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6QnVpbGRNZXRhUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0J1aWxkTWV0YVBhdGhAQ01ldGFiYXNlUGF0aEBASUVBQVhQRUJHSzAwQFoNCis7IGludCBfX2NkZWNsIENTdHJpbmdGaW5kTm9DYXNlKGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/Q1N0cmluZ0ZpbmROb0Nhc2VAQFlBSEFFQlZDU3RyaW5nQEBQRUJHQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENPRExCb3g6OkNhbGN1bGF0ZVRleHRIZWlnaHQoY2xhc3MgQ0ZvbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NhbGN1bGF0ZVRleHRIZWlnaHRAQ09ETEJveEBASUVBQVhQRUFWQ0ZvbnRAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENPRExCb3g6OkNoYW5nZUZvbnQoY2xhc3MgQ0ZvbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoYW5nZUZvbnRAQ09ETEJveEBAUUVBQUhQRUFWQ0ZvbnRAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENJSVNJbnRlcmZhY2U6OkNoYW5nZVByb3h5QmxhbmtldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoYW5nZVByb3h5QmxhbmtldEBDSUlTSW50ZXJmYWNlQEBVRUFBSlBFQkcwQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpDaGVja0Rlc2NlbmRhbnRzKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0NvbUF1dGhJbmZvICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2hlY2tEZXNjZW5kYW50c0BDTWV0YUtleUBAUUVBQUpLUEVBVkNDb21BdXRoSW5mb0BAUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0IF9fY2RlY2wgQ0luaGVyaXRhbmNlRGxnOjpDbGVhbkRlc2NlbmRhbnRQYXRoKGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NsZWFuRGVzY2VuZGFudFBhdGhAQ0luaGVyaXRhbmNlRGxnQEBJRUFBQUVBVkNTdHJpbmdAQEFFQVYyQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpDbGVhbk1ldGFQYXRoKGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0KQ0KKz9DbGVhbk1ldGFQYXRoQENNZXRhYmFzZVBhdGhAQFNBUEVCR0FFQVZDU3RyaW5nQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Jsb2I6OkNsZWFuVXAodm9pZCkgX19wdHI2NA0KKz9DbGVhblVwQENCbG9iQEBRRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1N0clBhc3N3b3JkOjpDbGVhclBhc3N3b3JkQnVmZmVycyh2b2lkKSBfX3B0cjY0DQorP0NsZWFyUGFzc3dvcmRCdWZmZXJzQENTdHJQYXNzd29yZEBAQUVBQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OkNsb3NlKHZvaWQpIF9fcHRyNjQNCis/Q2xvc2VAQ01ldGFLZXlAQFFFQUFKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpDbG9zZUtleSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0Nsb3NlS2V5QENNZXRhSW50ZXJmYWNlQEBJRUFBSktAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1JNQ0xpc3RCb3hSZXNvdXJjZXM6OkNvbG9ySGlnaGxpZ2h0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29sb3JIaWdobGlnaHRAQ1JNQ0xpc3RCb3hSZXNvdXJjZXNAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSTUNMaXN0Qm94UmVzb3VyY2VzOjpDb2xvckhpZ2hsaWdodFRleHQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db2xvckhpZ2hsaWdodFRleHRAQ1JNQ0xpc3RCb3hSZXNvdXJjZXNAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSTUNMaXN0Qm94UmVzb3VyY2VzOjpDb2xvcldpbmRvdyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvbG9yV2luZG93QENSTUNMaXN0Qm94UmVzb3VyY2VzQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUk1DTGlzdEJveFJlc291cmNlczo6Q29sb3JXaW5kb3dUZXh0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29sb3JXaW5kb3dUZXh0QENSTUNMaXN0Qm94UmVzb3VyY2VzQEBRRUJBS1haDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENPRExCb3g6OkNvbHVtblRleHQoY2xhc3MgQ1JNQ0xpc3RCb3hEcmF3U3RydWN0ICYgX19wdHI2NCxpbnQsaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Db2x1bW5UZXh0QENPRExCb3hAQElFQUFIQUVBVkNSTUNMaXN0Qm94RHJhd1N0cnVjdEBASEhQRUJHQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX2NkZWNsIENPRExCb3g6OkNvbHVtblRleHQoY2xhc3MgQ0RDICogX19wdHI2NCxpbnQsaW50LGludCxpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9Db2x1bW5UZXh0QENPRExCb3hAQEtBSFBFQVZDRENAQEhISEhQRUJHQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6Q29tbW9uQ29uc3RydWN0KHZvaWQpIF9fcHRyNjQNCis/Q29tbW9uQ29uc3RydWN0QENJSVNBcHBsaWNhdGlvbkBASUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENPYmplY3RQbHVzOjpDb21wYXJlKGNsYXNzIENPYmplY3RQbHVzIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db21wYXJlQENPYmplY3RQbHVzQEBVRUJBSFBFQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTdHJQYXNzd29yZDo6Q29tcGFyZShjbGFzcyBDU3RyUGFzc3dvcmQgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0NvbXBhcmVAQ1N0clBhc3N3b3JkQEBRRUJBSEFFQVYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTdHJQYXNzd29yZDo6Q29tcGFyZShjbGFzcyBDU3RyaW5nICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db21wYXJlQENTdHJQYXNzd29yZEBAUUVCQUhBRUFWQ1N0cmluZ0BAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1N0clBhc3N3b3JkOjpDb21wYXJlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db21wYXJlQENTdHJQYXNzd29yZEBAUUVCQUhQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lQQWRkcmVzczo6Q29tcGFyZUl0ZW0oY2xhc3MgQ0lQQWRkcmVzcyBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q29tcGFyZUl0ZW1AQ0lQQWRkcmVzc0BAUUVCQUhBRUJWMUBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ09ETEJveDo6Q29tcHV0ZU1hcmdpbnMoY2xhc3MgQ1JNQ0xpc3RCb3hEcmF3U3RydWN0ICYgX19wdHI2NCxpbnQsaW50ICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbXB1dGVNYXJnaW5zQENPRExCb3hAQElFQUFYQUVBVkNSTUNMaXN0Qm94RHJhd1N0cnVjdEBASEFFQUgxQFoNCis7IHByb3RlY3RlZDogY2xhc3MgQ0Vycm9yIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENFcnJvcjo6Q29uc3RydWN0KGNsYXNzIENFcnJvciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29uc3RydWN0QENFcnJvckBASUVBQUFFQlYxQEFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIENFcnJvciBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDRXJyb3I6OkNvbnN0cnVjdChsb25nKSBfX3B0cjY0DQorP0NvbnN0cnVjdEBDRXJyb3JAQElFQUFBRUJWMUBKQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDb252ZXJ0RG91YmxlTnVsbExpc3RUb1N0cmluZ0xpc3QodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENTdHJpbmdMaXN0ICYgX19wdHI2NCxpbnQpDQorP0NvbnZlcnREb3VibGVOdWxsTGlzdFRvU3RyaW5nTGlzdEBAWUFLUEVCR0FFQVZDU3RyaW5nTGlzdEBASEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSU51bWJlcjo6Q29udmVydEZsb2F0VG9TdHJpbmcoZG91YmxlLGludCxjbGFzcyBDU3RyaW5nICYgX19wdHI2NCkNCis/Q29udmVydEZsb2F0VG9TdHJpbmdAQ0lOdW1iZXJAQFNBUEVCR05IQUVBVkNTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSU51bWJlcjo6Q29udmVydExvbmdUb1N0cmluZyhsb25nLGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0KQ0KKz9Db252ZXJ0TG9uZ1RvU3RyaW5nQENJTnVtYmVyQEBTQVBFQkdKQUVBVkNTdHJpbmdAQEBaDQorOyBpbnQgX19jZGVjbCBDb252ZXJ0U2VwTGluZVRvU3RyaW5nTGlzdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1N0cmluZ0xpc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/Q29udmVydFNlcExpbmVUb1N0cmluZ0xpc3RAQFlBSFBFQkdBRUFWQ1N0cmluZ0xpc3RAQDBAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENvbnZlcnRTdHJpbmdMaXN0VG9Eb3VibGVOdWxsTGlzdChjbGFzcyBDU3RyaW5nTGlzdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICYgX19wdHI2NCkNCis/Q29udmVydFN0cmluZ0xpc3RUb0RvdWJsZU51bGxMaXN0QEBZQUtBRUFWQ1N0cmluZ0xpc3RAQEFFQUtBRUFQRUFHQFoNCis7IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENvbnZlcnRTdHJpbmdMaXN0VG9TZXBMaW5lKGNsYXNzIENTdHJpbmdMaXN0ICYgX19wdHI2NCxjbGFzcyBDU3RyaW5nICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0NvbnZlcnRTdHJpbmdMaXN0VG9TZXBMaW5lQEBZQVBFQkdBRUFWQ1N0cmluZ0xpc3RAQEFFQVZDU3RyaW5nQEBQRUJHQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENJTnVtYmVyOjpDb252ZXJ0U3RyaW5nVG9GbG9hdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsZG91YmxlICYgX19wdHI2NCkNCis/Q29udmVydFN0cmluZ1RvRmxvYXRAQ0lOdW1iZXJAQFNBSFBFQkdBRUFOQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENJTnVtYmVyOjpDb252ZXJ0U3RyaW5nVG9Mb25nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nICYgX19wdHI2NCkNCis/Q29udmVydFN0cmluZ1RvTG9uZ0BDSU51bWJlckBAU0FIUEVCR0FFQUpAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OkNvbnZlcnRUb1BhcmVudFBhdGgoaW50KSBfX3B0cjY0DQorP0NvbnZlcnRUb1BhcmVudFBhdGhAQ01ldGFLZXlAQFFFQUFKSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpDb252ZXJ0VG9QYXJlbnRQYXRoKGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0KQ0KKz9Db252ZXJ0VG9QYXJlbnRQYXRoQENNZXRhYmFzZVBhdGhAQFNBUEVCR0FFQVZDU3RyaW5nQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkNvcHlEYXRhKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz9Db3B5RGF0YUBDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR0swS0tLSEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6Q29weUtleSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQsaW50KSBfX3B0cjY0DQorP0NvcHlLZXlAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdLMEhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdHJQYXNzd29yZDo6Q29weVRvKGNsYXNzIENTdHJQYXNzd29yZCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weVRvQENTdHJQYXNzd29yZEBAUUVBQVhBRUFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0clBhc3N3b3JkOjpDb3B5VG8oY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weVRvQENTdHJQYXNzd29yZEBAUUVBQVhBRUFWQ1N0cmluZ0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNBcHBQb29sOjpDcmVhdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZUBDSUlTQXBwUG9vbEBAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6Q3JlYXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NyZWF0ZUBDSUlTQXBwbGljYXRpb25AQFFFQUFKUEVCR0tAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ0lJU0ludGVyZmFjZTo6Q3JlYXRlKGludCxzdHJ1Y3QgX0dVSUQgY29uc3QgKiBfX3B0cjY0IGNvbnN0LHN0cnVjdCBfR1VJRCBjb25zdCAqIF9fcHRyNjQgY29uc3QsaW50ICogX19wdHI2NCxzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVAQ0lJU0ludGVyZmFjZUBASUVBQUpIUUVCVV9HVUlEQEAwUEVBSFBFQVBFQVVJVW5rbm93bkBAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENJSVNTdmNDb250cm9sOjpDcmVhdGUodm9pZCkgX19wdHI2NA0KKz9DcmVhdGVAQ0lJU1N2Y0NvbnRyb2xAQElFQUFKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpDcmVhdGUodm9pZCkgX19wdHI2NA0KKz9DcmVhdGVAQ01ldGFJbnRlcmZhY2VAQElFQUFKWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1JNQ0xpc3RCb3hIZWFkZXI6OkNyZWF0ZSh1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdSRUNUIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBDV25kICogX19wdHI2NCxjbGFzcyBDSGVhZGVyTGlzdEJveCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0NyZWF0ZUBDUk1DTGlzdEJveEhlYWRlckBAUUVBQUhLQUVCVXRhZ1JFQ1RAQFBFQVZDV25kQEBQRUFWQ0hlYWRlckxpc3RCb3hAQElAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ1dhbUludGVyZmFjZTo6Q3JlYXRlKHZvaWQpIF9fcHRyNjQNCis/Q3JlYXRlQENXYW1JbnRlcmZhY2VAQElFQUFKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENXYW1JbnRlcmZhY2U6OkNyZWF0ZUFwcGxpY2F0aW9uKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/Q3JlYXRlQXBwbGljYXRpb25AQ1dhbUludGVyZmFjZUBASUVBQUpQRUJHSzBIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENXYW1JbnRlcmZhY2U6OkNyZWF0ZUFwcGxpY2F0aW9uUG9vbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q3JlYXRlQXBwbGljYXRpb25Qb29sQENXYW1JbnRlcmZhY2VAQElFQUFKUEVCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBDT2JqZWN0ICogX19wdHI2NCBfX2NkZWNsIENFbXBoYXNpemVkRGlhbG9nOjpDcmVhdGVPYmplY3Qodm9pZCkNCis/Q3JlYXRlT2JqZWN0QENFbXBoYXNpemVkRGlhbG9nQEBTQVBFQVZDT2JqZWN0QEBYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ09iamVjdCAqIF9fcHRyNjQgX19jZGVjbCBDSUlTV2l6YXJkQm9va0VuZDo6Q3JlYXRlT2JqZWN0KHZvaWQpDQorP0NyZWF0ZU9iamVjdEBDSUlTV2l6YXJkQm9va0VuZEBAU0FQRUFWQ09iamVjdEBAWFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIENPYmplY3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0lJU1dpemFyZFBhZ2U6OkNyZWF0ZU9iamVjdCh2b2lkKQ0KKz9DcmVhdGVPYmplY3RAQ0lJU1dpemFyZFBhZ2VAQFNBUEVBVkNPYmplY3RAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBDT2JqZWN0ICogX19wdHI2NCBfX2NkZWNsIENJSVNXaXphcmRTaGVldDo6Q3JlYXRlT2JqZWN0KHZvaWQpDQorP0NyZWF0ZU9iamVjdEBDSUlTV2l6YXJkU2hlZXRAQFNBUEVBVkNPYmplY3RAQFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6Q3JlYXRlUGF0aEZyb21GYWlsZWRPcGVuKHZvaWQpIF9fcHRyNjQNCis/Q3JlYXRlUGF0aEZyb21GYWlsZWRPcGVuQENNZXRhS2V5QEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSUlTQXBwbGljYXRpb246OkNyZWF0ZVBvb2xlZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0NyZWF0ZVBvb2xlZEBDSUlTQXBwbGljYXRpb25AQFFFQUFKUEVCR0swSEBaDQorOyBwdWJsaWM6IHN0cnVjdCBfQ09TRVJWRVJJTkZPICogX19wdHI2NCBfX2NkZWNsIENDb21BdXRoSW5mbzo6Q3JlYXRlU2VydmVySW5mb1N0cnVjdCh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP0NyZWF0ZVNlcnZlckluZm9TdHJ1Y3RAQ0NvbUF1dGhJbmZvQEBRRUJBUEVBVV9DT1NFUlZFUklORk9AQEtAWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0NPU0VSVkVSSU5GTyAqIF9fcHRyNjQgX19jZGVjbCBDQ29tQXV0aEluZm86OkNyZWF0ZVNlcnZlckluZm9TdHJ1Y3Qodm9pZCljb25zdCAgX19wdHI2NA0KKz9DcmVhdGVTZXJ2ZXJJbmZvU3RydWN0QENDb21BdXRoSW5mb0BAUUVCQVBFQVVfQ09TRVJWRVJJTkZPQEBYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkNyZWF0ZVNpdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZVNpdGVAQ01ldGFJbnRlcmZhY2VAQFFFQUFKUEVCRzAwMFBFQUsxQFoNCis7IGludCBfX2NkZWNsIENyZWF0ZVNwZWNpYWxEaWFsb2dGb250KGNsYXNzIENXbmQgKiBfX3B0cjY0LGNsYXNzIENGb250ICogX19wdHI2NCxsb25nLGxvbmcsbG9uZyxpbnQsaW50KQ0KKz9DcmVhdGVTcGVjaWFsRGlhbG9nRm9udEBAWUFIUEVBVkNXbmRAQFBFQVZDRm9udEBASkpKSEhAWg0KKzsgaW50IF9fY2RlY2wgQ3Z0R01UU3RyaW5nVG9JbnRlcm5hbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsX19pbnQ2NCAqIF9fcHRyNjQpDQorP0N2dEdNVFN0cmluZ1RvSW50ZXJuYWxAQFlBSFBFQkdQRUFfSkBaDQorOyB2b2lkIF9fY2RlY2wgQ3Z0SW50ZXJuYWxUb0dNVFN0cmluZyhfX2ludDY0LGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0KQ0KKz9DdnRJbnRlcm5hbFRvR01UU3RyaW5nQEBZQVhfSkFFQVZDU3RyaW5nQEBAWg0KKzsgaW50IF9fY2RlY2wgQ3Z0U3RyaW5nVG9Mb25nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkNCis/Q3Z0U3RyaW5nVG9Mb25nQEBZQUhQRUJHUEVBS0BaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ0Vycm9yOjpDdnRUb0ludGVybmFsRm9ybWF0KGxvbmcpDQorP0N2dFRvSW50ZXJuYWxGb3JtYXRAQ0Vycm9yQEBLQUpKQFoNCis7IHZvaWQgX19jZGVjbCBERFZfRmlsZVBhdGgoY2xhc3MgQ0RhdGFFeGNoYW5nZSAqIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQsaW50KQ0KKz9ERFZfRmlsZVBhdGhAQFlBWFBFQVZDRGF0YUV4Y2hhbmdlQEBBRUFWQ1N0cmluZ0BASEBaDQorOyB2b2lkIF9fY2RlY2wgRERWX0ZvbGRlclBhdGgoY2xhc3MgQ0RhdGFFeGNoYW5nZSAqIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQsaW50KQ0KKz9ERFZfRm9sZGVyUGF0aEBAWUFYUEVBVkNEYXRhRXhjaGFuZ2VAQEFFQVZDU3RyaW5nQEBIQFoNCis7IHZvaWQgX19jZGVjbCBERFZfTWF4Q2hhcnNCYWxsb29uKGNsYXNzIENEYXRhRXhjaGFuZ2UgKiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0LGludCkNCis/RERWX01heENoYXJzQmFsbG9vbkBAWUFYUEVBVkNEYXRhRXhjaGFuZ2VAQEFFQlZDU3RyaW5nQEBIQFoNCis7IHZvaWQgX19jZGVjbCBERFZfTWF4Q2hhcnNCYWxsb29uX1NlY3VyZWRTdHJpbmcoY2xhc3MgQ0RhdGFFeGNoYW5nZSAqIF9fcHRyNjQsY2xhc3MgQ1N0clBhc3N3b3JkIGNvbnN0ICYgX19wdHI2NCxpbnQpDQorP0REVl9NYXhDaGFyc0JhbGxvb25fU2VjdXJlZFN0cmluZ0BAWUFYUEVBVkNEYXRhRXhjaGFuZ2VAQEFFQlZDU3RyUGFzc3dvcmRAQEhAWg0KKzsgdm9pZCBfX2NkZWNsIEREVl9NYXhDaGFyc19TZWN1cmVkU3RyaW5nKGNsYXNzIENEYXRhRXhjaGFuZ2UgKiBfX3B0cjY0LGNsYXNzIENTdHJQYXNzd29yZCBjb25zdCAmIF9fcHRyNjQsaW50KQ0KKz9ERFZfTWF4Q2hhcnNfU2VjdXJlZFN0cmluZ0BAWUFYUEVBVkNEYXRhRXhjaGFuZ2VAQEFFQlZDU3RyUGFzc3dvcmRAQEhAWg0KKzsgdm9pZCBfX2NkZWNsIEREVl9NaW5DaGFycyhjbGFzcyBDRGF0YUV4Y2hhbmdlICogX19wdHI2NCxjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCxpbnQpDQorP0REVl9NaW5DaGFyc0BAWUFYUEVBVkNEYXRhRXhjaGFuZ2VAQEFFQlZDU3RyaW5nQEBIQFoNCis7IHZvaWQgX19jZGVjbCBERFZfTWluQ2hhcnNfU2VjdXJlZFN0cmluZyhjbGFzcyBDRGF0YUV4Y2hhbmdlICogX19wdHI2NCxjbGFzcyBDU3RyUGFzc3dvcmQgY29uc3QgJiBfX3B0cjY0LGludCkNCis/RERWX01pbkNoYXJzX1NlY3VyZWRTdHJpbmdAQFlBWFBFQVZDRGF0YUV4Y2hhbmdlQEBBRUJWQ1N0clBhc3N3b3JkQEBIQFoNCis7IHZvaWQgX19jZGVjbCBERFZfTWluTWF4QmFsbG9vbihjbGFzcyBDRGF0YUV4Y2hhbmdlICogX19wdHI2NCxpbnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9ERFZfTWluTWF4QmFsbG9vbkBAWUFYUEVBVkNEYXRhRXhjaGFuZ2VAQEhLS0BaDQorOyB2b2lkIF9fY2RlY2wgRERWX01pbk1heENoYXJzKGNsYXNzIENEYXRhRXhjaGFuZ2UgKiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0LGludCxpbnQpDQorP0REVl9NaW5NYXhDaGFyc0BAWUFYUEVBVkNEYXRhRXhjaGFuZ2VAQEFFQlZDU3RyaW5nQEBISEBaDQorOyB2b2lkIF9fY2RlY2wgRERWX01pbk1heENoYXJzX1NlY3VyZWRTdHJpbmcoY2xhc3MgQ0RhdGFFeGNoYW5nZSAqIF9fcHRyNjQsY2xhc3MgQ1N0clBhc3N3b3JkIGNvbnN0ICYgX19wdHI2NCxpbnQsaW50KQ0KKz9ERFZfTWluTWF4Q2hhcnNfU2VjdXJlZFN0cmluZ0BAWUFYUEVBVkNEYXRhRXhjaGFuZ2VAQEFFQlZDU3RyUGFzc3dvcmRAQEhIQFoNCis7IHZvaWQgX19jZGVjbCBERFZfTWluTWF4U3BpbihjbGFzcyBDRGF0YUV4Y2hhbmdlICogX19wdHI2NCxzdHJ1Y3QgSFdORF9fICogX19wdHI2NCxpbnQsaW50KQ0KKz9ERFZfTWluTWF4U3BpbkBAWUFYUEVBVkNEYXRhRXhjaGFuZ2VAQFBFQVVIV05EX19AQEhIQFoNCis7IHZvaWQgX19jZGVjbCBERFZfU2hvd0JhbGxvb25BbmRGYWlsKGNsYXNzIENEYXRhRXhjaGFuZ2UgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkNCis/RERWX1Nob3dCYWxsb29uQW5kRmFpbEBAWUFYUEVBVkNEYXRhRXhjaGFuZ2VAQElAWg0KKzsgdm9pZCBfX2NkZWNsIEREVl9TaG93QmFsbG9vbkFuZEZhaWwoY2xhc3MgQ0RhdGFFeGNoYW5nZSAqIF9fcHRyNjQsY2xhc3MgQ1N0cmluZykNCis/RERWX1Nob3dCYWxsb29uQW5kRmFpbEBAWUFYUEVBVkNEYXRhRXhjaGFuZ2VAQFZDU3RyaW5nQEBAWg0KKzsgdm9pZCBfX2NkZWNsIEREVl9VTkNGb2xkZXJQYXRoKGNsYXNzIENEYXRhRXhjaGFuZ2UgKiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0LGludCkNCis/RERWX1VOQ0ZvbGRlclBhdGhAQFlBWFBFQVZDRGF0YUV4Y2hhbmdlQEBBRUFWQ1N0cmluZ0BASEBaDQorOyB2b2lkIF9fY2RlY2wgRERWX1VybChjbGFzcyBDRGF0YUV4Y2hhbmdlICogX19wdHI2NCxjbGFzcyBDU3RyaW5nICYgX19wdHI2NCkNCis/RERWX1VybEBAWUFYUEVBVkNEYXRhRXhjaGFuZ2VAQEFFQVZDU3RyaW5nQEBAWg0KKzsgdm9pZCBfX2NkZWNsIEREWF9QYXNzd29yZChjbGFzcyBDRGF0YUV4Y2hhbmdlICogX19wdHI2NCxpbnQsY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9ERFhfUGFzc3dvcmRAQFlBWFBFQVZDRGF0YUV4Y2hhbmdlQEBIQUVBVkNTdHJpbmdAQFBFQkdAWg0KKzsgdm9pZCBfX2NkZWNsIEREWF9QYXNzd29yZF9TZWN1cmVkU3RyaW5nKGNsYXNzIENEYXRhRXhjaGFuZ2UgKiBfX3B0cjY0LGludCxjbGFzcyBDU3RyUGFzc3dvcmQgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/RERYX1Bhc3N3b3JkX1NlY3VyZWRTdHJpbmdAQFlBWFBFQVZDRGF0YUV4Y2hhbmdlQEBIQUVBVkNTdHJQYXNzd29yZEBAUEVCR0BaDQorOyB2b2lkIF9fY2RlY2wgRERYX1NwaW4oY2xhc3MgQ0RhdGFFeGNoYW5nZSAqIF9fcHRyNjQsaW50LGludCAmIF9fcHRyNjQpDQorP0REWF9TcGluQEBZQVhQRUFWQ0RhdGFFeGNoYW5nZUBASEFFQUhAWg0KKzsgdm9pZCBfX2NkZWNsIEREWF9UZXh0KGNsYXNzIENEYXRhRXhjaGFuZ2UgKiBfX3B0cjY0LGludCxjbGFzcyBDSUxvbmcgJiBfX3B0cjY0KQ0KKz9ERFhfVGV4dEBAWUFYUEVBVkNEYXRhRXhjaGFuZ2VAQEhBRUFWQ0lMb25nQEBAWg0KKzsgdm9pZCBfX2NkZWNsIEREWF9UZXh0QmFsbG9vbihjbGFzcyBDRGF0YUV4Y2hhbmdlICogX19wdHI2NCxpbnQsdW5zaWduZWQgY2hhciAmIF9fcHRyNjQpDQorP0REWF9UZXh0QmFsbG9vbkBAWUFYUEVBVkNEYXRhRXhjaGFuZ2VAQEhBRUFFQFoNCis7IHZvaWQgX19jZGVjbCBERFhfVGV4dEJhbGxvb24oY2xhc3MgQ0RhdGFFeGNoYW5nZSAqIF9fcHRyNjQsaW50LHNob3J0ICYgX19wdHI2NCkNCis/RERYX1RleHRCYWxsb29uQEBZQVhQRUFWQ0RhdGFFeGNoYW5nZUBASEFFQUZAWg0KKzsgdm9pZCBfX2NkZWNsIEREWF9UZXh0QmFsbG9vbihjbGFzcyBDRGF0YUV4Y2hhbmdlICogX19wdHI2NCxpbnQsaW50ICYgX19wdHI2NCkNCis/RERYX1RleHRCYWxsb29uQEBZQVhQRUFWQ0RhdGFFeGNoYW5nZUBASEFFQUhAWg0KKzsgdm9pZCBfX2NkZWNsIEREWF9UZXh0QmFsbG9vbihjbGFzcyBDRGF0YUV4Y2hhbmdlICogX19wdHI2NCxpbnQsdW5zaWduZWQgaW50ICYgX19wdHI2NCkNCis/RERYX1RleHRCYWxsb29uQEBZQVhQRUFWQ0RhdGFFeGNoYW5nZUBASEFFQUlAWg0KKzsgdm9pZCBfX2NkZWNsIEREWF9UZXh0QmFsbG9vbihjbGFzcyBDRGF0YUV4Y2hhbmdlICogX19wdHI2NCxpbnQsbG9uZyAmIF9fcHRyNjQpDQorP0REWF9UZXh0QmFsbG9vbkBAWUFYUEVBVkNEYXRhRXhjaGFuZ2VAQEhBRUFKQFoNCis7IHZvaWQgX19jZGVjbCBERFhfVGV4dEJhbGxvb24oY2xhc3MgQ0RhdGFFeGNoYW5nZSAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0KQ0KKz9ERFhfVGV4dEJhbGxvb25AQFlBWFBFQVZDRGF0YUV4Y2hhbmdlQEBIQUVBS0BaDQorOyB2b2lkIF9fY2RlY2wgRERYX1RleHRCYWxsb29uKGNsYXNzIENEYXRhRXhjaGFuZ2UgKiBfX3B0cjY0LGludCxfX2ludDY0ICYgX19wdHI2NCkNCis/RERYX1RleHRCYWxsb29uQEBZQVhQRUFWQ0RhdGFFeGNoYW5nZUBASEFFQV9KQFoNCis7IHZvaWQgX19jZGVjbCBERFhfVGV4dEJhbGxvb24oY2xhc3MgQ0RhdGFFeGNoYW5nZSAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIF9faW50NjQgJiBfX3B0cjY0KQ0KKz9ERFhfVGV4dEJhbGxvb25AQFlBWFBFQVZDRGF0YUV4Y2hhbmdlQEBIQUVBX0tAWg0KKzsgdm9pZCBfX2NkZWNsIEREWF9UZXh0X1NlY3VyZWRTdHJpbmcoY2xhc3MgQ0RhdGFFeGNoYW5nZSAqIF9fcHRyNjQsaW50LGNsYXNzIENTdHJQYXNzd29yZCAmIF9fcHRyNjQpDQorP0REWF9UZXh0X1NlY3VyZWRTdHJpbmdAQFlBWFBFQVZDRGF0YUV4Y2hhbmdlQEBIQUVBVkNTdHJQYXNzd29yZEBAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0lQQWRkcmVzczo6RFdPUkR0b0xQQllURSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KQ0KKz9EV09SRHRvTFBCWVRFQENJUEFkZHJlc3NAQFNBUEVBRUtQRUFFQFoNCis7IHByb3RlY3RlZDogc3RhdGljIHZvaWQgX19jZGVjbCBDSU51bWJlcjo6RGVBbGxvY2F0ZSh2b2lkKQ0KKz9EZUFsbG9jYXRlQENJTnVtYmVyQEBLQVhYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENFcnJvcjo6RGVBbGxvY2F0ZVN0YXRpY3Modm9pZCkNCis/RGVBbGxvY2F0ZVN0YXRpY3NAQ0Vycm9yQEBLQVhYWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIERlZmxhdGVFbnZpcm9ubWVudFZhcmlhYmxlUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQpDQorP0RlZmxhdGVFbnZpcm9ubWVudFZhcmlhYmxlUGF0aEBAWUFLUEVCR0FFQVZDU3RyaW5nQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0lJU0FwcFBvb2w6OkRlbGV0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlQENJSVNBcHBQb29sQEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpEZWxldGUoaW50KSBfX3B0cjY0DQorP0RlbGV0ZUBDSUlTQXBwbGljYXRpb25AQFFFQUFKSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUJhY2s6OkRlbGV0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9EZWxldGVAQ01ldGFCYWNrQEBRRUFBSlBFQkdLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpEZWxldGVBbGxEYXRhKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9EZWxldGVBbGxEYXRhQENNZXRhSW50ZXJmYWNlQEBJRUFBSktQRUJHS0tAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ1dhbUludGVyZmFjZTo6RGVsZXRlQXBwbGljYXRpb24odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9EZWxldGVBcHBsaWNhdGlvbkBDV2FtSW50ZXJmYWNlQEBJRUFBSlBFQkdIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENXYW1JbnRlcmZhY2U6OkRlbGV0ZUFwcGxpY2F0aW9uUG9vbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlQXBwbGljYXRpb25Qb29sQENXYW1JbnRlcmZhY2VAQElFQUFKUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6RGVsZXRlQmFja3VwKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0RlbGV0ZUJhY2t1cEBDTWV0YUludGVyZmFjZUBASUVBQUpQRUJHS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6RGVsZXRlQ2hpbGRLZXlzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZUNoaWxkS2V5c0BDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6RGVsZXRlRGF0YSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RGVsZXRlRGF0YUBDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR0tLQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0hlYWRlckxpc3RCb3g6OkRlbGV0ZUhlYWRlckl0ZW0oaW50KSBfX3B0cjY0DQorP0RlbGV0ZUhlYWRlckl0ZW1AQ0hlYWRlckxpc3RCb3hAQElFQUFISEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENSTUNMaXN0Qm94SGVhZGVyOjpEZWxldGVJdGVtKGludCkgX19wdHI2NA0KKz9EZWxldGVJdGVtQENSTUNMaXN0Qm94SGVhZGVyQEBRRUFBSEhAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkRlbGV0ZUtleSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVLZXlAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OkRlbGV0ZUtleSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlS2V5QENNZXRhS2V5QEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpEZWxldGVSZWNvdmVyYWJsZShpbnQpIF9fcHRyNjQNCis/RGVsZXRlUmVjb3ZlcmFibGVAQ0lJU0FwcGxpY2F0aW9uQEBRRUFBSkhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OkRlbGV0ZVZhbHVlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZVZhbHVlQENNZXRhS2V5QEBRRUFBSktQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdHJQYXNzd29yZDo6RGVzdHJveUNsZWFyVGV4dFBhc3N3b3JkKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9EZXN0cm95Q2xlYXJUZXh0UGFzc3dvcmRAQ1N0clBhc3N3b3JkQEBRRUJBWFBFQUdAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0hlYWRlckxpc3RCb3g6OkRpc3RyaWJ1dGVDb2x1bW5zKHZvaWQpIF9fcHRyNjQNCis/RGlzdHJpYnV0ZUNvbHVtbnNAQ0hlYWRlckxpc3RCb3hAQElFQUFYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ0NvbmZpcm1EbGc6OkRvRGF0YUV4Y2hhbmdlKGNsYXNzIENEYXRhRXhjaGFuZ2UgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RvRGF0YUV4Y2hhbmdlQENDb25maXJtRGxnQEBNRUFBWFBFQVZDRGF0YUV4Y2hhbmdlQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDSW5oZXJpdGFuY2VEbGc6OkRvRGF0YUV4Y2hhbmdlKGNsYXNzIENEYXRhRXhjaGFuZ2UgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RvRGF0YUV4Y2hhbmdlQENJbmhlcml0YW5jZURsZ0BATUVBQVhQRUFWQ0RhdGFFeGNoYW5nZUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDRGlyQnJvd3NlRGxnOjpEb01vZGFsKHZvaWQpIF9fcHRyNjQNCis/RG9Nb2RhbEBDRGlyQnJvd3NlRGxnQEBVRUFBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19pbnQ2NCBfX2NkZWNsIENJbmhlcml0YW5jZURsZzo6RG9Nb2RhbCh2b2lkKSBfX3B0cjY0DQorP0RvTW9kYWxAQ0luaGVyaXRhbmNlRGxnQEBVRUFBX0pYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OkRvZXNQYXRoRXhpc3QodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RvZXNQYXRoRXhpc3RAQ01ldGFLZXlAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENSTUNMaXN0Qm94SGVhZGVyOjpEb2VzUmVzcG9uZFRvQ29sdW1uV2lkdGhDaGFuZ2VzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RG9lc1Jlc3BvbmRUb0NvbHVtbldpZHRoQ2hhbmdlc0BDUk1DTGlzdEJveEhlYWRlckBAUUVCQUhYWg0KKzsgaW50IF9fY2RlY2wgRG9lc1VOQ1NoYXJlRXhpc3QoY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQpDQorP0RvZXNVTkNTaGFyZUV4aXN0QEBZQUhBRUFWQ1N0cmluZ0BAQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ09ETEJveDo6RHJhd0JpdG1hcChjbGFzcyBDUk1DTGlzdEJveERyYXdTdHJ1Y3QgJiBfX3B0cjY0LGludCxpbnQpIF9fcHRyNjQNCis/RHJhd0JpdG1hcEBDT0RMQm94QEBJRUFBSEFFQVZDUk1DTGlzdEJveERyYXdTdHJ1Y3RAQEhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ1JNQ0NvbWJvQm94OjpEcmF3SXRlbShzdHJ1Y3QgdGFnRFJBV0lURU1TVFJVQ1QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RyYXdJdGVtQENSTUNDb21ib0JveEBATUVBQVhQRUFVdGFnRFJBV0lURU1TVFJVQ1RAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENSTUNMaXN0Qm94OjpEcmF3SXRlbShzdHJ1Y3QgdGFnRFJBV0lURU1TVFJVQ1QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RyYXdJdGVtQENSTUNMaXN0Qm94QEBNRUFBWFBFQVV0YWdEUkFXSVRFTVNUUlVDVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ1JNQ0NvbWJvQm94OjpEcmF3SXRlbUV4KGNsYXNzIENSTUNMaXN0Qm94RHJhd1N0cnVjdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RHJhd0l0ZW1FeEBDUk1DQ29tYm9Cb3hAQE1FQUFYQUVBVkNSTUNMaXN0Qm94RHJhd1N0cnVjdEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ1JNQ0xpc3RCb3g6OkRyYXdJdGVtRXgoY2xhc3MgQ1JNQ0xpc3RCb3hEcmF3U3RydWN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9EcmF3SXRlbUV4QENSTUNMaXN0Qm94QEBNRUFBWEFFQVZDUk1DTGlzdEJveERyYXdTdHJ1Y3RAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJUEFjY2Vzc0Rlc2NyaXB0b3I6OkR1cGxpY2F0ZUluTGlzdChjbGFzcyBDT2JMaXN0UGx1cyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RHVwbGljYXRlSW5MaXN0QENJUEFjY2Vzc0Rlc2NyaXB0b3JAQFFFQUFIQUVBVkNPYkxpc3RQbHVzQEBAWg0KKzsgdm9pZCBfX2NkZWNsIEVkaXRIaWRlQmFsbG9vbih2b2lkKQ0KKz9FZGl0SGlkZUJhbGxvb25AQFlBWFhaDQorOyB2b2lkIF9fY2RlY2wgRWRpdFNob3dCYWxsb29uKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCkNCis/RWRpdFNob3dCYWxsb29uQEBZQVhQRUFVSFdORF9fQEBJQFoNCis7IHZvaWQgX19jZGVjbCBFZGl0U2hvd0JhbGxvb24oc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsY2xhc3MgQ1N0cmluZykNCis/RWRpdFNob3dCYWxsb29uQEBZQVhQRUFVSFdORF9fQEBWQ1N0cmluZ0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdHJQYXNzd29yZDo6RW1wdHkodm9pZCkgX19wdHI2NA0KKz9FbXB0eUBDU3RyUGFzc3dvcmRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJSVNXaXphcmRTaGVldDo6RW5hYmxlQnV0dG9uKGludCxpbnQpIF9fcHRyNjQNCis/RW5hYmxlQnV0dG9uQENJSVNXaXphcmRTaGVldEBAUUVBQVhISEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDSUlTV2l6YXJkUGFnZTo6RW5hYmxlU2hlZXRCdXR0b24oaW50LGludCkgX19wdHI2NA0KKz9FbmFibGVTaGVldEJ1dHRvbkBDSUlTV2l6YXJkUGFnZUBASUVBQVhISEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENIZWFkZXJMaXN0Qm94OjpFbmFibGVXaW5kb3coaW50KSBfX3B0cjY0DQorP0VuYWJsZVdpbmRvd0BDSGVhZGVyTGlzdEJveEBAUUVBQUhIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpFbnVtQmFja3Vwcyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsc3RydWN0IF9GSUxFVElNRSAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9FbnVtQmFja3Vwc0BDTWV0YUludGVyZmFjZUBASUVBQUpQRUFHUEVBS1BFQVVfRklMRVRJTUVAQEtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkVudW1EYXRhKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBfTUVUQURBVEFfUkVDT1JEICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0VudW1EYXRhQENNZXRhSW50ZXJmYWNlQEBJRUFBSktQRUJHUEVBVV9NRVRBREFUQV9SRUNPUkRAQEtQRUFLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpFbnVtSGlzdG9yeSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsc3RydWN0IF9GSUxFVElNRSAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9FbnVtSGlzdG9yeUBDTWV0YUludGVyZmFjZUBASUVBQUpQRUFHUEVBSzFQRUFVX0ZJTEVUSU1FQEBLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpFbnVtS2V5cyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9FbnVtS2V5c0BDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR1BFQUdLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNBcHBQb29sOjpFbnVtZXJhdGVBcHBsaWNhdGlvbnMoY2xhc3MgQ1N0cmluZ0xpc3RFeCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RW51bWVyYXRlQXBwbGljYXRpb25zQENJSVNBcHBQb29sQEBRRUFBSkFFQVZDU3RyaW5nTGlzdEV4QEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ1dhbUludGVyZmFjZTo6RW51bWVyYXRlQXBwbGljYXRpb25zSW5Qb29sKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0VudW1lcmF0ZUFwcGxpY2F0aW9uc0luUG9vbEBDV2FtSW50ZXJmYWNlQEBJRUFBSlBFQkdQRUFQRUFHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Vycm9yOjpFeHBhbmRFc2NhcGVDb2RlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAmIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQsbG9uZyAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXhwYW5kRXNjYXBlQ29kZUBDRXJyb3JAQElFQkFIUEVBR0tBRUFQRUFHQUVBVkNTdHJpbmdAQEFFQUpAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRXJyb3I6OkZhaWxlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0ZhaWxlZEBDRXJyb3JAQFFFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENFcnJvcjo6RmFpbGVkKGxvbmcpDQorP0ZhaWxlZEBDRXJyb3JAQFNBSEpAWg0KKzsgaW50IF9fY2RlY2wgRmV0Y2hJcEFkZHJlc3NGcm9tQ29tYm8oY2xhc3MgQ0NvbWJvQm94ICYgX19wdHI2NCxjbGFzcyBDT2JMaXN0UGx1cyAmIF9fcHRyNjQsY2xhc3MgQ0lQQWRkcmVzcyAmIF9fcHRyNjQpDQorP0ZldGNoSXBBZGRyZXNzRnJvbUNvbWJvQEBZQUhBRUFWQ0NvbWJvQm94QEBBRUFWQ09iTGlzdFBsdXNAQEFFQVZDSVBBZGRyZXNzQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDT2JMaXN0UGx1czo6RmluZEVsZW1lbnQoY2xhc3MgQ09iamVjdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RmluZEVsZW1lbnRAQ09iTGlzdFBsdXNAQFFFQkFIUEVBVkNPYmplY3RAQEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDRXJyb3I6OkZpbmRGYWNpbGl0eSh1bnNpZ25lZCBsb25nKQ0KKz9GaW5kRmFjaWxpdHlAQ0Vycm9yQEBLQVBFQkdLQFoNCis7IHZvaWQgX19jZGVjbCBGaXRQYXRoVG9Db250cm9sKGNsYXNzIENXbmQgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpDQorP0ZpdFBhdGhUb0NvbnRyb2xAQFlBWEFFQVZDV25kQEBQRUJHSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQWNjZXNzRW50cnk6OkZsYWdGb3JEZWxldGlvbihpbnQpIF9fcHRyNjQNCis/RmxhZ0ZvckRlbGV0aW9uQENBY2Nlc3NFbnRyeUBAUUVBQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDb21BdXRoSW5mbzo6RnJlZVNlcnZlckluZm9TdHJ1Y3Qoc3RydWN0IF9DT1NFUlZFUklORk8gKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0ZyZWVTZXJ2ZXJJbmZvU3RydWN0QENDb21BdXRoSW5mb0BAUUVCQVhQRUFVX0NPU0VSVkVSSU5GT0BAQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0luaGVyaXRhbmNlRGxnOjpGcmllbmRseUluc3RhbmNlKGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZyaWVuZGx5SW5zdGFuY2VAQ0luaGVyaXRhbmNlRGxnQEBJRUFBSEFFQVZDU3RyaW5nQEAwQFoNCis7IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEdVSURUb0NTdHJpbmcoc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBDU3RyaW5nICYgX19wdHI2NCkNCis/R1VJRFRvQ1N0cmluZ0BAWUFQRUJHQUVCVV9HVUlEQEBBRUFWQ1N0cmluZ0BAQFoNCis7IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEdlbmVyYXRlUmVnaXN0cnlLZXkoY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9HZW5lcmF0ZVJlZ2lzdHJ5S2V5QEBZQVBFQkdBRUFWQ1N0cmluZ0BAUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6R2V0QWRtaW5JbnRlcmZhY2UyKHN0cnVjdCBJTVNBZG1pbkJhc2UyVyAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEFkbWluSW50ZXJmYWNlMkBDTWV0YUludGVyZmFjZUBAUUVBQUpQRUFQRUFVSU1TQWRtaW5CYXNlMldAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6R2V0QWRtaW5JbnRlcmZhY2UzKHN0cnVjdCBJTVNBZG1pbkJhc2UzVyAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEFkbWluSW50ZXJmYWNlM0BDTWV0YUludGVyZmFjZUBAUUVBQUpQRUFQRUFVSU1TQWRtaW5CYXNlM1dAQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6R2V0QWxsRGF0YSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEFsbERhdGFAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdLS0tQRUFLMUtQRUFFMUBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6R2V0QWxsRGF0YSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEFsbERhdGFAQ01ldGFLZXlAQElFQUFKS0tLUEVBSzBQRUFQRUFFUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpHZXRBcHBBZG1pbkludGVyZmFjZShzdHJ1Y3QgSUlJU0FwcGxpY2F0aW9uQWRtaW4gKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRBcHBBZG1pbkludGVyZmFjZUBDV2FtSW50ZXJmYWNlQEBRRUFBSlBFQVBFQVVJSUlTQXBwbGljYXRpb25BZG1pbkBAQFoNCis7IHByb3RlY3RlZDogc3RydWN0IEhCUlVTSF9fICogX19wdHI2NCBfX2NkZWNsIENJSVNXaXphcmRQYWdlOjpHZXRCYWNrZ3JvdW5kQnJ1c2godm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRCYWNrZ3JvdW5kQnJ1c2hAQ0lJU1dpemFyZFBhZ2VAQElFQkFQRUFVSEJSVVNIX19AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBIQlJVU0hfXyAqIF9fcHRyNjQgX19jZGVjbCBDSUlTV2l6YXJkU2hlZXQ6OkdldEJhY2tncm91bmRCcnVzaCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEJhY2tncm91bmRCcnVzaEBDSUlTV2l6YXJkU2hlZXRAQFFFQkFQRUFVSEJSVVNIX19AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTWV0YUtleTo6R2V0QmFzZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEJhc2VAQ01ldGFLZXlAQFFFQkFLWFoNCis7IHByb3RlY3RlZDogY2xhc3MgQ0ZvbnQgKiBfX3B0cjY0IF9fY2RlY2wgQ0lJU1dpemFyZFBhZ2U6OkdldEJpZ0ZvbnQodm9pZCkgX19wdHI2NA0KKz9HZXRCaWdGb250QENJSVNXaXphcmRQYWdlQEBJRUFBUEVBVkNGb250QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDRm9udCAqIF9fcHRyNjQgX19jZGVjbCBDSUlTV2l6YXJkU2hlZXQ6OkdldEJpZ0ZvbnQodm9pZCkgX19wdHI2NA0KKz9HZXRCaWdGb250QENJSVNXaXphcmRTaGVldEBAUUVBQVBFQVZDRm9udEBAWFoNCis7IHByb3RlY3RlZDogY2xhc3MgQ0RDICogX19wdHI2NCBfX2NkZWNsIENJSVNXaXphcmRQYWdlOjpHZXRCaXRtYXBNZW1EQyh2b2lkKSBfX3B0cjY0DQorP0dldEJpdG1hcE1lbURDQENJSVNXaXphcmRQYWdlQEBJRUFBUEVBVkNEQ0BAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0RDICogX19wdHI2NCBfX2NkZWNsIENJSVNXaXphcmRTaGVldDo6R2V0Qml0bWFwTWVtREMoaW50KSBfX3B0cjY0DQorP0dldEJpdG1hcE1lbURDQENJSVNXaXphcmRTaGVldEBAUUVBQVBFQVZDRENAQEhAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDRm9udCAqIF9fcHRyNjQgX19jZGVjbCBDSUlTV2l6YXJkUGFnZTo6R2V0Qm9sZEZvbnQodm9pZCkgX19wdHI2NA0KKz9HZXRCb2xkRm9udEBDSUlTV2l6YXJkUGFnZUBASUVBQVBFQVZDRm9udEBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZvbnQgKiBfX3B0cjY0IF9fY2RlY2wgQ0lJU1dpemFyZFNoZWV0OjpHZXRCb2xkRm9udCh2b2lkKSBfX3B0cjY0DQorP0dldEJvbGRGb250QENJSVNXaXphcmRTaGVldEBAUUVBQVBFQVZDRm9udEBAWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1N0clBhc3N3b3JkOjpHZXRCeXRlTGVuZ3RoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0Qnl0ZUxlbmd0aEBDU3RyUGFzc3dvcmRAQFFFQkFIWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpHZXRDaGlsZFBhdGhzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldENoaWxkUGF0aHNAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdLUEVBR1BFQUtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OkdldENoaWxkUGF0aHMoY2xhc3MgQ1N0cmluZ0xpc3RFeCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldENoaWxkUGF0aHNAQ01ldGFLZXlAQFFFQUFKQUVBVkNTdHJpbmdMaXN0RXhAQFBFQkdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDU3RyUGFzc3dvcmQ6OkdldENsZWFyVGV4dFBhc3N3b3JkKHZvaWQpIF9fcHRyNjQNCis/R2V0Q2xlYXJUZXh0UGFzc3dvcmRAQ1N0clBhc3N3b3JkQEBRRUFBUEVBR1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENSTUNMaXN0Qm94SGVhZGVyOjpHZXRDb2x1bW5XaWR0aChpbnQpY29uc3QgIF9fcHRyNjQNCis/R2V0Q29sdW1uV2lkdGhAQ1JNQ0xpc3RCb3hIZWFkZXJAQFFFQkFISEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENHZXRDb21wdXRlcjo6R2V0Q29tcHV0ZXIoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0Q29tcHV0ZXJAQ0dldENvbXB1dGVyQEBRRUFBSFBFQVVIV05EX19AQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENSTUNMaXN0Qm94OjpHZXRDdXJTZWwodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRDdXJTZWxAQ1JNQ0xpc3RCb3hAQFFFQkFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDQmxvYjo6R2V0RGF0YSh2b2lkKSBfX3B0cjY0DQorP0dldERhdGFAQ0Jsb2JAQFFFQUFQRUFFWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpHZXREYXRhKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBfTUVUQURBVEFfUkVDT1JEICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREYXRhQENNZXRhSW50ZXJmYWNlQEBJRUFBSktQRUJHUEVBVV9NRVRBREFUQV9SRUNPUkRAQFBFQUtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ0luaGVyaXRhbmNlRGxnOjpHZXREYXRhUGF0aHModm9pZCkgX19wdHI2NA0KKz9HZXREYXRhUGF0aHNAQ0luaGVyaXRhbmNlRGxnQEBJRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6R2V0RGF0YVBhdGhzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREYXRhUGF0aHNAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdLS0tQRUFHUEVBS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6R2V0RGF0YVBhdGhzKGNsYXNzIENTdHJpbmdMaXN0RXggJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RGF0YVBhdGhzQENNZXRhS2V5QEBRRUFBSkFFQVZDU3RyaW5nTGlzdEV4QEBLS1BFQkdAWg0KKzsgdm9pZCBfX2NkZWNsIEdldERsZ0N0bFJlY3Qoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsc3RydWN0IHRhZ1JFQ1QgKiBfX3B0cjY0KQ0KKz9HZXREbGdDdGxSZWN0QEBZQVhQRUFVSFdORF9fQEAwUEVBVXRhZ1JFQ1RAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENEaXJCcm93c2VEbGc6OkdldEZ1bGxQYXRoKGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0LGludCljb25zdCAgX19wdHI2NA0KKz9HZXRGdWxsUGF0aEBDRGlyQnJvd3NlRGxnQEBRRUJBUEVCR0FFQVZDU3RyaW5nQEBIQFoNCis7IHZvaWQgX19jZGVjbCBHZXRGdWxsUGF0aExvY2FsT3JSZW1vdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDU3RyaW5nICYgX19wdHI2NCkNCis/R2V0RnVsbFBhdGhMb2NhbE9yUmVtb3RlQEBZQVhQRUJHMEFFQVZDU3RyaW5nQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OkdldEhhbmRsZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEhhbmRsZUBDTWV0YUtleUBAUUVCQUtYWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDUk1DTGlzdEJveEhlYWRlciAqIF9fcHRyNjQgX19jZGVjbCBDSGVhZGVyTGlzdEJveDo6R2V0SGVhZGVyKHZvaWQpIF9fcHRyNjQNCis/R2V0SGVhZGVyQENIZWFkZXJMaXN0Qm94QEBJRUFBUEVBVkNSTUNMaXN0Qm94SGVhZGVyQEBYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDSGVhZGVyTGlzdEJveDo6R2V0SGVhZGVySXRlbShpbnQsc3RydWN0IF9IRF9JVEVNVyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/R2V0SGVhZGVySXRlbUBDSGVhZGVyTGlzdEJveEBASUVCQUhIUEVBVV9IRF9JVEVNV0BAQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0hlYWRlckxpc3RCb3g6OkdldEhlYWRlckl0ZW1Db3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEhlYWRlckl0ZW1Db3VudEBDSGVhZGVyTGlzdEJveEBASUVCQUhYWg0KKzsgaW50IF9fY2RlY2wgR2V0SVVzckFjY291bnQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENXbmQgKiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0KQ0KKz9HZXRJVXNyQWNjb3VudEBAWUFIUEVCR1BFQVZDV25kQEBBRUFWQ1N0cmluZ0BAQFoNCis7IGludCBfX2NkZWNsIEdldElVc3JBY2NvdW50KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDV25kICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsaW50KQ0KKz9HZXRJVXNyQWNjb3VudEBAWUFIUEVCR1BFQVZDV25kQEBQRUFHSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6R2V0SW5zdGFuY2VOdW1iZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9HZXRJbnN0YW5jZU51bWJlckBDTWV0YWJhc2VQYXRoQEBTQUtQRUJHQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OkdldEluc3RhbmNlUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyAqIF9fcHRyNjQpDQorP0dldEluc3RhbmNlUGF0aEBDTWV0YWJhc2VQYXRoQEBTQVBFQkdQRUJHQUVBVkNTdHJpbmdAQFBFQVYyQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBJTVNBZG1pbkJhc2VXICogX19wdHI2NCBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpHZXRJbnRlcmZhY2Uodm9pZCkgX19wdHI2NA0KKz9HZXRJbnRlcmZhY2VAQ01ldGFJbnRlcmZhY2VAQFFFQUFQRUFVSU1TQWRtaW5CYXNlV0BAWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1JNQ0xpc3RCb3hIZWFkZXI6OkdldEl0ZW0oaW50LHN0cnVjdCBfSERfSVRFTVcgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0dldEl0ZW1AQ1JNQ0xpc3RCb3hIZWFkZXJAQFFFQkFISFBFQVVfSERfSVRFTVdAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENSTUNMaXN0Qm94SGVhZGVyOjpHZXRJdGVtQ291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRJdGVtQ291bnRAQ1JNQ0xpc3RCb3hIZWFkZXJAQFFFQkFIWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpHZXRMYXN0Q2hhbmdlVGltZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgX0ZJTEVUSU1FICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0TGFzdENoYW5nZVRpbWVAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdQRUFVX0ZJTEVUSU1FQEBIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OkdldExhc3ROb2RlTmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQpDQorP0dldExhc3ROb2RlTmFtZUBDTWV0YWJhc2VQYXRoQEBTQVBFQkdQRUJHQUVBVkNTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRXJyb3I6OkdldExhc3RXaW5FcnJvcih2b2lkKSBfX3B0cjY0DQorP0dldExhc3RXaW5FcnJvckBDRXJyb3JAQFFFQUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1N0clBhc3N3b3JkOjpHZXRMZW5ndGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRMZW5ndGhAQ1N0clBhc3N3b3JkQEBRRUJBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDTWV0YUtleTo6R2V0TURGaWVsZERlZih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0KQ0KKz9HZXRNREZpZWxkRGVmQENNZXRhS2V5QEBTQUhLQUVBSzAwMEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpHZXRNYWNoaW5lUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyAqIF9fcHRyNjQpDQorP0dldE1hY2hpbmVQYXRoQENNZXRhYmFzZVBhdGhAQFNBUEVCR1BFQkdBRUFWQ1N0cmluZ0BAUEVBVjJAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDQ29uZmlybURsZzo6R2V0TWVzc2FnZU1hcCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldE1lc3NhZ2VNYXBAQ0NvbmZpcm1EbGdAQE1FQkFQRUJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDRW1waGFzaXplZERpYWxvZzo6R2V0TWVzc2FnZU1hcCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldE1lc3NhZ2VNYXBAQ0VtcGhhc2l6ZWREaWFsb2dAQE1FQkFQRUJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSGVhZGVyTGlzdEJveDo6R2V0TWVzc2FnZU1hcCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldE1lc3NhZ2VNYXBAQ0hlYWRlckxpc3RCb3hAQE1FQkFQRUJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSUlTV2l6YXJkQm9va0VuZDo6R2V0TWVzc2FnZU1hcCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldE1lc3NhZ2VNYXBAQ0lJU1dpemFyZEJvb2tFbmRAQE1FQkFQRUJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSUlTV2l6YXJkUGFnZTo6R2V0TWVzc2FnZU1hcCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldE1lc3NhZ2VNYXBAQ0lJU1dpemFyZFBhZ2VAQE1FQkFQRUJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSUlTV2l6YXJkU2hlZXQ6OkdldE1lc3NhZ2VNYXAodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRNZXNzYWdlTWFwQENJSVNXaXphcmRTaGVldEBATUVCQVBFQlVBRlhfTVNHTUFQQEBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHN0cnVjdCBBRlhfTVNHTUFQIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENJbmhlcml0YW5jZURsZzo6R2V0TWVzc2FnZU1hcCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldE1lc3NhZ2VNYXBAQ0luaGVyaXRhbmNlRGxnQEBNRUJBUEVCVUFGWF9NU0dNQVBAQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgc3RydWN0IEFGWF9NU0dNQVAgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ1JNQ0NvbWJvQm94OjpHZXRNZXNzYWdlTWFwKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0TWVzc2FnZU1hcEBDUk1DQ29tYm9Cb3hAQE1FQkFQRUJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDUk1DTGlzdEJveDo6R2V0TWVzc2FnZU1hcCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldE1lc3NhZ2VNYXBAQ1JNQ0xpc3RCb3hAQE1FQkFQRUJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDUk1DTGlzdEJveEhlYWRlcjo6R2V0TWVzc2FnZU1hcCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldE1lc3NhZ2VNYXBAQ1JNQ0xpc3RCb3hIZWFkZXJAQE1FQkFQRUJVQUZYX01TR01BUEBAWFoNCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBDTWV0YUtleTo6dGFnTURGSUVMRERFRiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YUtleTo6R2V0TWV0YVByb3AodW5zaWduZWQgbG9uZykNCis/R2V0TWV0YVByb3BAQ01ldGFLZXlAQFNBUEVCVXRhZ01ERklFTERERUZAMUBLQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBDUk1DTGlzdEJveDo6R2V0TmV4dFNlbGVjdGVkSXRlbShpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE5leHRTZWxlY3RlZEl0ZW1AQ1JNQ0xpc3RCb3hAQFFFQUFQRUFYUEVBSEBaDQorOyBwdWJsaWM6IGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0IF9fY2RlY2wgQ0NvbmZpcm1EbGc6OkdldFBhc3N3b3JkKHZvaWQpIF9fcHRyNjQNCis/R2V0UGFzc3dvcmRAQ0NvbmZpcm1EbGdAQFFFQUFBRUFWQ1N0cmluZ0BAWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNBcHBQb29sOjpHZXRQcm9jZXNzTW9kZSh1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQcm9jZXNzTW9kZUBDSUlTQXBwUG9vbEBAUUVBQUpQRUFLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENXYW1JbnRlcmZhY2U6OkdldFByb2Nlc3NNb2RlKHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFByb2Nlc3NNb2RlQENXYW1JbnRlcmZhY2VAQElFQUFKUEVBS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDTWV0YUtleTo6R2V0UHJvcGVydHlEZXNjcmlwdGlvbih1bnNpZ25lZCBsb25nLGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0KQ0KKz9HZXRQcm9wZXJ0eURlc2NyaXB0aW9uQENNZXRhS2V5QEBTQUhLQUVBVkNTdHJpbmdAQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6R2V0UHJvcGVydHlWYWx1ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCxpbnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQcm9wZXJ0eVZhbHVlQENNZXRhS2V5QEBJRUFBSktBRUFLQUVBUEVBWFBFQUtQRUFIUEVCRzJAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fY2RlY2wgQ09ETEJveDo6R2V0UmVxdWlyZWRXaWR0aChjbGFzcyBDREMgKiBfX3B0cjY0LGNsYXNzIENSZWN0IGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KQ0KKz9HZXRSZXF1aXJlZFdpZHRoQENPRExCb3hAQEtBSFBFQVZDRENAQEFFQlZDUmVjdEBAUEVCR0hAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6R2V0Um9vdFBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgKiBfX3B0cjY0KQ0KKz9HZXRSb290UGF0aEBDTWV0YWJhc2VQYXRoQEBTQVBFQkdQRUJHQUVBVkNTdHJpbmdAQFBFQVYyQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgc3RydWN0IENSdW50aW1lQ2xhc3MgKiBfX3B0cjY0IF9fY2RlY2wgQ0VtcGhhc2l6ZWREaWFsb2c6OkdldFJ1bnRpbWVDbGFzcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFJ1bnRpbWVDbGFzc0BDRW1waGFzaXplZERpYWxvZ0BAVUVCQVBFQVVDUnVudGltZUNsYXNzQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCBDUnVudGltZUNsYXNzICogX19wdHI2NCBfX2NkZWNsIENIZWFkZXJMaXN0Qm94OjpHZXRSdW50aW1lQ2xhc3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRSdW50aW1lQ2xhc3NAQ0hlYWRlckxpc3RCb3hAQFVFQkFQRUFVQ1J1bnRpbWVDbGFzc0BAWFoNCis7IHB1YmxpYzogdmlydHVhbCBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyAqIF9fcHRyNjQgX19jZGVjbCBDSUlTV2l6YXJkQm9va0VuZDo6R2V0UnVudGltZUNsYXNzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0UnVudGltZUNsYXNzQENJSVNXaXphcmRCb29rRW5kQEBVRUJBUEVBVUNSdW50aW1lQ2xhc3NAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgc3RydWN0IENSdW50aW1lQ2xhc3MgKiBfX3B0cjY0IF9fY2RlY2wgQ0lJU1dpemFyZFBhZ2U6OkdldFJ1bnRpbWVDbGFzcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFJ1bnRpbWVDbGFzc0BDSUlTV2l6YXJkUGFnZUBAVUVCQVBFQVVDUnVudGltZUNsYXNzQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCBDUnVudGltZUNsYXNzICogX19wdHI2NCBfX2NkZWNsIENJSVNXaXphcmRTaGVldDo6R2V0UnVudGltZUNsYXNzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0UnVudGltZUNsYXNzQENJSVNXaXphcmRTaGVldEBAVUVCQVBFQVVDUnVudGltZUNsYXNzQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCBDUnVudGltZUNsYXNzICogX19wdHI2NCBfX2NkZWNsIENSTUNDb21ib0JveDo6R2V0UnVudGltZUNsYXNzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0UnVudGltZUNsYXNzQENSTUNDb21ib0JveEBAVUVCQVBFQVVDUnVudGltZUNsYXNzQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCBDUnVudGltZUNsYXNzICogX19wdHI2NCBfX2NkZWNsIENSTUNMaXN0Qm94OjpHZXRSdW50aW1lQ2xhc3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRSdW50aW1lQ2xhc3NAQ1JNQ0xpc3RCb3hAQFVFQkFQRUFVQ1J1bnRpbWVDbGFzc0BAWFoNCis7IHB1YmxpYzogdmlydHVhbCBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyAqIF9fcHRyNjQgX19jZGVjbCBDUk1DTGlzdEJveEhlYWRlcjo6R2V0UnVudGltZUNsYXNzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0UnVudGltZUNsYXNzQENSTUNMaXN0Qm94SGVhZGVyQEBVRUJBUEVBVUNSdW50aW1lQ2xhc3NAQFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENSTUNMaXN0Qm94OjpHZXRTZWwoaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldFNlbEBDUk1DTGlzdEJveEBAUUVCQUhIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1JNQ0xpc3RCb3g6OkdldFNlbENvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U2VsQ291bnRAQ1JNQ0xpc3RCb3hAQFFFQkFIWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBDUk1DTGlzdEJveDo6R2V0U2VsZWN0ZWRMaXN0SXRlbShpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFNlbGVjdGVkTGlzdEl0ZW1AQ1JNQ0xpc3RCb3hAQFFFQUFQRUFYUEVBSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpHZXRTZXJ2aWNlSW5mb1BhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/R2V0U2VydmljZUluZm9QYXRoQENNZXRhYmFzZVBhdGhAQFNBUEVCR1BFQkdBRUFWQ1N0cmluZ0BAMEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpHZXRTZXJ2aWNlUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyAqIF9fcHRyNjQpDQorP0dldFNlcnZpY2VQYXRoQENNZXRhYmFzZVBhdGhAQFNBUEVCR1BFQkdBRUFWQ1N0cmluZ0BAUEVBVjJAQFoNCis7IHByb3RlY3RlZDogY2xhc3MgQ0lJU1dpemFyZFNoZWV0ICogX19wdHI2NCBfX2NkZWNsIENJSVNXaXphcmRQYWdlOjpHZXRTaGVldCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFNoZWV0QENJSVNXaXphcmRQYWdlQEBJRUJBUEVBVkNJSVNXaXphcmRTaGVldEBAWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBDQWNjZXNzRW50cnk6OkdldFNpZCh2b2lkKSBfX3B0cjY0DQorP0dldFNpZEBDQWNjZXNzRW50cnlAQFFFQUFQRUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENCbG9iOjpHZXRTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U2l6ZUBDQmxvYkBAUUVCQUtYWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDRm9udCAqIF9fcHRyNjQgX19jZGVjbCBDSUlTV2l6YXJkUGFnZTo6R2V0U3BlY2lhbEZvbnQodm9pZCkgX19wdHI2NA0KKz9HZXRTcGVjaWFsRm9udEBDSUlTV2l6YXJkUGFnZUBASUVBQVBFQVZDRm9udEBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZvbnQgKiBfX3B0cjY0IF9fY2RlY2wgQ0lJU1dpemFyZFNoZWV0OjpHZXRTcGVjaWFsRm9udChpbnQpIF9fcHRyNjQNCis/R2V0U3BlY2lhbEZvbnRAQ0lJU1dpemFyZFNoZWV0QEBRRUFBUEVBVkNGb250QEBIQFoNCis7IGludCBfX2NkZWNsIEdldFNwZWNpYWxQYXRoUmVhbFBhdGgoaW50LGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0KQ0KKz9HZXRTcGVjaWFsUGF0aFJlYWxQYXRoQEBZQUhIQUVCVkNTdHJpbmdAQEFFQVYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDUk1DTGlzdEJveFJlc291cmNlczo6R2V0U3lzQ29sb3JzKHZvaWQpIF9fcHRyNjQNCis/R2V0U3lzQ29sb3JzQENSTUNMaXN0Qm94UmVzb3VyY2VzQEBJRUFBWFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6R2V0U3lzdGVtQ2hhbmdlTnVtYmVyKHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFN5c3RlbUNoYW5nZU51bWJlckBDTWV0YUludGVyZmFjZUBAUUVBQUpQRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgQ09ETEJveDo6R2V0VGFiKGludCljb25zdCAgX19wdHI2NA0KKz9HZXRUYWJAQ09ETEJveEBAUUVCQUlIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0dldFVzZXJzOjpHZXRVc2VycyhzdHJ1Y3QgSFdORF9fICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0VXNlcnNAQ0dldFVzZXJzQEBRRUFBSFBFQVVIV05EX19AQEhAWg0KKzsgaW50IF9fY2RlY2wgR2V0Vm9sdW1lSW5mb3JtYXRpb25TeXN0ZW1GbGFncyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpDQorP0dldFZvbHVtZUluZm9ybWF0aW9uU3lzdGVtRmxhZ3NAQFlBSFBFQkdQRUFLQFoNCis7IHByb3RlY3RlZDogY2xhc3MgQ0JydXNoICogX19wdHI2NCBfX2NkZWNsIENJSVNXaXphcmRQYWdlOjpHZXRXaW5kb3dCcnVzaCh2b2lkKSBfX3B0cjY0DQorP0dldFdpbmRvd0JydXNoQENJSVNXaXphcmRQYWdlQEBJRUFBUEVBVkNCcnVzaEBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0JydXNoICogX19wdHI2NCBfX2NkZWNsIENJSVNXaXphcmRTaGVldDo6R2V0V2luZG93QnJ1c2godm9pZCkgX19wdHI2NA0KKz9HZXRXaW5kb3dCcnVzaEBDSUlTV2l6YXJkU2hlZXRAQFFFQUFQRUFWQ0JydXNoQEBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6R3JhbnRBY2Nlc3MoaW50KSBfX3B0cjY0DQorP0dyYW50QWNjZXNzQENJUEFjY2Vzc0Rlc2NyaXB0b3JAQFFFQUFYSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRXJyb3I6OkhSZXN1bHQodm9pZCljb25zdCAgX19wdHI2NA0KKz9IUmVzdWx0QENFcnJvckBAUUVCQUpYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENFcnJvcjo6SFJlc3VsdChsb25nKQ0KKz9IUmVzdWx0QENFcnJvckBAU0FKSkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJUEFjY2Vzc0Rlc2NyaXB0b3I6Okhhc0FjY2Vzcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0hhc0FjY2Vzc0BDSVBBY2Nlc3NEZXNjcmlwdG9yQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENBY2Nlc3NFbnRyeTo6SGFzQXBwcm9wcmlhdGVBY2Nlc3ModW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9IYXNBcHByb3ByaWF0ZUFjY2Vzc0BDQWNjZXNzRW50cnlAQFFFQkFIS0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENJSVNTdmNDb250cm9sOjpIYXNJbnRlcmZhY2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9IYXNJbnRlcmZhY2VAQ0lJU1N2Y0NvbnRyb2xAQElFQkFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6Okhhc0ludGVyZmFjZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0hhc0ludGVyZmFjZUBDTWV0YUludGVyZmFjZUBASUVCQUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpIYXNJbnRlcmZhY2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9IYXNJbnRlcmZhY2VAQ1dhbUludGVyZmFjZUBASUVCQUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRXJyb3I6Okhhc092ZXJyaWRlKHVuc2lnbmVkIGludCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/SGFzT3ZlcnJpZGVAQ0Vycm9yQEBJRUJBSFBFQUlAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQWNjZXNzRW50cnk6Okhhc1NvbWVBY2Nlc3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9IYXNTb21lQWNjZXNzQENBY2Nlc3NFbnRyeUBAUUVCQUhYWg0KKzsgcHVibGljOiBjbGFzcyBDT2JqZWN0ICogX19wdHI2NCBfX2NkZWNsIENPYkxpc3RQbHVzOjpJbmRleChpbnQpIF9fcHRyNjQNCis/SW5kZXhAQ09iTGlzdFBsdXNAQFFFQUFQRUFWQ09iamVjdEBASEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0hlYWRlckxpc3RCb3g6OkluaXRpYWxpemUodm9pZCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQENIZWFkZXJMaXN0Qm94QEBVRUFBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDSU51bWJlcjo6SW5pdGlhbGl6ZShpbnQpDQorP0luaXRpYWxpemVAQ0lOdW1iZXJAQFNBSEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0luaGVyaXRhbmNlRGxnOjpJbml0aWFsaXplKHZvaWQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBDSW5oZXJpdGFuY2VEbGdAQElFQUFYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBDT0RMQm94OjpJbml0aWFsaXplKHZvaWQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBDT0RMQm94QEBNRUFBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ1JNQ0NvbWJvQm94OjpJbml0aWFsaXplKHZvaWQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBDUk1DQ29tYm9Cb3hAQFVFQUFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDUk1DTGlzdEJveDo6SW5pdGlhbGl6ZSh2b2lkKSBfX3B0cjY0DQorP0luaXRpYWxpemVAQ1JNQ0xpc3RCb3hAQFVFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0hlYWRlckxpc3RCb3g6Okluc2VydENvbHVtbihpbnQsaW50LHVuc2lnbmVkIGludCxzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luc2VydENvbHVtbkBDSGVhZGVyTGlzdEJveEBASUVBQUhISElQRUFVSElOU1RBTkNFX19AQEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENIZWFkZXJMaXN0Qm94OjpJbnNlcnRIZWFkZXJJdGVtKGludCxzdHJ1Y3QgX0hEX0lURU1XICogX19wdHI2NCkgX19wdHI2NA0KKz9JbnNlcnRIZWFkZXJJdGVtQENIZWFkZXJMaXN0Qm94QEBJRUFBSEhQRUFVX0hEX0lURU1XQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUk1DTGlzdEJveEhlYWRlcjo6SW5zZXJ0SXRlbShpbnQsc3RydWN0IF9IRF9JVEVNVyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5zZXJ0SXRlbUBDUk1DTGlzdEJveEhlYWRlckBAUUVBQUhIUEVBVV9IRF9JVEVNV0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENPRExCb3g6Okluc2VydFRhYihpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0luc2VydFRhYkBDT0RMQm94QEBRRUFBWEhJQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSTUNMaXN0Qm94OjpJbnZhbGlkYXRlU2VsZWN0aW9uKGludCkgX19wdHI2NA0KKz9JbnZhbGlkYXRlU2VsZWN0aW9uQENSTUNMaXN0Qm94QEBRRUFBWEhAWg0KKzsgbG9uZyBfX2NkZWNsIElzQWxsTnVtSG9zdEhlYWRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0lzQWxsTnVtSG9zdEhlYWRlckBAWUFKUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBpbnQgX19jZGVjbCBDSU51bWJlcjo6SXNBbGxvY2F0ZWQodm9pZCkNCis/SXNBbGxvY2F0ZWRAQ0lOdW1iZXJAQEtBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJUEFkZHJlc3M6OklzQmFkVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0JhZFZhbHVlQENJUEFkZHJlc3NAQFFFQkFIWFoNCis7IGludCBfX2NkZWNsIElzQmlEaUxvY2FsaXplZFN5c3RlbSh2b2lkKQ0KKz9Jc0JpRGlMb2NhbGl6ZWRTeXN0ZW1AQFlBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENBY2Nlc3NFbnRyeTo6SXNEZWxldGFibGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0RlbGV0YWJsZUBDQWNjZXNzRW50cnlAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0FjY2Vzc0VudHJ5OjpJc0RlbGV0ZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0RlbGV0ZWRAQ0FjY2Vzc0VudHJ5QEBRRUJBSFhaDQorOyBpbnQgX19jZGVjbCBJc0RldmljZVBhdGgoY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQpDQorP0lzRGV2aWNlUGF0aEBAWUFIQUVCVkNTdHJpbmdAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENBY2Nlc3NFbnRyeTo6SXNEaXJ0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRGlydHlAQ0FjY2Vzc0VudHJ5QEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENPYmpIZWxwZXI6OklzRGlydHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0RpcnR5QENPYmpIZWxwZXJAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6SXNEb21haW5OYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNEb21haW5OYW1lQENJUEFjY2Vzc0Rlc2NyaXB0b3JAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0Jsb2I6OklzRW1wdHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0VtcHR5QENCbG9iQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJbmhlcml0YW5jZURsZzo6SXNFbXB0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRW1wdHlAQ0luaGVyaXRhbmNlRGxnQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTdHJQYXNzd29yZDo6SXNFbXB0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRW1wdHlAQ1N0clBhc3N3b3JkQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6SXNFbmFibGVkQXBwbGljYXRpb24odm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0VuYWJsZWRBcHBsaWNhdGlvbkBDSUlTQXBwbGljYXRpb25AQFFFQkFIWFoNCis7IGludCBfX2NkZWNsIElzRnVsbHlRdWFsaWZpZWRQYXRoKGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0KQ0KKz9Jc0Z1bGx5UXVhbGlmaWVkUGF0aEBAWUFIQUVCVkNTdHJpbmdAQEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENJSVNXaXphcmRQYWdlOjpJc0hlYWRlclBhZ2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0hlYWRlclBhZ2VAQ0lJU1dpemFyZFBhZ2VAQElFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ01ldGFLZXk6OklzSG9tZURpcmVjdG9yeVBhdGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0hvbWVEaXJlY3RvcnlQYXRoQENNZXRhS2V5QEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OklzSG9tZURpcmVjdG9yeVBhdGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0hvbWVEaXJlY3RvcnlQYXRoQENNZXRhYmFzZVBhdGhAQFFFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OklzSG9tZURpcmVjdG9yeVBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9Jc0hvbWVEaXJlY3RvcnlQYXRoQENNZXRhYmFzZVBhdGhAQFNBSFBFQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0lOdW1iZXI6OklzSW5pdGlhbGl6ZWQodm9pZCkNCis/SXNJbml0aWFsaXplZEBDSU51bWJlckBAU0FIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpJc0lucHJvYyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzSW5wcm9jQENJSVNBcHBsaWNhdGlvbkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ29tQXV0aEluZm86OklzTG9jYWwodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0xvY2FsQENDb21BdXRoSW5mb0BAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSUlTSW50ZXJmYWNlOjpJc0xvY2FsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNMb2NhbEBDSUlTSW50ZXJmYWNlQEBRRUJBSFhaDQorOyBpbnQgX19jZGVjbCBJc0xvY2FsQ29tcHV0ZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9Jc0xvY2FsQ29tcHV0ZXJAQFlBSFBFQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6SXNNYXN0ZXJJbnN0YW5jZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0lzTWFzdGVySW5zdGFuY2VAQ01ldGFiYXNlUGF0aEBAU0FIUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENSTUNMaXN0Qm94OjpJc011bHRpU2VsZWN0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNNdWx0aVNlbGVjdEBDUk1DTGlzdEJveEBASUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSVBBY2Nlc3NEZXNjcmlwdG9yOjpJc011bHRpcGxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNNdWx0aXBsZUBDSVBBY2Nlc3NEZXNjcmlwdG9yQEBRRUJBSFhaDQorOyBpbnQgX19jZGVjbCBJc05ldHdvcmtQYXRoKGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgKiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgKiBfX3B0cjY0KQ0KKz9Jc05ldHdvcmtQYXRoQEBZQUhBRUJWQ1N0cmluZ0BAUEVBVjFAMUBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENNZXRhS2V5OjpJc09wZW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc09wZW5AQ01ldGFLZXlAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpJc091dE9mUHJvYyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzT3V0T2ZQcm9jQENJSVNBcHBsaWNhdGlvbkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSUlTQXBwbGljYXRpb246OklzUG9vbGVkUHJvYyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUG9vbGVkUHJvY0BDSUlTQXBwbGljYXRpb25AQFFFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENNZXRhS2V5OjpJc1Byb3BlcnR5SW5oZXJpdGFibGUodW5zaWduZWQgbG9uZykNCis/SXNQcm9wZXJ0eUluaGVyaXRhYmxlQENNZXRhS2V5QEBTQUhLQFoNCis7IGludCBfX2NkZWNsIElzUmVzdHJpY3RlZEZpbGVuYW1lKGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0KQ0KKz9Jc1Jlc3RyaWN0ZWRGaWxlbmFtZUBAWUFIQUVCVkNTdHJpbmdAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENBY2Nlc3NFbnRyeTo6SXNTSURSZXNvbHZlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzU0lEUmVzb2x2ZWRAQ0FjY2Vzc0VudHJ5QEBRRUJBSFhaDQorOyBpbnQgX19jZGVjbCBJc1NlcnZlckxvY2FsKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/SXNTZXJ2ZXJMb2NhbEBAWUFIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJUEFjY2Vzc0Rlc2NyaXB0b3I6OklzU2luZ2xlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNTaW5nbGVAQ0lQQWNjZXNzRGVzY3JpcHRvckBAUUVCQUhYWg0KKzsgaW50IF9fY2RlY2wgSXNTcGVjaWFsUGF0aChjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCxpbnQsaW50KQ0KKz9Jc1NwZWNpYWxQYXRoQEBZQUhBRUJWQ1N0cmluZ0BASEhAWg0KKzsgaW50IF9fY2RlY2wgSXNVTkNOYW1lKGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0KQ0KKz9Jc1VOQ05hbWVAQFlBSEFFQlZDU3RyaW5nQEBAWg0KKzsgaW50IF9fY2RlY2wgSXNVUkxOYW1lKGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0KQ0KKz9Jc1VSTE5hbWVAQFlBSEFFQlZDU3RyaW5nQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENPYmpIZWxwZXI6OklzVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1ZhbGlkQENPYmpIZWxwZXJAQFVFQkFIWFoNCis7IGxvbmcgX19jZGVjbCBJc1ZhbGlkSG9zdEhlYWRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0lzVmFsaWRIb3N0SGVhZGVyQEBZQUpQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0FjY2Vzc0VudHJ5OjpJc1Zpc2libGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1Zpc2libGVAQ0FjY2Vzc0VudHJ5QEBRRUJBSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENJSVNXaXphcmRCb29rRW5kOjpJc1dlbGNvbWVQYWdlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXZWxjb21lUGFnZUBDSUlTV2l6YXJkQm9va0VuZEBASUVCQUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDSUlTV2l6YXJkUGFnZTo6SXNXaXphcmQ5Nyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV2l6YXJkOTdAQ0lJU1dpemFyZFBhZ2VAQElFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lJU1dpemFyZFNoZWV0OjpJc1dpemFyZDk3KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXaXphcmQ5N0BDSUlTV2l6YXJkU2hlZXRAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lQQWRkcmVzczo6SXNaZXJvVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1plcm9WYWx1ZUBDSVBBZGRyZXNzQEBRRUJBSFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSUlTU3ZjQ29udHJvbDo6S2lsbCh2b2lkKSBfX3B0cjY0DQorP0tpbGxAQ0lJU1N2Y0NvbnRyb2xAQFFFQUFKWFoNCis7IGxvbmcgX19jZGVjbCBMaW1pdElucHV0RG9tYWluTmFtZShzdHJ1Y3QgSFdORF9fICogX19wdHI2NCkNCis/TGltaXRJbnB1dERvbWFpbk5hbWVAQFlBSlBFQVVIV05EX19AQEBaDQorOyBsb25nIF9fY2RlY2wgTGltaXRJbnB1dFBhdGgoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsaW50KQ0KKz9MaW1pdElucHV0UGF0aEBAWUFKUEVBVUhXTkRfX0BASEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENNYXBwZWRCaXRtYXBCdXR0b246OkxvYWRNYXBwZWRCaXRtYXBzKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9Mb2FkTWFwcGVkQml0bWFwc0BDTWFwcGVkQml0bWFwQnV0dG9uQEBJRUFBSElJSUlAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ0lQQWRkcmVzczo6TG9uZ1RvU3RyaW5nKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGludCkNCis/TG9uZ1RvU3RyaW5nQENJUEFkZHJlc3NAQFNBUEVBR0tQRUFHSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSVBBZGRyZXNzOjpMb25nVG9TdHJpbmcodW5zaWduZWQgbG9uZyxjbGFzcyBBVEw6OkNDb21CU1RSICYgX19wdHI2NCkNCis/TG9uZ1RvU3RyaW5nQENJUEFkZHJlc3NAQFNBUEVCR0tBRUFWQ0NvbUJTVFJAQVRMQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0lQQWRkcmVzczo6TG9uZ1RvU3RyaW5nKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQpDQorP0xvbmdUb1N0cmluZ0BDSVBBZGRyZXNzQEBTQVBFQkdLQUVBVkNTdHJpbmdAQEBaDQorOyBpbnQgX19jZGVjbCBMb29rc0xpa2VJUEFkZHJlc3ModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9Mb29rc0xpa2VJUEFkZHJlc3NAQFlBSFBFQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0FjY2Vzc0VudHJ5OjpMb29rdXBBY2NvdW50U2lkVyhjbGFzcyBDU3RyaW5nICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/TG9va3VwQWNjb3VudFNpZFdAQ0FjY2Vzc0VudHJ5QEBTQUhBRUFWQ1N0cmluZ0BAQUVBSFBFQVhQRUJHQFoNCis7IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE1ha2VVTkNQYXRoKGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP01ha2VVTkNQYXRoQEBZQVBFQkdBRUFWQ1N0cmluZ0BAUEVCRzFAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ01ldGFLZXk6Ok1hcE1ESURUb1RhYmxlSW5kZXgodW5zaWduZWQgbG9uZykNCis/TWFwTURJRFRvVGFibGVJbmRleEBDTWV0YUtleUBAU0FIS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQWNjZXNzRW50cnk6Ok1hcmtFbnRyeUFzQ2hhbmdlZCh2b2lkKSBfX3B0cjY0DQorP01hcmtFbnRyeUFzQ2hhbmdlZEBDQWNjZXNzRW50cnlAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENBY2Nlc3NFbnRyeTo6TWFya0VudHJ5QXNDbGVhbih2b2lkKSBfX3B0cjY0DQorP01hcmtFbnRyeUFzQ2xlYW5AQ0FjY2Vzc0VudHJ5QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQWNjZXNzRW50cnk6Ok1hcmtFbnRyeUFzTmV3KHZvaWQpIF9fcHRyNjQNCis/TWFya0VudHJ5QXNOZXdAQ0FjY2Vzc0VudHJ5QEBRRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENSTUNDb21ib0JveDo6TWVhc3VyZUl0ZW0oc3RydWN0IHRhZ01FQVNVUkVJVEVNU1RSVUNUICogX19wdHI2NCkgX19wdHI2NA0KKz9NZWFzdXJlSXRlbUBDUk1DQ29tYm9Cb3hAQE1FQUFYUEVBVXRhZ01FQVNVUkVJVEVNU1RSVUNUQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDUk1DTGlzdEJveDo6TWVhc3VyZUl0ZW0oc3RydWN0IHRhZ01FQVNVUkVJVEVNU1RSVUNUICogX19wdHI2NCkgX19wdHI2NA0KKz9NZWFzdXJlSXRlbUBDUk1DTGlzdEJveEBATUVBQVhQRUFVdGFnTUVBU1VSRUlURU1TVFJVQ1RAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENFcnJvcjo6TWVzc2FnZUJveEZvcm1hdChzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCwuLi4pY29uc3QgIF9fcHRyNjQNCis/TWVzc2FnZUJveEZvcm1hdEBDRXJyb3JAQFFFQkFIUEVBVUhXTkRfX0BASUlJWloNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0Vycm9yOjpNZXNzYWdlQm94T25GYWlsdXJlKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/TWVzc2FnZUJveE9uRmFpbHVyZUBDRXJyb3JAQFFFQkFIUEVBVUhXTkRfX0BASUlAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRXJyb3I6Ok1lc3NhZ2VCb3hXKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/TWVzc2FnZUJveFdAQ0Vycm9yQEBRRUJBSFBFQVVIV05EX19AQElJQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBNeUdldEhvc3ROYW1lKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQpDQorP015R2V0SG9zdE5hbWVAQFlBS0tBRUFWQ1N0cmluZ0BAQFoNCis7IGxvbmcgX19jZGVjbCBNeVZhbGlkYXRlUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50LGludCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP015VmFsaWRhdGVQYXRoQEBZQUpQRUJHSEhLS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUJhY2s6Ok5leHQodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHN0cnVjdCBfRklMRVRJTUUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP05leHRAQ01ldGFCYWNrQEBRRUFBSlBFQUtQRUFHUEVBVV9GSUxFVElNRUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhRW51bWVyYXRvcjo6TmV4dCh1bnNpZ25lZCBsb25nICYgX19wdHI2NCxjbGFzcyBDU3RyaW5nICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TmV4dEBDTWV0YUVudW1lcmF0b3JAQFFFQUFKQUVBS0FFQVZDU3RyaW5nQEBQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhRW51bWVyYXRvcjo6TmV4dChjbGFzcyBDU3RyaW5nICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TmV4dEBDTWV0YUVudW1lcmF0b3JAQFFFQUFKQUVBVkNTdHJpbmdAQFBFQkdAWg0KKzsgcHVibGljOiBjbGFzcyBDT2JqZWN0ICogX19wdHI2NCBfX2NkZWNsIENPYkxpc3RJdGVyOjpOZXh0KHZvaWQpIF9fcHRyNjQNCis/TmV4dEBDT2JMaXN0SXRlckBAUUVBQVBFQVZDT2JqZWN0QEBYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFCYWNrOjpOZXh0SGlzdG9yeSh1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsc3RydWN0IF9GSUxFVElNRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TmV4dEhpc3RvcnlAQ01ldGFCYWNrQEBRRUFBSlBFQUswUEVBR1BFQVVfRklMRVRJTUVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENPRExCb3g6Ok51bVRhYnModm9pZCljb25zdCAgX19wdHI2NA0KKz9OdW1UYWJzQENPRExCb3hAQFFFQkFIWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENJbmhlcml0YW5jZURsZzo6T25CdXR0b25TZWxlY3RBbGwodm9pZCkgX19wdHI2NA0KKz9PbkJ1dHRvblNlbGVjdEFsbEBDSW5oZXJpdGFuY2VEbGdAQElFQUFYWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0hlYWRlckxpc3RCb3g6Ok9uQ3JlYXRlKHN0cnVjdCB0YWdDUkVBVEVTVFJVQ1RXICogX19wdHI2NCkgX19wdHI2NA0KKz9PbkNyZWF0ZUBDSGVhZGVyTGlzdEJveEBASUVBQUhQRUFVdGFnQ1JFQVRFU1RSVUNUV0BAQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ1JNQ0NvbWJvQm94OjpPbkNyZWF0ZShzdHJ1Y3QgdGFnQ1JFQVRFU1RSVUNUVyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T25DcmVhdGVAQ1JNQ0NvbWJvQm94QEBJRUFBSFBFQVV0YWdDUkVBVEVTVFJVQ1RXQEBAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDUk1DTGlzdEJveDo6T25DcmVhdGUoc3RydWN0IHRhZ0NSRUFURVNUUlVDVFcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP09uQ3JlYXRlQENSTUNMaXN0Qm94QEBJRUFBSFBFQVV0YWdDUkVBVEVTVFJVQ1RXQEBAWg0KKzsgcHJvdGVjdGVkOiBzdHJ1Y3QgSEJSVVNIX18gKiBfX3B0cjY0IF9fY2RlY2wgQ0lJU1dpemFyZFBhZ2U6Ok9uQ3RsQ29sb3IoY2xhc3MgQ0RDICogX19wdHI2NCxjbGFzcyBDV25kICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/T25DdGxDb2xvckBDSUlTV2l6YXJkUGFnZUBASUVBQVBFQVVIQlJVU0hfX0BAUEVBVkNEQ0BAUEVBVkNXbmRAQElAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0VtcGhhc2l6ZWREaWFsb2c6Ok9uRGVzdHJveSh2b2lkKSBfX3B0cjY0DQorP09uRGVzdHJveUBDRW1waGFzaXplZERpYWxvZ0BASUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0hlYWRlckxpc3RCb3g6Ok9uRGVzdHJveSh2b2lkKSBfX3B0cjY0DQorP09uRGVzdHJveUBDSGVhZGVyTGlzdEJveEBASUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0lJU1dpemFyZFNoZWV0OjpPbkRlc3Ryb3kodm9pZCkgX19wdHI2NA0KKz9PbkRlc3Ryb3lAQ0lJU1dpemFyZFNoZWV0QEBJRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDUk1DTGlzdEJveEhlYWRlcjo6T25EZXN0cm95KHZvaWQpIF9fcHRyNjQNCis/T25EZXN0cm95QENSTUNMaXN0Qm94SGVhZGVyQEBJRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENJSVNXaXphcmRQYWdlOjpPbkVyYXNlQmtnbmQoY2xhc3MgQ0RDICogX19wdHI2NCkgX19wdHI2NA0KKz9PbkVyYXNlQmtnbmRAQ0lJU1dpemFyZFBhZ2VAQElFQUFIUEVBVkNEQ0BAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENSTUNMaXN0Qm94SGVhZGVyOjpPbkhlYWRlckVuZFRyYWNrKHVuc2lnbmVkIGludCxzdHJ1Y3QgdGFnTk1IRFIgKiBfX3B0cjY0LF9faW50NjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP09uSGVhZGVyRW5kVHJhY2tAQ1JNQ0xpc3RCb3hIZWFkZXJAQElFQUFYSVBFQVV0YWdOTUhEUkBAUEVBX0pAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ1JNQ0xpc3RCb3hIZWFkZXI6Ok9uSGVhZGVySXRlbUNoYW5nZWQodW5zaWduZWQgaW50LHN0cnVjdCB0YWdOTUhEUiAqIF9fcHRyNjQsX19pbnQ2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T25IZWFkZXJJdGVtQ2hhbmdlZEBDUk1DTGlzdEJveEhlYWRlckBASUVBQVhJUEVBVXRhZ05NSERSQEBQRUFfSkBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDUk1DTGlzdEJveEhlYWRlcjo6T25IZWFkZXJJdGVtQ2xpY2sodW5zaWduZWQgaW50LHN0cnVjdCB0YWdOTUhEUiAqIF9fcHRyNjQsX19pbnQ2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T25IZWFkZXJJdGVtQ2xpY2tAQ1JNQ0xpc3RCb3hIZWFkZXJAQElFQUFYSVBFQVV0YWdOTUhEUkBAUEVBX0pAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0luaGVyaXRhbmNlRGxnOjpPbkhlbHAodm9pZCkgX19wdHI2NA0KKz9PbkhlbHBAQ0luaGVyaXRhbmNlRGxnQEBJRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0VtcGhhc2l6ZWREaWFsb2c6Ok9uSW5pdERpYWxvZyh2b2lkKSBfX3B0cjY0DQorP09uSW5pdERpYWxvZ0BDRW1waGFzaXplZERpYWxvZ0BATUVBQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIENJSVNXaXphcmRCb29rRW5kOjpPbkluaXREaWFsb2codm9pZCkgX19wdHI2NA0KKz9PbkluaXREaWFsb2dAQ0lJU1dpemFyZEJvb2tFbmRAQE1FQUFIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBDSUlTV2l6YXJkUGFnZTo6T25Jbml0RGlhbG9nKHZvaWQpIF9fcHRyNjQNCis/T25Jbml0RGlhbG9nQENJSVNXaXphcmRQYWdlQEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0lJU1dpemFyZFNoZWV0OjpPbkluaXREaWFsb2codm9pZCkgX19wdHI2NA0KKz9PbkluaXREaWFsb2dAQ0lJU1dpemFyZFNoZWV0QEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0luaGVyaXRhbmNlRGxnOjpPbkluaXREaWFsb2codm9pZCkgX19wdHI2NA0KKz9PbkluaXREaWFsb2dAQ0luaGVyaXRhbmNlRGxnQEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENJbmhlcml0YW5jZURsZzo6T25PSyh2b2lkKSBfX3B0cjY0DQorP09uT0tAQ0luaGVyaXRhbmNlRGxnQEBNRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0lJU1dpemFyZEJvb2tFbmQ6Ok9uU2V0QWN0aXZlKHZvaWQpIF9fcHRyNjQNCis/T25TZXRBY3RpdmVAQ0lJU1dpemFyZEJvb2tFbmRAQFVFQUFIWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENSTUNMaXN0Qm94SGVhZGVyOjpPblNldEZvY3VzKGNsYXNzIENXbmQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP09uU2V0Rm9jdXNAQ1JNQ0xpc3RCb3hIZWFkZXJAQElFQUFYUEVBVkNXbmRAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6T3Blbih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP09wZW5AQ01ldGFLZXlAQFFFQUFKS1BFQkdLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpPcGVuS2V5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T3BlbktleUBDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR0tQRUFLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6T3JkZXJCeUFkZHJlc3MoY2xhc3MgQ09iamVjdFBsdXMgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP09yZGVyQnlBZGRyZXNzQENJUEFjY2Vzc0Rlc2NyaXB0b3JAQFFFQkFIUEVCVkNPYmplY3RQbHVzQEBAWg0KKzsgaW50IF9fY2RlY2wgUENUb1VuaXhUZXh0KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAmIF9fcHRyNjQsY2xhc3MgQ1N0cmluZykNCis/UENUb1VuaXhUZXh0QEBZQUhBRUFQRUFHVkNTdHJpbmdAQEBaDQorOyBpbnQgX19jZGVjbCBQYXRoSXNWYWxpZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KQ0KKz9QYXRoSXNWYWxpZEBAWUFIUEVCR0hAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIFBvcHVsYXRlQ29tYm9XaXRoS25vd25JcEFkZHJlc3Nlcyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0NvbWJvQm94ICYgX19wdHI2NCxjbGFzcyBDSVBBZGRyZXNzICYgX19wdHI2NCxjbGFzcyBDT2JMaXN0UGx1cyAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCkNCis/UG9wdWxhdGVDb21ib1dpdGhLbm93bklwQWRkcmVzc2VzQEBZQUtQRUJHQUVBVkNDb21ib0JveEBAQUVBVkNJUEFkZHJlc3NAQEFFQVZDT2JMaXN0UGx1c0BAQUVBSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDUk1DTGlzdEJveFJlc291cmNlczo6UHJlcGFyZUJpdG1hcHModm9pZCkgX19wdHI2NA0KKz9QcmVwYXJlQml0bWFwc0BDUk1DTGlzdEJveFJlc291cmNlc0BASUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0dldENvbXB1dGVyOjpQcm9jZXNzU2VsZWN0ZWRPYmplY3RzKHN0cnVjdCBJRGF0YU9iamVjdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UHJvY2Vzc1NlbGVjdGVkT2JqZWN0c0BDR2V0Q29tcHV0ZXJAQElFQUFYUEVBVUlEYXRhT2JqZWN0QEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0dldFVzZXJzOjpQcm9jZXNzU2VsZWN0ZWRPYmplY3RzKHN0cnVjdCBJRGF0YU9iamVjdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UHJvY2Vzc1NlbGVjdGVkT2JqZWN0c0BDR2V0VXNlcnNAQElFQUFYUEVBVUlEYXRhT2JqZWN0QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0FjY2Vzc0VudHJ5OjpRdWVyeUFjY2Vzc01hc2sodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUFjY2Vzc01hc2tAQ0FjY2Vzc0VudHJ5QEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDT2JqSGVscGVyOjpRdWVyeUFnZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QWdlQENPYmpIZWxwZXJAQFFFQkFLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENPYmpIZWxwZXI6OlF1ZXJ5QXBpRXJyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBcGlFcnJAQ09iakhlbHBlckBAUUVCQUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpRdWVyeUFwcFN0YXRlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBcHBTdGF0ZUBDSUlTQXBwbGljYXRpb25AQFFFQkFLWFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbUF1dGhJbmZvICogX19wdHI2NCBfX2NkZWNsIENJSVNJbnRlcmZhY2U6OlF1ZXJ5QXV0aEluZm8odm9pZCkgX19wdHI2NA0KKz9RdWVyeUF1dGhJbmZvQENJSVNJbnRlcmZhY2VAQFFFQUFQRUFWQ0NvbUF1dGhJbmZvQEBYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ0lJU1dpemFyZFBhZ2U6OlF1ZXJ5Qml0bWFwSGVpZ2h0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlCaXRtYXBIZWlnaHRAQ0lJU1dpemFyZFBhZ2VAQElFQkFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNXaXphcmRTaGVldDo6UXVlcnlCaXRtYXBIZWlnaHQoaW50KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Qml0bWFwSGVpZ2h0QENJSVNXaXphcmRTaGVldEBAUUVCQUpIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENJSVNXaXphcmRQYWdlOjpRdWVyeUJpdG1hcFdpZHRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlCaXRtYXBXaWR0aEBDSUlTV2l6YXJkUGFnZUBASUVCQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0lJU1dpemFyZFNoZWV0OjpRdWVyeUJpdG1hcFdpZHRoKGludCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUJpdG1hcFdpZHRoQENJSVNXaXphcmRTaGVldEBAUUVCQUpIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0hlYWRlckxpc3RCb3g6OlF1ZXJ5Q29sdW1uV2lkdGgoaW50KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q29sdW1uV2lkdGhAQ0hlYWRlckxpc3RCb3hAQFFFQkFISEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDT2JqSGVscGVyOjpRdWVyeUNyZWF0aW9uVGltZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q3JlYXRpb25UaW1lQENPYmpIZWxwZXJAQFFFQkFLWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENJTnVtYmVyOjpRdWVyeUN1cnJlbmN5KHZvaWQpDQorP1F1ZXJ5Q3VycmVuY3lAQ0lOdW1iZXJAQFNBUEVCR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSU51bWJlcjo6UXVlcnlEZWNpbWFsUG9pbnQodm9pZCkNCis/UXVlcnlEZWNpbWFsUG9pbnRAQ0lOdW1iZXJAQFNBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENJUEFjY2Vzc0Rlc2NyaXB0b3I6OlF1ZXJ5RG9tYWluTmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RG9tYWluTmFtZUBDSVBBY2Nlc3NEZXNjcmlwdG9yQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDT2JqSGVscGVyOjpRdWVyeUVycm9yKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlFcnJvckBDT2JqSGVscGVyQEBRRUJBSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTWV0YUtleTo6UXVlcnlGbGFncyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RmxhZ3NAQ01ldGFLZXlAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENJUEFkZHJlc3M6OlF1ZXJ5SG9zdE9yZGVySVBBZGRyZXNzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlIb3N0T3JkZXJJUEFkZHJlc3NAQ0lQQWRkcmVzc0BAUUVCQUtYWg0KKzsgcHVibGljOiBjbGFzcyBDSVBBZGRyZXNzICBfX2NkZWNsIENJUEFjY2Vzc0Rlc2NyaXB0b3I6OlF1ZXJ5SVBBZGRyZXNzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlJUEFkZHJlc3NAQ0lQQWNjZXNzRGVzY3JpcHRvckBAUUVCQT9BVkNJUEFkZHJlc3NAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSVBBY2Nlc3NEZXNjcmlwdG9yOjpRdWVyeUlQQWRkcmVzcyhpbnQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlJUEFkZHJlc3NAQ0lQQWNjZXNzRGVzY3JpcHRvckBAUUVCQUtIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENJUEFkZHJlc3M6OlF1ZXJ5SVBBZGRyZXNzKGludCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUlQQWRkcmVzc0BDSVBBZGRyZXNzQEBRRUJBS0hAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSVBBZGRyZXNzOjpRdWVyeUlQQWRkcmVzcyhjbGFzcyBBVEw6OkNDb21CU1RSICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUlQQWRkcmVzc0BDSVBBZGRyZXNzQEBRRUJBUEVCR0FFQVZDQ29tQlNUUkBBVExAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENJUEFkZHJlc3M6OlF1ZXJ5SVBBZGRyZXNzKGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SVBBZGRyZXNzQENJUEFkZHJlc3NAQFFFQkFQRUJHQUVBVkNTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENNZXRhS2V5OjpRdWVyeU1ldGFQYXRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNZXRhUGF0aEBDTWV0YUtleUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpRdWVyeU1ldGFQYXRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNZXRhUGF0aEBDTWV0YWJhc2VQYXRoQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSVBBZGRyZXNzOjpRdWVyeU5ldHdvcmtPcmRlcklQQWRkcmVzcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TmV0d29ya09yZGVySVBBZGRyZXNzQENJUEFkZHJlc3NAQFFFQkFLWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0hlYWRlckxpc3RCb3g6OlF1ZXJ5TnVtQ29sdW1ucyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TnVtQ29sdW1uc0BDSGVhZGVyTGlzdEJveEBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUk1DTGlzdEJveEhlYWRlcjo6UXVlcnlOdW1Db2x1bW5zKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOdW1Db2x1bW5zQENSTUNMaXN0Qm94SGVhZGVyQEBRRUJBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENDb21BdXRoSW5mbzo6UXVlcnlQYXNzd29yZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UGFzc3dvcmRAQ0NvbUF1dGhJbmZvQEBRRUJBUEVBR1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENBY2Nlc3NFbnRyeTo6UXVlcnlQaWN0dXJlSUQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBpY3R1cmVJREBDQWNjZXNzRW50cnlAQFFFQkFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENJSVNBcHBQb29sOjpRdWVyeVBvb2xTdGF0ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UG9vbFN0YXRlQENJSVNBcHBQb29sQEBRRUJBS1haDQorOyBwdWJsaWM6IHN0cnVjdCBfX1BPU0lUSU9OICogX19wdHI2NCBfX2NkZWNsIENPYkxpc3RJdGVyOjpRdWVyeVBvc2l0aW9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQb3NpdGlvbkBDT2JMaXN0SXRlckBAUUVCQVBFQVVfX1BPU0lUSU9OQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDSUlTQXBwUG9vbDo6UXVlcnlSZXN1bHQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVJlc3VsdEBDSUlTQXBwUG9vbEBAVUVCQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDSUlTQXBwbGljYXRpb246OlF1ZXJ5UmVzdWx0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlSZXN1bHRAQ0lJU0FwcGxpY2F0aW9uQEBVRUJBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENJSVNJbnRlcmZhY2U6OlF1ZXJ5UmVzdWx0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlSZXN1bHRAQ0lJU0ludGVyZmFjZUBAVUVCQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDTWV0YUJhY2s6OlF1ZXJ5UmVzdWx0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlSZXN1bHRAQ01ldGFCYWNrQEBVRUJBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpRdWVyeVJlc3VsdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UmVzdWx0QENNZXRhS2V5QEBVRUJBSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENDb21BdXRoSW5mbzo6UXVlcnlTZXJ2ZXJOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZXJ2ZXJOYW1lQENDb21BdXRoSW5mb0BAUUVCQVBFQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSUlTSW50ZXJmYWNlOjpRdWVyeVNlcnZlck5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNlcnZlck5hbWVAQ0lJU0ludGVyZmFjZUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBjbGFzcyBDSVBBZGRyZXNzICBfX2NkZWNsIENJUEFjY2Vzc0Rlc2NyaXB0b3I6OlF1ZXJ5U3VibmV0TWFzayh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U3VibmV0TWFza0BDSVBBY2Nlc3NEZXNjcmlwdG9yQEBRRUJBP0FWQ0lQQWRkcmVzc0BAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENJUEFjY2Vzc0Rlc2NyaXB0b3I6OlF1ZXJ5U3VibmV0TWFzayhpbnQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTdWJuZXRNYXNrQENJUEFjY2Vzc0Rlc2NyaXB0b3JAQFFFQkFLSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSU51bWJlcjo6UXVlcnlUaG91c2FuZFNlcGFyYXRvcih2b2lkKQ0KKz9RdWVyeVRob3VzYW5kU2VwYXJhdG9yQENJTnVtYmVyQEBTQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDQWNjZXNzRW50cnk6OlF1ZXJ5VXNlck5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVVzZXJOYW1lQENBY2Nlc3NFbnRyeUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDQ29tQXV0aEluZm86OlF1ZXJ5VXNlck5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVVzZXJOYW1lQENDb21BdXRoSW5mb0BAUUVCQVBFQUdYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlF1ZXJ5VmFsdWUodW5zaWduZWQgbG9uZyxpbnQgJiBfX3B0cjY0LGludCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5VmFsdWVAQ01ldGFLZXlAQFFFQUFKS0FFQUhQRUFIUEVCR1BFQUtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlF1ZXJ5VmFsdWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICYgX19wdHI2NCxpbnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeVZhbHVlQENNZXRhS2V5QEBRRUFBSktBRUFLUEVBSFBFQkdQRUFLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpRdWVyeVZhbHVlKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0Jsb2IgJiBfX3B0cjY0LGludCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5VmFsdWVAQ01ldGFLZXlAQFFFQUFKS0FFQVZDQmxvYkBAUEVBSFBFQkdQRUFLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpRdWVyeVZhbHVlKHVuc2lnbmVkIGxvbmcsY2xhc3MgQVRMOjpDQ29tQlNUUiAmIF9fcHRyNjQsaW50ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlWYWx1ZUBDTWV0YUtleUBAUUVBQUpLQUVBVkNDb21CU1RSQEFUTEBAUEVBSFBFQkdQRUFLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpRdWVyeVZhbHVlKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ1N0clBhc3N3b3JkICYgX19wdHI2NCxpbnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeVZhbHVlQENNZXRhS2V5QEBRRUFBSktBRUFWQ1N0clBhc3N3b3JkQEBQRUFIUEVCR1BFQUtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlF1ZXJ5VmFsdWUodW5zaWduZWQgbG9uZyxjbGFzcyBDU3RyaW5nICYgX19wdHI2NCxpbnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeVZhbHVlQENNZXRhS2V5QEBRRUFBSktBRUFWQ1N0cmluZ0BAUEVBSFBFQkdQRUFLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpRdWVyeVZhbHVlKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ1N0cmluZ0xpc3RFeCAmIF9fcHRyNjQsaW50ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlWYWx1ZUBDTWV0YUtleUBAUUVBQUpLQUVBVkNTdHJpbmdMaXN0RXhAQFBFQUhQRUJHUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENJSVNBcHBQb29sOjpRdWVyeVdhbVBhdGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVdhbVBhdGhAQ0lJU0FwcFBvb2xAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpRdWVyeVdhbVBhdGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVdhbVBhdGhAQ0lJU0FwcGxpY2F0aW9uQEBRRUJBUEVCR1haDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSUlTV2l6YXJkUGFnZTo6UXVlcnlXaW5kb3dDb2xvcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5V2luZG93Q29sb3JAQ0lJU1dpemFyZFBhZ2VAQElFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENJSVNXaXphcmRTaGVldDo6UXVlcnlXaW5kb3dDb2xvcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5V2luZG93Q29sb3JAQ0lJU1dpemFyZFNoZWV0QEBRRUJBS1haDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSUlTV2l6YXJkUGFnZTo6UXVlcnlXaW5kb3dUZXh0Q29sb3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVdpbmRvd1RleHRDb2xvckBDSUlTV2l6YXJkUGFnZUBASUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0lJU1dpemFyZFNoZWV0OjpRdWVyeVdpbmRvd1RleHRDb2xvcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5V2luZG93VGV4dENvbG9yQENJSVNXaXphcmRTaGVldEBAUUVCQUtYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlJlT3Blbih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlT3BlbkBDTWV0YUtleUBAUUVBQUpLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpSZU9wZW4odm9pZCkgX19wdHI2NA0KKz9SZU9wZW5AQ01ldGFLZXlAQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNTdmNDb250cm9sOjpSZWJvb3QodW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/UmVib290QENJSVNTdmNDb250cm9sQEBRRUFBSktIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6UmVjb3ZlcihpbnQpIF9fcHRyNjQNCis/UmVjb3ZlckBDSUlTQXBwbGljYXRpb25AQFFFQUFKSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSUlTQXBwUG9vbDo6UmVjeWNsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVjeWNsZUBDSUlTQXBwUG9vbEBAUUVBQUpQRUJHQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENXYW1JbnRlcmZhY2U6OlJlY3ljbGVBcHBsaWNhdGlvblBvb2wodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlY3ljbGVBcHBsaWNhdGlvblBvb2xAQ1dhbUludGVyZmFjZUBASUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6UmVmcmVzaEFwcFN0YXRlKHZvaWQpIF9fcHRyNjQNCis/UmVmcmVzaEFwcFN0YXRlQENJSVNBcHBsaWNhdGlvbkBAUUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0lJU0FwcFBvb2w6OlJlZnJlc2hTdGF0ZSh2b2lkKSBfX3B0cjY0DQorP1JlZnJlc2hTdGF0ZUBDSUlTQXBwUG9vbEBAUUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OlJlZ2VuZXJhdGUodm9pZCkgX19wdHI2NA0KKz9SZWdlbmVyYXRlQENNZXRhSW50ZXJmYWNlQEBRRUFBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ0Vycm9yOjpSZWdpc3RlckZhY2lsaXR5KHVuc2lnbmVkIGxvbmcsY2hhciBjb25zdCAqIF9fcHRyNjQpDQorP1JlZ2lzdGVyRmFjaWxpdHlAQ0Vycm9yQEBTQVhLUEVCREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENPYkxpc3RQbHVzOjpSZW1vdmUoY2xhc3MgQ09iamVjdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVtb3ZlQENPYkxpc3RQbHVzQEBRRUFBSFBFQVZDT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ09iTGlzdFBsdXM6OlJlbW92ZUFsbCh2b2lkKSBfX3B0cjY0DQorP1JlbW92ZUFsbEBDT2JMaXN0UGx1c0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Vycm9yOjpSZW1vdmVBbGxPdmVycmlkZXModm9pZCkgX19wdHI2NA0KKz9SZW1vdmVBbGxPdmVycmlkZXNAQ0Vycm9yQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDT0RMQm94OjpSZW1vdmVBbGxUYWJzKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlQWxsVGFic0BDT0RMQm94QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDT2JMaXN0UGx1czo6UmVtb3ZlQXQoc3RydWN0IF9fUE9TSVRJT04gKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVBdEBDT2JMaXN0UGx1c0BAUUVBQVhBRUFQRUFVX19QT1NJVElPTkBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDb21BdXRoSW5mbzo6UmVtb3ZlSW1wZXJzb25hdGlvbih2b2lkKSBfX3B0cjY0DQorP1JlbW92ZUltcGVyc29uYXRpb25AQ0NvbUF1dGhJbmZvQEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENPYkxpc3RQbHVzOjpSZW1vdmVJbmRleChpbnQpIF9fcHRyNjQNCis/UmVtb3ZlSW5kZXhAQ09iTGlzdFBsdXNAQFFFQUFISEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRXJyb3I6OlJlbW92ZU92ZXJyaWRlKGxvbmcpIF9fcHRyNjQNCis/UmVtb3ZlT3ZlcnJpZGVAQ0Vycm9yQEBRRUFBWEpAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0FjY2Vzc0VudHJ5OjpSZW1vdmVQZXJtaXNzaW9ucyh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlbW92ZVBlcm1pc3Npb25zQENBY2Nlc3NFbnRyeUBAUUVBQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENPRExCb3g6OlJlbW92ZVRhYihpbnQsaW50KSBfX3B0cjY0DQorP1JlbW92ZVRhYkBDT0RMQm94QEBRRUFBWEhIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpSZW5hbWVLZXkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbmFtZUtleUBDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCRzBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlJlbmFtZUtleSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbmFtZUtleUBDTWV0YUtleUBAUUVBQUpQRUJHMEBaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgUmVwbGFjZVN0cmluZ0luU3RyaW5nKGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0LGludCkNCis/UmVwbGFjZVN0cmluZ0luU3RyaW5nQEBZQUtBRUFWQ1N0cmluZ0BAMDBIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENPYmpIZWxwZXI6OlJlcG9ydEVycm9yKGxvbmcpIF9fcHRyNjQNCis/UmVwb3J0RXJyb3JAQ09iakhlbHBlckBAUUVBQVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENFcnJvcjo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBDRXJyb3JAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNZXRhQmFjazo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBDTWV0YUJhY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNZXRhRW51bWVyYXRvcjo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBDTWV0YUVudW1lcmF0b3JAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENPYkxpc3RJdGVyOjpSZXNldCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QENPYkxpc3RJdGVyQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDT2JqSGVscGVyOjpSZXNldEVycm9ycyh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0RXJyb3JzQENPYmpIZWxwZXJAQFFFQUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0FjY2Vzc0VudHJ5OjpSZXNvbHZlU0lEKHZvaWQpIF9fcHRyNjQNCis/UmVzb2x2ZVNJREBDQWNjZXNzRW50cnlAQFFFQUFIWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSTUNMaXN0Qm94SGVhZGVyOjpSZXNwb25kVG9Db2x1bW5XaWR0aENoYW5nZXMoaW50KSBfX3B0cjY0DQorP1Jlc3BvbmRUb0NvbHVtbldpZHRoQ2hhbmdlc0BDUk1DTGlzdEJveEhlYWRlckBAUUVBQVhIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhQmFjazo6UmVzdG9yZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZXN0b3JlQENNZXRhQmFja0BAUUVBQUpQRUJHS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6UmVzdG9yZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1Jlc3RvcmVAQ01ldGFJbnRlcmZhY2VAQElFQUFKUEVCR0tLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpSZXN0b3JlSGlzdG9yeSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVzdG9yZUhpc3RvcnlAQ01ldGFJbnRlcmZhY2VAQElFQUFKUEVCR0tLS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUJhY2s6OlJlc3RvcmVIaXN0b3J5QmFja3VwKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZXN0b3JlSGlzdG9yeUJhY2t1cEBDTWV0YUJhY2tAQFFFQUFKUEVCR0tLS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUJhY2s6OlJlc3RvcmVXaXRoUGFzc3dvcmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1Jlc3RvcmVXaXRoUGFzc3dvcmRAQ01ldGFCYWNrQEBRRUFBSlBFQkdLMEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6UmVzdG9yZVdpdGhQYXNzd29yZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZXN0b3JlV2l0aFBhc3N3b3JkQENNZXRhSW50ZXJmYWNlQEBJRUFBSlBFQkdLSzBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OlNhdmVEYXRhKHZvaWQpIF9fcHRyNjQNCis/U2F2ZURhdGFAQ01ldGFJbnRlcmZhY2VAQFFFQUFKWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1JNQ0xpc3RCb3g6OlNlbGVjdEl0ZW0odm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VsZWN0SXRlbUBDUk1DTGlzdEJveEBAUUVBQUhQRUFYQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ09iTGlzdFBsdXM6OlNldEFsbChpbnQpIF9fcHRyNjQNCis/U2V0QWxsQENPYkxpc3RQbHVzQEBRRUFBSEhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ09iakhlbHBlcjo6U2V0QXBpRXJyKGxvbmcpIF9fcHRyNjQNCis/U2V0QXBpRXJyQENPYmpIZWxwZXJAQFFFQUFKSkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENIZWFkZXJMaXN0Qm94OjpTZXRDb2x1bW5XaWR0aChpbnQsaW50KSBfX3B0cjY0DQorP1NldENvbHVtbldpZHRoQENIZWFkZXJMaXN0Qm94QEBRRUFBSEhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSTUNMaXN0Qm94SGVhZGVyOjpTZXRDb2x1bW5XaWR0aChpbnQsaW50KSBfX3B0cjY0DQorP1NldENvbHVtbldpZHRoQENSTUNMaXN0Qm94SGVhZGVyQEBRRUFBWEhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENDb21BdXRoSW5mbzo6U2V0Q29tcHV0ZXJOYW1lVyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Q29tcHV0ZXJOYW1lV0BDQ29tQXV0aEluZm9AQElFQUFYUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENSTUNMaXN0Qm94OjpTZXRDdXJTZWwoaW50KSBfX3B0cjY0DQorP1NldEN1clNlbEBDUk1DTGlzdEJveEBAUUVBQUhIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpTZXREYXRhKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBfTUVUQURBVEFfUkVDT1JEICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREYXRhQENNZXRhSW50ZXJmYWNlQEBJRUFBSktQRUJHUEVBVV9NRVRBREFUQV9SRUNPUkRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDT2JqSGVscGVyOjpTZXREaXJ0eShpbnQpIF9fcHRyNjQNCis/U2V0RGlydHlAQ09iakhlbHBlckBAUUVBQVhIQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0hlYWRlckxpc3RCb3g6OlNldEhlYWRlckl0ZW0oaW50LHN0cnVjdCBfSERfSVRFTVcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEhlYWRlckl0ZW1AQ0hlYWRlckxpc3RCb3hAQElFQUFISFBFQVVfSERfSVRFTVdAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29tQXV0aEluZm86OlNldEltcGVyc29uYXRpb24odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRJbXBlcnNvbmF0aW9uQENDb21BdXRoSW5mb0BAUUVBQVhQRUJHMEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENSTUNMaXN0Qm94SGVhZGVyOjpTZXRJdGVtKGludCxzdHJ1Y3QgX0hEX0lURU1XICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRJdGVtQENSTUNMaXN0Qm94SGVhZGVyQEBRRUFBSEhQRUFVX0hEX0lURU1XQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OlNldExhc3RDaGFuZ2VUaW1lKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBfRklMRVRJTUUgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9TZXRMYXN0Q2hhbmdlVGltZUBDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR1BFQVVfRklMRVRJTUVAQEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Vycm9yOjpTZXRMYXN0V2luRXJyb3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9TZXRMYXN0V2luRXJyb3JAQ0Vycm9yQEBRRUJBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENPYkxpc3RQbHVzOjpTZXRPd25lcnNoaXAoaW50KSBfX3B0cjY0DQorP1NldE93bmVyc2hpcEBDT2JMaXN0UGx1c0BAUUVBQUhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENPYkxpc3RJdGVyOjpTZXRQb3NpdGlvbihzdHJ1Y3QgX19QT1NJVElPTiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UG9zaXRpb25AQ09iTGlzdEl0ZXJAQFFFQUFYUEVBVV9fUE9TSVRJT05AQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6U2V0UHJvcGVydHlWYWx1ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UHJvcGVydHlWYWx1ZUBDTWV0YUtleUBASUVBQUpLS1BFQVhQRUFIUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29uZmlybURsZzo6U2V0UmVmZXJlbmNlKGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFJlZmVyZW5jZUBDQ29uZmlybURsZ0BAUUVBQVhBRUFWQ1N0cmluZ0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENPRExCb3g6OlNldFRhYihpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1NldFRhYkBDT0RMQm94QEBRRUFBWEhJQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENSTUNMaXN0Qm94SGVhZGVyOjpTZXRUYWJzRnJvbUhlYWRlcih2b2lkKSBfX3B0cjY0DQorP1NldFRhYnNGcm9tSGVhZGVyQENSTUNMaXN0Qm94SGVhZGVyQEBJRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQmxvYjo6U2V0VmFsdWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/U2V0VmFsdWVAQ0Jsb2JAQFFFQUFYS1BFQUVIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nLGNsYXNzIENCbG9iICYgX19wdHI2NCxpbnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWYWx1ZUBDTWV0YUtleUBAUUVBQUpLQUVBVkNCbG9iQEBQRUFIUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6U2V0VmFsdWUodW5zaWduZWQgbG9uZyxjbGFzcyBDU3RyUGFzc3dvcmQgJiBfX3B0cjY0LGludCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFZhbHVlQENNZXRhS2V5QEBRRUFBSktBRUFWQ1N0clBhc3N3b3JkQEBQRUFIUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6U2V0VmFsdWUodW5zaWduZWQgbG9uZyxjbGFzcyBDU3RyaW5nICYgX19wdHI2NCxpbnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWYWx1ZUBDTWV0YUtleUBAUUVBQUpLQUVBVkNTdHJpbmdAQFBFQUhQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nLGNsYXNzIENTdHJpbmdMaXN0RXggJiBfX3B0cjY0LGludCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFZhbHVlQENNZXRhS2V5QEBRRUFBSktBRUFWQ1N0cmluZ0xpc3RFeEBAUEVBSFBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlNldFZhbHVlKHVuc2lnbmVkIGxvbmcsaW50LGludCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFZhbHVlQENNZXRhS2V5QEBRRUFBSktIUEVBSFBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlNldFZhbHVlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWYWx1ZUBDTWV0YUtleUBAUUVBQUpLS1BFQUhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJUEFjY2Vzc0Rlc2NyaXB0b3I6OlNldFZhbHVlcyhpbnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz9TZXRWYWx1ZXNAQ0lQQWNjZXNzRGVzY3JpcHRvckBAUUVBQVhIS0tIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJUEFjY2Vzc0Rlc2NyaXB0b3I6OlNldFZhbHVlcyhpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFZhbHVlc0BDSVBBY2Nlc3NEZXNjcmlwdG9yQEBRRUFBWEhQRUJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0hlYWRlckxpc3RCb3g6OlNldFdpZHRoc0Zyb21SZWcodm9pZCkgX19wdHI2NA0KKz9TZXRXaWR0aHNGcm9tUmVnQENIZWFkZXJMaXN0Qm94QEBJRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDSUlTV2l6YXJkUGFnZTo6U2V0V2l6YXJkQnV0dG9ucyh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFdpemFyZEJ1dHRvbnNAQ0lJU1dpemFyZFBhZ2VAQElFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSVBBZGRyZXNzOjpTZXRaZXJvVmFsdWUodm9pZCkgX19wdHI2NA0KKz9TZXRaZXJvVmFsdWVAQ0lQQWRkcmVzc0BAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSGVhZGVyTGlzdEJveDo6U2hvd1dpbmRvdyhpbnQpIF9fcHRyNjQNCis/U2hvd1dpbmRvd0BDSGVhZGVyTGlzdEJveEBAUUVBQUhIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENPYkxpc3RQbHVzOjpTb3J0KGludCAoX19jZGVjbCBDT2JqZWN0UGx1czo6KikoY2xhc3MgQ09iamVjdFBsdXMgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0KSBfX3B0cjY0DQorP1NvcnRAQ09iTGlzdFBsdXNAQFFFQUFLUDhDT2JqZWN0UGx1c0BARUJBSFBFQlYyQEBaQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX2NkZWNsIENPYkxpc3RQbHVzOjpTb3J0SGVscGVyKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgY29uc3QgKiBfX3B0cjY0KQ0KKz9Tb3J0SGVscGVyQENPYkxpc3RQbHVzQEBLQUhQRUJYMEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6U3BsaXRNZXRhUGF0aEF0SW5zdGFuY2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0KQ0KKz9TcGxpdE1ldGFQYXRoQXRJbnN0YW5jZUBDTWV0YWJhc2VQYXRoQEBTQVhQRUJHQUVBVkNTdHJpbmdAQDFAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjpTcGxpdFVzZXJOYW1lQW5kRG9tYWluKGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0KQ0KKz9TcGxpdFVzZXJOYW1lQW5kRG9tYWluQENDb21BdXRoSW5mb0BAU0FIQUVBVkNTdHJpbmdAQDBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6OlN0YXJ0KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U3RhcnRAQ0lJU1N2Y0NvbnRyb2xAQFFFQUFKS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSUlTU3ZjQ29udHJvbDo6U3RhdHVzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U3RhdHVzQENJSVNTdmNDb250cm9sQEBRRUFBSktQRUFFUEVBSzFAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6OlN0b3AodW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/U3RvcEBDSUlTU3ZjQ29udHJvbEBAUUVBQUpLSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29tQXV0aEluZm86OlN0b3JlUGFzc3dvcmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1N0b3JlUGFzc3dvcmRAQ0NvbUF1dGhJbmZvQEBRRUFBWFBFQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENJUEFkZHJlc3M6OlN0cmluZ1RvTG9uZyhjbGFzcyBBVEw6OkNDb21CU1RSIGNvbnN0ICYgX19wdHI2NCkNCis/U3RyaW5nVG9Mb25nQENJUEFkZHJlc3NAQFNBS0FFQlZDQ29tQlNUUkBBVExAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0lQQWRkcmVzczo6U3RyaW5nVG9Mb25nKGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0KQ0KKz9TdHJpbmdUb0xvbmdAQ0lQQWRkcmVzc0BAU0FLQUVCVkNTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0lQQWRkcmVzczo6U3RyaW5nVG9Mb25nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpDQorP1N0cmluZ1RvTG9uZ0BDSVBBZGRyZXNzQEBTQUtQRUJHSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENFcnJvcjo6U3VjY2VlZGVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U3VjY2VlZGVkQENFcnJvckBAUUVCQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0Vycm9yOjpTdWNjZWVkZWQobG9uZykNCis/U3VjY2VlZGVkQENFcnJvckBAU0FISkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0lJU0FwcFBvb2w6OlN1Y2NlZWRlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1N1Y2NlZWRlZEBDSUlTQXBwUG9vbEBAVUVCQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6U3VjY2VlZGVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U3VjY2VlZGVkQENJSVNBcHBsaWNhdGlvbkBAVUVCQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENJSVNJbnRlcmZhY2U6OlN1Y2NlZWRlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1N1Y2NlZWRlZEBDSUlTSW50ZXJmYWNlQEBVRUJBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ01ldGFCYWNrOjpTdWNjZWVkZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9TdWNjZWVkZWRAQ01ldGFCYWNrQEBVRUJBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ01ldGFLZXk6OlN1Y2NlZWRlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1N1Y2NlZWRlZEBDTWV0YUtleUBAVUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpTdXBwb3J0c1Bvb2xlZFByb2Modm9pZCljb25zdCAgX19wdHI2NA0KKz9TdXBwb3J0c1Bvb2xlZFByb2NAQ1dhbUludGVyZmFjZUBAUUVCQUhYWg0KKzsgaW50IF9fY2RlY2wgU3VwcG9ydHNTZWN1cml0eUFDTHModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9TdXBwb3J0c1NlY3VyaXR5QUNMc0BAWUFIUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUk1DTGlzdEJveFJlc291cmNlczo6U3lzQ29sb3JDaGFuZ2VkKHZvaWQpIF9fcHRyNjQNCis/U3lzQ29sb3JDaGFuZ2VkQENSTUNMaXN0Qm94UmVzb3VyY2VzQEBRRUFBWFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRXJyb3I6OlRleHRGcm9tSFJFU1VMVChjbGFzcyBDU3RyaW5nICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9UZXh0RnJvbUhSRVNVTFRAQ0Vycm9yQEBRRUJBSkFFQVZDU3RyaW5nQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0Vycm9yOjpUZXh0RnJvbUhSRVNVTFQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/VGV4dEZyb21IUkVTVUxUQENFcnJvckBAUUVCQUpQRUFHS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENFcnJvcjo6VGV4dEZyb21IUkVTVUxURXhwYW5kKGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1RleHRGcm9tSFJFU1VMVEV4cGFuZEBDRXJyb3JAQFFFQkFQRUJHQUVBVkNTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENFcnJvcjo6VGV4dEZyb21IUkVTVUxURXhwYW5kKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGxvbmcgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1RleHRGcm9tSFJFU1VMVEV4cGFuZEBDRXJyb3JAQFFFQkFQRUJHUEVBR0tQRUFKQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ09ETEJveDo6VGV4dEhlaWdodCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1RleHRIZWlnaHRAQ09ETEJveEBAUUVCQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6VHJ1bmNhdGVQYXRoKGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyAqIF9fcHRyNjQpDQorP1RydW5jYXRlUGF0aEBDTWV0YWJhc2VQYXRoQEBTQVBFQkdIUEVCR0FFQVZDU3RyaW5nQEBQRUFWMkBAWg0KKzsgaW50IF9fY2RlY2wgVW5peFRvUENUZXh0KGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/VW5peFRvUENUZXh0QEBZQUhBRUFWQ1N0cmluZ0BAUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSUlTQXBwbGljYXRpb246OlVubG9hZChpbnQpIF9fcHRyNjQNCis/VW5sb2FkQENJSVNBcHBsaWNhdGlvbkBAUUVBQUpIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENSTUNMaXN0Qm94UmVzb3VyY2VzOjpVbnByZXBhcmVCaXRtYXBzKHZvaWQpIF9fcHRyNjQNCis/VW5wcmVwYXJlQml0bWFwc0BDUk1DTGlzdEJveFJlc291cmNlc0BASUVBQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENFcnJvcjo6VW5yZWdpc3RlckZhY2lsaXR5KHVuc2lnbmVkIGxvbmcpDQorP1VucmVnaXN0ZXJGYWNpbGl0eUBDRXJyb3JAQFNBWEtAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDUk1DTGlzdEJveEhlYWRlcjo6VXNlQnV0dG9ucyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1VzZUJ1dHRvbnNAQ1JNQ0xpc3RCb3hIZWFkZXJAQElFQkFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ1JNQ0xpc3RCb3hIZWFkZXI6OlVzZVN0cmV0Y2godm9pZCljb25zdCAgX19wdHI2NA0KKz9Vc2VTdHJldGNoQENSTUNMaXN0Qm94SGVhZGVyQEBJRUJBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDSU51bWJlcjo6VXNlU3lzdGVtRGVmYXVsdCh2b2lkKQ0KKz9Vc2VTeXN0ZW1EZWZhdWx0QENJTnVtYmVyQEBTQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0lOdW1iZXI6OlVzZVVzZXJEZWZhdWx0KHZvaWQpDQorP1VzZVVzZXJEZWZhdWx0QENJTnVtYmVyQEBTQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ29tQXV0aEluZm86OlVzZXNJbXBlcnNvbmF0aW9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/VXNlc0ltcGVyc29uYXRpb25AQ0NvbUF1dGhJbmZvQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJSVNXaXphcmRQYWdlOjpWYWxpZGF0ZVN0cmluZyhjbGFzcyBDRWRpdCAmIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyAmIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz9WYWxpZGF0ZVN0cmluZ0BDSUlTV2l6YXJkUGFnZUBAUUVBQUhBRUFWQ0VkaXRAQEFFQVZDU3RyaW5nQEBISEBaDQorOyBpbnQgX19jZGVjbCBWZXJpZnlTdGF0ZSh2b2lkKQ0KKz9WZXJpZnlTdGF0ZUBAWUFIWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ29tQXV0aEluZm86OlZlcmlmeVVzZXJQYXNzd29yZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9WZXJpZnlVc2VyUGFzc3dvcmRAQ0NvbUF1dGhJbmZvQEBTQUtQRUJHMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRXJyb3I6OldpbjMyRXJyb3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9XaW4zMkVycm9yQENFcnJvckBAUUVCQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENFcnJvcjo6V2luMzJFcnJvcihsb25nKQ0KKz9XaW4zMkVycm9yQENFcnJvckBAU0FLSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENJSVNXaXphcmRTaGVldDo6V2luSGVscFcodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/V2luSGVscFdAQ0lJU1dpemFyZFNoZWV0QEBNRUFBWEtJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6V3JpdGVGcmllbmRseU5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1dyaXRlRnJpZW5kbHlOYW1lQENJSVNBcHBsaWNhdGlvbkBAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6V3JpdGVQb29sSWQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1dyaXRlUG9vbElkQENJSVNBcHBsaWNhdGlvbkBAUUVBQUpQRUJHQFoNCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBDUnVudGltZUNsYXNzICogX19wdHI2NCBfX2NkZWNsIENFbXBoYXNpemVkRGlhbG9nOjpfR2V0QmFzZUNsYXNzKHZvaWQpDQorP19HZXRCYXNlQ2xhc3NAQ0VtcGhhc2l6ZWREaWFsb2dAQEtBUEVBVUNSdW50aW1lQ2xhc3NAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyAqIF9fcHRyNjQgX19jZGVjbCBDSGVhZGVyTGlzdEJveDo6X0dldEJhc2VDbGFzcyh2b2lkKQ0KKz9fR2V0QmFzZUNsYXNzQENIZWFkZXJMaXN0Qm94QEBLQVBFQVVDUnVudGltZUNsYXNzQEBYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IENSdW50aW1lQ2xhc3MgKiBfX3B0cjY0IF9fY2RlY2wgQ0lJU1dpemFyZEJvb2tFbmQ6Ol9HZXRCYXNlQ2xhc3Modm9pZCkNCis/X0dldEJhc2VDbGFzc0BDSUlTV2l6YXJkQm9va0VuZEBAS0FQRUFVQ1J1bnRpbWVDbGFzc0BAWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBDUnVudGltZUNsYXNzICogX19wdHI2NCBfX2NkZWNsIENJSVNXaXphcmRQYWdlOjpfR2V0QmFzZUNsYXNzKHZvaWQpDQorP19HZXRCYXNlQ2xhc3NAQ0lJU1dpemFyZFBhZ2VAQEtBUEVBVUNSdW50aW1lQ2xhc3NAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyAqIF9fcHRyNjQgX19jZGVjbCBDSUlTV2l6YXJkU2hlZXQ6Ol9HZXRCYXNlQ2xhc3Modm9pZCkNCis/X0dldEJhc2VDbGFzc0BDSUlTV2l6YXJkU2hlZXRAQEtBUEVBVUNSdW50aW1lQ2xhc3NAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyAqIF9fcHRyNjQgX19jZGVjbCBDUk1DQ29tYm9Cb3g6Ol9HZXRCYXNlQ2xhc3Modm9pZCkNCis/X0dldEJhc2VDbGFzc0BDUk1DQ29tYm9Cb3hAQEtBUEVBVUNSdW50aW1lQ2xhc3NAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyAqIF9fcHRyNjQgX19jZGVjbCBDUk1DTGlzdEJveDo6X0dldEJhc2VDbGFzcyh2b2lkKQ0KKz9fR2V0QmFzZUNsYXNzQENSTUNMaXN0Qm94QEBLQVBFQVVDUnVudGltZUNsYXNzQEBYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IENSdW50aW1lQ2xhc3MgKiBfX3B0cjY0IF9fY2RlY2wgQ1JNQ0xpc3RCb3hIZWFkZXI6Ol9HZXRCYXNlQ2xhc3Modm9pZCkNCis/X0dldEJhc2VDbGFzc0BDUk1DTGlzdEJveEhlYWRlckBAS0FQRUFVQ1J1bnRpbWVDbGFzc0BAWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBBRlhfTVNHTUFQIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENDb25maXJtRGxnOjpfR2V0QmFzZU1lc3NhZ2VNYXAodm9pZCkNCis/X0dldEJhc2VNZXNzYWdlTWFwQENDb25maXJtRGxnQEBLQVBFQlVBRlhfTVNHTUFQQEBYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVAgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0VtcGhhc2l6ZWREaWFsb2c6Ol9HZXRCYXNlTWVzc2FnZU1hcCh2b2lkKQ0KKz9fR2V0QmFzZU1lc3NhZ2VNYXBAQ0VtcGhhc2l6ZWREaWFsb2dAQEtBUEVCVUFGWF9NU0dNQVBAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSGVhZGVyTGlzdEJveDo6X0dldEJhc2VNZXNzYWdlTWFwKHZvaWQpDQorP19HZXRCYXNlTWVzc2FnZU1hcEBDSGVhZGVyTGlzdEJveEBAS0FQRUJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBBRlhfTVNHTUFQIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENJSVNXaXphcmRCb29rRW5kOjpfR2V0QmFzZU1lc3NhZ2VNYXAodm9pZCkNCis/X0dldEJhc2VNZXNzYWdlTWFwQENJSVNXaXphcmRCb29rRW5kQEBLQVBFQlVBRlhfTVNHTUFQQEBYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVAgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0lJU1dpemFyZFBhZ2U6Ol9HZXRCYXNlTWVzc2FnZU1hcCh2b2lkKQ0KKz9fR2V0QmFzZU1lc3NhZ2VNYXBAQ0lJU1dpemFyZFBhZ2VAQEtBUEVCVUFGWF9NU0dNQVBAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSUlTV2l6YXJkU2hlZXQ6Ol9HZXRCYXNlTWVzc2FnZU1hcCh2b2lkKQ0KKz9fR2V0QmFzZU1lc3NhZ2VNYXBAQ0lJU1dpemFyZFNoZWV0QEBLQVBFQlVBRlhfTVNHTUFQQEBYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVAgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0luaGVyaXRhbmNlRGxnOjpfR2V0QmFzZU1lc3NhZ2VNYXAodm9pZCkNCis/X0dldEJhc2VNZXNzYWdlTWFwQENJbmhlcml0YW5jZURsZ0BAS0FQRUJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBBRlhfTVNHTUFQIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENSTUNDb21ib0JveDo6X0dldEJhc2VNZXNzYWdlTWFwKHZvaWQpDQorP19HZXRCYXNlTWVzc2FnZU1hcEBDUk1DQ29tYm9Cb3hAQEtBUEVCVUFGWF9NU0dNQVBAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDUk1DTGlzdEJveDo6X0dldEJhc2VNZXNzYWdlTWFwKHZvaWQpDQorP19HZXRCYXNlTWVzc2FnZU1hcEBDUk1DTGlzdEJveEBAS0FQRUJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBBRlhfTVNHTUFQIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENSTUNMaXN0Qm94SGVhZGVyOjpfR2V0QmFzZU1lc3NhZ2VNYXAodm9pZCkNCis/X0dldEJhc2VNZXNzYWdlTWFwQENSTUNMaXN0Qm94SGVhZGVyQEBLQVBFQlVBRlhfTVNHTUFQQEBYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ09ETEJveDo6X19EcmF3SXRlbShzdHJ1Y3QgdGFnRFJBV0lURU1TVFJVQ1QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP19fRHJhd0l0ZW1AQ09ETEJveEBASUVBQVhQRUFVdGFnRFJBV0lURU1TVFJVQ1RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ1JNQ0NvbWJvQm94OjpfX0dldENvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X19HZXRDb3VudEBDUk1DQ29tYm9Cb3hAQFVFQkFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDUk1DTGlzdEJveDo6X19HZXRDb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP19fR2V0Q291bnRAQ1JNQ0xpc3RCb3hAQFVFQkFIWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENPRExCb3g6Ol9fTWVhc3VyZUl0ZW0oc3RydWN0IHRhZ01FQVNVUkVJVEVNU1RSVUNUICogX19wdHI2NCkgX19wdHI2NA0KKz9fX01lYXN1cmVJdGVtQENPRExCb3hAQElFQUFYUEVBVXRhZ01FQVNVUkVJVEVNU1RSVUNUQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENSTUNDb21ib0JveDo6X19TZXRJdGVtSGVpZ2h0KGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/X19TZXRJdGVtSGVpZ2h0QENSTUNDb21ib0JveEBAVUVBQUhISUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ1JNQ0xpc3RCb3g6Ol9fU2V0SXRlbUhlaWdodChpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP19fU2V0SXRlbUhlaWdodEBDUk1DTGlzdEJveEBAVUVBQUhISUBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAgQ01ldGFiYXNlUGF0aDo6X2NoU2VwDQorP19jaFNlcEBDTWV0YWJhc2VQYXRoQEAxR0INCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBjb25zdCAgX19wdHI2NCBDTWV0YWJhc2VQYXRoOjpfY3N6TWFjaGluZQ0KKz9fY3N6TWFjaGluZUBDTWV0YWJhc2VQYXRoQEAxUUVCR0VCDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgY29uc3QgIF9fcHRyNjQgQ01ldGFiYXNlUGF0aDo6X2NzelJvb3QNCis/X2NzelJvb3RAQ01ldGFiYXNlUGF0aEBAMVFFQkdFQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IGNvbnN0ICBfX3B0cjY0IENNZXRhYmFzZVBhdGg6Ol9jc3pTZXANCis/X2NzelNlcEBDTWV0YWJhc2VQYXRoQEAxUUVCR0VCDQorOyBwcml2YXRlOiBzdGF0aWMgaW50ICBDSU51bWJlcjo6X2ZBbGxvY2F0ZWQNCis/X2ZBbGxvY2F0ZWRAQ0lOdW1iZXJAQDBIQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgaW50ICBDSU51bWJlcjo6X2ZDdXJyZW5jeVByZWZpeA0KKz9fZkN1cnJlbmN5UHJlZml4QENJTnVtYmVyQEAwSEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGludCAgQ0lOdW1iZXI6Ol9mSW5pdGlhbGl6ZWQNCis/X2ZJbml0aWFsaXplZEBDSU51bWJlckBAMEhBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUF9FTlRSWSBjb25zdCAqIGNvbnN0ICBDQ29uZmlybURsZzo6X21lc3NhZ2VFbnRyaWVzDQorP19tZXNzYWdlRW50cmllc0BDQ29uZmlybURsZ0BAMFFCVUFGWF9NU0dNQVBfRU5UUllAQEINCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUF9FTlRSWSBjb25zdCAqIGNvbnN0ICBDRW1waGFzaXplZERpYWxvZzo6X21lc3NhZ2VFbnRyaWVzDQorP19tZXNzYWdlRW50cmllc0BDRW1waGFzaXplZERpYWxvZ0BAMFFCVUFGWF9NU0dNQVBfRU5UUllAQEINCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUF9FTlRSWSBjb25zdCAqIGNvbnN0ICBDSGVhZGVyTGlzdEJveDo6X21lc3NhZ2VFbnRyaWVzDQorP19tZXNzYWdlRW50cmllc0BDSGVhZGVyTGlzdEJveEBAMFFCVUFGWF9NU0dNQVBfRU5UUllAQEINCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUF9FTlRSWSBjb25zdCAqIGNvbnN0ICBDSUlTV2l6YXJkQm9va0VuZDo6X21lc3NhZ2VFbnRyaWVzDQorP19tZXNzYWdlRW50cmllc0BDSUlTV2l6YXJkQm9va0VuZEBAMFFCVUFGWF9NU0dNQVBfRU5UUllAQEINCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUF9FTlRSWSBjb25zdCAqIGNvbnN0ICBDSUlTV2l6YXJkUGFnZTo6X21lc3NhZ2VFbnRyaWVzDQorP19tZXNzYWdlRW50cmllc0BDSUlTV2l6YXJkUGFnZUBAMFFCVUFGWF9NU0dNQVBfRU5UUllAQEINCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUF9FTlRSWSBjb25zdCAqIGNvbnN0ICBDSUlTV2l6YXJkU2hlZXQ6Ol9tZXNzYWdlRW50cmllcw0KKz9fbWVzc2FnZUVudHJpZXNAQ0lJU1dpemFyZFNoZWV0QEAwUUJVQUZYX01TR01BUF9FTlRSWUBAQg0KKzsgcHJpdmF0ZTogc3RhdGljIHN0cnVjdCBBRlhfTVNHTUFQX0VOVFJZIGNvbnN0ICogY29uc3QgIENJbmhlcml0YW5jZURsZzo6X21lc3NhZ2VFbnRyaWVzDQorP19tZXNzYWdlRW50cmllc0BDSW5oZXJpdGFuY2VEbGdAQDBRQlVBRlhfTVNHTUFQX0VOVFJZQEBCDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVBfRU5UUlkgY29uc3QgKiBjb25zdCAgQ1JNQ0NvbWJvQm94OjpfbWVzc2FnZUVudHJpZXMNCis/X21lc3NhZ2VFbnRyaWVzQENSTUNDb21ib0JveEBAMFFCVUFGWF9NU0dNQVBfRU5UUllAQEINCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUF9FTlRSWSBjb25zdCAqIGNvbnN0ICBDUk1DTGlzdEJveDo6X21lc3NhZ2VFbnRyaWVzDQorP19tZXNzYWdlRW50cmllc0BDUk1DTGlzdEJveEBAMFFCVUFGWF9NU0dNQVBfRU5UUllAQEINCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUF9FTlRSWSBjb25zdCAqIGNvbnN0ICBDUk1DTGlzdEJveEhlYWRlcjo6X21lc3NhZ2VFbnRyaWVzDQorP19tZXNzYWdlRW50cmllc0BDUk1DTGlzdEJveEhlYWRlckBAMFFCVUFGWF9NU0dNQVBfRU5UUllAQEINCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIENTdHJpbmcgKiBfX3B0cjY0ICBfX3B0cjY0IENJTnVtYmVyOjpfcHN0cg0KKz9fcHN0ckBDSU51bWJlckBAMVBFQVZDU3RyaW5nQEBFQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBDU3RyaW5nICogX19wdHI2NCAgX19wdHI2NCBDSU51bWJlcjo6X3BzdHJCYWROdW1iZXINCis/X3BzdHJCYWROdW1iZXJAQ0lOdW1iZXJAQDJQRUFWQ1N0cmluZ0BARUEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENTdHJpbmcgKiBfX3B0cjY0ICBfX3B0cjY0IENJTnVtYmVyOjpfcHN0ckN1cnJlbmN5DQorP19wc3RyQ3VycmVuY3lAQ0lOdW1iZXJAQDBQRUFWQ1N0cmluZ0BARUEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENTdHJpbmcgKiBfX3B0cjY0ICBfX3B0cjY0IENJTnVtYmVyOjpfcHN0ckRlY2ltYWxQb2ludA0KKz9fcHN0ckRlY2ltYWxQb2ludEBDSU51bWJlckBAMFBFQVZDU3RyaW5nQEBFQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ1N0cmluZyAqIF9fcHRyNjQgIF9fcHRyNjQgQ0lOdW1iZXI6Ol9wc3RyVGhvdXNhbmRTZXBhcmF0b3INCis/X3BzdHJUaG91c2FuZFNlcGFyYXRvckBDSU51bWJlckBAMFBFQVZDU3RyaW5nQEBFQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyBjb25zdCAgQ0VtcGhhc2l6ZWREaWFsb2c6OmNsYXNzQ0VtcGhhc2l6ZWREaWFsb2cNCis/Y2xhc3NDRW1waGFzaXplZERpYWxvZ0BDRW1waGFzaXplZERpYWxvZ0BAMlVDUnVudGltZUNsYXNzQEBCDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyBjb25zdCAgQ0hlYWRlckxpc3RCb3g6OmNsYXNzQ0hlYWRlckxpc3RCb3gNCis/Y2xhc3NDSGVhZGVyTGlzdEJveEBDSGVhZGVyTGlzdEJveEBAMlVDUnVudGltZUNsYXNzQEBCDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyBjb25zdCAgQ0lJU1dpemFyZEJvb2tFbmQ6OmNsYXNzQ0lJU1dpemFyZEJvb2tFbmQNCis/Y2xhc3NDSUlTV2l6YXJkQm9va0VuZEBDSUlTV2l6YXJkQm9va0VuZEBAMlVDUnVudGltZUNsYXNzQEBCDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyBjb25zdCAgQ0lJU1dpemFyZFBhZ2U6OmNsYXNzQ0lJU1dpemFyZFBhZ2UNCis/Y2xhc3NDSUlTV2l6YXJkUGFnZUBDSUlTV2l6YXJkUGFnZUBAMlVDUnVudGltZUNsYXNzQEBCDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyBjb25zdCAgQ0lJU1dpemFyZFNoZWV0OjpjbGFzc0NJSVNXaXphcmRTaGVldA0KKz9jbGFzc0NJSVNXaXphcmRTaGVldEBDSUlTV2l6YXJkU2hlZXRAQDJVQ1J1bnRpbWVDbGFzc0BAQg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IENSdW50aW1lQ2xhc3MgY29uc3QgIENSTUNDb21ib0JveDo6Y2xhc3NDUk1DQ29tYm9Cb3gNCis/Y2xhc3NDUk1DQ29tYm9Cb3hAQ1JNQ0NvbWJvQm94QEAyVUNSdW50aW1lQ2xhc3NAQEINCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBDUnVudGltZUNsYXNzIGNvbnN0ICBDUk1DTGlzdEJveDo6Y2xhc3NDUk1DTGlzdEJveA0KKz9jbGFzc0NSTUNMaXN0Qm94QENSTUNMaXN0Qm94QEAyVUNSdW50aW1lQ2xhc3NAQEINCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBDUnVudGltZUNsYXNzIGNvbnN0ICBDUk1DTGlzdEJveEhlYWRlcjo6Y2xhc3NDUk1DTGlzdEJveEhlYWRlcg0KKz9jbGFzc0NSTUNMaXN0Qm94SGVhZGVyQENSTUNMaXN0Qm94SGVhZGVyQEAyVUNSdW50aW1lQ2xhc3NAQEINCis7IHB1YmxpYzogY2xhc3MgQ0RDIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENSTUNMaXN0Qm94UmVzb3VyY2VzOjpkY0JpdE1hcCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2RjQml0TWFwQENSTUNMaXN0Qm94UmVzb3VyY2VzQEBRRUJBQUVCVkNEQ0BAWFoNCis7IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBjb25zdCAgX19wdHI2NCBnX2xwc3pEdW1teVBhc3N3b3JkDQorP2dfbHBzekR1bW15UGFzc3dvcmRAQDNQRUJHRUIgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVAgY29uc3QgIENDb25maXJtRGxnOjptZXNzYWdlTWFwDQorP21lc3NhZ2VNYXBAQ0NvbmZpcm1EbGdAQDFVQUZYX01TR01BUEBAQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVAgY29uc3QgIENFbXBoYXNpemVkRGlhbG9nOjptZXNzYWdlTWFwDQorP21lc3NhZ2VNYXBAQ0VtcGhhc2l6ZWREaWFsb2dAQDFVQUZYX01TR01BUEBAQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVAgY29uc3QgIENIZWFkZXJMaXN0Qm94OjptZXNzYWdlTWFwDQorP21lc3NhZ2VNYXBAQ0hlYWRlckxpc3RCb3hAQDFVQUZYX01TR01BUEBAQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVAgY29uc3QgIENJSVNXaXphcmRCb29rRW5kOjptZXNzYWdlTWFwDQorP21lc3NhZ2VNYXBAQ0lJU1dpemFyZEJvb2tFbmRAQDFVQUZYX01TR01BUEBAQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVAgY29uc3QgIENJSVNXaXphcmRQYWdlOjptZXNzYWdlTWFwDQorP21lc3NhZ2VNYXBAQ0lJU1dpemFyZFBhZ2VAQDFVQUZYX01TR01BUEBAQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVAgY29uc3QgIENJSVNXaXphcmRTaGVldDo6bWVzc2FnZU1hcA0KKz9tZXNzYWdlTWFwQENJSVNXaXphcmRTaGVldEBAMVVBRlhfTVNHTUFQQEBCDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAgQ0luaGVyaXRhbmNlRGxnOjptZXNzYWdlTWFwDQorP21lc3NhZ2VNYXBAQ0luaGVyaXRhbmNlRGxnQEAxVUFGWF9NU0dNQVBAQEINCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBBRlhfTVNHTUFQIGNvbnN0ICBDUk1DQ29tYm9Cb3g6Om1lc3NhZ2VNYXANCis/bWVzc2FnZU1hcEBDUk1DQ29tYm9Cb3hAQDFVQUZYX01TR01BUEBAQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVAgY29uc3QgIENSTUNMaXN0Qm94OjptZXNzYWdlTWFwDQorP21lc3NhZ2VNYXBAQ1JNQ0xpc3RCb3hAQDFVQUZYX01TR01BUEBAQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVAgY29uc3QgIENSTUNMaXN0Qm94SGVhZGVyOjptZXNzYWdlTWFwDQorP21lc3NhZ2VNYXBAQ1JNQ0xpc3RCb3hIZWFkZXJAQDFVQUZYX01TR01BUEBAQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IGNvbnN0ICBDTWV0YUtleTo6c19NZXRhVGFibGVTaXplDQorP3NfTWV0YVRhYmxlU2l6ZUBDTWV0YUtleUBAMUhCDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBsb25nICBDRXJyb3I6OnNfY2R3RmFjaWxpdGllcw0KKz9zX2Nkd0ZhY2lsaXRpZXNAQ0Vycm9yQEAxS0EgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyAgQ0Vycm9yOjpzX2Nkd01heExNRXJyDQorP3NfY2R3TWF4TE1FcnJAQ0Vycm9yQEAxSkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyAgQ0Vycm9yOjpzX2Nkd01heFdTRXJyDQorP3NfY2R3TWF4V1NFcnJAQ0Vycm9yQEAxSkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyAgQ0Vycm9yOjpzX2Nkd01pbkxNRXJyDQorP3NfY2R3TWluTE1FcnJAQ0Vycm9yQEAxSkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyAgQ0Vycm9yOjpzX2Nkd01pbldTRXJyDQorP3NfY2R3TWluV1NFcnJAQ0Vycm9yQEAxSkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgIENFcnJvcjo6c19jaEVzY051bWJlcg0KKz9zX2NoRXNjTnVtYmVyQENFcnJvckBAMUdCDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAgQ0Vycm9yOjpzX2NoRXNjVGV4dA0KKz9zX2NoRXNjVGV4dEBDRXJyb3JAQDFHQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgIENFcnJvcjo6c19jaEVzY2FwZQ0KKz9zX2NoRXNjYXBlQENFcnJvckBAMUdCDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBpbnQgY29uc3QgIENJSVNXaXphcmRTaGVldDo6c19jbkJvbGREZWx0YUZvbnQNCis/c19jbkJvbGREZWx0YUZvbnRAQ0lJU1dpemFyZFNoZWV0QEAxSEINCis7IHByb3RlY3RlZDogc3RhdGljIGludCBjb25zdCAgQ0lJU1dpemFyZFNoZWV0OjpzX2NuQm9sZERlbHRhSGVpZ2h0DQorP3NfY25Cb2xkRGVsdGFIZWlnaHRAQ0lJU1dpemFyZFNoZWV0QEAxSEINCis7IHByb3RlY3RlZDogc3RhdGljIGludCBjb25zdCAgQ0lJU1dpemFyZFNoZWV0OjpzX2NuQm9sZERlbHRhV2lkdGgNCis/c19jbkJvbGREZWx0YVdpZHRoQENJSVNXaXphcmRTaGVldEBAMUhCDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBpbnQgY29uc3QgIENJSVNXaXphcmRQYWdlOjpzX2NuSGVhZGVyT2Zmc2V0DQorP3NfY25IZWFkZXJPZmZzZXRAQ0lJU1dpemFyZFBhZ2VAQDFIQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0ICogIENFcnJvcjo6c19jc3pGYWNpbGl0eQ0KKz9zX2NzekZhY2lsaXR5QENFcnJvckBAMVBBUEVCR0EgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IGNvbnN0ICBfX3B0cjY0IENFcnJvcjo6c19jc3pMTURMTA0KKz9zX2NzekxNRExMQENFcnJvckBAMVBFQkdFQiBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgY29uc3QgIF9fcHRyNjQgQ0Vycm9yOjpzX2NzeldTRExMDQorP3NfY3N6V1NETExAQ0Vycm9yQEAxUEVCR0VCIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGludCAgQ0Vycm9yOjpzX2ZBbGxvY2F0ZWQNCis/c19mQWxsb2NhdGVkQENFcnJvckBAMUhBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIENNYXA8dW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICYgX19wdHI2NCxjbGFzcyBDU3RyaW5nLGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0PiAqIF9fcHRyNjQgIF9fcHRyNjQgQ0Vycm9yOjpzX3BtYXBGYWNpbGl0aWVzDQorP3NfcG1hcEZhY2lsaXRpZXNAQ0Vycm9yQEAxUEVBVj8kQ01hcEBLQUVBS1ZDU3RyaW5nQEBBRUFWMUBAQEVBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIENTdHJpbmcgKiBfX3B0cjY0ICBfX3B0cjY0IENFcnJvcjo6c19wc3RyRGVmRXJyb3INCis/c19wc3RyRGVmRXJyb3JAQ0Vycm9yQEAxUEVBVkNTdHJpbmdAQEVBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIENTdHJpbmcgKiBfX3B0cjY0ICBfX3B0cjY0IENFcnJvcjo6c19wc3RyRGVmU3VjY3MNCis/c19wc3RyRGVmU3VjY3NAQ0Vycm9yQEAxUEVBVkNTdHJpbmdAQEVBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBDTWV0YUtleTo6dGFnTURGSUVMRERFRiBjb25zdCAqIGNvbnN0ICBDTWV0YUtleTo6c19yZ01ldGFUYWJsZQ0KKz9zX3JnTWV0YVRhYmxlQENNZXRhS2V5QEAxUUJVdGFnTURGSUVMRERFRkAxQEINCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBjb25zdCAgX19wdHI2NCBDTWV0YUJhY2s6OnNfc3pNYXN0ZXJBcHBSb290DQorP3Nfc3pNYXN0ZXJBcHBSb290QENNZXRhQmFja0BAMVFFQkdFQg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2lpc3Vpb2JqLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lpc3Vpb2JqLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNTU0ZjFlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaWlzdWlvYmouZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSUlTVUlPYmouRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElJU1VJT2JqLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2lpc3V0aWwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaWlzdXRpbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGM0MjA5ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lpc3V0aWwuZGVmCkBAIC0wLDAgKzEsMjAyOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJSVNVVElMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJSVNVVElMLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBDRGF0YUNhY2hlPHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlk+OjpDRGF0YUNhY2hlPHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlk+KHZvaWQpIF9fcHRyNjQNCis/PzA/JENEYXRhQ2FjaGVAVURBVEVUSU1FX0ZPUk1BVF9FTlRSWUBAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0RhdGFDYWNoZTxjbGFzcyBDRGF0ZVRpbWU+OjpDRGF0YUNhY2hlPGNsYXNzIENEYXRlVGltZT4odm9pZCkgX19wdHI2NA0KKz8/MD8kQ0RhdGFDYWNoZUBWQ0RhdGVUaW1lQEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpBTExPQ19DQUNIRV9IQU5ETEVSKGNoYXIgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBfQUxMT0NfQ0FDSEVfQ09ORklHVVJBVElPTiBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wQUxMT0NfQ0FDSEVfSEFORExFUkBAUUVBQUBQRUJEUEVCVV9BTExPQ19DQUNIRV9DT05GSUdVUkFUSU9OQEBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBBU0NMT0dfREFURVRJTUVfQ0FDSEU6OkFTQ0xPR19EQVRFVElNRV9DQUNIRSh2b2lkKSBfX3B0cjY0DQorPz8wQVNDTE9HX0RBVEVUSU1FX0NBQ0hFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlVGRkVSOjpCVUZGRVIodW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQlVGRkVSQEBRRUFBQElAWg0KKzsgcHVibGljOiBfX2NkZWNsIEJVRkZFUjo6QlVGRkVSKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MEJVRkZFUkBAUUVBQUBQRUFFSUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlVGRkVSX0NIQUlOOjpCVUZGRVJfQ0hBSU4odm9pZCkgX19wdHI2NA0KKz8/MEJVRkZFUl9DSEFJTkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEJVRkZFUl9DSEFJTl9JVEVNOjpCVUZGRVJfQ0hBSU5fSVRFTSh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBCVUZGRVJfQ0hBSU5fSVRFTUBAUUVBQUBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQUNIRURfREFURVRJTUVfRk9STUFUUzo6Q0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFModm9pZCkgX19wdHI2NA0KKz8/MENBQ0hFRF9EQVRFVElNRV9GT1JNQVRTQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NyaXRTZWM6OkNDcml0U2VjKHZvaWQpIF9fcHRyNjQNCis/PzBDQ3JpdFNlY0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENERlRDYWNoZTo6Q0RGVENhY2hlKHZvaWQpIF9fcHRyNjQNCis/PzBDREZUQ2FjaGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRGF0ZVRpbWU6OkNEYXRlVGltZShzdHJ1Y3QgX0ZJTEVUSU1FIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENEYXRlVGltZUBAUUVBQUBBRUJVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENEYXRlVGltZTo6Q0RhdGVUaW1lKHN0cnVjdCBfRklMRVRJTUUgY29uc3QgJiBfX3B0cjY0LHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRGF0ZVRpbWVAQFFFQUFAQUVCVV9GSUxFVElNRUBAQUVCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENEYXRlVGltZTo6Q0RhdGVUaW1lKHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRGF0ZVRpbWVAQFFFQUFAQUVCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENEYXRlVGltZTo6Q0RhdGVUaW1lKHZvaWQpIF9fcHRyNjQNCis/PzBDRGF0ZVRpbWVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRG91YmxlTGlzdDo6Q0RvdWJsZUxpc3Qodm9pZCkgX19wdHI2NA0KKz8/MENEb3VibGVMaXN0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0V0d1RyYWNlcjo6Q0V0d1RyYWNlcih2b2lkKSBfX3B0cjY0DQorPz8wQ0V0d1RyYWNlckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENGYWtlTG9jazo6Q0Zha2VMb2NrKHZvaWQpIF9fcHRyNjQNCis/PzBDRmFrZUxvY2tAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSFVOS19CVUZGRVI6OkNIVU5LX0JVRkZFUih2b2lkKSBfX3B0cjY0DQorPz8wQ0hVTktfQlVGRkVSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6Q0xLUkhhc2hUYWJsZShjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0IGNvbnN0ICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0KSx1bnNpZ25lZCBsb25nIChfX2NkZWNsKikodW5zaWduZWQgX19pbnQ2NCksYm9vbCAoX19jZGVjbCopKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCksdm9pZCAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LGludCksZG91YmxlLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxib29sKSBfX3B0cjY0DQorPz8wQ0xLUkhhc2hUYWJsZUBAUUVBQUBQRUJEUDZBP0JfS1BFQlhAWlA2QUtfS0BaUDZBX04zM0BaUDZBWDFIQFpOS0tfTkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZVN0YXRzOjpDTEtSSGFzaFRhYmxlU3RhdHModm9pZCkgX19wdHI2NA0KKz8/MENMS1JIYXNoVGFibGVTdGF0c0BAUUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIENMS1JIYXNoVGFibGVfSXRlcmF0b3I6OkNMS1JIYXNoVGFibGVfSXRlcmF0b3IoY2xhc3MgQ0xLUkhhc2hUYWJsZSAqIF9fcHRyNjQsc2hvcnQpIF9fcHRyNjQNCis/PzBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBJRUFBQFBFQVZDTEtSSGFzaFRhYmxlQEBGQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yOjpDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yKGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENMS1JIYXNoVGFibGVfSXRlcmF0b3I6OkNMS1JIYXNoVGFibGVfSXRlcmF0b3Iodm9pZCkgX19wdHI2NA0KKz8/MENMS1JIYXNoVGFibGVfSXRlcmF0b3JAQFFFQUFAWFoNCis7IHByaXZhdGU6IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q0xLUkxpbmVhckhhc2hUYWJsZShjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0IGNvbnN0ICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0KSx1bnNpZ25lZCBsb25nIChfX2NkZWNsKikodW5zaWduZWQgX19pbnQ2NCksYm9vbCAoX19jZGVjbCopKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCksdm9pZCAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LGludCksZG91YmxlLHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0xLUkhhc2hUYWJsZSAqIF9fcHRyNjQsYm9vbCkgX19wdHI2NA0KKz8/MENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQUFAUEVCRFA2QT9CX0tQRUJYQFpQNkFLX0tAWlA2QV9OMzNAWlA2QVgxSEBaTktQRUFWQ0xLUkhhc2hUYWJsZUBAX05AWg0KKzsgcHVibGljOiBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkNMS1JMaW5lYXJIYXNoVGFibGUoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCBjb25zdCAgKF9fY2RlY2wqKSh2b2lkIGNvbnN0ICogX19wdHI2NCksdW5zaWduZWQgbG9uZyAoX19jZGVjbCopKHVuc2lnbmVkIF9faW50NjQpLGJvb2wgKF9fY2RlY2wqKSh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQpLHZvaWQgKF9fY2RlY2wqKSh2b2lkIGNvbnN0ICogX19wdHI2NCxpbnQpLGRvdWJsZSx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsYm9vbCkgX19wdHI2NA0KKz8/MENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUFAUEVCRFA2QT9CX0tQRUJYQFpQNkFLX0tAWlA2QV9OMzNAWlA2QVgxSEBaTktLX05AWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3I6OkNMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSAqIF9fcHRyNjQsY2xhc3MgQ05vZGVDbHVtcCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxzaG9ydCkgX19wdHI2NA0KKz8/MENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQElFQUFAUEVBVkNMS1JMaW5lYXJIYXNoVGFibGVAQFBFQVZDTm9kZUNsdW1wQEBLRkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcjo6Q0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcihjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjpDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yKHZvaWQpIF9fcHRyNjQNCis/PzBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0xvY2tlZERvdWJsZUxpc3Q6OkNMb2NrZWREb3VibGVMaXN0KHZvaWQpIF9fcHRyNjQNCis/PzBDTG9ja2VkRG91YmxlTGlzdEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENMb2NrZWRTaW5nbGVMaXN0OjpDTG9ja2VkU2luZ2xlTGlzdCh2b2lkKSBfX3B0cjY0DQorPz8wQ0xvY2tlZFNpbmdsZUxpc3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OkNSZWFkZXJXcml0ZXJMb2NrMih2b2lkKSBfX3B0cjY0DQorPz8wQ1JlYWRlcldyaXRlckxvY2syQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpDUmVhZGVyV3JpdGVyTG9jazModm9pZCkgX19wdHI2NA0KKz8/MENSZWFkZXJXcml0ZXJMb2NrM0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpDUmVhZGVyV3JpdGVyTG9jayh2b2lkKSBfX3B0cjY0DQorPz8wQ1JlYWRlcldyaXRlckxvY2tAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUnRsUmVzb3VyY2U6OkNSdGxSZXNvdXJjZSh2b2lkKSBfX3B0cjY0DQorPz8wQ1J0bFJlc291cmNlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1NlY3VyaXR5RGlzcGVuc2VyOjpDU2VjdXJpdHlEaXNwZW5zZXIodm9pZCkgX19wdHI2NA0KKz8/MENTZWN1cml0eURpc3BlbnNlckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTaGFyZUxvY2s6OkNTaGFyZUxvY2sodm9pZCkgX19wdHI2NA0KKz8/MENTaGFyZUxvY2tAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDU2hhcmVsb2NrOjpDU2hhcmVsb2NrKGludCxpbnQpIF9fcHRyNjQNCis/PzBDU2hhcmVsb2NrQEBRRUFBQEhIQFoNCis7IHB1YmxpYzogX19jZGVjbCBDU2luZ2xlTGlzdDo6Q1NpbmdsZUxpc3Qodm9pZCkgX19wdHI2NA0KKz8/MENTaW5nbGVMaXN0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OkNTbWFsbFNwaW5Mb2NrKHZvaWQpIF9fcHRyNjQNCis/PzBDU21hbGxTcGluTG9ja0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTcGluTG9jazo6Q1NwaW5Mb2NrKHZvaWQpIF9fcHRyNjQNCis/PzBDU3BpbkxvY2tAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBFVkVOVF9MT0c6OkVWRU5UX0xPRyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBFVkVOVF9MT0dAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgRVhUTE9HX0RBVEVUSU1FX0NBQ0hFOjpFWFRMT0dfREFURVRJTUVfQ0FDSEUodm9pZCkgX19wdHI2NA0KKz8/MEVYVExPR19EQVRFVElNRV9DQUNIRUBAUUVBQUBYWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBJUE1fTUVTU0FHRV9QSVBFOjpJUE1fTUVTU0FHRV9QSVBFKHZvaWQpIF9fcHRyNjQNCis/PzBJUE1fTUVTU0FHRV9QSVBFQEBBRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTUI6Ok1CKHN0cnVjdCBJTVNBZG1pbkJhc2VXICogX19wdHI2NCkgX19wdHI2NA0KKz8/ME1CQEBRRUFBQFBFQVVJTVNBZG1pbkJhc2VXQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTks6Ok1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTksodm9pZCkgX19wdHI2NA0KKz8/ME1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTktAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBNVUxUSVNaOjpNVUxUSVNaKGNsYXNzIE1VTFRJU1ogY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTVVMVElTWkBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE1VTFRJU1o6Ok1VTFRJU1oodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBNVUxUSVNaQEBRRUFBQFBFQUdLQFoNCis7IHB1YmxpYzogX19jZGVjbCBNVUxUSVNaOjpNVUxUSVNaKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/ME1VTFRJU1pAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgTVVMVElTWjo6TVVMVElTWih2b2lkKSBfX3B0cjY0DQorPz8wTVVMVElTWkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE1VTFRJU1pBOjpNVUxUSVNaQShjbGFzcyBNVUxUSVNaQSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBNVUxUSVNaQUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE1VTFRJU1pBOjpNVUxUSVNaQShjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wTVVMVElTWkFAQFFFQUFAUEVBREtAWg0KKzsgcHVibGljOiBfX2NkZWNsIE1VTFRJU1pBOjpNVUxUSVNaQShjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/ME1VTFRJU1pBQEBRRUFBQFBFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIE1VTFRJU1pBOjpNVUxUSVNaQSh2b2lkKSBfX3B0cjY0DQorPz8wTVVMVElTWkFAQFFFQUFAWFoNCis7IHByaXZhdGU6IF9fY2RlY2wgU1RSQTo6U1RSQShjbGFzcyBTVFJBIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNUUkFAQEFFQUFAQUVCVjBAQFoNCis7IHByaXZhdGU6IF9fY2RlY2wgU1RSQTo6U1RSQShjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNUUkFAQEFFQUFAUEVBREBaDQorOyBwcml2YXRlOiBfX2NkZWNsIFNUUkE6OlNUUkEoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTVFJBQEBBRUFBQFBFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUkE6OlNUUkEoY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNUUkFAQFFFQUFAUEVBREtAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUkE6OlNUUkEodm9pZCkgX19wdHI2NA0KKz8/MFNUUkFAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTVFJBVTo6U1RSQVUoY2xhc3MgU1RSQVUgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU1RSQVVAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTVFJBVTo6U1RSQVUoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTVFJBVUBAUUVBQUBQRUJEQFoNCis7IHB1YmxpYzogX19jZGVjbCBTVFJBVTo6U1RSQVUoY2hhciBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wU1RSQVVAQFFFQUFAUEVCREhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUkFVOjpTVFJBVSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTVFJBVUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBTVFJBVTo6U1RSQVUodm9pZCkgX19wdHI2NA0KKz8/MFNUUkFVQEBRRUFBQFhaDQorOyBwcml2YXRlOiBfX2NkZWNsIFNUUlU6OlNUUlUoY2xhc3MgU1RSVSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTVFJVQEBBRUFBQEFFQlYwQEBaDQorOyBwcml2YXRlOiBfX2NkZWNsIFNUUlU6OlNUUlUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU1RSVUBAQUVBQUBQRUFHQFoNCis7IHByaXZhdGU6IF9fY2RlY2wgU1RSVTo6U1RSVSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTVFJVQEBBRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUlU6OlNUUlUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBTVFJVQEBRRUFBQFBFQUdLQFoNCis7IHB1YmxpYzogX19jZGVjbCBTVFJVOjpTVFJVKHZvaWQpIF9fcHRyNjQNCis/PzBTVFJVQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVFNfUkVTT1VSQ0U6OlRTX1JFU09VUkNFKHZvaWQpIF9fcHRyNjQNCis/PzBUU19SRVNPVVJDRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFczX0RBVEVUSU1FX0NBQ0hFOjpXM19EQVRFVElNRV9DQUNIRSh2b2lkKSBfX3B0cjY0DQorPz8wVzNfREFURVRJTUVfQ0FDSEVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBXM19UUkFDRV9MT0c6OlczX1RSQUNFX0xPRyhjbGFzcyBXM19UUkFDRV9MT0dfRkFDVE9SWSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXM19UUkFDRV9MT0dAQFFFQUFAUEVBVlczX1RSQUNFX0xPR19GQUNUT1JZQEBAWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBXM19UUkFDRV9MT0dfRkFDVE9SWTo6VzNfVFJBQ0VfTE9HX0ZBQ1RPUlkodm9pZCkgX19wdHI2NA0KKz8/MFczX1RSQUNFX0xPR19GQUNUT1JZQEBBRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQUxMT0NfQ0FDSEVfSEFORExFUjo6fkFMTE9DX0NBQ0hFX0hBTkRMRVIodm9pZCkgX19wdHI2NA0KKz8/MUFMTE9DX0NBQ0hFX0hBTkRMRVJAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIEFTQ0xPR19EQVRFVElNRV9DQUNIRTo6fkFTQ0xPR19EQVRFVElNRV9DQUNIRSh2b2lkKSBfX3B0cjY0DQorPz8xQVNDTE9HX0RBVEVUSU1FX0NBQ0hFQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlVGRkVSOjp+QlVGRkVSKHZvaWQpIF9fcHRyNjQNCis/PzFCVUZGRVJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCVUZGRVJfQ0hBSU46On5CVUZGRVJfQ0hBSU4odm9pZCkgX19wdHI2NA0KKz8/MUJVRkZFUl9DSEFJTkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEJVRkZFUl9DSEFJTl9JVEVNOjp+QlVGRkVSX0NIQUlOX0lURU0odm9pZCkgX19wdHI2NA0KKz8/MUJVRkZFUl9DSEFJTl9JVEVNQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDQUNIRURfREFURVRJTUVfRk9STUFUUzo6fkNBQ0hFRF9EQVRFVElNRV9GT1JNQVRTKHZvaWQpIF9fcHRyNjQNCis/PzFDQUNIRURfREFURVRJTUVfRk9STUFUU0BAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENDcml0U2VjOjp+Q0NyaXRTZWModm9pZCkgX19wdHI2NA0KKz8/MUNDcml0U2VjQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0RvdWJsZUxpc3Q6On5DRG91YmxlTGlzdCh2b2lkKSBfX3B0cjY0DQorPz8xQ0RvdWJsZUxpc3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXR3VHJhY2VyOjp+Q0V0d1RyYWNlcih2b2lkKSBfX3B0cjY0DQorPz8xQ0V0d1RyYWNlckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENGYWtlTG9jazo6fkNGYWtlTG9jayh2b2lkKSBfX3B0cjY0DQorPz8xQ0Zha2VMb2NrQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0hVTktfQlVGRkVSOjp+Q0hVTktfQlVGRkVSKHZvaWQpIF9fcHRyNjQNCis/PzFDSFVOS19CVUZGRVJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTEtSSGFzaFRhYmxlOjp+Q0xLUkhhc2hUYWJsZSh2b2lkKSBfX3B0cjY0DQorPz8xQ0xLUkhhc2hUYWJsZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENMS1JIYXNoVGFibGVfSXRlcmF0b3I6On5DTEtSSGFzaFRhYmxlX0l0ZXJhdG9yKHZvaWQpIF9fcHRyNjQNCis/PzFDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6fkNMS1JMaW5lYXJIYXNoVGFibGUodm9pZCkgX19wdHI2NA0KKz8/MUNMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjp+Q0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcih2b2lkKSBfX3B0cjY0DQorPz8xQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENMb2NrZWREb3VibGVMaXN0Ojp+Q0xvY2tlZERvdWJsZUxpc3Qodm9pZCkgX19wdHI2NA0KKz8/MUNMb2NrZWREb3VibGVMaXN0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0xvY2tlZFNpbmdsZUxpc3Q6On5DTG9ja2VkU2luZ2xlTGlzdCh2b2lkKSBfX3B0cjY0DQorPz8xQ0xvY2tlZFNpbmdsZUxpc3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUnRsUmVzb3VyY2U6On5DUnRsUmVzb3VyY2Uodm9pZCkgX19wdHI2NA0KKz8/MUNSdGxSZXNvdXJjZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTZWN1cml0eURpc3BlbnNlcjo6fkNTZWN1cml0eURpc3BlbnNlcih2b2lkKSBfX3B0cjY0DQorPz8xQ1NlY3VyaXR5RGlzcGVuc2VyQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1NoYXJlTG9jazo6fkNTaGFyZUxvY2sodm9pZCkgX19wdHI2NA0KKz8/MUNTaGFyZUxvY2tAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDU2hhcmVsb2NrOjp+Q1NoYXJlbG9jayh2b2lkKSBfX3B0cjY0DQorPz8xQ1NoYXJlbG9ja0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTaW5nbGVMaXN0Ojp+Q1NpbmdsZUxpc3Qodm9pZCkgX19wdHI2NA0KKz8/MUNTaW5nbGVMaXN0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRVZFTlRfTE9HOjp+RVZFTlRfTE9HKHZvaWQpIF9fcHRyNjQNCis/PzFFVkVOVF9MT0dAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIEVYVExPR19EQVRFVElNRV9DQUNIRTo6fkVYVExPR19EQVRFVElNRV9DQUNIRSh2b2lkKSBfX3B0cjY0DQorPz8xRVhUTE9HX0RBVEVUSU1FX0NBQ0hFQEBVRUFBQFhaDQorOyBwcml2YXRlOiBfX2NkZWNsIElQTV9NRVNTQUdFX1BJUEU6On5JUE1fTUVTU0FHRV9QSVBFKHZvaWQpIF9fcHRyNjQNCis/PzFJUE1fTUVTU0FHRV9QSVBFQEBBRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTUI6On5NQih2b2lkKSBfX3B0cjY0DQorPz8xTUJAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTks6On5NQl9CQVNFX05PVElGSUNBVElPTl9TSU5LKHZvaWQpIF9fcHRyNjQNCis/PzFNQl9CQVNFX05PVElGSUNBVElPTl9TSU5LQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTVVMVElTWjo6fk1VTFRJU1oodm9pZCkgX19wdHI2NA0KKz8/MU1VTFRJU1pAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBNVUxUSVNaQTo6fk1VTFRJU1pBKHZvaWQpIF9fcHRyNjQNCis/PzFNVUxUSVNaQUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUkE6On5TVFJBKHZvaWQpIF9fcHRyNjQNCis/PzFTVFJBQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1RSQVU6On5TVFJBVSh2b2lkKSBfX3B0cjY0DQorPz8xU1RSQVVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTVFJVOjp+U1RSVSh2b2lkKSBfX3B0cjY0DQorPz8xU1RSVUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFRTX1JFU09VUkNFOjp+VFNfUkVTT1VSQ0Uodm9pZCkgX19wdHI2NA0KKz8/MVRTX1JFU09VUkNFQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBXM19EQVRFVElNRV9DQUNIRTo6flczX0RBVEVUSU1FX0NBQ0hFKHZvaWQpIF9fcHRyNjQNCis/PzFXM19EQVRFVElNRV9DQUNIRUBAVUVBQUBYWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBXM19UUkFDRV9MT0c6On5XM19UUkFDRV9MT0codm9pZCkgX19wdHI2NA0KKz8/MVczX1RSQUNFX0xPR0BAQUVBQUBYWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBXM19UUkFDRV9MT0dfRkFDVE9SWTo6flczX1RSQUNFX0xPR19GQUNUT1JZKHZvaWQpIF9fcHRyNjQNCis/PzFXM19UUkFDRV9MT0dfRkFDVE9SWUBAQUVBQUBYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpvcGVyYXRvciBuZXcodW5zaWduZWQgX19pbnQ2NCkNCis/PzJDTEtSTGluZWFySGFzaFRhYmxlQEBTQVBFQVhfS0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6b3BlcmF0b3IgZGVsZXRlKHZvaWQgKiBfX3B0cjY0KQ0KKz8/M0NMS1JMaW5lYXJIYXNoVGFibGVAQFNBWFBFQVhAWg0KKzsgcHVibGljOiBjbGFzcyBDRGF0YUNhY2hlPHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlk+ICYgX19wdHI2NCBfX2NkZWNsIENEYXRhQ2FjaGU8c3RydWN0IERBVEVUSU1FX0ZPUk1BVF9FTlRSWT46Om9wZXJhdG9yPShjbGFzcyBDRGF0YUNhY2hlPHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlk+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ0RhdGFDYWNoZUBVREFURVRJTUVfRk9STUFUX0VOVFJZQEBAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRGF0YUNhY2hlPGNsYXNzIENEYXRlVGltZT4gJiBfX3B0cjY0IF9fY2RlY2wgQ0RhdGFDYWNoZTxjbGFzcyBDRGF0ZVRpbWU+OjpvcGVyYXRvcj0oY2xhc3MgQ0RhdGFDYWNoZTxjbGFzcyBDRGF0ZVRpbWU+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ0RhdGFDYWNoZUBWQ0RhdGVUaW1lQEBAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja0Jhc2U8MSwxLDMsMSwzLDI+ICYgX19wdHI2NCBfX2NkZWNsIENMb2NrQmFzZTwxLDEsMywxLDMsMj46Om9wZXJhdG9yPShjbGFzcyBDTG9ja0Jhc2U8MSwxLDMsMSwzLDI+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ0xvY2tCYXNlQCQwMCQwMCQwMiQwMCQwMiQwMUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrQmFzZTwyLDEsMSwxLDMsMj4gJiBfX3B0cjY0IF9fY2RlY2wgQ0xvY2tCYXNlPDIsMSwxLDEsMywyPjo6b3BlcmF0b3I9KGNsYXNzIENMb2NrQmFzZTwyLDEsMSwxLDMsMj4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDTG9ja0Jhc2VAJDAxJDAwJDAwJDAwJDAyJDAxQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tCYXNlPDMsMSwxLDEsMSwxPiAmIF9fcHRyNjQgX19jZGVjbCBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tCYXNlPDMsMSwxLDEsMSwxPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JENMb2NrQmFzZUAkMDIkMDAkMDAkMDAkMDAkMDBAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja0Jhc2U8NCwxLDEsMiwzLDM+ICYgX19wdHI2NCBfX2NkZWNsIENMb2NrQmFzZTw0LDEsMSwyLDMsMz46Om9wZXJhdG9yPShjbGFzcyBDTG9ja0Jhc2U8NCwxLDEsMiwzLDM+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ0xvY2tCYXNlQCQwMyQwMCQwMCQwMSQwMiQwMkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrQmFzZTw1LDIsMSwyLDMsMz4gJiBfX3B0cjY0IF9fY2RlY2wgQ0xvY2tCYXNlPDUsMiwxLDIsMywzPjo6b3BlcmF0b3I9KGNsYXNzIENMb2NrQmFzZTw1LDIsMSwyLDMsMz4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDTG9ja0Jhc2VAJDA0JDAxJDAwJDAxJDAyJDAyQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tCYXNlPDYsMiwxLDIsMywzPiAmIF9fcHRyNjQgX19jZGVjbCBDTG9ja0Jhc2U8NiwyLDEsMiwzLDM+OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tCYXNlPDYsMiwxLDIsMywzPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JENMb2NrQmFzZUAkMDUkMDEkMDAkMDEkMDIkMDJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja0Jhc2U8NywyLDIsMSwzLDI+ICYgX19wdHI2NCBfX2NkZWNsIENMb2NrQmFzZTw3LDIsMiwxLDMsMj46Om9wZXJhdG9yPShjbGFzcyBDTG9ja0Jhc2U8NywyLDIsMSwzLDI+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ0xvY2tCYXNlQCQwNiQwMSQwMSQwMCQwMiQwMUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrQmFzZTw4LDIsMiwxLDMsMj4gJiBfX3B0cjY0IF9fY2RlY2wgQ0xvY2tCYXNlPDgsMiwyLDEsMywyPjo6b3BlcmF0b3I9KGNsYXNzIENMb2NrQmFzZTw4LDIsMiwxLDMsMj4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDTG9ja0Jhc2VAJDA3JDAxJDAxJDAwJDAyJDAxQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tCYXNlPDksMiwxLDEsMywyPiAmIF9fcHRyNjQgX19jZGVjbCBDTG9ja0Jhc2U8OSwyLDEsMSwzLDI+OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tCYXNlPDksMiwxLDEsMywyPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JENMb2NrQmFzZUAkMDgkMDEkMDAkMDAkMDIkMDFAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBBTExPQ19DQUNIRV9IQU5ETEVSICYgX19wdHI2NCBfX2NkZWNsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6Om9wZXJhdG9yPShjbGFzcyBBTExPQ19DQUNIRV9IQU5ETEVSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBCVUZGRVIgJiBfX3B0cjY0IF9fY2RlY2wgQlVGRkVSOjpvcGVyYXRvcj0oY2xhc3MgQlVGRkVSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NEJVRkZFUkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIEJVRkZFUl9DSEFJTiAmIF9fcHRyNjQgX19jZGVjbCBCVUZGRVJfQ0hBSU46Om9wZXJhdG9yPShjbGFzcyBCVUZGRVJfQ0hBSU4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80QlVGRkVSX0NIQUlOQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQlVGRkVSX0NIQUlOX0lURU0gJiBfX3B0cjY0IF9fY2RlY2wgQlVGRkVSX0NIQUlOX0lURU06Om9wZXJhdG9yPShjbGFzcyBCVUZGRVJfQ0hBSU5fSVRFTSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRCVUZGRVJfQ0hBSU5fSVRFTUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENDcml0U2VjICYgX19wdHI2NCBfX2NkZWNsIENDcml0U2VjOjpvcGVyYXRvcj0oY2xhc3MgQ0NyaXRTZWMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0NyaXRTZWNAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDREZUQ2FjaGUgJiBfX3B0cjY0IF9fY2RlY2wgQ0RGVENhY2hlOjpvcGVyYXRvcj0oY2xhc3MgQ0RGVENhY2hlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENERlRDYWNoZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENEYXRlVGltZSAmIF9fcHRyNjQgX19jZGVjbCBDRGF0ZVRpbWU6Om9wZXJhdG9yPShjbGFzcyBDRGF0ZVRpbWUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0RhdGVUaW1lQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0RvdWJsZUxpc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ0RvdWJsZUxpc3Q6Om9wZXJhdG9yPShjbGFzcyBDRG91YmxlTGlzdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDRG91YmxlTGlzdEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENGYWtlTG9jayAmIF9fcHRyNjQgX19jZGVjbCBDRmFrZUxvY2s6Om9wZXJhdG9yPShjbGFzcyBDRmFrZUxvY2sgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0Zha2VMb2NrQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0hVTktfQlVGRkVSICYgX19wdHI2NCBfX2NkZWNsIENIVU5LX0JVRkZFUjo6b3BlcmF0b3I9KGNsYXNzIENIVU5LX0JVRkZFUiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDSFVOS19CVUZGRVJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTEtSSGFzaFRhYmxlU3RhdHMgJiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZVN0YXRzOjpvcGVyYXRvcj0oY2xhc3MgQ0xLUkhhc2hUYWJsZVN0YXRzIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENMS1JIYXNoVGFibGVTdGF0c0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgJiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6b3BlcmF0b3I9KGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgJiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcjo6b3BlcmF0b3I9KGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrZWREb3VibGVMaXN0ICYgX19wdHI2NCBfX2NkZWNsIENMb2NrZWREb3VibGVMaXN0OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tlZERvdWJsZUxpc3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0xvY2tlZERvdWJsZUxpc3RAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja2VkU2luZ2xlTGlzdCAmIF9fcHRyNjQgX19jZGVjbCBDTG9ja2VkU2luZ2xlTGlzdDo6b3BlcmF0b3I9KGNsYXNzIENMb2NrZWRTaW5nbGVMaXN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENMb2NrZWRTaW5nbGVMaXN0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1JlYWRlcldyaXRlckxvY2syICYgX19wdHI2NCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6b3BlcmF0b3I9KGNsYXNzIENSZWFkZXJXcml0ZXJMb2NrMiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDUmVhZGVyV3JpdGVyTG9jazJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUmVhZGVyV3JpdGVyTG9jazMgJiBfX3B0cjY0IF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpvcGVyYXRvcj0oY2xhc3MgQ1JlYWRlcldyaXRlckxvY2szIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENSZWFkZXJXcml0ZXJMb2NrM0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENSZWFkZXJXcml0ZXJMb2NrICYgX19wdHI2NCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpvcGVyYXRvcj0oY2xhc3MgQ1JlYWRlcldyaXRlckxvY2sgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1JlYWRlcldyaXRlckxvY2tAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUnRsUmVzb3VyY2UgJiBfX3B0cjY0IF9fY2RlY2wgQ1J0bFJlc291cmNlOjpvcGVyYXRvcj0oY2xhc3MgQ1J0bFJlc291cmNlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENSdGxSZXNvdXJjZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTZWN1cml0eURpc3BlbnNlciAmIF9fcHRyNjQgX19jZGVjbCBDU2VjdXJpdHlEaXNwZW5zZXI6Om9wZXJhdG9yPShjbGFzcyBDU2VjdXJpdHlEaXNwZW5zZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1NlY3VyaXR5RGlzcGVuc2VyQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1NpbmdsZUxpc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ1NpbmdsZUxpc3Q6Om9wZXJhdG9yPShjbGFzcyBDU2luZ2xlTGlzdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDU2luZ2xlTGlzdEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTbWFsbFNwaW5Mb2NrICYgX19wdHI2NCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpvcGVyYXRvcj0oY2xhc3MgQ1NtYWxsU3BpbkxvY2sgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1NtYWxsU3BpbkxvY2tAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU3BpbkxvY2sgJiBfX3B0cjY0IF9fY2RlY2wgQ1NwaW5Mb2NrOjpvcGVyYXRvcj0oY2xhc3MgQ1NwaW5Mb2NrIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENTcGluTG9ja0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlkgJiBfX3B0cjY0IF9fY2RlY2wgREFURVRJTUVfRk9STUFUX0VOVFJZOjpvcGVyYXRvcj0oc3RydWN0IERBVEVUSU1FX0ZPUk1BVF9FTlRSWSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzREQVRFVElNRV9GT1JNQVRfRU5UUllAQFFFQUFBRUFVMEBBRUJVMEBAWg0KKzsgcHVibGljOiBjbGFzcyBFVkVOVF9MT0cgJiBfX3B0cjY0IF9fY2RlY2wgRVZFTlRfTE9HOjpvcGVyYXRvcj0oY2xhc3MgRVZFTlRfTE9HIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NEVWRU5UX0xPR0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIElQTV9NRVNTQUdFX1BJUEUgJiBfX3B0cjY0IF9fY2RlY2wgSVBNX01FU1NBR0VfUElQRTo6b3BlcmF0b3I9KGNsYXNzIElQTV9NRVNTQUdFX1BJUEUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80SVBNX01FU1NBR0VfUElQRUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE1CICYgX19wdHI2NCBfX2NkZWNsIE1COjpvcGVyYXRvcj0oY2xhc3MgTUIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TUJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBNVUxUSVNaICYgX19wdHI2NCBfX2NkZWNsIE1VTFRJU1o6Om9wZXJhdG9yPShjbGFzcyBNVUxUSVNaIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE1VTFRJU1pAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBNVUxUSVNaQSAmIF9fcHRyNjQgX19jZGVjbCBNVUxUSVNaQTo6b3BlcmF0b3I9KGNsYXNzIE1VTFRJU1pBIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE1VTFRJU1pBQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHByaXZhdGU6IGNsYXNzIFNUUkEgJiBfX3B0cjY0IF9fY2RlY2wgU1RSQTo6b3BlcmF0b3I9KGNsYXNzIFNUUkEgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U1RSQUBAQUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNUUkFVICYgX19wdHI2NCBfX2NkZWNsIFNUUkFVOjpvcGVyYXRvcj0oY2xhc3MgU1RSQVUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U1RSQVVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHJpdmF0ZTogY2xhc3MgU1RSVSAmIF9fcHRyNjQgX19jZGVjbCBTVFJVOjpvcGVyYXRvcj0oY2xhc3MgU1RSVSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTVFJVQEBBRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgVFNfUkVTT1VSQ0UgJiBfX3B0cjY0IF9fY2RlY2wgVFNfUkVTT1VSQ0U6Om9wZXJhdG9yPShjbGFzcyBUU19SRVNPVVJDRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRUU19SRVNPVVJDRUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFczX1RSQUNFX0xPRyAmIF9fcHRyNjQgX19jZGVjbCBXM19UUkFDRV9MT0c6Om9wZXJhdG9yPShjbGFzcyBXM19UUkFDRV9MT0cgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80VzNfVFJBQ0VfTE9HQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgVzNfVFJBQ0VfTE9HX0ZBQ1RPUlkgJiBfX3B0cjY0IF9fY2RlY2wgVzNfVFJBQ0VfTE9HX0ZBQ1RPUlk6Om9wZXJhdG9yPShjbGFzcyBXM19UUkFDRV9MT0dfRkFDVE9SWSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRXM19UUkFDRV9MT0dfRkFDVE9SWUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yOjpvcGVyYXRvcj09KGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz84Q0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAUUVCQV9OQUVCVjBAQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3I6Om9wZXJhdG9yPT0oY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzhDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBRRUJBX05BRUJWMEBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6b3BlcmF0b3IhPShjbGFzcyBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OUNMS1JIYXNoVGFibGVfSXRlcmF0b3JAQFFFQkFfTkFFQlYwQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjpvcGVyYXRvciE9KGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz85Q0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAUUVCQV9OQUVCVjBAQFoNCis7IGNvbnN0ICBBU0NMT0dfREFURVRJTUVfQ0FDSEU6OmB2ZnRhYmxlJw0KKz8/XzdBU0NMT0dfREFURVRJTUVfQ0FDSEVAQDZCQA0KKzsgY29uc3QgIENBQ0hFRF9EQVRFVElNRV9GT1JNQVRTOjpgdmZ0YWJsZScNCis/P183Q0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFNAQDZCQA0KKzsgY29uc3QgIEVYVExPR19EQVRFVElNRV9DQUNIRTo6YHZmdGFibGUnDQorPz9fN0VYVExPR19EQVRFVElNRV9DQUNIRUBANkJADQorOyBjb25zdCAgVzNfREFURVRJTUVfQ0FDSEU6OmB2ZnRhYmxlJw0KKz8/XzdXM19EQVRFVElNRV9DQUNIRUBANkJADQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCVUZGRVI6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GQlVGRkVSQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCVUZGRVJfQ0hBSU5fSVRFTTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZCVUZGRVJfQ0hBSU5fSVRFTUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NoYXJlbG9jazo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDU2hhcmVsb2NrQEBRRUFBWFhaDQorQUNvcHlUb1cNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1NoYXJlbG9jazo6QWN0aXZlVXNlcnModm9pZCkgX19wdHI2NA0KKz9BY3RpdmVVc2Vyc0BDU2hhcmVsb2NrQEBRRUFBSFhaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgQ0hVTktfQlVGRkVSOjpBZGROZXdCbG9jayh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FkZE5ld0Jsb2NrQENIVU5LX0JVRkZFUkBAQUVBQUpLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTUI6OkFkZE9iamVjdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkT2JqZWN0QE1CQEBRRUFBSFBFQkdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBNQl9CQVNFX05PVElGSUNBVElPTl9TSU5LOjpBZGRSZWYodm9pZCkgX19wdHI2NA0KKz9BZGRSZWZATUJfQkFTRV9OT1RJRklDQVRJT05fU0lOS0BAVUVBQUtYWg0KK0FkZFdwZ1RvVG9rZW5EZWZhdWx0RGFjbA0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1NlY3VyaXR5RGlzcGVuc2VyOjpBZGp1c3RUb2tlbkZvckFkbWluaXN0cmF0b3JzKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkanVzdFRva2VuRm9yQWRtaW5pc3RyYXRvcnNAQ1NlY3VyaXR5RGlzcGVuc2VyQEBRRUFBS1BFQVhAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OkFsbG9jKHZvaWQpIF9fcHRyNjQNCis/QWxsb2NAQUxMT0NfQ0FDSEVfSEFORExFUkBAUUVBQVBFQVhYWg0KK0FsbG9jYXRlQW5kQ3JlYXRlV2VsbEtub3duQWNsDQorQWxsb2NhdGVBbmRDcmVhdGVXZWxsS25vd25TaWQNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENIVU5LX0JVRkZFUjo6QWxsb2NhdGVTcGFjZSh1bnNpZ25lZCBsb25nLGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BbGxvY2F0ZVNwYWNlQENIVU5LX0JVRkZFUkBAUUVBQUpLUEVBUEVBREBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSFVOS19CVUZGRVI6OkFsbG9jYXRlU3BhY2UodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FsbG9jYXRlU3BhY2VAQ0hVTktfQlVGRkVSQEBRRUFBSktQRUFQRUFHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENIVU5LX0JVRkZFUjo6QWxsb2NhdGVTcGFjZSh1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BbGxvY2F0ZVNwYWNlQENIVU5LX0JVRkZFUkBAUUVBQUpLUEVBUEVBWEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSFVOS19CVUZGRVI6OkFsbG9jYXRlU3BhY2UoY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxjaGFyICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWxsb2NhdGVTcGFjZUBDSFVOS19CVUZGRVJAQFFFQUFKUEVBREtQRUFQRUFEQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENIVU5LX0JVRkZFUjo6QWxsb2NhdGVTcGFjZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FsbG9jYXRlU3BhY2VAQ0hVTktfQlVGRkVSQEBRRUFBSlBFQUdLUEVBUEVBR0BaDQorQWx0ZXJEZXNrdG9wRm9yVXNlcg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNVUxUSVNaOjpBcHBlbmQoY2xhc3MgU1RSVSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQE1VTFRJU1pAQFFFQUFIQUVBVlNUUlVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1VTFRJU1o6OkFwcGVuZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQE1VTFRJU1pAQFFFQUFIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1VTFRJU1o6OkFwcGVuZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BcHBlbmRATVVMVElTWkBAUUVBQUhQRUJHS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1VTFRJU1pBOjpBcHBlbmQoY2xhc3MgU1RSQSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQE1VTFRJU1pBQEBRRUFBSEFFQVZTVFJBQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNVUxUSVNaQTo6QXBwZW5kKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FwcGVuZEBNVUxUSVNaQUBAUUVBQUhQRUJEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTVVMVElTWkE6OkFwcGVuZChjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FwcGVuZEBNVUxUSVNaQUBAUUVBQUhQRUJES0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpBcHBlbmQoY2xhc3MgU1RSQSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNUUkFAQFFFQUFKQUVCVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkFwcGVuZChjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRAU1RSQUBAUUVBQUpQRUJEQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkFwcGVuZChjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FwcGVuZEBTVFJBQEBRRUFBSlBFQkRLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSQVU6OkFwcGVuZChjbGFzcyBTVFJBVSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNUUkFVQEBRRUFBSEFFQVYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUkFVOjpBcHBlbmQoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNUUkFVQEBRRUFBSFBFQkRAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJBVTo6QXBwZW5kKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QXBwZW5kQFNUUkFVQEBRRUFBSFBFQkRLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSQVU6OkFwcGVuZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNUUkFVQEBRRUFBSFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJBVTo6QXBwZW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FwcGVuZEBTVFJBVUBAUUVBQUhQRUJHS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJVOjpBcHBlbmQoY2xhc3MgU1RSVSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNUUlVAQFFFQUFKQUVCVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUlU6OkFwcGVuZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNUUlVAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJVOjpBcHBlbmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QXBwZW5kQFNUUlVAQFFFQUFKUEVCR0tAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSVTo6QXBwZW5kQShjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRBQFNUUlVAQFFFQUFKUEVCREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJVRkZFUl9DSEFJTjo6QXBwZW5kQnVmZmVyKGNsYXNzIEJVRkZFUl9DSEFJTl9JVEVNICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRCdWZmZXJAQlVGRkVSX0NIQUlOQEBRRUFBSFBFQVZCVUZGRVJfQ0hBSU5fSVRFTUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFczX1RSQUNFX0xPR19GQUNUT1JZOjpBcHBlbmREYXRhKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QXBwZW5kRGF0YUBXM19UUkFDRV9MT0dfRkFDVE9SWUBAUUVBQUpQRUFYS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1VTFRJU1pBOjpBcHBlbmRXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRXQE1VTFRJU1pBQEBRRUFBSFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNVUxUSVNaQTo6QXBwZW5kVyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BcHBlbmRXQE1VTFRJU1pBQEBRRUFBSFBFQkdLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkFwcGVuZFcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FwcGVuZFdAU1RSQUBAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkFwcGVuZFcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QXBwZW5kV0BTVFJBQEBRRUFBSlBFQkdLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkFwcGVuZFdUcnVuY2F0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kV1RydW5jYXRlQFNUUkFAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpBcHBlbmRXVHJ1bmNhdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QXBwZW5kV1RydW5jYXRlQFNUUkFAQFFFQUFKUEVCR0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6QXBwbHkoZW51bSBMS19BQ1RJT04gIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpLHZvaWQgKiBfX3B0cjY0LGVudW0gTEtfTE9DS1RZUEUpIF9fcHRyNjQNCis/QXBwbHlAQ0xLUkhhc2hUYWJsZUBAUUVBQUtQNkE/QVc0TEtfQUNUSU9OQEBQRUJYUEVBWEBaMVc0TEtfTE9DS1RZUEVAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpBcHBseShlbnVtIExLX0FDVElPTiAgKF9fY2RlY2wqKSh2b2lkIGNvbnN0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCksdm9pZCAqIF9fcHRyNjQsZW51bSBMS19MT0NLVFlQRSkgX19wdHI2NA0KKz9BcHBseUBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUFBS1A2QT9BVzRMS19BQ1RJT05AQFBFQlhQRUFYQFoxVzRMS19MT0NLVFlQRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkFwcGx5SWYoZW51bSBMS19QUkVESUNBVEUgIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpLGVudW0gTEtfQUNUSU9OICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSx2b2lkICogX19wdHI2NCxlbnVtIExLX0xPQ0tUWVBFKSBfX3B0cjY0DQorP0FwcGx5SWZAQ0xLUkhhc2hUYWJsZUBAUUVBQUtQNkE/QVc0TEtfUFJFRElDQVRFQEBQRUJYUEVBWEBaUDZBP0FXNExLX0FDVElPTkBAMDFAWjFXNExLX0xPQ0tUWVBFQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6QXBwbHlJZihlbnVtIExLX1BSRURJQ0FURSAgKF9fY2RlY2wqKSh2b2lkIGNvbnN0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCksZW51bSBMS19BQ1RJT04gIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpLHZvaWQgKiBfX3B0cjY0LGVudW0gTEtfTE9DS1RZUEUpIF9fcHRyNjQNCis/QXBwbHlJZkBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUFBS1A2QT9BVzRMS19QUkVESUNBVEVAQFBFQlhQRUFYQFpQNkE/QVc0TEtfQUNUSU9OQEAwMUBaMVc0TEtfTE9DS1RZUEVAQEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBNVUxUSVNaOjpBdXhBcHBlbmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxpbnQpIF9fcHRyNjQNCis/QXV4QXBwZW5kQE1VTFRJU1pAQEFFQUFIUEVCR0lIQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIE1VTFRJU1pBOjpBdXhBcHBlbmQodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGludCkgX19wdHI2NA0KKz9BdXhBcHBlbmRATVVMVElTWkFAQEFFQUFIUEVCRUlIQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBTVFJBOjpBdXhBcHBlbmQodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz9BdXhBcHBlbmRAU1RSQUBAQUVBQUpQRUJFS0tIQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIFNUUkFVOjpBdXhBcHBlbmQoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGludCkgX19wdHI2NA0KKz9BdXhBcHBlbmRAU1RSQVVAQEFFQUFIUEVCRElIQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIFNUUkFVOjpBdXhBcHBlbmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxpbnQpIF9fcHRyNjQNCis/QXV4QXBwZW5kQFNUUkFVQEBBRUFBSFBFQkdJSEBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgU1RSVTo6QXV4QXBwZW5kKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/QXV4QXBwZW5kQFNUUlVAQEFFQUFKUEVCRUtLSEBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgU1RSVTo6QXV4QXBwZW5kQSh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50KSBfX3B0cjY0DQorP0F1eEFwcGVuZEFAU1RSVUBAQUVBQUpQRUJFS0tIQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIE1VTFRJU1pBOjpBdXhBcHBlbmRXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQsaW50KSBfX3B0cjY0DQorP0F1eEFwcGVuZFdATVVMVElTWkFAQEFFQUFIUEVCR0lIQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBTVFJBOjpBdXhBcHBlbmRXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50KSBfX3B0cjY0DQorP0F1eEFwcGVuZFdAU1RSQUBAQUVBQUpQRUJHS0tIQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBTVFJBOjpBdXhBcHBlbmRXVHJ1bmNhdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/QXV4QXBwZW5kV1RydW5jYXRlQFNUUkFAQEFFQUFKUEVCR0tLSEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTVVMVElTWjo6QXV4SW5pdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXV4SW5pdEBNVUxUSVNaQEBBRUFBWFBFQkdAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIE1VTFRJU1pBOjpBdXhJbml0KHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0F1eEluaXRATVVMVElTWkFAQEFFQUFYUEVCRUBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgU1RSQVU6OkF1eEluaXQoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXV4SW5pdEBTVFJBVUBAQUVBQVhQRUJEQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBTVFJBVTo6QXV4SW5pdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXV4SW5pdEBTVFJBVUBAQUVBQVhQRUJHQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvciAgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpCZWdpbih2b2lkKSBfX3B0cjY0DQorP0JlZ2luQENMS1JIYXNoVGFibGVAQFFFQUE/QVZDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkJlZ2luKHZvaWQpIF9fcHRyNjQNCis/QmVnaW5AQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQT9BVkNMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZVN0YXRzOjpCdWNrZXRJbmRleChsb25nKQ0KKz9CdWNrZXRJbmRleEBDTEtSSGFzaFRhYmxlU3RhdHNAQFNBSkpAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENMS1JIYXNoVGFibGVTdGF0czo6QnVja2V0U2l6ZShsb25nKQ0KKz9CdWNrZXRTaXplQENMS1JIYXNoVGFibGVTdGF0c0BAU0FKSkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENMS1JIYXNoVGFibGVTdGF0czo6QnVja2V0U2l6ZXModm9pZCkNCis/QnVja2V0U2l6ZXNAQ0xLUkhhc2hUYWJsZVN0YXRzQEBTQVBFQkpYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIE1VTFRJU1o6OkNhbGNMZW5ndGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KQ0KKz9DYWxjTGVuZ3RoQE1VTFRJU1pAQFNBS1BFQkdQRUFLQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBNVUxUSVNaQTo6Q2FsY0xlbmd0aChjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkNCis/Q2FsY0xlbmd0aEBNVUxUSVNaQUBAU0FLUEVCRFBFQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQlVGRkVSX0NIQUlOOjpDYWxjVG90YWxTaXplKGludCljb25zdCAgX19wdHI2NA0KKz9DYWxjVG90YWxTaXplQEJVRkZFUl9DSEFJTkBAUUVCQUtIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTaGFyZWxvY2s6OkNoYW5nZUV4Y2x1c2l2ZUxvY2tUb1NoYXJlZExvY2sodm9pZCkgX19wdHI2NA0KKz9DaGFuZ2VFeGNsdXNpdmVMb2NrVG9TaGFyZWRMb2NrQENTaGFyZWxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIENTaGFyZWxvY2s6OkNoYW5nZVNoYXJlZExvY2tUb0V4Y2x1c2l2ZUxvY2soaW50KSBfX3B0cjY0DQorP0NoYW5nZVNoYXJlZExvY2tUb0V4Y2x1c2l2ZUxvY2tAQ1NoYXJlbG9ja0BAUUVBQUVIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6Q2hlY2tUYWJsZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NoZWNrVGFibGVAQ0xLUkhhc2hUYWJsZUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpDaGVja1RhYmxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q2hlY2tUYWJsZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBDU2hhcmVsb2NrOjpDbGFpbUV4Y2x1c2l2ZUxvY2soaW50KSBfX3B0cjY0DQorP0NsYWltRXhjbHVzaXZlTG9ja0BDU2hhcmVsb2NrQEBRRUFBRUhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQ1NoYXJlbG9jazo6Q2xhaW1TaGFyZUxvY2soaW50KSBfX3B0cjY0DQorP0NsYWltU2hhcmVMb2NrQENTaGFyZWxvY2tAQFFFQUFFSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDQ3JpdFNlYzo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDQ3JpdFNlY0BAU0FQRUJHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENGYWtlTG9jazo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDRmFrZUxvY2tAQFNBUEVCR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENMS1JIYXNoVGFibGVAQFNBUEVCR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENMS1JMaW5lYXJIYXNoVGFibGVAQFNBUEVCR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ1JlYWRlcldyaXRlckxvY2syQEBTQVBFQkdYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENSZWFkZXJXcml0ZXJMb2NrM0BAU0FQRUJHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENSZWFkZXJXcml0ZXJMb2NrQEBTQVBFQkdYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDUnRsUmVzb3VyY2U6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ1J0bFJlc291cmNlQEBTQVBFQkRYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDU2hhcmVMb2NrOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENTaGFyZUxvY2tAQFNBUEVCRFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDU21hbGxTcGluTG9jazo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDU21hbGxTcGluTG9ja0BAU0FQRUJHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENTcGluTG9jazo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDU3BpbkxvY2tAQFNBUEVCR1haDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpDbGVhbnVwKHZvaWQpDQorP0NsZWFudXBAQUxMT0NfQ0FDSEVfSEFORExFUkBAU0FIWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpDbGVhbnVwQWxsTG9va2FzaWRlcyh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBjaGFyKQ0KKz9DbGVhbnVwQWxsTG9va2FzaWRlc0BBTExPQ19DQUNIRV9IQU5ETEVSQEBTQVhQRUFYRUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpDbGVhbnVwTG9va2FzaWRlKGludCkgX19wdHI2NA0KKz9DbGVhbnVwTG9va2FzaWRlQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQENMS1JIYXNoVGFibGVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkNsZWFyKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgVzNfVFJBQ0VfTE9HOjpDbGVhckJ1ZmZlcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQnVmZmVyQFczX1RSQUNFX0xPR0BAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNVUxUSVNaOjpDbG9uZShjbGFzcyBNVUxUSVNaICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9DbG9uZUBNVUxUSVNaQEBRRUJBSFBFQVYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1VTFRJU1pBOjpDbG9uZShjbGFzcyBNVUxUSVNaQSAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q2xvbmVATVVMVElTWkFAQFFFQkFIUEVBVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkNsb25lKGNsYXNzIFNUUkEgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0Nsb25lQFNUUkFAQFFFQkFKUEVBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTUI6OkNsb3NlKHZvaWQpIF9fcHRyNjQNCis/Q2xvc2VATUJAQFFFQUFIWFoNCitDb21wYXJlU3RyaW5nTm9DYXNlDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBUU19SRVNPVVJDRTo6Q29udmVydChlbnVtIFRTUkVTX0NPTlZfVFlQRSkgX19wdHI2NA0KKz9Db252ZXJ0QFRTX1JFU09VUkNFQEBRRUFBWFc0VFNSRVNfQ09OVl9UWVBFQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NyaXRTZWM6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZEBDQ3JpdFNlY0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Zha2VMb2NrOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCkgX19wdHI2NA0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ0Zha2VMb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ0xLUkhhc2hUYWJsZUBAUUVCQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENSZWFkZXJXcml0ZXJMb2NrMkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCkgX19wdHI2NA0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ1JlYWRlcldyaXRlckxvY2szQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENSZWFkZXJXcml0ZXJMb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUnRsUmVzb3VyY2U6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZEBDUnRsUmVzb3VyY2VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTaGFyZUxvY2s6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZEBDU2hhcmVMb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU21hbGxTcGluTG9jazo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENTbWFsbFNwaW5Mb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3BpbkxvY2s6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZEBDU3BpbkxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDcml0U2VjOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkgX19wdHI2NA0KKz9Db252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ0NyaXRTZWNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGYWtlTG9jazo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENGYWtlTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENMS1JIYXNoVGFibGVAQFFFQkFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDUmVhZGVyV3JpdGVyTG9jazJAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENSZWFkZXJXcml0ZXJMb2NrM0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDUmVhZGVyV3JpdGVyTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1J0bFJlc291cmNlOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkgX19wdHI2NA0KKz9Db252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ1J0bFJlc291cmNlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU2hhcmVMb2NrOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkgX19wdHI2NA0KKz9Db252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ1NoYXJlTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDU21hbGxTcGluTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NwaW5Mb2NrOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkgX19wdHI2NA0KKz9Db252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ1NwaW5Mb2NrQEBRRUFBWFhaDQorQ29udmVydFVuaWNvZGVUb011bHRpQnl0ZQ0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNVUxUSVNaOjpDb3B5KGNsYXNzIE1VTFRJU1ogY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlATVVMVElTWkBAUUVBQUhBRUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNVUxUSVNaOjpDb3B5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NvcHlATVVMVElTWkBAUUVBQUhQRUJHS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1VTFRJU1pBOjpDb3B5KGNsYXNzIE1VTFRJU1pBIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5QE1VTFRJU1pBQEBRRUFBSEFFQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1VTFRJU1pBOjpDb3B5KGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Q29weUBNVUxUSVNaQUBAUUVBQUhQRUJES0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpDb3B5KGNsYXNzIFNUUkEgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlAU1RSQUBAUUVBQUpBRUJWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSQTo6Q29weShjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5QFNUUkFAQFFFQUFKUEVCREBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpDb3B5KGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Q29weUBTVFJBQEBRRUFBSlBFQkRLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSQVU6OkNvcHkoY2xhc3MgU1RSQVUgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlAU1RSQVVAQFFFQUFIQUVBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSQVU6OkNvcHkoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weUBTVFJBVUBAUUVBQUhQRUJEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSQVU6OkNvcHkoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Db3B5QFNUUkFVQEBRRUFBSFBFQkRLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSQVU6OkNvcHkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlAU1RSQVVAQFFFQUFIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUkFVOjpDb3B5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NvcHlAU1RSQVVAQFFFQUFIUEVCR0tAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSVTo6Q29weShjbGFzcyBTVFJVIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5QFNUUlVAQFFFQUFKQUVCVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUlU6OkNvcHkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlAU1RSVUBAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUlU6OkNvcHkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Q29weUBTVFJVQEBRRUFBSlBFQkdLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUlU6OkNvcHlBKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlBQFNUUlVAQFFFQUFKUEVCREBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJVOjpDb3B5QShjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NvcHlBQFNUUlVAQFFFQUFKUEVCREtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSQTo6Q29weUJpbmFyeSh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NvcHlCaW5hcnlAU1RSQUBAUUVBQUpQRUFYS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENERlRDYWNoZTo6Q29weUZvcm1hdHRlZERhdGEoc3RydWN0IF9TWVNURU1USU1FIGNvbnN0ICogX19wdHI2NCxjaGFyICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db3B5Rm9ybWF0dGVkRGF0YUBDREZUQ2FjaGVAQFFFQkFIUEVCVV9TWVNURU1USU1FQEBQRUFEQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIERBVEVUSU1FX0ZPUk1BVF9FTlRSWTo6Q29weUZvcm1hdHRlZERhdGEoc3RydWN0IF9TWVNURU1USU1FIGNvbnN0ICogX19wdHI2NCxjaGFyICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db3B5Rm9ybWF0dGVkRGF0YUBEQVRFVElNRV9GT1JNQVRfRU5UUllAQFFFQkFYUEVCVV9TWVNURU1USU1FQEBQRUFEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTVVMVElTWjo6Q29weVRvQnVmZmVyKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db3B5VG9CdWZmZXJATVVMVElTWkBAUUVCQUhQRUFHUEVBS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1VTFRJU1pBOjpDb3B5VG9CdWZmZXIoY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q29weVRvQnVmZmVyQE1VTFRJU1pBQEBRRUJBSFBFQURQRUFLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkNvcHlUb0J1ZmZlcihjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db3B5VG9CdWZmZXJAU1RSQUBAUUVCQUpQRUFEUEVBS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJVOjpDb3B5VG9CdWZmZXIodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0NvcHlUb0J1ZmZlckBTVFJVQEBRRUJBSlBFQUdQRUFLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkNvcHlXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5V0BTVFJBQEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSQTo6Q29weVcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Q29weVdAU1RSQUBAUUVBQUpQRUJHS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpDb3B5V1RvVVRGOChjbGFzcyBTVFJVIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5V1RvVVRGOEBTVFJBQEBRRUFBSkFFQlZTVFJVQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSQTo6Q29weVdUb1VURjgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlXVG9VVEY4QFNUUkFAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpDb3B5V1RvVVRGOCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Db3B5V1RvVVRGOEBTVFJBQEBRRUFBSlBFQkdLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkNvcHlXVG9VVEY4VW5lc2NhcGVkKGNsYXNzIFNUUlUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlXVG9VVEY4VW5lc2NhcGVkQFNUUkFAQFFFQUFKQUVCVlNUUlVAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpDb3B5V1RvVVRGOFVuZXNjYXBlZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weVdUb1VURjhVbmVzY2FwZWRAU1RSQUBAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkNvcHlXVG9VVEY4VW5lc2NhcGVkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NvcHlXVG9VVEY4VW5lc2NhcGVkQFNUUkFAQFFFQUFKUEVCR0tAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSQTo6Q29weVdUcnVuY2F0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weVdUcnVuY2F0ZUBTVFJBQEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSQTo6Q29weVdUcnVuY2F0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Db3B5V1RydW5jYXRlQFNUUkFAQFFFQUFKUEVCR0tAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIElQTV9NRVNTQUdFX1BJUEU6OkNyZWF0ZUlwbU1lc3NhZ2VQaXBlKGNsYXNzIElQTV9NRVNTQUdFX0FDQ0VQVE9SICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50LHN0cnVjdCBfU0VDVVJJVFlfQVRUUklCVVRFUyAqIF9fcHRyNjQsY2xhc3MgSVBNX01FU1NBR0VfUElQRSAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9DcmVhdGVJcG1NZXNzYWdlUGlwZUBJUE1fTUVTU0FHRV9QSVBFQEBTQUpQRUFWSVBNX01FU1NBR0VfQUNDRVBUT1JAQFBFQkdIUEVBVV9TRUNVUklUWV9BVFRSSUJVVEVTQEBQRUFQRUFWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVzNfVFJBQ0VfTE9HX0ZBQ1RPUlk6OkNyZWF0ZVRyYWNlTG9nKGNsYXNzIFczX1RSQUNFX0xPRyAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZVRyYWNlTG9nQFczX1RSQUNFX0xPR19GQUNUT1JZQEBRRUFBSlBFQVBFQVZXM19UUkFDRV9MT0dAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgVzNfVFJBQ0VfTE9HX0ZBQ1RPUlk6OkNyZWF0ZVRyYWNlTG9nRmFjdG9yeShjbGFzcyBXM19UUkFDRV9MT0dfRkFDVE9SWSAqIF9fcHRyNjQgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KQ0KKz9DcmVhdGVUcmFjZUxvZ0ZhY3RvcnlAVzNfVFJBQ0VfTE9HX0ZBQ1RPUllAQFNBSlBFQVBFQVYxQFBFQVhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0RGVENhY2hlOjpEYXRlVGltZUNoYXJzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RGF0ZVRpbWVDaGFyc0BDREZUQ2FjaGVAQFFFQkFLWFoNCis7IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgRGF5T2ZXZWVrM0NoYXJOYW1lcyh1bnNpZ25lZCBsb25nKQ0KKz9EYXlPZldlZWszQ2hhck5hbWVzQEBZQVBFQkRLQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBJUE1fTUVTU0FHRV9QSVBFOjpEZWNyZW1lbnRBY2NlcHRvckluVXNlKHZvaWQpIF9fcHRyNjQNCis/RGVjcmVtZW50QWNjZXB0b3JJblVzZUBJUE1fTUVTU0FHRV9QSVBFQEBBRUFBWFhaDQorRGVjcnlwdE1lbW9yeVBhc3N3b3JkDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBCVUZGRVJfQ0hBSU46OkRlbGV0ZUNoYWluKHZvaWQpIF9fcHRyNjQNCis/RGVsZXRlQ2hhaW5AQlVGRkVSX0NIQUlOQEBRRUFBS1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1COjpEZWxldGVEYXRhKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9EZWxldGVEYXRhQE1CQEBRRUFBSFBFQkdLS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6RGVsZXRlSWYoZW51bSBMS19QUkVESUNBVEUgIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpLHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZUlmQENMS1JIYXNoVGFibGVAQFFFQUFLUDZBP0FXNExLX1BSRURJQ0FURUBAUEVCWFBFQVhAWjFAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6RGVsZXRlSWYoZW51bSBMS19QUkVESUNBVEUgIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpLHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZUlmQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUFLUDZBP0FXNExLX1BSRURJQ0FURUBAUEVCWFBFQVhAWjFAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6RGVsZXRlS2V5KHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/RGVsZXRlS2V5QENMS1JIYXNoVGFibGVAQFFFQUE/QVc0TEtfUkVUQ09ERUBAX0tAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6RGVsZXRlS2V5KHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/RGVsZXRlS2V5QENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUE/QVc0TEtfUkVUQ09ERUBAX0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNQjo6RGVsZXRlT2JqZWN0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVPYmplY3RATUJAQFFFQUFIUEVCR0BaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpEZWxldGVSZWNvcmQodm9pZCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlUmVjb3JkQENMS1JIYXNoVGFibGVAQFFFQUE/QVc0TEtfUkVUQ09ERUBAUEVCWEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpEZWxldGVSZWNvcmQodm9pZCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlUmVjb3JkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUE/QVc0TEtfUkVUQ09ERUBAUEVCWEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJUE1fTUVTU0FHRV9QSVBFOjpEZXN0cm95SXBtTWVzc2FnZVBpcGUodm9pZCkgX19wdHI2NA0KKz9EZXN0cm95SXBtTWVzc2FnZVBpcGVASVBNX01FU1NBR0VfUElQRUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgVzNfVFJBQ0VfTE9HOjpEZXN0cm95VHJhY2VMb2codm9pZCkgX19wdHI2NA0KKz9EZXN0cm95VHJhY2VMb2dAVzNfVFJBQ0VfTE9HQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXM19UUkFDRV9MT0dfRkFDVE9SWTo6RGVzdHJveVRyYWNlTG9nRmFjdG9yeSh2b2lkKSBfX3B0cjY0DQorP0Rlc3Ryb3lUcmFjZUxvZ0ZhY3RvcnlAVzNfVFJBQ0VfTE9HX0ZBQ1RPUllAQFFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0V0d1RyYWNlcjo6RGlzYWJsZUV2ZW50c0NhbGxiYWNrQ3VzdG9tSGFuZGxlcih2b2lkKSBfX3B0cjY0DQorP0Rpc2FibGVFdmVudHNDYWxsYmFja0N1c3RvbUhhbmRsZXJAQ0V0d1RyYWNlckBAVUVBQUtYWg0KK0Rpc2FibGVUb2tlbkJhY2t1cFByaXZpbGVnZQ0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQUxMT0NfQ0FDSEVfSEFORExFUjo6RHVtcFN0YXRzVG9IdG1sKGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KQ0KKz9EdW1wU3RhdHNUb0h0bWxAQUxMT0NfQ0FDSEVfSEFORExFUkBAU0FIUEVBRFBFQUtAWg0KK0R1cFRva2VuV2l0aFNhbWVJbXBlcnNvbmF0aW9uTGV2ZWwNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0V0d1RyYWNlcjo6RW5hYmxlRXZlbnRzQ2FsbGJhY2tDdXN0b21IYW5kbGVyKHZvaWQpIF9fcHRyNjQNCis/RW5hYmxlRXZlbnRzQ2FsbGJhY2tDdXN0b21IYW5kbGVyQENFdHdUcmFjZXJAQFVFQUFLWFoNCitFbmNyeXB0TWVtb3J5UGFzc3dvcmQNCis7IHB1YmxpYzogY2xhc3MgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvciAgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpFbmQodm9pZCkgX19wdHI2NA0KKz9FbmRAQ0xLUkhhc2hUYWJsZUBAUUVBQT9BVkNMS1JIYXNoVGFibGVfSXRlcmF0b3JAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6RW5kKHZvaWQpIF9fcHRyNjQNCis/RW5kQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUE/QVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNQjo6RW51bU9iamVjdHModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0VudW1PYmplY3RzQE1CQEBRRUFBSFBFQkdQRUFHS0BaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpFcXVhbFJhbmdlKHVuc2lnbmVkIF9faW50NjQsY2xhc3MgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvciAmIF9fcHRyNjQsY2xhc3MgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RXF1YWxSYW5nZUBDTEtSSGFzaFRhYmxlQEBRRUFBX05fS0FFQVZDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEAxQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkVxdWFsUmFuZ2UodW5zaWduZWQgX19pbnQ2NCxjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yICYgX19wdHI2NCxjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yICYgX19wdHI2NCkgX19wdHI2NA0KKz9FcXVhbFJhbmdlQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUFfTl9LQUVBVkNMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQDFAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJBOjpFcXVhbHMoY2xhc3MgU1RSQSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1YWxzQFNUUkFAQFFFQkFIQUVCVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSQTo6RXF1YWxzKGNoYXIgKiBfX3B0cjY0IGNvbnN0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWFsc0BTVFJBQEBRRUJBSFFFQURAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJVOjpFcXVhbHMoY2xhc3MgU1RSVSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1YWxzQFNUUlVAQFFFQkFIQUVCVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSVTo6RXF1YWxzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVhbHNAU1RSVUBAUUVCQUhQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSQTo6RXF1YWxzTm9DYXNlKGNsYXNzIFNUUkEgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWFsc05vQ2FzZUBTVFJBQEBRRUJBSEFFQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUkE6OkVxdWFsc05vQ2FzZShjaGFyICogX19wdHI2NCBjb25zdCljb25zdCAgX19wdHI2NA0KKz9FcXVhbHNOb0Nhc2VAU1RSQUBAUUVCQUhRRUFEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSVTo6RXF1YWxzTm9DYXNlKGNsYXNzIFNUUlUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWFsc05vQ2FzZUBTVFJVQEBRRUJBSEFFQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUlU6OkVxdWFsc05vQ2FzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1YWxzTm9DYXNlQFNUUlVAQFFFQkFIUEVCR0BaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpFcmFzZShjbGFzcyBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yICYgX19wdHI2NCxjbGFzcyBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yICYgX19wdHI2NCkgX19wdHI2NA0KKz9FcmFzZUBDTEtSSGFzaFRhYmxlQEBRRUFBX05BRUFWQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAMEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpFcmFzZShjbGFzcyBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yICYgX19wdHI2NCkgX19wdHI2NA0KKz9FcmFzZUBDTEtSSGFzaFRhYmxlQEBRRUFBX05BRUFWQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkVyYXNlKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgJiBfX3B0cjY0LGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0VyYXNlQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUFfTkFFQVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEAwQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkVyYXNlKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0VyYXNlQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUFfTkFFQVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSQTo6RXNjYXBlKGludCxpbnQpIF9fcHRyNjQNCis/RXNjYXBlQFNUUkFAQFFFQUFKSEhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSVTo6RXNjYXBlKHZvaWQpIF9fcHRyNjQNCis/RXNjYXBlQFNUUlVAQFFFQUFKWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENFdHdUcmFjZXI6OkV0d1RyYWNlRXZlbnQoc3RydWN0IF9HVUlEIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLC4uLikgX19wdHI2NA0KKz9FdHdUcmFjZUV2ZW50QENFdHdUcmFjZXJAQFFFQUFLUEVCVV9HVUlEQEBLWloNCis7IGludCBfX2NkZWNsIEZpbGVUaW1lVG9HTVQoc3RydWN0IF9GSUxFVElNRSBjb25zdCAmIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/RmlsZVRpbWVUb0dNVEBAWUFIQUVCVV9GSUxFVElNRUBAUEVBREtAWg0KKzsgaW50IF9fY2RlY2wgRmlsZVRpbWVUb0dNVEV4KHN0cnVjdCBfRklMRVRJTUUgY29uc3QgJiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/RmlsZVRpbWVUb0dNVEV4QEBZQUhBRUJVX0ZJTEVUSU1FQEBQRUFES0tAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6RmluZCh1bnNpZ25lZCBfX2ludDY0LGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmRAQ0xLUkhhc2hUYWJsZUBAUUVBQV9OX0tBRUFWQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkZpbmQodW5zaWduZWQgX19pbnQ2NCxjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yICYgX19wdHI2NCkgX19wdHI2NA0KKz9GaW5kQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUFfTl9LQUVBVkNMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpGaW5kS2V5KHVuc2lnbmVkIF9faW50NjQsdm9pZCBjb25zdCAqIF9fcHRyNjQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0ZpbmRLZXlAQ0xLUkhhc2hUYWJsZUBAUUVCQT9BVzRMS19SRVRDT0RFQEBfS1BFQVBFQlhAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6RmluZEtleSh1bnNpZ25lZCBfX2ludDY0LHZvaWQgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9GaW5kS2V5QENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkE/QVc0TEtfUkVUQ09ERUBAX0tQRUFQRUJYQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkZpbmRSZWNvcmQodm9pZCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RmluZFJlY29yZEBDTEtSSGFzaFRhYmxlQEBRRUJBP0FXNExLX1JFVENPREVAQFBFQlhAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6RmluZFJlY29yZCh2b2lkIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9GaW5kUmVjb3JkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkE/QVc0TEtfUkVUQ09ERUBAUEVCWEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1VTFRJU1o6OkZpbmRTdHJpbmcoY2xhc3MgU1RSVSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RmluZFN0cmluZ0BNVUxUSVNaQEBRRUFBSEFFQVZTVFJVQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNVUxUSVNaOjpGaW5kU3RyaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9GaW5kU3RyaW5nQE1VTFRJU1pAQFFFQUFIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1VTFRJU1pBOjpGaW5kU3RyaW5nKGNsYXNzIFNUUkEgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmRTdHJpbmdATVVMVElTWkFAQFFFQUFIQUVBVlNUUkFAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1VTFRJU1pBOjpGaW5kU3RyaW5nKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmRTdHJpbmdATVVMVElTWkFAQFFFQUFIUEVCREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1VTFRJU1o6OkZpbmRTdHJpbmdOb0Nhc2UoY2xhc3MgU1RSVSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RmluZFN0cmluZ05vQ2FzZUBNVUxUSVNaQEBRRUFBSEFFQVZTVFJVQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNVUxUSVNaOjpGaW5kU3RyaW5nTm9DYXNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9GaW5kU3RyaW5nTm9DYXNlQE1VTFRJU1pAQFFFQUFIUEVCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENMaXN0RW50cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ0RvdWJsZUxpc3Q6OkZpcnN0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Rmlyc3RAQ0RvdWJsZUxpc3RAQFFFQkFRRUFWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fcHRyNjQgX19jZGVjbCBDTG9ja2VkRG91YmxlTGlzdDo6Rmlyc3Qodm9pZCkgX19wdHI2NA0KKz9GaXJzdEBDTG9ja2VkRG91YmxlTGlzdEBAUUVBQVFFQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBNVUxUSVNaOjpGaXJzdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0ZpcnN0QE1VTFRJU1pAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBNVUxUSVNaQTo6Rmlyc3Qodm9pZCljb25zdCAgX19wdHI2NA0KKz9GaXJzdEBNVUxUSVNaQUBAUUVCQVBFQkRYWg0KK0ZsaXBTbGFzaGVzDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJBOjpGb3JtYXRTdHJpbmcodW5zaWduZWQgbG9uZyxjaGFyIGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQgY29uc3QsY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Gb3JtYXRTdHJpbmdAU1RSQUBAUUVBQUpLUUVBUEVCRFBFQkRLQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDREZUQ2FjaGU6OkZvcm1hdHRlZEJ1ZmZlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0Zvcm1hdHRlZEJ1ZmZlckBDREZUQ2FjaGVAQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQUxMT0NfQ0FDSEVfSEFORExFUjo6RnJlZSh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9GcmVlQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFFFQUFIUEVBWEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSFVOS19CVUZGRVI6OkZyZWVBbGxBbGxvY2F0ZWRTcGFjZSh2b2lkKSBfX3B0cjY0DQorP0ZyZWVBbGxBbGxvY2F0ZWRTcGFjZUBDSFVOS19CVUZGRVJAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEJVRkZFUjo6RnJlZU1lbW9yeSh2b2lkKSBfX3B0cjY0DQorP0ZyZWVNZW1vcnlAQlVGRkVSQEBRRUFBWFhaDQorRnJlZVNlY3VyaXR5QXR0cmlidXRlcw0KK0ZyZWVXZWxsS25vd25BY2wNCitGcmVlV2VsbEtub3duU2lkDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIEFTQ0xPR19EQVRFVElNRV9DQUNIRTo6R2VuZXJhdGVEYXRlVGltZVN0cmluZyhzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZICogX19wdHI2NCxzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dlbmVyYXRlRGF0ZVRpbWVTdHJpbmdAQVNDTE9HX0RBVEVUSU1FX0NBQ0hFQEBVRUFBWFBFQVVEQVRFVElNRV9GT1JNQVRfRU5UUllAQFBFQlVfU1lTVEVNVElNRUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgRVhUTE9HX0RBVEVUSU1FX0NBQ0hFOjpHZW5lcmF0ZURhdGVUaW1lU3RyaW5nKHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlkgKiBfX3B0cjY0LHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2VuZXJhdGVEYXRlVGltZVN0cmluZ0BFWFRMT0dfREFURVRJTUVfQ0FDSEVAQFVFQUFYUEVBVURBVEVUSU1FX0ZPUk1BVF9FTlRSWUBAUEVCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBXM19EQVRFVElNRV9DQUNIRTo6R2VuZXJhdGVEYXRlVGltZVN0cmluZyhzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZICogX19wdHI2NCxzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dlbmVyYXRlRGF0ZVRpbWVTdHJpbmdAVzNfREFURVRJTUVfQ0FDSEVAQFVFQUFYUEVBVURBVEVUSU1FX0ZPUk1BVF9FTlRSWUBAUEVCVV9TWVNURU1USU1FQEBAWg0KK0dlbmVyYXRlTmFtZVdpdGhHVUlEDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1COjpHZXRBbGwodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBCVUZGRVIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEFsbEBNQkBAUUVBQUhQRUJHS0tQRUFWQlVGRkVSQEBQRUFLMkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6R2V0QnVja2V0TG9ja1NwaW5Db3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEJ1Y2tldExvY2tTcGluQ291bnRAQ0xLUkhhc2hUYWJsZUBAUUVCQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkdldEJ1Y2tldExvY2tTcGluQ291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRCdWNrZXRMb2NrU3BpbkNvdW50QENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFHWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTUI6OkdldEJ1ZmZlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIEJVRkZFUiAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9HZXRCdWZmZXJATUJAQFFFQUFIUEVCR0tLUEVBVkJVRkZFUkBAUEVBS0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNQjo6R2V0Q2hpbGRQYXRocyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQlVGRkVSICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDaGlsZFBhdGhzQE1CQEBRRUFBSFBFQkdQRUFWQlVGRkVSQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNQjo6R2V0RGF0YSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9HZXREYXRhQE1CQEBRRUFBSFBFQkdLS0tQRUFYUEVBS0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNQjo6R2V0RGF0YVBhdGhzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsY2xhc3MgQlVGRkVSICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREYXRhUGF0aHNATUJAQFFFQUFIUEVCR0tLUEVBVkJVRkZFUkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTUI6OkdldERhdGFTZXROdW1iZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERhdGFTZXROdW1iZXJATUJAQFFFQUFIUEVCR1BFQUtAWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgQ0NyaXRTZWM6OkdldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcih2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ0NyaXRTZWNAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBDRmFrZUxvY2s6OkdldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcih2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ0Zha2VMb2NrQEBTQU5YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpHZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3Iodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENSZWFkZXJXcml0ZXJMb2NrMkBAU0FOWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUmVhZGVyV3JpdGVyTG9jazNAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUmVhZGVyV3JpdGVyTG9ja0BAU0FOWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIENSdGxSZXNvdXJjZTo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUnRsUmVzb3VyY2VAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBDU2hhcmVMb2NrOjpHZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3Iodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENTaGFyZUxvY2tAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBDU21hbGxTcGluTG9jazo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDU21hbGxTcGluTG9ja0BAU0FOWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIENTcGluTG9jazo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDU3BpbkxvY2tAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENDcml0U2VjOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ0NyaXRTZWNAQFNBR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENGYWtlTG9jazo6R2V0RGVmYXVsdFNwaW5Db3VudCh2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkNvdW50QENGYWtlTG9ja0BAU0FHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2syQEBTQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OkdldERlZmF1bHRTcGluQ291bnQodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazNAQFNBR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2tAQFNBR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENSdGxSZXNvdXJjZTo6R2V0RGVmYXVsdFNwaW5Db3VudCh2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkNvdW50QENSdGxSZXNvdXJjZUBAU0FHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1NoYXJlTG9jazo6R2V0RGVmYXVsdFNwaW5Db3VudCh2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkNvdW50QENTaGFyZUxvY2tAQFNBR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ1NtYWxsU3BpbkxvY2tAQFNBR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENTcGluTG9jazo6R2V0RGVmYXVsdFNwaW5Db3VudCh2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkNvdW50QENTcGluTG9ja0BAU0FHWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTUI6OkdldER3b3JkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9HZXREd29yZEBNQkBAUUVBQUhQRUJHS0tQRUFLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBNQjo6R2V0RHdvcmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/R2V0RHdvcmRATUJAQFFFQUFYUEVCR0tLS1BFQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIEVWRU5UX0xPRzo6R2V0RXJyb3JDb2RlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0RXJyb3JDb2RlQEVWRU5UX0xPR0BAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFM6OkdldEZvcm1hdHRlZEN1cnJlbnREYXRlVGltZShjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRGb3JtYXR0ZWRDdXJyZW50RGF0ZVRpbWVAQ0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFNAQFFFQUFLUEVBREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQUNIRURfREFURVRJTUVfRk9STUFUUzo6R2V0Rm9ybWF0dGVkRGF0ZVRpbWUoc3RydWN0IF9TWVNURU1USU1FIGNvbnN0ICogX19wdHI2NCxjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRGb3JtYXR0ZWREYXRlVGltZUBDQUNIRURfREFURVRJTUVfRk9STUFUU0BAUUVBQUtQRUJVX1NZU1RFTVRJTUVAQFBFQURAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1NlY3VyaXR5RGlzcGVuc2VyOjpHZXRJaXNXcGdTSUQodm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldElpc1dwZ1NJREBDU2VjdXJpdHlEaXNwZW5zZXJAQFFFQUFLUEVBUEVBWEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1COjpHZXRNdWx0aXN6KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsY2xhc3MgTVVMVElTWiAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9HZXRNdWx0aXN6QE1CQEBRRUFBSFBFQkdLS1BFQVZNVUxUSVNaQEBLQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIEJVRkZFUjo6R2V0TmV3U3RvcmFnZSh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/R2V0TmV3U3RvcmFnZUBCVUZGRVJAQEFFQUFISUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDU2VjdXJpdHlEaXNwZW5zZXI6OkdldFNJRChlbnVtIFdFTExfS05PV05fU0lEX1RZUEUsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFNJREBDU2VjdXJpdHlEaXNwZW5zZXJAQFFFQUFLVzRXRUxMX0tOT1dOX1NJRF9UWVBFQEBQRUFQRUFYQFoNCitHZXRTZWN1cml0eUF0dHJpYnV0ZXNGb3JIYW5kbGUNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDQ3JpdFNlYzo6R2V0U3BpbkNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3BpbkNvdW50QENDcml0U2VjQEBRRUJBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ0Zha2VMb2NrOjpHZXRTcGluQ291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTcGluQ291bnRAQ0Zha2VMb2NrQEBRRUJBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpHZXRTcGluQ291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2syQEBRRUJBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpHZXRTcGluQ291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2szQEBRRUJBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OkdldFNwaW5Db3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9ja0BAUUVCQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENSdGxSZXNvdXJjZTo6R2V0U3BpbkNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3BpbkNvdW50QENSdGxSZXNvdXJjZUBAUUVCQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENTaGFyZUxvY2s6OkdldFNwaW5Db3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFNwaW5Db3VudEBDU2hhcmVMb2NrQEBRRUJBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OkdldFNwaW5Db3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFNwaW5Db3VudEBDU21hbGxTcGluTG9ja0BAUUVCQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENTcGluTG9jazo6R2V0U3BpbkNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3BpbkNvdW50QENTcGluTG9ja0BAUUVCQUdYWg0KKzsgcHVibGljOiBjbGFzcyBDTEtSSGFzaFRhYmxlU3RhdHMgIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6R2V0U3RhdGlzdGljcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0YXRpc3RpY3NAQ0xLUkhhc2hUYWJsZUBAUUVCQT9BVkNMS1JIYXNoVGFibGVTdGF0c0BAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xLUkhhc2hUYWJsZVN0YXRzICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkdldFN0YXRpc3RpY3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdGF0aXN0aWNzQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkE/QVZDTEtSSGFzaFRhYmxlU3RhdHNAQFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1COjpHZXRTdHIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBTVFJVICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRTdHJATUJAQFFFQUFIUEVCR0tLUEVBVlNUUlVAQEswQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTUI6OkdldFN0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldFN0cmluZ0BNQkBAUUVBQUhQRUJHS0tQRUFHUEVBS0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNQjo6R2V0U3lzdGVtQ2hhbmdlTnVtYmVyKHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFN5c3RlbUNoYW5nZU51bWJlckBNQkBAUUVBQUhQRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpHZXRUYWJsZUxvY2tTcGluQ291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRUYWJsZUxvY2tTcGluQ291bnRAQ0xLUkhhc2hUYWJsZUBAUUVCQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkdldFRhYmxlTG9ja1NwaW5Db3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFRhYmxlTG9ja1NwaW5Db3VudEBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBR1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENEYXRlVGltZTo6R2V0VGlja0NvdW50KHZvaWQpIF9fcHRyNjQNCis/R2V0VGlja0NvdW50QENEYXRlVGltZUBAUUVBQUhYWg0KK0dyYW50V3BnQWNjZXNzVG9Ub2tlbg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSQTo6SFRNTEVuY29kZSh2b2lkKSBfX3B0cjY0DQorP0hUTUxFbmNvZGVAU1RSQUBAUUVBQUpYWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENEb3VibGVMaXN0OjpIZWFkTm9kZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0hlYWROb2RlQENEb3VibGVMaXN0QEBRRUJBUUVCVkNMaXN0RW50cnlAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENMaXN0RW50cnkgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0xvY2tlZERvdWJsZUxpc3Q6OkhlYWROb2RlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SGVhZE5vZGVAQ0xvY2tlZERvdWJsZUxpc3RAQFFFQkFRRUJWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JIYXNoVGFibGVfSXRlcmF0b3I6OkluY3JlbWVudCh2b2lkKSBfX3B0cjY0DQorP0luY3JlbWVudEBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcjo6SW5jcmVtZW50KHZvaWQpIF9fcHRyNjQNCis/SW5jcmVtZW50QENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQFFFQUFfTlhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgSVBNX01FU1NBR0VfUElQRTo6SW5jcmVtZW50QWNjZXB0b3JJblVzZSh2b2lkKSBfX3B0cjY0DQorP0luY3JlbWVudEFjY2VwdG9ySW5Vc2VASVBNX01FU1NBR0VfUElQRUBAQUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgVzNfVFJBQ0VfTE9HOjpJbmRlbnQodm9pZCkgX19wdHI2NA0KKz9JbmRlbnRAVzNfVFJBQ0VfTE9HQEBRRUFBWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpJbml0aWFsaXplKHZvaWQpDQorP0luaXRpYWxpemVAQUxMT0NfQ0FDSEVfSEFORExFUkBAU0FIWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDSFVOS19CVUZGRVI6OkluaXRpYWxpemUodm9pZCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQENIVU5LX0JVRkZFUkBAQUVBQVhYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6SW5zZXJ0KHZvaWQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgJiBfX3B0cjY0LGJvb2wpIF9fcHRyNjQNCis/SW5zZXJ0QENMS1JIYXNoVGFibGVAQFFFQUFfTlBFQlhBRUFWQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAX05AWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SW5zZXJ0KHZvaWQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgJiBfX3B0cjY0LGJvb2wpIF9fcHRyNjQNCis/SW5zZXJ0QENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUFfTlBFQlhBRUFWQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAX05AWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RvdWJsZUxpc3Q6Okluc2VydEhlYWQoY2xhc3MgQ0xpc3RFbnRyeSAqIF9fcHRyNjQgY29uc3QpIF9fcHRyNjQNCis/SW5zZXJ0SGVhZEBDRG91YmxlTGlzdEBAUUVBQVhRRUFWQ0xpc3RFbnRyeUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMb2NrZWREb3VibGVMaXN0OjpJbnNlcnRIZWFkKGNsYXNzIENMaXN0RW50cnkgKiBfX3B0cjY0IGNvbnN0KSBfX3B0cjY0DQorP0luc2VydEhlYWRAQ0xvY2tlZERvdWJsZUxpc3RAQFFFQUFYUUVBVkNMaXN0RW50cnlAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQUxMT0NfQ0FDSEVfSEFORExFUjo6SW5zZXJ0TmV3SXRlbShjbGFzcyBBTExPQ19DQUNIRV9IQU5ETEVSICogX19wdHI2NCkNCis/SW5zZXJ0TmV3SXRlbUBBTExPQ19DQUNIRV9IQU5ETEVSQEBTQVhQRUFWMUBAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6SW5zZXJ0UmVjb3JkKHZvaWQgY29uc3QgKiBfX3B0cjY0LGJvb2wpIF9fcHRyNjQNCis/SW5zZXJ0UmVjb3JkQENMS1JIYXNoVGFibGVAQFFFQUE/QVc0TEtfUkVUQ09ERUBAUEVCWF9OQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Okluc2VydFJlY29yZCh2b2lkIGNvbnN0ICogX19wdHI2NCxib29sKSBfX3B0cjY0DQorP0luc2VydFJlY29yZEBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUFBP0FXNExLX1JFVENPREVAQFBFQlhfTkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRG91YmxlTGlzdDo6SW5zZXJ0VGFpbChjbGFzcyBDTGlzdEVudHJ5ICogX19wdHI2NCBjb25zdCkgX19wdHI2NA0KKz9JbnNlcnRUYWlsQENEb3VibGVMaXN0QEBRRUFBWFFFQVZDTGlzdEVudHJ5QEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xvY2tlZERvdWJsZUxpc3Q6Okluc2VydFRhaWwoY2xhc3MgQ0xpc3RFbnRyeSAqIF9fcHRyNjQgY29uc3QpIF9fcHRyNjQNCis/SW5zZXJ0VGFpbEBDTG9ja2VkRG91YmxlTGlzdEBAUUVBQVhRRUFWQ0xpc3RFbnRyeUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQUxMT0NfQ0FDSEVfSEFORExFUjo6SXBQcmludChjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9JcFByaW50QEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFFFQUFIUEVBRFBFQUtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSVBNX01FU1NBR0VfUElQRTo6SXBtTWVzc2FnZUNyZWF0ZWQoY2xhc3MgSVBNX01FU1NBR0VfSU1QICogX19wdHI2NCkgX19wdHI2NA0KKz9JcG1NZXNzYWdlQ3JlYXRlZEBJUE1fTUVTU0FHRV9QSVBFQEBRRUFBWFBFQVZJUE1fTUVTU0FHRV9JTVBAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJUE1fTUVTU0FHRV9QSVBFOjpJcG1NZXNzYWdlRGVsZXRlZChjbGFzcyBJUE1fTUVTU0FHRV9JTVAgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0lwbU1lc3NhZ2VEZWxldGVkQElQTV9NRVNTQUdFX1BJUEVAQFFFQUFYUEVBVklQTV9NRVNTQUdFX0lNUEBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSQVU6OklzQ3VycmVudFVuaWNvZGUodm9pZCkgX19wdHI2NA0KKz9Jc0N1cnJlbnRVbmljb2RlQFNUUkFVQEBRRUFBSFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBCVUZGRVI6OklzRHluQWxsb2NlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRHluQWxsb2NlZEBCVUZGRVJAQEFFQkFIWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENEb3VibGVMaXN0OjpJc0VtcHR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNFbXB0eUBDRG91YmxlTGlzdEBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMb2NrZWREb3VibGVMaXN0OjpJc0VtcHR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNFbXB0eUBDTG9ja2VkRG91YmxlTGlzdEBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMb2NrZWRTaW5nbGVMaXN0OjpJc0VtcHR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNFbXB0eUBDTG9ja2VkU2luZ2xlTGlzdEBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTaW5nbGVMaXN0OjpJc0VtcHR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNFbXB0eUBDU2luZ2xlTGlzdEBAUUVCQV9OWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTVVMVElTWjo6SXNFbXB0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRW1wdHlATVVMVElTWkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNVUxUSVNaQTo6SXNFbXB0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRW1wdHlATVVMVElTWkFAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSQTo6SXNFbXB0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRW1wdHlAU1RSQUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJBVTo6SXNFbXB0eSh2b2lkKSBfX3B0cjY0DQorP0lzRW1wdHlAU1RSQVVAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSVTo6SXNFbXB0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRW1wdHlAU1RSVUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDREZUQ2FjaGU6OklzSGl0KHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/SXNIaXRAQ0RGVENhY2hlQEBRRUJBSFBFQlVfU1lTVEVNVElNRUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgREFURVRJTUVfRk9STUFUX0VOVFJZOjpJc0hpdChzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0lzSGl0QERBVEVUSU1FX0ZPUk1BVF9FTlRSWUBAUUVCQUhQRUJVX1NZU1RFTVRJTUVAQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTG9ja2VkRG91YmxlTGlzdDo6SXNMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0xvY2tlZEBDTG9ja2VkRG91YmxlTGlzdEBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMb2NrZWRTaW5nbGVMaXN0OjpJc0xvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzTG9ja2VkQENMb2NrZWRTaW5nbGVMaXN0QEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0NyaXRTZWM6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZExvY2tlZEBDQ3JpdFNlY0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENGYWtlTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNSZWFkTG9ja2VkQENGYWtlTG9ja0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JIYXNoVGFibGU6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZExvY2tlZEBDTEtSSGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNSZWFkTG9ja2VkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZExvY2tlZEBDUmVhZGVyV3JpdGVyTG9jazJAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZExvY2tlZEBDUmVhZGVyV3JpdGVyTG9jazNAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNSZWFkTG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1J0bFJlc291cmNlOjpJc1JlYWRMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRMb2NrZWRAQ1J0bFJlc291cmNlQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NoYXJlTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNSZWFkTG9ja2VkQENTaGFyZUxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU21hbGxTcGluTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNSZWFkTG9ja2VkQENTbWFsbFNwaW5Mb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NwaW5Mb2NrOjpJc1JlYWRMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRMb2NrZWRAQ1NwaW5Mb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0NyaXRTZWM6OklzUmVhZFVubG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNSZWFkVW5sb2NrZWRAQ0NyaXRTZWNAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRmFrZUxvY2s6OklzUmVhZFVubG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNSZWFkVW5sb2NrZWRAQ0Zha2VMb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRVbmxvY2tlZEBDTEtSSGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRVbmxvY2tlZEBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpJc1JlYWRVbmxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZFVubG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrMkBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRVbmxvY2tlZEBDUmVhZGVyV3JpdGVyTG9jazNAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRVbmxvY2tlZEBDUmVhZGVyV3JpdGVyTG9ja0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSdGxSZXNvdXJjZTo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRVbmxvY2tlZEBDUnRsUmVzb3VyY2VAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU2hhcmVMb2NrOjpJc1JlYWRVbmxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZFVubG9ja2VkQENTaGFyZUxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU21hbGxTcGluTG9jazo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRVbmxvY2tlZEBDU21hbGxTcGluTG9ja0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTcGluTG9jazo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRVbmxvY2tlZEBDU3BpbkxvY2tAQFFFQkFfTlhaDQorSXNTU0xSZXBvcnRpbmdCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTG9ja2VkRG91YmxlTGlzdDo6SXNVbmxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVW5sb2NrZWRAQ0xvY2tlZERvdWJsZUxpc3RAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTG9ja2VkU2luZ2xlTGlzdDo6SXNVbmxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVW5sb2NrZWRAQ0xvY2tlZFNpbmdsZUxpc3RAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpJc1VzYWJsZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVXNhYmxlQENMS1JIYXNoVGFibGVAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpJc1VzYWJsZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVXNhYmxlQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OklzVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1ZhbGlkQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQlVGRkVSOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBCVUZGRVJAQFFFQkFIWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JIYXNoVGFibGU6OklzVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1ZhbGlkQENMS1JIYXNoVGFibGVAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SXNWYWxpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVmFsaWRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3I6OklzVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1ZhbGlkQENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElQTV9NRVNTQUdFX1BJUEU6OklzVmFsaWQodm9pZCkgX19wdHI2NA0KKz9Jc1ZhbGlkQElQTV9NRVNTQUdFX1BJUEVAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTVVMVElTWjo6SXNWYWxpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVmFsaWRATVVMVElTWkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNVUxUSVNaQTo6SXNWYWxpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVmFsaWRATVVMVElTWkFAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSQTo6SXNWYWxpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVmFsaWRAU1RSQUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJBVTo6SXNWYWxpZCh2b2lkKSBfX3B0cjY0DQorP0lzVmFsaWRAU1RSQVVAQFFFQUFIWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENDcml0U2VjOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZUxvY2tlZEBDQ3JpdFNlY0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENGYWtlTG9jazo6SXNXcml0ZUxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV3JpdGVMb2NrZWRAQ0Zha2VMb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6SXNXcml0ZUxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV3JpdGVMb2NrZWRAQ0xLUkhhc2hUYWJsZUBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlTG9ja2VkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlTG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrMkBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6SXNXcml0ZUxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV3JpdGVMb2NrZWRAQ1JlYWRlcldyaXRlckxvY2szQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlTG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1J0bFJlc291cmNlOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZUxvY2tlZEBDUnRsUmVzb3VyY2VAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU2hhcmVMb2NrOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZUxvY2tlZEBDU2hhcmVMb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlTG9ja2VkQENTbWFsbFNwaW5Mb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NwaW5Mb2NrOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZUxvY2tlZEBDU3BpbkxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDQ3JpdFNlYzo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZVVubG9ja2VkQENDcml0U2VjQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0Zha2VMb2NrOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ0Zha2VMb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZVVubG9ja2VkQENMS1JIYXNoVGFibGVAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZVVubG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrMkBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZVVubG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrM0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ1JlYWRlcldyaXRlckxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUnRsUmVzb3VyY2U6OklzV3JpdGVVbmxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV3JpdGVVbmxvY2tlZEBDUnRsUmVzb3VyY2VAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU2hhcmVMb2NrOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ1NoYXJlTG9ja0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ1NtYWxsU3BpbkxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU3BpbkxvY2s6OklzV3JpdGVVbmxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV3JpdGVVbmxvY2tlZEBDU3BpbkxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgY29uc3QgIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6S2V5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/S2V5QENMS1JIYXNoVGFibGVfSXRlcmF0b3JAQFFFQkE/Ql9LWFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBjb25zdCAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjpLZXkodm9pZCljb25zdCAgX19wdHI2NA0KKz9LZXlAQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAUUVCQT9CX0tYWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5ICogX19wdHI2NCBfX2NkZWNsIENEb3VibGVMaXN0OjpMYXN0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TGFzdEBDRG91YmxlTGlzdEBAUUVCQVFFQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5ICogX19wdHI2NCBfX2NkZWNsIENMb2NrZWREb3VibGVMaXN0OjpMYXN0KHZvaWQpIF9fcHRyNjQNCis/TGFzdEBDTG9ja2VkRG91YmxlTGlzdEBAUUVBQVFFQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSQTo6TG9hZFN0cmluZ1codW5zaWduZWQgbG9uZyxzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3B0cjY0KSBfX3B0cjY0DQorP0xvYWRTdHJpbmdXQFNUUkFAQFFFQUFKS1BFQVVISU5TVEFOQ0VfX0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OkxvYWRTdHJpbmdXKHVuc2lnbmVkIGxvbmcsY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Mb2FkU3RyaW5nV0BTVFJBQEBRRUFBSktQRUJES0BaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQUxMT0NfQ0FDSEVfSEFORExFUjo6TG9jayh2b2lkKSBfX3B0cjY0DQorP0xvY2tAQUxMT0NfQ0FDSEVfSEFORExFUkBAQUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xvY2tlZERvdWJsZUxpc3Q6OkxvY2sodm9pZCkgX19wdHI2NA0KKz9Mb2NrQENMb2NrZWREb3VibGVMaXN0QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTG9ja2VkU2luZ2xlTGlzdDo6TG9jayh2b2lkKSBfX3B0cjY0DQorP0xvY2tAQ0xvY2tlZFNpbmdsZUxpc3RAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFRTX1JFU09VUkNFOjpMb2NrKGVudW0gVFNSRVNfTE9DS19UWVBFKSBfX3B0cjY0DQorP0xvY2tAVFNfUkVTT1VSQ0VAQFFFQUFYVzRUU1JFU19MT0NLX1RZUEVAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fY2RlY2wgQ0xvY2tCYXNlPDEsMSwzLDEsMywyPjo6TG9ja1R5cGUodm9pZCkNCis/TG9ja1R5cGVAPyRDTG9ja0Jhc2VAJDAwJDAwJDAyJDAwJDAyJDAxQEBTQT9BVzRMT0NLX0xPQ0tUWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX0xPQ0tUWVBFICBfX2NkZWNsIENMb2NrQmFzZTwyLDEsMSwxLDMsMj46OkxvY2tUeXBlKHZvaWQpDQorP0xvY2tUeXBlQD8kQ0xvY2tCYXNlQCQwMSQwMCQwMCQwMCQwMiQwMUBAU0E/QVc0TE9DS19MT0NLVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19MT0NLVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDIkMDAkMDAkMDAkMDAkMDBAQFNBP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fY2RlY2wgQ0xvY2tCYXNlPDQsMSwxLDIsMywzPjo6TG9ja1R5cGUodm9pZCkNCis/TG9ja1R5cGVAPyRDTG9ja0Jhc2VAJDAzJDAwJDAwJDAxJDAyJDAyQEBTQT9BVzRMT0NLX0xPQ0tUWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX0xPQ0tUWVBFICBfX2NkZWNsIENMb2NrQmFzZTw1LDIsMSwyLDMsMz46OkxvY2tUeXBlKHZvaWQpDQorP0xvY2tUeXBlQD8kQ0xvY2tCYXNlQCQwNCQwMSQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19MT0NLVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19MT0NLVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8NiwyLDEsMiwzLDM+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDUkMDEkMDAkMDEkMDIkMDJAQFNBP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fY2RlY2wgQ0xvY2tCYXNlPDcsMiwyLDEsMywyPjo6TG9ja1R5cGUodm9pZCkNCis/TG9ja1R5cGVAPyRDTG9ja0Jhc2VAJDA2JDAxJDAxJDAwJDAyJDAxQEBTQT9BVzRMT0NLX0xPQ0tUWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX0xPQ0tUWVBFICBfX2NkZWNsIENMb2NrQmFzZTw4LDIsMiwxLDMsMj46OkxvY2tUeXBlKHZvaWQpDQorP0xvY2tUeXBlQD8kQ0xvY2tCYXNlQCQwNyQwMSQwMSQwMCQwMiQwMUBAU0E/QVc0TE9DS19MT0NLVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19MT0NLVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8OSwyLDEsMSwzLDI+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDgkMDEkMDAkMDAkMDIkMDFAQFNBP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBFVkVOVF9MT0c6OkxvZ0V2ZW50KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCBjb25zdCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0xvZ0V2ZW50QEVWRU5UX0xPR0BAUUVBQVhLR1FFQVBFQkdLQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBFVkVOVF9MT0c6OkxvZ0V2ZW50UHJpdmF0ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQgY29uc3QsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Mb2dFdmVudFByaXZhdGVARVZFTlRfTE9HQEBBRUFBWEtHR1FFQVBFQkdLQFoNCitMb29rdXBUb2tlbkFjY291bnROYW1lDQorTWFrZUFsbFByb2Nlc3NIZWFwc0xGSA0KK01ha2VQYXRoQ2Fub25pY2FsaXphdGlvblByb29mDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpNYXhTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TWF4U2l6ZUBDTEtSSGFzaFRhYmxlQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpNYXhTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TWF4U2l6ZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBS1haDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgSVBNX01FU1NBR0VfUElQRTo6TWVzc2FnZVBpcGVDb21wbGV0aW9uKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIpDQorP01lc3NhZ2VQaXBlQ29tcGxldGlvbkBJUE1fTUVTU0FHRV9QSVBFQEBTQVhQRUFYRUBaDQorOyBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE1vbnRoM0NoYXJOYW1lcyh1bnNpZ25lZCBsb25nKQ0KKz9Nb250aDNDaGFyTmFtZXNAQFlBUEVCREtAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6TXVsdGlLZXlzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TXVsdGlLZXlzQENMS1JIYXNoVGFibGVAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpNdWx0aUtleXModm9pZCljb25zdCAgX19wdHI2NA0KKz9NdWx0aUtleXNAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQV9OWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SV19NVVRFWCAgX19jZGVjbCBDTG9ja0Jhc2U8MSwxLDMsMSwzLDI+OjpNdXRleFR5cGUodm9pZCkNCis/TXV0ZXhUeXBlQD8kQ0xvY2tCYXNlQCQwMCQwMCQwMiQwMCQwMiQwMUBAU0E/QVc0TE9DS19SV19NVVRFWEBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SV19NVVRFWCAgX19jZGVjbCBDTG9ja0Jhc2U8MiwxLDEsMSwzLDI+OjpNdXRleFR5cGUodm9pZCkNCis/TXV0ZXhUeXBlQD8kQ0xvY2tCYXNlQCQwMSQwMCQwMCQwMCQwMiQwMUBAU0E/QVc0TE9DS19SV19NVVRFWEBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SV19NVVRFWCAgX19jZGVjbCBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+OjpNdXRleFR5cGUodm9pZCkNCis/TXV0ZXhUeXBlQD8kQ0xvY2tCYXNlQCQwMiQwMCQwMCQwMCQwMCQwMEBAU0E/QVc0TE9DS19SV19NVVRFWEBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SV19NVVRFWCAgX19jZGVjbCBDTG9ja0Jhc2U8NCwxLDEsMiwzLDM+OjpNdXRleFR5cGUodm9pZCkNCis/TXV0ZXhUeXBlQD8kQ0xvY2tCYXNlQCQwMyQwMCQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19SV19NVVRFWEBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SV19NVVRFWCAgX19jZGVjbCBDTG9ja0Jhc2U8NSwyLDEsMiwzLDM+OjpNdXRleFR5cGUodm9pZCkNCis/TXV0ZXhUeXBlQD8kQ0xvY2tCYXNlQCQwNCQwMSQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19SV19NVVRFWEBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SV19NVVRFWCAgX19jZGVjbCBDTG9ja0Jhc2U8NiwyLDEsMiwzLDM+OjpNdXRleFR5cGUodm9pZCkNCis/TXV0ZXhUeXBlQD8kQ0xvY2tCYXNlQCQwNSQwMSQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19SV19NVVRFWEBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SV19NVVRFWCAgX19jZGVjbCBDTG9ja0Jhc2U8NywyLDIsMSwzLDI+OjpNdXRleFR5cGUodm9pZCkNCis/TXV0ZXhUeXBlQD8kQ0xvY2tCYXNlQCQwNiQwMSQwMSQwMCQwMiQwMUBAU0E/QVc0TE9DS19SV19NVVRFWEBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SV19NVVRFWCAgX19jZGVjbCBDTG9ja0Jhc2U8OCwyLDIsMSwzLDI+OjpNdXRleFR5cGUodm9pZCkNCis/TXV0ZXhUeXBlQD8kQ0xvY2tCYXNlQCQwNyQwMSQwMSQwMCQwMiQwMUBAU0E/QVc0TE9DS19SV19NVVRFWEBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SV19NVVRFWCAgX19jZGVjbCBDTG9ja0Jhc2U8OSwyLDEsMSwzLDI+OjpNdXRleFR5cGUodm9pZCkNCis/TXV0ZXhUeXBlQD8kQ0xvY2tCYXNlQCQwOCQwMSQwMCQwMCQwMiQwMUBAU0E/QVc0TE9DS19SV19NVVRFWEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTVVMVElTWjo6TmV4dCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/TmV4dEBNVUxUSVNaQEBRRUJBUEVCR1BFQkdAWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE1VTFRJU1pBOjpOZXh0KGNoYXIgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP05leHRATVVMVElTWkFAQFFFQkFQRUJEUEVCREBaDQorOyBwdWJsaWM6IGNsYXNzIEJVRkZFUl9DSEFJTl9JVEVNICogX19wdHI2NCBfX2NkZWNsIEJVRkZFUl9DSEFJTjo6TmV4dEJ1ZmZlcihjbGFzcyBCVUZGRVJfQ0hBSU5fSVRFTSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TmV4dEJ1ZmZlckBCVUZGRVJfQ0hBSU5AQFFFQUFQRUFWQlVGRkVSX0NIQUlOX0lURU1AQFBFQVYyQEBaDQorOyBsb25nIF9fY2RlY2wgTm9ybWFsaXplVXJsKGNoYXIgKiBfX3B0cjY0KQ0KKz9Ob3JtYWxpemVVcmxAQFlBSlBFQURAWg0KKzsgbG9uZyBfX2NkZWNsIE5vcm1hbGl6ZVVybFcodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9Ob3JtYWxpemVVcmxXQEBZQUpQRUFHQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBJUE1fTUVTU0FHRV9QSVBFOjpOb3RpZnlQaXBlRGlzY29ubmVjdGVkKGxvbmcpIF9fcHRyNjQNCis/Tm90aWZ5UGlwZURpc2Nvbm5lY3RlZEBJUE1fTUVTU0FHRV9QSVBFQEBBRUFBWEpAWg0KKzsgaW50IF9fY2RlY2wgTnRMYXJnZUludGVnZXJUaW1lVG9Mb2NhbFN5c3RlbVRpbWUodW5pb24gX0xBUkdFX0lOVEVHRVIgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBfU1lTVEVNVElNRSAqIF9fcHRyNjQpDQorP050TGFyZ2VJbnRlZ2VyVGltZVRvTG9jYWxTeXN0ZW1UaW1lQEBZQUhQRUJUX0xBUkdFX0lOVEVHRVJAQFBFQVVfU1lTVEVNVElNRUBAQFoNCis7IGludCBfX2NkZWNsIE50TGFyZ2VJbnRlZ2VyVGltZVRvU3lzdGVtVGltZSh1bmlvbiBfTEFSR0VfSU5URUdFUiBjb25zdCAmIF9fcHRyNjQsc3RydWN0IF9TWVNURU1USU1FICogX19wdHI2NCkNCis/TnRMYXJnZUludGVnZXJUaW1lVG9TeXN0ZW1UaW1lQEBZQUhBRUJUX0xBUkdFX0lOVEVHRVJAQFBFQVVfU1lTVEVNVElNRUBAQFoNCis7IGludCBfX2NkZWNsIE50U3lzdGVtVGltZVRvTGFyZ2VJbnRlZ2VyKHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAqIF9fcHRyNjQsdW5pb24gX0xBUkdFX0lOVEVHRVIgKiBfX3B0cjY0KQ0KKz9OdFN5c3RlbVRpbWVUb0xhcmdlSW50ZWdlckBAWUFIUEVCVV9TWVNURU1USU1FQEBQRUFUX0xBUkdFX0lOVEVHRVJAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENMS1JIYXNoVGFibGU6Ok51bVN1YlRhYmxlcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP051bVN1YlRhYmxlc0BDTEtSSGFzaFRhYmxlQEBRRUJBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExLX1RBQkxFU0laRSAgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpOdW1TdWJUYWJsZXModW5zaWduZWQgbG9uZyAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpDQorP051bVN1YlRhYmxlc0BDTEtSSGFzaFRhYmxlQEBTQT9BVzRMS19UQUJMRVNJWkVAQEFFQUswQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6TnVtU3ViVGFibGVzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TnVtU3ViVGFibGVzQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTEtfVEFCTEVTSVpFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ok51bVN1YlRhYmxlcyh1bnNpZ25lZCBsb25nICYgX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCkNCis/TnVtU3ViVGFibGVzQENMS1JMaW5lYXJIYXNoVGFibGVAQFNBP0FXNExLX1RBQkxFU0laRUBAQUVBSzBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDREZUQ2FjaGU6Ok9mZnNldFNlY29uZHModm9pZCljb25zdCAgX19wdHI2NA0KKz9PZmZzZXRTZWNvbmRzQENERlRDYWNoZUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNQjo6T3Blbih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP09wZW5ATUJAQFFFQUFIS1BFQkdLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTUI6Ok9wZW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/T3BlbkBNQkBAUUVBQUhQRUJHS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX2NkZWNsIENMb2NrQmFzZTwxLDEsMywxLDMsMj46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwMCQwMCQwMiQwMCQwMiQwMUBAU0E/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX2NkZWNsIENMb2NrQmFzZTwyLDEsMSwxLDMsMj46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwMSQwMCQwMCQwMCQwMiQwMUBAU0E/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX2NkZWNsIENMb2NrQmFzZTwzLDEsMSwxLDEsMT46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwMiQwMCQwMCQwMCQwMCQwMEBAU0E/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX2NkZWNsIENMb2NrQmFzZTw0LDEsMSwyLDMsMz46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwMyQwMCQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX2NkZWNsIENMb2NrQmFzZTw1LDIsMSwyLDMsMz46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwNCQwMSQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX2NkZWNsIENMb2NrQmFzZTw2LDIsMSwyLDMsMz46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwNSQwMSQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX2NkZWNsIENMb2NrQmFzZTw3LDIsMiwxLDMsMj46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwNiQwMSQwMSQwMCQwMiQwMUBAU0E/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX2NkZWNsIENMb2NrQmFzZTw4LDIsMiwxLDMsMj46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwNyQwMSQwMSQwMCQwMiQwMUBAU0E/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX2NkZWNsIENMb2NrQmFzZTw5LDIsMSwxLDMsMj46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwOCQwMSQwMCQwMCQwMiQwMUBAU0E/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IGNsYXNzIENTaW5nbGVMaXN0RW50cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ0xvY2tlZFNpbmdsZUxpc3Q6OlBvcCh2b2lkKSBfX3B0cjY0DQorP1BvcEBDTG9ja2VkU2luZ2xlTGlzdEBAUUVBQVFFQVZDU2luZ2xlTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDU2luZ2xlTGlzdEVudHJ5ICogX19wdHI2NCBfX2NkZWNsIENTaW5nbGVMaXN0OjpQb3Aodm9pZCkgX19wdHI2NA0KKz9Qb3BAQ1NpbmdsZUxpc3RAQFFFQUFRRUFWQ1NpbmdsZUxpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OlByaW50KHZvaWQpIF9fcHRyNjQNCis/UHJpbnRAQUxMT0NfQ0FDSEVfSEFORExFUkBAUUVBQVhYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgU1RSQVU6OlByaXZhdGVRdWVyeVN0cihpbnQpIF9fcHRyNjQNCis/UHJpdmF0ZVF1ZXJ5U3RyQFNUUkFVQEBBRUFBUEVBR0hAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xvY2tlZFNpbmdsZUxpc3Q6OlB1c2goY2xhc3MgQ1NpbmdsZUxpc3RFbnRyeSAqIF9fcHRyNjQgY29uc3QpIF9fcHRyNjQNCis/UHVzaEBDTG9ja2VkU2luZ2xlTGlzdEBAUUVBQVhRRUFWQ1NpbmdsZUxpc3RFbnRyeUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTaW5nbGVMaXN0OjpQdXNoKGNsYXNzIENTaW5nbGVMaXN0RW50cnkgKiBfX3B0cjY0IGNvbnN0KSBfX3B0cjY0DQorP1B1c2hAQ1NpbmdsZUxpc3RAQFFFQUFYUUVBVkNTaW5nbGVMaXN0RW50cnlAQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBJTVNBZG1pbkJhc2VXICogX19wdHI2NCBfX2NkZWNsIE1COjpRdWVyeUFkbWluQmFzZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QWRtaW5CYXNlQE1CQEBRRUJBUEVBVUlNU0FkbWluQmFzZVdAQFhaDQorOyBwdWJsaWM6IGNsYXNzIEJVRkZFUiAqIF9fcHRyNjQgX19jZGVjbCBTVFJVOjpRdWVyeUJ1ZmZlcih2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5QnVmZmVyQFNUUlVAQFFFQUFQRUFWQlVGRkVSQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBNVUxUSVNaOjpRdWVyeUNCKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDQkBNVUxUSVNaQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIE1VTFRJU1pBOjpRdWVyeUNCKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDQkBNVUxUSVNaQUBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBTVFJBOjpRdWVyeUNCKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDQkBTVFJBQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIFNUUkFVOjpRdWVyeUNCKGludCkgX19wdHI2NA0KKz9RdWVyeUNCQFNUUkFVQEBRRUFBSUhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBTVFJVOjpRdWVyeUNCKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDQkBTVFJVQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIFNUUkFVOjpRdWVyeUNCQSh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5Q0JBQFNUUkFVQEBRRUFBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIFNUUkFVOjpRdWVyeUNCVyh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5Q0JXQFNUUkFVQEBRRUFBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIE1VTFRJU1o6OlF1ZXJ5Q0NIKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDQ0hATVVMVElTWkBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBNVUxUSVNaQTo6UXVlcnlDQ0godm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNDSEBNVUxUSVNaQUBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBTVFJBOjpRdWVyeUNDSCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q0NIQFNUUkFAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgU1RSQVU6OlF1ZXJ5Q0NIKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlDQ0hAU1RSQVVAQFFFQUFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgU1RSVTo6UXVlcnlDQ0godm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNDSEBTVFJVQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRXR3VHJhY2VyOjpRdWVyeUVuYWJsZUxldmVsKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlFbmFibGVMZXZlbEBDRXR3VHJhY2VyQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBNQjo6UXVlcnlIYW5kbGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUhhbmRsZUBNQkBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0hVTktfQlVGRkVSOjpRdWVyeUhlYXBBbGxvY0NvdW50KHZvaWQpIF9fcHRyNjQNCis/UXVlcnlIZWFwQWxsb2NDb3VudEBDSFVOS19CVUZGRVJAQFFFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgTUJfQkFTRV9OT1RJRklDQVRJT05fU0lOSzo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlJbnRlcmZhY2VATUJfQkFTRV9OT1RJRklDQVRJT05fU0lOS0BAVUVBQUpBRUJVX0dVSURAQFBFQVBFQVhAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIEJVRkZFUjo6UXVlcnlQdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVB0ckBCVUZGRVJAQFFFQkFQRUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgQlVGRkVSOjpRdWVyeVNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNpemVAQlVGRkVSQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIFNUUkE6OlF1ZXJ5U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2l6ZUBTVFJBQEBRRUJBSVhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpRdWVyeVN0YXRzKHN0cnVjdCBfQUxMT0NfQ0FDSEVfU1RBVElTVElDUyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlTdGF0c0BBTExPQ19DQUNIRV9IQU5ETEVSQEBRRUFBWFBFQVVfQUxMT0NfQ0FDSEVfU1RBVElTVElDU0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgTVVMVElTWjo6UXVlcnlTdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVN0ckBNVUxUSVNaQEBRRUJBUEVBR1haDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgTVVMVElTWkE6OlF1ZXJ5U3RyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTdHJATVVMVElTWkFAQFFFQkFQRUFEWFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBTVFJBOjpRdWVyeVN0cih2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5U3RyQFNUUkFAQFFFQUFQRUFEWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBTVFJBOjpRdWVyeVN0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U3RyQFNUUkFAQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgU1RSQVU6OlF1ZXJ5U3RyKGludCkgX19wdHI2NA0KKz9RdWVyeVN0ckBTVFJBVUBAUUVBQVBFQUdIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgU1RSVTo6UXVlcnlTdHIodm9pZCkgX19wdHI2NA0KKz9RdWVyeVN0ckBTVFJVQEBRRUFBUEVBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFNUUlU6OlF1ZXJ5U3RyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTdHJAU1RSVUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBNVUxUSVNaOjpRdWVyeVN0ckEodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVN0ckFATVVMVElTWkBAUUVCQVBFQUdYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIFNUUkFVOjpRdWVyeVN0ckEodm9pZCkgX19wdHI2NA0KKz9RdWVyeVN0ckFAU1RSQVVAQFFFQUFQRUFEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgU1RSQVU6OlF1ZXJ5U3RyVyh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5U3RyV0BTVFJBVUBAUUVBQVBFQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTVVMVElTWjo6UXVlcnlTdHJpbmdDb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U3RyaW5nQ291bnRATVVMVElTWkBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTVVMVElTWkE6OlF1ZXJ5U3RyaW5nQ291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVN0cmluZ0NvdW50QE1VTFRJU1pBQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBDRXR3VHJhY2VyOjpRdWVyeVRyYWNlSGFuZGxlKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlUcmFjZUhhbmRsZUBDRXR3VHJhY2VyQEBRRUFBX0tYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQlVGRkVSX0NIQUlOX0lURU06OlF1ZXJ5VXNlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VXNlZEBCVUZGRVJfQ0hBSU5fSVRFTUBAUUVCQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1FVRVVFX1RZUEUgIF9fY2RlY2wgQ0xvY2tCYXNlPDEsMSwzLDEsMywyPjo6UXVldWVUeXBlKHZvaWQpDQorP1F1ZXVlVHlwZUA/JENMb2NrQmFzZUAkMDAkMDAkMDIkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUVVFVUVfVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19RVUVVRV9UWVBFICBfX2NkZWNsIENMb2NrQmFzZTwyLDEsMSwxLDMsMj46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDAxJDAwJDAwJDAwJDAyJDAxQEBTQT9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+OjpRdWV1ZVR5cGUodm9pZCkNCis/UXVldWVUeXBlQD8kQ0xvY2tCYXNlQCQwMiQwMCQwMCQwMCQwMCQwMEBAU0E/QVc0TE9DS19RVUVVRV9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1FVRVVFX1RZUEUgIF9fY2RlY2wgQ0xvY2tCYXNlPDQsMSwxLDIsMywzPjo6UXVldWVUeXBlKHZvaWQpDQorP1F1ZXVlVHlwZUA/JENMb2NrQmFzZUAkMDMkMDAkMDAkMDEkMDIkMDJAQFNBP0FXNExPQ0tfUVVFVUVfVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19RVUVVRV9UWVBFICBfX2NkZWNsIENMb2NrQmFzZTw1LDIsMSwyLDMsMz46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDA0JDAxJDAwJDAxJDAyJDAyQEBTQT9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8NiwyLDEsMiwzLDM+OjpRdWV1ZVR5cGUodm9pZCkNCis/UXVldWVUeXBlQD8kQ0xvY2tCYXNlQCQwNSQwMSQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19RVUVVRV9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1FVRVVFX1RZUEUgIF9fY2RlY2wgQ0xvY2tCYXNlPDcsMiwyLDEsMywyPjo6UXVldWVUeXBlKHZvaWQpDQorP1F1ZXVlVHlwZUA/JENMb2NrQmFzZUAkMDYkMDEkMDEkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUVVFVUVfVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19RVUVVRV9UWVBFICBfX2NkZWNsIENMb2NrQmFzZTw4LDIsMiwxLDMsMj46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDA3JDAxJDAxJDAwJDAyJDAxQEBTQT9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8OSwyLDEsMSwzLDI+OjpRdWV1ZVR5cGUodm9pZCkNCis/UXVldWVUeXBlQD8kQ0xvY2tCYXNlQCQwOCQwMSQwMCQwMCQwMiQwMUBAU0E/QVc0TE9DS19RVUVVRV9UWVBFQEBYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0RhdGFDYWNoZTxjbGFzcyBDRGF0ZVRpbWU+OjpSZWFkKGNsYXNzIENEYXRlVGltZSAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UmVhZEA/JENEYXRhQ2FjaGVAVkNEYXRlVGltZUBAQEBRRUJBX05BRUFWQ0RhdGVUaW1lQEBAWg0KK1JlYWREd29yZFBhcmFtZXRlclZhbHVlRnJvbUFueVNlcnZpY2UNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDcml0U2VjOjpSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRMb2NrQENDcml0U2VjQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmFrZUxvY2s6OlJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZExvY2tAQ0Zha2VMb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpSZWFkTG9jayh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1JlYWRMb2NrQENMS1JIYXNoVGFibGVAQFFFQkFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OlJlYWRMb2NrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UmVhZExvY2tAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRMb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRMb2NrQENSZWFkZXJXcml0ZXJMb2NrM0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OlJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSdGxSZXNvdXJjZTo6UmVhZExvY2sodm9pZCkgX19wdHI2NA0KKz9SZWFkTG9ja0BDUnRsUmVzb3VyY2VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTaGFyZUxvY2s6OlJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZExvY2tAQ1NoYXJlTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OlJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZExvY2tAQ1NtYWxsU3BpbkxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTcGluTG9jazo6UmVhZExvY2sodm9pZCkgX19wdHI2NA0KKz9SZWFkTG9ja0BDU3BpbkxvY2tAQFFFQUFYWFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBJUE1fTUVTU0FHRV9QSVBFOjpSZWFkTWVzc2FnZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlYWRNZXNzYWdlQElQTV9NRVNTQUdFX1BJUEVAQEFFQUFKS0BaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDQ3JpdFNlYzo6UmVhZE9yV3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZE9yV3JpdGVMb2NrQENDcml0U2VjQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0Zha2VMb2NrOjpSZWFkT3JXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9SZWFkT3JXcml0ZUxvY2tAQ0Zha2VMb2NrQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpSZWFkT3JXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9SZWFkT3JXcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NwaW5Mb2NrOjpSZWFkT3JXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9SZWFkT3JXcml0ZUxvY2tAQ1NwaW5Mb2NrQEBRRUFBX05YWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NyaXRTZWM6OlJlYWRPcldyaXRlVW5sb2NrKGJvb2wpIF9fcHRyNjQNCis/UmVhZE9yV3JpdGVVbmxvY2tAQ0NyaXRTZWNAQFFFQUFYX05AWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Zha2VMb2NrOjpSZWFkT3JXcml0ZVVubG9jayhib29sKSBfX3B0cjY0DQorP1JlYWRPcldyaXRlVW5sb2NrQENGYWtlTG9ja0BAUUVBQVhfTkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OlJlYWRPcldyaXRlVW5sb2NrKGJvb2wpIF9fcHRyNjQNCis/UmVhZE9yV3JpdGVVbmxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRRUFBWF9OQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTcGluTG9jazo6UmVhZE9yV3JpdGVVbmxvY2soYm9vbCkgX19wdHI2NA0KKz9SZWFkT3JXcml0ZVVubG9ja0BDU3BpbkxvY2tAQFFFQUFYX05AWg0KK1JlYWRSZWdEd29yZA0KK1JlYWRTdHJpbmdQYXJhbWV0ZXJWYWx1ZUZyb21BbnlTZXJ2aWNlDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ3JpdFNlYzo6UmVhZFVubG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRVbmxvY2tAQ0NyaXRTZWNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGYWtlTG9jazo6UmVhZFVubG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRVbmxvY2tAQ0Zha2VMb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpSZWFkVW5sb2NrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UmVhZFVubG9ja0BDTEtSSGFzaFRhYmxlQEBRRUJBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpSZWFkVW5sb2NrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UmVhZFVubG9ja0BDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OlJlYWRVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9SZWFkVW5sb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpSZWFkVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZFVubG9ja0BDUmVhZGVyV3JpdGVyTG9jazNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpSZWFkVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZFVubG9ja0BDUmVhZGVyV3JpdGVyTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1J0bFJlc291cmNlOjpSZWFkVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZFVubG9ja0BDUnRsUmVzb3VyY2VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTaGFyZUxvY2s6OlJlYWRVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9SZWFkVW5sb2NrQENTaGFyZUxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpSZWFkVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZFVubG9ja0BDU21hbGxTcGluTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NwaW5Mb2NrOjpSZWFkVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZFVubG9ja0BDU3BpbkxvY2tAQFFFQUFYWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIEJVRkZFUjo6UmVhbGxvY1N0b3JhZ2UodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1JlYWxsb2NTdG9yYWdlQEJVRkZFUkBAQUVBQUhJQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE1VTFRJU1o6OlJlY2FsY0xlbih2b2lkKSBfX3B0cjY0DQorP1JlY2FsY0xlbkBNVUxUSVNaQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBNVUxUSVNaQTo6UmVjYWxjTGVuKHZvaWQpIF9fcHRyNjQNCis/UmVjYWxjTGVuQE1VTFRJU1pBQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6UmVjb3JkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UmVjb3JkQENMS1JIYXNoVGFibGVfSXRlcmF0b3JAQFFFQkFQRUJYWFoNCis7IHB1YmxpYzogdm9pZCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjpSZWNvcmQodm9pZCljb25zdCAgX19wdHI2NA0KKz9SZWNvcmRAQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAUUVCQVBFQlhYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JFQ1VSU0lPTiAgX19jZGVjbCBDTG9ja0Jhc2U8MSwxLDMsMSwzLDI+OjpSZWN1cnNpb24odm9pZCkNCis/UmVjdXJzaW9uQD8kQ0xvY2tCYXNlQCQwMCQwMCQwMiQwMCQwMiQwMUBAU0E/QVc0TE9DS19SRUNVUlNJT05AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUkVDVVJTSU9OICBfX2NkZWNsIENMb2NrQmFzZTwyLDEsMSwxLDMsMj46OlJlY3Vyc2lvbih2b2lkKQ0KKz9SZWN1cnNpb25APyRDTG9ja0Jhc2VAJDAxJDAwJDAwJDAwJDAyJDAxQEBTQT9BVzRMT0NLX1JFQ1VSU0lPTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SRUNVUlNJT04gIF9fY2RlY2wgQ0xvY2tCYXNlPDMsMSwxLDEsMSwxPjo6UmVjdXJzaW9uKHZvaWQpDQorP1JlY3Vyc2lvbkA/JENMb2NrQmFzZUAkMDIkMDAkMDAkMDAkMDAkMDBAQFNBP0FXNExPQ0tfUkVDVVJTSU9OQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JFQ1VSU0lPTiAgX19jZGVjbCBDTG9ja0Jhc2U8NCwxLDEsMiwzLDM+OjpSZWN1cnNpb24odm9pZCkNCis/UmVjdXJzaW9uQD8kQ0xvY2tCYXNlQCQwMyQwMCQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19SRUNVUlNJT05AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUkVDVVJTSU9OICBfX2NkZWNsIENMb2NrQmFzZTw1LDIsMSwyLDMsMz46OlJlY3Vyc2lvbih2b2lkKQ0KKz9SZWN1cnNpb25APyRDTG9ja0Jhc2VAJDA0JDAxJDAwJDAxJDAyJDAyQEBTQT9BVzRMT0NLX1JFQ1VSU0lPTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SRUNVUlNJT04gIF9fY2RlY2wgQ0xvY2tCYXNlPDYsMiwxLDIsMywzPjo6UmVjdXJzaW9uKHZvaWQpDQorP1JlY3Vyc2lvbkA/JENMb2NrQmFzZUAkMDUkMDEkMDAkMDEkMDIkMDJAQFNBP0FXNExPQ0tfUkVDVVJTSU9OQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JFQ1VSU0lPTiAgX19jZGVjbCBDTG9ja0Jhc2U8NywyLDIsMSwzLDI+OjpSZWN1cnNpb24odm9pZCkNCis/UmVjdXJzaW9uQD8kQ0xvY2tCYXNlQCQwNiQwMSQwMSQwMCQwMiQwMUBAU0E/QVc0TE9DS19SRUNVUlNJT05AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUkVDVVJTSU9OICBfX2NkZWNsIENMb2NrQmFzZTw4LDIsMiwxLDMsMj46OlJlY3Vyc2lvbih2b2lkKQ0KKz9SZWN1cnNpb25APyRDTG9ja0Jhc2VAJDA3JDAxJDAxJDAwJDAyJDAxQEBTQT9BVzRMT0NLX1JFQ1VSU0lPTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SRUNVUlNJT04gIF9fY2RlY2wgQ0xvY2tCYXNlPDksMiwxLDEsMywyPjo6UmVjdXJzaW9uKHZvaWQpDQorP1JlY3Vyc2lvbkA/JENMb2NrQmFzZUAkMDgkMDEkMDAkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUkVDVVJTSU9OQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0V0d1RyYWNlcjo6UmVnaXN0ZXIoc3RydWN0IF9HVUlEIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlZ2lzdGVyQENFdHdUcmFjZXJAQFFFQUFLUEVCVV9HVUlEQEBQRUFHMUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIE1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTks6OlJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlQE1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTktAQFVFQUFLWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTaGFyZWxvY2s6OlJlbGVhc2VFeGNsdXNpdmVMb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVsZWFzZUV4Y2x1c2l2ZUxvY2tAQ1NoYXJlbG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NoYXJlbG9jazo6UmVsZWFzZVNoYXJlTG9jayh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VTaGFyZUxvY2tAQ1NoYXJlbG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENEb3VibGVMaXN0OjpSZW1vdmVFbnRyeShjbGFzcyBDTGlzdEVudHJ5ICogX19wdHI2NCBjb25zdCkNCis/UmVtb3ZlRW50cnlAQ0RvdWJsZUxpc3RAQFNBWFFFQVZDTGlzdEVudHJ5QEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xvY2tlZERvdWJsZUxpc3Q6OlJlbW92ZUVudHJ5KGNsYXNzIENMaXN0RW50cnkgKiBfX3B0cjY0IGNvbnN0KSBfX3B0cjY0DQorP1JlbW92ZUVudHJ5QENMb2NrZWREb3VibGVMaXN0QEBRRUFBWFFFQVZDTGlzdEVudHJ5QEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5ICogX19wdHI2NCBfX2NkZWNsIENEb3VibGVMaXN0OjpSZW1vdmVIZWFkKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlSGVhZEBDRG91YmxlTGlzdEBAUUVBQVFFQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5ICogX19wdHI2NCBfX2NkZWNsIENMb2NrZWREb3VibGVMaXN0OjpSZW1vdmVIZWFkKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlSGVhZEBDTG9ja2VkRG91YmxlTGlzdEBAUUVBQVFFQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OlJlbW92ZUl0ZW0oY2xhc3MgQUxMT0NfQ0FDSEVfSEFORExFUiAqIF9fcHRyNjQpDQorP1JlbW92ZUl0ZW1AQUxMT0NfQ0FDSEVfSEFORExFUkBAU0FYUEVBVjFAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fcHRyNjQgX19jZGVjbCBDRG91YmxlTGlzdDo6UmVtb3ZlVGFpbCh2b2lkKSBfX3B0cjY0DQorP1JlbW92ZVRhaWxAQ0RvdWJsZUxpc3RAQFFFQUFRRUFWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fcHRyNjQgX19jZGVjbCBDTG9ja2VkRG91YmxlTGlzdDo6UmVtb3ZlVGFpbCh2b2lkKSBfX3B0cjY0DQorP1JlbW92ZVRhaWxAQ0xvY2tlZERvdWJsZUxpc3RAQFFFQUFRRUFWQ0xpc3RFbnRyeUBAWFoNCitSZW1vdmVXb3JrSXRlbQ0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTVVMVElTWjo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBNVUxUSVNaQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBNVUxUSVNaQTo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBNVUxUSVNaQUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU1RSQTo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBTVFJBQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTVFJBVTo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBTVFJBVUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU1RSVTo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBTVFJVQEBRRUFBWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpSZXNldExvb2thc2lkZUNsZWFudXBJbnRlcnZhbCh2b2lkKQ0KKz9SZXNldExvb2thc2lkZUNsZWFudXBJbnRlcnZhbEBBTExPQ19DQUNIRV9IQU5ETEVSQEBTQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBCVUZGRVI6OlJlc2l6ZSh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/UmVzaXplQEJVRkZFUkBAUUVBQUhJQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQlVGRkVSOjpSZXNpemUodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9SZXNpemVAQlVGRkVSQEBRRUFBSElJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OlJlc2l6ZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1Jlc2l6ZUBTVFJBQEBRRUFBSktAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSVTo6UmVzaXplKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVzaXplQFNUUlVAQFFFQUFKS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUkFVOjpSZXNpemVXKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVzaXplV0BTVFJBVUBAUUVBQUhLQFoNCitTQUZFSXNTcGFjZQ0KK1NBRkVJc1hEaWdpdA0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJBVTo6U2FmZUNvcHkoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2FmZUNvcHlAU1RSQVVAQFFFQUFIUEVCREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUkFVOjpTYWZlQ29weSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2FmZUNvcHlAU1RSQVVAQFFFQUFIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1COjpTYXZlKHZvaWQpIF9fcHRyNjQNCis/U2F2ZUBNQkBAUUVBQUhYWg0KK1NjaGVkdWxlQWRqdXN0VGltZQ0KK1NjaGVkdWxlV29ya0l0ZW0NCitTY2hlZHVsZXJJbml0aWFsaXplDQorU2NoZWR1bGVyVGVybWluYXRlDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ0RGVENhY2hlOjpTZWNvbmRzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U2Vjb25kc0BDREZUQ2FjaGVAQFFFQkFHWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFczX1RSQUNFX0xPRzo6U2V0QmxvY2tpbmcoaW50KSBfX3B0cjY0DQorP1NldEJsb2NraW5nQFczX1RSQUNFX0xPR0BAUUVBQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMS1JIYXNoVGFibGU6OlNldEJ1Y2tldExvY2tTcGluQ291bnQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0QnVja2V0TG9ja1NwaW5Db3VudEBDTEtSSGFzaFRhYmxlQEBRRUFBWEdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6U2V0QnVja2V0TG9ja1NwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZXRCdWNrZXRMb2NrU3BpbkNvdW50QENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUFYR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXM19UUkFDRV9MT0c6OlNldEJ1ZmZlcmluZyhpbnQpIF9fcHRyNjQNCis/U2V0QnVmZmVyaW5nQFczX1RSQUNFX0xPR0BAUUVBQVhIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTUI6OlNldERhdGEodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXREYXRhQE1CQEBRRUFBSFBFQkdLS0tQRUFYS0tAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENDcml0U2VjOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ0NyaXRTZWNAQFNBWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENGYWtlTG9jazo6U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKGRvdWJsZSkNCis/U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENGYWtlTG9ja0BAU0FYTkBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1JlYWRlcldyaXRlckxvY2syQEBTQVhOQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OlNldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcihkb3VibGUpDQorP1NldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUmVhZGVyV3JpdGVyTG9jazNAQFNBWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1JlYWRlcldyaXRlckxvY2tAQFNBWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENSdGxSZXNvdXJjZTo6U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKGRvdWJsZSkNCis/U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENSdGxSZXNvdXJjZUBAU0FYTkBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1NoYXJlTG9jazo6U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKGRvdWJsZSkNCis/U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENTaGFyZUxvY2tAQFNBWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1NtYWxsU3BpbkxvY2tAQFNBWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENTcGluTG9jazo6U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKGRvdWJsZSkNCis/U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENTcGluTG9ja0BAU0FYTkBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ0NyaXRTZWM6OlNldERlZmF1bHRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldERlZmF1bHRTcGluQ291bnRAQ0NyaXRTZWNAQFNBWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENGYWtlTG9jazo6U2V0RGVmYXVsdFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0RGVmYXVsdFNwaW5Db3VudEBDRmFrZUxvY2tAQFNBWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6U2V0RGVmYXVsdFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazJAQFNBWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6U2V0RGVmYXVsdFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazNAQFNBWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrQEBTQVhHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDUnRsUmVzb3VyY2U6OlNldERlZmF1bHRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldERlZmF1bHRTcGluQ291bnRAQ1J0bFJlc291cmNlQEBTQVhHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDU2hhcmVMb2NrOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENTaGFyZUxvY2tAQFNBWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENTbWFsbFNwaW5Mb2NrQEBTQVhHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDU3BpbkxvY2s6OlNldERlZmF1bHRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldERlZmF1bHRTcGluQ291bnRAQ1NwaW5Mb2NrQEBTQVhHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTUI6OlNldER3b3JkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldER3b3JkQE1CQEBRRUFBSFBFQkdLS0tLQFoNCitTZXRFeHBsaWNpdEFjY2Vzc1NldHRpbmdzDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUkE6OlNldExlbih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldExlbkBTVFJBQEBRRUFBSEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJBVTo6U2V0TGVuKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0TGVuQFNUUkFVQEBRRUFBSEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJVOjpTZXRMZW4odW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRMZW5AU1RSVUBAUUVBQUhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEFTQ0xPR19EQVRFVElNRV9DQUNIRTo6U2V0TG9jYWxUaW1lKHN0cnVjdCBfU1lTVEVNVElNRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TG9jYWxUaW1lQEFTQ0xPR19EQVRFVElNRV9DQUNIRUBAUUVBQVhQRUFVX1NZU1RFTVRJTUVAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpTZXRMb29rYXNpZGVDbGVhbnVwSW50ZXJ2YWwodm9pZCkNCis/U2V0TG9va2FzaWRlQ2xlYW51cEludGVydmFsQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFNBSFhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDQ3JpdFNlYzo6U2V0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1NldFNwaW5Db3VudEBDQ3JpdFNlY0BAUUVBQV9OR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NyaXRTZWM6OlNldFNwaW5Db3VudChzdHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OICogX19wdHI2NCx1bnNpZ25lZCBsb25nKQ0KKz9TZXRTcGluQ291bnRAQ0NyaXRTZWNAQFNBS1BFQVVfUlRMX0NSSVRJQ0FMX1NFQ1RJT05AQEtAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0Zha2VMb2NrOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0U3BpbkNvdW50QENGYWtlTG9ja0BAUUVBQV9OR0BaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OlNldFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZXRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2syQEBRRUFBX05HQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6U2V0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1NldFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazNAQFFFQUFfTkdAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OlNldFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZXRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2tAQFFFQUFfTkdAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1J0bFJlc291cmNlOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0U3BpbkNvdW50QENSdGxSZXNvdXJjZUBAUUVBQV9OR0BaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU2hhcmVMb2NrOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0U3BpbkNvdW50QENTaGFyZUxvY2tAQFFFQUFfTkdAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OlNldFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZXRTcGluQ291bnRAQ1NtYWxsU3BpbkxvY2tAQFFFQUFfTkdAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NwaW5Mb2NrOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0U3BpbkNvdW50QENTcGluTG9ja0BAUUVBQV9OR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1COjpTZXRTdHJpbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRTdHJpbmdATUJAQFFFQUFIUEVCR0tLMEtAWg0KK1NldFN0cmluZ1BhcmFtZXRlclZhbHVlSW5BbnlTZXJ2aWNlDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBFWFRMT0dfREFURVRJTUVfQ0FDSEU6OlNldFN5c3RlbVRpbWUoc3RydWN0IF9TWVNURU1USU1FICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRTeXN0ZW1UaW1lQEVYVExPR19EQVRFVElNRV9DQUNIRUBAUUVBQVhQRUFVX1NZU1RFTVRJTUVAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpTZXRUYWJsZUxvY2tTcGluQ291bnQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0VGFibGVMb2NrU3BpbkNvdW50QENMS1JIYXNoVGFibGVAQFFFQUFYR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpTZXRUYWJsZUxvY2tTcGluQ291bnQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0VGFibGVMb2NrU3BpbkNvdW50QENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUFYR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENEYXRlVGltZTo6U2V0VGltZShzdHJ1Y3QgX0ZJTEVUSU1FIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRUaW1lQENEYXRlVGltZUBAUUVBQUhBRUJVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWU6OlNldFRpbWUoc3RydWN0IF9TWVNURU1USU1FIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRUaW1lQENEYXRlVGltZUBAUUVBQUhBRUJVX1NZU1RFTVRJTUVAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCVUZGRVJfQ0hBSU5fSVRFTTo6U2V0VXNlZCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFVzZWRAQlVGRkVSX0NIQUlOX0lURU1AQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCVUZGRVI6OlNldFZhbGlkKGludCkgX19wdHI2NA0KKz9TZXRWYWxpZEBCVUZGRVJAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIE1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTks6OlNodXRkb3duTm90aWZ5KHZvaWQpIF9fcHRyNjQNCis/U2h1dGRvd25Ob3RpZnlATUJfQkFTRV9OT1RJRklDQVRJT05fU0lOS0BAVUVBQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBNQl9CQVNFX05PVElGSUNBVElPTl9TSU5LOjpTaW5rTm90aWZ5KHVuc2lnbmVkIGxvbmcsc3RydWN0IF9NRF9DSEFOR0VfT0JKRUNUX1cgKiBfX3B0cjY0IGNvbnN0KSBfX3B0cjY0DQorP1NpbmtOb3RpZnlATUJfQkFTRV9OT1RJRklDQVRJT05fU0lOS0BAVUVBQUpLUUVBVV9NRF9DSEFOR0VfT0JKRUNUX1dAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U2l6ZUBDTEtSSGFzaFRhYmxlQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U2l6ZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBS1haDQorU2tpcFRvDQorU2tpcFdoaXRlDQorOyBwcml2YXRlOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQ1NoYXJlbG9jazo6U2xlZXBXYWl0aW5nRm9yTG9jayhpbnQpIF9fcHRyNjQNCis/U2xlZXBXYWl0aW5nRm9yTG9ja0BDU2hhcmVsb2NrQEBBRUFBRUhAWg0KK1N0YXJ0SUlTQWRtaW5Nb25pdG9yDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBNQl9CQVNFX05PVElGSUNBVElPTl9TSU5LOjpTdGFydExpc3RlbmluZyhzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1N0YXJ0TGlzdGVuaW5nQE1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTktAQFFFQUFKUEVBVUlVbmtub3duQEBAWg0KK1N0b3BJSVNBZG1pbk1vbml0b3INCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTks6OlN0b3BMaXN0ZW5pbmcoc3RydWN0IElVbmtub3duICogX19wdHI2NCkgX19wdHI2NA0KKz9TdG9wTGlzdGVuaW5nQE1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTktAQFFFQUFKUEVBVUlVbmtub3duQEBAWg0KKzsgaW50IF9fY2RlY2wgU3RyaW5nVGltZVRvRmlsZVRpbWUoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5pb24gX0xBUkdFX0lOVEVHRVIgKiBfX3B0cjY0KQ0KKz9TdHJpbmdUaW1lVG9GaWxlVGltZUBAWUFIUEVCRFBFQVRfTEFSR0VfSU5URUdFUkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgRVZFTlRfTE9HOjpTdWNjZXNzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U3VjY2Vzc0BFVkVOVF9MT0dAQFFFQkFIWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNUUkE6OlN5bmNXaXRoQnVmZmVyKHZvaWQpIF9fcHRyNjQNCis/U3luY1dpdGhCdWZmZXJAU1RSQUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU1RSVTo6U3luY1dpdGhCdWZmZXIodm9pZCkgX19wdHI2NA0KKz9TeW5jV2l0aEJ1ZmZlckBTVFJVQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIE1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTks6OlN5bmNocm9uaXplZFNodXRkb3duTm90aWZ5KHZvaWQpIF9fcHRyNjQNCis/U3luY2hyb25pemVkU2h1dGRvd25Ob3RpZnlATUJfQkFTRV9OT1RJRklDQVRJT05fU0lOS0BAVUVBQUpYWg0KK1N5c3RlbVRpbWVUb0dNVA0KKzsgaW50IF9fY2RlY2wgU3lzdGVtVGltZVRvR01URXgoc3RydWN0IF9TWVNURU1USU1FIGNvbnN0ICYgX19wdHI2NCxjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP1N5c3RlbVRpbWVUb0dNVEV4QEBZQUhBRUJVX1NZU1RFTVRJTUVAQFBFQURLS0BaDQorOyBwcml2YXRlOiBzdGF0aWMgdm9pZCBfX2NkZWNsIFczX1RSQUNFX0xPR19GQUNUT1JZOjpUaW1lckNhbGxiYWNrKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIpDQorP1RpbWVyQ2FsbGJhY2tAVzNfVFJBQ0VfTE9HX0ZBQ1RPUllAQENBWFBFQVhFQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFczX1RSQUNFX0xPRzo6VHJhY2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LC4uLikgX19wdHI2NA0KKz9UcmFjZUBXM19UUkFDRV9MT0dAQFFFQUFKUEVCR1paDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENFdHdUcmFjZXI6OlRyYWNlUGVyVXJsRW5hYmxlZCh2b2lkKSBfX3B0cjY0DQorP1RyYWNlUGVyVXJsRW5hYmxlZEBDRXR3VHJhY2VyQEBRRUFBSFhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OlRyeUNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKSBfX3B0cjY0DQorP1RyeUNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDUmVhZGVyV3JpdGVyTG9jazNAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDQ3JpdFNlYzo6VHJ5UmVhZExvY2sodm9pZCkgX19wdHI2NA0KKz9UcnlSZWFkTG9ja0BDQ3JpdFNlY0BAUUVBQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENGYWtlTG9jazo6VHJ5UmVhZExvY2sodm9pZCkgX19wdHI2NA0KKz9UcnlSZWFkTG9ja0BDRmFrZUxvY2tAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OlRyeVJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/VHJ5UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2syQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpUcnlSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVJlYWRMb2NrQENSZWFkZXJXcml0ZXJMb2NrM0BAUUVBQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpUcnlSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVJlYWRMb2NrQENSZWFkZXJXcml0ZXJMb2NrQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1J0bFJlc291cmNlOjpUcnlSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVJlYWRMb2NrQENSdGxSZXNvdXJjZUBAUUVBQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTaGFyZUxvY2s6OlRyeVJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/VHJ5UmVhZExvY2tAQ1NoYXJlTG9ja0BAUUVBQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpUcnlSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVJlYWRMb2NrQENTbWFsbFNwaW5Mb2NrQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NwaW5Mb2NrOjpUcnlSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVJlYWRMb2NrQENTcGluTG9ja0BAUUVBQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENDcml0U2VjOjpUcnlXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9UcnlXcml0ZUxvY2tAQ0NyaXRTZWNAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRmFrZUxvY2s6OlRyeVdyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVdyaXRlTG9ja0BDRmFrZUxvY2tAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OlRyeVdyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVdyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OlRyeVdyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVdyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9jazNAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6VHJ5V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/VHJ5V3JpdGVMb2NrQENSZWFkZXJXcml0ZXJMb2NrQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1J0bFJlc291cmNlOjpUcnlXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9UcnlXcml0ZUxvY2tAQ1J0bFJlc291cmNlQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NoYXJlTG9jazo6VHJ5V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/VHJ5V3JpdGVMb2NrQENTaGFyZUxvY2tAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU21hbGxTcGluTG9jazo6VHJ5V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/VHJ5V3JpdGVMb2NrQENTbWFsbFNwaW5Mb2NrQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NwaW5Mb2NrOjpUcnlXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9UcnlXcml0ZUxvY2tAQ1NwaW5Mb2NrQEBRRUFBX05YWg0KKzsgbG9uZyBfX2NkZWNsIFVsQ2xlYW5BbmRDb3B5VXJsKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQpDQorP1VsQ2xlYW5BbmRDb3B5VXJsQEBZQUpQRUFFS1BFQUtQRUFHUEVBUEVBR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRXR3VHJhY2VyOjpVblJlZ2lzdGVyKHZvaWQpIF9fcHRyNjQNCis/VW5SZWdpc3RlckBDRXR3VHJhY2VyQEBRRUFBS1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXM19UUkFDRV9MT0c6OlVuZGVudCh2b2lkKSBfX3B0cjY0DQorP1VuZGVudEBXM19UUkFDRV9MT0dAQFFFQUFYWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNUUkE6OlVuZXNjYXBlKHZvaWQpIF9fcHRyNjQNCis/VW5lc2NhcGVAU1RSQUBAUUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSVTo6VW5lc2NhcGUodm9pZCkgX19wdHI2NA0KKz9VbmVzY2FwZUBTVFJVQEBRRUFBSlhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQUxMT0NfQ0FDSEVfSEFORExFUjo6VW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/VW5sb2NrQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQEFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMb2NrZWREb3VibGVMaXN0OjpVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9VbmxvY2tAQ0xvY2tlZERvdWJsZUxpc3RAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMb2NrZWRTaW5nbGVMaXN0OjpVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9VbmxvY2tAQ0xvY2tlZFNpbmdsZUxpc3RAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFRTX1JFU09VUkNFOjpVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9VbmxvY2tAVFNfUkVTT1VSQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIENTaGFyZWxvY2s6OlVwZGF0ZU1heFNwaW5zKGludCkgX19wdHI2NA0KKz9VcGRhdGVNYXhTcGluc0BDU2hhcmVsb2NrQEBRRUFBRUhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQ1NoYXJlbG9jazo6VXBkYXRlTWF4VXNlcnMoaW50KSBfX3B0cjY0DQorP1VwZGF0ZU1heFVzZXJzQENTaGFyZWxvY2tAQFFFQUFFSEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpWYWxpZFNpZ25hdHVyZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1ZhbGlkU2lnbmF0dXJlQENMS1JIYXNoVGFibGVAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpWYWxpZFNpZ25hdHVyZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1ZhbGlkU2lnbmF0dXJlQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFfTlhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQlVGRkVSOjpWZXJpZnlTdGF0ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1ZlcmlmeVN0YXRlQEJVRkZFUkBAQUVCQVhYWg0KK1dDb3B5VG9BDQorOyBwcml2YXRlOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQ1NoYXJlbG9jazo6V2FpdEZvckV4Y2x1c2l2ZUxvY2soaW50KSBfX3B0cjY0DQorP1dhaXRGb3JFeGNsdXNpdmVMb2NrQENTaGFyZWxvY2tAQEFFQUFFSEBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQ1NoYXJlbG9jazo6V2FpdEZvclNoYXJlTG9jayhpbnQpIF9fcHRyNjQNCis/V2FpdEZvclNoYXJlTG9ja0BDU2hhcmVsb2NrQEBBRUFBRUhAWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8MSwxLDMsMSwzLDI+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDAkMDAkMDIkMDAkMDIkMDFAQFNBP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8MiwxLDEsMSwzLDI+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDEkMDAkMDAkMDAkMDIkMDFAQFNBP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDIkMDAkMDAkMDAkMDAkMDBAQFNBP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8NCwxLDEsMiwzLDM+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDMkMDAkMDAkMDEkMDIkMDJAQFNBP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8NSwyLDEsMiwzLDM+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDQkMDEkMDAkMDEkMDIkMDJAQFNBP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8NiwyLDEsMiwzLDM+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDUkMDEkMDAkMDEkMDIkMDJAQFNBP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8NywyLDIsMSwzLDI+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDYkMDEkMDEkMDAkMDIkMDFAQFNBP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8OCwyLDIsMSwzLDI+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDckMDEkMDEkMDAkMDIkMDFAQFNBP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8OSwyLDEsMSwzLDI+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDgkMDEkMDAkMDAkMDIkMDFAQFNBP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENTaGFyZWxvY2s6Oldha2VBbGxTbGVlcGVycyh2b2lkKSBfX3B0cjY0DQorP1dha2VBbGxTbGVlcGVyc0BDU2hhcmVsb2NrQEBBRUFBWFhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRGF0YUNhY2hlPHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlk+OjpXcml0ZShzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Xcml0ZUA/JENEYXRhQ2FjaGVAVURBVEVUSU1FX0ZPUk1BVF9FTlRSWUBAQEBRRUFBX05BRUJVREFURVRJTUVfRk9STUFUX0VOVFJZQEBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0RhdGFDYWNoZTxjbGFzcyBDRGF0ZVRpbWU+OjpXcml0ZShjbGFzcyBDRGF0ZVRpbWUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1dyaXRlQD8kQ0RhdGFDYWNoZUBWQ0RhdGVUaW1lQEBAQFFFQUFfTkFFQlZDRGF0ZVRpbWVAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ3JpdFNlYzo6V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVMb2NrQENDcml0U2VjQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmFrZUxvY2s6OldyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlTG9ja0BDRmFrZUxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMS1JIYXNoVGFibGU6OldyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlTG9ja0BDTEtSSGFzaFRhYmxlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9Xcml0ZUxvY2tAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9Xcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2syQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OldyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9jazNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9Xcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSdGxSZXNvdXJjZTo6V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVMb2NrQENSdGxSZXNvdXJjZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NoYXJlTG9jazo6V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVMb2NrQENTaGFyZUxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9Xcml0ZUxvY2tAQ1NtYWxsU3BpbkxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTcGluTG9jazo6V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVMb2NrQENTcGluTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgSVBNX01FU1NBR0VfUElQRTo6V3JpdGVNZXNzYWdlKGVudW0gSVBNX09QQ09ERSx1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1dyaXRlTWVzc2FnZUBJUE1fTUVTU0FHRV9QSVBFQEBRRUFBSlc0SVBNX09QQ09ERUBAS1BFQVhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NyaXRTZWM6OldyaXRlVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVVbmxvY2tAQ0NyaXRTZWNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGYWtlTG9jazo6V3JpdGVVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9Xcml0ZVVubG9ja0BDRmFrZUxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMS1JIYXNoVGFibGU6OldyaXRlVW5sb2NrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/V3JpdGVVbmxvY2tAQ0xLUkhhc2hUYWJsZUBAUUVCQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6V3JpdGVVbmxvY2sodm9pZCljb25zdCAgX19wdHI2NA0KKz9Xcml0ZVVubG9ja0BDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OldyaXRlVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVVbmxvY2tAQ1JlYWRlcldyaXRlckxvY2syQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OldyaXRlVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVVbmxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6V3JpdGVVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9Xcml0ZVVubG9ja0BDUmVhZGVyV3JpdGVyTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1J0bFJlc291cmNlOjpXcml0ZVVubG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlVW5sb2NrQENSdGxSZXNvdXJjZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NoYXJlTG9jazo6V3JpdGVVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9Xcml0ZVVubG9ja0BDU2hhcmVMb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU21hbGxTcGluTG9jazo6V3JpdGVVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9Xcml0ZVVubG9ja0BDU21hbGxTcGluTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NwaW5Mb2NrOjpXcml0ZVVubG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlVW5sb2NrQENTcGluTG9ja0BAUUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcjo6X0FkZFJlZihpbnQpY29uc3QgIF9fcHRyNjQNCis/X0FkZFJlZkBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBJRUJBWEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9BZGRSZWZSZWNvcmQodm9pZCBjb25zdCAqIF9fcHRyNjQsaW50KWNvbnN0ICBfX3B0cjY0DQorP19BZGRSZWZSZWNvcmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVCQVhQRUJYSEBaDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ05vZGVDbHVtcCAqIF9fcHRyNjQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQWxsb2NhdGVOb2RlQ2x1bXAodm9pZCkNCis/X0FsbG9jYXRlTm9kZUNsdW1wQENMS1JMaW5lYXJIYXNoVGFibGVAQENBUUVBVkNOb2RlQ2x1bXBAQFhaDQorOyBwcml2YXRlOiBjbGFzcyBDU2VnbWVudCAqIF9fcHRyNjQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQWxsb2NhdGVTZWdtZW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X0FsbG9jYXRlU2VnbWVudEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBUUVBVkNTZWdtZW50QEBYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENEaXJFbnRyeSAqIF9fcHRyNjQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQWxsb2NhdGVTZWdtZW50RGlyZWN0b3J5KHVuc2lnbmVkIF9faW50NjQpDQorP19BbGxvY2F0ZVNlZ21lbnREaXJlY3RvcnlAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQ0FRRUFWQ0RpckVudHJ5QEBfS0BaDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSAqIF9fcHRyNjQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpfQWxsb2NhdGVTdWJUYWJsZShjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0IGNvbnN0ICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0KSx1bnNpZ25lZCBsb25nIChfX2NkZWNsKikodW5zaWduZWQgX19pbnQ2NCksYm9vbCAoX19jZGVjbCopKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCksdm9pZCAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LGludCksZG91YmxlLHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0xLUkhhc2hUYWJsZSAqIF9fcHRyNjQsYm9vbCkNCis/X0FsbG9jYXRlU3ViVGFibGVAQ0xLUkhhc2hUYWJsZUBAQ0FRRUFWQ0xLUkxpbmVhckhhc2hUYWJsZUBAUEVCRFA2QT9CX0tQRUJYQFpQNkFLX0tAWlA2QV9OMzNAWlA2QVgxSEBaTktQRUFWMUBfTkBaDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSAqIF9fcHRyNjQgKiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6X0FsbG9jYXRlU3ViVGFibGVBcnJheSh1bnNpZ25lZCBfX2ludDY0KQ0KKz9fQWxsb2NhdGVTdWJUYWJsZUFycmF5QENMS1JIYXNoVGFibGVAQENBUUVBUEVBVkNMS1JMaW5lYXJIYXNoVGFibGVAQF9LQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQXBwbHkoZW51bSBMS19BQ1RJT04gIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpLHZvaWQgKiBfX3B0cjY0LGVudW0gTEtfTE9DS1RZUEUsZW51bSBMS19QUkVESUNBVEUgJiBfX3B0cjY0KSBfX3B0cjY0DQorP19BcHBseUBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBS1A2QT9BVzRMS19BQ1RJT05AQFBFQlhQRUFYQFoxVzRMS19MT0NLVFlQRUBAQUVBVzRMS19QUkVESUNBVEVAQEBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0FwcGx5SWYoZW51bSBMS19QUkVESUNBVEUgIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpLGVudW0gTEtfQUNUSU9OICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSx2b2lkICogX19wdHI2NCxlbnVtIExLX0xPQ0tUWVBFLGVudW0gTEtfUFJFRElDQVRFICYgX19wdHI2NCkgX19wdHI2NA0KKz9fQXBwbHlJZkBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBS1A2QT9BVzRMS19QUkVESUNBVEVAQFBFQlhQRUFYQFpQNkE/QVc0TEtfQUNUSU9OQEAwMUBaMVc0TEtfTE9DS1RZUEVAQEFFQVc0MkBAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0J1Y2tldCAqIF9fcHRyNjQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQnVja2V0KHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/X0J1Y2tldEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBUEVBVkNCdWNrZXRAQEtAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9CdWNrZXRBZGRyZXNzKHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/X0J1Y2tldEFkZHJlc3NAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVCQUtLQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpfQ2FsY0tleUhhc2godW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9fQ2FsY0tleUhhc2hAQ0xLUkhhc2hUYWJsZUBAQUVCQUtfS0BaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0NhbGNLZXlIYXNoKHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/X0NhbGNLZXlIYXNoQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQkFLX0tAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9DbGVhcihib29sKSBfX3B0cjY0DQorP19DbGVhckBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBWF9OQFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6Ol9DbXBFeGNoKGxvbmcsbG9uZykgX19wdHI2NA0KKz9fQ21wRXhjaEBDUmVhZGVyV3JpdGVyTG9jazJAQEFFQUFfTkpKQFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9DbXBFeGNoKGxvbmcsbG9uZykgX19wdHI2NA0KKz9fQ21wRXhjaEBDUmVhZGVyV3JpdGVyTG9jazNAQEFFQUFfTkpKQFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6X0NtcEV4Y2gobG9uZyxsb25nKSBfX3B0cjY0DQorP19DbXBFeGNoQENSZWFkZXJXcml0ZXJMb2NrQEBBRUFBX05KSkBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0NvbnRyYWN0KHZvaWQpIF9fcHRyNjQNCis/X0NvbnRyYWN0QENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQUE/QVc0TEtfUkVUQ09ERUBAWFoNCis7IHByaXZhdGU6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpfQ3VycmVudFRocmVhZElkKHZvaWQpDQorP19DdXJyZW50VGhyZWFkSWRAQ1JlYWRlcldyaXRlckxvY2szQEBDQUpYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGxvbmcgX19jZGVjbCBDU21hbGxTcGluTG9jazo6X0N1cnJlbnRUaHJlYWRJZCh2b2lkKQ0KKz9fQ3VycmVudFRocmVhZElkQENTbWFsbFNwaW5Mb2NrQEBDQUpYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGxvbmcgX19jZGVjbCBDU3BpbkxvY2s6Ol9DdXJyZW50VGhyZWFkSWQodm9pZCkNCis/X0N1cnJlbnRUaHJlYWRJZEBDU3BpbkxvY2tAQENBSlhaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0RlbGV0ZUlmKGVudW0gTEtfUFJFRElDQVRFICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSx2b2lkICogX19wdHI2NCxlbnVtIExLX1BSRURJQ0FURSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/X0RlbGV0ZUlmQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQUFLUDZBP0FXNExLX1BSRURJQ0FURUBAUEVCWFBFQVhAWjFBRUFXNDJAQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRGVsZXRlS2V5KHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9fRGVsZXRlS2V5QENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQUE/QVc0TEtfUkVUQ09ERUBAX0tLQFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRGVsZXRlTm9kZShjbGFzcyBDQnVja2V0ICogX19wdHI2NCxjbGFzcyBDTm9kZUNsdW1wICogX19wdHI2NCAmIF9fcHRyNjQsY2xhc3MgQ05vZGVDbHVtcCAqIF9fcHRyNjQgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/X0RlbGV0ZU5vZGVAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQV9OUEVBVkNCdWNrZXRAQEFFQVBFQVZDTm9kZUNsdW1wQEAxQUVBSEBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0RlbGV0ZVJlY29yZCh2b2lkIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP19EZWxldGVSZWNvcmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQT9BVzRMS19SRVRDT0RFQEBQRUJYS0BaDQorOyBwcml2YXRlOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0VxdWFsS2V5cyh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/X0VxdWFsS2V5c0BDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBX05fSzBAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9FcmFzZShjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yICYgX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP19FcmFzZUBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBX05BRUFWQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAS0BaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0V4cGFuZCh2b2lkKSBfX3B0cjY0DQorP19FeHBhbmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQT9BVzRMS19SRVRDT0RFQEBYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgX19pbnQ2NCBjb25zdCAgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpfRXh0cmFjdEtleSh2b2lkIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9fRXh0cmFjdEtleUBDTEtSSGFzaFRhYmxlQEBBRUJBP0JfS1BFQlhAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgX19pbnQ2NCBjb25zdCAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRXh0cmFjdEtleSh2b2lkIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9fRXh0cmFjdEtleUBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBP0JfS1BFQlhAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0J1Y2tldCAqIF9fcHRyNjQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRmluZEJ1Y2tldCh1bnNpZ25lZCBsb25nLGJvb2wpY29uc3QgIF9fcHRyNjQNCis/X0ZpbmRCdWNrZXRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVCQVBFQVZDQnVja2V0QEBLX05AWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9GaW5kS2V5KHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgbG9uZyx2b2lkIGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQsY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/X0ZpbmRLZXlAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVCQT9BVzRMS19SRVRDT0RFQEBfS0tQRUFQRUJYUEVBVkNMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQEBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0ZpbmRSZWNvcmQodm9pZCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9fRmluZFJlY29yZEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBP0FXNExLX1JFVENPREVAQFBFQlhLQFoNCis7IHByaXZhdGU6IHN0YXRpYyBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0ZyZWVOb2RlQ2x1bXAoY2xhc3MgQ05vZGVDbHVtcCAqIF9fcHRyNjQpDQorP19GcmVlTm9kZUNsdW1wQENMS1JMaW5lYXJIYXNoVGFibGVAQENBX05QRUFWQ05vZGVDbHVtcEBAQFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRnJlZVNlZ21lbnQoY2xhc3MgQ1NlZ21lbnQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP19GcmVlU2VnbWVudEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBX05QRUFWQ1NlZ21lbnRAQEBaDQorOyBwcml2YXRlOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0ZyZWVTZWdtZW50RGlyZWN0b3J5KHZvaWQpIF9fcHRyNjQNCis/X0ZyZWVTZWdtZW50RGlyZWN0b3J5QENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQUFfTlhaDQorOyBwcml2YXRlOiBzdGF0aWMgYm9vbCBfX2NkZWNsIENMS1JIYXNoVGFibGU6Ol9GcmVlU3ViVGFibGUoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSAqIF9fcHRyNjQpDQorP19GcmVlU3ViVGFibGVAQ0xLUkhhc2hUYWJsZUBAQ0FfTlBFQVZDTEtSTGluZWFySGFzaFRhYmxlQEBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGJvb2wgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpfRnJlZVN1YlRhYmxlQXJyYXkoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9fRnJlZVN1YlRhYmxlQXJyYXlAQ0xLUkhhc2hUYWJsZUBAQ0FfTlBFQVBFQVZDTEtSTGluZWFySGFzaFRhYmxlQEBAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9IMCh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP19IMEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBS0tAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSDAodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9fSDBAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQ0FLS0tAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9IMSh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP19IMUBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBS0tAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSDEodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9fSDFAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQ0FLS0tAWg0KKzsgcHJvdGVjdGVkOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6X0luY3JlbWVudChib29sKSBfX3B0cjY0DQorP19JbmNyZW1lbnRAQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBASUVBQV9OX05AWg0KKzsgcHJvdGVjdGVkOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcjo6X0luY3JlbWVudChib29sKSBfX3B0cjY0DQorP19JbmNyZW1lbnRAQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBASUVBQV9OX05AWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9Jbml0aWFsaXplKHVuc2lnbmVkIF9faW50NjQgY29uc3QgIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQpLHVuc2lnbmVkIGxvbmcgKF9fY2RlY2wqKSh1bnNpZ25lZCBfX2ludDY0KSxib29sIChfX2NkZWNsKikodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KSx2b2lkIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsaW50KSxjaGFyIGNvbnN0ICogX19wdHI2NCxkb3VibGUsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9fSW5pdGlhbGl6ZUBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBP0FXNExLX1JFVENPREVAQFA2QT9CX0tQRUJYQFpQNkFLX0tAWlA2QV9OMjJAWlA2QVgwSEBaUEVCRE5LQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSW5zZXJ0UmVjb3JkKHZvaWQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsYm9vbCxjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yICogX19wdHI2NCkgX19wdHI2NA0KKz9fSW5zZXJ0UmVjb3JkQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQUE/QVc0TEtfUkVUQ09ERUBAUEVCWEtfTlBFQVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENMS1JIYXNoVGFibGU6Ol9JbnNlcnRUaGlzSW50b0dsb2JhbExpc3Qodm9pZCkgX19wdHI2NA0KKz9fSW5zZXJ0VGhpc0ludG9HbG9iYWxMaXN0QENMS1JIYXNoVGFibGVAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSW5zZXJ0VGhpc0ludG9HbG9iYWxMaXN0KHZvaWQpIF9fcHRyNjQNCis/X0luc2VydFRoaXNJbnRvR2xvYmFsTGlzdEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBWFhaDQorOyBwcml2YXRlOiBib29sIF9fY2RlY2wgQ1NwaW5Mb2NrOjpfSXNMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9fSXNMb2NrZWRAQ1NwaW5Mb2NrQEBBRUJBX05YWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0lzTm9kZUNvbXBhY3QoY2xhc3MgQ0J1Y2tldCAqIF9fcHRyNjQgY29uc3QpY29uc3QgIF9fcHRyNjQNCis/X0lzTm9kZUNvbXBhY3RAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVCQUhRRUFWQ0J1Y2tldEBAQFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpfSXNWYWxpZEl0ZXJhdG9yKGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP19Jc1ZhbGlkSXRlcmF0b3JAQ0xLUkhhc2hUYWJsZUBAQUVCQV9OQUVCVkNMS1JIYXNoVGFibGVfSXRlcmF0b3JAQEBaDQorOyBwcml2YXRlOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0lzVmFsaWRJdGVyYXRvcihjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9fSXNWYWxpZEl0ZXJhdG9yQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQkFfTkFFQlZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENTcGluTG9jazo6X0xvY2sodm9pZCkgX19wdHI2NA0KKz9fTG9ja0BDU3BpbkxvY2tAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6Ol9Mb2NrU3Bpbihib29sKSBfX3B0cjY0DQorP19Mb2NrU3BpbkBDUmVhZGVyV3JpdGVyTG9jazJAQEFFQUFYX05AWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6X0xvY2tTcGluKGVudW0gQ1JlYWRlcldyaXRlckxvY2szOjpTUElOX1RZUEUpIF9fcHRyNjQNCis/X0xvY2tTcGluQENSZWFkZXJXcml0ZXJMb2NrM0BAQUVBQVhXNFNQSU5fVFlQRUAxQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6Ol9Mb2NrU3Bpbihib29sKSBfX3B0cjY0DQorP19Mb2NrU3BpbkBDUmVhZGVyV3JpdGVyTG9ja0BAQUVBQVhfTkBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6Ol9Mb2NrU3Bpbih2b2lkKSBfX3B0cjY0DQorP19Mb2NrU3BpbkBDU21hbGxTcGluTG9ja0BAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENTcGluTG9jazo6X0xvY2tTcGluKHZvaWQpIF9fcHRyNjQNCis/X0xvY2tTcGluQENTcGluTG9ja0BAQUVBQVhYWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9NZXJnZVJlY29yZFNldHMoY2xhc3MgQ0J1Y2tldCAqIF9fcHRyNjQsY2xhc3MgQ05vZGVDbHVtcCAqIF9fcHRyNjQsY2xhc3MgQ05vZGVDbHVtcCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/X01lcmdlUmVjb3JkU2V0c0BDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBP0FXNExLX1JFVENPREVAQFBFQVZDQnVja2V0QEBQRUFWQ05vZGVDbHVtcEBAMUBaDQorOyBwcml2YXRlOiBzdGF0aWMgZW51bSBMS19QUkVESUNBVEUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X1ByZWRUcnVlKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KQ0KKz9fUHJlZFRydWVAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQ0E/QVc0TEtfUFJFRElDQVRFQEBQRUJYUEVBWEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpfUmVhZExvY2tTcGluKHZvaWQpIF9fcHRyNjQNCis/X1JlYWRMb2NrU3BpbkBDUmVhZGVyV3JpdGVyTG9jazJAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9SZWFkTG9ja1NwaW4oZW51bSBDUmVhZGVyV3JpdGVyTG9jazM6OlNQSU5fVFlQRSkgX19wdHI2NA0KKz9fUmVhZExvY2tTcGluQENSZWFkZXJXcml0ZXJMb2NrM0BAQUVBQVhXNFNQSU5fVFlQRUAxQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6Ol9SZWFkTG9ja1NwaW4odm9pZCkgX19wdHI2NA0KKz9fUmVhZExvY2tTcGluQENSZWFkZXJXcml0ZXJMb2NrQEBBRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ0RhdGFDYWNoZTxzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZPjo6X1JlYWRNZW1vcnlCYXJyaWVyKHZvaWQpDQorP19SZWFkTWVtb3J5QmFycmllckA/JENEYXRhQ2FjaGVAVURBVEVUSU1FX0ZPUk1BVF9FTlRSWUBAQEBLQVhYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENEYXRhQ2FjaGU8Y2xhc3MgQ0RhdGVUaW1lPjo6X1JlYWRNZW1vcnlCYXJyaWVyKHZvaWQpDQorP19SZWFkTWVtb3J5QmFycmllckA/JENEYXRhQ2FjaGVAVkNEYXRlVGltZUBAQEBLQVhYWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9SZWFkT3JXcml0ZUxvY2sodm9pZCljb25zdCAgX19wdHI2NA0KKz9fUmVhZE9yV3JpdGVMb2NrQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQkFfTlhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X1JlYWRPcldyaXRlVW5sb2NrKGJvb2wpY29uc3QgIF9fcHRyNjQNCis/X1JlYWRPcldyaXRlVW5sb2NrQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQkFYX05AWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ0RhdGFDYWNoZTxzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZPjo6X1JlYWRTZXF1ZW5jZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP19SZWFkU2VxdWVuY2VAPyRDRGF0YUNhY2hlQFVEQVRFVElNRV9GT1JNQVRfRU5UUllAQEBASUVCQUpYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ0RhdGFDYWNoZTxjbGFzcyBDRGF0ZVRpbWU+OjpfUmVhZFNlcXVlbmNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X1JlYWRTZXF1ZW5jZUA/JENEYXRhQ2FjaGVAVkNEYXRlVGltZUBAQEBJRUJBSlhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6X1JlbW92ZVRoaXNGcm9tR2xvYmFsTGlzdCh2b2lkKSBfX3B0cjY0DQorP19SZW1vdmVUaGlzRnJvbUdsb2JhbExpc3RAQ0xLUkhhc2hUYWJsZUBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9SZW1vdmVUaGlzRnJvbUdsb2JhbExpc3Qodm9pZCkgX19wdHI2NA0KKz9fUmVtb3ZlVGhpc0Zyb21HbG9iYWxMaXN0QENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQUFYWFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfU2VnSW5kZXgodW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9fU2VnSW5kZXhAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVCQUtLQFoNCis7IHByaXZhdGU6IGNsYXNzIENTZWdtZW50ICogX19wdHI2NCAmIF9fcHRyNjQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfU2VnbWVudCh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP19TZWdtZW50QENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQkFBRUFQRUFWQ1NlZ21lbnRAQEtAWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9TZXRTZWdWYXJzKGVudW0gTEtfVEFCTEVTSVpFLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/X1NldFNlZ1ZhcnNAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQT9BVzRMS19SRVRDT0RFQEBXNExLX1RBQkxFU0laRUBAS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDRGF0YUNhY2hlPHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlk+OjpfU2V0U2VxdWVuY2UobG9uZykgX19wdHI2NA0KKz9fU2V0U2VxdWVuY2VAPyRDRGF0YUNhY2hlQFVEQVRFVElNRV9GT1JNQVRfRU5UUllAQEBASUVBQUpKQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENEYXRhQ2FjaGU8Y2xhc3MgQ0RhdGVUaW1lPjo6X1NldFNlcXVlbmNlKGxvbmcpIF9fcHRyNjQNCis/X1NldFNlcXVlbmNlQD8kQ0RhdGFDYWNoZUBWQ0RhdGVUaW1lQEBAQElFQUFKSkBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X1NwbGl0UmVjb3JkU2V0KGNsYXNzIENOb2RlQ2x1bXAgKiBfX3B0cjY0LGNsYXNzIENOb2RlQ2x1bXAgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIENOb2RlQ2x1bXAgKiBfX3B0cjY0KSBfX3B0cjY0DQorP19TcGxpdFJlY29yZFNldEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBP0FXNExLX1JFVENPREVAQFBFQVZDTm9kZUNsdW1wQEAwS0tLMEBaDQorOyBwcml2YXRlOiBjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlICogX19wdHI2NCBfX2NkZWNsIENMS1JIYXNoVGFibGU6Ol9TdWJUYWJsZSh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP19TdWJUYWJsZUBDTEtSSGFzaFRhYmxlQEBBRUJBUEVBVkNMS1JMaW5lYXJIYXNoVGFibGVAQEtAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6X1N1YlRhYmxlSW5kZXgoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/X1N1YlRhYmxlSW5kZXhAQ0xLUkhhc2hUYWJsZUBAQUVCQUhQRUFWQ0xLUkxpbmVhckhhc2hUYWJsZUBAQFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDU21hbGxTcGluTG9jazo6X1RyeUxvY2sodm9pZCkgX19wdHI2NA0KKz9fVHJ5TG9ja0BDU21hbGxTcGluTG9ja0BAQUVBQV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDU3BpbkxvY2s6Ol9UcnlMb2NrKHZvaWQpIF9fcHRyNjQNCis/X1RyeUxvY2tAQ1NwaW5Mb2NrQEBBRUFBX05YWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6X1RyeVJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/X1RyeVJlYWRMb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAQUVBQV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9UcnlSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP19UcnlSZWFkTG9ja0BDUmVhZGVyV3JpdGVyTG9jazNAQEFFQUFfTlhaDQorOyBwcml2YXRlOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6Ol9UcnlSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP19UcnlSZWFkTG9ja0BDUmVhZGVyV3JpdGVyTG9ja0BAQUVBQV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9UcnlSZWFkTG9ja1JlY3Vyc2l2ZSh2b2lkKSBfX3B0cjY0DQorP19UcnlSZWFkTG9ja1JlY3Vyc2l2ZUBDUmVhZGVyV3JpdGVyTG9jazNAQEFFQUFfTlhaDQorOyBwcml2YXRlOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpfVHJ5V3JpdGVMb2NrMih2b2lkKSBfX3B0cjY0DQorP19UcnlXcml0ZUxvY2syQENSZWFkZXJXcml0ZXJMb2NrM0BAQUVBQV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6Ol9UcnlXcml0ZUxvY2sobG9uZykgX19wdHI2NA0KKz9fVHJ5V3JpdGVMb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAQUVBQV9OSkBaDQorOyBwcml2YXRlOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpfVHJ5V3JpdGVMb2NrKGxvbmcpIF9fcHRyNjQNCis/X1RyeVdyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9jazNAQEFFQUFfTkpAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpfVHJ5V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/X1RyeVdyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9ja0BAQUVBQV9OWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDU3BpbkxvY2s6Ol9VbmxvY2sodm9pZCkgX19wdHI2NA0KKz9fVW5sb2NrQENTcGluTG9ja0BAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6X1dyaXRlTG9ja1NwaW4odm9pZCkgX19wdHI2NA0KKz9fV3JpdGVMb2NrU3BpbkBDUmVhZGVyV3JpdGVyTG9jazJAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9Xcml0ZUxvY2tTcGluKHZvaWQpIF9fcHRyNjQNCis/X1dyaXRlTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2szQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6Ol9Xcml0ZUxvY2tTcGluKHZvaWQpIF9fcHRyNjQNCis/X1dyaXRlTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2tAQEFFQUFYWFoNCis7IGxvbmcgY29uc3QgKiBjb25zdCAgYHB1YmxpYzogc3RhdGljIGxvbmcgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZVN0YXRzOjpCdWNrZXRTaXplcyh2b2lkKSc6OmAyJzo6c19hQnVja2V0U2l6ZXMNCis/c19hQnVja2V0U2l6ZXNAPzE/P0J1Y2tldFNpemVzQENMS1JIYXNoVGFibGVTdGF0c0BAU0FQRUJKWFpANFFCSkINCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OICBBTExPQ19DQUNIRV9IQU5ETEVSOjpzbV9jc0l0ZW1zDQorP3NtX2NzSXRlbXNAQUxMT0NfQ0FDSEVfSEFORExFUkBAMFVfUlRMX0NSSVRJQ0FMX1NFQ1RJT05AQEEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDQ3JpdFNlYzo6c21fZGJsRGZsdFNwaW5BZGpGY3RyDQorP3NtX2RibERmbHRTcGluQWRqRmN0ckBDQ3JpdFNlY0BAMU5BIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGRvdWJsZSAgQ0Zha2VMb2NrOjpzbV9kYmxEZmx0U3BpbkFkakZjdHINCis/c21fZGJsRGZsdFNwaW5BZGpGY3RyQENGYWtlTG9ja0BAMU5BIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGRvdWJsZSAgQ1JlYWRlcldyaXRlckxvY2syOjpzbV9kYmxEZmx0U3BpbkFkakZjdHINCis/c21fZGJsRGZsdFNwaW5BZGpGY3RyQENSZWFkZXJXcml0ZXJMb2NrMkBAMU5BIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGRvdWJsZSAgQ1JlYWRlcldyaXRlckxvY2szOjpzbV9kYmxEZmx0U3BpbkFkakZjdHINCis/c21fZGJsRGZsdFNwaW5BZGpGY3RyQENSZWFkZXJXcml0ZXJMb2NrM0BAMU5BIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGRvdWJsZSAgQ1JlYWRlcldyaXRlckxvY2s6OnNtX2RibERmbHRTcGluQWRqRmN0cg0KKz9zbV9kYmxEZmx0U3BpbkFkakZjdHJAQ1JlYWRlcldyaXRlckxvY2tAQDFOQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBkb3VibGUgIENSdGxSZXNvdXJjZTo6c21fZGJsRGZsdFNwaW5BZGpGY3RyDQorP3NtX2RibERmbHRTcGluQWRqRmN0ckBDUnRsUmVzb3VyY2VAQDFOQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBkb3VibGUgIENTaGFyZUxvY2s6OnNtX2RibERmbHRTcGluQWRqRmN0cg0KKz9zbV9kYmxEZmx0U3BpbkFkakZjdHJAQ1NoYXJlTG9ja0BAMU5BIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGRvdWJsZSAgQ1NtYWxsU3BpbkxvY2s6OnNtX2RibERmbHRTcGluQWRqRmN0cg0KKz9zbV9kYmxEZmx0U3BpbkFkakZjdHJAQ1NtYWxsU3BpbkxvY2tAQDFOQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBkb3VibGUgIENTcGluTG9jazo6c21fZGJsRGZsdFNwaW5BZGpGY3RyDQorP3NtX2RibERmbHRTcGluQWRqRmN0ckBDU3BpbkxvY2tAQDFOQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgaW50ICBBTExPQ19DQUNIRV9IQU5ETEVSOjpzbV9mSW5pdENzSXRlbXMNCis/c21fZkluaXRDc0l0ZW1zQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQDBIQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgdm9pZCAqIF9fcHRyNjQgIF9fcHRyNjQgQUxMT0NfQ0FDSEVfSEFORExFUjo6c21faFRpbWVyDQorP3NtX2hUaW1lckBBTExPQ19DQUNIRV9IQU5ETEVSQEAwUEVBWEVBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgX0xJU1RfRU5UUlkgIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OnNtX2xJdGVtc0hlYWQNCis/c21fbEl0ZW1zSGVhZEBBTExPQ19DQUNIRV9IQU5ETEVSQEAwVV9MSVNUX0VOVFJZQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDTG9ja2VkRG91YmxlTGlzdCAgQ0xLUkhhc2hUYWJsZTo6c21fbGxHbG9iYWxMaXN0DQorP3NtX2xsR2xvYmFsTGlzdEBDTEtSSGFzaFRhYmxlQEAwVkNMb2NrZWREb3VibGVMaXN0QEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDTG9ja2VkRG91YmxlTGlzdCAgQ0xLUkxpbmVhckhhc2hUYWJsZTo6c21fbGxHbG9iYWxMaXN0DQorP3NtX2xsR2xvYmFsTGlzdEBDTEtSTGluZWFySGFzaFRhYmxlQEAwVkNMb2NrZWREb3VibGVMaXN0QEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBsb25nICBBTExPQ19DQUNIRV9IQU5ETEVSOjpzbV9uRmlsbFBhdHRlcm4NCis/c21fbkZpbGxQYXR0ZXJuQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQDBKQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjbGFzcyBBTExPQ19DQUNIRV9IQU5ETEVSICogX19wdHI2NCAgX19wdHI2NCBDTEtSTGluZWFySGFzaFRhYmxlOjpzbV9wYWxsb2MNCis/c21fcGFsbG9jQENMS1JMaW5lYXJIYXNoVGFibGVAQDFQRUFWQUxMT0NfQ0FDSEVfSEFORExFUkBARUEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgIENDcml0U2VjOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDQ3JpdFNlY0BAMUdBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0ICBDRmFrZUxvY2s6OnNtX3dEZWZhdWx0U3BpbkNvdW50DQorP3NtX3dEZWZhdWx0U3BpbkNvdW50QENGYWtlTG9ja0BAMUdBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0ICBDUmVhZGVyV3JpdGVyTG9jazI6OnNtX3dEZWZhdWx0U3BpbkNvdW50DQorP3NtX3dEZWZhdWx0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrMkBAMUdBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0ICBDUmVhZGVyV3JpdGVyTG9jazM6OnNtX3dEZWZhdWx0U3BpbkNvdW50DQorP3NtX3dEZWZhdWx0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrM0BAMUdBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0ICBDUmVhZGVyV3JpdGVyTG9jazo6c21fd0RlZmF1bHRTcGluQ291bnQNCis/c21fd0RlZmF1bHRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2tAQDFHQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgQ1J0bFJlc291cmNlOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDUnRsUmVzb3VyY2VAQDFHQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgQ1NoYXJlTG9jazo6c21fd0RlZmF1bHRTcGluQ291bnQNCis/c21fd0RlZmF1bHRTcGluQ291bnRAQ1NoYXJlTG9ja0BAMUdBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0ICBDU21hbGxTcGluTG9jazo6c21fd0RlZmF1bHRTcGluQ291bnQNCis/c21fd0RlZmF1bHRTcGluQ291bnRAQ1NtYWxsU3BpbkxvY2tAQDFHQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgQ1NwaW5Mb2NrOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDU3BpbkxvY2tAQDFHQSBEQVRBDQordXVkZWNvZGUNCit1dWVuY29kZQ0KK0NyZWF0ZVJlZlRyYWNlTG9nDQorQ3JlYXRlVHJhY2VMb2cNCitEZXN0cm95UmVmVHJhY2VMb2cNCitEZXN0cm95VHJhY2VMb2cNCitHZXRBbGxvY0NvdW50ZXJzDQorR2V0Q3VycmVudFRpbWVJblNlY29uZHMNCitJSVNHZXRDdXJyZW50VGltZQ0KK0lJU0dldFBsYXRmb3JtVHlwZQ0KK0lJU0luaXRpYWxpemVDcml0aWNhbFNlY3Rpb24NCitJSVNTZXRDcml0aWNhbFNlY3Rpb25TcGluQ291bnQNCitJbmV0QWNxdWlyZVJlc291cmNlRXhjbHVzaXZlDQorSW5ldEFjcXVpcmVSZXNvdXJjZVNoYXJlZA0KK0luZXRDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQNCitJbmV0Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlDQorSW5ldERlbGV0ZVJlc291cmNlDQorSW5ldEluaXRpYWxpemVSZXNvdXJjZQ0KK0luZXRSZWxlYXNlUmVzb3VyY2UNCitJbml0aWFsaXplSUlTVXRpbA0KK0lydGxUcmFjZQ0KK0lzVmFsaWRBZGRyZXNzDQorSXNWYWxpZFN0cmluZw0KK1B1Q2xvc2VEYmdNZW1vcnlMb2cNCitQdUNsb3NlRGJnUHJpbnRGaWxlDQorUHVDcmVhdGVEZWJ1Z1ByaW50c09iamVjdA0KK1B1RGJnQXNzZXJ0RmFpbGVkDQorUHVEYmdDYXB0dXJlQ29udGV4dA0KK1B1RGJnQ3JlYXRlRXZlbnQNCitQdURiZ0NyZWF0ZU11dGV4DQorUHVEYmdDcmVhdGVTZW1hcGhvcmUNCitQdURiZ0R1bXANCitQdURiZ1ByaW50DQorUHVEYmdQcmludEN1cnJlbnRUaW1lDQorUHVEYmdQcmludEVycm9yDQorUHVEZWxldGVEZWJ1Z1ByaW50c09iamVjdA0KK1B1R2V0RGJnT3V0cHV0RmxhZ3MNCitQdUxvYWREZWJ1Z0ZsYWdzRnJvbVJlZw0KK1B1TG9hZERlYnVnRmxhZ3NGcm9tUmVnU3RyDQorUHVPcGVuRGJnTWVtb3J5TG9nDQorUHVPcGVuRGJnUHJpbnRGaWxlDQorUHVSZU9wZW5EYmdQcmludEZpbGUNCitQdVNhdmVEZWJ1Z0ZsYWdzSW5SZWcNCitQdVNldERiZ091dHB1dEZsYWdzDQorUmVzZXRUcmFjZUxvZw0KK1Rlcm1pbmF0ZUlJU1V0aWwNCitXcml0ZVJlZlRyYWNlTG9nDQorV3JpdGVSZWZUcmFjZUxvZ0V4DQorV3JpdGVUcmFjZUxvZw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2lpc3czYWRtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lpc3czYWRtLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMTlmNmM3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaWlzdzNhZG0uZGVmCkBAIC0wLDAgKzEsMTUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaWlzdzNhZG0uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlpc3czYWRtLmRsbA0KK0VYUE9SVFMNCitTZXJ2aWNlTWFpbg0KKzsgcHVibGljOiBjbGFzcyBDU2VjdXJpdHlEaXNwZW5zZXIgJiBfX3B0cjY0IF9fY2RlY2wgQ1NlY3VyaXR5RGlzcGVuc2VyOjpvcGVyYXRvcj0oY2xhc3MgQ1NlY3VyaXR5RGlzcGVuc2VyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENTZWN1cml0eURpc3BlbnNlckBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIElQTV9NRVNTQUdFX1BJUEUgJiBfX3B0cjY0IF9fY2RlY2wgSVBNX01FU1NBR0VfUElQRTo6b3BlcmF0b3I9KGNsYXNzIElQTV9NRVNTQUdFX1BJUEUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80SVBNX01FU1NBR0VfUElQRUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaWlzd21pLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lpc3dtaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzI1NzU3YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lpc3dtaS5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJSVNQUk9WLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJSVNQUk9WLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0RvTW9mQ29tcA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2ltYWdlaGxwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2ltYWdlaGxwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYmM2MDBmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaW1hZ2VobHAuZGVmCkBAIC0wLDAgKzEsMTE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGltYWdlaGxwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpbWFnZWhscC5kbGwNCitFWFBPUlRTDQorUmVtb3ZlUmVsb2NhdGlvbnMNCitCaW5kSW1hZ2UNCitCaW5kSW1hZ2VFeA0KK0NoZWNrU3VtTWFwcGVkRmlsZQ0KK0VudW1lcmF0ZUxvYWRlZE1vZHVsZXMNCitFbnVtZXJhdGVMb2FkZWRNb2R1bGVzNjQNCitGaW5kRGVidWdJbmZvRmlsZQ0KK0ZpbmREZWJ1Z0luZm9GaWxlRXgNCitGaW5kRXhlY3V0YWJsZUltYWdlDQorRmluZEV4ZWN1dGFibGVJbWFnZUV4DQorRmluZEZpbGVJblBhdGgNCitGaW5kRmlsZUluU2VhcmNoUGF0aA0KK0dldEltYWdlQ29uZmlnSW5mb3JtYXRpb24NCitHZXRJbWFnZVVudXNlZEhlYWRlckJ5dGVzDQorR2V0VGltZXN0YW1wRm9yTG9hZGVkTGlicmFyeQ0KK0ltYWdlQWRkQ2VydGlmaWNhdGUNCitJbWFnZURpcmVjdG9yeUVudHJ5VG9EYXRhDQorSW1hZ2VEaXJlY3RvcnlFbnRyeVRvRGF0YUV4DQorSW1hZ2VFbnVtZXJhdGVDZXJ0aWZpY2F0ZXMNCitJbWFnZUdldENlcnRpZmljYXRlRGF0YQ0KK0ltYWdlR2V0Q2VydGlmaWNhdGVIZWFkZXINCitJbWFnZUdldERpZ2VzdFN0cmVhbQ0KK0ltYWdlTG9hZA0KK0ltYWdlTnRIZWFkZXINCitJbWFnZVJlbW92ZUNlcnRpZmljYXRlDQorSW1hZ2VSdmFUb1NlY3Rpb24NCitJbWFnZVJ2YVRvVmENCitJbWFnZVVubG9hZA0KK0ltYWdlaGxwQXBpVmVyc2lvbg0KK0ltYWdlaGxwQXBpVmVyc2lvbkV4DQorTWFrZVN1cmVEaXJlY3RvcnlQYXRoRXhpc3RzDQorTWFwQW5kTG9hZA0KK01hcEZpbGVBbmRDaGVja1N1bUENCitNYXBGaWxlQW5kQ2hlY2tTdW1XDQorUmVCYXNlSW1hZ2UNCitSZUJhc2VJbWFnZTY0DQorUmVtb3ZlUHJpdmF0ZUN2U3ltYm9saWMNCitSZW1vdmVQcml2YXRlQ3ZTeW1ib2xpY0V4DQorU2VhcmNoVHJlZUZvckZpbGUNCitTZXRJbWFnZUNvbmZpZ0luZm9ybWF0aW9uDQorU3BsaXRTeW1ib2xzDQorU3RhY2tXYWxrDQorU3RhY2tXYWxrNjQNCitTeW1DbGVhbnVwDQorU3ltRW51bVN5bQ0KK1N5bUVudW1TeW1ib2xzDQorU3ltRW51bVN5bWJvbHNGb3JBZGRyDQorU3ltRW51bVR5cGVzDQorU3ltRW51bWVyYXRlTW9kdWxlcw0KK1N5bUVudW1lcmF0ZU1vZHVsZXM2NA0KK1N5bUVudW1lcmF0ZVN5bWJvbHMNCitTeW1FbnVtZXJhdGVTeW1ib2xzNjQNCitTeW1FbnVtZXJhdGVTeW1ib2xzVw0KK1N5bUVudW1lcmF0ZVN5bWJvbHNXNjQNCitTeW1GaW5kRmlsZUluUGF0aA0KK1N5bUZyb21BZGRyDQorU3ltRnJvbU5hbWUNCitTeW1GdW5jdGlvblRhYmxlQWNjZXNzDQorU3ltRnVuY3Rpb25UYWJsZUFjY2VzczY0DQorU3ltR2V0TGluZUZyb21BZGRyDQorU3ltR2V0TGluZUZyb21BZGRyNjQNCitTeW1HZXRMaW5lRnJvbU5hbWUNCitTeW1HZXRMaW5lRnJvbU5hbWU2NA0KK1N5bUdldExpbmVOZXh0DQorU3ltR2V0TGluZU5leHQ2NA0KK1N5bUdldExpbmVQcmV2DQorU3ltR2V0TGluZVByZXY2NA0KK1N5bUdldE1vZHVsZUJhc2UNCitTeW1HZXRNb2R1bGVCYXNlNjQNCitTeW1HZXRNb2R1bGVJbmZvDQorU3ltR2V0TW9kdWxlSW5mbzY0DQorU3ltR2V0TW9kdWxlSW5mb1cNCitTeW1HZXRNb2R1bGVJbmZvVzY0DQorU3ltR2V0T3B0aW9ucw0KK1N5bUdldFNlYXJjaFBhdGgNCitTeW1HZXRTeW1Gcm9tQWRkcg0KK1N5bUdldFN5bUZyb21BZGRyNjQNCitTeW1HZXRTeW1Gcm9tTmFtZQ0KK1N5bUdldFN5bUZyb21OYW1lNjQNCitTeW1HZXRTeW1OZXh0DQorU3ltR2V0U3ltTmV4dDY0DQorU3ltR2V0U3ltUHJldg0KK1N5bUdldFN5bVByZXY2NA0KK1N5bUdldFR5cGVGcm9tTmFtZQ0KK1N5bUdldFR5cGVJbmZvDQorU3ltSW5pdGlhbGl6ZQ0KK1N5bUxvYWRNb2R1bGUNCitTeW1Mb2FkTW9kdWxlNjQNCitTeW1NYXRjaEZpbGVOYW1lDQorU3ltTWF0Y2hTdHJpbmcNCitTeW1SZWdpc3RlckNhbGxiYWNrDQorU3ltUmVnaXN0ZXJDYWxsYmFjazY0DQorU3ltUmVnaXN0ZXJGdW5jdGlvbkVudHJ5Q2FsbGJhY2sNCitTeW1SZWdpc3RlckZ1bmN0aW9uRW50cnlDYWxsYmFjazY0DQorU3ltU2V0Q29udGV4dA0KK1N5bVNldE9wdGlvbnMNCitTeW1TZXRTZWFyY2hQYXRoDQorU3ltVW5ETmFtZQ0KK1N5bVVuRE5hbWU2NA0KK1N5bVVubG9hZE1vZHVsZQ0KK1N5bVVubG9hZE1vZHVsZTY0DQorVG91Y2hGaWxlVGltZXMNCitVbkRlY29yYXRlU3ltYm9sTmFtZQ0KK1VuTWFwQW5kTG9hZA0KK1VwZGF0ZURlYnVnSW5mb0ZpbGUNCitVcGRhdGVEZWJ1Z0luZm9GaWxlRXgNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pbWVrcmNpYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbWVrcmNpYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTg0YzRiOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2ltZWtyY2ljLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElNRUtSQ0lDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJTUVLUkNJQy5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pbWVwYWRzbS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbWVwYWRzbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTZiODIzNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2ltZXBhZHNtLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1haW4uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1haW4uZGxsDQorRVhQT1JUUw0KK0NyZWF0ZU9iamVjdDINCitDcmVhdGVPYmplY3QNCitSZWdDbGFzcw0KK1VucmVnQ2xhc3MNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2ltZXNoYXJlLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2ltZXNoYXJlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNWUwODFhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaW1lc2hhcmUuZGVmCkBAIC0wLDAgKzEsMzggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaW1lc2hhcmUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGltZXNoYXJlLmRsbA0KK0VYUE9SVFMNCitEbGxNYWluDQorRkluaXRJTUVTaGFyZQ0KK0VuZElNRVNoYXJlDQorRlJlZnJlc2hTdHlsZQ0KK0ZTdXBwb3J0U3R5DQorUElNRVN0eWxlRnJvbUF0dHINCitQQ29sb3JTdHlsZVRleHRGcm9tSU1FU3R5bGUNCitQQ29sb3JTdHlsZUJhY2tGcm9tSU1FU3R5bGUNCitGQm9sZElNRVN0eWxlDQorRkl0YWxpY0lNRVN0eWxlDQorRlVsSU1FU3R5bGUNCitHcmZTdHlJTUVTdHlsZQ0KK0lkVWxJTUVTdHlsZQ0KK0ZHZXRJTUVTdHlsZUF0dHINCitGU2V0SU1FU3R5bGVBdHRyDQorRldpbklNRUNvbG9yU3R5bGUNCitGRnVuZGFtZW50YWxJTUVDb2xvclN0eWxlDQorRlJHQklNRUNvbG9yU3R5bGUNCitGU3BlY2lhbElNRUNvbG9yU3R5bGUNCitJZFNwZWNpYWxGcm9tSU1FQ29sb3JTdHlsZQ0KK0lkV2luRnJvbUlNRUNvbG9yU3R5bGUNCitJZEZ1bmRhbWVudGFsRnJvbUlNRUNvbG9yU3R5bGUNCitSR0JGcm9tSU1FQ29sb3JTdHlsZQ0KK0ZTZXRJTUVDb2xvclN0eWxlDQorRlNldElNRVN0eWxlDQorRlNwZWNpYWxUZXh0SU1FQ29sb3JTdHlsZQ0KK0ZTcGVjaWFsV2luZG93SU1FQ29sb3JTdHlsZQ0KK0N1c3RvbWl6ZUlNRVNoYXJlDQorRlNhdmVJTUVTaGFyZVNldHRpbmcNCitQSU1FU2hhcmVDcmVhdGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pbWd1dGlsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2ltZ3V0aWwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJiOTBkMTAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pbWd1dGlsLmRlZgpAQCAtMCwwICsxLDIwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEltZ1V0aWwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEltZ1V0aWwuZGxsDQorRVhQT1JUUw0KK0NvbXB1dGVJbnZDTUFQDQorQ3JlYXRlRERyYXdTdXJmYWNlT25ESUINCitDcmVhdGVNSU1FTWFwDQorRGVjb2RlSW1hZ2UNCitEaXRoZXJUbzgNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldE1heE1JTUVJREJ5dGVzDQorSWRlbnRpZnlNSU1FVHlwZQ0KK1NuaWZmU3RyZWFtDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaW1qcDgxay5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbWpwODFrLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZTc4YWNkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaW1qcDgxay5kZWYKQEAgLTAsMCArMSwzNyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpbWpwODFrLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpbWpwODFrLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3dEb25lDQorQ2hlY2tGaWxlVHlwZQ0KK0NsZWFuRGljVGhyZWFkRnVuYw0KK0NyZWF0ZUlGRUNvbW1vbkluc3RhbmNlDQorQ3JlYXRlSUZFRGljdGlvbmFyeTJJbnN0YW5jZQ0KK0NyZWF0ZUlGRURpY3Rpb25hcnlJbnN0YW5jZQ0KK0NyZWF0ZUlGRUxhbmd1YWdlSW5zdGFuY2UNCitDcmVhdGVJSW1lSVBvaW50SW5zdGFuY2UNCitDcmVhdGVJSW1lS2JkSW5zdGFuY2UNCitDcmVhdGVJSW1lS25sRGljdEluc3RhbmNlDQorQ3JlYXRlSVJlZ01hbkluc3RhbmNlDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitLbmxDbG9zZQ0KK0tubEluaXQNCitLbmxPcGVuDQorS25sVGVybQ0KK0xvYWRUaXBDb25maWcNCitPdXJDb0NyZWF0ZUluc3RhbmNlDQorT3VyQ29UYXNrTWVtQWxsb2MNCitPdXJDb1Rhc2tNZW1GcmVlDQorT3VyQ29UYXNrTWVtUmVhbGxvYw0KK091clN0cmluZ0Zyb21HVUlEMg0KK1JnU2V0R2FrdXN5dXUNCitTaHV0ZG93bktubERsbA0KK1VuTG9hZE91ck9sZTMyDQorcmVsb2FkX2NvbmZpZw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2ltanBjaWMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaW1qcGNpYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjhmOGU5MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2ltanBjaWMuZGVmCkBAIC0wLDAgKzEsMTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgc2lteC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgc2lteC5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IHN0YXRpYyBfX2ludDY0IF9fY2RlY2wgQ0hlbHA6OkFib3V0RGxnUHJvYyhzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgX19pbnQ2NCxfX2ludDY0KQ0KKz9BYm91dERsZ1Byb2NAQ0hlbHBAQFNBX0pQRUFVSFdORF9fQEBJX0tfSkBaDQorOyBwdWJsaWM6IHN0YXRpYyBfX2ludDY0IF9fY2RlY2wgQ1BhZDo6SFdEbGdQcm9jKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBfX2ludDY0LF9faW50NjQpDQorP0hXRGxnUHJvY0BDUGFkQEBTQV9KUEVBVUhXTkRfX0BASV9LX0pAWg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaW1qcGN1cy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbWpwY3VzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMjMxMDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaW1qcGN1cy5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpbWVqcGN1cy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaW1lanBjdXMuZGxsDQorRVhQT1JUUw0KK09wZW5EZXRhaWxEaWFsb2cNCitEbGxNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaW1qcGRjdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbWpwZGN0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNjczYjVkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaW1qcGRjdC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpbWVkaWMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGltZWRpYy5kbGwNCitFWFBPUlRTDQorT3BlbkRpY1Rvb2wNCitPcGVuUmVnaXN0ZXJXb3JkDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaW1qcHV0eWMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaW1qcHV0eWMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQyZTNhYTYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pbWpwdXR5Yy5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpbWpwdXR5Yy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaW1qcHV0eWMuZGxsDQorRVhQT1JUUw0KK0F1dG9Db3JyTGJTdWJXbmRQcm9jDQorRGxsTWFpbg0KK09wZW5JbWVUb29sDQorT3BlblV0eQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2ltbGFuZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbWxhbmcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZmNjExNDMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pbWxhbmcuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbWFpbi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbWFpbi5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pbW0zMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbW0zMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjVhNWU4YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2ltbTMyLmRlZgpAQCAtMCwwICsxLDEzOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJTU0zMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSU1NMzIuZGxsDQorRVhQT1JUUw0KK0N0ZkFJbW1BY3RpdmF0ZQ0KK0N0ZkFJbW1EZWFjdGl2YXRlDQorQ3RmQUltbUlzSU1FDQorQ3RmSW1tQ29VbmluaXRpYWxpemUNCitDdGZJbW1EaXNwYXRjaERlZkltZU1lc3NhZ2UNCitDdGZJbW1FbnRlckNvSW5pdENvdW50U2tpcE1vZGUNCitDdGZJbW1HZW5lcmF0ZU1lc3NhZ2UNCitDdGZJbW1HZXRHdWlkQXRvbQ0KK0N0ZkltbUhpZGVUb29sYmFyV25kDQorQ3RmSW1tSXNDaWNlcm9FbmFibGVkDQorQ3RmSW1tSXNDaWNlcm9TdGFydGVkSW5UaHJlYWQNCitDdGZJbW1Jc0d1aWRNYXBFbmFibGUNCitDdGZJbW1Jc1RleHRGcmFtZVNlcnZpY2VEaXNhYmxlZA0KK0N0ZkltbUxhc3RFbmFibGVkV25kRGVzdHJveQ0KK0N0ZkltbUxlYXZlQ29Jbml0Q291bnRTa2lwTW9kZQ0KK0N0ZkltbVJlc3RvcmVUb29sYmFyV25kDQorQ3RmSW1tU2V0QXBwQ29tcGF0RmxhZ3MNCitDdGZJbW1TZXRDaWNlcm9TdGFydEluVGhyZWFkDQorQ3RmSW1tVElNQWN0aXZhdGUNCitHZXRLZXlib2FyZExheW91dENQDQorSW1tQWN0aXZhdGVMYXlvdXQNCitJbW1Bc3NvY2lhdGVDb250ZXh0DQorSW1tQXNzb2NpYXRlQ29udGV4dEV4DQorSW1tQ2FsbEltZUNvbnNvbGVJTUUNCitJbW1Db25maWd1cmVJTUVBDQorSW1tQ29uZmlndXJlSU1FVw0KK0ltbUNyZWF0ZUNvbnRleHQNCitJbW1DcmVhdGVJTUNDDQorSW1tQ3JlYXRlU29mdEtleWJvYXJkDQorSW1tRGVzdHJveUNvbnRleHQNCitJbW1EZXN0cm95SU1DQw0KK0ltbURlc3Ryb3lTb2Z0S2V5Ym9hcmQNCitJbW1EaXNhYmxlSU1FDQorSW1tRGlzYWJsZUltZQ0KK0ltbURpc2FibGVUZXh0RnJhbWVTZXJ2aWNlDQorSW1tRW51bUlucHV0Q29udGV4dA0KK0ltbUVudW1SZWdpc3RlcldvcmRBDQorSW1tRW51bVJlZ2lzdGVyV29yZFcNCitJbW1Fc2NhcGVBDQorSW1tRXNjYXBlVw0KK0ltbUZyZWVMYXlvdXQNCitJbW1HZW5lcmF0ZU1lc3NhZ2UNCitJbW1HZXRBcHBDb21wYXRGbGFncw0KK0ltbUdldENhbmRpZGF0ZUxpc3RBDQorSW1tR2V0Q2FuZGlkYXRlTGlzdENvdW50QQ0KK0ltbUdldENhbmRpZGF0ZUxpc3RDb3VudFcNCitJbW1HZXRDYW5kaWRhdGVMaXN0Vw0KK0ltbUdldENhbmRpZGF0ZVdpbmRvdw0KK0ltbUdldENvbXBvc2l0aW9uRm9udEENCitJbW1HZXRDb21wb3NpdGlvbkZvbnRXDQorSW1tR2V0Q29tcG9zaXRpb25TdHJpbmdBDQorSW1tR2V0Q29tcG9zaXRpb25TdHJpbmdXDQorSW1tR2V0Q29tcG9zaXRpb25XaW5kb3cNCitJbW1HZXRDb250ZXh0DQorSW1tR2V0Q29udmVyc2lvbkxpc3RBDQorSW1tR2V0Q29udmVyc2lvbkxpc3RXDQorSW1tR2V0Q29udmVyc2lvblN0YXR1cw0KK0ltbUdldERlZmF1bHRJTUVXbmQNCitJbW1HZXREZXNjcmlwdGlvbkENCitJbW1HZXREZXNjcmlwdGlvblcNCitJbW1HZXRHdWlkZUxpbmVBDQorSW1tR2V0R3VpZGVMaW5lVw0KK0ltbUdldEhvdEtleQ0KK0ltbUdldElNQ0NMb2NrQ291bnQNCitJbW1HZXRJTUNDU2l6ZQ0KK0ltbUdldElNQ0xvY2tDb3VudA0KK0ltbUdldElNRUZpbGVOYW1lQQ0KK0ltbUdldElNRUZpbGVOYW1lVw0KK0ltbUdldEltZUluZm9FeA0KK0ltbUdldEltZU1lbnVJdGVtc0ENCitJbW1HZXRJbWVNZW51SXRlbXNXDQorSW1tR2V0T3BlblN0YXR1cw0KK0ltbUdldFByb3BlcnR5DQorSW1tR2V0UmVnaXN0ZXJXb3JkU3R5bGVBDQorSW1tR2V0UmVnaXN0ZXJXb3JkU3R5bGVXDQorSW1tR2V0U3RhdHVzV2luZG93UG9zDQorSW1tR2V0VmlydHVhbEtleQ0KK0ltbUlNUEdldElNRUENCitJbW1JTVBHZXRJTUVXDQorSW1tSU1QUXVlcnlJTUVBDQorSW1tSU1QUXVlcnlJTUVXDQorSW1tSU1QU2V0SU1FQQ0KK0ltbUlNUFNldElNRVcNCitJbW1JbnN0YWxsSU1FQQ0KK0ltbUluc3RhbGxJTUVXDQorSW1tSXNJTUUNCitJbW1Jc1VJTWVzc2FnZUENCitJbW1Jc1VJTWVzc2FnZVcNCitJbW1Mb2FkSU1FDQorSW1tTG9hZExheW91dA0KK0ltbUxvY2tDbGllbnRJbWMNCitJbW1Mb2NrSU1DDQorSW1tTG9ja0lNQ0MNCitJbW1Mb2NrSW1lRHBpDQorSW1tTm90aWZ5SU1FDQorSW1tUHJvY2Vzc0tleQ0KK0ltbVB1dEltZU1lbnVJdGVtc0ludG9NYXBwZWRGaWxlDQorSW1tUmVTaXplSU1DQw0KK0ltbVJlZ2lzdGVyQ2xpZW50DQorSW1tUmVnaXN0ZXJXb3JkQQ0KK0ltbVJlZ2lzdGVyV29yZFcNCitJbW1SZWxlYXNlQ29udGV4dA0KK0ltbVJlcXVlc3RNZXNzYWdlQQ0KK0ltbVJlcXVlc3RNZXNzYWdlVw0KK0ltbVNlbmRJTUVNZXNzYWdlRXhBDQorSW1tU2VuZElNRU1lc3NhZ2VFeFcNCitJbW1TZXRBY3RpdmVDb250ZXh0DQorSW1tU2V0QWN0aXZlQ29udGV4dENvbnNvbGVJTUUNCitJbW1TZXRDYW5kaWRhdGVXaW5kb3cNCitJbW1TZXRDb21wb3NpdGlvbkZvbnRBDQorSW1tU2V0Q29tcG9zaXRpb25Gb250Vw0KK0ltbVNldENvbXBvc2l0aW9uU3RyaW5nQQ0KK0ltbVNldENvbXBvc2l0aW9uU3RyaW5nVw0KK0ltbVNldENvbXBvc2l0aW9uV2luZG93DQorSW1tU2V0Q29udmVyc2lvblN0YXR1cw0KK0ltbVNldEhvdEtleQ0KK0ltbVNldE9wZW5TdGF0dXMNCitJbW1TZXRTdGF0dXNXaW5kb3dQb3MNCitJbW1TaG93U29mdEtleWJvYXJkDQorSW1tU2ltdWxhdGVIb3RLZXkNCitJbW1TeXN0ZW1IYW5kbGVyDQorSW1tVHJhbnNsYXRlTWVzc2FnZQ0KK0ltbVVubG9ja0NsaWVudEltYw0KK0ltbVVubG9ja0lNQw0KK0ltbVVubG9ja0lNQ0MNCitJbW1VbmxvY2tJbWVEcGkNCitJbW1VbnJlZ2lzdGVyV29yZEENCitJbW1VbnJlZ2lzdGVyV29yZFcNCitJbW1XSU5OTFNFbmFibGVJTUUNCitJbW1XSU5OTFNHZXRFbmFibGVTdGF0dXMNCitJbW1XSU5OTFNHZXRJTUVIb3RrZXkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pbXNpbnNudC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbXNpbnNudC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWRhYzcyYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2ltc2luc250LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSU1TSU5TTlQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElNU0lOU05ULmRsbA0KK0VYUE9SVFMNCitPY0VudHJ5DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaW1za2RpYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbXNrZGljLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNmFiMGMzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaW1za2RpYy5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpbWVza2RpYy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaW1lc2tkaWMuZGxsDQorRVhQT1JUUw0KK0NyZWF0ZUlJbWVTa2RpY0luc3RhbmNlDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pbXNrZi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbXNrZi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmY2MTE0MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2ltc2tmLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1haW4uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1haW4uZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaW5ldGNmZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbmV0Y2ZnLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZmI4NmE4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaW5ldGNmZy5kZWYKQEAgLTAsMCArMSw2MSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJTkVUQ0ZHLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJTkVUQ0ZHLmRsbA0KK0VYUE9SVFMNCitDaGVja0Nvbm5lY3Rpb25XaXphcmQNCitDb25maWd1cmVTeXN0ZW1Gb3JJbnRlcm5ldA0KK0NvbmZpZ3VyZVN5c3RlbUZvckludGVybmV0QQ0KK0NvbmZpZ3VyZVN5c3RlbUZvckludGVybmV0Vw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorRnJlZVNpZ251cFdpemFyZA0KK0luZXRDb25maWdDbGllbnQNCitJbmV0Q29uZmlnQ2xpZW50QQ0KK0luZXRDb25maWdDbGllbnRXDQorSW5ldENvbmZpZ1N5c3RlbQ0KK0luZXRDb25maWdTeXN0ZW1Gcm9tUGF0aA0KK0luZXRDb25maWdTeXN0ZW1Gcm9tUGF0aEENCitJbmV0Q29uZmlnU3lzdGVtRnJvbVBhdGhXDQorSW5ldEdldEF1dG9kaWFsDQorSW5ldEdldEF1dG9kaWFsQQ0KK0luZXRHZXRBdXRvZGlhbFcNCitJbmV0R2V0Q2xpZW50SW5mbw0KK0luZXRHZXRDbGllbnRJbmZvQQ0KK0luZXRHZXRDbGllbnRJbmZvVw0KK0luZXRHZXRQcm94eQ0KK0luZXRHZXRQcm94eUENCitJbmV0R2V0UHJveHlXDQorSW5ldE5lZWRNb2RlbQ0KK0luZXROZWVkU3lzdGVtQ29tcG9uZW50cw0KK0luZXRQZXJmb3JtU2VjdXJpdHlDaGVjaw0KK0luZXRTZXRBdXRvZGlhbA0KK0luZXRTZXRBdXRvZGlhbEENCitJbmV0U2V0QXV0b2RpYWxXDQorSW5ldFNldENsaWVudEluZm8NCitJbmV0U2V0Q2xpZW50SW5mb0ENCitJbmV0U2V0Q2xpZW50SW5mb1cNCitJbmV0U2V0UHJveHkNCitJbmV0U2V0UHJveHlBDQorSW5ldFNldFByb3h5RXgNCitJbmV0U2V0UHJveHlFeEENCitJbmV0U2V0UHJveHlFeFcNCitJbmV0U2V0UHJveHlXDQorSW5ldFN0YXJ0U2VydmljZXMNCitJc1NtYXJ0U3RhcnQNCitJc1NtYXJ0U3RhcnRFeA0KK0xhdW5jaFNpZ251cFdpemFyZA0KK0xhdW5jaFNpZ251cFdpemFyZEV4DQorU2V0QXV0b1Byb3h5Q29ubmVjdG9pZA0KK1NldEludGVybmV0UGhvbmVOdW1iZXINCitTZXRJbnRlcm5ldFBob25lTnVtYmVyQQ0KK1NldEludGVybmV0UGhvbmVOdW1iZXJXDQorU2V0U2hlbGxOZXh0DQorU2V0U2hlbGxOZXh0QQ0KK1NldFNoZWxsTmV4dFcNCitfTGF1bmNoU2lnbnVwV2l6YXJkRXgNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pbmV0Y29tbS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbmV0Y29tbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2NiOTlmNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2luZXRjb21tLmRlZgpAQCAtMCwwICsxLDExNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJTkVUQ09NTS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSU5FVENPTU0uZGxsDQorRVhQT1JUUw0KK1JpY2hNaW1lRWRpdF9DcmVhdGVJbnN0YW5jZQ0KK0NyZWF0ZUlNQVBUcmFuc3BvcnQNCitDcmVhdGVJTUFQVHJhbnNwb3J0Mg0KK0NyZWF0ZU5OVFBUcmFuc3BvcnQNCitDcmVhdGVQT1AzVHJhbnNwb3J0DQorQ3JlYXRlUkFTVHJhbnNwb3J0DQorQ3JlYXRlUmFuZ2VMaXN0DQorQ3JlYXRlU01UUFRyYW5zcG9ydA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorRXNzQ29udGVudEhpbnREZWNvZGVFeA0KK0Vzc0NvbnRlbnRIaW50RW5jb2RlRXgNCitFc3NLZXlFeGNoUHJlZmVyZW5jZURlY29kZUV4DQorRXNzS2V5RXhjaFByZWZlcmVuY2VFbmNvZGVFeA0KK0Vzc01MSGlzdG9yeURlY29kZUV4DQorRXNzTUxIaXN0b3J5RW5jb2RlRXgNCitFc3NSZWNlaXB0RGVjb2RlRXgNCitFc3NSZWNlaXB0RW5jb2RlRXgNCitFc3NSZWNlaXB0UmVxdWVzdERlY29kZUV4DQorRXNzUmVjZWlwdFJlcXVlc3RFbmNvZGVFeA0KK0Vzc1NlY3VyaXR5TGFiZWxEZWNvZGVFeA0KK0Vzc1NlY3VyaXR5TGFiZWxFbmNvZGVFeA0KK0Vzc1NpZ25DZXJ0aWZpY2F0ZURlY29kZUV4DQorRXNzU2lnbkNlcnRpZmljYXRlRW5jb2RlRXgNCitHZXREbGxNYWpvclZlcnNpb24NCitIckF0aEdldEZpbGVOYW1lDQorSHJBdGhHZXRGaWxlTmFtZVcNCitIckF0dGFjaERhdGFGcm9tQm9keVBhcnQNCitIckF0dGFjaERhdGFGcm9tRmlsZQ0KK0hyRG9BdHRhY2htZW50VmVyYg0KK0hyRnJlZUF0dGFjaERhdGENCitIckdldEF0dGFjaEljb24NCitIckdldEF0dGFjaEljb25CeUZpbGUNCitIckdldERpc3BsYXlOYW1lV2l0aFNpemVGb3JGaWxlDQorSHJHZXRMYXN0T3BlbkZpbGVEaXJlY3RvcnkNCitIckdldExhc3RPcGVuRmlsZURpcmVjdG9yeVcNCitIclNhdmVBdHRhY2hUb0ZpbGUNCitIclNhdmVBdHRhY2htZW50QXMNCitNaW1lRWRpdENyZWF0ZU1pbWVEb2N1bWVudA0KK01pbWVFZGl0RG9jdW1lbnRGcm9tU3RyZWFtDQorTWltZUVkaXRHZXRCYWNrZ3JvdW5kSW1hZ2VVcmwNCitNaW1lRWRpdElzU2FmZVRvUnVuDQorTWltZUVkaXRWaWV3U291cmNlDQorTWltZUdldEFkZHJlc3NGb3JtYXRXDQorTWltZU9sZUFsZ05hbWVGcm9tU01pbWVDYXANCitNaW1lT2xlQWxnU3RyZW5ndGhGcm9tU01pbWVDYXANCitNaW1lT2xlQ2xlYXJEaXJ0eVRyZWUNCitNaW1lT2xlQ29udmVydEVucmljaGVkVG9IVE1MDQorTWltZU9sZUNyZWF0ZUJvZHkNCitNaW1lT2xlQ3JlYXRlQnl0ZVN0cmVhbQ0KK01pbWVPbGVDcmVhdGVIYXNoVGFibGUNCitNaW1lT2xlQ3JlYXRlSGVhZGVyVGFibGUNCitNaW1lT2xlQ3JlYXRlTWVzc2FnZQ0KK01pbWVPbGVDcmVhdGVNZXNzYWdlUGFydHMNCitNaW1lT2xlQ3JlYXRlUHJvcGVydHlTZXQNCitNaW1lT2xlQ3JlYXRlU2VjdXJpdHkNCitNaW1lT2xlQ3JlYXRlVmlydHVhbFN0cmVhbQ0KK01pbWVPbGVEZWNvZGVIZWFkZXINCitNaW1lT2xlRW5jb2RlSGVhZGVyDQorTWltZU9sZUZpbGVUaW1lVG9JbmV0RGF0ZQ0KK01pbWVPbGVGaW5kQ2hhcnNldA0KK01pbWVPbGVHZW5lcmF0ZUNJRA0KK01pbWVPbGVHZW5lcmF0ZUZpbGVOYW1lDQorTWltZU9sZUdlbmVyYXRlTUlEDQorTWltZU9sZUdldEFsbG9jYXRvcg0KK01pbWVPbGVHZXRCb2R5UHJvcEENCitNaW1lT2xlR2V0Qm9keVByb3BXDQorTWltZU9sZUdldENlcnRzRnJvbVRodW1icHJpbnRzDQorTWltZU9sZUdldENoYXJzZXRJbmZvDQorTWltZU9sZUdldENvZGVQYWdlQ2hhcnNldA0KK01pbWVPbGVHZXRDb2RlUGFnZUluZm8NCitNaW1lT2xlR2V0Q29udGVudFR5cGVFeHQNCitNaW1lT2xlR2V0RGVmYXVsdENoYXJzZXQNCitNaW1lT2xlR2V0RXh0Q29udGVudFR5cGUNCitNaW1lT2xlR2V0RmlsZUV4dGVuc2lvbg0KK01pbWVPbGVHZXRGaWxlSW5mbw0KK01pbWVPbGVHZXRGaWxlSW5mb1cNCitNaW1lT2xlR2V0SW50ZXJuYXQNCitNaW1lT2xlR2V0UHJvcEENCitNaW1lT2xlR2V0UHJvcFcNCitNaW1lT2xlR2V0UHJvcGVydHlTY2hlbWENCitNaW1lT2xlR2V0UmVsYXRlZFNlY3Rpb24NCitNaW1lT2xlSW5ldERhdGVUb0ZpbGVUaW1lDQorTWltZU9sZU9iamVjdEZyb21Nb25pa2VyDQorTWltZU9sZU9wZW5GaWxlU3RyZWFtDQorTWltZU9sZVBhcnNlTWh0bWxVcmwNCitNaW1lT2xlUGFyc2VSZmM4MjJBZGRyZXNzDQorTWltZU9sZVBhcnNlUmZjODIyQWRkcmVzc1cNCitNaW1lT2xlU01pbWVDYXBBZGRDZXJ0DQorTWltZU9sZVNNaW1lQ2FwQWRkU01pbWVDYXANCitNaW1lT2xlU01pbWVDYXBHZXRFbmNBbGcNCitNaW1lT2xlU01pbWVDYXBHZXRIYXNoQWxnDQorTWltZU9sZVNNaW1lQ2FwSW5pdA0KK01pbWVPbGVTTWltZUNhcFJlbGVhc2UNCitNaW1lT2xlU01pbWVDYXBzRnJvbURsZw0KK01pbWVPbGVTTWltZUNhcHNGdWxsDQorTWltZU9sZVNNaW1lQ2Fwc1RvRGxnDQorTWltZU9sZVNldEJvZHlQcm9wQQ0KK01pbWVPbGVTZXRCb2R5UHJvcFcNCitNaW1lT2xlU2V0Q29tcGF0TW9kZQ0KK01pbWVPbGVTZXREZWZhdWx0Q2hhcnNldA0KK01pbWVPbGVTZXRQcm9wQQ0KK01pbWVPbGVTZXRQcm9wVw0KK01pbWVPbGVTdHJpcEhlYWRlcnMNCitNaW1lT2xlVW5Fc2NhcGVTdHJpbmdJblBsYWNlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaW5ldG1nci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbmV0bWdyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYmMzNDg0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaW5ldG1nci5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpbmV0bWdyLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpbmV0bWdyLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2luZXRtaWIxLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2luZXRtaWIxLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZTIzZjgwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaW5ldG1pYjEuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaW5ldG1pYjEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGluZXRtaWIxLmRsbA0KK0VYUE9SVFMNCitTbm1wRXh0ZW5zaW9uSW5pdA0KK1NubXBFeHRlbnNpb25Jbml0RXgNCitTbm1wRXh0ZW5zaW9uUXVlcnkNCitTbm1wRXh0ZW5zaW9uVHJhcA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2luZXRwcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbmV0cHAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNiZTZhNTAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pbmV0cHAuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJTkVUUFAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElORVRQUC5kbGwNCitFWFBPUlRTDQorSW5pdGlhbGl6ZVByaW50UHJvdmlkb3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pbmV0cHB1aS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbmV0cHB1aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTA4ZmZlMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2luZXRwcHVpLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSU5FVFBQVUkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElORVRQUFVJLmRsbA0KK0VYUE9SVFMNCitJbml0aWFsaXplUHJpbnRNb25pdG9yVUkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pbmZvYWRtbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbmZvYWRtbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODhmZjkyZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2luZm9hZG1uLmRlZgpAQCAtMCwwICsxLDI2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElORk9BRE1OLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJTkZPQURNTi5kbGwNCitFWFBPUlRTDQorQ29sbGVjdFczUGVyZkRhdGENCitGdHBDbGVhclN0YXRpc3RpY3MyDQorRnRwUXVlcnlTdGF0aXN0aWNzMg0KK0lJU0Rpc2Nvbm5lY3RVc2VyDQorSUlTRW51bWVyYXRlVXNlcnMNCitJbmV0SW5mb0NsZWFyU3RhdGlzdGljcw0KK0luZXRJbmZvRmx1c2hNZW1vcnlDYWNoZQ0KK0luZXRJbmZvR2V0QWRtaW5JbmZvcm1hdGlvbg0KK0luZXRJbmZvR2V0R2xvYmFsQWRtaW5JbmZvcm1hdGlvbg0KK0luZXRJbmZvR2V0U2VydmVyQ2FwYWJpbGl0aWVzDQorSW5ldEluZm9HZXRTaXRlcw0KK0luZXRJbmZvR2V0VmVyc2lvbg0KK0luZXRJbmZvUXVlcnlTdGF0aXN0aWNzDQorSW5ldEluZm9TZXRBZG1pbkluZm9ybWF0aW9uDQorSW5ldEluZm9TZXRHbG9iYWxBZG1pbkluZm9ybWF0aW9uDQorSW5pdFczQ291bnRlclN0cnVjdHVyZQ0KK1czQ2xlYXJTdGF0aXN0aWNzMg0KK1czUXVlcnlTdGF0aXN0aWNzMg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2luZm9jb21tLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2luZm9jb21tLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYzI4MDZjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaW5mb2NvbW0uZGVmCkBAIC0wLDAgKzEsMTE3MyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJTkZPQ09NTS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSU5GT0NPTU0uZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIENPTU1PTl9NRVRBREFUQTo6Q09NTU9OX01FVEFEQVRBKHZvaWQpIF9fcHRyNjQNCis/PzBDT01NT05fTUVUQURBVEFAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBIQVNIX1RBQkxFOjpIQVNIX1RBQkxFKGNsYXNzIEhBU0hfVEFCTEUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wSEFTSF9UQUJMRUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIEhUX0VMRU1FTlQ6OkhUX0VMRU1FTlQoY2xhc3MgSFRfRUxFTUVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBIVF9FTEVNRU5UQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSFRfRUxFTUVOVDo6SFRfRUxFTUVOVCh2b2lkKSBfX3B0cjY0DQorPz8wSFRfRUxFTUVOVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIElJU19DVEw6OklJU19DVEwoY2xhc3MgSUlTX0NUTCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBJSVNfQ1RMQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSUlTX0NUTDo6SUlTX0NUTChzdHJ1Y3QgSU1EQ09NICogX19wdHI2NCxjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz8/MElJU19DVExAQFFFQUFAUEVBVUlNRENPTUBAUEVBREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSUlTX1NFUlZFUl9CSU5ESU5HOjpJSVNfU0VSVkVSX0JJTkRJTkcodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCxjaGFyIGNvbnN0ICogX19wdHI2NCxjbGFzcyBJSVNfRU5EUE9JTlQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wSUlTX1NFUlZFUl9CSU5ESU5HQEBRRUFBQEtHUEVCRFBFQVZJSVNfRU5EUE9JTlRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSUlTX1NFUlZFUl9DRVJUOjpJSVNfU0VSVkVSX0NFUlQoY2xhc3MgSUlTX1NFUlZFUl9DRVJUIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MElJU19TRVJWRVJfQ0VSVEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIElJU19TRVJWRVJfQ0VSVDo6SUlTX1NFUlZFUl9DRVJUKHN0cnVjdCBJTURDT00gKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wSUlTX1NFUlZFUl9DRVJUQEBRRUFBQFBFQVVJTURDT01AQFBFQURAWg0KKzsgcHVibGljOiBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OklJU19TRVJWRVJfSU5TVEFOQ0UoY2xhc3MgSUlTX1NFUlZJQ0UgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQsY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUFBQFBFQVZJSVNfU0VSVklDRUBAS0dQRUJEUEVBRzJIQFoNCis7IHB1YmxpYzogX19jZGVjbCBJSVNfU0VSVklDRTo6SUlTX1NFUlZJQ0UoY2xhc3MgSUlTX1NFUlZJQ0UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wSUlTX1NFUlZJQ0VAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBJSVNfU0VSVklDRTo6SUlTX1NFUlZJQ0UoY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBfX2ludDY0LGludCx1bnNpZ25lZCBsb25nLHZvaWQgKF9fY2RlY2wqKSh1bnNpZ25lZCBfX2ludDY0LHN0cnVjdCBzb2NrYWRkcl9pbiAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpLHZvaWQgKF9fY2RlY2wqKSh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsc3RydWN0IF9PVkVSTEFQUEVEICogX19wdHI2NCksdm9pZCAoX19jZGVjbCopKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgX09WRVJMQVBQRUQgKiBfX3B0cjY0KSkgX19wdHI2NA0KKz8/MElJU19TRVJWSUNFQEBRRUFBQFBFQkQwMEtfS0hLUDZBWDFQRUFVc29ja2FkZHJfaW5AQFBFQVgzQFpQNkFYM0tLUEVBVV9PVkVSTEFQUEVEQEBAWjZAWg0KKzsgcHVibGljOiBfX2NkZWNsIElJU19TU0xfSU5GTzo6SUlTX1NTTF9JTkZPKGNsYXNzIElJU19TU0xfSU5GTyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBJSVNfU1NMX0lORk9AQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBJSVNfU1NMX0lORk86OklJU19TU0xfSU5GTyhjaGFyICogX19wdHI2NCxzdHJ1Y3QgSU1EQ09NICogX19wdHI2NCkgX19wdHI2NA0KKz8/MElJU19TU0xfSU5GT0BAUUVBQUBQRUFEUEVBVUlNRENPTUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBJSVNfVlJPT1RfVEFCTEU6OklJU19WUk9PVF9UQUJMRSh2b2lkKSBfX3B0cjY0DQorPz8wSUlTX1ZST09UX1RBQkxFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgSU5FVF9QQVJTRVI6OklORVRfUEFSU0VSKGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wSU5FVF9QQVJTRVJAQFFFQUFAUEVBREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE9HR0lORzo6TE9HR0lORyhjbGFzcyBMT0dHSU5HIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MExPR0dJTkdAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBMT0dHSU5HOjpMT0dHSU5HKHZvaWQpIF9fcHRyNjQNCis/PzBMT0dHSU5HQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTUI6Ok1CKHN0cnVjdCBJTURDT00gKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTUJAQFFFQUFAUEVBVUlNRENPTUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBNSU1FX01BUDo6TUlNRV9NQVAodm9pZCkgX19wdHI2NA0KKz8/ME1JTUVfTUFQQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgT0RCQ19DT05ORUNUSU9OOjpPREJDX0NPTk5FQ1RJT04odm9pZCkgX19wdHI2NA0KKz8/ME9EQkNfQ09OTkVDVElPTkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE9EQkNfUEFSQU1FVEVSOjpPREJDX1BBUkFNRVRFUih1bnNpZ25lZCBzaG9ydCxzaG9ydCxzaG9ydCxzaG9ydCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wT0RCQ19QQVJBTUVURVJAQFFFQUFAR0ZGRktAWg0KKzsgcHVibGljOiBfX2NkZWNsIFJlZkJsb2I6OlJlZkJsb2Iodm9pZCkgX19wdHI2NA0KKz8/MFJlZkJsb2JAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTVE9SRV9DSEFOR0VfTk9USUZJRVI6OlNUT1JFX0NIQU5HRV9OT1RJRklFUih2b2lkKSBfX3B0cjY0DQorPz8wU1RPUkVfQ0hBTkdFX05PVElGSUVSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVENQX0FVVEhFTlQ6OlRDUF9BVVRIRU5UKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBUQ1BfQVVUSEVOVEBAUUVBQUBLQFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENPTU1PTl9NRVRBREFUQTo6fkNPTU1PTl9NRVRBREFUQSh2b2lkKSBfX3B0cjY0DQorPz8xQ09NTU9OX01FVEFEQVRBQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBIQVNIX1RBQkxFOjp+SEFTSF9UQUJMRSh2b2lkKSBfX3B0cjY0DQorPz8xSEFTSF9UQUJMRUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgSFRfRUxFTUVOVDo6fkhUX0VMRU1FTlQodm9pZCkgX19wdHI2NA0KKz8/MUhUX0VMRU1FTlRAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBJSVNfQ1RMOjp+SUlTX0NUTCh2b2lkKSBfX3B0cjY0DQorPz8xSUlTX0NUTEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIElJU19FTkRQT0lOVDo6fklJU19FTkRQT0lOVCh2b2lkKSBfX3B0cjY0DQorPz8xSUlTX0VORFBPSU5UQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgSUlTX1NFUlZFUl9CSU5ESU5HOjp+SUlTX1NFUlZFUl9CSU5ESU5HKHZvaWQpIF9fcHRyNjQNCis/PzFJSVNfU0VSVkVSX0JJTkRJTkdAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBJSVNfU0VSVkVSX0NFUlQ6On5JSVNfU0VSVkVSX0NFUlQodm9pZCkgX19wdHI2NA0KKz8/MUlJU19TRVJWRVJfQ0VSVEBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6fklJU19TRVJWRVJfSU5TVEFOQ0Uodm9pZCkgX19wdHI2NA0KKz8/MUlJU19TRVJWRVJfSU5TVEFOQ0VAQFVFQUFAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBfX2NkZWNsIElJU19TRVJWSUNFOjp+SUlTX1NFUlZJQ0Uodm9pZCkgX19wdHI2NA0KKz8/MUlJU19TRVJWSUNFQEBNRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgSUlTX1NTTF9JTkZPOjp+SUlTX1NTTF9JTkZPKHZvaWQpIF9fcHRyNjQNCis/PzFJSVNfU1NMX0lORk9AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBJSVNfVlJPT1RfVEFCTEU6On5JSVNfVlJPT1RfVEFCTEUodm9pZCkgX19wdHI2NA0KKz8/MUlJU19WUk9PVF9UQUJMRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIElORVRfUEFSU0VSOjp+SU5FVF9QQVJTRVIodm9pZCkgX19wdHI2NA0KKz8/MUlORVRfUEFSU0VSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE9HR0lORzo6fkxPR0dJTkcodm9pZCkgX19wdHI2NA0KKz8/MUxPR0dJTkdAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBNQjo6fk1CKHZvaWQpIF9fcHRyNjQNCis/PzFNQkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE9EQkNfQ09OTkVDVElPTjo6fk9EQkNfQ09OTkVDVElPTih2b2lkKSBfX3B0cjY0DQorPz8xT0RCQ19DT05ORUNUSU9OQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6On5PREJDX1BBUkFNRVRFUih2b2lkKSBfX3B0cjY0DQorPz8xT0RCQ19QQVJBTUVURVJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBPREJDX1NUQVRFTUVOVDo6fk9EQkNfU1RBVEVNRU5UKHZvaWQpIF9fcHRyNjQNCis/PzFPREJDX1NUQVRFTUVOVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFJlZkJsb2I6On5SZWZCbG9iKHZvaWQpIF9fcHRyNjQNCis/PzFSZWZCbG9iQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1RPUkVfQ0hBTkdFX05PVElGSUVSOjp+U1RPUkVfQ0hBTkdFX05PVElGSUVSKHZvaWQpIF9fcHRyNjQNCis/PzFTVE9SRV9DSEFOR0VfTk9USUZJRVJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBUQ1BfQVVUSEVOVDo6flRDUF9BVVRIRU5UKHZvaWQpIF9fcHRyNjQNCis/PzFUQ1BfQVVUSEVOVEBAUUVBQUBYWg0KKzsgcHVibGljOiBjbGFzcyBIQVNIX1RBQkxFICYgX19wdHI2NCBfX2NkZWNsIEhBU0hfVEFCTEU6Om9wZXJhdG9yPShjbGFzcyBIQVNIX1RBQkxFIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NEhBU0hfVEFCTEVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBIVF9FTEVNRU5UICYgX19wdHI2NCBfX2NkZWNsIEhUX0VMRU1FTlQ6Om9wZXJhdG9yPShjbGFzcyBIVF9FTEVNRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NEhUX0VMRU1FTlRAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBJSVNfQ1RMICYgX19wdHI2NCBfX2NkZWNsIElJU19DVEw6Om9wZXJhdG9yPShjbGFzcyBJSVNfQ1RMIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NElJU19DVExAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBJSVNfU0VSVkVSX0NFUlQgJiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZFUl9DRVJUOjpvcGVyYXRvcj0oY2xhc3MgSUlTX1NFUlZFUl9DRVJUIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NElJU19TRVJWRVJfQ0VSVEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIElJU19TRVJWSUNFICYgX19wdHI2NCBfX2NkZWNsIElJU19TRVJWSUNFOjpvcGVyYXRvcj0oY2xhc3MgSUlTX1NFUlZJQ0UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80SUlTX1NFUlZJQ0VAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBJSVNfU1NMX0lORk8gJiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NTTF9JTkZPOjpvcGVyYXRvcj0oY2xhc3MgSUlTX1NTTF9JTkZPIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NElJU19TU0xfSU5GT0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIExPR0dJTkcgJiBfX3B0cjY0IF9fY2RlY2wgTE9HR0lORzo6b3BlcmF0b3I9KGNsYXNzIExPR0dJTkcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TE9HR0lOR0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFRTVkNfQ0FDSEUgJiBfX3B0cjY0IF9fY2RlY2wgVFNWQ19DQUNIRTo6b3BlcmF0b3I9KGNsYXNzIFRTVkNfQ0FDSEUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80VFNWQ19DQUNIRUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJTkVUX1BBUlNFUjo6b3BlcmF0b3IrPShpbnQpIF9fcHRyNjQNCis/P1lJTkVUX1BBUlNFUkBAUUVBQVhIQFoNCis7IGNvbnN0ICBIQVNIX1RBQkxFOjpgdmZ0YWJsZScNCis/P183SEFTSF9UQUJMRUBANkJADQorOyBjb25zdCAgSFRfRUxFTUVOVDo6YHZmdGFibGUnDQorPz9fN0hUX0VMRU1FTlRAQDZCQA0KKzsgY29uc3QgIElJU19TRVJWRVJfSU5TVEFOQ0U6OmB2ZnRhYmxlJw0KKz8/XzdJSVNfU0VSVkVSX0lOU1RBTkNFQEA2QkANCis7IGNvbnN0ICBJSVNfU0VSVklDRTo6YHZmdGFibGUnDQorPz9fN0lJU19TRVJWSUNFQEA2QkANCis7IHB1YmxpYzogaW50IF9fY2RlY2wgVFNfT1BFTl9GSUxFX0lORk86OkFjY2Vzc0NoZWNrKHZvaWQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9BY2Nlc3NDaGVja0BUU19PUEVOX0ZJTEVfSU5GT0BAUUVBQUhQRUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpBY3F1aXJlRmFzdExvY2sodm9pZCkgX19wdHI2NA0KKz9BY3F1aXJlRmFzdExvY2tASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQVhYWg0KKzsgcHJpdmF0ZTogc3RhdGljIHZvaWQgX19jZGVjbCBJSVNfU0VSVklDRTo6QWNxdWlyZUdsb2JhbExvY2sodm9pZCkNCis/QWNxdWlyZUdsb2JhbExvY2tASUlTX1NFUlZJQ0VAQENBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVklDRTo6QWNxdWlyZVNlcnZpY2VMb2NrKGludCkgX19wdHI2NA0KKz9BY3F1aXJlU2VydmljZUxvY2tASUlTX1NFUlZJQ0VAQFFFQUFYSEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HR0lORzo6QWN0T25DaGFuZ2Uodm9pZCkgX19wdHI2NA0KKz9BY3RPbkNoYW5nZUBMT0dHSU5HQEBBRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIExPR0dJTkc6OkFjdGl2YXRlTG9nZ2luZyhjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGNoYXIgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FjdGl2YXRlTG9nZ2luZ0BMT0dHSU5HQEBRRUFBSFBFQkRLMFBFQVhAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBJSVNfU0VSVklDRTo6QWRkSW5zdGFuY2VJbmZvSGVscGVyKGNsYXNzIElJU19TRVJWRVJfSU5TVEFOQ0UgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEluc3RhbmNlSW5mb0hlbHBlckBJSVNfU0VSVklDRUBASUVBQUhQRUFWSUlTX1NFUlZFUl9JTlNUQU5DRUBAQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIE1JTUVfTUFQOjpBZGRNaW1lTWFwRW50cnkoY2xhc3MgTUlNRV9NQVBfRU5UUlkgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZE1pbWVNYXBFbnRyeUBNSU1FX01BUEBAQUVBQUhQRUFWTUlNRV9NQVBfRU5UUllAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1COjpBZGRPYmplY3QoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkT2JqZWN0QE1CQEBRRUFBSFBFQkRAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUmVmQmxvYjo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQFJlZkJsb2JAQFFFQUFYWFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fY2RlY2wgSUlTX1ZST09UX1RBQkxFOjpBZGRSZWZSZWNvcmQodm9pZCBjb25zdCAqIF9fcHRyNjQsaW50KQ0KKz9BZGRSZWZSZWNvcmRASUlTX1ZST09UX1RBQkxFQEBDQVhQRUJYSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TRVJWSUNFOjpBZGRTZXJ2ZXJJbnN0YW5jZShjbGFzcyBJSVNfU0VSVkVSX0lOU1RBTkNFICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRTZXJ2ZXJJbnN0YW5jZUBJSVNfU0VSVklDRUBAUUVBQUhQRUFWSUlTX1NFUlZFUl9JTlNUQU5DRUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1ZST09UX1RBQkxFOjpBZGRWaXJ0dWFsUm9vdChjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGNoYXIgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsaW50KSBfX3B0cjY0DQorP0FkZFZpcnR1YWxSb290QElJU19WUk9PVF9UQUJMRUBAUUVBQUhQRUFEMEswUEVBWEtIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWSUNFOjpBZHZlcnRpc2VTZXJ2aWNlSW5mb3JtYXRpb25Jbk1CKHZvaWQpIF9fcHRyNjQNCis/QWR2ZXJ0aXNlU2VydmljZUluZm9ybWF0aW9uSW5NQkBJSVNfU0VSVklDRUBAUUVBQVhYWg0KKzsgcHVibGljOiBjbGFzcyBPREJDX1NUQVRFTUVOVCAqIF9fcHRyNjQgX19jZGVjbCBPREJDX0NPTk5FQ1RJT046OkFsbG9jU3RhdGVtZW50KHZvaWQpIF9fcHRyNjQNCis/QWxsb2NTdGF0ZW1lbnRAT0RCQ19DT05ORUNUSU9OQEBRRUFBUEVBVk9EQkNfU1RBVEVNRU5UQEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJTkVUX1BBUlNFUjo6QXBwZW5kVG9FT0woY2xhc3MgU1RSICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/QXBwZW5kVG9FT0xASU5FVF9QQVJTRVJAQFFFQUFIUEVBVlNUUkBASEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TRVJWSUNFOjpBc3NvY2lhdGVJbnN0YW5jZShjbGFzcyBJSVNfU0VSVkVSX0lOU1RBTkNFICogX19wdHI2NCkgX19wdHI2NA0KKz9Bc3NvY2lhdGVJbnN0YW5jZUBJSVNfU0VSVklDRUBAUUVBQUhQRUFWSUlTX1NFUlZFUl9JTlNUQU5DRUBAQFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBJTkVUX1BBUlNFUjo6QXV4RWF0Tm9uV2hpdGUoY2hhcikgX19wdHI2NA0KKz9BdXhFYXROb25XaGl0ZUBJTkVUX1BBUlNFUkBASUVBQVBFQUREQFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBJTkVUX1BBUlNFUjo6QXV4RWF0V2hpdGUodm9pZCkgX19wdHI2NA0KKz9BdXhFYXRXaGl0ZUBJTkVUX1BBUlNFUkBASUVBQVBFQURYWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIElORVRfUEFSU0VSOjpBdXhTa2lwVG8oY2hhcikgX19wdHI2NA0KKz9BdXhTa2lwVG9ASU5FVF9QQVJTRVJAQElFQUFQRUFEREBaDQorOyBwdWJsaWM6IHNob3J0IF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OkJpbmQodm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QmluZEBPREJDX1BBUkFNRVRFUkBAUUVBQUZQRUFYQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OkJpbmRJbnN0YW5jZSh2b2lkKSBfX3B0cjY0DQorP0JpbmRJbnN0YW5jZUBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUFBS1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9EQkNfU1RBVEVNRU5UOjpCaW5kUGFyYW1ldGVyKGNsYXNzIE9EQkNfUEFSQU1FVEVSICogX19wdHI2NCkgX19wdHI2NA0KKz9CaW5kUGFyYW1ldGVyQE9EQkNfU1RBVEVNRU5UQEBRRUFBSFBFQVZPREJDX1BBUkFNRVRFUkBAQFoNCis7IGludCBfX2NkZWNsIEJ1aWxkQW5vbnltb3VzQWNjdERlc2MoY2xhc3MgVENQX0FVVEhFTlRfSU5GTyAqIF9fcHRyNjQpDQorP0J1aWxkQW5vbnltb3VzQWNjdERlc2NAQFlBSFBFQVZUQ1BfQVVUSEVOVF9JTkZPQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDT01NT05fTUVUQURBVEE6OkJ1aWxkQXBwbFBoeXNpY2FsUGF0aChjbGFzcyBNQiAqIF9fcHRyNjQsY2xhc3MgU1RSICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9CdWlsZEFwcGxQaHlzaWNhbFBhdGhAQ09NTU9OX01FVEFEQVRBQEBRRUJBSFBFQVZNQkBAUEVBVlNUUkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ09NTU9OX01FVEFEQVRBOjpCdWlsZFBoeXNpY2FsUGF0aChjaGFyICogX19wdHI2NCxjbGFzcyBTVFIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0J1aWxkUGh5c2ljYWxQYXRoQENPTU1PTl9NRVRBREFUQUBAUUVBQUhQRUFEUEVBVlNUUkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ09NTU9OX01FVEFEQVRBOjpCdWlsZFBoeXNpY2FsUGF0aFdpdGhBbHRSb290KGNoYXIgKiBfX3B0cjY0LGNsYXNzIFNUUiAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QnVpbGRQaHlzaWNhbFBhdGhXaXRoQWx0Um9vdEBDT01NT05fTUVUQURBVEFAQFFFQUFIUEVBRFBFQVZTVFJAQFBFQkRAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU1NMX0lORk86OkNUTENvbnRhaW5zQ2VydChzdHJ1Y3QgX0NFUlRfQ09OVEVYVCBjb25zdCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9DVExDb250YWluc0NlcnRASUlTX1NTTF9JTkZPQEBRRUFBSFBFQlVfQ0VSVF9DT05URVhUQEBQRUFIQFoNCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1ZST09UX1RBQkxFOjpDYWxjS2V5SGFzaCh1bnNpZ25lZCBfX2ludDY0KQ0KKz9DYWxjS2V5SGFzaEBJSVNfVlJPT1RfVEFCTEVAQENBS19LQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSEFTSF9UQUJMRTo6Q2FsY3VsYXRlSGFzaChjaGFyIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9DYWxjdWxhdGVIYXNoQEhBU0hfVEFCTEVAQFVFQkFLUEVCREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TRVJWSUNFOjpDaGVja0FuZFJlZmVyZW5jZSh2b2lkKSBfX3B0cjY0DQorP0NoZWNrQW5kUmVmZXJlbmNlQElJU19TRVJWSUNFQEBRRUFBSFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBJSVNfU1NMX0lORk86OkNoZWNrQ0FQSUluZm8oaW50ICogX19wdHI2NCxpbnQgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Q2hlY2tDQVBJSW5mb0BJSVNfU1NMX0lORk9AQEFFQUFIUEVBSDBQRUFEUEVBS0tAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENoZWNrSWZTaG9ydEZpbGVOYW1lKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpDQorP0NoZWNrSWZTaG9ydEZpbGVOYW1lQEBZQUtQRUJFUEVBWFBFQUhAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgSUlTX1NTTF9JTkZPOjpDaGVja1NpZ25hdHVyZSh2b2lkKSBfX3B0cjY0DQorP0NoZWNrU2lnbmF0dXJlQElJU19TU0xfSU5GT0BAQUVBQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OkNsZWFudXAodm9pZCkNCis/Q2xlYW51cEBJSVNfU0VSVkVSX0lOU1RBTkNFQEBTQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6Q2xlYW51cEFmdGVyQ29uc3RydWN0b3JGYWlsdXJlKHZvaWQpIF9fcHRyNjQNCis/Q2xlYW51cEFmdGVyQ29uc3RydWN0b3JGYWlsdXJlQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIElJU19TRVJWSUNFOjpDbGVhbnVwTWV0YWJhc2VDb21PYmplY3Qodm9pZCkNCis/Q2xlYW51cE1ldGFiYXNlQ29tT2JqZWN0QElJU19TRVJWSUNFQEBTQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIElJU19TRVJWSUNFOjpDbGVhbnVwU2VydmljZUluZm8odm9pZCkNCis/Q2xlYW51cFNlcnZpY2VJbmZvQElJU19TRVJWSUNFQEBTQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OkNsZWFudXBTZXJ2aWNlUnBjKHZvaWQpDQorP0NsZWFudXBTZXJ2aWNlUnBjQElJU19TRVJWSUNFQEBTQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZJQ0U6OkNsZWFudXBTb2NrZXRzKHZvaWQpIF9fcHRyNjQNCis/Q2xlYW51cFNvY2tldHNASUlTX1NFUlZJQ0VAQFFFQUFLWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE1JTUVfTUFQOjpDbGVhbnVwVGhpcyh2b2lkKSBfX3B0cjY0DQorP0NsZWFudXBUaGlzQE1JTUVfTUFQQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBUU19ESVJFQ1RPUllfSU5GTzo6Q2xlYW51cFRoaXModm9pZCkgX19wdHI2NA0KKz9DbGVhbnVwVGhpc0BUU19ESVJFQ1RPUllfSU5GT0BAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVklDRTo6Q2xlYXJJbnN0YW5jZVN0YXRpc3RpY3ModW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9DbGVhckluc3RhbmNlU3RhdGlzdGljc0BJSVNfU0VSVklDRUBAUUVBQUhLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgVENQX0FVVEhFTlQ6OkNsZWFyVGV4dExvZ29uKGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCxjbGFzcyBJSVNfU0VSVkVSX0lOU1RBTkNFICogX19wdHI2NCxjbGFzcyBUQ1BfQVVUSEVOVF9JTkZPICogX19wdHI2NCxjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9DbGVhclRleHRMb2dvbkBUQ1BfQVVUSEVOVEBAUUVBQUhQRUFEMFBFQUgxUEVBVklJU19TRVJWRVJfSU5TVEFOQ0VAQFBFQVZUQ1BfQVVUSEVOVF9JTkZPQEAwQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTUI6OkNsb3NlKHZvaWQpIF9fcHRyNjQNCis/Q2xvc2VATUJAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT0RCQ19DT05ORUNUSU9OOjpDbG9zZSh2b2lkKSBfX3B0cjY0DQorP0Nsb3NlQE9EQkNfQ09OTkVDVElPTkBAUUVBQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgVFNfT1BFTl9GSUxFX0lORk86OkNsb3NlSGFuZGxlKHZvaWQpIF9fcHRyNjQNCis/Q2xvc2VIYW5kbGVAVFNfT1BFTl9GSUxFX0lORk9AQFFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpDbG9zZUluc3RhbmNlKHZvaWQpIF9fcHRyNjQNCis/Q2xvc2VJbnN0YW5jZUBJSVNfU0VSVkVSX0lOU1RBTkNFQEBVRUFBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVklDRTo6Q2xvc2VTZXJ2aWNlKHZvaWQpIF9fcHRyNjQNCis/Q2xvc2VTZXJ2aWNlQElJU19TRVJWSUNFQEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TRVJWRVJfQklORElORzo6Q29tcGFyZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0LGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbXBhcmVASUlTX1NFUlZFUl9CSU5ESU5HQEBRRUFBSEtHUEVCREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0JJTkRJTkc6OkNvbXBhcmUoY2hhciBjb25zdCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9Db21wYXJlQElJU19TRVJWRVJfQklORElOR0BAUUVBQUtQRUJEUEVBSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OkNvbnRpbnVlSW5zdGFuY2Uodm9pZCkgX19wdHI2NA0KKz9Db250aW51ZUluc3RhbmNlQElJU19TRVJWRVJfSU5TVEFOQ0VAQFVFQUFLWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBJSVNfU0VSVklDRTo6Q29udGludWVTZXJ2aWNlKHZvaWQpIF9fcHRyNjQNCis/Q29udGludWVTZXJ2aWNlQElJU19TRVJWSUNFQEBBRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpDb252ZXJzZSh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGNsYXNzIEJVRkZFUiAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsaW50ICogX19wdHI2NCxjbGFzcyBUQ1BfQVVUSEVOVF9JTkZPICogX19wdHI2NCxjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCxjbGFzcyBJSVNfU0VSVkVSX0lOU1RBTkNFICogX19wdHI2NCkgX19wdHI2NA0KKz9Db252ZXJzZUBUQ1BfQVVUSEVOVEBAUUVBQUhQRUFYS1BFQVZCVUZGRVJAQFBFQUtQRUFIUEVBVlRDUF9BVVRIRU5UX0lORk9AQFBFQUQ1NVBFQVZJSVNfU0VSVkVSX0lOU1RBTkNFQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUQ1BfQVVUSEVOVDo6Q29udmVyc2VFeChzdHJ1Y3QgX1NlY0J1ZmZlckRlc2MgKiBfX3B0cjY0LGNsYXNzIEJVRkZFUiAqIF9fcHRyNjQsY2xhc3MgQlVGRkVSICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCxpbnQgKiBfX3B0cjY0LGNsYXNzIFRDUF9BVVRIRU5UX0lORk8gKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LGNsYXNzIElJU19TRVJWRVJfSU5TVEFOQ0UgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbnZlcnNlRXhAVENQX0FVVEhFTlRAQFFFQUFIUEVBVV9TZWNCdWZmZXJEZXNjQEBQRUFWQlVGRkVSQEAxUEVBS1BFQUhQRUFWVENQX0FVVEhFTlRfSU5GT0BAUEVBRDU1UEVBVklJU19TRVJWRVJfSU5TVEFOQ0VAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElORVRfUEFSU0VSOjpDb3B5VG9FT0woY2xhc3MgU1RSICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/Q29weVRvRU9MQElORVRfUEFSU0VSQEBRRUFBSFBFQVZTVFJAQEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJTkVUX1BBUlNFUjo6Q29weVRva2VuKGNsYXNzIFNUUiAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0NvcHlUb2tlbkBJTkVUX1BBUlNFUkBAUUVBQUhQRUFWU1RSQEBIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OkNvcHlWYWx1ZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NvcHlWYWx1ZUBPREJDX1BBUkFNRVRFUkBAUUVBQUhLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OkNvcHlWYWx1ZShzdHJ1Y3QgX1NZU1RFTVRJTUUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlWYWx1ZUBPREJDX1BBUkFNRVRFUkBAUUVBQUhQRUFVX1NZU1RFTVRJTUVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9EQkNfUEFSQU1FVEVSOjpDb3B5VmFsdWUodm9pZCAqIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz9Db3B5VmFsdWVAT0RCQ19QQVJBTUVURVJAQFFFQUFIUEVBWEpAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPREJDX1BBUkFNRVRFUjo6Q29weVZhbHVlKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlWYWx1ZUBPREJDX1BBUkFNRVRFUkBAUUVBQUhQRUJEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OkNvcHlWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weVZhbHVlQE9EQkNfUEFSQU1FVEVSQEBRRUFBSFBFQkdAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgTUlNRV9NQVA6OkNyZWF0ZUFuZEFkZE1pbWVNYXBFbnRyeShjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVBbmRBZGRNaW1lTWFwRW50cnlATUlNRV9NQVBAQEFFQUFIUEVCRDBAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgSUlTX1NTTF9JTkZPOjpDcmVhdGVFbmdpbmVSb290U3RvcmUodm9pZCkgX19wdHI2NA0KKz9DcmVhdGVFbmdpbmVSb290U3RvcmVASUlTX1NTTF9JTkZPQEBBRUFBSFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBJSVNfU1NMX0lORk86OkNyZWF0ZUVuZ2luZVRydXN0U3RvcmUodm9pZCkgX19wdHI2NA0KKz9DcmVhdGVFbmdpbmVUcnVzdFN0b3JlQElJU19TU0xfSU5GT0BAQUVBQUhYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OkNyZWF0ZU5ld0JpbmRpbmcodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCxjaGFyIGNvbnN0ICogX19wdHI2NCxpbnQsaW50LGNsYXNzIElJU19TRVJWRVJfQklORElORyAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZU5ld0JpbmRpbmdASUlTX1NFUlZFUl9JTlNUQU5DRUBAQUVBQUtLR1BFQkRISFBFQVBFQVZJSVNfU0VSVkVSX0JJTkRJTkdAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBJSVNfU1NMX0lORk8gKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NTTF9JTkZPOjpDcmVhdGVTU0xJbmZvKGNoYXIgKiBfX3B0cjY0LHN0cnVjdCBJTURDT00gKiBfX3B0cjY0KQ0KKz9DcmVhdGVTU0xJbmZvQElJU19TU0xfSU5GT0BAU0FQRUFWMUBQRUFEUEVBVUlNRENPTUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OkRlY3JlbWVudEN1cnJlbnRDb25uZWN0aW9ucyh2b2lkKSBfX3B0cjY0DQorP0RlY3JlbWVudEN1cnJlbnRDb25uZWN0aW9uc0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUFBWFhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgSUlTX1NFUlZJQ0U6OkRlZmVycmVkR2xvYmFsQ29uZmlnKHVuc2lnbmVkIGxvbmcsc3RydWN0IF9NRF9DSEFOR0VfT0JKRUNUX0EgKiBfX3B0cjY0IGNvbnN0KQ0KKz9EZWZlcnJlZEdsb2JhbENvbmZpZ0BJSVNfU0VSVklDRUBAU0FYS1FFQVVfTURfQ0hBTkdFX09CSkVDVF9BQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIElJU19TRVJWSUNFOjpEZWZlcnJlZE1EQ2hhbmdlTm90aWZ5KHVuc2lnbmVkIGxvbmcsc3RydWN0IF9NRF9DSEFOR0VfT0JKRUNUX0EgKiBfX3B0cjY0IGNvbnN0KQ0KKz9EZWZlcnJlZE1EQ2hhbmdlTm90aWZ5QElJU19TRVJWSUNFQEBTQVhLUUVBVV9NRF9DSEFOR0VfT0JKRUNUX0FAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVklDRTo6RGVsYXlDdXJyZW50U2VydmljZUN0cmxPcGVyYXRpb24odW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9EZWxheUN1cnJlbnRTZXJ2aWNlQ3RybE9wZXJhdGlvbkBJSVNfU0VSVklDRUBAUUVBQUtLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgVENQX0FVVEhFTlQ6OkRlbGV0ZUNhY2hlZFRva2VuT25SZXNldCh2b2lkKSBfX3B0cjY0DQorP0RlbGV0ZUNhY2hlZFRva2VuT25SZXNldEBUQ1BfQVVUSEVOVEBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNQjo6RGVsZXRlRGF0YShjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9EZWxldGVEYXRhQE1CQEBRRUFBSFBFQkRLS0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVklDRTo6RGVsZXRlSW5zdGFuY2VJbmZvKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RGVsZXRlSW5zdGFuY2VJbmZvQElJU19TRVJWSUNFQEBRRUFBSEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNQjo6RGVsZXRlT2JqZWN0KGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZU9iamVjdEBNQkBAUUVBQUhQRUJEQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBJSVNfVlJPT1RfVEFCTEU6OkRlbGV0ZVZSb290RW50cnkodm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlVlJvb3RFbnRyeUBJSVNfVlJPT1RfVEFCTEVAQEFFQUFYUEVBWEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfRU5EUE9JTlQ6OkRlcmVmZXJlbmNlKHZvaWQpIF9fcHRyNjQNCis/RGVyZWZlcmVuY2VASUlTX0VORFBPSU5UQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpEZXJlZmVyZW5jZSh2b2lkKSBfX3B0cjY0DQorP0RlcmVmZXJlbmNlQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWSUNFOjpEZXJlZmVyZW5jZSh2b2lkKSBfX3B0cjY0DQorP0RlcmVmZXJlbmNlQElJU19TRVJWSUNFQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIE1JTUVfTUFQX0VOVFJZOjpEZXJlZmVyZW5jZSh2b2lkKSBfX3B0cjY0DQorP0RlcmVmZXJlbmNlQE1JTUVfTUFQX0VOVFJZQEBVRUFBSlhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVklDRTo6RGVzdHJveUFsbFNlcnZlckluc3RhbmNlcyh2b2lkKSBfX3B0cjY0DQorP0Rlc3Ryb3lBbGxTZXJ2ZXJJbnN0YW5jZXNASUlTX1NFUlZJQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OkRpc2Fzc29jaWF0ZUluc3RhbmNlKGNsYXNzIElJU19TRVJWRVJfSU5TVEFOQ0UgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0Rpc2Fzc29jaWF0ZUluc3RhbmNlQElJU19TRVJWSUNFQEBRRUFBSFBFQVZJSVNfU0VSVkVSX0lOU1RBTkNFQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVklDRTo6RGlzY29ubmVjdEluc3RhbmNlVXNlcih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RGlzY29ubmVjdEluc3RhbmNlVXNlckBJSVNfU0VSVklDRUBAUUVBQUhLS0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgT0RCQ19DT05ORUNUSU9OOjpEaXNwbGF5U2l6ZShzaG9ydCx1bnNpZ25lZCBsb25nKQ0KKz9EaXNwbGF5U2l6ZUBPREJDX0NPTk5FQ1RJT05AQFNBS0ZLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6RG9TZXJ2ZXJOYW1lQ2hlY2sodm9pZCljb25zdCAgX19wdHI2NA0KKz9Eb1NlcnZlck5hbWVDaGVja0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpEb1N0YXJ0SW5zdGFuY2Uodm9pZCkgX19wdHI2NA0KKz9Eb1N0YXJ0SW5zdGFuY2VASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQUtYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIElORVRfUEFSU0VSOjpFYXROb25XaGl0ZSh2b2lkKSBfX3B0cjY0DQorP0VhdE5vbldoaXRlQElORVRfUEFSU0VSQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgSU5FVF9QQVJTRVI6OkVhdFdoaXRlKHZvaWQpIF9fcHRyNjQNCis/RWF0V2hpdGVASU5FVF9QQVJTRVJAQFFFQUFQRUFEWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgVENQX0FVVEhFTlQ6OkVudW1BdXRoUGFja2FnZXMoY2xhc3MgQlVGRkVSICogX19wdHI2NCkgX19wdHI2NA0KKz9FbnVtQXV0aFBhY2thZ2VzQFRDUF9BVVRIRU5UQEBRRUFBSFBFQVZCVUZGRVJAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1COjpFbnVtT2JqZWN0cyhjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0VudW1PYmplY3RzQE1CQEBRRUFBSFBFQkRQRUFES0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TRVJWSUNFOjpFbnVtU2VydmljZUluc3RhbmNlcyh2b2lkICogX19wdHI2NCx2b2lkICogX19wdHI2NCxpbnQgKF9fY2RlY2wqKSh2b2lkICogX19wdHI2NCx2b2lkICogX19wdHI2NCxjbGFzcyBJSVNfU0VSVkVSX0lOU1RBTkNFICogX19wdHI2NCkpIF9fcHRyNjQNCis/RW51bVNlcnZpY2VJbnN0YW5jZXNASUlTX1NFUlZJQ0VAQFFFQUFIUEVBWDBQNkFIMDBQRUFWSUlTX1NFUlZFUl9JTlNUQU5DRUBAQFpAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVklDRTo6RW51bWVyYXRlSW5zdGFuY2VVc2Vycyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9FbnVtZXJhdGVJbnN0YW5jZVVzZXJzQElJU19TRVJWSUNFQEBRRUFBSEtQRUFLUEVBUEVBREBaDQorOyBwcml2YXRlOiBzdGF0aWMgYm9vbCBfX2NkZWNsIElJU19WUk9PVF9UQUJMRTo6RXF1YWxLZXlzKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCkNCis/RXF1YWxLZXlzQElJU19WUk9PVF9UQUJMRUBAQ0FfTl9LMEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9EQkNfU1RBVEVNRU5UOjpFeGVjRGlyZWN0KGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RXhlY0RpcmVjdEBPREJDX1NUQVRFTUVOVEBAUUVBQUhQRUJES0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9EQkNfU1RBVEVNRU5UOjpFeGVjRGlyZWN0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0V4ZWNEaXJlY3RAT0RCQ19TVEFURU1FTlRAQFFFQUFIUEVCR0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPREJDX1NUQVRFTUVOVDo6RXhlY3V0ZVN0YXRlbWVudCh2b2lkKSBfX3B0cjY0DQorP0V4ZWN1dGVTdGF0ZW1lbnRAT0RCQ19TVEFURU1FTlRAQFFFQUFIWFoNCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IGNvbnN0ICBfX2NkZWNsIElJU19WUk9PVF9UQUJMRTo6RXh0cmFjdEtleSh2b2lkIGNvbnN0ICogX19wdHI2NCkNCis/RXh0cmFjdEtleUBJSVNfVlJPT1RfVEFCTEVAQENBP0JfS1BFQlhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUU19ESVJFQ1RPUllfSU5GTzo6RmlsdGVyRmlsZXMoaW50IChfX2NkZWNsKikoc3RydWN0IF9XSU4zMl9GSU5EX0RBVEFBIGNvbnN0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCksdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmlsdGVyRmlsZXNAVFNfRElSRUNUT1JZX0lORk9AQFFFQUFIUDZBSFBFQlVfV0lOMzJfRklORF9EQVRBQUBAUEVBWEBaMUBaDQorOyBwdWJsaWM6IGNsYXNzIElJU19FTkRQT0lOVCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVklDRTo6RmluZEFuZFJlZmVyZW5jZUVuZHBvaW50KHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGxvbmcsaW50LGludCxpbnQpIF9fcHRyNjQNCis/RmluZEFuZFJlZmVyZW5jZUVuZHBvaW50QElJU19TRVJWSUNFQEBRRUFBUEVBVklJU19FTkRQT0lOVEBAR0tISEhAWg0KKzsgcHVibGljOiBjbGFzcyBJSVNfU0VSVkVSX0lOU1RBTkNFICogX19wdHI2NCBfX2NkZWNsIElJU19FTkRQT0lOVDo6RmluZEFuZFJlZmVyZW5jZUluc3RhbmNlKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9GaW5kQW5kUmVmZXJlbmNlSW5zdGFuY2VASUlTX0VORFBPSU5UQEBRRUFBUEVBVklJU19TRVJWRVJfSU5TVEFOQ0VAQFBFQkRLUEVBSEBaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBJSVNfU0VSVklDRSAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVklDRTo6RmluZEZyb21TZXJ2aWNlSW5mb0xpc3QodW5zaWduZWQgbG9uZykNCis/RmluZEZyb21TZXJ2aWNlSW5mb0xpc3RASUlTX1NFUlZJQ0VAQFNBUEVBVjFAS0BaDQorOyBwdWJsaWM6IGNsYXNzIElJU19TRVJWRVJfSU5TVEFOQ0UgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OkZpbmRJSVNJbnN0YW5jZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0ZpbmRJSVNJbnN0YW5jZUBJSVNfU0VSVklDRUBAUUVBQVBFQVZJSVNfU0VSVkVSX0lOU1RBTkNFQEBLQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIElJU19TU0xfSU5GTzo6RmluZFRvcE9mQ2hhaW4oc3RydWN0IF9DRVJUX0NPTlRFWFQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBfQ0VSVF9DT05URVhUIGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmluZFRvcE9mQ2hhaW5ASUlTX1NTTF9JTkZPQEBBRUFBSFBFQlVfQ0VSVF9DT05URVhUQEBQRUFQRUJVMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENPTU1PTl9NRVRBREFUQTo6RmluaXNoUHJpdmF0ZVByb3BlcnRpZXMoY2xhc3MgQlVGRkVSICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz9GaW5pc2hQcml2YXRlUHJvcGVydGllc0BDT01NT05fTUVUQURBVEFAQFVFQUFIUEVBVkJVRkZFUkBAS0hAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSEFTSF9UQUJMRTo6Rmx1c2hFbGVtZW50cyh2b2lkKSBfX3B0cjY0DQorP0ZsdXNoRWxlbWVudHNASEFTSF9UQUJMRUBAUUVBQUtYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgT0RCQ19TVEFURU1FTlQ6OkZyZWVDb2x1bW5NZW1vcnkodm9pZCkgX19wdHI2NA0KKz9GcmVlQ29sdW1uTWVtb3J5QE9EQkNfU1RBVEVNRU5UQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDT01NT05fTUVUQURBVEE6OkZyZWVNZFRhZyh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0ZyZWVNZFRhZ0BDT01NT05fTUVUQURBVEFAQFFFQUFYS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1COjpHZXRBbGwoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIEJVRkZFUiAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0QWxsQE1CQEBRRUFBSFBFQkRLS1BFQVZCVUZGRVJAQFBFQUsyQFoNCis7IHB1YmxpYzogY2xhc3MgSUlTX0NUTCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU1NMX0lORk86OkdldENUTCh2b2lkKSBfX3B0cjY0DQorP0dldENUTEBJSVNfU1NMX0lORk9AQFFFQUFQRUFWSUlTX0NUTEBAWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NTTF9JTkZPOjpHZXRDZXJ0Q2hhaW5FbmdpbmUodm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldENlcnRDaGFpbkVuZ2luZUBJSVNfU1NMX0lORk9AQFFFQUFIUEVBUEVBWEBaDQorOyBwdWJsaWM6IGNsYXNzIElJU19TRVJWRVJfQ0VSVCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU1NMX0lORk86OkdldENlcnRpZmljYXRlKHZvaWQpIF9fcHRyNjQNCis/R2V0Q2VydGlmaWNhdGVASUlTX1NTTF9JTkZPQEBRRUFBUEVBVklJU19TRVJWRVJfQ0VSVEBAWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgVENQX0FVVEhFTlQ6OkdldENsaWVudENlcnRCbG9iKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0Q2xpZW50Q2VydEJsb2JAVENQX0FVVEhFTlRAQFFFQUFIS1BFQUtQRUFFMDBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpHZXRDb21tb25Db25maWcoY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9HZXRDb21tb25Db25maWdASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQUhQRUFES0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBMT0dHSU5HOjpHZXRDb25maWcoc3RydWN0IF9JTkVUTE9HX0NPTkZJR1VSQVRJT05BICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDb25maWdATE9HR0lOR0BAUUVBQUtQRUFVX0lORVRMT0dfQ09ORklHVVJBVElPTkFAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19DVEw6OkdldENvbnRhaW5lZENlcnRpZmljYXRlcyhzdHJ1Y3QgX0NFUlRfQ09OVEVYVCBjb25zdCAqIF9fcHRyNjQgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDb250YWluZWRDZXJ0aWZpY2F0ZXNASUlTX0NUTEBAUUVBQUhQRUFQRUFQRUJVX0NFUlRfQ09OVEVYVEBAUEVBSzFAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNQjo6R2V0RGF0YShjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldERhdGFATUJAQFFFQUFIUEVCREtLS1BFQVhQRUFLS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1COjpHZXREYXRhUGF0aHMoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIEJVRkZFUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RGF0YVBhdGhzQE1CQEBRRUFBSFBFQkRLS1BFQVZCVUZGRVJAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1COjpHZXREYXRhU2V0TnVtYmVyKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERhdGFTZXROdW1iZXJATUJAQFFFQUFIUEVCRFBFQUtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUU19ESVJFQ1RPUllfSU5GTzo6R2V0RGlyZWN0b3J5TGlzdGluZ0EoY2hhciBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RGlyZWN0b3J5TGlzdGluZ0FAVFNfRElSRUNUT1JZX0lORk9AQFFFQUFIUEVCRFBFQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIElJU19TRVJWSUNFOjpHZXRHbG9iYWxTdGF0aXN0aWNzKHVuc2lnbmVkIGxvbmcsY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEdsb2JhbFN0YXRpc3RpY3NASUlTX1NFUlZJQ0VAQFVFQUFIS1BFQVBFQURAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPREJDX0NPTk5FQ1RJT046OkdldEluZm8odW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEluZm9AT0RCQ19DT05ORUNUSU9OQEBRRUFBSEtQRUFYS1BFQUtAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OkdldEluc3RhbmNlQ29uZmlndXJhdGlvbih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHN0cnVjdCBfSU5FVF9JTkZPX0NPTkZJR19JTkZPICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0SW5zdGFuY2VDb25maWd1cmF0aW9uQElJU19TRVJWSUNFQEBBRUFBSEtLSFBFQUtQRUFQRUFVX0lORVRfSU5GT19DT05GSUdfSU5GT0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFRTVkNfQ0FDSEU6OkdldEluc3RhbmNlSWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRJbnN0YW5jZUlkQFRTVkNfQ0FDSEVAQFFFQkFLWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OkdldEluc3RhbmNlU3RhdGlzdGljcyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEluc3RhbmNlU3RhdGlzdGljc0BJSVNfU0VSVklDRUBAUUVBQUhLS1BFQVBFQURAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPREJDX0NPTk5FQ1RJT046OkdldExhc3RFcnJvclRleHQoY2xhc3MgU1RSICogX19wdHI2NCx2b2lkICogX19wdHI2NCxzaG9ydCljb25zdCAgX19wdHI2NA0KKz9HZXRMYXN0RXJyb3JUZXh0QE9EQkNfQ09OTkVDVElPTkBAUUVCQUhQRUFWU1RSQEBQRUFYRkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9EQkNfQ09OTkVDVElPTjo6R2V0TGFzdEVycm9yVGV4dEFzSHRtbChjbGFzcyBTVFIgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LHNob3J0KWNvbnN0ICBfX3B0cjY0DQorP0dldExhc3RFcnJvclRleHRBc0h0bWxAT0RCQ19DT05ORUNUSU9OQEBRRUJBSFBFQVZTVFJAQFBFQVhGQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWSUNFOjpHZXRNREluc3RhbmNlUGF0aCh1bnNpZ25lZCBsb25nLGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE1ESW5zdGFuY2VQYXRoQElJU19TRVJWSUNFQEBRRUFBWEtQRUFEQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfQ1RMOjpHZXRNZW1vcnlTdG9yZSh2b2lkKSBfX3B0cjY0DQorP0dldE1lbW9yeVN0b3JlQElJU19DVExAQFFFQUFQRUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTUI6OkdldE11bHRpc3ooY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIE1VTFRJU1ogKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/R2V0TXVsdGlzekBNQkBAUUVBQUhQRUJES0tQRUFWTVVMVElTWkBAS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVklDRTo6R2V0TmV3SW5zdGFuY2VJZCh2b2lkKSBfX3B0cjY0DQorP0dldE5ld0luc3RhbmNlSWRASUlTX1NFUlZJQ0VAQFFFQUFLWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIElJU19TU0xfSU5GTzo6R2V0Um9vdFN0b3JlQ2VydGlmaWNhdGVzKHN0cnVjdCBfQ0VSVF9DT05URVhUIGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFJvb3RTdG9yZUNlcnRpZmljYXRlc0BJSVNfU1NMX0lORk9AQEFFQUFIUEVBUEVBUEVCVV9DRVJUX0NPTlRFWFRAQFBFQUtAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIFRTVkNfQ0FDSEU6OkdldFNlcnZlckluc3RhbmNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U2VydmVySW5zdGFuY2VAVFNWQ19DQUNIRUBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OkdldFNlcnZpY2VBZG1pbkluZm8odW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHN0cnVjdCBfSU5FVF9JTkZPX0NPTkZJR19JTkZPICogX19wdHI2NCAqIF9fcHRyNjQpDQorP0dldFNlcnZpY2VBZG1pbkluZm9ASUlTX1NFUlZJQ0VAQFNBSEtLS0hQRUFLUEVBUEVBVV9JTkVUX0lORk9fQ09ORklHX0lORk9AQEBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVklDRTo6R2V0U2VydmljZUNvbmZpZ0luZm9TaXplKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/R2V0U2VydmljZUNvbmZpZ0luZm9TaXplQElJU19TRVJWSUNFQEBFRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgVFNWQ19DQUNIRTo6R2V0U2VydmljZUlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U2VydmljZUlkQFRTVkNfQ0FDSEVAQFFFQkFLWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIElJU19TRVJWSUNFOjpHZXRTZXJ2aWNlU2l0ZUluZm8odW5zaWduZWQgbG9uZyxzdHJ1Y3QgX0lORVRfSU5GT19TSVRFX0xJU1QgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/R2V0U2VydmljZVNpdGVJbmZvQElJU19TRVJWSUNFQEBTQUhLUEVBUEVBVV9JTkVUX0lORk9fU0lURV9MSVNUQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNQjo6R2V0U3RyKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBTVFIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0U3RyQE1CQEBRRUFBSFBFQkRLS1BFQVZTVFJAQEswQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTUI6OkdldFN5c3RlbUNoYW5nZU51bWJlcih1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRTeXN0ZW1DaGFuZ2VOdW1iZXJATUJAQFFFQUFIUEVBS0BaDQorOyBwdWJsaWM6IGNsYXNzIENBQ0hFRF9UT0tFTiAqIF9fcHRyNjQgX19jZGVjbCBUQ1BfQVVUSEVOVDo6R2V0VG9rZW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRUb2tlbkBUQ1BfQVVUSEVOVEBAUUVCQVBFQVZDQUNIRURfVE9LRU5AQFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TU0xfSU5GTzo6R2V0VHJ1c3RlZElzc3VlckNlcnRzKHN0cnVjdCBfQ0VSVF9DT05URVhUIGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFRydXN0ZWRJc3N1ZXJDZXJ0c0BJSVNfU1NMX0lORk9AQFFFQUFIUEVBUEVBUEVCVV9DRVJUX0NPTlRFWFRAQFBFQUtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU1NMX0lORk86OkdldFRydXN0ZWRJc3N1ZXJTdG9yZSh2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0VHJ1c3RlZElzc3VlclN0b3JlQElJU19TU0xfSU5GT0BAUUVBQUhQRUFQRUFYQFoNCis7IHB1YmxpYzogY2xhc3MgVFNWQ19DQUNIRSAmIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpHZXRUc3ZjQ2FjaGUodm9pZCkgX19wdHI2NA0KKz9HZXRUc3ZjQ2FjaGVASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQUFFQVZUU1ZDX0NBQ0hFQEBYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpHZXRVc2VySGFuZGxlKHZvaWQpIF9fcHRyNjQNCis/R2V0VXNlckhhbmRsZUBUQ1BfQVVUSEVOVEBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENPTU1PTl9NRVRBREFUQTo6SGFuZGxlUHJpdmF0ZVByb3BlcnR5KGNoYXIgKiBfX3B0cjY0LGNsYXNzIElJU19TRVJWRVJfSU5TVEFOQ0UgKiBfX3B0cjY0LHN0cnVjdCBfTUVUQURBVEFfR0VUQUxMX0lOVEVSTkFMX1JFQ09SRCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQsY2xhc3MgQlVGRkVSICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCxzdHJ1Y3QgX01FVEFEQVRBX0VSUk9SX0lORk8gKiBfX3B0cjY0KSBfX3B0cjY0DQorP0hhbmRsZVByaXZhdGVQcm9wZXJ0eUBDT01NT05fTUVUQURBVEFAQFVFQUFIUEVBRFBFQVZJSVNfU0VSVkVSX0lOU1RBTkNFQEBQRUFVX01FVEFEQVRBX0dFVEFMTF9JTlRFUk5BTF9SRUNPUkRAQFBFQVhQRUFWQlVGRkVSQEBQRUFLUEVBVV9NRVRBREFUQV9FUlJPUl9JTkZPQEBAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgSUlTX1NTTF9JTkZPOjpIYXNDVEwoaW50ICogX19wdHI2NCxpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0hhc0NUTEBJSVNfU1NMX0lORk9AQEFFQUFIUEVBSDBAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgSUlTX1NTTF9JTkZPOjpIYXNDZXJ0aWZpY2F0ZShpbnQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SGFzQ2VydGlmaWNhdGVASUlTX1NTTF9JTkZPQEBBRUFBSFBFQUgwQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6SGFzTm9ybWFsQmluZGluZ3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9IYXNOb3JtYWxCaW5kaW5nc0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6Okhhc1NlY3VyZUJpbmRpbmdzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SGFzU2VjdXJlQmluZGluZ3NASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUhYWg0KKzsgaW50IF9fY2RlY2wgSUlTRHVwbGljYXRlVG9rZW5FeCh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHN0cnVjdCBfU0VDVVJJVFlfQVRUUklCVVRFUyAqIF9fcHRyNjQsZW51bSBfU0VDVVJJVFlfSU1QRVJTT05BVElPTl9MRVZFTCxlbnVtIF9UT0tFTl9UWVBFLHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/SUlTRHVwbGljYXRlVG9rZW5FeEBAWUFIUEVBWEtQRUFVX1NFQ1VSSVRZX0FUVFJJQlVURVNAQFc0X1NFQ1VSSVRZX0lNUEVSU09OQVRJT05fTEVWRUxAQFc0X1RPS0VOX1RZUEVAQFBFQVBFQVhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUQ1BfQVVUSEVOVDo6SW1wZXJzb25hdGUodm9pZCkgX19wdHI2NA0KKz9JbXBlcnNvbmF0ZUBUQ1BfQVVUSEVOVEBAUUVBQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6SW5jcmVtZW50Q3VycmVudENvbm5lY3Rpb25zKHZvaWQpIF9fcHRyNjQNCis/SW5jcmVtZW50Q3VycmVudENvbm5lY3Rpb25zQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWSUNFOjpJbmRpY2F0ZVNodXRkb3duQ29tcGxldGUodm9pZCkgX19wdHI2NA0KKz9JbmRpY2F0ZVNodXRkb3duQ29tcGxldGVASUlTX1NFUlZJQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUmVmQmxvYjo6SW5pdCh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHZvaWQgKF9fY2RlY2wqKSh2b2lkICogX19wdHI2NCkpIF9fcHRyNjQNCis/SW5pdEBSZWZCbG9iQEBRRUFBSFBFQVhLUDZBWDBAWkBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTUlNRV9NQVA6OkluaXRGcm9tTWV0YWJhc2Uodm9pZCkgX19wdHI2NA0KKz9Jbml0RnJvbU1ldGFiYXNlQE1JTUVfTUFQQEBBRUFBS1haDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTUlNRV9NQVA6OkluaXRGcm9tUmVnaXN0cnlDaGljYWdvU3R5bGUodm9pZCkgX19wdHI2NA0KKz9Jbml0RnJvbVJlZ2lzdHJ5Q2hpY2Fnb1N0eWxlQE1JTUVfTUFQQEBBRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBNSU1FX01BUDo6SW5pdE1pbWVNYXAodm9pZCkgX19wdHI2NA0KKz9Jbml0TWltZU1hcEBNSU1FX01BUEBAUUVBQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6SW5pdGlhbGl6ZSh2b2lkKQ0KKz9Jbml0aWFsaXplQElJU19TRVJWRVJfSU5TVEFOQ0VAQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTE9HR0lORzo6SW5pdGlhbGl6ZSh2b2lkKQ0KKz9Jbml0aWFsaXplQExPR0dJTkdAQFNBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVklDRTo6SW5pdGlhbGl6ZURpc2NvdmVyeSh2b2lkKSBfX3B0cjY0DQorP0luaXRpYWxpemVEaXNjb3ZlcnlASUlTX1NFUlZJQ0VAQFFFQUFLWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIElJU19TRVJWSUNFOjpJbml0aWFsaXplTWV0YWJhc2VDb21PYmplY3Qodm9pZCkNCis/SW5pdGlhbGl6ZU1ldGFiYXNlQ29tT2JqZWN0QElJU19TRVJWSUNFQEBTQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OkluaXRpYWxpemVTZXJ2aWNlSW5mbyh2b2lkKQ0KKz9Jbml0aWFsaXplU2VydmljZUluZm9ASUlTX1NFUlZJQ0VAQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBJSVNfU0VSVklDRTo6SW5pdGlhbGl6ZVNlcnZpY2VScGMoY2hhciBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpDQorP0luaXRpYWxpemVTZXJ2aWNlUnBjQElJU19TRVJWSUNFQEBTQUhQRUJEUEVBWEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVklDRTo6SW5pdGlhbGl6ZVNvY2tldHModm9pZCkgX19wdHI2NA0KKz9Jbml0aWFsaXplU29ja2V0c0BJSVNfU0VSVklDRUBAUUVBQUtYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIElJU19TRVJWSUNFOjpJbnRlcnJvZ2F0ZVNlcnZpY2Uodm9pZCkgX19wdHI2NA0KKz9JbnRlcnJvZ2F0ZVNlcnZpY2VASUlTX1NFUlZJQ0VAQEFFQUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OklzQWN0aXZlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNBY3RpdmVASUlTX1NFUlZJQ0VAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6SXNBdXRvU3RhcnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0F1dG9TdGFydEBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBSFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpJc0JpbmRpbmdJbk11bHRpU3ooY2xhc3MgSUlTX1NFUlZFUl9CSU5ESU5HICogX19wdHI2NCxjbGFzcyBNVUxUSVNaIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Jc0JpbmRpbmdJbk11bHRpU3pASUlTX1NFUlZFUl9JTlNUQU5DRUBAQUVBQUhQRUFWSUlTX1NFUlZFUl9CSU5ESU5HQEBBRUJWTVVMVElTWkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6SXNDbHVzdGVyRW5hYmxlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzQ2x1c3RlckVuYWJsZWRASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUhYWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgSUlTX1NTTF9JTkZPOjpJc0RlZmF1bHRDVEwodm9pZCkgX19wdHI2NA0KKz9Jc0RlZmF1bHRDVExASUlTX1NTTF9JTkZPQEBBRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TU0xfSU5GTzo6SXNEZWZhdWx0Q2VydGlmaWNhdGUodm9pZCkgX19wdHI2NA0KKz9Jc0RlZmF1bHRDZXJ0aWZpY2F0ZUBJSVNfU1NMX0lORk9AQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6SXNEb3duTGV2ZWxJbnN0YW5jZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRG93bkxldmVsSW5zdGFuY2VASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0NFUlQ6OklzRm9ydGV6emFDZXJ0KHZvaWQpIF9fcHRyNjQNCis/SXNGb3J0ZXp6YUNlcnRASUlTX1NFUlZFUl9DRVJUQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpJc0ZvcndhcmRhYmxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNGb3J3YXJkYWJsZUBUQ1BfQVVUSEVOVEBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUQ1BfQVVUSEVOVDo6SXNHdWVzdChpbnQpIF9fcHRyNjQNCis/SXNHdWVzdEBUQ1BfQVVUSEVOVEBAUUVBQUhIQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OklzSW5DdXJyZW50QmluZGluZ0xpc3Qoc3RydWN0IF9MSVNUX0VOVFJZICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0LGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzSW5DdXJyZW50QmluZGluZ0xpc3RASUlTX1NFUlZFUl9JTlNUQU5DRUBAQUVBQUhQRUFVX0xJU1RfRU5UUllAQEtHUEVCREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OklzTG9nZ2luZ0VuYWJsZWRBKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNMb2dnaW5nRW5hYmxlZEFASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIE1JTUVfTUFQX0VOVFJZOjpJc01hdGNoKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/SXNNYXRjaEBNSU1FX01BUF9FTlRSWUBAVUVCQUhQRUJES0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TRVJWSUNFOjpJc011bHRpSW5zdGFuY2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc011bHRpSW5zdGFuY2VASUlTX1NFUlZJQ0VAQFFFQkFIWFoNCitJc05hbWVJblJlZ0V4cHJlc3Npb25BDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIExPR0dJTkc6OklzUmVxdWlyZWRFeHRyYUxvZ2dpbmdGaWVsZHModm9pZCkgX19wdHI2NA0KKz9Jc1JlcXVpcmVkRXh0cmFMb2dnaW5nRmllbGRzQExPR0dJTkdAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OklzU2VydmljZSh2b2lkKSBfX3B0cjY0DQorP0lzU2VydmljZUBJSVNfU0VSVklDRUBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUQ1BfQVVUSEVOVDo6SXNTc2xDZXJ0UHJlc2VudCh2b2lkKSBfX3B0cjY0DQorP0lzU3NsQ2VydFByZXNlbnRAVENQX0FVVEhFTlRAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RPUkVfQ0hBTkdFX05PVElGSUVSOjpJc1N0b3JlUmVnaXN0ZXJlZEZvckNoYW5nZShjaGFyICogX19wdHI2NCx2b2lkIChfX2NkZWNsKikodm9pZCAqIF9fcHRyNjQpLHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzU3RvcmVSZWdpc3RlcmVkRm9yQ2hhbmdlQFNUT1JFX0NIQU5HRV9OT1RJRklFUkBAUUVBQUhQRUFEUDZBWFBFQVhAWjFAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVklDRTo6SXNTeXN0ZW1EQkNTKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNTeXN0ZW1EQkNTQElJU19TRVJWSUNFQEBRRUJBSFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBJSVNfU1NMX0lORk86OklzVHJ1c3RlZFJvb3Qoc3RydWN0IF9DRVJUX0NPTlRFWFQgY29uc3QgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNUcnVzdGVkUm9vdEBJSVNfU1NMX0lORk9AQEFFQUFIUEVCVV9DRVJUX0NPTlRFWFRAQFBFQUhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBIQVNIX1RBQkxFOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBIQVNIX1RBQkxFQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19DVEw6OklzVmFsaWQodm9pZCkgX19wdHI2NA0KKz9Jc1ZhbGlkQElJU19DVExAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9DRVJUOjpJc1ZhbGlkKHZvaWQpIF9fcHRyNjQNCis/SXNWYWxpZEBJSVNfU0VSVkVSX0NFUlRAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT0RCQ19DT05ORUNUSU9OOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBPREJDX0NPTk5FQ1RJT05AQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT0RCQ19TVEFURU1FTlQ6OklzVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1ZhbGlkQE9EQkNfU1RBVEVNRU5UQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRTX09QRU5fRklMRV9JTkZPOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBUU19PUEVOX0ZJTEVfSU5GT0BAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpMb2FkU3RyKGNsYXNzIFNUUiAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxpbnQpY29uc3QgIF9fcHRyNjQNCis/TG9hZFN0ckBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBSEFFQVZTVFJAQEtIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OkxvYWRTdHIoY2xhc3MgU1RSICYgX19wdHI2NCx1bnNpZ25lZCBsb25nLGludCljb25zdCAgX19wdHI2NA0KKz9Mb2FkU3RyQElJU19TRVJWSUNFQEBRRUJBSEFFQVZTVFJAQEtIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TU0xfSU5GTzo6TG9jayh2b2lkKSBfX3B0cjY0DQorP0xvY2tASUlTX1NTTF9JTkZPQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfVlJPT1RfVEFCTEU6OkxvY2tDb252ZXJ0RXhjbHVzaXZlKHZvaWQpIF9fcHRyNjQNCis/TG9ja0NvbnZlcnRFeGNsdXNpdmVASUlTX1ZST09UX1RBQkxFQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfVlJPT1RfVEFCTEU6OkxvY2tFeGNsdXNpdmUodm9pZCkgX19wdHI2NA0KKz9Mb2NrRXhjbHVzaXZlQElJU19WUk9PVF9UQUJMRUBAUUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExPR0dJTkc6OkxvY2tFeGNsdXNpdmUodm9pZCkgX19wdHI2NA0KKz9Mb2NrRXhjbHVzaXZlQExPR0dJTkdAQEFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19WUk9PVF9UQUJMRTo6TG9ja1NoYXJlZCh2b2lkKSBfX3B0cjY0DQorP0xvY2tTaGFyZWRASUlTX1ZST09UX1RBQkxFQEBRRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HR0lORzo6TG9ja1NoYXJlZCh2b2lkKSBfX3B0cjY0DQorP0xvY2tTaGFyZWRATE9HR0lOR0BAQUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6TG9ja1RoaXNGb3JSZWFkKHZvaWQpIF9fcHRyNjQNCis/TG9ja1RoaXNGb3JSZWFkQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OkxvY2tUaGlzRm9yV3JpdGUodm9pZCkgX19wdHI2NA0KKz9Mb2NrVGhpc0ZvcldyaXRlQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIExPR0dJTkc6OkxvZ0N1c3RvbUluZm9ybWF0aW9uKHVuc2lnbmVkIGxvbmcsc3RydWN0IF9DVVNUT01fTE9HX0RBVEEgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0xvZ0N1c3RvbUluZm9ybWF0aW9uQExPR0dJTkdAQFFFQUFLS1BFQVVfQ1VTVE9NX0xPR19EQVRBQEBQRUFEQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWSUNFOjpMb2dFdmVudCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0LGNoYXIgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCBjb25zdCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0xvZ0V2ZW50QElJU19TRVJWSUNFQEBRRUFBWEtHUUVBUEVCREtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTE9HR0lORzo6TG9nSW5mb3JtYXRpb24oc3RydWN0IF9JTkVUTE9HX0lORk9STUFUSU9OIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Mb2dJbmZvcm1hdGlvbkBMT0dHSU5HQEBRRUFBS1BFQlVfSU5FVExPR19JTkZPUk1BVElPTkBAQFoNCis7IGludCBfX2NkZWNsIExvZ29uRGlnZXN0VXNlckEodm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpDQorP0xvZ29uRGlnZXN0VXNlckFAQFlBSFBFQVhLUEVBUEVBWEBaDQorOyBpbnQgX19jZGVjbCBMb2dvbk5ldFVzZXJBKGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCx1bmlvbiBfTEFSR0VfSU5URUdFUiAqIF9fcHRyNjQpDQorP0xvZ29uTmV0VXNlckFAQFlBSFBFQUQwMDBLS0tQRUFQRUFYUEVBVF9MQVJHRV9JTlRFR0VSQEBAWg0KKzsgaW50IF9fY2RlY2wgTG9nb25OZXRVc2VyVyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQsdW5pb24gX0xBUkdFX0lOVEVHRVIgKiBfX3B0cjY0KQ0KKz9Mb2dvbk5ldFVzZXJXQEBZQUhQRUFHMFBFQUQwS0tLUEVBUEVBWFBFQVRfTEFSR0VfSU5URUdFUkBAQFoNCis7IHB1YmxpYzogY2xhc3MgSFRfRUxFTUVOVCAqIF9fcHRyNjQgX19jZGVjbCBIQVNIX1RBQkxFOjpMb29rdXAoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TG9va3VwQEhBU0hfVEFCTEVAQFFFQUFQRUFWSFRfRUxFTUVOVEBAUEVCREBaDQorOyBwdWJsaWM6IGNsYXNzIE1JTUVfTUFQX0VOVFJZIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE1JTUVfTUFQOjpMb29rdXBNaW1lRW50cnlGb3JGaWxlRXh0KGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0xvb2t1cE1pbWVFbnRyeUZvckZpbGVFeHRATUlNRV9NQVBAQFFFQUFQRUJWTUlNRV9NQVBfRU5UUllAQFBFQkRAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTUlNRV9NQVA6Okxvb2t1cE1pbWVFbnRyeUZvck1pbWVUeXBlKGNsYXNzIFNUUiBjb25zdCAmIF9fcHRyNjQsY2xhc3MgTUlNRV9NQVBfRU5UUlkgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9Mb29rdXBNaW1lRW50cnlGb3JNaW1lVHlwZUBNSU1FX01BUEBAUUVBQUtBRUJWU1RSQEBQRUFQRUJWTUlNRV9NQVBfRU5UUllAQFBFQUtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfVlJPT1RfVEFCTEU6Okxvb2t1cFZpcnR1YWxSb290KGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9Mb29rdXBWaXJ0dWFsUm9vdEBJSVNfVlJPT1RfVEFCTEVAQFFFQUFIUEVCRFBFQURQRUFLMjIyUEVBUEVBWDJAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpNRENoYW5nZU5vdGlmeShzdHJ1Y3QgX01EX0NIQU5HRV9PQkpFQ1RfQSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TURDaGFuZ2VOb3RpZnlASUlTX1NFUlZFUl9JTlNUQU5DRUBAVUVBQVhQRUFVX01EX0NIQU5HRV9PQkpFQ1RfQUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgSUlTX1NFUlZJQ0U6Ok1EQ2hhbmdlTm90aWZ5KHN0cnVjdCBfTURfQ0hBTkdFX09CSkVDVF9BICogX19wdHI2NCkgX19wdHI2NA0KKz9NRENoYW5nZU5vdGlmeUBJSVNfU0VSVklDRUBATUVBQVhQRUFVX01EX0NIQU5HRV9PQkpFQ1RfQUBAQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBJSVNfU0VSVklDRTo6TURDaGFuZ2VOb3RpZnkodW5zaWduZWQgbG9uZyxzdHJ1Y3QgX01EX0NIQU5HRV9PQkpFQ1RfQSAqIF9fcHRyNjQgY29uc3QpDQorP01EQ2hhbmdlTm90aWZ5QElJU19TRVJWSUNFQEBTQVhLUUVBVV9NRF9DSEFOR0VfT0JKRUNUX0FAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpNRE1pcnJvclZpcnR1YWxSb290cyh2b2lkKSBfX3B0cjY0DQorP01ETWlycm9yVmlydHVhbFJvb3RzQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFRTX09QRU5fRklMRV9JTkZPOjpNYWtlU3Ryb25nRVRhZyh2b2lkKSBfX3B0cjY0DQorP01ha2VTdHJvbmdFVGFnQFRTX09QRU5fRklMRV9JTkZPQEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9EQkNfU1RBVEVNRU5UOjpNb3JlUmVzdWx0cyhpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP01vcmVSZXN1bHRzQE9EQkNfU1RBVEVNRU5UQEBRRUFBSFBFQUhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpNb3ZlTURWcm9vdHMyUmVnaXN0cnkodm9pZCkgX19wdHI2NA0KKz9Nb3ZlTURWcm9vdHMyUmVnaXN0cnlASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpNb3ZlVnJvb3RGcm9tUmVnVG9NRCh2b2lkKSBfX3B0cjY0DQorP01vdmVWcm9vdEZyb21SZWdUb01EQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFIWFoNCis7IGludCBfX2NkZWNsIE5ldFVzZXJDb29raWVBKGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/TmV0VXNlckNvb2tpZUFAQFlBSFBFQURLMEtAWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIElORVRfUEFSU0VSOjpOZXh0SXRlbSh2b2lkKSBfX3B0cjY0DQorP05leHRJdGVtQElORVRfUEFSU0VSQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgSU5FVF9QQVJTRVI6Ok5leHRMaW5lKHZvaWQpIF9fcHRyNjQNCis/TmV4dExpbmVASU5FVF9QQVJTRVJAQFFFQUFQRUFEWFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBJTkVUX1BBUlNFUjo6TmV4dFBhcmFtKHZvaWQpIF9fcHRyNjQNCis/TmV4dFBhcmFtQElORVRfUEFSU0VSQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgSU5FVF9QQVJTRVI6Ok5leHRUb2tlbihjaGFyKSBfX3B0cjY0DQorP05leHRUb2tlbkBJTkVUX1BBUlNFUkBAUUVBQVBFQUREQFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBJTkVUX1BBUlNFUjo6TmV4dFRva2VuKHZvaWQpIF9fcHRyNjQNCis/TmV4dFRva2VuQElORVRfUEFSU0VSQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgU1RPUkVfQ0hBTkdFX05PVElGSUVSOjpOb3RpZkZuY0NhbGxlcih2b2lkICogX19wdHI2NCx1bnNpZ25lZCBjaGFyKQ0KKz9Ob3RpZkZuY0NhbGxlckBTVE9SRV9DSEFOR0VfTk9USUZJRVJAQFNBWFBFQVhFQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTE9HR0lORzo6Tm90aWZ5Q2hhbmdlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Tm90aWZ5Q2hhbmdlQExPR0dJTkdAQFFFQUFIS0BaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnVsbENsb3NlTG9jYXRvcihzdHJ1Y3QgX0hNQVBQRVIgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpDQorP051bGxDbG9zZUxvY2F0b3JAQFlBS1BFQVVfSE1BUFBFUkBAX0tAWg0KKzsgbG9uZyBfX2NkZWNsIE51bGxEZVJlZmVyZW5jZU1hcHBlcihzdHJ1Y3QgX0hNQVBQRVIgKiBfX3B0cjY0KQ0KKz9OdWxsRGVSZWZlcmVuY2VNYXBwZXJAQFlBSlBFQVVfSE1BUFBFUkBAQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdWxsR2V0QWNjZXNzVG9rZW4oc3RydWN0IF9ITUFQUEVSICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/TnVsbEdldEFjY2Vzc1Rva2VuQEBZQUtQRUFVX0hNQVBQRVJAQF9LUEVBUEVBWEBaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnVsbEdldENoYWxsZW5nZShzdHJ1Y3QgX0hNQVBQRVIgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpDQorP051bGxHZXRDaGFsbGVuZ2VAQFlBS1BFQVVfSE1BUFBFUkBAUEVBRUsxUEVBS0BaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnVsbEdldElzc3Vlckxpc3Qoc3RydWN0IF9ITUFQUEVSICogX19wdHI2NCx2b2lkICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkNCis/TnVsbEdldElzc3Vlckxpc3RAQFlBS1BFQVVfSE1BUFBFUkBAUEVBWFBFQUVQRUFLQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdWxsTWFwQ3JlZGVudGlhbChzdHJ1Y3QgX0hNQVBQRVIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdm9pZCBjb25zdCAqIF9fcHRyNjQsdm9pZCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCAqIF9fcHRyNjQpDQorP051bGxNYXBDcmVkZW50aWFsQEBZQUtQRUFVX0hNQVBQRVJAQEtQRUJYMVBFQV9LQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdWxsUXVlcnlNYXBwZWRDcmVkZW50aWFsQXR0cmlidXRlcyhzdHJ1Y3QgX0hNQVBQRVIgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkNCis/TnVsbFF1ZXJ5TWFwcGVkQ3JlZGVudGlhbEF0dHJpYnV0ZXNAQFlBS1BFQVVfSE1BUFBFUkBAX0tLUEVBWFBFQUtAWg0KKzsgbG9uZyBfX2NkZWNsIE51bGxSZWZlcmVuY2VNYXBwZXIoc3RydWN0IF9ITUFQUEVSICogX19wdHI2NCkNCis/TnVsbFJlZmVyZW5jZU1hcHBlckBAWUFKUEVBVV9ITUFQUEVSQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNQjo6T3Blbih1bnNpZ25lZCBsb25nLGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/T3BlbkBNQkBAUUVBQUhLUEVCREtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPREJDX0NPTk5FQ1RJT046Ok9wZW4oY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T3BlbkBPREJDX0NPTk5FQ1RJT05AQFFFQUFIUEVCRDAwQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT0RCQ19DT05ORUNUSU9OOjpPcGVuKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP09wZW5AT0RCQ19DT05ORUNUSU9OQEBRRUFBSFBFQkcwMEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpQYWNrYWdlU3VwcG9ydHNFbmNvZGluZyhjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9QYWNrYWdlU3VwcG9ydHNFbmNvZGluZ0BUQ1BfQVVUSEVOVEBAUUVBQUhQRUFEQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0JJTkRJTkc6OlBhcnNlRGVzY3JpcHRvcihjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9QYXJzZURlc2NyaXB0b3JASUlTX1NFUlZFUl9CSU5ESU5HQEBTQUtQRUJEUEVBS1BFQUdQRUFQRUJEQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UGF1c2VJbnN0YW5jZSh2b2lkKSBfX3B0cjY0DQorP1BhdXNlSW5zdGFuY2VASUlTX1NFUlZFUl9JTlNUQU5DRUBAVUVBQUtYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIElJU19TRVJWSUNFOjpQYXVzZVNlcnZpY2Uodm9pZCkgX19wdHI2NA0KKz9QYXVzZVNlcnZpY2VASUlTX1NFUlZJQ0VAQEFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlBkY0hhY2tWUlJlZzJNRCh2b2lkKSBfX3B0cjY0DQorP1BkY0hhY2tWUlJlZzJNREBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpQZXJmb3JtQ2x1c3Rlck1vZGVDaGFuZ2Uodm9pZCkgX19wdHI2NA0KKz9QZXJmb3JtQ2x1c3Rlck1vZGVDaGFuZ2VASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UGVyZm9ybVN0YXRlQ2hhbmdlKHZvaWQpIF9fcHRyNjQNCis/UGVyZm9ybVN0YXRlQ2hhbmdlQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFLWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT0RCQ19TVEFURU1FTlQ6OlByZXBhcmVTdGF0ZW1lbnQoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UHJlcGFyZVN0YXRlbWVudEBPREJDX1NUQVRFTUVOVEBAUUVBQUhQRUJEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT0RCQ19TVEFURU1FTlQ6OlByZXBhcmVTdGF0ZW1lbnQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1ByZXBhcmVTdGF0ZW1lbnRAT0RCQ19TVEFURU1FTlRAQFFFQUFIUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBNSU1FX01BUDo6UHJpbnQodm9pZCkgX19wdHI2NA0KKz9QcmludEBNSU1FX01BUEBAUUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBNSU1FX01BUF9FTlRSWTo6UHJpbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9QcmludEBNSU1FX01BUF9FTlRSWUBAVUVCQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgVFNfT1BFTl9GSUxFX0lORk86OlByaW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UHJpbnRAVFNfT1BFTl9GSUxFX0lORk9AQFFFQkFYWFoNCis7IHZvaWQgX19jZGVjbCBQcmludElHYXRld2F5UmVxdWVzdChzdHJ1Y3QgX0lHQVRFV0FZX1JFUVVFU1QgY29uc3QgKiBfX3B0cjY0KQ0KKz9QcmludElHYXRld2F5UmVxdWVzdEBAWUFYUEVCVV9JR0FURVdBWV9SRVFVRVNUQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlBY2NlcHRFeE91dHN0YW5kaW5nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBY2NlcHRFeE91dHN0YW5kaW5nQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5QWNjZXB0RXhUaW1lb3V0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBY2NlcHRFeFRpbWVvdXRASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIElJU19TU0xfSU5GTyAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeUFuZFJlZmVyZW5jZVNTTEluZm9PYmoodm9pZCkgX19wdHI2NA0KKz9RdWVyeUFuZFJlZmVyZW5jZVNTTEluZm9PYmpASUlTX1NFUlZFUl9JTlNUQU5DRUBAVUVBQVBFQVZJSVNfU1NMX0lORk9AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBUU19PUEVOX0ZJTEVfSU5GTzo6UXVlcnlBdHRyaWJ1dGVzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBdHRyaWJ1dGVzQFRTX09QRU5fRklMRV9JTkZPQEBRRUJBS1haDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlCYW5kd2lkdGhJbmZvKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlCYW5kd2lkdGhJbmZvQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFQRUFYWFoNCis7IHB1YmxpYzogY2xhc3MgSUlTX0NUTCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU1NMX0lORk86OlF1ZXJ5Q1RMKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlDVExASUlTX1NTTF9JTkZPQEBRRUFBUEVBVklJU19DVExAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfQ1RMX0NPTlRFWFQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX0NUTDo6UXVlcnlDVExDb250ZXh0KHZvaWQpIF9fcHRyNjQNCis/UXVlcnlDVExDb250ZXh0QElJU19DVExAQFFFQUFQRUJVX0NUTF9DT05URVhUQEBYWg0KKzsgcHVibGljOiBzaG9ydCBfX2NkZWNsIE9EQkNfUEFSQU1FVEVSOjpRdWVyeUNUeXBlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDVHlwZUBPREJDX1BBUkFNRVRFUkBAUUVCQUZYWg0KKzsgcHVibGljOiBfX2ludDY0IF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OlF1ZXJ5Q2JWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q2JWYWx1ZUBPREJDX1BBUkFNRVRFUkBAUUVCQV9KWFoNCis7IHB1YmxpYzogX19pbnQ2NCAmIF9fcHRyNjQgX19jZGVjbCBPREJDX1BBUkFNRVRFUjo6UXVlcnlDYlZhbHVlUmVmKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlDYlZhbHVlUmVmQE9EQkNfUEFSQU1FVEVSQEBRRUFBQUVBX0pYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0NFUlRfQ09OVEVYVCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVkVSX0NFUlQ6OlF1ZXJ5Q2VydENvbnRleHQodm9pZCkgX19wdHI2NA0KKz9RdWVyeUNlcnRDb250ZXh0QElJU19TRVJWRVJfQ0VSVEBAUUVBQVBFQlVfQ0VSVF9DT05URVhUQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0NFUlRfQ09OVEVYVCBjb25zdCAqIF9fcHRyNjQgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZFUl9DRVJUOjpRdWVyeUNlcnRDb250ZXh0QWRkcih2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5Q2VydENvbnRleHRBZGRyQElJU19TRVJWRVJfQ0VSVEBAUUVBQVBFQVBFQlVfQ0VSVF9DT05URVhUQEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU1NMX0lORk86OlF1ZXJ5Q2VydFZhbGlkaXR5KHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5Q2VydFZhbGlkaXR5QElJU19TU0xfSU5GT0BAUUVBQUhQRUFLQFoNCis7IHB1YmxpYzogY2xhc3MgSUlTX1NFUlZFUl9DRVJUICogX19wdHI2NCBfX2NkZWNsIElJU19TU0xfSU5GTzo6UXVlcnlDZXJ0aWZpY2F0ZSh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5Q2VydGlmaWNhdGVASUlTX1NTTF9JTkZPQEBRRUFBUEVBVklJU19TRVJWRVJfQ0VSVEBAWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgVENQX0FVVEhFTlQ6OlF1ZXJ5Q2VydGlmaWNhdGVGbGFncyh1bnNpZ25lZCBsb25nICogX19wdHI2NCxpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5Q2VydGlmaWNhdGVGbGFnc0BUQ1BfQVVUSEVOVEBAUUVBQUhQRUFLUEVBSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpRdWVyeUNlcnRpZmljYXRlSXNzdWVyKGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUNlcnRpZmljYXRlSXNzdWVyQFRDUF9BVVRIRU5UQEBRRUFBSFBFQURLUEVBSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpRdWVyeUNlcnRpZmljYXRlU2VyaWFsTnVtYmVyKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCxpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5Q2VydGlmaWNhdGVTZXJpYWxOdW1iZXJAVENQX0FVVEhFTlRAQFFFQUFIUEVBUEVBRVBFQUtQRUFIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgVENQX0FVVEhFTlQ6OlF1ZXJ5Q2VydGlmaWNhdGVTdWJqZWN0KGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUNlcnRpZmljYXRlU3ViamVjdEBUQ1BfQVVUSEVOVEBAUUVBQUhQRUFES1BFQUhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPREJDX1NUQVRFTUVOVDo6UXVlcnlDb2xOYW1lcyhjbGFzcyBTVFIgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlDb2xOYW1lc0BPREJDX1NUQVRFTUVOVEBAUUVBQUhQRUFQRUFWU1RSQEBQRUFLS1BFQUhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlDb25uZWN0aW9uVGltZW91dCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q29ubmVjdGlvblRpbWVvdXRASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUtYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWRVJfQ0VSVDo6UXVlcnlDb250YWluZXIodm9pZCkgX19wdHI2NA0KKz9RdWVyeUNvbnRhaW5lckBJSVNfU0VSVkVSX0NFUlRAQFFFQUFQRUFEWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBUU19PUEVOX0ZJTEVfSU5GTzo6UXVlcnlDb250ZXh0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDb250ZXh0QFRTX09QRU5fRklMRV9JTkZPQEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfU2VjSGFuZGxlICogX19wdHI2NCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpRdWVyeUNyZWRIYW5kbGUodm9pZCkgX19wdHI2NA0KKz9RdWVyeUNyZWRIYW5kbGVAVENQX0FVVEhFTlRAQFFFQUFQRUFVX1NlY0hhbmRsZUBAWFoNCis7IHB1YmxpYzogc3RydWN0IF9TZWNIYW5kbGUgKiBfX3B0cjY0IF9fY2RlY2wgVENQX0FVVEhFTlQ6OlF1ZXJ5Q3R4dEhhbmRsZSh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5Q3R4dEhhbmRsZUBUQ1BfQVVUSEVOVEBAUUVBQVBFQVVfU2VjSGFuZGxlQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlDdXJyZW50Q29ubmVjdGlvbnModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUN1cnJlbnRDb25uZWN0aW9uc0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVklDRTo6UXVlcnlDdXJyZW50U2VydmljZUVycm9yKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDdXJyZW50U2VydmljZUVycm9yQElJU19TRVJWSUNFQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVklDRTo6UXVlcnlDdXJyZW50U2VydmljZVN0YXRlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDdXJyZW50U2VydmljZVN0YXRlQElJU19TRVJWSUNFQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlEZWZhdWx0UG9ydCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RGVmYXVsdFBvcnRASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlF1ZXJ5RG93bkxldmVsSW5zdGFuY2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeURvd25MZXZlbEluc3RhbmNlQElJU19TRVJWSUNFQEBRRUJBS1haDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgVFNfT1BFTl9GSUxFX0lORk86OlF1ZXJ5RVRhZyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RVRhZ0BUU19PUEVOX0ZJTEVfSU5GT0BAUUVCQVBFQURYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUQ1BfQVVUSEVOVDo6UXVlcnlFbmNyeXB0aW9uS2V5U2l6ZSh1bnNpZ25lZCBsb25nICogX19wdHI2NCxpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5RW5jcnlwdGlvbktleVNpemVAVENQX0FVVEhFTlRAQFFFQUFIUEVBS1BFQUhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUQ1BfQVVUSEVOVDo6UXVlcnlFbmNyeXB0aW9uU2VydmVyUHJpdmF0ZUtleVNpemUodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUVuY3J5cHRpb25TZXJ2ZXJQcml2YXRlS2V5U2l6ZUBUQ1BfQVVUSEVOVEBAUUVBQUhQRUFLUEVBSEBaDQorOyBwdWJsaWM6IGNsYXNzIElJU19FTkRQT0lOVCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVkVSX0JJTkRJTkc6OlF1ZXJ5RW5kcG9pbnQodm9pZCkgX19wdHI2NA0KKz9RdWVyeUVuZHBvaW50QElJU19TRVJWRVJfQklORElOR0BAUUVBQVBFQVZJSVNfRU5EUE9JTlRAQFhaDQorOyBwdWJsaWM6IHNob3J0IF9fY2RlY2wgT0RCQ19DT05ORUNUSU9OOjpRdWVyeUVycm9yQ29kZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RXJyb3JDb2RlQE9EQkNfQ09OTkVDVElPTkBAUUVCQUZYWg0KKzsgcHVibGljOiBzaG9ydCBfX2NkZWNsIE9EQkNfU1RBVEVNRU5UOjpRdWVyeUVycm9yQ29kZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RXJyb3JDb2RlQE9EQkNfU1RBVEVNRU5UQEBRRUJBRlhaDQorOyBwdWJsaWM6IGNsYXNzIEVWRU5UX0xPRyAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVklDRTo6UXVlcnlFdmVudExvZyh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5RXZlbnRMb2dASUlTX1NFUlZJQ0VAQFFFQUFQRUFWRVZFTlRfTE9HQEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUQ1BfQVVUSEVOVDo6UXVlcnlFeHBpcnkodW5pb24gX0xBUkdFX0lOVEVHRVIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5RXhwaXJ5QFRDUF9BVVRIRU5UQEBRRUFBSFBFQVRfTEFSR0VfSU5URUdFUkBAQFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBMT0dHSU5HOjpRdWVyeUV4dHJhTG9nZ2luZ0ZpZWxkcyh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5RXh0cmFMb2dnaW5nRmllbGRzQExPR0dJTkdAQFFFQUFQRUFEWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBUU19PUEVOX0ZJTEVfSU5GTzo6UXVlcnlGaWxlSGFuZGxlKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlGaWxlSGFuZGxlQFRTX09QRU5fRklMRV9JTkZPQEBRRUFBUEVBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpRdWVyeUZ1bGx5UXVhbGlmaWVkVXNlck5hbWUoY2hhciAqIF9fcHRyNjQsY2xhc3MgU1RSICogX19wdHI2NCxjbGFzcyBJSVNfU0VSVkVSX0lOU1RBTkNFICogX19wdHI2NCxjbGFzcyBUQ1BfQVVUSEVOVF9JTkZPICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUZ1bGx5UXVhbGlmaWVkVXNlck5hbWVAVENQX0FVVEhFTlRAQFFFQUFIUEVBRFBFQVZTVFJAQFBFQVZJSVNfU0VSVkVSX0lOU1RBTkNFQEBQRUFWVENQX0FVVEhFTlRfSU5GT0BAQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVkVSX0JJTkRJTkc6OlF1ZXJ5SG9zdE5hbWUodm9pZCkgX19wdHI2NA0KKz9RdWVyeUhvc3ROYW1lQElJU19TRVJWRVJfQklORElOR0BAUUVBQVBFQkRYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpRdWVyeUltcGVyc29uYXRpb25Ub2tlbih2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5SW1wZXJzb25hdGlvblRva2VuQFRDUF9BVVRIRU5UQEBRRUFBUEVBWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBJU1JQQyAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVklDRTo6UXVlcnlJbmV0SW5mb1JwYyh2b2lkKQ0KKz9RdWVyeUluZXRJbmZvUnBjQElJU19TRVJWSUNFQEBTQVBFQVZJU1JQQ0BAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWSUNFOjpRdWVyeUluc3RhbmNlQ291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUluc3RhbmNlQ291bnRASUlTX1NFUlZJQ0VAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5SW5zdGFuY2VJZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SW5zdGFuY2VJZEBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0JJTkRJTkc6OlF1ZXJ5SXBBZGRyZXNzKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlJcEFkZHJlc3NASUlTX1NFUlZFUl9CSU5ESU5HQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgSUlTX1NFUlZFUl9CSU5ESU5HOjpRdWVyeUlwUG9ydCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5SXBQb3J0QElJU19TRVJWRVJfQklORElOR0BAUUVBQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTUlNRV9NQVBfRU5UUlk6OlF1ZXJ5S2V5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlLZXlATUlNRV9NQVBfRU5UUllAQFVFQkFQRUJEWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTUlNRV9NQVBfRU5UUlk6OlF1ZXJ5S2V5TGVuKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlLZXlMZW5ATUlNRV9NQVBfRU5UUllAQFVFQkFLWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgVFNfT1BFTl9GSUxFX0lORk86OlF1ZXJ5TGFzdFdyaXRlVGltZShzdHJ1Y3QgX0ZJTEVUSU1FICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUxhc3RXcml0ZVRpbWVAVFNfT1BFTl9GSUxFX0lORk9AQFFFQkFIUEVBVV9GSUxFVElNRUBAQFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBJTkVUX1BBUlNFUjo6UXVlcnlMaW5lKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlMaW5lQElORVRfUEFSU0VSQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIElJU19DVEw6OlF1ZXJ5TGlzdElkZW50aWZpZXIodm9pZCkgX19wdHI2NA0KKz9RdWVyeUxpc3RJZGVudGlmaWVyQElJU19DVExAQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlMb2dBbm9ueW1vdXModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUxvZ0Fub255bW91c0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5TG9nTm9uQW5vbnltb3VzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlMb2dOb25Bbm9ueW1vdXNASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUhYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIElJU19DVEw6OlF1ZXJ5TUJQYXRoKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlNQlBhdGhASUlTX0NUTEBAUUVBQVBFQURYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWRVJfQ0VSVDo6UXVlcnlNQlBhdGgodm9pZCkgX19wdHI2NA0KKz9RdWVyeU1CUGF0aEBJSVNfU0VSVkVSX0NFUlRAQFFFQUFQRUFEWFoNCis7IHB1YmxpYzogc3RydWN0IElVbmtub3duICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWSUNFOjpRdWVyeU1ETnNlT2JqZWN0KHZvaWQpIF9fcHRyNjQNCis/UXVlcnlNRE5zZU9iamVjdEBJSVNfU0VSVklDRUBAUUVBQVBFQVVJVW5rbm93bkBAWFoNCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVklDRTo6UXVlcnlNRE9iamVjdCh2b2lkKQ0KKz9RdWVyeU1ET2JqZWN0QElJU19TRVJWSUNFQEBTQVBFQVVJVW5rbm93bkBAWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeU1EUGF0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TURQYXRoQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVklDRTo6UXVlcnlNRFBhdGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1EUGF0aEBJSVNfU0VSVklDRUBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlNRFBhdGhMZW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1EUGF0aExlbkBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBS1haDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlNRFZSUGF0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TURWUlBhdGhASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlNRFZSUGF0aExlbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TURWUlBhdGhMZW5ASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUtYWg0KKzsgcHVibGljOiBfX2ludDY0IF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OlF1ZXJ5TWF4Q2JWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TWF4Q2JWYWx1ZUBPREJDX1BBUkFNRVRFUkBAUUVCQV9KWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5TWF4Q29ubmVjdGlvbnModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1heENvbm5lY3Rpb25zQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5TWF4RW5kcG9pbnRDb25uZWN0aW9ucyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TWF4RW5kcG9pbnRDb25uZWN0aW9uc0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBS1haDQorOyBwdWJsaWM6IGNsYXNzIE1JTUVfTUFQICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWSUNFOjpRdWVyeU1pbWVNYXAodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1pbWVNYXBASUlTX1NFUlZJQ0VAQFFFQkFQRUFWTUlNRV9NQVBAQFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlF1ZXJ5TW9kdWxlTmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TW9kdWxlTmFtZUBJSVNfU0VSVklDRUBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9DRVJUOjpRdWVyeU9wZW5GbGFncyh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5T3BlbkZsYWdzQElJU19TRVJWRVJfQ0VSVEBAUUVBQUtYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIElJU19DVEw6OlF1ZXJ5T3JpZ2luYWxTdG9yZSh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5T3JpZ2luYWxTdG9yZUBJSVNfQ1RMQEBRRUFBUEVBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OlF1ZXJ5UGFyYW1OdW1iZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBhcmFtTnVtYmVyQE9EQkNfUEFSQU1FVEVSQEBRRUJBR1haDQorOyBwdWJsaWM6IHNob3J0IF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OlF1ZXJ5UGFyYW1UeXBlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQYXJhbVR5cGVAT0RCQ19QQVJBTUVURVJAQFFFQkFGWFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBJTkVUX1BBUlNFUjo6UXVlcnlQb3Modm9pZCkgX19wdHI2NA0KKz9RdWVyeVBvc0BJTkVUX1BBUlNFUkBAUUVBQVBFQURYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OlF1ZXJ5UHJlY2lzaW9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQcmVjaXNpb25AT0RCQ19QQVJBTUVURVJAQFFFQkFLWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBUQ1BfQVVUSEVOVDo6UXVlcnlQcmltYXJ5VG9rZW4odm9pZCkgX19wdHI2NA0KKz9RdWVyeVByaW1hcnlUb2tlbkBUQ1BfQVVUSEVOVEBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWRVJfQ0VSVDo6UXVlcnlQcm92aWRlck5hbWUodm9pZCkgX19wdHI2NA0KKz9RdWVyeVByb3ZpZGVyTmFtZUBJSVNfU0VSVkVSX0NFUlRAQFFFQUFQRUFEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfQ0VSVDo6UXVlcnlQcm92aWRlclR5cGUodm9pZCkgX19wdHI2NA0KKz9RdWVyeVByb3ZpZGVyVHlwZUBJSVNfU0VSVkVSX0NFUlRAQFFFQUFLWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBSZWZCbG9iOjpRdWVyeVB0cih2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5UHRyQFJlZkJsb2JAQFFFQUFQRUFYWFoNCis7IHB1YmxpYzogbG9uZyAqIF9fcHRyNjQgX19jZGVjbCBSZWZCbG9iOjpRdWVyeVJlZkNvdW50KHZvaWQpIF9fcHRyNjQNCis/UXVlcnlSZWZDb3VudEBSZWZCbG9iQEBRRUFBUEVBSlhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlSZWdQYXJhbUtleSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UmVnUGFyYW1LZXlASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWSUNFOjpRdWVyeVJlZ1BhcmFtS2V5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlSZWdQYXJhbUtleUBJSVNfU0VSVklDRUBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5Um9vdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Um9vdEBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBUEVBRFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9EQkNfU1RBVEVNRU5UOjpRdWVyeVJvd0NvdW50KF9faW50NjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5Um93Q291bnRAT0RCQ19TVEFURU1FTlRAQFFFQUFIUEVBX0pAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlTYXZlZFN0YXRlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTYXZlZFN0YXRlQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFLWFoNCis7IHB1YmxpYzogc2hvcnQgX19jZGVjbCBPREJDX1BBUkFNRVRFUjo6UXVlcnlTY2FsZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2NhbGVAT0RCQ19QQVJBTUVURVJAQFFFQkFGWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgVENQX0FVVEhFTlQ6OlF1ZXJ5U2VydmVyQ2VydGlmaWNhdGVJc3N1ZXIoY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlTZXJ2ZXJDZXJ0aWZpY2F0ZUlzc3VlckBUQ1BfQVVUSEVOVEBAUUVBQUhQRUFQRUFEUEVBSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpRdWVyeVNlcnZlckNlcnRpZmljYXRlU3ViamVjdChjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeVNlcnZlckNlcnRpZmljYXRlU3ViamVjdEBUQ1BfQVVUSEVOVEBAUUVBQUhQRUFQRUFEUEVBSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeVNlcnZlclNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNlcnZlclNpemVASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlTZXJ2ZXJTdGF0ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2VydmVyU3RhdGVASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUtYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWSUNFOjpRdWVyeVNlcnZpY2VDb21tZW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZXJ2aWNlQ29tbWVudEBJSVNfU0VSVklDRUBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlF1ZXJ5U2VydmljZUlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZXJ2aWNlSWRASUlTX1NFUlZJQ0VAQFFFQkFLWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVklDRTo6UXVlcnlTZXJ2aWNlTmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2VydmljZU5hbWVASUlTX1NFUlZJQ0VAQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWSUNFOjpRdWVyeVNlcnZpY2VTcGVjaWZpY0V4aXRDb2RlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZXJ2aWNlU3BlY2lmaWNFeGl0Q29kZUBJSVNfU0VSVklDRUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlF1ZXJ5U2h1dGRvd25TY2hlZHVsZUlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTaHV0ZG93blNjaGVkdWxlSWRASUlTX1NFUlZJQ0VAQFFFQkFLWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX0NUTDo6UXVlcnlTaWduZXJDZXJ0KHN0cnVjdCBfQ0VSVF9DT05URVhUIGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlTaWduZXJDZXJ0QElJU19DVExAQFFFQUFIUEVBUEVCVV9DRVJUX0NPTlRFWFRAQEBaDQorOyBpbnQgX19jZGVjbCBRdWVyeVNpbmdsZUFjY2Vzc1Rva2VuKHZvaWQpDQorP1F1ZXJ5U2luZ2xlQWNjZXNzVG9rZW5AQFlBSFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlTaXRlTmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2l0ZU5hbWVASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgUmVmQmxvYjo6UXVlcnlTaXplKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlTaXplQFJlZkJsb2JAQFFFQUFLWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgVFNfT1BFTl9GSUxFX0lORk86OlF1ZXJ5U2l6ZSh1bmlvbiBfTEFSR0VfSU5URUdFUiAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTaXplQFRTX09QRU5fRklMRV9JTkZPQEBRRUJBSEFFQVRfTEFSR0VfSU5URUdFUkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgVFNfT1BFTl9GSUxFX0lORk86OlF1ZXJ5U2l6ZSh1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNpemVAVFNfT1BFTl9GSUxFX0lORk9AQFFFQkFIUEVBSzBAWg0KKzsgcHVibGljOiBzaG9ydCBfX2NkZWNsIE9EQkNfUEFSQU1FVEVSOjpRdWVyeVNxbFR5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNxbFR5cGVAT0RCQ19QQVJBTUVURVJAQFFFQkFGWFoNCis7IHB1YmxpYzogc3RydWN0IF9TZWNIYW5kbGUgKiBfX3B0cjY0IF9fY2RlY2wgVENQX0FVVEhFTlQ6OlF1ZXJ5U3NsQ3R4dEhhbmRsZSh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5U3NsQ3R4dEhhbmRsZUBUQ1BfQVVUSEVOVEBAUUVBQVBFQVVfU2VjSGFuZGxlQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX0NUTDo6UXVlcnlTdGF0dXModm9pZCkgX19wdHI2NA0KKz9RdWVyeVN0YXR1c0BJSVNfQ1RMQEBRRUFBS1haDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZFUl9DRVJUOjpRdWVyeVN0b3JlSGFuZGxlKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlTdG9yZUhhbmRsZUBJSVNfU0VSVkVSX0NFUlRAQFFFQUFQRUFYWFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBJSVNfQ1RMOjpRdWVyeVN0b3JlTmFtZSh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5U3RvcmVOYW1lQElJU19DVExAQFFFQUFQRUFEWFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVkVSX0NFUlQ6OlF1ZXJ5U3RvcmVOYW1lKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlTdG9yZU5hbWVASUlTX1NFUlZFUl9DRVJUQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgSU5FVF9QQVJTRVI6OlF1ZXJ5VG9rZW4odm9pZCkgX19wdHI2NA0KKz9RdWVyeVRva2VuQElORVRfUEFSU0VSQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpRdWVyeVVzZXJOYW1lKGNsYXNzIFNUUiAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1F1ZXJ5VXNlck5hbWVAVENQX0FVVEhFTlRAQFFFQUFIUEVBVlNUUkBASEBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OlF1ZXJ5VmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVZhbHVlQE9EQkNfUEFSQU1FVEVSQEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9EQkNfU1RBVEVNRU5UOjpRdWVyeVZhbHVlc0FzU3RyKGNsYXNzIFNUUiAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0ICogX19wdHI2NCxpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5VmFsdWVzQXNTdHJAT0RCQ19TVEFURU1FTlRAQFFFQUFIUEVBUEVBVlNUUkBAUEVBUEVBS1BFQUhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1ZST09UX1RBQkxFOjpRdWVyeVZyb290Q291bnQodm9pZCkgX19wdHI2NA0KKz9RdWVyeVZyb290Q291bnRASUlTX1ZST09UX1RBQkxFQEBRRUFBS1haDQorOyBwdWJsaWM6IGNsYXNzIElJU19WUk9PVF9UQUJMRSAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeVZyb290VGFibGUodm9pZCkgX19wdHI2NA0KKz9RdWVyeVZyb290VGFibGVASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQVBFQVZJSVNfVlJPT1RfVEFCTEVAQFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENPTU1PTl9NRVRBREFUQTo6UmVhZE1ldGFEYXRhKGNsYXNzIElJU19TRVJWRVJfSU5TVEFOQ0UgKiBfX3B0cjY0LGNsYXNzIE1CICogX19wdHI2NCxjaGFyICogX19wdHI2NCxzdHJ1Y3QgX01FVEFEQVRBX0VSUk9SX0lORk8gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlYWRNZXRhRGF0YUBDT01NT05fTUVUQURBVEFAQFFFQUFIUEVBVklJU19TRVJWRVJfSU5TVEFOQ0VAQFBFQVZNQkBAUEVBRFBFQVVfTUVUQURBVEFfRVJST1JfSU5GT0BAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlJlY29yZEluc3RhbmNlU3RhcnQodm9pZCkgX19wdHI2NA0KKz9SZWNvcmRJbnN0YW5jZVN0YXJ0QElJU19TRVJWSUNFQEBRRUFBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVklDRTo6UmVjb3JkSW5zdGFuY2VTdG9wKHZvaWQpIF9fcHRyNjQNCis/UmVjb3JkSW5zdGFuY2VTdG9wQElJU19TRVJWSUNFQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfRU5EUE9JTlQ6OlJlZmVyZW5jZSh2b2lkKSBfX3B0cjY0DQorP1JlZmVyZW5jZUBJSVNfRU5EUE9JTlRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlJlZmVyZW5jZSh2b2lkKSBfX3B0cjY0DQorP1JlZmVyZW5jZUBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU1NMX0lORk86OlJlZmVyZW5jZSh2b2lkKSBfX3B0cjY0DQorP1JlZmVyZW5jZUBJSVNfU1NMX0lORk9AQFFFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgTUlNRV9NQVBfRU5UUlk6OlJlZmVyZW5jZSh2b2lkKSBfX3B0cjY0DQorP1JlZmVyZW5jZUBNSU1FX01BUF9FTlRSWUBAVUVBQUpYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNQjo6UmVmZXJlbmNlRGF0YShjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZWZlcmVuY2VEYXRhQE1CQEBRRUFBSFBFQkRLS0tQRUFQRUFYUEVBSzJLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UmVnUmVhZENvbW1vblBhcmFtcyhpbnQsaW50KSBfX3B0cjY0DQorP1JlZ1JlYWRDb21tb25QYXJhbXNASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQUhISEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUT1JFX0NIQU5HRV9OT1RJRklFUjo6UmVnaXN0ZXJTdG9yZUZvckNoYW5nZShjaGFyICogX19wdHI2NCx2b2lkICogX19wdHI2NCx2b2lkIChfX2NkZWNsKikodm9pZCAqIF9fcHRyNjQpLHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlZ2lzdGVyU3RvcmVGb3JDaGFuZ2VAU1RPUkVfQ0hBTkdFX05PVElGSUVSQEBRRUFBSFBFQURQRUFYUDZBWDFAWjFAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TU0xfSU5GTzo6UmVsZWFzZSh2b2lkICogX19wdHI2NCkNCis/UmVsZWFzZUBJSVNfU1NMX0lORk9AQFNBS1BFQVhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUmVmQmxvYjo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAUmVmQmxvYkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UmVsZWFzZUZhc3RMb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVsZWFzZUZhc3RMb2NrQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TU0xfSU5GTzo6UmVsZWFzZUZvcnRlenphSGFuZGxlcnModm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlRm9ydGV6emFIYW5kbGVyc0BJSVNfU1NMX0lORk9AQFFFQUFYWFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlJlbGVhc2VHbG9iYWxMb2NrKHZvaWQpDQorP1JlbGVhc2VHbG9iYWxMb2NrQElJU19TRVJWSUNFQEBDQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNQjo6UmVsZWFzZVJlZmVyZW5jZURhdGEodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZWxlYXNlUmVmZXJlbmNlRGF0YUBNQkBAUUVBQUhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNUT1JFX0NIQU5HRV9OT1RJRklFUjo6UmVsZWFzZVJlZ2lzdGVyZWRTdG9yZXModm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlUmVnaXN0ZXJlZFN0b3Jlc0BTVE9SRV9DSEFOR0VfTk9USUZJRVJAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWSUNFOjpSZWxlYXNlU2VydmljZUxvY2soaW50KSBfX3B0cjY0DQorP1JlbGVhc2VTZXJ2aWNlTG9ja0BJSVNfU0VSVklDRUBAUUVBQVhIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlJlbW92ZU5vcm1hbEJpbmRpbmdzKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlTm9ybWFsQmluZGluZ3NASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UmVtb3ZlU2VjdXJlQmluZGluZ3Modm9pZCkgX19wdHI2NA0KKz9SZW1vdmVTZWN1cmVCaW5kaW5nc0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUFBS1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TRVJWSUNFOjpSZW1vdmVTZXJ2ZXJJbnN0YW5jZShjbGFzcyBJSVNfU0VSVkVSX0lOU1RBTkNFICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVTZXJ2ZXJJbnN0YW5jZUBJSVNfU0VSVklDRUBAUUVBQUhQRUFWSUlTX1NFUlZFUl9JTlNUQU5DRUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1ZST09UX1RBQkxFOjpSZW1vdmVWaXJ0dWFsUm9vdChjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVWaXJ0dWFsUm9vdEBJSVNfVlJPT1RfVEFCTEVAQFFFQUFIUEVBREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19WUk9PVF9UQUJMRTo6UmVtb3ZlVmlydHVhbFJvb3RzKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlVmlydHVhbFJvb3RzQElJU19WUk9PVF9UQUJMRUBAUUVBQUhYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWSUNFOjpSZXBvcnRTZXJ2aWNlU3RhdHVzKHZvaWQpIF9fcHRyNjQNCis/UmVwb3J0U2VydmljZVN0YXR1c0BJSVNfU0VSVklDRUBAQUVBQUtYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUQ1BfQVVUSEVOVDo6UmVzZXQoaW50KSBfX3B0cjY0DQorP1Jlc2V0QFRDUF9BVVRIRU5UQEBRRUFBSEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSU5FVF9QQVJTRVI6OlJlc3RvcmVCdWZmZXIodm9pZCkgX19wdHI2NA0KKz9SZXN0b3JlQnVmZmVyQElORVRfUEFSU0VSQEBRRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBJTkVUX1BBUlNFUjo6UmVzdG9yZUxpbmUodm9pZCkgX19wdHI2NA0KKz9SZXN0b3JlTGluZUBJTkVUX1BBUlNFUkBASUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgSU5FVF9QQVJTRVI6OlJlc3RvcmVUb2tlbih2b2lkKSBfX3B0cjY0DQorP1Jlc3RvcmVUb2tlbkBJTkVUX1BBUlNFUkBASUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUU19PUEVOX0ZJTEVfSU5GTzo6UmV0cmlldmVIdHRwSW5mbyhjaGFyICogX19wdHI2NCxpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JldHJpZXZlSHR0cEluZm9AVFNfT1BFTl9GSUxFX0lORk9AQFFFQUFIUEVBRFBFQUhAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9DRVJUOjpSZXRyaWV2ZVBJTkluZm8oY2xhc3MgTUIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCxjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JldHJpZXZlUElOSW5mb0BJSVNfU0VSVkVSX0NFUlRAQEFFQUFIUEVBVk1CQEBQRUFQRUFEMTFAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUQ1BfQVVUSEVOVDo6UmV2ZXJ0VG9TZWxmKHZvaWQpIF9fcHRyNjQNCis/UmV2ZXJ0VG9TZWxmQFRDUF9BVVRIRU5UQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1COjpTYXZlKHZvaWQpIF9fcHRyNjQNCis/U2F2ZUBNQkBAUUVBQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6U2F2ZVNlcnZlclN0YXRlKHZvaWQpIF9fcHRyNjQNCis/U2F2ZVNlcnZlclN0YXRlQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IGludCBfX2NkZWNsIFNlbGVjdE1pbWVNYXBwaW5nRm9yRmlsZUV4dChjbGFzcyBJSVNfU0VSVklDRSAqIF9fcHRyNjQgY29uc3QsY2hhciBjb25zdCAqIF9fcHRyNjQsY2xhc3MgU1RSICogX19wdHI2NCxjbGFzcyBTVFIgKiBfX3B0cjY0KQ0KKz9TZWxlY3RNaW1lTWFwcGluZ0ZvckZpbGVFeHRAQFlBSFFFQVZJSVNfU0VSVklDRUBAUEVCRFBFQVZTVFJAQDJAWg0KKzsgaW50IF9fY2RlY2wgU2VydmVyQWRkcmVzc0hhc0NBUElJbmZvKGNsYXNzIE1CICogX19wdHI2NCxjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nKQ0KKz9TZXJ2ZXJBZGRyZXNzSGFzQ0FQSUluZm9AQFlBSFBFQVZNQkBAUEVBRFBFQUtLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWSUNFOjpTZXJ2aWNlQ3RybEhhbmRsZXIodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXJ2aWNlQ3RybEhhbmRsZXJASUlTX1NFUlZJQ0VAQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDT01NT05fTUVUQURBVEE6OlNldEFjY2Vzc1Blcm1zKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0QWNjZXNzUGVybXNAQ09NTU9OX01FVEFEQVRBQEBRRUFBWEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUQ1BfQVVUSEVOVDo6U2V0QWNjZXNzVG9rZW4odm9pZCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QWNjZXNzVG9rZW5AVENQX0FVVEhFTlRAQFFFQUFIUEVBWDBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpTZXRCYW5kd2lkdGhUaHJvdHRsZShjbGFzcyBNQiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QmFuZHdpZHRoVGhyb3R0bGVASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQUhQRUFWTUJAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlNldEJhbmR3aWR0aFRocm90dGxlTWF4QmxvY2tlZChjbGFzcyBNQiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QmFuZHdpZHRoVGhyb3R0bGVNYXhCbG9ja2VkQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFIUEVBVk1CQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpTZXRDb21tb25Db25maWcoc3RydWN0IF9JTkVUX0lORk9fQ09ORklHX0lORk8gKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9TZXRDb21tb25Db25maWdASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQUhQRUFVX0lORVRfSU5GT19DT05GSUdfSU5GT0BASEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBMT0dHSU5HOjpTZXRDb25maWcoc3RydWN0IF9JTkVUTE9HX0NPTkZJR1VSQVRJT05BICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRDb25maWdATE9HR0lOR0BAUUVBQUtQRUFVX0lORVRMT0dfQ09ORklHVVJBVElPTkFAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9EQkNfQ09OTkVDVElPTjo6U2V0Q29ubmVjdE9wdGlvbih1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldENvbm5lY3RPcHRpb25AT0RCQ19DT05ORUNUSU9OQEBRRUFBSEdLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgVFNfT1BFTl9GSUxFX0lORk86OlNldENvbnRleHQodm9pZCAqIF9fcHRyNjQsaW50IChfX2NkZWNsKikodm9pZCAqIF9fcHRyNjQpKSBfX3B0cjY0DQorP1NldENvbnRleHRAVFNfT1BFTl9GSUxFX0lORk9AQFFFQUFIUEVBWFA2QUgwQFpAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNQjo6U2V0RGF0YShjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0RGF0YUBNQkBAUUVBQUhQRUJES0tLUEVBWEtLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgVFNfT1BFTl9GSUxFX0lORk86OlNldEh0dHBJbmZvKGNoYXIgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9TZXRIdHRwSW5mb0BUU19PUEVOX0ZJTEVfSU5GT0BAUUVBQUhQRUFESEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBJSVNfU0VSVklDRTo6U2V0SW5zdGFuY2VDb25maWd1cmF0aW9uKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQsc3RydWN0IF9JTkVUX0lORk9fQ09ORklHX0lORk8gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEluc3RhbmNlQ29uZmlndXJhdGlvbkBJSVNfU0VSVklDRUBAQUVBQUhLS0hQRUFVX0lORVRfSU5GT19DT05GSUdfSU5GT0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElORVRfUEFSU0VSOjpTZXRMaXN0TW9kZShpbnQpIF9fcHRyNjQNCis/U2V0TGlzdE1vZGVASU5FVF9QQVJTRVJAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBUU1ZDX0NBQ0hFOjpTZXRQYXJhbWV0ZXJzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQYXJhbWV0ZXJzQFRTVkNfQ0FDSEVAQFFFQUFYS0tQRUFYQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElORVRfUEFSU0VSOjpTZXRQdHIoY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UHRyQElORVRfUEFSU0VSQEBRRUFBWFBFQURAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUQ1BfQVVUSEVOVDo6U2V0U2VjdXJpdHlDb250ZXh0VG9rZW4oc3RydWN0IF9TZWNIYW5kbGUgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LGludCAoX19jZGVjbCopKHN0cnVjdCBfU2VjSGFuZGxlICogX19wdHI2NCx2b2lkICogX19wdHI2NCksdm9pZCAqIF9fcHRyNjQsY2xhc3MgSUlTX1NTTF9JTkZPICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRTZWN1cml0eUNvbnRleHRUb2tlbkBUQ1BfQVVUSEVOVEBAUUVBQUhQRUFVX1NlY0hhbmRsZUBAUEVBWFA2QUgwMUBaMVBFQVZJSVNfU1NMX0lORk9AQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpTZXRTZXJ2ZXJTdGF0ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0U2VydmVyU3RhdGVASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQVhLS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBJSVNfU0VSVklDRTo6U2V0U2VydmljZUFkbWluSW5mbyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQsc3RydWN0IF9JTkVUX0lORk9fQ09ORklHX0lORk8gKiBfX3B0cjY0KQ0KKz9TZXRTZXJ2aWNlQWRtaW5JbmZvQElJU19TRVJWSUNFQEBTQUhLS0tIUEVBVV9JTkVUX0lORk9fQ09ORklHX0lORk9AQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVklDRTo6U2V0U2VydmljZUNvbW1lbnQoY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0U2VydmljZUNvbW1lbnRASUlTX1NFUlZJQ0VAQFFFQUFYUEVBREBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVklDRTo6U2V0U2VydmljZVNwZWNpZmljRXhpdENvZGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRTZXJ2aWNlU3BlY2lmaWNFeGl0Q29kZUBJSVNfU0VSVklDRUBAUUVBQVhLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgVENQX0FVVEhFTlQ6OlNldFRhcmdldE5hbWUoY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VGFyZ2V0TmFtZUBUQ1BfQVVUSEVOVEBAUUVBQUhQRUFEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT0RCQ19QQVJBTUVURVI6OlNldFZhbHVlQnVmZmVyKGxvbmcsbG9uZykgX19wdHI2NA0KKz9TZXRWYWx1ZUJ1ZmZlckBPREJDX1BBUkFNRVRFUkBAUUVBQUhKSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpTZXRXaW4zMkVycm9yKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0V2luMzJFcnJvckBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6U2V0WmFwUmVnS2V5KHZvaWQpIF9fcHRyNjQNCis/U2V0WmFwUmVnS2V5QElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTE9HR0lORzo6U2h1dGRvd25Mb2dnaW5nKHZvaWQpIF9fcHRyNjQNCis/U2h1dGRvd25Mb2dnaW5nQExPR0dJTkdAQFFFQUFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWSUNFOjpTaHV0ZG93blNjaGVkdWxlQ2FsbGJhY2sodm9pZCkgX19wdHI2NA0KKz9TaHV0ZG93blNjaGVkdWxlQ2FsbGJhY2tASUlTX1NFUlZJQ0VAQFFFQUFLWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlNodXRkb3duU2VydmljZSh2b2lkKSBfX3B0cjY0DQorP1NodXRkb3duU2VydmljZUBJSVNfU0VSVklDRUBAUUVBQUhYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIElORVRfUEFSU0VSOjpTa2lwVG8oY2hhcikgX19wdHI2NA0KKz9Ta2lwVG9ASU5FVF9QQVJTRVJAQFFFQUFQRUFEREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRTX0RJUkVDVE9SWV9JTkZPOjpTb3J0RmlsZUluZm9Qb2ludGVycyhpbnQgKF9fY2RlY2wqKSh2b2lkIGNvbnN0ICogX19wdHI2NCx2b2lkIGNvbnN0ICogX19wdHI2NCkpIF9fcHRyNjQNCis/U29ydEZpbGVJbmZvUG9pbnRlcnNAVFNfRElSRUNUT1JZX0lORk9AQFFFQUFIUDZBSFBFQlgwQFpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpTdGFydEluc3RhbmNlKHZvaWQpIF9fcHRyNjQNCis/U3RhcnRJbnN0YW5jZUBJSVNfU0VSVkVSX0lOU1RBTkNFQEBVRUFBS1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpTdGFydFByb2Nlc3NBc1VzZXIoY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsc3RydWN0IF9TVEFSVFVQSU5GT0EgKiBfX3B0cjY0LHN0cnVjdCBfUFJPQ0VTU19JTkZPUk1BVElPTiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U3RhcnRQcm9jZXNzQXNVc2VyQFRDUF9BVVRIRU5UQEBRRUFBSFBFQkRQRUFESEtQRUFYMFBFQVVfU1RBUlRVUElORk9BQEBQRUFVX1BST0NFU1NfSU5GT1JNQVRJT05AQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVklDRTo6U3RhcnRTZXJ2aWNlT3BlcmF0aW9uKHZvaWQgKF9fY2RlY2wqKSh1bnNpZ25lZCBsb25nKSx1bnNpZ25lZCBsb25nIChfX2NkZWNsKikodm9pZCAqIF9fcHRyNjQpLHVuc2lnbmVkIGxvbmcgKF9fY2RlY2wqKSh2b2lkICogX19wdHI2NCkpIF9fcHRyNjQNCis/U3RhcnRTZXJ2aWNlT3BlcmF0aW9uQElJU19TRVJWSUNFQEBRRUFBS1A2QVhLQFpQNkFLUEVBWEBaMkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVklDRTo6U3RhcnRVcEluZGljYXRlQ2xpZW50QWN0aXZpdHkodm9pZCkgX19wdHI2NA0KKz9TdGFydFVwSW5kaWNhdGVDbGllbnRBY3Rpdml0eUBJSVNfU0VSVklDRUBAUUVBQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9DRVJUOjpTdGF0dXModm9pZCkgX19wdHI2NA0KKz9TdGF0dXNASUlTX1NFUlZFUl9DRVJUQEBRRUFBS1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlN0b3BFbmRwb2ludHModm9pZCkgX19wdHI2NA0KKz9TdG9wRW5kcG9pbnRzQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFIWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlN0b3BFbmRwb2ludHNIZWxwZXIoc3RydWN0IF9MSVNUX0VOVFJZICogX19wdHI2NCkgX19wdHI2NA0KKz9TdG9wRW5kcG9pbnRzSGVscGVyQElJU19TRVJWRVJfSU5TVEFOQ0VAQEFFQUFIUEVBVV9MSVNUX0VOVFJZQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpTdG9wSW5zdGFuY2Uodm9pZCkgX19wdHI2NA0KKz9TdG9wSW5zdGFuY2VASUlTX1NFUlZFUl9JTlNUQU5DRUBAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBJSVNfU0VSVklDRTo6U3RvcEluc3RhbmNlUHJvY3MoY2xhc3MgSUlTX1NFUlZFUl9JTlNUQU5DRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U3RvcEluc3RhbmNlUHJvY3NASUlTX1NFUlZJQ0VAQFVFQUFYUEVBVklJU19TRVJWRVJfSU5TVEFOQ0VAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlN0b3BTZXJ2aWNlKHZvaWQpIF9fcHRyNjQNCis/U3RvcFNlcnZpY2VASUlTX1NFUlZJQ0VAQEFFQUFYWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIE9EQkNfQ09OTkVDVElPTjo6U3VjY2VzcyhzaG9ydCkNCis/U3VjY2Vzc0BPREJDX0NPTk5FQ1RJT05AQFNBSEZAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIExPR0dJTkc6OlRlcm1pbmF0ZSh2b2lkKQ0KKz9UZXJtaW5hdGVATE9HR0lOR0BAU0FLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWSUNFOjpUZXJtaW5hdGVEaXNjb3Zlcnkodm9pZCkgX19wdHI2NA0KKz9UZXJtaW5hdGVEaXNjb3ZlcnlASUlTX1NFUlZJQ0VAQFFFQUFLWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIElORVRfUEFSU0VSOjpUZXJtaW5hdGVMaW5lKHZvaWQpIF9fcHRyNjQNCis/VGVybWluYXRlTGluZUBJTkVUX1BBUlNFUkBASUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgSU5FVF9QQVJTRVI6OlRlcm1pbmF0ZVRva2VuKGNoYXIpIF9fcHRyNjQNCis/VGVybWluYXRlVG9rZW5ASU5FVF9QQVJTRVJAQElFQUFYREBaDQorVHNBZGRNZXRhRGF0YQ0KKzsgdm9pZCBfX2NkZWNsIFRzQWRkUmVmTWV0YURhdGEodm9pZCAqIF9fcHRyNjQpDQorP1RzQWRkUmVmTWV0YURhdGFAQFlBWFBFQVhAWg0KK1RzQWxsb2NhdGUNCitUc0FsbG9jYXRlRXgNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBUc0FwaUFjY2Vzc0NoZWNrKHVuc2lnbmVkIGxvbmcpDQorP1RzQXBpQWNjZXNzQ2hlY2tAQFlBS0tAWg0KK1RzQ2FjaGVEaXJlY3RvcnlCbG9iDQorVHNDYWNoZUZsdXNoDQorVHNDYWNoZUZsdXNoRGVtdXgNCitUc0NoZWNrSW5DYWNoZWRCbG9iDQorVHNDaGVja0luT3JGcmVlDQorVHNDaGVja091dENhY2hlZEJsb2INCitUc0Nsb3NlSGFuZGxlDQorVHNDbG9zZVVSSUZpbGUNCitUc0NyZWF0ZUVUYWdGcm9tSGFuZGxlDQorVHNDcmVhdGVGaWxlDQorVHNDcmVhdGVGaWxlRnJvbVVSSQ0KK1RzRGVDYWNoZUNhY2hlZEJsb2INCitUc0RlbGV0ZU9uQ2xvc2UNCis7IGludCBfX2NkZWNsIFRzRGVsZXRlVXNlclRva2VuKGNsYXNzIENBQ0hFRF9UT0tFTiAqIF9fcHRyNjQpDQorP1RzRGVsZXRlVXNlclRva2VuQEBZQUhQRUFWQ0FDSEVEX1RPS0VOQEBAWg0KK1RzRGVyZWZVUklGaWxlDQorVHNEdW1wQ2FjaGVUb0h0bWwNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6VHNFbnVtVmlydHVhbFJvb3RzKGludCAoX19jZGVjbCopKHZvaWQgKiBfX3B0cjY0LGNsYXNzIE1CICogX19wdHI2NCxzdHJ1Y3QgX1ZJUlRVQUxfUk9PVCAqIF9fcHRyNjQpLHZvaWQgKiBfX3B0cjY0LGNsYXNzIE1CICogX19wdHI2NCkgX19wdHI2NA0KKz9Uc0VudW1WaXJ0dWFsUm9vdHNASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQUhQNkFIUEVBWFBFQVZNQkBAUEVBVV9WSVJUVUFMX1JPT1RAQEBaMDFAWg0KK1RzRXhwaXJlQ2FjaGVkQmxvYg0KK1RzRmluZE1ldGFEYXRhDQorVHNGbHVzaEZpbGVzV2l0aENvbnRleHQNCitUc0ZsdXNoTWV0YUNhY2hlDQorVHNGbHVzaFVSTA0KK1RzRnJlZQ0KKzsgaW50IF9fY2RlY2wgVHNGcmVlRGlyZWN0b3J5TGlzdGluZyhjbGFzcyBUU1ZDX0NBQ0hFIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBUU19ESVJFQ1RPUllfSEVBREVSICogX19wdHI2NCkNCis/VHNGcmVlRGlyZWN0b3J5TGlzdGluZ0BAWUFIQUVCVlRTVkNfQ0FDSEVAQFBFQVZUU19ESVJFQ1RPUllfSEVBREVSQEBAWg0KK1RzRnJlZU1ldGFEYXRhDQorOyBpbnQgX19jZGVjbCBUc0dldERpcmVjdG9yeUxpc3RpbmcoY2xhc3MgVFNWQ19DQUNIRSBjb25zdCAmIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQsY2xhc3MgVFNfRElSRUNUT1JZX0hFQURFUiAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9Uc0dldERpcmVjdG9yeUxpc3RpbmdAQFlBSEFFQlZUU1ZDX0NBQ0hFQEBQRUJEUEVBWFBFQVBFQVZUU19ESVJFQ1RPUllfSEVBREVSQEBAWg0KK1RzR2V0RmlsZVNlY0Rlc2MNCis7IGludCBfX2NkZWNsIFRzR2V0U2VjcmV0Vyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsY2xhc3MgQlVGRkVSICogX19wdHI2NCkNCis/VHNHZXRTZWNyZXRXQEBZQUhQRUFHUEVBVkJVRkZFUkBAQFoNCis7IGludCBfX2NkZWNsIFRzSW1wZXJzb25hdGVVc2VyKGNsYXNzIENBQ0hFRF9UT0tFTiAqIF9fcHRyNjQpDQorP1RzSW1wZXJzb25hdGVVc2VyQEBZQUhQRUFWQ0FDSEVEX1RPS0VOQEBAWg0KK1RzTGFzdFdyaXRlVGltZUZyb21IYW5kbGUNCis7IGNsYXNzIENBQ0hFRF9UT0tFTiAqIF9fcHRyNjQgX19jZGVjbCBUc0xvZ29uVXNlcihjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCxpbnQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQsY2xhc3MgSUlTX1NFUlZFUl9JTlNUQU5DRSAqIF9fcHRyNjQsY2xhc3MgVENQX0FVVEhFTlRfSU5GTyAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQsdW5pb24gX0xBUkdFX0lOVEVHRVIgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpDQorP1RzTG9nb25Vc2VyQEBZQVBFQVZDQUNIRURfVE9LRU5AQFBFQUQwUEVBSDFQRUFWSUlTX1NFUlZFUl9JTlNUQU5DRUBAUEVBVlRDUF9BVVRIRU5UX0lORk9AQDBQRUFUX0xBUkdFX0lOVEVHRVJAQDFAWg0KK1RzTWFrZVdpZGVQYXRoDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpUc01pcnJvclZpcnR1YWxSb290cyhzdHJ1Y3QgX0lORVRfSU5GT19DT05GSUdfSU5GTyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VHNNaXJyb3JWaXJ0dWFsUm9vdHNASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQVhQRUFVX0lORVRfSU5GT19DT05GSUdfSU5GT0BAQFoNCis7IGludCBfX2NkZWNsIFRzUHJvY2Vzc0dhdGV3YXlSZXF1ZXN0KHZvaWQgKiBfX3B0cjY0LHN0cnVjdCBfSUdBVEVXQVlfUkVRVUVTVCAqIF9fcHRyNjQsaW50IChfX2NkZWNsKikodm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSkNCis/VHNQcm9jZXNzR2F0ZXdheVJlcXVlc3RAQFlBSFBFQVhQRUFVX0lHQVRFV0FZX1JFUVVFU1RAQFA2QUgwS1BFQUVLQFpAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpUc1JlYWRWaXJ0dWFsUm9vdHMoc3RydWN0IF9NRF9DSEFOR0VfT0JKRUNUX0EgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1RzUmVhZFZpcnR1YWxSb290c0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUFBSFBFQVVfTURfQ0hBTkdFX09CSkVDVF9BQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpUc1JlY3Vyc2l2ZUVudW1WaXJ0dWFsUm9vdHMoaW50IChfX2NkZWNsKikodm9pZCAqIF9fcHRyNjQsY2xhc3MgTUIgKiBfX3B0cjY0LHN0cnVjdCBfVklSVFVBTF9ST09UICogX19wdHI2NCksdm9pZCAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/VHNSZWN1cnNpdmVFbnVtVmlydHVhbFJvb3RzQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFIUDZBSFBFQVhQRUFWTUJAQFBFQVVfVklSVFVBTF9ST09UQEBAWjBQRUFESzBIQFoNCitUc1JlZmVyZW5jZU1ldGFEYXRhDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgVHNTZXRTZWNyZXRXKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/VHNTZXRTZWNyZXRXQEBZQUtQRUFHMEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpUc1NldFZpcnR1YWxSb290cyhzdHJ1Y3QgX0lORVRfSU5GT19DT05GSUdfSU5GTyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VHNTZXRWaXJ0dWFsUm9vdHNASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQUhQRUFVX0lORVRfSU5GT19DT05GSUdfSU5GT0BAQFoNCis7IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgVHNUb2tlblRvSGFuZGxlKGNsYXNzIENBQ0hFRF9UT0tFTiAqIF9fcHRyNjQpDQorP1RzVG9rZW5Ub0hhbmRsZUBAWUFQRUFYUEVBVkNBQ0hFRF9UT0tFTkBAQFoNCis7IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgVHNUb2tlblRvSW1wSGFuZGxlKGNsYXNzIENBQ0hFRF9UT0tFTiAqIF9fcHRyNjQpDQorP1RzVG9rZW5Ub0ltcEhhbmRsZUBAWUFQRUFYUEVBVkNBQ0hFRF9UT0tFTkBAQFoNCitUc3VuYW1pX0luaXRpYWxpemUNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpVbmJpbmRIZWxwZXIoc3RydWN0IF9MSVNUX0VOVFJZICogX19wdHI2NCkgX19wdHI2NA0KKz9VbmJpbmRIZWxwZXJASUlTX1NFUlZFUl9JTlNUQU5DRUBAQUVBQUtQRUFVX0xJU1RfRU5UUllAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpVbmJpbmRJbnN0YW5jZSh2b2lkKSBfX3B0cjY0DQorP1VuYmluZEluc3RhbmNlQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFLWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TU0xfSU5GTzo6VW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/VW5sb2NrQElJU19TU0xfSU5GT0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1ZST09UX1RBQkxFOjpVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9VbmxvY2tASUlTX1ZST09UX1RBQkxFQEBRRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HR0lORzo6VW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/VW5sb2NrQExPR0dJTkdAQEFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlVubG9ja1RoaXModm9pZCkgX19wdHI2NA0KKz9VbmxvY2tUaGlzQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNUT1JFX0NIQU5HRV9OT1RJRklFUjo6VW5yZWdpc3RlclN0b3JlKGNoYXIgKiBfX3B0cjY0LHZvaWQgKF9fY2RlY2wqKSh2b2lkICogX19wdHI2NCksdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VW5yZWdpc3RlclN0b3JlQFNUT1JFX0NIQU5HRV9OT1RJRklFUkBAUUVBQVhQRUFEUDZBWFBFQVhAWjFAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlVwZGF0ZUJpbmRpbmdzSGVscGVyKGludCkgX19wdHI2NA0KKz9VcGRhdGVCaW5kaW5nc0hlbHBlckBJSVNfU0VSVkVSX0lOU1RBTkNFQEBBRUFBS0hAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUQ1BfQVVUSEVOVDo6VXBkYXRlQ2xpZW50Q2VydEZsYWdzKHVuc2lnbmVkIGxvbmcsaW50ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1VwZGF0ZUNsaWVudENlcnRGbGFnc0BUQ1BfQVVUSEVOVEBAUUVBQUhLUEVBSFBFQUVLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlVwZGF0ZU5vcm1hbEJpbmRpbmdzKHZvaWQpIF9fcHRyNjQNCis/VXBkYXRlTm9ybWFsQmluZGluZ3NASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6VXBkYXRlU2VjdXJlQmluZGluZ3Modm9pZCkgX19wdHI2NA0KKz9VcGRhdGVTZWN1cmVCaW5kaW5nc0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVklDRTo6VXBkYXRlU2VydmljZVN0YXR1cyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1VwZGF0ZVNlcnZpY2VTdGF0dXNASUlTX1NFUlZJQ0VAQFFFQUFLS0tLS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TU0xfSU5GTzo6VXNlRFNNYXBwZXIodm9pZCkgX19wdHI2NA0KKz9Vc2VEU01hcHBlckBJSVNfU1NMX0lORk9AQFFFQUFIWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIElJU19TRVJWRVJfQ0VSVDo6VXNlUHJvZ3JhbW1hdGljUElORW50cnkoY2xhc3MgTUIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1VzZVByb2dyYW1tYXRpY1BJTkVudHJ5QElJU19TRVJWRVJfQ0VSVEBAQUVBQUhQRUFWTUJAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19DVEw6OlZlcmlmeVNpZ25hdHVyZSh2b2lkICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1ZlcmlmeVNpZ25hdHVyZUBJSVNfQ1RMQEBRRUFBSFBFQVBFQVhLUEVBSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRTX09QRU5fRklMRV9JTkZPOjpXZWFrRVRhZyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1dlYWtFVGFnQFRTX09QRU5fRklMRV9JTkZPQEBRRUJBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpaYXBJbnN0YW5jZU1CVHJlZSh2b2lkKSBfX3B0cjY0DQorP1phcEluc3RhbmNlTUJUcmVlQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IHZvaWQgX19jZGVjbCBfVHNWYWxpZGF0ZU1ldGFDYWNoZSh2b2lkKQ0KKz9fVHNWYWxpZGF0ZU1ldGFDYWNoZUBAWUFYWFoNCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBsb25nIChfX2NkZWNsKiBfX3B0cjY0IExPR0dJTkc6Om1fQ29tTG9nQ3VzdG9tSW5mb3JtYXRpb24pKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsc3RydWN0IF9DVVNUT01fTE9HX0RBVEEgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0KQ0KKz9tX0NvbUxvZ0N1c3RvbUluZm9ybWF0aW9uQExPR0dJTkdAQDBQNkFLUEVBWEtQRUFVX0NVU1RPTV9MT0dfREFUQUBAUEVBREBaRUEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGxvbmcgKF9fY2RlY2wqIF9fcHRyNjQgTE9HR0lORzo6bV9Db21Mb2dEbGxDbGVhblVwKSh2b2lkKQ0KKz9tX0NvbUxvZ0RsbENsZWFuVXBATE9HR0lOR0BAMFA2QUtYWkVBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBsb25nIChfX2NkZWNsKiBfX3B0cjY0IExPR0dJTkc6Om1fQ29tTG9nRGxsU3RhcnR1cCkodm9pZCkNCis/bV9Db21Mb2dEbGxTdGFydHVwQExPR0dJTkdAQDBQNkFLWFpFQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgbG9uZyAoX19jZGVjbCogX19wdHI2NCBMT0dHSU5HOjptX0NvbUxvZ0dldENvbmZpZykodm9pZCAqIF9fcHRyNjQsc3RydWN0IF9JTkVUTE9HX0NPTkZJR1VSQVRJT05BICogX19wdHI2NCkNCis/bV9Db21Mb2dHZXRDb25maWdATE9HR0lOR0BAMFA2QUtQRUFYUEVBVV9JTkVUTE9HX0NPTkZJR1VSQVRJT05BQEBAWkVBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkICogX19wdHI2NCAoX19jZGVjbCogX19wdHI2NCBMT0dHSU5HOjptX0NvbUxvZ0luaXRpYWxpemVMb2cpKGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KQ0KKz9tX0NvbUxvZ0luaXRpYWxpemVMb2dATE9HR0lOR0BAMFA2QVBFQVhQRUJEMFBFQVhAWkVBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBsb25nIChfX2NkZWNsKiBfX3B0cjY0IExPR0dJTkc6Om1fQ29tTG9nTG9nSW5mb3JtYXRpb24pKHZvaWQgKiBfX3B0cjY0LHN0cnVjdCBfSU5FVExPR19JTkZPUk1BVElPTiBjb25zdCAqIF9fcHRyNjQpDQorP21fQ29tTG9nTG9nSW5mb3JtYXRpb25ATE9HR0lOR0BAMFA2QUtQRUFYUEVCVV9JTkVUTE9HX0lORk9STUFUSU9OQEBAWkVBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBsb25nIChfX2NkZWNsKiBfX3B0cjY0IExPR0dJTkc6Om1fQ29tTG9nTm90aWZ5Q2hhbmdlKSh2b2lkICogX19wdHI2NCkNCis/bV9Db21Mb2dOb3RpZnlDaGFuZ2VATE9HR0lOR0BAMFA2QUtQRUFYQFpFQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgbG9uZyAoX19jZGVjbCogX19wdHI2NCBMT0dHSU5HOjptX0NvbUxvZ1F1ZXJ5RXh0cmFMb2dGaWVsZHMpKHZvaWQgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KQ0KKz9tX0NvbUxvZ1F1ZXJ5RXh0cmFMb2dGaWVsZHNATE9HR0lOR0BAMFA2QUtQRUFYUEVBRFBFQUtAWkVBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBsb25nIChfX2NkZWNsKiBfX3B0cjY0IExPR0dJTkc6Om1fQ29tTG9nU2V0Q29uZmlnKSh2b2lkICogX19wdHI2NCxzdHJ1Y3QgX0lORVRMT0dfQ09ORklHVVJBVElPTkEgY29uc3QgKiBfX3B0cjY0KQ0KKz9tX0NvbUxvZ1NldENvbmZpZ0BMT0dHSU5HQEAwUDZBS1BFQVhQRUJVX0lORVRMT0dfQ09ORklHVVJBVElPTkFAQEBaRUEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGxvbmcgKF9fY2RlY2wqIF9fcHRyNjQgTE9HR0lORzo6bV9Db21Mb2dUZXJtaW5hdGVMb2cpKHZvaWQgKiBfX3B0cjY0KQ0KKz9tX0NvbUxvZ1Rlcm1pbmF0ZUxvZ0BMT0dHSU5HQEAwUDZBS1BFQVhAWkVBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3B0cjY0ICBfX3B0cjY0IExPR0dJTkc6Om1faENvbUxvZ0RMTA0KKz9tX2hDb21Mb2dETExATE9HR0lOR0BAMFBFQVVISU5TVEFOQ0VfX0BARUEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCAgSUlTX1NFUlZFUl9DRVJUOjptX2hGb3J0ZXp6YUNTUA0KKz9tX2hGb3J0ZXp6YUNTUEBJSVNfU0VSVkVSX0NFUlRAQDJfS0EgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCAqIF9fcHRyNjQgIF9fcHRyNjQgSUlTX1NFUlZFUl9DRVJUOjptX2hGb3J0ZXp6YUN0eHQNCis/bV9oRm9ydGV6emFDdHh0QElJU19TRVJWRVJfQ0VSVEBAMlBFQVhFQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IElVbmtub3duICogX19wdHI2NCAgX19wdHI2NCBJSVNfU0VSVklDRTo6c21fTUROc2VPYmplY3QNCis/c21fTUROc2VPYmplY3RASUlTX1NFUlZJQ0VAQDBQRUFVSVVua25vd25AQEVBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0ICBfX3B0cjY0IElJU19TRVJWSUNFOjpzbV9NRE9iamVjdA0KKz9zbV9NRE9iamVjdEBJSVNfU0VSVklDRUBAMFBFQVVJVW5rbm93bkBARUEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIHN0cnVjdCBfTElTVF9FTlRSWSAgSUlTX1NFUlZJQ0U6OnNtX1NlcnZpY2VJbmZvTGlzdEhlYWQNCis/c21fU2VydmljZUluZm9MaXN0SGVhZEBJSVNfU0VSVklDRUBAMFVfTElTVF9FTlRSWUBAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IF9SVExfQ1JJVElDQUxfU0VDVElPTiAgSUlTX1NFUlZJQ0U6OnNtX2NzTG9jaw0KKz9zbV9jc0xvY2tASUlTX1NFUlZJQ0VAQDBVX1JUTF9DUklUSUNBTF9TRUNUSU9OQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgIElJU19TRVJWSUNFOjpzbV9mSW5pdGlhbGl6ZWQNCis/c21fZkluaXRpYWxpemVkQElJU19TRVJWSUNFQEAwSEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIElTUlBDICogX19wdHI2NCAgX19wdHI2NCBJSVNfU0VSVklDRTo6c21faXNycGMNCis/c21faXNycGNASUlTX1NFUlZJQ0VAQDBQRUFWSVNSUENAQEVBIERBVEENCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBfVFJBQ0VfTE9HICogX19wdHI2NCAgX19wdHI2NCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpzbV9wRGJnUmVmVHJhY2VMb2cNCis/c21fcERiZ1JlZlRyYWNlTG9nQElJU19TRVJWRVJfSU5TVEFOQ0VAQDJQRUFVX1RSQUNFX0xPR0BARUEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IF9UUkFDRV9MT0cgKiBfX3B0cjY0ICBfX3B0cjY0IElJU19TRVJWSUNFOjpzbV9wRGJnUmVmVHJhY2VMb2cNCis/c21fcERiZ1JlZlRyYWNlTG9nQElJU19TRVJWSUNFQEAyUEVBVV9UUkFDRV9MT0dAQEVBIERBVEENCis7IGludCBfX2NkZWNsIHV1ZGVjb2RlKGNoYXIgKiBfX3B0cjY0LGNsYXNzIEJVRkZFUiAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsaW50KQ0KKz91dWRlY29kZUBAWUFIUEVBRFBFQVZCVUZGRVJAQFBFQUtIQFoNCis7IGludCBfX2NkZWNsIHV1ZW5jb2RlKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsY2xhc3MgQlVGRkVSICogX19wdHI2NCxpbnQpDQorP3V1ZW5jb2RlQEBZQUhQRUFFS1BFQVZCVUZGRVJAQEhAWg0KK0NvbnZlcnRTdHJpbmdUb1JwYw0KK0NvbnZlcnRVbmljb2RlVG9BbnNpDQorRG9TeW5jaHJvbm91c1JlYWRGaWxlDQorRnJlZVJwY1N0cmluZw0KK0luZXROdG9hDQorSW5pdENvbW1vbkRsbHMNCitLbHVkZ2VNdWx0aVN6DQorUmVhZFJlZ1N0cmluZw0KK1JlYWRSZWdpc3RyeUR3b3JkQQ0KK1JlYWRSZWdpc3RyeVN0cg0KK1JlYWRSZWdpc3RyeVN0cmluZw0KK1RjcFNvY2tSZWN2DQorVGNwU29ja1NlbmQNCitUY3BTb2NrVGVzdA0KK1Rlcm1pbmF0ZUNvbW1vbkRsbHMNCitUc0R1bXBDYWNoZUNvdW50ZXJzDQorV2FpdEZvclNvY2tldFdvcmtlcg0KK1dyaXRlUmVnaXN0cnlEd29yZEENCitXcml0ZVJlZ2lzdHJ5U3RyaW5nQQ0KK1dyaXRlUmVnaXN0cnlTdHJpbmdXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaW5mb2N0cnMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaW5mb2N0cnMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNiODhhZWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pbmZvY3Rycy5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJTkZPQ1RSUy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSU5GT0NUUlMuZGxsDQorRVhQT1JUUw0KK09wZW5JTkZPUGVyZm9ybWFuY2VEYXRhDQorQ29sbGVjdElORk9QZXJmb3JtYW5jZURhdGENCitDbG9zZUlORk9QZXJmb3JtYW5jZURhdGENCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pbmZvc29mdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbmZvc29mdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTI1NDhhZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2luZm9zb2Z0LmRlZgpAQCAtMCwwICsxLDQ5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGluZm9zb2Z0LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpbmZvc29mdC5kbGwNCitFWFBPUlRTDQorSUlhcHANCitJSWFwcF9tZW0NCitJSWJ1Zg0KK0lJYnVmX21lbQ0KK0lJZGINCitJSWRiX21lbQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorSUl3b3JkDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorSUlHZXRBcHBFbGVtDQorSUlkaWFnb2ZmDQorSUlHZXRGTQ0KK0lJZGlhZ29uDQorTlRGTUNsb3NlDQorTlRGTUNvbXBhcmUNCitOVEZNQ29weQ0KK05URk1DcmVhdGUNCitOVEZNRGVsZXRlDQorTlRGTURlc3RydWN0DQorTlRGTUZsdXNoTWFwcGluZw0KK05URk1HZXREaXJ0eUJpdA0KK05URk1HZXRMZW5ndGgNCitOVEZNR2V0TWFwSGFuZGxlDQorTlRGTUdldE1hcHBpbmcNCitOVEZNR2V0TmFtZQ0KK05URk1HZXRQb3NpdGlvbg0KK05URk1HZXRTdGF0dXMNCitOVEZNTG9ja01hcHBpbmcNCitOVEZNT3Blbg0KK05URk1SZWFkDQorTlRGTVJlbGVhc2VNYXBIYW5kbGUNCitOVEZNU2Vlaw0KK05URk1TZXREaXJ0eUJpdA0KK05URk1TZXRMZW5ndGgNCitOVEZNU2V0TWFwcGluZw0KK05URk1TZXRNdXRleFByb2MNCitOVEZNU2V0TmFtZQ0KK05URk1VbmxvY2tNYXBwaW5nDQorTlRGTVdyaXRlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaW5pdHBraS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbml0cGtpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41M2UzOTViCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaW5pdHBraS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJTklUUEtJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJTklUUEtJLmRsbA0KK0VYUE9SVFMNCitEbGxJbnN0YWxsDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorSW5pdGlhbGl6ZVBLSQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2lucHV0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lucHV0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NWQwYjRjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaW5wdXQuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJTlBVVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSU5QVVQuZGxsDQorRVhQT1JUUw0KK0NQbEFwcGxldA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2luc2VuZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pbnNlbmcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE5YTdhOGIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pbnNlbmcuZGVmCkBAIC0wLDAgKzEsMjAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaW5zZW5nLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpbnNlbmcuZGxsDQorRVhQT1JUUw0KK0NoZWNrRm9yVmVyc2lvbkNvbmZsaWN0DQorQ2hlY2tUcnVzdA0KK0NoZWNrVHJ1c3RFeA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0Rvd25sb2FkRmlsZQ0KK0dldElDaWZGaWxlRnJvbUZpbGUNCitHZXRJQ2lmUldGaWxlRnJvbUZpbGUNCitQdXJnZURvd25sb2FkRGlyZWN0b3J5DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaXBobHBhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaXBobHBhcGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgwMjUyM2UKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pcGhscGFwaS5kZWYKQEAgLTAsMCArMSwxNjUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaXBobHBhcGkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlwaGxwYXBpLmRsbA0KK0VYUE9SVFMNCitBZGRJUEFkZHJlc3MNCitBbGxvY2F0ZUFuZEdldEFycEVudFRhYmxlRnJvbVN0YWNrDQorQWxsb2NhdGVBbmRHZXRJZlRhYmxlRnJvbVN0YWNrDQorQWxsb2NhdGVBbmRHZXRJcEFkZHJUYWJsZUZyb21TdGFjaw0KK0FsbG9jYXRlQW5kR2V0SXBGb3J3YXJkVGFibGVGcm9tU3RhY2sNCitBbGxvY2F0ZUFuZEdldElwTmV0VGFibGVGcm9tU3RhY2sNCitBbGxvY2F0ZUFuZEdldFRjcEV4VGFibGUyRnJvbVN0YWNrDQorQWxsb2NhdGVBbmRHZXRUY3BFeFRhYmxlRnJvbVN0YWNrDQorQWxsb2NhdGVBbmRHZXRUY3BUYWJsZUZyb21TdGFjaw0KK0FsbG9jYXRlQW5kR2V0VWRwRXhUYWJsZTJGcm9tU3RhY2sNCitBbGxvY2F0ZUFuZEdldFVkcEV4VGFibGVGcm9tU3RhY2sNCitBbGxvY2F0ZUFuZEdldFVkcFRhYmxlRnJvbVN0YWNrDQorQ2FuY2VsSVBDaGFuZ2VOb3RpZnkNCitDYW5jZWxTZWN1cml0eUhlYWx0aENoYW5nZU5vdGlmeQ0KK0NyZWF0ZUlwRm9yd2FyZEVudHJ5DQorQ3JlYXRlSXBOZXRFbnRyeQ0KK0NyZWF0ZVByb3h5QXJwRW50cnkNCitEZWxldGVJUEFkZHJlc3MNCitEZWxldGVJcEZvcndhcmRFbnRyeQ0KK0RlbGV0ZUlwTmV0RW50cnkNCitEZWxldGVQcm94eUFycEVudHJ5DQorRGlzYWJsZU1lZGlhU2Vuc2UNCitFbmFibGVSb3V0ZXINCitGbHVzaElwTmV0VGFibGUNCitGbHVzaElwTmV0VGFibGVGcm9tU3RhY2sNCitHZXRBZGFwdGVySW5kZXgNCitHZXRBZGFwdGVyT3JkZXJNYXANCitHZXRBZGFwdGVyc0FkZHJlc3Nlcw0KK0dldEFkYXB0ZXJzSW5mbw0KK0dldEJlc3RJbnRlcmZhY2UNCitHZXRCZXN0SW50ZXJmYWNlRXgNCitHZXRCZXN0SW50ZXJmYWNlRnJvbVN0YWNrDQorR2V0QmVzdFJvdXRlDQorR2V0QmVzdFJvdXRlRnJvbVN0YWNrDQorR2V0RXh0ZW5kZWRUY3BUYWJsZQ0KK0dldEV4dGVuZGVkVWRwVGFibGUNCitHZXRGcmllbmRseUlmSW5kZXgNCitHZXRJY21wU3RhdGlzdGljcw0KK0dldEljbXBTdGF0aXN0aWNzRXgNCitHZXRJY21wU3RhdHNGcm9tU3RhY2sNCitHZXRJY21wU3RhdHNGcm9tU3RhY2tFeA0KK0dldElmRW50cnkNCitHZXRJZkVudHJ5RnJvbVN0YWNrDQorR2V0SWZUYWJsZQ0KK0dldElmVGFibGVGcm9tU3RhY2sNCitHZXRJZ21wTGlzdA0KK0dldEludGVyZmFjZUluZm8NCitHZXRJcEFkZHJUYWJsZQ0KK0dldElwQWRkclRhYmxlRnJvbVN0YWNrDQorR2V0SXBFcnJvclN0cmluZw0KK0dldElwRm9yd2FyZFRhYmxlDQorR2V0SXBGb3J3YXJkVGFibGVGcm9tU3RhY2sNCitHZXRJcE5ldFRhYmxlDQorR2V0SXBOZXRUYWJsZUZyb21TdGFjaw0KK0dldElwU3RhdGlzdGljcw0KK0dldElwU3RhdGlzdGljc0V4DQorR2V0SXBTdGF0c0Zyb21TdGFjaw0KK0dldElwU3RhdHNGcm9tU3RhY2tFeA0KK0dldE5ldHdvcmtQYXJhbXMNCitHZXROdW1iZXJPZkludGVyZmFjZXMNCitHZXRPd25lck1vZHVsZUZyb21UY3A2RW50cnkNCitHZXRPd25lck1vZHVsZUZyb21UY3BFbnRyeQ0KK0dldE93bmVyTW9kdWxlRnJvbVVkcDZFbnRyeQ0KK0dldE93bmVyTW9kdWxlRnJvbVVkcEVudHJ5DQorR2V0UGVyQWRhcHRlckluZm8NCitHZXRSVFRBbmRIb3BDb3VudA0KK0dldFRjcEV4VGFibGUyRnJvbVN0YWNrDQorR2V0VGNwU3RhdGlzdGljcw0KK0dldFRjcFN0YXRpc3RpY3NFeA0KK0dldFRjcFN0YXRzRnJvbVN0YWNrDQorR2V0VGNwU3RhdHNGcm9tU3RhY2tFeA0KK0dldFRjcFRhYmxlDQorR2V0VGNwVGFibGVGcm9tU3RhY2sNCitHZXRVZHBFeFRhYmxlMkZyb21TdGFjaw0KK0dldFVkcFN0YXRpc3RpY3MNCitHZXRVZHBTdGF0aXN0aWNzRXgNCitHZXRVZHBTdGF0c0Zyb21TdGFjaw0KK0dldFVkcFN0YXRzRnJvbVN0YWNrRXgNCitHZXRVZHBUYWJsZQ0KK0dldFVkcFRhYmxlRnJvbVN0YWNrDQorR2V0VW5pRGlyZWN0aW9uYWxBZGFwdGVySW5mbw0KK0ljbXA2Q3JlYXRlRmlsZQ0KK0ljbXA2UGFyc2VSZXBsaWVzDQorSWNtcDZTZW5kRWNobzINCitJY21wQ2xvc2VIYW5kbGUNCitJY21wQ3JlYXRlRmlsZQ0KK0ljbXBQYXJzZVJlcGxpZXMNCitJY21wU2VuZEVjaG8NCitJY21wU2VuZEVjaG8yDQorSW50ZXJuYWxDcmVhdGVJcEZvcndhcmRFbnRyeQ0KK0ludGVybmFsQ3JlYXRlSXBOZXRFbnRyeQ0KK0ludGVybmFsRGVsZXRlSXBGb3J3YXJkRW50cnkNCitJbnRlcm5hbERlbGV0ZUlwTmV0RW50cnkNCitJbnRlcm5hbEdldElmVGFibGUNCitJbnRlcm5hbEdldElwQWRkclRhYmxlDQorSW50ZXJuYWxHZXRJcEZvcndhcmRUYWJsZQ0KK0ludGVybmFsR2V0SXBOZXRUYWJsZQ0KK0ludGVybmFsR2V0VGNwVGFibGUNCitJbnRlcm5hbEdldFVkcFRhYmxlDQorSW50ZXJuYWxTZXRJZkVudHJ5DQorSW50ZXJuYWxTZXRJcEZvcndhcmRFbnRyeQ0KK0ludGVybmFsU2V0SXBOZXRFbnRyeQ0KK0ludGVybmFsU2V0SXBTdGF0cw0KK0ludGVybmFsU2V0VGNwRW50cnkNCitJcFJlbGVhc2VBZGRyZXNzDQorSXBSZW5ld0FkZHJlc3MNCitJc0xvY2FsQWRkcmVzcw0KK05UUFRpbWVUb05URmlsZVRpbWUNCitOVFRpbWVUb05UUFRpbWUNCitOaEdldEd1aWRGcm9tSW50ZXJmYWNlTmFtZQ0KK05oR2V0SW50ZXJmYWNlTmFtZUZyb21EZXZpY2VHdWlkDQorTmhHZXRJbnRlcmZhY2VOYW1lRnJvbUd1aWQNCitOaHBBbGxvY2F0ZUFuZEdldEludGVyZmFjZUluZm9Gcm9tU3RhY2sNCitOaHBHZXRJbnRlcmZhY2VJbmRleEZyb21TdGFjaw0KK05vdGlmeUFkZHJDaGFuZ2UNCitOb3RpZnlSb3V0ZUNoYW5nZQ0KK05vdGlmeVJvdXRlQ2hhbmdlRXgNCitOb3RpZnlTZWN1cml0eUhlYWx0aENoYW5nZQ0KK1BmQWRkRmlsdGVyc1RvSW50ZXJmYWNlDQorUGZBZGRHbG9iYWxGaWx0ZXJUb0ludGVyZmFjZQ0KK1BmQmluZEludGVyZmFjZVRvSVBBZGRyZXNzDQorUGZCaW5kSW50ZXJmYWNlVG9JbmRleA0KK1BmQ3JlYXRlSW50ZXJmYWNlDQorUGZEZWxldGVJbnRlcmZhY2UNCitQZkRlbGV0ZUxvZw0KK1BmR2V0SW50ZXJmYWNlU3RhdGlzdGljcw0KK1BmTWFrZUxvZw0KK1BmUmViaW5kRmlsdGVycw0KK1BmUmVtb3ZlRmlsdGVySGFuZGxlcw0KK1BmUmVtb3ZlRmlsdGVyc0Zyb21JbnRlcmZhY2UNCitQZlJlbW92ZUdsb2JhbEZpbHRlckZyb21JbnRlcmZhY2UNCitQZlNldExvZ0J1ZmZlcg0KK1BmVGVzdFBhY2tldA0KK1BmVW5CaW5kSW50ZXJmYWNlDQorUmVzdG9yZU1lZGlhU2Vuc2UNCitTZW5kQVJQDQorU2V0QWRhcHRlcklwQWRkcmVzcw0KK1NldEJsb2NrUm91dGVzDQorU2V0SWZFbnRyeQ0KK1NldElmRW50cnlUb1N0YWNrDQorU2V0SXBGb3J3YXJkRW50cnkNCitTZXRJcEZvcndhcmRFbnRyeVRvU3RhY2sNCitTZXRJcE11bHRpaG9wUm91dGVFbnRyeVRvU3RhY2sNCitTZXRJcE5ldEVudHJ5DQorU2V0SXBOZXRFbnRyeVRvU3RhY2sNCitTZXRJcFJvdXRlRW50cnlUb1N0YWNrDQorU2V0SXBTdGF0aXN0aWNzDQorU2V0SXBTdGF0c1RvU3RhY2sNCitTZXRJcFRUTA0KK1NldFByb3h5QXJwRW50cnlUb1N0YWNrDQorU2V0Um91dGVXaXRoUmVmDQorU2V0VGNwRW50cnkNCitTZXRUY3BFbnRyeVRvU3RhY2sNCitVbmVuYWJsZVJvdXRlcg0KK2RvX2VjaG9fcmVwDQorZG9fZWNob19yZXENCityZWdpc3Rlcl9pY21wDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaXBtb250ci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pcG1vbnRyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NGU0YmRkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaXBtb250ci5kZWYKQEAgLTAsMCArMSwyMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJUE1PTlRSLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJUE1PTlRSLmRsbA0KK0VYUE9SVFMNCitJbml0SGVscGVyRGxsDQorSXBtb250ckRlbGV0ZUluZm9CbG9ja0Zyb21JbnRlcmZhY2VJbmZvDQorSXBtb250ckRlbGV0ZVByb3RvY29sDQorSXBtb250ckdldEZyaWVuZGx5TmFtZUZyb21JZkluZGV4DQorSXBtb250ckdldEZyaWVuZGx5TmFtZUZyb21JZk5hbWUNCitJcG1vbnRyR2V0SWZJbmRleEZyb21GcmllbmRseU5hbWUNCitJcG1vbnRyR2V0SWZOYW1lRnJvbUZyaWVuZGx5TmFtZQ0KK0lwbW9udHJHZXRJbmZvQmxvY2tGcm9tR2xvYmFsSW5mbw0KK0lwbW9udHJHZXRJbmZvQmxvY2tGcm9tSW50ZXJmYWNlSW5mbw0KK0lwbW9udHJHZXRJbnRlcmZhY2VUeXBlDQorSXBtb250ckludGVyZmFjZUVudW0NCitJcG1vbnRyU2V0SW5mb0Jsb2NrSW5HbG9iYWxJbmZvDQorSXBtb250clNldEluZm9CbG9ja0luSW50ZXJmYWNlSW5mbw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2lwbmF0aGxwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lwbmF0aGxwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44Mzc3YjFhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaXBuYXRobHAuZGVmCkBAIC0wLDAgKzEsMzkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSVBOQVRITFAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElQTkFUSExQLmRsbA0KK0VYUE9SVFMNCitOaEFjY2VwdFN0cmVhbVNvY2tldA0KK05oQWNxdWlyZUZpeGVkTGVuZ3RoQnVmZmVyDQorTmhBY3F1aXJlVmFyaWFibGVMZW5ndGhCdWZmZXINCitOaENyZWF0ZURhdGFncmFtU29ja2V0DQorTmhDcmVhdGVTdHJlYW1Tb2NrZXQNCitOaERlbGV0ZVNvY2tldA0KK05oSW5pdGlhbGl6ZUJ1ZmZlck1hbmFnZW1lbnQNCitOaFJlYWREYXRhZ3JhbVNvY2tldA0KK05oUmVhZFN0cmVhbVNvY2tldA0KK05oUmVsZWFzZUJ1ZmZlcg0KK05oV3JpdGVEYXRhZ3JhbVNvY2tldA0KK05oV3JpdGVTdHJlYW1Tb2NrZXQNCitSZWdpc3RlclByb3RvY29sDQorTmF0QWNxdWlyZVBvcnRSZXNlcnZhdGlvbg0KK05hdENhbmNlbER5bmFtaWNSZWRpcmVjdA0KK05hdENhbmNlbFJlZGlyZWN0DQorTmF0Q3JlYXRlRHluYW1pY0Z1bGxSZWRpcmVjdA0KK05hdENyZWF0ZUR5bmFtaWNSZWRpcmVjdA0KK05hdENyZWF0ZUR5bmFtaWNSZWRpcmVjdEV4DQorTmF0Q3JlYXRlUmVkaXJlY3QNCitOYXRDcmVhdGVSZWRpcmVjdEV4DQorTmF0SW5pdGlhbGl6ZVBvcnRSZXNlcnZhdGlvbg0KK05hdEluaXRpYWxpemVUcmFuc2xhdG9yDQorTmF0TG9va3VwQW5kUXVlcnlJbmZvcm1hdGlvblNlc3Npb25NYXBwaW5nDQorTmF0UXVlcnlJbmZvcm1hdGlvblJlZGlyZWN0DQorTmF0UXVlcnlJbmZvcm1hdGlvblJlZGlyZWN0SGFuZGxlDQorTmF0UmVsZWFzZVBvcnRSZXNlcnZhdGlvbg0KK05hdFNodXRkb3duUG9ydFJlc2VydmF0aW9uDQorTmF0U2h1dGRvd25UcmFuc2xhdG9yDQorTmhJbml0aWFsaXplVHJhY2VNYW5hZ2VtZW50DQorU2VydmljZU1haW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pcHByb21vbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pcHByb21vbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjkyODcwYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lwcHJvbW9uLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSVBQUk9NT04uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElQUFJPTU9OLmRsbA0KK0VYUE9SVFMNCitJbml0SGVscGVyRGxsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaXByaXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaXByaXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg5MGQwMTkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pcHJpcC5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElQUklQLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJUFJJUC5kbGwNCitFWFBPUlRTDQorU2VydmljZU1haW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pcHJvcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pcHJvcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjI1YzlhYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lwcm9wLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElQUk9QLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJUFJPUC5kbGwNCitFWFBPUlRTDQorRm10SWRUb1Byb3BTdGdOYW1lDQorRnJlZVByb3BWYXJpYW50QXJyYXkNCitQcm9wU3RnTmFtZVRvRm10SWQNCitQcm9wVmFyaWFudENsZWFyDQorUHJvcFZhcmlhbnRDb3B5DQorU3RnQ3JlYXRlUHJvcFNldFN0Zw0KK1N0Z0NyZWF0ZVByb3BTdGcNCitTdGdPcGVuUHJvcFN0Zw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2lwcnRwcmlvLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lwcnRwcmlvLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yYmNjODVkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaXBydHByaW8uZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaXBydHByaW8uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlwcnRwcmlvLmRsbA0KK0VYUE9SVFMNCitDb21wdXRlUm91dGVNZXRyaWMNCitHZXRQcmlvcml0eUluZm8NCitTZXRQcmlvcml0eUluZm8NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pcHJ0cm1nci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pcHJ0cm1nci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjU1N2NiMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lwcnRybWdyLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGlwcnRybWdyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpcHJ0cm1nci5kbGwNCitFWFBPUlRTDQorTWFwQWRkcmVzc1RvQWRhcHRlcg0KK01hcEludGVyZmFjZVRvQWRhcHRlcg0KK01hcEludGVyZmFjZVRvUm91dGVySWZUeXBlDQorU3RhcnRSb3V0ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pcHNlY3NucC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pcHNlY3NucC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTE3ZGE2ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lwc2Vjc25wLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElQU0VDU05QLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJUFNFQ1NOUC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pcHNlY3N2Yy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pcHNlY3N2Yy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTM4ODcxMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lwc2Vjc3ZjLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSVBTRUNTUEQuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElQU0VDU1BELkRMTA0KK0VYUE9SVFMNCitTUERTZXJ2aWNlTWFpbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2lwc21zbmFwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lwc21zbmFwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MWIwY2E4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaXBzbXNuYXAuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSVBTTVNOQVAuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElQU01TTkFQLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2lwdjZtb24uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaXB2Nm1vbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTQ1YjdiMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lwdjZtb24uZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSVBWNk1PTi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSVBWNk1PTi5kbGwNCitFWFBPUlRTDQorR2V0UmVzb3VyY2VTdHJpbmcNCitJbml0SGVscGVyRGxsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaXB4c2FwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lweHNhcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzMyNjA4OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2lweHNhcC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpcHhzYXAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlweHNhcC5kbGwNCitFWFBPUlRTDQorUmVnaXN0ZXJQcm90b2NvbA0KK1NlcnZpY2VNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaXJjbGFzcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pcmNsYXNzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYTk2MjlhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaXJjbGFzcy5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJUkNMQVNTLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJUkNMQVNTLkRMTA0KK0VYUE9SVFMNCitJclNJUkNsYXNzQ29JbnN0YWxsZXINCitJclNJUlBvcnRQcm9wUGFnZVByb3ZpZGVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaXNhcGlwcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pc2FwaXBzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMzE4NGI0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaXNhcGlwcy5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpc2FwaXBzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpc2FwaXBzLmRsbA0KK0VYUE9SVFMNCitHZXRQcm94eURsbEluZm8NCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2lzYXRxLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lzYXRxLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YzMxNzJjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaXNhdHEuZGVmCkBAIC0wLDAgKzEsMTU5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElTQVRRLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJU0FUUS5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1R5cGVkSGFzaFRhYmxlPGNsYXNzIENEaXJNb25pdG9yLGNsYXNzIENEaXJNb25pdG9yRW50cnksY2hhciBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0xLUkhhc2hUYWJsZT46OkNUeXBlZEhhc2hUYWJsZTxjbGFzcyBDRGlyTW9uaXRvcixjbGFzcyBDRGlyTW9uaXRvckVudHJ5LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENMS1JIYXNoVGFibGU+KGNoYXIgY29uc3QgKiBfX3B0cjY0LGRvdWJsZSx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsYm9vbCkgX19wdHI2NA0KKz8/MD8kQ1R5cGVkSGFzaFRhYmxlQFZDRGlyTW9uaXRvckBAVkNEaXJNb25pdG9yRW50cnlAQFBFQkRWQ0xLUkhhc2hUYWJsZUBAQEBRRUFBQFBFQkROS0tfTkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Rpck1vbml0b3I6OkNEaXJNb25pdG9yKHZvaWQpIF9fcHRyNjQNCis/PzBDRGlyTW9uaXRvckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENEaXJNb25pdG9yRW50cnk6OkNEaXJNb25pdG9yRW50cnkoY2xhc3MgQ0Rpck1vbml0b3JFbnRyeSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRGlyTW9uaXRvckVudHJ5QEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Rpck1vbml0b3JFbnRyeTo6Q0Rpck1vbml0b3JFbnRyeSh2b2lkKSBfX3B0cjY0DQorPz8wQ0Rpck1vbml0b3JFbnRyeUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENUeXBlZEhhc2hUYWJsZTxjbGFzcyBDRGlyTW9uaXRvcixjbGFzcyBDRGlyTW9uaXRvckVudHJ5LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENMS1JIYXNoVGFibGU+Ojp+Q1R5cGVkSGFzaFRhYmxlPGNsYXNzIENEaXJNb25pdG9yLGNsYXNzIENEaXJNb25pdG9yRW50cnksY2hhciBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0xLUkhhc2hUYWJsZT4odm9pZCkgX19wdHI2NA0KKz8/MT8kQ1R5cGVkSGFzaFRhYmxlQFZDRGlyTW9uaXRvckBAVkNEaXJNb25pdG9yRW50cnlAQFBFQkRWQ0xLUkhhc2hUYWJsZUBAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Rpck1vbml0b3I6On5DRGlyTW9uaXRvcih2b2lkKSBfX3B0cjY0DQorPz8xQ0Rpck1vbml0b3JAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENEaXJNb25pdG9yRW50cnk6On5DRGlyTW9uaXRvckVudHJ5KHZvaWQpIF9fcHRyNjQNCis/PzFDRGlyTW9uaXRvckVudHJ5QEBVRUFBQFhaDQorOyBwdWJsaWM6IGNsYXNzIENEaXJNb25pdG9yRW50cnkgJiBfX3B0cjY0IF9fY2RlY2wgQ0Rpck1vbml0b3JFbnRyeTo6b3BlcmF0b3I9KGNsYXNzIENEaXJNb25pdG9yRW50cnkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0Rpck1vbml0b3JFbnRyeUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBjb25zdCAgQ0Rpck1vbml0b3JFbnRyeTo6YHZmdGFibGUnDQorPz9fN0NEaXJNb25pdG9yRW50cnlAQDZCQA0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0Rpck1vbml0b3I6OkFkZFJlZih2b2lkKSBfX3B0cjY0DQorP0FkZFJlZkBDRGlyTW9uaXRvckBAUUVBQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDRGlyTW9uaXRvckVudHJ5OjpBZGRSZWYodm9pZCkgX19wdHI2NA0KKz9BZGRSZWZAQ0Rpck1vbml0b3JFbnRyeUBAVUVBQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENEaXJNb25pdG9yOjpBZGRSZWZSZWNvcmQoY2xhc3MgQ0Rpck1vbml0b3JFbnRyeSAqIF9fcHRyNjQsaW50KQ0KKz9BZGRSZWZSZWNvcmRAQ0Rpck1vbml0b3JAQFNBWFBFQVZDRGlyTW9uaXRvckVudHJ5QEBIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENUeXBlZEhhc2hUYWJsZTxjbGFzcyBDRGlyTW9uaXRvcixjbGFzcyBDRGlyTW9uaXRvckVudHJ5LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENMS1JIYXNoVGFibGU+OjpBcHBseShlbnVtIExLX0FDVElPTiAgKF9fY2RlY2wqKShjbGFzcyBDRGlyTW9uaXRvckVudHJ5ICogX19wdHI2NCx2b2lkICogX19wdHI2NCksdm9pZCAqIF9fcHRyNjQsZW51bSBMS19MT0NLVFlQRSkgX19wdHI2NA0KKz9BcHBseUA/JENUeXBlZEhhc2hUYWJsZUBWQ0Rpck1vbml0b3JAQFZDRGlyTW9uaXRvckVudHJ5QEBQRUJEVkNMS1JIYXNoVGFibGVAQEBAUUVBQUtQNkE/QVc0TEtfQUNUSU9OQEBQRUFWQ0Rpck1vbml0b3JFbnRyeUBAUEVBWEBaMVc0TEtfTE9DS1RZUEVAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDVHlwZWRIYXNoVGFibGU8Y2xhc3MgQ0Rpck1vbml0b3IsY2xhc3MgQ0Rpck1vbml0b3JFbnRyeSxjaGFyIGNvbnN0ICogX19wdHI2NCxjbGFzcyBDTEtSSGFzaFRhYmxlPjo6QXBwbHlJZihlbnVtIExLX1BSRURJQ0FURSAgKF9fY2RlY2wqKShjbGFzcyBDRGlyTW9uaXRvckVudHJ5ICogX19wdHI2NCx2b2lkICogX19wdHI2NCksZW51bSBMS19BQ1RJT04gIChfX2NkZWNsKikoY2xhc3MgQ0Rpck1vbml0b3JFbnRyeSAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpLHZvaWQgKiBfX3B0cjY0LGVudW0gTEtfTE9DS1RZUEUpIF9fcHRyNjQNCis/QXBwbHlJZkA/JENUeXBlZEhhc2hUYWJsZUBWQ0Rpck1vbml0b3JAQFZDRGlyTW9uaXRvckVudHJ5QEBQRUJEVkNMS1JIYXNoVGFibGVAQEBAUUVBQUtQNkE/QVc0TEtfUFJFRElDQVRFQEBQRUFWQ0Rpck1vbml0b3JFbnRyeUBAUEVBWEBaUDZBP0FXNExLX0FDVElPTkBAMDFAWjFXNExLX0xPQ0tUWVBFQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENEaXJNb25pdG9yOjpDYWxjS2V5SGFzaChjaGFyIGNvbnN0ICogX19wdHI2NCkNCis/Q2FsY0tleUhhc2hAQ0Rpck1vbml0b3JAQFNBS1BFQkRAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGlyTW9uaXRvcjo6Q2xlYW51cCh2b2lkKSBfX3B0cjY0DQorP0NsZWFudXBAQ0Rpck1vbml0b3JAQFFFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Rpck1vbml0b3JFbnRyeTo6Q2xlYW51cCh2b2lkKSBfX3B0cjY0DQorP0NsZWFudXBAQ0Rpck1vbml0b3JFbnRyeUBASUVBQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1R5cGVkSGFzaFRhYmxlPGNsYXNzIENEaXJNb25pdG9yLGNsYXNzIENEaXJNb25pdG9yRW50cnksY2hhciBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0xLUkhhc2hUYWJsZT46OkRlbGV0ZUlmKGVudW0gTEtfUFJFRElDQVRFICAoX19jZGVjbCopKGNsYXNzIENEaXJNb25pdG9yRW50cnkgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVJZkA/JENUeXBlZEhhc2hUYWJsZUBWQ0Rpck1vbml0b3JAQFZDRGlyTW9uaXRvckVudHJ5QEBQRUJEVkNMS1JIYXNoVGFibGVAQEBAUUVBQUtQNkE/QVc0TEtfUFJFRElDQVRFQEBQRUFWQ0Rpck1vbml0b3JFbnRyeUBAUEVBWEBaMUBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDVHlwZWRIYXNoVGFibGU8Y2xhc3MgQ0Rpck1vbml0b3IsY2xhc3MgQ0Rpck1vbml0b3JFbnRyeSxjaGFyIGNvbnN0ICogX19wdHI2NCxjbGFzcyBDTEtSSGFzaFRhYmxlPjo6RGVsZXRlS2V5KGNoYXIgY29uc3QgKiBfX3B0cjY0IGNvbnN0KSBfX3B0cjY0DQorP0RlbGV0ZUtleUA/JENUeXBlZEhhc2hUYWJsZUBWQ0Rpck1vbml0b3JAQFZDRGlyTW9uaXRvckVudHJ5QEBQRUJEVkNMS1JIYXNoVGFibGVAQEBAUUVBQT9BVzRMS19SRVRDT0RFQEBRRUJEQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENUeXBlZEhhc2hUYWJsZTxjbGFzcyBDRGlyTW9uaXRvcixjbGFzcyBDRGlyTW9uaXRvckVudHJ5LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENMS1JIYXNoVGFibGU+OjpEZWxldGVSZWNvcmQoY2xhc3MgQ0Rpck1vbml0b3JFbnRyeSBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlUmVjb3JkQD8kQ1R5cGVkSGFzaFRhYmxlQFZDRGlyTW9uaXRvckBAVkNEaXJNb25pdG9yRW50cnlAQFBFQkRWQ0xLUkhhc2hUYWJsZUBAQEBRRUFBP0FXNExLX1JFVENPREVAQFBFQlZDRGlyTW9uaXRvckVudHJ5QEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENEaXJNb25pdG9yOjpEaXJNb25pdG9yQ29tcGxldGlvbkZ1bmN0aW9uKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgX09WRVJMQVBQRUQgKiBfX3B0cjY0KQ0KKz9EaXJNb25pdG9yQ29tcGxldGlvbkZ1bmN0aW9uQENEaXJNb25pdG9yQEBTQVhQRUFYS0tQRUFVX09WRVJMQVBQRURAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgQ0Rpck1vbml0b3I6OkVxdWFsS2V5cyhjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCkNCis/RXF1YWxLZXlzQENEaXJNb25pdG9yQEBTQV9OUEVCRDBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1R5cGVkSGFzaFRhYmxlPGNsYXNzIENEaXJNb25pdG9yLGNsYXNzIENEaXJNb25pdG9yRW50cnksY2hhciBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0xLUkhhc2hUYWJsZT46OkVxdWFsUmFuZ2UoY2hhciBjb25zdCAqIF9fcHRyNjQgY29uc3QsY2xhc3MgQ1R5cGVkSGFzaFRhYmxlPGNsYXNzIENEaXJNb25pdG9yLGNsYXNzIENEaXJNb25pdG9yRW50cnksY2hhciBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0xLUkhhc2hUYWJsZT46Oml0ZXJhdG9yICYgX19wdHI2NCxjbGFzcyBDVHlwZWRIYXNoVGFibGU8Y2xhc3MgQ0Rpck1vbml0b3IsY2xhc3MgQ0Rpck1vbml0b3JFbnRyeSxjaGFyIGNvbnN0ICogX19wdHI2NCxjbGFzcyBDTEtSSGFzaFRhYmxlPjo6aXRlcmF0b3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0VxdWFsUmFuZ2VAPyRDVHlwZWRIYXNoVGFibGVAVkNEaXJNb25pdG9yQEBWQ0Rpck1vbml0b3JFbnRyeUBAUEVCRFZDTEtSSGFzaFRhYmxlQEBAQFFFQUFfTlFFQkRBRUFWaXRlcmF0b3JAMUAxQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENUeXBlZEhhc2hUYWJsZTxjbGFzcyBDRGlyTW9uaXRvcixjbGFzcyBDRGlyTW9uaXRvckVudHJ5LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENMS1JIYXNoVGFibGU+OjpFcmFzZShjbGFzcyBDVHlwZWRIYXNoVGFibGU8Y2xhc3MgQ0Rpck1vbml0b3IsY2xhc3MgQ0Rpck1vbml0b3JFbnRyeSxjaGFyIGNvbnN0ICogX19wdHI2NCxjbGFzcyBDTEtSSGFzaFRhYmxlPjo6aXRlcmF0b3IgJiBfX3B0cjY0LGNsYXNzIENUeXBlZEhhc2hUYWJsZTxjbGFzcyBDRGlyTW9uaXRvcixjbGFzcyBDRGlyTW9uaXRvckVudHJ5LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENMS1JIYXNoVGFibGU+OjppdGVyYXRvciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RXJhc2VAPyRDVHlwZWRIYXNoVGFibGVAVkNEaXJNb25pdG9yQEBWQ0Rpck1vbml0b3JFbnRyeUBAUEVCRFZDTEtSSGFzaFRhYmxlQEBAQFFFQUFfTkFFQVZpdGVyYXRvckAxQDBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1R5cGVkSGFzaFRhYmxlPGNsYXNzIENEaXJNb25pdG9yLGNsYXNzIENEaXJNb25pdG9yRW50cnksY2hhciBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0xLUkhhc2hUYWJsZT46OkVyYXNlKGNsYXNzIENUeXBlZEhhc2hUYWJsZTxjbGFzcyBDRGlyTW9uaXRvcixjbGFzcyBDRGlyTW9uaXRvckVudHJ5LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENMS1JIYXNoVGFibGU+OjppdGVyYXRvciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RXJhc2VAPyRDVHlwZWRIYXNoVGFibGVAVkNEaXJNb25pdG9yQEBWQ0Rpck1vbml0b3JFbnRyeUBAUEVCRFZDTEtSSGFzaFRhYmxlQEBAQFFFQUFfTkFFQVZpdGVyYXRvckAxQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENEaXJNb25pdG9yOjpFeHRyYWN0S2V5KGNsYXNzIENEaXJNb25pdG9yRW50cnkgY29uc3QgKiBfX3B0cjY0KQ0KKz9FeHRyYWN0S2V5QENEaXJNb25pdG9yQEBTQVBFQkRQRUJWQ0Rpck1vbml0b3JFbnRyeUBAQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENUeXBlZEhhc2hUYWJsZTxjbGFzcyBDRGlyTW9uaXRvcixjbGFzcyBDRGlyTW9uaXRvckVudHJ5LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENMS1JIYXNoVGFibGU+OjpGaW5kKGNoYXIgY29uc3QgKiBfX3B0cjY0IGNvbnN0LGNsYXNzIENUeXBlZEhhc2hUYWJsZTxjbGFzcyBDRGlyTW9uaXRvcixjbGFzcyBDRGlyTW9uaXRvckVudHJ5LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENMS1JIYXNoVGFibGU+OjppdGVyYXRvciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RmluZEA/JENUeXBlZEhhc2hUYWJsZUBWQ0Rpck1vbml0b3JAQFZDRGlyTW9uaXRvckVudHJ5QEBQRUJEVkNMS1JIYXNoVGFibGVAQEBAUUVBQV9OUUVCREFFQVZpdGVyYXRvckAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIENEaXJNb25pdG9yRW50cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ0Rpck1vbml0b3I6OkZpbmRFbnRyeShjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9GaW5kRW50cnlAQ0Rpck1vbml0b3JAQFFFQUFQRUFWQ0Rpck1vbml0b3JFbnRyeUBAUEVCREBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDVHlwZWRIYXNoVGFibGU8Y2xhc3MgQ0Rpck1vbml0b3IsY2xhc3MgQ0Rpck1vbml0b3JFbnRyeSxjaGFyIGNvbnN0ICogX19wdHI2NCxjbGFzcyBDTEtSSGFzaFRhYmxlPjo6RmluZEtleShjaGFyIGNvbnN0ICogX19wdHI2NCBjb25zdCxjbGFzcyBDRGlyTW9uaXRvckVudHJ5ICogX19wdHI2NCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RmluZEtleUA/JENUeXBlZEhhc2hUYWJsZUBWQ0Rpck1vbml0b3JAQFZDRGlyTW9uaXRvckVudHJ5QEBQRUJEVkNMS1JIYXNoVGFibGVAQEBAUUVCQT9BVzRMS19SRVRDT0RFQEBRRUJEUEVBUEVBVkNEaXJNb25pdG9yRW50cnlAQEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDVHlwZWRIYXNoVGFibGU8Y2xhc3MgQ0Rpck1vbml0b3IsY2xhc3MgQ0Rpck1vbml0b3JFbnRyeSxjaGFyIGNvbnN0ICogX19wdHI2NCxjbGFzcyBDTEtSSGFzaFRhYmxlPjo6RmluZFJlY29yZChjbGFzcyBDRGlyTW9uaXRvckVudHJ5IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9GaW5kUmVjb3JkQD8kQ1R5cGVkSGFzaFRhYmxlQFZDRGlyTW9uaXRvckBAVkNEaXJNb25pdG9yRW50cnlAQFBFQkRWQ0xLUkhhc2hUYWJsZUBAQEBRRUJBP0FXNExLX1JFVENPREVAQFBFQlZDRGlyTW9uaXRvckVudHJ5QEBAWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0Rpck1vbml0b3JFbnRyeTo6R2V0QnVmZmVyU2l6ZSh2b2lkKSBfX3B0cjY0DQorP0dldEJ1ZmZlclNpemVAQ0Rpck1vbml0b3JFbnRyeUBASUVBQUtYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0Rpck1vbml0b3JFbnRyeTo6SU9BZGRSZWYodm9pZCkgX19wdHI2NA0KKz9JT0FkZFJlZkBDRGlyTW9uaXRvckVudHJ5QEBJRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENEaXJNb25pdG9yRW50cnk6OklPUmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP0lPUmVsZWFzZUBDRGlyTW9uaXRvckVudHJ5QEBJRUFBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0Rpck1vbml0b3JFbnRyeTo6SW5pdCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0luaXRAQ0Rpck1vbml0b3JFbnRyeUBAVUVBQUhLQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENUeXBlZEhhc2hUYWJsZTxjbGFzcyBDRGlyTW9uaXRvcixjbGFzcyBDRGlyTW9uaXRvckVudHJ5LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENMS1JIYXNoVGFibGU+OjpJbnNlcnQoY2xhc3MgQ0Rpck1vbml0b3JFbnRyeSBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1R5cGVkSGFzaFRhYmxlPGNsYXNzIENEaXJNb25pdG9yLGNsYXNzIENEaXJNb25pdG9yRW50cnksY2hhciBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0xLUkhhc2hUYWJsZT46Oml0ZXJhdG9yICYgX19wdHI2NCxib29sKSBfX3B0cjY0DQorP0luc2VydEA/JENUeXBlZEhhc2hUYWJsZUBWQ0Rpck1vbml0b3JAQFZDRGlyTW9uaXRvckVudHJ5QEBQRUJEVkNMS1JIYXNoVGFibGVAQEBAUUVBQV9OUEVCVkNEaXJNb25pdG9yRW50cnlAQEFFQVZpdGVyYXRvckAxQF9OQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENEaXJNb25pdG9yOjpJbnNlcnRFbnRyeShjbGFzcyBDRGlyTW9uaXRvckVudHJ5ICogX19wdHI2NCkgX19wdHI2NA0KKz9JbnNlcnRFbnRyeUBDRGlyTW9uaXRvckBAUUVBQT9BVzRMS19SRVRDT0RFQEBQRUFWQ0Rpck1vbml0b3JFbnRyeUBAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENUeXBlZEhhc2hUYWJsZTxjbGFzcyBDRGlyTW9uaXRvcixjbGFzcyBDRGlyTW9uaXRvckVudHJ5LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENMS1JIYXNoVGFibGU+OjpJbnNlcnRSZWNvcmQoY2xhc3MgQ0Rpck1vbml0b3JFbnRyeSBjb25zdCAqIF9fcHRyNjQsYm9vbCkgX19wdHI2NA0KKz9JbnNlcnRSZWNvcmRAPyRDVHlwZWRIYXNoVGFibGVAVkNEaXJNb25pdG9yQEBWQ0Rpck1vbml0b3JFbnRyeUBAUEVCRFZDTEtSSGFzaFRhYmxlQEBAQFFFQUE/QVc0TEtfUkVUQ09ERUBAUEVCVkNEaXJNb25pdG9yRW50cnlAQF9OQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENEaXJNb25pdG9yOjpMb2NrKHZvaWQpIF9fcHRyNjQNCis/TG9ja0BDRGlyTW9uaXRvckBAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGlyTW9uaXRvcjo6TW9uaXRvcihjbGFzcyBDRGlyTW9uaXRvckVudHJ5ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCxpbnQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Nb25pdG9yQENEaXJNb25pdG9yQEBRRUFBSFBFQVZDRGlyTW9uaXRvckVudHJ5QEBQRUJESEtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0Rpck1vbml0b3I6OlJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlQENEaXJNb25pdG9yQEBRRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0Rpck1vbml0b3JFbnRyeTo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ0Rpck1vbml0b3JFbnRyeUBAVUVBQUhYWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0Rpck1vbml0b3I6OlJlbW92ZUVudHJ5KGNsYXNzIENEaXJNb25pdG9yRW50cnkgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbW92ZUVudHJ5QENEaXJNb25pdG9yQEBRRUFBP0FXNExLX1JFVENPREVAQFBFQVZDRGlyTW9uaXRvckVudHJ5QEBAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRGlyTW9uaXRvckVudHJ5OjpSZXF1ZXN0Tm90aWZpY2F0aW9uKHZvaWQpIF9fcHRyNjQNCis/UmVxdWVzdE5vdGlmaWNhdGlvbkBDRGlyTW9uaXRvckVudHJ5QEBJRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENEaXJNb25pdG9yRW50cnk6OlJlc2V0RGlyZWN0b3J5SGFuZGxlKHZvaWQpIF9fcHRyNjQNCis/UmVzZXREaXJlY3RvcnlIYW5kbGVAQ0Rpck1vbml0b3JFbnRyeUBASUVBQUhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENEaXJNb25pdG9yOjpTZXJpYWxDb21wbExvY2sodm9pZCkgX19wdHI2NA0KKz9TZXJpYWxDb21wbExvY2tAQ0Rpck1vbml0b3JAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDRGlyTW9uaXRvcjo6U2VyaWFsQ29tcGxVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9TZXJpYWxDb21wbFVubG9ja0BDRGlyTW9uaXRvckBAQUVBQVhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRGlyTW9uaXRvckVudHJ5OjpTZXRCdWZmZXJTaXplKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0QnVmZmVyU2l6ZUBDRGlyTW9uaXRvckVudHJ5QEBJRUFBSEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Rpck1vbml0b3I6OlVubG9jayh2b2lkKSBfX3B0cjY0DQorP1VubG9ja0BDRGlyTW9uaXRvckBAUUVBQVhYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGVudW0gTEtfQUNUSU9OICBfX2NkZWNsIENUeXBlZEhhc2hUYWJsZTxjbGFzcyBDRGlyTW9uaXRvcixjbGFzcyBDRGlyTW9uaXRvckVudHJ5LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENMS1JIYXNoVGFibGU+OjpfQWN0aW9uKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KQ0KKz9fQWN0aW9uQD8kQ1R5cGVkSGFzaFRhYmxlQFZDRGlyTW9uaXRvckBAVkNEaXJNb25pdG9yRW50cnlAQFBFQkRWQ0xLUkhhc2hUYWJsZUBAQEBDQT9BVzRMS19BQ1RJT05AQFBFQlhQRUFYQFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1R5cGVkSGFzaFRhYmxlPGNsYXNzIENEaXJNb25pdG9yLGNsYXNzIENEaXJNb25pdG9yRW50cnksY2hhciBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0xLUkhhc2hUYWJsZT46Ol9BZGRSZWZSZWNvcmQodm9pZCBjb25zdCAqIF9fcHRyNjQsaW50KQ0KKz9fQWRkUmVmUmVjb3JkQD8kQ1R5cGVkSGFzaFRhYmxlQFZDRGlyTW9uaXRvckBAVkNEaXJNb25pdG9yRW50cnlAQFBFQkRWQ0xLUkhhc2hUYWJsZUBAQEBDQVhQRUJYSEBaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENUeXBlZEhhc2hUYWJsZTxjbGFzcyBDRGlyTW9uaXRvcixjbGFzcyBDRGlyTW9uaXRvckVudHJ5LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENMS1JIYXNoVGFibGU+OjpfQ2FsY0tleUhhc2godW5zaWduZWQgX19pbnQ2NCkNCis/X0NhbGNLZXlIYXNoQD8kQ1R5cGVkSGFzaFRhYmxlQFZDRGlyTW9uaXRvckBAVkNEaXJNb25pdG9yRW50cnlAQFBFQkRWQ0xLUkhhc2hUYWJsZUBAQEBDQUtfS0BaDQorOyBwcml2YXRlOiBzdGF0aWMgYm9vbCBfX2NkZWNsIENUeXBlZEhhc2hUYWJsZTxjbGFzcyBDRGlyTW9uaXRvcixjbGFzcyBDRGlyTW9uaXRvckVudHJ5LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENMS1JIYXNoVGFibGU+OjpfRXF1YWxLZXlzKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCkNCis/X0VxdWFsS2V5c0A/JENUeXBlZEhhc2hUYWJsZUBWQ0Rpck1vbml0b3JAQFZDRGlyTW9uaXRvckVudHJ5QEBQRUJEVkNMS1JIYXNoVGFibGVAQEBAQ0FfTl9LMEBaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBjb25zdCAgX19jZGVjbCBDVHlwZWRIYXNoVGFibGU8Y2xhc3MgQ0Rpck1vbml0b3IsY2xhc3MgQ0Rpck1vbml0b3JFbnRyeSxjaGFyIGNvbnN0ICogX19wdHI2NCxjbGFzcyBDTEtSSGFzaFRhYmxlPjo6X0V4dHJhY3RLZXkodm9pZCBjb25zdCAqIF9fcHRyNjQpDQorP19FeHRyYWN0S2V5QD8kQ1R5cGVkSGFzaFRhYmxlQFZDRGlyTW9uaXRvckBAVkNEaXJNb25pdG9yRW50cnlAQFBFQkRWQ0xLUkhhc2hUYWJsZUBAQEBDQT9CX0tQRUJYQFoNCis7IHByaXZhdGU6IHN0YXRpYyBlbnVtIExLX1BSRURJQ0FURSAgX19jZGVjbCBDVHlwZWRIYXNoVGFibGU8Y2xhc3MgQ0Rpck1vbml0b3IsY2xhc3MgQ0Rpck1vbml0b3JFbnRyeSxjaGFyIGNvbnN0ICogX19wdHI2NCxjbGFzcyBDTEtSSGFzaFRhYmxlPjo6X1ByZWQodm9pZCBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpDQorP19QcmVkQD8kQ1R5cGVkSGFzaFRhYmxlQFZDRGlyTW9uaXRvckBAVkNEaXJNb25pdG9yRW50cnlAQFBFQkRWQ0xLUkhhc2hUYWJsZUBAQEBDQT9BVzRMS19QUkVESUNBVEVAQFBFQlhQRUFYQFoNCis7IHB1YmxpYzogY2xhc3MgQ1R5cGVkSGFzaFRhYmxlPGNsYXNzIENEaXJNb25pdG9yLGNsYXNzIENEaXJNb25pdG9yRW50cnksY2hhciBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0xLUkhhc2hUYWJsZT46Oml0ZXJhdG9yICBfX2NkZWNsIENUeXBlZEhhc2hUYWJsZTxjbGFzcyBDRGlyTW9uaXRvcixjbGFzcyBDRGlyTW9uaXRvckVudHJ5LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENMS1JIYXNoVGFibGU+OjpiZWdpbih2b2lkKSBfX3B0cjY0DQorP2JlZ2luQD8kQ1R5cGVkSGFzaFRhYmxlQFZDRGlyTW9uaXRvckBAVkNEaXJNb25pdG9yRW50cnlAQFBFQkRWQ0xLUkhhc2hUYWJsZUBAQEBRRUFBP0FWaXRlcmF0b3JAMUBYWg0KKzsgcHVibGljOiBjbGFzcyBDVHlwZWRIYXNoVGFibGU8Y2xhc3MgQ0Rpck1vbml0b3IsY2xhc3MgQ0Rpck1vbml0b3JFbnRyeSxjaGFyIGNvbnN0ICogX19wdHI2NCxjbGFzcyBDTEtSSGFzaFRhYmxlPjo6aXRlcmF0b3IgIF9fY2RlY2wgQ1R5cGVkSGFzaFRhYmxlPGNsYXNzIENEaXJNb25pdG9yLGNsYXNzIENEaXJNb25pdG9yRW50cnksY2hhciBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0xLUkhhc2hUYWJsZT46OmVuZCh2b2lkKSBfX3B0cjY0DQorP2VuZEA/JENUeXBlZEhhc2hUYWJsZUBWQ0Rpck1vbml0b3JAQFZDRGlyTW9uaXRvckVudHJ5QEBQRUJEVkNMS1JIYXNoVGFibGVAQEBAUUVBQT9BVml0ZXJhdG9yQDFAWFoNCitBdHFBZGRBc3luY0hhbmRsZQ0KK0F0cUJhbmR3aWR0aEdldEluZm8NCitBdHFCYW5kd2lkdGhTZXRJbmZvDQorQXRxQ2xlYXJTdGF0aXN0aWNzDQorQXRxQ2xvc2VFbmRwb2ludA0KK0F0cUNsb3NlRmlsZUhhbmRsZQ0KK0F0cUNsb3NlU29ja2V0DQorQXRxQ29udGV4dFNldEluZm8NCitBdHFDcmVhdGVCYW5kd2lkdGhJbmZvDQorQXRxQ3JlYXRlRW5kcG9pbnQNCitBdHFFbmRwb2ludEdldEluZm8NCitBdHFFbmRwb2ludFNldEluZm8NCitBdHFGcmVlQmFuZHdpZHRoSW5mbw0KK0F0cUZyZWVDb250ZXh0DQorQXRxR2V0QWNjZXB0RXhBZGRycw0KK0F0cUdldENhcFRyYWNlSW5mbw0KK0F0cUdldENvbXBsZXRpb25Qb3J0DQorQXRxR2V0SW5mbw0KK0F0cUdldFN0YXRpc3RpY3MNCitBdHFJbml0aWFsaXplDQorQXRxUG9zdENvbXBsZXRpb25TdGF0dXMNCitBdHFSZWFkRGlyQ2hhbmdlcw0KK0F0cVJlYWRGaWxlDQorQXRxUmVhZFNvY2tldA0KK0F0cVNldEluZm8NCitBdHFTZXRTb2NrZXRPcHRpb24NCitBdHFTdGFydEVuZHBvaW50DQorQXRxU3RvcEFuZENsb3NlRW5kcG9pbnQNCitBdHFTdG9wRW5kcG9pbnQNCitBdHFTeW5jV3NhU2VuZA0KK0F0cVRlcm1pbmF0ZQ0KK0F0cVRyYW5zbWl0RmlsZQ0KK0F0cVRyYW5zbWl0RmlsZUV4DQorQXRxV3JpdGVGaWxlDQorQXRxV3JpdGVTb2NrZXQNCitHZXRJSVNDYXBUcmFjZUZsYWcNCitHZXRJSVNDYXBUcmFjZUxvZ2dlckhhbmRsZQ0KK0lJU0luaXRpYWxpemVDYXBUcmFjZQ0KK1NldElJU0NhcFRyYWNlRmxhZw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2lzY29tbG9nLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2lzY29tbG9nLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNmRlYjM1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaXNjb21sb2cuZGVmCkBAIC0wLDAgKzEsMzIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSVNDT01MT0cuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElTQ09NTE9HLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBMT0dHSU5HOjpMT0dHSU5HKGNsYXNzIExPR0dJTkcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTE9HR0lOR0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBMT0dHSU5HICYgX19wdHI2NCBfX2NkZWNsIExPR0dJTkc6Om9wZXJhdG9yPShjbGFzcyBMT0dHSU5HIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NExPR0dJTkdAQFFFQUFBRUFWMEBBRUJWMEBAWg0KK0NvbUxvZ0N1c3RvbUluZm9ybWF0aW9uDQorQ29tTG9nRGxsQ2xlYW5VcA0KK0NvbUxvZ0RsbFN0YXJ0dXANCitDb21Mb2dHZXRDb25maWcNCitDb21Mb2dJbml0aWFsaXplTG9nDQorQ29tTG9nTG9nSW5mb3JtYXRpb24NCitDb21Mb2dOb3RpZnlDaGFuZ2UNCitDb21Mb2dRdWVyeUV4dHJhTG9nRmllbGRzDQorQ29tTG9nU2V0Q29uZmlnDQorQ29tTG9nVGVybWluYXRlTG9nDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HR0lORzo6TG9ja0V4Y2x1c2l2ZSh2b2lkKSBfX3B0cjY0DQorP0xvY2tFeGNsdXNpdmVATE9HR0lOR0BAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExPR0dJTkc6OkxvY2tTaGFyZWQodm9pZCkgX19wdHI2NA0KKz9Mb2NrU2hhcmVkQExPR0dJTkdAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBMT0dHSU5HOjpVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9VbmxvY2tATE9HR0lOR0BAQUVBQVhYWg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvaXNpZ24zMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pc2lnbjMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41YjZhNjE0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaXNpZ24zMi5kZWYKQEAgLTAsMCArMSwxOCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpc2lnbnVwMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaXNpZ251cDIuZGxsDQorRVhQT1JUUw0KK0F1dG9EaWFsTG9nb24NCitBdXRvRGlhbExvZ29uQQ0KK0F1dG9EaWFsTG9nb25XDQorQXV0b0RpYWxTaWdudXANCitBdXRvRGlhbFNpZ251cEENCitBdXRvRGlhbFNpZ251cFcNCitJRUFLUHJvY2Vzc0lTUA0KK0lFQUtQcm9jZXNzSVNQQQ0KK0lFQUtQcm9jZXNzSVNQVw0KK1NpZ251cA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2l0aXJjbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9pdGlyY2wuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY0MzA1M2UKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pdGlyY2wuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSVRMb2NhbC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSVRMb2NhbC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9pdHNzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2l0c3MuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg2ZWY1NDEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9pdHNzLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElUU1MuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElUU1MuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsTWFpbg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2l4c3NvLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2l4c3NvLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNzJkMTBkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvaXhzc28uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSVhTU08uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElYU1NPLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2l5dXZfMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvaXl1dl8zMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTE4MjM2NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2l5dXZfMzIuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSVlVVl8zMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSVlVVl8zMi5kbGwNCitFWFBPUlRTDQorQWJvdXREaWFsb2dQcm9jDQorRGxsTWFpbg0KK0RyaXZlckRpYWxvZ1Byb2MNCitEcml2ZXJQcm9jDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvamV0NTAwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2pldDUwMC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODU5MzA4MAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2pldDUwMC5kZWYKQEAgLTAsMCArMSw5MyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBKRVQ1MDAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEpFVDUwMC5kbGwNCitFWFBPUlRTDQorSmV0QWRkQ29sdW1uDQorSmV0QXR0YWNoRGF0YWJhc2UNCitKZXRCYWNrdXANCitKZXRCZWdpbkV4dGVybmFsQmFja3VwDQorSmV0QmVnaW5TZXNzaW9uDQorSmV0QmVnaW5UcmFuc2FjdGlvbg0KK0pldENsb3NlRGF0YWJhc2UNCitKZXRDbG9zZUZpbGUNCitKZXRDbG9zZVRhYmxlDQorSmV0Q29tbWl0VHJhbnNhY3Rpb24NCitKZXRDb21wYWN0DQorSmV0Q29tcHV0ZVN0YXRzDQorSmV0Q3JlYXRlRGF0YWJhc2UNCitKZXRDcmVhdGVJbmRleA0KK0pldENyZWF0ZUxpbmsNCitKZXRDcmVhdGVRdWVyeQ0KK0pldENyZWF0ZVRhYmxlDQorSmV0Q3JlYXRlVGFibGVDb2x1bW5JbmRleA0KK0pldERCVXRpbGl0aWVzDQorSmV0RGVsZXRlDQorSmV0RGVsZXRlQ29sdW1uDQorSmV0RGVsZXRlSW5kZXgNCitKZXREZWxldGVUYWJsZQ0KK0pldERldGFjaERhdGFiYXNlDQorSmV0RHVwQ3Vyc29yDQorSmV0RHVwU2Vzc2lvbg0KK0pldEVuZEV4dGVybmFsQmFja3VwDQorSmV0RW5kU2Vzc2lvbg0KK0pldEV4ZWN1dGVTcWwNCitKZXRFeHRlcm5hbFJlc3RvcmUNCitKZXRHZXRBdHRhY2hJbmZvDQorSmV0R2V0Qm9va21hcmsNCitKZXRHZXRDaGVja3N1bQ0KK0pldEdldENvbHVtbkluZm8NCitKZXRHZXRDb3VudGVyDQorSmV0R2V0Q3VycmVudEluZGV4DQorSmV0R2V0Q3Vyc29ySW5mbw0KK0pldEdldERhdGFiYXNlSW5mbw0KK0pldEdldEluZGV4SW5mbw0KK0pldEdldExvZ0luZm8NCitKZXRHZXRPYmplY3RJbmZvDQorSmV0R2V0T2JqaWRGcm9tTmFtZQ0KK0pldEdldFF1ZXJ5UGFyYW1ldGVySW5mbw0KK0pldEdldFJlY29yZFBvc2l0aW9uDQorSmV0R2V0U3lzdGVtUGFyYW1ldGVyDQorSmV0R2V0VGFibGVDb2x1bW5JbmZvDQorSmV0R2V0VGFibGVJbmRleEluZm8NCitKZXRHZXRUYWJsZUluZm8NCitKZXRHZXRWZXJzaW9uDQorSmV0R290b0Jvb2ttYXJrDQorSmV0R290b1Bvc2l0aW9uDQorSmV0SWRsZQ0KK0pldEluZGV4UmVjb3JkQ291bnQNCitKZXRJbml0DQorSmV0TWFrZUtleQ0KK0pldE1vdmUNCitKZXRPcGVuRGF0YWJhc2UNCitKZXRPcGVuRmlsZQ0KK0pldE9wZW5RdWVyeURlZg0KK0pldE9wZW5UYWJsZQ0KK0pldE9wZW5UZW1wVGFibGUNCitKZXRPcGVuVGVtcFRhYmxlMg0KK0pldFByZXBhcmVVcGRhdGUNCitKZXRSZWFkRmlsZQ0KK0pldFJlc2V0Q291bnRlcg0KK0pldFJlc3RvcmUNCitKZXRSZXN0b3JlMg0KK0pldFJldHJpZXZlQ29sdW1uDQorSmV0UmV0cmlldmVDb2x1bW5zDQorSmV0UmV0cmlldmVLZXkNCitKZXRSZXRyaWV2ZVFvU3FsDQorSmV0Um9sbGJhY2sNCitKZXRTZWVrDQorSmV0U2V0QWNjZXNzDQorSmV0U2V0Q29sdW1uDQorSmV0U2V0Q29sdW1ucw0KK0pldFNldEN1cnJlbnRJbmRleA0KK0pldFNldEN1cnJlbnRJbmRleDINCitKZXRTZXRJbmRleFJhbmdlDQorSmV0U2V0UW9TcWwNCitKZXRTZXRTeXN0ZW1QYXJhbWV0ZXINCitKZXRUZXJtDQorSmV0VGVybTINCitKZXRUcnVuY2F0ZUxvZw0KK0pldFVwZGF0ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2pzY3JpcHQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvanNjcmlwdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDA1N2YzNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2pzY3JpcHQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSlNDUklQVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSlNDUklQVC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9qc3Byb3h5LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2pzcHJveHkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE1YWUxMjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9qc3Byb3h5LmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEpTUHJveHkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEpTUHJveHkuZGxsDQorRVhQT1JUUw0KK0ludGVybmV0SW5pdGlhbGl6ZUF1dG9Qcm94eURsbA0KK0ludGVybmV0RGVJbml0aWFsaXplQXV0b1Byb3h5RGxsDQorSW50ZXJuZXRHZXRQcm94eUluZm8NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmQxMDEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkMTAxLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNzczZjRmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkMTAxLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRDEwMS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEMTAxLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCitLYmRObHNMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmQxMDFhLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZDEwMWEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE5YTU4YTYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmQxMDFhLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRDEwMUEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRDEwMUEuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KK0tiZE5sc0xheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZDEwMWIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkMTAxYi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGJlMWNjZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZDEwMWIuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEMTAxQi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEMTAxQi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQorS2JkTmxzTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkMTAxYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmQxMDFjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zOGU1ZThiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkMTAxYy5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkQxMDFDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkQxMDFDLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCitLYmRObHNMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmQxMDMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkMTAzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NGRhZjMxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkMTAzLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRDEwMy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEMTAzLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCitLYmRObHNMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmQxMDYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkMTA2LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NTRiYmIyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkMTA2LmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRDEwNi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEMTA2LmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCitLYmRObHNMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmQxMDZuLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZDEwNm4uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdlYzNiNGMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmQxMDZuLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRDEwNk4uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRDEwNk4uZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KK0tiZE5sc0xheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGExLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGExLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZjllMTRjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkYTEuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRBMS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEQTEuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGEyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGEyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMWM3ZTdiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkYTIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRBMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEQTIuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGEzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGEzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kY2NhNDYyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkYTMuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRBMy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEQTMuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGFsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGFsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jY2FlNWJjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkYWwuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRBTC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEQUwuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGFybWUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkYXJtZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2I0MDRlNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGFybWUuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRBUk1FLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRBUk1FLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRhcm13LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGFybXcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFkZWQ4N2YKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRhcm13LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEQVJNVy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEQVJNVy5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkYXgyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGF4Mi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDllM2E4MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGF4Mi5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRBWDIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREFYMi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQorS2JkTmxzTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkYXplLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGF6ZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2E2ZjhmYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGF6ZS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREFaRS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEQVpFLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRhemVsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGF6ZWwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM5NDExMTIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRhemVsLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEQVpFTC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEQVpFTC5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkYmUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkYmUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgyMzNmMDUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRiZS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREJFLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRCRS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkYmVuZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRiZW5lLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMjYxMGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkYmVuZS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREJFTkUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREJFTkUuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGJsci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRibHIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZlNWI0ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRibHIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRCTFIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREJMUi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkYnIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkYnIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ5MjA1MTUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRici5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREJSLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRCUi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkYnUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkYnUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE4NTE0MjEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRidS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREJVLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRCVS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkY2EuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkY2EuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ4YjAwYjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRjYS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRENBLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRDQS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkY2FuLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGNhbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTVkNmFhNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGNhbi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRENBTi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEQ0FOLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRjci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRjci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTNlZGM3NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGNyLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEQ1IuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRENSLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRjei5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRjei5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmIxYzhiNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGN6LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEQ1ouZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRENaLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRjejEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkY3oxLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYTFiZjdmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkY3oxLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEQ1oxLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRDWjEuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGN6Mi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRjejIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU3YzAwN2UKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRjejIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRDWjIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRENaMi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkZGEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkZGEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMxZjEzZmUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRkYS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRERBLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkREQS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkZGl2MS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRkaXYxLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40YmFhNmVhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkZGl2MS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRERJVjEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRERJVjEuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGRpdjIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkZGl2Mi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTk0MzA1OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGRpdjIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRESVYyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRESVYyLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRkdi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRkdi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzJmM2FkMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGR2LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JERFYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRERWLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRlcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRlcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGI0Njk4ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGVzLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JERVMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREVTLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRlc3QuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkZXN0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MWNhMTRlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkZXN0LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JERVNULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRFU1QuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGZhLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGZhLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NWI3Zjg0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkZmEuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRGQS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JERkEuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGZjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGZjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zY2VjOGRmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkZmMuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRGQy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JERkMuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGZpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGZpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hZjg0YTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkZmkuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRGSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JERkkuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGZvLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGZvLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MDY3Njg0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkZm8uZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRGTy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JERk8uZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGZyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGZyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MmRkMmYyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkZnIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRGUi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JERlIuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGdhZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRnYWUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYzMGRiNmYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRnYWUuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRHQUUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREdBRS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkZ2VvLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGdlby5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTk2MjM4MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGdlby5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREdlby5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JER2VvLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRna2wuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkZ2tsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40OWNmMDkxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkZ2tsLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JER0tMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRHS0wuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGdyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGdyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mODdmMjkzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkZ3IuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRHUi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JER1IuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGdyMS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRncjEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY5MGMwZmUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRncjEuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRHUjEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREdSMS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkaGUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkaGUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM4MDk3MjkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRoZS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREhFLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRIRS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkaGUyMjAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkaGUyMjAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJjN2NkZGUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRoZTIyMC5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREhFMjIwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRIRTIyMC5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkaGUzMTkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkaGUzMTkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNmYTk2ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRoZTMxOS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREhFMzE5LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRIRTMxOS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkaGViLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGhlYi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTM1NDhhOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGhlYi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREhFQi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JESEVCLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRoZWxhMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRoZWxhMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTlkNjI2MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGhlbGEyLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JESEVMQTIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREhFTEEyLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRoZWxhMy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRoZWxhMy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjU5M2Y0YgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGhlbGEzLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JESEVMQTMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREhFTEEzLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRoZXB0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGhlcHQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ4YjFkNTgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRoZXB0LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JESEVQVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JESEVQVC5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkaHUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkaHUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ0YzFhNDgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRodS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREhVLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRIVS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkaHUxLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGh1MS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWI5ZWEzOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGh1MS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREhVMS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JESFUxLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRpYm0wMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRpYm0wMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDE5YzgyYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGlibTAyLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElCTTAyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJQk0wMi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQorS2JkTmxzTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkaWMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkaWMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY2OTIyOTcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRpYy5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJQy5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkaW5kZXYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkaW5kZXYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdkZTNhOWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRpbmRldi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElOREVWLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJTkRFVi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkaW5ndWouZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkaW5ndWouZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdkMDYxNjQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRpbmd1ai5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElOR1VKLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJTkdVSi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkaW5oaW4uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkaW5oaW4uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI5Y2I5ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRpbmhpbi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElOSElOLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJTkhJTi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkaW5rYW4uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkaW5rYW4uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRhNDM0ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRpbmthbi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElOS0FOLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJTktBTi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkaW5tYXIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkaW5tYXIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRkN2YwODYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRpbm1hci5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElOTUFSLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJTk1BUi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkaW5wdW4uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkaW5wdW4uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdiY2YxMGEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRpbnB1bi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElOUFVOLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJTlBVTi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkaW50YW0uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkaW50YW0uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc0M2QyNWIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRpbnRhbS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElOVEFNLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJTlRBTS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkaW50ZWwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkaW50ZWwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjczY2QxNDEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRpbnRlbC5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElOVEVMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJTlRFTC5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkaXIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkaXIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY0ZjhlMDYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRpci5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElSLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJUi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkaXQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkaXQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ0MGZiN2MKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRpdC5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJVC5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkaXQxNDIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkaXQxNDIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkwNGY2YjEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRpdDE0Mi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElUMTQyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJVDE0Mi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkanBuLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGpwbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWZjNDE2MgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGpwbi5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkQxMDEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRDEwMS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQorS2JkTmxzTGF5ZXJEZXNjcmlwdG9yDQorS2JkTGF5ZXJSZWFsRGxsRmlsZU5UNA0KK0tiZExheWVyUmVhbERsbEZpbGUNCitLYmRMYXllck11bHRpRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGthei5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRrYXouZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg4ZThlODUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRrYXouZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRLQVouZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREtBWi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2Jka29yLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGtvci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTc0ZjBkYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGtvci5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRLT1IuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREtPUi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQorS2JkTmxzTGF5ZXJEZXNjcmlwdG9yDQorS2JkTGF5ZXJSZWFsRGxsRmlsZU5UNA0KK0tiZExheWVyUmVhbERsbEZpbGUNCitLYmRMYXllck11bHRpRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGt5ci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRreXIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYzMTRlZjIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRreXIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRLWVIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREtZUi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkbGEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkbGEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQzZjM4ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRsYS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRExBLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRMQS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkbGs0MWEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkbGs0MWEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlhNjFiMDUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRsazQxYS5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRMSzQxQS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JETEs0MUEuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KK0tiZE5sc0xheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGxrNDFqLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGxrNDFqLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MzEyMmE5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkbGs0MWouZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JETEs0MUouZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRExLNDFKLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCitLYmRObHNMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRsdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRsdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDM0MTY4YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGx0LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JETFQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRExULmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRsdDEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkbHQxLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hZDdlZDBiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkbHQxLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JETFQxLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRMVDEuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGx2LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZGx2LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hN2E1YjNlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkbHYuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRMVi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JETFYuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZGx2MS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRsdjEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM1N2NhMTcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRsdjEuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRMVjEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRExWMS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkbWFjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZG1hYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDdhOTkzNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZG1hYy5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRE1BQy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JETUFDLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRtb24uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkbW9uLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMWUyM2QyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkbW9uLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JETU9OLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRNT04uZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZG5lLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZG5lLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MmNkYmZjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkbmUuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRORS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JETkUuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZG5lYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRuZWMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRhZGQ2NDgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRuZWMuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JETkVDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRORUMuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KK0tiZE5sc0xheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZG5lYzk1LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZG5lYzk1LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NTQwMzVmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkbmVjOTUuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JETkVDOTUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRE5FQzk1LmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCitLYmRObHNMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRuZWNhdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRuZWNhdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjAyYThiMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZG5lY2F0LmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRE5FQ0FULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRORUNBVC5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQorS2JkTmxzTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkbmVjbnQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkbmVjbnQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU2NmY2ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRuZWNudC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRORUNOVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JETkVDTlQuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KK0tiZE5sc0xheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZG5vLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZG5vLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NWRiYTY3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2Jkbm8uZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkROTy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JETk8uZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZHBsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHBsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZThjNTY3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkcGwuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRQTC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEUEwuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZHBsMS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRwbDEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBlMjFlYWQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRwbDEuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRQTDEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFBMMS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkcG8uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkcG8uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJhODc2YWEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRwby5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFBPLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRQTy5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2Jkcm8uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2Jkcm8uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkwOGY3MzAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRyby5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFJPLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRSTy5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkcnUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkcnUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgxMTAxMmEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRydS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFJVLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRSVS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkcnUxLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHJ1MS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGNiMjY3YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHJ1MS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFJVMS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEUlUxLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRzZi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRzZi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmVmOGQ0ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHNmLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEU0YuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFNGLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRzZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRzZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTY2ZjA5MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHNnLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEU0cuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFNHLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRzbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRzbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjZiYTU2ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHNsLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEU0wuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFNMLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRzbDEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2Jkc2wxLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMGNlNzI4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2Jkc2wxLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEU0wxLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRTTDEuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZHNwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHNwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNWExMTk3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2Jkc3AuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRTUC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEU1AuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZHN3LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHN3LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNGY0OWY2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2Jkc3cuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRTVy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEU1cuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZHN5cjEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2Jkc3lyMS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTdkZmEyYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHN5cjEuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRTWVIxLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRTWVIxLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmRzeXIyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHN5cjIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI2MTlmNjkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmRzeXIyLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEU1lSMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEU1lSMi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkdGF0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHRhdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWJhZGMzMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHRhdC5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFRBVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEVEFULmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmR0aDAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkdGgwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jZTQ5NzUzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkdGgwLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEVEgwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRUSDAuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZHRoMS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmR0aDEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE4YTgyODIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmR0aDEuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRUSDEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFRIMS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkdGgyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHRoMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzU5YjA0YQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHRoMi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFRIMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEVEgyLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmR0aDMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkdGgzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lY2I1ZTUzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkdGgzLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEVEgzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRUSDMuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZHR1Zi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmR0dWYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFiZDdkZmIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmR0dWYuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRUVUYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFRVRi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkdHVxLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHR1cS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGU1MTVjYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHR1cS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFRVUS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEVFVRLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmR1ay5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmR1ay5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWY3NmJkZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHVrLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEVUsuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFVLLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmR1ci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmR1ci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWQyNmZkZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHVyLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEVVIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFVSLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmR1cmR1LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHVyZHUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQyMjg3OWYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmR1cmR1LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEVVJEVS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEVVJEVS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkdXMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkdXMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjViNWMxODIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmR1cy5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFVTLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRVUy5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkdXNhLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHVzYS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzJlY2IxMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHVzYS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFVTQS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEVVNBLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmR1c2wuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkdXNsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMWE3NDg1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkdXNsLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEVVNMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRVU0wuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZHVzci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmR1c3IuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdiMjQwYzUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmR1c3IuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRVU1IuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFVTUi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2JkdXN4LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHVzeC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjQ1ZDIxMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHVzeC5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFVTWC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEVVNYLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmR1emIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkdXpiLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYTMxMDY4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkdXpiLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEVVpCLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRVWkIuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZHZudGMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2Jkdm50Yy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjZkOGQ3NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tiZHZudGMuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRWTlRDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRWTlRDLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rYmR5Y2MuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2JkeWNjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lODc5MGJhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2JkeWNjLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEWUNDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRZQ0MuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tiZHljbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rYmR5Y2wuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY5Y2VjOTEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rYmR5Y2wuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRZQ0wuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFlDTC5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2QxMzk0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tkMTM5NC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGZhODViNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tkMTM5NC5kZWYKQEAgLTAsMCArMSwxNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLRDEzOTQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtEMTM5NC5kbGwNCitFWFBPUlRTDQorS2REMFRyYW5zaXRpb24NCitLZEQzVHJhbnNpdGlvbg0KK0tkRGVidWdnZXJJbml0aWFsaXplMA0KK0tkRGVidWdnZXJJbml0aWFsaXplMQ0KK0tkUmVjZWl2ZVBhY2tldA0KK0tkUmVzdG9yZQ0KK0tkU2F2ZQ0KK0tkU2VuZFBhY2tldA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tkY29tLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tkY29tLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MzVlMzU1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2Rjb20uZGVmCkBAIC0wLDAgKzEsMTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0RDT00uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtEQ09NLmRsbA0KK0VYUE9SVFMNCitLZEQwVHJhbnNpdGlvbg0KK0tkRDNUcmFuc2l0aW9uDQorS2REZWJ1Z2dlckluaXRpYWxpemUwDQorS2REZWJ1Z2dlckluaXRpYWxpemUxDQorS2RSZWNlaXZlUGFja2V0DQorS2RSZXN0b3JlDQorS2RTYXZlDQorS2RTZW5kUGFja2V0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva2VyYmVyb3MuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva2VyYmVyb3MuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg2MjU0NzMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rZXJiZXJvcy5kZWYKQEAgLTAsMCArMSwxOCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLZXJiZXJvcy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS2VyYmVyb3MuZGxsDQorRVhQT1JUUw0KK1NwSW5pdGlhbGl6ZQ0KK0tlcmJEb21haW5DaGFuZ2VDYWxsYmFjaw0KK1NwTHNhTW9kZUluaXRpYWxpemUNCitTcFVzZXJNb2RlSW5pdGlhbGl6ZQ0KK0tlcmJDcmVhdGVUb2tlbkZyb21UaWNrZXQNCitLZXJiRnJlZQ0KK0tlcmJJc0luaXRpYWxpemVkDQorS2VyYktkY0NhbGxCYWNrDQorS2VyYk1ha2VLZGNDYWxsDQorU3BJbnN0YW5jZUluaXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9rZXJuZWwzMi5jIGIvbWluZ3ctdzY0LWNydC9saWIva2VybmVsMzIuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hY2RmMDk4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2VybmVsMzIuYwpAQCAtMCwwICsxLDUwIEBACisvKiBleHRlcm4gKGxpYnJhcnkpIHZlcnNpb25zIG9mIGlubGluZSBmdW5jdGlvbnMgZGVmaW5lZCBpbiB3aW5udC5oICovCisjaWYgMAorI2lmIGRlZmluZWQoX19HTlVDX18pCisKK3ZvaWQqIEdldEN1cnJlbnRGaWJlcih2b2lkKQoreworICAgIHZvaWQqIHJldDsKKyAgICBfX2FzbV9fIHZvbGF0aWxlICgKKwkibW92cQklJWZzOjB4MTAsJTAiCisJOiAiPXIiIChyZXQpIC8qIGFsbG93IHVzZSBvZiByZWcgZWF4LGVieCxlY3gsZWR4LGVzaSxlZGkgKi8KKwkpOworICAgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQqIEdldEZpYmVyRGF0YSh2b2lkKQoreworICAgIHZvaWQqIHJldDsKKyAgICBfX2FzbV9fIHZvbGF0aWxlICggICAgICAgICAgICAKKwkibW92cQklJWZzOjB4MTAsJTBcbiIKKwkibW92cQkoJTApLCUwIgorCTogIj1yIiAocmV0KSAvKiBhbGxvdyB1c2Ugb2YgcmVnIGVheCxlYngsZWN4LGVkeCxlc2ksZWRpICovCisJKTsKKyAgICByZXR1cm4gcmV0OworfQorCisjZWxpZiAhZGVmaW5lZCAoX19XQVRDT01DX18pCisKK3ZvaWQqIEdldEN1cnJlbnRGaWJlcih2b2lkKQoreworICAgIHZvaWQqIHJlczsKKyAgICBfYXNtIHsKKyAgICAJbW92CWVheCwgZHdvcmQgcHRyIGZzOjB4MTAKKyAgICAJbW92CXJlcywgZWF4CisgICAgfTsKKyAgICByZXR1cm4gcmVzOworfQorCit2b2lkKiBHZXRGaWJlckRhdGEodm9pZCkKK3sKKyAgICB2b2lkKiByZXM7CisgICAgX2FzbSB7CisJbW92CWVheCwgZHdvcmQgcHRyIGZzOjB4MTAKKwltb3YJZWF4LCBbZWF4XQorCW1vdglyZXMsIGVheAorICAgIH07CisgICAgcmV0dXJuIHJlczsKK30KKworI2VuZGlmIC8qIF9fR05VQ19fICovCisjZW5kaWYKZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tlcm5lbDMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tlcm5lbDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jOTY3MDU2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIva2VybmVsMzIuZGVmCkBAIC0wLDAgKzEsMTAwMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLRVJORUwzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0VSTkVMMzIuZGxsDQorRVhQT1JUUw0KK0FjdGl2YXRlQWN0Q3R4DQorQWRkQXRvbUENCitBZGRBdG9tVw0KK0FkZENvbnNvbGVBbGlhc0ENCitBZGRDb25zb2xlQWxpYXNXDQorQWRkTG9jYWxBbHRlcm5hdGVDb21wdXRlck5hbWVBDQorQWRkTG9jYWxBbHRlcm5hdGVDb21wdXRlck5hbWVXDQorQWRkUmVmQWN0Q3R4DQorQWRkVmVjdG9yZWRDb250aW51ZUhhbmRsZXINCitBZGRWZWN0b3JlZEV4Y2VwdGlvbkhhbmRsZXINCitBbGxvY0NvbnNvbGUNCitBbGxvY2F0ZVVzZXJQaHlzaWNhbFBhZ2VzDQorQXJlRmlsZUFwaXNBTlNJDQorQXNzaWduUHJvY2Vzc1RvSm9iT2JqZWN0DQorQXR0YWNoQ29uc29sZQ0KK0JhY2t1cFJlYWQNCitCYWNrdXBTZWVrDQorQmFja3VwV3JpdGUNCitCYXNlQ2hlY2tBcHBjb21wYXRDYWNoZQ0KK0Jhc2VDaGVja1J1bkFwcA0KK0Jhc2VDbGVhbnVwQXBwY29tcGF0Q2FjaGVTdXBwb3J0DQorQmFzZUR1bXBBcHBjb21wYXRDYWNoZQ0KK0Jhc2VGbHVzaEFwcGNvbXBhdENhY2hlDQorQmFzZUluaXRBcHBjb21wYXRDYWNoZVN1cHBvcnQNCitCYXNlSXNBcHBjb21wYXRJbmZyYXN0cnVjdHVyZURpc2FibGVkDQorQmFzZVByb2Nlc3NJbml0UG9zdEltcG9ydA0KK0Jhc2VQcm9jZXNzU3RhcnQNCitCYXNlUXVlcnlNb2R1bGVEYXRhDQorQmFzZVRocmVhZFN0YXJ0DQorQmFzZVVwZGF0ZUFwcGNvbXBhdENhY2hlDQorQmFzZXBDaGVja0JhZGFwcA0KK0Jhc2VwQ2hlY2tXaW5TYWZlclJlc3RyaWN0aW9ucw0KK0Jhc2VwRnJlZUFwcENvbXBhdERhdGENCitCZWVwDQorQmVnaW5VcGRhdGVSZXNvdXJjZUENCitCZWdpblVwZGF0ZVJlc291cmNlVw0KK0JpbmRJb0NvbXBsZXRpb25DYWxsYmFjaw0KK0J1aWxkQ29tbURDQkENCitCdWlsZENvbW1EQ0JBbmRUaW1lb3V0c0ENCitCdWlsZENvbW1EQ0JBbmRUaW1lb3V0c1cNCitCdWlsZENvbW1EQ0JXDQorQ2FsbE5hbWVkUGlwZUENCitDYWxsTmFtZWRQaXBlVw0KK0NhbmNlbERldmljZVdha2V1cFJlcXVlc3QNCitDYW5jZWxJbw0KK0NhbmNlbFRpbWVyUXVldWVUaW1lcg0KK0NhbmNlbFdhaXRhYmxlVGltZXINCitDaGFuZ2VUaW1lclF1ZXVlVGltZXINCitDaGVja05hbWVMZWdhbERPUzhEb3QzQQ0KK0NoZWNrTmFtZUxlZ2FsRE9TOERvdDNXDQorQ2hlY2tSZW1vdGVEZWJ1Z2dlclByZXNlbnQNCitDbGVhckNvbW1CcmVhaw0KK0NsZWFyQ29tbUVycm9yDQorQ2xvc2VDb25zb2xlSGFuZGxlDQorQ2xvc2VIYW5kbGUNCitDbG9zZVByb2ZpbGVVc2VyTWFwcGluZw0KK0NtZEJhdE5vdGlmaWNhdGlvbg0KK0NvbW1Db25maWdEaWFsb2dBDQorQ29tbUNvbmZpZ0RpYWxvZ1cNCitDb21wYXJlRmlsZVRpbWUNCitDb21wYXJlU3RyaW5nQQ0KK0NvbXBhcmVTdHJpbmdXDQorQ29ubmVjdE5hbWVkUGlwZQ0KK0NvbnNvbGVJTUVSb3V0aW5lDQorQ29uc29sZU1lbnVDb250cm9sDQorQ29udGludWVEZWJ1Z0V2ZW50DQorQ29udmVydERlZmF1bHRMb2NhbGUNCitDb252ZXJ0RmliZXJUb1RocmVhZA0KK0NvbnZlcnRUaHJlYWRUb0ZpYmVyDQorQ29udmVydFRocmVhZFRvRmliZXJFeA0KK0NvcHlGaWxlQQ0KK0NvcHlGaWxlRXhBDQorQ29weUZpbGVFeFcNCitDb3B5RmlsZVcNCitDb3B5TFpGaWxlDQorQ3JlYXRlQWN0Q3R4QQ0KK0NyZWF0ZUFjdEN0eFcNCitDcmVhdGVDb25zb2xlU2NyZWVuQnVmZmVyDQorQ3JlYXRlRGlyZWN0b3J5QQ0KK0NyZWF0ZURpcmVjdG9yeUV4QQ0KK0NyZWF0ZURpcmVjdG9yeUV4Vw0KK0NyZWF0ZURpcmVjdG9yeVcNCitDcmVhdGVFdmVudEENCitDcmVhdGVFdmVudFcNCitDcmVhdGVGaWJlcg0KK0NyZWF0ZUZpYmVyRXgNCitDcmVhdGVGaWxlQQ0KK0NyZWF0ZUZpbGVNYXBwaW5nQQ0KK0NyZWF0ZUZpbGVNYXBwaW5nVw0KK0NyZWF0ZUZpbGVXDQorQ3JlYXRlSGFyZExpbmtBDQorQ3JlYXRlSGFyZExpbmtXDQorQ3JlYXRlSW9Db21wbGV0aW9uUG9ydA0KK0NyZWF0ZUpvYk9iamVjdEENCitDcmVhdGVKb2JPYmplY3RXDQorQ3JlYXRlSm9iU2V0DQorQ3JlYXRlTWFpbHNsb3RBDQorQ3JlYXRlTWFpbHNsb3RXDQorQ3JlYXRlTWVtb3J5UmVzb3VyY2VOb3RpZmljYXRpb24NCitDcmVhdGVNdXRleEENCitDcmVhdGVNdXRleFcNCitDcmVhdGVOYW1lZFBpcGVBDQorQ3JlYXRlTmFtZWRQaXBlVw0KK0NyZWF0ZU5sc1NlY3VyaXR5RGVzY3JpcHRvcg0KK0NyZWF0ZVBpcGUNCitDcmVhdGVQcm9jZXNzQQ0KK0NyZWF0ZVByb2Nlc3NJbnRlcm5hbEENCitDcmVhdGVQcm9jZXNzSW50ZXJuYWxXDQorQ3JlYXRlUHJvY2Vzc1cNCitDcmVhdGVSZW1vdGVUaHJlYWQNCitDcmVhdGVTZW1hcGhvcmVBDQorQ3JlYXRlU2VtYXBob3JlVw0KK0NyZWF0ZVRhcGVQYXJ0aXRpb24NCitDcmVhdGVUaHJlYWQNCitDcmVhdGVUaW1lclF1ZXVlDQorQ3JlYXRlVGltZXJRdWV1ZVRpbWVyDQorQ3JlYXRlVG9vbGhlbHAzMlNuYXBzaG90DQorQ3JlYXRlV2FpdGFibGVUaW1lckENCitDcmVhdGVXYWl0YWJsZVRpbWVyVw0KK0N0cmxSb3V0aW5lDQorRGVhY3RpdmF0ZUFjdEN0eA0KK0RlYnVnQWN0aXZlUHJvY2Vzcw0KK0RlYnVnQWN0aXZlUHJvY2Vzc1N0b3ANCitEZWJ1Z0JyZWFrDQorRGVidWdCcmVha1Byb2Nlc3MNCitEZWJ1Z1NldFByb2Nlc3NLaWxsT25FeGl0DQorRGVjb2RlUG9pbnRlcg0KK0RlY29kZVN5c3RlbVBvaW50ZXINCitEZWZpbmVEb3NEZXZpY2VBDQorRGVmaW5lRG9zRGV2aWNlVw0KK0RlbGF5TG9hZEZhaWx1cmVIb29rDQorRGVsZXRlQXRvbQ0KK0RlbGV0ZUNyaXRpY2FsU2VjdGlvbg0KK0RlbGV0ZUZpYmVyDQorRGVsZXRlRmlsZUENCitEZWxldGVGaWxlVw0KK0RlbGV0ZVRpbWVyUXVldWUNCitEZWxldGVUaW1lclF1ZXVlRXgNCitEZWxldGVUaW1lclF1ZXVlVGltZXINCitEZWxldGVWb2x1bWVNb3VudFBvaW50QQ0KK0RlbGV0ZVZvbHVtZU1vdW50UG9pbnRXDQorRGV2aWNlSW9Db250cm9sDQorRGlzYWJsZVRocmVhZExpYnJhcnlDYWxscw0KK0Rpc2Nvbm5lY3ROYW1lZFBpcGUNCitEbnNIb3N0bmFtZVRvQ29tcHV0ZXJOYW1lQQ0KK0Ruc0hvc3RuYW1lVG9Db21wdXRlck5hbWVXDQorRG9zRGF0ZVRpbWVUb0ZpbGVUaW1lDQorRG9zUGF0aFRvU2Vzc2lvblBhdGhBDQorRG9zUGF0aFRvU2Vzc2lvblBhdGhXDQorRHVwbGljYXRlQ29uc29sZUhhbmRsZQ0KK0R1cGxpY2F0ZUhhbmRsZQ0KK0VuY29kZVBvaW50ZXINCitFbmNvZGVTeXN0ZW1Qb2ludGVyDQorRW5kVXBkYXRlUmVzb3VyY2VBDQorRW5kVXBkYXRlUmVzb3VyY2VXDQorRW50ZXJDcml0aWNhbFNlY3Rpb24NCitFbnVtQ2FsZW5kYXJJbmZvQQ0KK0VudW1DYWxlbmRhckluZm9FeEENCitFbnVtQ2FsZW5kYXJJbmZvRXhXDQorRW51bUNhbGVuZGFySW5mb1cNCitFbnVtRGF0ZUZvcm1hdHNBDQorRW51bURhdGVGb3JtYXRzRXhBDQorRW51bURhdGVGb3JtYXRzRXhXDQorRW51bURhdGVGb3JtYXRzVw0KK0VudW1MYW5ndWFnZUdyb3VwTG9jYWxlc0ENCitFbnVtTGFuZ3VhZ2VHcm91cExvY2FsZXNXDQorRW51bVJlc291cmNlTGFuZ3VhZ2VzQQ0KK0VudW1SZXNvdXJjZUxhbmd1YWdlc1cNCitFbnVtUmVzb3VyY2VOYW1lc0ENCitFbnVtUmVzb3VyY2VOYW1lc1cNCitFbnVtUmVzb3VyY2VUeXBlc0ENCitFbnVtUmVzb3VyY2VUeXBlc1cNCitFbnVtU3lzdGVtQ29kZVBhZ2VzQQ0KK0VudW1TeXN0ZW1Db2RlUGFnZXNXDQorRW51bVN5c3RlbUZpcm13YXJlVGFibGVzDQorRW51bVN5c3RlbUdlb0lEDQorRW51bVN5c3RlbUxhbmd1YWdlR3JvdXBzQQ0KK0VudW1TeXN0ZW1MYW5ndWFnZUdyb3Vwc1cNCitFbnVtU3lzdGVtTG9jYWxlc0ENCitFbnVtU3lzdGVtTG9jYWxlc1cNCitFbnVtVGltZUZvcm1hdHNBDQorRW51bVRpbWVGb3JtYXRzVw0KK0VudW1VSUxhbmd1YWdlc0ENCitFbnVtVUlMYW5ndWFnZXNXDQorRW51bWVyYXRlTG9jYWxDb21wdXRlck5hbWVzQQ0KK0VudW1lcmF0ZUxvY2FsQ29tcHV0ZXJOYW1lc1cNCitFcmFzZVRhcGUNCitFc2NhcGVDb21tRnVuY3Rpb24NCitFeGl0UHJvY2Vzcw0KK0V4aXRUaHJlYWQNCitFeGl0VkRNDQorRXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzQQ0KK0V4cGFuZEVudmlyb25tZW50U3RyaW5nc1cNCitFeHB1bmdlQ29uc29sZUNvbW1hbmRIaXN0b3J5QQ0KK0V4cHVuZ2VDb25zb2xlQ29tbWFuZEhpc3RvcnlXDQorRmF0YWxBcHBFeGl0QQ0KK0ZhdGFsQXBwRXhpdFcNCitGYXRhbEV4aXQNCitGaWxlVGltZVRvRG9zRGF0ZVRpbWUNCitGaWxlVGltZVRvTG9jYWxGaWxlVGltZQ0KK0ZpbGVUaW1lVG9TeXN0ZW1UaW1lDQorRmlsbENvbnNvbGVPdXRwdXRBdHRyaWJ1dGUNCitGaWxsQ29uc29sZU91dHB1dENoYXJhY3RlckENCitGaWxsQ29uc29sZU91dHB1dENoYXJhY3RlclcNCitGaW5kQWN0Q3R4U2VjdGlvbkd1aWQNCitGaW5kQWN0Q3R4U2VjdGlvblN0cmluZ0ENCitGaW5kQWN0Q3R4U2VjdGlvblN0cmluZ1cNCitGaW5kQXRvbUENCitGaW5kQXRvbVcNCitGaW5kQ2xvc2UNCitGaW5kQ2xvc2VDaGFuZ2VOb3RpZmljYXRpb24NCitGaW5kRmlyc3RDaGFuZ2VOb3RpZmljYXRpb25BDQorRmluZEZpcnN0Q2hhbmdlTm90aWZpY2F0aW9uVw0KK0ZpbmRGaXJzdEZpbGVBDQorRmluZEZpcnN0RmlsZUV4QQ0KK0ZpbmRGaXJzdEZpbGVFeFcNCitGaW5kRmlyc3RGaWxlVw0KK0ZpbmRGaXJzdFN0cmVhbVcNCitGaW5kRmlyc3RWb2x1bWVBDQorRmluZEZpcnN0Vm9sdW1lTW91bnRQb2ludEENCitGaW5kRmlyc3RWb2x1bWVNb3VudFBvaW50Vw0KK0ZpbmRGaXJzdFZvbHVtZVcNCitGaW5kTmV4dENoYW5nZU5vdGlmaWNhdGlvbg0KK0ZpbmROZXh0RmlsZUENCitGaW5kTmV4dEZpbGVXDQorRmluZE5leHRTdHJlYW1XDQorRmluZE5leHRWb2x1bWVBDQorRmluZE5leHRWb2x1bWVNb3VudFBvaW50QQ0KK0ZpbmROZXh0Vm9sdW1lTW91bnRQb2ludFcNCitGaW5kTmV4dFZvbHVtZVcNCitGaW5kUmVzb3VyY2VBDQorRmluZFJlc291cmNlRXhBDQorRmluZFJlc291cmNlRXhXDQorRmluZFJlc291cmNlVw0KK0ZpbmRWb2x1bWVDbG9zZQ0KK0ZpbmRWb2x1bWVNb3VudFBvaW50Q2xvc2UNCitGbHNBbGxvYw0KK0Zsc0ZyZWUNCitGbHNHZXRWYWx1ZQ0KK0Zsc1NldFZhbHVlDQorRmx1c2hDb25zb2xlSW5wdXRCdWZmZXINCitGbHVzaEZpbGVCdWZmZXJzDQorRmx1c2hJbnN0cnVjdGlvbkNhY2hlDQorRmx1c2hWaWV3T2ZGaWxlDQorRm9sZFN0cmluZ0ENCitGb2xkU3RyaW5nVw0KK0Zvcm1hdE1lc3NhZ2VBDQorRm9ybWF0TWVzc2FnZVcNCitGcmVlQ29uc29sZQ0KK0ZyZWVFbnZpcm9ubWVudFN0cmluZ3NBDQorRnJlZUVudmlyb25tZW50U3RyaW5nc1cNCitGcmVlTGlicmFyeQ0KK0ZyZWVMaWJyYXJ5QW5kRXhpdFRocmVhZA0KK0ZyZWVSZXNvdXJjZQ0KK0ZyZWVVc2VyUGh5c2ljYWxQYWdlcw0KK0dlbmVyYXRlQ29uc29sZUN0cmxFdmVudA0KK0dldEFDUA0KK0dldEF0b21OYW1lQQ0KK0dldEF0b21OYW1lVw0KK0dldEJpbmFyeVR5cGUNCitHZXRCaW5hcnlUeXBlQQ0KK0dldEJpbmFyeVR5cGVXDQorR2V0Q1BGaWxlTmFtZUZyb21SZWdpc3RyeQ0KK0dldENQSW5mbw0KK0dldENQSW5mb0V4QQ0KK0dldENQSW5mb0V4Vw0KK0dldENhbGVuZGFySW5mb0ENCitHZXRDYWxlbmRhckluZm9XDQorR2V0Q29tUGx1c1BhY2thZ2VJbnN0YWxsU3RhdHVzDQorR2V0Q29tbUNvbmZpZw0KK0dldENvbW1NYXNrDQorR2V0Q29tbU1vZGVtU3RhdHVzDQorR2V0Q29tbVByb3BlcnRpZXMNCitHZXRDb21tU3RhdGUNCitHZXRDb21tVGltZW91dHMNCitHZXRDb21tYW5kTGluZUENCitHZXRDb21tYW5kTGluZVcNCitHZXRDb21wcmVzc2VkRmlsZVNpemVBDQorR2V0Q29tcHJlc3NlZEZpbGVTaXplVw0KK0dldENvbXB1dGVyTmFtZUENCitHZXRDb21wdXRlck5hbWVFeEENCitHZXRDb21wdXRlck5hbWVFeFcNCitHZXRDb21wdXRlck5hbWVXDQorR2V0Q29uc29sZUFsaWFzQQ0KK0dldENvbnNvbGVBbGlhc0V4ZXNBDQorR2V0Q29uc29sZUFsaWFzRXhlc0xlbmd0aEENCitHZXRDb25zb2xlQWxpYXNFeGVzTGVuZ3RoVw0KK0dldENvbnNvbGVBbGlhc0V4ZXNXDQorR2V0Q29uc29sZUFsaWFzVw0KK0dldENvbnNvbGVBbGlhc2VzQQ0KK0dldENvbnNvbGVBbGlhc2VzTGVuZ3RoQQ0KK0dldENvbnNvbGVBbGlhc2VzTGVuZ3RoVw0KK0dldENvbnNvbGVBbGlhc2VzVw0KK0dldENvbnNvbGVDUA0KK0dldENvbnNvbGVDaGFyVHlwZQ0KK0dldENvbnNvbGVDb21tYW5kSGlzdG9yeUENCitHZXRDb25zb2xlQ29tbWFuZEhpc3RvcnlMZW5ndGhBDQorR2V0Q29uc29sZUNvbW1hbmRIaXN0b3J5TGVuZ3RoVw0KK0dldENvbnNvbGVDb21tYW5kSGlzdG9yeVcNCitHZXRDb25zb2xlQ3Vyc29ySW5mbw0KK0dldENvbnNvbGVDdXJzb3JNb2RlDQorR2V0Q29uc29sZURpc3BsYXlNb2RlDQorR2V0Q29uc29sZUZvbnRJbmZvDQorR2V0Q29uc29sZUZvbnRTaXplDQorR2V0Q29uc29sZUhhcmR3YXJlU3RhdGUNCitHZXRDb25zb2xlSW5wdXRFeGVOYW1lQQ0KK0dldENvbnNvbGVJbnB1dEV4ZU5hbWVXDQorR2V0Q29uc29sZUlucHV0V2FpdEhhbmRsZQ0KK0dldENvbnNvbGVLZXlib2FyZExheW91dE5hbWVBDQorR2V0Q29uc29sZUtleWJvYXJkTGF5b3V0TmFtZVcNCitHZXRDb25zb2xlTW9kZQ0KK0dldENvbnNvbGVObHNNb2RlDQorR2V0Q29uc29sZU91dHB1dENQDQorR2V0Q29uc29sZVByb2Nlc3NMaXN0DQorR2V0Q29uc29sZVNjcmVlbkJ1ZmZlckluZm8NCitHZXRDb25zb2xlU2VsZWN0aW9uSW5mbw0KK0dldENvbnNvbGVUaXRsZUENCitHZXRDb25zb2xlVGl0bGVXDQorR2V0Q29uc29sZVdpbmRvdw0KK0dldEN1cnJlbmN5Rm9ybWF0QQ0KK0dldEN1cnJlbmN5Rm9ybWF0Vw0KK0dldEN1cnJlbnRBY3RDdHgNCitHZXRDdXJyZW50Q29uc29sZUZvbnQNCitHZXRDdXJyZW50RGlyZWN0b3J5QQ0KK0dldEN1cnJlbnREaXJlY3RvcnlXDQorR2V0Q3VycmVudFByb2Nlc3MNCitHZXRDdXJyZW50UHJvY2Vzc0lkDQorR2V0Q3VycmVudFByb2Nlc3Nvck51bWJlcg0KK0dldEN1cnJlbnRUaHJlYWQNCitHZXRDdXJyZW50VGhyZWFkSWQNCitHZXREYXRlRm9ybWF0QQ0KK0dldERhdGVGb3JtYXRXDQorR2V0RGVmYXVsdENvbW1Db25maWdBDQorR2V0RGVmYXVsdENvbW1Db25maWdXDQorR2V0RGVmYXVsdFNvcnRrZXlTaXplDQorR2V0RGV2aWNlUG93ZXJTdGF0ZQ0KK0dldERpc2tGcmVlU3BhY2VBDQorR2V0RGlza0ZyZWVTcGFjZUV4QQ0KK0dldERpc2tGcmVlU3BhY2VFeFcNCitHZXREaXNrRnJlZVNwYWNlVw0KK0dldERsbERpcmVjdG9yeUENCitHZXREbGxEaXJlY3RvcnlXDQorR2V0RHJpdmVUeXBlQQ0KK0dldERyaXZlVHlwZVcNCitHZXRFbnZpcm9ubWVudFN0cmluZ3MNCitHZXRFbnZpcm9ubWVudFN0cmluZ3NBDQorR2V0RW52aXJvbm1lbnRTdHJpbmdzVw0KK0dldEVudmlyb25tZW50VmFyaWFibGVBDQorR2V0RW52aXJvbm1lbnRWYXJpYWJsZVcNCitHZXRFeGl0Q29kZVByb2Nlc3MNCitHZXRFeGl0Q29kZVRocmVhZA0KK0dldEV4cGFuZGVkTmFtZUENCitHZXRFeHBhbmRlZE5hbWVXDQorR2V0RmlsZUF0dHJpYnV0ZXNBDQorR2V0RmlsZUF0dHJpYnV0ZXNFeEENCitHZXRGaWxlQXR0cmlidXRlc0V4Vw0KK0dldEZpbGVBdHRyaWJ1dGVzVw0KK0dldEZpbGVJbmZvcm1hdGlvbkJ5SGFuZGxlDQorR2V0RmlsZVNpemUNCitHZXRGaWxlU2l6ZUV4DQorR2V0RmlsZVRpbWUNCitHZXRGaWxlVHlwZQ0KK0dldEZpcm13YXJlRW52aXJvbm1lbnRWYXJpYWJsZUENCitHZXRGaXJtd2FyZUVudmlyb25tZW50VmFyaWFibGVXDQorR2V0RnVsbFBhdGhOYW1lQQ0KK0dldEZ1bGxQYXRoTmFtZVcNCitHZXRHZW9JbmZvQQ0KK0dldEdlb0luZm9XDQorR2V0SGFuZGxlSW5mb3JtYXRpb24NCitHZXRMYXJnZVBhZ2VNaW5pbXVtDQorR2V0TGFyZ2VzdENvbnNvbGVXaW5kb3dTaXplDQorR2V0TGFzdEVycm9yDQorR2V0TGluZ3Vpc3RMYW5nU2l6ZQ0KK0dldExvY2FsVGltZQ0KK0dldExvY2FsZUluZm9BDQorR2V0TG9jYWxlSW5mb1cNCitHZXRMb2dpY2FsRHJpdmVTdHJpbmdzQQ0KK0dldExvZ2ljYWxEcml2ZVN0cmluZ3NXDQorR2V0TG9naWNhbERyaXZlcw0KK0dldExvZ2ljYWxQcm9jZXNzb3JJbmZvcm1hdGlvbg0KK0dldExvbmdQYXRoTmFtZUENCitHZXRMb25nUGF0aE5hbWVXDQorR2V0TWFpbHNsb3RJbmZvDQorR2V0TW9kdWxlRmlsZU5hbWVBDQorR2V0TW9kdWxlRmlsZU5hbWVXDQorR2V0TW9kdWxlSGFuZGxlQQ0KK0dldE1vZHVsZUhhbmRsZUV4QQ0KK0dldE1vZHVsZUhhbmRsZUV4Vw0KK0dldE1vZHVsZUhhbmRsZVcNCitHZXROTFNWZXJzaW9uDQorR2V0TmFtZWRQaXBlSGFuZGxlU3RhdGVBDQorR2V0TmFtZWRQaXBlSGFuZGxlU3RhdGVXDQorR2V0TmFtZWRQaXBlSW5mbw0KK0dldE5hdGl2ZVN5c3RlbUluZm8NCitHZXROZXh0VkRNQ29tbWFuZA0KK0dldE5sc1NlY3Rpb25OYW1lDQorR2V0TnVtYUF2YWlsYWJsZU1lbW9yeU5vZGUNCitHZXROdW1hSGlnaGVzdE5vZGVOdW1iZXINCitHZXROdW1hTm9kZVByb2Nlc3Nvck1hc2sNCitHZXROdW1hUHJvY2Vzc29yTm9kZQ0KK0dldE51bWJlckZvcm1hdEENCitHZXROdW1iZXJGb3JtYXRXDQorR2V0TnVtYmVyT2ZDb25zb2xlRm9udHMNCitHZXROdW1iZXJPZkNvbnNvbGVJbnB1dEV2ZW50cw0KK0dldE51bWJlck9mQ29uc29sZU1vdXNlQnV0dG9ucw0KK0dldE9FTUNQDQorR2V0T3ZlcmxhcHBlZFJlc3VsdA0KK0dldFByaW9yaXR5Q2xhc3MNCitHZXRQcml2YXRlUHJvZmlsZUludEENCitHZXRQcml2YXRlUHJvZmlsZUludFcNCitHZXRQcml2YXRlUHJvZmlsZVNlY3Rpb25BDQorR2V0UHJpdmF0ZVByb2ZpbGVTZWN0aW9uTmFtZXNBDQorR2V0UHJpdmF0ZVByb2ZpbGVTZWN0aW9uTmFtZXNXDQorR2V0UHJpdmF0ZVByb2ZpbGVTZWN0aW9uVw0KK0dldFByaXZhdGVQcm9maWxlU3RyaW5nQQ0KK0dldFByaXZhdGVQcm9maWxlU3RyaW5nVw0KK0dldFByaXZhdGVQcm9maWxlU3RydWN0QQ0KK0dldFByaXZhdGVQcm9maWxlU3RydWN0Vw0KK0dldFByb2NBZGRyZXNzDQorR2V0UHJvY2Vzc0FmZmluaXR5TWFzaw0KK0dldFByb2Nlc3NIYW5kbGVDb3VudA0KK0dldFByb2Nlc3NIZWFwDQorR2V0UHJvY2Vzc0hlYXBzDQorR2V0UHJvY2Vzc0lkDQorR2V0UHJvY2Vzc0lkT2ZUaHJlYWQNCitHZXRQcm9jZXNzSW9Db3VudGVycw0KK0dldFByb2Nlc3NQcmlvcml0eUJvb3N0DQorR2V0UHJvY2Vzc1NodXRkb3duUGFyYW1ldGVycw0KK0dldFByb2Nlc3NUaW1lcw0KK0dldFByb2Nlc3NWZXJzaW9uDQorR2V0UHJvY2Vzc1dvcmtpbmdTZXRTaXplDQorR2V0UHJvY2Vzc1dvcmtpbmdTZXRTaXplRXgNCitHZXRQcm9maWxlSW50QQ0KK0dldFByb2ZpbGVJbnRXDQorR2V0UHJvZmlsZVNlY3Rpb25BDQorR2V0UHJvZmlsZVNlY3Rpb25XDQorR2V0UHJvZmlsZVN0cmluZ0ENCitHZXRQcm9maWxlU3RyaW5nVw0KK0dldFF1ZXVlZENvbXBsZXRpb25TdGF0dXMNCitHZXRTaG9ydFBhdGhOYW1lQQ0KK0dldFNob3J0UGF0aE5hbWVXDQorR2V0U3RhcnR1cEluZm9BDQorR2V0U3RhcnR1cEluZm9XDQorR2V0U3RkSGFuZGxlDQorR2V0U3RyaW5nVHlwZUENCitHZXRTdHJpbmdUeXBlRXhBDQorR2V0U3RyaW5nVHlwZUV4Vw0KK0dldFN0cmluZ1R5cGVXDQorR2V0U3lzdGVtRGVmYXVsdExDSUQNCitHZXRTeXN0ZW1EZWZhdWx0TGFuZ0lEDQorR2V0U3lzdGVtRGVmYXVsdFVJTGFuZ3VhZ2UNCitHZXRTeXN0ZW1EaXJlY3RvcnlBDQorR2V0U3lzdGVtRGlyZWN0b3J5Vw0KK0dldFN5c3RlbUZpbGVDYWNoZVNpemUNCitHZXRTeXN0ZW1GaXJtd2FyZVRhYmxlDQorR2V0U3lzdGVtSW5mbw0KK0dldFN5c3RlbVBvd2VyU3RhdHVzDQorR2V0U3lzdGVtUmVnaXN0cnlRdW90YQ0KK0dldFN5c3RlbVRpbWUNCitHZXRTeXN0ZW1UaW1lQWRqdXN0bWVudA0KK0dldFN5c3RlbVRpbWVBc0ZpbGVUaW1lDQorR2V0U3lzdGVtVGltZXMNCitHZXRTeXN0ZW1XaW5kb3dzRGlyZWN0b3J5QQ0KK0dldFN5c3RlbVdpbmRvd3NEaXJlY3RvcnlXDQorR2V0U3lzdGVtV293NjREaXJlY3RvcnlBDQorR2V0U3lzdGVtV293NjREaXJlY3RvcnlXDQorR2V0VGFwZVBhcmFtZXRlcnMNCitHZXRUYXBlUG9zaXRpb24NCitHZXRUYXBlU3RhdHVzDQorR2V0VGVtcEZpbGVOYW1lQQ0KK0dldFRlbXBGaWxlTmFtZVcNCitHZXRUZW1wUGF0aEENCitHZXRUZW1wUGF0aFcNCitHZXRUaHJlYWRDb250ZXh0DQorR2V0VGhyZWFkSU9QZW5kaW5nRmxhZw0KK0dldFRocmVhZElkDQorR2V0VGhyZWFkTG9jYWxlDQorR2V0VGhyZWFkUHJpb3JpdHkNCitHZXRUaHJlYWRQcmlvcml0eUJvb3N0DQorR2V0VGhyZWFkU2VsZWN0b3JFbnRyeQ0KK0dldFRocmVhZFRpbWVzDQorR2V0VGlja0NvdW50DQorR2V0VGltZUZvcm1hdEENCitHZXRUaW1lRm9ybWF0Vw0KK0dldFRpbWVab25lSW5mb3JtYXRpb24NCitHZXRVc2VyRGVmYXVsdExDSUQNCitHZXRVc2VyRGVmYXVsdExhbmdJRA0KK0dldFVzZXJEZWZhdWx0VUlMYW5ndWFnZQ0KK0dldFVzZXJHZW9JRA0KK0dldFZETUN1cnJlbnREaXJlY3Rvcmllcw0KK0dldFZlcnNpb24NCitHZXRWZXJzaW9uRXhBDQorR2V0VmVyc2lvbkV4Vw0KK0dldFZvbHVtZUluZm9ybWF0aW9uQQ0KK0dldFZvbHVtZUluZm9ybWF0aW9uVw0KK0dldFZvbHVtZU5hbWVGb3JWb2x1bWVNb3VudFBvaW50QQ0KK0dldFZvbHVtZU5hbWVGb3JWb2x1bWVNb3VudFBvaW50Vw0KK0dldFZvbHVtZVBhdGhOYW1lQQ0KK0dldFZvbHVtZVBhdGhOYW1lVw0KK0dldFZvbHVtZVBhdGhOYW1lc0ZvclZvbHVtZU5hbWVBDQorR2V0Vm9sdW1lUGF0aE5hbWVzRm9yVm9sdW1lTmFtZVcNCitHZXRXaW5kb3dzRGlyZWN0b3J5QQ0KK0dldFdpbmRvd3NEaXJlY3RvcnlXDQorR2V0V3JpdGVXYXRjaA0KK0dsb2JhbEFkZEF0b21BDQorR2xvYmFsQWRkQXRvbVcNCitHbG9iYWxBbGxvYw0KK0dsb2JhbENvbXBhY3QNCitHbG9iYWxEZWxldGVBdG9tDQorR2xvYmFsRmluZEF0b21BDQorR2xvYmFsRmluZEF0b21XDQorR2xvYmFsRml4DQorR2xvYmFsRmxhZ3MNCitHbG9iYWxGcmVlDQorR2xvYmFsR2V0QXRvbU5hbWVBDQorR2xvYmFsR2V0QXRvbU5hbWVXDQorR2xvYmFsSGFuZGxlDQorR2xvYmFsTG9jaw0KK0dsb2JhbE1lbW9yeVN0YXR1cw0KK0dsb2JhbE1lbW9yeVN0YXR1c0V4DQorR2xvYmFsUmVBbGxvYw0KK0dsb2JhbFNpemUNCitHbG9iYWxVbldpcmUNCitHbG9iYWxVbmZpeA0KK0dsb2JhbFVubG9jaw0KK0dsb2JhbFdpcmUNCitIZWFwMzJGaXJzdA0KK0hlYXAzMkxpc3RGaXJzdA0KK0hlYXAzMkxpc3ROZXh0DQorSGVhcDMyTmV4dA0KK0hlYXBBbGxvYw0KK0hlYXBDb21wYWN0DQorSGVhcENyZWF0ZQ0KK0hlYXBDcmVhdGVUYWdzVw0KK0hlYXBEZXN0cm95DQorSGVhcEV4dGVuZA0KK0hlYXBGcmVlDQorSGVhcExvY2sNCitIZWFwUXVlcnlJbmZvcm1hdGlvbg0KK0hlYXBRdWVyeVRhZ1cNCitIZWFwUmVBbGxvYw0KK0hlYXBTZXRJbmZvcm1hdGlvbg0KK0hlYXBTaXplDQorSGVhcFN1bW1hcnkNCitIZWFwVW5sb2NrDQorSGVhcFVzYWdlDQorSGVhcFZhbGlkYXRlDQorSGVhcFdhbGsNCitJbml0QXRvbVRhYmxlDQorSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbg0KK0luaXRpYWxpemVDcml0aWNhbFNlY3Rpb25BbmRTcGluQ291bnQNCitJbml0aWFsaXplU0xpc3RIZWFkDQorSW50ZXJsb2NrZWRGbHVzaFNMaXN0DQorSW50ZXJsb2NrZWRQb3BFbnRyeVNMaXN0DQorSW50ZXJsb2NrZWRQdXNoRW50cnlTTGlzdA0KK0ludmFsaWRhdGVDb25zb2xlRElCaXRzDQorSXNCYWRDb2RlUHRyDQorSXNCYWRIdWdlUmVhZFB0cg0KK0lzQmFkSHVnZVdyaXRlUHRyDQorSXNCYWRSZWFkUHRyDQorSXNCYWRTdHJpbmdQdHJBDQorSXNCYWRTdHJpbmdQdHJXDQorSXNCYWRXcml0ZVB0cg0KK0lzREJDU0xlYWRCeXRlDQorSXNEQkNTTGVhZEJ5dGVFeA0KK0lzRGVidWdnZXJQcmVzZW50DQorSXNOTFNEZWZpbmVkU3RyaW5nDQorSXNQcm9jZXNzSW5Kb2INCitJc1Byb2Nlc3NvckZlYXR1cmVQcmVzZW50DQorSXNTeXN0ZW1SZXN1bWVBdXRvbWF0aWMNCitJc1RpbWVab25lUmVkaXJlY3Rpb25FbmFibGVkDQorSXNWYWxpZENvZGVQYWdlDQorSXNWYWxpZExhbmd1YWdlR3JvdXANCitJc1ZhbGlkTG9jYWxlDQorSXNWYWxpZFVJTGFuZ3VhZ2UNCitJc1dvdzY0UHJvY2Vzcw0KK0xDTWFwU3RyaW5nQQ0KK0xDTWFwU3RyaW5nVw0KK0xaQ2xvc2UNCitMWkNsb3NlRmlsZQ0KK0xaQ29weQ0KK0xaQ3JlYXRlRmlsZVcNCitMWkRvbmUNCitMWkluaXQNCitMWk9wZW5GaWxlQQ0KK0xaT3BlbkZpbGVXDQorTFpSZWFkDQorTFpTZWVrDQorTFpTdGFydA0KK0xlYXZlQ3JpdGljYWxTZWN0aW9uDQorTG9hZExpYnJhcnlBDQorTG9hZExpYnJhcnlFeEENCitMb2FkTGlicmFyeUV4Vw0KK0xvYWRMaWJyYXJ5Vw0KK0xvYWRNb2R1bGUNCitMb2FkUmVzb3VyY2UNCitMb2NhbEFsbG9jDQorTG9jYWxDb21wYWN0DQorTG9jYWxGaWxlVGltZVRvRmlsZVRpbWUNCitMb2NhbEZsYWdzDQorTG9jYWxGcmVlDQorTG9jYWxIYW5kbGUNCitMb2NhbExvY2sNCitMb2NhbFJlQWxsb2MNCitMb2NhbFNocmluaw0KK0xvY2FsU2l6ZQ0KK0xvY2FsVW5sb2NrDQorTG9ja0ZpbGUNCitMb2NrRmlsZUV4DQorTG9ja1Jlc291cmNlDQorTWFwVXNlclBoeXNpY2FsUGFnZXMNCitNYXBVc2VyUGh5c2ljYWxQYWdlc1NjYXR0ZXINCitNYXBWaWV3T2ZGaWxlDQorTWFwVmlld09mRmlsZUV4DQorTW9kdWxlMzJGaXJzdA0KK01vZHVsZTMyRmlyc3RXDQorTW9kdWxlMzJOZXh0DQorTW9kdWxlMzJOZXh0Vw0KK01vdmVGaWxlQQ0KK01vdmVGaWxlRXhBDQorTW92ZUZpbGVFeFcNCitNb3ZlRmlsZVcNCitNb3ZlRmlsZVdpdGhQcm9ncmVzc0ENCitNb3ZlRmlsZVdpdGhQcm9ncmVzc1cNCitNdWxEaXYNCitNdWx0aUJ5dGVUb1dpZGVDaGFyDQorTmVlZEN1cnJlbnREaXJlY3RvcnlGb3JFeGVQYXRoQQ0KK05lZWRDdXJyZW50RGlyZWN0b3J5Rm9yRXhlUGF0aFcNCitObHNDb252ZXJ0SW50ZWdlclRvU3RyaW5nDQorTmxzR2V0Q2FjaGVVcGRhdGVDb3VudA0KK05sc1Jlc2V0UHJvY2Vzc0xvY2FsZQ0KK09wZW5Db25zb2xlVw0KK09wZW5EYXRhRmlsZQ0KK09wZW5FdmVudEENCitPcGVuRXZlbnRXDQorT3BlbkZpbGUNCitPcGVuRmlsZU1hcHBpbmdBDQorT3BlbkZpbGVNYXBwaW5nVw0KK09wZW5Kb2JPYmplY3RBDQorT3BlbkpvYk9iamVjdFcNCitPcGVuTXV0ZXhBDQorT3Blbk11dGV4Vw0KK09wZW5Qcm9jZXNzDQorT3BlblByb2ZpbGVVc2VyTWFwcGluZw0KK09wZW5TZW1hcGhvcmVBDQorT3BlblNlbWFwaG9yZVcNCitPcGVuVGhyZWFkDQorT3BlbldhaXRhYmxlVGltZXJBDQorT3BlbldhaXRhYmxlVGltZXJXDQorT3V0cHV0RGVidWdTdHJpbmdBDQorT3V0cHV0RGVidWdTdHJpbmdXDQorUGVla0NvbnNvbGVJbnB1dEENCitQZWVrQ29uc29sZUlucHV0Vw0KK1BlZWtOYW1lZFBpcGUNCitQb3N0UXVldWVkQ29tcGxldGlvblN0YXR1cw0KK1ByZXBhcmVUYXBlDQorUHJpdkNvcHlGaWxlRXhXDQorUHJpdk1vdmVGaWxlSWRlbnRpdHlXDQorUHJvY2VzczMyRmlyc3QNCitQcm9jZXNzMzJGaXJzdFcNCitQcm9jZXNzMzJOZXh0DQorUHJvY2VzczMyTmV4dFcNCitQcm9jZXNzSWRUb1Nlc3Npb25JZA0KK1B1bHNlRXZlbnQNCitQdXJnZUNvbW0NCitRdWVyeUFjdEN0eFcNCitRdWVyeURlcHRoU0xpc3QNCitRdWVyeURvc0RldmljZUENCitRdWVyeURvc0RldmljZVcNCitRdWVyeUluZm9ybWF0aW9uSm9iT2JqZWN0DQorUXVlcnlNZW1vcnlSZXNvdXJjZU5vdGlmaWNhdGlvbg0KK1F1ZXJ5UGVyZm9ybWFuY2VDb3VudGVyDQorUXVlcnlQZXJmb3JtYW5jZUZyZXF1ZW5jeQ0KK1F1ZXVlVXNlckFQQw0KK1F1ZXVlVXNlcldvcmtJdGVtDQorUmFpc2VFeGNlcHRpb24NCitSZU9wZW5GaWxlDQorUmVhZENvbnNvbGVBDQorUmVhZENvbnNvbGVJbnB1dEENCitSZWFkQ29uc29sZUlucHV0RXhBDQorUmVhZENvbnNvbGVJbnB1dEV4Vw0KK1JlYWRDb25zb2xlSW5wdXRXDQorUmVhZENvbnNvbGVPdXRwdXRBDQorUmVhZENvbnNvbGVPdXRwdXRBdHRyaWJ1dGUNCitSZWFkQ29uc29sZU91dHB1dENoYXJhY3RlckENCitSZWFkQ29uc29sZU91dHB1dENoYXJhY3RlclcNCitSZWFkQ29uc29sZU91dHB1dFcNCitSZWFkQ29uc29sZVcNCitSZWFkRGlyZWN0b3J5Q2hhbmdlc1cNCitSZWFkRmlsZQ0KK1JlYWRGaWxlRXgNCitSZWFkRmlsZVNjYXR0ZXINCitSZWFkUHJvY2Vzc01lbW9yeQ0KK1JlZ2lzdGVyQ29uc29sZUlNRQ0KK1JlZ2lzdGVyQ29uc29sZU9TMg0KK1JlZ2lzdGVyQ29uc29sZVZETQ0KK1JlZ2lzdGVyV2FpdEZvcklucHV0SWRsZQ0KK1JlZ2lzdGVyV2FpdEZvclNpbmdsZU9iamVjdA0KK1JlZ2lzdGVyV2FpdEZvclNpbmdsZU9iamVjdEV4DQorUmVnaXN0ZXJXb3dCYXNlSGFuZGxlcnMNCitSZWdpc3Rlcldvd0V4ZWMNCitSZWxlYXNlQWN0Q3R4DQorUmVsZWFzZU11dGV4DQorUmVsZWFzZVNlbWFwaG9yZQ0KK1JlbW92ZURpcmVjdG9yeUENCitSZW1vdmVEaXJlY3RvcnlXDQorUmVtb3ZlTG9jYWxBbHRlcm5hdGVDb21wdXRlck5hbWVBDQorUmVtb3ZlTG9jYWxBbHRlcm5hdGVDb21wdXRlck5hbWVXDQorUmVtb3ZlVmVjdG9yZWRDb250aW51ZUhhbmRsZXINCitSZW1vdmVWZWN0b3JlZEV4Y2VwdGlvbkhhbmRsZXINCitSZXBsYWNlRmlsZQ0KK1JlcGxhY2VGaWxlQQ0KK1JlcGxhY2VGaWxlVw0KK1JlcXVlc3REZXZpY2VXYWtldXANCitSZXF1ZXN0V2FrZXVwTGF0ZW5jeQ0KK1Jlc2V0RXZlbnQNCitSZXNldFdyaXRlV2F0Y2gNCitSZXN0b3JlTGFzdEVycm9yDQorUmVzdW1lVGhyZWFkDQorUnRsQWRkRnVuY3Rpb25UYWJsZQ0KK1J0bENhcHR1cmVDb250ZXh0DQorUnRsQ2FwdHVyZVN0YWNrQmFja1RyYWNlDQorUnRsQ29tcGFyZU1lbW9yeQ0KK1J0bENvcHlNZW1vcnkNCitSdGxEZWxldGVGdW5jdGlvblRhYmxlDQorUnRsRmlsbE1lbW9yeQ0KK1J0bEluc3RhbGxGdW5jdGlvblRhYmxlQ2FsbGJhY2sNCitSdGxMb29rdXBGdW5jdGlvbkVudHJ5DQorUnRsTW92ZU1lbW9yeQ0KK1J0bFBjVG9GaWxlSGVhZGVyDQorUnRsUmFpc2VFeGNlcHRpb24NCitSdGxSZXN0b3JlQ29udGV4dA0KK1J0bFVud2luZA0KK1J0bFVud2luZEV4DQorUnRsVmlydHVhbFVud2luZA0KK1J0bFplcm9NZW1vcnkNCitTY3JvbGxDb25zb2xlU2NyZWVuQnVmZmVyQQ0KK1Njcm9sbENvbnNvbGVTY3JlZW5CdWZmZXJXDQorU2VhcmNoUGF0aEENCitTZWFyY2hQYXRoVw0KK1NldENQR2xvYmFsDQorU2V0Q2FsZW5kYXJJbmZvQQ0KK1NldENhbGVuZGFySW5mb1cNCitTZXRDbGllbnRUaW1lWm9uZUluZm9ybWF0aW9uDQorU2V0Q29tUGx1c1BhY2thZ2VJbnN0YWxsU3RhdHVzDQorU2V0Q29tbUJyZWFrDQorU2V0Q29tbUNvbmZpZw0KK1NldENvbW1NYXNrDQorU2V0Q29tbVN0YXRlDQorU2V0Q29tbVRpbWVvdXRzDQorU2V0Q29tcHV0ZXJOYW1lQQ0KK1NldENvbXB1dGVyTmFtZUV4QQ0KK1NldENvbXB1dGVyTmFtZUV4Vw0KK1NldENvbXB1dGVyTmFtZVcNCitTZXRDb25zb2xlQWN0aXZlU2NyZWVuQnVmZmVyDQorU2V0Q29uc29sZUNQDQorU2V0Q29uc29sZUNvbW1hbmRIaXN0b3J5TW9kZQ0KK1NldENvbnNvbGVDdHJsSGFuZGxlcg0KK1NldENvbnNvbGVDdXJzb3INCitTZXRDb25zb2xlQ3Vyc29ySW5mbw0KK1NldENvbnNvbGVDdXJzb3JNb2RlDQorU2V0Q29uc29sZUN1cnNvclBvc2l0aW9uDQorU2V0Q29uc29sZURpc3BsYXlNb2RlDQorU2V0Q29uc29sZUZvbnQNCitTZXRDb25zb2xlSGFyZHdhcmVTdGF0ZQ0KK1NldENvbnNvbGVJY29uDQorU2V0Q29uc29sZUlucHV0RXhlTmFtZUENCitTZXRDb25zb2xlSW5wdXRFeGVOYW1lVw0KK1NldENvbnNvbGVLZXlTaG9ydGN1dHMNCitTZXRDb25zb2xlTG9jYWxFVURDDQorU2V0Q29uc29sZU1heGltdW1XaW5kb3dTaXplDQorU2V0Q29uc29sZU1lbnVDbG9zZQ0KK1NldENvbnNvbGVNb2RlDQorU2V0Q29uc29sZU5sc01vZGUNCitTZXRDb25zb2xlTnVtYmVyT2ZDb21tYW5kc0ENCitTZXRDb25zb2xlTnVtYmVyT2ZDb21tYW5kc1cNCitTZXRDb25zb2xlT1MyT2VtRm9ybWF0DQorU2V0Q29uc29sZU91dHB1dENQDQorU2V0Q29uc29sZVBhbGV0dGUNCitTZXRDb25zb2xlU2NyZWVuQnVmZmVyU2l6ZQ0KK1NldENvbnNvbGVUZXh0QXR0cmlidXRlDQorU2V0Q29uc29sZVRpdGxlQQ0KK1NldENvbnNvbGVUaXRsZVcNCitTZXRDb25zb2xlV2luZG93SW5mbw0KK1NldENyaXRpY2FsU2VjdGlvblNwaW5Db3VudA0KK1NldEN1cnJlbnREaXJlY3RvcnlBDQorU2V0Q3VycmVudERpcmVjdG9yeVcNCitTZXREZWZhdWx0Q29tbUNvbmZpZ0ENCitTZXREZWZhdWx0Q29tbUNvbmZpZ1cNCitTZXREbGxEaXJlY3RvcnlBDQorU2V0RGxsRGlyZWN0b3J5Vw0KK1NldEVuZE9mRmlsZQ0KK1NldEVudmlyb25tZW50U3RyaW5nc0ENCitTZXRFbnZpcm9ubWVudFN0cmluZ3NXDQorU2V0RW52aXJvbm1lbnRWYXJpYWJsZUENCitTZXRFbnZpcm9ubWVudFZhcmlhYmxlVw0KK1NldEVycm9yTW9kZQ0KK1NldEV2ZW50DQorU2V0RmlsZUFwaXNUb0FOU0kNCitTZXRGaWxlQXBpc1RvT0VNDQorU2V0RmlsZUF0dHJpYnV0ZXNBDQorU2V0RmlsZUF0dHJpYnV0ZXNXDQorU2V0RmlsZVBvaW50ZXINCitTZXRGaWxlUG9pbnRlckV4DQorU2V0RmlsZVNob3J0TmFtZUENCitTZXRGaWxlU2hvcnROYW1lVw0KK1NldEZpbGVUaW1lDQorU2V0RmlsZVZhbGlkRGF0YQ0KK1NldEZpcm13YXJlRW52aXJvbm1lbnRWYXJpYWJsZUENCitTZXRGaXJtd2FyZUVudmlyb25tZW50VmFyaWFibGVXDQorU2V0SGFuZGxlQ291bnQNCitTZXRIYW5kbGVJbmZvcm1hdGlvbg0KK1NldEluZm9ybWF0aW9uSm9iT2JqZWN0DQorU2V0TGFzdENvbnNvbGVFdmVudEFjdGl2ZQ0KK1NldExhc3RFcnJvcg0KK1NldExvY2FsUHJpbWFyeUNvbXB1dGVyTmFtZUENCitTZXRMb2NhbFByaW1hcnlDb21wdXRlck5hbWVXDQorU2V0TG9jYWxUaW1lDQorU2V0TG9jYWxlSW5mb0ENCitTZXRMb2NhbGVJbmZvVw0KK1NldE1haWxzbG90SW5mbw0KK1NldE1lc3NhZ2VXYWl0aW5nSW5kaWNhdG9yDQorU2V0TmFtZWRQaXBlSGFuZGxlU3RhdGUNCitTZXRQcmlvcml0eUNsYXNzDQorU2V0UHJvY2Vzc0FmZmluaXR5TWFzaw0KK1NldFByb2Nlc3NQcmlvcml0eUJvb3N0DQorU2V0UHJvY2Vzc1NodXRkb3duUGFyYW1ldGVycw0KK1NldFByb2Nlc3NXb3JraW5nU2V0U2l6ZQ0KK1NldFByb2Nlc3NXb3JraW5nU2V0U2l6ZUV4DQorU2V0U3RkSGFuZGxlDQorU2V0U3lzdGVtRmlsZUNhY2hlU2l6ZQ0KK1NldFN5c3RlbVBvd2VyU3RhdGUNCitTZXRTeXN0ZW1UaW1lDQorU2V0U3lzdGVtVGltZUFkanVzdG1lbnQNCitTZXRUYXBlUGFyYW1ldGVycw0KK1NldFRhcGVQb3NpdGlvbg0KK1NldFRlcm1zcnZBcHBJbnN0YWxsTW9kZQ0KK1NldFRocmVhZEFmZmluaXR5TWFzaw0KK1NldFRocmVhZENvbnRleHQNCitTZXRUaHJlYWRFeGVjdXRpb25TdGF0ZQ0KK1NldFRocmVhZElkZWFsUHJvY2Vzc29yDQorU2V0VGhyZWFkTG9jYWxlDQorU2V0VGhyZWFkUHJpb3JpdHkNCitTZXRUaHJlYWRQcmlvcml0eUJvb3N0DQorU2V0VGhyZWFkU3RhY2tHdWFyYW50ZWUNCitTZXRUaHJlYWRVSUxhbmd1YWdlDQorU2V0VGltZVpvbmVJbmZvcm1hdGlvbg0KK1NldFRpbWVyUXVldWVUaW1lcg0KK1NldFVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcg0KK1NldFVzZXJHZW9JRA0KK1NldFZETUN1cnJlbnREaXJlY3Rvcmllcw0KK1NldFZvbHVtZUxhYmVsQQ0KK1NldFZvbHVtZUxhYmVsVw0KK1NldFZvbHVtZU1vdW50UG9pbnRBDQorU2V0Vm9sdW1lTW91bnRQb2ludFcNCitTZXRXYWl0YWJsZVRpbWVyDQorU2V0dXBDb21tDQorU2hvd0NvbnNvbGVDdXJzb3INCitTaWduYWxPYmplY3RBbmRXYWl0DQorU2l6ZW9mUmVzb3VyY2UNCitTbGVlcA0KK1NsZWVwRXgNCitTdXNwZW5kVGhyZWFkDQorU3dpdGNoVG9GaWJlcg0KK1N3aXRjaFRvVGhyZWFkDQorU3lzdGVtVGltZVRvRmlsZVRpbWUNCitTeXN0ZW1UaW1lVG9UelNwZWNpZmljTG9jYWxUaW1lDQorVGVybWluYXRlSm9iT2JqZWN0DQorVGVybWluYXRlUHJvY2Vzcw0KK1Rlcm1pbmF0ZVRocmVhZA0KK1Rlcm1zcnZBcHBJbnN0YWxsTW9kZQ0KK1RocmVhZDMyRmlyc3QNCitUaHJlYWQzMk5leHQNCitUbHNBbGxvYw0KK1Rsc0ZyZWUNCitUbHNHZXRWYWx1ZQ0KK1Rsc1NldFZhbHVlDQorVG9vbGhlbHAzMlJlYWRQcm9jZXNzTWVtb3J5DQorVHJhbnNhY3ROYW1lZFBpcGUNCitUcmFuc21pdENvbW1DaGFyDQorVHJ5RW50ZXJDcml0aWNhbFNlY3Rpb24NCitUelNwZWNpZmljTG9jYWxUaW1lVG9TeXN0ZW1UaW1lDQorVVRSZWdpc3Rlcg0KK1VUVW5SZWdpc3Rlcg0KK1VuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcg0KK1VubG9ja0ZpbGUNCitVbmxvY2tGaWxlRXgNCitVbm1hcFZpZXdPZkZpbGUNCitVbnJlZ2lzdGVyQ29uc29sZUlNRQ0KK1VucmVnaXN0ZXJXYWl0DQorVW5yZWdpc3RlcldhaXRFeA0KK1VwZGF0ZVJlc291cmNlQQ0KK1VwZGF0ZVJlc291cmNlVw0KK1ZETUNvbnNvbGVPcGVyYXRpb24NCitWRE1PcGVyYXRpb25TdGFydGVkDQorVmFsaWRhdGVMQ1R5cGUNCitWYWxpZGF0ZUxvY2FsZQ0KK1Zlckxhbmd1YWdlTmFtZUENCitWZXJMYW5ndWFnZU5hbWVXDQorVmVyU2V0Q29uZGl0aW9uTWFzaw0KK1ZlcmlmeUNvbnNvbGVJb0hhbmRsZQ0KK1ZlcmlmeVZlcnNpb25JbmZvQQ0KK1ZlcmlmeVZlcnNpb25JbmZvVw0KK1ZpcnR1YWxBbGxvYw0KK1ZpcnR1YWxBbGxvY0V4DQorVmlydHVhbEZyZWUNCitWaXJ0dWFsRnJlZUV4DQorVmlydHVhbExvY2sNCitWaXJ0dWFsUHJvdGVjdA0KK1ZpcnR1YWxQcm90ZWN0RXgNCitWaXJ0dWFsUXVlcnkNCitWaXJ0dWFsUXVlcnlFeA0KK1ZpcnR1YWxVbmxvY2sNCitXVFNHZXRBY3RpdmVDb25zb2xlU2Vzc2lvbklkDQorV2FpdENvbW1FdmVudA0KK1dhaXRGb3JEZWJ1Z0V2ZW50DQorV2FpdEZvck11bHRpcGxlT2JqZWN0cw0KK1dhaXRGb3JNdWx0aXBsZU9iamVjdHNFeA0KK1dhaXRGb3JTaW5nbGVPYmplY3QNCitXYWl0Rm9yU2luZ2xlT2JqZWN0RXgNCitXYWl0TmFtZWRQaXBlQQ0KK1dhaXROYW1lZFBpcGVXDQorV2lkZUNoYXJUb011bHRpQnl0ZQ0KK1dpbkV4ZWMNCitXb3c2NERpc2FibGVXb3c2NEZzUmVkaXJlY3Rpb24NCitXb3c2NEVuYWJsZVdvdzY0RnNSZWRpcmVjdGlvbg0KK1dvdzY0UmV2ZXJ0V293NjRGc1JlZGlyZWN0aW9uDQorV3JpdGVDb25zb2xlQQ0KK1dyaXRlQ29uc29sZUlucHV0QQ0KK1dyaXRlQ29uc29sZUlucHV0VkRNQQ0KK1dyaXRlQ29uc29sZUlucHV0VkRNVw0KK1dyaXRlQ29uc29sZUlucHV0Vw0KK1dyaXRlQ29uc29sZU91dHB1dEENCitXcml0ZUNvbnNvbGVPdXRwdXRBdHRyaWJ1dGUNCitXcml0ZUNvbnNvbGVPdXRwdXRDaGFyYWN0ZXJBDQorV3JpdGVDb25zb2xlT3V0cHV0Q2hhcmFjdGVyVw0KK1dyaXRlQ29uc29sZU91dHB1dFcNCitXcml0ZUNvbnNvbGVXDQorV3JpdGVGaWxlDQorV3JpdGVGaWxlRXgNCitXcml0ZUZpbGVHYXRoZXINCitXcml0ZVByaXZhdGVQcm9maWxlU2VjdGlvbkENCitXcml0ZVByaXZhdGVQcm9maWxlU2VjdGlvblcNCitXcml0ZVByaXZhdGVQcm9maWxlU3RyaW5nQQ0KK1dyaXRlUHJpdmF0ZVByb2ZpbGVTdHJpbmdXDQorV3JpdGVQcml2YXRlUHJvZmlsZVN0cnVjdEENCitXcml0ZVByaXZhdGVQcm9maWxlU3RydWN0Vw0KK1dyaXRlUHJvY2Vzc01lbW9yeQ0KK1dyaXRlUHJvZmlsZVNlY3Rpb25BDQorV3JpdGVQcm9maWxlU2VjdGlvblcNCitXcml0ZVByb2ZpbGVTdHJpbmdBDQorV3JpdGVQcm9maWxlU3RyaW5nVw0KK1dyaXRlVGFwZW1hcmsNCitab21iaWZ5QWN0Q3R4DQorX19DX3NwZWNpZmljX2hhbmRsZXINCitfX2Noa3N0aw0KK19fbWlzYWxpZ25lZF9hY2Nlc3MNCitfaHJlYWQNCitfaHdyaXRlDQorX2xjbG9zZQ0KK19sY3JlYXQNCitfbGxzZWVrDQorX2xvY2FsX3Vud2luZA0KK19sb3Blbg0KK19scmVhZA0KK19sd3JpdGUNCitsc3RyY2F0DQorbHN0cmNhdEENCitsc3RyY2F0Vw0KK2xzdHJjbXANCitsc3RyY21wQQ0KK2xzdHJjbXBXDQorbHN0cmNtcGkNCitsc3RyY21waUENCitsc3RyY21waVcNCitsc3RyY3B5DQorbHN0cmNweUENCitsc3RyY3B5Vw0KK2xzdHJjcHluDQorbHN0cmNweW5BDQorbHN0cmNweW5XDQorbHN0cmxlbg0KK2xzdHJsZW5BDQorbHN0cmxlblcNCit1YXdfbHN0cmNtcFcNCit1YXdfbHN0cmNtcGlXDQordWF3X2xzdHJsZW5XDQordWF3X3djc2Nocg0KK3Vhd193Y3NjcHkNCit1YXdfd2NzaWNtcA0KK3Vhd193Y3NsZW4NCit1YXdfd2NzcmNocg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2tleW1nci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9rZXltZ3IuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFlZDZlOWYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rZXltZ3IuZGVmCkBAIC0wLDAgKzEsMTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0VZTUdSLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLRVlNR1IuZGxsDQorRVhQT1JUUw0KK0NQbEFwcGxldA0KK0RsbE1haW4NCitLUlNob3dLZXlNZ3INCitQUlNob3dSZXN0b3JlRnJvbU1zZ2luYVcNCitQUlNob3dSZXN0b3JlV2l6YXJkRXhXDQorUFJTaG93UmVzdG9yZVdpemFyZFcNCitQUlNob3dTYXZlRnJvbU1zZ2luYVcNCitQUlNob3dTYXZlV2l6YXJkRXhXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva29yd2Jya3IuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva29yd2Jya3IuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU1YjFmYjkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rb3J3YnJrci5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLb3JXYnJrci5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS29yV2Jya3IuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva3JubHByb3YuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIva3JubHByb3YuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU0ZGM4YjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9rcm5scHJvdi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBrcm5scHJvdi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkga3JubHByb3YuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIva3N1c2VyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2tzdXNlci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjZlOTM5ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2tzdXNlci5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBrc3VzZXIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGtzdXNlci5kbGwNCitFWFBPUlRTDQorS3NDcmVhdGVBbGxvY2F0b3INCitLc0NyZWF0ZUNsb2NrDQorS3NDcmVhdGVQaW4NCitLc0NyZWF0ZVRvcG9sb2d5Tm9kZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2xhbmd3cmJrLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2xhbmd3cmJrLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMmY4M2FmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbGFuZ3dyYmsuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTGFuZ1dyYmsuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIExhbmdXcmJrLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2xhcmdlaW50LmMgYi9taW5ndy13NjQtY3J0L2xpYi9sYXJnZWludC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY2YjZjYzQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9sYXJnZWludC5jCkBAIC0wLDAgKzEsMTIwIEBACisjaWYgMAorLyoKKyAgbGFyZ2VpbnQuYworCisgIExhcmdlICg2NCBiaXRzKSBpbnRlZ2VyIGFyaXRobWV0aWNzIGxpYnJhcnkKKworICBXcml0dGVuIGJ5IEFuZGVycyBOb3JsYW5kZXIgPGFub3JsYW5kQGhlbTIucGFzc2FnZW4uc2U+CisKKyAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgYSBmcmVlIGxpYnJhcnkgZm9yIHRoZSBXaW4zMiBBUEkuCisgIAorICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgorCisqLworCisjZGVmaW5lIF9fQ09NUElMSU5HX0xBUkdFSU5UCisKKyNpbmNsdWRlIDxsYXJnZWludC5oPgorCitfX2ludDY0IFdJTkFQSQorTGFyZ2VJbnRlZ2VyQWRkIChfX2ludDY0IGkxLCBfX2ludDY0IGkyKQoreworICByZXR1cm4gaTEgKyBpMjsKK30KKworX19pbnQ2NCBXSU5BUEkKK0xhcmdlSW50ZWdlclN1YnRyYWN0IChfX2ludDY0IGkxLCBfX2ludDY0IGkyKQoreworICByZXR1cm4gaTEgLSBpMjsKK30KKworX19pbnQ2NCBXSU5BUEkKK0xhcmdlSW50ZWdlckFyaXRobWV0aWNTaGlmdCAoX19pbnQ2NCBpLCBpbnQgbikKK3sKKyAgcmV0dXJuIGkgPj4gbjsKK30KKworX19pbnQ2NCBXSU5BUEkKK0xhcmdlSW50ZWdlclNoaWZ0TGVmdCAoX19pbnQ2NCBpLCBpbnQgbikKK3sKKyAgcmV0dXJuIGkgPDwgbjsKK30KKworX19pbnQ2NCBXSU5BUEkKK0xhcmdlSW50ZWdlclNoaWZ0UmlnaHQgKF9faW50NjQgaSwgaW50IG4pCit7CisgIHJldHVybiBpID4+IG47Cit9CisKK19faW50NjQgV0lOQVBJCitMYXJnZUludGVnZXJOZWdhdGUgKF9faW50NjQgaSkKK3sKKyAgcmV0dXJuIC1pOworfQorCitfX2ludDY0IFdJTkFQSQorQ29udmVydExvbmdUb0xhcmdlSW50ZWdlciAoTE9ORyBsKQoreworICByZXR1cm4gKF9faW50NjQpIGw7Cit9CisKK19faW50NjQgV0lOQVBJCitDb252ZXJ0VWxvbmdUb0xhcmdlSW50ZWdlciAoVUxPTkcgdWwpCit7CisgIHJldHVybiBfdG9pKF90b3VpKHVsKSk7Cit9CisKK19faW50NjQgV0lOQVBJCitFbmxhcmdlZEludGVnZXJNdWx0aXBseSAoTE9ORyBsMSwgTE9ORyBsMikKK3sKKyAgcmV0dXJuIF90b2kobDEpICogX3RvaShsMik7Cit9CisKK19faW50NjQgV0lOQVBJCitFbmxhcmdlZFVuc2lnbmVkTXVsdGlwbHkgKFVMT05HIHVsMSwgVUxPTkcgdWwyKQoreworICByZXR1cm4gX3RvaShfdG91aSh1bDEpICogX3RvdWkodWwyKSk7Cit9CisKK19faW50NjQgV0lOQVBJCitFeHRlbmRlZEludGVnZXJNdWx0aXBseSAoX19pbnQ2NCBpLCBMT05HIGwpCit7CisgIHJldHVybiBpICogX3RvaShsKTsKK30KKworX19pbnQ2NCBXSU5BUEkKK0xhcmdlSW50ZWdlck11bHRpcGx5IChfX2ludDY0IGkxLCBfX2ludDY0IGkyKQoreworICByZXR1cm4gaTEgKiBpMjsKK30KKworX19pbnQ2NCBXSU5BUEkgTGFyZ2VJbnRlZ2VyRGl2aWRlIChfX2ludDY0IGkxLCBfX2ludDY0IGkyLCBfX2ludDY0ICpyZW1haW5kZXIpCit7CisgIGlmIChyZW1haW5kZXIpCisgICAgKnJlbWFpbmRlciA9IGkxICUgaTI7CisgIHJldHVybiBpMSAvIGkyOworfQorCitVTE9ORyBXSU5BUEkKK0VubGFyZ2VkVW5zaWduZWREaXZpZGUgKHVuc2lnbmVkIF9faW50NjQgaTEsIFVMT05HIGkyLCBQVUxPTkcgcmVtYWluZGVyKQoreworICBpZiAocmVtYWluZGVyKQorICAgICpyZW1haW5kZXIgPSBpMSAlIF90b2koaTIpOworICByZXR1cm4gaTEgLyBfdG9pKGkyKTsKK30KK19faW50NjQgV0lOQVBJCitFeHRlbmRlZExhcmdlSW50ZWdlckRpdmlkZSAoX19pbnQ2NCBpMSwgVUxPTkcgaTIsIFBVTE9ORyByZW1haW5kZXIpCit7CisgIGlmIChyZW1haW5kZXIpCisgICAgKnJlbWFpbmRlciA9IGkxICUgX3RvaShpMik7CisgIHJldHVybiBpMSAvIF90b2koaTIpOworfQorCisvKiBGSVhNRTogd2hhdCBpcyB0aGlzIGZ1bmN0aW9uIHN1cHBvc2VkIHRvIGRvPyAqLworX19pbnQ2NCBXSU5BUEkgRXh0ZW5kZWRNYWdpY0RpdmlkZSAoX19pbnQ2NCBpMSwgX19pbnQ2NCBpMiwgaW50IG4pCit7CisgIHJldHVybiAwOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9saWNkbGwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbGljZGxsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MDc5NzViCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbGljZGxsLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGxpY2RsbC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbGljZGxsLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2xpY21ncjEwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2xpY21ncjEwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNjk3ZjQwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbGljbWdyMTAuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTElDTUdSLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBMSUNNR1IuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbGljd21pLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2xpY3dtaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTdhZjk0NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2xpY3dtaS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBMaWNXbWkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIExpY1dtaS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9saW5raW5mby5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9saW5raW5mby5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjE5YWI3MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2xpbmtpbmZvLmRlZgpAQCAtMCwwICsxLDIzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIExJTktJTkZPLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBMSU5LSU5GTy5kbGwNCitFWFBPUlRTDQorQ29tcGFyZUxpbmtJbmZvUmVmZXJlbnRzDQorQ29tcGFyZUxpbmtJbmZvVm9sdW1lcw0KK0NyZWF0ZUxpbmtJbmZvDQorQ3JlYXRlTGlua0luZm9BDQorQ3JlYXRlTGlua0luZm9XDQorRGVzdHJveUxpbmtJbmZvDQorRGlzY29ubmVjdExpbmtJbmZvDQorR2V0Q2Fub25pY2FsUGF0aEluZm8NCitHZXRDYW5vbmljYWxQYXRoSW5mb0ENCitHZXRDYW5vbmljYWxQYXRoSW5mb1cNCitHZXRMaW5rSW5mb0RhdGENCitJc1ZhbGlkTGlua0luZm8NCitSZXNvbHZlTGlua0luZm8NCitSZXNvbHZlTGlua0luZm9BDQorUmVzb2x2ZUxpbmtJbmZvVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2xtaHN2Yy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9sbWhzdmMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIyZDhkYjUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9sbWhzdmMuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBsbWhzdmMuZXhlDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGxtaHN2Yy5leGUNCitFWFBPUlRTDQorU2VydmljZU1haW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9sbW1pYjIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbG1taWIyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYTc3MmExCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbG1taWIyLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGxtbWliMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbG1taWIyLmRsbA0KK0VYUE9SVFMNCitTbm1wRXh0ZW5zaW9uQ2xvc2UNCitTbm1wRXh0ZW5zaW9uSW5pdA0KK1NubXBFeHRlbnNpb25RdWVyeQ0KK1NubXBFeHRlbnNpb25UcmFwDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbG1ydC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9sbXJ0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYzY4OTEwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbG1ydC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBMTVJULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBMTVJULmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2xvYWRwZXJmLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2xvYWRwZXJmLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMjhmZDY2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbG9hZHBlcmYuZGVmCkBAIC0wLDAgKzEsMjAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbG9hZHBlcmYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGxvYWRwZXJmLmRsbA0KK0VYUE9SVFMNCitCYWNrdXBQZXJmUmVnaXN0cnlUb0ZpbGVXDQorSW5zdGFsbFBlcmZEbGxBDQorSW5zdGFsbFBlcmZEbGxXDQorTG9hZFBlcmZDb3VudGVyVGV4dFN0cmluZ3NBDQorTG9hZFBlcmZDb3VudGVyVGV4dFN0cmluZ3NXDQorUmVzdG9yZVBlcmZSZWdpc3RyeUZyb21GaWxlVw0KK1NldFNlcnZpY2VBc1RydXN0ZWRBDQorU2V0U2VydmljZUFzVHJ1c3RlZFcNCitVbmxvYWRQZXJmQ291bnRlclRleHRTdHJpbmdzQQ0KK1VubG9hZFBlcmZDb3VudGVyVGV4dFN0cmluZ3NXDQorVXBkYXRlUGVyZk5hbWVGaWxlc0ENCitVcGRhdGVQZXJmTmFtZUZpbGVzVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2xvY2Fsc2VjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2xvY2Fsc2VjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43OTkxMjY2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbG9jYWxzZWMuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbG9jYWxzZWMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGxvY2Fsc2VjLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbG9jYWxzcGwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbG9jYWxzcGwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE1N2YyNjAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9sb2NhbHNwbC5kZWYKQEAgLTAsMCArMSw4MSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBMb2NhbFNwbC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTG9jYWxTcGwuZGxsDQorRVhQT1JUUw0KK0Nsb3NlUHJpbnRQcm9jZXNzb3INCitDb250cm9sUHJpbnRQcm9jZXNzb3INCitEbGxNYWluDQorRW51bVByaW50UHJvY2Vzc29yRGF0YXR5cGVzVw0KK0dldFByaW50UHJvY2Vzc29yQ2FwYWJpbGl0aWVzDQorSW5pdGlhbGl6ZVByaW50TW9uaXRvcg0KK0luaXRpYWxpemVQcmludFByb3ZpZG9yDQorTGNsSXNTZXNzaW9uWmVybw0KK0xjbFByb21wdFVJUGVyU2Vzc2lvblVzZXINCitPcGVuUHJpbnRQcm9jZXNzb3INCitQcmludERvY3VtZW50T25QcmludFByb2Nlc3Nvcg0KK1ByaW50UHJvY0xvZ0V2ZW50DQorU3BsQWRkRm9ybQ0KK1NwbEFkZE1vbml0b3INCitTcGxBZGRQb3J0DQorU3BsQWRkUG9ydEV4DQorU3BsQWRkUHJpbnRQcm9jZXNzb3INCitTcGxBZGRQcmludGVyDQorU3BsQWRkUHJpbnRlckRyaXZlckV4DQorU3BsQnJvYWRjYXN0Q2hhbmdlDQorU3BsQ2xvc2VQcmludGVyDQorU3BsQ2xvc2VTcG9vbGVyDQorU3BsQ29uZmlnQ2hhbmdlDQorU3BsQ29weUZpbGVFdmVudA0KK1NwbENvcHlOdW1iZXJPZkZpbGVzDQorU3BsQ3JlYXRlU3Bvb2xlcg0KK1NwbERlbGV0ZUZvcm0NCitTcGxEZWxldGVNb25pdG9yDQorU3BsRGVsZXRlUG9ydA0KK1NwbERlbGV0ZVByaW50UHJvY0NhY2hlRGF0YQ0KK1NwbERlbGV0ZVByaW50UHJvY2Vzc29yDQorU3BsRGVsZXRlUHJpbnRlcg0KK1NwbERlbGV0ZVByaW50ZXJEcml2ZXJFeA0KK1NwbERlbGV0ZVByaW50ZXJLZXkNCitTcGxEZWxldGVTcG9vbGVyDQorU3BsRHJpdmVyRXZlbnQNCitTcGxFbnVtRm9ybXMNCitTcGxFbnVtTW9uaXRvcnMNCitTcGxFbnVtUG9ydHMNCitTcGxFbnVtUHJpbnRQcm9jQ2FjaGVEYXRhDQorU3BsRW51bVByaW50UHJvY2Vzc29yRGF0YXR5cGVzDQorU3BsRW51bVByaW50UHJvY2Vzc29ycw0KK1NwbEVudW1QcmludGVyRGF0YUV4DQorU3BsRW51bVByaW50ZXJLZXkNCitTcGxFbnVtUHJpbnRlcnMNCitTcGxHZXREcml2ZXJEaXINCitTcGxHZXRGb3JtDQorU3BsR2V0UHJpbnRQcm9jQ2FjaGVEYXRhDQorU3BsR2V0UHJpbnRQcm9jZXNzb3JEaXJlY3RvcnkNCitTcGxHZXRQcmludGVyDQorU3BsR2V0UHJpbnRlckRhdGENCitTcGxHZXRQcmludGVyRGF0YUV4DQorU3BsR2V0UHJpbnRlckRyaXZlcg0KK1NwbEdldFByaW50ZXJEcml2ZXJEaXJlY3RvcnkNCitTcGxHZXRQcmludGVyRHJpdmVyRXgNCitTcGxHZXRQcmludGVyRXh0cmENCitTcGxHZXRQcmludGVyRXh0cmFFeA0KK1NwbExvYWRMaWJyYXJ5VGhlQ29weUZpbGVNb2R1bGUNCitTcGxMb2dFdmVudEV4dGVybmFsDQorU3BsTG9nV21pVHJhY2VFdmVudEV4dGVybmFsDQorU3BsTW9uaXRvcklzSW5zdGFsbGVkDQorU3BsT3BlblByaW50ZXINCitTcGxQb3dlckV2ZW50DQorU3BsUmVlbnVtZXJhdGVQb3J0cw0KK1NwbFJlc2V0UHJpbnRlcg0KK1NwbFNldEZvcm0NCitTcGxTZXRQcmludFByb2NDYWNoZURhdGENCitTcGxTZXRQcmludGVyDQorU3BsU2V0UHJpbnRlckRhdGENCitTcGxTZXRQcmludGVyRGF0YUV4DQorU3BsU2V0UHJpbnRlckV4dHJhDQorU3BsU2V0UHJpbnRlckV4dHJhRXgNCitTcGxYY3ZEYXRhDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbG9jYWx1aS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9sb2NhbHVpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNjljZTcxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbG9jYWx1aS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIExPQ0FMVUkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIExPQ0FMVUkuZGxsDQorRVhQT1JUUw0KK0luaXRpYWxpemVQcmludE1vbml0b3JVSQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2xvZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9sb2cuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUzNmQzZWEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9sb2cuZGVmCkBAIC0wLDAgKzEsMjggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTE9HLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBMT0cuZGxsDQorRVhQT1JUUw0KK0RsbE1haW4NCitMb2dBDQorTG9nQmVnaW4NCitMb2dEZWxldGVPbk5leHRJbml0DQorTG9nRGlyZWN0QQ0KK0xvZ0RpcmVjdFcNCitMb2dFbmQNCitMb2dJZkENCitMb2dJZlcNCitMb2dMaW5lQQ0KK0xvZ0xpbmVXDQorTG9nUmVJbml0QQ0KK0xvZ1JlSW5pdFcNCitMb2dTZXRFcnJvckRlc3QNCitMb2dTZXRWZXJib3NlQml0bWFwDQorTG9nU2V0VmVyYm9zZUxldmVsDQorTG9nVGl0bGVBDQorTG9nVGl0bGVXDQorTG9nVw0KK1N1cHByZXNzQWxsTG9nUG9wdXBzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbG9naG91cnMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbG9naG91cnMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU5MDRkZGUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9sb2dob3Vycy5kZWYKQEAgLTAsMCArMSwxOCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBMb2dIb3Vycy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTG9nSG91cnMuZGxsDQorRVhQT1JUUw0KK0xvZ29uU2NoZWR1bGVEaWFsb2cNCitDb25uZWN0aW9uU2NoZWR1bGVEaWFsb2cNCitEaWFsaW5Ib3Vyc0RpYWxvZw0KK0RpclN5bmNTY2hlZHVsZURpYWxvZw0KK0xvZ29uU2NoZWR1bGVEaWFsb2dFeA0KK0RpYWxpbkhvdXJzRGlhbG9nRXgNCitSZXBsaWNhdGlvblNjaGVkdWxlRGlhbG9nDQorUmVwbGljYXRpb25TY2hlZHVsZURpYWxvZ0V4DQorQ29ubmVjdGlvblNjaGVkdWxlRGlhbG9nRXgNCitEaXJTeW5jU2NoZWR1bGVEaWFsb2dFeA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2xvZ3NjcnB0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2xvZ3NjcnB0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZWZlYWZjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbG9nc2NycHQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbG9nc2NyaXB0LkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBsb2dzY3JpcHQuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbG9uc2ludC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9sb25zaW50LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yYTY1MTU1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbG9uc2ludC5kZWYKQEAgLTAsMCArMSwxNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBMT05TSU5ULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBMT05TSU5ULmRsbA0KK0VYUE9SVFMNCitJSVNHZXREZWZhdWx0RG9tYWluTmFtZQ0KK0lJU0xvZ29uMzJJbml0aWFsaXplDQorSUlTTG9nb25EaWdlc3RVc2VyQQ0KK0lJU0xvZ29uTmV0VXNlckENCitJSVNMb2dvbk5ldFVzZXJXDQorSUlTTG9nb25QYXNzcG9ydFVzZXJXDQorSUlTTmV0VXNlckNvb2tpZUENCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9scGRzdmMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbHBkc3ZjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MzM0NjlhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbHBkc3ZjLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTFBEU1ZDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBMUERTVkMuZGxsDQorRVhQT1JUUw0KK1NlcnZpY2VFbnRyeQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2xway5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9scGsuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAyOTlhMDIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9scGsuZGVmCkBAIC0wLDAgKzEsMTkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTFBLLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBMUEsuZGxsDQorRVhQT1JUUw0KK0xwa0luaXRpYWxpemUNCitMcGtUYWJiZWRUZXh0T3V0DQorTHBrRGxsSW5pdGlhbGl6ZQ0KK0xwa0RyYXdUZXh0RXgNCitMcGtFZGl0Q29udHJvbCBEQVRBDQorTHBrRXh0VGV4dE91dA0KK0xwa0dldENoYXJhY3RlclBsYWNlbWVudA0KK0xwa0dldFRleHRFeHRlbnRFeFBvaW50DQorTHBrUFNNVGV4dE91dA0KK0xwa1VzZUdESVdpZHRoQ2FjaGUNCitmdHNXb3JkQnJlYWsNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9scHJoZWxwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL2xwcmhlbHAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ3MDQyZTMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9scHJoZWxwLmRlZgpAQCAtMCwwICsxLDE5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIExQUkhFTFAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIExQUkhFTFAuZGxsDQorRVhQT1JUUw0KK0NhbmNlbEpvYg0KK0Nsb3NlTFBSDQorRW5kSm9iDQorR2V0TG9uZ1F1ZXVlDQorR2V0U2hvcnRRdWV1ZQ0KK0luaXRpYXRlQ29ubmVjdGlvbg0KK09wZW5MUFINCitQcmludFdhaXRpbmdKb2JzDQorU2V0TFBSVGltZW91dHMNCitTdGFydEpvYg0KK1dyaXRlSm9iRGF0YQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2xwcm1vbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9scHJtb24uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRhZmZiZjAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9scHJtb24uZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBMUFJNT04uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIExQUk1PTi5kbGwNCitFWFBPUlRTDQorSW5pdGlhbGl6ZVByaW50TW9uaXRvcjINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9scHJtb251aS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9scHJtb251aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTUyMmIwOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2xwcm1vbnVpLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTFBSVUkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIExQUlVJLmRsbA0KK0VYUE9SVFMNCitJbml0aWFsaXplUHJpbnRNb25pdG9yVUkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9sc2FzcnYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbHNhc3J2LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZjQxYTg0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbHNhc3J2LmRlZgpAQCAtMCwwICsxLDE0MSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBMU0FTUlYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIExTQVNSVi5kbGwNCitFWFBPUlRTDQorTHNhSUFkZE5hbWVUb0xvZ29uU2Vzc2lvbg0KK0xzYUlHZXROYW1lRnJvbUx1aWQNCitMc2FJU2V0UGFja2FnZUF0dHJJbkxvZ29uU2Vzc2lvbg0KK0RzUm9sZXJEY0FzRGMNCitEc1JvbGVyRGNBc1JlcGxpY2ENCitEc1JvbGVyRGVtb3RlRGMNCitEc1JvbGVyR2V0RGNPcGVyYXRpb25Qcm9ncmVzcw0KK0RzUm9sZXJHZXREY09wZXJhdGlvblJlc3VsdHMNCitMc2FJQWR0QXVkaXRpbmdFbmFibGVkQnlDYXRlZ29yeQ0KK0xzYUlBbGxvY2F0ZUhlYXANCitMc2FJQWxsb2NhdGVIZWFwWmVybw0KK0xzYUlBdWRpdEFjY291bnRMb2dvbg0KK0xzYUlBdWRpdEFjY291bnRMb2dvbkV4DQorTHNhSUF1ZGl0S2RjRXZlbnQNCitMc2FJQXVkaXRLZXJiZXJvc0xvZ29uDQorTHNhSUF1ZGl0TG9nb25Vc2luZ0V4cGxpY2l0Q3JlZHMNCitMc2FJQXVkaXROb3RpZnlQYWNrYWdlTG9hZA0KK0xzYUlBdWRpdFBhc3N3b3JkQWNjZXNzRXZlbnQNCitMc2FJQXVkaXRSZXBsYXkNCitMc2FJQXVkaXRTYW1FdmVudA0KK0xzYUlDYWxsUGFja2FnZQ0KK0xzYUlDYWxsUGFja2FnZUV4DQorTHNhSUNhbGxQYWNrYWdlUGFzc3Rocm91Z2gNCitMc2FJQ2FuY2VsTm90aWZpY2F0aW9uDQorTHNhSUNoYW5nZVNlY3JldENpcGhlcktleQ0KK0xzYUlDcnlwdFByb3RlY3REYXRhDQorTHNhSUNyeXB0VW5wcm90ZWN0RGF0YQ0KK0xzYUlEZXJlZmVyZW5jZUNyZWRIYW5kbGUNCitMc2FJRHNOb3RpZmllZE9iamVjdENoYW5nZQ0KK0xzYUlFbnVtZXJhdGVTZWNyZXRzDQorTHNhSUVxdWFsTG9nb25Qcm9jZXNzTmFtZQ0KK0xzYUlGaWx0ZXJOYW1lc3BhY2UNCitMc2FJRmlsdGVyU2lkcw0KK0xzYUlGb3Jlc3RUcnVzdEZpbmRNYXRjaA0KK0xzYUlGcmVlRm9yZXN0VHJ1c3RJbmZvDQorTHNhSUZyZWVIZWFwDQorTHNhSUZyZWVSZXR1cm5CdWZmZXINCitMc2FJRnJlZV9MU0FJX1BSSVZBVEVfREFUQQ0KK0xzYUlGcmVlX0xTQUlfU0VDUkVUX0VOVU1fQlVGRkVSDQorTHNhSUZyZWVfTFNBUFJfQUNDT1VOVF9FTlVNX0JVRkZFUg0KK0xzYUlGcmVlX0xTQVBSX0NSX0NJUEhFUl9WQUxVRQ0KK0xzYUlGcmVlX0xTQVBSX1BPTElDWV9ET01BSU5fSU5GT1JNQVRJT04NCitMc2FJRnJlZV9MU0FQUl9QT0xJQ1lfSU5GT1JNQVRJT04NCitMc2FJRnJlZV9MU0FQUl9QUklWSUxFR0VfRU5VTV9CVUZGRVINCitMc2FJRnJlZV9MU0FQUl9QUklWSUxFR0VfU0VUDQorTHNhSUZyZWVfTFNBUFJfUkVGRVJFTkNFRF9ET01BSU5fTElTVA0KK0xzYUlGcmVlX0xTQVBSX1NSX1NFQ1VSSVRZX0RFU0NSSVBUT1INCitMc2FJRnJlZV9MU0FQUl9UUkFOU0xBVEVEX05BTUVTDQorTHNhSUZyZWVfTFNBUFJfVFJBTlNMQVRFRF9TSURTDQorTHNhSUZyZWVfTFNBUFJfVFJVU1RFRF9ET01BSU5fSU5GTw0KK0xzYUlGcmVlX0xTQVBSX1RSVVNURURfRU5VTV9CVUZGRVINCitMc2FJRnJlZV9MU0FQUl9UUlVTVEVEX0VOVU1fQlVGRkVSX0VYDQorTHNhSUZyZWVfTFNBUFJfVFJVU1RfSU5GT1JNQVRJT04NCitMc2FJRnJlZV9MU0FQUl9VTklDT0RFX1NUUklORw0KK0xzYUlGcmVlX0xTQVBSX1VOSUNPREVfU1RSSU5HX0JVRkZFUg0KK0xzYUlGcmVlX0xTQVBfU0lURU5BTUVfSU5GTw0KK0xzYUlGcmVlX0xTQVBfU0lURV9JTkZPDQorTHNhSUZyZWVfTFNBUF9TVUJORVRfSU5GTw0KK0xzYUlGcmVlX0xTQVBfVVBOX1NVRkZJWEVTDQorTHNhSUZyZWVfTFNBX0ZPUkVTVF9UUlVTVF9DT0xMSVNJT05fSU5GT1JNQVRJT04NCitMc2FJRnJlZV9MU0FfRk9SRVNUX1RSVVNUX0lORk9STUFUSU9ODQorTHNhSUdldEJvb3RPcHRpb24NCitMc2FJR2V0Q2FsbEluZm8NCitMc2FJR2V0Rm9yZXN0VHJ1c3RJbmZvcm1hdGlvbg0KK0xzYUlHZXRMb2dvbkd1aWQNCitMc2FJR2V0TmJBbmREbnNEb21haW5OYW1lcw0KK0xzYUlHZXRTZXJpYWxOdW1iZXJQb2xpY3kNCitMc2FJR2V0U2l0ZU5hbWUNCitMc2FJSGVhbHRoQ2hlY2sNCitMc2FJSW1wZXJzb25hdGVDbGllbnQNCitMc2FJSXNEb21haW5XaXRoaW5Gb3Jlc3QNCitMc2FJSXNEc1BhdXNlZA0KK0xzYUlLZXJiZXJvc1JlZ2lzdGVyVHJ1c3ROb3RpZmljYXRpb24NCitMc2FJTG9va3VwV2VsbEtub3duTmFtZQ0KK0xzYUlOb01vcmVXaW4yS0RvbWFpbg0KK0xzYUlOb3RpZnlDaGFuZ2VOb3RpZmljYXRpb24NCitMc2FJTm90aWZ5R0NTdGF0dXNDaGFuZ2UNCitMc2FJTm90aWZ5TmV0bG9nb25QYXJhbWV0ZXJzQ2hhbmdlVw0KK0xzYUlOb3RpZnlQYXNzd29yZENoYW5nZWQNCitMc2FJT3BlblBvbGljeVRydXN0ZWQNCitMc2FJUXVlcnlGb3Jlc3RUcnVzdEluZm8NCitMc2FJUXVlcnlJbmZvcm1hdGlvblBvbGljeVRydXN0ZWQNCitMc2FJUXVlcnlTaXRlSW5mbw0KK0xzYUlRdWVyeVN1Ym5ldEluZm8NCitMc2FJUXVlcnlVcG5TdWZmaXhlcw0KK0xzYUlSZWZlcmVuY2VDcmVkSGFuZGxlDQorTHNhSVJlZ2lzdGVyTm90aWZpY2F0aW9uDQorTHNhSVJlZ2lzdGVyUG9saWN5Q2hhbmdlTm90aWZpY2F0aW9uQ2FsbGJhY2sNCitMc2FJU2FmZU1vZGUNCitMc2FJU2FtSW5kaWNhdGVkRHNTdGFydGVkDQorTHNhSVNldEJvb3RPcHRpb24NCitMc2FJU2V0Q2xpZW50RG5zSG9zdE5hbWUNCitMc2FJU2V0TG9nb25HdWlkSW5Mb2dvblNlc3Npb24NCitMc2FJU2V0U2VyaWFsTnVtYmVyUG9saWN5DQorTHNhSVNldFRpbWVzU2VjcmV0DQorTHNhSVNldFRva2VuRGFjbA0KK0xzYUlTZXR1cFdhc1J1bg0KK0xzYUlVbnJlZ2lzdGVyQWxsUG9saWN5Q2hhbmdlTm90aWZpY2F0aW9uQ2FsbGJhY2sNCitMc2FJVW5yZWdpc3RlclBvbGljeUNoYW5nZU5vdGlmaWNhdGlvbkNhbGxiYWNrDQorTHNhSVVwZGF0ZUZvcmVzdFRydXN0SW5mb3JtYXRpb24NCitMc2FJV3JpdGVBdWRpdEV2ZW50DQorTHNhcEF1T3BlblNhbQ0KK0xzYXBDaGVja0Jvb3RNb2RlDQorTHNhcERzRGVidWdJbml0aWFsaXplDQorTHNhcERzSW5pdGlhbGl6ZURzU3RhdGVJbmZvDQorTHNhcERzSW5pdGlhbGl6ZVByb21vdGVJbnRlcmZhY2UNCitMc2FwSW5pdExzYQ0KK0xzYXJDbG9zZQ0KK0xzYXJDcmVhdGVTZWNyZXQNCitMc2FyRGVsZXRlDQorTHNhckVudW1lcmF0ZUFjY291bnRzDQorTHNhckVudW1lcmF0ZVByaXZpbGVnZXNBY2NvdW50DQorTHNhckVudW1lcmF0ZVRydXN0ZWREb21haW5zDQorTHNhckVudW1lcmF0ZVRydXN0ZWREb21haW5zRXgNCitMc2FyR2V0U3lzdGVtQWNjZXNzQWNjb3VudA0KK0xzYXJMb29rdXBQcml2aWxlZ2VOYW1lDQorTHNhckxvb2t1cFNpZHMNCitMc2FyTG9va3VwU2lkczINCitMc2FyT3BlbkFjY291bnQNCitMc2FyT3BlblBvbGljeQ0KK0xzYXJPcGVuU2VjcmV0DQorTHNhck9wZW5UcnVzdGVkRG9tYWluDQorTHNhclF1ZXJ5RG9tYWluSW5mb3JtYXRpb25Qb2xpY3kNCitMc2FyUXVlcnlJbmZvVHJ1c3RlZERvbWFpbg0KK0xzYXJRdWVyeUluZm9ybWF0aW9uUG9saWN5DQorTHNhclF1ZXJ5U2VjcmV0DQorTHNhclF1ZXJ5U2VjdXJpdHlPYmplY3QNCitMc2FyUXVlcnlUcnVzdGVkRG9tYWluSW5mb0J5TmFtZQ0KK0xzYXJTZXRJbmZvcm1hdGlvblBvbGljeQ0KK0xzYXJTZXRTZWNyZXQNCitMc2FyU2V0U2VjdXJpdHlPYmplY3QNCitMc2FyU2V0VHJ1c3RlZERvbWFpbkluZm9CeU5hbWUNCitTZXJ2aWNlSW5pdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL2x6MzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbHozMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjVmMmJlYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL2x6MzIuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTFozMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTFozMi5kbGwNCitFWFBPUlRTDQorQ29weUxaRmlsZQ0KK0dldEV4cGFuZGVkTmFtZUENCitHZXRFeHBhbmRlZE5hbWVXDQorTFpDbG9zZQ0KK0xaQ2xvc2VGaWxlDQorTFpDb3B5DQorTFpDcmVhdGVGaWxlVw0KK0xaRG9uZQ0KK0xaSW5pdA0KK0xaT3BlbkZpbGVBDQorTFpPcGVuRmlsZVcNCitMWlJlYWQNCitMWlNlZWsNCitMWlN0YXJ0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbWFnX2hvb2suZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbWFnX2hvb2suZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA0MGNmNmYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tYWdfaG9vay5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNYWdfSG9vay5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTWFnX0hvb2suZGxsDQorRVhQT1JUUw0KK0Zha2VDdXJzb3JNb3ZlDQorR2V0Q3Vyc29ySGFjaw0KK0dldFBvcHVwSW5mbw0KK0luc3RhbGxFdmVudEhvb2sNCitTZXRab29tUmVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21haWxtc2cuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbWFpbG1zZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDBkZjBiOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21haWxtc2cuZGVmCkBAIC0wLDAgKzEsMTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbWFpbG1zZy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbWFpbG1zZy5ETEwNCitFWFBPUlRTDQorOyB1bnNpZ25lZCBsb25nICBnX2ZGaWxsUHJvcGVydHlQYWdlcw0KKz9nX2ZGaWxsUHJvcGVydHlQYWdlc0BAM0tBIERBVEENCis7IHVuc2lnbmVkIGxvbmcgIGdfZlZhbGlkYXRlU2lnbmF0dXJlcw0KKz9nX2ZWYWxpZGF0ZVNpZ25hdHVyZXNAQDNLQSBEQVRBDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tYXBpMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbWFwaTMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYTVjZTZlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbWFwaTMyLmRlZgpAQCAtMCwwICsxLDE3OCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNQVBJMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1BUEkzMi5kbGwNCitFWFBPUlRTDQorTUFQSUxvZ29uRXgNCitNQVBJQWxsb2NhdGVCdWZmZXINCitNQVBJQWxsb2NhdGVNb3JlDQorTUFQSUZyZWVCdWZmZXINCitNQVBJQWRtaW5Qcm9maWxlcw0KK01BUElJbml0aWFsaXplDQorTUFQSVVuaW5pdGlhbGl6ZQ0KK1BSUHJvdmlkZXJJbml0DQorTEFVTkNIV0laQVJEDQorTGF1bmNoV2l6YXJkDQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxDYW5VbmxvYWROb3cNCitNQVBJT3BlbkZvcm1NZ3INCitNQVBJT3BlbkxvY2FsRm9ybUNvbnRhaW5lcg0KK1NjSW5pdE1hcGlVdGlsDQorRGVpbml0TWFwaVV0aWwNCitTY0dlbmVyYXRlTXVpZA0KK0hyQWxsb2NBZHZpc2VTaW5rDQorV3JhcFByb2dyZXNzDQorSHJUaGlzVGhyZWFkQWR2aXNlU2luaw0KK1NjQmluRnJvbUhleEJvdW5kZWQNCitGQmluRnJvbUhleA0KK0hleEZyb21CaW4NCitCdWlsZERpc3BsYXlUYWJsZQ0KK1N3YXBQbG9uZw0KK1N3YXBQd29yZA0KK01BUElJbml0SWRsZQ0KK01BUElEZWluaXRJZGxlDQorSW5zdGFsbEZpbHRlckhvb2sNCitGdGdSZWdpc3RlcklkbGVSb3V0aW5lDQorRW5hYmxlSWRsZVJvdXRpbmUNCitEZXJlZ2lzdGVySWRsZVJvdXRpbmUNCitDaGFuZ2VJZGxlUm91dGluZQ0KK01BUElHZXREZWZhdWx0TWFsbG9jDQorQ3JlYXRlSVByb3ANCitDcmVhdGVUYWJsZQ0KK01OTFNfbHN0cmxlblcNCitNTkxTX2xzdHJjbXBXDQorTU5MU19sc3RyY3B5Vw0KK01OTFNfQ29tcGFyZVN0cmluZ1cNCitNTkxTX011bHRpQnl0ZVRvV2lkZUNoYXINCitNTkxTX1dpZGVDaGFyVG9NdWx0aUJ5dGUNCitNTkxTX0lzQmFkU3RyaW5nUHRyVw0KK0ZFcXVhbE5hbWVzDQorV3JhcFN0b3JlRW50cnlJRA0KK0lzQmFkQm91bmRlZFN0cmluZ1B0cg0KK0hyUXVlcnlBbGxSb3dzDQorUHJvcENvcHlNb3JlDQorVWxQcm9wU2l6ZQ0KK0ZQcm9wQ29udGFpbnNQcm9wDQorRlByb3BDb21wYXJlUHJvcA0KK0xQcm9wQ29tcGFyZVByb3ANCitIckFkZENvbHVtbnMNCitIckFkZENvbHVtbnNFeA0KK0Z0QWRkRnQNCitGdEFkY0Z0DQorRnRTdWJGdA0KK0Z0TXVsRHcNCitGdE11bER3RHcNCitGdE5lZ0Z0DQorRnREaXZGdEJvZ3VzDQorVWxBZGRSZWYNCitVbFJlbGVhc2UNCitTekZpbmRDaA0KK1N6RmluZExhc3RDaA0KK1N6RmluZFN6DQorVUZyb21Teg0KK0hyR2V0T25lUHJvcA0KK0hyU2V0T25lUHJvcA0KK0ZQcm9wRXhpc3RzDQorUHByb3BGaW5kUHJvcA0KK0ZyZWVQYWRybGlzdA0KK0ZyZWVQcm93cw0KK0hyU3pGcm9tRW50cnlJRA0KK0hyRW50cnlJREZyb21Teg0KK0hyQ29tcG9zZUVJRA0KK0hyRGVjb21wb3NlRUlEDQorSHJDb21wb3NlTXNnSUQNCitIckRlY29tcG9zZU1zZ0lEDQorT3BlblN0cmVhbU9uRmlsZQ0KK09wZW5UbmVmU3RyZWFtDQorT3BlblRuZWZTdHJlYW1FeA0KK0dldFRuZWZTdHJlYW1Db2RlcGFnZQ0KK1VsRnJvbVN6SGV4DQorVU5LT0JKX1NjQWxsb2NhdGUNCitVTktPQkpfU2NBbGxvY2F0ZU1vcmUNCitVTktPQkpfRnJlZQ0KK1VOS09CSl9GcmVlUm93cw0KK1VOS09CSl9TY0NPQWxsb2NhdGUNCitVTktPQkpfU2NDT1JlYWxsb2NhdGUNCitVTktPQkpfQ09GcmVlDQorVU5LT0JKX1NjU3pGcm9tSWRzQWxsb2MNCitTY0NvdW50Tm90aWZpY2F0aW9ucw0KK1NjQ29weU5vdGlmaWNhdGlvbnMNCitTY1JlbG9jTm90aWZpY2F0aW9ucw0KK1NjQ291bnRQcm9wcw0KK1NjQ29weVByb3BzDQorU2NSZWxvY1Byb3BzDQorTHBWYWxGaW5kUHJvcA0KK1NjRHVwUHJvcHNldA0KK0ZCYWRSZ2xwc3pBDQorRkJhZFJnbHBzelcNCitGQmFkUm93U2V0DQorRkJhZFJnbHBOYW1lSUQNCitGQmFkUHJvcFRhZw0KK0ZCYWRSb3cNCitGQmFkUHJvcA0KK0ZCYWRDb2x1bW5TZXQNCitSVEZTeW5jDQorV3JhcENvbXByZXNzZWRSVEZTdHJlYW0NCitfX1ZhbGlkYXRlUGFyYW1ldGVycw0KK19fQ1BQVmFsaWRhdGVQYXJhbWV0ZXJzDQorRkJhZFNvcnRPcmRlclNldA0KK0ZCYWRFbnRyeUxpc3QNCitGQmFkUmVzdHJpY3Rpb24NCitTY1VOQ0Zyb21Mb2NhbFBhdGgNCitTY0xvY2FsUGF0aEZyb21VTkMNCitIcklTdG9yYWdlRnJvbVN0cmVhbQ0KK0hyVmFsaWRhdGVJUE1TdWJ0cmVlDQorT3BlbklNc2dTZXNzaW9uDQorQ2xvc2VJTXNnU2Vzc2lvbg0KK09wZW5JTXNnT25JU3RnDQorU2V0QXR0cmliSU1zZ09uSVN0Zw0KK0dldEF0dHJpYklNc2dPbklTdGcNCitNYXBTdG9yYWdlU0NvZGUNCitTY01BUElYRnJvbUNNQw0KK1NjTUFQSVhGcm9tU01BUEkNCitFbmNvZGVJRA0KK0ZEZWNvZGVJRA0KK0NjaE9mRW5jb2RpbmcNCitDYk9mRW5jb2RlZA0KK01BUElTZW5kRG9jdW1lbnRzDQorTUFQSUxvZ29uDQorTUFQSUxvZ29mZg0KK01BUElTZW5kTWFpbA0KK01BUElTYXZlTWFpbA0KK01BUElSZWFkTWFpbA0KK01BUElGaW5kTmV4dA0KK01BUElEZWxldGVNYWlsDQorTUFQSUFkZHJlc3MNCitNQVBJRGV0YWlscw0KK01BUElSZXNvbHZlTmFtZQ0KK0JNQVBJU2VuZE1haWwNCitCTUFQSVNhdmVNYWlsDQorQk1BUElSZWFkTWFpbA0KK0JNQVBJR2V0UmVhZE1haWwNCitCTUFQSUZpbmROZXh0DQorQk1BUElBZGRyZXNzDQorQk1BUElHZXRBZGRyZXNzDQorQk1BUElEZXRhaWxzDQorQk1BUElSZXNvbHZlTmFtZQ0KK2NtY19hY3Rfb24NCitjbWNfZnJlZQ0KK2NtY19saXN0DQorY21jX2xvZ29mZg0KK2NtY19sb2dvbg0KK2NtY19sb29rX3VwDQorY21jX3F1ZXJ5X2NvbmZpZ3VyYXRpb24NCitjbWNfcmVhZA0KK2NtY19zZW5kDQorY21jX3NlbmRfZG9jdW1lbnRzDQorSHJEaXNwYXRjaE5vdGlmaWNhdGlvbnMNCitIclZhbGlkYXRlUGFyYW1ldGVyc1YNCitIclZhbGlkYXRlUGFyYW1ldGVyc1ZhbGlzdA0KK1NjQ3JlYXRlQ29udmVyc2F0aW9uSW5kZXgNCitIckdldE9taVByb3ZpZGVyc0ZsYWdzDQorSHJTZXRPbWlQcm92aWRlcnNGbGFnc0ludmFsaWQNCitHZXRPdXRsb29rVmVyc2lvbg0KK0ZpeE1BUEkNCitGR2V0Q29tcG9uZW50UGF0aA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21hcGlzdHViLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21hcGlzdHViLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYTVjZTZlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbWFwaXN0dWIuZGVmCkBAIC0wLDAgKzEsMTc4IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1BUEkzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTUFQSTMyLmRsbA0KK0VYUE9SVFMNCitNQVBJTG9nb25FeA0KK01BUElBbGxvY2F0ZUJ1ZmZlcg0KK01BUElBbGxvY2F0ZU1vcmUNCitNQVBJRnJlZUJ1ZmZlcg0KK01BUElBZG1pblByb2ZpbGVzDQorTUFQSUluaXRpYWxpemUNCitNQVBJVW5pbml0aWFsaXplDQorUFJQcm92aWRlckluaXQNCitMQVVOQ0hXSVpBUkQNCitMYXVuY2hXaXphcmQNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbENhblVubG9hZE5vdw0KK01BUElPcGVuRm9ybU1ncg0KK01BUElPcGVuTG9jYWxGb3JtQ29udGFpbmVyDQorU2NJbml0TWFwaVV0aWwNCitEZWluaXRNYXBpVXRpbA0KK1NjR2VuZXJhdGVNdWlkDQorSHJBbGxvY0FkdmlzZVNpbmsNCitXcmFwUHJvZ3Jlc3MNCitIclRoaXNUaHJlYWRBZHZpc2VTaW5rDQorU2NCaW5Gcm9tSGV4Qm91bmRlZA0KK0ZCaW5Gcm9tSGV4DQorSGV4RnJvbUJpbg0KK0J1aWxkRGlzcGxheVRhYmxlDQorU3dhcFBsb25nDQorU3dhcFB3b3JkDQorTUFQSUluaXRJZGxlDQorTUFQSURlaW5pdElkbGUNCitJbnN0YWxsRmlsdGVySG9vaw0KK0Z0Z1JlZ2lzdGVySWRsZVJvdXRpbmUNCitFbmFibGVJZGxlUm91dGluZQ0KK0RlcmVnaXN0ZXJJZGxlUm91dGluZQ0KK0NoYW5nZUlkbGVSb3V0aW5lDQorTUFQSUdldERlZmF1bHRNYWxsb2MNCitDcmVhdGVJUHJvcA0KK0NyZWF0ZVRhYmxlDQorTU5MU19sc3RybGVuVw0KK01OTFNfbHN0cmNtcFcNCitNTkxTX2xzdHJjcHlXDQorTU5MU19Db21wYXJlU3RyaW5nVw0KK01OTFNfTXVsdGlCeXRlVG9XaWRlQ2hhcg0KK01OTFNfV2lkZUNoYXJUb011bHRpQnl0ZQ0KK01OTFNfSXNCYWRTdHJpbmdQdHJXDQorRkVxdWFsTmFtZXMNCitXcmFwU3RvcmVFbnRyeUlEDQorSXNCYWRCb3VuZGVkU3RyaW5nUHRyDQorSHJRdWVyeUFsbFJvd3MNCitQcm9wQ29weU1vcmUNCitVbFByb3BTaXplDQorRlByb3BDb250YWluc1Byb3ANCitGUHJvcENvbXBhcmVQcm9wDQorTFByb3BDb21wYXJlUHJvcA0KK0hyQWRkQ29sdW1ucw0KK0hyQWRkQ29sdW1uc0V4DQorRnRBZGRGdA0KK0Z0QWRjRnQNCitGdFN1YkZ0DQorRnRNdWxEdw0KK0Z0TXVsRHdEdw0KK0Z0TmVnRnQNCitGdERpdkZ0Qm9ndXMNCitVbEFkZFJlZg0KK1VsUmVsZWFzZQ0KK1N6RmluZENoDQorU3pGaW5kTGFzdENoDQorU3pGaW5kU3oNCitVRnJvbVN6DQorSHJHZXRPbmVQcm9wDQorSHJTZXRPbmVQcm9wDQorRlByb3BFeGlzdHMNCitQcHJvcEZpbmRQcm9wDQorRnJlZVBhZHJsaXN0DQorRnJlZVByb3dzDQorSHJTekZyb21FbnRyeUlEDQorSHJFbnRyeUlERnJvbVN6DQorSHJDb21wb3NlRUlEDQorSHJEZWNvbXBvc2VFSUQNCitIckNvbXBvc2VNc2dJRA0KK0hyRGVjb21wb3NlTXNnSUQNCitPcGVuU3RyZWFtT25GaWxlDQorT3BlblRuZWZTdHJlYW0NCitPcGVuVG5lZlN0cmVhbUV4DQorR2V0VG5lZlN0cmVhbUNvZGVwYWdlDQorVWxGcm9tU3pIZXgNCitVTktPQkpfU2NBbGxvY2F0ZQ0KK1VOS09CSl9TY0FsbG9jYXRlTW9yZQ0KK1VOS09CSl9GcmVlDQorVU5LT0JKX0ZyZWVSb3dzDQorVU5LT0JKX1NjQ09BbGxvY2F0ZQ0KK1VOS09CSl9TY0NPUmVhbGxvY2F0ZQ0KK1VOS09CSl9DT0ZyZWUNCitVTktPQkpfU2NTekZyb21JZHNBbGxvYw0KK1NjQ291bnROb3RpZmljYXRpb25zDQorU2NDb3B5Tm90aWZpY2F0aW9ucw0KK1NjUmVsb2NOb3RpZmljYXRpb25zDQorU2NDb3VudFByb3BzDQorU2NDb3B5UHJvcHMNCitTY1JlbG9jUHJvcHMNCitMcFZhbEZpbmRQcm9wDQorU2NEdXBQcm9wc2V0DQorRkJhZFJnbHBzekENCitGQmFkUmdscHN6Vw0KK0ZCYWRSb3dTZXQNCitGQmFkUmdscE5hbWVJRA0KK0ZCYWRQcm9wVGFnDQorRkJhZFJvdw0KK0ZCYWRQcm9wDQorRkJhZENvbHVtblNldA0KK1JURlN5bmMNCitXcmFwQ29tcHJlc3NlZFJURlN0cmVhbQ0KK19fVmFsaWRhdGVQYXJhbWV0ZXJzDQorX19DUFBWYWxpZGF0ZVBhcmFtZXRlcnMNCitGQmFkU29ydE9yZGVyU2V0DQorRkJhZEVudHJ5TGlzdA0KK0ZCYWRSZXN0cmljdGlvbg0KK1NjVU5DRnJvbUxvY2FsUGF0aA0KK1NjTG9jYWxQYXRoRnJvbVVOQw0KK0hySVN0b3JhZ2VGcm9tU3RyZWFtDQorSHJWYWxpZGF0ZUlQTVN1YnRyZWUNCitPcGVuSU1zZ1Nlc3Npb24NCitDbG9zZUlNc2dTZXNzaW9uDQorT3BlbklNc2dPbklTdGcNCitTZXRBdHRyaWJJTXNnT25JU3RnDQorR2V0QXR0cmliSU1zZ09uSVN0Zw0KK01hcFN0b3JhZ2VTQ29kZQ0KK1NjTUFQSVhGcm9tQ01DDQorU2NNQVBJWEZyb21TTUFQSQ0KK0VuY29kZUlEDQorRkRlY29kZUlEDQorQ2NoT2ZFbmNvZGluZw0KK0NiT2ZFbmNvZGVkDQorTUFQSVNlbmREb2N1bWVudHMNCitNQVBJTG9nb24NCitNQVBJTG9nb2ZmDQorTUFQSVNlbmRNYWlsDQorTUFQSVNhdmVNYWlsDQorTUFQSVJlYWRNYWlsDQorTUFQSUZpbmROZXh0DQorTUFQSURlbGV0ZU1haWwNCitNQVBJQWRkcmVzcw0KK01BUElEZXRhaWxzDQorTUFQSVJlc29sdmVOYW1lDQorQk1BUElTZW5kTWFpbA0KK0JNQVBJU2F2ZU1haWwNCitCTUFQSVJlYWRNYWlsDQorQk1BUElHZXRSZWFkTWFpbA0KK0JNQVBJRmluZE5leHQNCitCTUFQSUFkZHJlc3MNCitCTUFQSUdldEFkZHJlc3MNCitCTUFQSURldGFpbHMNCitCTUFQSVJlc29sdmVOYW1lDQorY21jX2FjdF9vbg0KK2NtY19mcmVlDQorY21jX2xpc3QNCitjbWNfbG9nb2ZmDQorY21jX2xvZ29uDQorY21jX2xvb2tfdXANCitjbWNfcXVlcnlfY29uZmlndXJhdGlvbg0KK2NtY19yZWFkDQorY21jX3NlbmQNCitjbWNfc2VuZF9kb2N1bWVudHMNCitIckRpc3BhdGNoTm90aWZpY2F0aW9ucw0KK0hyVmFsaWRhdGVQYXJhbWV0ZXJzVg0KK0hyVmFsaWRhdGVQYXJhbWV0ZXJzVmFsaXN0DQorU2NDcmVhdGVDb252ZXJzYXRpb25JbmRleA0KK0hyR2V0T21pUHJvdmlkZXJzRmxhZ3MNCitIclNldE9taVByb3ZpZGVyc0ZsYWdzSW52YWxpZA0KK0dldE91dGxvb2tWZXJzaW9uDQorRml4TUFQSQ0KK0ZHZXRDb21wb25lbnRQYXRoDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbWNhc3RtaWIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbWNhc3RtaWIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZkMzM1MzgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tY2FzdG1pYi5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNQ0FTVE1JQi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTUNBU1RNSUIuZGxsDQorRVhQT1JUUw0KK1NubXBFeHRlbnNpb25Jbml0DQorU25tcEV4dGVuc2lvblF1ZXJ5DQorU25tcEV4dGVuc2lvblRyYXANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tY2QzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tY2QzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTJmMmFmZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21jZDMyLmRlZgpAQCAtMCwwICsxLDUyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1DRDMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNQ0QzMi5kbGwNCitFWFBPUlRTDQorTUNEQWRkU3RhdGUNCitNQ0RBZGRTdGF0ZVN0cnVjdA0KK01DREFsbG9jDQorTUNEQWxsb2NCdWZmZXJzDQorTUNEQmVnaW5TdGF0ZQ0KK01DREJpbmRDb250ZXh0DQorTUNEQ2xlYXINCitNQ0RDb3B5UGl4ZWxzDQorTUNEQ3JlYXRlQ29udGV4dA0KK01DRENyZWF0ZVRleHR1cmUNCitNQ0REZWxldGVDb250ZXh0DQorTUNERGVsZXRlVGV4dHVyZQ0KK01DRERlc2NyaWJlTGF5ZXJQbGFuZQ0KK01DRERlc2NyaWJlTWNkTGF5ZXJQbGFuZQ0KK01DRERlc2NyaWJlTWNkUGl4ZWxGb3JtYXQNCitNQ0REZXNjcmliZVBpeGVsRm9ybWF0DQorTUNERGVzdHJveVdpbmRvdw0KK01DRERyYXdQaXhlbHMNCitNQ0RGbHVzaFN0YXRlDQorTUNERnJlZQ0KK01DREdldEJ1ZmZlcnMNCitNQ0RHZXREcml2ZXJJbmZvDQorTUNER2V0VGV4dHVyZUZvcm1hdHMNCitNQ0RMb2NrDQorTUNEUGl4ZWxNYXANCitNQ0RQcm9jZXNzQmF0Y2gNCitNQ0RQcm9jZXNzQmF0Y2gyDQorTUNEUXVlcnlNZW1TdGF0dXMNCitNQ0RSZWFkUGl4ZWxzDQorTUNEUmVhZFNwYW4NCitNQ0RTZXRMYXllclBhbGV0dGUNCitNQ0RTZXRTY2lzc29yUmVjdA0KK01DRFNldFZpZXdwb3J0DQorTUNEU3dhcA0KK01DRFN3YXBNdWx0aXBsZQ0KK01DRFN5bmMNCitNQ0RUZXh0dXJlS2V5DQorTUNEVGV4dHVyZVN0YXR1cw0KK01DRFVubG9jaw0KK01DRFVwZGF0ZVN1YlRleHR1cmUNCitNQ0RVcGRhdGVUZXh0dXJlUGFsZXR0ZQ0KK01DRFVwZGF0ZVRleHR1cmVQcmlvcml0eQ0KK01DRFVwZGF0ZVRleHR1cmVTdGF0ZQ0KK01DRFdyaXRlU3Bhbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21jZHNydjMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21jZHNydjMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZTE1N2FhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbWNkc3J2MzIuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTUNEU1JWMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1DRFNSVjMyLmRsbA0KK0VYUE9SVFMNCitNQ0RFbmdFc2NGaWx0ZXINCitNQ0RFbmdJbml0DQorTUNERW5nSW5pdEV4DQorTUNERW5nU2V0TWVtU3RhdHVzDQorTUNERW5nVW5pbml0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbWNoZ3Jjb2kuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbWNoZ3Jjb2kuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjczMDUwOGUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tY2hncmNvaS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1jaGdyY29pLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtY2hncmNvaS5kbGwNCitFWFBPUlRTDQorTWNoZ3JDbGFzc0NvSW5zdGFsbGVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbWNpYXZpMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbWNpYXZpMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMxZjlhMGUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tY2lhdmkzMi5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNQ0lBVkkzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTUNJQVZJMzIuZGxsDQorRVhQT1JUUw0KK0RyaXZlclByb2MNCitLZXlib2FyZEhvb2tQcm9jDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbWNpY2RhLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21jaWNkYS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDJmMjBiMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21jaWNkYS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1DSUNEQS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTUNJQ0RBLmRsbA0KK0VYUE9SVFMNCitEcml2ZXJQcm9jDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbWNpb2xlMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbWNpb2xlMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIwZTM1ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tY2lvbGUzMi5kZWYKQEAgLTAsMCArMSwxOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNQ0lPTEUzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTUNJT0xFMzIuZGxsDQorRVhQT1JUUw0KK0RsbExvYWRGcm9tU3RyZWFtDQorRGxsQ3JlYXRlRnJvbUNsaXANCitEbGxDcmVhdGVMaW5rRnJvbUNsaXANCitEbGxDcmVhdGVGcm9tVGVtcGxhdGUNCitEbGxDcmVhdGUNCitEbGxDcmVhdGVGcm9tRmlsZQ0KK0RsbENyZWF0ZUxpbmtGcm9tRmlsZQ0KK0dldE1lc3NhZ2VIb29rDQorT2xlUXVlcnlPYmpQb3MNCitJbnN0YWxsSG9vaw0KK1JlbW92ZUhvb2sNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tY2lxdHozMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tY2lxdHozMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTAwNmZiZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21jaXF0ejMyLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1DSVFUWjMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNQ0lRVFozMi5kbGwNCitFWFBPUlRTDQorRHJpdmVyUHJvYw0KK01DSUVudHJ5MzINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tY2lzZXEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbWNpc2VxLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNjU1NGMwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbWNpc2VxLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTUNJU0VRLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNQ0lTRVEuZGxsDQorRVhQT1JUUw0KK0RyaXZlclByb2MNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tY2l3YXZlLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21jaXdhdmUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIzZTJhYjAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tY2l3YXZlLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTUNJV0FWRS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTUNJV0FWRS5kbGwNCitFWFBPUlRTDQorRHJpdmVyUHJvYw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21kaGNwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21kaGNwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNWEyZGEyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbWRoY3AuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbWRoY3AuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1kaGNwLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21kbWluc3QuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbWRtaW5zdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2FmZTM0OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21kbWluc3QuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNRE1JTlNULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNRE1JTlNULmRsbA0KK0VYUE9SVFMNCitDbGFzc0luc3RhbGwzMg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21ldGFkYXRhLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21ldGFkYXRhLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNDliNjBlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbWV0YWRhdGEuZGVmCkBAIC0wLDAgKzEsNDAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTUVUQURBVEEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1FVEFEQVRBLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBDQklOOjpDQklOKGNsYXNzIENCSU4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0JJTkBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENCSU46OkNCSU4odW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCBjb25zdCkgX19wdHI2NA0KKz8/MENCSU5AQFFFQUFAS1FFQVhAWg0KKzsgcHVibGljOiBfX2NkZWNsIENCSU46OkNCSU4odm9pZCkgX19wdHI2NA0KKz8/MENCSU5AQFFFQUFAWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0JJTjo6QXBwZW5kKGNsYXNzIENCSU4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0FwcGVuZEBDQklOQEBRRUFBSEFFQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENCSU46OkFwcGVuZCh1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0IGNvbnN0KSBfX3B0cjY0DQorP0FwcGVuZEBDQklOQEBRRUFBSEtRRUFYQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0JJTjo6Q2xvbmUoY2xhc3MgQ0JJTiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q2xvbmVAQ0JJTkBAUUVCQUhQRUFWMUBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQklOOjpDb3B5KGNsYXNzIENCSU4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlAQ0JJTkBAUUVBQUhBRUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQklOOjpDb3B5KHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQgY29uc3QpIF9fcHRyNjQNCis/Q29weUBDQklOQEBRRUFBSEtRRUFYQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0JJTjo6SXNFbXB0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRW1wdHlAQ0JJTkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQklOOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBDQklOQEBRRUJBSFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ0JJTjo6UXVlcnlCdWYodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUJ1ZkBDQklOQEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIENCSU46OlF1ZXJ5Q0Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNCQENCSU5AQFFFQkFJWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0JJTjo6UmVzaXplKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9SZXNpemVAQ0JJTkBAUUVBQUhJQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENCSU46OlNldENCKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRDQkBDQklOQEBRRUFBWElAWg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbWYzMjE2LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21mMzIxNi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTkzNjJiMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21mMzIxNi5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtZjMyMTYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1mMzIxNi5kbGwNCitFWFBPUlRTDQorQ29udmVydEVtZlRvV21mDQorTWYzMjE2RGxsSW5pdGlhbGl6ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21mYzQyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21mYzQyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNzUwZWYxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbWZjNDIuZGVmCkBAIC0wLDAgKzEsMjAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTUZDNDIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1GQzQyLmRsbA0KK0VYUE9SVFMNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbENhblVubG9hZE5vdw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IENSdW50aW1lQ2xhc3MgY29uc3QgIENDYWNoZWREYXRhUGF0aFByb3BlcnR5OjpjbGFzc0NDYWNoZWREYXRhUGF0aFByb3BlcnR5DQorP2NsYXNzQ0NhY2hlZERhdGFQYXRoUHJvcGVydHlAQ0NhY2hlZERhdGFQYXRoUHJvcGVydHlAQDJVQ1J1bnRpbWVDbGFzc0BAQiBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyBjb25zdCAgQ0RhdGFQYXRoUHJvcGVydHk6OmNsYXNzQ0RhdGFQYXRoUHJvcGVydHkNCis/Y2xhc3NDRGF0YVBhdGhQcm9wZXJ0eUBDRGF0YVBhdGhQcm9wZXJ0eUBAMlVDUnVudGltZUNsYXNzQEBCIERBVEENCitBZnhGcmVlTGlicmFyeQ0KK0FmeExvYWRMaWJyYXJ5DQorQWZ4TG9ja0dsb2JhbHMNCitBZnhVbmxvY2tHbG9iYWxzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbWZjNDJ1LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21mYzQydS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjRjYzIzNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21mYzQydS5kZWYKQEAgLTAsMCArMSwyMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNRkM0MnUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1GQzQydS5kbGwNCitFWFBPUlRTDQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxDYW5VbmxvYWROb3cNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBDUnVudGltZUNsYXNzIGNvbnN0ICBDQ2FjaGVkRGF0YVBhdGhQcm9wZXJ0eTo6Y2xhc3NDQ2FjaGVkRGF0YVBhdGhQcm9wZXJ0eQ0KKz9jbGFzc0NDYWNoZWREYXRhUGF0aFByb3BlcnR5QENDYWNoZWREYXRhUGF0aFByb3BlcnR5QEAyVUNSdW50aW1lQ2xhc3NAQEIgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IENSdW50aW1lQ2xhc3MgY29uc3QgIENEYXRhUGF0aFByb3BlcnR5OjpjbGFzc0NEYXRhUGF0aFByb3BlcnR5DQorP2NsYXNzQ0RhdGFQYXRoUHJvcGVydHlAQ0RhdGFQYXRoUHJvcGVydHlAQDJVQ1J1bnRpbWVDbGFzc0BAQiBEQVRBDQorQWZ4RnJlZUxpYnJhcnkNCitBZnhMb2FkTGlicmFyeQ0KK0FmeExvY2tHbG9iYWxzDQorQWZ4VW5sb2NrR2xvYmFscw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21mY3N1YnMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbWZjc3Vicy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWMyYmQxZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21mY3N1YnMuZGVmCkBAIC0wLDAgKzEsMzQwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1mY1N1YnMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1mY1N1YnMuZGxsDQorRVhQT1JUUw0KKzsgVkNTdHJpbmc6Oj8kQ29uc3RydWN0RWxlbWVudHMoQEBZQVhQRUFWQ1N0cmluZ0BASEBaKQ0KKz8/JENvbnN0cnVjdEVsZW1lbnRzQFZDU3RyaW5nQEBAQFlBWFBFQVZDU3RyaW5nQEBIQFoNCis7IFZDU3RyaW5nOjo/JENvcHlFbGVtZW50cyhAQFlBWFBFQVZDU3RyaW5nQEBQRUJWMEBIQFopDQorPz8kQ29weUVsZW1lbnRzQFZDU3RyaW5nQEBAQFlBWFBFQVZDU3RyaW5nQEBQRUJWMEBIQFoNCis7IFZDU3RyaW5nOjo/JERlc3RydWN0RWxlbWVudHMoQEBZQVhQRUFWQ1N0cmluZ0BASEBaKQ0KKz8/JERlc3RydWN0RWxlbWVudHNAVkNTdHJpbmdAQEBAWUFYUEVBVkNTdHJpbmdAQEhAWg0KKzsgQUVCVV9HVUlEOjo/JEhhc2hLZXkoQEBZQUlBRUJVX0dVSURAQEBaKQ0KKz8/JEhhc2hLZXlAQUVCVV9HVUlEQEBAQFlBSUFFQlVfR1VJREBAQFoNCis7IFBFQkQ6Oj8kSGFzaEtleShZQUlQRUJEQFopDQorPz8kSGFzaEtleUBQRUJEQEBZQUlQRUJEQFoNCis7IFBFQkc6Oj8kSGFzaEtleShZQUlQRUJHQFopDQorPz8kSGFzaEtleUBQRUJHQEBZQUlQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ3JpdGljYWxTZWN0aW9uOjpDQ3JpdGljYWxTZWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzBDQ3JpdGljYWxTZWN0aW9uQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01hcFN0cmluZ1RvUHRyOjpDTWFwU3RyaW5nVG9QdHIoaW50KSBfX3B0cjY0DQorPz8wQ01hcFN0cmluZ1RvUHRyQEBRRUFBQEhAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIENPYmplY3Q6OkNPYmplY3Qodm9pZCkgX19wdHI2NA0KKz8/MENPYmplY3RAQElFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDU3RyaW5nOjpDU3RyaW5nKGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1N0cmluZ0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENTdHJpbmc6OkNTdHJpbmcodW5zaWduZWQgc2hvcnQsaW50KSBfX3B0cjY0DQorPz8wQ1N0cmluZ0BAUUVBQUBHSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1N0cmluZzo6Q1N0cmluZyhjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENTdHJpbmdAQFFFQUFAUEVCREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1N0cmluZzo6Q1N0cmluZyh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENTdHJpbmdAQFFFQUFAUEVCRUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1N0cmluZzo6Q1N0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDU3RyaW5nQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIENTdHJpbmc6OkNTdHJpbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MENTdHJpbmdAQFFFQUFAUEVCR0hAWg0KKzsgcHVibGljOiBfX2NkZWNsIENTdHJpbmc6OkNTdHJpbmcodm9pZCkgX19wdHI2NA0KKz8/MENTdHJpbmdAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDU3RyaW5nQXJyYXk6OkNTdHJpbmdBcnJheSh2b2lkKSBfX3B0cjY0DQorPz8wQ1N0cmluZ0FycmF5QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1N5bmNPYmplY3Q6OkNTeW5jT2JqZWN0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENTeW5jT2JqZWN0QEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ0NyaXRpY2FsU2VjdGlvbjo6fkNDcml0aWNhbFNlY3Rpb24odm9pZCkgX19wdHI2NA0KKz8/MUNDcml0aWNhbFNlY3Rpb25AQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENNYXBTdHJpbmdUb1B0cjo6fkNNYXBTdHJpbmdUb1B0cih2b2lkKSBfX3B0cjY0DQorPz8xQ01hcFN0cmluZ1RvUHRyQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDT2JqZWN0Ojp+Q09iamVjdCh2b2lkKSBfX3B0cjY0DQorPz8xQ09iamVjdEBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTdHJpbmc6On5DU3RyaW5nKHZvaWQpIF9fcHRyNjQNCis/PzFDU3RyaW5nQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDU3RyaW5nQXJyYXk6On5DU3RyaW5nQXJyYXkodm9pZCkgX19wdHI2NA0KKz8/MUNTdHJpbmdBcnJheUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1N5bmNPYmplY3Q6On5DU3luY09iamVjdCh2b2lkKSBfX3B0cjY0DQorPz8xQ1N5bmNPYmplY3RAQFVFQUFAWFoNCis7IHB1YmxpYzogc3RydWN0IENQbGV4ICYgX19wdHI2NCBfX2NkZWNsIENQbGV4OjpvcGVyYXRvcj0oc3RydWN0IENQbGV4IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENQbGV4QEBRRUFBQUVBVTBAQUVCVTBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDU3RyaW5nOjpvcGVyYXRvcj0oY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDU3RyaW5nQEBRRUFBQUVCVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDU3RyaW5nOjpvcGVyYXRvcj0oY2hhcikgX19wdHI2NA0KKz8/NENTdHJpbmdAQFFFQUFBRUJWMEBEQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDU3RyaW5nOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/PzRDU3RyaW5nQEBRRUFBQUVCVjBAR0BaDQorOyBwdWJsaWM6IGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ1N0cmluZzo6b3BlcmF0b3I9KGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1N0cmluZ0BAUUVBQUFFQlYwQFBFQkRAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENTdHJpbmc6Om9wZXJhdG9yPSh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/NENTdHJpbmdAQFFFQUFBRUJWMEBQRUJFQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDU3RyaW5nOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1N0cmluZ0BAUUVBQUFFQlYwQFBFQkdAWg0KKzsgYm9vbCBfX2NkZWNsIG9wZXJhdG9yPT0oY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQpDQorPz84QFlBX05BRUJWQ1N0cmluZ0BAMEBaDQorOyBib29sIF9fY2RlY2wgb3BlcmF0b3I9PShjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorPz84QFlBX05BRUJWQ1N0cmluZ0BAUEVCR0BaDQorOyBib29sIF9fY2RlY2wgb3BlcmF0b3I9PSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQpDQorPz84QFlBX05QRUJHQUVCVkNTdHJpbmdAQEBaDQorOyBib29sIF9fY2RlY2wgb3BlcmF0b3IhPShjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkNCis/PzlAWUFfTkFFQlZDU3RyaW5nQEAwQFoNCis7IGJvb2wgX19jZGVjbCBvcGVyYXRvciE9KGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/PzlAWUFfTkFFQlZDU3RyaW5nQEBQRUJHQFoNCis7IGJvb2wgX19jZGVjbCBvcGVyYXRvciE9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkNCis/PzlAWUFfTlBFQkdBRUJWQ1N0cmluZ0BAQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgJiBfX3B0cjY0IF9fY2RlY2wgQ01hcFN0cmluZ1RvUHRyOjpvcGVyYXRvcltdKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/QUNNYXBTdHJpbmdUb1B0ckBAUUVBQUFFQVBFQVhQRUJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDU3RyaW5nOjpvcGVyYXRvcltdKGludCljb25zdCAgX19wdHI2NA0KKz8/QUNTdHJpbmdAQFFFQkFHSEBaDQorOyBwdWJsaWM6IGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0IF9fY2RlY2wgQ1N0cmluZ0FycmF5OjpvcGVyYXRvcltdKGludCkgX19wdHI2NA0KKz8/QUNTdHJpbmdBcnJheUBAUUVBQUFFQVZDU3RyaW5nQEBIQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyAgX19jZGVjbCBDU3RyaW5nQXJyYXk6Om9wZXJhdG9yW10oaW50KWNvbnN0ICBfX3B0cjY0DQorPz9BQ1N0cmluZ0FycmF5QEBRRUJBP0FWQ1N0cmluZ0BASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NyaXRpY2FsU2VjdGlvbjo6b3BlcmF0b3Igc3RydWN0IF9SVExfQ1JJVElDQUxfU0VDVElPTiAqIF9fcHRyNjQodm9pZCkgX19wdHI2NA0KKz8/QkNDcml0aWNhbFNlY3Rpb25AQFFFQUFQRUFVX1JUTF9DUklUSUNBTF9TRUNUSU9OQEBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTdHJpbmc6Om9wZXJhdG9yIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CQ1N0cmluZ0BAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTeW5jT2JqZWN0OjpvcGVyYXRvciB2b2lkICogX19wdHI2NCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CQ1N5bmNPYmplY3RAQFFFQkFQRUFYWFoNCis7IGNsYXNzIENTdHJpbmcgIF9fY2RlY2wgb3BlcmF0b3IrKGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0KQ0KKz8/SEBZQT9BVkNTdHJpbmdAQEFFQlYwQDBAWg0KKzsgY2xhc3MgQ1N0cmluZyAgX19jZGVjbCBvcGVyYXRvcisoY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQsY2hhcikNCis/P0hAWUE/QVZDU3RyaW5nQEBBRUJWMEBEQFoNCis7IGNsYXNzIENTdHJpbmcgIF9fY2RlY2wgb3BlcmF0b3IrKGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0KQ0KKz8/SEBZQT9BVkNTdHJpbmdAQEFFQlYwQEdAWg0KKzsgY2xhc3MgQ1N0cmluZyAgX19jZGVjbCBvcGVyYXRvcisoY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz8/SEBZQT9BVkNTdHJpbmdAQEFFQlYwQFBFQkdAWg0KKzsgY2xhc3MgQ1N0cmluZyAgX19jZGVjbCBvcGVyYXRvcisoY2hhcixjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkNCis/P0hAWUE/QVZDU3RyaW5nQEBEQUVCVjBAQFoNCis7IGNsYXNzIENTdHJpbmcgIF9fY2RlY2wgb3BlcmF0b3IrKHVuc2lnbmVkIHNob3J0LGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0KQ0KKz8/SEBZQT9BVkNTdHJpbmdAQEdBRUJWMEBAWg0KKzsgY2xhc3MgQ1N0cmluZyAgX19jZGVjbCBvcGVyYXRvcisodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0KQ0KKz8/SEBZQT9BVkNTdHJpbmdAQFBFQkdBRUJWMEBAWg0KKzsgYm9vbCBfX2NkZWNsIG9wZXJhdG9yPChjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkNCis/P01AWUFfTkFFQlZDU3RyaW5nQEAwQFoNCis7IGJvb2wgX19jZGVjbCBvcGVyYXRvcjwoY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz8/TUBZQV9OQUVCVkNTdHJpbmdAQFBFQkdAWg0KKzsgYm9vbCBfX2NkZWNsIG9wZXJhdG9yPCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQpDQorPz9NQFlBX05QRUJHQUVCVkNTdHJpbmdAQEBaDQorOyBib29sIF9fY2RlY2wgb3BlcmF0b3I8PShjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkNCis/P05AWUFfTkFFQlZDU3RyaW5nQEAwQFoNCis7IGJvb2wgX19jZGVjbCBvcGVyYXRvcjw9KGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/P05AWUFfTkFFQlZDU3RyaW5nQEBQRUJHQFoNCis7IGJvb2wgX19jZGVjbCBvcGVyYXRvcjw9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkNCis/P05AWUFfTlBFQkdBRUJWQ1N0cmluZ0BAQFoNCis7IGJvb2wgX19jZGVjbCBvcGVyYXRvcj4oY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQpDQorPz9PQFlBX05BRUJWQ1N0cmluZ0BAMEBaDQorOyBib29sIF9fY2RlY2wgb3BlcmF0b3I+KGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/P09AWUFfTkFFQlZDU3RyaW5nQEBQRUJHQFoNCis7IGJvb2wgX19jZGVjbCBvcGVyYXRvcj4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0KQ0KKz8/T0BZQV9OUEVCR0FFQlZDU3RyaW5nQEBAWg0KKzsgYm9vbCBfX2NkZWNsIG9wZXJhdG9yPj0oY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQpDQorPz9QQFlBX05BRUJWQ1N0cmluZ0BAMEBaDQorOyBib29sIF9fY2RlY2wgb3BlcmF0b3I+PShjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorPz9QQFlBX05BRUJWQ1N0cmluZ0BAUEVCR0BaDQorOyBib29sIF9fY2RlY2wgb3BlcmF0b3I+PSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQpDQorPz9QQFlBX05QRUJHQUVCVkNTdHJpbmdAQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ1N0cmluZzo6b3BlcmF0b3IrPShjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/WUNTdHJpbmdAQFFFQUFBRUJWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENTdHJpbmc6Om9wZXJhdG9yKz0oY2hhcikgX19wdHI2NA0KKz8/WUNTdHJpbmdAQFFFQUFBRUJWMEBEQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDU3RyaW5nOjpvcGVyYXRvcis9KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorPz9ZQ1N0cmluZ0BAUUVBQUFFQlYwQEdAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENTdHJpbmc6Om9wZXJhdG9yKz0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz9ZQ1N0cmluZ0BAUUVBQUFFQlYwQFBFQkdAWg0KKzsgY29uc3QgIENDcml0aWNhbFNlY3Rpb246OmB2ZnRhYmxlJw0KKz8/XzdDQ3JpdGljYWxTZWN0aW9uQEA2QkANCis7IGNvbnN0ICBDTWFwU3RyaW5nVG9QdHI6OmB2ZnRhYmxlJw0KKz8/XzdDTWFwU3RyaW5nVG9QdHJAQDZCQA0KKzsgY29uc3QgIENPYmplY3Q6OmB2ZnRhYmxlJw0KKz8/XzdDT2JqZWN0QEA2QkANCis7IGNvbnN0ICBDU3RyaW5nQXJyYXk6OmB2ZnRhYmxlJw0KKz8/XzdDU3RyaW5nQXJyYXlAQDZCQA0KKzsgY29uc3QgIENTeW5jT2JqZWN0OjpgdmZ0YWJsZScNCis/P183Q1N5bmNPYmplY3RAQDZCQA0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01hcFN0cmluZ1RvUHRyOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNNYXBTdHJpbmdUb1B0ckBAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU3RyaW5nQXJyYXk6OkFkZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkQENTdHJpbmdBcnJheUBAUUVBQUhQRUJHQFoNCis7IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIEFmeEEyV0hlbHBlcih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsaW50KQ0KKz9BZnhBMldIZWxwZXJAQFlBUEVBR1BFQUdQRUJESEBaDQorOyBpbnQgX19jZGVjbCBBZnhFeHRyYWN0U3ViU3RyaW5nKGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQsdW5zaWduZWQgc2hvcnQpDQorP0FmeEV4dHJhY3RTdWJTdHJpbmdAQFlBSEFFQVZDU3RyaW5nQEBQRUJHSEdAWg0KKzsgY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBBZnhHZXRFbXB0eVN0cmluZyh2b2lkKQ0KKz9BZnhHZXRFbXB0eVN0cmluZ0BAWUFBRUJWQ1N0cmluZ0BAWFoNCis7IGludCBfX2NkZWNsIEFmeExvYWRTdHJpbmcodW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpDQorP0FmeExvYWRTdHJpbmdAQFlBSElQRUFHSUBaDQorOyBjaGFyICogX19wdHI2NCBfX2NkZWNsIEFmeFcyQUhlbHBlcihjaGFyICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KQ0KKz9BZnhXMkFIZWxwZXJAQFlBUEVBRFBFQURQRUJHSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDU3RyaW5nOjpBbGxvY0JlZm9yZVdyaXRlKGludCkgX19wdHI2NA0KKz9BbGxvY0JlZm9yZVdyaXRlQENTdHJpbmdAQElFQUFYSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDU3RyaW5nOjpBbGxvY0J1ZmZlcihpbnQpIF9fcHRyNjQNCis/QWxsb2NCdWZmZXJAQ1N0cmluZ0BASUVBQVhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENTdHJpbmc6OkFsbG9jQ29weShjbGFzcyBDU3RyaW5nICYgX19wdHI2NCxpbnQsaW50LGludCljb25zdCAgX19wdHI2NA0KKz9BbGxvY0NvcHlAQ1N0cmluZ0BASUVCQVhBRUFWMUBISEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU3RyaW5nQXJyYXk6OkFwcGVuZChjbGFzcyBDU3RyaW5nQXJyYXkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0FwcGVuZEBDU3RyaW5nQXJyYXlAQFFFQUFIQUVCVjFAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENTdHJpbmc6OkFzc2lnbkNvcHkoaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Bc3NpZ25Db3B5QENTdHJpbmdAQElFQUFYSFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU3RyaW5nOjpDb2xsYXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db2xsYXRlQENTdHJpbmdAQFFFQkFIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTdHJpbmc6OkNvbXBhcmUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0NvbXBhcmVAQ1N0cmluZ0BAUUVCQUhQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1N0cmluZzo6Q29tcGFyZU5vQ2FzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q29tcGFyZU5vQ2FzZUBDU3RyaW5nQEBRRUJBSFBFQkdAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ1N0cmluZzo6Q29uY2F0Q29weShpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29uY2F0Q29weUBDU3RyaW5nQEBJRUFBWEhQRUJHSDBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ1N0cmluZzo6Q29uY2F0SW5QbGFjZShpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbmNhdEluUGxhY2VAQ1N0cmluZ0BASUVBQVhIUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RyaW5nQXJyYXk6OkNvcHkoY2xhc3MgQ1N0cmluZ0FycmF5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5QENTdHJpbmdBcnJheUBAUUVBQVhBRUJWMUBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ1N0cmluZzo6Q29weUJlZm9yZVdyaXRlKHZvaWQpIF9fcHRyNjQNCis/Q29weUJlZm9yZVdyaXRlQENTdHJpbmdAQElFQUFYWFoNCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBDUGxleCAqIF9fcHRyNjQgX19jZGVjbCBDUGxleDo6Q3JlYXRlKHN0cnVjdCBDUGxleCAqIF9fcHRyNjQgJiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP0NyZWF0ZUBDUGxleEBAU0FQRUFVMUBBRUFQRUFVMUBJSUBaDQorOyBwdWJsaWM6IGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0IF9fY2RlY2wgQ1N0cmluZ0FycmF5OjpFbGVtZW50QXQoaW50KSBfX3B0cjY0DQorP0VsZW1lbnRBdEBDU3RyaW5nQXJyYXlAQFFFQUFBRUFWQ1N0cmluZ0BASEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RyaW5nOjpFbXB0eSh2b2lkKSBfX3B0cjY0DQorP0VtcHR5QENTdHJpbmdAQFFFQUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1N0cmluZzo6RmluZCh1bnNpZ25lZCBzaG9ydCljb25zdCAgX19wdHI2NA0KKz9GaW5kQENTdHJpbmdAQFFFQkFIR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTdHJpbmc6OkZpbmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0ZpbmRAQ1N0cmluZ0BAUUVCQUhQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1N0cmluZzo6RmluZE9uZU9mKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9GaW5kT25lT2ZAQ1N0cmluZ0BAUUVCQUhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdHJpbmc6OkZvcm1hdCh1bnNpZ25lZCBpbnQsLi4uKSBfX3B0cjY0DQorP0Zvcm1hdEBDU3RyaW5nQEBRRUFBWElaWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0cmluZzo6Rm9ybWF0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCwuLi4pIF9fcHRyNjQNCis/Rm9ybWF0QENTdHJpbmdAQFFFQUFYUEVCR1paDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RyaW5nOjpGb3JtYXRNZXNzYWdlVyh1bnNpZ25lZCBpbnQsLi4uKSBfX3B0cjY0DQorP0Zvcm1hdE1lc3NhZ2VXQENTdHJpbmdAQFFFQUFYSVpaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RyaW5nOjpGb3JtYXRNZXNzYWdlVyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsLi4uKSBfX3B0cjY0DQorP0Zvcm1hdE1lc3NhZ2VXQENTdHJpbmdAQFFFQUFYUEVCR1paDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDU3RyaW5nOjpGb3JtYXRWKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9Gb3JtYXRWQENTdHJpbmdAQElFQUFYUEVCR1BFQURAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ01hcFN0cmluZ1RvUHRyOjpGcmVlQXNzb2Moc3RydWN0IENNYXBTdHJpbmdUb1B0cjo6Q0Fzc29jICogX19wdHI2NCkgX19wdHI2NA0KKz9GcmVlQXNzb2NAQ01hcFN0cmluZ1RvUHRyQEBJRUFBWFBFQVVDQXNzb2NAMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1BsZXg6OkZyZWVEYXRhQ2hhaW4odm9pZCkgX19wdHI2NA0KKz9GcmVlRGF0YUNoYWluQENQbGV4QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RyaW5nOjpGcmVlRXh0cmEodm9pZCkgX19wdHI2NA0KKz9GcmVlRXh0cmFAQ1N0cmluZ0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0cmluZ0FycmF5OjpGcmVlRXh0cmEodm9pZCkgX19wdHI2NA0KKz9GcmVlRXh0cmFAQ1N0cmluZ0FycmF5QEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTdHJpbmc6OkdldEFsbG9jTGVuZ3RoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0QWxsb2NMZW5ndGhAQ1N0cmluZ0BAUUVCQUhYWg0KKzsgcHJvdGVjdGVkOiBzdHJ1Y3QgQ01hcFN0cmluZ1RvUHRyOjpDQXNzb2MgKiBfX3B0cjY0IF9fY2RlY2wgQ01hcFN0cmluZ1RvUHRyOjpHZXRBc3NvY0F0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0dldEFzc29jQXRAQ01hcFN0cmluZ1RvUHRyQEBJRUJBUEVBVUNBc3NvY0AxQFBFQkdBRUFJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDU3RyaW5nOjpHZXRBdChpbnQpY29uc3QgIF9fcHRyNjQNCis/R2V0QXRAQ1N0cmluZ0BAUUVCQUdIQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyAgX19jZGVjbCBDU3RyaW5nQXJyYXk6OkdldEF0KGludCljb25zdCAgX19wdHI2NA0KKz9HZXRBdEBDU3RyaW5nQXJyYXlAQFFFQkE/QVZDU3RyaW5nQEBIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1N0cmluZzo6R2V0QnVmZmVyKGludCkgX19wdHI2NA0KKz9HZXRCdWZmZXJAQ1N0cmluZ0BAUUVBQVBFQUdIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1N0cmluZzo6R2V0QnVmZmVyU2V0TGVuZ3RoKGludCkgX19wdHI2NA0KKz9HZXRCdWZmZXJTZXRMZW5ndGhAQ1N0cmluZ0BAUUVBQVBFQUdIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ01hcFN0cmluZ1RvUHRyOjpHZXRDb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldENvdW50QENNYXBTdHJpbmdUb1B0ckBAUUVCQUhYWg0KKzsgcHJvdGVjdGVkOiBzdHJ1Y3QgQ1N0cmluZ0RhdGEgKiBfX3B0cjY0IF9fY2RlY2wgQ1N0cmluZzo6R2V0RGF0YSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldERhdGFAQ1N0cmluZ0BASUVCQVBFQVVDU3RyaW5nRGF0YUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyAqIF9fcHRyNjQgX19jZGVjbCBDU3RyaW5nQXJyYXk6OkdldERhdGEodm9pZCkgX19wdHI2NA0KKz9HZXREYXRhQENTdHJpbmdBcnJheUBAUUVBQVBFQVZDU3RyaW5nQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENTdHJpbmdBcnJheTo6R2V0RGF0YSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldERhdGFAQ1N0cmluZ0FycmF5QEBRRUJBUEVCVkNTdHJpbmdAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIENNYXBTdHJpbmdUb1B0cjo6R2V0SGFzaFRhYmxlU2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEhhc2hUYWJsZVNpemVAQ01hcFN0cmluZ1RvUHRyQEBRRUJBSVhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTdHJpbmc6OkdldExlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldExlbmd0aEBDU3RyaW5nQEBRRUJBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTWFwU3RyaW5nVG9QdHI6OkdldE5leHRBc3NvYyhzdHJ1Y3QgX19QT1NJVElPTiAqIF9fcHRyNjQgJiBfX3B0cjY0LGNsYXNzIENTdHJpbmcgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXROZXh0QXNzb2NAQ01hcFN0cmluZ1RvUHRyQEBRRUJBWEFFQVBFQVVfX1BPU0lUSU9OQEBBRUFWQ1N0cmluZ0BAQUVBUEVBWEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTdHJpbmdBcnJheTo6R2V0U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFNpemVAQ1N0cmluZ0FycmF5QEBRRUJBSFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfX1BPU0lUSU9OICogX19wdHI2NCBfX2NkZWNsIENNYXBTdHJpbmdUb1B0cjo6R2V0U3RhcnRQb3NpdGlvbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0YXJ0UG9zaXRpb25AQ01hcFN0cmluZ1RvUHRyQEBRRUJBUEVBVV9fUE9TSVRJT05AQFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTdHJpbmdBcnJheTo6R2V0VXBwZXJCb3VuZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFVwcGVyQm91bmRAQ1N0cmluZ0FycmF5QEBRRUJBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIENNYXBTdHJpbmdUb1B0cjo6SGFzaEtleSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/SGFzaEtleUBDTWFwU3RyaW5nVG9QdHJAQFFFQkFJUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDU3RyaW5nOjpJbml0KHZvaWQpIF9fcHRyNjQNCis/SW5pdEBDU3RyaW5nQEBJRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTWFwU3RyaW5nVG9QdHI6OkluaXRIYXNoVGFibGUodW5zaWduZWQgaW50LGludCkgX19wdHI2NA0KKz9Jbml0SGFzaFRhYmxlQENNYXBTdHJpbmdUb1B0ckBAUUVBQVhJSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RyaW5nQXJyYXk6Okluc2VydEF0KGludCxjbGFzcyBDU3RyaW5nQXJyYXkgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luc2VydEF0QENTdHJpbmdBcnJheUBAUUVBQVhIUEVBVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdHJpbmdBcnJheTo6SW5zZXJ0QXQoaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/SW5zZXJ0QXRAQ1N0cmluZ0FycmF5QEBRRUFBWEhQRUJHSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENNYXBTdHJpbmdUb1B0cjo6SXNFbXB0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRW1wdHlAQ01hcFN0cmluZ1RvUHRyQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTdHJpbmc6OklzRW1wdHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0VtcHR5QENTdHJpbmdAQFFFQkFIWFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyAgX19jZGVjbCBDU3RyaW5nOjpMZWZ0KGludCljb25zdCAgX19wdHI2NA0KKz9MZWZ0QENTdHJpbmdAQFFFQkE/QVYxQEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU3RyaW5nOjpMb2FkU3RyaW5nVyh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/TG9hZFN0cmluZ1dAQ1N0cmluZ0BAUUVBQUhJQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NyaXRpY2FsU2VjdGlvbjo6TG9jayh2b2lkKSBfX3B0cjY0DQorP0xvY2tAQ0NyaXRpY2FsU2VjdGlvbkBAUUVBQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENDcml0aWNhbFNlY3Rpb246OkxvY2sodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Mb2NrQENDcml0aWNhbFNlY3Rpb25AQFVFQUFIS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ1N5bmNPYmplY3Q6OkxvY2sodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Mb2NrQENTeW5jT2JqZWN0QEBVRUFBSEtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDU3RyaW5nOjpMb2NrQnVmZmVyKHZvaWQpIF9fcHRyNjQNCis/TG9ja0J1ZmZlckBDU3RyaW5nQEBRRUFBUEVBR1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENNYXBTdHJpbmdUb1B0cjo6TG9va3VwKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/TG9va3VwQENNYXBTdHJpbmdUb1B0ckBAUUVCQUhQRUJHQUVBUEVBWEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENNYXBTdHJpbmdUb1B0cjo6TG9va3VwS2V5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0xvb2t1cEtleUBDTWFwU3RyaW5nVG9QdHJAQFFFQkFIUEVCR0FFQVBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0cmluZzo6TWFrZUxvd2VyKHZvaWQpIF9fcHRyNjQNCis/TWFrZUxvd2VyQENTdHJpbmdAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdHJpbmc6Ok1ha2VSZXZlcnNlKHZvaWQpIF9fcHRyNjQNCis/TWFrZVJldmVyc2VAQ1N0cmluZ0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0cmluZzo6TWFrZVVwcGVyKHZvaWQpIF9fcHRyNjQNCis/TWFrZVVwcGVyQENTdHJpbmdAQFFFQUFYWFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyAgX19jZGVjbCBDU3RyaW5nOjpNaWQoaW50KWNvbnN0ICBfX3B0cjY0DQorP01pZEBDU3RyaW5nQEBRRUJBP0FWMUBIQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyAgX19jZGVjbCBDU3RyaW5nOjpNaWQoaW50LGludCljb25zdCAgX19wdHI2NA0KKz9NaWRAQ1N0cmluZ0BAUUVCQT9BVjFASEhAWg0KKzsgcHJvdGVjdGVkOiBzdHJ1Y3QgQ01hcFN0cmluZ1RvUHRyOjpDQXNzb2MgKiBfX3B0cjY0IF9fY2RlY2wgQ01hcFN0cmluZ1RvUHRyOjpOZXdBc3NvYyh2b2lkKSBfX3B0cjY0DQorP05ld0Fzc29jQENNYXBTdHJpbmdUb1B0ckBASUVBQVBFQVVDQXNzb2NAMUBYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ1N0cmluZzo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ1N0cmluZ0BASUVBQVhYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENTdHJpbmc6OlJlbGVhc2Uoc3RydWN0IENTdHJpbmdEYXRhICogX19wdHI2NCkNCis/UmVsZWFzZUBDU3RyaW5nQEBLQVhQRUFVQ1N0cmluZ0RhdGFAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RyaW5nOjpSZWxlYXNlQnVmZmVyKGludCkgX19wdHI2NA0KKz9SZWxlYXNlQnVmZmVyQENTdHJpbmdAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTWFwU3RyaW5nVG9QdHI6OlJlbW92ZUFsbCh2b2lkKSBfX3B0cjY0DQorP1JlbW92ZUFsbEBDTWFwU3RyaW5nVG9QdHJAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdHJpbmdBcnJheTo6UmVtb3ZlQWxsKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlQWxsQENTdHJpbmdBcnJheUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0cmluZ0FycmF5OjpSZW1vdmVBdChpbnQsaW50KSBfX3B0cjY0DQorP1JlbW92ZUF0QENTdHJpbmdBcnJheUBAUUVBQVhISEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENNYXBTdHJpbmdUb1B0cjo6UmVtb3ZlS2V5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVLZXlAQ01hcFN0cmluZ1RvUHRyQEBRRUFBSFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU3RyaW5nOjpSZXZlcnNlRmluZCh1bnNpZ25lZCBzaG9ydCljb25zdCAgX19wdHI2NA0KKz9SZXZlcnNlRmluZEBDU3RyaW5nQEBRRUJBSEdAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nICBfX2NkZWNsIENTdHJpbmc6OlJpZ2h0KGludCljb25zdCAgX19wdHI2NA0KKz9SaWdodEBDU3RyaW5nQEBRRUJBP0FWMUBIQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX2NkZWNsIENTdHJpbmc6OlNhZmVTdHJsZW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9TYWZlU3RybGVuQENTdHJpbmdAQEtBSFBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01hcFN0cmluZ1RvUHRyOjpTZXRBdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QXRAQ01hcFN0cmluZ1RvUHRyQEBRRUFBWFBFQkdQRUFYQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdHJpbmc6OlNldEF0KGludCx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZXRBdEBDU3RyaW5nQEBRRUFBWEhHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdHJpbmdBcnJheTo6U2V0QXQoaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRBdEBDU3RyaW5nQXJyYXlAQFFFQUFYSFBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0cmluZ0FycmF5OjpTZXRBdEdyb3coaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRBdEdyb3dAQ1N0cmluZ0FycmF5QEBRRUFBWEhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdHJpbmdBcnJheTo6U2V0U2l6ZShpbnQsaW50KSBfX3B0cjY0DQorP1NldFNpemVAQ1N0cmluZ0FycmF5QEBRRUFBWEhIQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyAgX19jZGVjbCBDU3RyaW5nOjpTcGFuRXhjbHVkaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9TcGFuRXhjbHVkaW5nQENTdHJpbmdAQFFFQkE/QVYxQFBFQkdAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nICBfX2NkZWNsIENTdHJpbmc6OlNwYW5JbmNsdWRpbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1NwYW5JbmNsdWRpbmdAQ1N0cmluZ0BAUUVCQT9BVjFAUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RyaW5nOjpUcmltTGVmdCh2b2lkKSBfX3B0cjY0DQorP1RyaW1MZWZ0QENTdHJpbmdAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdHJpbmc6OlRyaW1SaWdodCh2b2lkKSBfX3B0cjY0DQorP1RyaW1SaWdodEBDU3RyaW5nQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0NyaXRpY2FsU2VjdGlvbjo6VW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/VW5sb2NrQENDcml0aWNhbFNlY3Rpb25AQFVFQUFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDU3luY09iamVjdDo6VW5sb2NrKGxvbmcsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VW5sb2NrQENTeW5jT2JqZWN0QEBVRUFBSEpQRUFKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdHJpbmc6OlVubG9ja0J1ZmZlcih2b2lkKSBfX3B0cjY0DQorP1VubG9ja0J1ZmZlckBDU3RyaW5nQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ1BsZXg6OmRhdGEodm9pZCkgX19wdHI2NA0KKz9kYXRhQENQbGV4QEBRRUFBUEVBWFhaDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbWdtdGFwaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tZ210YXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41YTE3YzA5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbWdtdGFwaS5kZWYKQEAgLTAsMCArMSwxNyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtZ210YXBpLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtZ210YXBpLmRsbA0KK0VYUE9SVFMNCitTbm1wTWdyQ2xvc2UNCitTbm1wTWdyQ3RsDQorU25tcE1nckdldFRyYXANCitTbm1wTWdyR2V0VHJhcEV4DQorU25tcE1nck9pZFRvU3RyDQorU25tcE1nck9wZW4NCitTbm1wTWdyUmVxdWVzdA0KK1NubXBNZ3JTdHJUb09pZA0KK1NubXBNZ3JUcmFwTGlzdGVuDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbWlkaW1hcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9taWRpbWFwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNTJkMjRlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbWlkaW1hcC5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNSURJTUFQLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNSURJTUFQLmRsbA0KK0VYUE9SVFMNCitEcml2ZXJQcm9jDQorbW9kTWVzc2FnZQ0KK21vZG1DYWxsYmFjaw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21pZ2lzbS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9taWdpc20uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU4N2IxNTkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9taWdpc20uZGVmCkBAIC0wLDAgKzEsMjU3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1JR0lTTS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTUlHSVNNLmRsbA0KK0VYUE9SVFMNCitEbGxNYWluDQorSXNtQWJhbmRvbk9iamVjdElkT25Db2xsaXNpb24NCitJc21BYmFuZG9uT2JqZWN0T25Db2xsaXNpb24NCitJc21BYm9ydEFwcGx5T2JqZWN0RW51bQ0KK0lzbUFib3J0Q29tcG9uZW50RW51bQ0KK0lzbUFib3J0T2JqZWN0QXR0cmlidXRlRW51bQ0KK0lzbUFib3J0T2JqZWN0RW51bQ0KK0lzbUFib3J0T2JqZWN0T3BlcmF0aW9uRW51bQ0KK0lzbUFib3J0T2JqZWN0UHJvcGVydHlFbnVtDQorSXNtQWJvcnRPYmplY3RUeXBlSWRFbnVtDQorSXNtQWJvcnRPYmplY3RXaXRoQXR0cmlidXRlRW51bQ0KK0lzbUFib3J0T2JqZWN0V2l0aE9wZXJhdGlvbkVudW0NCitJc21BYm9ydE9iamVjdFdpdGhQcm9wZXJ0eUVudW0NCitJc21BYm9ydFBlcnNpc3RlbnRPYmplY3RFbnVtDQorSXNtQWJvcnRTY29wZUVudW0NCitJc21BYm9ydFRyYW5zcG9ydEVudW0NCitJc21BY3F1aXJlT2JqZWN0RXgNCitJc21BZGRDb21wb25lbnRBbGlhcw0KK0lzbUFkZENvbnRyb2xGaWxlDQorSXNtQWRkUHJvcGVydHlEYXRhVG9PYmplY3QNCitJc21BZGRQcm9wZXJ0eURhdGFUb09iamVjdElkDQorSXNtQWRkUHJvcGVydHlUb09iamVjdA0KK0lzbUFkZFByb3BlcnR5VG9PYmplY3RJZA0KK0lzbUFkZFRvUGh5c2ljYWxFbnVtDQorSXNtQWxsb2NFbnZpcm9ubWVudFZhcmlhYmxlTGlzdA0KK0lzbUFwcGVuZEVudmlyb25tZW50TXVsdGlTeg0KK0lzbUFwcGVuZEVudmlyb25tZW50U3RyaW5nDQorSXNtQXJlT2JqZWN0c0lkZW50aWNhbA0KK0lzbUNhbldyaXRlUm9sbGJhY2tKb3VybmFsDQorSXNtQ2xlYXJBYmFuZG9uT2JqZWN0SWRPbkNvbGxpc2lvbg0KK0lzbUNsZWFyQWJhbmRvbk9iamVjdE9uQ29sbGlzaW9uDQorSXNtQ2xlYXJBcHBseU9uT2JqZWN0DQorSXNtQ2xlYXJBcHBseU9uT2JqZWN0SWQNCitJc21DbGVhckF0dHJpYnV0ZU9uT2JqZWN0DQorSXNtQ2xlYXJBdHRyaWJ1dGVPbk9iamVjdElkDQorSXNtQ2xlYXJOb25Dcml0aWNhbEZsYWdPbk9iamVjdA0KK0lzbUNsZWFyTm9uQ3JpdGljYWxGbGFnT25PYmplY3RJZA0KK0lzbUNsZWFyT3BlcmF0aW9uT25PYmplY3QNCitJc21DbGVhck9wZXJhdGlvbk9uT2JqZWN0SWQNCitJc21DbGVhclBlcnNpc3RlbmNlT25PYmplY3QNCitJc21DbGVhclBlcnNpc3RlbmNlT25PYmplY3RJZA0KK0lzbUNvbnZlcnRPYmplY3RDb250ZW50VG9BbnNpDQorSXNtQ29udmVydE9iamVjdENvbnRlbnRUb1VuaWNvZGUNCitJc21Db252ZXJ0T2JqZWN0VG9NdWx0aVN6DQorSXNtQ3JlYXRlUGFyc2VkUGF0dGVybg0KK0lzbUNyZWF0ZVNjb3BlDQorSXNtQ3VycmVudGx5RXhlY3V0aW5nDQorSXNtRGVsZXRlRW52aXJvbm1lbnRWYXJpYWJsZQ0KK0lzbURlbGV0ZVNjb3BlDQorSXNtRGVzZWxlY3RTY29wZQ0KK0lzbURlc3Ryb3lHbG9iYWxWYXJpYWJsZQ0KK0lzbURlc3Ryb3lPYmplY3RIYW5kbGUNCitJc21EZXN0cm95T2JqZWN0U3RyaW5nDQorSXNtRGVzdHJveVBhcnNlZFBhdHRlcm4NCitJc21Eb2VzT2JqZWN0RXhpc3QNCitJc21Eb2VzUm9sbGJhY2tEYXRhRXhpc3QNCitJc21FbnVtRmlyc3RBcHBseU9iamVjdA0KK0lzbUVudW1GaXJzdENvbXBvbmVudA0KK0lzbUVudW1GaXJzdERlc3RpbmF0aW9uT2JqZWN0RXgNCitJc21FbnVtRmlyc3RPYmplY3RBdHRyaWJ1dGUNCitJc21FbnVtRmlyc3RPYmplY3RBdHRyaWJ1dGVCeUlkDQorSXNtRW51bUZpcnN0T2JqZWN0T3BlcmF0aW9uDQorSXNtRW51bUZpcnN0T2JqZWN0T3BlcmF0aW9uQnlJZA0KK0lzbUVudW1GaXJzdE9iamVjdFByb3BlcnR5DQorSXNtRW51bUZpcnN0T2JqZWN0UHJvcGVydHlCeUlkDQorSXNtRW51bUZpcnN0T2JqZWN0VHlwZUlkDQorSXNtRW51bUZpcnN0T2JqZWN0V2l0aEF0dHJpYnV0ZQ0KK0lzbUVudW1GaXJzdE9iamVjdFdpdGhPcGVyYXRpb24NCitJc21FbnVtRmlyc3RPYmplY3RXaXRoUHJvcGVydHkNCitJc21FbnVtRmlyc3RQZXJzaXN0ZW50T2JqZWN0DQorSXNtRW51bUZpcnN0U2NvcGUNCitJc21FbnVtRmlyc3RTb3VyY2VPYmplY3RFeA0KK0lzbUVudW1GaXJzdFRyYW5zcG9ydA0KK0lzbUVudW1OZXh0QXBwbHlPYmplY3QNCitJc21FbnVtTmV4dENvbXBvbmVudA0KK0lzbUVudW1OZXh0T2JqZWN0DQorSXNtRW51bU5leHRPYmplY3RBdHRyaWJ1dGUNCitJc21FbnVtTmV4dE9iamVjdE9wZXJhdGlvbg0KK0lzbUVudW1OZXh0T2JqZWN0UHJvcGVydHkNCitJc21FbnVtTmV4dE9iamVjdFR5cGVJZA0KK0lzbUVudW1OZXh0T2JqZWN0V2l0aEF0dHJpYnV0ZQ0KK0lzbUVudW1OZXh0T2JqZWN0V2l0aE9wZXJhdGlvbg0KK0lzbUVudW1OZXh0T2JqZWN0V2l0aFByb3BlcnR5DQorSXNtRW51bU5leHRQZXJzaXN0ZW50T2JqZWN0DQorSXNtRW51bU5leHRTY29wZQ0KK0lzbUVudW1OZXh0VHJhbnNwb3J0DQorSXNtRXhlY3V0ZQ0KK0lzbUV4ZWN1dGVGdW5jdGlvbg0KK0lzbUV4ZWN1dGVIb29rcw0KK0lzbUZpbHRlck9iamVjdA0KK0lzbUZyZWVDb252ZXJ0ZWRPYmplY3RDb250ZW50DQorSXNtRnJlZUN1cnJlbnRVc2VyRGF0YQ0KK0lzbUZyZWVFbnZpcm9ubWVudFZhcmlhYmxlTGlzdA0KK0lzbUdldEFjdGl2ZVNjb3BlSWQNCitJc21HZXRBY3RpdmVTY29wZU5hbWUNCitJc21HZXRBY3RpdmVTY29wZU5hbWVSZW5hbWVkDQorSXNtR2V0QXR0cmlidXRlR3JvdXANCitJc21HZXRBdHRyaWJ1dGVOYW1lDQorSXNtR2V0Q29udHJvbEZpbGUNCitJc21HZXRDdXJyZW50U2lkU3RyaW5nDQorSXNtR2V0RW52aXJvbm1lbnRDYWxsYmFjaw0KK0lzbUdldEVudmlyb25tZW50RGF0YQ0KK0lzbUdldEVudmlyb25tZW50TXVsdGlTeg0KK0lzbUdldEVudmlyb25tZW50U3RyaW5nDQorSXNtR2V0RW52aXJvbm1lbnRWYWx1ZQ0KK0lzbUdldEdsb2JhbFZhcmlhYmxlDQorSXNtR2V0TWFwcGVkVXNlckRhdGENCitJc21HZXRPYmplY3RJZEZyb21OYW1lDQorSXNtR2V0T2JqZWN0T3BlcmF0aW9uRGF0YQ0KK0lzbUdldE9iamVjdE9wZXJhdGlvbkRhdGFCeUlkDQorSXNtR2V0T2JqZWN0VHlwZUlkDQorSXNtR2V0T2JqZWN0VHlwZU5hbWUNCitJc21HZXRPYmplY3RUeXBlUHJpb3JpdHkNCitJc21HZXRPYmplY3RzU3RhdGlzdGljcw0KK0lzbUdldE9ubGluZVVzZXJEYXRhDQorSXNtR2V0T3BlcmF0aW9uR3JvdXANCitJc21HZXRPcGVyYXRpb25OYW1lDQorSXNtR2V0T3NWZXJzaW9uSW5mbw0KK0lzbUdldFByb3BlcnR5RGF0YQ0KK0lzbUdldFByb3BlcnR5RnJvbU9iamVjdA0KK0lzbUdldFByb3BlcnR5RnJvbU9iamVjdElkDQorSXNtR2V0UHJvcGVydHlHcm91cA0KK0lzbUdldFByb3BlcnR5TmFtZQ0KK0lzbUdldFJlYWxQbGF0Zm9ybQ0KK0lzbUdldFNjb3BlT2JqZWN0VHlwZU5hbWUNCitJc21HZXRTY29wZVByb3BlcnR5DQorSXNtR2V0VGVtcERpcmVjdG9yeQ0KK0lzbUdldFRlbXBGaWxlDQorSXNtR2V0VGVtcFN0b3JhZ2UNCitJc21HZXRUcmFuc3BvcnRWYXJpYWJsZQ0KK0lzbUdldFZpcnR1YWxQbGF0Zm9ybQ0KK0lzbUhvb2tFbnVtZXJhdGlvbg0KK0lzbUluaXRpYWxpemUNCitJc21Jc0FwcGx5T2JqZWN0DQorSXNtSXNBcHBseU9iamVjdElkDQorSXNtSXNBdHRyaWJ1dGVTZXRPbk9iamVjdA0KK0lzbUlzQXR0cmlidXRlU2V0T25PYmplY3RJZA0KK0lzbUlzQ29tcG9uZW50U2VsZWN0ZWQNCitJc21Jc0Vudmlyb25tZW50RmxhZ1NldA0KK0lzbUlzTm9uQ3JpdGljYWxPYmplY3QNCitJc21Jc05vbkNyaXRpY2FsT2JqZWN0SWQNCitJc21Jc09iamVjdEFiYW5kb25lZE9uQ29sbGlzaW9uDQorSXNtSXNPYmplY3RIYW5kbGVMZWFmT25seQ0KK0lzbUlzT2JqZWN0SGFuZGxlTm9kZU9ubHkNCitJc21Jc09iamVjdElkQWJhbmRvbmVkT25Db2xsaXNpb24NCitJc21Jc09wZXJhdGlvblNldE9uT2JqZWN0DQorSXNtSXNPcGVyYXRpb25TZXRPbk9iamVjdElkDQorSXNtSXNQZXJzaXN0ZW50T2JqZWN0DQorSXNtSXNQZXJzaXN0ZW50T2JqZWN0SWQNCitJc21Jc1Byb3BlcnR5U2V0T25PYmplY3QNCitJc21Jc1Byb3BlcnR5U2V0T25PYmplY3RJZA0KK0lzbUlzU2NvcGVPbmxpbmUNCitJc21Jc1Njb3BlU2VsZWN0ZWQNCitJc21Jc1N5c3RlbVNjb3BlU2VsZWN0ZWQNCitJc21Mb2FkDQorSXNtTG9ja0F0dHJpYnV0ZQ0KK0lzbUxvY2tPYmplY3QNCitJc21Mb2NrT2JqZWN0SWQNCitJc21Mb2NrT3BlcmF0aW9uDQorSXNtTG9ja1Byb3BlcnR5DQorSXNtTWFrZUFwcGx5T2JqZWN0DQorSXNtTWFrZUFwcGx5T2JqZWN0SWQNCitJc21NYWtlTm9uQ3JpdGljYWxPYmplY3QNCitJc21NYWtlTm9uQ3JpdGljYWxPYmplY3RJZA0KK0lzbU1ha2VQZXJzaXN0ZW50T2JqZWN0DQorSXNtTWFrZVBlcnNpc3RlbnRPYmplY3RJZA0KK0lzbVBhcnNlZFBhdHRlcm5NYXRjaA0KK0lzbVBhcnNlZFBhdHRlcm5NYXRjaEV4DQorSXNtUHJlc2VydmVKb3VybmFsDQorSXNtUHJvaGliaXRQaHlzaWNhbEVudW0NCitJc21RdWV1ZUVudW1lcmF0aW9uDQorSXNtUmVjb3JkRGVsYXllZE9wZXJhdGlvbg0KK0lzbVJlY29yZE9wZXJhdGlvbg0KK0lzbVJlY292ZXJFZnNGaWxlDQorSXNtUmVnaXN0ZXJBdHRyaWJ1dGUNCitJc21SZWdpc3RlckNvbXBhcmVDYWxsYmFjaw0KK0lzbVJlZ2lzdGVyRHluYW1pY0V4Y2x1c2lvbg0KK0lzbVJlZ2lzdGVyR2xvYmFsQXBwbHlDYWxsYmFjaw0KK0lzbVJlZ2lzdGVyR2xvYmFsRmlsdGVyQ2FsbGJhY2sNCitJc21SZWdpc3Rlck9iamVjdFR5cGUNCitJc21SZWdpc3Rlck9wZXJhdGlvbg0KK0lzbVJlZ2lzdGVyT3BlcmF0aW9uQXBwbHlDYWxsYmFjaw0KK0lzbVJlZ2lzdGVyT3BlcmF0aW9uRGF0YQ0KK0lzbVJlZ2lzdGVyT3BlcmF0aW9uRmlsdGVyQ2FsbGJhY2sNCitJc21SZWdpc3RlclBoeXNpY2FsQWNxdWlyZUhvb2sNCitJc21SZWdpc3RlclBvc3RFbnVtZXJhdGlvbkNhbGxiYWNrDQorSXNtUmVnaXN0ZXJQcmVFbnVtZXJhdGlvbkNhbGxiYWNrDQorSXNtUmVnaXN0ZXJQcm9ncmVzc0JhckNhbGxiYWNrDQorSXNtUmVnaXN0ZXJQcm9ncmVzc1NsaWNlDQorSXNtUmVnaXN0ZXJQcm9wZXJ0eQ0KK0lzbVJlZ2lzdGVyUHJvcGVydHlEYXRhDQorSXNtUmVnaXN0ZXJSZXN0b3JlQ2FsbGJhY2sNCitJc21SZWdpc3RlclNjb3BlQ2hhbmdlQ2FsbGJhY2sNCitJc21SZWdpc3RlclN0YXRpY0V4Y2x1c2lvbg0KK0lzbVJlZ2lzdGVyVHJhbnNwb3J0DQorSXNtUmVnaXN0ZXJUeXBlUG9zdEVudW1lcmF0aW9uQ2FsbGJhY2sNCitJc21SZWdpc3RlclR5cGVQcmVFbnVtZXJhdGlvbkNhbGxiYWNrDQorSXNtUmVsZWFzZU1lbW9yeQ0KK0lzbVJlbGVhc2VPYmplY3QNCitJc21SZW1vdmVBbGxVc2VyU3VwcGxpZWRDb21wb25lbnRzDQorSXNtUmVtb3ZlUGh5c2ljYWxPYmplY3QNCitJc21SZW1vdmVQcm9wZXJ0eURhdGENCitJc21SZW1vdmVQcm9wZXJ0eUZyb21PYmplY3QNCitJc21SZW1vdmVQcm9wZXJ0eUZyb21PYmplY3RJZA0KK0lzbVJlcGxhY2VQaHlzaWNhbE9iamVjdA0KK0lzbVJlc3VtZUxvYWQNCitJc21SZXN1bWVTYXZlDQorSXNtUm9sbGJhY2sNCitJc21TYXZlDQorSXNtU2VsZWN0Q29tcG9uZW50DQorSXNtU2VsZWN0TWFzdGVyR3JvdXANCitJc21TZWxlY3RQcmVmZXJyZWRBbGlhcw0KK0lzbVNlbGVjdFNjb3BlDQorSXNtU2VsZWN0VHJhbnNwb3J0DQorSXNtU2VuZE1lc3NhZ2VUb0FwcA0KK0lzbVNldEF0dHJpYnV0ZU9uT2JqZWN0DQorSXNtU2V0QXR0cmlidXRlT25PYmplY3RJZA0KK0lzbVNldENhbmNlbA0KK0lzbVNldERlbGF5ZWRPcGVyYXRpb25zQ29tbWFuZA0KK0lzbVNldEVudmlyb25tZW50Q2FsbGJhY2sNCitJc21TZXRFbnZpcm9ubWVudERhdGENCitJc21TZXRFbnZpcm9ubWVudEZsYWcNCitJc21TZXRFbnZpcm9ubWVudE11bHRpU3oNCitJc21TZXRFbnZpcm9ubWVudFN0cmluZw0KK0lzbVNldEVudmlyb25tZW50VmFsdWUNCitJc21TZXRPcGVyYXRpb25Pbk9iamVjdA0KK0lzbVNldE9wZXJhdGlvbk9uT2JqZWN0Mg0KK0lzbVNldE9wZXJhdGlvbk9uT2JqZWN0SWQNCitJc21TZXRPcGVyYXRpb25Pbk9iamVjdElkMg0KK0lzbVNldFBsYXRmb3JtDQorSXNtU2V0Um9sbGJhY2tKb3VybmFsVHlwZQ0KK0lzbVNldFRyYW5zcG9ydFN0b3JhZ2UNCitJc21TZXRUcmFuc3BvcnRWYXJpYWJsZQ0KK0lzbVN0YXJ0RXRtTW9kdWxlcw0KK0lzbVN0YXJ0VHJhbnNwb3J0DQorSXNtVGVybWluYXRlDQorSXNtVGlja1Byb2dyZXNzQmFyDQorSXNtVW5yZWdpc3RlclNjb3BlQ2hhbmdlQ2FsbGJhY2sNCitUcmFja2VkSXNtQ29tcHJlc3NFbnZpcm9ubWVudFN0cmluZw0KK1RyYWNrZWRJc21Db252ZXJ0TXVsdGlTelRvT2JqZWN0DQorVHJhY2tlZElzbUNyZWF0ZU9iamVjdEhhbmRsZQ0KK1RyYWNrZWRJc21DcmVhdGVPYmplY3RQYXR0ZXJuDQorVHJhY2tlZElzbUNyZWF0ZU9iamVjdFN0cmluZ3NGcm9tSGFuZGxlRXgNCitUcmFja2VkSXNtQ3JlYXRlU2ltcGxlT2JqZWN0UGF0dGVybg0KK1RyYWNrZWRJc21EdXBsaWNhdGVTdHJpbmcNCitUcmFja2VkSXNtRXhwYW5kRW52aXJvbm1lbnRTdHJpbmcNCitUcmFja2VkSXNtR2V0TG9uZ05hbWUNCitUcmFja2VkSXNtR2V0TWVtb3J5DQorVHJhY2tlZElzbUdldE5hdGl2ZU9iamVjdE5hbWUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9taWdsaWJudC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9taWdsaWJudC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTlhMmQ2NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21pZ2xpYm50LmRlZgpAQCAtMCwwICsxLDE5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1JR0xJQk5ULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNSUdMSUJOVC5kbGwNCitFWFBPUlRTDQorTWlnRGxsQWRkRGxsVG9MaXN0Vw0KK01pZ0RsbEFwcGx5U3lzdGVtU2V0dGluZ3NXDQorTWlnRGxsQ2xvc2VXDQorTWlnRGxsQ3JlYXRlTGlzdA0KK01pZ0RsbEVudW1GaXJzdFcNCitNaWdEbGxFbnVtTmV4dFcNCitNaWdEbGxGcmVlTGlzdA0KK01pZ0RsbEluaXQNCitNaWdEbGxJbml0aWFsaXplRHN0Vw0KK01pZ0RsbE9wZW5XDQorTWlnRGxsU2h1dGRvd24NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9taW1lZmlsdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9taW1lZmlsdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmRlN2RkNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21pbWVmaWx0LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1JTUVGSUxULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNSU1FRklMVC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tbGFuZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tbGFuZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzU4MTI2NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21sYW5nLmRlZgpAQCAtMCwwICsxLDIyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1MQU5HLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNTEFORy5kbGwNCitFWFBPUlRTDQorSXNDb252ZXJ0SU5ldFN0cmluZ0F2YWlsYWJsZQ0KK0NvbnZlcnRJTmV0U3RyaW5nDQorQ29udmVydElOZXRVbmljb2RlVG9NdWx0aUJ5dGUNCitDb252ZXJ0SU5ldE11bHRpQnl0ZVRvVW5pY29kZQ0KK0NvbnZlcnRJTmV0UmVzZXQNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldEdsb2JhbEZvbnRMaW5rT2JqZWN0DQorTGNpZFRvUmZjMTc2NkENCitMY2lkVG9SZmMxNzY2Vw0KK1JmYzE3NjZUb0xjaWRBDQorUmZjMTc2NlRvTGNpZFcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tbGxfaHAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbWxsX2hwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NTZkZDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbWxsX2hwLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1MTF9IUC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTUxMX0hQLmRsbA0KK0VYUE9SVFMNCitDbGFpbU1lZGlhTGFiZWwNCitNYXhNZWRpYUxhYmVsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbWxsX210Zi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tbGxfbXRmLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NGVkZGMxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbWxsX210Zi5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNTExfTVRGLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNTExfTVRGLmRsbA0KK0VYUE9SVFMNCitDbGFpbU1lZGlhTGFiZWwNCitNYXhNZWRpYUxhYmVsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbWxsX3FpYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tbGxfcWljLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MjVmODcwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbWxsX3FpYy5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNTExfUUlDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNTExfUUlDLmRsbA0KK0VYUE9SVFMNCitDbGFpbU1lZGlhTGFiZWwNCitNYXhNZWRpYUxhYmVsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbW1jYmFzZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tbWNiYXNlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYzYyODQwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbW1jYmFzZS5kZWYKQEAgLTAsMCArMSwxNjAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbW1jYmFzZS5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbW1jYmFzZS5ETEwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0V2ZW50TG9jazxzdHJ1Y3QgQXBwRXZlbnRzPjo6Q0V2ZW50TG9jazxzdHJ1Y3QgQXBwRXZlbnRzPih2b2lkKSBfX3B0cjY0DQorPz8wPyRDRXZlbnRMb2NrQFVBcHBFdmVudHNAQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENFdmVudEJ1ZmZlcjo6Q0V2ZW50QnVmZmVyKGNsYXNzIENFdmVudEJ1ZmZlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRXZlbnRCdWZmZXJAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXZlbnRCdWZmZXI6OkNFdmVudEJ1ZmZlcih2b2lkKSBfX3B0cjY0DQorPz8wQ0V2ZW50QnVmZmVyQEBRRUFBQFhaDQorOyBwcml2YXRlOiBfX2NkZWNsIENNTUNTdHJvbmdSZWZlcmVuY2VzOjpDTU1DU3Ryb25nUmVmZXJlbmNlcyh2b2lkKSBfX3B0cjY0DQorPz8wQ01NQ1N0cm9uZ1JlZmVyZW5jZXNAQEFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBtbWNlcnJvcjo6U0M6OlNDKGxvbmcpIF9fcHRyNjQNCis/PzBTQ0BtbWNlcnJvckBAUUVBQUBKQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXZlbnRMb2NrPHN0cnVjdCBBcHBFdmVudHM+Ojp+Q0V2ZW50TG9jazxzdHJ1Y3QgQXBwRXZlbnRzPih2b2lkKSBfX3B0cjY0DQorPz8xPyRDRXZlbnRMb2NrQFVBcHBFdmVudHNAQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENFdmVudEJ1ZmZlcjo6fkNFdmVudEJ1ZmZlcih2b2lkKSBfX3B0cjY0DQorPz8xQ0V2ZW50QnVmZmVyQEBRRUFBQFhaDQorOyBwdWJsaWM6IGNsYXNzIENFdmVudExvY2s8c3RydWN0IEFwcEV2ZW50cz4gJiBfX3B0cjY0IF9fY2RlY2wgQ0V2ZW50TG9jazxzdHJ1Y3QgQXBwRXZlbnRzPjo6b3BlcmF0b3I9KGNsYXNzIENFdmVudExvY2s8c3RydWN0IEFwcEV2ZW50cz4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDRXZlbnRMb2NrQFVBcHBFdmVudHNAQEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENFdmVudEJ1ZmZlciAmIF9fcHRyNjQgX19jZGVjbCBDRXZlbnRCdWZmZXI6Om9wZXJhdG9yPShjbGFzcyBDRXZlbnRCdWZmZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0V2ZW50QnVmZmVyQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ01NQ1N0cm9uZ1JlZmVyZW5jZXMgJiBfX3B0cjY0IF9fY2RlY2wgQ01NQ1N0cm9uZ1JlZmVyZW5jZXM6Om9wZXJhdG9yPShjbGFzcyBDTU1DU3Ryb25nUmVmZXJlbmNlcyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTU1DU3Ryb25nUmVmZXJlbmNlc0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIG1tY2Vycm9yOjpTQyAmIF9fcHRyNjQgX19jZGVjbCBtbWNlcnJvcjo6U0M6Om9wZXJhdG9yPShjbGFzcyBtbWNlcnJvcjo6U0MgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U0NAbW1jZXJyb3JAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIG1tY2Vycm9yOjpTQyAmIF9fcHRyNjQgX19jZGVjbCBtbWNlcnJvcjo6U0M6Om9wZXJhdG9yPShsb25nKSBfX3B0cjY0DQorPz80U0NAbW1jZXJyb3JAQFFFQUFBRUFWMDFASkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIG1tY2Vycm9yOjpTQzo6b3BlcmF0b3IhKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/PzdTQ0BtbWNlcnJvckBAUUVCQUhYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgbW1jZXJyb3I6OlNDOjpvcGVyYXRvcj09KGNsYXNzIG1tY2Vycm9yOjpTQyBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzhTQ0BtbWNlcnJvckBAUUVCQV9OQUVCVjAxQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBtbWNlcnJvcjo6U0M6Om9wZXJhdG9yPT0obG9uZyljb25zdCAgX19wdHI2NA0KKz8/OFNDQG1tY2Vycm9yQEBRRUJBX05KQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIG1tY2Vycm9yOjpTQzo6b3BlcmF0b3IhPShjbGFzcyBtbWNlcnJvcjo6U0MgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz85U0NAbW1jZXJyb3JAQFFFQkFfTkFFQlYwMUBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgbW1jZXJyb3I6OlNDOjpvcGVyYXRvciE9KGxvbmcpY29uc3QgIF9fcHRyNjQNCis/PzlTQ0BtbWNlcnJvckBAUUVCQV9OSkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgbW1jZXJyb3I6OlNDOjpvcGVyYXRvciBib29sKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JTQ0BtbWNlcnJvckBAUUVCQV9OWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIG1tY2Vycm9yOjpTQzo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZTQ0BtbWNlcnJvckBAUUVBQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENNTUNTdHJvbmdSZWZlcmVuY2VzOjpBZGRSZWYodm9pZCkNCis/QWRkUmVmQENNTUNTdHJvbmdSZWZlcmVuY2VzQEBTQUtYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgbW1jZXJyb3I6OlNDOjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQFNDQG1tY2Vycm9yQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBtbWNlcnJvcjo6U0M6OkZhdGFsRXJyb3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9GYXRhbEVycm9yQFNDQG1tY2Vycm9yQEBRRUJBWFhaDQorOyB2b2lkIF9fY2RlY2wgRm9ybWF0RXJyb3JJZHModW5zaWduZWQgaW50LGNsYXNzIG1tY2Vycm9yOjpTQyx1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9Gb3JtYXRFcnJvcklkc0BAWUFYSVZTQ0BtbWNlcnJvckBASVBFQUdAWg0KKzsgdm9pZCBfX2NkZWNsIEZvcm1hdEVycm9yU2hvcnQoY2xhc3MgbW1jZXJyb3I6OlNDLHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP0Zvcm1hdEVycm9yU2hvcnRAQFlBWFZTQ0BtbWNlcnJvckBASVBFQUdAWg0KKzsgdm9pZCBfX2NkZWNsIEZvcm1hdEVycm9yU3RyaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBtbWNlcnJvcjo6U0MsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxpbnQpDQorP0Zvcm1hdEVycm9yU3RyaW5nQEBZQVhQRUJHVlNDQG1tY2Vycm9yQEBJUEVBR0hAWg0KKzsgcHVibGljOiBjbGFzcyBtbWNlcnJvcjo6U0MgJiBfX3B0cjY0IF9fY2RlY2wgbW1jZXJyb3I6OlNDOjpGcm9tTGFzdEVycm9yKHZvaWQpIF9fcHRyNjQNCis/RnJvbUxhc3RFcnJvckBTQ0BtbWNlcnJvckBAUUVBQUFFQVYxMkBYWg0KKzsgcHVibGljOiBjbGFzcyBtbWNlcnJvcjo6U0MgJiBfX3B0cjY0IF9fY2RlY2wgbW1jZXJyb3I6OlNDOjpGcm9tTU1DKGxvbmcpIF9fcHRyNjQNCis/RnJvbU1NQ0BTQ0BtbWNlcnJvckBAUUVBQUFFQVYxMkBKQFoNCis7IHB1YmxpYzogY2xhc3MgbW1jZXJyb3I6OlNDICYgX19wdHI2NCBfX2NkZWNsIG1tY2Vycm9yOjpTQzo6RnJvbVdpbjMyKGxvbmcpIF9fcHRyNjQNCis/RnJvbVdpbjMyQFNDQG1tY2Vycm9yQEBRRUFBQUVBVjEyQEpAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgbW1jZXJyb3I6OlNDOjpHZXRDb2RlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0Q29kZUBTQ0BtbWNlcnJvckBAUUVCQUpYWg0KKzsgY2xhc3MgQ0V2ZW50U291cmNlPGNsYXNzIENDb21PYmplY3RPYnNlcnZlcixjbGFzcyBDVm9pZCxjbGFzcyBDVm9pZCxjbGFzcyBDVm9pZCxjbGFzcyBDVm9pZD4gJiBfX3B0cjY0IF9fY2RlY2wgR2V0Q29tT2JqZWN0RXZlbnRTb3VyY2Uodm9pZCkNCis/R2V0Q29tT2JqZWN0RXZlbnRTb3VyY2VAQFlBQUVBVj8kQ0V2ZW50U291cmNlQFZDQ29tT2JqZWN0T2JzZXJ2ZXJAQFZDVm9pZEBAVjJAVjJAVjJAQEBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgbW1jZXJyb3I6OlNDOjpHZXRFcnJvck1lc3NhZ2UodW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXRFcnJvck1lc3NhZ2VAU0NAbW1jZXJyb3JAQFFFQkFYSVBFQUdAWg0KKzsgY2xhc3MgQ0V2ZW50QnVmZmVyICYgX19wdHI2NCBfX2NkZWNsIEdldEV2ZW50QnVmZmVyKHZvaWQpDQorP0dldEV2ZW50QnVmZmVyQEBZQUFFQVZDRXZlbnRCdWZmZXJAQFhaDQorOyBwcml2YXRlOiBlbnVtIG1tY2Vycm9yOjpTQzo6ZmFjaWxpdHlfdHlwZSAgX19jZGVjbCBtbWNlcnJvcjo6U0M6OkdldEZhY2lsaXR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0RmFjaWxpdHlAU0NAbW1jZXJyb3JAQEFFQkE/QVc0ZmFjaWxpdHlfdHlwZUAxMkBYWg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQgX19jZGVjbCBtbWNlcnJvcjo6U0M6OkdldEhXbmQodm9pZCkNCis/R2V0SFduZEBTQ0BtbWNlcnJvckBAU0FQRUFVSFdORF9fQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgbW1jZXJyb3I6OlNDOjpHZXRIZWxwRmlsZSh2b2lkKQ0KKz9HZXRIZWxwRmlsZUBTQ0BtbWNlcnJvckBAU0FQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIG1tY2Vycm9yOjpTQzo6R2V0SGVscElEKHZvaWQpIF9fcHRyNjQNCis/R2V0SGVscElEQFNDQG1tY2Vycm9yQEBRRUFBS1haDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3B0cjY0IF9fY2RlY2wgbW1jZXJyb3I6OlNDOjpHZXRIaW5zdCh2b2lkKQ0KKz9HZXRIaW5zdEBTQ0BtbWNlcnJvckBAU0FQRUFVSElOU1RBTkNFX19AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgbW1jZXJyb3I6OlNDOjpHZXRNYWluVGhyZWFkSUQodm9pZCkNCis/R2V0TWFpblRocmVhZElEQFNDQG1tY2Vycm9yQEBTQUtYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENNTUNTdHJvbmdSZWZlcmVuY2VzICYgX19wdHI2NCBfX2NkZWNsIENNTUNTdHJvbmdSZWZlcmVuY2VzOjpHZXRTaW5nbGV0b25PYmplY3Qodm9pZCkNCis/R2V0U2luZ2xldG9uT2JqZWN0QENNTUNTdHJvbmdSZWZlcmVuY2VzQEBDQUFFQVYxQFhaDQorOyBzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3B0cjY0IF9fY2RlY2wgR2V0U3RyaW5nTW9kdWxlKHZvaWQpDQorP0dldFN0cmluZ01vZHVsZUBAWUFQRUFVSElOU1RBTkNFX19AQFhaDQorOyBsb25nIF9fY2RlY2wgSHJGcm9tU2MoY2xhc3MgbW1jZXJyb3I6OlNDIGNvbnN0ICYgX19wdHI2NCkNCis/SHJGcm9tU2NAQFlBSkFFQlZTQ0BtbWNlcnJvckBAQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTU1DU3Ryb25nUmVmZXJlbmNlczo6SW50ZXJuYWxBZGRSZWYodm9pZCkgX19wdHI2NA0KKz9JbnRlcm5hbEFkZFJlZkBDTU1DU3Ryb25nUmVmZXJlbmNlc0BAQUVBQUtYWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENNTUNTdHJvbmdSZWZlcmVuY2VzOjpJbnRlcm5hbExhc3RSZWZSZWxlYXNlZCh2b2lkKSBfX3B0cjY0DQorP0ludGVybmFsTGFzdFJlZlJlbGVhc2VkQENNTUNTdHJvbmdSZWZlcmVuY2VzQEBBRUFBX05YWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENNTUNTdHJvbmdSZWZlcmVuY2VzOjpJbnRlcm5hbFJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9JbnRlcm5hbFJlbGVhc2VAQ01NQ1N0cm9uZ1JlZmVyZW5jZXNAQEFFQUFLWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIG1tY2Vycm9yOjpTQzo6SXNFcnJvcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRXJyb3JAU0NAbW1jZXJyb3JAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRXZlbnRCdWZmZXI6OklzTG9ja2VkKHZvaWQpIF9fcHRyNjQNCis/SXNMb2NrZWRAQ0V2ZW50QnVmZmVyQEBRRUFBX05YWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIENNTUNTdHJvbmdSZWZlcmVuY2VzOjpMYXN0UmVmUmVsZWFzZWQodm9pZCkNCis/TGFzdFJlZlJlbGVhc2VkQENNTUNTdHJvbmdSZWZlcmVuY2VzQEBTQV9OWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENFdmVudEJ1ZmZlcjo6TG9jayh2b2lkKSBfX3B0cjY0DQorP0xvY2tAQ0V2ZW50QnVmZmVyQEBRRUFBWFhaDQorOyBpbnQgX19jZGVjbCBNTUNFcnJvckJveCh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz9NTUNFcnJvckJveEBAWUFISUlAWg0KKzsgaW50IF9fY2RlY2wgTU1DRXJyb3JCb3godW5zaWduZWQgaW50LGNsYXNzIG1tY2Vycm9yOjpTQyx1bnNpZ25lZCBpbnQpDQorP01NQ0Vycm9yQm94QEBZQUhJVlNDQG1tY2Vycm9yQEBJQFoNCis7IGludCBfX2NkZWNsIE1NQ0Vycm9yQm94KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpDQorP01NQ0Vycm9yQm94QEBZQUhQRUJHSUBaDQorOyBpbnQgX19jZGVjbCBNTUNFcnJvckJveCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgbW1jZXJyb3I6OlNDLHVuc2lnbmVkIGludCkNCis/TU1DRXJyb3JCb3hAQFlBSFBFQkdWU0NAbW1jZXJyb3JAQElAWg0KKzsgaW50IF9fY2RlY2wgTU1DRXJyb3JCb3goY2xhc3MgbW1jZXJyb3I6OlNDLHVuc2lnbmVkIGludCkNCis/TU1DRXJyb3JCb3hAQFlBSFZTQ0BtbWNlcnJvckBASUBaDQorOyBsb25nIF9fY2RlY2wgTU1DVXBkYXRlUmVnaXN0cnkoaW50LGNsYXNzIENPYmplY3RSZWdQYXJhbXMgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENDb250cm9sUmVnUGFyYW1zIGNvbnN0ICogX19wdHI2NCkNCis/TU1DVXBkYXRlUmVnaXN0cnlAQFlBSkhQRUJWQ09iamVjdFJlZ1BhcmFtc0BAUEVCVkNDb250cm9sUmVnUGFyYW1zQEBAWg0KKzsgX19pbnQ2NCBfX2NkZWNsIE1NQ19QaWNrSWNvbkRsZyhzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGludCAqIF9fcHRyNjQpDQorP01NQ19QaWNrSWNvbkRsZ0BAWUFfSlBFQVVIV05EX19AQFBFQUdJUEVBSEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgbW1jZXJyb3I6OlNDOjpNYWtlU2MoZW51bSBtbWNlcnJvcjo6U0M6OmZhY2lsaXR5X3R5cGUsbG9uZykgX19wdHI2NA0KKz9NYWtlU2NAU0NAbW1jZXJyb3JAQEFFQUFYVzRmYWNpbGl0eV90eXBlQDEyQEpAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENNTUNTdHJvbmdSZWZlcmVuY2VzOjpSZWxlYXNlKHZvaWQpDQorP1JlbGVhc2VAQ01NQ1N0cm9uZ1JlZmVyZW5jZXNAQFNBS1haDQorOyBsb25nIF9fY2RlY2wgU0NPREVGcm9tU2MoY2xhc3MgbW1jZXJyb3I6OlNDIGNvbnN0ICYgX19wdHI2NCkNCis/U0NPREVGcm9tU2NAQFlBSkFFQlZTQ0BtbWNlcnJvckBAQFoNCis7IHB1YmxpYzogY2xhc3MgbW1jZXJyb3I6OlNDICBfX2NkZWNsIENFdmVudEJ1ZmZlcjo6U2NFbWl0T3JQb3N0cG9uZShzdHJ1Y3QgSURpc3BhdGNoICogX19wdHI2NCxsb25nLGNsYXNzIEFUTDo6Q0NvbVZhcmlhbnQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9TY0VtaXRPclBvc3Rwb25lQENFdmVudEJ1ZmZlckBAUUVBQT9BVlNDQG1tY2Vycm9yQEBQRUFVSURpc3BhdGNoQEBKUEVBVkNDb21WYXJpYW50QEFUTEBASEBaDQorOyBwcml2YXRlOiBjbGFzcyBtbWNlcnJvcjo6U0MgIF9fY2RlY2wgQ0V2ZW50QnVmZmVyOjpTY0ZsdXNoUG9zdHBvbmVkKHZvaWQpIF9fcHRyNjQNCis/U2NGbHVzaFBvc3Rwb25lZEBDRXZlbnRCdWZmZXJAQEFFQUE/QVZTQ0BtbWNlcnJvckBAWFoNCis7IGNsYXNzIG1tY2Vycm9yOjpTQyAgX19jZGVjbCBTY0Zyb21NTUMobG9uZykNCis/U2NGcm9tTU1DQEBZQT9BVlNDQG1tY2Vycm9yQEBKQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIG1tY2Vycm9yOjpTQyAgX19jZGVjbCBDQ29uc29sZUV2ZW50RGlzcGF0Y2hlclByb3ZpZGVyOjpTY0dldENvbnNvbGVFdmVudERpc3BhdGNoZXIoY2xhc3MgQ0NvbnNvbGVFdmVudERpc3BhdGNoZXIgKiBfX3B0cjY0ICYgX19wdHI2NCkNCis/U2NHZXRDb25zb2xlRXZlbnREaXNwYXRjaGVyQENDb25zb2xlRXZlbnREaXNwYXRjaGVyUHJvdmlkZXJAQFNBP0FWU0NAbW1jZXJyb3JAQEFFQVBFQVZDQ29uc29sZUV2ZW50RGlzcGF0Y2hlckBAQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIG1tY2Vycm9yOjpTQyAgX19jZGVjbCBDQ29uc29sZUV2ZW50RGlzcGF0Y2hlclByb3ZpZGVyOjpTY1NldENvbnNvbGVFdmVudERpc3BhdGNoZXIoY2xhc3MgQ0NvbnNvbGVFdmVudERpc3BhdGNoZXIgKiBfX3B0cjY0KQ0KKz9TY1NldENvbnNvbGVFdmVudERpc3BhdGNoZXJAQ0NvbnNvbGVFdmVudERpc3BhdGNoZXJQcm92aWRlckBAU0E/QVZTQ0BtbWNlcnJvckBAUEVBVkNDb25zb2xlRXZlbnREaXNwYXRjaGVyQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIG1tY2Vycm9yOjpTQzo6U2V0SFduZChzdHJ1Y3QgSFdORF9fICogX19wdHI2NCkNCis/U2V0SFduZEBTQ0BtbWNlcnJvckBAU0FYUEVBVUhXTkRfX0BAQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBtbWNlcnJvcjo6U0M6OlNldEhpbnN0KHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQpDQorP1NldEhpbnN0QFNDQG1tY2Vycm9yQEBTQVhQRUFVSElOU1RBTkNFX19AQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgbW1jZXJyb3I6OlNDOjpTZXRNYWluVGhyZWFkSUQodW5zaWduZWQgbG9uZykNCis/U2V0TWFpblRocmVhZElEQFNDQG1tY2Vycm9yQEBTQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIG1tY2Vycm9yOjpTQzo6VGhyb3cobG9uZykgX19wdHI2NA0KKz9UaHJvd0BTQ0BtbWNlcnJvckBAUUVBQVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIG1tY2Vycm9yOjpTQzo6VGhyb3codm9pZCkgX19wdHI2NA0KKz9UaHJvd0BTQ0BtbWNlcnJvckBAUUVBQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgbW1jZXJyb3I6OlNDOjpUb0hyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/VG9IckBTQ0BtbWNlcnJvckBAUUVCQUpYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgbW1jZXJyb3I6OlNDOjpUcmFjZUFuZENsZWFyKHZvaWQpIF9fcHRyNjQNCis/VHJhY2VBbmRDbGVhckBTQ0BtbWNlcnJvckBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgbW1jZXJyb3I6OlNDOjpUcmFjZV8odm9pZCljb25zdCAgX19wdHI2NA0KKz9UcmFjZV9AU0NAbW1jZXJyb3JAQFFFQkFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENFdmVudEJ1ZmZlcjo6VW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/VW5sb2NrQENFdmVudEJ1ZmZlckBAUUVBQVhYWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGxvbmcgIG1tY2Vycm9yOjpTQzo6c19kd01haW5UaHJlYWRJRA0KKz9zX2R3TWFpblRocmVhZElEQFNDQG1tY2Vycm9yQEAwS0EgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQgIF9fcHRyNjQgbW1jZXJyb3I6OlNDOjpzX2hJbnN0DQorP3NfaEluc3RAU0NAbW1jZXJyb3JAQDBQRUFVSElOU1RBTkNFX19AQEVBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgSFdORF9fICogX19wdHI2NCAgX19wdHI2NCBtbWNlcnJvcjo6U0M6OnNfaFduZA0KKz9zX2hXbmRAU0NAbW1jZXJyb3JAQDBQRUFVSFdORF9fQEBFQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ0NvbnNvbGVFdmVudERpc3BhdGNoZXIgKiBfX3B0cjY0ICBfX3B0cjY0IENDb25zb2xlRXZlbnREaXNwYXRjaGVyUHJvdmlkZXI6OnNfcERpc3BhdGNoZXINCis/c19wRGlzcGF0Y2hlckBDQ29uc29sZUV2ZW50RGlzcGF0Y2hlclByb3ZpZGVyQEAwUEVBVkNDb25zb2xlRXZlbnREaXNwYXRjaGVyQEBFQSBEQVRBDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbW1jbmRtZ3IuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbW1jbmRtZ3IuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjczYjg3NTMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tbWNuZG1nci5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNTUNORE1HUi5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTU1DTkRNR1IuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbW1jc2hleHQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbW1jc2hleHQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJjY2RmZTUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tbWNzaGV4dC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtbWNzaGV4dC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbW1jc2hleHQuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbW1mdXRpbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tbWZ1dGlsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ODIwYmNmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbW1mdXRpbC5kZWYKQEAgLTAsMCArMSwxOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNTUZVdGlsLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNTUZVdGlsLkRMTA0KK0VYUE9SVFMNCis7IF9faW50NjQgX19jZGVjbCBEaXNwbGF5QVZJQm94KHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9EaXNwbGF5QVZJQm94QEBZQV9KUEVBVUhXTkRfX0BAUEVCRzFQRUFQRUFVMUBAWg0KKzsgaW50IF9fY2RlY2wgRGlzcGxheVVzZXJNZXNzYWdlKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxlbnVtIEVSUk9SX1NSQyxsb25nLHVuc2lnbmVkIGludCkNCis/RGlzcGxheVVzZXJNZXNzYWdlQEBZQUhQRUFVSFdORF9fQEBQRUFVSElOU1RBTkNFX19AQElJVzRFUlJPUl9TUkNAQEpJQFoNCis7IGludCBfX2NkZWNsIERpc3BsYXlVc2VyTWVzc2FnZShzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGVudW0gRVJST1JfU1JDLGxvbmcsdW5zaWduZWQgaW50KQ0KKz9EaXNwbGF5VXNlck1lc3NhZ2VAQFlBSFBFQVVIV05EX19AQFBFQkcxVzRFUlJPUl9TUkNAQEpJQFoNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0Vycm9yU3RyaW5nRXgNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tbXV0aWxzZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tbXV0aWxzZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDYyOTYzYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21tdXRpbHNlLmRlZgpAQCAtMCwwICsxLDI5NSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtbXV0aWxzZS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbW11dGlsc2UuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIElIYW1tZXI6OkNEaXJlY3REcmF3U3VyZmFjZTo6Q0RpcmVjdERyYXdTdXJmYWNlKHN0cnVjdCBIUEFMRVRURV9fICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdTSVpFIGNvbnN0ICogX19wdHI2NCxsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENEaXJlY3REcmF3U3VyZmFjZUBJSGFtbWVyQEBRRUFBQFBFQVVIUEFMRVRURV9fQEBLUEVCVXRhZ1NJWkVAQFBFQUpAWg0KKzsgcHVibGljOiBfX2NkZWNsIENIYWxmdG9uZTo6Q0hhbGZ0b25lKHN0cnVjdCBIUEFMRVRURV9fICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENIYWxmdG9uZUBAUUVBQUBQRUFVSFBBTEVUVEVfX0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSGFsZnRvbmVQYWxldHRlOjpDSGFsZnRvbmVQYWxldHRlKHN0cnVjdCBIUEFMRVRURV9fICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENIYWxmdG9uZVBhbGV0dGVAQFFFQUFAUEVBVUhQQUxFVFRFX19AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0hhbGZ0b25lUGFsZXR0ZTo6Q0hhbGZ0b25lUGFsZXR0ZSh2b2lkKSBfX3B0cjY0DQorPz8wQ0hhbGZ0b25lUGFsZXR0ZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZW1NYW5hZ2VyOjpDTWVtTWFuYWdlcih2b2lkKSBfX3B0cjY0DQorPz8wQ01lbU1hbmFnZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWVtVXNlcjo6Q01lbVVzZXIodm9pZCkgX19wdHI2NA0KKz8/MENNZW1Vc2VyQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1RTdHI6OkNUU3RyKGNsYXNzIENUU3RyICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENUU3RyQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1RTdHI6OkNUU3RyKGludCkgX19wdHI2NA0KKz8/MENUU3RyQEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIENUU3RyOjpDVFN0cihjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENUU3RyQEBRRUFBQFBFQURAWg0KKzsgcHVibGljOiBfX2NkZWNsIENUU3RyOjpDVFN0cih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDVFN0ckBAUUVBQUBQRUFHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDVVJMQXJjaGl2ZTo6Q1VSTEFyY2hpdmUoc3RydWN0IElVbmtub3duICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENVUkxBcmNoaXZlQEBRRUFBQFBFQVVJVW5rbm93bkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBPVHJpZzo6T1RyaWcodm9pZCkgX19wdHI2NA0KKz8/ME9UcmlnQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDTWVtTWFuYWdlcjo6fkNNZW1NYW5hZ2VyKHZvaWQpIF9fcHRyNjQNCis/PzFDTWVtTWFuYWdlckBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ01lbVVzZXI6On5DTWVtVXNlcih2b2lkKSBfX3B0cjY0DQorPz8xQ01lbVVzZXJAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVFN0cjo6fkNUU3RyKHZvaWQpIF9fcHRyNjQNCis/PzFDVFN0ckBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1VSTEFyY2hpdmU6On5DVVJMQXJjaGl2ZSh2b2lkKSBfX3B0cjY0DQorPz8xQ1VSTEFyY2hpdmVAQFVFQUFAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENUU3RyOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNUU3RyQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVVJMQXJjaGl2ZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDVVJMQXJjaGl2ZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENNZW1NYW5hZ2VyOjpBbGxvY0J1ZmZlcih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP0FsbG9jQnVmZmVyQENNZW1NYW5hZ2VyQEBRRUFBUEVBWEtHQFoNCis7IHB1YmxpYzogc3RydWN0IE1FTUJMT0NLX3RhZyAqIF9fcHRyNjQgX19jZGVjbCBDTWVtVXNlcjo6QWxsb2NCdWZmZXIodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9BbGxvY0J1ZmZlckBDTWVtVXNlckBAUUVBQVBFQVVNRU1CTE9DS190YWdAQEtHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1RTdHI6OkFsbG9jQnVmZmVyKGludCxpbnQpIF9fcHRyNjQNCis/QWxsb2NCdWZmZXJAQ1RTdHJAQFFFQUFISEhAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBDTWVtTWFuYWdlcjo6QWxsb2NCdWZmZXJHbGIodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCkNCis/QWxsb2NCdWZmZXJHbGJAQ01lbU1hbmFnZXJAQFNBUEVBWEtHQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpBdG9pKGNoYXIgY29uc3QgKiBfX3B0cjY0KQ0KKz9BdG9pQENTdHJpbmdXcmFwcGVyQEBTQUhQRUJEQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6QXRvbChjaGFyIGNvbnN0ICogX19wdHI2NCkNCis/QXRvbEBDU3RyaW5nV3JhcHBlckBAU0FKUEVCREBaDQorOyBsb25nIF9fY2RlY2wgQml0Q291bnRGcm9tRERQSVhFTEZPUk1BVChzdHJ1Y3QgX0REUElYRUxGT1JNQVQgY29uc3QgJiBfX3B0cjY0KQ0KKz9CaXRDb3VudEZyb21ERFBJWEVMRk9STUFUQEBZQUpBRUJVX0REUElYRUxGT1JNQVRAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENVUkxBcmNoaXZlOjpDbG9zZSh2b2lkKSBfX3B0cjY0DQorP0Nsb3NlQENVUkxBcmNoaXZlQEBVRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ05vbkNvbGxhcHNpbmdEcmc6OkNvcHlGcm9tKGNsYXNzIENEcmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlGcm9tQENOb25Db2xsYXBzaW5nRHJnQEBVRUFBSFBFQVZDRHJnQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDVVJMQXJjaGl2ZTo6Q29weUxvY2FsKGNoYXIgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9Db3B5TG9jYWxAQ1VSTEFyY2hpdmVAQFVFQUFKUEVBREhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDVVJMQXJjaGl2ZTo6Q29weUxvY2FsKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/Q29weUxvY2FsQENVUkxBcmNoaXZlQEBVRUFBSlBFQUdIQFoNCis7IHB1YmxpYzogZmxvYXQgX19jZGVjbCBPVHJpZzo6Q29zKGxvbmcpIF9fcHRyNjQNCis/Q29zQE9UcmlnQEBRRUFBTUpAWg0KKzsgcHVibGljOiBmbG9hdCBfX2NkZWNsIE9UcmlnOjpDb3MoZmxvYXQpIF9fcHRyNjQNCis/Q29zQE9UcmlnQEBRRUFBTU1AWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBDTWF0aFdyYXBwZXI6OkNvc0RlZyhsb25nKQ0KKz9Db3NEZWdAQ01hdGhXcmFwcGVyQEBTQU1KQFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgQ01hdGhXcmFwcGVyOjpDb3NEZWcoZmxvYXQpDQorP0Nvc0RlZ0BDTWF0aFdyYXBwZXJAQFNBTU1AWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBDTWF0aFdyYXBwZXI6OkNvc0RlZ1dyYXAobG9uZykNCis/Q29zRGVnV3JhcEBDTWF0aFdyYXBwZXJAQFNBTUpAWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBDTWF0aFdyYXBwZXI6OkNvc0RlZ1dyYXAoZmxvYXQpDQorP0Nvc0RlZ1dyYXBAQ01hdGhXcmFwcGVyQEBTQU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIENNYXRoV3JhcHBlcjo6Q29zUmFkKGRvdWJsZSkNCis/Q29zUmFkQENNYXRoV3JhcHBlckBAU0FOTkBaDQorOyBwdWJsaWM6IGZsb2F0IF9fY2RlY2wgT1RyaWc6OkNvc1dyYXAobG9uZykgX19wdHI2NA0KKz9Db3NXcmFwQE9UcmlnQEBRRUFBTUpAWg0KKzsgcHVibGljOiBmbG9hdCBfX2NkZWNsIE9UcmlnOjpDb3NXcmFwKGZsb2F0KSBfX3B0cjY0DQorP0Nvc1dyYXBAT1RyaWdAQFFFQUFNTUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENVUkxBcmNoaXZlOjpDcmVhdGUoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q3JlYXRlQENVUkxBcmNoaXZlQEBVRUFBSlBFQkRAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDVVJMQXJjaGl2ZTo6Q3JlYXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVAQ1VSTEFyY2hpdmVAQFVFQUFKUEVCR0BaDQorOyBpbnQgX19jZGVjbCBDcmVhdGVJRGlzcGF0Y2hDb2xsZWN0aW9uKHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9DcmVhdGVJRGlzcGF0Y2hDb2xsZWN0aW9uQEBZQUhQRUFQRUFVSVVua25vd25AQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTWVtTWFuYWdlcjo6RHVtcEFsbG9jYXRpb25zKGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0R1bXBBbGxvY2F0aW9uc0BDTWVtTWFuYWdlckBAUUVBQVhQRUFEQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDTWVtTWFuYWdlcjo6RHVtcEFsbG9jYXRpb25zR2xiKGNoYXIgKiBfX3B0cjY0KQ0KKz9EdW1wQWxsb2NhdGlvbnNHbGJAQ01lbU1hbmFnZXJAQFNBWFBFQURAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENNZW1NYW5hZ2VyOjpEdW1wSGVhcEhlYWRlcihzdHJ1Y3QgSEVBUEhFQURFUl90YWcgKiBfX3B0cjY0LHN0cnVjdCBfaW9idWYgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0R1bXBIZWFwSGVhZGVyQENNZW1NYW5hZ2VyQEBBRUFBWFBFQVVIRUFQSEVBREVSX3RhZ0BAUEVBVV9pb2J1ZkBAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDTWVtTWFuYWdlcjo6RHVtcE1lbUJsb2NrKHN0cnVjdCBNRU1CTE9DS190YWcgKiBfX3B0cjY0LHN0cnVjdCBfaW9idWYgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0R1bXBNZW1CbG9ja0BDTWVtTWFuYWdlckBAQUVBQVhQRUFVTUVNQkxPQ0tfdGFnQEBQRUFVX2lvYnVmQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENNZW1NYW5hZ2VyOjpEdW1wTWVtVXNlckluZm8oc3RydWN0IE1FTVVTRVJJTkZPX3RhZyAqIF9fcHRyNjQsc3RydWN0IF9pb2J1ZiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RHVtcE1lbVVzZXJJbmZvQENNZW1NYW5hZ2VyQEBBRUFBWFBFQVVNRU1VU0VSSU5GT190YWdAQFBFQVVfaW9idWZAQEBaDQorOyB2b2lkIF9fY2RlY2wgRXh0ZXJuYWxEdW1wQWxsb2NhdGlvbnMoY2hhciAqIF9fcHRyNjQpDQorP0V4dGVybmFsRHVtcEFsbG9jYXRpb25zQEBZQVhQRUFEQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNZW1NYW5hZ2VyOjpGcmVlQnVmZmVyKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZyZWVCdWZmZXJAQ01lbU1hbmFnZXJAQFFFQUFYUEVBWEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTWVtVXNlcjo6RnJlZUJ1ZmZlcihzdHJ1Y3QgTUVNQkxPQ0tfdGFnICogX19wdHI2NCkgX19wdHI2NA0KKz9GcmVlQnVmZmVyQENNZW1Vc2VyQEBRRUFBWFBFQVVNRU1CTE9DS190YWdAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVFN0cjo6RnJlZUJ1ZmZlcih2b2lkKSBfX3B0cjY0DQorP0ZyZWVCdWZmZXJAQ1RTdHJAQFFFQUFYWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDTWVtTWFuYWdlcjo6RnJlZUJ1ZmZlckdsYih2b2lkICogX19wdHI2NCkNCis/RnJlZUJ1ZmZlckdsYkBDTWVtTWFuYWdlckBAU0FYUEVBWEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTWVtTWFuYWdlcjo6RnJlZUJ1ZmZlck1lbUJsb2NrKHN0cnVjdCBNRU1CTE9DS190YWcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZyZWVCdWZmZXJNZW1CbG9ja0BDTWVtTWFuYWdlckBAUUVBQVhQRUFVTUVNQkxPQ0tfdGFnQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6R2N2dChkb3VibGUsaW50LGNoYXIgKiBfX3B0cjY0KQ0KKz9HY3Z0QENTdHJpbmdXcmFwcGVyQEBTQVBFQUROSFBFQURAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ05vbkNvbGxhcHNpbmdEcmc6OkdldEF0KGxvbmcpIF9fcHRyNjQNCis/R2V0QXRAQ05vbkNvbGxhcHNpbmdEcmdAQFVFQUFQRUFYSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENVUkxBcmNoaXZlOjpHZXRGaWxlU2l6ZShsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRGaWxlU2l6ZUBDVVJMQXJjaGl2ZUBAVUVBQUpBRUFKQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX19wdHI2NCBfX2NkZWNsIENOb25Db2xsYXBzaW5nRHJnOjpHZXRGaXJzdCh2b2lkKSBfX3B0cjY0DQorP0dldEZpcnN0QENOb25Db2xsYXBzaW5nRHJnQEBVRUFBUEVBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBDTm9uQ29sbGFwc2luZ0RyZzo6R2V0TmV4dCh2b2lkKSBfX3B0cjY0DQorP0dldE5leHRAQ05vbkNvbGxhcHNpbmdEcmdAQFVFQUFQRUFYWFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBHZXRTaWdCaXRzRnJvbTE2QlBQKHN0cnVjdCBIRENfXyAqIF9fcHRyNjQpDQorP0dldFNpZ0JpdHNGcm9tMTZCUFBAQFlBS1BFQVVIRENfX0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBzdHJ1Y3QgSVN0cmVhbSAqIF9fcHRyNjQgX19jZGVjbCBDVVJMQXJjaGl2ZTo6R2V0U3RyZWFtSW50ZXJmYWNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyZWFtSW50ZXJmYWNlQENVUkxBcmNoaXZlQEBVRUJBUEVBVUlTdHJlYW1AQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0RyZzo6SW5zZXJ0KHZvaWQgKiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/SW5zZXJ0QENEcmdAQFVFQUFIUEVBWEpAWg0KKzsgaW50IF9fY2RlY2wgSXNNTVhDcHUodm9pZCkNCis/SXNNTVhDcHVAQFlBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6SXN3c3BhY2UodW5zaWduZWQgc2hvcnQpDQorP0lzd3NwYWNlQENTdHJpbmdXcmFwcGVyQEBTQUhHQFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1N0cmluZ1dyYXBwZXI6Okl0b2EoaW50LGNoYXIgKiBfX3B0cjY0LGludCkNCis/SXRvYUBDU3RyaW5nV3JhcHBlckBAU0FQRUFESFBFQURIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1RTdHI6Okxlbih2b2lkKSBfX3B0cjY0DQorP0xlbkBDVFN0ckBAUUVBQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1N0cmluZ1dyYXBwZXI6OkxvYWRTdHJpbmdXKHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxpbnQpDQorP0xvYWRTdHJpbmdXQENTdHJpbmdXcmFwcGVyQEBTQUhQRUFVSElOU1RBTkNFX19AQElQRUFHSEBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ01lbVVzZXI6OkxvY2tCdWZmZXIoc3RydWN0IE1FTUJMT0NLX3RhZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TG9ja0J1ZmZlckBDTWVtVXNlckBAUUVBQVBFQVhQRUFVTUVNQkxPQ0tfdGFnQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6THRvYShsb25nLGNoYXIgKiBfX3B0cjY0LGludCkNCis/THRvYUBDU3RyaW5nV3JhcHBlckBAU0FQRUFESlBFQURIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6TWJzdG93Y3ModW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpDQorP01ic3Rvd2NzQENTdHJpbmdXcmFwcGVyQEBTQV9LUEVBR1BFQkRfS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6TWVtY21wKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpDQorP01lbWNtcEBDU3RyaW5nV3JhcHBlckBAU0FIUEVCWDBfS0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkICogX19wdHI2NCBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpNZW1jcHkodm9pZCAqIF9fcHRyNjQsdm9pZCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkNCis/TWVtY3B5QENTdHJpbmdXcmFwcGVyQEBTQVBFQVhQRUFYUEVCWF9LQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ1N0cmluZ1dyYXBwZXI6Ok1lbXNldCh2b2lkICogX19wdHI2NCxpbnQsdW5zaWduZWQgX19pbnQ2NCkNCis/TWVtc2V0QENTdHJpbmdXcmFwcGVyQEBTQVBFQVhQRUFYSF9LQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDTWVtVXNlcjo6Tm90aWZ5TWVtVXNlcihzdHJ1Y3QgTUVNTk9USUZZX3RhZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Tm90aWZ5TWVtVXNlckBDTWVtVXNlckBAVUVBQUhQRUFVTUVNTk9USUZZX3RhZ0BAQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBPdmVyaGVhZE9mU2F2ZVB0ckRyZyh2b2lkKQ0KKz9PdmVyaGVhZE9mU2F2ZVB0ckRyZ0BAWUFLWFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgQ01hdGhXcmFwcGVyOjpQb3coZG91YmxlLGRvdWJsZSkNCis/UG93QENNYXRoV3JhcHBlckBAU0FNTk5AWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENNZW1NYW5hZ2VyOjpSZUFsbG9jQnVmZmVyKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/UmVBbGxvY0J1ZmZlckBDTWVtTWFuYWdlckBAUUVBQVBFQVhQRUFYS0dAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBDTWVtTWFuYWdlcjo6UmVBbGxvY0J1ZmZlckdsYih2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0KQ0KKz9SZUFsbG9jQnVmZmVyR2xiQENNZW1NYW5hZ2VyQEBTQVBFQVhQRUFYS0dAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDVVJMQXJjaGl2ZTo6UmVhZCh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlYWRAQ1VSTEFyY2hpdmVAQFVFQUFLUEVBRUtAWg0KKzsgbG9uZyBfX2NkZWNsIFJlYWRCc3RyRnJvbVByb3BCYWcoc3RydWN0IElQcm9wZXJ0eUJhZyAqIF9fcHRyNjQsc3RydWN0IElFcnJvckxvZyAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/UmVhZEJzdHJGcm9tUHJvcEJhZ0BAWUFKUEVBVUlQcm9wZXJ0eUJhZ0BAUEVBVUlFcnJvckxvZ0BAUEVBRFBFQVBFQUdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDVVJMQXJjaGl2ZTo6UmVhZExpbmUoY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZWFkTGluZUBDVVJMQXJjaGl2ZUBAVUVBQUtQRUFES0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENVUkxBcmNoaXZlOjpSZWFkTGluZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZWFkTGluZUBDVVJMQXJjaGl2ZUBAVUVBQUtQRUFHS0BaDQorOyBsb25nIF9fY2RlY2wgUmVhZExvbmdGcm9tUHJvcEJhZyhzdHJ1Y3QgSVByb3BlcnR5QmFnICogX19wdHI2NCxzdHJ1Y3QgSUVycm9yTG9nICogX19wdHI2NCxjaGFyICogX19wdHI2NCxsb25nICogX19wdHI2NCkNCis/UmVhZExvbmdGcm9tUHJvcEJhZ0BAWUFKUEVBVUlQcm9wZXJ0eUJhZ0BAUEVBVUlFcnJvckxvZ0BAUEVBRFBFQUpAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTWVtTWFuYWdlcjo6UmVnaXN0ZXJNZW1Vc2VyKGNsYXNzIENNZW1Vc2VyICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWdpc3Rlck1lbVVzZXJAQ01lbU1hbmFnZXJAQFFFQUFIUEVBVkNNZW1Vc2VyQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ01lbU1hbmFnZXI6OlJlZ2lzdGVyTWVtVXNlckdsYihjbGFzcyBDTWVtVXNlciAqIF9fcHRyNjQpDQorP1JlZ2lzdGVyTWVtVXNlckdsYkBDTWVtTWFuYWdlckBAU0FIUEVBVkNNZW1Vc2VyQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENEcmc6OlJlbW92ZSh2b2lkICogX19wdHI2NCxsb25nKSBfX3B0cjY0DQorP1JlbW92ZUBDRHJnQEBVRUFBSFBFQVhKQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDTm9uQ29sbGFwc2luZ0RyZzo6UmVtb3ZlKHZvaWQgKiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/UmVtb3ZlQENOb25Db2xsYXBzaW5nRHJnQEBVRUFBSFBFQVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENUU3RyOjpSZXNldExlbmd0aCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0TGVuZ3RoQENUU3RyQEBRRUFBWFhaDQorOyB2b2lkIF9fY2RlY2wgUmV0YWlsRWNobyhjaGFyICogX19wdHI2NCwuLi4pDQorP1JldGFpbEVjaG9AQFlBWFBFQURaWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDVVJMQXJjaGl2ZTo6U2Vlayhsb25nLGVudW0gQ1VSTEFyY2hpdmU6Om9yaWdpbikgX19wdHI2NA0KKz9TZWVrQENVUkxBcmNoaXZlQEBVRUFBSkpXNG9yaWdpbkAxQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENOb25Db2xsYXBzaW5nRHJnOjpTZXRBcnJheSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCxsb25nLHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRBcnJheUBDTm9uQ29sbGFwc2luZ0RyZ0BAVUVBQVhQRUFFSklAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENOb25Db2xsYXBzaW5nRHJnOjpTZXRBdCh2b2lkICogX19wdHI2NCxsb25nKSBfX3B0cjY0DQorP1NldEF0QENOb25Db2xsYXBzaW5nRHJnQEBVRUFBSFBFQVhKQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ0RyZzo6U2V0Tm9uRGVmYXVsdFNpemVzKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0Tm9uRGVmYXVsdFNpemVzQENEcmdAQFVFQUFYSUlAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVFN0cjo6U2V0U3RyaW5nKGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFN0cmluZ0BDVFN0ckBAUUVBQUhQRUFEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1RTdHI6OlNldFN0cmluZyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0U3RyaW5nQENUU3RyQEBRRUFBSFBFQUdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVFN0cjo6U2V0U3RyaW5nUG9pbnRlcihjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/U2V0U3RyaW5nUG9pbnRlckBDVFN0ckBAUUVBQUhQRUFESEBaDQorOyBwdWJsaWM6IGZsb2F0IF9fY2RlY2wgT1RyaWc6OlNpbihsb25nKSBfX3B0cjY0DQorP1NpbkBPVHJpZ0BAUUVBQU1KQFoNCis7IHB1YmxpYzogZmxvYXQgX19jZGVjbCBPVHJpZzo6U2luKGZsb2F0KSBfX3B0cjY0DQorP1NpbkBPVHJpZ0BAUUVBQU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgQ01hdGhXcmFwcGVyOjpTaW5EZWcobG9uZykNCis/U2luRGVnQENNYXRoV3JhcHBlckBAU0FNSkBaDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIENNYXRoV3JhcHBlcjo6U2luRGVnKGZsb2F0KQ0KKz9TaW5EZWdAQ01hdGhXcmFwcGVyQEBTQU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgQ01hdGhXcmFwcGVyOjpTaW5EZWdXcmFwKGxvbmcpDQorP1NpbkRlZ1dyYXBAQ01hdGhXcmFwcGVyQEBTQU1KQFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgQ01hdGhXcmFwcGVyOjpTaW5EZWdXcmFwKGZsb2F0KQ0KKz9TaW5EZWdXcmFwQENNYXRoV3JhcHBlckBAU0FNTUBaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBDTWF0aFdyYXBwZXI6OlNpblJhZChkb3VibGUpDQorP1NpblJhZEBDTWF0aFdyYXBwZXJAQFNBTk5AWg0KKzsgcHVibGljOiBmbG9hdCBfX2NkZWNsIE9UcmlnOjpTaW5XcmFwKGxvbmcpIF9fcHRyNjQNCis/U2luV3JhcEBPVHJpZ0BAUUVBQU1KQFoNCis7IHB1YmxpYzogZmxvYXQgX19jZGVjbCBPVHJpZzo6U2luV3JhcChmbG9hdCkgX19wdHI2NA0KKz9TaW5XcmFwQE9UcmlnQEBRRUFBTU1AWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ01lbU1hbmFnZXI6OlNpemVCdWZmZXIodm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2l6ZUJ1ZmZlckBDTWVtTWFuYWdlckBAUUVBQUtQRUFYQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTWVtTWFuYWdlcjo6U2l6ZUJ1ZmZlckdsYih2b2lkICogX19wdHI2NCkNCis/U2l6ZUJ1ZmZlckdsYkBDTWVtTWFuYWdlckBAU0FLUEVBWEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6U3ByaW50ZihjaGFyICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCwuLi4pDQorP1NwcmludGZAQ1N0cmluZ1dyYXBwZXJAQFNBSFBFQURQRUJEWloNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgQ01hdGhXcmFwcGVyOjpTcXJ0KGZsb2F0KQ0KKz9TcXJ0QENNYXRoV3JhcHBlckBAU0FNTUBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6U3NjYW5mMShjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCkNCis/U3NjYW5mMUBDU3RyaW5nV3JhcHBlckBAU0FIUEVCRDBQRUFYQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpTc2NhbmYyKGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KQ0KKz9Tc2NhbmYyQENTdHJpbmdXcmFwcGVyQEBTQUhQRUJEMFBFQVgxQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpTc2NhbmYzKGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KQ0KKz9Tc2NhbmYzQENTdHJpbmdXcmFwcGVyQEBTQUhQRUJEMFBFQVgxMUBaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyICogX19wdHI2NCBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpTdHJjYXQoY2hhciAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpDQorP1N0cmNhdEBDU3RyaW5nV3JhcHBlckBAU0FQRUFEUEVBRFBFQkRAWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6U3RyY2hyKGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIpDQorP1N0cmNockBDU3RyaW5nV3JhcHBlckBAU0FQRUFEUEVCRERAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1N0cmluZ1dyYXBwZXI6OlN0cmNtcChjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCkNCis/U3RyY21wQENTdHJpbmdXcmFwcGVyQEBTQUhQRUJEMEBaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyICogX19wdHI2NCBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpTdHJjcHkoY2hhciAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpDQorP1N0cmNweUBDU3RyaW5nV3JhcHBlckBAU0FQRUFEUEVBRFBFQkRAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1N0cmluZ1dyYXBwZXI6OlN0cmljbXAoY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpDQorP1N0cmljbXBAQ1N0cmluZ1dyYXBwZXJAQFNBSFBFQkQwQFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1N0cmluZ1dyYXBwZXI6OlN0cmluYyhjaGFyIGNvbnN0ICogX19wdHI2NCkNCis/U3RyaW5jQENTdHJpbmdXcmFwcGVyQEBTQVBFQURQRUJEQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpTdHJsZW4oY2hhciBjb25zdCAqIF9fcHRyNjQpDQorP1N0cmxlbkBDU3RyaW5nV3JhcHBlckBAU0FIUEVCREBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6U3RybmNtcChjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KQ0KKz9TdHJuY21wQENTdHJpbmdXcmFwcGVyQEBTQUhQRUJEMF9LQFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1N0cmluZ1dyYXBwZXI6OlN0cm5jcHkoY2hhciAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkNCis/U3RybmNweUBDU3RyaW5nV3JhcHBlckBAU0FQRUFEUEVBRFBFQkRfS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6U3RybmljbXAoY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkNCis/U3RybmljbXBAQ1N0cmluZ1dyYXBwZXJAQFNBSFBFQkQwX0tAWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6U3RycmNocihjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyKQ0KKz9TdHJyY2hyQENTdHJpbmdXcmFwcGVyQEBTQVBFQURQRUJEREBaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyICogX19wdHI2NCBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpTdHJzdHIoY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpDQorP1N0cnN0ckBDU3RyaW5nV3JhcHBlckBAU0FQRUFEUEVCRDBAWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6U3RydG9rKGNoYXIgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0KQ0KKz9TdHJ0b2tAQ1N0cmluZ1dyYXBwZXJAQFNBUEVBRFBFQURQRUJEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1RTdHI6OlN5c0FsbG9jU3RyaW5nKHZvaWQpIF9fcHRyNjQNCis/U3lzQWxsb2NTdHJpbmdAQ1RTdHJAQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNZW1Vc2VyOjpVbkxvY2tCdWZmZXIoc3RydWN0IE1FTUJMT0NLX3RhZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VW5Mb2NrQnVmZmVyQENNZW1Vc2VyQEBRRUFBWFBFQVVNRU1CTE9DS190YWdAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENNZW1NYW5hZ2VyOjpVblJlZ2lzdGVyTWVtVXNlcihjbGFzcyBDTWVtVXNlciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VW5SZWdpc3Rlck1lbVVzZXJAQ01lbU1hbmFnZXJAQFFFQUFIUEVBVkNNZW1Vc2VyQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ01lbU1hbmFnZXI6OlVuUmVnaXN0ZXJNZW1Vc2VyR2xiKGNsYXNzIENNZW1Vc2VyICogX19wdHI2NCkNCis/VW5SZWdpc3Rlck1lbVVzZXJHbGJAQ01lbU1hbmFnZXJAQFNBSFBFQVZDTWVtVXNlckBAQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpXU3RyQ21waW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KQ0KKz9XU3RyQ21waW5AQ1N0cmluZ1dyYXBwZXJAQFNBSFBFQkcwX0tAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1N0cmluZ1dyYXBwZXI6OldTdHJjYXQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/V1N0cmNhdEBDU3RyaW5nV3JhcHBlckBAU0FQRUFHUEVBR1BFQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1N0cmluZ1dyYXBwZXI6OldTdHJjcHkodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/V1N0cmNweUBDU3RyaW5nV3JhcHBlckBAU0FQRUFHUEVBR1BFQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1N0cmluZ1dyYXBwZXI6OldTdHJsZW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9XU3RybGVuQENTdHJpbmdXcmFwcGVyQEBTQUhQRUJHQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpXU3RybmNweSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpDQorP1dTdHJuY3B5QENTdHJpbmdXcmFwcGVyQEBTQVBFQUdQRUFHUEVCR19LQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6V2NzdG9tYnMoY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpDQorP1djc3RvbWJzQENTdHJpbmdXcmFwcGVyQEBTQV9LUEVBRFBFQkdfS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENVUkxBcmNoaXZlOjpXcml0ZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1dyaXRlQENVUkxBcmNoaXZlQEBVRUFBS1BFQUVLQFoNCis7IGxvbmcgX19jZGVjbCBXcml0ZUJzdHJUb1Byb3BCYWcoc3RydWN0IElQcm9wZXJ0eUJhZyAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9Xcml0ZUJzdHJUb1Byb3BCYWdAQFlBSlBFQVVJUHJvcGVydHlCYWdAQFBFQURQRUFHQFoNCis7IGxvbmcgX19jZGVjbCBXcml0ZUxvbmdUb1Byb3BCYWcoc3RydWN0IElQcm9wZXJ0eUJhZyAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQsbG9uZykNCis/V3JpdGVMb25nVG9Qcm9wQmFnQEBZQUpQRUFVSVByb3BlcnR5QmFnQEBQRUFESkBaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1RTdHI6OnBzeih2b2lkKSBfX3B0cjY0DQorP3BzekBDVFN0ckBAUUVBQVBFQURYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIENUU3RyOjpwc3pBKHZvaWQpIF9fcHRyNjQNCis/cHN6QUBDVFN0ckBAUUVBQVBFQURYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDVFN0cjo6cHN6Vyh2b2lkKSBfX3B0cjY0DQorP3BzeldAQ1RTdHJAQFFFQUFQRUFHWFoNCitfd2NzaWNtcA0KK193dG9pDQorZm1vZA0KK21lbWNtcA0KK21lbXNldA0KK3NldGxvY2FsZQ0KK3N0cmNweQ0KK3N0cmxlbg0KK3N3cHJpbnRmDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbW9ic3luYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tb2JzeW5jLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMDlhN2RmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbW9ic3luYy5kZWYKQEAgLTAsMCArMSwzMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtb2JzeW5jLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtb2JzeW5jLmRsbA0KK0VYUE9SVFMNCitSdW5EbGxSZWdpc3Rlcg0KK1N5bmNNZ3JSYXNQcm9jDQorRGlzcGxheU9wdGlvbnMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK01vYnN5bmNHZXRDbGFzc09iamVjdA0KK1JlZ0dldEhhbmRsZXJSZWdpc3RyYXRpb25JbmZvDQorUmVnR2V0SGFuZGxlclRvcExldmVsS2V5DQorUmVnR2V0UHJvZ3Jlc3NEZXRhaWxzU3RhdGUNCitSZWdHZXRTY2hlZENvbm5lY3Rpb25OYW1lDQorUmVnR2V0U2NoZWRTeW5jU2V0dGluZ3MNCitSZWdHZXRTeW5jSXRlbVNldHRpbmdzDQorUmVnR2V0U3luY1NldHRpbmdzDQorUmVnUXVlcnlMb2FkSGFuZGxlck9uRXZlbnQNCitSZWdSZW1vdmVNYW51YWxTeW5jU2V0dGluZ3MNCitSZWdTY2hlZEhhbmRsZXJJdGVtc0NoZWNrZWQNCitSZWdTZXRQcm9ncmVzc0RldGFpbHNTdGF0ZQ0KK1JlZ1NldFN5bmNJdGVtU2V0dGluZ3MNCitSZWdTZXRVc2VyRGVmYXVsdHMNCitTeW5jTWdyUmVzb2x2ZUNvbmZsaWN0QQ0KK1N5bmNNZ3JSZXNvbHZlQ29uZmxpY3RXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbW9kZW11aS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tb2RlbXVpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYTQxOGY4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbW9kZW11aS5kZWYKQEAgLTAsMCArMSwyMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtb2RlbXVpLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtb2RlbXVpLmRsbA0KK0VYUE9SVFMNCitkcnZDb21tQ29uZmlnRGlhbG9nVw0KK2RydkNvbW1Db25maWdEaWFsb2dBDQorZHJ2U2V0RGVmYXVsdENvbW1Db25maWdXDQorZHJ2U2V0RGVmYXVsdENvbW1Db25maWdBDQorZHJ2R2V0RGVmYXVsdENvbW1Db25maWdXDQorZHJ2R2V0RGVmYXVsdENvbW1Db25maWdBDQorVW5pbW9kZW1EZXZDb25maWdEaWFsb2cNCitDb3VudHJ5UnVuT25jZQ0KK1VuaW1vZGVtR2V0RGVmYXVsdENvbW1Db25maWcNCitVbmltb2RlbUdldEV4dGVuZGVkQ2Fwcw0KK0ludm9rZUNvbnRyb2xQYW5lbA0KK01vZGVtQ3BsRGxnUHJvYw0KK01vZGVtUHJvcFBhZ2VzUHJvdmlkZXINCitRdWVyeU1vZGVtRm9yQ291bnRyeVNldHRpbmdzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbW9mZC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tb2ZkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNTllZGIxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbW9mZC5kZWYKQEAgLTAsMCArMSwxNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtb2ZkLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtb2ZkLmRsbA0KK0VYUE9SVFMNCitDb21waWxlRmlsZVZpYURMTA0KK0NyZWF0ZUJNT0ZWaWFETEwNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21wci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tcHIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJlZWFiZmQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tcHIuZGVmCkBAIC0wLDAgKzEsODYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVBSLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNUFIuZGxsDQorRVhQT1JUUw0KK1dOZXRDb25uZWN0aW9uRGlhbG9nMg0KK1dOZXREaXNjb25uZWN0RGlhbG9nMg0KK0lfTXByU2F2ZUNvbm4NCitNdWx0aW5ldEdldENvbm5lY3Rpb25QZXJmb3JtYW5jZUENCitNdWx0aW5ldEdldENvbm5lY3Rpb25QZXJmb3JtYW5jZVcNCitNdWx0aW5ldEdldEVycm9yVGV4dEENCitNdWx0aW5ldEdldEVycm9yVGV4dFcNCitSZXN0b3JlQ29ubmVjdGlvbkEwDQorV05ldEFkZENvbm5lY3Rpb24yQQ0KK1dOZXRBZGRDb25uZWN0aW9uMlcNCitXTmV0QWRkQ29ubmVjdGlvbjNBDQorV05ldEFkZENvbm5lY3Rpb24zVw0KK1dOZXRBZGRDb25uZWN0aW9uQQ0KK1dOZXRBZGRDb25uZWN0aW9uVw0KK1dOZXRDYW5jZWxDb25uZWN0aW9uMkENCitXTmV0Q2FuY2VsQ29ubmVjdGlvbjJXDQorV05ldENhbmNlbENvbm5lY3Rpb25BDQorV05ldENhbmNlbENvbm5lY3Rpb25XDQorV05ldENsZWFyQ29ubmVjdGlvbnMNCitXTmV0Q2xvc2VFbnVtDQorV05ldENvbm5lY3Rpb25EaWFsb2cNCitXTmV0Q29ubmVjdGlvbkRpYWxvZzFBDQorV05ldENvbm5lY3Rpb25EaWFsb2cxVw0KK1dOZXREaXJlY3RvcnlOb3RpZnlBDQorV05ldERpcmVjdG9yeU5vdGlmeVcNCitXTmV0RGlzY29ubmVjdERpYWxvZw0KK1dOZXREaXNjb25uZWN0RGlhbG9nMUENCitXTmV0RGlzY29ubmVjdERpYWxvZzFXDQorV05ldEVudW1SZXNvdXJjZUENCitXTmV0RW51bVJlc291cmNlVw0KK1dOZXRGTVhFZGl0UGVybQ0KK1dOZXRGTVhHZXRQZXJtQ2Fwcw0KK1dOZXRGTVhHZXRQZXJtSGVscA0KK1dOZXRGb3JtYXROZXR3b3JrTmFtZUENCitXTmV0Rm9ybWF0TmV0d29ya05hbWVXDQorV05ldEdldENvbm5lY3Rpb24yQQ0KK1dOZXRHZXRDb25uZWN0aW9uMlcNCitXTmV0R2V0Q29ubmVjdGlvbjNBDQorV05ldEdldENvbm5lY3Rpb24zVw0KK1dOZXRHZXRDb25uZWN0aW9uQQ0KK1dOZXRHZXRDb25uZWN0aW9uVw0KK1dOZXRHZXREaXJlY3RvcnlUeXBlQQ0KK1dOZXRHZXREaXJlY3RvcnlUeXBlVw0KK1dOZXRHZXRIb21lRGlyZWN0b3J5Vw0KK1dOZXRHZXRMYXN0RXJyb3JBDQorV05ldEdldExhc3RFcnJvclcNCitXTmV0R2V0TmV0d29ya0luZm9ybWF0aW9uQQ0KK1dOZXRHZXROZXR3b3JrSW5mb3JtYXRpb25XDQorV05ldEdldFByb3BlcnR5VGV4dEENCitXTmV0R2V0UHJvcGVydHlUZXh0Vw0KK1dOZXRHZXRQcm92aWRlck5hbWVBDQorV05ldEdldFByb3ZpZGVyTmFtZVcNCitXTmV0R2V0UHJvdmlkZXJUeXBlQQ0KK1dOZXRHZXRQcm92aWRlclR5cGVXDQorV05ldEdldFJlc291cmNlSW5mb3JtYXRpb25BDQorV05ldEdldFJlc291cmNlSW5mb3JtYXRpb25XDQorV05ldEdldFJlc291cmNlUGFyZW50QQ0KK1dOZXRHZXRSZXNvdXJjZVBhcmVudFcNCitXTmV0R2V0U2VhcmNoRGlhbG9nDQorV05ldEdldFVuaXZlcnNhbE5hbWVBDQorV05ldEdldFVuaXZlcnNhbE5hbWVXDQorV05ldEdldFVzZXJBDQorV05ldEdldFVzZXJXDQorV05ldExvZ29uTm90aWZ5DQorV05ldE9wZW5FbnVtQQ0KK1dOZXRPcGVuRW51bVcNCitXTmV0UGFzc3dvcmRDaGFuZ2VOb3RpZnkNCitXTmV0UHJvcGVydHlEaWFsb2dBDQorV05ldFByb3BlcnR5RGlhbG9nVw0KK1dOZXRSZXN0b3JlQ29ubmVjdGlvbjJXDQorV05ldFJlc3RvcmVDb25uZWN0aW9uVw0KK1dOZXRTZXRDb25uZWN0aW9uQQ0KK1dOZXRTZXRDb25uZWN0aW9uVw0KK1dOZXRTZXRMYXN0RXJyb3JBDQorV05ldFNldExhc3RFcnJvclcNCitXTmV0U3VwcG9ydEdsb2JhbEVudW0NCitXTmV0VXNlQ29ubmVjdGlvbkENCitXTmV0VXNlQ29ubmVjdGlvblcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tcHJhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXByYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZWUyNDRmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXByYXBpLmRlZgpAQCAtMCwwICsxLDEzOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNUFJBUEkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1QUkFQSS5kbGwNCitFWFBPUlRTDQorQ29tcHJlc3NQaG9uZU51bWJlcg0KK01wckFkbWluQnVmZmVyRnJlZQ0KK01wckFkbWluQ29ubmVjdGlvbkNsZWFyU3RhdHMNCitNcHJBZG1pbkNvbm5lY3Rpb25FbnVtDQorTXByQWRtaW5Db25uZWN0aW9uR2V0SW5mbw0KK01wckFkbWluQ29ubmVjdGlvblJlbW92ZVF1YXJhbnRpbmUNCitNcHJBZG1pbkRlcmVnaXN0ZXJDb25uZWN0aW9uTm90aWZpY2F0aW9uDQorTXByQWRtaW5EZXZpY2VFbnVtDQorTXByQWRtaW5Fc3RhYmxpc2hEb21haW5SYXNTZXJ2ZXINCitNcHJBZG1pbkdldEVycm9yU3RyaW5nDQorTXByQWRtaW5HZXRQRENTZXJ2ZXINCitNcHJBZG1pbkludGVyZmFjZUNvbm5lY3QNCitNcHJBZG1pbkludGVyZmFjZUNyZWF0ZQ0KK01wckFkbWluSW50ZXJmYWNlRGVsZXRlDQorTXByQWRtaW5JbnRlcmZhY2VEZXZpY2VHZXRJbmZvDQorTXByQWRtaW5JbnRlcmZhY2VEZXZpY2VTZXRJbmZvDQorTXByQWRtaW5JbnRlcmZhY2VEaXNjb25uZWN0DQorTXByQWRtaW5JbnRlcmZhY2VFbnVtDQorTXByQWRtaW5JbnRlcmZhY2VHZXRDcmVkZW50aWFscw0KK01wckFkbWluSW50ZXJmYWNlR2V0Q3JlZGVudGlhbHNFeA0KK01wckFkbWluSW50ZXJmYWNlR2V0SGFuZGxlDQorTXByQWRtaW5JbnRlcmZhY2VHZXRJbmZvDQorTXByQWRtaW5JbnRlcmZhY2VRdWVyeVVwZGF0ZVJlc3VsdA0KK01wckFkbWluSW50ZXJmYWNlU2V0Q3JlZGVudGlhbHMNCitNcHJBZG1pbkludGVyZmFjZVNldENyZWRlbnRpYWxzRXgNCitNcHJBZG1pbkludGVyZmFjZVNldEluZm8NCitNcHJBZG1pbkludGVyZmFjZVRyYW5zcG9ydEFkZA0KK01wckFkbWluSW50ZXJmYWNlVHJhbnNwb3J0R2V0SW5mbw0KK01wckFkbWluSW50ZXJmYWNlVHJhbnNwb3J0UmVtb3ZlDQorTXByQWRtaW5JbnRlcmZhY2VUcmFuc3BvcnRTZXRJbmZvDQorTXByQWRtaW5JbnRlcmZhY2VVcGRhdGVQaG9uZWJvb2tJbmZvDQorTXByQWRtaW5JbnRlcmZhY2VVcGRhdGVSb3V0ZXMNCitNcHJBZG1pbklzRG9tYWluUmFzU2VydmVyDQorTXByQWRtaW5Jc1NlcnZpY2VSdW5uaW5nDQorTXByQWRtaW5NSUJCdWZmZXJGcmVlDQorTXByQWRtaW5NSUJFbnRyeUNyZWF0ZQ0KK01wckFkbWluTUlCRW50cnlEZWxldGUNCitNcHJBZG1pbk1JQkVudHJ5R2V0DQorTXByQWRtaW5NSUJFbnRyeUdldEZpcnN0DQorTXByQWRtaW5NSUJFbnRyeUdldE5leHQNCitNcHJBZG1pbk1JQkVudHJ5U2V0DQorTXByQWRtaW5NSUJTZXJ2ZXJDb25uZWN0DQorTXByQWRtaW5NSUJTZXJ2ZXJEaXNjb25uZWN0DQorTXByQWRtaW5Qb3J0Q2xlYXJTdGF0cw0KK01wckFkbWluUG9ydERpc2Nvbm5lY3QNCitNcHJBZG1pblBvcnRFbnVtDQorTXByQWRtaW5Qb3J0R2V0SW5mbw0KK01wckFkbWluUG9ydFJlc2V0DQorTXByQWRtaW5SZWdpc3RlckNvbm5lY3Rpb25Ob3RpZmljYXRpb24NCitNcHJBZG1pblNlbmRVc2VyTWVzc2FnZQ0KK01wckFkbWluU2VydmVyQ29ubmVjdA0KK01wckFkbWluU2VydmVyRGlzY29ubmVjdA0KK01wckFkbWluU2VydmVyR2V0Q3JlZGVudGlhbHMNCitNcHJBZG1pblNlcnZlckdldEluZm8NCitNcHJBZG1pblNlcnZlclNldENyZWRlbnRpYWxzDQorTXByQWRtaW5TZXJ2ZXJTZXRJbmZvDQorTXByQWRtaW5UcmFuc3BvcnRDcmVhdGUNCitNcHJBZG1pblRyYW5zcG9ydEdldEluZm8NCitNcHJBZG1pblRyYW5zcG9ydFNldEluZm8NCitNcHJBZG1pblVwZ3JhZGVVc2Vycw0KK01wckFkbWluVXNlckNsb3NlDQorTXByQWRtaW5Vc2VyR2V0SW5mbw0KK01wckFkbWluVXNlck9wZW4NCitNcHJBZG1pblVzZXJSZWFkDQorTXByQWRtaW5Vc2VyUmVhZFByb2ZGbGFncw0KK01wckFkbWluVXNlclNlcnZlckNvbm5lY3QNCitNcHJBZG1pblVzZXJTZXJ2ZXJEaXNjb25uZWN0DQorTXByQWRtaW5Vc2VyU2V0SW5mbw0KK01wckFkbWluVXNlcldyaXRlDQorTXByQWRtaW5Vc2VyV3JpdGVQcm9mRmxhZ3MNCitNcHJDb25maWdCdWZmZXJGcmVlDQorTXByQ29uZmlnR2V0RnJpZW5kbHlOYW1lDQorTXByQ29uZmlnR2V0R3VpZE5hbWUNCitNcHJDb25maWdJbnRlcmZhY2VDcmVhdGUNCitNcHJDb25maWdJbnRlcmZhY2VEZWxldGUNCitNcHJDb25maWdJbnRlcmZhY2VFbnVtDQorTXByQ29uZmlnSW50ZXJmYWNlR2V0SGFuZGxlDQorTXByQ29uZmlnSW50ZXJmYWNlR2V0SW5mbw0KK01wckNvbmZpZ0ludGVyZmFjZVNldEluZm8NCitNcHJDb25maWdJbnRlcmZhY2VUcmFuc3BvcnRBZGQNCitNcHJDb25maWdJbnRlcmZhY2VUcmFuc3BvcnRFbnVtDQorTXByQ29uZmlnSW50ZXJmYWNlVHJhbnNwb3J0R2V0SGFuZGxlDQorTXByQ29uZmlnSW50ZXJmYWNlVHJhbnNwb3J0R2V0SW5mbw0KK01wckNvbmZpZ0ludGVyZmFjZVRyYW5zcG9ydFJlbW92ZQ0KK01wckNvbmZpZ0ludGVyZmFjZVRyYW5zcG9ydFNldEluZm8NCitNcHJDb25maWdTZXJ2ZXJCYWNrdXANCitNcHJDb25maWdTZXJ2ZXJDb25uZWN0DQorTXByQ29uZmlnU2VydmVyRGlzY29ubmVjdA0KK01wckNvbmZpZ1NlcnZlckdldEluZm8NCitNcHJDb25maWdTZXJ2ZXJJbnN0YWxsDQorTXByQ29uZmlnU2VydmVyUmVmcmVzaA0KK01wckNvbmZpZ1NlcnZlclJlc3RvcmUNCitNcHJDb25maWdTZXJ2ZXJTZXRJbmZvDQorTXByQ29uZmlnVHJhbnNwb3J0Q3JlYXRlDQorTXByQ29uZmlnVHJhbnNwb3J0RGVsZXRlDQorTXByQ29uZmlnVHJhbnNwb3J0RW51bQ0KK01wckNvbmZpZ1RyYW5zcG9ydEdldEhhbmRsZQ0KK01wckNvbmZpZ1RyYW5zcG9ydEdldEluZm8NCitNcHJDb25maWdUcmFuc3BvcnRTZXRJbmZvDQorTXByRG9tYWluUXVlcnlBY2Nlc3MNCitNcHJEb21haW5RdWVyeVJhc1NlcnZlcg0KK01wckRvbWFpblJlZ2lzdGVyUmFzU2VydmVyDQorTXByRG9tYWluU2V0QWNjZXNzDQorTXByR2V0VXNyUGFyYW1zDQorTXBySW5mb0Jsb2NrQWRkDQorTXBySW5mb0Jsb2NrRmluZA0KK01wckluZm9CbG9ja1F1ZXJ5U2l6ZQ0KK01wckluZm9CbG9ja1JlbW92ZQ0KK01wckluZm9CbG9ja1NldA0KK01wckluZm9DcmVhdGUNCitNcHJJbmZvRGVsZXRlDQorTXBySW5mb0R1cGxpY2F0ZQ0KK01wckluZm9SZW1vdmVBbGwNCitNcHJQb3J0U2V0VXNhZ2UNCitSYXNBZG1pbkJ1ZmZlckZyZWUNCitSYXNBZG1pbkNvbm5lY3Rpb25DbGVhclN0YXRzDQorUmFzQWRtaW5Db25uZWN0aW9uRW51bQ0KK1Jhc0FkbWluQ29ubmVjdGlvbkdldEluZm8NCitSYXNBZG1pbkdldEVycm9yU3RyaW5nDQorUmFzQWRtaW5HZXRQRENTZXJ2ZXINCitSYXNBZG1pbklzU2VydmljZVJ1bm5pbmcNCitSYXNBZG1pblBvcnRDbGVhclN0YXRzDQorUmFzQWRtaW5Qb3J0RGlzY29ubmVjdA0KK1Jhc0FkbWluUG9ydEVudW0NCitSYXNBZG1pblBvcnRHZXRJbmZvDQorUmFzQWRtaW5Qb3J0UmVzZXQNCitSYXNBZG1pblNlcnZlckNvbm5lY3QNCitSYXNBZG1pblNlcnZlckRpc2Nvbm5lY3QNCitSYXNBZG1pblVzZXJHZXRJbmZvDQorUmFzQWRtaW5Vc2VyU2V0SW5mbw0KK1Jhc1ByaXZpbGVnZUFuZENhbGxCYWNrTnVtYmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXByZGRtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21wcmRkbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2Y3MDIzYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21wcmRkbS5kZWYKQEAgLTAsMCArMSw0NyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNUFJERE0uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1QUkRETS5kbGwNCitFWFBPUlRTDQorRERNQWRtaW5Db25uZWN0aW9uQ2xlYXJTdGF0cw0KK0RETUFkbWluQ29ubmVjdGlvbkVudW0NCitERE1BZG1pbkNvbm5lY3Rpb25HZXRJbmZvDQorRERNQWRtaW5JbnRlcmZhY2VDb25uZWN0DQorRERNQWRtaW5JbnRlcmZhY2VEaXNjb25uZWN0DQorRERNQWRtaW5Qb3J0Q2xlYXJTdGF0cw0KK0RETUFkbWluUG9ydERpc2Nvbm5lY3QNCitERE1BZG1pblBvcnRFbnVtDQorRERNQWRtaW5Qb3J0R2V0SW5mbw0KK0RETUFkbWluUG9ydFJlc2V0DQorRERNQWRtaW5SZW1vdmVRdWFyYW50aW5lDQorRERNQWRtaW5TZXJ2ZXJHZXRJbmZvDQorRERNQWRtaW5TZXJ2ZXJTZXRJbmZvDQorRERNQ29ubmVjdEludGVyZmFjZQ0KK0RETURpc2Nvbm5lY3RJbnRlcmZhY2UNCitERE1HZXRJZGVudGl0eUF0dHJpYnV0ZXMNCitERE1Qb3N0Q2xlYW51cA0KK0RETVJlZ2lzdGVyQ29ubmVjdGlvbk5vdGlmaWNhdGlvbg0KK0RETVNlbmRVc2VyTWVzc2FnZQ0KK0RETVNlcnZpY2VJbml0aWFsaXplDQorRERNU2VydmljZVBvc3RMaXN0ZW5zDQorRERNVHJhbnNwb3J0Q3JlYXRlDQorSWZPYmplY3RGcmVlUGhvbmVib29rQ29udGV4dA0KK0lmT2JqZWN0SW5pdGlhdGVQZXJzaXN0ZW50Q29ubmVjdGlvbnMNCitJZk9iamVjdExvYWRQaG9uZWJvb2tJbmZvDQorSWZPYmplY3ROb3RpZnlPZlJlYWNoYWJpbGl0eUNoYW5nZQ0KK0lmT2JqZWN0U2V0RGlhbG91dEhvdXJzUmVzdHJpY3Rpb24NCitSYXNBY2N0Q29uZmlnQ2hhbmdlTm90aWZpY2F0aW9uDQorUmFzQWNjdFByb3ZpZGVyRnJlZUF0dHJpYnV0ZXMNCitSYXNBY2N0UHJvdmlkZXJJbml0aWFsaXplDQorUmFzQWNjdFByb3ZpZGVySW50ZXJpbUFjY291bnRpbmcNCitSYXNBY2N0UHJvdmlkZXJTdGFydEFjY291bnRpbmcNCitSYXNBY2N0UHJvdmlkZXJTdG9wQWNjb3VudGluZw0KK1Jhc0FjY3RQcm92aWRlclRlcm1pbmF0ZQ0KK1Jhc0F1dGhDb25maWdDaGFuZ2VOb3RpZmljYXRpb24NCitSYXNBdXRoUHJvdmlkZXJBdXRoZW50aWNhdGVVc2VyDQorUmFzQXV0aFByb3ZpZGVyRnJlZUF0dHJpYnV0ZXMNCitSYXNBdXRoUHJvdmlkZXJJbml0aWFsaXplDQorUmFzQXV0aFByb3ZpZGVyVGVybWluYXRlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXByZGltLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21wcmRpbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjkyNjUwOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21wcmRpbS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1wcmRpbS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXByZGltLmRsbA0KK0VYUE9SVFMNCitTZXJ2aWNlTWFpbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21wcm1zZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tcHJtc2cuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA2MTIxODMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tcHJtc2cuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBST1VURU1TRy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUk9VVEVNU0cuZGxsDQorRVhQT1JUUw0KK0dldEV2ZW50SWRzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXBydWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXBydWkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY0OTA3MzkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tcHJ1aS5kZWYKQEAgLTAsMCArMSwyMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNUFJVSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVBSVUkuZGxsDQorRVhQT1JUUw0KK0Jyb3dzZURpYWxvZ0EwDQorTVBSVUlfRG9QYXNzd29yZERpYWxvZw0KK01QUlVJX0RvUHJvZmlsZUVycm9yRGlhbG9nDQorTVBSVUlfU2hvd1JlY29ubmVjdERpYWxvZw0KK01QUlVJX1dOZXRDbGVhckNvbm5lY3Rpb25zDQorTVBSVUlfV05ldENvbm5lY3Rpb25EaWFsb2cNCitNUFJVSV9XTmV0Q29ubmVjdGlvbkRpYWxvZzFBDQorTVBSVUlfV05ldENvbm5lY3Rpb25EaWFsb2cxVw0KK01QUlVJX1dOZXREaXNjb25uZWN0RGlhbG9nDQorTVBSVUlfV05ldERpc2Nvbm5lY3REaWFsb2cxQQ0KK01QUlVJX1dOZXREaXNjb25uZWN0RGlhbG9nMVcNCitXTmV0QnJvd3NlRGlhbG9nDQorV05ldEJyb3dzZVByaW50ZXJEaWFsb2cNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tcWFkLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21xYWQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAzM2NhNTAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tcWFkLmRlZgpAQCAtMCwwICsxLDQyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1xYWQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1xYWQuZGxsDQorRVhQT1JUUw0KK01RQURCZWdpbkRlbGV0ZU5vdGlmaWNhdGlvbg0KK01RQURDcmVhdGVPYmplY3QNCitNUUFERGVsZXRlT2JqZWN0DQorTVFBRERlbGV0ZU9iamVjdEd1aWQNCitNUUFERGVsZXRlT2JqZWN0R3VpZFNpZA0KK01RQURFbmREZWxldGVOb3RpZmljYXRpb24NCitNUUFERW5kUXVlcnkNCitNUUFERnJlZU1lbW9yeQ0KK01RQURHZXRBRHNQYXRoSW5mbw0KK01RQURHZXRDb21wdXRlclNpdGVzDQorTVFBREdldENvbXB1dGVyVmVyc2lvbg0KK01RQURHZXRHZW5PYmplY3RQcm9wZXJ0aWVzDQorTVFBREdldE9iamVjdFByb3BlcnRpZXMNCitNUUFER2V0T2JqZWN0UHJvcGVydGllc0d1aWQNCitNUUFER2V0T2JqZWN0U2VjdXJpdHkNCitNUUFER2V0T2JqZWN0U2VjdXJpdHlHdWlkDQorTVFBREluaXQNCitNUUFETm90aWZ5RGVsZXRlDQorTVFBRFFNR2V0T2JqZWN0U2VjdXJpdHkNCitNUUFEUXVlcnlBbGxMaW5rcw0KK01RQURRdWVyeUFsbFNpdGVzDQorTVFBRFF1ZXJ5Q29ubmVjdG9ycw0KK01RQURRdWVyeUZvcmVpZ25TaXRlcw0KK01RQURRdWVyeUxpbmtzDQorTVFBRFF1ZXJ5TWFjaGluZVF1ZXVlcw0KK01RQURRdWVyeU5UNE1RSVNTZXJ2ZXJzDQorTVFBRFF1ZXJ5UXVldWVzDQorTVFBRFF1ZXJ5UmVzdWx0cw0KK01RQURRdWVyeVNpdGVTZXJ2ZXJzDQorTVFBRFF1ZXJ5VXNlckNlcnQNCitNUUFEU2V0T2JqZWN0UHJvcGVydGllcw0KK01RQURTZXRPYmplY3RQcm9wZXJ0aWVzR3VpZA0KK01RQURTZXRPYmplY3RTZWN1cml0eQ0KK01RQURTZXRPYmplY3RTZWN1cml0eUd1aWQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tcWNlcnR1aS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tcWNlcnR1aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzcxYTY3MAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21xY2VydHVpLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1RQ0VSVFVJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNUUNFUlRVSS5kbGwNCitFWFBPUlRTDQorU2VsZWN0UGVyc29uYWxDZXJ0aWZpY2F0ZUZvclJlZ2lzdGVyDQorU2VsZWN0UGVyc29uYWxDZXJ0aWZpY2F0ZUZvclJlbW92YWwNCitTaG93Q2VydGlmaWNhdGUNCitTaG93UGVyc29uYWxDZXJ0aWZpY2F0ZXMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tcWRzY2xpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21xZHNjbGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVkNzE1MWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tcWRzY2xpLmRlZgpAQCAtMCwwICsxLDM0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1xZHNjbGkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1xZHNjbGkuZGxsDQorRVhQT1JUUw0KK0RTQmVnaW5EZWxldGVOb3RpZmljYXRpb24NCitEU0NsaWVudEluaXQNCitEU0NyZWF0ZU9iamVjdA0KK0RTQ3JlYXRlU2VydmVyc0NhY2hlDQorRFNEZWxldGVPYmplY3QNCitEU0RlbGV0ZU9iamVjdEd1aWQNCitEU0VuZERlbGV0ZU5vdGlmaWNhdGlvbg0KK0RTRnJlZU1lbW9yeQ0KK0RTR2V0Q29tcHV0ZXJTaXRlcw0KK0RTR2V0T2JqZWN0UHJvcGVydGllcw0KK0RTR2V0T2JqZWN0UHJvcGVydGllc0V4DQorRFNHZXRPYmplY3RQcm9wZXJ0aWVzR3VpZA0KK0RTR2V0T2JqZWN0UHJvcGVydGllc0d1aWRFeA0KK0RTR2V0T2JqZWN0U2VjdXJpdHkNCitEU0dldE9iamVjdFNlY3VyaXR5R3VpZA0KK0RTR2V0VXNlclBhcmFtcw0KK0RTTG9va3VwQmVnaW4NCitEU0xvb2t1cEVuZA0KK0RTTG9va3VwTmV4dA0KK0RTTm90aWZ5RGVsZXRlDQorRFNRTUdldE9iamVjdFNlY3VyaXR5DQorRFNTZXRPYmplY3RQcm9wZXJ0aWVzDQorRFNTZXRPYmplY3RQcm9wZXJ0aWVzR3VpZA0KK0RTU2V0T2JqZWN0U2VjdXJpdHkNCitEU1NldE9iamVjdFNlY3VyaXR5R3VpZA0KK0RTVGVybWluYXRlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXFnZW50ci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tcWdlbnRyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NmI1OTAwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXFnZW50ci5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtcWdlbnRyLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtcWdlbnRyLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21xaXNlLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21xaXNlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZGFmMzhiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXFpc2UuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXFpc2UuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1xaXNlLmRsbA0KK0VYUE9SVFMNCitHZXRFeHRlbnNpb25WZXJzaW9uDQorSHR0cEV4dGVuc2lvblByb2MNCitUZXJtaW5hdGVFeHRlbnNpb24NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tcWxvZ21nci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tcWxvZ21nci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjBiNjNmZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21xbG9nbWdyLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TRFRDTE9HLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU0RUQ0xPRy5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ0xvZ01ncjo6Q3JlYXRlSW5zdGFuY2UoY2xhc3MgQ0xvZ01nciAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQpDQorP0NyZWF0ZUluc3RhbmNlQENMb2dNZ3JAQFNBSlBFQVBFQVYxQFBFQVVJVW5rbm93bkBAQFoNCitEbGxHZXREVENMT0cyDQorOyBpbnQgX19jZGVjbCBEbGxHZXREVENMT0coc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCxzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/RGxsR2V0RFRDTE9HQEBZQUhBRUJVX0dVSURAQDBQRUFQRUFYQFoNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21xb2EuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXFvYS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjk3MzUzNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21xb2EuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXFvYS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXFvYS5kbGwNCitFWFBPUlRTDQorRExMR2V0RG9jdW1lbnRhdGlvbg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXFwZXJmLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21xcGVyZi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODQzNGY4OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21xcGVyZi5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNUVBFUkYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1RUEVSRi5kbGwNCitFWFBPUlRTDQorUGVyZkNsb3NlDQorUGVyZkNvbGxlY3QNCitQZXJmT3Blbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21xcW0uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXFxbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWVjZTZkNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21xcW0uZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVFRTS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVFRTS5kbGwNCitFWFBPUlRTDQorOyBpbnQgX19jZGVjbCBRTU1haW4oaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQgY29uc3QpDQorP1FNTWFpbkBAWUFISFFFQVBFQkdAWg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21xcnQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXFydC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWVjYjQzNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21xcnQuZGVmCkBAIC0wLDAgKzEsNTQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXFydC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXFydC5kbGwNCitFWFBPUlRTDQorTVFMb2dIUg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorTVFBRHNQYXRoVG9Gb3JtYXROYW1lDQorTVFBbGxvY2F0ZU1lbW9yeQ0KK01RQmVnaW5UcmFuc2FjdGlvbg0KK01RQ2xvc2VDdXJzb3INCitNUUNsb3NlUXVldWUNCitNUUNyZWF0ZUN1cnNvcg0KK01RQ3JlYXRlUXVldWUNCitNUURlbGV0ZVF1ZXVlDQorTVFGcmVlTWVtb3J5DQorTVFGcmVlU2VjdXJpdHlDb250ZXh0DQorTVFHZXRNYWNoaW5lUHJvcGVydGllcw0KK01RR2V0T3ZlcmxhcHBlZFJlc3VsdA0KK01RR2V0UHJpdmF0ZUNvbXB1dGVySW5mb3JtYXRpb24NCitNUUdldFF1ZXVlUHJvcGVydGllcw0KK01RR2V0UXVldWVTZWN1cml0eQ0KK01RR2V0U2VjdXJpdHlDb250ZXh0DQorTVFHZXRTZWN1cml0eUNvbnRleHRFeA0KK01RSGFuZGxlVG9Gb3JtYXROYW1lDQorTVFJbnN0YW5jZVRvRm9ybWF0TmFtZQ0KK01RTG9jYXRlQmVnaW4NCitNUUxvY2F0ZUVuZA0KK01RTG9jYXRlTmV4dA0KK01RTWdtdEFjdGlvbg0KK01RTWdtdEdldEluZm8NCitNUU9wZW5RdWV1ZQ0KK01RUGF0aE5hbWVUb0Zvcm1hdE5hbWUNCitNUVB1cmdlUXVldWUNCitNUVJlY2VpdmVNZXNzYWdlDQorTVFSZWNlaXZlTWVzc2FnZUJ5TG9va3VwSWQNCitNUVJlZ2lzdGVyQ2VydGlmaWNhdGUNCitNUVNlbmRNZXNzYWdlDQorTVFTZXRRdWV1ZVByb3BlcnRpZXMNCitNUVNldFF1ZXVlU2VjdXJpdHkNCitSVENyZWF0ZUludGVybmFsQ2VydGlmaWNhdGUNCitSVERlbGV0ZUludGVybmFsQ2VydA0KK1JUR2V0SW50ZXJuYWxDZXJ0DQorUlRHZXRVc2VyQ2VydHMNCitSVElzRGVwZW5kZW50Q2xpZW50DQorUlRMb2dPblJlZ2lzdGVyQ2VydA0KK1JUT3BlbkludGVybmFsQ2VydFN0b3JlDQorUlRSZWdpc3RlclVzZXJDZXJ0DQorUlRSZW1vdmVVc2VyQ2VydA0KK1JUUmVtb3ZlVXNlckNlcnRTaWQNCitSVFhhY3RHZXREVEMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tcXJ0ZGVwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21xcnRkZXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY2N2YyMTYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tcXJ0ZGVwLmRlZgpAQCAtMCwwICsxLDQ3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1RUlRERVAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1RUlRERVAuZGxsDQorRVhQT1JUUw0KK0RlcEJlZ2luVHJhbnNhY3Rpb24NCitEZXBDbG9zZUN1cnNvcg0KK0RlcENsb3NlUXVldWUNCitEZXBDcmVhdGVDdXJzb3INCitEZXBDcmVhdGVJbnRlcm5hbENlcnRpZmljYXRlDQorRGVwQ3JlYXRlUXVldWUNCitEZXBEZWxldGVJbnRlcm5hbENlcnQNCitEZXBEZWxldGVRdWV1ZQ0KK0RlcEZyZWVNZW1vcnkNCitEZXBGcmVlU2VjdXJpdHlDb250ZXh0DQorRGVwR2V0SW50ZXJuYWxDZXJ0DQorRGVwR2V0TWFjaGluZVByb3BlcnRpZXMNCitEZXBHZXRPdmVybGFwcGVkUmVzdWx0DQorRGVwR2V0UHJpdmF0ZUNvbXB1dGVySW5mb3JtYXRpb24NCitEZXBHZXRRdWV1ZVByb3BlcnRpZXMNCitEZXBHZXRRdWV1ZVNlY3VyaXR5DQorRGVwR2V0U2VjdXJpdHlDb250ZXh0DQorRGVwR2V0U2VjdXJpdHlDb250ZXh0RXgNCitEZXBHZXRVc2VyQ2VydHMNCitEZXBIYW5kbGVUb0Zvcm1hdE5hbWUNCitEZXBJbnN0YW5jZVRvRm9ybWF0TmFtZQ0KK0RlcExvY2F0ZUJlZ2luDQorRGVwTG9jYXRlRW5kDQorRGVwTG9jYXRlTmV4dA0KK0RlcE1nbXRBY3Rpb24NCitEZXBNZ210R2V0SW5mbw0KK0RlcE9wZW5JbnRlcm5hbENlcnRTdG9yZQ0KK0RlcE9wZW5RdWV1ZQ0KK0RlcFBhdGhOYW1lVG9Gb3JtYXROYW1lDQorRGVwUHVyZ2VRdWV1ZQ0KK0RlcFJlY2VpdmVNZXNzYWdlDQorRGVwUmVnaXN0ZXJDZXJ0aWZpY2F0ZQ0KK0RlcFJlZ2lzdGVyU2VydmVyDQorRGVwUmVnaXN0ZXJVc2VyQ2VydA0KK0RlcFJlbW92ZVVzZXJDZXJ0DQorRGVwU2VuZE1lc3NhZ2UNCitEZXBTZXRRdWV1ZVByb3BlcnRpZXMNCitEZXBTZXRRdWV1ZVNlY3VyaXR5DQorRGVwWGFjdEdldERUQw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21xc2VjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21xc2VjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZTQ4Y2IxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXFzZWMuZGVmCkBAIC0wLDAgKzEsMzI5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1xc2VjLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtcXNlYy5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NhbmNlbFJwYzo6Q0NhbmNlbFJwYyhjbGFzcyBDQ2FuY2VsUnBjIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENDYW5jZWxScGNAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ2FuY2VsUnBjOjpDQ2FuY2VsUnBjKHZvaWQpIF9fcHRyNjQNCis/PzBDQ2FuY2VsUnBjQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NvbHVtbnM6OkNDb2x1bW5zKGNsYXNzIENDb2x1bW5zIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENDb2x1bW5zQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NvbHVtbnM6OkNDb2x1bW5zKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MENDb2x1bW5zQEBRRUFBQElAWg0KKzsgcHVibGljOiBfX2NkZWNsIENEU0Jhc2VVcGRhdGU6OkNEU0Jhc2VVcGRhdGUoY2xhc3MgQ0RTQmFzZVVwZGF0ZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRFNCYXNlVXBkYXRlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0RTQmFzZVVwZGF0ZTo6Q0RTQmFzZVVwZGF0ZSh2b2lkKSBfX3B0cjY0DQorPz8wQ0RTQmFzZVVwZGF0ZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENPdXRwdXRSZXBvcnQ6OkNPdXRwdXRSZXBvcnQodm9pZCkgX19wdHI2NA0KKz8/MENPdXRwdXRSZXBvcnRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUHJvcGVydHlSZXN0cmljdGlvbjo6Q1Byb3BlcnR5UmVzdHJpY3Rpb24oY2xhc3MgQ1Byb3BlcnR5UmVzdHJpY3Rpb24gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1Byb3BlcnR5UmVzdHJpY3Rpb25AQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDUHJvcGVydHlSZXN0cmljdGlvbjo6Q1Byb3BlcnR5UmVzdHJpY3Rpb24odW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBDTVFWYXJpYW50IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRRUFBQEtBRUJLQUVCVkNNUVZhcmlhbnRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Byb3BlcnR5UmVzdHJpY3Rpb246OkNQcm9wZXJ0eVJlc3RyaWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzBDUHJvcGVydHlSZXN0cmljdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENSZXN0cmljdGlvbjo6Q1Jlc3RyaWN0aW9uKGNsYXNzIENSZXN0cmljdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDUmVzdHJpY3Rpb25AQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmVzdHJpY3Rpb246OkNSZXN0cmljdGlvbih1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBDUmVzdHJpY3Rpb25AQFFFQUFASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1NvcnQ6OkNTb3J0KGNsYXNzIENTb3J0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENTb3J0QEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1NvcnQ6OkNTb3J0KHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MENTb3J0QEBRRUFBQElAWg0KKzsgcHVibGljOiBfX2NkZWNsIENTb3J0S2V5OjpDU29ydEtleSh1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wQ1NvcnRLZXlAQFFFQUFAQUVCS0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIENTb3J0S2V5OjpDU29ydEtleSh2b2lkKSBfX3B0cjY0DQorPz8wQ1NvcnRLZXlAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ2FuY2VsUnBjOjp+Q0NhbmNlbFJwYyh2b2lkKSBfX3B0cjY0DQorPz8xQ0NhbmNlbFJwY0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENDb2x1bW5zOjp+Q0NvbHVtbnModm9pZCkgX19wdHI2NA0KKz8/MUNDb2x1bW5zQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0RTQmFzZVVwZGF0ZTo6fkNEU0Jhc2VVcGRhdGUodm9pZCkgX19wdHI2NA0KKz8/MUNEU0Jhc2VVcGRhdGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDT3V0cHV0UmVwb3J0Ojp+Q091dHB1dFJlcG9ydCh2b2lkKSBfX3B0cjY0DQorPz8xQ091dHB1dFJlcG9ydEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjp+Q1Byb3BlcnR5UmVzdHJpY3Rpb24odm9pZCkgX19wdHI2NA0KKz8/MUNQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Jlc3RyaWN0aW9uOjp+Q1Jlc3RyaWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFDUmVzdHJpY3Rpb25AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDU29ydDo6fkNTb3J0KHZvaWQpIF9fcHRyNjQNCis/PzFDU29ydEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTb3J0S2V5Ojp+Q1NvcnRLZXkodm9pZCkgX19wdHI2NA0KKz8/MUNTb3J0S2V5QEBRRUFBQFhaDQorOyBwdWJsaWM6IGNsYXNzIENDYW5jZWxScGMgJiBfX3B0cjY0IF9fY2RlY2wgQ0NhbmNlbFJwYzo6b3BlcmF0b3I9KGNsYXNzIENDYW5jZWxScGMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0NhbmNlbFJwY0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENEU0Jhc2VVcGRhdGUgJiBfX3B0cjY0IF9fY2RlY2wgQ0RTQmFzZVVwZGF0ZTo6b3BlcmF0b3I9KGNsYXNzIENEU0Jhc2VVcGRhdGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0RTQmFzZVVwZGF0ZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENPdXRwdXRSZXBvcnQgJiBfX3B0cjY0IF9fY2RlY2wgQ091dHB1dFJlcG9ydDo6b3BlcmF0b3I9KGNsYXNzIENPdXRwdXRSZXBvcnQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q091dHB1dFJlcG9ydEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENQcm9wZXJ0eVJlc3RyaWN0aW9uICYgX19wdHI2NCBfX2NkZWNsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjpvcGVyYXRvcj0oY2xhc3MgQ1Byb3BlcnR5UmVzdHJpY3Rpb24gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1Byb3BlcnR5UmVzdHJpY3Rpb25AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUmVzdHJpY3Rpb24gJiBfX3B0cjY0IF9fY2RlY2wgQ1Jlc3RyaWN0aW9uOjpvcGVyYXRvcj0oY2xhc3MgQ1Jlc3RyaWN0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENSZXN0cmljdGlvbkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTb3J0S2V5ICYgX19wdHI2NCBfX2NkZWNsIENTb3J0S2V5OjpvcGVyYXRvcj0oY2xhc3MgQ1NvcnRLZXkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1NvcnRLZXlAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NvbHVtbnM6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GQ0NvbHVtbnNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZXN0cmljdGlvbjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDUmVzdHJpY3Rpb25AQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTb3J0OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNTb3J0QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ2FuY2VsUnBjOjpBZGQodm9pZCAqIF9fcHRyNjQsX19pbnQ2NCkgX19wdHI2NA0KKz9BZGRAQ0NhbmNlbFJwY0BAUUVBQVhQRUFYX0pAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NvbHVtbnM6OkFkZCh1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9BZGRAQ0NvbHVtbnNAQFFFQUFYQUVCS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU29ydDo6QWRkKHVuc2lnbmVkIGxvbmcgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QWRkQENTb3J0QEBRRUFBWEFFQktLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTb3J0OjpBZGQoY2xhc3MgQ1NvcnRLZXkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEBDU29ydEBAUUVBQVhBRUJWQ1NvcnRLZXlAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVzdHJpY3Rpb246OkFkZENoaWxkKGNsYXNzIENQcm9wZXJ0eVJlc3RyaWN0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9BZGRDaGlsZEBDUmVzdHJpY3Rpb25AQFFFQUFYQUVCVkNQcm9wZXJ0eVJlc3RyaWN0aW9uQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Jlc3RyaWN0aW9uOjpBZGRSZXN0cmljdGlvbihzdHJ1Y3QgdGFnQkxPQiAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FkZFJlc3RyaWN0aW9uQENSZXN0cmljdGlvbkBAUUVBQVhBRUFVdGFnQkxPQkBAS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Jlc3RyaWN0aW9uOjpBZGRSZXN0cmljdGlvbihjbGFzcyBDTVFWYXJpYW50IGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QWRkUmVzdHJpY3Rpb25AQ1Jlc3RyaWN0aW9uQEBRRUFBWEFFQlZDTVFWYXJpYW50QEBLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVzdHJpY3Rpb246OkFkZFJlc3RyaWN0aW9uKHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FkZFJlc3RyaWN0aW9uQENSZXN0cmljdGlvbkBAUUVBQVhFS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Jlc3RyaWN0aW9uOjpBZGRSZXN0cmljdGlvbihzaG9ydCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QWRkUmVzdHJpY3Rpb25AQ1Jlc3RyaWN0aW9uQEBRRUFBWEZLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVzdHJpY3Rpb246OkFkZFJlc3RyaWN0aW9uKGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FkZFJlc3RyaWN0aW9uQENSZXN0cmljdGlvbkBAUUVBQVhKS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Jlc3RyaWN0aW9uOjpBZGRSZXN0cmljdGlvbih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BZGRSZXN0cmljdGlvbkBDUmVzdHJpY3Rpb25AQFFFQUFYS0tLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZXN0cmljdGlvbjo6QWRkUmVzdHJpY3Rpb24odW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BZGRSZXN0cmljdGlvbkBDUmVzdHJpY3Rpb25AQFFFQUFYUEVBR0tLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZXN0cmljdGlvbjo6QWRkUmVzdHJpY3Rpb24oc3RydWN0IF9HVUlEICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QWRkUmVzdHJpY3Rpb25AQ1Jlc3RyaWN0aW9uQEBRRUFBWFBFQVVfR1VJREBAS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Jlc3RyaWN0aW9uOjpBZGRSZXN0cmljdGlvbihzdHJ1Y3QgdGFnQ0FDTFNJRCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FkZFJlc3RyaWN0aW9uQENSZXN0cmljdGlvbkBAUUVBQVhQRUFVdGFnQ0FDTFNJREBAS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Jlc3RyaWN0aW9uOjpBZGRSZXN0cmljdGlvbihzdHJ1Y3QgdGFnQ0FMUFdTVFIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BZGRSZXN0cmljdGlvbkBDUmVzdHJpY3Rpb25AQFFFQUFYUEVBVXRhZ0NBTFBXU1RSQEBLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ2FuY2VsUnBjOjpDYW5jZWxSZXF1ZXN0cyhfX2ludDY0KSBfX3B0cjY0DQorP0NhbmNlbFJlcXVlc3RzQENDYW5jZWxScGNAQFFFQUFYX0pAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ2FuY2VsUnBjOjpDYW5jZWxUaHJlYWQodm9pZCAqIF9fcHRyNjQpDQorP0NhbmNlbFRocmVhZEBDQ2FuY2VsUnBjQEBDQUtQRUFYQFoNCis7IHB1YmxpYzogc3RydWN0IHRhZ01RQ09MVU1OU0VUICogX19wdHI2NCBfX2NkZWNsIENDb2x1bW5zOjpDYXN0VG9TdHJ1Y3Qodm9pZCkgX19wdHI2NA0KKz9DYXN0VG9TdHJ1Y3RAQ0NvbHVtbnNAQFFFQUFQRUFVdGFnTVFDT0xVTU5TRVRAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCB0YWdNUVJFU1RSSUNUSU9OICogX19wdHI2NCBfX2NkZWNsIENSZXN0cmljdGlvbjo6Q2FzdFRvU3RydWN0KHZvaWQpIF9fcHRyNjQNCis/Q2FzdFRvU3RydWN0QENSZXN0cmljdGlvbkBAUUVBQVBFQVV0YWdNUVJFU1RSSUNUSU9OQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgdGFnTVFTT1JUU0VUICogX19wdHI2NCBfX2NkZWNsIENTb3J0OjpDYXN0VG9TdHJ1Y3Qodm9pZCkgX19wdHI2NA0KKz9DYXN0VG9TdHJ1Y3RAQ1NvcnRAQFFFQUFQRUFVdGFnTVFTT1JUU0VUQEBYWg0KKzsgdm9pZCBfX2NkZWNsIENvbXBvc2VSUENFbmRQb2ludE5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9Db21wb3NlUlBDRW5kUG9pbnROYW1lQEBZQVhQRUJHMFBFQVBFQUdAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIENEU0Jhc2VVcGRhdGU6OkNvcHlQcm9wZXJ0eShzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgJiBfX3B0cjY0LHN0cnVjdCB0YWdQUk9QVkFSSUFOVCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weVByb3BlcnR5QENEU0Jhc2VVcGRhdGVAQEFFQUFKQUVBVXRhZ1BST1BWQVJJQU5UQEBQRUFVMkBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBDQ29sdW1uczo6Q291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3VudEBDQ29sdW1uc0BAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBDUmVzdHJpY3Rpb246OkNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q291bnRAQ1Jlc3RyaWN0aW9uQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIENTb3J0OjpDb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvdW50QENTb3J0QEBRRUJBSVhaDQorOyBsb25nIF9fY2RlY2wgRGVsZXRlRmFsY29uS2V5VmFsdWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9EZWxldGVGYWxjb25LZXlWYWx1ZUBAWUFKUEVCR0BaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ0RTQmFzZVVwZGF0ZTo6RGVsZXRlUHJvcGVydHkoc3RydWN0IHRhZ1BST1BWQVJJQU5UICYgX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVQcm9wZXJ0eUBDRFNCYXNlVXBkYXRlQEBBRUFBWEFFQVV0YWdQUk9QVkFSSUFOVEBAQFoNCitGcmVlQ29udGV4dEhhbmRsZQ0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENDb2x1bW5zOjpHZXQodW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldEBDQ29sdW1uc0BAUUVCQUFFQktJQFoNCis7IHB1YmxpYzogY2xhc3MgQ1NvcnRLZXkgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ1NvcnQ6OkdldCh1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/R2V0QENTb3J0QEBRRUJBQUVCVkNTb3J0S2V5QEBJQFoNCis7IHB1YmxpYzogY2xhc3MgQ1Byb3BlcnR5UmVzdHJpY3Rpb24gY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ1Jlc3RyaWN0aW9uOjpHZXRDaGlsZCh1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/R2V0Q2hpbGRAQ1Jlc3RyaWN0aW9uQEBRRUJBQUVCVkNQcm9wZXJ0eVJlc3RyaWN0aW9uQEBJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIENEU0Jhc2VVcGRhdGU6OkdldENvbW1hbmQodm9pZCkgX19wdHI2NA0KKz9HZXRDb21tYW5kQENEU0Jhc2VVcGRhdGVAQFFFQUFFWFoNCis7IGxvbmcgX19jZGVjbCBHZXRDb21wdXRlckRuc05hbWVJbnRlcm5hbCh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpDQorP0dldENvbXB1dGVyRG5zTmFtZUludGVybmFsQEBZQUpQRUFHUEVBS0BaDQorOyBsb25nIF9fY2RlY2wgR2V0Q29tcHV0ZXJOYW1lSW50ZXJuYWwodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KQ0KKz9HZXRDb21wdXRlck5hbWVJbnRlcm5hbEBAWUFKUEVBR1BFQUtAWg0KK0dldERvbWFpbkZRRE5OYW1lDQorOyBsb25nIF9fY2RlY2wgR2V0RmFsY29uS2V5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgSEtFWV9fICogX19wdHI2NCAqIF9fcHRyNjQpDQorP0dldEZhbGNvbktleUBAWUFKUEVCR1BFQVBFQVVIS0VZX19AQEBaDQorR2V0RmFsY29uS2V5VmFsdWUNCis7IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEdldEZhbGNvblNlY3Rpb25OYW1lKHZvaWQpDQorP0dldEZhbGNvblNlY3Rpb25OYW1lQEBZQVBFQkdYWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEdldEZhbGNvblNlcnZpY2VOYW1lKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKQ0KKz9HZXRGYWxjb25TZXJ2aWNlTmFtZUBAWUFLUEVBR0tAWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0dVSUQgKiBfX3B0cjY0IF9fY2RlY2wgQ0RTQmFzZVVwZGF0ZTo6R2V0R3VpZElkZW50aWZpZXIodm9pZCkgX19wdHI2NA0KKz9HZXRHdWlkSWRlbnRpZmllckBDRFNCYXNlVXBkYXRlQEBRRUFBUEVBVV9HVUlEQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0dVSUQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0RTQmFzZVVwZGF0ZTo6R2V0TWFzdGVySWQodm9pZCkgX19wdHI2NA0KKz9HZXRNYXN0ZXJJZEBDRFNCYXNlVXBkYXRlQEBRRUFBUEVCVV9HVUlEQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0RTQmFzZVVwZGF0ZTo6R2V0T2JqZWN0VHlwZSh2b2lkKSBfX3B0cjY0DQorP0dldE9iamVjdFR5cGVAQ0RTQmFzZVVwZGF0ZUBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1NvcnRLZXk6OkdldE9yZGVyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0T3JkZXJAQ1NvcnRLZXlAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ0RTQmFzZVVwZGF0ZTo6R2V0UGF0aE5hbWUodm9pZCkgX19wdHI2NA0KKz9HZXRQYXRoTmFtZUBDRFNCYXNlVXBkYXRlQEBRRUFBUEVBR1haDQorOyBwdWJsaWM6IGNsYXNzIENTZXFOdW0gY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ0RTQmFzZVVwZGF0ZTo6R2V0UHJldlNlcU51bSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFByZXZTZXFOdW1AQ0RTQmFzZVVwZGF0ZUBAUUVCQUFFQlZDU2VxTnVtQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENTb3J0S2V5OjpHZXRQcm9wZXJ0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFByb3BlcnR5QENTb3J0S2V5QEBRRUJBQUVCS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0IF9fY2RlY2wgQ0RTQmFzZVVwZGF0ZTo6R2V0UHJvcHModm9pZCkgX19wdHI2NA0KKz9HZXRQcm9wc0BDRFNCYXNlVXBkYXRlQEBRRUFBUEVBS1haDQorOyBwdWJsaWM6IGNsYXNzIENTZXFOdW0gY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ0RTQmFzZVVwZGF0ZTo6R2V0UHVyZ2VTZXFOdW0odm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRQdXJnZVNlcU51bUBDRFNCYXNlVXBkYXRlQEBRRUJBQUVCVkNTZXFOdW1AQFhaDQorOyBwdWJsaWM6IGNsYXNzIENTZXFOdW0gY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ0RTQmFzZVVwZGF0ZTo6R2V0U2VxTnVtKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U2VxTnVtQENEU0Jhc2VVcGRhdGVAQFFFQkFBRUJWQ1NlcU51bUBAWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENEU0Jhc2VVcGRhdGU6OkdldFNlcmlhbGl6ZVNpemUodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0U2VyaWFsaXplU2l6ZUBDRFNCYXNlVXBkYXRlQEBRRUFBSlBFQUtAWg0KK0dldFNpemVzDQorOyBsb25nIF9fY2RlY2wgR2V0VGhpc1NlcnZlcklwUG9ydCh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/R2V0VGhpc1NlcnZlcklwUG9ydEBAWUFKUEVBR0tAWg0KKzsgcHVibGljOiBzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgKiBfX3B0cjY0IF9fY2RlY2wgQ0RTQmFzZVVwZGF0ZTo6R2V0VmFycyh2b2lkKSBfX3B0cjY0DQorP0dldFZhcnNAQ0RTQmFzZVVwZGF0ZUBAUUVBQVBFQVV0YWdQUk9QVkFSSUFOVEBAWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDUmVzdHJpY3Rpb246Okdyb3codm9pZCkgX19wdHI2NA0KKz9Hcm93QENSZXN0cmljdGlvbkBAQUVBQVhYWg0KKzsgbG9uZyBfX2NkZWNsIEhhc2hNZXNzYWdlUHJvcGVydGllcyh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHN0cnVjdCBRVUVVRV9GT1JNQVQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBRVUVVRV9GT1JNQVQgY29uc3QgKiBfX3B0cjY0KQ0KKz9IYXNoTWVzc2FnZVByb3BlcnRpZXNAQFlBSl9LUEVCRUtLMUtQRUJHS1BFQlVRVUVVRV9GT1JNQVRAQDNAWg0KKzsgbG9uZyBfX2NkZWNsIEhhc2hQcm9wZXJ0aWVzKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCxzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgKiBfX3B0cjY0KQ0KKz9IYXNoUHJvcGVydGllc0BAWUFKX0tLUEVBS1BFQVV0YWdQUk9QVkFSSUFOVEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDYW5jZWxScGM6OkluaXQodm9pZCkgX19wdHI2NA0KKz9Jbml0QENDYW5jZWxScGNAQFFFQUFYWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENEU0Jhc2VVcGRhdGU6OkluaXQodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0luaXRAQ0RTQmFzZVVwZGF0ZUBAUUVBQUpQRUJFUEVBS0hAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0RTQmFzZVVwZGF0ZTo6SW5pdChzdHJ1Y3QgX0dVSUQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENTZXFOdW0gY29uc3QgJiBfX3B0cjY0LGNsYXNzIENTZXFOdW0gY29uc3QgJiBfX3B0cjY0LGNsYXNzIENTZXFOdW0gY29uc3QgJiBfX3B0cjY0LGludCx1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGxvbmcsc3RydWN0IF9HVUlEIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHN0cnVjdCB0YWdQUk9QVkFSSUFOVCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdEBDRFNCYXNlVXBkYXRlQEBRRUFBSlBFQlVfR1VJREBAQUVCVkNTZXFOdW1AQDExSEVLMEtQRUFLUEVBVXRhZ1BST1BWQVJJQU5UQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0RTQmFzZVVwZGF0ZTo6SW5pdChzdHJ1Y3QgX0dVSUQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENTZXFOdW0gY29uc3QgJiBfX3B0cjY0LGNsYXNzIENTZXFOdW0gY29uc3QgJiBfX3B0cjY0LGNsYXNzIENTZXFOdW0gY29uc3QgJiBfX3B0cjY0LGludCx1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsc3RydWN0IHRhZ1BST1BWQVJJQU5UICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0QENEU0Jhc2VVcGRhdGVAQFFFQUFKUEVCVV9HVUlEQEBBRUJWQ1NlcU51bUBAMTFIRUtQRUFHS1BFQUtQRUFVdGFnUFJPUFZBUklBTlRAQEBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgQ0RTQmFzZVVwZGF0ZTo6SW5pdFByb3BlcnR5KHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1BST1BWQVJJQU5UICYgX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0UHJvcGVydHlAQ0RTQmFzZVVwZGF0ZUBAQUVBQUpQRUJFUEVBS0tBRUFVdGFnUFJPUFZBUklBTlRAQEBaDQorOyBib29sIF9fY2RlY2wgSXNMb2NhbFN5c3RlbUNsdXN0ZXIodm9pZCkNCis/SXNMb2NhbFN5c3RlbUNsdXN0ZXJAQFlBX05YWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ091dHB1dFJlcG9ydDo6S2VlcEVycm9ySGlzdG9yeSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQsbG9uZykgX19wdHI2NA0KKz9LZWVwRXJyb3JIaXN0b3J5QENPdXRwdXRSZXBvcnRAQFFFQUFYUEVCR0dKQFoNCitNUVNlYWxCdWZmZXINCitNUVNlY19BY2Nlc3NDaGVjaw0KK01RU2VjX0FjY2Vzc0NoZWNrRm9yU2VsZg0KK01RU2VjX0FjcXVpcmVDcnlwdG9Qcm92aWRlcg0KK01RU2VjX0NhbkdlbmVyYXRlQXVkaXQNCitNUVNlY19Db252ZXJ0U0RUb05UNEZvcm1hdA0KK01RU2VjX0NvbnZlcnRTRFRvTlQ1Rm9ybWF0DQorTVFTZWNfQ29weVNlY3VyaXR5RGVzY3JpcHRvcg0KK01RU2VjX0dldEFkbWluU2lkDQorTVFTZWNfR2V0QW5vbnltb3VzU2lkDQorTVFTZWNfR2V0Q3J5cHRvUHJvdlByb3BlcnR5DQorTVFTZWNfR2V0RGVmYXVsdFNlY0Rlc2NyaXB0b3INCitNUVNlY19HZXRJbXBlcnNvbmF0aW9uT2JqZWN0DQorTVFTZWNfR2V0TG9jYWxNYWNoaW5lU2lkDQorTVFTZWNfR2V0TG9jYWxTeXN0ZW1TaWQNCitNUVNlY19HZXROZXR3b3JrU2VydmljZVNpZA0KK01RU2VjX0dldFByb2Nlc3NTaWQNCitNUVNlY19HZXRQcm9jZXNzVXNlclNpZA0KK01RU2VjX0dldFB1YktleXNGcm9tRFMNCitNUVNlY19HZXRUaHJlYWRVc2VyU2lkDQorTVFTZWNfR2V0VXNlclR5cGUNCitNUVNlY19HZXRXb3JsZFNpZA0KK01RU2VjX0lzQW5vbnltdXNTaWQNCitNUVNlY19Jc0RDDQorTVFTZWNfSXNHdWVzdFNpZA0KK01RU2VjX0lzTmV0d29ya1NlcnZpY2VTaWQNCitNUVNlY19Jc1N5c3RlbVNpZA0KK01RU2VjX0lzVW5BdXRoZW50aWNhdGVkVXNlcg0KK01RU2VjX01ha2VBYnNvbHV0ZVNEDQorTVFTZWNfTWFrZVNlbGZSZWxhdGl2ZQ0KK01RU2VjX01lcmdlU2VjdXJpdHlEZXNjcmlwdG9ycw0KK01RU2VjX1BhY2tQdWJsaWNLZXkNCitNUVNlY19ScGNBdXRobkxldmVsDQorTVFTZWNfU2V0TG9jYWxScGNNdXR1YWxBdXRoDQorTVFTZWNfU2V0UHJpdmlsZWdlSW5UaHJlYWQNCitNUVNlY19TZXRTZWN1cml0eURlc2NyaXB0b3JEYWNsDQorTVFTZWNfU3RvcmVQdWJLZXlzDQorTVFTZWNfU3RvcmVQdWJLZXlzSW5EUw0KK01RU2VjX1RyYWNlVGhyZWFkVG9rZW5JbmZvDQorTVFTZWNfVW5wYWNrUHVibGljS2V5DQorTVFTZWNfVXBkYXRlTG9jYWxNYWNoaW5lU2lkDQorOyBsb25nIF9fY2RlY2wgTVFTZXRDYUNvbmZpZyh1bnNpZ25lZCBsb25nLGNsYXNzIE1RX0NBX0NPTkZJRyAqIF9fcHRyNjQpDQorP01RU2V0Q2FDb25maWdAQFlBSktQRUFWTVFfQ0FfQ09ORklHQEBAWg0KK01RU2lnSGFzaE1lc3NhZ2VQcm9wZXJ0aWVzDQorTVFVSW5pdEdsb2JhbFNjdXJpdHlWYXJzDQorTVFzc3BpX0luaXRTZXJ2ZXJBdXRobnRpY2F0aW9uDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ0NhbmNlbFJwYzo6UHJvY2Vzc0V2ZW50cyh2b2lkKSBfX3B0cjY0DQorP1Byb2Nlc3NFdmVudHNAQ0NhbmNlbFJwY0BAQUVBQVhYWg0KKzsgdm9pZCBfX2NkZWNsIFByb2R1Y2VSUENFcnJvclRyYWNpbmcodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpDQorP1Byb2R1Y2VSUENFcnJvclRyYWNpbmdAQFlBWFBFQUdLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjpSZWxhdGlvbih2b2lkKSBfX3B0cjY0DQorP1JlbGF0aW9uQENQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRRUFBS1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ2FuY2VsUnBjOjpSZW1vdmUodm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVtb3ZlQENDYW5jZWxScGNAQFFFQUFYUEVBWEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29sdW1uczo6UmVtb3ZlKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9SZW1vdmVAQ0NvbHVtbnNAQFFFQUFYSUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU29ydDo6UmVtb3ZlKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9SZW1vdmVAQ1NvcnRAQFFFQUFYSUBaDQorOyBjbGFzcyBDT3V0cHV0UmVwb3J0ICBSZXBvcnQNCis/UmVwb3J0QEAzVkNPdXRwdXRSZXBvcnRAQEEgREFUQQ0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NhbmNlbFJwYzo6UnBjQ2FuY2VsVGltZW91dCh2b2lkKSBfX3B0cjY0DQorP1JwY0NhbmNlbFRpbWVvdXRAQ0NhbmNlbFJwY0BAUUVBQUtYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0RTQmFzZVVwZGF0ZTo6U2VyaWFsaXplKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9TZXJpYWxpemVAQ0RTQmFzZVVwZGF0ZUBAUUVBQUpQRUFFUEVBS0hAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIENEU0Jhc2VVcGRhdGU6OlNlcmlhbGl6ZVByb3BlcnR5KHN0cnVjdCB0YWdQUk9QVkFSSUFOVCAmIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VyaWFsaXplUHJvcGVydHlAQ0RTQmFzZVVwZGF0ZUBAQUVBQUpBRUFVdGFnUFJPUFZBUklBTlRAQFBFQUVQRUFLQFoNCitTZXJ2ZXJBY2NlcHRTZWNDdHgNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZXN0cmljdGlvbjo6U2V0Q2hpbGQoY2xhc3MgQ1Byb3BlcnR5UmVzdHJpY3Rpb24gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRDaGlsZEBDUmVzdHJpY3Rpb25AQFFFQUFYQUVCVkNQcm9wZXJ0eVJlc3RyaWN0aW9uQEBJQFoNCitTZXRGYWxjb25LZXlWYWx1ZQ0KK1NldEZhbGNvblNlcnZpY2VOYW1lDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU29ydEtleTo6U2V0T3JkZXIodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0T3JkZXJAQ1NvcnRLZXlAQFFFQUFYQUVCS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRFNCYXNlVXBkYXRlOjpTZXRQcmV2U2VxTnVtKGNsYXNzIENTZXFOdW0gJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFByZXZTZXFOdW1AQ0RTQmFzZVVwZGF0ZUBAUUVBQVhBRUFWQ1NlcU51bUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjpTZXRQcm9wZXJ0eSh1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQcm9wZXJ0eUBDUHJvcGVydHlSZXN0cmljdGlvbkBAUUVBQVhBRUJLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTb3J0S2V5OjpTZXRQcm9wZXJ0eSh1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQcm9wZXJ0eUBDU29ydEtleUBAUUVBQVhBRUJLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjpTZXRSZWxhdGlvbih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFJlbGF0aW9uQENQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Byb3BlcnR5UmVzdHJpY3Rpb246OlNldFZhbHVlKHN0cnVjdCB0YWdCTE9CICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWYWx1ZUBDUHJvcGVydHlSZXN0cmljdGlvbkBAUUVBQVhBRUFVdGFnQkxPQkBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjpTZXRWYWx1ZShjbGFzcyBDTVFWYXJpYW50IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWYWx1ZUBDUHJvcGVydHlSZXN0cmljdGlvbkBAUUVBQVhBRUJWQ01RVmFyaWFudEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjpTZXRWYWx1ZSh1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP1NldFZhbHVlQENQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRRUFBWEVAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Byb3BlcnR5UmVzdHJpY3Rpb246OlNldFZhbHVlKHNob3J0KSBfX3B0cjY0DQorP1NldFZhbHVlQENQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRRUFBWEZAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Byb3BlcnR5UmVzdHJpY3Rpb246OlNldFZhbHVlKGxvbmcpIF9fcHRyNjQNCis/U2V0VmFsdWVAQ1Byb3BlcnR5UmVzdHJpY3Rpb25AQFFFQUFYSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUHJvcGVydHlSZXN0cmljdGlvbjo6U2V0VmFsdWUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRWYWx1ZUBDUHJvcGVydHlSZXN0cmljdGlvbkBAUUVBQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjpTZXRWYWx1ZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VmFsdWVAQ1Byb3BlcnR5UmVzdHJpY3Rpb25AQFFFQUFYUEVBR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUHJvcGVydHlSZXN0cmljdGlvbjo6U2V0VmFsdWUoc3RydWN0IF9HVUlEICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWYWx1ZUBDUHJvcGVydHlSZXN0cmljdGlvbkBAUUVBQVhQRUFVX0dVSURAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUHJvcGVydHlSZXN0cmljdGlvbjo6U2V0VmFsdWUoc3RydWN0IHRhZ0NBQ0xTSUQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFZhbHVlQENQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRRUFBWFBFQVV0YWdDQUNMU0lEQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Byb3BlcnR5UmVzdHJpY3Rpb246OlNldFZhbHVlKHN0cnVjdCB0YWdDQUxQV1NUUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VmFsdWVAQ1Byb3BlcnR5UmVzdHJpY3Rpb25AQFFFQUFYUEVBVXRhZ0NBTFBXU1RSQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NhbmNlbFJwYzo6U2h1dERvd25DYW5jZWxUaHJlYWQodm9pZCkgX19wdHI2NA0KKz9TaHV0RG93bkNhbmNlbFRocmVhZEBDQ2FuY2VsUnBjQEBRRUFBWFhaDQorU2h1dERvd25EZWJ1Z1dpbmRvdw0KKzsgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIFVuYWxpZ25lZFdjc2xlbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19wdHI2NCkNCis/VW5hbGlnbmVkV2NzbGVuQEBZQV9LUEVGQkdAWg0KKzsgcHVibGljOiBjbGFzcyBDTVFWYXJpYW50IGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjpWYWx1ZSh2b2lkKSBfX3B0cjY0DQorP1ZhbHVlQENQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRRUFBQUVCVkNNUVZhcmlhbnRAQFhaDQorOyBsb25nIF9fY2RlY2wgWGFjdEdldERUQyhzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0ICogX19wdHI2NCkNCis/WGFjdEdldERUQ0BAWUFKUEVBUEVBVUlVbmtub3duQEBAWg0KKzsgbG9uZyBfX2NkZWNsIFhhY3RHZXRXaGVyZWFib3V0cyh1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkNCis/WGFjdEdldFdoZXJlYWJvdXRzQEBZQUpQRUFLUEVBRUBaDQorOyBjbGFzcyBDQ2FuY2VsUnBjICBnX0NhbmNlbFJwYw0KKz9nX0NhbmNlbFJwY0BAM1ZDQ2FuY2VsUnBjQEBBIERBVEENCis7IGNsYXNzIENIQ3J5cHRQcm92ICBnX2hQcm92VmVyDQorP2dfaFByb3ZWZXJAQDNWQ0hDcnlwdFByb3ZAQEEgREFUQQ0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQ0RTQmFzZVVwZGF0ZTo6Z2V0TnVtT2ZQcm9wcyh2b2lkKSBfX3B0cjY0DQorP2dldE51bU9mUHJvcHNAQ0RTQmFzZVVwZGF0ZUBAUUVBQUVYWg0KKzsgbG9uZyBfX2NkZWNsIG1xcnBjQmluZFFNU2VydmljZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCxlbnVtIFBPUlRUWVBFLHVuc2lnbmVkIGxvbmcgKF9fY2RlY2wqKSh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSx1bnNpZ25lZCBsb25nKQ0KKz9tcXJwY0JpbmRRTVNlcnZpY2VAQFlBSlBFQUcwUEVBS1BFQVBFQVhXNFBPUlRUWVBFQEBQNkFLUEVBWEtAWktAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIG1xcnBjR2V0TG9jYWxDYWxsUElEKHZvaWQgKiBfX3B0cjY0KQ0KKz9tcXJwY0dldExvY2FsQ2FsbFBJREBAWUFLUEVBWEBaDQorOyBpbnQgX19jZGVjbCBtcXJwY0lzTG9jYWxDYWxsKHZvaWQgKiBfX3B0cjY0KQ0KKz9tcXJwY0lzTG9jYWxDYWxsQEBZQUhQRUFYQFoNCis7IGludCBfX2NkZWNsIG1xcnBjSXNUY3BpcFRyYW5zcG9ydCh2b2lkICogX19wdHI2NCkNCis/bXFycGNJc1RjcGlwVHJhbnNwb3J0QEBZQUhQRUFYQFoNCis7IGxvbmcgX19jZGVjbCBtcXJwY1VuYmluZFFNU2VydmljZSh2b2lkICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/bXFycGNVbmJpbmRRTVNlcnZpY2VAQFlBSlBFQVBFQVhQRUFQRUFHQFoNCitNUVNpZ0Nsb25lQ2VydEZyb21SZWcNCitNUVNpZ0Nsb25lQ2VydEZyb21TeXNTdG9yZQ0KK01RU2lnQ3JlYXRlQ2VydGlmaWNhdGUNCitNUVNpZ09wZW5Vc2VyQ2VydFN0b3JlDQorTVNNUUdldE9wZXJhdGluZ1N5c3RlbQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21xc25hcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tcXNuYXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU1Yzc2MTgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tcXNuYXAuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXFzbmFwLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtcXNuYXAuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXF0cmlnLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21xdHJpZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTI4YTY2YgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21xdHJpZy5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB0cmlnb2Jqcy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgdHJpZ29ianMuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXF1cGdyZC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tcXVwZ3JkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MjAwOWYzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXF1cGdyZC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNUVVQR1JELmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNUVVQR1JELmRsbA0KK0VYUE9SVFMNCitDbGVhbnVwT25DbHVzdGVyDQorTXFDcmVhdGVNc21xT2JqDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXF1dGlsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21xdXRpbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzMzMjQ1NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21xdXRpbC5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1xdXRpbC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXF1dGlsLmRsbA0KK0VYUE9SVFMNCitNUUdldFJlc291cmNlSGFuZGxlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNhYXRleHQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNhYXRleHQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg5ZTg4MDkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc2FhdGV4dC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU0FBVGV4dC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNBQVRleHQuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNhY20zMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc2FjbTMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNGIzZGRlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNhY20zMi5kZWYKQEAgLTAsMCArMSw1MCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU0FDTTMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU0FDTTMyLmRsbA0KK0VYUE9SVFMNCithY21Ecml2ZXJBZGRBDQorYWNtRHJpdmVyQWRkVw0KK2FjbURyaXZlckNsb3NlDQorYWNtRHJpdmVyRGV0YWlsc0ENCithY21Ecml2ZXJEZXRhaWxzVw0KK2FjbURyaXZlckVudW0NCithY21Ecml2ZXJJRA0KK2FjbURyaXZlck1lc3NhZ2UNCithY21Ecml2ZXJPcGVuDQorYWNtRHJpdmVyUHJpb3JpdHkNCithY21Ecml2ZXJSZW1vdmUNCithY21GaWx0ZXJDaG9vc2VBDQorYWNtRmlsdGVyQ2hvb3NlVw0KK2FjbUZpbHRlckRldGFpbHNBDQorYWNtRmlsdGVyRGV0YWlsc1cNCithY21GaWx0ZXJFbnVtQQ0KK2FjbUZpbHRlckVudW1XDQorYWNtRmlsdGVyVGFnRGV0YWlsc0ENCithY21GaWx0ZXJUYWdEZXRhaWxzVw0KK2FjbUZpbHRlclRhZ0VudW1BDQorYWNtRmlsdGVyVGFnRW51bVcNCithY21Gb3JtYXRDaG9vc2VBDQorYWNtRm9ybWF0Q2hvb3NlVw0KK2FjbUZvcm1hdERldGFpbHNBDQorYWNtRm9ybWF0RGV0YWlsc1cNCithY21Gb3JtYXRFbnVtQQ0KK2FjbUZvcm1hdEVudW1XDQorYWNtRm9ybWF0U3VnZ2VzdA0KK2FjbUZvcm1hdFRhZ0RldGFpbHNBDQorYWNtRm9ybWF0VGFnRGV0YWlsc1cNCithY21Gb3JtYXRUYWdFbnVtQQ0KK2FjbUZvcm1hdFRhZ0VudW1XDQorYWNtR2V0VmVyc2lvbg0KK2FjbU1ldHJpY3MNCithY21TdHJlYW1DbG9zZQ0KK2FjbVN0cmVhbUNvbnZlcnQNCithY21TdHJlYW1NZXNzYWdlDQorYWNtU3RyZWFtT3Blbg0KK2FjbVN0cmVhbVByZXBhcmVIZWFkZXINCithY21TdHJlYW1SZXNldA0KK2FjbVN0cmVhbVNpemUNCithY21TdHJlYW1VbnByZXBhcmVIZWFkZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2FkY2UuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNhZGNlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYjE1MGM2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNhZGNlLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGZ4LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBmeC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2FkY2YuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNhZGNmLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYTJjM2VlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNhZGNmLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG5hdmRnZi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbmF2ZGdmLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zYWRjby5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc2FkY28uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU1ODZkNDkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc2FkY28uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYWN0aXZlLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBhY3RpdmUuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNhZGNzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zYWRjcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzY2MjUyYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zYWRjcy5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU0FEQ1MuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TQURDUy5kbGwNCitFWFBPUlRTDQorR2V0RXh0ZW5zaW9uVmVyc2lvbg0KK0h0dHBFeHRlbnNpb25Qcm9jDQorVGVybWluYXRlRXh0ZW5zaW9uDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNhZGRzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zYWRkcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDUwMTFmNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zYWRkcy5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc2FkZHMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1zYWRkcy5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2FkbzE1LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zYWRvMTUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM2ZjQ2NTMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc2FkbzE1LmRlZgpAQCAtMCwwICsxLDI2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TQURPMTUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TQURPMTUuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorUk5JR2V0Q29tcGF0aWJsZVZlcnNpb24NCitjb21fbXNfd2ZjX2RhdGFfRmllbGRfZ2V0Qm9vbGVhbg0KK2NvbV9tc193ZmNfZGF0YV9GaWVsZF9nZXRCeXRlDQorY29tX21zX3dmY19kYXRhX0ZpZWxkX2dldEJ5dGVzDQorY29tX21zX3dmY19kYXRhX0ZpZWxkX2dldERhdGFUaW1lc3RhbXANCitjb21fbXNfd2ZjX2RhdGFfRmllbGRfZ2V0RG91YmxlDQorY29tX21zX3dmY19kYXRhX0ZpZWxkX2dldEZsb2F0DQorY29tX21zX3dmY19kYXRhX0ZpZWxkX2dldEludA0KK2NvbV9tc193ZmNfZGF0YV9GaWVsZF9nZXRMb25nDQorY29tX21zX3dmY19kYXRhX0ZpZWxkX2dldFNob3J0DQorY29tX21zX3dmY19kYXRhX0ZpZWxkX2dldFN0cmluZw0KK2NvbV9tc193ZmNfZGF0YV9GaWVsZF9pc051bGwNCitjb21fbXNfd2ZjX2RhdGFfRmllbGRfbG9hZE1zamF2YQ0KK2NvbV9tc193ZmNfZGF0YV9GaWVsZF9zZXREYXRhRGF0ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zYWRvbWQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNhZG9tZC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGNiYjgzNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zYWRvbWQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNBRE9NRC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNBRE9NRC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2Fkb3IxNS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc2Fkb3IxNS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWJhMGFkZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zYWRvcjE1LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TQURPUjE1LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU0FET1IxNS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2Fkb3guZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNhZG94LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNWZiMDhkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNhZG94LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zQURPWC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXNBRE9YLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zYWRyaDE1LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zYWRyaDE1LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iZjM3ZWIzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNhZHJoMTUuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNBRFJIMTUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TQURSSDE1LmRsbA0KK0VYUE9SVFMNCitEbGxNYWluDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2FmZC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc2FmZC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWU4YzY1MgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zYWZkLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNBRkQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TQUZELmRsbA0KK0VYUE9SVFMNCitXU1BTdGFydHVwDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNhc24xLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zYXNuMS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWJlYjExYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zYXNuMS5kZWYKQEAgLTAsMCArMSwyNzQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNBU04xLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU0FTTjEuZGxsDQorRVhQT1JUUw0KK0FTTjFCRVJEZWNCaXRTdHJpbmcNCitBU04xQkVSRGVjQml0U3RyaW5nMg0KK0FTTjFCRVJEZWNCb29sDQorQVNOMUJFUkRlY0NoYXIxNlN0cmluZw0KK0FTTjFCRVJEZWNDaGFyMzJTdHJpbmcNCitBU04xQkVSRGVjQ2hhclN0cmluZw0KK0FTTjFCRVJEZWNDaGVjaw0KK0FTTjFCRVJEZWNEb3VibGUNCitBU04xQkVSRGVjRW5kT2ZDb250ZW50cw0KK0FTTjFCRVJEZWNFb2lkDQorQVNOMUJFUkRlY0V4cGxpY2l0VGFnDQorQVNOMUJFUkRlY0ZsdXNoDQorQVNOMUJFUkRlY0dlbmVyYWxpemVkVGltZQ0KK0FTTjFCRVJEZWNMZW5ndGgNCitBU04xQkVSRGVjTXVsdGlieXRlU3RyaW5nDQorQVNOMUJFUkRlY05vdEVuZE9mQ29udGVudHMNCitBU04xQkVSRGVjTnVsbA0KK0FTTjFCRVJEZWNPYmplY3RJZGVudGlmaWVyDQorQVNOMUJFUkRlY09iamVjdElkZW50aWZpZXIyDQorQVNOMUJFUkRlY09jdGV0U3RyaW5nDQorQVNOMUJFUkRlY09jdGV0U3RyaW5nMg0KK0FTTjFCRVJEZWNPcGVuVHlwZQ0KK0FTTjFCRVJEZWNPcGVuVHlwZTINCitBU04xQkVSRGVjUGVla1RhZw0KK0FTTjFCRVJEZWNTMTZWYWwNCitBU04xQkVSRGVjUzMyVmFsDQorQVNOMUJFUkRlY1M4VmFsDQorQVNOMUJFUkRlY1NYVmFsDQorQVNOMUJFUkRlY1NraXANCitBU04xQkVSRGVjVGFnDQorQVNOMUJFUkRlY1UxNlZhbA0KK0FTTjFCRVJEZWNVMzJWYWwNCitBU04xQkVSRGVjVThWYWwNCitBU04xQkVSRGVjVVRDVGltZQ0KK0FTTjFCRVJEZWNVVEY4U3RyaW5nDQorQVNOMUJFUkRlY1plcm9DaGFyMTZTdHJpbmcNCitBU04xQkVSRGVjWmVyb0NoYXIzMlN0cmluZw0KK0FTTjFCRVJEZWNaZXJvQ2hhclN0cmluZw0KK0FTTjFCRVJEZWNaZXJvTXVsdGlieXRlU3RyaW5nDQorQVNOMUJFUkRvdFZhbDJFb2lkDQorQVNOMUJFUkVuY0JpdFN0cmluZw0KK0FTTjFCRVJFbmNCb29sDQorQVNOMUJFUkVuY0NoYXIxNlN0cmluZw0KK0FTTjFCRVJFbmNDaGFyMzJTdHJpbmcNCitBU04xQkVSRW5jQ2hhclN0cmluZw0KK0FTTjFCRVJFbmNDaGVjaw0KK0FTTjFCRVJFbmNEb3VibGUNCitBU04xQkVSRW5jRW5kT2ZDb250ZW50cw0KK0FTTjFCRVJFbmNFb2lkDQorQVNOMUJFUkVuY0V4cGxpY2l0VGFnDQorQVNOMUJFUkVuY0ZsdXNoDQorQVNOMUJFUkVuY0dlbmVyYWxpemVkVGltZQ0KK0FTTjFCRVJFbmNMZW5ndGgNCitBU04xQkVSRW5jTXVsdGlieXRlU3RyaW5nDQorQVNOMUJFUkVuY051bGwNCitBU04xQkVSRW5jT2JqZWN0SWRlbnRpZmllcg0KK0FTTjFCRVJFbmNPYmplY3RJZGVudGlmaWVyMg0KK0FTTjFCRVJFbmNPY3RldFN0cmluZw0KK0FTTjFCRVJFbmNPcGVuVHlwZQ0KK0FTTjFCRVJFbmNSZW1vdmVaZXJvQml0cw0KK0FTTjFCRVJFbmNTMzINCitBU04xQkVSRW5jU1gNCitBU04xQkVSRW5jVGFnDQorQVNOMUJFUkVuY1UzMg0KK0FTTjFCRVJFbmNVVENUaW1lDQorQVNOMUJFUkVuY1VURjhTdHJpbmcNCitBU04xQkVSRW5jWmVyb011bHRpYnl0ZVN0cmluZw0KK0FTTjFCRVJFb2lkMkRvdFZhbA0KK0FTTjFCRVJFb2lkX2ZyZWUNCitBU04xQ0VSRW5jQmVnaW5CbGsNCitBU04xQ0VSRW5jQml0U3RyaW5nDQorQVNOMUNFUkVuY0NoYXIxNlN0cmluZw0KK0FTTjFDRVJFbmNDaGFyMzJTdHJpbmcNCitBU04xQ0VSRW5jQ2hhclN0cmluZw0KK0FTTjFDRVJFbmNFbmRCbGsNCitBU04xQ0VSRW5jRmx1c2hCbGtFbGVtZW50DQorQVNOMUNFUkVuY0dlbmVyYWxpemVkVGltZQ0KK0FTTjFDRVJFbmNNdWx0aWJ5dGVTdHJpbmcNCitBU04xQ0VSRW5jTmV3QmxrRWxlbWVudA0KK0FTTjFDRVJFbmNPY3RldFN0cmluZw0KK0FTTjFDRVJFbmNVVENUaW1lDQorQVNOMUNFUkVuY1plcm9NdWx0aWJ5dGVTdHJpbmcNCitBU04xRGVjQWJvcnQNCitBU04xRGVjQWxsb2MNCitBU04xRGVjRG9uZQ0KK0FTTjFEZWNSZWFsbG9jDQorQVNOMURlY1NldEVycm9yDQorQVNOMUVuY0Fib3J0DQorQVNOMUVuY0RvbmUNCitBU04xRW5jU2V0RXJyb3INCitBU04xRnJlZQ0KK0FTTjFQRVJEZWNBbGlnbm1lbnQNCitBU04xUEVSRGVjQml0DQorQVNOMVBFUkRlY0JpdHMNCitBU04xUEVSRGVjQm9vbGVhbg0KK0FTTjFQRVJEZWNDaGFyMTZTdHJpbmcNCitBU04xUEVSRGVjQ2hhcjMyU3RyaW5nDQorQVNOMVBFUkRlY0NoYXJTdHJpbmcNCitBU04xUEVSRGVjQ2hhclN0cmluZ05vQWxsb2MNCitBU04xUEVSRGVjQ29tcGxleENob2ljZQ0KK0FTTjFQRVJEZWNEb3VibGUNCitBU04xUEVSRGVjRXh0ZW5zaW9uDQorQVNOMVBFUkRlY0ZsdXNoDQorQVNOMVBFUkRlY0ZyYWdtZW50ZWQNCitBU04xUEVSRGVjRnJhZ21lbnRlZENoYXIxNlN0cmluZw0KK0FTTjFQRVJEZWNGcmFnbWVudGVkQ2hhcjMyU3RyaW5nDQorQVNOMVBFUkRlY0ZyYWdtZW50ZWRDaGFyU3RyaW5nDQorQVNOMVBFUkRlY0ZyYWdtZW50ZWRFeHRlbnNpb24NCitBU04xUEVSRGVjRnJhZ21lbnRlZEludHgNCitBU04xUEVSRGVjRnJhZ21lbnRlZExlbmd0aA0KK0FTTjFQRVJEZWNGcmFnbWVudGVkVGFibGVDaGFyMTZTdHJpbmcNCitBU04xUEVSRGVjRnJhZ21lbnRlZFRhYmxlQ2hhcjMyU3RyaW5nDQorQVNOMVBFUkRlY0ZyYWdtZW50ZWRUYWJsZUNoYXJTdHJpbmcNCitBU04xUEVSRGVjRnJhZ21lbnRlZFVJbnR4DQorQVNOMVBFUkRlY0ZyYWdtZW50ZWRaZXJvQ2hhcjE2U3RyaW5nDQorQVNOMVBFUkRlY0ZyYWdtZW50ZWRaZXJvQ2hhcjMyU3RyaW5nDQorQVNOMVBFUkRlY0ZyYWdtZW50ZWRaZXJvQ2hhclN0cmluZw0KK0FTTjFQRVJEZWNGcmFnbWVudGVkWmVyb1RhYmxlQ2hhcjE2U3RyaW5nDQorQVNOMVBFUkRlY0ZyYWdtZW50ZWRaZXJvVGFibGVDaGFyMzJTdHJpbmcNCitBU04xUEVSRGVjRnJhZ21lbnRlZFplcm9UYWJsZUNoYXJTdHJpbmcNCitBU04xUEVSRGVjR2VuZXJhbGl6ZWRUaW1lDQorQVNOMVBFUkRlY0ludGVnZXINCitBU04xUEVSRGVjTXVsdGlieXRlU3RyaW5nDQorQVNOMVBFUkRlY04xNlZhbA0KK0FTTjFQRVJEZWNOMzJWYWwNCitBU04xUEVSRGVjTjhWYWwNCitBU04xUEVSRGVjTm9ybWFsbHlTbWFsbEV4dGVuc2lvbg0KK0FTTjFQRVJEZWNPYmplY3RJZGVudGlmaWVyDQorQVNOMVBFUkRlY09iamVjdElkZW50aWZpZXIyDQorQVNOMVBFUkRlY09jdGV0U3RyaW5nX0ZpeGVkU2l6ZQ0KK0FTTjFQRVJEZWNPY3RldFN0cmluZ19GaXhlZFNpemVFeA0KK0FTTjFQRVJEZWNPY3RldFN0cmluZ19Ob1NpemUNCitBU04xUEVSRGVjT2N0ZXRTdHJpbmdfVmFyU2l6ZQ0KK0FTTjFQRVJEZWNPY3RldFN0cmluZ19WYXJTaXplRXgNCitBU04xUEVSRGVjUzE2VmFsDQorQVNOMVBFUkRlY1MzMlZhbA0KK0FTTjFQRVJEZWNTOFZhbA0KK0FTTjFQRVJEZWNTWFZhbA0KK0FTTjFQRVJEZWNTZXFPZl9Ob1NpemUNCitBU04xUEVSRGVjU2VxT2ZfVmFyU2l6ZQ0KK0FTTjFQRVJEZWNTaW1wbGVDaG9pY2UNCitBU04xUEVSRGVjU2ltcGxlQ2hvaWNlRXgNCitBU04xUEVSRGVjU2tpcEJpdHMNCitBU04xUEVSRGVjU2tpcEZyYWdtZW50ZWQNCitBU04xUEVSRGVjU2tpcE5vcm1hbGx5U21hbGwNCitBU04xUEVSRGVjU2tpcE5vcm1hbGx5U21hbGxFeHRlbnNpb24NCitBU04xUEVSRGVjU2tpcE5vcm1hbGx5U21hbGxFeHRlbnNpb25GcmFnbWVudGVkDQorQVNOMVBFUkRlY1RhYmxlQ2hhcjE2U3RyaW5nDQorQVNOMVBFUkRlY1RhYmxlQ2hhcjMyU3RyaW5nDQorQVNOMVBFUkRlY1RhYmxlQ2hhclN0cmluZw0KK0FTTjFQRVJEZWNUYWJsZUNoYXJTdHJpbmdOb0FsbG9jDQorQVNOMVBFUkRlY1UxNlZhbA0KK0FTTjFQRVJEZWNVMzJWYWwNCitBU04xUEVSRGVjVThWYWwNCitBU04xUEVSRGVjVVRDVGltZQ0KK0FTTjFQRVJEZWNVWFZhbA0KK0FTTjFQRVJEZWNVbnNpZ25lZEludGVnZXINCitBU04xUEVSRGVjVW5zaWduZWRTaG9ydA0KK0FTTjFQRVJEZWNaZXJvQ2hhcjE2U3RyaW5nDQorQVNOMVBFUkRlY1plcm9DaGFyMzJTdHJpbmcNCitBU04xUEVSRGVjWmVyb0NoYXJTdHJpbmcNCitBU04xUEVSRGVjWmVyb0NoYXJTdHJpbmdOb0FsbG9jDQorQVNOMVBFUkRlY1plcm9UYWJsZUNoYXIxNlN0cmluZw0KK0FTTjFQRVJEZWNaZXJvVGFibGVDaGFyMzJTdHJpbmcNCitBU04xUEVSRGVjWmVyb1RhYmxlQ2hhclN0cmluZw0KK0FTTjFQRVJEZWNaZXJvVGFibGVDaGFyU3RyaW5nTm9BbGxvYw0KK0FTTjFQRVJFbmNBbGlnbm1lbnQNCitBU04xUEVSRW5jQml0DQorQVNOMVBFUkVuY0JpdEludHgNCitBU04xUEVSRW5jQml0VmFsDQorQVNOMVBFUkVuY0JpdHMNCitBU04xUEVSRW5jQm9vbGVhbg0KK0FTTjFQRVJFbmNDaGFyMTZTdHJpbmcNCitBU04xUEVSRW5jQ2hhcjMyU3RyaW5nDQorQVNOMVBFUkVuY0NoYXJTdHJpbmcNCitBU04xUEVSRW5jQ2hlY2tFeHRlbnNpb25zDQorQVNOMVBFUkVuY0NvbXBsZXhDaG9pY2UNCitBU04xUEVSRW5jRG91YmxlDQorQVNOMVBFUkVuY0V4dGVuc2lvbkJpdENsZWFyDQorQVNOMVBFUkVuY0V4dGVuc2lvbkJpdFNldA0KK0FTTjFQRVJFbmNGbHVzaA0KK0FTTjFQRVJFbmNGbHVzaEZyYWdtZW50ZWRUb1BhcmVudA0KK0FTTjFQRVJFbmNGcmFnbWVudGVkDQorQVNOMVBFUkVuY0ZyYWdtZW50ZWRDaGFyMTZTdHJpbmcNCitBU04xUEVSRW5jRnJhZ21lbnRlZENoYXIzMlN0cmluZw0KK0FTTjFQRVJFbmNGcmFnbWVudGVkQ2hhclN0cmluZw0KK0FTTjFQRVJFbmNGcmFnbWVudGVkSW50eA0KK0FTTjFQRVJFbmNGcmFnbWVudGVkTGVuZ3RoDQorQVNOMVBFUkVuY0ZyYWdtZW50ZWRUYWJsZUNoYXIxNlN0cmluZw0KK0FTTjFQRVJFbmNGcmFnbWVudGVkVGFibGVDaGFyMzJTdHJpbmcNCitBU04xUEVSRW5jRnJhZ21lbnRlZFRhYmxlQ2hhclN0cmluZw0KK0FTTjFQRVJFbmNGcmFnbWVudGVkVUludHgNCitBU04xUEVSRW5jR2VuZXJhbGl6ZWRUaW1lDQorQVNOMVBFUkVuY0ludGVnZXINCitBU04xUEVSRW5jTXVsdGlieXRlU3RyaW5nDQorQVNOMVBFUkVuY05vcm1hbGx5U21hbGwNCitBU04xUEVSRW5jTm9ybWFsbHlTbWFsbEJpdHMNCitBU04xUEVSRW5jT2JqZWN0SWRlbnRpZmllcg0KK0FTTjFQRVJFbmNPYmplY3RJZGVudGlmaWVyMg0KK0FTTjFQRVJFbmNPY3RldFN0cmluZ19GaXhlZFNpemUNCitBU04xUEVSRW5jT2N0ZXRTdHJpbmdfRml4ZWRTaXplRXgNCitBU04xUEVSRW5jT2N0ZXRTdHJpbmdfTm9TaXplDQorQVNOMVBFUkVuY09jdGV0U3RyaW5nX1ZhclNpemUNCitBU04xUEVSRW5jT2N0ZXRTdHJpbmdfVmFyU2l6ZUV4DQorQVNOMVBFUkVuY09jdGV0cw0KK0FTTjFQRVJFbmNSZW1vdmVaZXJvQml0cw0KK0FTTjFQRVJFbmNTZXFPZl9Ob1NpemUNCitBU04xUEVSRW5jU2VxT2ZfVmFyU2l6ZQ0KK0FTTjFQRVJFbmNTaW1wbGVDaG9pY2UNCitBU04xUEVSRW5jU2ltcGxlQ2hvaWNlRXgNCitBU04xUEVSRW5jVGFibGVDaGFyMTZTdHJpbmcNCitBU04xUEVSRW5jVGFibGVDaGFyMzJTdHJpbmcNCitBU04xUEVSRW5jVGFibGVDaGFyU3RyaW5nDQorQVNOMVBFUkVuY1VUQ1RpbWUNCitBU04xUEVSRW5jVW5zaWduZWRJbnRlZ2VyDQorQVNOMVBFUkVuY1Vuc2lnbmVkU2hvcnQNCitBU04xUEVSRW5jWmVybw0KK0FTTjFQRVJGcmVlU2VxT2YNCitBU04xX0Nsb3NlRGVjb2Rlcg0KK0FTTjFfQ2xvc2VFbmNvZGVyDQorQVNOMV9DbG9zZUVuY29kZXIyDQorQVNOMV9DbG9zZU1vZHVsZQ0KK0FTTjFfQ3JlYXRlRGVjb2Rlcg0KK0FTTjFfQ3JlYXRlRGVjb2RlckV4DQorQVNOMV9DcmVhdGVFbmNvZGVyDQorQVNOMV9DcmVhdGVNb2R1bGUNCitBU04xX0RlY29kZQ0KK0FTTjFfRW5jb2RlDQorQVNOMV9GcmVlRGVjb2RlZA0KK0FTTjFfRnJlZUVuY29kZWQNCitBU04xX0dldERlY29kZXJPcHRpb24NCitBU04xX0dldEVuY29kZXJPcHRpb24NCitBU04xX1NldERlY29kZXJPcHRpb24NCitBU04xX1NldEVuY29kZXJPcHRpb24NCitBU04xYml0c3RyaW5nX2NtcA0KK0FTTjFiaXRzdHJpbmdfZnJlZQ0KK0FTTjFjaGFyMTZzdHJpbmdfY21wDQorQVNOMWNoYXIxNnN0cmluZ19mcmVlDQorQVNOMWNoYXIzMnN0cmluZ19jbXANCitBU04xY2hhcjMyc3RyaW5nX2ZyZWUNCitBU04xY2hhcnN0cmluZ19jbXANCitBU04xY2hhcnN0cmluZ19mcmVlDQorQVNOMWdlbmVyYWxpemVkdGltZV9jbXANCitBU04xaW50eDJpbnQzMg0KK0FTTjFpbnR4MnVpbnQzMg0KK0FTTjFpbnR4X2FkZA0KK0FTTjFpbnR4X2ZyZWUNCitBU04xaW50eF9zZXR1aW50MzINCitBU04xaW50eF9zdWINCitBU04xaW50eF91b2N0ZXRzDQorQVNOMWludHhpc3VpbnQzMg0KK0FTTjFvYmplY3RpZGVudGlmaWVyMl9jbXANCitBU04xb2JqZWN0aWRlbnRpZmllcl9jbXANCitBU04xb2JqZWN0aWRlbnRpZmllcl9mcmVlDQorQVNOMW9jdGV0c3RyaW5nX2NtcA0KK0FTTjFvY3RldHN0cmluZ19mcmVlDQorQVNOMW9wZW5fY21wDQorQVNOMW9wZW5fZnJlZQ0KK0FTTjF1aW50MzJfdW9jdGV0cw0KK0FTTjF1dGN0aW1lX2NtcA0KK0FTTjF1dGY4c3RyaW5nX2ZyZWUNCitBU04xenRjaGFyMTZzdHJpbmdfY21wDQorQVNOMXp0Y2hhcjE2c3RyaW5nX2ZyZWUNCitBU04xenRjaGFyMzJzdHJpbmdfZnJlZQ0KK0FTTjF6dGNoYXJzdHJpbmdfY21wDQorQVNOMXp0Y2hhcnN0cmluZ19mcmVlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNjYW5kdWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNjYW5kdWkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlkOWVkZTUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc2NhbmR1aS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU0NBTkRVSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNDQU5EVUkuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNjYXQzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc2NhdDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kN2I2YTBhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNjYXQzMi5kZWYKQEAgLTAsMCArMSw0NCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU0NBVDMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU0NBVDMyLmRsbA0KK0VYUE9SVFMNCitDcnlwdENBVFZlcmlmeU1lbWJlcg0KK0NhdGFsb2dDb21wYWN0SGFzaERhdGFiYXNlDQorQ3J5cHRDQVRBZG1pbkFjcXVpcmVDb250ZXh0DQorQ3J5cHRDQVRBZG1pbkFkZENhdGFsb2cNCitDcnlwdENBVEFkbWluQ2FsY0hhc2hGcm9tRmlsZUhhbmRsZQ0KK0NyeXB0Q0FUQWRtaW5FbnVtQ2F0YWxvZ0Zyb21IYXNoDQorQ3J5cHRDQVRBZG1pblJlbGVhc2VDYXRhbG9nQ29udGV4dA0KK0NyeXB0Q0FUQWRtaW5SZWxlYXNlQ29udGV4dA0KK0NyeXB0Q0FUQ0RGQ2xvc2UNCitDcnlwdENBVENERkVudW1BdHRyaWJ1dGVzDQorQ3J5cHRDQVRDREZFbnVtQXR0cmlidXRlc1dpdGhDREZUYWcNCitDcnlwdENBVENERkVudW1DYXRBdHRyaWJ1dGVzDQorQ3J5cHRDQVRDREZFbnVtTWVtYmVycw0KK0NyeXB0Q0FUQ0RGRW51bU1lbWJlcnNCeUNERlRhZw0KK0NyeXB0Q0FUQ0RGRW51bU1lbWJlcnNCeUNERlRhZ0V4DQorQ3J5cHRDQVRDREZPcGVuDQorQ3J5cHRDQVRDYXRhbG9nSW5mb0Zyb21Db250ZXh0DQorQ3J5cHRDQVRDbG9zZQ0KK0NyeXB0Q0FURW51bWVyYXRlQXR0cg0KK0NyeXB0Q0FURW51bWVyYXRlQ2F0QXR0cg0KK0NyeXB0Q0FURW51bWVyYXRlTWVtYmVyDQorQ3J5cHRDQVRHZXRBdHRySW5mbw0KK0NyeXB0Q0FUR2V0Q2F0QXR0ckluZm8NCitDcnlwdENBVEdldE1lbWJlckluZm8NCitDcnlwdENBVEhhbmRsZUZyb21TdG9yZQ0KK0NyeXB0Q0FUT3Blbg0KK0NyeXB0Q0FUUGVyc2lzdFN0b3JlDQorQ3J5cHRDQVRQdXRBdHRySW5mbw0KK0NyeXB0Q0FUUHV0Q2F0QXR0ckluZm8NCitDcnlwdENBVFB1dE1lbWJlckluZm8NCitDcnlwdENBVFN0b3JlRnJvbUhhbmRsZQ0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0lzQ2F0YWxvZ0ZpbGUNCitNc0NhdENvbnN0cnVjdEhhc2hUYWcNCitNc0NhdEZyZWVIYXNoVGFnDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNjbXMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNjbXMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjczYTc0Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc2Ntcy5kZWYKQEAgLTAsMCArMSw2OSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc2Ntcy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXNjbXMuZGxsDQorRVhQT1JUUw0KK0Fzc29jaWF0ZUNvbG9yUHJvZmlsZVdpdGhEZXZpY2VBDQorQXNzb2NpYXRlQ29sb3JQcm9maWxlV2l0aERldmljZVcNCitDaGVja0JpdG1hcEJpdHMNCitDaGVja0NvbG9ycw0KK0Nsb3NlQ29sb3JQcm9maWxlDQorQ29udmVydENvbG9yTmFtZVRvSW5kZXgNCitDb252ZXJ0SW5kZXhUb0NvbG9yTmFtZQ0KK0NyZWF0ZUNvbG9yVHJhbnNmb3JtQQ0KK0NyZWF0ZUNvbG9yVHJhbnNmb3JtVw0KK0NyZWF0ZURldmljZUxpbmtQcm9maWxlDQorQ3JlYXRlTXVsdGlQcm9maWxlVHJhbnNmb3JtDQorQ3JlYXRlUHJvZmlsZUZyb21Mb2dDb2xvclNwYWNlQQ0KK0NyZWF0ZVByb2ZpbGVGcm9tTG9nQ29sb3JTcGFjZVcNCitEZWxldGVDb2xvclRyYW5zZm9ybQ0KK0Rpc2Fzc29jaWF0ZUNvbG9yUHJvZmlsZUZyb21EZXZpY2VBDQorRGlzYXNzb2NpYXRlQ29sb3JQcm9maWxlRnJvbURldmljZVcNCitFbnVtQ29sb3JQcm9maWxlc0ENCitFbnVtQ29sb3JQcm9maWxlc1cNCitHZW5lcmF0ZUNvcHlGaWxlUGF0aHMNCitHZXRDTU1JbmZvDQorR2V0Q29sb3JEaXJlY3RvcnlBDQorR2V0Q29sb3JEaXJlY3RvcnlXDQorR2V0Q29sb3JQcm9maWxlRWxlbWVudA0KK0dldENvbG9yUHJvZmlsZUVsZW1lbnRUYWcNCitHZXRDb2xvclByb2ZpbGVGcm9tSGFuZGxlDQorR2V0Q29sb3JQcm9maWxlSGVhZGVyDQorR2V0Q291bnRDb2xvclByb2ZpbGVFbGVtZW50cw0KK0dldE5hbWVkUHJvZmlsZUluZm8NCitHZXRQUzJDb2xvclJlbmRlcmluZ0RpY3Rpb25hcnkNCitHZXRQUzJDb2xvclJlbmRlcmluZ0ludGVudA0KK0dldFBTMkNvbG9yU3BhY2VBcnJheQ0KK0dldFN0YW5kYXJkQ29sb3JTcGFjZVByb2ZpbGVBDQorR2V0U3RhbmRhcmRDb2xvclNwYWNlUHJvZmlsZVcNCitJbnN0YWxsQ29sb3JQcm9maWxlQQ0KK0luc3RhbGxDb2xvclByb2ZpbGVXDQorSW50ZXJuYWxHZXREZXZpY2VDb25maWcNCitJbnRlcm5hbEdldFBTMkNTQUZyb21MQ1MNCitJbnRlcm5hbEdldFBTMkNvbG9yUmVuZGVyaW5nRGljdGlvbmFyeQ0KK0ludGVybmFsR2V0UFMyQ29sb3JTcGFjZUFycmF5DQorSW50ZXJuYWxHZXRQUzJQcmV2aWV3Q1JEDQorSW50ZXJuYWxTZXREZXZpY2VDb25maWcNCitJc0NvbG9yUHJvZmlsZVRhZ1ByZXNlbnQNCitJc0NvbG9yUHJvZmlsZVZhbGlkDQorT3BlbkNvbG9yUHJvZmlsZUENCitPcGVuQ29sb3JQcm9maWxlVw0KK1JlZ2lzdGVyQ01NQQ0KK1JlZ2lzdGVyQ01NVw0KK1NlbGVjdENNTQ0KK1NldENvbG9yUHJvZmlsZUVsZW1lbnQNCitTZXRDb2xvclByb2ZpbGVFbGVtZW50UmVmZXJlbmNlDQorU2V0Q29sb3JQcm9maWxlRWxlbWVudFNpemUNCitTZXRDb2xvclByb2ZpbGVIZWFkZXINCitTZXRTdGFuZGFyZENvbG9yU3BhY2VQcm9maWxlQQ0KK1NldFN0YW5kYXJkQ29sb3JTcGFjZVByb2ZpbGVXDQorU3Bvb2xlckNvcHlGaWxlRXZlbnQNCitUcmFuc2xhdGVCaXRtYXBCaXRzDQorVHJhbnNsYXRlQ29sb3JzDQorVW5pbnN0YWxsQ29sb3JQcm9maWxlQQ0KK1VuaW5zdGFsbENvbG9yUHJvZmlsZVcNCitVbnJlZ2lzdGVyQ01NQQ0KK1VucmVnaXN0ZXJDTU1XDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNjdGYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNjdGYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcxNzgzZGQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc2N0Zi5kZWYKQEAgLTAsMCArMSw0NyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU0NURi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNDVEYuZGxsDQorRVhQT1JUUw0KK1RGX0dldExhbmdJY29uDQorVEZfR2V0TWxuZ0hLTA0KK1RGX0dldE1sbmdJY29uSW5kZXgNCitURl9HZXRUaHJlYWRGbGFncw0KK1RGX0luYXRFeHRyYWN0SWNvbg0KK1RGX0luaXRNbG5nSW5mbw0KK1RGX0lzSW5NYXJzaGFsaW5nDQorVEZfTWxuZ0luZm9Db3VudA0KK1RGX1J1bklucHV0Q1BMDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitTZXRJbnB1dFNjb3BlDQorU2V0SW5wdXRTY29wZVhNTA0KK1NldElucHV0U2NvcGVzDQorVEZfQ1VBU0FwcEZpeA0KK1RGX0NoZWNrVGhyZWFkSW5wdXRJZGxlDQorVEZfQ2xlYXJMYW5nQmFyQWRkSW5zDQorVEZfQ3JlYXRlQ2F0ZWdvcnlNZ3INCitURl9DcmVhdGVDaWNMb2FkTXV0ZXgNCitURl9DcmVhdGVEaXNwbGF5QXR0cmlidXRlTWdyDQorVEZfQ3JlYXRlSW5wdXRQcm9jZXNzb3JQcm9maWxlcw0KK1RGX0NyZWF0ZUxhbmdCYXJJdGVtTWdyDQorVEZfQ3JlYXRlTGFuZ0Jhck1ncg0KK1RGX0NyZWF0ZVRocmVhZE1ncg0KK1RGX0RsbERldGFjaEluT3RoZXINCitURl9HZXRHbG9iYWxDb21wYXJ0bWVudA0KK1RGX0dldElucHV0U2NvcGUNCitURl9HZXRUaHJlYWRNZ3INCitURl9Jbml0U3lzdGVtDQorVEZfSW52YWxpZEFzc2VtYmx5TGlzdENhY2hlDQorVEZfSW52YWxpZEFzc2VtYmx5TGlzdENhY2hlSWZFeGlzdA0KK1RGX0lzQ3RmbW9uUnVubmluZw0KK1RGX0lzRnVsbFNjcmVlbldpbmRvd0FjaXR2YXRlZA0KK1RGX1Bvc3RBbGxUaHJlYWRNc2cNCitURl9SZWdpc3RlckxhbmdCYXJBZGRJbg0KK1RGX1VuaW5pdFN5c3RlbQ0KK1RGX1VucmVnaXN0ZXJMYW5nQmFyQWRkSW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2N0ZnAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNjdGZwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMWVjNzM0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNjdGZwLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TQ1RGUC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNDVEZQLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldFByb3h5RGxsSW5mbw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zZGFkaWFnLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zZGFkaWFnLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMzE1MmNmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNkYWRpYWcuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc2RhZGlhZy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXNkYWRpYWcuZGxsDQorRVhQT1JUUw0KK0RsbEJpZEVudHJ5UG9pbnQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2Rhb3NwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zZGFvc3AuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNkMThhYWIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc2Rhb3NwLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TREFPU1AuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TREFPU1AuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsTWFpbg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zZGFwcnN0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zZGFwcnN0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMjNmMGMwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNkYXByc3QuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcGVyc2lzdC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcGVyc2lzdC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2RhcHMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNkYXBzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMmRkMDA5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNkYXBzLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TREFQUy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNEQVBTLmRsbA0KK0VYUE9SVFMNCitEbGxNYWluDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2RhcmVtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zZGFyZW0uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU0MDBmMTkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc2RhcmVtLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zcmVtb3RlLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc3JlbW90ZS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2RhcnQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNkYXJ0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yZmI2NDEwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNkYXJ0LmRlZgpAQCAtMCwwICsxLDEwMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNEQVJULkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU0RBUlQuRExMDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIENDcml0U2VjOjpDQ3JpdFNlYyh2b2lkKSBfX3B0cjY0DQorPz8wQ0NyaXRTZWNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRG91YmxlTGlzdDo6Q0RvdWJsZUxpc3Qodm9pZCkgX19wdHI2NA0KKz8/MENEb3VibGVMaXN0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0VYQXV0b0JhY2t1cEZpbGU6OkNFWEF1dG9CYWNrdXBGaWxlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENFWEF1dG9CYWNrdXBGaWxlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIENFWEF1dG9CYWNrdXBGaWxlOjpDRVhBdXRvQmFja3VwRmlsZSh2b2lkKSBfX3B0cjY0DQorPz8wQ0VYQXV0b0JhY2t1cEZpbGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXhGaWxlT3BlcmF0aW9uOjpDRXhGaWxlT3BlcmF0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzBDRXhGaWxlT3BlcmF0aW9uQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Zha2VMb2NrOjpDRmFrZUxvY2sodm9pZCkgX19wdHI2NA0KKz8/MENGYWtlTG9ja0BAUUVBQUBYWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpDTEtSSGFzaFRhYmxlKGNsYXNzIENMS1JIYXNoVGFibGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0xLUkhhc2hUYWJsZUBAQUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkNMS1JIYXNoVGFibGUoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCBjb25zdCAgKF9fY2RlY2wqKSh2b2lkIGNvbnN0ICogX19wdHI2NCksdW5zaWduZWQgbG9uZyAoX19jZGVjbCopKHVuc2lnbmVkIF9faW50NjQpLGJvb2wgKF9fY2RlY2wqKSh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQpLHZvaWQgKF9fY2RlY2wqKSh2b2lkIGNvbnN0ICogX19wdHI2NCxpbnQpLGRvdWJsZSx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDTEtSSGFzaFRhYmxlQEBRRUFBQFBFQkRQNkE/Ql9LUEVCWEBaUDZBS19LQFpQNkFfTjMzQFpQNkFYMUhAWk5LS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZVN0YXRzOjpDTEtSSGFzaFRhYmxlU3RhdHModm9pZCkgX19wdHI2NA0KKz8/MENMS1JIYXNoVGFibGVTdGF0c0BAUUVBQUBYWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpDTEtSTGluZWFySGFzaFRhYmxlKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQUBBRUJWMEBAWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpDTEtSTGluZWFySGFzaFRhYmxlKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQgY29uc3QgIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQpLHVuc2lnbmVkIGxvbmcgKF9fY2RlY2wqKSh1bnNpZ25lZCBfX2ludDY0KSxib29sIChfX2NkZWNsKikodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KSx2b2lkIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsaW50KSxkb3VibGUsdW5zaWduZWQgbG9uZyxjbGFzcyBDTEtSSGFzaFRhYmxlICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQUFAUEVCRFA2QT9CX0tQRUJYQFpQNkFLX0tAWlA2QV9OMzNAWlA2QVgxSEBaTktQRUFWQ0xLUkhhc2hUYWJsZUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpDTEtSTGluZWFySGFzaFRhYmxlKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQgY29uc3QgIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQpLHVuc2lnbmVkIGxvbmcgKF9fY2RlY2wqKSh1bnNpZ25lZCBfX2ludDY0KSxib29sIChfX2NkZWNsKikodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KSx2b2lkIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsaW50KSxkb3VibGUsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQUBQRUJEUDZBP0JfS1BFQlhAWlA2QUtfS0BaUDZBX04zM0BaUDZBWDFIQFpOS0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIENMb2NrZWREb3VibGVMaXN0OjpDTG9ja2VkRG91YmxlTGlzdCh2b2lkKSBfX3B0cjY0DQorPz8wQ0xvY2tlZERvdWJsZUxpc3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTG9ja2VkU2luZ2xlTGlzdDo6Q0xvY2tlZFNpbmdsZUxpc3Qodm9pZCkgX19wdHI2NA0KKz8/MENMb2NrZWRTaW5nbGVMaXN0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpDUmVhZGVyV3JpdGVyTG9jazIodm9pZCkgX19wdHI2NA0KKz8/MENSZWFkZXJXcml0ZXJMb2NrMkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6Q1JlYWRlcldyaXRlckxvY2szKHZvaWQpIF9fcHRyNjQNCis/PzBDUmVhZGVyV3JpdGVyTG9jazNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6Q1JlYWRlcldyaXRlckxvY2sodm9pZCkgX19wdHI2NA0KKz8/MENSZWFkZXJXcml0ZXJMb2NrQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1NpbmdsZUxpc3Q6OkNTaW5nbGVMaXN0KHZvaWQpIF9fcHRyNjQNCis/PzBDU2luZ2xlTGlzdEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpDU21hbGxTcGluTG9jayh2b2lkKSBfX3B0cjY0DQorPz8wQ1NtYWxsU3BpbkxvY2tAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDU3BpbkxvY2s6OkNTcGluTG9jayh2b2lkKSBfX3B0cjY0DQorPz8wQ1NwaW5Mb2NrQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NyaXRTZWM6On5DQ3JpdFNlYyh2b2lkKSBfX3B0cjY0DQorPz8xQ0NyaXRTZWNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRG91YmxlTGlzdDo6fkNEb3VibGVMaXN0KHZvaWQpIF9fcHRyNjQNCis/PzFDRG91YmxlTGlzdEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENFWEF1dG9CYWNrdXBGaWxlOjp+Q0VYQXV0b0JhY2t1cEZpbGUodm9pZCkgX19wdHI2NA0KKz8/MUNFWEF1dG9CYWNrdXBGaWxlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0V4RmlsZU9wZXJhdGlvbjo6fkNFeEZpbGVPcGVyYXRpb24odm9pZCkgX19wdHI2NA0KKz8/MUNFeEZpbGVPcGVyYXRpb25AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRmFrZUxvY2s6On5DRmFrZUxvY2sodm9pZCkgX19wdHI2NA0KKz8/MUNGYWtlTG9ja0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENMS1JIYXNoVGFibGU6On5DTEtSSGFzaFRhYmxlKHZvaWQpIF9fcHRyNjQNCis/PzFDTEtSSGFzaFRhYmxlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6fkNMS1JMaW5lYXJIYXNoVGFibGUodm9pZCkgX19wdHI2NA0KKz8/MUNMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTG9ja2VkRG91YmxlTGlzdDo6fkNMb2NrZWREb3VibGVMaXN0KHZvaWQpIF9fcHRyNjQNCis/PzFDTG9ja2VkRG91YmxlTGlzdEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENMb2NrZWRTaW5nbGVMaXN0Ojp+Q0xvY2tlZFNpbmdsZUxpc3Qodm9pZCkgX19wdHI2NA0KKz8/MUNMb2NrZWRTaW5nbGVMaXN0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjp+Q1JlYWRlcldyaXRlckxvY2syKHZvaWQpIF9fcHRyNjQNCis/PzFDUmVhZGVyV3JpdGVyTG9jazJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6On5DUmVhZGVyV3JpdGVyTG9jazModm9pZCkgX19wdHI2NA0KKz8/MUNSZWFkZXJXcml0ZXJMb2NrM0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjp+Q1JlYWRlcldyaXRlckxvY2sodm9pZCkgX19wdHI2NA0KKz8/MUNSZWFkZXJXcml0ZXJMb2NrQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1NpbmdsZUxpc3Q6On5DU2luZ2xlTGlzdCh2b2lkKSBfX3B0cjY0DQorPz8xQ1NpbmdsZUxpc3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDU21hbGxTcGluTG9jazo6fkNTbWFsbFNwaW5Mb2NrKHZvaWQpIF9fcHRyNjQNCis/PzFDU21hbGxTcGluTG9ja0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTcGluTG9jazo6fkNTcGluTG9jayh2b2lkKSBfX3B0cjY0DQorPz8xQ1NwaW5Mb2NrQEBRRUFBQFhaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrQmFzZTwxLDEsMywxLDMsMj4gJiBfX3B0cjY0IF9fY2RlY2wgQ0xvY2tCYXNlPDEsMSwzLDEsMywyPjo6b3BlcmF0b3I9KGNsYXNzIENMb2NrQmFzZTwxLDEsMywxLDMsMj4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDTG9ja0Jhc2VAJDAwJDAwJDAyJDAwJDAyJDAxQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tCYXNlPDIsMSwxLDEsMywyPiAmIF9fcHRyNjQgX19jZGVjbCBDTG9ja0Jhc2U8MiwxLDEsMSwzLDI+OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tCYXNlPDIsMSwxLDEsMywyPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JENMb2NrQmFzZUAkMDEkMDAkMDAkMDAkMDIkMDFAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+ICYgX19wdHI2NCBfX2NkZWNsIENMb2NrQmFzZTwzLDEsMSwxLDEsMT46Om9wZXJhdG9yPShjbGFzcyBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ0xvY2tCYXNlQCQwMiQwMCQwMCQwMCQwMCQwMEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrQmFzZTw0LDEsMSwyLDMsMz4gJiBfX3B0cjY0IF9fY2RlY2wgQ0xvY2tCYXNlPDQsMSwxLDIsMywzPjo6b3BlcmF0b3I9KGNsYXNzIENMb2NrQmFzZTw0LDEsMSwyLDMsMz4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDTG9ja0Jhc2VAJDAzJDAwJDAwJDAxJDAyJDAyQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tCYXNlPDUsMiwyLDEsMywyPiAmIF9fcHRyNjQgX19jZGVjbCBDTG9ja0Jhc2U8NSwyLDIsMSwzLDI+OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tCYXNlPDUsMiwyLDEsMywyPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JENMb2NrQmFzZUAkMDQkMDEkMDEkMDAkMDIkMDFAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja0Jhc2U8NiwyLDIsMSwzLDI+ICYgX19wdHI2NCBfX2NkZWNsIENMb2NrQmFzZTw2LDIsMiwxLDMsMj46Om9wZXJhdG9yPShjbGFzcyBDTG9ja0Jhc2U8NiwyLDIsMSwzLDI+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ0xvY2tCYXNlQCQwNSQwMSQwMSQwMCQwMiQwMUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrQmFzZTw3LDIsMSwxLDMsMj4gJiBfX3B0cjY0IF9fY2RlY2wgQ0xvY2tCYXNlPDcsMiwxLDEsMywyPjo6b3BlcmF0b3I9KGNsYXNzIENMb2NrQmFzZTw3LDIsMSwxLDMsMj4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDTG9ja0Jhc2VAJDA2JDAxJDAwJDAwJDAyJDAxQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NyaXRTZWMgJiBfX3B0cjY0IF9fY2RlY2wgQ0NyaXRTZWM6Om9wZXJhdG9yPShjbGFzcyBDQ3JpdFNlYyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDQ3JpdFNlY0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENEb3VibGVMaXN0ICYgX19wdHI2NCBfX2NkZWNsIENEb3VibGVMaXN0OjpvcGVyYXRvcj0oY2xhc3MgQ0RvdWJsZUxpc3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0RvdWJsZUxpc3RAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRVhBdXRvQmFja3VwRmlsZSAmIF9fcHRyNjQgX19jZGVjbCBDRVhBdXRvQmFja3VwRmlsZTo6b3BlcmF0b3I9KGNsYXNzIENFWEF1dG9CYWNrdXBGaWxlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENFWEF1dG9CYWNrdXBGaWxlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0V4RmlsZU9wZXJhdGlvbiAmIF9fcHRyNjQgX19jZGVjbCBDRXhGaWxlT3BlcmF0aW9uOjpvcGVyYXRvcj0oY2xhc3MgQ0V4RmlsZU9wZXJhdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDRXhGaWxlT3BlcmF0aW9uQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0Zha2VMb2NrICYgX19wdHI2NCBfX2NkZWNsIENGYWtlTG9jazo6b3BlcmF0b3I9KGNsYXNzIENGYWtlTG9jayBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDRmFrZUxvY2tAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0xLUkhhc2hUYWJsZSAmIF9fcHRyNjQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpvcGVyYXRvcj0oY2xhc3MgQ0xLUkhhc2hUYWJsZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTEtSSGFzaFRhYmxlQEBBRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xLUkhhc2hUYWJsZVN0YXRzICYgX19wdHI2NCBfX2NkZWNsIENMS1JIYXNoVGFibGVTdGF0czo6b3BlcmF0b3I9KGNsYXNzIENMS1JIYXNoVGFibGVTdGF0cyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTEtSSGFzaFRhYmxlU3RhdHNAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSAmIF9fcHRyNjQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpvcGVyYXRvcj0oY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tlZERvdWJsZUxpc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ0xvY2tlZERvdWJsZUxpc3Q6Om9wZXJhdG9yPShjbGFzcyBDTG9ja2VkRG91YmxlTGlzdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTG9ja2VkRG91YmxlTGlzdEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrZWRTaW5nbGVMaXN0ICYgX19wdHI2NCBfX2NkZWNsIENMb2NrZWRTaW5nbGVMaXN0OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tlZFNpbmdsZUxpc3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0xvY2tlZFNpbmdsZUxpc3RAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTWRWZXJzaW9uSW5mbyAmIF9fcHRyNjQgX19jZGVjbCBDTWRWZXJzaW9uSW5mbzo6b3BlcmF0b3I9KGNsYXNzIENNZFZlcnNpb25JbmZvIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENNZFZlcnNpb25JbmZvQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1JlYWRlcldyaXRlckxvY2syICYgX19wdHI2NCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6b3BlcmF0b3I9KGNsYXNzIENSZWFkZXJXcml0ZXJMb2NrMiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDUmVhZGVyV3JpdGVyTG9jazJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUmVhZGVyV3JpdGVyTG9jazMgJiBfX3B0cjY0IF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpvcGVyYXRvcj0oY2xhc3MgQ1JlYWRlcldyaXRlckxvY2szIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENSZWFkZXJXcml0ZXJMb2NrM0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENSZWFkZXJXcml0ZXJMb2NrICYgX19wdHI2NCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpvcGVyYXRvcj0oY2xhc3MgQ1JlYWRlcldyaXRlckxvY2sgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1JlYWRlcldyaXRlckxvY2tAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU2luZ2xlTGlzdCAmIF9fcHRyNjQgX19jZGVjbCBDU2luZ2xlTGlzdDo6b3BlcmF0b3I9KGNsYXNzIENTaW5nbGVMaXN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENTaW5nbGVMaXN0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1NtYWxsU3BpbkxvY2sgJiBfX3B0cjY0IF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6Om9wZXJhdG9yPShjbGFzcyBDU21hbGxTcGluTG9jayBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDU21hbGxTcGluTG9ja0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTcGluTG9jayAmIF9fcHRyNjQgX19jZGVjbCBDU3BpbkxvY2s6Om9wZXJhdG9yPShjbGFzcyBDU3BpbkxvY2sgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1NwaW5Mb2NrQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkFwcGx5KGVudW0gTEtfQUNUSU9OICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSx2b2lkICogX19wdHI2NCxlbnVtIExLX0xPQ0tUWVBFKSBfX3B0cjY0DQorP0FwcGx5QENMS1JIYXNoVGFibGVAQFFFQUFLUDZBP0FXNExLX0FDVElPTkBAUEVCWFBFQVhAWjFXNExLX0xPQ0tUWVBFQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6QXBwbHkoZW51bSBMS19BQ1RJT04gIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpLHZvaWQgKiBfX3B0cjY0LGVudW0gTEtfTE9DS1RZUEUpIF9fcHRyNjQNCis/QXBwbHlAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQUtQNkE/QVc0TEtfQUNUSU9OQEBQRUJYUEVBWEBaMVc0TEtfTE9DS1RZUEVAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpBcHBseUlmKGVudW0gTEtfUFJFRElDQVRFICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSxlbnVtIExLX0FDVElPTiAgKF9fY2RlY2wqKSh2b2lkIGNvbnN0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCksdm9pZCAqIF9fcHRyNjQsZW51bSBMS19MT0NLVFlQRSkgX19wdHI2NA0KKz9BcHBseUlmQENMS1JIYXNoVGFibGVAQFFFQUFLUDZBP0FXNExLX1BSRURJQ0FURUBAUEVCWFBFQVhAWlA2QT9BVzRMS19BQ1RJT05AQDAxQFoxVzRMS19MT0NLVFlQRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkFwcGx5SWYoZW51bSBMS19QUkVESUNBVEUgIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpLGVudW0gTEtfQUNUSU9OICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSx2b2lkICogX19wdHI2NCxlbnVtIExLX0xPQ0tUWVBFKSBfX3B0cjY0DQorP0FwcGx5SWZAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQUtQNkE/QVc0TEtfUFJFRElDQVRFQEBQRUJYUEVBWEBaUDZBP0FXNExLX0FDVElPTkBAMDFAWjFXNExLX0xPQ0tUWVBFQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0VYQXV0b0JhY2t1cEZpbGU6OkJhY2t1cEZpbGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0JhY2t1cEZpbGVAQ0VYQXV0b0JhY2t1cEZpbGVAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZVN0YXRzOjpCdWNrZXRJbmRleChsb25nKQ0KKz9CdWNrZXRJbmRleEBDTEtSSGFzaFRhYmxlU3RhdHNAQFNBSkpAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENMS1JIYXNoVGFibGVTdGF0czo6QnVja2V0U2l6ZShsb25nKQ0KKz9CdWNrZXRTaXplQENMS1JIYXNoVGFibGVTdGF0c0BAU0FKSkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENMS1JIYXNoVGFibGVTdGF0czo6QnVja2V0U2l6ZXModm9pZCkNCis/QnVja2V0U2l6ZXNAQ0xLUkhhc2hUYWJsZVN0YXRzQEBTQVBFQkpYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpDaGVja1RhYmxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q2hlY2tUYWJsZUBDTEtSSGFzaFRhYmxlQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkNoZWNrVGFibGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9DaGVja1RhYmxlQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0NyaXRTZWM6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ0NyaXRTZWNAQFNBUEVCRFhaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENGYWtlTG9jazo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDRmFrZUxvY2tAQFNBUEVCRFhaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ0xLUkhhc2hUYWJsZUBAU0FQRUJEWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDTEtSTGluZWFySGFzaFRhYmxlQEBTQVBFQkRYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ1JlYWRlcldyaXRlckxvY2syQEBTQVBFQkRYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ1JlYWRlcldyaXRlckxvY2szQEBTQVBFQkRYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDUmVhZGVyV3JpdGVyTG9ja0BAU0FQRUJEWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ1NtYWxsU3BpbkxvY2tAQFNBUEVCRFhaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENTcGluTG9jazo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDU3BpbkxvY2tAQFNBUEVCRFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQENMS1JIYXNoVGFibGVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkNsZWFyKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQVhYWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6Q2xvc2VJdGVyYXRvcihjbGFzcyBDTEtSSGFzaFRhYmxlOjpDSXRlcmF0b3IgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0Nsb3NlSXRlcmF0b3JAQ0xLUkhhc2hUYWJsZUBAUUVBQT9BVzRMS19SRVRDT0RFQEBQRUFWQ0l0ZXJhdG9yQDFAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkNsb3NlSXRlcmF0b3IoY2xhc3MgQ0xLUkhhc2hUYWJsZTo6Q0NvbnN0SXRlcmF0b3IgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0Nsb3NlSXRlcmF0b3JAQ0xLUkhhc2hUYWJsZUBAUUVCQT9BVzRMS19SRVRDT0RFQEBQRUFWQ0NvbnN0SXRlcmF0b3JAMUBAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q2xvc2VJdGVyYXRvcihjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDSXRlcmF0b3IgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0Nsb3NlSXRlcmF0b3JAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQT9BVzRMS19SRVRDT0RFQEBQRUFWQ0l0ZXJhdG9yQDFAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkNsb3NlSXRlcmF0b3IoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q0NvbnN0SXRlcmF0b3IgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0Nsb3NlSXRlcmF0b3JAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQT9BVzRMS19SRVRDT0RFQEBQRUFWQ0NvbnN0SXRlcmF0b3JAMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NyaXRTZWM6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZEBDQ3JpdFNlY0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Zha2VMb2NrOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCkgX19wdHI2NA0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ0Zha2VMb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ0xLUkhhc2hUYWJsZUBAUUVCQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENSZWFkZXJXcml0ZXJMb2NrMkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCkgX19wdHI2NA0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ1JlYWRlcldyaXRlckxvY2szQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENSZWFkZXJXcml0ZXJMb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU21hbGxTcGluTG9jazo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENTbWFsbFNwaW5Mb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3BpbkxvY2s6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZEBDU3BpbkxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDcml0U2VjOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkgX19wdHI2NA0KKz9Db252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ0NyaXRTZWNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGYWtlTG9jazo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENGYWtlTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENMS1JIYXNoVGFibGVAQFFFQkFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDUmVhZGVyV3JpdGVyTG9jazJAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENSZWFkZXJXcml0ZXJMb2NrM0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDUmVhZGVyV3JpdGVyTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDU21hbGxTcGluTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NwaW5Mb2NrOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkgX19wdHI2NA0KKz9Db252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ1NwaW5Mb2NrQEBRRUFBWFhaDQorOyBsb25nIF9fY2RlY2wgQ3JlYXRlSG9sZGVyKHN0cnVjdCBJR1BEaXNwZW5zZXIgKiBfX3B0cjY0LGludCx1bnNpZ25lZCBpbnQsc3RydWN0IElHUEhvbGRlciAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9DcmVhdGVIb2xkZXJAQFlBSlBFQVVJR1BEaXNwZW5zZXJAQEhJUEVBUEVBVUlHUEhvbGRlckBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkRlbGV0ZUlmKGVudW0gTEtfUFJFRElDQVRFICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVJZkBDTEtSSGFzaFRhYmxlQEBRRUFBS1A2QT9BVzRMS19QUkVESUNBVEVAQFBFQlhQRUFYQFoxQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkRlbGV0ZUlmKGVudW0gTEtfUFJFRElDQVRFICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVJZkBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUFBS1A2QT9BVzRMS19QUkVESUNBVEVAQFBFQlhQRUFYQFoxQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkRlbGV0ZUtleSh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP0RlbGV0ZUtleUBDTEtSSGFzaFRhYmxlQEBRRUFBP0FXNExLX1JFVENPREVAQF9LQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkRlbGV0ZUtleSh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP0RlbGV0ZUtleUBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUFBP0FXNExLX1JFVENPREVAQF9LQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkRlbGV0ZVJlY29yZCh2b2lkIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVSZWNvcmRAQ0xLUkhhc2hUYWJsZUBAUUVBQT9BVzRMS19SRVRDT0RFQEBQRUJYQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkRlbGV0ZVJlY29yZCh2b2lkIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVSZWNvcmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQT9BVzRMS19SRVRDT0RFQEBQRUJYQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENFeEZpbGVPcGVyYXRpb246OkZPQ29weUZpbGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/Rk9Db3B5RmlsZUBDRXhGaWxlT3BlcmF0aW9uQEBRRUFBSlBFQkcwSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRXhGaWxlT3BlcmF0aW9uOjpGT0NvcHlGaWxlREFDTFModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9GT0NvcHlGaWxlREFDTFNAQ0V4RmlsZU9wZXJhdGlvbkBAUUVBQUpQRUJHMEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRXhGaWxlT3BlcmF0aW9uOjpGT0RlbGV0ZUZpbGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZPRGVsZXRlRmlsZUBDRXhGaWxlT3BlcmF0aW9uQEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0V4RmlsZU9wZXJhdGlvbjo6Rk9Nb3ZlRmlsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZPTW92ZUZpbGVAQ0V4RmlsZU9wZXJhdGlvbkBAUUVBQUpQRUJHMEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRXhGaWxlT3BlcmF0aW9uOjpGT1JlcGxhY2VGaWxlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Rk9SZXBsYWNlRmlsZUBDRXhGaWxlT3BlcmF0aW9uQEBRRUFBSlBFQkcwQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkZpbmRLZXkodW5zaWduZWQgX19pbnQ2NCx2b2lkIGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RmluZEtleUBDTEtSSGFzaFRhYmxlQEBRRUJBP0FXNExLX1JFVENPREVAQF9LUEVBUEVCWEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpGaW5kS2V5KHVuc2lnbmVkIF9faW50NjQsdm9pZCBjb25zdCAqIF9fcHRyNjQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0ZpbmRLZXlAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQT9BVzRMS19SRVRDT0RFQEBfS1BFQVBFQlhAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6RmluZFJlY29yZCh2b2lkIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9GaW5kUmVjb3JkQENMS1JIYXNoVGFibGVAQFFFQkE/QVc0TEtfUkVUQ09ERUBAUEVCWEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpGaW5kUmVjb3JkKHZvaWQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0ZpbmRSZWNvcmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQT9BVzRMS19SRVRDT0RFQEBQRUJYQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fcHRyNjQgX19jZGVjbCBDRG91YmxlTGlzdDo6Rmlyc3Qodm9pZCljb25zdCAgX19wdHI2NA0KKz9GaXJzdEBDRG91YmxlTGlzdEBAUUVCQVFFQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5ICogX19wdHI2NCBfX2NkZWNsIENMb2NrZWREb3VibGVMaXN0OjpGaXJzdCh2b2lkKSBfX3B0cjY0DQorP0ZpcnN0QENMb2NrZWREb3VibGVMaXN0QEBRRUFBUUVBVkNMaXN0RW50cnlAQFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENFWEF1dG9CYWNrdXBGaWxlOjpHZXRCYWNrdXBGaWxlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0QmFja3VwRmlsZUBDRVhBdXRvQmFja3VwRmlsZUBAUUVBQUhQRUFQRUFHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpHZXRCdWNrZXRMb2NrU3BpbkNvdW50KHZvaWQpIF9fcHRyNjQNCis/R2V0QnVja2V0TG9ja1NwaW5Db3VudEBDTEtSSGFzaFRhYmxlQEBRRUFBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6R2V0QnVja2V0TG9ja1NwaW5Db3VudCh2b2lkKSBfX3B0cjY0DQorP0dldEJ1Y2tldExvY2tTcGluQ291bnRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgQ0NyaXRTZWM6OkdldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcih2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ0NyaXRTZWNAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBDRmFrZUxvY2s6OkdldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcih2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ0Zha2VMb2NrQEBTQU5YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpHZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3Iodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENSZWFkZXJXcml0ZXJMb2NrMkBAU0FOWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUmVhZGVyV3JpdGVyTG9jazNAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUmVhZGVyV3JpdGVyTG9ja0BAU0FOWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpHZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3Iodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENTbWFsbFNwaW5Mb2NrQEBTQU5YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgQ1NwaW5Mb2NrOjpHZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3Iodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENTcGluTG9ja0BAU0FOWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ0NyaXRTZWM6OkdldERlZmF1bHRTcGluQ291bnQodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5Db3VudEBDQ3JpdFNlY0BAU0FHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ0Zha2VMb2NrOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ0Zha2VMb2NrQEBTQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OkdldERlZmF1bHRTcGluQ291bnQodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazJAQFNBR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6R2V0RGVmYXVsdFNwaW5Db3VudCh2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrM0BAU0FHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OkdldERlZmF1bHRTcGluQ291bnQodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9ja0BAU0FHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OkdldERlZmF1bHRTcGluQ291bnQodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5Db3VudEBDU21hbGxTcGluTG9ja0BAU0FHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1NwaW5Mb2NrOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ1NwaW5Mb2NrQEBTQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENDcml0U2VjOjpHZXRTcGluQ291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTcGluQ291bnRAQ0NyaXRTZWNAQFFFQkFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDRmFrZUxvY2s6OkdldFNwaW5Db3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFNwaW5Db3VudEBDRmFrZUxvY2tAQFFFQkFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OkdldFNwaW5Db3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazJAQFFFQkFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OkdldFNwaW5Db3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazNAQFFFQkFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6R2V0U3BpbkNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrQEBRRUJBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OkdldFNwaW5Db3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFNwaW5Db3VudEBDU21hbGxTcGluTG9ja0BAUUVCQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENTcGluTG9jazo6R2V0U3BpbkNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3BpbkNvdW50QENTcGluTG9ja0BAUUVCQUdYWg0KKzsgcHVibGljOiBjbGFzcyBDTEtSSGFzaFRhYmxlU3RhdHMgIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6R2V0U3RhdGlzdGljcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0YXRpc3RpY3NAQ0xLUkhhc2hUYWJsZUBAUUVCQT9BVkNMS1JIYXNoVGFibGVTdGF0c0BAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xLUkhhc2hUYWJsZVN0YXRzICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkdldFN0YXRpc3RpY3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdGF0aXN0aWNzQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkE/QVZDTEtSSGFzaFRhYmxlU3RhdHNAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6R2V0VGFibGVMb2NrU3BpbkNvdW50KHZvaWQpIF9fcHRyNjQNCis/R2V0VGFibGVMb2NrU3BpbkNvdW50QENMS1JIYXNoVGFibGVAQFFFQUFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpHZXRUYWJsZUxvY2tTcGluQ291bnQodm9pZCkgX19wdHI2NA0KKz9HZXRUYWJsZUxvY2tTcGluQ291bnRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ01kVmVyc2lvbkluZm86OkdldFZlcnNpb25FeFcoc3RydWN0IF9PU1ZFUlNJT05JTkZPVyAqIF9fcHRyNjQpDQorP0dldFZlcnNpb25FeFdAQ01kVmVyc2lvbkluZm9AQFNBSFBFQVVfT1NWRVJTSU9OSU5GT1dAQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMaXN0RW50cnkgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0RvdWJsZUxpc3Q6OkhlYWROb2RlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SGVhZE5vZGVAQ0RvdWJsZUxpc3RAQFFFQkFRRUJWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTG9ja2VkRG91YmxlTGlzdDo6SGVhZE5vZGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9IZWFkTm9kZUBDTG9ja2VkRG91YmxlTGlzdEBAUUVCQVFFQlZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6SW5jcmVtZW50SXRlcmF0b3IoY2xhc3MgQ0xLUkhhc2hUYWJsZTo6Q0l0ZXJhdG9yICogX19wdHI2NCkgX19wdHI2NA0KKz9JbmNyZW1lbnRJdGVyYXRvckBDTEtSSGFzaFRhYmxlQEBRRUFBP0FXNExLX1JFVENPREVAQFBFQVZDSXRlcmF0b3JAMUBAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6SW5jcmVtZW50SXRlcmF0b3IoY2xhc3MgQ0xLUkhhc2hUYWJsZTo6Q0NvbnN0SXRlcmF0b3IgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0luY3JlbWVudEl0ZXJhdG9yQENMS1JIYXNoVGFibGVAQFFFQkE/QVc0TEtfUkVUQ09ERUBAUEVBVkNDb25zdEl0ZXJhdG9yQDFAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkluY3JlbWVudEl0ZXJhdG9yKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNJdGVyYXRvciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5jcmVtZW50SXRlcmF0b3JAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVBQT9BVzRMS19SRVRDT0RFQEBQRUFWQ0l0ZXJhdG9yQDFAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkluY3JlbWVudEl0ZXJhdG9yKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNDb25zdEl0ZXJhdG9yICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9JbmNyZW1lbnRJdGVyYXRvckBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBP0FXNExLX1JFVENPREVAQFBFQVZDQ29uc3RJdGVyYXRvckAxQEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpJbml0aWFsaXplSXRlcmF0b3IoY2xhc3MgQ0xLUkhhc2hUYWJsZTo6Q0l0ZXJhdG9yICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0aWFsaXplSXRlcmF0b3JAQ0xLUkhhc2hUYWJsZUBAUUVBQT9BVzRMS19SRVRDT0RFQEBQRUFWQ0l0ZXJhdG9yQDFAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JIYXNoVGFibGU6OkluaXRpYWxpemVJdGVyYXRvcihjbGFzcyBDTEtSSGFzaFRhYmxlOjpDQ29uc3RJdGVyYXRvciAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUl0ZXJhdG9yQENMS1JIYXNoVGFibGVAQFFFQkE/QVc0TEtfUkVUQ09ERUBAUEVBVkNDb25zdEl0ZXJhdG9yQDFAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OkluaXRpYWxpemVJdGVyYXRvcihjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDSXRlcmF0b3IgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVJdGVyYXRvckBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUFBP0FXNExLX1JFVENPREVAQFBFQVZDSXRlcmF0b3JAMUBAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SW5pdGlhbGl6ZUl0ZXJhdG9yKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNDb25zdEl0ZXJhdG9yICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Jbml0aWFsaXplSXRlcmF0b3JAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQT9BVzRMS19SRVRDT0RFQEBQRUFWQ0NvbnN0SXRlcmF0b3JAMUBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCBfX2NkZWNsIENNZFZlcnNpb25JbmZvOjpJbml0aWFsaXplVmVyc2lvbkluZm8odm9pZCkNCis/SW5pdGlhbGl6ZVZlcnNpb25JbmZvQENNZFZlcnNpb25JbmZvQEBDQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RvdWJsZUxpc3Q6Okluc2VydEhlYWQoY2xhc3MgQ0xpc3RFbnRyeSAqIF9fcHRyNjQgY29uc3QpIF9fcHRyNjQNCis/SW5zZXJ0SGVhZEBDRG91YmxlTGlzdEBAUUVBQVhRRUFWQ0xpc3RFbnRyeUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMb2NrZWREb3VibGVMaXN0OjpJbnNlcnRIZWFkKGNsYXNzIENMaXN0RW50cnkgKiBfX3B0cjY0IGNvbnN0KSBfX3B0cjY0DQorP0luc2VydEhlYWRAQ0xvY2tlZERvdWJsZUxpc3RAQFFFQUFYUUVBVkNMaXN0RW50cnlAQEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpJbnNlcnRSZWNvcmQodm9pZCBjb25zdCAqIF9fcHRyNjQsYm9vbCkgX19wdHI2NA0KKz9JbnNlcnRSZWNvcmRAQ0xLUkhhc2hUYWJsZUBAUUVBQT9BVzRMS19SRVRDT0RFQEBQRUJYX05AWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SW5zZXJ0UmVjb3JkKHZvaWQgY29uc3QgKiBfX3B0cjY0LGJvb2wpIF9fcHRyNjQNCis/SW5zZXJ0UmVjb3JkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUE/QVc0TEtfUkVUQ09ERUBAUEVCWF9OQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENEb3VibGVMaXN0OjpJbnNlcnRUYWlsKGNsYXNzIENMaXN0RW50cnkgKiBfX3B0cjY0IGNvbnN0KSBfX3B0cjY0DQorP0luc2VydFRhaWxAQ0RvdWJsZUxpc3RAQFFFQUFYUUVBVkNMaXN0RW50cnlAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTG9ja2VkRG91YmxlTGlzdDo6SW5zZXJ0VGFpbChjbGFzcyBDTGlzdEVudHJ5ICogX19wdHI2NCBjb25zdCkgX19wdHI2NA0KKz9JbnNlcnRUYWlsQENMb2NrZWREb3VibGVMaXN0QEBRRUFBWFFFQVZDTGlzdEVudHJ5QEBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0RvdWJsZUxpc3Q6OklzRW1wdHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0VtcHR5QENEb3VibGVMaXN0QEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xvY2tlZERvdWJsZUxpc3Q6OklzRW1wdHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0VtcHR5QENMb2NrZWREb3VibGVMaXN0QEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xvY2tlZFNpbmdsZUxpc3Q6OklzRW1wdHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0VtcHR5QENMb2NrZWRTaW5nbGVMaXN0QEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NpbmdsZUxpc3Q6OklzRW1wdHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0VtcHR5QENTaW5nbGVMaXN0QEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xvY2tlZERvdWJsZUxpc3Q6OklzTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNMb2NrZWRAQ0xvY2tlZERvdWJsZUxpc3RAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTG9ja2VkU2luZ2xlTGlzdDo6SXNMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0xvY2tlZEBDTG9ja2VkU2luZ2xlTGlzdEBAUUVCQV9OWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENNZFZlcnNpb25JbmZvOjpJc01pbGxubSh2b2lkKQ0KKz9Jc01pbGxubUBDTWRWZXJzaW9uSW5mb0BAU0FIWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENDcml0U2VjOjpJc1JlYWRMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRMb2NrZWRAQ0NyaXRTZWNAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRmFrZUxvY2s6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZExvY2tlZEBDRmFrZUxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpJc1JlYWRMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRMb2NrZWRAQ0xLUkhhc2hUYWJsZUBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZExvY2tlZEBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpJc1JlYWRMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRMb2NrZWRAQ1JlYWRlcldyaXRlckxvY2syQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpJc1JlYWRMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRMb2NrZWRAQ1JlYWRlcldyaXRlckxvY2szQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZExvY2tlZEBDUmVhZGVyV3JpdGVyTG9ja0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpJc1JlYWRMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRMb2NrZWRAQ1NtYWxsU3BpbkxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU3BpbkxvY2s6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZExvY2tlZEBDU3BpbkxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDQ3JpdFNlYzo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRVbmxvY2tlZEBDQ3JpdFNlY0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENGYWtlTG9jazo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlYWRVbmxvY2tlZEBDRmFrZUxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpJc1JlYWRVbmxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZFVubG9ja2VkQENMS1JIYXNoVGFibGVAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpJc1JlYWRVbmxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZFVubG9ja2VkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OklzUmVhZFVubG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNSZWFkVW5sb2NrZWRAQ1JlYWRlcldyaXRlckxvY2syQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpJc1JlYWRVbmxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZFVubG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrM0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpJc1JlYWRVbmxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUmVhZFVubG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OklzUmVhZFVubG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNSZWFkVW5sb2NrZWRAQ1NtYWxsU3BpbkxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU3BpbkxvY2s6OklzUmVhZFVubG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNSZWFkVW5sb2NrZWRAQ1NwaW5Mb2NrQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xvY2tlZERvdWJsZUxpc3Q6OklzVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1VubG9ja2VkQENMb2NrZWREb3VibGVMaXN0QEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xvY2tlZFNpbmdsZUxpc3Q6OklzVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1VubG9ja2VkQENMb2NrZWRTaW5nbGVMaXN0QEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6SXNVc2FibGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1VzYWJsZUBDTEtSSGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SXNVc2FibGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1VzYWJsZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6SXNWYWxpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVmFsaWRAQ0xLUkhhc2hUYWJsZUBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OklzVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1ZhbGlkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFfTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDTWRWZXJzaW9uSW5mbzo6SXNXaW4yayh2b2lkKQ0KKz9Jc1dpbjJrQENNZFZlcnNpb25JbmZvQEBTQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ01kVmVyc2lvbkluZm86OklzV2luMmtvckxhdGVyKHZvaWQpDQorP0lzV2luMmtvckxhdGVyQENNZFZlcnNpb25JbmZvQEBTQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ01kVmVyc2lvbkluZm86OklzV2luOTUodm9pZCkNCis/SXNXaW45NUBDTWRWZXJzaW9uSW5mb0BAU0FIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENNZFZlcnNpb25JbmZvOjpJc1dpbjk4KHZvaWQpDQorP0lzV2luOThAQ01kVmVyc2lvbkluZm9AQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDTWRWZXJzaW9uSW5mbzo6SXNXaW45OG9yTGF0ZXIodm9pZCkNCis/SXNXaW45OG9yTGF0ZXJAQ01kVmVyc2lvbkluZm9AQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDTWRWZXJzaW9uSW5mbzo6SXNXaW45eCh2b2lkKQ0KKz9Jc1dpbjl4QENNZFZlcnNpb25JbmZvQEBTQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ01kVmVyc2lvbkluZm86OklzV2luTlQ0KHZvaWQpDQorP0lzV2luTlQ0QENNZFZlcnNpb25JbmZvQEBTQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ01kVmVyc2lvbkluZm86OklzV2luTlQodm9pZCkNCis/SXNXaW5OVEBDTWRWZXJzaW9uSW5mb0BAU0FIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENNZFZlcnNpb25JbmZvOjpJc1dpbk50NG9yTGF0ZXIodm9pZCkNCis/SXNXaW5OdDRvckxhdGVyQENNZFZlcnNpb25JbmZvQEBTQUhYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0NyaXRTZWM6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlTG9ja2VkQENDcml0U2VjQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0Zha2VMb2NrOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZUxvY2tlZEBDRmFrZUxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZUxvY2tlZEBDTEtSSGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SXNXcml0ZUxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV3JpdGVMb2NrZWRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6SXNXcml0ZUxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV3JpdGVMb2NrZWRAQ1JlYWRlcldyaXRlckxvY2syQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXcml0ZUxvY2tlZEBDUmVhZGVyV3JpdGVyTG9jazNAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6SXNXcml0ZUxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV3JpdGVMb2NrZWRAQ1JlYWRlcldyaXRlckxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU21hbGxTcGluTG9jazo6SXNXcml0ZUxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV3JpdGVMb2NrZWRAQ1NtYWxsU3BpbkxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU3BpbkxvY2s6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlTG9ja2VkQENTcGluTG9ja0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENDcml0U2VjOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ0NyaXRTZWNAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRmFrZUxvY2s6OklzV3JpdGVVbmxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV3JpdGVVbmxvY2tlZEBDRmFrZUxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ0xLUkhhc2hUYWJsZUBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OklzV3JpdGVVbmxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV3JpdGVVbmxvY2tlZEBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ1JlYWRlcldyaXRlckxvY2syQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ1JlYWRlcldyaXRlckxvY2szQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OklzV3JpdGVVbmxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV3JpdGVVbmxvY2tlZEBDUmVhZGVyV3JpdGVyTG9ja0BAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ1NtYWxsU3BpbkxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU3BpbkxvY2s6OklzV3JpdGVVbmxvY2tlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzV3JpdGVVbmxvY2tlZEBDU3BpbkxvY2tAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGNsYXNzIENMaXN0RW50cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ0RvdWJsZUxpc3Q6Okxhc3Qodm9pZCljb25zdCAgX19wdHI2NA0KKz9MYXN0QENEb3VibGVMaXN0QEBRRUJBUUVBVkNMaXN0RW50cnlAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENMaXN0RW50cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ0xvY2tlZERvdWJsZUxpc3Q6Okxhc3Qodm9pZCkgX19wdHI2NA0KKz9MYXN0QENMb2NrZWREb3VibGVMaXN0QEBRRUFBUUVBVkNMaXN0RW50cnlAQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTG9ja2VkRG91YmxlTGlzdDo6TG9jayh2b2lkKSBfX3B0cjY0DQorP0xvY2tAQ0xvY2tlZERvdWJsZUxpc3RAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMb2NrZWRTaW5nbGVMaXN0OjpMb2NrKHZvaWQpIF9fcHRyNjQNCis/TG9ja0BDTG9ja2VkU2luZ2xlTGlzdEBAUUVBQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX0xPQ0tUWVBFICBfX2NkZWNsIENMb2NrQmFzZTwxLDEsMywxLDMsMj46OkxvY2tUeXBlKHZvaWQpDQorP0xvY2tUeXBlQD8kQ0xvY2tCYXNlQCQwMCQwMCQwMiQwMCQwMiQwMUBAU0E/QVc0TE9DS19MT0NLVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19MT0NLVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8MiwxLDEsMSwzLDI+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDEkMDAkMDAkMDAkMDIkMDFAQFNBP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fY2RlY2wgQ0xvY2tCYXNlPDMsMSwxLDEsMSwxPjo6TG9ja1R5cGUodm9pZCkNCis/TG9ja1R5cGVAPyRDTG9ja0Jhc2VAJDAyJDAwJDAwJDAwJDAwJDAwQEBTQT9BVzRMT0NLX0xPQ0tUWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX0xPQ0tUWVBFICBfX2NkZWNsIENMb2NrQmFzZTw0LDEsMSwyLDMsMz46OkxvY2tUeXBlKHZvaWQpDQorP0xvY2tUeXBlQD8kQ0xvY2tCYXNlQCQwMyQwMCQwMCQwMSQwMiQwMkBAU0E/QVc0TE9DS19MT0NLVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19MT0NLVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8NSwyLDIsMSwzLDI+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDQkMDEkMDEkMDAkMDIkMDFAQFNBP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fY2RlY2wgQ0xvY2tCYXNlPDYsMiwyLDEsMywyPjo6TG9ja1R5cGUodm9pZCkNCis/TG9ja1R5cGVAPyRDTG9ja0Jhc2VAJDA1JDAxJDAxJDAwJDAyJDAxQEBTQT9BVzRMT0NLX0xPQ0tUWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX0xPQ0tUWVBFICBfX2NkZWNsIENMb2NrQmFzZTw3LDIsMSwxLDMsMj46OkxvY2tUeXBlKHZvaWQpDQorP0xvY2tUeXBlQD8kQ0xvY2tCYXNlQCQwNiQwMSQwMCQwMCQwMiQwMUBAU0E/QVc0TE9DS19MT0NLVFlQRUBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JIYXNoVGFibGU6Ok1heFNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9NYXhTaXplQENMS1JIYXNoVGFibGVAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ok1heFNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9NYXhTaXplQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFLWFoNCis7IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBNcEhlYXBDb21wYWN0KHZvaWQgKiBfX3B0cjY0KQ0KKz9NcEhlYXBDb21wYWN0QEBZQV9LUEVBWEBaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fY2RlY2wgQ0xvY2tCYXNlPDEsMSwzLDEsMywyPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDAkMDAkMDIkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fY2RlY2wgQ0xvY2tCYXNlPDIsMSwxLDEsMywyPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDEkMDAkMDAkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fY2RlY2wgQ0xvY2tCYXNlPDMsMSwxLDEsMSwxPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDIkMDAkMDAkMDAkMDAkMDBAQFNBP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fY2RlY2wgQ0xvY2tCYXNlPDQsMSwxLDIsMywzPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDMkMDAkMDAkMDEkMDIkMDJAQFNBP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fY2RlY2wgQ0xvY2tCYXNlPDUsMiwyLDEsMywyPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDQkMDEkMDEkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fY2RlY2wgQ0xvY2tCYXNlPDYsMiwyLDEsMywyPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDUkMDEkMDEkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fY2RlY2wgQ0xvY2tCYXNlPDcsMiwxLDEsMywyPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDYkMDEkMDAkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENMS1JIYXNoVGFibGU6Ok51bVN1YlRhYmxlcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP051bVN1YlRhYmxlc0BDTEtSSGFzaFRhYmxlQEBRRUJBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExLX1RBQkxFU0laRSAgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpOdW1TdWJUYWJsZXModW5zaWduZWQgbG9uZyAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpDQorP051bVN1YlRhYmxlc0BDTEtSSGFzaFRhYmxlQEBTQT9BVzRMS19UQUJMRVNJWkVAQEFFQUswQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6TnVtU3ViVGFibGVzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TnVtU3ViVGFibGVzQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTEtfVEFCTEVTSVpFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ok51bVN1YlRhYmxlcyh1bnNpZ25lZCBsb25nICYgX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCkNCis/TnVtU3ViVGFibGVzQENMS1JMaW5lYXJIYXNoVGFibGVAQFNBP0FXNExLX1RBQkxFU0laRUBAQUVBSzBAWg0KKzsgaW50IF9fY2RlY2wgT25Vbmljb2RlU3lzdGVtKHZvaWQpDQorP09uVW5pY29kZVN5c3RlbUBAWUFIWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19QRVJMT0NLX1NQSU4gIF9fY2RlY2wgQ0xvY2tCYXNlPDEsMSwzLDEsMywyPjo6UGVyTG9ja1NwaW4odm9pZCkNCis/UGVyTG9ja1NwaW5APyRDTG9ja0Jhc2VAJDAwJDAwJDAyJDAwJDAyJDAxQEBTQT9BVzRMT0NLX1BFUkxPQ0tfU1BJTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19QRVJMT0NLX1NQSU4gIF9fY2RlY2wgQ0xvY2tCYXNlPDIsMSwxLDEsMywyPjo6UGVyTG9ja1NwaW4odm9pZCkNCis/UGVyTG9ja1NwaW5APyRDTG9ja0Jhc2VAJDAxJDAwJDAwJDAwJDAyJDAxQEBTQT9BVzRMT0NLX1BFUkxPQ0tfU1BJTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19QRVJMT0NLX1NQSU4gIF9fY2RlY2wgQ0xvY2tCYXNlPDMsMSwxLDEsMSwxPjo6UGVyTG9ja1NwaW4odm9pZCkNCis/UGVyTG9ja1NwaW5APyRDTG9ja0Jhc2VAJDAyJDAwJDAwJDAwJDAwJDAwQEBTQT9BVzRMT0NLX1BFUkxPQ0tfU1BJTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19QRVJMT0NLX1NQSU4gIF9fY2RlY2wgQ0xvY2tCYXNlPDQsMSwxLDIsMywzPjo6UGVyTG9ja1NwaW4odm9pZCkNCis/UGVyTG9ja1NwaW5APyRDTG9ja0Jhc2VAJDAzJDAwJDAwJDAxJDAyJDAyQEBTQT9BVzRMT0NLX1BFUkxPQ0tfU1BJTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19QRVJMT0NLX1NQSU4gIF9fY2RlY2wgQ0xvY2tCYXNlPDUsMiwyLDEsMywyPjo6UGVyTG9ja1NwaW4odm9pZCkNCis/UGVyTG9ja1NwaW5APyRDTG9ja0Jhc2VAJDA0JDAxJDAxJDAwJDAyJDAxQEBTQT9BVzRMT0NLX1BFUkxPQ0tfU1BJTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19QRVJMT0NLX1NQSU4gIF9fY2RlY2wgQ0xvY2tCYXNlPDYsMiwyLDEsMywyPjo6UGVyTG9ja1NwaW4odm9pZCkNCis/UGVyTG9ja1NwaW5APyRDTG9ja0Jhc2VAJDA1JDAxJDAxJDAwJDAyJDAxQEBTQT9BVzRMT0NLX1BFUkxPQ0tfU1BJTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19QRVJMT0NLX1NQSU4gIF9fY2RlY2wgQ0xvY2tCYXNlPDcsMiwxLDEsMywyPjo6UGVyTG9ja1NwaW4odm9pZCkNCis/UGVyTG9ja1NwaW5APyRDTG9ja0Jhc2VAJDA2JDAxJDAwJDAwJDAyJDAxQEBTQT9BVzRMT0NLX1BFUkxPQ0tfU1BJTkBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ1NpbmdsZUxpc3RFbnRyeSAqIF9fcHRyNjQgX19jZGVjbCBDTG9ja2VkU2luZ2xlTGlzdDo6UG9wKHZvaWQpIF9fcHRyNjQNCis/UG9wQENMb2NrZWRTaW5nbGVMaXN0QEBRRUFBUUVBVkNTaW5nbGVMaXN0RW50cnlAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENTaW5nbGVMaXN0RW50cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ1NpbmdsZUxpc3Q6OlBvcCh2b2lkKSBfX3B0cjY0DQorP1BvcEBDU2luZ2xlTGlzdEBAUUVBQVFFQVZDU2luZ2xlTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6UHJpbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9QcmludEBDTEtSSGFzaFRhYmxlQEBRRUJBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpQcmludCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1ByaW50QENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQkFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMb2NrZWRTaW5nbGVMaXN0OjpQdXNoKGNsYXNzIENTaW5nbGVMaXN0RW50cnkgKiBfX3B0cjY0IGNvbnN0KSBfX3B0cjY0DQorP1B1c2hAQ0xvY2tlZFNpbmdsZUxpc3RAQFFFQUFYUUVBVkNTaW5nbGVMaXN0RW50cnlAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU2luZ2xlTGlzdDo6UHVzaChjbGFzcyBDU2luZ2xlTGlzdEVudHJ5ICogX19wdHI2NCBjb25zdCkgX19wdHI2NA0KKz9QdXNoQENTaW5nbGVMaXN0QEBRRUFBWFFFQVZDU2luZ2xlTGlzdEVudHJ5QEBAWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1FVRVVFX1RZUEUgIF9fY2RlY2wgQ0xvY2tCYXNlPDEsMSwzLDEsMywyPjo6UXVldWVUeXBlKHZvaWQpDQorP1F1ZXVlVHlwZUA/JENMb2NrQmFzZUAkMDAkMDAkMDIkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUVVFVUVfVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19RVUVVRV9UWVBFICBfX2NkZWNsIENMb2NrQmFzZTwyLDEsMSwxLDMsMj46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDAxJDAwJDAwJDAwJDAyJDAxQEBTQT9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+OjpRdWV1ZVR5cGUodm9pZCkNCis/UXVldWVUeXBlQD8kQ0xvY2tCYXNlQCQwMiQwMCQwMCQwMCQwMCQwMEBAU0E/QVc0TE9DS19RVUVVRV9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1FVRVVFX1RZUEUgIF9fY2RlY2wgQ0xvY2tCYXNlPDQsMSwxLDIsMywzPjo6UXVldWVUeXBlKHZvaWQpDQorP1F1ZXVlVHlwZUA/JENMb2NrQmFzZUAkMDMkMDAkMDAkMDEkMDIkMDJAQFNBP0FXNExPQ0tfUVVFVUVfVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19RVUVVRV9UWVBFICBfX2NkZWNsIENMb2NrQmFzZTw1LDIsMiwxLDMsMj46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDA0JDAxJDAxJDAwJDAyJDAxQEBTQT9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8NiwyLDIsMSwzLDI+OjpRdWV1ZVR5cGUodm9pZCkNCis/UXVldWVUeXBlQD8kQ0xvY2tCYXNlQCQwNSQwMSQwMSQwMCQwMiQwMUBAU0E/QVc0TE9DS19RVUVVRV9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1FVRVVFX1RZUEUgIF9fY2RlY2wgQ0xvY2tCYXNlPDcsMiwxLDEsMywyPjo6UXVldWVUeXBlKHZvaWQpDQorP1F1ZXVlVHlwZUA/JENMb2NrQmFzZUAkMDYkMDEkMDAkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUVVFVUVfVFlQRUBAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDcml0U2VjOjpSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRMb2NrQENDcml0U2VjQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmFrZUxvY2s6OlJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZExvY2tAQ0Zha2VMb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpSZWFkTG9jayh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1JlYWRMb2NrQENMS1JIYXNoVGFibGVAQFFFQkFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OlJlYWRMb2NrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UmVhZExvY2tAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRMb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRMb2NrQENSZWFkZXJXcml0ZXJMb2NrM0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OlJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRMb2NrQENTbWFsbFNwaW5Mb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3BpbkxvY2s6OlJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZExvY2tAQ1NwaW5Mb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDQ3JpdFNlYzo6UmVhZE9yV3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZE9yV3JpdGVMb2NrQENDcml0U2VjQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0Zha2VMb2NrOjpSZWFkT3JXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9SZWFkT3JXcml0ZUxvY2tAQ0Zha2VMb2NrQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpSZWFkT3JXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9SZWFkT3JXcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NwaW5Mb2NrOjpSZWFkT3JXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9SZWFkT3JXcml0ZUxvY2tAQ1NwaW5Mb2NrQEBRRUFBX05YWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NyaXRTZWM6OlJlYWRPcldyaXRlVW5sb2NrKGJvb2wpIF9fcHRyNjQNCis/UmVhZE9yV3JpdGVVbmxvY2tAQ0NyaXRTZWNAQFFFQUFYX05AWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Zha2VMb2NrOjpSZWFkT3JXcml0ZVVubG9jayhib29sKSBfX3B0cjY0DQorP1JlYWRPcldyaXRlVW5sb2NrQENGYWtlTG9ja0BAUUVBQVhfTkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OlJlYWRPcldyaXRlVW5sb2NrKGJvb2wpIF9fcHRyNjQNCis/UmVhZE9yV3JpdGVVbmxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRRUFBWF9OQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTcGluTG9jazo6UmVhZE9yV3JpdGVVbmxvY2soYm9vbCkgX19wdHI2NA0KKz9SZWFkT3JXcml0ZVVubG9ja0BDU3BpbkxvY2tAQFFFQUFYX05AWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NyaXRTZWM6OlJlYWRVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9SZWFkVW5sb2NrQENDcml0U2VjQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmFrZUxvY2s6OlJlYWRVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9SZWFkVW5sb2NrQENGYWtlTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6UmVhZFVubG9jayh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1JlYWRVbmxvY2tAQ0xLUkhhc2hUYWJsZUBAUUVCQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6UmVhZFVubG9jayh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1JlYWRVbmxvY2tAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpSZWFkVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZFVubG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6UmVhZFVubG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRVbmxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6UmVhZFVubG9jayh2b2lkKSBfX3B0cjY0DQorP1JlYWRVbmxvY2tAQ1JlYWRlcldyaXRlckxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpSZWFkVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZFVubG9ja0BDU21hbGxTcGluTG9ja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NwaW5Mb2NrOjpSZWFkVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/UmVhZFVubG9ja0BDU3BpbkxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SRUNVUlNJT04gIF9fY2RlY2wgQ0xvY2tCYXNlPDEsMSwzLDEsMywyPjo6UmVjdXJzaW9uKHZvaWQpDQorP1JlY3Vyc2lvbkA/JENMb2NrQmFzZUAkMDAkMDAkMDIkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUkVDVVJTSU9OQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JFQ1VSU0lPTiAgX19jZGVjbCBDTG9ja0Jhc2U8MiwxLDEsMSwzLDI+OjpSZWN1cnNpb24odm9pZCkNCis/UmVjdXJzaW9uQD8kQ0xvY2tCYXNlQCQwMSQwMCQwMCQwMCQwMiQwMUBAU0E/QVc0TE9DS19SRUNVUlNJT05AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUkVDVVJTSU9OICBfX2NkZWNsIENMb2NrQmFzZTwzLDEsMSwxLDEsMT46OlJlY3Vyc2lvbih2b2lkKQ0KKz9SZWN1cnNpb25APyRDTG9ja0Jhc2VAJDAyJDAwJDAwJDAwJDAwJDAwQEBTQT9BVzRMT0NLX1JFQ1VSU0lPTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SRUNVUlNJT04gIF9fY2RlY2wgQ0xvY2tCYXNlPDQsMSwxLDIsMywzPjo6UmVjdXJzaW9uKHZvaWQpDQorP1JlY3Vyc2lvbkA/JENMb2NrQmFzZUAkMDMkMDAkMDAkMDEkMDIkMDJAQFNBP0FXNExPQ0tfUkVDVVJTSU9OQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JFQ1VSU0lPTiAgX19jZGVjbCBDTG9ja0Jhc2U8NSwyLDIsMSwzLDI+OjpSZWN1cnNpb24odm9pZCkNCis/UmVjdXJzaW9uQD8kQ0xvY2tCYXNlQCQwNCQwMSQwMSQwMCQwMiQwMUBAU0E/QVc0TE9DS19SRUNVUlNJT05AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUkVDVVJTSU9OICBfX2NkZWNsIENMb2NrQmFzZTw2LDIsMiwxLDMsMj46OlJlY3Vyc2lvbih2b2lkKQ0KKz9SZWN1cnNpb25APyRDTG9ja0Jhc2VAJDA1JDAxJDAxJDAwJDAyJDAxQEBTQT9BVzRMT0NLX1JFQ1VSU0lPTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SRUNVUlNJT04gIF9fY2RlY2wgQ0xvY2tCYXNlPDcsMiwxLDEsMywyPjo6UmVjdXJzaW9uKHZvaWQpDQorP1JlY3Vyc2lvbkA/JENMb2NrQmFzZUAkMDYkMDEkMDAkMDAkMDIkMDFAQFNBP0FXNExPQ0tfUkVDVVJTSU9OQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENNZFZlcnNpb25JbmZvOjpSZWxlYXNlVmVyc2lvbkluZm8odm9pZCkNCis/UmVsZWFzZVZlcnNpb25JbmZvQENNZFZlcnNpb25JbmZvQEBTQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENEb3VibGVMaXN0OjpSZW1vdmVFbnRyeShjbGFzcyBDTGlzdEVudHJ5ICogX19wdHI2NCBjb25zdCkNCis/UmVtb3ZlRW50cnlAQ0RvdWJsZUxpc3RAQFNBWFFFQVZDTGlzdEVudHJ5QEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xvY2tlZERvdWJsZUxpc3Q6OlJlbW92ZUVudHJ5KGNsYXNzIENMaXN0RW50cnkgKiBfX3B0cjY0IGNvbnN0KSBfX3B0cjY0DQorP1JlbW92ZUVudHJ5QENMb2NrZWREb3VibGVMaXN0QEBRRUFBWFFFQVZDTGlzdEVudHJ5QEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5ICogX19wdHI2NCBfX2NkZWNsIENEb3VibGVMaXN0OjpSZW1vdmVIZWFkKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlSGVhZEBDRG91YmxlTGlzdEBAUUVBQVFFQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5ICogX19wdHI2NCBfX2NkZWNsIENMb2NrZWREb3VibGVMaXN0OjpSZW1vdmVIZWFkKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlSGVhZEBDTG9ja2VkRG91YmxlTGlzdEBAUUVBQVFFQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5ICogX19wdHI2NCBfX2NkZWNsIENEb3VibGVMaXN0OjpSZW1vdmVUYWlsKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlVGFpbEBDRG91YmxlTGlzdEBAUUVBQVFFQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5ICogX19wdHI2NCBfX2NkZWNsIENMb2NrZWREb3VibGVMaXN0OjpSZW1vdmVUYWlsKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlVGFpbEBDTG9ja2VkRG91YmxlTGlzdEBAUUVBQVFFQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0VYQXV0b0JhY2t1cEZpbGU6OlJlc3RvcmVGaWxlKHZvaWQpIF9fcHRyNjQNCis/UmVzdG9yZUZpbGVAQ0VYQXV0b0JhY2t1cEZpbGVAQFFFQUFKWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMS1JIYXNoVGFibGU6OlNldEJ1Y2tldExvY2tTcGluQ291bnQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0QnVja2V0TG9ja1NwaW5Db3VudEBDTEtSSGFzaFRhYmxlQEBRRUFBWEdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6U2V0QnVja2V0TG9ja1NwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZXRCdWNrZXRMb2NrU3BpbkNvdW50QENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUFYR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ0NyaXRTZWM6OlNldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcihkb3VibGUpDQorP1NldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDQ3JpdFNlY0BAU0FYTkBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ0Zha2VMb2NrOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ0Zha2VMb2NrQEBTQVhOQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OlNldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcihkb3VibGUpDQorP1NldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUmVhZGVyV3JpdGVyTG9jazJAQFNBWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKGRvdWJsZSkNCis/U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENSZWFkZXJXcml0ZXJMb2NrM0BAU0FYTkBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OlNldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcihkb3VibGUpDQorP1NldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUmVhZGVyV3JpdGVyTG9ja0BAU0FYTkBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OlNldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcihkb3VibGUpDQorP1NldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDU21hbGxTcGluTG9ja0BAU0FYTkBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1NwaW5Mb2NrOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1NwaW5Mb2NrQEBTQVhOQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDQ3JpdFNlYzo6U2V0RGVmYXVsdFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0RGVmYXVsdFNwaW5Db3VudEBDQ3JpdFNlY0BAU0FYR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ0Zha2VMb2NrOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENGYWtlTG9ja0BAU0FYR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrMkBAU0FYR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrM0BAU0FYR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OlNldERlZmF1bHRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldERlZmF1bHRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2tAQFNBWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENTbWFsbFNwaW5Mb2NrQEBTQVhHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDU3BpbkxvY2s6OlNldERlZmF1bHRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldERlZmF1bHRTcGluQ291bnRAQ1NwaW5Mb2NrQEBTQVhHQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENDcml0U2VjOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0U3BpbkNvdW50QENDcml0U2VjQEBRRUFBX05HQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ3JpdFNlYzo6U2V0U3BpbkNvdW50KGNsYXNzIENDcml0aWNhbFNlY3Rpb24gKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKQ0KKz9TZXRTcGluQ291bnRAQ0NyaXRTZWNAQFNBS1BFQVBFQVZDQ3JpdGljYWxTZWN0aW9uQEBLQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENGYWtlTG9jazo6U2V0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1NldFNwaW5Db3VudEBDRmFrZUxvY2tAQFFFQUFfTkdAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrMkBAUUVBQV9OR0BaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OlNldFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZXRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2szQEBRRUFBX05HQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrQEBRRUFBX05HQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0U3BpbkNvdW50QENTbWFsbFNwaW5Mb2NrQEBRRUFBX05HQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTcGluTG9jazo6U2V0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1NldFNwaW5Db3VudEBDU3BpbkxvY2tAQFFFQUFfTkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6U2V0VGFibGVMb2NrU3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1NldFRhYmxlTG9ja1NwaW5Db3VudEBDTEtSSGFzaFRhYmxlQEBRRUFBWEdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6U2V0VGFibGVMb2NrU3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1NldFRhYmxlTG9ja1NwaW5Db3VudEBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUFBWEdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1NpemVAQ0xLUkhhc2hUYWJsZUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1NpemVAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQUtYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0NyaXRTZWM6OlRyeVJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/VHJ5UmVhZExvY2tAQ0NyaXRTZWNAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRmFrZUxvY2s6OlRyeVJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/VHJ5UmVhZExvY2tAQ0Zha2VMb2NrQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpUcnlSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVJlYWRMb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAUUVBQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6VHJ5UmVhZExvY2sodm9pZCkgX19wdHI2NA0KKz9UcnlSZWFkTG9ja0BDUmVhZGVyV3JpdGVyTG9jazNAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6VHJ5UmVhZExvY2sodm9pZCkgX19wdHI2NA0KKz9UcnlSZWFkTG9ja0BDUmVhZGVyV3JpdGVyTG9ja0BAUUVBQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpUcnlSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVJlYWRMb2NrQENTbWFsbFNwaW5Mb2NrQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NwaW5Mb2NrOjpUcnlSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVJlYWRMb2NrQENTcGluTG9ja0BAUUVBQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENDcml0U2VjOjpUcnlXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9UcnlXcml0ZUxvY2tAQ0NyaXRTZWNAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRmFrZUxvY2s6OlRyeVdyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVdyaXRlTG9ja0BDRmFrZUxvY2tAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6OlRyeVdyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVdyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6OlRyeVdyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVdyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9jazNAQFFFQUFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6VHJ5V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/VHJ5V3JpdGVMb2NrQENSZWFkZXJXcml0ZXJMb2NrQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6OlRyeVdyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVdyaXRlTG9ja0BDU21hbGxTcGluTG9ja0BAUUVBQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTcGluTG9jazo6VHJ5V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/VHJ5V3JpdGVMb2NrQENTcGluTG9ja0BAUUVBQV9OWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENFWEF1dG9CYWNrdXBGaWxlOjpVbmRvQmFja3VwKHZvaWQpIF9fcHRyNjQNCis/VW5kb0JhY2t1cEBDRVhBdXRvQmFja3VwRmlsZUBAUUVBQUpYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xvY2tlZERvdWJsZUxpc3Q6OlVubG9jayh2b2lkKSBfX3B0cjY0DQorP1VubG9ja0BDTG9ja2VkRG91YmxlTGlzdEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xvY2tlZFNpbmdsZUxpc3Q6OlVubG9jayh2b2lkKSBfX3B0cjY0DQorP1VubG9ja0BDTG9ja2VkU2luZ2xlTGlzdEBAUUVBQVhYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkhhc2hUYWJsZTo6VmFsaWRTaWduYXR1cmUodm9pZCljb25zdCAgX19wdHI2NA0KKz9WYWxpZFNpZ25hdHVyZUBDTEtSSGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6VmFsaWRTaWduYXR1cmUodm9pZCljb25zdCAgX19wdHI2NA0KKz9WYWxpZFNpZ25hdHVyZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRRUJBX05YWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8MSwxLDMsMSwzLDI+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDAkMDAkMDIkMDAkMDIkMDFAQFNBP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8MiwxLDEsMSwzLDI+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDEkMDAkMDAkMDAkMDIkMDFAQFNBP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDIkMDAkMDAkMDAkMDAkMDBAQFNBP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8NCwxLDEsMiwzLDM+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDMkMDAkMDAkMDEkMDIkMDJAQFNBP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8NSwyLDIsMSwzLDI+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDQkMDEkMDEkMDAkMDIkMDFAQFNBP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8NiwyLDIsMSwzLDI+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDUkMDEkMDEkMDAkMDIkMDFAQFNBP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19jZGVjbCBDTG9ja0Jhc2U8NywyLDEsMSwzLDI+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDYkMDEkMDAkMDAkMDIkMDFAQFNBP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NyaXRTZWM6OldyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlTG9ja0BDQ3JpdFNlY0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Zha2VMb2NrOjpXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9Xcml0ZUxvY2tAQ0Zha2VMb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9Xcml0ZUxvY2tAQ0xLUkhhc2hUYWJsZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVMb2NrQENMS1JMaW5lYXJIYXNoVGFibGVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVMb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpXcml0ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9Xcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVMb2NrQENSZWFkZXJXcml0ZXJMb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU21hbGxTcGluTG9jazo6V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVMb2NrQENTbWFsbFNwaW5Mb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3BpbkxvY2s6OldyaXRlTG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlTG9ja0BDU3BpbkxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDcml0U2VjOjpXcml0ZVVubG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlVW5sb2NrQENDcml0U2VjQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmFrZUxvY2s6OldyaXRlVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVVbmxvY2tAQ0Zha2VMb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpXcml0ZVVubG9jayh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1dyaXRlVW5sb2NrQENMS1JIYXNoVGFibGVAQFFFQkFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6OldyaXRlVW5sb2NrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/V3JpdGVVbmxvY2tAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUVCQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2syOjpXcml0ZVVubG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlVW5sb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpXcml0ZVVubG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlVW5sb2NrQENSZWFkZXJXcml0ZXJMb2NrM0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6OldyaXRlVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVVbmxvY2tAQ1JlYWRlcldyaXRlckxvY2tAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTbWFsbFNwaW5Mb2NrOjpXcml0ZVVubG9jayh2b2lkKSBfX3B0cjY0DQorP1dyaXRlVW5sb2NrQENTbWFsbFNwaW5Mb2NrQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3BpbkxvY2s6OldyaXRlVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVVbmxvY2tAQ1NwaW5Mb2NrQEBRRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0FkZFJlZlJlY29yZCh2b2lkIGNvbnN0ICogX19wdHI2NCxpbnQpY29uc3QgIF9fcHRyNjQNCis/X0FkZFJlZlJlY29yZEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBWFBFQlhIQFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDTm9kZUNsdW1wICogX19wdHI2NCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9BbGxvY2F0ZU5vZGVDbHVtcCh2b2lkKQ0KKz9fQWxsb2NhdGVOb2RlQ2x1bXBAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQ0FRRUFWQ05vZGVDbHVtcEAxQFhaDQorOyBwcml2YXRlOiBjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDU2VnbWVudCAqIF9fcHRyNjQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQWxsb2NhdGVTZWdtZW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X0FsbG9jYXRlU2VnbWVudEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBUUVBVkNTZWdtZW50QDFAWFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDRGlyRW50cnkgKiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0FsbG9jYXRlU2VnbWVudERpcmVjdG9yeSh1bnNpZ25lZCBfX2ludDY0KQ0KKz9fQWxsb2NhdGVTZWdtZW50RGlyZWN0b3J5QENMS1JMaW5lYXJIYXNoVGFibGVAQENBUUVBVkNEaXJFbnRyeUAxQF9LQFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlICogX19wdHI2NCBfX2NkZWNsIENMS1JIYXNoVGFibGU6Ol9BbGxvY2F0ZVN1YlRhYmxlKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQgY29uc3QgIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQpLHVuc2lnbmVkIGxvbmcgKF9fY2RlY2wqKSh1bnNpZ25lZCBfX2ludDY0KSxib29sIChfX2NkZWNsKikodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KSx2b2lkIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsaW50KSxkb3VibGUsdW5zaWduZWQgbG9uZyxjbGFzcyBDTEtSSGFzaFRhYmxlICogX19wdHI2NCkNCis/X0FsbG9jYXRlU3ViVGFibGVAQ0xLUkhhc2hUYWJsZUBAQ0FRRUFWQ0xLUkxpbmVhckhhc2hUYWJsZUBAUEVCRFA2QT9CX0tQRUJYQFpQNkFLX0tAWlA2QV9OMzNAWlA2QVgxSEBaTktQRUFWMUBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGUgKiBfX3B0cjY0ICogX19wdHI2NCBfX2NkZWNsIENMS1JIYXNoVGFibGU6Ol9BbGxvY2F0ZVN1YlRhYmxlQXJyYXkodW5zaWduZWQgX19pbnQ2NCkNCis/X0FsbG9jYXRlU3ViVGFibGVBcnJheUBDTEtSSGFzaFRhYmxlQEBDQVFFQVBFQVZDTEtSTGluZWFySGFzaFRhYmxlQEBfS0BaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0FwcGx5KGVudW0gTEtfQUNUSU9OICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSx2b2lkICogX19wdHI2NCxlbnVtIExLX0xPQ0tUWVBFLGVudW0gTEtfUFJFRElDQVRFICYgX19wdHI2NCkgX19wdHI2NA0KKz9fQXBwbHlAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQUtQNkE/QVc0TEtfQUNUSU9OQEBQRUJYUEVBWEBaMVc0TEtfTE9DS1RZUEVAQEFFQVc0TEtfUFJFRElDQVRFQEBAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9BcHBseUlmKGVudW0gTEtfUFJFRElDQVRFICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSxlbnVtIExLX0FDVElPTiAgKF9fY2RlY2wqKSh2b2lkIGNvbnN0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCksdm9pZCAqIF9fcHRyNjQsZW51bSBMS19MT0NLVFlQRSxlbnVtIExLX1BSRURJQ0FURSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/X0FwcGx5SWZAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQUtQNkE/QVc0TEtfUFJFRElDQVRFQEBQRUJYUEVBWEBaUDZBP0FXNExLX0FDVElPTkBAMDFAWjFXNExLX0xPQ0tUWVBFQEBBRUFXNDJAQFoNCis7IHByaXZhdGU6IGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNCdWNrZXQgKiBfX3B0cjY0IF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0J1Y2tldCh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP19CdWNrZXRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVCQVBFQVZDQnVja2V0QDFAS0BaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0J1Y2tldEFkZHJlc3ModW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9fQnVja2V0QWRkcmVzc0BDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBS0tAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JIYXNoVGFibGU6Ol9DYWxjS2V5SGFzaCh1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP19DYWxjS2V5SGFzaEBDTEtSSGFzaFRhYmxlQEBBRUJBS19LQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQ2FsY0tleUhhc2godW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9fQ2FsY0tleUhhc2hAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVCQUtfS0BaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0NsZWFyKGJvb2wpIF9fcHRyNjQNCis/X0NsZWFyQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQUFYX05AWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9DbG9zZUl0ZXJhdG9yKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNJdGVyYXRvciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/X0Nsb3NlSXRlcmF0b3JAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQT9BVzRMS19SRVRDT0RFQEBQRUFWQ0l0ZXJhdG9yQDFAQFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6Ol9DbXBFeGNoKGxvbmcsbG9uZykgX19wdHI2NA0KKz9fQ21wRXhjaEBDUmVhZGVyV3JpdGVyTG9jazJAQEFFQUFfTkpKQFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9DbXBFeGNoKGxvbmcsbG9uZykgX19wdHI2NA0KKz9fQ21wRXhjaEBDUmVhZGVyV3JpdGVyTG9jazNAQEFFQUFfTkpKQFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6X0NtcEV4Y2gobG9uZyxsb25nKSBfX3B0cjY0DQorP19DbXBFeGNoQENSZWFkZXJXcml0ZXJMb2NrQEBBRUFBX05KSkBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0NvbnRyYWN0KHZvaWQpIF9fcHRyNjQNCis/X0NvbnRyYWN0QENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQUE/QVc0TEtfUkVUQ09ERUBAWFoNCis7IHByaXZhdGU6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpfQ3VycmVudFRocmVhZElkKHZvaWQpDQorP19DdXJyZW50VGhyZWFkSWRAQ1JlYWRlcldyaXRlckxvY2szQEBDQUpYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGxvbmcgX19jZGVjbCBDU21hbGxTcGluTG9jazo6X0N1cnJlbnRUaHJlYWRJZCh2b2lkKQ0KKz9fQ3VycmVudFRocmVhZElkQENTbWFsbFNwaW5Mb2NrQEBDQUpYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGxvbmcgX19jZGVjbCBDU3BpbkxvY2s6Ol9DdXJyZW50VGhyZWFkSWQodm9pZCkNCis/X0N1cnJlbnRUaHJlYWRJZEBDU3BpbkxvY2tAQENBSlhaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0RlbGV0ZUlmKGVudW0gTEtfUFJFRElDQVRFICAoX19jZGVjbCopKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSx2b2lkICogX19wdHI2NCxlbnVtIExLX1BSRURJQ0FURSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/X0RlbGV0ZUlmQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQUFLUDZBP0FXNExLX1BSRURJQ0FURUBAUEVCWFBFQVhAWjFBRUFXNDJAQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRGVsZXRlS2V5KHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9fRGVsZXRlS2V5QENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQUE/QVc0TEtfUkVUQ09ERUBAX0tLQFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRGVsZXRlTm9kZShjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDQnVja2V0ICogX19wdHI2NCxjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDTm9kZUNsdW1wICogX19wdHI2NCAmIF9fcHRyNjQsY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q05vZGVDbHVtcCAqIF9fcHRyNjQgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/X0RlbGV0ZU5vZGVAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQV9OUEVBVkNCdWNrZXRAMUBBRUFQRUFWQ05vZGVDbHVtcEAxQDFBRUFIQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRGVsZXRlUmVjb3JkKHZvaWQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/X0RlbGV0ZVJlY29yZEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBP0FXNExLX1JFVENPREVAQFBFQlhLQFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRXF1YWxLZXlzKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9fRXF1YWxLZXlzQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQkFfTl9LMEBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0V4cGFuZCh2b2lkKSBfX3B0cjY0DQorP19FeHBhbmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQT9BVzRMS19SRVRDT0RFQEBYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgX19pbnQ2NCBjb25zdCAgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpfRXh0cmFjdEtleSh2b2lkIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9fRXh0cmFjdEtleUBDTEtSSGFzaFRhYmxlQEBBRUJBP0JfS1BFQlhAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgX19pbnQ2NCBjb25zdCAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRXh0cmFjdEtleSh2b2lkIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9fRXh0cmFjdEtleUBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBP0JfS1BFQlhAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q0J1Y2tldCAqIF9fcHRyNjQgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRmluZEJ1Y2tldCh1bnNpZ25lZCBsb25nLGJvb2wpY29uc3QgIF9fcHRyNjQNCis/X0ZpbmRCdWNrZXRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVCQVBFQVZDQnVja2V0QDFAS19OQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRmluZEtleSh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIGxvbmcsdm9pZCBjb25zdCAqIF9fcHRyNjQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP19GaW5kS2V5QENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQkE/QVc0TEtfUkVUQ09ERUBAX0tLUEVBUEVCWEBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0ZpbmRSZWNvcmQodm9pZCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9fRmluZFJlY29yZEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBP0FXNExLX1JFVENPREVAQFBFQlhLQFoNCis7IHByaXZhdGU6IHN0YXRpYyBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0ZyZWVOb2RlQ2x1bXAoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q05vZGVDbHVtcCAqIF9fcHRyNjQpDQorP19GcmVlTm9kZUNsdW1wQENMS1JMaW5lYXJIYXNoVGFibGVAQENBX05QRUFWQ05vZGVDbHVtcEAxQEBaDQorOyBwcml2YXRlOiBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0ZyZWVTZWdtZW50KGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNTZWdtZW50ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9fRnJlZVNlZ21lbnRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVCQV9OUEVBVkNTZWdtZW50QDFAQFoNCis7IHByaXZhdGU6IHN0YXRpYyBib29sIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0ZyZWVTZWdtZW50RGlyZWN0b3J5KGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNEaXJFbnRyeSAqIF9fcHRyNjQpDQorP19GcmVlU2VnbWVudERpcmVjdG9yeUBDTEtSTGluZWFySGFzaFRhYmxlQEBDQV9OUEVBVkNEaXJFbnRyeUAxQEBaDQorOyBwcml2YXRlOiBzdGF0aWMgYm9vbCBfX2NkZWNsIENMS1JIYXNoVGFibGU6Ol9GcmVlU3ViVGFibGUoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSAqIF9fcHRyNjQpDQorP19GcmVlU3ViVGFibGVAQ0xLUkhhc2hUYWJsZUBAQ0FfTlBFQVZDTEtSTGluZWFySGFzaFRhYmxlQEBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGJvb2wgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpfRnJlZVN1YlRhYmxlQXJyYXkoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9fRnJlZVN1YlRhYmxlQXJyYXlAQ0xLUkhhc2hUYWJsZUBAQ0FfTlBFQVBFQVZDTEtSTGluZWFySGFzaFRhYmxlQEBAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9IMCh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP19IMEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBS0tAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSDAodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9fSDBAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQ0FLS0tAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9IMSh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP19IMUBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBS0tAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSDEodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9fSDFAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQ0FLS0tAWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9Jbml0aWFsaXplKHVuc2lnbmVkIF9faW50NjQgY29uc3QgIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQpLHVuc2lnbmVkIGxvbmcgKF9fY2RlY2wqKSh1bnNpZ25lZCBfX2ludDY0KSxib29sIChfX2NkZWNsKikodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KSx2b2lkIChfX2NkZWNsKikodm9pZCBjb25zdCAqIF9fcHRyNjQsaW50KSxjaGFyIGNvbnN0ICogX19wdHI2NCxkb3VibGUsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9fSW5pdGlhbGl6ZUBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBP0FXNExLX1JFVENPREVAQFA2QT9CX0tQRUJYQFpQNkFLX0tAWlA2QV9OMjJAWlA2QVgwSEBaUEVCRE5LQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSW5pdGlhbGl6ZUl0ZXJhdG9yKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNJdGVyYXRvciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/X0luaXRpYWxpemVJdGVyYXRvckBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBP0FXNExLX1JFVENPREVAQFBFQVZDSXRlcmF0b3JAMUBAWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9JbnNlcnRSZWNvcmQodm9pZCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxib29sKSBfX3B0cjY0DQorP19JbnNlcnRSZWNvcmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQT9BVzRMS19SRVRDT0RFQEBQRUJYS19OQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpfSW5zZXJ0VGhpc0ludG9HbG9iYWxMaXN0KHZvaWQpIF9fcHRyNjQNCis/X0luc2VydFRoaXNJbnRvR2xvYmFsTGlzdEBDTEtSSGFzaFRhYmxlQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0luc2VydFRoaXNJbnRvR2xvYmFsTGlzdCh2b2lkKSBfX3B0cjY0DQorP19JbnNlcnRUaGlzSW50b0dsb2JhbExpc3RAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENTcGluTG9jazo6X0lzTG9ja2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X0lzTG9ja2VkQENTcGluTG9ja0BAQUVCQV9OWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9Jc05vZGVDb21wYWN0KGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNCdWNrZXQgKiBfX3B0cjY0IGNvbnN0KWNvbnN0ICBfX3B0cjY0DQorP19Jc05vZGVDb21wYWN0QENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQkFIUUVBVkNCdWNrZXRAMUBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENTcGluTG9jazo6X0xvY2sodm9pZCkgX19wdHI2NA0KKz9fTG9ja0BDU3BpbkxvY2tAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6Ol9Mb2NrU3Bpbihib29sKSBfX3B0cjY0DQorP19Mb2NrU3BpbkBDUmVhZGVyV3JpdGVyTG9jazJAQEFFQUFYX05AWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6X0xvY2tTcGluKGVudW0gQ1JlYWRlcldyaXRlckxvY2szOjpTUElOX1RZUEUpIF9fcHRyNjQNCis/X0xvY2tTcGluQENSZWFkZXJXcml0ZXJMb2NrM0BAQUVBQVhXNFNQSU5fVFlQRUAxQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6Ol9Mb2NrU3Bpbihib29sKSBfX3B0cjY0DQorP19Mb2NrU3BpbkBDUmVhZGVyV3JpdGVyTG9ja0BAQUVBQVhfTkBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1NtYWxsU3BpbkxvY2s6Ol9Mb2NrU3Bpbih2b2lkKSBfX3B0cjY0DQorP19Mb2NrU3BpbkBDU21hbGxTcGluTG9ja0BAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENTcGluTG9jazo6X0xvY2tTcGluKHZvaWQpIF9fcHRyNjQNCis/X0xvY2tTcGluQENTcGluTG9ja0BAQUVBQVhYWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9NZXJnZVJlY29yZFNldHMoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q0J1Y2tldCAqIF9fcHRyNjQsY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q05vZGVDbHVtcCAqIF9fcHRyNjQsY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q05vZGVDbHVtcCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/X01lcmdlUmVjb3JkU2V0c0BDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBP0FXNExLX1JFVENPREVAQFBFQVZDQnVja2V0QDFAUEVBVkNOb2RlQ2x1bXBAMUAxQFoNCis7IHByaXZhdGU6IHN0YXRpYyBlbnVtIExLX1BSRURJQ0FURSAgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfUHJlZFRydWUodm9pZCBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpDQorP19QcmVkVHJ1ZUBDTEtSTGluZWFySGFzaFRhYmxlQEBDQT9BVzRMS19QUkVESUNBVEVAQFBFQlhQRUFYQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6Ol9SZWFkTG9ja1NwaW4odm9pZCkgX19wdHI2NA0KKz9fUmVhZExvY2tTcGluQENSZWFkZXJXcml0ZXJMb2NrMkBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMzo6X1JlYWRMb2NrU3BpbihlbnVtIENSZWFkZXJXcml0ZXJMb2NrMzo6U1BJTl9UWVBFKSBfX3B0cjY0DQorP19SZWFkTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2szQEBBRUFBWFc0U1BJTl9UWVBFQDFAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazo6X1JlYWRMb2NrU3Bpbih2b2lkKSBfX3B0cjY0DQorP19SZWFkTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2tAQEFFQUFYWFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfUmVhZE9yV3JpdGVMb2NrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X1JlYWRPcldyaXRlTG9ja0BDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBX05YWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9SZWFkT3JXcml0ZVVubG9jayhib29sKWNvbnN0ICBfX3B0cjY0DQorP19SZWFkT3JXcml0ZVVubG9ja0BDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBWF9OQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpfUmVtb3ZlVGhpc0Zyb21HbG9iYWxMaXN0KHZvaWQpIF9fcHRyNjQNCis/X1JlbW92ZVRoaXNGcm9tR2xvYmFsTGlzdEBDTEtSSGFzaFRhYmxlQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X1JlbW92ZVRoaXNGcm9tR2xvYmFsTGlzdCh2b2lkKSBfX3B0cjY0DQorP19SZW1vdmVUaGlzRnJvbUdsb2JhbExpc3RAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9TZWdJbmRleCh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP19TZWdJbmRleEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUJBS0tAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q1NlZ21lbnQgKiBfX3B0cjY0ICYgX19wdHI2NCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9TZWdtZW50KHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/X1NlZ21lbnRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUVCQUFFQVBFQVZDU2VnbWVudEAxQEtAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9TZXRTZWdWYXJzKGVudW0gTEtfVEFCTEVTSVpFKSBfX3B0cjY0DQorP19TZXRTZWdWYXJzQENMS1JMaW5lYXJIYXNoVGFibGVAQEFFQUFYVzRMS19UQUJMRVNJWkVAQEBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fY2RlY2wgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X1NwbGl0UmVjb3JkU2V0KGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNOb2RlQ2x1bXAgKiBfX3B0cjY0LGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNOb2RlQ2x1bXAgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNOb2RlQ2x1bXAgKiBfX3B0cjY0KSBfX3B0cjY0DQorP19TcGxpdFJlY29yZFNldEBDTEtSTGluZWFySGFzaFRhYmxlQEBBRUFBP0FXNExLX1JFVENPREVAQFBFQVZDTm9kZUNsdW1wQDFAMEtLSzBAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSAqIF9fcHRyNjQgX19jZGVjbCBDTEtSSGFzaFRhYmxlOjpfU3ViVGFibGUodW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9fU3ViVGFibGVAQ0xLUkhhc2hUYWJsZUBAQUVCQVBFQVZDTEtSTGluZWFySGFzaFRhYmxlQEBLQFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDU21hbGxTcGluTG9jazo6X1RyeUxvY2sodm9pZCkgX19wdHI2NA0KKz9fVHJ5TG9ja0BDU21hbGxTcGluTG9ja0BAQUVBQV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDU3BpbkxvY2s6Ol9UcnlMb2NrKHZvaWQpIF9fcHRyNjQNCis/X1RyeUxvY2tAQ1NwaW5Mb2NrQEBBRUFBX05YWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6X1RyeVJlYWRMb2NrKHZvaWQpIF9fcHRyNjQNCis/X1RyeVJlYWRMb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAQUVBQV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9UcnlSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP19UcnlSZWFkTG9ja0BDUmVhZGVyV3JpdGVyTG9jazNAQEFFQUFfTlhaDQorOyBwcml2YXRlOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6Ol9UcnlSZWFkTG9jayh2b2lkKSBfX3B0cjY0DQorP19UcnlSZWFkTG9ja0BDUmVhZGVyV3JpdGVyTG9ja0BAQUVBQV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9UcnlSZWFkTG9ja1JlY3Vyc2l2ZSh2b2lkKSBfX3B0cjY0DQorP19UcnlSZWFkTG9ja1JlY3Vyc2l2ZUBDUmVhZGVyV3JpdGVyTG9jazNAQEFFQUFfTlhaDQorOyBwcml2YXRlOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpfVHJ5V3JpdGVMb2NrMih2b2lkKSBfX3B0cjY0DQorP19UcnlXcml0ZUxvY2syQENSZWFkZXJXcml0ZXJMb2NrM0BAQUVBQV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazI6Ol9UcnlXcml0ZUxvY2sobG9uZykgX19wdHI2NA0KKz9fVHJ5V3JpdGVMb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAQUVBQV9OSkBaDQorOyBwcml2YXRlOiBib29sIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2szOjpfVHJ5V3JpdGVMb2NrKGxvbmcpIF9fcHRyNjQNCis/X1RyeVdyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9jazNAQEFFQUFfTkpAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrOjpfVHJ5V3JpdGVMb2NrKHZvaWQpIF9fcHRyNjQNCis/X1RyeVdyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9ja0BAQUVBQV9OWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDU3BpbkxvY2s6Ol9VbmxvY2sodm9pZCkgX19wdHI2NA0KKz9fVW5sb2NrQENTcGluTG9ja0BAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENSZWFkZXJXcml0ZXJMb2NrMjo6X1dyaXRlTG9ja1NwaW4odm9pZCkgX19wdHI2NA0KKz9fV3JpdGVMb2NrU3BpbkBDUmVhZGVyV3JpdGVyTG9jazJAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9Xcml0ZUxvY2tTcGluKHZvaWQpIF9fcHRyNjQNCis/X1dyaXRlTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2szQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1JlYWRlcldyaXRlckxvY2s6Ol9Xcml0ZUxvY2tTcGluKHZvaWQpIF9fcHRyNjQNCis/X1dyaXRlTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2tAQEFFQUFYWFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBDRXhGaWxlT3BlcmF0aW9uOjpfZ2V0RmlsZVNlY3VyaXR5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9fZ2V0RmlsZVNlY3VyaXR5QENFeEZpbGVPcGVyYXRpb25AQEFFQUFKUEVCR0BaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgQ0V4RmlsZU9wZXJhdGlvbjo6X3NldEZpbGVTZWN1cml0eSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/X3NldEZpbGVTZWN1cml0eUBDRXhGaWxlT3BlcmF0aW9uQEBBRUFBSlBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRVhBdXRvQmFja3VwRmlsZTo6ZkhhdmVCYWNrdXAodm9pZCkgX19wdHI2NA0KKz9mSGF2ZUJhY2t1cEBDRVhBdXRvQmFja3VwRmlsZUBAUUVBQUhYWg0KKzsgbG9uZyBjb25zdCAqIGNvbnN0ICBgcHVibGljOiBzdGF0aWMgbG9uZyBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTEtSSGFzaFRhYmxlU3RhdHM6OkJ1Y2tldFNpemVzKHZvaWQpJzo6YDInOjpzX2FCdWNrZXRTaXplcw0KKz9zX2FCdWNrZXRTaXplc0A/MT8/QnVja2V0U2l6ZXNAQ0xLUkhhc2hUYWJsZVN0YXRzQEBTQVBFQkpYWkA0UUJKQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDQ3JpdFNlYzo6c21fZGJsRGZsdFNwaW5BZGpGY3RyDQorP3NtX2RibERmbHRTcGluQWRqRmN0ckBDQ3JpdFNlY0BAMU5BIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGRvdWJsZSAgQ0Zha2VMb2NrOjpzbV9kYmxEZmx0U3BpbkFkakZjdHINCis/c21fZGJsRGZsdFNwaW5BZGpGY3RyQENGYWtlTG9ja0BAMU5BIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGRvdWJsZSAgQ1JlYWRlcldyaXRlckxvY2syOjpzbV9kYmxEZmx0U3BpbkFkakZjdHINCis/c21fZGJsRGZsdFNwaW5BZGpGY3RyQENSZWFkZXJXcml0ZXJMb2NrMkBAMU5BIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGRvdWJsZSAgQ1JlYWRlcldyaXRlckxvY2szOjpzbV9kYmxEZmx0U3BpbkFkakZjdHINCis/c21fZGJsRGZsdFNwaW5BZGpGY3RyQENSZWFkZXJXcml0ZXJMb2NrM0BAMU5BIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGRvdWJsZSAgQ1JlYWRlcldyaXRlckxvY2s6OnNtX2RibERmbHRTcGluQWRqRmN0cg0KKz9zbV9kYmxEZmx0U3BpbkFkakZjdHJAQ1JlYWRlcldyaXRlckxvY2tAQDFOQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBkb3VibGUgIENTbWFsbFNwaW5Mb2NrOjpzbV9kYmxEZmx0U3BpbkFkakZjdHINCis/c21fZGJsRGZsdFNwaW5BZGpGY3RyQENTbWFsbFNwaW5Mb2NrQEAxTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDU3BpbkxvY2s6OnNtX2RibERmbHRTcGluQWRqRmN0cg0KKz9zbV9kYmxEZmx0U3BpbkFkakZjdHJAQ1NwaW5Mb2NrQEAxTkEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENMb2NrZWREb3VibGVMaXN0ICBDTEtSSGFzaFRhYmxlOjpzbV9sbEdsb2JhbExpc3QNCis/c21fbGxHbG9iYWxMaXN0QENMS1JIYXNoVGFibGVAQDBWQ0xvY2tlZERvdWJsZUxpc3RAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENMb2NrZWREb3VibGVMaXN0ICBDTEtSTGluZWFySGFzaFRhYmxlOjpzbV9sbEdsb2JhbExpc3QNCis/c21fbGxHbG9iYWxMaXN0QENMS1JMaW5lYXJIYXNoVGFibGVAQDBWQ0xvY2tlZERvdWJsZUxpc3RAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIHN0cnVjdCBfT1NWRVJTSU9OSU5GT1cgKiBfX3B0cjY0ICBfX3B0cjY0IENNZFZlcnNpb25JbmZvOjpzbV9scE9TVkVSU0lPTklORk8NCis/c21fbHBPU1ZFUlNJT05JTkZPQENNZFZlcnNpb25JbmZvQEAwUEVBVV9PU1ZFUlNJT05JTkZPV0BARUEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGxvbmcgKF9fY2RlY2wqIF9fcHRyNjQgQ0NyaXRpY2FsU2VjdGlvbjo6c21fcGZuU2V0Q3JpdGljYWxTZWN0aW9uU3BpbkNvdW50KShzdHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OICogX19wdHI2NCx1bnNpZ25lZCBsb25nKQ0KKz9zbV9wZm5TZXRDcml0aWNhbFNlY3Rpb25TcGluQ291bnRAQ0NyaXRpY2FsU2VjdGlvbkBAMFA2QUtQRUFVX1JUTF9DUklUSUNBTF9TRUNUSU9OQEBLQFpFQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgaW50IChfX2NkZWNsKiBfX3B0cjY0IENDcml0aWNhbFNlY3Rpb246OnNtX3BmblRyeUVudGVyQ3JpdGljYWxTZWN0aW9uKShzdHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OICogX19wdHI2NCkNCis/c21fcGZuVHJ5RW50ZXJDcml0aWNhbFNlY3Rpb25AQ0NyaXRpY2FsU2VjdGlvbkBAMFA2QUhQRUFVX1JUTF9DUklUSUNBTF9TRUNUSU9OQEBAWkVBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0ICBDQ3JpdFNlYzo6c21fd0RlZmF1bHRTcGluQ291bnQNCis/c21fd0RlZmF1bHRTcGluQ291bnRAQ0NyaXRTZWNAQDFHQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgQ0Zha2VMb2NrOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDRmFrZUxvY2tAQDFHQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgQ1JlYWRlcldyaXRlckxvY2syOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazJAQDFHQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgQ1JlYWRlcldyaXRlckxvY2szOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazNAQDFHQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgQ1JlYWRlcldyaXRlckxvY2s6OnNtX3dEZWZhdWx0U3BpbkNvdW50DQorP3NtX3dEZWZhdWx0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrQEAxR0EgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgIENTbWFsbFNwaW5Mb2NrOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDU21hbGxTcGluTG9ja0BAMUdBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0ICBDU3BpbkxvY2s6OnNtX3dEZWZhdWx0U3BpbkNvdW50DQorP3NtX3dEZWZhdWx0U3BpbkNvdW50QENTcGluTG9ja0BAMUdBIERBVEENCitEbGxCaWRFbnRyeVBvaW50DQorRGxsTWFpbg0KK0ZYTWVtQXR0YWNoDQorRlhNZW1EZXRhY2gNCitHZXRJVU1TDQorSXJ0bFRyYWNlDQorSXNWYWxpZEFkZHJlc3MNCitJc1ZhbGlkU3RyaW5nDQorTG9hZFZlcnNpb25lZFJlc291cmNlRXgNCitNUENTSW5pdGlhbGl6ZQ0KK01QQ1NVbmluaXRpYWxpemUNCitNUERlbGV0ZUNyaXRpY2FsU2VjdGlvbg0KK01QSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbg0KK01QSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbkFuZFNwaW5Db3VudA0KK01wR2V0SGVhcEhhbmRsZQ0KK01wSGVhcEFsbG9jDQorTXBIZWFwQ3JlYXRlDQorTXBIZWFwRGVzdHJveQ0KK01wSGVhcEZyZWUNCitNcEhlYXBSZUFsbG9jDQorTXBIZWFwU2l6ZQ0KK01wSGVhcFZhbGlkYXRlDQorU2V0SVVNUw0KK1NldE1lbUhvb2sNCitVTVNFbnRlckNTV3JhcGVyDQorbXBDYWxsb2MNCittcEZyZWUNCittcE1hbGxvYw0KK21wUmVhbGxvYw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zZGF0bDMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNkYXRsMy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGZjZmYxNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zZGF0bDMuZGVmCkBAIC0wLDAgKzEsODUzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TREFUTDMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TREFUTDMuZGxsDQorRVhQT1JUUw0KK0RsbE1haW4NCis7IHByb3RlY3RlZDogX19jZGVjbCBDQmFzZU9iajo6Q0Jhc2VPYmooZW51bSBFQmFzZU9iamVjdFR5cGUsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQmFzZU9iakBASUVBQUBXNEVCYXNlT2JqZWN0VHlwZUBAUEVBSkBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQ0Jhc2VPYmo6OkNCYXNlT2JqKGVudW0gRUJhc2VPYmplY3RUeXBlLHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQmFzZU9iakBASUVBQUBXNEVCYXNlT2JqZWN0VHlwZUBAUEVBVUlVbmtub3duQEBQRUFKQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQmFzZU9iajo6Q0Jhc2VPYmooY2xhc3MgQ0Jhc2VPYmogY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0Jhc2VPYmpAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQmFzZU9iakJva286OkNCYXNlT2JqQm9rbyhjbGFzcyBDQmFzZU9iakJva28gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0Jhc2VPYmpCb2tvQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Jhc2VPYmpCb2tvOjpDQmFzZU9iakJva28oZW51bSBFQmFzZU9iamVjdFR5cGUsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQmFzZU9iakJva29AQFFFQUFAVzRFQmFzZU9iamVjdFR5cGVAQFBFQUpAWg0KKzsgcHVibGljOiBfX2NkZWNsIENCYXNlT2JqWm9tYmllOjpDQmFzZU9ialpvbWJpZShjbGFzcyBDQmFzZU9ialpvbWJpZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQmFzZU9ialpvbWJpZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENCYXNlT2JqWm9tYmllOjpDQmFzZU9ialpvbWJpZShlbnVtIEVCYXNlT2JqZWN0VHlwZSxsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENCYXNlT2JqWm9tYmllQEBRRUFBQFc0RUJhc2VPYmplY3RUeXBlQEBQRUFKQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQml0QXJyYXk6OkNCaXRBcnJheSh2b2lkKSBfX3B0cjY0DQorPz8wQ0JpdEFycmF5QEBRRUFBQFhaDQorOyBwcml2YXRlOiBfX2NkZWNsIENDbGFzc0ZhY3Rvcnk6OkNDbGFzc0ZhY3Rvcnkodm9pZCkgX19wdHI2NA0KKz8/MENDbGFzc0ZhY3RvcnlAQEFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ2xhc3NGYWN0b3J5OjpDQ2xhc3NGYWN0b3J5KGNsYXNzIENDbGFzc0ZhY3RvcnkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0NsYXNzRmFjdG9yeUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENDbGFzc0ZhY3Rvcnk6OkNDbGFzc0ZhY3RvcnkobG9uZyAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQ2xhc3NGYWN0b3J5QEBRRUFBQFBFQUowQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ29ubmVjdERhdGE6OkNDb25uZWN0RGF0YSh2b2lkKSBfX3B0cjY0DQorPz8wQ0Nvbm5lY3REYXRhQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0VudW06OkNFbnVtKHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQsc3RydWN0IF9HVUlELHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgbG9uZyxlbnVtIENFTlVNVFlQRSkgX19wdHI2NA0KKz8/MENFbnVtQEBRRUFBQFBFQVVJVW5rbm93bkBAS1BFQVBFQVhVX0dVSURAQF9LS1c0Q0VOVU1UWVBFQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENFbnVtQ29ubmVjdGlvblBvaW50czo6Q0VudW1Db25uZWN0aW9uUG9pbnRzKGNsYXNzIENFbnVtQ29ubmVjdGlvblBvaW50cyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRW51bUNvbm5lY3Rpb25Qb2ludHNAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRW51bUNvbm5lY3Rpb25Qb2ludHM6OkNFbnVtQ29ubmVjdGlvblBvaW50cyhzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsc3RydWN0IElDb25uZWN0aW9uUG9pbnQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENFbnVtQ29ubmVjdGlvblBvaW50c0BAUUVBQUBQRUFVSVVua25vd25AQEtQRUFQRUFVSUNvbm5lY3Rpb25Qb2ludEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRW51bUNvbm5lY3Rpb25zOjpDRW51bUNvbm5lY3Rpb25zKGNsYXNzIENFbnVtQ29ubmVjdGlvbnMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0VudW1Db25uZWN0aW9uc0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENFbnVtQ29ubmVjdGlvbnM6OkNFbnVtQ29ubmVjdGlvbnMoc3RydWN0IElVbmtub3duICogX19wdHI2NCxzdHJ1Y3QgdGFnQ09OTkVDVERBVEEgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDRW51bUNvbm5lY3Rpb25zQEBRRUFBQFBFQVVJVW5rbm93bkBAUEVBVXRhZ0NPTk5FQ1REQVRBQEBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXh0QnVmZmVyOjpDRXh0QnVmZmVyKHZvaWQpIF9fcHRyNjQNCis/PzBDRXh0QnVmZmVyQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0dlbmVyaWNQb29sZXI6OkNHZW5lcmljUG9vbGVyKGNsYXNzIENHZW5lcmljUG9vbGVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENHZW5lcmljUG9vbGVyQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0dlbmVyaWNQb29sZXI6OkNHZW5lcmljUG9vbGVyKHZvaWQpIF9fcHRyNjQNCis/PzBDR2VuZXJpY1Bvb2xlckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENIYXNoVGJsOjpDSGFzaFRibChjbGFzcyBDSGFzaFRibCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSGFzaFRibEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENIYXNoVGJsOjpDSGFzaFRibCh2b2lkKSBfX3B0cjY0DQorPz8wQ0hhc2hUYmxAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSGFzaFRibEFnZ3I6OkNIYXNoVGJsQWdncihjbGFzcyBDSGFzaFRibEFnZ3IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0hhc2hUYmxBZ2dyQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0hhc2hUYmxBZ2dyOjpDSGFzaFRibEFnZ3Iodm9pZCkgX19wdHI2NA0KKz8/MENIYXNoVGJsQWdnckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENIZWFwRGlzcGVuc2VyOjpDSGVhcERpc3BlbnNlcihjbGFzcyBDSGVhcERpc3BlbnNlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSGVhcERpc3BlbnNlckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENIZWFwRGlzcGVuc2VyOjpDSGVhcERpc3BlbnNlcih2b2lkKSBfX3B0cjY0DQorPz8wQ0hlYXBEaXNwZW5zZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUm93c2V0Q29ubmVjdGlvblBvaW50OjpDUm93c2V0Q29ubmVjdGlvblBvaW50KGNsYXNzIENSb3dzZXRDb25uZWN0aW9uUG9pbnQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1Jvd3NldENvbm5lY3Rpb25Qb2ludEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENSb3dzZXRDb25uZWN0aW9uUG9pbnQ6OkNSb3dzZXRDb25uZWN0aW9uUG9pbnQoc3RydWN0IElVbmtub3duICogX19wdHI2NCxzdHJ1Y3QgX0dVSUQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDUm93c2V0Q29ubmVjdGlvblBvaW50QEBRRUFBQFBFQVVJVW5rbm93bkBAUEVCVV9HVUlEQEBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDUm93c2V0Q29ubmVjdGlvblBvaW50Q29udGFpbmVyOjpDUm93c2V0Q29ubmVjdGlvblBvaW50Q29udGFpbmVyKGNsYXNzIENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXI6OkNSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXIoc3RydWN0IElVbmtub3duICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXJAQFFFQUFAUEVBVUlVbmtub3duQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENTbG90TGlzdExvbmc6OkNTbG90TGlzdExvbmcoY2xhc3MgQ1Nsb3RMaXN0TG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDU2xvdExpc3RMb25nQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Nsb3RMaXN0TG9uZzo6Q1Nsb3RMaXN0TG9uZyh2b2lkKSBfX3B0cjY0DQorPz8wQ1Nsb3RMaXN0TG9uZ0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTbG90TGlzdFNob3J0OjpDU2xvdExpc3RTaG9ydChjbGFzcyBDU2xvdExpc3RTaG9ydCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDU2xvdExpc3RTaG9ydEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENTbG90TGlzdFNob3J0OjpDU2xvdExpc3RTaG9ydCh2b2lkKSBfX3B0cjY0DQorPz8wQ1Nsb3RMaXN0U2hvcnRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVXRsUHJvcEluZm86OkNVdGxQcm9wSW5mbyhjbGFzcyBDVXRsUHJvcEluZm8gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1V0bFByb3BJbmZvQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1V0bFByb3BJbmZvOjpDVXRsUHJvcEluZm8odm9pZCkgX19wdHI2NA0KKz8/MENVdGxQcm9wSW5mb0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENVdGxQcm9wczI6OkNVdGxQcm9wczIoY2xhc3MgQ1V0bFByb3BzMiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDVXRsUHJvcHMyQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1V0bFByb3BzMjo6Q1V0bFByb3BzMih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wQ1V0bFByb3BzMkBAUUVBQUBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDVXRsUHJvcHNGYXN0TG9va3VwMjo6Q1V0bFByb3BzRmFzdExvb2t1cDIoY2xhc3MgQ1V0bFByb3BzRmFzdExvb2t1cDIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1V0bFByb3BzRmFzdExvb2t1cDJAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDVXRsUHJvcHNGYXN0TG9va3VwMjo6Q1V0bFByb3BzRmFzdExvb2t1cDIodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENVdGxQcm9wc0Zhc3RMb29rdXAyQEBRRUFBQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIENWTEhlYXA6OkNWTEhlYXAodm9pZCkgX19wdHI2NA0KKz8/MENWTEhlYXBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDV1N0cmluZzo6Q1dTdHJpbmcoY2xhc3MgQ1dTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1dTdHJpbmdAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV1N0cmluZzo6Q1dTdHJpbmcodW5zaWduZWQgc2hvcnQsaW50KSBfX3B0cjY0DQorPz8wQ1dTdHJpbmdAQFFFQUFAR0hAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXU3RyaW5nOjpDV1N0cmluZyhjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENXU3RyaW5nQEBRRUFBQFBFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXU3RyaW5nOjpDV1N0cmluZyh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENXU3RyaW5nQEBRRUFBQFBFQkVAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXU3RyaW5nOjpDV1N0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDV1N0cmluZ0BAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV1N0cmluZzo6Q1dTdHJpbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MENXU3RyaW5nQEBRRUFBQFBFQkdIQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV1N0cmluZzo6Q1dTdHJpbmcodm9pZCkgX19wdHI2NA0KKz8/MENXU3RyaW5nQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgSUJvb2ttYXJrT2JqOjpJQm9va21hcmtPYmooY2xhc3MgSUJvb2ttYXJrT2JqIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MElCb29rbWFya09iakBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIElCb29rbWFya09iajo6SUJvb2ttYXJrT2JqKHZvaWQpIF9fcHRyNjQNCis/PzBJQm9va21hcmtPYmpAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBJSGFzaFRibDo6SUhhc2hUYmwoY2xhc3MgSUhhc2hUYmwgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wSUhhc2hUYmxAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBJSGFzaFRibDo6SUhhc2hUYmwodm9pZCkgX19wdHI2NA0KKz8/MElIYXNoVGJsQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgSVNsb3RMaXN0OjpJU2xvdExpc3QoY2xhc3MgSVNsb3RMaXN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MElTbG90TGlzdEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIElTbG90TGlzdDo6SVNsb3RMaXN0KHZvaWQpIF9fcHRyNjQNCis/PzBJU2xvdExpc3RAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENCYXNlT2JqOjp+Q0Jhc2VPYmoodm9pZCkgX19wdHI2NA0KKz8/MUNCYXNlT2JqQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDQmFzZU9iakJva286On5DQmFzZU9iakJva28odm9pZCkgX19wdHI2NA0KKz8/MUNCYXNlT2JqQm9rb0BAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ0Jhc2VPYmpab21iaWU6On5DQmFzZU9ialpvbWJpZSh2b2lkKSBfX3B0cjY0DQorPz8xQ0Jhc2VPYmpab21iaWVAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQml0QXJyYXk6On5DQml0QXJyYXkodm9pZCkgX19wdHI2NA0KKz8/MUNCaXRBcnJheUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENDbGFzc0ZhY3Rvcnk6On5DQ2xhc3NGYWN0b3J5KHZvaWQpIF9fcHRyNjQNCis/PzFDQ2xhc3NGYWN0b3J5QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Nvbm5lY3REYXRhOjp+Q0Nvbm5lY3REYXRhKHZvaWQpIF9fcHRyNjQNCis/PzFDQ29ubmVjdERhdGFAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRW51bTo6fkNFbnVtKHZvaWQpIF9fcHRyNjQNCis/PzFDRW51bUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENFbnVtQ29ubmVjdGlvblBvaW50czo6fkNFbnVtQ29ubmVjdGlvblBvaW50cyh2b2lkKSBfX3B0cjY0DQorPz8xQ0VudW1Db25uZWN0aW9uUG9pbnRzQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0VudW1Db25uZWN0aW9uczo6fkNFbnVtQ29ubmVjdGlvbnModm9pZCkgX19wdHI2NA0KKz8/MUNFbnVtQ29ubmVjdGlvbnNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXh0QnVmZmVyOjp+Q0V4dEJ1ZmZlcih2b2lkKSBfX3B0cjY0DQorPz8xQ0V4dEJ1ZmZlckBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ0hhc2hUYmw6On5DSGFzaFRibCh2b2lkKSBfX3B0cjY0DQorPz8xQ0hhc2hUYmxAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENIYXNoVGJsQWdncjo6fkNIYXNoVGJsQWdncih2b2lkKSBfX3B0cjY0DQorPz8xQ0hhc2hUYmxBZ2dyQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludDo6fkNSb3dzZXRDb25uZWN0aW9uUG9pbnQodm9pZCkgX19wdHI2NA0KKz8/MUNSb3dzZXRDb25uZWN0aW9uUG9pbnRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUm93c2V0Q29ubmVjdGlvblBvaW50Q29udGFpbmVyOjp+Q1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lcih2b2lkKSBfX3B0cjY0DQorPz8xQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lckBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1Nsb3RMaXN0TG9uZzo6fkNTbG90TGlzdExvbmcodm9pZCkgX19wdHI2NA0KKz8/MUNTbG90TGlzdExvbmdAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENTbG90TGlzdFNob3J0Ojp+Q1Nsb3RMaXN0U2hvcnQodm9pZCkgX19wdHI2NA0KKz8/MUNTbG90TGlzdFNob3J0QEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDVXRsUHJvcEluZm86On5DVXRsUHJvcEluZm8odm9pZCkgX19wdHI2NA0KKz8/MUNVdGxQcm9wSW5mb0BAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1V0bFByb3BzMjo6fkNVdGxQcm9wczIodm9pZCkgX19wdHI2NA0KKz8/MUNVdGxQcm9wczJAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENVdGxQcm9wc0Zhc3RMb29rdXAyOjp+Q1V0bFByb3BzRmFzdExvb2t1cDIodm9pZCkgX19wdHI2NA0KKz8/MUNVdGxQcm9wc0Zhc3RMb29rdXAyQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1ZMSGVhcDo6fkNWTEhlYXAodm9pZCkgX19wdHI2NA0KKz8/MUNWTEhlYXBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDV1N0cmluZzo6fkNXU3RyaW5nKHZvaWQpIF9fcHRyNjQNCis/PzFDV1N0cmluZ0BAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgSUJvb2ttYXJrT2JqOjp+SUJvb2ttYXJrT2JqKHZvaWQpIF9fcHRyNjQNCis/PzFJQm9va21hcmtPYmpAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIElIYXNoVGJsOjp+SUhhc2hUYmwodm9pZCkgX19wdHI2NA0KKz8/MUlIYXNoVGJsQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBJU2xvdExpc3Q6On5JU2xvdExpc3Qodm9pZCkgX19wdHI2NA0KKz8/MUlTbG90TGlzdEBAVUVBQUBYWg0KKzsgcHVibGljOiBjbGFzcyBDQmFzZU9iaiAmIF9fcHRyNjQgX19jZGVjbCBDQmFzZU9iajo6b3BlcmF0b3I9KGNsYXNzIENCYXNlT2JqIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENCYXNlT2JqQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0Jhc2VPYmpCb2tvICYgX19wdHI2NCBfX2NkZWNsIENCYXNlT2JqQm9rbzo6b3BlcmF0b3I9KGNsYXNzIENCYXNlT2JqQm9rbyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDQmFzZU9iakJva29AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQmFzZU9ialpvbWJpZSAmIF9fcHRyNjQgX19jZGVjbCBDQmFzZU9ialpvbWJpZTo6b3BlcmF0b3I9KGNsYXNzIENCYXNlT2JqWm9tYmllIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENCYXNlT2JqWm9tYmllQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0JpdEFycmF5ICYgX19wdHI2NCBfX2NkZWNsIENCaXRBcnJheTo6b3BlcmF0b3I9KGNsYXNzIENCaXRBcnJheSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDQml0QXJyYXlAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ2xhc3NGYWN0b3J5ICYgX19wdHI2NCBfX2NkZWNsIENDbGFzc0ZhY3Rvcnk6Om9wZXJhdG9yPShjbGFzcyBDQ2xhc3NGYWN0b3J5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENDbGFzc0ZhY3RvcnlAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29ubmVjdERhdGEgJiBfX3B0cjY0IF9fY2RlY2wgQ0Nvbm5lY3REYXRhOjpvcGVyYXRvcj0oY2xhc3MgQ0Nvbm5lY3REYXRhIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENDb25uZWN0RGF0YUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENFbnVtICYgX19wdHI2NCBfX2NkZWNsIENFbnVtOjpvcGVyYXRvcj0oY2xhc3MgQ0VudW0gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0VudW1AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRW51bUNvbm5lY3Rpb25Qb2ludHMgJiBfX3B0cjY0IF9fY2RlY2wgQ0VudW1Db25uZWN0aW9uUG9pbnRzOjpvcGVyYXRvcj0oY2xhc3MgQ0VudW1Db25uZWN0aW9uUG9pbnRzIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENFbnVtQ29ubmVjdGlvblBvaW50c0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENFbnVtQ29ubmVjdGlvbnMgJiBfX3B0cjY0IF9fY2RlY2wgQ0VudW1Db25uZWN0aW9uczo6b3BlcmF0b3I9KGNsYXNzIENFbnVtQ29ubmVjdGlvbnMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0VudW1Db25uZWN0aW9uc0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENFeHRCdWZmZXIgJiBfX3B0cjY0IF9fY2RlY2wgQ0V4dEJ1ZmZlcjo6b3BlcmF0b3I9KGNsYXNzIENFeHRCdWZmZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0V4dEJ1ZmZlckBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENHZW5lcmljUG9vbGVyICYgX19wdHI2NCBfX2NkZWNsIENHZW5lcmljUG9vbGVyOjpvcGVyYXRvcj0oY2xhc3MgQ0dlbmVyaWNQb29sZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0dlbmVyaWNQb29sZXJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSGFzaFRibCAmIF9fcHRyNjQgX19jZGVjbCBDSGFzaFRibDo6b3BlcmF0b3I9KGNsYXNzIENIYXNoVGJsIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENIYXNoVGJsQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0hhc2hUYmxBZ2dyICYgX19wdHI2NCBfX2NkZWNsIENIYXNoVGJsQWdncjo6b3BlcmF0b3I9KGNsYXNzIENIYXNoVGJsQWdnciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDSGFzaFRibEFnZ3JAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSGVhcERpc3BlbnNlciAmIF9fcHRyNjQgX19jZGVjbCBDSGVhcERpc3BlbnNlcjo6b3BlcmF0b3I9KGNsYXNzIENIZWFwRGlzcGVuc2VyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENIZWFwRGlzcGVuc2VyQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludCAmIF9fcHRyNjQgX19jZGVjbCBDUm93c2V0Q29ubmVjdGlvblBvaW50OjpvcGVyYXRvcj0oY2xhc3MgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDUm93c2V0Q29ubmVjdGlvblBvaW50QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lciAmIF9fcHRyNjQgX19jZGVjbCBDUm93c2V0Q29ubmVjdGlvblBvaW50Q29udGFpbmVyOjpvcGVyYXRvcj0oY2xhc3MgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDUm93c2V0Q29ubmVjdGlvblBvaW50Q29udGFpbmVyQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1Nsb3RMaXN0TG9uZyAmIF9fcHRyNjQgX19jZGVjbCBDU2xvdExpc3RMb25nOjpvcGVyYXRvcj0oY2xhc3MgQ1Nsb3RMaXN0TG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDU2xvdExpc3RMb25nQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1Nsb3RMaXN0U2hvcnQgJiBfX3B0cjY0IF9fY2RlY2wgQ1Nsb3RMaXN0U2hvcnQ6Om9wZXJhdG9yPShjbGFzcyBDU2xvdExpc3RTaG9ydCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDU2xvdExpc3RTaG9ydEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENVdGxQcm9wSW5mbyAmIF9fcHRyNjQgX19jZGVjbCBDVXRsUHJvcEluZm86Om9wZXJhdG9yPShjbGFzcyBDVXRsUHJvcEluZm8gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1V0bFByb3BJbmZvQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1V0bFByb3BzMiAmIF9fcHRyNjQgX19jZGVjbCBDVXRsUHJvcHMyOjpvcGVyYXRvcj0oY2xhc3MgQ1V0bFByb3BzMiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDVXRsUHJvcHMyQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1V0bFByb3BzRmFzdExvb2t1cDIgJiBfX3B0cjY0IF9fY2RlY2wgQ1V0bFByb3BzRmFzdExvb2t1cDI6Om9wZXJhdG9yPShjbGFzcyBDVXRsUHJvcHNGYXN0TG9va3VwMiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDVXRsUHJvcHNGYXN0TG9va3VwMkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENWTEhlYXAgJiBfX3B0cjY0IF9fY2RlY2wgQ1ZMSGVhcDo6b3BlcmF0b3I9KGNsYXNzIENWTEhlYXAgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1ZMSGVhcEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXU3RyaW5nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENXU3RyaW5nOjpvcGVyYXRvcj0oY2xhc3MgQ1dTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1dTdHJpbmdAQFFFQUFBRUJWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV1N0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDV1N0cmluZzo6b3BlcmF0b3I9KGNoYXIpIF9fcHRyNjQNCis/PzRDV1N0cmluZ0BAUUVBQUFFQlYwQERAWg0KKzsgcHVibGljOiBjbGFzcyBDV1N0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDV1N0cmluZzo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorPz80Q1dTdHJpbmdAQFFFQUFBRUJWMEBHQFoNCis7IHB1YmxpYzogY2xhc3MgQ1dTdHJpbmcgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ1dTdHJpbmc6Om9wZXJhdG9yPShjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/NENXU3RyaW5nQEBRRUFBQUVCVjBAUEVCREBaDQorOyBwdWJsaWM6IGNsYXNzIENXU3RyaW5nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENXU3RyaW5nOjpvcGVyYXRvcj0odW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDV1N0cmluZ0BAUUVBQUFFQlYwQFBFQkVAWg0KKzsgcHVibGljOiBjbGFzcyBDV1N0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDV1N0cmluZzo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/NENXU3RyaW5nQEBRRUFBQUVCVjBAUEVCR0BaDQorOyBwdWJsaWM6IGNsYXNzIElCb29rbWFya09iaiAmIF9fcHRyNjQgX19jZGVjbCBJQm9va21hcmtPYmo6Om9wZXJhdG9yPShjbGFzcyBJQm9va21hcmtPYmogY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80SUJvb2ttYXJrT2JqQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgSUhhc2hUYmwgJiBfX3B0cjY0IF9fY2RlY2wgSUhhc2hUYmw6Om9wZXJhdG9yPShjbGFzcyBJSGFzaFRibCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRJSGFzaFRibEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIElTbG90TGlzdCAmIF9fcHRyNjQgX19jZGVjbCBJU2xvdExpc3Q6Om9wZXJhdG9yPShjbGFzcyBJU2xvdExpc3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80SVNsb3RMaXN0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDV1N0cmluZzo6b3BlcmF0b3JbXShpbnQpY29uc3QgIF9fcHRyNjQNCis/P0FDV1N0cmluZ0BAUUVCQUdIQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV1N0cmluZzo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDV1N0cmluZ0BAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBjbGFzcyBDV1N0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDV1N0cmluZzo6b3BlcmF0b3IrPShjbGFzcyBDV1N0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/P1lDV1N0cmluZ0BAUUVBQUFFQlYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXU3RyaW5nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENXU3RyaW5nOjpvcGVyYXRvcis9KGNoYXIpIF9fcHRyNjQNCis/P1lDV1N0cmluZ0BAUUVBQUFFQlYwQERAWg0KKzsgcHVibGljOiBjbGFzcyBDV1N0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDV1N0cmluZzo6b3BlcmF0b3IrPSh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz8/WUNXU3RyaW5nQEBRRUFBQUVCVjBAR0BaDQorOyBwdWJsaWM6IGNsYXNzIENXU3RyaW5nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENXU3RyaW5nOjpvcGVyYXRvcis9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/WUNXU3RyaW5nQEBRRUFBQUVCVjBAUEVCR0BaDQorOyBjb25zdCAgQ0Jhc2VPYmo6OmB2ZnRhYmxlJw0KKz8/XzdDQmFzZU9iakBANkJADQorOyBjb25zdCAgQ0Jhc2VPYmpCb2tvOjpgdmZ0YWJsZScNCis/P183Q0Jhc2VPYmpCb2tvQEA2QkANCis7IGNvbnN0ICBDQmFzZU9ialpvbWJpZTo6YHZmdGFibGUnDQorPz9fN0NCYXNlT2JqWm9tYmllQEA2QkANCis7IGNvbnN0ICBDQ2xhc3NGYWN0b3J5OjpgdmZ0YWJsZScNCis/P183Q0NsYXNzRmFjdG9yeUBANkJADQorOyBjb25zdCAgQ0VudW1Db25uZWN0aW9uUG9pbnRzOjpgdmZ0YWJsZScNCis/P183Q0VudW1Db25uZWN0aW9uUG9pbnRzQEA2QkANCis7IGNvbnN0ICBDRW51bUNvbm5lY3Rpb25zOjpgdmZ0YWJsZScNCis/P183Q0VudW1Db25uZWN0aW9uc0BANkJADQorOyBjb25zdCAgQ0hhc2hUYmw6OmB2ZnRhYmxlJw0KKz8/XzdDSGFzaFRibEBANkJADQorOyBjb25zdCAgQ0hhc2hUYmxBZ2dyOjpgdmZ0YWJsZScNCis/P183Q0hhc2hUYmxBZ2dyQEA2QkANCis7IGNvbnN0ICBDSGVhcERpc3BlbnNlcjo6YHZmdGFibGUnDQorPz9fN0NIZWFwRGlzcGVuc2VyQEA2QkANCis7IGNvbnN0ICBDUm93c2V0Q29ubmVjdGlvblBvaW50OjpgdmZ0YWJsZScNCis/P183Q1Jvd3NldENvbm5lY3Rpb25Qb2ludEBANkJADQorOyBjb25zdCAgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lcjo6YHZmdGFibGUnDQorPz9fN0NSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXJAQDZCQA0KKzsgY29uc3QgIENTbG90TGlzdExvbmc6OmB2ZnRhYmxlJw0KKz8/XzdDU2xvdExpc3RMb25nQEA2QkANCis7IGNvbnN0ICBDU2xvdExpc3RTaG9ydDo6YHZmdGFibGUnDQorPz9fN0NTbG90TGlzdFNob3J0QEA2QkANCis7IGNvbnN0ICBDVXRsUHJvcEluZm86OmB2ZnRhYmxlJw0KKz8/XzdDVXRsUHJvcEluZm9AQDZCQA0KKzsgY29uc3QgIENVdGxQcm9wczI6OmB2ZnRhYmxlJw0KKz8/XzdDVXRsUHJvcHMyQEA2QkANCis7IGNvbnN0ICBDVXRsUHJvcHNGYXN0TG9va3VwMjo6YHZmdGFibGUnDQorPz9fN0NVdGxQcm9wc0Zhc3RMb29rdXAyQEA2QkANCis7IGNvbnN0ICBJQm9va21hcmtPYmo6OmB2ZnRhYmxlJw0KKz8/XzdJQm9va21hcmtPYmpAQDZCQA0KKzsgY29uc3QgIElIYXNoVGJsOjpgdmZ0YWJsZScNCis/P183SUhhc2hUYmxAQDZCQA0KKzsgY29uc3QgIElTbG90TGlzdDo6YHZmdGFibGUnDQorPz9fN0lTbG90TGlzdEBANkJADQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVXRsUHJvcHMyOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNVdGxQcm9wczJAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENVdGxQcm9wc0Zhc3RMb29rdXAyOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNVdGxQcm9wc0Zhc3RMb29rdXAyQEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENIYXNoVGJsQWdncjo6QWRkSGFzaFRibChjbGFzcyBDU2xvdExpc3RTaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkSGFzaFRibEBDSGFzaFRibEFnZ3JAQFFFQUFIUEVBVkNTbG90TGlzdFNob3J0QEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1V0bFByb3BzMjo6QWRkSW50ZXJuYWxGbGFncyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BZGRJbnRlcm5hbEZsYWdzQENVdGxQcm9wczJAQFFFQUFYS0tLQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NsYXNzRmFjdG9yeTo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQENDbGFzc0ZhY3RvcnlAQFVFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENFbnVtOjpBZGRSZWYodm9pZCkgX19wdHI2NA0KKz9BZGRSZWZAQ0VudW1AQFFFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0VudW1Db25uZWN0aW9uUG9pbnRzOjpBZGRSZWYodm9pZCkgX19wdHI2NA0KKz9BZGRSZWZAQ0VudW1Db25uZWN0aW9uUG9pbnRzQEBVRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENFbnVtQ29ubmVjdGlvbnM6OkFkZFJlZih2b2lkKSBfX3B0cjY0DQorP0FkZFJlZkBDRW51bUNvbm5lY3Rpb25zQEBVRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENIZWFwRGlzcGVuc2VyOjpBZGRSZWYodm9pZCkgX19wdHI2NA0KKz9BZGRSZWZAQ0hlYXBEaXNwZW5zZXJAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludDo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQENSb3dzZXRDb25uZWN0aW9uUG9pbnRAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lcjo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXJAQFVFQUFLWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDU2xvdExpc3RTaG9ydDo6QWRkU2xvdFRvTGlzdChzdHJ1Y3QgdGFnU0xPVCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkU2xvdFRvTGlzdEBDU2xvdExpc3RTaG9ydEBAQUVBQVhQRUFVdGFnU0xPVEBAQFoNCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0hhc2hUYmw6OkFkanVzdFJhbmdlKHVuc2lnbmVkIGxvbmcpDQorP0FkanVzdFJhbmdlQENIYXNoVGJsQEBDQUtLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludDo6QWR2aXNlKHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWR2aXNlQENSb3dzZXRDb25uZWN0aW9uUG9pbnRAQFVFQUFKUEVBVUlVbmtub3duQEBQRUFLQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENXU3RyaW5nOjpBbGxvY0J1ZmZlcihpbnQpIF9fcHRyNjQNCis/QWxsb2NCdWZmZXJAQ1dTdHJpbmdAQElFQUFYSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDV1N0cmluZzo6QWxsb2NDb3B5KGNsYXNzIENXU3RyaW5nICYgX19wdHI2NCxpbnQsaW50LGludCljb25zdCAgX19wdHI2NA0KKz9BbGxvY0NvcHlAQ1dTdHJpbmdAQElFQkFYQUVBVjFASEhIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDRXh0QnVmZmVyOjpBbGxvY0l0ZW1zKHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/QWxsb2NJdGVtc0BDRXh0QnVmZmVyQEBRRUFBUEVBRV9LQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENCaXRBcnJheTo6QXJyYXlFbXB0eSh2b2lkKSBfX3B0cjY0DQorP0FycmF5RW1wdHlAQ0JpdEFycmF5QEBRRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDV1N0cmluZzo6QXNzaWduQ29weShpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0Fzc2lnbkNvcHlAQ1dTdHJpbmdAQElFQUFYSFBFQkdAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENVdGxQcm9wSW5mbzo6Q2FsY0Rlc2NyaXBCdWZmZXJzKHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ0RCUFJPUElORk9TRVQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NhbGNEZXNjcmlwQnVmZmVyc0BDVXRsUHJvcEluZm9AQEFFQUFLS1BFQVV0YWdEQlBST1BJTkZPU0VUQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENIYXNoVGJsOjpDYkhhc2hUYmxTaXplKHVuc2lnbmVkIGxvbmcpDQorP0NiSGFzaFRibFNpemVAQ0hhc2hUYmxAQFNBS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1dTdHJpbmc6OkNsZWFyRXJyb3Iodm9pZCkgX19wdHI2NA0KKz9DbGVhckVycm9yQENXU3RyaW5nQEBRRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1V0bFByb3BzMjo6Q2xlYXJNZW1iZXJWYXJzKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJNZW1iZXJWYXJzQENVdGxQcm9wczJAQEFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENVdGxQcm9wczI6OkNsZWFyUHJvcFN1cHBvcnRlZCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Q2xlYXJQcm9wU3VwcG9ydGVkQENVdGxQcm9wczJAQFFFQUFYS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1V0bFByb3BzMjo6Q2xlYXJQcm9wZXJ0eUluRXJyb3Iodm9pZCkgX19wdHI2NA0KKz9DbGVhclByb3BlcnR5SW5FcnJvckBDVXRsUHJvcHMyQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVXRsUHJvcHMyOjpDbGVhclByb3BzU3VwcG9ydGVkKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJQcm9wc1N1cHBvcnRlZEBDVXRsUHJvcHMyQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENFbnVtQ29ubmVjdGlvblBvaW50czo6Q2xvbmUoc3RydWN0IElFbnVtQ29ubmVjdGlvblBvaW50cyAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0Nsb25lQENFbnVtQ29ubmVjdGlvblBvaW50c0BAVUVBQUpQRUFQRUFVSUVudW1Db25uZWN0aW9uUG9pbnRzQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDRW51bUNvbm5lY3Rpb25zOjpDbG9uZShzdHJ1Y3QgSUVudW1Db25uZWN0aW9ucyAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0Nsb25lQENFbnVtQ29ubmVjdGlvbnNAQFVFQUFKUEVBUEVBVUlFbnVtQ29ubmVjdGlvbnNAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRXh0QnVmZmVyOjpDb21wYWN0RXh0QnVmZmVyKHZvaWQpIF9fcHRyNjQNCis/Q29tcGFjdEV4dEJ1ZmZlckBDRXh0QnVmZmVyQEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXU3RyaW5nOjpDb21wYXJlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db21wYXJlQENXU3RyaW5nQEBRRUJBSFBFQkdAWg0KKzsgbG9uZyBfX2NkZWNsIENvbXBhcmVEQklEcyhzdHJ1Y3QgdGFnREJJRCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IHRhZ0RCSUQgY29uc3QgKiBfX3B0cjY0KQ0KKz9Db21wYXJlREJJRHNAQFlBSlBFQlV0YWdEQklEQEAwQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDSGVhcERpc3BlbnNlcjo6Q29tcGFyZVJlc291cmNlKHZvaWQgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbXBhcmVSZXNvdXJjZUBDSGVhcERpc3BlbnNlckBAVUVBQUhQRUFYMEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDV1N0cmluZzo6Q29uY2F0Q29weShpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29uY2F0Q29weUBDV1N0cmluZ0BASUVBQVhIUEVCR0gwQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENXU3RyaW5nOjpDb25jYXRJblBsYWNlKGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29uY2F0SW5QbGFjZUBDV1N0cmluZ0BAUUVBQVhIUEVCR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ1V0bFByb3BzMjo6Q29uZmxpY3RzV2l0aEN1cnJlbnQodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdWQVJJQU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db25mbGljdHNXaXRoQ3VycmVudEBDVXRsUHJvcHMyQEBVRUFBSEtLQUVCVXRhZ1ZBUklBTlRAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDVXRsUHJvcHMyOjpDb252ZXJ0Um93c2V0SUlEdG9EQlBST1BTRVQoc3RydWN0IF9HVUlEIGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgdGFnREJQUk9QU0VUICogX19wdHI2NCkgX19wdHI2NA0KKz9Db252ZXJ0Um93c2V0SUlEdG9EQlBST1BTRVRAQ1V0bFByb3BzMkBAUUVBQUpQRUJVX0dVSURAQFBFQVV0YWdEQlBST1BTRVRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVXRsUHJvcHMyOjpDb3B5QXZhaWxVUHJvcFNldHModW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsc3RydWN0IHRhZ1VQUk9QU0VUIGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weUF2YWlsVVByb3BTZXRzQENVdGxQcm9wczJAQFFFQUFYUEVBS1BFQVBFQlV0YWdVUFJPUFNFVEBAMEBaDQorOyBsb25nIF9fY2RlY2wgQ29weURCSURzKHN0cnVjdCB0YWdEQklEICogX19wdHI2NCxzdHJ1Y3QgdGFnREJJRCBjb25zdCAqIF9fcHRyNjQpDQorP0NvcHlEQklEc0BAWUFKUEVBVXRhZ0RCSURAQFBFQlUxQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVXRsUHJvcHMyOjpDb3B5UHJvcHNJbkVycm9yKHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlQcm9wc0luRXJyb3JAQ1V0bFByb3BzMkBAUUVBQVhQRUFLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENVdGxQcm9wczI6OkNvcHlQcm9wc0luRXJyb3IoY2xhc3MgQ1V0bFByb3BzMiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weVByb3BzSW5FcnJvckBDVXRsUHJvcHMyQEBRRUFBWFBFQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVXRsUHJvcHMyOjpDb3B5VVByb3BJbmZvKHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1VQUk9QSU5GTyAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlVUHJvcEluZm9AQ1V0bFByb3BzMkBAUUVBQVhLUEVBUEVBVXRhZ1VQUk9QSU5GT0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENVdGxQcm9wczI6OkNvcHlVUHJvcFNldHNTdXBwb3J0ZWQodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weVVQcm9wU2V0c1N1cHBvcnRlZEBDVXRsUHJvcHMyQEBRRUFBWFBFQUtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1V0bFByb3BzMjo6Q29weVVQcm9wVmFsKHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1VQUk9QVkFMICogX19wdHI2NCxjbGFzcyBDQ29sdW1uSWRzICogX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5VVByb3BWYWxAQ1V0bFByb3BzMkBAUUVBQUpLUEVBVXRhZ1VQUk9QVkFMQEBQRUFWQ0NvbHVtbklkc0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgQ1Nsb3RMaXN0TG9uZzo6Q291bnRPZkJ1c3lTbG90cyh2b2lkKSBfX3B0cjY0DQorP0NvdW50T2ZCdXN5U2xvdHNAQ1Nsb3RMaXN0TG9uZ0BAVUVBQV9LWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgQ1Nsb3RMaXN0U2hvcnQ6OkNvdW50T2ZCdXN5U2xvdHModm9pZCkgX19wdHI2NA0KKz9Db3VudE9mQnVzeVNsb3RzQENTbG90TGlzdFNob3J0QEBVRUFBX0tYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDSGVhcERpc3BlbnNlcjo6Q3JlYXRlUmVzb3VyY2Uodm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVSZXNvdXJjZUBDSGVhcERpc3BlbnNlckBAVUVBQUpQRUFYSzBQRUFQRUFYUEVBSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRXh0QnVmZmVyOjpEV09SREludG9FeHRCdWZmZXIodW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9EV09SREludG9FeHRCdWZmZXJAQ0V4dEJ1ZmZlckBAUUVBQUpfS0BaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1Nsb3RMaXN0U2hvcnQ6OkRlY291cGxlU2xvdChzdHJ1Y3QgdGFnU0xPVCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVjb3VwbGVTbG90QENTbG90TGlzdFNob3J0QEBBRUFBWFBFQVV0YWdTTE9UQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDSGFzaFRibDo6RGVsZXRlQm1rKHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/RGVsZXRlQm1rQENIYXNoVGJsQEBVRUFBSl9LQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0hhc2hUYmxBZ2dyOjpEZWxldGVCbWsodW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9EZWxldGVCbWtAQ0hhc2hUYmxBZ2dyQEBVRUFBSl9LQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENFeHRCdWZmZXI6OkRlbGV0ZUZyb21FeHRCdWZmZXIodW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9EZWxldGVGcm9tRXh0QnVmZmVyQENFeHRCdWZmZXJAQFFFQUFYX0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0V4dEJ1ZmZlcjo6RGVsZXRlV2l0aENvbXBhY3RGcm9tRXh0QnVmZmVyKHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/RGVsZXRlV2l0aENvbXBhY3RGcm9tRXh0QnVmZmVyQENFeHRCdWZmZXJAQFFFQUFYX0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDSGVhcERpc3BlbnNlcjo6RGVzdHJveVJlc291cmNlKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0Rlc3Ryb3lSZXNvdXJjZUBDSGVhcERpc3BlbnNlckBAVUVBQUpQRUFYQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXI6OkRvRmNOb3RpZnkodW5zaWduZWQgbG9uZyxlbnVtIERCUkVBU09ORU5VTSxlbnVtIERCRVZFTlRQSEFTRUVOVU0sc3RydWN0IElSb3dzZXQgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0ICogX19wdHI2NCBjb25zdCkgX19wdHI2NA0KKz9Eb0ZjTm90aWZ5QENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXJAQFFFQUFKS1c0REJSRUFTT05FTlVNQEBXNERCRVZFTlRQSEFTRUVOVU1AQFBFQVVJUm93c2V0QEBfSzNRRUFfS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDUm93c2V0Q29ubmVjdGlvblBvaW50OjpEb05vdGlmeShlbnVtIERCUkVBU09ORU5VTSxlbnVtIERCRVZFTlRQSEFTRUVOVU0sZW51bSBFTk9USUZJQ0FUSU9OVFlQRSxzdHJ1Y3QgSVJvd3NldCAqIF9fcHRyNjQsdW5pb24gdGFnTk9USUZZQVJHUyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RG9Ob3RpZnlAQ1Jvd3NldENvbm5lY3Rpb25Qb2ludEBAUUVBQUpXNERCUkVBU09ORU5VTUBAVzREQkVWRU5UUEhBU0VFTlVNQEBXNEVOT1RJRklDQVRJT05UWVBFQEBQRUFVSVJvd3NldEBAUEVBVHRhZ05PVElGWUFSR1NAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDUm93c2V0Q29ubmVjdGlvblBvaW50Q29udGFpbmVyOjpEb1JjTm90aWZ5KHVuc2lnbmVkIGxvbmcsZW51bSBEQlJFQVNPTkVOVU0sZW51bSBEQkVWRU5UUEhBU0VFTlVNLHN0cnVjdCBJUm93c2V0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQgKiBfX3B0cjY0IGNvbnN0KSBfX3B0cjY0DQorP0RvUmNOb3RpZnlAQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lckBAUUVBQUpLVzREQlJFQVNPTkVOVU1AQFc0REJFVkVOVFBIQVNFRU5VTUBAUEVBVUlSb3dzZXRAQF9LUUVBX0tAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lcjo6RG9Sc2NOb3RpZnkodW5zaWduZWQgbG9uZyxlbnVtIERCUkVBU09ORU5VTSxlbnVtIERCRVZFTlRQSEFTRUVOVU0sc3RydWN0IElSb3dzZXQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RvUnNjTm90aWZ5QENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXJAQFFFQUFKS1c0REJSRUFTT05FTlVNQEBXNERCRVZFTlRQSEFTRUVOVU1AQFBFQVVJUm93c2V0QEBAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIER3R2V0UGxhdGZvcm1JZCh2b2lkKQ0KKz9Ed0dldFBsYXRmb3JtSWRAQFlBS1haDQorOyBwdWJsaWM6IGNsYXNzIENXU3RyaW5nICBfX2NkZWNsIENXU3RyaW5nOjpFbGVtZW50QXQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IGNvbnN0LGludCljb25zdCAgX19wdHI2NA0KKz9FbGVtZW50QXRAQ1dTdHJpbmdAQFFFQkE/QVYxQFFFQUdIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENXU3RyaW5nOjpFbXB0eSh2b2lkKSBfX3B0cjY0DQorP0VtcHR5QENXU3RyaW5nQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXI6OkVudW1Db25uZWN0aW9uUG9pbnRzKHN0cnVjdCBJRW51bUNvbm5lY3Rpb25Qb2ludHMgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9FbnVtQ29ubmVjdGlvblBvaW50c0BDUm93c2V0Q29ubmVjdGlvblBvaW50Q29udGFpbmVyQEBVRUFBSlBFQVBFQVVJRW51bUNvbm5lY3Rpb25Qb2ludHNAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENSb3dzZXRDb25uZWN0aW9uUG9pbnQ6OkVudW1Db25uZWN0aW9ucyhzdHJ1Y3QgSUVudW1Db25uZWN0aW9ucyAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0VudW1Db25uZWN0aW9uc0BDUm93c2V0Q29ubmVjdGlvblBvaW50QEBVRUFBSlBFQVBFQVVJRW51bUNvbm5lY3Rpb25zQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ0Jhc2VPYmo6OkZJbml0KHZvaWQpIF9fcHRyNjQNCis/RkluaXRAQ0Jhc2VPYmpAQElFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENCaXRBcnJheTo6RkluaXQodW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9GSW5pdEBDQml0QXJyYXlAQFFFQUFKX0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRXh0QnVmZmVyOjpGSW5pdChjbGFzcyBDRXh0QnVmZmVyICogX19wdHI2NCkgX19wdHI2NA0KKz9GSW5pdEBDRXh0QnVmZmVyQEBRRUFBSFBFQVYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENFeHRCdWZmZXI6OkZJbml0KHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9GSW5pdEBDRXh0QnVmZmVyQEBRRUFBSF9LMEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENFeHRCdWZmZXI6OkZJbml0KHVuc2lnbmVkIF9faW50NjQsdm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP0ZJbml0QENFeHRCdWZmZXJAQFFFQUFIX0tQRUFYMDBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSGFzaFRibDo6RkluaXQodW5zaWduZWQgc2hvcnQsY2xhc3MgQ1Nsb3RMaXN0U2hvcnQgKiBfX3B0cjY0LGNsYXNzIElCb29rbWFya09iaiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RkluaXRAQ0hhc2hUYmxAQFFFQUFIR1BFQVZDU2xvdExpc3RTaG9ydEBAUEVBVklCb29rbWFya09iakBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0hhc2hUYmxBZ2dyOjpGSW5pdChjbGFzcyBDSGFzaFRibCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RkluaXRAQ0hhc2hUYmxBZ2dyQEBRRUFBSFBFQVZDSGFzaFRibEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDU2xvdExpc3RMb25nOjpGSW5pdCh1bnNpZ25lZCBfX2ludDY0LGNsYXNzIElTbG90TGlzdCAqIF9fcHRyNjQgKiBfX3B0cjY0LGNsYXNzIElIYXNoVGJsICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9GSW5pdEBDU2xvdExpc3RMb25nQEBVRUFBSF9LUEVBUEVBVklTbG90TGlzdEBAUEVBUEVBVklIYXNoVGJsQEAwQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDU2xvdExpc3RTaG9ydDo6RkluaXQodW5zaWduZWQgX19pbnQ2NCxjbGFzcyBJU2xvdExpc3QgKiBfX3B0cjY0ICogX19wdHI2NCxjbGFzcyBJSGFzaFRibCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/RkluaXRAQ1Nsb3RMaXN0U2hvcnRAQFVFQUFIX0tQRUFQRUFWSVNsb3RMaXN0QEBQRUFQRUFWSUhhc2hUYmxAQDBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1V0bFByb3BJbmZvOjpGSW5pdCh2b2lkKSBfX3B0cjY0DQorP0ZJbml0QENVdGxQcm9wSW5mb0BAUUVBQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDVXRsUHJvcHMyOjpGSW5pdChjbGFzcyBDVXRsUHJvcHMyICogX19wdHI2NCkgX19wdHI2NA0KKz9GSW5pdEBDVXRsUHJvcHMyQEBVRUFBSlBFQVYxQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENVdGxQcm9wc0Zhc3RMb29rdXAyOjpGSW5pdChjbGFzcyBDVXRsUHJvcHNGYXN0TG9va3VwMiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RkluaXRAQ1V0bFByb3BzRmFzdExvb2t1cDJAQFVFQUFKUEVBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1ZMSGVhcDo6RkluaXQodW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9GSW5pdEBDVkxIZWFwQEBRRUFBSF9LQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENHZW5lcmljUG9vbGVyOjpGSW5pdGlhbGl6ZUdQU3RydWN0dXJlcyh2b2lkKSBfX3B0cjY0DQorP0ZJbml0aWFsaXplR1BTdHJ1Y3R1cmVzQENHZW5lcmljUG9vbGVyQEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENVdGxQcm9wczI6OkZJc0RlZmF1bHRWYWx1ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1ZBUklBTlQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZJc0RlZmF1bHRWYWx1ZUBDVXRsUHJvcHMyQEBRRUFBSEtLUEVBVXRhZ1ZBUklBTlRAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ1V0bFByb3BzMjo6RklzVmFsaWRDb2xJZChzdHJ1Y3QgdGFnREJQUk9QICogX19wdHI2NCkgX19wdHI2NA0KKz9GSXNWYWxpZENvbElkQENVdGxQcm9wczJAQFVFQUFIUEVBVXRhZ0RCUFJPUEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENVdGxQcm9wczI6OkZpbGxEZWZhdWx0VmFsdWVzKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RmlsbERlZmF1bHRWYWx1ZXNAQ1V0bFByb3BzMkBAUUVBQUpLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lcjo6RmluZENvbm5lY3Rpb25Qb2ludChzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHN0cnVjdCBJQ29ubmVjdGlvblBvaW50ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmluZENvbm5lY3Rpb25Qb2ludEBDUm93c2V0Q29ubmVjdGlvblBvaW50Q29udGFpbmVyQEBVRUFBSkFFQlVfR1VJREBAUEVBUEVBVUlDb25uZWN0aW9uUG9pbnRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29ubmVjdERhdGE6OkZvcmdldEV2ZW50KGVudW0gREJSRUFTT05FTlVNLGVudW0gREJFVkVOVFBIQVNFRU5VTSkgX19wdHI2NA0KKz9Gb3JnZXRFdmVudEBDQ29ubmVjdERhdGFAQFFFQUFYVzREQlJFQVNPTkVOVU1AQFc0REJFVkVOVFBIQVNFRU5VTUBAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDUm93c2V0Q29ubmVjdGlvblBvaW50OjpGb3JnZXRFdmVudChlbnVtIERCUkVBU09ORU5VTSxlbnVtIERCRVZFTlRQSEFTRUVOVU0pIF9fcHRyNjQNCis/Rm9yZ2V0RXZlbnRAQ1Jvd3NldENvbm5lY3Rpb25Qb2ludEBAQUVBQVhXNERCUkVBU09ORU5VTUBAVzREQkVWRU5UUEhBU0VFTlVNQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Nvbm5lY3REYXRhOjpGb3JnZXRSZWFzb24oZW51bSBEQlJFQVNPTkVOVU0pIF9fcHRyNjQNCis/Rm9yZ2V0UmVhc29uQENDb25uZWN0RGF0YUBAUUVBQVhXNERCUkVBU09ORU5VTUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1dTdHJpbmc6OkZvdW5kRXJyb3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9Gb3VuZEVycm9yQENXU3RyaW5nQEBRRUJBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRXh0QnVmZmVyOjpGcmVlKHZvaWQpIF9fcHRyNjQNCis/RnJlZUBDRXh0QnVmZmVyQEBRRUFBWFhaDQorOyB2b2lkIF9fY2RlY2wgRnJlZURCSURzKHN0cnVjdCB0YWdEQklEICogX19wdHI2NCkNCis/RnJlZURCSURzQEBZQVhQRUFVdGFnREJJREBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENXU3RyaW5nOjpGcmVlRXh0cmEodm9pZCkgX19wdHI2NA0KKz9GcmVlRXh0cmFAQ1dTdHJpbmdAQFFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDVXRsUHJvcHMyOjpGcmVlTWVtb3J5KHZvaWQpIF9fcHRyNjQNCis/RnJlZU1lbW9yeUBDVXRsUHJvcHMyQEBBRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXU3RyaW5nOjpHZXRBbGxvY0xlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEFsbG9jTGVuZ3RoQENXU3RyaW5nQEBRRUJBSFhaDQorOyBwdWJsaWM6IGVudW0gRUJhc2VPYmplY3RUeXBlICBfX2NkZWNsIENCYXNlT2JqOjpHZXRCYXNlT2JqZWN0VHlwZSh2b2lkKSBfX3B0cjY0DQorP0dldEJhc2VPYmplY3RUeXBlQENCYXNlT2JqQEBRRUFBP0FXNEVCYXNlT2JqZWN0VHlwZUBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ0Jhc2VPYmo6OkdldEJhc2VPYmplY3RUeXBlTmFtZSh2b2lkKSBfX3B0cjY0DQorP0dldEJhc2VPYmplY3RUeXBlTmFtZUBDQmFzZU9iakBAUUVBQVBFQUdYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Jhc2VPYmpab21iaWU6OkdldEJva29UaW1lc3RhbXAodm9pZCkgX19wdHI2NA0KKz9HZXRCb2tvVGltZXN0YW1wQENCYXNlT2JqWm9tYmllQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENXU3RyaW5nOjpHZXRCdWZmZXIoaW50KSBfX3B0cjY0DQorP0dldEJ1ZmZlckBDV1N0cmluZ0BAUUVBQVBFQUdIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1dTdHJpbmc6OkdldEJ1ZmZlclNldExlbmd0aChpbnQpIF9fcHRyNjQNCis/R2V0QnVmZmVyU2V0TGVuZ3RoQENXU3RyaW5nQEBRRUFBUEVBR0hAWg0KKzsgcHVibGljOiBzdHJ1Y3QgdGFnQ09OTkVDVERBVEEgKiBfX3B0cjY0IF9fY2RlY2wgQ0Nvbm5lY3REYXRhOjpHZXRDZCh2b2lkKSBfX3B0cjY0DQorP0dldENkQENDb25uZWN0RGF0YUBAUUVBQVBFQVV0YWdDT05ORUNUREFUQUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludDo6R2V0Q29ubmVjdGlvbkludGVyZmFjZShzdHJ1Y3QgX0dVSUQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldENvbm5lY3Rpb25JbnRlcmZhY2VAQ1Jvd3NldENvbm5lY3Rpb25Qb2ludEBAVUVBQUpQRUFVX0dVSURAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENSb3dzZXRDb25uZWN0aW9uUG9pbnQ6OkdldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lcihzdHJ1Y3QgSUNvbm5lY3Rpb25Qb2ludENvbnRhaW5lciAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lckBDUm93c2V0Q29ubmVjdGlvblBvaW50QEBVRUFBSlBFQVBFQVVJQ29ubmVjdGlvblBvaW50Q29udGFpbmVyQEBAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENVdGxQcm9wczI6OkdldENvdW50b2ZDb2xpZHMoc3RydWN0IHRhZ1VQUk9QICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDb3VudG9mQ29saWRzQENVdGxQcm9wczJAQEFFQUFLUEVBVXRhZ1VQUk9QQEBAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENVdGxQcm9wczI6OkdldENvdW50b2ZXcml0YWJsZVByb3BzSW5Qcm9wU2V0KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/R2V0Q291bnRvZldyaXRhYmxlUHJvcHNJblByb3BTZXRAQ1V0bFByb3BzMkBAQUVBQUtLQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NyaXRpY2FsU2VjdGlvbiAqIF9fcHRyNjQgKiBfX3B0cjY0IF9fY2RlY2wgQ0Jhc2VPYmo6OkdldENyaXRpY2FsU2VjdGlvbih2b2lkKSBfX3B0cjY0DQorP0dldENyaXRpY2FsU2VjdGlvbkBDQmFzZU9iakBAUUVBQVBFQVBFQVZDQ3JpdGljYWxTZWN0aW9uQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgQ0V4dEJ1ZmZlcjo6R2V0RFdPUkRPZkV4dEJ1ZmZlcih1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP0dldERXT1JET2ZFeHRCdWZmZXJAQ0V4dEJ1ZmZlckBAUUVBQV9LX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENVdGxQcm9wczI6OkdldEV4cGVjdGVkVmFyVHlwZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/R2V0RXhwZWN0ZWRWYXJUeXBlQENVdGxQcm9wczJAQFFFQUFHS0tAWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0dVSUQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ1V0bFByb3BzMjo6R2V0R3VpZCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldEd1aWRAQ1V0bFByb3BzMkBAUUVBQVBFQlVfR1VJREBAS0BaDQorOyBwdWJsaWM6IGNsYXNzIENIZWFwRGlzcGVuc2VyICogX19wdHI2NCBfX2NkZWNsIENHZW5lcmljUG9vbGVyOjpHZXRIZWFwRGlzcGVuc2VyKHZvaWQpIF9fcHRyNjQNCis/R2V0SGVhcERpc3BlbnNlckBDR2VuZXJpY1Bvb2xlckBAUUVBQVBFQVZDSGVhcERpc3BlbnNlckBAWFoNCis7IHB1YmxpYzogc3RydWN0IElHUEhvbGRlciAqIF9fcHRyNjQgX19jZGVjbCBDR2VuZXJpY1Bvb2xlcjo6R2V0SGVhcEhvbGRlcih2b2lkKSBfX3B0cjY0DQorP0dldEhlYXBIb2xkZXJAQ0dlbmVyaWNQb29sZXJAQFFFQUFQRUFVSUdQSG9sZGVyQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDVXRsUHJvcHMyOjpHZXRJbmRleG9mUHJvcElkaW5Qcm9wU2V0KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRJbmRleG9mUHJvcElkaW5Qcm9wU2V0QENVdGxQcm9wczJAQFVFQUFKS0tQRUFLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1V0bFByb3BzRmFzdExvb2t1cDI6OkdldEluZGV4b2ZQcm9wSWRpblByb3BTZXQodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEluZGV4b2ZQcm9wSWRpblByb3BTZXRAQ1V0bFByb3BzRmFzdExvb2t1cDJAQE1FQUFKS0tQRUFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1V0bFByb3BzMjo6R2V0SW5kZXhvZlByb3BTZXQoc3RydWN0IF9HVUlEIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRJbmRleG9mUHJvcFNldEBDVXRsUHJvcHMyQEBVRUFBSlBFQlVfR1VJREBAUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDVXRsUHJvcHMyOjpHZXRJbnRlcm5hbEZsYWdzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9HZXRJbnRlcm5hbEZsYWdzQENVdGxQcm9wczJAQFFFQUFLS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1V0bFByb3BzMjo6R2V0SW50ZXJuYWxTdGF0dXModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldEludGVybmFsU3RhdHVzQENVdGxQcm9wczJAQFFFQUFLS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgQ0V4dEJ1ZmZlcjo6R2V0SXRlbUNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0SXRlbUNvdW50QENFeHRCdWZmZXJAQFFFQkFfS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBDRXh0QnVmZmVyOjpHZXRJdGVtTWF4KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0SXRlbU1heEBDRXh0QnVmZmVyQEBRRUJBX0tYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0V4dEJ1ZmZlcjo6R2V0SXRlbU9mRXh0QnVmZmVyKHVuc2lnbmVkIF9faW50NjQsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0SXRlbU9mRXh0QnVmZmVyQENFeHRCdWZmZXJAQFFFQUFYX0tQRUFYQFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIENFeHRCdWZmZXI6OkdldEl0ZW1TaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0SXRlbVNpemVAQ0V4dEJ1ZmZlckBAUUVCQV9LWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENFeHRCdWZmZXI6OkdldExhc3RJdGVtSGFuZGxlKHVuc2lnbmVkIF9faW50NjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldExhc3RJdGVtSGFuZGxlQENFeHRCdWZmZXJAQFFFQUFYQUVBX0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV1N0cmluZzo6R2V0TGVuZ3RoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0TGVuZ3RoQENXU3RyaW5nQEBRRUJBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENFeHRCdWZmZXI6OkdldE5hbWVGcm9tT2Zmc2V0KHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/R2V0TmFtZUZyb21PZmZzZXRAQ0V4dEJ1ZmZlckBAUUVBQVBFQUdfS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENTbG90TGlzdExvbmc6OkdldE5leHRTbG90cyh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TmV4dFNsb3RzQENTbG90TGlzdExvbmdAQFVFQUFKX0swUEVBX0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDU2xvdExpc3RTaG9ydDo6R2V0TmV4dFNsb3RzKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXROZXh0U2xvdHNAQ1Nsb3RMaXN0U2hvcnRAQFVFQUFKX0swUEVBX0tAWg0KKzsgcHJpdmF0ZTogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBDRW51bTo6R2V0TnRoRWxlbWVudCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldE50aEVsZW1lbnRAQ0VudW1AQEFFQUFQRUFYS0BaDQorOyBwcml2YXRlOiBzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0IF9fY2RlY2wgQ0VudW06OkdldE50aFVua25vd24odW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9HZXROdGhVbmtub3duQENFbnVtQEBBRUFBUEVBVUlVbmtub3duQEBLQFoNCis7IHB1YmxpYzogc3RydWN0IElVbmtub3duICogX19wdHI2NCBfX2NkZWNsIENCYXNlT2JqOjpHZXRPdXRlclVua25vd24odm9pZCkgX19wdHI2NA0KKz9HZXRPdXRlclVua25vd25AQ0Jhc2VPYmpAQFFFQUFQRUFVSVVua25vd25AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDVXRsUHJvcHMyOjpHZXRQcm9wSUQodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldFByb3BJREBDVXRsUHJvcHMyQEBRRUFBS0tLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENVdGxQcm9wczI6OkdldFByb3BPcHRpb24odW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldFByb3BPcHRpb25AQ1V0bFByb3BzMkBAUUVBQUtLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDVXRsUHJvcHMyOjpHZXRQcm9wU3RhdHVzKHN0cnVjdCB0YWdVUFJPUFZBTCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcFN0YXR1c0BDVXRsUHJvcHMyQEBRRUFBS1BFQVV0YWdVUFJPUFZBTEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENVdGxQcm9wczI6OkdldFByb3BWYWx1ZShzdHJ1Y3QgX0dVSUQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1ZBUklBTlQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFByb3BWYWx1ZUBDVXRsUHJvcHMyQEBRRUFBSlBFQlVfR1VJREBAS1BFQVV0YWdWQVJJQU5UQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1V0bFByb3BzMjo6R2V0UHJvcGVydGllcyh1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdEQlBST1BJRFNFVCBjb25zdCAqIF9fcHRyNjQgY29uc3QsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsc3RydWN0IHRhZ0RCUFJPUFNFVCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFByb3BlcnRpZXNAQ1V0bFByb3BzMkBAUUVBQUpLUUVCVXRhZ0RCUFJPUElEU0VUQEBQRUFLUEVBUEVBVXRhZ0RCUFJPUFNFVEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENVdGxQcm9wczI6OkdldFByb3BlcnRpZXModW5zaWduZWQgbG9uZyxzdHJ1Y3QgdGFnREJQUk9QSURTRVQgY29uc3QgKiBfX3B0cjY0IGNvbnN0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHN0cnVjdCB0YWdEQlBST1BTRVQgKiBfX3B0cjY0ICogX19wdHI2NCxzdHJ1Y3QgX0dVSUQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFByb3BlcnRpZXNAQ1V0bFByb3BzMkBAUUVBQUpLUUVCVXRhZ0RCUFJPUElEU0VUQEBQRUFLUEVBUEVBVXRhZ0RCUFJPUFNFVEBAUEVCVV9HVUlEQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1V0bFByb3BzMjo6R2V0UHJvcGVydGllc0FyZ0Noayh1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdEQlBST1BJRFNFVCBjb25zdCAqIF9fcHRyNjQgY29uc3QsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsc3RydWN0IHRhZ0RCUFJPUFNFVCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFByb3BlcnRpZXNBcmdDaGtAQ1V0bFByb3BzMkBAUUVBQUpLUUVCVXRhZ0RCUFJPUElEU0VUQEBQRUFLUEVBUEVBVXRhZ0RCUFJPUFNFVEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENVdGxQcm9wSW5mbzo6R2V0UHJvcGVydHlJbmZvKHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ0RCUFJPUElEU0VUIGNvbnN0ICogX19wdHI2NCBjb25zdCx1bnNpZ25lZCBsb25nICogX19wdHI2NCxzdHJ1Y3QgdGFnREJQUk9QSU5GT1NFVCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcGVydHlJbmZvQENVdGxQcm9wSW5mb0BAUUVBQUpLUUVCVXRhZ0RCUFJPUElEU0VUQEBQRUFLUEVBUEVBVXRhZ0RCUFJPUElORk9TRVRAQFBFQVBFQUdAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIENVdGxQcm9wSW5mbzo6R2V0UHJvcGVydHlTZXRJbmRleChzdHJ1Y3QgX0dVSUQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFByb3BlcnR5U2V0SW5kZXhAQ1V0bFByb3BJbmZvQEBBRUFBSlBFQlVfR1VJREBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQgX19jZGVjbCBDVXRsUHJvcHMyOjpHZXRQcm9wc0luRXJyb3JQdHIodm9pZCkgX19wdHI2NA0KKz9HZXRQcm9wc0luRXJyb3JQdHJAQ1V0bFByb3BzMkBAUUVBQVBFQUtYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENFeHRCdWZmZXI6OkdldFB0ck9mRXh0QnVmZmVyKHZvaWQpIF9fcHRyNjQNCis/R2V0UHRyT2ZFeHRCdWZmZXJAQ0V4dEJ1ZmZlckBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENFeHRCdWZmZXI6OkdldFB0ck9mRXh0QnVmZmVyKHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/R2V0UHRyT2ZFeHRCdWZmZXJAQ0V4dEJ1ZmZlckBAUUVBQVBFQVhfS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDR2VuZXJpY1Bvb2xlcjo6R2V0UmVzb3VyY2Uodm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCBJR1BIb2xkZXIgKiBfX3B0cjY0LHN0cnVjdCBJR1BEaXNwZW5zZXIgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRSZXNvdXJjZUBDR2VuZXJpY1Bvb2xlckBAUUVBQUpQRUFQRUFYUEVBVUlHUEhvbGRlckBAUEVBVUlHUERpc3BlbnNlckBAMFBFQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCB0YWdSb3dCdWZmICogX19wdHI2NCBfX2NkZWNsIENTbG90TGlzdExvbmc6OkdldFJvd0J1ZmYodW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9HZXRSb3dCdWZmQENTbG90TGlzdExvbmdAQFVFQUFQRUFVdGFnUm93QnVmZkBAX0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCB0YWdSb3dCdWZmICogX19wdHI2NCBfX2NkZWNsIENTbG90TGlzdFNob3J0OjpHZXRSb3dCdWZmKHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/R2V0Um93QnVmZkBDU2xvdExpc3RTaG9ydEBAVUVBQVBFQVV0YWdSb3dCdWZmQEBfS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDVXRsUHJvcHMyOjpHZXRTdGF0dXModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldFN0YXR1c0BDVXRsUHJvcHMyQEBRRUFBS0tLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENCYXNlT2JqQm9rbzo6R2V0VGltZXN0YW1wKHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFRpbWVzdGFtcEBDQmFzZU9iakJva29AQFFFQUFYUEVBS0BaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgQ1V0bFByb3BJbmZvOjpHZXRVUHJvcEluZm9QdHIodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdVUFJPUElORk8gKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRVUHJvcEluZm9QdHJAQ1V0bFByb3BJbmZvQEBBRUFBSktLUEVBUEVBVXRhZ1VQUk9QSU5GT0BAQFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENVdGxQcm9wSW5mbzo6R2V0VVByb3BTZXRDb3VudCh2b2lkKSBfX3B0cjY0DQorP0dldFVQcm9wU2V0Q291bnRAQ1V0bFByb3BJbmZvQEBJRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDVXRsUHJvcHMyOjpHZXRVUHJvcFNldENvdW50KHZvaWQpIF9fcHRyNjQNCis/R2V0VVByb3BTZXRDb3VudEBDVXRsUHJvcHMyQEBRRUFBS1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENVdGxQcm9wczI6OkdldFVQcm9wVmFsSW5kZXgodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldFVQcm9wVmFsSW5kZXhAQ1V0bFByb3BzMkBATUVBQUtLS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENVdGxQcm9wc0Zhc3RMb29rdXAyOjpHZXRVUHJvcFZhbEluZGV4KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9HZXRVUHJvcFZhbEluZGV4QENVdGxQcm9wc0Zhc3RMb29rdXAyQEBNRUFBS0tLQFoNCis7IHB1YmxpYzogc2hvcnQgX19jZGVjbCBDVXRsUHJvcHMyOjpHZXRWYWxCb29sKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9HZXRWYWxCb29sQENVdGxQcm9wczJAQFFFQkFGS0tAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENVdGxQcm9wczI6OkdldFZhbEJ5UmVmKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9HZXRWYWxCeVJlZkBDVXRsUHJvcHMyQEBRRUJBUEVBWEtLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENVdGxQcm9wczI6OkdldFZhbExvbmcodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbExvbmdAQ1V0bFByb3BzMkBAUUVCQUpLS0BaDQorOyBwdWJsaWM6IF9faW50NjQgX19jZGVjbCBDVXRsUHJvcHMyOjpHZXRWYWxMb25nTG9uZyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFsTG9uZ0xvbmdAQ1V0bFByb3BzMkBAUUVCQV9KS0tAWg0KKzsgcHVibGljOiBzaG9ydCBfX2NkZWNsIENVdGxQcm9wczI6OkdldFZhbFNob3J0KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9HZXRWYWxTaG9ydEBDVXRsUHJvcHMyQEBRRUJBRktLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ1V0bFByb3BzMjo6R2V0VmFsU3RyaW5nKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9HZXRWYWxTdHJpbmdAQ1V0bFByb3BzMkBAUUVBQVBFQkdLS0BaDQorOyBwdWJsaWM6IHN0cnVjdCB0YWdWQVJJQU5UICogX19wdHI2NCBfX2NkZWNsIENVdGxQcm9wczI6OkdldFZhcmlhbnQodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldFZhcmlhbnRAQ1V0bFByb3BzMkBAUUVBQVBFQVV0YWdWQVJJQU5UQEBLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0hlYXBEaXNwZW5zZXI6Okhhc2hLZXkodm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0hhc2hLZXlAQ0hlYXBEaXNwZW5zZXJAQFVFQUFIUEVBWEtQRUFIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXI6OkluaXQodm9pZCkgX19wdHI2NA0KKz9Jbml0QENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXJAQFFFQUFKWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENXU3RyaW5nOjpJbml0KHZvaWQpIF9fcHRyNjQNCis/SW5pdEBDV1N0cmluZ0BASUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDSGFzaFRibDo6SW5zZXJ0RmluZEJtayhpbnQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luc2VydEZpbmRCbWtAQ0hhc2hUYmxAQFVFQUFKSF9LMFBFQUVQRUFfS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENIYXNoVGJsQWdncjo6SW5zZXJ0RmluZEJtayhpbnQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luc2VydEZpbmRCbWtAQ0hhc2hUYmxBZ2dyQEBVRUFBSkhfSzBQRUFFUEVBX0tAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0V4dEJ1ZmZlcjo6SW5zZXJ0SW50b0V4dEJ1ZmZlcih2b2lkICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9JbnNlcnRJbnRvRXh0QnVmZmVyQENFeHRCdWZmZXJAQFFFQUFKUEVBWEFFQV9LQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1V0bFByb3BzMjo6SXNFbXB0eSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SXNFbXB0eUBDVXRsUHJvcHMyQEBRRUFBSEtLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1dTdHJpbmc6OklzRW1wdHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0VtcHR5QENXU3RyaW5nQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENVdGxQcm9wczI6OklzUHJvcFNldChzdHJ1Y3QgX0dVSUQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SXNQcm9wU2V0QENVdGxQcm9wczJAQFFFQUFIUEVCVV9HVUlEQEBLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1V0bFByb3BzMjo6SXNSZXF1aXJlZEZhbHNlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Jc1JlcXVpcmVkRmFsc2VAQ1V0bFByb3BzMkBAUUVBQUhLS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENVdGxQcm9wczI6OklzUmVxdWlyZWRUcnVlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Jc1JlcXVpcmVkVHJ1ZUBDVXRsUHJvcHMyQEBRRUFBSEtLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1V0bFByb3BzMjo6SXNTZXRJZkNhbih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SXNTZXRJZkNhbkBDVXRsUHJvcHMyQEBRRUFBSEtLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENCaXRBcnJheTo6SXNTbG90U2V0KHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/SXNTbG90U2V0QENCaXRBcnJheUBAUUVBQUpfS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENVdGxQcm9wczI6OklzVHJ1ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SXNUcnVlQENVdGxQcm9wczJAQFFFQUFIS0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVkxIZWFwOjpJc1ZMQWxsb2Modm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNWTEFsbG9jQENWTEhlYXBAQFFFQUFIUEVBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENTbG90TGlzdExvbmc6OklzVmFsaWRTbG90KHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/SXNWYWxpZFNsb3RAQ1Nsb3RMaXN0TG9uZ0BAVUVBQUpfS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENTbG90TGlzdFNob3J0OjpJc1ZhbGlkU2xvdCh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP0lzVmFsaWRTbG90QENTbG90TGlzdFNob3J0QEBVRUFBSl9LQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0Jhc2VPYmpCb2tvOjpJc1pvbWJpZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0lzWm9tYmllQENCYXNlT2JqQm9rb0BAUUVBQUhLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0Jhc2VPYmpab21iaWU6OklzWm9tYmllKHZvaWQpIF9fcHRyNjQNCis/SXNab21iaWVAQ0Jhc2VPYmpab21iaWVAQFFFQUFIWFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBMb2FkUkNEYXRhKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/TG9hZFJDRGF0YUBAWUFLUEVBWElQRUFHS0BaDQorOyBsb25nIF9fY2RlY2wgTG9hZFJlc291cmNlRExMKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9Mb2FkUmVzb3VyY2VETExAQFlBSlBFQUcwUEVBWFBFQVBFQVhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV1N0cmluZzo6TG9hZFN0cmluZ1codm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0xvYWRTdHJpbmdXQENXU3RyaW5nQEBRRUFBSFBFQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0NsYXNzRmFjdG9yeTo6TG9ja1NlcnZlcihpbnQpIF9fcHRyNjQNCis/TG9ja1NlcnZlckBDQ2xhc3NGYWN0b3J5QEBVRUFBSkhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Jhc2VPYmpCb2tvOjpNYWtlWm9tYmllcyh2b2lkKSBfX3B0cjY0DQorP01ha2Vab21iaWVzQENCYXNlT2JqQm9rb0BAUUVBQVhYWg0KKzsgcHVibGljOiBjbGFzcyBDV1N0cmluZyAgX19jZGVjbCBDV1N0cmluZzo6TWlkKGludCljb25zdCAgX19wdHI2NA0KKz9NaWRAQ1dTdHJpbmdAQFFFQkE/QVYxQEhAWg0KKzsgcHVibGljOiBjbGFzcyBDV1N0cmluZyAgX19jZGVjbCBDV1N0cmluZzo6TWlkKGludCxpbnQpY29uc3QgIF9fcHRyNjQNCis/TWlkQENXU3RyaW5nQEBRRUJBP0FWMUBISEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRW51bTo6TmV4dCh1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9OZXh0QENFbnVtQEBRRUFBSktQRUFQRUFYUEVBS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENFbnVtQ29ubmVjdGlvblBvaW50czo6TmV4dCh1bnNpZ25lZCBsb25nLHN0cnVjdCBJQ29ubmVjdGlvblBvaW50ICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TmV4dEBDRW51bUNvbm5lY3Rpb25Qb2ludHNAQFVFQUFKS1BFQVBFQVVJQ29ubmVjdGlvblBvaW50QEBQRUFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0VudW1Db25uZWN0aW9uczo6TmV4dCh1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdDT05ORUNUREFUQSAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TmV4dEBDRW51bUNvbm5lY3Rpb25zQEBVRUFBSktQRUFVdGFnQ09OTkVDVERBVEFAQFBFQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDU2xvdExpc3RMb25nOjpOZXh0QnVzeVNsb3QodW5zaWduZWQgX19pbnQ2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TmV4dEJ1c3lTbG90QENTbG90TGlzdExvbmdAQFVFQUFKUEVBX0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDU2xvdExpc3RTaG9ydDo6TmV4dEJ1c3lTbG90KHVuc2lnbmVkIF9faW50NjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP05leHRCdXN5U2xvdEBDU2xvdExpc3RTaG9ydEBAVUVBQUpQRUFfS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENTbG90TGlzdExvbmc6Ok5vQnVzeVNsb3RzKHZvaWQpIF9fcHRyNjQNCis/Tm9CdXN5U2xvdHNAQ1Nsb3RMaXN0TG9uZ0BAVUVBQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDU2xvdExpc3RTaG9ydDo6Tm9CdXN5U2xvdHModm9pZCkgX19wdHI2NA0KKz9Ob0J1c3lTbG90c0BDU2xvdExpc3RTaG9ydEBAVUVBQUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1dTdHJpbmc6Ok51bUVsZW1lbnRzKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCljb25zdCAgX19wdHI2NA0KKz9OdW1FbGVtZW50c0BDV1N0cmluZ0BAUUVCQUtRRUFHQFoNCis7IGludCBfX2NkZWNsIE9MRURCR2V0Q2hhclR5cGVXKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9PTEVEQkdldENoYXJUeXBlV0BAWUFIS0dQRUFHQFoNCis7IHB1YmxpYzogc2hvcnQgX19jZGVjbCBDVXRsUHJvcHMyOjpPa1RvUGVyc2lzdFNlbnNpdGl2ZUF1dGhJbmZvKHZvaWQpIF9fcHRyNjQNCis/T2tUb1BlcnNpc3RTZW5zaXRpdmVBdXRoSW5mb0BDVXRsUHJvcHMyQEBRRUFBRlhaDQorOyBpbnQgX19jZGVjbCBPblVuaWNvZGVTeXN0ZW0odm9pZCkNCis/T25Vbmljb2RlU3lzdGVtQEBZQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDQ2xhc3NGYWN0b3J5OjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUludGVyZmFjZUBDQ2xhc3NGYWN0b3J5QEBVRUFBSkFFQlVfR1VJREBAUEVBUEVBWEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRW51bTo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQsc3RydWN0IElVbmtub3duICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUludGVyZmFjZUBDRW51bUBAUUVBQUpBRUJVX0dVSURAQFBFQVBFQVhQRUFVSVVua25vd25AQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENFbnVtQ29ubmVjdGlvblBvaW50czo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlJbnRlcmZhY2VAQ0VudW1Db25uZWN0aW9uUG9pbnRzQEBVRUFBSkFFQlVfR1VJREBAUEVBUEVBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENFbnVtQ29ubmVjdGlvbnM6OlF1ZXJ5SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5SW50ZXJmYWNlQENFbnVtQ29ubmVjdGlvbnNAQFVFQUFKQUVCVV9HVUlEQEBQRUFQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0hlYXBEaXNwZW5zZXI6OlF1ZXJ5SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5SW50ZXJmYWNlQENIZWFwRGlzcGVuc2VyQEBVRUFBSkFFQlVfR1VJREBAUEVBUEVBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENSb3dzZXRDb25uZWN0aW9uUG9pbnQ6OlF1ZXJ5SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5SW50ZXJmYWNlQENSb3dzZXRDb25uZWN0aW9uUG9pbnRAQFVFQUFKQUVCVV9HVUlEQEBQRUFQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lcjo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlJbnRlcmZhY2VAQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lckBAVUVBQUpBRUJVX0dVSURAQFBFQVBFQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDSGVhcERpc3BlbnNlcjo6UmF0ZVJlcyh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmF0ZVJlc0BDSGVhcERpc3BlbnNlckBAVUVBQUpQRUFYSzBQRUFIQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ1Nsb3RMaXN0TG9uZzo6UmVjb3JkSW50ZXJuYWxVc2Uodm9pZCkgX19wdHI2NA0KKz9SZWNvcmRJbnRlcm5hbFVzZUBDU2xvdExpc3RMb25nQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENTbG90TGlzdFNob3J0OjpSZWNvcmRJbnRlcm5hbFVzZSh2b2lkKSBfX3B0cjY0DQorP1JlY29yZEludGVybmFsVXNlQENTbG90TGlzdFNob3J0QEBVRUFBWFhaDQorOyBsb25nIF9fY2RlY2wgUmVnaXN0ZXJTZXJ2ZXIodm9pZCAqIF9fcHRyNjQgY29uc3Qsdm9pZCAqIF9fcHRyNjQgY29uc3QsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgdGFnUkVHRU5UUklFUyBjb25zdCAqIF9fcHRyNjQgY29uc3QpDQorP1JlZ2lzdGVyU2VydmVyQEBZQUpRRUFYMEtRRUJVdGFnUkVHRU5UUklFU0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0NsYXNzRmFjdG9yeTo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ0NsYXNzRmFjdG9yeUBAVUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0VudW06OlJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlQENFbnVtQEBRRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENFbnVtQ29ubmVjdGlvblBvaW50czo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ0VudW1Db25uZWN0aW9uUG9pbnRzQEBVRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENFbnVtQ29ubmVjdGlvbnM6OlJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlQENFbnVtQ29ubmVjdGlvbnNAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0hlYXBEaXNwZW5zZXI6OlJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlQENIZWFwRGlzcGVuc2VyQEBVRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSb3dzZXRDb25uZWN0aW9uUG9pbnQ6OlJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlQENSb3dzZXRDb25uZWN0aW9uUG9pbnRAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lcjo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lckBAVUVBQUtYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1dTdHJpbmc6OlJlbGVhc2VCdWZmZXIoaW50KSBfX3B0cjY0DQorP1JlbGVhc2VCdWZmZXJAQ1dTdHJpbmdAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDR2VuZXJpY1Bvb2xlcjo6UmVsZWFzZUhvbGRlcnModm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlSG9sZGVyc0BDR2VuZXJpY1Bvb2xlckBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0dlbmVyaWNQb29sZXI6OlJlbGVhc2VSZXNvdXJjZSh2b2lkICogX19wdHI2NCxzdHJ1Y3QgSUdQSG9sZGVyICogX19wdHI2NCxzdHJ1Y3QgSUdQRGlzcGVuc2VyICogX19wdHI2NCx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWxlYXNlUmVzb3VyY2VAQ0dlbmVyaWNQb29sZXJAQFFFQUFYUEVBWFBFQVVJR1BIb2xkZXJAQFBFQVVJR1BEaXNwZW5zZXJAQDBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBDU2xvdExpc3RMb25nOjpSZWxlYXNlU2xvdHModW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP1JlbGVhc2VTbG90c0BDU2xvdExpc3RMb25nQEBVRUFBX0tfSzBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBDU2xvdExpc3RTaG9ydDo6UmVsZWFzZVNsb3RzKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9SZWxlYXNlU2xvdHNAQ1Nsb3RMaXN0U2hvcnRAQFVFQUFfS19LMEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVXRsUHJvcHMyOjpSZW1vdmVJbnRlcm5hbEZsYWdzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlbW92ZUludGVybmFsRmxhZ3NAQ1V0bFByb3BzMkBAUUVBQVhLS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1dTdHJpbmc6OlJlcGxhY2VBdChpbnQsaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/UmVwbGFjZUF0QENXU3RyaW5nQEBRRUFBWEhIUEVCR0hAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0V4dEJ1ZmZlcjo6UmVwbGFjZUluRXh0QnVmZmVyKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCx2b2lkIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP1JlcGxhY2VJbkV4dEJ1ZmZlckBDRXh0QnVmZmVyQEBRRUFBSl9LMFBFQlgwQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0Nvbm5lY3REYXRhOjpSZXNldCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QENDb25uZWN0RGF0YUBAUUVBQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0VudW06OlJlc2V0KHZvaWQpIF9fcHRyNjQNCis/UmVzZXRAQ0VudW1AQFFFQUFKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0VudW1Db25uZWN0aW9uUG9pbnRzOjpSZXNldCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QENFbnVtQ29ubmVjdGlvblBvaW50c0BAVUVBQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDRW51bUNvbm5lY3Rpb25zOjpSZXNldCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QENFbnVtQ29ubmVjdGlvbnNAQFVFQUFKWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENCaXRBcnJheTo6UmVzZXRBbGxTbG90cyh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QWxsU2xvdHNAQ0JpdEFycmF5QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENTbG90TGlzdExvbmc6OlJlc2V0QnVzeVNsb3RJdGVyYXRpb24odm9pZCkgX19wdHI2NA0KKz9SZXNldEJ1c3lTbG90SXRlcmF0aW9uQENTbG90TGlzdExvbmdAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ1Nsb3RMaXN0U2hvcnQ6OlJlc2V0QnVzeVNsb3RJdGVyYXRpb24odm9pZCkgX19wdHI2NA0KKz9SZXNldEJ1c3lTbG90SXRlcmF0aW9uQENTbG90TGlzdFNob3J0QEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENIZWFwRGlzcGVuc2VyOjpSZXNldFJlc291cmNlKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1Jlc2V0UmVzb3VyY2VAQ0hlYXBEaXNwZW5zZXJAQFVFQUFKUEVBWEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQml0QXJyYXk6OlJlc2V0U2xvdCh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP1Jlc2V0U2xvdEBDQml0QXJyYXlAQFFFQUFYX0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0JpdEFycmF5OjpSZXNldFNsb3RzKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9SZXNldFNsb3RzQENCaXRBcnJheUBAUUVBQVhfSzBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1V0bFByb3BzMjo6UmVzdG9yZUludGVybmFsRmxhZ3ModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1Jlc3RvcmVJbnRlcm5hbEZsYWdzQENVdGxQcm9wczJAQFFFQUFYS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1V0bFByb3BzMjo6UmVzdG9yZUludGVybmFsU3RhdHVzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZXN0b3JlSW50ZXJuYWxTdGF0dXNAQ1V0bFByb3BzMkBAUUVBQVhLS0BaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1V0bFByb3BzMjo6UmV0cmlldmVDb2x1bW5JZFByb3BzKHN0cnVjdCB0YWdEQlBST1AgKiBfX3B0cjY0LHN0cnVjdCB0YWdVUFJPUFZBTCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmV0cmlldmVDb2x1bW5JZFByb3BzQENVdGxQcm9wczJAQEFFQUFYUEVBVXRhZ0RCUFJPUEBAUEVBVXRhZ1VQUk9QVkFMQEBQRUFLQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgQ1Nsb3RMaXN0TG9uZzo6U0xTbG90Q2FwYWNpdHkodm9pZCkgX19wdHI2NA0KKz9TTFNsb3RDYXBhY2l0eUBDU2xvdExpc3RMb25nQEBVRUFBX0tYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBDU2xvdExpc3RTaG9ydDo6U0xTbG90Q2FwYWNpdHkodm9pZCkgX19wdHI2NA0KKz9TTFNsb3RDYXBhY2l0eUBDU2xvdExpc3RTaG9ydEBAVUVBQV9LWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHZvaWQgX19jZGVjbCBDV1N0cmluZzo6U2FmZURlbGV0ZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP1NhZmVEZWxldGVAQ1dTdHJpbmdAQEtBWFBFQUdAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1dTdHJpbmc6OlNhZmVTdHJsZW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9TYWZlU3RybGVuQENXU3RyaW5nQEBLQUhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENVdGxQcm9wczI6OlNhdmVJbnRlcm5hbEZsYWdzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TYXZlSW50ZXJuYWxGbGFnc0BDVXRsUHJvcHMyQEBRRUFBWEtLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENVdGxQcm9wczI6OlNhdmVJbnRlcm5hbFN0YXR1cyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2F2ZUludGVybmFsU3RhdHVzQENVdGxQcm9wczJAQFFFQUFYS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1dTdHJpbmc6OlNldEF0KGludCx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZXRBdEBDV1N0cmluZ0BAUUVBQVhIR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQmFzZU9ialpvbWJpZTo6U2V0Qm9rbyhjbGFzcyBDQmFzZU9iakJva28gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEJva29AQ0Jhc2VPYmpab21iaWVAQFFFQUFYUEVBVkNCYXNlT2JqQm9rb0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1V0bFByb3BzMjo6U2V0Q29tYmluZWRQYXNzVGhyb3VnaChzdHJ1Y3QgdGFnREJQUk9QU0VUIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldENvbWJpbmVkUGFzc1Rocm91Z2hAQ1V0bFByb3BzMkBAVUVBQUpQRUJVdGFnREJQUk9QU0VUQEBLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENXU3RyaW5nOjpTZXRFcnJvcih2b2lkKSBfX3B0cjY0DQorP1NldEVycm9yQENXU3RyaW5nQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVXRsUHJvcHMyOjpTZXRJbnRlcm5hbFN0YXR1cyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRJbnRlcm5hbFN0YXR1c0BDVXRsUHJvcHMyQEBRRUFBWEtLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRXh0QnVmZmVyOjpTZXRJdGVtQ291bnQodW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9TZXRJdGVtQ291bnRAQ0V4dEJ1ZmZlckBAUUVBQVhfS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENVdGxQcm9wczI6OlNldFBhc3NUaHJvdWdoKHN0cnVjdCB0YWdEQlBST1BTRVQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFBhc3NUaHJvdWdoQENVdGxQcm9wczJAQFVFQUFKUEVCVXRhZ0RCUFJPUFNFVEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENFbnVtOjpTZXRQb3ModW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRQb3NAQ0VudW1AQFFFQUFKS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRW51bUNvbm5lY3Rpb25Qb2ludHM6OlNldFBvcyh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFBvc0BDRW51bUNvbm5lY3Rpb25Qb2ludHNAQFFFQUFKS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRW51bUNvbm5lY3Rpb25zOjpTZXRQb3ModW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRQb3NAQ0VudW1Db25uZWN0aW9uc0BAUUVBQUpLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENVdGxQcm9wczI6OlNldFByb3BPcHRpb24odW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0UHJvcE9wdGlvbkBDVXRsUHJvcHMyQEBRRUFBWEtLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVXRsUHJvcHMyOjpTZXRQcm9wUmVxdWlyZWQodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHNob3J0KSBfX3B0cjY0DQorP1NldFByb3BSZXF1aXJlZEBDVXRsUHJvcHMyQEBRRUFBWEtLRkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVXRsUHJvcHMyOjpTZXRQcm9wU3VwcG9ydGVkKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRQcm9wU3VwcG9ydGVkQENVdGxQcm9wczJAQFFFQUFYS0tAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1V0bFByb3BzMjo6U2V0UHJvcFZhbHVlKHN0cnVjdCBfR1VJRCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgdGFnVkFSSUFOVCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UHJvcFZhbHVlQENVdGxQcm9wczJAQFFFQUFKUEVCVV9HVUlEQEBLUEVBVXRhZ1ZBUklBTlRAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDVXRsUHJvcHMyOjpTZXRQcm9wZXJ0aWVzKHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ0RCUFJPUFNFVCBjb25zdCAqIF9fcHRyNjQgY29uc3QsaW50KSBfX3B0cjY0DQorP1NldFByb3BlcnRpZXNAQ1V0bFByb3BzMkBAUUVBQUpLUUVCVXRhZ0RCUFJPUFNFVEBASEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1V0bFByb3BzMjo6U2V0UHJvcGVydGllc0FyZ0Noayh1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdEQlBST1BTRVQgY29uc3QgKiBfX3B0cjY0IGNvbnN0KQ0KKz9TZXRQcm9wZXJ0aWVzQXJnQ2hrQENVdGxQcm9wczJAQFNBSktRRUJVdGFnREJQUk9QU0VUQEBAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIENVdGxQcm9wczI6OlNldFByb3BlcnR5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgdGFnREJQUk9QICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQcm9wZXJ0eUBDVXRsUHJvcHMyQEBBRUFBSktLUEVBVXRhZ0RCUFJPUEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENVdGxQcm9wczI6OlNldFByb3BlcnR5SW5FcnJvcih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0UHJvcGVydHlJbkVycm9yQENVdGxQcm9wczJAQFFFQUFYS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1V0bFByb3BzMjo6U2V0UHJvcGVydHlTdGF0dXModW5zaWduZWQgbG9uZyxzdHJ1Y3QgdGFnREJQUk9QU0VUIGNvbnN0ICogX19wdHI2NCBjb25zdCkgX19wdHI2NA0KKz9TZXRQcm9wZXJ0eVN0YXR1c0BDVXRsUHJvcHMyQEBRRUFBWEtRRUJVdGFnREJQUk9QU0VUQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENSb3dzZXRDb25uZWN0aW9uUG9pbnQ6OlNldFJlYXNvbnModm9pZCkgX19wdHI2NA0KKz9TZXRSZWFzb25zQENSb3dzZXRDb25uZWN0aW9uUG9pbnRAQEFFQUFYWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENCaXRBcnJheTo6U2V0U2xvdCh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP1NldFNsb3RAQ0JpdEFycmF5QEBRRUFBSl9LQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENCaXRBcnJheTo6U2V0U2xvdHModW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP1NldFNsb3RzQENCaXRBcnJheUBAUUVBQUpfSzBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1V0bFByb3BzMjo6U2V0U3RhdHVzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFN0YXR1c0BDVXRsUHJvcHMyQEBRRUFBWEtLS0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDVXRsUHJvcEluZm86OlNldFVQcm9wU2V0Q291bnQodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRVUHJvcFNldENvdW50QENVdGxQcm9wSW5mb0BASUVBQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENVdGxQcm9wczI6OlNldFVQcm9wU2V0Q291bnQodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRVUHJvcFNldENvdW50QENVdGxQcm9wczJAQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVXRsUHJvcHMyOjpTZXRWYWxCb29sKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxzaG9ydCkgX19wdHI2NA0KKz9TZXRWYWxCb29sQENVdGxQcm9wczJAQFFFQUFYS0tGQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENVdGxQcm9wczI6OlNldFZhbEJ5UmVmKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWYWxCeVJlZkBDVXRsUHJvcHMyQEBRRUFBWEtLUEVBWEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVXRsUHJvcHMyOjpTZXRWYWxFbXB0eSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0VmFsRW1wdHlAQ1V0bFByb3BzMkBAUUVBQVhLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVXRsUHJvcHMyOjpTZXRWYWxMb25nKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxsb25nKSBfX3B0cjY0DQorP1NldFZhbExvbmdAQ1V0bFByb3BzMkBAUUVBQVhLS0pAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1V0bFByb3BzMjo6U2V0VmFsTG9uZ0xvbmcodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLF9faW50NjQpIF9fcHRyNjQNCis/U2V0VmFsTG9uZ0xvbmdAQ1V0bFByb3BzMkBAUUVBQVhLS19KQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENVdGxQcm9wczI6OlNldFZhbFNob3J0KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxzaG9ydCkgX19wdHI2NA0KKz9TZXRWYWxTaG9ydEBDVXRsUHJvcHMyQEBRRUFBWEtLRkBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDVXRsUHJvcHMyOjpTZXRWYWxTdHJpbmcodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWYWxTdHJpbmdAQ1V0bFByb3BzMkBAUUVBQUpLS1BFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1V0bFByb3BzMjo6U2V0VmFyaWFudCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1ZBUklBTlQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFZhcmlhbnRAQ1V0bFByb3BzMkBAUUVBQUpLS1BFQVV0YWdWQVJJQU5UQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0VudW06OlNraXAodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Ta2lwQENFbnVtQEBRRUFBSktAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDRW51bUNvbm5lY3Rpb25Qb2ludHM6OlNraXAodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Ta2lwQENFbnVtQ29ubmVjdGlvblBvaW50c0BAVUVBQUpLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0VudW1Db25uZWN0aW9uczo6U2tpcCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NraXBAQ0VudW1Db25uZWN0aW9uc0BAVUVBQUpLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENFeHRCdWZmZXI6OlRyYW5zZmVyKGNsYXNzIENFeHRCdWZmZXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1RyYW5zZmVyQENFeHRCdWZmZXJAQFFFQUFYUEVBVjFAQFoNCis7IGxvbmcgX19jZGVjbCBVblJlZ2lzdGVyU2VydmVyKHZvaWQgKiBfX3B0cjY0IGNvbnN0LHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1JFR0VOVFJJRVMgY29uc3QgKiBfX3B0cjY0IGNvbnN0KQ0KKz9VblJlZ2lzdGVyU2VydmVyQEBZQUpRRUFYS1FFQlV0YWdSRUdFTlRSSUVTQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDUm93c2V0Q29ubmVjdGlvblBvaW50OjpVbmFkdmlzZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1VuYWR2aXNlQENSb3dzZXRDb25uZWN0aW9uUG9pbnRAQFVFQUFKS0BaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ1ZMSGVhcDo6VkxBbGxvYyh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP1ZMQWxsb2NAQ1ZMSGVhcEBAUUVBQVBFQVhfS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVkxIZWFwOjpWTEZyZWUodm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VkxGcmVlQENWTEhlYXBAQFFFQUFYUEVBWEBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ1ZMSGVhcDo6VkxHcm93KHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/VkxHcm93QENWTEhlYXBAQFFFQUFQRUFYUEVBWF9LQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBDVkxIZWFwOjpWTFRydWVSZWFsbG9jKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/VkxUcnVlUmVhbGxvY0BDVkxIZWFwQEBRRUFBUEVBWFBFQVhfS0BaDQorOyBsb25nIF9fY2RlY2wgVzk1Q29udmVydFRvQW5zaU9yT2VtKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCxpbnQsaW50KQ0KKz9XOTVDb252ZXJ0VG9BbnNpT3JPZW1AQFlBSlBFQkdQRUFQRUFES1BFQUtISEBaDQorOyBsb25nIF9fY2RlY2wgVzk1Q29udmVydFRvVW5pY29kZShjaGFyIGNvbnN0ICogX19wdHI2NCxsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsaW50LGludCkNCis/Vzk1Q29udmVydFRvVW5pY29kZUBAWUFKUEVCREpQRUFQRUFHUEVBS0hIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENFeHRCdWZmZXI6OldyaXRlSW50b0V4dEJ1ZmZlcih2b2lkIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP1dyaXRlSW50b0V4dEJ1ZmZlckBDRXh0QnVmZmVyQEBRRUFBSlBFQlhfS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRXh0QnVmZmVyOjpXcml0ZVdDaGFyVG9FeHRCdWZmZXIodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9Xcml0ZVdDaGFyVG9FeHRCdWZmZXJAQ0V4dEJ1ZmZlckBAUUVBQUpHX0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQmFzZU9iakJva286OlpvbWJpZU11c3RVbnByZXBhcmUodm9pZCkgX19wdHI2NA0KKz9ab21iaWVNdXN0VW5wcmVwYXJlQENCYXNlT2JqQm9rb0BAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQmFzZU9ialpvbWJpZTo6Wm9tYmllTXVzdFVucHJlcGFyZSh2b2lkKSBfX3B0cjY0DQorP1pvbWJpZU11c3RVbnByZXBhcmVAQ0Jhc2VPYmpab21iaWVAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0JpdEFycmF5OjpmR2V0Q29weU9mKGNsYXNzIENCaXRBcnJheSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/ZkdldENvcHlPZkBDQml0QXJyYXlAQFFFQUFIUEVBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludDo6ZkluaXQodm9pZCkgX19wdHI2NA0KKz9mSW5pdEBDUm93c2V0Q29ubmVjdGlvblBvaW50QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDb25uZWN0RGF0YTo6Zk9rVG9GaXJlKGVudW0gREJSRUFTT05FTlVNLGVudW0gREJFVkVOVFBIQVNFRU5VTSkgX19wdHI2NA0KKz9mT2tUb0ZpcmVAQ0Nvbm5lY3REYXRhQEBRRUFBSFc0REJSRUFTT05FTlVNQEBXNERCRVZFTlRQSEFTRUVOVU1AQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENSb3dzZXRDb25uZWN0aW9uUG9pbnQ6OmZSZWFzb25OZWVkZWQoZW51bSBEQlJFQVNPTkVOVU0sZW51bSBEQkVWRU5UUEhBU0VFTlVNKSBfX3B0cjY0DQorP2ZSZWFzb25OZWVkZWRAQ1Jvd3NldENvbm5lY3Rpb25Qb2ludEBAUUVBQUhXNERCUkVBU09ORU5VTUBAVzREQkVWRU5UUEhBU0VFTlVNQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUm93c2V0Q29ubmVjdGlvblBvaW50Q29udGFpbmVyOjpmUmVhc29uTmVlZGVkKHVuc2lnbmVkIGxvbmcsZW51bSBEQlJFQVNPTkVOVU0sZW51bSBEQkVWRU5UUEhBU0VFTlVNKSBfX3B0cjY0DQorP2ZSZWFzb25OZWVkZWRAQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lckBAUUVBQUhLVzREQlJFQVNPTkVOVU1AQFc0REJFVkVOVFBIQVNFRU5VTUBAQFoNCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBsb25nIGNvbnN0ICogY29uc3QgIENVdGxQcm9wczI6OnNtX3JnUHJvcFN0YXR1c0Zyb21JbnRlcm5TdGF0dXMNCis/c21fcmdQcm9wU3RhdHVzRnJvbUludGVyblN0YXR1c0BDVXRsUHJvcHMyQEAwUUJLQg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zZGZtYXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNkZm1hcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmZkMTQ0NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zZGZtYXAuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXNkZm1hcC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXNkZm1hcC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2Rtby5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc2Rtby5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2QxMWFlOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zZG1vLmRlZgpAQCAtMCwwICsxLDIzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zZG1vLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc2Rtby5kbGwNCitFWFBPUlRTDQorRE1PRW51bQ0KK0RNT0dldE5hbWUNCitETU9HZXRUeXBlcw0KK0RNT0d1aWRUb1N0ckENCitETU9HdWlkVG9TdHJXDQorRE1PUmVnaXN0ZXINCitETU9TdHJUb0d1aWRBDQorRE1PU3RyVG9HdWlkVw0KK0RNT1VucmVnaXN0ZXINCitNb0NvcHlNZWRpYVR5cGUNCitNb0NyZWF0ZU1lZGlhVHlwZQ0KK01vRGVsZXRlTWVkaWFUeXBlDQorTW9EdXBsaWNhdGVNZWRpYVR5cGUNCitNb0ZyZWVNZWRpYVR5cGUNCitNb0luaXRNZWRpYVR5cGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2R0Y2xvZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc2R0Y2xvZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjBiNjNmZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zZHRjbG9nLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TRFRDTE9HLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU0RUQ0xPRy5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ0xvZ01ncjo6Q3JlYXRlSW5zdGFuY2UoY2xhc3MgQ0xvZ01nciAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQpDQorP0NyZWF0ZUluc3RhbmNlQENMb2dNZ3JAQFNBSlBFQVBFQVYxQFBFQVVJVW5rbm93bkBAQFoNCitEbGxHZXREVENMT0cyDQorOyBpbnQgX19jZGVjbCBEbGxHZXREVENMT0coc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCxzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/RGxsR2V0RFRDTE9HQEBZQUhBRUJVX0dVSURAQDBQRUFQRUFYQFoNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zZHRjcHJ4LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zZHRjcHJ4LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NTA3M2RmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNkdGNwcnguZGVmCkBAIC0wLDAgKzEsMjY5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TRFRDUFJYLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU0RUQ1BSWC5kbGwNCitFWFBPUlRTDQorRGxsR2V0RFRDUHJveHkNCis7IHB1YmxpYzogX19jZGVjbCBDU2VjdXJpdHlEZXNjcmlwdG9yOjpDU2VjdXJpdHlEZXNjcmlwdG9yKHZvaWQpIF9fcHRyNjQNCis/PzBDU2VjdXJpdHlEZXNjcmlwdG9yQEBRRUFBQFhaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQ1NlcnZpY2U6OkNTZXJ2aWNlKHZvaWQpIF9fcHRyNjQNCis/PzBDU2VydmljZUBASUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIENTZXJ2aWNlQ29udHJvbE1hbmFnZXI6OkNTZXJ2aWNlQ29udHJvbE1hbmFnZXIodm9pZCkgX19wdHI2NA0KKz8/MENTZXJ2aWNlQ29udHJvbE1hbmFnZXJAQElFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDU2VjdXJpdHlEZXNjcmlwdG9yOjp+Q1NlY3VyaXR5RGVzY3JpcHRvcih2b2lkKSBfX3B0cjY0DQorPz8xQ1NlY3VyaXR5RGVzY3JpcHRvckBAUUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIENTZXJ2aWNlOjp+Q1NlcnZpY2Uodm9pZCkgX19wdHI2NA0KKz8/MUNTZXJ2aWNlQEBJRUFBQFhaDQorRFRDX1hhT3Blbg0KK0RUQ19YYVN0YXJ0DQorRFRDX1hhRW5kDQorRFRDX1hhUHJlcGFyZQ0KK0RUQ19YYUNvbW1pdA0KK0RUQ19YYVJvbGxiYWNrDQorRFRDX1hhUmVjb3Zlcg0KK0RUQ19YYUZvcmdldA0KK0RUQ19YYUNvbXBsZXRlDQorRFRDX1hhQ2xvc2UNCitEVENfQXhSZWcNCitEVENfQXhVblJlZw0KK2F4X3JlZw0KK2F4X3VucmVnDQorU2h1dERvd25DTQ0KK0RsbEdldERUQ0Nvbm5lY3Rpb25NYW5hZ2VyDQorRGxsR2V0RFRDVXRpbE9iamVjdA0KK0NvbnRhY3RUb05hbWVPYmplY3QNCitTeXNQcmVwRHRjUmVpbnN0YWxsDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQ1NlcnZpY2VDb250cm9sTWFuYWdlcjo6fkNTZXJ2aWNlQ29udHJvbE1hbmFnZXIodm9pZCkgX19wdHI2NA0KKz8/MUNTZXJ2aWNlQ29udHJvbE1hbmFnZXJAQElFQUFAWFoNCis7IHB1YmxpYzogY2xhc3MgQ1NlY3VyaXR5RGVzY3JpcHRvciAmIF9fcHRyNjQgX19jZGVjbCBDU2VjdXJpdHlEZXNjcmlwdG9yOjpvcGVyYXRvcj0oY2xhc3MgQ1NlY3VyaXR5RGVzY3JpcHRvciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDU2VjdXJpdHlEZXNjcmlwdG9yQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1NlcnZpY2UgJiBfX3B0cjY0IF9fY2RlY2wgQ1NlcnZpY2U6Om9wZXJhdG9yPShjbGFzcyBDU2VydmljZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDU2VydmljZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTZXJ2aWNlQ29udHJvbE1hbmFnZXIgJiBfX3B0cjY0IF9fY2RlY2wgQ1NlcnZpY2VDb250cm9sTWFuYWdlcjo6b3BlcmF0b3I9KGNsYXNzIENTZXJ2aWNlQ29udHJvbE1hbmFnZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1NlcnZpY2VDb250cm9sTWFuYWdlckBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDU2VydmljZTo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQENTZXJ2aWNlQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDU2VydmljZUNvbnRyb2xNYW5hZ2VyOjpBZGRSZWYodm9pZCkgX19wdHI2NA0KKz9BZGRSZWZAQ1NlcnZpY2VDb250cm9sTWFuYWdlckBAUUVBQUtYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1NlY3VyaXR5RGVzY3JpcHRvcjo6QWRkU2lkKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QWRkU2lkQENTZWN1cml0eURlc2NyaXB0b3JAQFFFQUFKUEVBR0tLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENTZWN1cml0eURlc2NyaXB0b3I6OkFkZFNpZCh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QWRkU2lkQENTZWN1cml0eURlc2NyaXB0b3JAQFFFQUFKUEVBWEtLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENTZWN1cml0eURlc2NyaXB0b3I6OkFsbG9jKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QWxsb2NAQ1NlY3VyaXR5RGVzY3JpcHRvckBASUVBQUpLQFoNCis7IGxvbmcgX19jZGVjbCBBcHBseUFjY291bnRTZXR0aW5ncyhpbnQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsaW50KQ0KKz9BcHBseUFjY291bnRTZXR0aW5nc0BAWUFKSFBFQUdLMDAwSEBaDQorOyBsb25nIF9fY2RlY2wgQXBwbHlOYW1lZFNlY3VyaXR5Q2hhbmdlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxlbnVtIF9TRV9PQkpFQ1RfVFlQRSx2b2lkICogX19wdHI2NCx2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nKQ0KKz9BcHBseU5hbWVkU2VjdXJpdHlDaGFuZ2VAQFlBSlBFQUdXNF9TRV9PQkpFQ1RfVFlQRUBAUEVBWDJLQFoNCis7IGxvbmcgX19jZGVjbCBDaGVja0ZvckRDUHJvbW90aW9uRGVtb3Rpb24odW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9DaGVja0ZvckRDUHJvbW90aW9uRGVtb3Rpb25AQFlBSlBFQUdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1NlY3VyaXR5RGVzY3JpcHRvcjo6Q2xlYXJBY2wodm9pZCkgX19wdHI2NA0KKz9DbGVhckFjbEBDU2VjdXJpdHlEZXNjcmlwdG9yQEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDU2VjdXJpdHlEZXNjcmlwdG9yOjpDbGVhckluTWVtb3J5QWNsKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJJbk1lbW9yeUFjbEBDU2VjdXJpdHlEZXNjcmlwdG9yQEBRRUFBSlhaDQorOyB2b2lkIF9fY2RlY2wgQ2xvc2VOZXRwRXZlbnRMb2dIYW5kbGUodm9pZCkNCis/Q2xvc2VOZXRwRXZlbnRMb2dIYW5kbGVAQFlBWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ0Nvbm5lY3Rpb25NYW5hZ2VyOjpDcmVhdGUoY2xhc3MgQ0Nvbm5lY3Rpb25NYW5hZ2VyICogX19wdHI2NCAqIF9fcHRyNjQpDQorP0NyZWF0ZUBDQ29ubmVjdGlvbk1hbmFnZXJAQFNBSlBFQVBFQVYxQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ05hbWVTZXJ2aWNlOjpDcmVhdGUoY2xhc3MgQ05hbWVTZXJ2aWNlICogX19wdHI2NCAqIF9fcHRyNjQpDQorP0NyZWF0ZUBDTmFtZVNlcnZpY2VAQFNBSlBFQVBFQVYxQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1NlcnZpY2U6OkNyZWF0ZShjbGFzcyBDU2VydmljZSAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxjbGFzcyBDU2VydmljZUNvbnRyb2xNYW5hZ2VyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/Q3JlYXRlQENTZXJ2aWNlQEBTQUpQRUFQRUFWMUBQRUFHUEVBVkNTZXJ2aWNlQ29udHJvbE1hbmFnZXJAQEsxQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDU2VydmljZUNvbnRyb2xNYW5hZ2VyOjpDcmVhdGUoY2xhc3MgQ1NlcnZpY2VDb250cm9sTWFuYWdlciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/Q3JlYXRlQENTZXJ2aWNlQ29udHJvbE1hbmFnZXJAQFNBSlBFQVBFQVYxQEtQRUFHMUBaDQorOyB2b2lkIF9fY2RlY2wgQ3JlYXRlQVNSS2V5KHZvaWQpDQorP0NyZWF0ZUFTUktleUBAWUFYWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDVG1Qcm94eUNvcmU6OkNyZWF0ZUluc3RhbmNlKGNsYXNzIENUbVByb3h5Q29yZSAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQpDQorP0NyZWF0ZUluc3RhbmNlQENUbVByb3h5Q29yZUBAU0FKUEVBUEVBVjFAUEVBVUlVbmtub3duQEBAWg0KKzsgbG9uZyBfX2NkZWNsIENyZWF0ZU5ld0NvbnRhY3Qoc3RydWN0IElQcm9wZXJ0aWVzICogX19wdHI2NCAqIF9fcHRyNjQpDQorP0NyZWF0ZU5ld0NvbnRhY3RAQFlBSlBFQVBFQVVJUHJvcGVydGllc0BAQFoNCis7IGxvbmcgX19jZGVjbCBDcmVhdGVPck9wZW5NdXRleFcodm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpDQorP0NyZWF0ZU9yT3Blbk11dGV4V0BAWUFKUEVBUEVBWFBFQkdIQFoNCis7IHZvaWQgX19jZGVjbCBEZWxldGVFeGlzdGluZ0NvbnRhY3RzKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxzdHJ1Y3QgSUNvbnRhY3RQb29sICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP0RlbGV0ZUV4aXN0aW5nQ29udGFjdHNAQFlBWFBFQUdQRUFVSUNvbnRhY3RQb29sQEAwQFoNCis7IGludCBfX2NkZWNsIERsbEdldERUQ0FkbWluKHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpDQorP0RsbEdldERUQ0FkbWluQEBZQUhBRUJVX0dVSURAQDBQRUFQRUFYQFoNCis7IGxvbmcgX19jZGVjbCBEdGNXcml0ZVRvRXZlbnRMb2dnZXIodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCxjaGFyICogX19wdHI2NCkNCis/RHRjV3JpdGVUb0V2ZW50TG9nZ2VyQEBZQUpLS0tLUEVBWFBFQURAWg0KKzsgbG9uZyBfX2NkZWNsIER0Y1dyaXRlVG9FdmVudExvZ2dlckV4KHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyxjaGFyIGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpDQorP0R0Y1dyaXRlVG9FdmVudExvZ2dlckV4QEBZQUpHR0tQRUFYR0tQRUFQRUJEMEBaDQorOyBsb25nIF9fY2RlY2wgRHRjV3JpdGVUb0V2ZW50TG9nZ2VyRXhVbkZpbHRlcmVkKHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyxjaGFyIGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpDQorP0R0Y1dyaXRlVG9FdmVudExvZ2dlckV4VW5GaWx0ZXJlZEBAWUFKR0dLUEVBWEdLUEVBUEVCRDBAWg0KKzsgbG9uZyBfX2NkZWNsIER0Y1dyaXRlVG9FdmVudExvZ2dlckV4VW5GaWx0ZXJlZEEodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBsb25nLGNoYXIgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCkNCis/RHRjV3JpdGVUb0V2ZW50TG9nZ2VyRXhVbkZpbHRlcmVkQUBAWUFKR0dLUEVBWEdLUEVBUEVCRDBAWg0KKzsgbG9uZyBfX2NkZWNsIEVyYXNlRHRjQ2xpZW50KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/RXJhc2VEdGNDbGllbnRAQFlBSlBFQUdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1NlcnZpY2U6OkdldEFjY291bnQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEFjY291bnRAQ1NlcnZpY2VAQFFFQUFKUEVBR1BFQUtAWg0KKzsgbG9uZyBfX2NkZWNsIEdldEFjY291bnRTaWQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpDQorP0dldEFjY291bnRTaWRAQFlBSlBFQUcwUEVBUEVBWEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDU2VjdXJpdHlEZXNjcmlwdG9yOjpHZXRDb250cm9sKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDb250cm9sQENTZWN1cml0eURlc2NyaXB0b3JAQFFFQUFKUEVBR0BaDQorOyB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBHZXREZWZhdWx0TG9nUGF0aCh2b2lkKQ0KKz9HZXREZWZhdWx0TG9nUGF0aEBAWUFQRUFHWFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBHZXREZWZhdWx0TG9nU2l6ZSh2b2lkKQ0KKz9HZXREZWZhdWx0TG9nU2l6ZUBAWUFLWFoNCis7IGxvbmcgX19jZGVjbCBHZXREZWZhdWx0U2VjdXJpdHlDb25maWd1cmF0aW9uT3B0aW9ucyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpDQorP0dldERlZmF1bHRTZWN1cml0eUNvbmZpZ3VyYXRpb25PcHRpb25zQEBZQUpQRUFHUEVBSzFAWg0KKzsgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBHZXREZWZhdWx0U2VydmljZU5hbWVBKHZvaWQpDQorP0dldERlZmF1bHRTZXJ2aWNlTmFtZUFAQFlBUEVBRFhaDQorOyB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBHZXREZWZhdWx0U2VydmljZU5hbWVXKHZvaWQpDQorP0dldERlZmF1bHRTZXJ2aWNlTmFtZVdAQFlBUEVBR1haDQorOyB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBHZXREZWZhdWx0U2VydmljZVBhdGgodm9pZCkNCis/R2V0RGVmYXVsdFNlcnZpY2VQYXRoQEBZQVBFQUdYWg0KKzsgaW50IF9fY2RlY2wgR2V0RHRjQ0lEUHJvcHMoc3RydWN0IF9MT0dfUFJPUEVSVElFUyAmIF9fcHRyNjQsc3RydWN0IF9EQUNfUFJPUEVSVElFUyAmIF9fcHRyNjQpDQorP0dldER0Y0NJRFByb3BzQEBZQUhBRUFVX0xPR19QUk9QRVJUSUVTQEBBRUFVX0RBQ19QUk9QRVJUSUVTQEBAWg0KKzsgaW50IF9fY2RlY2wgR2V0RHRjTG9nUGF0aCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/R2V0RHRjTG9nUGF0aEBAWUFIS1BFQUdAWg0KKzsgaW50IF9fY2RlY2wgR2V0RHRjUGF0aCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/R2V0RHRjUGF0aEBAWUFIS1BFQUdAWg0KKzsgbG9uZyBfX2NkZWNsIEdldER0Y1JwY1NlY3VyaXR5TGV2ZWwodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGVudW0gX0RUQ19TRUNVUklUWV9MRVZFTCAqIF9fcHRyNjQsaW50KQ0KKz9HZXREdGNScGNTZWN1cml0eUxldmVsQEBZQUpQRUFHUEVBVzRfRFRDX1NFQ1VSSVRZX0xFVkVMQEBIQFoNCis7IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIEdldEV2ZW50TG9nU291cmNlKHZvaWQpDQorP0dldEV2ZW50TG9nU291cmNlQEBZQVBFQUdYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1NlcnZpY2U6OkdldEhhbmRsZShzdHJ1Y3QgU0NfSEFORExFX18gKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRIYW5kbGVAQ1NlcnZpY2VAQFFFQUFKQUVBUEVBVVNDX0hBTkRMRV9fQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1NlcnZpY2VDb250cm9sTWFuYWdlcjo6R2V0SGFuZGxlKHN0cnVjdCBTQ19IQU5ETEVfXyAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEhhbmRsZUBDU2VydmljZUNvbnRyb2xNYW5hZ2VyQEBRRUFBSkFFQVBFQVVTQ19IQU5ETEVfX0BAQFoNCis7IGxvbmcgX19jZGVjbCBHZXRMYXN0S25vd25Eb21haW5Db250cm9sbGVyU3RhdGUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KQ0KKz9HZXRMYXN0S25vd25Eb21haW5Db250cm9sbGVyU3RhdGVAQFlBSlBFQUdQRUFLQFoNCis7IGxvbmcgX19jZGVjbCBHZXRMb2NhbER0Y0NsdXN0ZXJpbmdWZXJzaW9uKHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KQ0KKz9HZXRMb2NhbER0Y0NsdXN0ZXJpbmdWZXJzaW9uQEBZQUpQRUFLQFoNCis7IGxvbmcgX19jZGVjbCBHZXRNc0R0Y1NQTih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/R2V0TXNEdGNTUE5AQFlBSlBFQUdQRUFQRUFHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENTZWN1cml0eURlc2NyaXB0b3I6OkdldE5hbWVkSW5mbyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsZW51bSBfU0VfT0JKRUNUX1RZUEUpIF9fcHRyNjQNCis/R2V0TmFtZWRJbmZvQENTZWN1cml0eURlc2NyaXB0b3JAQFFFQUFKUEVBR1c0X1NFX09CSkVDVF9UWVBFQEBAWg0KKzsgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgR2V0T2xkRGVmYXVsdExvZ1BhdGgodm9pZCkNCis/R2V0T2xkRGVmYXVsdExvZ1BhdGhAQFlBUEVBR1haDQorOyBsb25nIF9fY2RlY2wgR2V0U2VjdXJpdHlDb25maWd1cmF0aW9uT3B0aW9ucyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsaW50KQ0KKz9HZXRTZWN1cml0eUNvbmZpZ3VyYXRpb25PcHRpb25zQEBZQUpQRUFHUEVBSzFIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENTZWN1cml0eURlc2NyaXB0b3I6OkdldFNlY3VyaXR5RGVzY3JpcHRvcih2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0U2VjdXJpdHlEZXNjcmlwdG9yQENTZWN1cml0eURlc2NyaXB0b3JAQFFFQUFKUEVBUEVBWEBaDQorOyBsb25nIF9fY2RlY2wgR2V0U2VjdXJpdHlSZWdWYWx1ZU5vbkNsdXN0ZXJXKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpDQorP0dldFNlY3VyaXR5UmVnVmFsdWVOb25DbHVzdGVyV0BAWUFKUEVBR1BFQkdQRUFFUEVBS0BaDQorOyBsb25nIF9fY2RlY2wgR2V0U2VjdXJpdHlSZWdWYWx1ZVcodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCxpbnQpDQorP0dldFNlY3VyaXR5UmVnVmFsdWVXQEBZQUpQRUFHUEVCR1BFQUVQRUFLSEBaDQorOyBsb25nIF9fY2RlY2wgR2V0U2hhcmVkRHRjQ2x1c3RlcmluZ1ZlcnNpb24odW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpDQorP0dldFNoYXJlZER0Y0NsdXN0ZXJpbmdWZXJzaW9uQEBZQUpQRUFLQFoNCis7IGxvbmcgX19jZGVjbCBHZXRUbUNvbnRhY3RBKGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LHN0cnVjdCBJUHJvcGVydGllcyAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9HZXRUbUNvbnRhY3RBQEBZQUpQRUFEMFBFQVBFQVVJUHJvcGVydGllc0BAQFoNCis7IGxvbmcgX19jZGVjbCBHZXRUbUNvbnRhY3RXKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsc3RydWN0IElQcm9wZXJ0aWVzICogX19wdHI2NCAqIF9fcHRyNjQpDQorP0dldFRtQ29udGFjdFdAQFlBSlBFQUcwUEVBUEVBVUlQcm9wZXJ0aWVzQEBAWg0KKzsgbG9uZyBfX2NkZWNsIEdldFRtVUlDb250YWN0QShjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCxzdHJ1Y3QgSVByb3BlcnRpZXMgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/R2V0VG1VSUNvbnRhY3RBQEBZQUpQRUFEMFBFQVBFQVVJUHJvcGVydGllc0BAQFoNCis7IGxvbmcgX19jZGVjbCBHZXRUbVVJQ29udGFjdFcodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxzdHJ1Y3QgSVByb3BlcnRpZXMgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/R2V0VG1VSUNvbnRhY3RXQEBZQUpQRUFHMFBFQVBFQVVJUHJvcGVydGllc0BAQFoNCis7IGxvbmcgX19jZGVjbCBHZXRYQVRtU2VjdXJpdHlLZXkodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkNCis/R2V0WEFUbVNlY3VyaXR5S2V5QEBZQUpQRUFHMFBFQUtAWg0KKzsgbG9uZyBfX2NkZWNsIEluc3RhbGxEdGModW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxpbnQpDQorP0luc3RhbGxEdGNAQFlBSlBFQUcwMDAwSzBIQFoNCis7IGxvbmcgX19jZGVjbCBJbnN0YWxsRHRjQ2xpZW50KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0luc3RhbGxEdGNDbGllbnRAQFlBSlBFQUdLS0BaDQorOyBsb25nIF9fY2RlY2wgSW5zdGFsbFRpcEd3KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/SW5zdGFsbFRpcEd3QEBZQUpQRUFHQFoNCis7IGxvbmcgX19jZGVjbCBJbnN0YWxsWGFUbSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP0luc3RhbGxYYVRtQEBZQUpQRUFHQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENTZXJ2aWNlOjpJbnRlcm5hbEluaXQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGNsYXNzIENTZXJ2aWNlQ29udHJvbE1hbmFnZXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ludGVybmFsSW5pdEBDU2VydmljZUBASUVBQUpQRUFHUEVBVkNTZXJ2aWNlQ29udHJvbE1hbmFnZXJAQEswQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENTZXJ2aWNlQ29udHJvbE1hbmFnZXI6OkludGVybmFsSW5pdCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW50ZXJuYWxJbml0QENTZXJ2aWNlQ29udHJvbE1hbmFnZXJAQElFQUFKS1BFQUcwQFoNCis7IGludCBfX2NkZWNsIElzTnRWZXJzaW9uNU9yTW9yZSh2b2lkKQ0KKz9Jc050VmVyc2lvbjVPck1vcmVAQFlBSFhaDQorOyBsb25nIF9fY2RlY2wgSm9pbkR0Yyh2b2lkKQ0KKz9Kb2luRHRjQEBZQUpYWg0KKzsgbG9uZyBfX2NkZWNsIEpvaW5EdGNFeCh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP0pvaW5EdGNFeEBAWUFKUEVBR0BaDQorOyBsb25nIF9fY2RlY2wgTG9va3VwU3BlY2lhbEFjY291bnQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHN0cnVjdCBfU1BFQ0lBTF9BQ0NPVU5UXyAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9Mb29rdXBTcGVjaWFsQWNjb3VudEBAWUFKUEVBR1BFQVBFQVVfU1BFQ0lBTF9BQ0NPVU5UX0BAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENTZWN1cml0eURlc2NyaXB0b3I6Ok1ha2VBYnNvbHV0ZSh2b2lkKSBfX3B0cjY0DQorP01ha2VBYnNvbHV0ZUBDU2VjdXJpdHlEZXNjcmlwdG9yQEBJRUFBSlhaDQorOyBsb25nIF9fY2RlY2wgTWlycm9yWGFUbVNlY3VyaXR5S2V5KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/TWlycm9yWGFUbVNlY3VyaXR5S2V5QEBZQUpQRUFHQFoNCis7IGxvbmcgX19jZGVjbCBNc0R0Y1NQTkZyZWUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/TXNEdGNTUE5GcmVlQEBZQUpQRUFQRUFHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENTZXJ2aWNlQ29udHJvbE1hbmFnZXI6Ok9wZW5TZXJ2aWNlQShjbGFzcyBDU2VydmljZSAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP09wZW5TZXJ2aWNlQUBDU2VydmljZUNvbnRyb2xNYW5hZ2VyQEBRRUFBSlBFQVBFQVZDU2VydmljZUBAUEVBR0tAWg0KKzsgbG9uZyBfX2NkZWNsIFBvcHVsYXRlTG9jYWxSZWdpc3RyeSh2b2lkKQ0KKz9Qb3B1bGF0ZUxvY2FsUmVnaXN0cnlAQFlBSlhaDQorOyBsb25nIF9fY2RlY2wgUG9wdWxhdGVTaGFyZWRDbHVzdGVyUmVnaXN0cnlXaXRoQ29udGFjdHModm9pZCkNCis/UG9wdWxhdGVTaGFyZWRDbHVzdGVyUmVnaXN0cnlXaXRoQ29udGFjdHNAQFlBSlhaDQorOyBsb25nIF9fY2RlY2wgUG9wdWxhdGVTaGFyZWRDbHVzdGVyUmVnaXN0cnlXaXRoTG9nSW5mbyh2b2lkKQ0KKz9Qb3B1bGF0ZVNoYXJlZENsdXN0ZXJSZWdpc3RyeVdpdGhMb2dJbmZvQEBZQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1NlY3VyaXR5RGVzY3JpcHRvcjo6UXVlcnlTZXJ2aWNlT2JqZWN0U2VjdXJpdHkoc3RydWN0IFNDX0hBTkRMRV9fICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1F1ZXJ5U2VydmljZU9iamVjdFNlY3VyaXR5QENTZWN1cml0eURlc2NyaXB0b3JAQFFFQUFKUEVBVVNDX0hBTkRMRV9fQEBLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENTZXJ2aWNlOjpSZWxlYXNlKHZvaWQpIF9fcHRyNjQNCis/UmVsZWFzZUBDU2VydmljZUBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1NlcnZpY2VDb250cm9sTWFuYWdlcjo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ1NlcnZpY2VDb250cm9sTWFuYWdlckBAUUVBQUtYWg0KKzsgbG9uZyBfX2NkZWNsIFJlbW92ZUR0Yyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/UmVtb3ZlRHRjQEBZQUpQRUFHMDBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1NlY3VyaXR5RGVzY3JpcHRvcjo6UmVtb3ZlU2lkKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVTaWRAQ1NlY3VyaXR5RGVzY3JpcHRvckBAUUVBQUpQRUFHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENTZWN1cml0eURlc2NyaXB0b3I6OlJlbW92ZVNpZCh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVTaWRAQ1NlY3VyaXR5RGVzY3JpcHRvckBAUUVBQUpQRUFYQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENTZWN1cml0eURlc2NyaXB0b3I6OlJlc2V0KHZvaWQpIF9fcHRyNjQNCis/UmVzZXRAQ1NlY3VyaXR5RGVzY3JpcHRvckBASUVBQVhYWg0KKzsgbG9uZyBfX2NkZWNsIFJpZFRvU2lkKHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9SaWRUb1NpZEBAWUFKS1BFQVBFQVhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1NlcnZpY2U6OlNldEFjY291bnQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRBY2NvdW50QENTZXJ2aWNlQEBRRUFBSlBFQUcwQFoNCis7IGxvbmcgX19jZGVjbCBTZXRBY2NvdW50SW5mb0luUmVnaXN0cnlXKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/U2V0QWNjb3VudEluZm9JblJlZ2lzdHJ5V0BAWUFKUEVBR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDU2VjdXJpdHlEZXNjcmlwdG9yOjpTZXRDb250cm9sKHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1NldENvbnRyb2xAQ1NlY3VyaXR5RGVzY3JpcHRvckBAUUVBQUpHR0BaDQorOyBsb25nIF9fY2RlY2wgU2V0RG9tYWluQ29udHJvbGxlclN0YXRlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/U2V0RG9tYWluQ29udHJvbGxlclN0YXRlQEBZQUpQRUFHQFoNCis7IGludCBfX2NkZWNsIFNldER0Y0NJRFByb3BzKHN0cnVjdCBfTE9HX1BST1BFUlRJRVMgJiBfX3B0cjY0LHN0cnVjdCBfREFDX1BST1BFUlRJRVMgJiBfX3B0cjY0KQ0KKz9TZXREdGNDSURQcm9wc0BAWUFIQUVBVV9MT0dfUFJPUEVSVElFU0BAQUVBVV9EQUNfUFJPUEVSVElFU0BAQFoNCis7IGxvbmcgX19jZGVjbCBTZXREdGNDbGllbnQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/U2V0RHRjQ2xpZW50QEBZQUpQRUFHUEVBRDBAWg0KKzsgbG9uZyBfX2NkZWNsIFNldER0Y1JwY1NlY3VyaXR5TGV2ZWwodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGVudW0gX0RUQ19TRUNVUklUWV9MRVZFTCxpbnQpDQorP1NldER0Y1JwY1NlY3VyaXR5TGV2ZWxAQFlBSlBFQUdXNF9EVENfU0VDVVJJVFlfTEVWRUxAQEhAWg0KKzsgbG9uZyBfX2NkZWNsIFNldER0Y1NlcnZlclByb3RvY29sKGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0KQ0KKz9TZXREdGNTZXJ2ZXJQcm90b2NvbEBAWUFKUEVBRDBAWg0KKzsgdm9pZCBfX2NkZWNsIFNldEV2ZW50TG9nU291cmNlVG9Nc2R0Y0NvcmUodm9pZCkNCis/U2V0RXZlbnRMb2dTb3VyY2VUb01zZHRjQ29yZUBAWUFYWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENTZWN1cml0eURlc2NyaXB0b3I6OlNldE5hbWVkSW5mbyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsZW51bSBfU0VfT0JKRUNUX1RZUEUsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXROYW1lZEluZm9AQ1NlY3VyaXR5RGVzY3JpcHRvckBAUUVBQUpQRUFHVzRfU0VfT0JKRUNUX1RZUEVAQEtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ1NlY3VyaXR5RGVzY3JpcHRvcjo6U2V0TmV3QWNsKHN0cnVjdCBfQUNMICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGludCxpbnQpIF9fcHRyNjQNCis/U2V0TmV3QWNsQENTZWN1cml0eURlc2NyaXB0b3JAQElFQUFKUEVBVV9BQ0xAQEtISEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDU2VjdXJpdHlEZXNjcmlwdG9yOjpTZXRPd25lcih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1NldE93bmVyQENTZWN1cml0eURlc2NyaXB0b3JAQFFFQUFKUEVBR0hAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1NlY3VyaXR5RGVzY3JpcHRvcjo6U2V0T3duZXIodm9pZCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1NldE93bmVyQENTZWN1cml0eURlc2NyaXB0b3JAQFFFQUFKUEVBWEhAWg0KKzsgbG9uZyBfX2NkZWNsIFNldFNlY3VyaXR5Q29uZmlndXJhdGlvbk9wdGlvbnModW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/U2V0U2VjdXJpdHlDb25maWd1cmF0aW9uT3B0aW9uc0BAWUFKUEVBR0tLQFoNCis7IGxvbmcgX19jZGVjbCBTZXRTZWN1cml0eVJlZ1ZhbHVlTm9uQ2x1c3RlclcodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpDQorP1NldFNlY3VyaXR5UmVnVmFsdWVOb25DbHVzdGVyV0BAWUFKUEVBR1BFQkdLUEVBRUtAWg0KKzsgbG9uZyBfX2NkZWNsIFNldFNlY3VyaXR5UmVnVmFsdWVXKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKQ0KKz9TZXRTZWN1cml0eVJlZ1ZhbHVlV0BAWUFKUEVBR1BFQkdLUEVBRUtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1NlY3VyaXR5RGVzY3JpcHRvcjo6U2V0U2VydmljZU9iamVjdFNlY3VyaXR5KHN0cnVjdCBTQ19IQU5ETEVfXyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRTZXJ2aWNlT2JqZWN0U2VjdXJpdHlAQ1NlY3VyaXR5RGVzY3JpcHRvckBAUUVBQUpQRUFVU0NfSEFORExFX19AQEtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1NlY3VyaXR5RGVzY3JpcHRvcjo6U2V0U3BlY2lhbEFjY291bnRzKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0U3BlY2lhbEFjY291bnRzQENTZWN1cml0eURlc2NyaXB0b3JAQFFFQUFKS0BaDQorOyBsb25nIF9fY2RlY2wgU3RyaW5nVG9TaWQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/U3RyaW5nVG9TaWRAQFlBSlBFQUdQRUFQRUFYQFoNCis7IGxvbmcgX19jZGVjbCBVcGRhdGVUbU5hbWVPYmplY3Qoc3RydWN0IElOYW1lT2JqZWN0ICogX19wdHI2NCxzdHJ1Y3QgSU5hbWVPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/VXBkYXRlVG1OYW1lT2JqZWN0QEBZQUpQRUFVSU5hbWVPYmplY3RAQFBFQVBFQVUxQEBaDQorOyBsb25nIF9fY2RlY2wgVXBncmFkZUR0YyhpbnQpDQorP1VwZ3JhZGVEdGNAQFlBSkhAWg0KKzsgbG9uZyBfX2NkZWNsIFZlcmlmeUFjY291bnRJbmZvKHZvaWQpDQorP1ZlcmlmeUFjY291bnRJbmZvQEBZQUpYWg0KKzsgaW50IF9fY2RlY2wgV2luOTVQcmVzZW50KHZvaWQpDQorP1dpbjk1UHJlc2VudEBAWUFIWFoNCis7IHN0cnVjdCBfU1BFQ0lBTF9BQ0NPVU5UXyAqICBnX2FTcGVjaWFsQWNjb3VudHMNCis/Z19hU3BlY2lhbEFjY291bnRzQEAzUEFVX1NQRUNJQUxfQUNDT1VOVF9AQEEgREFUQQ0KK0NsdXN0ZXJDaGFuZ2VEdGNVc2VyQWNjb3VudA0KK0NsdXN0ZXJDcnlwdG9Db250YWluZXJDcmVhdGUNCitDbHVzdGVyQ3J5cHRvQ29udGFpbmVyRGVsZXRlDQorQ2x1c3RlckRhY2xDcnlwdG9Db250YWluZXINCitDbHVzdGVyVXBkYXRlQWNjb3VudEluZm9ybWF0aW9uDQorRGVjcnlwdEFjY291bnRJbmZvcm1hdGlvbg0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsR2V0VHJhbnNhY3Rpb25NYW5hZ2VyQ29yZQ0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0VuY3J5cHRBY2NvdW50SW5mb3JtYXRpb24NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2R0Y3N0cC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc2R0Y3N0cC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzkxNmIyNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zZHRjc3RwLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG50ZHRjc2V0dXAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG50ZHRjc2V0dXAuZGxsDQorRVhQT1JUUw0KK09jRW50cnkNCitSdW5EdGNTZXRXZWJBcHBsaWNhdGlvblNlcnZlclJvbGVXDQorU2V0dXBQcmludExvZw0KK0R0Y0dldFdlYkFwcGxpY2F0aW9uU2VydmVyUm9sZQ0KK0R0Y1NldFdlYkFwcGxpY2F0aW9uU2VydmVyUm9sZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zZHRjdG0uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNkdGN0bS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTg2ZmE5YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zZHRjdG0uZGVmCkBAIC0wLDAgKzEsMjcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNEVENUTS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNEVENUTS5kbGwNCitFWFBPUlRTDQorRHRjTWFpbkV4dA0KK0FTQ1dyYXBPYmplY3QNCitBU0NEZWxpdmVyRGVmZXJyZWQNCitBU0NEZWZlcg0KK0FTQ0dldFNhZmVSZWZlcmVuY2UNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDVUlTQ29yZTo6Q3JlYXRlKGNsYXNzIENVSVNDb3JlICogX19wdHI2NCAqIF9fcHRyNjQsc3RydWN0IElVbmtub3duICogX19wdHI2NCkNCis/Q3JlYXRlQENVSVNDb3JlQEBTQUpQRUFQRUFWMUBQRUFVSVVua25vd25AQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ1RtOjpDcmVhdGVJbnN0YW5jZShjbGFzcyBDVG0gKiBfX3B0cjY0ICogX19wdHI2NCxzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0KQ0KKz9DcmVhdGVJbnN0YW5jZUBDVG1AQFNBSlBFQVBFQVYxQFBFQVVJVW5rbm93bkBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDWGFUbUNvcmU6OkNyZWF0ZUluc3RhbmNlKGNsYXNzIENYYVRtQ29yZSAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQpDQorP0NyZWF0ZUluc3RhbmNlQENYYVRtQ29yZUBAU0FKUEVBUEVBVjFAUEVBVUlVbmtub3duQEBAWg0KKzsgbG9uZyBfX2NkZWNsIENyZWF0ZVRocmVhZFBvb2wodm9pZCkNCis/Q3JlYXRlVGhyZWFkUG9vbEBAWUFKWFoNCitBU0NXcmFwQ2xhc3NGYWN0b3J5DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitHZXRUaXBGdW5jdGlvbmFsaXR5V29ya2luZw0KK1NldFRpcEZ1bmN0aW9uYWxpdHlXb3JraW5nDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNkdGN1aXUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNkdGN1aXUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk3ZWM0MDYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc2R0Y3VpdS5kZWYKQEAgLTAsMCArMSw2OCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU0RUQ1VJVS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNEVENVSVUuZGxsDQorRVhQT1JUUw0KK0luaXREQUNETEwNCitUZXJtREFDRExMDQorVGVybURBQ0luc3RhbmNlDQorRG9EQUNQcm9wU2hlZXQNCitEb0RBQ0FkdmFuY2VkDQorR2V0REFDU3RhdHNNaW5NYXhJbmZvDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0RhYzo6Q0RhYyhjbGFzcyBDRGFjIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENEYWNAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRGFjOjpDRGFjKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDRGFjQEBRRUFBQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIENEYWM6On5DRGFjKHZvaWQpIF9fcHRyNjQNCis/PzFDRGFjQEBRRUFBQFhaDQorOyBwdWJsaWM6IGNsYXNzIENEYWMgJiBfX3B0cjY0IF9fY2RlY2wgQ0RhYzo6b3BlcmF0b3I9KGNsYXNzIENEYWMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0RhY0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENEYWM6OkNvbm5lY3Qoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsc3RydWN0IElOVFNlcnZpY2VDb250cm9sICogX19wdHI2NCkgX19wdHI2NA0KKz9Db25uZWN0QENEYWNAQFFFQUFIUEVBVUhXTkRfX0BAUEVBVUlOVFNlcnZpY2VDb250cm9sQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENVaWNDb3JlOjpDcmVhdGUoY2xhc3MgQ1VpY0NvcmUgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/Q3JlYXRlQENVaWNDb3JlQEBTQUpQRUFQRUFWMUBAWg0KKzsgcHVibGljOiBjbGFzcyBDRGlhbG9nICogX19wdHI2NCBfX2NkZWNsIENEYWM6OkNyZWF0ZUFkdmFuY2VkUHJvcGVydHlTaGVldChjbGFzcyBDV25kICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVBZHZhbmNlZFByb3BlcnR5U2hlZXRAQ0RhY0BAUUVBQVBFQVZDRGlhbG9nQEBQRUFWQ1duZEBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RhYzo6RXJyb3JNZXNzYWdlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0Vycm9yTWVzc2FnZUBDRGFjQEBRRUFBSEtJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENEYWM6OkdldEFkbWluQWNjZXNzKHZvaWQpIF9fcHRyNjQNCis/R2V0QWRtaW5BY2Nlc3NAQ0RhY0BAUUVBQUtYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIENEYWM6OkdldEhvc3ROYW1lQSh2b2lkKSBfX3B0cjY0DQorP0dldEhvc3ROYW1lQUBDRGFjQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENEYWM6OkdldEhvc3ROYW1lVyh2b2lkKSBfX3B0cjY0DQorP0dldEhvc3ROYW1lV0BDRGFjQEBRRUFBUEVBR1haDQorOyBwdWJsaWM6IHN0cnVjdCBIV05EX18gKiBfX3B0cjY0IF9fY2RlY2wgQ0RhYzo6R2V0T3duZXJId25kKHZvaWQpIF9fcHRyNjQNCis/R2V0T3duZXJId25kQENEYWNAQFFFQUFQRUFVSFdORF9fQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDRGFjOjpHZXRWaXJ0dWFsSG9zdE5hbWUodm9pZCkgX19wdHI2NA0KKz9HZXRWaXJ0dWFsSG9zdE5hbWVAQ0RhY0BAUUVBQVBFQUdYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0RhYzo6SW5pdCh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdEBDRGFjQEBRRUFBSlBFQUdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGFjOjpJc0Nvbm5lY3RlZCh2b2lkKSBfX3B0cjY0DQorP0lzQ29ubmVjdGVkQENEYWNAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RhYzo6UHJvY2Vzc0NvbW1hbmQodW5zaWduZWQgX19pbnQ2NCxfX2ludDY0KSBfX3B0cjY0DQorP1Byb2Nlc3NDb21tYW5kQENEYWNAQFFFQUFIX0tfSkBaDQorOyB2b2lkIF9fY2RlY2wgUmVnaXN0ZXJFcnJvclNpbmsoc3RydWN0IElEYWNFcnJvclNpbmsgKiBfX3B0cjY0KQ0KKz9SZWdpc3RlckVycm9yU2lua0BAWUFYUEVBVUlEYWNFcnJvclNpbmtAQEBaDQorUnVuREFDRXhlDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRGFjOjpTZXJ2aWNlUmVxdWVzdCh1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsYm9vbCkgX19wdHI2NA0KKz9TZXJ2aWNlUmVxdWVzdEBDRGFjQEBRRUFBSktQRUFYS19OQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENEYWM6OlNldEhvc3ROYW1lQShjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRIb3N0TmFtZUFAQ0RhY0BAUUVBQVhQRUFEQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENEYWM6OlNldEhvc3ROYW1lVyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0SG9zdE5hbWVXQENEYWNAQFFFQUFYUEVBR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRGFjOjpTZXRPd25lclduZChjbGFzcyBDV25kICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRPd25lclduZEBDRGFjQEBRRUFBWFBFQVZDV25kQEBAWg0KKzsgY2xhc3MgQ0RhYyAqIF9fcHRyNjQgX19jZGVjbCBWYWxpZGF0ZURBQ0luc3RhbmNlKHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP1ZhbGlkYXRlREFDSW5zdGFuY2VAQFlBUEVBVkNEYWNAQFBFQVBFQVhQRUFHQFoNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbEdldERUQ1VJQw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0R0Y1BlcmZDbG9zZQ0KK0R0Y1BlcmZDb2xsZWN0DQorRHRjUGVyZk9wZW4NCitQZXJmRGxsUmVnaXN0ZXJTZXJ2ZXINCitTaHV0RG93blVJQw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zZnRlZGl0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zZnRlZGl0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iZjY5YWQxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNmdGVkaXQuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNGVEVESVQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TRlRFRElULmRsbA0KK0VYUE9SVFMNCitJSURfSVJpY2hFZGl0T2xlDQorSUlEX0lSaWNoRWRpdE9sZUNhbGxiYWNrDQorQ3JlYXRlVGV4dFNlcnZpY2VzDQorSUlEX0lUZXh0U2VydmljZXMNCitJSURfSVRleHRIb3N0DQorSUlEX0lUZXh0SG9zdDINCitSRUV4dGVuZGVkUmVnaXN0ZXJDbGFzcw0KK1JpY2hFZGl0QU5TSVduZFByb2MNCitSaWNoRWRpdDEwQU5TSVduZFByb2MNCitTZXRDdXN0b21UZXh0T3V0SGFuZGxlckV4DQorRGxsR2V0VmVyc2lvbg0KK1JpY2hFZGl0V25kUHJvYw0KK1JpY2hMaXN0Qm94V25kUHJvYw0KK1JpY2hDb21ib0JveFduZFByb2MNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2dpbmEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNnaW5hLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMTA5N2RiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNnaW5hLmRlZgpAQCAtMCwwICsxLDMwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TR0lOQS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNHSU5BLmRsbA0KK0VYUE9SVFMNCitTaGVsbFNodXRkb3duRGlhbG9nDQorV2x4QWN0aXZhdGVVc2VyU2hlbGwNCitXbHhEaXNjb25uZWN0Tm90aWZ5DQorV2x4RGlzcGxheUxvY2tlZE5vdGljZQ0KK1dseERpc3BsYXlTQVNOb3RpY2UNCitXbHhEaXNwbGF5U3RhdHVzTWVzc2FnZQ0KK1dseEdldENvbnNvbGVTd2l0Y2hDcmVkZW50aWFscw0KK1dseEdldFN0YXR1c01lc3NhZ2UNCitXbHhJbml0aWFsaXplDQorV2x4SXNMb2NrT2sNCitXbHhJc0xvZ29mZk9rDQorV2x4TG9nZ2VkT25TQVMNCitXbHhMb2dnZWRPdXRTQVMNCitXbHhMb2dvZmYNCitXbHhOZWdvdGlhdGUNCitXbHhOZXR3b3JrUHJvdmlkZXJMb2FkDQorV2x4UmVjb25uZWN0Tm90aWZ5DQorV2x4UmVtb3ZlU3RhdHVzTWVzc2FnZQ0KK1dseFNjcmVlblNhdmVyTm90aWZ5DQorV2x4U2h1dGRvd24NCitXbHhTdGFydEFwcGxpY2F0aW9uDQorV2x4V2tzdGFMb2NrZWRTQVMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2dyM2VuLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zZ3IzZW4uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJlZjRjZjMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc2dyM2VuLmRlZgpAQCAtMCwwICsxLDQzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zZ3IzZW4uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1zZ3IzZW4uZGxsDQorRVhQT1JUUw0KK0NoZWNrVmVyc2lvbg0KK0NoZWNrSW5pdA0KK0NoZWNrVGVybWluYXRlDQorQ2hlY2tUZXh0DQorQ2hlY2tHZXRFcnJvcg0KK0NoZWNrR2V0RXJyb3JJbmZvcm1hdGlvbg0KK0NoZWNrSWdub3JlRXJyb3INCitDaGVja1Jlc2V0RXJyb3INCitDaGVja0ZyZWVIYW5kbGUNCitDaGVja0VudW1IYW5kbGVzDQorQ2hlY2tVbmxvYWREb2MNCitDaGVja09wZW5NZHQNCitDaGVja0Nsb3NlTWR0DQorQ2hlY2tBZGRTdGF0cw0KK0NoZWNrR2V0U3RhdHMNCitDaGVja0luaXRTdGF0cw0KK0NoZWNrU3RhdHMNCitDaGVja0lnbm9yZVJ1bGUNCitDaGVja1Jlc2V0UnVsZQ0KK0NoZWNrSXNSdWxlSWdub3JlZA0KK0NoZWNrVXNlT3B0aW9ucw0KK0NoZWNrT3B0aW9uU2V0dGluZ3MNCitDaGVja1Jlc2V0T3B0aW9ucw0KK0NoZWNrV3JpdGVPcHRpb25zDQorQ2hlY2tMb2FkUGVyc2lzdERhdGENCitDaGVja1NhdmVQZXJzaXN0RGF0YQ0KK0RsbENhblVubG9hZE5vdw0KK0NoZWNrU3VidHJhY3RTdGF0cw0KK0NoZWNrQmF0Y2hVcGRhdGUNCitDaGVja0FkZFVkcg0KK0NoZWNrR2V0TmFtZWRFbnRpdHkNCitDaGVja0dldE5vcm1hbGl6ZWREYXRhDQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2dyb2NtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zZ3JvY20uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMxYjE2ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc2dyb2NtLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgT0NNU04uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE9DTVNOLmRsbA0KK0VYUE9SVFMNCitPY0VudHJ5DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNnc3ZjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zZ3N2Yy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDhlZmZjOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zZ3N2Yy5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc2dzdmMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1zZ3N2Yy5kbGwNCitFWFBPUlRTDQorU2VydmljZU1haW4NCitTdmNob3N0UHVzaFNlcnZpY2VHbG9iYWxzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNodG1sLXV1aWQuYyBiL21pbmd3LXc2NC1jcnQvbGliL21zaHRtbC11dWlkLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmExY2U1NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zaHRtbC11dWlkLmMKQEAgLTAsMCArMSwxNDcgQEAKKy8qIG1zaHRtbC11dWlkLmMgKi8KKy8qIEdlbmVyYXRlIEdVSURzIGZvciBNU0hUTUwgaW50ZXJmYWNlcyAqLworCisjZGVmaW5lIElOSVRHVUlECisjaW5jbHVkZSA8YmFzZXR5cHMuaD4KK0RFRklORV9HVUlEKElJRF9JSFRNTERvY3VtZW50LDB4NjI2ZmM1MjAsMHhhNDFlLDB4MTFjZiwweGE3LDB4MzEsMHgwLDB4YTAsMHhjOSwweDgsMHgyNiwweDM3KTsKK0RFRklORV9HVUlEKElJRF9JSFRNTERvY3VtZW50MiwweDMzMmM0NDI1LDB4MjZjYiwweDExZDAsMHhiNCwweDgzLDB4MCwweGMwLDB4NGYsMHhkOSwweDEsMHgxOSk7CitERUZJTkVfR1VJRChJSURfSUhUTUxFbGVtZW50LDB4MzA1MGYxZmYsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MU2VsZWN0aW9uT2JqZWN0LDB4MzA1MGYyNWEsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MVHh0UmFuZ2UsMHgzMDUwZjIyMCwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MSW1nRWxlbWVudCwweDMwNTBmMjQwLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxCb2R5RWxlbWVudCwweDMwNTBmMWQ4LDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxGb250RWxlbWVudCwweDMwNTBmMWQ5LDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxBbmNob3JFbGVtZW50LDB4MzA1MGYxZGEsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTFVMaXN0RWxlbWVudCwweDMwNTBmMWRkLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxPTGlzdEVsZW1lbnQsMHgzMDUwZjFkZSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MTElFbGVtZW50LDB4MzA1MGYxZTAsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTEJSRWxlbWVudCwweDMwNTBmMWYwLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxETGlzdEVsZW1lbnQsMHgzMDUwZjFmMSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MRERFbGVtZW50LDB4MzA1MGYxZjIsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTERURWxlbWVudCwweDMwNTBmMWYzLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxIUkVsZW1lbnQsMHgzMDUwZjFmNCwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MUGFyYUVsZW1lbnQsMHgzMDUwZjFmNSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MSGVhZGVyRWxlbWVudCwweDMwNTBmMWY2LDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxGb3JtRWxlbWVudCwweDMwNTBmMWY3LDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxEaXZFbGVtZW50LDB4MzA1MGYyMDAsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTEJhc2VGb250RWxlbWVudCwweDMwNTBmMjAyLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxNZXRhRWxlbWVudCwweDMwNTBmMjAzLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxCYXNlRWxlbWVudCwweDMwNTBmMjA0LDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxMaW5rRWxlbWVudCwweDMwNTBmMjA1LDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxJc0luZGV4RWxlbWVudCwweDMwNTBmMjA2LDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxOZXh0SWRFbGVtZW50LDB4MzA1MGYyMDcsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTEJsb2NrRWxlbWVudCwweDMwNTBmMjA4LDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxVbmtub3duRWxlbWVudCwweDMwNTBmMjA5LDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxQaHJhc2VFbGVtZW50LDB4MzA1MGYyMGEsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTENvbW1lbnRFbGVtZW50LDB4MzA1MGYyMGMsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTExpc3RFbGVtZW50LDB4MzA1MGYyMGUsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTE9wdGlvbkVsZW1lbnQsMHgzMDUwZjIxMSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MRGl2UG9zaXRpb24sMHgzMDUwZjIxMiwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MRGlhbG9nLDB4MzA1MGYyMTYsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTFRleHRFbGVtZW50LDB4MzA1MGYyMTgsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTFRhYmxlLDB4MzA1MGYyMWUsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTEVsZW1lbnRDb2xsZWN0aW9uLDB4MzA1MGYyMWYsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTFRleHRDb250YWluZXIsMHgzMDUwZjIzMCwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MVGFibGVDb2wsMHgzMDUwZjIzYSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MVGFibGVTZWN0aW9uLDB4MzA1MGYyM2IsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTFRhYmxlUm93LDB4MzA1MGYyM2MsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTFRhYmxlQ2VsbCwweDMwNTBmMjNkLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxTZWxlY3RFbGVtZW50LDB4MzA1MGYyNDQsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTE9iamVjdEVsZW1lbnQsMHgzMDUwZjI0ZiwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MU3R5bGUsMHgzMDUwZjI1ZSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MRW1iZWRFbGVtZW50LDB4MzA1MGYyNWYsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTEFyZWFFbGVtZW50LDB4MzA1MGYyNjUsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTE1hcEVsZW1lbnQsMHgzMDUwZjI2NiwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MU2NyaXB0RWxlbWVudCwweDMwNTBmMjhiLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxDb250cm9sUmFuZ2UsMHgzMDUwZjI5YywweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MSW5wdXRIaWRkZW5FbGVtZW50LDB4MzA1MGYyYTQsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTElucHV0VGV4dEVsZW1lbnQsMHgzMDUwZjJhNiwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MVGV4dEFyZWFFbGVtZW50LDB4MzA1MGYyYWEsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTElucHV0RmlsZUVsZW1lbnQsMHgzMDUwZjJhZCwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MSW5wdXRCdXR0b25FbGVtZW50LDB4MzA1MGYyYjIsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTE1hcnF1ZWVFbGVtZW50LDB4MzA1MGYyYjUsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTEJ1dHRvbkVsZW1lbnQsMHgzMDUwZjJiYiwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MT3B0aW9uQnV0dG9uRWxlbWVudCwweDMwNTBmMmJjLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxJbnB1dEltYWdlLDB4MzA1MGYyYzIsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTFN0eWxlU2hlZXQsMHgzMDUwZjJlMywweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MU3R5bGVTaGVldFJ1bGVzQ29sbGVjdGlvbiwweDMwNTBmMmU1LDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxUYWJsZUNhcHRpb24sMHgzMDUwZjJlYiwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MRnJhbWVCYXNlLDB4MzA1MGYzMTEsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTEZyYW1lRWxlbWVudCwweDMwNTBmMzEzLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxJRnJhbWVFbGVtZW50LDB4MzA1MGYzMTUsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTEZyYW1lU2V0RWxlbWVudCwweDMwNTBmMzE5LDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxUaXRsZUVsZW1lbnQsMHgzMDUwZjMyMiwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MTGFiZWxFbGVtZW50LDB4MzA1MGYzMmEsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTEV2ZW50T2JqLDB4MzA1MGYzMmQsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTFN0eWxlU2hlZXRSdWxlLDB4MzA1MGYzNTcsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTFNjcmVlbiwweDMwNTBmMzVjLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxCR3NvdW5kLDB4MzA1MGYzNjksMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTFN0eWxlRWxlbWVudCwweDMwNTBmMzc1LDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxGb250TmFtZXNDb2xsZWN0aW9uLDB4MzA1MGYzNzYsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTEZvbnRTaXplc0NvbGxlY3Rpb24sMHgzMDUwZjM3NywweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MT3B0aW9uc0hvbGRlciwweDMwNTBmMzc4LDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxTdHlsZVNoZWV0c0NvbGxlY3Rpb24sMHgzMDUwZjM3ZSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MQXJlYXNDb2xsZWN0aW9uLDB4MzA1MGYzODMsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTE5vU2hvd0VsZW1lbnQsMHgzMDUwZjM4YSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MT3B0aW9uRWxlbWVudEZhY3RvcnksMHgzMDUwZjM4YywweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MSW1hZ2VFbGVtZW50RmFjdG9yeSwweDMwNTBmMzhlLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxSdWxlU3R5bGUsMHgzMDUwZjNjZiwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MU3R5bGVGb250RmFjZSwweDMwNTBmM2Q1LDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxDdXJyZW50U3R5bGUsMHgzMDUwZjNkYiwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MU3BhbkZsb3csMHgzMDUwZjNlNSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MRmllbGRTZXRFbGVtZW50LDB4MzA1MGYzZTcsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTExlZ2VuZEVsZW1lbnQsMHgzMDUwZjNlYSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MRmlsdGVyc0NvbGxlY3Rpb24sMHgzMDUwZjNlZSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MRGF0YWJpbmRpbmcsMHgzMDUwZjNmMiwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MU3BhbkVsZW1lbnQsMHgzMDUwZjNmMywweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MTWltZVR5cGVzQ29sbGVjdGlvbiwweDMwNTBmM2ZjLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxQbHVnaW5zQ29sbGVjdGlvbiwweDMwNTBmM2ZkLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxPcHNQcm9maWxlLDB4MzA1MGY0MDEsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTFRleHRSYW5nZU1ldHJpY3MsMHgzMDUwZjQwYiwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MVGFibGVSb3dNZXRyaWNzLDB4MzA1MGY0MTMsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTEVsZW1lbnQyLDB4MzA1MGY0MzQsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTERvY3VtZW50MywweDMwNTBmNDg1LDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxFdmVudE9iajIsMHgzMDUwZjQ4YiwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MVXNlckRhdGFPTSwweDMwNTBmNDhmLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxUYWJsZVJvdzIsMHgzMDUwZjRhMSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MU3R5bGUyLDB4MzA1MGY0YTIsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTFJlY3QsMHgzMDUwZjRhMywweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MUmVjdENvbGxlY3Rpb24sMHgzMDUwZjRhNCwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MVGV4dFJhbmdlTWV0cmljczIsMHgzMDUwZjRhNiwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MUnVsZVN0eWxlMiwweDMwNTBmNGFjLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxUYWJsZTIsMHgzMDUwZjRhZCwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MV2luZG93MywweDMwNTBmNGFlLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxET01BdHRyaWJ1dGUsMHgzMDUwZjRiMCwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MRE9NVGV4dE5vZGUsMHgzMDUwZjRiMSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MRGF0YVRyYW5zZmVyLDB4MzA1MGY0YjMsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTEdlbmVyaWNFbGVtZW50LDB4MzA1MGY0YjcsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTFBlcnNpc3REYXRhT00sMHgzMDUwZjRjMCwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MQXR0cmlidXRlQ29sbGVjdGlvbiwweDMwNTBmNGMzLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxQZXJzaXN0RGF0YSwweDMwNTBmNGM1LDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxPYmplY3RFbGVtZW50MiwweDMwNTBmNGNkLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxCb29rbWFya0NvbGxlY3Rpb24sMHgzMDUwZjRjZSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MVW5pcXVlTmFtZSwweDMwNTBmNGQwLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxMaW5rRWxlbWVudDIsMHgzMDUwZjRlNSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MSUZyYW1lRWxlbWVudDIsMHgzMDUwZjRlNiwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MQ29udHJvbEVsZW1lbnQsMHgzMDUwZjRlOSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MRm9ybUVsZW1lbnQyLDB4MzA1MGY0ZjYsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTERPTUNoaWxkcmVuQ29sbGVjdGlvbiwweDMwNTBmNWFiLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxCb2R5RWxlbWVudDIsMHgzMDUwZjVjNSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MRnJhbWVTZXRFbGVtZW50MiwweDMwNTBmNWM2LDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxUYWJsZVNlY3Rpb24yLDB4MzA1MGY1YzcsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTEFwcEJlaGF2aW9yMiwweDMwNTBmNWM5LDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxBcHBCZWhhdmlvciwweDMwNTBmNWNhLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxJbnB1dEVsZW1lbnQsMHgzMDUwZjVkMiwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MRE9NTm9kZSwweDMwNTBmNWRhLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxEaWFsb2cyLDB4MzA1MGY1ZTAsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTFVybkNvbGxlY3Rpb24sMHgzMDUwZjVlMiwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MTW9kZWxlc3NJbml0LDB4MzA1MGY1ZTQsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwLDB4YWEsMHgwLDB4YmQsMHhjZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTERvY3VtZW50RnJhZ21lbnQsMHgzMDUwZjVlNSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MQXJlYXNDb2xsZWN0aW9uMiwweDMwNTBmNWVjLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxTZWxlY3RFbGVtZW50MiwweDMwNTBmNWVkLDB4OThiNSwweDExY2YsMHhiYiwweDgyLDB4MCwweGFhLDB4MCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxFbGVtZW50Q29sbGVjdGlvbjIsMHgzMDUwZjVlZSwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAsMHhhYSwweDAsMHhiZCwweGNlLDB4MGIpOworREVGSU5FX0dVSUQoSUlEX0lIVE1MRnJhbWVzQ29sbGVjdGlvbjIsMHgzMzJjNDQyNiwweDI2Y2IsMHgxMWQwLDB4YjQsMHg4MywweDAsMHhjMCwweDRmLDB4ZDksMHgwMSwweDE5KTsKK0RFRklORV9HVUlEKElJRF9JSFRNTFdpbmRvdzIsMHgzMzJjNDQyNywweDI2Y2IsMHgxMWQwLDB4YjQsMHg4MywweDAsMHhjMCwweDRmLDB4ZDksMHgwMSwweDE5KTsKK0RFRklORV9HVUlEKElJRF9JSFRNTExvY2F0aW9uLDB4MTYzYmIxZTAsMHg2ZTAwLDB4MTFjZiwweDgzLDB4N2EsMHg0OCwweGRjLDB4MDQsMHhjMSwweDAsMHgwKTsKK0RFRklORV9HVUlEKElJRF9JSFRNTEZyYW1lQmFzZTIsMHgzMDUwZjZkYiwweDk4YjUsMHgxMWNmLDB4YmIsMHg4MiwweDAwLDB4YWEsMHgwMCwweGJkLDB4Y2UsMHgwYik7CitERUZJTkVfR1VJRChJSURfSUhUTUxGcmFtZUJhc2UzLDB4MzA1MGY4MmUsMHg5OGI1LDB4MTFjZiwweGJiLDB4ODIsMHgwMCwweGFhLDB4MDAsMHhiZCwweGNlLDB4MGIpOwpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNodG1sLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zaHRtbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTZmYmJhOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zaHRtbC5kZWYKQEAgLTAsMCArMSwyNyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU0hUTUwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TSFRNTC5kbGwNCitFWFBPUlRTDQorQ3JlYXRlSFRNTFByb3BlcnR5UGFnZQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEVudW1DbGFzc09iamVjdHMNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbEluc3RhbGwNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitNYXRjaEV4YWN0R2V0SURzT2ZOYW1lcw0KK1ByaW50SFRNTA0KK1JOSUdldENvbXBhdGlibGVWZXJzaW9uDQorUnVuSFRNTEFwcGxpY2F0aW9uDQorU2hvd0hUTUxEaWFsb2cNCitTaG93SFRNTERpYWxvZ0V4DQorU2hvd01vZGFsRGlhbG9nDQorU2hvd01vZGVsZXNzSFRNTERpYWxvZw0KK2NvbV9tc19vc3Bfb3NwbXJzaGxfY2xhc3NJbml0DQorY29tX21zX29zcF9vc3BtcnNobF9jb3B5VG9FeHRlcm5hbDY0DQorY29tX21zX29zcF9vc3BtcnNobF9yZWxlYXNlQnlWYWxFeHRlcm5hbDY0DQorY29tX21zX29zcF9vc3BtcnNobF90b0phdmE2NA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zaHRtbGVkLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zaHRtbGVkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MGE3OTljCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNodG1sZWQuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXNodG1sZWQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1zaHRtbGVkLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxFbnVtQ2xhc3NPYmplY3RzDQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2kuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNzdiZTJhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNpLmRlZgpAQCAtMCwwICsxLDI4OSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc2kuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1zaS5kbGwNCitFWFBPUlRTDQorTXNpQWR2ZXJ0aXNlUHJvZHVjdEENCitNc2lBZHZlcnRpc2VQcm9kdWN0Vw0KK01zaUNsb3NlQWxsSGFuZGxlcw0KK01zaUNsb3NlSGFuZGxlDQorTXNpQ29sbGVjdFVzZXJJbmZvQQ0KK01zaUNvbGxlY3RVc2VySW5mb1cNCitNc2lDb25maWd1cmVGZWF0dXJlQQ0KK01zaUNvbmZpZ3VyZUZlYXR1cmVGcm9tRGVzY3JpcHRvckENCitNc2lDb25maWd1cmVGZWF0dXJlRnJvbURlc2NyaXB0b3JXDQorTXNpQ29uZmlndXJlRmVhdHVyZVcNCitNc2lDb25maWd1cmVQcm9kdWN0QQ0KK01zaUNvbmZpZ3VyZVByb2R1Y3RXDQorTXNpQ3JlYXRlUmVjb3JkDQorTXNpRGF0YWJhc2VBcHBseVRyYW5zZm9ybUENCitNc2lEYXRhYmFzZUFwcGx5VHJhbnNmb3JtVw0KK01zaURhdGFiYXNlQ29tbWl0DQorTXNpRGF0YWJhc2VFeHBvcnRBDQorTXNpRGF0YWJhc2VFeHBvcnRXDQorTXNpRGF0YWJhc2VHZW5lcmF0ZVRyYW5zZm9ybUENCitNc2lEYXRhYmFzZUdlbmVyYXRlVHJhbnNmb3JtVw0KK01zaURhdGFiYXNlR2V0UHJpbWFyeUtleXNBDQorTXNpRGF0YWJhc2VHZXRQcmltYXJ5S2V5c1cNCitNc2lEYXRhYmFzZUltcG9ydEENCitNc2lEYXRhYmFzZUltcG9ydFcNCitNc2lEYXRhYmFzZU1lcmdlQQ0KK01zaURhdGFiYXNlTWVyZ2VXDQorTXNpRGF0YWJhc2VPcGVuVmlld0ENCitNc2lEYXRhYmFzZU9wZW5WaWV3Vw0KK01zaURvQWN0aW9uQQ0KK01zaURvQWN0aW9uVw0KK01zaUVuYWJsZVVJUHJldmlldw0KK01zaUVudW1DbGllbnRzQQ0KK01zaUVudW1DbGllbnRzVw0KK01zaUVudW1Db21wb25lbnRRdWFsaWZpZXJzQQ0KK01zaUVudW1Db21wb25lbnRRdWFsaWZpZXJzVw0KK01zaUVudW1Db21wb25lbnRzQQ0KK01zaUVudW1Db21wb25lbnRzVw0KK01zaUVudW1GZWF0dXJlc0ENCitNc2lFbnVtRmVhdHVyZXNXDQorTXNpRW51bVByb2R1Y3RzQQ0KK01zaUVudW1Qcm9kdWN0c1cNCitNc2lFdmFsdWF0ZUNvbmRpdGlvbkENCitNc2lFdmFsdWF0ZUNvbmRpdGlvblcNCitNc2lHZXRMYXN0RXJyb3JSZWNvcmQNCitNc2lHZXRBY3RpdmVEYXRhYmFzZQ0KK01zaUdldENvbXBvbmVudFN0YXRlQQ0KK01zaUdldENvbXBvbmVudFN0YXRlVw0KK01zaUdldERhdGFiYXNlU3RhdGUNCitNc2lHZXRGZWF0dXJlQ29zdEENCitNc2lHZXRGZWF0dXJlQ29zdFcNCitNc2lHZXRGZWF0dXJlSW5mb0ENCitNc2lHZXRGZWF0dXJlSW5mb1cNCitNc2lHZXRGZWF0dXJlU3RhdGVBDQorTXNpR2V0RmVhdHVyZVN0YXRlVw0KK01zaUdldEZlYXR1cmVVc2FnZUENCitNc2lHZXRGZWF0dXJlVXNhZ2VXDQorTXNpR2V0RmVhdHVyZVZhbGlkU3RhdGVzQQ0KK01zaUdldEZlYXR1cmVWYWxpZFN0YXRlc1cNCitNc2lHZXRMYW5ndWFnZQ0KK01zaUdldE1vZGUNCitNc2lHZXRQcm9kdWN0Q29kZUENCitNc2lHZXRQcm9kdWN0Q29kZVcNCitNc2lHZXRQcm9kdWN0SW5mb0ENCitNc2lHZXRQcm9kdWN0SW5mb0Zyb21TY3JpcHRBDQorTXNpR2V0UHJvZHVjdEluZm9Gcm9tU2NyaXB0Vw0KK01zaUdldFByb2R1Y3RJbmZvVw0KK01zaUdldFByb2R1Y3RQcm9wZXJ0eUENCitNc2lHZXRQcm9kdWN0UHJvcGVydHlXDQorTXNpR2V0UHJvcGVydHlBDQorTXNpR2V0UHJvcGVydHlXDQorTXNpR2V0U291cmNlUGF0aEENCitNc2lHZXRTb3VyY2VQYXRoVw0KK01zaUdldFN1bW1hcnlJbmZvcm1hdGlvbkENCitNc2lHZXRTdW1tYXJ5SW5mb3JtYXRpb25XDQorTXNpR2V0VGFyZ2V0UGF0aEENCitNc2lHZXRUYXJnZXRQYXRoVw0KK01zaUdldFVzZXJJbmZvQQ0KK01zaUdldFVzZXJJbmZvVw0KK01zaUluc3RhbGxNaXNzaW5nQ29tcG9uZW50QQ0KK01zaUluc3RhbGxNaXNzaW5nQ29tcG9uZW50Vw0KK01zaUluc3RhbGxNaXNzaW5nRmlsZUENCitNc2lJbnN0YWxsTWlzc2luZ0ZpbGVXDQorTXNpSW5zdGFsbFByb2R1Y3RBDQorTXNpSW5zdGFsbFByb2R1Y3RXDQorTXNpTG9jYXRlQ29tcG9uZW50QQ0KK01zaUxvY2F0ZUNvbXBvbmVudFcNCitNc2lPcGVuRGF0YWJhc2VBDQorTXNpT3BlbkRhdGFiYXNlVw0KK01zaU9wZW5QYWNrYWdlQQ0KK01zaU9wZW5QYWNrYWdlVw0KK01zaU9wZW5Qcm9kdWN0QQ0KK01zaU9wZW5Qcm9kdWN0Vw0KK01zaVByZXZpZXdCaWxsYm9hcmRBDQorTXNpUHJldmlld0JpbGxib2FyZFcNCitNc2lQcmV2aWV3RGlhbG9nQQ0KK01zaVByZXZpZXdEaWFsb2dXDQorTXNpUHJvY2Vzc0FkdmVydGlzZVNjcmlwdEENCitNc2lQcm9jZXNzQWR2ZXJ0aXNlU2NyaXB0Vw0KK01zaVByb2Nlc3NNZXNzYWdlDQorTXNpUHJvdmlkZUNvbXBvbmVudEENCitNc2lQcm92aWRlQ29tcG9uZW50RnJvbURlc2NyaXB0b3JBDQorTXNpUHJvdmlkZUNvbXBvbmVudEZyb21EZXNjcmlwdG9yVw0KK01zaVByb3ZpZGVDb21wb25lbnRXDQorTXNpUHJvdmlkZVF1YWxpZmllZENvbXBvbmVudEENCitNc2lQcm92aWRlUXVhbGlmaWVkQ29tcG9uZW50Vw0KK01zaVF1ZXJ5RmVhdHVyZVN0YXRlQQ0KK01zaVF1ZXJ5RmVhdHVyZVN0YXRlVw0KK01zaVF1ZXJ5UHJvZHVjdFN0YXRlQQ0KK01zaVF1ZXJ5UHJvZHVjdFN0YXRlVw0KK01zaVJlY29yZERhdGFTaXplDQorTXNpUmVjb3JkR2V0RmllbGRDb3VudA0KK01zaVJlY29yZEdldEludGVnZXINCitNc2lSZWNvcmRHZXRTdHJpbmdBDQorTXNpUmVjb3JkR2V0U3RyaW5nVw0KK01zaVJlY29yZElzTnVsbA0KK01zaVJlY29yZFJlYWRTdHJlYW0NCitNc2lSZWNvcmRTZXRJbnRlZ2VyDQorTXNpUmVjb3JkU2V0U3RyZWFtQQ0KK01zaVJlY29yZFNldFN0cmVhbVcNCitNc2lSZWNvcmRTZXRTdHJpbmdBDQorTXNpUmVjb3JkU2V0U3RyaW5nVw0KK01zaVJlaW5zdGFsbEZlYXR1cmVBDQorTXNpUmVpbnN0YWxsRmVhdHVyZUZyb21EZXNjcmlwdG9yQQ0KK01zaVJlaW5zdGFsbEZlYXR1cmVGcm9tRGVzY3JpcHRvclcNCitNc2lSZWluc3RhbGxGZWF0dXJlVw0KK01zaVJlaW5zdGFsbFByb2R1Y3RBDQorTXNpUmVpbnN0YWxsUHJvZHVjdFcNCitNc2lTZXF1ZW5jZUENCitNc2lTZXF1ZW5jZVcNCitNc2lTZXRDb21wb25lbnRTdGF0ZUENCitNc2lTZXRDb21wb25lbnRTdGF0ZVcNCitNc2lTZXRFeHRlcm5hbFVJQQ0KK01zaVNldEV4dGVybmFsVUlXDQorTXNpU2V0RmVhdHVyZVN0YXRlQQ0KK01zaVNldEZlYXR1cmVTdGF0ZVcNCitNc2lTZXRJbnN0YWxsTGV2ZWwNCitNc2lTZXRJbnRlcm5hbFVJDQorTXNpVmVyaWZ5RGlza1NwYWNlDQorTXNpU2V0TW9kZQ0KK01zaVNldFByb3BlcnR5QQ0KK01zaVNldFByb3BlcnR5Vw0KK01zaVNldFRhcmdldFBhdGhBDQorTXNpU2V0VGFyZ2V0UGF0aFcNCitNc2lTdW1tYXJ5SW5mb0dldFByb3BlcnR5QQ0KK01zaVN1bW1hcnlJbmZvR2V0UHJvcGVydHlDb3VudA0KK01zaVN1bW1hcnlJbmZvR2V0UHJvcGVydHlXDQorTXNpU3VtbWFyeUluZm9QZXJzaXN0DQorTXNpU3VtbWFyeUluZm9TZXRQcm9wZXJ0eUENCitNc2lTdW1tYXJ5SW5mb1NldFByb3BlcnR5Vw0KK01zaVVzZUZlYXR1cmVBDQorTXNpVXNlRmVhdHVyZVcNCitNc2lWZXJpZnlQYWNrYWdlQQ0KK01zaVZlcmlmeVBhY2thZ2VXDQorTXNpVmlld0Nsb3NlDQorTXNpVmlld0V4ZWN1dGUNCitNc2lWaWV3RmV0Y2gNCitNc2lWaWV3R2V0RXJyb3JBDQorTXNpVmlld0dldEVycm9yVw0KK01zaVZpZXdNb2RpZnkNCitNc2lEYXRhYmFzZUlzVGFibGVQZXJzaXN0ZW50QQ0KK01zaURhdGFiYXNlSXNUYWJsZVBlcnNpc3RlbnRXDQorTXNpVmlld0dldENvbHVtbkluZm8NCitNc2lSZWNvcmRDbGVhckRhdGENCitNc2lFbmFibGVMb2dBDQorTXNpRW5hYmxlTG9nVw0KK01zaUZvcm1hdFJlY29yZEENCitNc2lGb3JtYXRSZWNvcmRXDQorTXNpR2V0Q29tcG9uZW50UGF0aEENCitNc2lHZXRDb21wb25lbnRQYXRoVw0KK01zaUFwcGx5UGF0Y2hBDQorTXNpQXBwbHlQYXRjaFcNCitNc2lBZHZlcnRpc2VTY3JpcHRBDQorTXNpQWR2ZXJ0aXNlU2NyaXB0Vw0KK01zaUdldFBhdGNoSW5mb0ENCitNc2lHZXRQYXRjaEluZm9XDQorTXNpRW51bVBhdGNoZXNBDQorTXNpRW51bVBhdGNoZXNXDQorRGxsR2V0VmVyc2lvbg0KK01zaUdldFByb2R1Y3RDb2RlRnJvbVBhY2thZ2VDb2RlQQ0KK01zaUdldFByb2R1Y3RDb2RlRnJvbVBhY2thZ2VDb2RlVw0KK01zaUNyZWF0ZVRyYW5zZm9ybVN1bW1hcnlJbmZvQQ0KK01zaUNyZWF0ZVRyYW5zZm9ybVN1bW1hcnlJbmZvVw0KK01zaVF1ZXJ5RmVhdHVyZVN0YXRlRnJvbURlc2NyaXB0b3JBDQorTXNpUXVlcnlGZWF0dXJlU3RhdGVGcm9tRGVzY3JpcHRvclcNCitNc2lDb25maWd1cmVQcm9kdWN0RXhBDQorTXNpQ29uZmlndXJlUHJvZHVjdEV4Vw0KK01zaUludmFsaWRhdGVGZWF0dXJlQ2FjaGUNCitNc2lVc2VGZWF0dXJlRXhBDQorTXNpVXNlRmVhdHVyZUV4Vw0KK01zaUdldEZpbGVWZXJzaW9uQQ0KK01zaUdldEZpbGVWZXJzaW9uVw0KK01zaUxvYWRTdHJpbmdBDQorTXNpTG9hZFN0cmluZ1cNCitNc2lNZXNzYWdlQm94QQ0KK01zaU1lc3NhZ2VCb3hXDQorTXNpRGVjb21wb3NlRGVzY3JpcHRvckENCitNc2lEZWNvbXBvc2VEZXNjcmlwdG9yVw0KK01zaVByb3ZpZGVRdWFsaWZpZWRDb21wb25lbnRFeEENCitNc2lQcm92aWRlUXVhbGlmaWVkQ29tcG9uZW50RXhXDQorTXNpRW51bVJlbGF0ZWRQcm9kdWN0c0ENCitNc2lFbnVtUmVsYXRlZFByb2R1Y3RzVw0KK01zaVNldEZlYXR1cmVBdHRyaWJ1dGVzQQ0KK01zaVNldEZlYXR1cmVBdHRyaWJ1dGVzVw0KK01zaVNvdXJjZUxpc3RDbGVhckFsbEENCitNc2lTb3VyY2VMaXN0Q2xlYXJBbGxXDQorTXNpU291cmNlTGlzdEFkZFNvdXJjZUENCitNc2lTb3VyY2VMaXN0QWRkU291cmNlVw0KK01zaVNvdXJjZUxpc3RGb3JjZVJlc29sdXRpb25BDQorTXNpU291cmNlTGlzdEZvcmNlUmVzb2x1dGlvblcNCitNc2lJc1Byb2R1Y3RFbGV2YXRlZEENCitNc2lJc1Byb2R1Y3RFbGV2YXRlZFcNCitNc2lHZXRTaG9ydGN1dFRhcmdldEENCitNc2lHZXRTaG9ydGN1dFRhcmdldFcNCitNc2lHZXRGaWxlSGFzaEENCitNc2lHZXRGaWxlSGFzaFcNCitNc2lFbnVtQ29tcG9uZW50Q29zdHNBDQorTXNpRW51bUNvbXBvbmVudENvc3RzVw0KK01zaUNyZWF0ZUFuZFZlcmlmeUluc3RhbGxlckRpcmVjdG9yeQ0KK01zaUdldEZpbGVTaWduYXR1cmVJbmZvcm1hdGlvbkENCitNc2lHZXRGaWxlU2lnbmF0dXJlSW5mb3JtYXRpb25XDQorTXNpUHJvdmlkZUFzc2VtYmx5QQ0KK01zaVByb3ZpZGVBc3NlbWJseVcNCitNc2lBZHZlcnRpc2VQcm9kdWN0RXhBDQorTXNpQWR2ZXJ0aXNlUHJvZHVjdEV4Vw0KK01zaU5vdGlmeVNpZENoYW5nZUENCitNc2lOb3RpZnlTaWRDaGFuZ2VXDQorTXNpT3BlblBhY2thZ2VFeEENCitNc2lPcGVuUGFja2FnZUV4Vw0KK01zaURlbGV0ZVVzZXJEYXRhQQ0KK01zaURlbGV0ZVVzZXJEYXRhVw0KK01pZ3JhdGUxMENhY2hlZFBhY2thZ2VzQQ0KK01pZ3JhdGUxMENhY2hlZFBhY2thZ2VzVw0KK01zaVJlbW92ZVBhdGNoZXNBDQorTXNpUmVtb3ZlUGF0Y2hlc1cNCitNc2lBcHBseU11bHRpcGxlUGF0Y2hlc0ENCitNc2lBcHBseU11bHRpcGxlUGF0Y2hlc1cNCitNc2lFeHRyYWN0UGF0Y2hYTUxEYXRhQQ0KK01zaUV4dHJhY3RQYXRjaFhNTERhdGFXDQorTXNpR2V0UGF0Y2hJbmZvRXhBDQorTXNpR2V0UGF0Y2hJbmZvRXhXDQorTXNpRW51bVByb2R1Y3RzRXhBDQorTXNpRW51bVByb2R1Y3RzRXhXDQorTXNpR2V0UHJvZHVjdEluZm9FeEENCitNc2lHZXRQcm9kdWN0SW5mb0V4Vw0KK01zaVF1ZXJ5Q29tcG9uZW50U3RhdGVBDQorTXNpUXVlcnlDb21wb25lbnRTdGF0ZVcNCitNc2lRdWVyeUZlYXR1cmVTdGF0ZUV4QQ0KK01zaVF1ZXJ5RmVhdHVyZVN0YXRlRXhXDQorTXNpRGV0ZXJtaW5lUGF0Y2hTZXF1ZW5jZUENCitNc2lEZXRlcm1pbmVQYXRjaFNlcXVlbmNlVw0KK01zaVNvdXJjZUxpc3RBZGRTb3VyY2VFeEENCitNc2lTb3VyY2VMaXN0QWRkU291cmNlRXhXDQorTXNpU291cmNlTGlzdENsZWFyU291cmNlQQ0KK01zaVNvdXJjZUxpc3RDbGVhclNvdXJjZVcNCitNc2lTb3VyY2VMaXN0Q2xlYXJBbGxFeEENCitNc2lTb3VyY2VMaXN0Q2xlYXJBbGxFeFcNCitNc2lTb3VyY2VMaXN0Rm9yY2VSZXNvbHV0aW9uRXhBDQorTXNpU291cmNlTGlzdEZvcmNlUmVzb2x1dGlvbkV4Vw0KK01zaVNvdXJjZUxpc3RFbnVtU291cmNlc0ENCitNc2lTb3VyY2VMaXN0RW51bVNvdXJjZXNXDQorTXNpU291cmNlTGlzdEdldEluZm9BDQorTXNpU291cmNlTGlzdEdldEluZm9XDQorTXNpU291cmNlTGlzdFNldEluZm9BDQorTXNpU291cmNlTGlzdFNldEluZm9XDQorTXNpRW51bVBhdGNoZXNFeEENCitNc2lFbnVtUGF0Y2hlc0V4Vw0KK01zaVNvdXJjZUxpc3RFbnVtTWVkaWFEaXNrc0ENCitNc2lTb3VyY2VMaXN0RW51bU1lZGlhRGlza3NXDQorTXNpU291cmNlTGlzdEFkZE1lZGlhRGlza0ENCitNc2lTb3VyY2VMaXN0QWRkTWVkaWFEaXNrVw0KK01zaVNvdXJjZUxpc3RDbGVhck1lZGlhRGlza0ENCitNc2lTb3VyY2VMaXN0Q2xlYXJNZWRpYURpc2tXDQorTXNpRGV0ZXJtaW5lQXBwbGljYWJsZVBhdGNoZXNBDQorTXNpRGV0ZXJtaW5lQXBwbGljYWJsZVBhdGNoZXNXDQorTXNpTWVzc2FnZUJveEV4QQ0KK01zaU1lc3NhZ2VCb3hFeFcNCitNc2lTZXRFeHRlcm5hbFVJUmVjb3JkDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2lkZW50LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zaWRlbnQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEyYjQ4NmEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc2lkZW50LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zaWRlbnQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1zaWRlbnQuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNpZWZ0cC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc2llZnRwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NDVkNjgxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNpZWZ0cC5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU0lFRlRQLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU0lFRlRQLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbEluc3RhbGwNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2lobmQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNpaG5kLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NTA5MDFjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNpaG5kLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zaWhuZC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXNpaG5kLmRsbA0KK0VYUE9SVFMNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zaW1nMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNpbWczMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjkzMWQyMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zaW1nMzIuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNJTUczMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNJTUczMi5kbGwNCitFWFBPUlRTDQordlNldERkcmF3ZmxhZw0KK0FscGhhQmxlbmQNCitEbGxJbml0aWFsaXplDQorR3JhZGllbnRGaWxsDQorVHJhbnNwYXJlbnRCbHQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2ltdGYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNpbXRmLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMTJlZWMzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNpbXRmLmRlZgpAQCAtMCwwICsxLDE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zaW10Zi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXNpbXRmLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK01zaW10ZklzR3VpZE1hcEVuYWJsZQ0KK01zaW10ZklzV2luZG93RmlsdGVyZWQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2luZm8uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNpbmZvLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zN2IwNWI1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNpbmZvLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zaW5mbzMyLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc2luZm8zMi5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2lwcm92LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zaXByb3YuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM4ZmMyYTcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc2lwcm92LmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TSVByb3YuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TSVByb3YuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsTWFpbg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zaXIzanAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNpcjNqcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODBkNWFiOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zaXIzanAuZGVmCkBAIC0wLDAgKzEsMjAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXNpcjNqcC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXNpcjNqcC5kbGwNCitFWFBPUlRTDQorRW51bVNlbGVjdGlvbk9mZnNldHMNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0VudW1TdW1tYXJpemF0aW9uT2Zmc2V0cw0KK0VudW1TdGVtSW5mbw0KK0VudW1TZW50ZW5jZU9mZnNldHMNCitXb3JkQnJlYWtJbml0DQorV29yZEJyZWFrSW5pdEV4DQorRW51bVBocmFzZXMNCitFbnVtU3VtbWFyaXphdGlvbk9mZnNldHNFeA0KK0VudW1TdGVtT2Zmc2V0cw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zaXNpcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc2lzaXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI1MTEzOWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc2lzaXAuZGVmCkBAIC0wLDAgKzEsMTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXNpc2lwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc2lzaXAuZGxsDQorRVhQT1JUUw0KK01zaVNJUElzTXlUeXBlT2ZGaWxlDQorTXNpU0lQR2V0U2lnbmVkRGF0YU1zZw0KK01zaVNJUFB1dFNpZ25lZERhdGFNc2cNCitNc2lTSVBSZW1vdmVTaWduZWREYXRhTXNnDQorTXNpU0lQQ3JlYXRlSW5kaXJlY3REYXRhDQorTXNpU0lQVmVyaWZ5SW5kaXJlY3REYXRhDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNsYnVpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zbGJ1aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWE3OWZiOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zbGJ1aS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TTEJVSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNMQlVJLmRsbA0KK0VYUE9SVFMNCitDVEZHZXRMYW5nQmFyQWRkSW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2xzMzEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNsczMxLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNzUzODlmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNsczMxLmRlZgpAQCAtMCwwICsxLDg3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zbHMzMS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXNsczMxLmRsbA0KK0VYUE9SVFMNCitMc0NyZWF0ZUNvbnRleHQNCitMc0Rlc3Ryb3lDb250ZXh0DQorTHNDcmVhdGVMaW5lDQorTHNNb2RpZnlMaW5lSGVpZ2h0DQorTHNEZXN0cm95TGluZQ0KK0xzQ3JlYXRlU3VibGluZQ0KK0xzRmV0Y2hBcHBlbmRUb0N1cnJlbnRTdWJsaW5lDQorTHNBcHBlbmRSdW5Ub0N1cnJlbnRTdWJsaW5lDQorTHNSZXNldFJNSW5DdXJyZW50U3VibGluZQ0KK0xzRmluaXNoQ3VycmVudFN1YmxpbmUNCitMc1RydW5jYXRlU3VibGluZQ0KK0xzRmluZFByZXZCcmVha1N1YmxpbmUNCitMc0ZpbmROZXh0QnJlYWtTdWJsaW5lDQorTHNGb3JjZUJyZWFrU3VibGluZQ0KK0xzU2V0QnJlYWtTdWJsaW5lDQorTHNEZXN0cm95U3VibGluZQ0KK0xzTWF0Y2hQcmVzU3VibGluZQ0KK0xzRXhwYW5kU3VibGluZQ0KK0xzR2V0U3BlY2lhbEVmZmVjdHNTdWJsaW5lDQorTHNkbkZpbmlzaFJlZ3VsYXINCitMc2RuRmluaXNoUmVndWxhckFkZEFkdmFuY2VQZW4NCitMc2RuRmluaXNoRGVsZXRlDQorTHNkbkZpbmlzaEJ5UGVuDQorTHNkbkZpbmlzaEJ5U3VibGluZQ0KK0xzZG5GaW5pc2hEZWxldGVBbGwNCitMc2RuRmluaXNoQnlPbmVDaGFyDQorTHNkblF1ZXJ5T2JqRGltUmFuZ2UNCitMc2RuUmVzZXRPYmpEaW0NCitMc2RuUXVlcnlQZW5Ob2RlDQorTHNkblJlc2V0UGVuTm9kZQ0KK0xzZG5TZXRSaWdpZER1cA0KK0xzZG5HZXREdXANCitMc2RuU2V0QWJzQmFzZUxpbmUNCitMc2RuUmVzb2x2ZVByZXZUYWINCitMc2RuR2V0Q3VyVGFiSW5mbw0KK0xzZG5Ta2lwQ3VyVGFiDQorTHNkbkRpc3RyaWJ1dGUNCitMc2RuU3VibWl0U3VibGluZXMNCitMc0Rpc3BsYXlMaW5lDQorTHNEaXNwbGF5U3VibGluZQ0KK0xzUXVlcnlMaW5lQ3BQcG9pbnQNCitMc1F1ZXJ5TGluZVBvaW50UGNwDQorTHNRdWVyeUxpbmVEdXANCitMc1F1ZXJ5RkxpbmVFbXB0eQ0KK0xzUXVlcnlQb2ludFBjcFN1YmxpbmUNCitMc1F1ZXJ5Q3BQcG9pbnRTdWJsaW5lDQorTHNTZXREb2MNCitMc1NldE1vZFdpZHRoUGFpcnMNCitMc1NldENvbXByZXNzaW9uDQorTHNTZXRFeHBhbnNpb24NCitMc1NldEJyZWFraW5nDQorTHNzYkdldE9iakRpbVN1YmxpbmUNCitMc3NiR2V0RHVwU3VibGluZQ0KK0xzc2JGRG9uZVByZXNTdWJsaW5lDQorTHNzYkdldFBsc3J1bnNGcm9tU3VibGluZQ0KK0xzc2JHZXROdW1iZXJEbm9kZXNJblN1YmxpbmUNCitMc3NiR2V0VmlzaWJsZURjcEluU3VibGluZQ0KK0xzUG9pbnRYWUZyb21Qb2ludFVWDQorTHNQb2ludFVWMkZyb21Qb2ludFVWMQ0KK0xzR2V0V2FyaWNodUxzaW1ldGhvZHMNCitMc0dldFJ1YnlMc2ltZXRob2RzDQorTHNHZXRUYXRlbmFrYXlva29Mc2ltZXRob2RzDQorTHNTcXVlZXplU3VibGluZQ0KK0xzQ29tcHJlc3NTdWJsaW5lDQorTHNHZXRIaWhMc2ltZXRob2RzDQorTHNRdWVyeVRleHRDZWxsRGV0YWlscw0KK0xzRmV0Y2hBcHBlbmRUb0N1cnJlbnRTdWJsaW5lUmVzdW1lDQorTHNkbkdldEZvcm1hdERlcHRoDQorTHNzYkZEb25lRGlzcGxheQ0KK0xzR2V0UmV2ZXJzZUxzaW1ldGhvZHMNCitMc0VudW1MaW5lDQorTHNHZXRNaW5EdXJCcmVha3MNCitMc0dldExpbmVEdXINCitMc0VudW1TdWJsaW5lDQorTHNkbk1vZGlmeVBhcmFFbmRpbmcNCitMc3NiR2V0RHVyVHJhaWxJblN1YmxpbmUNCitMc3NiR2V0RHVyVHJhaWxXaXRoUGVuc0luU3VibGluZQ0KK0xzc2JGSXNTdWJsaW5lRW1wdHkNCitMc0x3TXVsdERpdlINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc2x3dnR0cy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc2x3dnR0cy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjFiMjhlYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zbHd2dHRzLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TTFdWVFRTLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU0xXVlRUUy5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc21xb2NtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zbXFvY20uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgyNmM0MjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc21xb2NtLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TTVFPQ00uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TTVFPQ00uZGxsDQorRVhQT1JUUw0KK01zbXFPY20NCitTeXNwcmVwRGVsZXRlUW1JZA0KK1dlbGNvbWVFbnRyeVByb2MNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc29iY29tbS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc29iY29tbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzg3ZTQxZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zb2Jjb21tLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TT0JDT01NLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU09CQ09NTS5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc29iZGwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNvYmRsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lMjI2NTI3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNvYmRsLmRlZgpAQCAtMCwwICsxLDE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TT0JETC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNPQkRMLkRMTA0KK0VYUE9SVFMNCitEb3duTG9hZEluaXQNCitEb3duTG9hZENhbmNlbA0KK0Rvd25Mb2FkRXhlY3V0ZQ0KK0Rvd25Mb2FkQ2xvc2UNCitEb3duTG9hZFNldFN0YXR1c0NhbGxiYWNrDQorRG93bkxvYWRQcm9jZXNzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNvYm1haW4uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNvYm1haW4uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFiNTU2ODcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc29ibWFpbi5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc29ibWFpbi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXNvYm1haW4uZGxsDQorRVhQT1JUUw0KK0xhdW5jaE1TT09CRQ0KK0lzT2VtVmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNvYnNoZWwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNvYnNoZWwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNlYmQ0ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc29ic2hlbC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU09CU0hFTC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNPQlNIRUwuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNvYndlYi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc29id2ViLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44YTJjYWI3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNvYndlYi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU09CV0VCLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU09CV0VCLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zb2UuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNvZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjdiNGFlNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zb2UuZGVmCkBAIC0wLDAgKzEsNDAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNPRS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNPRS5kbGwNCitFWFBPUlRTDQorQk1BUElBZGRyZXNzDQorQk1BUElEZXRhaWxzDQorQk1BUElGaW5kTmV4dA0KK0JNQVBJR2V0QWRkcmVzcw0KK0JNQVBJR2V0UmVhZE1haWwNCitCTUFQSVJlYWRNYWlsDQorQk1BUElSZXNvbHZlTmFtZQ0KK0JNQVBJU2F2ZU1haWwNCitCTUFQSVNlbmRNYWlsDQorQ29TdGFydE91dGxvb2tFeHByZXNzDQorRklzRGVmYXVsdE1haWxDb25maWdlZA0KK0ZJc0RlZmF1bHROZXdzQ29uZmlnZWQNCitJbXBvcnRNYWlsU3RvcmVUb0dVSUQNCitJbXBvcnROZXdzTGlzdFRvR1VJRA0KK1NldERlZmF1bHRNYWlsSGFuZGxlcg0KK1NldERlZmF1bHROZXdzSGFuZGxlcg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorTUFQSUFkZHJlc3MNCitNQVBJRGVsZXRlTWFpbA0KK01BUElEZXRhaWxzDQorTUFQSUZpbmROZXh0DQorTUFQSUZyZWVCdWZmZXINCitNQVBJTG9nb2ZmDQorTUFQSUxvZ29uDQorTUFQSVJlYWRNYWlsDQorTUFQSVJlc29sdmVOYW1lDQorTUFQSVNhdmVNYWlsDQorTUFQSVNlbmREb2N1bWVudHMNCitNQVBJU2VuZE1haWwNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc29lYWNjdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc29lYWNjdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjhiYTM2YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zb2VhY2N0LmRlZgpAQCAtMCwwICsxLDE3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TT0VBQ0NULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU09FQUNDVC5kbGwNCitFWFBPUlRTDQorQ3JlYXRlQWNjb3VudHNGcm9tRmlsZQ0KK0NyZWF0ZUFjY291bnRzRnJvbUZpbGVFeA0KK0dldERsbE1ham9yVmVyc2lvbg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorSHJDcmVhdGVBY2NvdW50TWFuYWdlcg0KK1ZhbGlkRW1haWxBZGRyZXNzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNvZXJ0Mi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc29lcnQyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41Yzk4ZWM2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNvZXJ0Mi5kZWYKQEAgLTAsMCArMSwxNjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNPRVJUMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNPRVJUMi5kbGwNCitFWFBPUlRTDQorQ3JlYXRlU3lzdGVtSGFuZGxlTmFtZQ0KK0NyeXB0QWxsb2NGdW5jDQorQ3J5cHRGcmVlRnVuYw0KK0ZJbml0aWFsaXplUmljaEVkaXQNCitHZXREbGxNYWpvclZlcnNpb24NCitHZXRIdG1sQ2hhcnNldA0KK0dldFJpY2hFZENsYXNzU3RyaW5nVw0KK0hyR2V0Q2VydEtleVVzYWdlDQorSHJWZXJpZnlDZXJ0RW5oS2V5VXNhZ2UNCitJVW5rbm93bkxpc3RfQ3JlYXRlSW5zdGFuY2UNCitJVm9pZFB0ckxpc3RfQ3JlYXRlSW5zdGFuY2UNCitJc0h0dHBVcmxBDQorU2V0Rm9udE9uUmljaEVkDQorQXBwZW5kVGVtcEZpbGVMaXN0DQorQXRod3NwcmludGZXDQorQnJvd3NlRm9yRm9sZGVyDQorQnJvd3NlRm9yRm9sZGVyVw0KK0J1aWxkTm90aWZpY2F0aW9uUGFja2FnZQ0KK0NjaEZpbGVUaW1lVG9EYXRlVGltZVN6DQorQ2NoRmlsZVRpbWVUb0RhdGVUaW1lVw0KK0NlbnRlckRpYWxvZw0KK0NoQ29udmVydEZyb21IZXgNCitDbGVhbnVwRmlsZU5hbWVJblBsYWNlQQ0KK0NsZWFudXBGaWxlTmFtZUluUGxhY2VXDQorQ2xlYW51cEdsb2JhbFRlbXBGaWxlcw0KK0NvcHlSZWdpc3RyeQ0KK0NyYWNrTm90aWZpY2F0aW9uUGFja2FnZQ0KK0NyZWF0ZURhdGFPYmplY3QNCitDcmVhdGVFbnVtRm9ybWF0RXRjDQorQ3JlYXRlSW5mb1dpbmRvdw0KK0NyZWF0ZUxvZ0ZpbGUNCitDcmVhdGVOb3RpZnkNCitDcmVhdGVTdHJlYW1PbkhGaWxlDQorQ3JlYXRlU3RyZWFtT25IRmlsZVcNCitDcmVhdGVUZW1wRmlsZQ0KK0NyZWF0ZVRlbXBGaWxlU3RyZWFtDQorRGVsZXRlVGVtcEZpbGUNCitEZWxldGVUZW1wRmlsZU9uU2h1dGRvd24NCitEZWxldGVUZW1wRmlsZU9uU2h1dGRvd25FeA0KK0RvSG90TWFpbFdpemFyZA0KK0ZCdWlsZFRlbXBQYXRoDQorRkJ1aWxkVGVtcFBhdGhXDQorRklzRW1wdHlBDQorRklzRW1wdHlXDQorRklzSFRNTEZpbGUNCitGSXNIVE1MRmlsZVcNCitGSXNTcGFjZUENCitGSXNTcGFjZVcNCitGSXNWYWxpZEZpbGVOYW1lQ2hhckENCitGSXNWYWxpZEZpbGVOYW1lQ2hhclcNCitGTWlzc2luZ0NlcnQNCitGcmVlVGVtcEZpbGVMaXN0DQorR2VuZXJhdGVVbmlxdWVGaWxlTmFtZQ0KK0dldEV4ZVBhdGgNCitIckJTVFJUb0xQU1oNCitIckJ5dGVUb1N0cmVhbQ0KK0hyQ2hlY2tUcmlkZW50TWVudQ0KK0hyQ29weUxvY2tCeXRlc1RvU3RyZWFtDQorSHJDb3B5U3RyZWFtDQorSHJDb3B5U3RyZWFtQ0INCitIckNvcHlTdHJlYW1DQkVuZE9uQ1JMRg0KK0hyQ29weVN0cmVhbVRvQnl0ZQ0KK0hyQ3JlYXRlUGhvbmVib29rRW50cnkNCitIckNyZWF0ZVRyaWRlbnRNZW51DQorSHJEZWNvZGVPYmplY3QNCitIckVkaXRQaG9uZWJvb2tFbnRyeQ0KK0hyRmlsbFJhc0NvbWJvDQorSHJGaW5kSW5ldFRpbWVab25lDQorSHJHZXRCb2R5RWxlbWVudA0KK0hyR2V0Q2VydGlmaWNhdGVQYXJhbQ0KK0hyR2V0RWxlbWVudEltcGwNCitIckdldE1zZ1BhcmFtDQorSHJHZXRTdHJlYW1Qb3MNCitIckdldFN0cmVhbVNpemUNCitIckdldFN0eWxlU2hlZXQNCitIcklTdHJlYW1Ub0JTVFINCitIcklTdHJlYW1XVG9CU1RSDQorSHJJbmRleE9mTW9udGgNCitIckluZGV4T2ZXZWVrDQorSHJJc1N0cmVhbVVuaWNvZGUNCitIckxQU1pDUFRvQlNUUg0KK0hyTFBTWlRvQlNUUg0KK0hyUmV3aW5kU3RyZWFtDQorSHJTYWZlR2V0U3RyZWFtU2l6ZQ0KK0hyU2V0RGlydHlGbGFnSW1wbA0KK0hyU3RyZWFtU2Vla0JlZ2luDQorSHJTdHJlYW1TZWVrQ3VyDQorSHJTdHJlYW1TZWVrRW5kDQorSHJTdHJlYW1TZWVrU2V0DQorSHJTdHJlYW1Ub0J5dGUNCitJRHJhd1RleHQNCitJc0RpZ2l0DQorSXNQbGF0Zm9ybVdpbk5UDQorSXNQcmludA0KK0lzVXBwZXINCitJc1ZhbGlkRmlsZUlmRmlsZVVybA0KK0lzVmFsaWRGaWxlSWZGaWxlVXJsVw0KK0xvYWRNYXBwZWRUb29sYmFyQml0bWFwDQorTWVzc2FnZUJveEluc3QNCitNZXNzYWdlQm94SW5zdFcNCitPcGVuRmlsZVN0cmVhbQ0KK09wZW5GaWxlU3RyZWFtU2hhcmUNCitPcGVuRmlsZVN0cmVhbVNoYXJlVw0KK09wZW5GaWxlU3RyZWFtVw0KK09wZW5GaWxlU3RyZWFtV2l0aEZsYWdzDQorT3BlbkZpbGVTdHJlYW1XaXRoRmxhZ3NXDQorUFNUQ3JlYXRlVHlwZVN1YlR5cGVfTm9VSQ0KK1BTVEZyZWVIYW5kbGUNCitQU1RHZXREYXRhDQorUFNUU2V0TmV3RGF0YQ0KK1BWRGVjb2RlT2JqZWN0DQorUFZHZXRDZXJ0aWZpY2F0ZVBhcmFtDQorUFZHZXRNc2dQYXJhbQ0KK1BzekFsbG9jQQ0KK1BzekFsbG9jVw0KK1BzekRheUZyb21JbmRleA0KK1BzekR1cEENCitQc3pEdXBMZW5BDQorUHN6RHVwVw0KK1BzekVzY2FwZU1lbnVTdHJpbmdBDQorUHN6RnJvbUFOU0lTdHJlYW1BDQorUHN6TW9udGhGcm9tSW5kZXgNCitQc3pTY2FuVG9DaGFyQQ0KK1BzelNjYW5Ub1doaXRlQQ0KK1BzelNraXBXaGl0ZUENCitQc3pTa2lwV2hpdGVXDQorUHN6VG9BTlNJDQorUHN6VG9Vbmljb2RlDQorUmVwbGFjZUNoYXJzDQorUmVwbGFjZUNoYXJzVw0KK1JpY2hlZGl0U3RyZWFtSW4NCitSaWNoZWRpdFN0cmVhbU91dA0KK1NldEludGxGb250DQorU2V0V2luZG93TG9uZ1B0ckF0aFcNCitTaGVsbFV0aWxfR2V0U3BlY2lhbEZvbGRlclBhdGgNCitTdHJDaHJFeEENCitTdHJUb1VpbnRBDQorU3RyVG9VaW50Vw0KK1N0clRva0V4DQorU3RyZWFtU3ViU3RyaW5nTWF0Y2gNCitTdHJpcENSTEYNCitTekdldENlcnRpZmljYXRlRW1haWxBZGRyZXNzDQorVWxTdHJpcFdoaXRlc3BhY2UNCitVbFN0cmlwV2hpdGVzcGFjZVcNCitVbmxvY1N0ckVxTlcNCitVcGRhdGVSZWJhckJhbmRDb2xvcnMNCitXcml0ZVN0cmVhbVRvRmlsZQ0KK1dyaXRlU3RyZWFtVG9GaWxlSGFuZGxlDQorV3JpdGVTdHJlYW1Ub0ZpbGVXDQorV3N6R2VuZXJhdGVOYW1lRnJvbUJsb2INCitfTVNHDQorZkdldEJyb3dzZXJVcmxFbmNvZGluZw0KK3N0cnRyaW0NCitzdHJ0cmltVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zcGF0Y2hhLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zcGF0Y2hhLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NDc4ZDZiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNwYXRjaGEuZGVmCkBAIC0wLDAgKzEsMjAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXNwYXRjaGEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1zcGF0Y2hhLmRsbA0KK0VYUE9SVFMNCitBcHBseVBhdGNoVG9GaWxlQQ0KK0FwcGx5UGF0Y2hUb0ZpbGVCeUhhbmRsZXMNCitBcHBseVBhdGNoVG9GaWxlQnlIYW5kbGVzRXgNCitBcHBseVBhdGNoVG9GaWxlRXhBDQorQXBwbHlQYXRjaFRvRmlsZUV4Vw0KK0FwcGx5UGF0Y2hUb0ZpbGVXDQorR2V0RmlsZVBhdGNoU2lnbmF0dXJlQQ0KK0dldEZpbGVQYXRjaFNpZ25hdHVyZUJ5SGFuZGxlDQorR2V0RmlsZVBhdGNoU2lnbmF0dXJlVw0KK1Rlc3RBcHBseVBhdGNoVG9GaWxlQQ0KK1Rlc3RBcHBseVBhdGNoVG9GaWxlQnlIYW5kbGVzDQorVGVzdEFwcGx5UGF0Y2hUb0ZpbGVXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNwbXNuc3YuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNwbXNuc3YuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUxMzQyZWMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc3Btc25zdi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc3Btc3Bzbi5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXNwbXNwc24uRExMDQorRVhQT1JUUw0KK1NlcnZpY2VNYWluDQorRGxsTWFpbg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zcG9ydHMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNwb3J0cy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2M1OTVjYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zcG9ydHMuZGVmCkBAIC0wLDAgKzEsMTkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNQT1JUUy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNQT1JUUy5ETEwNCitFWFBPUlRTDQorQ29tREJDbGFpbU5leHRGcmVlUG9ydA0KK0NvbURCQ2xhaW1Qb3J0DQorQ29tREJDbG9zZQ0KK0NvbURCR2V0Q3VycmVudFBvcnRVc2FnZQ0KK0NvbURCT3Blbg0KK0NvbURCUmVsZWFzZVBvcnQNCitDb21EQlJlc2l6ZURhdGFiYXNlDQorUGFyYWxsZWxQb3J0UHJvcFBhZ2VQcm92aWRlcg0KK1BvcnRzQ2xhc3NJbnN0YWxsZXINCitTZXJpYWxEaXNwbGF5QWR2YW5jZWRTZXR0aW5ncw0KK1NlcmlhbFBvcnRQcm9wUGFnZVByb3ZpZGVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXNyYXRpbmcuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXNyYXRpbmcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVkNThiYjUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc3JhdGluZy5kZWYKQEAgLTAsMCArMSwzNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU1JBVElORy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNSQVRJTkcuZGxsDQorRVhQT1JUUw0KK0NoYW5nZVN1cGVydmlzb3JQYXNzd29yZA0KK0NsaWNrZWRPblBSRg0KK0NsaWNrZWRPblJBVA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorUmF0aW5nQWNjZXNzRGVuaWVkRGlhbG9nDQorUmF0aW5nQWNjZXNzRGVuaWVkRGlhbG9nMg0KK1JhdGluZ0FkZFByb3BlcnR5UGFnZXMNCitSYXRpbmdDaGVja1VzZXJBY2Nlc3MNCitSYXRpbmdDdXN0b21BZGRSYXRpbmdIZWxwZXINCitSYXRpbmdDdXN0b21BZGRSYXRpbmdTeXN0ZW0NCitSYXRpbmdDdXN0b21DcmFja0RhdGENCitSYXRpbmdDdXN0b21EZWxldGVDcmFja2VkRGF0YQ0KK1JhdGluZ0N1c3RvbUluaXQNCitSYXRpbmdDdXN0b21SZW1vdmVSYXRpbmdIZWxwZXINCitSYXRpbmdDdXN0b21TZXREZWZhdWx0QnVyZWF1DQorUmF0aW5nQ3VzdG9tU2V0VXNlck9wdGlvbnMNCitSYXRpbmdFbmFibGUNCitSYXRpbmdFbmFibGVkUXVlcnkNCitSYXRpbmdGcmVlRGV0YWlscw0KK1JhdGluZ0luaXQNCitSYXRpbmdPYnRhaW5DYW5jZWwNCitSYXRpbmdPYnRhaW5RdWVyeQ0KK1JhdGluZ1NldHVwVUkNCitWZXJpZnlTdXBlcnZpc29yUGFzc3dvcmQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc3JsZTMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zcmxlMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUxZDZlYjEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc3JsZTMyLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNSTEUzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNSTEUzMi5kbGwNCitFWFBPUlRTDQorRHJpdmVyUHJvYw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zc2lnbjMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zc2lnbjMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iZmMwODFmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXNzaWduMzIuZGVmCkBAIC0wLDAgKzEsMzggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNTSUdOMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TU0lHTjMyLmRsbA0KK0VYUE9SVFMNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitGcmVlQ3J5cHRQcm92RnJvbUNlcnQNCitHZXRDcnlwdFByb3ZGcm9tQ2VydA0KK1B2a0ZyZWVDcnlwdFByb3YNCitQdmtHZXRDcnlwdFByb3YNCitQdmtQcml2YXRlS2V5QWNxdWlyZUNvbnRleHQNCitQdmtQcml2YXRlS2V5QWNxdWlyZUNvbnRleHRBDQorUHZrUHJpdmF0ZUtleUFjcXVpcmVDb250ZXh0RnJvbU1lbW9yeQ0KK1B2a1ByaXZhdGVLZXlBY3F1aXJlQ29udGV4dEZyb21NZW1vcnlBDQorUHZrUHJpdmF0ZUtleUxvYWQNCitQdmtQcml2YXRlS2V5TG9hZEENCitQdmtQcml2YXRlS2V5TG9hZEZyb21NZW1vcnkNCitQdmtQcml2YXRlS2V5TG9hZEZyb21NZW1vcnlBDQorUHZrUHJpdmF0ZUtleVJlbGVhc2VDb250ZXh0DQorUHZrUHJpdmF0ZUtleVJlbGVhc2VDb250ZXh0QQ0KK1B2a1ByaXZhdGVLZXlTYXZlDQorUHZrUHJpdmF0ZUtleVNhdmVBDQorUHZrUHJpdmF0ZUtleVNhdmVUb01lbW9yeQ0KK1B2a1ByaXZhdGVLZXlTYXZlVG9NZW1vcnlBDQorU2lnbkVycm9yDQorU2lnbmVyQWRkVGltZVN0YW1wUmVzcG9uc2UNCitTaWduZXJBZGRUaW1lU3RhbXBSZXNwb25zZUV4DQorU2lnbmVyQ3JlYXRlVGltZVN0YW1wUmVxdWVzdA0KK1NpZ25lckZyZWVTaWduZXJDb250ZXh0DQorU2lnbmVyU2lnbg0KK1NpZ25lclNpZ25FeA0KK1NpZ25lclRpbWVTdGFtcA0KK1NpZ25lclRpbWVTdGFtcEV4DQorU3BjR2V0Q2VydEZyb21LZXkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc3NpcDMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zc2lwMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAxM2ZkNmMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc3NpcDMyLmRlZgpAQCAtMCwwICsxLDE3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TU0lQMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TU0lQMzIuZGxsDQorRVhQT1JUUw0KK0NyeXB0U0lQR2V0SW5mbw0KK0NyeXB0U0lQR2V0UmVnV29ya2luZ0ZsYWdzDQorQ3J5cHRTSVBDcmVhdGVJbmRpcmVjdERhdGENCitDcnlwdFNJUEdldFNpZ25lZERhdGFNc2cNCitDcnlwdFNJUFB1dFNpZ25lZERhdGFNc2cNCitDcnlwdFNJUFJlbW92ZVNpZ25lZERhdGFNc2cNCitDcnlwdFNJUFZlcmlmeUluZGlyZWN0RGF0YQ0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zdGFzay5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc3Rhc2suZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRlOGY1YWYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc3Rhc2suZGVmCkBAIC0wLDAgKzEsMjEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXN0YXNrLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc3Rhc2suZGxsDQorRVhQT1JUUw0KK0NvbnZlcnRBdEpvYnNUb1Rhc2tzDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitHZXROZXRTY2hlZHVsZUFjY291bnRJbmZvcm1hdGlvbg0KK05ldHJKb2JBZGQNCitOZXRySm9iRGVsDQorTmV0ckpvYkVudW0NCitOZXRySm9iR2V0SW5mbw0KK1NBR2V0QWNjb3VudEluZm9ybWF0aW9uDQorU0FHZXROU0FjY291bnRJbmZvcm1hdGlvbg0KK1NBU2V0QWNjb3VudEluZm9ybWF0aW9uDQorU0FTZXROU0FjY291bnRJbmZvcm1hdGlvbg0KK1NldE5ldFNjaGVkdWxlQWNjb3VudEluZm9ybWF0aW9uDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXN0aW1lLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zdGltZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGVlZGFiMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zdGltZS5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU1RJTUUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TVElNRS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsRW51bUNsYXNzT2JqZWN0cw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXN0bHNhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXN0bHNhcGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAyY2FkNzYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc3Rsc2FwaS5kZWYKQEAgLTAsMCArMSw4NCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc3Rsc2FwaS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXN0bHNhcGkuZGxsDQorRVhQT1JUUw0KK1RMU0dldFZlcnNpb24NCitNSURMX3VzZXJfYWxsb2NhdGUNCitNSURMX3VzZXJfZnJlZQ0KK0VudW1lcmF0ZVRsc1NlcnZlcg0KK1RMU1NlbmRTZXJ2ZXJDZXJ0aWZpY2F0ZQ0KK1RMU0dldFNlcnZlck5hbWUNCitUTFNHZXRTZXJ2ZXJTY29wZQ0KK1RMU0lzc3VlUGxhdGZvcm1DaGFsbGVuZ2UNCitUTFNJc3N1ZU5ld0xpY2Vuc2UNCitUTFNVcGdyYWRlTGljZW5zZQ0KK1RMU0FsbG9jYXRlQ29uY3VycmVudExpY2Vuc2UNCitUTFNHZXRMYXN0RXJyb3INCitUTFNLZXlQYWNrRW51bUJlZ2luDQorVExTS2V5UGFja0VudW1OZXh0DQorVExTS2V5UGFja0VudW1FbmQNCitUTFNMaWNlbnNlRW51bUJlZ2luDQorVExTTGljZW5zZUVudW1OZXh0DQorVExTTGljZW5zZUVudW1FbmQNCitUTFNHZXRBdmFpbGFibGVMaWNlbnNlcw0KK1RMU0Nvbm5lY3RUb0xzU2VydmVyDQorVExTQ29ubmVjdFRvQW55THNTZXJ2ZXINCitUTFNEaXNjb25uZWN0RnJvbVNlcnZlcg0KK0ZpbmRFbnRlcnByaXNlU2VydmVyDQorR2V0QWxsRW50ZXJwcmlzZVNlcnZlcnMNCitUTFNJbml0DQorVExTR2V0VFNDZXJ0aWZpY2F0ZQ0KK0xzQ3NwX0dldFNlcnZlckRhdGENCitMc0NzcF9EZWNyeXB0RW52ZWxvcGVkRGF0YQ0KK0xzQ3NwX0VuY3J5cHRId2lkDQorTHNDc3BfU3RvcmVTZWNyZXQNCitMc0NzcF9SZXRyaWV2ZVNlY3JldA0KK1RMU1N0YXJ0RGlzY292ZXJ5DQorVExTU3RvcERpc2NvdmVyeQ0KK1RMU1NodXRkb3duDQorVExTRnJlZVRTQ2VydGlmaWNhdGUNCitUTFNJc3N1ZU5ld0xpY2Vuc2VFeA0KK1RMU1VwZ3JhZGVMaWNlbnNlRXgNCitUTFNDaGVja0xpY2Vuc2VNYXJrDQorVExTSXNzdWVOZXdMaWNlbnNlRXhFeA0KK1RMU0dldFNlcnZlck5hbWVFeA0KK1RMU0xpY2Vuc2VFbnVtTmV4dEV4DQorVExTR2V0U2VydmVyTmFtZUZpeGVkDQorVExTR2V0U2VydmVyU2NvcGVGaXhlZA0KK1RMU0dldExhc3RFcnJvckZpeGVkDQorR2V0TGljZW5zZVNlcnZlcnNGcm9tUmVnDQorVExTQ29ubmVjdFRvQW55THNTZXJ2ZXJOb0NlcnRJbnN0YWxsDQorUmVxdWVzdFRvVGxzUmVxdWVzdA0KK1RMU1JlcXVlc3RUZXJtU2VydkNlcnQNCitUTFNSZXRyaWV2ZVRlcm1TZXJ2Q2VydA0KK1RMU0luc3RhbGxDZXJ0aWZpY2F0ZQ0KK1RMU0dldFNlcnZlckNlcnRpZmljYXRlDQorVExTUmVnaXN0ZXJMaWNlbnNlS2V5UGFjaw0KK1RMU0dldExTUEtDUzEwQ2VydFJlcXVlc3QNCitUTFNLZXlQYWNrQWRkDQorVExTS2V5UGFja1NldFN0YXR1cw0KK1RMU1JldHVybkxpY2Vuc2UNCitUTFNBbm5vdW5jZVNlcnZlcg0KK1RMU0xvb2t1cFNlcnZlcg0KK1RMU0Fubm91bmNlTGljZW5zZVBhY2sNCitUTFNSZXR1cm5MaWNlbnNlZFByb2R1Y3QNCitUTFNUZWxlcGhvbmVSZWdpc3RlckxLUA0KK1RMU0NoYWxsZW5nZVNlcnZlcg0KK1RMU1Jlc3BvbnNlU2VydmVyQ2hhbGxlbmdlDQorVExTR2V0VGxzUHJpdmF0ZURhdGENCitUTFNUcmlnZ2VyUmVHZW5LZXkNCitUTFNHZXRTZXJ2ZXJQSUQNCitUTFNHZXRTZXJ2ZXJTUEsNCitUTFNEZXBvc2l0ZVNlcnZlclNQSw0KK1RMU0FsbG9jYXRlSW50ZXJuZXRMaWNlbnNlRXgNCitUTFNSZXR1cm5JbnRlcm5ldExpY2Vuc2VFeA0KK1RMU0lzQmV0YU5UU2VydmVyDQorVExTSXNMaWNlbnNlRW5mb3JjZUVuYWJsZQ0KK1RMU0luRG9tYWluDQorVExTTWFya0xpY2Vuc2UNCitUTFNHZXRTdXBwb3J0RmxhZ3MNCitUTFNMb29rdXBTZXJ2ZXJGaXhlZA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zdHNjYXguZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXN0c2NheC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmY1MGQzNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zdHNjYXguZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXN0c2NheC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXN0c2NheC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxHZXRUc2NDdGxWZXINCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc3V0Yi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc3V0Yi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDM1ZTg5YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zdXRiLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TVVRCLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU1VUQi5kbGwNCitFWFBPUlRTDQorQ2xvc2VQb3B1cFRpcGJhcg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorR2V0TGliVGxzDQorR2V0UG9wdXBUaXBiYXINCitTZXRSZWdpc3RlckxhbmdCYW5kDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXN2MV8wLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zdjFfMC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTBjNGU3NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zdjFfMC5kZWYKQEAgLTAsMCArMSwyNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc3YxXzAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1zdjFfMC5kbGwNCitFWFBPUlRTDQorU3BJbml0aWFsaXplDQorU3BMc2FNb2RlSW5pdGlhbGl6ZQ0KK1NwVXNlck1vZGVJbml0aWFsaXplDQorTHNhQXBDYWxsUGFja2FnZQ0KK0xzYUFwQ2FsbFBhY2thZ2VQYXNzdGhyb3VnaA0KK0xzYUFwQ2FsbFBhY2thZ2VVbnRydXN0ZWQNCitMc2FBcEluaXRpYWxpemVQYWNrYWdlDQorTHNhQXBMb2dvblRlcm1pbmF0ZWQNCitMc2FBcExvZ29uVXNlckV4Mg0KK01zdjFfMEV4cG9ydFN1YkF1dGhlbnRpY2F0aW9uUm91dGluZQ0KK01zdjFfMFN1YkF1dGhlbnRpY2F0aW9uUHJlc2VudA0KK01zdkdldExvZ29uQXR0ZW1wdENvdW50DQorTXN2U2FtTG9nb2ZmDQorTXN2U2FtVmFsaWRhdGUNCitNc3ZWYWxpZGF0ZVRhcmdldA0KK1NwSW5zdGFuY2VJbml0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXN2Y2lydC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc3ZjaXJ0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NzU3OWNjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXN2Y2lydC5kZWYKQEAgLTAsMCArMSw4MTkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXN2Y2lydC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXN2Y2lydC5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fY2RlY2wgSW9zdHJlYW1faW5pdDo6SW9zdHJlYW1faW5pdChjbGFzcyBpb3MgJiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MElvc3RyZWFtX2luaXRAQFFFQUFAQUVBVmlvc0BASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSW9zdHJlYW1faW5pdDo6SW9zdHJlYW1faW5pdCh2b2lkKSBfX3B0cjY0DQorPz8wSW9zdHJlYW1faW5pdEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIGV4Y2VwdGlvbjo6ZXhjZXB0aW9uKGNoYXIgY29uc3QgKiBfX3B0cjY0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MGV4Y2VwdGlvbkBAUUVBQUBBRUJRRUJEQFoNCis7IHB1YmxpYzogX19jZGVjbCBleGNlcHRpb246OmV4Y2VwdGlvbihjbGFzcyBleGNlcHRpb24gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wZXhjZXB0aW9uQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgZXhjZXB0aW9uOjpleGNlcHRpb24odm9pZCkgX19wdHI2NA0KKz8/MGV4Y2VwdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIGZpbGVidWY6OmZpbGVidWYoY2xhc3MgZmlsZWJ1ZiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBmaWxlYnVmQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgZmlsZWJ1Zjo6ZmlsZWJ1ZihpbnQpIF9fcHRyNjQNCis/PzBmaWxlYnVmQEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIGZpbGVidWY6OmZpbGVidWYoaW50LGNoYXIgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MGZpbGVidWZAQFFFQUFASFBFQURIQFoNCis7IHB1YmxpYzogX19jZGVjbCBmaWxlYnVmOjpmaWxlYnVmKHZvaWQpIF9fcHRyNjQNCis/PzBmaWxlYnVmQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgZnN0cmVhbTo6ZnN0cmVhbShjbGFzcyBmc3RyZWFtIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MGZzdHJlYW1AQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBmc3RyZWFtOjpmc3RyZWFtKGludCkgX19wdHI2NA0KKz8/MGZzdHJlYW1AQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgZnN0cmVhbTo6ZnN0cmVhbShpbnQsY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wZnN0cmVhbUBAUUVBQUBIUEVBREhAWg0KKzsgcHVibGljOiBfX2NkZWNsIGZzdHJlYW06OmZzdHJlYW0oY2hhciBjb25zdCAqIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz8/MGZzdHJlYW1AQFFFQUFAUEVCREhIQFoNCis7IHB1YmxpYzogX19jZGVjbCBmc3RyZWFtOjpmc3RyZWFtKHZvaWQpIF9fcHRyNjQNCis/PzBmc3RyZWFtQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgaWZzdHJlYW06Omlmc3RyZWFtKGNsYXNzIGlmc3RyZWFtIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MGlmc3RyZWFtQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgaWZzdHJlYW06Omlmc3RyZWFtKGludCkgX19wdHI2NA0KKz8/MGlmc3RyZWFtQEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIGlmc3RyZWFtOjppZnN0cmVhbShpbnQsY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8waWZzdHJlYW1AQFFFQUFASFBFQURIQFoNCis7IHB1YmxpYzogX19jZGVjbCBpZnN0cmVhbTo6aWZzdHJlYW0oY2hhciBjb25zdCAqIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz8/MGlmc3RyZWFtQEBRRUFBQFBFQkRISEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgaWZzdHJlYW06Omlmc3RyZWFtKHZvaWQpIF9fcHRyNjQNCis/PzBpZnN0cmVhbUBAUUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIGlvczo6aW9zKGNsYXNzIGlvcyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBpb3NAQElFQUFAQUVCVjBAQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBpb3M6Omlvcyh2b2lkKSBfX3B0cjY0DQorPz8waW9zQEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgaW9zOjppb3MoY2xhc3Mgc3RyZWFtYnVmICogX19wdHI2NCkgX19wdHI2NA0KKz8/MGlvc0BAUUVBQUBQRUFWc3RyZWFtYnVmQEBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIGlvc3RyZWFtOjppb3N0cmVhbShjbGFzcyBpb3N0cmVhbSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBpb3N0cmVhbUBASUVBQUBBRUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIGlvc3RyZWFtOjppb3N0cmVhbSh2b2lkKSBfX3B0cjY0DQorPz8waW9zdHJlYW1AQElFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBpb3N0cmVhbTo6aW9zdHJlYW0oY2xhc3Mgc3RyZWFtYnVmICogX19wdHI2NCkgX19wdHI2NA0KKz8/MGlvc3RyZWFtQEBRRUFBQFBFQVZzdHJlYW1idWZAQEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgaXN0cmVhbTo6aXN0cmVhbShjbGFzcyBpc3RyZWFtIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MGlzdHJlYW1AQElFQUFAQUVCVjBAQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBpc3RyZWFtOjppc3RyZWFtKHZvaWQpIF9fcHRyNjQNCis/PzBpc3RyZWFtQEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgaXN0cmVhbTo6aXN0cmVhbShjbGFzcyBzdHJlYW1idWYgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8waXN0cmVhbUBAUUVBQUBQRUFWc3RyZWFtYnVmQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIGlzdHJlYW1fd2l0aGFzc2lnbjo6aXN0cmVhbV93aXRoYXNzaWduKGNsYXNzIGlzdHJlYW1fd2l0aGFzc2lnbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBpc3RyZWFtX3dpdGhhc3NpZ25AQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBpc3RyZWFtX3dpdGhhc3NpZ246OmlzdHJlYW1fd2l0aGFzc2lnbihjbGFzcyBzdHJlYW1idWYgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8waXN0cmVhbV93aXRoYXNzaWduQEBRRUFBQFBFQVZzdHJlYW1idWZAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgaXN0cmVhbV93aXRoYXNzaWduOjppc3RyZWFtX3dpdGhhc3NpZ24odm9pZCkgX19wdHI2NA0KKz8/MGlzdHJlYW1fd2l0aGFzc2lnbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIGlzdHJzdHJlYW06OmlzdHJzdHJlYW0oY2xhc3MgaXN0cnN0cmVhbSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBpc3Ryc3RyZWFtQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgaXN0cnN0cmVhbTo6aXN0cnN0cmVhbShjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz8/MGlzdHJzdHJlYW1AQFFFQUFAUEVBREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgaXN0cnN0cmVhbTo6aXN0cnN0cmVhbShjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBpc3Ryc3RyZWFtQEBRRUFBQFBFQURIQFoNCis7IHB1YmxpYzogX19jZGVjbCBsb2dpY19lcnJvcjo6bG9naWNfZXJyb3IoY2hhciBjb25zdCAqIF9fcHRyNjQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wbG9naWNfZXJyb3JAQFFFQUFAQUVCUUVCREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgbG9naWNfZXJyb3I6OmxvZ2ljX2Vycm9yKGNsYXNzIGxvZ2ljX2Vycm9yIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MGxvZ2ljX2Vycm9yQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgb2ZzdHJlYW06Om9mc3RyZWFtKGNsYXNzIG9mc3RyZWFtIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MG9mc3RyZWFtQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgb2ZzdHJlYW06Om9mc3RyZWFtKGludCkgX19wdHI2NA0KKz8/MG9mc3RyZWFtQEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIG9mc3RyZWFtOjpvZnN0cmVhbShpbnQsY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wb2ZzdHJlYW1AQFFFQUFASFBFQURIQFoNCis7IHB1YmxpYzogX19jZGVjbCBvZnN0cmVhbTo6b2ZzdHJlYW0oY2hhciBjb25zdCAqIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz8/MG9mc3RyZWFtQEBRRUFBQFBFQkRISEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgb2ZzdHJlYW06Om9mc3RyZWFtKHZvaWQpIF9fcHRyNjQNCis/PzBvZnN0cmVhbUBAUUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIG9zdHJlYW06Om9zdHJlYW0oY2xhc3Mgb3N0cmVhbSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBvc3RyZWFtQEBJRUFBQEFFQlYwQEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgb3N0cmVhbTo6b3N0cmVhbSh2b2lkKSBfX3B0cjY0DQorPz8wb3N0cmVhbUBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIG9zdHJlYW06Om9zdHJlYW0oY2xhc3Mgc3RyZWFtYnVmICogX19wdHI2NCkgX19wdHI2NA0KKz8/MG9zdHJlYW1AQFFFQUFAUEVBVnN0cmVhbWJ1ZkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBvc3RyZWFtX3dpdGhhc3NpZ246Om9zdHJlYW1fd2l0aGFzc2lnbihjbGFzcyBvc3RyZWFtX3dpdGhhc3NpZ24gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wb3N0cmVhbV93aXRoYXNzaWduQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgb3N0cmVhbV93aXRoYXNzaWduOjpvc3RyZWFtX3dpdGhhc3NpZ24oY2xhc3Mgc3RyZWFtYnVmICogX19wdHI2NCkgX19wdHI2NA0KKz8/MG9zdHJlYW1fd2l0aGFzc2lnbkBAUUVBQUBQRUFWc3RyZWFtYnVmQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIG9zdHJlYW1fd2l0aGFzc2lnbjo6b3N0cmVhbV93aXRoYXNzaWduKHZvaWQpIF9fcHRyNjQNCis/PzBvc3RyZWFtX3dpdGhhc3NpZ25AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBvc3Ryc3RyZWFtOjpvc3Ryc3RyZWFtKGNsYXNzIG9zdHJzdHJlYW0gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wb3N0cnN0cmVhbUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIG9zdHJzdHJlYW06Om9zdHJzdHJlYW0oY2hhciAqIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz8/MG9zdHJzdHJlYW1AQFFFQUFAUEVBREhIQFoNCis7IHB1YmxpYzogX19jZGVjbCBvc3Ryc3RyZWFtOjpvc3Ryc3RyZWFtKHZvaWQpIF9fcHRyNjQNCis/PzBvc3Ryc3RyZWFtQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkaW9idWY6OnN0ZGlvYnVmKGNsYXNzIHN0ZGlvYnVmIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MHN0ZGlvYnVmQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkaW9idWY6OnN0ZGlvYnVmKHN0cnVjdCBfaW9idWYgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wc3RkaW9idWZAQFFFQUFAUEVBVV9pb2J1ZkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGRpb3N0cmVhbTo6c3RkaW9zdHJlYW0oY2xhc3Mgc3RkaW9zdHJlYW0gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wc3RkaW9zdHJlYW1AQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGRpb3N0cmVhbTo6c3RkaW9zdHJlYW0oc3RydWN0IF9pb2J1ZiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBzdGRpb3N0cmVhbUBAUUVBQUBQRUFVX2lvYnVmQEBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIHN0cmVhbWJ1Zjo6c3RyZWFtYnVmKGNoYXIgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MHN0cmVhbWJ1ZkBASUVBQUBQRUFESEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgc3RyZWFtYnVmOjpzdHJlYW1idWYodm9pZCkgX19wdHI2NA0KKz8/MHN0cmVhbWJ1ZkBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0cmVhbWJ1Zjo6c3RyZWFtYnVmKGNsYXNzIHN0cmVhbWJ1ZiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBzdHJlYW1idWZAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdHJzdHJlYW06OnN0cnN0cmVhbShjbGFzcyBzdHJzdHJlYW0gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wc3Ryc3RyZWFtQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3Ryc3RyZWFtOjpzdHJzdHJlYW0oY2hhciAqIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz8/MHN0cnN0cmVhbUBAUUVBQUBQRUFESEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0cnN0cmVhbTo6c3Ryc3RyZWFtKHZvaWQpIF9fcHRyNjQNCis/PzBzdHJzdHJlYW1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBzdHJzdHJlYW1idWY6OnN0cnN0cmVhbWJ1ZihjbGFzcyBzdHJzdHJlYW1idWYgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wc3Ryc3RyZWFtYnVmQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3Ryc3RyZWFtYnVmOjpzdHJzdHJlYW1idWYoaW50KSBfX3B0cjY0DQorPz8wc3Ryc3RyZWFtYnVmQEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0cnN0cmVhbWJ1Zjo6c3Ryc3RyZWFtYnVmKHZvaWQgKiBfX3B0cjY0IChfX2NkZWNsKikobG9uZyksdm9pZCAoX19jZGVjbCopKHZvaWQgKiBfX3B0cjY0KSkgX19wdHI2NA0KKz8/MHN0cnN0cmVhbWJ1ZkBAUUVBQUBQNkFQRUFYSkBaUDZBWFBFQVhAWkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3Ryc3RyZWFtYnVmOjpzdHJzdHJlYW1idWYoY2hhciAqIF9fcHRyNjQsaW50LGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wc3Ryc3RyZWFtYnVmQEBRRUFBQFBFQURIMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3Ryc3RyZWFtYnVmOjpzdHJzdHJlYW1idWYodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wc3Ryc3RyZWFtYnVmQEBRRUFBQFBFQUVIMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3Ryc3RyZWFtYnVmOjpzdHJzdHJlYW1idWYodm9pZCkgX19wdHI2NA0KKz8/MHN0cnN0cmVhbWJ1ZkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIElvc3RyZWFtX2luaXQ6On5Jb3N0cmVhbV9pbml0KHZvaWQpIF9fcHRyNjQNCis/PzFJb3N0cmVhbV9pbml0QEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBleGNlcHRpb246On5leGNlcHRpb24odm9pZCkgX19wdHI2NA0KKz8/MWV4Y2VwdGlvbkBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgZmlsZWJ1Zjo6fmZpbGVidWYodm9pZCkgX19wdHI2NA0KKz8/MWZpbGVidWZAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIGZzdHJlYW06On5mc3RyZWFtKHZvaWQpIF9fcHRyNjQNCis/PzFmc3RyZWFtQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBpZnN0cmVhbTo6fmlmc3RyZWFtKHZvaWQpIF9fcHRyNjQNCis/PzFpZnN0cmVhbUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgaW9zOjp+aW9zKHZvaWQpIF9fcHRyNjQNCis/PzFpb3NAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIGlvc3RyZWFtOjp+aW9zdHJlYW0odm9pZCkgX19wdHI2NA0KKz8/MWlvc3RyZWFtQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBpc3RyZWFtOjp+aXN0cmVhbSh2b2lkKSBfX3B0cjY0DQorPz8xaXN0cmVhbUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgaXN0cmVhbV93aXRoYXNzaWduOjp+aXN0cmVhbV93aXRoYXNzaWduKHZvaWQpIF9fcHRyNjQNCis/PzFpc3RyZWFtX3dpdGhhc3NpZ25AQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIGlzdHJzdHJlYW06On5pc3Ryc3RyZWFtKHZvaWQpIF9fcHRyNjQNCis/PzFpc3Ryc3RyZWFtQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBsb2dpY19lcnJvcjo6fmxvZ2ljX2Vycm9yKHZvaWQpIF9fcHRyNjQNCis/PzFsb2dpY19lcnJvckBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgb2ZzdHJlYW06On5vZnN0cmVhbSh2b2lkKSBfX3B0cjY0DQorPz8xb2ZzdHJlYW1AQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIG9zdHJlYW06On5vc3RyZWFtKHZvaWQpIF9fcHRyNjQNCis/PzFvc3RyZWFtQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBvc3RyZWFtX3dpdGhhc3NpZ246On5vc3RyZWFtX3dpdGhhc3NpZ24odm9pZCkgX19wdHI2NA0KKz8/MW9zdHJlYW1fd2l0aGFzc2lnbkBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgb3N0cnN0cmVhbTo6fm9zdHJzdHJlYW0odm9pZCkgX19wdHI2NA0KKz8/MW9zdHJzdHJlYW1AQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZGlvYnVmOjp+c3RkaW9idWYodm9pZCkgX19wdHI2NA0KKz8/MXN0ZGlvYnVmQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGRpb3N0cmVhbTo6fnN0ZGlvc3RyZWFtKHZvaWQpIF9fcHRyNjQNCis/PzFzdGRpb3N0cmVhbUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RyZWFtYnVmOjp+c3RyZWFtYnVmKHZvaWQpIF9fcHRyNjQNCis/PzFzdHJlYW1idWZAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0cnN0cmVhbTo6fnN0cnN0cmVhbSh2b2lkKSBfX3B0cjY0DQorPz8xc3Ryc3RyZWFtQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdHJzdHJlYW1idWY6On5zdHJzdHJlYW1idWYodm9pZCkgX19wdHI2NA0KKz8/MXN0cnN0cmVhbWJ1ZkBAVUVBQUBYWg0KKzsgcHVibGljOiBjbGFzcyBJb3N0cmVhbV9pbml0ICYgX19wdHI2NCBfX2NkZWNsIElvc3RyZWFtX2luaXQ6Om9wZXJhdG9yPShjbGFzcyBJb3N0cmVhbV9pbml0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NElvc3RyZWFtX2luaXRAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBleGNlcHRpb24gJiBfX3B0cjY0IF9fY2RlY2wgZXhjZXB0aW9uOjpvcGVyYXRvcj0oY2xhc3MgZXhjZXB0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NGV4Y2VwdGlvbkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIGZpbGVidWYgJiBfX3B0cjY0IF9fY2RlY2wgZmlsZWJ1Zjo6b3BlcmF0b3I9KGNsYXNzIGZpbGVidWYgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80ZmlsZWJ1ZkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIGZzdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgZnN0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIGZzdHJlYW0gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80ZnN0cmVhbUBAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIGlmc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIGlmc3RyZWFtOjpvcGVyYXRvcj0oY2xhc3MgaWZzdHJlYW0gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80aWZzdHJlYW1AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBpb3MgJiBfX3B0cjY0IF9fY2RlY2wgaW9zOjpvcGVyYXRvcj0oY2xhc3MgaW9zIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NGlvc0BASUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIGlvc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIGlvc3RyZWFtOjpvcGVyYXRvcj0oY2xhc3MgaW9zdHJlYW0gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80aW9zdHJlYW1AQElFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBpb3N0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBpb3N0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIHN0cmVhbWJ1ZiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRpb3N0cmVhbUBASUVBQUFFQVYwQFBFQVZzdHJlYW1idWZAQEBaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIGlzdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgaXN0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIGlzdHJlYW0gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80aXN0cmVhbUBASUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIGlzdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgaXN0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIHN0cmVhbWJ1ZiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRpc3RyZWFtQEBJRUFBQUVBVjBAUEVBVnN0cmVhbWJ1ZkBAQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbV93aXRoYXNzaWduICYgX19wdHI2NCBfX2NkZWNsIGlzdHJlYW1fd2l0aGFzc2lnbjo6b3BlcmF0b3I9KGNsYXNzIGlzdHJlYW1fd2l0aGFzc2lnbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRpc3RyZWFtX3dpdGhhc3NpZ25AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIGlzdHJlYW1fd2l0aGFzc2lnbjo6b3BlcmF0b3I9KGNsYXNzIGlzdHJlYW0gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80aXN0cmVhbV93aXRoYXNzaWduQEBRRUFBQUVBVmlzdHJlYW1AQEFFQlYxQEBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgaXN0cmVhbV93aXRoYXNzaWduOjpvcGVyYXRvcj0oY2xhc3Mgc3RyZWFtYnVmICogX19wdHI2NCkgX19wdHI2NA0KKz8/NGlzdHJlYW1fd2l0aGFzc2lnbkBAUUVBQUFFQVZpc3RyZWFtQEBQRUFWc3RyZWFtYnVmQEBAWg0KKzsgcHVibGljOiBjbGFzcyBpc3Ryc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIGlzdHJzdHJlYW06Om9wZXJhdG9yPShjbGFzcyBpc3Ryc3RyZWFtIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NGlzdHJzdHJlYW1AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBsb2dpY19lcnJvciAmIF9fcHRyNjQgX19jZGVjbCBsb2dpY19lcnJvcjo6b3BlcmF0b3I9KGNsYXNzIGxvZ2ljX2Vycm9yIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NGxvZ2ljX2Vycm9yQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3Mgb2ZzdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgb2ZzdHJlYW06Om9wZXJhdG9yPShjbGFzcyBvZnN0cmVhbSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRvZnN0cmVhbUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIG9zdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgb3N0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIG9zdHJlYW0gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80b3N0cmVhbUBASUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIG9zdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgb3N0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIHN0cmVhbWJ1ZiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRvc3RyZWFtQEBJRUFBQUVBVjBAUEVBVnN0cmVhbWJ1ZkBAQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbV93aXRoYXNzaWduICYgX19wdHI2NCBfX2NkZWNsIG9zdHJlYW1fd2l0aGFzc2lnbjo6b3BlcmF0b3I9KGNsYXNzIG9zdHJlYW1fd2l0aGFzc2lnbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRvc3RyZWFtX3dpdGhhc3NpZ25AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIG9zdHJlYW1fd2l0aGFzc2lnbjo6b3BlcmF0b3I9KGNsYXNzIG9zdHJlYW0gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80b3N0cmVhbV93aXRoYXNzaWduQEBRRUFBQUVBVm9zdHJlYW1AQEFFQlYxQEBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgb3N0cmVhbV93aXRoYXNzaWduOjpvcGVyYXRvcj0oY2xhc3Mgc3RyZWFtYnVmICogX19wdHI2NCkgX19wdHI2NA0KKz8/NG9zdHJlYW1fd2l0aGFzc2lnbkBAUUVBQUFFQVZvc3RyZWFtQEBQRUFWc3RyZWFtYnVmQEBAWg0KKzsgcHVibGljOiBjbGFzcyBvc3Ryc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIG9zdHJzdHJlYW06Om9wZXJhdG9yPShjbGFzcyBvc3Ryc3RyZWFtIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NG9zdHJzdHJlYW1AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGRpb2J1ZiAmIF9fcHRyNjQgX19jZGVjbCBzdGRpb2J1Zjo6b3BlcmF0b3I9KGNsYXNzIHN0ZGlvYnVmIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NHN0ZGlvYnVmQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkaW9zdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgc3RkaW9zdHJlYW06Om9wZXJhdG9yPShjbGFzcyBzdGRpb3N0cmVhbSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRzdGRpb3N0cmVhbUBAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0cmVhbWJ1ZiAmIF9fcHRyNjQgX19jZGVjbCBzdHJlYW1idWY6Om9wZXJhdG9yPShjbGFzcyBzdHJlYW1idWYgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80c3RyZWFtYnVmQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3Ryc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIHN0cnN0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIHN0cnN0cmVhbSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRzdHJzdHJlYW1AQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdHJzdHJlYW1idWYgJiBfX3B0cjY0IF9fY2RlY2wgc3Ryc3RyZWFtYnVmOjpvcGVyYXRvcj0oY2xhc3Mgc3Ryc3RyZWFtYnVmIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NHN0cnN0cmVhbWJ1ZkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgaXN0cmVhbTo6b3BlcmF0b3I+PihzaWduZWQgY2hhciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzVpc3RyZWFtQEBRRUFBQUVBVjBAQUVBQ0BaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgaXN0cmVhbTo6b3BlcmF0b3I+PihjaGFyICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NWlzdHJlYW1AQFFFQUFBRUFWMEBBRUFEQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBpc3RyZWFtOjpvcGVyYXRvcj4+KHVuc2lnbmVkIGNoYXIgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz81aXN0cmVhbUBAUUVBQUFFQVYwQEFFQUVAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIGlzdHJlYW06Om9wZXJhdG9yPj4oc2hvcnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz81aXN0cmVhbUBAUUVBQUFFQVYwQEFFQUZAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIGlzdHJlYW06Om9wZXJhdG9yPj4odW5zaWduZWQgc2hvcnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz81aXN0cmVhbUBAUUVBQUFFQVYwQEFFQUdAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIGlzdHJlYW06Om9wZXJhdG9yPj4oaW50ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NWlzdHJlYW1AQFFFQUFBRUFWMEBBRUFIQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBpc3RyZWFtOjpvcGVyYXRvcj4+KHVuc2lnbmVkIGludCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzVpc3RyZWFtQEBRRUFBQUVBVjBAQUVBSUBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgaXN0cmVhbTo6b3BlcmF0b3I+Pihsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NWlzdHJlYW1AQFFFQUFBRUFWMEBBRUFKQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBpc3RyZWFtOjpvcGVyYXRvcj4+KHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz81aXN0cmVhbUBAUUVBQUFFQVYwQEFFQUtAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIGlzdHJlYW06Om9wZXJhdG9yPj4oZmxvYXQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz81aXN0cmVhbUBAUUVBQUFFQVYwQEFFQU1AWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIGlzdHJlYW06Om9wZXJhdG9yPj4oZG91YmxlICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NWlzdHJlYW1AQFFFQUFBRUFWMEBBRUFOQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBpc3RyZWFtOjpvcGVyYXRvcj4+KGxvbmcgZG91YmxlICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NWlzdHJlYW1AQFFFQUFBRUFWMEBBRUFPQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBpc3RyZWFtOjpvcGVyYXRvcj4+KGNsYXNzIGlzdHJlYW0gJiBfX3B0cjY0IChfX2NkZWNsKikoY2xhc3MgaXN0cmVhbSAmIF9fcHRyNjQpKSBfX3B0cjY0DQorPz81aXN0cmVhbUBAUUVBQUFFQVYwQFA2QUFFQVYwQEFFQVYwQEBaQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBpc3RyZWFtOjpvcGVyYXRvcj4+KGNsYXNzIGlvcyAmIF9fcHRyNjQgKF9fY2RlY2wqKShjbGFzcyBpb3MgJiBfX3B0cjY0KSkgX19wdHI2NA0KKz8/NWlzdHJlYW1AQFFFQUFBRUFWMEBQNkFBRUFWaW9zQEBBRUFWMUBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgaXN0cmVhbTo6b3BlcmF0b3I+PihzaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzVpc3RyZWFtQEBRRUFBQUVBVjBAUEVBQ0BaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgaXN0cmVhbTo6b3BlcmF0b3I+PihjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz8/NWlzdHJlYW1AQFFFQUFBRUFWMEBQRUFEQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBpc3RyZWFtOjpvcGVyYXRvcj4+KHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz81aXN0cmVhbUBAUUVBQUFFQVYwQFBFQUVAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIGlzdHJlYW06Om9wZXJhdG9yPj4oY2xhc3Mgc3RyZWFtYnVmICogX19wdHI2NCkgX19wdHI2NA0KKz8/NWlzdHJlYW1AQFFFQUFBRUFWMEBQRUFWc3RyZWFtYnVmQEBAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIG9zdHJlYW06Om9wZXJhdG9yPDwoc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/PzZvc3RyZWFtQEBRRUFBQUVBVjBAQ0BaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgb3N0cmVhbTo6b3BlcmF0b3I8PChjaGFyKSBfX3B0cjY0DQorPz82b3N0cmVhbUBAUUVBQUFFQVYwQERAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIG9zdHJlYW06Om9wZXJhdG9yPDwodW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz8/Nm9zdHJlYW1AQFFFQUFBRUFWMEBFQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBvc3RyZWFtOjpvcGVyYXRvcjw8KHNob3J0KSBfX3B0cjY0DQorPz82b3N0cmVhbUBAUUVBQUFFQVYwQEZAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIG9zdHJlYW06Om9wZXJhdG9yPDwodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/PzZvc3RyZWFtQEBRRUFBQUVBVjBAR0BaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgb3N0cmVhbTo6b3BlcmF0b3I8PChpbnQpIF9fcHRyNjQNCis/PzZvc3RyZWFtQEBRRUFBQUVBVjBASEBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgb3N0cmVhbTo6b3BlcmF0b3I8PCh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzZvc3RyZWFtQEBRRUFBQUVBVjBASUBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgb3N0cmVhbTo6b3BlcmF0b3I8PChsb25nKSBfX3B0cjY0DQorPz82b3N0cmVhbUBAUUVBQUFFQVYwQEpAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIG9zdHJlYW06Om9wZXJhdG9yPDwodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/Nm9zdHJlYW1AQFFFQUFBRUFWMEBLQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBvc3RyZWFtOjpvcGVyYXRvcjw8KGZsb2F0KSBfX3B0cjY0DQorPz82b3N0cmVhbUBAUUVBQUFFQVYwQE1AWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIG9zdHJlYW06Om9wZXJhdG9yPDwoZG91YmxlKSBfX3B0cjY0DQorPz82b3N0cmVhbUBAUUVBQUFFQVYwQE5AWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIG9zdHJlYW06Om9wZXJhdG9yPDwobG9uZyBkb3VibGUpIF9fcHRyNjQNCis/PzZvc3RyZWFtQEBRRUFBQUVBVjBAT0BaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgb3N0cmVhbTo6b3BlcmF0b3I8PChjbGFzcyBvc3RyZWFtICYgX19wdHI2NCAoX19jZGVjbCopKGNsYXNzIG9zdHJlYW0gJiBfX3B0cjY0KSkgX19wdHI2NA0KKz8/Nm9zdHJlYW1AQFFFQUFBRUFWMEBQNkFBRUFWMEBBRUFWMEBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgb3N0cmVhbTo6b3BlcmF0b3I8PChjbGFzcyBpb3MgJiBfX3B0cjY0IChfX2NkZWNsKikoY2xhc3MgaW9zICYgX19wdHI2NCkpIF9fcHRyNjQNCis/PzZvc3RyZWFtQEBRRUFBQUVBVjBAUDZBQUVBVmlvc0BAQUVBVjFAQFpAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIG9zdHJlYW06Om9wZXJhdG9yPDwoY2xhc3Mgc3RyZWFtYnVmICogX19wdHI2NCkgX19wdHI2NA0KKz8/Nm9zdHJlYW1AQFFFQUFBRUFWMEBQRUFWc3RyZWFtYnVmQEBAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIG9zdHJlYW06Om9wZXJhdG9yPDwoc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz82b3N0cmVhbUBAUUVBQUFFQVYwQFBFQkNAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIG9zdHJlYW06Om9wZXJhdG9yPDwoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzZvc3RyZWFtQEBRRUFBQUVBVjBAUEVCREBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgb3N0cmVhbTo6b3BlcmF0b3I8PCh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/Nm9zdHJlYW1AQFFFQUFBRUFWMEBQRUJFQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBvc3RyZWFtOjpvcGVyYXRvcjw8KHZvaWQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz82b3N0cmVhbUBAUUVBQUFFQVYwQFBFQlhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBpb3M6Om9wZXJhdG9yISh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz83aW9zQEBRRUJBSFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgaW9zOjpvcGVyYXRvciB2b2lkICogX19wdHI2NCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CaW9zQEBRRUJBUEVBWFhaDQorOyBjb25zdCAgZXhjZXB0aW9uOjpgdmZ0YWJsZScNCis/P183ZXhjZXB0aW9uQEA2QkANCis7IGNvbnN0ICBmaWxlYnVmOjpgdmZ0YWJsZScNCis/P183ZmlsZWJ1ZkBANkJADQorOyBjb25zdCAgZnN0cmVhbTo6YHZmdGFibGUnDQorPz9fN2ZzdHJlYW1AQDZCQA0KKzsgY29uc3QgIGlmc3RyZWFtOjpgdmZ0YWJsZScNCis/P183aWZzdHJlYW1AQDZCQA0KKzsgY29uc3QgIGlvczo6YHZmdGFibGUnDQorPz9fN2lvc0BANkJADQorOyBjb25zdCAgaW9zdHJlYW06OmB2ZnRhYmxlJw0KKz8/Xzdpb3N0cmVhbUBANkJADQorOyBjb25zdCAgaXN0cmVhbTo6YHZmdGFibGUnDQorPz9fN2lzdHJlYW1AQDZCQA0KKzsgY29uc3QgIGlzdHJlYW1fd2l0aGFzc2lnbjo6YHZmdGFibGUnDQorPz9fN2lzdHJlYW1fd2l0aGFzc2lnbkBANkJADQorOyBjb25zdCAgaXN0cnN0cmVhbTo6YHZmdGFibGUnDQorPz9fN2lzdHJzdHJlYW1AQDZCQA0KKzsgY29uc3QgIGxvZ2ljX2Vycm9yOjpgdmZ0YWJsZScNCis/P183bG9naWNfZXJyb3JAQDZCQA0KKzsgY29uc3QgIG9mc3RyZWFtOjpgdmZ0YWJsZScNCis/P183b2ZzdHJlYW1AQDZCQA0KKzsgY29uc3QgIG9zdHJlYW06OmB2ZnRhYmxlJw0KKz8/Xzdvc3RyZWFtQEA2QkANCis7IGNvbnN0ICBvc3RyZWFtX3dpdGhhc3NpZ246OmB2ZnRhYmxlJw0KKz8/Xzdvc3RyZWFtX3dpdGhhc3NpZ25AQDZCQA0KKzsgY29uc3QgIG9zdHJzdHJlYW06OmB2ZnRhYmxlJw0KKz8/Xzdvc3Ryc3RyZWFtQEA2QkANCis7IGNvbnN0ICBzdGRpb2J1Zjo6YHZmdGFibGUnDQorPz9fN3N0ZGlvYnVmQEA2QkANCis7IGNvbnN0ICBzdGRpb3N0cmVhbTo6YHZmdGFibGUnDQorPz9fN3N0ZGlvc3RyZWFtQEA2QkANCis7IGNvbnN0ICBzdHJlYW1idWY6OmB2ZnRhYmxlJw0KKz8/XzdzdHJlYW1idWZAQDZCQA0KKzsgY29uc3QgIHN0cnN0cmVhbTo6YHZmdGFibGUnDQorPz9fN3N0cnN0cmVhbUBANkJADQorOyBjb25zdCAgc3Ryc3RyZWFtYnVmOjpgdmZ0YWJsZScNCis/P183c3Ryc3RyZWFtYnVmQEA2QkANCis7IGNvbnN0ICBmc3RyZWFtOjpgdmJ0YWJsZSd7Zm9yIGBpc3RyZWFtJ30NCis/P184ZnN0cmVhbUBAN0Jpc3RyZWFtQEBAIERBVEENCis7IGNvbnN0ICBmc3RyZWFtOjpgdmJ0YWJsZSd7Zm9yIGBvc3RyZWFtJ30NCis/P184ZnN0cmVhbUBAN0Jvc3RyZWFtQEBAIERBVEENCis7IGNvbnN0ICBpZnN0cmVhbTo6YHZidGFibGUnDQorPz9fOGlmc3RyZWFtQEA3QkAgREFUQQ0KKzsgY29uc3QgIGlvc3RyZWFtOjpgdmJ0YWJsZSd7Zm9yIGBpc3RyZWFtJ30NCis/P184aW9zdHJlYW1AQDdCaXN0cmVhbUBAQCBEQVRBDQorOyBjb25zdCAgaW9zdHJlYW06OmB2YnRhYmxlJ3tmb3IgYG9zdHJlYW0nfQ0KKz8/Xzhpb3N0cmVhbUBAN0Jvc3RyZWFtQEBAIERBVEENCis7IGNvbnN0ICBpc3RyZWFtOjpgdmJ0YWJsZScNCis/P184aXN0cmVhbUBAN0JAIERBVEENCis7IGNvbnN0ICBpc3RyZWFtX3dpdGhhc3NpZ246OmB2YnRhYmxlJw0KKz8/Xzhpc3RyZWFtX3dpdGhhc3NpZ25AQDdCQCBEQVRBDQorOyBjb25zdCAgaXN0cnN0cmVhbTo6YHZidGFibGUnDQorPz9fOGlzdHJzdHJlYW1AQDdCQCBEQVRBDQorOyBjb25zdCAgb2ZzdHJlYW06OmB2YnRhYmxlJw0KKz8/XzhvZnN0cmVhbUBAN0JAIERBVEENCis7IGNvbnN0ICBvc3RyZWFtOjpgdmJ0YWJsZScNCis/P184b3N0cmVhbUBAN0JAIERBVEENCis7IGNvbnN0ICBvc3RyZWFtX3dpdGhhc3NpZ246OmB2YnRhYmxlJw0KKz8/Xzhvc3RyZWFtX3dpdGhhc3NpZ25AQDdCQCBEQVRBDQorOyBjb25zdCAgb3N0cnN0cmVhbTo6YHZidGFibGUnDQorPz9fOG9zdHJzdHJlYW1AQDdCQCBEQVRBDQorOyBjb25zdCAgc3RkaW9zdHJlYW06OmB2YnRhYmxlJ3tmb3IgYGlzdHJlYW0nfQ0KKz8/XzhzdGRpb3N0cmVhbUBAN0Jpc3RyZWFtQEBAIERBVEENCis7IGNvbnN0ICBzdGRpb3N0cmVhbTo6YHZidGFibGUne2ZvciBgb3N0cmVhbSd9DQorPz9fOHN0ZGlvc3RyZWFtQEA3Qm9zdHJlYW1AQEAgREFUQQ0KKzsgY29uc3QgIHN0cnN0cmVhbTo6YHZidGFibGUne2ZvciBgaXN0cmVhbSd9DQorPz9fOHN0cnN0cmVhbUBAN0Jpc3RyZWFtQEBAIERBVEENCis7IGNvbnN0ICBzdHJzdHJlYW06OmB2YnRhYmxlJ3tmb3IgYG9zdHJlYW0nfQ0KKz8/XzhzdHJzdHJlYW1AQDdCb3N0cmVhbUBAQCBEQVRBDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBmc3RyZWFtOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkgX19wdHI2NA0KKz8/X0Rmc3RyZWFtQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBpZnN0cmVhbTo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpIF9fcHRyNjQNCis/P19EaWZzdHJlYW1AQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGlvc3RyZWFtOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkgX19wdHI2NA0KKz8/X0Rpb3N0cmVhbUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgaXN0cmVhbTo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpIF9fcHRyNjQNCis/P19EaXN0cmVhbUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgaXN0cmVhbV93aXRoYXNzaWduOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkgX19wdHI2NA0KKz8/X0Rpc3RyZWFtX3dpdGhhc3NpZ25AQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGlzdHJzdHJlYW06OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKSBfX3B0cjY0DQorPz9fRGlzdHJzdHJlYW1AQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIG9mc3RyZWFtOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkgX19wdHI2NA0KKz8/X0RvZnN0cmVhbUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgb3N0cmVhbTo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpIF9fcHRyNjQNCis/P19Eb3N0cmVhbUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgb3N0cmVhbV93aXRoYXNzaWduOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkgX19wdHI2NA0KKz8/X0Rvc3RyZWFtX3dpdGhhc3NpZ25AQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIG9zdHJzdHJlYW06OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKSBfX3B0cjY0DQorPz9fRG9zdHJzdHJlYW1AQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZGlvc3RyZWFtOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkgX19wdHI2NA0KKz8/X0RzdGRpb3N0cmVhbUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3Ryc3RyZWFtOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkgX19wdHI2NA0KKz8/X0RzdHJzdHJlYW1AQFFFQUFYWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgY29uc3QgIGlvczo6YWRqdXN0ZmllbGQNCis/YWRqdXN0ZmllbGRAaW9zQEAySkINCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgc3RyZWFtYnVmOjphbGxvY2F0ZSh2b2lkKSBfX3B0cjY0DQorP2FsbG9jYXRlQHN0cmVhbWJ1ZkBASUVBQUhYWg0KKzsgcHVibGljOiBjbGFzcyBmaWxlYnVmICogX19wdHI2NCBfX2NkZWNsIGZpbGVidWY6OmF0dGFjaChpbnQpIF9fcHRyNjQNCis/YXR0YWNoQGZpbGVidWZAQFFFQUFQRUFWMUBIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGZzdHJlYW06OmF0dGFjaChpbnQpIF9fcHRyNjQNCis/YXR0YWNoQGZzdHJlYW1AQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBpZnN0cmVhbTo6YXR0YWNoKGludCkgX19wdHI2NA0KKz9hdHRhY2hAaWZzdHJlYW1AQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBvZnN0cmVhbTo6YXR0YWNoKGludCkgX19wdHI2NA0KKz9hdHRhY2hAb2ZzdHJlYW1AQFFFQUFYSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIGlvczo6YmFkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/YmFkQGlvc0BAUUVCQUhYWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIHN0cmVhbWJ1Zjo6YmFzZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2Jhc2VAc3RyZWFtYnVmQEBJRUJBUEVBRFhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGNvbnN0ICBpb3M6OmJhc2VmaWVsZA0KKz9iYXNlZmllbGRAaW9zQEAySkINCis7IHB1YmxpYzogc3RhdGljIGludCBjb25zdCAgZmlsZWJ1Zjo6YmluYXJ5DQorP2JpbmFyeUBmaWxlYnVmQEAySEINCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBpb3M6OmJpdGFsbG9jKHZvaWQpDQorP2JpdGFsbG9jQGlvc0BAU0FKWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgc3RyZWFtYnVmOjpibGVuKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/YmxlbkBzdHJlYW1idWZAQElFQkFIWFoNCis7IGNsYXNzIG9zdHJlYW1fd2l0aGFzc2lnbiAgY2Vycg0KKz9jZXJyQEAzVm9zdHJlYW1fd2l0aGFzc2lnbkBAQSBEQVRBDQorOyBjbGFzcyBpc3RyZWFtX3dpdGhhc3NpZ24gIGNpbg0KKz9jaW5AQDNWaXN0cmVhbV93aXRoYXNzaWduQEBBIERBVEENCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGlvczo6Y2xlYXIoaW50KSBfX3B0cjY0DQorP2NsZWFyQGlvc0BAUUVBQVhIQFoNCis7IGNsYXNzIG9zdHJlYW1fd2l0aGFzc2lnbiAgY2xvZw0KKz9jbG9nQEAzVm9zdHJlYW1fd2l0aGFzc2lnbkBAQSBEQVRBDQorOyBwdWJsaWM6IGNsYXNzIGZpbGVidWYgKiBfX3B0cjY0IF9fY2RlY2wgZmlsZWJ1Zjo6Y2xvc2Uodm9pZCkgX19wdHI2NA0KKz9jbG9zZUBmaWxlYnVmQEBRRUFBUEVBVjFAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGZzdHJlYW06OmNsb3NlKHZvaWQpIF9fcHRyNjQNCis/Y2xvc2VAZnN0cmVhbUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgaWZzdHJlYW06OmNsb3NlKHZvaWQpIF9fcHRyNjQNCis/Y2xvc2VAaWZzdHJlYW1AQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIG9mc3RyZWFtOjpjbG9zZSh2b2lkKSBfX3B0cjY0DQorP2Nsb3NlQG9mc3RyZWFtQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBpb3M6OmNscmxvY2sodm9pZCkgX19wdHI2NA0KKz9jbHJsb2NrQGlvc0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RyZWFtYnVmOjpjbHJsb2NrKHZvaWQpIF9fcHRyNjQNCis/Y2xybG9ja0BzdHJlYW1idWZAQFFFQUFYWFoNCis7IGNsYXNzIG9zdHJlYW1fd2l0aGFzc2lnbiAgY291dA0KKz9jb3V0QEAzVm9zdHJlYW1fd2l0aGFzc2lnbkBAQSBEQVRBDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdHJlYW1idWY6OmRicCh2b2lkKSBfX3B0cjY0DQorP2RicEBzdHJlYW1idWZAQFFFQUFYWFoNCis7IGNsYXNzIGlvcyAmIF9fcHRyNjQgX19jZGVjbCBkZWMoY2xhc3MgaW9zICYgX19wdHI2NCkNCis/ZGVjQEBZQUFFQVZpb3NAQEFFQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBpb3M6OmRlbGJ1ZihpbnQpIF9fcHRyNjQNCis/ZGVsYnVmQGlvc0BAUUVBQVhIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgaW9zOjpkZWxidWYodm9pZCljb25zdCAgX19wdHI2NA0KKz9kZWxidWZAaW9zQEBRRUJBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RyZWFtYnVmOjpkb2FsbG9jYXRlKHZvaWQpIF9fcHRyNjQNCis/ZG9hbGxvY2F0ZUBzdHJlYW1idWZAQE1FQUFIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBzdHJzdHJlYW1idWY6OmRvYWxsb2NhdGUodm9pZCkgX19wdHI2NA0KKz9kb2FsbG9jYXRlQHN0cnN0cmVhbWJ1ZkBATUVBQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgaXN0cmVhbTo6ZWF0d2hpdGUodm9pZCkgX19wdHI2NA0KKz9lYXR3aGl0ZUBpc3RyZWFtQEBRRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgc3RyZWFtYnVmOjplYmFjayh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2ViYWNrQHN0cmVhbWJ1ZkBASUVCQVBFQURYWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIHN0cmVhbWJ1Zjo6ZWJ1Zih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2VidWZAc3RyZWFtYnVmQEBJRUJBUEVBRFhaDQorOyBwcm90ZWN0ZWQ6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgc3RyZWFtYnVmOjplZ3B0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2VncHRyQHN0cmVhbWJ1ZkBASUVCQVBFQURYWg0KKzsgY2xhc3Mgb3N0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBlbmRsKGNsYXNzIG9zdHJlYW0gJiBfX3B0cjY0KQ0KKz9lbmRsQEBZQUFFQVZvc3RyZWFtQEBBRUFWMUBAWg0KKzsgY2xhc3Mgb3N0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBlbmRzKGNsYXNzIG9zdHJlYW0gJiBfX3B0cjY0KQ0KKz9lbmRzQEBZQUFFQVZvc3RyZWFtQEBBRUFWMUBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBpb3M6OmVvZih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2VvZkBpb3NAQFFFQkFIWFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBzdHJlYW1idWY6OmVwcHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZXBwdHJAc3RyZWFtYnVmQEBJRUJBUEVBRFhaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50ICBpb3M6OmZMb2NrY0luaXQNCis/ZkxvY2tjSW5pdEBpb3NAQDBIQSBEQVRBDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIGlvczo6ZmFpbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2ZhaWxAaW9zQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIGZpbGVidWY6OmZkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZmRAZmlsZWJ1ZkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBmc3RyZWFtOjpmZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2ZkQGZzdHJlYW1AQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgaWZzdHJlYW06OmZkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZmRAaWZzdHJlYW1AQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgb2ZzdHJlYW06OmZkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZmRAb2ZzdHJlYW1AQFFFQkFIWFoNCis7IHB1YmxpYzogY2hhciBfX2NkZWNsIGlvczo6ZmlsbChjaGFyKSBfX3B0cjY0DQorP2ZpbGxAaW9zQEBRRUFBRERAWg0KKzsgcHVibGljOiBjaGFyIF9fY2RlY2wgaW9zOjpmaWxsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZmlsbEBpb3NAQFFFQkFEWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIGlvczo6ZmxhZ3MobG9uZykgX19wdHI2NA0KKz9mbGFnc0Bpb3NAQFFFQUFKSkBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBpb3M6OmZsYWdzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZmxhZ3NAaW9zQEBRRUJBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGNvbnN0ICBpb3M6OmZsb2F0ZmllbGQNCis/ZmxvYXRmaWVsZEBpb3NAQDJKQg0KKzsgY2xhc3Mgb3N0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBmbHVzaChjbGFzcyBvc3RyZWFtICYgX19wdHI2NCkNCis/Zmx1c2hAQFlBQUVBVm9zdHJlYW1AQEFFQVYxQEBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgb3N0cmVhbTo6Zmx1c2godm9pZCkgX19wdHI2NA0KKz9mbHVzaEBvc3RyZWFtQEBRRUFBQUVBVjFAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0cnN0cmVhbWJ1Zjo6ZnJlZXplKGludCkgX19wdHI2NA0KKz9mcmVlemVAc3Ryc3RyZWFtYnVmQEBRRUFBWEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RyZWFtYnVmOjpnYnVtcChpbnQpIF9fcHRyNjQNCis/Z2J1bXBAc3RyZWFtYnVmQEBJRUFBWEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBpc3RyZWFtOjpnY291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9nY291bnRAaXN0cmVhbUBAUUVCQUhYWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBpc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIGlzdHJlYW06OmdldChjaGFyICogX19wdHI2NCxpbnQsaW50KSBfX3B0cjY0DQorP2dldEBpc3RyZWFtQEBJRUFBQUVBVjFAUEVBREhIQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBpc3RyZWFtOjpnZXQoc2lnbmVkIGNoYXIgJiBfX3B0cjY0KSBfX3B0cjY0DQorP2dldEBpc3RyZWFtQEBRRUFBQUVBVjFAQUVBQ0BaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgaXN0cmVhbTo6Z2V0KGNoYXIgJiBfX3B0cjY0KSBfX3B0cjY0DQorP2dldEBpc3RyZWFtQEBRRUFBQUVBVjFAQUVBREBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgaXN0cmVhbTo6Z2V0KHVuc2lnbmVkIGNoYXIgJiBfX3B0cjY0KSBfX3B0cjY0DQorP2dldEBpc3RyZWFtQEBRRUFBQUVBVjFAQUVBRUBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgaXN0cmVhbTo6Z2V0KGNsYXNzIHN0cmVhbWJ1ZiAmIF9fcHRyNjQsY2hhcikgX19wdHI2NA0KKz9nZXRAaXN0cmVhbUBAUUVBQUFFQVYxQEFFQVZzdHJlYW1idWZAQERAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIGlzdHJlYW06OmdldChzaWduZWQgY2hhciAqIF9fcHRyNjQsaW50LGNoYXIpIF9fcHRyNjQNCis/Z2V0QGlzdHJlYW1AQFFFQUFBRUFWMUBQRUFDSERAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIGlzdHJlYW06OmdldChjaGFyICogX19wdHI2NCxpbnQsY2hhcikgX19wdHI2NA0KKz9nZXRAaXN0cmVhbUBAUUVBQUFFQVYxQFBFQURIREBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgaXN0cmVhbTo6Z2V0KHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGludCxjaGFyKSBfX3B0cjY0DQorP2dldEBpc3RyZWFtQEBRRUFBQUVBVjFAUEVBRUhEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgaXN0cmVhbTo6Z2V0KHZvaWQpIF9fcHRyNjQNCis/Z2V0QGlzdHJlYW1AQFFFQUFIWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIGlzdHJlYW06OmdldGRvdWJsZShjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/Z2V0ZG91YmxlQGlzdHJlYW1AQEFFQUFIUEVBREhAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgaXN0cmVhbTo6Z2V0aW50KGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP2dldGludEBpc3RyZWFtQEBBRUFBSFBFQURAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIGlzdHJlYW06OmdldGxpbmUoc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGludCxjaGFyKSBfX3B0cjY0DQorP2dldGxpbmVAaXN0cmVhbUBAUUVBQUFFQVYxQFBFQUNIREBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgaXN0cmVhbTo6Z2V0bGluZShjaGFyICogX19wdHI2NCxpbnQsY2hhcikgX19wdHI2NA0KKz9nZXRsaW5lQGlzdHJlYW1AQFFFQUFBRUFWMUBQRUFESERAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIGlzdHJlYW06OmdldGxpbmUodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsaW50LGNoYXIpIF9fcHRyNjQNCis/Z2V0bGluZUBpc3RyZWFtQEBRRUFBQUVBVjFAUEVBRUhEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgaW9zOjpnb29kKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Z29vZEBpb3NAQFFFQkFIWFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBzdHJlYW1idWY6OmdwdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9ncHRyQHN0cmVhbWJ1ZkBASUVCQVBFQURYWg0KKzsgY2xhc3MgaW9zICYgX19wdHI2NCBfX2NkZWNsIGhleChjbGFzcyBpb3MgJiBfX3B0cjY0KQ0KKz9oZXhAQFlBQUVBVmlvc0BAQUVBVjFAQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBpc3RyZWFtOjppZ25vcmUoaW50LGludCkgX19wdHI2NA0KKz9pZ25vcmVAaXN0cmVhbUBAUUVBQUFFQVYxQEhIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RyZWFtYnVmOjppbl9hdmFpbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2luX2F2YWlsQHN0cmVhbWJ1ZkBAUUVCQUhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgaW9zOjppbml0KGNsYXNzIHN0cmVhbWJ1ZiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/aW5pdEBpb3NAQElFQUFYUEVBVnN0cmVhbWJ1ZkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgaXN0cmVhbTo6aXBmeChpbnQpIF9fcHRyNjQNCis/aXBmeEBpc3RyZWFtQEBRRUFBSEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBmaWxlYnVmOjppc19vcGVuKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/aXNfb3BlbkBmaWxlYnVmQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIGZzdHJlYW06OmlzX29wZW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9pc19vcGVuQGZzdHJlYW1AQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgaWZzdHJlYW06OmlzX29wZW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9pc19vcGVuQGlmc3RyZWFtQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIG9mc3RyZWFtOjppc19vcGVuKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/aXNfb3BlbkBvZnN0cmVhbUBAUUVCQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgaXN0cmVhbTo6aXNmeCh2b2lkKSBfX3B0cjY0DQorP2lzZnhAaXN0cmVhbUBAUUVBQVhYWg0KKzsgcHVibGljOiBsb25nICYgX19wdHI2NCBfX2NkZWNsIGlvczo6aXdvcmQoaW50KWNvbnN0ICBfX3B0cjY0DQorP2l3b3JkQGlvc0BAUUVCQUFFQUpIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGlvczo6bG9jayh2b2lkKSBfX3B0cjY0DQorP2xvY2tAaW9zQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdHJlYW1idWY6OmxvY2sodm9pZCkgX19wdHI2NA0KKz9sb2NrQHN0cmVhbWJ1ZkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgaW9zOjpsb2NrYnVmKHZvaWQpIF9fcHRyNjQNCis/bG9ja2J1ZkBpb3NAQFFFQUFYWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHZvaWQgX19jZGVjbCBpb3M6OmxvY2tjKHZvaWQpDQorP2xvY2tjQGlvc0BAS0FYWFoNCis7IHByb3RlY3RlZDogc3RydWN0IF9DUlRfQ1JJVElDQUxfU0VDVElPTiAqIF9fcHRyNjQgX19jZGVjbCBpb3M6OmxvY2twdHIodm9pZCkgX19wdHI2NA0KKz9sb2NrcHRyQGlvc0BASUVBQVBFQVVfQ1JUX0NSSVRJQ0FMX1NFQ1RJT05AQFhaDQorOyBwcm90ZWN0ZWQ6IHN0cnVjdCBfQ1JUX0NSSVRJQ0FMX1NFQ1RJT04gKiBfX3B0cjY0IF9fY2RlY2wgc3RyZWFtYnVmOjpsb2NrcHRyKHZvaWQpIF9fcHRyNjQNCis/bG9ja3B0ckBzdHJlYW1idWZAQElFQUFQRUFVX0NSVF9DUklUSUNBTF9TRUNUSU9OQEBYWg0KKzsgY2xhc3MgaW9zICYgX19wdHI2NCBfX2NkZWNsIG9jdChjbGFzcyBpb3MgJiBfX3B0cjY0KQ0KKz9vY3RAQFlBQUVBVmlvc0BAQUVBVjFAQFoNCis7IHB1YmxpYzogY2xhc3MgZmlsZWJ1ZiAqIF9fcHRyNjQgX19jZGVjbCBmaWxlYnVmOjpvcGVuKGNoYXIgY29uc3QgKiBfX3B0cjY0LGludCxpbnQpIF9fcHRyNjQNCis/b3BlbkBmaWxlYnVmQEBRRUFBUEVBVjFAUEVCREhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGZzdHJlYW06Om9wZW4oY2hhciBjb25zdCAqIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz9vcGVuQGZzdHJlYW1AQFFFQUFYUEVCREhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGlmc3RyZWFtOjpvcGVuKGNoYXIgY29uc3QgKiBfX3B0cjY0LGludCxpbnQpIF9fcHRyNjQNCis/b3BlbkBpZnN0cmVhbUBAUUVBQVhQRUJESEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgb2ZzdHJlYW06Om9wZW4oY2hhciBjb25zdCAqIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz9vcGVuQG9mc3RyZWFtQEBRRUFBWFBFQkRISEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgY29uc3QgIGZpbGVidWY6Om9wZW5wcm90DQorP29wZW5wcm90QGZpbGVidWZAQDJIQg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBvc3RyZWFtOjpvcGZ4KHZvaWQpIF9fcHRyNjQNCis/b3BmeEBvc3RyZWFtQEBRRUFBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBvc3RyZWFtOjpvc2Z4KHZvaWQpIF9fcHRyNjQNCis/b3NmeEBvc3RyZWFtQEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0cmVhbWJ1Zjo6b3V0X3dhaXRpbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9vdXRfd2FpdGluZ0BzdHJlYW1idWZAQFFFQkFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBmaWxlYnVmOjpvdmVyZmxvdyhpbnQpIF9fcHRyNjQNCis/b3ZlcmZsb3dAZmlsZWJ1ZkBAVUVBQUhIQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBzdGRpb2J1Zjo6b3ZlcmZsb3coaW50KSBfX3B0cjY0DQorP292ZXJmbG93QHN0ZGlvYnVmQEBVRUFBSEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIHN0cnN0cmVhbWJ1Zjo6b3ZlcmZsb3coaW50KSBfX3B0cjY0DQorP292ZXJmbG93QHN0cnN0cmVhbWJ1ZkBAVUVBQUhIQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBzdGRpb2J1Zjo6cGJhY2tmYWlsKGludCkgX19wdHI2NA0KKz9wYmFja2ZhaWxAc3RkaW9idWZAQFVFQUFISEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RyZWFtYnVmOjpwYmFja2ZhaWwoaW50KSBfX3B0cjY0DQorP3BiYWNrZmFpbEBzdHJlYW1idWZAQFVFQUFISEBaDQorOyBwcm90ZWN0ZWQ6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgc3RyZWFtYnVmOjpwYmFzZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3BiYXNlQHN0cmVhbWJ1ZkBASUVCQVBFQURYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RyZWFtYnVmOjpwYnVtcChpbnQpIF9fcHRyNjQNCis/cGJ1bXBAc3RyZWFtYnVmQEBJRUFBWEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBvc3Ryc3RyZWFtOjpwY291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9wY291bnRAb3N0cnN0cmVhbUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBzdHJzdHJlYW06OnBjb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3Bjb3VudEBzdHJzdHJlYW1AQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgaXN0cmVhbTo6cGVlayh2b2lkKSBfX3B0cjY0DQorP3BlZWtAaXN0cmVhbUBAUUVBQUhYWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIHN0cmVhbWJ1Zjo6cHB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3BwdHJAc3RyZWFtYnVmQEBJRUJBUEVBRFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIGlvczo6cHJlY2lzaW9uKGludCkgX19wdHI2NA0KKz9wcmVjaXNpb25AaW9zQEBRRUFBSEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBpb3M6OnByZWNpc2lvbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3ByZWNpc2lvbkBpb3NAQFFFQkFIWFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBvc3RyZWFtOjpwdXQoc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/cHV0QG9zdHJlYW1AQFFFQUFBRUFWMUBDQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBvc3RyZWFtOjpwdXQoY2hhcikgX19wdHI2NA0KKz9wdXRAb3N0cmVhbUBAUUVBQUFFQVYxQERAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIG9zdHJlYW06OnB1dCh1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP3B1dEBvc3RyZWFtQEBRRUFBQUVBVjFARUBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgaXN0cmVhbTo6cHV0YmFjayhjaGFyKSBfX3B0cjY0DQorP3B1dGJhY2tAaXN0cmVhbUBAUUVBQUFFQVYxQERAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCAmIF9fcHRyNjQgX19jZGVjbCBpb3M6OnB3b3JkKGludCljb25zdCAgX19wdHI2NA0KKz9wd29yZEBpb3NAQFFFQkFBRUFQRUFYSEBaDQorOyBwdWJsaWM6IGNsYXNzIGZpbGVidWYgKiBfX3B0cjY0IF9fY2RlY2wgZnN0cmVhbTo6cmRidWYodm9pZCljb25zdCAgX19wdHI2NA0KKz9yZGJ1ZkBmc3RyZWFtQEBRRUJBUEVBVmZpbGVidWZAQFhaDQorOyBwdWJsaWM6IGNsYXNzIGZpbGVidWYgKiBfX3B0cjY0IF9fY2RlY2wgaWZzdHJlYW06OnJkYnVmKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmRidWZAaWZzdHJlYW1AQFFFQkFQRUFWZmlsZWJ1ZkBAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RyZWFtYnVmICogX19wdHI2NCBfX2NkZWNsIGlvczo6cmRidWYodm9pZCljb25zdCAgX19wdHI2NA0KKz9yZGJ1ZkBpb3NAQFFFQkFQRUFWc3RyZWFtYnVmQEBYWg0KKzsgcHVibGljOiBjbGFzcyBzdHJzdHJlYW1idWYgKiBfX3B0cjY0IF9fY2RlY2wgaXN0cnN0cmVhbTo6cmRidWYodm9pZCljb25zdCAgX19wdHI2NA0KKz9yZGJ1ZkBpc3Ryc3RyZWFtQEBRRUJBUEVBVnN0cnN0cmVhbWJ1ZkBAWFoNCis7IHB1YmxpYzogY2xhc3MgZmlsZWJ1ZiAqIF9fcHRyNjQgX19jZGVjbCBvZnN0cmVhbTo6cmRidWYodm9pZCljb25zdCAgX19wdHI2NA0KKz9yZGJ1ZkBvZnN0cmVhbUBAUUVCQVBFQVZmaWxlYnVmQEBYWg0KKzsgcHVibGljOiBjbGFzcyBzdHJzdHJlYW1idWYgKiBfX3B0cjY0IF9fY2RlY2wgb3N0cnN0cmVhbTo6cmRidWYodm9pZCljb25zdCAgX19wdHI2NA0KKz9yZGJ1ZkBvc3Ryc3RyZWFtQEBRRUJBUEVBVnN0cnN0cmVhbWJ1ZkBAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkaW9idWYgKiBfX3B0cjY0IF9fY2RlY2wgc3RkaW9zdHJlYW06OnJkYnVmKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmRidWZAc3RkaW9zdHJlYW1AQFFFQkFQRUFWc3RkaW9idWZAQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0cnN0cmVhbWJ1ZiAqIF9fcHRyNjQgX19jZGVjbCBzdHJzdHJlYW06OnJkYnVmKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmRidWZAc3Ryc3RyZWFtQEBRRUJBUEVBVnN0cnN0cmVhbWJ1ZkBAWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgaW9zOjpyZHN0YXRlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmRzdGF0ZUBpb3NAQFFFQkFIWFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBpc3RyZWFtOjpyZWFkKHNpZ25lZCBjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/cmVhZEBpc3RyZWFtQEBRRUFBQUVBVjFAUEVBQ0hAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIGlzdHJlYW06OnJlYWQoY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP3JlYWRAaXN0cmVhbUBAUUVBQUFFQVYxQFBFQURIQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBpc3RyZWFtOjpyZWFkKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9yZWFkQGlzdHJlYW1AQFFFQUFBRUFWMUBQRUFFSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0cmVhbWJ1Zjo6c2J1bXBjKHZvaWQpIF9fcHRyNjQNCis/c2J1bXBjQHN0cmVhbWJ1ZkBAUUVBQUhYWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIGlzdHJlYW06OnNlZWtnKGxvbmcpIF9fcHRyNjQNCis/c2Vla2dAaXN0cmVhbUBAUUVBQUFFQVYxQEpAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIGlzdHJlYW06OnNlZWtnKGxvbmcsZW51bSBpb3M6OnNlZWtfZGlyKSBfX3B0cjY0DQorP3NlZWtnQGlzdHJlYW1AQFFFQUFBRUFWMUBKVzRzZWVrX2RpckBpb3NAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIGZpbGVidWY6OnNlZWtvZmYobG9uZyxlbnVtIGlvczo6c2Vla19kaXIsaW50KSBfX3B0cjY0DQorP3NlZWtvZmZAZmlsZWJ1ZkBAVUVBQUpKVzRzZWVrX2RpckBpb3NAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBzdGRpb2J1Zjo6c2Vla29mZihsb25nLGVudW0gaW9zOjpzZWVrX2RpcixpbnQpIF9fcHRyNjQNCis/c2Vla29mZkBzdGRpb2J1ZkBAVUVBQUpKVzRzZWVrX2RpckBpb3NAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBzdHJlYW1idWY6OnNlZWtvZmYobG9uZyxlbnVtIGlvczo6c2Vla19kaXIsaW50KSBfX3B0cjY0DQorP3NlZWtvZmZAc3RyZWFtYnVmQEBVRUFBSkpXNHNlZWtfZGlyQGlvc0BASEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIHN0cnN0cmVhbWJ1Zjo6c2Vla29mZihsb25nLGVudW0gaW9zOjpzZWVrX2RpcixpbnQpIF9fcHRyNjQNCis/c2Vla29mZkBzdHJzdHJlYW1idWZAQFVFQUFKSlc0c2Vla19kaXJAaW9zQEBIQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBvc3RyZWFtOjpzZWVrcChsb25nKSBfX3B0cjY0DQorP3NlZWtwQG9zdHJlYW1AQFFFQUFBRUFWMUBKQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBvc3RyZWFtOjpzZWVrcChsb25nLGVudW0gaW9zOjpzZWVrX2RpcikgX19wdHI2NA0KKz9zZWVrcEBvc3RyZWFtQEBRRUFBQUVBVjFASlc0c2Vla19kaXJAaW9zQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBzdHJlYW1idWY6OnNlZWtwb3MobG9uZyxpbnQpIF9fcHRyNjQNCis/c2Vla3Bvc0BzdHJlYW1idWZAQFVFQUFKSkhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RyZWFtYnVmOjpzZXRiKGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9zZXRiQHN0cmVhbWJ1ZkBASUVBQVhQRUFEMEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIHN0cmVhbWJ1ZiAqIF9fcHRyNjQgX19jZGVjbCBmaWxlYnVmOjpzZXRidWYoY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP3NldGJ1ZkBmaWxlYnVmQEBVRUFBUEVBVnN0cmVhbWJ1ZkBAUEVBREhAWg0KKzsgcHVibGljOiBjbGFzcyBzdHJlYW1idWYgKiBfX3B0cjY0IF9fY2RlY2wgZnN0cmVhbTo6c2V0YnVmKGNoYXIgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9zZXRidWZAZnN0cmVhbUBAUUVBQVBFQVZzdHJlYW1idWZAQFBFQURIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RyZWFtYnVmICogX19wdHI2NCBfX2NkZWNsIGlmc3RyZWFtOjpzZXRidWYoY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP3NldGJ1ZkBpZnN0cmVhbUBAUUVBQVBFQVZzdHJlYW1idWZAQFBFQURIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RyZWFtYnVmICogX19wdHI2NCBfX2NkZWNsIG9mc3RyZWFtOjpzZXRidWYoY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP3NldGJ1ZkBvZnN0cmVhbUBAUUVBQVBFQVZzdHJlYW1idWZAQFBFQURIQFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBzdHJlYW1idWYgKiBfX3B0cjY0IF9fY2RlY2wgc3RyZWFtYnVmOjpzZXRidWYoY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP3NldGJ1ZkBzdHJlYW1idWZAQFVFQUFQRUFWMUBQRUFESEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3Mgc3RyZWFtYnVmICogX19wdHI2NCBfX2NkZWNsIHN0cnN0cmVhbWJ1Zjo6c2V0YnVmKGNoYXIgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9zZXRidWZAc3Ryc3RyZWFtYnVmQEBVRUFBUEVBVnN0cmVhbWJ1ZkBAUEVBREhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgaW9zOjpzZXRmKGxvbmcpIF9fcHRyNjQNCis/c2V0ZkBpb3NAQFFFQUFKSkBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBpb3M6OnNldGYobG9uZyxsb25nKSBfX3B0cjY0DQorP3NldGZAaW9zQEBRRUFBSkpKQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0cmVhbWJ1Zjo6c2V0ZyhjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9zZXRnQHN0cmVhbWJ1ZkBASUVBQVhQRUFEMDBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgaW9zOjpzZXRsb2NrKHZvaWQpIF9fcHRyNjQNCis/c2V0bG9ja0Bpb3NAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0cmVhbWJ1Zjo6c2V0bG9jayh2b2lkKSBfX3B0cjY0DQorP3NldGxvY2tAc3RyZWFtYnVmQEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIGZpbGVidWY6OnNldG1vZGUoaW50KSBfX3B0cjY0DQorP3NldG1vZGVAZmlsZWJ1ZkBAUUVBQUhIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgZnN0cmVhbTo6c2V0bW9kZShpbnQpIF9fcHRyNjQNCis/c2V0bW9kZUBmc3RyZWFtQEBRRUFBSEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBpZnN0cmVhbTo6c2V0bW9kZShpbnQpIF9fcHRyNjQNCis/c2V0bW9kZUBpZnN0cmVhbUBAUUVBQUhIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgb2ZzdHJlYW06OnNldG1vZGUoaW50KSBfX3B0cjY0DQorP3NldG1vZGVAb2ZzdHJlYW1AQFFFQUFISEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdHJlYW1idWY6OnNldHAoY2hhciAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/c2V0cEBzdHJlYW1idWZAQElFQUFYUEVBRDBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBzdGRpb2J1Zjo6c2V0cndidWYoaW50LGludCkgX19wdHI2NA0KKz9zZXRyd2J1ZkBzdGRpb2J1ZkBAUUVBQUhISEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0cmVhbWJ1Zjo6c2dldGModm9pZCkgX19wdHI2NA0KKz9zZ2V0Y0BzdHJlYW1idWZAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RyZWFtYnVmOjpzZ2V0bihjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/c2dldG5Ac3RyZWFtYnVmQEBRRUFBSFBFQURIQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBjb25zdCAgZmlsZWJ1Zjo6c2hfbm9uZQ0KKz9zaF9ub25lQGZpbGVidWZAQDJIQg0KKzsgcHVibGljOiBzdGF0aWMgaW50IGNvbnN0ICBmaWxlYnVmOjpzaF9yZWFkDQorP3NoX3JlYWRAZmlsZWJ1ZkBAMkhCDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgY29uc3QgIGZpbGVidWY6OnNoX3dyaXRlDQorP3NoX3dyaXRlQGZpbGVidWZAQDJIQg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBzdHJlYW1idWY6OnNuZXh0Yyh2b2lkKSBfX3B0cjY0DQorP3NuZXh0Y0BzdHJlYW1idWZAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RyZWFtYnVmOjpzcHV0YmFja2MoY2hhcikgX19wdHI2NA0KKz9zcHV0YmFja2NAc3RyZWFtYnVmQEBRRUFBSERAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBzdHJlYW1idWY6OnNwdXRjKGludCkgX19wdHI2NA0KKz9zcHV0Y0BzdHJlYW1idWZAQFFFQUFISEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0cmVhbWJ1Zjo6c3B1dG4oY2hhciBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP3NwdXRuQHN0cmVhbWJ1ZkBAUUVBQUhQRUJESEBaDQorOyBwdWJsaWM6IHN0cnVjdCBfaW9idWYgKiBfX3B0cjY0IF9fY2RlY2wgc3RkaW9idWY6OnN0ZGlvZmlsZSh2b2lkKSBfX3B0cjY0DQorP3N0ZGlvZmlsZUBzdGRpb2J1ZkBAUUVBQVBFQVVfaW9idWZAQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdHJlYW1idWY6OnN0b3NzYyh2b2lkKSBfX3B0cjY0DQorP3N0b3NzY0BzdHJlYW1idWZAQFFFQUFYWFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBpc3Ryc3RyZWFtOjpzdHIodm9pZCkgX19wdHI2NA0KKz9zdHJAaXN0cnN0cmVhbUBAUUVBQVBFQURYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIG9zdHJzdHJlYW06OnN0cih2b2lkKSBfX3B0cjY0DQorP3N0ckBvc3Ryc3RyZWFtQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgc3Ryc3RyZWFtOjpzdHIodm9pZCkgX19wdHI2NA0KKz9zdHJAc3Ryc3RyZWFtQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgc3Ryc3RyZWFtYnVmOjpzdHIodm9pZCkgX19wdHI2NA0KKz9zdHJAc3Ryc3RyZWFtYnVmQEBRRUFBUEVBRFhaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50ICBpb3M6OnN1bmtfd2l0aF9zdGRpbw0KKz9zdW5rX3dpdGhfc3RkaW9AaW9zQEAwSEEgREFUQQ0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIGZpbGVidWY6OnN5bmModm9pZCkgX19wdHI2NA0KKz9zeW5jQGZpbGVidWZAQFVFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgaXN0cmVhbTo6c3luYyh2b2lkKSBfX3B0cjY0DQorP3N5bmNAaXN0cmVhbUBAUUVBQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIHN0ZGlvYnVmOjpzeW5jKHZvaWQpIF9fcHRyNjQNCis/c3luY0BzdGRpb2J1ZkBAVUVBQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIHN0cmVhbWJ1Zjo6c3luYyh2b2lkKSBfX3B0cjY0DQorP3N5bmNAc3RyZWFtYnVmQEBVRUFBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3Ryc3RyZWFtYnVmOjpzeW5jKHZvaWQpIF9fcHRyNjQNCis/c3luY0BzdHJzdHJlYW1idWZAQFVFQUFIWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBpb3M6OnN5bmNfd2l0aF9zdGRpbyh2b2lkKQ0KKz9zeW5jX3dpdGhfc3RkaW9AaW9zQEBTQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgaXN0cmVhbTo6dGVsbGcodm9pZCkgX19wdHI2NA0KKz90ZWxsZ0Bpc3RyZWFtQEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBvc3RyZWFtOjp0ZWxscCh2b2lkKSBfX3B0cjY0DQorP3RlbGxwQG9zdHJlYW1AQFFFQUFKWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBjb25zdCAgZmlsZWJ1Zjo6dGV4dA0KKz90ZXh0QGZpbGVidWZAQDJIQg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICogX19wdHI2NCBfX2NkZWNsIGlvczo6dGllKGNsYXNzIG9zdHJlYW0gKiBfX3B0cjY0KSBfX3B0cjY0DQorP3RpZUBpb3NAQFFFQUFQRUFWb3N0cmVhbUBAUEVBVjJAQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAqIF9fcHRyNjQgX19jZGVjbCBpb3M6OnRpZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3RpZUBpb3NAQFFFQkFQRUFWb3N0cmVhbUBAWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0cmVhbWJ1Zjo6dW5idWZmZXJlZChpbnQpIF9fcHRyNjQNCis/dW5idWZmZXJlZEBzdHJlYW1idWZAQElFQUFYSEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIHN0cmVhbWJ1Zjo6dW5idWZmZXJlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3VuYnVmZmVyZWRAc3RyZWFtYnVmQEBJRUJBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgZmlsZWJ1Zjo6dW5kZXJmbG93KHZvaWQpIF9fcHRyNjQNCis/dW5kZXJmbG93QGZpbGVidWZAQFVFQUFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBzdGRpb2J1Zjo6dW5kZXJmbG93KHZvaWQpIF9fcHRyNjQNCis/dW5kZXJmbG93QHN0ZGlvYnVmQEBVRUFBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3Ryc3RyZWFtYnVmOjp1bmRlcmZsb3codm9pZCkgX19wdHI2NA0KKz91bmRlcmZsb3dAc3Ryc3RyZWFtYnVmQEBVRUFBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBpb3M6OnVubG9jayh2b2lkKSBfX3B0cjY0DQorP3VubG9ja0Bpb3NAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0cmVhbWJ1Zjo6dW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/dW5sb2NrQHN0cmVhbWJ1ZkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgaW9zOjp1bmxvY2tidWYodm9pZCkgX19wdHI2NA0KKz91bmxvY2tidWZAaW9zQEBRRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB2b2lkIF9fY2RlY2wgaW9zOjp1bmxvY2tjKHZvaWQpDQorP3VubG9ja2NAaW9zQEBLQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgaW9zOjp1bnNldGYobG9uZykgX19wdHI2NA0KKz91bnNldGZAaW9zQEBRRUFBSkpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgZXhjZXB0aW9uOjp3aGF0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/d2hhdEBleGNlcHRpb25AQFVFQkFQRUJEWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgaW9zOjp3aWR0aChpbnQpIF9fcHRyNjQNCis/d2lkdGhAaW9zQEBRRUFBSEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBpb3M6OndpZHRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/d2lkdGhAaW9zQEBRRUJBSFhaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3B0cjY0IF9fY2RlY2wgb3N0cmVhbTo6d3JpdGUoc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz93cml0ZUBvc3RyZWFtQEBRRUFBQUVBVjFAUEVCQ0hAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIG9zdHJlYW06OndyaXRlKGNoYXIgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz93cml0ZUBvc3RyZWFtQEBRRUFBQUVBVjFAUEVCREhAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX19wdHI2NCBfX2NkZWNsIG9zdHJlYW06OndyaXRlKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz93cml0ZUBvc3RyZWFtQEBRRUFBQUVBVjFAUEVCRUhAWg0KKzsgcHJpdmF0ZTogY2xhc3Mgb3N0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCBvc3RyZWFtOjp3cml0ZXBhZChjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz93cml0ZXBhZEBvc3RyZWFtQEBBRUFBQUVBVjFAUEVCRDBAWg0KKzsgY2xhc3MgaXN0cmVhbSAmIF9fcHRyNjQgX19jZGVjbCB3cyhjbGFzcyBpc3RyZWFtICYgX19wdHI2NCkNCis/d3NAQFlBQUVBVmlzdHJlYW1AQEFFQVYxQEBaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50ICBpb3M6OnhfY3VyaW5kZXgNCis/eF9jdXJpbmRleEBpb3NAQDBIQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IF9DUlRfQ1JJVElDQUxfU0VDVElPTiAgaW9zOjp4X2xvY2tjDQorP3hfbG9ja2NAaW9zQEAwVV9DUlRfQ1JJVElDQUxfU0VDVElPTkBAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgbG9uZyAgaW9zOjp4X21heGJpdA0KKz94X21heGJpdEBpb3NAQDBKQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgbG9uZyAqICBpb3M6Onhfc3RhdGVidWYNCis/eF9zdGF0ZWJ1ZkBpb3NAQDBQQUpBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIGlvczo6eGFsbG9jKHZvaWQpDQorP3hhbGxvY0Bpb3NAQFNBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RyZWFtYnVmOjp4c2dldG4oY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP3hzZ2V0bkBzdHJlYW1idWZAQFVFQUFIUEVBREhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIHN0cmVhbWJ1Zjo6eHNwdXRuKGNoYXIgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz94c3B1dG5Ac3RyZWFtYnVmQEBVRUFBSFBFQkRIQFoNCitfX2R1bW15X2V4cG9ydCBEQVRBDQorX210bG9jaw0KK19tdHVubG9jaw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zdmNwNjAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXN2Y3A2MC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzUyMGY3OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zdmNwNjAuZGVmCkBAIC0wLDAgKzEsNDcyNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc3ZjcDYwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc3ZjcDYwLmRsbA0KK0VYUE9SVFMNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBBRUFDQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBBRUFDQFoNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBBRUFEQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBBRUFEQFoNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBBRUFFQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBBRUFFQFoNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBQRUFDQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBQRUFDQFoNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBQRUFEQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBQRUFEQFoNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBQRUFFQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBQRUFFQFoNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKE1Ac3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBRUFWMTBAQUVBVj8kY29tcGxleEBNQDBAQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQE1Ac3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBRUFWMTBAQUVBVj8kY29tcGxleEBNQDBAQFoNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKE5Ac3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBRUFWMTBAQUVBVj8kY29tcGxleEBOQDBAQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQE5Ac3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBRUFWMTBAQUVBVj8kY29tcGxleEBOQDBAQFoNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKE9Ac3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBRUFWMTBAQUVBVj8kY29tcGxleEBPQDBAQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQE9Ac3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBRUFWMTBAQUVBVj8kY29tcGxleEBPQDBAQFoNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFBRUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUVBVjEwQEFFQVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFBRUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUVBVjEwQEFFQVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFoNCis7IEdAc3RkOjo/JD81R1U/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBBRUFHQFopDQorPz8kPzVHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBBRUFHQFoNCis7IEdAc3RkOjo/JD81R1U/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBQRUFGQFopDQorPz8kPzVHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBQRUFGQFoNCis7IEdAc3RkOjo/JD81R1U/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBQRUFHQFopDQorPz8kPzVHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBQRUFHQFoNCis7IEdAc3RkOjo/JD81R1U/JGNoYXJfdHJhaXRzKE1Ac3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBRUFWMTBAQUVBVj8kY29tcGxleEBNQDBAQFopDQorPz8kPzVHVT8kY2hhcl90cmFpdHNAR0BzdGRAQE1Ac3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBRUFWMTBAQUVBVj8kY29tcGxleEBNQDBAQFoNCis7IEdAc3RkOjo/JD81R1U/JGNoYXJfdHJhaXRzKE5Ac3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBRUFWMTBAQUVBVj8kY29tcGxleEBOQDBAQFopDQorPz8kPzVHVT8kY2hhcl90cmFpdHNAR0BzdGRAQE5Ac3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBRUFWMTBAQUVBVj8kY29tcGxleEBOQDBAQFoNCis7IEdAc3RkOjo/JD81R1U/JGNoYXJfdHJhaXRzKE9Ac3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBRUFWMTBAQUVBVj8kY29tcGxleEBPQDBAQFopDQorPz8kPzVHVT8kY2hhcl90cmFpdHNAR0BzdGRAQE9Ac3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBRUFWMTBAQUVBVj8kY29tcGxleEBPQDBAQFoNCis7IEdAc3RkOjo/JD81R1U/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFBRUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUVBVjEwQEFFQVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFopDQorPz8kPzVHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFBRUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUVBVjEwQEFFQVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFoNCis7IERAc3RkOjo/JD82RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBDQFopDQorPz8kPzZEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBDQFoNCis7IERAc3RkOjo/JD82RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBEQFopDQorPz8kPzZEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBEQFoNCis7IERAc3RkOjo/JD82RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBFQFopDQorPz8kPzZEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBFQFoNCis7IERAc3RkOjo/JD82RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBQRUJDQFopDQorPz8kPzZEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBQRUJDQFoNCis7IERAc3RkOjo/JD82RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBQRUJEQFopDQorPz8kPzZEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBQRUJEQFoNCis7IERAc3RkOjo/JD82RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBQRUJFQFopDQorPz8kPzZEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBQRUJFQFoNCis7IERAc3RkOjo/JD82RFU/JGNoYXJfdHJhaXRzKE1Ac3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBRUFWMTBAQUVCVj8kY29tcGxleEBNQDBAQFopDQorPz8kPzZEVT8kY2hhcl90cmFpdHNAREBzdGRAQE1Ac3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBRUFWMTBAQUVCVj8kY29tcGxleEBNQDBAQFoNCis7IERAc3RkOjo/JD82RFU/JGNoYXJfdHJhaXRzKE5Ac3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBRUFWMTBAQUVCVj8kY29tcGxleEBOQDBAQFopDQorPz8kPzZEVT8kY2hhcl90cmFpdHNAREBzdGRAQE5Ac3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBRUFWMTBAQUVCVj8kY29tcGxleEBOQDBAQFoNCis7IERAc3RkOjo/JD82RFU/JGNoYXJfdHJhaXRzKE9Ac3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBRUFWMTBAQUVCVj8kY29tcGxleEBPQDBAQFopDQorPz8kPzZEVT8kY2hhcl90cmFpdHNAREBzdGRAQE9Ac3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBRUFWMTBAQUVCVj8kY29tcGxleEBPQDBAQFoNCis7IERAc3RkOjo/JD82RFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFBRUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUVBVjEwQEFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFopDQorPz8kPzZEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFBRUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUVBVjEwQEFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFoNCis7IEdAc3RkOjo/JD82R1U/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBHQFopDQorPz8kPzZHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBHQFoNCis7IEdAc3RkOjo/JD82R1U/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBQRUJGQFopDQorPz8kPzZHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBQRUJGQFoNCis7IEdAc3RkOjo/JD82R1U/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBQRUJHQFopDQorPz8kPzZHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBQRUJHQFoNCis7IEdAc3RkOjo/JD82R1U/JGNoYXJfdHJhaXRzKE1Ac3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBRUFWMTBAQUVCVj8kY29tcGxleEBNQDBAQFopDQorPz8kPzZHVT8kY2hhcl90cmFpdHNAR0BzdGRAQE1Ac3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBRUFWMTBAQUVCVj8kY29tcGxleEBNQDBAQFoNCis7IEdAc3RkOjo/JD82R1U/JGNoYXJfdHJhaXRzKE5Ac3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBRUFWMTBAQUVCVj8kY29tcGxleEBOQDBAQFopDQorPz8kPzZHVT8kY2hhcl90cmFpdHNAR0BzdGRAQE5Ac3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBRUFWMTBAQUVCVj8kY29tcGxleEBOQDBAQFoNCis7IEdAc3RkOjo/JD82R1U/JGNoYXJfdHJhaXRzKE9Ac3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBRUFWMTBAQUVCVj8kY29tcGxleEBPQDBAQFopDQorPz8kPzZHVT8kY2hhcl90cmFpdHNAR0BzdGRAQE9Ac3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBRUFWMTBAQUVCVj8kY29tcGxleEBPQDBAQFoNCis7IEdAc3RkOjo/JD82R1U/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFBRUFWPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUVBVjEwQEFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFopDQorPz8kPzZHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFBRUFWPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUVBVjEwQEFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFoNCis7IERAc3RkOjo/JD84RFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAMEBaKQ0KKz8/JD84RFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQDBAWg0KKzsgREBzdGQ6Oj8kPzhEVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBQRUJEQFopDQorPz8kPzhEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEVCREBaDQorOyBEQHN0ZDo6PyQ/OERVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05QRUJEQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBAWikNCis/PyQ/OERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OUEVCREFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFoNCis7IEdAc3RkOjo/JD84R1U/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAMEBaKQ0KKz8/JD84R1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQDBAWg0KKzsgR0BzdGQ6Oj8kPzhHVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBQRUJHQFopDQorPz8kPzhHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAUEVCR0BaDQorOyBHQHN0ZDo6PyQ/OEdVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05QRUJHQUVCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBAWikNCis/PyQ/OEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OUEVCR0FFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFoNCis7IHN0ZDo6PyQ/OE0oWUFfTkFFQk1BRUJWPyRjb21wbGV4QE1AMEBAWikNCis/PyQ/OE1Ac3RkQEBZQV9OQUVCTUFFQlY/JGNvbXBsZXhATUAwQEBaDQorOyBzdGQ6Oj8kPzhNKFlBX05BRUJWPyRjb21wbGV4QE1AMEAwQFopDQorPz8kPzhNQHN0ZEBAWUFfTkFFQlY/JGNvbXBsZXhATUAwQDBAWg0KKzsgc3RkOjo/JD84TShZQV9OQUVCVj8kY29tcGxleEBNQDBAQUVCTUBaKQ0KKz8/JD84TUBzdGRAQFlBX05BRUJWPyRjb21wbGV4QE1AMEBBRUJNQFoNCis7IHN0ZDo6PyQ/OE4oWUFfTkFFQk5BRUJWPyRjb21wbGV4QE5AMEBAWikNCis/PyQ/OE5Ac3RkQEBZQV9OQUVCTkFFQlY/JGNvbXBsZXhATkAwQEBaDQorOyBzdGQ6Oj8kPzhOKFlBX05BRUJWPyRjb21wbGV4QE5AMEAwQFopDQorPz8kPzhOQHN0ZEBAWUFfTkFFQlY/JGNvbXBsZXhATkAwQDBAWg0KKzsgc3RkOjo/JD84TihZQV9OQUVCVj8kY29tcGxleEBOQDBAQUVCTkBaKQ0KKz8/JD84TkBzdGRAQFlBX05BRUJWPyRjb21wbGV4QE5AMEBBRUJOQFoNCis7IHN0ZDo6PyQ/OE8oWUFfTkFFQk9BRUJWPyRjb21wbGV4QE9AMEBAWikNCis/PyQ/OE9Ac3RkQEBZQV9OQUVCT0FFQlY/JGNvbXBsZXhAT0AwQEBaDQorOyBzdGQ6Oj8kPzhPKFlBX05BRUJWPyRjb21wbGV4QE9AMEAwQFopDQorPz8kPzhPQHN0ZEBAWUFfTkFFQlY/JGNvbXBsZXhAT0AwQDBAWg0KKzsgc3RkOjo/JD84TyhZQV9OQUVCVj8kY29tcGxleEBPQDBAQUVCT0BaKQ0KKz8/JD84T0BzdGRAQFlBX05BRUJWPyRjb21wbGV4QE9AMEBBRUJPQFoNCis7IERAc3RkOjo/JD85RFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAMEBaKQ0KKz8/JD85RFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQDBAWg0KKzsgREBzdGQ6Oj8kPzlEVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBQRUJEQFopDQorPz8kPzlEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEVCREBaDQorOyBEQHN0ZDo6PyQ/OURVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05QRUJEQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBAWikNCis/PyQ/OURVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OUEVCREFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFoNCis7IEdAc3RkOjo/JD85R1U/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAMEBaKQ0KKz8/JD85R1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQDBAWg0KKzsgR0BzdGQ6Oj8kPzlHVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBQRUJHQFopDQorPz8kPzlHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAUEVCR0BaDQorOyBHQHN0ZDo6PyQ/OUdVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05QRUJHQUVCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBAWikNCis/PyQ/OUdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OUEVCR0FFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFoNCis7IHN0ZDo6PyQ/OU0oWUFfTkFFQk1BRUJWPyRjb21wbGV4QE1AMEBAWikNCis/PyQ/OU1Ac3RkQEBZQV9OQUVCTUFFQlY/JGNvbXBsZXhATUAwQEBaDQorOyBzdGQ6Oj8kPzlNKFlBX05BRUJWPyRjb21wbGV4QE1AMEAwQFopDQorPz8kPzlNQHN0ZEBAWUFfTkFFQlY/JGNvbXBsZXhATUAwQDBAWg0KKzsgc3RkOjo/JD85TShZQV9OQUVCVj8kY29tcGxleEBNQDBAQUVCTUBaKQ0KKz8/JD85TUBzdGRAQFlBX05BRUJWPyRjb21wbGV4QE1AMEBBRUJNQFoNCis7IHN0ZDo6PyQ/OU4oWUFfTkFFQk5BRUJWPyRjb21wbGV4QE5AMEBAWikNCis/PyQ/OU5Ac3RkQEBZQV9OQUVCTkFFQlY/JGNvbXBsZXhATkAwQEBaDQorOyBzdGQ6Oj8kPzlOKFlBX05BRUJWPyRjb21wbGV4QE5AMEAwQFopDQorPz8kPzlOQHN0ZEBAWUFfTkFFQlY/JGNvbXBsZXhATkAwQDBAWg0KKzsgc3RkOjo/JD85TihZQV9OQUVCVj8kY29tcGxleEBOQDBAQUVCTkBaKQ0KKz8/JD85TkBzdGRAQFlBX05BRUJWPyRjb21wbGV4QE5AMEBBRUJOQFoNCis7IHN0ZDo6PyQ/OU8oWUFfTkFFQk9BRUJWPyRjb21wbGV4QE9AMEBAWikNCis/PyQ/OU9Ac3RkQEBZQV9OQUVCT0FFQlY/JGNvbXBsZXhAT0AwQEBaDQorOyBzdGQ6Oj8kPzlPKFlBX05BRUJWPyRjb21wbGV4QE9AMEAwQFopDQorPz8kPzlPQHN0ZEBAWUFfTkFFQlY/JGNvbXBsZXhAT0AwQDBAWg0KKzsgc3RkOjo/JD85TyhZQV9OQUVCVj8kY29tcGxleEBPQDBAQUVCT0BaKQ0KKz8/JD85T0BzdGRAQFlBX05BRUJWPyRjb21wbGV4QE9AMEBBRUJPQFoNCis7IHN0ZDo6PyQ/RE0oWUE/QVY/JGNvbXBsZXhATUAwQEFFQk1BRUJWMTBAQFopDQorPz8kP0RNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFFQk1BRUJWMTBAQFoNCis7IHN0ZDo6PyQ/RE0oWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEAwQFopDQorPz8kP0RNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEAwQFoNCis7IHN0ZDo6PyQ/RE0oWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEBBRUJNQFopDQorPz8kP0RNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEBBRUJNQFoNCis7IHN0ZDo6PyQ/RE4oWUE/QVY/JGNvbXBsZXhATkAwQEFFQk5BRUJWMTBAQFopDQorPz8kP0ROQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFFQk5BRUJWMTBAQFoNCis7IHN0ZDo6PyQ/RE4oWUE/QVY/JGNvbXBsZXhATkAwQEFFQlYxMEAwQFopDQorPz8kP0ROQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFFQlYxMEAwQFoNCis7IHN0ZDo6PyQ/RE4oWUE/QVY/JGNvbXBsZXhATkAwQEFFQlYxMEBBRUJOQFopDQorPz8kP0ROQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFFQlYxMEBBRUJOQFoNCis7IHN0ZDo6PyQ/RE8oWUE/QVY/JGNvbXBsZXhAT0AwQEFFQk9BRUJWMTBAQFopDQorPz8kP0RPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFFQk9BRUJWMTBAQFoNCis7IHN0ZDo6PyQ/RE8oWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEAwQFopDQorPz8kP0RPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEAwQFoNCis7IHN0ZDo6PyQ/RE8oWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEBBRUJPQFopDQorPz8kP0RPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEBBRUJPQFoNCis7IHN0ZDo6PyQ/R00oWUE/QVY/JGNvbXBsZXhATUAwQEFFQk1BRUJWMTBAQFopDQorPz8kP0dNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFFQk1BRUJWMTBAQFoNCis7IHN0ZDo6PyQ/R00oWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEAwQFopDQorPz8kP0dNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEAwQFoNCis7IHN0ZDo6PyQ/R00oWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEBAWikNCis/PyQ/R01Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUVCVjEwQEBaDQorOyBzdGQ6Oj8kP0dNKFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAQUVCTUBaKQ0KKz8/JD9HTUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAQUVCTUBaDQorOyBzdGQ6Oj8kP0dOKFlBP0FWPyRjb21wbGV4QE5AMEBBRUJOQUVCVjEwQEBaKQ0KKz8/JD9HTkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJOQUVCVjEwQEBaDQorOyBzdGQ6Oj8kP0dOKFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAMEBaKQ0KKz8/JD9HTkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAMEBaDQorOyBzdGQ6Oj8kP0dOKFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAQFopDQorPz8kP0dOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFFQlYxMEBAWg0KKzsgc3RkOjo/JD9HTihZQT9BVj8kY29tcGxleEBOQDBAQUVCVjEwQEFFQk5AWikNCis/PyQ/R05Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUVCVjEwQEFFQk5AWg0KKzsgc3RkOjo/JD9HTyhZQT9BVj8kY29tcGxleEBPQDBAQUVCT0FFQlYxMEBAWikNCis/PyQ/R09Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUVCT0FFQlYxMEBAWg0KKzsgc3RkOjo/JD9HTyhZQT9BVj8kY29tcGxleEBPQDBAQUVCVjEwQDBAWikNCis/PyQ/R09Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUVCVjEwQDBAWg0KKzsgc3RkOjo/JD9HTyhZQT9BVj8kY29tcGxleEBPQDBAQUVCVjEwQEBaKQ0KKz8/JD9HT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAQFoNCis7IHN0ZDo6PyQ/R08oWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEBBRUJPQFopDQorPz8kP0dPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEBBRUJPQFoNCis7IERAc3RkOjo/JD9IRFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQUVCVjEwQDBAWikNCis/PyQ/SERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBBRUJWMTBAMEBaDQorOyBEQHN0ZDo6PyQ/SERVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEFFQlYxMEBEQFopDQorPz8kP0hEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQUVCVjEwQERAWg0KKzsgREBzdGQ6Oj8kP0hEVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBBRUJWMTBAUEVCREBaKQ0KKz8/JD9IRFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEFFQlYxMEBQRUJEQFoNCis7IERAc3RkOjo/JD9IRFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAREFFQlYxMEBAWikNCis/PyQ/SERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBEQUVCVjEwQEBaDQorOyBEQHN0ZDo6PyQ/SERVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQFBFQkRBRUJWMTBAQFopDQorPz8kP0hEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEVCREFFQlYxMEBAWg0KKzsgR0BzdGQ6Oj8kP0hHVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBBRUJWMTBAMEBaKQ0KKz8/JD9IR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEFFQlYxMEAwQFoNCis7IEdAc3RkOjo/JD9IR1U/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQUVCVjEwQEdAWikNCis/PyQ/SEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBBRUJWMTBAR0BaDQorOyBHQHN0ZDo6PyQ/SEdVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEFFQlYxMEBQRUJHQFopDQorPz8kP0hHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQUVCVjEwQFBFQkdAWg0KKzsgR0BzdGQ6Oj8kP0hHVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBHQUVCVjEwQEBaKQ0KKz8/JD9IR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEdBRUJWMTBAQFoNCis7IEdAc3RkOjo/JD9IR1U/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAUEVCR0FFQlYxMEBAWikNCis/PyQ/SEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBQRUJHQUVCVjEwQEBaDQorOyBzdGQ6Oj8kP0hNKFlBP0FWPyRjb21wbGV4QE1AMEBBRUJNQUVCVjEwQEBaKQ0KKz8/JD9ITUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBRUJNQUVCVjEwQEBaDQorOyBzdGQ6Oj8kP0hNKFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAMEBaKQ0KKz8/JD9ITUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAMEBaDQorOyBzdGQ6Oj8kP0hNKFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAQFopDQorPz8kP0hNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEBAWg0KKzsgc3RkOjo/JD9ITShZQT9BVj8kY29tcGxleEBNQDBAQUVCVjEwQEFFQk1AWikNCis/PyQ/SE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUVCVjEwQEFFQk1AWg0KKzsgc3RkOjo/JD9ITihZQT9BVj8kY29tcGxleEBOQDBAQUVCTkFFQlYxMEBAWikNCis/PyQ/SE5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUVCTkFFQlYxMEBAWg0KKzsgc3RkOjo/JD9ITihZQT9BVj8kY29tcGxleEBOQDBAQUVCVjEwQDBAWikNCis/PyQ/SE5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUVCVjEwQDBAWg0KKzsgc3RkOjo/JD9ITihZQT9BVj8kY29tcGxleEBOQDBAQUVCVjEwQEBaKQ0KKz8/JD9ITkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAQFoNCis7IHN0ZDo6PyQ/SE4oWUE/QVY/JGNvbXBsZXhATkAwQEFFQlYxMEBBRUJOQFopDQorPz8kP0hOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFFQlYxMEBBRUJOQFoNCis7IHN0ZDo6PyQ/SE8oWUE/QVY/JGNvbXBsZXhAT0AwQEFFQk9BRUJWMTBAQFopDQorPz8kP0hPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFFQk9BRUJWMTBAQFoNCis7IHN0ZDo6PyQ/SE8oWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEAwQFopDQorPz8kP0hPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEAwQFoNCis7IHN0ZDo6PyQ/SE8oWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEBAWikNCis/PyQ/SE9Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUVCVjEwQEBaDQorOyBzdGQ6Oj8kP0hPKFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAQUVCT0BaKQ0KKz8/JD9IT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAQUVCT0BaDQorOyBzdGQ6Oj8kP0tNKFlBP0FWPyRjb21wbGV4QE1AMEBBRUJNQUVCVjEwQEBaKQ0KKz8/JD9LTUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBRUJNQUVCVjEwQEBaDQorOyBzdGQ6Oj8kP0tNKFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAMEBaKQ0KKz8/JD9LTUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAMEBaDQorOyBzdGQ6Oj8kP0tNKFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAQUVCTUBaKQ0KKz8/JD9LTUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAQUVCTUBaDQorOyBzdGQ6Oj8kP0tOKFlBP0FWPyRjb21wbGV4QE5AMEBBRUJOQUVCVjEwQEBaKQ0KKz8/JD9LTkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJOQUVCVjEwQEBaDQorOyBzdGQ6Oj8kP0tOKFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAMEBaKQ0KKz8/JD9LTkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAMEBaDQorOyBzdGQ6Oj8kP0tOKFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAQUVCTkBaKQ0KKz8/JD9LTkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAQUVCTkBaDQorOyBzdGQ6Oj8kP0tPKFlBP0FWPyRjb21wbGV4QE9AMEBBRUJPQUVCVjEwQEBaKQ0KKz8/JD9LT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBRUJPQUVCVjEwQEBaDQorOyBzdGQ6Oj8kP0tPKFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAMEBaKQ0KKz8/JD9LT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAMEBaDQorOyBzdGQ6Oj8kP0tPKFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAQUVCT0BaKQ0KKz8/JD9LT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAQUVCT0BaDQorOyBEQHN0ZDo6PyQ/TURVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQDBAWikNCis/PyQ/TURVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEAwQFoNCis7IERAc3RkOjo/JD9NRFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEVCREBaKQ0KKz8/JD9NRFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQFBFQkRAWg0KKzsgREBzdGQ6Oj8kP01EVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OUEVCREFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFopDQorPz8kP01EVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTlBFQkRBRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaDQorOyBHQHN0ZDo6PyQ/TUdVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQDBAWikNCis/PyQ/TUdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEAwQFoNCis7IEdAc3RkOjo/JD9NR1U/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAUEVCR0BaKQ0KKz8/JD9NR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQFBFQkdAWg0KKzsgR0BzdGQ6Oj8kP01HVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OUEVCR0FFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFopDQorPz8kP01HVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTlBFQkdBRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEBaDQorOyBEQHN0ZDo6PyQ/TkRVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQDBAWikNCis/PyQ/TkRVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEAwQFoNCis7IERAc3RkOjo/JD9ORFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEVCREBaKQ0KKz8/JD9ORFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQFBFQkRAWg0KKzsgREBzdGQ6Oj8kP05EVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OUEVCREFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFopDQorPz8kP05EVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTlBFQkRBRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaDQorOyBHQHN0ZDo6PyQ/TkdVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQDBAWikNCis/PyQ/TkdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEAwQFoNCis7IEdAc3RkOjo/JD9OR1U/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAUEVCR0BaKQ0KKz8/JD9OR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQFBFQkdAWg0KKzsgR0BzdGQ6Oj8kP05HVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OUEVCR0FFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFopDQorPz8kP05HVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTlBFQkdBRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEBaDQorOyBEQHN0ZDo6PyQ/T0RVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQDBAWikNCis/PyQ/T0RVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEAwQFoNCis7IERAc3RkOjo/JD9PRFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEVCREBaKQ0KKz8/JD9PRFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQFBFQkRAWg0KKzsgREBzdGQ6Oj8kP09EVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OUEVCREFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFopDQorPz8kP09EVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTlBFQkRBRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaDQorOyBHQHN0ZDo6PyQ/T0dVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQDBAWikNCis/PyQ/T0dVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEAwQFoNCis7IEdAc3RkOjo/JD9PR1U/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAUEVCR0BaKQ0KKz8/JD9PR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQFBFQkdAWg0KKzsgR0BzdGQ6Oj8kP09HVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OUEVCR0FFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFopDQorPz8kP09HVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTlBFQkdBRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEBaDQorOyBEQHN0ZDo6PyQ/UERVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQDBAWikNCis/PyQ/UERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEAwQFoNCis7IERAc3RkOjo/JD9QRFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEVCREBaKQ0KKz8/JD9QRFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQFBFQkRAWg0KKzsgREBzdGQ6Oj8kP1BEVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OUEVCREFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFopDQorPz8kP1BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTlBFQkRBRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaDQorOyBHQHN0ZDo6PyQ/UEdVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQDBAWikNCis/PyQ/UEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEAwQFoNCis7IEdAc3RkOjo/JD9QR1U/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAUEVCR0BaKQ0KKz8/JD9QR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQFBFQkdAWg0KKzsgR0BzdGQ6Oj8kP1BHVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OUEVCR0FFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFopDQorPz8kP1BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTlBFQkdBRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEBaDQorOyBzdGQ6Oj8kP1hNTShZQUFFQVY/JGNvbXBsZXhATUAwQEFFQVYxMEBBRUJWMTBAQFopDQorPz8kP1hNTUBzdGRAQFlBQUVBVj8kY29tcGxleEBNQDBAQUVBVjEwQEFFQlYxMEBAWg0KKzsgc3RkOjo/JD9YTk4oWUFBRUFWPyRjb21wbGV4QE5AMEBBRUFWMTBAQUVCVjEwQEBaKQ0KKz8/JD9YTk5Ac3RkQEBZQUFFQVY/JGNvbXBsZXhATkAwQEFFQVYxMEBBRUJWMTBAQFoNCis7IHN0ZDo6PyQ/WE9PKFlBQUVBVj8kY29tcGxleEBPQDBAQUVBVjEwQEFFQlYxMEBAWikNCis/PyQ/WE9PQHN0ZEBAWUFBRUFWPyRjb21wbGV4QE9AMEBBRUFWMTBAQUVCVjEwQEBaDQorOyBzdGQ6Oj8kP1lNTShZQUFFQVY/JGNvbXBsZXhATUAwQEFFQVYxMEBBRUJWMTBAQFopDQorPz8kP1lNTUBzdGRAQFlBQUVBVj8kY29tcGxleEBNQDBAQUVBVjEwQEFFQlYxMEBAWg0KKzsgc3RkOjo/JD9ZTk4oWUFBRUFWPyRjb21wbGV4QE5AMEBBRUFWMTBAQUVCVjEwQEBaKQ0KKz8/JD9ZTk5Ac3RkQEBZQUFFQVY/JGNvbXBsZXhATkAwQEFFQVYxMEBBRUJWMTBAQFoNCis7IHN0ZDo6PyQ/WU9PKFlBQUVBVj8kY29tcGxleEBPQDBAQUVBVjEwQEFFQlYxMEBAWikNCis/PyQ/WU9PQHN0ZEBAWUFBRUFWPyRjb21wbGV4QE9AMEBBRUFWMTBAQUVCVjEwQEBaDQorOyBzdGQ6Oj8kP1pNTShZQUFFQVY/JGNvbXBsZXhATUAwQEFFQVYxMEBBRUJWMTBAQFopDQorPz8kP1pNTUBzdGRAQFlBQUVBVj8kY29tcGxleEBNQDBAQUVBVjEwQEFFQlYxMEBAWg0KKzsgc3RkOjo/JD9aTk4oWUFBRUFWPyRjb21wbGV4QE5AMEBBRUFWMTBAQUVCVjEwQEBaKQ0KKz8/JD9aTk5Ac3RkQEBZQUFFQVY/JGNvbXBsZXhATkAwQEFFQVYxMEBBRUJWMTBAQFoNCis7IHN0ZDo6PyQ/Wk9PKFlBQUVBVj8kY29tcGxleEBPQDBAQUVBVjEwQEFFQlYxMEBAWikNCis/PyQ/Wk9PQHN0ZEBAWUFBRUFWPyRjb21wbGV4QE9AMEBBRUFWMTBAQUVCVjEwQEBaDQorOyBzdGQ6Oj8kP18wTU0oWUFBRUFWPyRjb21wbGV4QE1AMEBBRUFWMTBAQUVCVjEwQEBaKQ0KKz8/JD9fME1NQHN0ZEBAWUFBRUFWPyRjb21wbGV4QE1AMEBBRUFWMTBAQUVCVjEwQEBaDQorOyBzdGQ6Oj8kP18wTk4oWUFBRUFWPyRjb21wbGV4QE5AMEBBRUFWMTBAQUVCVjEwQEBaKQ0KKz8/JD9fME5OQHN0ZEBAWUFBRUFWPyRjb21wbGV4QE5AMEBBRUFWMTBAQUVCVjEwQEBaDQorOyBzdGQ6Oj8kP18wT08oWUFBRUFWPyRjb21wbGV4QE9AMEBBRUFWMTBAQUVCVjEwQEBaKQ0KKz8/JD9fME9PQHN0ZEBAWUFBRUFWPyRjb21wbGV4QE9AMEBBRUFWMTBAQUVCVjEwQEBaDQorOyBNQHN0ZDo6PyRfRmFicyhZQU1BRUJWPyRjb21wbGV4QE1AMEBQRUFIQFopDQorPz8kX0ZhYnNATUBzdGRAQFlBTUFFQlY/JGNvbXBsZXhATUAwQFBFQUhAWg0KKzsgTUBzdGQ6Oj8kX0ZhYnMoWUFNQUVCVj8kY29tcGxleEBNQDFAUEVBSEBaKQ0KKz8/JF9GYWJzQE1Ac3RkQEBZQU1BRUJWPyRjb21wbGV4QE1AMUBQRUFIQFoNCis7IE5Ac3RkOjo/JF9GYWJzKFlBTkFFQlY/JGNvbXBsZXhATkAwQFBFQUhAWikNCis/PyRfRmFic0BOQHN0ZEBAWUFOQUVCVj8kY29tcGxleEBOQDBAUEVBSEBaDQorOyBOQHN0ZDo6PyRfRmFicyhZQU5BRUJWPyRjb21wbGV4QE5AMUBQRUFIQFopDQorPz8kX0ZhYnNATkBzdGRAQFlBTkFFQlY/JGNvbXBsZXhATkAxQFBFQUhAWg0KKzsgT0BzdGQ6Oj8kX0ZhYnMoWUFPQUVCVj8kY29tcGxleEBPQDBAUEVBSEBaKQ0KKz8/JF9GYWJzQE9Ac3RkQEBZQU9BRUJWPyRjb21wbGV4QE9AMEBQRUFIQFoNCis7IE9Ac3RkOjo/JF9GYWJzKFlBT0FFQlY/JGNvbXBsZXhAT0AxQFBFQUhAWikNCis/PyRfRmFic0BPQHN0ZEBAWUFPQUVCVj8kY29tcGxleEBPQDFAUEVBSEBaDQorOyBNQHN0ZDo6PyRhYnMoWUFNQUVCVj8kY29tcGxleEBNQDBAQFopDQorPz8kYWJzQE1Ac3RkQEBZQU1BRUJWPyRjb21wbGV4QE1AMEBAWg0KKzsgTUBzdGQ6Oj8kYWJzKFlBTUFFQlY/JGNvbXBsZXhATUAxQEBaKQ0KKz8/JGFic0BNQHN0ZEBAWUFNQUVCVj8kY29tcGxleEBNQDFAQFoNCis7IE5Ac3RkOjo/JGFicyhZQU5BRUJWPyRjb21wbGV4QE5AMEBAWikNCis/PyRhYnNATkBzdGRAQFlBTkFFQlY/JGNvbXBsZXhATkAwQEBaDQorOyBOQHN0ZDo6PyRhYnMoWUFOQUVCVj8kY29tcGxleEBOQDFAQFopDQorPz8kYWJzQE5Ac3RkQEBZQU5BRUJWPyRjb21wbGV4QE5AMUBAWg0KKzsgT0BzdGQ6Oj8kYWJzKFlBT0FFQlY/JGNvbXBsZXhAT0AwQEBaKQ0KKz8/JGFic0BPQHN0ZEBAWUFPQUVCVj8kY29tcGxleEBPQDBAQFoNCis7IE9Ac3RkOjo/JGFicyhZQU9BRUJWPyRjb21wbGV4QE9AMUBAWikNCis/PyRhYnNAT0BzdGRAQFlBT0FFQlY/JGNvbXBsZXhAT0AxQEBaDQorOyBNQHN0ZDo6PyRhcmcoWUFNQUVCVj8kY29tcGxleEBNQDBAQFopDQorPz8kYXJnQE1Ac3RkQEBZQU1BRUJWPyRjb21wbGV4QE1AMEBAWg0KKzsgTUBzdGQ6Oj8kYXJnKFlBTUFFQlY/JGNvbXBsZXhATUAxQEBaKQ0KKz8/JGFyZ0BNQHN0ZEBAWUFNQUVCVj8kY29tcGxleEBNQDFAQFoNCis7IE5Ac3RkOjo/JGFyZyhZQU5BRUJWPyRjb21wbGV4QE5AMEBAWikNCis/PyRhcmdATkBzdGRAQFlBTkFFQlY/JGNvbXBsZXhATkAwQEBaDQorOyBOQHN0ZDo6PyRhcmcoWUFOQUVCVj8kY29tcGxleEBOQDFAQFopDQorPz8kYXJnQE5Ac3RkQEBZQU5BRUJWPyRjb21wbGV4QE5AMUBAWg0KKzsgT0BzdGQ6Oj8kYXJnKFlBT0FFQlY/JGNvbXBsZXhAT0AwQEBaKQ0KKz8/JGFyZ0BPQHN0ZEBAWUFPQUVCVj8kY29tcGxleEBPQDBAQFoNCis7IE9Ac3RkOjo/JGFyZyhZQU9BRUJWPyRjb21wbGV4QE9AMUBAWikNCis/PyRhcmdAT0BzdGRAQFlBT0FFQlY/JGNvbXBsZXhAT0AxQEBaDQorOyBNQHN0ZDo6PyRjb25qKFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAQFopDQorPz8kY29uakBNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEBAWg0KKzsgTUBzdGQ6Oj8kY29uaihZQT9BVj8kY29tcGxleEBNQDFAQUVCVjIxQEBaKQ0KKz8/JGNvbmpATUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBRUJWMjFAQFoNCis7IE5Ac3RkOjo/JGNvbmooWUE/QVY/JGNvbXBsZXhATkAwQEFFQlYxMEBAWikNCis/PyRjb25qQE5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUVCVjEwQEBaDQorOyBOQHN0ZDo6PyRjb25qKFlBP0FWPyRjb21wbGV4QE5AMUBBRUJWMjFAQFopDQorPz8kY29uakBOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUBAWg0KKzsgT0BzdGQ6Oj8kY29uaihZQT9BVj8kY29tcGxleEBPQDBAQUVCVjEwQEBaKQ0KKz8/JGNvbmpAT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAQFoNCis7IE9Ac3RkOjo/JGNvbmooWUE/QVY/JGNvbXBsZXhAT0AxQEFFQlYyMUBAWikNCis/PyRjb25qQE9Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDFAQUVCVjIxQEBaDQorOyBNQHN0ZDo6PyRjb3MoWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEBAWikNCis/PyRjb3NATUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAQFoNCis7IE1Ac3RkOjo/JGNvcyhZQT9BVj8kY29tcGxleEBNQDFAQUVCVjIxQEBaKQ0KKz8/JGNvc0BNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAxQEFFQlYyMUBAWg0KKzsgTkBzdGQ6Oj8kY29zKFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAQFopDQorPz8kY29zQE5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUVCVjEwQEBaDQorOyBOQHN0ZDo6PyRjb3MoWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUBAWikNCis/PyRjb3NATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBRUJWMjFAQFoNCis7IE9Ac3RkOjo/JGNvcyhZQT9BVj8kY29tcGxleEBPQDBAQUVCVjEwQEBaKQ0KKz8/JGNvc0BPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEBAWg0KKzsgT0BzdGQ6Oj8kY29zKFlBP0FWPyRjb21wbGV4QE9AMUBBRUJWMjFAQFopDQorPz8kY29zQE9Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDFAQUVCVjIxQEBaDQorOyBNQHN0ZDo6PyRjb3NoKFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAQFopDQorPz8kY29zaEBNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEBAWg0KKzsgTUBzdGQ6Oj8kY29zaChZQT9BVj8kY29tcGxleEBNQDFAQUVCVjIxQEBaKQ0KKz8/JGNvc2hATUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBRUJWMjFAQFoNCis7IE5Ac3RkOjo/JGNvc2goWUE/QVY/JGNvbXBsZXhATkAwQEFFQlYxMEBAWikNCis/PyRjb3NoQE5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUVCVjEwQEBaDQorOyBOQHN0ZDo6PyRjb3NoKFlBP0FWPyRjb21wbGV4QE5AMUBBRUJWMjFAQFopDQorPz8kY29zaEBOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUBAWg0KKzsgT0BzdGQ6Oj8kY29zaChZQT9BVj8kY29tcGxleEBPQDBAQUVCVjEwQEBaKQ0KKz8/JGNvc2hAT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAQFoNCis7IE9Ac3RkOjo/JGNvc2goWUE/QVY/JGNvbXBsZXhAT0AxQEFFQlYyMUBAWikNCis/PyRjb3NoQE9Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDFAQUVCVjIxQEBaDQorOyBNQHN0ZDo6PyRleHAoWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEBAWikNCis/PyRleHBATUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAQFoNCis7IE1Ac3RkOjo/JGV4cChZQT9BVj8kY29tcGxleEBNQDFAQUVCVjIxQEBaKQ0KKz8/JGV4cEBNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAxQEFFQlYyMUBAWg0KKzsgTkBzdGQ6Oj8kZXhwKFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAQFopDQorPz8kZXhwQE5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUVCVjEwQEBaDQorOyBOQHN0ZDo6PyRleHAoWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUBAWikNCis/PyRleHBATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBRUJWMjFAQFoNCis7IE9Ac3RkOjo/JGV4cChZQT9BVj8kY29tcGxleEBPQDBAQUVCVjEwQEBaKQ0KKz8/JGV4cEBPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEBAWg0KKzsgT0BzdGQ6Oj8kZXhwKFlBP0FWPyRjb21wbGV4QE9AMUBBRUJWMjFAQFopDQorPz8kZXhwQE9Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDFAQUVCVjIxQEBaDQorOyBEVT8kY2hhcl90cmFpdHNAREBzdGQ6Oj8kZ2V0bGluZShWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBBRUFWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaKQ0KKz8/JGdldGxpbmVARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBBRUFWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaDQorOyBEVT8kY2hhcl90cmFpdHNAREBzdGQ6Oj8kZ2V0bGluZShWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBBRUFWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQERAWikNCis/PyRnZXRsaW5lQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBRUFWMTBAQUVBVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBEQFoNCis7IERVPyRjaGFyX3RyYWl0c0BEQHN0ZDo6PyRnZXRsaW5lKFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAWUFBRUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQUVBVjIxQEFFQVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFAQFopDQorPz8kZ2V0bGluZUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAWUFBRUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQUVBVjIxQEFFQVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFAQFoNCis7IERVPyRjaGFyX3RyYWl0c0BEQHN0ZDo6PyRnZXRsaW5lKFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAWUFBRUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQUVBVjIxQEFFQVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFAREBaKQ0KKz8/JGdldGxpbmVARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEFFQVYyMUBBRUFWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAxQERAWg0KKzsgR1U/JGNoYXJfdHJhaXRzQEdAc3RkOjo/JGdldGxpbmUoVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBRUFWMTBAQUVBVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBAWikNCis/PyRnZXRsaW5lQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBRUFWMTBAQUVBVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBAWg0KKzsgR1U/JGNoYXJfdHJhaXRzQEdAc3RkOjo/JGdldGxpbmUoVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBRUFWMTBAQUVBVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBHQFopDQorPz8kZ2V0bGluZUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAWUFBRUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUVBVjEwQEFFQVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAR0BaDQorOyBHVT8kY2hhcl90cmFpdHNAR0BzdGQ6Oj8kZ2V0bGluZShWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEFFQVYyMUBBRUFWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAxQEBaKQ0KKz8/JGdldGxpbmVAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEFFQVYyMUBBRUFWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAxQEBaDQorOyBHVT8kY2hhcl90cmFpdHNAR0BzdGQ6Oj8kZ2V0bGluZShWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEFFQVYyMUBBRUFWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAxQEdAWikNCis/PyRnZXRsaW5lQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBBRUFWMjFAQUVBVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMUBHQFoNCis7IE1Ac3RkOjo/JGltYWcoWUFNQUVCVj8kY29tcGxleEBNQDBAQFopDQorPz8kaW1hZ0BNQHN0ZEBAWUFNQUVCVj8kY29tcGxleEBNQDBAQFoNCis7IE1Ac3RkOjo/JGltYWcoWUFNQUVCVj8kY29tcGxleEBNQDFAQFopDQorPz8kaW1hZ0BNQHN0ZEBAWUFNQUVCVj8kY29tcGxleEBNQDFAQFoNCis7IE5Ac3RkOjo/JGltYWcoWUFOQUVCVj8kY29tcGxleEBOQDBAQFopDQorPz8kaW1hZ0BOQHN0ZEBAWUFOQUVCVj8kY29tcGxleEBOQDBAQFoNCis7IE5Ac3RkOjo/JGltYWcoWUFOQUVCVj8kY29tcGxleEBOQDFAQFopDQorPz8kaW1hZ0BOQHN0ZEBAWUFOQUVCVj8kY29tcGxleEBOQDFAQFoNCis7IE9Ac3RkOjo/JGltYWcoWUFPQUVCVj8kY29tcGxleEBPQDBAQFopDQorPz8kaW1hZ0BPQHN0ZEBAWUFPQUVCVj8kY29tcGxleEBPQDBAQFoNCis7IE9Ac3RkOjo/JGltYWcoWUFPQUVCVj8kY29tcGxleEBPQDFAQFopDQorPz8kaW1hZ0BPQHN0ZEBAWUFPQUVCVj8kY29tcGxleEBPQDFAQFoNCis7IE1Ac3RkOjo/JGxvZzEwKFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAQFopDQorPz8kbG9nMTBATUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAQFoNCis7IE1Ac3RkOjo/JGxvZzEwKFlBP0FWPyRjb21wbGV4QE1AMUBBRUJWMjFAQFopDQorPz8kbG9nMTBATUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBRUJWMjFAQFoNCis7IE5Ac3RkOjo/JGxvZzEwKFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAQFopDQorPz8kbG9nMTBATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAQFoNCis7IE5Ac3RkOjo/JGxvZzEwKFlBP0FWPyRjb21wbGV4QE5AMUBBRUJWMjFAQFopDQorPz8kbG9nMTBATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBRUJWMjFAQFoNCis7IE9Ac3RkOjo/JGxvZzEwKFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAQFopDQorPz8kbG9nMTBAT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAQFoNCis7IE9Ac3RkOjo/JGxvZzEwKFlBP0FWPyRjb21wbGV4QE9AMUBBRUJWMjFAQFopDQorPz8kbG9nMTBAT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBRUJWMjFAQFoNCis7IE1Ac3RkOjo/JGxvZyhZQT9BVj8kY29tcGxleEBNQDBAQUVCVjEwQEBaKQ0KKz8/JGxvZ0BNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEBAWg0KKzsgTUBzdGQ6Oj8kbG9nKFlBP0FWPyRjb21wbGV4QE1AMUBBRUJWMjFAQFopDQorPz8kbG9nQE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUVCVjIxQEBaDQorOyBOQHN0ZDo6PyRsb2coWUE/QVY/JGNvbXBsZXhATkAwQEFFQlYxMEBAWikNCis/PyRsb2dATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAQFoNCis7IE5Ac3RkOjo/JGxvZyhZQT9BVj8kY29tcGxleEBOQDFAQUVCVjIxQEBaKQ0KKz8/JGxvZ0BOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUBAWg0KKzsgT0BzdGQ6Oj8kbG9nKFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAQFopDQorPz8kbG9nQE9Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUVCVjEwQEBaDQorOyBPQHN0ZDo6PyRsb2coWUE/QVY/JGNvbXBsZXhAT0AxQEFFQlYyMUBAWikNCis/PyRsb2dAT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBRUJWMjFAQFoNCis7IE1Ac3RkOjo/JG5vcm0oWUFNQUVCVj8kY29tcGxleEBNQDBAQFopDQorPz8kbm9ybUBNQHN0ZEBAWUFNQUVCVj8kY29tcGxleEBNQDBAQFoNCis7IE1Ac3RkOjo/JG5vcm0oWUFNQUVCVj8kY29tcGxleEBNQDFAQFopDQorPz8kbm9ybUBNQHN0ZEBAWUFNQUVCVj8kY29tcGxleEBNQDFAQFoNCis7IE5Ac3RkOjo/JG5vcm0oWUFOQUVCVj8kY29tcGxleEBOQDBAQFopDQorPz8kbm9ybUBOQHN0ZEBAWUFOQUVCVj8kY29tcGxleEBOQDBAQFoNCis7IE5Ac3RkOjo/JG5vcm0oWUFOQUVCVj8kY29tcGxleEBOQDFAQFopDQorPz8kbm9ybUBOQHN0ZEBAWUFOQUVCVj8kY29tcGxleEBOQDFAQFoNCis7IE9Ac3RkOjo/JG5vcm0oWUFPQUVCVj8kY29tcGxleEBPQDBAQFopDQorPz8kbm9ybUBPQHN0ZEBAWUFPQUVCVj8kY29tcGxleEBPQDBAQFoNCis7IE9Ac3RkOjo/JG5vcm0oWUFPQUVCVj8kY29tcGxleEBPQDFAQFopDQorPz8kbm9ybUBPQHN0ZEBAWUFPQUVCVj8kY29tcGxleEBPQDFAQFoNCis7IE1Ac3RkOjo/JHBvbGFyKFlBP0FWPyRjb21wbGV4QE1AMEBBRUJNMEBaKQ0KKz8/JHBvbGFyQE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUVCTTBAWg0KKzsgTUBzdGQ6Oj8kcG9sYXIoWUE/QVY/JGNvbXBsZXhATUAwQEFFQk1AWikNCis/PyRwb2xhckBNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFFQk1AWg0KKzsgTUBzdGQ6Oj8kcG9sYXIoWUE/QVY/JGNvbXBsZXhATUAxQEFFQk0wQFopDQorPz8kcG9sYXJATUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBRUJNMEBaDQorOyBNQHN0ZDo6PyRwb2xhcihZQT9BVj8kY29tcGxleEBNQDFAQUVCTUBaKQ0KKz8/JHBvbGFyQE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUVCTUBaDQorOyBOQHN0ZDo6PyRwb2xhcihZQT9BVj8kY29tcGxleEBOQDBAQUVCTjBAWikNCis/PyRwb2xhckBOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFFQk4wQFoNCis7IE5Ac3RkOjo/JHBvbGFyKFlBP0FWPyRjb21wbGV4QE5AMEBBRUJOQFopDQorPz8kcG9sYXJATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJOQFoNCis7IE5Ac3RkOjo/JHBvbGFyKFlBP0FWPyRjb21wbGV4QE5AMUBBRUJOMEBaKQ0KKz8/JHBvbGFyQE5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDFAQUVCTjBAWg0KKzsgTkBzdGQ6Oj8kcG9sYXIoWUE/QVY/JGNvbXBsZXhATkAxQEFFQk5AWikNCis/PyRwb2xhckBOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFFQk5AWg0KKzsgT0BzdGQ6Oj8kcG9sYXIoWUE/QVY/JGNvbXBsZXhAT0AwQEFFQk8wQFopDQorPz8kcG9sYXJAT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBRUJPMEBaDQorOyBPQHN0ZDo6PyRwb2xhcihZQT9BVj8kY29tcGxleEBPQDBAQUVCT0BaKQ0KKz8/JHBvbGFyQE9Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUVCT0BaDQorOyBPQHN0ZDo6PyRwb2xhcihZQT9BVj8kY29tcGxleEBPQDFAQUVCTzBAWikNCis/PyRwb2xhckBPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFFQk8wQFoNCis7IE9Ac3RkOjo/JHBvbGFyKFlBP0FWPyRjb21wbGV4QE9AMUBBRUJPQFopDQorPz8kcG9sYXJAT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBRUJPQFoNCis7IE1Ac3RkOjo/JHBvdyhZQT9BVj8kY29tcGxleEBNQDBAQUVCTUFFQlYxMEBAWikNCis/PyRwb3dATUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBRUJNQUVCVjEwQEBaDQorOyBNQHN0ZDo6PyRwb3coWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEAwQFopDQorPz8kcG93QE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUVCVjEwQDBAWg0KKzsgTUBzdGQ6Oj8kcG93KFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAQUVCTUBaKQ0KKz8/JHBvd0BNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEBBRUJNQFoNCis7IE1Ac3RkOjo/JHBvdyhZQT9BVj8kY29tcGxleEBNQDBAQUVCVjEwQEhAWikNCis/PyRwb3dATUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBASEBaDQorOyBNQHN0ZDo6PyRwb3coWUE/QVY/JGNvbXBsZXhATUAxQEFFQk1BRUJWMjFAQFopDQorPz8kcG93QE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUVCTUFFQlYyMUBAWg0KKzsgTUBzdGQ6Oj8kcG93KFlBP0FWPyRjb21wbGV4QE1AMUBBRUJWMjFAMEBaKQ0KKz8/JHBvd0BNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAxQEFFQlYyMUAwQFoNCis7IE1Ac3RkOjo/JHBvdyhZQT9BVj8kY29tcGxleEBNQDFAQUVCVjIxQEFFQk1AWikNCis/PyRwb3dATUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBRUJWMjFAQUVCTUBaDQorOyBNQHN0ZDo6PyRwb3coWUE/QVY/JGNvbXBsZXhATUAxQEFFQlYyMUBIQFopDQorPz8kcG93QE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUVCVjIxQEhAWg0KKzsgTkBzdGQ6Oj8kcG93KFlBP0FWPyRjb21wbGV4QE5AMEBBRUJOQUVCVjEwQEBaKQ0KKz8/JHBvd0BOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFFQk5BRUJWMTBAQFoNCis7IE5Ac3RkOjo/JHBvdyhZQT9BVj8kY29tcGxleEBOQDBAQUVCVjEwQDBAWikNCis/PyRwb3dATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAMEBaDQorOyBOQHN0ZDo6PyRwb3coWUE/QVY/JGNvbXBsZXhATkAwQEFFQlYxMEBBRUJOQFopDQorPz8kcG93QE5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUVCVjEwQEFFQk5AWg0KKzsgTkBzdGQ6Oj8kcG93KFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBASEBaKQ0KKz8/JHBvd0BOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFFQlYxMEBIQFoNCis7IE5Ac3RkOjo/JHBvdyhZQT9BVj8kY29tcGxleEBOQDFAQUVCTkFFQlYyMUBAWikNCis/PyRwb3dATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBRUJOQUVCVjIxQEBaDQorOyBOQHN0ZDo6PyRwb3coWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUAwQFopDQorPz8kcG93QE5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDFAQUVCVjIxQDBAWg0KKzsgTkBzdGQ6Oj8kcG93KFlBP0FWPyRjb21wbGV4QE5AMUBBRUJWMjFAQUVCTkBaKQ0KKz8/JHBvd0BOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUBBRUJOQFoNCis7IE5Ac3RkOjo/JHBvdyhZQT9BVj8kY29tcGxleEBOQDFAQUVCVjIxQEhAWikNCis/PyRwb3dATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBRUJWMjFASEBaDQorOyBPQHN0ZDo6PyRwb3coWUE/QVY/JGNvbXBsZXhAT0AwQEFFQk9BRUJWMTBAQFopDQorPz8kcG93QE9Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUVCT0FFQlYxMEBAWg0KKzsgT0BzdGQ6Oj8kcG93KFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAMEBaKQ0KKz8/JHBvd0BPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEAwQFoNCis7IE9Ac3RkOjo/JHBvdyhZQT9BVj8kY29tcGxleEBPQDBAQUVCVjEwQEFFQk9AWikNCis/PyRwb3dAT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAQUVCT0BaDQorOyBPQHN0ZDo6PyRwb3coWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEBIQFopDQorPz8kcG93QE9Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUVCVjEwQEhAWg0KKzsgT0BzdGQ6Oj8kcG93KFlBP0FWPyRjb21wbGV4QE9AMUBBRUJPQUVCVjIxQEBaKQ0KKz8/JHBvd0BPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFFQk9BRUJWMjFAQFoNCis7IE9Ac3RkOjo/JHBvdyhZQT9BVj8kY29tcGxleEBPQDFAQUVCVjIxQDBAWikNCis/PyRwb3dAT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBRUJWMjFAMEBaDQorOyBPQHN0ZDo6PyRwb3coWUE/QVY/JGNvbXBsZXhAT0AxQEFFQlYyMUBBRUJPQFopDQorPz8kcG93QE9Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDFAQUVCVjIxQEFFQk9AWg0KKzsgT0BzdGQ6Oj8kcG93KFlBP0FWPyRjb21wbGV4QE9AMUBBRUJWMjFASEBaKQ0KKz8/JHBvd0BPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFFQlYyMUBIQFoNCis7IE1Ac3RkOjo/JHJlYWwoWUFNQUVCVj8kY29tcGxleEBNQDBAQFopDQorPz8kcmVhbEBNQHN0ZEBAWUFNQUVCVj8kY29tcGxleEBNQDBAQFoNCis7IE1Ac3RkOjo/JHJlYWwoWUFNQUVCVj8kY29tcGxleEBNQDFAQFopDQorPz8kcmVhbEBNQHN0ZEBAWUFNQUVCVj8kY29tcGxleEBNQDFAQFoNCis7IE5Ac3RkOjo/JHJlYWwoWUFOQUVCVj8kY29tcGxleEBOQDBAQFopDQorPz8kcmVhbEBOQHN0ZEBAWUFOQUVCVj8kY29tcGxleEBOQDBAQFoNCis7IE5Ac3RkOjo/JHJlYWwoWUFOQUVCVj8kY29tcGxleEBOQDFAQFopDQorPz8kcmVhbEBOQHN0ZEBAWUFOQUVCVj8kY29tcGxleEBOQDFAQFoNCis7IE9Ac3RkOjo/JHJlYWwoWUFPQUVCVj8kY29tcGxleEBPQDBAQFopDQorPz8kcmVhbEBPQHN0ZEBAWUFPQUVCVj8kY29tcGxleEBPQDBAQFoNCis7IE9Ac3RkOjo/JHJlYWwoWUFPQUVCVj8kY29tcGxleEBPQDFAQFopDQorPz8kcmVhbEBPQHN0ZEBAWUFPQUVCVj8kY29tcGxleEBPQDFAQFoNCis7IE1Ac3RkOjo/JHNpbihZQT9BVj8kY29tcGxleEBNQDBAQUVCVjEwQEBaKQ0KKz8/JHNpbkBNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEBAWg0KKzsgTUBzdGQ6Oj8kc2luKFlBP0FWPyRjb21wbGV4QE1AMUBBRUJWMjFAQFopDQorPz8kc2luQE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUVCVjIxQEBaDQorOyBOQHN0ZDo6PyRzaW4oWUE/QVY/JGNvbXBsZXhATkAwQEFFQlYxMEBAWikNCis/PyRzaW5ATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAQFoNCis7IE5Ac3RkOjo/JHNpbihZQT9BVj8kY29tcGxleEBOQDFAQUVCVjIxQEBaKQ0KKz8/JHNpbkBOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUBAWg0KKzsgT0BzdGQ6Oj8kc2luKFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAQFopDQorPz8kc2luQE9Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUVCVjEwQEBaDQorOyBPQHN0ZDo6PyRzaW4oWUE/QVY/JGNvbXBsZXhAT0AxQEFFQlYyMUBAWikNCis/PyRzaW5AT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBRUJWMjFAQFoNCis7IE1Ac3RkOjo/JHNpbmgoWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEBAWikNCis/PyRzaW5oQE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUVCVjEwQEBaDQorOyBNQHN0ZDo6PyRzaW5oKFlBP0FWPyRjb21wbGV4QE1AMUBBRUJWMjFAQFopDQorPz8kc2luaEBNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAxQEFFQlYyMUBAWg0KKzsgTkBzdGQ6Oj8kc2luaChZQT9BVj8kY29tcGxleEBOQDBAQUVCVjEwQEBaKQ0KKz8/JHNpbmhATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAQFoNCis7IE5Ac3RkOjo/JHNpbmgoWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUBAWikNCis/PyRzaW5oQE5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDFAQUVCVjIxQEBaDQorOyBPQHN0ZDo6PyRzaW5oKFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAQFopDQorPz8kc2luaEBPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEBAWg0KKzsgT0BzdGQ6Oj8kc2luaChZQT9BVj8kY29tcGxleEBPQDFAQUVCVjIxQEBaKQ0KKz8/JHNpbmhAT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBRUJWMjFAQFoNCis7IE1Ac3RkOjo/JHNxcnQoWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEBAWikNCis/PyRzcXJ0QE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUVCVjEwQEBaDQorOyBNQHN0ZDo6PyRzcXJ0KFlBP0FWPyRjb21wbGV4QE1AMUBBRUJWMjFAQFopDQorPz8kc3FydEBNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAxQEFFQlYyMUBAWg0KKzsgTkBzdGQ6Oj8kc3FydChZQT9BVj8kY29tcGxleEBOQDBAQUVCVjEwQEBaKQ0KKz8/JHNxcnRATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAQFoNCis7IE5Ac3RkOjo/JHNxcnQoWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUBAWikNCis/PyRzcXJ0QE5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDFAQUVCVjIxQEBaDQorOyBPQHN0ZDo6PyRzcXJ0KFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAQFopDQorPz8kc3FydEBPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEBAWg0KKzsgT0BzdGQ6Oj8kc3FydChZQT9BVj8kY29tcGxleEBPQDFAQUVCVjIxQEBaKQ0KKz8/JHNxcnRAT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBRUJWMjFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+OjpfQ29tcGxleF9iYXNlPGZsb2F0PihmbG9hdCBjb25zdCAmIF9fcHRyNjQsZmxvYXQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRfQ29tcGxleF9iYXNlQE1Ac3RkQEBRRUFBQEFFQk0wQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZG91YmxlPjo6X0NvbXBsZXhfYmFzZTxkb3VibGU+KGRvdWJsZSBjb25zdCAmIF9fcHRyNjQsZG91YmxlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kX0NvbXBsZXhfYmFzZUBOQHN0ZEBAUUVBQUBBRUJOMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpfQ29tcGxleF9iYXNlPGxvbmcgZG91YmxlPjo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT4obG9uZyBkb3VibGUgY29uc3QgJiBfX3B0cjY0LGxvbmcgZG91YmxlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kX0NvbXBsZXhfYmFzZUBPQHN0ZEBAUUVBQUBBRUJPMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpfTXB1bmN0PGNoYXI+OjpfTXB1bmN0PGNoYXI+KGNsYXNzIF9NcHVuY3Q8Y2hhcj46Ol9Mb2NpbmZvIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LGJvb2wpIF9fcHRyNjQNCis/PzA/JF9NcHVuY3RAREBzdGRAQFFFQUFAQUVCVl9Mb2NpbmZvQDFAX0tfTkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpfTXB1bmN0PGNoYXI+OjpfTXB1bmN0PGNoYXI+KHVuc2lnbmVkIF9faW50NjQsYm9vbCkgX19wdHI2NA0KKz8/MD8kX01wdW5jdEBEQHN0ZEBAUUVBQUBfS19OQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0PihjbGFzcyBfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsYm9vbCkgX19wdHI2NA0KKz8/MD8kX01wdW5jdEBHQHN0ZEBAUUVBQUBBRUJWX0xvY2luZm9AMUBfS19OQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pih1bnNpZ25lZCBfX2ludDY0LGJvb2wpIF9fcHRyNjQNCis/PzA/JF9NcHVuY3RAR0BzdGRAQFFFQUFAX0tfTkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oY2xhc3MgYmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oc3RydWN0IF9pb2J1ZiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQFBFQVVfaW9idWZAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oZW51bSBiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6X1VuaW5pdGlhbGl6ZWQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQFc0X1VuaW5pdGlhbGl6ZWRAMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KHN0cnVjdCBfaW9idWYgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUBQRUFVX2lvYnVmQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihlbnVtIGJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Ol9VbmluaXRpYWxpemVkKSBfX3B0cjY0DQorPz8wPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUBXNF9VbmluaXRpYWxpemVkQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihjbGFzcyBiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihjaGFyIGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQFBFQkRIQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPih2b2lkKSBfX3B0cjY0DQorPz8wPyRiYXNpY19mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KGNoYXIgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFAUEVCREhAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPih2b2lkKSBfX3B0cjY0DQorPz8wPyRiYXNpY19mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19pZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oY2xhc3MgYmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19pZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19pZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19pZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihjaGFyIGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX2lmc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUBQRUJESEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19pZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPih2b2lkKSBfX3B0cjY0DQorPz8wPyRiYXNpY19pZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19pZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19pZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19pZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oY2hhciBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wPyRiYXNpY19pZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFAUEVCREhAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KHZvaWQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX2lmc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPih2b2lkKSBfX3B0cjY0DQorPz8wPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KGNsYXNzIGJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihjbGFzcyBiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfaW9zQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUBQRUFWPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfaW9zQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQFBFQVY/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2lvc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihjbGFzcyBiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2lvc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX2lvc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX2lvc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfaW9zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KGNsYXNzIGJhc2ljX2lvc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX2lvc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUBQRUFWPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfaW9zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX2lvc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KGNsYXNzIGJhc2ljX2lvc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX2lvc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX2lvc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19pb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfaW9zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQFBFQVY/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oY2xhc3MgYmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oY2xhc3MgYmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gKiBfX3B0cjY0LGJvb2wpIF9fcHRyNjQNCis/PzA/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQFBFQVY/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQF9OQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihlbnVtIGJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpfVW5pbml0aWFsaXplZCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFAVzRfVW5pbml0aWFsaXplZEAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KGNsYXNzIGJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICogX19wdHI2NCxib29sKSBfX3B0cjY0DQorPz8wPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUBQRUFWPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBfTkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KGVudW0gYmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6X1VuaW5pdGlhbGl6ZWQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQFc0X1VuaW5pdGlhbGl6ZWRAMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGNsYXNzIGJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19pc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX2lzdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4oY2xhc3MgYmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfaXN0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQUBBRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAxQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGludCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfaXN0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfaXN0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19pc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KGNsYXNzIGJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX2lzdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFAQUVCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPihpbnQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX2lzdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX29mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihjbGFzcyBiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX29mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX29mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX29mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KGNoYXIgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfb2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQFBFQkRIQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX29mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KHZvaWQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX29mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX29mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KGNsYXNzIGJhc2ljX29mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX29mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX29mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihjaGFyIGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX29mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUBQRUJESEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfb2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oY2xhc3MgYmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oY2xhc3MgYmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gKiBfX3B0cjY0LGJvb2wsYm9vbCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFAUEVBVj8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAX04xQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihlbnVtIGJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpfVW5pbml0aWFsaXplZCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFAVzRfVW5pbml0aWFsaXplZEAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KGNsYXNzIGJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICogX19wdHI2NCxib29sLGJvb2wpIF9fcHRyNjQNCis/PzA/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQFBFQVY/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQF9OMUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KGVudW0gYmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6X1VuaW5pdGlhbGl6ZWQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQFc0X1VuaW5pdGlhbGl6ZWRAMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX29zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGNsYXNzIGJhc2ljX29zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19vc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX29zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4oY2xhc3MgYmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfb3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQUBBRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAxQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX29zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGludCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfb3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfb3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19vc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX29zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KGNsYXNzIGJhc2ljX29zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX29zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFAQUVCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPihpbnQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX29zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFASEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KGVudW0gYmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6X1VuaW5pdGlhbGl6ZWQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElFQUFAVzRfVW5pbml0aWFsaXplZEAxQEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KHZvaWQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oY2xhc3MgYmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihlbnVtIGJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6X1VuaW5pdGlhbGl6ZWQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElFQUFAVzRfVW5pbml0aWFsaXplZEAxQEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPih2b2lkKSBfX3B0cjY0DQorPz8wPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGNsYXNzIGJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGNsYXNzIGJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCxjbGFzcyBiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjphbGxvY2F0b3I8Y2hhcj4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFAQUVCVjAxQF9LMUFFQlY/JGFsbG9jYXRvckBEQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4oY2xhc3MgYmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YWxsb2NhdG9yPGNoYXI+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQEFFQlY/JGFsbG9jYXRvckBEQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4oY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsY2xhc3MgYmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YWxsb2NhdG9yPGNoYXI+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQFBFQkQwQUVCVj8kYWxsb2NhdG9yQERAMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPihjaGFyIGNvbnN0ICogX19wdHI2NCxjbGFzcyBiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjphbGxvY2F0b3I8Y2hhcj4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFAUEVCREFFQlY/JGFsbG9jYXRvckBEQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4oY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCxjbGFzcyBiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjphbGxvY2F0b3I8Y2hhcj4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFAUEVCRF9LQUVCVj8kYWxsb2NhdG9yQERAMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPih1bnNpZ25lZCBfX2ludDY0LGNoYXIsY2xhc3MgYmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YWxsb2NhdG9yPGNoYXI+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQF9LREFFQlY/JGFsbG9jYXRvckBEQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0LGNsYXNzIGJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFAQUVCVjAxQF9LMUFFQlY/JGFsbG9jYXRvckBHQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQUBBRUJWPyRhbGxvY2F0b3JAR0AxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgYmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQUBQRUJHMEFFQlY/JGFsbG9jYXRvckBHQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIGJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFAUEVCR0FFQlY/JGFsbG9jYXRvckBHQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsY2xhc3MgYmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQUBQRUJHX0tBRUJWPyRhbGxvY2F0b3JAR0AxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgc2hvcnQsY2xhc3MgYmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQUBfS0dBRUJWPyRhbGxvY2F0b3JAR0AxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGNsYXNzIGJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGNsYXNzIGJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQEFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGludCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19zdHJpbmdidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJpbmdidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19zdHJpbmdidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQUBBRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAxQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPihpbnQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4oY2xhc3MgYmFzaWNfc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmFzaWNfc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGJhc2ljX3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4oY2xhc3MgYmFzaWNfc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wPyRiYXNpY19zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFAQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4oaW50KSBfX3B0cjY0DQorPz8wPyRiYXNpY19zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KGNsYXNzIGJhc2ljX3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRiYXNpY19zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KGNsYXNzIGJhc2ljX3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBQEFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KGludCkgX19wdHI2NA0KKz8/MD8kYmFzaWNfc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6Y29kZWN2dDxjaGFyLGNoYXIsaW50Pjo6Y29kZWN2dDxjaGFyLGNoYXIsaW50PihjbGFzcyBjb2RlY3Z0PGNoYXIsY2hhcixpbnQ+OjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MD8kY29kZWN2dEBEREhAc3RkQEBRRUFBQEFFQlZfTG9jaW5mb0AxQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmNvZGVjdnQ8Y2hhcixjaGFyLGludD46OmNvZGVjdnQ8Y2hhcixjaGFyLGludD4odW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MD8kY29kZWN2dEBEREhAc3RkQEBRRUFBQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+Ojpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50PihjbGFzcyBjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JGNvZGVjdnRAR0RIQHN0ZEBAUUVBQUBBRUJWX0xvY2luZm9AMUBfS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD4odW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MD8kY29kZWN2dEBHREhAc3RkQEBRRUFBQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmNvbGxhdGU8Y2hhcj46OmNvbGxhdGU8Y2hhcj4oY2xhc3MgY29sbGF0ZTxjaGFyPjo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JGNvbGxhdGVAREBzdGRAQFFFQUFAQUVCVl9Mb2NpbmZvQDFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6Y29sbGF0ZTxjaGFyPjo6Y29sbGF0ZTxjaGFyPih1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyRjb2xsYXRlQERAc3RkQEBRRUFBQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmNvbGxhdGU8dW5zaWduZWQgc2hvcnQ+Ojpjb2xsYXRlPHVuc2lnbmVkIHNob3J0PihjbGFzcyBjb2xsYXRlPHVuc2lnbmVkIHNob3J0Pjo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JGNvbGxhdGVAR0BzdGRAQFFFQUFAQUVCVl9Mb2NpbmZvQDFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46OmNvbGxhdGU8dW5zaWduZWQgc2hvcnQ+KHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JGNvbGxhdGVAR0BzdGRAQFFFQUFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6Y29tcGxleDxmbG9hdD46OmNvbXBsZXg8ZmxvYXQ+KGZsb2F0IGNvbnN0ICYgX19wdHI2NCxmbG9hdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGNvbXBsZXhATUBzdGRAQFFFQUFAQUVCTTBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6Y29tcGxleDxmbG9hdD46OmNvbXBsZXg8ZmxvYXQ+KGNsYXNzIGNvbXBsZXg8ZmxvYXQ+Ojpjb21wbGV4PGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRjb21wbGV4QE1Ac3RkQEBRRUFBQEFFQlY/JGNvbXBsZXhATkAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpjb21wbGV4PGZsb2F0Pjo6Y29tcGxleDxmbG9hdD4oY2xhc3MgY29tcGxleDxmbG9hdD46OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kY29tcGxleEBNQHN0ZEBAUUVBQUBBRUJWPyRjb21wbGV4QE9AMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6Y29tcGxleDxkb3VibGU+Ojpjb21wbGV4PGRvdWJsZT4oZG91YmxlIGNvbnN0ICYgX19wdHI2NCxkb3VibGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRjb21wbGV4QE5Ac3RkQEBRRUFBQEFFQk4wQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmNvbXBsZXg8ZG91YmxlPjo6Y29tcGxleDxkb3VibGU+KGNsYXNzIGNvbXBsZXg8ZG91YmxlPjo6Y29tcGxleDxmbG9hdD4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRjb21wbGV4QE5Ac3RkQEBRRUFBQEFFQlY/JGNvbXBsZXhATUAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpjb21wbGV4PGRvdWJsZT46OmNvbXBsZXg8ZG91YmxlPihjbGFzcyBjb21wbGV4PGRvdWJsZT46OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kY29tcGxleEBOQHN0ZEBAUUVBQUBBRUJWPyRjb21wbGV4QE9AMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT46OmNvbXBsZXg8bG9uZyBkb3VibGU+KGxvbmcgZG91YmxlIGNvbnN0ICYgX19wdHI2NCxsb25nIGRvdWJsZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGNvbXBsZXhAT0BzdGRAQFFFQUFAQUVCTzBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT46OmNvbXBsZXg8bG9uZyBkb3VibGU+KGNsYXNzIGNvbXBsZXg8bG9uZyBkb3VibGU+Ojpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGNvbXBsZXhAT0BzdGRAQFFFQUFAQUVCVj8kY29tcGxleEBNQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+Ojpjb21wbGV4PGxvbmcgZG91YmxlPihjbGFzcyBjb21wbGV4PGxvbmcgZG91YmxlPjo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kY29tcGxleEBPQHN0ZEBAUUVBQUBBRUJWPyRjb21wbGV4QE5AMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6Y3R5cGU8Y2hhcj46OmN0eXBlPGNoYXI+KGNsYXNzIGN0eXBlPGNoYXI+OjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MD8kY3R5cGVAREBzdGRAQFFFQUFAQUVCVl9Mb2NpbmZvQDFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6Y3R5cGU8Y2hhcj46OmN0eXBlPGNoYXI+KHNob3J0IGNvbnN0ICogX19wdHI2NCxib29sLHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JGN0eXBlQERAc3RkQEBRRUFBQFBFQkZfTl9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+KGNsYXNzIGN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JGN0eXBlQEdAc3RkQEBRRUFBQEFFQlZfTG9jaW5mb0AxQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+KHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JGN0eXBlQEdAc3RkQEBRRUFBQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Om1lc3NhZ2VzPGNoYXI+OjptZXNzYWdlczxjaGFyPihjbGFzcyBtZXNzYWdlczxjaGFyPjo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JG1lc3NhZ2VzQERAc3RkQEBRRUFBQEFFQlZfTG9jaW5mb0AxQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Om1lc3NhZ2VzPGNoYXI+OjptZXNzYWdlczxjaGFyPih1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyRtZXNzYWdlc0BEQHN0ZEBAUUVBQUBfS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjptZXNzYWdlczx1bnNpZ25lZCBzaG9ydD46Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0PihjbGFzcyBtZXNzYWdlczx1bnNpZ25lZCBzaG9ydD46Ol9Mb2NpbmZvIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyRtZXNzYWdlc0BHQHN0ZEBAUUVBQUBBRUJWX0xvY2luZm9AMUBfS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjptZXNzYWdlczx1bnNpZ25lZCBzaG9ydD46Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pih1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyRtZXNzYWdlc0BHQHN0ZEBAUUVBQUBfS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjptb25leV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Om1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPihjbGFzcyBtb25leV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9Mb2NpbmZvIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyRtb25leV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRRUFBQEFFQlZfTG9jaW5mb0AxQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Om1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6bW9uZXlfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JG1vbmV5X2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQUFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bW9uZXlfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojptb25leV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID4oY2xhc3MgbW9uZXlfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MD8kbW9uZXlfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVBQUBBRUJWX0xvY2luZm9AMUBfS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjptb25leV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Om1vbmV5X2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPih1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyRtb25leV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUFBQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Om1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6bW9uZXlfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KGNsYXNzIG1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JG1vbmV5X3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQUFAQUVCVl9Mb2NpbmZvQDFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bW9uZXlfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojptb25leV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID4odW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MD8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVBQUBfS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjptb25leV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Om1vbmV5X3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPihjbGFzcyBtb25leV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9Mb2NpbmZvIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyRtb25leV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUFBQEFFQlZfTG9jaW5mb0AxQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Om1vbmV5X3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JG1vbmV5X3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFFQUFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bW9uZXlwdW5jdDxjaGFyLDE+Ojptb25leXB1bmN0PGNoYXIsMT4oY2xhc3MgbW9uZXlwdW5jdDxjaGFyLDE+OjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MD8kbW9uZXlwdW5jdEBEJDAwQHN0ZEBAUUVBQUBBRUJWX0xvY2luZm9AMUBfS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjptb25leXB1bmN0PGNoYXIsMT46Om1vbmV5cHVuY3Q8Y2hhciwxPih1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyRtb25leXB1bmN0QEQkMDBAc3RkQEBRRUFBQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwwPjo6bW9uZXlwdW5jdDxjaGFyLDA+KGNsYXNzIG1vbmV5cHVuY3Q8Y2hhciwwPjo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JG1vbmV5cHVuY3RARCQwQUBAc3RkQEBRRUFBQEFFQlZfTG9jaW5mb0AxQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwwPjo6bW9uZXlwdW5jdDxjaGFyLDA+KHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JG1vbmV5cHVuY3RARCQwQUBAc3RkQEBRRUFBQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMT46Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMT4oY2xhc3MgbW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwxPjo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JG1vbmV5cHVuY3RARyQwMEBzdGRAQFFFQUFAQUVCVl9Mb2NpbmZvQDFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwxPjo6bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwxPih1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyRtb25leXB1bmN0QEckMDBAc3RkQEBRRUFBQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMD46Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMD4oY2xhc3MgbW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwwPjo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JG1vbmV5cHVuY3RARyQwQUBAc3RkQEBRRUFBQEFFQlZfTG9jaW5mb0AxQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMD46Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMD4odW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MD8kbW9uZXlwdW5jdEBHJDBBQEBzdGRAQFFFQUFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPihjbGFzcyBudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQUFAQUVCVl9Mb2NpbmZvQDFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPih1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVBQUBfS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KGNsYXNzIG51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9Mb2NpbmZvIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVBQUBBRUJWX0xvY2luZm9AMUBfS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUFBQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID4oY2xhc3MgbnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRRUFBQEFFQlZfTG9jaW5mb0AxQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID4odW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQUFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPihjbGFzcyBudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFFQUFAQUVCVl9Mb2NpbmZvQDFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPih1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVBQUBfS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpudW1wdW5jdDxjaGFyPjo6bnVtcHVuY3Q8Y2hhcj4oY2xhc3MgbnVtcHVuY3Q8Y2hhcj46Ol9Mb2NpbmZvIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyRudW1wdW5jdEBEQHN0ZEBAUUVBQUBBRUJWX0xvY2luZm9AMUBfS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpudW1wdW5jdDxjaGFyPjo6bnVtcHVuY3Q8Y2hhcj4odW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MD8kbnVtcHVuY3RAREBzdGRAQFFFQUFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD4oY2xhc3MgbnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MD8kbnVtcHVuY3RAR0BzdGRAQFFFQUFAQUVCVl9Mb2NpbmZvQDFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD4odW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MD8kbnVtcHVuY3RAR0BzdGRAQFFFQUFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KGNsYXNzIHRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRRUFBQEFFQlZfTG9jaW5mb0AxQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPih1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyR0aW1lX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQUFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KGNsYXNzIHRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MD8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUFBQEFFQlZfTG9jaW5mb0AxQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPih1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFFQUFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6dGltZV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OnRpbWVfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KGNsYXNzIHRpbWVfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MD8kdGltZV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRRUFBQEFFQlZfTG9jaW5mb0AxQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OnRpbWVfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojp0aW1lX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPih1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyR0aW1lX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQUFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6dGltZV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OnRpbWVfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KGNsYXNzIHRpbWVfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MD8kdGltZV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUFBQEFFQlZfTG9jaW5mb0AxQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OnRpbWVfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojp0aW1lX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPih1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyR0aW1lX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFFQUFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6OkluaXQ6OkluaXQodm9pZCkgX19wdHI2NA0KKz8/MEluaXRAaW9zX2Jhc2VAc3RkQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpfTG9jaW5mbzo6X0xvY2luZm8oY2xhc3MgX0xvY2luZm86Ol9Mb2NpbmZvIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MF9Mb2NpbmZvQHN0ZEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Ol9Mb2NpbmZvOjpfTG9jaW5mbyhpbnQsY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBfTG9jaW5mb0BzdGRAQFFFQUFASFBFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6X0xvY2luZm86Ol9Mb2NpbmZvKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wX0xvY2luZm9Ac3RkQEBRRUFBQFBFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6X0xvY2tpdDo6X0xvY2tpdCh2b2lkKSBfX3B0cjY0DQorPz8wX0xvY2tpdEBzdGRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Ol9UaW1ldmVjOjpfVGltZXZlYyhjbGFzcyBfVGltZXZlYzo6X1RpbWV2ZWMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wX1RpbWV2ZWNAc3RkQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6X1RpbWV2ZWM6Ol9UaW1ldmVjKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wX1RpbWV2ZWNAc3RkQEBRRUFBQFBFQVhAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6X1dpbml0OjpfV2luaXQodm9pZCkgX19wdHI2NA0KKz8/MF9XaW5pdEBzdGRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Ol9fbm9uX3J0dGlfb2JqZWN0OjpfX25vbl9ydHRpX29iamVjdChjbGFzcyBfX25vbl9ydHRpX29iamVjdDo6X19ub25fcnR0aV9vYmplY3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wX19ub25fcnR0aV9vYmplY3RAc3RkQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6X19ub25fcnR0aV9vYmplY3Q6Ol9fbm9uX3J0dGlfb2JqZWN0KGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wX19ub25fcnR0aV9vYmplY3RAc3RkQEBRRUFBQFBFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFkX2FsbG9jOjpiYWRfYWxsb2MoY2xhc3MgYmFkX2FsbG9jOjpiYWRfYWxsb2MgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wYmFkX2FsbG9jQHN0ZEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhZF9hbGxvYzo6YmFkX2FsbG9jKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wYmFkX2FsbG9jQHN0ZEBAUUVBQUBQRUJEQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmJhZF9jYXN0OjpiYWRfY2FzdChjbGFzcyBiYWRfY2FzdDo6YmFkX2Nhc3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wYmFkX2Nhc3RAc3RkQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFkX2Nhc3Q6OmJhZF9jYXN0KGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wYmFkX2Nhc3RAc3RkQEBRRUFBQFBFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFkX2V4Y2VwdGlvbjo6YmFkX2V4Y2VwdGlvbihjbGFzcyBiYWRfZXhjZXB0aW9uOjpiYWRfZXhjZXB0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MGJhZF9leGNlcHRpb25Ac3RkQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFkX2V4Y2VwdGlvbjo6YmFkX2V4Y2VwdGlvbihjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MGJhZF9leGNlcHRpb25Ac3RkQEBRRUFBQFBFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFkX3R5cGVpZDo6YmFkX3R5cGVpZChjbGFzcyBiYWRfdHlwZWlkOjpiYWRfdHlwZWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MGJhZF90eXBlaWRAc3RkQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFkX3R5cGVpZDo6YmFkX3R5cGVpZChjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MGJhZF90eXBlaWRAc3RkQEBRRUFBQFBFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6Y29kZWN2dF9iYXNlOjpjb2RlY3Z0X2Jhc2UodW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/MGNvZGVjdnRfYmFzZUBzdGRAQFFFQUFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6Y3R5cGVfYmFzZTo6Y3R5cGVfYmFzZSh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wY3R5cGVfYmFzZUBzdGRAQFFFQUFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6ZG9tYWluX2Vycm9yOjpkb21haW5fZXJyb3IoY2xhc3MgZG9tYWluX2Vycm9yOjpkb21haW5fZXJyb3IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wZG9tYWluX2Vycm9yQHN0ZEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmRvbWFpbl9lcnJvcjo6ZG9tYWluX2Vycm9yKGNsYXNzIGRvbWFpbl9lcnJvcjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBkb21haW5fZXJyb3JAc3RkQEBRRUFBQEFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFAQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBzdGQ6OmxvY2FsZTo6ZmFjZXQ6OmZhY2V0KHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzBmYWNldEBsb2NhbGVAc3RkQEBJRUFBQF9LQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBzdGQ6Omlvc19iYXNlOjppb3NfYmFzZSh2b2lkKSBfX3B0cjY0DQorPz8waW9zX2Jhc2VAc3RkQEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjppb3NfYmFzZTo6aW9zX2Jhc2UoY2xhc3MgaW9zX2Jhc2U6Omlvc19iYXNlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MGlvc19iYXNlQHN0ZEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Omxlbmd0aF9lcnJvcjo6bGVuZ3RoX2Vycm9yKGNsYXNzIGxlbmd0aF9lcnJvcjo6bGVuZ3RoX2Vycm9yIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MGxlbmd0aF9lcnJvckBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpsZW5ndGhfZXJyb3I6Omxlbmd0aF9lcnJvcihjbGFzcyBsZW5ndGhfZXJyb3I6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wbGVuZ3RoX2Vycm9yQHN0ZEBAUUVBQUBBRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAxQEBaDQorOyBwcml2YXRlOiBfX2NkZWNsIHN0ZDo6bG9jYWxlOjpsb2NhbGUoY2xhc3MgbG9jYWxlOjpsb2NhbGU6Ol9Mb2NpbXAgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wbG9jYWxlQHN0ZEBAQUVBQUBQRUFWX0xvY2ltcEAwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bG9jYWxlOjpsb2NhbGUoY2xhc3MgbG9jYWxlOjpsb2NhbGUgY29uc3QgJiBfX3B0cjY0LGNsYXNzIGxvY2FsZTo6bG9jYWxlIGNvbnN0ICYgX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBsb2NhbGVAc3RkQEBRRUFBQEFFQlYwMUAwSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpsb2NhbGU6OmxvY2FsZShjbGFzcyBsb2NhbGU6OmxvY2FsZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBsb2NhbGVAc3RkQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bG9jYWxlOjpsb2NhbGUoY2xhc3MgbG9jYWxlOjpsb2NhbGUgY29uc3QgJiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MGxvY2FsZUBzdGRAQFFFQUFAQUVCVjAxQFBFQkRIQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmxvY2FsZTo6bG9jYWxlKGNoYXIgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MGxvY2FsZUBzdGRAQFFFQUFAUEVCREhAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bG9jYWxlOjpsb2NhbGUoZW51bSBsb2NhbGU6Ol9VbmluaXRpYWxpemVkKSBfX3B0cjY0DQorPz8wbG9jYWxlQHN0ZEBAUUVBQUBXNF9VbmluaXRpYWxpemVkQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmxvY2FsZTo6bG9jYWxlKHZvaWQpIF9fcHRyNjQNCis/PzBsb2NhbGVAc3RkQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpsb2dpY19lcnJvcjo6bG9naWNfZXJyb3IoY2xhc3MgbG9naWNfZXJyb3I6OmxvZ2ljX2Vycm9yIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MGxvZ2ljX2Vycm9yQHN0ZEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmxvZ2ljX2Vycm9yOjpsb2dpY19lcnJvcihjbGFzcyBsb2dpY19lcnJvcjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBsb2dpY19lcnJvckBzdGRAQFFFQUFAQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bWVzc2FnZXNfYmFzZTo6bWVzc2FnZXNfYmFzZSh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wbWVzc2FnZXNfYmFzZUBzdGRAQFFFQUFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bW9uZXlfYmFzZTo6bW9uZXlfYmFzZSh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wbW9uZXlfYmFzZUBzdGRAQFFFQUFAX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6b3N0cnN0cmVhbTo6b3N0cnN0cmVhbShjaGFyICogX19wdHI2NCxfX2ludDY0LGludCkgX19wdHI2NA0KKz8/MG9zdHJzdHJlYW1Ac3RkQEBRRUFBQFBFQURfSkhAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6b3V0X29mX3JhbmdlOjpvdXRfb2ZfcmFuZ2UoY2xhc3Mgb3V0X29mX3JhbmdlOjpvdXRfb2ZfcmFuZ2UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wb3V0X29mX3JhbmdlQHN0ZEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Om91dF9vZl9yYW5nZTo6b3V0X29mX3JhbmdlKGNsYXNzIG91dF9vZl9yYW5nZTo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBvdXRfb2ZfcmFuZ2VAc3RkQEBRRUFBQEFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Om92ZXJmbG93X2Vycm9yOjpvdmVyZmxvd19lcnJvcihjbGFzcyBvdmVyZmxvd19lcnJvcjo6b3ZlcmZsb3dfZXJyb3IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wb3ZlcmZsb3dfZXJyb3JAc3RkQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6b3ZlcmZsb3dfZXJyb3I6Om92ZXJmbG93X2Vycm9yKGNsYXNzIG92ZXJmbG93X2Vycm9yOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MG92ZXJmbG93X2Vycm9yQHN0ZEBAUUVBQUBBRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpyYW5nZV9lcnJvcjo6cmFuZ2VfZXJyb3IoY2xhc3MgcmFuZ2VfZXJyb3I6OnJhbmdlX2Vycm9yIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MHJhbmdlX2Vycm9yQHN0ZEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OnJhbmdlX2Vycm9yOjpyYW5nZV9lcnJvcihjbGFzcyByYW5nZV9lcnJvcjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzByYW5nZV9lcnJvckBzdGRAQFFFQUFAQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6cnVudGltZV9lcnJvcjo6cnVudGltZV9lcnJvcihjbGFzcyBydW50aW1lX2Vycm9yOjpydW50aW1lX2Vycm9yIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MHJ1bnRpbWVfZXJyb3JAc3RkQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6cnVudGltZV9lcnJvcjo6cnVudGltZV9lcnJvcihjbGFzcyBydW50aW1lX2Vycm9yOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MHJ1bnRpbWVfZXJyb3JAc3RkQEBRRUFBQEFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OnN0cnN0cmVhbTo6c3Ryc3RyZWFtKGNoYXIgKiBfX3B0cjY0LF9faW50NjQsaW50KSBfX3B0cjY0DQorPz8wc3Ryc3RyZWFtQHN0ZEBAUUVBQUBQRUFEX0pIQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OnRpbWVfYmFzZTo6dGltZV9iYXNlKHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzB0aW1lX2Jhc2VAc3RkQEBRRUFBQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OnVuZGVyZmxvd19lcnJvcjo6dW5kZXJmbG93X2Vycm9yKGNsYXNzIHVuZGVyZmxvd19lcnJvcjo6dW5kZXJmbG93X2Vycm9yIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MHVuZGVyZmxvd19lcnJvckBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjp1bmRlcmZsb3dfZXJyb3I6OnVuZGVyZmxvd19lcnJvcihjbGFzcyB1bmRlcmZsb3dfZXJyb3I6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wdW5kZXJmbG93X2Vycm9yQHN0ZEBAUUVBQUBBRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAxQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46On5fTXB1bmN0PGNoYXI+KHZvaWQpIF9fcHRyNjQNCis/PzE/JF9NcHVuY3RAREBzdGRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46On5fTXB1bmN0PHVuc2lnbmVkIHNob3J0Pih2b2lkKSBfX3B0cjY0DQorPz8xPyRfTXB1bmN0QEdAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp+YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6fmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZDo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46On5iYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPih2b2lkKSBfX3B0cjY0DQorPz8xPyRiYXNpY19mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpiYXNpY19mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp+YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPih2b2lkKSBfX3B0cjY0DQorPz8xPyRiYXNpY19mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpiYXNpY19pZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46On5iYXNpY19pZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kYmFzaWNfaWZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp+YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kYmFzaWNfaWZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46On5iYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KHZvaWQpIF9fcHRyNjQNCis/PzE/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp+YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KHZvaWQpIF9fcHRyNjQNCis/PzE/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZDo6YmFzaWNfaW9zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp+YmFzaWNfaW9zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KHZvaWQpIF9fcHRyNjQNCis/PzE/JGJhc2ljX2lvc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpiYXNpY19pb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6fmJhc2ljX2lvc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KHZvaWQpIF9fcHRyNjQNCis/PzE/JGJhc2ljX2lvc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6fmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KHZvaWQpIF9fcHRyNjQNCis/PzE/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46On5iYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KHZvaWQpIF9fcHRyNjQNCis/PzE/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojp+YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kYmFzaWNfaXN0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6fmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KHZvaWQpIF9fcHRyNjQNCis/PzE/JGJhc2ljX2lzdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp+YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KHZvaWQpIF9fcHRyNjQNCis/PzE/JGJhc2ljX29mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6fmJhc2ljX29mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KHZvaWQpIF9fcHRyNjQNCis/PzE/JGJhc2ljX29mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6fmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KHZvaWQpIF9fcHRyNjQNCis/PzE/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46On5iYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KHZvaWQpIF9fcHRyNjQNCis/PzE/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojp+YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kYmFzaWNfb3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6fmJhc2ljX29zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KHZvaWQpIF9fcHRyNjQNCis/PzE/JGJhc2ljX29zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6fmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46On5iYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6fmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojp+YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPih2b2lkKSBfX3B0cjY0DQorPz8xPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6fmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46On5iYXNpY19zdHJpbmdidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KHZvaWQpIF9fcHRyNjQNCis/PzE/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojp+YmFzaWNfc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPih2b2lkKSBfX3B0cjY0DQorPz8xPyRiYXNpY19zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6fmJhc2ljX3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kYmFzaWNfc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6OmNvZGVjdnQ8Y2hhcixjaGFyLGludD46On5jb2RlY3Z0PGNoYXIsY2hhcixpbnQ+KHZvaWQpIF9fcHRyNjQNCis/PzE/JGNvZGVjdnRARERIQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6fmNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+KHZvaWQpIF9fcHRyNjQNCis/PzE/JGNvZGVjdnRAR0RIQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpjb2xsYXRlPGNoYXI+Ojp+Y29sbGF0ZTxjaGFyPih2b2lkKSBfX3B0cjY0DQorPz8xPyRjb2xsYXRlQERAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6OmNvbGxhdGU8dW5zaWduZWQgc2hvcnQ+Ojp+Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD4odm9pZCkgX19wdHI2NA0KKz8/MT8kY29sbGF0ZUBHQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpjdHlwZTxjaGFyPjo6fmN0eXBlPGNoYXI+KHZvaWQpIF9fcHRyNjQNCis/PzE/JGN0eXBlQERAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6fmN0eXBlPHVuc2lnbmVkIHNob3J0Pih2b2lkKSBfX3B0cjY0DQorPz8xPyRjdHlwZUBHQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjptZXNzYWdlczxjaGFyPjo6fm1lc3NhZ2VzPGNoYXI+KHZvaWQpIF9fcHRyNjQNCis/PzE/JG1lc3NhZ2VzQERAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pjo6fm1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pih2b2lkKSBfX3B0cjY0DQorPz8xPyRtZXNzYWdlc0BHQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjptb25leV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46On5tb25leV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kbW9uZXlfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjptb25leV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46On5tb25leV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kbW9uZXlfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjptb25leV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46On5tb25leV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjptb25leV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46On5tb25leV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kbW9uZXlfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjptb25leXB1bmN0PGNoYXIsMT46On5tb25leXB1bmN0PGNoYXIsMT4odm9pZCkgX19wdHI2NA0KKz8/MT8kbW9uZXlwdW5jdEBEJDAwQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjptb25leXB1bmN0PGNoYXIsMD46On5tb25leXB1bmN0PGNoYXIsMD4odm9pZCkgX19wdHI2NA0KKz8/MT8kbW9uZXlwdW5jdEBEJDBBQEBzdGRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZDo6bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwxPjo6fm1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMT4odm9pZCkgX19wdHI2NA0KKz8/MT8kbW9uZXlwdW5jdEBHJDAwQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDA+Ojp+bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwwPih2b2lkKSBfX3B0cjY0DQorPz8xPyRtb25leXB1bmN0QEckMEFAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojp+bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPih2b2lkKSBfX3B0cjY0DQorPz8xPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojp+bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPih2b2lkKSBfX3B0cjY0DQorPz8xPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojp+bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPih2b2lkKSBfX3B0cjY0DQorPz8xPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojp+bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPih2b2lkKSBfX3B0cjY0DQorPz8xPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpudW1wdW5jdDxjaGFyPjo6fm51bXB1bmN0PGNoYXI+KHZvaWQpIF9fcHRyNjQNCis/PzE/JG51bXB1bmN0QERAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6Om51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6fm51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pih2b2lkKSBfX3B0cjY0DQorPz8xPyRudW1wdW5jdEBHQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6fnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KHZvaWQpIF9fcHRyNjQNCis/PzE/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6fnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KHZvaWQpIF9fcHRyNjQNCis/PzE/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjp0aW1lX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6fnRpbWVfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KHZvaWQpIF9fcHRyNjQNCis/PzE/JHRpbWVfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjp0aW1lX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6fnRpbWVfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KHZvaWQpIF9fcHRyNjQNCis/PzE/JHRpbWVfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6OkluaXQ6On5Jbml0KHZvaWQpIF9fcHRyNjQNCis/PzFJbml0QGlvc19iYXNlQHN0ZEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6X0xvY2luZm86On5fTG9jaW5mbyh2b2lkKSBfX3B0cjY0DQorPz8xX0xvY2luZm9Ac3RkQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpfTG9ja2l0Ojp+X0xvY2tpdCh2b2lkKSBfX3B0cjY0DQorPz8xX0xvY2tpdEBzdGRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Ol9UaW1ldmVjOjp+X1RpbWV2ZWModm9pZCkgX19wdHI2NA0KKz8/MV9UaW1ldmVjQHN0ZEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6X1dpbml0Ojp+X1dpbml0KHZvaWQpIF9fcHRyNjQNCis/PzFfV2luaXRAc3RkQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6Ol9fbm9uX3J0dGlfb2JqZWN0Ojp+X19ub25fcnR0aV9vYmplY3Qodm9pZCkgX19wdHI2NA0KKz8/MV9fbm9uX3J0dGlfb2JqZWN0QHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpiYWRfYWxsb2M6On5iYWRfYWxsb2Modm9pZCkgX19wdHI2NA0KKz8/MWJhZF9hbGxvY0BzdGRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZDo6YmFkX2Nhc3Q6On5iYWRfY2FzdCh2b2lkKSBfX3B0cjY0DQorPz8xYmFkX2Nhc3RAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6OmJhZF9leGNlcHRpb246On5iYWRfZXhjZXB0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFiYWRfZXhjZXB0aW9uQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpiYWRfdHlwZWlkOjp+YmFkX3R5cGVpZCh2b2lkKSBfX3B0cjY0DQorPz8xYmFkX3R5cGVpZEBzdGRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZDo6Y29kZWN2dF9iYXNlOjp+Y29kZWN2dF9iYXNlKHZvaWQpIF9fcHRyNjQNCis/PzFjb2RlY3Z0X2Jhc2VAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6OmN0eXBlX2Jhc2U6On5jdHlwZV9iYXNlKHZvaWQpIF9fcHRyNjQNCis/PzFjdHlwZV9iYXNlQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpkb21haW5fZXJyb3I6On5kb21haW5fZXJyb3Iodm9pZCkgX19wdHI2NA0KKz8/MWRvbWFpbl9lcnJvckBzdGRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZDo6bG9jYWxlOjpmYWNldDo6fmZhY2V0KHZvaWQpIF9fcHRyNjQNCis/PzFmYWNldEBsb2NhbGVAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6Omlvc19iYXNlOjp+aW9zX2Jhc2Uodm9pZCkgX19wdHI2NA0KKz8/MWlvc19iYXNlQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjppc3Ryc3RyZWFtOjp+aXN0cnN0cmVhbSh2b2lkKSBfX3B0cjY0DQorPz8xaXN0cnN0cmVhbUBzdGRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZDo6bGVuZ3RoX2Vycm9yOjp+bGVuZ3RoX2Vycm9yKHZvaWQpIF9fcHRyNjQNCis/PzFsZW5ndGhfZXJyb3JAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpsb2NhbGU6On5sb2NhbGUodm9pZCkgX19wdHI2NA0KKz8/MWxvY2FsZUBzdGRAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZDo6bG9naWNfZXJyb3I6On5sb2dpY19lcnJvcih2b2lkKSBfX3B0cjY0DQorPz8xbG9naWNfZXJyb3JAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6Om1lc3NhZ2VzX2Jhc2U6On5tZXNzYWdlc19iYXNlKHZvaWQpIF9fcHRyNjQNCis/PzFtZXNzYWdlc19iYXNlQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjptb25leV9iYXNlOjp+bW9uZXlfYmFzZSh2b2lkKSBfX3B0cjY0DQorPz8xbW9uZXlfYmFzZUBzdGRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZDo6b3N0cnN0cmVhbTo6fm9zdHJzdHJlYW0odm9pZCkgX19wdHI2NA0KKz8/MW9zdHJzdHJlYW1Ac3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6Om91dF9vZl9yYW5nZTo6fm91dF9vZl9yYW5nZSh2b2lkKSBfX3B0cjY0DQorPz8xb3V0X29mX3JhbmdlQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpvdmVyZmxvd19lcnJvcjo6fm92ZXJmbG93X2Vycm9yKHZvaWQpIF9fcHRyNjQNCis/PzFvdmVyZmxvd19lcnJvckBzdGRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZDo6cmFuZ2VfZXJyb3I6On5yYW5nZV9lcnJvcih2b2lkKSBfX3B0cjY0DQorPz8xcmFuZ2VfZXJyb3JAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6OnJ1bnRpbWVfZXJyb3I6On5ydW50aW1lX2Vycm9yKHZvaWQpIF9fcHRyNjQNCis/PzFydW50aW1lX2Vycm9yQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjpzdHJzdHJlYW06On5zdHJzdHJlYW0odm9pZCkgX19wdHI2NA0KKz8/MXN0cnN0cmVhbUBzdGRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIHN0ZDo6c3Ryc3RyZWFtYnVmOjp+c3Ryc3RyZWFtYnVmKHZvaWQpIF9fcHRyNjQNCis/PzFzdHJzdHJlYW1idWZAc3RkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzdGQ6OnRpbWVfYmFzZTo6fnRpbWVfYmFzZSh2b2lkKSBfX3B0cjY0DQorPz8xdGltZV9iYXNlQHN0ZEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgc3RkOjp1bmRlcmZsb3dfZXJyb3I6On51bmRlcmZsb3dfZXJyb3Iodm9pZCkgX19wdHI2NA0KKz8/MXVuZGVyZmxvd19lcnJvckBzdGRAQFVFQUFAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfQ29tcGxleF9iYXNlPGZsb2F0PiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpfQ29tcGxleF9iYXNlPGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JF9Db21wbGV4X2Jhc2VATUBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxkb3VibGU+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6X0NvbXBsZXhfYmFzZTxkb3VibGU+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRfQ29tcGxleF9iYXNlQE5Ac3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9Db21wbGV4X2Jhc2U8bG9uZyBkb3VibGU+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Ol9Db21wbGV4X2Jhc2U8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kX0NvbXBsZXhfYmFzZUBPQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfQ3RyPGZsb2F0PiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Ol9DdHI8ZmxvYXQ+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpfQ3RyPGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JF9DdHJATUBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0N0cjxkb3VibGU+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpfQ3RyPGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRfQ3RyQE5Ac3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kX0N0ckBPQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjphbGxvY2F0b3I8dm9pZD4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjphbGxvY2F0b3I8dm9pZD46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmFsbG9jYXRvcjx2b2lkPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JGFsbG9jYXRvckBYQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRiYXNpY19mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JGJhc2ljX2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kYmFzaWNfaWZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kYmFzaWNfaWZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kYmFzaWNfaW9zQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaW9zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaW9zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRiYXNpY19pb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaW9zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfaW9zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRiYXNpY19pb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kYmFzaWNfaXN0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JGJhc2ljX2lzdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRiYXNpY19vZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRiYXNpY19vZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kYmFzaWNfb3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JGJhc2ljX29zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6b3BlcmF0b3I9KGNoYXIpIF9fcHRyNjQNCis/PzQ/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQUFFQVYwMUBEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6b3BlcmF0b3I9KGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFBRUFWMDFAUEVCREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPSh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz8/ND8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBQUVBVjAxQEdAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFWMDFAUEVCR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRiYXNpY19zdHJpbmdidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRiYXNpY19zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRiYXNpY19zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj46Om9wZXJhdG9yPShzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JGNoYXJfdHJhaXRzQERAc3RkQEBRRUFBQUVBVTAxQEFFQlUwMUBAWg0KKzsgcHVibGljOiBzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD46Om9wZXJhdG9yPShzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRjaGFyX3RyYWl0c0BHQHN0ZEBAUUVBQUFFQVUwMUBBRUJVMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmNvbXBsZXg8ZmxvYXQ+OjpvcGVyYXRvcj0oZmxvYXQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRjb21wbGV4QE1Ac3RkQEBRRUFBQUVBVjAxQEFFQk1AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6Y29tcGxleDxmbG9hdD46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kY29tcGxleEBNQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpjb21wbGV4PGRvdWJsZT46Om9wZXJhdG9yPShkb3VibGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRjb21wbGV4QE5Ac3RkQEBRRUFBQUVBVjAxQEFFQk5AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmNvbXBsZXg8ZG91YmxlPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kY29tcGxleEBOQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+OjpvcGVyYXRvcj0obG9uZyBkb3VibGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRjb21wbGV4QE9Ac3RkQEBRRUFBQUVBVjAxQEFFQk9AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kY29tcGxleEBPQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czxzaWduZWQgY2hhcj4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxzaWduZWQgY2hhcj46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPHNpZ25lZCBjaGFyPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JG51bWVyaWNfbGltaXRzQENAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPGNoYXI+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hhcj46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPGNoYXI+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kbnVtZXJpY19saW1pdHNAREBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgY2hhcj4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBjaGFyPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgY2hhcj4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRudW1lcmljX2xpbWl0c0BFQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czxzaG9ydD4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxzaG9ydD46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPHNob3J0PiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JG51bWVyaWNfbGltaXRzQEZAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIHNob3J0PiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIHNob3J0Pjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgc2hvcnQ+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kbnVtZXJpY19saW1pdHNAR0BzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50PiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPGludD4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRudW1lcmljX2xpbWl0c0BIQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBpbnQ+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgaW50Pjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgaW50PiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JG51bWVyaWNfbGltaXRzQElAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmc+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZz46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmc+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kbnVtZXJpY19saW1pdHNASkBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgbG9uZz4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBsb25nPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgbG9uZz4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRudW1lcmljX2xpbWl0c0BLQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JG51bWVyaWNfbGltaXRzQE1Ac3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kbnVtZXJpY19saW1pdHNATkBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBkb3VibGU+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBkb3VibGU+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRudW1lcmljX2xpbWl0c0BPQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czxib29sPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGJvb2w+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czxib29sPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JG51bWVyaWNfbGltaXRzQF9OQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppb3NfYmFzZTo6SW5pdCAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Omlvc19iYXNlOjpJbml0OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjppb3NfYmFzZTo6SW5pdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRJbml0QGlvc19iYXNlQHN0ZEBAUUVBQUFFQVYwMTJAQUVCVjAxMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9Mb2NpbmZvICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6X0xvY2luZm86Om9wZXJhdG9yPShjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NF9Mb2NpbmZvQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfTG9ja2l0ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6X0xvY2tpdDo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6X0xvY2tpdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRfTG9ja2l0QHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogc3RydWN0IHN0ZDo6X051bV9iYXNlICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6X051bV9iYXNlOjpvcGVyYXRvcj0oc3RydWN0IHN0ZDo6X051bV9iYXNlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NF9OdW1fYmFzZUBzdGRAQFFFQUFBRUFVMDFAQUVCVTAxQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBzdGQ6Ol9OdW1fZmxvYXRfYmFzZSAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Ol9OdW1fZmxvYXRfYmFzZTo6b3BlcmF0b3I9KHN0cnVjdCBzdGQ6Ol9OdW1fZmxvYXRfYmFzZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRfTnVtX2Zsb2F0X2Jhc2VAc3RkQEBRRUFBQUVBVTAxQEFFQlUwMUBAWg0KKzsgcHVibGljOiBzdHJ1Y3Qgc3RkOjpfTnVtX2ludF9iYXNlICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6X051bV9pbnRfYmFzZTo6b3BlcmF0b3I9KHN0cnVjdCBzdGQ6Ol9OdW1faW50X2Jhc2UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80X051bV9pbnRfYmFzZUBzdGRAQFFFQUFBRUFVMDFAQUVCVTAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X1RpbWV2ZWMgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpfVGltZXZlYzo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6X1RpbWV2ZWMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80X1RpbWV2ZWNAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9XaW5pdCAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Ol9XaW5pdDo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6X1dpbml0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NF9XaW5pdEBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X19ub25fcnR0aV9vYmplY3QgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpfX25vbl9ydHRpX29iamVjdDo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6X19ub25fcnR0aV9vYmplY3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80X19ub25fcnR0aV9vYmplY3RAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhZF9hbGxvYyAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhZF9hbGxvYzo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFkX2FsbG9jIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NGJhZF9hbGxvY0BzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFkX2Nhc3QgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYWRfY2FzdDo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFkX2Nhc3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80YmFkX2Nhc3RAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhZF9leGNlcHRpb24gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYWRfZXhjZXB0aW9uOjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYWRfZXhjZXB0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NGJhZF9leGNlcHRpb25Ac3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhZF90eXBlaWQgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYWRfdHlwZWlkOjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYWRfdHlwZWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NGJhZF90eXBlaWRAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmRvbWFpbl9lcnJvciAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmRvbWFpbl9lcnJvcjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6ZG9tYWluX2Vycm9yIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NGRvbWFpbl9lcnJvckBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmxvY2FsZTo6aWQ6Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80aWRAbG9jYWxlQHN0ZEBAUUVBQUFFQVYwMTJAQUVCVjAxMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6Om9wZXJhdG9yPShjbGFzcyBzdGQ6Omlvc19iYXNlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NGlvc19iYXNlQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsZW5ndGhfZXJyb3IgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpsZW5ndGhfZXJyb3I6Om9wZXJhdG9yPShjbGFzcyBzdGQ6Omxlbmd0aF9lcnJvciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRsZW5ndGhfZXJyb3JAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmxvY2FsZSAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmxvY2FsZTo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NGxvY2FsZUBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bG9naWNfZXJyb3IgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpsb2dpY19lcnJvcjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bG9naWNfZXJyb3IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80bG9naWNfZXJyb3JAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om91dF9vZl9yYW5nZSAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om91dF9vZl9yYW5nZTo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6b3V0X29mX3JhbmdlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NG91dF9vZl9yYW5nZUBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3ZlcmZsb3dfZXJyb3IgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpvdmVyZmxvd19lcnJvcjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6b3ZlcmZsb3dfZXJyb3IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80b3ZlcmZsb3dfZXJyb3JAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJhbmdlX2Vycm9yICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6cmFuZ2VfZXJyb3I6Om9wZXJhdG9yPShjbGFzcyBzdGQ6OnJhbmdlX2Vycm9yIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NHJhbmdlX2Vycm9yQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpydW50aW1lX2Vycm9yICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6cnVudGltZV9lcnJvcjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6cnVudGltZV9lcnJvciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRydW50aW1lX2Vycm9yQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjp1bmRlcmZsb3dfZXJyb3IgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjp1bmRlcmZsb3dfZXJyb3I6Om9wZXJhdG9yPShjbGFzcyBzdGQ6OnVuZGVyZmxvd19lcnJvciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzR1bmRlcmZsb3dfZXJyb3JAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPj4oc2hvcnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz81PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBBRUFGQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj4+KHVuc2lnbmVkIHNob3J0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NT8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMDFAQUVBR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I+PihpbnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz81PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBBRUFIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj4+KHVuc2lnbmVkIGludCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEFFQUlAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPj4obG9uZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEFFQUpAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPj4odW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEFFQUtAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPj4oZmxvYXQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz81PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBBRUFNQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj4+KGRvdWJsZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEFFQU5AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPj4obG9uZyBkb3VibGUgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz81PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBBRUFPQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj4+KHZvaWQgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NT8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMDFAQUVBUEVBWEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I+PihfX2ludDY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NT8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMDFAQUVBX0pAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPj4odW5zaWduZWQgX19pbnQ2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEFFQV9LQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj4+KGJvb2wgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz81PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBBRUFfTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCAoX19jZGVjbCopKGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0KSkgX19wdHI2NA0KKz8/NT8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMDFAUDZBQUVBVjAxQEFFQVYwMUBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IChfX2NkZWNsKikoY2xhc3Mgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCkpIF9fcHRyNjQNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQFA2QUFFQVY/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEFFQVYyMUBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCAoX19jZGVjbCopKGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0KSkgX19wdHI2NA0KKz8/NT8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMDFAUDZBQUVBVmlvc19iYXNlQDFAQUVBVjIxQEBaQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQFBFQVY/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPj4oc2hvcnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBBRUFGQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I+Pih1bnNpZ25lZCBzaG9ydCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzU/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEFFQUdAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj4+KGludCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzU/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEFFQUhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj4+KHVuc2lnbmVkIGludCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzU/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEFFQUlAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj4+KGxvbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBBRUFKQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I+Pih1bnNpZ25lZCBsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NT8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMDFAQUVBS0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPj4oZmxvYXQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBBRUFNQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I+Pihkb3VibGUgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBBRUFOQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I+Pihsb25nIGRvdWJsZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzU/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEFFQU9AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj4+KHZvaWQgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NT8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMDFAQUVBUEVBWEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPj4oX19pbnQ2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzU/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEFFQV9KQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I+Pih1bnNpZ25lZCBfX2ludDY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NT8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMDFAQUVBX0tAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj4+KGJvb2wgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBBRUFfTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCAoX19jZGVjbCopKGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQpKSBfX3B0cjY0DQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBQNkFBRUFWMDFAQUVBVjAxQEBaQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgKF9fY2RlY2wqKShjbGFzcyBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQpKSBfX3B0cjY0DQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBQNkFBRUFWPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBBRUFWMjFAQFpAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0IChfX2NkZWNsKikoY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQpKSBfX3B0cjY0DQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBQNkFBRUFWaW9zX2Jhc2VAMUBBRUFWMjFAQFpAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICogX19wdHI2NCkgX19wdHI2NA0KKz8/NT8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMDFAUEVBVj8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0LHNpZ25lZCBjaGFyICYgX19wdHI2NCkNCis/PzVzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBBRUFDQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0LGNoYXIgJiBfX3B0cjY0KQ0KKz8/NXN0ZEBAWUFBRUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUVBVjEwQEFFQURAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQsdW5zaWduZWQgY2hhciAmIF9fcHRyNjQpDQorPz81c3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBRUFWMTBAQUVBRUBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3B0cjY0KQ0KKz8/NXN0ZEBAWUFBRUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUVBVjEwQEFFQVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gJiBfX3B0cjY0KQ0KKz8/NXN0ZEBAWUFBRUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUVBVjEwQEFFQVY/JGNvbXBsZXhATUAwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAmIF9fcHRyNjQpDQorPz81c3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBRUFWMTBAQUVBVj8kY29tcGxleEBOQDBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gJiBfX3B0cjY0KQ0KKz8/NXN0ZEBAWUFBRUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUVBVjEwQEFFQVY/JGNvbXBsZXhAT0AwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCxzaWduZWQgY2hhciAqIF9fcHRyNjQpDQorPz81c3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBRUFWMTBAUEVBQ0BaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCxjaGFyICogX19wdHI2NCkNCis/PzVzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBQRUFEQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KQ0KKz8/NXN0ZEBAWUFBRUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUVBVjEwQFBFQUVAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICYgX19wdHI2NCkNCis/PzVzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBBRUFHQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0KQ0KKz8/NXN0ZEBAWUFBRUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUVBVjEwQEFFQVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICYgX19wdHI2NCkNCis/PzVzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBBRUFWPyRjb21wbGV4QE1AMEBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICYgX19wdHI2NCkNCis/PzVzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBBRUFWPyRjb21wbGV4QE5AMEBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gJiBfX3B0cjY0KQ0KKz8/NXN0ZEBAWUFBRUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUVBVjEwQEFFQVY/JGNvbXBsZXhAT0AwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQsc2hvcnQgKiBfX3B0cjY0KQ0KKz8/NXN0ZEBAWUFBRUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUVBVjEwQFBFQUZAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/PzVzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBQRUFHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcjw8KHNob3J0KSBfX3B0cjY0DQorPz82PyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBGQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcjw8KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorPz82PyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcjw8KGludCkgX19wdHI2NA0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMDFASEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PCh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQElAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPDwobG9uZykgX19wdHI2NA0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMDFASkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz82PyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBLQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcjw8KGZsb2F0KSBfX3B0cjY0DQorPz82PyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBNQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcjw8KGRvdWJsZSkgX19wdHI2NA0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMDFATkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PChsb25nIGRvdWJsZSkgX19wdHI2NA0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMDFAT0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCAoX19jZGVjbCopKGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0KSkgX19wdHI2NA0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMDFAUDZBQUVBVjAxQEFFQVYwMUBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IChfX2NkZWNsKikoY2xhc3Mgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCkpIF9fcHRyNjQNCis/PzY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQFA2QUFFQVY/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEFFQVYyMUBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCAoX19jZGVjbCopKGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0KSkgX19wdHI2NA0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMDFAUDZBQUVBVmlvc19iYXNlQDFAQUVBVjIxQEBaQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQFBFQVY/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PCh2b2lkIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMDFAUEVCWEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PChfX2ludDY0KSBfX3B0cjY0DQorPz82PyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBfSkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PCh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz82PyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBfS0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PChib29sKSBfX3B0cjY0DQorPz82PyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBfTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPDwoc2hvcnQpIF9fcHRyNjQNCis/PzY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEZAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcjw8KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorPz82PyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I8PChpbnQpIF9fcHRyNjQNCis/PzY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcjw8KHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMDFASUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPDwobG9uZykgX19wdHI2NA0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMDFASkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPDwodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMDFAS0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPDwoZmxvYXQpIF9fcHRyNjQNCis/PzY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQE1AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcjw8KGRvdWJsZSkgX19wdHI2NA0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMDFATkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPDwobG9uZyBkb3VibGUpIF9fcHRyNjQNCis/PzY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQE9AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgKF9fY2RlY2wqKShjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0KSkgX19wdHI2NA0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMDFAUDZBQUVBVjAxQEFFQVYwMUBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IChfX2NkZWNsKikoY2xhc3Mgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0KSkgX19wdHI2NA0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMDFAUDZBQUVBVj8kYmFzaWNfaW9zQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAQUVBVjIxQEBaQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCAoX19jZGVjbCopKGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0KSkgX19wdHI2NA0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMDFAUDZBQUVBVmlvc19iYXNlQDFAQUVBVjIxQEBaQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQFBFQVY/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPDwodm9pZCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQFBFQlhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcjw8KF9faW50NjQpIF9fcHRyNjQNCis/PzY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQF9KQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I8PCh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz82PyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBfS0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPDwoYm9vbCkgX19wdHI2NA0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMDFAX05AWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCkNCis/PzZzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBBRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCkNCis/PzZzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBBRUJWPyRjb21wbGV4QE1AMEBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/NnN0ZEBAWUFBRUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUVBVjEwQEFFQlY/JGNvbXBsZXhATkAwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/PzZzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBBRUJWPyRjb21wbGV4QE9AMEBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQsc2lnbmVkIGNoYXIpDQorPz82c3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBRUFWMTBAQ0BaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCxjaGFyKQ0KKz8/NnN0ZEBAWUFBRUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUVBVjEwQERAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQsdW5zaWduZWQgY2hhcikNCis/PzZzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBFQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0LHNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCkNCis/PzZzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFFQVYxMEBQRUJDQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0KQ0KKz8/NnN0ZEBAWUFBRUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUVBVjEwQFBFQkRAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpDQorPz82c3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBRUFWMTBAUEVCRUBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCkNCis/PzZzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBBRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpDQorPz82c3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBRUFWMTBAQUVCVj8kY29tcGxleEBNQDBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorPz82c3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBRUFWMTBAQUVCVj8kY29tcGxleEBOQDBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/PzZzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBBRUJWPyRjb21wbGV4QE9AMEBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0KQ0KKz8/NnN0ZEBAWUFBRUFWPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUVBVjEwQEdAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0LHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/PzZzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFFQVYxMEBQRUJGQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorPz82c3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBRUFWMTBAUEVCR0BaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBzdGQ6Omlvc19iYXNlOjpvcGVyYXRvciEodm9pZCljb25zdCAgX19wdHI2NA0KKz8/N2lvc19iYXNlQHN0ZEBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIHN0ZDo6bG9jYWxlOjpvcGVyYXRvcj09KGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OGxvY2FsZUBzdGRAQFFFQkFfTkFFQlYwMUBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PShmbG9hdCBjb25zdCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpDQorPz84c3RkQEBZQV9OQUVCTUFFQlY/JGNvbXBsZXhATUAwQEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj09KGRvdWJsZSBjb25zdCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/OHN0ZEBAWUFfTkFFQk5BRUJWPyRjb21wbGV4QE5AMEBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PShsb25nIGRvdWJsZSBjb25zdCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorPz84c3RkQEBZQV9OQUVCT0FFQlY/JGNvbXBsZXhAT0AwQEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj09KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCkNCis/PzhzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQDBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0KQ0KKz8/OHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEVCREBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj09KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCkNCis/PzhzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQDBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/PzhzdGRAQFlBX05BRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQFBFQkdAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PShjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCkNCis/PzhzdGRAQFlBX05BRUJWPyRjb21wbGV4QE1AMEAwQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPT0oY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQsZmxvYXQgY29uc3QgJiBfX3B0cjY0KQ0KKz8/OHN0ZEBAWUFfTkFFQlY/JGNvbXBsZXhATUAwQEFFQk1AWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PShjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/OHN0ZEBAWUFfTkFFQlY/JGNvbXBsZXhATkAwQDBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PShjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQsZG91YmxlIGNvbnN0ICYgX19wdHI2NCkNCis/PzhzdGRAQFlBX05BRUJWPyRjb21wbGV4QE5AMEBBRUJOQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPT0oY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorPz84c3RkQEBZQV9OQUVCVj8kY29tcGxleEBPQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj09KGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0LGxvbmcgZG91YmxlIGNvbnN0ICYgX19wdHI2NCkNCis/PzhzdGRAQFlBX05BRUJWPyRjb21wbGV4QE9AMEBBRUJPQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPT0oY2hhciBjb25zdCAqIF9fcHRyNjQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCkNCis/PzhzdGRAQFlBX05QRUJEQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCkNCis/PzhzdGRAQFlBX05QRUJHQUVCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgc3RkOjpsb2NhbGU6Om9wZXJhdG9yIT0oY2xhc3Mgc3RkOjpsb2NhbGUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz85bG9jYWxlQHN0ZEBAUUVCQV9OQUVCVjAxQEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvciE9KGZsb2F0IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCkNCis/PzlzdGRAQFlBX05BRUJNQUVCVj8kY29tcGxleEBNQDBAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yIT0oZG91YmxlIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorPz85c3RkQEBZQV9OQUVCTkFFQlY/JGNvbXBsZXhATkAwQEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvciE9KGxvbmcgZG91YmxlIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/PzlzdGRAQFlBX05BRUJPQUVCVj8kY29tcGxleEBPQDBAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yIT0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/OXN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvciE9KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpDQorPz85c3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBQRUJEQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yIT0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/OXN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvciE9KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz8/OXN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAUEVCR0BaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvciE9KGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/OXN0ZEBAWUFfTkFFQlY/JGNvbXBsZXhATUAwQDBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IhPShjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCxmbG9hdCBjb25zdCAmIF9fcHRyNjQpDQorPz85c3RkQEBZQV9OQUVCVj8kY29tcGxleEBNQDBAQUVCTUBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvciE9KGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorPz85c3RkQEBZQV9OQUVCVj8kY29tcGxleEBOQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvciE9KGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCxkb3VibGUgY29uc3QgJiBfX3B0cjY0KQ0KKz8/OXN0ZEBAWUFfTkFFQlY/JGNvbXBsZXhATkAwQEFFQk5AWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IhPShjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/PzlzdGRAQFlBX05BRUJWPyRjb21wbGV4QE9AMEAwQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yIT0oY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQsbG9uZyBkb3VibGUgY29uc3QgJiBfX3B0cjY0KQ0KKz8/OXN0ZEBAWUFfTkFFQlY/JGNvbXBsZXhAT0AwQEFFQk9AWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IhPShjaGFyIGNvbnN0ICogX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/OXN0ZEBAWUFfTlBFQkRBRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvciE9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/OXN0ZEBAWUFfTlBFQkdBRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEBaDQorOyBwdWJsaWM6IGNoYXIgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpvcGVyYXRvcltdKHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/P0E/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQUFFQURfS0BaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpvcGVyYXRvcltdKHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/P0E/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVCQUFFQkRfS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3JbXSh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz9BPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFHX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yW10odW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz8/QT8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUJBQUVCR19LQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmxvY2FsZTo6aWQ6Om9wZXJhdG9yIHVuc2lnbmVkIF9faW50NjQodm9pZCkgX19wdHI2NA0KKz8/QmlkQGxvY2FsZUBzdGRAQFFFQUFfS1haDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjppb3NfYmFzZTo6b3BlcmF0b3Igdm9pZCAqIF9fcHRyNjQodm9pZCljb25zdCAgX19wdHI2NA0KKz8/Qmlvc19iYXNlQHN0ZEBAUUVCQVBFQVhYWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKihmbG9hdCBjb25zdCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpDQorPz9Ec3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUVCTUFFQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKihjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCkNCis/P0RzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAMEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IqKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJiBfX3B0cjY0LGZsb2F0IGNvbnN0ICYgX19wdHI2NCkNCis/P0RzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAQUVCTUBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKihkb3VibGUgY29uc3QgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/P0RzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJOQUVCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKihjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/RHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFFQlYxMEAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IqKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCxkb3VibGUgY29uc3QgJiBfX3B0cjY0KQ0KKz8/RHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFFQlYxMEBBRUJOQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcioobG9uZyBkb3VibGUgY29uc3QgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/RHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFFQk9BRUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvciooY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorPz9Ec3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUVCVjEwQDBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKihjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCxsb25nIGRvdWJsZSBjb25zdCAmIF9fcHRyNjQpDQorPz9Ec3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUVCVjEwQEFFQk9AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLShmbG9hdCBjb25zdCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpDQorPz9Hc3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUVCTUFFQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLShjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCkNCis/P0dzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAMEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3ItKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/R3N0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLShjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCxmbG9hdCBjb25zdCAmIF9fcHRyNjQpDQorPz9Hc3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUVCVjEwQEFFQk1AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci0oZG91YmxlIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorPz9Hc3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUVCTkFFQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci0oY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/P0dzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAMEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLShjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorPz9Hc3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUVCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLShjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQsZG91YmxlIGNvbnN0ICYgX19wdHI2NCkNCis/P0dzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAQUVCTkBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3ItKGxvbmcgZG91YmxlIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/P0dzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBRUJPQUVCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3ItKGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/R3N0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci0oY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorPz9Hc3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUVCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3ItKGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0LGxvbmcgZG91YmxlIGNvbnN0ICYgX19wdHI2NCkNCis/P0dzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAQUVCT0BaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/SHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQUVCVjEwQDBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQsY2hhcikNCis/P0hzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEFFQlYxMEBEQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0KQ0KKz8/SHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQUVCVjEwQFBFQkRAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGNoYXIsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCkNCis/P0hzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQERBRUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhjaGFyIGNvbnN0ICogX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/SHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEVCREFFQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCkNCis/P0hzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEFFQlYxMEAwQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0KQ0KKz8/SHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQUVCVjEwQEdAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz8/SHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQUVCVjEwQFBFQkdAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpDQorPz9Ic3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBHQUVCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpDQorPz9Ic3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBQRUJHQUVCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGZsb2F0IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCkNCis/P0hzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBRUJNQUVCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/SHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFFQlYxMEAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpDQorPz9Ic3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUVCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJiBfX3B0cjY0LGZsb2F0IGNvbnN0ICYgX19wdHI2NCkNCis/P0hzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBRUJWMTBAQUVCTUBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhkb3VibGUgY29uc3QgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/P0hzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJOQUVCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/SHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFFQlYxMEAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/P0hzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCxkb3VibGUgY29uc3QgJiBfX3B0cjY0KQ0KKz8/SHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFFQlYxMEBBRUJOQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisobG9uZyBkb3VibGUgY29uc3QgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/SHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFFQk9BRUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorPz9Ic3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUVCVjEwQDBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/P0hzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBRUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQsbG9uZyBkb3VibGUgY29uc3QgJiBfX3B0cjY0KQ0KKz8/SHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEBBRUJPQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci8oZmxvYXQgY29uc3QgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/S3N0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFFQk1BRUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci8oY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpDQorPz9Lc3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUVCVjEwQDBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCxmbG9hdCBjb25zdCAmIF9fcHRyNjQpDQorPz9Lc3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUVCVjEwQEFFQk1AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci8oZG91YmxlIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorPz9Lc3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUVCTkFFQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci8oY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/P0tzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAMEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQsZG91YmxlIGNvbnN0ICYgX19wdHI2NCkNCis/P0tzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBRUJWMTBAQUVCTkBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IvKGxvbmcgZG91YmxlIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/P0tzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBRUJPQUVCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IvKGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/S3N0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci8oY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQsbG9uZyBkb3VibGUgY29uc3QgJiBfX3B0cjY0KQ0KKz8/S3N0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFFQlYxMEBBRUJPQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPChjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpDQorPz9Nc3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEAwQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPChjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0KQ0KKz8/TXN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEVCREBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjwoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/TXN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjwoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorPz9Nc3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBQRUJHQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPChjaGFyIGNvbnN0ICogX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/TXN0ZEBAWUFfTlBFQkRBRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjwodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpDQorPz9Nc3RkQEBZQV9OUEVCR0FFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPD0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/TnN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw9KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpDQorPz9Oc3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBQRUJEQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPD0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/TnN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw9KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz8/TnN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAUEVCR0BaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw9KGNoYXIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpDQorPz9Oc3RkQEBZQV9OUEVCREFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPD0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpDQorPz9Oc3RkQEBZQV9OUEVCR0FFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpDQorPz9Pc3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEAwQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0KQ0KKz8/T3N0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEVCREBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/T3N0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorPz9Pc3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBQRUJHQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPihjaGFyIGNvbnN0ICogX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/T3N0ZEBAWUFfTlBFQkRBRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpDQorPz9Pc3RkQEBZQV9OUEVCR0FFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/UHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj49KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpDQorPz9Qc3RkQEBZQV9OQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBQRUJEQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/UHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj49KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz8/UHN0ZEBAWUFfTkFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAUEVCR0BaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj49KGNoYXIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpDQorPz9Qc3RkQEBZQV9OUEVCREFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpDQorPz9Qc3RkQEBZQV9OUEVCR0FFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIHN0ZDo6bG9jYWxlOjpvcGVyYXRvcigpKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/UmxvY2FsZUBzdGRAQFFFQkFfTkFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFAMEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxmbG9hdD4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpfQ29tcGxleF9iYXNlPGZsb2F0Pjo6b3BlcmF0b3IqPShmbG9hdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/P1g/JF9Db21wbGV4X2Jhc2VATUBzdGRAQFFFQUFBRUFWMDFAQUVCTUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxkb3VibGU+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6X0NvbXBsZXhfYmFzZTxkb3VibGU+OjpvcGVyYXRvcio9KGRvdWJsZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/P1g/JF9Db21wbGV4X2Jhc2VATkBzdGRAQFFFQUFBRUFWMDFAQUVCTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpfQ29tcGxleF9iYXNlPGxvbmcgZG91YmxlPjo6b3BlcmF0b3IqPShsb25nIGRvdWJsZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/P1g/JF9Db21wbGV4X2Jhc2VAT0BzdGRAQFFFQUFBRUFWMDFAQUVCT0BaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IqPShjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCkNCis/P1hzdGRAQFlBQUVBVj8kY29tcGxleEBNQDBAQUVBVjEwQEFFQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpvcGVyYXRvcio9KGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorPz9Yc3RkQEBZQUFFQVY/JGNvbXBsZXhATkAwQEFFQVYxMEBBRUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpvcGVyYXRvcio9KGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/WHN0ZEBAWUFBRUFWPyRjb21wbGV4QE9AMEBBRUFWMTBAQUVCVjEwQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxmbG9hdD4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpfQ29tcGxleF9iYXNlPGZsb2F0Pjo6b3BlcmF0b3IrPShmbG9hdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/P1k/JF9Db21wbGV4X2Jhc2VATUBzdGRAQFFFQUFBRUFWMDFAQUVCTUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxkb3VibGU+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6X0NvbXBsZXhfYmFzZTxkb3VibGU+OjpvcGVyYXRvcis9KGRvdWJsZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/P1k/JF9Db21wbGV4X2Jhc2VATkBzdGRAQFFFQUFBRUFWMDFAQUVCTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpfQ29tcGxleF9iYXNlPGxvbmcgZG91YmxlPjo6b3BlcmF0b3IrPShsb25nIGRvdWJsZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/P1k/JF9Db21wbGV4X2Jhc2VAT0BzdGRAQFFFQUFBRUFWMDFAQUVCT0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Om9wZXJhdG9yKz0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/WT8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpvcGVyYXRvcis9KGNoYXIpIF9fcHRyNjQNCis/P1k/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQUFFQVYwMUBEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6b3BlcmF0b3IrPShjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/WT8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjAxQFBFQkRAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcis9KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/P1k/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3IrPSh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz8/WT8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBQUVBVjAxQEdAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcis9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/WT8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBQUVBVjAxQFBFQkdAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKz0oY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpDQorPz9Zc3RkQEBZQUFFQVY/JGNvbXBsZXhATUAwQEFFQVYxMEBBRUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrPShjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/WXN0ZEBAWUFBRUFWPyRjb21wbGV4QE5AMEBBRUFWMTBAQUVCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrPShjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/P1lzdGRAQFlBQUVBVj8kY29tcGxleEBPQDBAQUVBVjEwQEFFQlYxMEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6X0NvbXBsZXhfYmFzZTxmbG9hdD46Om9wZXJhdG9yLT0oZmxvYXQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz9aPyRfQ29tcGxleF9iYXNlQE1Ac3RkQEBRRUFBQUVBVjAxQEFFQk1AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZG91YmxlPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZG91YmxlPjo6b3BlcmF0b3ItPShkb3VibGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz9aPyRfQ29tcGxleF9iYXNlQE5Ac3RkQEBRRUFBQUVBVjAxQEFFQk5AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9Db21wbGV4X2Jhc2U8bG9uZyBkb3VibGU+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT46Om9wZXJhdG9yLT0obG9uZyBkb3VibGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz9aPyRfQ29tcGxleF9iYXNlQE9Ac3RkQEBRRUFBQUVBVjAxQEFFQk9AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLT0oY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpDQorPz9ac3RkQEBZQUFFQVY/JGNvbXBsZXhATUAwQEFFQVYxMEBBRUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3ItPShjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/WnN0ZEBAWUFBRUFWPyRjb21wbGV4QE5AMEBBRUFWMTBAQUVCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3ItPShjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/P1pzdGRAQFlBQUVBVj8kY29tcGxleEBPQDBAQUVBVjEwQEFFQlYxMEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6X0NvbXBsZXhfYmFzZTxmbG9hdD46Om9wZXJhdG9yLz0oZmxvYXQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz9fMD8kX0NvbXBsZXhfYmFzZUBNQHN0ZEBAUUVBQUFFQVYwMUBBRUJNQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT46Om9wZXJhdG9yLz0oZG91YmxlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/XzA/JF9Db21wbGV4X2Jhc2VATkBzdGRAQFFFQUFBRUFWMDFAQUVCTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpfQ29tcGxleF9iYXNlPGxvbmcgZG91YmxlPjo6b3BlcmF0b3IvPShsb25nIGRvdWJsZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/P18wPyRfQ29tcGxleF9iYXNlQE9Ac3RkQEBRRUFBQUVBVjAxQEFFQk9AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLz0oY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpDQorPz9fMHN0ZEBAWUFBRUFWPyRjb21wbGV4QE1AMEBBRUFWMTBAQUVCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLz0oY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/P18wc3RkQEBZQUFFQVY/JGNvbXBsZXhATkAwQEFFQVYxMEBBRUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpvcGVyYXRvci89KGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KQ0KKz8/XzBzdGRAQFlBQUVBVj8kY29tcGxleEBPQDBAQUVBVjEwQEFFQlYxMEBAWg0KKzsgY29uc3QgIHN0ZDo6X01wdW5jdDxjaGFyPjo6YHZmdGFibGUnDQorPz9fNz8kX01wdW5jdEBEQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6YHZmdGFibGUnDQorPz9fNz8kX01wdW5jdEBHQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfaWZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19pZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfaW9zQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaW9zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19pb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaW9zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX2lvc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX2lzdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX2lzdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19vZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX29mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX29zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX29zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmNvZGVjdnQ8Y2hhcixjaGFyLGludD46OmB2ZnRhYmxlJw0KKz8/Xzc/JGNvZGVjdnRARERIQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6YHZmdGFibGUnDQorPz9fNz8kY29kZWN2dEBHREhAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmNvbGxhdGU8Y2hhcj46OmB2ZnRhYmxlJw0KKz8/Xzc/JGNvbGxhdGVAREBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46OmB2ZnRhYmxlJw0KKz8/Xzc/JGNvbGxhdGVAR0BzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6Y3R5cGU8Y2hhcj46OmB2ZnRhYmxlJw0KKz8/Xzc/JGN0eXBlQERAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6YHZmdGFibGUnDQorPz9fNz8kY3R5cGVAR0BzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6bWVzc2FnZXM8Y2hhcj46OmB2ZnRhYmxlJw0KKz8/Xzc/JG1lc3NhZ2VzQERAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pjo6YHZmdGFibGUnDQorPz9fNz8kbWVzc2FnZXNAR0BzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6bW9uZXlfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpgdmZ0YWJsZScNCis/P183PyRtb25leV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6Om1vbmV5X2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6YHZmdGFibGUnDQorPz9fNz8kbW9uZXlfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjptb25leV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JG1vbmV5X3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpgdmZ0YWJsZScNCis/P183PyRtb25leV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwxPjo6YHZmdGFibGUnDQorPz9fNz8kbW9uZXlwdW5jdEBEJDAwQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjptb25leXB1bmN0PGNoYXIsMD46OmB2ZnRhYmxlJw0KKz8/Xzc/JG1vbmV5cHVuY3RARCQwQUBAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMT46OmB2ZnRhYmxlJw0KKz8/Xzc/JG1vbmV5cHVuY3RARyQwMEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwwPjo6YHZmdGFibGUnDQorPz9fNz8kbW9uZXlwdW5jdEBHJDBBQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6YHZmdGFibGUnDQorPz9fNz8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6YHZmdGFibGUnDQorPz9fNz8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6YHZmdGFibGUnDQorPz9fNz8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6YHZmdGFibGUnDQorPz9fNz8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46OmB2ZnRhYmxlJw0KKz8/Xzc/JG51bXB1bmN0QERAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6Om51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6YHZmdGFibGUnDQorPz9fNz8kbnVtcHVuY3RAR0BzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6YHZmdGFibGUnDQorPz9fNz8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OnRpbWVfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpgdmZ0YWJsZScNCis/P183PyR0aW1lX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6dGltZV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JHRpbWVfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpfX25vbl9ydHRpX29iamVjdDo6YHZmdGFibGUnDQorPz9fN19fbm9uX3J0dGlfb2JqZWN0QHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYWRfYWxsb2M6OmB2ZnRhYmxlJw0KKz8/XzdiYWRfYWxsb2NAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmJhZF9jYXN0OjpgdmZ0YWJsZScNCis/P183YmFkX2Nhc3RAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmJhZF9leGNlcHRpb246OmB2ZnRhYmxlJw0KKz8/XzdiYWRfZXhjZXB0aW9uQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYWRfdHlwZWlkOjpgdmZ0YWJsZScNCis/P183YmFkX3R5cGVpZEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6Y29kZWN2dF9iYXNlOjpgdmZ0YWJsZScNCis/P183Y29kZWN2dF9iYXNlQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpjdHlwZV9iYXNlOjpgdmZ0YWJsZScNCis/P183Y3R5cGVfYmFzZUBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6ZG9tYWluX2Vycm9yOjpgdmZ0YWJsZScNCis/P183ZG9tYWluX2Vycm9yQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpsb2NhbGU6OmZhY2V0OjpgdmZ0YWJsZScNCis/P183ZmFjZXRAbG9jYWxlQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjppb3NfYmFzZTo6YHZmdGFibGUnDQorPz9fN2lvc19iYXNlQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpsZW5ndGhfZXJyb3I6OmB2ZnRhYmxlJw0KKz8/XzdsZW5ndGhfZXJyb3JAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmxvZ2ljX2Vycm9yOjpgdmZ0YWJsZScNCis/P183bG9naWNfZXJyb3JAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6Om1lc3NhZ2VzX2Jhc2U6OmB2ZnRhYmxlJw0KKz8/XzdtZXNzYWdlc19iYXNlQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjptb25leV9iYXNlOjpgdmZ0YWJsZScNCis/P183bW9uZXlfYmFzZUBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6b3V0X29mX3JhbmdlOjpgdmZ0YWJsZScNCis/P183b3V0X29mX3JhbmdlQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpvdmVyZmxvd19lcnJvcjo6YHZmdGFibGUnDQorPz9fN292ZXJmbG93X2Vycm9yQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpyYW5nZV9lcnJvcjo6YHZmdGFibGUnDQorPz9fN3JhbmdlX2Vycm9yQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpydW50aW1lX2Vycm9yOjpgdmZ0YWJsZScNCis/P183cnVudGltZV9lcnJvckBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6dGltZV9iYXNlOjpgdmZ0YWJsZScNCis/P183dGltZV9iYXNlQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjp1bmRlcmZsb3dfZXJyb3I6OmB2ZnRhYmxlJw0KKz8/Xzd1bmRlcmZsb3dfZXJyb3JAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJ0YWJsZSd7Zm9yIGBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+J30NCis/P184PyRiYXNpY19mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAN0I/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJ0YWJsZSd7Zm9yIGBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+J30NCis/P184PyRiYXNpY19mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAN0I/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2YnRhYmxlJ3tmb3IgYHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPid9DQorPz9fOD8kYmFzaWNfZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQDdCPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJ0YWJsZSd7Zm9yIGBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4nfQ0KKz8/Xzg/JGJhc2ljX2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEA3Qj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJ0YWJsZScNCis/P184PyRiYXNpY19pZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQDdCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19pZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZidGFibGUnDQorPz9fOD8kYmFzaWNfaWZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEA3QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaW9zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJ0YWJsZSd7Zm9yIGBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+J30NCis/P184PyRiYXNpY19pb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQDdCPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YnRhYmxlJ3tmb3IgYHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4nfQ0KKz8/Xzg/JGJhc2ljX2lvc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAN0I/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2lvc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJ0YWJsZSd7Zm9yIGBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4nfQ0KKz8/Xzg/JGJhc2ljX2lvc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAN0I/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2lvc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJ0YWJsZSd7Zm9yIGBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4nfQ0KKz8/Xzg/JGJhc2ljX2lvc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAN0I/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJ0YWJsZScNCis/P184PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAN0JAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2YnRhYmxlJw0KKz8/Xzg/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEA3QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmB2YnRhYmxlJw0KKz8/Xzg/JGJhc2ljX2lzdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQDdCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YHZidGFibGUnDQorPz9fOD8kYmFzaWNfaXN0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAN0JAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX29mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YHZidGFibGUnDQorPz9fOD8kYmFzaWNfb2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEA3QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2YnRhYmxlJw0KKz8/Xzg/JGJhc2ljX29mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAN0JAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJ0YWJsZScNCis/P184PyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAN0JAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2YnRhYmxlJw0KKz8/Xzg/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEA3QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmB2YnRhYmxlJw0KKz8/Xzg/JGJhc2ljX29zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQDdCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YHZidGFibGUnDQorPz9fOD8kYmFzaWNfb3N0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAN0JAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmB2YnRhYmxlJ3tmb3IgYHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4nfQ0KKz8/Xzg/JGJhc2ljX3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAN0I/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmB2YnRhYmxlJ3tmb3IgYHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4nfQ0KKz8/Xzg/JGJhc2ljX3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAN0I/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmB2YnRhYmxlJ3tmb3IgYHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPid9DQorPz9fOD8kYmFzaWNfc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEA3Qj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YHZidGFibGUne2ZvciBgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+J30NCis/P184PyRiYXNpY19zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQDdCPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAQCBEQVRBDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkgX19wdHI2NA0KKz8/X0Q/JGJhc2ljX2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKSBfX3B0cjY0DQorPz9fRD8kYmFzaWNfZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkgX19wdHI2NA0KKz8/X0Q/JGJhc2ljX2lmc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19pZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpIF9fcHRyNjQNCis/P19EPyRiYXNpY19pZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfaW9zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkgX19wdHI2NA0KKz8/X0Q/JGJhc2ljX2lvc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19pb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpIF9fcHRyNjQNCis/P19EPyRiYXNpY19pb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKSBfX3B0cjY0DQorPz9fRD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpIF9fcHRyNjQNCis/P19EPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpIF9fcHRyNjQNCis/P19EPyRiYXNpY19pc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkgX19wdHI2NA0KKz8/X0Q/JGJhc2ljX2lzdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkgX19wdHI2NA0KKz8/X0Q/JGJhc2ljX29mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpIF9fcHRyNjQNCis/P19EPyRiYXNpY19vZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKSBfX3B0cjY0DQorPz9fRD8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpIF9fcHRyNjQNCis/P19EPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpIF9fcHRyNjQNCis/P19EPyRiYXNpY19vc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkgX19wdHI2NA0KKz8/X0Q/JGJhc2ljX29zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpIF9fcHRyNjQNCis/P19EPyRiYXNpY19zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpIF9fcHRyNjQNCis/P19EPyRiYXNpY19zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GPyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRj8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GPyRiYXNpY19pc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRj8kYmFzaWNfaXN0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0Y/JGJhc2ljX29zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GPyRiYXNpY19vc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0Y/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRj8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GPyRiYXNpY19zdHJpbmdidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0Y/JGJhc2ljX3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRj8kYmFzaWNfc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmNvZGVjdnQ8Y2hhcixjaGFyLGludD46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GPyRjb2RlY3Z0QERESEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GPyRjb2RlY3Z0QEdESEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6Y29sbGF0ZTxjaGFyPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0Y/JGNvbGxhdGVAREBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GPyRjb2xsYXRlQEdAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmNvbXBsZXg8ZmxvYXQ+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRj8kY29tcGxleEBNQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpjb21wbGV4PGRvdWJsZT46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GPyRjb21wbGV4QE5Ac3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRj8kY29tcGxleEBPQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpjdHlwZTxjaGFyPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0Y/JGN0eXBlQERAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0Y/JGN0eXBlQEdAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Om1lc3NhZ2VzPGNoYXI+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRj8kbWVzc2FnZXNAREBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bWVzc2FnZXM8dW5zaWduZWQgc2hvcnQ+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRj8kbWVzc2FnZXNAR0BzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bW9uZXlfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRj8kbW9uZXlfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjptb25leV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GPyRtb25leV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Om1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0Y/JG1vbmV5X3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRj8kbW9uZXlfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjptb25leXB1bmN0PGNoYXIsMT46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GPyRtb25leXB1bmN0QEQkMDBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwwPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0Y/JG1vbmV5cHVuY3RARCQwQUBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMT46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GPyRtb25leXB1bmN0QEckMDBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMD46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GPyRtb25leXB1bmN0QEckMEFAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRj8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0Y/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRj8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GPyRudW1wdW5jdEBEQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GPyRudW1wdW5jdEBHQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0Y/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0Y/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjp0aW1lX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0Y/JHRpbWVfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjp0aW1lX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0Y/JHRpbWVfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpfTG9jaW5mbzo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZfTG9jaW5mb0BzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6X1RpbWV2ZWM6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GX1RpbWV2ZWNAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhZF9hbGxvYzo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZiYWRfYWxsb2NAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhZF9jYXN0OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRmJhZF9jYXN0QHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYWRfZXhjZXB0aW9uOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRmJhZF9leGNlcHRpb25Ac3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhZF90eXBlaWQ6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GYmFkX3R5cGVpZEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6Y29kZWN2dF9iYXNlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRmNvZGVjdnRfYmFzZUBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6Y3R5cGVfYmFzZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZjdHlwZV9iYXNlQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsb2NhbGU6OmZhY2V0OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRmZhY2V0QGxvY2FsZUBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bWVzc2FnZXNfYmFzZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZtZXNzYWdlc19iYXNlQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjptb25leV9iYXNlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRm1vbmV5X2Jhc2VAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OnRpbWVfYmFzZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0Z0aW1lX2Jhc2VAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0xvY2luZm8gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpfTG9jaW5mbzo6X0FkZGNhdHMoaW50LGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP19BZGRjYXRzQF9Mb2NpbmZvQHN0ZEBAUUVBQUFFQVYxMkBIUEVCREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bG9jYWxlICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6bG9jYWxlOjpfQWRkZmFjKGNsYXNzIHN0ZDo6bG9jYWxlOjpmYWNldCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP19BZGRmYWNAbG9jYWxlQHN0ZEBAUUVBQUFFQVYxMkBQRUFWZmFjZXRAMTJAX0sxQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6Ol9BZGRzdGQodm9pZCkgX19wdHI2NA0KKz9fQWRkc3RkQGlvc19iYXNlQHN0ZEBASUVBQVhYWg0KKzsgY2hhciBjb25zdCAgYHByaXZhdGU6IHN0YXRpYyBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6X051bGxzdHIodm9pZCknOjpgMic6Ol9DDQorP19DQD8xPz9fTnVsbHN0ckA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAQ0FQRUJEWFpANERCDQorOyB1bnNpZ25lZCBzaG9ydCBjb25zdCAgYHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Ol9OdWxsc3RyKHZvaWQpJzo6YDInOjpfQw0KKz9fQ0A/MT8/X051bGxzdHJAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQENBUEVCR1haQDRHQg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6Ol9DYWxsZm5zKGVudW0gc3RkOjppb3NfYmFzZTo6ZXZlbnQpIF9fcHRyNjQNCis/X0NhbGxmbnNAaW9zX2Jhc2VAc3RkQEBBRUFBWFc0ZXZlbnRAMTJAQFoNCis7ID81Pz8/JGxvZ0BNQHN0ZDo6X0NsKFlBP0FWPyRjb21wbGV4QE1AMUBBRUJWMjFAQFpANE1CKQ0KKz9fQ2xAPzU/Pz8kbG9nQE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUVCVjIxQEBaQDRNQg0KKzsgPzU/Pz8kbG9nQE5Ac3RkOjpfQ2woWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUBAWkA0TkIpDQorP19DbEA/NT8/PyRsb2dATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBRUJWMjFAQFpANE5CDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6Ol9Mb2NpbXAgKiBfX3B0cjY0ICBfX3B0cjY0IHN0ZDo6bG9jYWxlOjpfTG9jaW1wOjpfQ2xvY3B0cg0KKz9fQ2xvY3B0ckBfTG9jaW1wQGxvY2FsZUBzdGRAQDBQRUFWMTIzQEVBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBzaG9ydCBjb25zdCAqIF9fcHRyNjQgY29uc3QgIF9fcHRyNjQgc3RkOjpjdHlwZTxjaGFyPjo6X0NsdGFiDQorP19DbHRhYkA/JGN0eXBlQERAc3RkQEAwUEVCRkVCIERBVEENCis7ID81Pz8/JGxvZ0BNQHN0ZDo6X0NtKFlBP0FWPyRjb21wbGV4QE1AMUBBRUJWMjFAQFpANE1CKQ0KKz9fQ21APzU/Pz8kbG9nQE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUVCVjIxQEBaQDRNQg0KKzsgPzU/Pz8kbG9nQE5Ac3RkOjpfQ20oWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUBAWkA0TkIpDQorP19DbUA/NT8/PyRsb2dATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBRUJWMjFAQFpANE5CDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpfQ29weSh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP19Db3B5QD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBBRUFBWF9LQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Ol9Db3B5KHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/X0NvcHlAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQEFFQUFYX0tAWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Ol9DdHI8ZmxvYXQ+OjpfQ29zaChmbG9hdCxmbG9hdCkNCis/X0Nvc2hAPyRfQ3RyQE1Ac3RkQEBTQU1NTUBaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8ZG91YmxlPjo6X0Nvc2goZG91YmxlLGRvdWJsZSkNCis/X0Nvc2hAPyRfQ3RyQE5Ac3RkQEBTQU5OTkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT46Ol9Db3NoKGxvbmcgZG91YmxlLGxvbmcgZG91YmxlKQ0KKz9fQ29zaEA/JF9DdHJAT0BzdGRAQFNBT09PQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsb2NhbGU6OmZhY2V0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6bG9jYWxlOjpmYWNldDo6X0RlY3JlZih2b2lkKSBfX3B0cjY0DQorP19EZWNyZWZAZmFjZXRAbG9jYWxlQHN0ZEBAUUVBQVBFQVYxMjNAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgc3RkOjpiYWRfYWxsb2M6Ol9Eb3JhaXNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X0RvcmFpc2VAYmFkX2FsbG9jQHN0ZEBATUVCQVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBzdGQ6OmJhZF9jYXN0OjpfRG9yYWlzZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP19Eb3JhaXNlQGJhZF9jYXN0QHN0ZEBATUVCQVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBzdGQ6OmJhZF9leGNlcHRpb246Ol9Eb3JhaXNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X0RvcmFpc2VAYmFkX2V4Y2VwdGlvbkBzdGRAQE1FQkFYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgc3RkOjpiYWRfdHlwZWlkOjpfRG9yYWlzZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP19Eb3JhaXNlQGJhZF90eXBlaWRAc3RkQEBNRUJBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIHN0ZDo6ZG9tYWluX2Vycm9yOjpfRG9yYWlzZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP19Eb3JhaXNlQGRvbWFpbl9lcnJvckBzdGRAQE1FQkFYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgc3RkOjpsZW5ndGhfZXJyb3I6Ol9Eb3JhaXNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X0RvcmFpc2VAbGVuZ3RoX2Vycm9yQHN0ZEBATUVCQVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBzdGQ6OmxvZ2ljX2Vycm9yOjpfRG9yYWlzZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP19Eb3JhaXNlQGxvZ2ljX2Vycm9yQHN0ZEBATUVCQVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBzdGQ6Om91dF9vZl9yYW5nZTo6X0RvcmFpc2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9fRG9yYWlzZUBvdXRfb2ZfcmFuZ2VAc3RkQEBNRUJBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIHN0ZDo6b3ZlcmZsb3dfZXJyb3I6Ol9Eb3JhaXNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X0RvcmFpc2VAb3ZlcmZsb3dfZXJyb3JAc3RkQEBNRUJBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIHN0ZDo6cmFuZ2VfZXJyb3I6Ol9Eb3JhaXNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X0RvcmFpc2VAcmFuZ2VfZXJyb3JAc3RkQEBNRUJBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIHN0ZDo6cnVudGltZV9lcnJvcjo6X0RvcmFpc2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9fRG9yYWlzZUBydW50aW1lX2Vycm9yQHN0ZEBATUVCQVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBzdGQ6OnVuZGVyZmxvd19lcnJvcjo6X0RvcmFpc2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9fRG9yYWlzZUB1bmRlcmZsb3dfZXJyb3JAc3RkQEBNRUJBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpfRW9zKHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/X0Vvc0A/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAQUVBQVhfS0BaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpfRW9zKHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/X0Vvc0A/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAQUVBQVhfS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBzaG9ydCBfX2NkZWNsIHN0ZDo6X0N0cjxmbG9hdD46Ol9FeHAoZmxvYXQgKiBfX3B0cjY0LGZsb2F0LHNob3J0KQ0KKz9fRXhwQD8kX0N0ckBNQHN0ZEBAU0FGUEVBTU1GQFoNCis7IHB1YmxpYzogc3RhdGljIHNob3J0IF9fY2RlY2wgc3RkOjpfQ3RyPGRvdWJsZT46Ol9FeHAoZG91YmxlICogX19wdHI2NCxkb3VibGUsc2hvcnQpDQorP19FeHBAPyRfQ3RyQE5Ac3RkQEBTQUZQRUFOTkZAWg0KKzsgcHVibGljOiBzdGF0aWMgc2hvcnQgX19jZGVjbCBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+OjpfRXhwKGxvbmcgZG91YmxlICogX19wdHI2NCxsb25nIGRvdWJsZSxzaG9ydCkNCis/X0V4cEA/JF9DdHJAT0BzdGRAQFNBRlBFQU9PRkBaDQorOyBmbG9hdCBfX2NkZWNsIHN0ZDo6X0ZhYnMoY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQsaW50ICogX19wdHI2NCkNCis/X0ZhYnNAc3RkQEBZQU1BRUJWPyRjb21wbGV4QE1AMUBQRUFIQFoNCis7IGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0ZhYnMoY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0LGludCAqIF9fcHRyNjQpDQorP19GYWJzQHN0ZEBAWUFOQUVCVj8kY29tcGxleEBOQDFAUEVBSEBaDQorOyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0ZhYnMoY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQsaW50ICogX19wdHI2NCkNCis/X0ZhYnNAc3RkQEBZQU9BRUJWPyRjb21wbGV4QE9AMUBQRUFIQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfRmZtdChjaGFyICogX19wdHI2NCxjaGFyLGludCkNCis/X0ZmbXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAS0FQRUFEUEVBRERIQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfRmZtdChjaGFyICogX19wdHI2NCxjaGFyLGludCkNCis/X0ZmbXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAS0FQRUFEUEVBRERIQFoNCis7IHByaXZhdGU6IHN0cnVjdCBzdGQ6Omlvc19iYXNlOjpfSW9zYXJyYXkgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjppb3NfYmFzZTo6X0ZpbmRhcnIoaW50KSBfX3B0cjY0DQorP19GaW5kYXJyQGlvc19iYXNlQHN0ZEBAQUVBQUFFQVVfSW9zYXJyYXlAMTJASEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0ZwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxjaGFyLGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCkNCis/X0ZwdXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAS0E/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUVBVmlvc19iYXNlQDJARFBFQkRfSzNAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0ZwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0LGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCkNCis/X0ZwdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAS0E/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUVBVmlvc19iYXNlQDJAR1BFQkRfSzNAWg0KKzsgX19pbnQ2NCBjb25zdCAgc3RkOjpfRnB6DQorP19GcHpAc3RkQEAzX0pCDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpfRnJlZXplKHZvaWQpIF9fcHRyNjQNCis/X0ZyZWV6ZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6X0ZyZWV6ZSh2b2lkKSBfX3B0cjY0DQorP19GcmVlemVAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQEFFQUFYWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JF9NcHVuY3RAREBzdGRAQFNBX0tYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JF9NcHVuY3RAR0BzdGRAQFNBX0tYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6Y29kZWN2dDxjaGFyLGNoYXIsaW50Pjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kY29kZWN2dEBEREhAc3RkQEBTQV9LWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRjb2RlY3Z0QEdESEBzdGRAQFNBX0tYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6Y29sbGF0ZTxjaGFyPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kY29sbGF0ZUBEQHN0ZEBAU0FfS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpjb2xsYXRlPHVuc2lnbmVkIHNob3J0Pjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kY29sbGF0ZUBHQHN0ZEBAU0FfS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpjdHlwZTxjaGFyPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kY3R5cGVAREBzdGRAQFNBX0tYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRjdHlwZUBHQHN0ZEBAU0FfS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjptZXNzYWdlczxjaGFyPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kbWVzc2FnZXNAREBzdGRAQFNBX0tYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6bWVzc2FnZXM8dW5zaWduZWQgc2hvcnQ+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRtZXNzYWdlc0BHQHN0ZEBAU0FfS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjptb25leV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JG1vbmV5X2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFNBX0tYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6bW9uZXlfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRtb25leV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBTQV9LWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6Om1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAU0FfS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjptb25leV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JG1vbmV5X3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFNBX0tYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6bW9uZXlwdW5jdDxjaGFyLDE+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRtb25leXB1bmN0QEQkMDBAc3RkQEBTQV9LWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwwPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kbW9uZXlwdW5jdEBEJDBBQEBzdGRAQFNBX0tYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwxPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kbW9uZXlwdW5jdEBHJDAwQHN0ZEBAU0FfS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDA+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRtb25leXB1bmN0QEckMEFAQHN0ZEBAU0FfS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAU0FfS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAU0FfS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAU0FfS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAU0FfS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpudW1wdW5jdDxjaGFyPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kbnVtcHVuY3RAREBzdGRAQFNBX0tYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRudW1wdW5jdEBHQHN0ZEBAU0FfS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBTQV9LWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFNBX0tYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6dGltZV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JHRpbWVfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAU0FfS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjp0aW1lX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kdGltZV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBTQV9LWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmxvY2FsZTo6ZmFjZXQ6Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEBmYWNldEBsb2NhbGVAc3RkQEBTQV9LWFoNCis7IHB1YmxpYzogc3RydWN0IF9Db2xsdmVjICBfX2NkZWNsIHN0ZDo6X0xvY2luZm86Ol9HZXRjb2xsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X0dldGNvbGxAX0xvY2luZm9Ac3RkQEBRRUJBP0FVX0NvbGx2ZWNAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfQ3R5cGV2ZWMgIF9fY2RlY2wgc3RkOjpfTG9jaW5mbzo6X0dldGN0eXBlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X0dldGN0eXBlQF9Mb2NpbmZvQHN0ZEBAUUVCQT9BVV9DdHlwZXZlY0BAWFoNCis7IHB1YmxpYzogc3RydWN0IF9DdnR2ZWMgIF9fY2RlY2wgc3RkOjpfTG9jaW5mbzo6X0dldGN2dCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP19HZXRjdnRAX0xvY2luZm9Ac3RkQEBRRUJBP0FVX0N2dHZlY0BAWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6Ol9Mb2NpbmZvOjpfR2V0ZGF5cyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP19HZXRkYXlzQF9Mb2NpbmZvQHN0ZEBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmxvY2FsZTo6ZmFjZXQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpsb2NhbGU6Ol9HZXRmYWNldCh1bnNpZ25lZCBfX2ludDY0LGJvb2wpY29uc3QgIF9fcHRyNjQNCis/X0dldGZhY2V0QGxvY2FsZUBzdGRAQFFFQkFQRUJWZmFjZXRAMTJAX0tfTkBaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpfTG9jaW5mbzo6X0dldGZhbHNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X0dldGZhbHNlQF9Mb2NpbmZvQHN0ZEBAUUVCQVBFQkRYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCBfX2NkZWNsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0dldGZmbGQoY2hhciAqIF9fcHRyNjQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpsb2NhbGUgY29uc3QgJiBfX3B0cjY0KQ0KKz9fR2V0ZmZsZEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBDQUhQRUFEQUVBVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQDFBRUJWbG9jYWxlQDJAQFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9HZXRmZmxkKGNoYXIgKiBfX3B0cjY0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmxvY2FsZSBjb25zdCAmIF9fcHRyNjQpDQorP19HZXRmZmxkQD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQENBSFBFQURBRUFWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAMUFFQlZsb2NhbGVAMkBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCBfX2NkZWNsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0dldGlmbGQoY2hhciAqIF9fcHRyNjQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQsaW50LGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYgX19wdHI2NCkNCis/X0dldGlmbGRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAQ0FIUEVBREFFQVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkAxSEFFQlZsb2NhbGVAMkBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCBfX2NkZWNsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0dldGlmbGQoY2hhciAqIF9fcHRyNjQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0LGludCxjbGFzcyBzdGQ6OmxvY2FsZSBjb25zdCAmIF9fcHRyNjQpDQorP19HZXRpZmxkQD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQENBSFBFQURBRUFWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAMUhBRUJWbG9jYWxlQDJAQFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfR2V0aW50KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0LGludCxpbnQsaW50ICYgX19wdHI2NCkNCis/X0dldGludEA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAQ0FIQUVBVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQDBISEFFQUhAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCBfX2NkZWNsIHN0ZDo6dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9HZXRpbnQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0LGludCxpbnQsaW50ICYgX19wdHI2NCkNCis/X0dldGludEA/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAQ0FIQUVBVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQDBISEFFQUhAWg0KKzsgcHVibGljOiBzdHJ1Y3QgbGNvbnYgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpfTG9jaW5mbzo6X0dldGxjb252KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X0dldGxjb252QF9Mb2NpbmZvQHN0ZEBAUUVCQVBFQlVsY29udkBAWFoNCis7IHByaXZhdGU6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0dldG1mbGQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQsYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9fR2V0bWZsZEA/JG1vbmV5X2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQEFFQkE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAQUVBVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQDBfTkFFQVZpb3NfYmFzZUAyQEBaDQorOyBwcml2YXRlOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjptb25leV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9HZXRtZmxkKGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCxib29sLGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP19HZXRtZmxkQD8kbW9uZXlfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAQUVCQT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBBRUFWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAMF9OQUVBVmlvc19iYXNlQDJAQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6Ol9Mb2NpbmZvOjpfR2V0bW9udGhzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X0dldG1vbnRoc0BfTG9jaW5mb0BzdGRAQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6X0xvY2luZm86Ol9HZXRuYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X0dldG5hbWVAX0xvY2luZm9Ac3RkQEBRRUJBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpfTG9jaW5mbzo6X0dldG5vKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X0dldG5vQF9Mb2NpbmZvQHN0ZEBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6X1RpbWV2ZWM6Ol9HZXRwdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9fR2V0cHRyQF9UaW1ldmVjQHN0ZEBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9UaW1ldmVjICBfX2NkZWNsIHN0ZDo6X0xvY2luZm86Ol9HZXR0bmFtZXModm9pZCljb25zdCAgX19wdHI2NA0KKz9fR2V0dG5hbWVzQF9Mb2NpbmZvQHN0ZEBAUUVCQT9BVl9UaW1ldmVjQDJAWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6Ol9Mb2NpbmZvOjpfR2V0dHJ1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP19HZXR0cnVlQF9Mb2NpbmZvQHN0ZEBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6X0xvY2luZm86Ol9HZXR5ZXModm9pZCljb25zdCAgX19wdHI2NA0KKz9fR2V0eWVzQF9Mb2NpbmZvQHN0ZEBAUUVCQVBFQkRYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjpfTG9jaW1wICogX19wdHI2NCAgX19wdHI2NCBzdGQ6OmxvY2FsZTo6X0xvY2ltcDo6X0dsb2JhbA0KKz9fR2xvYmFsQF9Mb2NpbXBAbG9jYWxlQHN0ZEBAMFBFQVYxMjNARUEgREFUQQ0KKzsgcHJvdGVjdGVkOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6X0duZGVjKHZvaWQpIF9fcHRyNjQNCis/X0duZGVjQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUVBQVBFQURYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6X0duZGVjKHZvaWQpIF9fcHRyNjQNCis/X0duZGVjQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUVBQVBFQUdYWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6X0duaW5jKHZvaWQpIF9fcHRyNjQNCis/X0duaW5jQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUVBQVBFQURYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6X0duaW5jKHZvaWQpIF9fcHRyNjQNCis/X0duaW5jQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUVBQVBFQUdYWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6X0dyb3codW5zaWduZWQgX19pbnQ2NCxib29sKSBfX3B0cjY0DQorP19Hcm93QD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBBRUFBX05fS19OQFoNCis7IHByaXZhdGU6IGJvb2wgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Ol9Hcm93KHVuc2lnbmVkIF9faW50NjQsYm9vbCkgX19wdHI2NA0KKz9fR3Jvd0A/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAQUVBQV9OX0tfTkBaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50ICBzdGQ6OmxvY2FsZTo6aWQ6Ol9JZF9jbnQNCis/X0lkX2NudEBpZEBsb2NhbGVAc3RkQEAwSEEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9JZm10KGNoYXIgKiBfX3B0cjY0LGNoYXIsaW50KQ0KKz9fSWZtdEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBLQVBFQURQRUFEREhAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9JZm10KGNoYXIgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGludCkNCis/X0lmbXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAS0FQRUFEUEVBRFBFQkRIQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfSWZtdChjaGFyICogX19wdHI2NCxjaGFyLGludCkNCis/X0lmbXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAS0FQRUFEUEVBRERIQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfSWZtdChjaGFyICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCxpbnQpDQorP19JZm10QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQEtBUEVBRFBFQURQRUJESEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmxvY2FsZTo6ZmFjZXQ6Ol9JbmNyZWYodm9pZCkgX19wdHI2NA0KKz9fSW5jcmVmQGZhY2V0QGxvY2FsZUBzdGRAQFFFQUFYWFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgIHN0ZDo6aW9zX2Jhc2U6Ol9JbmRleA0KKz9fSW5kZXhAaW9zX2Jhc2VAc3RkQEAwSEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Ol9DdHI8ZmxvYXQ+OjpfSW5mdihmbG9hdCkNCis/X0luZnZAPyRfQ3RyQE1Ac3RkQEBTQU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+OjpfSW5mdihkb3VibGUpDQorP19JbmZ2QD8kX0N0ckBOQHN0ZEBAU0FOTkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT46Ol9JbmZ2KGxvbmcgZG91YmxlKQ0KKz9fSW5mdkA/JF9DdHJAT0BzdGRAQFNBT09AWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjpfTXB1bmN0PGNoYXI+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9fSW5pdEA/JF9NcHVuY3RAREBzdGRAQElFQUFYQUVCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP19Jbml0QD8kX01wdW5jdEBHQHN0ZEBASUVBQVhBRUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6X0luaXQoc3RydWN0IF9pb2J1ZiAqIF9fcHRyNjQsZW51bSBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpfSW5pdGZsKSBfX3B0cjY0DQorP19Jbml0QD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElFQUFYUEVBVV9pb2J1ZkBAVzRfSW5pdGZsQDEyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Ol9Jbml0KHN0cnVjdCBfaW9idWYgKiBfX3B0cjY0LGVudW0gc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpfSW5pdGZsKSBfX3B0cjY0DQorP19Jbml0QD8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElFQUFYUEVBVV9pb2J1ZkBAVzRfSW5pdGZsQDEyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Ol9Jbml0KGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCxjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCxjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/X0luaXRAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJRUFBWFBFQVBFQUQwUEVBSDAwMUBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Ol9Jbml0KHZvaWQpIF9fcHRyNjQNCis/X0luaXRAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6X0luaXQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/X0luaXRAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJRUFBWFBFQVBFQUcwUEVBSDAwMUBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6X0luaXQodm9pZCkgX19wdHI2NA0KKz9fSW5pdEA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElFQUFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6X0luaXQoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCxpbnQpIF9fcHRyNjQNCis/X0luaXRAPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQElFQUFYUEVCRF9LSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Ol9Jbml0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LGludCkgX19wdHI2NA0KKz9fSW5pdEA/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBASUVBQVhQRUJHX0tIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6Y29kZWN2dDxjaGFyLGNoYXIsaW50Pjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/X0luaXRAPyRjb2RlY3Z0QERESEBzdGRAQElFQUFYQUVCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP19Jbml0QD8kY29kZWN2dEBHREhAc3RkQEBJRUFBWEFFQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6OmNvbGxhdGU8Y2hhcj46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP19Jbml0QD8kY29sbGF0ZUBEQHN0ZEBASUVBQVhBRUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjpjb2xsYXRlPHVuc2lnbmVkIHNob3J0Pjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/X0luaXRAPyRjb2xsYXRlQEdAc3RkQEBJRUFBWEFFQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6OmN0eXBlPGNoYXI+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9fSW5pdEA/JGN0eXBlQERAc3RkQEBJRUFBWEFFQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/X0luaXRAPyRjdHlwZUBHQHN0ZEBASUVBQVhBRUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjptZXNzYWdlczxjaGFyPjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/X0luaXRAPyRtZXNzYWdlc0BEQHN0ZEBASUVBQVhBRUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjptZXNzYWdlczx1bnNpZ25lZCBzaG9ydD46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP19Jbml0QD8kbWVzc2FnZXNAR0BzdGRAQElFQUFYQUVCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6bW9uZXlfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9fSW5pdEA/JG1vbmV5X2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQElFQUFYQUVCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6bW9uZXlfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9fSW5pdEA/JG1vbmV5X2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQElFQUFYQUVCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6bW9uZXlfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9fSW5pdEA/JG1vbmV5X3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQElFQUFYQUVCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9fSW5pdEA/JG1vbmV5X3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQElFQUFYQUVCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/X0luaXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBASUVBQVhBRUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9fSW5pdEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBJRUFBWEFFQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP19Jbml0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQElFQUFYQUVCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/X0luaXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBASUVBQVhBRUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjpudW1wdW5jdDxjaGFyPjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/X0luaXRAPyRudW1wdW5jdEBEQHN0ZEBASUVBQVhBRUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP19Jbml0QD8kbnVtcHVuY3RAR0BzdGRAQElFQUFYQUVCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP19Jbml0QD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBJRUFBWEFFQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9fSW5pdEA/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBASUVBQVhBRUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjp0aW1lX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/X0luaXRAPyR0aW1lX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQElFQUFYQUVCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6dGltZV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP19Jbml0QD8kdGltZV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBJRUFBWEFFQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6Omlvc19iYXNlOjpfSW5pdCh2b2lkKSBfX3B0cjY0DQorP19Jbml0QGlvc19iYXNlQHN0ZEBASUVBQVhYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjpfTG9jaW1wICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6bG9jYWxlOjpfSW5pdCh2b2lkKQ0KKz9fSW5pdEBsb2NhbGVAc3RkQEBDQVBFQVZfTG9jaW1wQDEyQFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6OnN0cnN0cmVhbWJ1Zjo6X0luaXQoaW50LGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9fSW5pdEBzdHJzdHJlYW1idWZAc3RkQEBJRUFBWEhQRUFEMEhAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCAgc3RkOjppb3NfYmFzZTo6SW5pdDo6X0luaXRfY250DQorP19Jbml0X2NudEBJbml0QGlvc19iYXNlQHN0ZEBAMEhBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgIHN0ZDo6X1dpbml0OjpfSW5pdF9jbnQNCis/X0luaXRfY250QF9XaW5pdEBzdGRAQDBIQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpfSW5pdGN2dCh2b2lkKSBfX3B0cjY0DQorP19Jbml0Y3Z0QD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElFQUFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6X0luaXRjdnQodm9pZCkgX19wdHI2NA0KKz9fSW5pdGN2dEA/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0lwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxjaGFyLGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpDQorP19JcHV0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQEtBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQEFFQVZpb3NfYmFzZUAyQERQRUFEX0tAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0lwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0LGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpDQorP19JcHV0QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQEtBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEFFQVZpb3NfYmFzZUAyQEdQRUFEX0tAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgc3RkOjpsb2NhbGU6Ol9Jc2Nsb2Modm9pZCljb25zdCAgX19wdHI2NA0KKz9fSXNjbG9jQGxvY2FsZUBzdGRAQFFFQkFfTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjpfQ3RyPGZsb2F0Pjo6X0lzaW5mKGZsb2F0KQ0KKz9fSXNpbmZAPyRfQ3RyQE1Ac3RkQEBTQV9OTUBaDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjpfQ3RyPGRvdWJsZT46Ol9Jc2luZihkb3VibGUpDQorP19Jc2luZkA/JF9DdHJATkBzdGRAQFNBX05OQFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+OjpfSXNpbmYobG9uZyBkb3VibGUpDQorP19Jc2luZkA/JF9DdHJAT0BzdGRAQFNBX05PQFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6Ol9DdHI8ZmxvYXQ+OjpfSXNuYW4oZmxvYXQpDQorP19Jc25hbkA/JF9DdHJATUBzdGRAQFNBX05NQFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6Ol9DdHI8ZG91YmxlPjo6X0lzbmFuKGRvdWJsZSkNCis/X0lzbmFuQD8kX0N0ckBOQHN0ZEBAU0FfTk5AWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT46Ol9Jc25hbihsb25nIGRvdWJsZSkNCis/X0lzbmFuQD8kX0N0ckBPQHN0ZEBAU0FfTk9AWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIHN0ZDo6X01wdW5jdDxjaGFyPjo6X01ha3BhdChzdHJ1Y3Qgc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuICYgX19wdHI2NCxjaGFyLGNoYXIsY2hhcikgX19wdHI2NA0KKz9fTWFrcGF0QD8kX01wdW5jdEBEQHN0ZEBAQUVBQVhBRUFVcGF0dGVybkBtb25leV9iYXNlQDJAREREQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpfTWFrcGF0KHN0cnVjdCBzdGQ6Om1vbmV5X2Jhc2U6OnBhdHRlcm4gJiBfX3B0cjY0LGNoYXIsY2hhcixjaGFyKSBfX3B0cjY0DQorP19NYWtwYXRAPyRfTXB1bmN0QEdAc3RkQEBBRUFBWEFFQVVwYXR0ZXJuQG1vbmV5X2Jhc2VAMkBERERAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpfTW9kZShpbnQpIF9fcHRyNjQNCis/X01vZGVAPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQEFFQUFISEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Ol9Nb2RlKGludCkgX19wdHI2NA0KKz9fTW9kZUA/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAQUVBQUhIQFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgc3RkOjpfQ3RyPGZsb2F0Pjo6X05hbnYoZmxvYXQpDQorP19OYW52QD8kX0N0ckBNQHN0ZEBAU0FNTUBaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8ZG91YmxlPjo6X05hbnYoZG91YmxlKQ0KKz9fTmFudkA/JF9DdHJATkBzdGRAQFNBTk5AWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+OjpfTmFudihsb25nIGRvdWJsZSkNCis/X05hbnZAPyRfQ3RyQE9Ac3RkQEBTQU9PQFoNCis7IHZvaWQgX19jZGVjbCBzdGQ6Ol9Ob21lbW9yeSh2b2lkKQ0KKz9fTm9tZW1vcnlAc3RkQEBZQVhYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpfTnVsbHN0cih2b2lkKQ0KKz9fTnVsbHN0ckA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAQ0FQRUJEWFoNCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Ol9OdWxsc3RyKHZvaWQpDQorP19OdWxsc3RyQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBDQVBFQkdYWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Ol9QZGlmKGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0KQ0KKz9fUGRpZkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAQ0FfS1BFQkQwQFoNCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpfUGRpZih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9fUGRpZkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAQ0FfS1BFQkcwQFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Ol9QbmluYyh2b2lkKSBfX3B0cjY0DQorP19QbmluY0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElFQUFQRUFEWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Ol9QbmluYyh2b2lkKSBfX3B0cjY0DQorP19QbmluY0A/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElFQUFQRUFHWFoNCis7IHByaXZhdGU6IHN0YXRpYyBjaGFyICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6X1BzdW0oY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkNCis/X1BzdW1APyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQENBUEVBRFBFQURfS0BaDQorOyBwcml2YXRlOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Ol9Qc3VtKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpDQorP19Qc3VtQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBDQVBFQkRQRUJEX0tAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6X1BzdW0odW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpDQorP19Qc3VtQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBDQVBFQUdQRUFHX0tAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6X1BzdW0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpDQorP19Qc3VtQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBDQVBFQkdQRUJHX0tAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjptb25leV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9QdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KQ0KKz9fUHV0QD8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAQ0E/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAUEVCRF9LQFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjptb25leV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9QdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KQ0KKz9fUHV0QD8kbW9uZXlfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAQ0E/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAUEVCR19LQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfUHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkNCis/X1B1dEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBLQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBQRUJEX0tAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X1B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpDQorP19QdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAS0E/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAUEVCR19LQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfUHV0YyhjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpDQorP19QdXRjQD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQEtBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQFBFQkRfS0BaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfUHV0YyhjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkNCis/X1B1dGNAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAS0E/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAUEVCRF9LQFoNCis7IHByaXZhdGU6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjptb25leV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9QdXRtZmxkKGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxjaGFyLGJvb2wsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KWNvbnN0ICBfX3B0cjY0DQorP19QdXRtZmxkQD8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAQUVCQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBfTkFFQVZpb3NfYmFzZUAyQEQxVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBAWg0KKzsgcHJpdmF0ZTogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfUHV0bWZsZChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCxib29sLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiljb25zdCAgX19wdHI2NA0KKz9fUHV0bWZsZEA/JG1vbmV5X3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQEFFQkE/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAX05BRUFWaW9zX2Jhc2VAMkBHMVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAQFoNCis7ID9CTkA/Pz8kX0ZhYnNATUBzdGQ6Ol9SMihZQU1BRUJWPyRjb21wbGV4QE1AMUBQRUFIQFpANE1CKQ0KKz9fUjJAP0JOQD8/PyRfRmFic0BNQHN0ZEBAWUFNQUVCVj8kY29tcGxleEBNQDFAUEVBSEBaQDRNQg0KKzsgP0JOQD8/PyRfRmFic0BOQHN0ZDo6X1IyKFlBTkFFQlY/JGNvbXBsZXhATkAxQFBFQUhAWkA0TkIpDQorP19SMkA/Qk5APz8/JF9GYWJzQE5Ac3RkQEBZQU5BRUJWPyRjb21wbGV4QE5AMUBQRUFIQFpANE5CDQorOyBwcml2YXRlOiB1bnNpZ25lZCBjaGFyICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6X1JlZmNudChjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9fUmVmY250QD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBBRUFBQUVBRVBFQkRAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgY2hhciAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Ol9SZWZjbnQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP19SZWZjbnRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQEFFQUFBRUFFUEVCR0BaDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X1JlcChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNoYXIsdW5zaWduZWQgX19pbnQ2NCkNCis/X1JlcEA/JG1vbmV5X3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQENBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQERfS0BaDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfUmVwKGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPix1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBfX2ludDY0KQ0KKz9fUmVwQD8kbW9uZXlfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAQ0E/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAR19LQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfUmVwKGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2hhcix1bnNpZ25lZCBfX2ludDY0KQ0KKz9fUmVwQD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQEtBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQERfS0BaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfUmVwKGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPix1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBfX2ludDY0KQ0KKz9fUmVwQD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQEtBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEdfS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6X0N0cjxmbG9hdD46Ol9TaW5oKGZsb2F0LGZsb2F0KQ0KKz9fU2luaEA/JF9DdHJATUBzdGRAQFNBTU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+OjpfU2luaChkb3VibGUsZG91YmxlKQ0KKz9fU2luaEA/JF9DdHJATkBzdGRAQFNBTk5OQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGxvbmcgZG91YmxlPjo6X1NpbmgobG9uZyBkb3VibGUsbG9uZyBkb3VibGUpDQorP19TaW5oQD8kX0N0ckBPQHN0ZEBAU0FPT09AWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6X1NwbGl0KHZvaWQpIF9fcHRyNjQNCis/X1NwbGl0QD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpfU3BsaXQodm9pZCkgX19wdHI2NA0KKz9fU3BsaXRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQEFFQUFYWFoNCis7IGludCAgYHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Ol9Jbml0KHN0cnVjdCBfaW9idWYgKiBfX3B0cjY0LGVudW0gc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6X0luaXRmbCkgX19wdHI2NCc6OmAyJzo6X1N0aW5pdA0KKz9fU3Rpbml0QD8xPz9fSW5pdEA/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJRUFBWFBFQVVfaW9idWZAQFc0X0luaXRmbEAyM0BAWkA0SEEgREFUQQ0KKzsgaW50ICBgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpfSW5pdChzdHJ1Y3QgX2lvYnVmICogX19wdHI2NCxlbnVtIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6X0luaXRmbCkgX19wdHI2NCc6OmAyJzo6X1N0aW5pdA0KKz9fU3Rpbml0QD8xPz9fSW5pdEA/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJRUFBWFBFQVVfaW9idWZAQFc0X0luaXRmbEAyM0BAWkA0SEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGJvb2wgIHN0ZDo6aW9zX2Jhc2U6Ol9TeW5jDQorP19TeW5jQGlvc19iYXNlQHN0ZEBAMF9OQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB2b2lkIF9fY2RlY2wgc3RkOjpjdHlwZTxjaGFyPjo6X1Rlcm0odm9pZCkNCis/X1Rlcm1APyRjdHlwZUBEQHN0ZEBAS0FYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Ol9UaWR5KGJvb2wpIF9fcHRyNjQNCis/X1RpZHlAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQEFFQUFYX05AWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6X1RpZHkoYm9vbCkgX19wdHI2NA0KKz9fVGlkeUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAQUVBQVhfTkBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Ol9UaWR5KHZvaWQpIF9fcHRyNjQNCis/X1RpZHlAPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQElFQUFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6X1RpZHkodm9pZCkgX19wdHI2NA0KKz9fVGlkeUA/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBASUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6Ol9UaWR5KHZvaWQpIF9fcHRyNjQNCis/X1RpZHlAaW9zX2Jhc2VAc3RkQEBBRUFBWFhaDQorOyBwcml2YXRlOiBzdGF0aWMgdm9pZCBfX2NkZWNsIHN0ZDo6bG9jYWxlOjpfVGlkeSh2b2lkKQ0KKz9fVGlkeUBsb2NhbGVAc3RkQEBDQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjpzdHJzdHJlYW1idWY6Ol9UaWR5KHZvaWQpIF9fcHRyNjQNCis/X1RpZHlAc3Ryc3RyZWFtYnVmQHN0ZEBASUVBQVhYWg0KKzsgP0JOQD8/PyRfRmFic0BNQHN0ZDo6X1hoKFlBTUFFQlY/JGNvbXBsZXhATUAxQFBFQUhAWkA0TUIpDQorP19YaEA/Qk5APz8/JF9GYWJzQE1Ac3RkQEBZQU1BRUJWPyRjb21wbGV4QE1AMUBQRUFIQFpANE1CDQorOyA/Qk5APz8/JF9GYWJzQE5Ac3RkOjpfWGgoWUFOQUVCVj8kY29tcGxleEBOQDFAUEVBSEBaQDROQikNCis/X1hoQD9CTkA/Pz8kX0ZhYnNATkBzdGRAQFlBTkFFQlY/JGNvbXBsZXhATkAxQFBFQUhAWkA0TkINCis7ID9CTkA/Pz8kX0ZhYnNATUBzdGQ6Ol9YbChZQU1BRUJWPyRjb21wbGV4QE1AMUBQRUFIQFpANE1CKQ0KKz9fWGxAP0JOQD8/PyRfRmFic0BNQHN0ZEBAWUFNQUVCVj8kY29tcGxleEBNQDFAUEVBSEBaQDRNQg0KKzsgP0JOQD8/PyRfRmFic0BOQHN0ZDo6X1hsKFlBTkFFQlY/JGNvbXBsZXhATkAxQFBFQUhAWkA0TkIpDQorP19YbEA/Qk5APz8/JF9GYWJzQE5Ac3RkQEBZQU5BRUJWPyRjb21wbGV4QE5AMUBQRUFIQFpANE5CDQorOyB2b2lkIF9fY2RlY2wgc3RkOjpfWGxlbih2b2lkKQ0KKz9fWGxlbkBzdGRAQFlBWFhaDQorOyB2b2lkIF9fY2RlY2wgc3RkOjpfWHJhbih2b2lkKQ0KKz9fWHJhbkBzdGRAQFlBWFhaDQorOyBzdHJ1Y3QgX2lvYnVmICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6X19GaW9wZW4oY2hhciBjb25zdCAqIF9fcHRyNjQsaW50KQ0KKz9fX0Zpb3BlbkBzdGRAQFlBUEVBVV9pb2J1ZkBAUEVCREhAWg0KKzsgZmxvYXQgX19jZGVjbCBzdGQ6OmFicyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCkNCis/YWJzQHN0ZEBAWUFNQUVCVj8kY29tcGxleEBNQDFAQFoNCis7IGRvdWJsZSBfX2NkZWNsIHN0ZDo6YWJzKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/YWJzQHN0ZEBAWUFOQUVCVj8kY29tcGxleEBOQDFAQFoNCis7IGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjphYnMoY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorP2Fic0BzdGRAQFlBT0FFQlY/JGNvbXBsZXhAT0AxQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBzdGQ6OmNvZGVjdnRfYmFzZTo6YWx3YXlzX25vY29udih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2Fsd2F5c19ub2NvbnZAY29kZWN2dF9iYXNlQHN0ZEBAUUVCQV9OWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXBwZW5kKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/YXBwZW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjEyQEFFQlYxMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjphcHBlbmQoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/YXBwZW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjEyQEFFQlYxMkBfSzFAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjphcHBlbmQoY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/YXBwZW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjEyQFBFQkQwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXBwZW5kKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP2FwcGVuZEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQUFFQVYxMkBQRUJEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXBwZW5kKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/YXBwZW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjEyQFBFQkRfS0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmFwcGVuZCh1bnNpZ25lZCBfX2ludDY0LGNoYXIpIF9fcHRyNjQNCis/YXBwZW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjEyQF9LREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFwcGVuZChjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP2FwcGVuZEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQUFFQVYxMkBBRUJWMTJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YXBwZW5kKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP2FwcGVuZEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQUFFQVYxMkBBRUJWMTJAX0sxQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YXBwZW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/YXBwZW5kQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBQUVBVjEyQFBFQkcwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YXBwZW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9hcHBlbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFWMTJAUEVCR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFwcGVuZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9hcHBlbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFWMTJAUEVCR19LQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YXBwZW5kKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/YXBwZW5kQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBQUVBVjEyQF9LR0BaDQorOyBmbG9hdCBfX2NkZWNsIHN0ZDo6YXJnKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJiBfX3B0cjY0KQ0KKz9hcmdAc3RkQEBZQU1BRUJWPyRjb21wbGV4QE1AMUBAWg0KKzsgZG91YmxlIF9fY2RlY2wgc3RkOjphcmcoY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KQ0KKz9hcmdAc3RkQEBZQU5BRUJWPyRjb21wbGV4QE5AMUBAWg0KKzsgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6OmFyZyhjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/YXJnQHN0ZEBAWUFPQUVCVj8kY29tcGxleEBPQDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXNzaWduKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/YXNzaWduQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjEyQEFFQlYxMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojphc3NpZ24oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/YXNzaWduQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjEyQEFFQlYxMkBfSzFAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojphc3NpZ24oY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/YXNzaWduQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjEyQFBFQkQwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXNzaWduKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP2Fzc2lnbkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQUFFQVYxMkBQRUJEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXNzaWduKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/YXNzaWduQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjEyQFBFQkRfS0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmFzc2lnbih1bnNpZ25lZCBfX2ludDY0LGNoYXIpIF9fcHRyNjQNCis/YXNzaWduQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjEyQF9LREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFzc2lnbihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP2Fzc2lnbkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQUFFQVYxMkBBRUJWMTJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YXNzaWduKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP2Fzc2lnbkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQUFFQVYxMkBBRUJWMTJAX0sxQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YXNzaWduKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/YXNzaWduQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBQUVBVjEyQFBFQkcwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YXNzaWduKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9hc3NpZ25APyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFWMTJAUEVCR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFzc2lnbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9hc3NpZ25APyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFWMTJAUEVCR19LQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YXNzaWduKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/YXNzaWduQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBQUVBVjEyQF9LR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj46OmFzc2lnbihjaGFyICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LGNoYXIgY29uc3QgJiBfX3B0cjY0KQ0KKz9hc3NpZ25APyRjaGFyX3RyYWl0c0BEQHN0ZEBAU0FQRUFEUEVBRF9LQUVCREBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czxjaGFyPjo6YXNzaWduKGNoYXIgJiBfX3B0cjY0LGNoYXIgY29uc3QgJiBfX3B0cjY0KQ0KKz9hc3NpZ25APyRjaGFyX3RyYWl0c0BEQHN0ZEBAU0FYQUVBREFFQkRAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD46OmFzc2lnbih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAmIF9fcHRyNjQpDQorP2Fzc2lnbkA/JGNoYXJfdHJhaXRzQEdAc3RkQEBTQVBFQUdQRUFHX0tBRUJHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6YXNzaWduKHVuc2lnbmVkIHNob3J0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAmIF9fcHRyNjQpDQorP2Fzc2lnbkA/JGNoYXJfdHJhaXRzQEdAc3RkQEBTQVhBRUFHQUVCR0BaDQorOyBwdWJsaWM6IGNoYXIgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjphdCh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP2F0QD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBRF9LQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmF0KHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/YXRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkFBRUJEX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmF0KHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/YXRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFHX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmF0KHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/YXRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFBRUJHX0tAWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Ol9DdHI8ZmxvYXQ+OjphdGFuMihmbG9hdCxmbG9hdCkNCis/YXRhbjJAPyRfQ3RyQE1Ac3RkQEBTQU1NTUBaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8ZG91YmxlPjo6YXRhbjIoZG91YmxlLGRvdWJsZSkNCis/YXRhbjJAPyRfQ3RyQE5Ac3RkQEBTQU5OTkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT46OmF0YW4yKGxvbmcgZG91YmxlLGxvbmcgZG91YmxlKQ0KKz9hdGFuMkA/JF9DdHJAT0BzdGRAQFNBT09PQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6OmJhZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2JhZEBpb3NfYmFzZUBzdGRAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiZWdpbih2b2lkKSBfX3B0cjY0DQorP2JlZ2luQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiZWdpbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2JlZ2luQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUJBUEVCRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmVnaW4odm9pZCkgX19wdHI2NA0KKz9iZWdpbkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQVBFQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJlZ2luKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/YmVnaW5APyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmNfc3RyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Y19zdHJAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpjX3N0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2Nfc3RyQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmNhcGFjaXR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Y2FwYWNpdHlAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkFfS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmNhcGFjaXR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Y2FwYWNpdHlAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFfS1haDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBzdGQ6OmNlcnINCis/Y2VyckBzdGRAQDNWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQSBEQVRBDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBzdGQ6OmNpbg0KKz9jaW5Ac3RkQEAzVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGUgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpsb2NhbGU6OmNsYXNzaWModm9pZCkNCis/Y2xhc3NpY0Bsb2NhbGVAc3RkQEBTQUFFQlYxMkBYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpjdHlwZTxjaGFyPjo6Y2xhc3NpY190YWJsZSh2b2lkKQ0KKz9jbGFzc2ljX3RhYmxlQD8kY3R5cGVAREBzdGRAQEtBUEVCRlhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmNsZWFyKHNob3J0KSBfX3B0cjY0DQorP2NsZWFyQD8kYmFzaWNfaW9zQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQVhGQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Y2xlYXIoaW50LGJvb2wpIF9fcHRyNjQNCis/Y2xlYXJAPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBWEhfTkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6Y2xlYXIoc2hvcnQpIF9fcHRyNjQNCis/Y2xlYXJAPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBWEZAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmNsZWFyKGludCxib29sKSBfX3B0cjY0DQorP2NsZWFyQD8kYmFzaWNfaW9zQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQVhIX05AWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjppb3NfYmFzZTo6Y2xlYXIoc2hvcnQpIF9fcHRyNjQNCis/Y2xlYXJAaW9zX2Jhc2VAc3RkQEBRRUFBWEZAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjppb3NfYmFzZTo6Y2xlYXIoaW50LGJvb2wpIF9fcHRyNjQNCis/Y2xlYXJAaW9zX2Jhc2VAc3RkQEBRRUFBWEhfTkBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBzdGQ6OmNsb2cNCis/Y2xvZ0BzdGRAQDNWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQSBEQVRBDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Y2xvc2Uodm9pZCkgX19wdHI2NA0KKz9jbG9zZUA/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBUEVBVjEyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmNsb3NlKHZvaWQpIF9fcHRyNjQNCis/Y2xvc2VAPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQVBFQVYxMkBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Y2xvc2Uodm9pZCkgX19wdHI2NA0KKz9jbG9zZUA/JGJhc2ljX2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmNsb3NlKHZvaWQpIF9fcHRyNjQNCis/Y2xvc2VAPyRiYXNpY19mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19pZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmNsb3NlKHZvaWQpIF9fcHRyNjQNCis/Y2xvc2VAPyRiYXNpY19pZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmNsb3NlKHZvaWQpIF9fcHRyNjQNCis/Y2xvc2VAPyRiYXNpY19pZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpjbG9zZSh2b2lkKSBfX3B0cjY0DQorP2Nsb3NlQD8kYmFzaWNfb2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX29mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpjbG9zZSh2b2lkKSBfX3B0cjY0DQorP2Nsb3NlQD8kYmFzaWNfb2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Om1lc3NhZ2VzPGNoYXI+OjpjbG9zZShpbnQpY29uc3QgIF9fcHRyNjQNCis/Y2xvc2VAPyRtZXNzYWdlc0BEQHN0ZEBAUUVCQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bWVzc2FnZXM8dW5zaWduZWQgc2hvcnQ+OjpjbG9zZShpbnQpY29uc3QgIF9fcHRyNjQNCis/Y2xvc2VAPyRtZXNzYWdlc0BHQHN0ZEBAUUVCQVhIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojpjb21wYXJlKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Y29tcGFyZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVCQUhBRUJWMTJAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojpjb21wYXJlKGNoYXIgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2NvbXBhcmVAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkFIUEVCREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6Y29tcGFyZSh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/Y29tcGFyZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVCQUhfSzBBRUJWMTJAMDBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmNvbXBhcmUodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Y29tcGFyZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVCQUhfSzBBRUJWMTJAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojpjb21wYXJlKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP2NvbXBhcmVAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkFIX0swUEVCRDBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmNvbXBhcmUodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0LGNoYXIgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2NvbXBhcmVAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkFIX0swUEVCREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6Y29tcGFyZShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2NvbXBhcmVAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFIQUVCVjEyQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6Y29tcGFyZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Y29tcGFyZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVCQUhQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojpjb21wYXJlKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9jb21wYXJlQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUJBSF9LMEFFQlYxMkAwMEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6Y29tcGFyZSh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9jb21wYXJlQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUJBSF9LMEFFQlYxMkBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmNvbXBhcmUodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP2NvbXBhcmVAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFIX0swUEVCRzBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmNvbXBhcmUodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9jb21wYXJlQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUJBSF9LMFBFQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czxjaGFyPjo6Y29tcGFyZShjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KQ0KKz9jb21wYXJlQD8kY2hhcl90cmFpdHNAREBzdGRAQFNBSFBFQkQwX0tAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD46OmNvbXBhcmUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KQ0KKz9jb21wYXJlQD8kY2hhcl90cmFpdHNAR0BzdGRAQFNBSFBFQkcwX0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBzdGQ6OmNvbGxhdGU8Y2hhcj46OmNvbXBhcmUoY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Y29tcGFyZUA/JGNvbGxhdGVAREBzdGRAQFFFQkFIUEVCRDAwMEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0ZDo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46OmNvbXBhcmUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2NvbXBhcmVAPyRjb2xsYXRlQEdAc3RkQEBRRUJBSFBFQkcwMDBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6OmNvbmooY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpDQorP2NvbmpAc3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUVCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OmNvbmooY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KQ0KKz9jb25qQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6OmNvbmooY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorP2NvbmpAc3RkQEBZQT9BVj8kY29tcGxleEBPQDFAQUVCVjIxQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmNvcHkoY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP2NvcHlAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkFfS1BFQURfSzFAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojpjb3B5KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/Y29weUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVCQV9LUEVBR19LMUBaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj46OmNvcHkoY2hhciAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkNCis/Y29weUA/JGNoYXJfdHJhaXRzQERAc3RkQEBTQVBFQURQRUFEUEVCRF9LQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+Ojpjb3B5KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkNCis/Y29weUA/JGNoYXJfdHJhaXRzQEdAc3RkQEBTQVBFQUdQRUFHUEVCR19LQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Y29weWZtdChjbGFzcyBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP2NvcHlmbXRAPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjEyQEFFQlYxMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6Y29weWZtdChjbGFzcyBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Y29weWZtdEA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMTJAQUVCVjEyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjppb3NfYmFzZTo6Y29weWZtdChjbGFzcyBzdGQ6Omlvc19iYXNlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9jb3B5Zm10QGlvc19iYXNlQHN0ZEBAUUVBQUFFQVYxMkBBRUJWMTJAQFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgc3RkOjpfQ3RyPGZsb2F0Pjo6Y29zKGZsb2F0KQ0KKz9jb3NAPyRfQ3RyQE1Ac3RkQEBTQU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+Ojpjb3MoZG91YmxlKQ0KKz9jb3NAPyRfQ3RyQE5Ac3RkQEBTQU5OQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGxvbmcgZG91YmxlPjo6Y29zKGxvbmcgZG91YmxlKQ0KKz9jb3NAPyRfQ3RyQE9Ac3RkQEBTQU9PQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpjb3MoY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpDQorP2Nvc0BzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBRUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6Y29zKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/Y29zQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6OmNvcyhjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/Y29zQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFFQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6OmNvc2goY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpDQorP2Nvc2hAc3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUVCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OmNvc2goY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KQ0KKz9jb3NoQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6OmNvc2goY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorP2Nvc2hAc3RkQEBZQT9BVj8kY29tcGxleEBPQDFAQUVCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBzdGQ6OmNvdXQNCis/Y291dEBzdGRAQDNWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQSBEQVRBDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46OmN1cnJfc3ltYm9sKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Y3Vycl9zeW1ib2xAPyRfTXB1bmN0QERAc3RkQEBRRUJBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpjdXJyX3N5bWJvbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2N1cnJfc3ltYm9sQD8kX01wdW5jdEBHQHN0ZEBAUUVCQT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZGF0YSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2RhdGFAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpkYXRhKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZGF0YUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpkYXRlX29yZGVyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZGF0ZV9vcmRlckA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpkYXRlX29yZGVyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZGF0ZV9vcmRlckA/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVCQUhYWg0KKzsgcHVibGljOiBjaGFyIF9fY2RlY2wgc3RkOjpfTXB1bmN0PGNoYXI+OjpkZWNpbWFsX3BvaW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZGVjaW1hbF9wb2ludEA/JF9NcHVuY3RAREBzdGRAQFFFQkFEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpkZWNpbWFsX3BvaW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZGVjaW1hbF9wb2ludEA/JF9NcHVuY3RAR0BzdGRAQFFFQkFHWFoNCis7IHB1YmxpYzogY2hhciBfX2NkZWNsIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46OmRlY2ltYWxfcG9pbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9kZWNpbWFsX3BvaW50QD8kbnVtcHVuY3RAREBzdGRAQFFFQkFEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6Om51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6ZGVjaW1hbF9wb2ludCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2RlY2ltYWxfcG9pbnRAPyRudW1wdW5jdEBHQHN0ZEBAUUVCQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgc2lnbmVkIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpZ25lZCBjaGFyPjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNAQ0BzdGRAQFNBQ1haDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxjaGFyPjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNAREBzdGRAQFNBRFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBjaGFyPjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNARUBzdGRAQFNBRVhaDQorOyBwdWJsaWM6IHN0YXRpYyBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2hvcnQ+OjpkZW5vcm1fbWluKHZvaWQpDQorP2Rlbm9ybV9taW5APyRudW1lcmljX2xpbWl0c0BGQHN0ZEBAU0FGWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBzaG9ydD46OmRlbm9ybV9taW4odm9pZCkNCis/ZGVub3JtX21pbkA/JG51bWVyaWNfbGltaXRzQEdAc3RkQEBTQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjpkZW5vcm1fbWluKHZvaWQpDQorP2Rlbm9ybV9taW5APyRudW1lcmljX2xpbWl0c0BIQHN0ZEBAU0FIWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgaW50Pjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNASUBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxsb25nPjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNASkBzdGRAQFNBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBsb25nPjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNAS0BzdGRAQFNBS1haDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjpkZW5vcm1fbWluKHZvaWQpDQorP2Rlbm9ybV9taW5APyRudW1lcmljX2xpbWl0c0BNQHN0ZEBAU0FNWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNATkBzdGRAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBkb3VibGU+OjpkZW5vcm1fbWluKHZvaWQpDQorP2Rlbm9ybV9taW5APyRudW1lcmljX2xpbWl0c0BPQHN0ZEBAU0FPWFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGJvb2w+OjpkZW5vcm1fbWluKHZvaWQpDQorP2Rlbm9ybV9taW5APyRudW1lcmljX2xpbWl0c0BfTkBzdGRAQFNBX05YWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGJvb2wgX19jZGVjbCBzdGQ6OmNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+Ojpkb19hbHdheXNfbm9jb252KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZG9fYWx3YXlzX25vY29udkA/JGNvZGVjdnRAR0RIQHN0ZEBATUVCQV9OWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBib29sIF9fY2RlY2wgc3RkOjpjb2RlY3Z0X2Jhc2U6OmRvX2Fsd2F5c19ub2NvbnYodm9pZCljb25zdCAgX19wdHI2NA0KKz9kb19hbHdheXNfbm9jb252QGNvZGVjdnRfYmFzZUBzdGRAQE1FQkFfTlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIHN0ZDo6bWVzc2FnZXM8Y2hhcj46OmRvX2Nsb3NlKGludCljb25zdCAgX19wdHI2NA0KKz9kb19jbG9zZUA/JG1lc3NhZ2VzQERAc3RkQEBNRUJBWEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBzdGQ6Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pjo6ZG9fY2xvc2UoaW50KWNvbnN0ICBfX3B0cjY0DQorP2RvX2Nsb3NlQD8kbWVzc2FnZXNAR0BzdGRAQE1FQkFYSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjpjb2xsYXRlPGNoYXI+Ojpkb19jb21wYXJlKGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX2NvbXBhcmVAPyRjb2xsYXRlQERAc3RkQEBNRUJBSFBFQkQwMDBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIHN0ZDo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46OmRvX2NvbXBhcmUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX2NvbXBhcmVAPyRjb2xsYXRlQEdAc3RkQEBNRUJBSFBFQkcwMDBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46OmRvX2N1cnJfc3ltYm9sKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZG9fY3Vycl9zeW1ib2xAPyRfTXB1bmN0QERAc3RkQEBNRUJBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmRvX2N1cnJfc3ltYm9sKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZG9fY3Vycl9zeW1ib2xAPyRfTXB1bmN0QEdAc3RkQEBNRUJBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZGF0ZV9vcmRlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2RvX2RhdGVfb3JkZXJAPyR0aW1lX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1FQkFIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19kYXRlX29yZGVyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZGF0ZV9vcmRlckA/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNoYXIgX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46OmRvX2RlY2ltYWxfcG9pbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9kb19kZWNpbWFsX3BvaW50QD8kX01wdW5jdEBEQHN0ZEBATUVCQURYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6ZG9fZGVjaW1hbF9wb2ludCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2RvX2RlY2ltYWxfcG9pbnRAPyRfTXB1bmN0QEdAc3RkQEBNRUJBR1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2hhciBfX2NkZWNsIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46OmRvX2RlY2ltYWxfcG9pbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9kb19kZWNpbWFsX3BvaW50QD8kbnVtcHVuY3RAREBzdGRAQE1FQkFEWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojpkb19kZWNpbWFsX3BvaW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZGVjaW1hbF9wb2ludEA/JG51bXB1bmN0QEdAc3RkQEBNRUJBR1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6ZG9fZW5jb2Rpbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9kb19lbmNvZGluZ0A/JGNvZGVjdnRAR0RIQHN0ZEBATUVCQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIHN0ZDo6Y29kZWN2dF9iYXNlOjpkb19lbmNvZGluZyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2RvX2VuY29kaW5nQGNvZGVjdnRfYmFzZUBzdGRAQE1FQkFIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1wdW5jdDxjaGFyPjo6ZG9fZmFsc2VuYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZmFsc2VuYW1lQD8kbnVtcHVuY3RAREBzdGRAQE1FQkE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmRvX2ZhbHNlbmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2RvX2ZhbHNlbmFtZUA/JG51bXB1bmN0QEdAc3RkQEBNRUJBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjpfTXB1bmN0PGNoYXI+Ojpkb19mcmFjX2RpZ2l0cyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2RvX2ZyYWNfZGlnaXRzQD8kX01wdW5jdEBEQHN0ZEBATUVCQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmRvX2ZyYWNfZGlnaXRzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZnJhY19kaWdpdHNAPyRfTXB1bmN0QEdAc3RkQEBNRUJBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bWVzc2FnZXM8Y2hhcj46OmRvX2dldChpbnQsaW50LGludCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX2dldEA/JG1lc3NhZ2VzQERAc3RkQEBNRUJBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQEhISEFFQlYzMkBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pjo6ZG9fZ2V0KGludCxpbnQsaW50LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZ2V0QD8kbWVzc2FnZXNAR0BzdGRAQE1FQkE/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJASEhIQUVCVjMyQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixib29sLGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsbG9uZyBkb3VibGUgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX2dldEA/JG1vbmV5X2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMF9OQUVBVmlvc19iYXNlQDJAQUVBSEFFQU9AWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjptb25leV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZ2V0QD8kbW9uZXlfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwX05BRUFWaW9zX2Jhc2VAMkBBRUFIQUVBVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om1vbmV5X2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LGxvbmcgZG91YmxlICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb19nZXRAPyRtb25leV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBfTkFFQVZpb3NfYmFzZUAyQEFFQUhBRUFPQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjptb25leV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX2dldEA/JG1vbmV5X2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMF9OQUVBVmlvc19iYXNlQDJAQUVBSEFFQVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb19nZXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUVBVmlvc19iYXNlQDJAQUVBSEFFQUdAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsdW5zaWduZWQgaW50ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb19nZXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUVBVmlvc19iYXNlQDJAQUVBSEFFQUlAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsbG9uZyAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZ2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhBRUFKQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIQUVBS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCxmbG9hdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZ2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhBRUFNQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LGRvdWJsZSAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZ2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhBRUFOQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LGxvbmcgZG91YmxlICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb19nZXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUVBVmlvc19iYXNlQDJAQUVBSEFFQU9AWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIQUVBUEVBWEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCxfX2ludDY0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb19nZXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUVBVmlvc19iYXNlQDJAQUVBSEFFQV9KQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIQUVBX0tAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsYm9vbCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZ2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhBRUFfTkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZ2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhBRUFHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LHVuc2lnbmVkIGludCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZ2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhBRUFJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LGxvbmcgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIQUVBSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb19nZXRAPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUVBVmlvc19iYXNlQDJAQUVBSEFFQUtAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsZmxvYXQgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIQUVBTUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCxkb3VibGUgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIQUVBTkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCxsb25nIGRvdWJsZSAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZ2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhBRUFPQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb19nZXRAPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUVBVmlvc19iYXNlQDJAQUVBSEFFQVBFQVhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsX19pbnQ2NCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZ2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhBRUFfSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb19nZXRAPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUVBVmlvc19iYXNlQDJAQUVBSEFFQV9LQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LGJvb2wgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIQUVBX05AWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0X2RhdGUoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsc3RydWN0IHRtICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb19nZXRfZGF0ZUA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUVBVmlvc19iYXNlQDJAQUVBSFBFQVV0bUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZ2V0X2RhdGUoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LHN0cnVjdCB0bSAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZ2V0X2RhdGVAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhQRUFVdG1AQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19nZXRfbW9udGhuYW1lKGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LHN0cnVjdCB0bSAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZ2V0X21vbnRobmFtZUA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUVBVmlvc19iYXNlQDJAQUVBSFBFQVV0bUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZ2V0X21vbnRobmFtZShjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsc3RydWN0IHRtICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb19nZXRfbW9udGhuYW1lQD8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIUEVBVXRtQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0X3RpbWUoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsc3RydWN0IHRtICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb19nZXRfdGltZUA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUVBVmlvc19iYXNlQDJAQUVBSFBFQVV0bUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZ2V0X3RpbWUoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LHN0cnVjdCB0bSAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZ2V0X3RpbWVAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhQRUFVdG1AQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19nZXRfd2Vla2RheShjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCxzdHJ1Y3QgdG0gKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX2dldF93ZWVrZGF5QD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIUEVBVXRtQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19nZXRfd2Vla2RheShjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsc3RydWN0IHRtICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb19nZXRfd2Vla2RheUA/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUVBVmlvc19iYXNlQDJAQUVBSFBFQVV0bUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX2dldF95ZWFyKGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LHN0cnVjdCB0bSAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZ2V0X3llYXJAPyR0aW1lX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhQRUFVdG1AQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX2dldF95ZWFyKGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCxzdHJ1Y3QgdG0gKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX2dldF95ZWFyQD8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIUEVBVXRtQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46OmRvX2dyb3VwaW5nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZ3JvdXBpbmdAPyRfTXB1bmN0QERAc3RkQEBNRUJBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmRvX2dyb3VwaW5nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZ3JvdXBpbmdAPyRfTXB1bmN0QEdAc3RkQEBNRUJBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46OmRvX2dyb3VwaW5nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZG9fZ3JvdXBpbmdAPyRudW1wdW5jdEBEQHN0ZEBATUVCQT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6ZG9fZ3JvdXBpbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9kb19ncm91cGluZ0A/JG51bXB1bmN0QEdAc3RkQEBNRUJBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIHN0ZDo6Y29sbGF0ZTxjaGFyPjo6ZG9faGFzaChjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb19oYXNoQD8kY29sbGF0ZUBEQHN0ZEBATUVCQUpQRUJEMEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIHN0ZDo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46OmRvX2hhc2godW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb19oYXNoQD8kY29sbGF0ZUBHQHN0ZEBATUVCQUpQRUJHMEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjpjb2RlY3Z0PGNoYXIsY2hhcixpbnQ+Ojpkb19pbihpbnQgJiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0ICYgX19wdHI2NCxjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9faW5APyRjb2RlY3Z0QERESEBzdGRAQE1FQkFIQUVBSFBFQkQxQUVBUEVCRFBFQUQzQUVBUEVBREBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6ZG9faW4oaW50ICYgX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX2luQD8kY29kZWN2dEBHREhAc3RkQEBNRUJBSEFFQUhQRUJEMUFFQVBFQkRQRUFHM0FFQVBFQUdAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+Ojpkb19pcyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHNob3J0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb19pc0A/JGN0eXBlQEdAc3RkQEBNRUJBUEVCR1BFQkcwUEVBRkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgYm9vbCBfX2NkZWNsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+Ojpkb19pcyhzaG9ydCx1bnNpZ25lZCBzaG9ydCljb25zdCAgX19wdHI2NA0KKz9kb19pc0A/JGN0eXBlQEdAc3RkQEBNRUJBX05GR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjpjb2RlY3Z0PGNoYXIsY2hhcixpbnQ+Ojpkb19sZW5ndGgoaW50ICYgX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX2xlbmd0aEA/JGNvZGVjdnRARERIQHN0ZEBATUVCQUhBRUFIUEVCRDFfS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6ZG9fbGVuZ3RoKGludCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX2xlbmd0aEA/JGNvZGVjdnRAR0RIQHN0ZEBATUVCQUhBRUFIUEVCRzFfS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6ZG9fbWF4X2xlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2RvX21heF9sZW5ndGhAPyRjb2RlY3Z0QEdESEBzdGRAQE1FQkFIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBzdGQ6OmNvZGVjdnRfYmFzZTo6ZG9fbWF4X2xlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2RvX21heF9sZW5ndGhAY29kZWN2dF9iYXNlQHN0ZEBATUVCQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNoYXIgX19jZGVjbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6ZG9fbmFycm93KHVuc2lnbmVkIHNob3J0LGNoYXIpY29uc3QgIF9fcHRyNjQNCis/ZG9fbmFycm93QD8kY3R5cGVAR0BzdGRAQE1FQkFER0RAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+Ojpkb19uYXJyb3codW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjaGFyLGNoYXIgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX25hcnJvd0A/JGN0eXBlQEdAc3RkQEBNRUJBUEVCR1BFQkcwRFBFQURAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHN0cnVjdCBzdGQ6Om1vbmV5X2Jhc2U6OnBhdHRlcm4gIF9fY2RlY2wgc3RkOjpfTXB1bmN0PGNoYXI+Ojpkb19uZWdfZm9ybWF0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZG9fbmVnX2Zvcm1hdEA/JF9NcHVuY3RAREBzdGRAQE1FQkE/QVVwYXR0ZXJuQG1vbmV5X2Jhc2VAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHN0cnVjdCBzdGQ6Om1vbmV5X2Jhc2U6OnBhdHRlcm4gIF9fY2RlY2wgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6ZG9fbmVnX2Zvcm1hdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2RvX25lZ19mb3JtYXRAPyRfTXB1bmN0QEdAc3RkQEBNRUJBP0FVcGF0dGVybkBtb25leV9iYXNlQDJAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpfTXB1bmN0PGNoYXI+Ojpkb19uZWdhdGl2ZV9zaWduKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZG9fbmVnYXRpdmVfc2lnbkA/JF9NcHVuY3RAREBzdGRAQE1FQkE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6ZG9fbmVnYXRpdmVfc2lnbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2RvX25lZ2F0aXZlX3NpZ25APyRfTXB1bmN0QEdAc3RkQEBNRUJBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjptZXNzYWdlczxjaGFyPjo6ZG9fb3BlbihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb19vcGVuQD8kbWVzc2FnZXNAREBzdGRAQE1FQkFIQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBBRUJWbG9jYWxlQDJAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBzdGQ6Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pjo6ZG9fb3BlbihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb19vcGVuQD8kbWVzc2FnZXNAR0BzdGRAQE1FQkFIQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBBRUJWbG9jYWxlQDJAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBzdGQ6OmNvZGVjdnQ8Y2hhcixjaGFyLGludD46OmRvX291dChpbnQgJiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0ICYgX19wdHI2NCxjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fb3V0QD8kY29kZWN2dEBEREhAc3RkQEBNRUJBSEFFQUhQRUJEMUFFQVBFQkRQRUFEM0FFQVBFQURAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIHN0ZDo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD46OmRvX291dChpbnQgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0ICYgX19wdHI2NCxjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fb3V0QD8kY29kZWN2dEBHREhAc3RkQEBNRUJBSEFFQUhQRUJHMUFFQVBFQkdQRUFEM0FFQVBFQURAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHN0cnVjdCBzdGQ6Om1vbmV5X2Jhc2U6OnBhdHRlcm4gIF9fY2RlY2wgc3RkOjpfTXB1bmN0PGNoYXI+Ojpkb19wb3NfZm9ybWF0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZG9fcG9zX2Zvcm1hdEA/JF9NcHVuY3RAREBzdGRAQE1FQkE/QVVwYXR0ZXJuQG1vbmV5X2Jhc2VAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHN0cnVjdCBzdGQ6Om1vbmV5X2Jhc2U6OnBhdHRlcm4gIF9fY2RlY2wgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6ZG9fcG9zX2Zvcm1hdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2RvX3Bvc19mb3JtYXRAPyRfTXB1bmN0QEdAc3RkQEBNRUJBP0FVcGF0dGVybkBtb25leV9iYXNlQDJAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpfTXB1bmN0PGNoYXI+Ojpkb19wb3NpdGl2ZV9zaWduKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZG9fcG9zaXRpdmVfc2lnbkA/JF9NcHVuY3RAREBzdGRAQE1FQkE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6ZG9fcG9zaXRpdmVfc2lnbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2RvX3Bvc2l0aXZlX3NpZ25APyRfTXB1bmN0QEdAc3RkQEBNRUJBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fcHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxjaGFyLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fcHV0QD8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBfTkFFQVZpb3NfYmFzZUAyQERBRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fcHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxjaGFyLGxvbmcgZG91YmxlKWNvbnN0ICBfX3B0cjY0DQorP2RvX3B1dEA/JG1vbmV5X3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAX05BRUFWaW9zX2Jhc2VAMkBET0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb19wdXRAPyRtb25leV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNRUJBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQF9OQUVBVmlvc19iYXNlQDJAR0FFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjptb25leV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCxsb25nIGRvdWJsZSljb25zdCAgX19wdHI2NA0KKz9kb19wdXRAPyRtb25leV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNRUJBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQF9OQUVBVmlvc19iYXNlQDJAR09AWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxjaGFyLGxvbmcpY29uc3QgIF9fcHRyNjQNCis/ZG9fcHV0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUVBVmlvc19iYXNlQDJAREpAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxjaGFyLHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/ZG9fcHV0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUVBVmlvc19iYXNlQDJAREtAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxjaGFyLGRvdWJsZSljb25zdCAgX19wdHI2NA0KKz9kb19wdXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBBRUFWaW9zX2Jhc2VAMkBETkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGNoYXIsbG9uZyBkb3VibGUpY29uc3QgIF9fcHRyNjQNCis/ZG9fcHV0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUVBVmlvc19iYXNlQDJARE9AWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxjaGFyLHZvaWQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX3B1dEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNRUJBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQEFFQVZpb3NfYmFzZUAyQERQRUJYQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fcHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsY2hhcixfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX3B1dEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNRUJBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQEFFQVZpb3NfYmFzZUAyQERfSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGNoYXIsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9kb19wdXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBBRUFWaW9zX2Jhc2VAMkBEX0tAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxjaGFyLGJvb2wpY29uc3QgIF9fcHRyNjQNCis/ZG9fcHV0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUVBVmlvc19iYXNlQDJARF9OQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0LGxvbmcpY29uc3QgIF9fcHRyNjQNCis/ZG9fcHV0QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUVBVmlvc19iYXNlQDJAR0pAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9kb19wdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBBRUFWaW9zX2Jhc2VAMkBHS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fcHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCxkb3VibGUpY29uc3QgIF9fcHRyNjQNCis/ZG9fcHV0QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUVBVmlvc19iYXNlQDJAR05AWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQsbG9uZyBkb3VibGUpY29uc3QgIF9fcHRyNjQNCis/ZG9fcHV0QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUVBVmlvc19iYXNlQDJAR09AWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQsdm9pZCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fcHV0QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1FQkE/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUVBVmlvc19iYXNlQDJAR1BFQlhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQsX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9kb19wdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBBRUFWaW9zX2Jhc2VAMkBHX0pAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9kb19wdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBBRUFWaW9zX2Jhc2VAMkBHX0tAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQsYm9vbCljb25zdCAgX19wdHI2NA0KKz9kb19wdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBBRUFWaW9zX2Jhc2VAMkBHX05AWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjp0aW1lX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fcHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsc3RydWN0IHRtIGNvbnN0ICogX19wdHI2NCxjaGFyLGNoYXIpY29uc3QgIF9fcHRyNjQNCis/ZG9fcHV0QD8kdGltZV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNRUJBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQEFFQVZpb3NfYmFzZUAyQFBFQlV0bUBARERAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6OnRpbWVfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LHN0cnVjdCB0bSBjb25zdCAqIF9fcHRyNjQsY2hhcixjaGFyKWNvbnN0ICBfX3B0cjY0DQorP2RvX3B1dEA/JHRpbWVfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUVCQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBBRUFWaW9zX2Jhc2VAMkBQRUJVdG1AQEREQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6ZG9fc2Nhbl9pcyhzaG9ydCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX3NjYW5faXNAPyRjdHlwZUBHQHN0ZEBATUVCQVBFQkdGUEVCRzBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+Ojpkb19zY2FuX25vdChzaG9ydCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX3NjYW5fbm90QD8kY3R5cGVAR0BzdGRAQE1FQkFQRUJHRlBFQkcwQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjaGFyIF9fY2RlY2wgc3RkOjpfTXB1bmN0PGNoYXI+Ojpkb190aG91c2FuZHNfc2VwKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZG9fdGhvdXNhbmRzX3NlcEA/JF9NcHVuY3RAREBzdGRAQE1FQkFEWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmRvX3Rob3VzYW5kc19zZXAodm9pZCljb25zdCAgX19wdHI2NA0KKz9kb190aG91c2FuZHNfc2VwQD8kX01wdW5jdEBHQHN0ZEBATUVCQUdYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNoYXIgX19jZGVjbCBzdGQ6Om51bXB1bmN0PGNoYXI+Ojpkb190aG91c2FuZHNfc2VwKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZG9fdGhvdXNhbmRzX3NlcEA/JG51bXB1bmN0QERAc3RkQEBNRUJBRFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6Om51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6ZG9fdGhvdXNhbmRzX3NlcCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2RvX3Rob3VzYW5kc19zZXBAPyRudW1wdW5jdEBHQHN0ZEBATUVCQUdYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNoYXIgX19jZGVjbCBzdGQ6OmN0eXBlPGNoYXI+Ojpkb190b2xvd2VyKGNoYXIpY29uc3QgIF9fcHRyNjQNCis/ZG9fdG9sb3dlckA/JGN0eXBlQERAc3RkQEBNRUJBRERAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpjdHlwZTxjaGFyPjo6ZG9fdG9sb3dlcihjaGFyICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb190b2xvd2VyQD8kY3R5cGVAREBzdGRAQE1FQkFQRUJEUEVBRFBFQkRAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OmRvX3RvbG93ZXIodW5zaWduZWQgc2hvcnQpY29uc3QgIF9fcHRyNjQNCis/ZG9fdG9sb3dlckA/JGN0eXBlQEdAc3RkQEBNRUJBR0dAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+Ojpkb190b2xvd2VyKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fdG9sb3dlckA/JGN0eXBlQEdAc3RkQEBNRUJBUEVCR1BFQUdQRUJHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjaGFyIF9fY2RlY2wgc3RkOjpjdHlwZTxjaGFyPjo6ZG9fdG91cHBlcihjaGFyKWNvbnN0ICBfX3B0cjY0DQorP2RvX3RvdXBwZXJAPyRjdHlwZUBEQHN0ZEBATUVCQUREQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6Y3R5cGU8Y2hhcj46OmRvX3RvdXBwZXIoY2hhciAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/ZG9fdG91cHBlckA/JGN0eXBlQERAc3RkQEBNRUJBUEVCRFBFQURQRUJEQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+Ojpkb190b3VwcGVyKHVuc2lnbmVkIHNob3J0KWNvbnN0ICBfX3B0cjY0DQorP2RvX3RvdXBwZXJAPyRjdHlwZUBHQHN0ZEBATUVCQUdHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6ZG9fdG91cHBlcih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX3RvdXBwZXJAPyRjdHlwZUBHQHN0ZEBATUVCQVBFQkdQRUFHUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6Y29sbGF0ZTxjaGFyPjo6ZG9fdHJhbnNmb3JtKGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX3RyYW5zZm9ybUA/JGNvbGxhdGVAREBzdGRAQE1FQkE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAUEVCRDBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6OmNvbGxhdGU8dW5zaWduZWQgc2hvcnQ+Ojpkb190cmFuc2Zvcm0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9kb190cmFuc2Zvcm1APyRjb2xsYXRlQEdAc3RkQEBNRUJBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFBFQkcwQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1wdW5jdDxjaGFyPjo6ZG9fdHJ1ZW5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9kb190cnVlbmFtZUA/JG51bXB1bmN0QERAc3RkQEBNRUJBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojpkb190cnVlbmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2RvX3RydWVuYW1lQD8kbnVtcHVuY3RAR0BzdGRAQE1FQkE/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+Ojpkb193aWRlbihjaGFyKWNvbnN0ICBfX3B0cjY0DQorP2RvX3dpZGVuQD8kY3R5cGVAR0BzdGRAQE1FQkFHREBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6ZG9fd2lkZW4oY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2RvX3dpZGVuQD8kY3R5cGVAR0BzdGRAQE1FQkFQRUJEUEVCRDBQRUFHQFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmViYWNrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZWJhY2tAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJRUJBUEVBRFhaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjplYmFjayh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2ViYWNrQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUVCQVBFQUdYWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6ZWdwdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9lZ3B0ckA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElFQkFQRUFEWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmVncHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZWdwdHJAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJRUJBUEVBR1haDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmVtcHR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZW1wdHlAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmVtcHR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZW1wdHlAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFfTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZSAgX19jZGVjbCBzdGQ6OmxvY2FsZTo6ZW1wdHkodm9pZCkNCis/ZW1wdHlAbG9jYWxlQHN0ZEBAU0E/QVYxMkBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBzdGQ6OmNvZGVjdnRfYmFzZTo6ZW5jb2Rpbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9lbmNvZGluZ0Bjb2RlY3Z0X2Jhc2VAc3RkQEBRRUJBSFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjplbmQodm9pZCkgX19wdHI2NA0KKz9lbmRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFQRUFEWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmVuZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2VuZEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmVuZCh2b2lkKSBfX3B0cjY0DQorP2VuZEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQVBFQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmVuZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2VuZEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVCQVBFQkdYWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmVuZGwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQpDQorP2VuZGxAc3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBBRUFWMjFAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmVuZGwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCkNCis/ZW5kbEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEFFQVYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmVuZHMoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQpDQorP2VuZHNAc3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBBRUFWMjFAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmVuZHMoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCkNCis/ZW5kc0BzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEFFQVYyMUBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czxjaGFyPjo6ZW9mKHZvaWQpDQorP2VvZkA/JGNoYXJfdHJhaXRzQERAc3RkQEBTQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6ZW9mKHZvaWQpDQorP2VvZkA/JGNoYXJfdHJhaXRzQEdAc3RkQEBTQUdYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgc3RkOjppb3NfYmFzZTo6ZW9mKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZW9mQGlvc19iYXNlQHN0ZEBAUUVCQV9OWFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmVwcHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZXBwdHJAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJRUJBUEVBRFhaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjplcHB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2VwcHRyQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUVCQVBFQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgc2lnbmVkIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpZ25lZCBjaGFyPjo6ZXBzaWxvbih2b2lkKQ0KKz9lcHNpbG9uQD8kbnVtZXJpY19saW1pdHNAQ0BzdGRAQFNBQ1haDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxjaGFyPjo6ZXBzaWxvbih2b2lkKQ0KKz9lcHNpbG9uQD8kbnVtZXJpY19saW1pdHNAREBzdGRAQFNBRFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBjaGFyPjo6ZXBzaWxvbih2b2lkKQ0KKz9lcHNpbG9uQD8kbnVtZXJpY19saW1pdHNARUBzdGRAQFNBRVhaDQorOyBwdWJsaWM6IHN0YXRpYyBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2hvcnQ+OjplcHNpbG9uKHZvaWQpDQorP2Vwc2lsb25APyRudW1lcmljX2xpbWl0c0BGQHN0ZEBAU0FGWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBzaG9ydD46OmVwc2lsb24odm9pZCkNCis/ZXBzaWxvbkA/JG51bWVyaWNfbGltaXRzQEdAc3RkQEBTQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjplcHNpbG9uKHZvaWQpDQorP2Vwc2lsb25APyRudW1lcmljX2xpbWl0c0BIQHN0ZEBAU0FIWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgaW50Pjo6ZXBzaWxvbih2b2lkKQ0KKz9lcHNpbG9uQD8kbnVtZXJpY19saW1pdHNASUBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxsb25nPjo6ZXBzaWxvbih2b2lkKQ0KKz9lcHNpbG9uQD8kbnVtZXJpY19saW1pdHNASkBzdGRAQFNBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBsb25nPjo6ZXBzaWxvbih2b2lkKQ0KKz9lcHNpbG9uQD8kbnVtZXJpY19saW1pdHNAS0BzdGRAQFNBS1haDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjplcHNpbG9uKHZvaWQpDQorP2Vwc2lsb25APyRudW1lcmljX2xpbWl0c0BNQHN0ZEBAU0FNWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6ZXBzaWxvbih2b2lkKQ0KKz9lcHNpbG9uQD8kbnVtZXJpY19saW1pdHNATkBzdGRAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBkb3VibGU+OjplcHNpbG9uKHZvaWQpDQorP2Vwc2lsb25APyRudW1lcmljX2xpbWl0c0BPQHN0ZEBAU0FPWFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGJvb2w+OjplcHNpbG9uKHZvaWQpDQorP2Vwc2lsb25APyRudW1lcmljX2xpbWl0c0BfTkBzdGRAQFNBX05YWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj46OmVxKGNoYXIgY29uc3QgJiBfX3B0cjY0LGNoYXIgY29uc3QgJiBfX3B0cjY0KQ0KKz9lcUA/JGNoYXJfdHJhaXRzQERAc3RkQEBTQV9OQUVCRDBAWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+OjplcSh1bnNpZ25lZCBzaG9ydCBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgJiBfX3B0cjY0KQ0KKz9lcUA/JGNoYXJfdHJhaXRzQEdAc3RkQEBTQV9OQUVCRzBAWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj46OmVxX2ludF90eXBlKGludCBjb25zdCAmIF9fcHRyNjQsaW50IGNvbnN0ICYgX19wdHI2NCkNCis/ZXFfaW50X3R5cGVAPyRjaGFyX3RyYWl0c0BEQHN0ZEBAU0FfTkFFQkgwQFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6ZXFfaW50X3R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICYgX19wdHI2NCkNCis/ZXFfaW50X3R5cGVAPyRjaGFyX3RyYWl0c0BHQHN0ZEBAU0FfTkFFQkcwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZXJhc2UodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP2VyYXNlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjEyQF9LMEBaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjplcmFzZShjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9lcmFzZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQVBFQURQRUFEMEBaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjplcmFzZShjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9lcmFzZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQVBFQURQRUFEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZXJhc2UodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP2VyYXNlQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBQUVBVjEyQF9LMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZXJhc2UodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz9lcmFzZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQVBFQUdQRUFHMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZXJhc2UodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP2VyYXNlQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBUEVBR1BFQUdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjppb3NfYmFzZTo6ZXhjZXB0aW9ucyhzaG9ydCkgX19wdHI2NA0KKz9leGNlcHRpb25zQGlvc19iYXNlQHN0ZEBAUUVBQVhGQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6OmV4Y2VwdGlvbnMoaW50KSBfX3B0cjY0DQorP2V4Y2VwdGlvbnNAaW9zX2Jhc2VAc3RkQEBRRUFBWEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBzdGQ6Omlvc19iYXNlOjpleGNlcHRpb25zKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZXhjZXB0aW9uc0Bpb3NfYmFzZUBzdGRAQFFFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgc3RkOjpfQ3RyPGZsb2F0Pjo6ZXhwKGZsb2F0KQ0KKz9leHBAPyRfQ3RyQE1Ac3RkQEBTQU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+OjpleHAoZG91YmxlKQ0KKz9leHBAPyRfQ3RyQE5Ac3RkQEBTQU5OQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGxvbmcgZG91YmxlPjo6ZXhwKGxvbmcgZG91YmxlKQ0KKz9leHBAPyRfQ3RyQE9Ac3RkQEBTQU9PQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpleHAoY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpDQorP2V4cEBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBRUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6ZXhwKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/ZXhwQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6OmV4cChjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/ZXhwQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFFQlYyMUBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgc3RkOjppb3NfYmFzZTo6ZmFpbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2ZhaWxAaW9zX2Jhc2VAc3RkQEBRRUJBX05YWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1wdW5jdDxjaGFyPjo6ZmFsc2VuYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZmFsc2VuYW1lQD8kbnVtcHVuY3RAREBzdGRAQFFFQkE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpmYWxzZW5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9mYWxzZW5hbWVAPyRudW1wdW5jdEBHQHN0ZEBAUUVCQT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBYWg0KKzsgcHVibGljOiBjaGFyIF9fY2RlY2wgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpmaWxsKGNoYXIpIF9fcHRyNjQNCis/ZmlsbEA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFEREBaDQorOyBwdWJsaWM6IGNoYXIgX19jZGVjbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmZpbGwodm9pZCljb25zdCAgX19wdHI2NA0KKz9maWxsQD8kYmFzaWNfaW9zQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVCQURYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpmaWxsKHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP2ZpbGxAPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBR0dAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpmaWxsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZmlsbEA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQkFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZChjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/ZmluZEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVCQV9LQUVCVjEyQF9LQFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZChjaGFyLHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/ZmluZEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVCQV9LRF9LQFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZChjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/ZmluZEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVCQV9LUEVCRF9LMUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmQoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9maW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUJBX0tQRUJEX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9maW5kQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUJBX0tBRUJWMTJAX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kKHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/ZmluZEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVCQV9LR19LQFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZmluZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP2ZpbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFfS1BFQkdfSzFAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP2ZpbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFfS1BFQkdfS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj46OmZpbmQoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCxjaGFyIGNvbnN0ICYgX19wdHI2NCkNCis/ZmluZEA/JGNoYXJfdHJhaXRzQERAc3RkQEBTQVBFQkRQRUJEX0tBRUJEQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+OjpmaW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICYgX19wdHI2NCkNCis/ZmluZEA/JGNoYXJfdHJhaXRzQEdAc3RkQEBTQVBFQkdQRUJHX0tBRUJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZF9maXJzdF9ub3Rfb2YoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP2ZpbmRfZmlyc3Rfbm90X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUJBX0tBRUJWMTJAX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpmaW5kX2ZpcnN0X25vdF9vZihjaGFyLHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/ZmluZF9maXJzdF9ub3Rfb2ZAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkFfS0RfS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmRfZmlyc3Rfbm90X29mKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9maW5kX2ZpcnN0X25vdF9vZkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVCQV9LUEVCRF9LMUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmRfZmlyc3Rfbm90X29mKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/ZmluZF9maXJzdF9ub3Rfb2ZAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkFfS1BFQkRfS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmRfZmlyc3Rfbm90X29mKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9maW5kX2ZpcnN0X25vdF9vZkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVCQV9LQUVCVjEyQF9LQFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZmluZF9maXJzdF9ub3Rfb2YodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9maW5kX2ZpcnN0X25vdF9vZkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVCQV9LR19LQFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZmluZF9maXJzdF9ub3Rfb2YodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9maW5kX2ZpcnN0X25vdF9vZkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVCQV9LUEVCR19LMUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmRfZmlyc3Rfbm90X29mKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP2ZpbmRfZmlyc3Rfbm90X29mQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUJBX0tQRUJHX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpmaW5kX2ZpcnN0X29mKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9maW5kX2ZpcnN0X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUJBX0tBRUJWMTJAX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpmaW5kX2ZpcnN0X29mKGNoYXIsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9maW5kX2ZpcnN0X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUJBX0tEX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpmaW5kX2ZpcnN0X29mKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9maW5kX2ZpcnN0X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUJBX0tQRUJEX0sxQFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZF9maXJzdF9vZihjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP2ZpbmRfZmlyc3Rfb2ZAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkFfS1BFQkRfS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmRfZmlyc3Rfb2YoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP2ZpbmRfZmlyc3Rfb2ZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFfS0FFQlYxMkBfS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmRfZmlyc3Rfb2YodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9maW5kX2ZpcnN0X29mQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUJBX0tHX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kX2ZpcnN0X29mKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/ZmluZF9maXJzdF9vZkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVCQV9LUEVCR19LMUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmRfZmlyc3Rfb2YodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/ZmluZF9maXJzdF9vZkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVCQV9LUEVCR19LQFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZF9sYXN0X25vdF9vZihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/ZmluZF9sYXN0X25vdF9vZkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVCQV9LQUVCVjEyQF9LQFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZF9sYXN0X25vdF9vZihjaGFyLHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/ZmluZF9sYXN0X25vdF9vZkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVCQV9LRF9LQFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZF9sYXN0X25vdF9vZihjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/ZmluZF9sYXN0X25vdF9vZkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVCQV9LUEVCRF9LMUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmRfbGFzdF9ub3Rfb2YoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9maW5kX2xhc3Rfbm90X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUJBX0tQRUJEX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kX2xhc3Rfbm90X29mKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9maW5kX2xhc3Rfbm90X29mQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUJBX0tBRUJWMTJAX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kX2xhc3Rfbm90X29mKHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/ZmluZF9sYXN0X25vdF9vZkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVCQV9LR19LQFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZmluZF9sYXN0X25vdF9vZih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP2ZpbmRfbGFzdF9ub3Rfb2ZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFfS1BFQkdfSzFAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kX2xhc3Rfbm90X29mKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP2ZpbmRfbGFzdF9ub3Rfb2ZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFfS1BFQkdfS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmRfbGFzdF9vZihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/ZmluZF9sYXN0X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUJBX0tBRUJWMTJAX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpmaW5kX2xhc3Rfb2YoY2hhcix1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP2ZpbmRfbGFzdF9vZkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVCQV9LRF9LQFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZF9sYXN0X29mKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9maW5kX2xhc3Rfb2ZAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkFfS1BFQkRfSzFAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpmaW5kX2xhc3Rfb2YoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9maW5kX2xhc3Rfb2ZAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkFfS1BFQkRfS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmRfbGFzdF9vZihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/ZmluZF9sYXN0X29mQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUJBX0tBRUJWMTJAX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kX2xhc3Rfb2YodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9maW5kX2xhc3Rfb2ZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFfS0dfS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmRfbGFzdF9vZih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP2ZpbmRfbGFzdF9vZkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVCQV9LUEVCR19LMUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmRfbGFzdF9vZih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9maW5kX2xhc3Rfb2ZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFfS1BFQkdfS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6OmZsYWdzKGludCkgX19wdHI2NA0KKz9mbGFnc0Bpb3NfYmFzZUBzdGRAQFFFQUFISEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6OmZsYWdzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZmxhZ3NAaW9zX2Jhc2VAc3RkQEBRRUJBSFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Zmx1c2godm9pZCkgX19wdHI2NA0KKz9mbHVzaEA/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjEyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmZsdXNoKHZvaWQpIF9fcHRyNjQNCis/Zmx1c2hAPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUFFQVYxMkBYWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmZsdXNoKGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0KQ0KKz9mbHVzaEBzdGRAQFlBQUVBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEFFQVYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6Zmx1c2goY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCkNCis/Zmx1c2hAc3RkQEBZQUFFQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBBRUFWMjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RkOjpfTXB1bmN0PGNoYXI+OjpmcmFjX2RpZ2l0cyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2ZyYWNfZGlnaXRzQD8kX01wdW5jdEBEQHN0ZEBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpmcmFjX2RpZ2l0cyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2ZyYWNfZGlnaXRzQD8kX01wdW5jdEBHQHN0ZEBAUUVCQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpzdHJzdHJlYW1idWY6OmZyZWV6ZShib29sKSBfX3B0cjY0DQorP2ZyZWV6ZUBzdHJzdHJlYW1idWZAc3RkQEBRRUFBWF9OQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Z2J1bXAoaW50KSBfX3B0cjY0DQorP2didW1wQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUVBQVhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpnYnVtcChpbnQpIF9fcHRyNjQNCis/Z2J1bXBAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJRUFBWEhAWg0KKzsgcHVibGljOiBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Z2NvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Z2NvdW50QD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQkFfSlhaDQorOyBwdWJsaWM6IF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Omdjb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2djb3VudEA/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUJBX0pYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmdldChjaGFyICYgX19wdHI2NCkgX19wdHI2NA0KKz9nZXRAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYxMkBBRUFEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpnZXQoY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCkgX19wdHI2NA0KKz9nZXRAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYxMkBBRUFWPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmdldChjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0LGNoYXIpIF9fcHRyNjQNCis/Z2V0QD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMTJAQUVBVj8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Z2V0KGNoYXIgKiBfX3B0cjY0LF9faW50NjQpIF9fcHRyNjQNCis/Z2V0QD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMTJAUEVBRF9KQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpnZXQoY2hhciAqIF9fcHRyNjQsX19pbnQ2NCxjaGFyKSBfX3B0cjY0DQorP2dldEA/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjEyQFBFQURfSkRAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpnZXQodm9pZCkgX19wdHI2NA0KKz9nZXRAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUhYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpnZXQodW5zaWduZWQgc2hvcnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP2dldEA/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjEyQEFFQUdAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpnZXQoY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0KSBfX3B0cjY0DQorP2dldEA/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjEyQEFFQVY/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmdldChjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/Z2V0QD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMTJAQUVBVj8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmdldCh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsX19pbnQ2NCkgX19wdHI2NA0KKz9nZXRAPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUFFQVYxMkBQRUFHX0pAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpnZXQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LF9faW50NjQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/Z2V0QD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMTJAUEVBR19KR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpnZXQodm9pZCkgX19wdHI2NA0KKz9nZXRAPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUdYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjptZXNzYWdlczxjaGFyPjo6Z2V0KGludCxpbnQsaW50LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Z2V0QD8kbWVzc2FnZXNAREBzdGRAQFFFQkE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJASEhIQUVCVjMyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pjo6Z2V0KGludCxpbnQsaW50LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Z2V0QD8kbWVzc2FnZXNAR0BzdGRAQFFFQkE/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJASEhIQUVCVjMyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjptb25leV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LGxvbmcgZG91YmxlICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9nZXRAPyRtb25leV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBfTkFFQVZpb3NfYmFzZUAyQEFFQUhBRUFPQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixib29sLGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9nZXRAPyRtb25leV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBfTkFFQVZpb3NfYmFzZUAyQEFFQUhBRUFWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om1vbmV5X2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LGxvbmcgZG91YmxlICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9nZXRAPyRtb25leV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBfTkFFQVZpb3NfYmFzZUAyQEFFQUhBRUFPQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bW9uZXlfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixib29sLGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9nZXRAPyRtb25leV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBfTkFFQVZpb3NfYmFzZUAyQEFFQUhBRUFWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIQUVBR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsdW5zaWduZWQgaW50ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9nZXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVCQT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUVBVmlvc19iYXNlQDJAQUVBSEFFQUlAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LGxvbmcgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIQUVBSkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Z2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhBRUFLQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCxmbG9hdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Z2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhBRUFNQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCxkb3VibGUgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIQUVBTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsbG9uZyBkb3VibGUgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIQUVBT0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIQUVBUEVBWEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsX19pbnQ2NCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Z2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhBRUFfSkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Z2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhBRUFfS0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsYm9vbCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Z2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhBRUFfTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIQUVBR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsdW5zaWduZWQgaW50ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9nZXRAPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVCQT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUVBVmlvc19iYXNlQDJAQUVBSEFFQUlAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LGxvbmcgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIQUVBSkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Z2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhBRUFLQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCxmbG9hdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Z2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhBRUFNQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCxkb3VibGUgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIQUVBTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsbG9uZyBkb3VibGUgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIQUVBT0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIQUVBUEVBWEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsX19pbnQ2NCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Z2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhBRUFfSkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Z2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhBRUFfS0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsYm9vbCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Z2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhBRUFfTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ICBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6Z2V0X2FsbG9jYXRvcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2dldF9hbGxvY2F0b3JAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkE/QVY/JGFsbG9jYXRvckBEQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ICBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6Z2V0X2FsbG9jYXRvcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2dldF9hbGxvY2F0b3JAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkE/QVY/JGFsbG9jYXRvckBHQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXRfZGF0ZShjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCxzdHJ1Y3QgdG0gKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2dldF9kYXRlQD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIUEVBVXRtQEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6Z2V0X2RhdGUoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LHN0cnVjdCB0bSAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Z2V0X2RhdGVAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhQRUFVdG1AQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6Z2V0X21vbnRobmFtZShjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCxzdHJ1Y3QgdG0gKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2dldF9tb250aG5hbWVAPyR0aW1lX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhQRUFVdG1AQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpnZXRfbW9udGhuYW1lKGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCxzdHJ1Y3QgdG0gKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2dldF9tb250aG5hbWVAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhQRUFVdG1AQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6Z2V0X3RpbWUoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsc3RydWN0IHRtICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9nZXRfdGltZUA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVCQT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUVBVmlvc19iYXNlQDJAQUVBSFBFQVV0bUBAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldF90aW1lKGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCxzdHJ1Y3QgdG0gKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2dldF90aW1lQD8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIUEVBVXRtQEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmdldF93ZWVrZGF5KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LHN0cnVjdCB0bSAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Z2V0X3dlZWtkYXlAPyR0aW1lX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhQRUFVdG1AQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpnZXRfd2Vla2RheShjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGludCAmIF9fcHRyNjQsc3RydWN0IHRtICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9nZXRfd2Vla2RheUA/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVCQT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUVBVmlvc19iYXNlQDJAQUVBSFBFQVV0bUBAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXRfeWVhcihjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsaW50ICYgX19wdHI2NCxzdHJ1Y3QgdG0gKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2dldF95ZWFyQD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBRUFWaW9zX2Jhc2VAMkBBRUFIUEVBVXRtQEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6Z2V0X3llYXIoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0LHN0cnVjdCB0bSAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Z2V0X3llYXJAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFFQVZpb3NfYmFzZUAyQEFFQUhQRUFVdG1AQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Z2V0bGluZShjaGFyICogX19wdHI2NCxfX2ludDY0KSBfX3B0cjY0DQorP2dldGxpbmVAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYxMkBQRUFEX0pAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmdldGxpbmUoY2hhciAqIF9fcHRyNjQsX19pbnQ2NCxjaGFyKSBfX3B0cjY0DQorP2dldGxpbmVAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYxMkBQRUFEX0pEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6Z2V0bGluZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsX19pbnQ2NCkgX19wdHI2NA0KKz9nZXRsaW5lQD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMTJAUEVBR19KQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6Z2V0bGluZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsX19pbnQ2NCx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9nZXRsaW5lQD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMTJAUEVBR19KR0BaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6Z2V0bGluZShjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3B0cjY0KQ0KKz9nZXRsaW5lQHN0ZEBAWUFBRUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQUVBVjIxQEFFQVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpnZXRsaW5lKGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fcHRyNjQsY2hhcikNCis/Z2V0bGluZUBzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEFFQVYyMUBBRUFWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAxQERAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6Z2V0bGluZShjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQpDQorP2dldGxpbmVAc3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBBRUFWMjFAQUVBVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMUBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6Z2V0bGluZShjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQpDQorP2dldGxpbmVAc3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBBRUFWMjFAQUVBVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMUBHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsb2NhbGUgIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpnZXRsb2Modm9pZCkgX19wdHI2NA0KKz9nZXRsb2NAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBP0FWbG9jYWxlQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsb2NhbGUgIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmdldGxvYyh2b2lkKSBfX3B0cjY0DQorP2dldGxvY0A/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUE/QVZsb2NhbGVAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmxvY2FsZSAgX19jZGVjbCBzdGQ6Omlvc19iYXNlOjpnZXRsb2Modm9pZCljb25zdCAgX19wdHI2NA0KKz9nZXRsb2NAaW9zX2Jhc2VAc3RkQEBRRUJBP0FWbG9jYWxlQDJAWFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlICBfX2NkZWNsIHN0ZDo6bG9jYWxlOjpnbG9iYWwoY2xhc3Mgc3RkOjpsb2NhbGUgY29uc3QgJiBfX3B0cjY0KQ0KKz9nbG9iYWxAbG9jYWxlQHN0ZEBAU0E/QVYxMkBBRUJWMTJAQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6Omdvb2Qodm9pZCljb25zdCAgX19wdHI2NA0KKz9nb29kQGlvc19iYXNlQHN0ZEBAUUVCQV9OWFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmdwdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9ncHRyQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUVCQVBFQURYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6Z3B0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2dwdHJAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJRUJBUEVBR1haDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46Omdyb3VwaW5nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Z3JvdXBpbmdAPyRfTXB1bmN0QERAc3RkQEBRRUJBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojpncm91cGluZyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2dyb3VwaW5nQD8kX01wdW5jdEBHQHN0ZEBAUUVCQT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1wdW5jdDxjaGFyPjo6Z3JvdXBpbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9ncm91cGluZ0A/JG51bXB1bmN0QERAc3RkQEBRRUJBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6Z3JvdXBpbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9ncm91cGluZ0A/JG51bXB1bmN0QEdAc3RkQEBRRUJBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBzdGQ6OmNvbGxhdGU8Y2hhcj46Omhhc2goY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/aGFzaEA/JGNvbGxhdGVAREBzdGRAQFFFQkFKUEVCRDBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgc3RkOjpjb2xsYXRlPHVuc2lnbmVkIHNob3J0Pjo6aGFzaCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2hhc2hAPyRjb2xsYXRlQEdAc3RkQEBRRUJBSlBFQkcwQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjpjb2RlY3Z0PGNoYXIsY2hhcixpbnQ+OjppZA0KKz9pZEA/JGNvZGVjdnRARERIQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD46OmlkDQorP2lkQD8kY29kZWN2dEBHREhAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjpjb2xsYXRlPGNoYXI+OjppZA0KKz9pZEA/JGNvbGxhdGVAREBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6OmNvbGxhdGU8dW5zaWduZWQgc2hvcnQ+OjppZA0KKz9pZEA/JGNvbGxhdGVAR0BzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6OmN0eXBlPGNoYXI+OjppZA0KKz9pZEA/JGN0eXBlQERAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OmlkDQorP2lkQD8kY3R5cGVAR0BzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om1lc3NhZ2VzPGNoYXI+OjppZA0KKz9pZEA/JG1lc3NhZ2VzQERAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjptZXNzYWdlczx1bnNpZ25lZCBzaG9ydD46OmlkDQorP2lkQD8kbWVzc2FnZXNAR0BzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6aWQNCis/aWRAPyRtb25leV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjptb25leV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmlkDQorP2lkQD8kbW9uZXlfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6bW9uZXlfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjppZA0KKz9pZEA/JG1vbmV5X3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om1vbmV5X3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6aWQNCis/aWRAPyRtb25leV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjptb25leXB1bmN0PGNoYXIsMT46OmlkDQorP2lkQD8kbW9uZXlwdW5jdEBEJDAwQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6bW9uZXlwdW5jdDxjaGFyLDA+OjppZA0KKz9pZEA/JG1vbmV5cHVuY3RARCQwQUBAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDE+OjppZA0KKz9pZEA/JG1vbmV5cHVuY3RARyQwMEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMD46OmlkDQorP2lkQD8kbW9uZXlwdW5jdEBHJDBBQEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmlkDQorP2lkQD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmlkDQorP2lkQD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmlkDQorP2lkQD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmlkDQorP2lkQD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om51bXB1bmN0PGNoYXI+OjppZA0KKz9pZEA/JG51bXB1bmN0QERAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmlkDQorP2lkQD8kbnVtcHVuY3RAR0BzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjppZA0KKz9pZEA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmlkDQorP2lkQD8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjp0aW1lX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6aWQNCis/aWRAPyR0aW1lX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6OnRpbWVfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjppZA0KKz9pZEA/JHRpbWVfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6aWdub3JlKF9faW50NjQsaW50KSBfX3B0cjY0DQorP2lnbm9yZUA/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjEyQF9KSEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Omlnbm9yZShfX2ludDY0LHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP2lnbm9yZUA/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjEyQF9KR0BaDQorOyBwdWJsaWM6IGZsb2F0IF9fY2RlY2wgc3RkOjpfQ29tcGxleF9iYXNlPGZsb2F0Pjo6aW1hZyhmbG9hdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/aW1hZ0A/JF9Db21wbGV4X2Jhc2VATUBzdGRAQFFFQUFNQUVCTUBaDQorOyBwdWJsaWM6IGZsb2F0IF9fY2RlY2wgc3RkOjpfQ29tcGxleF9iYXNlPGZsb2F0Pjo6aW1hZyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2ltYWdAPyRfQ29tcGxleF9iYXNlQE1Ac3RkQEBRRUJBTVhaDQorOyBwdWJsaWM6IGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0NvbXBsZXhfYmFzZTxkb3VibGU+OjppbWFnKGRvdWJsZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/aW1hZ0A/JF9Db21wbGV4X2Jhc2VATkBzdGRAQFFFQUFOQUVCTkBaDQorOyBwdWJsaWM6IGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0NvbXBsZXhfYmFzZTxkb3VibGU+OjppbWFnKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/aW1hZ0A/JF9Db21wbGV4X2Jhc2VATkBzdGRAQFFFQkFOWFoNCis7IHB1YmxpYzogbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8bG9uZyBkb3VibGU+OjppbWFnKGxvbmcgZG91YmxlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9pbWFnQD8kX0NvbXBsZXhfYmFzZUBPQHN0ZEBAUUVBQU9BRUJPQFoNCis7IHB1YmxpYzogbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8bG9uZyBkb3VibGU+OjppbWFnKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/aW1hZ0A/JF9Db21wbGV4X2Jhc2VAT0BzdGRAQFFFQkFPWFoNCis7IGZsb2F0IF9fY2RlY2wgc3RkOjppbWFnKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJiBfX3B0cjY0KQ0KKz9pbWFnQHN0ZEBAWUFNQUVCVj8kY29tcGxleEBNQDFAQFoNCis7IGRvdWJsZSBfX2NkZWNsIHN0ZDo6aW1hZyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorP2ltYWdAc3RkQEBZQU5BRUJWPyRjb21wbGV4QE5AMUBAWg0KKzsgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6OmltYWcoY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorP2ltYWdAc3RkQEBZQU9BRUJWPyRjb21wbGV4QE9AMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmxvY2FsZSAgX19jZGVjbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmltYnVlKGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9pbWJ1ZUA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUE/QVZsb2NhbGVAMkBBRUJWMzJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsb2NhbGUgIF9fY2RlY2wgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmltYnVlKGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9pbWJ1ZUA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUE/QVZsb2NhbGVAMkBBRUJWMzJAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjppbWJ1ZShjbGFzcyBzdGQ6OmxvY2FsZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/aW1idWVAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNRUFBWEFFQlZsb2NhbGVAMkBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6aW1idWUoY2xhc3Mgc3RkOjpsb2NhbGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP2ltYnVlQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUVBQVhBRUJWbG9jYWxlQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsb2NhbGUgIF9fY2RlY2wgc3RkOjppb3NfYmFzZTo6aW1idWUoY2xhc3Mgc3RkOjpsb2NhbGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP2ltYnVlQGlvc19iYXNlQHN0ZEBAUUVBQT9BVmxvY2FsZUAyQEFFQlYzMkBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBzdGQ6OmNvZGVjdnQ8Y2hhcixjaGFyLGludD46OmluKGludCAmIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQgJiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9pbkA/JGNvZGVjdnRARERIQHN0ZEBAUUVCQUhBRUFIUEVCRDFBRUFQRUJEUEVBRDNBRUFQRUFEQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RkOjpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6aW4oaW50ICYgX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2luQD8kY29kZWN2dEBHREhAc3RkQEBRRUJBSEFFQUhQRUJEMUFFQVBFQkRQRUFHM0FFQVBFQUdAWg0KKzsgcHVibGljOiBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojppbl9hdmFpbCh2b2lkKSBfX3B0cjY0DQorP2luX2F2YWlsQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQV9KWFoNCis7IHB1YmxpYzogX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojppbl9hdmFpbCh2b2lkKSBfX3B0cjY0DQorP2luX2F2YWlsQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQV9KWFoNCis7IHB1YmxpYzogc3RhdGljIHNpZ25lZCBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxzaWduZWQgY2hhcj46OmluZmluaXR5KHZvaWQpDQorP2luZmluaXR5QD8kbnVtZXJpY19saW1pdHNAQ0BzdGRAQFNBQ1haDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxjaGFyPjo6aW5maW5pdHkodm9pZCkNCis/aW5maW5pdHlAPyRudW1lcmljX2xpbWl0c0BEQHN0ZEBAU0FEWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGNoYXI+OjppbmZpbml0eSh2b2lkKQ0KKz9pbmZpbml0eUA/JG51bWVyaWNfbGltaXRzQEVAc3RkQEBTQUVYWg0KKzsgcHVibGljOiBzdGF0aWMgc2hvcnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNob3J0Pjo6aW5maW5pdHkodm9pZCkNCis/aW5maW5pdHlAPyRudW1lcmljX2xpbWl0c0BGQHN0ZEBAU0FGWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBzaG9ydD46OmluZmluaXR5KHZvaWQpDQorP2luZmluaXR5QD8kbnVtZXJpY19saW1pdHNAR0BzdGRAQFNBR1haDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46OmluZmluaXR5KHZvaWQpDQorP2luZmluaXR5QD8kbnVtZXJpY19saW1pdHNASEBzdGRAQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGludD46OmluZmluaXR5KHZvaWQpDQorP2luZmluaXR5QD8kbnVtZXJpY19saW1pdHNASUBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxsb25nPjo6aW5maW5pdHkodm9pZCkNCis/aW5maW5pdHlAPyRudW1lcmljX2xpbWl0c0BKQHN0ZEBAU0FKWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGxvbmc+OjppbmZpbml0eSh2b2lkKQ0KKz9pbmZpbml0eUA/JG51bWVyaWNfbGltaXRzQEtAc3RkQEBTQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6aW5maW5pdHkodm9pZCkNCis/aW5maW5pdHlAPyRudW1lcmljX2xpbWl0c0BNQHN0ZEBAU0FNWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkodm9pZCkNCis/aW5maW5pdHlAPyRudW1lcmljX2xpbWl0c0BOQHN0ZEBAU0FOWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGRvdWJsZT46OmluZmluaXR5KHZvaWQpDQorP2luZmluaXR5QD8kbnVtZXJpY19saW1pdHNAT0BzdGRAQFNBT1haDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxib29sPjo6aW5maW5pdHkodm9pZCkNCis/aW5maW5pdHlAPyRudW1lcmljX2xpbWl0c0BfTkBzdGRAQFNBX05YWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojppbml0KGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fcHRyNjQsYm9vbCkgX19wdHI2NA0KKz9pbml0QD8kYmFzaWNfaW9zQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUVBQVhQRUFWPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBfTkBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6aW5pdChjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fcHRyNjQsYm9vbCkgX19wdHI2NA0KKz9pbml0QD8kYmFzaWNfaW9zQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUVBQVhQRUFWPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBfTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Omluc2VydCh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQsY2hhcikgX19wdHI2NA0KKz9pbnNlcnRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFBRUFWMTJAX0swREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Omluc2VydCh1bnNpZ25lZCBfX2ludDY0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQUFFQVYxMkBfS0FFQlYxMkAwMEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Omluc2VydCh1bnNpZ25lZCBfX2ludDY0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/aW5zZXJ0QD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjEyQF9LQUVCVjEyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Omluc2VydCh1bnNpZ25lZCBfX2ludDY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/aW5zZXJ0QD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjEyQF9LUEVCRDBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjppbnNlcnQodW5zaWduZWQgX19pbnQ2NCxjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9pbnNlcnRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFBRUFWMTJAX0tQRUJEQFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Omluc2VydChjaGFyICogX19wdHI2NCxjaGFyKSBfX3B0cjY0DQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQVBFQURQRUFEREBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Omluc2VydChjaGFyICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9pbnNlcnRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFYUEVBRFBFQkQxQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6aW5zZXJ0KGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsY2hhcikgX19wdHI2NA0KKz9pbnNlcnRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFYUEVBRF9LREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Omluc2VydCh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/aW5zZXJ0QD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBQUVBVjEyQF9LMEdAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjppbnNlcnQodW5zaWduZWQgX19pbnQ2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9pbnNlcnRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFWMTJAX0tBRUJWMTJAMDBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjppbnNlcnQodW5zaWduZWQgX19pbnQ2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQUFFQVYxMkBfS0FFQlYxMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjppbnNlcnQodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9pbnNlcnRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFWMTJAX0tQRUJHMEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Omluc2VydCh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9pbnNlcnRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFWMTJAX0tQRUJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjppbnNlcnQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQVBFQUdQRUFHR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Omluc2VydCh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9pbnNlcnRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFYUEVBR1BFQkcxQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6aW5zZXJ0KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQVhQRUFHX0tHQFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgY29uc3QgIHN0ZDo6bW9uZXlwdW5jdDxjaGFyLDE+OjppbnRsDQorP2ludGxAPyRtb25leXB1bmN0QEQkMDBAc3RkQEAyX05CDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIGNvbnN0ICBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwwPjo6aW50bA0KKz9pbnRsQD8kbW9uZXlwdW5jdEBEJDBBQEBzdGRAQDJfTkINCis7IHB1YmxpYzogc3RhdGljIGJvb2wgY29uc3QgIHN0ZDo6bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwxPjo6aW50bA0KKz9pbnRsQD8kbW9uZXlwdW5jdEBHJDAwQHN0ZEBAMl9OQg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBjb25zdCAgc3RkOjptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDA+OjppbnRsDQorP2ludGxAPyRtb25leXB1bmN0QEckMEFAQHN0ZEBAMl9OQg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6aXBmeChib29sKSBfX3B0cjY0DQorP2lwZnhAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQV9OX05AWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjppcGZ4KGJvb2wpIF9fcHRyNjQNCis/aXBmeEA/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBX05fTkBaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpjdHlwZTxjaGFyPjo6aXMoY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsc2hvcnQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2lzQD8kY3R5cGVAREBzdGRAQFFFQkFQRUJEUEVCRDBQRUFGQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIHN0ZDo6Y3R5cGU8Y2hhcj46OmlzKHNob3J0LGNoYXIpY29uc3QgIF9fcHRyNjQNCis/aXNAPyRjdHlwZUBEQHN0ZEBAUUVCQV9ORkRAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6aXModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzaG9ydCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/aXNAPyRjdHlwZUBHQHN0ZEBAUUVCQVBFQkdQRUJHMFBFQUZAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OmlzKHNob3J0LHVuc2lnbmVkIHNob3J0KWNvbnN0ICBfX3B0cjY0DQorP2lzQD8kY3R5cGVAR0BzdGRAQFFFQkFfTkZHQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmlzX29wZW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9pc19vcGVuQD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmlzX29wZW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9pc19vcGVuQD8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBzdGQ6OmJhc2ljX2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojppc19vcGVuKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/aXNfb3BlbkA/JGJhc2ljX2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgc3RkOjpiYXNpY19mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojppc19vcGVuKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/aXNfb3BlbkA/JGJhc2ljX2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgc3RkOjpiYXNpY19pZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmlzX29wZW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9pc19vcGVuQD8kYmFzaWNfaWZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUJBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgc3RkOjpiYXNpY19pZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6aXNfb3Blbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2lzX29wZW5APyRiYXNpY19pZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBzdGQ6OmJhc2ljX29mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6aXNfb3Blbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2lzX29wZW5APyRiYXNpY19vZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBzdGQ6OmJhc2ljX29mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojppc19vcGVuKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/aXNfb3BlbkA/JGJhc2ljX29mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVCQV9OWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmlzZngodm9pZCkgX19wdHI2NA0KKz9pc2Z4QD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6aXNmeCh2b2lkKSBfX3B0cjY0DQorP2lzZnhAPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiBsb25nICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6Oml3b3JkKGludCkgX19wdHI2NA0KKz9pd29yZEBpb3NfYmFzZUBzdGRAQFFFQUFBRUFKSEBaDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6X0N0cjxmbG9hdD46OmxkZXhwKGZsb2F0LGludCkNCis/bGRleHBAPyRfQ3RyQE1Ac3RkQEBTQU1NSEBaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8ZG91YmxlPjo6bGRleHAoZG91YmxlLGludCkNCis/bGRleHBAPyRfQ3RyQE5Ac3RkQEBTQU5OSEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT46OmxkZXhwKGxvbmcgZG91YmxlLGludCkNCis/bGRleHBAPyRfQ3RyQE9Ac3RkQEBTQU9PSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Omxlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2xlbmd0aEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVCQV9LWFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6bGVuZ3RoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/bGVuZ3RoQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUJBX0tYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj46Omxlbmd0aChjaGFyIGNvbnN0ICogX19wdHI2NCkNCis/bGVuZ3RoQD8kY2hhcl90cmFpdHNAREBzdGRAQFNBX0tQRUJEQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6bGVuZ3RoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/bGVuZ3RoQD8kY2hhcl90cmFpdHNAR0BzdGRAQFNBX0tQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RkOjpjb2RlY3Z0PGNoYXIsY2hhcixpbnQ+OjpsZW5ndGgoaW50ICYgX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP2xlbmd0aEA/JGNvZGVjdnRARERIQHN0ZEBAUUVCQUhBRUFIUEVCRDFfS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0ZDo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD46Omxlbmd0aChpbnQgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9sZW5ndGhAPyRjb2RlY3Z0QEdESEBzdGRAQFFFQkFIQUVBSFBFQkcxX0tAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6OmxvZzEwKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJiBfX3B0cjY0KQ0KKz9sb2cxMEBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBRUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6bG9nMTAoY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KQ0KKz9sb2cxMEBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBRUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpsb2cxMChjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/bG9nMTBAc3RkQEBZQT9BVj8kY29tcGxleEBPQDFAQUVCVjIxQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6X0N0cjxmbG9hdD46OmxvZyhmbG9hdCkNCis/bG9nQD8kX0N0ckBNQHN0ZEBAU0FNTUBaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8ZG91YmxlPjo6bG9nKGRvdWJsZSkNCis/bG9nQD8kX0N0ckBOQHN0ZEBAU0FOTkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT46OmxvZyhsb25nIGRvdWJsZSkNCis/bG9nQD8kX0N0ckBPQHN0ZEBAU0FPT0BaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6bG9nKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJiBfX3B0cjY0KQ0KKz9sb2dAc3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUVCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OmxvZyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorP2xvZ0BzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBRUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpsb2coY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorP2xvZ0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBRUJWMjFAQFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+OjpsdChjaGFyIGNvbnN0ICYgX19wdHI2NCxjaGFyIGNvbnN0ICYgX19wdHI2NCkNCis/bHRAPyRjaGFyX3RyYWl0c0BEQHN0ZEBAU0FfTkFFQkQwQFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6bHQodW5zaWduZWQgc2hvcnQgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICYgX19wdHI2NCkNCis/bHRAPyRjaGFyX3RyYWl0c0BHQHN0ZEBAU0FfTkFFQkcwQFoNCis7IHB1YmxpYzogc3RhdGljIHNpZ25lZCBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxzaWduZWQgY2hhcj46Om1heCh2b2lkKQ0KKz9tYXhAPyRudW1lcmljX2xpbWl0c0BDQHN0ZEBAU0FDWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGNoYXI+OjptYXgodm9pZCkNCis/bWF4QD8kbnVtZXJpY19saW1pdHNAREBzdGRAQFNBRFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBjaGFyPjo6bWF4KHZvaWQpDQorP21heEA/JG51bWVyaWNfbGltaXRzQEVAc3RkQEBTQUVYWg0KKzsgcHVibGljOiBzdGF0aWMgc2hvcnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNob3J0Pjo6bWF4KHZvaWQpDQorP21heEA/JG51bWVyaWNfbGltaXRzQEZAc3RkQEBTQUZYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIHNob3J0Pjo6bWF4KHZvaWQpDQorP21heEA/JG51bWVyaWNfbGltaXRzQEdAc3RkQEBTQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptYXgodm9pZCkNCis/bWF4QD8kbnVtZXJpY19saW1pdHNASEBzdGRAQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGludD46Om1heCh2b2lkKQ0KKz9tYXhAPyRudW1lcmljX2xpbWl0c0BJQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmc+OjptYXgodm9pZCkNCis/bWF4QD8kbnVtZXJpY19saW1pdHNASkBzdGRAQFNBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBsb25nPjo6bWF4KHZvaWQpDQorP21heEA/JG51bWVyaWNfbGltaXRzQEtAc3RkQEBTQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KHZvaWQpDQorP21heEA/JG51bWVyaWNfbGltaXRzQE1Ac3RkQEBTQU1YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjptYXgodm9pZCkNCis/bWF4QD8kbnVtZXJpY19saW1pdHNATkBzdGRAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBkb3VibGU+OjptYXgodm9pZCkNCis/bWF4QD8kbnVtZXJpY19saW1pdHNAT0BzdGRAQFNBT1haDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxib29sPjo6bWF4KHZvaWQpDQorP21heEA/JG51bWVyaWNfbGltaXRzQF9OQHN0ZEBAU0FfTlhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0ZDo6Y29kZWN2dF9iYXNlOjptYXhfbGVuZ3RoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/bWF4X2xlbmd0aEBjb2RlY3Z0X2Jhc2VAc3RkQEBRRUJBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Om1heF9zaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/bWF4X3NpemVAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkFfS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Om1heF9zaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/bWF4X3NpemVAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFfS1haDQorOyBwdWJsaWM6IHN0YXRpYyBzaWduZWQgY2hhciBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2lnbmVkIGNoYXI+OjptaW4odm9pZCkNCis/bWluQD8kbnVtZXJpY19saW1pdHNAQ0BzdGRAQFNBQ1haDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxjaGFyPjo6bWluKHZvaWQpDQorP21pbkA/JG51bWVyaWNfbGltaXRzQERAc3RkQEBTQURYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgY2hhcj46Om1pbih2b2lkKQ0KKz9taW5APyRudW1lcmljX2xpbWl0c0BFQHN0ZEBAU0FFWFoNCis7IHB1YmxpYzogc3RhdGljIHNob3J0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxzaG9ydD46Om1pbih2b2lkKQ0KKz9taW5APyRudW1lcmljX2xpbWl0c0BGQHN0ZEBAU0FGWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBzaG9ydD46Om1pbih2b2lkKQ0KKz9taW5APyRudW1lcmljX2xpbWl0c0BHQHN0ZEBAU0FHWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWluKHZvaWQpDQorP21pbkA/JG51bWVyaWNfbGltaXRzQEhAc3RkQEBTQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBpbnQ+OjptaW4odm9pZCkNCis/bWluQD8kbnVtZXJpY19saW1pdHNASUBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxsb25nPjo6bWluKHZvaWQpDQorP21pbkA/JG51bWVyaWNfbGltaXRzQEpAc3RkQEBTQUpYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgbG9uZz46Om1pbih2b2lkKQ0KKz9taW5APyRudW1lcmljX2xpbWl0c0BLQHN0ZEBAU0FLWFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46Om1pbih2b2lkKQ0KKz9taW5APyRudW1lcmljX2xpbWl0c0BNQHN0ZEBAU0FNWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWluKHZvaWQpDQorP21pbkA/JG51bWVyaWNfbGltaXRzQE5Ac3RkQEBTQU5YWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgZG91YmxlPjo6bWluKHZvaWQpDQorP21pbkA/JG51bWVyaWNfbGltaXRzQE9Ac3RkQEBTQU9YWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8Ym9vbD46Om1pbih2b2lkKQ0KKz9taW5APyRudW1lcmljX2xpbWl0c0BfTkBzdGRAQFNBX05YWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+Ojptb3ZlKGNoYXIgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpDQorP21vdmVAPyRjaGFyX3RyYWl0c0BEQHN0ZEBAU0FQRUFEUEVBRFBFQkRfS0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6bW92ZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpDQorP21vdmVAPyRjaGFyX3RyYWl0c0BHQHN0ZEBAU0FQRUFHUEVBR1BFQkdfS0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6OmxvY2FsZTo6bmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP25hbWVAbG9jYWxlQHN0ZEBAUUVCQT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiBjaGFyIF9fY2RlY2wgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpuYXJyb3coY2hhcixjaGFyKWNvbnN0ICBfX3B0cjY0DQorP25hcnJvd0A/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQkFERERAWg0KKzsgcHVibGljOiBjaGFyIF9fY2RlY2wgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om5hcnJvdyh1bnNpZ25lZCBzaG9ydCxjaGFyKWNvbnN0ICBfX3B0cjY0DQorP25hcnJvd0A/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQkFER0RAWg0KKzsgcHVibGljOiBjaGFyIF9fY2RlY2wgc3RkOjpjdHlwZTxjaGFyPjo6bmFycm93KGNoYXIsY2hhciljb25zdCAgX19wdHI2NA0KKz9uYXJyb3dAPyRjdHlwZUBEQHN0ZEBAUUVCQUREREBaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpjdHlwZTxjaGFyPjo6bmFycm93KGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIsY2hhciAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/bmFycm93QD8kY3R5cGVAREBzdGRAQFFFQkFQRUJEUEVCRDBEUEVBREBaDQorOyBwdWJsaWM6IGNoYXIgX19jZGVjbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6bmFycm93KHVuc2lnbmVkIHNob3J0LGNoYXIpY29uc3QgIF9fcHRyNjQNCis/bmFycm93QD8kY3R5cGVAR0BzdGRAQFFFQkFER0RAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6bmFycm93KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2hhcixjaGFyICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9uYXJyb3dAPyRjdHlwZUBHQHN0ZEBAUUVCQVBFQkdQRUJHMERQRUFEQFoNCis7IHB1YmxpYzogc3RydWN0IHN0ZDo6bW9uZXlfYmFzZTo6cGF0dGVybiAgX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46Om5lZ19mb3JtYXQodm9pZCljb25zdCAgX19wdHI2NA0KKz9uZWdfZm9ybWF0QD8kX01wdW5jdEBEQHN0ZEBAUUVCQT9BVXBhdHRlcm5AbW9uZXlfYmFzZUAyQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBzdGQ6Om1vbmV5X2Jhc2U6OnBhdHRlcm4gIF9fY2RlY2wgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6bmVnX2Zvcm1hdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP25lZ19mb3JtYXRAPyRfTXB1bmN0QEdAc3RkQEBRRUJBP0FVcGF0dGVybkBtb25leV9iYXNlQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6X01wdW5jdDxjaGFyPjo6bmVnYXRpdmVfc2lnbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP25lZ2F0aXZlX3NpZ25APyRfTXB1bmN0QERAc3RkQEBRRUJBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpuZWdhdGl2ZV9zaWduKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/bmVnYXRpdmVfc2lnbkA/JF9NcHVuY3RAR0BzdGRAQFFFQkE/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAWFoNCis7IGZsb2F0IF9fY2RlY2wgc3RkOjpub3JtKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJiBfX3B0cjY0KQ0KKz9ub3JtQHN0ZEBAWUFNQUVCVj8kY29tcGxleEBNQDFAQFoNCis7IGRvdWJsZSBfX2NkZWNsIHN0ZDo6bm9ybShjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorP25vcm1Ac3RkQEBZQU5BRUJWPyRjb21wbGV4QE5AMUBAWg0KKzsgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Om5vcm0oY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorP25vcm1Ac3RkQEBZQU9BRUJWPyRjb21wbGV4QE9AMUBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czxjaGFyPjo6bm90X2VvZihpbnQgY29uc3QgJiBfX3B0cjY0KQ0KKz9ub3RfZW9mQD8kY2hhcl90cmFpdHNAREBzdGRAQFNBSEFFQkhAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6bm90X2VvZih1bnNpZ25lZCBzaG9ydCBjb25zdCAmIF9fcHRyNjQpDQorP25vdF9lb2ZAPyRjaGFyX3RyYWl0c0BHQHN0ZEBAU0FHQUVCR0BaDQorOyBzdHJ1Y3Qgc3RkOjpub3Rocm93X3QgY29uc3QgIHN0ZDo6bm90aHJvdw0KKz9ub3Rocm93QHN0ZEBAM1Vub3Rocm93X3RAMUBCDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBfX2ludDY0IGNvbnN0ICBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Om5wb3MNCis/bnBvc0A/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAMl9LQg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBjb25zdCAgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpucG9zDQorP25wb3NAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQDJfS0INCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVuKGNoYXIgY29uc3QgKiBfX3B0cjY0LHNob3J0KSBfX3B0cjY0DQorP29wZW5APyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQVBFQVYxMkBQRUJERkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlbihjaGFyIGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/b3BlbkA/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBUEVBVjEyQFBFQkRIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlbihjaGFyIGNvbnN0ICogX19wdHI2NCxzaG9ydCkgX19wdHI2NA0KKz9vcGVuQD8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFQRUFWMTJAUEVCREZAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVuKGNoYXIgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9vcGVuQD8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFQRUFWMTJAUEVCREhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlbihjaGFyIGNvbnN0ICogX19wdHI2NCxzaG9ydCkgX19wdHI2NA0KKz9vcGVuQD8kYmFzaWNfZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFYUEVCREZAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlbihjaGFyIGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/b3BlbkA/JGJhc2ljX2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBWFBFQkRIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlbihjaGFyIGNvbnN0ICogX19wdHI2NCxzaG9ydCkgX19wdHI2NA0KKz9vcGVuQD8kYmFzaWNfZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFYUEVCREZAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVuKGNoYXIgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9vcGVuQD8kYmFzaWNfZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFYUEVCREhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19pZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZW4oY2hhciBjb25zdCAqIF9fcHRyNjQsc2hvcnQpIF9fcHRyNjQNCis/b3BlbkA/JGJhc2ljX2lmc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQVhQRUJERkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlbihjaGFyIGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/b3BlbkA/JGJhc2ljX2lmc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQVhQRUJESEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVuKGNoYXIgY29uc3QgKiBfX3B0cjY0LHNob3J0KSBfX3B0cjY0DQorP29wZW5APyRiYXNpY19pZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFYUEVCREZAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19pZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlbihjaGFyIGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/b3BlbkA/JGJhc2ljX2lmc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQVhQRUJESEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX29mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlbihjaGFyIGNvbnN0ICogX19wdHI2NCxzaG9ydCkgX19wdHI2NA0KKz9vcGVuQD8kYmFzaWNfb2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBWFBFQkRGQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVuKGNoYXIgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9vcGVuQD8kYmFzaWNfb2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBWFBFQkRIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZW4oY2hhciBjb25zdCAqIF9fcHRyNjQsc2hvcnQpIF9fcHRyNjQNCis/b3BlbkA/JGJhc2ljX29mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQVhQRUJERkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX29mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVuKGNoYXIgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9vcGVuQD8kYmFzaWNfb2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBWFBFQkRIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RkOjptZXNzYWdlczxjaGFyPjo6b3BlbihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9vcGVuQD8kbWVzc2FnZXNAREBzdGRAQFFFQkFIQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBBRUJWbG9jYWxlQDJAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RkOjptZXNzYWdlczx1bnNpZ25lZCBzaG9ydD46Om9wZW4oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmxvY2FsZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/b3BlbkA/JG1lc3NhZ2VzQEdAc3RkQEBRRUJBSEFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAQUVCVmxvY2FsZUAyQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGZ4KHZvaWQpIF9fcHRyNjQNCis/b3BmeEA/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBX05YWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGZ4KHZvaWQpIF9fcHRyNjQNCis/b3BmeEA/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBX05YWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3NmeCh2b2lkKSBfX3B0cjY0DQorP29zZnhAPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojpvc2Z4KHZvaWQpIF9fcHRyNjQNCis/b3NmeEA/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0ZDo6Y29kZWN2dDxjaGFyLGNoYXIsaW50Pjo6b3V0KGludCAmIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQgJiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9vdXRAPyRjb2RlY3Z0QERESEBzdGRAQFFFQkFIQUVBSFBFQkQxQUVBUEVCRFBFQUQzQUVBUEVBREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0ZDo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD46Om91dChpbnQgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0ICYgX19wdHI2NCxjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/b3V0QD8kY29kZWN2dEBHREhAc3RkQEBRRUJBSEFFQUhQRUJHMUFFQVBFQkdQRUFEM0FFQVBFQURAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om92ZXJmbG93KGludCkgX19wdHI2NA0KKz9vdmVyZmxvd0A/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNRUFBSEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvdmVyZmxvdyh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9vdmVyZmxvd0A/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBNRUFBR0dAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3ZlcmZsb3coaW50KSBfX3B0cjY0DQorP292ZXJmbG93QD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBATUVBQUhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvdmVyZmxvdyh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9vdmVyZmxvd0A/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1FQUFHR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpvdmVyZmxvdyhpbnQpIF9fcHRyNjQNCis/b3ZlcmZsb3dAPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQE1FQUFISEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Om92ZXJmbG93KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP292ZXJmbG93QD8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBNRUFBR0dAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIHN0ZDo6c3Ryc3RyZWFtYnVmOjpvdmVyZmxvdyhpbnQpIF9fcHRyNjQNCis/b3ZlcmZsb3dAc3Ryc3RyZWFtYnVmQHN0ZEBATUVBQUhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpwYmFja2ZhaWwoaW50KSBfX3B0cjY0DQorP3BiYWNrZmFpbEA/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNRUFBSEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpwYmFja2ZhaWwodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/cGJhY2tmYWlsQD8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1FQUFHR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpwYmFja2ZhaWwoaW50KSBfX3B0cjY0DQorP3BiYWNrZmFpbEA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQE1FQUFISEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cGJhY2tmYWlsKHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP3BiYWNrZmFpbEA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1FQUFHR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpwYmFja2ZhaWwoaW50KSBfX3B0cjY0DQorP3BiYWNrZmFpbEA/JGJhc2ljX3N0cmluZ2J1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBATUVBQUhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cGJhY2tmYWlsKHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP3BiYWNrZmFpbEA/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBATUVBQUdHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBzdGQ6OnN0cnN0cmVhbWJ1Zjo6cGJhY2tmYWlsKGludCkgX19wdHI2NA0KKz9wYmFja2ZhaWxAc3Ryc3RyZWFtYnVmQHN0ZEBATUVBQUhIQFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnBiYXNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cGJhc2VAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJRUJBUEVBRFhaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpwYmFzZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3BiYXNlQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUVCQVBFQUdYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpwYnVtcChpbnQpIF9fcHRyNjQNCis/cGJ1bXBAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJRUFBWEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnBidW1wKGludCkgX19wdHI2NA0KKz9wYnVtcEA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElFQUFYSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnBlZWsodm9pZCkgX19wdHI2NA0KKz9wZWVrQD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnBlZWsodm9pZCkgX19wdHI2NA0KKz9wZWVrQD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFHWFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpwb2xhcihmbG9hdCBjb25zdCAmIF9fcHRyNjQsZmxvYXQgY29uc3QgJiBfX3B0cjY0KQ0KKz9wb2xhckBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBRUJNMEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6cG9sYXIoZmxvYXQgY29uc3QgJiBfX3B0cjY0KQ0KKz9wb2xhckBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBRUJNQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6cG9sYXIoZG91YmxlIGNvbnN0ICYgX19wdHI2NCxkb3VibGUgY29uc3QgJiBfX3B0cjY0KQ0KKz9wb2xhckBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBRUJOMEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OnBvbGFyKGRvdWJsZSBjb25zdCAmIF9fcHRyNjQpDQorP3BvbGFyQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFFQk5AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6OnBvbGFyKGxvbmcgZG91YmxlIGNvbnN0ICYgX19wdHI2NCxsb25nIGRvdWJsZSBjb25zdCAmIF9fcHRyNjQpDQorP3BvbGFyQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFFQk8wQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpwb2xhcihsb25nIGRvdWJsZSBjb25zdCAmIF9fcHRyNjQpDQorP3BvbGFyQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFFQk9AWg0KKzsgcHVibGljOiBzdHJ1Y3Qgc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuICBfX2NkZWNsIHN0ZDo6X01wdW5jdDxjaGFyPjo6cG9zX2Zvcm1hdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3Bvc19mb3JtYXRAPyRfTXB1bmN0QERAc3RkQEBRRUJBP0FVcGF0dGVybkBtb25leV9iYXNlQDJAWFoNCis7IHB1YmxpYzogc3RydWN0IHN0ZDo6bW9uZXlfYmFzZTo6cGF0dGVybiAgX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojpwb3NfZm9ybWF0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cG9zX2Zvcm1hdEA/JF9NcHVuY3RAR0BzdGRAQFFFQkE/QVVwYXR0ZXJuQG1vbmV5X2Jhc2VAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpfTXB1bmN0PGNoYXI+Ojpwb3NpdGl2ZV9zaWduKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cG9zaXRpdmVfc2lnbkA/JF9NcHVuY3RAREBzdGRAQFFFQkE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46OnBvc2l0aXZlX3NpZ24odm9pZCljb25zdCAgX19wdHI2NA0KKz9wb3NpdGl2ZV9zaWduQD8kX01wdW5jdEBHQHN0ZEBAUUVCQT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBYWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Ol9DdHI8ZmxvYXQ+Ojpwb3coZmxvYXQsZmxvYXQpDQorP3Bvd0A/JF9DdHJATUBzdGRAQFNBTU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+Ojpwb3coZG91YmxlLGRvdWJsZSkNCis/cG93QD8kX0N0ckBOQHN0ZEBAU0FOTk5AWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+Ojpwb3cobG9uZyBkb3VibGUsbG9uZyBkb3VibGUpDQorP3Bvd0A/JF9DdHJAT0BzdGRAQFNBT09PQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpwb3coZmxvYXQgY29uc3QgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJiBfX3B0cjY0KQ0KKz9wb3dAc3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUVCTUFFQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6OnBvdyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCkNCis/cG93QHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAxQEFFQlYyMUAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpwb3coY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQsZmxvYXQgY29uc3QgJiBfX3B0cjY0KQ0KKz9wb3dAc3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUVCVjIxQEFFQk1AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6OnBvdyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCxpbnQpDQorP3Bvd0BzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBRUJWMjFASEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OnBvdyhkb3VibGUgY29uc3QgJiBfX3B0cjY0LGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/cG93QHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFFQk5BRUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6cG93KGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorP3Bvd0BzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBRUJWMjFAMEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OnBvdyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQsZG91YmxlIGNvbnN0ICYgX19wdHI2NCkNCis/cG93QHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUBBRUJOQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6cG93KGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCxpbnQpDQorP3Bvd0BzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBRUJWMjFASEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6cG93KGxvbmcgZG91YmxlIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/cG93QHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFFQk9BRUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpwb3coY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorP3Bvd0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBRUJWMjFAMEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6cG93KGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0LGxvbmcgZG91YmxlIGNvbnN0ICYgX19wdHI2NCkNCis/cG93QHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFFQlYyMUBBRUJPQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpwb3coY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQsaW50KQ0KKz9wb3dAc3RkQEBZQT9BVj8kY29tcGxleEBPQDFAQUVCVjIxQEhAWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6cHB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3BwdHJAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJRUJBUEVBRFhaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpwcHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cHB0ckA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElFQkFQRUFHWFoNCis7IHB1YmxpYzogX19pbnQ2NCBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6OnByZWNpc2lvbihpbnQpIF9fcHRyNjQNCis/cHJlY2lzaW9uQGlvc19iYXNlQHN0ZEBAUUVBQV9KSEBaDQorOyBwdWJsaWM6IF9faW50NjQgX19jZGVjbCBzdGQ6Omlvc19iYXNlOjpwcmVjaXNpb24odm9pZCljb25zdCAgX19wdHI2NA0KKz9wcmVjaXNpb25AaW9zX2Jhc2VAc3RkQEBRRUJBX0pYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmxvY2FsZSAgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnB1YmltYnVlKGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9wdWJpbWJ1ZUA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUE/QVZsb2NhbGVAMkBBRUJWMzJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsb2NhbGUgIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnB1YmltYnVlKGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9wdWJpbWJ1ZUA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUE/QVZsb2NhbGVAMkBBRUJWMzJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpmcG9zPGludD4gIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpwdWJzZWVrb2ZmKF9faW50NjQsc2hvcnQsc2hvcnQpIF9fcHRyNjQNCis/cHVic2Vla29mZkA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUE/QVY/JGZwb3NASEAyQF9KRkZAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnB1YnNlZWtvZmYoX19pbnQ2NCxlbnVtIHN0ZDo6aW9zX2Jhc2U6OnNlZWtkaXIsaW50KSBfX3B0cjY0DQorP3B1YnNlZWtvZmZAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBP0FWPyRmcG9zQEhAMkBfSlc0c2Vla2RpckBpb3NfYmFzZUAyQEhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cHVic2Vla29mZihfX2ludDY0LHNob3J0LHNob3J0KSBfX3B0cjY0DQorP3B1YnNlZWtvZmZAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBP0FWPyRmcG9zQEhAMkBfSkZGQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpmcG9zPGludD4gIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnB1YnNlZWtvZmYoX19pbnQ2NCxlbnVtIHN0ZDo6aW9zX2Jhc2U6OnNlZWtkaXIsaW50KSBfX3B0cjY0DQorP3B1YnNlZWtvZmZAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBP0FWPyRmcG9zQEhAMkBfSlc0c2Vla2RpckBpb3NfYmFzZUAyQEhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnB1YnNlZWtwb3MoY2xhc3Mgc3RkOjpmcG9zPGludD4sc2hvcnQpIF9fcHRyNjQNCis/cHVic2Vla3Bvc0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUE/QVY/JGZwb3NASEAyQFYzMkBGQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpmcG9zPGludD4gIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpwdWJzZWVrcG9zKGNsYXNzIHN0ZDo6ZnBvczxpbnQ+LGludCkgX19wdHI2NA0KKz9wdWJzZWVrcG9zQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQT9BVj8kZnBvc0BIQDJAVjMyQEhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cHVic2Vla3BvcyhjbGFzcyBzdGQ6OmZwb3M8aW50PixzaG9ydCkgX19wdHI2NA0KKz9wdWJzZWVrcG9zQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQT9BVj8kZnBvc0BIQDJAVjMyQEZAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cHVic2Vla3BvcyhjbGFzcyBzdGQ6OmZwb3M8aW50PixpbnQpIF9fcHRyNjQNCis/cHVic2Vla3Bvc0A/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUE/QVY/JGZwb3NASEAyQFYzMkBIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6cHVic2V0YnVmKGNoYXIgKiBfX3B0cjY0LF9faW50NjQpIF9fcHRyNjQNCis/cHVic2V0YnVmQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQVBFQVYxMkBQRUFEX0pAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cHVic2V0YnVmKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxfX2ludDY0KSBfX3B0cjY0DQorP3B1YnNldGJ1ZkA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFQRUFWMTJAUEVBR19KQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpwdWJzeW5jKHZvaWQpIF9fcHRyNjQNCis/cHVic3luY0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnB1YnN5bmModm9pZCkgX19wdHI2NA0KKz9wdWJzeW5jQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUhYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnB1dChjaGFyKSBfX3B0cjY0DQorP3B1dEA/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBQUVBVjEyQERAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpwdXQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/cHV0QD8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMTJAR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjptb25leV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsY2hhcixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP3B1dEA/JG1vbmV5X3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAX05BRUFWaW9zX2Jhc2VAMkBEQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bW9uZXlfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixib29sLGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGNoYXIsbG9uZyBkb3VibGUpY29uc3QgIF9fcHRyNjQNCis/cHV0QD8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVCQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBfTkFFQVZpb3NfYmFzZUAyQERPQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9wdXRAPyRtb25leV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQF9OQUVBVmlvc19iYXNlQDJAR0FFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQsbG9uZyBkb3VibGUpY29uc3QgIF9fcHRyNjQNCis/cHV0QD8kbW9uZXlfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVCQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBfTkFFQVZpb3NfYmFzZUAyQEdPQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGNoYXIsbG9uZyljb25zdCAgX19wdHI2NA0KKz9wdXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVCQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBBRUFWaW9zX2Jhc2VAMkBESkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxjaGFyLHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/cHV0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUVBVmlvc19iYXNlQDJAREtAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsY2hhcixkb3VibGUpY29uc3QgIF9fcHRyNjQNCis/cHV0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUVBVmlvc19iYXNlQDJARE5AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsY2hhcixsb25nIGRvdWJsZSljb25zdCAgX19wdHI2NA0KKz9wdXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVCQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBBRUFWaW9zX2Jhc2VAMkBET0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxjaGFyLHZvaWQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP3B1dEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQEFFQVZpb3NfYmFzZUAyQERQRUJYQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LGNoYXIsX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9wdXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVCQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBBRUFWaW9zX2Jhc2VAMkBEX0pAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsY2hhcix1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP3B1dEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQEFFQVZpb3NfYmFzZUAyQERfS0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxjaGFyLGJvb2wpY29uc3QgIF9fcHRyNjQNCis/cHV0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUVBVmlvc19iYXNlQDJARF9OQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCxsb25nKWNvbnN0ICBfX3B0cjY0DQorP3B1dEA/JG51bV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEFFQVZpb3NfYmFzZUAyQEdKQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP3B1dEA/JG51bV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEFFQVZpb3NfYmFzZUAyQEdLQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCxkb3VibGUpY29uc3QgIF9fcHRyNjQNCis/cHV0QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUVBVmlvc19iYXNlQDJAR05AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0LGxvbmcgZG91YmxlKWNvbnN0ICBfX3B0cjY0DQorP3B1dEA/JG51bV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEFFQVZpb3NfYmFzZUAyQEdPQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCx2b2lkIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9wdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVCQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBBRUFWaW9zX2Jhc2VAMkBHUEVCWEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQsX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9wdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUVCQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBBRUFWaW9zX2Jhc2VAMkBHX0pAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/cHV0QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUVBVmlvc19iYXNlQDJAR19LQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCxib29sKWNvbnN0ICBfX3B0cjY0DQorP3B1dEA/JG51bV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEFFQVZpb3NfYmFzZUAyQEdfTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjp0aW1lX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmIF9fcHRyNjQsc3RydWN0IHRtIGNvbnN0ICogX19wdHI2NCxjaGFyLGNoYXIpY29uc3QgIF9fcHRyNjQNCis/cHV0QD8kdGltZV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQEFFQVZpb3NfYmFzZUAyQFBFQlV0bUBARERAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6dGltZV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LHN0cnVjdCB0bSBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/cHV0QD8kdGltZV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQEFFQVZpb3NfYmFzZUAyQFBFQlV0bUBAUEVCRDNAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjp0aW1lX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxzdHJ1Y3QgdG0gY29uc3QgKiBfX3B0cjY0LGNoYXIsY2hhciljb25zdCAgX19wdHI2NA0KKz9wdXRAPyR0aW1lX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUVBVmlvc19iYXNlQDJAUEVCVXRtQEBEREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6OnRpbWVfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3B0cjY0LHN0cnVjdCB0bSBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9wdXRAPyR0aW1lX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUVBVmlvc19iYXNlQDJAUEVCVXRtQEBQRUJHM0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6cHV0YmFjayhjaGFyKSBfX3B0cjY0DQorP3B1dGJhY2tAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYxMkBEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cHV0YmFjayh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9wdXRiYWNrQD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMTJAR0BaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6OnB3b3JkKGludCkgX19wdHI2NA0KKz9wd29yZEBpb3NfYmFzZUBzdGRAQFFFQUFBRUFQRUFYSEBaDQorOyBwdWJsaWM6IHN0YXRpYyBzaWduZWQgY2hhciBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2lnbmVkIGNoYXI+OjpxdWlldF9OYU4odm9pZCkNCis/cXVpZXRfTmFOQD8kbnVtZXJpY19saW1pdHNAQ0BzdGRAQFNBQ1haDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxjaGFyPjo6cXVpZXRfTmFOKHZvaWQpDQorP3F1aWV0X05hTkA/JG51bWVyaWNfbGltaXRzQERAc3RkQEBTQURYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgY2hhcj46OnF1aWV0X05hTih2b2lkKQ0KKz9xdWlldF9OYU5APyRudW1lcmljX2xpbWl0c0BFQHN0ZEBAU0FFWFoNCis7IHB1YmxpYzogc3RhdGljIHNob3J0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxzaG9ydD46OnF1aWV0X05hTih2b2lkKQ0KKz9xdWlldF9OYU5APyRudW1lcmljX2xpbWl0c0BGQHN0ZEBAU0FGWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBzaG9ydD46OnF1aWV0X05hTih2b2lkKQ0KKz9xdWlldF9OYU5APyRudW1lcmljX2xpbWl0c0BHQHN0ZEBAU0FHWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6cXVpZXRfTmFOKHZvaWQpDQorP3F1aWV0X05hTkA/JG51bWVyaWNfbGltaXRzQEhAc3RkQEBTQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBpbnQ+OjpxdWlldF9OYU4odm9pZCkNCis/cXVpZXRfTmFOQD8kbnVtZXJpY19saW1pdHNASUBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxsb25nPjo6cXVpZXRfTmFOKHZvaWQpDQorP3F1aWV0X05hTkA/JG51bWVyaWNfbGltaXRzQEpAc3RkQEBTQUpYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgbG9uZz46OnF1aWV0X05hTih2b2lkKQ0KKz9xdWlldF9OYU5APyRudW1lcmljX2xpbWl0c0BLQHN0ZEBAU0FLWFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnF1aWV0X05hTih2b2lkKQ0KKz9xdWlldF9OYU5APyRudW1lcmljX2xpbWl0c0BNQHN0ZEBAU0FNWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKHZvaWQpDQorP3F1aWV0X05hTkA/JG51bWVyaWNfbGltaXRzQE5Ac3RkQEBTQU5YWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgZG91YmxlPjo6cXVpZXRfTmFOKHZvaWQpDQorP3F1aWV0X05hTkA/JG51bWVyaWNfbGltaXRzQE9Ac3RkQEBTQU9YWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8Ym9vbD46OnF1aWV0X05hTih2b2lkKQ0KKz9xdWlldF9OYU5APyRudW1lcmljX2xpbWl0c0BfTkBzdGRAQFNBX05YWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfaXRlcmF0b3I8Y2hhciAqIF9fcHRyNjQsY2hhcixjaGFyICYgX19wdHI2NCxjaGFyICogX19wdHI2NCxfX2ludDY0PiAgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJiZWdpbih2b2lkKSBfX3B0cjY0DQorP3JiZWdpbkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQT9BVj8kcmV2ZXJzZV9pdGVyYXRvckBQRUFEREFFQURQRUFEX0pAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfaXRlcmF0b3I8Y2hhciBjb25zdCAqIF9fcHRyNjQsY2hhcixjaGFyIGNvbnN0ICYgX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCxfX2ludDY0PiAgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJiZWdpbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3JiZWdpbkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVCQT9BVj8kcmV2ZXJzZV9pdGVyYXRvckBQRUJEREFFQkRQRUJEX0pAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIHNob3J0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsX19pbnQ2ND4gIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyYmVnaW4odm9pZCkgX19wdHI2NA0KKz9yYmVnaW5APyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUE/QVY/JHJldmVyc2VfaXRlcmF0b3JAUEVBR0dBRUFHUEVBR19KQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpyZXZlcnNlX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LF9faW50NjQ+ICBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmJlZ2luKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmJlZ2luQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUJBP0FWPyRyZXZlcnNlX2l0ZXJhdG9yQFBFQkdHQUVCR1BFQkdfSkAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6cmRidWYodm9pZCljb25zdCAgX19wdHI2NA0KKz9yZGJ1ZkA/JGJhc2ljX2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUJBUEVBVj8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnJkYnVmKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmRidWZAPyRiYXNpY19mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVCQVBFQVY/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpyZGJ1Zih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3JkYnVmQD8kYmFzaWNfaWZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUJBUEVBVj8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpyZGJ1Zih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3JkYnVmQD8kYmFzaWNfaWZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUJBUEVBVj8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnJkYnVmKGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/cmRidWZAPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBUEVBVj8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAUEVBVjMyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnJkYnVmKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmRidWZAPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUJBUEVBVj8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnJkYnVmKGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICogX19wdHI2NCkgX19wdHI2NA0KKz9yZGJ1ZkA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFQRUFWPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBQRUFWMzJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnJkYnVmKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmRidWZAPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUJBUEVBVj8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJkYnVmKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmRidWZAPyRiYXNpY19pc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUJBUEVBVj8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmRidWYodm9pZCljb25zdCAgX19wdHI2NA0KKz9yZGJ1ZkA/JGJhc2ljX2lzdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFQRUFWPyRiYXNpY19zdHJpbmdidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnJkYnVmKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmRidWZAPyRiYXNpY19vZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQkFQRUFWPyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnJkYnVmKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmRidWZAPyRiYXNpY19vZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQkFQRUFWPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJkYnVmKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmRidWZAPyRiYXNpY19vc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUJBUEVBVj8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmRidWYodm9pZCljb25zdCAgX19wdHI2NA0KKz9yZGJ1ZkA/JGJhc2ljX29zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFQRUFWPyRiYXNpY19zdHJpbmdidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJkYnVmKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmRidWZAPyRiYXNpY19zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkFQRUFWPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJkYnVmKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmRidWZAPyRiYXNpY19zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFQRUFWPyRiYXNpY19zdHJpbmdidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6OnJkc3RhdGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9yZHN0YXRlQGlvc19iYXNlQHN0ZEBAUUVCQUhYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnJlYWQoY2hhciAqIF9fcHRyNjQsX19pbnQ2NCkgX19wdHI2NA0KKz9yZWFkQD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMTJAUEVBRF9KQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cmVhZCh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsX19pbnQ2NCkgX19wdHI2NA0KKz9yZWFkQD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMTJAUEVBR19KQFoNCis7IHB1YmxpYzogX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnJlYWRzb21lKGNoYXIgKiBfX3B0cjY0LF9faW50NjQpIF9fcHRyNjQNCis/cmVhZHNvbWVAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQV9KUEVBRF9KQFoNCis7IHB1YmxpYzogX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cmVhZHNvbWUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LF9faW50NjQpIF9fcHRyNjQNCis/cmVhZHNvbWVAPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQV9KUEVBR19KQFoNCis7IHB1YmxpYzogZmxvYXQgX19jZGVjbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+OjpyZWFsKGZsb2F0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9yZWFsQD8kX0NvbXBsZXhfYmFzZUBNQHN0ZEBAUUVBQU1BRUJNQFoNCis7IHB1YmxpYzogZmxvYXQgX19jZGVjbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+OjpyZWFsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmVhbEA/JF9Db21wbGV4X2Jhc2VATUBzdGRAQFFFQkFNWFoNCis7IHB1YmxpYzogZG91YmxlIF9fY2RlY2wgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT46OnJlYWwoZG91YmxlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9yZWFsQD8kX0NvbXBsZXhfYmFzZUBOQHN0ZEBAUUVBQU5BRUJOQFoNCis7IHB1YmxpYzogZG91YmxlIF9fY2RlY2wgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT46OnJlYWwodm9pZCljb25zdCAgX19wdHI2NA0KKz9yZWFsQD8kX0NvbXBsZXhfYmFzZUBOQHN0ZEBAUUVCQU5YWg0KKzsgcHVibGljOiBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT46OnJlYWwobG9uZyBkb3VibGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP3JlYWxAPyRfQ29tcGxleF9iYXNlQE9Ac3RkQEBRRUFBT0FFQk9AWg0KKzsgcHVibGljOiBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT46OnJlYWwodm9pZCljb25zdCAgX19wdHI2NA0KKz9yZWFsQD8kX0NvbXBsZXhfYmFzZUBPQHN0ZEBAUUVCQU9YWg0KKzsgZmxvYXQgX19jZGVjbCBzdGQ6OnJlYWwoY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpDQorP3JlYWxAc3RkQEBZQU1BRUJWPyRjb21wbGV4QE1AMUBAWg0KKzsgZG91YmxlIF9fY2RlY2wgc3RkOjpyZWFsKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/cmVhbEBzdGRAQFlBTkFFQlY/JGNvbXBsZXhATkAxQEBaDQorOyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6cmVhbChjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/cmVhbEBzdGRAQFlBT0FFQlY/JGNvbXBsZXhAT0AxQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omlvc19iYXNlOjpyZWdpc3Rlcl9jYWxsYmFjayh2b2lkIChfX2NkZWNsKikoZW51bSBzdGQ6Omlvc19iYXNlOjpldmVudCxjbGFzcyBzdGQ6Omlvc19iYXNlICYgX19wdHI2NCxpbnQpLGludCkgX19wdHI2NA0KKz9yZWdpc3Rlcl9jYWxsYmFja0Bpb3NfYmFzZUBzdGRAQFFFQUFYUDZBWFc0ZXZlbnRAMTJAQUVBVjEyQEhAWkhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfaXRlcmF0b3I8Y2hhciAqIF9fcHRyNjQsY2hhcixjaGFyICYgX19wdHI2NCxjaGFyICogX19wdHI2NCxfX2ludDY0PiAgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJlbmQodm9pZCkgX19wdHI2NA0KKz9yZW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBP0FWPyRyZXZlcnNlX2l0ZXJhdG9yQFBFQUREQUVBRFBFQURfSkAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6cmV2ZXJzZV9pdGVyYXRvcjxjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyLGNoYXIgY29uc3QgJiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LF9faW50NjQ+ICBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmVuZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3JlbmRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkE/QVY/JHJldmVyc2VfaXRlcmF0b3JAUEVCRERBRUJEUEVCRF9KQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpyZXZlcnNlX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LF9faW50NjQ+ICBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmVuZCh2b2lkKSBfX3B0cjY0DQorP3JlbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUE/QVY/JHJldmVyc2VfaXRlcmF0b3JAUEVBR0dBRUFHUEVBR19KQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpyZXZlcnNlX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LF9faW50NjQ+ICBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmVuZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3JlbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkE/QVY/JHJldmVyc2VfaXRlcmF0b3JAUEVCR0dBRUJHUEVCR19KQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmVwbGFjZShjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFBRUFWMTJAUEVBRDBBRUJWMTJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmVwbGFjZShjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjEyQFBFQUQwUEVCRDFAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZXBsYWNlKGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFBRUFWMTJAUEVBRDBQRUJEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmVwbGFjZShjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFBRUFWMTJAUEVBRDBQRUJEX0tAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZXBsYWNlKGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsY2hhcikgX19wdHI2NA0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjEyQFBFQUQwX0tEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmVwbGFjZSh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCxjaGFyKSBfX3B0cjY0DQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFBRUFWMTJAX0swMERAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZXBsYWNlKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjEyQF9LMEFFQlYxMkAwMEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJlcGxhY2UodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQUFFQVYxMkBfSzBBRUJWMTJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmVwbGFjZSh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQsY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBQUVBVjEyQF9LMFBFQkQwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmVwbGFjZSh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQsY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQUFFQVYxMkBfSzBQRUJEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmVwbGFjZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQUFFQVYxMkBQRUFHMEFFQlYxMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZXBsYWNlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBQUVBVjEyQFBFQUcwUEVCRzFAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZXBsYWNlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFWMTJAUEVBRzBQRUJHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmVwbGFjZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFWMTJAUEVBRzBQRUJHX0tAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZXBsYWNlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBQUVBVjEyQFBFQUcwX0tHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmVwbGFjZSh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBQUVBVjEyQF9LMDBHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmVwbGFjZSh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQUFFQVYxMkBfSzBBRUJWMTJAMDBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZXBsYWNlKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFWMTJAX0swQUVCVjEyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJlcGxhY2UodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFBRUFWMTJAX0swUEVCRzBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZXBsYWNlKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQUFFQVYxMkBfSzBQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmVzZXJ2ZSh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP3Jlc2VydmVAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFYX0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZXNlcnZlKHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/cmVzZXJ2ZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQVhfS0BaDQorOyBzdHJ1Y3Qgc3RkOjpfU21hbmlwPGludD4gIF9fY2RlY2wgc3RkOjpyZXNldGlvc2ZsYWdzKGludCkNCis/cmVzZXRpb3NmbGFnc0BzdGRAQFlBP0FVPyRfU21hbmlwQEhAMUBIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmVzaXplKHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/cmVzaXplQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBWF9LQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmVzaXplKHVuc2lnbmVkIF9faW50NjQsY2hhcikgX19wdHI2NA0KKz9yZXNpemVAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFYX0tEQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmVzaXplKHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/cmVzaXplQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBWF9LQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmVzaXplKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/cmVzaXplQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBWF9LR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJmaW5kKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9yZmluZEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVCQV9LQUVCVjEyQF9LQFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmZpbmQoY2hhcix1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP3JmaW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUJBX0tEX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZmluZChjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/cmZpbmRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkFfS1BFQkRfSzFAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZmluZChjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP3JmaW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUJBX0tQRUJEX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZmluZChjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/cmZpbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFfS0FFQlYxMkBfS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJmaW5kKHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/cmZpbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFfS0dfS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJmaW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQpY29uc3QgIF9fcHRyNjQNCis/cmZpbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkFfS1BFQkdfSzFAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZmluZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9yZmluZEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVCQV9LUEVCR19LQFoNCis7IHB1YmxpYzogc3RhdGljIHNpZ25lZCBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxzaWduZWQgY2hhcj46OnJvdW5kX2Vycm9yKHZvaWQpDQorP3JvdW5kX2Vycm9yQD8kbnVtZXJpY19saW1pdHNAQ0BzdGRAQFNBQ1haDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxjaGFyPjo6cm91bmRfZXJyb3Iodm9pZCkNCis/cm91bmRfZXJyb3JAPyRudW1lcmljX2xpbWl0c0BEQHN0ZEBAU0FEWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGNoYXI+Ojpyb3VuZF9lcnJvcih2b2lkKQ0KKz9yb3VuZF9lcnJvckA/JG51bWVyaWNfbGltaXRzQEVAc3RkQEBTQUVYWg0KKzsgcHVibGljOiBzdGF0aWMgc2hvcnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNob3J0Pjo6cm91bmRfZXJyb3Iodm9pZCkNCis/cm91bmRfZXJyb3JAPyRudW1lcmljX2xpbWl0c0BGQHN0ZEBAU0FGWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBzaG9ydD46OnJvdW5kX2Vycm9yKHZvaWQpDQorP3JvdW5kX2Vycm9yQD8kbnVtZXJpY19saW1pdHNAR0BzdGRAQFNBR1haDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46OnJvdW5kX2Vycm9yKHZvaWQpDQorP3JvdW5kX2Vycm9yQD8kbnVtZXJpY19saW1pdHNASEBzdGRAQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGludD46OnJvdW5kX2Vycm9yKHZvaWQpDQorP3JvdW5kX2Vycm9yQD8kbnVtZXJpY19saW1pdHNASUBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxsb25nPjo6cm91bmRfZXJyb3Iodm9pZCkNCis/cm91bmRfZXJyb3JAPyRudW1lcmljX2xpbWl0c0BKQHN0ZEBAU0FKWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGxvbmc+Ojpyb3VuZF9lcnJvcih2b2lkKQ0KKz9yb3VuZF9lcnJvckA/JG51bWVyaWNfbGltaXRzQEtAc3RkQEBTQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfZXJyb3Iodm9pZCkNCis/cm91bmRfZXJyb3JAPyRudW1lcmljX2xpbWl0c0BNQHN0ZEBAU0FNWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cm91bmRfZXJyb3Iodm9pZCkNCis/cm91bmRfZXJyb3JAPyRudW1lcmljX2xpbWl0c0BOQHN0ZEBAU0FOWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGRvdWJsZT46OnJvdW5kX2Vycm9yKHZvaWQpDQorP3JvdW5kX2Vycm9yQD8kbnVtZXJpY19saW1pdHNAT0BzdGRAQFNBT1haDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxib29sPjo6cm91bmRfZXJyb3Iodm9pZCkNCis/cm91bmRfZXJyb3JAPyRudW1lcmljX2xpbWl0c0BfTkBzdGRAQFNBX05YWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNidW1wYyh2b2lkKSBfX3B0cjY0DQorP3NidW1wY0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c2J1bXBjKHZvaWQpIF9fcHRyNjQNCis/c2J1bXBjQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUdYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6Y3R5cGU8Y2hhcj46OnNjYW5faXMoc2hvcnQsY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/c2Nhbl9pc0A/JGN0eXBlQERAc3RkQEBRRUJBUEVCREZQRUJEMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+OjpzY2FuX2lzKHNob3J0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/c2Nhbl9pc0A/JGN0eXBlQEdAc3RkQEBRRUJBUEVCR0ZQRUJHMEBaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpjdHlwZTxjaGFyPjo6c2Nhbl9ub3Qoc2hvcnQsY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/c2Nhbl9ub3RAPyRjdHlwZUBEQHN0ZEBAUUVCQVBFQkRGUEVCRDBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6c2Nhbl9ub3Qoc2hvcnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9zY2FuX25vdEA/JGN0eXBlQEdAc3RkQEBRRUJBUEVCR0ZQRUJHMEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c2Vla2coY2xhc3Mgc3RkOjpmcG9zPGludD4pIF9fcHRyNjQNCis/c2Vla2dAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYxMkBWPyRmcG9zQEhAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNlZWtnKF9faW50NjQsZW51bSBzdGQ6Omlvc19iYXNlOjpzZWVrZGlyKSBfX3B0cjY0DQorP3NlZWtnQD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMTJAX0pXNHNlZWtkaXJAaW9zX2Jhc2VAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZWVrZyhjbGFzcyBzdGQ6OmZwb3M8aW50PikgX19wdHI2NA0KKz9zZWVrZ0A/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjEyQFY/JGZwb3NASEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNlZWtnKF9faW50NjQsZW51bSBzdGQ6Omlvc19iYXNlOjpzZWVrZGlyKSBfX3B0cjY0DQorP3NlZWtnQD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMTJAX0pXNHNlZWtkaXJAaW9zX2Jhc2VAMkBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX2NkZWNsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNlZWtvZmYoX19pbnQ2NCxlbnVtIHN0ZDo6aW9zX2Jhc2U6OnNlZWtkaXIsaW50KSBfX3B0cjY0DQorP3NlZWtvZmZAPyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBATUVBQT9BVj8kZnBvc0BIQDJAX0pXNHNlZWtkaXJAaW9zX2Jhc2VAMkBIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX19jZGVjbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNlZWtvZmYoX19pbnQ2NCxlbnVtIHN0ZDo6aW9zX2Jhc2U6OnNlZWtkaXIsaW50KSBfX3B0cjY0DQorP3NlZWtvZmZAPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUVBQT9BVj8kZnBvc0BIQDJAX0pXNHNlZWtkaXJAaW9zX2Jhc2VAMkBIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNlZWtvZmYoX19pbnQ2NCxlbnVtIHN0ZDo6aW9zX2Jhc2U6OnNlZWtkaXIsaW50KSBfX3B0cjY0DQorP3NlZWtvZmZAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNRUFBP0FWPyRmcG9zQEhAMkBfSlc0c2Vla2RpckBpb3NfYmFzZUAyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZWVrb2ZmKF9faW50NjQsZW51bSBzdGQ6Omlvc19iYXNlOjpzZWVrZGlyLGludCkgX19wdHI2NA0KKz9zZWVrb2ZmQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUVBQT9BVj8kZnBvc0BIQDJAX0pXNHNlZWtkaXJAaW9zX2Jhc2VAMkBIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnNlZWtvZmYoX19pbnQ2NCxlbnVtIHN0ZDo6aW9zX2Jhc2U6OnNlZWtkaXIsaW50KSBfX3B0cjY0DQorP3NlZWtvZmZAPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQE1FQUE/QVY/JGZwb3NASEAyQF9KVzRzZWVrZGlyQGlvc19iYXNlQDJASEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpmcG9zPGludD4gIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmdidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpzZWVrb2ZmKF9faW50NjQsZW51bSBzdGQ6Omlvc19iYXNlOjpzZWVrZGlyLGludCkgX19wdHI2NA0KKz9zZWVrb2ZmQD8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBNRUFBP0FWPyRmcG9zQEhAMkBfSlc0c2Vla2RpckBpb3NfYmFzZUAyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX2NkZWNsIHN0ZDo6c3Ryc3RyZWFtYnVmOjpzZWVrb2ZmKF9faW50NjQsZW51bSBzdGQ6Omlvc19iYXNlOjpzZWVrZGlyLGludCkgX19wdHI2NA0KKz9zZWVrb2ZmQHN0cnN0cmVhbWJ1ZkBzdGRAQE1FQUE/QVY/JGZwb3NASEAyQF9KVzRzZWVrZGlyQGlvc19iYXNlQDJASEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c2Vla3AoY2xhc3Mgc3RkOjpmcG9zPGludD4pIF9fcHRyNjQNCis/c2Vla3BAPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYxMkBWPyRmcG9zQEhAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNlZWtwKF9faW50NjQsZW51bSBzdGQ6Omlvc19iYXNlOjpzZWVrZGlyKSBfX3B0cjY0DQorP3NlZWtwQD8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMTJAX0pXNHNlZWtkaXJAaW9zX2Jhc2VAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZWVrcChjbGFzcyBzdGQ6OmZwb3M8aW50PikgX19wdHI2NA0KKz9zZWVrcEA/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBQUVBVjEyQFY/JGZwb3NASEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNlZWtwKF9faW50NjQsZW51bSBzdGQ6Omlvc19iYXNlOjpzZWVrZGlyKSBfX3B0cjY0DQorP3NlZWtwQD8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMTJAX0pXNHNlZWtkaXJAaW9zX2Jhc2VAMkBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX2NkZWNsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNlZWtwb3MoY2xhc3Mgc3RkOjpmcG9zPGludD4saW50KSBfX3B0cjY0DQorP3NlZWtwb3NAPyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBATUVBQT9BVj8kZnBvc0BIQDJAVjMyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX2NkZWNsIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c2Vla3BvcyhjbGFzcyBzdGQ6OmZwb3M8aW50PixpbnQpIF9fcHRyNjQNCis/c2Vla3Bvc0A/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBNRUFBP0FWPyRmcG9zQEhAMkBWMzJASEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpmcG9zPGludD4gIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZWVrcG9zKGNsYXNzIHN0ZDo6ZnBvczxpbnQ+LGludCkgX19wdHI2NA0KKz9zZWVrcG9zQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBATUVBQT9BVj8kZnBvc0BIQDJAVjMyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZWVrcG9zKGNsYXNzIHN0ZDo6ZnBvczxpbnQ+LGludCkgX19wdHI2NA0KKz9zZWVrcG9zQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUVBQT9BVj8kZnBvc0BIQDJAVjMyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6c2Vla3BvcyhjbGFzcyBzdGQ6OmZwb3M8aW50PixpbnQpIF9fcHRyNjQNCis/c2Vla3Bvc0A/JGJhc2ljX3N0cmluZ2J1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBATUVBQT9BVj8kZnBvc0BIQDJAVjMyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6c2Vla3BvcyhjbGFzcyBzdGQ6OmZwb3M8aW50PixpbnQpIF9fcHRyNjQNCis/c2Vla3Bvc0A/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBATUVBQT9BVj8kZnBvc0BIQDJAVjMyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX2NkZWNsIHN0ZDo6c3Ryc3RyZWFtYnVmOjpzZWVrcG9zKGNsYXNzIHN0ZDo6ZnBvczxpbnQ+LGludCkgX19wdHI2NA0KKz9zZWVrcG9zQHN0cnN0cmVhbWJ1ZkBzdGRAQE1FQUE/QVY/JGZwb3NASEAyQFYzMkBIQFoNCis7IHN0cnVjdCBzdGQ6Ol9TbWFuaXA8aW50PiAgX19jZGVjbCBzdGQ6OnNldGJhc2UoaW50KQ0KKz9zZXRiYXNlQHN0ZEBAWUE/QVU/JF9TbWFuaXBASEAxQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZXRidWYoY2hhciAqIF9fcHRyNjQsX19pbnQ2NCkgX19wdHI2NA0KKz9zZXRidWZAPyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBATUVBQVBFQVY/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFBFQURfSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZXRidWYodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LF9faW50NjQpIF9fcHRyNjQNCis/c2V0YnVmQD8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1FQUFQRUFWPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBQRUFHX0pAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNldGJ1ZihjaGFyICogX19wdHI2NCxfX2ludDY0KSBfX3B0cjY0DQorP3NldGJ1ZkA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQE1FQUFQRUFWMTJAUEVBRF9KQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c2V0YnVmKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxfX2ludDY0KSBfX3B0cjY0DQorP3NldGJ1ZkA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1FQUFQRUFWMTJAUEVBR19KQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RkOjppb3NfYmFzZTo6c2V0ZihpbnQpIF9fcHRyNjQNCis/c2V0ZkBpb3NfYmFzZUBzdGRAQFFFQUFISEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6OnNldGYoaW50LGludCkgX19wdHI2NA0KKz9zZXRmQGlvc19iYXNlQHN0ZEBAUUVBQUhISEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNldGcoY2hhciAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/c2V0Z0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElFQUFYUEVBRDAwQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZXRnKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP3NldGdAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJRUFBWFBFQUcwMEBaDQorOyBzdHJ1Y3Qgc3RkOjpfU21hbmlwPGludD4gIF9fY2RlY2wgc3RkOjpzZXRpb3NmbGFncyhpbnQpDQorP3NldGlvc2ZsYWdzQHN0ZEBAWUE/QVU/JF9TbWFuaXBASEAxQEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZXRwKGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP3NldHBAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJRUFBWFBFQUQwMEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNldHAoY2hhciAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/c2V0cEA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElFQUFYUEVBRDBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNldHAodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/c2V0cEA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElFQUFYUEVBRzAwQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZXRwKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/c2V0cEA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElFQUFYUEVBRzBAWg0KKzsgc3RydWN0IHN0ZDo6X1NtYW5pcDxfX2ludDY0PiAgX19jZGVjbCBzdGQ6OnNldHByZWNpc2lvbihfX2ludDY0KQ0KKz9zZXRwcmVjaXNpb25Ac3RkQEBZQT9BVT8kX1NtYW5pcEBfSkAxQF9KQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c2V0c3RhdGUoc2hvcnQpIF9fcHRyNjQNCis/c2V0c3RhdGVAPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBWEZAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZXRzdGF0ZShpbnQsYm9vbCkgX19wdHI2NA0KKz9zZXRzdGF0ZUA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFYSF9OQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZXRzdGF0ZShzaG9ydCkgX19wdHI2NA0KKz9zZXRzdGF0ZUA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFYRkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c2V0c3RhdGUoaW50LGJvb2wpIF9fcHRyNjQNCis/c2V0c3RhdGVAPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBWEhfTkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omlvc19iYXNlOjpzZXRzdGF0ZShzaG9ydCkgX19wdHI2NA0KKz9zZXRzdGF0ZUBpb3NfYmFzZUBzdGRAQFFFQUFYRkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omlvc19iYXNlOjpzZXRzdGF0ZShpbnQsYm9vbCkgX19wdHI2NA0KKz9zZXRzdGF0ZUBpb3NfYmFzZUBzdGRAQFFFQUFYSF9OQFoNCis7IHN0cnVjdCBzdGQ6Ol9TbWFuaXA8X19pbnQ2ND4gIF9fY2RlY2wgc3RkOjpzZXR3KF9faW50NjQpDQorP3NldHdAc3RkQEBZQT9BVT8kX1NtYW5pcEBfSkAxQF9KQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZ2V0Yyh2b2lkKSBfX3B0cjY0DQorP3NnZXRjQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZ2V0Yyh2b2lkKSBfX3B0cjY0DQorP3NnZXRjQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUdYWg0KKzsgcHVibGljOiBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZ2V0bihjaGFyICogX19wdHI2NCxfX2ludDY0KSBfX3B0cjY0DQorP3NnZXRuQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQV9KUEVBRF9KQFoNCis7IHB1YmxpYzogX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZ2V0bih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsX19pbnQ2NCkgX19wdHI2NA0KKz9zZ2V0bkA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFfSlBFQUdfSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzaG93bWFueWModm9pZCkgX19wdHI2NA0KKz9zaG93bWFueWNAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNob3dtYW55Yyh2b2lkKSBfX3B0cjY0DQorP3Nob3dtYW55Y0A/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1FQUFIWFoNCis7IHB1YmxpYzogc3RhdGljIHNpZ25lZCBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxzaWduZWQgY2hhcj46OnNpZ25hbGluZ19OYU4odm9pZCkNCis/c2lnbmFsaW5nX05hTkA/JG51bWVyaWNfbGltaXRzQENAc3RkQEBTQUNYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hhcj46OnNpZ25hbGluZ19OYU4odm9pZCkNCis/c2lnbmFsaW5nX05hTkA/JG51bWVyaWNfbGltaXRzQERAc3RkQEBTQURYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgY2hhcj46OnNpZ25hbGluZ19OYU4odm9pZCkNCis/c2lnbmFsaW5nX05hTkA/JG51bWVyaWNfbGltaXRzQEVAc3RkQEBTQUVYWg0KKzsgcHVibGljOiBzdGF0aWMgc2hvcnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNob3J0Pjo6c2lnbmFsaW5nX05hTih2b2lkKQ0KKz9zaWduYWxpbmdfTmFOQD8kbnVtZXJpY19saW1pdHNARkBzdGRAQFNBRlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgc2hvcnQ+OjpzaWduYWxpbmdfTmFOKHZvaWQpDQorP3NpZ25hbGluZ19OYU5APyRudW1lcmljX2xpbWl0c0BHQHN0ZEBAU0FHWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6c2lnbmFsaW5nX05hTih2b2lkKQ0KKz9zaWduYWxpbmdfTmFOQD8kbnVtZXJpY19saW1pdHNASEBzdGRAQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGludD46OnNpZ25hbGluZ19OYU4odm9pZCkNCis/c2lnbmFsaW5nX05hTkA/JG51bWVyaWNfbGltaXRzQElAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZz46OnNpZ25hbGluZ19OYU4odm9pZCkNCis/c2lnbmFsaW5nX05hTkA/JG51bWVyaWNfbGltaXRzQEpAc3RkQEBTQUpYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgbG9uZz46OnNpZ25hbGluZ19OYU4odm9pZCkNCis/c2lnbmFsaW5nX05hTkA/JG51bWVyaWNfbGltaXRzQEtAc3RkQEBTQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6c2lnbmFsaW5nX05hTih2b2lkKQ0KKz9zaWduYWxpbmdfTmFOQD8kbnVtZXJpY19saW1pdHNATUBzdGRAQFNBTVhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnNpZ25hbGluZ19OYU4odm9pZCkNCis/c2lnbmFsaW5nX05hTkA/JG51bWVyaWNfbGltaXRzQE5Ac3RkQEBTQU5YWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgZG91YmxlPjo6c2lnbmFsaW5nX05hTih2b2lkKQ0KKz9zaWduYWxpbmdfTmFOQD8kbnVtZXJpY19saW1pdHNAT0BzdGRAQFNBT1haDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxib29sPjo6c2lnbmFsaW5nX05hTih2b2lkKQ0KKz9zaWduYWxpbmdfTmFOQD8kbnVtZXJpY19saW1pdHNAX05Ac3RkQEBTQV9OWFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgc3RkOjpfQ3RyPGZsb2F0Pjo6c2luKGZsb2F0KQ0KKz9zaW5APyRfQ3RyQE1Ac3RkQEBTQU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+OjpzaW4oZG91YmxlKQ0KKz9zaW5APyRfQ3RyQE5Ac3RkQEBTQU5OQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGxvbmcgZG91YmxlPjo6c2luKGxvbmcgZG91YmxlKQ0KKz9zaW5APyRfQ3RyQE9Ac3RkQEBTQU9PQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpzaW4oY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpDQorP3NpbkBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBRUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6c2luKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/c2luQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6OnNpbihjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/c2luQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFFQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6OnNpbmgoY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmIF9fcHRyNjQpDQorP3NpbmhAc3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUVCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OnNpbmgoY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJiBfX3B0cjY0KQ0KKz9zaW5oQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFFQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6OnNpbmgoY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorP3NpbmhAc3RkQEBZQT9BVj8kY29tcGxleEBPQDFAQUVCVjIxQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9zaXplQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUJBX0tYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpzaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/c2l6ZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVCQV9LWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzbmV4dGModm9pZCkgX19wdHI2NA0KKz9zbmV4dGNAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNuZXh0Yyh2b2lkKSBfX3B0cjY0DQorP3NuZXh0Y0A/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFHWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzcHV0YmFja2MoY2hhcikgX19wdHI2NA0KKz9zcHV0YmFja2NAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBSERAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzcHV0YmFja2ModW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/c3B1dGJhY2tjQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUdHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzcHV0YyhjaGFyKSBfX3B0cjY0DQorP3NwdXRjQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUhEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c3B1dGModW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/c3B1dGNAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBR0dAWg0KKzsgcHVibGljOiBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzcHV0bihjaGFyIGNvbnN0ICogX19wdHI2NCxfX2ludDY0KSBfX3B0cjY0DQorP3NwdXRuQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQV9KUEVCRF9KQFoNCis7IHB1YmxpYzogX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzcHV0bih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsX19pbnQ2NCkgX19wdHI2NA0KKz9zcHV0bkA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFfSlBFQkdfSkBaDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6X0N0cjxmbG9hdD46OnNxcnQoZmxvYXQpDQorP3NxcnRAPyRfQ3RyQE1Ac3RkQEBTQU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+OjpzcXJ0KGRvdWJsZSkNCis/c3FydEA/JF9DdHJATkBzdGRAQFNBTk5AWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+OjpzcXJ0KGxvbmcgZG91YmxlKQ0KKz9zcXJ0QD8kX0N0ckBPQHN0ZEBAU0FPT0BaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6c3FydChjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYgX19wdHI2NCkNCis/c3FydEBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBRUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6c3FydChjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmIF9fcHRyNjQpDQorP3NxcnRAc3RkQEBZQT9BVj8kY29tcGxleEBOQDFAQUVCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6c3FydChjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYgX19wdHI2NCkNCis/c3FydEBzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBRUJWMjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c3Rvc3NjKHZvaWQpIF9fcHRyNjQNCis/c3Rvc3NjQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnN0b3NzYyh2b2lkKSBfX3B0cjY0DQorP3N0b3NzY0A/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnN0cihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP3N0ckA/JGJhc2ljX2lzdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFYQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6c3RyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/c3RyQD8kYmFzaWNfaXN0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVCQT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6c3RyKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/c3RyQD8kYmFzaWNfaXN0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVBQVhBRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpzdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9zdHJAPyRiYXNpY19pc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUJBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpzdHIoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9zdHJAPyRiYXNpY19vc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRRUFBWEFFQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnN0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3N0ckA/JGJhc2ljX29zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnN0cihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP3N0ckA/JGJhc2ljX29zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFYQUVCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6c3RyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/c3RyQD8kYmFzaWNfb3N0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVCQT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpzdHIoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9zdHJAPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQUFYQUVCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpzdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9zdHJAPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6c3RyKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/c3RyQD8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUFBWEFFQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6c3RyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/c3RyQD8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRRUJBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnN0cihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP3N0ckA/JGJhc2ljX3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQVhBRUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnN0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3N0ckA/JGJhc2ljX3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVCQT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpzdHIoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9zdHJAPyRiYXNpY19zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFYQUVCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpzdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9zdHJAPyRiYXNpY19zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQkE/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6c3Vic3RyKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9zdWJzdHJAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFFQkE/QVYxMkBfSzBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpzdWJzdHIodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP3N1YnN0ckA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUVCQT9BVjEyQF9LMEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c3VuZ2V0Yyh2b2lkKSBfX3B0cjY0DQorP3N1bmdldGNAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnN1bmdldGModm9pZCkgX19wdHI2NA0KKz9zdW5nZXRjQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUdYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojpzd2FwKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/c3dhcEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUVBQVhBRUFWMTJAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6c3dhcChjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0KSBfX3B0cjY0DQorP3N3YXBAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFFQUFYQUVBVjEyQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c3luYyh2b2lkKSBfX3B0cjY0DQorP3N5bmNAPyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBATUVBQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c3luYyh2b2lkKSBfX3B0cjY0DQorP3N5bmNAPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzeW5jKHZvaWQpIF9fcHRyNjQNCis/c3luY0A/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c3luYyh2b2lkKSBfX3B0cjY0DQorP3N5bmNAPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c3luYyh2b2lkKSBfX3B0cjY0DQorP3N5bmNAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnN5bmModm9pZCkgX19wdHI2NA0KKz9zeW5jQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUVBQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhib29sKQ0KKz9zeW5jX3dpdGhfc3RkaW9AaW9zX2Jhc2VAc3RkQEBTQV9OX05AWg0KKzsgcHJvdGVjdGVkOiBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmN0eXBlPGNoYXI+Ojp0YWJsZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3RhYmxlQD8kY3R5cGVAREBzdGRAQElFQkFQRUJGWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIF9faW50NjQgY29uc3QgIHN0ZDo6Y3R5cGU8Y2hhcj46OnRhYmxlX3NpemUNCis/dGFibGVfc2l6ZUA/JGN0eXBlQERAc3RkQEAyX0tCDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnRlbGxnKHZvaWQpIF9fcHRyNjQNCis/dGVsbGdAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQT9BVj8kZnBvc0BIQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpmcG9zPGludD4gIF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp0ZWxsZyh2b2lkKSBfX3B0cjY0DQorP3RlbGxnQD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUE/QVY/JGZwb3NASEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnRlbGxwKHZvaWQpIF9fcHRyNjQNCis/dGVsbHBAPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQT9BVj8kZnBvc0BIQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpmcG9zPGludD4gIF9fY2RlY2wgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp0ZWxscCh2b2lkKSBfX3B0cjY0DQorP3RlbGxwQD8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUE/QVY/JGZwb3NASEAyQFhaDQorOyBwdWJsaWM6IGNoYXIgX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46OnRob3VzYW5kc19zZXAodm9pZCljb25zdCAgX19wdHI2NA0KKz90aG91c2FuZHNfc2VwQD8kX01wdW5jdEBEQHN0ZEBAUUVCQURYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46OnRob3VzYW5kc19zZXAodm9pZCljb25zdCAgX19wdHI2NA0KKz90aG91c2FuZHNfc2VwQD8kX01wdW5jdEBHQHN0ZEBAUUVCQUdYWg0KKzsgcHVibGljOiBjaGFyIF9fY2RlY2wgc3RkOjpudW1wdW5jdDxjaGFyPjo6dGhvdXNhbmRzX3NlcCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3Rob3VzYW5kc19zZXBAPyRudW1wdW5jdEBEQHN0ZEBAUUVCQURYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojp0aG91c2FuZHNfc2VwKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/dGhvdXNhbmRzX3NlcEA/JG51bXB1bmN0QEdAc3RkQEBRRUJBR1haDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp0aWUoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/dGllQD8kYmFzaWNfaW9zQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQVBFQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBQRUFWMzJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnRpZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3RpZUA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQkFQRUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp0aWUoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICogX19wdHI2NCkgX19wdHI2NA0KKz90aWVAPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRRUFBUEVBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFBFQVYzMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnRpZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3RpZUA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQkFQRUFWPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+Ojp0b19jaGFyX3R5cGUoaW50IGNvbnN0ICYgX19wdHI2NCkNCis/dG9fY2hhcl90eXBlQD8kY2hhcl90cmFpdHNAREBzdGRAQFNBREFFQkhAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6dG9fY2hhcl90eXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICYgX19wdHI2NCkNCis/dG9fY2hhcl90eXBlQD8kY2hhcl90cmFpdHNAR0BzdGRAQFNBR0FFQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czxjaGFyPjo6dG9faW50X3R5cGUoY2hhciBjb25zdCAmIF9fcHRyNjQpDQorP3RvX2ludF90eXBlQD8kY2hhcl90cmFpdHNAREBzdGRAQFNBSEFFQkRAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6dG9faW50X3R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgJiBfX3B0cjY0KQ0KKz90b19pbnRfdHlwZUA/JGNoYXJfdHJhaXRzQEdAc3RkQEBTQUdBRUJHQFoNCis7IHB1YmxpYzogY2hhciBfX2NkZWNsIHN0ZDo6Y3R5cGU8Y2hhcj46OnRvbG93ZXIoY2hhciljb25zdCAgX19wdHI2NA0KKz90b2xvd2VyQD8kY3R5cGVAREBzdGRAQFFFQkFEREBaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpjdHlwZTxjaGFyPjo6dG9sb3dlcihjaGFyICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz90b2xvd2VyQD8kY3R5cGVAREBzdGRAQFFFQkFQRUJEUEVBRFBFQkRAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+Ojp0b2xvd2VyKHVuc2lnbmVkIHNob3J0KWNvbnN0ICBfX3B0cjY0DQorP3RvbG93ZXJAPyRjdHlwZUBHQHN0ZEBAUUVCQUdHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OnRvbG93ZXIodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz90b2xvd2VyQD8kY3R5cGVAR0BzdGRAQFFFQkFQRUJHUEVBR1BFQkdAWg0KKzsgcHVibGljOiBjaGFyIF9fY2RlY2wgc3RkOjpjdHlwZTxjaGFyPjo6dG91cHBlcihjaGFyKWNvbnN0ICBfX3B0cjY0DQorP3RvdXBwZXJAPyRjdHlwZUBEQHN0ZEBAUUVCQUREQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmN0eXBlPGNoYXI+Ojp0b3VwcGVyKGNoYXIgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP3RvdXBwZXJAPyRjdHlwZUBEQHN0ZEBAUUVCQVBFQkRQRUFEUEVCREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OnRvdXBwZXIodW5zaWduZWQgc2hvcnQpY29uc3QgIF9fcHRyNjQNCis/dG91cHBlckA/JGN0eXBlQEdAc3RkQEBRRUJBR0dAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6dG91cHBlcih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP3RvdXBwZXJAPyRjdHlwZUBHQHN0ZEBAUUVCQVBFQkdQRUFHUEVCR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6OmNvbGxhdGU8Y2hhcj46OnRyYW5zZm9ybShjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz90cmFuc2Zvcm1APyRjb2xsYXRlQERAc3RkQEBRRUJBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFBFQkQwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46OnRyYW5zZm9ybSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP3RyYW5zZm9ybUA/JGNvbGxhdGVAR0BzdGRAQFFFQkE/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAUEVCRzBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1wdW5jdDxjaGFyPjo6dHJ1ZW5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz90cnVlbmFtZUA/JG51bXB1bmN0QERAc3RkQEBRRUJBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6dHJ1ZW5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz90cnVlbmFtZUA/JG51bXB1bmN0QEdAc3RkQEBRRUJBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6dWZsb3codm9pZCkgX19wdHI2NA0KKz91Zmxvd0A/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnVmbG93KHZvaWQpIF9fcHRyNjQNCis/dWZsb3dAPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUVBQUdYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6dWZsb3codm9pZCkgX19wdHI2NA0KKz91Zmxvd0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQE1FQUFIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp1Zmxvdyh2b2lkKSBfX3B0cjY0DQorP3VmbG93QD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUVBQUdYWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6dW5jYXVnaHRfZXhjZXB0aW9uKHZvaWQpDQorP3VuY2F1Z2h0X2V4Y2VwdGlvbkBzdGRAQFlBX05YWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnVuZGVyZmxvdyh2b2lkKSBfX3B0cjY0DQorP3VuZGVyZmxvd0A/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnVuZGVyZmxvdyh2b2lkKSBfX3B0cjY0DQorP3VuZGVyZmxvd0A/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBNRUFBR1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp1bmRlcmZsb3codm9pZCkgX19wdHI2NA0KKz91bmRlcmZsb3dAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6dW5kZXJmbG93KHZvaWQpIF9fcHRyNjQNCis/dW5kZXJmbG93QD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUVBQUdYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6dW5kZXJmbG93KHZvaWQpIF9fcHRyNjQNCis/dW5kZXJmbG93QD8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnVuZGVyZmxvdyh2b2lkKSBfX3B0cjY0DQorP3VuZGVyZmxvd0A/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBATUVBQUdYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIHN0ZDo6c3Ryc3RyZWFtYnVmOjp1bmRlcmZsb3codm9pZCkgX19wdHI2NA0KKz91bmRlcmZsb3dAc3Ryc3RyZWFtYnVmQHN0ZEBATUVBQUhYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnVuZ2V0KHZvaWQpIF9fcHRyNjQNCis/dW5nZXRAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUVBQUFFQVYxMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp1bmdldCh2b2lkKSBfX3B0cjY0DQorP3VuZ2V0QD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFFQUFBRUFWMTJAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6OnVuc2V0ZihpbnQpIF9fcHRyNjQNCis/dW5zZXRmQGlvc19iYXNlQHN0ZEBAUUVBQVhIQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgc3RkOjp3Y2Vycg0KKz93Y2VyckBzdGRAQDNWPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAQSBEQVRBDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIHN0ZDo6d2Npbg0KKz93Y2luQHN0ZEBAM1Y/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBBIERBVEENCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgc3RkOjp3Y2xvZw0KKz93Y2xvZ0BzdGRAQDNWPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAQSBEQVRBDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIHN0ZDo6d2NvdXQNCis/d2NvdXRAc3RkQEAzVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEEgREFUQQ0KKzsgcHVibGljOiB2aXJ0dWFsIGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpsb2dpY19lcnJvcjo6d2hhdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3doYXRAbG9naWNfZXJyb3JAc3RkQEBVRUJBUEVCRFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OnJ1bnRpbWVfZXJyb3I6OndoYXQodm9pZCljb25zdCAgX19wdHI2NA0KKz93aGF0QHJ1bnRpbWVfZXJyb3JAc3RkQEBVRUJBUEVCRFhaDQorOyBwdWJsaWM6IGNoYXIgX19jZGVjbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OndpZGVuKGNoYXIpY29uc3QgIF9fcHRyNjQNCis/d2lkZW5APyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRRUJBRERAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp3aWRlbihjaGFyKWNvbnN0ICBfX3B0cjY0DQorP3dpZGVuQD8kYmFzaWNfaW9zQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVCQUdEQFoNCis7IHB1YmxpYzogY2hhciBfX2NkZWNsIHN0ZDo6Y3R5cGU8Y2hhcj46OndpZGVuKGNoYXIpY29uc3QgIF9fcHRyNjQNCis/d2lkZW5APyRjdHlwZUBEQHN0ZEBAUUVCQUREQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmN0eXBlPGNoYXI+Ojp3aWRlbihjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz93aWRlbkA/JGN0eXBlQERAc3RkQEBRRUJBUEVCRFBFQkQwUEVBREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OndpZGVuKGNoYXIpY29uc3QgIF9fcHRyNjQNCis/d2lkZW5APyRjdHlwZUBHQHN0ZEBAUUVCQUdEQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6d2lkZW4oY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP3dpZGVuQD8kY3R5cGVAR0BzdGRAQFFFQkFQRUJEUEVCRDBQRUFHQFoNCis7IHB1YmxpYzogX19pbnQ2NCBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6OndpZHRoKF9faW50NjQpIF9fcHRyNjQNCis/d2lkdGhAaW9zX2Jhc2VAc3RkQEBRRUFBX0pfSkBaDQorOyBwdWJsaWM6IF9faW50NjQgX19jZGVjbCBzdGQ6Omlvc19iYXNlOjp3aWR0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3dpZHRoQGlvc19iYXNlQHN0ZEBAUUVCQV9KWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp3cml0ZShjaGFyIGNvbnN0ICogX19wdHI2NCxfX2ludDY0KSBfX3B0cjY0DQorP3dyaXRlQD8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFFQUFBRUFWMTJAUEVCRF9KQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6d3JpdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LF9faW50NjQpIF9fcHRyNjQNCis/d3JpdGVAPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUVBQUFFQVYxMkBQRUJHX0pAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OndzKGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3B0cjY0KQ0KKz93c0BzdGRAQFlBQUVBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEFFQVYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6d3MoY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19wdHI2NCkNCis/d3NAc3RkQEBZQUFFQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBBRUFWMjFAQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIHN0ZDo6aW9zX2Jhc2U6OnhhbGxvYyh2b2lkKQ0KKz94YWxsb2NAaW9zX2Jhc2VAc3RkQEBTQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnhzZ2V0bihjaGFyICogX19wdHI2NCxfX2ludDY0KSBfX3B0cjY0DQorP3hzZ2V0bkA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQE1FQUFfSlBFQURfSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp4c2dldG4odW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LF9faW50NjQpIF9fcHRyNjQNCis/eHNnZXRuQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUVBQV9KUEVBR19KQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBfX2ludDY0IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp4c3B1dG4oY2hhciBjb25zdCAqIF9fcHRyNjQsX19pbnQ2NCkgX19wdHI2NA0KKz94c3B1dG5APyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNRUFBX0pQRUJEX0pAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIF9faW50NjQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6eHNwdXRuKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxfX2ludDY0KSBfX3B0cjY0DQorP3hzcHV0bkA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1FQUFfSlBFQkdfSkBaDQorX0Nvc2gNCitfRGVub3JtDQorX0Rub3JtDQorX0RzY2FsZQ0KK19EdGVzdA0KK19FcHMNCitfRXhwDQorX0ZDb3NoDQorX0ZEZW5vcm0NCitfRkRub3JtDQorX0ZEc2NhbGUNCitfRkR0ZXN0DQorX0ZFcHMNCitfRkV4cA0KK19GSW5mDQorX0ZOYW4NCitfRlJ0ZXBzDQorX0ZTaW5oDQorX0ZTbmFuDQorX0ZYYmlnDQorX0dldGNvbGwNCitfR2V0Y3R5cGUNCitfR2V0Y3Z0DQorX0h1Z2V2YWwNCitfSW5mDQorX0xDb3NoDQorX0xEZW5vcm0NCitfTERzY2FsZQ0KK19MRHRlc3QNCitfTEVwcw0KK19MRXhwDQorX0xJbmYNCitfTE5hbg0KK19MUG9seQ0KK19MUnRlcHMNCitfTFNpbmgNCitfTFNuYW4NCitfTFhiaWcNCitfTWJydG93Yw0KK19OYW4NCitfUG9seQ0KK19SdGVwcw0KK19TaW5oDQorX1NuYW4NCitfU3RvZA0KK19TdG9mDQorX1N0b2xkDQorX1N0cmNvbGwNCitfU3RyeGZybQ0KK19Ub2xvd2VyDQorX1RvdXBwZXINCitfV2NydG9tYg0KK19XY3Njb2xsDQorX1djc3hmcm0NCitfWGJpZw0KK19fV2NydG9tYl9saw0KK2J0b3djDQorbWJybGVuDQorbWJydG93Yw0KK21ic3J0b3djcw0KK3Rvd2N0cmFucw0KK3djcnRvbWINCit3Y3NydG9tYnMNCit3Y3RvYg0KK3djdHJhbnMNCit3Y3R5cGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc3ZmdzMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zdmZ3MzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM2MzJlNTAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc3ZmdzMyLmRlZgpAQCAtMCwwICsxLDU1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TVkZXMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TVkZXMzIuZGxsDQorRVhQT1JUUw0KK1ZpZGVvRm9yV2luZG93c1ZlcnNpb24NCitEcmF3RGliQmVnaW4NCitEcmF3RGliQ2hhbmdlUGFsZXR0ZQ0KK0RyYXdEaWJDbG9zZQ0KK0RyYXdEaWJEcmF3DQorRHJhd0RpYkVuZA0KK0RyYXdEaWJHZXRCdWZmZXINCitEcmF3RGliR2V0UGFsZXR0ZQ0KK0RyYXdEaWJPcGVuDQorRHJhd0RpYlByb2ZpbGVEaXNwbGF5DQorRHJhd0RpYlJlYWxpemUNCitEcmF3RGliU2V0UGFsZXR0ZQ0KK0RyYXdEaWJTdGFydA0KK0RyYXdEaWJTdG9wDQorRHJhd0RpYlRpbWUNCitHZXRPcGVuRmlsZU5hbWVQcmV2aWV3DQorR2V0T3BlbkZpbGVOYW1lUHJldmlld0ENCitHZXRPcGVuRmlsZU5hbWVQcmV2aWV3Vw0KK0dldFNhdmVGaWxlTmFtZVByZXZpZXdBDQorR2V0U2F2ZUZpbGVOYW1lUHJldmlld1cNCitJQ0Nsb3NlDQorSUNDb21wcmVzcw0KK0lDQ29tcHJlc3NvckNob29zZQ0KK0lDQ29tcHJlc3NvckZyZWUNCitJQ0RlY29tcHJlc3MNCitJQ0RyYXcNCitJQ0RyYXdCZWdpbg0KK0lDR2V0RGlzcGxheUZvcm1hdA0KK0lDR2V0SW5mbw0KK0lDSW1hZ2VDb21wcmVzcw0KK0lDSW1hZ2VEZWNvbXByZXNzDQorSUNJbmZvDQorSUNJbnN0YWxsDQorSUNMb2NhdGUNCitJQ01UaHVuazMyDQorSUNPcGVuDQorSUNPcGVuRnVuY3Rpb24NCitJQ1JlbW92ZQ0KK0lDU2VuZE1lc3NhZ2UNCitJQ1NlcUNvbXByZXNzRnJhbWUNCitJQ1NlcUNvbXByZXNzRnJhbWVFbmQNCitJQ1NlcUNvbXByZXNzRnJhbWVTdGFydA0KK01DSVduZENyZWF0ZQ0KK01DSVduZENyZWF0ZUENCitNQ0lXbmRDcmVhdGVXDQorTUNJV25kUmVnaXN0ZXJDbGFzcw0KK1N0cmV0Y2hESUINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc3ZpZGMzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc3ZpZGMzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDEzM2Q3ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL21zdmlkYzMyLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNWSURDMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TVklEQzMyLmRsbA0KK0VYUE9SVFMNCitEcml2ZXJQcm9jDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXN2aWRjdGwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXN2aWRjdGwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFhZDNlZDEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc3ZpZGN0bC5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU1ZpZEN0bC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNWaWRDdGwuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorR2V0UHJveHlEbGxJbmZvDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXN3M3BydC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tc3czcHJ0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMmUwN2ZhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXN3M3BydC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU1czUFJULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU1czUFJULmRsbA0KK0VYUE9SVFMNCitHZXRFeHRlbnNpb25WZXJzaW9uDQorSHR0cEV4dGVuc2lvblByb2MNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc3dzb2NrLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zd3NvY2suZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjViYjEzNzUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc3dzb2NrLmRlZgpAQCAtMCwwICsxLDQwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TV1NPQ0suZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TV1NPQ0suZGxsDQorRVhQT1JUUw0KK1NlcnZpY2VNYWluDQorU3ZjaG9zdFB1c2hTZXJ2aWNlR2xvYmFscw0KK0FjY2VwdEV4DQorRW51bVByb3RvY29sc0ENCitFbnVtUHJvdG9jb2xzVw0KK0dldEFjY2VwdEV4U29ja2FkZHJzDQorR2V0QWRkcmVzc0J5TmFtZUENCitHZXRBZGRyZXNzQnlOYW1lVw0KK0dldE5hbWVCeVR5cGVBDQorR2V0TmFtZUJ5VHlwZVcNCitHZXRTZXJ2aWNlQQ0KK0dldFNlcnZpY2VXDQorR2V0VHlwZUJ5TmFtZUENCitHZXRUeXBlQnlOYW1lVw0KK01pZ3JhdGVXaW5zb2NrQ29uZmlndXJhdGlvbg0KK05QTG9hZE5hbWVTcGFjZXMNCitOU1BTdGFydHVwDQorU2V0U2VydmljZUENCitTZXRTZXJ2aWNlVw0KK1N0YXJ0V3NkcFNlcnZpY2UNCitTdG9wV3NkcFNlcnZpY2UNCitUcmFuc21pdEZpbGUNCitXU0FSZWN2RXgNCitXU1BTdGFydHVwDQorZG5fZXhwYW5kDQorZ2V0bmV0YnluYW1lDQoraW5ldF9uZXR3b3JrDQorcmNtZA0KK3JleGVjDQorcnJlc3Zwb3J0DQorc19wZXJyb3INCitzZXRob3N0bmFtZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL21zeGFjdHBzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL21zeGFjdHBzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NDgzYWFjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXN4YWN0cHMuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNYQUNUUFMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TWEFDVFBTLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbE1haW4NCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc3htbDMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXN4bWwzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iN2MzYjEwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXN4bWwzLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TWE1MMy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNYTUwzLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbE1haW4NCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tc3hzNjQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXN4czY0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YTNkMmU4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXN4czY0LmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TSlRFUzQwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU0pURVM0MC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxNYWluDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXN5dXYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXN5dXYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdkNGQ4ODcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tc3l1di5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TWVVWLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU1lVVi5kbGwNCitFWFBPUlRTDQorRHJpdmVyUHJvYw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL210eGNsdS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tdHhjbHUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIyZmIwZDkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tdHhjbHUuZGVmCkBAIC0wLDAgKzEsOTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVRYQ0xVLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNVFhDTFUuRExMDQorRVhQT1JUUw0KK010eENsdUJyaW5nT25saW5lRFRDMkENCitNdHhDbHVCcmluZ09ubGluZURUQzJXDQorTXR4Q2x1QnJpbmdPbmxpbmVEVENBDQorTXR4Q2x1QnJpbmdPbmxpbmVEVENXDQorTXR4Q2x1Q2hlY2tJZk9rVG9TdGFydER0Yw0KK010eENsdUNoZWNrUG9pbnRDcnlwdG9XDQorTXR4Q2x1Q2hlY2twb2ludFJlZ2lzdHJ5QQ0KK010eENsdUNoZWNrcG9pbnRSZWdpc3RyeVcNCitNdHhDbHVDbG9zZU5vZGVOb3RpZnkNCitNdHhDbHVDcmVhdGVEdGNSZXNvdXJjZUtleVcNCitNdHhDbHVDcmVhdGVEdGNSZXNvdXJjZVZhbHVlVw0KK010eENsdUNyZWF0ZUR0Y1Jlc291cmNlVw0KK010eENsdUNyZWF0ZVJlY29tbWVuZGVkTG9nSW5mbw0KK010eENsdURlbGV0ZUR0Y1Jlc291cmNlS2V5Vw0KK010eENsdURlbGV0ZUR0Y1Jlc291cmNlVmFsdWVXDQorTXR4Q2x1RG9lc0RUQ1Jlc291cmNlRXhpc3RBDQorTXR4Q2x1RG9lc0RUQ1Jlc291cmNlRXhpc3RXDQorTXR4Q2x1R2V0Q29tcHV0ZXJOYW1lQQ0KK010eENsdUdldENvbXB1dGVyTmFtZVcNCitNdHhDbHVHZXREVENJbnN0YWxsU3RhdGUNCitNdHhDbHVHZXREVENJbnN0YWxsVmVyc2lvbg0KK010eENsdUdldERUQ0lwQWRkcmVzc0ENCitNdHhDbHVHZXREVENJcEFkZHJlc3NXDQorTXR4Q2x1R2V0RFRDTG9nUGF0aEENCitNdHhDbHVHZXREVENMb2dQYXRoVw0KK010eENsdUdldERUQ0xvZ1NpemVBDQorTXR4Q2x1R2V0RFRDTG9nU2l6ZVcNCitNdHhDbHVHZXREVENPd25lckENCitNdHhDbHVHZXREVENPd25lclcNCitNdHhDbHVHZXREVENTdGF0dXNBDQorTXR4Q2x1R2V0RFRDU3RhdHVzVw0KK010eENsdUdldERUQ1ZpcnR1YWxTZXJ2ZXJOYW1lQQ0KK010eENsdUdldERUQ1ZpcnR1YWxTZXJ2ZXJOYW1lVw0KK010eENsdUdldER0Y1VzZXJJbmZvDQorTXR4Q2x1R2V0Sm9pbk1hc3RlckENCitNdHhDbHVHZXRKb2luTWFzdGVyVw0KK010eENsdUdldExpc3RPZlNoYXJlZERpc2tzQQ0KK010eENsdUdldExpc3RPZlNoYXJlZERpc2tzT25WaXJ0dWFsU2VydmVyQQ0KK010eENsdUdldExpc3RPZlNoYXJlZERpc2tzT25WaXJ0dWFsU2VydmVyVw0KK010eENsdUdldExpc3RPZlNoYXJlZERpc2tzVw0KK010eENsdUdldExpc3RPZlZpcnR1YWxTZXJ2ZXJzQQ0KK010eENsdUdldExpc3RPZlZpcnR1YWxTZXJ2ZXJzVw0KK010eENsdUdldE5ld0NyeXB0b0tleQ0KK010eENsdUdldE5vZGVDbHVzdGVyU3RhdGVXDQorTXR4Q2x1R2V0U2VjdXJpdHlSZWdWYWx1ZQ0KK010eENsdUluaXRpYWxpemUNCitNdHhDbHVJc0NsdXN0ZXJQcmVzZW50DQorTXR4Q2x1SXNDbHVzdGVyUHJlc2VudEV4QQ0KK010eENsdUlzQ2x1c3RlclByZXNlbnRFeFcNCitNdHhDbHVJc05ldHdvcmtOYW1lSW5Mb2NhbENsdXN0ZXJXDQorTXR4Q2x1SXNTYW1lQ2x1c3RlclcNCitNdHhDbHVJc1NhbWVOb2RlQQ0KK010eENsdUlzU2FtZU5vZGVXDQorTXR4Q2x1SXNTaGFyZWREaXNrQQ0KK010eENsdUlzU2hhcmVkRGlza1cNCitNdHhDbHVJc1ZpcnR1YWxTZXJ2ZXJJbkxvY2FsQ2x1c3RlckENCitNdHhDbHVJc1ZpcnR1YWxTZXJ2ZXJJbkxvY2FsQ2x1c3RlclcNCitNdHhDbHVKb2luRFRDUmVzb3VyY2UNCitNdHhDbHVMaXN0Tm9kZXNBDQorTXR4Q2x1TGlzdE5vZGVzVw0KK010eENsdU1vdmVEVENHcm91cEENCitNdHhDbHVNb3ZlRFRDR3JvdXBXDQorTXR4Q2x1Tm9kZU5vdGlmeUENCitNdHhDbHVOb2RlTm90aWZ5Vw0KK010eENsdVF1ZXJ5RHRjUmVzb3VyY2VWYWx1ZVcNCitNdHhDbHVSZWdpc3RlckRUQ1Jlc291cmNlQQ0KK010eENsdVJlZ2lzdGVyRFRDUmVzb3VyY2VXDQorTXR4Q2x1UmVtb3ZlQWxsUmVnaXN0cnlDaGVja3BvaW50cw0KK010eENsdVJlbW92ZUNoZWNrcG9pbnRSZWdpc3RyeUENCitNdHhDbHVSZW1vdmVDaGVja3BvaW50UmVnaXN0cnlXDQorTXR4Q2x1U2V0RFRDTG9nUGF0aEENCitNdHhDbHVTZXREVENMb2dQYXRoVw0KK010eENsdVNldERUQ0xvZ1NpemVBDQorTXR4Q2x1U2V0RFRDTG9nU2l6ZVcNCitNdHhDbHVTZXREdGNVc2VySW5mbw0KK010eENsdVNldE5ld0NyeXB0b0tleQ0KK010eENsdVNldFNlY3VyaXR5UmVnVmFsdWUNCitNdHhDbHVUYWtlT2ZmbGluZURUQzJXDQorTXR4Q2x1VGFrZU9mZmxpbmVEVENBDQorTXR4Q2x1VGFrZU9mZmxpbmVEVENXDQorTXR4Q2x1VW5pbml0aWFsaXplDQorTXR4Q2x1VXBncmFkZUR0Y1Jlc291cmNlVw0KK1N0YXJ0dXANCitXYXNEVENJbnN0YWxsZWRCeVNRTA0KK0RsbE1haW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9tdHhkbS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tdHhkbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzYwYzc5MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL210eGRtLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVR4RE0uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1UeERNLmRsbA0KK0VYUE9SVFMNCitHZXREaXNwZW5zZXJNYW5hZ2VyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbXR4ZXguZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbXR4ZXguZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVjYzA3ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tdHhleC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtdHhleC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXR4ZXguZGxsDQorRVhQT1JUUw0KK0RsbEdldENsYXNzT2JqZWN0DQorR2V0T2JqZWN0Q29udGV4dA0KK01UU0NyZWF0ZUFjdGl2aXR5DQorU2FmZVJlZg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL210eG9jaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9tdHhvY2kuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIxY2JlZmIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9tdHhvY2kuZGVmCkBAIC0wLDAgKzEsNDggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVR4T0NJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNVHhPQ0kuZGxsDQorRVhQT1JUUw0KK29ibmRyYQ0KK29ibmRybg0KK29ibmRydg0KK29icmVhaw0KK29jYW4NCitvY2xvc2UNCitvY29mDQorb2NvbQ0KK29jb24NCitvZGVmaW4NCitvZGVzY3INCitvZGVzc3ANCitvZXJobXMNCitvZXJtc2cNCitvZXhlYw0KK29leGZldA0KK29leG4NCitvZmVuDQorb2ZldGNoDQorb2ZsbmcNCitvbG9nDQorb2xvZ29mDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorb29wZW4NCitvb3B0DQorb3BhcnNlDQorb3JvbA0KK29iaW5kcHMNCitvZGVmaW5wcw0KK29nZXRwaQ0KK29zZXRwaQ0KK29waW5pdA0KK29sb2dUcmFuc2FjdGVkDQorRW5saXN0DQorR2V0WGFTd2l0Y2gNCitNVHhPY2lJbml0DQorTVR4b2xvZw0KK01UeE9jaUdldFZlcnNpb24NCitNVHhPY2lSZWdpc3RlckN1cnNvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL215Y29tcHV0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL215Y29tcHV0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMGVlNzZiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbXljb21wdXQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTXlDb21wdXQuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE15Q29tcHV0LkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL215ZG9jcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9teWRvY3MuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMzN2QxNGYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9teWRvY3MuZGVmCkBAIC0wLDAgKzEsMTQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXlkb2NzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBteWRvY3MuZGxsDQorRVhQT1JUUw0KK1BlclVzZXJJbml0DQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxJbnN0YWxsDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbmFycmhvb2suZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbmFycmhvb2suZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFhNjhkOTcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9uYXJyaG9vay5kZWYKQEAgLTAsMCArMSw2NCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBOQVJSSE9PSy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTkFSUkhPT0suZGxsDQorRVhQT1JUUw0KKzsgdm9pZCBfX2NkZWNsIEJhY2tUb0FwcGxpY2F0aW9uKHZvaWQpDQorP0JhY2tUb0FwcGxpY2F0aW9uQEBZQVhYWg0KKzsgaW50IF9fY2RlY2wgR2V0QW5ub3VuY2VNZW51KHZvaWQpDQorP0dldEFubm91bmNlTWVudUBAWUFIWFoNCis7IGludCBfX2NkZWNsIEdldEFubm91bmNlUG9wdXAodm9pZCkNCis/R2V0QW5ub3VuY2VQb3B1cEBAWUFIWFoNCis7IGludCBfX2NkZWNsIEdldEFubm91bmNlVG9vbFRpcHModm9pZCkNCis/R2V0QW5ub3VuY2VUb29sVGlwc0BAWUFIWFoNCis7IGludCBfX2NkZWNsIEdldEFubm91bmNlV2luZG93KHZvaWQpDQorP0dldEFubm91bmNlV2luZG93QEBZQUhYWg0KKzsgdm9pZCBfX2NkZWNsIEdldEN1cnJlbnRUZXh0KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxpbnQpDQorP0dldEN1cnJlbnRUZXh0QEBZQVhQRUFHSEBaDQorOyBpbnQgX19jZGVjbCBHZXRFY2hvQ2hhcnModm9pZCkNCis/R2V0RWNob0NoYXJzQEBZQUhYWg0KKzsgaW50IF9fY2RlY2wgR2V0UmV2aWV3TGV2ZWwodm9pZCkNCis/R2V0UmV2aWV3TGV2ZWxAQFlBSFhaDQorOyBpbnQgX19jZGVjbCBHZXRSZXZpZXdTdHlsZSh2b2lkKQ0KKz9HZXRSZXZpZXdTdHlsZUBAWUFIWFoNCis7IGludCBfX2NkZWNsIEdldFRyYWNrQ2FyZXQodm9pZCkNCis/R2V0VHJhY2tDYXJldEBAWUFIWFoNCis7IGludCBfX2NkZWNsIEdldFRyYWNrSW5wdXRGb2N1cyh2b2lkKQ0KKz9HZXRUcmFja0lucHV0Rm9jdXNAQFlBSFhaDQorOyBpbnQgX19jZGVjbCBHZXRUcmFja1NlY29uZGFyeSh2b2lkKQ0KKz9HZXRUcmFja1NlY29uZGFyeUBAWUFIWFoNCis7IGludCBfX2NkZWNsIEluaXRLZXlzKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0KQ0KKz9Jbml0S2V5c0BAWUFIUEVBVUhXTkRfX0BAQFoNCis7IGludCBfX2NkZWNsIEluaXRNU0FBKHZvaWQpDQorP0luaXRNU0FBQEBZQUhYWg0KKzsgdm9pZCBfX2NkZWNsIFNldEFubm91bmNlTWVudShpbnQpDQorP1NldEFubm91bmNlTWVudUBAWUFYSEBaDQorOyB2b2lkIF9fY2RlY2wgU2V0QW5ub3VuY2VQb3B1cChpbnQpDQorP1NldEFubm91bmNlUG9wdXBAQFlBWEhAWg0KKzsgdm9pZCBfX2NkZWNsIFNldEFubm91bmNlVG9vbFRpcHMoaW50KQ0KKz9TZXRBbm5vdW5jZVRvb2xUaXBzQEBZQVhIQFoNCis7IHZvaWQgX19jZGVjbCBTZXRBbm5vdW5jZVdpbmRvdyhpbnQpDQorP1NldEFubm91bmNlV2luZG93QEBZQVhIQFoNCis7IHZvaWQgX19jZGVjbCBTZXRDdXJyZW50VGV4dCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP1NldEN1cnJlbnRUZXh0QEBZQVhQRUJHQFoNCis7IHZvaWQgX19jZGVjbCBTZXRFY2hvQ2hhcnMoaW50KQ0KKz9TZXRFY2hvQ2hhcnNAQFlBWEhAWg0KKzsgdm9pZCBfX2NkZWNsIFNldFJldmlld0xldmVsKGludCkNCis/U2V0UmV2aWV3TGV2ZWxAQFlBWEhAWg0KKzsgdm9pZCBfX2NkZWNsIFNldFJldmlld1N0eWxlKGludCkNCis/U2V0UmV2aWV3U3R5bGVAQFlBWEhAWg0KKzsgdm9pZCBfX2NkZWNsIFNldFRyYWNrQ2FyZXQoaW50KQ0KKz9TZXRUcmFja0NhcmV0QEBZQVhIQFoNCis7IHZvaWQgX19jZGVjbCBTZXRUcmFja0lucHV0Rm9jdXMoaW50KQ0KKz9TZXRUcmFja0lucHV0Rm9jdXNAQFlBWEhAWg0KKzsgdm9pZCBfX2NkZWNsIFNldFRyYWNrU2Vjb25kYXJ5KGludCkNCis/U2V0VHJhY2tTZWNvbmRhcnlAQFlBWEhAWg0KKzsgaW50IF9fY2RlY2wgVW5Jbml0TVNBQSh2b2lkKQ0KKz9VbkluaXRNU0FBQEBZQUhYWg0KKzsgaW50IF9fY2RlY2wgVW5pbml0S2V5cyh2b2lkKQ0KKz9VbmluaXRLZXlzQEBZQUhYWg0KKzsgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgbHN0cmNhdG4odW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxpbnQpDQorP2xzdHJjYXRuQEBZQVBFQUdQRUFHMEhAWg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL25jb2JqYXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL25jb2JqYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NmE3NTU0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbmNvYmphcGkuZGVmCkBAIC0wLDAgKzEsMTggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTkNPYmpBUEkuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5DT2JqQVBJLkRMTA0KK0VYUE9SVFMNCitXbWlDb21taXRPYmplY3QNCitXbWlBZGRPYmplY3RQcm9wDQorV21pQ3JlYXRlT2JqZWN0DQorV21pQ3JlYXRlT2JqZWN0V2l0aEZvcm1hdA0KK1dtaUNyZWF0ZU9iamVjdFdpdGhQcm9wcw0KK1dtaURlc3Ryb3lPYmplY3QNCitXbWlFdmVudFNvdXJjZUNvbm5lY3QNCitXbWlFdmVudFNvdXJjZURpc2Nvbm5lY3QNCitXbWlJc09iamVjdEFjdGl2ZQ0KK1dtaVNldEFuZENvbW1pdE9iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL25jcHJvdi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9uY3Byb3YuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk2MDIwNjUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9uY3Byb3YuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTkNQcm92LkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBOQ1Byb3YuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbmN4cG50LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL25jeHBudC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzVmNzM4MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL25jeHBudC5kZWYKQEAgLTAsMCArMSwzMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBOQ1hQLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBOQ1hQLmRsbA0KK0VYUE9SVFMNCitFbmFibGVBdXRvZGlhbA0KK0dldERlZmF1bHREaWFsdXBDb25uZWN0aW9uDQorSXNBdXRvZGlhbEVuYWJsZWQNCitTZXREZWZhdWx0RGlhbHVwQ29ubmVjdGlvbg0KK1Rlc3RSdW5EbGwNCitEaXNhYmxlVXNlckxldmVsQWNjZXNzQ29udHJvbA0KK0VudW1NYXRjaGluZ05ldEJpbmRpbmdzDQorRW51bU5ldEFkYXB0ZXJzDQorSHJFbmFibGVEaGNwDQorSHJGcm9tTGFzdFdpbjMyRXJyb3INCitIcldpZGVDaGFyVG9NdWx0aUJ5dGUNCitJbnN0YWxsTVNDbGllbnQNCitJbnN0YWxsU2hhcmluZw0KK0luc3RhbGxUQ1BJUA0KK0lzQWNjZXNzQ29udHJvbFVzZXJMZXZlbA0KK0lzQWRhcHRlckRpc2Nvbm5lY3RlZA0KK0lzQ2xpZW50SW5zdGFsbGVkDQorSXNNU0NsaWVudEluc3RhbGxlZA0KK0lzUHJvdG9jb2xJbnN0YWxsZWQNCitJc1NoYXJpbmdJbnN0YWxsZWQNCitOZXRDb25uQWxsb2MNCitOZXRDb25uRnJlZQ0KK1Jlc3RhcnROZXRBZGFwdGVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbmRkZWFwaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9uZGRlYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wYjIzNjA0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbmRkZWFwaS5kZWYKQEAgLTAsMCArMSwzNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBORGRlQXBpLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBORGRlQXBpLmRsbA0KK0VYUE9SVFMNCitORGRlU2hhcmVBZGRBDQorTkRkZVNoYXJlRGVsQQ0KK05EZGVTaGFyZUVudW1BDQorTkRkZVNoYXJlR2V0SW5mb0ENCitORGRlU2hhcmVTZXRJbmZvQQ0KK05EZGVHZXRFcnJvclN0cmluZ0ENCitORGRlSXNWYWxpZFNoYXJlTmFtZUENCitORGRlSXNWYWxpZEFwcFRvcGljTGlzdEENCitORGRlU3BlY2lhbENvbW1hbmRBDQorTkRkZUdldFNoYXJlU2VjdXJpdHlBDQorTkRkZVNldFNoYXJlU2VjdXJpdHlBDQorTkRkZUdldFRydXN0ZWRTaGFyZUENCitORGRlU2V0VHJ1c3RlZFNoYXJlQQ0KK05EZGVUcnVzdGVkU2hhcmVFbnVtQQ0KK05EZGVTaGFyZUFkZFcNCitORGRlU2hhcmVEZWxXDQorTkRkZVNoYXJlRW51bVcNCitORGRlU2hhcmVHZXRJbmZvVw0KK05EZGVTaGFyZVNldEluZm9XDQorTkRkZUdldEVycm9yU3RyaW5nVw0KK05EZGVJc1ZhbGlkU2hhcmVOYW1lVw0KK05EZGVJc1ZhbGlkQXBwVG9waWNMaXN0Vw0KK05EZGVTcGVjaWFsQ29tbWFuZFcNCitORGRlR2V0U2hhcmVTZWN1cml0eVcNCitORGRlU2V0U2hhcmVTZWN1cml0eVcNCitORGRlR2V0VHJ1c3RlZFNoYXJlVw0KK05EZGVTZXRUcnVzdGVkU2hhcmVXDQorTkRkZVRydXN0ZWRTaGFyZUVudW1XDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbmRkZW5iMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbmRkZW5iMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFmYWViN2UKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9uZGRlbmIzMi5kZWYKQEAgLTAsMCArMSwyMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBORERFTkIzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTkRERU5CMzIuZGxsDQorRVhQT1JUUw0KK05EREVJbml0DQorTkRERUdldENBUFMNCitORERFR2V0TmV3Q29ubmVjdGlvbg0KK05EREVBZGRDb25uZWN0aW9uDQorTkRERURlbGV0ZUNvbm5lY3Rpb24NCitORERFR2V0Q29ubmVjdGlvblN0YXR1cw0KK05EREVSY3ZQYWNrZXQNCitORERFWG10UGFja2V0DQorTkRERVNldENvbm5lY3Rpb25Db25maWcNCitORERFU2h1dGRvd24NCitORERFVGltZVNsaWNlDQorTkRERUdldENvbm5lY3Rpb25Db25maWcNCitDb25maWd1cmUNCitMb2dEZWJ1Z0luZm8NCitDb25maWd1cmVEbGdQcm9jDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbmRpc25wcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9uZGlzbnBwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNzJmZjA4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbmRpc25wcC5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBORElTTlBQLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBORElTTlBQLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldE5QUEJsb2JzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbmV0YXBpMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbmV0YXBpMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY0OTUxMDIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9uZXRhcGkzMi5kZWYKQEAgLTAsMCArMSwzNDggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTkVUQVBJMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5FVEFQSTMyLmRsbA0KK0VYUE9SVFMNCitDcmVkcFZhbGlkYXRlVGFyZ2V0TmFtZQ0KK0RzQWRkcmVzc1RvU2l0ZU5hbWVzQQ0KK0RzQWRkcmVzc1RvU2l0ZU5hbWVzRXhBDQorRHNBZGRyZXNzVG9TaXRlTmFtZXNFeFcNCitEc0FkZHJlc3NUb1NpdGVOYW1lc1cNCitEc0RlcmVnaXN0ZXJEbnNIb3N0UmVjb3Jkc0ENCitEc0RlcmVnaXN0ZXJEbnNIb3N0UmVjb3Jkc1cNCitEc0VudW1lcmF0ZURvbWFpblRydXN0c0ENCitEc0VudW1lcmF0ZURvbWFpblRydXN0c1cNCitEc0dldERjQ2xvc2VXDQorRHNHZXREY05hbWVBDQorRHNHZXREY05hbWVXDQorRHNHZXREY05hbWVXaXRoQWNjb3VudEENCitEc0dldERjTmFtZVdpdGhBY2NvdW50Vw0KK0RzR2V0RGNOZXh0QQ0KK0RzR2V0RGNOZXh0Vw0KK0RzR2V0RGNPcGVuQQ0KK0RzR2V0RGNPcGVuVw0KK0RzR2V0RGNTaXRlQ292ZXJhZ2VBDQorRHNHZXREY1NpdGVDb3ZlcmFnZVcNCitEc0dldEZvcmVzdFRydXN0SW5mb3JtYXRpb25XDQorRHNHZXRTaXRlTmFtZUENCitEc0dldFNpdGVOYW1lVw0KK0RzTWVyZ2VGb3Jlc3RUcnVzdEluZm9ybWF0aW9uVw0KK0RzUm9sZUFib3J0RG93bmxldmVsU2VydmVyVXBncmFkZQ0KK0RzUm9sZUNhbmNlbA0KK0RzUm9sZURjQXNEYw0KK0RzUm9sZURjQXNSZXBsaWNhDQorRHNSb2xlRGVtb3RlRGMNCitEc1JvbGVEbnNOYW1lVG9GbGF0TmFtZQ0KK0RzUm9sZUZyZWVNZW1vcnkNCitEc1JvbGVHZXREYXRhYmFzZUZhY3RzDQorRHNSb2xlR2V0RGNPcGVyYXRpb25Qcm9ncmVzcw0KK0RzUm9sZUdldERjT3BlcmF0aW9uUmVzdWx0cw0KK0RzUm9sZUdldFByaW1hcnlEb21haW5JbmZvcm1hdGlvbg0KK0RzUm9sZUlmbUhhbmRsZUZyZWUNCitEc1JvbGVTZXJ2ZXJTYXZlU3RhdGVGb3JVcGdyYWRlDQorRHNSb2xlVXBncmFkZURvd25sZXZlbFNlcnZlcg0KK0RzVmFsaWRhdGVTdWJuZXROYW1lQQ0KK0RzVmFsaWRhdGVTdWJuZXROYW1lVw0KK0lfQnJvd3NlckRlYnVnQ2FsbA0KK0lfQnJvd3NlckRlYnVnVHJhY2UNCitJX0Jyb3dzZXJRdWVyeUVtdWxhdGVkRG9tYWlucw0KK0lfQnJvd3NlclF1ZXJ5T3RoZXJEb21haW5zDQorSV9Ccm93c2VyUXVlcnlTdGF0aXN0aWNzDQorSV9Ccm93c2VyUmVzZXROZXRsb2dvblN0YXRlDQorSV9Ccm93c2VyUmVzZXRTdGF0aXN0aWNzDQorSV9Ccm93c2VyU2VydmVyRW51bQ0KK0lfQnJvd3NlclNldE5ldGxvZ29uU3RhdGUNCitJX05ldEFjY291bnREZWx0YXMNCitJX05ldEFjY291bnRTeW5jDQorSV9OZXREYXRhYmFzZURlbHRhcw0KK0lfTmV0RGF0YWJhc2VSZWRvDQorSV9OZXREYXRhYmFzZVN5bmMNCitJX05ldERhdGFiYXNlU3luYzINCitJX05ldERmc0NyZWF0ZUV4aXRQb2ludA0KK0lfTmV0RGZzQ3JlYXRlTG9jYWxQYXJ0aXRpb24NCitJX05ldERmc0RlbGV0ZUV4aXRQb2ludA0KK0lfTmV0RGZzRGVsZXRlTG9jYWxQYXJ0aXRpb24NCitJX05ldERmc0ZpeExvY2FsVm9sdW1lDQorSV9OZXREZnNHZXRGdFNlcnZlcnMNCitJX05ldERmc0dldFZlcnNpb24NCitJX05ldERmc0lzVGhpc0FEb21haW5OYW1lDQorSV9OZXREZnNNYW5hZ2VyUmVwb3J0U2l0ZUluZm8NCitJX05ldERmc01vZGlmeVByZWZpeA0KK0lfTmV0RGZzU2V0TG9jYWxWb2x1bWVTdGF0ZQ0KK0lfTmV0RGZzU2V0U2VydmVySW5mbw0KK0lfTmV0R2V0RENMaXN0DQorSV9OZXRHZXRGb3Jlc3RUcnVzdEluZm9ybWF0aW9uDQorSV9OZXRMaXN0Q2Fub25pY2FsaXplDQorSV9OZXRMaXN0VHJhdmVyc2UNCitJX05ldExvZ29uQ29udHJvbA0KK0lfTmV0TG9nb25Db250cm9sMg0KK0lfTmV0TG9nb25HZXREb21haW5JbmZvDQorSV9OZXRMb2dvblNhbUxvZ29mZg0KK0lfTmV0TG9nb25TYW1Mb2dvbg0KK0lfTmV0TG9nb25TYW1Mb2dvbkV4DQorSV9OZXRMb2dvblNhbUxvZ29uV2l0aEZsYWdzDQorSV9OZXRMb2dvblNlbmRUb1NhbQ0KK0lfTmV0TG9nb25VYXNMb2dvZmYNCitJX05ldExvZ29uVWFzTG9nb24NCitJX05ldE5hbWVDYW5vbmljYWxpemUNCitJX05ldE5hbWVDb21wYXJlDQorSV9OZXROYW1lVmFsaWRhdGUNCitJX05ldFBhdGhDYW5vbmljYWxpemUNCitJX05ldFBhdGhDb21wYXJlDQorSV9OZXRQYXRoVHlwZQ0KK0lfTmV0U2VydmVyQXV0aGVudGljYXRlDQorSV9OZXRTZXJ2ZXJBdXRoZW50aWNhdGUyDQorSV9OZXRTZXJ2ZXJBdXRoZW50aWNhdGUzDQorSV9OZXRTZXJ2ZXJHZXRUcnVzdEluZm8NCitJX05ldFNlcnZlclBhc3N3b3JkR2V0DQorSV9OZXRTZXJ2ZXJQYXNzd29yZFNldA0KK0lfTmV0U2VydmVyUGFzc3dvcmRTZXQyDQorSV9OZXRTZXJ2ZXJSZXFDaGFsbGVuZ2UNCitJX05ldFNlcnZlclNldFNlcnZpY2VCaXRzDQorSV9OZXRTZXJ2ZXJTZXRTZXJ2aWNlQml0c0V4DQorSV9OZXRTZXJ2ZXJUcnVzdFBhc3N3b3Jkc0dldA0KK0lfTmV0bG9nb25Db21wdXRlQ2xpZW50RGlnZXN0DQorSV9OZXRsb2dvbkNvbXB1dGVTZXJ2ZXJEaWdlc3QNCitJX05ldGxvZ29uR2V0VHJ1c3RSaWQNCitOZXRBZGRBbHRlcm5hdGVDb21wdXRlck5hbWUNCitOZXRBbGVydFJhaXNlDQorTmV0QWxlcnRSYWlzZUV4DQorTmV0QXBpQnVmZmVyQWxsb2NhdGUNCitOZXRBcGlCdWZmZXJGcmVlDQorTmV0QXBpQnVmZmVyUmVhbGxvY2F0ZQ0KK05ldEFwaUJ1ZmZlclNpemUNCitOZXRBdWRpdENsZWFyDQorTmV0QXVkaXRSZWFkDQorTmV0QXVkaXRXcml0ZQ0KK05ldEJyb3dzZXJTdGF0aXN0aWNzR2V0DQorTmV0Q29uZmlnR2V0DQorTmV0Q29uZmlnR2V0QWxsDQorTmV0Q29uZmlnU2V0DQorTmV0Q29ubmVjdGlvbkVudW0NCitOZXREZnNBZGQNCitOZXREZnNBZGRGdFJvb3QNCitOZXREZnNBZGRTdGRSb290DQorTmV0RGZzQWRkU3RkUm9vdEZvcmNlZA0KK05ldERmc0VudW0NCitOZXREZnNHZXRDbGllbnRJbmZvDQorTmV0RGZzR2V0RGNBZGRyZXNzDQorTmV0RGZzR2V0RnRDb250YWluZXJTZWN1cml0eQ0KK05ldERmc0dldEluZm8NCitOZXREZnNHZXRTZWN1cml0eQ0KK05ldERmc0dldFN0ZENvbnRhaW5lclNlY3VyaXR5DQorTmV0RGZzTWFuYWdlckdldENvbmZpZ0luZm8NCitOZXREZnNNYW5hZ2VySW5pdGlhbGl6ZQ0KK05ldERmc01hbmFnZXJTZW5kU2l0ZUluZm8NCitOZXREZnNNb3ZlDQorTmV0RGZzUmVtb3ZlDQorTmV0RGZzUmVtb3ZlRnRSb290DQorTmV0RGZzUmVtb3ZlRnRSb290Rm9yY2VkDQorTmV0RGZzUmVtb3ZlU3RkUm9vdA0KK05ldERmc1JlbmFtZQ0KK05ldERmc1NldENsaWVudEluZm8NCitOZXREZnNTZXRGdENvbnRhaW5lclNlY3VyaXR5DQorTmV0RGZzU2V0SW5mbw0KK05ldERmc1NldFNlY3VyaXR5DQorTmV0RGZzU2V0U3RkQ29udGFpbmVyU2VjdXJpdHkNCitOZXRFbnVtZXJhdGVDb21wdXRlck5hbWVzDQorTmV0RW51bWVyYXRlVHJ1c3RlZERvbWFpbnMNCitOZXRFcnJvckxvZ0NsZWFyDQorTmV0RXJyb3JMb2dSZWFkDQorTmV0RXJyb3JMb2dXcml0ZQ0KK05ldEZpbGVDbG9zZQ0KK05ldEZpbGVFbnVtDQorTmV0RmlsZUdldEluZm8NCitOZXRHZXRBbnlEQ05hbWUNCitOZXRHZXREQ05hbWUNCitOZXRHZXREaXNwbGF5SW5mb3JtYXRpb25JbmRleA0KK05ldEdldEpvaW5JbmZvcm1hdGlvbg0KK05ldEdldEpvaW5hYmxlT1VzDQorTmV0R3JvdXBBZGQNCitOZXRHcm91cEFkZFVzZXINCitOZXRHcm91cERlbA0KK05ldEdyb3VwRGVsVXNlcg0KK05ldEdyb3VwRW51bQ0KK05ldEdyb3VwR2V0SW5mbw0KK05ldEdyb3VwR2V0VXNlcnMNCitOZXRHcm91cFNldEluZm8NCitOZXRHcm91cFNldFVzZXJzDQorTmV0Sm9pbkRvbWFpbg0KK05ldExvY2FsR3JvdXBBZGQNCitOZXRMb2NhbEdyb3VwQWRkTWVtYmVyDQorTmV0TG9jYWxHcm91cEFkZE1lbWJlcnMNCitOZXRMb2NhbEdyb3VwRGVsDQorTmV0TG9jYWxHcm91cERlbE1lbWJlcg0KK05ldExvY2FsR3JvdXBEZWxNZW1iZXJzDQorTmV0TG9jYWxHcm91cEVudW0NCitOZXRMb2NhbEdyb3VwR2V0SW5mbw0KK05ldExvY2FsR3JvdXBHZXRNZW1iZXJzDQorTmV0TG9jYWxHcm91cFNldEluZm8NCitOZXRMb2NhbEdyb3VwU2V0TWVtYmVycw0KK05ldExvZ29uR2V0VGltZVNlcnZpY2VQYXJlbnREb21haW4NCitOZXRMb2dvblNldFNlcnZpY2VCaXRzDQorTmV0TWVzc2FnZUJ1ZmZlclNlbmQNCitOZXRNZXNzYWdlTmFtZUFkZA0KK05ldE1lc3NhZ2VOYW1lRGVsDQorTmV0TWVzc2FnZU5hbWVFbnVtDQorTmV0TWVzc2FnZU5hbWVHZXRJbmZvDQorTmV0UXVlcnlEaXNwbGF5SW5mb3JtYXRpb24NCitOZXRSZWdpc3RlckRvbWFpbk5hbWVDaGFuZ2VOb3RpZmljYXRpb24NCitOZXRSZW1vdGVDb21wdXRlclN1cHBvcnRzDQorTmV0UmVtb3RlVE9EDQorTmV0UmVtb3ZlQWx0ZXJuYXRlQ29tcHV0ZXJOYW1lDQorTmV0UmVuYW1lTWFjaGluZUluRG9tYWluDQorTmV0UmVwbEV4cG9ydERpckFkZA0KK05ldFJlcGxFeHBvcnREaXJEZWwNCitOZXRSZXBsRXhwb3J0RGlyRW51bQ0KK05ldFJlcGxFeHBvcnREaXJHZXRJbmZvDQorTmV0UmVwbEV4cG9ydERpckxvY2sNCitOZXRSZXBsRXhwb3J0RGlyU2V0SW5mbw0KK05ldFJlcGxFeHBvcnREaXJVbmxvY2sNCitOZXRSZXBsR2V0SW5mbw0KK05ldFJlcGxJbXBvcnREaXJBZGQNCitOZXRSZXBsSW1wb3J0RGlyRGVsDQorTmV0UmVwbEltcG9ydERpckVudW0NCitOZXRSZXBsSW1wb3J0RGlyR2V0SW5mbw0KK05ldFJlcGxJbXBvcnREaXJMb2NrDQorTmV0UmVwbEltcG9ydERpclVubG9jaw0KK05ldFJlcGxTZXRJbmZvDQorTmV0U2NoZWR1bGVKb2JBZGQNCitOZXRTY2hlZHVsZUpvYkRlbA0KK05ldFNjaGVkdWxlSm9iRW51bQ0KK05ldFNjaGVkdWxlSm9iR2V0SW5mbw0KK05ldFNlcnZlckNvbXB1dGVyTmFtZUFkZA0KK05ldFNlcnZlckNvbXB1dGVyTmFtZURlbA0KK05ldFNlcnZlckRpc2tFbnVtDQorTmV0U2VydmVyRW51bQ0KK05ldFNlcnZlckVudW1FeA0KK05ldFNlcnZlckdldEluZm8NCitOZXRTZXJ2ZXJTZXRJbmZvDQorTmV0U2VydmVyVHJhbnNwb3J0QWRkDQorTmV0U2VydmVyVHJhbnNwb3J0QWRkRXgNCitOZXRTZXJ2ZXJUcmFuc3BvcnREZWwNCitOZXRTZXJ2ZXJUcmFuc3BvcnRFbnVtDQorTmV0U2VydmljZUNvbnRyb2wNCitOZXRTZXJ2aWNlRW51bQ0KK05ldFNlcnZpY2VHZXRJbmZvDQorTmV0U2VydmljZUluc3RhbGwNCitOZXRTZXNzaW9uRGVsDQorTmV0U2Vzc2lvbkVudW0NCitOZXRTZXNzaW9uR2V0SW5mbw0KK05ldFNldFByaW1hcnlDb21wdXRlck5hbWUNCitOZXRTaGFyZUFkZA0KK05ldFNoYXJlQ2hlY2sNCitOZXRTaGFyZURlbA0KK05ldFNoYXJlRGVsU3RpY2t5DQorTmV0U2hhcmVFbnVtDQorTmV0U2hhcmVFbnVtU3RpY2t5DQorTmV0U2hhcmVHZXRJbmZvDQorTmV0U2hhcmVTZXRJbmZvDQorTmV0U3RhdGlzdGljc0dldA0KK05ldFVuam9pbkRvbWFpbg0KK05ldFVucmVnaXN0ZXJEb21haW5OYW1lQ2hhbmdlTm90aWZpY2F0aW9uDQorTmV0VXNlQWRkDQorTmV0VXNlRGVsDQorTmV0VXNlRW51bQ0KK05ldFVzZUdldEluZm8NCitOZXRVc2VyQWRkDQorTmV0VXNlckNoYW5nZVBhc3N3b3JkDQorTmV0VXNlckRlbA0KK05ldFVzZXJFbnVtDQorTmV0VXNlckdldEdyb3Vwcw0KK05ldFVzZXJHZXRJbmZvDQorTmV0VXNlckdldExvY2FsR3JvdXBzDQorTmV0VXNlck1vZGFsc0dldA0KK05ldFVzZXJNb2RhbHNTZXQNCitOZXRVc2VyU2V0R3JvdXBzDQorTmV0VXNlclNldEluZm8NCitOZXRWYWxpZGF0ZU5hbWUNCitOZXRWYWxpZGF0ZVBhc3N3b3JkUG9saWN5DQorTmV0VmFsaWRhdGVQYXNzd29yZFBvbGljeUZyZWUNCitOZXRXa3N0YUdldEluZm8NCitOZXRXa3N0YVNldEluZm8NCitOZXRXa3N0YVRyYW5zcG9ydEFkZA0KK05ldFdrc3RhVHJhbnNwb3J0RGVsDQorTmV0V2tzdGFUcmFuc3BvcnRFbnVtDQorTmV0V2tzdGFVc2VyRW51bQ0KK05ldFdrc3RhVXNlckdldEluZm8NCitOZXRXa3N0YVVzZXJTZXRJbmZvDQorTmV0YXBpcEJ1ZmZlckFsbG9jYXRlDQorTmV0Ymlvcw0KK05ldHBBY2Nlc3NDaGVjaw0KK05ldHBBY2Nlc3NDaGVja0FuZEF1ZGl0DQorTmV0cEFkZFRsbkZ0aW5mb0VudHJ5DQorTmV0cEFsbG9jQ29uZmlnTmFtZQ0KK05ldHBBbGxvY0Z0aW5mb0VudHJ5DQorTmV0cEFsbG9jU3RyRnJvbVdTdHINCitOZXRwQWxsb2NXU3RyRnJvbVN0cg0KK05ldHBBbGxvY1dTdHJGcm9tV1N0cg0KK05ldHBBcGlTdGF0dXNUb050U3RhdHVzDQorTmV0cEFzc2VydEZhaWxlZA0KK05ldHBDbGVhbkZ0aW5mb0NvbnRleHQNCitOZXRwQ2xvc2VDb25maWdEYXRhDQorTmV0cENvcHlGdGluZm9Db250ZXh0DQorTmV0cENvcHlTdHJpbmdUb0J1ZmZlcg0KK05ldHBDcmVhdGVTZWN1cml0eU9iamVjdA0KK05ldHBEYmdQcmludA0KK05ldHBEZWxldGVTZWN1cml0eU9iamVjdA0KK05ldHBHZXRDb21wdXRlck5hbWUNCitOZXRwR2V0Q29uZmlnQm9vbA0KK05ldHBHZXRDb25maWdEd29yZA0KK05ldHBHZXRDb25maWdUU3RyQXJyYXkNCitOZXRwR2V0Q29uZmlnVmFsdWUNCitOZXRwR2V0RG9tYWluTmFtZQ0KK05ldHBHZXRGaWxlU2VjdXJpdHkNCitOZXRwR2V0UHJpdmlsZWdlDQorTmV0cEhleER1bXANCitOZXRwSW5pdEZ0aW5mb0NvbnRleHQNCitOZXRwSW5pdE9lbVN0cmluZw0KK05ldHBJc1JlbW90ZQ0KK05ldHBJc1VuY0NvbXB1dGVyTmFtZVZhbGlkDQorTmV0cExvY2FsVGltZVpvbmVPZmZzZXQNCitOZXRwTG9nb25QdXRVbmljb2RlU3RyaW5nDQorTmV0cE1lcmdlRnRpbmZvDQorTmV0cE5ldEJpb3NBZGROYW1lDQorTmV0cE5ldEJpb3NDYWxsDQorTmV0cE5ldEJpb3NEZWxOYW1lDQorTmV0cE5ldEJpb3NHZXRBZGFwdGVyTnVtYmVycw0KK05ldHBOZXRCaW9zSGFuZ3VwDQorTmV0cE5ldEJpb3NSZWNlaXZlDQorTmV0cE5ldEJpb3NSZXNldA0KK05ldHBOZXRCaW9zU2VuZA0KK05ldHBOZXRCaW9zU3RhdHVzVG9BcGlTdGF0dXMNCitOZXRwTnRTdGF0dXNUb0FwaVN0YXR1cw0KK05ldHBPcGVuQ29uZmlnRGF0YQ0KK05ldHBQYWNrU3RyaW5nDQorTmV0cFBhcm1zUXVlcnlVc2VyUHJvcGVydHkNCitOZXRwUGFybXNRdWVyeVVzZXJQcm9wZXJ0eVdpdGhMZW5ndGgNCitOZXRwUGFybXNTZXRVc2VyUHJvcGVydHkNCitOZXRwUGFybXNTZXRVc2VyUHJvcGVydHlXaXRoTGVuZ3RoDQorTmV0cFBhcm1zVXNlclByb3BlcnR5RnJlZQ0KK05ldHBSZWxlYXNlUHJpdmlsZWdlDQorTmV0cFNldEZpbGVTZWN1cml0eQ0KK05ldHBTbWJDaGVjaw0KK05ldHBTdG9yZUludGlhbERjUmVjb3JkDQorTmV0cFN0cmluZ1RvTmV0Qmlvc05hbWUNCitOZXRwVFN0ckFycmF5RW50cnlDb3VudA0KK05ldHBVcGdyYWRlUHJlTlQ1Sm9pbkluZm8NCitOZXRwd05hbWVDYW5vbmljYWxpemUNCitOZXRwd05hbWVDb21wYXJlDQorTmV0cHdOYW1lVmFsaWRhdGUNCitOZXRwd1BhdGhDYW5vbmljYWxpemUNCitOZXRwd1BhdGhDb21wYXJlDQorTmV0cHdQYXRoVHlwZQ0KK05sQmluZGluZ0FkZFNlcnZlclRvQ2FjaGUNCitObEJpbmRpbmdSZW1vdmVTZXJ2ZXJGcm9tQ2FjaGUNCitObEJpbmRpbmdTZXRBdXRoSW5mbw0KK1J4TmV0QWNjZXNzQWRkDQorUnhOZXRBY2Nlc3NEZWwNCitSeE5ldEFjY2Vzc0VudW0NCitSeE5ldEFjY2Vzc0dldEluZm8NCitSeE5ldEFjY2Vzc0dldFVzZXJQZXJtcw0KK1J4TmV0QWNjZXNzU2V0SW5mbw0KK1J4TmV0U2VydmVyRW51bQ0KK1J4TmV0VXNlclBhc3N3b3JkU2V0DQorUnhSZW1vdGVBcGkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9uZXRjZmd4LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL25ldGNmZ3guZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQzMTE2NDkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9uZXRjZmd4LmRlZgpAQCAtMCwwICsxLDI2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG5ldGNmZ3guZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG5ldGNmZ3guZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBzdHJ1Y3QgV0xCU19SRUdfUEFSQU1TICYgX19wdHI2NCBfX2NkZWNsIFdMQlNfUkVHX1BBUkFNUzo6b3BlcmF0b3I9KHN0cnVjdCBXTEJTX1JFR19QQVJBTVMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80V0xCU19SRUdfUEFSQU1TQEBRRUFBQUVBVTBAQUVCVTBAQFoNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0hyRGlBZGRDb21wb25lbnRUb0lOZXRDZmcNCitMYW5hQ2ZnRnJvbUNvbW1hbmRBcmdzDQorTW9kZW1DbGFzc0NvSW5zdGFsbGVyDQorTmV0Q2ZnRGlhZ0Zyb21Db21tYW5kQXJncw0KK05ldENmZ0RpYWdSZXBhaXJSZWdpc3RyeUJpbmRpbmdzDQorTmV0Q2xhc3NJbnN0YWxsZXINCitOZXRQcm9wUGFnZVByb3ZpZGVyDQorUmFzQWRkQmluZGluZ3MNCitSYXNDb3VudEJpbmRpbmdzDQorUmFzUmVtb3ZlQmluZGluZ3MNCitTdmNob3N0Q2hhbmdlU3ZjaG9zdEdyb3VwDQorVXBkYXRlTGFuYUNvbmZpZ1VzaW5nQW5zd2VyZmlsZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL25ldGlkLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL25ldGlkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMDQ1NGIxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbmV0aWQuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTkVUSUQuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5FVElELkRMTA0KK0VYUE9SVFMNCitDcmVhdGVOZXRJRFByb3BlcnR5UGFnZQ0KK1Nob3dEY05vdEZvdW5kRXJyb3JEaWFsb2cNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9uZXRsb2dvbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9uZXRsb2dvbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTEzNzI2MAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL25ldGxvZ29uLmRlZgpAQCAtMCwwICsxLDMzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE5FVExPR09OLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBORVRMT0dPTi5kbGwNCitFWFBPUlRTDQorRHNyR2V0RGNOYW1lRXgyDQorSV9Ec0dldERjQ2FjaGUNCitJX05ldExvZ29uQWRkcmVzc1RvU2l0ZU5hbWUNCitJX05ldExvZ29uQXBwZW5kQ2hhbmdlTG9nDQorSV9OZXRMb2dvbkNsb3NlQ2hhbmdlTG9nDQorSV9OZXRMb2dvbkZyZWUNCitJX05ldExvZ29uR2V0QXV0aERhdGFFeA0KK0lfTmV0TG9nb25HZXRJcEFkZHJlc3Nlcw0KK0lfTmV0TG9nb25HZXRTZXJpYWxOdW1iZXINCitJX05ldExvZ29uTGRhcExvb2t1cEV4DQorSV9OZXRMb2dvbk1peGVkRG9tYWluDQorSV9OZXRMb2dvbk5ld0NoYW5nZUxvZw0KK0lfTmV0TG9nb25SZWFkQ2hhbmdlTG9nDQorSV9OZXRMb2dvblNlbmRUb1NhbU9uUGRjDQorSV9OZXRMb2dvblNldFNlcnZpY2VCaXRzDQorSV9OZXROb3RpZnlEZWx0YQ0KK0lfTmV0Tm90aWZ5RHNDaGFuZ2UNCitJX05ldE5vdGlmeU1hY2hpbmVBY2NvdW50DQorSV9OZXROb3RpZnlOZXRsb2dvbkRsbEhhbmRsZQ0KK0lfTmV0Tm90aWZ5TnRkc0RzYURlbGV0aW9uDQorSV9OZXROb3RpZnlSb2xlDQorSV9OZXROb3RpZnlUcnVzdGVkRG9tYWluDQorSW5pdFNlY3VyaXR5SW50ZXJmYWNlVw0KK05ldElMb2dvblNhbUxvZ29uDQorTmxOZXRsb2dvbk1haW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9uZXRtYW4uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbmV0bWFuLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNGZmMTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbmV0bWFuLmRlZgpAQCAtMCwwICsxLDIwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG5ldG1hbi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbmV0bWFuLmRsbA0KK0VYUE9SVFMNCitHZXRDbGllbnRBZHZpc2VzDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorSHJHZXRQbnBEZXZpY2VTdGF0dXMNCitIckxhbkNvbm5lY3Rpb25OYW1lRnJvbUd1aWRPclBhdGgNCitIclBucEluc3RhbmNlSWRGcm9tR3VpZA0KK0hyUXVlcnlMYW5NZWRpYVN0YXRlDQorSHJSYXNDb25uZWN0aW9uTmFtZUZyb21HdWlkDQorTmV0TWFuRGlhZ0Zyb21Db21tYW5kQXJncw0KK1Byb2Nlc3NRdWV1ZQ0KK1Jhc0V2ZW50Tm90aWZ5DQorU2VydmljZU1haW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9uZXRvYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9uZXRvYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWJjZDU0MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL25ldG9jLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbmV0b2MuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG5ldG9jLmRsbA0KK0VYUE9SVFMNCitOZXRPY1NldHVwUHJvYw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL25ldHBsd2l6LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL25ldHBsd2l6LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mOTdjM2U0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbmV0cGx3aXouZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTkVUUExXSVouZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5FVFBMV0laLmRsbA0KK0VYUE9SVFMNCitBZGROZXRQbGFjZVJ1bkRsbA0KK1Bhc3Nwb3J0V2l6YXJkUnVuRGxsDQorUHVibGlzaFJ1bkRsbA0KK1VzZXJzUnVuRGxsDQorQ2xlYXJBdXRvTG9nb24NCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbEluc3RhbGwNCitEbGxNYWluDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorTmV0QWNjZXNzV2l6YXJkDQorTmV0UGxhY2VzV2l6YXJkRG9Nb2RhbA0KK1NIRGlzY29ubmVjdE5ldERyaXZlcw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL25ldHJhcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9uZXRyYXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUxZDc3NzcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9uZXRyYXAuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTkVUUkFQLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBORVRSQVAuZGxsDQorRVhQT1JUUw0KK1JhcEFycmF5TGVuZ3RoDQorUmFwQXNjaWlUb0RlY2ltYWwNCitSYXBBdXhEYXRhQ291bnQNCitSYXBBdXhEYXRhQ291bnRPZmZzZXQNCitSYXBDb252ZXJ0U2luZ2xlRW50cnkNCitSYXBDb252ZXJ0U2luZ2xlRW50cnlFeA0KK1JhcEV4YW1pbmVEZXNjcmlwdG9yDQorUmFwR2V0RmllbGRTaXplDQorUmFwSXNWYWxpZERlc2NyaXB0b3JTbWINCitSYXBMYXN0UG9pbnRlck9mZnNldA0KK1JhcFBhcm1OdW1EZXNjcmlwdG9yDQorUmFwU3RydWN0dXJlQWxpZ25tZW50DQorUmFwU3RydWN0dXJlU2l6ZQ0KK1JhcFRvdGFsU2l6ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL25ldHNoZWxsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL25ldHNoZWxsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NGJiMGE0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbmV0c2hlbGwuZGVmCkBAIC0wLDAgKzEsNDIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbmV0c2hlbGwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG5ldHNoZWxsLmRsbA0KK0VYUE9SVFMNCitEb0luaXRpYWxDbGVhbnVwDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitIckNyZWF0ZURlc2t0b3BJY29uDQorSHJHZXRBbnN3ZXJGaWxlUGFyYW1ldGVyc0Zvck5ldENhcmQNCitIckdldEV4dGVuZGVkU3RhdHVzRnJvbU5DUw0KK0hyR2V0SWNvbkZyb21NZWRpYVR5cGUNCitIckdldEljb25Gcm9tTWVkaWFUeXBlRXgNCitIckdldEluc3RhbmNlR3VpZE9mUHJlTlQ1TmV0Q2FyZEluc3RhbmNlDQorSHJHZXROZXRDb25FeHRlbmRlZFN0YXR1c0Zyb21HdWlkDQorSHJHZXROZXRDb25FeHRlbmRlZFN0YXR1c0Zyb21JTmV0Q29ubmVjdGlvbg0KK0hyR2V0U3RhdHVzU3RyaW5nRnJvbU5ldENvbkV4dGVuZGVkU3RhdHVzDQorSHJJc0lwU3RhdGVDaGVja2luZ0VuYWJsZWQNCitIckxhdW5jaENvbm5lY3Rpb24NCitIckxhdW5jaENvbm5lY3Rpb25FeA0KK0hyTGF1bmNoTmV0d29ya09wdGlvbmFsQ29tcG9uZW50cw0KK0hyT2VtVXBncmFkZQ0KK0hyUmVuYW1lQ29ubmVjdGlvbg0KK0hyUnVuV2l6YXJkDQorSW52b2tlRHVuRmlsZQ0KK05jRnJlZU5ldGNvblByb3BlcnRpZXMNCitOY0lzVmFsaWRDb25uZWN0aW9uTmFtZQ0KK05ldFNldHVwQWRkUmFzQ29ubmVjdGlvbg0KK05ldFNldHVwRmluaXNoSW5zdGFsbA0KK05ldFNldHVwSW5zdGFsbFNvZnR3YXJlDQorTmV0U2V0dXBQcmVwYXJlU3lzUHJlcA0KK05ldFNldHVwUmVxdWVzdFdpemFyZFBhZ2VzDQorTmV0U2V0dXBTZXRQcm9ncmVzc0NhbGxiYWNrDQorTm9ybWFsaXplRXh0ZW5kZWRTdGF0dXMNCitSYWlzZVN1cHBvcnREaWFsb2cNCitSZXBhaXJDb25uZWN0aW9uDQorU3RhcnROQ1cNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9uZXR1aTAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbmV0dWkwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYmFlZGFmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbmV0dWkwLmRlZgpAQCAtMCwwICsxLDEwNzkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTkVUVUkwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBORVRVSTAuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIEFMSUFTX1NUUjo6QUxJQVNfU1RSKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MEFMSUFTX1NUUkBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBBTExPQ19TVFI6OkFMTE9DX1NUUih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MEFMTE9DX1NUUkBAUUVBQUBQRUFHSVBFQkdAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIEJBU0U6OkJBU0Uodm9pZCkgX19wdHI2NA0KKz8/MEJBU0VAQElFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCSVRGSUVMRDo6QklURklFTEQoY2xhc3MgQklURklFTEQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQklURklFTERAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBCSVRGSUVMRDo6QklURklFTEQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/PzBCSVRGSUVMREBAUUVBQUBHQFoNCis7IHB1YmxpYzogX19jZGVjbCBCSVRGSUVMRDo6QklURklFTEQodW5zaWduZWQgaW50LGVudW0gQklUVkFMVUVTKSBfX3B0cjY0DQorPz8wQklURklFTERAQFFFQUFASVc0QklUVkFMVUVTQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIEJJVEZJRUxEOjpCSVRGSUVMRCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wQklURklFTERAQFFFQUFAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQklURklFTEQ6OkJJVEZJRUxEKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBCSVRGSUVMREBAUUVBQUBQRUJFSUlAWg0KKzsgcHVibGljOiBfX2NkZWNsIEJVRkZFUjo6QlVGRkVSKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MEJVRkZFUkBAUUVBQUBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSEFSX1NUUklORzo6Q0hBUl9TVFJJTkcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MENIQVJfU1RSSU5HQEBRRUFBQFBFQkdJQFoNCis7IHB1YmxpYzogX19jZGVjbCBEQkdTVFJFQU06OkRCR1NUUkVBTShjbGFzcyBPVVRQVVRTSU5LICogX19wdHI2NCkgX19wdHI2NA0KKz8/MERCR1NUUkVBTUBAUUVBQUBQRUFWT1VUUFVUU0lOS0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBERUNfU1RSOjpERUNfU1RSKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wREVDX1NUUkBAUUVBQUBLSUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgREZTSVRFUl9UUkVFOjpERlNJVEVSX1RSRUUoY2xhc3MgREZTSVRFUl9UUkVFIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MERGU0lURVJfVFJFRUBAUUVBQUBQRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIERGU0lURVJfVFJFRTo6REZTSVRFUl9UUkVFKGNsYXNzIFRSRUUgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MERGU0lURVJfVFJFRUBAUUVBQUBQRUJWVFJFRUBASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgRElSX0JMT0NLOjpESVJfQkxPQ0sodm9pZCkgX19wdHI2NA0KKz8/MERJUl9CTE9DS0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIERMSVNUOjpETElTVCh2b2lkKSBfX3B0cjY0DQorPz8wRExJU1RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBETF9OT0RFOjpETF9OT0RFKGNsYXNzIERMX05PREUgKiBfX3B0cjY0LGNsYXNzIERMX05PREUgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wRExfTk9ERUBAUUVBQUBQRUFWMEAwUEVBWEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgRUxBUFNFRF9USU1FX1NUUjo6RUxBUFNFRF9USU1FX1NUUih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0LGludCkgX19wdHI2NA0KKz8/MEVMQVBTRURfVElNRV9TVFJAQFFFQUFAS0dIQFoNCis7IHB1YmxpYzogX19jZGVjbCBGTVg6OkZNWChzdHJ1Y3QgSFdORF9fICogX19wdHI2NCkgX19wdHI2NA0KKz8/MEZNWEBAUUVBQUBQRUFVSFdORF9fQEBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIEZPUldBUkRJTkdfQkFTRTo6Rk9SV0FSRElOR19CQVNFKGNsYXNzIEJBU0UgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wRk9SV0FSRElOR19CQVNFQEBJRUFBQFBFQVZCQVNFQEBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIEZTX0VOVU06OkZTX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxlbnVtIEZJTEVfVFlQRSxpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wRlNfRU5VTUBASUVBQUBQRUJHMFc0RklMRV9UWVBFQEBISUBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgSEVBUF9CQVNFOjpIRUFQX0JBU0UoaW50LGludCkgX19wdHI2NA0KKz8/MEhFQVBfQkFTRUBASUVBQUBISEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSEVYX1NUUjo6SEVYX1NUUih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MEhFWF9TVFJAQFFFQUFAS0lAWg0KKzsgcHVibGljOiBfX2NkZWNsIEhVQVRPTTo6SFVBVE9NKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBIVUFUT01AQFFFQUFAUEVCR0hAWg0KKzsgcHVibGljOiBfX2NkZWNsIElOVExfUFJPRklMRTo6SU5UTF9QUk9GSUxFKHZvaWQpIF9fcHRyNjQNCis/PzBJTlRMX1BST0ZJTEVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBJU1RSOjpJU1RSKGNsYXNzIElTVFIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wSVNUUkBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIElTVFI6OklTVFIoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBJU1RSQEBRRUFBQEFFQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIElURVJfREw6OklURVJfREwoY2xhc3MgSVRFUl9ETCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBJVEVSX0RMQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSVRFUl9ETDo6SVRFUl9ETChjbGFzcyBETElTVCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBJVEVSX0RMQEBRRUFBQFBFQVZETElTVEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBJVEVSX0w6OklURVJfTCh2b2lkKSBfX3B0cjY0DQorPz8wSVRFUl9MQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgSVRFUl9TTDo6SVRFUl9TTChjbGFzcyBJVEVSX1NMIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MElURVJfU0xAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBJVEVSX1NMOjpJVEVSX1NMKGNsYXNzIFNMSVNUICogX19wdHI2NCkgX19wdHI2NA0KKz8/MElURVJfU0xAQFFFQUFAUEVBVlNMSVNUQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIElURVJfU0xfRElSX0JMT0NLOjpJVEVSX1NMX0RJUl9CTE9DSyhjbGFzcyBTTElTVCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBJVEVSX1NMX0RJUl9CTE9DS0BAUUVBQUBBRUFWU0xJU1RAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSVRFUl9TTF9OTFNfU1RSOjpJVEVSX1NMX05MU19TVFIoY2xhc3MgU0xJU1QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wSVRFUl9TTF9OTFNfU1RSQEBRRUFBQEFFQVZTTElTVEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBJVEVSX1NMX05MU19TVFI6OklURVJfU0xfTkxTX1NUUihjbGFzcyBJVEVSX1NMX05MU19TVFIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wSVRFUl9TTF9OTFNfU1RSQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSVRFUl9TVFJMSVNUOjpJVEVSX1NUUkxJU1QoY2xhc3MgU1RSTElTVCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBJVEVSX1NUUkxJU1RAQFFFQUFAQUVBVlNUUkxJU1RAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSVRFUl9TVFJMSVNUOjpJVEVSX1NUUkxJU1QoY2xhc3MgSVRFUl9TVFJMSVNUIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MElURVJfU1RSTElTVEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIExPR09OX0hPVVJTX1NFVFRJTkc6OkxPR09OX0hPVVJTX1NFVFRJTkcoY2xhc3MgTE9HT05fSE9VUlNfU0VUVElORyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBMT0dPTl9IT1VSU19TRVRUSU5HQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE9HT05fSE9VUlNfU0VUVElORzo6TE9HT05fSE9VUlNfU0VUVElORyh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBMT0dPTl9IT1VSU19TRVRUSU5HQEBRRUFBQFBFQkVJQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBOTFNfU1RSOjpOTFNfU1RSKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQsaW50KSBfX3B0cjY0DQorPz8wTkxTX1NUUkBASUVBQUBQRUFHSUhAWg0KKzsgcHVibGljOiBfX2NkZWNsIE5MU19TVFI6Ok5MU19TVFIoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBOTFNfU1RSQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTkxTX1NUUjo6TkxTX1NUUih1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBOTFNfU1RSQEBRRUFBQElAWg0KKzsgcHVibGljOiBfX2NkZWNsIE5MU19TVFI6Ok5MU19TVFIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTkxTX1NUUkBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBOTFNfU1RSOjpOTFNfU1RSKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz8/ME5MU19TVFJAQFFFQUFAUEVCR0dAWg0KKzsgcHVibGljOiBfX2NkZWNsIE5MU19TVFI6Ok5MU19TVFIodm9pZCkgX19wdHI2NA0KKz8/ME5MU19TVFJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOVU1fTkxTX1NUUjo6TlVNX05MU19TVFIodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/ME5VTV9OTFNfU1RSQEBRRUFBQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIE9ORV9TSE9UX0hFQVA6Ok9ORV9TSE9UX0hFQVAodW5zaWduZWQgaW50LGludCkgX19wdHI2NA0KKz8/ME9ORV9TSE9UX0hFQVBAQFFFQUFASUhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFJFR19LRVk6OlJFR19LRVkoY2xhc3MgUkVHX0tFWSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBSRUdfS0VZQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUkVHX0tFWTo6UkVHX0tFWShjbGFzcyBSRUdfS0VZICYgX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wUkVHX0tFWUBAUUVBQUBBRUFWMEBBRUJWTkxTX1NUUkBAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUkVHX0tFWTo6UkVHX0tFWShjbGFzcyBSRUdfS0VZICYgX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBSRUdfS0VZX0NSRUFURV9TVFJVQ1QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUkVHX0tFWUBAUUVBQUBBRUFWMEBBRUJWTkxTX1NUUkBAUEVBVlJFR19LRVlfQ1JFQVRFX1NUUlVDVEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBSRUdfS0VZOjpSRUdfS0VZKGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBSRUdfS0VZQEBRRUFBQEFFQlZOTFNfU1RSQEBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBSRUdfS0VZOjpSRUdfS0VZKHN0cnVjdCBIS0VZX18gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBSRUdfS0VZQEBRRUFBQFBFQVVIS0VZX19AQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIFJFR19LRVk6OlJFR19LRVkoc3RydWN0IEhLRVlfXyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBSRUdfS0VZQEBRRUFBQFBFQVVIS0VZX19AQFBFQkdLQFoNCis7IHB1YmxpYzogX19jZGVjbCBSRUdfS0VZX0NSRUFURV9TVFJVQ1Q6OlJFR19LRVlfQ1JFQVRFX1NUUlVDVCh2b2lkKSBfX3B0cjY0DQorPz8wUkVHX0tFWV9DUkVBVEVfU1RSVUNUQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUkVHX0tFWV9JTkZPX1NUUlVDVDo6UkVHX0tFWV9JTkZPX1NUUlVDVCh2b2lkKSBfX3B0cjY0DQorPz8wUkVHX0tFWV9JTkZPX1NUUlVDVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFJFR19WQUxVRV9JTkZPX1NUUlVDVDo6UkVHX1ZBTFVFX0lORk9fU1RSVUNUKHZvaWQpIF9fcHRyNjQNCis/PzBSRUdfVkFMVUVfSU5GT19TVFJVQ1RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBSRVNPVVJDRV9TVFI6OlJFU09VUkNFX1NUUihsb25nLHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBSRVNPVVJDRV9TVFJAQFFFQUFASlBFQVVISU5TVEFOQ0VfX0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBSSVRFUl9ETDo6UklURVJfREwoY2xhc3MgUklURVJfREwgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUklURVJfRExAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBSSVRFUl9ETDo6UklURVJfREwoY2xhc3MgRExJU1QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUklURVJfRExAQFFFQUFAUEVBVkRMSVNUQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNMSVNUOjpTTElTVCh2b2lkKSBfX3B0cjY0DQorPz8wU0xJU1RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTTElTVF9PRl9ESVJfQkxPQ0s6OlNMSVNUX09GX0RJUl9CTE9DSyhpbnQpIF9fcHRyNjQNCis/PzBTTElTVF9PRl9ESVJfQkxPQ0tAQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0xJU1RfT0ZfTkxTX1NUUjo6U0xJU1RfT0ZfTkxTX1NUUihpbnQpIF9fcHRyNjQNCis/PzBTTElTVF9PRl9OTFNfU1RSQEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNMX05PREU6OlNMX05PREUoY2xhc3MgU0xfTk9ERSAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTTF9OT0RFQEBRRUFBQFBFQVYwQFBFQVhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUkxJU1Q6OlNUUkxJU1QoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wU1RSTElTVEBAUUVBQUBBRUJWTkxTX1NUUkBAMEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUkxJU1Q6OlNUUkxJU1QoaW50KSBfX3B0cjY0DQorPz8wU1RSTElTVEBAUUVBQUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBTVFJMSVNUOjpTVFJMSVNUKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wU1RSTElTVEBAUUVBQUBQRUJHMEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFRDSEFSX1NUUjo6VENIQVJfU1RSKHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorPz8wVENIQVJfU1RSQEBRRUFBQEdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFRDSEFSX1NUUl9JTVBMOjpUQ0hBUl9TVFJfSU1QTCh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz8/MFRDSEFSX1NUUl9JTVBMQEBRRUFBQEdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFRSRUU6OlRSRUUodm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBUUkVFQEBRRUFBQFBFQVhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFVBVE9NOjpVQVRPTShjbGFzcyBOTFNfU1RSICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFVBVE9NQEBRRUFBQEFFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFVBVE9NX0xJTktBR0U6OlVBVE9NX0xJTktBR0Uodm9pZCkgX19wdHI2NA0KKz8/MFVBVE9NX0xJTktBR0VAQFFFQUFAWFoNCis7IHByaXZhdGU6IF9fY2RlY2wgVUFUT01fTUFOQUdFUjo6VUFUT01fTUFOQUdFUih2b2lkKSBfX3B0cjY0DQorPz8wVUFUT01fTUFOQUdFUkBAQUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFVBVE9NX1JFR0lPTjo6VUFUT01fUkVHSU9OKHZvaWQpIF9fcHRyNjQNCis/PzBVQVRPTV9SRUdJT05AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBXMzJfRElSX0JMT0NLOjpXMzJfRElSX0JMT0NLKHZvaWQpIF9fcHRyNjQNCis/PzBXMzJfRElSX0JMT0NLQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVzMyX0ZTX0VOVU06OlczMl9GU19FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsZW51bSBGSUxFX1RZUEUsaW50LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MFczMl9GU19FTlVNQEBRRUFBQFBFQkcwVzRGSUxFX1RZUEVAQEhJQFoNCis7IHB1YmxpYzogX19jZGVjbCBXQ0hBUl9TVFJJTkc6OldDSEFSX1NUUklORyhjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBXQ0hBUl9TVFJJTkdAQFFFQUFAUEVCRElAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdJTl9USU1FOjpXSU5fVElNRShpbnQpIF9fcHRyNjQNCis/PzBXSU5fVElNRUBAUUVBQUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBXSU5fVElNRTo6V0lOX1RJTUUodW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/PzBXSU5fVElNRUBAUUVBQUBLSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV0lOX1RJTUU6OldJTl9USU1FKHN0cnVjdCBfRklMRVRJTUUsaW50KSBfX3B0cjY0DQorPz8wV0lOX1RJTUVAQFFFQUFAVV9GSUxFVElNRUBASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQUxJQVNfU1RSOjp+QUxJQVNfU1RSKHZvaWQpIF9fcHRyNjQNCis/PzFBTElBU19TVFJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCSVRGSUVMRDo6fkJJVEZJRUxEKHZvaWQpIF9fcHRyNjQNCis/PzFCSVRGSUVMREBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEJVRkZFUjo6fkJVRkZFUih2b2lkKSBfX3B0cjY0DQorPz8xQlVGRkVSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0hBUl9TVFJJTkc6On5DSEFSX1NUUklORyh2b2lkKSBfX3B0cjY0DQorPz8xQ0hBUl9TVFJJTkdAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBEQkdTVFJFQU06On5EQkdTVFJFQU0odm9pZCkgX19wdHI2NA0KKz8/MURCR1NUUkVBTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIERFQ19TVFI6On5ERUNfU1RSKHZvaWQpIF9fcHRyNjQNCis/PzFERUNfU1RSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgREZTSVRFUl9UUkVFOjp+REZTSVRFUl9UUkVFKHZvaWQpIF9fcHRyNjQNCis/PzFERlNJVEVSX1RSRUVAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIERJUl9CTE9DSzo6fkRJUl9CTE9DSyh2b2lkKSBfX3B0cjY0DQorPz8xRElSX0JMT0NLQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRExJU1Q6On5ETElTVCh2b2lkKSBfX3B0cjY0DQorPz8xRExJU1RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBFTEFQU0VEX1RJTUVfU1RSOjp+RUxBUFNFRF9USU1FX1NUUih2b2lkKSBfX3B0cjY0DQorPz8xRUxBUFNFRF9USU1FX1NUUkBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgRlNfRU5VTTo6fkZTX0VOVU0odm9pZCkgX19wdHI2NA0KKz8/MUZTX0VOVU1AQFVFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBIRUFQX0JBU0U6On5IRUFQX0JBU0Uodm9pZCkgX19wdHI2NA0KKz8/MUhFQVBfQkFTRUBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIElURVJfREw6On5JVEVSX0RMKHZvaWQpIF9fcHRyNjQNCis/PzFJVEVSX0RMQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgSVRFUl9TTDo6fklURVJfU0wodm9pZCkgX19wdHI2NA0KKz8/MUlURVJfU0xAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBJVEVSX1NMX0RJUl9CTE9DSzo6fklURVJfU0xfRElSX0JMT0NLKHZvaWQpIF9fcHRyNjQNCis/PzFJVEVSX1NMX0RJUl9CTE9DS0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIElURVJfU0xfTkxTX1NUUjo6fklURVJfU0xfTkxTX1NUUih2b2lkKSBfX3B0cjY0DQorPz8xSVRFUl9TTF9OTFNfU1RSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgSVRFUl9TVFJMSVNUOjp+SVRFUl9TVFJMSVNUKHZvaWQpIF9fcHRyNjQNCis/PzFJVEVSX1NUUkxJU1RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBMT0dPTl9IT1VSU19TRVRUSU5HOjp+TE9HT05fSE9VUlNfU0VUVElORyh2b2lkKSBfX3B0cjY0DQorPz8xTE9HT05fSE9VUlNfU0VUVElOR0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE5MU19TVFI6On5OTFNfU1RSKHZvaWQpIF9fcHRyNjQNCis/PzFOTFNfU1RSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUkVHX0tFWTo6flJFR19LRVkodm9pZCkgX19wdHI2NA0KKz8/MVJFR19LRVlAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBSRUdfS0VZX0lORk9fU1RSVUNUOjp+UkVHX0tFWV9JTkZPX1NUUlVDVCh2b2lkKSBfX3B0cjY0DQorPz8xUkVHX0tFWV9JTkZPX1NUUlVDVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFJFR19WQUxVRV9JTkZPX1NUUlVDVDo6flJFR19WQUxVRV9JTkZPX1NUUlVDVCh2b2lkKSBfX3B0cjY0DQorPz8xUkVHX1ZBTFVFX0lORk9fU1RSVUNUQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUklURVJfREw6On5SSVRFUl9ETCh2b2lkKSBfX3B0cjY0DQorPz8xUklURVJfRExAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTTElTVDo6flNMSVNUKHZvaWQpIF9fcHRyNjQNCis/PzFTTElTVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNMSVNUX09GX0RJUl9CTE9DSzo6flNMSVNUX09GX0RJUl9CTE9DSyh2b2lkKSBfX3B0cjY0DQorPz8xU0xJU1RfT0ZfRElSX0JMT0NLQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0xJU1RfT0ZfTkxTX1NUUjo6flNMSVNUX09GX05MU19TVFIodm9pZCkgX19wdHI2NA0KKz8/MVNMSVNUX09GX05MU19TVFJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTVFJMSVNUOjp+U1RSTElTVCh2b2lkKSBfX3B0cjY0DQorPz8xU1RSTElTVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFRDSEFSX1NUUjo6flRDSEFSX1NUUih2b2lkKSBfX3B0cjY0DQorPz8xVENIQVJfU1RSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVFJFRTo6flRSRUUodm9pZCkgX19wdHI2NA0KKz8/MVRSRUVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBVQVRPTTo6flVBVE9NKHZvaWQpIF9fcHRyNjQNCis/PzFVQVRPTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFVBVE9NX0xJTktBR0U6On5VQVRPTV9MSU5LQUdFKHZvaWQpIF9fcHRyNjQNCis/PzFVQVRPTV9MSU5LQUdFQEBRRUFBQFhaDQorOyBwcml2YXRlOiBfX2NkZWNsIFVBVE9NX01BTkFHRVI6On5VQVRPTV9NQU5BR0VSKHZvaWQpIF9fcHRyNjQNCis/PzFVQVRPTV9NQU5BR0VSQEBBRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVUFUT01fUkVHSU9OOjp+VUFUT01fUkVHSU9OKHZvaWQpIF9fcHRyNjQNCis/PzFVQVRPTV9SRUdJT05AQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFczMl9ESVJfQkxPQ0s6On5XMzJfRElSX0JMT0NLKHZvaWQpIF9fcHRyNjQNCis/PzFXMzJfRElSX0JMT0NLQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBXMzJfRlNfRU5VTTo6flczMl9GU19FTlVNKHZvaWQpIF9fcHRyNjQNCis/PzFXMzJfRlNfRU5VTUBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFdDSEFSX1NUUklORzo6fldDSEFSX1NUUklORyh2b2lkKSBfX3B0cjY0DQorPz8xV0NIQVJfU1RSSU5HQEBRRUFBQFhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkICogX19wdHI2NCBfX2NkZWNsIEFMTE9DX0JBU0U6Om9wZXJhdG9yIG5ldyh1bnNpZ25lZCBfX2ludDY0KQ0KKz8/MkFMTE9DX0JBU0VAQFNBUEVBWF9LQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQUxMT0NfQkFTRTo6b3BlcmF0b3IgbmV3KHVuc2lnbmVkIF9faW50NjQsdm9pZCAqIF9fcHRyNjQpDQorPz8yQUxMT0NfQkFTRUBAU0FQRUFYX0tQRUFYQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBBTExPQ19CQVNFOjpvcGVyYXRvciBkZWxldGUodm9pZCAqIF9fcHRyNjQpDQorPz8zQUxMT0NfQkFTRUBAU0FYUEVBWEBaDQorOyBwdWJsaWM6IGNsYXNzIEFMSUFTX1NUUiBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBBTElBU19TVFI6Om9wZXJhdG9yPShjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NEFMSUFTX1NUUkBAUUVBQUFFQlYwQEFFQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBjbGFzcyBBTElBU19TVFIgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgQUxJQVNfU1RSOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80QUxJQVNfU1RSQEBRRUFBQUVCVjBAUEVCR0BaDQorOyBwdWJsaWM6IGNsYXNzIEFMTE9DX1NUUiAmIF9fcHRyNjQgX19jZGVjbCBBTExPQ19TVFI6Om9wZXJhdG9yPSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRBTExPQ19TVFJAQFFFQUFBRUFWMEBQRUJHQFoNCis7IHB1YmxpYzogY2xhc3MgQklURklFTEQgJiBfX3B0cjY0IF9fY2RlY2wgQklURklFTEQ6Om9wZXJhdG9yPShjbGFzcyBCSVRGSUVMRCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRCSVRGSUVMREBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIEJJVEZJRUxEICYgX19wdHI2NCBfX2NkZWNsIEJJVEZJRUxEOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/PzRCSVRGSUVMREBAUUVBQUFFQVYwQEdAWg0KKzsgcHVibGljOiBjbGFzcyBCSVRGSUVMRCAmIF9fcHRyNjQgX19jZGVjbCBCSVRGSUVMRDo6b3BlcmF0b3I9KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzRCSVRGSUVMREBAUUVBQUFFQVYwQEtAWg0KKzsgcHVibGljOiBjbGFzcyBJU1RSICYgX19wdHI2NCBfX2NkZWNsIElTVFI6Om9wZXJhdG9yPShjbGFzcyBJU1RSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NElTVFJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOTFNfU1RSICYgX19wdHI2NCBfX2NkZWNsIE5MU19TVFI6Om9wZXJhdG9yPShjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE5MU19TVFJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOTFNfU1RSICYgX19wdHI2NCBfX2NkZWNsIE5MU19TVFI6Om9wZXJhdG9yPSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROTFNfU1RSQEBRRUFBQUVBVjBAUEVCR0BaDQorOyBwdWJsaWM6IGNsYXNzIERCR1NUUkVBTSAmIF9fcHRyNjQgX19jZGVjbCBEQkdTVFJFQU06Om9wZXJhdG9yPDwoY2hhcikgX19wdHI2NA0KKz8/NkRCR1NUUkVBTUBAUUVBQUFFQVYwQERAWg0KKzsgcHVibGljOiBjbGFzcyBEQkdTVFJFQU0gJiBfX3B0cjY0IF9fY2RlY2wgREJHU1RSRUFNOjpvcGVyYXRvcjw8KHNob3J0KSBfX3B0cjY0DQorPz82REJHU1RSRUFNQEBRRUFBQUVBVjBARkBaDQorOyBwdWJsaWM6IGNsYXNzIERCR1NUUkVBTSAmIF9fcHRyNjQgX19jZGVjbCBEQkdTVFJFQU06Om9wZXJhdG9yPDwodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/PzZEQkdTVFJFQU1AQFFFQUFBRUFWMEBHQFoNCis7IHB1YmxpYzogY2xhc3MgREJHU1RSRUFNICYgX19wdHI2NCBfX2NkZWNsIERCR1NUUkVBTTo6b3BlcmF0b3I8PChpbnQpIF9fcHRyNjQNCis/PzZEQkdTVFJFQU1AQFFFQUFBRUFWMEBIQFoNCis7IHB1YmxpYzogY2xhc3MgREJHU1RSRUFNICYgX19wdHI2NCBfX2NkZWNsIERCR1NUUkVBTTo6b3BlcmF0b3I8PCh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzZEQkdTVFJFQU1AQFFFQUFBRUFWMEBJQFoNCis7IHB1YmxpYzogY2xhc3MgREJHU1RSRUFNICYgX19wdHI2NCBfX2NkZWNsIERCR1NUUkVBTTo6b3BlcmF0b3I8PChsb25nKSBfX3B0cjY0DQorPz82REJHU1RSRUFNQEBRRUFBQUVBVjBASkBaDQorOyBwdWJsaWM6IGNsYXNzIERCR1NUUkVBTSAmIF9fcHRyNjQgX19jZGVjbCBEQkdTVFJFQU06Om9wZXJhdG9yPDwodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/NkRCR1NUUkVBTUBAUUVBQUFFQVYwQEtAWg0KKzsgcHVibGljOiBjbGFzcyBEQkdTVFJFQU0gJiBfX3B0cjY0IF9fY2RlY2wgREJHU1RSRUFNOjpvcGVyYXRvcjw8KGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz82REJHU1RSRUFNQEBRRUFBQUVBVjBAUEVCREBaDQorOyBwdWJsaWM6IGNsYXNzIERCR1NUUkVBTSAmIF9fcHRyNjQgX19jZGVjbCBEQkdTVFJFQU06Om9wZXJhdG9yPDwodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz82REJHU1RSRUFNQEBRRUFBQUVBVjBAUEVCR0BaDQorOyBwdWJsaWM6IGNsYXNzIERCR1NUUkVBTSAmIF9fcHRyNjQgX19jZGVjbCBEQkdTVFJFQU06Om9wZXJhdG9yPDwoZW51bSBEQkdTVFJfU1BFQ0lBTCkgX19wdHI2NA0KKz8/NkRCR1NUUkVBTUBAUUVBQUFFQVYwQFc0REJHU1RSX1NQRUNJQUxAQEBaDQorOyBwdWJsaWM6IGNsYXNzIERCR1NUUkVBTSAmIF9fcHRyNjQgX19jZGVjbCBEQkdTVFJFQU06Om9wZXJhdG9yPDwoX19pbnQ2NCkgX19wdHI2NA0KKz8/NkRCR1NUUkVBTUBAUUVBQUFFQVYwQF9KQFoNCis7IHB1YmxpYzogY2xhc3MgREJHU1RSRUFNICYgX19wdHI2NCBfX2NkZWNsIERCR1NUUkVBTTo6b3BlcmF0b3I8PCh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz82REJHU1RSRUFNQEBRRUFBQUVBVjBAX0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBCQVNFOjpvcGVyYXRvciEodm9pZCljb25zdCAgX19wdHI2NA0KKz8/N0JBU0VAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQklURklFTEQ6Om9wZXJhdG9yPT0oY2xhc3MgQklURklFTEQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz84QklURklFTERAQFFFQUFIQUVBVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQklURklFTEQ6Om9wZXJhdG9yPT0odW5zaWduZWQgc2hvcnQpY29uc3QgIF9fcHRyNjQNCis/PzhCSVRGSUVMREBAUUVCQUhHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQklURklFTEQ6Om9wZXJhdG9yPT0odW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz8/OEJJVEZJRUxEQEBRRUJBSEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJU1RSOjpvcGVyYXRvcj09KGNsYXNzIElTVFIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz84SVNUUkBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOTFNfU1RSOjpvcGVyYXRvcj09KGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz84TkxTX1NUUkBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOTFNfU1RSOjpvcGVyYXRvciE9KGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz85TkxTX1NUUkBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIEJJVEZJRUxEOjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCh2b2lkKSBfX3B0cjY0DQorPz9CQklURklFTERAQFFFQUFHWFoNCis7IHB1YmxpYzogX19jZGVjbCBCSVRGSUVMRDo6b3BlcmF0b3IgdW5zaWduZWQgbG9uZyh2b2lkKSBfX3B0cjY0DQorPz9CQklURklFTERAQFFFQUFLWFoNCis7IHB1YmxpYzogX19jZGVjbCBOTFNfU1RSOjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQodm9pZCljb25zdCAgX19wdHI2NA0KKz8/Qk5MU19TVFJAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogX19jZGVjbCBSRUdfS0VZOjpvcGVyYXRvciBzdHJ1Y3QgSEtFWV9fICogX19wdHI2NCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CUkVHX0tFWUBAUUVCQVBFQVVIS0VZX19AQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVENIQVJfU1RSOjpvcGVyYXRvciBjbGFzcyBBTElBU19TVFIgY29uc3QgJiBfX3B0cjY0KHZvaWQpIF9fcHRyNjQNCis/P0JUQ0hBUl9TVFJAQFFFQUFBRUJWQUxJQVNfU1RSQEBYWg0KKzsgcHVibGljOiBjbGFzcyBJU1RSICYgX19wdHI2NCBfX2NkZWNsIElTVFI6Om9wZXJhdG9yKysodm9pZCkgX19wdHI2NA0KKz8/RUlTVFJAQFFFQUFBRUFWMEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJU1RSOjpvcGVyYXRvci0oY2xhc3MgSVNUUiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/P0dJU1RSQEBRRUJBSEFFQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJJVEZJRUxEOjpvcGVyYXRvciYoY2xhc3MgQklURklFTEQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz9JQklURklFTERAQFFFQUFIQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSVNUUjo6b3BlcmF0b3I8KGNsYXNzIElTVFIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz9NSVNUUkBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJU1RSOjpvcGVyYXRvcj4oY2xhc3MgSVNUUiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/P09JU1RSQEBRRUJBSEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0IF9fY2RlY2wgSVRFUl9TTF9OTFNfU1RSOjpvcGVyYXRvcigpKHZvaWQpIF9fcHRyNjQNCis/P1JJVEVSX1NMX05MU19TVFJAQFFFQUFQRUFWTkxTX1NUUkBAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElTVFI6Om9wZXJhdG9yKz0oaW50KSBfX3B0cjY0DQorPz9ZSVNUUkBAUUVBQVhIQFoNCis7IHB1YmxpYzogY2xhc3MgTkxTX1NUUiAmIF9fcHRyNjQgX19jZGVjbCBOTFNfU1RSOjpvcGVyYXRvcis9KGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz9ZTkxTX1NUUkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCSVRGSUVMRDo6b3BlcmF0b3ImPShjbGFzcyBCSVRGSUVMRCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/P180QklURklFTERAQFFFQUFYQUVCVjBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEJJVEZJRUxEOjpvcGVyYXRvciY9KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorPz9fNEJJVEZJRUxEQEBRRUFBWEdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQklURklFTEQ6Om9wZXJhdG9yJj0odW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/XzRCSVRGSUVMREBAUUVBQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEJJVEZJRUxEOjpvcGVyYXRvcnw9KGNsYXNzIEJJVEZJRUxEIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/XzVCSVRGSUVMREBAUUVBQVhBRUJWMEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQklURklFTEQ6Om9wZXJhdG9yfD0odW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/P181QklURklFTERAQFFFQUFYR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCSVRGSUVMRDo6b3BlcmF0b3J8PSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz9fNUJJVEZJRUxEQEBRRUFBWEtAWg0KKzsgdm9pZCBfX2NkZWNsIGB2ZWN0b3IgY29uc3RydWN0b3IgaXRlcmF0b3InKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsaW50LHZvaWQgKiBfX3B0cjY0IChfX2NkZWNsKikodm9pZCAqIF9fcHRyNjQpKQ0KKz8/X0hAWUFYUEVBWF9LSFA2QVBFQVgwQFpAWg0KKzsgdm9pZCBfX2NkZWNsIGB2ZWN0b3IgZGVzdHJ1Y3RvciBpdGVyYXRvcicodm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCxpbnQsdm9pZCAoX19jZGVjbCopKHZvaWQgKiBfX3B0cjY0KSkNCis/P19JQFlBWFBFQVhfS0hQNkFYMEBaQFoNCis7IHZvaWQgX19jZGVjbCBgdmVjdG9yIHZiYXNlIGNvbnN0cnVjdG9yIGl0ZXJhdG9yJyh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LGludCx2b2lkICogX19wdHI2NCAoX19jZGVjbCopKHZvaWQgKiBfX3B0cjY0KSkNCis/P19KQFlBWFBFQVhfS0hQNkFQRUFYMEBaQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIERMSVNUOjpBZGQodm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkQERMSVNUQEBRRUFBSlBFQVhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0xJU1Q6OkFkZCh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRAU0xJU1RAQFFFQUFKUEVBWEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTTElTVF9PRl9ESVJfQkxPQ0s6OkFkZChjbGFzcyBESVJfQkxPQ0sgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEBTTElTVF9PRl9ESVJfQkxPQ0tAQFFFQUFKUEVCVkRJUl9CTE9DS0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNMSVNUX09GX05MU19TVFI6OkFkZChjbGFzcyBOTFNfU1RSIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRAU0xJU1RfT0ZfTkxTX1NUUkBAUUVBQUpQRUJWTkxTX1NUUkBAQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIE5MU19TVFI6OkFsbG9jKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9BbGxvY0BOTFNfU1RSQEBBRUFBSElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIE9ORV9TSE9UX0hFQVA6OkFsbG9jKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9BbGxvY0BPTkVfU0hPVF9IRUFQQEBRRUFBUEVBRUlAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQklURklFTEQ6OkFsbG9jQml0ZmllbGQodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0FsbG9jQml0ZmllbGRAQklURklFTERAQElFQUFKSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBETElTVDo6QXBwZW5kKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FwcGVuZEBETElTVEBAUUVBQUpQRUFYQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5MU19TVFI6OkFwcGVuZChjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRATkxTX1NUUkBAUUVBQUpBRUJWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0xJU1Q6OkFwcGVuZCh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRAU0xJU1RAQFFFQUFKUEVBWEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTTElTVF9PRl9OTFNfU1RSOjpBcHBlbmQoY2xhc3MgTkxTX1NUUiBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNMSVNUX09GX05MU19TVFJAQFFFQUFKUEVCVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOTFNfU1RSOjpBcHBlbmRDaGFyKHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP0FwcGVuZENoYXJATkxTX1NUUkBAUUVBQUpHQFoNCis7IHB1YmxpYzogY2xhc3MgVFJFRSAqIF9fcHRyNjQgX19jZGVjbCBUUkVFOjpCcmVha091dCh2b2lkKSBfX3B0cjY0DQorP0JyZWFrT3V0QFRSRUVAQFFFQUFQRUFWMUBYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgRExJU1Q6OkJ1bXBJdGVycyhjbGFzcyBETF9OT0RFICogX19wdHI2NCkgX19wdHI2NA0KKz9CdW1wSXRlcnNARExJU1RAQElFQUFYUEVBVkRMX05PREVAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBTTElTVDo6QnVtcEl0ZXJzKGNsYXNzIFNMX05PREUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0J1bXBJdGVyc0BTTElTVEBASUVBQVhQRUFWU0xfTk9ERUBAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOTFNfU1RSOjpDaGVja0lzdHIoY2xhc3MgSVNUUiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q2hlY2tJc3RyQE5MU19TVFJAQEFFQkFYQUVCVklTVFJAQEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIERMSVNUOjpDaGVja0l0ZXIoY2xhc3MgSVRFUl9MICogX19wdHI2NCkgX19wdHI2NA0KKz9DaGVja0l0ZXJARExJU1RAQElFQUFIUEVBVklURVJfTEBAQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgU0xJU1Q6OkNoZWNrSXRlcihjbGFzcyBJVEVSX1NMICogX19wdHI2NCkgX19wdHI2NA0KKz9DaGVja0l0ZXJAU0xJU1RAQElFQUFIUEVBVklURVJfU0xAQEBaDQorOyBsb25nIF9fY2RlY2wgQ2hlY2tMb2NhbENvbW0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9DaGVja0xvY2FsQ29tbUBAWUFKUEVCR0BaDQorOyBsb25nIF9fY2RlY2wgQ2hlY2tMb2NhbERyaXZlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/Q2hlY2tMb2NhbERyaXZlQEBZQUpQRUJHQFoNCis7IGxvbmcgX19jZGVjbCBDaGVja0xvY2FsTHB0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/Q2hlY2tMb2NhbExwdEBAWUFKUEVCR0BaDQorOyBsb25nIF9fY2RlY2wgQ2hlY2tVbmF2YWlsRGV2aWNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCkNCis/Q2hlY2tVbmF2YWlsRGV2aWNlQEBZQUpQRUJHUEVBR1BFQUhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU0xJU1RfT0ZfRElSX0JMT0NLOjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQFNMSVNUX09GX0RJUl9CTE9DS0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU0xJU1RfT0ZfTkxTX1NUUjo6Q2xlYXIodm9pZCkgX19wdHI2NA0KKz9DbGVhckBTTElTVF9PRl9OTFNfU1RSQEBRRUFBWFhaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgUkVHX0tFWTo6Q2xvc2Uodm9pZCkgX19wdHI2NA0KKz9DbG9zZUBSRUdfS0VZQEBBRUFBSlhaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgRk1YOjpDb21tYW5kKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9Db21tYW5kQEZNWEBAQUVCQV9LSUlfSkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE5MU19TVFI6OkNvbXBhcmUoY2xhc3MgTkxTX1NUUiBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q29tcGFyZUBOTFNfU1RSQEBRRUJBSFBFQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIExPR09OX0hPVVJTX1NFVFRJTkc6OkNvbnZlcnRGcm9tR01UKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydEZyb21HTVRATE9HT05fSE9VUlNfU0VUVElOR0BAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBMT0dPTl9IT1VSU19TRVRUSU5HOjpDb252ZXJ0VG9HTVQodm9pZCkgX19wdHI2NA0KKz9Db252ZXJ0VG9HTVRATE9HT05fSE9VUlNfU0VUVElOR0BAUUVBQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTE9HT05fSE9VUlNfU0VUVElORzo6Q29udmVydFRvSG91cnNQZXJXZWVrKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydFRvSG91cnNQZXJXZWVrQExPR09OX0hPVVJTX1NFVFRJTkdAQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5MU19TVFI6OkNvcHlGcm9tKGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvcHlGcm9tQE5MU19TVFJAQFFFQUFKQUVCVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5MU19TVFI6OkNvcHlGcm9tKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/Q29weUZyb21ATkxTX1NUUkBAUUVBQUpQRUJHSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOTFNfU1RSOjpDb3B5VG8odW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9Db3B5VG9ATkxTX1NUUkBAUUVCQUpQRUFHSUBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgUkVHX0tFWTo6Q3JlYXRlQ2hpbGQoY2xhc3MgUkVHX0tFWSAqIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsY2xhc3MgUkVHX0tFWV9DUkVBVEVfU1RSVUNUICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9DcmVhdGVDaGlsZEBSRUdfS0VZQEBBRUJBSlBFQVYxQEFFQlZOTFNfU1RSQEBQRUFWUkVHX0tFWV9DUkVBVEVfU1RSVUNUQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIERJUl9CTE9DSyAqIF9fcHRyNjQgX19jZGVjbCBXMzJfRlNfRU5VTTo6Q3JlYXRlRGlyQmxvY2sodm9pZCkgX19wdHI2NA0KKz9DcmVhdGVEaXJCbG9ja0BXMzJfRlNfRU5VTUBATUVBQVBFQVZESVJfQkxPQ0tAQFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgU1RSTElTVDo6Q3JlYXRlTGlzdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZUxpc3RAU1RSTElTVEBAQUVBQVhQRUJHMEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTkxTX1NUUjo6RGVsU3ViU3RyKGNsYXNzIElTVFIgJiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9EZWxTdWJTdHJATkxTX1NUUkBAQUVBQVhBRUFWSVNUUkBASUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOTFNfU1RSOjpEZWxTdWJTdHIoY2xhc3MgSVNUUiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsU3ViU3RyQE5MU19TVFJAQFFFQUFYQUVBVklTVFJAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOTFNfU1RSOjpEZWxTdWJTdHIoY2xhc3MgSVNUUiAmIF9fcHRyNjQsY2xhc3MgSVNUUiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsU3ViU3RyQE5MU19TVFJAQFFFQUFYQUVBVklTVFJAQEFFQlYyQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBSRUdfS0VZOjpEZWxldGUodm9pZCkgX19wdHI2NA0KKz9EZWxldGVAUkVHX0tFWUBAUUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgUkVHX0tFWTo6RGVsZXRlVmFsdWUoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlVmFsdWVAUkVHX0tFWUBAUUVBQUpBRUJWTkxTX1NUUkBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIERMSVNUOjpEZXJlZ2lzdGVyKGNsYXNzIElURVJfTCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVyZWdpc3RlckBETElTVEBASUVBQVhQRUFWSVRFUl9MQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgU0xJU1Q6OkRlcmVnaXN0ZXIoY2xhc3MgSVRFUl9TTCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVyZWdpc3RlckBTTElTVEBASUVBQVhQRUFWSVRFUl9TTEBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgRElSX0JMT0NLOjpEb0JyZWFkdGhGaXJzdERpcnModm9pZCljb25zdCAgX19wdHI2NA0KKz9Eb0JyZWFkdGhGaXJzdERpcnNARElSX0JMT0NLQEBRRUJBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE9VVFBVVF9UT19BVVg6OkVuZE9mTGluZSh2b2lkKSBfX3B0cjY0DQorP0VuZE9mTGluZUBPVVRQVVRfVE9fQVVYQEBVRUFBWFhaDQorOyBwcml2YXRlOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBPVVRQVVRfVE9fTlVMOjpFbmRPZkxpbmUodm9pZCkgX19wdHI2NA0KKz9FbmRPZkxpbmVAT1VUUFVUX1RPX05VTEBARUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBPVVRQVVRfVE9fU1RERVJSOjpFbmRPZkxpbmUodm9pZCkgX19wdHI2NA0KKz9FbmRPZkxpbmVAT1VUUFVUX1RPX1NUREVSUkBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBPVVRQVVRfVE9fU1RET1VUOjpFbmRPZkxpbmUodm9pZCkgX19wdHI2NA0KKz9FbmRPZkxpbmVAT1VUUFVUX1RPX1NURE9VVEBAVUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQlVGRkVSOjpGaWxsT3V0KHZvaWQpIF9fcHRyNjQNCis/RmlsbE91dEBCVUZGRVJAQFFFQUFYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgVzMyX0ZTX0VOVU06OkZpbmRGaXJzdChjbGFzcyBESVJfQkxPQ0sgKiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9GaW5kRmlyc3RAVzMyX0ZTX0VOVU1AQE1FQUFKUEVBVkRJUl9CTE9DS0BAQUVCVk5MU19TVFJAQElAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBXMzJfRlNfRU5VTTo6RmluZE5leHQoY2xhc3MgRElSX0JMT0NLICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/RmluZE5leHRAVzMyX0ZTX0VOVU1AQE1FQUFKUEVBVkRJUl9CTE9DS0BASUBaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIFNMX05PREUgKiBfX3B0cjY0IF9fY2RlY2wgU0xJU1Q6OkZpbmRQcmV2KGNsYXNzIFNMX05PREUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmRQcmV2QFNMSVNUQEBJRUFBUEVBVlNMX05PREVAQFBFQVYyQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBSRUdfS0VZOjpGbHVzaCh2b2lkKSBfX3B0cjY0DQorP0ZsdXNoQFJFR19LRVlAQFFFQUFKWFoNCis7IHB1YmxpYzogY2xhc3MgVUFUT00gKiBfX3B0cjY0IF9fY2RlY2wgVUFUT01fTElOS0FHRTo6RndkKHZvaWQpIF9fcHRyNjQNCis/RndkQFVBVE9NX0xJTktBR0VAQFFFQUFQRUFWVUFUT01AQFhaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgQlVGRkVSOjpHZXROZXdTdG9yYWdlKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9HZXROZXdTdG9yYWdlQEJVRkZFUkBAQUVBQUpJQFoNCis7IGxvbmcgX19jZGVjbCBHZXRTZWxJdGVtKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCxjbGFzcyBOTFNfU1RSICogX19wdHI2NCxpbnQgKiBfX3B0cjY0KQ0KKz9HZXRTZWxJdGVtQEBZQUpQRUFVSFdORF9fQEBJUEVBVk5MU19TVFJAQFBFQUhAWg0KKzsgbG9uZyBfX2NkZWNsIEdldFNlbEl0ZW0oc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQsaW50LGludCAqIF9fcHRyNjQpDQorP0dldFNlbEl0ZW1AQFlBSlBFQVVIV05EX19AQFBFQVZOTFNfU1RSQEBIUEVBSEBaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50IF9fY2RlY2wgUkVHX0tFWTo6SGFuZGxlUHJlZml4KGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LHN0cnVjdCBIS0VZX18gKiBfX3B0cjY0ICogX19wdHI2NCxjbGFzcyBOTFNfU1RSICogX19wdHI2NCxjbGFzcyBOTFNfU1RSICogX19wdHI2NCkNCis/SGFuZGxlUHJlZml4QFJFR19LRVlAQENBSEFFQlZOTFNfU1RSQEBQRUFQRUFVSEtFWV9fQEBQRUFWMkAyQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgRElSX0JMT0NLOjpIYXNGaW5kRmlyc3RCZWVuQ2FsbGVkKHZvaWQpIF9fcHRyNjQNCis/SGFzRmluZEZpcnN0QmVlbkNhbGxlZEBESVJfQkxPQ0tAQFFFQUFIWFoNCis7IHZvaWQgX19jZGVjbCBIZWFwUmVzaWR1ZUl0ZXIodW5zaWduZWQgaW50LGludCkNCis/SGVhcFJlc2lkdWVJdGVyQEBZQVhJSEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBIRUFQX0JBU0U6OklfQWRkSXRlbSh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9JX0FkZEl0ZW1ASEVBUF9CQVNFQEBJRUFBSlBFQVhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIEhFQVBfQkFTRTo6SV9SZW1vdmVUb3BJdGVtKHZvaWQpIF9fcHRyNjQNCis/SV9SZW1vdmVUb3BJdGVtQEhFQVBfQkFTRUBASUVBQVBFQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgTkxTX1NUUjo6SW5jVmVycyh2b2lkKSBfX3B0cjY0DQorP0luY1ZlcnNATkxTX1NUUkBASUVBQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIE5VTV9OTFNfU1RSOjpJbml0KHZvaWQpDQorP0luaXRATlVNX05MU19TVFJAQFNBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBVQVRPTV9MSU5LQUdFOjpJbml0KHZvaWQpIF9fcHRyNjQNCis/SW5pdEBVQVRPTV9MSU5LQUdFQEBRRUFBWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgVUFUT01fTUFOQUdFUjo6SW5pdGlhbGl6ZSh2b2lkKQ0KKz9Jbml0aWFsaXplQFVBVE9NX01BTkFHRVJAQFNBSlhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBOTFNfU1RSOjpJbml0aWFsaXplVmVycyh2b2lkKSBfX3B0cjY0DQorP0luaXRpYWxpemVWZXJzQE5MU19TVFJAQElFQUFYWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIERMSVNUOjpJbnNlcnQodm9pZCAqIF9fcHRyNjQsY2xhc3MgSVRFUl9ETCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5zZXJ0QERMSVNUQEBRRUFBSlBFQVhBRUFWSVRFUl9ETEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIERMSVNUOjpJbnNlcnQodm9pZCAqIF9fcHRyNjQsY2xhc3MgUklURVJfREwgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0luc2VydEBETElTVEBAUUVBQUpQRUFYQUVBVlJJVEVSX0RMQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0xJU1Q6Okluc2VydCh2b2lkICogX19wdHI2NCxjbGFzcyBJVEVSX1NMICYgX19wdHI2NCkgX19wdHI2NA0KKz9JbnNlcnRAU0xJU1RAQFFFQUFKUEVBWEFFQVZJVEVSX1NMQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTkxTX1NUUjo6SW5zZXJ0UGFyYW1zKGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0luc2VydFBhcmFtc0BOTFNfU1RSQEBRRUFBSkFFQlYxQDAwQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5MU19TVFI6Okluc2VydFBhcmFtcyh1bnNpZ25lZCBpbnQsY2xhc3MgTkxTX1NUUiBjb25zdCAqIF9fcHRyNjQsLi4uKSBfX3B0cjY0DQorP0luc2VydFBhcmFtc0BOTFNfU1RSQEBRRUFBSklQRUJWMUBaWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTkxTX1NUUjo6SW5zZXJ0UGFyYW1zKGNsYXNzIE5MU19TVFIgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9JbnNlcnRQYXJhbXNATkxTX1NUUkBAUUVBQUpQRUFQRUJWMUBAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIE5MU19TVFI6Okluc2VydFBhcmFtc0F1eChjbGFzcyBOTFNfU1RSIGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGludCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luc2VydFBhcmFtc0F1eEBOTFNfU1RSQEBBRUFBSlBFQVBFQlYxQElIUEVBSUBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE5MU19TVFI6Okluc2VydFN0cihjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBJU1RSICYgX19wdHI2NCkgX19wdHI2NA0KKz9JbnNlcnRTdHJATkxTX1NUUkBAUUVBQUhBRUJWMUBBRUFWSVNUUkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSU5UTF9QUk9GSUxFOjpJczI0SG91cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzMjRIb3VyQElOVExfUFJPRklMRUBAUUVCQUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBCSVRGSUVMRDo6SXNBbGxvY2F0ZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0FsbG9jYXRlZEBCSVRGSUVMREBASUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBCSVRGSUVMRDo6SXNCaXRTZXQodW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP0lzQml0U2V0QEJJVEZJRUxEQEBRRUJBSElAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJTlRMX1BST0ZJTEU6OklzRGF5TFplcm8odm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0RheUxaZXJvQElOVExfUFJPRklMRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBESVJfQkxPQ0s6OklzRGlyKHZvaWQpIF9fcHRyNjQNCis/SXNEaXJARElSX0JMT0NLQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEZNWDo6SXNIZXRlcm9nZW5lb3VzU2VsZWN0aW9uKGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNIZXRlcm9nZW5lb3VzU2VsZWN0aW9uQEZNWEBAUUVBQUhQRUFIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSU5UTF9QUk9GSUxFOjpJc0hvdXJMWmVybyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzSG91ckxaZXJvQElOVExfUFJPRklMRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBMT0dPTl9IT1VSU19TRVRUSU5HOjpJc0lkZW50aWNhbFRvQml0cyh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/SXNJZGVudGljYWxUb0JpdHNATE9HT05fSE9VUlNfU0VUVElOR0BAUUVCQUhQRUJFSUBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElTVFI6OklzTGFzdFBvcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzTGFzdFBvc0BJU1RSQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNMSVNUX09GX05MU19TVFI6OklzTWVtYmVyKGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzTWVtYmVyQFNMSVNUX09GX05MU19TVFJAQFFFQUFIQUVCVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElOVExfUFJPRklMRTo6SXNNb250aExaZXJvKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNNb250aExaZXJvQElOVExfUFJPRklMRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOTFNfU1RSOjpJc093bmVyQWxsb2Modm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc093bmVyQWxsb2NATkxTX1NUUkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJTlRMX1BST0ZJTEU6OklzVGltZVByZWZpeCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVGltZVByZWZpeEBJTlRMX1BST0ZJTEVAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSU5UTF9QUk9GSUxFOjpJc1lyQ2VudHVyeSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzWXJDZW50dXJ5QElOVExfUFJPRklMRUBAUUVCQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgVFJFRTo6Sm9pblNpYmxpbmdMZWZ0KGNsYXNzIFRSRUUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0pvaW5TaWJsaW5nTGVmdEBUUkVFQEBRRUFBWFBFQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBUUkVFOjpKb2luU2libGluZ1JpZ2h0KGNsYXNzIFRSRUUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0pvaW5TaWJsaW5nUmlnaHRAVFJFRUBAUUVBQVhQRUFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgVFJFRTo6Sm9pblN1YnRyZWVMZWZ0KGNsYXNzIFRSRUUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0pvaW5TdWJ0cmVlTGVmdEBUUkVFQEBRRUFBWFBFQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBUUkVFOjpKb2luU3VidHJlZVJpZ2h0KGNsYXNzIFRSRUUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0pvaW5TdWJ0cmVlUmlnaHRAVFJFRUBAUUVBQVhQRUFWMUBAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgUkVHX0tFWTo6TGVhZktleU5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9MZWFmS2V5TmFtZUBSRUdfS0VZQEBBRUJBUEVCR1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBVQVRPTV9MSU5LQUdFOjpMaW5rKGNsYXNzIFVBVE9NX0xJTktBR0UgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0xpbmtAVUFUT01fTElOS0FHRUBAUUVBQVhQRUFWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTkxTX1NUUjo6TG9hZChsb25nLHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TG9hZEBOTFNfU1RSQEBRRUFBSkpQRUFVSElOU1RBTkNFX19AQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOTFNfU1RSOjpMb2FkU3lzdGVtKGxvbmcpIF9fcHRyNjQNCis/TG9hZFN5c3RlbUBOTFNfU1RSQEBRRUFBSkpAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTE9HT05fSE9VUlNfU0VUVElORzo6TWFrZURlZmF1bHQodm9pZCkgX19wdHI2NA0KKz9NYWtlRGVmYXVsdEBMT0dPTl9IT1VSU19TRVRUSU5HQEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOTFNfU1RSOjpNYXBDb3B5RnJvbShjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/TWFwQ29weUZyb21ATkxTX1NUUkBAUUVBQUpQRUJESUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOTFNfU1RSOjpNYXBDb3B5RnJvbSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP01hcENvcHlGcm9tQE5MU19TVFJAQFFFQUFKUEVCR0lAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTkxTX1NUUjo6TWFwQ29weVRvKGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9NYXBDb3B5VG9ATkxTX1NUUkBAUUVCQUpQRUFESUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOTFNfU1RSOjpNYXBDb3B5VG8odW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9NYXBDb3B5VG9ATkxTX1NUUkBAUUVCQUpQRUFHSUBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgRVJSTUFQOjpNYXBOVFN0YXR1cyhsb25nLGludCAqIF9fcHRyNjQsbG9uZykNCis/TWFwTlRTdGF0dXNARVJSTUFQQEBTQUpKUEVBSEpAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIFJFR19LRVk6Ok5hbWVDaGlsZChjbGFzcyBSRUdfS0VZICogX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9OYW1lQ2hpbGRAUkVHX0tFWUBAQUVCQUpQRUFWMUBBRUJWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBERlNJVEVSX1RSRUU6Ok5leHQodm9pZCkgX19wdHI2NA0KKz9OZXh0QERGU0lURVJfVFJFRUBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBGU19FTlVNOjpOZXh0KHZvaWQpIF9fcHRyNjQNCis/TmV4dEBGU19FTlVNQEBRRUFBSFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgSVRFUl9TTDo6TmV4dCh2b2lkKSBfX3B0cjY0DQorP05leHRASVRFUl9TTEBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiBjbGFzcyBESVJfQkxPQ0sgKiBfX3B0cjY0IF9fY2RlY2wgSVRFUl9TTF9ESVJfQkxPQ0s6Ok5leHQodm9pZCkgX19wdHI2NA0KKz9OZXh0QElURVJfU0xfRElSX0JMT0NLQEBRRUFBUEVBVkRJUl9CTE9DS0BAWFoNCis7IHB1YmxpYzogY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQgX19jZGVjbCBJVEVSX1NMX05MU19TVFI6Ok5leHQodm9pZCkgX19wdHI2NA0KKz9OZXh0QElURVJfU0xfTkxTX1NUUkBAUUVBQVBFQVZOTFNfU1RSQEBYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBGU19FTlVNOjpOZXh0QnJlYWR0aEZpcnN0KHZvaWQpIF9fcHRyNjQNCis/TmV4dEJyZWFkdGhGaXJzdEBGU19FTlVNQEBJRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIEZTX0VOVU06Ok5leHREZXB0aEZpcnN0KHZvaWQpIF9fcHRyNjQNCis/TmV4dERlcHRoRmlyc3RARlNfRU5VTUBASUVBQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgV0lOX1RJTUU6Ok5vcm1hbGl6ZSh2b2lkKSBfX3B0cjY0DQorP05vcm1hbGl6ZUBXSU5fVElNRUBAUUVBQUpYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQklURklFTEQ6Ok5vdCh2b2lkKSBfX3B0cjY0DQorP05vdEBCSVRGSUVMREBAUUVBQVhYWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIFJFR19LRVk6Ok9wZW5CeU5hbWUoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9PcGVuQnlOYW1lQFJFR19LRVlAQEFFQUFKQUVCVk5MU19TVFJAQEtAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIFJFR19LRVk6Ok9wZW5DaGlsZChjbGFzcyBSRUdfS0VZICogX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/T3BlbkNoaWxkQFJFR19LRVlAQEFFQUFKUEVBVjFAQUVCVk5MU19TVFJAQEtLQFoNCis7IHByaXZhdGU6IGNsYXNzIFJFR19LRVkgKiBfX3B0cjY0IF9fY2RlY2wgUkVHX0tFWTo6T3BlblBhcmVudCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP09wZW5QYXJlbnRAUkVHX0tFWUBAQUVBQVBFQVYxQEtAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIFJFR19LRVk6OlBhcmVudE5hbWUoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UGFyZW50TmFtZUBSRUdfS0VZQEBBRUJBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIEhFQVBfQkFTRTo6UGVla0l0ZW0oaW50KWNvbnN0ICBfX3B0cjY0DQorP1BlZWtJdGVtQEhFQVBfQkFTRUBASUVCQVBFQVhIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExPR09OX0hPVVJTX1NFVFRJTkc6OlBlcm1pdEFsbCh2b2lkKSBfX3B0cjY0DQorP1Blcm1pdEFsbEBMT0dPTl9IT1VSU19TRVRUSU5HQEBRRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBGU19FTlVNOjpQb3BEaXIodm9pZCkgX19wdHI2NA0KKz9Qb3BEaXJARlNfRU5VTUBASUVBQUpYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgRlNfRU5VTTo6UHVzaERpcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UHVzaERpckBGU19FTlVNQEBJRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgSU5UTF9QUk9GSUxFOjpRdWVyeUFNU3RyKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QU1TdHJASU5UTF9QUk9GSUxFQEBRRUJBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgaW50IF9fY2RlY2wgQlVGRkVSOjpRdWVyeUFjdHVhbFNpemUodm9pZCkgX19wdHI2NA0KKz9RdWVyeUFjdHVhbFNpemVAQlVGRkVSQEBBRUFBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIEJJVEZJRUxEOjpRdWVyeUFsbG9jU2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QWxsb2NTaXplQEJJVEZJRUxEQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIE5MU19TVFI6OlF1ZXJ5QWxsb2NTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBbGxvY1NpemVATkxTX1NUUkBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBOTFNfU1RSOjpRdWVyeUFuc2lUZXh0TGVuZ3RoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBbnNpVGV4dExlbmd0aEBOTFNfU1RSQEBRRUJBSVhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgaW50IF9fY2RlY2wgVzMyX0RJUl9CTE9DSzo6UXVlcnlBdHRyKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlBdHRyQFczMl9ESVJfQkxPQ0tAQFVFQUFJWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBCSVRGSUVMRDo6UXVlcnlCaXRQb3ModW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUJpdFBvc0BCSVRGSUVMREBASUVCQVBFQUVJSUBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUkxJU1Q6OlF1ZXJ5QnVmZmVyU2l6ZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlCdWZmZXJTaXplQFNUUkxJU1RAQFFFQUFIUEVBR0BaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgTE9HT05fSE9VUlNfU0VUVElORzo6UXVlcnlCeXRlQ291bnQodW5zaWduZWQgaW50KQ0KKz9RdWVyeUJ5dGVDb3VudEBMT0dPTl9IT1VSU19TRVRUSU5HQEBDQUlJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTE9HT05fSE9VUlNfU0VUVElORzo6UXVlcnlCeXRlQ291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUJ5dGVDb3VudEBMT0dPTl9IT1VSU19TRVRUSU5HQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgTkxTX1NUUjo6UXVlcnlDaGFyKGNsYXNzIElTVFIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q2hhckBOTFNfU1RSQEBRRUJBR0FFQlZJU1RSQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBCSVRGSUVMRDo6UXVlcnlDb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q291bnRAQklURklFTERAQFFFQkFJWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgaW50IF9fY2RlY2wgREZTSVRFUl9UUkVFOjpRdWVyeUN1ckRlcHRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDdXJEZXB0aEBERlNJVEVSX1RSRUVAQElFQkFJWFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIERCR1NUUkVBTSAmIF9fcHRyNjQgX19jZGVjbCBEQkdTVFJFQU06OlF1ZXJ5Q3VycmVudCh2b2lkKQ0KKz9RdWVyeUN1cnJlbnRAREJHU1RSRUFNQEBTQUFFQVYxQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIEZTX0VOVU06OlF1ZXJ5Q3VycmVudERlcHRoKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlDdXJyZW50RGVwdGhARlNfRU5VTUBAUUVBQUlYWg0KKzsgcHVibGljOiBjbGFzcyBESVJfQkxPQ0sgKiBfX3B0cjY0IF9fY2RlY2wgRlNfRU5VTTo6UXVlcnlDdXJyZW50RGlyQmxvY2sodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUN1cnJlbnREaXJCbG9ja0BGU19FTlVNQEBRRUJBUEVBVkRJUl9CTE9DS0BAWFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBRdWVyeUN1cnJlbnRUaW1lU3RhbXAodm9pZCkNCis/UXVlcnlDdXJyZW50VGltZVN0YW1wQEBZQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgUkVHX0tFWSAqIF9fcHRyNjQgX19jZGVjbCBSRUdfS0VZOjpRdWVyeUN1cnJlbnRVc2VyKHVuc2lnbmVkIGxvbmcpDQorP1F1ZXJ5Q3VycmVudFVzZXJAUkVHX0tFWUBAU0FQRUFWMUBLQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSEFSX1NUUklORzo6UXVlcnlEYXRhKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEYXRhQENIQVJfU1RSSU5HQEBRRUJBUEVCRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFdDSEFSX1NUUklORzo6UXVlcnlEYXRhKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEYXRhQFdDSEFSX1NUUklOR0BAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgSU5UTF9QUk9GSUxFOjpRdWVyeURhdGVTZXBhcmF0b3IoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEYXRlU2VwYXJhdG9yQElOVExfUFJPRklMRUBAUUVCQUpQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV0lOX1RJTUU6OlF1ZXJ5RGF5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEYXlAV0lOX1RJTUVAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV0lOX1RJTUU6OlF1ZXJ5RGF5T2ZXZWVrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEYXlPZldlZWtAV0lOX1RJTUVAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSU5UTF9QUk9GSUxFOjpRdWVyeURheVBvcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RGF5UG9zQElOVExfUFJPRklMRUBAUUVCQUhYWg0KKzsgcHVibGljOiBjbGFzcyBTVFJMSVNUICogX19wdHI2NCBfX2NkZWNsIERJUl9CTE9DSzo6UXVlcnlEaXJzKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlEaXJzQERJUl9CTE9DS0BAUUVBQVBFQVZTVFJMSVNUQEBYWg0KKzsgcHVibGljOiBjbGFzcyBJVEVSX1NUUkxJU1QgKiBfX3B0cjY0IF9fY2RlY2wgRElSX0JMT0NLOjpRdWVyeURpcnNJdGVyKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlEaXJzSXRlckBESVJfQkxPQ0tAQFFFQUFQRUFWSVRFUl9TVFJMSVNUQEBYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgRk1YOjpRdWVyeURyaXZlSW5mbyhzdHJ1Y3QgX0ZNU19HRVREUklWRUlORk9XICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeURyaXZlSW5mb0BGTVhAQFFFQUFKUEVBVV9GTVNfR0VURFJJVkVJTkZPV0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIElOVExfUFJPRklMRTo6UXVlcnlEdXJhdGlvblN0cihpbnQsaW50LGludCxpbnQsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEdXJhdGlvblN0ckBJTlRMX1BST0ZJTEVAQFFFQkFKSEhISFBFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQkFTRTo6UXVlcnlFcnJvcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RXJyb3JAQkFTRUBAUUVCQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgRk9SV0FSRElOR19CQVNFOjpRdWVyeUVycm9yKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlFcnJvckBGT1JXQVJESU5HX0JBU0VAQFFFQkFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEhVQVRPTTo6UXVlcnlFcnJvcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RXJyb3JASFVBVE9NQEBRRUJBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgVzMyX0RJUl9CTE9DSzo6UXVlcnlGaWxlTmFtZSh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5RmlsZU5hbWVAVzMyX0RJUl9CTE9DS0BAVUVBQVBFQkdYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgV0lOX1RJTUU6OlF1ZXJ5RmlsZVRpbWUoc3RydWN0IF9GSUxFVElNRSAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlGaWxlVGltZUBXSU5fVElNRUBAUUVCQUpQRUFVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgV0lOX1RJTUU6OlF1ZXJ5RmlsZVRpbWVMb2NhbChzdHJ1Y3QgX0ZJTEVUSU1FICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUZpbGVUaW1lTG9jYWxAV0lOX1RJTUVAQFFFQkFKUEVBVV9GSUxFVElNRUBAQFoNCis7IHB1YmxpYzogY2xhc3MgVFJFRSAqIF9fcHRyNjQgX19jZGVjbCBUUkVFOjpRdWVyeUZpcnN0U3VidHJlZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Rmlyc3RTdWJ0cmVlQFRSRUVAQFFFQkFQRUFWMUBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBGTVg6OlF1ZXJ5Rm9jdXModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUZvY3VzQEZNWEBAUUVCQUlYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXSU5fVElNRTo6UXVlcnlIb3VyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlIb3VyQFdJTl9USU1FQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIExPR09OX0hPVVJTX1NFVFRJTkc6OlF1ZXJ5SG91ckluRGF5KHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlIb3VySW5EYXlATE9HT05fSE9VUlNfU0VUVElOR0BAUUVCQUhJSUBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIExPR09OX0hPVVJTX1NFVFRJTkc6OlF1ZXJ5SG91ckluV2Vlayh1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlIb3VySW5XZWVrQExPR09OX0hPVVJTX1NFVFRJTkdAQFFFQkFISUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgTE9HT05fSE9VUlNfU0VUVElORzo6UXVlcnlIb3Vyc0Jsb2NrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlIb3Vyc0Jsb2NrQExPR09OX0hPVVJTX1NFVFRJTkdAQFFFQkFQRUFFWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIElTVFI6OlF1ZXJ5SWNoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlJY2hASVNUUkBAQUVCQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgUkVHX0tFWTo6UXVlcnlJbmZvKGNsYXNzIFJFR19LRVlfSU5GT19TVFJVQ1QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5SW5mb0BSRUdfS0VZQEBRRUFBSlBFQVZSRUdfS0VZX0lORk9fU1RSVUNUQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgUkVHX0tFWTo6UXVlcnlLZXlOYW1lKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5S2V5TmFtZUBSRUdfS0VZQEBRRUJBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIFJFR19LRVk6OlF1ZXJ5S2V5VmFsdWVCaW5hcnkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCxsb25nICogX19wdHI2NCxsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UXVlcnlLZXlWYWx1ZUJpbmFyeUBSRUdfS0VZQEBBRUFBSlBFQkdQRUFQRUFFUEVBSkpQRUFLS0BaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgUkVHX0tFWTo6UXVlcnlLZXlWYWx1ZUxvbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5S2V5VmFsdWVMb25nQFJFR19LRVlAQEFFQUFKUEVCR1BFQUpQRUFLQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBSRUdfS0VZOjpRdWVyeUtleVZhbHVlU3RyaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LGxvbmcsbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9RdWVyeUtleVZhbHVlU3RyaW5nQFJFR19LRVlAQEFFQUFKUEVCR1BFQVBFQUdQRUFWTkxTX1NUUkBAUEVBS0pQRUFKS0BaDQorOyBwdWJsaWM6IGNsYXNzIFRSRUUgKiBfX3B0cjY0IF9fY2RlY2wgVFJFRTo6UXVlcnlMYXN0U3VidHJlZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TGFzdFN1YnRyZWVAVFJFRUBAUUVCQVBFQVYxQFhaDQorOyBwdWJsaWM6IGNsYXNzIFRSRUUgKiBfX3B0cjY0IF9fY2RlY2wgVFJFRTo6UXVlcnlMZWZ0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlMZWZ0QFRSRUVAQFFFQkFQRUFWMUBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBVQVRPTV9MSU5LQUdFOjpRdWVyeUxpbmtlZCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5TGlua2VkQFVBVE9NX0xJTktBR0VAQFFFQUFIWFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIFJFR19LRVkgKiBfX3B0cjY0IF9fY2RlY2wgUkVHX0tFWTo6UXVlcnlMb2NhbE1hY2hpbmUodW5zaWduZWQgbG9uZykNCis/UXVlcnlMb2NhbE1hY2hpbmVAUkVHX0tFWUBAU0FQRUFWMUBLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIElOVExfUFJPRklMRTo6UXVlcnlMb25nRGF0ZVN0cmluZyhjbGFzcyBXSU5fVElNRSBjb25zdCAmIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlMb25nRGF0ZVN0cmluZ0BJTlRMX1BST0ZJTEVAQFFFQkFKQUVCVldJTl9USU1FQEBQRUFWTkxTX1NUUkBAQFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgaW50IF9fY2RlY2wgREZTSVRFUl9UUkVFOjpRdWVyeU1heERlcHRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNYXhEZXB0aEBERlNJVEVSX1RSRUVAQElFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgRlNfRU5VTTo6UXVlcnlNYXhEZXB0aCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5TWF4RGVwdGhARlNfRU5VTUBAUUVBQUlYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBCSVRGSUVMRDo6UXVlcnlNYXhOb25BbGxvY0JpdENvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNYXhOb25BbGxvY0JpdENvdW50QEJJVEZJRUxEQEBJRUJBSVhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdJTl9USU1FOjpRdWVyeU1pbnV0ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TWludXRlQFdJTl9USU1FQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdJTl9USU1FOjpRdWVyeU1vbnRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNb250aEBXSU5fVElNRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJTlRMX1BST0ZJTEU6OlF1ZXJ5TW9udGhQb3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1vbnRoUG9zQElOVExfUFJPRklMRUBAUUVCQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgRlNfRU5VTTo6UXVlcnlOYW1lKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TmFtZUBGU19FTlVNQEBRRUJBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgUkVHX0tFWTo6UXVlcnlOYW1lKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0LGludCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU5hbWVAUkVHX0tFWUBAUUVCQUpQRUFWTkxTX1NUUkBASEBaDQorOyBwdWJsaWM6IGNsYXNzIE5MU19TVFIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgSFVBVE9NOjpRdWVyeU5scyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TmxzQEhVQVRPTUBAUUVCQVBFQlZOTFNfU1RSQEBYWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBUUkVFIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIERGU0lURVJfVFJFRTo6UXVlcnlOb2RlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOb2RlQERGU0lURVJfVFJFRUBASUVCQVBFQlZUUkVFQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBOTFNfU1RSOjpRdWVyeU51bUNoYXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU51bUNoYXJATkxTX1NUUkBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBETElTVDo6UXVlcnlOdW1FbGVtKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlOdW1FbGVtQERMSVNUQEBRRUFBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIFNMSVNUOjpRdWVyeU51bUVsZW0odm9pZCkgX19wdHI2NA0KKz9RdWVyeU51bUVsZW1AU0xJU1RAQFFFQUFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgVFJFRTo6UXVlcnlOdW1FbGVtKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOdW1FbGVtQFRSRUVAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgQklURklFTEQ6OlF1ZXJ5T2Zmc2V0KHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU9mZnNldEBCSVRGSUVMREBAUUVCQUlJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIElOVExfUFJPRklMRTo6UXVlcnlQTVN0cihjbGFzcyBOTFNfU1RSICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBNU3RyQElOVExfUFJPRklMRUBAUUVCQUpQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogY2xhc3MgVFJFRSAqIF9fcHRyNjQgX19jZGVjbCBUUkVFOjpRdWVyeVBhcmVudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UGFyZW50QFRSRUVAQFFFQkFQRUFWMUBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOTFNfU1RSOjpRdWVyeVBjaChjbGFzcyBJU1RSIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBjaEBOTFNfU1RSQEBRRUJBUEVCR0FFQlZJU1RSQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOTFNfU1RSOjpRdWVyeVBjaCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UGNoQE5MU19TVFJAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBJVEVSX1NMOjpRdWVyeVByb3Aodm9pZCkgX19wdHI2NA0KKz9RdWVyeVByb3BASVRFUl9TTEBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIFRSRUU6OlF1ZXJ5UHJvcCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UHJvcEBUUkVFQEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQlVGRkVSOjpRdWVyeVB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UHRyQEJVRkZFUkBAUUVCQVBFQUVYWg0KKzsgcHVibGljOiBjbGFzcyBUUkVFICogX19wdHI2NCBfX2NkZWNsIFRSRUU6OlF1ZXJ5UmlnaHQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVJpZ2h0QFRSRUVAQFFFQkFQRUFWMUBYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBGU19FTlVNOjpRdWVyeVNlYXJjaEF0dHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNlYXJjaEF0dHJARlNfRU5VTUBASUVCQUlYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXSU5fVElNRTo6UXVlcnlTZWNvbmQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNlY29uZEBXSU5fVElNRUBAUUVCQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBGTVg6OlF1ZXJ5U2VsQ291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNlbENvdW50QEZNWEBAUUVCQUlYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgRk1YOjpRdWVyeVNlbGVjdGlvbihpbnQsc3RydWN0IF9GTVNfR0VURklMRVNFTFcgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9RdWVyeVNlbGVjdGlvbkBGTVhAQFFFQUFKSFBFQVVfRk1TX0dFVEZJTEVTRUxXQEBIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIElOVExfUFJPRklMRTo6UXVlcnlTaG9ydERhdGVTdHJpbmcoY2xhc3MgV0lOX1RJTUUgY29uc3QgJiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2hvcnREYXRlU3RyaW5nQElOVExfUFJPRklMRUBAUUVCQUpBRUJWV0lOX1RJTUVAQFBFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBCVUZGRVI6OlF1ZXJ5U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2l6ZUBCVUZGRVJAQFFFQkFJWFoNCis7IHByb3RlY3RlZDogY2xhc3MgVFJFRSBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBERlNJVEVSX1RSRUU6OlF1ZXJ5U3RhcnROb2RlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTdGFydE5vZGVAREZTSVRFUl9UUkVFQEBJRUJBUEVCVlRSRUVAQFhaDQorOyBwcml2YXRlOiBjbGFzcyBOTFNfU1RSIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIElTVFI6OlF1ZXJ5U3RyaW5nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTdHJpbmdASVNUUkBAQUVCQVBFQlZOTFNfU1RSQEBYWg0KKzsgcHJpdmF0ZTogY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQgX19jZGVjbCBOTFNfU1RSOjpRdWVyeVN1YlN0cihjbGFzcyBJU1RSIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTdWJTdHJATkxTX1NUUkBAQUVCQVBFQVYxQEFFQlZJU1RSQEBJQFoNCis7IHB1YmxpYzogY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQgX19jZGVjbCBOTFNfU1RSOjpRdWVyeVN1YlN0cihjbGFzcyBJU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBJU1RSIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVN1YlN0ckBOTFNfU1RSQEBRRUJBUEVBVjFAQUVCVklTVFJAQDBAWg0KKzsgcHVibGljOiBjbGFzcyBOTFNfU1RSICogX19wdHI2NCBfX2NkZWNsIE5MU19TVFI6OlF1ZXJ5U3ViU3RyKGNsYXNzIElTVFIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U3ViU3RyQE5MU19TVFJAQFFFQkFQRUFWMUBBRUJWSVNUUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgSFVBVE9NOjpRdWVyeVRleHQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVRleHRASFVBVE9NQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIE5MU19TVFI6OlF1ZXJ5VGV4dExlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VGV4dExlbmd0aEBOTFNfU1RSQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIE5MU19TVFI6OlF1ZXJ5VGV4dFNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVRleHRTaXplQE5MU19TVFJAQFFFQkFJWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFdJTl9USU1FOjpRdWVyeVRpbWUodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlUaW1lQFdJTl9USU1FQEBRRUJBSlBFQUtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgV0lOX1RJTUU6OlF1ZXJ5VGltZUxvY2FsKHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VGltZUxvY2FsQFdJTl9USU1FQEBRRUJBSlBFQUtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgSU5UTF9QUk9GSUxFOjpRdWVyeVRpbWVTZXBhcmF0b3IoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlUaW1lU2VwYXJhdG9yQElOVExfUFJPRklMRUBAUUVCQUpQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIElOVExfUFJPRklMRTo6UXVlcnlUaW1lU3RyaW5nKGNsYXNzIFdJTl9USU1FIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBOTFNfU1RSICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVRpbWVTdHJpbmdASU5UTF9QUk9GSUxFQEBRRUJBSkFFQlZXSU5fVElNRUBAUEVBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIExPR09OX0hPVVJTX1NFVFRJTkc6OlF1ZXJ5VW5pdHNQZXJXZWVrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlVbml0c1BlcldlZWtATE9HT05fSE9VUlNfU0VUVElOR0BAUUVCQUlYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgUkVHX0tFWTo6UXVlcnlWYWx1ZShjbGFzcyBSRUdfVkFMVUVfSU5GT19TVFJVQ1QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5VmFsdWVAUkVHX0tFWUBAUUVBQUpQRUFWUkVHX1ZBTFVFX0lORk9fU1RSVUNUQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgUkVHX0tFWTo6UXVlcnlWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlWYWx1ZUBSRUdfS0VZQEBRRUFBSlBFQkdQRUFLMUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBSRUdfS0VZOjpRdWVyeVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQsbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeVZhbHVlQFJFR19LRVlAQFFFQUFKUEVCR1BFQVBFQUVQRUFKSlBFQUtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgUkVHX0tFWTo6UXVlcnlWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9RdWVyeVZhbHVlQFJFR19LRVlAQFFFQUFKUEVCR1BFQVBFQUdLUEVBS0hAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgUkVHX0tFWTo6UXVlcnlWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgU1RSTElTVCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5VmFsdWVAUkVHX0tFWUBAUUVBQUpQRUJHUEVBUEVBVlNUUkxJU1RAQFBFQUtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgUkVHX0tFWTo6UXVlcnlWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/UXVlcnlWYWx1ZUBSRUdfS0VZQEBRRUFBSlBFQkdQRUFWTkxTX1NUUkBAS1BFQUtIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV0lOX1RJTUU6OlF1ZXJ5WWVhcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5WWVhckBXSU5fVElNRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJTlRMX1BST0ZJTEU6OlF1ZXJ5WWVhclBvcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5WWVhclBvc0BJTlRMX1BST0ZJTEVAQFFFQkFIWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIE5MU19TVFI6OlJlYWxsb2ModW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1JlYWxsb2NATkxTX1NUUkBAQUVBQUhJQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBCVUZGRVI6OlJlYWxsb2NTdG9yYWdlKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9SZWFsbG9jU3RvcmFnZUBCVUZGRVJAQEFFQUFKSUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBGTVg6OlJlZnJlc2godm9pZCkgX19wdHI2NA0KKz9SZWZyZXNoQEZNWEBAUUVBQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgSU5UTF9QUk9GSUxFOjpSZWZyZXNoKHZvaWQpIF9fcHRyNjQNCis/UmVmcmVzaEBJTlRMX1BST0ZJTEVAQFFFQUFKWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIERMSVNUOjpSZWdpc3RlcihjbGFzcyBJVEVSX0wgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlZ2lzdGVyQERMSVNUQEBJRUFBWFBFQVZJVEVSX0xAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBTTElTVDo6UmVnaXN0ZXIoY2xhc3MgSVRFUl9TTCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVnaXN0ZXJAU0xJU1RAQElFQUFYUEVBVklURVJfU0xAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBGTVg6OlJlbG9hZCh2b2lkKSBfX3B0cjY0DQorP1JlbG9hZEBGTVhAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBETElTVDo6UmVtb3ZlKGNsYXNzIElURVJfREwgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbW92ZUBETElTVEBAUUVBQVBFQVhBRUFWSVRFUl9ETEBAQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBETElTVDo6UmVtb3ZlKGNsYXNzIFJJVEVSX0RMICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVARExJU1RAQFFFQUFQRUFYQUVBVlJJVEVSX0RMQEBAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIFNMSVNUOjpSZW1vdmUoY2xhc3MgSVRFUl9TTCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVtb3ZlQFNMSVNUQEBRRUFBUEVBWEFFQVZJVEVSX1NMQEBAWg0KKzsgcHVibGljOiBjbGFzcyBESVJfQkxPQ0sgKiBfX3B0cjY0IF9fY2RlY2wgU0xJU1RfT0ZfRElSX0JMT0NLOjpSZW1vdmUoY2xhc3MgSVRFUl9TTF9ESVJfQkxPQ0sgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbW92ZUBTTElTVF9PRl9ESVJfQkxPQ0tAQFFFQUFQRUFWRElSX0JMT0NLQEBBRUFWSVRFUl9TTF9ESVJfQkxPQ0tAQEBaDQorOyBwdWJsaWM6IGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0IF9fY2RlY2wgU0xJU1RfT0ZfTkxTX1NUUjo6UmVtb3ZlKGNsYXNzIE5MU19TVFIgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbW92ZUBTTElTVF9PRl9OTFNfU1RSQEBRRUFBUEVBVk5MU19TVFJAQEFFQVYyQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE9VVFBVVF9UT19BVVg6OlJlbmRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVuZGVyQE9VVFBVVF9UT19BVVhAQFVFQUFYUEVCR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE9VVFBVVF9UT19BVVg6OlJlbmRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1JlbmRlckBPVVRQVVRfVE9fQVVYQEBVRUFBWFBFQkdJQFoNCis7IHByaXZhdGU6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE9VVFBVVF9UT19OVUw6OlJlbmRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVuZGVyQE9VVFBVVF9UT19OVUxAQEVFQUFYUEVCR0BaDQorOyBwcml2YXRlOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBPVVRQVVRfVE9fTlVMOjpSZW5kZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9SZW5kZXJAT1VUUFVUX1RPX05VTEBARUVBQVhQRUJHSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE9VVFBVVF9UT19TVERFUlI6OlJlbmRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVuZGVyQE9VVFBVVF9UT19TVERFUlJAQFVFQUFYUEVCR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE9VVFBVVF9UT19TVERFUlI6OlJlbmRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1JlbmRlckBPVVRQVVRfVE9fU1RERVJSQEBVRUFBWFBFQkdJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgT1VUUFVUX1RPX1NURE9VVDo6UmVuZGVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW5kZXJAT1VUUFVUX1RPX1NURE9VVEBAVUVBQVhQRUJHQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgT1VUUFVUX1RPX1NURE9VVDo6UmVuZGVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/UmVuZGVyQE9VVFBVVF9UT19TVERPVVRAQFVFQUFYUEVCR0lAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIE5MU19TVFI6OlJlcGxTdWJTdHIoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsY2xhc3MgSVNUUiAmIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1JlcGxTdWJTdHJATkxTX1NUUkBAQUVBQVhBRUJWMUBBRUFWSVNUUkBASUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOTFNfU1RSOjpSZXBsU3ViU3RyKGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIElTVFIgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlcGxTdWJTdHJATkxTX1NUUkBAUUVBQVhBRUJWMUBBRUFWSVNUUkBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE5MU19TVFI6OlJlcGxTdWJTdHIoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsY2xhc3MgSVNUUiAmIF9fcHRyNjQsY2xhc3MgSVNUUiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVwbFN1YlN0ckBOTFNfU1RSQEBRRUFBWEFFQlYxQEFFQVZJU1RSQEBBRUJWMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQkFTRTo6UmVwb3J0RXJyb3IobG9uZykgX19wdHI2NA0KKz9SZXBvcnRFcnJvckBCQVNFQEBJRUFBWEpAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgRlNfRU5VTTo6UmVwb3J0TGFzdEVycm9yKGxvbmcpIF9fcHRyNjQNCis/UmVwb3J0TGFzdEVycm9yQEZTX0VOVU1AQElFQUFYSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBERlNJVEVSX1RSRUU6OlJlc2V0KHZvaWQpIF9fcHRyNjQNCis/UmVzZXRAREZTSVRFUl9UUkVFQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJU1RSOjpSZXNldCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QElTVFJAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElURVJfREw6OlJlc2V0KHZvaWQpIF9fcHRyNjQNCis/UmVzZXRASVRFUl9ETEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSVRFUl9TTDo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBJVEVSX1NMQEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE5MU19TVFI6OlJlc2V0KHZvaWQpIF9fcHRyNjQNCis/UmVzZXRATkxTX1NUUkBAUUVBQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUklURVJfREw6OlJlc2V0KHZvaWQpIF9fcHRyNjQNCis/UmVzZXRAUklURVJfRExAQFFFQUFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIEJBU0U6OlJlc2V0RXJyb3Iodm9pZCkgX19wdHI2NA0KKz9SZXNldEVycm9yQEJBU0VAQElFQUFYWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEJJVEZJRUxEOjpSZXNpemUodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1Jlc2l6ZUBCSVRGSUVMREBAUUVBQUpJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEJVRkZFUjo6UmVzaXplKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9SZXNpemVAQlVGRkVSQEBRRUFBSklAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTkxTX1NUUjo6UnRsT2VtVXBjYXNlKHZvaWQpIF9fcHRyNjQNCis/UnRsT2VtVXBjYXNlQE5MU19TVFJAQFFFQUFKWFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBJTlRMX1BST0ZJTEU6OlNjYW5Mb25nRGF0ZShjbGFzcyBOTFNfU1RSICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9TY2FuTG9uZ0RhdGVASU5UTF9QUk9GSUxFQEBBRUJBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgRExfTk9ERTo6U2V0KGNsYXNzIERMX05PREUgKiBfX3B0cjY0LGNsYXNzIERMX05PREUgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEBETF9OT0RFQEBRRUFBWFBFQVYxQDBQRUFYQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExPR09OX0hPVVJTX1NFVFRJTkc6OlNldChjbGFzcyBMT0dPTl9IT1VSU19TRVRUSU5HIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRATE9HT05fSE9VUlNfU0VUVElOR0BAUUVBQUpBRUJWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU0xfTk9ERTo6U2V0KGNsYXNzIFNMX05PREUgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEBTTF9OT0RFQEBRRUFBWFBFQVYxQFBFQVhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQklURklFTEQ6OlNldEFsbEJpdHMoZW51bSBCSVRWQUxVRVMpIF9fcHRyNjQNCis/U2V0QWxsQml0c0BCSVRGSUVMREBAUUVBQVhXNEJJVFZBTFVFU0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEhFQVBfQkFTRTo6U2V0QWxsb2NDb3VudChpbnQpIF9fcHRyNjQNCis/U2V0QWxsb2NDb3VudEBIRUFQX0JBU0VAQFFFQUFKSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCSVRGSUVMRDo6U2V0Qml0KHVuc2lnbmVkIGludCxlbnVtIEJJVFZBTFVFUykgX19wdHI2NA0KKz9TZXRCaXRAQklURklFTERAQFFFQUFYSVc0QklUVkFMVUVTQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIERGU0lURVJfVFJFRTo6U2V0Q3VyRGVwdGgodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1NldEN1ckRlcHRoQERGU0lURVJfVFJFRUBAQUVBQVhJQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBEQkdTVFJFQU06OlNldEN1cnJlbnQoY2xhc3MgREJHU1RSRUFNICogX19wdHI2NCkNCis/U2V0Q3VycmVudEBEQkdTVFJFQU1AQFNBWFBFQVYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBGU19FTlVNOjpTZXRDdXJyZW50RGlyQmxvY2soY2xhc3MgRElSX0JMT0NLICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRDdXJyZW50RGlyQmxvY2tARlNfRU5VTUBASUVBQVhQRUFWRElSX0JMT0NLQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgV0lOX1RJTUU6OlNldEN1cnJlbnRUaW1lKHZvaWQpIF9fcHRyNjQNCis/U2V0Q3VycmVudFRpbWVAV0lOX1RJTUVAQFFFQUFKWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIERJUl9CTE9DSzo6U2V0RG9CcmVhZHRoRmlyc3REaXJzKGludCkgX19wdHI2NA0KKz9TZXREb0JyZWFkdGhGaXJzdERpcnNARElSX0JMT0NLQEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgRElSX0JMT0NLOjpTZXRGaW5kRmlyc3RGbGFnKGludCkgX19wdHI2NA0KKz9TZXRGaW5kRmlyc3RGbGFnQERJUl9CTE9DS0BAUUVBQVhIQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBUUkVFOjpTZXRGaXJzdFN1YnRyZWUoY2xhc3MgVFJFRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Rmlyc3RTdWJ0cmVlQFRSRUVAQEFFQUFYUEVBVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExPR09OX0hPVVJTX1NFVFRJTkc6OlNldEZyb21CaXRzKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRGcm9tQml0c0BMT0dPTl9IT1VSU19TRVRUSU5HQEBRRUFBSlBFQkVJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFdJTl9USU1FOjpTZXRHTVQoaW50KSBfX3B0cjY0DQorP1NldEdNVEBXSU5fVElNRUBAUUVBQUpIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExPR09OX0hPVVJTX1NFVFRJTkc6OlNldEhvdXJJbkRheShpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRIb3VySW5EYXlATE9HT05fSE9VUlNfU0VUVElOR0BAUUVBQUpISUlAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTE9HT05fSE9VUlNfU0VUVElORzo6U2V0SG91ckluV2VlayhpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1NldEhvdXJJbldlZWtATE9HT05fSE9VUlNfU0VUVElOR0BAUUVBQUpISUBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgSVNUUjo6U2V0SWNoKGludCkgX19wdHI2NA0KKz9TZXRJY2hASVNUUkBAQUVBQVhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIEhFQVBfQkFTRTo6U2V0SXRlbShpbnQsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0SXRlbUBIRUFQX0JBU0VAQElFQUFYSFBFQVhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgRExJU1Q6OlNldEl0ZXJzKGNsYXNzIERMX05PREUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEl0ZXJzQERMSVNUQEBJRUFBWFBFQVZETF9OT0RFQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgU0xJU1Q6OlNldEl0ZXJzKGNsYXNzIFNMX05PREUgKiBfX3B0cjY0LGNsYXNzIFNMX05PREUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEl0ZXJzQFNMSVNUQEBJRUFBWFBFQVZTTF9OT0RFQEAwQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFNMSVNUOjpTZXRJdGVycyhjbGFzcyBTTF9OT0RFICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRJdGVyc0BTTElTVEBASUVBQVhQRUFWU0xfTk9ERUBAQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBSRUdfS0VZOjpTZXRLZXlWYWx1ZUJpbmFyeSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0S2V5VmFsdWVCaW5hcnlAUkVHX0tFWUBAQUVBQUpQRUJHUEVCRUpLS0BaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgUkVHX0tFWTo6U2V0S2V5VmFsdWVMb25nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0S2V5VmFsdWVMb25nQFJFR19LRVlAQEFFQUFKUEVCR0pLQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBSRUdfS0VZOjpTZXRLZXlWYWx1ZVN0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldEtleVZhbHVlU3RyaW5nQFJFR19LRVlAQEFFQUFKUEVCRzBLSktAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFRSRUU6OlNldExlZnQoY2xhc3MgVFJFRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TGVmdEBUUkVFQEBBRUFBWFBFQVYxQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgREZTSVRFUl9UUkVFOjpTZXRNYXhEZXB0aCh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0TWF4RGVwdGhAREZTSVRFUl9UUkVFQEBBRUFBWElAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIERGU0lURVJfVFJFRTo6U2V0Tm9kZShjbGFzcyBUUkVFIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXROb2RlQERGU0lURVJfVFJFRUBAQUVBQVhQRUJWVFJFRUBAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBUUkVFOjpTZXRQYXJlbnQoY2xhc3MgVFJFRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UGFyZW50QFRSRUVAQEFFQUFYUEVBVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFRSRUU6OlNldFByb3Aodm9pZCAqIF9fcHRyNjQgY29uc3QpIF9fcHRyNjQNCis/U2V0UHJvcEBUUkVFQEBRRUFBWFFFQVhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFRSRUU6OlNldFJpZ2h0KGNsYXNzIFRSRUUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFJpZ2h0QFRSRUVAQEFFQUFYUEVBVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIERCR1NUUkVBTTo6U2V0U2luayhjbGFzcyBPVVRQVVRTSU5LICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRTaW5rQERCR1NUUkVBTUBAUUVBQVhQRUFWT1VUUFVUU0lOS0BAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBERlNJVEVSX1RSRUU6OlNldFN0YXJ0Tm9kZShjbGFzcyBUUkVFIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRTdGFydE5vZGVAREZTSVRFUl9UUkVFQEBBRUFBWFBFQlZUUkVFQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgV0lOX1RJTUU6OlNldFRpbWUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRUaW1lQFdJTl9USU1FQEBRRUFBSktAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgV0lOX1RJTUU6OlNldFRpbWUoc3RydWN0IF9GSUxFVElNRSkgX19wdHI2NA0KKz9TZXRUaW1lQFdJTl9USU1FQEBRRUFBSlVfRklMRVRJTUVAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBXSU5fVElNRTo6U2V0VGltZUxvY2FsKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0VGltZUxvY2FsQFdJTl9USU1FQEBRRUFBSktAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgV0lOX1RJTUU6OlNldFRpbWVMb2NhbChzdHJ1Y3QgX0ZJTEVUSU1FKSBfX3B0cjY0DQorP1NldFRpbWVMb2NhbEBXSU5fVElNRUBAUUVBQUpVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgUkVHX0tFWTo6U2V0VmFsdWUoY2xhc3MgUkVHX1ZBTFVFX0lORk9fU1RSVUNUICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWYWx1ZUBSRUdfS0VZQEBRRUFBSlBFQVZSRUdfVkFMVUVfSU5GT19TVFJVQ1RAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBSRUdfS0VZOjpTZXRWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1NldFZhbHVlQFJFR19LRVlAQFFFQUFKUEVCRzBLUEVCS0hAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgUkVHX0tFWTo6U2V0VmFsdWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VmFsdWVAUkVHX0tFWUBAUUVBQUpQRUJHS1BFQktAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgUkVHX0tFWTo6U2V0VmFsdWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LGxvbmcsdW5zaWduZWQgbG9uZyBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VmFsdWVAUkVHX0tFWUBAUUVBQUpQRUJHUEVCRUpQRUJLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFJFR19LRVk6OlNldFZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nIGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/U2V0VmFsdWVAUkVHX0tFWUBAUUVBQUpQRUJHUEVCVk5MU19TVFJAQFBFQktIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFJFR19LRVk6OlNldFZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBTVFJMSVNUIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWYWx1ZUBSRUdfS0VZQEBRRUFBSlBFQkdQRUJWU1RSTElTVEBAUEVCS0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIEZTX0VOVU06OlNob3VsZFRoaXNGaWxlQmVJbmNsdWRlZCh1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/U2hvdWxkVGhpc0ZpbGVCZUluY2x1ZGVkQEZTX0VOVU1AQElFQkFISUBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgVUFUT01fTUFOQUdFUjo6VGVybWluYXRlKHZvaWQpDQorP1Rlcm1pbmF0ZUBVQVRPTV9NQU5BR0VSQEBTQUpYWg0KKzsgcHJpdmF0ZTogY2xhc3MgVUFUT00gKiBfX3B0cjY0IF9fY2RlY2wgVUFUT01fTUFOQUdFUjo6VG9rZW5pemUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9Ub2tlbml6ZUBVQVRPTV9NQU5BR0VSQEBBRUFBUEVBVlVBVE9NQEBQRUJHSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCVUZGRVI6OlRyaW0odm9pZCkgX19wdHI2NA0KKz9UcmltQEJVRkZFUkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSEVBUF9CQVNFOjpUcmltKHZvaWQpIF9fcHRyNjQNCis/VHJpbUBIRUFQX0JBU0VAQFFFQUFYWFoNCis7IHZvaWQgX19jZGVjbCBVSUFzc2VydENvbW1hbmQoY2hhciBjb25zdCAqIF9fcHRyNjQpDQorP1VJQXNzZXJ0Q29tbWFuZEBAWUFYUEVCREBaDQorOyB2b2lkIF9fY2RlY2wgVUlBc3NlcnRIbHAoY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KQ0KKz9VSUFzc2VydEhscEBAWUFYUEVCRDBJQFoNCis7IHZvaWQgX19jZGVjbCBVSUFzc2VydEhscChjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpDQorP1VJQXNzZXJ0SGxwQEBZQVhQRUJESUBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgRExJU1Q6OlVubGluayhjbGFzcyBETF9OT0RFICogX19wdHI2NCkgX19wdHI2NA0KKz9VbmxpbmtARExJU1RAQElFQUFQRUFYUEVBVkRMX05PREVAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBUUkVFOjpVbmxpbmsodm9pZCkgX19wdHI2NA0KKz9VbmxpbmtAVFJFRUBASUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgVUFUT01fTElOS0FHRTo6VW5saW5rKHZvaWQpIF9fcHRyNjQNCis/VW5saW5rQFVBVE9NX0xJTktBR0VAQFFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOTFNfU1RSOjpVcGRhdGVJc3RyKGNsYXNzIElTVFIgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1VwZGF0ZUlzdHJATkxTX1NUUkBAQUVCQVhQRUFWSVNUUkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSTElTVDo6V3JpdGVUb0J1ZmZlcih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Xcml0ZVRvQnVmZmVyQFNUUkxJU1RAQFFFQUFIUEVBR0gwQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIERMSVNUOjpfRGVidWdQcmludCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP19EZWJ1Z1ByaW50QERMSVNUQEBRRUJBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTTElTVDo6X0RlYnVnUHJpbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9fRGVidWdQcmludEBTTElTVEBAUUVCQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgVFJFRTo6X0RlYnVnUHJpbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9fRGVidWdQcmludEBUUkVFQEBRRUJBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE5MU19TVFI6Ol9Jc093bmVyQWxsb2Modm9pZCljb25zdCAgX19wdHI2NA0KKz9fSXNPd25lckFsbG9jQE5MU19TVFJAQFFFQkFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTkxTX1NUUjo6X1F1ZXJ5QWxsb2NTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X1F1ZXJ5QWxsb2NTaXplQE5MU19TVFJAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTkxTX1NUUjo6X1F1ZXJ5UGNoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X1F1ZXJ5UGNoQE5MU19TVFJAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTkxTX1NUUjo6X1F1ZXJ5VGV4dExlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP19RdWVyeVRleHRMZW5ndGhATkxTX1NUUkBAUUVCQUlYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQkFTRTo6X1JlcG9ydEVycm9yKGxvbmcpIF9fcHRyNjQNCis/X1JlcG9ydEVycm9yQEJBU0VAQElFQUFYSkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE5MU19TVFI6Ol9zdHJpY21wKGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP19zdHJpY21wQE5MU19TVFJAQFFFQkFIQUVCVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTkxTX1NUUjo6X3N0cmljbXAoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsY2xhc3MgSVNUUiBjb25zdCAmIF9fcHRyNjQsY2xhc3MgSVNUUiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/X3N0cmljbXBATkxTX1NUUkBAUUVCQUhBRUJWMUBBRUJWSVNUUkBAMUBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE5MU19TVFI6Ol9zdHJpY21wKGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIElTVFIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP19zdHJpY21wQE5MU19TVFJAQFFFQkFIQUVCVjFAQUVCVklTVFJAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE5MU19TVFI6Ol9zdHJuaWNtcChjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBJU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBJU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBJU1RSIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9fc3RybmljbXBATkxTX1NUUkBAUUVCQUhBRUJWMUBBRUJWSVNUUkBAMTFAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOTFNfU1RSOjpfc3RybmljbXAoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsY2xhc3MgSVNUUiBjb25zdCAmIF9fcHRyNjQsY2xhc3MgSVNUUiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/X3N0cm5pY21wQE5MU19TVFJAQFFFQkFIQUVCVjFAQUVCVklTVFJAQDFAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOTFNfU1RSOjpfc3RybmljbXAoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsY2xhc3MgSVNUUiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/X3N0cm5pY21wQE5MU19TVFJAQFFFQkFIQUVCVjFAQUVCVklTVFJAQEBaDQorOyBwdWJsaWM6IGNsYXNzIE5MU19TVFIgJiBfX3B0cjY0IF9fY2RlY2wgTkxTX1NUUjo6X3N0cnVwcih2b2lkKSBfX3B0cjY0DQorP19zdHJ1cHJATkxTX1NUUkBAUUVBQUFFQVYxQFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE5MU19TVFI6OmF0b2koY2xhc3MgSVNUUiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/YXRvaUBOTFNfU1RSQEBRRUJBSEFFQlZJU1RSQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOTFNfU1RSOjphdG9pKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/YXRvaUBOTFNfU1RSQEBRRUJBSFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOTFNfU1RSOjphdG9sKGNsYXNzIElTVFIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2F0b2xATkxTX1NUUkBAUUVCQUpBRUJWSVNUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5MU19TVFI6OmF0b2wodm9pZCljb25zdCAgX19wdHI2NA0KKz9hdG9sQE5MU19TVFJAQFFFQkFKWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE5MU19TVFI6OmF0b3VsKGNsYXNzIElTVFIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP2F0b3VsQE5MU19TVFJAQFFFQkFLQUVCVklTVFJAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOTFNfU1RSOjphdG91bCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2F0b3VsQE5MU19TVFJAQFFFQkFLWFoNCis7IHB1YmxpYzogY2xhc3MgTkxTX1NUUiAmIF9fcHRyNjQgX19jZGVjbCBOTFNfU1RSOjpzdHJjYXQoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/c3RyY2F0QE5MU19TVFJAQFFFQUFBRUFWMUBBRUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOTFNfU1RSOjpzdHJjaHIoY2xhc3MgSVNUUiAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQpY29uc3QgIF9fcHRyNjQNCis/c3RyY2hyQE5MU19TVFJAQFFFQkFIUEVBVklTVFJAQEdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOTFNfU1RSOjpzdHJjaHIoY2xhc3MgSVNUUiAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQsY2xhc3MgSVNUUiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/c3RyY2hyQE5MU19TVFJAQFFFQkFIUEVBVklTVFJAQEdBRUJWMkBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOTFNfU1RSOjpzdHJjbXAoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/c3RyY21wQE5MU19TVFJAQFFFQkFIQUVCVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTkxTX1NUUjo6c3RyY21wKGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIElTVFIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIElTVFIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP3N0cmNtcEBOTFNfU1RSQEBRRUJBSEFFQlYxQEFFQlZJU1RSQEAxQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTkxTX1NUUjo6c3RyY21wKGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIElTVFIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP3N0cmNtcEBOTFNfU1RSQEBRRUJBSEFFQlYxQEFFQlZJU1RSQEBAWg0KKzsgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgc3RyY3B5KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCkNCis/c3RyY3B5QEBZQVBFQUdQRUFHQUVCVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE5MU19TVFI6OnN0cmNzcG4oY2xhc3MgSVNUUiAqIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/c3RyY3NwbkBOTFNfU1RSQEBRRUJBSFBFQVZJU1RSQEBBRUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOTFNfU1RSOjpzdHJjc3BuKGNsYXNzIElTVFIgKiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIElTVFIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP3N0cmNzcG5ATkxTX1NUUkBAUUVCQUhQRUFWSVNUUkBAQUVCVjFAQUVCVjJAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTkxTX1NUUjo6c3RybGVuKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/c3RybGVuQE5MU19TVFJAQFFFQkFJWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTkxTX1NUUjo6c3RybmNtcChjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBJU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBJU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBJU1RSIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9zdHJuY21wQE5MU19TVFJAQFFFQkFIQUVCVjFAQUVCVklTVFJAQDExQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTkxTX1NUUjo6c3RybmNtcChjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBJU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBJU1RSIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9zdHJuY21wQE5MU19TVFJAQFFFQkFIQUVCVjFAQUVCVklTVFJAQDFAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOTFNfU1RSOjpzdHJuY21wKGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIElTVFIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP3N0cm5jbXBATkxTX1NUUkBAUUVCQUhBRUJWMUBBRUJWSVNUUkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTkxTX1NUUjo6c3RycmNocihjbGFzcyBJU1RSICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCljb25zdCAgX19wdHI2NA0KKz9zdHJyY2hyQE5MU19TVFJAQFFFQkFIUEVBVklTVFJAQEdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOTFNfU1RSOjpzdHJyY2hyKGNsYXNzIElTVFIgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0LGNsYXNzIElTVFIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP3N0cnJjaHJATkxTX1NUUkBAUUVCQUhQRUFWSVNUUkBAR0FFQlYyQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE5MU19TVFI6OnN0cnNwbihjbGFzcyBJU1RSICogX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9zdHJzcG5ATkxTX1NUUkBAUUVCQUhQRUFWSVNUUkBAQUVCVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTkxTX1NUUjo6c3Ryc3BuKGNsYXNzIElTVFIgKiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIElTVFIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP3N0cnNwbkBOTFNfU1RSQEBRRUJBSFBFQVZJU1RSQEBBRUJWMUBBRUJWMkBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOTFNfU1RSOjpzdHJzdHIoY2xhc3MgSVNUUiAqIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/c3Ryc3RyQE5MU19TVFJAQFFFQkFIUEVBVklTVFJAQEFFQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE5MU19TVFI6OnN0cnN0cihjbGFzcyBJU1RSICogX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBJU1RSIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9zdHJzdHJATkxTX1NUUkBAUUVCQUhQRUFWSVNUUkBAQUVCVjFAQUVCVjJAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX19wdHI2NCBfX2NkZWNsIElURVJfREw6OnZOZXh0KHZvaWQpIF9fcHRyNjQNCis/dk5leHRASVRFUl9ETEBAVUVBQVBFQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgUklURVJfREw6OnZOZXh0KHZvaWQpIF9fcHRyNjQNCis/dk5leHRAUklURVJfRExAQFVFQUFQRUFYWFoNCitJbml0Q29tcGFyZVBhcmFtDQorTkVUVUlfSW5pdElzREJDUw0KK05FVFVJX0lzREJDUw0KK05FVFVJX3N0cmNtcA0KK05FVFVJX3N0cmljbXANCitORVRVSV9zdHJuY21wDQorTkVUVUlfc3RybmNtcDINCitORVRVSV9zdHJuaWNtcA0KK05FVFVJX3N0cm5pY21wMg0KK1F1ZXJ5Tm9jYXNlQ29tcGFyZVBhcmFtDQorUXVlcnlTdGRDb21wYXJlUGFyYW0NCitRdWVyeVVzZXJEZWZhdWx0TENJRA0KK1VzZXJQcmVmZXJlbmNlUXVlcnkNCitVc2VyUHJlZmVyZW5jZVF1ZXJ5Qm9vbA0KK1VzZXJQcmVmZXJlbmNlU2V0DQorVXNlclByZWZlcmVuY2VTZXRCb29sDQorVXNlclByb2ZpbGVFbnVtDQorVXNlclByb2ZpbGVGcmVlDQorVXNlclByb2ZpbGVJbml0DQorVXNlclByb2ZpbGVRdWVyeQ0KK1VzZXJQcm9maWxlUmVhZA0KK1VzZXJQcm9maWxlU2V0DQorVXNlclByb2ZpbGVXcml0ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL25ldHVpMS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9uZXR1aTEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFmM2NlNjkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9uZXR1aTEuZGVmCkBAIC0wLDAgKzEsMzA1MiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBORVRVSTEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5FVFVJMS5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fY2RlY2wgQURNSU5fQVVUSE9SSVRZOjpBRE1JTl9BVVRIT1JJVFkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50KSBfX3B0cjY0DQorPz8wQURNSU5fQVVUSE9SSVRZQEBRRUFBQFBFQkdLS0tLSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQUxJQVNfRU5VTTo6QUxJQVNfRU5VTShjbGFzcyBTQU1fRE9NQUlOICYgX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBBTElBU19FTlVNQEBRRUFBQEFFQVZTQU1fRE9NQUlOQEBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBBTElBU19FTlVNX0lURVI6OkFMSUFTX0VOVU1fSVRFUihjbGFzcyBBTElBU19FTlVNICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MEFMSUFTX0VOVU1fSVRFUkBAUUVBQUBBRUFWQUxJQVNfRU5VTUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBBTElBU19FTlVNX09CSjo6QUxJQVNfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MEFMSUFTX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQUxJQVNfU1RSOjpBTElBU19TVFIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQUxJQVNfU1RSQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIEFMTE9DX1NUUjo6QUxMT0NfU1RSKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBBTExPQ19TVFJAQFFFQUFAUEVBR0lAWg0KKzsgcHVibGljOiBfX2NkZWNsIEFQSV9TRVNTSU9OOjpBUElfU0VTU0lPTih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wQVBJX1NFU1NJT05AQFFFQUFAUEVCR0hAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIEJBU0U6OkJBU0Uodm9pZCkgX19wdHI2NA0KKz8/MEJBU0VAQElFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCUk9XU0VfRE9NQUlOX0VOVU06OkJST1dTRV9ET01BSU5fRU5VTSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQlJPV1NFX0RPTUFJTl9FTlVNQEBRRUFBQEtQRUFLQFoNCis7IHB1YmxpYzogX19jZGVjbCBCUk9XU0VfRE9NQUlOX0lORk86OkJST1dTRV9ET01BSU5fSU5GTyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MEJST1dTRV9ET01BSU5fSU5GT0BAUUVBQUBQRUJHS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0hBUkRFVlExX0VOVU06OkNIQVJERVZRMV9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSEFSREVWUTFfRU5VTUBAUUVBQUBQRUJHMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0hBUkRFVlExX0VOVU1fSVRFUjo6Q0hBUkRFVlExX0VOVU1fSVRFUihjbGFzcyBDSEFSREVWUTFfRU5VTSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSEFSREVWUTFfRU5VTV9JVEVSQEBRRUFBQEFFQVZDSEFSREVWUTFfRU5VTUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSEFSREVWUTFfRU5VTV9PQko6OkNIQVJERVZRMV9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8wQ0hBUkRFVlExX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQ0hBUkRFVlFfRU5VTTo6Q0hBUkRFVlFfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MENIQVJERVZRX0VOVU1AQElFQUFAUEVCRzBJQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBDT01QVVRFUjo6Q09NUFVURVIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ09NUFVURVJAQElFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09OTjBfRU5VTTo6Q09OTjBfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ09OTjBfRU5VTUBAUUVBQUBQRUJHMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09OTjBfRU5VTV9JVEVSOjpDT05OMF9FTlVNX0lURVIoY2xhc3MgQ09OTjBfRU5VTSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDT05OMF9FTlVNX0lURVJAQFFFQUFAQUVBVkNPTk4wX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09OTjBfRU5VTV9PQko6OkNPTk4wX0VOVU1fT0JKKHZvaWQpIF9fcHRyNjQNCis/PzBDT05OMF9FTlVNX09CSkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENPTk4xX0VOVU06OkNPTk4xX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENPTk4xX0VOVU1AQFFFQUFAUEVCRzBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENPTk4xX0VOVU1fSVRFUjo6Q09OTjFfRU5VTV9JVEVSKGNsYXNzIENPTk4xX0VOVU0gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ09OTjFfRU5VTV9JVEVSQEBRRUFBQEFFQVZDT05OMV9FTlVNQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENPTk4xX0VOVU1fT0JKOjpDT05OMV9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8wQ09OTjFfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBDT05OX0VOVU06OkNPTk5fRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MENPTk5fRU5VTUBASUVBQUBQRUJHMElAWg0KKzsgcHVibGljOiBfX2NkZWNsIENPTlRFWFRfRU5VTTo6Q09OVEVYVF9FTlVNKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDT05URVhUX0VOVU1AQFFFQUFAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09OVEVYVF9FTlVNX0lURVI6OkNPTlRFWFRfRU5VTV9JVEVSKGNsYXNzIENPTlRFWFRfRU5VTSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDT05URVhUX0VOVU1fSVRFUkBAUUVBQUBBRUFWQ09OVEVYVF9FTlVNQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENPTlRFWFRfRU5VTV9PQko6OkNPTlRFWFRfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MENPTlRFWFRfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBERVZJQ0UyOjpERVZJQ0UyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MERFVklDRTJAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgREVWSUNFOjpERVZJQ0UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wREVWSUNFQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIERPTUFJTjBfRU5VTTo6RE9NQUlOMF9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MERPTUFJTjBfRU5VTUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBET01BSU4wX0VOVU1fSVRFUjo6RE9NQUlOMF9FTlVNX0lURVIoY2xhc3MgRE9NQUlOMF9FTlVNICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MERPTUFJTjBfRU5VTV9JVEVSQEBRRUFBQEFFQVZET01BSU4wX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgRE9NQUlOMF9FTlVNX09CSjo6RE9NQUlOMF9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8wRE9NQUlOMF9FTlVNX09CSkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIERPTUFJTjo6RE9NQUlOKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wRE9NQUlOQEBRRUFBQFBFQkcwSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgRE9NQUlOOjpET01BSU4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MERPTUFJTkBAUUVBQUBQRUJHSEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgRE9NQUlOX0VOVU06OkRPTUFJTl9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBET01BSU5fRU5VTUBASUVBQUBQRUJHSUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgRE9NQUlOX1dJVEhfRENfQ0FDSEU6OkRPTUFJTl9XSVRIX0RDX0NBQ0hFKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wRE9NQUlOX1dJVEhfRENfQ0FDSEVAQFFFQUFAUEVCRzBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBET01BSU5fV0lUSF9EQ19DQUNIRTo6RE9NQUlOX1dJVEhfRENfQ0FDSEUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MERPTUFJTl9XSVRIX0RDX0NBQ0hFQEBRRUFBQFBFQkdIQFoNCis7IHB1YmxpYzogX19jZGVjbCBFTlVNX0NBTExFUjo6RU5VTV9DQUxMRVIodm9pZCkgX19wdHI2NA0KKz8/MEVOVU1fQ0FMTEVSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRU5VTV9DQUxMRVJfTE1fT0JKOjpFTlVNX0NBTExFUl9MTV9PQkooY2xhc3MgTE9DQVRJT04gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wRU5VTV9DQUxMRVJfTE1fT0JKQEBRRUFBQEFFQlZMT0NBVElPTkBAQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBFTlVNX09CSl9CQVNFOjpFTlVNX09CSl9CQVNFKHZvaWQpIF9fcHRyNjQNCis/PzBFTlVNX09CSl9CQVNFQEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRklMRTJfRU5VTTo6RklMRTJfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MEZJTEUyX0VOVU1AQFFFQUFAUEVCRzAwQFoNCis7IHB1YmxpYzogX19jZGVjbCBGSUxFMl9FTlVNX0lURVI6OkZJTEUyX0VOVU1fSVRFUihjbGFzcyBGSUxFMl9FTlVNICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MEZJTEUyX0VOVU1fSVRFUkBAUUVBQUBBRUFWRklMRTJfRU5VTUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBGSUxFMl9FTlVNX09CSjo6RklMRTJfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MEZJTEUyX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRklMRTNfRU5VTTo6RklMRTNfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MEZJTEUzX0VOVU1AQFFFQUFAUEVCRzAwQFoNCis7IHB1YmxpYzogX19jZGVjbCBGSUxFM19FTlVNX0lURVI6OkZJTEUzX0VOVU1fSVRFUihjbGFzcyBGSUxFM19FTlVNICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MEZJTEUzX0VOVU1fSVRFUkBAUUVBQUBBRUFWRklMRTNfRU5VTUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBGSUxFM19FTlVNX09CSjo6RklMRTNfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MEZJTEUzX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgRklMRV9FTlVNOjpGSUxFX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wRklMRV9FTlVNQEBJRUFBQFBFQkcwMElAWg0KKzsgcHVibGljOiBfX2NkZWNsIEdST1VQMF9FTlVNOjpHUk9VUDBfRU5VTShjbGFzcyBMT0NBVElPTiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wR1JPVVAwX0VOVU1AQFFFQUFAQUVCVkxPQ0FUSU9OQEBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBHUk9VUDBfRU5VTTo6R1JPVVAwX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MEdST1VQMF9FTlVNQEBRRUFBQFBFQkcwQFoNCis7IHB1YmxpYzogX19jZGVjbCBHUk9VUDBfRU5VTTo6R1JPVVAwX0VOVU0oZW51bSBMT0NBVElPTl9UWVBFLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MEdST1VQMF9FTlVNQEBRRUFBQFc0TE9DQVRJT05fVFlQRUBAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgR1JPVVAwX0VOVU1fSVRFUjo6R1JPVVAwX0VOVU1fSVRFUihjbGFzcyBHUk9VUDBfRU5VTSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBHUk9VUDBfRU5VTV9JVEVSQEBRRUFBQEFFQVZHUk9VUDBfRU5VTUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBHUk9VUDBfRU5VTV9PQko6OkdST1VQMF9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8wR1JPVVAwX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgR1JPVVAxX0VOVU06OkdST1VQMV9FTlVNKGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MEdST1VQMV9FTlVNQEBRRUFBQEFFQlZMT0NBVElPTkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBHUk9VUDFfRU5VTTo6R1JPVVAxX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wR1JPVVAxX0VOVU1AQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgR1JPVVAxX0VOVU06OkdST1VQMV9FTlVNKGVudW0gTE9DQVRJT05fVFlQRSkgX19wdHI2NA0KKz8/MEdST1VQMV9FTlVNQEBRRUFBQFc0TE9DQVRJT05fVFlQRUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBHUk9VUDFfRU5VTV9JVEVSOjpHUk9VUDFfRU5VTV9JVEVSKGNsYXNzIEdST1VQMV9FTlVNICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MEdST1VQMV9FTlVNX0lURVJAQFFFQUFAQUVBVkdST1VQMV9FTlVNQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIEdST1VQMV9FTlVNX09CSjo6R1JPVVAxX0VOVU1fT0JKKHZvaWQpIF9fcHRyNjQNCis/PzBHUk9VUDFfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBHUk9VUDo6R1JPVVAodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MEdST1VQQEBRRUFBQFBFQkcwQFoNCis7IHB1YmxpYzogX19jZGVjbCBHUk9VUDo6R1JPVVAodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MEdST1VQQEBRRUFBQFBFQkdBRUJWTE9DQVRJT05AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgR1JPVVA6OkdST1VQKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxlbnVtIExPQ0FUSU9OX1RZUEUpIF9fcHRyNjQNCis/PzBHUk9VUEBAUUVBQUBQRUJHVzRMT0NBVElPTl9UWVBFQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIEdST1VQXzA6OkdST1VQXzAodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MEdST1VQXzBAQFFFQUFAUEVCRzBAWg0KKzsgcHVibGljOiBfX2NkZWNsIEdST1VQXzA6OkdST1VQXzAodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MEdST1VQXzBAQFFFQUFAUEVCR0FFQlZMT0NBVElPTkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBHUk9VUF8wOjpHUk9VUF8wKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxlbnVtIExPQ0FUSU9OX1RZUEUpIF9fcHRyNjQNCis/PzBHUk9VUF8wQEBRRUFBQFBFQkdXNExPQ0FUSU9OX1RZUEVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgR1JPVVBfMTo6R1JPVVBfMSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wR1JPVVBfMUBAUUVBQUBQRUJHMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgR1JPVVBfMTo6R1JPVVBfMSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgTE9DQVRJT04gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wR1JPVVBfMUBAUUVBQUBQRUJHQUVCVkxPQ0FUSU9OQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIEdST1VQXzE6OkdST1VQXzEodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGVudW0gTE9DQVRJT05fVFlQRSkgX19wdHI2NA0KKz8/MEdST1VQXzFAQFFFQUFAUEVCR1c0TE9DQVRJT05fVFlQRUBAQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBHUk9VUF9FTlVNOjpHUk9VUF9FTlVNKGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wR1JPVVBfRU5VTUBASUVBQUBBRUJWTE9DQVRJT05AQElQRUJHQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBHUk9VUF9FTlVNOjpHUk9VUF9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wR1JPVVBfRU5VTUBASUVBQUBQRUJHSTBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIEdST1VQX0VOVU06OkdST1VQX0VOVU0oZW51bSBMT0NBVElPTl9UWVBFLHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBHUk9VUF9FTlVNQEBJRUFBQFc0TE9DQVRJT05fVFlQRUBASVBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIEdST1VQX01FTUI6OkdST1VQX01FTUIoY2xhc3MgTE9DQVRJT04gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MEdST1VQX01FTUJAQFFFQUFAQUVCVkxPQ0FUSU9OQEBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBJVEVSX0RFVklDRTo6SVRFUl9ERVZJQ0UoZW51bSBMTU9fREVWSUNFLGVudW0gTE1PX0RFVl9VU0FHRSkgX19wdHI2NA0KKz8/MElURVJfREVWSUNFQEBRRUFBQFc0TE1PX0RFVklDRUBAVzRMTU9fREVWX1VTQUdFQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIElURVJfU0xfQlJPV1NFX0RPTUFJTl9JTkZPOjpJVEVSX1NMX0JST1dTRV9ET01BSU5fSU5GTyhjbGFzcyBTTElTVCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBJVEVSX1NMX0JST1dTRV9ET01BSU5fSU5GT0BAUUVBQUBBRUFWU0xJU1RAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSVRFUl9TTF9MTV9SRVNVTUVfQlVGRkVSOjpJVEVSX1NMX0xNX1JFU1VNRV9CVUZGRVIoY2xhc3MgU0xJU1QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wSVRFUl9TTF9MTV9SRVNVTUVfQlVGRkVSQEBRRUFBQEFFQVZTTElTVEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBMTV9DT05GSUc6OkxNX0NPTkZJRyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MExNX0NPTkZJR0BAUUVBQUBQRUJHMDBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIExNX0VOVU06OkxNX0VOVU0odW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wTE1fRU5VTUBASUVBQUBJQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBMTV9FTlVNX0lURVI6OkxNX0VOVU1fSVRFUihjbGFzcyBMTV9FTlVNICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MExNX0VOVU1fSVRFUkBASUVBQUBBRUFWTE1fRU5VTUBAQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBMTV9GSUxFOjpMTV9GSUxFKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wTE1fRklMRUBASUVBQUBQRUJHS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE1fRklMRV8yOjpMTV9GSUxFXzIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBMTV9GSUxFXzJAQFFFQUFAUEVCR0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIExNX0ZJTEVfMzo6TE1fRklMRV8zKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wTE1fRklMRV8zQEBRRUFBQFBFQkdLQFoNCis7IHB1YmxpYzogX19jZGVjbCBMTV9NRVNTQUdFOjpMTV9NRVNTQUdFKGNsYXNzIExPQ0FUSU9OICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MExNX01FU1NBR0VAQFFFQUFAQUVBVkxPQ0FUSU9OQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIExNX01FU1NBR0U6OkxNX01FU1NBR0UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTE1fTUVTU0FHRUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBMTV9NRVNTQUdFOjpMTV9NRVNTQUdFKGVudW0gTE9DQVRJT05fVFlQRSkgX19wdHI2NA0KKz8/MExNX01FU1NBR0VAQFFFQUFAVzRMT0NBVElPTl9UWVBFQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIExNX09CSjo6TE1fT0JKKHZvaWQpIF9fcHRyNjQNCis/PzBMTV9PQkpAQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBMTV9PQkpfQkFTRTo6TE1fT0JKX0JBU0UoaW50KSBfX3B0cjY0DQorPz8wTE1fT0JKX0JBU0VAQElFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE1fUkVTVU1FX0JVRkZFUjo6TE1fUkVTVU1FX0JVRkZFUihjbGFzcyBMTV9SRVNVTUVfRU5VTSAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTE1fUkVTVU1FX0JVRkZFUkBAUUVBQUBQRUFWTE1fUkVTVU1FX0VOVU1AQElQRUFFQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBMTV9SRVNVTUVfRU5VTTo6TE1fUkVTVU1FX0VOVU0odW5zaWduZWQgaW50LGludCkgX19wdHI2NA0KKz8/MExNX1JFU1VNRV9FTlVNQEBJRUFBQElIQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBMTV9SRVNVTUVfRU5VTV9JVEVSOjpMTV9SRVNVTUVfRU5VTV9JVEVSKGNsYXNzIExNX1JFU1VNRV9FTlVNICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MExNX1JFU1VNRV9FTlVNX0lURVJAQElFQUFAQUVBVkxNX1JFU1VNRV9FTlVNQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIExNX1NFUlZJQ0U6OkxNX1NFUlZJQ0UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MExNX1NFUlZJQ0VAQFFFQUFAUEVCRzBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIExNX1NFU1NJT046OkxNX1NFU1NJT04odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MExNX1NFU1NJT05AQElFQUFAUEVCRzBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIExNX1NFU1NJT046OkxNX1NFU1NJT04odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MExNX1NFU1NJT05AQElFQUFAUEVCR0FFQlZMT0NBVElPTkBAQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBMTV9TRVNTSU9OOjpMTV9TRVNTSU9OKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxlbnVtIExPQ0FUSU9OX1RZUEUpIF9fcHRyNjQNCis/PzBMTV9TRVNTSU9OQEBJRUFBQFBFQkdXNExPQ0FUSU9OX1RZUEVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE1fU0VTU0lPTl8wOjpMTV9TRVNTSU9OXzAodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MExNX1NFU1NJT05fMEBAUUVBQUBQRUJHMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE1fU0VTU0lPTl8wOjpMTV9TRVNTSU9OXzAodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MExNX1NFU1NJT05fMEBAUUVBQUBQRUJHQUVCVkxPQ0FUSU9OQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIExNX1NFU1NJT05fMDo6TE1fU0VTU0lPTl8wKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxlbnVtIExPQ0FUSU9OX1RZUEUpIF9fcHRyNjQNCis/PzBMTV9TRVNTSU9OXzBAQFFFQUFAUEVCR1c0TE9DQVRJT05fVFlQRUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBMTV9TRVNTSU9OXzEwOjpMTV9TRVNTSU9OXzEwKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBMTV9TRVNTSU9OXzEwQEBRRUFBQFBFQkcwQFoNCis7IHB1YmxpYzogX19jZGVjbCBMTV9TRVNTSU9OXzEwOjpMTV9TRVNTSU9OXzEwKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBMT0NBVElPTiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBMTV9TRVNTSU9OXzEwQEBRRUFBQFBFQkdBRUJWTE9DQVRJT05AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE1fU0VTU0lPTl8xMDo6TE1fU0VTU0lPTl8xMCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsZW51bSBMT0NBVElPTl9UWVBFKSBfX3B0cjY0DQorPz8wTE1fU0VTU0lPTl8xMEBAUUVBQUBQRUJHVzRMT0NBVElPTl9UWVBFQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIExNX1NFU1NJT05fMTo6TE1fU0VTU0lPTl8xKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBMTV9TRVNTSU9OXzFAQFFFQUFAUEVCRzBAWg0KKzsgcHVibGljOiBfX2NkZWNsIExNX1NFU1NJT05fMTo6TE1fU0VTU0lPTl8xKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBMT0NBVElPTiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBMTV9TRVNTSU9OXzFAQFFFQUFAUEVCR0FFQlZMT0NBVElPTkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBMTV9TRVNTSU9OXzE6OkxNX1NFU1NJT05fMSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsZW51bSBMT0NBVElPTl9UWVBFKSBfX3B0cjY0DQorPz8wTE1fU0VTU0lPTl8xQEBRRUFBQFBFQkdXNExPQ0FUSU9OX1RZUEVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE1fU0VTU0lPTl8yOjpMTV9TRVNTSU9OXzIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MExNX1NFU1NJT05fMkBAUUVBQUBQRUJHMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE1fU0VTU0lPTl8yOjpMTV9TRVNTSU9OXzIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MExNX1NFU1NJT05fMkBAUUVBQUBQRUJHQUVCVkxPQ0FUSU9OQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIExNX1NFU1NJT05fMjo6TE1fU0VTU0lPTl8yKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxlbnVtIExPQ0FUSU9OX1RZUEUpIF9fcHRyNjQNCis/PzBMTV9TRVNTSU9OXzJAQFFFQUFAUEVCR1c0TE9DQVRJT05fVFlQRUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBMTV9TUlZSRVM6OkxNX1NSVlJFUyh2b2lkKSBfX3B0cjY0DQorPz8wTE1fU1JWUkVTQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE9DQUxfVVNFUjo6TE9DQUxfVVNFUih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTE9DQUxfVVNFUkBAUUVBQUBQRUJHMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE9DQUxfVVNFUjo6TE9DQUxfVVNFUihlbnVtIExPQ0FUSU9OX1RZUEUpIF9fcHRyNjQNCis/PzBMT0NBTF9VU0VSQEBRRUFBQFc0TE9DQVRJT05fVFlQRUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBMT0NBVElPTjo6TE9DQVRJT04oY2xhc3MgTE9DQVRJT04gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTE9DQVRJT05AQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBMT0NBVElPTjo6TE9DQVRJT04odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MExPQ0FUSU9OQEBRRUFBQFBFQkdIQFoNCis7IHB1YmxpYzogX19jZGVjbCBMT0NBVElPTjo6TE9DQVRJT04oZW51bSBMT0NBVElPTl9UWVBFLGludCkgX19wdHI2NA0KKz8/MExPQ0FUSU9OQEBRRUFBQFc0TE9DQVRJT05fVFlQRUBASEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgTE9DX0xNX0VOVU06OkxPQ19MTV9FTlVNKGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBMT0NfTE1fRU5VTUBASUVBQUBBRUJWTE9DQVRJT05AQElAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIExPQ19MTV9FTlVNOjpMT0NfTE1fRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wTE9DX0xNX0VOVU1AQElFQUFAUEVCR0lAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIExPQ19MTV9FTlVNOjpMT0NfTE1fRU5VTShlbnVtIExPQ0FUSU9OX1RZUEUsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wTE9DX0xNX0VOVU1AQElFQUFAVzRMT0NBVElPTl9UWVBFQEBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBMT0NfTE1fT0JKOjpMT0NfTE1fT0JKKGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYgX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBMT0NfTE1fT0JKQEBRRUFBQEFFQlZMT0NBVElPTkBASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE9DX0xNX09CSjo6TE9DX0xNX09CSih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wTE9DX0xNX09CSkBAUUVBQUBQRUJHSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE9DX0xNX09CSjo6TE9DX0xNX09CSihlbnVtIExPQ0FUSU9OX1RZUEUsaW50KSBfX3B0cjY0DQorPz8wTE9DX0xNX09CSkBAUUVBQUBXNExPQ0FUSU9OX1RZUEVAQEhAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIExPQ19MTV9SRVNVTUVfRU5VTTo6TE9DX0xNX1JFU1VNRV9FTlVNKGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBpbnQsaW50KSBfX3B0cjY0DQorPz8wTE9DX0xNX1JFU1VNRV9FTlVNQEBJRUFBQEFFQlZMT0NBVElPTkBASUhAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIExPQ19MTV9SRVNVTUVfRU5VTTo6TE9DX0xNX1JFU1VNRV9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQsaW50KSBfX3B0cjY0DQorPz8wTE9DX0xNX1JFU1VNRV9FTlVNQEBJRUFBQFBFQkdJSEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgTE9DX0xNX1JFU1VNRV9FTlVNOjpMT0NfTE1fUkVTVU1FX0VOVU0oZW51bSBMT0NBVElPTl9UWVBFLHVuc2lnbmVkIGludCxpbnQpIF9fcHRyNjQNCis/PzBMT0NfTE1fUkVTVU1FX0VOVU1AQElFQUFAVzRMT0NBVElPTl9UWVBFQEBJSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTFNBX0FDQ09VTlQ6OkxTQV9BQ0NPVU5UKGNsYXNzIExTQV9QT0xJQ1kgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTFNBX0FDQ09VTlRAQFFFQUFAUEVBVkxTQV9QT0xJQ1lAQFBFQVhLUEVCRzFAWg0KKzsgcHVibGljOiBfX2NkZWNsIExTQV9BQ0NPVU5UU19FTlVNOjpMU0FfQUNDT1VOVFNfRU5VTShjbGFzcyBMU0FfUE9MSUNZIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MExTQV9BQ0NPVU5UU19FTlVNQEBRRUFBQFBFQlZMU0FfUE9MSUNZQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIExTQV9BQ0NPVU5UU19FTlVNX0lURVI6OkxTQV9BQ0NPVU5UU19FTlVNX0lURVIoY2xhc3MgTFNBX0FDQ09VTlRTX0VOVU0gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTFNBX0FDQ09VTlRTX0VOVU1fSVRFUkBAUUVBQUBBRUFWTFNBX0FDQ09VTlRTX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTFNBX0FDQ09VTlRTX0VOVU1fT0JKOjpMU0FfQUNDT1VOVFNfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MExTQV9BQ0NPVU5UU19FTlVNX09CSkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExTQV9BQ0NPVU5UX1BSSVZJTEVHRV9FTlVNX0lURVI6OkxTQV9BQ0NPVU5UX1BSSVZJTEVHRV9FTlVNX0lURVIoY2xhc3MgT1NfUFJJVklMRUdFX1NFVCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBMU0FfQUNDT1VOVF9QUklWSUxFR0VfRU5VTV9JVEVSQEBRRUFBQFBFQVZPU19QUklWSUxFR0VfU0VUQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIExTQV9BQ0NUX0RPTV9JTkZPX01FTTo6TFNBX0FDQ1RfRE9NX0lORk9fTUVNKGludCkgX19wdHI2NA0KKz8/MExTQV9BQ0NUX0RPTV9JTkZPX01FTUBAUUVBQUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBMU0FfQVVESVRfRVZFTlRfSU5GT19NRU06OkxTQV9BVURJVF9FVkVOVF9JTkZPX01FTShpbnQpIF9fcHRyNjQNCis/PzBMU0FfQVVESVRfRVZFTlRfSU5GT19NRU1AQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTFNBX0RPTUFJTl9JTkZPOjpMU0FfRE9NQUlOX0lORk8oY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsY2xhc3MgTFNBX0RPTUFJTl9JTkZPIGNvbnN0ICogX19wdHI2NCxjbGFzcyBMU0FfRE9NQUlOX0lORk8gY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTFNBX0RPTUFJTl9JTkZPQEBRRUFBQEFFQlZOTFNfU1RSQEBQRUJWMUAxQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBMU0FfRU5VTTo6TFNBX0VOVU0oY2xhc3MgTFNBX1BPTElDWSBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBMU0FfRU5VTUBASUVBQUBQRUJWTFNBX1BPTElDWUBAQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBMU0FfTUVNT1JZOjpMU0FfTUVNT1JZKGludCkgX19wdHI2NA0KKz8/MExTQV9NRU1PUllAQElFQUFASEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgTFNBX09CSkVDVDo6TFNBX09CSkVDVCh2b2lkKSBfX3B0cjY0DQorPz8wTFNBX09CSkVDVEBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExTQV9QT0xJQ1k6OkxTQV9QT0xJQ1kodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBMU0FfUE9MSUNZQEBRRUFBQFBFQkdLQFoNCis7IHB1YmxpYzogX19jZGVjbCBMU0FfUFJJTUFSWV9ET01fSU5GT19NRU06OkxTQV9QUklNQVJZX0RPTV9JTkZPX01FTShpbnQpIF9fcHRyNjQNCis/PzBMU0FfUFJJTUFSWV9ET01fSU5GT19NRU1AQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTFNBX1BSSVZJTEVHRVNfRU5VTTo6TFNBX1BSSVZJTEVHRVNfRU5VTShjbGFzcyBMU0FfUE9MSUNZIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MExTQV9QUklWSUxFR0VTX0VOVU1AQFFFQUFAUEVCVkxTQV9QT0xJQ1lAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTFNBX1BSSVZJTEVHRVNfRU5VTV9JVEVSOjpMU0FfUFJJVklMRUdFU19FTlVNX0lURVIoY2xhc3MgTFNBX1BSSVZJTEVHRVNfRU5VTSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBMU0FfUFJJVklMRUdFU19FTlVNX0lURVJAQFFFQUFAQUVBVkxTQV9QUklWSUxFR0VTX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTFNBX1BSSVZJTEVHRVNfRU5VTV9PQko6OkxTQV9QUklWSUxFR0VTX0VOVU1fT0JKKHZvaWQpIF9fcHRyNjQNCis/PzBMU0FfUFJJVklMRUdFU19FTlVNX09CSkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExTQV9SRUZfRE9NQUlOX01FTTo6TFNBX1JFRl9ET01BSU5fTUVNKGludCkgX19wdHI2NA0KKz8/MExTQV9SRUZfRE9NQUlOX01FTUBAUUVBQUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBMU0FfU0VDUkVUOjpMU0FfU0VDUkVUKGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTFNBX1NFQ1JFVEBAUUVBQUBBRUJWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBMU0FfU0VSVkVSX1JPTEVfSU5GT19NRU06OkxTQV9TRVJWRVJfUk9MRV9JTkZPX01FTShpbnQsaW50KSBfX3B0cjY0DQorPz8wTFNBX1NFUlZFUl9ST0xFX0lORk9fTUVNQEBRRUFBQEhIQFoNCis7IHB1YmxpYzogX19jZGVjbCBMU0FfVFJBTlNMQVRFRF9OQU1FX01FTTo6TFNBX1RSQU5TTEFURURfTkFNRV9NRU0oaW50KSBfX3B0cjY0DQorPz8wTFNBX1RSQU5TTEFURURfTkFNRV9NRU1AQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTFNBX1RSQU5TTEFURURfU0lEX01FTTo6TFNBX1RSQU5TTEFURURfU0lEX01FTShpbnQpIF9fcHRyNjQNCis/PzBMU0FfVFJBTlNMQVRFRF9TSURfTUVNQEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIExTQV9UUlVTVEVEX0RDX0xJU1Q6OkxTQV9UUlVTVEVEX0RDX0xJU1QoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTFNBX1RSVVNURURfRENfTElTVEBAUUVBQUBBRUJWTkxTX1NUUkBAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgTFNBX1RSVVNURURfRE9NQUlOOjpMU0FfVFJVU1RFRF9ET01BSU4oY2xhc3MgTFNBX1BPTElDWSBjb25zdCAmIF9fcHRyNjQsc3RydWN0IF9MU0FfVFJVU1RfSU5GT1JNQVRJT04gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBMU0FfVFJVU1RFRF9ET01BSU5AQFFFQUFAQUVCVkxTQV9QT0xJQ1lAQEFFQlVfTFNBX1RSVVNUX0lORk9STUFUSU9OQEBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBMU0FfVFJVU1RFRF9ET01BSU46OkxTQV9UUlVTVEVEX0RPTUFJTihjbGFzcyBMU0FfUE9MSUNZIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCx2b2lkICogX19wdHI2NCBjb25zdCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wTFNBX1RSVVNURURfRE9NQUlOQEBRRUFBQEFFQlZMU0FfUE9MSUNZQEBBRUJWTkxTX1NUUkBAUUVBWEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIExTQV9UUlVTVEVEX0RPTUFJTjo6TFNBX1RSVVNURURfRE9NQUlOKGNsYXNzIExTQV9QT0xJQ1kgY29uc3QgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0IGNvbnN0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBMU0FfVFJVU1RFRF9ET01BSU5AQFFFQUFAQUVCVkxTQV9QT0xJQ1lAQFFFQVhLQFoNCis7IHB1YmxpYzogX19jZGVjbCBMU0FfVFJVU1RfSU5GT19NRU06OkxTQV9UUlVTVF9JTkZPX01FTShpbnQpIF9fcHRyNjQNCis/PzBMU0FfVFJVU1RfSU5GT19NRU1AQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTUVNQkVSU0hJUF9MTV9PQko6Ok1FTUJFUlNISVBfTE1fT0JKKGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBNRU1CRVJTSElQX0xNX09CSkBAUUVBQUBBRUJWTE9DQVRJT05AQElAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIE5FVF9BQ0NFU1M6Ok5FVF9BQ0NFU1ModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/ME5FVF9BQ0NFU1NAQElFQUFAUEVCRzBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE5FVF9BQ0NFU1NfMTo6TkVUX0FDQ0VTU18xKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBORVRfQUNDRVNTXzFAQFFFQUFAUEVCRzBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE5FVF9OQU1FOjpORVRfTkFNRSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsZW51bSBORVROQU1FX1RZUEUpIF9fcHRyNjQNCis/PzBORVRfTkFNRUBAUUVBQUBQRUJHVzRORVROQU1FX1RZUEVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTkVXX0xNX09CSjo6TkVXX0xNX09CSihpbnQpIF9fcHRyNjQNCis/PzBORVdfTE1fT0JKQEBRRUFBQEhAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIE5UX0FDQ09VTlRfRU5VTTo6TlRfQUNDT1VOVF9FTlVNKGNsYXNzIFNBTV9ET01BSU4gY29uc3QgKiBfX3B0cjY0LGVudW0gX0RPTUFJTl9ESVNQTEFZX0lORk9STUFUSU9OLGludCkgX19wdHI2NA0KKz8/ME5UX0FDQ09VTlRfRU5VTUBASUVBQUBQRUJWU0FNX0RPTUFJTkBAVzRfRE9NQUlOX0RJU1BMQVlfSU5GT1JNQVRJT05AQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIE5UX0dST1VQX0VOVU06Ok5UX0dST1VQX0VOVU0oY2xhc3MgU0FNX0RPTUFJTiBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBOVF9HUk9VUF9FTlVNQEBRRUFBQFBFQlZTQU1fRE9NQUlOQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE5UX0dST1VQX0VOVU1fSVRFUjo6TlRfR1JPVVBfRU5VTV9JVEVSKGNsYXNzIE5UX0dST1VQX0VOVU0gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTlRfR1JPVVBfRU5VTV9JVEVSQEBRRUFBQEFFQVZOVF9HUk9VUF9FTlVNQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE5UX0dST1VQX0VOVU1fT0JKOjpOVF9HUk9VUF9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8wTlRfR1JPVVBfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOVF9NQUNISU5FX0VOVU06Ok5UX01BQ0hJTkVfRU5VTShjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/ME5UX01BQ0hJTkVfRU5VTUBAUUVBQUBQRUJWU0FNX0RPTUFJTkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBOVF9NQUNISU5FX0VOVU1fSVRFUjo6TlRfTUFDSElORV9FTlVNX0lURVIoY2xhc3MgTlRfTUFDSElORV9FTlVNICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ME5UX01BQ0hJTkVfRU5VTV9JVEVSQEBRRUFBQEFFQVZOVF9NQUNISU5FX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTlRfTUFDSElORV9FTlVNX09CSjo6TlRfTUFDSElORV9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8wTlRfTUFDSElORV9FTlVNX09CSkBAUUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIE5UX01FTU9SWTo6TlRfTUVNT1JZKHZvaWQpIF9fcHRyNjQNCis/PzBOVF9NRU1PUllAQElFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOVF9VU0VSX0VOVU06Ok5UX1VTRVJfRU5VTShjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/ME5UX1VTRVJfRU5VTUBAUUVBQUBQRUJWU0FNX0RPTUFJTkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBOVF9VU0VSX0VOVU1fSVRFUjo6TlRfVVNFUl9FTlVNX0lURVIoY2xhc3MgTlRfVVNFUl9FTlVNICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ME5UX1VTRVJfRU5VTV9JVEVSQEBRRUFBQEFFQVZOVF9VU0VSX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTlRfVVNFUl9FTlVNX09CSjo6TlRfVVNFUl9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8wTlRfVVNFUl9FTlVNX09CSkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE9TX0FDRTo6T1NfQUNFKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wT1NfQUNFQEBRRUFBQFBFQVhAWg0KKzsgcHVibGljOiBfX2NkZWNsIE9TX0FDTDo6T1NfQUNMKHN0cnVjdCBfQUNMICogX19wdHI2NCxpbnQsY2xhc3MgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBPU19BQ0xAQFFFQUFAUEVBVV9BQ0xAQEhQRUFWT1NfU0VDVVJJVFlfREVTQ1JJUFRPUkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBPU19BQ0xfU1VCSkVDVF9JVEVSOjpPU19BQ0xfU1VCSkVDVF9JVEVSKGNsYXNzIE9TX0FDTCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IF9HRU5FUklDX01BUFBJTkcgKiBfX3B0cjY0LHN0cnVjdCBfR0VORVJJQ19NQVBQSU5HICogX19wdHI2NCxpbnQsaW50KSBfX3B0cjY0DQorPz8wT1NfQUNMX1NVQkpFQ1RfSVRFUkBAUUVBQUBQRUJWT1NfQUNMQEBQRUFVX0dFTkVSSUNfTUFQUElOR0BAMUhIQFoNCis7IHB1YmxpYzogX19jZGVjbCBPU19EQUNMX1NVQkpFQ1RfSVRFUjo6T1NfREFDTF9TVUJKRUNUX0lURVIoY2xhc3MgT1NfQUNMICogX19wdHI2NCxzdHJ1Y3QgX0dFTkVSSUNfTUFQUElORyAqIF9fcHRyNjQsc3RydWN0IF9HRU5FUklDX01BUFBJTkcgKiBfX3B0cjY0LGludCxpbnQpIF9fcHRyNjQNCis/PzBPU19EQUNMX1NVQkpFQ1RfSVRFUkBAUUVBQUBQRUFWT1NfQUNMQEBQRUFVX0dFTkVSSUNfTUFQUElOR0BAMUhIQFoNCis7IHB1YmxpYzogX19jZGVjbCBPU19MVUlEOjpPU19MVUlEKHN0cnVjdCBfTFVJRCkgX19wdHI2NA0KKz8/ME9TX0xVSURAQFFFQUFAVV9MVUlEQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE9TX0xVSUQ6Ok9TX0xVSUQodm9pZCkgX19wdHI2NA0KKz8/ME9TX0xVSURAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBPU19MVUlEX0FORF9BVFRSSUJVVEVTOjpPU19MVUlEX0FORF9BVFRSSUJVVEVTKHZvaWQpIF9fcHRyNjQNCis/PzBPU19MVUlEX0FORF9BVFRSSUJVVEVTQEBRRUFBQFhaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgT1NfT0JKRUNUX1dJVEhfREFUQTo6T1NfT0JKRUNUX1dJVEhfREFUQSh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBPU19PQkpFQ1RfV0lUSF9EQVRBQEBJRUFBQElAWg0KKzsgcHVibGljOiBfX2NkZWNsIE9TX1BSSVZJTEVHRV9TRVQ6Ok9TX1BSSVZJTEVHRV9TRVQoc3RydWN0IF9QUklWSUxFR0VfU0VUICogX19wdHI2NCkgX19wdHI2NA0KKz8/ME9TX1BSSVZJTEVHRV9TRVRAQFFFQUFAUEVBVV9QUklWSUxFR0VfU0VUQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE9TX1NBQ0xfU1VCSkVDVF9JVEVSOjpPU19TQUNMX1NVQkpFQ1RfSVRFUihjbGFzcyBPU19BQ0wgKiBfX3B0cjY0LHN0cnVjdCBfR0VORVJJQ19NQVBQSU5HICogX19wdHI2NCxzdHJ1Y3QgX0dFTkVSSUNfTUFQUElORyAqIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz8/ME9TX1NBQ0xfU1VCSkVDVF9JVEVSQEBRRUFBQFBFQVZPU19BQ0xAQFBFQVVfR0VORVJJQ19NQVBQSU5HQEAxSEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6Ok9TX1NFQ1VSSVRZX0RFU0NSSVBUT1Iodm9pZCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wT1NfU0VDVVJJVFlfREVTQ1JJUFRPUkBAUUVBQUBQRUFYSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUl9DT05UUk9MOjpPU19TRUNVUklUWV9ERVNDUklQVE9SX0NPTlRST0wodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wT1NfU0VDVVJJVFlfREVTQ1JJUFRPUl9DT05UUk9MQEBRRUFBQFBFQUdAWg0KKzsgcHVibGljOiBfX2NkZWNsIE9TX1NJRDo6T1NfU0lEKHZvaWQgKiBfX3B0cjY0LGludCxjbGFzcyBPU19TRUNVUklUWV9ERVNDUklQVE9SICogX19wdHI2NCkgX19wdHI2NA0KKz8/ME9TX1NJREBAUUVBQUBQRUFYSFBFQVZPU19TRUNVUklUWV9ERVNDUklQVE9SQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE9TX1NJRDo6T1NfU0lEKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsY2xhc3MgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBPU19TSURAQFFFQUFAUEVBWEtQRUFWT1NfU0VDVVJJVFlfREVTQ1JJUFRPUkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTQU1fQUxJQVM6OlNBTV9BTElBUyhjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBTQU1fQUxJQVNAQFFFQUFAQUVCVlNBTV9ET01BSU5AQEtLQFoNCis7IHB1YmxpYzogX19jZGVjbCBTQU1fQUxJQVM6OlNBTV9BTElBUyhjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNBTV9BTElBU0BAUUVBQUBBRUJWU0FNX0RPTUFJTkBAUEVCR0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNBTV9ET01BSU46OlNBTV9ET01BSU4oY2xhc3MgU0FNX1NFUlZFUiBjb25zdCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNBTV9ET01BSU5AQFFFQUFAQUVCVlNBTV9TRVJWRVJAQFBFQVhLQFoNCis7IHB1YmxpYzogX19jZGVjbCBTQU1fR1JPVVA6OlNBTV9HUk9VUChjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBTQU1fR1JPVVBAQFFFQUFAQUVCVlNBTV9ET01BSU5AQEtLQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBTQU1fTUVNT1JZOjpTQU1fTUVNT1JZKGludCkgX19wdHI2NA0KKz8/MFNBTV9NRU1PUllAQElFQUFASEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgU0FNX09CSkVDVDo6U0FNX09CSkVDVCh2b2lkKSBfX3B0cjY0DQorPz8wU0FNX09CSkVDVEBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNBTV9QU1dEX0RPTV9JTkZPX01FTTo6U0FNX1BTV0RfRE9NX0lORk9fTUVNKGludCkgX19wdHI2NA0KKz8/MFNBTV9QU1dEX0RPTV9JTkZPX01FTUBAUUVBQUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBTQU1fUklEX0VOVU1FUkFUSU9OX01FTTo6U0FNX1JJRF9FTlVNRVJBVElPTl9NRU0oaW50KSBfX3B0cjY0DQorPz8wU0FNX1JJRF9FTlVNRVJBVElPTl9NRU1AQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0FNX1JJRF9NRU06OlNBTV9SSURfTUVNKGludCkgX19wdHI2NA0KKz8/MFNBTV9SSURfTUVNQEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNBTV9TRVJWRVI6OlNBTV9TRVJWRVIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBTQU1fU0VSVkVSQEBRRUFBQFBFQkdLQFoNCis7IHB1YmxpYzogX19jZGVjbCBTQU1fU0lEX01FTTo6U0FNX1NJRF9NRU0oaW50KSBfX3B0cjY0DQorPz8wU0FNX1NJRF9NRU1AQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0FNX1NJRF9OQU1FX1VTRV9NRU06OlNBTV9TSURfTkFNRV9VU0VfTUVNKGludCkgX19wdHI2NA0KKz8/MFNBTV9TSURfTkFNRV9VU0VfTUVNQEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNBTV9VU0VSOjpTQU1fVVNFUihjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBTQU1fVVNFUkBAUUVBQUBBRUJWU0FNX0RPTUFJTkBAS0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNBTV9VU0VSX0VOVU06OlNBTV9VU0VSX0VOVU0oY2xhc3MgU0FNX0RPTUFJTiBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/PzBTQU1fVVNFUl9FTlVNQEBRRUFBQFBFQlZTQU1fRE9NQUlOQEBLSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0FNX1VTRVJfRU5VTV9JVEVSOjpTQU1fVVNFUl9FTlVNX0lURVIoY2xhc3MgU0FNX1VTRVJfRU5VTSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTQU1fVVNFUl9FTlVNX0lURVJAQFFFQUFAQUVBVlNBTV9VU0VSX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0FNX1VTRVJfRU5VTV9PQko6OlNBTV9VU0VSX0VOVU1fT0JKKHZvaWQpIF9fcHRyNjQNCis/PzBTQU1fVVNFUl9FTlVNX09CSkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNDX01BTkFHRVI6OlNDX01BTkFHRVIoc3RydWN0IFNDX0hBTkRMRV9fICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNDX01BTkFHRVJAQFFFQUFAUEVBVVNDX0hBTkRMRV9fQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNDX01BTkFHRVI6OlNDX01BTkFHRVIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxlbnVtIFNFUlZJQ0VfREFUQUJBU0UpIF9fcHRyNjQNCis/PzBTQ19NQU5BR0VSQEBRRUFBQFBFQkdJVzRTRVJWSUNFX0RBVEFCQVNFQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNDX1NFUlZJQ0U6OlNDX1NFUlZJQ0UoY2xhc3MgU0NfTUFOQUdFUiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MFNDX1NFUlZJQ0VAQFFFQUFAQUVCVlNDX01BTkFHRVJAQFBFQkcxSUlJMTExMTFJQFoNCis7IHB1YmxpYzogX19jZGVjbCBTQ19TRVJWSUNFOjpTQ19TRVJWSUNFKGNsYXNzIFNDX01BTkFHRVIgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBTQ19TRVJWSUNFQEBRRUFBQEFFQlZTQ19NQU5BR0VSQEBQRUJHSUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0VSVkVSMV9FTlVNOjpTRVJWRVIxX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wU0VSVkVSMV9FTlVNQEBRRUFBQFBFQkcwS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0VSVkVSMV9FTlVNX0lURVI6OlNFUlZFUjFfRU5VTV9JVEVSKGNsYXNzIFNFUlZFUjFfRU5VTSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTRVJWRVIxX0VOVU1fSVRFUkBAUUVBQUBBRUFWU0VSVkVSMV9FTlVNQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNFUlZFUjFfRU5VTV9PQko6OlNFUlZFUjFfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MFNFUlZFUjFfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTRVJWRVJfMDo6U0VSVkVSXzAodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU0VSVkVSXzBAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0VSVkVSXzE6OlNFUlZFUl8xKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNFUlZFUl8xQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNFUlZFUl8yOjpTRVJWRVJfMih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTRVJWRVJfMkBAUUVBQUBQRUJHQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBTRVJWRVJfRU5VTTo6U0VSVkVSX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNFUlZFUl9FTlVNQEBJRUFBQFBFQkdJMEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNFUlZJQ0VfQ09OVFJPTDo6U0VSVklDRV9DT05UUk9MKHZvaWQpIF9fcHRyNjQNCis/PzBTRVJWSUNFX0NPTlRST0xAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTRVJWSUNFX0VOVU06OlNFUlZJQ0VfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTRVJWSUNFX0VOVU1AQFFFQUFAUEVCR0hJMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0VSVklDRV9FTlVNX0lURVI6OlNFUlZJQ0VfRU5VTV9JVEVSKGNsYXNzIFNFUlZJQ0VfRU5VTSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTRVJWSUNFX0VOVU1fSVRFUkBAUUVBQUBBRUFWU0VSVklDRV9FTlVNQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNFUlZJQ0VfRU5VTV9PQko6OlNFUlZJQ0VfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MFNFUlZJQ0VfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTRVNTSU9OMF9FTlVNOjpTRVNTSU9OMF9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNFU1NJT04wX0VOVU1AQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0VTU0lPTjBfRU5VTV9JVEVSOjpTRVNTSU9OMF9FTlVNX0lURVIoY2xhc3MgU0VTU0lPTjBfRU5VTSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTRVNTSU9OMF9FTlVNX0lURVJAQFFFQUFAQUVBVlNFU1NJT04wX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0VTU0lPTjBfRU5VTV9PQko6OlNFU1NJT04wX0VOVU1fT0JKKHZvaWQpIF9fcHRyNjQNCis/PzBTRVNTSU9OMF9FTlVNX09CSkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNFU1NJT04xX0VOVU06OlNFU1NJT04xX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU0VTU0lPTjFfRU5VTUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBTRVNTSU9OMV9FTlVNX0lURVI6OlNFU1NJT04xX0VOVU1fSVRFUihjbGFzcyBTRVNTSU9OMV9FTlVNICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNFU1NJT04xX0VOVU1fSVRFUkBAUUVBQUBBRUFWU0VTU0lPTjFfRU5VTUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTRVNTSU9OMV9FTlVNX09CSjo6U0VTU0lPTjFfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MFNFU1NJT04xX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgU0VTU0lPTl9FTlVNOjpTRVNTSU9OX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MFNFU1NJT05fRU5VTUBASUVBQUBQRUJHSUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0hBUkUxX0VOVU06OlNIQVJFMV9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBTSEFSRTFfRU5VTUBAUUVBQUBQRUJHSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0hBUkUxX0VOVU1fSVRFUjo6U0hBUkUxX0VOVU1fSVRFUihjbGFzcyBTSEFSRTFfRU5VTSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTSEFSRTFfRU5VTV9JVEVSQEBRRUFBQEFFQVZTSEFSRTFfRU5VTUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTSEFSRTFfRU5VTV9PQko6OlNIQVJFMV9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8wU0hBUkUxX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0hBUkUyX0VOVU06OlNIQVJFMl9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBTSEFSRTJfRU5VTUBAUUVBQUBQRUJHSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0hBUkUyX0VOVU1fSVRFUjo6U0hBUkUyX0VOVU1fSVRFUihjbGFzcyBTSEFSRTJfRU5VTSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTSEFSRTJfRU5VTV9JVEVSQEBRRUFBQEFFQVZTSEFSRTJfRU5VTUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTSEFSRTJfRU5VTV9PQko6OlNIQVJFMl9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8wU0hBUkUyX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0hBUkU6OlNIQVJFKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wU0hBUkVAQFFFQUFAUEVCRzBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBTSEFSRV8xOjpTSEFSRV8xKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wU0hBUkVfMUBAUUVBQUBQRUJHMEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNIQVJFXzI6OlNIQVJFXzIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBTSEFSRV8yQEBRRUFBQFBFQkcwSEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgU0hBUkVfRU5VTTo6U0hBUkVfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGludCkgX19wdHI2NA0KKz8/MFNIQVJFX0VOVU1AQElFQUFAUEVCR0lIQFoNCis7IHB1YmxpYzogX19jZGVjbCBTTElTVF9PRl9BRE1JTl9BVVRIT1JJVFk6OlNMSVNUX09GX0FETUlOX0FVVEhPUklUWShpbnQpIF9fcHRyNjQNCis/PzBTTElTVF9PRl9BRE1JTl9BVVRIT1JJVFlAQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0xJU1RfT0ZfQVBJX1NFU1NJT046OlNMSVNUX09GX0FQSV9TRVNTSU9OKGludCkgX19wdHI2NA0KKz8/MFNMSVNUX09GX0FQSV9TRVNTSU9OQEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNMSVNUX09GX0JST1dTRV9ET01BSU5fSU5GTzo6U0xJU1RfT0ZfQlJPV1NFX0RPTUFJTl9JTkZPKGludCkgX19wdHI2NA0KKz8/MFNMSVNUX09GX0JST1dTRV9ET01BSU5fSU5GT0BAUUVBQUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBTTElTVF9PRl9MTV9SRVNVTUVfQlVGRkVSOjpTTElTVF9PRl9MTV9SRVNVTUVfQlVGRkVSKGludCkgX19wdHI2NA0KKz8/MFNMSVNUX09GX0xNX1JFU1VNRV9CVUZGRVJAQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgVElNRV9PRl9EQVk6OlRJTUVfT0ZfREFZKGNsYXNzIExPQ0FUSU9OICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFRJTUVfT0ZfREFZQEBRRUFBQEFFQVZMT0NBVElPTkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBUSU1FX09GX0RBWTo6VElNRV9PRl9EQVkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wVElNRV9PRl9EQVlAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgVElNRV9PRl9EQVk6OlRJTUVfT0ZfREFZKGVudW0gTE9DQVRJT05fVFlQRSkgX19wdHI2NA0KKz8/MFRJTUVfT0ZfREFZQEBRRUFBQFc0TE9DQVRJT05fVFlQRUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBUUklQTEVfU0VSVkVSX0VOVU06OlRSSVBMRV9TRVJWRVJfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCxpbnQsaW50LGludCkgX19wdHI2NA0KKz8/MFRSSVBMRV9TRVJWRVJfRU5VTUBAUUVBQUBQRUJHMEhISEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFRSSVBMRV9TRVJWRVJfRU5VTV9JVEVSOjpUUklQTEVfU0VSVkVSX0VOVU1fSVRFUihjbGFzcyBUUklQTEVfU0VSVkVSX0VOVU0gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wVFJJUExFX1NFUlZFUl9FTlVNX0lURVJAQFFFQUFAQUVBVlRSSVBMRV9TRVJWRVJfRU5VTUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBUUklQTEVfU0VSVkVSX0VOVU1fT0JKOjpUUklQTEVfU0VSVkVSX0VOVU1fT0JKKHZvaWQpIF9fcHRyNjQNCis/PzBUUklQTEVfU0VSVkVSX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVFJVU1RFRF9ET01BSU5fRU5VTTo6VFJVU1RFRF9ET01BSU5fRU5VTShjbGFzcyBMU0FfUE9MSUNZIGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBUUlVTVEVEX0RPTUFJTl9FTlVNQEBRRUFBQFBFQlZMU0FfUE9MSUNZQEBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBUUlVTVEVEX0RPTUFJTl9FTlVNX0lURVI6OlRSVVNURURfRE9NQUlOX0VOVU1fSVRFUihjbGFzcyBUUlVTVEVEX0RPTUFJTl9FTlVNICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFRSVVNURURfRE9NQUlOX0VOVU1fSVRFUkBAUUVBQUBBRUFWVFJVU1RFRF9ET01BSU5fRU5VTUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBUUlVTVEVEX0RPTUFJTl9FTlVNX09CSjo6VFJVU1RFRF9ET01BSU5fRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MFRSVVNURURfRE9NQUlOX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFMV9FTlVNOjpVU0UxX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wVVNFMV9FTlVNQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFVTRTFfRU5VTV9JVEVSOjpVU0UxX0VOVU1fSVRFUihjbGFzcyBVU0UxX0VOVU0gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wVVNFMV9FTlVNX0lURVJAQFFFQUFAQUVBVlVTRTFfRU5VTUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0UxX0VOVU1fT0JKOjpVU0UxX0VOVU1fT0JKKHZvaWQpIF9fcHRyNjQNCis/PzBVU0UxX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUjBfRU5VTTo6VVNFUjBfRU5VTShjbGFzcyBMT0NBVElPTiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MFVTRVIwX0VOVU1AQFFFQUFAQUVCVkxPQ0FUSU9OQEBQRUJHSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUjBfRU5VTTo6VVNFUjBfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MFVTRVIwX0VOVU1AQFFFQUFAUEVCRzBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0VSMF9FTlVNOjpVU0VSMF9FTlVNKGVudW0gTE9DQVRJT05fVFlQRSx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wVVNFUjBfRU5VTUBAUUVBQUBXNExPQ0FUSU9OX1RZUEVAQFBFQkdIQFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0VSMF9FTlVNX0lURVI6OlVTRVIwX0VOVU1fSVRFUihjbGFzcyBVU0VSMF9FTlVNICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFVTRVIwX0VOVU1fSVRFUkBAUUVBQUBBRUFWVVNFUjBfRU5VTUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0VSMF9FTlVNX09CSjo6VVNFUjBfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MFVTRVIwX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUjEwX0VOVU06OlVTRVIxMF9FTlVNKGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYgX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBVU0VSMTBfRU5VTUBAUUVBQUBBRUJWTE9DQVRJT05AQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFVTRVIxMF9FTlVNOjpVU0VSMTBfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wVVNFUjEwX0VOVU1AQFFFQUFAUEVCR0hAWg0KKzsgcHVibGljOiBfX2NkZWNsIFVTRVIxMF9FTlVNOjpVU0VSMTBfRU5VTShlbnVtIExPQ0FUSU9OX1RZUEUsaW50KSBfX3B0cjY0DQorPz8wVVNFUjEwX0VOVU1AQFFFQUFAVzRMT0NBVElPTl9UWVBFQEBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0VSMTBfRU5VTV9JVEVSOjpVU0VSMTBfRU5VTV9JVEVSKGNsYXNzIFVTRVIxMF9FTlVNICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFVTRVIxMF9FTlVNX0lURVJAQFFFQUFAQUVBVlVTRVIxMF9FTlVNQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFVTRVIxMF9FTlVNX09CSjo6VVNFUjEwX0VOVU1fT0JKKHZvaWQpIF9fcHRyNjQNCis/PzBVU0VSMTBfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0VSMV9FTlVNOjpVU0VSMV9FTlVNKGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYgX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBVU0VSMV9FTlVNQEBRRUFBQEFFQlZMT0NBVElPTkBASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUjFfRU5VTTo6VVNFUjFfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wVVNFUjFfRU5VTUBAUUVBQUBQRUJHSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUjFfRU5VTTo6VVNFUjFfRU5VTShlbnVtIExPQ0FUSU9OX1RZUEUsaW50KSBfX3B0cjY0DQorPz8wVVNFUjFfRU5VTUBAUUVBQUBXNExPQ0FUSU9OX1RZUEVAQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFVTRVIxX0VOVU1fSVRFUjo6VVNFUjFfRU5VTV9JVEVSKGNsYXNzIFVTRVIxX0VOVU0gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wVVNFUjFfRU5VTV9JVEVSQEBRRUFBQEFFQVZVU0VSMV9FTlVNQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFVTRVIxX0VOVU1fT0JKOjpVU0VSMV9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8wVVNFUjFfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0VSMl9FTlVNOjpVU0VSMl9FTlVNKGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYgX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBVU0VSMl9FTlVNQEBRRUFBQEFFQlZMT0NBVElPTkBASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUjJfRU5VTTo6VVNFUjJfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wVVNFUjJfRU5VTUBAUUVBQUBQRUJHSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUjJfRU5VTTo6VVNFUjJfRU5VTShlbnVtIExPQ0FUSU9OX1RZUEUsaW50KSBfX3B0cjY0DQorPz8wVVNFUjJfRU5VTUBAUUVBQUBXNExPQ0FUSU9OX1RZUEVAQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFVTRVIyX0VOVU1fSVRFUjo6VVNFUjJfRU5VTV9JVEVSKGNsYXNzIFVTRVIyX0VOVU0gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wVVNFUjJfRU5VTV9JVEVSQEBRRUFBQEFFQVZVU0VSMl9FTlVNQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFVTRVIyX0VOVU1fT0JKOjpVU0VSMl9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8wVVNFUjJfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0VSOjpVU0VSKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBVU0VSQEBRRUFBQFBFQkcwQFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0VSOjpVU0VSKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBMT0NBVElPTiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBVU0VSQEBRRUFBQFBFQkdBRUJWTE9DQVRJT05AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUjo6VVNFUih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsZW51bSBMT0NBVElPTl9UWVBFKSBfX3B0cjY0DQorPz8wVVNFUkBAUUVBQUBQRUJHVzRMT0NBVElPTl9UWVBFQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFVTRVJfMTE6OlVTRVJfMTEodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFVTRVJfMTFAQFFFQUFAUEVCRzBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFVTRVJfMTE6OlVTRVJfMTEodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFVTRVJfMTFAQFFFQUFAUEVCR0FFQlZMT0NBVElPTkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0VSXzExOjpVU0VSXzExKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxlbnVtIExPQ0FUSU9OX1RZUEUpIF9fcHRyNjQNCis/PzBVU0VSXzExQEBRRUFBQFBFQkdXNExPQ0FUSU9OX1RZUEVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUl8yOjpVU0VSXzIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFVTRVJfMkBAUUVBQUBQRUJHMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUl8yOjpVU0VSXzIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFVTRVJfMkBAUUVBQUBQRUJHQUVCVkxPQ0FUSU9OQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFVTRVJfMjo6VVNFUl8yKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxlbnVtIExPQ0FUSU9OX1RZUEUpIF9fcHRyNjQNCis/PzBVU0VSXzJAQFFFQUFAUEVCR1c0TE9DQVRJT05fVFlQRUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0VSXzM6OlVTRVJfMyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wVVNFUl8zQEBRRUFBQFBFQkcwQFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0VSXzM6OlVTRVJfMyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgTE9DQVRJT04gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wVVNFUl8zQEBRRUFBQFBFQkdBRUJWTE9DQVRJT05AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUl8zOjpVU0VSXzModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGVudW0gTE9DQVRJT05fVFlQRSkgX19wdHI2NA0KKz8/MFVTRVJfM0BAUUVBQUBQRUJHVzRMT0NBVElPTl9UWVBFQEBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIFVTRVJfRU5VTTo6VVNFUl9FTlVNKGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MFVTRVJfRU5VTUBASUVBQUBBRUJWTE9DQVRJT05AQElQRUJHSEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgVVNFUl9FTlVNOjpVU0VSX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wVVNFUl9FTlVNQEBJRUFBQFBFQkdJMEhAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIFVTRVJfRU5VTTo6VVNFUl9FTlVNKGVudW0gTE9DQVRJT05fVFlQRSx1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MFVTRVJfRU5VTUBASUVBQUBXNExPQ0FUSU9OX1RZUEVAQElQRUJHSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUl9NRU1COjpVU0VSX01FTUIoY2xhc3MgTE9DQVRJT04gY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFVTRVJfTUVNQkBAUUVBQUBBRUJWTE9DQVRJT05AQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFVTRVJfTU9EQUxTOjpVU0VSX01PREFMUyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBVU0VSX01PREFMU0BAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0VSX01PREFMU18zOjpVU0VSX01PREFMU18zKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFVTRVJfTU9EQUxTXzNAQFFFQUFAUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgVVNFX0VOVU06OlVTRV9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBVU0VfRU5VTUBASUVBQUBQRUJHSUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV0tTVEFfMTA6OldLU1RBXzEwKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFdLU1RBXzEwQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdLU1RBXzE6OldLU1RBXzEodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV0tTVEFfMUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBXS1NUQV9VU0VSXzE6OldLU1RBX1VTRVJfMSh2b2lkKSBfX3B0cjY0DQorPz8wV0tTVEFfVVNFUl8xQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQURNSU5fQVVUSE9SSVRZOjp+QURNSU5fQVVUSE9SSVRZKHZvaWQpIF9fcHRyNjQNCis/PzFBRE1JTl9BVVRIT1JJVFlAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBBTElBU19FTlVNOjp+QUxJQVNfRU5VTSh2b2lkKSBfX3B0cjY0DQorPz8xQUxJQVNfRU5VTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEFMSUFTX0VOVU1fT0JKOjp+QUxJQVNfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MUFMSUFTX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQUxJQVNfU1RSOjp+QUxJQVNfU1RSKHZvaWQpIF9fcHRyNjQNCis/PzFBTElBU19TVFJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBBTExPQ19TVFI6On5BTExPQ19TVFIodm9pZCkgX19wdHI2NA0KKz8/MUFMTE9DX1NUUkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEFQSV9TRVNTSU9OOjp+QVBJX1NFU1NJT04odm9pZCkgX19wdHI2NA0KKz8/MUFQSV9TRVNTSU9OQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlJPV1NFX0RPTUFJTl9FTlVNOjp+QlJPV1NFX0RPTUFJTl9FTlVNKHZvaWQpIF9fcHRyNjQNCis/PzFCUk9XU0VfRE9NQUlOX0VOVU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCUk9XU0VfRE9NQUlOX0lORk86On5CUk9XU0VfRE9NQUlOX0lORk8odm9pZCkgX19wdHI2NA0KKz8/MUJST1dTRV9ET01BSU5fSU5GT0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENIQVJERVZRMV9FTlVNX09CSjo6fkNIQVJERVZRMV9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8xQ0hBUkRFVlExX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0hBUkRFVlFfRU5VTTo6fkNIQVJERVZRX0VOVU0odm9pZCkgX19wdHI2NA0KKz8/MUNIQVJERVZRX0VOVU1AQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBDT01QVVRFUjo6fkNPTVBVVEVSKHZvaWQpIF9fcHRyNjQNCis/PzFDT01QVVRFUkBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENPTk4wX0VOVU1fT0JKOjp+Q09OTjBfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MUNPTk4wX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09OTjFfRU5VTV9PQko6On5DT05OMV9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8xQ09OTjFfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDT05OX0VOVU06On5DT05OX0VOVU0odm9pZCkgX19wdHI2NA0KKz8/MUNPTk5fRU5VTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENPTlRFWFRfRU5VTV9PQko6On5DT05URVhUX0VOVU1fT0JKKHZvaWQpIF9fcHRyNjQNCis/PzFDT05URVhUX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgREVWSUNFOjp+REVWSUNFKHZvaWQpIF9fcHRyNjQNCis/PzFERVZJQ0VAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBET01BSU4wX0VOVU06On5ET01BSU4wX0VOVU0odm9pZCkgX19wdHI2NA0KKz8/MURPTUFJTjBfRU5VTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIERPTUFJTjBfRU5VTV9JVEVSOjp+RE9NQUlOMF9FTlVNX0lURVIodm9pZCkgX19wdHI2NA0KKz8/MURPTUFJTjBfRU5VTV9JVEVSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRE9NQUlOMF9FTlVNX09CSjo6fkRPTUFJTjBfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MURPTUFJTjBfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBET01BSU46On5ET01BSU4odm9pZCkgX19wdHI2NA0KKz8/MURPTUFJTkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIERPTUFJTl9FTlVNOjp+RE9NQUlOX0VOVU0odm9pZCkgX19wdHI2NA0KKz8/MURPTUFJTl9FTlVNQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRE9NQUlOX1dJVEhfRENfQ0FDSEU6On5ET01BSU5fV0lUSF9EQ19DQUNIRSh2b2lkKSBfX3B0cjY0DQorPz8xRE9NQUlOX1dJVEhfRENfQ0FDSEVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBFTlVNX0NBTExFUl9MTV9PQko6On5FTlVNX0NBTExFUl9MTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MUVOVU1fQ0FMTEVSX0xNX09CSkBAUUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIEVOVU1fT0JKX0JBU0U6On5FTlVNX09CSl9CQVNFKHZvaWQpIF9fcHRyNjQNCis/PzFFTlVNX09CSl9CQVNFQEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRklMRTJfRU5VTV9PQko6On5GSUxFMl9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8xRklMRTJfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBGSUxFM19FTlVNOjp+RklMRTNfRU5VTSh2b2lkKSBfX3B0cjY0DQorPz8xRklMRTNfRU5VTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEZJTEUzX0VOVU1fSVRFUjo6fkZJTEUzX0VOVU1fSVRFUih2b2lkKSBfX3B0cjY0DQorPz8xRklMRTNfRU5VTV9JVEVSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRklMRTNfRU5VTV9PQko6On5GSUxFM19FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8xRklMRTNfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBGSUxFX0VOVU06On5GSUxFX0VOVU0odm9pZCkgX19wdHI2NA0KKz8/MUZJTEVfRU5VTUBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEdST1VQMF9FTlVNOjp+R1JPVVAwX0VOVU0odm9pZCkgX19wdHI2NA0KKz8/MUdST1VQMF9FTlVNQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgR1JPVVAwX0VOVU1fSVRFUjo6fkdST1VQMF9FTlVNX0lURVIodm9pZCkgX19wdHI2NA0KKz8/MUdST1VQMF9FTlVNX0lURVJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBHUk9VUDBfRU5VTV9PQko6On5HUk9VUDBfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MUdST1VQMF9FTlVNX09CSkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEdST1VQMV9FTlVNX09CSjo6fkdST1VQMV9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8xR1JPVVAxX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgR1JPVVA6On5HUk9VUCh2b2lkKSBfX3B0cjY0DQorPz8xR1JPVVBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBHUk9VUF8wOjp+R1JPVVBfMCh2b2lkKSBfX3B0cjY0DQorPz8xR1JPVVBfMEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEdST1VQXzE6On5HUk9VUF8xKHZvaWQpIF9fcHRyNjQNCis/PzFHUk9VUF8xQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgR1JPVVBfRU5VTTo6fkdST1VQX0VOVU0odm9pZCkgX19wdHI2NA0KKz8/MUdST1VQX0VOVU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBHUk9VUF9NRU1COjp+R1JPVVBfTUVNQih2b2lkKSBfX3B0cjY0DQorPz8xR1JPVVBfTUVNQkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIElURVJfREVWSUNFOjp+SVRFUl9ERVZJQ0Uodm9pZCkgX19wdHI2NA0KKz8/MUlURVJfREVWSUNFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgSVRFUl9TTF9CUk9XU0VfRE9NQUlOX0lORk86On5JVEVSX1NMX0JST1dTRV9ET01BSU5fSU5GTyh2b2lkKSBfX3B0cjY0DQorPz8xSVRFUl9TTF9CUk9XU0VfRE9NQUlOX0lORk9AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBJVEVSX1NMX0xNX1JFU1VNRV9CVUZGRVI6On5JVEVSX1NMX0xNX1JFU1VNRV9CVUZGRVIodm9pZCkgX19wdHI2NA0KKz8/MUlURVJfU0xfTE1fUkVTVU1FX0JVRkZFUkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExNX0NPTkZJRzo6fkxNX0NPTkZJRyh2b2lkKSBfX3B0cjY0DQorPz8xTE1fQ09ORklHQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE1fRU5VTTo6fkxNX0VOVU0odm9pZCkgX19wdHI2NA0KKz8/MUxNX0VOVU1AQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBMTV9FTlVNX0lURVI6On5MTV9FTlVNX0lURVIodm9pZCkgX19wdHI2NA0KKz8/MUxNX0VOVU1fSVRFUkBASUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIExNX0ZJTEU6On5MTV9GSUxFKHZvaWQpIF9fcHRyNjQNCis/PzFMTV9GSUxFQEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE1fRklMRV8yOjp+TE1fRklMRV8yKHZvaWQpIF9fcHRyNjQNCis/PzFMTV9GSUxFXzJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBMTV9SRVNVTUVfQlVGRkVSOjp+TE1fUkVTVU1FX0JVRkZFUih2b2lkKSBfX3B0cjY0DQorPz8xTE1fUkVTVU1FX0JVRkZFUkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExNX1JFU1VNRV9FTlVNOjp+TE1fUkVTVU1FX0VOVU0odm9pZCkgX19wdHI2NA0KKz8/MUxNX1JFU1VNRV9FTlVNQEBRRUFBQFhaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgTE1fUkVTVU1FX0VOVU1fSVRFUjo6fkxNX1JFU1VNRV9FTlVNX0lURVIodm9pZCkgX19wdHI2NA0KKz8/MUxNX1JFU1VNRV9FTlVNX0lURVJAQElFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBMTV9TRVJWSUNFOjp+TE1fU0VSVklDRSh2b2lkKSBfX3B0cjY0DQorPz8xTE1fU0VSVklDRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExNX1NFU1NJT046On5MTV9TRVNTSU9OKHZvaWQpIF9fcHRyNjQNCis/PzFMTV9TRVNTSU9OQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE1fU0VTU0lPTl8wOjp+TE1fU0VTU0lPTl8wKHZvaWQpIF9fcHRyNjQNCis/PzFMTV9TRVNTSU9OXzBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBMTV9TRVNTSU9OXzEwOjp+TE1fU0VTU0lPTl8xMCh2b2lkKSBfX3B0cjY0DQorPz8xTE1fU0VTU0lPTl8xMEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExNX1NFU1NJT05fMTo6fkxNX1NFU1NJT05fMSh2b2lkKSBfX3B0cjY0DQorPz8xTE1fU0VTU0lPTl8xQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE1fU1JWUkVTOjp+TE1fU1JWUkVTKHZvaWQpIF9fcHRyNjQNCis/PzFMTV9TUlZSRVNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBMT0NBTF9VU0VSOjp+TE9DQUxfVVNFUih2b2lkKSBfX3B0cjY0DQorPz8xTE9DQUxfVVNFUkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExPQ0FUSU9OOjp+TE9DQVRJT04odm9pZCkgX19wdHI2NA0KKz8/MUxPQ0FUSU9OQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE9DX0xNX0VOVU06On5MT0NfTE1fRU5VTSh2b2lkKSBfX3B0cjY0DQorPz8xTE9DX0xNX0VOVU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBMT0NfTE1fT0JKOjp+TE9DX0xNX09CSih2b2lkKSBfX3B0cjY0DQorPz8xTE9DX0xNX09CSkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExPQ19MTV9SRVNVTUVfRU5VTTo6fkxPQ19MTV9SRVNVTUVfRU5VTSh2b2lkKSBfX3B0cjY0DQorPz8xTE9DX0xNX1JFU1VNRV9FTlVNQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTFNBX0FDQ09VTlQ6On5MU0FfQUNDT1VOVCh2b2lkKSBfX3B0cjY0DQorPz8xTFNBX0FDQ09VTlRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBMU0FfQUNDT1VOVFNfRU5VTV9PQko6On5MU0FfQUNDT1VOVFNfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MUxTQV9BQ0NPVU5UU19FTlVNX09CSkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExTQV9BQ0NPVU5UX1BSSVZJTEVHRV9FTlVNX0lURVI6On5MU0FfQUNDT1VOVF9QUklWSUxFR0VfRU5VTV9JVEVSKHZvaWQpIF9fcHRyNjQNCis/PzFMU0FfQUNDT1VOVF9QUklWSUxFR0VfRU5VTV9JVEVSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTFNBX0FDQ1RfRE9NX0lORk9fTUVNOjp+TFNBX0FDQ1RfRE9NX0lORk9fTUVNKHZvaWQpIF9fcHRyNjQNCis/PzFMU0FfQUNDVF9ET01fSU5GT19NRU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBMU0FfQVVESVRfRVZFTlRfSU5GT19NRU06On5MU0FfQVVESVRfRVZFTlRfSU5GT19NRU0odm9pZCkgX19wdHI2NA0KKz8/MUxTQV9BVURJVF9FVkVOVF9JTkZPX01FTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExTQV9ET01BSU5fSU5GTzo6fkxTQV9ET01BSU5fSU5GTyh2b2lkKSBfX3B0cjY0DQorPz8xTFNBX0RPTUFJTl9JTkZPQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTFNBX0VOVU06On5MU0FfRU5VTSh2b2lkKSBfX3B0cjY0DQorPz8xTFNBX0VOVU1AQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBMU0FfTUVNT1JZOjp+TFNBX01FTU9SWSh2b2lkKSBfX3B0cjY0DQorPz8xTFNBX01FTU9SWUBASUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIExTQV9PQkpFQ1Q6On5MU0FfT0JKRUNUKHZvaWQpIF9fcHRyNjQNCis/PzFMU0FfT0JKRUNUQEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTFNBX1BPTElDWTo6fkxTQV9QT0xJQ1kodm9pZCkgX19wdHI2NA0KKz8/MUxTQV9QT0xJQ1lAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBMU0FfUFJJTUFSWV9ET01fSU5GT19NRU06On5MU0FfUFJJTUFSWV9ET01fSU5GT19NRU0odm9pZCkgX19wdHI2NA0KKz8/MUxTQV9QUklNQVJZX0RPTV9JTkZPX01FTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExTQV9QUklWSUxFR0VTX0VOVU1fT0JKOjp+TFNBX1BSSVZJTEVHRVNfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MUxTQV9QUklWSUxFR0VTX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTFNBX1JFRl9ET01BSU5fTUVNOjp+TFNBX1JFRl9ET01BSU5fTUVNKHZvaWQpIF9fcHRyNjQNCis/PzFMU0FfUkVGX0RPTUFJTl9NRU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBMU0FfU0VDUkVUOjp+TFNBX1NFQ1JFVCh2b2lkKSBfX3B0cjY0DQorPz8xTFNBX1NFQ1JFVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExTQV9TRVJWRVJfUk9MRV9JTkZPX01FTTo6fkxTQV9TRVJWRVJfUk9MRV9JTkZPX01FTSh2b2lkKSBfX3B0cjY0DQorPz8xTFNBX1NFUlZFUl9ST0xFX0lORk9fTUVNQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTFNBX1RSQU5TTEFURURfTkFNRV9NRU06On5MU0FfVFJBTlNMQVRFRF9OQU1FX01FTSh2b2lkKSBfX3B0cjY0DQorPz8xTFNBX1RSQU5TTEFURURfTkFNRV9NRU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBMU0FfVFJBTlNMQVRFRF9TSURfTUVNOjp+TFNBX1RSQU5TTEFURURfU0lEX01FTSh2b2lkKSBfX3B0cjY0DQorPz8xTFNBX1RSQU5TTEFURURfU0lEX01FTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExTQV9UUlVTVEVEX0RDX0xJU1Q6On5MU0FfVFJVU1RFRF9EQ19MSVNUKHZvaWQpIF9fcHRyNjQNCis/PzFMU0FfVFJVU1RFRF9EQ19MSVNUQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTFNBX1RSVVNURURfRE9NQUlOOjp+TFNBX1RSVVNURURfRE9NQUlOKHZvaWQpIF9fcHRyNjQNCis/PzFMU0FfVFJVU1RFRF9ET01BSU5AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBMU0FfVFJVU1RfSU5GT19NRU06On5MU0FfVFJVU1RfSU5GT19NRU0odm9pZCkgX19wdHI2NA0KKz8/MUxTQV9UUlVTVF9JTkZPX01FTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE1FTUJFUlNISVBfTE1fT0JKOjp+TUVNQkVSU0hJUF9MTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MU1FTUJFUlNISVBfTE1fT0JKQEBRRUFBQFhaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgTkVUX0FDQ0VTUzo6fk5FVF9BQ0NFU1Modm9pZCkgX19wdHI2NA0KKz8/MU5FVF9BQ0NFU1NAQElFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBORVRfQUNDRVNTXzE6On5ORVRfQUNDRVNTXzEodm9pZCkgX19wdHI2NA0KKz8/MU5FVF9BQ0NFU1NfMUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE5FVF9OQU1FOjp+TkVUX05BTUUodm9pZCkgX19wdHI2NA0KKz8/MU5FVF9OQU1FQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTkVXX0xNX09CSjo6fk5FV19MTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MU5FV19MTV9PQkpAQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBOVF9BQ0NPVU5UX0VOVU06On5OVF9BQ0NPVU5UX0VOVU0odm9pZCkgX19wdHI2NA0KKz8/MU5UX0FDQ09VTlRfRU5VTUBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE5UX0dST1VQX0VOVU06On5OVF9HUk9VUF9FTlVNKHZvaWQpIF9fcHRyNjQNCis/PzFOVF9HUk9VUF9FTlVNQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTlRfR1JPVVBfRU5VTV9PQko6On5OVF9HUk9VUF9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8xTlRfR1JPVVBfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOVF9NQUNISU5FX0VOVU06On5OVF9NQUNISU5FX0VOVU0odm9pZCkgX19wdHI2NA0KKz8/MU5UX01BQ0hJTkVfRU5VTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE5UX01BQ0hJTkVfRU5VTV9JVEVSOjp+TlRfTUFDSElORV9FTlVNX0lURVIodm9pZCkgX19wdHI2NA0KKz8/MU5UX01BQ0hJTkVfRU5VTV9JVEVSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTlRfTUFDSElORV9FTlVNX09CSjo6fk5UX01BQ0hJTkVfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MU5UX01BQ0hJTkVfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBOVF9NRU1PUlk6On5OVF9NRU1PUlkodm9pZCkgX19wdHI2NA0KKz8/MU5UX01FTU9SWUBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE5UX1VTRVJfRU5VTTo6fk5UX1VTRVJfRU5VTSh2b2lkKSBfX3B0cjY0DQorPz8xTlRfVVNFUl9FTlVNQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTlRfVVNFUl9FTlVNX09CSjo6fk5UX1VTRVJfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MU5UX1VTRVJfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBPU19BQ0U6On5PU19BQ0Uodm9pZCkgX19wdHI2NA0KKz8/MU9TX0FDRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE9TX0FDTDo6fk9TX0FDTCh2b2lkKSBfX3B0cjY0DQorPz8xT1NfQUNMQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgT1NfQUNMX1NVQkpFQ1RfSVRFUjo6fk9TX0FDTF9TVUJKRUNUX0lURVIodm9pZCkgX19wdHI2NA0KKz8/MU9TX0FDTF9TVUJKRUNUX0lURVJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBPU19EQUNMX1NVQkpFQ1RfSVRFUjo6fk9TX0RBQ0xfU1VCSkVDVF9JVEVSKHZvaWQpIF9fcHRyNjQNCis/PzFPU19EQUNMX1NVQkpFQ1RfSVRFUkBAUUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIE9TX09CSkVDVF9XSVRIX0RBVEE6On5PU19PQkpFQ1RfV0lUSF9EQVRBKHZvaWQpIF9fcHRyNjQNCis/PzFPU19PQkpFQ1RfV0lUSF9EQVRBQEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgT1NfUFJJVklMRUdFX1NFVDo6fk9TX1BSSVZJTEVHRV9TRVQodm9pZCkgX19wdHI2NA0KKz8/MU9TX1BSSVZJTEVHRV9TRVRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBPU19TQUNMX1NVQkpFQ1RfSVRFUjo6fk9TX1NBQ0xfU1VCSkVDVF9JVEVSKHZvaWQpIF9fcHRyNjQNCis/PzFPU19TQUNMX1NVQkpFQ1RfSVRFUkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6On5PU19TRUNVUklUWV9ERVNDUklQVE9SKHZvaWQpIF9fcHRyNjQNCis/PzFPU19TRUNVUklUWV9ERVNDUklQVE9SQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgT1NfU0lEOjp+T1NfU0lEKHZvaWQpIF9fcHRyNjQNCis/PzFPU19TSURAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBSRUdfVkFMVUVfSU5GT19TVFJVQ1Q6On5SRUdfVkFMVUVfSU5GT19TVFJVQ1Qodm9pZCkgX19wdHI2NA0KKz8/MVJFR19WQUxVRV9JTkZPX1NUUlVDVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNBTV9BTElBUzo6flNBTV9BTElBUyh2b2lkKSBfX3B0cjY0DQorPz8xU0FNX0FMSUFTQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0FNX0RPTUFJTjo6flNBTV9ET01BSU4odm9pZCkgX19wdHI2NA0KKz8/MVNBTV9ET01BSU5AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTQU1fR1JPVVA6On5TQU1fR1JPVVAodm9pZCkgX19wdHI2NA0KKz8/MVNBTV9HUk9VUEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNBTV9NRU1PUlk6On5TQU1fTUVNT1JZKHZvaWQpIF9fcHRyNjQNCis/PzFTQU1fTUVNT1JZQEBRRUFBQFhaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgU0FNX09CSkVDVDo6flNBTV9PQkpFQ1Qodm9pZCkgX19wdHI2NA0KKz8/MVNBTV9PQkpFQ1RAQElFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTQU1fUFNXRF9ET01fSU5GT19NRU06On5TQU1fUFNXRF9ET01fSU5GT19NRU0odm9pZCkgX19wdHI2NA0KKz8/MVNBTV9QU1dEX0RPTV9JTkZPX01FTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNBTV9SSURfRU5VTUVSQVRJT05fTUVNOjp+U0FNX1JJRF9FTlVNRVJBVElPTl9NRU0odm9pZCkgX19wdHI2NA0KKz8/MVNBTV9SSURfRU5VTUVSQVRJT05fTUVNQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0FNX1JJRF9NRU06On5TQU1fUklEX01FTSh2b2lkKSBfX3B0cjY0DQorPz8xU0FNX1JJRF9NRU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTQU1fU0VSVkVSOjp+U0FNX1NFUlZFUih2b2lkKSBfX3B0cjY0DQorPz8xU0FNX1NFUlZFUkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNBTV9TSURfTUVNOjp+U0FNX1NJRF9NRU0odm9pZCkgX19wdHI2NA0KKz8/MVNBTV9TSURfTUVNQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0FNX1NJRF9OQU1FX1VTRV9NRU06On5TQU1fU0lEX05BTUVfVVNFX01FTSh2b2lkKSBfX3B0cjY0DQorPz8xU0FNX1NJRF9OQU1FX1VTRV9NRU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTQU1fVVNFUjo6flNBTV9VU0VSKHZvaWQpIF9fcHRyNjQNCis/PzFTQU1fVVNFUkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNBTV9VU0VSX0VOVU06On5TQU1fVVNFUl9FTlVNKHZvaWQpIF9fcHRyNjQNCis/PzFTQU1fVVNFUl9FTlVNQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0FNX1VTRVJfRU5VTV9JVEVSOjp+U0FNX1VTRVJfRU5VTV9JVEVSKHZvaWQpIF9fcHRyNjQNCis/PzFTQU1fVVNFUl9FTlVNX0lURVJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTQU1fVVNFUl9FTlVNX09CSjo6flNBTV9VU0VSX0VOVU1fT0JKKHZvaWQpIF9fcHRyNjQNCis/PzFTQU1fVVNFUl9FTlVNX09CSkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNDX01BTkFHRVI6On5TQ19NQU5BR0VSKHZvaWQpIF9fcHRyNjQNCis/PzFTQ19NQU5BR0VSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0NfU0VSVklDRTo6flNDX1NFUlZJQ0Uodm9pZCkgX19wdHI2NA0KKz8/MVNDX1NFUlZJQ0VAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTRVJWRVIxX0VOVU06On5TRVJWRVIxX0VOVU0odm9pZCkgX19wdHI2NA0KKz8/MVNFUlZFUjFfRU5VTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNFUlZFUjFfRU5VTV9JVEVSOjp+U0VSVkVSMV9FTlVNX0lURVIodm9pZCkgX19wdHI2NA0KKz8/MVNFUlZFUjFfRU5VTV9JVEVSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0VSVkVSMV9FTlVNX09CSjo6flNFUlZFUjFfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MVNFUlZFUjFfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTRVJWRVJfMDo6flNFUlZFUl8wKHZvaWQpIF9fcHRyNjQNCis/PzFTRVJWRVJfMEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNFUlZFUl8xOjp+U0VSVkVSXzEodm9pZCkgX19wdHI2NA0KKz8/MVNFUlZFUl8xQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0VSVkVSXzI6On5TRVJWRVJfMih2b2lkKSBfX3B0cjY0DQorPz8xU0VSVkVSXzJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTRVJWRVJfRU5VTTo6flNFUlZFUl9FTlVNKHZvaWQpIF9fcHRyNjQNCis/PzFTRVJWRVJfRU5VTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNFUlZJQ0VfQ09OVFJPTDo6flNFUlZJQ0VfQ09OVFJPTCh2b2lkKSBfX3B0cjY0DQorPz8xU0VSVklDRV9DT05UUk9MQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0VSVklDRV9FTlVNOjp+U0VSVklDRV9FTlVNKHZvaWQpIF9fcHRyNjQNCis/PzFTRVJWSUNFX0VOVU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTRVJWSUNFX0VOVU1fT0JKOjp+U0VSVklDRV9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8xU0VSVklDRV9FTlVNX09CSkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNFU1NJT04wX0VOVU06On5TRVNTSU9OMF9FTlVNKHZvaWQpIF9fcHRyNjQNCis/PzFTRVNTSU9OMF9FTlVNQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0VTU0lPTjBfRU5VTV9JVEVSOjp+U0VTU0lPTjBfRU5VTV9JVEVSKHZvaWQpIF9fcHRyNjQNCis/PzFTRVNTSU9OMF9FTlVNX0lURVJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTRVNTSU9OMF9FTlVNX09CSjo6flNFU1NJT04wX0VOVU1fT0JKKHZvaWQpIF9fcHRyNjQNCis/PzFTRVNTSU9OMF9FTlVNX09CSkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNFU1NJT04xX0VOVU1fT0JKOjp+U0VTU0lPTjFfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MVNFU1NJT04xX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0VTU0lPTl9FTlVNOjp+U0VTU0lPTl9FTlVNKHZvaWQpIF9fcHRyNjQNCis/PzFTRVNTSU9OX0VOVU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTSEFSRTFfRU5VTV9PQko6On5TSEFSRTFfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MVNIQVJFMV9FTlVNX09CSkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNIQVJFMl9FTlVNX09CSjo6flNIQVJFMl9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8xU0hBUkUyX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0hBUkU6On5TSEFSRSh2b2lkKSBfX3B0cjY0DQorPz8xU0hBUkVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTSEFSRV8xOjp+U0hBUkVfMSh2b2lkKSBfX3B0cjY0DQorPz8xU0hBUkVfMUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNIQVJFXzI6On5TSEFSRV8yKHZvaWQpIF9fcHRyNjQNCis/PzFTSEFSRV8yQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0hBUkVfRU5VTTo6flNIQVJFX0VOVU0odm9pZCkgX19wdHI2NA0KKz8/MVNIQVJFX0VOVU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTTElTVF9PRl9BRE1JTl9BVVRIT1JJVFk6On5TTElTVF9PRl9BRE1JTl9BVVRIT1JJVFkodm9pZCkgX19wdHI2NA0KKz8/MVNMSVNUX09GX0FETUlOX0FVVEhPUklUWUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNMSVNUX09GX0FQSV9TRVNTSU9OOjp+U0xJU1RfT0ZfQVBJX1NFU1NJT04odm9pZCkgX19wdHI2NA0KKz8/MVNMSVNUX09GX0FQSV9TRVNTSU9OQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0xJU1RfT0ZfQlJPV1NFX0RPTUFJTl9JTkZPOjp+U0xJU1RfT0ZfQlJPV1NFX0RPTUFJTl9JTkZPKHZvaWQpIF9fcHRyNjQNCis/PzFTTElTVF9PRl9CUk9XU0VfRE9NQUlOX0lORk9AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTTElTVF9PRl9MTV9SRVNVTUVfQlVGRkVSOjp+U0xJU1RfT0ZfTE1fUkVTVU1FX0JVRkZFUih2b2lkKSBfX3B0cjY0DQorPz8xU0xJU1RfT0ZfTE1fUkVTVU1FX0JVRkZFUkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFRJTUVfT0ZfREFZOjp+VElNRV9PRl9EQVkodm9pZCkgX19wdHI2NA0KKz8/MVRJTUVfT0ZfREFZQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVFJJUExFX1NFUlZFUl9FTlVNOjp+VFJJUExFX1NFUlZFUl9FTlVNKHZvaWQpIF9fcHRyNjQNCis/PzFUUklQTEVfU0VSVkVSX0VOVU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBUUklQTEVfU0VSVkVSX0VOVU1fT0JKOjp+VFJJUExFX1NFUlZFUl9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8xVFJJUExFX1NFUlZFUl9FTlVNX09CSkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFRSVVNURURfRE9NQUlOX0VOVU06On5UUlVTVEVEX0RPTUFJTl9FTlVNKHZvaWQpIF9fcHRyNjQNCis/PzFUUlVTVEVEX0RPTUFJTl9FTlVNQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVFJVU1RFRF9ET01BSU5fRU5VTV9PQko6On5UUlVTVEVEX0RPTUFJTl9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8xVFJVU1RFRF9ET01BSU5fRU5VTV9PQkpAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0UxX0VOVU1fT0JKOjp+VVNFMV9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8xVVNFMV9FTlVNX09CSkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFVTRVIwX0VOVU06On5VU0VSMF9FTlVNKHZvaWQpIF9fcHRyNjQNCis/PzFVU0VSMF9FTlVNQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUjBfRU5VTV9JVEVSOjp+VVNFUjBfRU5VTV9JVEVSKHZvaWQpIF9fcHRyNjQNCis/PzFVU0VSMF9FTlVNX0lURVJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0VSMF9FTlVNX09CSjo6flVTRVIwX0VOVU1fT0JKKHZvaWQpIF9fcHRyNjQNCis/PzFVU0VSMF9FTlVNX09CSkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFVTRVIxMF9FTlVNX09CSjo6flVTRVIxMF9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8xVVNFUjEwX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUjFfRU5VTV9PQko6On5VU0VSMV9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8xVVNFUjFfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0VSMl9FTlVNX09CSjo6flVTRVIyX0VOVU1fT0JKKHZvaWQpIF9fcHRyNjQNCis/PzFVU0VSMl9FTlVNX09CSkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFVTRVI6On5VU0VSKHZvaWQpIF9fcHRyNjQNCis/PzFVU0VSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUl8xMTo6flVTRVJfMTEodm9pZCkgX19wdHI2NA0KKz8/MVVTRVJfMTFAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFVTRVJfMjo6flVTRVJfMih2b2lkKSBfX3B0cjY0DQorPz8xVVNFUl8yQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBVU0VSXzM6On5VU0VSXzModm9pZCkgX19wdHI2NA0KKz8/MVVTRVJfM0BAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFVTRVJfRU5VTTo6flVTRVJfRU5VTSh2b2lkKSBfX3B0cjY0DQorPz8xVVNFUl9FTlVNQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUl9NRU1COjp+VVNFUl9NRU1CKHZvaWQpIF9fcHRyNjQNCis/PzFVU0VSX01FTUJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0VfRU5VTTo6flVTRV9FTlVNKHZvaWQpIF9fcHRyNjQNCis/PzFVU0VfRU5VTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFdLU1RBXzEwOjp+V0tTVEFfMTAodm9pZCkgX19wdHI2NA0KKz8/MVdLU1RBXzEwQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgV0tTVEFfMTo6fldLU1RBXzEodm9pZCkgX19wdHI2NA0KKz8/MVdLU1RBXzFAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBXS1NUQV9VU0VSXzE6On5XS1NUQV9VU0VSXzEodm9pZCkgX19wdHI2NA0KKz8/MVdLU1RBX1VTRVJfMUBAUUVBQUBYWg0KKzsgcHVibGljOiBjbGFzcyBBTExPQ19TVFIgJiBfX3B0cjY0IF9fY2RlY2wgQUxMT0NfU1RSOjpvcGVyYXRvcj0oY2xhc3MgQUxMT0NfU1RSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NEFMTE9DX1NUUkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIEFMTE9DX1NUUiAmIF9fcHRyNjQgX19jZGVjbCBBTExPQ19TVFI6Om9wZXJhdG9yPSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRBTExPQ19TVFJAQFFFQUFBRUFWMEBQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQkFTRTo6b3BlcmF0b3IhKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/PzdCQVNFQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9TX0xVSUQ6Om9wZXJhdG9yPT0oY2xhc3MgT1NfTFVJRCBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzhPU19MVUlEQEBRRUJBSEFFQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9TX1NJRDo6b3BlcmF0b3I9PShjbGFzcyBPU19TSUQgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz84T1NfU0lEQEBRRUJBSEFFQlYwQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBfVU5JQ09ERV9TVFJJTkcgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTFNBX1RSVVNURURfRENfTElTVDo6b3BlcmF0b3JbXShpbnQpY29uc3QgIF9fcHRyNjQNCis/P0FMU0FfVFJVU1RFRF9EQ19MSVNUQEBRRUJBQUVCVV9VTklDT0RFX1NUUklOR0BASEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE5MU19TVFI6Om9wZXJhdG9yW10oY2xhc3MgSVNUUiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/P0FOTFNfU1RSQEBRRUJBUEVCR0FFQlZJU1RSQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE5MU19TVFI6Om9wZXJhdG9yIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CTkxTX1NUUkBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBfX2NkZWNsIE9TX0FDTDo6b3BlcmF0b3Igc3RydWN0IF9BQ0wgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JPU19BQ0xAQFFFQkFQRUFVX0FDTEBAWFoNCis7IHB1YmxpYzogX19jZGVjbCBPU19TSUQ6Om9wZXJhdG9yIHZvaWQgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JPU19TSURAQFFFQkFQRUFYWFoNCis7IHB1YmxpYzogY2xhc3MgQ0hBUkRFVlExX0VOVU1fT0JKIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENIQVJERVZRMV9FTlVNX0lURVI6Om9wZXJhdG9yKCkodm9pZCkgX19wdHI2NA0KKz8/UkNIQVJERVZRMV9FTlVNX0lURVJAQFFFQUFQRUJWQ0hBUkRFVlExX0VOVU1fT0JKQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDT05OMF9FTlVNX09CSiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDT05OMF9FTlVNX0lURVI6Om9wZXJhdG9yKCkodm9pZCkgX19wdHI2NA0KKz8/UkNPTk4wX0VOVU1fSVRFUkBAUUVBQVBFQlZDT05OMF9FTlVNX09CSkBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ09OTjFfRU5VTV9PQkogY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ09OTjFfRU5VTV9JVEVSOjpvcGVyYXRvcigpKHZvaWQpIF9fcHRyNjQNCis/P1JDT05OMV9FTlVNX0lURVJAQFFFQUFQRUJWQ09OTjFfRU5VTV9PQkpAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENPTlRFWFRfRU5VTV9PQkogY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ09OVEVYVF9FTlVNX0lURVI6Om9wZXJhdG9yKCkodm9pZCkgX19wdHI2NA0KKz8/UkNPTlRFWFRfRU5VTV9JVEVSQEBRRUFBUEVCVkNPTlRFWFRfRU5VTV9PQkpAQFhaDQorOyBwdWJsaWM6IGNsYXNzIERPTUFJTjBfRU5VTV9PQkogY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgRE9NQUlOMF9FTlVNX0lURVI6Om9wZXJhdG9yKCkodm9pZCkgX19wdHI2NA0KKz8/UkRPTUFJTjBfRU5VTV9JVEVSQEBRRUFBUEVCVkRPTUFJTjBfRU5VTV9PQkpAQFhaDQorOyBwdWJsaWM6IGNsYXNzIEZJTEUzX0VOVU1fT0JKIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEZJTEUzX0VOVU1fSVRFUjo6b3BlcmF0b3IoKShsb25nICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/P1JGSUxFM19FTlVNX0lURVJAQFFFQUFQRUJWRklMRTNfRU5VTV9PQkpAQFBFQUpIQFoNCis7IHB1YmxpYzogY2xhc3MgR1JPVVAwX0VOVU1fT0JKIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEdST1VQMF9FTlVNX0lURVI6Om9wZXJhdG9yKCkodm9pZCkgX19wdHI2NA0KKz8/UkdST1VQMF9FTlVNX0lURVJAQFFFQUFQRUJWR1JPVVAwX0VOVU1fT0JKQEBYWg0KKzsgcHVibGljOiBjbGFzcyBHUk9VUDFfRU5VTV9PQkogY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgR1JPVVAxX0VOVU1fSVRFUjo6b3BlcmF0b3IoKSh2b2lkKSBfX3B0cjY0DQorPz9SR1JPVVAxX0VOVU1fSVRFUkBAUUVBQVBFQlZHUk9VUDFfRU5VTV9PQkpAQFhaDQorOyBwdWJsaWM6IGNsYXNzIE9TX0xVSURfQU5EX0FUVFJJQlVURVMgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTFNBX0FDQ09VTlRfUFJJVklMRUdFX0VOVU1fSVRFUjo6b3BlcmF0b3IoKSh2b2lkKSBfX3B0cjY0DQorPz9STFNBX0FDQ09VTlRfUFJJVklMRUdFX0VOVU1fSVRFUkBAUUVBQVBFQlZPU19MVUlEX0FORF9BVFRSSUJVVEVTQEBYWg0KKzsgcHVibGljOiBjbGFzcyBOVF9NQUNISU5FX0VOVU1fT0JKIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE5UX01BQ0hJTkVfRU5VTV9JVEVSOjpvcGVyYXRvcigpKGxvbmcgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/Uk5UX01BQ0hJTkVfRU5VTV9JVEVSQEBRRUFBUEVCVk5UX01BQ0hJTkVfRU5VTV9PQkpAQFBFQUpIQFoNCis7IHB1YmxpYzogY2xhc3MgU0VSVkVSMV9FTlVNX09CSiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBTRVJWRVIxX0VOVU1fSVRFUjo6b3BlcmF0b3IoKSh2b2lkKSBfX3B0cjY0DQorPz9SU0VSVkVSMV9FTlVNX0lURVJAQFFFQUFQRUJWU0VSVkVSMV9FTlVNX09CSkBAWFoNCis7IHB1YmxpYzogY2xhc3MgU0VSVklDRV9FTlVNX09CSiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBTRVJWSUNFX0VOVU1fSVRFUjo6b3BlcmF0b3IoKSh2b2lkKSBfX3B0cjY0DQorPz9SU0VSVklDRV9FTlVNX0lURVJAQFFFQUFQRUJWU0VSVklDRV9FTlVNX09CSkBAWFoNCis7IHB1YmxpYzogY2xhc3MgU0VTU0lPTjBfRU5VTV9PQkogY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgU0VTU0lPTjBfRU5VTV9JVEVSOjpvcGVyYXRvcigpKHZvaWQpIF9fcHRyNjQNCis/P1JTRVNTSU9OMF9FTlVNX0lURVJAQFFFQUFQRUJWU0VTU0lPTjBfRU5VTV9PQkpAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFNFU1NJT04xX0VOVU1fT0JKIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFNFU1NJT04xX0VOVU1fSVRFUjo6b3BlcmF0b3IoKSh2b2lkKSBfX3B0cjY0DQorPz9SU0VTU0lPTjFfRU5VTV9JVEVSQEBRRUFBUEVCVlNFU1NJT04xX0VOVU1fT0JKQEBYWg0KKzsgcHVibGljOiBjbGFzcyBTSEFSRTFfRU5VTV9PQkogY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgU0hBUkUxX0VOVU1fSVRFUjo6b3BlcmF0b3IoKSh2b2lkKSBfX3B0cjY0DQorPz9SU0hBUkUxX0VOVU1fSVRFUkBAUUVBQVBFQlZTSEFSRTFfRU5VTV9PQkpAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFNIQVJFMl9FTlVNX09CSiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBTSEFSRTJfRU5VTV9JVEVSOjpvcGVyYXRvcigpKHZvaWQpIF9fcHRyNjQNCis/P1JTSEFSRTJfRU5VTV9JVEVSQEBRRUFBUEVCVlNIQVJFMl9FTlVNX09CSkBAWFoNCis7IHB1YmxpYzogY2xhc3MgVFJJUExFX1NFUlZFUl9FTlVNX09CSiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBUUklQTEVfU0VSVkVSX0VOVU1fSVRFUjo6b3BlcmF0b3IoKSh2b2lkKSBfX3B0cjY0DQorPz9SVFJJUExFX1NFUlZFUl9FTlVNX0lURVJAQFFFQUFQRUJWVFJJUExFX1NFUlZFUl9FTlVNX09CSkBAWFoNCis7IHB1YmxpYzogY2xhc3MgVVNFMV9FTlVNX09CSiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBVU0UxX0VOVU1fSVRFUjo6b3BlcmF0b3IoKSh2b2lkKSBfX3B0cjY0DQorPz9SVVNFMV9FTlVNX0lURVJAQFFFQUFQRUJWVVNFMV9FTlVNX09CSkBAWFoNCis7IHB1YmxpYzogY2xhc3MgVVNFUjBfRU5VTV9PQkogY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUjBfRU5VTV9JVEVSOjpvcGVyYXRvcigpKGxvbmcgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/UlVTRVIwX0VOVU1fSVRFUkBAUUVBQVBFQlZVU0VSMF9FTlVNX09CSkBAUEVBSkhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0xJU1RfT0ZfTkxTX1NUUjo6QWRkKGNsYXNzIE5MU19TVFIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEBTTElTVF9PRl9OTFNfU1RSQEBRRUFBSlBFQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfQUNMOjpBZGRBQ0UodW5zaWduZWQgbG9uZyxjbGFzcyBPU19BQ0UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEFDRUBPU19BQ0xAQFFFQUFKS0FFQlZPU19BQ0VAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBNRU1CRVJTSElQX0xNX09CSjo6QWRkQXNzb2NOYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRBc3NvY05hbWVATUVNQkVSU0hJUF9MTV9PQkpAQFFFQUFKUEVCR0BaDQorOyBwcml2YXRlOiBzdGF0aWMgbG9uZyBfX2NkZWNsIERPTUFJTl9XSVRIX0RDX0NBQ0hFOjpBZGREY0NhY2hlKHN0cnVjdCBfRENfQ0FDSEVfRU5UUlkgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9BZGREY0NhY2hlQERPTUFJTl9XSVRIX0RDX0NBQ0hFQEBDQUpQRUFQRUFVX0RDX0NBQ0hFX0VOVFJZQEBQRUJHMUBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQlJPV1NFX0RPTUFJTl9JTkZPOjpBZGREb21haW5Tb3VyY2UodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BZGREb21haW5Tb3VyY2VAQlJPV1NFX0RPTUFJTl9JTkZPQEBBRUFBWEtAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIEJST1dTRV9ET01BSU5fRU5VTTo6QWRkRG9tYWluVG9MaXN0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz9BZGREb21haW5Ub0xpc3RAQlJPV1NFX0RPTUFJTl9FTlVNQEBBRUFBSlBFQkdLSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTQU1fQUxJQVM6OkFkZE1lbWJlcih2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRNZW1iZXJAU0FNX0FMSUFTQEBRRUFBSlBFQVhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0FNX0dST1VQOjpBZGRNZW1iZXIodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BZGRNZW1iZXJAU0FNX0dST1VQQEBRRUFBSktAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0FNX0FMSUFTOjpBZGRNZW1iZXJzKHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/QWRkTWVtYmVyc0BTQU1fQUxJQVNAQFFFQUFKUEVBUEVBWElAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0FNX0dST1VQOjpBZGRNZW1iZXJzKHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9BZGRNZW1iZXJzQFNBTV9HUk9VUEBAUUVBQUpQRUFLSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBPU19QUklWSUxFR0VfU0VUOjpBZGRQcml2aWxlZ2Uoc3RydWN0IF9MVUlELHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QWRkUHJpdmlsZWdlQE9TX1BSSVZJTEVHRV9TRVRAQFFFQUFKVV9MVUlEQEBLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNMSVNUX09GX0FETUlOX0FVVEhPUklUWTo6QXBwZW5kKGNsYXNzIEFETUlOX0FVVEhPUklUWSBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNMSVNUX09GX0FETUlOX0FVVEhPUklUWUBAUUVBQUpQRUJWQURNSU5fQVVUSE9SSVRZQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0xJU1RfT0ZfQVBJX1NFU1NJT046OkFwcGVuZChjbGFzcyBBUElfU0VTU0lPTiBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNMSVNUX09GX0FQSV9TRVNTSU9OQEBRRUFBSlBFQlZBUElfU0VTU0lPTkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNMSVNUX09GX0JST1dTRV9ET01BSU5fSU5GTzo6QXBwZW5kKGNsYXNzIEJST1dTRV9ET01BSU5fSU5GTyBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNMSVNUX09GX0JST1dTRV9ET01BSU5fSU5GT0BAUUVBQUpQRUJWQlJPV1NFX0RPTUFJTl9JTkZPQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0xJU1RfT0ZfTE1fUkVTVU1FX0JVRkZFUjo6QXBwZW5kKGNsYXNzIExNX1JFU1VNRV9CVUZGRVIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FwcGVuZEBTTElTVF9PRl9MTV9SRVNVTUVfQlVGRkVSQEBRRUFBSlBFQlZMTV9SRVNVTUVfQlVGRkVSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0xJU1RfT0ZfTkxTX1NUUjo6QXBwZW5kKGNsYXNzIE5MU19TVFIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FwcGVuZEBTTElTVF9PRl9OTFNfU1RSQEBRRUFBSlBFQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSEFSREVWUTFfRU5VTV9JVEVSOjpCYWNrdXAodm9pZCkgX19wdHI2NA0KKz9CYWNrdXBAQ0hBUkRFVlExX0VOVU1fSVRFUkBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDT05OMF9FTlVNX0lURVI6OkJhY2t1cCh2b2lkKSBfX3B0cjY0DQorP0JhY2t1cEBDT05OMF9FTlVNX0lURVJAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ09OTjFfRU5VTV9JVEVSOjpCYWNrdXAodm9pZCkgX19wdHI2NA0KKz9CYWNrdXBAQ09OTjFfRU5VTV9JVEVSQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENPTlRFWFRfRU5VTV9JVEVSOjpCYWNrdXAodm9pZCkgX19wdHI2NA0KKz9CYWNrdXBAQ09OVEVYVF9FTlVNX0lURVJAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgRE9NQUlOMF9FTlVNX0lURVI6OkJhY2t1cCh2b2lkKSBfX3B0cjY0DQorP0JhY2t1cEBET01BSU4wX0VOVU1fSVRFUkBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBHUk9VUDBfRU5VTV9JVEVSOjpCYWNrdXAodm9pZCkgX19wdHI2NA0KKz9CYWNrdXBAR1JPVVAwX0VOVU1fSVRFUkBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBHUk9VUDFfRU5VTV9JVEVSOjpCYWNrdXAodm9pZCkgX19wdHI2NA0KKz9CYWNrdXBAR1JPVVAxX0VOVU1fSVRFUkBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTRVJWRVIxX0VOVU1fSVRFUjo6QmFja3VwKHZvaWQpIF9fcHRyNjQNCis/QmFja3VwQFNFUlZFUjFfRU5VTV9JVEVSQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNFUlZJQ0VfRU5VTV9JVEVSOjpCYWNrdXAodm9pZCkgX19wdHI2NA0KKz9CYWNrdXBAU0VSVklDRV9FTlVNX0lURVJAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU0VTU0lPTjBfRU5VTV9JVEVSOjpCYWNrdXAodm9pZCkgX19wdHI2NA0KKz9CYWNrdXBAU0VTU0lPTjBfRU5VTV9JVEVSQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNFU1NJT04xX0VOVU1fSVRFUjo6QmFja3VwKHZvaWQpIF9fcHRyNjQNCis/QmFja3VwQFNFU1NJT04xX0VOVU1fSVRFUkBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTSEFSRTFfRU5VTV9JVEVSOjpCYWNrdXAodm9pZCkgX19wdHI2NA0KKz9CYWNrdXBAU0hBUkUxX0VOVU1fSVRFUkBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTSEFSRTJfRU5VTV9JVEVSOjpCYWNrdXAodm9pZCkgX19wdHI2NA0KKz9CYWNrdXBAU0hBUkUyX0VOVU1fSVRFUkBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUUklQTEVfU0VSVkVSX0VOVU1fSVRFUjo6QmFja3VwKHZvaWQpIF9fcHRyNjQNCis/QmFja3VwQFRSSVBMRV9TRVJWRVJfRU5VTV9JVEVSQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFVTRTFfRU5VTV9JVEVSOjpCYWNrdXAodm9pZCkgX19wdHI2NA0KKz9CYWNrdXBAVVNFMV9FTlVNX0lURVJAQFFFQUFIWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBOVF9BQ0NPVU5UU19VVElMSVRZOjpCdWlsZEFuZENvcHlTeXNTaWQoY2xhc3MgT1NfU0lEICogX19wdHI2NCxzdHJ1Y3QgX1NJRF9JREVOVElGSUVSX0FVVEhPUklUWSAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0J1aWxkQW5kQ29weVN5c1NpZEBOVF9BQ0NPVU5UU19VVElMSVRZQEBTQUpQRUFWT1NfU0lEQEBQRUFVX1NJRF9JREVOVElGSUVSX0FVVEhPUklUWUBARUtLS0tLS0tLQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBOVF9BQ0NPVU5UU19VVElMSVRZOjpCdWlsZFF1YWxpZmllZEFjY291bnROYW1lKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgY29uc3QgKiBfX3B0cjY0LGVudW0gX1NJRF9OQU1FX1VTRSkNCis/QnVpbGRRdWFsaWZpZWRBY2NvdW50TmFtZUBOVF9BQ0NPVU5UU19VVElMSVRZQEBTQUpQRUFWTkxTX1NUUkBAQUVCVjJAMVBFQlYyQDJXNF9TSURfTkFNRV9VU0VAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgTlRfQUNDT1VOVFNfVVRJTElUWTo6QnVpbGRRdWFsaWZpZWRBY2NvdW50TmFtZShjbGFzcyBOTFNfU1RSICogX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCx2b2lkICogX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCxlbnVtIF9TSURfTkFNRV9VU0UpDQorP0J1aWxkUXVhbGlmaWVkQWNjb3VudE5hbWVATlRfQUNDT1VOVFNfVVRJTElUWUBAU0FKUEVBVk5MU19TVFJAQEFFQlYyQFBFQVgxUEVCVjJAMlc0X1NJRF9OQU1FX1VTRUBAQFoNCis7IHByaXZhdGU6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIEFMSUFTX0VOVU06OkNhbGxBUEkoaW50LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NhbGxBUElAQUxJQVNfRU5VTUBARUVBQUpIUEVBUEVBRVBFQUlAWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0hBUkRFVlFfRU5VTTo6Q2FsbEFQSSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9DYWxsQVBJQENIQVJERVZRX0VOVU1AQEVFQUFKUEVBUEVBRVBFQUlAWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBsb25nIF9fY2RlY2wgQ09OTl9FTlVNOjpDYWxsQVBJKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NhbGxBUElAQ09OTl9FTlVNQEBFRUFBSlBFQVBFQUVQRUFJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgQ09OVEVYVF9FTlVNOjpDYWxsQVBJKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NhbGxBUElAQ09OVEVYVF9FTlVNQEBNRUFBSlBFQVBFQUVQRUFJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgREVWSUNFMjo6Q2FsbEFQSSh2b2lkKSBfX3B0cjY0DQorP0NhbGxBUElAREVWSUNFMkBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBERVZJQ0U6OkNhbGxBUEkodm9pZCkgX19wdHI2NA0KKz9DYWxsQVBJQERFVklDRUBATUVBQUpYWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBsb25nIF9fY2RlY2wgRE9NQUlOX0VOVU06OkNhbGxBUEkodW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2FsbEFQSUBET01BSU5fRU5VTUBARUVBQUpQRUFQRUFFUEVBSUBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBGSUxFX0VOVU06OkNhbGxBUEkoaW50LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NhbGxBUElARklMRV9FTlVNQEBFRUFBSkhQRUFQRUFFUEVBSUBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBHUk9VUF9FTlVNOjpDYWxsQVBJKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NhbGxBUElAR1JPVVBfRU5VTUBARUVBQUpQRUFQRUFFUEVBSUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIEdST1VQX01FTUI6OkNhbGxBUEkodW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2FsbEFQSUBHUk9VUF9NRU1CQEBNRUFBSlBFQVBFQUVQRUFJQFoNCis7IHByaXZhdGU6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIExTQV9BQ0NPVU5UU19FTlVNOjpDYWxsQVBJKGludCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9DYWxsQVBJQExTQV9BQ0NPVU5UU19FTlVNQEBFRUFBSkhQRUFQRUFFUEVBSUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIExTQV9QUklWSUxFR0VTX0VOVU06OkNhbGxBUEkoaW50LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NhbGxBUElATFNBX1BSSVZJTEVHRVNfRU5VTUBATUVBQUpIUEVBUEVBRVBFQUlAWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBsb25nIF9fY2RlY2wgTlRfQUNDT1VOVF9FTlVNOjpDYWxsQVBJKGludCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9DYWxsQVBJQE5UX0FDQ09VTlRfRU5VTUBARUVBQUpIUEVBUEVBRVBFQUlAWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBsb25nIF9fY2RlY2wgU0FNX1VTRVJfRU5VTTo6Q2FsbEFQSShpbnQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2FsbEFQSUBTQU1fVVNFUl9FTlVNQEBFRUFBSkhQRUFQRUFFUEVBSUBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBTRVJWRVJfRU5VTTo6Q2FsbEFQSSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9DYWxsQVBJQFNFUlZFUl9FTlVNQEBFRUFBSlBFQVBFQUVQRUFJQFoNCis7IHByaXZhdGU6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFNFUlZJQ0VfRU5VTTo6Q2FsbEFQSSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9DYWxsQVBJQFNFUlZJQ0VfRU5VTUBARUVBQUpQRUFQRUFFUEVBSUBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBTRVNTSU9OX0VOVU06OkNhbGxBUEkodW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2FsbEFQSUBTRVNTSU9OX0VOVU1AQEVFQUFKUEVBUEVBRVBFQUlAWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBsb25nIF9fY2RlY2wgU0hBUkVfRU5VTTo6Q2FsbEFQSSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9DYWxsQVBJQFNIQVJFX0VOVU1AQEVFQUFKUEVBUEVBRVBFQUlAWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBsb25nIF9fY2RlY2wgVFJJUExFX1NFUlZFUl9FTlVNOjpDYWxsQVBJKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NhbGxBUElAVFJJUExFX1NFUlZFUl9FTlVNQEBFRUFBSlBFQVBFQUVQRUFJQFoNCis7IHByaXZhdGU6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFRSVVNURURfRE9NQUlOX0VOVU06OkNhbGxBUEkoaW50LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NhbGxBUElAVFJVU1RFRF9ET01BSU5fRU5VTUBARUVBQUpIUEVBUEVBRVBFQUlAWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBsb25nIF9fY2RlY2wgVVNFUl9FTlVNOjpDYWxsQVBJKGludCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9DYWxsQVBJQFVTRVJfRU5VTUBARUVBQUpIUEVBUEVBRVBFQUlAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBVU0VSX01FTUI6OkNhbGxBUEkodW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2FsbEFQSUBVU0VSX01FTUJAQE1FQUFKUEVBUEVBRVBFQUlAWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBsb25nIF9fY2RlY2wgVVNFX0VOVU06OkNhbGxBUEkodW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2FsbEFQSUBVU0VfRU5VTUBARUVBQUpQRUFQRUFFUEVBSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTQ19TRVJWSUNFOjpDaGFuZ2VDb25maWcodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2hhbmdlQ29uZmlnQFNDX1NFUlZJQ0VAQFFFQUFKSUlJUEVCRzAwMDAwQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5FV19MTV9PQko6OkNoYW5nZVRvTmV3KHZvaWQpIF9fcHRyNjQNCis/Q2hhbmdlVG9OZXdATkVXX0xNX09CSkBAUUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTE9DQVRJT046OkNoZWNrSWZOVChpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoZWNrSWZOVEBMT0NBVElPTkBAUUVBQUpQRUFIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExPQ0FUSU9OOjpDaGVja0lmTlQoaW50ICogX19wdHI2NCxlbnVtIExPQ0FUSU9OX05UX1RZUEUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoZWNrSWZOVEBMT0NBVElPTkBAUUVBQUpQRUFIUEVBVzRMT0NBVElPTl9OVF9UWVBFQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1BPTElDWTo6Q2hlY2tJZlNodXREb3duT25GdWxsKGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2hlY2tJZlNodXREb3duT25GdWxsQExTQV9QT0xJQ1lAQFFFQUFKUEVBSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBMU0FfUE9MSUNZOjpDbGVhbnVwVW5pc3RyQXJyYXkoc3RydWN0IF9VTklDT0RFX1NUUklORyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9DbGVhbnVwVW5pc3RyQXJyYXlATFNBX1BPTElDWUBASUVBQVhQRUFVX1VOSUNPREVfU1RSSU5HQEBLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE9TX1BSSVZJTEVHRV9TRVQ6OkNsZWFyKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJAT1NfUFJJVklMRUdFX1NFVEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU0xJU1RfT0ZfQURNSU5fQVVUSE9SSVRZOjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQFNMSVNUX09GX0FETUlOX0FVVEhPUklUWUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU0xJU1RfT0ZfQVBJX1NFU1NJT046OkNsZWFyKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJAU0xJU1RfT0ZfQVBJX1NFU1NJT05AQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNMSVNUX09GX0JST1dTRV9ET01BSU5fSU5GTzo6Q2xlYXIodm9pZCkgX19wdHI2NA0KKz9DbGVhckBTTElTVF9PRl9CUk9XU0VfRE9NQUlOX0lORk9AQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNMSVNUX09GX0xNX1JFU1VNRV9CVUZGRVI6OkNsZWFyKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJAU0xJU1RfT0ZfTE1fUkVTVU1FX0JVRkZFUkBAUUVBQVhYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgTkVXX0xNX09CSjo6Q2xlYXJCdWZmZXIodm9pZCkgX19wdHI2NA0KKz9DbGVhckJ1ZmZlckBORVdfTE1fT0JKQEBJRUFBSlhaDQorOyBwcml2YXRlOiBzdGF0aWMgbG9uZyBfX2NkZWNsIERPTUFJTl9XSVRIX0RDX0NBQ0hFOjpDbGVhckRjQ2FjaGUoc3RydWN0IF9EQ19DQUNIRV9FTlRSWSAqIF9fcHRyNjQpDQorP0NsZWFyRGNDYWNoZUBET01BSU5fV0lUSF9EQ19DQUNIRUBAQ0FKUEVBVV9EQ19DQUNIRV9FTlRSWUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5FVF9BQ0NFU1NfMTo6Q2xlYXJQZXJtcyh2b2lkKSBfX3B0cjY0DQorP0NsZWFyUGVybXNATkVUX0FDQ0VTU18xQEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBHUk9VUF8xOjpDbG9uZUZyb20oY2xhc3MgR1JPVVBfMSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2xvbmVGcm9tQEdST1VQXzFAQFFFQUFKQUVCVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEdST1VQX01FTUI6OkNsb25lRnJvbShjbGFzcyBHUk9VUF9NRU1CIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9DbG9uZUZyb21AR1JPVVBfTUVNQkBAUUVBQUpBRUJWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0hBUkVfMTo6Q2xvbmVGcm9tKGNsYXNzIFNIQVJFXzEgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0Nsb25lRnJvbUBTSEFSRV8xQEBRRUFBSkFFQlYxQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTSEFSRV8yOjpDbG9uZUZyb20oY2xhc3MgU0hBUkVfMiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2xvbmVGcm9tQFNIQVJFXzJAQFFFQUFKQUVCVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFVTRVJfMjo6Q2xvbmVGcm9tKGNsYXNzIFVTRVJfMiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2xvbmVGcm9tQFVTRVJfMkBAUUVBQUpBRUJWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVVNFUl8zOjpDbG9uZUZyb20oY2xhc3MgVVNFUl8zIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9DbG9uZUZyb21AVVNFUl8zQEBRRUFBSkFFQlYxQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBVU0VSX01FTUI6OkNsb25lRnJvbShjbGFzcyBVU0VSX01FTUIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0Nsb25lRnJvbUBVU0VSX01FTUJAQFFFQUFKQUVCVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNFUlZJQ0VfQ09OVFJPTDo6Q2xvc2Uodm9pZCkgX19wdHI2NA0KKz9DbG9zZUBTRVJWSUNFX0NPTlRST0xAQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExNX0ZJTEU6OkNsb3NlRmlsZSh2b2lkKSBfX3B0cjY0DQorP0Nsb3NlRmlsZUBMTV9GSUxFQEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMU0FfT0JKRUNUOjpDbG9zZUhhbmRsZShpbnQpIF9fcHRyNjQNCis/Q2xvc2VIYW5kbGVATFNBX09CSkVDVEBAUUVBQUpIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNBTV9PQkpFQ1Q6OkNsb3NlSGFuZGxlKHZvaWQpIF9fcHRyNjQNCis/Q2xvc2VIYW5kbGVAU0FNX09CSkVDVEBAUUVBQUpYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFRSSVBMRV9TRVJWRVJfRU5VTTo6Q29tYmluZUludG9UcmlwbGUoc3RydWN0IF9TRVJWRVJfSU5GT18xMDEgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBfS05PV05fU0VSVkVSX0lORk8gY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBfVFJJUExFX1NFUlZFUl9JTkZPICogX19wdHI2NCkgX19wdHI2NA0KKz9Db21iaW5lSW50b1RyaXBsZUBUUklQTEVfU0VSVkVSX0VOVU1AQEFFQUFYUEVCVV9TRVJWRVJfSU5GT18xMDFAQFBFQlVfS05PV05fU0VSVkVSX0lORk9AQFBFQVVfVFJJUExFX1NFUlZFUl9JTkZPQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfQUNMX1NVQkpFQ1RfSVRFUjo6Q29tcGFyZShpbnQgKiBfX3B0cjY0LGNsYXNzIE9TX0FDTF9TVUJKRUNUX0lURVIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbXBhcmVAT1NfQUNMX1NVQkpFQ1RfSVRFUkBAUUVBQUpQRUFIUEVBVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6OkNvbXBhcmUoY2xhc3MgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUiAqIF9fcHRyNjQsaW50ICogX19wdHI2NCxpbnQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCxzdHJ1Y3QgX0dFTkVSSUNfTUFQUElORyAqIF9fcHRyNjQsc3RydWN0IF9HRU5FUklDX01BUFBJTkcgKiBfX3B0cjY0LGludCxpbnQpIF9fcHRyNjQNCis/Q29tcGFyZUBPU19TRUNVUklUWV9ERVNDUklQVE9SQEBRRUFBSlBFQVYxQFBFQUgxMTFQRUFVX0dFTkVSSUNfTUFQUElOR0BAMkhIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTkVUX0FDQ0VTU18xOjpDb21wYXJlQUNMKGNsYXNzIE5FVF9BQ0NFU1NfMSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29tcGFyZUFDTEBORVRfQUNDRVNTXzFAQFFFQUFIUEVBVjFAQFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgX19jZGVjbCBUUklQTEVfU0VSVkVSX0VOVU06OkNvbXBhcmVCcm93c2VyU2VydmVycyh2b2lkIGNvbnN0ICogX19wdHI2NCx2b2lkIGNvbnN0ICogX19wdHI2NCkNCis/Q29tcGFyZUJyb3dzZXJTZXJ2ZXJzQFRSSVBMRV9TRVJWRVJfRU5VTUBAQ0FIUEVCWDBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIE9TX0RBQ0xfU1VCSkVDVF9JVEVSOjpDb21wYXJlQ3VycmVudFN1YmplY3QoY2xhc3MgT1NfQUNMX1NVQkpFQ1RfSVRFUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29tcGFyZUN1cnJlbnRTdWJqZWN0QE9TX0RBQ0xfU1VCSkVDVF9JVEVSQEBVRUFBSFBFQVZPU19BQ0xfU1VCSkVDVF9JVEVSQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIE9TX1NBQ0xfU1VCSkVDVF9JVEVSOjpDb21wYXJlQ3VycmVudFN1YmplY3QoY2xhc3MgT1NfQUNMX1NVQkpFQ1RfSVRFUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29tcGFyZUN1cnJlbnRTdWJqZWN0QE9TX1NBQ0xfU1VCSkVDVF9JVEVSQEBVRUFBSFBFQVZPU19BQ0xfU1VCSkVDVF9JVEVSQEBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCBfX2NkZWNsIERPTUFJTjBfRU5VTTo6Q29tcGFyZURvbWFpbnMwKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgY29uc3QgKiBfX3B0cjY0KQ0KKz9Db21wYXJlRG9tYWluczBARE9NQUlOMF9FTlVNQEBDQUhQRUJYMEBaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50IF9fY2RlY2wgVFJJUExFX1NFUlZFUl9FTlVNOjpDb21wYXJlTG1TZXJ2ZXJzKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgY29uc3QgKiBfX3B0cjY0KQ0KKz9Db21wYXJlTG1TZXJ2ZXJzQFRSSVBMRV9TRVJWRVJfRU5VTUBAQ0FIUEVCWDBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCBfX2NkZWNsIFRSSVBMRV9TRVJWRVJfRU5VTTo6Q29tcGFyZU50U2VydmVycyh2b2lkIGNvbnN0ICogX19wdHI2NCx2b2lkIGNvbnN0ICogX19wdHI2NCkNCis/Q29tcGFyZU50U2VydmVyc0BUUklQTEVfU0VSVkVSX0VOVU1AQENBSFBFQlgwQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIERFVklDRTI6OkNvbm5lY3QodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Q29ubmVjdEBERVZJQ0UyQEBRRUFBSlBFQkcwMDBLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIERFVklDRTo6Q29ubmVjdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0Nvbm5lY3RAREVWSUNFQEBRRUFBSlBFQkcwQFoNCis7IGxvbmcgX19jZGVjbCBDb25uZWN0VG9OdWxsU2Vzc2lvbihjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCkNCis/Q29ubmVjdFRvTnVsbFNlc3Npb25AQFlBSkFFQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTE1fU0VSVklDRTo6Q29udGludWUodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9Db250aW51ZUBMTV9TRVJWSUNFQEBRRUFBSklJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNDX1NFUlZJQ0U6OkNvbnRyb2wodW5zaWduZWQgaW50LHN0cnVjdCBfU0VSVklDRV9TVEFUVVMgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbnRyb2xAU0NfU0VSVklDRUBAUUVBQUpJUEVBVV9TRVJWSUNFX1NUQVRVU0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE9TX0FDTDo6Q29weShjbGFzcyBPU19BQ0wgY29uc3QgJiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9Db3B5QE9TX0FDTEBAUUVBQUpBRUJWMUBIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6OkNvcHkoY2xhc3MgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weUBPU19TRUNVUklUWV9ERVNDUklQVE9SQEBRRUFBSkFFQlYxQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBPU19TSUQ6OkNvcHkoY2xhc3MgT1NfU0lEIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5QE9TX1NJREBAUUVBQUpBRUJWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTkVUX0FDQ0VTU18xOjpDb3B5QWNjZXNzUGVybXMoY2xhc3MgTkVUX0FDQ0VTU18xIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5QWNjZXNzUGVybXNATkVUX0FDQ0VTU18xQEBRRUFBSkFFQlYxQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgU0VSVklDRV9FTlVNOjpDb3VudFNlcnZpY2VzKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGludCAqIF9fcHRyNjQsdW5zaWduZWQgaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9Db3VudFNlcnZpY2VzQFNFUlZJQ0VfRU5VTUBAQUVBQVhQRUFFUEVBSTFAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIE5UX0FDQ09VTlRTX1VUSUxJVFk6OkNyYWNrUXVhbGlmaWVkQWNjb3VudE5hbWUoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpDQorP0NyYWNrUXVhbGlmaWVkQWNjb3VudE5hbWVATlRfQUNDT1VOVFNfVVRJTElUWUBAU0FKQUVCVk5MU19TVFJAQFBFQVYyQDFAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1NFQ1JFVDo6Q3JlYXRlKGNsYXNzIExTQV9QT0xJQ1kgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Q3JlYXRlQExTQV9TRUNSRVRAQFFFQUFKQUVCVkxTQV9QT0xJQ1lAQEtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTkVXX0xNX09CSjo6Q3JlYXRlTmV3KHZvaWQpIF9fcHRyNjQNCis/Q3JlYXRlTmV3QE5FV19MTV9PQkpAQFFFQUFKWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBET01BSU46OkN0QXV4KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q3RBdXhARE9NQUlOQEBBRUFBWFBFQkcwQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBHUk9VUDo6Q3RBdXgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0N0QXV4QEdST1VQQEBBRUFBWFBFQkdAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIEdST1VQXzE6OkN0QXV4KHZvaWQpIF9fcHRyNjQNCis/Q3RBdXhAR1JPVVBfMUBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExPQ19MTV9PQko6OkN0QXV4KHZvaWQpIF9fcHRyNjQNCis/Q3RBdXhATE9DX0xNX09CSkBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFVTRVI6OkN0QXV4KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DdEF1eEBVU0VSQEBBRUFBWFBFQkdAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFVTRVJfMTE6OkN0QXV4KHZvaWQpIF9fcHRyNjQNCis/Q3RBdXhAVVNFUl8xMUBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFVTRVJfMjo6Q3RBdXgodm9pZCkgX19wdHI2NA0KKz9DdEF1eEBVU0VSXzJAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBVU0VSXzM6OkN0QXV4KHZvaWQpIF9fcHRyNjQNCis/Q3RBdXhAVVNFUl8zQEBBRUFBWFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMU0FfVFJVU1RFRF9ET01BSU46OkRlbGV0ZSh2b2lkKSBfX3B0cjY0DQorP0RlbGV0ZUBMU0FfVFJVU1RFRF9ET01BSU5AQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5FVF9BQ0NFU1M6OkRlbGV0ZSh2b2lkKSBfX3B0cjY0DQorP0RlbGV0ZUBORVRfQUNDRVNTQEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBORVdfTE1fT0JKOjpEZWxldGUodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0RlbGV0ZUBORVdfTE1fT0JKQEBRRUFBSklAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0FNX0FMSUFTOjpEZWxldGUodm9pZCkgX19wdHI2NA0KKz9EZWxldGVAU0FNX0FMSUFTQEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTQ19TRVJWSUNFOjpEZWxldGUodm9pZCkgX19wdHI2NA0KKz9EZWxldGVAU0NfU0VSVklDRUBAUUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfQUNMOjpEZWxldGVBQ0UodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9EZWxldGVBQ0VAT1NfQUNMQEBRRUFBSktAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgTFNBX1BPTElDWTo6RGVsZXRlQWxsVHJ1c3RlZERvbWFpbnModm9pZCkgX19wdHI2NA0KKz9EZWxldGVBbGxUcnVzdGVkRG9tYWluc0BMU0FfUE9MSUNZQEBJRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBNRU1CRVJTSElQX0xNX09CSjo6RGVsZXRlQXNzb2NOYW1lKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9EZWxldGVBc3NvY05hbWVATUVNQkVSU0hJUF9MTV9PQkpAQFFFQUFKSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBNRU1CRVJTSElQX0xNX09CSjo6RGVsZXRlQXNzb2NOYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVBc3NvY05hbWVATUVNQkVSU0hJUF9MTV9PQkpAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMU0FfQUNDT1VOVDo6RGVsZXRlUHJpdmlsZWdlKHN0cnVjdCBfTFVJRCkgX19wdHI2NA0KKz9EZWxldGVQcml2aWxlZ2VATFNBX0FDQ09VTlRAQFFFQUFKVV9MVUlEQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExNX0VOVU06OkRlcmVnaXN0ZXJJdGVyKHZvaWQpIF9fcHRyNjQNCis/RGVyZWdpc3Rlckl0ZXJATE1fRU5VTUBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExNX1JFU1VNRV9FTlVNOjpEZXJlZ2lzdGVySXRlcih2b2lkKSBfX3B0cjY0DQorP0RlcmVnaXN0ZXJJdGVyQExNX1JFU1VNRV9FTlVNQEBBRUFBWFhaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgQlJPV1NFX0RPTUFJTl9FTlVNOjpEZXRlcm1pbmVJZkRvbWFpbk1lbWJlcihpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RldGVybWluZUlmRG9tYWluTWVtYmVyQEJST1dTRV9ET01BSU5fRU5VTUBAQUVBQUpQRUFIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIERFVklDRTo6RGlzY29ubmVjdCh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/RGlzY29ubmVjdEBERVZJQ0VAQFFFQUFKSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBERVZJQ0U6OkRpc2Nvbm5lY3QodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9EaXNjb25uZWN0QERFVklDRUBAUUVBQUpQRUJHSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMU0FfUE9MSUNZOjpEaXN0cnVzdERvbWFpbih2b2lkICogX19wdHI2NCBjb25zdCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/RGlzdHJ1c3REb21haW5ATFNBX1BPTElDWUBAUUVBQUpRRUFYQUVCVk5MU19TVFJAQEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBMTV9SRVNVTUVfRU5VTTo6RG9lc0tlZXBCdWZmZXJzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RG9lc0tlZXBCdWZmZXJzQExNX1JFU1VNRV9FTlVNQEBRRUJBSFhaDQorOyBwcml2YXRlOiB2aXJ0dWFsIHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgRU5VTV9DQUxMRVJfTE1fT0JKOjpFQ19RdWVyeUJ1ZmZlclB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0VDX1F1ZXJ5QnVmZmVyUHRyQEVOVU1fQ0FMTEVSX0xNX09CSkBARUVCQVBFQUVYWg0KKzsgcHJpdmF0ZTogdmlydHVhbCB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIExNX0VOVU06OkVDX1F1ZXJ5QnVmZmVyUHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RUNfUXVlcnlCdWZmZXJQdHJATE1fRU5VTUBARUVCQVBFQUVYWg0KKzsgcHJpdmF0ZTogdmlydHVhbCB1bnNpZ25lZCBpbnQgX19jZGVjbCBFTlVNX0NBTExFUl9MTV9PQko6OkVDX1F1ZXJ5QnVmZmVyU2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0VDX1F1ZXJ5QnVmZmVyU2l6ZUBFTlVNX0NBTExFUl9MTV9PQkpAQEVFQkFJWFoNCis7IHByaXZhdGU6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIEVOVU1fQ0FMTEVSX0xNX09CSjo6RUNfUmVzaXplQnVmZmVyKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9FQ19SZXNpemVCdWZmZXJARU5VTV9DQUxMRVJfTE1fT0JKQEBFRUFBSklAWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBsb25nIF9fY2RlY2wgRU5VTV9DQUxMRVJfTE1fT0JKOjpFQ19TZXRCdWZmZXJQdHIodW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RUNfU2V0QnVmZmVyUHRyQEVOVU1fQ0FMTEVSX0xNX09CSkBARUVBQUpQRUFFQFoNCis7IHByaXZhdGU6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIExNX0VOVU06OkVDX1NldEJ1ZmZlclB0cih1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9FQ19TZXRCdWZmZXJQdHJATE1fRU5VTUBARUVBQUpQRUFFQFoNCis7IHByaXZhdGU6IHN0YXRpYyBsb25nIF9fY2RlY2wgRE9NQUlOX1dJVEhfRENfQ0FDSEU6OkVudGVyQ3JpdGljYWxTZWN0aW9uKHZvaWQpDQorP0VudGVyQ3JpdGljYWxTZWN0aW9uQERPTUFJTl9XSVRIX0RDX0NBQ0hFQEBDQUpYWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEVudW1BbGxDb21tcyh2b2lkKQ0KKz9FbnVtQWxsQ29tbXNAQFlBS1haDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgRW51bUFsbERyaXZlcyh2b2lkKQ0KKz9FbnVtQWxsRHJpdmVzQEBZQUtYWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEVudW1BbGxMUFRzKHZvaWQpDQorP0VudW1BbGxMUFRzQEBZQUtYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgSVRFUl9ERVZJQ0U6OkVudW1Db21tcyh2b2lkKSBfX3B0cjY0DQorP0VudW1Db21tc0BJVEVSX0RFVklDRUBAQUVBQVBFQkdYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0NfU0VSVklDRTo6RW51bURlcGVuZGVudCh1bnNpZ25lZCBpbnQsc3RydWN0IF9FTlVNX1NFUlZJQ0VfU1RBVFVTVyAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0VudW1EZXBlbmRlbnRAU0NfU0VSVklDRUBAUUVBQUpJUEVBUEVBVV9FTlVNX1NFUlZJQ0VfU1RBVFVTV0BAUEVBS0BaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBJVEVSX0RFVklDRTo6RW51bURyaXZlcyh2b2lkKSBfX3B0cjY0DQorP0VudW1Ecml2ZXNASVRFUl9ERVZJQ0VAQEFFQUFQRUJHWFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIElURVJfREVWSUNFOjpFbnVtTFBUcyh2b2lkKSBfX3B0cjY0DQorP0VudW1MUFRzQElURVJfREVWSUNFQEBBRUFBUEVCR1haDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgU0VSVklDRV9FTlVNOjpFbnVtTG1TZXJ2aWNlcyh1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9FbnVtTG1TZXJ2aWNlc0BTRVJWSUNFX0VOVU1AQEFFQUFKUEVBUEVBRVBFQUlAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEVudW1Mb2NhbENvbW1zKHZvaWQpDQorP0VudW1Mb2NhbENvbW1zQEBZQUtYWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEVudW1Mb2NhbERyaXZlcyh2b2lkKQ0KKz9FbnVtTG9jYWxEcml2ZXNAQFlBS1haDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgRW51bUxvY2FsTFBUcyh2b2lkKQ0KKz9FbnVtTG9jYWxMUFRzQEBZQUtYWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEVudW1OZXRDb21tcyh2b2lkKQ0KKz9FbnVtTmV0Q29tbXNAQFlBS1haDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgRW51bU5ldERldmljZXMoaW50KQ0KKz9FbnVtTmV0RGV2aWNlc0BAWUFLSEBaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgRW51bU5ldERyaXZlcyh2b2lkKQ0KKz9FbnVtTmV0RHJpdmVzQEBZQUtYWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEVudW1OZXRMUFRzKHZvaWQpDQorP0VudW1OZXRMUFRzQEBZQUtYWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIFNFUlZJQ0VfRU5VTTo6RW51bU50U2VydmljZXModW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RW51bU50U2VydmljZXNAU0VSVklDRV9FTlVNQEBBRUFBSlBFQVBFQUVQRUFJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNDX01BTkFHRVI6OkVudW1TZXJ2aWNlU3RhdHVzKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsc3RydWN0IF9FTlVNX1NFUlZJQ0VfU1RBVFVTVyAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9FbnVtU2VydmljZVN0YXR1c0BTQ19NQU5BR0VSQEBRRUFBSklJUEVBUEVBVV9FTlVNX1NFUlZJQ0VfU1RBVFVTV0BAUEVBS1BFQkdAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEVudW1VbmF2YWlsQ29tbXModm9pZCkNCis/RW51bVVuYXZhaWxDb21tc0BAWUFLWFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBFbnVtVW5hdmFpbERldmljZXMoaW50KQ0KKz9FbnVtVW5hdmFpbERldmljZXNAQFlBS0hAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEVudW1VbmF2YWlsRHJpdmVzKHZvaWQpDQorP0VudW1VbmF2YWlsRHJpdmVzQEBZQUtYWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEVudW1VbmF2YWlsTFBUcyh2b2lkKQ0KKz9FbnVtVW5hdmFpbExQVHNAQFlBS1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTQU1fRE9NQUlOOjpFbnVtZXJhdGVBbGlhc2VzKGNsYXNzIFNBTV9SSURfRU5VTUVSQVRJT05fTUVNICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP0VudW1lcmF0ZUFsaWFzZXNAU0FNX0RPTUFJTkBAUUVCQUpQRUFWU0FNX1JJRF9FTlVNRVJBVElPTl9NRU1AQFBFQUtLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNBTV9ET01BSU46OkVudW1lcmF0ZUFsaWFzZXNGb3JVc2VyKHZvaWQgKiBfX3B0cjY0LGNsYXNzIFNBTV9SSURfTUVNICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FbnVtZXJhdGVBbGlhc2VzRm9yVXNlckBTQU1fRE9NQUlOQEBRRUJBSlBFQVhQRUFWU0FNX1JJRF9NRU1AQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTQU1fRE9NQUlOOjpFbnVtZXJhdGVHcm91cHMoY2xhc3MgU0FNX1JJRF9FTlVNRVJBVElPTl9NRU0gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/RW51bWVyYXRlR3JvdXBzQFNBTV9ET01BSU5AQFFFQkFKUEVBVlNBTV9SSURfRU5VTUVSQVRJT05fTUVNQEBQRUFLS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMU0FfUE9MSUNZOjpFbnVtZXJhdGVUcnVzdGVkRG9tYWlucyhjbGFzcyBMU0FfVFJVU1RfSU5GT19NRU0gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RW51bWVyYXRlVHJ1c3RlZERvbWFpbnNATFNBX1BPTElDWUBAUUVBQUpQRUFWTFNBX1RSVVNUX0lORk9fTUVNQEBQRUFLS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTQU1fRE9NQUlOOjpFbnVtZXJhdGVVc2VycyhjbGFzcyBTQU1fUklEX0VOVU1FUkFUSU9OX01FTSAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP0VudW1lcmF0ZVVzZXJzQFNBTV9ET01BSU5AQFFFQkFKUEVBVlNBTV9SSURfRU5VTUVSQVRJT05fTUVNQEBQRUFLS0tAWg0KKzsgbG9uZyBfX2NkZWNsIEZpbGxVbmljb2RlU3RyaW5nKHN0cnVjdCBfVU5JQ09ERV9TVFJJTkcgKiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0KQ0KKz9GaWxsVW5pY29kZVN0cmluZ0BAWUFKUEVBVV9VTklDT0RFX1NUUklOR0BAQUVCVk5MU19TVFJAQEBaDQorOyBwcml2YXRlOiBzdHJ1Y3QgX0FDQ0VTU19MSVNUICogX19wdHI2NCBfX2NkZWNsIE5FVF9BQ0NFU1NfMTo6RmluZEFDRSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsZW51bSBQRVJNTkFNRV9UWVBFKWNvbnN0ICBfX3B0cjY0DQorP0ZpbmRBQ0VATkVUX0FDQ0VTU18xQEBBRUJBUEVBVV9BQ0NFU1NfTElTVEBAUEVCR1c0UEVSTU5BTUVfVFlQRUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE9TX0FDTDo6RmluZEFDRShjbGFzcyBPU19TSUQgY29uc3QgJiBfX3B0cjY0LGludCAqIF9fcHRyNjQsY2xhc3MgT1NfQUNFICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP0ZpbmRBQ0VAT1NfQUNMQEBRRUJBSkFFQlZPU19TSURAQFBFQUhQRUFWT1NfQUNFQEBQRUFLS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1FTUJFUlNISVBfTE1fT0JKOjpGaW5kQXNzb2NOYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmRBc3NvY05hbWVATUVNQkVSU0hJUF9MTV9PQkpAQFFFQUFIUEVCR1BFQUlAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIERPTUFJTl9XSVRIX0RDX0NBQ0hFOjpGaW5kRGNDYWNoZShzdHJ1Y3QgX0RDX0NBQ0hFX0VOVFJZIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0ZpbmREY0NhY2hlQERPTUFJTl9XSVRIX0RDX0NBQ0hFQEBDQVBFQkdQRUJVX0RDX0NBQ0hFX0VOVFJZQEBQRUJHQFoNCis7IHB1YmxpYzogY2xhc3MgQlJPV1NFX0RPTUFJTl9JTkZPIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEJST1dTRV9ET01BSU5fRU5VTTo6RmluZEZpcnN0KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RmluZEZpcnN0QEJST1dTRV9ET01BSU5fRU5VTUBAUUVBQVBFQlZCUk9XU0VfRE9NQUlOX0lORk9AQEtAWg0KKzsgcHVibGljOiBjbGFzcyBCUk9XU0VfRE9NQUlOX0lORk8gY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQlJPV1NFX0RPTUFJTl9FTlVNOjpGaW5kTmV4dCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0ZpbmROZXh0QEJST1dTRV9ET01BSU5fRU5VTUBAUUVBQVBFQlZCUk9XU0VfRE9NQUlOX0lORk9AQEtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfQUNMX1NVQkpFQ1RfSVRFUjo6RmluZE5leHRTdWJqZWN0KGludCAqIF9fcHRyNjQsY2xhc3MgT1NfU0lEICogX19wdHI2NCxjbGFzcyBPU19BQ0UgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmROZXh0U3ViamVjdEBPU19BQ0xfU1VCSkVDVF9JVEVSQEBRRUFBSlBFQUhQRUFWT1NfU0lEQEBQRUFWT1NfQUNFQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfUFJJVklMRUdFX1NFVDo6RmluZFByaXZpbGVnZShzdHJ1Y3QgX0xVSUQpY29uc3QgIF9fcHRyNjQNCis/RmluZFByaXZpbGVnZUBPU19QUklWSUxFR0VfU0VUQEBRRUJBSlVfTFVJREBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIE5FV19MTV9PQko6OkZpeHVwUG9pbnRlcih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0LGNsYXNzIE5FV19MTV9PQkogY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpeHVwUG9pbnRlckBORVdfTE1fT0JKQEBJRUFBWFBFQVBFQUdQRUJWMUBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBBTElBU19FTlVNOjpGcmVlQnVmZmVyKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9GcmVlQnVmZmVyQEFMSUFTX0VOVU1AQE1FQUFYUEVBUEVBRUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIEZJTEVfRU5VTTo6RnJlZUJ1ZmZlcih1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RnJlZUJ1ZmZlckBGSUxFX0VOVU1AQE1FQUFYUEVBUEVBRUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIExPQ19MTV9SRVNVTUVfRU5VTTo6RnJlZUJ1ZmZlcih1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RnJlZUJ1ZmZlckBMT0NfTE1fUkVTVU1FX0VOVU1AQE1FQUFYUEVBUEVBRUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIExTQV9FTlVNOjpGcmVlQnVmZmVyKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9GcmVlQnVmZmVyQExTQV9FTlVNQEBNRUFBWFBFQVBFQUVAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBMU0FfTUVNT1JZOjpGcmVlQnVmZmVyKHZvaWQpIF9fcHRyNjQNCis/RnJlZUJ1ZmZlckBMU0FfTUVNT1JZQEBNRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTFNBX1RSVVNURURfRENfTElTVDo6RnJlZUJ1ZmZlcih2b2lkKSBfX3B0cjY0DQorP0ZyZWVCdWZmZXJATFNBX1RSVVNURURfRENfTElTVEBAQUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOVF9BQ0NPVU5UX0VOVU06OkZyZWVCdWZmZXIodW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZyZWVCdWZmZXJATlRfQUNDT1VOVF9FTlVNQEBNRUFBWFBFQVBFQUVAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTQU1fTUVNT1JZOjpGcmVlQnVmZmVyKHZvaWQpIF9fcHRyNjQNCis/RnJlZUJ1ZmZlckBTQU1fTUVNT1JZQEBNRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNBTV9VU0VSX0VOVU06OkZyZWVCdWZmZXIodW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZyZWVCdWZmZXJAU0FNX1VTRVJfRU5VTUBATUVBQVhQRUFQRUFFQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgVFJVU1RFRF9ET01BSU5fRU5VTTo6RnJlZUJ1ZmZlcih1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RnJlZUJ1ZmZlckBUUlVTVEVEX0RPTUFJTl9FTlVNQEBNRUFBWFBFQVBFQUVAWg0KKzsgdm9pZCBfX2NkZWNsIEZyZWVVbmljb2RlU3RyaW5nKHN0cnVjdCBfVU5JQ09ERV9TVFJJTkcgKiBfX3B0cjY0KQ0KKz9GcmVlVW5pY29kZVN0cmluZ0BAWUFYUEVBVV9VTklDT0RFX1NUUklOR0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExTQV9QT0xJQ1k6OkdldEFjY291bnREb21haW4oY2xhc3MgTFNBX0FDQ1RfRE9NX0lORk9fTUVNICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXRBY2NvdW50RG9tYWluQExTQV9QT0xJQ1lAQFFFQkFKUEVBVkxTQV9BQ0NUX0RPTV9JTkZPX01FTUBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBET01BSU46OkdldEFueURDKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpDQorP0dldEFueURDQERPTUFJTkBAU0FKUEVCRzBQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBET01BSU5fV0lUSF9EQ19DQUNIRTo6R2V0QW55REModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBOTFNfU1RSICogX19wdHI2NCkNCis/R2V0QW55RENARE9NQUlOX1dJVEhfRENfQ0FDSEVAQFNBSlBFQkcwUEVBVk5MU19TVFJAQEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fY2RlY2wgRE9NQUlOOjpHZXRBbnlEQ1dvcmtlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0LGludCkNCis/R2V0QW55RENXb3JrZXJARE9NQUlOQEBLQUpQRUJHMFBFQVZOTFNfU1RSQEBIQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgX19jZGVjbCBET01BSU5fV0lUSF9EQ19DQUNIRTo6R2V0QW55RENXb3JrZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBOTFNfU1RSICogX19wdHI2NCxpbnQpDQorP0dldEFueURDV29ya2VyQERPTUFJTl9XSVRIX0RDX0NBQ0hFQEBLQUpQRUJHMFBFQVZOTFNfU1RSQEBIQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBET01BSU46OkdldEFueVZhbGlkREModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBOTFNfU1RSICogX19wdHI2NCkNCis/R2V0QW55VmFsaWREQ0BET01BSU5AQFNBSlBFQkcwUEVBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgRE9NQUlOX1dJVEhfRENfQ0FDSEU6OkdldEFueVZhbGlkREModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBOTFNfU1RSICogX19wdHI2NCkNCis/R2V0QW55VmFsaWREQ0BET01BSU5fV0lUSF9EQ19DQUNIRUBAU0FKUEVCRzBQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExTQV9QT0xJQ1k6OkdldEF1ZGl0RXZlbnRJbmZvKGNsYXNzIExTQV9BVURJVF9FVkVOVF9JTkZPX01FTSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0QXVkaXRFdmVudEluZm9ATFNBX1BPTElDWUBAUUVBQUpQRUFWTFNBX0FVRElUX0VWRU5UX0lORk9fTUVNQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQUxJQVNfRU5VTV9PQko6OkdldENvbW1lbnQoY2xhc3MgU0FNX0RPTUFJTiBjb25zdCAmIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0Q29tbWVudEBBTElBU19FTlVNX09CSkBAUUVBQUpBRUJWU0FNX0RPTUFJTkBAUEVBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTQU1fQUxJQVM6OkdldENvbW1lbnQoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0Q29tbWVudEBTQU1fQUxJQVNAQFFFQUFKUEVBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTQU1fR1JPVVA6OkdldENvbW1lbnQoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0Q29tbWVudEBTQU1fR1JPVVBAQFFFQUFKUEVBVk5MU19TVFJAQEBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgTkVUX05BTUU6OkdldERldmljZUluZm8odm9pZCkgX19wdHI2NA0KKz9HZXREZXZpY2VJbmZvQE5FVF9OQU1FQEBBRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIERFVklDRTo6R2V0SW5mbyh2b2lkKSBfX3B0cjY0DQorP0dldEluZm9AREVWSUNFQEBVRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIERPTUFJTjo6R2V0SW5mbyh2b2lkKSBfX3B0cjY0DQorP0dldEluZm9ARE9NQUlOQEBVRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIERPTUFJTl9XSVRIX0RDX0NBQ0hFOjpHZXRJbmZvKHZvaWQpIF9fcHRyNjQNCis/R2V0SW5mb0BET01BSU5fV0lUSF9EQ19DQUNIRUBAVUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTE1fRU5VTTo6R2V0SW5mbyh2b2lkKSBfX3B0cjY0DQorP0dldEluZm9ATE1fRU5VTUBAUUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTE1fUkVTVU1FX0VOVU06OkdldEluZm8oaW50KSBfX3B0cjY0DQorP0dldEluZm9ATE1fUkVTVU1FX0VOVU1AQFFFQUFKSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBORVdfTE1fT0JKOjpHZXRJbmZvKHZvaWQpIF9fcHRyNjQNCis/R2V0SW5mb0BORVdfTE1fT0JKQEBRRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFVTRVJfTU9EQUxTOjpHZXRJbmZvKHZvaWQpIF9fcHRyNjQNCis/R2V0SW5mb0BVU0VSX01PREFMU0BAVUVBQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBVU0VSX01PREFMU18zOjpHZXRJbmZvKHZvaWQpIF9fcHRyNjQNCis/R2V0SW5mb0BVU0VSX01PREFMU18zQEBVRUFBSlhaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgTE1fUkVTVU1FX0VOVU06OkdldEluZm9NdWx0aSh2b2lkKSBfX3B0cjY0DQorP0dldEluZm9NdWx0aUBMTV9SRVNVTUVfRU5VTUBAQUVBQUpYWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIExNX1JFU1VNRV9FTlVNOjpHZXRJbmZvU2luZ2xlKGludCkgX19wdHI2NA0KKz9HZXRJbmZvU2luZ2xlQExNX1JFU1VNRV9FTlVNQEBBRUFBSkhAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIEJST1dTRV9ET01BSU5fRU5VTTo6R2V0TGFubWFuRG9tYWlucyh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldExhbm1hbkRvbWFpbnNAQlJPV1NFX0RPTUFJTl9FTlVNQEBBRUFBSktAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIEJST1dTRV9ET01BSU5fRU5VTTo6R2V0TG9nb25Eb21haW5EQyhjbGFzcyBOTFNfU1RSICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRMb2dvbkRvbWFpbkRDQEJST1dTRV9ET01BSU5fRU5VTUBAQUVBQUpQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNBTV9BTElBUzo6R2V0TWVtYmVycyhjbGFzcyBTQU1fU0lEX01FTSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TWVtYmVyc0BTQU1fQUxJQVNAQFFFQUFKUEVBVlNBTV9TSURfTUVNQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0FNX0dST1VQOjpHZXRNZW1iZXJzKGNsYXNzIFNBTV9SSURfTUVNICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRNZW1iZXJzQFNBTV9HUk9VUEBAUUVBQUpQRUFWU0FNX1JJRF9NRU1AQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTQU1fRE9NQUlOOjpHZXRQYXNzd29yZEluZm8oY2xhc3MgU0FNX1BTV0RfRE9NX0lORk9fTUVNICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXRQYXNzd29yZEluZm9AU0FNX0RPTUFJTkBAUUVCQUpQRUFWU0FNX1BTV0RfRE9NX0lORk9fTUVNQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1BPTElDWTo6R2V0UHJpbWFyeURvbWFpbihjbGFzcyBMU0FfUFJJTUFSWV9ET01fSU5GT19NRU0gKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0dldFByaW1hcnlEb21haW5ATFNBX1BPTElDWUBAUUVCQUpQRUFWTFNBX1BSSU1BUllfRE9NX0lORk9fTUVNQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIE5UX0FDQ09VTlRTX1VUSUxJVFk6OkdldFF1YWxpZmllZEFjY291bnROYW1lcyhjbGFzcyBMU0FfUE9MSUNZICYgX19wdHI2NCxjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICYgX19wdHI2NCx2b2lkICogX19wdHI2NCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxpbnQsY2xhc3MgU1RSTElTVCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsZW51bSBfU0lEX05BTUVfVVNFICogX19wdHI2NCxsb25nICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgU1RSTElTVCAqIF9fcHRyNjQsY2xhc3MgU1RSTElTVCAqIF9fcHRyNjQsY2xhc3MgU1RSTElTVCAqIF9fcHRyNjQsY2xhc3MgU1RSTElTVCAqIF9fcHRyNjQpDQorP0dldFF1YWxpZmllZEFjY291bnROYW1lc0BOVF9BQ0NPVU5UU19VVElMSVRZQEBTQUpBRUFWTFNBX1BPTElDWUBAQUVCVlNBTV9ET01BSU5AQFBFQlFFQVhLSFBFQVZTVFJMSVNUQEBQRUFLUEVBVzRfU0lEX05BTUVfVVNFQEBQRUFKUEVCRzMzMzNAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIE5UX0FDQ09VTlRTX1VUSUxJVFk6OkdldFF1YWxpZmllZEFjY291bnROYW1lcyhjbGFzcyBMU0FfUE9MSUNZICYgX19wdHI2NCx2b2lkICogX19wdHI2NCBjb25zdCx2b2lkICogX19wdHI2NCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxpbnQsY2xhc3MgU1RSTElTVCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsZW51bSBfU0lEX05BTUVfVVNFICogX19wdHI2NCxsb25nICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgU1RSTElTVCAqIF9fcHRyNjQsY2xhc3MgU1RSTElTVCAqIF9fcHRyNjQsY2xhc3MgU1RSTElTVCAqIF9fcHRyNjQsY2xhc3MgU1RSTElTVCAqIF9fcHRyNjQpDQorP0dldFF1YWxpZmllZEFjY291bnROYW1lc0BOVF9BQ0NPVU5UU19VVElMSVRZQEBTQUpBRUFWTFNBX1BPTElDWUBAUUVBWFBFQlFFQVhLSFBFQVZTVFJMSVNUQEBQRUFLUEVBVzRfU0lEX05BTUVfVVNFQEBQRUFKUEVCRzMzMzNAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIExNX1NSVlJFUzo6R2V0UmVzb3VyY2VDb3VudCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpDQorP0dldFJlc291cmNlQ291bnRATE1fU1JWUkVTQEBTQUpQRUJHUEVBSzExMTExQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExTQV9QT0xJQ1k6OkdldFNlcnZlclJvbGUoY2xhc3MgTFNBX1NFUlZFUl9ST0xFX0lORk9fTUVNICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXRTZXJ2ZXJSb2xlQExTQV9QT0xJQ1lAQFFFQkFKUEVBVkxTQV9TRVJWRVJfUk9MRV9JTkZPX01FTUBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBMTV9TUlZSRVM6OkdldFNlc3Npb25zQ291bnQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KQ0KKz9HZXRTZXNzaW9uc0NvdW50QExNX1NSVlJFU0BAU0FKUEVCR1BFQUtAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIEJST1dTRV9ET01BSU5fRU5VTTo6R2V0VHJ1c3RpbmdEb21haW5zKHZvaWQpIF9fcHRyNjQNCis/R2V0VHJ1c3RpbmdEb21haW5zQEJST1dTRV9ET01BSU5fRU5VTUBAQUVBQUpYWg0KKzsgbG9uZyBfX2NkZWNsIEdldFczMkNvbXB1dGVyTmFtZShjbGFzcyBOTFNfU1RSICYgX19wdHI2NCkNCis/R2V0VzMyQ29tcHV0ZXJOYW1lQEBZQUpBRUFWTkxTX1NUUkBAQFoNCis7IGxvbmcgX19jZGVjbCBHZXRXMzJVc2VyQW5kRG9tYWluTmFtZShjbGFzcyBOTFNfU1RSICYgX19wdHI2NCxjbGFzcyBOTFNfU1RSICYgX19wdHI2NCkNCis/R2V0VzMyVXNlckFuZERvbWFpbk5hbWVAQFlBSkFFQVZOTFNfU1RSQEAwQFoNCis7IGxvbmcgX19jZGVjbCBHZXRXMzJVc2VyTmFtZShjbGFzcyBOTFNfU1RSICYgX19wdHI2NCkNCis/R2V0VzMyVXNlck5hbWVAQFlBSkFFQVZOTFNfU1RSQEBAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIEJST1dTRV9ET01BSU5fRU5VTTo6R2V0V29ya2dyb3VwRG9tYWlucyh2b2lkKSBfX3B0cjY0DQorP0dldFdvcmtncm91cERvbWFpbnNAQlJPV1NFX0RPTUFJTl9FTlVNQEBBRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBVU0VSOjpIYW5kbGVOdWxsQWNjb3VudCh2b2lkKSBfX3B0cjY0DQorP0hhbmRsZU51bGxBY2NvdW50QFVTRVJAQElFQUFKWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT1NfREFDTF9TVUJKRUNUX0lURVI6Okhhc0luaGVyaXRPbmx5QWNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SGFzSW5oZXJpdE9ubHlBY2VAT1NfREFDTF9TVUJKRUNUX0lURVJAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT1NfU0FDTF9TVUJKRUNUX0lURVI6Okhhc0luaGVyaXRPbmx5QXVkaXRBY2VfRih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0hhc0luaGVyaXRPbmx5QXVkaXRBY2VfRkBPU19TQUNMX1NVQkpFQ1RfSVRFUkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPU19TQUNMX1NVQkpFQ1RfSVRFUjo6SGFzSW5oZXJpdE9ubHlBdWRpdEFjZV9TKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SGFzSW5oZXJpdE9ubHlBdWRpdEFjZV9TQE9TX1NBQ0xfU1VCSkVDVF9JVEVSQEBRRUJBSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIExNX1JFU1VNRV9FTlVNX0lURVI6Okhhc01vcmVEYXRhKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SGFzTW9yZURhdGFATE1fUkVTVU1FX0VOVU1fSVRFUkBASUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPU19EQUNMX1NVQkpFQ1RfSVRFUjo6SGFzTmV3Q29udGFpbmVyQWNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SGFzTmV3Q29udGFpbmVyQWNlQE9TX0RBQ0xfU1VCSkVDVF9JVEVSQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9TX1NBQ0xfU1VCSkVDVF9JVEVSOjpIYXNOZXdDb250YWluZXJBdWRpdEFjZV9GKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SGFzTmV3Q29udGFpbmVyQXVkaXRBY2VfRkBPU19TQUNMX1NVQkpFQ1RfSVRFUkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPU19TQUNMX1NVQkpFQ1RfSVRFUjo6SGFzTmV3Q29udGFpbmVyQXVkaXRBY2VfUyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0hhc05ld0NvbnRhaW5lckF1ZGl0QWNlX1NAT1NfU0FDTF9TVUJKRUNUX0lURVJAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT1NfREFDTF9TVUJKRUNUX0lURVI6Okhhc05ld09iamVjdEFjZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0hhc05ld09iamVjdEFjZUBPU19EQUNMX1NVQkpFQ1RfSVRFUkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPU19TQUNMX1NVQkpFQ1RfSVRFUjo6SGFzTmV3T2JqZWN0QXVkaXRBY2VfRih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0hhc05ld09iamVjdEF1ZGl0QWNlX0ZAT1NfU0FDTF9TVUJKRUNUX0lURVJAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT1NfU0FDTF9TVUJKRUNUX0lURVI6Okhhc05ld09iamVjdEF1ZGl0QWNlX1Modm9pZCljb25zdCAgX19wdHI2NA0KKz9IYXNOZXdPYmplY3RBdWRpdEFjZV9TQE9TX1NBQ0xfU1VCSkVDVF9JVEVSQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9TX0RBQ0xfU1VCSkVDVF9JVEVSOjpIYXNUaGlzQWNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SGFzVGhpc0FjZUBPU19EQUNMX1NVQkpFQ1RfSVRFUkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPU19TQUNMX1NVQkpFQ1RfSVRFUjo6SGFzVGhpc0F1ZGl0QWNlX0Yodm9pZCljb25zdCAgX19wdHI2NA0KKz9IYXNUaGlzQXVkaXRBY2VfRkBPU19TQUNMX1NVQkpFQ1RfSVRFUkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPU19TQUNMX1NVQkpFQ1RfSVRFUjo6SGFzVGhpc0F1ZGl0QWNlX1Modm9pZCljb25zdCAgX19wdHI2NA0KKz9IYXNUaGlzQXVkaXRBY2VfU0BPU19TQUNMX1NVQkpFQ1RfSVRFUkBAUUVCQUhYWg0KKzsgbG9uZyBfX2NkZWNsIElfQXBwZW5kVG9TVFJMSVNUKGNsYXNzIFNUUkxJU1QgKiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgJiBfX3B0cjY0KQ0KKz9JX0FwcGVuZFRvU1RSTElTVEBAWUFKUEVBVlNUUkxJU1RAQEFFQVZOTFNfU1RSQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBHUk9VUF8xOjpJX0NoYW5nZVRvTmV3KHZvaWQpIF9fcHRyNjQNCis/SV9DaGFuZ2VUb05ld0BHUk9VUF8xQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIEdST1VQX01FTUI6OklfQ2hhbmdlVG9OZXcodm9pZCkgX19wdHI2NA0KKz9JX0NoYW5nZVRvTmV3QEdST1VQX01FTUJAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgTkVXX0xNX09CSjo6SV9DaGFuZ2VUb05ldyh2b2lkKSBfX3B0cjY0DQorP0lfQ2hhbmdlVG9OZXdATkVXX0xNX09CSkBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBVU0VSXzI6OklfQ2hhbmdlVG9OZXcodm9pZCkgX19wdHI2NA0KKz9JX0NoYW5nZVRvTmV3QFVTRVJfMkBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBVU0VSXzM6OklfQ2hhbmdlVG9OZXcodm9pZCkgX19wdHI2NA0KKz9JX0NoYW5nZVRvTmV3QFVTRVJfM0BATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBVU0VSX01FTUI6OklfQ2hhbmdlVG9OZXcodm9pZCkgX19wdHI2NA0KKz9JX0NoYW5nZVRvTmV3QFVTRVJfTUVNQkBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBHUk9VUF8xOjpJX0NyZWF0ZU5ldyh2b2lkKSBfX3B0cjY0DQorP0lfQ3JlYXRlTmV3QEdST1VQXzFAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgR1JPVVBfTUVNQjo6SV9DcmVhdGVOZXcodm9pZCkgX19wdHI2NA0KKz9JX0NyZWF0ZU5ld0BHUk9VUF9NRU1CQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIExTQV9BQ0NPVU5UOjpJX0NyZWF0ZU5ldyh2b2lkKSBfX3B0cjY0DQorP0lfQ3JlYXRlTmV3QExTQV9BQ0NPVU5UQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIE5FVF9BQ0NFU1NfMTo6SV9DcmVhdGVOZXcodm9pZCkgX19wdHI2NA0KKz9JX0NyZWF0ZU5ld0BORVRfQUNDRVNTXzFAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgTkVXX0xNX09CSjo6SV9DcmVhdGVOZXcodm9pZCkgX19wdHI2NA0KKz9JX0NyZWF0ZU5ld0BORVdfTE1fT0JKQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFNIQVJFXzI6OklfQ3JlYXRlTmV3KHZvaWQpIF9fcHRyNjQNCis/SV9DcmVhdGVOZXdAU0hBUkVfMkBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBVU0VSXzI6OklfQ3JlYXRlTmV3KHZvaWQpIF9fcHRyNjQNCis/SV9DcmVhdGVOZXdAVVNFUl8yQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFVTRVJfMzo6SV9DcmVhdGVOZXcodm9pZCkgX19wdHI2NA0KKz9JX0NyZWF0ZU5ld0BVU0VSXzNAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgVVNFUl9NRU1COjpJX0NyZWF0ZU5ldyh2b2lkKSBfX3B0cjY0DQorP0lfQ3JlYXRlTmV3QFVTRVJfTUVNQkBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBHUk9VUDo6SV9EZWxldGUodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0lfRGVsZXRlQEdST1VQQEBNRUFBSklAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBMTV9TRVNTSU9OOjpJX0RlbGV0ZSh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/SV9EZWxldGVATE1fU0VTU0lPTkBATUVBQUpJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgTFNBX0FDQ09VTlQ6OklfRGVsZXRlKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9JX0RlbGV0ZUBMU0FfQUNDT1VOVEBATUVBQUpJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgTkVXX0xNX09CSjo6SV9EZWxldGUodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0lfRGVsZXRlQE5FV19MTV9PQkpAQE1FQUFKSUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFNIQVJFOjpJX0RlbGV0ZSh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/SV9EZWxldGVAU0hBUkVAQE1FQUFKSUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFVTRVI6OklfRGVsZXRlKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9JX0RlbGV0ZUBVU0VSQEBNRUFBSklAWg0KKzsgbG9uZyBfX2NkZWNsIElfRmV0Y2hBbGlhc0ZpZWxkcyhjbGFzcyBOTFNfU1RSICogX19wdHI2NCxjbGFzcyBBRE1JTl9BVVRIT1JJVFkgKiBfX3B0cjY0ICogX19wdHI2NCxjbGFzcyBTTElTVF9PRl9BRE1JTl9BVVRIT1JJVFkgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsaW50LGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgY29uc3QgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0KQ0KKz9JX0ZldGNoQWxpYXNGaWVsZHNAQFlBSlBFQVZOTFNfU1RSQEBQRUFQRUFWQURNSU5fQVVUSE9SSVRZQEBQRUFWU0xJU1RfT0ZfQURNSU5fQVVUSE9SSVRZQEBLSEFFQlYxQFBFQlYxQFBFQUpAWg0KKzsgbG9uZyBfX2NkZWNsIElfRmV0Y2hEQ0xpc3QoY2xhc3MgTFNBX1RSQU5TTEFURURfTkFNRV9NRU0gY29uc3QgJiBfX3B0cjY0LGNsYXNzIExTQV9SRUZfRE9NQUlOX01FTSBjb25zdCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQgKiBfX3B0cjY0LGNsYXNzIFNUUkxJU1QgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCxpbnQsaW50KQ0KKz9JX0ZldGNoRENMaXN0QEBZQUpBRUJWTFNBX1RSQU5TTEFURURfTkFNRV9NRU1AQEFFQlZMU0FfUkVGX0RPTUFJTl9NRU1AQFBFQVgyUEVBUEVBVk5MU19TVFJAQFBFQVZTVFJMSVNUQEBQRUFIUEVBSlBFQkdISEhAWg0KKzsgbG9uZyBfX2NkZWNsIElfRmV0Y2hHcm91cEZpZWxkcyhjbGFzcyBOTFNfU1RSICogX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICogX19wdHI2NCxsb25nICogX19wdHI2NCkNCis/SV9GZXRjaEdyb3VwRmllbGRzQEBZQUpQRUFWTkxTX1NUUkBAQUVCVjFAUEVCVjFAUEVBSkBaDQorOyBsb25nIF9fY2RlY2wgSV9GZXRjaFVzZXJGaWVsZHMoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiBjb25zdCAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpDQorP0lfRmV0Y2hVc2VyRmllbGRzQEBZQUpQRUFWTkxTX1NUUkBAMFBFQUtBRUJWMUBQRUJWMUBQRUFKQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgR1JPVVBfMTo6SV9HZXRJbmZvKHZvaWQpIF9fcHRyNjQNCis/SV9HZXRJbmZvQEdST1VQXzFAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgTE1fRklMRV8yOjpJX0dldEluZm8odm9pZCkgX19wdHI2NA0KKz9JX0dldEluZm9ATE1fRklMRV8yQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIExNX0ZJTEVfMzo6SV9HZXRJbmZvKHZvaWQpIF9fcHRyNjQNCis/SV9HZXRJbmZvQExNX0ZJTEVfM0BATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBMTV9TRVNTSU9OXzA6OklfR2V0SW5mbyh2b2lkKSBfX3B0cjY0DQorP0lfR2V0SW5mb0BMTV9TRVNTSU9OXzBAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgTE1fU0VTU0lPTl8xMDo6SV9HZXRJbmZvKHZvaWQpIF9fcHRyNjQNCis/SV9HZXRJbmZvQExNX1NFU1NJT05fMTBAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgTE1fU0VTU0lPTl8xOjpJX0dldEluZm8odm9pZCkgX19wdHI2NA0KKz9JX0dldEluZm9ATE1fU0VTU0lPTl8xQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIExNX1NFU1NJT05fMjo6SV9HZXRJbmZvKHZvaWQpIF9fcHRyNjQNCis/SV9HZXRJbmZvQExNX1NFU1NJT05fMkBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBMT0NBTF9VU0VSOjpJX0dldEluZm8odm9pZCkgX19wdHI2NA0KKz9JX0dldEluZm9ATE9DQUxfVVNFUkBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBMU0FfQUNDT1VOVDo6SV9HZXRJbmZvKHZvaWQpIF9fcHRyNjQNCis/SV9HZXRJbmZvQExTQV9BQ0NPVU5UQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIE1FTUJFUlNISVBfTE1fT0JKOjpJX0dldEluZm8odm9pZCkgX19wdHI2NA0KKz9JX0dldEluZm9ATUVNQkVSU0hJUF9MTV9PQkpAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgTkVUX0FDQ0VTU18xOjpJX0dldEluZm8odm9pZCkgX19wdHI2NA0KKz9JX0dldEluZm9ATkVUX0FDQ0VTU18xQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIE5FV19MTV9PQko6OklfR2V0SW5mbyh2b2lkKSBfX3B0cjY0DQorP0lfR2V0SW5mb0BORVdfTE1fT0JKQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFNFUlZFUl8wOjpJX0dldEluZm8odm9pZCkgX19wdHI2NA0KKz9JX0dldEluZm9AU0VSVkVSXzBAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgU0VSVkVSXzE6OklfR2V0SW5mbyh2b2lkKSBfX3B0cjY0DQorP0lfR2V0SW5mb0BTRVJWRVJfMUBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBTRVJWRVJfMjo6SV9HZXRJbmZvKHZvaWQpIF9fcHRyNjQNCis/SV9HZXRJbmZvQFNFUlZFUl8yQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFNIQVJFXzE6OklfR2V0SW5mbyh2b2lkKSBfX3B0cjY0DQorP0lfR2V0SW5mb0BTSEFSRV8xQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFNIQVJFXzI6OklfR2V0SW5mbyh2b2lkKSBfX3B0cjY0DQorP0lfR2V0SW5mb0BTSEFSRV8yQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFRJTUVfT0ZfREFZOjpJX0dldEluZm8odm9pZCkgX19wdHI2NA0KKz9JX0dldEluZm9AVElNRV9PRl9EQVlAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgVVNFUl8xMTo6SV9HZXRJbmZvKHZvaWQpIF9fcHRyNjQNCis/SV9HZXRJbmZvQFVTRVJfMTFAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgVVNFUl8yOjpJX0dldEluZm8odm9pZCkgX19wdHI2NA0KKz9JX0dldEluZm9AVVNFUl8yQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFVTRVJfMzo6SV9HZXRJbmZvKHZvaWQpIF9fcHRyNjQNCis/SV9HZXRJbmZvQFVTRVJfM0BATUVBQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBXS1NUQV8xMDo6SV9HZXRJbmZvKHZvaWQpIF9fcHRyNjQNCis/SV9HZXRJbmZvQFdLU1RBXzEwQEBVRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFdLU1RBXzE6OklfR2V0SW5mbyh2b2lkKSBfX3B0cjY0DQorP0lfR2V0SW5mb0BXS1NUQV8xQEBVRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFdLU1RBX1VTRVJfMTo6SV9HZXRJbmZvKHZvaWQpIF9fcHRyNjQNCis/SV9HZXRJbmZvQFdLU1RBX1VTRVJfMUBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBHUk9VUF8xOjpJX1dyaXRlSW5mbyh2b2lkKSBfX3B0cjY0DQorP0lfV3JpdGVJbmZvQEdST1VQXzFAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgR1JPVVBfTUVNQjo6SV9Xcml0ZUluZm8odm9pZCkgX19wdHI2NA0KKz9JX1dyaXRlSW5mb0BHUk9VUF9NRU1CQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIExTQV9BQ0NPVU5UOjpJX1dyaXRlSW5mbyh2b2lkKSBfX3B0cjY0DQorP0lfV3JpdGVJbmZvQExTQV9BQ0NPVU5UQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIE5FVF9BQ0NFU1NfMTo6SV9Xcml0ZUluZm8odm9pZCkgX19wdHI2NA0KKz9JX1dyaXRlSW5mb0BORVRfQUNDRVNTXzFAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgTkVXX0xNX09CSjo6SV9Xcml0ZUluZm8odm9pZCkgX19wdHI2NA0KKz9JX1dyaXRlSW5mb0BORVdfTE1fT0JKQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFNFUlZFUl8xOjpJX1dyaXRlSW5mbyh2b2lkKSBfX3B0cjY0DQorP0lfV3JpdGVJbmZvQFNFUlZFUl8xQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFNFUlZFUl8yOjpJX1dyaXRlSW5mbyh2b2lkKSBfX3B0cjY0DQorP0lfV3JpdGVJbmZvQFNFUlZFUl8yQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFNIQVJFXzE6OklfV3JpdGVJbmZvKHZvaWQpIF9fcHRyNjQNCis/SV9Xcml0ZUluZm9AU0hBUkVfMUBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBTSEFSRV8yOjpJX1dyaXRlSW5mbyh2b2lkKSBfX3B0cjY0DQorP0lfV3JpdGVJbmZvQFNIQVJFXzJAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgVVNFUl8yOjpJX1dyaXRlSW5mbyh2b2lkKSBfX3B0cjY0DQorP0lfV3JpdGVJbmZvQFVTRVJfMkBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBVU0VSXzM6OklfV3JpdGVJbmZvKHZvaWQpIF9fcHRyNjQNCis/SV9Xcml0ZUluZm9AVVNFUl8zQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFVTRVJfTUVNQjo6SV9Xcml0ZUluZm8odm9pZCkgX19wdHI2NA0KKz9JX1dyaXRlSW5mb0BVU0VSX01FTUJAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgV0tTVEFfVVNFUl8xOjpJX1dyaXRlSW5mbyh2b2lkKSBfX3B0cjY0DQorP0lfV3JpdGVJbmZvQFdLU1RBX1VTRVJfMUBATUVBQUpYWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIE5FVF9BQ0NFU1NfMTo6SV9Xcml0ZUluZm9BdXgodm9pZCkgX19wdHI2NA0KKz9JX1dyaXRlSW5mb0F1eEBORVRfQUNDRVNTXzFAQEFFQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgR1JPVVBfMTo6SV9Xcml0ZU5ldyh2b2lkKSBfX3B0cjY0DQorP0lfV3JpdGVOZXdAR1JPVVBfMUBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBMU0FfQUNDT1VOVDo6SV9Xcml0ZU5ldyh2b2lkKSBfX3B0cjY0DQorP0lfV3JpdGVOZXdATFNBX0FDQ09VTlRAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgTUVNQkVSU0hJUF9MTV9PQko6OklfV3JpdGVOZXcodm9pZCkgX19wdHI2NA0KKz9JX1dyaXRlTmV3QE1FTUJFUlNISVBfTE1fT0JKQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIE5FVF9BQ0NFU1NfMTo6SV9Xcml0ZU5ldyh2b2lkKSBfX3B0cjY0DQorP0lfV3JpdGVOZXdATkVUX0FDQ0VTU18xQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIE5FV19MTV9PQko6OklfV3JpdGVOZXcodm9pZCkgX19wdHI2NA0KKz9JX1dyaXRlTmV3QE5FV19MTV9PQkpAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgU0hBUkVfMjo6SV9Xcml0ZU5ldyh2b2lkKSBfX3B0cjY0DQorP0lfV3JpdGVOZXdAU0hBUkVfMkBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBVU0VSXzI6OklfV3JpdGVOZXcodm9pZCkgX19wdHI2NA0KKz9JX1dyaXRlTmV3QFVTRVJfMkBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBVU0VSXzM6OklfV3JpdGVOZXcodm9pZCkgX19wdHI2NA0KKz9JX1dyaXRlTmV3QFVTRVJfM0BATUVBQUpYWg0KKzsgcHJpdmF0ZTogc3RhdGljIHZvaWQgX19jZGVjbCBMU0FfUE9MSUNZOjpJbml0T2JqZWN0QXR0cmlidXRlcyhzdHJ1Y3QgX09CSkVDVF9BVFRSSUJVVEVTICogX19wdHI2NCxzdHJ1Y3QgX1NFQ1VSSVRZX1FVQUxJVFlfT0ZfU0VSVklDRSAqIF9fcHRyNjQpDQorP0luaXRPYmplY3RBdHRyaWJ1dGVzQExTQV9QT0xJQ1lAQENBWFBFQVVfT0JKRUNUX0FUVFJJQlVURVNAQFBFQVVfU0VDVVJJVFlfUVVBTElUWV9PRl9TRVJWSUNFQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgT1NfU0FDTF9TVUJKRUNUX0RFU0NSSVBUT1I6OkluaXRUb1plcm8odm9pZCkgX19wdHI2NA0KKz9Jbml0VG9aZXJvQE9TX1NBQ0xfU1VCSkVDVF9ERVNDUklQVE9SQEBRRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgT1NfU0FDTF9TVUJKRUNUX0lURVI6OkluaXRUb1plcm8odm9pZCkgX19wdHI2NA0KKz9Jbml0VG9aZXJvQE9TX1NBQ0xfU1VCSkVDVF9JVEVSQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgT1NfUFJJVklMRUdFX1NFVDo6SW5pdGlhbGl6ZU1lbW9yeSh2b2lkKSBfX3B0cjY0DQorP0luaXRpYWxpemVNZW1vcnlAT1NfUFJJVklMRUdFX1NFVEBAQUVBQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIE9TX1NJRDo6SW5pdGlhbGl6ZU1lbW9yeSh2b2lkICogX19wdHI2NCkNCis/SW5pdGlhbGl6ZU1lbW9yeUBPU19TSURAQFNBWFBFQVhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0xJU1RfT0ZfQlJPV1NFX0RPTUFJTl9JTkZPOjpJbnNlcnQoY2xhc3MgQlJPV1NFX0RPTUFJTl9JTkZPIGNvbnN0ICogX19wdHI2NCxjbGFzcyBJVEVSX1NMX0JST1dTRV9ET01BSU5fSU5GTyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5zZXJ0QFNMSVNUX09GX0JST1dTRV9ET01BSU5fSU5GT0BAUUVBQUpQRUJWQlJPV1NFX0RPTUFJTl9JTkZPQEBBRUFWSVRFUl9TTF9CUk9XU0VfRE9NQUlOX0lORk9AQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMU0FfQUNDT1VOVDo6SW5zZXJ0UHJpdmlsZWdlKHN0cnVjdCBfTFVJRCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0luc2VydFByaXZpbGVnZUBMU0FfQUNDT1VOVEBAUUVBQUpVX0xVSURAQEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBVU0VSXzExOjpJc0FjY291bnRzT3BlcmF0b3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0FjY291bnRzT3BlcmF0b3JAVVNFUl8xMUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBVU0VSXzExOjpJc0NvbW1PcGVyYXRvcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzQ29tbU9wZXJhdG9yQFVTRVJfMTFAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT1NfQUNMX1NVQkpFQ1RfSVRFUjo6SXNDb250YWluZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0NvbnRhaW5lckBPU19BQ0xfU1VCSkVDVF9JVEVSQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIExNX1NFUlZJQ0U6OklzQ29udGludWluZyhsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9Jc0NvbnRpbnVpbmdATE1fU0VSVklDRUBAUUVBQUhQRUFKQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUl9DT05UUk9MOjpJc0RBQ0xEZWZhdWx0ZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0RBQ0xEZWZhdWx0ZWRAT1NfU0VDVVJJVFlfREVTQ1JJUFRPUl9DT05UUk9MQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6OklzREFDTFByZXNlbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0RBQ0xQcmVzZW50QE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUl9DT05UUk9MOjpJc0RBQ0xQcmVzZW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNEQUNMUHJlc2VudEBPU19TRUNVUklUWV9ERVNDUklQVE9SX0NPTlRST0xAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTFNBX0FDQ09VTlQ6OklzRGVmYXVsdFNldHRpbmdzKHZvaWQpIF9fcHRyNjQNCis/SXNEZWZhdWx0U2V0dGluZ3NATFNBX0FDQ09VTlRAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT1NfREFDTF9TVUJKRUNUX0lURVI6OklzRGVueUFsbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRGVueUFsbEBPU19EQUNMX1NVQkpFQ1RfSVRFUkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBMT0NBVElPTjo6SXNEb21haW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0RvbWFpbkBMT0NBVElPTkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBMTV9TRVNTSU9OXzE6OklzRW5jcnlwdGVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNFbmNyeXB0ZWRATE1fU0VTU0lPTl8xQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JfQ09OVFJPTDo6SXNHcm91cERlZmF1bHRlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzR3JvdXBEZWZhdWx0ZWRAT1NfU0VDVVJJVFlfREVTQ1JJUFRPUl9DT05UUk9MQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIExNX1NFU1NJT05fMTo6SXNHdWVzdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzR3Vlc3RATE1fU0VTU0lPTl8xQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIExTQV9PQkpFQ1Q6OklzSGFuZGxlVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0hhbmRsZVZhbGlkQExTQV9PQkpFQ1RAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT1NfQUNFOjpJc0luaGVyaXRPbmx5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNJbmhlcml0T25seUBPU19BQ0VAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT1NfREFDTF9TVUJKRUNUX0lURVI6OklzSW5oZXJpdE9ubHlEZW55QWxsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNJbmhlcml0T25seURlbnlBbGxAT1NfREFDTF9TVUJKRUNUX0lURVJAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT1NfQUNFOjpJc0luaGVyaXRhbmNlUHJvcGFnYXRlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzSW5oZXJpdGFuY2VQcm9wYWdhdGVkQE9TX0FDRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPU19BQ0U6OklzSW5oZXJpdHRlZEJ5TmV3Q29udGFpbmVycyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzSW5oZXJpdHRlZEJ5TmV3Q29udGFpbmVyc0BPU19BQ0VAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT1NfQUNFOjpJc0luaGVyaXR0ZWRCeU5ld09iamVjdHModm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0luaGVyaXR0ZWRCeU5ld09iamVjdHNAT1NfQUNFQEBRRUJBSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIExNX09CSjo6SXNJbnZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNJbnZhbGlkQExNX09CSkBASUVCQUhYWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgTE1fT0JKX0JBU0U6OklzSW52YWxpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzSW52YWxpZEBMTV9PQkpfQkFTRUBAQUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPU19BQ0U6OklzS25vd25BQ0Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0tub3duQUNFQE9TX0FDRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBORVRfTkFNRTo6SXNMb2NhbChsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9Jc0xvY2FsQE5FVF9OQU1FQEBRRUFBSFBFQUpAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgTkVXX0xNX09CSjo6SXNOZXcodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc05ld0BORVdfTE1fT0JKQEBBRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9TX0RBQ0xfU1VCSkVDVF9JVEVSOjpJc05ld0NvbnRhaW5lckRlbnlBbGwodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc05ld0NvbnRhaW5lckRlbnlBbGxAT1NfREFDTF9TVUJKRUNUX0lURVJAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT1NfREFDTF9TVUJKRUNUX0lURVI6OklzTmV3T2JqZWN0RGVueUFsbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzTmV3T2JqZWN0RGVueUFsbEBPU19EQUNMX1NVQkpFQ1RfSVRFUkBAUUVCQUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBORVdfTE1fT0JKOjpJc09LU3RhdGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc09LU3RhdGVATkVXX0xNX09CSkBASUVCQUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBPU19BQ0U6OklzT3duZXJBbGxvYyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzT3duZXJBbGxvY0BPU19BQ0VAQElFQkFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgT1NfQUNMOjpJc093bmVyQWxsb2Modm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc093bmVyQWxsb2NAT1NfQUNMQEBJRUJBSFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBPU19QUklWSUxFR0VfU0VUOjpJc093bmVyQWxsb2Modm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc093bmVyQWxsb2NAT1NfUFJJVklMRUdFX1NFVEBAQUVCQUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBPU19TSUQ6OklzT3duZXJBbGxvYyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzT3duZXJBbGxvY0BPU19TSURAQElFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUl9DT05UUk9MOjpJc093bmVyRGVmYXVsdGVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNPd25lckRlZmF1bHRlZEBPU19TRUNVUklUWV9ERVNDUklQVE9SX0NPTlRST0xAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTE1fU0VSVklDRTo6SXNQYXVzZWQobG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNQYXVzZWRATE1fU0VSVklDRUBAUUVBQUhQRUFKQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTE1fU0VSVklDRTo6SXNQYXVzaW5nKGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzUGF1c2luZ0BMTV9TRVJWSUNFQEBRRUFBSFBFQUpAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBMTV9GSUxFXzM6OklzUGVybUNyZWF0ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUGVybUNyZWF0ZUBMTV9GSUxFXzNAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTE1fRklMRV8zOjpJc1Blcm1SZWFkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNQZXJtUmVhZEBMTV9GSUxFXzNAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTE1fRklMRV8zOjpJc1Blcm1Xcml0ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUGVybVdyaXRlQExNX0ZJTEVfM0BAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBVU0VSXzExOjpJc1ByaW50T3BlcmF0b3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1ByaW50T3BlcmF0b3JAVVNFUl8xMUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPU19TRUNVUklUWV9ERVNDUklQVE9SX0NPTlRST0w6OklzU0FDTERlZmF1bHRlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzU0FDTERlZmF1bHRlZEBPU19TRUNVUklUWV9ERVNDUklQVE9SX0NPTlRST0xAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUjo6SXNTQUNMUHJlc2VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzU0FDTFByZXNlbnRAT1NfU0VDVVJJVFlfREVTQ1JJUFRPUkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPU19TRUNVUklUWV9ERVNDUklQVE9SX0NPTlRST0w6OklzU0FDTFByZXNlbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1NBQ0xQcmVzZW50QE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JfQ09OVFJPTEBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBMT0NBVElPTjo6SXNTZXJ2ZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1NlcnZlckBMT0NBVElPTkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBVU0VSXzExOjpJc1NlcnZlck9wZXJhdG9yKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNTZXJ2ZXJPcGVyYXRvckBVU0VSXzExQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE5FVF9OQU1FOjpJc1NoYXJhYmxlKGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzU2hhcmFibGVATkVUX05BTUVAQFFFQUFIUEVBSkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIExNX1NFUlZJQ0U6OklzU3RhcnRlZChsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9Jc1N0YXJ0ZWRATE1fU0VSVklDRUBAUUVBQUhQRUFKQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTE1fU0VSVklDRTo6SXNTdGFydGluZyhsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9Jc1N0YXJ0aW5nQExNX1NFUlZJQ0VAQFFFQUFIUEVBSkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIExNX1NFUlZJQ0U6OklzU3RvcHBlZChsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9Jc1N0b3BwZWRATE1fU0VSVklDRUBAUUVBQUhQRUFKQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTE1fU0VSVklDRTo6SXNTdG9wcGluZyhsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9Jc1N0b3BwaW5nQExNX1NFUlZJQ0VAQFFFQUFIUEVBSkBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIExNX09CSjo6SXNVbmNvbnN0cnVjdGVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNVbmNvbnN0cnVjdGVkQExNX09CSkBASUVCQUhYWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgTE1fT0JKX0JBU0U6OklzVW5jb25zdHJ1Y3RlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVW5jb25zdHJ1Y3RlZEBMTV9PQkpfQkFTRUBAQUVCQUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBMTV9PQko6OklzVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1ZhbGlkQExNX09CSkBASUVCQUhYWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgTE1fT0JKX0JBU0U6OklzVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1ZhbGlkQExNX09CSl9CQVNFQEBBRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9TX0FDTDo6SXNWYWxpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVmFsaWRAT1NfQUNMQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6OklzVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1ZhbGlkQE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT1NfU0lEOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBPU19TSURAQFFFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIERPTUFJTjo6SXNWYWxpZERDKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0lzVmFsaWREQ0BET01BSU5AQFNBSFBFQkcwQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTE1fT0JKX0JBU0U6OklzVmFsaWRhdGlvbk9uKHZvaWQpIF9fcHRyNjQNCis/SXNWYWxpZGF0aW9uT25ATE1fT0JKX0JBU0VAQFFFQUFIWFoNCis7IGludCBfX2NkZWNsIElzV2hpdGVTcGFjZSh1bnNpZ25lZCBzaG9ydCkNCis/SXNXaGl0ZVNwYWNlQEBZQUhHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExTQV9QT0xJQ1k6OkpvaW5Eb21haW4oY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsaW50LGNsYXNzIE5MU19TVFIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Kb2luRG9tYWluQExTQV9QT0xJQ1lAQFFFQUFKQUVCVk5MU19TVFJAQDBIUEVCVjJAUEVCR0BaDQorOyBpbnQgX19jZGVjbCBMTU9UeXBlVG9OZXRUeXBlKGVudW0gTE1PX0RFVklDRSkNCis/TE1PVHlwZVRvTmV0VHlwZUBAWUFIVzRMTU9fREVWSUNFQEBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHZvaWQgX19jZGVjbCBET01BSU5fV0lUSF9EQ19DQUNIRTo6TGVhdmVDcml0aWNhbFNlY3Rpb24odm9pZCkNCis/TGVhdmVDcml0aWNhbFNlY3Rpb25ARE9NQUlOX1dJVEhfRENfQ0FDSEVAQENBWFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMU0FfUE9MSUNZOjpMZWF2ZURvbWFpbih2b2lkKSBfX3B0cjY0DQorP0xlYXZlRG9tYWluQExTQV9QT0xJQ1lAQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNDX01BTkFHRVI6OkxvY2sodm9pZCkgX19wdHI2NA0KKz9Mb2NrQFNDX01BTkFHRVJAQFFFQUFKWFoNCis7IGxvbmcgX19jZGVjbCBMc2F4R2V0Q29tcHV0ZXJOYW1lKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KQ0KKz9Mc2F4R2V0Q29tcHV0ZXJOYW1lQEBZQUpQRUFWTkxTX1NUUkBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIExNX09CSjo6TWFrZUNvbnN0cnVjdGVkKHZvaWQpIF9fcHRyNjQNCis/TWFrZUNvbnN0cnVjdGVkQExNX09CSkBASUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExNX09CSl9CQVNFOjpNYWtlQ29uc3RydWN0ZWQodm9pZCkgX19wdHI2NA0KKz9NYWtlQ29uc3RydWN0ZWRATE1fT0JKX0JBU0VAQEFFQUFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIExNX09CSjo6TWFrZUludmFsaWQodm9pZCkgX19wdHI2NA0KKz9NYWtlSW52YWxpZEBMTV9PQkpAQElFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBMTV9PQkpfQkFTRTo6TWFrZUludmFsaWQodm9pZCkgX19wdHI2NA0KKz9NYWtlSW52YWxpZEBMTV9PQkpfQkFTRUBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIE5FV19MTV9PQko6Ok1ha2VOZXcodm9pZCkgX19wdHI2NA0KKz9NYWtlTmV3QE5FV19MTV9PQkpAQEFFQUFYWFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBNYWtlTnVsbE51bGwodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQpDQorP01ha2VOdWxsTnVsbEBAWUFLUEVCR1BFQVBFQUdAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGxvbmcgX19jZGVjbCBMU0FfUE9MSUNZOjpNYWtlU2VjcmV0TmFtZShjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCxpbnQsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpDQorP01ha2VTZWNyZXROYW1lQExTQV9QT0xJQ1lAQENBSkFFQlZOTFNfU1RSQEBIUEVBVjJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIExNX09CSjo6TWFrZVVuY29uc3RydWN0ZWQodm9pZCkgX19wdHI2NA0KKz9NYWtlVW5jb25zdHJ1Y3RlZEBMTV9PQkpAQElFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBMTV9PQkpfQkFTRTo6TWFrZVVuY29uc3RydWN0ZWQodm9pZCkgX19wdHI2NA0KKz9NYWtlVW5jb25zdHJ1Y3RlZEBMTV9PQkpfQkFTRUBAQUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgTE1fT0JKOjpNYWtlVmFsaWQodm9pZCkgX19wdHI2NA0KKz9NYWtlVmFsaWRATE1fT0JKQEBJRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE1fT0JKX0JBU0U6Ok1ha2VWYWxpZCh2b2lkKSBfX3B0cjY0DQorP01ha2VWYWxpZEBMTV9PQkpfQkFTRUBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFRSSVBMRV9TRVJWRVJfRU5VTTo6TWFwQnJvd3NlclRvVHJpcGxlKHN0cnVjdCBfU0VSVkVSX0lORk9fMTAxIGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgX1RSSVBMRV9TRVJWRVJfSU5GTyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TWFwQnJvd3NlclRvVHJpcGxlQFRSSVBMRV9TRVJWRVJfRU5VTUBAQUVBQVhQRUJVX1NFUlZFUl9JTkZPXzEwMUBAUEVBVV9UUklQTEVfU0VSVkVSX0lORk9AQEBaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTWFwQ29tbSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP01hcENvbW1AQFlBS1BFQkdAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIE1hcERyaXZlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/TWFwRHJpdmVAQFlBS1BFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPU19BQ0xfU1VCSkVDVF9JVEVSOjpNYXBHZW5lcmljQWxsT25seSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP01hcEdlbmVyaWNBbGxPbmx5QE9TX0FDTF9TVUJKRUNUX0lURVJAQFFFQkFIWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBUUklQTEVfU0VSVkVSX0VOVU06Ok1hcEtub3duVG9UcmlwbGUoc3RydWN0IF9LTk9XTl9TRVJWRVJfSU5GTyBjb25zdCAqIF9fcHRyNjQsc3RydWN0IF9UUklQTEVfU0VSVkVSX0lORk8gKiBfX3B0cjY0KSBfX3B0cjY0DQorP01hcEtub3duVG9UcmlwbGVAVFJJUExFX1NFUlZFUl9FTlVNQEBBRUFBWFBFQlVfS05PV05fU0VSVkVSX0lORk9AQFBFQVVfVFJJUExFX1NFUlZFUl9JTkZPQEBAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIE1hcExQVCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP01hcExQVEBAWUFLUEVCR0BaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgU0VSVklDRV9FTlVNOjpNYXBMbVN0YXR1c1RvTnRTdGF0ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP01hcExtU3RhdHVzVG9OdFN0YXRlQFNFUlZJQ0VfRU5VTUBAQUVBQVhLUEVBSzBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFRSSVBMRV9TRVJWRVJfRU5VTTo6TWFwTG1Ub0tub3duKHN0cnVjdCBfVVNFUl9JTkZPXzAgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBfS05PV05fU0VSVkVSX0lORk8gKiBfX3B0cjY0KSBfX3B0cjY0DQorP01hcExtVG9Lbm93bkBUUklQTEVfU0VSVkVSX0VOVU1AQEFFQUFYUEVCVV9VU0VSX0lORk9fMEBAUEVBVV9LTk9XTl9TRVJWRVJfSU5GT0BAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBUUklQTEVfU0VSVkVSX0VOVU06Ok1hcE50VG9Lbm93bihzdHJ1Y3QgX0RPTUFJTl9ESVNQTEFZX01BQ0hJTkUgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBfS05PV05fU0VSVkVSX0lORk8gKiBfX3B0cjY0KSBfX3B0cjY0DQorP01hcE50VG9Lbm93bkBUUklQTEVfU0VSVkVSX0VOVU1AQEFFQUFYUEVCVV9ET01BSU5fRElTUExBWV9NQUNISU5FQEBQRUFVX0tOT1dOX1NFUlZFUl9JTkZPQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfQUNMX1NVQkpFQ1RfSVRFUjo6TWFwU3BlY2lmaWNUb0dlbmVyaWModW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP01hcFNwZWNpZmljVG9HZW5lcmljQE9TX0FDTF9TVUJKRUNUX0lURVJAQFFFQUFKUEVBS0hAWg0KKzsgcHJpdmF0ZTogZW51bSBfU0VSVkVSX1JPTEUgIF9fY2RlY2wgVFJJUExFX1NFUlZFUl9FTlVNOjpNYXBUeXBlTWFza1RvUm9sZSh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP01hcFR5cGVNYXNrVG9Sb2xlQFRSSVBMRV9TRVJWRVJfRU5VTUBAQUVCQT9BVzRfU0VSVkVSX1JPTEVAQEtAWg0KKzsgcHJpdmF0ZTogZW51bSBfU0VSVkVSX1RZUEUgIF9fY2RlY2wgVFJJUExFX1NFUlZFUl9FTlVNOjpNYXBUeXBlTWFza1RvVHlwZSh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP01hcFR5cGVNYXNrVG9UeXBlQFRSSVBMRV9TRVJWRVJfRU5VTUBAQUVCQT9BVzRfU0VSVkVSX1RZUEVAQEtAWg0KKzsgZW51bSBMTU9fREVWSUNFICBfX2NkZWNsIE5ldFR5cGVUb0xNT1R5cGUodW5zaWduZWQgbG9uZykNCis/TmV0VHlwZVRvTE1PVHlwZUBAWUE/QVc0TE1PX0RFVklDRUBAS0BaDQorOyBwdWJsaWM6IGNsYXNzIEFMSUFTX0VOVU1fT0JKIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEFMSUFTX0VOVU1fSVRFUjo6TmV4dChsb25nICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/TmV4dEBBTElBU19FTlVNX0lURVJAQFFFQUFQRUJWQUxJQVNfRU5VTV9PQkpAQFBFQUpIQFoNCis7IHB1YmxpYzogY2xhc3MgQlJPV1NFX0RPTUFJTl9JTkZPIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEJST1dTRV9ET01BSU5fRU5VTTo6TmV4dCh2b2lkKSBfX3B0cjY0DQorP05leHRAQlJPV1NFX0RPTUFJTl9FTlVNQEBRRUFBUEVCVkJST1dTRV9ET01BSU5fSU5GT0BAWFoNCis7IHB1YmxpYzogY2xhc3MgRklMRTJfRU5VTV9PQkogY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgRklMRTJfRU5VTV9JVEVSOjpOZXh0KGxvbmcgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9OZXh0QEZJTEUyX0VOVU1fSVRFUkBAUUVBQVBFQlZGSUxFMl9FTlVNX09CSkBAUEVBSkhAWg0KKzsgcHVibGljOiBjbGFzcyBGSUxFM19FTlVNX09CSiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBGSUxFM19FTlVNX0lURVI6Ok5leHQobG9uZyAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP05leHRARklMRTNfRU5VTV9JVEVSQEBRRUFBUEVCVkZJTEUzX0VOVU1fT0JKQEBQRUFKSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIElURVJfREVWSUNFOjpOZXh0KHZvaWQpIF9fcHRyNjQNCis/TmV4dEBJVEVSX0RFVklDRUBAUUVBQVBFQkdYWg0KKzsgcHVibGljOiBjbGFzcyBCUk9XU0VfRE9NQUlOX0lORk8gKiBfX3B0cjY0IF9fY2RlY2wgSVRFUl9TTF9CUk9XU0VfRE9NQUlOX0lORk86Ok5leHQodm9pZCkgX19wdHI2NA0KKz9OZXh0QElURVJfU0xfQlJPV1NFX0RPTUFJTl9JTkZPQEBRRUFBUEVBVkJST1dTRV9ET01BSU5fSU5GT0BAWFoNCis7IHB1YmxpYzogY2xhc3MgTE1fUkVTVU1FX0JVRkZFUiAqIF9fcHRyNjQgX19jZGVjbCBJVEVSX1NMX0xNX1JFU1VNRV9CVUZGRVI6Ok5leHQodm9pZCkgX19wdHI2NA0KKz9OZXh0QElURVJfU0xfTE1fUkVTVU1FX0JVRkZFUkBAUUVBQVBFQVZMTV9SRVNVTUVfQlVGRkVSQEBYWg0KKzsgcHVibGljOiBjbGFzcyBOTFNfU1RSICogX19wdHI2NCBfX2NkZWNsIElURVJfU0xfTkxTX1NUUjo6TmV4dCh2b2lkKSBfX3B0cjY0DQorP05leHRASVRFUl9TTF9OTFNfU1RSQEBRRUFBUEVBVk5MU19TVFJAQFhaDQorOyBwdWJsaWM6IGNsYXNzIExTQV9BQ0NPVU5UU19FTlVNX09CSiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBMU0FfQUNDT1VOVFNfRU5VTV9JVEVSOjpOZXh0KGxvbmcgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9OZXh0QExTQV9BQ0NPVU5UU19FTlVNX0lURVJAQFFFQUFQRUJWTFNBX0FDQ09VTlRTX0VOVU1fT0JKQEBQRUFKSEBaDQorOyBwdWJsaWM6IGNsYXNzIExTQV9QUklWSUxFR0VTX0VOVU1fT0JKIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIExTQV9QUklWSUxFR0VTX0VOVU1fSVRFUjo6TmV4dChsb25nICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/TmV4dEBMU0FfUFJJVklMRUdFU19FTlVNX0lURVJAQFFFQUFQRUJWTFNBX1BSSVZJTEVHRVNfRU5VTV9PQkpAQFBFQUpIQFoNCis7IHB1YmxpYzogY2xhc3MgTlRfR1JPVVBfRU5VTV9PQkogY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTlRfR1JPVVBfRU5VTV9JVEVSOjpOZXh0KGxvbmcgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9OZXh0QE5UX0dST1VQX0VOVU1fSVRFUkBAUUVBQVBFQlZOVF9HUk9VUF9FTlVNX09CSkBAUEVBSkhAWg0KKzsgcHVibGljOiBjbGFzcyBOVF9NQUNISU5FX0VOVU1fT0JKIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE5UX01BQ0hJTkVfRU5VTV9JVEVSOjpOZXh0KGxvbmcgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9OZXh0QE5UX01BQ0hJTkVfRU5VTV9JVEVSQEBRRUFBUEVCVk5UX01BQ0hJTkVfRU5VTV9PQkpAQFBFQUpIQFoNCis7IHB1YmxpYzogY2xhc3MgTlRfVVNFUl9FTlVNX09CSiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOVF9VU0VSX0VOVU1fSVRFUjo6TmV4dChsb25nICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/TmV4dEBOVF9VU0VSX0VOVU1fSVRFUkBAUUVBQVBFQlZOVF9VU0VSX0VOVU1fT0JKQEBQRUFKSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgT1NfREFDTF9TVUJKRUNUX0lURVI6Ok5leHQobG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TmV4dEBPU19EQUNMX1NVQkpFQ1RfSVRFUkBAVUVBQUhQRUFKQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBPU19TQUNMX1NVQkpFQ1RfSVRFUjo6TmV4dChsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9OZXh0QE9TX1NBQ0xfU1VCSkVDVF9JVEVSQEBVRUFBSFBFQUpAWg0KKzsgcHVibGljOiBjbGFzcyBTQU1fVVNFUl9FTlVNX09CSiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBTQU1fVVNFUl9FTlVNX0lURVI6Ok5leHQobG9uZyAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP05leHRAU0FNX1VTRVJfRU5VTV9JVEVSQEBRRUFBUEVCVlNBTV9VU0VSX0VOVU1fT0JKQEBQRUFKSEBaDQorOyBwdWJsaWM6IGNsYXNzIFRSVVNURURfRE9NQUlOX0VOVU1fT0JKIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFRSVVNURURfRE9NQUlOX0VOVU1fSVRFUjo6TmV4dChsb25nICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/TmV4dEBUUlVTVEVEX0RPTUFJTl9FTlVNX0lURVJAQFFFQUFQRUJWVFJVU1RFRF9ET01BSU5fRU5VTV9PQkpAQFBFQUpIQFoNCis7IHB1YmxpYzogY2xhc3MgVVNFUjBfRU5VTV9PQkogY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUjBfRU5VTV9JVEVSOjpOZXh0KGxvbmcgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9OZXh0QFVTRVIwX0VOVU1fSVRFUkBAUUVBQVBFQlZVU0VSMF9FTlVNX09CSkBAUEVBSkhAWg0KKzsgcHVibGljOiBjbGFzcyBVU0VSMTBfRU5VTV9PQkogY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUjEwX0VOVU1fSVRFUjo6TmV4dChsb25nICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/TmV4dEBVU0VSMTBfRU5VTV9JVEVSQEBRRUFBUEVCVlVTRVIxMF9FTlVNX09CSkBAUEVBSkhAWg0KKzsgcHVibGljOiBjbGFzcyBVU0VSMV9FTlVNX09CSiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBVU0VSMV9FTlVNX0lURVI6Ok5leHQobG9uZyAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP05leHRAVVNFUjFfRU5VTV9JVEVSQEBRRUFBUEVCVlVTRVIxX0VOVU1fT0JKQEBQRUFKSEBaDQorOyBwdWJsaWM6IGNsYXNzIFVTRVIyX0VOVU1fT0JKIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFVTRVIyX0VOVU1fSVRFUjo6TmV4dChsb25nICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/TmV4dEBVU0VSMl9FTlVNX0lURVJAQFFFQUFQRUJWVVNFUjJfRU5VTV9PQkpAQFBFQUpIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIExNX1JFU1VNRV9FTlVNX0lURVI6Ok5leHRHZXRJbmZvKHZvaWQpIF9fcHRyNjQNCis/TmV4dEdldEluZm9ATE1fUkVTVU1FX0VOVU1fSVRFUkBASUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgTE1fUkVTVU1FX0VOVU06Ok51a2VCdWZmZXJzKHZvaWQpIF9fcHRyNjQNCis/TnVrZUJ1ZmZlcnNATE1fUkVTVU1FX0VOVU1AQElFQUFYWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBMTV9TUlZSRVM6Ok51a2VVc2Vyc1Nlc3Npb24odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP051a2VVc2Vyc1Nlc3Npb25ATE1fU1JWUkVTQEBTQUpQRUJHMDBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1BPTElDWTo6T3Blbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9PcGVuQExTQV9QT0xJQ1lAQFFFQUFKUEVCR0tAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1NFQ1JFVDo6T3BlbihjbGFzcyBMU0FfUE9MSUNZIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP09wZW5ATFNBX1NFQ1JFVEBAUUVBQUpBRUJWTFNBX1BPTElDWUBAS0BaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgU0FNX0RPTUFJTjo6T3BlbkRvbWFpbihjbGFzcyBTQU1fU0VSVkVSIGNvbnN0ICYgX19wdHI2NCx2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP09wZW5Eb21haW5AU0FNX0RPTUFJTkBAQUVBQUpBRUJWU0FNX1NFUlZFUkBAUEVBWEtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTE1fU0VSVklDRTo6UGF1c2UodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9QYXVzZUBMTV9TRVJWSUNFQEBRRUFBSklJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExNX1NFUlZJQ0U6OlBvbGwoaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9Qb2xsQExNX1NFUlZJQ0VAQFFFQUFKUEVBSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBMU0FfQUNDT1VOVDo6UHJpbnRJbmZvKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QcmludEluZm9ATFNBX0FDQ09VTlRAQElFQUFYUEVCR0BaDQorOyBwdWJsaWM6IHN0cnVjdCBfQUNDRVNTX0xJU1QgKiBfX3B0cjY0IF9fY2RlY2wgTkVUX0FDQ0VTU18xOjpRdWVyeUFDRSh1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBQ0VATkVUX0FDQ0VTU18xQEBRRUJBUEVBVV9BQ0NFU1NfTElTVEBASUBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgT1NfQUNFOjpRdWVyeUFDRSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QUNFQE9TX0FDRUBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfQUNMOjpRdWVyeUFDRSh1bnNpZ25lZCBsb25nLGNsYXNzIE9TX0FDRSAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBQ0VAT1NfQUNMQEBRRUJBSktQRUFWT1NfQUNFQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBORVRfQUNDRVNTXzE6OlF1ZXJ5QUNFQ291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUFDRUNvdW50QE5FVF9BQ0NFU1NfMUBAUUVCQUlYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfQUNMOjpRdWVyeUFDRUNvdW50KHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QUNFQ291bnRAT1NfQUNMQEBRRUJBSlBFQUtAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBPU19BQ0wgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgT1NfQUNMX1NVQkpFQ1RfSVRFUjo6UXVlcnlBQ0wodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUFDTEBPU19BQ0xfU1VCSkVDVF9JVEVSQEBJRUJBUEVCVk9TX0FDTEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIEFETUlOX0FVVEhPUklUWTo6UXVlcnlBY2Nlc3NBY2NvdW50RG9tYWluKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBY2Nlc3NBY2NvdW50RG9tYWluQEFETUlOX0FVVEhPUklUWUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQURNSU5fQVVUSE9SSVRZOjpRdWVyeUFjY2Vzc0J1aWx0aW5Eb21haW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUFjY2Vzc0J1aWx0aW5Eb21haW5AQURNSU5fQVVUSE9SSVRZQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBBRE1JTl9BVVRIT1JJVFk6OlF1ZXJ5QWNjZXNzTFNBUG9saWN5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBY2Nlc3NMU0FQb2xpY3lAQURNSU5fQVVUSE9SSVRZQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBPU19BQ0U6OlF1ZXJ5QWNjZXNzTWFzayh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QWNjZXNzTWFza0BPU19BQ0VAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE9TX0RBQ0xfU1VCSkVDVF9JVEVSOjpRdWVyeUFjY2Vzc01hc2sodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUFjY2Vzc01hc2tAT1NfREFDTF9TVUJKRUNUX0lURVJAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIEFETUlOX0FVVEhPUklUWTo6UXVlcnlBY2Nlc3NTYW1TZXJ2ZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUFjY2Vzc1NhbVNlcnZlckBBRE1JTl9BVVRIT1JJVFlAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTlRfTUFDSElORV9FTlVNX09CSjo6UXVlcnlBY2NvdW50Q3RybCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QWNjb3VudEN0cmxATlRfTUFDSElORV9FTlVNX09CSkBAUUVCQUlYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBVU0VSXzI6OlF1ZXJ5QWNjb3VudERpc2FibGVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBY2NvdW50RGlzYWJsZWRAVVNFUl8yQEBRRUJBSFhaDQorOyBwdWJsaWM6IGNsYXNzIFNBTV9ET01BSU4gKiBfX3B0cjY0IF9fY2RlY2wgQURNSU5fQVVUSE9SSVRZOjpRdWVyeUFjY291bnREb21haW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUFjY291bnREb21haW5AQURNSU5fQVVUSE9SSVRZQEBRRUJBUEVBVlNBTV9ET01BSU5AQFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBVU0VSXzI6OlF1ZXJ5QWNjb3VudEV4cGlyZXModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUFjY291bnRFeHBpcmVzQFVTRVJfMkBAUUVCQUpYWg0KKzsgcHVibGljOiBlbnVtIF9BQ0NPVU5UX1RZUEUgIF9fY2RlY2wgVVNFUl8zOjpRdWVyeUFjY291bnRUeXBlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBY2NvdW50VHlwZUBVU0VSXzNAQFFFQkE/QVc0X0FDQ09VTlRfVFlQRUBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE9TX0FDRTo6UXVlcnlBY2VGbGFncyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QWNlRmxhZ3NAT1NfQUNFQEBRRUJBRVhaDQorOyBwdWJsaWM6IHN0cnVjdCBfQUNMICogX19wdHI2NCBfX2NkZWNsIE9TX0FDTDo6UXVlcnlBY2wodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUFjbEBPU19BQ0xAQFFFQkFQRUFVX0FDTEBAWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgaW50IF9fY2RlY2wgT1NfT0JKRUNUX1dJVEhfREFUQTo6UXVlcnlBbGxvY1NpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUFsbG9jU2l6ZUBPU19PQkpFQ1RfV0lUSF9EQVRBQEBJRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIERPTUFJTjo6UXVlcnlBbnlEQyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QW55RENARE9NQUlOQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE1FTUJFUlNISVBfTE1fT0JKOjpRdWVyeUFzc29jTmFtZSh1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBc3NvY05hbWVATUVNQkVSU0hJUF9MTV9PQkpAQFFFQkFQRUJHSUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBPU19TQUNMX1NVQkpFQ1RfSVRFUjo6UXVlcnlBdWRpdEFjY2Vzc01hc2tfRih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QXVkaXRBY2Nlc3NNYXNrX0ZAT1NfU0FDTF9TVUJKRUNUX0lURVJAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE9TX1NBQ0xfU1VCSkVDVF9JVEVSOjpRdWVyeUF1ZGl0QWNjZXNzTWFza19TKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBdWRpdEFjY2Vzc01hc2tfU0BPU19TQUNMX1NVQkpFQ1RfSVRFUkBAUUVCQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBMT0NBTF9VU0VSOjpRdWVyeUF1dGhGbGFncyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QXV0aEZsYWdzQExPQ0FMX1VTRVJAQFVFQkFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgVVNFUl8xMTo6UXVlcnlBdXRoRmxhZ3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUF1dGhGbGFnc0BVU0VSXzExQEBVRUJBS1haDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgTE1fRU5VTV9JVEVSOjpRdWVyeUJhc2VQdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUJhc2VQdHJATE1fRU5VTV9JVEVSQEBJRUJBUEVBRVhaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTE1fUkVTVU1FX0VOVU1fSVRFUjo6UXVlcnlCYXNlUHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlCYXNlUHRyQExNX1JFU1VNRV9FTlVNX0lURVJAQElFQkFQRUJFWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBERVZJQ0U6OlF1ZXJ5QnVmUHRyKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlCdWZQdHJAREVWSUNFQEBJRUFBUEVBRVhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgTlRfTUVNT1JZOjpRdWVyeUJ1ZmZlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QnVmZmVyQE5UX01FTU9SWUBASUVCQVBFQVhYWg0KKzsgcHVibGljOiBjbGFzcyBCVUZGRVIgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgU0VSVklDRV9DT05UUk9MOjpRdWVyeUJ1ZmZlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QnVmZmVyQFNFUlZJQ0VfQ09OVFJPTEBAUUVCQUFFQlZCVUZGRVJAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfU0FNX1JJRF9FTlVNRVJBVElPTiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBBTElBU19FTlVNX09CSjo6UXVlcnlCdWZmZXJQdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUJ1ZmZlclB0ckBBTElBU19FTlVNX09CSkBAUUVCQVBFQlVfU0FNX1JJRF9FTlVNRVJBVElPTkBAWFoNCis7IHB1YmxpYzogc3RydWN0IF9TRVJWRVJfSU5GT18xMDAgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgRE9NQUlOMF9FTlVNX09CSjo6UXVlcnlCdWZmZXJQdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUJ1ZmZlclB0ckBET01BSU4wX0VOVU1fT0JKQEBRRUJBUEVCVV9TRVJWRVJfSU5GT18xMDBAQFhaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgRU5VTV9PQkpfQkFTRTo6UXVlcnlCdWZmZXJQdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUJ1ZmZlclB0ckBFTlVNX09CSl9CQVNFQEBJRUJBUEVCRVhaDQorOyBwdWJsaWM6IHN0cnVjdCBfRklMRV9JTkZPXzMgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgRklMRTNfRU5VTV9PQko6OlF1ZXJ5QnVmZmVyUHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlCdWZmZXJQdHJARklMRTNfRU5VTV9PQkpAQFFFQkFQRUJVX0ZJTEVfSU5GT18zQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0dST1VQX0lORk9fMCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBHUk9VUDBfRU5VTV9PQko6OlF1ZXJ5QnVmZmVyUHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlCdWZmZXJQdHJAR1JPVVAwX0VOVU1fT0JKQEBRRUJBUEVCVV9HUk9VUF9JTkZPXzBAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTE1fUkVTVU1FX0JVRkZFUjo6UXVlcnlCdWZmZXJQdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUJ1ZmZlclB0ckBMTV9SRVNVTUVfQlVGRkVSQEBRRUJBUEVCRVhaDQorOyBwdWJsaWM6IHN0cnVjdCBfUE9MSUNZX1BSSVZJTEVHRV9ERUZJTklUSU9OIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIExTQV9QUklWSUxFR0VTX0VOVU1fT0JKOjpRdWVyeUJ1ZmZlclB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QnVmZmVyUHRyQExTQV9QUklWSUxFR0VTX0VOVU1fT0JKQEBRRUJBUEVCVV9QT0xJQ1lfUFJJVklMRUdFX0RFRklOSVRJT05AQFhaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgTkVXX0xNX09CSjo6UXVlcnlCdWZmZXJQdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUJ1ZmZlclB0ckBORVdfTE1fT0JKQEBJRUJBUEVBRVhaDQorOyBwdWJsaWM6IHN0cnVjdCBfRE9NQUlOX0RJU1BMQVlfTUFDSElORSBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOVF9NQUNISU5FX0VOVU1fT0JKOjpRdWVyeUJ1ZmZlclB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QnVmZmVyUHRyQE5UX01BQ0hJTkVfRU5VTV9PQkpAQFFFQkFQRUJVX0RPTUFJTl9ESVNQTEFZX01BQ0hJTkVAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfU0FNX1JJRF9FTlVNRVJBVElPTiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBTQU1fVVNFUl9FTlVNX09CSjo6UXVlcnlCdWZmZXJQdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUJ1ZmZlclB0ckBTQU1fVVNFUl9FTlVNX09CSkBAUUVCQVBFQlVfU0FNX1JJRF9FTlVNRVJBVElPTkBAWFoNCis7IHB1YmxpYzogc3RydWN0IF9TRVJWRVJfSU5GT18xMDEgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgU0VSVkVSMV9FTlVNX09CSjo6UXVlcnlCdWZmZXJQdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUJ1ZmZlclB0ckBTRVJWRVIxX0VOVU1fT0JKQEBRRUJBUEVCVV9TRVJWRVJfSU5GT18xMDFAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfVVNFUl9JTkZPXzAgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUjBfRU5VTV9PQko6OlF1ZXJ5QnVmZmVyUHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlCdWZmZXJQdHJAVVNFUjBfRU5VTV9PQkpAQFFFQkFQRUJVX1VTRVJfSU5GT18wQEBYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBORVdfTE1fT0JKOjpRdWVyeUJ1ZmZlclNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUJ1ZmZlclNpemVATkVXX0xNX09CSkBASUVCQUlYWg0KKzsgcHVibGljOiBjbGFzcyBTQU1fRE9NQUlOICogX19wdHI2NCBfX2NkZWNsIEFETUlOX0FVVEhPUklUWTo6UXVlcnlCdWlsdGluRG9tYWluKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlCdWlsdGluRG9tYWluQEFETUlOX0FVVEhPUklUWUBAUUVCQVBFQVZTQU1fRE9NQUlOQEBYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfQUNMOjpRdWVyeUJ5dGVzSW5Vc2UodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlCeXRlc0luVXNlQE9TX0FDTEBAUUVCQUpQRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTE1fU0VTU0lPTl8yOjpRdWVyeUNsaWVudFR5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNsaWVudFR5cGVATE1fU0VTU0lPTl8yQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEdST1VQXzE6OlF1ZXJ5Q29tbWVudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q29tbWVudEBHUk9VUF8xQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFNFUlZFUjFfRU5VTV9PQko6OlF1ZXJ5Q29tbWVudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q29tbWVudEBTRVJWRVIxX0VOVU1fT0JKQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFNFUlZFUl8xOjpRdWVyeUNvbW1lbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNvbW1lbnRAU0VSVkVSXzFAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgU0hBUkVfMTo6UXVlcnlDb21tZW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDb21tZW50QFNIQVJFXzFAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUl8xMTo6UXVlcnlDb21tZW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDb21tZW50QFVTRVJfMTFAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5FVF9OQU1FOjpRdWVyeUNvbXB1dGVyTmFtZShjbGFzcyBOTFNfU1RSICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUNvbXB1dGVyTmFtZUBORVRfTkFNRUBAUUVBQUpQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNDX1NFUlZJQ0U6OlF1ZXJ5Q29uZmlnKHN0cnVjdCBfUVVFUllfU0VSVklDRV9DT05GSUdXICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlDb25maWdAU0NfU0VSVklDRUBAUUVBQUpQRUFQRUFVX1FVRVJZX1NFUlZJQ0VfQ09ORklHV0BAQFoNCis7IHB1YmxpYzogY2xhc3MgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUl9DT05UUk9MIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6OlF1ZXJ5Q29udHJvbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q29udHJvbEBPU19TRUNVUklUWV9ERVNDUklQVE9SQEBRRUJBUEVCVk9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JfQ09OVFJPTEBAWFoNCis7IHB1YmxpYzogc3RydWN0IF9UUlVTVEVEX0NPTlRST0xMRVJTX0lORk8gY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTFNBX1RSVVNURURfRENfTElTVDo6UXVlcnlDb250cm9sbGVyTGlzdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q29udHJvbGxlckxpc3RATFNBX1RSVVNURURfRENfTElTVEBAUUVCQUFFQlVfVFJVU1RFRF9DT05UUk9MTEVSU19JTkZPQEBYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1RSVVNURURfRE9NQUlOOjpRdWVyeUNvbnRyb2xsZXJMaXN0KGNsYXNzIExTQV9SRUZfRE9NQUlOX01FTSAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDb250cm9sbGVyTGlzdEBMU0FfVFJVU1RFRF9ET01BSU5AQFFFQkFKUEVBVkxTQV9SRUZfRE9NQUlOX01FTUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgRU5VTV9DQUxMRVI6OlF1ZXJ5Q291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNvdW50QEVOVU1fQ0FMTEVSQEBRRUJBSVhaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGludCBfX2NkZWNsIExNX0VOVU1fSVRFUjo6UXVlcnlDb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q291bnRATE1fRU5VTV9JVEVSQEBJRUJBSVhaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGludCBfX2NkZWNsIExNX1JFU1VNRV9FTlVNX0lURVI6OlF1ZXJ5Q291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNvdW50QExNX1JFU1VNRV9FTlVNX0lURVJAQElFQkFJWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTFNBX1RSVVNURURfRENfTElTVDo6UXVlcnlDb3VudCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5Q291bnRATFNBX1RSVVNURURfRENfTElTVEBAUUVBQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTlRfTUVNT1JZOjpRdWVyeUNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDb3VudEBOVF9NRU1PUllAQFFFQkFLWFoNCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgX19jZGVjbCBOVF9BQ0NPVU5UX0VOVU06OlF1ZXJ5Q291bnRQcmVmZXJlbmNlczIodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9RdWVyeUNvdW50UHJlZmVyZW5jZXMyQE5UX0FDQ09VTlRfRU5VTUBAS0FKUEVBSzBJS0tLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgTlRfQUNDT1VOVF9FTlVNOjpRdWVyeUNvdW50UHJlZmVyZW5jZXModW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1F1ZXJ5Q291bnRQcmVmZXJlbmNlc0BOVF9BQ0NPVU5UX0VOVU1AQE1FQUFKUEVBSzBJS0tLQFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE9TX0FDTF9TVUJKRUNUX0lURVI6OlF1ZXJ5Q3VycmVudEFDRSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q3VycmVudEFDRUBPU19BQ0xfU1VCSkVDVF9JVEVSQEBJRUJBS1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMU0FfUE9MSUNZOjpRdWVyeUN1cnJlbnRVc2VyKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q3VycmVudFVzZXJATFNBX1BPTElDWUBAUUVCQUpQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgU0hBUkVfMjo6UXVlcnlDdXJyZW50VXNlcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q3VycmVudFVzZXNAU0hBUkVfMkBAUUVCQUlYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUjo6UXVlcnlEQUNMKGludCAqIF9fcHRyNjQsY2xhc3MgT1NfQUNMICogX19wdHI2NCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeURBQ0xAT1NfU0VDVVJJVFlfREVTQ1JJUFRPUkBAUUVCQUpQRUFIUEVBUEVBVk9TX0FDTEBAMEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMU0FfRE9NQUlOX0lORk86OlF1ZXJ5RGNOYW1lKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5RGNOYW1lQExTQV9ET01BSU5fSU5GT0BAUUVBQUpQRUFWTkxTX1NUUkBAQFoNCis7IHByb3RlY3RlZDogZW51bSBMTU9fREVWSUNFICBfX2NkZWNsIERFVklDRTo6UXVlcnlEZXZUeXBlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEZXZUeXBlQERFVklDRUBASUVCQT9BVzRMTU9fREVWSUNFQEBYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTE9DQVRJT046OlF1ZXJ5RGlzcGxheU5hbWUoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEaXNwbGF5TmFtZUBMT0NBVElPTkBAUUVCQUpQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExTQV9QUklWSUxFR0VTX0VOVU1fT0JKOjpRdWVyeURpc3BsYXlOYW1lKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0LGNsYXNzIExTQV9QT0xJQ1kgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RGlzcGxheU5hbWVATFNBX1BSSVZJTEVHRVNfRU5VTV9PQkpAQFFFQkFKUEVBVk5MU19TVFJAQFBFQlZMU0FfUE9MSUNZQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBMT0NBVElPTjo6UXVlcnlEb21haW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeURvbWFpbkBMT0NBVElPTkBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1RSQU5TTEFURURfTkFNRV9NRU06OlF1ZXJ5RG9tYWluSW5kZXgodW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9RdWVyeURvbWFpbkluZGV4QExTQV9UUkFOU0xBVEVEX05BTUVfTUVNQEBRRUJBSktAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBCUk9XU0VfRE9NQUlOX0lORk86OlF1ZXJ5RG9tYWluTmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RG9tYWluTmFtZUBCUk9XU0VfRE9NQUlOX0lORk9AQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIEJST1dTRV9ET01BSU5fSU5GTzo6UXVlcnlEb21haW5Tb3VyY2VzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEb21haW5Tb3VyY2VzQEJST1dTRV9ET01BSU5fSU5GT0BAUUVCQUtYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTkVUX05BTUU6OlF1ZXJ5RHJpdmUoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlEcml2ZUBORVRfTkFNRUBAUUVBQUpQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFVTRVJfTU9EQUxTXzM6OlF1ZXJ5RHVyYXRpb24odm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUR1cmF0aW9uQFVTRVJfTU9EQUxTXzNAQFFFQkFLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEJBU0U6OlF1ZXJ5RXJyb3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUVycm9yQEJBU0VAQFFFQkFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExNX1NFUlZJQ0U6OlF1ZXJ5RXhpdENvZGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUV4aXRDb2RlQExNX1NFUlZJQ0VAQFFFQkFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5FVF9BQ0NFU1NfMTo6UXVlcnlGYWlsaW5nTmFtZShjbGFzcyBOTFNfU1RSICogX19wdHI2NCxlbnVtIFBFUk1OQU1FX1RZUEUgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RmFpbGluZ05hbWVATkVUX0FDQ0VTU18xQEBRRUJBSlBFQVZOTFNfU1RSQEBQRUFXNFBFUk1OQU1FX1RZUEVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIExTQV9UUkFOU0xBVEVEX1NJRF9NRU06OlF1ZXJ5RmFpbGluZ05hbWVJbmRleCh1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUZhaWxpbmdOYW1lSW5kZXhATFNBX1RSQU5TTEFURURfU0lEX01FTUBAUUVBQUhQRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIExNX0ZJTEU6OlF1ZXJ5RmlsZUlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlGaWxlSWRATE1fRklMRUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgVVNFUl9NT0RBTFM6OlF1ZXJ5Rm9yY2VMb2dvZmYodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUZvcmNlTG9nb2ZmQFVTRVJfTU9EQUxTQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFVTRVJfMTE6OlF1ZXJ5RnVsbE5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUZ1bGxOYW1lQFVTRVJfMTFAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExNX1NFUlZJQ0U6OlF1ZXJ5RnVsbFN0YXR1cyhlbnVtIExNX1NFUlZJQ0VfU1RBVFVTICogX19wdHI2NCxzdHJ1Y3QgTE1fU0VSVklDRV9PVEhFUl9TVEFUVVMgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5RnVsbFN0YXR1c0BMTV9TRVJWSUNFQEBRRUFBSlBFQVc0TE1fU0VSVklDRV9TVEFUVVNAQFBFQVVMTV9TRVJWSUNFX09USEVSX1NUQVRVU0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6OlF1ZXJ5R3JvdXAoaW50ICogX19wdHI2NCxjbGFzcyBPU19TSUQgKiBfX3B0cjY0ICogX19wdHI2NCxpbnQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5R3JvdXBAT1NfU0VDVVJJVFlfREVTQ1JJUFRPUkBAUUVCQUpQRUFIUEVBUEVBVk9TX1NJREBAMEBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgTFNBX09CSkVDVDo6UXVlcnlIYW5kbGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUhhbmRsZUBMU0FfT0JKRUNUQEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgU0FNX09CSkVDVDo6UXVlcnlIYW5kbGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUhhbmRsZUBTQU1fT0JKRUNUQEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IHN0cnVjdCBTQ19IQU5ETEVfXyAqIF9fcHRyNjQgX19jZGVjbCBTRVJWSUNFX0NPTlRST0w6OlF1ZXJ5SGFuZGxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlIYW5kbGVAU0VSVklDRV9DT05UUk9MQEBRRUJBUEVBVVNDX0hBTkRMRV9fQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBVU0VSXzExOjpRdWVyeUhvbWVEaXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUhvbWVEaXJAVVNFUl8xMUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBVU0VSXzM6OlF1ZXJ5SG9tZWRpckRyaXZlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlIb21lZGlyRHJpdmVAVVNFUl8zQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgTE9HT05fSE9VUlNfU0VUVElORzo6UXVlcnlIb3Vyc0Jsb2NrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlIb3Vyc0Jsb2NrQExPR09OX0hPVVJTX1NFVFRJTkdAQFFFQkFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIExNX1NFU1NJT05fMTA6OlF1ZXJ5SWRsZVRpbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUlkbGVUaW1lQExNX1NFU1NJT05fMTBAQFFFQkFLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExTQV9TRUNSRVQ6OlF1ZXJ5SW5mbyhjbGFzcyBOTFNfU1RSICogX19wdHI2NCxjbGFzcyBOTFNfU1RSICogX19wdHI2NCx1bmlvbiBfTEFSR0VfSU5URUdFUiAqIF9fcHRyNjQsdW5pb24gX0xBUkdFX0lOVEVHRVIgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SW5mb0BMU0FfU0VDUkVUQEBRRUJBSlBFQVZOTFNfU1RSQEAwUEVBVF9MQVJHRV9JTlRFR0VSQEAxQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBMU0FfVFJVU1RFRF9EQ19MSVNUOjpRdWVyeUluZm8oY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5SW5mb0BMU0FfVFJVU1RFRF9EQ19MSVNUQEBBRUFBSkFFQlZOTFNfU1RSQEBQRUJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTE1fRU5VTTo6UXVlcnlJbmZvTGV2ZWwodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUluZm9MZXZlbEBMTV9FTlVNQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIExNX1JFU1VNRV9FTlVNOjpRdWVyeUluZm9MZXZlbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SW5mb0xldmVsQExNX1JFU1VNRV9FTlVNQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBPU19EQUNMX1NVQkpFQ1RfSVRFUjo6UXVlcnlJbmhlcml0T25seUFjY2Vzc01hc2sodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUluaGVyaXRPbmx5QWNjZXNzTWFza0BPU19EQUNMX1NVQkpFQ1RfSVRFUkBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgT1NfU0FDTF9TVUJKRUNUX0lURVI6OlF1ZXJ5SW5oZXJpdE9ubHlBdWRpdEFjY2Vzc01hc2tfRih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SW5oZXJpdE9ubHlBdWRpdEFjY2Vzc01hc2tfRkBPU19TQUNMX1NVQkpFQ1RfSVRFUkBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgT1NfU0FDTF9TVUJKRUNUX0lURVI6OlF1ZXJ5SW5oZXJpdE9ubHlBdWRpdEFjY2Vzc01hc2tfUyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SW5oZXJpdE9ubHlBdWRpdEFjY2Vzc01hc2tfU0BPU19TQUNMX1NVQkpFQ1RfSVRFUkBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBMTV9SRVNVTUVfQlVGRkVSOjpRdWVyeUl0ZW1Db3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SXRlbUNvdW50QExNX1JFU1VNRV9CVUZGRVJAQFFFQkFJWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBpbnQgX19jZGVjbCBNRU1CRVJTSElQX0xNX09CSjo6UXVlcnlJdGVtU2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SXRlbVNpemVATUVNQkVSU0hJUF9MTV9PQkpAQE1FQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgV0tTVEFfMTo6UXVlcnlMTVJvb3Qodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUxNUm9vdEBXS1NUQV8xQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IGNsYXNzIExTQV9QT0xJQ1kgKiBfX3B0cjY0IF9fY2RlY2wgQURNSU5fQVVUSE9SSVRZOjpRdWVyeUxTQVBvbGljeSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TFNBUG9saWN5QEFETUlOX0FVVEhPUklUWUBAUUVCQVBFQVZMU0FfUE9MSUNZQEBYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTkVUX05BTUU6OlF1ZXJ5TGFzdENvbXBvbmVudChjbGFzcyBOTFNfU1RSICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUxhc3RDb21wb25lbnRATkVUX05BTUVAQFFFQUFKUEVBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBPU19TSUQ6OlF1ZXJ5TGFzdFN1YkF1dGhvcml0eSh1bnNpZ25lZCBsb25nICogX19wdHI2NCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlMYXN0U3ViQXV0aG9yaXR5QE9TX1NJREBAUUVCQUpQRUFQRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE9TX1NJRDo6UXVlcnlMZW5ndGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUxlbmd0aEBPU19TSURAQFFFQkFLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5FVF9OQU1FOjpRdWVyeUxvY2FsRHJpdmUoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlMb2NhbERyaXZlQE5FVF9OQU1FQEBRRUFBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTkVUX05BTUU6OlF1ZXJ5TG9jYWxQYXRoKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5TG9jYWxQYXRoQE5FVF9OQU1FQEBRRUFBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0NfTUFOQUdFUjo6UXVlcnlMb2NrU3RhdHVzKHN0cnVjdCBfUVVFUllfU0VSVklDRV9MT0NLX1NUQVRVU1cgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUxvY2tTdGF0dXNAU0NfTUFOQUdFUkBAUUVBQUpQRUFQRUFVX1FVRVJZX1NFUlZJQ0VfTE9DS19TVEFUVVNXQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBVU0VSXzI6OlF1ZXJ5TG9ja291dCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TG9ja291dEBVU0VSXzJAQFFFQkFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgV0tTVEFfMTA6OlF1ZXJ5TG9nb25Eb21haW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUxvZ29uRG9tYWluQFdLU1RBXzEwQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFdLU1RBX1VTRVJfMTo6UXVlcnlMb2dvbkRvbWFpbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TG9nb25Eb21haW5AV0tTVEFfVVNFUl8xQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IGNsYXNzIExPR09OX0hPVVJTX1NFVFRJTkcgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgVVNFUl8xMTo6UXVlcnlMb2dvbkhvdXJzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlMb2dvbkhvdXJzQFVTRVJfMTFAQFFFQkFBRUJWTE9HT05fSE9VUlNfU0VUVElOR0BAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgV0tTVEFfMTo6UXVlcnlMb2dvblNlcnZlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TG9nb25TZXJ2ZXJAV0tTVEFfMUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBXS1NUQV9VU0VSXzE6OlF1ZXJ5TG9nb25TZXJ2ZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUxvZ29uU2VydmVyQFdLU1RBX1VTRVJfMUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBXS1NUQV8xMDo6UXVlcnlMb2dvblVzZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUxvZ29uVXNlckBXS1NUQV8xMEBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0xVSUQgIF9fY2RlY2wgT1NfTFVJRDo6UXVlcnlMdWlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlMdWlkQE9TX0xVSURAQFFFQkE/QVVfTFVJREBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgU0VSVkVSMV9FTlVNX09CSjo6UXVlcnlNYWpvclZlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TWFqb3JWZXJAU0VSVkVSMV9FTlVNX09CSkBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBTRVJWRVJfMTo6UXVlcnlNYWpvclZlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TWFqb3JWZXJAU0VSVkVSXzFAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgV0tTVEFfMTA6OlF1ZXJ5TWFqb3JWZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1ham9yVmVyQFdLU1RBXzEwQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBVU0VSX01PREFMUzo6UXVlcnlNYXhQYXNzd2RBZ2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1heFBhc3N3ZEFnZUBVU0VSX01PREFMU0BAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBTRVJWRVJfMjo6UXVlcnlNYXhVc2Vycyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TWF4VXNlcnNAU0VSVkVSXzJAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgU0hBUkVfMjo6UXVlcnlNYXhVc2VzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNYXhVc2VzQFNIQVJFXzJAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFVTRVJfTU9EQUxTOjpRdWVyeU1pblBhc3N3ZEFnZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TWluUGFzc3dkQWdlQFVTRVJfTU9EQUxTQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIFVTRVJfTU9EQUxTOjpRdWVyeU1pblBhc3N3ZExlbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TWluUGFzc3dkTGVuQFVTRVJfTU9EQUxTQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIFNFUlZFUjFfRU5VTV9PQko6OlF1ZXJ5TWlub3JWZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1pbm9yVmVyQFNFUlZFUjFfRU5VTV9PQkpAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgU0VSVkVSXzE6OlF1ZXJ5TWlub3JWZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1pbm9yVmVyQFNFUlZFUl8xQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIFdLU1RBXzEwOjpRdWVyeU1pbm9yVmVyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNaW5vclZlckBXS1NUQV8xMEBAUUVCQUlYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTE9DQVRJT046OlF1ZXJ5Tk9TVmVyc2lvbih1bnNpZ25lZCBpbnQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlOT1NWZXJzaW9uQExPQ0FUSU9OQEBRRUFBSlBFQUkwQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDT01QVVRFUjo6UXVlcnlOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQENPTVBVVEVSQEBVRUJBUEVCR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgREVWSUNFOjpRdWVyeU5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU5hbWVAREVWSUNFQEBVRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIERPTUFJTjBfRU5VTV9PQko6OlF1ZXJ5TmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TmFtZUBET01BSU4wX0VOVU1fT0JKQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgRE9NQUlOOjpRdWVyeU5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU5hbWVARE9NQUlOQEBVRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEdST1VQMF9FTlVNX09CSjo6UXVlcnlOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQEdST1VQMF9FTlVNX09CSkBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEdST1VQOjpRdWVyeU5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU5hbWVAR1JPVVBAQFVFQkFQRUJHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBHUk9VUF9NRU1COjpRdWVyeU5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU5hbWVAR1JPVVBfTUVNQkBAVUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBMTV9TRVJWSUNFOjpRdWVyeU5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU5hbWVATE1fU0VSVklDRUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIExNX1NFU1NJT046OlF1ZXJ5TmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TmFtZUBMTV9TRVNTSU9OQEBVRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIExPQ0FUSU9OOjpRdWVyeU5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU5hbWVATE9DQVRJT05AQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBMU0FfQUNDT1VOVDo6UXVlcnlOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQExTQV9BQ0NPVU5UQEBVRUJBUEVCR1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMU0FfQUNDVF9ET01fSU5GT19NRU06OlF1ZXJ5TmFtZShjbGFzcyBOTFNfU1RSICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU5hbWVATFNBX0FDQ1RfRE9NX0lORk9fTUVNQEBRRUJBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1BSSU1BUllfRE9NX0lORk9fTUVNOjpRdWVyeU5hbWUoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQExTQV9QUklNQVJZX0RPTV9JTkZPX01FTUBAUUVCQUpQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExTQV9SRUZfRE9NQUlOX01FTTo6UXVlcnlOYW1lKHVuc2lnbmVkIGxvbmcsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQExTQV9SRUZfRE9NQUlOX01FTUBAUUVCQUpLUEVBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMU0FfVFJBTlNMQVRFRF9OQU1FX01FTTo6UXVlcnlOYW1lKHVuc2lnbmVkIGxvbmcsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQExTQV9UUkFOU0xBVEVEX05BTUVfTUVNQEBRRUJBSktQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExTQV9UUlVTVF9JTkZPX01FTTo6UXVlcnlOYW1lKHVuc2lnbmVkIGxvbmcsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQExTQV9UUlVTVF9JTkZPX01FTUBAUUVCQUpLUEVBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTkVUX0FDQ0VTUzo6UXVlcnlOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQE5FVF9BQ0NFU1NAQFVFQkFQRUJHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBORVdfTE1fT0JKOjpRdWVyeU5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU5hbWVATkVXX0xNX09CSkBAVUVCQVBFQkdYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfU0lEOjpRdWVyeU5hbWUoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TmFtZUBPU19TSURAQFFFQkFKUEVBVk5MU19TVFJAQFBFQkdQRUFYQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgU0VSVkVSMV9FTlVNX09CSjo6UXVlcnlOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQFNFUlZFUjFfRU5VTV9PQkpAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBTRVJWRVJfMDo6UXVlcnlOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQFNFUlZFUl8wQEBVRUJBUEVCR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgU0hBUkU6OlF1ZXJ5TmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TmFtZUBTSEFSRUBAVUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBVU0VSMF9FTlVNX09CSjo6UXVlcnlOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQFVTRVIwX0VOVU1fT0JKQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUjo6UXVlcnlOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQFVTRVJAQFVFQkFQRUJHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBVU0VSX01FTUI6OlF1ZXJ5TmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TmFtZUBVU0VSX01FTUJAQFVFQkFQRUJHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBVU0VSX01PREFMUzo6UXVlcnlOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQFVTRVJfTU9EQUxTQEBVRUJBUEVCR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUl9NT0RBTFNfMzo6UXVlcnlOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQFVTRVJfTU9EQUxTXzNAQFVFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE9TX0RBQ0xfU1VCSkVDVF9JVEVSOjpRdWVyeU5ld0NvbnRhaW5lckFjY2Vzc01hc2sodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU5ld0NvbnRhaW5lckFjY2Vzc01hc2tAT1NfREFDTF9TVUJKRUNUX0lURVJAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE9TX1NBQ0xfU1VCSkVDVF9JVEVSOjpRdWVyeU5ld0NvbnRhaW5lckF1ZGl0QWNjZXNzTWFza19GKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOZXdDb250YWluZXJBdWRpdEFjY2Vzc01hc2tfRkBPU19TQUNMX1NVQkpFQ1RfSVRFUkBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgT1NfU0FDTF9TVUJKRUNUX0lURVI6OlF1ZXJ5TmV3Q29udGFpbmVyQXVkaXRBY2Nlc3NNYXNrX1Modm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU5ld0NvbnRhaW5lckF1ZGl0QWNjZXNzTWFza19TQE9TX1NBQ0xfU1VCSkVDVF9JVEVSQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBPU19EQUNMX1NVQkpFQ1RfSVRFUjo6UXVlcnlOZXdPYmplY3RBY2Nlc3NNYXNrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOZXdPYmplY3RBY2Nlc3NNYXNrQE9TX0RBQ0xfU1VCSkVDVF9JVEVSQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBPU19TQUNMX1NVQkpFQ1RfSVRFUjo6UXVlcnlOZXdPYmplY3RBdWRpdEFjY2Vzc01hc2tfRih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TmV3T2JqZWN0QXVkaXRBY2Nlc3NNYXNrX0ZAT1NfU0FDTF9TVUJKRUNUX0lURVJAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE9TX1NBQ0xfU1VCSkVDVF9JVEVSOjpRdWVyeU5ld09iamVjdEF1ZGl0QWNjZXNzTWFza19TKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOZXdPYmplY3RBdWRpdEFjY2Vzc01hc2tfU0BPU19TQUNMX1NVQkpFQ1RfSVRFUkBAUUVCQUtYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTQU1fUFNXRF9ET01fSU5GT19NRU06OlF1ZXJ5Tm9Bbm9uQ2hhbmdlKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlOb0Fub25DaGFuZ2VAU0FNX1BTV0RfRE9NX0lORk9fTUVNQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFVTRVJfMjo6UXVlcnlOb1Bhc3N3b3JkRXhwaXJlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOb1Bhc3N3b3JkRXhwaXJlQFVTRVJfMkBAUUVCQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBMTV9GSUxFXzM6OlF1ZXJ5TnVtTG9jayh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TnVtTG9ja0BMTV9GSUxFXzNAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIEZJTEUzX0VOVU1fT0JKOjpRdWVyeU51bUxvY2tzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOdW1Mb2Nrc0BGSUxFM19FTlVNX09CSkBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBMTV9TRVNTSU9OXzE6OlF1ZXJ5TnVtT3BlbnModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU51bU9wZW5zQExNX1NFU1NJT05fMUBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgT1NfUFJJVklMRUdFX1NFVDo6UXVlcnlOdW1iZXJPZlByaXZpbGVnZXModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU51bWJlck9mUHJpdmlsZWdlc0BPU19QUklWSUxFR0VfU0VUQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBVU0VSX01PREFMU18zOjpRdWVyeU9ic2VydmF0aW9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlPYnNlcnZhdGlvbkBVU0VSX01PREFMU18zQEBRRUJBS1haDQorOyBwdWJsaWM6IGNsYXNzIFNUUkxJU1QgKiBfX3B0cjY0IF9fY2RlY2wgV0tTVEFfMTA6OlF1ZXJ5T3RoZXJEb21haW5zKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlPdGhlckRvbWFpbnNAV0tTVEFfMTBAQFFFQkFQRUFWU1RSTElTVEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgV0tTVEFfVVNFUl8xOjpRdWVyeU90aGVyRG9tYWlucyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5T3RoZXJEb21haW5zQFdLU1RBX1VTRVJfMUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUjo6UXVlcnlPd25lcihpbnQgKiBfX3B0cjY0LGNsYXNzIE9TX1NJRCAqIF9fcHRyNjQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlPd25lckBPU19TRUNVUklUWV9ERVNDUklQVE9SQEBRRUJBSlBFQUhQRUFQRUFWT1NfU0lEQEAwQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgRE9NQUlOOjpRdWVyeVBEQyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UERDQERPTUFJTkBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIExTQV9BQ0NUX0RPTV9JTkZPX01FTTo6UXVlcnlQU0lEKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQU0lEQExTQV9BQ0NUX0RPTV9JTkZPX01FTUBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIExTQV9ET01BSU5fSU5GTzo6UXVlcnlQU0lEKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQU0lEQExTQV9ET01BSU5fSU5GT0BAUUVCQVFFQVhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIExTQV9QUklNQVJZX0RPTV9JTkZPX01FTTo6UXVlcnlQU0lEKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQU0lEQExTQV9QUklNQVJZX0RPTV9JTkZPX01FTUBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIExTQV9SRUZfRE9NQUlOX01FTTo6UXVlcnlQU0lEKHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQU0lEQExTQV9SRUZfRE9NQUlOX01FTUBAUUVCQVBFQVhLQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBMU0FfVFJVU1RfSU5GT19NRU06OlF1ZXJ5UFNJRCh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UFNJREBMU0FfVFJVU1RfSU5GT19NRU1AQFFFQkFQRUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgT1NfU0lEOjpRdWVyeVBTSUQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBTSURAT1NfU0lEQEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgU0FNX0RPTUFJTjo6UXVlcnlQU0lEKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQU0lEQFNBTV9ET01BSU5AQFFFQkFQRUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUl8xMTo6UXVlcnlQYXJtcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UGFybXNAVVNFUl8xMUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBVU0VSX01PREFMUzo6UXVlcnlQYXNzd2RIaXN0TGVuKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQYXNzd2RIaXN0TGVuQFVTRVJfTU9EQUxTQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFNIQVJFXzI6OlF1ZXJ5UGFzc3dvcmQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBhc3N3b3JkQFNIQVJFXzJAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUl8yOjpRdWVyeVBhc3N3b3JkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQYXNzd29yZEBVU0VSXzJAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFVTRVJfMzo6UXVlcnlQYXNzd29yZEV4cGlyZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBhc3N3b3JkRXhwaXJlZEBVU0VSXzNAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgU0hBUkVfMjo6UXVlcnlQYXRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQYXRoQFNIQVJFXzJAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgRklMRTNfRU5VTV9PQko6OlF1ZXJ5UGF0aE5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBhdGhOYW1lQEZJTEUzX0VOVU1fT0JKQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIExNX0ZJTEVfMzo6UXVlcnlQYXRobmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UGF0aG5hbWVATE1fRklMRV8zQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE5MU19TVFI6OlF1ZXJ5UGNoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQY2hATkxTX1NUUkBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBORVRfQUNDRVNTXzE6OlF1ZXJ5UGVybSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsZW51bSBQRVJNTkFNRV9UWVBFKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UGVybUBORVRfQUNDRVNTXzFAQFFFQkFJUEVCR1c0UEVSTU5BTUVfVFlQRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTE1fRklMRV8zOjpRdWVyeVBlcm1pc3Npb24odm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBlcm1pc3Npb25ATE1fRklMRV8zQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIFNIQVJFXzI6OlF1ZXJ5UGVybWlzc2lvbnModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBlcm1pc3Npb25zQFNIQVJFXzJAQFFFQkFJWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExTQV9UUlVTVEVEX0RPTUFJTjo6UXVlcnlQb3NpeE9mZnNldCh1bnNpZ25lZCBsb25nICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBvc2l4T2Zmc2V0QExTQV9UUlVTVEVEX0RPTUFJTkBAUUVCQUpQRUFLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExTQV9QT0xJQ1k6OlF1ZXJ5UHJpbWFyeUJyb3dzZXJHcm91cChjbGFzcyBOTFNfU1RSICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVByaW1hcnlCcm93c2VyR3JvdXBATFNBX1BPTElDWUBAUUVCQUpQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExTQV9QT0xJQ1k6OlF1ZXJ5UHJpbWFyeURvbWFpbk5hbWUoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQcmltYXJ5RG9tYWluTmFtZUBMU0FfUE9MSUNZQEBRRUJBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgVVNFUl8zOjpRdWVyeVByaW1hcnlHcm91cElkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQcmltYXJ5R3JvdXBJZEBVU0VSXzNAQFFFQkFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBpbnQgX19jZGVjbCBMT0NBTF9VU0VSOjpRdWVyeVByaXYodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVByaXZATE9DQUxfVVNFUkBAVUVCQUlYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGludCBfX2NkZWNsIFVTRVJfMTE6OlF1ZXJ5UHJpdih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UHJpdkBVU0VSXzExQEBVRUJBSVhaDQorOyBwdWJsaWM6IHN0cnVjdCBfUFJJVklMRUdFX1NFVCAqIF9fcHRyNjQgX19jZGVjbCBPU19QUklWSUxFR0VfU0VUOjpRdWVyeVByaXZTZXQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVByaXZTZXRAT1NfUFJJVklMRUdFX1NFVEBAUUVCQVBFQVVfUFJJVklMRUdFX1NFVEBAWFoNCis7IHB1YmxpYzogY2xhc3MgT1NfTFVJRF9BTkRfQVRUUklCVVRFUyBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBPU19QUklWSUxFR0VfU0VUOjpRdWVyeVByaXZpbGVnZShsb25nKSBfX3B0cjY0DQorP1F1ZXJ5UHJpdmlsZWdlQE9TX1BSSVZJTEVHRV9TRVRAQFFFQUFQRUJWT1NfTFVJRF9BTkRfQVRUUklCVVRFU0BASkBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMU0FfQUNDT1VOVDo6UXVlcnlQcml2aWxlZ2VFbnVtSXRlcihjbGFzcyBMU0FfQUNDT1VOVF9QUklWSUxFR0VfRU5VTV9JVEVSICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlQcml2aWxlZ2VFbnVtSXRlckBMU0FfQUNDT1VOVEBAUUVBQUpQRUFQRUFWTFNBX0FDQ09VTlRfUFJJVklMRUdFX0VOVU1fSVRFUkBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBMU0FfUE9MSUNZOjpRdWVyeVByb2R1Y3RUeXBlKGVudW0gTFNQTF9QUk9EX1RZUEUgKiBfX3B0cjY0KQ0KKz9RdWVyeVByb2R1Y3RUeXBlQExTQV9QT0xJQ1lAQFNBSlBFQVc0TFNQTF9QUk9EX1RZUEVAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFVTRVJfMzo6UXVlcnlQcm9maWxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQcm9maWxlQFVTRVJfM0BAUUVCQVBFQkdYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIExNX0VOVU06OlF1ZXJ5UHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQdHJATE1fRU5VTUBASUVCQVBFQUVYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1BPTElDWV9BQ0NPVU5UX0RPTUFJTl9JTkZPIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIExTQV9BQ0NUX0RPTV9JTkZPX01FTTo6UXVlcnlQdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVB0ckBMU0FfQUNDVF9ET01fSU5GT19NRU1AQFFFQkFQRUJVX1BPTElDWV9BQ0NPVU5UX0RPTUFJTl9JTkZPQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1BPTElDWV9BVURJVF9FVkVOVFNfSU5GTyAqIF9fcHRyNjQgX19jZGVjbCBMU0FfQVVESVRfRVZFTlRfSU5GT19NRU06OlF1ZXJ5UHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQdHJATFNBX0FVRElUX0VWRU5UX0lORk9fTUVNQEBRRUJBUEVBVV9QT0xJQ1lfQVVESVRfRVZFTlRTX0lORk9AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfUE9MSUNZX1BSSU1BUllfRE9NQUlOX0lORk8gY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTFNBX1BSSU1BUllfRE9NX0lORk9fTUVNOjpRdWVyeVB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UHRyQExTQV9QUklNQVJZX0RPTV9JTkZPX01FTUBAUUVCQVBFQlVfUE9MSUNZX1BSSU1BUllfRE9NQUlOX0lORk9AQFhaDQorOyBwcml2YXRlOiBzdHJ1Y3QgX0xTQV9UUlVTVF9JTkZPUk1BVElPTiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBMU0FfUkVGX0RPTUFJTl9NRU06OlF1ZXJ5UHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQdHJATFNBX1JFRl9ET01BSU5fTUVNQEBBRUJBUEVCVV9MU0FfVFJVU1RfSU5GT1JNQVRJT05AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfUE9MSUNZX0xTQV9TRVJWRVJfUk9MRV9JTkZPIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIExTQV9TRVJWRVJfUk9MRV9JTkZPX01FTTo6UXVlcnlQdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVB0ckBMU0FfU0VSVkVSX1JPTEVfSU5GT19NRU1AQFFFQkFQRUJVX1BPTElDWV9MU0FfU0VSVkVSX1JPTEVfSU5GT0BAWFoNCis7IHByaXZhdGU6IHN0cnVjdCBfTFNBX1RSQU5TTEFURURfTkFNRSBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBMU0FfVFJBTlNMQVRFRF9OQU1FX01FTTo6UXVlcnlQdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVB0ckBMU0FfVFJBTlNMQVRFRF9OQU1FX01FTUBAQUVCQVBFQlVfTFNBX1RSQU5TTEFURURfTkFNRUBAWFoNCis7IHByaXZhdGU6IHN0cnVjdCBfTFNBX1RSQU5TTEFURURfU0lEIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIExTQV9UUkFOU0xBVEVEX1NJRF9NRU06OlF1ZXJ5UHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQdHJATFNBX1RSQU5TTEFURURfU0lEX01FTUBAQUVCQVBFQlVfTFNBX1RSQU5TTEFURURfU0lEQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0xTQV9UUlVTVF9JTkZPUk1BVElPTiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBMU0FfVFJVU1RfSU5GT19NRU06OlF1ZXJ5UHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQdHJATFNBX1RSVVNUX0lORk9fTUVNQEBRRUJBUEVCVV9MU0FfVFJVU1RfSU5GT1JNQVRJT05AQFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgT1NfT0JKRUNUX1dJVEhfREFUQTo6UXVlcnlQdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVB0ckBPU19PQkpFQ1RfV0lUSF9EQVRBQEBJRUJBUEVBWFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfRE9NQUlOX1BBU1NXT1JEX0lORk9STUFUSU9OIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFNBTV9QU1dEX0RPTV9JTkZPX01FTTo6UXVlcnlQdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVB0ckBTQU1fUFNXRF9ET01fSU5GT19NRU1AQFFFQkFQRUJVX0RPTUFJTl9QQVNTV09SRF9JTkZPUk1BVElPTkBAWFoNCis7IHB1YmxpYzogc3RydWN0IF9TQU1fUklEX0VOVU1FUkFUSU9OIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFNBTV9SSURfRU5VTUVSQVRJT05fTUVNOjpRdWVyeVB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UHRyQFNBTV9SSURfRU5VTUVSQVRJT05fTUVNQEBRRUJBUEVCVV9TQU1fUklEX0VOVU1FUkFUSU9OQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU0FNX0FMSUFTOjpRdWVyeVJJRCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5UklEQFNBTV9BTElBU0BAUUVBQUtYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfU0lEOjpRdWVyeVJhd0lEKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UmF3SURAT1NfU0lEQEBRRUJBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTkVUX05BTUU6OlF1ZXJ5UmVsYXRpdmVQYXRoKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5UmVsYXRpdmVQYXRoQE5FVF9OQU1FQEBRRUFBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBERVZJQ0U6OlF1ZXJ5UmVtb3RlTmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UmVtb3RlTmFtZUBERVZJQ0VAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgREVWSUNFOjpRdWVyeVJlbW90ZVR5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVJlbW90ZVR5cGVAREVWSUNFQEBRRUJBSVhaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBORVRfQUNDRVNTXzE6OlF1ZXJ5UmVxdWlyZWRTcGFjZSh1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlSZXF1aXJlZFNwYWNlQE5FVF9BQ0NFU1NfMUBAQUVCQUlJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgU0hBUkVfMTo6UXVlcnlSZXNvdXJjZVR5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVJlc291cmNlVHlwZUBTSEFSRV8xQEBRRUJBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgT1NfQUNFOjpRdWVyeVJldmlzaW9uKHZvaWQpDQorP1F1ZXJ5UmV2aXNpb25AT1NfQUNFQEBTQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX2NkZWNsIEFMSUFTX0VOVU1fT0JKOjpRdWVyeVJpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UmlkQEFMSUFTX0VOVU1fT0JKQEBRRUJBP0JLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6OlF1ZXJ5U0FDTChpbnQgKiBfX3B0cjY0LGNsYXNzIE9TX0FDTCAqIF9fcHRyNjQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTQUNMQE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JAQFFFQkFKUEVBSFBFQVBFQVZPU19BQ0xAQDBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfQUNFOjpRdWVyeVNJRChjbGFzcyBPU19TSUQgKiBfX3B0cjY0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNJREBPU19BQ0VAQFFFQkFKUEVBUEVBVk9TX1NJREBAQFoNCis7IHB1YmxpYzogY2xhc3MgT1NfU0lEIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE9TX0FDTF9TVUJKRUNUX0lURVI6OlF1ZXJ5U0lEKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTSURAT1NfQUNMX1NVQkpFQ1RfSVRFUkBAUUVCQVBFQlZPU19TSURAQFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgT1NfQUNFOjpRdWVyeVNJRE1lbW9yeSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U0lETWVtb3J5QE9TX0FDRUBASUVCQVBFQVhYWg0KKzsgcHVibGljOiBjbGFzcyBTQU1fU0VSVkVSICogX19wdHI2NCBfX2NkZWNsIEFETUlOX0FVVEhPUklUWTo6UXVlcnlTYW1TZXJ2ZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNhbVNlcnZlckBBRE1JTl9BVVRIT1JJVFlAQFFFQkFQRUFWU0FNX1NFUlZFUkBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUl8yOjpRdWVyeVNjcmlwdFBhdGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNjcmlwdFBhdGhAVVNFUl8yQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTQ19TRVJWSUNFOjpRdWVyeVNlY3VyaXR5KHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5U2VjdXJpdHlAU0NfU0VSVklDRUBAUUVBQUpLUEVBUEVBWEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIFNFUlZFUl8yOjpRdWVyeVNlY3VyaXR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZWN1cml0eUBTRVJWRVJfMkBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBERVZJQ0U6OlF1ZXJ5U2VydmVyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZXJ2ZXJAREVWSUNFQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIExNX0ZJTEU6OlF1ZXJ5U2VydmVyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZXJ2ZXJATE1fRklMRUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBMTV9TRVNTSU9OOjpRdWVyeVNlcnZlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2VydmVyQExNX1NFU1NJT05AQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTE9DQVRJT046OlF1ZXJ5U2VydmVyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZXJ2ZXJATE9DQVRJT05AQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTE9DX0xNX0VOVU06OlF1ZXJ5U2VydmVyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZXJ2ZXJATE9DX0xNX0VOVU1AQFFFQkFQRUJHWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTE9DX0xNX09CSjo6UXVlcnlTZXJ2ZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNlcnZlckBMT0NfTE1fT0JKQEBJRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIExPQ19MTV9SRVNVTUVfRU5VTTo6UXVlcnlTZXJ2ZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNlcnZlckBMT0NfTE1fUkVTVU1FX0VOVU1AQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgU0hBUkU6OlF1ZXJ5U2VydmVyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZXJ2ZXJAU0hBUkVAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTE1fU0VSVklDRTo6UXVlcnlTZXJ2ZXJOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZXJ2ZXJOYW1lQExNX1NFUlZJQ0VAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTkVUX0FDQ0VTUzo6UXVlcnlTZXJ2ZXJOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZXJ2ZXJOYW1lQE5FVF9BQ0NFU1NAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5FVF9OQU1FOjpRdWVyeVNlcnZlclNoYXJlKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5U2VydmVyU2hhcmVATkVUX05BTUVAQFFFQUFKUEVBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBTRVJWRVIxX0VOVU1fT0JKOjpRdWVyeVNlcnZlclR5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNlcnZlclR5cGVAU0VSVkVSMV9FTlVNX09CSkBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU0VSVkVSXzE6OlF1ZXJ5U2VydmVyVHlwZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2VydmVyVHlwZUBTRVJWRVJfMUBAUUVCQUtYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0NfTUFOQUdFUjo6UXVlcnlTZXJ2aWNlRGlzcGxheU5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5U2VydmljZURpc3BsYXlOYW1lQFNDX01BTkFHRVJAQFFFQUFKUEVCR1BFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0NfTUFOQUdFUjo6UXVlcnlTZXJ2aWNlS2V5TmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlTZXJ2aWNlS2V5TmFtZUBTQ19NQU5BR0VSQEBRRUFBSlBFQkdQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5FVF9OQU1FOjpRdWVyeVNoYXJlKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5U2hhcmVATkVUX05BTUVAQFFFQUFKUEVBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgT1NfU0lEOjpRdWVyeVNpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2lkQE9TX1NJREBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIE9TX0FDRTo6UXVlcnlTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTaXplQE9TX0FDRUBAUUVCQUdYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfQUNMOjpRdWVyeVNpemVJbmZvcm1hdGlvbihzdHJ1Y3QgX0FDTF9TSVpFX0lORk9STUFUSU9OICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNpemVJbmZvcm1hdGlvbkBPU19BQ0xAQFFFQkFKUEVBVV9BQ0xfU0laRV9JTkZPUk1BVElPTkBAQFoNCis7IHB1YmxpYzogZW51bSBMTU9fREVWX1NUQVRFICBfX2NkZWNsIERFVklDRTo6UXVlcnlTdGF0ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U3RhdGVAREVWSUNFQEBRRUJBP0FXNExNT19ERVZfU1RBVEVAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIERFVklDRTo6UXVlcnlTdGF0dXModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVN0YXR1c0BERVZJQ0VAQFFFQkFJWFoNCis7IHB1YmxpYzogZW51bSBMTV9TRVJWSUNFX1NUQVRVUyAgX19jZGVjbCBMTV9TRVJWSUNFOjpRdWVyeVN0YXR1cyhsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeVN0YXR1c0BMTV9TRVJWSUNFQEBRRUFBP0FXNExNX1NFUlZJQ0VfU1RBVFVTQEBQRUFKQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNDX1NFUlZJQ0U6OlF1ZXJ5U3RhdHVzKHN0cnVjdCBfU0VSVklDRV9TVEFUVVMgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5U3RhdHVzQFNDX1NFUlZJQ0VAQFFFQUFKUEVBVV9TRVJWSUNFX1NUQVRVU0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE9TX1NJRDo6UXVlcnlTdWJBdXRob3JpdHkodW5zaWduZWQgY2hhcix1bnNpZ25lZCBsb25nICogX19wdHI2NCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTdWJBdXRob3JpdHlAT1NfU0lEQEBRRUJBSkVQRUFQRUFLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE9TX1NJRDo6UXVlcnlTdWJBdXRob3JpdHlDb3VudCh1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTdWJBdXRob3JpdHlDb3VudEBPU19TSURAQFFFQkFKUEVBUEVBRUBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgTlRfQUNDT1VOVFNfVVRJTElUWTo6UXVlcnlTeXN0ZW1TaWQoZW51bSBVSV9TeXN0ZW1TaWQsY2xhc3MgT1NfU0lEICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP1F1ZXJ5U3lzdGVtU2lkQE5UX0FDQ09VTlRTX1VUSUxJVFlAQFNBSlc0VUlfU3lzdGVtU2lkQEBQRUFWT1NfU0lEQEBQRUJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTkxTX1NUUjo6UXVlcnlUZXh0TGVuZ3RoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlUZXh0TGVuZ3RoQE5MU19TVFJAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFVTRVJfTU9EQUxTXzM6OlF1ZXJ5VGhyZXNob2xkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlUaHJlc2hvbGRAVVNFUl9NT0RBTFNfM0BAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTE1fU0VTU0lPTl8xMDo6UXVlcnlUaW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlUaW1lQExNX1NFU1NJT05fMTBAQFFFQkFLWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE9TX0FDTF9TVUJKRUNUX0lURVI6OlF1ZXJ5VG90YWxBY2VDb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VG90YWxBY2VDb3VudEBPU19BQ0xfU1VCSkVDVF9JVEVSQEBJRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIExNX1JFU1VNRV9FTlVNOjpRdWVyeVRvdGFsSXRlbUNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlUb3RhbEl0ZW1Db3VudEBMTV9SRVNVTUVfRU5VTUBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBERVZJQ0U6OlF1ZXJ5VHlwZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VHlwZUBERVZJQ0VAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE9TX0FDRTo6UXVlcnlUeXBlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlUeXBlQE9TX0FDRUBAUUVCQUVYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTkVUX05BTUU6OlF1ZXJ5VU5DUGF0aChjbGFzcyBOTFNfU1RSICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeVVOQ1BhdGhATkVUX05BTUVAQFFFQUFKUEVBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBfVU5JQ09ERV9TVFJJTkcgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTlRfTUFDSElORV9FTlVNX09CSjo6UXVlcnlVbmljb2RlTWFjaGluZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VW5pY29kZU1hY2hpbmVATlRfTUFDSElORV9FTlVNX09CSkBAUUVCQVBFQlVfVU5JQ09ERV9TVFJJTkdAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfVU5JQ09ERV9TVFJJTkcgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTFNBX0FDQ1RfRE9NX0lORk9fTUVNOjpRdWVyeVVuaWNvZGVOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlVbmljb2RlTmFtZUBMU0FfQUNDVF9ET01fSU5GT19NRU1AQFFFQkFQRUJVX1VOSUNPREVfU1RSSU5HQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1VOSUNPREVfU1RSSU5HIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIExTQV9QUklNQVJZX0RPTV9JTkZPX01FTTo6UXVlcnlVbmljb2RlTmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VW5pY29kZU5hbWVATFNBX1BSSU1BUllfRE9NX0lORk9fTUVNQEBRRUJBUEVCVV9VTklDT0RFX1NUUklOR0BAWFoNCis7IHByaXZhdGU6IHN0cnVjdCBfVU5JQ09ERV9TVFJJTkcgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTFNBX1JFRl9ET01BSU5fTUVNOjpRdWVyeVVuaWNvZGVOYW1lKHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlVbmljb2RlTmFtZUBMU0FfUkVGX0RPTUFJTl9NRU1AQEFFQkFQRUJVX1VOSUNPREVfU1RSSU5HQEBLQFoNCis7IHByaXZhdGU6IHN0cnVjdCBfVU5JQ09ERV9TVFJJTkcgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTFNBX1RSQU5TTEFURURfTkFNRV9NRU06OlF1ZXJ5VW5pY29kZU5hbWUodW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9RdWVyeVVuaWNvZGVOYW1lQExTQV9UUkFOU0xBVEVEX05BTUVfTUVNQEBBRUJBUEVCVV9VTklDT0RFX1NUUklOR0BAS0BaDQorOyBwdWJsaWM6IHN0cnVjdCBfVU5JQ09ERV9TVFJJTkcgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTFNBX1RSVVNUX0lORk9fTUVNOjpRdWVyeVVuaWNvZGVOYW1lKHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlVbmljb2RlTmFtZUBMU0FfVFJVU1RfSU5GT19NRU1AQFFFQkFQRUJVX1VOSUNPREVfU1RSSU5HQEBLQFoNCis7IHB1YmxpYzogc3RydWN0IF9VTklDT0RFX1NUUklORyBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBTQU1fVVNFUl9FTlVNX09CSjo6UXVlcnlVbmljb2RlVXNlck5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVVuaWNvZGVVc2VyTmFtZUBTQU1fVVNFUl9FTlVNX09CSkBAUUVCQVBFQlVfVU5JQ09ERV9TVFJJTkdAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIExPR09OX0hPVVJTX1NFVFRJTkc6OlF1ZXJ5VW5pdHNQZXJXZWVrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlVbml0c1BlcldlZWtATE9HT05fSE9VUlNfU0VUVElOR0BAUUVCQUlYWg0KKzsgcHJpdmF0ZTogc3RydWN0IF9ET01BSU5fUEFTU1dPUkRfSU5GT1JNQVRJT04gKiBfX3B0cjY0IF9fY2RlY2wgU0FNX1BTV0RfRE9NX0lORk9fTUVNOjpRdWVyeVVwZGF0ZVB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VXBkYXRlUHRyQFNBTV9QU1dEX0RPTV9JTkZPX01FTUBAQUVCQVBFQVVfRE9NQUlOX1BBU1NXT1JEX0lORk9STUFUSU9OQEBYWg0KKzsgcHVibGljOiBlbnVtIF9TSURfTkFNRV9VU0UgIF9fY2RlY2wgTFNBX1RSQU5TTEFURURfTkFNRV9NRU06OlF1ZXJ5VXNlKHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlVc2VATFNBX1RSQU5TTEFURURfTkFNRV9NRU1AQFFFQkE/QVc0X1NJRF9OQU1FX1VTRUBAS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFVTRVJfMjo6UXVlcnlVc2VyQ2FudENoYW5nZVBhc3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVVzZXJDYW50Q2hhbmdlUGFzc0BVU0VSXzJAQFFFQkFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUl8xMTo6UXVlcnlVc2VyQ29tbWVudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VXNlckNvbW1lbnRAVVNFUl8xMUBAUUVCQVBFQkdYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBVU0VSXzI6OlF1ZXJ5VXNlckZsYWcodW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VXNlckZsYWdAVVNFUl8yQEBJRUJBSElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTE1fU0VTU0lPTl8xOjpRdWVyeVVzZXJGbGFncyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VXNlckZsYWdzQExNX1NFU1NJT05fMUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBVU0VSXzI6OlF1ZXJ5VXNlckZsYWdzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlVc2VyRmxhZ3NAVVNFUl8yQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBVU0VSXzM6OlF1ZXJ5VXNlcklkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlVc2VySWRAVVNFUl8zQEBRRUJBS1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTQU1fVVNFUl9FTlVNX09CSjo6UXVlcnlVc2VyTmFtZShjbGFzcyBOTFNfU1RSICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVVzZXJOYW1lQFNBTV9VU0VSX0VOVU1fT0JKQEBRRUJBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBXS1NUQV9VU0VSXzE6OlF1ZXJ5VXNlck5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVVzZXJOYW1lQFdLU1RBX1VTRVJfMUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBVU0VSXzI6OlF1ZXJ5VXNlclBhc3NSZXF1aXJlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VXNlclBhc3NSZXF1aXJlZEBVU0VSXzJAQFFFQkFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTE1fRklMRV8zOjpRdWVyeVVzZXJuYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlVc2VybmFtZUBMTV9GSUxFXzNAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTE1fU0VTU0lPTl8xMDo6UXVlcnlVc2VybmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VXNlcm5hbWVATE1fU0VTU0lPTl8xMEBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTE1fQ09ORklHOjpRdWVyeVZhbHVlKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeVZhbHVlQExNX0NPTkZJR0BAUUVBQUpQRUFWTkxTX1NUUkBAUEVCR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFdLU1RBXzEwOjpRdWVyeVdrc3RhRG9tYWluKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlXa3N0YURvbWFpbkBXS1NUQV8xMEBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBVU0VSXzExOjpRdWVyeVdvcmtzdGF0aW9ucyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5V29ya3N0YXRpb25zQFVTRVJfMTFAQFFFQkFQRUJHWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBMTV9FTlVNOjpSZWdpc3Rlckl0ZXIodm9pZCkgX19wdHI2NA0KKz9SZWdpc3Rlckl0ZXJATE1fRU5VTUBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExNX1JFU1VNRV9FTlVNOjpSZWdpc3Rlckl0ZXIodm9pZCkgX19wdHI2NA0KKz9SZWdpc3Rlckl0ZXJATE1fUkVTVU1FX0VOVU1AQEFFQUFYWFoNCis7IHB1YmxpYzogY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQgX19jZGVjbCBTTElTVF9PRl9OTFNfU1RSOjpSZW1vdmUoY2xhc3MgSVRFUl9TTF9OTFNfU1RSICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVAU0xJU1RfT0ZfTkxTX1NUUkBAUUVBQVBFQVZOTFNfU1RSQEBBRUFWSVRFUl9TTF9OTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0FNX0FMSUFTOjpSZW1vdmVNZW1iZXIodm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVtb3ZlTWVtYmVyQFNBTV9BTElBU0BAUUVBQUpQRUFYQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNBTV9HUk9VUDo6UmVtb3ZlTWVtYmVyKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVtb3ZlTWVtYmVyQFNBTV9HUk9VUEBAUUVBQUpLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNBTV9ET01BSU46OlJlbW92ZU1lbWJlckZyb21BbGlhc2VzKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbW92ZU1lbWJlckZyb21BbGlhc2VzQFNBTV9ET01BSU5AQFFFQUFKUEVBWEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTQU1fQUxJQVM6OlJlbW92ZU1lbWJlcnModm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9SZW1vdmVNZW1iZXJzQFNBTV9BTElBU0BAUUVBQUpQRUFQRUFYSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTQU1fR1JPVVA6OlJlbW92ZU1lbWJlcnModW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1JlbW92ZU1lbWJlcnNAU0FNX0dST1VQQEBRRUFBSlBFQUtJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE9TX1BSSVZJTEVHRV9TRVQ6OlJlbW92ZVByaXZpbGVnZShsb25nKSBfX3B0cjY0DQorP1JlbW92ZVByaXZpbGVnZUBPU19QUklWSUxFR0VfU0VUQEBRRUFBSkpAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfUFJJVklMRUdFX1NFVDo6UmVtb3ZlUHJpdmlsZWdlKHN0cnVjdCBfTFVJRCkgX19wdHI2NA0KKz9SZW1vdmVQcml2aWxlZ2VAT1NfUFJJVklMRUdFX1NFVEBAUUVBQUpVX0xVSURAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBVU0VSOjpSZW5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbmFtZUBVU0VSQEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQURNSU5fQVVUSE9SSVRZOjpSZXBsYWNlQWNjb3VudERvbWFpbih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlcGxhY2VBY2NvdW50RG9tYWluQEFETUlOX0FVVEhPUklUWUBAUUVBQUpLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEFETUlOX0FVVEhPUklUWTo6UmVwbGFjZUJ1aWx0aW5Eb21haW4odW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZXBsYWNlQnVpbHRpbkRvbWFpbkBBRE1JTl9BVVRIT1JJVFlAQFFFQUFKS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBBRE1JTl9BVVRIT1JJVFk6OlJlcGxhY2VMU0FQb2xpY3kodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZXBsYWNlTFNBUG9saWN5QEFETUlOX0FVVEhPUklUWUBAUUVBQUpLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEFETUlOX0FVVEhPUklUWTo6UmVwbGFjZVNhbVNlcnZlcih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlcGxhY2VTYW1TZXJ2ZXJAQURNSU5fQVVUSE9SSVRZQEBRRUFBSktAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQkFTRTo6UmVwb3J0RXJyb3IobG9uZykgX19wdHI2NA0KKz9SZXBvcnRFcnJvckBCQVNFQEBJRUFBWEpAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgTkVXX0xNX09CSjo6UmVwb3J0RXJyb3IobG9uZykgX19wdHI2NA0KKz9SZXBvcnRFcnJvckBORVdfTE1fT0JKQEBJRUFBWEpAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQlJPV1NFX0RPTUFJTl9FTlVNOjpSZXNldCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QEJST1dTRV9ET01BSU5fRU5VTUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgT1NfQUNMX1NVQkpFQ1RfSVRFUjo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBPU19BQ0xfU1VCSkVDVF9JVEVSQEBRRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBMU0FfT0JKRUNUOjpSZXNldEhhbmRsZSh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0SGFuZGxlQExTQV9PQkpFQ1RAQElFQUFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFNBTV9PQkpFQ1Q6OlJlc2V0SGFuZGxlKHZvaWQpIF9fcHRyNjQNCis/UmVzZXRIYW5kbGVAU0FNX09CSkVDVEBASUVBQVhYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgT1NfT0JKRUNUX1dJVEhfREFUQTo6UmVzaXplKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9SZXNpemVAT1NfT0JKRUNUX1dJVEhfREFUQUBASUVBQUpJQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIE5FV19MTV9PQko6OlJlc2l6ZUJ1ZmZlcih1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/UmVzaXplQnVmZmVyQE5FV19MTV9PQkpAQElFQUFKSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMTV9NRVNTQUdFOjpTZW5kQnVmZmVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1NlbmRCdWZmZXJATE1fTUVTU0FHRUBAUUVBQUpQRUJHMElAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTE1fTUVTU0FHRTo6U2VuZEJ1ZmZlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQlVGRkVSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZW5kQnVmZmVyQExNX01FU1NBR0VAQFFFQUFKUEVCR0FFQlZCVUZGRVJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMT0NBVElPTjo6U2V0KGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRATE9DQVRJT05AQFFFQUFKQUVCVjFAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgTFNBX01FTU9SWTo6U2V0KHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0QExTQV9NRU1PUllAQFVFQUFYUEVBWEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOVF9NRU1PUlk6OlNldCh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldEBOVF9NRU1PUllAQFVFQUFYUEVBWEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTQU1fTUVNT1JZOjpTZXQodm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRAU0FNX01FTU9SWUBAVUVBQVhQRUFYS0BaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgTkVUX05BTUU6OlNldEFCU1BhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEFCU1BhdGhATkVUX05BTUVAQEFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBPU19BQ0U6OlNldEFjY2Vzc01hc2sodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRBY2Nlc3NNYXNrQE9TX0FDRUBAUUVBQVhLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFVTRVJfMjo6U2V0QWNjb3VudERpc2FibGVkKGludCkgX19wdHI2NA0KKz9TZXRBY2NvdW50RGlzYWJsZWRAVVNFUl8yQEBRRUFBSkhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1BPTElDWTo6U2V0QWNjb3VudERvbWFpbihjbGFzcyBMU0FfQUNDVF9ET01fSU5GT19NRU0gY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEFjY291bnREb21haW5ATFNBX1BPTElDWUBAUUVBQUpQRUJWTFNBX0FDQ1RfRE9NX0lORk9fTUVNQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1BPTElDWTo6U2V0QWNjb3VudERvbWFpbk5hbWUoY2xhc3MgTkxTX1NUUiBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEFjY291bnREb21haW5OYW1lQExTQV9QT0xJQ1lAQFFFQUFKUEVCVk5MU19TVFJAQFBFQlFFQVhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVVNFUl8yOjpTZXRBY2NvdW50RXhwaXJlcyhsb25nKSBfX3B0cjY0DQorP1NldEFjY291bnRFeHBpcmVzQFVTRVJfMkBAUUVBQUpKQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFVTRVJfMzo6U2V0QWNjb3VudFR5cGUoZW51bSBfQUNDT1VOVF9UWVBFKSBfX3B0cjY0DQorP1NldEFjY291bnRUeXBlQFVTRVJfM0BAUUVBQUpXNF9BQ0NPVU5UX1RZUEVAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBTSEFSRV8xOjpTZXRBZG1pbk9ubHkoaW50KSBfX3B0cjY0DQorP1NldEFkbWluT25seUBTSEFSRV8xQEBJRUFBWEhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1BPTElDWTo6U2V0QXVkaXRFdmVudEluZm8oY2xhc3MgTFNBX0FVRElUX0VWRU5UX0lORk9fTUVNICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRBdWRpdEV2ZW50SW5mb0BMU0FfUE9MSUNZQEBRRUFBSlBFQVZMU0FfQVVESVRfRVZFTlRfSU5GT19NRU1AQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBORVRfQUNDRVNTXzE6OlNldEF1ZGl0RmxhZ3Moc2hvcnQpIF9fcHRyNjQNCis/U2V0QXVkaXRGbGFnc0BORVRfQUNDRVNTXzFAQFFFQUFKRkBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBVU0VSXzExOjpTZXRBdXRoRmxhZ3ModW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRBdXRoRmxhZ3NAVVNFUl8xMUBAUUVBQUpLQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIERFVklDRTo6U2V0QnVmUHRyKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEJ1ZlB0ckBERVZJQ0VAQElFQUFYUEVBRUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBBTElBU19FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfU0FNX1JJRF9FTlVNRVJBVElPTiBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QnVmZmVyUHRyQEFMSUFTX0VOVU1fT0JKQEBRRUFBWFBFQlVfU0FNX1JJRF9FTlVNRVJBVElPTkBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENIQVJERVZRMV9FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfQ0hBUkRFVlFfSU5GT18xIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRCdWZmZXJQdHJAQ0hBUkRFVlExX0VOVU1fT0JKQEBRRUFBWFBFQlVfQ0hBUkRFVlFfSU5GT18xQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ09OTjBfRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX0NPTk5FQ1RJT05fSU5GT18wIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRCdWZmZXJQdHJAQ09OTjBfRU5VTV9PQkpAQFFFQUFYUEVCVV9DT05ORUNUSU9OX0lORk9fMEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENPTk4xX0VOVU1fT0JKOjpTZXRCdWZmZXJQdHIoc3RydWN0IF9DT05ORUNUSU9OX0lORk9fMSBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QnVmZmVyUHRyQENPTk4xX0VOVU1fT0JKQEBRRUFBWFBFQlVfQ09OTkVDVElPTl9JTkZPXzFAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDT05URVhUX0VOVU1fT0JKOjpTZXRCdWZmZXJQdHIoc3RydWN0IF9TRVJWRVJfSU5GT18xMDEgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEJ1ZmZlclB0ckBDT05URVhUX0VOVU1fT0JKQEBRRUFBWFBFQlVfU0VSVkVSX0lORk9fMTAxQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgRE9NQUlOMF9FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfU0VSVkVSX0lORk9fMTAwIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRCdWZmZXJQdHJARE9NQUlOMF9FTlVNX09CSkBAUUVBQVhQRUJVX1NFUlZFUl9JTkZPXzEwMEBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIEVOVU1fT0JKX0JBU0U6OlNldEJ1ZmZlclB0cih1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRCdWZmZXJQdHJARU5VTV9PQkpfQkFTRUBASUVBQVhQRUJFQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEZJTEUyX0VOVU1fT0JKOjpTZXRCdWZmZXJQdHIoc3RydWN0IF9GSUxFX0lORk9fMiBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QnVmZmVyUHRyQEZJTEUyX0VOVU1fT0JKQEBRRUFBWFBFQlVfRklMRV9JTkZPXzJAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBGSUxFM19FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfRklMRV9JTkZPXzMgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEJ1ZmZlclB0ckBGSUxFM19FTlVNX09CSkBAUUVBQVhQRUJVX0ZJTEVfSU5GT18zQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgR1JPVVAwX0VOVU1fT0JKOjpTZXRCdWZmZXJQdHIoc3RydWN0IF9HUk9VUF9JTkZPXzAgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEJ1ZmZlclB0ckBHUk9VUDBfRU5VTV9PQkpAQFFFQUFYUEVCVV9HUk9VUF9JTkZPXzBAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBHUk9VUDFfRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX0dST1VQX0lORk9fMSBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QnVmZmVyUHRyQEdST1VQMV9FTlVNX09CSkBAUUVBQVhQRUJVX0dST1VQX0lORk9fMUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIExTQV9BQ0NPVU5UU19FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHZvaWQgKiBfX3B0cjY0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRCdWZmZXJQdHJATFNBX0FDQ09VTlRTX0VOVU1fT0JKQEBRRUFBWFBFQlFFQVhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTFNBX1BSSVZJTEVHRVNfRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX1BPTElDWV9QUklWSUxFR0VfREVGSU5JVElPTiBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QnVmZmVyUHRyQExTQV9QUklWSUxFR0VTX0VOVU1fT0JKQEBRRUFBWFBFQlVfUE9MSUNZX1BSSVZJTEVHRV9ERUZJTklUSU9OQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgTkVXX0xNX09CSjo6U2V0QnVmZmVyUHRyKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEJ1ZmZlclB0ckBORVdfTE1fT0JKQEBJRUFBWFBFQUVAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTlRfR1JPVVBfRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX0RPTUFJTl9ESVNQTEFZX0dST1VQIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRCdWZmZXJQdHJATlRfR1JPVVBfRU5VTV9PQkpAQFFFQUFYUEVCVV9ET01BSU5fRElTUExBWV9HUk9VUEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE5UX01BQ0hJTkVfRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX0RPTUFJTl9ESVNQTEFZX01BQ0hJTkUgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEJ1ZmZlclB0ckBOVF9NQUNISU5FX0VOVU1fT0JKQEBRRUFBWFBFQlVfRE9NQUlOX0RJU1BMQVlfTUFDSElORUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE5UX1VTRVJfRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX0RPTUFJTl9ESVNQTEFZX1VTRVIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEJ1ZmZlclB0ckBOVF9VU0VSX0VOVU1fT0JKQEBRRUFBWFBFQlVfRE9NQUlOX0RJU1BMQVlfVVNFUkBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNBTV9VU0VSX0VOVU1fT0JKOjpTZXRCdWZmZXJQdHIoc3RydWN0IF9TQU1fUklEX0VOVU1FUkFUSU9OIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRCdWZmZXJQdHJAU0FNX1VTRVJfRU5VTV9PQkpAQFFFQUFYUEVCVV9TQU1fUklEX0VOVU1FUkFUSU9OQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU0VSVkVSMV9FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfU0VSVkVSX0lORk9fMTAxIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRCdWZmZXJQdHJAU0VSVkVSMV9FTlVNX09CSkBAUUVBQVhQRUJVX1NFUlZFUl9JTkZPXzEwMUBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFNFUlZJQ0VfRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX0VOVU1fU1ZDX1NUQVRVUyBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QnVmZmVyUHRyQFNFUlZJQ0VfRU5VTV9PQkpAQElFQUFYUEVCVV9FTlVNX1NWQ19TVEFUVVNAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTRVNTSU9OMF9FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfU0VTU0lPTl9JTkZPXzAgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEJ1ZmZlclB0ckBTRVNTSU9OMF9FTlVNX09CSkBAUUVBQVhQRUJVX1NFU1NJT05fSU5GT18wQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU0VTU0lPTjFfRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX1NFU1NJT05fSU5GT18xIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRCdWZmZXJQdHJAU0VTU0lPTjFfRU5VTV9PQkpAQFFFQUFYUEVCVV9TRVNTSU9OX0lORk9fMUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNIQVJFMV9FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfU0hBUkVfSU5GT18xIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRCdWZmZXJQdHJAU0hBUkUxX0VOVU1fT0JKQEBRRUFBWFBFQlVfU0hBUkVfSU5GT18xQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU0hBUkUyX0VOVU1fT0JKOjpTZXRCdWZmZXJQdHIoc3RydWN0IF9TSEFSRV9JTkZPXzIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEJ1ZmZlclB0ckBTSEFSRTJfRU5VTV9PQkpAQFFFQUFYUEVCVV9TSEFSRV9JTkZPXzJAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBUUklQTEVfU0VSVkVSX0VOVU1fT0JKOjpTZXRCdWZmZXJQdHIoc3RydWN0IF9UUklQTEVfU0VSVkVSX0lORk8gY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEJ1ZmZlclB0ckBUUklQTEVfU0VSVkVSX0VOVU1fT0JKQEBRRUFBWFBFQlVfVFJJUExFX1NFUlZFUl9JTkZPQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgVFJVU1RFRF9ET01BSU5fRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX0xTQV9UUlVTVF9JTkZPUk1BVElPTiBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QnVmZmVyUHRyQFRSVVNURURfRE9NQUlOX0VOVU1fT0JKQEBRRUFBWFBFQlVfTFNBX1RSVVNUX0lORk9STUFUSU9OQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgVVNFMV9FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfVVNFX0lORk9fMSBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QnVmZmVyUHRyQFVTRTFfRU5VTV9PQkpAQFFFQUFYUEVCVV9VU0VfSU5GT18xQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgVVNFUjBfRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX1VTRVJfSU5GT18wIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRCdWZmZXJQdHJAVVNFUjBfRU5VTV9PQkpAQFFFQUFYUEVCVV9VU0VSX0lORk9fMEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFVTRVIxMF9FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfVVNFUl9JTkZPXzEwIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRCdWZmZXJQdHJAVVNFUjEwX0VOVU1fT0JKQEBRRUFBWFBFQlVfVVNFUl9JTkZPXzEwQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgVVNFUjFfRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX1VTRVJfSU5GT18xIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRCdWZmZXJQdHJAVVNFUjFfRU5VTV9PQkpAQFFFQUFYUEVCVV9VU0VSX0lORk9fMUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFVTRVIyX0VOVU1fT0JKOjpTZXRCdWZmZXJQdHIoc3RydWN0IF9VU0VSX0lORk9fMiBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QnVmZmVyUHRyQFVTRVIyX0VOVU1fT0JKQEBRRUFBWFBFQlVfVVNFUl9JTkZPXzJAQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBMTV9TRVNTSU9OXzI6OlNldENsaWVudFR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldENsaWVudFR5cGVATE1fU0VTU0lPTl8yQEBJRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgR1JPVVBfMTo6U2V0Q29tbWVudCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Q29tbWVudEBHUk9VUF8xQEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0FNX0FMSUFTOjpTZXRDb21tZW50KGNsYXNzIE5MU19TVFIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldENvbW1lbnRAU0FNX0FMSUFTQEBRRUFBSlBFQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0VSVkVSXzE6OlNldENvbW1lbnQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldENvbW1lbnRAU0VSVkVSXzFAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTSEFSRV8xOjpTZXRDb21tZW50KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRDb21tZW50QFNIQVJFXzFAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBVU0VSXzExOjpTZXRDb21tZW50KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRDb21tZW50QFVTRVJfMTFAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMU0FfVFJVU1RFRF9ET01BSU46OlNldENvbnRyb2xsZXJMaXN0KHN0cnVjdCBfVFJVU1RFRF9DT05UUk9MTEVSU19JTkZPIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRDb250cm9sbGVyTGlzdEBMU0FfVFJVU1RFRF9ET01BSU5AQFFFQUFKQUVCVV9UUlVTVEVEX0NPTlRST0xMRVJTX0lORk9AQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMU0FfVFJVU1RFRF9ET01BSU46OlNldENvbnRyb2xsZXJMaXN0KGNsYXNzIExTQV9SRUZfRE9NQUlOX01FTSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Q29udHJvbGxlckxpc3RATFNBX1RSVVNURURfRE9NQUlOQEBRRUFBSlBFQVZMU0FfUkVGX0RPTUFJTl9NRU1AQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBFTlVNX0NBTExFUjo6U2V0Q291bnQodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1NldENvdW50QEVOVU1fQ0FMTEVSQEBJRUFBWElAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgT1NfQUNMX1NVQkpFQ1RfSVRFUjo6U2V0Q3VycmVudEFDRSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldEN1cnJlbnRBQ0VAT1NfQUNMX1NVQkpFQ1RfSVRFUkBASUVBQVhLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIFNIQVJFXzI6OlNldEN1cnJlbnRVc2VzKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRDdXJyZW50VXNlc0BTSEFSRV8yQEBJRUFBSklAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUjo6U2V0REFDTChpbnQsY2xhc3MgT1NfQUNMIGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/U2V0REFDTEBPU19TRUNVUklUWV9ERVNDUklQVE9SQEBRRUFBSkhQRUJWT1NfQUNMQEBIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIERFVklDRTo6U2V0RGV2U3RhdGUoZW51bSBMTU9fREVWX1NUQVRFKSBfX3B0cjY0DQorP1NldERldlN0YXRlQERFVklDRUBASUVBQVhXNExNT19ERVZfU1RBVEVAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBERVZJQ0U6OlNldERldlR5cGUoZW51bSBMTU9fREVWSUNFKSBfX3B0cjY0DQorP1NldERldlR5cGVAREVWSUNFQEBJRUFBWFc0TE1PX0RFVklDRUBAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIERFVklDRTI6OlNldERvbWFpbk5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERvbWFpbk5hbWVAREVWSUNFMkBASUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFVTRVJfTU9EQUxTXzM6OlNldER1cmF0aW9uKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0RHVyYXRpb25AVVNFUl9NT0RBTFNfM0BAUUVBQUpLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIExNX0ZJTEU6OlNldEZpbGVJZCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldEZpbGVJZEBMTV9GSUxFQEBJRUFBSktAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVVNFUl9NT0RBTFM6OlNldEZvcmNlTG9nb2ZmKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0Rm9yY2VMb2dvZmZAVVNFUl9NT0RBTFNAQFFFQUFKS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBVU0VSXzExOjpTZXRGdWxsTmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RnVsbE5hbWVAVVNFUl8xMUBAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6OlNldEdyb3VwKGNsYXNzIE9TX1NJRCBjb25zdCAmIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1NldEdyb3VwQE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JAQFFFQUFKQUVCVk9TX1NJREBASEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBPU19TRUNVUklUWV9ERVNDUklQVE9SOjpTZXRHcm91cChpbnQsY2xhc3MgT1NfU0lEIGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/U2V0R3JvdXBAT1NfU0VDVVJJVFlfREVTQ1JJUFRPUkBAUUVBQUpIUEVCVk9TX1NJREBASEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTQU1fR1JPVVA6OlNldEdyb3VwbmFtZShjbGFzcyBOTFNfU1RSIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRHcm91cG5hbWVAU0FNX0dST1VQQEBRRUFBSlBFQlZOTFNfU1RSQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgTFNBX09CSkVDVDo6U2V0SGFuZGxlKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEhhbmRsZUBMU0FfT0JKRUNUQEBJRUFBWFBFQVhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgU0FNX09CSkVDVDo6U2V0SGFuZGxlKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEhhbmRsZUBTQU1fT0JKRUNUQEBJRUFBWFBFQVhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgU0VSVklDRV9DT05UUk9MOjpTZXRIYW5kbGUoc3RydWN0IFNDX0hBTkRMRV9fICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRIYW5kbGVAU0VSVklDRV9DT05UUk9MQEBJRUFBWFBFQVVTQ19IQU5ETEVfX0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFVTRVJfMTE6OlNldEhvbWVEaXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEhvbWVEaXJAVVNFUl8xMUBAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFVTRVJfMzo6U2V0SG9tZWRpckRyaXZlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRIb21lZGlyRHJpdmVAVVNFUl8zQEBRRUFBSlBFQkdAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgTE1fU0VTU0lPTl8xMDo6U2V0SWRsZVRpbWUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRJZGxlVGltZUBMTV9TRVNTSU9OXzEwQEBJRUFBWEtAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBERVZJQ0UyOjpTZXRJbmZvKHZvaWQpIF9fcHRyNjQNCis/U2V0SW5mb0BERVZJQ0UyQEBNRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIERFVklDRTo6U2V0SW5mbyh2b2lkKSBfX3B0cjY0DQorP1NldEluZm9AREVWSUNFQEBNRUFBWFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMU0FfU0VDUkVUOjpTZXRJbmZvKGNsYXNzIE5MU19TVFIgY29uc3QgKiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEluZm9ATFNBX1NFQ1JFVEBAUUVBQUpQRUJWTkxTX1NUUkBAMEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBPU19BQ0U6OlNldEluaGVyaXRPbmx5KGludCkgX19wdHI2NA0KKz9TZXRJbmhlcml0T25seUBPU19BQ0VAQFFFQUFYSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBVU0VSXzI6OlNldExvY2tvdXQoaW50KSBfX3B0cjY0DQorP1NldExvY2tvdXRAVVNFUl8yQEBRRUFBSkhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgV0tTVEFfVVNFUl8xOjpTZXRMb2dvbkRvbWFpbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TG9nb25Eb21haW5AV0tTVEFfVVNFUl8xQEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVVNFUl8xMTo6U2V0TG9nb25Ib3VycyhjbGFzcyBMT0dPTl9IT1VSU19TRVRUSU5HIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRMb2dvbkhvdXJzQFVTRVJfMTFAQFFFQUFKQUVCVkxPR09OX0hPVVJTX1NFVFRJTkdAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBVU0VSXzExOjpTZXRMb2dvbkhvdXJzKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRMb2dvbkhvdXJzQFVTRVJfMTFAQFFFQUFKUEVCRUlAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgV0tTVEFfVVNFUl8xOjpTZXRMb2dvblNlcnZlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TG9nb25TZXJ2ZXJAV0tTVEFfVVNFUl8xQEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgT1NfTFVJRF9BTkRfQVRUUklCVVRFUzo6U2V0THVpZEFuZEF0dHJpYihzdHJ1Y3QgX0xVSURfQU5EX0FUVFJJQlVURVMpIF9fcHRyNjQNCis/U2V0THVpZEFuZEF0dHJpYkBPU19MVUlEX0FORF9BVFRSSUJVVEVTQEBRRUFBWFVfTFVJRF9BTkRfQVRUUklCVVRFU0BAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFNFUlZFUl8xOjpTZXRNYWpvck1pbm9yVmVyKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0TWFqb3JNaW5vclZlckBTRVJWRVJfMUBASUVBQVhJSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBVU0VSX01PREFMUzo6U2V0TWF4UGFzc3dkQWdlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0TWF4UGFzc3dkQWdlQFVTRVJfTU9EQUxTQEBRRUFBSktAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgU0VSVkVSXzI6OlNldE1heFVzZXJzKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRNYXhVc2Vyc0BTRVJWRVJfMkBASUVBQVhJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNIQVJFXzI6OlNldE1heFVzZXModW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1NldE1heFVzZXNAU0hBUkVfMkBAUUVBQUpJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFVTRVJfTU9EQUxTOjpTZXRNaW5QYXNzd2RBZ2UodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRNaW5QYXNzd2RBZ2VAVVNFUl9NT0RBTFNAQFFFQUFKS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBVU0VSX01PREFMUzo6U2V0TWluUGFzc3dkTGVuKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRNaW5QYXNzd2RMZW5AVVNFUl9NT0RBTFNAQFFFQUFKSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDT01QVVRFUjo6U2V0TmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TmFtZUBDT01QVVRFUkBAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEdST1VQOjpTZXROYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXROYW1lQEdST1VQQEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgR1JPVVBfTUVNQjo6U2V0TmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TmFtZUBHUk9VUF9NRU1CQEBRRUFBSlBFQkdAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgTE1fU0VSVklDRTo6U2V0TmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TmFtZUBMTV9TRVJWSUNFQEBJRUFBSlBFQkdAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgTE1fU0VTU0lPTjo6U2V0TmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TmFtZUBMTV9TRVNTSU9OQEBJRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTkVUX0FDQ0VTUzo6U2V0TmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TmFtZUBORVRfQUNDRVNTQEBRRUFBSlBFQkdAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgU0hBUkU6OlNldE5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldE5hbWVAU0hBUkVAQElFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBVU0VSOjpTZXROYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXROYW1lQFVTRVJAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBVU0VSX01FTUI6OlNldE5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldE5hbWVAVVNFUl9NRU1CQEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU0FNX1BTV0RfRE9NX0lORk9fTUVNOjpTZXROb0Fub25DaGFuZ2UoaW50KSBfX3B0cjY0DQorP1NldE5vQW5vbkNoYW5nZUBTQU1fUFNXRF9ET01fSU5GT19NRU1AQFFFQUFYSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBVU0VSXzI6OlNldE5vUGFzc3dvcmRFeHBpcmUoaW50KSBfX3B0cjY0DQorP1NldE5vUGFzc3dvcmRFeHBpcmVAVVNFUl8yQEBRRUFBSkhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgTE1fU0VTU0lPTl8xOjpTZXROdW1PcGVucyh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0TnVtT3BlbnNATE1fU0VTU0lPTl8xQEBJRUFBWElAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVVNFUl9NT0RBTFNfMzo6U2V0T2JzZXJ2YXRpb24odW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRPYnNlcnZhdGlvbkBVU0VSX01PREFMU18zQEBRRUFBSktAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgV0tTVEFfVVNFUl8xOjpTZXRPdGhlckRvbWFpbnModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldE90aGVyRG9tYWluc0BXS1NUQV9VU0VSXzFAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBPU19TRUNVUklUWV9ERVNDUklQVE9SOjpTZXRPd25lcihjbGFzcyBPU19TSUQgY29uc3QgJiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9TZXRPd25lckBPU19TRUNVUklUWV9ERVNDUklQVE9SQEBRRUFBSkFFQlZPU19TSURAQEhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUjo6U2V0T3duZXIoaW50LGNsYXNzIE9TX1NJRCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1NldE93bmVyQE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JAQFFFQUFKSFBFQlZPU19TSURAQEhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVVNFUl8xMTo6U2V0UGFybXModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFBhcm1zQFVTRVJfMTFAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBVU0VSX01PREFMUzo6U2V0UGFzc3dkSGlzdExlbih1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0UGFzc3dkSGlzdExlbkBVU0VSX01PREFMU0BAUUVBQUpJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNBTV9VU0VSOjpTZXRQYXNzd29yZChjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQYXNzd29yZEBTQU1fVVNFUkBAUUVBQUpBRUJWTkxTX1NUUkBAMEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTQU1fVVNFUjo6U2V0UGFzc3dvcmQoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1NldFBhc3N3b3JkQFNBTV9VU0VSQEBRRUFBSkFFQlZOTFNfU1RSQEBIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNIQVJFXzI6OlNldFBhc3N3b3JkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQYXNzd29yZEBTSEFSRV8yQEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVVNFUl8yOjpTZXRQYXNzd29yZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UGFzc3dvcmRAVVNFUl8yQEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVVNFUl8zOjpTZXRQYXNzd29yZEV4cGlyZWQodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRQYXNzd29yZEV4cGlyZWRAVVNFUl8zQEBRRUFBSktAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0FNX0RPTUFJTjo6U2V0UGFzc3dvcmRJbmZvKGNsYXNzIFNBTV9QU1dEX0RPTV9JTkZPX01FTSBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UGFzc3dvcmRJbmZvQFNBTV9ET01BSU5AQFFFQUFKUEVCVlNBTV9QU1dEX0RPTV9JTkZPX01FTUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNIQVJFXzI6OlNldFBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFBhdGhAU0hBUkVfMkBAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5FVF9BQ0NFU1NfMTo6U2V0UGVybSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsZW51bSBQRVJNTkFNRV9UWVBFLHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRQZXJtQE5FVF9BQ0NFU1NfMUBAUUVBQUpQRUJHVzRQRVJNTkFNRV9UWVBFQEBJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNIQVJFXzI6OlNldFBlcm1pc3Npb25zKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRQZXJtaXNzaW9uc0BTSEFSRV8yQEBRRUFBSklAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1RSVVNURURfRE9NQUlOOjpTZXRQb3NpeE9mZnNldCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFBvc2l4T2Zmc2V0QExTQV9UUlVTVEVEX0RPTUFJTkBAUUVBQUpLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExTQV9QT0xJQ1k6OlNldFByaW1hcnlCcm93c2VyR3JvdXAoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UHJpbWFyeUJyb3dzZXJHcm91cEBMU0FfUE9MSUNZQEBRRUFBSkFFQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1BPTElDWTo6U2V0UHJpbWFyeURvbWFpbihjbGFzcyBMU0FfUFJJTUFSWV9ET01fSU5GT19NRU0gY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFByaW1hcnlEb21haW5ATFNBX1BPTElDWUBAUUVBQUpQRUJWTFNBX1BSSU1BUllfRE9NX0lORk9fTUVNQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1BPTElDWTo6U2V0UHJpbWFyeURvbWFpbk5hbWUoY2xhc3MgTkxTX1NUUiBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFByaW1hcnlEb21haW5OYW1lQExTQV9QT0xJQ1lAQFFFQUFKUEVCVk5MU19TVFJAQFBFQlFFQVhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVVNFUl8zOjpTZXRQcmltYXJ5R3JvdXBJZCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFByaW1hcnlHcm91cElkQFVTRVJfM0BAUUVBQUpLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFVTRVJfMTE6OlNldFByaXYodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1NldFByaXZAVVNFUl8xMUBAUUVBQUpJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFVTRVJfMzo6U2V0UHJvZmlsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UHJvZmlsZUBVU0VSXzNAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBPU19BQ0U6OlNldFB0cih2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQdHJAT1NfQUNFQEBRRUFBSlBFQVhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgT1NfUFJJVklMRUdFX1NFVDo6U2V0UHRyKHN0cnVjdCBfUFJJVklMRUdFX1NFVCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UHRyQE9TX1BSSVZJTEVHRV9TRVRAQFFFQUFYUEVBVV9QUklWSUxFR0VfU0VUQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfU0lEOjpTZXRQdHIodm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UHRyQE9TX1NJREBAUUVBQUpQRUFYQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIERFVklDRTo6U2V0UmVtb3RlTmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UmVtb3RlTmFtZUBERVZJQ0VAQElFQUFYUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBERVZJQ0U6OlNldFJlbW90ZVR5cGUodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1NldFJlbW90ZVR5cGVAREVWSUNFQEBJRUFBWElAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgU0hBUkVfMTo6U2V0UmVzb3VyY2VUeXBlKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRSZXNvdXJjZVR5cGVAU0hBUkVfMUBASUVBQUpJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNIQVJFXzI6OlNldFJlc291cmNlVHlwZSh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0UmVzb3VyY2VUeXBlQFNIQVJFXzJAQFFFQUFKSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBPU19TRUNVUklUWV9ERVNDUklQVE9SOjpTZXRTQUNMKGludCxjbGFzcyBPU19BQ0wgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9TZXRTQUNMQE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JAQFFFQUFKSFBFQlZPU19BQ0xAQEhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfQUNFOjpTZXRTSUQoY2xhc3MgT1NfU0lEIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRTSURAT1NfQUNFQEBRRUFBSkFFQlZPU19TSURAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBVU0VSXzI6OlNldFNjcmlwdFBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFNjcmlwdFBhdGhAVVNFUl8yQEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0NfU0VSVklDRTo6U2V0U2VjdXJpdHkodW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCBjb25zdCkgX19wdHI2NA0KKz9TZXRTZWN1cml0eUBTQ19TRVJWSUNFQEBRRUFBSktRRUFYQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFNFUlZFUl8yOjpTZXRTZWN1cml0eSh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0U2VjdXJpdHlAU0VSVkVSXzJAQElFQUFYSUBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBMTV9GSUxFOjpTZXRTZXJ2ZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFNlcnZlckBMTV9GSUxFQEBJRUFBSlBFQkdAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgREVWSUNFOjpTZXRTZXJ2ZXJOYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRTZXJ2ZXJOYW1lQERFVklDRUBASUVBQVhQRUJHQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIExNX1NFUlZJQ0U6OlNldFNlcnZlck5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFNlcnZlck5hbWVATE1fU0VSVklDRUBASUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5FVF9BQ0NFU1M6OlNldFNlcnZlck5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFNlcnZlck5hbWVATkVUX0FDQ0VTU0BAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExTQV9QT0xJQ1k6OlNldFNlcnZlclJvbGUoY2xhc3MgTFNBX1NFUlZFUl9ST0xFX0lORk9fTUVNIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRTZXJ2ZXJSb2xlQExTQV9QT0xJQ1lAQFFFQUFKUEVCVkxTQV9TRVJWRVJfUk9MRV9JTkZPX01FTUBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFNFUlZFUl8xOjpTZXRTZXJ2ZXJUeXBlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0U2VydmVyVHlwZUBTRVJWRVJfMUBASUVBQVhLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExTQV9QT0xJQ1k6OlNldFNodXREb3duT25GdWxsKGludCkgX19wdHI2NA0KKz9TZXRTaHV0RG93bk9uRnVsbEBMU0FfUE9MSUNZQEBRRUFBSkhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgT1NfQUNFOjpTZXRTaXplKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRTaXplQE9TX0FDRUBAUUVBQUpJQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIE9TX0FDTDo6U2V0U2l6ZSh1bnNpZ25lZCBpbnQsaW50KSBfX3B0cjY0DQorP1NldFNpemVAT1NfQUNMQEBJRUFBSklIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIERFVklDRTo6U2V0U3RhdHVzKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRTdGF0dXNAREVWSUNFQEBJRUFBWElAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVVNFUl9NT0RBTFNfMzo6U2V0VGhyZXNob2xkKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0VGhyZXNob2xkQFVTRVJfTU9EQUxTXzNAQFFFQUFKS0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBMTV9TRVNTSU9OXzEwOjpTZXRUaW1lKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0VGltZUBMTV9TRVNTSU9OXzEwQEBJRUFBWEtAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIE5FVF9OQU1FOjpTZXRVTkNQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRVTkNQYXRoQE5FVF9OQU1FQEBBRUFBSlBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVVNFUl8yOjpTZXRVc2VyQ2FudENoYW5nZVBhc3MoaW50KSBfX3B0cjY0DQorP1NldFVzZXJDYW50Q2hhbmdlUGFzc0BVU0VSXzJAQFFFQUFKSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBVU0VSXzExOjpTZXRVc2VyQ29tbWVudCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VXNlckNvbW1lbnRAVVNFUl8xMUBAUUVBQUpQRUJHQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIFVTRVJfMjo6U2V0VXNlckZsYWcoaW50LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRVc2VyRmxhZ0BVU0VSXzJAQElFQUFKSElAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgTE1fU0VTU0lPTl8xOjpTZXRVc2VyRmxhZ3ModW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRVc2VyRmxhZ3NATE1fU0VTU0lPTl8xQEBJRUFBWEtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVVNFUl8yOjpTZXRVc2VyRmxhZ3ModW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1NldFVzZXJGbGFnc0BVU0VSXzJAQFFFQUFKSUBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBVU0VSXzM6OlNldFVzZXJJZCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFVzZXJJZEBVU0VSXzNAQElFQUFKS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBXS1NUQV9VU0VSXzE6OlNldFVzZXJOYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRVc2VyTmFtZUBXS1NUQV9VU0VSXzFAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBVU0VSXzI6OlNldFVzZXJQYXNzUmVxdWlyZWQoaW50KSBfX3B0cjY0DQorP1NldFVzZXJQYXNzUmVxdWlyZWRAVVNFUl8yQEBRRUFBSkhAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgREVWSUNFMjo6U2V0VXNlcm5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFVzZXJuYW1lQERFVklDRTJAQElFQUFKUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBMTV9TRVNTSU9OXzEwOjpTZXRVc2VybmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VXNlcm5hbWVATE1fU0VTU0lPTl8xMEBASUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNBTV9VU0VSOjpTZXRVc2VybmFtZShjbGFzcyBOTFNfU1RSIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRVc2VybmFtZUBTQU1fVVNFUkBAUUVBQUpQRUJWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExNX0NPTkZJRzo6U2V0VmFsdWUoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VmFsdWVATE1fQ09ORklHQEBRRUFBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVVNFUl8xMTo6U2V0V29ya3N0YXRpb25zKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRXb3Jrc3RhdGlvbnNAVVNFUl8xMUBAUUVBQUpQRUJHQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIFNIQVJFXzI6OlNldFdyaXRlQnVmZmVyKGludCkgX19wdHI2NA0KKz9TZXRXcml0ZUJ1ZmZlckBTSEFSRV8yQEBJRUFBSkhAWg0KKzsgdm9pZCBfX2NkZWNsIFNraXBXaGl0ZVNwYWNlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQpDQorP1NraXBXaGl0ZVNwYWNlQEBZQVhQRUFQRUFHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIERPTUFJTjBfRU5VTTo6U29ydCh2b2lkKSBfX3B0cjY0DQorP1NvcnRARE9NQUlOMF9FTlVNQEBRRUFBWFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMTV9TRVJWSUNFOjpTdGFydCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TdGFydEBMTV9TRVJWSUNFQEBRRUFBSlBFQkdJSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTQ19TRVJWSUNFOjpTdGFydCh1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TdGFydEBTQ19TRVJWSUNFQEBRRUFBSklQRUFQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExNX1NFUlZJQ0U6OlN0b3AodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TdG9wQExNX1NFUlZJQ0VAQFFFQUFKSUlAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgTFNBX1BPTElDWTo6VGNoYXJBcnJheVRvVW5pc3RyQXJyYXkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgX1VOSUNPREVfU1RSSU5HICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1RjaGFyQXJyYXlUb1VuaXN0ckFycmF5QExTQV9QT0xJQ1lAQElFQUFKUEVCUUVCR1BFQVVfVU5JQ09ERV9TVFJJTkdAQEtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0FNX0RPTUFJTjo6VHJhbnNsYXRlTmFtZXNUb1JpZHModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGNsYXNzIFNBTV9SSURfTUVNICogX19wdHI2NCxjbGFzcyBTQU1fU0lEX05BTUVfVVNFX01FTSAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/VHJhbnNsYXRlTmFtZXNUb1JpZHNAU0FNX0RPTUFJTkBAUUVCQUpQRUJRRUJHS1BFQVZTQU1fUklEX01FTUBAUEVBVlNBTV9TSURfTkFNRV9VU0VfTUVNQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1BPTElDWTo6VHJhbnNsYXRlTmFtZXNUb1NpZHModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGNsYXNzIExTQV9UUkFOU0xBVEVEX1NJRF9NRU0gKiBfX3B0cjY0LGNsYXNzIExTQV9SRUZfRE9NQUlOX01FTSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VHJhbnNsYXRlTmFtZXNUb1NpZHNATFNBX1BPTElDWUBAUUVBQUpQRUJRRUJHS1BFQVZMU0FfVFJBTlNMQVRFRF9TSURfTUVNQEBQRUFWTFNBX1JFRl9ET01BSU5fTUVNQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1BPTElDWTo6VHJhbnNsYXRlU2lkc1RvTmFtZXModm9pZCAqIF9fcHRyNjQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsY2xhc3MgTFNBX1RSQU5TTEFURURfTkFNRV9NRU0gKiBfX3B0cjY0LGNsYXNzIExTQV9SRUZfRE9NQUlOX01FTSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VHJhbnNsYXRlU2lkc1RvTmFtZXNATFNBX1BPTElDWUBAUUVBQUpQRUJRRUFYS1BFQVZMU0FfVFJBTlNMQVRFRF9OQU1FX01FTUBAUEVBVkxTQV9SRUZfRE9NQUlOX01FTUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE9TX1NJRDo6VHJpbUxhc3RTdWJBdXRob3JpdHkodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VHJpbUxhc3RTdWJBdXRob3JpdHlAT1NfU0lEQEBRRUFBSlBFQUtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVVNFUl8xMTo6VHJpbVBhcmFtcyh2b2lkKSBfX3B0cjY0DQorP1RyaW1QYXJhbXNAVVNFUl8xMUBAUUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1BPTElDWTo6VHJ1c3REb21haW4oY2xhc3MgTFNBX1BPTElDWSAmIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9UcnVzdERvbWFpbkBMU0FfUE9MSUNZQEBRRUFBSkFFQVYxQEFFQlZOTFNfU1RSQEBIUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMU0FfUE9MSUNZOjpUcnVzdERvbWFpbihjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCx2b2lkICogX19wdHI2NCBjb25zdCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCxpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9UcnVzdERvbWFpbkBMU0FfUE9MSUNZQEBRRUFBSkFFQlZOTFNfU1RSQEBRRUFYMEhQRUJHSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTQ19NQU5BR0VSOjpVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9VbmxvY2tAU0NfTUFOQUdFUkBAUUVBQUpYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUjo6VXBkYXRlQ29udHJvbCh2b2lkKSBfX3B0cjY0DQorP1VwZGF0ZUNvbnRyb2xAT1NfU0VDVVJJVFlfREVTQ1JJUFRPUkBASUVBQUpYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUjo6VXBkYXRlUmVmZXJlbmNlZFNlY3VyaXR5T2JqZWN0KGNsYXNzIE9TX09CSkVDVF9XSVRIX0RBVEEgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1VwZGF0ZVJlZmVyZW5jZWRTZWN1cml0eU9iamVjdEBPU19TRUNVUklUWV9ERVNDUklQVE9SQEBJRUFBSlBFQVZPU19PQkpFQ1RfV0lUSF9EQVRBQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQURNSU5fQVVUSE9SSVRZOjpVcGdyYWRlQWNjb3VudERvbWFpbih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1VwZ3JhZGVBY2NvdW50RG9tYWluQEFETUlOX0FVVEhPUklUWUBAUUVBQUpLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEFETUlOX0FVVEhPUklUWTo6VXBncmFkZUJ1aWx0aW5Eb21haW4odW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9VcGdyYWRlQnVpbHRpbkRvbWFpbkBBRE1JTl9BVVRIT1JJVFlAQFFFQUFKS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBBRE1JTl9BVVRIT1JJVFk6OlVwZ3JhZGVMU0FQb2xpY3kodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9VcGdyYWRlTFNBUG9saWN5QEFETUlOX0FVVEhPUklUWUBAUUVBQUpLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEFETUlOX0FVVEhPUklUWTo6VXBncmFkZVNhbVNlcnZlcih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1VwZ3JhZGVTYW1TZXJ2ZXJAQURNSU5fQVVUSE9SSVRZQEBRRUFBSktAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIENPTVBVVEVSOjpWYWxpZGF0ZU5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1ZhbGlkYXRlTmFtZUBDT01QVVRFUkBAQUVBQUpQRUJHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgREVWSUNFOjpWYWxpZGF0ZU5hbWUodm9pZCkgX19wdHI2NA0KKz9WYWxpZGF0ZU5hbWVAREVWSUNFQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIERPTUFJTjo6VmFsaWRhdGVOYW1lKHZvaWQpIF9fcHRyNjQNCis/VmFsaWRhdGVOYW1lQERPTUFJTkBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBMTV9PQko6OlZhbGlkYXRlTmFtZSh2b2lkKSBfX3B0cjY0DQorP1ZhbGlkYXRlTmFtZUBMTV9PQkpAQE1FQUFKWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBOVF9BQ0NPVU5UU19VVElMSVRZOjpWYWxpZGF0ZVF1YWxpZmllZEFjY291bnROYW1lKGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LGludCAqIF9fcHRyNjQpDQorP1ZhbGlkYXRlUXVhbGlmaWVkQWNjb3VudE5hbWVATlRfQUNDT1VOVFNfVVRJTElUWUBAU0FKQUVCVk5MU19TVFJAQFBFQUhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1BPTElDWTo6VmVyaWZ5THNhKGNsYXNzIExTQV9QUklNQVJZX0RPTV9JTkZPX01FTSAqIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/VmVyaWZ5THNhQExTQV9QT0xJQ1lAQFFFQkFKUEVBVkxTQV9QUklNQVJZX0RPTV9JTkZPX01FTUBAUEVCVk5MU19TVFJAQEBaDQorOyBwcml2YXRlOiBzdGF0aWMgbG9uZyBfX2NkZWNsIE5UX0FDQ09VTlRTX1VUSUxJVFk6OldfQnVpbGRRdWFsaWZpZWRBY2NvdW50TmFtZShjbGFzcyBOTFNfU1RSICogX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICogX19wdHI2NCxlbnVtIF9TSURfTkFNRV9VU0UpDQorP1dfQnVpbGRRdWFsaWZpZWRBY2NvdW50TmFtZUBOVF9BQ0NPVU5UU19VVElMSVRZQEBDQUpQRUFWTkxTX1NUUkBAQUVCVjJAUEVCVjJAVzRfU0lEX05BTUVfVVNFQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBORVdfTE1fT0JKOjpXX0NoYW5nZVRvTmV3KHZvaWQpIF9fcHRyNjQNCis/V19DaGFuZ2VUb05ld0BORVdfTE1fT0JKQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBFTlVNX0NBTExFUl9MTV9PQko6OldfQ2xvbmVGcm9tKGNsYXNzIEVOVU1fQ0FMTEVSX0xNX09CSiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/V19DbG9uZUZyb21ARU5VTV9DQUxMRVJfTE1fT0JKQEBJRUFBSkFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBHUk9VUDo6V19DbG9uZUZyb20oY2xhc3MgR1JPVVAgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1dfQ2xvbmVGcm9tQEdST1VQQEBJRUFBSkFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBHUk9VUF8xOjpXX0Nsb25lRnJvbShjbGFzcyBHUk9VUF8xIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9XX0Nsb25lRnJvbUBHUk9VUF8xQEBJRUFBSkFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBMT0NfTE1fT0JKOjpXX0Nsb25lRnJvbShjbGFzcyBMT0NfTE1fT0JKIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9XX0Nsb25lRnJvbUBMT0NfTE1fT0JKQEBJRUFBSkFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBNRU1CRVJTSElQX0xNX09CSjo6V19DbG9uZUZyb20oY2xhc3MgTUVNQkVSU0hJUF9MTV9PQkogY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1dfQ2xvbmVGcm9tQE1FTUJFUlNISVBfTE1fT0JKQEBJRUFBSkFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBORVdfTE1fT0JKOjpXX0Nsb25lRnJvbShjbGFzcyBORVdfTE1fT0JKIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9XX0Nsb25lRnJvbUBORVdfTE1fT0JKQEBJRUFBSkFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBTSEFSRTo6V19DbG9uZUZyb20oY2xhc3MgU0hBUkUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1dfQ2xvbmVGcm9tQFNIQVJFQEBJRUFBSkFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBTSEFSRV8xOjpXX0Nsb25lRnJvbShjbGFzcyBTSEFSRV8xIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9XX0Nsb25lRnJvbUBTSEFSRV8xQEBJRUFBSkFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBTSEFSRV8yOjpXX0Nsb25lRnJvbShjbGFzcyBTSEFSRV8yIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9XX0Nsb25lRnJvbUBTSEFSRV8yQEBJRUFBSkFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBVU0VSOjpXX0Nsb25lRnJvbShjbGFzcyBVU0VSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9XX0Nsb25lRnJvbUBVU0VSQEBJRUFBSkFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBVU0VSXzExOjpXX0Nsb25lRnJvbShjbGFzcyBVU0VSXzExIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9XX0Nsb25lRnJvbUBVU0VSXzExQEBJRUFBSkFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBVU0VSXzI6OldfQ2xvbmVGcm9tKGNsYXNzIFVTRVJfMiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/V19DbG9uZUZyb21AVVNFUl8yQEBJRUFBSkFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBVU0VSXzM6OldfQ2xvbmVGcm9tKGNsYXNzIFVTRVJfMyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/V19DbG9uZUZyb21AVVNFUl8zQEBJRUFBSkFFQlYxQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE1fU0VSVklDRTo6V19Db21wdXRlT3RoZXJTdGF0dXMoc3RydWN0IExNX1NFUlZJQ0VfT1RIRVJfU1RBVFVTICogX19wdHI2NCkgX19wdHI2NA0KKz9XX0NvbXB1dGVPdGhlclN0YXR1c0BMTV9TRVJWSUNFQEBBRUFBWFBFQVVMTV9TRVJWSUNFX09USEVSX1NUQVRVU0BAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgRU5VTV9DQUxMRVJfTE1fT0JKOjpXX0NyZWF0ZU5ldyh2b2lkKSBfX3B0cjY0DQorP1dfQ3JlYXRlTmV3QEVOVU1fQ0FMTEVSX0xNX09CSkBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBHUk9VUF8xOjpXX0NyZWF0ZU5ldyh2b2lkKSBfX3B0cjY0DQorP1dfQ3JlYXRlTmV3QEdST1VQXzFAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgR1JPVVBfTUVNQjo6V19DcmVhdGVOZXcodm9pZCkgX19wdHI2NA0KKz9XX0NyZWF0ZU5ld0BHUk9VUF9NRU1CQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIExTQV9BQ0NPVU5UOjpXX0NyZWF0ZU5ldyh2b2lkKSBfX3B0cjY0DQorP1dfQ3JlYXRlTmV3QExTQV9BQ0NPVU5UQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIE5FV19MTV9PQko6OldfQ3JlYXRlTmV3KHZvaWQpIF9fcHRyNjQNCis/V19DcmVhdGVOZXdATkVXX0xNX09CSkBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBTSEFSRTo6V19DcmVhdGVOZXcodm9pZCkgX19wdHI2NA0KKz9XX0NyZWF0ZU5ld0BTSEFSRUBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBTSEFSRV8xOjpXX0NyZWF0ZU5ldyh2b2lkKSBfX3B0cjY0DQorP1dfQ3JlYXRlTmV3QFNIQVJFXzFAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgU0hBUkVfMjo6V19DcmVhdGVOZXcodm9pZCkgX19wdHI2NA0KKz9XX0NyZWF0ZU5ld0BTSEFSRV8yQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFVTRVJfMTE6OldfQ3JlYXRlTmV3KHZvaWQpIF9fcHRyNjQNCis/V19DcmVhdGVOZXdAVVNFUl8xMUBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBVU0VSXzI6OldfQ3JlYXRlTmV3KHZvaWQpIF9fcHRyNjQNCis/V19DcmVhdGVOZXdAVVNFUl8yQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFVTRVJfMzo6V19DcmVhdGVOZXcodm9pZCkgX19wdHI2NA0KKz9XX0NyZWF0ZU5ld0BVU0VSXzNAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgVVNFUl9NRU1COjpXX0NyZWF0ZU5ldyh2b2lkKSBfX3B0cjY0DQorP1dfQ3JlYXRlTmV3QFVTRVJfTUVNQkBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgRU5VTV9DQUxMRVI6OldfR2V0SW5mbyh2b2lkKSBfX3B0cjY0DQorP1dfR2V0SW5mb0BFTlVNX0NBTExFUkBASUVBQUpYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExNX1NFUlZJQ0U6OldfSW50ZXJwcmV0U3RhdHVzKHN0cnVjdCBfU0VSVklDRV9JTkZPXzIgY29uc3QgKiBfX3B0cjY0LGVudW0gTE1fU0VSVklDRV9TVEFUVVMgKiBfX3B0cjY0LHN0cnVjdCBMTV9TRVJWSUNFX09USEVSX1NUQVRVUyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/V19JbnRlcnByZXRTdGF0dXNATE1fU0VSVklDRUBAQUVBQVhQRUJVX1NFUlZJQ0VfSU5GT18yQEBQRUFXNExNX1NFUlZJQ0VfU1RBVFVTQEBQRUFVTE1fU0VSVklDRV9PVEhFUl9TVEFUVVNAQEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBMTV9TRVJWSUNFOjpXX0lzV2VsbEtub3duU2VydmljZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1dfSXNXZWxsS25vd25TZXJ2aWNlQExNX1NFUlZJQ0VAQEFFQkFIWFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBMTV9TRVJWSUNFOjpXX1F1ZXJ5U3RhdHVzKGVudW0gTE1fU0VSVklDRV9TVEFUVVMgKiBfX3B0cjY0LHN0cnVjdCBMTV9TRVJWSUNFX09USEVSX1NUQVRVUyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/V19RdWVyeVN0YXR1c0BMTV9TRVJWSUNFQEBBRUFBSlBFQVc0TE1fU0VSVklDRV9TVEFUVVNAQFBFQVVMTV9TRVJWSUNFX09USEVSX1NUQVRVU0BAQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBMTV9TRVJWSUNFOjpXX1NlcnZpY2VDb250cm9sKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/V19TZXJ2aWNlQ29udHJvbEBMTV9TRVJWSUNFQEBBRUFBSklJQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBMTV9TRVJWSUNFOjpXX1NlcnZpY2VTdGFydCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/V19TZXJ2aWNlU3RhcnRATE1fU0VSVklDRUBAQUVBQUpQRUJHQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBMT0NBVElPTjo6V19TZXQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGVudW0gTE9DQVRJT05fVFlQRSxpbnQpIF9fcHRyNjQNCis/V19TZXRATE9DQVRJT05AQEFFQUFKUEVCR1c0TE9DQVRJT05fVFlQRUBASEBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgR1JPVVBfMTo6V19Xcml0ZSh2b2lkKSBfX3B0cjY0DQorP1dfV3JpdGVAR1JPVVBfMUBAQUVBQUpYWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIFNFUlZFUl8xOjpXX1dyaXRlKHZvaWQpIF9fcHRyNjQNCis/V19Xcml0ZUBTRVJWRVJfMUBAQUVBQUpYWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIFNFUlZFUl8yOjpXX1dyaXRlKHZvaWQpIF9fcHRyNjQNCis/V19Xcml0ZUBTRVJWRVJfMkBAQUVBQUpYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgVVNFUl8yOjpXX1dyaXRlKHZvaWQpIF9fcHRyNjQNCis/V19Xcml0ZUBVU0VSXzJAQElFQUFKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIFVTRVJfMzo6V19Xcml0ZSh2b2lkKSBfX3B0cjY0DQorP1dfV3JpdGVAVVNFUl8zQEBJRUFBSlhaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgV0tTVEFfVVNFUl8xOjpXX1dyaXRlKHZvaWQpIF9fcHRyNjQNCis/V19Xcml0ZUBXS1NUQV9VU0VSXzFAQEFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5FV19MTV9PQko6OldyaXRlKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVATkVXX0xNX09CSkBAUUVBQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBERVZJQ0U6OldyaXRlSW5mbyh2b2lkKSBfX3B0cjY0DQorP1dyaXRlSW5mb0BERVZJQ0VAQFVFQUFKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgRE9NQUlOOjpXcml0ZUluZm8odm9pZCkgX19wdHI2NA0KKz9Xcml0ZUluZm9ARE9NQUlOQEBVRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBORVdfTE1fT0JKOjpXcml0ZUluZm8odm9pZCkgX19wdHI2NA0KKz9Xcml0ZUluZm9ATkVXX0xNX09CSkBAUUVBQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBVU0VSX01PREFMUzo6V3JpdGVJbmZvKHZvaWQpIF9fcHRyNjQNCis/V3JpdGVJbmZvQFVTRVJfTU9EQUxTQEBVRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFVTRVJfTU9EQUxTXzM6OldyaXRlSW5mbyh2b2lkKSBfX3B0cjY0DQorP1dyaXRlSW5mb0BVU0VSX01PREFMU18zQEBVRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBORVdfTE1fT0JKOjpXcml0ZU5ldyh2b2lkKSBfX3B0cjY0DQorP1dyaXRlTmV3QE5FV19MTV9PQkpAQFFFQUFKWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE9TX0FDRTo6X0RiZ1ByaW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X0RiZ1ByaW50QE9TX0FDRUBAUUVCQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgT1NfQUNMOjpfRGJnUHJpbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9fRGJnUHJpbnRAT1NfQUNMQEBRRUJBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBPU19TRUNVUklUWV9ERVNDUklQVE9SOjpfRGJnUHJpbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9fRGJnUHJpbnRAT1NfU0VDVVJJVFlfREVTQ1JJUFRPUkBAUUVCQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgT1NfU0lEOjpfRGJnUHJpbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9fRGJnUHJpbnRAT1NfU0lEQEBRRUJBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE1fRU5VTTo6X0RlcmVnaXN0ZXJJdGVyKHZvaWQpIF9fcHRyNjQNCis/X0RlcmVnaXN0ZXJJdGVyQExNX0VOVU1AQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBMTV9SRVNVTUVfRU5VTTo6X0RlcmVnaXN0ZXJJdGVyKHZvaWQpIF9fcHRyNjQNCis/X0RlcmVnaXN0ZXJJdGVyQExNX1JFU1VNRV9FTlVNQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE1fRU5VTTo6X1JlZ2lzdGVySXRlcih2b2lkKSBfX3B0cjY0DQorP19SZWdpc3Rlckl0ZXJATE1fRU5VTUBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExNX1JFU1VNRV9FTlVNOjpfUmVnaXN0ZXJJdGVyKHZvaWQpIF9fcHRyNjQNCis/X1JlZ2lzdGVySXRlckBMTV9SRVNVTUVfRU5VTUBAQUVBQVhYWg0KK0Rlc3Ryb3lTZXNzaW9uDQorRnJlZUFyZ3YNCitJX01OZXRDb21wdXRlck5hbWVDb21wYXJlDQorSV9NTmV0TG9nb25Db250cm9sDQorSV9NTmV0TmFtZUNhbm9uaWNhbGl6ZQ0KK0lfTU5ldE5hbWVDb21wYXJlDQorSV9NTmV0TmFtZVZhbGlkYXRlDQorSV9NTmV0UGF0aENhbm9uaWNhbGl6ZQ0KK0lfTU5ldFBhdGhDb21wYXJlDQorSV9NTmV0UGF0aFR5cGUNCitJc1Nsb3dUcmFuc3BvcnQNCitNQWxsb2NNZW0NCitNRG9zUHJpbnRRRW51bQ0KK01GcmVlTWVtDQorTU5ldEFjY2Vzc0FkZA0KK01OZXRBY2Nlc3NDaGVjaw0KK01OZXRBY2Nlc3NEZWwNCitNTmV0QWNjZXNzRW51bQ0KK01OZXRBY2Nlc3NHZXRJbmZvDQorTU5ldEFjY2Vzc0dldFVzZXJQZXJtcw0KK01OZXRBY2Nlc3NTZXRJbmZvDQorTU5ldEFwaUJ1ZmZlckFsbG9jDQorTU5ldEFwaUJ1ZmZlckZyZWUNCitNTmV0QXBpQnVmZmVyUmVBbGxvYw0KK01OZXRBcGlCdWZmZXJTaXplDQorTU5ldEF1ZGl0Q2xlYXINCitNTmV0QXVkaXRSZWFkDQorTU5ldEF1ZGl0V3JpdGUNCitNTmV0Q2hhckRldkNvbnRyb2wNCitNTmV0Q2hhckRldkdldEluZm8NCitNTmV0Q2hhckRldlFFbnVtDQorTU5ldENoYXJEZXZRR2V0SW5mbw0KK01OZXRDaGFyRGV2UVB1cmdlDQorTU5ldENoYXJEZXZRUHVyZ2VTZWxmDQorTU5ldENoYXJEZXZRU2V0SW5mbw0KK01OZXRDb25maWdHZXQNCitNTmV0Q29uZmlnR2V0QWxsDQorTU5ldENvbmZpZ1NldA0KK01OZXRDb25uZWN0aW9uRW51bQ0KK01OZXRFcnJvckxvZ0NsZWFyDQorTU5ldEVycm9yTG9nUmVhZA0KK01OZXRFcnJvckxvZ1dyaXRlDQorTU5ldEZpbGVDbG9zZQ0KK01OZXRGaWxlRW51bQ0KK01OZXRGaWxlR2V0SW5mbw0KK01OZXRHZXREQ05hbWUNCitNTmV0R3JvdXBBZGQNCitNTmV0R3JvdXBBZGRVc2VyDQorTU5ldEdyb3VwRGVsDQorTU5ldEdyb3VwRGVsVXNlcg0KK01OZXRHcm91cEVudW0NCitNTmV0R3JvdXBHZXRJbmZvDQorTU5ldEdyb3VwR2V0VXNlcnMNCitNTmV0R3JvdXBTZXRJbmZvDQorTU5ldEdyb3VwU2V0VXNlcnMNCitNTmV0TG9jYWxHcm91cEFkZE1lbWJlcg0KK01OZXRMb2dvbkVudW0NCitNTmV0TWVzc2FnZUJ1ZmZlclNlbmQNCitNTmV0UmVtb3RlVE9EDQorTU5ldFNlcnZlckRpc2tFbnVtDQorTU5ldFNlcnZlckVudW0NCitNTmV0U2VydmVyR2V0SW5mbw0KK01OZXRTZXJ2ZXJTZXRJbmZvDQorTU5ldFNlcnZpY2VDb250cm9sDQorTU5ldFNlcnZpY2VFbnVtDQorTU5ldFNlcnZpY2VHZXRJbmZvDQorTU5ldFNlcnZpY2VJbnN0YWxsDQorTU5ldFNlc3Npb25EZWwNCitNTmV0U2Vzc2lvbkVudW0NCitNTmV0U2Vzc2lvbkdldEluZm8NCitNTmV0U2hhcmVBZGQNCitNTmV0U2hhcmVDaGVjaw0KK01OZXRTaGFyZURlbA0KK01OZXRTaGFyZURlbFN0aWNreQ0KK01OZXRTaGFyZUVudW0NCitNTmV0U2hhcmVFbnVtU3RpY2t5DQorTU5ldFNoYXJlR2V0SW5mbw0KK01OZXRTaGFyZVNldEluZm8NCitNTmV0VXNlQWRkDQorTU5ldFVzZURlbA0KK01OZXRVc2VFbnVtDQorTU5ldFVzZUdldEluZm8NCitNTmV0VXNlckFkZA0KK01OZXRVc2VyRGVsDQorTU5ldFVzZXJFbnVtDQorTU5ldFVzZXJHZXRHcm91cHMNCitNTmV0VXNlckdldEluZm8NCitNTmV0VXNlck1vZGFsc0dldA0KK01OZXRVc2VyTW9kYWxzU2V0DQorTU5ldFVzZXJQYXNzd29yZFNldA0KK01OZXRVc2VyU2V0R3JvdXBzDQorTU5ldFVzZXJTZXRJbmZvDQorTU5ldFdrc3RhR2V0SW5mbw0KK01OZXRXa3N0YVNldEluZm8NCitNTmV0V2tzdGFTZXRVSUQNCitNTmV0V2tzdGFVc2VyRW51bQ0KK01OZXRXa3N0YVVzZXJHZXRJbmZvDQorTWFrZUFyZ3ZBcmdjDQorU2V0dXBOb3JtYWxTZXNzaW9uDQorU2V0dXBOdWxsU2Vzc2lvbg0KK1NldHVwU2Vzc2lvbg0KK1Nsb3dUcmFuc3BvcnRXb3JrZXJUaHJlYWQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9uZXR1aTIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbmV0dWkyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NTE2MjY0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbmV0dWkyLmRlZgpAQCAtMCwwICsxLDQwOTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTkVUVUkyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBORVRVSTIuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIEFDQ0VMVEFCTEU6OkFDQ0VMVEFCTEUoY2xhc3MgSURSRVNPVVJDRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBBQ0NFTFRBQkxFQEBRRUFBQEFFQlZJRFJFU09VUkNFQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIEFDQ09VTlRfTkFNRVNfTUxFOjpBQ0NPVU5UX05BTUVTX01MRShjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRyAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIGxvbmcsZW51bSBGb250VHlwZSkgX19wdHI2NA0KKz8/MEFDQ09VTlRfTkFNRVNfTUxFQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElQRUJHUEVBVk5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQEhLVzRGb250VHlwZUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBBQ1RJVkFUSU9OX0VWRU5UOjpBQ1RJVkFUSU9OX0VWRU5UKHVuc2lnbmVkIGludCx1bnNpZ25lZCBfX2ludDY0LF9faW50NjQpIF9fcHRyNjQNCis/PzBBQ1RJVkFUSU9OX0VWRU5UQEBRRUFBQElfS19KQFoNCis7IHB1YmxpYzogX19jZGVjbCBBTElBU19TVFI6OkFMSUFTX1NUUih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBBTElBU19TVFJAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQUxMT0NfU1RSOjpBTExPQ19TVFIodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MEFMTE9DX1NUUkBAUUVBQUBQRUFHSUBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQVBQTElDQVRJT046OkFQUExJQ0FUSU9OKHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MEFQUExJQ0FUSU9OQEBJRUFBQFBFQVVISU5TVEFOQ0VfX0BASElJSUlAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIEFQUF9XSU5ET1c6OkFQUF9XSU5ET1coY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsY2xhc3MgSURSRVNPVVJDRSBjb25zdCAmIF9fcHRyNjQsY2xhc3MgSURSRVNPVVJDRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBBUFBfV0lORE9XQEBJRUFBQEFFQlZOTFNfU1RSQEBBRUJWSURSRVNPVVJDRUBAMUBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQVBQX1dJTkRPVzo6QVBQX1dJTkRPVyhjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIElEUkVTT1VSQ0UgY29uc3QgJiBfX3B0cjY0LGNsYXNzIElEUkVTT1VSQ0UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQVBQX1dJTkRPV0BASUVBQUBWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBBRUJWTkxTX1NUUkBAQUVCVklEUkVTT1VSQ0VAQDNAWg0KKzsgcHVibGljOiBfX2NkZWNsIEFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVI6OkFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVIodW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQVJSQVlfQ09OVFJPTFZBTF9DSURfUEFJUkBAUUVBQUBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBBUlJBWV9DT05UUk9MVkFMX0NJRF9QQUlSOjpBUlJBWV9DT05UUk9MVkFMX0NJRF9QQUlSKGNsYXNzIENPTlRST0xWQUxfQ0lEX1BBSVIgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxpbnQpIF9fcHRyNjQNCis/PzBBUlJBWV9DT05UUk9MVkFMX0NJRF9QQUlSQEBRRUFBQFBFQVZDT05UUk9MVkFMX0NJRF9QQUlSQEBJSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQVJSQVlfTElTVF9DT05UUk9MVkFMX0NJRF9QQUlSOjpBUlJBWV9MSVNUX0NPTlRST0xWQUxfQ0lEX1BBSVIodW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQVJSQVlfTElTVF9DT05UUk9MVkFMX0NJRF9QQUlSQEBRRUFBQElAWg0KKzsgcHVibGljOiBfX2NkZWNsIEFSUk9XX0JVVFRPTjo6QVJST1dfQlVUVE9OKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQVJST1dfQlVUVE9OQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElJSUlAWg0KKzsgcHVibGljOiBfX2NkZWNsIEFSUk9XX0JVVFRPTjo6QVJST1dfQlVUVE9OKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MEFSUk9XX0JVVFRPTkBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJSUlJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQVNTT0NIQ0ZJTEU6OkFTU09DSENGSUxFKHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQsbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBBU1NPQ0hDRklMRUBAUUVBQUBQRUFVSElOU1RBTkNFX19AQEpLS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQVNTT0NIV05ERElTUDo6QVNTT0NIV05ERElTUChzdHJ1Y3QgSFdORF9fICogX19wdHI2NCxjbGFzcyBESVNQQVRDSEVSIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MEFTU09DSFdORERJU1BAQFFFQUFAUEVBVUhXTkRfX0BAUEVCVkRJU1BBVENIRVJAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQVNTT0NIV05EUERMRzo6QVNTT0NIV05EUERMRyhzdHJ1Y3QgSFdORF9fICogX19wdHI2NCxjbGFzcyBESUFMT0dfV0lORE9XIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MEFTU09DSFdORFBETEdAQFFFQUFAUEVBVUhXTkRfX0BAUEVCVkRJQUxPR19XSU5ET1dAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQVNTT0NIV05EUFdORDo6QVNTT0NIV05EUFdORChzdHJ1Y3QgSFdORF9fICogX19wdHI2NCxjbGFzcyBDTElFTlRfV0lORE9XIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MEFTU09DSFdORFBXTkRAQFFFQUFAUEVBVUhXTkRfX0BAUEVCVkNMSUVOVF9XSU5ET1dAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQVNTT0NIV05EVEhJUzo6QVNTT0NIV05EVEhJUyhzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx2b2lkIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MEFTU09DSFdORFRISVNAQFFFQUFAUEVBVUhXTkRfX0BAUEVCWEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQVRPTV9CQVNFOjpBVE9NX0JBU0UodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/PzBBVE9NX0JBU0VAQElFQUFAR0BaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQVRPTV9CQVNFOjpBVE9NX0JBU0Uodm9pZCkgX19wdHI2NA0KKz8/MEFUT01fQkFTRUBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEFVRElUX0NIRUNLQk9YRVM6OkFVRElUX0NIRUNLQk9YRVMoY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBCSVRGSUVMRCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBBVURJVF9DSEVDS0JPWEVTQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElJSUFFQlZOTFNfU1RSQEBBRUJWQklURklFTERAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQVVUT19DVVJTT1I6OkFVVE9fQ1VSU09SKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MEFVVE9fQ1VSU09SQEBRRUFBQFBFQkdAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIEJBU0U6OkJBU0Uodm9pZCkgX19wdHI2NA0KKz8/MEJBU0VAQElFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCQVNFOjpCQVNFKGNsYXNzIEJBU0UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQkFTRUBAUUVBQUBBRUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIEJBU0VfRUxMSVBTSVM6OkJBU0VfRUxMSVBTSVMoZW51bSBFTExJUFNJU19TVFlMRSkgX19wdHI2NA0KKz8/MEJBU0VfRUxMSVBTSVNAQElFQUFAVzRFTExJUFNJU19TVFlMRUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBCQVNFX1BBU1NXT1JEX0RJQUxPRzo6QkFTRV9QQVNTV09SRF9ESUFMT0coc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MEJBU0VfUEFTU1dPUkRfRElBTE9HQEBRRUFBQFBFQVVIV05EX19AQFBFQkdJSUsxSUkxSTFAWg0KKzsgcHVibGljOiBfX2NkZWNsIEJBU0VfU0VUX0ZPQ1VTX0RMRzo6QkFTRV9TRVRfRk9DVVNfRExHKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0IGNvbnN0LGVudW0gU0VMRUNUSU9OX1RZUEUsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MEJBU0VfU0VUX0ZPQ1VTX0RMR0BAUUVBQUBRRUFVSFdORF9fQEBXNFNFTEVDVElPTl9UWVBFQEBLUEVCR0syS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQklUX01BUDo6QklUX01BUChjbGFzcyBJRFJFU09VUkNFIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MEJJVF9NQVBAQFFFQUFAQUVCVklEUkVTT1VSQ0VAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQklUX01BUDo6QklUX01BUChzdHJ1Y3QgSEJJVE1BUF9fICogX19wdHI2NCkgX19wdHI2NA0KKz8/MEJJVF9NQVBAQFFFQUFAUEVBVUhCSVRNQVBfX0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBCTFRfQkFDS0dST1VORF9FRElUOjpCTFRfQkFDS0dST1VORF9FRElUKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQkxUX0JBQ0tHUk9VTkRfRURJVEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBCTFRfQ09NQk9CT1g6OkJMVF9DT01CT0JPWChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxpbnQsZW51bSBGb250VHlwZSkgX19wdHI2NA0KKz8/MEJMVF9DT01CT0JPWEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJSFc0Rm9udFR5cGVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQkxUX0NPTUJPQk9YOjpCTFRfQ09NQk9CT1goY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLGludCxlbnVtIEZvbnRUeXBlKSBfX3B0cjY0DQorPz8wQkxUX0NPTUJPQk9YQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLSFc0Rm9udFR5cGVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQkxUX0RBVEVfU1BJTl9HUk9VUDo6QkxUX0RBVEVfU1BJTl9HUk9VUChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LGNsYXNzIElOVExfUFJPRklMRSBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBCTFRfREFURV9TUElOX0dST1VQQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQEFFQlZJTlRMX1BST0ZJTEVAQElJSUlJSUlJSUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQkxUX0xJU1RCT1g6OkJMVF9MSVNUQk9YKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGludCxlbnVtIEZvbnRUeXBlLGludCkgX19wdHI2NA0KKz8/MEJMVF9MSVNUQk9YQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElIVzRGb250VHlwZUBASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQkxUX0xJU1RCT1g6OkJMVF9MSVNUQk9YKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZyxpbnQsZW51bSBGb250VHlwZSxpbnQpIF9fcHRyNjQNCis/PzBCTFRfTElTVEJPWEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS0hXNEZvbnRUeXBlQEBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBCTFRfTElTVEJPWF9IQVc6OkJMVF9MSVNUQk9YX0hBVyhjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxpbnQsZW51bSBGb250VHlwZSxpbnQpIF9fcHRyNjQNCis/PzBCTFRfTElTVEJPWF9IQVdAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUhXNEZvbnRUeXBlQEBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBCTFRfTElTVEJPWF9IQVc6OkJMVF9MSVNUQk9YX0hBVyhjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsaW50LGVudW0gRm9udFR5cGUsaW50KSBfX3B0cjY0DQorPz8wQkxUX0xJU1RCT1hfSEFXQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLSFc0Rm9udFR5cGVAQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIEJMVF9NQVNURVJfVElNRVI6OkJMVF9NQVNURVJfVElNRVIodm9pZCkgX19wdHI2NA0KKz8/MEJMVF9NQVNURVJfVElNRVJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCTFRfU0NSQVRDSDo6QkxUX1NDUkFUQ0godW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQkxUX1NDUkFUQ0hAQFFFQUFASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQkxUX1RJTUVfU1BJTl9HUk9VUDo6QkxUX1RJTUVfU1BJTl9HUk9VUChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LGNsYXNzIElOVExfUFJPRklMRSBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQkxUX1RJTUVfU1BJTl9HUk9VUEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBBRUJWSU5UTF9QUk9GSUxFQEBJSUlJSUlJSUlJQFoNCis7IHB1YmxpYzogX19jZGVjbCBCUk9XU0VSX0RPTUFJTjo6QlJPV1NFUl9ET01BSU4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LGludCxpbnQpIF9fcHRyNjQNCis/PzBCUk9XU0VSX0RPTUFJTkBAUUVBQUBQRUJHUEVBWEhIQFoNCis7IHB1YmxpYzogX19jZGVjbCBCUk9XU0VSX0RPTUFJTl9DQjo6QlJPV1NFUl9ET01BSU5fQ0IoY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBCUk9XU0VSX0RPTUFJTl9DQkBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBCUk9XU0VSX0RPTUFJTl9MQjo6QlJPV1NFUl9ET01BSU5fTEIoY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsY2xhc3MgQlJPV1NFUl9ET01BSU5fQ0IgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQlJPV1NFUl9ET01BSU5fTEJAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASVBFQVZCUk9XU0VSX0RPTUFJTl9DQkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBCUk9XU0VSX0RPTUFJTl9MQkk6OkJST1dTRVJfRE9NQUlOX0xCSShjbGFzcyBCUk9XU0VSX0RPTUFJTiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBCUk9XU0VSX0RPTUFJTl9MQklAQFFFQUFAUEVBVkJST1dTRVJfRE9NQUlOQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIEJST1dTRVJfRE9NQUlOX0xCSV9QQjo6QlJPV1NFUl9ET01BSU5fTEJJX1BCKGNsYXNzIEJST1dTRVJfRE9NQUlOX0xCSSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBCUk9XU0VSX0RPTUFJTl9MQklfUEJAQFFFQUFAUEVBVkJST1dTRVJfRE9NQUlOX0xCSUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBCUk9XU0VSX1NVQkpFQ1Q6OkJST1dTRVJfU1VCSkVDVCh2b2lkKSBfX3B0cjY0DQorPz8wQlJPV1NFUl9TVUJKRUNUQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlJPV1NFUl9TVUJKRUNUX0lURVI6OkJST1dTRVJfU1VCSkVDVF9JVEVSKGNsYXNzIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0cgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQlJPV1NFUl9TVUJKRUNUX0lURVJAQFFFQUFAUEVBVk5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQlVUVE9OX0NPTlRST0w6OkJVVFRPTl9DT05UUk9MKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQlVUVE9OX0NPTlRST0xAQElFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQlVUVE9OX0NPTlRST0w6OkJVVFRPTl9DT05UUk9MKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MEJVVFRPTl9DT05UUk9MQEBJRUFBQFBFQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQU5DRUxfVEFTS19ESUFMT0c6OkNBTkNFTF9UQVNLX0RJQUxPRyh1bnNpZ25lZCBpbnQsc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsbG9uZyxlbnVtIEVMTElQU0lTX1NUWUxFKSBfX3B0cjY0DQorPz8wQ0FOQ0VMX1RBU0tfRElBTE9HQEBRRUFBQElQRUFVSFdORF9fQEBQRUJHX0tKVzRFTExJUFNJU19TVFlMRUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6Q0hBTkdFQUJMRV9TUElOX0lURU0oY2xhc3MgQ09OVFJPTF9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz8/MENIQU5HRUFCTEVfU1BJTl9JVEVNQEBRRUFBQFBFQVZDT05UUk9MX1dJTkRPV0BAS0tLSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0hFQ0tCT1g6OkNIRUNLQk9YKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQ0hFQ0tCT1hAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQ0xJRU5UX1dJTkRPVzo6Q0xJRU5UX1dJTkRPVyh1bnNpZ25lZCBsb25nLGNsYXNzIFdJTkRPVyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0xJRU5UX1dJTkRPV0BASUVBQUBLUEVCVldJTkRPV0BAUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQ0xJRU5UX1dJTkRPVzo6Q0xJRU5UX1dJTkRPVyh2b2lkKSBfX3B0cjY0DQorPz8wQ0xJRU5UX1dJTkRPV0BASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENPTUJPQk9YOjpDT01CT0JPWChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBDT01CT0JPWEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJSUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09NQk9CT1g6OkNPTUJPQk9YKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ09NQk9CT1hAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUlWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09OU09MRV9FTExJUFNJUzo6Q09OU09MRV9FTExJUFNJUyhlbnVtIEVMTElQU0lTX1NUWUxFLGludCkgX19wdHI2NA0KKz8/MENPTlNPTEVfRUxMSVBTSVNAQFFFQUFAVzRFTExJUFNJU19TVFlMRUBASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09OVFJPTFZBTF9DSURfUEFJUjo6Q09OVFJPTFZBTF9DSURfUEFJUih1bnNpZ25lZCBpbnQsY2xhc3MgQ09OVFJPTF9WQUxVRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDT05UUk9MVkFMX0NJRF9QQUlSQEBRRUFBQElQRUFWQ09OVFJPTF9WQUxVRUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDT05UUk9MVkFMX0NJRF9QQUlSOjpDT05UUk9MVkFMX0NJRF9QQUlSKHZvaWQpIF9fcHRyNjQNCis/PzBDT05UUk9MVkFMX0NJRF9QQUlSQEBRRUFBQFhaDQorOyBwcml2YXRlOiBfX2NkZWNsIENPTlRST0xfRU5UUlk6OkNPTlRST0xfRU5UUlkoY2xhc3MgQ09OVFJPTF9XSU5ET1cgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ09OVFJPTF9FTlRSWUBAQUVBQUBQRUFWQ09OVFJPTF9XSU5ET1dAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09OVFJPTF9FVkVOVDo6Q09OVFJPTF9FVkVOVCh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQ09OVFJPTF9FVkVOVEBAUUVBQUBJSUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09OVFJPTF9FVkVOVDo6Q09OVFJPTF9FVkVOVCh1bnNpZ25lZCBpbnQsdW5zaWduZWQgX19pbnQ2NCxfX2ludDY0KSBfX3B0cjY0DQorPz8wQ09OVFJPTF9FVkVOVEBAUUVBQUBJX0tfSkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09OVFJPTF9HUk9VUDo6Q09OVFJPTF9HUk9VUChjbGFzcyBDT05UUk9MX0dST1VQICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENPTlRST0xfR1JPVVBAQFFFQUFAUEVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDT05UUk9MX1RBQkxFOjpDT05UUk9MX1RBQkxFKHZvaWQpIF9fcHRyNjQNCis/PzBDT05UUk9MX1RBQkxFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09OVFJPTF9WQUxVRTo6Q09OVFJPTF9WQUxVRShjbGFzcyBDT05UUk9MX0dST1VQICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENPTlRST0xfVkFMVUVAQFFFQUFAUEVBVkNPTlRST0xfR1JPVVBAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09OVFJPTF9XSU5ET1c6OkNPTlRST0xfV0lORE9XKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQ09OVFJPTF9XSU5ET1dAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09OVFJPTF9XSU5ET1c6OkNPTlRST0xfV0lORE9XKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDT05UUk9MX1dJTkRPV0BAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS1BFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIENVU1RPTV9DT05UUk9MOjpDVVNUT01fQ09OVFJPTChjbGFzcyBDT05UUk9MX1dJTkRPVyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDVVNUT01fQ09OVFJPTEBAUUVBQUBQRUFWQ09OVFJPTF9XSU5ET1dAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgREVDX1NMVDo6REVDX1NMVChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBERUNfU0xUQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElJQFoNCis7IHB1YmxpYzogX19jZGVjbCBERUNfU0xUOjpERUNfU0xUKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wREVDX1NMVEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS1BFQkdJQFoNCis7IHB1YmxpYzogX19jZGVjbCBERVZJQ0VfQ09NQk86OkRFVklDRV9DT01CTyhjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxlbnVtIExNT19ERVZJQ0UsZW51bSBMTU9fREVWX1VTQUdFKSBfX3B0cjY0DQorPz8wREVWSUNFX0NPTUJPQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElXNExNT19ERVZJQ0VAQFc0TE1PX0RFVl9VU0FHRUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBERVZJQ0VfQ09OVEVYVDo6REVWSUNFX0NPTlRFWFQoc3RydWN0IEhEQ19fICogX19wdHI2NCkgX19wdHI2NA0KKz8/MERFVklDRV9DT05URVhUQEBRRUFBQFBFQVVIRENfX0BAQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBESUFMT0dfV0lORE9XOjpESUFMT0dfV0lORE9XKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxzdHJ1Y3QgSFdORF9fICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBESUFMT0dfV0lORE9XQEBJRUFBQFBFQkVJUEVBVUhXTkRfX0BASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgRElBTE9HX1dJTkRPVzo6RElBTE9HX1dJTkRPVyhjbGFzcyBJRFJFU09VUkNFIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBQV05EMkhXTkQgY29uc3QgJiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MERJQUxPR19XSU5ET1dAQFFFQUFAQUVCVklEUkVTT1VSQ0VAQEFFQlZQV05EMkhXTkRAQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIERJU0tfU1BBQ0VfU1VCQ0xBU1M6OkRJU0tfU1BBQ0VfU1VCQ0xBU1MoY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGxvbmcsbG9uZyxsb25nLGxvbmcsbG9uZyxpbnQpIF9fcHRyNjQNCis/PzBESVNLX1NQQUNFX1NVQkNMQVNTQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElJSUlJSkpKSkpIQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBESVNQQVRDSEVSOjpESVNQQVRDSEVSKGNsYXNzIFdJTkRPVyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBESVNQQVRDSEVSQEBJRUFBQFBFQVZXSU5ET1dAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgRElTUExBWV9DT05URVhUOjpESVNQTEFZX0NPTlRFWFQoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBESVNQTEFZX0NPTlRFWFRAQFFFQUFAUEVBVUhXTkRfX0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBESVNQTEFZX0NPTlRFWFQ6OkRJU1BMQVlfQ09OVEVYVChjbGFzcyBXSU5ET1cgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wRElTUExBWV9DT05URVhUQEBRRUFBQFBFQVZXSU5ET1dAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgRElTUExBWV9DT05URVhUOjpESVNQTEFZX0NPTlRFWFQoY2xhc3MgV0lORE9XICogX19wdHI2NCxzdHJ1Y3QgSERDX18gKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wRElTUExBWV9DT05URVhUQEBRRUFBQFBFQVZXSU5ET1dAQFBFQVVIRENfX0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBESVNQTEFZX01BUDo6RElTUExBWV9NQVAodW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wRElTUExBWV9NQVBAQFFFQUFASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgRElTUExBWV9UQUJMRTo6RElTUExBWV9UQUJMRSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MERJU1BMQVlfVEFCTEVAQFFFQUFASVBFQklAWg0KKzsgcHVibGljOiBfX2NkZWNsIERMR0xPQUQ6OkRMR0xPQUQoY2xhc3MgSURSRVNPVVJDRSBjb25zdCAmIF9fcHRyNjQsc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsX19pbnQ2NCAoX19jZGVjbCopKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBfX2ludDY0LF9faW50NjQpLGludCkgX19wdHI2NA0KKz8/MERMR0xPQURAQFFFQUFAQUVCVklEUkVTT1VSQ0VAQFBFQVVIV05EX19AQFA2QV9KMUlfS19KQFpIQFoNCis7IHB1YmxpYzogX19jZGVjbCBETEdMT0FEOjpETEdMT0FEKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxzdHJ1Y3QgSFdORF9fICogX19wdHI2NCxfX2ludDY0IChfX2NkZWNsKikoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIF9faW50NjQsX19pbnQ2NCksaW50KSBfX3B0cjY0DQorPz8wRExHTE9BREBAUUVBQUBQRUJFSVBFQVVIV05EX19AQFA2QV9KMUlfS19KQFpIQFoNCis7IHB1YmxpYzogX19jZGVjbCBETElTVF9PRl9TUElOX0lURU06OkRMSVNUX09GX1NQSU5fSVRFTShpbnQpIF9fcHRyNjQNCis/PzBETElTVF9PRl9TUElOX0lURU1AQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgRE1JRF9EVEU6OkRNSURfRFRFKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MERNSURfRFRFQEBRRUFBQElAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIERNX0RURTo6RE1fRFRFKHZvaWQpIF9fcHRyNjQNCis/PzBETV9EVEVAQElFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBETV9EVEU6OkRNX0RURShjbGFzcyBESVNQTEFZX01BUCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBETV9EVEVAQFFFQUFAUEVBVkRJU1BMQVlfTUFQQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIERPTUFJTl9DT01CTzo6RE9NQUlOX0NPTUJPKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBET01BSU5fQ09NQk9AQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUlJQFoNCis7IHB1YmxpYzogX19jZGVjbCBET01BSU5fRklMTF9USFJFQUQ6OkRPTUFJTl9GSUxMX1RIUkVBRChjbGFzcyBOVF9VU0VSX0JST1dTRVJfRElBTE9HICogX19wdHI2NCxjbGFzcyBCUk9XU0VSX0RPTUFJTiAqIF9fcHRyNjQsY2xhc3MgQURNSU5fQVVUSE9SSVRZIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MERPTUFJTl9GSUxMX1RIUkVBREBAUUVBQUBQRUFWTlRfVVNFUl9CUk9XU0VSX0RJQUxPR0BAUEVBVkJST1dTRVJfRE9NQUlOQEBQRUJWQURNSU5fQVVUSE9SSVRZQEBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIERURTo6RFRFKHZvaWQpIF9fcHRyNjQNCis/PzBEVEVAQElFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBFRElUX0NPTlRST0w6OkVESVRfQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBFRElUX0NPTlRST0xAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUlAWg0KKzsgcHVibGljOiBfX2NkZWNsIEVESVRfQ09OVFJPTDo6RURJVF9DT05UUk9MKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wRURJVF9DT05UUk9MQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLUEVCR0lAWg0KKzsgcHVibGljOiBfX2NkZWNsIEVMQVBTRURfVElNRV9DT05UUk9MOjpFTEFQU0VEX1RJTUVfQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGNsYXNzIFNMVCAmIF9fcHRyNjQsbG9uZyxsb25nLGxvbmcsY2xhc3MgU0xUICYgX19wdHI2NCxjbGFzcyBTTFQgJiBfX3B0cjY0LGxvbmcsbG9uZyxsb25nLGxvbmcsaW50KSBfX3B0cjY0DQorPz8wRUxBUFNFRF9USU1FX0NPTlRST0xAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUlJSUlJQUVBVlNMVEBASkpKMTFKSkpKSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgRVZFTlQ6OkVWRU5UKHVuc2lnbmVkIGludCx1bnNpZ25lZCBfX2ludDY0LF9faW50NjQpIF9fcHRyNjQNCis/PzBFVkVOVEBAUUVBQUBJX0tfSkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgRVhQQU5EQUJMRV9ESUFMT0c6OkVYUEFOREFCTEVfRElBTE9HKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGludCkgX19wdHI2NA0KKz8/MEVYUEFOREFCTEVfRElBTE9HQEBRRUFBQFBFQkdQRUFVSFdORF9fQEBJSUhAWg0KKzsgcHVibGljOiBfX2NkZWNsIEZPQ1VTRExHX0RBVEFfVEhSRUFEOjpGT0NVU0RMR19EQVRBX1RIUkVBRChzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGVudW0gU0VMRUNUSU9OX1RZUEUsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBGT0NVU0RMR19EQVRBX1RIUkVBREBAUUVBQUBQRUFVSFdORF9fQEBLVzRTRUxFQ1RJT05fVFlQRUBAUEVCR0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIEZPQ1VTX0NIRUNLQk9YOjpGT0NVU19DSEVDS0JPWChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MEZPQ1VTX0NIRUNLQk9YQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElAWg0KKzsgcHVibGljOiBfX2NkZWNsIEZPTlQ6OkZPTlQoc3RydWN0IHRhZ0xPR0ZPTlRXIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MEZPTlRAQFFFQUFAQUVCVXRhZ0xPR0ZPTlRXQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIEZPTlQ6OkZPTlQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIsaW50LGVudW0gRm9udEF0dHJpYnV0ZXMpIF9fcHRyNjQNCis/PzBGT05UQEBRRUFBQFBFQkdFSFc0Rm9udEF0dHJpYnV0ZXNAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgRk9OVDo6Rk9OVChlbnVtIEZvbnRUeXBlKSBfX3B0cjY0DQorPz8wRk9OVEBAUUVBQUBXNEZvbnRUeXBlQEBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIEZPUldBUkRJTkdfQkFTRTo6Rk9SV0FSRElOR19CQVNFKGNsYXNzIEJBU0UgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wRk9SV0FSRElOR19CQVNFQEBJRUFBQFBFQVZCQVNFQEBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIEdFVF9GTkFNRV9CQVNFX0RMRzo6R0VUX0ZOQU1FX0JBU0VfRExHKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBHRVRfRk5BTUVfQkFTRV9ETEdAQElFQUFAUEVBVk9XTkVSX1dJTkRPV0BAUEVCR0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIEdFVF9PUEVOX0ZJTEVOQU1FX0RMRzo6R0VUX09QRU5fRklMRU5BTUVfRExHKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBHRVRfT1BFTl9GSUxFTkFNRV9ETEdAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BAUEVCR0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIEdFVF9TQVZFX0ZJTEVOQU1FX0RMRzo6R0VUX1NBVkVfRklMRU5BTUVfRExHKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBHRVRfU0FWRV9GSUxFTkFNRV9ETEdAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BAUEVCR0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIEdMT0JBTF9BVE9NOjpHTE9CQUxfQVRPTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBHTE9CQUxfQVRPTUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBHUkFQSElDQUxfQlVUVE9OOjpHUkFQSElDQUxfQlVUVE9OKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wR1JBUEhJQ0FMX0JVVFRPTkBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJUEVCRzExQFoNCis7IHB1YmxpYzogX19jZGVjbCBHUkFQSElDQUxfQlVUVE9OOjpHUkFQSElDQUxfQlVUVE9OKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MEdSQVBISUNBTF9CVVRUT05AQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASVBFQkcxVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBASzFAWg0KKzsgcHVibGljOiBfX2NkZWNsIEdSQVBISUNBTF9CVVRUT05fV0lUSF9ESVNBQkxFOjpHUkFQSElDQUxfQlVUVE9OX1dJVEhfRElTQUJMRShjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MEdSQVBISUNBTF9CVVRUT05fV0lUSF9ESVNBQkxFQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElJSUlAWg0KKzsgcHVibGljOiBfX2NkZWNsIEdSQVBISUNBTF9CVVRUT05fV0lUSF9ESVNBQkxFOjpHUkFQSElDQUxfQlVUVE9OX1dJVEhfRElTQUJMRShjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBHUkFQSElDQUxfQlVUVE9OX1dJVEhfRElTQUJMRUBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJSUlJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgSEFTX01FU1NBR0VfUFVNUDo6SEFTX01FU1NBR0VfUFVNUCh2b2lkKSBfX3B0cjY0DQorPz8wSEFTX01FU1NBR0VfUFVNUEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEhBV19GT1JfSEFXQUlJX0lORk86OkhBV19GT1JfSEFXQUlJX0lORk8odm9pZCkgX19wdHI2NA0KKz8/MEhBV19GT1JfSEFXQUlJX0lORk9AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBISURERU5fQ09OVFJPTDo6SElEREVOX0NPTlRST0woY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBISURERU5fQ09OVFJPTEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBISUVSX0xCSTo6SElFUl9MQkkoaW50KSBfX3B0cjY0DQorPz8wSElFUl9MQklAQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSElFUl9MQklfSVRFUkFUT1I6OkhJRVJfTEJJX0lURVJBVE9SKGNsYXNzIEhJRVJfTEJJICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBISUVSX0xCSV9JVEVSQVRPUkBAUUVBQUBQRUFWSElFUl9MQklAQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIEhJRVJfTElTVEJPWDo6SElFUl9MSVNUQk9YKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGludCxlbnVtIEZvbnRUeXBlLGludCkgX19wdHI2NA0KKz8/MEhJRVJfTElTVEJPWEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJSFc0Rm9udFR5cGVAQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIEhJRVJfTElTVEJPWDo6SElFUl9MSVNUQk9YKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZyxpbnQsZW51bSBGb250VHlwZSxpbnQpIF9fcHRyNjQNCis/PzBISUVSX0xJU1RCT1hAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtIVzRGb250VHlwZUBASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSF9TUExJVFRFUl9CQVI6OkhfU1BMSVRURVJfQkFSKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wSF9TUExJVFRFUl9CQVJAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSF9TUExJVFRFUl9CQVI6OkhfU1BMSVRURVJfQkFSKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MEhfU1BMSVRURVJfQkFSQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBJQ0FOT05fU0xFOjpJQ0FOT05fU0xFKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxpbnQpIF9fcHRyNjQNCis/PzBJQ0FOT05fU0xFQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElJSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSUNBTk9OX1NMRTo6SUNBTk9OX1NMRShjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxpbnQpIF9fcHRyNjQNCis/PzBJQ0FOT05fU0xFQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLUEVCR0lIQFoNCis7IHB1YmxpYzogX19jZGVjbCBJQ09OX0NPTlRST0w6OklDT05fQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MElDT05fQ09OVFJPTEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBJQ09OX0NPTlRST0w6OklDT05fQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxjbGFzcyBJRFJFU09VUkNFIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MElDT05fQ09OVFJPTEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJQUVCVklEUkVTT1VSQ0VAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSUNPTl9DT05UUk9MOjpJQ09OX0NPTlRST0woY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTixjbGFzcyBJRFJFU09VUkNFIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MElDT05fQ09OVFJPTEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAQUVCVklEUkVTT1VSQ0VAQEtQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBJQ09OX0NPTlRST0w6OklDT05fQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wSUNPTl9DT05UUk9MQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgSURSRVNPVVJDRTo6SURSRVNPVVJDRSh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBJRFJFU09VUkNFQEBRRUFBQElAWg0KKzsgcHVibGljOiBfX2NkZWNsIElEUkVTT1VSQ0U6OklEUkVTT1VSQ0UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wSURSRVNPVVJDRUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBJVEVSX0NUUkw6OklURVJfQ1RSTChjbGFzcyBPV05FUl9XSU5ET1cgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wSVRFUl9DVFJMQEBRRUFBQFBFQlZPV05FUl9XSU5ET1dAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSVRFUl9ETF9TUElOX0lURU06OklURVJfRExfU1BJTl9JVEVNKGNsYXNzIERMSVNUICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MElURVJfRExfU1BJTl9JVEVNQEBRRUFBQEFFQVZETElTVEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBJVEVSX1NMX0FTU09DSENGSUxFOjpJVEVSX1NMX0FTU09DSENGSUxFKGNsYXNzIFNMSVNUICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MElURVJfU0xfQVNTT0NIQ0ZJTEVAQFFFQUFAQUVBVlNMSVNUQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIElURVJfU0xfQ0xJRU5UREFUQTo6SVRFUl9TTF9DTElFTlREQVRBKGNsYXNzIFNMSVNUICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MElURVJfU0xfQ0xJRU5UREFUQUBAUUVBQUBBRUFWU0xJU1RAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSVRFUl9TTF9TVFJJTkdfQklUU0VUX1BBSVI6OklURVJfU0xfU1RSSU5HX0JJVFNFVF9QQUlSKGNsYXNzIFNMSVNUICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MElURVJfU0xfU1RSSU5HX0JJVFNFVF9QQUlSQEBRRUFBQEFFQVZTTElTVEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBJVEVSX1NMX1RJTUVSX0JBU0U6OklURVJfU0xfVElNRVJfQkFTRShjbGFzcyBTTElTVCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBJVEVSX1NMX1RJTUVSX0JBU0VAQFFFQUFAQUVBVlNMSVNUQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIElURVJfU0xfVUlfRVhUOjpJVEVSX1NMX1VJX0VYVChjbGFzcyBTTElTVCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBJVEVSX1NMX1VJX0VYVEBAUUVBQUBBRUFWU0xJU1RAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSVRFUl9TTF9VU0VSX0JST1dTRVJfTEJJOjpJVEVSX1NMX1VTRVJfQlJPV1NFUl9MQkkoY2xhc3MgU0xJU1QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wSVRFUl9TTF9VU0VSX0JST1dTRVJfTEJJQEBRRUFBQEFFQVZTTElTVEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBMQVpZX0xJU1RCT1g6OkxBWllfTElTVEJPWChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxpbnQsZW51bSBGb250VHlwZSkgX19wdHI2NA0KKz8/MExBWllfTElTVEJPWEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJSFc0Rm9udFR5cGVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTEFaWV9MSVNUQk9YOjpMQVpZX0xJU1RCT1goY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLGludCxlbnVtIEZvbnRUeXBlKSBfX3B0cjY0DQorPz8wTEFaWV9MSVNUQk9YQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLSFc0Rm9udFR5cGVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTEJJOjpMQkkodm9pZCkgX19wdHI2NA0KKz8/MExCSUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExCSVRSRUU6OkxCSVRSRUUodm9pZCkgX19wdHI2NA0KKz8/MExCSVRSRUVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBMQklfSEVBUDo6TEJJX0hFQVAoaW50LGludCkgX19wdHI2NA0KKz8/MExCSV9IRUFQQEBRRUFBQEhIQFoNCis7IHB1YmxpYzogX19jZGVjbCBMQl9DT0xVTU5fSEVBREVSOjpMQl9DT0xVTU5fSEVBREVSKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04pIF9fcHRyNjQNCis/PzBMQl9DT0xVTU5fSEVBREVSQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIExCX0NPTF9XSURUSFM6OkxCX0NPTF9XSURUSFMoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsc3RydWN0IEhJTlNUQU5DRV9fICogX19wdHI2NCxjbGFzcyBJRFJFU09VUkNFIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wTEJfQ09MX1dJRFRIU0BAUUVBQUBQRUFVSFdORF9fQEBQRUFVSElOU1RBTkNFX19AQEFFQlZJRFJFU09VUkNFQEBJSUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTElTVEJPWDo6TElTVEJPWChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxpbnQsZW51bSBGb250VHlwZSxpbnQpIF9fcHRyNjQNCis/PzBMSVNUQk9YQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElIVzRGb250VHlwZUBASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTElTVEJPWDo6TElTVEJPWChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsaW50LGVudW0gRm9udFR5cGUsaW50KSBfX3B0cjY0DQorPz8wTElTVEJPWEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS0hXNEZvbnRUeXBlQEBIQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBMSVNUX0NPTlRST0w6OkxJU1RfQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxpbnQpIF9fcHRyNjQNCis/PzBMSVNUX0NPTlRST0xAQElFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUhAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIExJU1RfQ09OVFJPTDo6TElTVF9DT05UUk9MKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTElTVF9DT05UUk9MQEBJRUFBQFBFQVZPV05FUl9XSU5ET1dAQElIVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS1BFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIExNX09MTEI6OkxNX09MTEIoY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsZW51bSBTRUxFQ1RJT05fVFlQRSx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wTE1fT0xMQkBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJVzRTRUxFQ1RJT05fVFlQRUBAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE1fT0xMQjo6TE1fT0xMQihjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxlbnVtIFNFTEVDVElPTl9UWVBFLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBMTV9PTExCQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElXNFNFTEVDVElPTl9UWVBFQEBQRUJHS0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIExPQ0FMX0FUT006OkxPQ0FMX0FUT00odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTE9DQUxfQVRPTUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpMT0dPTl9IT1VSU19DT05UUk9MKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wTE9HT05fSE9VUlNfQ09OVFJPTEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpMT0dPTl9IT1VSU19DT05UUk9MKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04pIF9fcHRyNjQNCis/PzBMT0dPTl9IT1VSU19DT05UUk9MQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE1BR0lDX0dST1VQOjpNQUdJQ19HUk9VUChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxpbnQsdW5zaWduZWQgaW50LGNsYXNzIENPTlRST0xfR1JPVVAgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTUFHSUNfR1JPVVBAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUhJUEVBVkNPTlRST0xfR1JPVVBAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTUFTS19NQVA6Ok1BU0tfTUFQKHZvaWQpIF9fcHRyNjQNCis/PzBNQVNLX01BUEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE1FTU9SWV9EQzo6TUVNT1JZX0RDKGNsYXNzIERFVklDRV9DT05URVhUICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ME1FTU9SWV9EQ0BAUUVBQUBBRUFWREVWSUNFX0NPTlRFWFRAQEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgTUVOVUlURU06Ok1FTlVJVEVNKHN0cnVjdCBITUVOVV9fICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBNRU5VSVRFTUBASUVBQUBQRUFVSE1FTlVfX0BASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTUVOVUlURU06Ok1FTlVJVEVNKGNsYXNzIEFQUF9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/ME1FTlVJVEVNQEBRRUFBQFBFQVZBUFBfV0lORE9XQEBJQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBNRU5VX0JBU0U6Ok1FTlVfQkFTRShzdHJ1Y3QgSE1FTlVfXyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBNRU5VX0JBU0VAQElFQUFAUEVBVUhNRU5VX19AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTUVURVI6Ok1FVEVSKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBNRVRFUkBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgTUVURVI6Ok1FVEVSKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wTUVURVJAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtLQFoNCis7IHB1YmxpYzogX19jZGVjbCBNTEU6Ok1MRShjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBNTEVAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUlAWg0KKzsgcHVibGljOiBfX2NkZWNsIE1MRTo6TUxFKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wTUxFQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLUEVCR0lAWg0KKzsgcHVibGljOiBfX2NkZWNsIE1MRV9GT05UOjpNTEVfRk9OVChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxlbnVtIEZvbnRUeXBlKSBfX3B0cjY0DQorPz8wTUxFX0ZPTlRAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASVc0Rm9udFR5cGVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTUxUOjpNTFQoY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBNTFRAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTUxUOjpNTFQoY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/ME1MVEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS1BFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIE1MVF9GT05UOjpNTFRfRk9OVChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxlbnVtIEZvbnRUeXBlKSBfX3B0cjY0DQorPz8wTUxUX0ZPTlRAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASVc0Rm9udFR5cGVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTU9VU0VfRVZFTlQ6Ok1PVVNFX0VWRU5UKHVuc2lnbmVkIGludCx1bnNpZ25lZCBfX2ludDY0LF9faW50NjQpIF9fcHRyNjQNCis/PzBNT1VTRV9FVkVOVEBAUUVBQUBJX0tfSkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTVNHUE9QVVBfRElBTE9HOjpNU0dQT1BVUF9ESUFMT0coc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsbG9uZyxlbnVtIE1TR19TRVZFUklUWSx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wTVNHUE9QVVBfRElBTE9HQEBRRUFBQFBFQVVIV05EX19AQEFFQlZOTFNfU1RSQEBKVzRNU0dfU0VWRVJJVFlAQEtJSUpLQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBNU0dfRElBTE9HX0JBU0U6Ok1TR19ESUFMT0dfQkFTRShzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wTVNHX0RJQUxPR19CQVNFQEBJRUFBQFBFQVVIV05EX19AQFBFQkdJQFoNCis7IHB1YmxpYzogX19jZGVjbCBOVF9GSU5EX0FDQ09VTlRfRElBTE9HOjpOVF9GSU5EX0FDQ09VTlRfRElBTE9HKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LGNsYXNzIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0cgKiBfX3B0cjY0LGNsYXNzIEJST1dTRVJfRE9NQUlOX0NCICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/ME5UX0ZJTkRfQUNDT1VOVF9ESUFMT0dAQFFFQUFAUEVBVUhXTkRfX0BAUEVBVk5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQFBFQVZCUk9XU0VSX0RPTUFJTl9DQkBAUEVCR0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIE5UX0dMT0JBTEdST1VQX0JST1dTRVJfRElBTE9HOjpOVF9HTE9CQUxHUk9VUF9CUk9XU0VSX0RJQUxPRyhzdHJ1Y3QgSFdORF9fICogX19wdHI2NCxjbGFzcyBOVF9VU0VSX0JST1dTRVJfRElBTE9HICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIE9TX1NJRCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgU0FNX0RPTUFJTiBjb25zdCAqIF9fcHRyNjQsY2xhc3MgTFNBX1BPTElDWSAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTlRfR0xPQkFMR1JPVVBfQlJPV1NFUl9ESUFMT0dAQFFFQUFAUEVBVUhXTkRfX0BAUEVBVk5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQFBFQkcyUEVCVk9TX1NJREBAUEVCVlNBTV9ET01BSU5AQFBFQVZMU0FfUE9MSUNZQEAyQFoNCis7IHB1YmxpYzogX19jZGVjbCBOVF9HUk9VUF9CUk9XU0VSX0RJQUxPRzo6TlRfR1JPVVBfQlJPV1NFUl9ESUFMT0codW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LGNsYXNzIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0cgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBOVF9HUk9VUF9CUk9XU0VSX0RJQUxPR0BAUUVBQUBQRUJHUEVBVUhXTkRfX0BAUEVBVk5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQDAwQFoNCis7IHB1YmxpYzogX19jZGVjbCBOVF9HUk9VUF9CUk9XU0VSX0xCOjpOVF9HUk9VUF9CUk9XU0VSX0xCKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wTlRfR1JPVVBfQlJPV1NFUl9MQkBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBOVF9MT0NBTEdST1VQX0JST1dTRVJfRElBTE9HOjpOVF9MT0NBTEdST1VQX0JST1dTRVJfRElBTE9HKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LGNsYXNzIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0cgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgT1NfU0lEIGNvbnN0ICogX19wdHI2NCxjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICogX19wdHI2NCxjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICogX19wdHI2NCxjbGFzcyBMU0FfUE9MSUNZICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBOVF9MT0NBTEdST1VQX0JST1dTRVJfRElBTE9HQEBRRUFBQFBFQVVIV05EX19AQFBFQVZOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBQRUJHMlBFQlZPU19TSURAQFBFQlZTQU1fRE9NQUlOQEA0UEVBVkxTQV9QT0xJQ1lAQDJAWg0KKzsgcHVibGljOiBfX2NkZWNsIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0c6Ok5UX1VTRVJfQlJPV1NFUl9ESUFMT0codW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIEFETUlOX0FVVEhPUklUWSBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRRUFBQFBFQkdQRUFVSFdORF9fQEAwS0swS0tLUEVCVkFETUlOX0FVVEhPUklUWUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBPTExCX0VOVFJZOjpPTExCX0VOVFJZKGVudW0gT1VUTElORV9MQl9MRVZFTCxpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBPTExCX0VOVFJZQEBRRUFBQFc0T1VUTElORV9MQl9MRVZFTEBASFBFQkcxMUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgT1BFTl9ESUFMT0dfQkFTRTo6T1BFTl9ESUFMT0dfQkFTRShzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgT1BFTl9MQk9YX0JBU0UgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wT1BFTl9ESUFMT0dfQkFTRUBAUUVBQUBQRUFVSFdORF9fQEBJSUlJSVBFQkcxUEVBVk9QRU5fTEJPWF9CQVNFQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE9QRU5fTEJJX0JBU0U6Ok9QRU5fTEJJX0JBU0UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/ME9QRU5fTEJJX0JBU0VAQFFFQUFAUEVCRzBLS0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIE9QRU5fTEJPWF9CQVNFOjpPUEVOX0xCT1hfQkFTRShjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ME9QRU5fTEJPWF9CQVNFQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElBRUJWTkxTX1NUUkBAMUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgT1JERVJfR1JPVVA6Ok9SREVSX0dST1VQKGNsYXNzIFNUUklOR19MSVNUQk9YICogX19wdHI2NCxjbGFzcyBCVVRUT05fQ09OVFJPTCAqIF9fcHRyNjQsY2xhc3MgQlVUVE9OX0NPTlRST0wgKiBfX3B0cjY0LGNsYXNzIENPTlRST0xfR1JPVVAgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wT1JERVJfR1JPVVBAQFFFQUFAUEVBVlNUUklOR19MSVNUQk9YQEBQRUFWQlVUVE9OX0NPTlRST0xAQDFQRUFWQ09OVFJPTF9HUk9VUEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBPVVRMSU5FX0xJU1RCT1g6Ok9VVExJTkVfTElTVEJPWChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxpbnQpIF9fcHRyNjQNCis/PzBPVVRMSU5FX0xJU1RCT1hAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUhAWg0KKzsgcHVibGljOiBfX2NkZWNsIE9XTkVSX1dJTkRPVzo6T1dORVJfV0lORE9XKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGNsYXNzIFdJTkRPVyBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBPV05FUl9XSU5ET1dAQFFFQUFAUEVCR0tQRUJWV0lORE9XQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE9XTkVSX1dJTkRPVzo6T1dORVJfV0lORE9XKHZvaWQpIF9fcHRyNjQNCis/PzBPV05FUl9XSU5ET1dAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBPV05JTkdXTkQ6Ok9XTklOR1dORChzdHJ1Y3QgSFdORF9fICogX19wdHI2NCkgX19wdHI2NA0KKz8/ME9XTklOR1dOREBAUUVBQUBQRUFVSFdORF9fQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE9XTklOR1dORDo6T1dOSU5HV05EKGNsYXNzIE9XTkVSX1dJTkRPVyBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBPV05JTkdXTkRAQFFFQUFAUEVCVk9XTkVSX1dJTkRPV0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQQUlOVF9ESVNQTEFZX0NPTlRFWFQ6OlBBSU5UX0RJU1BMQVlfQ09OVEVYVChjbGFzcyBXSU5ET1cgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUEFJTlRfRElTUExBWV9DT05URVhUQEBRRUFBQFBFQVZXSU5ET1dAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUEFTU1dPUkRfQ09OVFJPTDo6UEFTU1dPUkRfQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBQQVNTV09SRF9DT05UUk9MQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElJQFoNCis7IHB1YmxpYzogX19jZGVjbCBQQVNTV09SRF9DT05UUk9MOjpQQVNTV09SRF9DT05UUk9MKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wUEFTU1dPUkRfQ09OVFJPTEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS1BFQkdJQFoNCis7IHB1YmxpYzogX19jZGVjbCBQT1BVUDo6UE9QVVAoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsbG9uZyxlbnVtIE1TR19TRVZFUklUWSx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGludCkgX19wdHI2NA0KKz8/MFBPUFVQQEBRRUFBQFBFQVVIV05EX19AQEpXNE1TR19TRVZFUklUWUBASUlIQFoNCis7IHB1YmxpYzogX19jZGVjbCBQT1BVUDo6UE9QVVAoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsbG9uZyxlbnVtIE1TR19TRVZFUklUWSx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGludCxjbGFzcyBOTFNfU1RSIGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wUE9QVVBAQFFFQUFAUEVBVUhXTkRfX0BASlc0TVNHX1NFVkVSSVRZQEBLSVBFQVBFQlZOTFNfU1RSQEBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBQT1BVUF9NRU5VOjpQT1BVUF9NRU5VKGNsYXNzIElEUkVTT1VSQ0UgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUE9QVVBfTUVOVUBAUUVBQUBBRUFWSURSRVNPVVJDRUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQT1BVUF9NRU5VOjpQT1BVUF9NRU5VKGNsYXNzIFBXTkQySFdORCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQT1BVUF9NRU5VQEBRRUFBQEFFQlZQV05EMkhXTkRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUE9QVVBfTUVOVTo6UE9QVVBfTUVOVShzdHJ1Y3QgSE1FTlVfXyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQT1BVUF9NRU5VQEBRRUFBQFBFQVVITUVOVV9fQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFBPUFVQX01FTlU6OlBPUFVQX01FTlUodm9pZCkgX19wdHI2NA0KKz8/MFBPUFVQX01FTlVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBQUk9DX0lOU1RBTkNFOjpQUk9DX0lOU1RBTkNFKHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzBQUk9DX0lOU1RBTkNFQEBRRUFBQF9LQFoNCis7IHB1YmxpYzogX19jZGVjbCBQUk9DX1RJTUVSOjpQUk9DX1RJTUVSKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/PzBQUk9DX1RJTUVSQEBRRUFBQFBFQVVIV05EX19AQF9LS0hAWg0KKzsgcHVibGljOiBfX2NkZWNsIFBST0dSRVNTX0NPTlRST0w6OlBST0dSRVNTX0NPTlRST0woY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MFBST0dSRVNTX0NPTlRST0xAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUlJQFoNCis7IHB1YmxpYzogX19jZGVjbCBQUk9NUFRfQU5EX0NPTk5FQ1Q6OlBST01QVF9BTkRfQ09OTkVDVChzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUFJPTVBUX0FORF9DT05ORUNUQEBRRUFBQFBFQVVIV05EX19AQFBFQkdLSTFAWg0KKzsgcHVibGljOiBfX2NkZWNsIFBST01QVF9GT1JfQU5ZX0RDX0RMRzo6UFJPTVBUX0ZPUl9BTllfRENfRExHKGNsYXNzIFBXTkQySFdORCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxjbGFzcyBOTFNfU1RSIGNvbnN0ICogX19wdHI2NCxjbGFzcyBQV05EMkhXTkQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUFJPTVBUX0ZPUl9BTllfRENfRExHQEBRRUFBQEFFQVZQV05EMkhXTkRAQEtQRUJWTkxTX1NUUkBAUEVBVjJAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQVVNIX0JVVFRPTjo6UFVTSF9CVVRUT04oY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBQVVNIX0JVVFRPTkBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBQVVNIX0JVVFRPTjo6UFVTSF9CVVRUT04oY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wUFVTSF9CVVRUT05AQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIFBXTkQySFdORDo6UFdORDJIV05EKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUFdORDJIV05EQEBRRUFBQFBFQVVIV05EX19AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUkFESU9fQlVUVE9OOjpSQURJT19CVVRUT04oY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBSQURJT19CVVRUT05AQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUkFESU9fR1JPVVA6OlJBRElPX0dST1VQKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGludCx1bnNpZ25lZCBpbnQsY2xhc3MgQ09OVFJPTF9HUk9VUCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBSQURJT19HUk9VUEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJSElQRUFWQ09OVFJPTF9HUk9VUEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBSRVNPVVJDRV9QQVNTV09SRF9ESUFMT0c6OlJFU09VUkNFX1BBU1NXT1JEX0RJQUxPRyhzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBSRVNPVVJDRV9QQVNTV09SRF9ESUFMT0dAQFFFQUFAUEVBVUhXTkRfX0BAUEVCR0lLQFoNCis7IHB1YmxpYzogX19jZGVjbCBSRVNPVVJDRV9TVFI6OlJFU09VUkNFX1NUUihsb25nKSBfX3B0cjY0DQorPz8wUkVTT1VSQ0VfU1RSQEBRRUFBQEpAWg0KKzsgcHVibGljOiBfX2NkZWNsIFJJVEVSX0RMX1NQSU5fSVRFTTo6UklURVJfRExfU1BJTl9JVEVNKGNsYXNzIERMSVNUICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFJJVEVSX0RMX1NQSU5fSVRFTUBAUUVBQUBBRUFWRExJU1RAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0NSRUVOX0RDOjpTQ1JFRU5fREModm9pZCkgX19wdHI2NA0KKz8/MFNDUkVFTl9EQ0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNDUk9MTEJBUjo6U0NST0xMQkFSKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNDUk9MTEJBUkBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0NST0xMX0VWRU5UOjpTQ1JPTExfRVZFTlQodW5zaWduZWQgaW50LHVuc2lnbmVkIF9faW50NjQsX19pbnQ2NCkgX19wdHI2NA0KKz8/MFNDUk9MTF9FVkVOVEBAUUVBQUBJX0tfSkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0VUX0NPTlRST0w6OlNFVF9DT05UUk9MKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxzdHJ1Y3QgSElDT05fXyAqIF9fcHRyNjQsc3RydWN0IEhJQ09OX18gKiBfX3B0cjY0LGNsYXNzIExJU1RCT1ggKiBfX3B0cjY0LGNsYXNzIExJU1RCT1ggKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MFNFVF9DT05UUk9MQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElJUEVBVUhJQ09OX19AQDFQRUFWTElTVEJPWEBAMklAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNFVF9PRl9BVURJVF9DQVRFR09SSUVTOjpTRVRfT0ZfQVVESVRfQ0FURUdPUklFUyhjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGNsYXNzIE1BU0tfTUFQICogX19wdHI2NCxjbGFzcyBCSVRGSUVMRCAqIF9fcHRyNjQsY2xhc3MgQklURklFTEQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MFNFVF9PRl9BVURJVF9DQVRFR09SSUVTQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElJSVBFQVZNQVNLX01BUEBAUEVBVkJJVEZJRUxEQEAySEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0xFOjpTTEUoY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wU0xFQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElJQFoNCis7IHB1YmxpYzogX19jZGVjbCBTTEU6OlNMRShjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MFNMRUBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS1BFQkdJQFoNCis7IHB1YmxpYzogX19jZGVjbCBTTEVfRk9OVDo6U0xFX0ZPTlQoY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsZW51bSBGb250VHlwZSkgX19wdHI2NA0KKz8/MFNMRV9GT05UQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElXNEZvbnRUeXBlQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNMRV9TVFJJUDo6U0xFX1NUUklQKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxpbnQpIF9fcHRyNjQNCis/PzBTTEVfU1RSSVBAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUlIQFoNCis7IHB1YmxpYzogX19jZGVjbCBTTEVfU1RSSVA6OlNMRV9TVFJJUChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxpbnQpIF9fcHRyNjQNCis/PzBTTEVfU1RSSVBAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtQRUJHSUhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNMRV9TVFJMQl9HUk9VUDo6U0xFX1NUUkxCX0dST1VQKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsY2xhc3MgU0xFICogX19wdHI2NCxjbGFzcyBTVFJJTkdfTElTVEJPWCAqIF9fcHRyNjQsY2xhc3MgUFVTSF9CVVRUT04gKiBfX3B0cjY0LGNsYXNzIFBVU0hfQlVUVE9OICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNMRV9TVFJMQl9HUk9VUEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBQRUFWU0xFQEBQRUFWU1RSSU5HX0xJU1RCT1hAQFBFQVZQVVNIX0JVVFRPTkBAM0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0xJU1RfT0ZfQVNTT0NIQ0ZJTEU6OlNMSVNUX09GX0FTU09DSENGSUxFKGludCkgX19wdHI2NA0KKz8/MFNMSVNUX09GX0FTU09DSENGSUxFQEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNMSVNUX09GX0NMSUVOVERBVEE6OlNMSVNUX09GX0NMSUVOVERBVEEoaW50KSBfX3B0cjY0DQorPz8wU0xJU1RfT0ZfQ0xJRU5UREFUQUBAUUVBQUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBTTElTVF9PRl9PU19TSUQ6OlNMSVNUX09GX09TX1NJRChpbnQpIF9fcHRyNjQNCis/PzBTTElTVF9PRl9PU19TSURAQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0xJU1RfT0ZfU1RSSU5HX0JJVFNFVF9QQUlSOjpTTElTVF9PRl9TVFJJTkdfQklUU0VUX1BBSVIoaW50KSBfX3B0cjY0DQorPz8wU0xJU1RfT0ZfU1RSSU5HX0JJVFNFVF9QQUlSQEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNMSVNUX09GX1RJTUVSX0JBU0U6OlNMSVNUX09GX1RJTUVSX0JBU0UoaW50KSBfX3B0cjY0DQorPz8wU0xJU1RfT0ZfVElNRVJfQkFTRUBAUUVBQUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBTTElTVF9PRl9VSV9FWFQ6OlNMSVNUX09GX1VJX0VYVChpbnQpIF9fcHRyNjQNCis/PzBTTElTVF9PRl9VSV9FWFRAQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0xJU1RfT0ZfVUxDX0FQSV9CVUZGRVI6OlNMSVNUX09GX1VMQ19BUElfQlVGRkVSKGludCkgX19wdHI2NA0KKz8/MFNMSVNUX09GX1VMQ19BUElfQlVGRkVSQEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNMSVNUX09GX1VTRVJfQlJPV1NFUl9MQkk6OlNMSVNUX09GX1VTRVJfQlJPV1NFUl9MQkkoaW50KSBfX3B0cjY0DQorPz8wU0xJU1RfT0ZfVVNFUl9CUk9XU0VSX0xCSUBAUUVBQUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBTTFQ6OlNMVChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MFNMVEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBTTFQ6OlNMVChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU0xUQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0xUX0VMTElQU0lTOjpTTFRfRUxMSVBTSVMoY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxlbnVtIEVMTElQU0lTX1NUWUxFKSBfX3B0cjY0DQorPz8wU0xUX0VMTElQU0lTQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLUEVCR1c0RUxMSVBTSVNfU1RZTEVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0xUX0VMTElQU0lTOjpTTFRfRUxMSVBTSVMoY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsZW51bSBFTExJUFNJU19TVFlMRSkgX19wdHI2NA0KKz8/MFNMVF9FTExJUFNJU0BAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJVzRFTExJUFNJU19TVFlMRUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTTFRfRk9OVDo6U0xUX0ZPTlQoY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsZW51bSBGb250VHlwZSkgX19wdHI2NA0KKz8/MFNMVF9GT05UQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElXNEZvbnRUeXBlQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNPTElEX0JSVVNIOjpTT0xJRF9CUlVTSChpbnQpIF9fcHRyNjQNCis/PzBTT0xJRF9CUlVTSEBAUUVBQUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBTUElOX0dST1VQOjpTUElOX0dST1VQKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsaW50KSBfX3B0cjY0DQorPz8wU1BJTl9HUk9VUEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJSUlIQFoNCis7IHB1YmxpYzogX19jZGVjbCBTUElOX0dST1VQOjpTUElOX0dST1VQKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz8/MFNQSU5fR1JPVVBAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUlJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS0hAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNQSU5fSVRFTTo6U1BJTl9JVEVNKGNsYXNzIENPTlRST0xfV0lORE9XICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNQSU5fSVRFTUBAUUVBQUBQRUFWQ09OVFJPTF9XSU5ET1dAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1BJTl9TTEVfTlVNOjpTUElOX1NMRV9OVU0oY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MFNQSU5fU0xFX05VTUBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJS0tLSElAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNQSU5fU0xFX05VTTo6U1BJTl9TTEVfTlVNKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wU1BJTl9TTEVfTlVNQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLS0tLSElAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNQSU5fU0xFX05VTV9WQUxJRDo6U1BJTl9TTEVfTlVNX1ZBTElEKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz8/MFNQSU5fU0xFX05VTV9WQUxJREBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJS0tLSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1BJTl9TTEVfTlVNX1ZBTElEOjpTUElOX1NMRV9OVU1fVkFMSUQoY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz8/MFNQSU5fU0xFX05VTV9WQUxJREBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS0tLS0hAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNQSU5fU0xFX1NUUjo6U1BJTl9TTEVfU1RSKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGxvbmcsbG9uZyxpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wU1BJTl9TTEVfU1RSQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElKSkhJQFoNCis7IHB1YmxpYzogX19jZGVjbCBTUElOX1NMRV9TVFI6OlNQSU5fU0xFX1NUUihjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxsb25nLGxvbmcsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBTUElOX1NMRV9TVFJAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUpKVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS0hJQFoNCis7IHB1YmxpYzogX19jZGVjbCBTUElOX1NMRV9TVFI6OlNQSU5fU0xFX1NUUihjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgKiBfX3B0cjY0IGNvbnN0LGxvbmcsaW50LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MFNQSU5fU0xFX1NUUkBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJUUVBUEVCR0pISUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1BJTl9TTEVfU1RSOjpTUElOX1NMRV9TVFIoY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCBjb25zdCxsb25nLGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZyxpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wU1BJTl9TTEVfU1RSQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElRRUFQRUJHSlZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtISUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1BJTl9TTEVfVkFMSURfU0VDT05EOjpTUElOX1NMRV9WQUxJRF9TRUNPTkQoY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsbG9uZyxsb25nLGxvbmcsbG9uZyxpbnQpIF9fcHRyNjQNCis/PzBTUElOX1NMRV9WQUxJRF9TRUNPTkRAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUpKSkpIQFoNCis7IHB1YmxpYzogX19jZGVjbCBTUElOX1NMVF9TRVBBUkFUT1I6OlNQSU5fU0xUX1NFUEFSQVRPUihjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MFNQSU5fU0xUX1NFUEFSQVRPUkBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBTUElOX1NMVF9TRVBBUkFUT1I6OlNQSU5fU0xUX1NFUEFSQVRPUihjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wU1BJTl9TTFRfU0VQQVJBVE9SQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElQRUJHVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1RBTkRBTE9ORV9TRVRfRk9DVVNfRExHOjpTVEFOREFMT05FX1NFVF9GT0NVU19ETEcoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxlbnVtIFNFTEVDVElPTl9UWVBFLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wU1RBTkRBTE9ORV9TRVRfRk9DVVNfRExHQEBRRUFBQFBFQVVIV05EX19AQFBFQVZOTFNfU1RSQEBLVzRTRUxFQ1RJT05fVFlQRUBAS1BFQkczS0BaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgU1RBVEUyX0JVVFRPTl9DT05UUk9MOjpTVEFURTJfQlVUVE9OX0NPTlRST0woY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBTVEFURTJfQlVUVE9OX0NPTlRST0xAQElFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1RBVEVMQjo6U1RBVEVMQihpbnQgKiBfX3B0cjY0IGNvbnN0LGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGludCxpbnQsZW51bSBGb250VHlwZSkgX19wdHI2NA0KKz8/MFNUQVRFTEJAQFFFQUFAUUVBSFBFQVZPV05FUl9XSU5ET1dAQElISFc0Rm9udFR5cGVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1RBVEVMQkdSUDo6U1RBVEVMQkdSUChjbGFzcyBTVEFURUxCICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNUQVRFTEJHUlBAQFFFQUFAUEVBVlNUQVRFTEJAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1RBVEVMQkdSUDo6U1RBVEVMQkdSUChpbnQgKiBfX3B0cjY0IGNvbnN0LGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGludCxpbnQsZW51bSBGb250VHlwZSkgX19wdHI2NA0KKz8/MFNUQVRFTEJHUlBAQFFFQUFAUUVBSFBFQVZPV05FUl9XSU5ET1dAQElISFc0Rm9udFR5cGVAQEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgU1RBVEVfQlVUVE9OX0NPTlRST0w6OlNUQVRFX0JVVFRPTl9DT05UUk9MKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wU1RBVEVfQlVUVE9OX0NPTlRST0xAQElFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgU1RBVEVfQlVUVE9OX0NPTlRST0w6OlNUQVRFX0JVVFRPTl9DT05UUk9MKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNUQVRFX0JVVFRPTl9DT05UUk9MQEBJRUFBQFBFQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBTVEFUSUNfU1BJTl9JVEVNOjpTVEFUSUNfU1BJTl9JVEVNKGNsYXNzIENPTlRST0xfV0lORE9XICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNUQVRJQ19TUElOX0lURU1AQFFFQUFAUEVBVkNPTlRST0xfV0lORE9XQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUQVRJQ19URVhUX0NPTlRST0w6OlNUQVRJQ19URVhUX0NPTlRST0woY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBTVEFUSUNfVEVYVF9DT05UUk9MQEBRRUFBQFBFQVZPV05FUl9XSU5ET1dAQElAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUQVRJQ19URVhUX0NPTlRST0w6OlNUQVRJQ19URVhUX0NPTlRST0woY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNUQVRJQ19URVhUX0NPTlRST0xAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBTVExCSVRFTTo6U1RMQklURU0oY2xhc3MgU1RBVEVMQkdSUCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTVExCSVRFTUBAUUVBQUBQRUFWU1RBVEVMQkdSUEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTVFJJTkdfQklUU0VUX1BBSVI6OlNUUklOR19CSVRTRVRfUEFJUihjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBCSVRGSUVMRCBjb25zdCAmIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wU1RSSU5HX0JJVFNFVF9QQUlSQEBRRUFBQEFFQlZOTFNfU1RSQEBBRUJWQklURklFTERAQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUklOR19MSVNUQk9YOjpTVFJJTkdfTElTVEJPWChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGVudW0gRm9udFR5cGUpIF9fcHRyNjQNCis/PzBTVFJJTkdfTElTVEJPWEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS1BFQkdXNEZvbnRUeXBlQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUklOR19MSVNUQk9YOjpTVFJJTkdfTElTVEJPWChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxlbnVtIEZvbnRUeXBlKSBfX3B0cjY0DQorPz8wU1RSSU5HX0xJU1RCT1hAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASVc0Rm9udFR5cGVAQEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgU1RSSU5HX0xJU1RfQ09OVFJPTDo6U1RSSU5HX0xJU1RfQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxpbnQpIF9fcHRyNjQNCis/PzBTVFJJTkdfTElTVF9DT05UUk9MQEBJRUFBQFBFQVZPV05FUl9XSU5ET1dAQElIQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBTVFJJTkdfTElTVF9DT05UUk9MOjpTVFJJTkdfTElTVF9DT05UUk9MKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU1RSSU5HX0xJU1RfQ09OVFJPTEBASUVBQUBQRUFWT1dORVJfV0lORE9XQEBJSFZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBTVFJfRFRFOjpTVFJfRFRFKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNUUl9EVEVAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1RSX0RURV9FTExJUFNJUzo6U1RSX0RURV9FTExJUFNJUyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgTElTVEJPWCAqIF9fcHRyNjQsZW51bSBFTExJUFNJU19TVFlMRSkgX19wdHI2NA0KKz8/MFNUUl9EVEVfRUxMSVBTSVNAQFFFQUFAUEVCR1BFQVZMSVNUQk9YQEBXNEVMTElQU0lTX1NUWUxFQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNVQkpFQ1RfQklUTUFQX0JMT0NLOjpTVUJKRUNUX0JJVE1BUF9CTE9DSyh2b2lkKSBfX3B0cjY0DQorPz8wU1VCSkVDVF9CSVRNQVBfQkxPQ0tAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTWVNNRU5VSVRFTTo6U1lTTUVOVUlURU0oY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBTWVNNRU5VSVRFTUBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBTWVNURU1fTUVOVTo6U1lTVEVNX01FTlUoY2xhc3MgUFdORDJIV05EIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNZU1RFTV9NRU5VQEBRRUFBQEFFQlZQV05EMkhXTkRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgVEVYVF9DT05UUk9MOjpURVhUX0NPTlRST0woY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBURVhUX0NPTlRST0xAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgVEVYVF9DT05UUk9MOjpURVhUX0NPTlRST0woY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFRFWFRfQ09OVFJPTEBAUUVBQUBQRUFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS1BFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFRJTUVSOjpUSU1FUihjbGFzcyBUSU1FUl9DQUxMT1VUICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz8/MFRJTUVSQEBRRUFBQFBFQVZUSU1FUl9DQUxMT1VUQEBLSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgVElNRVJfQkFTRTo6VElNRVJfQkFTRSh1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz8/MFRJTUVSX0JBU0VAQFFFQUFAS0hAWg0KKzsgcHVibGljOiBfX2NkZWNsIFRJTUVSX0VWRU5UOjpUSU1FUl9FVkVOVCh1bnNpZ25lZCBpbnQsdW5zaWduZWQgX19pbnQ2NCxfX2ludDY0KSBfX3B0cjY0DQorPz8wVElNRVJfRVZFTlRAQFFFQUFASV9LX0pAWg0KKzsgcHVibGljOiBfX2NkZWNsIFRJTUVSX1dJTkRPVzo6VElNRVJfV0lORE9XKGNsYXNzIEJMVF9NQVNURVJfVElNRVIgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wVElNRVJfV0lORE9XQEBRRUFBQFBFQVZCTFRfTUFTVEVSX1RJTUVSQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFVJX0RPTUFJTjo6VUlfRE9NQUlOKGNsYXNzIFBXTkQySFdORCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wVUlfRE9NQUlOQEBRRUFBQEFFQVZQV05EMkhXTkRAQEtQRUJHSEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgVUlfRVhUOjpVSV9FWFQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBVSV9FWFRAQElFQUFAUEVCR0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIFVJX0VYVF9NR1I6OlVJX0VYVF9NR1IoY2xhc3MgVUlfRVhUX01HUl9JRiAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wVUlfRVhUX01HUkBAUUVBQUBQRUFWVUlfRVhUX01HUl9JRkBAS0tAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIFVJX0VYVF9NR1JfSUY6OlVJX0VYVF9NR1JfSUYodm9pZCkgX19wdHI2NA0KKz8/MFVJX0VYVF9NR1JfSUZAQElFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBVSV9NRU5VX0VYVDo6VUlfTUVOVV9FWFQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBVSV9NRU5VX0VYVEBASUVBQUBQRUJHS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgVUlfTUVOVV9FWFRfTUdSOjpVSV9NRU5VX0VYVF9NR1IoY2xhc3MgVUlfRVhUX01HUl9JRiAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wVUlfTUVOVV9FWFRfTUdSQEBRRUFBQFBFQVZVSV9FWFRfTUdSX0lGQEBLS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgVUxDX0FQSV9CVUZGRVI6OlVMQ19BUElfQlVGRkVSKHN0cnVjdCBfRE9NQUlOX0RJU1BMQVlfVVNFUiAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFVMQ19BUElfQlVGRkVSQEBRRUFBQFBFQVVfRE9NQUlOX0RJU1BMQVlfVVNFUkBAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUl9CUk9XU0VSX0xCOjpVU0VSX0JST1dTRVJfTEIoY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBVU0VSX0JST1dTRVJfTEJAQFFFQUFAUEVBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUl9CUk9XU0VSX0xCSTo6VVNFUl9CUk9XU0VSX0xCSSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0IGNvbnN0LGVudW0gVUlfU3lzdGVtU2lkLGVudW0gX1NJRF9OQU1FX1VTRSx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wVVNFUl9CUk9XU0VSX0xCSUBAUUVBQUBQRUJHMDAwMFFFQVhXNFVJX1N5c3RlbVNpZEBAVzRfU0lEX05BTUVfVVNFQEBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFOjpVU0VSX0JST1dTRVJfTEJJX0NBQ0hFKHZvaWQpIF9fcHRyNjQNCis/PzBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVVNFUl9MQklfQ0FDSEU6OlVTRVJfTEJJX0NBQ0hFKGludCkgX19wdHI2NA0KKz8/MFVTRVJfTEJJX0NBQ0hFQEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFVTUkxCX05UX0dST1VQX0VOVU06OlVTUkxCX05UX0dST1VQX0VOVU0oY2xhc3MgU0FNX0RPTUFJTiBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBVU1JMQl9OVF9HUk9VUF9FTlVNQEBRRUFBQFBFQlZTQU1fRE9NQUlOQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdJTjMyX0VWRU5UOjpXSU4zMl9FVkVOVCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz8/MFdJTjMyX0VWRU5UQEBRRUFBQFBFQkdISEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV0lOMzJfSEFORExFOjpXSU4zMl9IQU5ETEUodm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXSU4zMl9IQU5ETEVAQFFFQUFAUEVBWEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV0lOMzJfTVVURVg6OldJTjMyX01VVEVYKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBXSU4zMl9NVVRFWEBAUUVBQUBQRUJHSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV0lOMzJfU0VNQVBIT1JFOjpXSU4zMl9TRU1BUEhPUkUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcsbG9uZykgX19wdHI2NA0KKz8/MFdJTjMyX1NFTUFQSE9SRUBAUUVBQUBQRUJHSkpAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIFdJTjMyX1NZTkNfQkFTRTo6V0lOMzJfU1lOQ19CQVNFKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV0lOMzJfU1lOQ19CQVNFQEBJRUFBQFBFQVhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdJTjMyX1RIUkVBRDo6V0lOMzJfVEhSRUFEKGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV0lOMzJfVEhSRUFEQEBRRUFBQEhJUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgV0lORE9XOjpXSU5ET1coY2xhc3MgV0lORE9XIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFdJTkRPV0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdJTkRPVzo6V0lORE9XKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV0lORE9XQEBRRUFBQFBFQVVIV05EX19AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV0lORE9XOjpXSU5ET1codW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsY2xhc3MgV0lORE9XIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBXSU5ET1dAQFFFQUFAUEVCR0tQRUJWMEBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBXSU5ET1c6OldJTkRPVyh2b2lkKSBfX3B0cjY0DQorPz8wV0lORE9XQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgV0lORE9XX1RJTUVSOjpXSU5ET1dfVElNRVIoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxpbnQsaW50KSBfX3B0cjY0DQorPz8wV0lORE9XX1RJTUVSQEBRRUFBQFBFQVVIV05EX19AQEtISEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV0lOX0VMTElQU0lTOjpXSU5fRUxMSVBTSVMoY2xhc3MgV0lORE9XICogX19wdHI2NCxzdHJ1Y3QgSERDX18gKiBfX3B0cjY0LHN0cnVjdCB0YWdSRUNUIGNvbnN0ICogX19wdHI2NCxlbnVtIEVMTElQU0lTX1NUWUxFKSBfX3B0cjY0DQorPz8wV0lOX0VMTElQU0lTQEBRRUFBQFBFQVZXSU5ET1dAQFBFQVVIRENfX0BAUEVCVXRhZ1JFQ1RAQFc0RUxMSVBTSVNfU1RZTEVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV0lOX0VMTElQU0lTOjpXSU5fRUxMSVBTSVMoY2xhc3MgV0lORE9XICogX19wdHI2NCxlbnVtIEVMTElQU0lTX1NUWUxFKSBfX3B0cjY0DQorPz8wV0lOX0VMTElQU0lTQEBRRUFBQFBFQVZXSU5ET1dAQFc0RUxMSVBTSVNfU1RZTEVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgWFlESU1FTlNJT046OlhZRElNRU5TSU9OKHN0cnVjdCB0YWdTSVpFIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFhZRElNRU5TSU9OQEBRRUFBQEFFQlV0YWdTSVpFQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFhZRElNRU5TSU9OOjpYWURJTUVOU0lPTih1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wWFlESU1FTlNJT05AQFFFQUFASUlAWg0KKzsgcHVibGljOiBfX2NkZWNsIFhZUE9JTlQ6OlhZUE9JTlQoc3RydWN0IHRhZ1BPSU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFhZUE9JTlRAQFFFQUFAQUVCVXRhZ1BPSU5UQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFhZUE9JTlQ6OlhZUE9JTlQoaW50LGludCkgX19wdHI2NA0KKz8/MFhZUE9JTlRAQFFFQUFASEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFhZUE9JTlQ6OlhZUE9JTlQoX19pbnQ2NCkgX19wdHI2NA0KKz8/MFhZUE9JTlRAQFFFQUFAX0pAWg0KKzsgcHVibGljOiBfX2NkZWNsIFhZUkVDVDo6WFlSRUNUKHN0cnVjdCB0YWdSRUNUIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFhZUkVDVEBAUUVBQUBBRUJVdGFnUkVDVEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBYWVJFQ1Q6OlhZUkVDVChjbGFzcyBYWVJFQ1QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wWFlSRUNUQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgWFlSRUNUOjpYWVJFQ1QoaW50LGludCxpbnQsaW50KSBfX3B0cjY0DQorPz8wWFlSRUNUQEBRRUFBQEhISEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFhZUkVDVDo6WFlSRUNUKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MFhZUkVDVEBAUUVBQUBQRUFVSFdORF9fQEBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBYWVJFQ1Q6OlhZUkVDVChjbGFzcyBXSU5ET1cgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MFhZUkVDVEBAUUVBQUBQRUJWV0lORE9XQEBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBYWVJFQ1Q6OlhZUkVDVChjbGFzcyBYWVBPSU5ULGNsYXNzIFhZUE9JTlQpIF9fcHRyNjQNCis/PzBYWVJFQ1RAQFFFQUFAVlhZUE9JTlRAQDBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFhZUkVDVDo6WFlSRUNUKGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04pIF9fcHRyNjQNCis/PzBYWVJFQ1RAQFFFQUFAVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBYWVJFQ1Q6OlhZUkVDVCh2b2lkKSBfX3B0cjY0DQorPz8wWFlSRUNUQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQUNDRUxUQUJMRTo6fkFDQ0VMVEFCTEUodm9pZCkgX19wdHI2NA0KKz8/MUFDQ0VMVEFCTEVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBBQ0NPVU5UX05BTUVTX01MRTo6fkFDQ09VTlRfTkFNRVNfTUxFKHZvaWQpIF9fcHRyNjQNCis/PzFBQ0NPVU5UX05BTUVTX01MRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEFMSUFTX1NUUjo6fkFMSUFTX1NUUih2b2lkKSBfX3B0cjY0DQorPz8xQUxJQVNfU1RSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQUxMT0NfU1RSOjp+QUxMT0NfU1RSKHZvaWQpIF9fcHRyNjQNCis/PzFBTExPQ19TVFJAQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBBUFBMSUNBVElPTjo6fkFQUExJQ0FUSU9OKHZvaWQpIF9fcHRyNjQNCis/PzFBUFBMSUNBVElPTkBASUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIEFQUF9XSU5ET1c6On5BUFBfV0lORE9XKHZvaWQpIF9fcHRyNjQNCis/PzFBUFBfV0lORE9XQEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQVJSQVlfQ09OVFJPTFZBTF9DSURfUEFJUjo6fkFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVIodm9pZCkgX19wdHI2NA0KKz8/MUFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBBUlJBWV9MSVNUX0NPTlRST0xWQUxfQ0lEX1BBSVI6On5BUlJBWV9MSVNUX0NPTlRST0xWQUxfQ0lEX1BBSVIodm9pZCkgX19wdHI2NA0KKz8/MUFSUkFZX0xJU1RfQ09OVFJPTFZBTF9DSURfUEFJUkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEFSUk9XX0JVVFRPTjo6fkFSUk9XX0JVVFRPTih2b2lkKSBfX3B0cjY0DQorPz8xQVJST1dfQlVUVE9OQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQVNTT0NIQ0ZJTEU6On5BU1NPQ0hDRklMRSh2b2lkKSBfX3B0cjY0DQorPz8xQVNTT0NIQ0ZJTEVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBBU1NPQ0hXTkRESVNQOjp+QVNTT0NIV05ERElTUCh2b2lkKSBfX3B0cjY0DQorPz8xQVNTT0NIV05ERElTUEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEFTU09DSFdORFBETEc6On5BU1NPQ0hXTkRQRExHKHZvaWQpIF9fcHRyNjQNCis/PzFBU1NPQ0hXTkRQRExHQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQVNTT0NIV05EUFdORDo6fkFTU09DSFdORFBXTkQodm9pZCkgX19wdHI2NA0KKz8/MUFTU09DSFdORFBXTkRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBBU1NPQ0hXTkRUSElTOjp+QVNTT0NIV05EVEhJUyh2b2lkKSBfX3B0cjY0DQorPz8xQVNTT0NIV05EVEhJU0BAUUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIEFUT01fQkFTRTo6fkFUT01fQkFTRSh2b2lkKSBfX3B0cjY0DQorPz8xQVRPTV9CQVNFQEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQVVESVRfQ0hFQ0tCT1hFUzo6fkFVRElUX0NIRUNLQk9YRVModm9pZCkgX19wdHI2NA0KKz8/MUFVRElUX0NIRUNLQk9YRVNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBBVVRPX0NVUlNPUjo6fkFVVE9fQ1VSU09SKHZvaWQpIF9fcHRyNjQNCis/PzFBVVRPX0NVUlNPUkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEJBU0VfRUxMSVBTSVM6On5CQVNFX0VMTElQU0lTKHZvaWQpIF9fcHRyNjQNCis/PzFCQVNFX0VMTElQU0lTQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQkFTRV9QQVNTV09SRF9ESUFMT0c6On5CQVNFX1BBU1NXT1JEX0RJQUxPRyh2b2lkKSBfX3B0cjY0DQorPz8xQkFTRV9QQVNTV09SRF9ESUFMT0dAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCQVNFX1NFVF9GT0NVU19ETEc6On5CQVNFX1NFVF9GT0NVU19ETEcodm9pZCkgX19wdHI2NA0KKz8/MUJBU0VfU0VUX0ZPQ1VTX0RMR0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEJJVF9NQVA6On5CSVRfTUFQKHZvaWQpIF9fcHRyNjQNCis/PzFCSVRfTUFQQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQkxUX0JBQ0tHUk9VTkRfRURJVDo6fkJMVF9CQUNLR1JPVU5EX0VESVQodm9pZCkgX19wdHI2NA0KKz8/MUJMVF9CQUNLR1JPVU5EX0VESVRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCTFRfQ09NQk9CT1g6On5CTFRfQ09NQk9CT1godm9pZCkgX19wdHI2NA0KKz8/MUJMVF9DT01CT0JPWEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEJMVF9EQVRFX1NQSU5fR1JPVVA6On5CTFRfREFURV9TUElOX0dST1VQKHZvaWQpIF9fcHRyNjQNCis/PzFCTFRfREFURV9TUElOX0dST1VQQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQkxUX0xJU1RCT1g6On5CTFRfTElTVEJPWCh2b2lkKSBfX3B0cjY0DQorPz8xQkxUX0xJU1RCT1hAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCTFRfTUFTVEVSX1RJTUVSOjp+QkxUX01BU1RFUl9USU1FUih2b2lkKSBfX3B0cjY0DQorPz8xQkxUX01BU1RFUl9USU1FUkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEJMVF9TQ1JBVENIOjp+QkxUX1NDUkFUQ0godm9pZCkgX19wdHI2NA0KKz8/MUJMVF9TQ1JBVENIQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQkxUX1RJTUVfU1BJTl9HUk9VUDo6fkJMVF9USU1FX1NQSU5fR1JPVVAodm9pZCkgX19wdHI2NA0KKz8/MUJMVF9USU1FX1NQSU5fR1JPVVBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCUk9XU0VSX0RPTUFJTjo6fkJST1dTRVJfRE9NQUlOKHZvaWQpIF9fcHRyNjQNCis/PzFCUk9XU0VSX0RPTUFJTkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEJST1dTRVJfRE9NQUlOX0NCOjp+QlJPV1NFUl9ET01BSU5fQ0Iodm9pZCkgX19wdHI2NA0KKz8/MUJST1dTRVJfRE9NQUlOX0NCQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlJPV1NFUl9ET01BSU5fTEI6On5CUk9XU0VSX0RPTUFJTl9MQih2b2lkKSBfX3B0cjY0DQorPz8xQlJPV1NFUl9ET01BSU5fTEJAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIEJST1dTRVJfRE9NQUlOX0xCSTo6fkJST1dTRVJfRE9NQUlOX0xCSSh2b2lkKSBfX3B0cjY0DQorPz8xQlJPV1NFUl9ET01BSU5fTEJJQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBCUk9XU0VSX0RPTUFJTl9MQklfUEI6On5CUk9XU0VSX0RPTUFJTl9MQklfUEIodm9pZCkgX19wdHI2NA0KKz8/MUJST1dTRVJfRE9NQUlOX0xCSV9QQkBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEJST1dTRVJfU1VCSkVDVDo6fkJST1dTRVJfU1VCSkVDVCh2b2lkKSBfX3B0cjY0DQorPz8xQlJPV1NFUl9TVUJKRUNUQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlJPV1NFUl9TVUJKRUNUX0lURVI6On5CUk9XU0VSX1NVQkpFQ1RfSVRFUih2b2lkKSBfX3B0cjY0DQorPz8xQlJPV1NFUl9TVUJKRUNUX0lURVJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCVVRUT05fQ09OVFJPTDo6fkJVVFRPTl9DT05UUk9MKHZvaWQpIF9fcHRyNjQNCis/PzFCVVRUT05fQ09OVFJPTEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENBTkNFTF9UQVNLX0RJQUxPRzo6fkNBTkNFTF9UQVNLX0RJQUxPRyh2b2lkKSBfX3B0cjY0DQorPz8xQ0FOQ0VMX1RBU0tfRElBTE9HQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0hBTkdFQUJMRV9TUElOX0lURU06On5DSEFOR0VBQkxFX1NQSU5fSVRFTSh2b2lkKSBfX3B0cjY0DQorPz8xQ0hBTkdFQUJMRV9TUElOX0lURU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSEVDS0JPWDo6fkNIRUNLQk9YKHZvaWQpIF9fcHRyNjQNCis/PzFDSEVDS0JPWEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENMSUVOVF9XSU5ET1c6On5DTElFTlRfV0lORE9XKHZvaWQpIF9fcHRyNjQNCis/PzFDTElFTlRfV0lORE9XQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09NQk9CT1g6On5DT01CT0JPWCh2b2lkKSBfX3B0cjY0DQorPz8xQ09NQk9CT1hAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDT05UUk9MX1RBQkxFOjp+Q09OVFJPTF9UQUJMRSh2b2lkKSBfX3B0cjY0DQorPz8xQ09OVFJPTF9UQUJMRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENPTlRST0xfV0lORE9XOjp+Q09OVFJPTF9XSU5ET1codm9pZCkgX19wdHI2NA0KKz8/MUNPTlRST0xfV0lORE9XQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1VTVE9NX0NPTlRST0w6On5DVVNUT01fQ09OVFJPTCh2b2lkKSBfX3B0cjY0DQorPz8xQ1VTVE9NX0NPTlRST0xAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBERUNfU0xUOjp+REVDX1NMVCh2b2lkKSBfX3B0cjY0DQorPz8xREVDX1NMVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIERFQ19TVFI6On5ERUNfU1RSKHZvaWQpIF9fcHRyNjQNCis/PzFERUNfU1RSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRElBTE9HX1dJTkRPVzo6fkRJQUxPR19XSU5ET1codm9pZCkgX19wdHI2NA0KKz8/MURJQUxPR19XSU5ET1dAQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBESVNQQVRDSEVSOjp+RElTUEFUQ0hFUih2b2lkKSBfX3B0cjY0DQorPz8xRElTUEFUQ0hFUkBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIERJU1BMQVlfQ09OVEVYVDo6fkRJU1BMQVlfQ09OVEVYVCh2b2lkKSBfX3B0cjY0DQorPz8xRElTUExBWV9DT05URVhUQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRElTUExBWV9NQVA6On5ESVNQTEFZX01BUCh2b2lkKSBfX3B0cjY0DQorPz8xRElTUExBWV9NQVBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBETEdMT0FEOjp+RExHTE9BRCh2b2lkKSBfX3B0cjY0DQorPz8xRExHTE9BREBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIERMSVNUX09GX1NQSU5fSVRFTTo6fkRMSVNUX09GX1NQSU5fSVRFTSh2b2lkKSBfX3B0cjY0DQorPz8xRExJU1RfT0ZfU1BJTl9JVEVNQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRE1JRF9EVEU6On5ETUlEX0RURSh2b2lkKSBfX3B0cjY0DQorPz8xRE1JRF9EVEVAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIERPTUFJTl9GSUxMX1RIUkVBRDo6fkRPTUFJTl9GSUxMX1RIUkVBRCh2b2lkKSBfX3B0cjY0DQorPz8xRE9NQUlOX0ZJTExfVEhSRUFEQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRURJVF9DT05UUk9MOjp+RURJVF9DT05UUk9MKHZvaWQpIF9fcHRyNjQNCis/PzFFRElUX0NPTlRST0xAQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBFTlVNX09CSl9CQVNFOjp+RU5VTV9PQkpfQkFTRSh2b2lkKSBfX3B0cjY0DQorPz8xRU5VTV9PQkpfQkFTRUBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEVYUEFOREFCTEVfRElBTE9HOjp+RVhQQU5EQUJMRV9ESUFMT0codm9pZCkgX19wdHI2NA0KKz8/MUVYUEFOREFCTEVfRElBTE9HQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRklMRTNfRU5VTTo6fkZJTEUzX0VOVU0odm9pZCkgX19wdHI2NA0KKz8/MUZJTEUzX0VOVU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBGSUxFM19FTlVNX0lURVI6On5GSUxFM19FTlVNX0lURVIodm9pZCkgX19wdHI2NA0KKz8/MUZJTEUzX0VOVU1fSVRFUkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEZJTEUzX0VOVU1fT0JKOjp+RklMRTNfRU5VTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MUZJTEUzX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBGT0NVU0RMR19EQVRBX1RIUkVBRDo6fkZPQ1VTRExHX0RBVEFfVEhSRUFEKHZvaWQpIF9fcHRyNjQNCis/PzFGT0NVU0RMR19EQVRBX1RIUkVBREBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEZPQ1VTX0NIRUNLQk9YOjp+Rk9DVVNfQ0hFQ0tCT1godm9pZCkgX19wdHI2NA0KKz8/MUZPQ1VTX0NIRUNLQk9YQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRk9OVDo6fkZPTlQodm9pZCkgX19wdHI2NA0KKz8/MUZPTlRAQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBHRVRfRk5BTUVfQkFTRV9ETEc6On5HRVRfRk5BTUVfQkFTRV9ETEcodm9pZCkgX19wdHI2NA0KKz8/MUdFVF9GTkFNRV9CQVNFX0RMR0BASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEdMT0JBTF9BVE9NOjp+R0xPQkFMX0FUT00odm9pZCkgX19wdHI2NA0KKz8/MUdMT0JBTF9BVE9NQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgR1JBUEhJQ0FMX0JVVFRPTjo6fkdSQVBISUNBTF9CVVRUT04odm9pZCkgX19wdHI2NA0KKz8/MUdSQVBISUNBTF9CVVRUT05AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBHUkFQSElDQUxfQlVUVE9OX1dJVEhfRElTQUJMRTo6fkdSQVBISUNBTF9CVVRUT05fV0lUSF9ESVNBQkxFKHZvaWQpIF9fcHRyNjQNCis/PzFHUkFQSElDQUxfQlVUVE9OX1dJVEhfRElTQUJMRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEhBV19GT1JfSEFXQUlJX0lORk86On5IQVdfRk9SX0hBV0FJSV9JTkZPKHZvaWQpIF9fcHRyNjQNCis/PzFIQVdfRk9SX0hBV0FJSV9JTkZPQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgSEVYX1NUUjo6fkhFWF9TVFIodm9pZCkgX19wdHI2NA0KKz8/MUhFWF9TVFJAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIEhJRVJfTEJJOjp+SElFUl9MQkkodm9pZCkgX19wdHI2NA0KKz8/MUhJRVJfTEJJQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgSElFUl9MQklfSVRFUkFUT1I6On5ISUVSX0xCSV9JVEVSQVRPUih2b2lkKSBfX3B0cjY0DQorPz8xSElFUl9MQklfSVRFUkFUT1JAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBISUVSX0xJU1RCT1g6On5ISUVSX0xJU1RCT1godm9pZCkgX19wdHI2NA0KKz8/MUhJRVJfTElTVEJPWEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEhfU1BMSVRURVJfQkFSOjp+SF9TUExJVFRFUl9CQVIodm9pZCkgX19wdHI2NA0KKz8/MUhfU1BMSVRURVJfQkFSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgSUNBTk9OX1NMRTo6fklDQU5PTl9TTEUodm9pZCkgX19wdHI2NA0KKz8/MUlDQU5PTl9TTEVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBJQ09OX0NPTlRST0w6On5JQ09OX0NPTlRST0wodm9pZCkgX19wdHI2NA0KKz8/MUlDT05fQ09OVFJPTEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIElURVJfRExfU1BJTl9JVEVNOjp+SVRFUl9ETF9TUElOX0lURU0odm9pZCkgX19wdHI2NA0KKz8/MUlURVJfRExfU1BJTl9JVEVNQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgSVRFUl9TTF9BU1NPQ0hDRklMRTo6fklURVJfU0xfQVNTT0NIQ0ZJTEUodm9pZCkgX19wdHI2NA0KKz8/MUlURVJfU0xfQVNTT0NIQ0ZJTEVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBJVEVSX1NMX0NMSUVOVERBVEE6On5JVEVSX1NMX0NMSUVOVERBVEEodm9pZCkgX19wdHI2NA0KKz8/MUlURVJfU0xfQ0xJRU5UREFUQUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIElURVJfU0xfU1RSSU5HX0JJVFNFVF9QQUlSOjp+SVRFUl9TTF9TVFJJTkdfQklUU0VUX1BBSVIodm9pZCkgX19wdHI2NA0KKz8/MUlURVJfU0xfU1RSSU5HX0JJVFNFVF9QQUlSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgSVRFUl9TTF9USU1FUl9CQVNFOjp+SVRFUl9TTF9USU1FUl9CQVNFKHZvaWQpIF9fcHRyNjQNCis/PzFJVEVSX1NMX1RJTUVSX0JBU0VAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBJVEVSX1NMX1VJX0VYVDo6fklURVJfU0xfVUlfRVhUKHZvaWQpIF9fcHRyNjQNCis/PzFJVEVSX1NMX1VJX0VYVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIElURVJfU0xfVVNFUl9CUk9XU0VSX0xCSTo6fklURVJfU0xfVVNFUl9CUk9XU0VSX0xCSSh2b2lkKSBfX3B0cjY0DQorPz8xSVRFUl9TTF9VU0VSX0JST1dTRVJfTEJJQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTEFaWV9MSVNUQk9YOjp+TEFaWV9MSVNUQk9YKHZvaWQpIF9fcHRyNjQNCis/PzFMQVpZX0xJU1RCT1hAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIExCSTo6fkxCSSh2b2lkKSBfX3B0cjY0DQorPz8xTEJJQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTEJJVFJFRTo6fkxCSVRSRUUodm9pZCkgX19wdHI2NA0KKz8/MUxCSVRSRUVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBMQklfSEVBUDo6fkxCSV9IRUFQKHZvaWQpIF9fcHRyNjQNCis/PzFMQklfSEVBUEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExCX0NPTF9XSURUSFM6On5MQl9DT0xfV0lEVEhTKHZvaWQpIF9fcHRyNjQNCis/PzFMQl9DT0xfV0lEVEhTQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTElTVEJPWDo6fkxJU1RCT1godm9pZCkgX19wdHI2NA0KKz8/MUxJU1RCT1hAQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBMSVNUX0NPTlRST0w6On5MSVNUX0NPTlRST0wodm9pZCkgX19wdHI2NA0KKz8/MUxJU1RfQ09OVFJPTEBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExNX0ZJTEVfMjo6fkxNX0ZJTEVfMih2b2lkKSBfX3B0cjY0DQorPz8xTE1fRklMRV8yQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE1fTUVTU0FHRTo6fkxNX01FU1NBR0Uodm9pZCkgX19wdHI2NA0KKz8/MUxNX01FU1NBR0VAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBMTV9PTExCOjp+TE1fT0xMQih2b2lkKSBfX3B0cjY0DQorPz8xTE1fT0xMQkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExPQ0FMX0FUT006On5MT0NBTF9BVE9NKHZvaWQpIF9fcHRyNjQNCis/PzFMT0NBTF9BVE9NQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTE9DX0xNX09CSjo6fkxPQ19MTV9PQkoodm9pZCkgX19wdHI2NA0KKz8/MUxPQ19MTV9PQkpAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjp+TE9HT05fSE9VUlNfQ09OVFJPTCh2b2lkKSBfX3B0cjY0DQorPz8xTE9HT05fSE9VUlNfQ09OVFJPTEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE1BR0lDX0dST1VQOjp+TUFHSUNfR1JPVVAodm9pZCkgX19wdHI2NA0KKz8/MU1BR0lDX0dST1VQQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTUFTS19NQVA6On5NQVNLX01BUCh2b2lkKSBfX3B0cjY0DQorPz8xTUFTS19NQVBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBNRU1PUllfREM6On5NRU1PUllfREModm9pZCkgX19wdHI2NA0KKz8/MU1FTU9SWV9EQ0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE1FTlVfQkFTRTo6fk1FTlVfQkFTRSh2b2lkKSBfX3B0cjY0DQorPz8xTUVOVV9CQVNFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTUxFOjp+TUxFKHZvaWQpIF9fcHRyNjQNCis/PzFNTEVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBNTEVfRk9OVDo6fk1MRV9GT05UKHZvaWQpIF9fcHRyNjQNCis/PzFNTEVfRk9OVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE1MVDo6fk1MVCh2b2lkKSBfX3B0cjY0DQorPz8xTUxUQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTVNHUE9QVVBfRElBTE9HOjp+TVNHUE9QVVBfRElBTE9HKHZvaWQpIF9fcHRyNjQNCis/PzFNU0dQT1BVUF9ESUFMT0dAQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBNU0dfRElBTE9HX0JBU0U6On5NU0dfRElBTE9HX0JBU0Uodm9pZCkgX19wdHI2NA0KKz8/MU1TR19ESUFMT0dfQkFTRUBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE5UX0ZJTkRfQUNDT1VOVF9ESUFMT0c6On5OVF9GSU5EX0FDQ09VTlRfRElBTE9HKHZvaWQpIF9fcHRyNjQNCis/PzFOVF9GSU5EX0FDQ09VTlRfRElBTE9HQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBOVF9HTE9CQUxHUk9VUF9CUk9XU0VSX0RJQUxPRzo6fk5UX0dMT0JBTEdST1VQX0JST1dTRVJfRElBTE9HKHZvaWQpIF9fcHRyNjQNCis/PzFOVF9HTE9CQUxHUk9VUF9CUk9XU0VSX0RJQUxPR0BAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgTlRfR1JPVVBfQlJPV1NFUl9ESUFMT0c6On5OVF9HUk9VUF9CUk9XU0VSX0RJQUxPRyh2b2lkKSBfX3B0cjY0DQorPz8xTlRfR1JPVVBfQlJPV1NFUl9ESUFMT0dAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOVF9HUk9VUF9CUk9XU0VSX0xCOjp+TlRfR1JPVVBfQlJPV1NFUl9MQih2b2lkKSBfX3B0cjY0DQorPz8xTlRfR1JPVVBfQlJPV1NFUl9MQkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE5UX0dST1VQX0VOVU1fSVRFUjo6fk5UX0dST1VQX0VOVU1fSVRFUih2b2lkKSBfX3B0cjY0DQorPz8xTlRfR1JPVVBfRU5VTV9JVEVSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTlRfR1JPVVBfRU5VTV9PQko6On5OVF9HUk9VUF9FTlVNX09CSih2b2lkKSBfX3B0cjY0DQorPz8xTlRfR1JPVVBfRU5VTV9PQkpAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE5UX0xPQ0FMR1JPVVBfQlJPV1NFUl9ESUFMT0c6On5OVF9MT0NBTEdST1VQX0JST1dTRVJfRElBTE9HKHZvaWQpIF9fcHRyNjQNCis/PzFOVF9MT0NBTEdST1VQX0JST1dTRVJfRElBTE9HQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6fk5UX1VTRVJfQlJPV1NFUl9ESUFMT0codm9pZCkgX19wdHI2NA0KKz8/MU5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE9MTEJfRU5UUlk6On5PTExCX0VOVFJZKHZvaWQpIF9fcHRyNjQNCis/PzFPTExCX0VOVFJZQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgT1BFTl9ESUFMT0dfQkFTRTo6fk9QRU5fRElBTE9HX0JBU0Uodm9pZCkgX19wdHI2NA0KKz8/MU9QRU5fRElBTE9HX0JBU0VAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE9QRU5fTEJJX0JBU0U6On5PUEVOX0xCSV9CQVNFKHZvaWQpIF9fcHRyNjQNCis/PzFPUEVOX0xCSV9CQVNFQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgT1BFTl9MQk9YX0JBU0U6On5PUEVOX0xCT1hfQkFTRSh2b2lkKSBfX3B0cjY0DQorPz8xT1BFTl9MQk9YX0JBU0VAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBPVVRMSU5FX0xJU1RCT1g6On5PVVRMSU5FX0xJU1RCT1godm9pZCkgX19wdHI2NA0KKz8/MU9VVExJTkVfTElTVEJPWEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE9XTkVSX1dJTkRPVzo6fk9XTkVSX1dJTkRPVyh2b2lkKSBfX3B0cjY0DQorPz8xT1dORVJfV0lORE9XQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUEFJTlRfRElTUExBWV9DT05URVhUOjp+UEFJTlRfRElTUExBWV9DT05URVhUKHZvaWQpIF9fcHRyNjQNCis/PzFQQUlOVF9ESVNQTEFZX0NPTlRFWFRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBQQVNTV09SRF9DT05UUk9MOjp+UEFTU1dPUkRfQ09OVFJPTCh2b2lkKSBfX3B0cjY0DQorPz8xUEFTU1dPUkRfQ09OVFJPTEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFBPUFVQOjp+UE9QVVAodm9pZCkgX19wdHI2NA0KKz8/MVBPUFVQQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUE9QVVBfTUVOVTo6flBPUFVQX01FTlUodm9pZCkgX19wdHI2NA0KKz8/MVBPUFVQX01FTlVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBQUk9DX0lOU1RBTkNFOjp+UFJPQ19JTlNUQU5DRSh2b2lkKSBfX3B0cjY0DQorPz8xUFJPQ19JTlNUQU5DRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFBST0dSRVNTX0NPTlRST0w6On5QUk9HUkVTU19DT05UUk9MKHZvaWQpIF9fcHRyNjQNCis/PzFQUk9HUkVTU19DT05UUk9MQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUFJPTVBUX0FORF9DT05ORUNUOjp+UFJPTVBUX0FORF9DT05ORUNUKHZvaWQpIF9fcHRyNjQNCis/PzFQUk9NUFRfQU5EX0NPTk5FQ1RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBQUk9NUFRfRk9SX0FOWV9EQ19ETEc6On5QUk9NUFRfRk9SX0FOWV9EQ19ETEcodm9pZCkgX19wdHI2NA0KKz8/MVBST01QVF9GT1JfQU5ZX0RDX0RMR0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFBVU0hfQlVUVE9OOjp+UFVTSF9CVVRUT04odm9pZCkgX19wdHI2NA0KKz8/MVBVU0hfQlVUVE9OQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUkFESU9fQlVUVE9OOjp+UkFESU9fQlVUVE9OKHZvaWQpIF9fcHRyNjQNCis/PzFSQURJT19CVVRUT05AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBSQURJT19HUk9VUDo6flJBRElPX0dST1VQKHZvaWQpIF9fcHRyNjQNCis/PzFSQURJT19HUk9VUEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFJFU09VUkNFX1BBU1NXT1JEX0RJQUxPRzo6flJFU09VUkNFX1BBU1NXT1JEX0RJQUxPRyh2b2lkKSBfX3B0cjY0DQorPz8xUkVTT1VSQ0VfUEFTU1dPUkRfRElBTE9HQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUkVTT1VSQ0VfU1RSOjp+UkVTT1VSQ0VfU1RSKHZvaWQpIF9fcHRyNjQNCis/PzFSRVNPVVJDRV9TVFJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBSSVRFUl9ETF9TUElOX0lURU06On5SSVRFUl9ETF9TUElOX0lURU0odm9pZCkgX19wdHI2NA0KKz8/MVJJVEVSX0RMX1NQSU5fSVRFTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNDUkVFTl9EQzo6flNDUkVFTl9EQyh2b2lkKSBfX3B0cjY0DQorPz8xU0NSRUVOX0RDQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0VSVkVSMV9FTlVNOjp+U0VSVkVSMV9FTlVNKHZvaWQpIF9fcHRyNjQNCis/PzFTRVJWRVIxX0VOVU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTRVJWRVIxX0VOVU1fSVRFUjo6flNFUlZFUjFfRU5VTV9JVEVSKHZvaWQpIF9fcHRyNjQNCis/PzFTRVJWRVIxX0VOVU1fSVRFUkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNFUlZFUjFfRU5VTV9PQko6On5TRVJWRVIxX0VOVU1fT0JKKHZvaWQpIF9fcHRyNjQNCis/PzFTRVJWRVIxX0VOVU1fT0JKQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0VSVkVSX0VOVU06On5TRVJWRVJfRU5VTSh2b2lkKSBfX3B0cjY0DQorPz8xU0VSVkVSX0VOVU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTRVRfQ09OVFJPTDo6flNFVF9DT05UUk9MKHZvaWQpIF9fcHRyNjQNCis/PzFTRVRfQ09OVFJPTEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNFVF9PRl9BVURJVF9DQVRFR09SSUVTOjp+U0VUX09GX0FVRElUX0NBVEVHT1JJRVModm9pZCkgX19wdHI2NA0KKz8/MVNFVF9PRl9BVURJVF9DQVRFR09SSUVTQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0xFOjp+U0xFKHZvaWQpIF9fcHRyNjQNCis/PzFTTEVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTTEVfRk9OVDo6flNMRV9GT05UKHZvaWQpIF9fcHRyNjQNCis/PzFTTEVfRk9OVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNMRV9TVFJMQl9HUk9VUDo6flNMRV9TVFJMQl9HUk9VUCh2b2lkKSBfX3B0cjY0DQorPz8xU0xFX1NUUkxCX0dST1VQQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0xJU1RfT0ZfQVNTT0NIQ0ZJTEU6On5TTElTVF9PRl9BU1NPQ0hDRklMRSh2b2lkKSBfX3B0cjY0DQorPz8xU0xJU1RfT0ZfQVNTT0NIQ0ZJTEVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTTElTVF9PRl9DTElFTlREQVRBOjp+U0xJU1RfT0ZfQ0xJRU5UREFUQSh2b2lkKSBfX3B0cjY0DQorPz8xU0xJU1RfT0ZfQ0xJRU5UREFUQUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNMSVNUX09GX09TX1NJRDo6flNMSVNUX09GX09TX1NJRCh2b2lkKSBfX3B0cjY0DQorPz8xU0xJU1RfT0ZfT1NfU0lEQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0xJU1RfT0ZfU1RSSU5HX0JJVFNFVF9QQUlSOjp+U0xJU1RfT0ZfU1RSSU5HX0JJVFNFVF9QQUlSKHZvaWQpIF9fcHRyNjQNCis/PzFTTElTVF9PRl9TVFJJTkdfQklUU0VUX1BBSVJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTTElTVF9PRl9USU1FUl9CQVNFOjp+U0xJU1RfT0ZfVElNRVJfQkFTRSh2b2lkKSBfX3B0cjY0DQorPz8xU0xJU1RfT0ZfVElNRVJfQkFTRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNMSVNUX09GX1VJX0VYVDo6flNMSVNUX09GX1VJX0VYVCh2b2lkKSBfX3B0cjY0DQorPz8xU0xJU1RfT0ZfVUlfRVhUQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0xJU1RfT0ZfVUxDX0FQSV9CVUZGRVI6On5TTElTVF9PRl9VTENfQVBJX0JVRkZFUih2b2lkKSBfX3B0cjY0DQorPz8xU0xJU1RfT0ZfVUxDX0FQSV9CVUZGRVJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTTElTVF9PRl9VU0VSX0JST1dTRVJfTEJJOjp+U0xJU1RfT0ZfVVNFUl9CUk9XU0VSX0xCSSh2b2lkKSBfX3B0cjY0DQorPz8xU0xJU1RfT0ZfVVNFUl9CUk9XU0VSX0xCSUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNMVDo6flNMVCh2b2lkKSBfX3B0cjY0DQorPz8xU0xUQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU0xUX0VMTElQU0lTOjp+U0xUX0VMTElQU0lTKHZvaWQpIF9fcHRyNjQNCis/PzFTTFRfRUxMSVBTSVNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTT0xJRF9CUlVTSDo6flNPTElEX0JSVVNIKHZvaWQpIF9fcHRyNjQNCis/PzFTT0xJRF9CUlVTSEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNQSU5fR1JPVVA6On5TUElOX0dST1VQKHZvaWQpIF9fcHRyNjQNCis/PzFTUElOX0dST1VQQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1BJTl9JVEVNOjp+U1BJTl9JVEVNKHZvaWQpIF9fcHRyNjQNCis/PzFTUElOX0lURU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTUElOX1NMRV9OVU06On5TUElOX1NMRV9OVU0odm9pZCkgX19wdHI2NA0KKz8/MVNQSU5fU0xFX05VTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNQSU5fU0xFX05VTV9WQUxJRDo6flNQSU5fU0xFX05VTV9WQUxJRCh2b2lkKSBfX3B0cjY0DQorPz8xU1BJTl9TTEVfTlVNX1ZBTElEQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1BJTl9TTEVfU1RSOjp+U1BJTl9TTEVfU1RSKHZvaWQpIF9fcHRyNjQNCis/PzFTUElOX1NMRV9TVFJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTUElOX1NMRV9WQUxJRF9TRUNPTkQ6On5TUElOX1NMRV9WQUxJRF9TRUNPTkQodm9pZCkgX19wdHI2NA0KKz8/MVNQSU5fU0xFX1ZBTElEX1NFQ09OREBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNQSU5fU0xUX1NFUEFSQVRPUjo6flNQSU5fU0xUX1NFUEFSQVRPUih2b2lkKSBfX3B0cjY0DQorPz8xU1BJTl9TTFRfU0VQQVJBVE9SQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1RBVEUyX0JVVFRPTl9DT05UUk9MOjp+U1RBVEUyX0JVVFRPTl9DT05UUk9MKHZvaWQpIF9fcHRyNjQNCis/PzFTVEFURTJfQlVUVE9OX0NPTlRST0xAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTVEFURUxCOjp+U1RBVEVMQih2b2lkKSBfX3B0cjY0DQorPz8xU1RBVEVMQkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUQVRFTEJHUlA6On5TVEFURUxCR1JQKHZvaWQpIF9fcHRyNjQNCis/PzFTVEFURUxCR1JQQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1RBVEVfQlVUVE9OX0NPTlRST0w6On5TVEFURV9CVVRUT05fQ09OVFJPTCh2b2lkKSBfX3B0cjY0DQorPz8xU1RBVEVfQlVUVE9OX0NPTlRST0xAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTVEFUSUNfU1BJTl9JVEVNOjp+U1RBVElDX1NQSU5fSVRFTSh2b2lkKSBfX3B0cjY0DQorPz8xU1RBVElDX1NQSU5fSVRFTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUQVRJQ19URVhUX0NPTlRST0w6On5TVEFUSUNfVEVYVF9DT05UUk9MKHZvaWQpIF9fcHRyNjQNCis/PzFTVEFUSUNfVEVYVF9DT05UUk9MQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTVExCSVRFTTo6flNUTEJJVEVNKHZvaWQpIF9fcHRyNjQNCis/PzFTVExCSVRFTUBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUklOR19CSVRTRVRfUEFJUjo6flNUUklOR19CSVRTRVRfUEFJUih2b2lkKSBfX3B0cjY0DQorPz8xU1RSSU5HX0JJVFNFVF9QQUlSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1RSSU5HX0xJU1RfQ09OVFJPTDo6flNUUklOR19MSVNUX0NPTlRST0wodm9pZCkgX19wdHI2NA0KKz8/MVNUUklOR19MSVNUX0NPTlRST0xAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTVUJKRUNUX0JJVE1BUF9CTE9DSzo6flNVQkpFQ1RfQklUTUFQX0JMT0NLKHZvaWQpIF9fcHRyNjQNCis/PzFTVUJKRUNUX0JJVE1BUF9CTE9DS0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNZU1RFTV9NRU5VOjp+U1lTVEVNX01FTlUodm9pZCkgX19wdHI2NA0KKz8/MVNZU1RFTV9NRU5VQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVEVYVF9DT05UUk9MOjp+VEVYVF9DT05UUk9MKHZvaWQpIF9fcHRyNjQNCis/PzFURVhUX0NPTlRST0xAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBUSU1FUl9CQVNFOjp+VElNRVJfQkFTRSh2b2lkKSBfX3B0cjY0DQorPz8xVElNRVJfQkFTRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFRJTUVSX1dJTkRPVzo6flRJTUVSX1dJTkRPVyh2b2lkKSBfX3B0cjY0DQorPz8xVElNRVJfV0lORE9XQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVUlfRE9NQUlOOjp+VUlfRE9NQUlOKHZvaWQpIF9fcHRyNjQNCis/PzFVSV9ET01BSU5AQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFVJX0VYVDo6flVJX0VYVCh2b2lkKSBfX3B0cjY0DQorPz8xVUlfRVhUQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVUlfRVhUX01HUjo6flVJX0VYVF9NR1Iodm9pZCkgX19wdHI2NA0KKz8/MVVJX0VYVF9NR1JAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBVSV9FWFRfTUdSX0lGOjp+VUlfRVhUX01HUl9JRih2b2lkKSBfX3B0cjY0DQorPz8xVUlfRVhUX01HUl9JRkBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgVUlfTUVOVV9FWFQ6On5VSV9NRU5VX0VYVCh2b2lkKSBfX3B0cjY0DQorPz8xVUlfTUVOVV9FWFRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFVJX01FTlVfRVhUX01HUjo6flVJX01FTlVfRVhUX01HUih2b2lkKSBfX3B0cjY0DQorPz8xVUlfTUVOVV9FWFRfTUdSQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVUxDX0FQSV9CVUZGRVI6On5VTENfQVBJX0JVRkZFUih2b2lkKSBfX3B0cjY0DQorPz8xVUxDX0FQSV9CVUZGRVJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBVU0VSX0JST1dTRVJfTEI6On5VU0VSX0JST1dTRVJfTEIodm9pZCkgX19wdHI2NA0KKz8/MVVTRVJfQlJPV1NFUl9MQkBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgVVNFUl9CUk9XU0VSX0xCSTo6flVTRVJfQlJPV1NFUl9MQkkodm9pZCkgX19wdHI2NA0KKz8/MVVTRVJfQlJPV1NFUl9MQklAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6On5VU0VSX0JST1dTRVJfTEJJX0NBQ0hFKHZvaWQpIF9fcHRyNjQNCis/PzFVU0VSX0JST1dTRVJfTEJJX0NBQ0hFQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBVU0VSX0xCSV9DQUNIRTo6flVTRVJfTEJJX0NBQ0hFKHZvaWQpIF9fcHRyNjQNCis/PzFVU0VSX0xCSV9DQUNIRUBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFVTUkxCX05UX0dST1VQX0VOVU06On5VU1JMQl9OVF9HUk9VUF9FTlVNKHZvaWQpIF9fcHRyNjQNCis/PzFVU1JMQl9OVF9HUk9VUF9FTlVNQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgV0lOMzJfRVZFTlQ6On5XSU4zMl9FVkVOVCh2b2lkKSBfX3B0cjY0DQorPz8xV0lOMzJfRVZFTlRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBXSU4zMl9IQU5ETEU6On5XSU4zMl9IQU5ETEUodm9pZCkgX19wdHI2NA0KKz8/MVdJTjMyX0hBTkRMRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFdJTjMyX01VVEVYOjp+V0lOMzJfTVVURVgodm9pZCkgX19wdHI2NA0KKz8/MVdJTjMyX01VVEVYQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgV0lOMzJfU0VNQVBIT1JFOjp+V0lOMzJfU0VNQVBIT1JFKHZvaWQpIF9fcHRyNjQNCis/PzFXSU4zMl9TRU1BUEhPUkVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBXSU4zMl9TWU5DX0JBU0U6On5XSU4zMl9TWU5DX0JBU0Uodm9pZCkgX19wdHI2NA0KKz8/MVdJTjMyX1NZTkNfQkFTRUBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgV0lOMzJfVEhSRUFEOjp+V0lOMzJfVEhSRUFEKHZvaWQpIF9fcHRyNjQNCis/PzFXSU4zMl9USFJFQURAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBXSU5ET1c6On5XSU5ET1codm9pZCkgX19wdHI2NA0KKz8/MVdJTkRPV0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFdJTl9FTExJUFNJUzo6fldJTl9FTExJUFNJUyh2b2lkKSBfX3B0cjY0DQorPz8xV0lOX0VMTElQU0lTQEBRRUFBQFhaDQorOyBwdWJsaWM6IGNsYXNzIEFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVIgJiBfX3B0cjY0IF9fY2RlY2wgQVJSQVlfQ09OVFJPTFZBTF9DSURfUEFJUjo6b3BlcmF0b3I9KGNsYXNzIEFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVIgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80QVJSQVlfQ09OVFJPTFZBTF9DSURfUEFJUkBAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgR0xPQkFMX0FUT006Om9wZXJhdG9yPSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRHTE9CQUxfQVRPTUBAVUVBQVBFQkdQRUJHQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBMT0NBTF9BVE9NOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TE9DQUxfQVRPTUBAVUVBQVBFQkdQRUJHQFoNCis7IHB1YmxpYzogY2xhc3MgWFlSRUNUICYgX19wdHI2NCBfX2NkZWNsIFhZUkVDVDo6b3BlcmF0b3I9KGNsYXNzIFhZUkVDVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRYWVJFQ1RAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBBU1NPQ0hXTkRESVNQOjpvcGVyYXRvciEodm9pZCljb25zdCAgX19wdHI2NA0KKz8/N0FTU09DSFdORERJU1BAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQVNTT0NIV05EUFdORDo6b3BlcmF0b3IhKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/PzdBU1NPQ0hXTkRQV05EQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJBU0U6Om9wZXJhdG9yISh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz83QkFTRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDT05UUk9MX1dJTkRPVzo6b3BlcmF0b3IhKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/PzdDT05UUk9MX1dJTkRPV0BAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBYWVJFQ1Q6Om9wZXJhdG9yPT0oY2xhc3MgWFlSRUNUIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OFhZUkVDVEBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDT05UUk9MVkFMX0NJRF9QQUlSICYgX19wdHI2NCBfX2NkZWNsIEFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVI6Om9wZXJhdG9yW10odW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorPz9BQVJSQVlfQ09OVFJPTFZBTF9DSURfUEFJUkBAUUVCQUFFQVZDT05UUk9MVkFMX0NJRF9QQUlSQEBJQFoNCis7IHB1YmxpYzogY2xhc3MgRFRFICogX19wdHI2NCAmIF9fcHRyNjQgX19jZGVjbCBESVNQTEFZX1RBQkxFOjpvcGVyYXRvcltdKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/QURJU1BMQVlfVEFCTEVAQFFFQUFBRUFQRUFWRFRFQEBJQFoNCis7IHB1YmxpYzogY2xhc3MgUkFESU9fQlVUVE9OICogX19wdHI2NCBfX2NkZWNsIFJBRElPX0dST1VQOjpvcGVyYXRvcltdKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/QVJBRElPX0dST1VQQEBRRUFBUEVBVlJBRElPX0JVVFRPTkBASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTkxTX1NUUjo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JOTFNfU1RSQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IF9fY2RlY2wgT1NfU0lEOjpvcGVyYXRvciB2b2lkICogX19wdHI2NCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CT1NfU0lEQEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgWFlSRUNUOjpvcGVyYXRvciBzdHJ1Y3QgdGFnUkVDVCBjb25zdCAqIF9fcHRyNjQodm9pZCljb25zdCAgX19wdHI2NA0KKz8/QlhZUkVDVEBAUUVCQVBFQlV0YWdSRUNUQEBYWg0KKzsgcHVibGljOiBjbGFzcyBGSUxFM19FTlVNX09CSiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBGSUxFM19FTlVNX0lURVI6Om9wZXJhdG9yKCkobG9uZyAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz9SRklMRTNfRU5VTV9JVEVSQEBRRUFBUEVCVkZJTEUzX0VOVU1fT0JKQEBQRUFKSEBaDQorOyBwdWJsaWM6IGNsYXNzIEhJRVJfTEJJICogX19wdHI2NCBfX2NkZWNsIEhJRVJfTEJJX0lURVJBVE9SOjpvcGVyYXRvcigpKHZvaWQpIF9fcHRyNjQNCis/P1JISUVSX0xCSV9JVEVSQVRPUkBAUUVBQVBFQVZISUVSX0xCSUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ09OVFJPTF9XSU5ET1cgKiBfX3B0cjY0IF9fY2RlY2wgSVRFUl9DVFJMOjpvcGVyYXRvcigpKHZvaWQpIF9fcHRyNjQNCis/P1JJVEVSX0NUUkxAQFFFQUFQRUFWQ09OVFJPTF9XSU5ET1dAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIElURVJfREVWSUNFOjpvcGVyYXRvcigpKHZvaWQpIF9fcHRyNjQNCis/P1JJVEVSX0RFVklDRUBAUUVBQVBFQkdYWg0KKzsgcHVibGljOiBjbGFzcyBOTFNfU1RSICogX19wdHI2NCBfX2NkZWNsIElURVJfU0xfTkxTX1NUUjo6b3BlcmF0b3IoKSh2b2lkKSBfX3B0cjY0DQorPz9SSVRFUl9TTF9OTFNfU1RSQEBRRUFBUEVBVk5MU19TVFJAQFhaDQorOyBwdWJsaWM6IGNsYXNzIE5UX0dST1VQX0VOVU1fT0JKIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE5UX0dST1VQX0VOVU1fSVRFUjo6b3BlcmF0b3IoKShsb25nICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/P1JOVF9HUk9VUF9FTlVNX0lURVJAQFFFQUFQRUJWTlRfR1JPVVBfRU5VTV9PQkpAQFBFQUpIQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ0hBTkdFQUJMRV9TUElOX0lURU06Om9wZXJhdG9yKz0odW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/WUNIQU5HRUFCTEVfU1BJTl9JVEVNQEBVRUFBWEtAWg0KKzsgcHVibGljOiBjbGFzcyBYWVJFQ1QgJiBfX3B0cjY0IF9fY2RlY2wgWFlSRUNUOjpvcGVyYXRvcis9KGNsYXNzIFhZUkVDVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/P1lYWVJFQ1RAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6b3BlcmF0b3ItPSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz9aQ0hBTkdFQUJMRV9TUElOX0lURU1AQFVFQUFYS0BaDQorOyB2b2lkIF9fY2RlY2wgYHZlY3RvciBjb25zdHJ1Y3RvciBpdGVyYXRvcicodm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCxpbnQsdm9pZCAqIF9fcHRyNjQgKF9fY2RlY2wqKSh2b2lkICogX19wdHI2NCkpDQorPz9fSEBZQVhQRUFYX0tIUDZBUEVBWDBAWkBaDQorOyB2b2lkIF9fY2RlY2wgYHZlY3RvciBkZXN0cnVjdG9yIGl0ZXJhdG9yJyh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LGludCx2b2lkIChfX2NkZWNsKikodm9pZCAqIF9fcHRyNjQpKQ0KKz8/X0lAWUFYUEVBWF9LSFA2QVgwQFpAWg0KKzsgdm9pZCBfX2NkZWNsIGB2ZWN0b3IgdmJhc2UgY29uc3RydWN0b3IgaXRlcmF0b3InKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsaW50LHZvaWQgKiBfX3B0cjY0IChfX2NkZWNsKikodm9pZCAqIF9fcHRyNjQpKQ0KKz8/X0pAWUFYUEVBWF9LSFA2QVBFQVgwQFpAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIEhJRVJfTEJJOjpBYmFuZG9uKHZvaWQpIF9fcHRyNjQNCis/QWJhbmRvbkBISUVSX0xCSUBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIEhJRVJfTEJJOjpBYmFuZG9uQWxsQ2hpbGRyZW4odm9pZCkgX19wdHI2NA0KKz9BYmFuZG9uQWxsQ2hpbGRyZW5ASElFUl9MQklAQEFFQUFYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBNU0dfRElBTE9HX0JBU0U6OkFjdGlvbk9uRXJyb3IobG9uZykgX19wdHI2NA0KKz9BY3Rpb25PbkVycm9yQE1TR19ESUFMT0dfQkFTRUBATUVBQUhKQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBNQUdJQ19HUk9VUDo6QWN0aXZhdGVBc3NvY0NvbnRyb2xzKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsY2xhc3MgQ09OVFJPTF9WQUxVRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWN0aXZhdGVBc3NvY0NvbnRyb2xzQE1BR0lDX0dST1VQQEBBRUFBWElJUEVBVkNPTlRST0xfVkFMVUVAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFVJX0VYVF9NR1I6OkFjdGl2YXRlRXh0ZW5zaW9uKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QWN0aXZhdGVFeHRlbnNpb25AVUlfRVhUX01HUkBAVUVBQVhQRUFVSFdORF9fQEBLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQVJSQVlfTElTVF9DT05UUk9MVkFMX0NJRF9QQUlSOjpBZGQoY2xhc3MgQ09OVFJPTFZBTF9DSURfUEFJUiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkQEFSUkFZX0xJU1RfQ09OVFJPTFZBTF9DSURfUEFJUkBAUUVBQUhBRUJWQ09OVFJPTFZBTF9DSURfUEFJUkBAQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBIV05EX0RMR1BUUl9DQUNIRTo6QWRkKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LGNsYXNzIERJQUxPR19XSU5ET1cgKiBfX3B0cjY0KQ0KKz9BZGRASFdORF9ETEdQVFJfQ0FDSEVAQFNBWFBFQVVIV05EX19AQFBFQVZESUFMT0dfV0lORE9XQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTUFTS19NQVA6OkFkZChjbGFzcyBCSVRGSUVMRCBjb25zdCAmIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0FkZEBNQVNLX01BUEBAUUVBQUpBRUJWQklURklFTERAQEFFQlZOTFNfU1RSQEBIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE1BU0tfTUFQOjpBZGQoc3RydWN0IFVTX0lEU19QQUlSUyAqIF9fcHRyNjQgY29uc3QsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/QWRkQE1BU0tfTUFQQEBRRUFBSlFFQVVVU19JRFNfUEFJUlNAQEdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0xJU1RfT0ZfQVNTT0NIQ0ZJTEU6OkFkZChjbGFzcyBBU1NPQ0hDRklMRSBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkQFNMSVNUX09GX0FTU09DSENGSUxFQEBRRUFBSlBFQlZBU1NPQ0hDRklMRUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNMSVNUX09GX0NMSUVOVERBVEE6OkFkZChzdHJ1Y3QgQ0xJRU5UREFUQSBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkQFNMSVNUX09GX0NMSUVOVERBVEFAQFFFQUFKUEVCVUNMSUVOVERBVEFAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTTElTVF9PRl9OTFNfU1RSOjpBZGQoY2xhc3MgTkxTX1NUUiBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkQFNMSVNUX09GX05MU19TVFJAQFFFQUFKUEVCVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTTElTVF9PRl9PU19TSUQ6OkFkZChjbGFzcyBPU19TSUQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEBTTElTVF9PRl9PU19TSURAQFFFQUFKUEVCVk9TX1NJREBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNMSVNUX09GX1RJTUVSX0JBU0U6OkFkZChjbGFzcyBUSU1FUl9CQVNFIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRAU0xJU1RfT0ZfVElNRVJfQkFTRUBAUUVBQUpQRUJWVElNRVJfQkFTRUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNMSVNUX09GX1VTRVJfQlJPV1NFUl9MQkk6OkFkZChjbGFzcyBVU0VSX0JST1dTRVJfTEJJIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRAU0xJU1RfT0ZfVVNFUl9CUk9XU0VSX0xCSUBAUUVBQUpQRUJWVVNFUl9CUk9XU0VSX0xCSUBAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6OkFkZEFsaWFzZXMoY2xhc3MgQURNSU5fQVVUSE9SSVRZICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRBbGlhc2VzQFVTRVJfQlJPV1NFUl9MQklfQ0FDSEVAQElFQUFKUEVBVkFETUlOX0FVVEhPUklUWUBAUEVCR1BFQUhAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgVVNFUl9CUk9XU0VSX0xCSV9DQUNIRTo6QWRkQWxpYXNlcyhjbGFzcyBTQU1fRE9NQUlOICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRBbGlhc2VzQFVTRVJfQlJPV1NFUl9MQklfQ0FDSEVAQElFQUFKUEVBVlNBTV9ET01BSU5AQFBFQkdQRUFIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE1BR0lDX0dST1VQOjpBZGRBc3NvY2lhdGlvbih1bnNpZ25lZCBpbnQsY2xhc3MgQ09OVFJPTF9WQUxVRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkQXNzb2NpYXRpb25ATUFHSUNfR1JPVVBAQFFFQUFKSVBFQVZDT05UUk9MX1ZBTFVFQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1BJTl9HUk9VUDo6QWRkQXNzb2NpYXRpb24oY2xhc3MgU1BJTl9JVEVNICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRBc3NvY2lhdGlvbkBTUElOX0dST1VQQEBRRUFBSlBFQVZTUElOX0lURU1AQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIEhJRVJfTElTVEJPWDo6QWRkQ2hpbGRyZW4oY2xhc3MgSElFUl9MQkkgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZENoaWxkcmVuQEhJRVJfTElTVEJPWEBATUVBQUpQRUFWSElFUl9MQklAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQkxUSU1QOjpBZGRDbGllbnQoc3RydWN0IEhJTlNUQU5DRV9fICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP0FkZENsaWVudEBCTFRJTVBAQFNBSlBFQVVISU5TVEFOQ0VfX0BASUlJSUBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENPTlRST0xfVEFCTEU6OkFkZENvbnRyb2woY2xhc3MgQ09OVFJPTF9XSU5ET1cgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZENvbnRyb2xAQ09OVFJPTF9UQUJMRUBAUUVBQUhQRUFWQ09OVFJPTF9XSU5ET1dAQEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBPV05FUl9XSU5ET1c6OkFkZENvbnRyb2woY2xhc3MgQ09OVFJPTF9XSU5ET1cgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZENvbnRyb2xAT1dORVJfV0lORE9XQEBBRUFBSFBFQVZDT05UUk9MX1dJTkRPV0BAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT1VUTElORV9MSVNUQk9YOjpBZGREb21haW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/QWRkRG9tYWluQE9VVExJTkVfTElTVEJPWEBAUUVBQUhQRUJHMEhAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgVVNFUl9CUk9XU0VSX0xCSV9DQUNIRTo6QWRkR3JvdXBzKGNsYXNzIEFETUlOX0FVVEhPUklUWSAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkR3JvdXBzQFVTRVJfQlJPV1NFUl9MQklfQ0FDSEVAQElFQUFKUEVBVkFETUlOX0FVVEhPUklUWUBAUEVCR1BFQUhAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIEJMVElNUDo6QWRkSGVscEFzc29jKHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQsbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0FkZEhlbHBBc3NvY0BCTFRJTVBAQFNBSlBFQVVISU5TVEFOQ0VfX0BASktLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQVJSQVlfTElTVF9DT05UUk9MVkFMX0NJRF9QQUlSOjpBZGRJZGVtcChjbGFzcyBDT05UUk9MVkFMX0NJRF9QQUlSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9BZGRJZGVtcEBBUlJBWV9MSVNUX0NPTlRST0xWQUxfQ0lEX1BBSVJAQFFFQUFIQUVCVkNPTlRST0xWQUxfQ0lEX1BBSVJAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJMVF9MSVNUQk9YOjpBZGRJdGVtKGNsYXNzIExCSSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkSXRlbUBCTFRfTElTVEJPWEBAUUVBQUhQRUFWTEJJQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQlJPV1NFUl9ET01BSU5fQ0I6OkFkZEl0ZW0oY2xhc3MgQlJPV1NFUl9ET01BSU4gKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEl0ZW1AQlJPV1NFUl9ET01BSU5fQ0JAQFFFQUFKUEVBVkJST1dTRVJfRE9NQUlOQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBISUVSX0xJU1RCT1g6OkFkZEl0ZW0oY2xhc3MgSElFUl9MQkkgKiBfX3B0cjY0LGNsYXNzIEhJRVJfTEJJICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/QWRkSXRlbUBISUVSX0xJU1RCT1hAQFFFQUFIUEVBVkhJRVJfTEJJQEAwSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMQklfSEVBUDo6QWRkSXRlbShjbGFzcyBMQkkgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEl0ZW1ATEJJX0hFQVBAQFFFQUFKUEVBVkxCSUBAQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgT1VUTElORV9MSVNUQk9YOjpBZGRJdGVtKGVudW0gT1VUTElORV9MQl9MRVZFTCxpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkSXRlbUBPVVRMSU5FX0xJU1RCT1hAQElFQUFIVzRPVVRMSU5FX0xCX0xFVkVMQEBIUEVCRzExQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSSU5HX0xJU1RfQ09OVFJPTDo6QWRkSXRlbSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkSXRlbUBTVFJJTkdfTElTVF9DT05UUk9MQEBRRUFBSFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBVU0VSX0JST1dTRVJfTEI6OkFkZEl0ZW0oY2xhc3MgTEJJICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRJdGVtQFVTRVJfQlJPV1NFUl9MQkBAUUVBQUhQRUFWTEJJQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6OkFkZEl0ZW0oY2xhc3MgTEJJICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRJdGVtQFVTRVJfQlJPV1NFUl9MQklfQ0FDSEVAQFVFQUFIUEVBVkxCSUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBVU0VSX0xCSV9DQUNIRTo6QWRkSXRlbShjbGFzcyBMQkkgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEl0ZW1AVVNFUl9MQklfQ0FDSEVAQFVFQUFIUEVBVkxCSUBAQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgTElTVF9DT05UUk9MOjpBZGRJdGVtRGF0YSh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRJdGVtRGF0YUBMSVNUX0NPTlRST0xAQElFQUFIUEVBWEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJMVF9MSVNUQk9YOjpBZGRJdGVtSWRlbXAoY2xhc3MgTEJJICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRJdGVtSWRlbXBAQkxUX0xJU1RCT1hAQFFFQUFIUEVBVkxCSUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSSU5HX0xJU1RfQ09OVFJPTDo6QWRkSXRlbUlkZW1wKGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEl0ZW1JZGVtcEBTVFJJTkdfTElTVF9DT05UUk9MQEBRRUFBSEFFQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJJTkdfTElTVF9DT05UUk9MOjpBZGRJdGVtSWRlbXAodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEl0ZW1JZGVtcEBTVFJJTkdfTElTVF9DT05UUk9MQEBRRUFBSFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBMQklUUkVFOjpBZGROb2RlKGNsYXNzIEhJRVJfTEJJICogX19wdHI2NCxjbGFzcyBISUVSX0xCSSAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0FkZE5vZGVATEJJVFJFRUBAUUVBQUhQRUFWSElFUl9MQklAQDBIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0c6OkFkZFNlbGVjdGVkVXNlckJyb3dzZXJMQklzKGNsYXNzIFVTRVJfQlJPV1NFUl9MQiAqIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz9BZGRTZWxlY3RlZFVzZXJCcm93c2VyTEJJc0BOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRRUFBSlBFQVZVU0VSX0JST1dTRVJfTEJAQEhIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgT1VUTElORV9MSVNUQk9YOjpBZGRTZXJ2ZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkU2VydmVyQE9VVExJTkVfTElTVEJPWEBAUUVBQUhQRUJHMDBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSElFUl9MSVNUQk9YOjpBZGRTb3J0ZWRJdGVtcyhjbGFzcyBISUVSX0xCSSAqIF9fcHRyNjQgKiBfX3B0cjY0LGludCxjbGFzcyBISUVSX0xCSSAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0FkZFNvcnRlZEl0ZW1zQEhJRVJfTElTVEJPWEBAUUVBQVhQRUFQRUFWSElFUl9MQklAQEhQRUFWMkBIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6OkFkZFVzZXJzKGNsYXNzIEFETUlOX0FVVEhPUklUWSAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCxpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZFVzZXJzQFVTRVJfQlJPV1NFUl9MQklfQ0FDSEVAQFFFQUFKUEVBVkFETUlOX0FVVEhPUklUWUBAUEVCR0hQRUFIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6OkFkZFdlbGxLbm93blNpZHMoY2xhc3MgQURNSU5fQVVUSE9SSVRZICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkV2VsbEtub3duU2lkc0BVU0VSX0JST1dTRVJfTEJJX0NBQ0hFQEBJRUFBSlBFQVZBRE1JTl9BVVRIT1JJVFlAQEtQRUFIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIExCSV9IRUFQOjpBZGp1c3Qodm9pZCkgX19wdHI2NA0KKz9BZGp1c3RATEJJX0hFQVBAQFFFQUFYWFoNCis7IHB1YmxpYzogY2xhc3MgWFlSRUNUICYgX19wdHI2NCBfX2NkZWNsIFhZUkVDVDo6QWRqdXN0Qm90dG9tKGludCkgX19wdHI2NA0KKz9BZGp1c3RCb3R0b21AWFlSRUNUQEBRRUFBQUVBVjFASEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgSElFUl9MQkk6OkFkanVzdERlc2NlbmRhbnRDb3VudChpbnQpIF9fcHRyNjQNCis/QWRqdXN0RGVzY2VuZGFudENvdW50QEhJRVJfTEJJQEBBRUFBWEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExCSV9IRUFQOjpBZGp1c3REb3dud2FyZHMoaW50KSBfX3B0cjY0DQorP0FkanVzdERvd253YXJkc0BMQklfSEVBUEBAQUVBQVhIQFoNCis7IHB1YmxpYzogY2xhc3MgWFlSRUNUICYgX19wdHI2NCBfX2NkZWNsIFhZUkVDVDo6QWRqdXN0TGVmdChpbnQpIF9fcHRyNjQNCis/QWRqdXN0TGVmdEBYWVJFQ1RAQFFFQUFBRUFWMUBIQFoNCis7IHB1YmxpYzogY2xhc3MgWFlSRUNUICYgX19wdHI2NCBfX2NkZWNsIFhZUkVDVDo6QWRqdXN0UmlnaHQoaW50KSBfX3B0cjY0DQorP0FkanVzdFJpZ2h0QFhZUkVDVEBAUUVBQUFFQVYxQEhAWg0KKzsgcHVibGljOiBjbGFzcyBYWVJFQ1QgJiBfX3B0cjY0IF9fY2RlY2wgWFlSRUNUOjpBZGp1c3RUb3AoaW50KSBfX3B0cjY0DQorP0FkanVzdFRvcEBYWVJFQ1RAQFFFQUFBRUFWMUBIQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBMQklfSEVBUDo6QWRqdXN0VXB3YXJkcyhpbnQpIF9fcHRyNjQNCis/QWRqdXN0VXB3YXJkc0BMQklfSEVBUEBAQUVBQVhIQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBISUVSX0xCSTo6QWRvcHQoY2xhc3MgSElFUl9MQkkgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9BZG9wdEBISUVSX0xCSUBAQUVBQVhQRUFWMUBIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFBST0dSRVNTX0NPTlRST0w6OkFkdmFuY2UoaW50KSBfX3B0cjY0DQorP0FkdmFuY2VAUFJPR1JFU1NfQ09OVFJPTEBAUUVBQVhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ09OVFJPTF9HUk9VUDo6QWZ0ZXJHcm91cEFjdGlvbnModm9pZCkgX19wdHI2NA0KKz9BZnRlckdyb3VwQWN0aW9uc0BDT05UUk9MX0dST1VQQEBNRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBVU0VSX0JST1dTRVJfTEJJOjpBbGlhc1VuaWNvZGVTdHJUb0Rpc3BsYXlOYW1lKHN0cnVjdCBfVU5JQ09ERV9TVFJJTkcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FsaWFzVW5pY29kZVN0clRvRGlzcGxheU5hbWVAVVNFUl9CUk9XU0VSX0xCSUBAUUVBQVhQRUFVX1VOSUNPREVfU1RSSU5HQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgRExJU1RfT0ZfU1BJTl9JVEVNOjpBcHBlbmQoY2xhc3MgU1BJTl9JVEVNICogX19wdHI2NCBjb25zdCkgX19wdHI2NA0KKz9BcHBlbmRARExJU1RfT0ZfU1BJTl9JVEVNQEBRRUFBSlFFQVZTUElOX0lURU1AQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBNRU5VX0JBU0U6OkFwcGVuZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9BcHBlbmRATUVOVV9CQVNFQEBRRUJBSlBFQkdJSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBNRU5VX0JBU0U6OkFwcGVuZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IEhNRU5VX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9BcHBlbmRATUVOVV9CQVNFQEBRRUJBSlBFQkdQRUFVSE1FTlVfX0BASUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTTElTVF9PRl9OTFNfU1RSOjpBcHBlbmQoY2xhc3MgTkxTX1NUUiBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNMSVNUX09GX05MU19TVFJAQFFFQUFKUEVCVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTTElTVF9PRl9TVFJJTkdfQklUU0VUX1BBSVI6OkFwcGVuZChjbGFzcyBTVFJJTkdfQklUU0VUX1BBSVIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FwcGVuZEBTTElTVF9PRl9TVFJJTkdfQklUU0VUX1BBSVJAQFFFQUFKUEVCVlNUUklOR19CSVRTRVRfUEFJUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNMSVNUX09GX1VJX0VYVDo6QXBwZW5kKGNsYXNzIFVJX0VYVCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNMSVNUX09GX1VJX0VYVEBAUUVBQUpQRUJWVUlfRVhUQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0xJU1RfT0ZfVUxDX0FQSV9CVUZGRVI6OkFwcGVuZChjbGFzcyBVTENfQVBJX0JVRkZFUiBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwZW5kQFNMSVNUX09GX1VMQ19BUElfQlVGRkVSQEBRRUFBSlBFQlZVTENfQVBJX0JVRkZFUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNMSVNUX09GX1VTRVJfQlJPV1NFUl9MQkk6OkFwcGVuZChjbGFzcyBVU0VSX0JST1dTRVJfTEJJIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRAU0xJU1RfT0ZfVVNFUl9CUk9XU0VSX0xCSUBAUUVBQUpQRUJWVVNFUl9CUk9XU0VSX0xCSUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgRE1fRFRFOjpBcHBlbmREYXRhVG8oY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/QXBwZW5kRGF0YVRvQERNX0RURUBAVUVCQUpQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgU1RSX0RURTo6QXBwZW5kRGF0YVRvKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0FwcGVuZERhdGFUb0BTVFJfRFRFQEBVRUJBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTUVOVV9CQVNFOjpBcHBlbmRTZXBhcmF0b3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9BcHBlbmRTZXBhcmF0b3JATUVOVV9CQVNFQEBRRUJBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTRVRfT0ZfQVVESVRfQ0FURUdPUklFUzo6QXBwbHlQZXJtaXNzaW9uc1RvQ2hlY2tCb3hlcyhjbGFzcyBCSVRGSUVMRCAqIF9fcHRyNjQsY2xhc3MgQklURklFTEQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FwcGx5UGVybWlzc2lvbnNUb0NoZWNrQm94ZXNAU0VUX09GX0FVRElUX0NBVEVHT1JJRVNAQFFFQUFKUEVBVkJJVEZJRUxEQEAwQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6QXJlVXNlcnNTaG93bih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0FyZVVzZXJzU2hvd25ATlRfVVNFUl9CUk9XU0VSX0RJQUxPR0BAUUVCQUhYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBBVE9NX0JBU0U6OkFzc2lnbkF1eCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXNzaWduQXV4QEFUT01fQkFTRUBASUVBQVBFQkdQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFBPUFVQX01FTlU6OkF0dGFjaChjbGFzcyBQV05EMkhXTkQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0F0dGFjaEBQT1BVUF9NRU5VQEBRRUFBSkFFQlZQV05EMkhXTkRAQEBaDQorOyBsb25nIF9fY2RlY2wgQkxURG91YmxlQ2hhcihjbGFzcyBOTFNfU1RSICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCkNCis/QkxURG91YmxlQ2hhckBAWUFKUEVBVk5MU19TVFJAQEdAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBTRVRfQ09OVFJPTDo6QkxUTW92ZUl0ZW1zKGNsYXNzIEJMVF9MSVNUQk9YICogX19wdHI2NCxjbGFzcyBCTFRfTElTVEJPWCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QkxUTW92ZUl0ZW1zQFNFVF9DT05UUk9MQEBNRUFBSlBFQVZCTFRfTElTVEJPWEBAMEBaDQorOyBpbnQgX19jZGVjbCBCTFRQb2ludHMyTG9nVW5pdHMoaW50KQ0KKz9CTFRQb2ludHMyTG9nVW5pdHNAQFlBSEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExPR09OX0hPVVJTX0NPTlRST0w6OkJlZXAodm9pZCljb25zdCAgX19wdHI2NA0KKz9CZWVwQExPR09OX0hPVVJTX0NPTlRST0xAQEFFQkFYWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIFVJX01FTlVfRVhUOjpCaWFzTWVudUlkcyh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0JpYXNNZW51SWRzQFVJX01FTlVfRVhUQEBJRUFBSktAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBVU0VSX0xCSV9DQUNIRTo6QmluYXJ5U2VhcmNoKHN0cnVjdCBfRE9NQUlOX0RJU1BMQVlfVVNFUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QmluYXJ5U2VhcmNoQFVTRVJfTEJJX0NBQ0hFQEBRRUFBSFBFQVVfRE9NQUlOX0RJU1BMQVlfVVNFUkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgVVNFUl9MQklfQ0FDSEU6OkJpbmFyeVNlYXJjaChjbGFzcyBMQkkgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0JpbmFyeVNlYXJjaEBVU0VSX0xCSV9DQUNIRUBAUUVBQUhQRUFWTEJJQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBERVZJQ0VfQ09OVEVYVDo6Qml0Qmx0KGNsYXNzIFhZUE9JTlQgY29uc3QgJiBfX3B0cjY0LGNsYXNzIFhZRElNRU5TSU9OLGNsYXNzIERFVklDRV9DT05URVhUIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBYWVBPSU5UIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0JpdEJsdEBERVZJQ0VfQ09OVEVYVEBAUUVBQUhBRUJWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBBRUJWMUAwS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIERFVklDRV9DT05URVhUOjpCaXRCbHQoaW50LGludCxpbnQsaW50LGNsYXNzIERFVklDRV9DT05URVhUIGNvbnN0ICYgX19wdHI2NCxpbnQsaW50LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Qml0Qmx0QERFVklDRV9DT05URVhUQEBRRUFBSEhISEhBRUJWMUBISEtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTUFTS19NQVA6OkJpdHNUb1N0cmluZyhjbGFzcyBCSVRGSUVMRCBjb25zdCAmIF9fcHRyNjQsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Qml0c1RvU3RyaW5nQE1BU0tfTUFQQEBRRUFBSkFFQlZCSVRGSUVMREBAUEVBVk5MU19TVFJAQEhQRUFJQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6OkJ1aWxkQW5kQWRkTEJJKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgY29uc3QsZW51bSBVSV9TeXN0ZW1TaWQsZW51bSBfU0lEX05BTUVfVVNFLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QnVpbGRBbmRBZGRMQklAVVNFUl9CUk9XU0VSX0xCSV9DQUNIRUBASUVBQUpQRUJHMDAwMFFFQVhXNFVJX1N5c3RlbVNpZEBAVzRfU0lEX05BTUVfVVNFQEBLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIEFDQ09VTlRfTkFNRVNfTUxFOjpCdWlsZE5hbWVMaXN0RnJvbVN0ckxpc3QoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQsY2xhc3MgU1RSTElTVCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QnVpbGROYW1lTGlzdEZyb21TdHJMaXN0QEFDQ09VTlRfTkFNRVNfTUxFQEBJRUFBSlBFQVZOTFNfU1RSQEBQRUFWU1RSTElTVEBAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIF9faW50NjQgX19jZGVjbCBCTFRfQ09NQk9CT1g6OkNCU3ViY2xhc3NQcm9jKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBfX2ludDY0LF9faW50NjQpDQorP0NCU3ViY2xhc3NQcm9jQEJMVF9DT01CT0JPWEBAS0FfSlBFQVVIV05EX19AQElfS19KQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBCTFRfTElTVEJPWDo6Q0RfQ2hhcih1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9DRF9DaGFyQEJMVF9MSVNUQk9YQEBNRUFBSEdHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBCTFRfTElTVEJPWF9IQVc6OkNEX0NoYXIodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/Q0RfQ2hhckBCTFRfTElTVEJPWF9IQVdAQE1FQUFIR0dAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIENPTlRST0xfV0lORE9XOjpDRF9DaGFyKHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP0NEX0NoYXJAQ09OVFJPTF9XSU5ET1dAQE1FQUFIR0dAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIExNX09MTEI6OkNEX0NoYXIodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/Q0RfQ2hhckBMTV9PTExCQEBNRUFBSEdHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBPVVRMSU5FX0xJU1RCT1g6OkNEX0NoYXIodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/Q0RfQ2hhckBPVVRMSU5FX0xJU1RCT1hAQE1FQUFIR0dAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNUQVRFTEI6OkNEX0NoYXIodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/Q0RfQ2hhckBTVEFURUxCQEBNRUFBSEdHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBVU0VSX0JST1dTRVJfTEI6OkNEX0NoYXIodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/Q0RfQ2hhckBVU0VSX0JST1dTRVJfTEJAQE1FQUFIR0dAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBCTFRfTElTVEJPWDo6Q0RfQ2hhcl9IQVdmb3JIYXdhaWkodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQsY2xhc3MgSEFXX0ZPUl9IQVdBSUlfSU5GTyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q0RfQ2hhcl9IQVdmb3JIYXdhaWlAQkxUX0xJU1RCT1hAQElFQUFIR0dQRUFWSEFXX0ZPUl9IQVdBSUlfSU5GT0BAQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgVVNFUl9CUk9XU0VSX0xCOjpDRF9DaGFyX0hBV2Zvckhhd2FpaSh1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCxjbGFzcyBIQVdfRk9SX0hBV0FJSV9JTkZPICogX19wdHI2NCkgX19wdHI2NA0KKz9DRF9DaGFyX0hBV2Zvckhhd2FpaUBVU0VSX0JST1dTRVJfTEJAQElFQUFIR0dQRUFWSEFXX0ZPUl9IQVdBSUlfSU5GT0BAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBDT05UUk9MX1dJTkRPVzo6Q0RfRHJhdyhzdHJ1Y3QgdGFnRFJBV0lURU1TVFJVQ1QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NEX0RyYXdAQ09OVFJPTF9XSU5ET1dAQE1FQUFIUEVBVXRhZ0RSQVdJVEVNU1RSVUNUQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIEdSQVBISUNBTF9CVVRUT046OkNEX0RyYXcoc3RydWN0IHRhZ0RSQVdJVEVNU1RSVUNUICogX19wdHI2NCkgX19wdHI2NA0KKz9DRF9EcmF3QEdSQVBISUNBTF9CVVRUT05AQE1FQUFIUEVBVXRhZ0RSQVdJVEVNU1RSVUNUQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIEdSQVBISUNBTF9CVVRUT05fV0lUSF9ESVNBQkxFOjpDRF9EcmF3KHN0cnVjdCB0YWdEUkFXSVRFTVNUUlVDVCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q0RfRHJhd0BHUkFQSElDQUxfQlVUVE9OX1dJVEhfRElTQUJMRUBATUVBQUhQRUFVdGFnRFJBV0lURU1TVFJVQ1RAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgTElTVEJPWDo6Q0RfRHJhdyhzdHJ1Y3QgdGFnRFJBV0lURU1TVFJVQ1QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NEX0RyYXdATElTVEJPWEBATUVBQUhQRUFVdGFnRFJBV0lURU1TVFJVQ1RAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIEJMVF9MSVNUQk9YOjpDRF9HdWlsdHQoaW50LGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NEX0d1aWx0dEBCTFRfTElTVEJPWEBATUVBQUpIUEVBVk5MU19TVFJAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENPTlRST0xfV0lORE9XOjpDRF9HdWlsdHQoaW50LGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NEX0d1aWx0dEBDT05UUk9MX1dJTkRPV0BATUVBQUpIUEVBVk5MU19TVFJAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIExBWllfTElTVEJPWDo6Q0RfR3VpbHR0KGludCxjbGFzcyBOTFNfU1RSICogX19wdHI2NCkgX19wdHI2NA0KKz9DRF9HdWlsdHRATEFaWV9MSVNUQk9YQEBNRUFBSkhQRUFWTkxTX1NUUkBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBCTFRfTElTVEJPWDo6Q0RfTWVhc3VyZShzdHJ1Y3QgdGFnTUVBU1VSRUlURU1TVFJVQ1QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NEX01lYXN1cmVAQkxUX0xJU1RCT1hAQE1FQUFIUEVBVXRhZ01FQVNVUkVJVEVNU1RSVUNUQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIENPTlRST0xfV0lORE9XOjpDRF9NZWFzdXJlKHN0cnVjdCB0YWdNRUFTVVJFSVRFTVNUUlVDVCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q0RfTWVhc3VyZUBDT05UUk9MX1dJTkRPV0BATUVBQUhQRUFVdGFnTUVBU1VSRUlURU1TVFJVQ1RAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ09OVFJPTF9XSU5ET1c6OkNEX1ZLZXkodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/Q0RfVktleUBDT05UUk9MX1dJTkRPV0BATUVBQUhHR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgTElTVEJPWDo6Q0RfVktleSh1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9DRF9WS2V5QExJU1RCT1hAQE1FQUFIR0dAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNUQVRFTEI6OkNEX1ZLZXkodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/Q0RfVktleUBTVEFURUxCQEBNRUFBSEdHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBVU0VSX0JST1dTRVJfTEI6OkNEX1ZLZXkodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/Q0RfVktleUBVU0VSX0JST1dTRVJfTEJAQE1FQUFIR0dAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ09OVFJPTF9HUk9VUDo6Q1ZSZXN0b3JlVmFsdWUoY2xhc3MgQ09OVFJPTF9WQUxVRSAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0NWUmVzdG9yZVZhbHVlQENPTlRST0xfR1JPVVBAQElFQUFYUEVBVkNPTlRST0xfVkFMVUVAQEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1VTVE9NX0NPTlRST0w6OkNWUmVzdG9yZVZhbHVlKGludCkgX19wdHI2NA0KKz9DVlJlc3RvcmVWYWx1ZUBDVVNUT01fQ09OVFJPTEBAUUVBQVhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENPTlRST0xfR1JPVVA6OkNWU2F2ZVZhbHVlKGNsYXNzIENPTlRST0xfVkFMVUUgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9DVlNhdmVWYWx1ZUBDT05UUk9MX0dST1VQQEBJRUFBWFBFQVZDT05UUk9MX1ZBTFVFQEBIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENVU1RPTV9DT05UUk9MOjpDVlNhdmVWYWx1ZShpbnQpIF9fcHRyNjQNCis/Q1ZTYXZlVmFsdWVAQ1VTVE9NX0NPTlRST0xAQFFFQUFYSEBaDQorOyBwcml2YXRlOiBzdHJ1Y3QgSElDT05fXyAqIF9fcHRyNjQgX19jZGVjbCBTRVRfQ09OVFJPTDo6Q2FsY0FwcHJvcHJpYXRlQ3Vyc29yKGNsYXNzIExJU1RCT1ggKiBfX3B0cjY0LGNsYXNzIExJU1RCT1ggKiBfX3B0cjY0LGNsYXNzIFhZUE9JTlQgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0NhbGNBcHByb3ByaWF0ZUN1cnNvckBTRVRfQ09OVFJPTEBAQUVCQVBFQVVISUNPTl9fQEBQRUFWTElTVEJPWEBAMEFFQlZYWVBPSU5UQEBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIE1FVEFMTElDX1NUUl9EVEU6OkNhbGNCb3R0b21UZXh0TWFyZ2luKHZvaWQpDQorP0NhbGNCb3R0b21UZXh0TWFyZ2luQE1FVEFMTElDX1NUUl9EVEVAQENBSVhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpDYWxjQnV0dG9uRnJvbVBvaW50KGNsYXNzIFhZUE9JTlQpY29uc3QgIF9fcHRyNjQNCis/Q2FsY0J1dHRvbkZyb21Qb2ludEBMT0dPTl9IT1VSU19DT05UUk9MQEBBRUJBSFZYWVBPSU5UQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIERJU1BMQVlfVEFCTEU6OkNhbGNDb2x1bW5XaWR0aHModW5zaWduZWQgaW50ICogX19wdHI2NCx1bnNpZ25lZCBpbnQsY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQsaW50KQ0KKz9DYWxjQ29sdW1uV2lkdGhzQERJU1BMQVlfVEFCTEVAQFNBSlBFQUlJUEVBVk9XTkVSX1dJTkRPV0BASUhAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCBfX2NkZWNsIFBPUFVQOjpDYWxjRGVmQnV0dG9uKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP0NhbGNEZWZCdXR0b25AUE9QVVBAQENBSElJQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX2NkZWNsIE9XTkVSX1dJTkRPVzo6Q2FsY0ZpeGVkQ0RNZWFzdXJlKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHN0cnVjdCB0YWdNRUFTVVJFSVRFTVNUUlVDVCAqIF9fcHRyNjQpDQorP0NhbGNGaXhlZENETWVhc3VyZUBPV05FUl9XSU5ET1dAQEtBSFBFQVVIV05EX19AQFBFQVV0YWdNRUFTVVJFSVRFTVNUUlVDVEBAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX2NkZWNsIFdJTkRPVzo6Q2FsY0ZpeGVkSGVpZ2h0KHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCAqIF9fcHRyNjQpDQorP0NhbGNGaXhlZEhlaWdodEBXSU5ET1dAQEtBSFBFQVVIV05EX19AQFBFQUlAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExPR09OX0hPVVJTX0NPTlRST0w6OkNhbGNHcmlkUmVjdChjbGFzcyBYWVJFQ1QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0NhbGNHcmlkUmVjdEBMT0dPTl9IT1VSU19DT05UUk9MQEBBRUJBWFBFQVZYWVJFQ1RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgaW50IF9fY2RlY2wgTEJJOjpDYWxjSGVpZ2h0KHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9DYWxjSGVpZ2h0QExCSUBAVUVBQUlJQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgWFlSRUNUOjpDYWxjSGVpZ2h0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q2FsY0hlaWdodEBYWVJFQ1RAQFFFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEJMVDo6Q2FsY0hlbHBGaWxlSEModW5zaWduZWQgbG9uZykNCis/Q2FsY0hlbHBGaWxlSENAQkxUQEBTQVBFQkdLQFoNCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQgX19jZGVjbCBCTFQ6OkNhbGNIbW9kUnNyYyhjbGFzcyBJRFJFU09VUkNFIGNvbnN0ICYgX19wdHI2NCkNCis/Q2FsY0htb2RSc3JjQEJMVEBAU0FQRUFVSElOU1RBTkNFX19AQEFFQlZJRFJFU09VUkNFQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IEhJTlNUQU5DRV9fICogX19wdHI2NCBfX2NkZWNsIEJMVDo6Q2FsY0htb2RTdHJpbmcobG9uZykNCis/Q2FsY0htb2RTdHJpbmdAQkxUQEBTQVBFQVVISU5TVEFOQ0VfX0BASkBaDQorOyBwdWJsaWM6IGNsYXNzIFhZUkVDVCAmIF9fcHRyNjQgX19jZGVjbCBYWVJFQ1Q6OkNhbGNJbnRlcnNlY3QoY2xhc3MgWFlSRUNUIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBYWVJFQ1QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NhbGNJbnRlcnNlY3RAWFlSRUNUQEBRRUFBQUVBVjFAQUVCVjFAMEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6Q2FsY1JlY3RGb3JDZWxsKGNsYXNzIFhZUkVDVCAqIF9fcHRyNjQsaW50KWNvbnN0ICBfX3B0cjY0DQorP0NhbGNSZWN0Rm9yQ2VsbEBMT0dPTl9IT1VSU19DT05UUk9MQEBBRUJBWFBFQVZYWVJFQ1RAQEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExPR09OX0hPVVJTX0NPTlRST0w6OkNhbGNSZWN0Rm9yQ29ybmVyKGNsYXNzIFhZUkVDVCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q2FsY1JlY3RGb3JDb3JuZXJATE9HT05fSE9VUlNfQ09OVFJPTEBAQUVCQVhQRUFWWFlSRUNUQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExPR09OX0hPVVJTX0NPTlRST0w6OkNhbGNSZWN0Rm9yRGF5KGNsYXNzIFhZUkVDVCAqIF9fcHRyNjQsaW50KWNvbnN0ICBfX3B0cjY0DQorP0NhbGNSZWN0Rm9yRGF5QExPR09OX0hPVVJTX0NPTlRST0xAQEFFQkFYUEVBVlhZUkVDVEBASEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6Q2FsY1JlY3RGb3JIb3VyKGNsYXNzIFhZUkVDVCAqIF9fcHRyNjQsaW50KWNvbnN0ICBfX3B0cjY0DQorP0NhbGNSZWN0Rm9ySG91ckBMT0dPTl9IT1VSU19DT05UUk9MQEBBRUJBWFBFQVZYWVJFQ1RAQEhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQkxUX0xJU1RCT1g6OkNhbGNTaW5nbGVMaW5lSGVpZ2h0KHZvaWQpIF9fcHRyNjQNCis/Q2FsY1NpbmdsZUxpbmVIZWlnaHRAQkxUX0xJU1RCT1hAQFFFQUFKWFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpDYWxjU2l6ZXMoY2xhc3MgWFlESU1FTlNJT04pIF9fcHRyNjQNCis/Q2FsY1NpemVzQExPR09OX0hPVVJTX0NPTlRST0xAQEFFQUFKVlhZRElNRU5TSU9OQEBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIE1FVEFMTElDX1NUUl9EVEU6OkNhbGNUb3BUZXh0TWFyZ2luKHZvaWQpDQorP0NhbGNUb3BUZXh0TWFyZ2luQE1FVEFMTElDX1NUUl9EVEVAQENBSVhaDQorOyBwdWJsaWM6IGNsYXNzIFhZUkVDVCAmIF9fcHRyNjQgX19jZGVjbCBYWVJFQ1Q6OkNhbGNVbmlvbihjbGFzcyBYWVJFQ1QgY29uc3QgJiBfX3B0cjY0LGNsYXNzIFhZUkVDVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2FsY1VuaW9uQFhZUkVDVEBAUUVBQUFFQVYxQEFFQlYxQDBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBYWVJFQ1Q6OkNhbGNXaWR0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NhbGNXaWR0aEBYWVJFQ1RAQFFFQkFIWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEFDQ09VTlRfTkFNRVNfTUxFOjpDYW5vbmljYWxpemVOYW1lcyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgU1RSTElTVCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2Fub25pY2FsaXplTmFtZXNAQUNDT1VOVF9OQU1FU19NTEVAQFFFQUFKUEVCR1BFQVZTVFJMSVNUQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xJRU5UX1dJTkRPVzo6Q2FwdHVyZU1vdXNlKHZvaWQpIF9fcHRyNjQNCis/Q2FwdHVyZU1vdXNlQENMSUVOVF9XSU5ET1dAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIERJU1BBVENIRVI6OkNhcHR1cmVNb3VzZSh2b2lkKSBfX3B0cjY0DQorP0NhcHR1cmVNb3VzZUBESVNQQVRDSEVSQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXSU5ET1c6OkNlbnRlcihzdHJ1Y3QgSFdORF9fICogX19wdHI2NCkgX19wdHI2NA0KKz9DZW50ZXJAV0lORE9XQEBRRUFBWFBFQVVIV05EX19AQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNQSU5fR1JPVVA6OkNoYW5nZUZpZWxkVmFsdWUodW5zaWduZWQgc2hvcnQsaW50KSBfX3B0cjY0DQorP0NoYW5nZUZpZWxkVmFsdWVAU1BJTl9HUk9VUEBAUUVBQUhHSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBBVURJVF9DSEVDS0JPWEVTOjpDaGVja0ZhaWxlZChpbnQpIF9fcHRyNjQNCis/Q2hlY2tGYWlsZWRAQVVESVRfQ0hFQ0tCT1hFU0BAUUVBQVhIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTUVOVV9CQVNFOjpDaGVja0l0ZW0odW5zaWduZWQgaW50LGludCx1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/Q2hlY2tJdGVtQE1FTlVfQkFTRUBAUUVCQUlJSElAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQUNDT1VOVF9OQU1FU19NTEU6OkNoZWNrTG9va2VkVXBOYW1lcyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0LGNsYXNzIExTQV9UUkFOU0xBVEVEX1NJRF9NRU0gKiBfX3B0cjY0LGNsYXNzIFNUUkxJU1QgKiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9DaGVja0xvb2tlZFVwTmFtZXNAQUNDT1VOVF9OQU1FU19NTEVAQElFQUFKUEVBUEVBR1BFQVZMU0FfVFJBTlNMQVRFRF9TSURfTUVNQEBQRUFWU1RSTElTVEBAUEVBVk5MU19TVFJAQFBFQkdQRUFKQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBBQ0NPVU5UX05BTUVTX01MRTo6Q2hlY2tOYW1lVHlwZShlbnVtIF9TSURfTkFNRV9VU0UsdW5zaWduZWQgbG9uZykNCis/Q2hlY2tOYW1lVHlwZUBBQ0NPVU5UX05BTUVTX01MRUBAU0FKVzRfU0lEX05BTUVfVVNFQEBLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0hBTkdFQUJMRV9TUElOX0lURU06OkNoZWNrUmFuZ2UodW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9DaGVja1JhbmdlQENIQU5HRUFCTEVfU1BJTl9JVEVNQEBRRUJBSEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQVVESVRfQ0hFQ0tCT1hFUzo6Q2hlY2tTdWNjZXNzKGludCkgX19wdHI2NA0KKz9DaGVja1N1Y2Nlc3NAQVVESVRfQ0hFQ0tCT1hFU0BAUUVBQVhIQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6Q2hlY2tWYWxpZCh2b2lkKSBfX3B0cjY0DQorP0NoZWNrVmFsaWRAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFVFQUFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBTUElOX1NMRV9OVU1fVkFMSUQ6OkNoZWNrVmFsaWQodm9pZCkgX19wdHI2NA0KKz9DaGVja1ZhbGlkQFNQSU5fU0xFX05VTV9WQUxJREBAVUVBQUhYWg0KKzsgcHVibGljOiBjbGFzcyBDT05UUk9MX1dJTkRPVyAqIF9fcHRyNjQgX19jZGVjbCBDT05UUk9MX1RBQkxFOjpDaWRUb0N0cmxQdHIodW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP0NpZFRvQ3RybFB0ckBDT05UUk9MX1RBQkxFQEBRRUJBUEVBVkNPTlRST0xfV0lORE9XQEBJQFoNCis7IHByb3RlY3RlZDogY2xhc3MgQ09OVFJPTF9XSU5ET1cgKiBfX3B0cjY0IF9fY2RlY2wgT1dORVJfV0lORE9XOjpDaWRUb0N0cmxQdHIodW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP0NpZFRvQ3RybFB0ckBPV05FUl9XSU5ET1dAQElFQkFQRUFWQ09OVFJPTF9XSU5ET1dAQElAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ09OVFJPTF9XSU5ET1c6OkNsYWltRm9jdXModm9pZCkgX19wdHI2NA0KKz9DbGFpbUZvY3VzQENPTlRST0xfV0lORE9XQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBBUlJBWV9MSVNUX0NPTlRST0xWQUxfQ0lEX1BBSVI6OkNsZWFyKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJAQVJSQVlfTElTVF9DT05UUk9MVkFMX0NJRF9QQUlSQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBETElTVF9PRl9TUElOX0lURU06OkNsZWFyKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJARExJU1RfT0ZfU1BJTl9JVEVNQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTTElTVF9PRl9BU1NPQ0hDRklMRTo6Q2xlYXIodm9pZCkgX19wdHI2NA0KKz9DbGVhckBTTElTVF9PRl9BU1NPQ0hDRklMRUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU0xJU1RfT0ZfQ0xJRU5UREFUQTo6Q2xlYXIodm9pZCkgX19wdHI2NA0KKz9DbGVhckBTTElTVF9PRl9DTElFTlREQVRBQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTTElTVF9PRl9PU19TSUQ6OkNsZWFyKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJAU0xJU1RfT0ZfT1NfU0lEQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTTElTVF9PRl9TVFJJTkdfQklUU0VUX1BBSVI6OkNsZWFyKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJAU0xJU1RfT0ZfU1RSSU5HX0JJVFNFVF9QQUlSQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTTElTVF9PRl9USU1FUl9CQVNFOjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQFNMSVNUX09GX1RJTUVSX0JBU0VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNMSVNUX09GX1VJX0VYVDo6Q2xlYXIodm9pZCkgX19wdHI2NA0KKz9DbGVhckBTTElTVF9PRl9VSV9FWFRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNMSVNUX09GX1VMQ19BUElfQlVGRkVSOjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQFNMSVNUX09GX1VMQ19BUElfQlVGRkVSQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTTElTVF9PRl9VU0VSX0JST1dTRVJfTEJJOjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQFNMSVNUX09GX1VTRVJfQlJPV1NFUl9MQklAQFFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBIX1NQTElUVEVSX0JBUjo6Q2xlYXJEcmFnQmFyKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJEcmFnQmFyQEhfU1BMSVRURVJfQkFSQEBBRUFBWFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQkxUX01BU1RFUl9USU1FUjo6Q2xlYXJNYXN0ZXJUaW1lckhvdGtleSh2b2lkKQ0KKz9DbGVhck1hc3RlclRpbWVySG90a2V5QEJMVF9NQVNURVJfVElNRVJAQFNBS1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTTFRfRUxMSVBTSVM6OkNsZWFyVGV4dCh2b2lkKSBfX3B0cjY0DQorP0NsZWFyVGV4dEBTTFRfRUxMSVBTSVNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdJTkRPVzo6Q2xlYXJUZXh0KHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJUZXh0QFdJTkRPV0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgWFlQT0lOVDo6Q2xpZW50VG9TY3JlZW4oc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2xpZW50VG9TY3JlZW5AWFlQT0lOVEBAUUVBQVhQRUFVSFdORF9fQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQVBQX1dJTkRPVzo6Q2xvc2Uodm9pZCkgX19wdHI2NA0KKz9DbG9zZUBBUFBfV0lORE9XQEBRRUFBWFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBXSU4zMl9IQU5ETEU6OkNsb3NlKHZvaWQpIF9fcHRyNjQNCis/Q2xvc2VAV0lOMzJfSEFORExFQEBRRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBPUEVOX0RJQUxPR19CQVNFOjpDbG9zZUZpbGUoY2xhc3MgT1BFTl9MQklfQkFTRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2xvc2VGaWxlQE9QRU5fRElBTE9HX0JBU0VAQElFQUFYUEVBVk9QRU5fTEJJX0JBU0VAQEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBpbnQgX19jZGVjbCBVU0VSX0xCSV9DQUNIRTo6Q21wVW5pU3RycyhzdHJ1Y3QgX1VOSUNPREVfU1RSSU5HIGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgX1VOSUNPREVfU1RSSU5HIGNvbnN0ICogX19wdHI2NCkNCis/Q21wVW5pU3Ryc0BVU0VSX0xCSV9DQUNIRUBAS0FIUEVCVV9VTklDT0RFX1NUUklOR0BAMEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMTV9PTExCOjpDb2xsYXBzZURvbWFpbihpbnQpIF9fcHRyNjQNCis/Q29sbGFwc2VEb21haW5ATE1fT0xMQkBAUUVBQUpIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExNX09MTEI6OkNvbGxhcHNlRG9tYWluKHZvaWQpIF9fcHRyNjQNCis/Q29sbGFwc2VEb21haW5ATE1fT0xMQkBAUUVBQUpYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSElFUl9MSVNUQk9YOjpDb2xsYXBzZUl0ZW0oaW50LGludCkgX19wdHI2NA0KKz9Db2xsYXBzZUl0ZW1ASElFUl9MSVNUQk9YQEBRRUFBWEhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEhJRVJfTElTVEJPWDo6Q29sbGFwc2VJdGVtKGNsYXNzIEhJRVJfTEJJICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/Q29sbGFwc2VJdGVtQEhJRVJfTElTVEJPWEBAUUVBQVhQRUFWSElFUl9MQklAQEhAWg0KKzsgaW50IF9fY2RlY2wgQ29tbURsZ0hvb2tQcm9jKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIF9faW50NjQsX19pbnQ2NCkNCis/Q29tbURsZ0hvb2tQcm9jQEBZQUhQRUFVSFdORF9fQEBHX0tfSkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBXSU5ET1c6OkNvbW1hbmQodW5zaWduZWQgaW50LHVuc2lnbmVkIF9faW50NjQsX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz9Db21tYW5kQFdJTkRPV0BAUUVCQV9LSV9LX0pAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIEJST1dTRVJfRE9NQUlOX0xCSTo6Q29tcGFyZShjbGFzcyBMQkkgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0NvbXBhcmVAQlJPV1NFUl9ET01BSU5fTEJJQEBVRUJBSFBFQlZMQklAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQlJPV1NFUl9ET01BSU5fTEJJX1BCOjpDb21wYXJlKGNsYXNzIExCSSBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q29tcGFyZUBCUk9XU0VSX0RPTUFJTl9MQklfUEJAQFVFQkFIUEVCVkxCSUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ09OVFJPTFZBTF9DSURfUEFJUjo6Q29tcGFyZShjbGFzcyBDT05UUk9MVkFMX0NJRF9QQUlSIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db21wYXJlQENPTlRST0xWQUxfQ0lEX1BBSVJAQFFFQkFIUEVCVjFAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBMQkk6OkNvbXBhcmUoY2xhc3MgTEJJIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db21wYXJlQExCSUBAVUVCQUhQRUJWMUBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIE9MTEJfRU5UUlk6OkNvbXBhcmUoY2xhc3MgTEJJIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db21wYXJlQE9MTEJfRU5UUllAQFVFQkFIUEVCVkxCSUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBTVExCSVRFTTo6Q29tcGFyZShjbGFzcyBMQkkgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0NvbXBhcmVAU1RMQklURU1AQE1FQkFIUEVCVkxCSUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBVU0VSX0JST1dTRVJfTEJJOjpDb21wYXJlKGNsYXNzIExCSSBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q29tcGFyZUBVU0VSX0JST1dTRVJfTEJJQEBVRUJBSFBFQlZMQklAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgVVNFUl9CUk9XU0VSX0xCSV9DQUNIRTo6Q29tcGFyZShjbGFzcyBMQkkgY29uc3QgKiBfX3B0cjY0LGNsYXNzIExCSSBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q29tcGFyZUBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFQEBNRUJBSFBFQlZMQklAQDBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6OkNvbXBhcmUoY2xhc3MgTEJJIGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgX0RPTUFJTl9ESVNQTEFZX1VTRVIgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0NvbXBhcmVAVVNFUl9CUk9XU0VSX0xCSV9DQUNIRUBATUVCQUhQRUJWTEJJQEBQRUJVX0RPTUFJTl9ESVNQTEFZX1VTRVJAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQkk6OkNvbXBhcmVBdXgoY2xhc3MgTEJJIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db21wYXJlQXV4QFVTRVJfQlJPV1NFUl9MQklAQFFFQkFIUEVCVkxCSUBAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6OkNvbXBhcmVDYWNoZUxCSXMoc3RydWN0IF9VTENfRU5UUllfQkFTRSBjb25zdCAqIF9fcHRyNjQsc3RydWN0IF9VTENfRU5UUllfQkFTRSBjb25zdCAqIF9fcHRyNjQpDQorP0NvbXBhcmVDYWNoZUxCSXNAVVNFUl9CUk9XU0VSX0xCSV9DQUNIRUBAS0FIUEVCVV9VTENfRU5UUllfQkFTRUBAMEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBpbnQgX19jZGVjbCBVU0VSX0xCSV9DQUNIRTo6Q29tcGFyZUxvZ29uTmFtZXModm9pZCBjb25zdCAqIF9fcHRyNjQsdm9pZCBjb25zdCAqIF9fcHRyNjQpDQorP0NvbXBhcmVMb2dvbk5hbWVzQFVTRVJfTEJJX0NBQ0hFQEBLQUhQRUJYMEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgTEJJOjpDb21wYXJlX0hBV2Zvckhhd2FpaShjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db21wYXJlX0hBV2Zvckhhd2FpaUBMQklAQFVFQkFIQUVCVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgVVNFUl9CUk9XU0VSX0xCSTo6Q29tcGFyZV9IQVdmb3JIYXdhaWkoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q29tcGFyZV9IQVdmb3JIYXdhaWlAVVNFUl9CUk9XU0VSX0xCSUBAVUVCQUhBRUJWTkxTX1NUUkBAQFoNCis7IGludCBfX2NkZWNsIENvbXBhcmVwTEJJcyhjbGFzcyBVU0VSX0JST1dTRVJfTEJJICogX19wdHI2NCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgVVNFUl9CUk9XU0VSX0xCSSAqIF9fcHRyNjQgY29uc3QgKiBfX3B0cjY0KQ0KKz9Db21wYXJlcExCSXNAQFlBSFBFQlFFQVZVU0VSX0JST1dTRVJfTEJJQEAwQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFBST01QVF9BTkRfQ09OTkVDVDo6Q29ubmVjdCh2b2lkKSBfX3B0cjY0DQorP0Nvbm5lY3RAUFJPTVBUX0FORF9DT05ORUNUQEBRRUFBSlhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFhZUkVDVDo6Q29udGFpbnNYWShjbGFzcyBYWVBPSU5UKWNvbnN0ICBfX3B0cjY0DQorP0NvbnRhaW5zWFlAWFlSRUNUQEBRRUJBSFZYWVBPSU5UQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgU0xUX0VMTElQU0lTOjpDb252ZXJ0QW5kU2V0U3RyKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydEFuZFNldFN0ckBTTFRfRUxMSVBTSVNAQElFQUFKWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFhZUkVDVDo6Q29udmVydENsaWVudFRvU2NyZWVuKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbnZlcnRDbGllbnRUb1NjcmVlbkBYWVJFQ1RAQFFFQUFYUEVBVUhXTkRfX0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFhZUkVDVDo6Q29udmVydFNjcmVlblRvQ2xpZW50KHN0cnVjdCBIV05EX18gKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbnZlcnRTY3JlZW5Ub0NsaWVudEBYWVJFQ1RAQFFFQUFYUEVBVUhXTkRfX0BAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBMQkkgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUl9CUk9XU0VSX0xCSV9DQUNIRTo6Q3JlYXRlTEJJKHN0cnVjdCBfRE9NQUlOX0RJU1BMQVlfVVNFUiBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q3JlYXRlTEJJQFVTRVJfQlJPV1NFUl9MQklfQ0FDSEVAQE1FQUFQRUFWTEJJQEBQRUJVX0RPTUFJTl9ESVNQTEFZX1VTRVJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBBQ0NPVU5UX05BTUVTX01MRTo6Q3JlYXRlTEJJTGlzdEZyb21OYW1lcyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIFNMSVNUX09GX1VTRVJfQlJPV1NFUl9MQkkgKiBfX3B0cjY0LGNsYXNzIFNMSVNUX09GX1VTRVJfQlJPV1NFUl9MQkkgKiBfX3B0cjY0LGxvbmcgKiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZUxCSUxpc3RGcm9tTmFtZXNAQUNDT1VOVF9OQU1FU19NTEVAQFFFQUFKUEVCRzBQRUFWU0xJU1RfT0ZfVVNFUl9CUk9XU0VSX0xCSUBAMVBFQUpQRUFWTkxTX1NUUkBAQFoNCis7IGxvbmcgX19jZGVjbCBDcmVhdGVMQklzRnJvbVNpZHModm9pZCAqIF9fcHRyNjQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQgY29uc3QsY2xhc3MgTFNBX1BPTElDWSAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIFVTRVJfQlJPV1NFUl9MQiAqIF9fcHRyNjQsY2xhc3MgU0xJU1RfT0ZfVVNFUl9CUk9XU0VSX0xCSSAqIF9fcHRyNjQpDQorP0NyZWF0ZUxCSXNGcm9tU2lkc0BAWUFKUEVCUUVBWEtRRUFYUEVBVkxTQV9QT0xJQ1lAQFBFQkdQRUFWVVNFUl9CUk9XU0VSX0xCQEBQRUFWU0xJU1RfT0ZfVVNFUl9CUk9XU0VSX0xCSUBAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBHUkFQSElDQUxfQlVUVE9OOjpDdEF1eCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DdEF1eEBHUkFQSElDQUxfQlVUVE9OQEBBRUFBWFBFQkcwMEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgSF9TUExJVFRFUl9CQVI6OkN0QXV4KHZvaWQpIF9fcHRyNjQNCis/Q3RBdXhASF9TUExJVFRFUl9CQVJAQEFFQUFYWFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBQT1BVUF9NRU5VOjpDdEF1eChzdHJ1Y3QgSE1FTlVfXyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q3RBdXhAUE9QVVBfTUVOVUBAQUVBQUpQRUFVSE1FTlVfX0BAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBQUk9HUkVTU19DT05UUk9MOjpDdEF1eCh2b2lkKSBfX3B0cjY0DQorP0N0QXV4QFBST0dSRVNTX0NPTlRST0xAQEFFQUFYWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE1FTlVfQkFTRTo6RGVsZXRlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/RGVsZXRlQE1FTlVfQkFTRUBAUUVCQUpJSUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBMSVNUX0NPTlRST0w6OkRlbGV0ZUFsbEl0ZW1zKHZvaWQpIF9fcHRyNjQNCis/RGVsZXRlQWxsSXRlbXNATElTVF9DT05UUk9MQEBRRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBXSU4zMl9USFJFQUQ6OkRlbGV0ZUFuZEV4aXQodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0RlbGV0ZUFuZEV4aXRAV0lOMzJfVEhSRUFEQEBJRUFBWElAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSElFUl9MSVNUQk9YOjpEZWxldGVDaGlsZHJlbihjbGFzcyBISUVSX0xCSSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlQ2hpbGRyZW5ASElFUl9MSVNUQk9YQEBRRUFBWFBFQVZISUVSX0xCSUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIERFVklDRV9DT01CTzo6RGVsZXRlQ3VycmVudERldmljZU5hbWUodm9pZCkgX19wdHI2NA0KKz9EZWxldGVDdXJyZW50RGV2aWNlTmFtZUBERVZJQ0VfQ09NQk9AQFFFQUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSElFUl9MSVNUQk9YOjpEZWxldGVJdGVtKGludCxpbnQpIF9fcHRyNjQNCis/RGVsZXRlSXRlbUBISUVSX0xJU1RCT1hAQFFFQUFISEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBMSVNUX0NPTlRST0w6OkRlbGV0ZUl0ZW0oaW50KSBfX3B0cjY0DQorP0RlbGV0ZUl0ZW1ATElTVF9DT05UUk9MQEBRRUFBSEhAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIEJMVDo6RGVyZWdpc3RlckhlbHBGaWxlKHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/RGVyZWdpc3RlckhlbHBGaWxlQEJMVEBAU0FYUEVBVUhJTlNUQU5DRV9fQEBLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFBPUFVQX01FTlU6OkRlc3Ryb3kodm9pZCkgX19wdHI2NA0KKz9EZXN0cm95QFBPUFVQX01FTlVAQFFFQUFKWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIERJQUxPR19XSU5ET1c6OkRpc21pc3ModW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0Rpc21pc3NARElBTE9HX1dJTkRPV0BASUVBQVhJQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIERJQUxPR19XSU5ET1c6OkRpc21pc3NNc2cobG9uZyx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/RGlzbWlzc01zZ0BESUFMT0dfV0lORE9XQEBJRUFBWEpJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBESVNQQVRDSEVSOjpEaXNwYXRjaChjbGFzcyBFVkVOVCBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGlzcGF0Y2hARElTUEFUQ0hFUkBATUVBQUhBRUJWRVZFTlRAQFBFQUtAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIEhfU1BMSVRURVJfQkFSOjpEaXNwYXRjaChjbGFzcyBFVkVOVCBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGlzcGF0Y2hASF9TUExJVFRFUl9CQVJAQE1FQUFIQUVCVkVWRU5UQEBQRUFLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBMQl9DT0xVTU5fSEVBREVSOjpEaXNwYXRjaChjbGFzcyBFVkVOVCBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGlzcGF0Y2hATEJfQ09MVU1OX0hFQURFUkBATUVBQUhBRUJWRVZFTlRAQFBFQUtAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIF9faW50NjQgX19jZGVjbCBBUFBfV0lORE9XOjpEaXNwYXRjaE1lc3NhZ2VXKGNsYXNzIEVWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9EaXNwYXRjaE1lc3NhZ2VXQEFQUF9XSU5ET1dAQE1FQUFfSkFFQlZFVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBfX2ludDY0IF9fY2RlY2wgQ0xJRU5UX1dJTkRPVzo6RGlzcGF0Y2hNZXNzYWdlVyhjbGFzcyBFVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RGlzcGF0Y2hNZXNzYWdlV0BDTElFTlRfV0lORE9XQEBNRUFBX0pBRUJWRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFBST0NfVElNRVI6OkRpc3BhdGNoVGltZXIodm9pZCkgX19wdHI2NA0KKz9EaXNwYXRjaFRpbWVyQFBST0NfVElNRVJAQE1FQUFYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgVElNRVI6OkRpc3BhdGNoVGltZXIodm9pZCkgX19wdHI2NA0KKz9EaXNwYXRjaFRpbWVyQFRJTUVSQEBNRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFRJTUVSX0JBU0U6OkRpc3BhdGNoVGltZXIodm9pZCkgX19wdHI2NA0KKz9EaXNwYXRjaFRpbWVyQFRJTUVSX0JBU0VAQE1FQUFYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgV0lORE9XX1RJTUVSOjpEaXNwYXRjaFRpbWVyKHZvaWQpIF9fcHRyNjQNCis/RGlzcGF0Y2hUaW1lckBXSU5ET1dfVElNRVJAQE1FQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBBUFBMSUNBVElPTjo6RGlzcGxheUN0RXJyb3IobG9uZykgX19wdHI2NA0KKz9EaXNwbGF5Q3RFcnJvckBBUFBMSUNBVElPTkBAQUVBQVhKQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgU1BJTl9TTEVfTlVNX1ZBTElEOjpEaXNwbGF5RXJyb3JNc2codm9pZCkgX19wdHI2NA0KKz9EaXNwbGF5RXJyb3JNc2dAU1BJTl9TTEVfTlVNX1ZBTElEQEBNRUFBWFhaDQorOyB1bnNpZ25lZCBpbnQgX19jZGVjbCBEaXNwbGF5R2VuZXJpY0Vycm9yKGNsYXNzIE9XTklOR1dORCBjb25zdCAmIF9fcHRyNjQsbG9uZyxsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsZW51bSBNU0dfU0VWRVJJVFkpDQorP0Rpc3BsYXlHZW5lcmljRXJyb3JAQFlBSUFFQlZPV05JTkdXTkRAQEpKUEVCRzFXNE1TR19TRVZFUklUWUBAQFoNCis7IHVuc2lnbmVkIGludCBfX2NkZWNsIERpc3BsYXlHZW5lcmljRXJyb3IoY2xhc3MgT1dOSU5HV05EIGNvbnN0ICYgX19wdHI2NCxsb25nLGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGVudW0gTVNHX1NFVkVSSVRZKQ0KKz9EaXNwbGF5R2VuZXJpY0Vycm9yQEBZQUlBRUJWT1dOSU5HV05EQEBKSlBFQkdXNE1TR19TRVZFUklUWUBAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBTUElOX1NMRV9OVU06OkRpc3BsYXlOdW0odW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9EaXNwbGF5TnVtQFNQSU5fU0xFX05VTUBAQUVBQVhLQFoNCis7IHB1YmxpYzogc3RhdGljIF9faW50NjQgX19jZGVjbCBESUFMT0dfV0lORE9XOjpEbGdQcm9jKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBfX2ludDY0LF9faW50NjQpDQorP0RsZ1Byb2NARElBTE9HX1dJTkRPV0BAU0FfSlBFQVVIV05EX19AQElfS19KQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgU0VUX0NPTlRST0w6OkRvQWRkKHZvaWQpIF9fcHRyNjQNCis/RG9BZGRAU0VUX0NPTlRST0xAQFVFQUFKWFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBTRVRfQ09OVFJPTDo6RG9BZGRPclJlbW92ZShjbGFzcyBMSVNUQk9YICogX19wdHI2NCxjbGFzcyBMSVNUQk9YICogX19wdHI2NCkgX19wdHI2NA0KKz9Eb0FkZE9yUmVtb3ZlQFNFVF9DT05UUk9MQEBBRUFBSlBFQVZMSVNUQk9YQEAwQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1BJTl9HUk9VUDo6RG9BcnJvd0NvbW1hbmQodW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP0RvQXJyb3dDb21tYW5kQFNQSU5fR1JPVVBAQFFFQUFISUdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6RG9CYW5CdXR0b24odm9pZCkgX19wdHI2NA0KKz9Eb0JhbkJ1dHRvbkBMT0dPTl9IT1VSU19DT05UUk9MQEBRRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6RG9CdXR0b25DbGljayhpbnQpIF9fcHRyNjQNCis/RG9CdXR0b25DbGlja0BMT0dPTl9IT1VSU19DT05UUk9MQEBBRUFBWEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExPR09OX0hPVVJTX0NPTlRST0w6OkRvQnV0dG9uRG93blZpc3VhbHModm9pZCkgX19wdHI2NA0KKz9Eb0J1dHRvbkRvd25WaXN1YWxzQExPR09OX0hPVVJTX0NPTlRST0xAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpEb0J1dHRvblVwVmlzdWFscyhpbnQpIF9fcHRyNjQNCis/RG9CdXR0b25VcFZpc3VhbHNATE9HT05fSE9VUlNfQ09OVFJPTEBAQUVBQVhIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgRElTUEFUQ0hFUjo6RG9DaGFyKGNsYXNzIENIQVJfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0RvQ2hhckBESVNQQVRDSEVSQEBRRUFBSEFFQlZDSEFSX0VWRU5UQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTUElOX0dST1VQOjpEb0NoYXIoY2xhc3MgQ0hBUl9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RG9DaGFyQFNQSU5fR1JPVVBAQFFFQUFIQUVCVkNIQVJfRVZFTlRAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNQSU5fR1JPVVA6OkRvTmV3Rm9jdXMoY2xhc3MgU1BJTl9JVEVNICogX19wdHI2NCkgX19wdHI2NA0KKz9Eb05ld0ZvY3VzQFNQSU5fR1JPVVBAQFFFQUFIUEVBVlNQSU5fSVRFTUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0FOQ0VMX1RBU0tfRElBTE9HOjpEb09uZUl0ZW0odW5zaWduZWQgX19pbnQ2NCxpbnQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RG9PbmVJdGVtQENBTkNFTF9UQVNLX0RJQUxPR0BATUVBQUpfS1BFQUgxUEVBSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpEb1Blcm1pdEJ1dHRvbih2b2lkKSBfX3B0cjY0DQorP0RvUGVybWl0QnV0dG9uQExPR09OX0hPVVJTX0NPTlRST0xAQFFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgU0VUX0NPTlRST0w6OkRvUmVtb3ZlKHZvaWQpIF9fcHRyNjQNCis/RG9SZW1vdmVAU0VUX0NPTlRST0xAQFVFQUFKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIE5UX0ZJTkRfQUNDT1VOVF9ESUFMT0c6OkRvU2VhcmNoKHZvaWQpIF9fcHRyNjQNCis/RG9TZWFyY2hATlRfRklORF9BQ0NPVU5UX0RJQUxPR0BASUVBQUpYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBESVNQQVRDSEVSOjpEb1VzZXJNZXNzYWdlKGNsYXNzIEVWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Eb1VzZXJNZXNzYWdlQERJU1BBVENIRVJAQFFFQUFIQUVCVkVWRU5UQEBAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6RHJhd0FsbEJ1dHRvbnMoY2xhc3MgUEFJTlRfRElTUExBWV9DT05URVhUICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9EcmF3QWxsQnV0dG9uc0BMT0dPTl9IT1VSU19DT05UUk9MQEBBRUJBSEFFQVZQQUlOVF9ESVNQTEFZX0NPTlRFWFRAQEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpEcmF3QmFja2dyb3VuZChjbGFzcyBQQUlOVF9ESVNQTEFZX0NPTlRFWFQgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0RyYXdCYWNrZ3JvdW5kQExPR09OX0hPVVJTX0NPTlRST0xAQEFFQkFIQUVBVlBBSU5UX0RJU1BMQVlfQ09OVEVYVEBAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpEcmF3Q3VycmVudFNlbGVjdGlvbihjbGFzcyBESVNQTEFZX0NPTlRFWFQgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0RyYXdDdXJyZW50U2VsZWN0aW9uQExPR09OX0hPVVJTX0NPTlRST0xAQEFFQkFYQUVCVkRJU1BMQVlfQ09OVEVYVEBAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpEcmF3Rm9jdXNPbkNlbGwoY2xhc3MgRElTUExBWV9DT05URVhUIGNvbnN0ICYgX19wdHI2NCxpbnQpY29uc3QgIF9fcHRyNjQNCis/RHJhd0ZvY3VzT25DZWxsQExPR09OX0hPVVJTX0NPTlRST0xAQEFFQkFYQUVCVkRJU1BMQVlfQ09OVEVYVEBASEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6RHJhd0ZvY3VzT25Db3JuZXJCdXR0b24oY2xhc3MgRElTUExBWV9DT05URVhUIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9EcmF3Rm9jdXNPbkNvcm5lckJ1dHRvbkBMT0dPTl9IT1VSU19DT05UUk9MQEBBRUJBWEFFQlZESVNQTEFZX0NPTlRFWFRAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6RHJhd0ZvY3VzT25EYXlCdXR0b24oY2xhc3MgRElTUExBWV9DT05URVhUIGNvbnN0ICYgX19wdHI2NCxpbnQpY29uc3QgIF9fcHRyNjQNCis/RHJhd0ZvY3VzT25EYXlCdXR0b25ATE9HT05fSE9VUlNfQ09OVFJPTEBAQUVCQVhBRUJWRElTUExBWV9DT05URVhUQEBIQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpEcmF3Rm9jdXNPbkhvdXJCdXR0b24oY2xhc3MgRElTUExBWV9DT05URVhUIGNvbnN0ICYgX19wdHI2NCxpbnQpY29uc3QgIF9fcHRyNjQNCis/RHJhd0ZvY3VzT25Ib3VyQnV0dG9uQExPR09OX0hPVVJTX0NPTlRST0xAQEFFQkFYQUVCVkRJU1BMQVlfQ09OVEVYVEBASEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBERVZJQ0VfQ09OVEVYVDo6RHJhd0ZvY3VzUmVjdChzdHJ1Y3QgdGFnUkVDVCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RHJhd0ZvY3VzUmVjdEBERVZJQ0VfQ09OVEVYVEBAUUVCQVhQRUJVdGFnUkVDVEBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIEZPQ1VTX0NIRUNLQk9YOjpEcmF3Rm9jdXNSZWN0KGNsYXNzIERFVklDRV9DT05URVhUICogX19wdHI2NCxzdHJ1Y3QgdGFnUkVDVCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0RyYXdGb2N1c1JlY3RARk9DVVNfQ0hFQ0tCT1hAQElFQUFYUEVBVkRFVklDRV9DT05URVhUQEBQRUFVdGFnUkVDVEBASEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6RHJhd0ZvY3VzU29tZXdoZXJlKGNsYXNzIERJU1BMQVlfQ09OVEVYVCBjb25zdCAmIF9fcHRyNjQsaW50KWNvbnN0ICBfX3B0cjY0DQorP0RyYXdGb2N1c1NvbWV3aGVyZUBMT0dPTl9IT1VSU19DT05UUk9MQEBBRUJBWEFFQlZESVNQTEFZX0NPTlRFWFRAQEhAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6RHJhd0dyaWRTZXR0aW5nKGNsYXNzIFBBSU5UX0RJU1BMQVlfQ09OVEVYVCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RHJhd0dyaWRTZXR0aW5nQExPR09OX0hPVVJTX0NPTlRST0xAQEFFQkFIQUVBVlBBSU5UX0RJU1BMQVlfQ09OVEVYVEBAQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIExPR09OX0hPVVJTX0NPTlRST0w6OkRyYXdHcmlkV2lyZXMoY2xhc3MgUEFJTlRfRElTUExBWV9DT05URVhUICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9EcmF3R3JpZFdpcmVzQExPR09OX0hPVVJTX0NPTlRST0xAQEFFQkFIQUVBVlBBSU5UX0RJU1BMQVlfQ09OVEVYVEBAQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIEFQUF9XSU5ET1c6OkRyYXdJY29uKHZvaWQpIF9fcHRyNjQNCis/RHJhd0ljb25AQVBQX1dJTkRPV0BAQUVBQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQVBQX1dJTkRPVzo6RHJhd01lbnVCYXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9EcmF3TWVudUJhckBBUFBfV0lORE9XQEBRRUJBSlhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6RHJhd09uZUNvcm5lckJ1dHRvbihjbGFzcyBQQUlOVF9ESVNQTEFZX0NPTlRFWFQgJiBfX3B0cjY0LGNsYXNzIFhZUkVDVCBjb25zdCAmIF9fcHRyNjQsaW50LHN0cnVjdCBIQlJVU0hfXyAqIF9fcHRyNjQsc3RydWN0IEhQRU5fXyAqIF9fcHRyNjQsc3RydWN0IEhQRU5fXyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RHJhd09uZUNvcm5lckJ1dHRvbkBMT0dPTl9IT1VSU19DT05UUk9MQEBBRUJBWEFFQVZQQUlOVF9ESVNQTEFZX0NPTlRFWFRAQEFFQlZYWVJFQ1RAQEhQRUFVSEJSVVNIX19AQFBFQVVIUEVOX19AQDNAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6RHJhd09uZURheUJhcihjbGFzcyBQQUlOVF9ESVNQTEFZX0NPTlRFWFQgJiBfX3B0cjY0LGludCxpbnQsaW50LHN0cnVjdCBIQlJVU0hfXyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RHJhd09uZURheUJhckBMT0dPTl9IT1VSU19DT05UUk9MQEBBRUJBSEFFQVZQQUlOVF9ESVNQTEFZX0NPTlRFWFRAQEhISFBFQVVIQlJVU0hfX0BAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpEcmF3T25lRmxhdEJ1dHRvbihjbGFzcyBQQUlOVF9ESVNQTEFZX0NPTlRFWFQgJiBfX3B0cjY0LGNsYXNzIFhZUkVDVCBjb25zdCAmIF9fcHRyNjQsaW50LHN0cnVjdCBIQlJVU0hfXyAqIF9fcHRyNjQsc3RydWN0IEhQRU5fXyAqIF9fcHRyNjQsc3RydWN0IEhQRU5fXyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RHJhd09uZUZsYXRCdXR0b25ATE9HT05fSE9VUlNfQ09OVFJPTEBAQUVCQVhBRUFWUEFJTlRfRElTUExBWV9DT05URVhUQEBBRUJWWFlSRUNUQEBIUEVBVUhCUlVTSF9fQEBQRUFVSFBFTl9fQEAzQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIERFVklDRV9DT05URVhUOjpEcmF3UmVjdChzdHJ1Y3QgdGFnUkVDVCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RHJhd1JlY3RAREVWSUNFX0NPTlRFWFRAQFFFQkFYUEVCVXRhZ1JFQ1RAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6RHJhd1NlbGVjdGlvbk9uQ2VsbChjbGFzcyBESVNQTEFZX0NPTlRFWFQgY29uc3QgJiBfX3B0cjY0LGludCljb25zdCAgX19wdHI2NA0KKz9EcmF3U2VsZWN0aW9uT25DZWxsQExPR09OX0hPVVJTX0NPTlRST0xAQEFFQkFYQUVCVkRJU1BMQVlfQ09OVEVYVEBASEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6RHJhd1NlbGVjdGlvbk9uQ2VsbHMoY2xhc3MgRElTUExBWV9DT05URVhUIGNvbnN0ICYgX19wdHI2NCxpbnQsaW50KWNvbnN0ICBfX3B0cjY0DQorP0RyYXdTZWxlY3Rpb25PbkNlbGxzQExPR09OX0hPVVJTX0NPTlRST0xAQEFFQkFYQUVCVkRJU1BMQVlfQ09OVEVYVEBASEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBERVZJQ0VfQ09OVEVYVDo6RHJhd1RleHRXKGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LHN0cnVjdCB0YWdSRUNUICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/RHJhd1RleHRXQERFVklDRV9DT05URVhUQEBRRUFBSEFFQlZOTFNfU1RSQEBQRUFVdGFnUkVDVEBASUBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBQT1BVUDo6RW1lcmdlbmN5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RW1lcmdlbmN5QFBPUFVQQEBBRUJBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBBVURJVF9DSEVDS0JPWEVTOjpFbmFibGUoaW50LGludCkgX19wdHI2NA0KKz9FbmFibGVAQVVESVRfQ0hFQ0tCT1hFU0BAUUVBQVhISEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBNQUdJQ19HUk9VUDo6RW5hYmxlKGludCkgX19wdHI2NA0KKz9FbmFibGVATUFHSUNfR1JPVVBAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBNRU5VSVRFTTo6RW5hYmxlKGludCkgX19wdHI2NA0KKz9FbmFibGVATUVOVUlURU1AQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBSQURJT19HUk9VUDo6RW5hYmxlKGludCkgX19wdHI2NA0KKz9FbmFibGVAUkFESU9fR1JPVVBAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTRVRfT0ZfQVVESVRfQ0FURUdPUklFUzo6RW5hYmxlKGludCxpbnQpIF9fcHRyNjQNCis/RW5hYmxlQFNFVF9PRl9BVURJVF9DQVRFR09SSUVTQEBRRUFBWEhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFRJTUVSX0JBU0U6OkVuYWJsZShpbnQpIF9fcHRyNjQNCis/RW5hYmxlQFRJTUVSX0JBU0VAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXSU5ET1c6OkVuYWJsZShpbnQpIF9fcHRyNjQNCis/RW5hYmxlQFdJTkRPV0BAUUVBQVhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0c6OkVuYWJsZUJyb3dzaW5nKGludCkgX19wdHI2NA0KKz9FbmFibGVCcm93c2luZ0BOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBJRUFBWEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgU0VUX0NPTlRST0w6OkVuYWJsZUJ1dHRvbnModm9pZCkgX19wdHI2NA0KKz9FbmFibGVCdXR0b25zQFNFVF9DT05UUk9MQEBJRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIE1FTlVfQkFTRTo6RW5hYmxlSXRlbSh1bnNpZ25lZCBpbnQsaW50LHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9FbmFibGVJdGVtQE1FTlVfQkFTRUBAUUVCQUlJSElAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU0VUX0NPTlRST0w6OkVuYWJsZU1vdmVzKGludCkgX19wdHI2NA0KKz9FbmFibGVNb3Zlc0BTRVRfQ09OVFJPTEBAUUVBQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFRSSVNUQVRFOjpFbmFibGVUaGlyZFN0YXRlKGludCkgX19wdHI2NA0KKz9FbmFibGVUaGlyZFN0YXRlQFRSSVNUQVRFQEBRRUFBWEhAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIEJMVElNUDo6RW50ZXJCTFRDcml0U2VjdCh2b2lkKQ0KKz9FbnRlckJMVENyaXRTZWN0QEJMVElNUEBAU0FKWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBCTFRJTVA6OkVudGVyUmVzb3VyY2VDcml0U2VjdCh2b2lkKQ0KKz9FbnRlclJlc291cmNlQ3JpdFNlY3RAQkxUSU1QQEBTQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTUFTS19NQVA6OkVudW1CaXRzKGNsYXNzIEJJVEZJRUxEICogX19wdHI2NCxpbnQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0VudW1CaXRzQE1BU0tfTUFQQEBRRUFBSlBFQVZCSVRGSUVMREBAUEVBSDFIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE1BU0tfTUFQOjpFbnVtU3RyaW5ncyhjbGFzcyBOTFNfU1RSICogX19wdHI2NCxpbnQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0VudW1TdHJpbmdzQE1BU0tfTUFQQEBRRUFBSlBFQVZOTFNfU1RSQEBQRUFIMUhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgRk9DVVNfQ0hFQ0tCT1g6OkVyYXNlRm9jdXNSZWN0KGNsYXNzIERFVklDRV9DT05URVhUICogX19wdHI2NCxzdHJ1Y3QgdGFnUkVDVCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RXJhc2VGb2N1c1JlY3RARk9DVVNfQ0hFQ0tCT1hAQElFQUFYUEVBVkRFVklDRV9DT05URVhUQEBQRUFVdGFnUkVDVEBAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpFcmFzZVNlbGVjdGlvbihjbGFzcyBESVNQTEFZX0NPTlRFWFQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0VyYXNlU2VsZWN0aW9uQExPR09OX0hPVVJTX0NPTlRST0xAQEFFQUFYQUVCVkRJU1BMQVlfQ09OVEVYVEBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFdJTjMyX1RIUkVBRDo6RXhpdCh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/RXhpdEBXSU4zMl9USFJFQURAQElFQUFYSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBET01BSU5fRklMTF9USFJFQUQ6OkV4aXRUaHJlYWQodm9pZCkgX19wdHI2NA0KKz9FeGl0VGhyZWFkQERPTUFJTl9GSUxMX1RIUkVBREBAUUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgRk9DVVNETEdfREFUQV9USFJFQUQ6OkV4aXRUaHJlYWQodm9pZCkgX19wdHI2NA0KKz9FeGl0VGhyZWFkQEZPQ1VTRExHX0RBVEFfVEhSRUFEQEBRRUFBSlhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBISUVSX0xJU1RCT1g6OkV4cGFuZENoaWxkcmVuKGludCxjbGFzcyBISUVSX0xCSSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RXhwYW5kQ2hpbGRyZW5ASElFUl9MSVNUQk9YQEBBRUFBSEhQRUFWSElFUl9MQklAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMTV9PTExCOjpFeHBhbmREb21haW4oaW50KSBfX3B0cjY0DQorP0V4cGFuZERvbWFpbkBMTV9PTExCQEBRRUFBSkhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTE1fT0xMQjo6RXhwYW5kRG9tYWluKHZvaWQpIF9fcHRyNjQNCis/RXhwYW5kRG9tYWluQExNX09MTEJAQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEhJRVJfTElTVEJPWDo6RXhwYW5kSXRlbShpbnQpIF9fcHRyNjQNCis/RXhwYW5kSXRlbUBISUVSX0xJU1RCT1hAQFFFQUFKSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBISUVSX0xJU1RCT1g6OkV4cGFuZEl0ZW0oY2xhc3MgSElFUl9MQkkgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0V4cGFuZEl0ZW1ASElFUl9MSVNUQk9YQEBRRUFBSlBFQVZISUVSX0xCSUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgREVWSUNFX0NPTlRFWFQ6OkV4dFRleHRPdXRXKGludCxpbnQsdW5zaWduZWQgaW50LHN0cnVjdCB0YWdSRUNUIGNvbnN0ICogX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCxpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0V4dFRleHRPdXRXQERFVklDRV9DT05URVhUQEBRRUFBSEhISVBFQlV0YWdSRUNUQEBBRUJWTkxTX1NUUkBAUEVBSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIERFVklDRV9DT05URVhUOjpFeHRUZXh0T3V0VyhpbnQsaW50LHVuc2lnbmVkIGludCxzdHJ1Y3QgdGFnUkVDVCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCxpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0V4dFRleHRPdXRXQERFVklDRV9DT05URVhUQEBRRUFBSEhISVBFQlV0YWdSRUNUQEBQRUJHSFBFQUhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTlRfR1JPVVBfQlJPV1NFUl9MQjo6RmlsbCh2b2lkICogX19wdHI2NCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICogX19wdHI2NCxjbGFzcyBMU0FfUE9MSUNZICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmlsbEBOVF9HUk9VUF9CUk9XU0VSX0xCQEBRRUFBSlBFQlFFQVhLUEVCVlNBTV9ET01BSU5AQFBFQVZMU0FfUE9MSUNZQEBQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE9QRU5fTEJPWF9CQVNFOjpGaWxsKHZvaWQpIF9fcHRyNjQNCis/RmlsbEBPUEVOX0xCT1hfQkFTRUBAUUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVVNFUl9CUk9XU0VSX0xCSV9DQUNIRTo6RmlsbChjbGFzcyBBRE1JTl9BVVRIT1JJVFkgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGludCxpbnQsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9GaWxsQFVTRVJfQlJPV1NFUl9MQklfQ0FDSEVAQFFFQUFKUEVBVkFETUlOX0FVVEhPUklUWUBAUEVCR0tISFBFQUhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTE1fT0xMQjo6RmlsbEFsbEluZm8oY2xhc3MgQlJPV1NFX0RPTUFJTl9FTlVNICogX19wdHI2NCxjbGFzcyBTRVJWRVIxX0VOVU0gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9GaWxsQWxsSW5mb0BMTV9PTExCQEBRRUFBWFBFQVZCUk9XU0VfRE9NQUlOX0VOVU1AQFBFQVZTRVJWRVIxX0VOVU1AQFBFQkdAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIE1TR1BPUFVQX0RJQUxPRzo6RmlsbEJ1dHRvbkFycmF5KHVuc2lnbmVkIGludCxpbnQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmlsbEJ1dHRvbkFycmF5QE1TR1BPUFVQX0RJQUxPR0BAQUVBQVhJUEVBSDBAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIERFVklDRV9DT01CTzo6RmlsbERldmljZXModm9pZCkgX19wdHI2NA0KKz9GaWxsRGV2aWNlc0BERVZJQ0VfQ09NQk9AQEFFQUFKWFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBMTV9PTExCOjpGaWxsRG9tYWlucyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9GaWxsRG9tYWluc0BMTV9PTExCQEBBRUFBSktQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5UX0dST1VQX0JST1dTRVJfTEI6OkZpbGxHbG9iYWxHcm91cE1lbWJlcnMoY2xhc3MgT1NfU0lEIGNvbnN0ICogX19wdHI2NCxjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICogX19wdHI2NCxjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICogX19wdHI2NCxjbGFzcyBMU0FfUE9MSUNZICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmlsbEdsb2JhbEdyb3VwTWVtYmVyc0BOVF9HUk9VUF9CUk9XU0VSX0xCQEBRRUFBSlBFQlZPU19TSURAQFBFQlZTQU1fRE9NQUlOQEAxUEVBVkxTQV9QT0xJQ1lAQFBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTlRfR1JPVVBfQlJPV1NFUl9MQjo6RmlsbExvY2FsR3JvdXBNZW1iZXJzKGNsYXNzIE9TX1NJRCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgU0FNX0RPTUFJTiBjb25zdCAqIF9fcHRyNjQsY2xhc3MgU0FNX0RPTUFJTiBjb25zdCAqIF9fcHRyNjQsY2xhc3MgTFNBX1BPTElDWSAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbGxMb2NhbEdyb3VwTWVtYmVyc0BOVF9HUk9VUF9CUk9XU0VSX0xCQEBRRUFBSlBFQlZPU19TSURAQFBFQlZTQU1fRE9NQUlOQEAxUEVBVkxTQV9QT0xJQ1lAQFBFQkdAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIExNX09MTEI6OkZpbGxTZXJ2ZXJzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbGxTZXJ2ZXJzQExNX09MTEJAQEFFQUFKUEVCR1BFQUlAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIERJQUxPR19XSU5ET1c6OkZpbHRlck1lc3NhZ2Uoc3RydWN0IHRhZ01TRyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmlsdGVyTWVzc2FnZUBESUFMT0dfV0lORE9XQEBNRUFBSFBFQVV0YWdNU0dAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgSEFTX01FU1NBR0VfUFVNUDo6RmlsdGVyTWVzc2FnZShzdHJ1Y3QgdGFnTVNHICogX19wdHI2NCkgX19wdHI2NA0KKz9GaWx0ZXJNZXNzYWdlQEhBU19NRVNTQUdFX1BVTVBAQE1FQUFIUEVBVXRhZ01TR0BAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQVJSQVlfTElTVF9DT05UUk9MVkFMX0NJRF9QQUlSOjpGaW5kKGNsYXNzIENPTlRST0xWQUxfQ0lEX1BBSVIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0ZpbmRAQVJSQVlfTElTVF9DT05UUk9MVkFMX0NJRF9QQUlSQEBRRUJBSEFFQlZDT05UUk9MVkFMX0NJRF9QQUlSQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgRElBTE9HX1dJTkRPVyAqIF9fcHRyNjQgX19jZGVjbCBIV05EX0RMR1BUUl9DQUNIRTo6RmluZChzdHJ1Y3QgSFdORF9fICogX19wdHI2NCkNCis/RmluZEBIV05EX0RMR1BUUl9DQUNIRUBAU0FQRUFWRElBTE9HX1dJTkRPV0BAUEVBVUhXTkRfX0BAQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGludCBfX2NkZWNsIE1BR0lDX0dST1VQOjpGaW5kQXNzb2NSYWRpb0J1dHRvbihjbGFzcyBDT05UUk9MX1ZBTFVFICogX19wdHI2NCkgX19wdHI2NA0KKz9GaW5kQXNzb2NSYWRpb0J1dHRvbkBNQUdJQ19HUk9VUEBAQUVBQUlQRUFWQ09OVFJPTF9WQUxVRUBAQFoNCis7IHB1YmxpYzogY2xhc3MgQlJPV1NFUl9ET01BSU4gKiBfX3B0cjY0IF9fY2RlY2wgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6RmluZERvbWFpbihjbGFzcyBPU19TSUQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmREb21haW5ATlRfVVNFUl9CUk9XU0VSX0RJQUxPR0BAUUVBQVBFQVZCUk9XU0VSX0RPTUFJTkBAUEVCVk9TX1NJREBAQFoNCis7IHB1YmxpYzogY2xhc3MgVUlfRVhUICogX19wdHI2NCBfX2NkZWNsIFVJX0VYVF9NR1I6OkZpbmRFeHRlbnNpb25CeURlbHRhKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RmluZEV4dGVuc2lvbkJ5RGVsdGFAVUlfRVhUX01HUkBAUUVBQVBFQVZVSV9FWFRAQEtAWg0KKzsgcHVibGljOiBjbGFzcyBVSV9FWFQgKiBfX3B0cjY0IF9fY2RlY2wgVUlfRVhUX01HUjo6RmluZEV4dGVuc2lvbkJ5TmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmluZEV4dGVuc2lvbkJ5TmFtZUBVSV9FWFRfTUdSQEBRRUFBUEVBVlVJX0VYVEBAUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJMVF9MSVNUQk9YOjpGaW5kSXRlbShjbGFzcyBMQkkgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0ZpbmRJdGVtQEJMVF9MSVNUQk9YQEBRRUJBSEFFQlZMQklAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9VVExJTkVfTElTVEJPWDo6RmluZEl0ZW0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9GaW5kSXRlbUBPVVRMSU5FX0xJU1RCT1hAQFFFQkFIUEVCRzBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJJTkdfTElTVF9DT05UUk9MOjpGaW5kSXRlbSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RmluZEl0ZW1AU1RSSU5HX0xJU1RfQ09OVFJPTEBAUUVCQUhQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSSU5HX0xJU1RfQ09OVFJPTDo6RmluZEl0ZW0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCljb25zdCAgX19wdHI2NA0KKz9GaW5kSXRlbUBTVFJJTkdfTElTVF9DT05UUk9MQEBRRUJBSFBFQkdIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RSSU5HX0xJU1RfQ09OVFJPTDo6RmluZEl0ZW1FeGFjdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RmluZEl0ZW1FeGFjdEBTVFJJTkdfTElTVF9DT05UUk9MQEBRRUJBSFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJJTkdfTElTVF9DT05UUk9MOjpGaW5kSXRlbUV4YWN0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpY29uc3QgIF9fcHRyNjQNCis/RmluZEl0ZW1FeGFjdEBTVFJJTkdfTElTVF9DT05UUk9MQEBRRUJBSFBFQkdIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIERFVklDRV9DT05URVhUOjpGcmFtZVJlY3Qoc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBIQlJVU0hfXyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RnJhbWVSZWN0QERFVklDRV9DT05URVhUQEBRRUJBWFBFQlV0YWdSRUNUQEBQRUFVSEJSVVNIX19AQEBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBTUElOX1NMRV9TVFI6OkdldEFjY0tleShjbGFzcyBOTFNfU1RSICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRBY2NLZXlAU1BJTl9TTEVfU1RSQEBFRUFBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBTUElOX1NMVF9TRVBBUkFUT1I6OkdldEFjY0tleShjbGFzcyBOTFNfU1RSICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRBY2NLZXlAU1BJTl9TTFRfU0VQQVJBVE9SQEBNRUFBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIE1TR19ESUFMT0dfQkFTRTo6R2V0QW5kU2VuZFRleHQodm9pZCkgX19wdHI2NA0KKz9HZXRBbmRTZW5kVGV4dEBNU0dfRElBTE9HX0JBU0VAQEFFQUFKWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIERFVklDRV9DT05URVhUOjpHZXRCa0NvbG9yKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0QmtDb2xvckBERVZJQ0VfQ09OVEVYVEBAUUVCQUtYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQlJPV1NFUl9ET01BSU46OkdldERvbWFpbkluZm8oY2xhc3MgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRyAqIF9fcHRyNjQsY2xhc3MgQURNSU5fQVVUSE9SSVRZIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREb21haW5JbmZvQEJST1dTRVJfRE9NQUlOQEBRRUFBSlBFQVZOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBQRUJWQURNSU5fQVVUSE9SSVRZQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVUlfRE9NQUlOOjpHZXRJbmZvKHZvaWQpIF9fcHRyNjQNCis/R2V0SW5mb0BVSV9ET01BSU5AQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEFQUF9XSU5ET1c6OkdldFBsYWNlbWVudChzdHJ1Y3QgdGFnV0lORE9XUExBQ0VNRU5UICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXRQbGFjZW1lbnRAQVBQX1dJTkRPV0BAUUVCQUpQRUFVdGFnV0lORE9XUExBQ0VNRU5UQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQlJPV1NFUl9ET01BSU46OkdldFF1YWxpZmllZERvbWFpbk5hbWUoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UXVhbGlmaWVkRG9tYWluTmFtZUBCUk9XU0VSX0RPTUFJTkBAUUVBQUpQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEJST1dTRVJfRE9NQUlOX0xCSV9QQjo6R2V0UXVhbGlmaWVkRG9tYWluTmFtZShjbGFzcyBOTFNfU1RSICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRRdWFsaWZpZWREb21haW5OYW1lQEJST1dTRVJfRE9NQUlOX0xCSV9QQkBAUUVBQUpQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIERFVklDRV9DT05URVhUOjpHZXRUZXh0Q29sb3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRUZXh0Q29sb3JAREVWSUNFX0NPTlRFWFRAQFFFQkFLWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIERJU1BMQVlfTUFQOjpHZXRUcmFuc0NvbG9ySW5kZXgodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldFRyYW5zQ29sb3JJbmRleEBESVNQTEFZX01BUEBAQUVCQUhQRUFLSEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpHZXRUcnVzdGVkRG9tYWluTGlzdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQlJPV1NFUl9ET01BSU4gKiBfX3B0cjY0ICogX19wdHI2NCxjbGFzcyBCUk9XU0VSX0RPTUFJTl9DQiAqIF9fcHRyNjQsY2xhc3MgQURNSU5fQVVUSE9SSVRZIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRUcnVzdGVkRG9tYWluTGlzdEBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBJRUFBSlBFQkdQRUFQRUFWQlJPV1NFUl9ET01BSU5AQFBFQVZCUk9XU0VSX0RPTUFJTl9DQkBAUEVCVkFETUlOX0FVVEhPUklUWUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU0VUX0NPTlRST0w6OkhhbmRsZU9uTE1vdXNlQnV0dG9uRG93bihjbGFzcyBMSVNUQk9YICogX19wdHI2NCxjbGFzcyBDVVNUT01fQ09OVFJPTCAqIF9fcHRyNjQsY2xhc3MgTU9VU0VfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0hhbmRsZU9uTE1vdXNlQnV0dG9uRG93bkBTRVRfQ09OVFJPTEBAUUVBQUhQRUFWTElTVEJPWEBAUEVBVkNVU1RPTV9DT05UUk9MQEBBRUJWTU9VU0VfRVZFTlRAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNFVF9DT05UUk9MOjpIYW5kbGVPbkxNb3VzZUJ1dHRvblVwKGNsYXNzIExJU1RCT1ggKiBfX3B0cjY0LGNsYXNzIENVU1RPTV9DT05UUk9MICogX19wdHI2NCxjbGFzcyBNT1VTRV9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/SGFuZGxlT25MTW91c2VCdXR0b25VcEBTRVRfQ09OVFJPTEBAUUVBQUhQRUFWTElTVEJPWEBAUEVBVkNVU1RPTV9DT05UUk9MQEBBRUJWTU9VU0VfRVZFTlRAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNFVF9DT05UUk9MOjpIYW5kbGVPbk1vdXNlTW92ZShjbGFzcyBMSVNUQk9YICogX19wdHI2NCxjbGFzcyBNT1VTRV9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/SGFuZGxlT25Nb3VzZU1vdmVAU0VUX0NPTlRST0xAQFFFQUFIUEVBVkxJU1RCT1hAQEFFQlZNT1VTRV9FVkVOVEBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSElFUl9MQkk6Okhhc0NoaWxkcmVuKHZvaWQpIF9fcHRyNjQNCis/SGFzQ2hpbGRyZW5ASElFUl9MQklAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV0lORE9XOjpIYXNGb2N1cyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0hhc0ZvY3VzQFdJTkRPV0BAUUVCQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgRElTUEFUQ0hFUiAqIF9fcHRyNjQgX19jZGVjbCBBU1NPQ0hXTkRESVNQOjpId25kVG9QZGlzcGF0Y2goc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQpDQorP0h3bmRUb1BkaXNwYXRjaEBBU1NPQ0hXTkRESVNQQEBTQVBFQVZESVNQQVRDSEVSQEBQRUFVSFdORF9fQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgRElBTE9HX1dJTkRPVyAqIF9fcHRyNjQgX19jZGVjbCBBU1NPQ0hXTkRQRExHOjpId25kVG9QZGxnKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0KQ0KKz9Id25kVG9QZGxnQEFTU09DSFdORFBETEdAQFNBUEVBVkRJQUxPR19XSU5ET1dAQFBFQVVIV05EX19AQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBDTElFTlRfV0lORE9XICogX19wdHI2NCBfX2NkZWNsIEFTU09DSFdORFBXTkQ6Okh3bmRUb1B3bmQoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQpDQorP0h3bmRUb1B3bmRAQVNTT0NIV05EUFdOREBAU0FQRUFWQ0xJRU5UX1dJTkRPV0BAUEVBVUhXTkRfX0BAQFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDTElFTlRfV0lORE9XICogX19wdHI2NCBfX2NkZWNsIENMSUVOVF9XSU5ET1c6Okh3bmRUb1B3bmQoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQpDQorP0h3bmRUb1B3bmRAQ0xJRU5UX1dJTkRPV0BAQ0FQRUFWMUBQRUFVSFdORF9fQEBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIERJQUxPR19XSU5ET1cgKiBfX3B0cjY0IF9fY2RlY2wgRElBTE9HX1dJTkRPVzo6SHduZFRvUHduZChzdHJ1Y3QgSFdORF9fICogX19wdHI2NCkNCis/SHduZFRvUHduZEBESUFMT0dfV0lORE9XQEBDQVBFQVYxQFBFQVVIV05EX19AQEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjbGFzcyBESVNQQVRDSEVSICogX19wdHI2NCBfX2NkZWNsIERJU1BBVENIRVI6Okh3bmRUb1B3bmQoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQpDQorP0h3bmRUb1B3bmRARElTUEFUQ0hFUkBAS0FQRUFWMUBQRUFVSFdORF9fQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBBU1NPQ0hXTkRUSElTOjpId25kVG9UaGlzKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0KQ0KKz9Id25kVG9UaGlzQEFTU09DSFdORFRISVNAQFNBUEVBWFBFQVVIV05EX19AQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJBU0VfU0VUX0ZPQ1VTX0RMRzo6SW5SYXNNb2RlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SW5SYXNNb2RlQEJBU0VfU0VUX0ZPQ1VTX0RMR0BAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBYWVBPSU5UOjpJblJlY3QoY2xhc3MgWFlSRUNUIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9JblJlY3RAWFlQT0lOVEBAUUVCQUhBRUJWWFlSRUNUQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDT05UUk9MX1dJTkRPVzo6SW5kaWNhdGVFcnJvcihsb25nKSBfX3B0cjY0DQorP0luZGljYXRlRXJyb3JAQ09OVFJPTF9XSU5ET1dAQFVFQUFYSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNMRTo6SW5kaWNhdGVFcnJvcihsb25nKSBfX3B0cjY0DQorP0luZGljYXRlRXJyb3JAU0xFQEBVRUFBWEpAWg0KKzsgcHVibGljOiBjbGFzcyBYWVJFQ1QgJiBfX3B0cjY0IF9fY2RlY2wgWFlSRUNUOjpJbmZsYXRlKGludCxpbnQpIF9fcHRyNjQNCis/SW5mbGF0ZUBYWVJFQ1RAQFFFQUFBRUFWMUBISEBaDQorOyBwdWJsaWM6IGNsYXNzIFhZUkVDVCAmIF9fcHRyNjQgX19jZGVjbCBYWVJFQ1Q6OkluZmxhdGUoY2xhc3MgWFlESU1FTlNJT04pIF9fcHRyNjQNCis/SW5mbGF0ZUBYWVJFQ1RAQFFFQUFBRUFWMUBWWFlESU1FTlNJT05AQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQkFTRV9FTExJUFNJUzo6SW5pdCh2b2lkKQ0KKz9Jbml0QEJBU0VfRUxMSVBTSVNAQFNBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQkxUOjpJbml0KHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz9Jbml0QEJMVEBAU0FKUEVBVUhJTlNUQU5DRV9fQEBJSUlJQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBCTFRJTVA6OkluaXQodm9pZCkNCis/SW5pdEBCTFRJTVBAQFNBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQkxUX01BU1RFUl9USU1FUjo6SW5pdCh2b2lkKQ0KKz9Jbml0QEJMVF9NQVNURVJfVElNRVJAQFNBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ0xJRU5UX1dJTkRPVzo6SW5pdCh2b2lkKQ0KKz9Jbml0QENMSUVOVF9XSU5ET1dAQFNBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgUE9QVVA6OkluaXQodm9pZCkNCis/SW5pdEBQT1BVUEBAU0FKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNMRV9TVFJMQl9HUk9VUDo6SW5pdChjbGFzcyBTVFJMSVNUICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0QFNMRV9TVFJMQl9HUk9VUEBAUUVBQUpQRUFWU1RSTElTVEBAQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBXSU4zMl9GT05UX1BJQ0tFUjo6SW5pdENIT09TRUZPTlQoc3RydWN0IHRhZ0NIT09TRUZPTlRXICogX19wdHI2NCxzdHJ1Y3QgdGFnTE9HRk9OVFcgKiBfX3B0cjY0LHN0cnVjdCBIV05EX18gKiBfX3B0cjY0KQ0KKz9Jbml0Q0hPT1NFRk9OVEBXSU4zMl9GT05UX1BJQ0tFUkBAU0FYUEVBVXRhZ0NIT09TRUZPTlRXQEBQRUFVdGFnTE9HRk9OVFdAQFBFQVVIV05EX19AQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQkxUOjpJbml0RExMKHZvaWQpDQorP0luaXRETExAQkxUQEBTQUpYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgR0VUX0ZOQU1FX0JBU0VfRExHOjpJbml0aWFsT0ZOKHZvaWQpIF9fcHRyNjQNCis/SW5pdGlhbE9GTkBHRVRfRk5BTUVfQkFTRV9ETEdAQElFQUFYWFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBTUElOX1NMRV9TVFI6OkluaXRpYWxpemUobG9uZyxjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQFNQSU5fU0xFX1NUUkBAQUVBQUpKUEVBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgU1BJTl9TTEVfU1RSOjpJbml0aWFsaXplKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQgY29uc3QsY2xhc3MgT1dORVJfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBTUElOX1NMRV9TVFJAQEFFQUFKUUVBUEVCR1BFQVZPV05FUl9XSU5ET1dAQElAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIFNQSU5fU0xUX1NFUEFSQVRPUjo6SW5pdGlhbGl6ZSh2b2lkKSBfX3B0cjY0DQorP0luaXRpYWxpemVAU1BJTl9TTFRfU0VQQVJBVE9SQEBBRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBNRU5VX0JBU0U6Okluc2VydCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/SW5zZXJ0QE1FTlVfQkFTRUBAUUVCQUpQRUJHSUlJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE1FTlVfQkFTRTo6SW5zZXJ0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQsc3RydWN0IEhNRU5VX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9JbnNlcnRATUVOVV9CQVNFQEBRRUJBSlBFQkdJUEVBVUhNRU5VX19AQElAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBCTFRfTElTVEJPWDo6SW5zZXJ0SXRlbShpbnQsY2xhc3MgTEJJICogX19wdHI2NCkgX19wdHI2NA0KKz9JbnNlcnRJdGVtQEJMVF9MSVNUQk9YQEBRRUFBSEhQRUFWTEJJQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJJTkdfTElTVF9DT05UUk9MOjpJbnNlcnRJdGVtKGludCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9JbnNlcnRJdGVtQFNUUklOR19MSVNUX0NPTlRST0xAQFFFQUFISEFFQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJJTkdfTElTVF9DT05UUk9MOjpJbnNlcnRJdGVtKGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5zZXJ0SXRlbUBTVFJJTkdfTElTVF9DT05UUk9MQEBRRUFBSEhQRUJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgTElTVF9DT05UUk9MOjpJbnNlcnRJdGVtRGF0YShpbnQsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5zZXJ0SXRlbURhdGFATElTVF9DT05UUk9MQEBJRUFBSEhQRUFYQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5MU19TVFI6Okluc2VydFBhcmFtcyhjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9JbnNlcnRQYXJhbXNATkxTX1NUUkBAUUVBQUpBRUJWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTUVOVV9CQVNFOjpJbnNlcnRTZXBhcmF0b3IodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9JbnNlcnRTZXBhcmF0b3JATUVOVV9CQVNFQEBRRUJBSklJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEJMVF9NQVNURVJfVElNRVI6Okluc2VydFRpbWVyKGNsYXNzIFRJTUVSX0JBU0UgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luc2VydFRpbWVyQEJMVF9NQVNURVJfVElNRVJAQFFFQUFKUEVBVlRJTUVSX0JBU0VAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXSU5ET1c6OkludmFsaWRhdGUoY2xhc3MgWFlSRUNUIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9JbnZhbGlkYXRlQFdJTkRPV0BAUUVBQVhBRUJWWFlSRUNUQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV0lORE9XOjpJbnZhbGlkYXRlKGludCkgX19wdHI2NA0KKz9JbnZhbGlkYXRlQFdJTkRPV0BAUUVBQVhIQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpJbnZhbGlkYXRlQnV0dG9uKGludCkgX19wdHI2NA0KKz9JbnZhbGlkYXRlQnV0dG9uQExPR09OX0hPVVJTX0NPTlRST0xAQEFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBMSVNUQk9YOjpJbnZhbGlkYXRlSXRlbShpbnQsaW50KSBfX3B0cjY0DQorP0ludmFsaWRhdGVJdGVtQExJU1RCT1hAQFFFQUFYSEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIEhfU1BMSVRURVJfQkFSOjpJbnZlcnREcmFnQmFyKGNsYXNzIFhZUE9JTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0ludmVydERyYWdCYXJASF9TUExJVFRFUl9CQVJAQEFFQUFYQUVCVlhZUE9JTlRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBERVZJQ0VfQ09OVEVYVDo6SW52ZXJ0UmVjdChzdHJ1Y3QgdGFnUkVDVCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/SW52ZXJ0UmVjdEBERVZJQ0VfQ09OVEVYVEBAUUVCQVhQRUJVdGFnUkVDVEBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSU5UTF9QUk9GSUxFOjpJczI0SG91cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzMjRIb3VyQElOVExfUFJPRklMRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBBQ1RJVkFUSU9OX0VWRU5UOjpJc0FjdGl2YXRpbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0FjdGl2YXRpbmdAQUNUSVZBVElPTl9FVkVOVEBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTUElOX0dST1VQOjpJc0FjdGl2ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzQWN0aXZlQFNQSU5fR1JPVVBAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQVNTT0NIQ0ZJTEU6OklzQXNzb2NpYXRlZEhDKHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/SXNBc3NvY2lhdGVkSENAQVNTT0NIQ0ZJTEVAQFFFQkFIS0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIEhFQVBfQkFTRTo6SXNBdXRvUmVhZGp1c3Rpbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0F1dG9SZWFkanVzdGluZ0BIRUFQX0JBU0VAQElFQkFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6SXNCcm93c2luZ0VuYWJsZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0Jyb3dzaW5nRW5hYmxlZEBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBJRUJBSFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpJc0J1dHRvbkFDZWxsKGludCljb25zdCAgX19wdHI2NA0KKz9Jc0J1dHRvbkFDZWxsQExPR09OX0hPVVJTX0NPTlRST0xAQEFFQkFISEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1FTlVJVEVNOjpJc0NoZWNrZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0NoZWNrZWRATUVOVUlURU1AQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV0lORE9XOjpJc0NoaWxkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNDaGlsZEBXSU5ET1dAQFFFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIFdJTkRPVzo6SXNDbGllbnRHZW5lcmF0ZWRNZXNzYWdlKHZvaWQpDQorP0lzQ2xpZW50R2VuZXJhdGVkTWVzc2FnZUBXSU5ET1dAQFNBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIExJU1RfQ09OVFJPTDo6SXNDb21ibyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzQ29tYm9ATElTVF9DT05UUk9MQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFBST01QVF9BTkRfQ09OTkVDVDo6SXNDb25uZWN0ZWQodm9pZCkgX19wdHI2NA0KKz9Jc0Nvbm5lY3RlZEBQUk9NUFRfQU5EX0NPTk5FQ1RAQFFFQUFIWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIEJMVF9EQVRFX1NQSU5fR1JPVVA6OklzQ29uc3RydWN0aW9uRmFpbChjbGFzcyBDT05UUk9MX1dJTkRPVyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNDb25zdHJ1Y3Rpb25GYWlsQEJMVF9EQVRFX1NQSU5fR1JPVVBAQEFFQUFIUEVBVkNPTlRST0xfV0lORE9XQEBAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgQkxUX1RJTUVfU1BJTl9HUk9VUDo6SXNDb25zdHJ1Y3Rpb25GYWlsKGNsYXNzIENPTlRST0xfV0lORE9XICogX19wdHI2NCkgX19wdHI2NA0KKz9Jc0NvbnN0cnVjdGlvbkZhaWxAQkxUX1RJTUVfU1BJTl9HUk9VUEBAQUVBQUhQRUFWQ09OVFJPTF9XSU5ET1dAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElOVExfUFJPRklMRTo6SXNEYXlMWmVybyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRGF5TFplcm9ASU5UTF9QUk9GSUxFQEBRRUJBSFhaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGludCBfX2NkZWNsIEhJRVJfTEJJOjpJc0Rlc3Ryb3lhYmxlKHZvaWQpIF9fcHRyNjQNCis/SXNEZXN0cm95YWJsZUBISUVSX0xCSUBARUVBQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIExCSTo6SXNEZXN0cm95YWJsZSh2b2lkKSBfX3B0cjY0DQorP0lzRGVzdHJveWFibGVATEJJQEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0c6OklzRG9tYWluQ29tYm9Ecm9wcGVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNEb21haW5Db21ib0Ryb3BwZWRATlRfVVNFUl9CUk9XU0VSX0RJQUxPR0BASUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDT01CT0JPWDo6SXNEcm9wRG93bih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRHJvcERvd25AQ09NQk9CT1hAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ09NQk9CT1g6OklzRHJvcERvd25MaXN0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNEcm9wRG93bkxpc3RAQ09NQk9CT1hAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQkxUX0NPTUJPQk9YOjpJc0Ryb3BwZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0Ryb3BwZWRAQkxUX0NPTUJPQk9YQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFhZUkVDVDo6SXNFbXB0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRW1wdHlAWFlSRUNUQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1FTlVJVEVNOjpJc0VuYWJsZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0VuYWJsZWRATUVOVUlURU1AQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgVElNRVJfQkFTRTo6SXNFbmFibGVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNFbmFibGVkQFRJTUVSX0JBU0VAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV0lORE9XOjpJc0VuYWJsZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0VuYWJsZWRAV0lORE9XQEBRRUJBSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIEJBU0VfU0VUX0ZPQ1VTX0RMRzo6SXNFeHBhbmRlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRXhwYW5kZWRAQkFTRV9TRVRfRk9DVVNfRExHQEBJRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9MTEJfRU5UUlk6OklzRXhwYW5kZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0V4cGFuZGVkQE9MTEJfRU5UUllAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQVVESVRfQ0hFQ0tCT1hFUzo6SXNGYWlsZWRDaGVja2VkKHZvaWQpIF9fcHRyNjQNCis/SXNGYWlsZWRDaGVja2VkQEFVRElUX0NIRUNLQk9YRVNAQFFFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0FOQ0VMX1RBU0tfRElBTE9HOjpJc0ZpbmlzaGVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNGaW5pc2hlZEBDQU5DRUxfVEFTS19ESUFMT0dAQElFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgR0VUX0ZOQU1FX0JBU0VfRExHOjpJc0hlbHBBY3RpdmUodm9pZCkgX19wdHI2NA0KKz9Jc0hlbHBBY3RpdmVAR0VUX0ZOQU1FX0JBU0VfRExHQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElOVExfUFJPRklMRTo6SXNIb3VyTFplcm8odm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0hvdXJMWmVyb0BJTlRMX1BST0ZJTEVAQFFFQkFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0FOQ0VMX1RBU0tfRElBTE9HOjpJc0luVGltZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0luVGltZXJAQ0FOQ0VMX1RBU0tfRElBTE9HQEBJRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJST1dTRVJfRE9NQUlOOjpJc0luaXRpYWxpemVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNJbml0aWFsaXplZEBCUk9XU0VSX0RPTUFJTkBAUUVCQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIFVTRVJfTEJJX0NBQ0hFOjpJc0l0ZW1BdmFpbGFibGUoaW50KSBfX3B0cjY0DQorP0lzSXRlbUF2YWlsYWJsZUBVU0VSX0xCSV9DQUNIRUBAVUVBQUhIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTElTVF9DT05UUk9MOjpJc0l0ZW1TZWxlY3RlZCh1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/SXNJdGVtU2VsZWN0ZWRATElTVF9DT05UUk9MQEBRRUJBSElAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBSQURJT19HUk9VUDo6SXNNZW1iZXIodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0lzTWVtYmVyQFJBRElPX0dST1VQQEBRRUFBSElAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTElFTlRfV0lORE9XOjpJc01pbmltaXplZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzTWluaW1pemVkQENMSUVOVF9XSU5ET1dAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1BJTl9HUk9VUDo6SXNNb2RpZmllZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzTW9kaWZpZWRAU1BJTl9HUk9VUEBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJTlRMX1BST0ZJTEU6OklzTW9udGhMWmVybyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzTW9udGhMWmVyb0BJTlRMX1BST0ZJTEVAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTElTVF9DT05UUk9MOjpJc011bHRTZWwodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc011bHRTZWxATElTVF9DT05UUk9MQEBRRUJBSFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBTRVRfQ09OVFJPTDo6SXNPbkRyYWdTdGFydChjbGFzcyBMSVNUQk9YICogX19wdHI2NCxjbGFzcyBMSVNUQk9YICogX19wdHI2NCxjbGFzcyBYWVBPSU5UIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Jc09uRHJhZ1N0YXJ0QFNFVF9DT05UUk9MQEBBRUJBSFBFQVZMSVNUQk9YQEAwQUVCVlhZUE9JTlRAQEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBTRVRfQ09OVFJPTDo6SXNPblNlbGVjdGVkSXRlbShjbGFzcyBMSVNUQk9YICogX19wdHI2NCxjbGFzcyBMSVNUQk9YICogX19wdHI2NCxjbGFzcyBYWVBPSU5UIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Jc09uU2VsZWN0ZWRJdGVtQFNFVF9DT05UUk9MQEBBRUJBSFBFQVZMSVNUQk9YQEAwQUVCVlhZUE9JTlRAQEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBTRVRfQ09OVFJPTDo6SXNPdmVyVGFyZ2V0KGNsYXNzIExJU1RCT1ggKiBfX3B0cjY0LGNsYXNzIExJU1RCT1ggKiBfX3B0cjY0LGNsYXNzIFhZUE9JTlQgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0lzT3ZlclRhcmdldEBTRVRfQ09OVFJPTEBAQUVCQUhQRUFWTElTVEJPWEBAMEFFQlZYWVBPSU5UQEBAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgSElFUl9MQkk6OklzUGFyZW50KGNsYXNzIEhJRVJfTEJJICogX19wdHI2NCkgX19wdHI2NA0KKz9Jc1BhcmVudEBISUVSX0xCSUBAQUVBQUhQRUFWMUBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNRU5VX0JBU0U6OklzUG9wdXAoaW50KWNvbnN0ICBfX3B0cjY0DQorP0lzUG9wdXBATUVOVV9CQVNFQEBRRUJBSEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBNQVNLX01BUDo6SXNQcmVzZW50KGNsYXNzIEJJVEZJRUxEICogX19wdHI2NCkgX19wdHI2NA0KKz9Jc1ByZXNlbnRATUFTS19NQVBAQFFFQUFIUEVBVkJJVEZJRUxEQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIERJQUxPR19XSU5ET1c6OklzUHVtcEZpbmlzaGVkKHZvaWQpIF9fcHRyNjQNCis/SXNQdW1wRmluaXNoZWRARElBTE9HX1dJTkRPV0BATUVBQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIEhBU19NRVNTQUdFX1BVTVA6OklzUHVtcEZpbmlzaGVkKHZvaWQpIF9fcHRyNjQNCis/SXNQdW1wRmluaXNoZWRASEFTX01FU1NBR0VfUFVNUEBATUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBMSVNUQk9YOjpJc1JlYWRPbmx5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNSZWFkT25seUBMSVNUQk9YQEBRRUJBSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIEhFQVBfQkFTRTo6SXNSb290KGludCljb25zdCAgX19wdHI2NA0KKz9Jc1Jvb3RASEVBUF9CQVNFQEBJRUJBSEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXSU4zMl9USFJFQUQ6OklzUnVubmFibGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1J1bm5hYmxlQFdJTjMyX1RIUkVBREBAUUVCQUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBVU0VSX0JST1dTRVJfTEI6OklzU2VsZWN0aW9uRXhwYW5kYWJsZUdyb3VwKGNsYXNzIFVTRVJfQlJPV1NFUl9MQkkgY29uc3QgKiBfX3B0cjY0LGludCljb25zdCAgX19wdHI2NA0KKz9Jc1NlbGVjdGlvbkV4cGFuZGFibGVHcm91cEBVU0VSX0JST1dTRVJfTEJAQElFQkFIUEVCVlVTRVJfQlJPV1NFUl9MQklAQEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBVU0VSX0JST1dTRVJfTEI6OklzU2VsZWN0aW9uRXhwYW5kYWJsZUdyb3VwKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNTZWxlY3Rpb25FeHBhbmRhYmxlR3JvdXBAVVNFUl9CUk9XU0VSX0xCQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1FTlVfQkFTRTo6SXNTZXBhcmF0b3IoaW50KWNvbnN0ICBfX3B0cjY0DQorP0lzU2VwYXJhdG9yQE1FTlVfQkFTRUBAUUVCQUhIQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6SXNTaG93VXNlcnNCdXR0b25Vc2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNTaG93VXNlcnNCdXR0b25Vc2VkQE5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQElFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ09NQk9CT1g6OklzU2ltcGxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNTaW1wbGVAQ09NQk9CT1hAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQUNDT1VOVF9OQU1FU19NTEU6OklzU2luZ2xlU2VsZWN0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNTaW5nbGVTZWxlY3RAQUNDT1VOVF9OQU1FU19NTEVAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6SXNTaW5nbGVTZWxlY3Rpb24odm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1NpbmdsZVNlbGVjdGlvbkBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRRUJBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0hBTkdFQUJMRV9TUElOX0lURU06OklzU3RhdGljKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNTdGF0aWNAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFVFQkFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBTVEFUSUNfU1BJTl9JVEVNOjpJc1N0YXRpYyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzU3RhdGljQFNUQVRJQ19TUElOX0lURU1AQFVFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQVVESVRfQ0hFQ0tCT1hFUzo6SXNTdWNjZXNzQ2hlY2tlZCh2b2lkKSBfX3B0cjY0DQorP0lzU3VjY2Vzc0NoZWNrZWRAQVVESVRfQ0hFQ0tCT1hFU0BAUUVBQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQVBQTElDQVRJT046OklzU3lzdGVtSW5pdGlhbGl6ZWQodm9pZCkNCis/SXNTeXN0ZW1Jbml0aWFsaXplZEBBUFBMSUNBVElPTkBAU0FIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQlJPV1NFUl9ET01BSU46OklzVGFyZ2V0RG9tYWluKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNUYXJnZXREb21haW5AQlJPV1NFUl9ET01BSU5AQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQlJPV1NFUl9ET01BSU5fTEJJOjpJc1RhcmdldERvbWFpbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVGFyZ2V0RG9tYWluQEJST1dTRVJfRE9NQUlOX0xCSUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBCUk9XU0VSX0RPTUFJTl9MQklfUEI6OklzVGFyZ2V0RG9tYWluKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNUYXJnZXREb21haW5AQlJPV1NFUl9ET01BSU5fTEJJX1BCQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElOVExfUFJPRklMRTo6SXNUaW1lUHJlZml4KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNUaW1lUHJlZml4QElOVExfUFJPRklMRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDT01CT0JPWDo6SXNVc2VyRWRpdHRhYmxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNVc2VyRWRpdHRhYmxlQENPTUJPQk9YQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJMVF9EQVRFX1NQSU5fR1JPVVA6OklzVmFsaWQodm9pZCkgX19wdHI2NA0KKz9Jc1ZhbGlkQEJMVF9EQVRFX1NQSU5fR1JPVVBAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQkxUX1RJTUVfU1BJTl9HUk9VUDo6SXNWYWxpZCh2b2lkKSBfX3B0cjY0DQorP0lzVmFsaWRAQkxUX1RJTUVfU1BJTl9HUk9VUEBAUUVBQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIERJQUxPR19XSU5ET1c6OklzVmFsaWQodm9pZCkgX19wdHI2NA0KKz9Jc1ZhbGlkQERJQUxPR19XSU5ET1dAQE1FQUFIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBTUElOX1NMRV9OVU1fVkFMSUQ6OklzVmFsaWQodm9pZCkgX19wdHI2NA0KKz9Jc1ZhbGlkQFNQSU5fU0xFX05VTV9WQUxJREBATUVBQUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBTUElOX0dST1VQOjpJc1ZhbGlkRmllbGQodm9pZCkgX19wdHI2NA0KKz9Jc1ZhbGlkRmllbGRAU1BJTl9HUk9VUEBASUVBQUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBCQVNFX0VMTElQU0lTOjpJc1ZhbGlkU3R5bGUoZW51bSBFTExJUFNJU19TVFlMRSljb25zdCAgX19wdHI2NA0KKz9Jc1ZhbGlkU3R5bGVAQkFTRV9FTExJUFNJU0BASUVCQUhXNEVMTElQU0lTX1NUWUxFQEBAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBBQ0NPVU5UX05BTUVTX01MRTo6SXNXZWxsS25vd25BY2NvdW50KGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzV2VsbEtub3duQWNjb3VudEBBQ0NPVU5UX05BTUVTX01MRUBASUVBQUhBRUJWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQlJPV1NFUl9ET01BSU46OklzV2luTlRNYWNoaW5lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNXaW5OVE1hY2hpbmVAQlJPV1NFUl9ET01BSU5AQFFFQkFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgSF9TUExJVFRFUl9CQVI6OklzV2l0aGluSGl0Wm9uZShjbGFzcyBYWVBPSU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Jc1dpdGhpbkhpdFpvbmVASF9TUExJVFRFUl9CQVJAQElFQUFIQUVCVlhZUE9JTlRAQEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBTRVRfQ09OVFJPTDo6SXNXaXRoaW5IaXRab25lKGNsYXNzIExJU1RCT1ggKiBfX3B0cjY0LGNsYXNzIExJU1RCT1ggKiBfX3B0cjY0LGNsYXNzIFhZUE9JTlQgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0lzV2l0aGluSGl0Wm9uZUBTRVRfQ09OVFJPTEBAQUVCQUhQRUFWTElTVEJPWEBAMEFFQlZYWVBPSU5UQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJTlRMX1BST0ZJTEU6OklzWXJDZW50dXJ5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNZckNlbnR1cnlASU5UTF9QUk9GSUxFQEBRRUJBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBNRU5VSVRFTTo6SXRlbUV4aXN0cyhzdHJ1Y3QgSE1FTlVfXyAqIF9fcHRyNjQsdW5zaWduZWQgaW50KQ0KKz9JdGVtRXhpc3RzQE1FTlVJVEVNQEBTQUhQRUFVSE1FTlVfX0BASUBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBNRU5VSVRFTTo6SXRlbUV4aXN0cyhjbGFzcyBBUFBfV0lORE9XICogX19wdHI2NCx1bnNpZ25lZCBpbnQpDQorP0l0ZW1FeGlzdHNATUVOVUlURU1AQFNBSFBFQVZBUFBfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1BJTl9HUk9VUDo6SnVtcE5leHRGaWVsZCh2b2lkKSBfX3B0cjY0DQorP0p1bXBOZXh0RmllbGRAU1BJTl9HUk9VUEBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTUElOX0dST1VQOjpKdW1wUHJldkZpZWxkKHZvaWQpIF9fcHRyNjQNCis/SnVtcFByZXZGaWVsZEBTUElOX0dST1VQQEBRRUFBSFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgRElBTE9HX1dJTkRPVzo6TGF1bmNoSGVscCh2b2lkKSBfX3B0cjY0DQorP0xhdW5jaEhlbHBARElBTE9HX1dJTkRPV0BAQUVBQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIEJMVElNUDo6TGVhdmVCTFRDcml0U2VjdCh2b2lkKQ0KKz9MZWF2ZUJMVENyaXRTZWN0QEJMVElNUEBAU0FYWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBCTFRJTVA6OkxlYXZlUmVzb3VyY2VDcml0U2VjdCh2b2lkKQ0KKz9MZWF2ZVJlc291cmNlQ3JpdFNlY3RAQkxUSU1QQEBTQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgREVWSUNFX0NPTlRFWFQ6OkxpbmVUbyhpbnQsaW50KWNvbnN0ICBfX3B0cjY0DQorP0xpbmVUb0BERVZJQ0VfQ09OVEVYVEBAUUVCQVhISEBaDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgSElDT05fXyAqIF9fcHRyNjQgX19jZGVjbCBDVVJTT1I6OkxvYWQoY2xhc3MgSURSRVNPVVJDRSBjb25zdCAmIF9fcHRyNjQpDQorP0xvYWRAQ1VSU09SQEBTQVBFQVVISUNPTl9fQEBBRUJWSURSRVNPVVJDRUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5MU19TVFI6OkxvYWQobG9uZykgX19wdHI2NA0KKz9Mb2FkQE5MU19TVFJAQFFFQUFKSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgaW50IF9fY2RlY2wgVUlfRVhUX01HUjo6TG9hZEV4dGVuc2lvbnModm9pZCkgX19wdHI2NA0KKz9Mb2FkRXh0ZW5zaW9uc0BVSV9FWFRfTUdSQEBVRUFBSVhaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6TG9hZExhYmVscyhsb25nKSBfX3B0cjY0DQorP0xvYWRMYWJlbHNATE9HT05fSE9VUlNfQ09OVFJPTEBAQUVBQUpKQFoNCis7IHByaXZhdGU6IGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0IF9fY2RlY2wgUE9QVVA6OkxvYWRNZXNzYWdlKGxvbmcsaW50KSBfX3B0cjY0DQorP0xvYWRNZXNzYWdlQFBPUFVQQEBBRUFBUEVBVk5MU19TVFJAQEpIQFoNCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBISUNPTl9fICogX19wdHI2NCBfX2NkZWNsIENVUlNPUjo6TG9hZFN5c3RlbShjbGFzcyBJRFJFU09VUkNFIGNvbnN0ICYgX19wdHI2NCkNCis/TG9hZFN5c3RlbUBDVVJTT1JAQFNBUEVBVUhJQ09OX19AQEFFQlZJRFJFU09VUkNFQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTkxTX1NUUjo6TG9hZFN5c3RlbShsb25nKSBfX3B0cjY0DQorP0xvYWRTeXN0ZW1ATkxTX1NUUkBAUUVBQUpKQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgVVNFUl9MQklfQ0FDSEU6OkxvY2tDYWNoZSh2b2lkKSBfX3B0cjY0DQorP0xvY2tDYWNoZUBVU0VSX0xCSV9DQUNIRUBATUVBQVhYWg0KKzsgdm9pZCBfX2NkZWNsIE1MVGV4dFBhaW50KHN0cnVjdCBIRENfXyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCB0YWdSRUNUIGNvbnN0ICogX19wdHI2NCkNCis/TUxUZXh0UGFpbnRAQFlBWFBFQVVIRENfX0BAUEVCR1BFQlV0YWdSRUNUQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBET01BSU5fRklMTF9USFJFQUQ6Ok1haW4odm9pZCkgX19wdHI2NA0KKz9NYWluQERPTUFJTl9GSUxMX1RIUkVBREBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBGT0NVU0RMR19EQVRBX1RIUkVBRDo6TWFpbih2b2lkKSBfX3B0cjY0DQorP01haW5ARk9DVVNETEdfREFUQV9USFJFQURAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgV0lOMzJfVEhSRUFEOjpNYWluKHZvaWQpIF9fcHRyNjQNCis/TWFpbkBXSU4zMl9USFJFQURAQE1FQUFKWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFBVU0hfQlVUVE9OOjpNYWtlRGVmYXVsdCh2b2lkKSBfX3B0cjY0DQorP01ha2VEZWZhdWx0QFBVU0hfQlVUVE9OQEBRRUFBWFhaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50IF9fY2RlY2wgUE9QVVA6Ok1hcEJ1dHRvbih1bnNpZ25lZCBpbnQpDQorP01hcEJ1dHRvbkBQT1BVUEBAQ0FISUBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQkxUOjpNYXBMYXN0RXJyb3IobG9uZykNCis/TWFwTGFzdEVycm9yQEJMVEBAU0FKSkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgUE9QVVA6Ok1hcE1lc3NhZ2UobG9uZykNCis/TWFwTWVzc2FnZUBQT1BVUEBAU0FKSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQVBQX1dJTkRPVzo6TWF5UmVzdG9yZSh2b2lkKSBfX3B0cjY0DQorP01heVJlc3RvcmVAQVBQX1dJTkRPV0BATUVBQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIENBTkNFTF9UQVNLX0RJQUxPRzo6TWF5UnVuKHZvaWQpIF9fcHRyNjQNCis/TWF5UnVuQENBTkNFTF9UQVNLX0RJQUxPR0BATUVBQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIERJQUxPR19XSU5ET1c6Ok1heVJ1bih2b2lkKSBfX3B0cjY0DQorP01heVJ1bkBESUFMT0dfV0lORE9XQEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQVBQX1dJTkRPVzo6TWF5U2h1dGRvd24odm9pZCkgX19wdHI2NA0KKz9NYXlTaHV0ZG93bkBBUFBfV0lORE9XQEBNRUFBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFVJX01FTlVfRVhUX01HUjo6TWVudUluaXRFeHRlbnNpb25zKHZvaWQpIF9fcHRyNjQNCis/TWVudUluaXRFeHRlbnNpb25zQFVJX01FTlVfRVhUX01HUkBAVUVBQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTUVOVV9CQVNFOjpNb2RpZnkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP01vZGlmeUBNRU5VX0JBU0VAQFFFQkFKUEVCR0lJSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBNRU5VX0JBU0U6Ok1vZGlmeSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHN0cnVjdCBITUVOVV9fICogX19wdHI2NCx1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/TW9kaWZ5QE1FTlVfQkFTRUBAUUVCQUpQRUJHSVBFQVVITUVOVV9fQEBJQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpNb3ZlRm9jdXNEb3duKHZvaWQpIF9fcHRyNjQNCis/TW92ZUZvY3VzRG93bkBMT0dPTl9IT1VSU19DT05UUk9MQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6TW92ZUZvY3VzTGVmdCh2b2lkKSBfX3B0cjY0DQorP01vdmVGb2N1c0xlZnRATE9HT05fSE9VUlNfQ09OVFJPTEBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExPR09OX0hPVVJTX0NPTlRST0w6Ok1vdmVGb2N1c1JpZ2h0KHZvaWQpIF9fcHRyNjQNCis/TW92ZUZvY3VzUmlnaHRATE9HT05fSE9VUlNfQ09OVFJPTEBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExPR09OX0hPVVJTX0NPTlRST0w6Ok1vdmVGb2N1c1RvKGludCkgX19wdHI2NA0KKz9Nb3ZlRm9jdXNUb0BMT0dPTl9IT1VSU19DT05UUk9MQEBBRUFBWEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExPR09OX0hPVVJTX0NPTlRST0w6Ok1vdmVGb2N1c1VwKHZvaWQpIF9fcHRyNjQNCis/TW92ZUZvY3VzVXBATE9HT05fSE9VUlNfQ09OVFJPTEBAQUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBCTFRfU0VUX0NPTlRST0w6Ok1vdmVJdGVtcyhjbGFzcyBMSVNUQk9YICogX19wdHI2NCxjbGFzcyBMSVNUQk9YICogX19wdHI2NCkgX19wdHI2NA0KKz9Nb3ZlSXRlbXNAQkxUX1NFVF9DT05UUk9MQEBNRUFBSlBFQVZMSVNUQk9YQEAwQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIERFVklDRV9DT05URVhUOjpNb3ZlVG8oaW50LGludCljb25zdCAgX19wdHI2NA0KKz9Nb3ZlVG9AREVWSUNFX0NPTlRFWFRAQFFFQkFYSEhAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCBfX2NkZWNsIE1TR1BPUFVQX0RJQUxPRzo6TXNnMkhDKGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpDQorP01zZzJIQ0BNU0dQT1BVUF9ESUFMT0dAQENBSEpQRUFLQFoNCis7IGludCBfX2NkZWNsIE1zZ1BvcHVwKGNsYXNzIE9XTklOR1dORCBjb25zdCAmIF9fcHRyNjQsbG9uZyxsb25nLGVudW0gTVNHX1NFVkVSSVRZLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgaW50LGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0ICogX19wdHI2NCBjb25zdCx1bnNpZ25lZCBpbnQpDQorP01zZ1BvcHVwQEBZQUhBRUJWT1dOSU5HV05EQEBKSlc0TVNHX1NFVkVSSVRZQEBLSVFFQVBFQVZOTFNfU1RSQEBJQFoNCis7IGludCBfX2NkZWNsIE1zZ1BvcHVwKGNsYXNzIE9XTklOR1dORCBjb25zdCAmIF9fcHRyNjQsbG9uZyxlbnVtIE1TR19TRVZFUklUWSkNCis/TXNnUG9wdXBAQFlBSEFFQlZPV05JTkdXTkRAQEpXNE1TR19TRVZFUklUWUBAQFoNCis7IGludCBfX2NkZWNsIE1zZ1BvcHVwKGNsYXNzIE9XTklOR1dORCBjb25zdCAmIF9fcHRyNjQsbG9uZyxlbnVtIE1TR19TRVZFUklUWSx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz9Nc2dQb3B1cEBAWUFIQUVCVk9XTklOR1dOREBASlc0TVNHX1NFVkVSSVRZQEBJSUBaDQorOyBpbnQgX19jZGVjbCBNc2dQb3B1cChjbGFzcyBPV05JTkdXTkQgY29uc3QgJiBfX3B0cjY0LGxvbmcsZW51bSBNU0dfU0VWRVJJVFksdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KQ0KKz9Nc2dQb3B1cEBAWUFIQUVCVk9XTklOR1dOREBASlc0TVNHX1NFVkVSSVRZQEBJUEVCRzJJQFoNCis7IGludCBfX2NkZWNsIE1zZ1BvcHVwKGNsYXNzIE9XTklOR1dORCBjb25zdCAmIF9fcHRyNjQsbG9uZyxlbnVtIE1TR19TRVZFUklUWSx1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkNCis/TXNnUG9wdXBAQFlBSEFFQlZPV05JTkdXTkRAQEpXNE1TR19TRVZFUklUWUBASVBFQkdJQFoNCis7IGludCBfX2NkZWNsIE1zZ1BvcHVwKGNsYXNzIE9XTklOR1dORCBjb25zdCAmIF9fcHRyNjQsbG9uZyxlbnVtIE1TR19TRVZFUklUWSx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGludCxjbGFzcyBOTFNfU1RSICogX19wdHI2NCAqIF9fcHRyNjQgY29uc3QsdW5zaWduZWQgaW50KQ0KKz9Nc2dQb3B1cEBAWUFIQUVCVk9XTklOR1dOREBASlc0TVNHX1NFVkVSSVRZQEBLSVFFQVBFQVZOTFNfU1RSQEBJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEJST1dTRVJfU1VCSkVDVF9JVEVSOjpOZXh0KGNsYXNzIEJST1dTRVJfU1VCSkVDVCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP05leHRAQlJPV1NFUl9TVUJKRUNUX0lURVJAQFFFQUFKUEVBUEVBVkJST1dTRVJfU1VCSkVDVEBAQFoNCis7IHB1YmxpYzogY2xhc3MgQlJPV1NFX0RPTUFJTl9JTkZPIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEJST1dTRV9ET01BSU5fRU5VTTo6TmV4dCh2b2lkKSBfX3B0cjY0DQorP05leHRAQlJPV1NFX0RPTUFJTl9FTlVNQEBRRUFBUEVCVkJST1dTRV9ET01BSU5fSU5GT0BAWFoNCis7IHB1YmxpYzogY2xhc3MgQ09OVFJPTF9XSU5ET1cgKiBfX3B0cjY0IF9fY2RlY2wgSVRFUl9DVFJMOjpOZXh0KHZvaWQpIF9fcHRyNjQNCis/TmV4dEBJVEVSX0NUUkxAQFFFQUFQRUFWQ09OVFJPTF9XSU5ET1dAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFNQSU5fSVRFTSAqIF9fcHRyNjQgX19jZGVjbCBJVEVSX0RMX1NQSU5fSVRFTTo6TmV4dCh2b2lkKSBfX3B0cjY0DQorP05leHRASVRFUl9ETF9TUElOX0lURU1AQFFFQUFQRUFWU1BJTl9JVEVNQEBYWg0KKzsgcHVibGljOiBjbGFzcyBBU1NPQ0hDRklMRSAqIF9fcHRyNjQgX19jZGVjbCBJVEVSX1NMX0FTU09DSENGSUxFOjpOZXh0KHZvaWQpIF9fcHRyNjQNCis/TmV4dEBJVEVSX1NMX0FTU09DSENGSUxFQEBRRUFBUEVBVkFTU09DSENGSUxFQEBYWg0KKzsgcHVibGljOiBjbGFzcyBCUk9XU0VfRE9NQUlOX0lORk8gKiBfX3B0cjY0IF9fY2RlY2wgSVRFUl9TTF9CUk9XU0VfRE9NQUlOX0lORk86Ok5leHQodm9pZCkgX19wdHI2NA0KKz9OZXh0QElURVJfU0xfQlJPV1NFX0RPTUFJTl9JTkZPQEBRRUFBUEVBVkJST1dTRV9ET01BSU5fSU5GT0BAWFoNCis7IHB1YmxpYzogc3RydWN0IENMSUVOVERBVEEgKiBfX3B0cjY0IF9fY2RlY2wgSVRFUl9TTF9DTElFTlREQVRBOjpOZXh0KHZvaWQpIF9fcHRyNjQNCis/TmV4dEBJVEVSX1NMX0NMSUVOVERBVEFAQFFFQUFQRUFVQ0xJRU5UREFUQUBAWFoNCis7IHB1YmxpYzogY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQgX19jZGVjbCBJVEVSX1NMX05MU19TVFI6Ok5leHQodm9pZCkgX19wdHI2NA0KKz9OZXh0QElURVJfU0xfTkxTX1NUUkBAUUVBQVBFQVZOTFNfU1RSQEBYWg0KKzsgcHVibGljOiBjbGFzcyBTVFJJTkdfQklUU0VUX1BBSVIgKiBfX3B0cjY0IF9fY2RlY2wgSVRFUl9TTF9TVFJJTkdfQklUU0VUX1BBSVI6Ok5leHQodm9pZCkgX19wdHI2NA0KKz9OZXh0QElURVJfU0xfU1RSSU5HX0JJVFNFVF9QQUlSQEBRRUFBUEVBVlNUUklOR19CSVRTRVRfUEFJUkBAWFoNCis7IHB1YmxpYzogY2xhc3MgVElNRVJfQkFTRSAqIF9fcHRyNjQgX19jZGVjbCBJVEVSX1NMX1RJTUVSX0JBU0U6Ok5leHQodm9pZCkgX19wdHI2NA0KKz9OZXh0QElURVJfU0xfVElNRVJfQkFTRUBAUUVBQVBFQVZUSU1FUl9CQVNFQEBYWg0KKzsgcHVibGljOiBjbGFzcyBVSV9FWFQgKiBfX3B0cjY0IF9fY2RlY2wgSVRFUl9TTF9VSV9FWFQ6Ok5leHQodm9pZCkgX19wdHI2NA0KKz9OZXh0QElURVJfU0xfVUlfRVhUQEBRRUFBUEVBVlVJX0VYVEBAWFoNCis7IHB1YmxpYzogY2xhc3MgVVNFUl9CUk9XU0VSX0xCSSAqIF9fcHRyNjQgX19jZGVjbCBJVEVSX1NMX1VTRVJfQlJPV1NFUl9MQkk6Ok5leHQodm9pZCkgX19wdHI2NA0KKz9OZXh0QElURVJfU0xfVVNFUl9CUk9XU0VSX0xCSUBAUUVBQVBFQVZVU0VSX0JST1dTRVJfTEJJQEBYWg0KKzsgcHVibGljOiBjbGFzcyBTUElOX0lURU0gKiBfX3B0cjY0IF9fY2RlY2wgUklURVJfRExfU1BJTl9JVEVNOjpOZXh0KHZvaWQpIF9fcHRyNjQNCis/TmV4dEBSSVRFUl9ETF9TUElOX0lURU1AQFFFQUFQRUFWU1BJTl9JVEVNQEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVExCSVRFTTo6TmV4dFN0YXRlKHZvaWQpIF9fcHRyNjQNCis/TmV4dFN0YXRlQFNUTEJJVEVNQEBRRUFBSFhaDQorOyBwdWJsaWM6IGNsYXNzIFRJTUVSX0JBU0UgKiBfX3B0cjY0IF9fY2RlY2wgQkxUX01BU1RFUl9USU1FUjo6TmV4dFRpbWVyKHZvaWQpIF9fcHRyNjQNCis/TmV4dFRpbWVyQEJMVF9NQVNURVJfVElNRVJAQFFFQUFQRUFWVElNRVJfQkFTRUBAWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENPTlRST0xfV0lORE9XOjpOb3RpZnlHcm91cHMoY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Tm90aWZ5R3JvdXBzQENPTlRST0xfV0lORE9XQEBRRUFBSkFFQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHVibGljOiBjbGFzcyBYWVJFQ1QgJiBfX3B0cjY0IF9fY2RlY2wgWFlSRUNUOjpPZmZzZXQoaW50LGludCkgX19wdHI2NA0KKz9PZmZzZXRAWFlSRUNUQEBRRUFBQUVBVjFASEhAWg0KKzsgcHVibGljOiBjbGFzcyBYWVJFQ1QgJiBfX3B0cjY0IF9fY2RlY2wgWFlSRUNUOjpPZmZzZXQoY2xhc3MgWFlESU1FTlNJT04pIF9fcHRyNjQNCis/T2Zmc2V0QFhZUkVDVEBAUUVBQUFFQVYxQFZYWURJTUVOU0lPTkBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBDTElFTlRfV0lORE9XOjpPbkFjdGl2YXRpb24oY2xhc3MgQUNUSVZBVElPTl9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25BY3RpdmF0aW9uQENMSUVOVF9XSU5ET1dAQE1FQUFIQUVCVkFDVElWQVRJT05fRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgRElTUEFUQ0hFUjo6T25BY3RpdmF0aW9uKGNsYXNzIEFDVElWQVRJT05fRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uQWN0aXZhdGlvbkBESVNQQVRDSEVSQEBNRUFBSEFFQlZBQ1RJVkFUSU9OX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6T25BZGQodm9pZCkgX19wdHI2NA0KKz9PbkFkZEBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBJRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBTTEVfU1RSTEJfR1JPVVA6Ok9uQWRkKHZvaWQpIF9fcHRyNjQNCis/T25BZGRAU0xFX1NUUkxCX0dST1VQQEBJRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIE9XTkVSX1dJTkRPVzo6T25DRE1lc3NhZ2VzKHVuc2lnbmVkIGludCx1bnNpZ25lZCBfX2ludDY0LF9faW50NjQpIF9fcHRyNjQNCis/T25DRE1lc3NhZ2VzQE9XTkVSX1dJTkRPV0BASUVBQUhJX0tfSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgRElBTE9HX1dJTkRPVzo6T25DYW5jZWwodm9pZCkgX19wdHI2NA0KKz9PbkNhbmNlbEBESUFMT0dfV0lORE9XQEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgTVNHUE9QVVBfRElBTE9HOjpPbkNhbmNlbCh2b2lkKSBfX3B0cjY0DQorP09uQ2FuY2VsQE1TR1BPUFVQX0RJQUxPR0BATUVBQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIENMSUVOVF9XSU5ET1c6Ok9uQ2hhbmdlKGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uQ2hhbmdlQENMSUVOVF9XSU5ET1dAQE1FQUFIQUVCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0xJRU5UX1dJTkRPVzo6T25DaGFyKGNsYXNzIENIQVJfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uQ2hhckBDTElFTlRfV0lORE9XQEBNRUFBSEFFQlZDSEFSX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIERJU1BBVENIRVI6Ok9uQ2hhcihjbGFzcyBDSEFSX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PbkNoYXJARElTUEFUQ0hFUkBATUVBQUhBRUJWQ0hBUl9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBTUElOX0lURU06Ok9uQ2hhcihjbGFzcyBDSEFSX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PbkNoYXJAU1BJTl9JVEVNQEBNRUFBSEFFQlZDSEFSX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNQSU5fU0xFX05VTTo6T25DaGFyKGNsYXNzIENIQVJfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uQ2hhckBTUElOX1NMRV9OVU1AQE1FQUFIQUVCVkNIQVJfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgU1BJTl9TTEVfU1RSOjpPbkNoYXIoY2xhc3MgQ0hBUl9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25DaGFyQFNQSU5fU0xFX1NUUkBATUVBQUhBRUJWQ0hBUl9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBDTElFTlRfV0lORE9XOjpPbkNsaWNrKGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uQ2xpY2tAQ0xJRU5UX1dJTkRPV0BATUVBQUhBRUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBBUFBfV0lORE9XOjpPbkNsb3NlUmVxKHZvaWQpIF9fcHRyNjQNCis/T25DbG9zZVJlcUBBUFBfV0lORE9XQEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0xJRU5UX1dJTkRPVzo6T25DbG9zZVJlcSh2b2lkKSBfX3B0cjY0DQorP09uQ2xvc2VSZXFAQ0xJRU5UX1dJTkRPV0BATUVBQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIERJU1BBVENIRVI6Ok9uQ2xvc2VSZXEodm9pZCkgX19wdHI2NA0KKz9PbkNsb3NlUmVxQERJU1BBVENIRVJAQE1FQUFIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBCQVNFX1NFVF9GT0NVU19ETEc6Ok9uQ29tbWFuZChjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PbkNvbW1hbmRAQkFTRV9TRVRfRk9DVVNfRExHQEBNRUFBSEFFQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIENMSUVOVF9XSU5ET1c6Ok9uQ29tbWFuZChjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PbkNvbW1hbmRAQ0xJRU5UX1dJTkRPV0BATUVBQUhBRUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBESUFMT0dfV0lORE9XOjpPbkNvbW1hbmQoY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Db21tYW5kQERJQUxPR19XSU5ET1dAQE1FQUFIQUVCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgRElTUEFUQ0hFUjo6T25Db21tYW5kKGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uQ29tbWFuZEBESVNQQVRDSEVSQEBNRUFBSEFFQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIEVYUEFOREFCTEVfRElBTE9HOjpPbkNvbW1hbmQoY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Db21tYW5kQEVYUEFOREFCTEVfRElBTE9HQEBNRUFBSEFFQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIE1TR1BPUFVQX0RJQUxPRzo6T25Db21tYW5kKGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uQ29tbWFuZEBNU0dQT1BVUF9ESUFMT0dAQE1FQUFIQUVCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgTlRfRklORF9BQ0NPVU5UX0RJQUxPRzo6T25Db21tYW5kKGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uQ29tbWFuZEBOVF9GSU5EX0FDQ09VTlRfRElBTE9HQEBNRUFBSEFFQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIE5UX0dST1VQX0JST1dTRVJfRElBTE9HOjpPbkNvbW1hbmQoY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Db21tYW5kQE5UX0dST1VQX0JST1dTRVJfRElBTE9HQEBNRUFBSEFFQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIE5UX0xPQ0FMR1JPVVBfQlJPV1NFUl9ESUFMT0c6Ok9uQ29tbWFuZChjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PbkNvbW1hbmRATlRfTE9DQUxHUk9VUF9CUk9XU0VSX0RJQUxPR0BATUVBQUhBRUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpPbkNvbW1hbmQoY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Db21tYW5kQE5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQE1FQUFIQUVCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgT1BFTl9ESUFMT0dfQkFTRTo6T25Db21tYW5kKGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uQ29tbWFuZEBPUEVOX0RJQUxPR19CQVNFQEBNRUFBSEFFQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgTEJJOjpPbkNvbXBhcmVJdGVtKHVuc2lnbmVkIF9faW50NjQsX19pbnQ2NCkNCis/T25Db21wYXJlSXRlbUBMQklAQFNBSF9LX0pAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBESUFMT0dfV0lORE9XOjpPbkNvbnRyb2xFcnJvcih1bnNpZ25lZCBpbnQsbG9uZykgX19wdHI2NA0KKz9PbkNvbnRyb2xFcnJvckBESUFMT0dfV0lORE9XQEBNRUFBWElKQFoNCis7IHB1YmxpYzogdmlydHVhbCBzdHJ1Y3QgSEJSVVNIX18gKiBfX3B0cjY0IF9fY2RlY2wgQkxUX0JBQ0tHUk9VTkRfRURJVDo6T25DdGxDb2xvcihzdHJ1Y3QgSERDX18gKiBfX3B0cjY0LHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T25DdGxDb2xvckBCTFRfQkFDS0dST1VORF9FRElUQEBVRUFBUEVBVUhCUlVTSF9fQEBQRUFVSERDX19AQFBFQVVIV05EX19AQFBFQUlAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCBIQlJVU0hfXyAqIF9fcHRyNjQgX19jZGVjbCBDT05UUk9MX1dJTkRPVzo6T25DdGxDb2xvcihzdHJ1Y3QgSERDX18gKiBfX3B0cjY0LHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T25DdGxDb2xvckBDT05UUk9MX1dJTkRPV0BAVUVBQVBFQVVIQlJVU0hfX0BAUEVBVUhEQ19fQEBQRUFVSFdORF9fQEBQRUFJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3QgSEJSVVNIX18gKiBfX3B0cjY0IF9fY2RlY2wgRElBTE9HX1dJTkRPVzo6T25DdGxDb2xvcihzdHJ1Y3QgSERDX18gKiBfX3B0cjY0LHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T25DdGxDb2xvckBESUFMT0dfV0lORE9XQEBNRUFBUEVBVUhCUlVTSF9fQEBQRUFVSERDX19AQFBFQVVIV05EX19AQFBFQUlAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCBIQlJVU0hfXyAqIF9fcHRyNjQgX19jZGVjbCBTUElOX1NMVF9TRVBBUkFUT1I6Ok9uQ3RsQ29sb3Ioc3RydWN0IEhEQ19fICogX19wdHI2NCxzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP09uQ3RsQ29sb3JAU1BJTl9TTFRfU0VQQVJBVE9SQEBVRUFBUEVBVUhCUlVTSF9fQEBQRUFVSERDX19AQFBFQVVIV05EX19AQFBFQUlAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIENMSUVOVF9XSU5ET1c6Ok9uRGJsQ2xpY2soY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25EYmxDbGlja0BDTElFTlRfV0lORE9XQEBNRUFBSEFFQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIENMSUVOVF9XSU5ET1c6Ok9uRGVhY3RpdmF0aW9uKGNsYXNzIEFDVElWQVRJT05fRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uRGVhY3RpdmF0aW9uQENMSUVOVF9XSU5ET1dAQE1FQUFIQUVCVkFDVElWQVRJT05fRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgRElTUEFUQ0hFUjo6T25EZWFjdGl2YXRpb24oY2xhc3MgQUNUSVZBVElPTl9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25EZWFjdGl2YXRpb25ARElTUEFUQ0hFUkBATUVBQUhBRUJWQUNUSVZBVElPTl9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBDTElFTlRfV0lORE9XOjpPbkRlZm9jdXMoY2xhc3MgRk9DVVNfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uRGVmb2N1c0BDTElFTlRfV0lORE9XQEBNRUFBSEFFQlZGT0NVU19FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBESVNQQVRDSEVSOjpPbkRlZm9jdXMoY2xhc3MgRk9DVVNfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uRGVmb2N1c0BESVNQQVRDSEVSQEBNRUFBSEFFQlZGT0NVU19FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBGT0NVU19DSEVDS0JPWDo6T25EZWZvY3VzKGNsYXNzIEZPQ1VTX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PbkRlZm9jdXNARk9DVVNfQ0hFQ0tCT1hAQE1FQUFIQUVCVkZPQ1VTX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIExPR09OX0hPVVJTX0NPTlRST0w6Ok9uRGVmb2N1cyhjbGFzcyBGT0NVU19FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25EZWZvY3VzQExPR09OX0hPVVJTX0NPTlRST0xAQE1FQUFIQUVCVkZPQ1VTX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNQSU5fU0xFX05VTTo6T25EZWZvY3VzKGNsYXNzIEZPQ1VTX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PbkRlZm9jdXNAU1BJTl9TTEVfTlVNQEBNRUFBSEFFQlZGT0NVU19FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBTUElOX1NMRV9OVU1fVkFMSUQ6Ok9uRGVmb2N1cyhjbGFzcyBGT0NVU19FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25EZWZvY3VzQFNQSU5fU0xFX05VTV9WQUxJREBATUVBQUhBRUJWRk9DVVNfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIExBWllfTElTVEJPWDo6T25EZWxldGVJdGVtKGNsYXNzIExCSSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T25EZWxldGVJdGVtQExBWllfTElTVEJPWEBATUVBQVhQRUFWTEJJQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIExCSTo6T25EZWxldGVJdGVtKHVuc2lnbmVkIF9faW50NjQsX19pbnQ2NCkNCis/T25EZWxldGVJdGVtQExCSUBAU0FYX0tfSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQjo6T25EZWxldGVJdGVtKGNsYXNzIExCSSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T25EZWxldGVJdGVtQFVTRVJfQlJPV1NFUl9MQkBATUVBQVhQRUFWTEJJQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIENMSUVOVF9XSU5ET1c6Ok9uRGVzdHJveSh2b2lkKSBfX3B0cjY0DQorP09uRGVzdHJveUBDTElFTlRfV0lORE9XQEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgRElTUEFUQ0hFUjo6T25EZXN0cm95KHZvaWQpIF9fcHRyNjQNCis/T25EZXN0cm95QERJU1BBVENIRVJAQE1FQUFIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBESUFMT0dfV0lORE9XOjpPbkRsZ0FjdGl2YXRpb24oY2xhc3MgQUNUSVZBVElPTl9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25EbGdBY3RpdmF0aW9uQERJQUxPR19XSU5ET1dAQE1FQUFIQUVCVkFDVElWQVRJT05fRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgRElBTE9HX1dJTkRPVzo6T25EbGdEZWFjdGl2YXRpb24oY2xhc3MgQUNUSVZBVElPTl9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25EbGdEZWFjdGl2YXRpb25ARElBTE9HX1dJTkRPV0BATUVBQUhBRUJWQUNUSVZBVElPTl9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpPbkRsZ0RlYWN0aXZhdGlvbihjbGFzcyBBQ1RJVkFUSU9OX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PbkRsZ0RlYWN0aXZhdGlvbkBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBNRUFBSEFFQlZBQ1RJVkFUSU9OX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6T25Eb21haW5DaGFuZ2UoY2xhc3MgQlJPV1NFUl9ET01BSU4gKiBfX3B0cjY0LGNsYXNzIEFETUlOX0FVVEhPUklUWSBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Eb21haW5DaGFuZ2VATlRfVVNFUl9CUk9XU0VSX0RJQUxPR0BASUVBQUpQRUFWQlJPV1NFUl9ET01BSU5AQFBFQlZBRE1JTl9BVVRIT1JJVFlAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQkFTRV9TRVRfRk9DVVNfRExHOjpPbkRvbWFpbkxCQ2hhbmdlKHZvaWQpIF9fcHRyNjQNCis/T25Eb21haW5MQkNoYW5nZUBCQVNFX1NFVF9GT0NVU19ETEdAQEFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEhJRVJfTElTVEJPWDo6T25Eb3VibGVDbGljayhjbGFzcyBISUVSX0xCSSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Eb3VibGVDbGlja0BISUVSX0xJU1RCT1hAQFFFQUFYUEVBVkhJRVJfTEJJQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBIX1NQTElUVEVSX0JBUjo6T25EcmFnUmVsZWFzZShjbGFzcyBYWVBPSU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PbkRyYWdSZWxlYXNlQEhfU1BMSVRURVJfQkFSQEBNRUFBWEFFQlZYWVBPSU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIENMSUVOVF9XSU5ET1c6Ok9uRHJvcERvd24oY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Ecm9wRG93bkBDTElFTlRfV0lORE9XQEBNRUFBSEFFQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIENMSUVOVF9XSU5ET1c6Ok9uRW50ZXIoY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25FbnRlckBDTElFTlRfV0lORE9XQEBNRUFBSEFFQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNQSU5fU0xFX05VTTo6T25FbnRlcihjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PbkVudGVyQFNQSU5fU0xFX05VTUBATUVBQUhBRUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBTUElOX1NMRV9OVU1fVkFMSUQ6Ok9uRW50ZXIoY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25FbnRlckBTUElOX1NMRV9OVU1fVkFMSURAQE1FQUFIQUVCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIEVYUEFOREFCTEVfRElBTE9HOjpPbkV4cGFuZCh2b2lkKSBfX3B0cjY0DQorP09uRXhwYW5kQEVYUEFOREFCTEVfRElBTE9HQEBNRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0xJRU5UX1dJTkRPVzo6T25Gb2N1cyhjbGFzcyBGT0NVU19FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Gb2N1c0BDTElFTlRfV0lORE9XQEBNRUFBSEFFQlZGT0NVU19FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBESVNQQVRDSEVSOjpPbkZvY3VzKGNsYXNzIEZPQ1VTX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PbkZvY3VzQERJU1BBVENIRVJAQE1FQUFIQUVCVkZPQ1VTX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIEZPQ1VTX0NIRUNLQk9YOjpPbkZvY3VzKGNsYXNzIEZPQ1VTX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PbkZvY3VzQEZPQ1VTX0NIRUNLQk9YQEBNRUFBSEFFQlZGT0NVU19FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpPbkZvY3VzKGNsYXNzIEZPQ1VTX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PbkZvY3VzQExPR09OX0hPVVJTX0NPTlRST0xAQE1FQUFIQUVCVkZPQ1VTX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNQSU5fSVRFTTo6T25Gb2N1cyhjbGFzcyBGT0NVU19FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Gb2N1c0BTUElOX0lURU1AQE1FQUFIQUVCVkZPQ1VTX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNQSU5fU0xFX05VTTo6T25Gb2N1cyhjbGFzcyBGT0NVU19FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Gb2N1c0BTUElOX1NMRV9OVU1AQE1FQUFIQUVCVkZPQ1VTX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNQSU5fU0xFX1NUUjo6T25Gb2N1cyhjbGFzcyBGT0NVU19FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Gb2N1c0BTUElOX1NMRV9TVFJAQE1FQUFIQUVCVkZPQ1VTX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNUQVRJQ19TUElOX0lURU06Ok9uRm9jdXMoY2xhc3MgRk9DVVNfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uRm9jdXNAU1RBVElDX1NQSU5fSVRFTUBATUVBQUhBRUJWRk9DVVNfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENPTlRST0xfR1JPVVA6Ok9uR3JvdXBBY3Rpb24oY2xhc3MgQ09OVFJPTF9HUk9VUCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Hcm91cEFjdGlvbkBDT05UUk9MX0dST1VQQEBNRUFBSlBFQVYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIE1BR0lDX0dST1VQOjpPbkdyb3VwQWN0aW9uKGNsYXNzIENPTlRST0xfR1JPVVAgKiBfX3B0cjY0KSBfX3B0cjY0DQorP09uR3JvdXBBY3Rpb25ATUFHSUNfR1JPVVBAQE1FQUFKUEVBVkNPTlRST0xfR1JPVVBAQEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBESUFMT0dfV0lORE9XOjpPbkhlbHAodm9pZCkgX19wdHI2NA0KKz9PbkhlbHBARElBTE9HX1dJTkRPV0BAQUVBQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgR0VUX0ZOQU1FX0JBU0VfRExHOjpPbkhlbHAoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T25IZWxwQEdFVF9GTkFNRV9CQVNFX0RMR0BAUUVBQVhQRUFVSFdORF9fQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIENMSUVOVF9XSU5ET1c6Ok9uS2V5RG93bihjbGFzcyBWS0VZX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PbktleURvd25AQ0xJRU5UX1dJTkRPV0BATUVBQUhBRUJWVktFWV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBESVNQQVRDSEVSOjpPbktleURvd24oY2xhc3MgVktFWV9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25LZXlEb3duQERJU1BBVENIRVJAQE1FQUFIQUVCVlZLRVlfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6T25LZXlEb3duKGNsYXNzIFZLRVlfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uS2V5RG93bkBMT0dPTl9IT1VSU19DT05UUk9MQEBNRUFBSEFFQlZWS0VZX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNQSU5fU0xFX05VTTo6T25LZXlEb3duKGNsYXNzIFZLRVlfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uS2V5RG93bkBTUElOX1NMRV9OVU1AQE1FQUFIQUVCVlZLRVlfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgU1BJTl9TTEVfU1RSOjpPbktleURvd24oY2xhc3MgVktFWV9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25LZXlEb3duQFNQSU5fU0xFX1NUUkBATUVBQUhBRUJWVktFWV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBDTElFTlRfV0lORE9XOjpPbktleVVwKGNsYXNzIFZLRVlfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uS2V5VXBAQ0xJRU5UX1dJTkRPV0BATUVBQUhBRUJWVktFWV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBESVNQQVRDSEVSOjpPbktleVVwKGNsYXNzIFZLRVlfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uS2V5VXBARElTUEFUQ0hFUkBATUVBQUhBRUJWVktFWV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpPbktleVVwKGNsYXNzIFZLRVlfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uS2V5VXBATE9HT05fSE9VUlNfQ09OVFJPTEBATUVBQUhBRUJWVktFWV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX2NkZWNsIE9XTkVSX1dJTkRPVzo6T25MQklNZXNzYWdlcyh1bnNpZ25lZCBpbnQsdW5zaWduZWQgX19pbnQ2NCxfX2ludDY0KQ0KKz9PbkxCSU1lc3NhZ2VzQE9XTkVSX1dJTkRPV0BAS0FISV9LX0pAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIEFSUk9XX0JVVFRPTjo6T25MTW91c2VCdXR0b25EYmxDbGljayhjbGFzcyBNT1VTRV9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25MTW91c2VCdXR0b25EYmxDbGlja0BBUlJPV19CVVRUT05AQE1FQUFIQUVCVk1PVVNFX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIENMSUVOVF9XSU5ET1c6Ok9uTE1vdXNlQnV0dG9uRGJsQ2xpY2soY2xhc3MgTU9VU0VfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uTE1vdXNlQnV0dG9uRGJsQ2xpY2tAQ0xJRU5UX1dJTkRPV0BATUVBQUhBRUJWTU9VU0VfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgRElTUEFUQ0hFUjo6T25MTW91c2VCdXR0b25EYmxDbGljayhjbGFzcyBNT1VTRV9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25MTW91c2VCdXR0b25EYmxDbGlja0BESVNQQVRDSEVSQEBNRUFBSEFFQlZNT1VTRV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBBUlJPV19CVVRUT046Ok9uTE1vdXNlQnV0dG9uRG93bihjbGFzcyBNT1VTRV9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25MTW91c2VCdXR0b25Eb3duQEFSUk9XX0JVVFRPTkBATUVBQUhBRUJWTU9VU0VfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0xJRU5UX1dJTkRPVzo6T25MTW91c2VCdXR0b25Eb3duKGNsYXNzIE1PVVNFX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PbkxNb3VzZUJ1dHRvbkRvd25AQ0xJRU5UX1dJTkRPV0BATUVBQUhBRUJWTU9VU0VfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgRElTUEFUQ0hFUjo6T25MTW91c2VCdXR0b25Eb3duKGNsYXNzIE1PVVNFX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PbkxNb3VzZUJ1dHRvbkRvd25ARElTUEFUQ0hFUkBATUVBQUhBRUJWTU9VU0VfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgSF9TUExJVFRFUl9CQVI6Ok9uTE1vdXNlQnV0dG9uRG93bihjbGFzcyBNT1VTRV9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25MTW91c2VCdXR0b25Eb3duQEhfU1BMSVRURVJfQkFSQEBNRUFBSEFFQlZNT1VTRV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpPbkxNb3VzZUJ1dHRvbkRvd24oY2xhc3MgTU9VU0VfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uTE1vdXNlQnV0dG9uRG93bkBMT0dPTl9IT1VSU19DT05UUk9MQEBNRUFBSEFFQlZNT1VTRV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBBUlJPV19CVVRUT046Ok9uTE1vdXNlQnV0dG9uVXAoY2xhc3MgTU9VU0VfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uTE1vdXNlQnV0dG9uVXBAQVJST1dfQlVUVE9OQEBNRUFBSEFFQlZNT1VTRV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBDTElFTlRfV0lORE9XOjpPbkxNb3VzZUJ1dHRvblVwKGNsYXNzIE1PVVNFX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PbkxNb3VzZUJ1dHRvblVwQENMSUVOVF9XSU5ET1dAQE1FQUFIQUVCVk1PVVNFX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIERJU1BBVENIRVI6Ok9uTE1vdXNlQnV0dG9uVXAoY2xhc3MgTU9VU0VfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uTE1vdXNlQnV0dG9uVXBARElTUEFUQ0hFUkBATUVBQUhBRUJWTU9VU0VfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgSF9TUExJVFRFUl9CQVI6Ok9uTE1vdXNlQnV0dG9uVXAoY2xhc3MgTU9VU0VfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uTE1vdXNlQnV0dG9uVXBASF9TUExJVFRFUl9CQVJAQE1FQUFIQUVCVk1PVVNFX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIExPR09OX0hPVVJTX0NPTlRST0w6Ok9uTE1vdXNlQnV0dG9uVXAoY2xhc3MgTU9VU0VfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uTE1vdXNlQnV0dG9uVXBATE9HT05fSE9VUlNfQ09OVFJPTEBATUVBQUhBRUJWTU9VU0VfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBOVF9MT0NBTEdST1VQX0JST1dTRVJfRElBTE9HOjpPbk1lbWJlcnModm9pZCkgX19wdHI2NA0KKz9Pbk1lbWJlcnNATlRfTE9DQUxHUk9VUF9CUk9XU0VSX0RJQUxPR0BASUVBQUpYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6T25NZW1iZXJzKHZvaWQpIF9fcHRyNjQNCis/T25NZW1iZXJzQE5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQElFQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBBUFBfV0lORE9XOjpPbk1lbnVDb21tYW5kKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9Pbk1lbnVDb21tYW5kQEFQUF9XSU5ET1dAQE1FQUFISUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQVBQX1dJTkRPVzo6T25NZW51SW5pdChjbGFzcyBNRU5VX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Pbk1lbnVJbml0QEFQUF9XSU5ET1dAQE1FQUFIQUVCVk1FTlVfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQVBQX1dJTkRPVzo6T25NZW51U2VsZWN0KGNsYXNzIE1FTlVJVEVNX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Pbk1lbnVTZWxlY3RAQVBQX1dJTkRPV0BATUVBQUhBRUJWTUVOVUlURU1fRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0xJRU5UX1dJTkRPVzo6T25Nb3VzZU1vdmUoY2xhc3MgTU9VU0VfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uTW91c2VNb3ZlQENMSUVOVF9XSU5ET1dAQE1FQUFIQUVCVk1PVVNFX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIERJU1BBVENIRVI6Ok9uTW91c2VNb3ZlKGNsYXNzIE1PVVNFX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Pbk1vdXNlTW92ZUBESVNQQVRDSEVSQEBNRUFBSEFFQlZNT1VTRV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBIX1NQTElUVEVSX0JBUjo6T25Nb3VzZU1vdmUoY2xhc3MgTU9VU0VfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uTW91c2VNb3ZlQEhfU1BMSVRURVJfQkFSQEBNRUFBSEFFQlZNT1VTRV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpPbk1vdXNlTW92ZShjbGFzcyBNT1VTRV9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Nb3VzZU1vdmVATE9HT05fSE9VUlNfQ09OVFJPTEBATUVBQUhBRUJWTU9VU0VfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0xJRU5UX1dJTkRPVzo6T25Nb3ZlKGNsYXNzIE1PVkVfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uTW92ZUBDTElFTlRfV0lORE9XQEBNRUFBSEFFQlZNT1ZFX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIERJU1BBVENIRVI6Ok9uTW92ZShjbGFzcyBNT1ZFX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Pbk1vdmVARElTUEFUQ0hFUkBATUVBQUhBRUJWTU9WRV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBMQkkgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUl9CUk9XU0VSX0xCOjpPbk5ld0l0ZW0odW5zaWduZWQgaW50KSBfX3B0cjY0DQorP09uTmV3SXRlbUBVU0VSX0JST1dTRVJfTEJAQE1FQUFQRUFWTEJJQEBJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBCQVNFX1NFVF9GT0NVU19ETEc6Ok9uT0sodm9pZCkgX19wdHI2NA0KKz9Pbk9LQEJBU0VfU0VUX0ZPQ1VTX0RMR0BATUVBQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIERJQUxPR19XSU5ET1c6Ok9uT0sodm9pZCkgX19wdHI2NA0KKz9Pbk9LQERJQUxPR19XSU5ET1dAQE1FQUFIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBNU0dQT1BVUF9ESUFMT0c6Ok9uT0sodm9pZCkgX19wdHI2NA0KKz9Pbk9LQE1TR1BPUFVQX0RJQUxPR0BATUVBQUhYWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBpbnQgX19jZGVjbCBNU0dfRElBTE9HX0JBU0U6Ok9uT0sodm9pZCkgX19wdHI2NA0KKz9Pbk9LQE1TR19ESUFMT0dfQkFTRUBARUVBQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIE5UX0ZJTkRfQUNDT1VOVF9ESUFMT0c6Ok9uT0sodm9pZCkgX19wdHI2NA0KKz9Pbk9LQE5UX0ZJTkRfQUNDT1VOVF9ESUFMT0dAQE1FQUFIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpPbk9LKHZvaWQpIF9fcHRyNjQNCis/T25PS0BOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgUFJPTVBUX0ZPUl9BTllfRENfRExHOjpPbk9LKHZvaWQpIF9fcHRyNjQNCis/T25PS0BQUk9NUFRfRk9SX0FOWV9EQ19ETEdAQE1FQUFIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBDTElFTlRfV0lORE9XOjpPbk90aGVyKGNsYXNzIEVWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Pbk90aGVyQENMSUVOVF9XSU5ET1dAQE1FQUFIQUVCVkVWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIEFQUF9XSU5ET1c6Ok9uUGFpbnRSZXEodm9pZCkgX19wdHI2NA0KKz9PblBhaW50UmVxQEFQUF9XSU5ET1dAQE1FQUFIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBDTElFTlRfV0lORE9XOjpPblBhaW50UmVxKHZvaWQpIF9fcHRyNjQNCis/T25QYWludFJlcUBDTElFTlRfV0lORE9XQEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgRElTUEFUQ0hFUjo6T25QYWludFJlcSh2b2lkKSBfX3B0cjY0DQorP09uUGFpbnRSZXFARElTUEFUQ0hFUkBATUVBQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIEZPQ1VTX0NIRUNLQk9YOjpPblBhaW50UmVxKHZvaWQpIF9fcHRyNjQNCis/T25QYWludFJlcUBGT0NVU19DSEVDS0JPWEBATUVBQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIEhfU1BMSVRURVJfQkFSOjpPblBhaW50UmVxKHZvaWQpIF9fcHRyNjQNCis/T25QYWludFJlcUBIX1NQTElUVEVSX0JBUkBATUVBQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIExPR09OX0hPVVJTX0NPTlRST0w6Ok9uUGFpbnRSZXEodm9pZCkgX19wdHI2NA0KKz9PblBhaW50UmVxQExPR09OX0hPVVJTX0NPTlRST0xAQE1FQUFIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBNRVRFUjo6T25QYWludFJlcSh2b2lkKSBfX3B0cjY0DQorP09uUGFpbnRSZXFATUVURVJAQE1FQUFIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgRElTUEFUQ0hFUjo6T25RRGxnQ29kZSh2b2lkKSBfX3B0cjY0DQorP09uUURsZ0NvZGVARElTUEFUQ0hFUkBATUVBQUtYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpPblFEbGdDb2RlKHZvaWQpIF9fcHRyNjQNCis/T25RRGxnQ29kZUBMT0dPTl9IT1VSU19DT05UUk9MQEBNRUFBS1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIERJU1BBVENIRVI6Ok9uUUhpdFRlc3QoY2xhc3MgWFlQT0lOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25RSGl0VGVzdEBESVNQQVRDSEVSQEBNRUFBS0FFQlZYWVBPSU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBIX1NQTElUVEVSX0JBUjo6T25RSGl0VGVzdChjbGFzcyBYWVBPSU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PblFIaXRUZXN0QEhfU1BMSVRURVJfQkFSQEBNRUFBS0FFQlZYWVBPSU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpPblFIaXRUZXN0KGNsYXNzIFhZUE9JTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uUUhpdFRlc3RATE9HT05fSE9VUlNfQ09OVFJPTEBATUVBQUtBRUJWWFlQT0lOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBBUFBfV0lORE9XOjpPblFNaW5NYXgoY2xhc3MgUU1JTk1BWF9FVkVOVCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25RTWluTWF4QEFQUF9XSU5ET1dAQE1FQUFIQUVBVlFNSU5NQVhfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIERJU1BBVENIRVI6Ok9uUU1vdXNlQWN0aXZhdGUoY2xhc3MgUU1PVVNFQUNUX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PblFNb3VzZUFjdGl2YXRlQERJU1BBVENIRVJAQE1FQUFLQUVCVlFNT1VTRUFDVF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6T25RTW91c2VBY3RpdmF0ZShjbGFzcyBRTU9VU0VBQ1RfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uUU1vdXNlQWN0aXZhdGVATE9HT05fSE9VUlNfQ09OVFJPTEBATUVBQUtBRUJWUU1PVVNFQUNUX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIERJU1BBVENIRVI6Ok9uUU1vdXNlQ3Vyc29yKGNsYXNzIFFNT1VTRUFDVF9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25RTW91c2VDdXJzb3JARElTUEFUQ0hFUkBATUVBQUhBRUJWUU1PVVNFQUNUX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIEhfU1BMSVRURVJfQkFSOjpPblFNb3VzZUN1cnNvcihjbGFzcyBRTU9VU0VBQ1RfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uUU1vdXNlQ3Vyc29yQEhfU1BMSVRURVJfQkFSQEBNRUFBSEFFQlZRTU9VU0VBQ1RfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6T25RTW91c2VDdXJzb3IoY2xhc3MgUU1PVVNFQUNUX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PblFNb3VzZUN1cnNvckBMT0dPTl9IT1VSU19DT05UUk9MQEBNRUFBSEFFQlZRTU9VU0VBQ1RfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBTTEVfU1RSTEJfR1JPVVA6Ok9uUmVtb3ZlKHZvaWQpIF9fcHRyNjQNCis/T25SZW1vdmVAU0xFX1NUUkxCX0dST1VQQEBJRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0xJRU5UX1dJTkRPVzo6T25SZXNpemUoY2xhc3MgU0laRV9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25SZXNpemVAQ0xJRU5UX1dJTkRPV0BATUVBQUhBRUJWU0laRV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBESVNQQVRDSEVSOjpPblJlc2l6ZShjbGFzcyBTSVpFX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PblJlc2l6ZUBESVNQQVRDSEVSQEBNRUFBSEFFQlZTSVpFX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIEhfU1BMSVRURVJfQkFSOjpPblJlc2l6ZShjbGFzcyBTSVpFX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PblJlc2l6ZUBIX1NQTElUVEVSX0JBUkBATUVBQUhBRUJWU0laRV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBESUFMT0dfV0lORE9XOjpPblNjcm9sbEJhcihjbGFzcyBTQ1JPTExfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uU2Nyb2xsQmFyQERJQUxPR19XSU5ET1dAQE1FQUFIQUVCVlNDUk9MTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBESUFMT0dfV0lORE9XOjpPblNjcm9sbEJhclRodW1iKGNsYXNzIFNDUk9MTF9USFVNQl9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25TY3JvbGxCYXJUaHVtYkBESUFMT0dfV0lORE9XQEBNRUFBSEFFQlZTQ1JPTExfVEhVTUJfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpPblNlYXJjaCh2b2lkKSBfX3B0cjY0DQorP09uU2VhcmNoQE5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQElFQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBDTElFTlRfV0lORE9XOjpPblNlbGVjdChjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PblNlbGVjdEBDTElFTlRfV0lORE9XQEBNRUFBSEFFQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6T25TaG93VXNlcnModm9pZCkgX19wdHI2NA0KKz9PblNob3dVc2Vyc0BOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBJRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIEFQUF9XSU5ET1c6Ok9uU2h1dGRvd24odm9pZCkgX19wdHI2NA0KKz9PblNodXRkb3duQEFQUF9XSU5ET1dAQE1FQUFYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgRElBTE9HX1dJTkRPVzo6T25TeXNDb2xvckNoYW5nZSh2b2lkKSBfX3B0cjY0DQorP09uU3lzQ29sb3JDaGFuZ2VARElBTE9HX1dJTkRPV0BATUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIEFQUF9XSU5ET1c6Ok9uU3lzdGVtQ2hhbmdlKGNsYXNzIFNZU0NIQU5HRV9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25TeXN0ZW1DaGFuZ2VAQVBQX1dJTkRPV0BATUVBQUhBRUJWU1lTQ0hBTkdFX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIEFSUk9XX0JVVFRPTjo6T25UaW1lcihjbGFzcyBUSU1FUl9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25UaW1lckBBUlJPV19CVVRUT05AQE1FQUFIQUVCVlRJTUVSX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIENBTkNFTF9UQVNLX0RJQUxPRzo6T25UaW1lcihjbGFzcyBUSU1FUl9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25UaW1lckBDQU5DRUxfVEFTS19ESUFMT0dAQE1FQUFIQUVCVlRJTUVSX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIENMSUVOVF9XSU5ET1c6Ok9uVGltZXIoY2xhc3MgVElNRVJfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uVGltZXJAQ0xJRU5UX1dJTkRPV0BATUVBQUhBRUJWVElNRVJfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgRElBTE9HX1dJTkRPVzo6T25UaW1lcihjbGFzcyBUSU1FUl9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25UaW1lckBESUFMT0dfV0lORE9XQEBNRUFBSEFFQlZUSU1FUl9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBESVNQQVRDSEVSOjpPblRpbWVyKGNsYXNzIFRJTUVSX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PblRpbWVyQERJU1BBVENIRVJAQE1FQUFIQUVCVlRJTUVSX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFRJTUVSX1dJTkRPVzo6T25UaW1lcihjbGFzcyBUSU1FUl9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25UaW1lckBUSU1FUl9XSU5ET1dAQE1FQUFIQUVCVlRJTUVSX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBUSU1FUl9DQUxMT1VUOjpPblRpbWVyTm90aWZpY2F0aW9uKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9PblRpbWVyTm90aWZpY2F0aW9uQFRJTUVSX0NBTExPVVRAQE1FQUFYSUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENPTlRST0xfR1JPVVA6Ok9uVXNlckFjdGlvbihjbGFzcyBDT05UUk9MX1dJTkRPVyAqIF9fcHRyNjQsY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Vc2VyQWN0aW9uQENPTlRST0xfR1JPVVBAQE1FQUFKUEVBVkNPTlRST0xfV0lORE9XQEBBRUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgQ09OVFJPTF9XSU5ET1c6Ok9uVXNlckFjdGlvbihjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PblVzZXJBY3Rpb25AQ09OVFJPTF9XSU5ET1dAQE1FQUFKQUVCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIExNX09MTEI6Ok9uVXNlckFjdGlvbihjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PblVzZXJBY3Rpb25ATE1fT0xMQkBATUVBQUpBRUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgTUFHSUNfR1JPVVA6Ok9uVXNlckFjdGlvbihjbGFzcyBDT05UUk9MX1dJTkRPVyAqIF9fcHRyNjQsY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Vc2VyQWN0aW9uQE1BR0lDX0dST1VQQEBNRUFBSlBFQVZDT05UUk9MX1dJTkRPV0BAQUVCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIE9SREVSX0dST1VQOjpPblVzZXJBY3Rpb24oY2xhc3MgQ09OVFJPTF9XSU5ET1cgKiBfX3B0cjY0LGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uVXNlckFjdGlvbkBPUkRFUl9HUk9VUEBATUVBQUpQRUFWQ09OVFJPTF9XSU5ET1dAQEFFQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBSQURJT19HUk9VUDo6T25Vc2VyQWN0aW9uKGNsYXNzIENPTlRST0xfV0lORE9XICogX19wdHI2NCxjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PblVzZXJBY3Rpb25AUkFESU9fR1JPVVBAQE1FQUFKUEVBVkNPTlRST0xfV0lORE9XQEBBRUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgU0VUX0NPTlRST0w6Ok9uVXNlckFjdGlvbihjbGFzcyBDT05UUk9MX1dJTkRPVyAqIF9fcHRyNjQsY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Vc2VyQWN0aW9uQFNFVF9DT05UUk9MQEBNRUFBSlBFQVZDT05UUk9MX1dJTkRPV0BAQUVCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFNMRV9TVFJMQl9HUk9VUDo6T25Vc2VyQWN0aW9uKGNsYXNzIENPTlRST0xfV0lORE9XICogX19wdHI2NCxjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PblVzZXJBY3Rpb25AU0xFX1NUUkxCX0dST1VQQEBNRUFBSlBFQVZDT05UUk9MX1dJTkRPV0BAQUVCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFNQSU5fR1JPVVA6Ok9uVXNlckFjdGlvbihjbGFzcyBDT05UUk9MX1dJTkRPVyAqIF9fcHRyNjQsY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Vc2VyQWN0aW9uQFNQSU5fR1JPVVBAQE1FQUFKUEVBVkNPTlRST0xfV0lORE9XQEBBRUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgU1RBVEVMQkdSUDo6T25Vc2VyQWN0aW9uKGNsYXNzIENPTlRST0xfV0lORE9XICogX19wdHI2NCxjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PblVzZXJBY3Rpb25AU1RBVEVMQkdSUEBATUVBQUpQRUFWQ09OVFJPTF9XSU5ET1dAQEFFQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIEJBU0VfU0VUX0ZPQ1VTX0RMRzo6T25Vc2VyTWVzc2FnZShjbGFzcyBFVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Vc2VyTWVzc2FnZUBCQVNFX1NFVF9GT0NVU19ETEdAQE1FQUFIQUVCVkVWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIERJU1BBVENIRVI6Ok9uVXNlck1lc3NhZ2UoY2xhc3MgRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uVXNlck1lc3NhZ2VARElTUEFUQ0hFUkBATUVBQUhBRUJWRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6T25Vc2VyTWVzc2FnZShjbGFzcyBFVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/T25Vc2VyTWVzc2FnZUBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBNRUFBSEFFQlZFVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBPV05FUl9XSU5ET1c6Ok9uVXNlck1lc3NhZ2UoY2xhc3MgRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uVXNlck1lc3NhZ2VAT1dORVJfV0lORE9XQEBNRUFBSEFFQlZFVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgRElBTE9HX1dJTkRPVzo6T25WYWxpZGF0aW9uRXJyb3IodW5zaWduZWQgaW50LGxvbmcpIF9fcHRyNjQNCis/T25WYWxpZGF0aW9uRXJyb3JARElBTE9HX1dJTkRPV0BATUVBQVhJSkBaDQorOyBwcml2YXRlOiBjbGFzcyBMSVNUQk9YICogX19wdHI2NCBfX2NkZWNsIFNFVF9DT05UUk9MOjpPdGhlckxpc3Rib3goY2xhc3MgTElTVEJPWCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/T3RoZXJMaXN0Ym94QFNFVF9DT05UUk9MQEBBRUJBUEVBVkxJU1RCT1hAQFBFQVYyQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIEJST1dTRVJfRE9NQUlOX0xCSTo6UGFpbnQoY2xhc3MgTElTVEJPWCAqIF9fcHRyNjQsc3RydWN0IEhEQ19fICogX19wdHI2NCxzdHJ1Y3QgdGFnUkVDVCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IEdVSUxUVF9JTkZPICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9QYWludEBCUk9XU0VSX0RPTUFJTl9MQklAQFVFQkFYUEVBVkxJU1RCT1hAQFBFQVVIRENfX0BAUEVCVXRhZ1JFQ1RAQFBFQVVHVUlMVFRfSU5GT0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQlJPV1NFUl9ET01BSU5fTEJJX1BCOjpQYWludChjbGFzcyBMSVNUQk9YICogX19wdHI2NCxzdHJ1Y3QgSERDX18gKiBfX3B0cjY0LHN0cnVjdCB0YWdSRUNUIGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgR1VJTFRUX0lORk8gKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1BhaW50QEJST1dTRVJfRE9NQUlOX0xCSV9QQkBAVUVCQVhQRUFWTElTVEJPWEBAUEVBVUhEQ19fQEBQRUJVdGFnUkVDVEBAUEVBVUdVSUxUVF9JTkZPQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDT1VOVEVEX1NUUl9EVEU6OlBhaW50KHN0cnVjdCBIRENfXyAqIF9fcHRyNjQsc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1BhaW50QENPVU5URURfU1RSX0RURUBAVUVCQVhQRUFVSERDX19AQFBFQlV0YWdSRUNUQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBESVNQTEFZX01BUDo6UGFpbnQoc3RydWN0IEhEQ19fICogX19wdHI2NCxpbnQsaW50KWNvbnN0ICBfX3B0cjY0DQorP1BhaW50QERJU1BMQVlfTUFQQEBRRUJBSFBFQVVIRENfX0BASEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgRElTUExBWV9UQUJMRTo6UGFpbnQoY2xhc3MgTElTVEJPWCAqIF9fcHRyNjQsc3RydWN0IEhEQ19fICogX19wdHI2NCxzdHJ1Y3QgdGFnUkVDVCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UGFpbnRARElTUExBWV9UQUJMRUBAUUVCQVhQRUFWTElTVEJPWEBAUEVBVUhEQ19fQEBQRUJVdGFnUkVDVEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIERJU1BMQVlfVEFCTEU6OlBhaW50KGNsYXNzIExJU1RCT1ggKiBfX3B0cjY0LHN0cnVjdCBIRENfXyAqIF9fcHRyNjQsc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBHVUlMVFRfSU5GTyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UGFpbnRARElTUExBWV9UQUJMRUBAUUVCQVhQRUFWTElTVEJPWEBAUEVBVUhEQ19fQEBQRUJVdGFnUkVDVEBAUEVBVUdVSUxUVF9JTkZPQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBETV9EVEU6OlBhaW50KHN0cnVjdCBIRENfXyAqIF9fcHRyNjQsc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1BhaW50QERNX0RURUBAVUVCQVhQRUFVSERDX19AQFBFQlV0YWdSRUNUQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBMQkk6OlBhaW50KGNsYXNzIExJU1RCT1ggKiBfX3B0cjY0LHN0cnVjdCBIRENfXyAqIF9fcHRyNjQsc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBHVUlMVFRfSU5GTyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UGFpbnRATEJJQEBVRUJBWFBFQVZMSVNUQk9YQEBQRUFVSERDX19AQFBFQlV0YWdSRUNUQEBQRUFVR1VJTFRUX0lORk9AQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE1FVEFMTElDX1NUUl9EVEU6OlBhaW50KHN0cnVjdCBIRENfXyAqIF9fcHRyNjQsc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1BhaW50QE1FVEFMTElDX1NUUl9EVEVAQFVFQkFYUEVBVUhEQ19fQEBQRUJVdGFnUkVDVEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgTVVMVElMSU5FX1NUUl9EVEU6OlBhaW50KHN0cnVjdCBIRENfXyAqIF9fcHRyNjQsc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1BhaW50QE1VTFRJTElORV9TVFJfRFRFQEBVRUJBWFBFQVVIRENfX0BAUEVCVXRhZ1JFQ1RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE9MTEJfRU5UUlk6OlBhaW50KGNsYXNzIExJU1RCT1ggKiBfX3B0cjY0LHN0cnVjdCBIRENfXyAqIF9fcHRyNjQsc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBHVUlMVFRfSU5GTyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UGFpbnRAT0xMQl9FTlRSWUBAVUVCQVhQRUFWTElTVEJPWEBAUEVBVUhEQ19fQEBQRUJVdGFnUkVDVEBAUEVBVUdVSUxUVF9JTkZPQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBPV05FUl9EUkFXX0RNSURfRFRFOjpQYWludChzdHJ1Y3QgSERDX18gKiBfX3B0cjY0LHN0cnVjdCB0YWdSRUNUIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9QYWludEBPV05FUl9EUkFXX0RNSURfRFRFQEBVRUJBWFBFQVVIRENfX0BAUEVCVXRhZ1JFQ1RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE9XTkVSX0RSQVdfTVVMVElMSU5FX1NUUl9EVEU6OlBhaW50KHN0cnVjdCBIRENfXyAqIF9fcHRyNjQsc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1BhaW50QE9XTkVSX0RSQVdfTVVMVElMSU5FX1NUUl9EVEVAQFVFQkFYUEVBVUhEQ19fQEBQRUJVdGFnUkVDVEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgT1dORVJfRFJBV19TVFJfRFRFOjpQYWludChzdHJ1Y3QgSERDX18gKiBfX3B0cjY0LHN0cnVjdCB0YWdSRUNUIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9QYWludEBPV05FUl9EUkFXX1NUUl9EVEVAQFVFQkFYUEVBVUhEQ19fQEBQRUJVdGFnUkVDVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgU1RMQklURU06OlBhaW50KGNsYXNzIExJU1RCT1ggKiBfX3B0cjY0LHN0cnVjdCBIRENfXyAqIF9fcHRyNjQsc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBHVUlMVFRfSU5GTyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UGFpbnRAU1RMQklURU1AQE1FQkFYUEVBVkxJU1RCT1hAQFBFQVVIRENfX0BAUEVCVXRhZ1JFQ1RAQFBFQVVHVUlMVFRfSU5GT0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgU1RSX0RURTo6UGFpbnQoc3RydWN0IEhEQ19fICogX19wdHI2NCxzdHJ1Y3QgdGFnUkVDVCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UGFpbnRAU1RSX0RURUBAVUVCQVhQRUFVSERDX19AQFBFQlV0YWdSRUNUQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTVFJfRFRFX0VMTElQU0lTOjpQYWludChzdHJ1Y3QgSERDX18gKiBfX3B0cjY0LHN0cnVjdCB0YWdSRUNUIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9QYWludEBTVFJfRFRFX0VMTElQU0lTQEBVRUJBWFBFQVVIRENfX0BAUEVCVXRhZ1JFQ1RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQkk6OlBhaW50KGNsYXNzIExJU1RCT1ggKiBfX3B0cjY0LHN0cnVjdCBIRENfXyAqIF9fcHRyNjQsc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBHVUlMVFRfSU5GTyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UGFpbnRAVVNFUl9CUk9XU0VSX0xCSUBAVUVCQVhQRUFWTElTVEJPWEBAUEVBVUhEQ19fQEBQRUJVdGFnUkVDVEBAUEVBVUdVSUxUVF9JTkZPQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQUNDT1VOVF9OQU1FU19NTEU6OlBhcnNlVXNlck5hbWVMaXN0KGNsYXNzIFNUUkxJU1QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QYXJzZVVzZXJOYW1lTGlzdEBBQ0NPVU5UX05BTUVTX01MRUBASUVBQUpQRUFWU1RSTElTVEBAUEVCR0BaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTVNHUE9QVVBfRElBTE9HOjpQbGFjZUJ1dHRvbnModm9pZCkgX19wdHI2NA0KKz9QbGFjZUJ1dHRvbnNATVNHUE9QVVBfRElBTE9HQEBBRUFBWFhaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgQkxUX0RBVEVfU1BJTl9HUk9VUDo6UGxhY2VDb250cm9sKGludCxjbGFzcyBPV05FUl9XSU5ET1cgKiBfX3B0cjY0LGNsYXNzIElOVExfUFJPRklMRSBjb25zdCAmIF9fcHRyNjQsY2xhc3MgWFlQT0lOVCBjb25zdCAmIF9fcHRyNjQsY2xhc3MgWFlESU1FTlNJT04gY29uc3QgJiBfX3B0cjY0LGNsYXNzIFhZUE9JTlQgY29uc3QgJiBfX3B0cjY0LGNsYXNzIFhZRElNRU5TSU9OIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBYWVBPSU5UIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBYWURJTUVOU0lPTiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UGxhY2VDb250cm9sQEJMVF9EQVRFX1NQSU5fR1JPVVBAQEFFQUFKSFBFQVZPV05FUl9XSU5ET1dAQEFFQlZJTlRMX1BST0ZJTEVAQEFFQlZYWVBPSU5UQEBBRUJWWFlESU1FTlNJT05AQDIzMjNAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBET01BSU5fRklMTF9USFJFQUQ6OlBvc3RNYWluKHZvaWQpIF9fcHRyNjQNCis/UG9zdE1haW5ARE9NQUlOX0ZJTExfVEhSRUFEQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIEZPQ1VTRExHX0RBVEFfVEhSRUFEOjpQb3N0TWFpbih2b2lkKSBfX3B0cjY0DQorP1Bvc3RNYWluQEZPQ1VTRExHX0RBVEFfVEhSRUFEQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFdJTjMyX1RIUkVBRDo6UG9zdE1haW4odm9pZCkgX19wdHI2NA0KKz9Qb3N0TWFpbkBXSU4zMl9USFJFQURAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgV0lOMzJfVEhSRUFEOjpQcmVNYWluKHZvaWQpIF9fcHRyNjQNCis/UHJlTWFpbkBXSU4zMl9USFJFQURAQE1FQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEJBU0VfU0VUX0ZPQ1VTX0RMRzo6UHJvY2VzcyhpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1Byb2Nlc3NAQkFTRV9TRVRfRk9DVVNfRExHQEBRRUFBSlBFQUhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQkFTRV9TRVRfRk9DVVNfRExHOjpQcm9jZXNzKHVuc2lnbmVkIGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UHJvY2Vzc0BCQVNFX1NFVF9GT0NVU19ETEdAQFFFQUFKUEVBSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBESUFMT0dfV0lORE9XOjpQcm9jZXNzKGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UHJvY2Vzc0BESUFMT0dfV0lORE9XQEBRRUFBSlBFQUhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgRElBTE9HX1dJTkRPVzo6UHJvY2Vzcyh1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1Byb2Nlc3NARElBTE9HX1dJTkRPV0BAUUVBQUpQRUFJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEVYUEFOREFCTEVfRElBTE9HOjpQcm9jZXNzKGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UHJvY2Vzc0BFWFBBTkRBQkxFX0RJQUxPR0BAUUVBQUpQRUFIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEVYUEFOREFCTEVfRElBTE9HOjpQcm9jZXNzKHVuc2lnbmVkIGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UHJvY2Vzc0BFWFBBTkRBQkxFX0RJQUxPR0BAUUVBQUpQRUFJQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgR0VUX09QRU5fRklMRU5BTUVfRExHOjpQcm9jZXNzKGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UHJvY2Vzc0BHRVRfT1BFTl9GSUxFTkFNRV9ETEdAQFVFQUFKUEVBSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIEdFVF9TQVZFX0ZJTEVOQU1FX0RMRzo6UHJvY2VzcyhpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1Byb2Nlc3NAR0VUX1NBVkVfRklMRU5BTUVfRExHQEBVRUFBSlBFQUhAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIFdJTjMyX0ZPTlRfUElDS0VSOjpQcm9jZXNzKGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQsaW50ICogX19wdHI2NCxjbGFzcyBGT05UICogX19wdHI2NCxzdHJ1Y3QgdGFnTE9HRk9OVFcgKiBfX3B0cjY0LHN0cnVjdCB0YWdDSE9PU0VGT05UVyAqIF9fcHRyNjQpDQorP1Byb2Nlc3NAV0lOMzJfRk9OVF9QSUNLRVJAQFNBSlBFQVZPV05FUl9XSU5ET1dAQFBFQUhQRUFWRk9OVEBAUEVBVXRhZ0xPR0ZPTlRXQEBQRUFVdGFnQ0hPT1NFRk9OVFdAQEBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgQkFTRV9TRVRfRk9DVVNfRExHOjpQcm9jZXNzTmV0UGF0aChjbGFzcyBOTFNfU1RSICogX19wdHI2NCxsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9Qcm9jZXNzTmV0UGF0aEBCQVNFX1NFVF9GT0NVU19ETEdAQEFFQUFKUEVBVk5MU19TVFJAQFBFQUpAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgV0lOMzJfRVZFTlQ6OlB1bHNlKHZvaWQpIF9fcHRyNjQNCis/UHVsc2VAV0lOMzJfRVZFTlRAQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQkk6OlF1YWxpZnlEaXNwbGF5TmFtZSh2b2lkKSBfX3B0cjY0DQorP1F1YWxpZnlEaXNwbGF5TmFtZUBVU0VSX0JST1dTRVJfTEJJQEBRRUFBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgSElDT05fXyAqIF9fcHRyNjQgX19jZGVjbCBDVVJTT1I6OlF1ZXJ5KHZvaWQpDQorP1F1ZXJ5QENVUlNPUkBAU0FQRUFVSElDT05fX0BAWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgU1BJTl9JVEVNOjpRdWVyeUFjY0NoYXJQb3ModW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/UXVlcnlBY2NDaGFyUG9zQFNQSU5fSVRFTUBAVUVBQUpHQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgU1BJTl9TTEVfU1RSOjpRdWVyeUFjY0NoYXJQb3ModW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/UXVlcnlBY2NDaGFyUG9zQFNQSU5fU0xFX1NUUkBAVUVBQUpHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNQSU5fSVRFTTo6UXVlcnlBY2NLZXkoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlBY2NLZXlAU1BJTl9JVEVNQEBRRUFBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBPUEVOX0xCSV9CQVNFOjpRdWVyeUFjY2Vzc05hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUFjY2Vzc05hbWVAT1BFTl9MQklfQkFTRUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBjbGFzcyBTQU1fRE9NQUlOICogX19wdHI2NCBfX2NkZWNsIEJST1dTRVJfRE9NQUlOOjpRdWVyeUFjY291bnREb21haW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUFjY291bnREb21haW5AQlJPV1NFUl9ET01BSU5AQFFFQkFQRUFWU0FNX0RPTUFJTkBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQlJPV1NFUl9TVUJKRUNUOjpRdWVyeUFjY291bnROYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBY2NvdW50TmFtZUBCUk9XU0VSX1NVQkpFQ1RAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUl9CUk9XU0VSX0xCSTo6UXVlcnlBY2NvdW50TmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QWNjb3VudE5hbWVAVVNFUl9CUk9XU0VSX0xCSUBAUUVCQVBFQkdYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIEhfU1BMSVRURVJfQkFSOjpRdWVyeUFjdGl2ZUFyZWEodm9pZCkgX19wdHI2NA0KKz9RdWVyeUFjdGl2ZUFyZWFASF9TUExJVFRFUl9CQVJAQE1FQUFIWFoNCis7IHByb3RlY3RlZDogY2xhc3MgUFVTSF9CVVRUT04gKiBfX3B0cjY0IF9fY2RlY2wgU0xFX1NUUkxCX0dST1VQOjpRdWVyeUFkZEJ1dHRvbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QWRkQnV0dG9uQFNMRV9TVFJMQl9HUk9VUEBASUVCQVBFQVZQVVNIX0JVVFRPTkBAWFoNCis7IHB1YmxpYzogY2xhc3MgQURNSU5fQVVUSE9SSVRZICogX19wdHI2NCBfX2NkZWNsIEJST1dTRVJfRE9NQUlOOjpRdWVyeUFkbWluQXV0aG9yaXR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBZG1pbkF1dGhvcml0eUBCUk9XU0VSX0RPTUFJTkBAUUVCQVBFQVZBRE1JTl9BVVRIT1JJVFlAQFhaDQorOyBwdWJsaWM6IGNsYXNzIEFETUlOX0FVVEhPUklUWSAqIF9fcHRyNjQgX19jZGVjbCBET01BSU5fRklMTF9USFJFQUQ6OlF1ZXJ5QWRtaW5BdXRob3JpdHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUFkbWluQXV0aG9yaXR5QERPTUFJTl9GSUxMX1RIUkVBREBAUUVCQVBFQVZBRE1JTl9BVVRIT1JJVFlAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFVJX0RPTUFJTjo6UXVlcnlBbnlEQyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QW55RENAVUlfRE9NQUlOQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE9XTkVSX1dJTkRPVzo6UXVlcnlBdHRyaWJ1dGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9RdWVyeUF0dHJpYnV0ZUBPV05FUl9XSU5ET1dAQFFFQUFIS0BaDQorOyBwdWJsaWM6IGNsYXNzIEFVRElUX0NIRUNLQk9YRVMgKiBfX3B0cjY0IF9fY2RlY2wgU0VUX09GX0FVRElUX0NBVEVHT1JJRVM6OlF1ZXJ5QXVkaXRDaGVja0JveChpbnQpIF9fcHRyNjQNCis/UXVlcnlBdWRpdENoZWNrQm94QFNFVF9PRl9BVURJVF9DQVRFR09SSUVTQEBRRUFBUEVBVkFVRElUX0NIRUNLQk9YRVNAQEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBERVZJQ0VfQ09OVEVYVDo6UXVlcnlBdmVDaGFyV2lkdGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUF2ZUNoYXJXaWR0aEBERVZJQ0VfQ09OVEVYVEBAUUVCQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6UXVlcnlCaWdEZWNWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QmlnRGVjVmFsdWVAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFVFQkFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU1BJTl9TTEVfVkFMSURfU0VDT05EOjpRdWVyeUJpZ0RlY1ZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlCaWdEZWNWYWx1ZUBTUElOX1NMRV9WQUxJRF9TRUNPTkRAQFVFQkFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0hBTkdFQUJMRV9TUElOX0lURU06OlF1ZXJ5QmlnSW5jVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUJpZ0luY1ZhbHVlQENIQU5HRUFCTEVfU1BJTl9JVEVNQEBVRUJBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIFNQSU5fU0xFX1ZBTElEX1NFQ09ORDo6UXVlcnlCaWdJbmNWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QmlnSW5jVmFsdWVAU1BJTl9TTEVfVkFMSURfU0VDT05EQEBVRUJBS1haDQorOyBwdWJsaWM6IGNsYXNzIEJJVEZJRUxEICogX19wdHI2NCBfX2NkZWNsIFNUUklOR19CSVRTRVRfUEFJUjo6UXVlcnlCaXRmaWVsZCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5Qml0ZmllbGRAU1RSSU5HX0JJVFNFVF9QQUlSQEBRRUFBUEVBVkJJVEZJRUxEQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSEJJVE1BUF9fICogX19wdHI2NCBfX2NkZWNsIERJU1BMQVlfTUFQOjpRdWVyeUJpdG1hcEhhbmRsZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Qml0bWFwSGFuZGxlQERJU1BMQVlfTUFQQEBRRUJBUEVBVUhCSVRNQVBfX0BAWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE1BU0tfTUFQOjpRdWVyeUJpdHModW5zaWduZWQgaW50LGNsYXNzIEJJVEZJRUxEICogX19wdHI2NCxjbGFzcyBOTFNfU1RSICogX19wdHI2NCxpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5Qml0c0BNQVNLX01BUEBAUUVBQUpJUEVBVkJJVEZJRUxEQEBQRUFWTkxTX1NUUkBAUEVBSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFhZUkVDVDo6UXVlcnlCb3R0b20odm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUJvdHRvbUBYWVJFQ1RAQFFFQkFIWFoNCis7IHB1YmxpYzogY2xhc3MgQlJPV1NFUl9ET01BSU4gKiBfX3B0cjY0IF9fY2RlY2wgQlJPV1NFUl9ET01BSU5fTEJJOjpRdWVyeUJyb3dzZXJEb21haW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUJyb3dzZXJEb21haW5AQlJPV1NFUl9ET01BSU5fTEJJQEBRRUJBUEVBVkJST1dTRVJfRE9NQUlOQEBYWg0KKzsgcHVibGljOiBjbGFzcyBCUk9XU0VSX0RPTUFJTiAqIF9fcHRyNjQgX19jZGVjbCBCUk9XU0VSX0RPTUFJTl9MQklfUEI6OlF1ZXJ5QnJvd3NlckRvbWFpbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QnJvd3NlckRvbWFpbkBCUk9XU0VSX0RPTUFJTl9MQklfUEJAQFFFQkFQRUFWQlJPV1NFUl9ET01BSU5AQFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgTlRfTUVNT1JZOjpRdWVyeUJ1ZmZlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QnVmZmVyQE5UX01FTU9SWUBASUVCQVBFQVhYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEVOVU1fT0JKX0JBU0U6OlF1ZXJ5QnVmZmVyUHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlCdWZmZXJQdHJARU5VTV9PQkpfQkFTRUBASUVCQVBFQkVYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0RPTUFJTl9ESVNQTEFZX0dST1VQIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE5UX0dST1VQX0VOVU1fT0JKOjpRdWVyeUJ1ZmZlclB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QnVmZmVyUHRyQE5UX0dST1VQX0VOVU1fT0JKQEBRRUJBUEVCVV9ET01BSU5fRElTUExBWV9HUk9VUEBAWFoNCis7IHB1YmxpYzogc3RydWN0IF9TRVJWRVJfSU5GT18xMDEgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgU0VSVkVSMV9FTlVNX09CSjo6UXVlcnlCdWZmZXJQdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUJ1ZmZlclB0ckBTRVJWRVIxX0VOVU1fT0JKQEBRRUJBUEVCVV9TRVJWRVJfSU5GT18xMDFAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFNBTV9ET01BSU4gKiBfX3B0cjY0IF9fY2RlY2wgQlJPV1NFUl9ET01BSU46OlF1ZXJ5QnVpbHRpbkRvbWFpbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QnVpbHRpbkRvbWFpbkBCUk9XU0VSX0RPTUFJTkBAUUVCQVBFQVZTQU1fRE9NQUlOQEBYWg0KKzsgcHJpdmF0ZTogY2xhc3MgUFVTSF9CVVRUT04gKiBfX3B0cjY0IF9fY2RlY2wgTVNHUE9QVVBfRElBTE9HOjpRdWVyeUJ1dHRvbih1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/UXVlcnlCdXR0b25ATVNHUE9QVVBfRElBTE9HQEBBRUFBUEVBVlBVU0hfQlVUVE9OQEBJQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTElTVF9DT05UUk9MOjpRdWVyeUNhcmV0SW5kZXgodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNhcmV0SW5kZXhATElTVF9DT05UUk9MQEBRRUJBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ0hBUl9FVkVOVDo6UXVlcnlDaGFyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDaGFyQENIQVJfRVZFTlRAQFFFQkFHWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RBVEUyX0JVVFRPTl9DT05UUk9MOjpRdWVyeUNoZWNrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDaGVja0BTVEFURTJfQlVUVE9OX0NPTlRST0xAQFFFQkFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgQ09OVFJPTF9FTlRSWTo6UXVlcnlDaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNpZEBDT05UUk9MX0VOVFJZQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIENPTlRST0xfRVZFTlQ6OlF1ZXJ5Q2lkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDaWRAQ09OVFJPTF9FVkVOVEBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBDT05UUk9MX1dJTkRPVzo6UXVlcnlDaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNpZEBDT05UUk9MX1dJTkRPV0BAUUVCQUlYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV0lORE9XOjpRdWVyeUNsaWVudFJlY3Qoc3RydWN0IHRhZ1JFQ1QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q2xpZW50UmVjdEBXSU5ET1dAQFFFQkFYUEVBVXRhZ1JFQ1RAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXSU5ET1c6OlF1ZXJ5Q2xpZW50UmVjdChjbGFzcyBYWVJFQ1QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q2xpZW50UmVjdEBXSU5ET1dAQFFFQkFYUEVBVlhZUkVDVEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgQ09OVFJPTF9FVkVOVDo6UXVlcnlDb2RlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDb2RlQENPTlRST0xfRVZFTlRAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFNUQVRFTEI6OlF1ZXJ5Q29sRGF0YSh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5Q29sRGF0YUBTVEFURUxCQEBRRUFBUEVCSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBCUk9XU0VSX0RPTUFJTl9DQjo6UXVlcnlDb2xXaWR0aEFycmF5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDb2xXaWR0aEFycmF5QEJST1dTRVJfRE9NQUlOX0NCQEBRRUJBUEVCSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBVU0VSX0JST1dTRVJfTEI6OlF1ZXJ5Q29sV2lkdGhBcnJheSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q29sV2lkdGhBcnJheUBVU0VSX0JST1dTRVJfTEJAQFFFQkFQRUJJWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENPTlRST0xfV0lORE9XOjpRdWVyeUNvbWJvYm94Q2xhc3NOYW1lKHZvaWQpDQorP1F1ZXJ5Q29tYm9ib3hDbGFzc05hbWVAQ09OVFJPTF9XSU5ET1dAQEtBUEVCR1haDQorOyBwdWJsaWM6IGVudW0gU0NST0xMX0VWRU5UOjpTQ1JPTExfQ09NTUFORCAgX19jZGVjbCBTQ1JPTExfRVZFTlQ6OlF1ZXJ5Q29tbWFuZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q29tbWFuZEBTQ1JPTExfRVZFTlRAQFFFQkE/QVc0U0NST0xMX0NPTU1BTkRAMUBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBCUk9XU0VSX1NVQkpFQ1Q6OlF1ZXJ5Q29tbWVudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q29tbWVudEBCUk9XU0VSX1NVQkpFQ1RAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE5UX0dST1VQX0VOVU1fT0JKOjpRdWVyeUNvbW1lbnQoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDb21tZW50QE5UX0dST1VQX0VOVU1fT0JKQEBRRUJBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBTRVJWRVIxX0VOVU1fT0JKOjpRdWVyeUNvbW1lbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNvbW1lbnRAU0VSVkVSMV9FTlVNX09CSkBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBVU0VSX0JST1dTRVJfTEJJOjpRdWVyeUNvbW1lbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNvbW1lbnRAVVNFUl9CUk9XU0VSX0xCSUBAUUVCQVBFQkdYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCAoX19jZGVjbCpfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6OlF1ZXJ5Q29tcGFyZU1ldGhvZCh2b2lkKWNvbnN0ICBfX3B0cjY0KSh2b2lkIGNvbnN0ICogX19wdHI2NCx2b2lkIGNvbnN0ICogX19wdHI2NCkNCis/UXVlcnlDb21wYXJlTWV0aG9kQFVTRVJfQlJPV1NFUl9MQklfQ0FDSEVAQE1FQkFQNkFIUEVCWDBAWlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IChfX2NkZWNsKl9fY2RlY2wgVVNFUl9MQklfQ0FDSEU6OlF1ZXJ5Q29tcGFyZU1ldGhvZCh2b2lkKWNvbnN0ICBfX3B0cjY0KSh2b2lkIGNvbnN0ICogX19wdHI2NCx2b2lkIGNvbnN0ICogX19wdHI2NCkNCis/UXVlcnlDb21wYXJlTWV0aG9kQFVTRVJfTEJJX0NBQ0hFQEBNRUJBUDZBSFBFQlgwQFpYWg0KKzsgcHVibGljOiBjbGFzcyBDT05UUk9MX1ZBTFVFICogX19wdHI2NCBfX2NkZWNsIENPTlRST0xWQUxfQ0lEX1BBSVI6OlF1ZXJ5Q29udFZhbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q29udFZhbEBDT05UUk9MVkFMX0NJRF9QQUlSQEBRRUJBUEVBVkNPTlRST0xfVkFMVUVAQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTUElOX1NMRV9OVU06OlF1ZXJ5Q29udGVudCh1bnNpZ25lZCBsb25nICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNvbnRlbnRAU1BJTl9TTEVfTlVNQEBRRUJBWFBFQUtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU1BJTl9TTEVfTlVNOjpRdWVyeUNvbnRlbnQoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDb250ZW50QFNQSU5fU0xFX05VTUBAUUVCQVhQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNQSU5fU0xFX1NUUjo6UXVlcnlDb250ZW50KGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q29udGVudEBTUElOX1NMRV9TVFJAQFFFQkFKUEVBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGNsYXNzIENPTlRST0xfV0lORE9XICogX19wdHI2NCBfX2NkZWNsIENVU1RPTV9DT05UUk9MOjpRdWVyeUNvbnRyb2xXaW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNvbnRyb2xXaW5AQ1VTVE9NX0NPTlRST0xAQFFFQkFQRUFWQ09OVFJPTF9XSU5ET1dAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIEFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVI6OlF1ZXJ5Q291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNvdW50QEFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVJAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgQklURklFTEQ6OlF1ZXJ5Q291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNvdW50QEJJVEZJRUxEQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIENPTlRST0xfVEFCTEU6OlF1ZXJ5Q291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNvdW50QENPTlRST0xfVEFCTEVAQFFFQkFJWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ09VTlRFRF9TVFJfRFRFOjpRdWVyeUNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDb3VudEBDT1VOVEVEX1NUUl9EVEVAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSEVBUF9CQVNFOjpRdWVyeUNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDb3VudEBIRUFQX0JBU0VAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTElTVF9DT05UUk9MOjpRdWVyeUNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDb3VudEBMSVNUX0NPTlRST0xAQFFFQkFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTUFTS19NQVA6OlF1ZXJ5Q291bnQodm9pZCkgX19wdHI2NA0KKz9RdWVyeUNvdW50QE1BU0tfTUFQQEBRRUFBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOVF9NRU1PUlk6OlF1ZXJ5Q291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNvdW50QE5UX01FTU9SWUBAUUVCQUtYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBSQURJT19HUk9VUDo6UXVlcnlDb3VudCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5Q291bnRAUkFESU9fR1JPVVBAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU0VUX09GX0FVRElUX0NBVEVHT1JJRVM6OlF1ZXJ5Q291bnQodm9pZCkgX19wdHI2NA0KKz9RdWVyeUNvdW50QFNFVF9PRl9BVURJVF9DQVRFR09SSUVTQEBRRUFBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFOjpRdWVyeUNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDb3VudEBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFQEBRRUJBS1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFVTRVJfTEJJX0NBQ0hFOjpRdWVyeUNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDb3VudEBVU0VSX0xCSV9DQUNIRUBAUUVCQUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBVU1JMQl9OVF9HUk9VUF9FTlVNOjpRdWVyeUNvdW50UHJlZmVyZW5jZXModW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1F1ZXJ5Q291bnRQcmVmZXJlbmNlc0BVU1JMQl9OVF9HUk9VUF9FTlVNQEBNRUFBSlBFQUswSUtLS0BaDQorOyBwdWJsaWM6IGNsYXNzIENPTlRST0xfV0lORE9XICogX19wdHI2NCBfX2NkZWNsIENPTlRST0xfRU5UUlk6OlF1ZXJ5Q3RybFB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q3RybFB0ckBDT05UUk9MX0VOVFJZQEBRRUJBUEVBVkNPTlRST0xfV0lORE9XQEBYWg0KKzsgcHVibGljOiBjbGFzcyBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFICogX19wdHI2NCBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQjo6UXVlcnlDdXJyZW50Q2FjaGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUN1cnJlbnRDYWNoZUBVU0VSX0JST1dTRVJfTEJAQFFFQkFQRUFWVVNFUl9CUk9XU0VSX0xCSV9DQUNIRUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQlJPV1NFUl9ET01BSU4gKiBfX3B0cjY0IF9fY2RlY2wgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6UXVlcnlDdXJyZW50RG9tYWluRm9jdXModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUN1cnJlbnREb21haW5Gb2N1c0BOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRRUJBUEVBVkJST1dTRVJfRE9NQUlOQEBYWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBTUElOX0lURU0gKiBfX3B0cjY0IF9fY2RlY2wgU1BJTl9HUk9VUDo6UXVlcnlDdXJyZW50RmllbGQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUN1cnJlbnRGaWVsZEBTUElOX0dST1VQQEBJRUJBUEVBVlNQSU5fSVRFTUBAWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTElTVF9DT05UUk9MOjpRdWVyeUN1cnJlbnRJdGVtKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDdXJyZW50SXRlbUBMSVNUX0NPTlRST0xAQFFFQkFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6UXVlcnlEQ29mUHJpbWFyeURvbWFpbih2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5RENvZlByaW1hcnlEb21haW5ATlRfVVNFUl9CUk9XU0VSX0RJQUxPR0BAUUVBQVBFQkdYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBCTFRfREFURV9TUElOX0dST1VQOjpRdWVyeURheSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RGF5QEJMVF9EQVRFX1NQSU5fR1JPVVBAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV0lOX1RJTUU6OlF1ZXJ5RGF5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEYXlAV0lOX1RJTUVAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSU5UTF9QUk9GSUxFOjpRdWVyeURheVBvcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RGF5UG9zQElOVExfUFJPRklMRUBAUUVCQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgVUlfRVhUOjpRdWVyeURlbHRhKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEZWx0YUBVSV9FWFRAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFVJX0VYVF9NR1I6OlF1ZXJ5RGVsdGFEZWx0YSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RGVsdGFEZWx0YUBVSV9FWFRfTUdSQEBRRUJBS1haDQorOyBwcml2YXRlOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBISUVSX0xCSTo6UXVlcnlEZXNjZW5kYW50cyh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5RGVzY2VuZGFudHNASElFUl9MQklAQEFFQUFJWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSF9TUExJVFRFUl9CQVI6OlF1ZXJ5RGVzaXJlZEhlaWdodCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5RGVzaXJlZEhlaWdodEBIX1NQTElUVEVSX0JBUkBAUUVBQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgREVWSUNFX0NPTUJPOjpRdWVyeURldmljZShjbGFzcyBOTFNfU1RSICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeURldmljZUBERVZJQ0VfQ09NQk9AQFFFQkFKUEVBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBIQklUTUFQX18gKiBfX3B0cjY0IF9fY2RlY2wgR1JBUEhJQ0FMX0JVVFRPTl9XSVRIX0RJU0FCTEU6OlF1ZXJ5RGlzYWJsZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RGlzYWJsZUBHUkFQSElDQUxfQlVUVE9OX1dJVEhfRElTQUJMRUBAUUVCQVBFQVVIQklUTUFQX19AQFhaDQorOyBwdWJsaWM6IGNsYXNzIERJU1BMQVlfTUFQICogX19wdHI2NCBfX2NkZWNsIEJST1dTRVJfRE9NQUlOX0NCOjpRdWVyeURpc3BsYXlNYXAoY2xhc3MgQlJPV1NFUl9ET01BSU5fTEJJIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeURpc3BsYXlNYXBAQlJPV1NFUl9ET01BSU5fQ0JAQFFFQUFQRUFWRElTUExBWV9NQVBAQFBFQlZCUk9XU0VSX0RPTUFJTl9MQklAQEBaDQorOyBwdWJsaWM6IGNsYXNzIERJU1BMQVlfTUFQICogX19wdHI2NCBfX2NkZWNsIERNX0RURTo6UXVlcnlEaXNwbGF5TWFwKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEaXNwbGF5TWFwQERNX0RURUBAUUVCQVBFQVZESVNQTEFZX01BUEBAWFoNCis7IHB1YmxpYzogY2xhc3MgRElTUExBWV9NQVAgKiBfX3B0cjY0IF9fY2RlY2wgU1VCSkVDVF9CSVRNQVBfQkxPQ0s6OlF1ZXJ5RGlzcGxheU1hcChpbnQsaW50LGludCkgX19wdHI2NA0KKz9RdWVyeURpc3BsYXlNYXBAU1VCSkVDVF9CSVRNQVBfQkxPQ0tAQFFFQUFQRUFWRElTUExBWV9NQVBAQEhISEBaDQorOyBwdWJsaWM6IGNsYXNzIERJU1BMQVlfTUFQICogX19wdHI2NCBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQjo6UXVlcnlEaXNwbGF5TWFwKGNsYXNzIFVTRVJfQlJPV1NFUl9MQkkgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5RGlzcGxheU1hcEBVU0VSX0JST1dTRVJfTEJAQFFFQUFQRUFWRElTUExBWV9NQVBAQFBFQlZVU0VSX0JST1dTRVJfTEJJQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBCUk9XU0VSX0RPTUFJTjo6UXVlcnlEaXNwbGF5TmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RGlzcGxheU5hbWVAQlJPV1NFUl9ET01BSU5AQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQlJPV1NFUl9ET01BSU5fTEJJOjpRdWVyeURpc3BsYXlOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEaXNwbGF5TmFtZUBCUk9XU0VSX0RPTUFJTl9MQklAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUl9CUk9XU0VSX0xCSTo6UXVlcnlEaXNwbGF5TmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RGlzcGxheU5hbWVAVVNFUl9CUk9XU0VSX0xCSUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBETV9EVEU6OlF1ZXJ5RGlzcGxheVdpZHRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEaXNwbGF5V2lkdGhARE1fRFRFQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFVJX0VYVDo6UXVlcnlEbGxOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEbGxOYW1lQFVJX0VYVEBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBjbGFzcyBETV9EVEUgKiBfX3B0cjY0IF9fY2RlY2wgT1VUTElORV9MSVNUQk9YOjpRdWVyeURtRHRlKGVudW0gT1VUTElORV9MQl9MRVZFTCxpbnQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEbUR0ZUBPVVRMSU5FX0xJU1RCT1hAQFFFQkFQRUFWRE1fRFRFQEBXNE9VVExJTkVfTEJfTEVWRUxAQEhAWg0KKzsgcHVibGljOiBjbGFzcyBETUlEX0RURSAqIF9fcHRyNjQgX19jZGVjbCBTVUJKRUNUX0JJVE1BUF9CTE9DSzo6UXVlcnlEbUR0ZShpbnQsaW50LGludCkgX19wdHI2NA0KKz9RdWVyeURtRHRlQFNVQkpFQ1RfQklUTUFQX0JMT0NLQEBRRUFBUEVBVkRNSURfRFRFQEBISEhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBPTExCX0VOVFJZOjpRdWVyeURvbWFpbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RG9tYWluQE9MTEJfRU5UUllAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgQlJPV1NFX0RPTUFJTl9FTlVNOjpRdWVyeURvbWFpbkNvdW50KHZvaWQpIF9fcHRyNjQNCis/UXVlcnlEb21haW5Db3VudEBCUk9XU0VfRE9NQUlOX0VOVU1AQFFFQUFJWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExTQV9UUkFOU0xBVEVEX05BTUVfTUVNOjpRdWVyeURvbWFpbkluZGV4KHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEb21haW5JbmRleEBMU0FfVFJBTlNMQVRFRF9OQU1FX01FTUBAUUVCQUpLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExTQV9UUkFOU0xBVEVEX1NJRF9NRU06OlF1ZXJ5RG9tYWluSW5kZXgodW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9RdWVyeURvbWFpbkluZGV4QExTQV9UUkFOU0xBVEVEX1NJRF9NRU1AQFFFQkFKS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEJST1dTRVJfRE9NQUlOOjpRdWVyeURvbWFpbk5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeURvbWFpbk5hbWVAQlJPV1NFUl9ET01BSU5AQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQlJPV1NFUl9TVUJKRUNUOjpRdWVyeURvbWFpbk5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeURvbWFpbk5hbWVAQlJPV1NFUl9TVUJKRUNUQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEJST1dTRV9ET01BSU5fSU5GTzo6UXVlcnlEb21haW5OYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEb21haW5OYW1lQEJST1dTRV9ET01BSU5fSU5GT0BAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBVU0VSX0JST1dTRVJfTEJJOjpRdWVyeURvbWFpbk5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeURvbWFpbk5hbWVAVVNFUl9CUk9XU0VSX0xCSUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBjbGFzcyBPU19TSUQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQlJPV1NFUl9ET01BSU46OlF1ZXJ5RG9tYWluU2lkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEb21haW5TaWRAQlJPV1NFUl9ET01BSU5AQFFFQkFQRUJWT1NfU0lEQEBYWg0KKzsgcHVibGljOiBjbGFzcyBPU19TSUQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQlJPV1NFUl9TVUJKRUNUOjpRdWVyeURvbWFpblNpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RG9tYWluU2lkQEJST1dTRVJfU1VCSkVDVEBAUUVCQVBFQlZPU19TSURAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDT05UUk9MX1dJTkRPVzo6UXVlcnlFZGl0Q2xhc3NOYW1lKHZvaWQpDQorP1F1ZXJ5RWRpdENsYXNzTmFtZUBDT05UUk9MX1dJTkRPV0BAS0FQRUJHWFoNCis7IHB1YmxpYzogc3RydWN0IF9VTENfRU5UUllfQkFTRSAqIF9fcHRyNjQgX19jZGVjbCBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFOjpRdWVyeUVudHJ5UHRyKGludCkgX19wdHI2NA0KKz9RdWVyeUVudHJ5UHRyQFVTRVJfQlJPV1NFUl9MQklfQ0FDSEVAQFFFQUFQRUFVX1VMQ19FTlRSWV9CQVNFQEBIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEFTU09DSFdORFBETEc6OlF1ZXJ5RXJyb3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUVycm9yQEFTU09DSFdORFBETEdAQFFFQkFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEFTU09DSFdORFBXTkQ6OlF1ZXJ5RXJyb3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUVycm9yQEFTU09DSFdORFBXTkRAQFFFQkFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEJBU0U6OlF1ZXJ5RXJyb3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUVycm9yQEJBU0VAQFFFQkFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENPTlRST0xfV0lORE9XOjpRdWVyeUVycm9yKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlFcnJvckBDT05UUk9MX1dJTkRPV0BAUUVCQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgRk9SV0FSRElOR19CQVNFOjpRdWVyeUVycm9yKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlFcnJvckBGT1JXQVJESU5HX0JBU0VAQFFFQkFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNMVF9FTExJUFNJUzo6UXVlcnlFcnJvcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RXJyb3JAU0xUX0VMTElQU0lTQEBRRUJBSlhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBHRVRfRk5BTUVfQkFTRV9ETEc6OlF1ZXJ5RXJyb3JDb2RlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlFcnJvckNvZGVAR0VUX0ZOQU1FX0JBU0VfRExHQEBJRUJBSlhaDQorOyBwdWJsaWM6IGNsYXNzIFVTRVJfQlJPV1NFUl9MQkkgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUl9CUk9XU0VSX0xCOjpRdWVyeUVycm9yTEJJKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlFcnJvckxCSUBVU0VSX0JST1dTRVJfTEJAQFFFQkFQRUFWVVNFUl9CUk9XU0VSX0xCSUBAWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEJST1dTRVJfRE9NQUlOOjpRdWVyeUVycm9yTG9hZGluZ0F1dGhvcml0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RXJyb3JMb2FkaW5nQXV0aG9yaXR5QEJST1dTRVJfRE9NQUlOQEBRRUJBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBET01BSU5fRklMTF9USFJFQUQ6OlF1ZXJ5RXJyb3JMb2FkaW5nQXV0aG9yaXR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlFcnJvckxvYWRpbmdBdXRob3JpdHlARE9NQUlOX0ZJTExfVEhSRUFEQEBRRUJBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgaW50IF9fY2RlY2wgQVJST1dfQlVUVE9OOjpRdWVyeUV2ZW50RWZmZWN0cyhjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUV2ZW50RWZmZWN0c0BBUlJPV19CVVRUT05AQE1FQUFJQUVCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgaW50IF9fY2RlY2wgQlVUVE9OX0NPTlRST0w6OlF1ZXJ5RXZlbnRFZmZlY3RzKGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5RXZlbnRFZmZlY3RzQEJVVFRPTl9DT05UUk9MQEBNRUFBSUFFQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIGludCBfX2NkZWNsIENPTUJPQk9YOjpRdWVyeUV2ZW50RWZmZWN0cyhjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUV2ZW50RWZmZWN0c0BDT01CT0JPWEBATUVBQUlBRUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBpbnQgX19jZGVjbCBDT05UUk9MX1ZBTFVFOjpRdWVyeUV2ZW50RWZmZWN0cyhjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUV2ZW50RWZmZWN0c0BDT05UUk9MX1ZBTFVFQEBVRUFBSUFFQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIGludCBfX2NkZWNsIEVESVRfQ09OVFJPTDo6UXVlcnlFdmVudEVmZmVjdHMoY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlFdmVudEVmZmVjdHNARURJVF9DT05UUk9MQEBNRUFBSUFFQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIGludCBfX2NkZWNsIExJU1RfQ09OVFJPTDo6UXVlcnlFdmVudEVmZmVjdHMoY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlFdmVudEVmZmVjdHNATElTVF9DT05UUk9MQEBNRUFBSUFFQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBISUVSX0xCSTo6UXVlcnlFeHBhbmRlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RXhwYW5kZWRASElFUl9MQklAQFFFQkFIWFoNCis7IHB1YmxpYzogY2xhc3MgU0xJU1RfT0ZfVUlfRVhUICogX19wdHI2NCBfX2NkZWNsIFVJX0VYVF9NR1I6OlF1ZXJ5RXh0ZW5zaW9ucyh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5RXh0ZW5zaW9uc0BVSV9FWFRfTUdSQEBRRUFBUEVBVlNMSVNUX09GX1VJX0VYVEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgU0VUX09GX0FVRElUX0NBVEVHT1JJRVM6OlF1ZXJ5RmFpbGVkQmFzZUNJRCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5RmFpbGVkQmFzZUNJREBTRVRfT0ZfQVVESVRfQ0FURUdPUklFU0BAUUVBQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgT1BFTl9MQklfQkFTRTo6UXVlcnlGaWxlSUQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUZpbGVJREBPUEVOX0xCSV9CQVNFQEBRRUJBS1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBHRVRfRk5BTUVfQkFTRV9ETEc6OlF1ZXJ5RmlsZVRpdGxlKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RmlsZVRpdGxlQEdFVF9GTkFNRV9CQVNFX0RMR0BAUUVCQUpQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEdFVF9GTkFNRV9CQVNFX0RMRzo6UXVlcnlGaWxlbmFtZShjbGFzcyBOTFNfU1RSICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUZpbGVuYW1lQEdFVF9GTkFNRV9CQVNFX0RMR0BAUUVCQUpQRUFWTkxTX1NUUkBAQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgSEVBUF9CQVNFOjpRdWVyeUZpcnN0TGVhZih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Rmlyc3RMZWFmQEhFQVBfQkFTRUBASUVCQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQUNDT1VOVF9OQU1FU19NTEU6OlF1ZXJ5RmxhZ3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUZsYWdzQEFDQ09VTlRfTkFNRVNfTUxFQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpRdWVyeUZsYWdzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlGbGFnc0BOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRRUJBS1haDQorOyBwdWJsaWM6IHN0cnVjdCBIRk9OVF9fICogX19wdHI2NCBfX2NkZWNsIENPTlRST0xfV0lORE9XOjpRdWVyeUZvbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUZvbnRAQ09OVFJPTF9XSU5ET1dAQFFFQkFQRUFVSEZPTlRfX0BAWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgREVWSUNFX0NPTlRFWFQ6OlF1ZXJ5Rm9udEhlaWdodCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Rm9udEhlaWdodEBERVZJQ0VfQ09OVEVYVEBAUUVCQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBCUk9XU0VSX1NVQkpFQ1Q6OlF1ZXJ5RnVsbE5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUZ1bGxOYW1lQEJST1dTRVJfU1VCSkVDVEBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBVU0VSX0JST1dTRVJfTEJJOjpRdWVyeUZ1bGxOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlGdWxsTmFtZUBVU0VSX0JST1dTRVJfTEJJQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IGNsYXNzIENPTlRST0xfR1JPVVAgKiBfX3B0cjY0IF9fY2RlY2wgQ09OVFJPTF9WQUxVRTo6UXVlcnlHcm91cCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5R3JvdXBAQ09OVFJPTF9WQUxVRUBAUUVCQVBFQVZDT05UUk9MX0dST1VQQEBYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTlRfR1JPVVBfRU5VTV9PQko6OlF1ZXJ5R3JvdXAoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlHcm91cEBOVF9HUk9VUF9FTlVNX09CSkBAUUVCQUpQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ09OVFJPTF9HUk9VUCAqIF9fcHRyNjQgX19jZGVjbCBTUElOX0lURU06OlF1ZXJ5R3JvdXAodm9pZCkgX19wdHI2NA0KKz9RdWVyeUdyb3VwQFNQSU5fSVRFTUBAUUVBQVBFQVZDT05UUk9MX0dST1VQQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSEFDQ0VMX18gKiBfX3B0cjY0IF9fY2RlY2wgQUNDRUxUQUJMRTo6UXVlcnlIYW5kbGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUhhbmRsZUBBQ0NFTFRBQkxFQEBRRUJBUEVBVUhBQ0NFTF9fQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIEFUT01fQkFTRTo6UXVlcnlIYW5kbGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUhhbmRsZUBBVE9NX0JBU0VAQFFFQkFHWFoNCis7IHB1YmxpYzogc3RydWN0IEhCSVRNQVBfXyAqIF9fcHRyNjQgX19jZGVjbCBCSVRfTUFQOjpRdWVyeUhhbmRsZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SGFuZGxlQEJJVF9NQVBAQFFFQkFQRUFVSEJJVE1BUF9fQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSEZPTlRfXyAqIF9fcHRyNjQgX19jZGVjbCBGT05UOjpRdWVyeUhhbmRsZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SGFuZGxlQEZPTlRAQFFFQkFQRUFVSEZPTlRfX0BAWFoNCis7IHB1YmxpYzogc3RydWN0IEhNRU5VX18gKiBfX3B0cjY0IF9fY2RlY2wgTUVOVV9CQVNFOjpRdWVyeUhhbmRsZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SGFuZGxlQE1FTlVfQkFTRUBAUUVCQVBFQVVITUVOVV9fQEBYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIFNBTV9PQkpFQ1Q6OlF1ZXJ5SGFuZGxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlIYW5kbGVAU0FNX09CSkVDVEBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSEJSVVNIX18gKiBfX3B0cjY0IF9fY2RlY2wgU09MSURfQlJVU0g6OlF1ZXJ5SGFuZGxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlIYW5kbGVAU09MSURfQlJVU0hAQFFFQkFQRUFVSEJSVVNIX19AQFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgV0lOMzJfSEFORExFOjpRdWVyeUhhbmRsZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SGFuZGxlQFdJTjMyX0hBTkRMRUBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSERDX18gKiBfX3B0cjY0IF9fY2RlY2wgREVWSUNFX0NPTlRFWFQ6OlF1ZXJ5SGRjKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlIZGNAREVWSUNFX0NPTlRFWFRAQFFFQkFQRUFVSERDX19AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIEJJVF9NQVA6OlF1ZXJ5SGVpZ2h0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlIZWlnaHRAQklUX01BUEBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBESVNQTEFZX01BUDo6UXVlcnlIZWlnaHQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUhlaWdodEBESVNQTEFZX01BUEBAUUVCQUlYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBMQl9DT0xVTU5fSEVBREVSOjpRdWVyeUhlaWdodCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5SGVpZ2h0QExCX0NPTFVNTl9IRUFERVJAQFFFQUFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgU0laRV9FVkVOVDo6UXVlcnlIZWlnaHQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUhlaWdodEBTSVpFX0VWRU5UQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIFhZRElNRU5TSU9OOjpRdWVyeUhlaWdodCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SGVpZ2h0QFhZRElNRU5TSU9OQEBRRUJBSVhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEJBU0VfUEFTU1dPUkRfRElBTE9HOjpRdWVyeUhlbHBDb250ZXh0KHZvaWQpIF9fcHRyNjQNCis/UXVlcnlIZWxwQ29udGV4dEBCQVNFX1BBU1NXT1JEX0RJQUxPR0BATUVBQUtYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBCQVNFX1NFVF9GT0NVU19ETEc6OlF1ZXJ5SGVscENvbnRleHQodm9pZCkgX19wdHI2NA0KKz9RdWVyeUhlbHBDb250ZXh0QEJBU0VfU0VUX0ZPQ1VTX0RMR0BATUVBQUtYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBESUFMT0dfV0lORE9XOjpRdWVyeUhlbHBDb250ZXh0KHZvaWQpIF9fcHRyNjQNCis/UXVlcnlIZWxwQ29udGV4dEBESUFMT0dfV0lORE9XQEBNRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBHRVRfRk5BTUVfQkFTRV9ETEc6OlF1ZXJ5SGVscENvbnRleHQodm9pZCkgX19wdHI2NA0KKz9RdWVyeUhlbHBDb250ZXh0QEdFVF9GTkFNRV9CQVNFX0RMR0BAUUVBQUtYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBNU0dQT1BVUF9ESUFMT0c6OlF1ZXJ5SGVscENvbnRleHQodm9pZCkgX19wdHI2NA0KKz9RdWVyeUhlbHBDb250ZXh0QE1TR1BPUFVQX0RJQUxPR0BATUVBQUtYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOVF9GSU5EX0FDQ09VTlRfRElBTE9HOjpRdWVyeUhlbHBDb250ZXh0KHZvaWQpIF9fcHRyNjQNCis/UXVlcnlIZWxwQ29udGV4dEBOVF9GSU5EX0FDQ09VTlRfRElBTE9HQEBNRUFBS1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIE5UX0dMT0JBTEdST1VQX0JST1dTRVJfRElBTE9HOjpRdWVyeUhlbHBDb250ZXh0KHZvaWQpIF9fcHRyNjQNCis/UXVlcnlIZWxwQ29udGV4dEBOVF9HTE9CQUxHUk9VUF9CUk9XU0VSX0RJQUxPR0BATUVBQUtYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOVF9MT0NBTEdST1VQX0JST1dTRVJfRElBTE9HOjpRdWVyeUhlbHBDb250ZXh0KHZvaWQpIF9fcHRyNjQNCis/UXVlcnlIZWxwQ29udGV4dEBOVF9MT0NBTEdST1VQX0JST1dTRVJfRElBTE9HQEBNRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0c6OlF1ZXJ5SGVscENvbnRleHQodm9pZCkgX19wdHI2NA0KKz9RdWVyeUhlbHBDb250ZXh0QE5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQFVFQUFLWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgT1BFTl9ESUFMT0dfQkFTRTo6UXVlcnlIZWxwQ29udGV4dCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5SGVscENvbnRleHRAT1BFTl9ESUFMT0dfQkFTRUBATUVBQUtYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBQUk9NUFRfRk9SX0FOWV9EQ19ETEc6OlF1ZXJ5SGVscENvbnRleHQodm9pZCkgX19wdHI2NA0KKz9RdWVyeUhlbHBDb250ZXh0QFBST01QVF9GT1JfQU5ZX0RDX0RMR0BATUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6UXVlcnlIZWxwQ29udGV4dEdsb2JhbE1lbWJlcnNoaXAodm9pZCkgX19wdHI2NA0KKz9RdWVyeUhlbHBDb250ZXh0R2xvYmFsTWVtYmVyc2hpcEBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpRdWVyeUhlbHBDb250ZXh0TG9jYWxNZW1iZXJzaGlwKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlIZWxwQ29udGV4dExvY2FsTWVtYmVyc2hpcEBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpRdWVyeUhlbHBDb250ZXh0U2VhcmNoKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlIZWxwQ29udGV4dFNlYXJjaEBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEFTU09DSENGSUxFOjpRdWVyeUhlbHBGaWxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlIZWxwRmlsZUBBU1NPQ0hDRklMRUBAUUVCQVBFQkdYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEJBU0VfU0VUX0ZPQ1VTX0RMRzo6UXVlcnlIZWxwRmlsZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1F1ZXJ5SGVscEZpbGVAQkFTRV9TRVRfRk9DVVNfRExHQEBNRUFBUEVCR0tAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIERJQUxPR19XSU5ET1c6OlF1ZXJ5SGVscEZpbGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9RdWVyeUhlbHBGaWxlQERJQUxPR19XSU5ET1dAQE1FQUFQRUJHS0BaDQorOyBwdWJsaWM6IGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0IF9fY2RlY2wgR0VUX0ZOQU1FX0JBU0VfRExHOjpRdWVyeUhlbHBGaWxlKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlIZWxwRmlsZUBHRVRfRk5BTUVfQkFTRV9ETEdAQFFFQUFQRUFWTkxTX1NUUkBAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOVF9GSU5EX0FDQ09VTlRfRElBTE9HOjpRdWVyeUhlbHBGaWxlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UXVlcnlIZWxwRmlsZUBOVF9GSU5EX0FDQ09VTlRfRElBTE9HQEBNRUFBUEVCR0tAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE5UX0dST1VQX0JST1dTRVJfRElBTE9HOjpRdWVyeUhlbHBGaWxlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UXVlcnlIZWxwRmlsZUBOVF9HUk9VUF9CUk9XU0VSX0RJQUxPR0BATUVBQVBFQkdLQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpRdWVyeUhlbHBGaWxlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UXVlcnlIZWxwRmlsZUBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBVRUFBUEVCR0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBRTU9VU0VBQ1RfRVZFTlQ6OlF1ZXJ5SGl0VGVzdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SGl0VGVzdEBRTU9VU0VBQ1RfRVZFTlRAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTElTVEJPWDo6UXVlcnlIb3Jpem9udGFsRXh0ZW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlIb3Jpem9udGFsRXh0ZW50QExJU1RCT1hAQFFFQkFJWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQkxUX1RJTUVfU1BJTl9HUk9VUDo6UXVlcnlIb3VyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlIb3VyQEJMVF9USU1FX1NQSU5fR1JPVVBAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV0lOX1RJTUU6OlF1ZXJ5SG91cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SG91ckBXSU5fVElNRUBAUUVCQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6UXVlcnlIb3VycyhjbGFzcyBMT0dPTl9IT1VSU19TRVRUSU5HICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUhvdXJzQExPR09OX0hPVVJTX0NPTlRST0xAQFFFQkFKUEVBVkxPR09OX0hPVVJTX1NFVFRJTkdAQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBIV05EX18gKiBfX3B0cjY0IF9fY2RlY2wgQ09OVFJPTF9FVkVOVDo6UXVlcnlId25kKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlId25kQENPTlRST0xfRVZFTlRAQFFFQkFQRUFVSFdORF9fQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSFdORF9fICogX19wdHI2NCBfX2NkZWNsIERJU1BBVENIRVI6OlF1ZXJ5SHduZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SHduZEBESVNQQVRDSEVSQEBRRUJBUEVBVUhXTkRfX0BAWFoNCis7IHByb3RlY3RlZDogc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQgX19jZGVjbCBESVNQTEFZX0NPTlRFWFQ6OlF1ZXJ5SHduZCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5SHduZEBESVNQTEFZX0NPTlRFWFRAQElFQUFQRUFVSFdORF9fQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSFdORF9fICogX19wdHI2NCBfX2NkZWNsIERMR0xPQUQ6OlF1ZXJ5SHduZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SHduZEBETEdMT0FEQEBRRUJBUEVBVUhXTkRfX0BAWFoNCis7IHB1YmxpYzogc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQgX19jZGVjbCBPV05JTkdXTkQ6OlF1ZXJ5SHduZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SHduZEBPV05JTkdXTkRAQFFFQkFQRUFVSFdORF9fQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSFdORF9fICogX19wdHI2NCBfX2NkZWNsIFBXTkQySFdORDo6UXVlcnlId25kKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlId25kQFBXTkQySFdOREBAUUVCQVBFQVVIV05EX19AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBIV05EX18gKiBfX3B0cjY0IF9fY2RlY2wgV0lORE9XOjpRdWVyeUh3bmQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUh3bmRAV0lORE9XQEBRRUJBUEVBVUhXTkRfX0BAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgRElTUExBWV9NQVA6OlF1ZXJ5SUQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUlEQERJU1BMQVlfTUFQQEBRRUJBSVhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUUklOR19CSVRTRVRfUEFJUjo6UXVlcnlJRCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5SURAU1RSSU5HX0JJVFNFVF9QQUlSQEBRRUFBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIFRJTUVSX0JBU0U6OlF1ZXJ5SUQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUlEQFRJTUVSX0JBU0VAQFFFQkFJWFoNCis7IHB1YmxpYzogc3RydWN0IEhJQ09OX18gKiBfX3B0cjY0IF9fY2RlY2wgQVBQX1dJTkRPVzo6UXVlcnlJY29uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlJY29uQEFQUF9XSU5ET1dAQFFFQkFQRUFVSElDT05fX0BAWFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE1TR1BPUFVQX0RJQUxPRzo6UXVlcnlJY29uKGVudW0gTVNHX1NFVkVSSVRZKSBfX3B0cjY0DQorP1F1ZXJ5SWNvbkBNU0dQT1BVUF9ESUFMT0dAQEFFQUFQRUJHVzRNU0dfU0VWRVJJVFlAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEhJRVJfTEJJOjpRdWVyeUluZGVudExldmVsKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlJbmRlbnRMZXZlbEBISUVSX0xCSUBAUUVBQUhYWg0KKzsgcHVibGljOiBjbGFzcyBTTEUgKiBfX3B0cjY0IF9fY2RlY2wgU0xFX1NUUkxCX0dST1VQOjpRdWVyeUlucHV0U0xFKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlJbnB1dFNMRUBTTEVfU1RSTEJfR1JPVVBAQFFFQkFQRUFWU0xFQEBYWg0KKzsgcHVibGljOiBjbGFzcyBYWVJFQ1QgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgUEFJTlRfRElTUExBWV9DT05URVhUOjpRdWVyeUludmFsaWRSZWN0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlJbnZhbGlkUmVjdEBQQUlOVF9ESVNQTEFZX0NPTlRFWFRAQFFFQkFBRUJWWFlSRUNUQEBYWg0KKzsgcHVibGljOiBjbGFzcyBMQkkgKiBfX3B0cjY0IF9fY2RlY2wgQkxUX0xJU1RCT1g6OlF1ZXJ5SXRlbShpbnQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlJdGVtQEJMVF9MSVNUQk9YQEBRRUJBUEVBVkxCSUBASEBaDQorOyBwdWJsaWM6IGNsYXNzIExCSSAqIF9fcHRyNjQgX19jZGVjbCBCTFRfTElTVEJPWDo6UXVlcnlJdGVtKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlJdGVtQEJMVF9MSVNUQk9YQEBRRUJBUEVBVkxCSUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ09OVFJPTF9FTlRSWSAqIF9fcHRyNjQgX19jZGVjbCBDT05UUk9MX1RBQkxFOjpRdWVyeUl0ZW0odW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SXRlbUBDT05UUk9MX1RBQkxFQEBRRUJBUEVBVkNPTlRST0xfRU5UUllAQElAWg0KKzsgcHVibGljOiBjbGFzcyBPUEVOX0xCSV9CQVNFICogX19wdHI2NCBfX2NkZWNsIE9QRU5fTEJPWF9CQVNFOjpRdWVyeUl0ZW0oaW50KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SXRlbUBPUEVOX0xCT1hfQkFTRUBAUUVCQVBFQVZPUEVOX0xCSV9CQVNFQEBIQFoNCis7IHB1YmxpYzogY2xhc3MgT1BFTl9MQklfQkFTRSAqIF9fcHRyNjQgX19jZGVjbCBPUEVOX0xCT1hfQkFTRTo6UXVlcnlJdGVtKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlJdGVtQE9QRU5fTEJPWF9CQVNFQEBRRUJBUEVBVk9QRU5fTEJJX0JBU0VAQFhaDQorOyBwdWJsaWM6IGNsYXNzIE9MTEJfRU5UUlkgKiBfX3B0cjY0IF9fY2RlY2wgT1VUTElORV9MSVNUQk9YOjpRdWVyeUl0ZW0oaW50KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SXRlbUBPVVRMSU5FX0xJU1RCT1hAQFFFQkFQRUFWT0xMQl9FTlRSWUBASEBaDQorOyBwdWJsaWM6IGNsYXNzIE9MTEJfRU5UUlkgKiBfX3B0cjY0IF9fY2RlY2wgT1VUTElORV9MSVNUQk9YOjpRdWVyeUl0ZW0odm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUl0ZW1AT1VUTElORV9MSVNUQk9YQEBRRUJBUEVBVk9MTEJfRU5UUllAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFNUTEJJVEVNICogX19wdHI2NCBfX2NkZWNsIFNUQVRFTEI6OlF1ZXJ5SXRlbSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SXRlbUBTVEFURUxCQEBRRUJBUEVBVlNUTEJJVEVNQEBYWg0KKzsgcHVibGljOiBjbGFzcyBVU0VSX0JST1dTRVJfTEJJICogX19wdHI2NCBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQjo6UXVlcnlJdGVtKGludCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUl0ZW1AVVNFUl9CUk9XU0VSX0xCQEBRRUJBUEVBVlVTRVJfQlJPV1NFUl9MQklAQEhAWg0KKzsgcHVibGljOiBjbGFzcyBVU0VSX0JST1dTRVJfTEJJICogX19wdHI2NCBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQjo6UXVlcnlJdGVtKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlJdGVtQFVTRVJfQlJPV1NFUl9MQkBAUUVCQVBFQVZVU0VSX0JST1dTRVJfTEJJQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIExCSSAqIF9fcHRyNjQgX19jZGVjbCBVU0VSX0xCSV9DQUNIRTo6UXVlcnlJdGVtKGludCkgX19wdHI2NA0KKz9RdWVyeUl0ZW1AVVNFUl9MQklfQ0FDSEVAQFVFQUFQRUFWTEJJQEBIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTUVOVV9CQVNFOjpRdWVyeUl0ZW1Db3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SXRlbUNvdW50QE1FTlVfQkFTRUBAUUVCQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBMSVNUX0NPTlRST0w6OlF1ZXJ5SXRlbUhlaWdodCh1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlJdGVtSGVpZ2h0QExJU1RfQ09OVFJPTEBAUUVCQUlJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTUVOVV9CQVNFOjpRdWVyeUl0ZW1JRChpbnQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlJdGVtSURATUVOVV9CQVNFQEBRRUJBSUhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJJTkdfTElTVF9DT05UUk9MOjpRdWVyeUl0ZW1MZW5ndGgoaW50KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SXRlbUxlbmd0aEBTVFJJTkdfTElTVF9DT05UUk9MQEBRRUJBSEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVFJJTkdfTElTVF9DT05UUk9MOjpRdWVyeUl0ZW1TaXplKGludCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUl0ZW1TaXplQFNUUklOR19MSVNUX0NPTlRST0xAQFFFQkFISEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIE1FTlVfQkFTRTo6UXVlcnlJdGVtU3RhdGUodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUl0ZW1TdGF0ZUBNRU5VX0JBU0VAQFFFQkFJSUlAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTUVOVV9CQVNFOjpRdWVyeUl0ZW1UZXh0KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUl0ZW1UZXh0QE1FTlVfQkFTRUBAUUVCQUpQRUFHSUlJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE1FTlVfQkFTRTo6UXVlcnlJdGVtVGV4dChjbGFzcyBOTFNfU1RSICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SXRlbVRleHRATUVOVV9CQVNFQEBRRUJBSlBFQVZOTFNfU1RSQEBJSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJJTkdfTElTVF9DT05UUk9MOjpRdWVyeUl0ZW1UZXh0KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxpbnQsaW50KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5SXRlbVRleHRAU1RSSU5HX0xJU1RfQ09OVFJPTEBAUUVCQUpQRUFHSEhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1RSSU5HX0xJU1RfQ09OVFJPTDo6UXVlcnlJdGVtVGV4dChjbGFzcyBOTFNfU1RSICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUl0ZW1UZXh0QFNUUklOR19MSVNUX0NPTlRST0xAQFFFQkFKUEVBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTVFJJTkdfTElTVF9DT05UUk9MOjpRdWVyeUl0ZW1UZXh0KGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0LGludCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUl0ZW1UZXh0QFNUUklOR19MSVNUX0NPTlRST0xAQFFFQkFKUEVBVk5MU19TVFJAQEhAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIFNUUklOR19MSVNUX0NPTlRST0w6OlF1ZXJ5SXRlbVRleHRBdXgodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGludCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUl0ZW1UZXh0QXV4QFNUUklOR19MSVNUX0NPTlRST0xAQEFFQkFKUEVBR0hAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgSElFUl9MQkk6OlF1ZXJ5TEJJbmRleCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5TEJJbmRleEBISUVSX0xCSUBAQUVBQUhYWg0KKzsgcHVibGljOiBfX2ludDY0IF9fY2RlY2wgRVZFTlQ6OlF1ZXJ5TFBhcmFtKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlMUGFyYW1ARVZFTlRAQFFFQkFfSlhaDQorOyBwdWJsaWM6IGNsYXNzIExTQV9QT0xJQ1kgKiBfX3B0cjY0IF9fY2RlY2wgQlJPV1NFUl9ET01BSU46OlF1ZXJ5TFNBUG9saWN5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlMU0FQb2xpY3lAQlJPV1NFUl9ET01BSU5AQFFFQkFQRUFWTFNBX1BPTElDWUBAWFoNCis7IHB1YmxpYzogY2xhc3MgU1RBVEVMQiAqIF9fcHRyNjQgX19jZGVjbCBTVEFURUxCR1JQOjpRdWVyeUxiKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlMYkBTVEFURUxCR1JQQEBRRUFBUEVBVlNUQVRFTEJAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBCUk9XU0VSX0RPTUFJTl9MQkk6OlF1ZXJ5TGVhZGluZ0NoYXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUxlYWRpbmdDaGFyQEJST1dTRVJfRE9NQUlOX0xCSUBAVUVCQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQlJPV1NFUl9ET01BSU5fTEJJX1BCOjpRdWVyeUxlYWRpbmdDaGFyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlMZWFkaW5nQ2hhckBCUk9XU0VSX0RPTUFJTl9MQklfUEJAQFVFQkFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIExCSTo6UXVlcnlMZWFkaW5nQ2hhcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TGVhZGluZ0NoYXJATEJJQEBVRUJBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBPTExCX0VOVFJZOjpRdWVyeUxlYWRpbmdDaGFyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlMZWFkaW5nQ2hhckBPTExCX0VOVFJZQEBVRUJBR1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBPUEVOX0xCSV9CQVNFOjpRdWVyeUxlYWRpbmdDaGFyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlMZWFkaW5nQ2hhckBPUEVOX0xCSV9CQVNFQEBNRUJBR1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBTVExCSVRFTTo6UXVlcnlMZWFkaW5nQ2hhcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TGVhZGluZ0NoYXJAU1RMQklURU1AQE1FQkFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQkk6OlF1ZXJ5TGVhZGluZ0NoYXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUxlYWRpbmdDaGFyQFVTRVJfQlJPV1NFUl9MQklAQFVFQkFHWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgWFlSRUNUOjpRdWVyeUxlZnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUxlZnRAWFlSRUNUQEBRRUJBSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIEhFQVBfQkFTRTo6UXVlcnlMZWZ0Q2hpbGQoaW50KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TGVmdENoaWxkQEhFQVBfQkFTRUBASUVCQUhIQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBpbnQgX19jZGVjbCBEVEU6OlF1ZXJ5TGVmdE1hcmdpbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TGVmdE1hcmdpbkBEVEVAQFVFQkFJWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBpbnQgX19jZGVjbCBNRVRBTExJQ19TVFJfRFRFOjpRdWVyeUxlZnRNYXJnaW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUxlZnRNYXJnaW5ATUVUQUxMSUNfU1RSX0RURUBAVUVCQUlYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBPTExCX0VOVFJZOjpRdWVyeUxldmVsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlMZXZlbEBPTExCX0VOVFJZQEBRRUJBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6UXVlcnlMaW1pdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TGltaXRAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFFFQkFLWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBDT05TT0xFX0VMTElQU0lTOjpRdWVyeUxpbWl0KHZvaWQpIF9fcHRyNjQNCis/UXVlcnlMaW1pdEBDT05TT0xFX0VMTElQU0lTQEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgV0lOX0VMTElQU0lTOjpRdWVyeUxpbWl0KHZvaWQpIF9fcHRyNjQNCis/UXVlcnlMaW1pdEBXSU5fRUxMSVBTSVNAQE1FQUFIWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENPTlRST0xfV0lORE9XOjpRdWVyeUxpc3Rib3hDbGFzc05hbWUodm9pZCkNCis/UXVlcnlMaXN0Ym94Q2xhc3NOYW1lQENPTlRST0xfV0lORE9XQEBLQVBFQkdYWg0KKzsgbG9uZyBfX2NkZWNsIFF1ZXJ5TG9nZ2VkT25Eb21haW5JbmZvKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KQ0KKz9RdWVyeUxvZ2dlZE9uRG9tYWluSW5mb0BAWUFKUEVBVk5MU19TVFJAQDBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBCUk9XU0VSX0RPTUFJTjo6UXVlcnlMc2FMb29rdXBOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlMc2FMb29rdXBOYW1lQEJST1dTRVJfRE9NQUlOQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHN0cnVjdCBIQklUTUFQX18gKiBfX3B0cjY0IF9fY2RlY2wgR1JBUEhJQ0FMX0JVVFRPTl9XSVRIX0RJU0FCTEU6OlF1ZXJ5TWFpbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TWFpbkBHUkFQSElDQUxfQlVUVE9OX1dJVEhfRElTQUJMRUBAUUVCQVBFQVVIQklUTUFQX19AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBIQklUTUFQX18gKiBfX3B0cjY0IF9fY2RlY2wgR1JBUEhJQ0FMX0JVVFRPTl9XSVRIX0RJU0FCTEU6OlF1ZXJ5TWFpbkludmVydCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TWFpbkludmVydEBHUkFQSElDQUxfQlVUVE9OX1dJVEhfRElTQUJMRUBAUUVCQVBFQVVIQklUTUFQX19AQFhaDQorOyBwdWJsaWM6IGNsYXNzIERJU1BMQVlfTUFQICogX19wdHI2NCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBTVEFURUxCOjpRdWVyeU1hcEFycmF5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNYXBBcnJheUBTVEFURUxCQEBRRUJBUEVCUUVBVkRJU1BMQVlfTUFQQEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTVEFURUxCOjpRdWVyeU1hcENvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNYXBDb3VudEBTVEFURUxCQEBRRUJBSFhaDQorOyBwdWJsaWM6IGNsYXNzIEJJVEZJRUxEICogX19wdHI2NCBfX2NkZWNsIEFVRElUX0NIRUNLQk9YRVM6OlF1ZXJ5TWFzayh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5TWFza0BBVURJVF9DSEVDS0JPWEVTQEBRRUFBUEVBVkJJVEZJRUxEQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSEJJVE1BUF9fICogX19wdHI2NCBfX2NkZWNsIERJU1BMQVlfTUFQOjpRdWVyeU1hc2tIYW5kbGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1hc2tIYW5kbGVARElTUExBWV9NQVBAQFFFQkFQRUFVSEJJVE1BUF9fQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIEJMVF9NQVNURVJfVElNRVI6OlF1ZXJ5TWFzdGVyVGltZXIoY2xhc3MgQkxUX01BU1RFUl9USU1FUiAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9RdWVyeU1hc3RlclRpbWVyQEJMVF9NQVNURVJfVElNRVJAQFNBSlBFQVBFQVYxQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6UXVlcnlNYXgodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1heEBDSEFOR0VBQkxFX1NQSU5fSVRFTUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBTQ1JPTExCQVI6OlF1ZXJ5TWF4KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNYXhAU0NST0xMQkFSQEBRRUJBSVhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ09OU09MRV9FTExJUFNJUzo6UXVlcnlNYXhDaGFyV2lkdGgodm9pZCkgX19wdHI2NA0KKz9RdWVyeU1heENoYXJXaWR0aEBDT05TT0xFX0VMTElQU0lTQEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgV0lOX0VMTElQU0lTOjpRdWVyeU1heENoYXJXaWR0aCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5TWF4Q2hhcldpZHRoQFdJTl9FTExJUFNJU0BATUVBQUhYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSE1FTlVfXyAqIF9fcHRyNjQgX19jZGVjbCBBUFBfV0lORE9XOjpRdWVyeU1lbnUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1lbnVAQVBQX1dJTkRPV0BAUUVCQVBFQVVITUVOVV9fQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSE1FTlVfXyAqIF9fcHRyNjQgX19jZGVjbCBVSV9NRU5VX0VYVDo6UXVlcnlNZW51SGFuZGxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNZW51SGFuZGxlQFVJX01FTlVfRVhUQEBRRUJBUEVBVUhNRU5VX19AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIEVWRU5UOjpRdWVyeU1lc3NhZ2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1lc3NhZ2VARVZFTlRAQFFFQkFJWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQkxUX1RJTUVfU1BJTl9HUk9VUDo6UXVlcnlNaW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1pbkBCTFRfVElNRV9TUElOX0dST1VQQEBRRUJBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6UXVlcnlNaW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1pbkBDSEFOR0VBQkxFX1NQSU5fSVRFTUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBTQ1JPTExCQVI6OlF1ZXJ5TWluKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNaW5AU0NST0xMQkFSQEBRRUJBSVhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdJTl9USU1FOjpRdWVyeU1pbnV0ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TWludXRlQFdJTl9USU1FQEBRRUJBSFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBFTEFQU0VEX1RJTUVfQ09OVFJPTDo6UXVlcnlNaW51dGVWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TWludXRlVmFsdWVARUxBUFNFRF9USU1FX0NPTlRST0xAQFFFQkFKWFoNCis7IHB1YmxpYzogc3RydWN0IEhJTlNUQU5DRV9fICogX19wdHI2NCBfX2NkZWNsIEFTU09DSENGSUxFOjpRdWVyeU1vZHVsZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TW9kdWxlQEFTU09DSENGSUxFQEBRRUJBUEVBVUhJTlNUQU5DRV9fQEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBCTFRfREFURV9TUElOX0dST1VQOjpRdWVyeU1vbnRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNb250aEBCTFRfREFURV9TUElOX0dST1VQQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdJTl9USU1FOjpRdWVyeU1vbnRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNb250aEBXSU5fVElNRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJTlRMX1BST0ZJTEU6OlF1ZXJ5TW9udGhQb3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1vbnRoUG9zQElOVExfUFJPRklMRUBAUUVCQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTFNBX1BSSU1BUllfRE9NX0lORk9fTUVNOjpRdWVyeU5hbWUoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQExTQV9QUklNQVJZX0RPTV9JTkZPX01FTUBAUUVCQUpQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExTQV9SRUZfRE9NQUlOX01FTTo6UXVlcnlOYW1lKHVuc2lnbmVkIGxvbmcsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQExTQV9SRUZfRE9NQUlOX01FTUBAUUVCQUpLUEVBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMU0FfVFJBTlNMQVRFRF9OQU1FX01FTTo6UXVlcnlOYW1lKHVuc2lnbmVkIGxvbmcsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQExTQV9UUkFOU0xBVEVEX05BTUVfTUVNQEBRRUJBSktQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExTQV9UUlVTVF9JTkZPX01FTTo6UXVlcnlOYW1lKHVuc2lnbmVkIGxvbmcsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQExTQV9UUlVTVF9JTkZPX01FTUBAUUVCQUpLUEVBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTQU1fUklEX0VOVU1FUkFUSU9OX01FTTo6UXVlcnlOYW1lKHVuc2lnbmVkIGxvbmcsY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQFNBTV9SSURfRU5VTUVSQVRJT05fTUVNQEBRRUJBSktQRUFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgU0VSVkVSMV9FTlVNX09CSjo6UXVlcnlOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQFNFUlZFUjFfRU5VTV9PQkpAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgVUlfRE9NQUlOOjpRdWVyeU5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU5hbWVAVUlfRE9NQUlOQEBRRUJBUEVCR1haDQorOyBwcm90ZWN0ZWQ6IHN0cnVjdCB0YWdPRk5XICogX19wdHI2NCBfX2NkZWNsIEdFVF9GTkFNRV9CQVNFX0RMRzo6UXVlcnlPRk4odm9pZCkgX19wdHI2NA0KKz9RdWVyeU9GTkBHRVRfRk5BTUVfQkFTRV9ETEdAQElFQUFQRUFVdGFnT0ZOV0BAWFoNCis7IHB1YmxpYzogY2xhc3MgT1NfU0lEIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFNBTV9ET01BSU46OlF1ZXJ5T1NTSUQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU9TU0lEQFNBTV9ET01BSU5AQFFFQkFQRUJWT1NfU0lEQEBYWg0KKzsgcHVibGljOiBjbGFzcyBPU19TSUQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUl9CUk9XU0VSX0xCSTo6UXVlcnlPU1NJRCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5T1NTSURAVVNFUl9CUk9XU0VSX0xCSUBAUUVCQVBFQlZPU19TSURAQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENBTkNFTF9UQVNLX0RJQUxPRzo6UXVlcnlPYmplY3ROYW1lKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5T2JqZWN0TmFtZUBDQU5DRUxfVEFTS19ESUFMT0dAQE1FQUFKUEVBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGNsYXNzIE5MU19TVFIgIF9fY2RlY2wgQkFTRV9FTExJUFNJUzo6UXVlcnlPcmlnaW5hbFN0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5T3JpZ2luYWxTdHJAQkFTRV9FTExJUFNJU0BAUUVCQT9BVk5MU19TVFJAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBIV05EX18gKiBfX3B0cjY0IF9fY2RlY2wgV0lORE9XOjpRdWVyeU93bmVySHduZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5T3duZXJId25kQFdJTkRPV0BAUUVCQVBFQVVIV05EX19AQFhaDQorOyBwdWJsaWM6IGNsYXNzIE9XTkVSX1dJTkRPVyAqIF9fcHRyNjQgX19jZGVjbCBTRVRfT0ZfQVVESVRfQ0FURUdPUklFUzo6UXVlcnlPd25lcldpbmRvdyh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5T3duZXJXaW5kb3dAU0VUX09GX0FVRElUX0NBVEVHT1JJRVNAQFFFQUFQRUFWT1dORVJfV0lORE9XQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBVSV9ET01BSU46OlF1ZXJ5UERDKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQRENAVUlfRE9NQUlOQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgTFNBX0FDQ1RfRE9NX0lORk9fTUVNOjpRdWVyeVBTSUQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBTSURATFNBX0FDQ1RfRE9NX0lORk9fTUVNQEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgTFNBX1BSSU1BUllfRE9NX0lORk9fTUVNOjpRdWVyeVBTSUQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBTSURATFNBX1BSSU1BUllfRE9NX0lORk9fTUVNQEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgTFNBX1JFRl9ET01BSU5fTUVNOjpRdWVyeVBTSUQodW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBTSURATFNBX1JFRl9ET01BSU5fTUVNQEBRRUJBUEVBWEtAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIExTQV9UUlVTVF9JTkZPX01FTTo6UXVlcnlQU0lEKHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQU0lEQExTQV9UUlVTVF9JTkZPX01FTUBAUUVCQVBFQVhLQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBPU19TSUQ6OlF1ZXJ5UFNJRCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UFNJREBPU19TSURAQFFFQkFQRUFYWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBTQU1fRE9NQUlOOjpRdWVyeVBTSUQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBTSURAU0FNX0RPTUFJTkBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQkk6OlF1ZXJ5UFNJRCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UFNJREBVU0VSX0JST1dTRVJfTEJJQEBRRUJBUUVBWFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIEhFQVBfQkFTRTo6UXVlcnlQYXJlbnQoaW50KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UGFyZW50QEhFQVBfQkFTRUBASUVCQUhIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEJBU0VfUEFTU1dPUkRfRElBTE9HOjpRdWVyeVBhc3N3b3JkKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5UGFzc3dvcmRAQkFTRV9QQVNTV09SRF9ESUFMT0dAQFFFQUFKUEVBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE9QRU5fTEJJX0JBU0U6OlF1ZXJ5UGF0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UGF0aEBPUEVOX0xCSV9CQVNFQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE5MU19TVFI6OlF1ZXJ5UGNoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQY2hATkxTX1NUUkBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBTVFJfRFRFOjpRdWVyeVBjaCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UGNoQFNUUl9EVEVAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE9QRU5fTEJJX0JBU0U6OlF1ZXJ5UGVybWlzc2lvbnModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBlcm1pc3Npb25zQE9QRU5fTEJJX0JBU0VAQFFFQkFLWFoNCis7IHB1YmxpYzogc3RydWN0IHRhZ1BPSU5UICBfX2NkZWNsIFhZUE9JTlQ6OlF1ZXJ5UG9pbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBvaW50QFhZUE9JTlRAQFFFQkE/QVV0YWdQT0lOVEBAWFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIFhZUE9JTlQgIF9fY2RlY2wgQ1VSU09SOjpRdWVyeVBvcyh2b2lkKQ0KKz9RdWVyeVBvc0BDVVJTT1JAQFNBP0FWWFlQT0lOVEBAWFoNCis7IHB1YmxpYzogY2xhc3MgWFlQT0lOVCAgX19jZGVjbCBNT1VTRV9FVkVOVDo6UXVlcnlQb3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBvc0BNT1VTRV9FVkVOVEBAUUVCQT9BVlhZUE9JTlRAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIFNDUk9MTEJBUjo6UXVlcnlQb3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBvc0BTQ1JPTExCQVJAQFFFQkFJWFoNCis7IHB1YmxpYzogY2xhc3MgWFlQT0lOVCAgX19jZGVjbCBTUElOX0dST1VQOjpRdWVyeVBvcyh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5UG9zQFNQSU5fR1JPVVBAQFFFQUE/QVZYWVBPSU5UQEBYWg0KKzsgcHVibGljOiBjbGFzcyBYWVBPSU5UICBfX2NkZWNsIFdJTkRPVzo6UXVlcnlQb3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBvc0BXSU5ET1dAQFFFQkE/QVZYWVBPSU5UQEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXSU4zMl9USFJFQUQ6OlF1ZXJ5UHJpb3JpdHkodm9pZCkgX19wdHI2NA0KKz9RdWVyeVByaW9yaXR5QFdJTjMyX1RIUkVBREBAUUVBQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgUFJPQ19JTlNUQU5DRTo6UXVlcnlQcm9jKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQcm9jQFBST0NfSU5TVEFOQ0VAQFFFQkFfS1haDQorOyBwdWJsaWM6IGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0IF9fY2RlY2wgSVRFUl9TTF9OTFNfU1RSOjpRdWVyeVByb3Aodm9pZCkgX19wdHI2NA0KKz9RdWVyeVByb3BASVRFUl9TTF9OTFNfU1RSQEBRRUFBUEVBVk5MU19TVFJAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFVTRVJfQlJPV1NFUl9MQkkgKiBfX3B0cjY0IF9fY2RlY2wgSVRFUl9TTF9VU0VSX0JST1dTRVJfTEJJOjpRdWVyeVByb3Aodm9pZCkgX19wdHI2NA0KKz9RdWVyeVByb3BASVRFUl9TTF9VU0VSX0JST1dTRVJfTEJJQEBRRUFBUEVBVlVTRVJfQlJPV1NFUl9MQklAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIElEUkVTT1VSQ0U6OlF1ZXJ5UHN6KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQc3pASURSRVNPVVJDRUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIEJMVF9TQ1JBVENIOjpRdWVyeVB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UHRyQEJMVF9TQ1JBVENIQEBRRUJBUEVBRVhaDQorOyBwdWJsaWM6IHN0cnVjdCBfUE9MSUNZX0FDQ09VTlRfRE9NQUlOX0lORk8gY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTFNBX0FDQ1RfRE9NX0lORk9fTUVNOjpRdWVyeVB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UHRyQExTQV9BQ0NUX0RPTV9JTkZPX01FTUBAUUVCQVBFQlVfUE9MSUNZX0FDQ09VTlRfRE9NQUlOX0lORk9AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfUE9MSUNZX1BSSU1BUllfRE9NQUlOX0lORk8gY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTFNBX1BSSU1BUllfRE9NX0lORk9fTUVNOjpRdWVyeVB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UHRyQExTQV9QUklNQVJZX0RPTV9JTkZPX01FTUBAUUVCQVBFQlVfUE9MSUNZX1BSSU1BUllfRE9NQUlOX0lORk9AQFhaDQorOyBwcml2YXRlOiBzdHJ1Y3QgX0xTQV9UUlVTVF9JTkZPUk1BVElPTiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBMU0FfUkVGX0RPTUFJTl9NRU06OlF1ZXJ5UHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQdHJATFNBX1JFRl9ET01BSU5fTUVNQEBBRUJBUEVCVV9MU0FfVFJVU1RfSU5GT1JNQVRJT05AQFhaDQorOyBwcml2YXRlOiBzdHJ1Y3QgX0xTQV9UUkFOU0xBVEVEX05BTUUgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTFNBX1RSQU5TTEFURURfTkFNRV9NRU06OlF1ZXJ5UHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQdHJATFNBX1RSQU5TTEFURURfTkFNRV9NRU1AQEFFQkFQRUJVX0xTQV9UUkFOU0xBVEVEX05BTUVAQFhaDQorOyBwcml2YXRlOiBzdHJ1Y3QgX0xTQV9UUkFOU0xBVEVEX1NJRCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBMU0FfVFJBTlNMQVRFRF9TSURfTUVNOjpRdWVyeVB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UHRyQExTQV9UUkFOU0xBVEVEX1NJRF9NRU1AQEFFQkFQRUJVX0xTQV9UUkFOU0xBVEVEX1NJREBAWFoNCis7IHB1YmxpYzogc3RydWN0IF9MU0FfVFJVU1RfSU5GT1JNQVRJT04gY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTFNBX1RSVVNUX0lORk9fTUVNOjpRdWVyeVB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UHRyQExTQV9UUlVTVF9JTkZPX01FTUBAUUVCQVBFQlVfTFNBX1RSVVNUX0lORk9STUFUSU9OQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1NBTV9SSURfRU5VTUVSQVRJT04gY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgU0FNX1JJRF9FTlVNRVJBVElPTl9NRU06OlF1ZXJ5UHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQdHJAU0FNX1JJRF9FTlVNRVJBVElPTl9NRU1AQFFFQkFQRUJVX1NBTV9SSURfRU5VTUVSQVRJT05AQFhaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFNBTV9SSURfTUVNOjpRdWVyeVB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UHRyQFNBTV9SSURfTUVNQEBBRUJBUEVCS1haDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCBfX2NkZWNsIFNBTV9TSURfTUVNOjpRdWVyeVB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UHRyQFNBTV9TSURfTUVNQEBRRUJBUEVBUEVBWFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBCUk9XU0VSX1NVQkpFQ1Q6OlF1ZXJ5UXVhbGlmaWVkTmFtZShjbGFzcyBOTFNfU1RSICogX19wdHI2NCxjbGFzcyBOTFNfU1RSIGNvbnN0ICogX19wdHI2NCxpbnQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlRdWFsaWZpZWROYW1lQEJST1dTRVJfU1VCSkVDVEBAUUVCQUpQRUFWTkxTX1NUUkBAUEVCVjJASEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIENPTlRST0xWQUxfQ0lEX1BBSVI6OlF1ZXJ5UkJDSUQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVJCQ0lEQENPTlRST0xWQUxfQ0lEX1BBSVJAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIExTQV9UUkFOU0xBVEVEX1NJRF9NRU06OlF1ZXJ5UklEKHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlSSURATFNBX1RSQU5TTEFURURfU0lEX01FTUBAUUVCQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTlRfR1JPVVBfRU5VTV9PQko6OlF1ZXJ5UklEKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlSSURATlRfR1JPVVBfRU5VTV9PQkpAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFNBTV9SSURfRU5VTUVSQVRJT05fTUVNOjpRdWVyeVJJRCh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UklEQFNBTV9SSURfRU5VTUVSQVRJT05fTUVNQEBRRUJBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU0FNX1JJRF9NRU06OlF1ZXJ5UklEKHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlSSURAU0FNX1JJRF9NRU1AQFFFQkFLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6UXVlcnlSYW5nZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UmFuZ2VAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFFFQkFLWFoNCis7IHByb3RlY3RlZDogY2xhc3MgUFVTSF9CVVRUT04gKiBfX3B0cjY0IF9fY2RlY2wgU0xFX1NUUkxCX0dST1VQOjpRdWVyeVJlbW92ZUJ1dHRvbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UmVtb3ZlQnV0dG9uQFNMRV9TVFJMQl9HUk9VUEBASUVCQVBFQVZQVVNIX0JVVFRPTkBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgS0VZX0VWRU5UOjpRdWVyeVJlcGVhdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UmVwZWF0QEtFWV9FVkVOVEBAUUVCQUlYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBYWVJFQ1Q6OlF1ZXJ5UmlnaHQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVJpZ2h0QFhZUkVDVEBAUUVCQUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBIRUFQX0JBU0U6OlF1ZXJ5UmlnaHRTaWJsaW5nKGludCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVJpZ2h0U2libGluZ0BIRUFQX0JBU0VAQElFQkFISEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQgX19jZGVjbCBDTElFTlRfV0lORE9XOjpRdWVyeVJvYnVzdEh3bmQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVJvYnVzdEh3bmRAQ0xJRU5UX1dJTkRPV0BAVUVCQVBFQVVIV05EX19AQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQgX19jZGVjbCBESUFMT0dfV0lORE9XOjpRdWVyeVJvYnVzdEh3bmQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVJvYnVzdEh3bmRARElBTE9HX1dJTkRPV0BAVUVCQVBFQVVIV05EX19AQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQgX19jZGVjbCBESVNQQVRDSEVSOjpRdWVyeVJvYnVzdEh3bmQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVJvYnVzdEh3bmRARElTUEFUQ0hFUkBAVUVCQVBFQVVIV05EX19AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIFNFVF9PRl9BVURJVF9DQVRFR09SSUVTOjpRdWVyeVNMVEJhc2VDSUQodm9pZCkgX19wdHI2NA0KKz9RdWVyeVNMVEJhc2VDSURAU0VUX09GX0FVRElUX0NBVEVHT1JJRVNAQFFFQUFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTElTVEJPWDo6UXVlcnlTY3JvbGxQb3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNjcm9sbFBvc0BMSVNUQk9YQEBRRUJBSVhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJMVF9USU1FX1NQSU5fR1JPVVA6OlF1ZXJ5U2VjKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZWNAQkxUX1RJTUVfU1BJTl9HUk9VUEBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXSU5fVElNRTo6UXVlcnlTZWNvbmQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNlY29uZEBXSU5fVElNRUBAUUVCQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgRUxBUFNFRF9USU1FX0NPTlRST0w6OlF1ZXJ5U2Vjb25kVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNlY29uZFZhbHVlQEVMQVBTRURfVElNRV9DT05UUk9MQEBRRUJBSlhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIExJU1RfQ09OVFJPTDo6UXVlcnlTZWxDb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2VsQ291bnRATElTVF9DT05UUk9MQEBRRUJBSFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBMSVNUX0NPTlRST0w6OlF1ZXJ5U2VsSXRlbXMoaW50ICogX19wdHI2NCxpbnQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZWxJdGVtc0BMSVNUX0NPTlRST0xAQFFFQkFKUEVBSEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBHUkFQSElDQUxfQlVUVE9OX1dJVEhfRElTQUJMRTo6UXVlcnlTZWxlY3RlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2VsZWN0ZWRAR1JBUEhJQ0FMX0JVVFRPTl9XSVRIX0RJU0FCTEVAQFFFQkFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTUFHSUNfR1JPVVA6OlF1ZXJ5U2VsZWN0aW9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZWxlY3Rpb25ATUFHSUNfR1JPVVBAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgUkFESU9fR1JPVVA6OlF1ZXJ5U2VsZWN0aW9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZWxlY3Rpb25AUkFESU9fR1JPVVBAQFFFQkFJWFoNCis7IHB1YmxpYzogY2xhc3MgU0xJU1RfT0ZfVVNFUl9CUk9XU0VSX0xCSSAqIF9fcHRyNjQgX19jZGVjbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpRdWVyeVNlbGVjdGlvbkNhY2hlKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlTZWxlY3Rpb25DYWNoZUBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRRUFBUEVBVlNMSVNUX09GX1VTRVJfQlJPV1NFUl9MQklAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFNMSVNUX09GX1VTRVJfQlJPV1NFUl9MQkkgKiBfX3B0cjY0IF9fY2RlY2wgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6UXVlcnlTZWxlY3Rpb25MaXN0KHZvaWQpIF9fcHRyNjQNCis/UXVlcnlTZWxlY3Rpb25MaXN0QE5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQFFFQUFQRUFWU0xJU1RfT0ZfVVNFUl9CUk9XU0VSX0xCSUBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQURNSU5fQVVUSE9SSVRZOjpRdWVyeVNlcnZlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2VydmVyQEFETUlOX0FVVEhPUklUWUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBPTExCX0VOVFJZOjpRdWVyeVNlcnZlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2VydmVyQE9MTEJfRU5UUllAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgT1BFTl9ESUFMT0dfQkFTRTo6UXVlcnlTZXJ2ZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNlcnZlckBPUEVOX0RJQUxPR19CQVNFQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0c6OlF1ZXJ5U2VydmVyUmVzb3VyY2VMaXZlc09uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZXJ2ZXJSZXNvdXJjZUxpdmVzT25ATlRfVVNFUl9CUk9XU0VSX0RJQUxPR0BAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBjbGFzcyBPU19TSUQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQlJPV1NFUl9TVUJKRUNUOjpRdWVyeVNpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2lkQEJST1dTRVJfU1VCSkVDVEBAUUVCQVBFQlZPU19TSURAQFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgT1NfU0lEOjpRdWVyeVNpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2lkQE9TX1NJREBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBCTFRfTElTVEJPWDo6UXVlcnlTaW5nbGVMaW5lSGVpZ2h0KHZvaWQpIF9fcHRyNjQNCis/UXVlcnlTaW5nbGVMaW5lSGVpZ2h0QEJMVF9MSVNUQk9YQEBRRUFBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIEJMVF9TQ1JBVENIOjpRdWVyeVNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNpemVAQkxUX1NDUkFUQ0hAQFFFQkFJWFoNCis7IHB1YmxpYzogY2xhc3MgWFlESU1FTlNJT04gIF9fY2RlY2wgU1BJTl9HUk9VUDo6UXVlcnlTaXplKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlTaXplQFNQSU5fR1JPVVBAQFFFQUE/QVZYWURJTUVOU0lPTkBAWFoNCis7IHB1YmxpYzogY2xhc3MgWFlESU1FTlNJT04gIF9fY2RlY2wgV0lORE9XOjpRdWVyeVNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNpemVAV0lORE9XQEBRRUJBP0FWWFlESU1FTlNJT05AQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXSU5ET1c6OlF1ZXJ5U2l6ZShpbnQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTaXplQFdJTkRPV0BAUUVCQVhQRUFIMEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpRdWVyeVNtYWxsRGVjVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNtYWxsRGVjVmFsdWVAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFVFQkFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU1BJTl9TTEVfVkFMSURfU0VDT05EOjpRdWVyeVNtYWxsRGVjVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNtYWxsRGVjVmFsdWVAU1BJTl9TTEVfVkFMSURfU0VDT05EQEBVRUJBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpRdWVyeVNtYWxsSW5jVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNtYWxsSW5jVmFsdWVAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFVFQkFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU1BJTl9TTEVfVkFMSURfU0VDT05EOjpRdWVyeVNtYWxsSW5jVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNtYWxsSW5jVmFsdWVAU1BJTl9TTEVfVkFMSURfU0VDT05EQEBVRUJBS1haDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIE5UX0dST1VQX0JST1dTRVJfRElBTE9HICogX19wdHI2NCBfX2NkZWNsIE5UX0dST1VQX0JST1dTRVJfRElBTE9HOjpRdWVyeVNvdXJjZURpYWxvZyh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5U291cmNlRGlhbG9nQE5UX0dST1VQX0JST1dTRVJfRElBTE9HQEBJRUFBUEVBVjFAWFoNCis7IHB1YmxpYzogY2xhc3MgVVNFUl9CUk9XU0VSX0xCICogX19wdHI2NCBfX2NkZWNsIE5UX0ZJTkRfQUNDT1VOVF9ESUFMT0c6OlF1ZXJ5U291cmNlTGlzdGJveCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5U291cmNlTGlzdGJveEBOVF9GSU5EX0FDQ09VTlRfRElBTE9HQEBRRUFBUEVBVlVTRVJfQlJPV1NFUl9MQkBAWFoNCis7IHB1YmxpYzogY2xhc3MgVVNFUl9CUk9XU0VSX0xCICogX19wdHI2NCBfX2NkZWNsIE5UX0dST1VQX0JST1dTRVJfRElBTE9HOjpRdWVyeVNvdXJjZUxpc3Rib3godm9pZCkgX19wdHI2NA0KKz9RdWVyeVNvdXJjZUxpc3Rib3hATlRfR1JPVVBfQlJPV1NFUl9ESUFMT0dAQFFFQUFQRUFWVVNFUl9CUk9XU0VSX0xCQEBYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBTVEFURV9CVVRUT05fQ09OVFJPTDo6UXVlcnlTdGF0ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U3RhdGVAU1RBVEVfQlVUVE9OX0NPTlRST0xAQElFQkFJWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1RMQklURU06OlF1ZXJ5U3RhdGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVN0YXRlQFNUTEJJVEVNQEBRRUJBSFhaDQorOyBwcml2YXRlOiBlbnVtIF9USFJFQURfU1RBVEUgIF9fY2RlY2wgV0lOMzJfVEhSRUFEOjpRdWVyeVN0YXRlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTdGF0ZUBXSU4zMl9USFJFQURAQEFFQkE/QVc0X1RIUkVBRF9TVEFURUBAWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENPTlRST0xfV0lORE9XOjpRdWVyeVN0YXRpY0NsYXNzTmFtZSh2b2lkKQ0KKz9RdWVyeVN0YXRpY0NsYXNzTmFtZUBDT05UUk9MX1dJTkRPV0BAS0FQRUJHWFoNCis7IHB1YmxpYzogY2xhc3MgU1RSSU5HX0xJU1RCT1ggKiBfX3B0cjY0IF9fY2RlY2wgU0xFX1NUUkxCX0dST1VQOjpRdWVyeVN0ckxCKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTdHJMQkBTTEVfU1RSTEJfR1JPVVBAQFFFQkFQRUFWU1RSSU5HX0xJU1RCT1hAQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ09OU09MRV9FTExJUFNJUzo6UXVlcnlTdHJMZW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9RdWVyeVN0ckxlbkBDT05TT0xFX0VMTElQU0lTQEBNRUFBSFBFQkdIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBDT05TT0xFX0VMTElQU0lTOjpRdWVyeVN0ckxlbihjbGFzcyBOTFNfU1RSKSBfX3B0cjY0DQorP1F1ZXJ5U3RyTGVuQENPTlNPTEVfRUxMSVBTSVNAQE1FQUFIVk5MU19TVFJAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgV0lOX0VMTElQU0lTOjpRdWVyeVN0ckxlbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1F1ZXJ5U3RyTGVuQFdJTl9FTExJUFNJU0BATUVBQUhQRUJHSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgV0lOX0VMTElQU0lTOjpRdWVyeVN0ckxlbihjbGFzcyBOTFNfU1RSKSBfX3B0cjY0DQorP1F1ZXJ5U3RyTGVuQFdJTl9FTExJUFNJU0BATUVBQUhWTkxTX1NUUkBAQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBTUElOX1NMRV9TVFI6OlF1ZXJ5U3RyTnVtKGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/UXVlcnlTdHJOdW1AU1BJTl9TTEVfU1RSQEBBRUFBSkFFQlZOTFNfU1RSQEBKQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEFUT01fQkFTRTo6UXVlcnlTdHJpbmcodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVN0cmluZ0BBVE9NX0JBU0VAQFFFQkFKUEVBR0lAWg0KKzsgcHVibGljOiBjbGFzcyBOTFNfU1RSICogX19wdHI2NCBfX2NkZWNsIFNUUklOR19CSVRTRVRfUEFJUjo6UXVlcnlTdHJpbmcodm9pZCkgX19wdHI2NA0KKz9RdWVyeVN0cmluZ0BTVFJJTkdfQklUU0VUX1BBSVJAQFFFQUFQRUFWTkxTX1NUUkBAWFoNCis7IHB1YmxpYzogZW51bSBFTExJUFNJU19TVFlMRSAgX19jZGVjbCBCQVNFX0VMTElQU0lTOjpRdWVyeVN0eWxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTdHlsZUBCQVNFX0VMTElQU0lTQEBRRUJBP0FXNEVMTElQU0lTX1NUWUxFQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgV0lORE9XOjpRdWVyeVN0eWxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTdHlsZUBXSU5ET1dAQFFFQkFLWFoNCis7IHB1YmxpYzogc3RydWN0IEhNRU5VX18gKiBfX3B0cjY0IF9fY2RlY2wgTUVOVV9CQVNFOjpRdWVyeVN1Yk1lbnUoaW50KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U3ViTWVudUBNRU5VX0JBU0VAQFFFQkFQRUFVSE1FTlVfX0BASEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIFNFVF9PRl9BVURJVF9DQVRFR09SSUVTOjpRdWVyeVN1Y2Nlc3NCYXNlQ0lEKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlTdWNjZXNzQmFzZUNJREBTRVRfT0ZfQVVESVRfQ0FURUdPUklFU0BAUUVBQUlYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQkFTRV9TRVRfRk9DVVNfRExHOjpRdWVyeVN1cHBsaWVkSGVscENvbnRleHQodm9pZCkgX19wdHI2NA0KKz9RdWVyeVN1cHBsaWVkSGVscENvbnRleHRAQkFTRV9TRVRfRk9DVVNfRExHQEBJRUFBS1haDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIEJBU0VfU0VUX0ZPQ1VTX0RMRzo6UXVlcnlTdXBwbGllZEhlbHBGaWxlKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlTdXBwbGllZEhlbHBGaWxlQEJBU0VfU0VUX0ZPQ1VTX0RMR0BASUVBQVBFQkdYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQkFTRV9FTExJUFNJUzo6UXVlcnlUZXh0KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlUZXh0QEJBU0VfRUxMSVBTSVNAQFFFQkFKUEVBR0lAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQkFTRV9FTExJUFNJUzo6UXVlcnlUZXh0KGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VGV4dEBCQVNFX0VMTElQU0lTQEBRRUJBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0xFX1NUUklQOjpRdWVyeVRleHQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VGV4dEBTTEVfU1RSSVBAQFFFQkFKUEVBR0lQRUJHMUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTTEVfU1RSSVA6OlF1ZXJ5VGV4dChjbGFzcyBOTFNfU1RSICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VGV4dEBTTEVfU1RSSVBAQFFFQkFKUEVBVk5MU19TVFJAQFBFQkcxQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNMVF9FTExJUFNJUzo6UXVlcnlUZXh0KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlUZXh0QFNMVF9FTExJUFNJU0BAUUVCQUpQRUFHSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTTFRfRUxMSVBTSVM6OlF1ZXJ5VGV4dChjbGFzcyBOTFNfU1RSICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVRleHRAU0xUX0VMTElQU0lTQEBRRUJBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgV0lORE9XOjpRdWVyeVRleHQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVRleHRAV0lORE9XQEBRRUJBSlBFQUdJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFdJTkRPVzo6UXVlcnlUZXh0KGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VGV4dEBXSU5ET1dAQFFFQkFKUEVBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGNsYXNzIFhZRElNRU5TSU9OICBfX2NkZWNsIERFVklDRV9DT05URVhUOjpRdWVyeVRleHRFeHRlbnQoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlUZXh0RXh0ZW50QERFVklDRV9DT05URVhUQEBRRUJBP0FWWFlESU1FTlNJT05AQEFFQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBjbGFzcyBYWURJTUVOU0lPTiAgX19jZGVjbCBERVZJQ0VfQ09OVEVYVDo6UXVlcnlUZXh0RXh0ZW50KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlUZXh0RXh0ZW50QERFVklDRV9DT05URVhUQEBRRUJBP0FWWFlESU1FTlNJT05AQFBFQkdJQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQkFTRV9FTExJUFNJUzo6UXVlcnlUZXh0TGVuZ3RoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlUZXh0TGVuZ3RoQEJBU0VfRUxMSVBTSVNAQFFFQkFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTkxTX1NUUjo6UXVlcnlUZXh0TGVuZ3RoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlUZXh0TGVuZ3RoQE5MU19TVFJAQFFFQkFJWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV0lORE9XOjpRdWVyeVRleHRMZW5ndGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVRleHRMZW5ndGhAV0lORE9XQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIERFVklDRV9DT05URVhUOjpRdWVyeVRleHRNZXRyaWNzKHN0cnVjdCB0YWdURVhUTUVUUklDVyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlUZXh0TWV0cmljc0BERVZJQ0VfQ09OVEVYVEBAUUVCQUhQRUFVdGFnVEVYVE1FVFJJQ1dAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEJBU0VfRUxMSVBTSVM6OlF1ZXJ5VGV4dFNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVRleHRTaXplQEJBU0VfRUxMSVBTSVNAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV0lORE9XOjpRdWVyeVRleHRTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlUZXh0U2l6ZUBXSU5ET1dAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgRElTUExBWV9DT05URVhUOjpRdWVyeVRleHRXaWR0aChjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVRleHRXaWR0aEBESVNQTEFZX0NPTlRFWFRAQFFFQkFIQUVCVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIERJU1BMQVlfQ09OVEVYVDo6UXVlcnlUZXh0V2lkdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVRleHRXaWR0aEBESVNQTEFZX0NPTlRFWFRAQFFFQkFIUEVCR0lAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBYWVJFQ1Q6OlF1ZXJ5VG9wKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlUb3BAWFlSRUNUQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIExJU1RfQ09OVFJPTDo6UXVlcnlUb3BJbmRleCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VG9wSW5kZXhATElTVF9DT05UUk9MQEBRRUJBSFhaDQorOyBwdWJsaWM6IGVudW0gX1NJRF9OQU1FX1VTRSAgX19jZGVjbCBCUk9XU0VSX1NVQkpFQ1Q6OlF1ZXJ5VHlwZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VHlwZUBCUk9XU0VSX1NVQkpFQ1RAQFFFQkE/QVc0X1NJRF9OQU1FX1VTRUBAWFoNCis7IHB1YmxpYzogZW51bSBPVVRMSU5FX0xCX0xFVkVMICBfX2NkZWNsIE9MTEJfRU5UUlk6OlF1ZXJ5VHlwZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VHlwZUBPTExCX0VOVFJZQEBRRUJBP0FXNE9VVExJTkVfTEJfTEVWRUxAQFhaDQorOyBwdWJsaWM6IGVudW0gX1NJRF9OQU1FX1VTRSAgX19jZGVjbCBVU0VSX0JST1dTRVJfTEJJOjpRdWVyeVR5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVR5cGVAVVNFUl9CUk9XU0VSX0xCSUBAUUVCQT9BVzRfU0lEX05BTUVfVVNFQEBYWg0KKzsgcHVibGljOiBlbnVtIFVJX1N5c3RlbVNpZCAgX19jZGVjbCBVU0VSX0JST1dTRVJfTEJJOjpRdWVyeVVJU3lzU2lkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlVSVN5c1NpZEBVU0VSX0JST1dTRVJfTEJJQEBRRUJBP0FXNFVJX1N5c3RlbVNpZEBAWFoNCis7IHByb3RlY3RlZDogc3RydWN0IF9VTENfRU5UUlkgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUl9MQklfQ0FDSEU6OlF1ZXJ5VUxDRW50cnlQdHIoaW50KSBfX3B0cjY0DQorP1F1ZXJ5VUxDRW50cnlQdHJAVVNFUl9MQklfQ0FDSEVAQElFQUFQRUFVX1VMQ19FTlRSWUBASEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIFVTRVJfTEJJX0NBQ0hFOjpRdWVyeVVMQ0VudHJ5U2l6ZSh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5VUxDRW50cnlTaXplQFVTRVJfTEJJX0NBQ0hFQEBJRUFBSFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfVU5JQ09ERV9TVFJJTkcgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTlRfR1JPVVBfRU5VTV9PQko6OlF1ZXJ5VW5pY29kZUNvbW1lbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVVuaWNvZGVDb21tZW50QE5UX0dST1VQX0VOVU1fT0JKQEBRRUJBUEVCVV9VTklDT0RFX1NUUklOR0BAWFoNCis7IHB1YmxpYzogc3RydWN0IF9VTklDT0RFX1NUUklORyBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOVF9HUk9VUF9FTlVNX09CSjo6UXVlcnlVbmljb2RlR3JvdXAodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVVuaWNvZGVHcm91cEBOVF9HUk9VUF9FTlVNX09CSkBAUUVCQVBFQlVfVU5JQ09ERV9TVFJJTkdAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfVU5JQ09ERV9TVFJJTkcgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTFNBX1BSSU1BUllfRE9NX0lORk9fTUVNOjpRdWVyeVVuaWNvZGVOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlVbmljb2RlTmFtZUBMU0FfUFJJTUFSWV9ET01fSU5GT19NRU1AQFFFQkFQRUJVX1VOSUNPREVfU1RSSU5HQEBYWg0KKzsgcHJpdmF0ZTogc3RydWN0IF9VTklDT0RFX1NUUklORyBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBMU0FfUkVGX0RPTUFJTl9NRU06OlF1ZXJ5VW5pY29kZU5hbWUodW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9RdWVyeVVuaWNvZGVOYW1lQExTQV9SRUZfRE9NQUlOX01FTUBAQUVCQVBFQlVfVU5JQ09ERV9TVFJJTkdAQEtAWg0KKzsgcHJpdmF0ZTogc3RydWN0IF9VTklDT0RFX1NUUklORyBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBMU0FfVFJBTlNMQVRFRF9OQU1FX01FTTo6UXVlcnlVbmljb2RlTmFtZSh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VW5pY29kZU5hbWVATFNBX1RSQU5TTEFURURfTkFNRV9NRU1AQEFFQkFQRUJVX1VOSUNPREVfU1RSSU5HQEBLQFoNCis7IHB1YmxpYzogc3RydWN0IF9VTklDT0RFX1NUUklORyBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBMU0FfVFJVU1RfSU5GT19NRU06OlF1ZXJ5VW5pY29kZU5hbWUodW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9RdWVyeVVuaWNvZGVOYW1lQExTQV9UUlVTVF9JTkZPX01FTUBAUUVCQVBFQlVfVU5JQ09ERV9TVFJJTkdAQEtAWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1VOSUNPREVfU1RSSU5HIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFNBTV9SSURfRU5VTUVSQVRJT05fTUVNOjpRdWVyeVVuaWNvZGVOYW1lKHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlVbmljb2RlTmFtZUBTQU1fUklEX0VOVU1FUkFUSU9OX01FTUBAUUVCQVBFQlVfVU5JQ09ERV9TVFJJTkdAQEtAWg0KKzsgcHVibGljOiBlbnVtIF9TSURfTkFNRV9VU0UgIF9fY2RlY2wgTFNBX1RSQU5TTEFURURfTkFNRV9NRU06OlF1ZXJ5VXNlKHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlVc2VATFNBX1RSQU5TTEFURURfTkFNRV9NRU1AQFFFQkE/QVc0X1NJRF9OQU1FX1VTRUBAS0BaDQorOyBwdWJsaWM6IGVudW0gX1NJRF9OQU1FX1VTRSAgX19jZGVjbCBMU0FfVFJBTlNMQVRFRF9TSURfTUVNOjpRdWVyeVVzZSh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VXNlQExTQV9UUkFOU0xBVEVEX1NJRF9NRU1AQFFFQkE/QVc0X1NJRF9OQU1FX1VTRUBAS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBVU0VSX0JST1dTRVJfTEJJOjpRdWVyeVVzZXJBY2NvdW50RmxhZ3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVVzZXJBY2NvdW50RmxhZ3NAVVNFUl9CUk9XU0VSX0xCSUBAUUVCQUtYWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBOVF9VU0VSX0JST1dTRVJfRElBTE9HICogX19wdHI2NCBfX2NkZWNsIE5UX0dST1VQX0JST1dTRVJfRElBTE9HOjpRdWVyeVVzZXJCcm93c2VyRGlhbG9nKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlVc2VyQnJvd3NlckRpYWxvZ0BOVF9HUk9VUF9CUk9XU0VSX0RJQUxPR0BASUVBQVBFQVZOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBPUEVOX0xCSV9CQVNFOjpRdWVyeVVzZXJOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlVc2VyTmFtZUBPUEVOX0xCSV9CQVNFQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTRVRfT0ZfQVVESVRfQ0FURUdPUklFUzo6UXVlcnlVc2VyU2VsZWN0ZWRCaXRzKGNsYXNzIEJJVEZJRUxEICogX19wdHI2NCxjbGFzcyBCSVRGSUVMRCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlVc2VyU2VsZWN0ZWRCaXRzQFNFVF9PRl9BVURJVF9DQVRFR09SSUVTQEBRRUFBSlBFQVZCSVRGSUVMREBAMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBWS0VZX0VWRU5UOjpRdWVyeVZLZXkodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVZLZXlAVktFWV9FVkVOVEBAUUVCQV9LWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpRdWVyeVZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlWYWx1ZUBDSEFOR0VBQkxFX1NQSU5fSVRFTUBAUUVCQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgTUVUQUxMSUNfU1RSX0RURTo6UXVlcnlWZXJ0aWNhbE1hcmdpbnModm9pZCkNCis/UXVlcnlWZXJ0aWNhbE1hcmdpbnNATUVUQUxMSUNfU1RSX0RURUBAU0FJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIEVWRU5UOjpRdWVyeVdQYXJhbSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5V1BhcmFtQEVWRU5UQEBRRUJBX0tYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgU0xFX1NUUklQOjpRdWVyeVdoaXRlU3BhY2Uodm9pZCkNCis/UXVlcnlXaGl0ZVNwYWNlQFNMRV9TVFJJUEBAU0FQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgQklUX01BUDo6UXVlcnlXaWR0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5V2lkdGhAQklUX01BUEBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBESVNQTEFZX01BUDo6UXVlcnlXaWR0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5V2lkdGhARElTUExBWV9NQVBAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgU0laRV9FVkVOVDo6UXVlcnlXaWR0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5V2lkdGhAU0laRV9FVkVOVEBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBYWURJTUVOU0lPTjo6UXVlcnlXaWR0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5V2lkdGhAWFlESU1FTlNJT05AQFFFQkFJWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdJTkRPVzo6UXVlcnlXaW5kb3dSZWN0KHN0cnVjdCB0YWdSRUNUICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVdpbmRvd1JlY3RAV0lORE9XQEBRRUJBWFBFQVV0YWdSRUNUQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV0lORE9XOjpRdWVyeVdpbmRvd1JlY3QoY2xhc3MgWFlSRUNUICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVdpbmRvd1JlY3RAV0lORE9XQEBRRUJBWFBFQVZYWVJFQ1RAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpRdWVyeVdyYXAodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVdyYXBAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgWFlQT0lOVDo6UXVlcnlYKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlYQFhZUE9JTlRAQFFFQkFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6UXVlcnlYRm9yUm93KGludCkgX19wdHI2NA0KKz9RdWVyeVhGb3JSb3dATE9HT05fSE9VUlNfQ09OVFJPTEBAUUVBQUlIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgWFlQT0lOVDo6UXVlcnlZKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlZQFhZUE9JTlRAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQkxUX0RBVEVfU1BJTl9HUk9VUDo6UXVlcnlZZWFyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlZZWFyQEJMVF9EQVRFX1NQSU5fR1JPVVBAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV0lOX1RJTUU6OlF1ZXJ5WWVhcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5WWVhckBXSU5fVElNRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJTlRMX1BST0ZJTEU6OlF1ZXJ5WWVhclBvcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5WWVhclBvc0BJTlRMX1BST0ZJTEVAQFFFQkFIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBlbnVtIEZPQ1VTX0NBQ0hFX1NFVFRJTkcgIF9fY2RlY2wgQkFTRV9TRVRfRk9DVVNfRExHOjpSZWFkRm9jdXNDYWNoZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UmVhZEZvY3VzQ2FjaGVAQkFTRV9TRVRfRk9DVVNfRExHQEBNRUJBP0FXNEZPQ1VTX0NBQ0hFX1NFVFRJTkdAQFBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVVNFUl9MQklfQ0FDSEU6OlJlYWRVc2VycyhjbGFzcyBBRE1JTl9BVVRIT1JJVFkgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsaW50LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVhZFVzZXJzQFVTRVJfTEJJX0NBQ0hFQEBRRUFBSlBFQVZBRE1JTl9BVVRIT1JJVFlAQElJSFBFQUhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgREVWSUNFX0NPTUJPOjpSZWZyZXNoKHZvaWQpIF9fcHRyNjQNCis/UmVmcmVzaEBERVZJQ0VfQ09NQk9AQFFFQUFKWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIE9QRU5fRElBTE9HX0JBU0U6OlJlZnJlc2godm9pZCkgX19wdHI2NA0KKz9SZWZyZXNoQE9QRU5fRElBTE9HX0JBU0VAQElFQUFYWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE9QRU5fTEJPWF9CQVNFOjpSZWZyZXNoKHZvaWQpIF9fcHRyNjQNCis/UmVmcmVzaEBPUEVOX0xCT1hfQkFTRUBAUUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBISUVSX0xJU1RCT1g6OlJlZnJlc2hDaGlsZHJlbihjbGFzcyBISUVSX0xCSSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVmcmVzaENoaWxkcmVuQEhJRVJfTElTVEJPWEBATUVBQVhQRUFWSElFUl9MQklAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFVJX0VYVF9NR1I6OlJlZnJlc2hFeHRlbnNpb25zKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlZnJlc2hFeHRlbnNpb25zQFVJX0VYVF9NR1JAQFVFQUFYUEVBVUhXTkRfX0BAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBCTFQ6OlJlZ2lzdGVySGVscEZpbGUoc3RydWN0IEhJTlNUQU5DRV9fICogX19wdHI2NCxsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/UmVnaXN0ZXJIZWxwRmlsZUBCTFRAQFNBSlBFQVVISU5TVEFOQ0VfX0BASktLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFdJTjMyX01VVEVYOjpSZWxlYXNlKHZvaWQpIF9fcHRyNjQNCis/UmVsZWFzZUBXSU4zMl9NVVRFWEBAUUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgV0lOMzJfU0VNQVBIT1JFOjpSZWxlYXNlKGxvbmcsbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVsZWFzZUBXSU4zMl9TRU1BUEhPUkVAQFFFQUFKSlBFQUpAWg0KKzsgcHJpdmF0ZTogdmlydHVhbCB2b2lkIF9fY2RlY2wgQkxUX0xJU1RCT1g6OlJlbGVhc2VMQkkoY2xhc3MgTEJJICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWxlYXNlTEJJQEJMVF9MSVNUQk9YQEBFRUFBWFBFQVZMQklAQEBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBMQVpZX0xJU1RCT1g6OlJlbGVhc2VMQkkoY2xhc3MgTEJJICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWxlYXNlTEJJQExBWllfTElTVEJPWEBARUVBQVhQRUFWTEJJQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xJRU5UX1dJTkRPVzo6UmVsZWFzZU1vdXNlKHZvaWQpIF9fcHRyNjQNCis/UmVsZWFzZU1vdXNlQENMSUVOVF9XSU5ET1dAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIERJU1BBVENIRVI6OlJlbGVhc2VNb3VzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VNb3VzZUBESVNQQVRDSEVSQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIExCX0NPTF9XSURUSFM6OlJlbG9hZENvbHVtbldpZHRocyhzdHJ1Y3QgSFdORF9fICogX19wdHI2NCxzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3B0cjY0LGNsYXNzIElEUkVTT1VSQ0UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbG9hZENvbHVtbldpZHRoc0BMQl9DT0xfV0lEVEhTQEBVRUFBSlBFQVVIV05EX19AQFBFQVVISU5TVEFOQ0VfX0BAQUVCVklEUkVTT1VSQ0VAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEFSUkFZX0xJU1RfQ09OVFJPTFZBTF9DSURfUEFJUjo6UmVtb3ZlKGNsYXNzIENPTlRST0xWQUxfQ0lEX1BBSVIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbW92ZUBBUlJBWV9MSVNUX0NPTlRST0xWQUxfQ0lEX1BBSVJAQFFFQUFIQUVCVkNPTlRST0xWQUxfQ0lEX1BBSVJAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgSFdORF9ETEdQVFJfQ0FDSEU6OlJlbW92ZShzdHJ1Y3QgSFdORF9fICogX19wdHI2NCkNCis/UmVtb3ZlQEhXTkRfRExHUFRSX0NBQ0hFQEBTQVhQRUFVSFdORF9fQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTUVOVV9CQVNFOjpSZW1vdmUodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9SZW1vdmVATUVOVV9CQVNFQEBRRUJBSklJQFoNCis7IHB1YmxpYzogY2xhc3MgQVNTT0NIQ0ZJTEUgKiBfX3B0cjY0IF9fY2RlY2wgU0xJU1RfT0ZfQVNTT0NIQ0ZJTEU6OlJlbW92ZShjbGFzcyBJVEVSX1NMX0FTU09DSENGSUxFICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVAU0xJU1RfT0ZfQVNTT0NIQ0ZJTEVAQFFFQUFQRUFWQVNTT0NIQ0ZJTEVAQEFFQVZJVEVSX1NMX0FTU09DSENGSUxFQEBAWg0KKzsgcHVibGljOiBzdHJ1Y3QgQ0xJRU5UREFUQSAqIF9fcHRyNjQgX19jZGVjbCBTTElTVF9PRl9DTElFTlREQVRBOjpSZW1vdmUoY2xhc3MgSVRFUl9TTF9DTElFTlREQVRBICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVAU0xJU1RfT0ZfQ0xJRU5UREFUQUBAUUVBQVBFQVVDTElFTlREQVRBQEBBRUFWSVRFUl9TTF9DTElFTlREQVRBQEBAWg0KKzsgcHVibGljOiBjbGFzcyBOTFNfU1RSICogX19wdHI2NCBfX2NkZWNsIFNMSVNUX09GX05MU19TVFI6OlJlbW92ZShjbGFzcyBJVEVSX1NMX05MU19TVFIgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbW92ZUBTTElTVF9PRl9OTFNfU1RSQEBRRUFBUEVBVk5MU19TVFJAQEFFQVZJVEVSX1NMX05MU19TVFJAQEBaDQorOyBwdWJsaWM6IGNsYXNzIFRJTUVSX0JBU0UgKiBfX3B0cjY0IF9fY2RlY2wgU0xJU1RfT0ZfVElNRVJfQkFTRTo6UmVtb3ZlKGNsYXNzIElURVJfU0xfVElNRVJfQkFTRSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVtb3ZlQFNMSVNUX09GX1RJTUVSX0JBU0VAQFFFQUFQRUFWVElNRVJfQkFTRUBAQUVBVklURVJfU0xfVElNRVJfQkFTRUBAQFoNCis7IHB1YmxpYzogY2xhc3MgVVNFUl9CUk9XU0VSX0xCSSAqIF9fcHRyNjQgX19jZGVjbCBTTElTVF9PRl9VU0VSX0JST1dTRVJfTEJJOjpSZW1vdmUoY2xhc3MgSVRFUl9TTF9VU0VSX0JST1dTRVJfTEJJICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVAU0xJU1RfT0ZfVVNFUl9CUk9XU0VSX0xCSUBAUUVBQVBFQVZVU0VSX0JST1dTRVJfTEJJQEBBRUFWSVRFUl9TTF9VU0VSX0JST1dTRVJfTEJJQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQkxUX0xJU1RCT1g6OlJlbW92ZUFsbEl0ZW1zKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlQWxsSXRlbXNAQkxUX0xJU1RCT1hAQFFFQUFYWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBCTFRJTVA6OlJlbW92ZUNsaWVudChzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3B0cjY0KQ0KKz9SZW1vdmVDbGllbnRAQkxUSU1QQEBTQVhQRUFVSElOU1RBTkNFX19AQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENPTlRST0xfVEFCTEU6OlJlbW92ZUNvbnRyb2woY2xhc3MgQ09OVFJPTF9XSU5ET1cgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbW92ZUNvbnRyb2xAQ09OVFJPTF9UQUJMRUBAUUVBQUhQRUFWQ09OVFJPTF9XSU5ET1dAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBBQ0NPVU5UX05BTUVTX01MRTo6UmVtb3ZlRHVwbGljYXRlQWNjb3VudE5hbWVzKGNsYXNzIFNUUkxJU1QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbW92ZUR1cGxpY2F0ZUFjY291bnROYW1lc0BBQ0NPVU5UX05BTUVTX01MRUBASUVBQVhQRUFWU1RSTElTVEBAQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBCTFRJTVA6OlJlbW92ZUhlbHBBc3NvYyhzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpDQorP1JlbW92ZUhlbHBBc3NvY0BCTFRJTVBAQFNBWFBFQVVISU5TVEFOQ0VfX0BAS0BaDQorOyBwdWJsaWM6IGNsYXNzIExCSSAqIF9fcHRyNjQgX19jZGVjbCBCTFRfTElTVEJPWDo6UmVtb3ZlSXRlbShpbnQpIF9fcHRyNjQNCis/UmVtb3ZlSXRlbUBCTFRfTElTVEJPWEBAUUVBQVBFQVZMQklAQEhAWg0KKzsgcHVibGljOiBjbGFzcyBMQkkgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUl9CUk9XU0VSX0xCOjpSZW1vdmVJdGVtKGludCkgX19wdHI2NA0KKz9SZW1vdmVJdGVtQFVTRVJfQlJPV1NFUl9MQkBAUUVBQVBFQVZMQklAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIExCSSAqIF9fcHRyNjQgX19jZGVjbCBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFOjpSZW1vdmVJdGVtKGludCkgX19wdHI2NA0KKz9SZW1vdmVJdGVtQFVTRVJfQlJPV1NFUl9MQklfQ0FDSEVAQFVFQUFQRUFWTEJJQEBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBMQkkgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUl9MQklfQ0FDSEU6OlJlbW92ZUl0ZW0oaW50KSBfX3B0cjY0DQorP1JlbW92ZUl0ZW1AVVNFUl9MQklfQ0FDSEVAQFVFQUFQRUFWTEJJQEBIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIExJU1RfQ09OVFJPTDo6UmVtb3ZlU2VsZWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlU2VsZWN0aW9uQExJU1RfQ09OVFJPTEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQkxUX01BU1RFUl9USU1FUjo6UmVtb3ZlVGltZXIoY2xhc3MgVElNRVJfQkFTRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVtb3ZlVGltZXJAQkxUX01BU1RFUl9USU1FUkBAUUVBQVhQRUFWVElNRVJfQkFTRUBAQFoNCis7IHB1YmxpYzogY2xhc3MgTEJJICogX19wdHI2NCBfX2NkZWNsIExCSV9IRUFQOjpSZW1vdmVUb3BJdGVtKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlVG9wSXRlbUBMQklfSEVBUEBAUUVBQVBFQVZMQklAQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXSU5ET1c6OlJlcGFpbnROb3codm9pZCkgX19wdHI2NA0KKz9SZXBhaW50Tm93QFdJTkRPV0BAUUVBQVhYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQUNDT1VOVF9OQU1FU19NTEU6OlJlcGxhY2VEb21haW5JZkJ1aWx0SW4oY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZXBsYWNlRG9tYWluSWZCdWlsdEluQEFDQ09VTlRfTkFNRVNfTUxFQEBJRUFBSlBFQVZOTFNfU1RSQEBQRUFIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEJMVF9MSVNUQk9YOjpSZXBsYWNlSXRlbShpbnQsY2xhc3MgTEJJICogX19wdHI2NCxjbGFzcyBMQkkgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZXBsYWNlSXRlbUBCTFRfTElTVEJPWEBAUUVBQUpIUEVBVkxCSUBAUEVBUEVBVjJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIEJBU0U6OlJlcG9ydEVycm9yKGxvbmcpIF9fcHRyNjQNCis/UmVwb3J0RXJyb3JAQkFTRUBASUVBQVhKQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENPTlRST0xfVEFCTEU6OlJlcG9ydEVycm9yKHZvaWQpIF9fcHRyNjQNCis/UmVwb3J0RXJyb3JAQ09OVFJPTF9UQUJMRUBASUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ09OVFJPTF9XSU5ET1c6OlJlcG9ydEVycm9yKGxvbmcpIF9fcHRyNjQNCis/UmVwb3J0RXJyb3JAQ09OVFJPTF9XSU5ET1dAQElFQUFYSkBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBGT1JXQVJESU5HX0JBU0U6OlJlcG9ydEVycm9yKGxvbmcpIF9fcHRyNjQNCis/UmVwb3J0RXJyb3JARk9SV0FSRElOR19CQVNFQEBJRUFBWEpAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgU0xUX0VMTElQU0lTOjpSZXBvcnRFcnJvcihsb25nKSBfX3B0cjY0DQorP1JlcG9ydEVycm9yQFNMVF9FTExJUFNJU0BASUVBQVhKQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEJST1dTRVJfRE9NQUlOOjpSZXF1ZXN0QWNjb3VudERhdGEodm9pZCkgX19wdHI2NA0KKz9SZXF1ZXN0QWNjb3VudERhdGFAQlJPV1NFUl9ET01BSU5AQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIERPTUFJTl9GSUxMX1RIUkVBRDo6UmVxdWVzdEFjY291bnREYXRhKHZvaWQpIF9fcHRyNjQNCis/UmVxdWVzdEFjY291bnREYXRhQERPTUFJTl9GSUxMX1RIUkVBREBAUUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQlJPV1NFUl9ET01BSU46OlJlcXVlc3RBbmRXYWl0Rm9yVXNlcnModm9pZCkgX19wdHI2NA0KKz9SZXF1ZXN0QW5kV2FpdEZvclVzZXJzQEJST1dTRVJfRE9NQUlOQEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBET01BSU5fRklMTF9USFJFQUQ6OlJlcXVlc3RBbmRXYWl0Rm9yVXNlcnModm9pZCkgX19wdHI2NA0KKz9SZXF1ZXN0QW5kV2FpdEZvclVzZXJzQERPTUFJTl9GSUxMX1RIUkVBREBAUUVBQUpYWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBjbGFzcyBMQkkgKiBfX3B0cjY0IF9fY2RlY2wgQkxUX0xJU1RCT1g6OlJlcXVlc3RMQkkoc3RydWN0IHRhZ0RSQVdJVEVNU1RSVUNUIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZXF1ZXN0TEJJQEJMVF9MSVNUQk9YQEBFRUFBUEVBVkxCSUBAUEVCVXRhZ0RSQVdJVEVNU1RSVUNUQEBAWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBjbGFzcyBMQkkgKiBfX3B0cjY0IF9fY2RlY2wgTEFaWV9MSVNUQk9YOjpSZXF1ZXN0TEJJKHN0cnVjdCB0YWdEUkFXSVRFTVNUUlVDVCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVxdWVzdExCSUBMQVpZX0xJU1RCT1hAQEVFQUFQRUFWTEJJQEBQRUJVdGFnRFJBV0lURU1TVFJVQ1RAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCUk9XU0VfRE9NQUlOX0VOVU06OlJlc2V0KHZvaWQpIF9fcHRyNjQNCis/UmVzZXRAQlJPV1NFX0RPTUFJTl9FTlVNQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJVEVSX0NUUkw6OlJlc2V0KHZvaWQpIF9fcHRyNjQNCis/UmVzZXRASVRFUl9DVFJMQEBRRUFBWFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBXSU4zMl9FVkVOVDo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBXSU4zMl9FVkVOVEBAUUVBQUpYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIFBPUFVQOjpSZXNldENhcHRpb24odm9pZCkNCis/UmVzZXRDYXB0aW9uQFBPUFVQQEBTQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgV0lORE9XOjpSZXNldENyZWF0b3Iodm9pZCkgX19wdHI2NA0KKz9SZXNldENyZWF0b3JAV0lORE9XQEBJRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBCQVNFOjpSZXNldEVycm9yKHZvaWQpIF9fcHRyNjQNCis/UmVzZXRFcnJvckBCQVNFQEBJRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDT05UUk9MX1dJTkRPVzo6UmVzZXRFcnJvcih2b2lkKSBfX3B0cjY0DQorP1Jlc2V0RXJyb3JAQ09OVFJPTF9XSU5ET1dAQElFQUFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIEZPUldBUkRJTkdfQkFTRTo6UmVzZXRFcnJvcih2b2lkKSBfX3B0cjY0DQorP1Jlc2V0RXJyb3JARk9SV0FSRElOR19CQVNFQEBJRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBTTFRfRUxMSVBTSVM6OlJlc2V0RXJyb3Iodm9pZCkgX19wdHI2NA0KKz9SZXNldEVycm9yQFNMVF9FTExJUFNJU0BASUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQkxUX01BU1RFUl9USU1FUjo6UmVzZXRJdGVyYXRvcih2b2lkKSBfX3B0cjY0DQorP1Jlc2V0SXRlcmF0b3JAQkxUX01BU1RFUl9USU1FUkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU0xUX0VMTElQU0lTOjpSZXNldFN0eWxlKGVudW0gRUxMSVBTSVNfU1RZTEUpIF9fcHRyNjQNCis/UmVzZXRTdHlsZUBTTFRfRUxMSVBTSVNAQFFFQUFYVzRFTExJUFNJU19TVFlMRUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQVJSQVlfQ09OVFJPTFZBTF9DSURfUEFJUjo6UmVzaXplKHVuc2lnbmVkIGludCxpbnQpIF9fcHRyNjQNCis/UmVzaXplQEFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVJAQFFFQUFISUhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQkxUX0xJU1RCT1g6OlJlc29ydCh2b2lkKSBfX3B0cjY0DQorP1Jlc29ydEBCTFRfTElTVEJPWEBAUUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBCTFRfREFURV9TUElOX0dST1VQOjpSZXN0b3JlVmFsdWUoaW50KSBfX3B0cjY0DQorP1Jlc3RvcmVWYWx1ZUBCTFRfREFURV9TUElOX0dST1VQQEBNRUFBWEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBCTFRfVElNRV9TUElOX0dST1VQOjpSZXN0b3JlVmFsdWUoaW50KSBfX3B0cjY0DQorP1Jlc3RvcmVWYWx1ZUBCTFRfVElNRV9TUElOX0dST1VQQEBNRUFBWEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDT01CT0JPWDo6UmVzdG9yZVZhbHVlKGludCkgX19wdHI2NA0KKz9SZXN0b3JlVmFsdWVAQ09NQk9CT1hAQE1FQUFYSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENPTlRST0xfVkFMVUU6OlJlc3RvcmVWYWx1ZShpbnQpIF9fcHRyNjQNCis/UmVzdG9yZVZhbHVlQENPTlRST0xfVkFMVUVAQE1FQUFYSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIEVESVRfQ09OVFJPTDo6UmVzdG9yZVZhbHVlKGludCkgX19wdHI2NA0KKz9SZXN0b3JlVmFsdWVARURJVF9DT05UUk9MQEBNRUFBWEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBMSVNUX0NPTlRST0w6OlJlc3RvcmVWYWx1ZShpbnQpIF9fcHRyNjQNCis/UmVzdG9yZVZhbHVlQExJU1RfQ09OVFJPTEBATUVBQVhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgTUFHSUNfR1JPVVA6OlJlc3RvcmVWYWx1ZShpbnQpIF9fcHRyNjQNCis/UmVzdG9yZVZhbHVlQE1BR0lDX0dST1VQQEBNRUFBWEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBSQURJT19HUk9VUDo6UmVzdG9yZVZhbHVlKGludCkgX19wdHI2NA0KKz9SZXN0b3JlVmFsdWVAUkFESU9fR1JPVVBAQE1FQUFYSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNMVDo6UmVzdG9yZVZhbHVlKGludCkgX19wdHI2NA0KKz9SZXN0b3JlVmFsdWVAU0xUQEBNRUFBWEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTUElOX0dST1VQOjpSZXN0b3JlVmFsdWUoaW50KSBfX3B0cjY0DQorP1Jlc3RvcmVWYWx1ZUBTUElOX0dST1VQQEBVRUFBWEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTVEFURV9CVVRUT05fQ09OVFJPTDo6UmVzdG9yZVZhbHVlKGludCkgX19wdHI2NA0KKz9SZXN0b3JlVmFsdWVAU1RBVEVfQlVUVE9OX0NPTlRST0xAQE1FQUFYSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBXSU4zMl9USFJFQUQ6OlJlc3VtZSh2b2lkKSBfX3B0cjY0DQorP1Jlc3VtZUBXSU4zMl9USFJFQURAQFFFQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBBUFBMSUNBVElPTjo6UnVuKHZvaWQpIF9fcHRyNjQNCis/UnVuQEFQUExJQ0FUSU9OQEBNRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBIQVNfTUVTU0FHRV9QVU1QOjpSdW5NZXNzYWdlUHVtcCh2b2lkKSBfX3B0cjY0DQorP1J1bk1lc3NhZ2VQdW1wQEhBU19NRVNTQUdFX1BVTVBAQElFQUFfS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpTYXZlQ3VycmVudERhdGEodm9pZCkgX19wdHI2NA0KKz9TYXZlQ3VycmVudERhdGFAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFVFQUFKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgU1BJTl9TTEVfTlVNOjpTYXZlQ3VycmVudERhdGEodm9pZCkgX19wdHI2NA0KKz9TYXZlQ3VycmVudERhdGFAU1BJTl9TTEVfTlVNQEBVRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFNQSU5fU0xFX1NUUjo6U2F2ZUN1cnJlbnREYXRhKHZvaWQpIF9fcHRyNjQNCis/U2F2ZUN1cnJlbnREYXRhQFNQSU5fU0xFX1NUUkBAVUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBCTFRfREFURV9TUElOX0dST1VQOjpTYXZlVmFsdWUoaW50KSBfX3B0cjY0DQorP1NhdmVWYWx1ZUBCTFRfREFURV9TUElOX0dST1VQQEBNRUFBWEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBCTFRfVElNRV9TUElOX0dST1VQOjpTYXZlVmFsdWUoaW50KSBfX3B0cjY0DQorP1NhdmVWYWx1ZUBCTFRfVElNRV9TUElOX0dST1VQQEBNRUFBWEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDT01CT0JPWDo6U2F2ZVZhbHVlKGludCkgX19wdHI2NA0KKz9TYXZlVmFsdWVAQ09NQk9CT1hAQE1FQUFYSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENPTlRST0xfVkFMVUU6OlNhdmVWYWx1ZShpbnQpIF9fcHRyNjQNCis/U2F2ZVZhbHVlQENPTlRST0xfVkFMVUVAQE1FQUFYSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIEVESVRfQ09OVFJPTDo6U2F2ZVZhbHVlKGludCkgX19wdHI2NA0KKz9TYXZlVmFsdWVARURJVF9DT05UUk9MQEBNRUFBWEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBMSVNUX0NPTlRST0w6OlNhdmVWYWx1ZShpbnQpIF9fcHRyNjQNCis/U2F2ZVZhbHVlQExJU1RfQ09OVFJPTEBATUVBQVhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgTUFHSUNfR1JPVVA6OlNhdmVWYWx1ZShpbnQpIF9fcHRyNjQNCis/U2F2ZVZhbHVlQE1BR0lDX0dST1VQQEBNRUFBWEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBSQURJT19HUk9VUDo6U2F2ZVZhbHVlKGludCkgX19wdHI2NA0KKz9TYXZlVmFsdWVAUkFESU9fR1JPVVBAQE1FQUFYSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNMVDo6U2F2ZVZhbHVlKGludCkgX19wdHI2NA0KKz9TYXZlVmFsdWVAU0xUQEBNRUFBWEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTUElOX0dST1VQOjpTYXZlVmFsdWUoaW50KSBfX3B0cjY0DQorP1NhdmVWYWx1ZUBTUElOX0dST1VQQEBVRUFBWEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTVEFURV9CVVRUT05fQ09OVFJPTDo6U2F2ZVZhbHVlKGludCkgX19wdHI2NA0KKz9TYXZlVmFsdWVAU1RBVEVfQlVUVE9OX0NPTlRST0xAQE1FQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBYWVBPSU5UOjpTY3JlZW5Ub0NsaWVudChzdHJ1Y3QgSFdORF9fICogX19wdHI2NCkgX19wdHI2NA0KKz9TY3JlZW5Ub0NsaWVudEBYWVBPSU5UQEBRRUFBWFBFQVVIV05EX19AQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBIQklUTUFQX18gKiBfX3B0cjY0IF9fY2RlY2wgREVWSUNFX0NPTlRFWFQ6OlNlbGVjdEJpdG1hcChzdHJ1Y3QgSEJJVE1BUF9fICogX19wdHI2NCkgX19wdHI2NA0KKz9TZWxlY3RCaXRtYXBAREVWSUNFX0NPTlRFWFRAQFFFQUFQRUFVSEJJVE1BUF9fQEBQRUFVMkBAWg0KKzsgcHVibGljOiBzdHJ1Y3QgSEJSVVNIX18gKiBfX3B0cjY0IF9fY2RlY2wgREVWSUNFX0NPTlRFWFQ6OlNlbGVjdEJydXNoKHN0cnVjdCBIQlJVU0hfXyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VsZWN0QnJ1c2hAREVWSUNFX0NPTlRFWFRAQFFFQUFQRUFVSEJSVVNIX19AQFBFQVUyQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBIRk9OVF9fICogX19wdHI2NCBfX2NkZWNsIERFVklDRV9DT05URVhUOjpTZWxlY3RGb250KHN0cnVjdCBIRk9OVF9fICogX19wdHI2NCkgX19wdHI2NA0KKz9TZWxlY3RGb250QERFVklDRV9DT05URVhUQEBRRUFBUEVBVUhGT05UX19AQFBFQVUyQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCUk9XU0VSX0RPTUFJTl9DQjo6U2VsZWN0SXRlbShjbGFzcyBCUk9XU0VSX0RPTUFJTiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VsZWN0SXRlbUBCUk9XU0VSX0RPTUFJTl9DQkBAUUVBQVhQRUFWQlJPV1NFUl9ET01BSU5AQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBMSVNUX0NPTlRST0w6OlNlbGVjdEl0ZW0oaW50LGludCkgX19wdHI2NA0KKz9TZWxlY3RJdGVtQExJU1RfQ09OVFJPTEBAUUVBQVhISEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBMSVNUX0NPTlRST0w6OlNlbGVjdEl0ZW1zKGludCAqIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz9TZWxlY3RJdGVtc0BMSVNUX0NPTlRST0xAQFFFQUFYUEVBSEhIQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBCQVNFX1NFVF9GT0NVU19ETEc6OlNlbGVjdE5ldFBhdGhTdHJpbmcodm9pZCkgX19wdHI2NA0KKz9TZWxlY3ROZXRQYXRoU3RyaW5nQEJBU0VfU0VUX0ZPQ1VTX0RMR0BAQUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIERFVklDRV9DT05URVhUOjpTZWxlY3RPYmplY3Qodm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VsZWN0T2JqZWN0QERFVklDRV9DT05URVhUQEBJRUFBUEVBWFBFQVhAWg0KKzsgcHVibGljOiBzdHJ1Y3QgSFBFTl9fICogX19wdHI2NCBfX2NkZWNsIERFVklDRV9DT05URVhUOjpTZWxlY3RQZW4oc3RydWN0IEhQRU5fXyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VsZWN0UGVuQERFVklDRV9DT05URVhUQEBRRUFBUEVBVUhQRU5fX0BAUEVBVTJAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENPTUJPQk9YOjpTZWxlY3RTdHJpbmcodm9pZCkgX19wdHI2NA0KKz9TZWxlY3RTdHJpbmdAQ09NQk9CT1hAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEVESVRfQ09OVFJPTDo6U2VsZWN0U3RyaW5nKHZvaWQpIF9fcHRyNjQNCis/U2VsZWN0U3RyaW5nQEVESVRfQ09OVFJPTEBAUUVBQVhYWg0KKzsgcHVibGljOiBfX2ludDY0IF9fY2RlY2wgRVZFTlQ6OlNlbmRUbyhzdHJ1Y3QgSFdORF9fICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9TZW5kVG9ARVZFTlRAQFFFQkFfSlBFQVVIV05EX19AQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgSElDT05fXyAqIF9fcHRyNjQgX19jZGVjbCBDVVJTT1I6OlNldChzdHJ1Y3QgSElDT05fXyAqIF9fcHRyNjQpDQorP1NldEBDVVJTT1JAQFNBUEVBVUhJQ09OX19AQFBFQVUyQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBXSU4zMl9FVkVOVDo6U2V0KHZvaWQpIF9fcHRyNjQNCis/U2V0QFdJTjMyX0VWRU5UQEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTUElOX0lURU06OlNldEFjY0tleShjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRBY2NLZXlAU1BJTl9JVEVNQEBRRUFBSkFFQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU1BJTl9JVEVNOjpTZXRBY2NLZXkobG9uZykgX19wdHI2NA0KKz9TZXRBY2NLZXlAU1BJTl9JVEVNQEBRRUFBSkpAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6U2V0QW5kRmlsbEVycm9yVGV4dChsb25nLGludCkgX19wdHI2NA0KKz9TZXRBbmRGaWxsRXJyb3JUZXh0QE5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQFFFQUFKSkhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgU1BJTl9HUk9VUDo6U2V0QXJyb3dCdXR0b25TdGF0dXModm9pZCkgX19wdHI2NA0KKz9TZXRBcnJvd0J1dHRvblN0YXR1c0BTUElOX0dST1VQQEBJRUFBWFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBCUk9XU0VSX0RPTUFJTjo6U2V0QXNUYXJnZXREb21haW4odm9pZCkgX19wdHI2NA0KKz9TZXRBc1RhcmdldERvbWFpbkBCUk9XU0VSX0RPTUFJTkBAUUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgSEVBUF9CQVNFOjpTZXRBdXRvUmVhZGp1c3QoaW50KSBfX3B0cjY0DQorP1NldEF1dG9SZWFkanVzdEBIRUFQX0JBU0VAQElFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6U2V0QmlnRGVjVmFsdWUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRCaWdEZWNWYWx1ZUBDSEFOR0VBQkxFX1NQSU5fSVRFTUBAUUVBQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpTZXRCaWdJbmNWYWx1ZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldEJpZ0luY1ZhbHVlQENIQU5HRUFCTEVfU1BJTl9JVEVNQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQklUX01BUDo6U2V0Qml0bWFwKHN0cnVjdCBIQklUTUFQX18gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEJpdG1hcEBCSVRfTUFQQEBRRUFBWFBFQVVIQklUTUFQX19AQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgRElTUExBWV9NQVA6OlNldEJpdG1hcEJpdHModW5zaWduZWQgY2hhciAqIF9fcHRyNjQsaW50LGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0Qml0bWFwQml0c0BESVNQTEFZX01BUEBAQUVBQVhQRUFFSEhJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIERFVklDRV9DT05URVhUOjpTZXRCa0NvbG9yKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0QmtDb2xvckBERVZJQ0VfQ09OVEVYVEBAUUVBQUtLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgREVWSUNFX0NPTlRFWFQ6OlNldEJrTW9kZShpbnQpIF9fcHRyNjQNCis/U2V0QmtNb2RlQERFVklDRV9DT05URVhUQEBRRUFBSEhAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgR0VUX0ZOQU1FX0JBU0VfRExHOjpTZXRCdWZmZXIoY2xhc3MgQlVGRkVSICogX19wdHI2NCxjbGFzcyBTVFJMSVNUICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRCdWZmZXJAR0VUX0ZOQU1FX0JBU0VfRExHQEBJRUFBSlBFQVZCVUZGRVJAQEFFQVZTVFJMSVNUQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgRU5VTV9PQkpfQkFTRTo6U2V0QnVmZmVyUHRyKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEJ1ZmZlclB0ckBFTlVNX09CSl9CQVNFQEBJRUFBWFBFQkVAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgT1JERVJfR1JPVVA6OlNldEJ1dHRvbih2b2lkKSBfX3B0cjY0DQorP1NldEJ1dHRvbkBPUkRFUl9HUk9VUEBAUUVBQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIFBPUFVQOjpTZXRDYXB0aW9uKGxvbmcpDQorP1NldENhcHRpb25AUE9QVVBAQFNBWEpAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTElTVF9DT05UUk9MOjpTZXRDYXJldEluZGV4KGludCxpbnQpIF9fcHRyNjQNCis/U2V0Q2FyZXRJbmRleEBMSVNUX0NPTlRST0xAQFFFQUFYSEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTUVOVUlURU06OlNldENoZWNrKGludCkgX19wdHI2NA0KKz9TZXRDaGVja0BNRU5VSVRFTUBAUUVBQVhIQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBSQURJT19CVVRUT046OlNldENoZWNrKGludCkgX19wdHI2NA0KKz9TZXRDaGVja0BSQURJT19CVVRUT05AQEFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTVEFURTJfQlVUVE9OX0NPTlRST0w6OlNldENoZWNrKGludCkgX19wdHI2NA0KKz9TZXRDaGVja0BTVEFURTJfQlVUVE9OX0NPTlRST0xAQFFFQUFYSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTRVRfT0ZfQVVESVRfQ0FURUdPUklFUzo6U2V0Q2hlY2tCb3hOYW1lcyhjbGFzcyBNQVNLX01BUCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Q2hlY2tCb3hOYW1lc0BTRVRfT0ZfQVVESVRfQ0FURUdPUklFU0BAUUVBQUpQRUFWTUFTS19NQVBAQEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB2b2lkIF9fY2RlY2wgV0lORE9XOjpTZXRDbGllbnRHZW5lcmF0ZWRNc2dGbGFnKGludCkNCis/U2V0Q2xpZW50R2VuZXJhdGVkTXNnRmxhZ0BXSU5ET1dAQEtBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTUVURVI6OlNldENvbXBsZXRlKGludCkgX19wdHI2NA0KKz9TZXRDb21wbGV0ZUBNRVRFUkBAUUVBQVhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgQkxUX0RBVEVfU1BJTl9HUk9VUDo6U2V0Q29udHJvbFZhbHVlRm9jdXModm9pZCkgX19wdHI2NA0KKz9TZXRDb250cm9sVmFsdWVGb2N1c0BCTFRfREFURV9TUElOX0dST1VQQEBNRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIEJMVF9USU1FX1NQSU5fR1JPVVA6OlNldENvbnRyb2xWYWx1ZUZvY3VzKHZvaWQpIF9fcHRyNjQNCis/U2V0Q29udHJvbFZhbHVlRm9jdXNAQkxUX1RJTUVfU1BJTl9HUk9VUEBATUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDT05UUk9MX1ZBTFVFOjpTZXRDb250cm9sVmFsdWVGb2N1cyh2b2lkKSBfX3B0cjY0DQorP1NldENvbnRyb2xWYWx1ZUZvY3VzQENPTlRST0xfVkFMVUVAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ09OVFJPTF9XSU5ET1c6OlNldENvbnRyb2xWYWx1ZUZvY3VzKHZvaWQpIF9fcHRyNjQNCis/U2V0Q29udHJvbFZhbHVlRm9jdXNAQ09OVFJPTF9XSU5ET1dAQFVFQUFYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgRURJVF9DT05UUk9MOjpTZXRDb250cm9sVmFsdWVGb2N1cyh2b2lkKSBfX3B0cjY0DQorP1NldENvbnRyb2xWYWx1ZUZvY3VzQEVESVRfQ09OVFJPTEBATUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBNQUdJQ19HUk9VUDo6U2V0Q29udHJvbFZhbHVlRm9jdXModm9pZCkgX19wdHI2NA0KKz9TZXRDb250cm9sVmFsdWVGb2N1c0BNQUdJQ19HUk9VUEBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBSQURJT19HUk9VUDo6U2V0Q29udHJvbFZhbHVlRm9jdXModm9pZCkgX19wdHI2NA0KKz9TZXRDb250cm9sVmFsdWVGb2N1c0BSQURJT19HUk9VUEBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTUElOX0dST1VQOjpTZXRDb250cm9sVmFsdWVGb2N1cyh2b2lkKSBfX3B0cjY0DQorP1NldENvbnRyb2xWYWx1ZUZvY3VzQFNQSU5fR1JPVVBAQFVFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIExBWllfTElTVEJPWDo6U2V0Q291bnQodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1NldENvdW50QExBWllfTElTVEJPWEBAUUVBQVhJQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQjo6U2V0Q3VycmVudENhY2hlKGNsYXNzIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEN1cnJlbnRDYWNoZUBVU0VSX0JST1dTRVJfTEJAQFFFQUFYUEVBVlVTRVJfQlJPV1NFUl9MQklfQ0FDSEVAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBCTFRfREFURV9TUElOX0dST1VQOjpTZXRDdXJyZW50RGF5KHZvaWQpIF9fcHRyNjQNCis/U2V0Q3VycmVudERheUBCTFRfREFURV9TUElOX0dST1VQQEBRRUFBSlhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpTZXRDdXJyZW50RG9tYWluRm9jdXMoY2xhc3MgQlJPV1NFUl9ET01BSU4gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEN1cnJlbnREb21haW5Gb2N1c0BOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRRUFBWFBFQVZCUk9XU0VSX0RPTUFJTkBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFNQSU5fR1JPVVA6OlNldEN1cnJlbnRGaWVsZChjbGFzcyBTUElOX0lURU0gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEN1cnJlbnRGaWVsZEBTUElOX0dST1VQQEBJRUFBWFBFQVZTUElOX0lURU1AQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBCTFRfVElNRV9TUElOX0dST1VQOjpTZXRDdXJyZW50VGltZSh2b2lkKSBfX3B0cjY0DQorP1NldEN1cnJlbnRUaW1lQEJMVF9USU1FX1NQSU5fR1JPVVBAQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEdFVF9GTkFNRV9CQVNFX0RMRzo6U2V0Q3VzdG9tRmlsdGVyKGNsYXNzIFNUUkxJU1QgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0Q3VzdG9tRmlsdGVyQEdFVF9GTkFNRV9CQVNFX0RMR0BAUUVBQUpBRUFWU1RSTElTVEBAS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBESVNLX1NQQUNFX1NVQkNMQVNTOjpTZXREU0ZpZWxkTmFtZShsb25nKSBfX3B0cjY0DQorP1NldERTRmllbGROYW1lQERJU0tfU1BBQ0VfU1VCQ0xBU1NAQFFFQUFYSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCTFRfREFURV9TUElOX0dST1VQOjpTZXREYXkoaW50KSBfX3B0cjY0DQorP1NldERheUBCTFRfREFURV9TUElOX0dST1VQQEBRRUFBWEhAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHZvaWQgX19jZGVjbCBISUVSX0xCSTo6U2V0RGVzdHJveWFibGUoaW50KQ0KKz9TZXREZXN0cm95YWJsZUBISUVSX0xCSUBAQ0FYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBPV05FUl9XSU5ET1c6OlNldERpYWxvZ0ZvY3VzKGNsYXNzIENPTlRST0xfV0lORE9XICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXREaWFsb2dGb2N1c0BPV05FUl9XSU5ET1dAQFFFQUFYQUVBVkNPTlRST0xfV0lORE9XQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6U2V0RG9tYWluQ29tYm9Ecm9wRmxhZyhpbnQpIF9fcHRyNjQNCis/U2V0RG9tYWluQ29tYm9Ecm9wRmxhZ0BOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBJRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgT1VUTElORV9MSVNUQk9YOjpTZXREb21haW5FeHBhbmRlZChpbnQsaW50KSBfX3B0cjY0DQorP1NldERvbWFpbkV4cGFuZGVkQE9VVExJTkVfTElTVEJPWEBAUUVBQVhISEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBCQVNFX0VMTElQU0lTOjpTZXRFbGxpcHNpcyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RWxsaXBzaXNAQkFTRV9FTExJUFNJU0BAUUVBQUpQRUFHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEJBU0VfRUxMSVBTSVM6OlNldEVsbGlwc2lzKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEVsbGlwc2lzQEJBU0VfRUxMSVBTSVNAQFFFQUFKUEVBVk5MU19TVFJAQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBCQVNFX0VMTElQU0lTOjpTZXRFbGxpcHNpc0NlbnRlcihjbGFzcyBOTFNfU1RSICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRFbGxpcHNpc0NlbnRlckBCQVNFX0VMTElQU0lTQEBJRUFBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQkFTRV9FTExJUFNJUzo6U2V0RWxsaXBzaXNMZWZ0KGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEVsbGlwc2lzTGVmdEBCQVNFX0VMTElQU0lTQEBJRUFBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQkFTRV9FTExJUFNJUzo6U2V0RWxsaXBzaXNQYXRoKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEVsbGlwc2lzUGF0aEBCQVNFX0VMTElQU0lTQEBJRUFBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQkFTRV9FTExJUFNJUzo6U2V0RWxsaXBzaXNSaWdodChjbGFzcyBOTFNfU1RSICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRFbGxpcHNpc1JpZ2h0QEJBU0VfRUxMSVBTSVNAQElFQUFKUEVBVk5MU19TVFJAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBHRVRfRk5BTUVfQkFTRV9ETEc6OlNldEVuYWJsZUhvb2soaW50KSBfX3B0cjY0DQorP1NldEVuYWJsZUhvb2tAR0VUX0ZOQU1FX0JBU0VfRExHQEBJRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSElFUl9MQkk6OlNldEV4cGFuZGVkKGludCkgX19wdHI2NA0KKz9TZXRFeHBhbmRlZEBISUVSX0xCSUBAUUVBQVhIQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBPTExCX0VOVFJZOjpTZXRFeHBhbmRlZChpbnQpIF9fcHRyNjQNCis/U2V0RXhwYW5kZWRAT0xMQl9FTlRSWUBAQUVBQVhIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU1BJTl9HUk9VUDo6U2V0RmllbGRNaW5NYXgodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0RmllbGRNaW5NYXhAU1BJTl9HUk9VUEBAUUVBQUhHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNQSU5fU0xFX05VTV9WQUxJRDo6U2V0RmllbGROYW1lKGxvbmcpIF9fcHRyNjQNCis/U2V0RmllbGROYW1lQFNQSU5fU0xFX05VTV9WQUxJREBAUUVBQUpKQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEdFVF9GTkFNRV9CQVNFX0RMRzo6U2V0RmlsZUV4dGVuc2lvbihjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRGaWxlRXh0ZW5zaW9uQEdFVF9GTkFNRV9CQVNFX0RMR0BAUUVBQUpBRUJWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEdFVF9GTkFNRV9CQVNFX0RMRzo6U2V0RmlsdGVyKGNsYXNzIFNUUkxJU1QgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0RmlsdGVyQEdFVF9GTkFNRV9CQVNFX0RMR0BAUUVBQUpBRUFWU1RSTElTVEBAS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBNTEU6OlNldEZtdExpbmVzKGludCkgX19wdHI2NA0KKz9TZXRGbXRMaW5lc0BNTEVAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBPV05FUl9XSU5ET1c6OlNldEZvY3VzKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRGb2N1c0BPV05FUl9XSU5ET1dAQFFFQUFYSUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDT05UUk9MX1dJTkRPVzo6U2V0Rm9udChzdHJ1Y3QgSEZPTlRfXyAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1NldEZvbnRAQ09OVFJPTF9XSU5ET1dAQFFFQUFYUEVBVUhGT05UX19AQEhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgRk9OVDo6U2V0Rm9udChzdHJ1Y3QgdGFnTE9HRk9OVFcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEZvbnRARk9OVEBAUUVBQUpBRUJVdGFnTE9HRk9OVFdAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBGT05UOjpTZXRGb250KHN0cnVjdCBIRk9OVF9fICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRGb250QEZPTlRAQFFFQUFKUEVBVUhGT05UX19AQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDT05UUk9MX1ZBTFVFOjpTZXRHcm91cChjbGFzcyBDT05UUk9MX0dST1VQICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRHcm91cEBDT05UUk9MX1ZBTFVFQEBRRUFBWFBFQVZDT05UUk9MX0dST1VQQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgTUVOVV9CQVNFOjpTZXRIYW5kbGUoc3RydWN0IEhNRU5VX18gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEhhbmRsZUBNRU5VX0JBU0VAQElFQUFYUEVBVUhNRU5VX19AQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBXSU4zMl9IQU5ETEU6OlNldEhhbmRsZSh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRIYW5kbGVAV0lOMzJfSEFORExFQEBJRUFBWFBFQVhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgWFlESU1FTlNJT046OlNldEhlaWdodCh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0SGVpZ2h0QFhZRElNRU5TSU9OQEBRRUFBWElAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgR0VUX0ZOQU1FX0JBU0VfRExHOjpTZXRIZWxwQWN0aXZlKGludCkgX19wdHI2NA0KKz9TZXRIZWxwQWN0aXZlQEdFVF9GTkFNRV9CQVNFX0RMR0BAUUVBQVhIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBQT1BVUDo6U2V0SGVscENvbnRleHRCYXNlKHVuc2lnbmVkIGxvbmcpDQorP1NldEhlbHBDb250ZXh0QmFzZUBQT1BVUEBAU0FLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBHRVRfRk5BTUVfQkFTRV9ETEc6OlNldEhvb2tQcm9jKHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/U2V0SG9va1Byb2NAR0VUX0ZOQU1FX0JBU0VfRExHQEBRRUFBWF9LQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIExJU1RCT1g6OlNldEhvcml6b250YWxFeHRlbnQodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1NldEhvcml6b250YWxFeHRlbnRATElTVEJPWEBAUUVBQVhJQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEJMVF9USU1FX1NQSU5fR1JPVVA6OlNldEhvdXIoaW50KSBfX3B0cjY0DQorP1NldEhvdXJAQkxUX1RJTUVfU1BJTl9HUk9VUEBAUUVBQVhIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExPR09OX0hPVVJTX0NPTlRST0w6OlNldEhvdXJzKGNsYXNzIExPR09OX0hPVVJTX1NFVFRJTkcgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEhvdXJzQExPR09OX0hPVVJTX0NPTlRST0xAQFFFQUFKUEVCVkxPR09OX0hPVVJTX1NFVFRJTkdAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBXSU5ET1c6OlNldEh3bmQoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0SHduZEBXSU5ET1dAQElFQUFYUEVBVUhXTkRfX0BAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQVBQX1dJTkRPVzo6U2V0SWNvbihjbGFzcyBJRFJFU09VUkNFIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRJY29uQEFQUF9XSU5ET1dAQFFFQUFIQUVCVklEUkVTT1VSQ0VAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBJQ09OX0NPTlRST0w6OlNldEljb24oY2xhc3MgSURSRVNPVVJDRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0SWNvbkBJQ09OX0NPTlRST0xAQFFFQUFKQUVCVklEUkVTT1VSQ0VAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDQU5DRUxfVEFTS19ESUFMT0c6OlNldEluVGltZXIoaW50KSBfX3B0cjY0DQorP1NldEluVGltZXJAQ0FOQ0VMX1RBU0tfRElBTE9HQEBJRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgVVNFUl9CUk9XU0VSX0xCSV9DQUNIRTo6U2V0SW5jbHVkZVVzZXJzKGludCkgX19wdHI2NA0KKz9TZXRJbmNsdWRlVXNlcnNAVVNFUl9CUk9XU0VSX0xCSV9DQUNIRUBAUUVBQVhIQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBISUVSX0xCSTo6U2V0SW5kZW50TGV2ZWwodm9pZCkgX19wdHI2NA0KKz9TZXRJbmRlbnRMZXZlbEBISUVSX0xCSUBAQUVBQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgR0VUX0ZOQU1FX0JBU0VfRExHOjpTZXRJbml0aWFsRGlyKGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEluaXRpYWxEaXJAR0VUX0ZOQU1FX0JBU0VfRExHQEBRRUFBSkFFQlZOTFNfU1RSQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIEJMVF9MSVNUQk9YOjpTZXRJdGVtKGludCxjbGFzcyBMQkkgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEl0ZW1AQkxUX0xJU1RCT1hAQEFFQUFYSFBFQVZMQklAQEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIExJU1RfQ09OVFJPTDo6U2V0SXRlbURhdGEoaW50LHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEl0ZW1EYXRhQExJU1RfQ09OVFJPTEBASUVBQUhIUEVBWEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIERFVklDRV9DT05URVhUOjpTZXRNYXBNb2RlKGludCkgX19wdHI2NA0KKz9TZXRNYXBNb2RlQERFVklDRV9DT05URVhUQEBRRUFBSEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIERJU1BMQVlfTUFQOjpTZXRNYXNrQml0cyh1bnNpZ25lZCBjaGFyICogX19wdHI2NCxpbnQsaW50LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRNYXNrQml0c0BESVNQTEFZX01BUEBAQUVBQVhQRUFFSEhJQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBTUElOX1NMRV9OVU06OlNldE1heElucHV0KHZvaWQpIF9fcHRyNjQNCis/U2V0TWF4SW5wdXRAU1BJTl9TTEVfTlVNQEBBRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENPTUJPQk9YOjpTZXRNYXhMZW5ndGgodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1NldE1heExlbmd0aEBDT01CT0JPWEBAUUVBQUhJQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEVESVRfQ09OVFJPTDo6U2V0TWF4TGVuZ3RoKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRNYXhMZW5ndGhARURJVF9DT05UUk9MQEBRRUFBWElAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBBUFBfV0lORE9XOjpTZXRNZW51KGNsYXNzIElEUkVTT1VSQ0UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldE1lbnVAQVBQX1dJTkRPV0BAUUVBQUhBRUJWSURSRVNPVVJDRUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpTZXRNaW4odW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRNaW5AQ0hBTkdFQUJMRV9TUElOX0lURU1AQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTUElOX1NMRV9OVU06OlNldE1pbih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldE1pbkBTUElOX1NMRV9OVU1AQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCTFRfVElNRV9TUElOX0dST1VQOjpTZXRNaW51dGUoaW50KSBfX3B0cjY0DQorP1NldE1pbnV0ZUBCTFRfVElNRV9TUElOX0dST1VQQEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgRUxBUFNFRF9USU1FX0NPTlRST0w6OlNldE1pbnV0ZUZpZWxkTmFtZShsb25nKSBfX3B0cjY0DQorP1NldE1pbnV0ZUZpZWxkTmFtZUBFTEFQU0VEX1RJTUVfQ09OVFJPTEBAUUVBQVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEVMQVBTRURfVElNRV9DT05UUk9MOjpTZXRNaW51dGVNaW4obG9uZykgX19wdHI2NA0KKz9TZXRNaW51dGVNaW5ARUxBUFNFRF9USU1FX0NPTlRST0xAQFFFQUFYSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBFTEFQU0VEX1RJTUVfQ09OVFJPTDo6U2V0TWludXRlUmFuZ2UobG9uZykgX19wdHI2NA0KKz9TZXRNaW51dGVSYW5nZUBFTEFQU0VEX1RJTUVfQ09OVFJPTEBAUUVBQVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEVMQVBTRURfVElNRV9DT05UUk9MOjpTZXRNaW51dGVWYWx1ZShsb25nKSBfX3B0cjY0DQorP1NldE1pbnV0ZVZhbHVlQEVMQVBTRURfVElNRV9DT05UUk9MQEBRRUFBWEpAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU1BJTl9HUk9VUDo6U2V0TW9kaWZpZWQoaW50KSBfX3B0cjY0DQorP1NldE1vZGlmaWVkQFNQSU5fR1JPVVBAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCTFRfREFURV9TUElOX0dST1VQOjpTZXRNb250aChpbnQpIF9fcHRyNjQNCis/U2V0TW9udGhAQkxUX0RBVEVfU1BJTl9HUk9VUEBAUUVBQVhIQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBQT1BVUDo6U2V0TXNnTWFwVGFibGUoc3RydWN0IF9NU0dNQVBFTlRSWSAqIF9fcHRyNjQpDQorP1NldE1zZ01hcFRhYmxlQFBPUFVQQEBTQVhQRUFVX01TR01BUEVOVFJZQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBCQVNFX1NFVF9GT0NVU19ETEc6OlNldE5ldHdvcmtGb2N1cyhzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsZW51bSBGT0NVU19DQUNIRV9TRVRUSU5HKSBfX3B0cjY0DQorP1NldE5ldHdvcmtGb2N1c0BCQVNFX1NFVF9GT0NVU19ETEdAQE1FQUFKUEVBVUhXTkRfX0BAUEVCR1c0Rk9DVVNfQ0FDSEVfU0VUVElOR0BAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgU1RBTkRBTE9ORV9TRVRfRk9DVVNfRExHOjpTZXROZXR3b3JrRm9jdXMoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGVudW0gRk9DVVNfQ0FDSEVfU0VUVElORykgX19wdHI2NA0KKz9TZXROZXR3b3JrRm9jdXNAU1RBTkRBTE9ORV9TRVRfRk9DVVNfRExHQEBNRUFBSlBFQVVIV05EX19AQFBFQkdXNEZPQ1VTX0NBQ0hFX1NFVFRJTkdAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgVElNRVJfQkFTRTo6U2V0TmV3VGltZUR1ZSh2b2lkKSBfX3B0cjY0DQorP1NldE5ld1RpbWVEdWVAVElNRVJfQkFTRUBAQUVBQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQkFTRV9FTExJUFNJUzo6U2V0T3JpZ2luYWxTdHIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldE9yaWdpbmFsU3RyQEJBU0VfRUxMSVBTSVNAQFFFQUFKUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBETV9EVEU6OlNldFBkbShjbGFzcyBESVNQTEFZX01BUCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UGRtQERNX0RURUBASUVBQVhQRUFWRElTUExBWV9NQVBAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIEhJRVJfTEJJOjpTZXRQZWxJbmRlbnQodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1NldFBlbEluZGVudEBISUVSX0xCSUBAVUVBQVhJQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIEFQUF9XSU5ET1c6OlNldFBsYWNlbWVudChzdHJ1Y3QgdGFnV0lORE9XUExBQ0VNRU5UIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9TZXRQbGFjZW1lbnRAQVBQX1dJTkRPV0BAUUVCQUpQRUJVdGFnV0lORE9XUExBQ0VNRU5UQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENVUlNPUjo6U2V0UG9zKGNsYXNzIFhZUE9JTlQgY29uc3QgJiBfX3B0cjY0KQ0KKz9TZXRQb3NAQ1VSU09SQEBTQVhBRUJWWFlQT0lOVEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNDUk9MTEJBUjo6U2V0UG9zKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRQb3NAU0NST0xMQkFSQEBRRUFBWElAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV0lORE9XOjpTZXRQb3MoY2xhc3MgWFlQT0lOVCxpbnQsY2xhc3MgV0lORE9XICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQb3NAV0lORE9XQEBRRUFBWFZYWVBPSU5UQEBIUEVBVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIElDT05fQ09OVFJPTDo6U2V0UHJlZGVmaW5lZEljb24oY2xhc3MgSURSRVNPVVJDRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UHJlZGVmaW5lZEljb25ASUNPTl9DT05UUk9MQEBRRUFBSkFFQlZJRFJFU09VUkNFQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgV0lOMzJfVEhSRUFEOjpTZXRQcmlvcml0eShpbnQpIF9fcHRyNjQNCis/U2V0UHJpb3JpdHlAV0lOMzJfVEhSRUFEQEBRRUFBSkhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0hBTkdFQUJMRV9TUElOX0lURU06OlNldFJhbmdlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0UmFuZ2VAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTQ1JPTExCQVI6OlNldFJhbmdlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0UmFuZ2VAU0NST0xMQkFSQEBRRUFBWElJQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNQSU5fU0xFX05VTTo6U2V0UmFuZ2UodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRSYW5nZUBTUElOX1NMRV9OVU1AQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTUElOX1NMRV9TVFI6OlNldFJhbmdlKGxvbmcpIF9fcHRyNjQNCis/U2V0UmFuZ2VAU1BJTl9TTEVfU1RSQEBRRUFBWEpAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV0lORE9XOjpTZXRSZWRyYXcoaW50KSBfX3B0cjY0DQorP1NldFJlZHJhd0BXSU5ET1dAQFFFQUFYSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBFRElUX0NPTlRST0w6OlNldFNhdmVWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0U2F2ZVZhbHVlQEVESVRfQ09OVFJPTEBAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNQSU5fU0xFX05VTTo6U2V0U2F2ZVZhbHVlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0U2F2ZVZhbHVlQFNQSU5fU0xFX05VTUBAUUVBQUpLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIExJU1RCT1g6OlNldFNjcm9sbFBvcyh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0U2Nyb2xsUG9zQExJU1RCT1hAQFFFQUFYSUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCTFRfVElNRV9TUElOX0dST1VQOjpTZXRTZWNvbmQoaW50KSBfX3B0cjY0DQorP1NldFNlY29uZEBCTFRfVElNRV9TUElOX0dST1VQQEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgRUxBUFNFRF9USU1FX0NPTlRST0w6OlNldFNlY29uZEZpZWxkTmFtZShsb25nKSBfX3B0cjY0DQorP1NldFNlY29uZEZpZWxkTmFtZUBFTEFQU0VEX1RJTUVfQ09OVFJPTEBAUUVBQVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEVMQVBTRURfVElNRV9DT05UUk9MOjpTZXRTZWNvbmRNaW4obG9uZykgX19wdHI2NA0KKz9TZXRTZWNvbmRNaW5ARUxBUFNFRF9USU1FX0NPTlRST0xAQFFFQUFYSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBFTEFQU0VEX1RJTUVfQ09OVFJPTDo6U2V0U2Vjb25kUmFuZ2UobG9uZykgX19wdHI2NA0KKz9TZXRTZWNvbmRSYW5nZUBFTEFQU0VEX1RJTUVfQ09OVFJPTEBAUUVBQVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEVMQVBTRURfVElNRV9DT05UUk9MOjpTZXRTZWNvbmRWYWx1ZShsb25nKSBfX3B0cjY0DQorP1NldFNlY29uZFZhbHVlQEVMQVBTRURfVElNRV9DT05UUk9MQEBRRUFBWEpAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgR1JBUEhJQ0FMX0JVVFRPTl9XSVRIX0RJU0FCTEU6OlNldFNlbGVjdGVkKGludCkgX19wdHI2NA0KKz9TZXRTZWxlY3RlZEBHUkFQSElDQUxfQlVUVE9OX1dJVEhfRElTQUJMRUBAUUVBQVhIQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpTZXRTZWxlY3RlZENlbGxzKGludCkgX19wdHI2NA0KKz9TZXRTZWxlY3RlZENlbGxzQExPR09OX0hPVVJTX0NPTlRST0xAQEFFQUFYSEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HT05fSE9VUlNfQ09OVFJPTDo6U2V0U2VsZWN0aW9uKGludCkgX19wdHI2NA0KKz9TZXRTZWxlY3Rpb25ATE9HT05fSE9VUlNfQ09OVFJPTEBAQUVBQVhIQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBMT0dPTl9IT1VSU19DT05UUk9MOjpTZXRTZWxlY3Rpb24oaW50LGludCkgX19wdHI2NA0KKz9TZXRTZWxlY3Rpb25ATE9HT05fSE9VUlNfQ09OVFJPTEBAQUVBQVhISEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBNQUdJQ19HUk9VUDo6U2V0U2VsZWN0aW9uKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRTZWxlY3Rpb25ATUFHSUNfR1JPVVBAQFFFQUFYSUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBSQURJT19HUk9VUDo6U2V0U2VsZWN0aW9uKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRTZWxlY3Rpb25AUkFESU9fR1JPVVBAQFFFQUFYSUBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBSQURJT19HUk9VUDo6U2V0U2VsZWN0aW9uRG9udE5vdGlmeUdyb3Vwcyh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0U2VsZWN0aW9uRG9udE5vdGlmeUdyb3Vwc0BSQURJT19HUk9VUEBASUVBQVhJQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENPTlNPTEVfRUxMSVBTSVM6OlNldFNpemUoaW50KSBfX3B0cjY0DQorP1NldFNpemVAQ09OU09MRV9FTExJUFNJU0BAUUVBQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNMVF9FTExJUFNJUzo6U2V0U2l6ZShpbnQsaW50LGludCkgX19wdHI2NA0KKz9TZXRTaXplQFNMVF9FTExJUFNJU0BAUUVBQVhISEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV0lORE9XOjpTZXRTaXplKGludCxpbnQsaW50KSBfX3B0cjY0DQorP1NldFNpemVAV0lORE9XQEBRRUFBWEhISEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXSU5ET1c6OlNldFNpemUoY2xhc3MgWFlESU1FTlNJT04saW50KSBfX3B0cjY0DQorP1NldFNpemVAV0lORE9XQEBRRUFBWFZYWURJTUVOU0lPTkBASEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXSU5fRUxMSVBTSVM6OlNldFNpemUoaW50LGludCkgX19wdHI2NA0KKz9TZXRTaXplQFdJTl9FTExJUFNJU0BAUUVBQVhISEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6U2V0U21hbGxEZWNWYWx1ZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFNtYWxsRGVjVmFsdWVAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6U2V0U21hbGxJbmNWYWx1ZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFNtYWxsSW5jVmFsdWVAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFFFQUFYS0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBOVF9HUk9VUF9CUk9XU0VSX0RJQUxPRzo6U2V0U291cmNlRGlhbG9nKGNsYXNzIE5UX0dST1VQX0JST1dTRVJfRElBTE9HICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRTb3VyY2VEaWFsb2dATlRfR1JPVVBfQlJPV1NFUl9ESUFMT0dAQElFQUFYUEVBVjFAQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBFTEFQU0VEX1RJTUVfQ09OVFJPTDo6U2V0U3Bpbkl0ZW1BY2NLZXkoY2xhc3MgU1BJTl9JVEVNICogX19wdHI2NCxjbGFzcyBTTFQgJiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9TZXRTcGluSXRlbUFjY0tleUBFTEFQU0VEX1RJTUVfQ09OVFJPTEBAQUVBQUpQRUFWU1BJTl9JVEVNQEBBRUFWU0xUQEBIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFNMRV9TVFJMQl9HUk9VUDo6U2V0U3RhdGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9TZXRTdGF0ZUBTTEVfU1RSTEJfR1JPVVBAQElFQkFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFNUQVRFX0JVVFRPTl9DT05UUk9MOjpTZXRTdGF0ZSh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0U3RhdGVAU1RBVEVfQlVUVE9OX0NPTlRST0xAQElFQUFYSUBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNUTEJJVEVNOjpTZXRTdGF0ZShpbnQpIF9fcHRyNjQNCis/U2V0U3RhdGVAU1RMQklURU1AQFFFQUFISEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgV0lOMzJfVEhSRUFEOjpTZXRTdGF0ZShlbnVtIF9USFJFQURfU1RBVEUpIF9fcHRyNjQNCis/U2V0U3RhdGVAV0lOMzJfVEhSRUFEQEBBRUFBWFc0X1RIUkVBRF9TVEFURUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEdSQVBISUNBTF9CVVRUT046OlNldFN0YXR1cyh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0U3RhdHVzQEdSQVBISUNBTF9CVVRUT05AQFFFQUFYSUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBHUkFQSElDQUxfQlVUVE9OOjpTZXRTdGF0dXMoc3RydWN0IEhCSVRNQVBfXyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0U3RhdHVzQEdSQVBISUNBTF9CVVRUT05AQFFFQUFYUEVBVUhCSVRNQVBfX0BAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBTUElOX1NMRV9TVFI6OlNldFN0cihsb25nKSBfX3B0cjY0DQorP1NldFN0ckBTUElOX1NMRV9TVFJAQEFFQUFYSkBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgR0VUX0ZOQU1FX0JBU0VfRExHOjpTZXRTdHJpbmdGaWVsZCh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0LGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFN0cmluZ0ZpZWxkQEdFVF9GTkFNRV9CQVNFX0RMR0BAQUVBQUpQRUFQRUFHQUVCVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCQVNFX0VMTElQU0lTOjpTZXRTdHlsZShlbnVtIEVMTElQU0lTX1NUWUxFKSBfX3B0cjY0DQorP1NldFN0eWxlQEJBU0VfRUxMSVBTSVNAQFFFQUFYVzRFTExJUFNJU19TVFlMRUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdJTkRPVzo6U2V0U3R5bGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRTdHlsZUBXSU5ET1dAQFFFQUFYS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENPTlRST0xfVkFMVUU6OlNldFRhYlN0b3AoaW50KSBfX3B0cjY0DQorP1NldFRhYlN0b3BAQ09OVFJPTF9WQUxVRUBATUVBQVhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ09OVFJPTF9XSU5ET1c6OlNldFRhYlN0b3AoaW50KSBfX3B0cjY0DQorP1NldFRhYlN0b3BAQ09OVFJPTF9XSU5ET1dAQE1FQUFYSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBBQ0NPVU5UX05BTUVTX01MRTo6U2V0VGFyZ2V0RG9tYWluKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRUYXJnZXREb21haW5AQUNDT1VOVF9OQU1FU19NTEVAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBHRVRfRk5BTUVfQkFTRV9ETEc6OlNldFRleHQoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VGV4dEBHRVRfRk5BTUVfQkFTRV9ETEdAQFFFQUFKQUVCVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE1FTlVJVEVNOjpTZXRUZXh0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRUZXh0QE1FTlVJVEVNQEBRRUFBSFBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0xUX0VMTElQU0lTOjpTZXRUZXh0KGNsYXNzIE5MU19TVFIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFRleHRAU0xUX0VMTElQU0lTQEBRRUFBSkFFQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgU0xUX0VMTElQU0lTOjpTZXRUZXh0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRUZXh0QFNMVF9FTExJUFNJU0BAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdJTkRPVzo6U2V0VGV4dChjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRUZXh0QFdJTkRPV0BAUUVBQVhBRUJWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdJTkRPVzo6U2V0VGV4dCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VGV4dEBXSU5ET1dAQFFFQUFYUEVCR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIERFVklDRV9DT05URVhUOjpTZXRUZXh0QWxpZ24odW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1NldFRleHRBbGlnbkBERVZJQ0VfQ09OVEVYVEBAUUVBQUlJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIERFVklDRV9DT05URVhUOjpTZXRUZXh0Q29sb3IodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRUZXh0Q29sb3JAREVWSUNFX0NPTlRFWFRAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBMSVNUX0NPTlRST0w6OlNldFRvcEluZGV4KGludCkgX19wdHI2NA0KKz9TZXRUb3BJbmRleEBMSVNUX0NPTlRST0xAQFFFQUFYSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBCUk9XU0VSX1NVQkpFQ1Q6OlNldFVzZXJCcm93c2VyTEJJKGNsYXNzIFVTRVJfQlJPV1NFUl9MQkkgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFVzZXJCcm93c2VyTEJJQEJST1dTRVJfU1VCSkVDVEBAUUVBQUpQRUFWVVNFUl9CUk9XU0VSX0xCSUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFZhbHVlQENIQU5HRUFCTEVfU1BJTl9JVEVNQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgREVDX1NMVDo6U2V0VmFsdWUobG9uZykgX19wdHI2NA0KKz9TZXRWYWx1ZUBERUNfU0xUQEBRRUFBWEpAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgREVDX1NMVDo6U2V0VmFsdWUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRWYWx1ZUBERUNfU0xUQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgWFlESU1FTlNJT046OlNldFdpZHRoKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRXaWR0aEBYWURJTUVOU0lPTkBAUUVBQVhJQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFhZUE9JTlQ6OlNldFgoaW50KSBfX3B0cjY0DQorP1NldFhAWFlQT0lOVEBAUUVBQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFhZUE9JTlQ6OlNldFkoaW50KSBfX3B0cjY0DQorP1NldFlAWFlQT0lOVEBAUUVBQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEJMVF9EQVRFX1NQSU5fR1JPVVA6OlNldFllYXIoaW50KSBfX3B0cjY0DQorP1NldFllYXJAQkxUX0RBVEVfU1BJTl9HUk9VUEBAUUVBQVhIQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDVVJTT1I6OlNob3coaW50KQ0KKz9TaG93QENVUlNPUkBAU0FYSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFBPUFVQOjpTaG93KHZvaWQpIF9fcHRyNjQNCis/U2hvd0BQT1BVUEBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXSU5ET1c6OlNob3coaW50KSBfX3B0cjY0DQorP1Nob3dAV0lORE9XQEBRRUFBSEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQkFTRV9TRVRfRk9DVVNfRExHOjpTaG93QXJlYShpbnQpIF9fcHRyNjQNCis/U2hvd0FyZWFAQkFTRV9TRVRfRk9DVVNfRExHQEBJRUFBWEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgRVhQQU5EQUJMRV9ESUFMT0c6OlNob3dBcmVhKGludCkgX19wdHI2NA0KKz9TaG93QXJlYUBFWFBBTkRBQkxFX0RJQUxPR0BASUVBQVhIQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBIX1NQTElUVEVSX0JBUjo6U2hvd0RyYWdCYXIoY2xhc3MgWFlQT0lOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2hvd0RyYWdCYXJASF9TUExJVFRFUl9CQVJAQEFFQUFYQUVCVlhZUE9JTlRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXSU5ET1c6OlNob3dGaXJzdCh2b2lkKSBfX3B0cjY0DQorP1Nob3dGaXJzdEBXSU5ET1dAQFFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBIX1NQTElUVEVSX0JBUjo6U2hvd1NwZWNpYWxDdXJzb3IoaW50KSBfX3B0cjY0DQorP1Nob3dTcGVjaWFsQ3Vyc29yQEhfU1BMSVRURVJfQkFSQEBBRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV0lOMzJfVEhSRUFEOjpTbGVlcCh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2xlZXBAV0lOMzJfVEhSRUFEQEBRRUFBWElAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgVVNFUl9MQklfQ0FDSEU6OlNvcnQodm9pZCkgX19wdHI2NA0KKz9Tb3J0QFVTRVJfTEJJX0NBQ0hFQEBRRUFBWFhaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIFdJTjMyX1RIUkVBRDo6U3RhcnRUaHJlYWQodm9pZCAqIF9fcHRyNjQpDQorP1N0YXJ0VGhyZWFkQFdJTjMyX1RIUkVBREBAQ0FLUEVBWEBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgTEJfQ09MX1dJRFRIUzo6U3RyZXRjaEZvckZvbnRzKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TdHJldGNoRm9yRm9udHNATEJfQ09MX1dJRFRIU0BAQUVBQUpQRUFVSFdORF9fQEBQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE1BU0tfTUFQOjpTdHJpbmdUb0JpdHMoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsY2xhc3MgQklURklFTEQgKiBfX3B0cjY0LGludCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1N0cmluZ1RvQml0c0BNQVNLX01BUEBAUUVBQUpBRUJWTkxTX1NUUkBAUEVBVkJJVEZJRUxEQEBIUEVBSUBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBBQ0NPVU5UX05BTUVTX01MRTo6U3RyaXBEb21haW5JZldlbGxLbm93bihjbGFzcyBOTFNfU1RSICogX19wdHI2NCkgX19wdHI2NA0KKz9TdHJpcERvbWFpbklmV2VsbEtub3duQEFDQ09VTlRfTkFNRVNfTUxFQEBJRUFBSlBFQVZOTFNfU1RSQEBAWg0KKzsgcHJvdGVjdGVkOiBfX2ludDY0IF9fY2RlY2wgQ1VTVE9NX0NPTlRST0w6OlN1YkNsYXNzV25kUHJvYyhjbGFzcyBFVkVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U3ViQ2xhc3NXbmRQcm9jQENVU1RPTV9DT05UUk9MQEBJRUFBX0pBRUJWRVZFTlRAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBXSU4zMl9USFJFQUQ6OlN1c3BlbmQodm9pZCkgX19wdHI2NA0KKz9TdXNwZW5kQFdJTjMyX1RIUkVBREBAUUVBQUpYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIEJBU0VfRUxMSVBTSVM6OlRlcm0odm9pZCkNCis/VGVybUBCQVNFX0VMTElQU0lTQEBTQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIEJMVDo6VGVybShzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3B0cjY0KQ0KKz9UZXJtQEJMVEBAU0FYUEVBVUhJTlNUQU5DRV9fQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIEJMVElNUDo6VGVybSh2b2lkKQ0KKz9UZXJtQEJMVElNUEBAU0FYWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBCTFRfTUFTVEVSX1RJTUVSOjpUZXJtKHZvaWQpDQorP1Rlcm1AQkxUX01BU1RFUl9USU1FUkBAU0FYWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDTElFTlRfV0lORE9XOjpUZXJtKHZvaWQpDQorP1Rlcm1AQ0xJRU5UX1dJTkRPV0BAU0FYWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBQT1BVUDo6VGVybSh2b2lkKQ0KKz9UZXJtQFBPUFVQQEBTQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIEJMVDo6VGVybURMTCh2b2lkKQ0KKz9UZXJtRExMQEJMVEBAU0FYWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFdJTjMyX1RIUkVBRDo6VGVybWluYXRlKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9UZXJtaW5hdGVAV0lOMzJfVEhSRUFEQEBRRUFBSklAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBERVZJQ0VfQ09OVEVYVDo6VGV4dE91dFcoY2xhc3MgTkxTX1NUUiBjb25zdCAmIF9fcHRyNjQsY2xhc3MgWFlQT0lOVCljb25zdCAgX19wdHI2NA0KKz9UZXh0T3V0V0BERVZJQ0VfQ09OVEVYVEBAUUVCQUhBRUJWTkxTX1NUUkBAVlhZUE9JTlRAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIERFVklDRV9DT05URVhUOjpUZXh0T3V0VyhjbGFzcyBOTFNfU1RSIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBYWVBPSU5ULHN0cnVjdCB0YWdSRUNUIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9UZXh0T3V0V0BERVZJQ0VfQ09OVEVYVEBAUUVCQUhBRUJWTkxTX1NUUkBAVlhZUE9JTlRAQFBFQlV0YWdSRUNUQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBERVZJQ0VfQ09OVEVYVDo6VGV4dE91dFcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCxpbnQsaW50KWNvbnN0ICBfX3B0cjY0DQorP1RleHRPdXRXQERFVklDRV9DT05URVhUQEBRRUJBSFBFQkdISEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBERVZJQ0VfQ09OVEVYVDo6VGV4dE91dFcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCxpbnQsaW50LHN0cnVjdCB0YWdSRUNUIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9UZXh0T3V0V0BERVZJQ0VfQ09OVEVYVEBAUUVCQUhQRUJHSEhIUEVCVXRhZ1JFQ1RAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENIRUNLQk9YOjpUb2dnbGUodm9pZCkgX19wdHI2NA0KKz9Ub2dnbGVAQ0hFQ0tCT1hAQFFFQUFIWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExNX09MTEI6OlRvZ2dsZURvbWFpbihpbnQpIF9fcHRyNjQNCis/VG9nZ2xlRG9tYWluQExNX09MTEJAQFFFQUFKSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBQT1BVUF9NRU5VOjpUcmFjayhjbGFzcyBQV05EMkhXTkQgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIGludCxpbnQsaW50LHN0cnVjdCB0YWdSRUNUIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9UcmFja0BQT1BVUF9NRU5VQEBRRUJBSkFFQlZQV05EMkhXTkRAQElISFBFQlV0YWdSRUNUQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBBQ0NFTFRBQkxFOjpUcmFuc2xhdGUoY2xhc3MgV0lORE9XIGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgdGFnTVNHICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9UcmFuc2xhdGVAQUNDRUxUQUJMRUBAUUVCQUhQRUJWV0lORE9XQEBQRUFVdGFnTVNHQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgVElNRVJfQkFTRTo6VHJpZ2dlck5vdyh2b2lkKSBfX3B0cjY0DQorP1RyaWdnZXJOb3dAVElNRVJfQkFTRUBAUUVBQVhYWg0KKzsgbG9uZyBfX2NkZWNsIFRyaW1MZWFkaW5nKGNsYXNzIE5MU19TVFIgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/VHJpbUxlYWRpbmdAQFlBSlBFQVZOTFNfU1RSQEBQRUJHQFoNCis7IGxvbmcgX19jZGVjbCBUcmltVHJhaWxpbmcoY2xhc3MgTkxTX1NUUiAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9UcmltVHJhaWxpbmdAQFlBSlBFQVZOTFNfU1RSQEBQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEFVVE9fQ1VSU09SOjpUdXJuT2ZmKHZvaWQpIF9fcHRyNjQNCis/VHVybk9mZkBBVVRPX0NVUlNPUkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQVVUT19DVVJTT1I6OlR1cm5Pbih2b2lkKSBfX3B0cjY0DQorP1R1cm5PbkBBVVRPX0NVUlNPUkBAUUVBQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQlJPV1NFUl9ET01BSU46OlVuUmVxdWVzdEFjY291bnREYXRhKHZvaWQpIF9fcHRyNjQNCis/VW5SZXF1ZXN0QWNjb3VudERhdGFAQlJPV1NFUl9ET01BSU5AQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIERPTUFJTl9GSUxMX1RIUkVBRDo6VW5SZXF1ZXN0QWNjb3VudERhdGEodm9pZCkgX19wdHI2NA0KKz9VblJlcXVlc3RBY2NvdW50RGF0YUBET01BSU5fRklMTF9USFJFQURAQFFFQUFKWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgVUlfRVhUX01HUjo6VW5sb2FkRXh0ZW5zaW9ucyh2b2lkKSBfX3B0cjY0DQorP1VubG9hZEV4dGVuc2lvbnNAVUlfRVhUX01HUkBAVUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExPR09OX0hPVVJTX0NPTlRST0w6OlVubG9hZExhYmVscyh2b2lkKSBfX3B0cjY0DQorP1VubG9hZExhYmVsc0BMT0dPTl9IT1VSU19DT05UUk9MQEBBRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFVTRVJfTEJJX0NBQ0hFOjpVbmxvY2tDYWNoZSh2b2lkKSBfX3B0cjY0DQorP1VubG9ja0NhY2hlQFVTRVJfTEJJX0NBQ0hFQEBNRUFBWFhaDQorOyBwcml2YXRlOiBzdGF0aWMgdm9pZCBfX2NkZWNsIEJMVElNUDo6VW53aW5kKGVudW0gQkxUX0NUT1JfU1RBVEUpDQorP1Vud2luZEBCTFRJTVBAQENBWFc0QkxUX0NUT1JfU1RBVEVAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpVcGRhdGUodm9pZCkgX19wdHI2NA0KKz9VcGRhdGVAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgU1BJTl9TTEVfTlVNOjpVcGRhdGUodm9pZCkgX19wdHI2NA0KKz9VcGRhdGVAU1BJTl9TTEVfTlVNQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNQSU5fU0xFX1NUUjo6VXBkYXRlKHZvaWQpIF9fcHRyNjQNCis/VXBkYXRlQFNQSU5fU0xFX1NUUkBAVUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgTlRfRklORF9BQ0NPVU5UX0RJQUxPRzo6VXBkYXRlQnV0dG9uU3RhdGUodm9pZCkgX19wdHI2NA0KKz9VcGRhdGVCdXR0b25TdGF0ZUBOVF9GSU5EX0FDQ09VTlRfRElBTE9HQEBJRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE5UX0dST1VQX0JST1dTRVJfRElBTE9HOjpVcGRhdGVCdXR0b25TdGF0ZSh2b2lkKSBfX3B0cjY0DQorP1VwZGF0ZUJ1dHRvblN0YXRlQE5UX0dST1VQX0JST1dTRVJfRElBTE9HQEBNRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE5UX0xPQ0FMR1JPVVBfQlJPV1NFUl9ESUFMT0c6OlVwZGF0ZUJ1dHRvblN0YXRlKHZvaWQpIF9fcHRyNjQNCis/VXBkYXRlQnV0dG9uU3RhdGVATlRfTE9DQUxHUk9VUF9CUk9XU0VSX0RJQUxPR0BATUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6VXBkYXRlQnV0dG9uU3RhdGUodm9pZCkgX19wdHI2NA0KKz9VcGRhdGVCdXR0b25TdGF0ZUBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBJRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQkFTRV9TRVRfRk9DVVNfRExHOjpVcGRhdGVSYXNNb2RlKHZvaWQpIF9fcHRyNjQNCis/VXBkYXRlUmFzTW9kZUBCQVNFX1NFVF9GT0NVU19ETEdAQEFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ09OVFJPTF9XSU5ET1c6OlZhbGlkYXRlKHZvaWQpIF9fcHRyNjQNCis/VmFsaWRhdGVAQ09OVFJPTF9XSU5ET1dAQFVFQUFKWFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBESUFMT0dfV0lORE9XOjpWYWxpZGF0ZSh2b2lkKSBfX3B0cjY0DQorP1ZhbGlkYXRlQERJQUxPR19XSU5ET1dAQEFFQUFKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgSUNBTk9OX1NMRTo6VmFsaWRhdGUodm9pZCkgX19wdHI2NA0KKz9WYWxpZGF0ZUBJQ0FOT05fU0xFQEBVRUFBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIFNQSU5fU0xFX05VTTo6VmFsaWRhdGUodm9pZCkgX19wdHI2NA0KKz9WYWxpZGF0ZUBTUElOX1NMRV9OVU1AQFVFQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgU0xFX1NUUkxCX0dST1VQOjpXX0FkZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/V19BZGRAU0xFX1NUUkxCX0dST1VQQEBNRUFBSlBFQkdAWg0KKzsgcHJpdmF0ZTogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIEdMT0JBTF9BVE9NOjpXX0FkZEF0b20odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1dfQWRkQXRvbUBHTE9CQUxfQVRPTUBARUVCQUdQRUJHQFoNCis7IHByaXZhdGU6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBMT0NBTF9BVE9NOjpXX0FkZEF0b20odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1dfQWRkQXRvbUBMT0NBTF9BVE9NQEBFRUJBR1BFQkdAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgTUVOVV9CQVNFOjpXX0FwcGVuZCh2b2lkIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9XX0FwcGVuZEBNRU5VX0JBU0VAQElFQkFKUEVCWF9LSUBaDQorOyBwcml2YXRlOiBsb25nIF9fY2RlY2wgVUlfTUVOVV9FWFQ6OldfQmlhc01lbnVJZHMoc3RydWN0IEhNRU5VX18gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/V19CaWFzTWVudUlkc0BVSV9NRU5VX0VYVEBAQUVBQUpQRUFVSE1FTlVfX0BAS0BaDQorOyBwcml2YXRlOiBjbGFzcyBMQkkgKiBfX3B0cjY0IF9fY2RlY2wgVVNFUl9MQklfQ0FDSEU6OldfR2V0TEJJKGludCkgX19wdHI2NA0KKz9XX0dldExCSUBVU0VSX0xCSV9DQUNIRUBAQUVBQVBFQVZMQklAQEhAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgVVNFUl9MQklfQ0FDSEU6OldfR3Jvd0NhY2hlKGludCkgX19wdHI2NA0KKz9XX0dyb3dDYWNoZUBVU0VSX0xCSV9DQUNIRUBAQUVBQUhIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIE1FTlVfQkFTRTo6V19JbnNlcnQodm9pZCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP1dfSW5zZXJ0QE1FTlVfQkFTRUBASUVCQUpQRUJYSV9LSUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3MgVUlfRVhUICogX19wdHI2NCBfX2NkZWNsIFVJX0VYVF9NR1I6OldfTG9hZEV4dGVuc2lvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9XX0xvYWRFeHRlbnNpb25AVUlfRVhUX01HUkBATUVBQVBFQVZVSV9FWFRAQFBFQkdLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIE1FTlVfQkFTRTo6V19Nb2RpZnkodm9pZCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP1dfTW9kaWZ5QE1FTlVfQkFTRUBASUVCQUpQRUJYSV9LSUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCUk9XU0VSX0RPTUFJTl9MQkk6OldfUGFpbnQoY2xhc3MgQlJPV1NFUl9ET01BSU5fQ0IgKiBfX3B0cjY0LGNsYXNzIExJU1RCT1ggKiBfX3B0cjY0LHN0cnVjdCBIRENfXyAqIF9fcHRyNjQsc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBHVUlMVFRfSU5GTyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/V19QYWludEBCUk9XU0VSX0RPTUFJTl9MQklAQFFFQkFYUEVBVkJST1dTRVJfRE9NQUlOX0NCQEBQRUFWTElTVEJPWEBAUEVBVUhEQ19fQEBQRUJVdGFnUkVDVEBAUEVBVUdVSUxUVF9JTkZPQEBAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBNRU5VX0JBU0U6OldfUXVlcnlJdGVtVGV4dCh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/V19RdWVyeUl0ZW1UZXh0QE1FTlVfQkFTRUBASUVCQUhQRUFHSUlJQFoNCis7IHByaXZhdGU6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIEdMT0JBTF9BVE9NOjpXX1F1ZXJ5U3RyaW5nKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/V19RdWVyeVN0cmluZ0BHTE9CQUxfQVRPTUBARUVCQUpQRUFHSUBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBMT0NBTF9BVE9NOjpXX1F1ZXJ5U3RyaW5nKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/V19RdWVyeVN0cmluZ0BMT0NBTF9BVE9NQEBFRUJBSlBFQUdJQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBJQ09OX0NPTlRST0w6OldfU2V0SWNvbihjbGFzcyBJRFJFU09VUkNFIGNvbnN0ICYgX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/V19TZXRJY29uQElDT05fQ09OVFJPTEBAQUVBQUpBRUJWSURSRVNPVVJDRUBASEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBXSU4zMl9TWU5DX0JBU0U6OldhaXQodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1dhaXRAV0lOMzJfU1lOQ19CQVNFQEBRRUFBSklAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQlJPV1NFUl9ET01BSU46OldhaXRGb3JBZG1pbkF1dGhvcml0eSh1bnNpZ25lZCBsb25nLGludCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/V2FpdEZvckFkbWluQXV0aG9yaXR5QEJST1dTRVJfRE9NQUlOQEBRRUJBSktQRUFIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIERPTUFJTl9GSUxMX1RIUkVBRDo6V2FpdEZvckFkbWluQXV0aG9yaXR5KHVuc2lnbmVkIGxvbmcsaW50ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9XYWl0Rm9yQWRtaW5BdXRob3JpdHlARE9NQUlOX0ZJTExfVEhSRUFEQEBRRUJBSktQRUFIQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIE9QRU5fRElBTE9HX0JBU0U6Oldhcm5DbG9zZU11bHRpKHZvaWQpIF9fcHRyNjQNCis/V2FybkNsb3NlTXVsdGlAT1BFTl9ESUFMT0dfQkFTRUBAQUVBQUhYWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgT1BFTl9ESUFMT0dfQkFTRTo6V2FybkNsb3NlU2luZ2xlKGNsYXNzIE9QRU5fTEJJX0JBU0UgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1dhcm5DbG9zZVNpbmdsZUBPUEVOX0RJQUxPR19CQVNFQEBBRUFBSFBFQVZPUEVOX0xCSV9CQVNFQEBAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgQVJSQVlfQ09OVFJPTFZBTF9DSURfUEFJUjo6V2l0aGluUmFuZ2UodW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP1dpdGhpblJhbmdlQEFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVJAQEFFQkFISUBaDQorOyBwdWJsaWM6IHN0YXRpYyBfX2ludDY0IF9fY2RlY2wgQ0xJRU5UX1dJTkRPVzo6V25kUHJvYyhzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgX19pbnQ2NCxfX2ludDY0KQ0KKz9XbmRQcm9jQENMSUVOVF9XSU5ET1dAQFNBX0pQRUFVSFdORF9fQEBJX0tfSkBaDQorOyBwdWJsaWM6IHN0YXRpYyBfX2ludDY0IF9fY2RlY2wgQ1VTVE9NX0NPTlRST0w6OlduZFByb2Moc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIF9faW50NjQsX19pbnQ2NCkNCis/V25kUHJvY0BDVVNUT01fQ09OVFJPTEBAU0FfSlBFQVVIV05EX19AQElfS19KQFoNCis7IGludCBfX2NkZWNsIG1heChpbnQsaW50KQ0KKz9tYXhAQFlBSEhIQFoNCis7IGludCBfX2NkZWNsIG1pbihpbnQsaW50KQ0KKz9taW5AQFlBSEhIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyAoX19jZGVjbCpfX2NkZWNsIEdFVF9GTkFNRV9CQVNFX0RMRzo6cGZFeHRlbmRlZEVycm9yKHZvaWQpY29uc3QgIF9fcHRyNjQpKHZvaWQpDQorP3BmRXh0ZW5kZWRFcnJvckBHRVRfRk5BTUVfQkFTRV9ETEdAQFFFQkFQNkFLWFpYWg0KKzsgcHVibGljOiBpbnQgKF9fY2RlY2wqX19jZGVjbCBHRVRfRk5BTUVfQkFTRV9ETEc6OnBmR2V0T3BlbkZpbGVOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQpKHN0cnVjdCB0YWdPRk5XICogX19wdHI2NCkNCis/cGZHZXRPcGVuRmlsZU5hbWVAR0VUX0ZOQU1FX0JBU0VfRExHQEBRRUJBUDZBSFBFQVV0YWdPRk5XQEBAWlhaDQorOyBwdWJsaWM6IGludCAoX19jZGVjbCpfX2NkZWNsIEdFVF9GTkFNRV9CQVNFX0RMRzo6cGZHZXRTYXZlRmlsZU5hbWUodm9pZCljb25zdCAgX19wdHI2NCkoc3RydWN0IHRhZ09GTlcgKiBfX3B0cjY0KQ0KKz9wZkdldFNhdmVGaWxlTmFtZUBHRVRfRk5BTUVfQkFTRV9ETEdAQFFFQkFQNkFIUEVBVXRhZ09GTldAQEBaWFoNCitCbHRDQ1duZFByb2MNCitCbHREbGdQcm9jDQorQmx0V25kUHJvYw0KK0Nsb3NlVXNlckJyb3dzZXINCitFbnVtVXNlckJyb3dzZXJTZWxlY3Rpb24NCitMb25nVG9IYW5kbGUNCitPcGVuVXNlckJyb3dzZXINCitQdHJUb1Vsb25nDQorU2hlbGxEbGdQcm9jDQorVUludFRvUHRyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbmV3ZGV2LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL25ld2Rldi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzA0NTZhNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL25ld2Rldi5kZWYKQEAgLTAsMCArMSwyMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBuZXdkZXYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG5ld2Rldi5kbGwNCitFWFBPUlRTDQorQ2xpZW50U2lkZUluc3RhbGxXDQorRGV2SW5zdGFsbFcNCitJbnN0YWxsRGV2SW5zdA0KK0luc3RhbGxEZXZJbnN0RXgNCitJbnN0YWxsTmV3RGV2aWNlDQorSW5zdGFsbFNlbGVjdGVkRGV2aWNlDQorSW5zdGFsbFNlbGVjdGVkRHJpdmVyDQorSW5zdGFsbFdpbmRvd3NVcGRhdGVEcml2ZXINCitSb2xsYmFja0RyaXZlcg0KK1VwZGF0ZURyaXZlckZvclBsdWdBbmRQbGF5RGV2aWNlc0ENCitVcGRhdGVEcml2ZXJGb3JQbHVnQW5kUGxheURldmljZXNXDQorV2luZG93c1VwZGF0ZURyaXZlclNlYXJjaGluZ1BvbGljeVVpDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbmV4dGxpbmsuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbmV4dGxpbmsuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY3OTU3Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9uZXh0bGluay5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBOZXh0TGluay5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTmV4dExpbmsuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbmxodG1sLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL25saHRtbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzZmZTczMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL25saHRtbC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBOTEhUTUwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5MSFRNTC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9ubnRwYWRtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL25udHBhZG0uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFjZjBjZTQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9ubnRwYWRtLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE5OVFBBRE0uRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5OVFBBRE0uRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbm50cGFwaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9ubnRwYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMjUzZTMwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbm50cGFwaS5kZWYKQEAgLTAsMCArMSwzNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBOTlRQQVBJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBOTlRQQVBJLmRsbA0KK0VYUE9SVFMNCitObnRwQWRkRXhwaXJlDQorTm50cEFkZEZlZWQNCitObnRwQ2FuY2VsTWVzc2FnZUlEDQorTm50cENsZWFyU3RhdGlzdGljcw0KK05udHBDcmVhdGVOZXdzZ3JvdXANCitObnRwRGVsZXRlRXhwaXJlDQorTm50cERlbGV0ZUZlZWQNCitObnRwRGVsZXRlTmV3c2dyb3VwDQorTm50cEVuYWJsZUZlZWQNCitObnRwRW51bWVyYXRlRXhwaXJlcw0KK05udHBFbnVtZXJhdGVGZWVkcw0KK05udHBFbnVtZXJhdGVTZXNzaW9ucw0KK05udHBGaW5kTmV3c2dyb3VwDQorTm50cEdldEFkbWluSW5mb3JtYXRpb24NCitObnRwR2V0QnVpbGRTdGF0dXMNCitObnRwR2V0RXhwaXJlSW5mb3JtYXRpb24NCitObnRwR2V0RmVlZEluZm9ybWF0aW9uDQorTm50cEdldE5ld3Nncm91cA0KK05udHBHZXRWUm9vdFdpbjMyRXJyb3INCitObnRwUXVlcnlTdGF0aXN0aWNzDQorTm50cFNldEFkbWluSW5mb3JtYXRpb24NCitObnRwU2V0RXhwaXJlSW5mb3JtYXRpb24NCitObnRwU2V0RmVlZEluZm9ybWF0aW9uDQorTm50cFNldE5ld3Nncm91cA0KK05udHBTdGFydFJlYnVpbGQNCitObnRwVGVybWluYXRlU2Vzc2lvbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL25udHBzbmFwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL25udHBzbmFwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZGFlOTY3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbm50cHNuYXAuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTk5UUFNOQVAuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5OVFBTTkFQLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL25wcHRvb2xzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL25wcHRvb2xzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYjNlYzUxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbnBwdG9vbHMuZGVmCkBAIC0wLDAgKzEsNzMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTlBQVG9vbHMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5QUFRvb2xzLmRsbA0KK0VYUE9SVFMNCitDbGVhckV2ZW50RGF0YQ0KK1JlbGVhc2VFdmVudFN5c3RlbQ0KK1NlbmRFdmVudA0KK0NvbnZlcnRIZXhTdHJpbmdUb1dTdHJpbmcNCitDb252ZXJ0V1N0cmluZ1RvSGV4U3RyaW5nDQorQ3JlYXRlQmxvYg0KK0NyZWF0ZU5QUEludGVyZmFjZQ0KK0Rlc3Ryb3lCbG9iDQorRHVwbGljYXRlQmxvYg0KK0ZpbHRlck5QUEJsb2INCitGaW5kT25lT2YNCitGaW5kVW5rbm93bkJsb2JDYXRlZ29yaWVzDQorRmluZFVua25vd25CbG9iVGFncw0KK0dldEJvb2xGcm9tQmxvYg0KK0dldENsYXNzSURGcm9tQmxvYg0KK0dldER3b3JkRnJvbUJsb2INCitHZXRNYWNBZGRyZXNzRnJvbUJsb2INCitHZXROUFBBZGRyZXNzMkZpbHRlckZyb21CbG9iDQorR2V0TlBQQWRkcmVzc0ZpbHRlckZyb21CbG9iDQorR2V0TlBQQmxvYkZyb21VSQ0KK0dldE5QUEJsb2JUYWJsZQ0KK0dldE5QUEV0eXBlU2FwRmlsdGVyDQorR2V0TlBQTWFjVHlwZUFzTnVtYmVyDQorR2V0TlBQUGF0dGVybkZpbHRlckZyb21CbG9iDQorR2V0TlBQVHJpZ2dlckZyb21CbG9iDQorR2V0TmV0d29ya0luZm9Gcm9tQmxvYg0KK0dldFN0cmluZ0Zyb21CbG9iDQorR2V0U3RyaW5nc0Zyb21CbG9iDQorR2V0V1N0cmluZ0Zyb21CbG9iDQorSXNSZW1vdGVOUFANCitMb2NrQmxvYg0KK01hcnNoYWxCbG9iDQorTWVyZ2VCbG9iDQorTm1BZGRVc2VkRW50cnkNCitObUhlYXBBbGxvY2F0ZQ0KK05tSGVhcEZyZWUNCitObUhlYXBSZWFsbG9jYXRlDQorTm1IZWFwU2V0TWF4U2l6ZQ0KK05tSGVhcFNpemUNCitObVJlbW92ZVVzZWRFbnRyeQ0KK1JhaXNlTk1FdmVudA0KK1JlYWRCbG9iRnJvbUZpbGUNCitSZWdDcmVhdGVCbG9iS2V5DQorUmVnT3BlbkJsb2JLZXkNCitSZW1vdmVGcm9tQmxvYg0KK1NlbGVjdE5QUEJsb2JGcm9tVGFibGUNCitTZXRCb29sSW5CbG9iDQorU2V0Q2xhc3NJREluQmxvYg0KK1NldER3b3JkSW5CbG9iDQorU2V0TWFjQWRkcmVzc0luQmxvYg0KK1NldE5QUEFkZHJlc3MyRmlsdGVySW5CbG9iDQorU2V0TlBQQWRkcmVzc0ZpbHRlckluQmxvYg0KK1NldE5QUEV0eXBlU2FwRmlsdGVyDQorU2V0TlBQUGF0dGVybkZpbHRlckluQmxvYg0KK1NldE5QUFRyaWdnZXJJbkJsb2INCitTZXROZXR3b3JrSW5mb0luQmxvYg0KK1NldFN0cmluZ0luQmxvYg0KK1NldFdTdHJpbmdJbkJsb2INCitTdWJrZXlFeGlzdHMNCitVbk1hcnNoYWxCbG9iDQorVW5sb2NrQmxvYg0KK1dyaXRlQmxvYlRvRmlsZQ0KK1dyaXRlQ3JhY2tlZEJsb2JUb0ZpbGUNCityZWN1cnNpdmVEZWxldGVLZXkNCitzZXRLZXlBbmRWYWx1ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL25zaGlwc2VjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL25zaGlwc2VjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZjE5NWJjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbnNoaXBzZWMuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTlNISVBTRUMuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5TSElQU0VDLkRMTA0KK0VYUE9SVFMNCitHZXRJcHNlY0xhc3RFcnJvcg0KK0dldFJlc291cmNlU3RyaW5nDQorSW5pdEhlbHBlckRsbA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL250ZGxsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL250ZGxsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NjIzNTk0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbnRkbGwuZGVmCkBAIC0wLDAgKzEsMTM4NCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBudGRsbC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbnRkbGwuZGxsDQorRVhQT1JUUw0KK1Byb3BlcnR5TGVuZ3RoQXNWYXJpYW50DQorUnRsQ29udmVydFByb3BlcnR5VG9WYXJpYW50DQorUnRsQ29udmVydFZhcmlhbnRUb1Byb3BlcnR5DQorQ3NyQWxsb2NhdGVDYXB0dXJlQnVmZmVyDQorQ3NyQWxsb2NhdGVNZXNzYWdlUG9pbnRlcg0KK0NzckNhcHR1cmVNZXNzYWdlQnVmZmVyDQorQ3NyQ2FwdHVyZU1lc3NhZ2VNdWx0aVVuaWNvZGVTdHJpbmdzSW5QbGFjZQ0KK0NzckNhcHR1cmVNZXNzYWdlU3RyaW5nDQorQ3NyQ2FwdHVyZVRpbWVvdXQNCitDc3JDbGllbnRDYWxsU2VydmVyDQorQ3NyQ2xpZW50Q29ubmVjdFRvU2VydmVyDQorQ3NyRnJlZUNhcHR1cmVCdWZmZXINCitDc3JHZXRQcm9jZXNzSWQNCitDc3JJZGVudGlmeUFsZXJ0YWJsZVRocmVhZA0KK0Nzck5ld1RocmVhZA0KK0NzclByb2JlRm9yUmVhZA0KK0NzclByb2JlRm9yV3JpdGUNCitDc3JTZXRQcmlvcml0eUNsYXNzDQorRGJnQnJlYWtQb2ludA0KK0RiZ1ByaW50DQorRGJnUHJpbnRFeA0KK0RiZ1ByaW50UmV0dXJuQ29udHJvbEMNCitEYmdQcm9tcHQNCitEYmdRdWVyeURlYnVnRmlsdGVyU3RhdGUNCitEYmdTZXREZWJ1Z0ZpbHRlclN0YXRlDQorRGJnVWlDb25uZWN0VG9EYmcNCitEYmdVaUNvbnRpbnVlDQorRGJnVWlDb252ZXJ0U3RhdGVDaGFuZ2VTdHJ1Y3R1cmUNCitEYmdVaURlYnVnQWN0aXZlUHJvY2Vzcw0KK0RiZ1VpR2V0VGhyZWFkRGVidWdPYmplY3QNCitEYmdVaUlzc3VlUmVtb3RlQnJlYWtpbg0KK0RiZ1VpUmVtb3RlQnJlYWtpbg0KK0RiZ1VpU2V0VGhyZWFkRGVidWdPYmplY3QNCitEYmdVaVN0b3BEZWJ1Z2dpbmcNCitEYmdVaVdhaXRTdGF0ZUNoYW5nZQ0KK0RiZ1VzZXJCcmVha1BvaW50DQorRXR3Q29udHJvbFRyYWNlQQ0KK0V0d0NvbnRyb2xUcmFjZVcNCitFdHdDcmVhdGVUcmFjZUluc3RhbmNlSWQNCitFdHdFbmFibGVUcmFjZQ0KK0V0d0VudW1lcmF0ZVRyYWNlR3VpZHMNCitFdHdGbHVzaFRyYWNlQQ0KK0V0d0ZsdXNoVHJhY2VXDQorRXR3R2V0VHJhY2VFbmFibGVGbGFncw0KK0V0d0dldFRyYWNlRW5hYmxlTGV2ZWwNCitFdHdHZXRUcmFjZUxvZ2dlckhhbmRsZQ0KK0V0d05vdGlmaWNhdGlvblJlZ2lzdHJhdGlvbkENCitFdHdOb3RpZmljYXRpb25SZWdpc3RyYXRpb25XDQorRXR3UXVlcnlBbGxUcmFjZXNBDQorRXR3UXVlcnlBbGxUcmFjZXNXDQorRXR3UXVlcnlUcmFjZUENCitFdHdRdWVyeVRyYWNlVw0KK0V0d1JlY2VpdmVOb3RpZmljYXRpb25zQQ0KK0V0d1JlY2VpdmVOb3RpZmljYXRpb25zVw0KK0V0d1JlZ2lzdGVyVHJhY2VHdWlkc0ENCitFdHdSZWdpc3RlclRyYWNlR3VpZHNXDQorRXR3U3RhcnRUcmFjZUENCitFdHdTdGFydFRyYWNlVw0KK0V0d1N0b3BUcmFjZUENCitFdHdTdG9wVHJhY2VXDQorRXR3VHJhY2VFdmVudA0KK0V0d1RyYWNlRXZlbnRJbnN0YW5jZQ0KK0V0d1RyYWNlTWVzc2FnZQ0KK0V0d1RyYWNlTWVzc2FnZVZhDQorRXR3VW5yZWdpc3RlclRyYWNlR3VpZHMNCitFdHdVcGRhdGVUcmFjZUENCitFdHdVcGRhdGVUcmFjZVcNCitFdHdwR2V0VHJhY2VCdWZmZXINCitFdHdwU2V0SFdDb25maWdGdW5jdGlvbg0KK0V4cEludGVybG9ja2VkUG9wRW50cnlTTGlzdEVuZA0KK0V4cEludGVybG9ja2VkUG9wRW50cnlTTGlzdEZhdWx0DQorRXhwSW50ZXJsb2NrZWRQb3BFbnRyeVNMaXN0UmVzdW1lDQorS2lSYWlzZVVzZXJFeGNlcHRpb25EaXNwYXRjaGVyDQorS2lVc2VyQXBjRGlzcGF0Y2hlcg0KK0tpVXNlckNhbGxiYWNrRGlzcGF0Y2hlcg0KK0tpVXNlckV4Y2VwdGlvbkRpc3BhdGNoZXINCitMZHJBY2Nlc3NPdXRPZlByb2Nlc3NSZXNvdXJjZQ0KK0xkckFjY2Vzc1Jlc291cmNlDQorTGRyQWRkUmVmRGxsDQorTGRyQWx0ZXJuYXRlUmVzb3VyY2VzRW5hYmxlZA0KK0xkckNyZWF0ZU91dE9mUHJvY2Vzc0ltYWdlDQorTGRyRGVzdHJveU91dE9mUHJvY2Vzc0ltYWdlDQorTGRyRGlzYWJsZVRocmVhZENhbGxvdXRzRm9yRGxsDQorTGRyRW51bVJlc291cmNlcw0KK0xkckVudW1lcmF0ZUxvYWRlZE1vZHVsZXMNCitMZHJGaW5kQ3JlYXRlUHJvY2Vzc01hbmlmZXN0DQorTGRyRmluZEVudHJ5Rm9yQWRkcmVzcw0KK0xkckZpbmRSZXNvdXJjZURpcmVjdG9yeV9VDQorTGRyRmluZFJlc291cmNlRXhfVQ0KK0xkckZpbmRSZXNvdXJjZV9VDQorTGRyRmx1c2hBbHRlcm5hdGVSZXNvdXJjZU1vZHVsZXMNCitMZHJHZXREbGxIYW5kbGUNCitMZHJHZXREbGxIYW5kbGVFeA0KK0xkckdldEtub3duRGxsU2VjdGlvbkhhbmRsZQ0KK0xkckdldFByb2NlZHVyZUFkZHJlc3MNCitMZHJIb3RQYXRjaFJvdXRpbmUNCitMZHJJbml0U2hpbUVuZ2luZUR5bmFtaWMNCitMZHJJbml0aWFsaXplVGh1bmsNCitMZHJMb2FkQWx0ZXJuYXRlUmVzb3VyY2VNb2R1bGUNCitMZHJMb2FkRGxsDQorTGRyTG9ja0xvYWRlckxvY2sNCitMZHJPcGVuSW1hZ2VGaWxlT3B0aW9uc0tleQ0KK0xkclByb2Nlc3NJbml0aWFsaXphdGlvbkNvbXBsZXRlDQorTGRyUHJvY2Vzc1JlbG9jYXRpb25CbG9jaw0KK0xkclF1ZXJ5SW1hZ2VGaWxlRXhlY3V0aW9uT3B0aW9ucw0KK0xkclF1ZXJ5SW1hZ2VGaWxlRXhlY3V0aW9uT3B0aW9uc0V4DQorTGRyUXVlcnlJbWFnZUZpbGVLZXlPcHRpb24NCitMZHJRdWVyeVByb2Nlc3NNb2R1bGVJbmZvcm1hdGlvbg0KK0xkclNldEFwcENvbXBhdERsbFJlZGlyZWN0aW9uQ2FsbGJhY2sNCitMZHJTZXREbGxNYW5pZmVzdFByb2Jlcg0KK0xkclNodXRkb3duUHJvY2Vzcw0KK0xkclNodXRkb3duVGhyZWFkDQorTGRyVW5sb2FkQWx0ZXJuYXRlUmVzb3VyY2VNb2R1bGUNCitMZHJVbmxvYWREbGwNCitMZHJVbmxvY2tMb2FkZXJMb2NrDQorTGRyVmVyaWZ5SW1hZ2VNYXRjaGVzQ2hlY2tzdW0NCitObHNBbnNpQ29kZVBhZ2UgREFUQQ0KK05sc01iQ29kZVBhZ2VUYWcgREFUQQ0KK05sc01iT2VtQ29kZVBhZ2VUYWcgREFUQQ0KK050QWNjZXB0Q29ubmVjdFBvcnQNCitOdEFjY2Vzc0NoZWNrDQorTnRBY2Nlc3NDaGVja0FuZEF1ZGl0QWxhcm0NCitOdEFjY2Vzc0NoZWNrQnlUeXBlDQorTnRBY2Nlc3NDaGVja0J5VHlwZUFuZEF1ZGl0QWxhcm0NCitOdEFjY2Vzc0NoZWNrQnlUeXBlUmVzdWx0TGlzdA0KK050QWNjZXNzQ2hlY2tCeVR5cGVSZXN1bHRMaXN0QW5kQXVkaXRBbGFybQ0KK050QWNjZXNzQ2hlY2tCeVR5cGVSZXN1bHRMaXN0QW5kQXVkaXRBbGFybUJ5SGFuZGxlDQorTnRBZGRBdG9tDQorTnRBZGRCb290RW50cnkNCitOdEFkZERyaXZlckVudHJ5DQorTnRBZGp1c3RHcm91cHNUb2tlbg0KK050QWRqdXN0UHJpdmlsZWdlc1Rva2VuDQorTnRBbGVydFJlc3VtZVRocmVhZA0KK050QWxlcnRUaHJlYWQNCitOdEFsbG9jYXRlTG9jYWxseVVuaXF1ZUlkDQorTnRBbGxvY2F0ZVVzZXJQaHlzaWNhbFBhZ2VzDQorTnRBbGxvY2F0ZVV1aWRzDQorTnRBbGxvY2F0ZVZpcnR1YWxNZW1vcnkNCitOdEFwcGhlbHBDYWNoZUNvbnRyb2wNCitOdEFyZU1hcHBlZEZpbGVzVGhlU2FtZQ0KK050QXNzaWduUHJvY2Vzc1RvSm9iT2JqZWN0DQorTnRDYWxsYmFja1JldHVybg0KK050Q2FuY2VsRGV2aWNlV2FrZXVwUmVxdWVzdA0KK050Q2FuY2VsSW9GaWxlDQorTnRDYW5jZWxUaW1lcg0KK050Q2xlYXJFdmVudA0KK050Q2xvc2UNCitOdENsb3NlT2JqZWN0QXVkaXRBbGFybQ0KK050Q29tcGFjdEtleXMNCitOdENvbXBhcmVUb2tlbnMNCitOdENvbXBsZXRlQ29ubmVjdFBvcnQNCitOdENvbXByZXNzS2V5DQorTnRDb25uZWN0UG9ydA0KK050Q29udGludWUNCitOdENyZWF0ZURlYnVnT2JqZWN0DQorTnRDcmVhdGVEaXJlY3RvcnlPYmplY3QNCitOdENyZWF0ZUV2ZW50DQorTnRDcmVhdGVFdmVudFBhaXINCitOdENyZWF0ZUZpbGUNCitOdENyZWF0ZUlvQ29tcGxldGlvbg0KK050Q3JlYXRlSm9iT2JqZWN0DQorTnRDcmVhdGVKb2JTZXQNCitOdENyZWF0ZUtleQ0KK050Q3JlYXRlS2V5ZWRFdmVudA0KK050Q3JlYXRlTWFpbHNsb3RGaWxlDQorTnRDcmVhdGVNdXRhbnQNCitOdENyZWF0ZU5hbWVkUGlwZUZpbGUNCitOdENyZWF0ZVBhZ2luZ0ZpbGUNCitOdENyZWF0ZVBvcnQNCitOdENyZWF0ZVByb2Nlc3MNCitOdENyZWF0ZVByb2Nlc3NFeA0KK050Q3JlYXRlUHJvZmlsZQ0KK050Q3JlYXRlU2VjdGlvbg0KK050Q3JlYXRlU2VtYXBob3JlDQorTnRDcmVhdGVTeW1ib2xpY0xpbmtPYmplY3QNCitOdENyZWF0ZVRocmVhZA0KK050Q3JlYXRlVGltZXINCitOdENyZWF0ZVRva2VuDQorTnRDcmVhdGVXYWl0YWJsZVBvcnQNCitOdERlYnVnQWN0aXZlUHJvY2Vzcw0KK050RGVidWdDb250aW51ZQ0KK050RGVsYXlFeGVjdXRpb24NCitOdERlbGV0ZUF0b20NCitOdERlbGV0ZUJvb3RFbnRyeQ0KK050RGVsZXRlRHJpdmVyRW50cnkNCitOdERlbGV0ZUZpbGUNCitOdERlbGV0ZUtleQ0KK050RGVsZXRlT2JqZWN0QXVkaXRBbGFybQ0KK050RGVsZXRlVmFsdWVLZXkNCitOdERldmljZUlvQ29udHJvbEZpbGUNCitOdERpc3BsYXlTdHJpbmcNCitOdER1cGxpY2F0ZU9iamVjdA0KK050RHVwbGljYXRlVG9rZW4NCitOdEVudW1lcmF0ZUJvb3RFbnRyaWVzDQorTnRFbnVtZXJhdGVEcml2ZXJFbnRyaWVzDQorTnRFbnVtZXJhdGVLZXkNCitOdEVudW1lcmF0ZVN5c3RlbUVudmlyb25tZW50VmFsdWVzRXgNCitOdEVudW1lcmF0ZVZhbHVlS2V5DQorTnRFeHRlbmRTZWN0aW9uDQorTnRGaWx0ZXJUb2tlbg0KK050RmluZEF0b20NCitOdEZsdXNoQnVmZmVyc0ZpbGUNCitOdEZsdXNoSW5zdHJ1Y3Rpb25DYWNoZQ0KK050Rmx1c2hLZXkNCitOdEZsdXNoVmlydHVhbE1lbW9yeQ0KK050Rmx1c2hXcml0ZUJ1ZmZlcg0KK050RnJlZVVzZXJQaHlzaWNhbFBhZ2VzDQorTnRGcmVlVmlydHVhbE1lbW9yeQ0KK050RnNDb250cm9sRmlsZQ0KK050R2V0Q29udGV4dFRocmVhZA0KK050R2V0Q3VycmVudFByb2Nlc3Nvck51bWJlcg0KK050R2V0RGV2aWNlUG93ZXJTdGF0ZQ0KK050R2V0UGx1Z1BsYXlFdmVudA0KK050R2V0VGlja0NvdW50DQorTnRHZXRXcml0ZVdhdGNoDQorTnRJbXBlcnNvbmF0ZUFub255bW91c1Rva2VuDQorTnRJbXBlcnNvbmF0ZUNsaWVudE9mUG9ydA0KK050SW1wZXJzb25hdGVUaHJlYWQNCitOdEluaXRpYWxpemVSZWdpc3RyeQ0KK050SW5pdGlhdGVQb3dlckFjdGlvbg0KK050SXNQcm9jZXNzSW5Kb2INCitOdElzU3lzdGVtUmVzdW1lQXV0b21hdGljDQorTnRMaXN0ZW5Qb3J0DQorTnRMb2FkRHJpdmVyDQorTnRMb2FkS2V5DQorTnRMb2FkS2V5Mg0KK050TG9hZEtleUV4DQorTnRMb2NrRmlsZQ0KK050TG9ja1Byb2R1Y3RBY3RpdmF0aW9uS2V5cw0KK050TG9ja1JlZ2lzdHJ5S2V5DQorTnRMb2NrVmlydHVhbE1lbW9yeQ0KK050TWFrZVBlcm1hbmVudE9iamVjdA0KK050TWFrZVRlbXBvcmFyeU9iamVjdA0KK050TWFwVXNlclBoeXNpY2FsUGFnZXMNCitOdE1hcFVzZXJQaHlzaWNhbFBhZ2VzU2NhdHRlcg0KK050TWFwVmlld09mU2VjdGlvbg0KK050TW9kaWZ5Qm9vdEVudHJ5DQorTnRNb2RpZnlEcml2ZXJFbnRyeQ0KK050Tm90aWZ5Q2hhbmdlRGlyZWN0b3J5RmlsZQ0KK050Tm90aWZ5Q2hhbmdlS2V5DQorTnROb3RpZnlDaGFuZ2VNdWx0aXBsZUtleXMNCitOdE9wZW5EaXJlY3RvcnlPYmplY3QNCitOdE9wZW5FdmVudA0KK050T3BlbkV2ZW50UGFpcg0KK050T3BlbkZpbGUNCitOdE9wZW5Jb0NvbXBsZXRpb24NCitOdE9wZW5Kb2JPYmplY3QNCitOdE9wZW5LZXkNCitOdE9wZW5LZXllZEV2ZW50DQorTnRPcGVuTXV0YW50DQorTnRPcGVuT2JqZWN0QXVkaXRBbGFybQ0KK050T3BlblByb2Nlc3MNCitOdE9wZW5Qcm9jZXNzVG9rZW4NCitOdE9wZW5Qcm9jZXNzVG9rZW5FeA0KK050T3BlblNlY3Rpb24NCitOdE9wZW5TZW1hcGhvcmUNCitOdE9wZW5TeW1ib2xpY0xpbmtPYmplY3QNCitOdE9wZW5UaHJlYWQNCitOdE9wZW5UaHJlYWRUb2tlbg0KK050T3BlblRocmVhZFRva2VuRXgNCitOdE9wZW5UaW1lcg0KK050UGx1Z1BsYXlDb250cm9sDQorTnRQb3dlckluZm9ybWF0aW9uDQorTnRQcml2aWxlZ2VDaGVjaw0KK050UHJpdmlsZWdlT2JqZWN0QXVkaXRBbGFybQ0KK050UHJpdmlsZWdlZFNlcnZpY2VBdWRpdEFsYXJtDQorTnRQcm90ZWN0VmlydHVhbE1lbW9yeQ0KK050UHVsc2VFdmVudA0KK050UXVlcnlBdHRyaWJ1dGVzRmlsZQ0KK050UXVlcnlCb290RW50cnlPcmRlcg0KK050UXVlcnlCb290T3B0aW9ucw0KK050UXVlcnlEZWJ1Z0ZpbHRlclN0YXRlDQorTnRRdWVyeURlZmF1bHRMb2NhbGUNCitOdFF1ZXJ5RGVmYXVsdFVJTGFuZ3VhZ2UNCitOdFF1ZXJ5RGlyZWN0b3J5RmlsZQ0KK050UXVlcnlEaXJlY3RvcnlPYmplY3QNCitOdFF1ZXJ5RHJpdmVyRW50cnlPcmRlcg0KK050UXVlcnlFYUZpbGUNCitOdFF1ZXJ5RXZlbnQNCitOdFF1ZXJ5RnVsbEF0dHJpYnV0ZXNGaWxlDQorTnRRdWVyeUluZm9ybWF0aW9uQXRvbQ0KK050UXVlcnlJbmZvcm1hdGlvbkZpbGUNCitOdFF1ZXJ5SW5mb3JtYXRpb25Kb2JPYmplY3QNCitOdFF1ZXJ5SW5mb3JtYXRpb25Qb3J0DQorTnRRdWVyeUluZm9ybWF0aW9uUHJvY2Vzcw0KK050UXVlcnlJbmZvcm1hdGlvblRocmVhZA0KK050UXVlcnlJbmZvcm1hdGlvblRva2VuDQorTnRRdWVyeUluc3RhbGxVSUxhbmd1YWdlDQorTnRRdWVyeUludGVydmFsUHJvZmlsZQ0KK050UXVlcnlJb0NvbXBsZXRpb24NCitOdFF1ZXJ5S2V5DQorTnRRdWVyeU11bHRpcGxlVmFsdWVLZXkNCitOdFF1ZXJ5TXV0YW50DQorTnRRdWVyeU9iamVjdA0KK050UXVlcnlPcGVuU3ViS2V5cw0KK050UXVlcnlPcGVuU3ViS2V5c0V4DQorTnRRdWVyeVBlcmZvcm1hbmNlQ291bnRlcg0KK050UXVlcnlQb3J0SW5mb3JtYXRpb25Qcm9jZXNzDQorTnRRdWVyeVF1b3RhSW5mb3JtYXRpb25GaWxlDQorTnRRdWVyeVNlY3Rpb24NCitOdFF1ZXJ5U2VjdXJpdHlPYmplY3QNCitOdFF1ZXJ5U2VtYXBob3JlDQorTnRRdWVyeVN5bWJvbGljTGlua09iamVjdA0KK050UXVlcnlTeXN0ZW1FbnZpcm9ubWVudFZhbHVlDQorTnRRdWVyeVN5c3RlbUVudmlyb25tZW50VmFsdWVFeA0KK050UXVlcnlTeXN0ZW1JbmZvcm1hdGlvbg0KK050UXVlcnlTeXN0ZW1UaW1lDQorTnRRdWVyeVRpbWVyDQorTnRRdWVyeVRpbWVyUmVzb2x1dGlvbg0KK050UXVlcnlWYWx1ZUtleQ0KK050UXVlcnlWaXJ0dWFsTWVtb3J5DQorTnRRdWVyeVZvbHVtZUluZm9ybWF0aW9uRmlsZQ0KK050UXVldWVBcGNUaHJlYWQNCitOdFJhaXNlRXhjZXB0aW9uDQorTnRSYWlzZUhhcmRFcnJvcg0KK050UmVhZEZpbGUNCitOdFJlYWRGaWxlU2NhdHRlcg0KK050UmVhZFJlcXVlc3REYXRhDQorTnRSZWFkVmlydHVhbE1lbW9yeQ0KK050UmVnaXN0ZXJUaHJlYWRUZXJtaW5hdGVQb3J0DQorTnRSZWxlYXNlS2V5ZWRFdmVudA0KK050UmVsZWFzZU11dGFudA0KK050UmVsZWFzZVNlbWFwaG9yZQ0KK050UmVtb3ZlSW9Db21wbGV0aW9uDQorTnRSZW1vdmVQcm9jZXNzRGVidWcNCitOdFJlbmFtZUtleQ0KK050UmVwbGFjZUtleQ0KK050UmVwbHlQb3J0DQorTnRSZXBseVdhaXRSZWNlaXZlUG9ydA0KK050UmVwbHlXYWl0UmVjZWl2ZVBvcnRFeA0KK050UmVwbHlXYWl0UmVwbHlQb3J0DQorTnRSZXF1ZXN0RGV2aWNlV2FrZXVwDQorTnRSZXF1ZXN0UG9ydA0KK050UmVxdWVzdFdhaXRSZXBseVBvcnQNCitOdFJlcXVlc3RXYWtldXBMYXRlbmN5DQorTnRSZXNldEV2ZW50DQorTnRSZXNldFdyaXRlV2F0Y2gNCitOdFJlc3RvcmVLZXkNCitOdFJlc3VtZVByb2Nlc3MNCitOdFJlc3VtZVRocmVhZA0KK050U2F2ZUtleQ0KK050U2F2ZUtleUV4DQorTnRTYXZlTWVyZ2VkS2V5cw0KK050U2VjdXJlQ29ubmVjdFBvcnQNCitOdFNldEJvb3RFbnRyeU9yZGVyDQorTnRTZXRCb290T3B0aW9ucw0KK050U2V0Q29udGV4dFRocmVhZA0KK050U2V0RGVidWdGaWx0ZXJTdGF0ZQ0KK050U2V0RGVmYXVsdEhhcmRFcnJvclBvcnQNCitOdFNldERlZmF1bHRMb2NhbGUNCitOdFNldERlZmF1bHRVSUxhbmd1YWdlDQorTnRTZXREcml2ZXJFbnRyeU9yZGVyDQorTnRTZXRFYUZpbGUNCitOdFNldEV2ZW50DQorTnRTZXRFdmVudEJvb3N0UHJpb3JpdHkNCitOdFNldEhpZ2hFdmVudFBhaXINCitOdFNldEhpZ2hXYWl0TG93RXZlbnRQYWlyDQorTnRTZXRJbmZvcm1hdGlvbkRlYnVnT2JqZWN0DQorTnRTZXRJbmZvcm1hdGlvbkZpbGUNCitOdFNldEluZm9ybWF0aW9uSm9iT2JqZWN0DQorTnRTZXRJbmZvcm1hdGlvbktleQ0KK050U2V0SW5mb3JtYXRpb25PYmplY3QNCitOdFNldEluZm9ybWF0aW9uUHJvY2Vzcw0KK050U2V0SW5mb3JtYXRpb25UaHJlYWQNCitOdFNldEluZm9ybWF0aW9uVG9rZW4NCitOdFNldEludGVydmFsUHJvZmlsZQ0KK050U2V0SW9Db21wbGV0aW9uDQorTnRTZXRMZHRFbnRyaWVzDQorTnRTZXRMb3dFdmVudFBhaXINCitOdFNldExvd1dhaXRIaWdoRXZlbnRQYWlyDQorTnRTZXRRdW90YUluZm9ybWF0aW9uRmlsZQ0KK050U2V0U2VjdXJpdHlPYmplY3QNCitOdFNldFN5c3RlbUVudmlyb25tZW50VmFsdWUNCitOdFNldFN5c3RlbUVudmlyb25tZW50VmFsdWVFeA0KK050U2V0U3lzdGVtSW5mb3JtYXRpb24NCitOdFNldFN5c3RlbVBvd2VyU3RhdGUNCitOdFNldFN5c3RlbVRpbWUNCitOdFNldFRocmVhZEV4ZWN1dGlvblN0YXRlDQorTnRTZXRUaW1lcg0KK050U2V0VGltZXJSZXNvbHV0aW9uDQorTnRTZXRVdWlkU2VlZA0KK050U2V0VmFsdWVLZXkNCitOdFNldFZvbHVtZUluZm9ybWF0aW9uRmlsZQ0KK050U2h1dGRvd25TeXN0ZW0NCitOdFNpZ25hbEFuZFdhaXRGb3JTaW5nbGVPYmplY3QNCitOdFN0YXJ0UHJvZmlsZQ0KK050U3RvcFByb2ZpbGUNCitOdFN1c3BlbmRQcm9jZXNzDQorTnRTdXNwZW5kVGhyZWFkDQorTnRTeXN0ZW1EZWJ1Z0NvbnRyb2wNCitOdFRlcm1pbmF0ZUpvYk9iamVjdA0KK050VGVybWluYXRlUHJvY2Vzcw0KK050VGVybWluYXRlVGhyZWFkDQorTnRUZXN0QWxlcnQNCitOdFRyYWNlRXZlbnQNCitOdFRyYW5zbGF0ZUZpbGVQYXRoDQorTnRVbmxvYWREcml2ZXINCitOdFVubG9hZEtleQ0KK050VW5sb2FkS2V5Mg0KK050VW5sb2FkS2V5RXgNCitOdFVubG9ja0ZpbGUNCitOdFVubG9ja1ZpcnR1YWxNZW1vcnkNCitOdFVubWFwVmlld09mU2VjdGlvbg0KK050VmRtQ29udHJvbA0KK050V2FpdEZvckRlYnVnRXZlbnQNCitOdFdhaXRGb3JLZXllZEV2ZW50DQorTnRXYWl0Rm9yTXVsdGlwbGVPYmplY3RzDQorTnRXYWl0Rm9yTXVsdGlwbGVPYmplY3RzMzINCitOdFdhaXRGb3JTaW5nbGVPYmplY3QNCitOdFdhaXRIaWdoRXZlbnRQYWlyDQorTnRXYWl0TG93RXZlbnRQYWlyDQorTnRXcml0ZUZpbGUNCitOdFdyaXRlRmlsZUdhdGhlcg0KK050V3JpdGVSZXF1ZXN0RGF0YQ0KK050V3JpdGVWaXJ0dWFsTWVtb3J5DQorTnRZaWVsZEV4ZWN1dGlvbg0KK1BmeEZpbmRQcmVmaXgNCitQZnhJbml0aWFsaXplDQorUGZ4SW5zZXJ0UHJlZml4DQorUGZ4UmVtb3ZlUHJlZml4DQorUnRsQWJvcnRSWGFjdA0KK1J0bEFic29sdXRlVG9TZWxmUmVsYXRpdmVTRA0KK1J0bEFjcXVpcmVQZWJMb2NrDQorUnRsQWNxdWlyZVByaXZpbGVnZQ0KK1J0bEFjcXVpcmVSZXNvdXJjZUV4Y2x1c2l2ZQ0KK1J0bEFjcXVpcmVSZXNvdXJjZVNoYXJlZA0KK1J0bEFjdGl2YXRlQWN0aXZhdGlvbkNvbnRleHQNCitSdGxBY3RpdmF0ZUFjdGl2YXRpb25Db250ZXh0RXgNCitSdGxBY3RpdmF0ZUFjdGl2YXRpb25Db250ZXh0VW5zYWZlRmFzdA0KK1J0bEFkZEFjY2Vzc0FsbG93ZWRBY2UNCitSdGxBZGRBY2Nlc3NBbGxvd2VkQWNlRXgNCitSdGxBZGRBY2Nlc3NBbGxvd2VkT2JqZWN0QWNlDQorUnRsQWRkQWNjZXNzRGVuaWVkQWNlDQorUnRsQWRkQWNjZXNzRGVuaWVkQWNlRXgNCitSdGxBZGRBY2Nlc3NEZW5pZWRPYmplY3RBY2UNCitSdGxBZGRBY2UNCitSdGxBZGRBY3Rpb25Ub1JYYWN0DQorUnRsQWRkQXRvbVRvQXRvbVRhYmxlDQorUnRsQWRkQXR0cmlidXRlQWN0aW9uVG9SWGFjdA0KK1J0bEFkZEF1ZGl0QWNjZXNzQWNlDQorUnRsQWRkQXVkaXRBY2Nlc3NBY2VFeA0KK1J0bEFkZEF1ZGl0QWNjZXNzT2JqZWN0QWNlDQorUnRsQWRkQ29tcG91bmRBY2UNCitSdGxBZGRGdW5jdGlvblRhYmxlDQorUnRsQWRkUmVmQWN0aXZhdGlvbkNvbnRleHQNCitSdGxBZGRSZWZNZW1vcnlTdHJlYW0NCitSdGxBZGRWZWN0b3JlZENvbnRpbnVlSGFuZGxlcg0KK1J0bEFkZFZlY3RvcmVkRXhjZXB0aW9uSGFuZGxlcg0KK1J0bEFkZHJlc3NJblNlY3Rpb25UYWJsZQ0KK1J0bEFkanVzdFByaXZpbGVnZQ0KK1J0bEFsbG9jYXRlQWN0aXZhdGlvbkNvbnRleHRTdGFjaw0KK1J0bEFsbG9jYXRlQW5kSW5pdGlhbGl6ZVNpZA0KK1J0bEFsbG9jYXRlSGFuZGxlDQorUnRsQWxsb2NhdGVIZWFwDQorUnRsQW5zaUNoYXJUb1VuaWNvZGVDaGFyDQorUnRsQW5zaVN0cmluZ1RvVW5pY29kZVNpemUNCitSdGxBbnNpU3RyaW5nVG9Vbmljb2RlU3RyaW5nDQorUnRsQXBwZW5kQXNjaWl6VG9TdHJpbmcNCitSdGxBcHBlbmRQYXRoRWxlbWVudA0KK1J0bEFwcGVuZFN0cmluZ1RvU3RyaW5nDQorUnRsQXBwZW5kVW5pY29kZVN0cmluZ1RvU3RyaW5nDQorUnRsQXBwZW5kVW5pY29kZVRvU3RyaW5nDQorUnRsQXBwbGljYXRpb25WZXJpZmllclN0b3ANCitSdGxBcHBseVJYYWN0DQorUnRsQXBwbHlSWGFjdE5vRmx1c2gNCitSdGxBcmVBbGxBY2Nlc3Nlc0dyYW50ZWQNCitSdGxBcmVBbnlBY2Nlc3Nlc0dyYW50ZWQNCitSdGxBcmVCaXRzQ2xlYXINCitSdGxBcmVCaXRzU2V0DQorUnRsQXNzZXJ0DQorUnRsQ2FuY2VsVGltZXINCitSdGxDYXB0dXJlQ29udGV4dA0KK1J0bENhcHR1cmVTdGFja0JhY2tUcmFjZQ0KK1J0bENoYXJUb0ludGVnZXINCitSdGxDaGVja0Zvck9ycGhhbmVkQ3JpdGljYWxTZWN0aW9ucw0KK1J0bENoZWNrUHJvY2Vzc1BhcmFtZXRlcnMNCitSdGxDaGVja1JlZ2lzdHJ5S2V5DQorUnRsQ2xlYXJBbGxCaXRzDQorUnRsQ2xlYXJCaXRzDQorUnRsQ2xvbmVNZW1vcnlTdHJlYW0NCitSdGxDb21taXRNZW1vcnlTdHJlYW0NCitSdGxDb21wYWN0SGVhcA0KK1J0bENvbXBhcmVNZW1vcnkNCitSdGxDb21wYXJlTWVtb3J5VWxvbmcNCitSdGxDb21wYXJlU3RyaW5nDQorUnRsQ29tcGFyZVVuaWNvZGVTdHJpbmcNCitSdGxDb21wcmVzc0J1ZmZlcg0KK1J0bENvbXB1dGVDcmMzMg0KK1J0bENvbXB1dGVJbXBvcnRUYWJsZUhhc2gNCitSdGxDb21wdXRlUHJpdmF0aXplZERsbE5hbWVfVQ0KK1J0bENvbnNvbGVNdWx0aUJ5dGVUb1VuaWNvZGVODQorUnRsQ29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkDQorUnRsQ29udmVydFNoYXJlZFRvRXhjbHVzaXZlDQorUnRsQ29udmVydFNpZFRvVW5pY29kZVN0cmluZw0KK1J0bENvbnZlcnRUb0F1dG9Jbmhlcml0U2VjdXJpdHlPYmplY3QNCitSdGxDb252ZXJ0VWlMaXN0VG9BcGlMaXN0DQorUnRsQ29weUx1aWQNCitSdGxDb3B5THVpZEFuZEF0dHJpYnV0ZXNBcnJheQ0KK1J0bENvcHlNYXBwZWRNZW1vcnkNCitSdGxDb3B5TWVtb3J5DQorUnRsQ29weU1lbW9yeU5vblRlbXBvcmFsDQorUnRsQ29weU1lbW9yeVN0cmVhbVRvDQorUnRsQ29weU91dE9mUHJvY2Vzc01lbW9yeVN0cmVhbVRvDQorUnRsQ29weVNlY3VyaXR5RGVzY3JpcHRvcg0KK1J0bENvcHlTaWQNCitSdGxDb3B5U2lkQW5kQXR0cmlidXRlc0FycmF5DQorUnRsQ29weVN0cmluZw0KK1J0bENvcHlVbmljb2RlU3RyaW5nDQorUnRsQ3JlYXRlQWNsDQorUnRsQ3JlYXRlQWN0aXZhdGlvbkNvbnRleHQNCitSdGxDcmVhdGVBbmRTZXRTRA0KK1J0bENyZWF0ZUF0b21UYWJsZQ0KK1J0bENyZWF0ZUJvb3RTdGF0dXNEYXRhRmlsZQ0KK1J0bENyZWF0ZUVudmlyb25tZW50DQorUnRsQ3JlYXRlSGVhcA0KK1J0bENyZWF0ZVByb2Nlc3NQYXJhbWV0ZXJzDQorUnRsQ3JlYXRlUXVlcnlEZWJ1Z0J1ZmZlcg0KK1J0bENyZWF0ZVJlZ2lzdHJ5S2V5DQorUnRsQ3JlYXRlU2VjdXJpdHlEZXNjcmlwdG9yDQorUnRsQ3JlYXRlU3lzdGVtVm9sdW1lSW5mb3JtYXRpb25Gb2xkZXINCitSdGxDcmVhdGVUYWdIZWFwDQorUnRsQ3JlYXRlVGltZXINCitSdGxDcmVhdGVUaW1lclF1ZXVlDQorUnRsQ3JlYXRlVW5pY29kZVN0cmluZw0KK1J0bENyZWF0ZVVuaWNvZGVTdHJpbmdGcm9tQXNjaWl6DQorUnRsQ3JlYXRlVXNlclByb2Nlc3MNCitSdGxDcmVhdGVVc2VyU2VjdXJpdHlPYmplY3QNCitSdGxDcmVhdGVVc2VyVGhyZWFkDQorUnRsQ3VzdG9tQ1BUb1VuaWNvZGVODQorUnRsQ3V0b3ZlclRpbWVUb1N5c3RlbVRpbWUNCitSdGxEZU5vcm1hbGl6ZVByb2Nlc3NQYXJhbXMNCitSdGxEZWFjdGl2YXRlQWN0aXZhdGlvbkNvbnRleHQNCitSdGxEZWFjdGl2YXRlQWN0aXZhdGlvbkNvbnRleHRVbnNhZmVGYXN0DQorUnRsRGVidWdQcmludFRpbWVzDQorUnRsRGVjb2RlUG9pbnRlcg0KK1J0bERlY29kZVN5c3RlbVBvaW50ZXINCitSdGxEZWNvbXByZXNzQnVmZmVyDQorUnRsRGVjb21wcmVzc0ZyYWdtZW50DQorUnRsRGVmYXVsdE5wQWNsDQorUnRsRGVsZXRlDQorUnRsRGVsZXRlQWNlDQorUnRsRGVsZXRlQXRvbUZyb21BdG9tVGFibGUNCitSdGxEZWxldGVDcml0aWNhbFNlY3Rpb24NCitSdGxEZWxldGVFbGVtZW50R2VuZXJpY1RhYmxlDQorUnRsRGVsZXRlRWxlbWVudEdlbmVyaWNUYWJsZUF2bA0KK1J0bERlbGV0ZUZ1bmN0aW9uVGFibGUNCitSdGxEZWxldGVOb1NwbGF5DQorUnRsRGVsZXRlUmVnaXN0cnlWYWx1ZQ0KK1J0bERlbGV0ZVJlc291cmNlDQorUnRsRGVsZXRlU2VjdXJpdHlPYmplY3QNCitSdGxEZWxldGVUaW1lcg0KK1J0bERlbGV0ZVRpbWVyUXVldWUNCitSdGxEZWxldGVUaW1lclF1ZXVlRXgNCitSdGxEZXJlZ2lzdGVyV2FpdA0KK1J0bERlcmVnaXN0ZXJXYWl0RXgNCitSdGxEZXN0cm95QXRvbVRhYmxlDQorUnRsRGVzdHJveUVudmlyb25tZW50DQorUnRsRGVzdHJveUhhbmRsZVRhYmxlDQorUnRsRGVzdHJveUhlYXANCitSdGxEZXN0cm95UHJvY2Vzc1BhcmFtZXRlcnMNCitSdGxEZXN0cm95UXVlcnlEZWJ1Z0J1ZmZlcg0KK1J0bERldGVybWluZURvc1BhdGhOYW1lVHlwZV9VDQorUnRsRGxsU2h1dGRvd25JblByb2dyZXNzDQorUnRsRG5zSG9zdE5hbWVUb0NvbXB1dGVyTmFtZQ0KK1J0bERvZXNGaWxlRXhpc3RzX1UNCitSdGxEb3NBcHBseUZpbGVJc29sYXRpb25SZWRpcmVjdGlvbl9Vc3RyDQorUnRsRG9zUGF0aE5hbWVUb050UGF0aE5hbWVfVQ0KK1J0bERvc1BhdGhOYW1lVG9OdFBhdGhOYW1lX1VfV2l0aFN0YXR1cw0KK1J0bERvc1BhdGhOYW1lVG9SZWxhdGl2ZU50UGF0aE5hbWVfVQ0KK1J0bERvc1BhdGhOYW1lVG9SZWxhdGl2ZU50UGF0aE5hbWVfVV9XaXRoU3RhdHVzDQorUnRsRG9zU2VhcmNoUGF0aF9VDQorUnRsRG9zU2VhcmNoUGF0aF9Vc3RyDQorUnRsRG93bmNhc2VVbmljb2RlQ2hhcg0KK1J0bERvd25jYXNlVW5pY29kZVN0cmluZw0KK1J0bER1bXBSZXNvdXJjZQ0KK1J0bER1cGxpY2F0ZVVuaWNvZGVTdHJpbmcNCitSdGxFbXB0eUF0b21UYWJsZQ0KK1J0bEVuYWJsZUVhcmx5Q3JpdGljYWxTZWN0aW9uRXZlbnRDcmVhdGlvbg0KK1J0bEVuY29kZVBvaW50ZXINCitSdGxFbmNvZGVTeXN0ZW1Qb2ludGVyDQorUnRsRW50ZXJDcml0aWNhbFNlY3Rpb24NCitSdGxFbnVtUHJvY2Vzc0hlYXBzDQorUnRsRW51bWVyYXRlR2VuZXJpY1RhYmxlDQorUnRsRW51bWVyYXRlR2VuZXJpY1RhYmxlQXZsDQorUnRsRW51bWVyYXRlR2VuZXJpY1RhYmxlTGlrZUFEaXJlY3RvcnkNCitSdGxFbnVtZXJhdGVHZW5lcmljVGFibGVXaXRob3V0U3BsYXlpbmcNCitSdGxFbnVtZXJhdGVHZW5lcmljVGFibGVXaXRob3V0U3BsYXlpbmdBdmwNCitSdGxFcXVhbENvbXB1dGVyTmFtZQ0KK1J0bEVxdWFsRG9tYWluTmFtZQ0KK1J0bEVxdWFsTHVpZA0KK1J0bEVxdWFsUHJlZml4U2lkDQorUnRsRXF1YWxTaWQNCitSdGxFcXVhbFN0cmluZw0KK1J0bEVxdWFsVW5pY29kZVN0cmluZw0KK1J0bEVyYXNlVW5pY29kZVN0cmluZw0KK1J0bEV4aXRVc2VyVGhyZWFkDQorUnRsRXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzX1UNCitSdGxFeHRlbmRIZWFwDQorUnRsRmlsbE1lbW9yeQ0KK1J0bEZpbmFsUmVsZWFzZU91dE9mUHJvY2Vzc01lbW9yeVN0cmVhbQ0KK1J0bEZpbmRBY3RpdmF0aW9uQ29udGV4dFNlY3Rpb25HdWlkDQorUnRsRmluZEFjdGl2YXRpb25Db250ZXh0U2VjdGlvblN0cmluZw0KK1J0bEZpbmRDaGFySW5Vbmljb2RlU3RyaW5nDQorUnRsRmluZENsZWFyQml0cw0KK1J0bEZpbmRDbGVhckJpdHNBbmRTZXQNCitSdGxGaW5kQ2xlYXJSdW5zDQorUnRsRmluZExhc3RCYWNrd2FyZFJ1bkNsZWFyDQorUnRsRmluZExlYXN0U2lnbmlmaWNhbnRCaXQNCitSdGxGaW5kTG9uZ2VzdFJ1bkNsZWFyDQorUnRsRmluZE1lc3NhZ2UNCitSdGxGaW5kTW9zdFNpZ25pZmljYW50Qml0DQorUnRsRmluZE5leHRGb3J3YXJkUnVuQ2xlYXINCitSdGxGaW5kU2V0Qml0cw0KK1J0bEZpbmRTZXRCaXRzQW5kQ2xlYXINCitSdGxGaXJzdEVudHJ5U0xpc3QNCitSdGxGaXJzdEZyZWVBY2UNCitSdGxGbHVzaFNlY3VyZU1lbW9yeUNhY2hlDQorUnRsRm9ybWF0Q3VycmVudFVzZXJLZXlQYXRoDQorUnRsRm9ybWF0TWVzc2FnZQ0KK1J0bEZvcm1hdE1lc3NhZ2VFeA0KK1J0bEZyZWVBY3RpdmF0aW9uQ29udGV4dFN0YWNrDQorUnRsRnJlZUFuc2lTdHJpbmcNCitSdGxGcmVlSGFuZGxlDQorUnRsRnJlZUhlYXANCitSdGxGcmVlT2VtU3RyaW5nDQorUnRsRnJlZVNpZA0KK1J0bEZyZWVUaHJlYWRBY3RpdmF0aW9uQ29udGV4dFN0YWNrDQorUnRsRnJlZVVuaWNvZGVTdHJpbmcNCitSdGxGcmVlVXNlclRocmVhZFN0YWNrDQorUnRsR1VJREZyb21TdHJpbmcNCitSdGxHZW5lcmF0ZThkb3QzTmFtZQ0KK1J0bEdldEFjZQ0KK1J0bEdldEFjdGl2ZUFjdGl2YXRpb25Db250ZXh0DQorUnRsR2V0Q2FsbGVyc0FkZHJlc3MNCitSdGxHZXRDb21wcmVzc2lvbldvcmtTcGFjZVNpemUNCitSdGxHZXRDb250cm9sU2VjdXJpdHlEZXNjcmlwdG9yDQorUnRsR2V0Q3JpdGljYWxTZWN0aW9uUmVjdXJzaW9uQ291bnQNCitSdGxHZXRDdXJyZW50RGlyZWN0b3J5X1UNCitSdGxHZXRDdXJyZW50UGViDQorUnRsR2V0Q3VycmVudFByb2Nlc3Nvck51bWJlcg0KK1J0bEdldERhY2xTZWN1cml0eURlc2NyaXB0b3INCitSdGxHZXRFbGVtZW50R2VuZXJpY1RhYmxlDQorUnRsR2V0RWxlbWVudEdlbmVyaWNUYWJsZUF2bA0KK1J0bEdldEZyYW1lDQorUnRsR2V0RnVsbFBhdGhOYW1lX1UNCitSdGxHZXRGdWxsUGF0aE5hbWVfVXN0ckV4DQorUnRsR2V0RnVuY3Rpb25UYWJsZUxpc3RIZWFkDQorUnRsR2V0R3JvdXBTZWN1cml0eURlc2NyaXB0b3INCitSdGxHZXRMYXN0TnRTdGF0dXMNCitSdGxHZXRMYXN0V2luMzJFcnJvcg0KK1J0bEdldExlbmd0aFdpdGhvdXRMYXN0RnVsbERvc09yTnRQYXRoRWxlbWVudA0KK1J0bEdldExlbmd0aFdpdGhvdXRUcmFpbGluZ1BhdGhTZXBlcmF0b3JzDQorUnRsR2V0TG9uZ2VzdE50UGF0aExlbmd0aA0KK1J0bEdldE5hdGl2ZVN5c3RlbUluZm9ybWF0aW9uDQorUnRsR2V0TnRHbG9iYWxGbGFncw0KK1J0bEdldE50UHJvZHVjdFR5cGUNCitSdGxHZXROdFZlcnNpb25OdW1iZXJzDQorUnRsR2V0T3duZXJTZWN1cml0eURlc2NyaXB0b3INCitSdGxHZXRQcm9jZXNzSGVhcHMNCitSdGxHZXRTYWNsU2VjdXJpdHlEZXNjcmlwdG9yDQorUnRsR2V0U2VjdXJpdHlEZXNjcmlwdG9yUk1Db250cm9sDQorUnRsR2V0U2V0Qm9vdFN0YXR1c0RhdGENCitSdGxHZXRUaHJlYWRFcnJvck1vZGUNCitSdGxHZXRVbmxvYWRFdmVudFRyYWNlDQorUnRsR2V0VXNlckluZm9IZWFwDQorUnRsR2V0VmVyc2lvbg0KK1J0bEhhc2hVbmljb2RlU3RyaW5nDQorUnRsSWRlbnRpZmllckF1dGhvcml0eVNpZA0KK1J0bEltYWdlRGlyZWN0b3J5RW50cnlUb0RhdGENCitSdGxJbWFnZU50SGVhZGVyDQorUnRsSW1hZ2VOdEhlYWRlckV4DQorUnRsSW1hZ2VSdmFUb1NlY3Rpb24NCitSdGxJbWFnZVJ2YVRvVmENCitSdGxJbXBlcnNvbmF0ZVNlbGYNCitSdGxJbml0QW5zaVN0cmluZw0KK1J0bEluaXRBbnNpU3RyaW5nRXgNCitSdGxJbml0Q29kZVBhZ2VUYWJsZQ0KK1J0bEluaXRNZW1vcnlTdHJlYW0NCitSdGxJbml0TmxzVGFibGVzDQorUnRsSW5pdE91dE9mUHJvY2Vzc01lbW9yeVN0cmVhbQ0KK1J0bEluaXRTdHJpbmcNCitSdGxJbml0VW5pY29kZVN0cmluZw0KK1J0bEluaXRVbmljb2RlU3RyaW5nRXgNCitSdGxJbml0aWFsaXplQXRvbVBhY2thZ2UNCitSdGxJbml0aWFsaXplQml0TWFwDQorUnRsSW5pdGlhbGl6ZUNvbnRleHQNCitSdGxJbml0aWFsaXplQ3JpdGljYWxTZWN0aW9uDQorUnRsSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbkFuZFNwaW5Db3VudA0KK1J0bEluaXRpYWxpemVHZW5lcmljVGFibGUNCitSdGxJbml0aWFsaXplR2VuZXJpY1RhYmxlQXZsDQorUnRsSW5pdGlhbGl6ZUhhbmRsZVRhYmxlDQorUnRsSW5pdGlhbGl6ZVJYYWN0DQorUnRsSW5pdGlhbGl6ZVJlc291cmNlDQorUnRsSW5pdGlhbGl6ZVNMaXN0SGVhZA0KK1J0bEluaXRpYWxpemVTaWQNCitSdGxJbnNlcnRFbGVtZW50R2VuZXJpY1RhYmxlDQorUnRsSW5zZXJ0RWxlbWVudEdlbmVyaWNUYWJsZUF2bA0KK1J0bEluc2VydEVsZW1lbnRHZW5lcmljVGFibGVGdWxsDQorUnRsSW5zZXJ0RWxlbWVudEdlbmVyaWNUYWJsZUZ1bGxBdmwNCitSdGxJbnN0YWxsRnVuY3Rpb25UYWJsZUNhbGxiYWNrDQorUnRsSW50NjRUb1VuaWNvZGVTdHJpbmcNCitSdGxJbnRlZ2VyVG9DaGFyDQorUnRsSW50ZWdlclRvVW5pY29kZVN0cmluZw0KK1J0bEludGVybG9ja2VkRmx1c2hTTGlzdA0KK1J0bEludGVybG9ja2VkUG9wRW50cnlTTGlzdA0KK1J0bEludGVybG9ja2VkUHVzaEVudHJ5U0xpc3QNCitSdGxJbnRlcmxvY2tlZFB1c2hMaXN0U0xpc3QNCitSdGxJcHY0QWRkcmVzc1RvU3RyaW5nQQ0KK1J0bElwdjRBZGRyZXNzVG9TdHJpbmdFeEENCitSdGxJcHY0QWRkcmVzc1RvU3RyaW5nRXhXDQorUnRsSXB2NEFkZHJlc3NUb1N0cmluZ1cNCitSdGxJcHY0U3RyaW5nVG9BZGRyZXNzQQ0KK1J0bElwdjRTdHJpbmdUb0FkZHJlc3NFeEENCitSdGxJcHY0U3RyaW5nVG9BZGRyZXNzRXhXDQorUnRsSXB2NFN0cmluZ1RvQWRkcmVzc1cNCitSdGxJcHY2QWRkcmVzc1RvU3RyaW5nQQ0KK1J0bElwdjZBZGRyZXNzVG9TdHJpbmdFeEENCitSdGxJcHY2QWRkcmVzc1RvU3RyaW5nRXhXDQorUnRsSXB2NkFkZHJlc3NUb1N0cmluZ1cNCitSdGxJcHY2U3RyaW5nVG9BZGRyZXNzQQ0KK1J0bElwdjZTdHJpbmdUb0FkZHJlc3NFeEENCitSdGxJcHY2U3RyaW5nVG9BZGRyZXNzRXhXDQorUnRsSXB2NlN0cmluZ1RvQWRkcmVzc1cNCitSdGxJc0FjdGl2YXRpb25Db250ZXh0QWN0aXZlDQorUnRsSXNDcml0aWNhbFNlY3Rpb25Mb2NrZWQNCitSdGxJc0NyaXRpY2FsU2VjdGlvbkxvY2tlZEJ5VGhyZWFkDQorUnRsSXNEb3NEZXZpY2VOYW1lX1UNCitSdGxJc0dlbmVyaWNUYWJsZUVtcHR5DQorUnRsSXNHZW5lcmljVGFibGVFbXB0eUF2bA0KK1J0bElzTmFtZUxlZ2FsRE9TOERvdDMNCitSdGxJc1RleHRVbmljb2RlDQorUnRsSXNUaHJlYWRXaXRoaW5Mb2FkZXJDYWxsb3V0DQorUnRsSXNWYWxpZEhhbmRsZQ0KK1J0bElzVmFsaWRJbmRleEhhbmRsZQ0KK1J0bExhcmdlSW50ZWdlclRvQ2hhcg0KK1J0bExlYXZlQ3JpdGljYWxTZWN0aW9uDQorUnRsTGVuZ3RoUmVxdWlyZWRTaWQNCitSdGxMZW5ndGhTZWN1cml0eURlc2NyaXB0b3INCitSdGxMZW5ndGhTaWQNCitSdGxMb2NhbFRpbWVUb1N5c3RlbVRpbWUNCitSdGxMb2NrQm9vdFN0YXR1c0RhdGENCitSdGxMb2NrSGVhcA0KK1J0bExvY2tNZW1vcnlTdHJlYW1SZWdpb24NCitSdGxMb2dTdGFja0JhY2tUcmFjZQ0KK1J0bExvb2t1cEF0b21JbkF0b21UYWJsZQ0KK1J0bExvb2t1cEVsZW1lbnRHZW5lcmljVGFibGUNCitSdGxMb29rdXBFbGVtZW50R2VuZXJpY1RhYmxlQXZsDQorUnRsTG9va3VwRWxlbWVudEdlbmVyaWNUYWJsZUZ1bGwNCitSdGxMb29rdXBFbGVtZW50R2VuZXJpY1RhYmxlRnVsbEF2bA0KK1J0bExvb2t1cEZ1bmN0aW9uRW50cnkNCitSdGxMb29rdXBGdW5jdGlvblRhYmxlDQorUnRsTWFrZVNlbGZSZWxhdGl2ZVNEDQorUnRsTWFwR2VuZXJpY01hc2sNCitSdGxNYXBTZWN1cml0eUVycm9yVG9OdFN0YXR1cw0KK1J0bE1vdmVNZW1vcnkNCitSdGxNdWx0aUFwcGVuZFVuaWNvZGVTdHJpbmdCdWZmZXINCitSdGxNdWx0aUJ5dGVUb1VuaWNvZGVODQorUnRsTXVsdGlCeXRlVG9Vbmljb2RlU2l6ZQ0KK1J0bE11bHRpcGxlQWxsb2NhdGVIZWFwDQorUnRsTXVsdGlwbGVGcmVlSGVhcA0KK1J0bE5ld0luc3RhbmNlU2VjdXJpdHlPYmplY3QNCitSdGxOZXdTZWN1cml0eUdyYW50ZWRBY2Nlc3MNCitSdGxOZXdTZWN1cml0eU9iamVjdA0KK1J0bE5ld1NlY3VyaXR5T2JqZWN0RXgNCitSdGxOZXdTZWN1cml0eU9iamVjdFdpdGhNdWx0aXBsZUluaGVyaXRhbmNlDQorUnRsTm9ybWFsaXplUHJvY2Vzc1BhcmFtcw0KK1J0bE50UGF0aE5hbWVUb0Rvc1BhdGhOYW1lDQorUnRsTnRTdGF0dXNUb0Rvc0Vycm9yDQorUnRsTnRTdGF0dXNUb0Rvc0Vycm9yTm9UZWINCitSdGxOdW1iZXJHZW5lcmljVGFibGVFbGVtZW50cw0KK1J0bE51bWJlckdlbmVyaWNUYWJsZUVsZW1lbnRzQXZsDQorUnRsTnVtYmVyT2ZDbGVhckJpdHMNCitSdGxOdW1iZXJPZlNldEJpdHMNCitSdGxPZW1TdHJpbmdUb1VuaWNvZGVTaXplDQorUnRsT2VtU3RyaW5nVG9Vbmljb2RlU3RyaW5nDQorUnRsT2VtVG9Vbmljb2RlTg0KK1J0bE9wZW5DdXJyZW50VXNlcg0KK1J0bFBjVG9GaWxlSGVhZGVyDQorUnRsUGluQXRvbUluQXRvbVRhYmxlDQorUnRsUG9wRnJhbWUNCitSdGxQcmVmaXhTdHJpbmcNCitSdGxQcmVmaXhVbmljb2RlU3RyaW5nDQorUnRsUHJvdGVjdEhlYXANCitSdGxQdXNoRnJhbWUNCitSdGxRdWVyeUF0b21JbkF0b21UYWJsZQ0KK1J0bFF1ZXJ5RGVwdGhTTGlzdA0KK1J0bFF1ZXJ5RW52aXJvbm1lbnRWYXJpYWJsZV9VDQorUnRsUXVlcnlIZWFwSW5mb3JtYXRpb24NCitSdGxRdWVyeUluZm9ybWF0aW9uQWNsDQorUnRsUXVlcnlJbmZvcm1hdGlvbkFjdGl2YXRpb25Db250ZXh0DQorUnRsUXVlcnlJbmZvcm1hdGlvbkFjdGl2ZUFjdGl2YXRpb25Db250ZXh0DQorUnRsUXVlcnlJbnRlcmZhY2VNZW1vcnlTdHJlYW0NCitSdGxRdWVyeVByb2Nlc3NCYWNrVHJhY2VJbmZvcm1hdGlvbg0KK1J0bFF1ZXJ5UHJvY2Vzc0RlYnVnSW5mb3JtYXRpb24NCitSdGxRdWVyeVByb2Nlc3NIZWFwSW5mb3JtYXRpb24NCitSdGxRdWVyeVByb2Nlc3NMb2NrSW5mb3JtYXRpb24NCitSdGxRdWVyeVJlZ2lzdHJ5VmFsdWVzDQorUnRsUXVlcnlTZWN1cml0eU9iamVjdA0KK1J0bFF1ZXJ5VGFnSGVhcA0KK1J0bFF1ZXJ5VGltZVpvbmVJbmZvcm1hdGlvbg0KK1J0bFF1ZXVlQXBjV293NjRUaHJlYWQNCitSdGxRdWV1ZVdvcmtJdGVtDQorUnRsUmFpc2VFeGNlcHRpb24NCitSdGxSYWlzZVN0YXR1cw0KK1J0bFJhbmRvbQ0KK1J0bFJhbmRvbUV4DQorUnRsUmVBbGxvY2F0ZUhlYXANCitSdGxSZWFkTWVtb3J5U3RyZWFtDQorUnRsUmVhZE91dE9mUHJvY2Vzc01lbW9yeVN0cmVhbQ0KK1J0bFJlYWxQcmVkZWNlc3Nvcg0KK1J0bFJlYWxTdWNjZXNzb3INCitSdGxSZWdpc3RlclNlY3VyZU1lbW9yeUNhY2hlQ2FsbGJhY2sNCitSdGxSZWdpc3RlcldhaXQNCitSdGxSZWxlYXNlQWN0aXZhdGlvbkNvbnRleHQNCitSdGxSZWxlYXNlTWVtb3J5U3RyZWFtDQorUnRsUmVsZWFzZVBlYkxvY2sNCitSdGxSZWxlYXNlUHJpdmlsZWdlDQorUnRsUmVsZWFzZVJlbGF0aXZlTmFtZQ0KK1J0bFJlbGVhc2VSZXNvdXJjZQ0KK1J0bFJlbW90ZUNhbGwNCitSdGxSZW1vdmVWZWN0b3JlZENvbnRpbnVlSGFuZGxlcg0KK1J0bFJlbW92ZVZlY3RvcmVkRXhjZXB0aW9uSGFuZGxlcg0KK1J0bFJlc2V0UnRsVHJhbnNsYXRpb25zDQorUnRsUmVzdG9yZUNvbnRleHQNCitSdGxSZXN0b3JlTGFzdFdpbjMyRXJyb3INCitSdGxSZXZlcnRNZW1vcnlTdHJlYW0NCitSdGxSdW5EZWNvZGVVbmljb2RlU3RyaW5nDQorUnRsUnVuRW5jb2RlVW5pY29kZVN0cmluZw0KK1J0bFNlY29uZHNTaW5jZTE5NzBUb1RpbWUNCitSdGxTZWNvbmRzU2luY2UxOTgwVG9UaW1lDQorUnRsU2Vla01lbW9yeVN0cmVhbQ0KK1J0bFNlbGZSZWxhdGl2ZVRvQWJzb2x1dGVTRA0KK1J0bFNlbGZSZWxhdGl2ZVRvQWJzb2x1dGVTRDINCitSdGxTZXRBbGxCaXRzDQorUnRsU2V0QXR0cmlidXRlc1NlY3VyaXR5RGVzY3JpcHRvcg0KK1J0bFNldEJpdHMNCitSdGxTZXRDb250cm9sU2VjdXJpdHlEZXNjcmlwdG9yDQorUnRsU2V0Q3JpdGljYWxTZWN0aW9uU3BpbkNvdW50DQorUnRsU2V0Q3VycmVudERpcmVjdG9yeV9VDQorUnRsU2V0Q3VycmVudEVudmlyb25tZW50DQorUnRsU2V0RGFjbFNlY3VyaXR5RGVzY3JpcHRvcg0KK1J0bFNldEVudmlyb25tZW50U3RyaW5ncw0KK1J0bFNldEVudmlyb25tZW50VmFyaWFibGUNCitSdGxTZXRHcm91cFNlY3VyaXR5RGVzY3JpcHRvcg0KK1J0bFNldEhlYXBJbmZvcm1hdGlvbg0KK1J0bFNldEluZm9ybWF0aW9uQWNsDQorUnRsU2V0SW9Db21wbGV0aW9uQ2FsbGJhY2sNCitSdGxTZXRMYXN0V2luMzJFcnJvcg0KK1J0bFNldExhc3RXaW4zMkVycm9yQW5kTnRTdGF0dXNGcm9tTnRTdGF0dXMNCitSdGxTZXRNZW1vcnlTdHJlYW1TaXplDQorUnRsU2V0T3duZXJTZWN1cml0eURlc2NyaXB0b3INCitSdGxTZXRQcm9jZXNzSXNDcml0aWNhbA0KK1J0bFNldFNhY2xTZWN1cml0eURlc2NyaXB0b3INCitSdGxTZXRTZWN1cml0eURlc2NyaXB0b3JSTUNvbnRyb2wNCitSdGxTZXRTZWN1cml0eU9iamVjdA0KK1J0bFNldFNlY3VyaXR5T2JqZWN0RXgNCitSdGxTZXRUaHJlYWRFcnJvck1vZGUNCitSdGxTZXRUaHJlYWRJc0NyaXRpY2FsDQorUnRsU2V0VGhyZWFkUG9vbFN0YXJ0RnVuYw0KK1J0bFNldFRpbWVab25lSW5mb3JtYXRpb24NCitSdGxTZXRUaW1lcg0KK1J0bFNldFVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcg0KK1J0bFNldFVuaWNvZGVDYWxsb3V0cw0KK1J0bFNldFVzZXJGbGFnc0hlYXANCitSdGxTZXRVc2VyVmFsdWVIZWFwDQorUnRsU2l6ZUhlYXANCitSdGxTcGxheQ0KK1J0bFN0YXJ0UlhhY3QNCitSdGxTdGF0TWVtb3J5U3RyZWFtDQorUnRsU3RyaW5nRnJvbUdVSUQNCitSdGxTdWJBdXRob3JpdHlDb3VudFNpZA0KK1J0bFN1YkF1dGhvcml0eVNpZA0KK1J0bFN1YnRyZWVQcmVkZWNlc3Nvcg0KK1J0bFN1YnRyZWVTdWNjZXNzb3INCitSdGxTeXN0ZW1UaW1lVG9Mb2NhbFRpbWUNCitSdGxUaW1lRmllbGRzVG9UaW1lDQorUnRsVGltZVRvRWxhcHNlZFRpbWVGaWVsZHMNCitSdGxUaW1lVG9TZWNvbmRzU2luY2UxOTcwDQorUnRsVGltZVRvU2Vjb25kc1NpbmNlMTk4MA0KK1J0bFRpbWVUb1RpbWVGaWVsZHMNCitSdGxUcmFjZURhdGFiYXNlQWRkDQorUnRsVHJhY2VEYXRhYmFzZUNyZWF0ZQ0KK1J0bFRyYWNlRGF0YWJhc2VEZXN0cm95DQorUnRsVHJhY2VEYXRhYmFzZUVudW1lcmF0ZQ0KK1J0bFRyYWNlRGF0YWJhc2VGaW5kDQorUnRsVHJhY2VEYXRhYmFzZUxvY2sNCitSdGxUcmFjZURhdGFiYXNlVW5sb2NrDQorUnRsVHJhY2VEYXRhYmFzZVZhbGlkYXRlDQorUnRsVHJ5RW50ZXJDcml0aWNhbFNlY3Rpb24NCitSdGxVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXINCitSdGxVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIyDQorUnRsVW5pY29kZVN0cmluZ1RvQW5zaVNpemUNCitSdGxVbmljb2RlU3RyaW5nVG9BbnNpU3RyaW5nDQorUnRsVW5pY29kZVN0cmluZ1RvQ291bnRlZE9lbVN0cmluZw0KK1J0bFVuaWNvZGVTdHJpbmdUb0ludGVnZXINCitSdGxVbmljb2RlU3RyaW5nVG9PZW1TaXplDQorUnRsVW5pY29kZVN0cmluZ1RvT2VtU3RyaW5nDQorUnRsVW5pY29kZVRvQ3VzdG9tQ1BODQorUnRsVW5pY29kZVRvTXVsdGlCeXRlTg0KK1J0bFVuaWNvZGVUb011bHRpQnl0ZVNpemUNCitSdGxVbmljb2RlVG9PZW1ODQorUnRsVW5pZm9ybQ0KK1J0bFVubG9ja0Jvb3RTdGF0dXNEYXRhDQorUnRsVW5sb2NrSGVhcA0KK1J0bFVubG9ja01lbW9yeVN0cmVhbVJlZ2lvbg0KK1J0bFVud2luZA0KK1J0bFVud2luZEV4DQorUnRsVXBjYXNlVW5pY29kZUNoYXINCitSdGxVcGNhc2VVbmljb2RlU3RyaW5nDQorUnRsVXBjYXNlVW5pY29kZVN0cmluZ1RvQW5zaVN0cmluZw0KK1J0bFVwY2FzZVVuaWNvZGVTdHJpbmdUb0NvdW50ZWRPZW1TdHJpbmcNCitSdGxVcGNhc2VVbmljb2RlU3RyaW5nVG9PZW1TdHJpbmcNCitSdGxVcGNhc2VVbmljb2RlVG9DdXN0b21DUE4NCitSdGxVcGNhc2VVbmljb2RlVG9NdWx0aUJ5dGVODQorUnRsVXBjYXNlVW5pY29kZVRvT2VtTg0KK1J0bFVwZGF0ZVRpbWVyDQorUnRsVXBwZXJDaGFyDQorUnRsVXBwZXJTdHJpbmcNCitSdGxVc2FnZUhlYXANCitSdGxWYWxpZEFjbA0KK1J0bFZhbGlkUmVsYXRpdmVTZWN1cml0eURlc2NyaXB0b3INCitSdGxWYWxpZFNlY3VyaXR5RGVzY3JpcHRvcg0KK1J0bFZhbGlkU2lkDQorUnRsVmFsaWRhdGVIZWFwDQorUnRsVmFsaWRhdGVQcm9jZXNzSGVhcHMNCitSdGxWYWxpZGF0ZVVuaWNvZGVTdHJpbmcNCitSdGxWZXJpZnlWZXJzaW9uSW5mbw0KK1J0bFZpcnR1YWxVbndpbmQNCitSdGxXYWxrRnJhbWVDaGFpbg0KK1J0bFdhbGtIZWFwDQorUnRsV293NjRFbmFibGVGc1JlZGlyZWN0aW9uDQorUnRsV293NjRFbmFibGVGc1JlZGlyZWN0aW9uRXgNCitSdGxXcml0ZU1lbW9yeVN0cmVhbQ0KK1J0bFdyaXRlUmVnaXN0cnlWYWx1ZQ0KK1J0bFplcm9IZWFwDQorUnRsWmVyb01lbW9yeQ0KK1J0bFpvbWJpZnlBY3RpdmF0aW9uQ29udGV4dA0KK1J0bHBBcHBseUxlbmd0aEZ1bmN0aW9uDQorUnRscEVuc3VyZUJ1ZmZlclNpemUNCitSdGxwTm90T3duZXJDcml0aWNhbFNlY3Rpb24NCitSdGxwTnRDcmVhdGVLZXkNCitSdGxwTnRFbnVtZXJhdGVTdWJLZXkNCitSdGxwTnRNYWtlVGVtcG9yYXJ5S2V5DQorUnRscE50T3BlbktleQ0KK1J0bHBOdFF1ZXJ5VmFsdWVLZXkNCitSdGxwTnRTZXRWYWx1ZUtleQ0KK1J0bHBVbldhaXRDcml0aWNhbFNlY3Rpb24NCitSdGxwV2FpdEZvckNyaXRpY2FsU2VjdGlvbg0KK1J0bHhBbnNpU3RyaW5nVG9Vbmljb2RlU2l6ZQ0KK1J0bHhPZW1TdHJpbmdUb1VuaWNvZGVTaXplDQorUnRseFVuaWNvZGVTdHJpbmdUb0Fuc2lTaXplDQorUnRseFVuaWNvZGVTdHJpbmdUb09lbVNpemUNCitWZXJTZXRDb25kaXRpb25NYXNrDQorWndBY2NlcHRDb25uZWN0UG9ydA0KK1p3QWNjZXNzQ2hlY2sNCitad0FjY2Vzc0NoZWNrQW5kQXVkaXRBbGFybQ0KK1p3QWNjZXNzQ2hlY2tCeVR5cGUNCitad0FjY2Vzc0NoZWNrQnlUeXBlQW5kQXVkaXRBbGFybQ0KK1p3QWNjZXNzQ2hlY2tCeVR5cGVSZXN1bHRMaXN0DQorWndBY2Nlc3NDaGVja0J5VHlwZVJlc3VsdExpc3RBbmRBdWRpdEFsYXJtDQorWndBY2Nlc3NDaGVja0J5VHlwZVJlc3VsdExpc3RBbmRBdWRpdEFsYXJtQnlIYW5kbGUNCitad0FkZEF0b20NCitad0FkZEJvb3RFbnRyeQ0KK1p3QWRkRHJpdmVyRW50cnkNCitad0FkanVzdEdyb3Vwc1Rva2VuDQorWndBZGp1c3RQcml2aWxlZ2VzVG9rZW4NCitad0FsZXJ0UmVzdW1lVGhyZWFkDQorWndBbGVydFRocmVhZA0KK1p3QWxsb2NhdGVMb2NhbGx5VW5pcXVlSWQNCitad0FsbG9jYXRlVXNlclBoeXNpY2FsUGFnZXMNCitad0FsbG9jYXRlVXVpZHMNCitad0FsbG9jYXRlVmlydHVhbE1lbW9yeQ0KK1p3QXBwaGVscENhY2hlQ29udHJvbA0KK1p3QXJlTWFwcGVkRmlsZXNUaGVTYW1lDQorWndBc3NpZ25Qcm9jZXNzVG9Kb2JPYmplY3QNCitad0NhbGxiYWNrUmV0dXJuDQorWndDYW5jZWxEZXZpY2VXYWtldXBSZXF1ZXN0DQorWndDYW5jZWxJb0ZpbGUNCitad0NhbmNlbFRpbWVyDQorWndDbGVhckV2ZW50DQorWndDbG9zZQ0KK1p3Q2xvc2VPYmplY3RBdWRpdEFsYXJtDQorWndDb21wYWN0S2V5cw0KK1p3Q29tcGFyZVRva2Vucw0KK1p3Q29tcGxldGVDb25uZWN0UG9ydA0KK1p3Q29tcHJlc3NLZXkNCitad0Nvbm5lY3RQb3J0DQorWndDb250aW51ZQ0KK1p3Q3JlYXRlRGVidWdPYmplY3QNCitad0NyZWF0ZURpcmVjdG9yeU9iamVjdA0KK1p3Q3JlYXRlRXZlbnQNCitad0NyZWF0ZUV2ZW50UGFpcg0KK1p3Q3JlYXRlRmlsZQ0KK1p3Q3JlYXRlSW9Db21wbGV0aW9uDQorWndDcmVhdGVKb2JPYmplY3QNCitad0NyZWF0ZUpvYlNldA0KK1p3Q3JlYXRlS2V5DQorWndDcmVhdGVLZXllZEV2ZW50DQorWndDcmVhdGVNYWlsc2xvdEZpbGUNCitad0NyZWF0ZU11dGFudA0KK1p3Q3JlYXRlTmFtZWRQaXBlRmlsZQ0KK1p3Q3JlYXRlUGFnaW5nRmlsZQ0KK1p3Q3JlYXRlUG9ydA0KK1p3Q3JlYXRlUHJvY2Vzcw0KK1p3Q3JlYXRlUHJvY2Vzc0V4DQorWndDcmVhdGVQcm9maWxlDQorWndDcmVhdGVTZWN0aW9uDQorWndDcmVhdGVTZW1hcGhvcmUNCitad0NyZWF0ZVN5bWJvbGljTGlua09iamVjdA0KK1p3Q3JlYXRlVGhyZWFkDQorWndDcmVhdGVUaW1lcg0KK1p3Q3JlYXRlVG9rZW4NCitad0NyZWF0ZVdhaXRhYmxlUG9ydA0KK1p3RGVidWdBY3RpdmVQcm9jZXNzDQorWndEZWJ1Z0NvbnRpbnVlDQorWndEZWxheUV4ZWN1dGlvbg0KK1p3RGVsZXRlQXRvbQ0KK1p3RGVsZXRlQm9vdEVudHJ5DQorWndEZWxldGVEcml2ZXJFbnRyeQ0KK1p3RGVsZXRlRmlsZQ0KK1p3RGVsZXRlS2V5DQorWndEZWxldGVPYmplY3RBdWRpdEFsYXJtDQorWndEZWxldGVWYWx1ZUtleQ0KK1p3RGV2aWNlSW9Db250cm9sRmlsZQ0KK1p3RGlzcGxheVN0cmluZw0KK1p3RHVwbGljYXRlT2JqZWN0DQorWndEdXBsaWNhdGVUb2tlbg0KK1p3RW51bWVyYXRlQm9vdEVudHJpZXMNCitad0VudW1lcmF0ZURyaXZlckVudHJpZXMNCitad0VudW1lcmF0ZUtleQ0KK1p3RW51bWVyYXRlU3lzdGVtRW52aXJvbm1lbnRWYWx1ZXNFeA0KK1p3RW51bWVyYXRlVmFsdWVLZXkNCitad0V4dGVuZFNlY3Rpb24NCitad0ZpbHRlclRva2VuDQorWndGaW5kQXRvbQ0KK1p3Rmx1c2hCdWZmZXJzRmlsZQ0KK1p3Rmx1c2hJbnN0cnVjdGlvbkNhY2hlDQorWndGbHVzaEtleQ0KK1p3Rmx1c2hWaXJ0dWFsTWVtb3J5DQorWndGbHVzaFdyaXRlQnVmZmVyDQorWndGcmVlVXNlclBoeXNpY2FsUGFnZXMNCitad0ZyZWVWaXJ0dWFsTWVtb3J5DQorWndGc0NvbnRyb2xGaWxlDQorWndHZXRDb250ZXh0VGhyZWFkDQorWndHZXRDdXJyZW50UHJvY2Vzc29yTnVtYmVyDQorWndHZXREZXZpY2VQb3dlclN0YXRlDQorWndHZXRQbHVnUGxheUV2ZW50DQorWndHZXRXcml0ZVdhdGNoDQorWndJbXBlcnNvbmF0ZUFub255bW91c1Rva2VuDQorWndJbXBlcnNvbmF0ZUNsaWVudE9mUG9ydA0KK1p3SW1wZXJzb25hdGVUaHJlYWQNCitad0luaXRpYWxpemVSZWdpc3RyeQ0KK1p3SW5pdGlhdGVQb3dlckFjdGlvbg0KK1p3SXNQcm9jZXNzSW5Kb2INCitad0lzU3lzdGVtUmVzdW1lQXV0b21hdGljDQorWndMaXN0ZW5Qb3J0DQorWndMb2FkRHJpdmVyDQorWndMb2FkS2V5DQorWndMb2FkS2V5Mg0KK1p3TG9hZEtleUV4DQorWndMb2NrRmlsZQ0KK1p3TG9ja1Byb2R1Y3RBY3RpdmF0aW9uS2V5cw0KK1p3TG9ja1JlZ2lzdHJ5S2V5DQorWndMb2NrVmlydHVhbE1lbW9yeQ0KK1p3TWFrZVBlcm1hbmVudE9iamVjdA0KK1p3TWFrZVRlbXBvcmFyeU9iamVjdA0KK1p3TWFwVXNlclBoeXNpY2FsUGFnZXMNCitad01hcFVzZXJQaHlzaWNhbFBhZ2VzU2NhdHRlcg0KK1p3TWFwVmlld09mU2VjdGlvbg0KK1p3TW9kaWZ5Qm9vdEVudHJ5DQorWndNb2RpZnlEcml2ZXJFbnRyeQ0KK1p3Tm90aWZ5Q2hhbmdlRGlyZWN0b3J5RmlsZQ0KK1p3Tm90aWZ5Q2hhbmdlS2V5DQorWndOb3RpZnlDaGFuZ2VNdWx0aXBsZUtleXMNCitad09wZW5EaXJlY3RvcnlPYmplY3QNCitad09wZW5FdmVudA0KK1p3T3BlbkV2ZW50UGFpcg0KK1p3T3BlbkZpbGUNCitad09wZW5Jb0NvbXBsZXRpb24NCitad09wZW5Kb2JPYmplY3QNCitad09wZW5LZXkNCitad09wZW5LZXllZEV2ZW50DQorWndPcGVuTXV0YW50DQorWndPcGVuT2JqZWN0QXVkaXRBbGFybQ0KK1p3T3BlblByb2Nlc3MNCitad09wZW5Qcm9jZXNzVG9rZW4NCitad09wZW5Qcm9jZXNzVG9rZW5FeA0KK1p3T3BlblNlY3Rpb24NCitad09wZW5TZW1hcGhvcmUNCitad09wZW5TeW1ib2xpY0xpbmtPYmplY3QNCitad09wZW5UaHJlYWQNCitad09wZW5UaHJlYWRUb2tlbg0KK1p3T3BlblRocmVhZFRva2VuRXgNCitad09wZW5UaW1lcg0KK1p3UGx1Z1BsYXlDb250cm9sDQorWndQb3dlckluZm9ybWF0aW9uDQorWndQcml2aWxlZ2VDaGVjaw0KK1p3UHJpdmlsZWdlT2JqZWN0QXVkaXRBbGFybQ0KK1p3UHJpdmlsZWdlZFNlcnZpY2VBdWRpdEFsYXJtDQorWndQcm90ZWN0VmlydHVhbE1lbW9yeQ0KK1p3UHVsc2VFdmVudA0KK1p3UXVlcnlBdHRyaWJ1dGVzRmlsZQ0KK1p3UXVlcnlCb290RW50cnlPcmRlcg0KK1p3UXVlcnlCb290T3B0aW9ucw0KK1p3UXVlcnlEZWJ1Z0ZpbHRlclN0YXRlDQorWndRdWVyeURlZmF1bHRMb2NhbGUNCitad1F1ZXJ5RGVmYXVsdFVJTGFuZ3VhZ2UNCitad1F1ZXJ5RGlyZWN0b3J5RmlsZQ0KK1p3UXVlcnlEaXJlY3RvcnlPYmplY3QNCitad1F1ZXJ5RHJpdmVyRW50cnlPcmRlcg0KK1p3UXVlcnlFYUZpbGUNCitad1F1ZXJ5RXZlbnQNCitad1F1ZXJ5RnVsbEF0dHJpYnV0ZXNGaWxlDQorWndRdWVyeUluZm9ybWF0aW9uQXRvbQ0KK1p3UXVlcnlJbmZvcm1hdGlvbkZpbGUNCitad1F1ZXJ5SW5mb3JtYXRpb25Kb2JPYmplY3QNCitad1F1ZXJ5SW5mb3JtYXRpb25Qb3J0DQorWndRdWVyeUluZm9ybWF0aW9uUHJvY2Vzcw0KK1p3UXVlcnlJbmZvcm1hdGlvblRocmVhZA0KK1p3UXVlcnlJbmZvcm1hdGlvblRva2VuDQorWndRdWVyeUluc3RhbGxVSUxhbmd1YWdlDQorWndRdWVyeUludGVydmFsUHJvZmlsZQ0KK1p3UXVlcnlJb0NvbXBsZXRpb24NCitad1F1ZXJ5S2V5DQorWndRdWVyeU11bHRpcGxlVmFsdWVLZXkNCitad1F1ZXJ5TXV0YW50DQorWndRdWVyeU9iamVjdA0KK1p3UXVlcnlPcGVuU3ViS2V5cw0KK1p3UXVlcnlPcGVuU3ViS2V5c0V4DQorWndRdWVyeVBlcmZvcm1hbmNlQ291bnRlcg0KK1p3UXVlcnlQb3J0SW5mb3JtYXRpb25Qcm9jZXNzDQorWndRdWVyeVF1b3RhSW5mb3JtYXRpb25GaWxlDQorWndRdWVyeVNlY3Rpb24NCitad1F1ZXJ5U2VjdXJpdHlPYmplY3QNCitad1F1ZXJ5U2VtYXBob3JlDQorWndRdWVyeVN5bWJvbGljTGlua09iamVjdA0KK1p3UXVlcnlTeXN0ZW1FbnZpcm9ubWVudFZhbHVlDQorWndRdWVyeVN5c3RlbUVudmlyb25tZW50VmFsdWVFeA0KK1p3UXVlcnlTeXN0ZW1JbmZvcm1hdGlvbg0KK1p3UXVlcnlTeXN0ZW1UaW1lDQorWndRdWVyeVRpbWVyDQorWndRdWVyeVRpbWVyUmVzb2x1dGlvbg0KK1p3UXVlcnlWYWx1ZUtleQ0KK1p3UXVlcnlWaXJ0dWFsTWVtb3J5DQorWndRdWVyeVZvbHVtZUluZm9ybWF0aW9uRmlsZQ0KK1p3UXVldWVBcGNUaHJlYWQNCitad1JhaXNlRXhjZXB0aW9uDQorWndSYWlzZUhhcmRFcnJvcg0KK1p3UmVhZEZpbGUNCitad1JlYWRGaWxlU2NhdHRlcg0KK1p3UmVhZFJlcXVlc3REYXRhDQorWndSZWFkVmlydHVhbE1lbW9yeQ0KK1p3UmVnaXN0ZXJUaHJlYWRUZXJtaW5hdGVQb3J0DQorWndSZWxlYXNlS2V5ZWRFdmVudA0KK1p3UmVsZWFzZU11dGFudA0KK1p3UmVsZWFzZVNlbWFwaG9yZQ0KK1p3UmVtb3ZlSW9Db21wbGV0aW9uDQorWndSZW1vdmVQcm9jZXNzRGVidWcNCitad1JlbmFtZUtleQ0KK1p3UmVwbGFjZUtleQ0KK1p3UmVwbHlQb3J0DQorWndSZXBseVdhaXRSZWNlaXZlUG9ydA0KK1p3UmVwbHlXYWl0UmVjZWl2ZVBvcnRFeA0KK1p3UmVwbHlXYWl0UmVwbHlQb3J0DQorWndSZXF1ZXN0RGV2aWNlV2FrZXVwDQorWndSZXF1ZXN0UG9ydA0KK1p3UmVxdWVzdFdhaXRSZXBseVBvcnQNCitad1JlcXVlc3RXYWtldXBMYXRlbmN5DQorWndSZXNldEV2ZW50DQorWndSZXNldFdyaXRlV2F0Y2gNCitad1Jlc3RvcmVLZXkNCitad1Jlc3VtZVByb2Nlc3MNCitad1Jlc3VtZVRocmVhZA0KK1p3U2F2ZUtleQ0KK1p3U2F2ZUtleUV4DQorWndTYXZlTWVyZ2VkS2V5cw0KK1p3U2VjdXJlQ29ubmVjdFBvcnQNCitad1NldEJvb3RFbnRyeU9yZGVyDQorWndTZXRCb290T3B0aW9ucw0KK1p3U2V0Q29udGV4dFRocmVhZA0KK1p3U2V0RGVidWdGaWx0ZXJTdGF0ZQ0KK1p3U2V0RGVmYXVsdEhhcmRFcnJvclBvcnQNCitad1NldERlZmF1bHRMb2NhbGUNCitad1NldERlZmF1bHRVSUxhbmd1YWdlDQorWndTZXREcml2ZXJFbnRyeU9yZGVyDQorWndTZXRFYUZpbGUNCitad1NldEV2ZW50DQorWndTZXRFdmVudEJvb3N0UHJpb3JpdHkNCitad1NldEhpZ2hFdmVudFBhaXINCitad1NldEhpZ2hXYWl0TG93RXZlbnRQYWlyDQorWndTZXRJbmZvcm1hdGlvbkRlYnVnT2JqZWN0DQorWndTZXRJbmZvcm1hdGlvbkZpbGUNCitad1NldEluZm9ybWF0aW9uSm9iT2JqZWN0DQorWndTZXRJbmZvcm1hdGlvbktleQ0KK1p3U2V0SW5mb3JtYXRpb25PYmplY3QNCitad1NldEluZm9ybWF0aW9uUHJvY2Vzcw0KK1p3U2V0SW5mb3JtYXRpb25UaHJlYWQNCitad1NldEluZm9ybWF0aW9uVG9rZW4NCitad1NldEludGVydmFsUHJvZmlsZQ0KK1p3U2V0SW9Db21wbGV0aW9uDQorWndTZXRMZHRFbnRyaWVzDQorWndTZXRMb3dFdmVudFBhaXINCitad1NldExvd1dhaXRIaWdoRXZlbnRQYWlyDQorWndTZXRRdW90YUluZm9ybWF0aW9uRmlsZQ0KK1p3U2V0U2VjdXJpdHlPYmplY3QNCitad1NldFN5c3RlbUVudmlyb25tZW50VmFsdWUNCitad1NldFN5c3RlbUVudmlyb25tZW50VmFsdWVFeA0KK1p3U2V0U3lzdGVtSW5mb3JtYXRpb24NCitad1NldFN5c3RlbVBvd2VyU3RhdGUNCitad1NldFN5c3RlbVRpbWUNCitad1NldFRocmVhZEV4ZWN1dGlvblN0YXRlDQorWndTZXRUaW1lcg0KK1p3U2V0VGltZXJSZXNvbHV0aW9uDQorWndTZXRVdWlkU2VlZA0KK1p3U2V0VmFsdWVLZXkNCitad1NldFZvbHVtZUluZm9ybWF0aW9uRmlsZQ0KK1p3U2h1dGRvd25TeXN0ZW0NCitad1NpZ25hbEFuZFdhaXRGb3JTaW5nbGVPYmplY3QNCitad1N0YXJ0UHJvZmlsZQ0KK1p3U3RvcFByb2ZpbGUNCitad1N1c3BlbmRQcm9jZXNzDQorWndTdXNwZW5kVGhyZWFkDQorWndTeXN0ZW1EZWJ1Z0NvbnRyb2wNCitad1Rlcm1pbmF0ZUpvYk9iamVjdA0KK1p3VGVybWluYXRlUHJvY2Vzcw0KK1p3VGVybWluYXRlVGhyZWFkDQorWndUZXN0QWxlcnQNCitad1RyYWNlRXZlbnQNCitad1RyYW5zbGF0ZUZpbGVQYXRoDQorWndVbmxvYWREcml2ZXINCitad1VubG9hZEtleQ0KK1p3VW5sb2FkS2V5Mg0KK1p3VW5sb2FkS2V5RXgNCitad1VubG9ja0ZpbGUNCitad1VubG9ja1ZpcnR1YWxNZW1vcnkNCitad1VubWFwVmlld09mU2VjdGlvbg0KK1p3VmRtQ29udHJvbA0KK1p3V2FpdEZvckRlYnVnRXZlbnQNCitad1dhaXRGb3JLZXllZEV2ZW50DQorWndXYWl0Rm9yTXVsdGlwbGVPYmplY3RzDQorWndXYWl0Rm9yTXVsdGlwbGVPYmplY3RzMzINCitad1dhaXRGb3JTaW5nbGVPYmplY3QNCitad1dhaXRIaWdoRXZlbnRQYWlyDQorWndXYWl0TG93RXZlbnRQYWlyDQorWndXcml0ZUZpbGUNCitad1dyaXRlRmlsZUdhdGhlcg0KK1p3V3JpdGVSZXF1ZXN0RGF0YQ0KK1p3V3JpdGVWaXJ0dWFsTWVtb3J5DQorWndZaWVsZEV4ZWN1dGlvbg0KK19fQ19zcGVjaWZpY19oYW5kbGVyDQorX19jaGtzdGsNCitfX2lzYXNjaWkNCitfX2lzY3N5bQ0KK19faXNjc3ltZg0KK19fbWlzYWxpZ25lZF9hY2Nlc3MNCitfX3RvYXNjaWkNCitfYXRvaTY0DQorX2ZsdHVzZWQgREFUQQ0KK19pNjR0b2ENCitfaTY0dG93DQorX2l0b2ENCitfaXRvdw0KK19sZmluZA0KK19sb2NhbF91bndpbmQNCitfbHRvYQ0KK19sdG93DQorX21lbWNjcHkNCitfbWVtaWNtcA0KK19zZXRqbXANCitfc2V0am1wZXgNCitfc25wcmludGYNCitfc253cHJpbnRmDQorX3NwbGl0cGF0aA0KK19zdHJjbXBpDQorX3N0cmljbXANCitfc3RybHdyDQorX3N0cm5pY21wDQorX3N0cnVwcg0KK190b2xvd2VyDQorX3RvdXBwZXINCitfdWk2NHRvYQ0KK191aTY0dG93DQorX3VsdG9hDQorX3VsdG93DQorX3ZzY3dwcmludGYNCitfdnNucHJpbnRmDQorX3ZzbndwcmludGYNCitfd2NzaWNtcA0KK193Y3Nsd3INCitfd2NzbmljbXANCitfd2NzdG91aTY0DQorX3djc3Vwcg0KK193dG9pDQorX3d0b2k2NA0KK193dG9sDQorYWJzDQorYXRhbg0KK2F0b2kNCithdG9sDQorYnNlYXJjaA0KK2NlaWwNCitjb3MNCitmYWJzDQorZmxvb3INCitpc2FsbnVtDQoraXNhbHBoYQ0KK2lzY250cmwNCitpc2RpZ2l0DQoraXNncmFwaA0KK2lzbG93ZXINCitpc3ByaW50DQoraXNwdW5jdA0KK2lzc3BhY2UNCitpc3VwcGVyDQoraXN3YWxwaGENCitpc3djdHlwZQ0KK2lzd2RpZ2l0DQoraXN3bG93ZXINCitpc3dzcGFjZQ0KK2lzd3hkaWdpdA0KK2lzeGRpZ2l0DQorbGFicw0KK2xvZw0KK2xvbmdqbXANCittYnN0b3djcw0KK21lbWNocg0KK21lbWNtcA0KK21lbWNweQ0KK21lbW1vdmUNCittZW1zZXQNCitwb3cNCitxc29ydA0KK3Npbg0KK3NwcmludGYNCitzcXJ0DQorc3NjYW5mDQorc3RyY2F0DQorc3RyY2hyDQorc3RyY21wDQorc3RyY3B5DQorc3RyY3Nwbg0KK3N0cmxlbg0KK3N0cm5jYXQNCitzdHJuY21wDQorc3RybmNweQ0KK3N0cnBicmsNCitzdHJyY2hyDQorc3Ryc3BuDQorc3Ryc3RyDQorc3RydG9sDQorc3RydG91bA0KK3N3cHJpbnRmDQordGFuDQordG9sb3dlcg0KK3RvdXBwZXINCit0b3dsb3dlcg0KK3Rvd3VwcGVyDQordkRiZ1ByaW50RXgNCit2RGJnUHJpbnRFeFdpdGhQcmVmaXgNCit2c3ByaW50Zg0KK3djc2NhdA0KK3djc2Nocg0KK3djc2NtcA0KK3djc2NweQ0KK3djc2NzcG4NCit3Y3NsZW4NCit3Y3NuY2F0DQord2NzbmNtcA0KK3djc25jcHkNCit3Y3NwYnJrDQord2NzcmNocg0KK3djc3Nwbg0KK3djc3N0cg0KK3djc3RvbA0KK3djc3RvbWJzDQord2NzdG91bA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL250ZHNhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbnRkc2FwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWNhNDM0NAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL250ZHNhcGkuZGVmCkBAIC0wLDAgKzEsMTEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE5URFNBUEkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5URFNBUEkuZGxsDQorRVhQT1JUUw0KK0RzQWRkU2lkSGlzdG9yeUENCitEc0FkZFNpZEhpc3RvcnlXDQorRHNCaW5kQQ0KK0RzQmluZFRvSVNUR0ENCitEc0JpbmRUb0lTVEdXDQorRHNCaW5kVw0KK0RzQmluZFdpdGhDcmVkQQ0KK0RzQmluZFdpdGhDcmVkVw0KK0RzQmluZFdpdGhTcG5BDQorRHNCaW5kV2l0aFNwbkV4QQ0KK0RzQmluZFdpdGhTcG5FeFcNCitEc0JpbmRXaXRoU3BuVw0KK0RzQmluZGluZ1NldFRpbWVvdXQNCitEc0NsaWVudE1ha2VTcG5Gb3JUYXJnZXRTZXJ2ZXJBDQorRHNDbGllbnRNYWtlU3BuRm9yVGFyZ2V0U2VydmVyVw0KK0RzQ3JhY2tOYW1lc0ENCitEc0NyYWNrTmFtZXNXDQorRHNDcmFja1NwbjJBDQorRHNDcmFja1NwbjJXDQorRHNDcmFja1NwbjNXDQorRHNDcmFja1NwbkENCitEc0NyYWNrU3BuVw0KK0RzQ3JhY2tVbnF1b3RlZE1hbmdsZWRSZG5BDQorRHNDcmFja1VucXVvdGVkTWFuZ2xlZFJkblcNCitEc0ZyZWVEb21haW5Db250cm9sbGVySW5mb0ENCitEc0ZyZWVEb21haW5Db250cm9sbGVySW5mb1cNCitEc0ZyZWVOYW1lUmVzdWx0QQ0KK0RzRnJlZU5hbWVSZXN1bHRXDQorRHNGcmVlUGFzc3dvcmRDcmVkZW50aWFscw0KK0RzRnJlZVNjaGVtYUd1aWRNYXBBDQorRHNGcmVlU2NoZW1hR3VpZE1hcFcNCitEc0ZyZWVTcG5BcnJheUENCitEc0ZyZWVTcG5BcnJheVcNCitEc0dldERvbWFpbkNvbnRyb2xsZXJJbmZvQQ0KK0RzR2V0RG9tYWluQ29udHJvbGxlckluZm9XDQorRHNHZXRSZG5XDQorRHNHZXRTcG5BDQorRHNHZXRTcG5XDQorRHNJbmhlcml0U2VjdXJpdHlJZGVudGl0eUENCitEc0luaGVyaXRTZWN1cml0eUlkZW50aXR5Vw0KK0RzSXNNYW5nbGVkRG5BDQorRHNJc01hbmdsZWREblcNCitEc0lzTWFuZ2xlZFJkblZhbHVlQQ0KK0RzSXNNYW5nbGVkUmRuVmFsdWVXDQorRHNMaXN0RG9tYWluc0luU2l0ZUENCitEc0xpc3REb21haW5zSW5TaXRlVw0KK0RzTGlzdEluZm9Gb3JTZXJ2ZXJBDQorRHNMaXN0SW5mb0ZvclNlcnZlclcNCitEc0xpc3RSb2xlc0ENCitEc0xpc3RSb2xlc1cNCitEc0xpc3RTZXJ2ZXJzRm9yRG9tYWluSW5TaXRlQQ0KK0RzTGlzdFNlcnZlcnNGb3JEb21haW5JblNpdGVXDQorRHNMaXN0U2VydmVyc0luU2l0ZUENCitEc0xpc3RTZXJ2ZXJzSW5TaXRlVw0KK0RzTGlzdFNpdGVzQQ0KK0RzTGlzdFNpdGVzVw0KK0RzTG9nRW50cnkNCitEc01ha2VQYXNzd29yZENyZWRlbnRpYWxzQQ0KK0RzTWFrZVBhc3N3b3JkQ3JlZGVudGlhbHNXDQorRHNNYWtlU3BuQQ0KK0RzTWFrZVNwblcNCitEc01hcFNjaGVtYUd1aWRzQQ0KK0RzTWFwU2NoZW1hR3VpZHNXDQorRHNRdWVyeVNpdGVzQnlDb3N0QQ0KK0RzUXVlcnlTaXRlc0J5Q29zdFcNCitEc1F1ZXJ5U2l0ZXNGcmVlDQorRHNRdW90ZVJkblZhbHVlQQ0KK0RzUXVvdGVSZG5WYWx1ZVcNCitEc1JlbW92ZURzRG9tYWluQQ0KK0RzUmVtb3ZlRHNEb21haW5XDQorRHNSZW1vdmVEc1NlcnZlckENCitEc1JlbW92ZURzU2VydmVyVw0KK0RzUmVwbGljYUFkZEENCitEc1JlcGxpY2FBZGRXDQorRHNSZXBsaWNhQ29uc2lzdGVuY3lDaGVjaw0KK0RzUmVwbGljYURlbEENCitEc1JlcGxpY2FEZWxXDQorRHNSZXBsaWNhRnJlZUluZm8NCitEc1JlcGxpY2FHZXRJbmZvMlcNCitEc1JlcGxpY2FHZXRJbmZvVw0KK0RzUmVwbGljYU1vZGlmeUENCitEc1JlcGxpY2FNb2RpZnlXDQorRHNSZXBsaWNhU3luY0ENCitEc1JlcGxpY2FTeW5jQWxsQQ0KK0RzUmVwbGljYVN5bmNBbGxXDQorRHNSZXBsaWNhU3luY1cNCitEc1JlcGxpY2FVcGRhdGVSZWZzQQ0KK0RzUmVwbGljYVVwZGF0ZVJlZnNXDQorRHNSZXBsaWNhVmVyaWZ5T2JqZWN0c0ENCitEc1JlcGxpY2FWZXJpZnlPYmplY3RzVw0KK0RzU2VydmVyUmVnaXN0ZXJTcG5BDQorRHNTZXJ2ZXJSZWdpc3RlclNwblcNCitEc1VuQmluZEENCitEc1VuQmluZFcNCitEc1VucXVvdGVSZG5WYWx1ZUENCitEc1VucXVvdGVSZG5WYWx1ZVcNCitEc1dyaXRlQWNjb3VudFNwbkENCitEc1dyaXRlQWNjb3VudFNwblcNCitEc2FvcEJpbmQNCitEc2FvcEJpbmRXaXRoQ3JlZA0KK0RzYW9wQmluZFdpdGhTcG4NCitEc2FvcEV4ZWN1dGVTY3JpcHQNCitEc2FvcFByZXBhcmVTY3JpcHQNCitEc2FvcFVuQmluZA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL250ZHNiY2xpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL250ZHNiY2xpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MTEyYWZmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbnRkc2JjbGkuZGVmCkBAIC0wLDAgKzEsMzYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbnRkc2JjbGkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG50ZHNiY2xpLmRsbA0KK0VYUE9SVFMNCitEc0JhY2t1cENsb3NlDQorRHNCYWNrdXBFbmQNCitEc0JhY2t1cEZyZWUNCitEc0JhY2t1cEdldEJhY2t1cExvZ3NBDQorRHNCYWNrdXBHZXRCYWNrdXBMb2dzVw0KK0RzQmFja3VwR2V0RGF0YWJhc2VOYW1lc0ENCitEc0JhY2t1cEdldERhdGFiYXNlTmFtZXNXDQorRHNCYWNrdXBPcGVuRmlsZUENCitEc0JhY2t1cE9wZW5GaWxlVw0KK0RzQmFja3VwUHJlcGFyZUENCitEc0JhY2t1cFByZXBhcmVXDQorRHNCYWNrdXBSZWFkDQorRHNCYWNrdXBUcnVuY2F0ZUxvZ3MNCitEc0lzTlREU09ubGluZUENCitEc0lzTlREU09ubGluZVcNCitEc1Jlc3RvcmVDaGVja0V4cGlyeVRva2VuDQorRHNSZXN0b3JlRW5kDQorRHNSZXN0b3JlR2V0RGF0YWJhc2VMb2NhdGlvbnNBDQorRHNSZXN0b3JlR2V0RGF0YWJhc2VMb2NhdGlvbnNXDQorRHNSZXN0b3JlUHJlcGFyZUENCitEc1Jlc3RvcmVQcmVwYXJlVw0KK0RzUmVzdG9yZVJlZ2lzdGVyQQ0KK0RzUmVzdG9yZVJlZ2lzdGVyQ29tcGxldGUNCitEc1Jlc3RvcmVSZWdpc3RlclcNCitEc1NldEF1dGhJZGVudGl0eUENCitEc1NldEF1dGhJZGVudGl0eVcNCitEc1NldEN1cnJlbnRCYWNrdXBMb2dBDQorRHNTZXRDdXJyZW50QmFja3VwTG9nVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL250ZXZ0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL250ZXZ0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zM2YwYzc2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbnRldnQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTlRFVlQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5URVZULmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL250ZnNkcnYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbnRmc2Rydi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTkyYjk1NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL250ZnNkcnYuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbnRmc2Rydi5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbnRmc2Rydi5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9udGxhbm1hbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9udGxhbm1hbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2M1MjNlYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL250bGFubWFuLmRlZgpAQCAtMCwwICsxLDM5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE5UTEFOTUFOLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBOVExBTk1BTi5kbGwNCitFWFBPUlRTDQorTlBHZXRDb25uZWN0aW9uDQorTlBHZXRDYXBzDQorRGxsTWFpbg0KK0lfU3lzdGVtRm9jdXNEaWFsb2cNCitOUEdldFVzZXINCitOUEFkZENvbm5lY3Rpb24NCitOUENhbmNlbENvbm5lY3Rpb24NCitJc0Rmc1BhdGhFeA0KK05QQWRkQ29ubmVjdGlvbjNGb3JDU0NBZ2VudA0KK05QQ2FuY2VsQ29ubmVjdGlvbkZvckNTQ0FnZW50DQorU2VydmVyQnJvd3NlRGlhbG9nQTANCitTaGFyZUFzRGlhbG9nQTANCitTaGFyZUNyZWF0ZQ0KK1NoYXJlTWFuYWdlDQorU2hhcmVTdG9wDQorU3RvcFNoYXJlRGlhbG9nQTANCitOUFByb3BlcnR5RGlhbG9nDQorTlBHZXREaXJlY3RvcnlUeXBlDQorTlBEaXJlY3RvcnlOb3RpZnkNCitOUEdldFByb3BlcnR5VGV4dA0KK05QT3BlbkVudW0NCitOUEVudW1SZXNvdXJjZQ0KK05QQ2xvc2VFbnVtDQorTlBGb3JtYXROZXR3b3JrTmFtZQ0KK05QQWRkQ29ubmVjdGlvbjMNCitOUEdldFVuaXZlcnNhbE5hbWUNCitOUEdldFJlc291cmNlUGFyZW50DQorTlBHZXRDb25uZWN0aW9uUGVyZm9ybWFuY2UNCitOUEdldFJlc291cmNlSW5mb3JtYXRpb24NCitOUEdldFJlY29ubmVjdEZsYWdzDQorTlBHZXRDb25uZWN0aW9uMw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL250bGFudWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbnRsYW51aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzU1MWU0OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL250bGFudWkuZGVmCkBAIC0wLDAgKzEsMTggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTlRMQU5VSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTlRMQU5VSS5kbGwNCitFWFBPUlRTDQorU2hhcmVBc0RpYWxvZ0EwDQorU3RvcFNoYXJlRGlhbG9nQTANCitEbGxNYWluDQorSV9TeXN0ZW1Gb2N1c0RpYWxvZw0KK05QR2V0UHJvcGVydHlUZXh0DQorTlBQcm9wZXJ0eURpYWxvZw0KK1NlcnZlckJyb3dzZURpYWxvZ0EwDQorU2hhcmVDcmVhdGUNCitTaGFyZU1hbmFnZQ0KK1NoYXJlU3RvcA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL250bGFudWkyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL250bGFudWkyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNWI4MWUxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbnRsYW51aTIuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbmV0b2Jqcy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbmV0b2Jqcy5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9udGxzYXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL250bHNhcGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZjZTA0YTkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9udGxzYXBpLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG50bHNhcGkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG50bHNhcGkuZGxsDQorRVhQT1JUUw0KK050TFNGcmVlSGFuZGxlDQorTnRMaWNlbnNlUmVxdWVzdEENCitOdExpY2Vuc2VSZXF1ZXN0Vw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL250bWFydGEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbnRtYXJ0YS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2JmZDk0ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL250bWFydGEuZGVmCkBAIC0wLDAgKzEsNTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTlRNQVJUQS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTlRNQVJUQS5kbGwNCitFWFBPUlRTDQorQWNjRnJlZUluZGV4QXJyYXkNCitBY2NHZXRJbmhlcml0YW5jZVNvdXJjZQ0KK0FjY1Byb3ZIYW5kbGVHcmFudEFjY2Vzc1JpZ2h0cw0KK0FjY1Jld3JpdGVHZXRFeHBsaWNpdEVudHJpZXNGcm9tQWNsDQorQWNjUmV3cml0ZUdldEhhbmRsZVJpZ2h0cw0KK0FjY1Jld3JpdGVHZXROYW1lZFJpZ2h0cw0KK0FjY1Jld3JpdGVTZXRFbnRyaWVzSW5BY2wNCitBY2NSZXdyaXRlU2V0SGFuZGxlUmlnaHRzDQorQWNjUmV3cml0ZVNldE5hbWVkUmlnaHRzDQorQWNjVHJlZVJlc2V0TmFtZWRTZWN1cml0eUluZm8NCitBY2NDb252ZXJ0QWNjZXNzTWFza1RvQWN0cmxBY2Nlc3MNCitBY2NDb252ZXJ0QWNjZXNzVG9TRA0KK0FjY0NvbnZlcnRBY2Nlc3NUb1NlY3VyaXR5RGVzY3JpcHRvcg0KK0FjY0NvbnZlcnRBY2xUb0FjY2Vzcw0KK0FjY0NvbnZlcnRTRFRvQWNjZXNzDQorQWNjR2V0QWNjZXNzRm9yVHJ1c3RlZQ0KK0FjY0dldEV4cGxpY2l0RW50cmllcw0KK0FjY0xvb2t1cEFjY291bnROYW1lDQorQWNjTG9va3VwQWNjb3VudFNpZA0KK0FjY0xvb2t1cEFjY291bnRUcnVzdGVlDQorQWNjUHJvdkNhbmNlbE9wZXJhdGlvbg0KK0FjY1Byb3ZHZXRBY2Nlc3NJbmZvUGVyT2JqZWN0VHlwZQ0KK0FjY1Byb3ZHZXRBbGxSaWdodHMNCitBY2NQcm92R2V0Q2FwYWJpbGl0aWVzDQorQWNjUHJvdkdldE9wZXJhdGlvblJlc3VsdHMNCitBY2NQcm92R2V0VHJ1c3RlZXNBY2Nlc3MNCitBY2NQcm92R3JhbnRBY2Nlc3NSaWdodHMNCitBY2NQcm92SGFuZGxlR2V0QWNjZXNzSW5mb1Blck9iamVjdFR5cGUNCitBY2NQcm92SGFuZGxlR2V0QWxsUmlnaHRzDQorQWNjUHJvdkhhbmRsZUdldFRydXN0ZWVzQWNjZXNzDQorQWNjUHJvdkhhbmRsZUlzQWNjZXNzQXVkaXRlZA0KK0FjY1Byb3ZIYW5kbGVJc09iamVjdEFjY2Vzc2libGUNCitBY2NQcm92SGFuZGxlUmV2b2tlQWNjZXNzUmlnaHRzDQorQWNjUHJvdkhhbmRsZVJldm9rZUF1ZGl0UmlnaHRzDQorQWNjUHJvdkhhbmRsZVNldEFjY2Vzc1JpZ2h0cw0KK0FjY1Byb3ZJc0FjY2Vzc0F1ZGl0ZWQNCitBY2NQcm92SXNPYmplY3RBY2Nlc3NpYmxlDQorQWNjUHJvdlJldm9rZUFjY2Vzc1JpZ2h0cw0KK0FjY1Byb3ZSZXZva2VBdWRpdFJpZ2h0cw0KK0FjY1Byb3ZTZXRBY2Nlc3NSaWdodHMNCitBY2NTZXRFbnRyaWVzSW5BTGlzdA0KK0V2ZW50R3VpZFRvTmFtZQ0KK0V2ZW50TmFtZUZyZWUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9udG1zYXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL250bXNhcGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMxZDNmZjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9udG1zYXBpLmRlZgpAQCAtMCwwICsxLDgzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE5UTVNBUEkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5UTVNBUEkuZGxsDQorRVhQT1JUUw0KK0FjY2Vzc050bXNMaWJyYXJ5RG9vcg0KK0FkZE50bXNNZWRpYVR5cGUNCitBbGxvY2F0ZU50bXNNZWRpYQ0KK0JlZ2luTnRtc0RldmljZUNoYW5nZURldGVjdGlvbg0KK0NhbmNlbE50bXNMaWJyYXJ5UmVxdWVzdA0KK0NhbmNlbE50bXNPcGVyYXRvclJlcXVlc3QNCitDaGFuZ2VOdG1zTWVkaWFUeXBlDQorQ2xlYW5OdG1zRHJpdmUNCitDbG9zZU50bXNOb3RpZmljYXRpb24NCitDbG9zZU50bXNTZXNzaW9uDQorQ3JlYXRlTnRtc01lZGlhQQ0KK0NyZWF0ZU50bXNNZWRpYVBvb2xBDQorQ3JlYXRlTnRtc01lZGlhUG9vbFcNCitDcmVhdGVOdG1zTWVkaWFXDQorRGVhbGxvY2F0ZU50bXNNZWRpYQ0KK0RlY29tbWlzc2lvbk50bXNNZWRpYQ0KK0RlbGV0ZU50bXNEcml2ZQ0KK0RlbGV0ZU50bXNMaWJyYXJ5DQorRGVsZXRlTnRtc01lZGlhDQorRGVsZXRlTnRtc01lZGlhUG9vbA0KK0RlbGV0ZU50bXNNZWRpYVR5cGUNCitEZWxldGVOdG1zUmVxdWVzdHMNCitEaXNhYmxlTnRtc09iamVjdA0KK0Rpc21vdW50TnRtc0RyaXZlDQorRGlzbW91bnROdG1zTWVkaWENCitEb0VqZWN0RnJvbVNBRHJpdmVXDQorRWplY3REaXNrRnJvbVNBRHJpdmVBDQorRWplY3REaXNrRnJvbVNBRHJpdmVXDQorRWplY3ROdG1zQ2xlYW5lcg0KK0VqZWN0TnRtc01lZGlhDQorRW5hYmxlTnRtc09iamVjdA0KK0VuZE50bXNEZXZpY2VDaGFuZ2VEZXRlY3Rpb24NCitFbnVtZXJhdGVOdG1zT2JqZWN0DQorRXhwb3J0TnRtc0RhdGFiYXNlDQorR2V0TnRtc01lZGlhUG9vbE5hbWVBDQorR2V0TnRtc01lZGlhUG9vbE5hbWVXDQorR2V0TnRtc09iamVjdEF0dHJpYnV0ZUENCitHZXROdG1zT2JqZWN0QXR0cmlidXRlVw0KK0dldE50bXNPYmplY3RJbmZvcm1hdGlvbkENCitHZXROdG1zT2JqZWN0SW5mb3JtYXRpb25XDQorR2V0TnRtc09iamVjdFNlY3VyaXR5DQorR2V0TnRtc1JlcXVlc3RPcmRlcg0KK0dldE50bXNVSU9wdGlvbnNBDQorR2V0TnRtc1VJT3B0aW9uc1cNCitHZXRWb2x1bWVzRnJvbURyaXZlQQ0KK0dldFZvbHVtZXNGcm9tRHJpdmVXDQorSWRlbnRpZnlOdG1zU2xvdA0KK0ltcG9ydE50bXNEYXRhYmFzZQ0KK0luamVjdE50bXNDbGVhbmVyDQorSW5qZWN0TnRtc01lZGlhDQorSW52ZW50b3J5TnRtc0xpYnJhcnkNCitNb3VudE50bXNNZWRpYQ0KK01vdmVUb050bXNNZWRpYVBvb2wNCitPcGVuTnRtc05vdGlmaWNhdGlvbg0KK09wZW5OdG1zU2Vzc2lvbkENCitPcGVuTnRtc1Nlc3Npb25XDQorUmVsZWFzZU50bXNDbGVhbmVyU2xvdA0KK1Jlc2VydmVOdG1zQ2xlYW5lclNsb3QNCitTYXRpc2Z5TnRtc09wZXJhdG9yUmVxdWVzdA0KK1NldE50bXNEZXZpY2VDaGFuZ2VEZXRlY3Rpb24NCitTZXROdG1zTWVkaWFDb21wbGV0ZQ0KK1NldE50bXNPYmplY3RBdHRyaWJ1dGVBDQorU2V0TnRtc09iamVjdEF0dHJpYnV0ZVcNCitTZXROdG1zT2JqZWN0SW5mb3JtYXRpb25BDQorU2V0TnRtc09iamVjdEluZm9ybWF0aW9uVw0KK1NldE50bXNPYmplY3RTZWN1cml0eQ0KK1NldE50bXNSZXF1ZXN0T3JkZXINCitTZXROdG1zVUlPcHRpb25zQQ0KK1NldE50bXNVSU9wdGlvbnNXDQorU3VibWl0TnRtc09wZXJhdG9yUmVxdWVzdEENCitTdWJtaXROdG1zT3BlcmF0b3JSZXF1ZXN0Vw0KK1N3YXBOdG1zTWVkaWENCitVcGRhdGVOdG1zT21pZEluZm8NCitXYWl0Rm9yTnRtc05vdGlmaWNhdGlvbg0KK1dhaXRGb3JOdG1zT3BlcmF0b3JSZXF1ZXN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbnRtc2RiYS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9udG1zZGJhLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMTczNmM5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbnRtc2RiYS5kZWYKQEAgLTAsMCArMSwyNDAwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE5UTVNEQkEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5UTVNEQkEuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYkxpc3Q6Ok1hcDo6TWFwKHZvaWQpIF9fcHRyNjQNCis/PzBNYXBATnRtc0RiTGlzdEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYXRhYmFzZTo6TnRtc0RhdGFiYXNlKGNsYXNzIE50bXNEYXRhYmFzZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBOdG1zRGF0YWJhc2VAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpOdG1zRGJDaGFuZ2VyKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCxjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ME50bXNEYkNoYW5nZXJAQFFFQUFAUEVBVk50bXNEYkRhdGFDdHh0QEBBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpOdG1zRGJDaGFuZ2VyKHZvaWQpIF9fcHRyNjQNCis/PzBOdG1zRGJDaGFuZ2VyQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiQ2hhbmdlclR5cGU6Ok50bXNEYkNoYW5nZXJUeXBlKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCxjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ME50bXNEYkNoYW5nZXJUeXBlQEBRRUFBQFBFQVZOdG1zRGJEYXRhQ3R4dEBAQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiQ2hhbmdlclR5cGU6Ok50bXNEYkNoYW5nZXJUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBOdG1zRGJDaGFuZ2VyVHlwZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYkNvbXB1dGVyOjpOdG1zRGJDb21wdXRlcihjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQsY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBOdG1zRGJDb21wdXRlckBAUUVBQUBQRUFWTnRtc0RiRGF0YUN0eHRAQEFFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYkNvbXB1dGVyOjpOdG1zRGJDb21wdXRlcih2b2lkKSBfX3B0cjY0DQorPz8wTnRtc0RiQ29tcHV0ZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJEYXRhQ3R4dDo6TnRtc0RiRGF0YUN0eHQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/ME50bXNEYkRhdGFDdHh0QEBRRUFBQFBFQkcwQFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJEcml2ZTo6TnRtc0RiRHJpdmUoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0LGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc0RiRHJpdmVAQFFFQUFAUEVBVk50bXNEYkRhdGFDdHh0QEBBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJEcml2ZTo6TnRtc0RiRHJpdmUodm9pZCkgX19wdHI2NA0KKz8/ME50bXNEYkRyaXZlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiRHJpdmVUeXBlOjpOdG1zRGJEcml2ZVR5cGUoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0LGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc0RiRHJpdmVUeXBlQEBRRUFBQFBFQVZOdG1zRGJEYXRhQ3R4dEBAQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiRHJpdmVUeXBlOjpOdG1zRGJEcml2ZVR5cGUodm9pZCkgX19wdHI2NA0KKz8/ME50bXNEYkRyaXZlVHlwZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYkVycm9yOjpOdG1zRGJFcnJvcih2b2lkKSBfX3B0cjY0DQorPz8wTnRtc0RiRXJyb3JAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJGaWxlOjpOdG1zRGJGaWxlKGNsYXNzIE50bXNEYkZpbGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc0RiRmlsZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYkd1aWQ6Ok50bXNEYkd1aWQoc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ME50bXNEYkd1aWRAQFFFQUFAQUVCVV9HVUlEQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYkd1aWQ6Ok50bXNEYkd1aWQoY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBOdG1zRGJHdWlkQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiR3VpZDo6TnRtc0RiR3VpZChjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/ME50bXNEYkd1aWRAQFFFQUFAUEVCREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiR3VpZDo6TnRtc0RiR3VpZCh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/ME50bXNEYkd1aWRAQFFFQUFAUEVCRUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiR3VpZDo6TnRtc0RiR3VpZChzdHJ1Y3QgX0dVSUQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc0RiR3VpZEBAUUVBQUBQRUJVX0dVSURAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiR3VpZDo6TnRtc0RiR3VpZCh2b2lkKSBfX3B0cjY0DQorPz8wTnRtc0RiR3VpZEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYklFRG9vcjo6TnRtc0RiSUVEb29yKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCxjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ME50bXNEYklFRG9vckBAUUVBQUBQRUFWTnRtc0RiRGF0YUN0eHRAQEFFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYklFRG9vcjo6TnRtc0RiSUVEb29yKHZvaWQpIF9fcHRyNjQNCis/PzBOdG1zRGJJRURvb3JAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJJRVBvcnQ6Ok50bXNEYklFUG9ydChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQsY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBOdG1zRGJJRVBvcnRAQFFFQUFAUEVBVk50bXNEYkRhdGFDdHh0QEBBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJJRVBvcnQ6Ok50bXNEYklFUG9ydCh2b2lkKSBfX3B0cjY0DQorPz8wTnRtc0RiSUVQb3J0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06Ok50bXNEYkxpYldvcmtJdGVtKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCxjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ME50bXNEYkxpYldvcmtJdGVtQEBRRUFBQFBFQVZOdG1zRGJEYXRhQ3R4dEBAQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06Ok50bXNEYkxpYldvcmtJdGVtKHZvaWQpIF9fcHRyNjQNCis/PzBOdG1zRGJMaWJXb3JrSXRlbUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYkxpYnJhcnk6Ok50bXNEYkxpYnJhcnkoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0LGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc0RiTGlicmFyeUBAUUVBQUBQRUFWTnRtc0RiRGF0YUN0eHRAQEFFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYkxpYnJhcnk6Ok50bXNEYkxpYnJhcnkodm9pZCkgX19wdHI2NA0KKz8/ME50bXNEYkxpYnJhcnlAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJMaW5rZWRHdWlkOjpOdG1zRGJMaW5rZWRHdWlkKGNsYXNzIE50bXNEYkxpbmtlZEd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc0RiTGlua2VkR3VpZEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYkxpbmtlZEd1aWQ6Ok50bXNEYkxpbmtlZEd1aWQodm9pZCkgX19wdHI2NA0KKz8/ME50bXNEYkxpbmtlZEd1aWRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJMaXN0OjpOdG1zRGJMaXN0KGNsYXNzIE50bXNEYkxpc3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc0RiTGlzdEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYkxpc3Q6Ok50bXNEYkxpc3QoaW50KSBfX3B0cjY0DQorPz8wTnRtc0RiTGlzdEBAUUVBQUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJMb2dpY2FsTWVkaWE6Ok50bXNEYkxvZ2ljYWxNZWRpYShjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQsY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBOdG1zRGJMb2dpY2FsTWVkaWFAQFFFQUFAUEVBVk50bXNEYkRhdGFDdHh0QEBBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJMb2dpY2FsTWVkaWE6Ok50bXNEYkxvZ2ljYWxNZWRpYSh2b2lkKSBfX3B0cjY0DQorPz8wTnRtc0RiTG9naWNhbE1lZGlhQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiTWVkaWFQb29sOjpOdG1zRGJNZWRpYVBvb2woY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0LGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc0RiTWVkaWFQb29sQEBRRUFBQFBFQVZOdG1zRGJEYXRhQ3R4dEBAQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiTWVkaWFQb29sOjpOdG1zRGJNZWRpYVBvb2wodm9pZCkgX19wdHI2NA0KKz8/ME50bXNEYk1lZGlhUG9vbEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYk1lZGlhVHlwZTo6TnRtc0RiTWVkaWFUeXBlKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCxjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ME50bXNEYk1lZGlhVHlwZUBAUUVBQUBQRUFWTnRtc0RiRGF0YUN0eHRAQEFFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYk1lZGlhVHlwZTo6TnRtc0RiTWVkaWFUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBOdG1zRGJNZWRpYVR5cGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJPYmpUeXBlRGVmOjpOdG1zRGJPYmpUeXBlRGVmKGNoYXIgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBOdG1zRGJSZWNvcmRUeXBlICogX19wdHI2NCkgX19wdHI2NA0KKz8/ME50bXNEYk9ialR5cGVEZWZAQFFFQUFAUEVBRDBLS1BFQVZOdG1zRGJSZWNvcmRUeXBlQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYk9iamVjdDo6TnRtc0RiT2JqZWN0KGNsYXNzIE50bXNEYk9iamVjdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBOdG1zRGJPYmplY3RAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJPYmplY3Q6Ok50bXNEYk9iamVjdCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wTnRtc0RiT2JqZWN0QEBRRUFBQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYk9iamVjdDo6TnRtc0RiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc0RiT2JqZWN0QEBRRUFBQFBFQVZOdG1zRGJEYXRhQ3R4dEBAS0FFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYk9iamVjdDo6TnRtc0RiT2JqZWN0KHZvaWQpIF9fcHRyNjQNCis/PzBOdG1zRGJPYmplY3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6Ok50bXNEYk9wUmVxdWVzdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQsY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBOdG1zRGJPcFJlcXVlc3RAQFFFQUFAUEVBVk50bXNEYkRhdGFDdHh0QEBBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6Ok50bXNEYk9wUmVxdWVzdCh2b2lkKSBfX3B0cjY0DQorPz8wTnRtc0RiT3BSZXF1ZXN0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUGFydGl0aW9uOjpOdG1zRGJQYXJ0aXRpb24oY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0LGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc0RiUGFydGl0aW9uQEBRRUFBQFBFQVZOdG1zRGJEYXRhQ3R4dEBAQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUGFydGl0aW9uOjpOdG1zRGJQYXJ0aXRpb24odm9pZCkgX19wdHI2NA0KKz8/ME50bXNEYlBhcnRpdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6Ok50bXNEYlBoeXNpY2FsTWVkaWEoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0LGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc0RiUGh5c2ljYWxNZWRpYUBAUUVBQUBQRUFWTnRtc0RiRGF0YUN0eHRAQEFFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6Ok50bXNEYlBoeXNpY2FsTWVkaWEodm9pZCkgX19wdHI2NA0KKz8/ME50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJQcm9wQmluYXJ5OjpOdG1zRGJQcm9wQmluYXJ5KHZvaWQpIF9fcHRyNjQNCis/PzBOdG1zRGJQcm9wQmluYXJ5QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUHJvcENoYXI6Ok50bXNEYlByb3BDaGFyKHZvaWQpIF9fcHRyNjQNCis/PzBOdG1zRGJQcm9wQ2hhckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlByb3BEYXRhVHlwZTo6TnRtc0RiUHJvcERhdGFUeXBlKHNob3J0KSBfX3B0cjY0DQorPz8wTnRtc0RiUHJvcERhdGFUeXBlQEBRRUFBQEZAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlByb3BEYXRhVHlwZTo6TnRtc0RiUHJvcERhdGFUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBOdG1zRGJQcm9wRGF0YVR5cGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJQcm9wRG91YmxlOjpOdG1zRGJQcm9wRG91YmxlKHZvaWQpIF9fcHRyNjQNCis/PzBOdG1zRGJQcm9wRG91YmxlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUHJvcEd1aWQ6Ok50bXNEYlByb3BHdWlkKHZvaWQpIF9fcHRyNjQNCis/PzBOdG1zRGJQcm9wR3VpZEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlByb3BIZWFkZXI6Ok50bXNEYlByb3BIZWFkZXIodm9pZCkgX19wdHI2NA0KKz8/ME50bXNEYlByb3BIZWFkZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJQcm9wTGFyZ2VJbnQ6Ok50bXNEYlByb3BMYXJnZUludCh2b2lkKSBfX3B0cjY0DQorPz8wTnRtc0RiUHJvcExhcmdlSW50QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUHJvcExvbmc6Ok50bXNEYlByb3BMb25nKHZvaWQpIF9fcHRyNjQNCis/PzBOdG1zRGJQcm9wTG9uZ0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlByb3BSZWxhdGlvbjo6TnRtc0RiUHJvcFJlbGF0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzBOdG1zRGJQcm9wUmVsYXRpb25AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJQcm9wU2hvcnQ6Ok50bXNEYlByb3BTaG9ydCh2b2lkKSBfX3B0cjY0DQorPz8wTnRtc0RiUHJvcFNob3J0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUHJvcFRpbWVEYXRlOjpOdG1zRGJQcm9wVGltZURhdGUodm9pZCkgX19wdHI2NA0KKz8/ME50bXNEYlByb3BUaW1lRGF0ZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlByb3BlcnR5OjpOdG1zRGJQcm9wZXJ0eShjbGFzcyBOdG1zRGJSZWNvcmRQcm9wICogX19wdHI2NCkgX19wdHI2NA0KKz8/ME50bXNEYlByb3BlcnR5QEBRRUFBQFBFQVZOdG1zRGJSZWNvcmRQcm9wQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlByb3BlcnR5OjpOdG1zRGJQcm9wZXJ0eSh2b2lkKSBfX3B0cjY0DQorPz8wTnRtc0RiUHJvcGVydHlAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJQcm9wZXJ0eVZhbHVlOjpOdG1zRGJQcm9wZXJ0eVZhbHVlKGxvbmcpIF9fcHRyNjQNCis/PzBOdG1zRGJQcm9wZXJ0eVZhbHVlQEBRRUFBQEpAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlByb3BlcnR5VmFsdWU6Ok50bXNEYlByb3BlcnR5VmFsdWUoY2xhc3MgTnRtc0RiUmVjb3JkUHJvcExpc3QgKiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/PzBOdG1zRGJQcm9wZXJ0eVZhbHVlQEBRRUFBQFBFQVZOdG1zRGJSZWNvcmRQcm9wTGlzdEBASkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUmVjb3JkS2V5OjpOdG1zRGJSZWNvcmRLZXkoY2xhc3MgTnRtc0RiUmVjb3JkS2V5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ME50bXNEYlJlY29yZEtleUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlJlY29yZEtleTo6TnRtc0RiUmVjb3JkS2V5KGNsYXNzIE50bXNEYlJlY29yZFR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc0RiUmVjb3JkS2V5QEBRRUFBQEFFQlZOdG1zRGJSZWNvcmRUeXBlQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlJlY29yZEtleTo6TnRtc0RiUmVjb3JkS2V5KHNob3J0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBOdG1zRGJSZWNvcmRLZXlAQFFFQUFARktAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlJlY29yZEtleTo6TnRtc0RiUmVjb3JkS2V5KHZvaWQpIF9fcHRyNjQNCis/PzBOdG1zRGJSZWNvcmRLZXlAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJSZWNvcmRLZXlMaXN0OjpOdG1zRGJSZWNvcmRLZXlMaXN0KGNsYXNzIE50bXNEYlJlY29yZEtleUxpc3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc0RiUmVjb3JkS2V5TGlzdEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlJlY29yZEtleUxpc3Q6Ok50bXNEYlJlY29yZEtleUxpc3Qodm9pZCkgX19wdHI2NA0KKz8/ME50bXNEYlJlY29yZEtleUxpc3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpOdG1zRGJSZWNvcmRQcm9wKHZvaWQpIF9fcHRyNjQNCis/PzBOdG1zRGJSZWNvcmRQcm9wQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcExpc3Q6Ok50bXNEYlJlY29yZFByb3BMaXN0KGNsYXNzIE50bXNEYlJlY29yZFByb3BMaXN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ME50bXNEYlJlY29yZFByb3BMaXN0QEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcExpc3Q6Ok50bXNEYlJlY29yZFByb3BMaXN0KGxvbmcpIF9fcHRyNjQNCis/PzBOdG1zRGJSZWNvcmRQcm9wTGlzdEBAUUVBQUBKQFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wTGlzdDo6TnRtc0RiUmVjb3JkUHJvcExpc3Qodm9pZCkgX19wdHI2NA0KKz8/ME50bXNEYlJlY29yZFByb3BMaXN0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUmVjb3JkUmV2OjpOdG1zRGJSZWNvcmRSZXYodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/ME50bXNEYlJlY29yZFJldkBAUUVBQUBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJSZWNvcmRSZXY6Ok50bXNEYlJlY29yZFJldih2b2lkKSBfX3B0cjY0DQorPz8wTnRtc0RiUmVjb3JkUmV2QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUmVjb3JkVHlwZTo6TnRtc0RiUmVjb3JkVHlwZShzaG9ydCkgX19wdHI2NA0KKz8/ME50bXNEYlJlY29yZFR5cGVAQFFFQUFARkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUmVjb3JkVHlwZTo6TnRtc0RiUmVjb3JkVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8wTnRtc0RiUmVjb3JkVHlwZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlJlY29yZFVuaXF1ZUtleTo6TnRtc0RiUmVjb3JkVW5pcXVlS2V5KGNsYXNzIE50bXNEYlJlY29yZFVuaXF1ZUtleSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBOdG1zRGJSZWNvcmRVbmlxdWVLZXlAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJSZWNvcmRVbmlxdWVLZXk6Ok50bXNEYlJlY29yZFVuaXF1ZUtleShjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ME50bXNEYlJlY29yZFVuaXF1ZUtleUBAUUVBQUBBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJSZWNvcmRVbmlxdWVLZXk6Ok50bXNEYlJlY29yZFVuaXF1ZUtleShjbGFzcyBOdG1zRGJSZWNvcmRLZXkgY29uc3QgJiBfX3B0cjY0LGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc0RiUmVjb3JkVW5pcXVlS2V5QEBRRUFBQEFFQlZOdG1zRGJSZWNvcmRLZXlAQEFFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlJlY29yZFVuaXF1ZUtleTo6TnRtc0RiUmVjb3JkVW5pcXVlS2V5KHZvaWQpIF9fcHRyNjQNCis/PzBOdG1zRGJSZWNvcmRVbmlxdWVLZXlAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJTZWxlY3Rpb25TZXQ6Ok50bXNEYlNlbGVjdGlvblNldChjbGFzcyBOdG1zRGJTZWxlY3Rpb25TZXQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc0RiU2VsZWN0aW9uU2V0QEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiU2VsZWN0aW9uU2V0OjpOdG1zRGJTZWxlY3Rpb25TZXQoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBOdG1zRGJTZWxlY3Rpb25TZXRAQFFFQUFAUEVBVk50bXNEYkRhdGFDdHh0QEBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJTZWxlY3Rpb25TZXQ6Ok50bXNEYlNlbGVjdGlvblNldCh2b2lkKSBfX3B0cjY0DQorPz8wTnRtc0RiU2VsZWN0aW9uU2V0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiU3RvcmFnZVNsb3Q6Ok50bXNEYlN0b3JhZ2VTbG90KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCxjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ME50bXNEYlN0b3JhZ2VTbG90QEBRRUFBQFBFQVZOdG1zRGJEYXRhQ3R4dEBAQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiU3RvcmFnZVNsb3Q6Ok50bXNEYlN0b3JhZ2VTbG90KHZvaWQpIF9fcHRyNjQNCis/PzBOdG1zRGJTdG9yYWdlU2xvdEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlN0cmluZzo6TnRtc0RiU3RyaW5nKGNsYXNzIE50bXNEYlN0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBOdG1zRGJTdHJpbmdAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJTdHJpbmc6Ok50bXNEYlN0cmluZyhjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/ME50bXNEYlN0cmluZ0BAUUVBQUBQRUJEQFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJTdHJpbmc6Ok50bXNEYlN0cmluZyh2b2lkKSBfX3B0cjY0DQorPz8wTnRtc0RiU3RyaW5nQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiU3RyaW5nOjpOdG1zRGJTdHJpbmcodW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz8/ME50bXNEYlN0cmluZ0BAUUVBQUBfS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiVHlwZUd1aWQ6Ok50bXNEYlR5cGVHdWlkKHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBOdG1zRGJUeXBlR3VpZEBAUUVBQUBBRUJVX0dVSURAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiVHlwZUd1aWQ6Ok50bXNEYlR5cGVHdWlkKGNsYXNzIE50bXNEYlR5cGVHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ME50bXNEYlR5cGVHdWlkQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiVHlwZUd1aWQ6Ok50bXNEYlR5cGVHdWlkKGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc0RiVHlwZUd1aWRAQFFFQUFAQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiVHlwZUd1aWQ6Ok50bXNEYlR5cGVHdWlkKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc0RiVHlwZUd1aWRAQFFFQUFAUEVCREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiVHlwZUd1aWQ6Ok50bXNEYlR5cGVHdWlkKHZvaWQpIF9fcHRyNjQNCis/PzBOdG1zRGJUeXBlR3VpZEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlVJRGVzdGluYXRpb246Ok50bXNEYlVJRGVzdGluYXRpb24oY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0LGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc0RiVUlEZXN0aW5hdGlvbkBAUUVBQUBQRUFWTnRtc0RiRGF0YUN0eHRAQEFFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlVJRGVzdGluYXRpb246Ok50bXNEYlVJRGVzdGluYXRpb24odm9pZCkgX19wdHI2NA0KKz8/ME50bXNEYlVJRGVzdGluYXRpb25AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zUHJvcE1ldGFJbmZvOjpOdG1zUHJvcE1ldGFJbmZvKGxvbmcsY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBOdG1zUHJvcE1ldGFJbmZvQEBRRUFBQEpQRUJEQFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zVHJhbnNhY3Rpb246Ok50bXNUcmFuc2FjdGlvbihjbGFzcyBOdG1zVHJhbnNhY3Rpb24gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTnRtc1RyYW5zYWN0aW9uQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiTGlzdDo6TWFwOjp+TWFwKHZvaWQpIF9fcHRyNjQNCis/PzFNYXBATnRtc0RiTGlzdEBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgTnRtc0RiQ2hhbmdlcjo6fk50bXNEYkNoYW5nZXIodm9pZCkgX19wdHI2NA0KKz8/MU50bXNEYkNoYW5nZXJAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE50bXNEYkNoYW5nZXJUeXBlOjp+TnRtc0RiQ2hhbmdlclR5cGUodm9pZCkgX19wdHI2NA0KKz8/MU50bXNEYkNoYW5nZXJUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBOdG1zRGJDb21wdXRlcjo6fk50bXNEYkNvbXB1dGVyKHZvaWQpIF9fcHRyNjQNCis/PzFOdG1zRGJDb21wdXRlckBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYkRhdGFDdHh0Ojp+TnRtc0RiRGF0YUN0eHQodm9pZCkgX19wdHI2NA0KKz8/MU50bXNEYkRhdGFDdHh0QEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBOdG1zRGJEcml2ZTo6fk50bXNEYkRyaXZlKHZvaWQpIF9fcHRyNjQNCis/PzFOdG1zRGJEcml2ZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgTnRtc0RiRHJpdmVUeXBlOjp+TnRtc0RiRHJpdmVUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFOdG1zRGJEcml2ZVR5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE50bXNEYklFRG9vcjo6fk50bXNEYklFRG9vcih2b2lkKSBfX3B0cjY0DQorPz8xTnRtc0RiSUVEb29yQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBOdG1zRGJJRVBvcnQ6On5OdG1zRGJJRVBvcnQodm9pZCkgX19wdHI2NA0KKz8/MU50bXNEYklFUG9ydEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06On5OdG1zRGJMaWJXb3JrSXRlbSh2b2lkKSBfX3B0cjY0DQorPz8xTnRtc0RiTGliV29ya0l0ZW1AQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE50bXNEYkxpYnJhcnk6On5OdG1zRGJMaWJyYXJ5KHZvaWQpIF9fcHRyNjQNCis/PzFOdG1zRGJMaWJyYXJ5QEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiTGlua2VkR3VpZDo6fk50bXNEYkxpbmtlZEd1aWQodm9pZCkgX19wdHI2NA0KKz8/MU50bXNEYkxpbmtlZEd1aWRAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE50bXNEYkxpc3Q6On5OdG1zRGJMaXN0KHZvaWQpIF9fcHRyNjQNCis/PzFOdG1zRGJMaXN0QEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBOdG1zRGJMb2dpY2FsTWVkaWE6On5OdG1zRGJMb2dpY2FsTWVkaWEodm9pZCkgX19wdHI2NA0KKz8/MU50bXNEYkxvZ2ljYWxNZWRpYUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgTnRtc0RiTWVkaWFQb29sOjp+TnRtc0RiTWVkaWFQb29sKHZvaWQpIF9fcHRyNjQNCis/PzFOdG1zRGJNZWRpYVBvb2xAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE50bXNEYk1lZGlhVHlwZTo6fk50bXNEYk1lZGlhVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xTnRtc0RiTWVkaWFUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBOdG1zRGJPYmplY3Q6On5OdG1zRGJPYmplY3Qodm9pZCkgX19wdHI2NA0KKz8/MU50bXNEYk9iamVjdEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgTnRtc0RiT3BSZXF1ZXN0Ojp+TnRtc0RiT3BSZXF1ZXN0KHZvaWQpIF9fcHRyNjQNCis/PzFOdG1zRGJPcFJlcXVlc3RAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE50bXNEYlBhcnRpdGlvbjo6fk50bXNEYlBhcnRpdGlvbih2b2lkKSBfX3B0cjY0DQorPz8xTnRtc0RiUGFydGl0aW9uQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjp+TnRtc0RiUGh5c2ljYWxNZWRpYSh2b2lkKSBfX3B0cjY0DQorPz8xTnRtc0RiUGh5c2ljYWxNZWRpYUBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlByb3BCaW5hcnk6On5OdG1zRGJQcm9wQmluYXJ5KHZvaWQpIF9fcHRyNjQNCis/PzFOdG1zRGJQcm9wQmluYXJ5QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUHJvcENoYXI6On5OdG1zRGJQcm9wQ2hhcih2b2lkKSBfX3B0cjY0DQorPz8xTnRtc0RiUHJvcENoYXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJQcm9wRG91YmxlOjp+TnRtc0RiUHJvcERvdWJsZSh2b2lkKSBfX3B0cjY0DQorPz8xTnRtc0RiUHJvcERvdWJsZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlByb3BHdWlkOjp+TnRtc0RiUHJvcEd1aWQodm9pZCkgX19wdHI2NA0KKz8/MU50bXNEYlByb3BHdWlkQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUHJvcEhlYWRlcjo6fk50bXNEYlByb3BIZWFkZXIodm9pZCkgX19wdHI2NA0KKz8/MU50bXNEYlByb3BIZWFkZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJQcm9wTGFyZ2VJbnQ6On5OdG1zRGJQcm9wTGFyZ2VJbnQodm9pZCkgX19wdHI2NA0KKz8/MU50bXNEYlByb3BMYXJnZUludEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlByb3BMb25nOjp+TnRtc0RiUHJvcExvbmcodm9pZCkgX19wdHI2NA0KKz8/MU50bXNEYlByb3BMb25nQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUHJvcFJlY29yZENsYXNzOjp+TnRtc0RiUHJvcFJlY29yZENsYXNzKHZvaWQpIF9fcHRyNjQNCis/PzFOdG1zRGJQcm9wUmVjb3JkQ2xhc3NAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJQcm9wUmVsYXRpb246On5OdG1zRGJQcm9wUmVsYXRpb24odm9pZCkgX19wdHI2NA0KKz8/MU50bXNEYlByb3BSZWxhdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlByb3BTaG9ydDo6fk50bXNEYlByb3BTaG9ydCh2b2lkKSBfX3B0cjY0DQorPz8xTnRtc0RiUHJvcFNob3J0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUHJvcFRpbWVEYXRlOjp+TnRtc0RiUHJvcFRpbWVEYXRlKHZvaWQpIF9fcHRyNjQNCis/PzFOdG1zRGJQcm9wVGltZURhdGVAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE50bXNEYlByb3BlcnR5VmFsdWU6On5OdG1zRGJQcm9wZXJ0eVZhbHVlKHZvaWQpIF9fcHRyNjQNCis/PzFOdG1zRGJQcm9wZXJ0eVZhbHVlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBOdG1zRGJSZWNvcmRLZXlMaXN0Ojp+TnRtc0RiUmVjb3JkS2V5TGlzdCh2b2lkKSBfX3B0cjY0DQorPz8xTnRtc0RiUmVjb3JkS2V5TGlzdEBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6On5OdG1zRGJSZWNvcmRQcm9wKHZvaWQpIF9fcHRyNjQNCis/PzFOdG1zRGJSZWNvcmRQcm9wQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcExpc3Q6On5OdG1zRGJSZWNvcmRQcm9wTGlzdCh2b2lkKSBfX3B0cjY0DQorPz8xTnRtc0RiUmVjb3JkUHJvcExpc3RAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE50bXNEYlNlbGVjdGlvblNldDo6fk50bXNEYlNlbGVjdGlvblNldCh2b2lkKSBfX3B0cjY0DQorPz8xTnRtc0RiU2VsZWN0aW9uU2V0QEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBOdG1zRGJTdG9yYWdlU2xvdDo6fk50bXNEYlN0b3JhZ2VTbG90KHZvaWQpIF9fcHRyNjQNCis/PzFOdG1zRGJTdG9yYWdlU2xvdEBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlN0cmluZzo6fk50bXNEYlN0cmluZyh2b2lkKSBfX3B0cjY0DQorPz8xTnRtc0RiU3RyaW5nQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBOdG1zRGJVSURlc3RpbmF0aW9uOjp+TnRtc0RiVUlEZXN0aW5hdGlvbih2b2lkKSBfX3B0cjY0DQorPz8xTnRtc0RiVUlEZXN0aW5hdGlvbkBAVUVBQUBYWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJMaXN0OjpNYXAgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiTGlzdDo6TWFwOjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RiTGlzdDo6TWFwIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE1hcEBOdG1zRGJMaXN0QEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGF0YWJhc2UgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RhdGFiYXNlOjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RhdGFiYXNlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE50bXNEYXRhYmFzZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkNoYW5nZXIgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiQ2hhbmdlcjo6b3BlcmF0b3I9KGNsYXNzIE50bXNEYkNoYW5nZXIgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiQ2hhbmdlckBAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkNoYW5nZXJUeXBlICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYkNoYW5nZXJUeXBlOjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RiQ2hhbmdlclR5cGUgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiQ2hhbmdlclR5cGVAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJDb21wdXRlciAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJDb21wdXRlcjo6b3BlcmF0b3I9KGNsYXNzIE50bXNEYkNvbXB1dGVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE50bXNEYkNvbXB1dGVyQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiRGF0YUN0eHQgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiRGF0YUN0eHQ6Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJEYXRhQ3R4dCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROdG1zRGJEYXRhQ3R4dEBAUUVBQUFFQlYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkRyaXZlICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYkRyaXZlOjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RiRHJpdmUgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiRHJpdmVAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJEcml2ZVR5cGUgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiRHJpdmVUeXBlOjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RiRHJpdmVUeXBlICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE50bXNEYkRyaXZlVHlwZUBAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkVycm9yICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYkVycm9yOjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RiRXJyb3IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiRXJyb3JAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJFcnJvciAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJFcnJvcjo6b3BlcmF0b3I9KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzROdG1zRGJFcnJvckBAUUVBQUFFQVYwQEtAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJGaWxlICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYkZpbGU6Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJGaWxlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE50bXNEYkZpbGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJHdWlkICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYkd1aWQ6Om9wZXJhdG9yPShzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiR3VpZEBAUUVBQUFFQVYwQEFFQlVfR1VJREBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiR3VpZCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJHdWlkOjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROdG1zRGJHdWlkQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiR3VpZCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJHdWlkOjpvcGVyYXRvcj0oY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROdG1zRGJHdWlkQEBRRUFBQUVBVjBAUEVCREBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYklFRG9vciAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJJRURvb3I6Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJJRURvb3IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiSUVEb29yQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiSUVQb3J0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYklFUG9ydDo6b3BlcmF0b3I9KGNsYXNzIE50bXNEYklFUG9ydCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROdG1zRGJJRVBvcnRAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJMaWJXb3JrSXRlbSAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6b3BlcmF0b3I9KGNsYXNzIE50bXNEYkxpYldvcmtJdGVtIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE50bXNEYkxpYldvcmtJdGVtQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiTGlicmFyeSAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RiTGlicmFyeSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROdG1zRGJMaWJyYXJ5QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiTGlua2VkR3VpZCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJMaW5rZWRHdWlkOjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RiTGlua2VkR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROdG1zRGJMaW5rZWRHdWlkQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiR3VpZCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJMaW5rZWRHdWlkOjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROdG1zRGJMaW5rZWRHdWlkQEBRRUFBQUVBVk50bXNEYkd1aWRAQEFFQlYxQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkxpc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiTGlzdDo6b3BlcmF0b3I9KGNsYXNzIE50bXNEYkxpc3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiTGlzdEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkxpc3RJdGVtICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYkxpc3RJdGVtOjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RiTGlzdEl0ZW0gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiTGlzdEl0ZW1AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJMb2dpY2FsTWVkaWEgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiTG9naWNhbE1lZGlhOjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RiTG9naWNhbE1lZGlhIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE50bXNEYkxvZ2ljYWxNZWRpYUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYk1lZGlhUG9vbCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJNZWRpYVBvb2w6Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJNZWRpYVBvb2wgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiTWVkaWFQb29sQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiTWVkaWFUeXBlICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYk1lZGlhVHlwZTo6b3BlcmF0b3I9KGNsYXNzIE50bXNEYk1lZGlhVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROdG1zRGJNZWRpYVR5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJPYmpUeXBlRGVmICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYk9ialR5cGVEZWY6Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJPYmpUeXBlRGVmIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE50bXNEYk9ialR5cGVEZWZAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJPYmplY3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RiT2JqZWN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE50bXNEYk9iamVjdEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYk9wUmVxdWVzdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJPcFJlcXVlc3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiT3BSZXF1ZXN0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUGFydGl0aW9uICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlBhcnRpdGlvbjo6b3BlcmF0b3I9KGNsYXNzIE50bXNEYlBhcnRpdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROdG1zRGJQYXJ0aXRpb25AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJQaHlzaWNhbE1lZGlhICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJQaHlzaWNhbE1lZGlhICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJQcm9wQmluYXJ5ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlByb3BCaW5hcnk6Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJQcm9wQmluYXJ5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE50bXNEYlByb3BCaW5hcnlAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJQcm9wQ2hhciAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJQcm9wQ2hhcjo6b3BlcmF0b3I9KGNsYXNzIE50bXNEYlByb3BDaGFyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE50bXNEYlByb3BDaGFyQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUHJvcERhdGFUeXBlICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlByb3BEYXRhVHlwZTo6b3BlcmF0b3I9KGNsYXNzIE50bXNEYlByb3BEYXRhVHlwZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROdG1zRGJQcm9wRGF0YVR5cGVAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJQcm9wRGF0YVR5cGUgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUHJvcERhdGFUeXBlOjpvcGVyYXRvcj0oc2hvcnQpIF9fcHRyNjQNCis/PzROdG1zRGJQcm9wRGF0YVR5cGVAQFFFQUFBRUFWMEBGQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUHJvcERvdWJsZSAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJQcm9wRG91YmxlOjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RiUHJvcERvdWJsZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROdG1zRGJQcm9wRG91YmxlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUHJvcEd1aWQgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUHJvcEd1aWQ6Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJQcm9wR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROdG1zRGJQcm9wR3VpZEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlByb3BIZWFkZXIgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUHJvcEhlYWRlcjo6b3BlcmF0b3I9KGNsYXNzIE50bXNEYlByb3BIZWFkZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiUHJvcEhlYWRlckBAUUVBQUFFQlYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlByb3BMYXJnZUludCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJQcm9wTGFyZ2VJbnQ6Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJQcm9wTGFyZ2VJbnQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiUHJvcExhcmdlSW50QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUHJvcExvbmcgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUHJvcExvbmc6Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJQcm9wTG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROdG1zRGJQcm9wTG9uZ0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlByb3BSZWNvcmRDbGFzcyAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJQcm9wUmVjb3JkQ2xhc3M6Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJQcm9wUmVjb3JkQ2xhc3MgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiUHJvcFJlY29yZENsYXNzQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUHJvcFJlbGF0aW9uICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlByb3BSZWxhdGlvbjo6b3BlcmF0b3I9KGNsYXNzIE50bXNEYlByb3BSZWxhdGlvbiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROdG1zRGJQcm9wUmVsYXRpb25AQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJQcm9wU2hvcnQgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUHJvcFNob3J0OjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RiUHJvcFNob3J0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE50bXNEYlByb3BTaG9ydEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlByb3BUaW1lRGF0ZSAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJQcm9wVGltZURhdGU6Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJQcm9wVGltZURhdGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiUHJvcFRpbWVEYXRlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUHJvcGVydHkgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUHJvcGVydHk6Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJQcm9wZXJ0eSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROdG1zRGJQcm9wZXJ0eUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlByb3BlcnR5VmFsdWUgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUHJvcGVydHlWYWx1ZTo6b3BlcmF0b3I9KHNob3J0KSBfX3B0cjY0DQorPz80TnRtc0RiUHJvcGVydHlWYWx1ZUBAUUVBQUFFQlYwQEZAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJQcm9wZXJ0eVZhbHVlIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlByb3BlcnR5VmFsdWU6Om9wZXJhdG9yPSh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz8/NE50bXNEYlByb3BlcnR5VmFsdWVAQFFFQUFBRUJWMEBHQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUHJvcGVydHlWYWx1ZSBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJQcm9wZXJ0eVZhbHVlOjpvcGVyYXRvcj0oaW50KSBfX3B0cjY0DQorPz80TnRtc0RiUHJvcGVydHlWYWx1ZUBAUUVBQUFFQlYwQEhAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJQcm9wZXJ0eVZhbHVlIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlByb3BlcnR5VmFsdWU6Om9wZXJhdG9yPSh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzROdG1zRGJQcm9wZXJ0eVZhbHVlQEBRRUFBQUVCVjBASUBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlByb3BlcnR5VmFsdWUgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUHJvcGVydHlWYWx1ZTo6b3BlcmF0b3I9KGxvbmcpIF9fcHRyNjQNCis/PzROdG1zRGJQcm9wZXJ0eVZhbHVlQEBRRUFBQUVCVjBASkBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlByb3BlcnR5VmFsdWUgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUHJvcGVydHlWYWx1ZTo6b3BlcmF0b3I9KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzROdG1zRGJQcm9wZXJ0eVZhbHVlQEBRRUFBQUVCVjBAS0BaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlByb3BlcnR5VmFsdWUgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUHJvcGVydHlWYWx1ZTo6b3BlcmF0b3I9KGZsb2F0KSBfX3B0cjY0DQorPz80TnRtc0RiUHJvcGVydHlWYWx1ZUBAUUVBQUFFQlYwQE1AWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJQcm9wZXJ0eVZhbHVlIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlByb3BlcnR5VmFsdWU6Om9wZXJhdG9yPShkb3VibGUpIF9fcHRyNjQNCis/PzROdG1zRGJQcm9wZXJ0eVZhbHVlQEBRRUFBQUVCVjBATkBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlByb3BlcnR5VmFsdWUgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUHJvcGVydHlWYWx1ZTo6b3BlcmF0b3I9KGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiUHJvcGVydHlWYWx1ZUBAUUVBQUFFQlYwQFBFQkRAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIE50bXNEYlJlY29yZFByb3AgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUHJvcGVydHlWYWx1ZTo6b3BlcmF0b3I9KGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiUHJvcGVydHlWYWx1ZUBAVUVBQUFFQlZOdG1zRGJSZWNvcmRQcm9wQEBBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUmVjb3JkS2V5ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlJlY29yZEtleTo6b3BlcmF0b3I9KGNsYXNzIE50bXNEYlJlY29yZFR5cGUgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiUmVjb3JkS2V5QEBRRUFBQUVBVjBAQUVBVk50bXNEYlJlY29yZFR5cGVAQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlJlY29yZEtleSAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJSZWNvcmRLZXk6Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJSZWNvcmRLZXkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiUmVjb3JkS2V5QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUmVjb3JkS2V5ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlJlY29yZEtleTo6b3BlcmF0b3I9KHNob3J0KSBfX3B0cjY0DQorPz80TnRtc0RiUmVjb3JkS2V5QEBRRUFBQUVBVjBARkBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlJlY29yZEtleSAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJSZWNvcmRLZXk6Om9wZXJhdG9yPSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz80TnRtc0RiUmVjb3JkS2V5QEBRRUFBQUVBVjBAS0BaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlJlY29yZEtleUxpc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUmVjb3JkS2V5TGlzdDo6b3BlcmF0b3I9KGNsYXNzIE50bXNEYlJlY29yZEtleUxpc3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiUmVjb3JkS2V5TGlzdEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlJlY29yZFByb3AgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6b3BlcmF0b3I9KGNsYXNzIE50bXNEYlJlY29yZFByb3AgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiUmVjb3JkUHJvcEBAUUVBQUFFQlYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlJlY29yZFByb3AgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6b3BlcmF0b3I9KGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiUmVjb3JkUHJvcEBAUUVBQUFFQlYwQEFFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJSZWNvcmRQcm9wIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6Om9wZXJhdG9yPShzaG9ydCkgX19wdHI2NA0KKz8/NE50bXNEYlJlY29yZFByb3BAQFFFQUFBRUJWMEBGQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUmVjb3JkUHJvcCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/PzROdG1zRGJSZWNvcmRQcm9wQEBRRUFBQUVCVjBAR0BaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlJlY29yZFByb3AgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6b3BlcmF0b3I9KGludCkgX19wdHI2NA0KKz8/NE50bXNEYlJlY29yZFByb3BAQFFFQUFBRUJWMEBIQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUmVjb3JkUHJvcCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpvcGVyYXRvcj0odW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz80TnRtc0RiUmVjb3JkUHJvcEBAUUVBQUFFQlYwQElAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJSZWNvcmRQcm9wIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6Om9wZXJhdG9yPShsb25nKSBfX3B0cjY0DQorPz80TnRtc0RiUmVjb3JkUHJvcEBAUUVBQUFFQlYwQEpAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJSZWNvcmRQcm9wIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6Om9wZXJhdG9yPSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz80TnRtc0RiUmVjb3JkUHJvcEBAUUVBQUFFQlYwQEtAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJSZWNvcmRQcm9wIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6Om9wZXJhdG9yPShmbG9hdCkgX19wdHI2NA0KKz8/NE50bXNEYlJlY29yZFByb3BAQFFFQUFBRUJWMEBNQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUmVjb3JkUHJvcCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpvcGVyYXRvcj0oZG91YmxlKSBfX3B0cjY0DQorPz80TnRtc0RiUmVjb3JkUHJvcEBAUUVBQUFFQlYwQE5AWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJSZWNvcmRQcm9wIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6Om9wZXJhdG9yPSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROdG1zRGJSZWNvcmRQcm9wQEBRRUFBQUVCVjBAUEVBR0BaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlJlY29yZFByb3AgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6b3BlcmF0b3I9KGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiUmVjb3JkUHJvcEBAUUVBQUFFQlYwQFBFQkRAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJSZWNvcmRQcm9wIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6Om9wZXJhdG9yPSh1bmlvbiBfTEFSR0VfSU5URUdFUikgX19wdHI2NA0KKz8/NE50bXNEYlJlY29yZFByb3BAQFFFQUFBRUJWMEBUX0xBUkdFX0lOVEVHRVJAQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlJlY29yZFByb3AgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6b3BlcmF0b3I9KHN0cnVjdCBfU1lTVEVNVElNRSkgX19wdHI2NA0KKz8/NE50bXNEYlJlY29yZFByb3BAQFFFQUFBRUJWMEBVX1NZU1RFTVRJTUVAQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlJlY29yZFByb3BMaXN0IGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3BMaXN0OjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RiUmVjb3JkUHJvcExpc3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiUmVjb3JkUHJvcExpc3RAQFFFQUFBRUJWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJSZWNvcmRSZXYgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUmVjb3JkUmV2OjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RiUmVjb3JkUmV2IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE50bXNEYlJlY29yZFJldkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlJlY29yZFR5cGUgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUmVjb3JkVHlwZTo6b3BlcmF0b3I9KGNsYXNzIE50bXNEYlJlY29yZFR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiUmVjb3JkVHlwZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRUeXBlOjpvcGVyYXRvcj0oc2hvcnQpIF9fcHRyNjQNCis/PzROdG1zRGJSZWNvcmRUeXBlQEBRRUFBWEZAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJSZWNvcmRVbmlxdWVLZXkgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUmVjb3JkVW5pcXVlS2V5OjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RiUmVjb3JkVW5pcXVlS2V5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE50bXNEYlJlY29yZFVuaXF1ZUtleUBAUUVBQUFFQlYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlNlbGVjdGlvblNldCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJTZWxlY3Rpb25TZXQ6Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJTZWxlY3Rpb25TZXQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiU2VsZWN0aW9uU2V0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiU3RvcmFnZVNsb3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiU3RvcmFnZVNsb3Q6Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJTdG9yYWdlU2xvdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROdG1zRGJTdG9yYWdlU2xvdEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlN0cmluZyAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJTdHJpbmc6Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJTdHJpbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiU3RyaW5nQEBRRUFBQUVBVjBAQUVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiU3RyaW5nICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlN0cmluZzo6b3BlcmF0b3I9KGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiU3RyaW5nQEBRRUFBQUVBVjBAUEVCREBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlN0cmluZyAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJTdHJpbmc6Om9wZXJhdG9yPSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzROdG1zRGJTdHJpbmdAQFFFQUFBRUFWMEBQRUJHQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiVHlwZUd1aWQgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiVHlwZUd1aWQ6Om9wZXJhdG9yPShzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiVHlwZUd1aWRAQFFFQUFBRUFWMEBBRUJVX0dVSURAQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlR5cGVHdWlkICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlR5cGVHdWlkOjpvcGVyYXRvcj0oY2xhc3MgTnRtc0RiVHlwZUd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80TnRtc0RiVHlwZUd1aWRAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJVSURlc3RpbmF0aW9uICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlVJRGVzdGluYXRpb246Om9wZXJhdG9yPShjbGFzcyBOdG1zRGJVSURlc3RpbmF0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE50bXNEYlVJRGVzdGluYXRpb25AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zUHJvcE1ldGFJbmZvICYgX19wdHI2NCBfX2NkZWNsIE50bXNQcm9wTWV0YUluZm86Om9wZXJhdG9yPShjbGFzcyBOdG1zUHJvcE1ldGFJbmZvIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE50bXNQcm9wTWV0YUluZm9AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zVHJhbnNhY3Rpb24gJiBfX3B0cjY0IF9fY2RlY2wgTnRtc1RyYW5zYWN0aW9uOjpvcGVyYXRvcj0oY2xhc3MgTnRtc1RyYW5zYWN0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE50bXNUcmFuc2FjdGlvbkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJMaXN0OjpvcGVyYXRvcj4+KGNsYXNzIE50bXNEYkxpc3RJdGVtICogX19wdHI2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzVOdG1zRGJMaXN0QEBRRUFBWEFFQVBFQVZOdG1zRGJMaXN0SXRlbUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlByb3BSZWxhdGlvbjo6b3BlcmF0b3I+PihjbGFzcyBOdG1zRGJSZWNvcmRVbmlxdWVLZXkgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NU50bXNEYlByb3BSZWxhdGlvbkBAUUVBQVhBRUFQRUFWTnRtc0RiUmVjb3JkVW5pcXVlS2V5QEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUmVjb3JkS2V5TGlzdDo6b3BlcmF0b3I+PihjbGFzcyBOdG1zRGJSZWNvcmRVbmlxdWVLZXkgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NU50bXNEYlJlY29yZEtleUxpc3RAQFFFQUFYQUVBUEVBVk50bXNEYlJlY29yZFVuaXF1ZUtleUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3BMaXN0OjpvcGVyYXRvcj4+KGNsYXNzIE50bXNEYlByb3BDaGFyICogX19wdHI2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzVOdG1zRGJSZWNvcmRQcm9wTGlzdEBAUUVBQVhBRUFQRUFWTnRtc0RiUHJvcENoYXJAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wTGlzdDo6b3BlcmF0b3I+PihjbGFzcyBOdG1zRGJQcm9wR3VpZCAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz81TnRtc0RiUmVjb3JkUHJvcExpc3RAQFFFQUFYQUVBUEVBVk50bXNEYlByb3BHdWlkQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcExpc3Q6Om9wZXJhdG9yPj4oY2xhc3MgTnRtc0RiUHJvcExhcmdlSW50ICogX19wdHI2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzVOdG1zRGJSZWNvcmRQcm9wTGlzdEBAUUVBQVhBRUFQRUFWTnRtc0RiUHJvcExhcmdlSW50QEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcExpc3Q6Om9wZXJhdG9yPj4oY2xhc3MgTnRtc0RiUHJvcExvbmcgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NU50bXNEYlJlY29yZFByb3BMaXN0QEBRRUFBWEFFQVBFQVZOdG1zRGJQcm9wTG9uZ0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3BMaXN0OjpvcGVyYXRvcj4+KGNsYXNzIE50bXNEYlByb3BSZWxhdGlvbiAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz81TnRtc0RiUmVjb3JkUHJvcExpc3RAQFFFQUFYQUVBUEVBVk50bXNEYlByb3BSZWxhdGlvbkBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3BMaXN0OjpvcGVyYXRvcj4+KGNsYXNzIE50bXNEYlByb3BTaG9ydCAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz81TnRtc0RiUmVjb3JkUHJvcExpc3RAQFFFQUFYQUVBUEVBVk50bXNEYlByb3BTaG9ydEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3BMaXN0OjpvcGVyYXRvcj4+KGNsYXNzIE50bXNEYlJlY29yZFByb3AgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NU50bXNEYlJlY29yZFByb3BMaXN0QEBRRUFBWEFFQVBFQVZOdG1zRGJSZWNvcmRQcm9wQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiTGlzdDo6b3BlcmF0b3I8PChjbGFzcyBOdG1zRGJMaXN0SXRlbSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzZOdG1zRGJMaXN0QEBRRUFBWEFFQVZOdG1zRGJMaXN0SXRlbUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlByb3BSZWxhdGlvbjo6b3BlcmF0b3I8PChjbGFzcyBOdG1zRGJSZWNvcmRVbmlxdWVLZXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz82TnRtc0RiUHJvcFJlbGF0aW9uQEBRRUFBWEFFQVZOdG1zRGJSZWNvcmRVbmlxdWVLZXlAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRLZXlMaXN0OjpvcGVyYXRvcjw8KGNsYXNzIE50bXNEYlJlY29yZFVuaXF1ZUtleSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzZOdG1zRGJSZWNvcmRLZXlMaXN0QEBRRUFBWEFFQlZOdG1zRGJSZWNvcmRVbmlxdWVLZXlAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJTZWxlY3Rpb25TZXQ6Om9wZXJhdG9yPDwoY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzZOdG1zRGJTZWxlY3Rpb25TZXRAQFFFQUFYQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJTZWxlY3Rpb25TZXQ6Om9wZXJhdG9yPDwoY2xhc3MgTnRtc0RiUmVjb3JkVW5pcXVlS2V5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/Nk50bXNEYlNlbGVjdGlvblNldEBAUUVBQVhBRUJWTnRtc0RiUmVjb3JkVW5pcXVlS2V5QEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOdG1zRGJHdWlkOjpvcGVyYXRvcj09KHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzhOdG1zRGJHdWlkQEBRRUJBSEFFQlVfR1VJREBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTnRtc0RiR3VpZDo6b3BlcmF0b3I9PShjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OE50bXNEYkd1aWRAQFFFQkFIQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTnRtc0RiUHJvcERhdGFUeXBlOjpvcGVyYXRvcj09KGNsYXNzIE50bXNEYlByb3BEYXRhVHlwZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzhOdG1zRGJQcm9wRGF0YVR5cGVAQFFFQUFIQUVBVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTnRtc0RiUHJvcERhdGFUeXBlOjpvcGVyYXRvcj09KHNob3J0KSBfX3B0cjY0DQorPz84TnRtc0RiUHJvcERhdGFUeXBlQEBRRUFBSEZAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOdG1zRGJQcm9wSGVhZGVyOjpvcGVyYXRvcj09KGNsYXNzIE50bXNEYlByb3BIZWFkZXIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz84TnRtc0RiUHJvcEhlYWRlckBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOdG1zRGJSZWNvcmRLZXk6Om9wZXJhdG9yPT0oY2xhc3MgTnRtc0RiUmVjb3JkS2V5IGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OE50bXNEYlJlY29yZEtleUBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOdG1zRGJSZWNvcmRSZXY6Om9wZXJhdG9yPT0oY2xhc3MgTnRtc0RiUmVjb3JkUmV2IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/OE50bXNEYlJlY29yZFJldkBAUUVBQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOdG1zRGJSZWNvcmRVbmlxdWVLZXk6Om9wZXJhdG9yPT0oY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzhOdG1zRGJSZWNvcmRVbmlxdWVLZXlAQFFFQkFIQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE50bXNEYkd1aWQ6Om9wZXJhdG9yIT0oc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OU50bXNEYkd1aWRAQFFFQkFIQUVCVV9HVUlEQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOdG1zRGJHdWlkOjpvcGVyYXRvciE9KGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz85TnRtc0RiR3VpZEBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOdG1zRGJQcm9wRGF0YVR5cGU6Om9wZXJhdG9yIT0oY2xhc3MgTnRtc0RiUHJvcERhdGFUeXBlICYgX19wdHI2NCkgX19wdHI2NA0KKz8/OU50bXNEYlByb3BEYXRhVHlwZUBAUUVBQUhBRUFWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOdG1zRGJQcm9wRGF0YVR5cGU6Om9wZXJhdG9yIT0oc2hvcnQpIF9fcHRyNjQNCis/PzlOdG1zRGJQcm9wRGF0YVR5cGVAQFFFQUFIRkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE50bXNEYlByb3BIZWFkZXI6Om9wZXJhdG9yIT0oY2xhc3MgTnRtc0RiUHJvcEhlYWRlciBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzlOdG1zRGJQcm9wSGVhZGVyQEBRRUJBSEFFQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE50bXNEYlJlY29yZEtleTo6b3BlcmF0b3IhPShjbGFzcyBOdG1zRGJSZWNvcmRLZXkgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz85TnRtc0RiUmVjb3JkS2V5QEBRRUJBSEFFQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE50bXNEYlJlY29yZFJldjo6b3BlcmF0b3IhPShjbGFzcyBOdG1zRGJSZWNvcmRSZXYgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz85TnRtc0RiUmVjb3JkUmV2QEBRRUFBSEFFQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE50bXNEYlJlY29yZFVuaXF1ZUtleTo6b3BlcmF0b3IhPShjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OU50bXNEYlJlY29yZFVuaXF1ZUtleUBAUUVCQUhBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiTGlzdEl0ZW0gKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiTGlzdDo6b3BlcmF0b3JbXShsb25nKWNvbnN0ICBfX3B0cjY0DQorPz9BTnRtc0RiTGlzdEBAUUVCQVBFQVZOdG1zRGJMaXN0SXRlbUBASkBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlJlY29yZFVuaXF1ZUtleSAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJSZWNvcmRLZXlMaXN0OjpvcGVyYXRvcltdKGxvbmcpY29uc3QgIF9fcHRyNjQNCis/P0FOdG1zRGJSZWNvcmRLZXlMaXN0QEBRRUJBUEVBVk50bXNEYlJlY29yZFVuaXF1ZUtleUBASkBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlJlY29yZFByb3AgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcExpc3Q6Om9wZXJhdG9yW10obG9uZykgX19wdHI2NA0KKz8/QU50bXNEYlJlY29yZFByb3BMaXN0QEBRRUFBUEVBVk50bXNEYlJlY29yZFByb3BAQEpAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJSZWNvcmRQcm9wIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3BMaXN0OjpvcGVyYXRvcltdKGxvbmcpY29uc3QgIF9fcHRyNjQNCis/P0FOdG1zRGJSZWNvcmRQcm9wTGlzdEBAUUVCQVBFQlZOdG1zRGJSZWNvcmRQcm9wQEBKQFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJFcnJvcjo6b3BlcmF0b3IgdW5zaWduZWQgbG9uZyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CTnRtc0RiRXJyb3JAQFFFQkFLWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJHdWlkOjpvcGVyYXRvciBzdHJ1Y3QgX0dVSUQgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JOdG1zRGJHdWlkQEBRRUJBUEVBVV9HVUlEQEBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlByb3BEYXRhVHlwZTo6b3BlcmF0b3Igc2hvcnQodm9pZCljb25zdCAgX19wdHI2NA0KKz8/Qk50bXNEYlByb3BEYXRhVHlwZUBAUUVCQUZYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlByb3BHdWlkOjpvcGVyYXRvciBjbGFzcyBOdG1zRGJHdWlkICYgX19wdHI2NCh2b2lkKSBfX3B0cjY0DQorPz9CTnRtc0RiUHJvcEd1aWRAQFFFQUFBRUFWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJQcm9wUmVsYXRpb246Om9wZXJhdG9yIGNsYXNzIE50bXNEYlJlY29yZEtleUxpc3QgKiBfX3B0cjY0KHZvaWQpIF9fcHRyNjQNCis/P0JOdG1zRGJQcm9wUmVsYXRpb25AQFFFQUFQRUFWTnRtc0RiUmVjb3JkS2V5TGlzdEBAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpvcGVyYXRvciB1bmlvbiBfTEFSR0VfSU5URUdFUih2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CTnRtc0RiUmVjb3JkUHJvcEBAUUVCQT9BVF9MQVJHRV9JTlRFR0VSQEBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6Om9wZXJhdG9yIHN0cnVjdCBfU1lTVEVNVElNRSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CTnRtc0RiUmVjb3JkUHJvcEBAUUVCQT9BVV9TWVNURU1USU1FQEBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6Om9wZXJhdG9yIGNsYXNzIE50bXNEYkd1aWQodm9pZCljb25zdCAgX19wdHI2NA0KKz8/Qk50bXNEYlJlY29yZFByb3BAQFFFQkE/QVZOdG1zRGJHdWlkQEBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6Om9wZXJhdG9yIHNob3J0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JOdG1zRGJSZWNvcmRQcm9wQEBRRUJBRlhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQodm9pZCljb25zdCAgX19wdHI2NA0KKz8/Qk50bXNEYlJlY29yZFByb3BAQFFFQkFHWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpvcGVyYXRvciBsb25nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JOdG1zRGJSZWNvcmRQcm9wQEBRRUJBSlhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6b3BlcmF0b3IgdW5zaWduZWQgbG9uZyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CTnRtc0RiUmVjb3JkUHJvcEBAUUVCQUtYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6Om9wZXJhdG9yIGZsb2F0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JOdG1zRGJSZWNvcmRQcm9wQEBRRUJBTVhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6b3BlcmF0b3IgZG91YmxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JOdG1zRGJSZWNvcmRQcm9wQEBRRUJBTlhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JOdG1zRGJSZWNvcmRQcm9wQEBRRUJBUEVBR1haDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6b3BlcmF0b3IgY2hhciBjb25zdCAqIF9fcHRyNjQodm9pZCljb25zdCAgX19wdHI2NA0KKz8/Qk50bXNEYlJlY29yZFByb3BAQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogX19jZGVjbCBOdG1zRGJSZWNvcmRSZXY6Om9wZXJhdG9yIHVuc2lnbmVkIGxvbmcodm9pZCkgX19wdHI2NA0KKz8/Qk50bXNEYlJlY29yZFJldkBAUUVBQUtYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlJlY29yZFR5cGU6Om9wZXJhdG9yIHNob3J0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JOdG1zRGJSZWNvcmRUeXBlQEBRRUJBRlhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUmVjb3JkVW5pcXVlS2V5OjpvcGVyYXRvciBjbGFzcyBOdG1zRGJHdWlkICYgX19wdHI2NCh2b2lkKSBfX3B0cjY0DQorPz9CTnRtc0RiUmVjb3JkVW5pcXVlS2V5QEBRRUFBQUVBVk50bXNEYkd1aWRAQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUmVjb3JkVW5pcXVlS2V5OjpvcGVyYXRvciBjbGFzcyBOdG1zRGJHdWlkICogX19wdHI2NCh2b2lkKSBfX3B0cjY0DQorPz9CTnRtc0RiUmVjb3JkVW5pcXVlS2V5QEBRRUFBUEVBVk50bXNEYkd1aWRAQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTnRtc0RiUmVjb3JkVW5pcXVlS2V5OjpvcGVyYXRvciBjbGFzcyBOdG1zRGJSZWNvcmRLZXkgKiBfX3B0cjY0KHZvaWQpIF9fcHRyNjQNCis/P0JOdG1zRGJSZWNvcmRVbmlxdWVLZXlAQFFFQUFQRUFWTnRtc0RiUmVjb3JkS2V5QEBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlN0cmluZzo6b3BlcmF0b3IgY2hhciBjb25zdCAqIF9fcHRyNjQodm9pZCljb25zdCAgX19wdHI2NA0KKz8/Qk50bXNEYlN0cmluZ0BAUUVCQVBFQkRYWg0KKzsgcHVibGljOiBfX2NkZWNsIE50bXNEYlR5cGVHdWlkOjpvcGVyYXRvciBjbGFzcyBOdG1zRGJHdWlkICYgX19wdHI2NCh2b2lkKSBfX3B0cjY0DQorPz9CTnRtc0RiVHlwZUd1aWRAQFFFQUFBRUFWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlJlY29yZFJldjo6b3BlcmF0b3IrKyhpbnQpIF9fcHRyNjQNCis/P0VOdG1zRGJSZWNvcmRSZXZAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRSZXY6Om9wZXJhdG9yKysodm9pZCkgX19wdHI2NA0KKz8/RU50bXNEYlJlY29yZFJldkBAUUVBQVhYWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJMaXN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYkxpc3Q6Om9wZXJhdG9yLShsb25nKSBfX3B0cjY0DQorPz9HTnRtc0RiTGlzdEBAUUVBQUFFQVYwQEpAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJMaXN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYkxpc3Q6Om9wZXJhdG9yLShjbGFzcyBOdG1zRGJMaXN0SXRlbSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/P0dOdG1zRGJMaXN0QEBRRUFBQUVBVjBAUEVBVk50bXNEYkxpc3RJdGVtQEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJMaXN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYkxpc3Q6Om9wZXJhdG9yKyhjbGFzcyBOdG1zRGJMaXN0SXRlbSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/P0hOdG1zRGJMaXN0QEBRRUFBQUVBVjBAUEVBVk50bXNEYkxpc3RJdGVtQEBAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJMaXN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYkxpc3Q6Om9wZXJhdG9yKz0oY2xhc3MgTnRtc0RiTGlzdEl0ZW0gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz9ZTnRtc0RiTGlzdEBAUUVBQUFFQVYwQEFFQVZOdG1zRGJMaXN0SXRlbUBAQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiTGlzdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJMaXN0OjpvcGVyYXRvcis9KGNsYXNzIE50bXNEYkxpc3RJdGVtICogX19wdHI2NCkgX19wdHI2NA0KKz8/WU50bXNEYkxpc3RAQFFFQUFBRUFWMEBQRUFWTnRtc0RiTGlzdEl0ZW1AQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlN0cmluZyAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJTdHJpbmc6Om9wZXJhdG9yKz0oY2xhc3MgTnRtc0RiU3RyaW5nICYgX19wdHI2NCkgX19wdHI2NA0KKz8/WU50bXNEYlN0cmluZ0BAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlN0cmluZyAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJTdHJpbmc6Om9wZXJhdG9yKz0oY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/P1lOdG1zRGJTdHJpbmdAQFFFQUFBRUFWMEBQRUJEQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiTGlzdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJMaXN0OjpvcGVyYXRvci09KGNsYXNzIE50bXNEYkxpc3RJdGVtICYgX19wdHI2NCkgX19wdHI2NA0KKz8/Wk50bXNEYkxpc3RAQFFFQUFBRUFWMEBBRUFWTnRtc0RiTGlzdEl0ZW1AQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkxpc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiTGlzdDo6b3BlcmF0b3ItPShsb25nKSBfX3B0cjY0DQorPz9aTnRtc0RiTGlzdEBAUUVBQUFFQVYwQEpAWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJMaXN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYkxpc3Q6Om9wZXJhdG9yLT0oY2xhc3MgTnRtc0RiTGlzdEl0ZW0gKiBfX3B0cjY0KSBfX3B0cjY0DQorPz9aTnRtc0RiTGlzdEBAUUVBQUFFQVYwQFBFQVZOdG1zRGJMaXN0SXRlbUBAQFoNCis7IGNvbnN0ICBOdG1zRGF0YWJhc2U6OmB2ZnRhYmxlJw0KKz8/XzdOdG1zRGF0YWJhc2VAQDZCQA0KKzsgY29uc3QgIE50bXNEYkNoYW5nZXI6OmB2ZnRhYmxlJw0KKz8/XzdOdG1zRGJDaGFuZ2VyQEA2QkANCis7IGNvbnN0ICBOdG1zRGJDaGFuZ2VyVHlwZTo6YHZmdGFibGUnDQorPz9fN050bXNEYkNoYW5nZXJUeXBlQEA2QkANCis7IGNvbnN0ICBOdG1zRGJDb21wdXRlcjo6YHZmdGFibGUnDQorPz9fN050bXNEYkNvbXB1dGVyQEA2QkANCis7IGNvbnN0ICBOdG1zRGJEcml2ZTo6YHZmdGFibGUnDQorPz9fN050bXNEYkRyaXZlQEA2QkANCis7IGNvbnN0ICBOdG1zRGJEcml2ZVR5cGU6OmB2ZnRhYmxlJw0KKz8/XzdOdG1zRGJEcml2ZVR5cGVAQDZCQA0KKzsgY29uc3QgIE50bXNEYkZpbGU6OmB2ZnRhYmxlJw0KKz8/XzdOdG1zRGJGaWxlQEA2QkANCis7IGNvbnN0ICBOdG1zRGJJRURvb3I6OmB2ZnRhYmxlJw0KKz8/XzdOdG1zRGJJRURvb3JAQDZCQA0KKzsgY29uc3QgIE50bXNEYklFUG9ydDo6YHZmdGFibGUnDQorPz9fN050bXNEYklFUG9ydEBANkJADQorOyBjb25zdCAgTnRtc0RiTGliV29ya0l0ZW06OmB2ZnRhYmxlJw0KKz8/XzdOdG1zRGJMaWJXb3JrSXRlbUBANkJADQorOyBjb25zdCAgTnRtc0RiTGlicmFyeTo6YHZmdGFibGUnDQorPz9fN050bXNEYkxpYnJhcnlAQDZCQA0KKzsgY29uc3QgIE50bXNEYkxpc3Q6OmB2ZnRhYmxlJw0KKz8/XzdOdG1zRGJMaXN0QEA2QkANCis7IGNvbnN0ICBOdG1zRGJMb2dpY2FsTWVkaWE6OmB2ZnRhYmxlJw0KKz8/XzdOdG1zRGJMb2dpY2FsTWVkaWFAQDZCQA0KKzsgY29uc3QgIE50bXNEYk1lZGlhUG9vbDo6YHZmdGFibGUnDQorPz9fN050bXNEYk1lZGlhUG9vbEBANkJADQorOyBjb25zdCAgTnRtc0RiTWVkaWFUeXBlOjpgdmZ0YWJsZScNCis/P183TnRtc0RiTWVkaWFUeXBlQEA2QkANCis7IGNvbnN0ICBOdG1zRGJPYmplY3Q6OmB2ZnRhYmxlJw0KKz8/XzdOdG1zRGJPYmplY3RAQDZCQA0KKzsgY29uc3QgIE50bXNEYk9wUmVxdWVzdDo6YHZmdGFibGUnDQorPz9fN050bXNEYk9wUmVxdWVzdEBANkJADQorOyBjb25zdCAgTnRtc0RiUGFydGl0aW9uOjpgdmZ0YWJsZScNCis/P183TnRtc0RiUGFydGl0aW9uQEA2QkANCis7IGNvbnN0ICBOdG1zRGJQaHlzaWNhbE1lZGlhOjpgdmZ0YWJsZScNCis/P183TnRtc0RiUGh5c2ljYWxNZWRpYUBANkJADQorOyBjb25zdCAgTnRtc0RiUHJvcGVydHlWYWx1ZTo6YHZmdGFibGUnDQorPz9fN050bXNEYlByb3BlcnR5VmFsdWVAQDZCQA0KKzsgY29uc3QgIE50bXNEYlJlY29yZEtleUxpc3Q6OmB2ZnRhYmxlJw0KKz8/XzdOdG1zRGJSZWNvcmRLZXlMaXN0QEA2QkANCis7IGNvbnN0ICBOdG1zRGJTZWxlY3Rpb25TZXQ6OmB2ZnRhYmxlJw0KKz8/XzdOdG1zRGJTZWxlY3Rpb25TZXRAQDZCQA0KKzsgY29uc3QgIE50bXNEYlN0b3JhZ2VTbG90OjpgdmZ0YWJsZScNCis/P183TnRtc0RiU3RvcmFnZVNsb3RAQDZCQA0KKzsgY29uc3QgIE50bXNEYlVJRGVzdGluYXRpb246OmB2ZnRhYmxlJw0KKz8/XzdOdG1zRGJVSURlc3RpbmF0aW9uQEA2QkANCis7IGNvbnN0ICBOdG1zVHJhbnNhY3Rpb246OmB2ZnRhYmxlJw0KKz8/XzdOdG1zVHJhbnNhY3Rpb25AQDZCQA0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiRGF0YUN0eHQ6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GTnRtc0RiRGF0YUN0eHRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkxpc3Q6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GTnRtc0RiTGlzdEBAUUVBQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RhdGFiYXNlOjpBY2Nlc3NBbGxvd2VkKHZvaWQpIF9fcHRyNjQNCis/QWNjZXNzQWxsb3dlZEBOdG1zRGF0YWJhc2VAQFFFQUFLWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJEYXRhQ3R4dDo6QWNxdWlyZUNoYW5nZU11dGV4KHVuc2lnbmVkIGxvbmcpDQorP0FjcXVpcmVDaGFuZ2VNdXRleEBOdG1zRGJEYXRhQ3R4dEBAU0FLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpBZGRNZWRpYVR5cGUoY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkTWVkaWFUeXBlQE50bXNEYkxpYnJhcnlAQFFFQUFLQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJDb21wdXRlcjo6QWRkVUlEZXN0aW5hdGlvbih1bnNpZ25lZCBsb25nLGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZFVJRGVzdGluYXRpb25ATnRtc0RiQ29tcHV0ZXJAQFFFQUFLS0FFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6QWRkVUlEZXN0aW5hdGlvbih1bnNpZ25lZCBsb25nLGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZFVJRGVzdGluYXRpb25ATnRtc0RiTGlicmFyeUBAUUVBQUtLQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgY29uc3QgIF9fY2RlY2wgTnRtc0RiUGFydGl0aW9uOjpBbGxvY2F0ZUNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/QWxsb2NhdGVDb3VudEBOdG1zRGJQYXJ0aXRpb25AQFFFQkE/QktYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX2NkZWNsIE50bXNEYk1lZGlhUG9vbDo6QWxsb2NhdGlvblBvbGljeSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0FsbG9jYXRpb25Qb2xpY3lATnRtc0RiTWVkaWFQb29sQEBRRUJBP0JLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06OkFwcGxpY2F0aW9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/QXBwbGljYXRpb25ATnRtc0RiTGliV29ya0l0ZW1AQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiT3BSZXF1ZXN0OjpBcHBsaWNhdGlvbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0FwcGxpY2F0aW9uQE50bXNEYk9wUmVxdWVzdEBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYk9wUmVxdWVzdDo6QXJnMSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0FyZzFATnRtc0RiT3BSZXF1ZXN0QEBRRUJBQUVCVk50bXNEYkd1aWRAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6OkFyZzFUeXBlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/QXJnMVR5cGVATnRtc0RiT3BSZXF1ZXN0QEBRRUJBS1haDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiT3BSZXF1ZXN0OjpBcmcyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/QXJnMkBOdG1zRGJPcFJlcXVlc3RAQFFFQkFBRUJWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYk9wUmVxdWVzdDo6QXJnMlR5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9BcmcyVHlwZUBOdG1zRGJPcFJlcXVlc3RAQFFFQkFLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYkxpYldvcmtJdGVtOjpBc3NvY1dvcmtJdGVtX0lzTm90TnVsbCh2b2lkKSBfX3B0cjY0DQorP0Fzc29jV29ya0l0ZW1fSXNOb3ROdWxsQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBSlhaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06OkFzc29jV29ya0l0ZW1fbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0Fzc29jV29ya0l0ZW1fbkBOdG1zRGJMaWJXb3JrSXRlbUBAUUVCQUFFQlZOdG1zRGJHdWlkQEBYWg0KKzsgcHVibGljOiBzaG9ydCBjb25zdCAgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpBdXRvUmVjb3Zlcnkodm9pZCljb25zdCAgX19wdHI2NA0KKz9BdXRvUmVjb3ZlcnlATnRtc0RiTGlicmFyeUBAUUVCQT9CRlhaDQorOyBwdWJsaWM6IHNob3J0IGNvbnN0ICBfX2NkZWNsIE50bXNEYkxpYnJhcnk6OkJhckNvZGVSZWFkZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9CYXJDb2RlUmVhZGVyQE50bXNEYkxpYnJhcnlAQFFFQkE/QkZYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6OkJhcmNvZGVTdGF0ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0JhcmNvZGVTdGF0ZUBOdG1zRGJQaHlzaWNhbE1lZGlhQEBRRUJBP0JLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUGh5c2ljYWxNZWRpYTo6QmFyY29kZVcodm9pZCljb25zdCAgX19wdHI2NA0KKz9CYXJjb2RlV0BOdG1zRGJQaHlzaWNhbE1lZGlhQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpCYXJjb2RlX0lzTm90TnVsbCh2b2lkKSBfX3B0cjY0DQorP0JhcmNvZGVfSXNOb3ROdWxsQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQUFKWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpCYXJjb2RlX24odm9pZCkgX19wdHI2NA0KKz9CYXJjb2RlX25ATnRtc0RiUGh5c2ljYWxNZWRpYUBAUUVBQVBFQkRYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIE50bXNEYkNoYW5nZXI6OkJ1aWxkUHJvcGVydHlMaXN0KHZvaWQpIF9fcHRyNjQNCis/QnVpbGRQcm9wZXJ0eUxpc3RATnRtc0RiQ2hhbmdlckBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIE50bXNEYkNoYW5nZXJUeXBlOjpCdWlsZFByb3BlcnR5TGlzdCh2b2lkKSBfX3B0cjY0DQorP0J1aWxkUHJvcGVydHlMaXN0QE50bXNEYkNoYW5nZXJUeXBlQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTnRtc0RiQ29tcHV0ZXI6OkJ1aWxkUHJvcGVydHlMaXN0KHZvaWQpIF9fcHRyNjQNCis/QnVpbGRQcm9wZXJ0eUxpc3RATnRtc0RiQ29tcHV0ZXJAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJEcml2ZTo6QnVpbGRQcm9wZXJ0eUxpc3Qodm9pZCkgX19wdHI2NA0KKz9CdWlsZFByb3BlcnR5TGlzdEBOdG1zRGJEcml2ZUBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlVHlwZTo6QnVpbGRQcm9wZXJ0eUxpc3Qodm9pZCkgX19wdHI2NA0KKz9CdWlsZFByb3BlcnR5TGlzdEBOdG1zRGJEcml2ZVR5cGVAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJJRURvb3I6OkJ1aWxkUHJvcGVydHlMaXN0KHZvaWQpIF9fcHRyNjQNCis/QnVpbGRQcm9wZXJ0eUxpc3RATnRtc0RiSUVEb29yQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTnRtc0RiSUVQb3J0OjpCdWlsZFByb3BlcnR5TGlzdCh2b2lkKSBfX3B0cjY0DQorP0J1aWxkUHJvcGVydHlMaXN0QE50bXNEYklFUG9ydEBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIE50bXNEYkxpYldvcmtJdGVtOjpCdWlsZFByb3BlcnR5TGlzdCh2b2lkKSBfX3B0cjY0DQorP0J1aWxkUHJvcGVydHlMaXN0QE50bXNEYkxpYldvcmtJdGVtQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6QnVpbGRQcm9wZXJ0eUxpc3Qodm9pZCkgX19wdHI2NA0KKz9CdWlsZFByb3BlcnR5TGlzdEBOdG1zRGJMaWJyYXJ5QEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTnRtc0RiTG9naWNhbE1lZGlhOjpCdWlsZFByb3BlcnR5TGlzdCh2b2lkKSBfX3B0cjY0DQorP0J1aWxkUHJvcGVydHlMaXN0QE50bXNEYkxvZ2ljYWxNZWRpYUBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIE50bXNEYk1lZGlhUG9vbDo6QnVpbGRQcm9wZXJ0eUxpc3Qodm9pZCkgX19wdHI2NA0KKz9CdWlsZFByb3BlcnR5TGlzdEBOdG1zRGJNZWRpYVBvb2xAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJNZWRpYVR5cGU6OkJ1aWxkUHJvcGVydHlMaXN0KHZvaWQpIF9fcHRyNjQNCis/QnVpbGRQcm9wZXJ0eUxpc3RATnRtc0RiTWVkaWFUeXBlQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpCdWlsZFByb3BlcnR5TGlzdCh2b2lkKSBfX3B0cjY0DQorP0J1aWxkUHJvcGVydHlMaXN0QE50bXNEYk9iamVjdEBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIE50bXNEYk9wUmVxdWVzdDo6QnVpbGRQcm9wZXJ0eUxpc3Qodm9pZCkgX19wdHI2NA0KKz9CdWlsZFByb3BlcnR5TGlzdEBOdG1zRGJPcFJlcXVlc3RAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJQYXJ0aXRpb246OkJ1aWxkUHJvcGVydHlMaXN0KHZvaWQpIF9fcHRyNjQNCis/QnVpbGRQcm9wZXJ0eUxpc3RATnRtc0RiUGFydGl0aW9uQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTnRtc0RiUGh5c2ljYWxNZWRpYTo6QnVpbGRQcm9wZXJ0eUxpc3Qodm9pZCkgX19wdHI2NA0KKz9CdWlsZFByb3BlcnR5TGlzdEBOdG1zRGJQaHlzaWNhbE1lZGlhQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTnRtc0RiU3RvcmFnZVNsb3Q6OkJ1aWxkUHJvcGVydHlMaXN0KHZvaWQpIF9fcHRyNjQNCis/QnVpbGRQcm9wZXJ0eUxpc3RATnRtc0RiU3RvcmFnZVNsb3RAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJVSURlc3RpbmF0aW9uOjpCdWlsZFByb3BlcnR5TGlzdCh2b2lkKSBfX3B0cjY0DQorP0J1aWxkUHJvcGVydHlMaXN0QE50bXNEYlVJRGVzdGluYXRpb25AQEFFQUFYWFoNCis7IHB1YmxpYzogdW5pb24gX0xBUkdFX0lOVEVHRVIgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUGFydGl0aW9uOjpDYXBhY2l0eSh2b2lkKSBfX3B0cjY0DQorP0NhcGFjaXR5QE50bXNEYlBhcnRpdGlvbkBAUUVBQUFFQVRfTEFSR0VfSU5URUdFUkBAWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpDaGFuZ2VyVHlwZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NoYW5nZXJUeXBlQE50bXNEYkNoYW5nZXJAQFFFQkFBRUJWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkxpYnJhcnk6OkNoYW5nZXJzKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCxjbGFzcyBOdG1zRGJTZWxlY3Rpb25TZXQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoYW5nZXJzQE50bXNEYkxpYnJhcnlAQFFFQUFLUEVBVk50bXNEYkRhdGFDdHh0QEBBRUFWTnRtc0RiU2VsZWN0aW9uU2V0QEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6Q2xlYW5lclNsb3RfSXNOb3ROdWxsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q2xlYW5lclNsb3RfSXNOb3ROdWxsQE50bXNEYkxpYnJhcnlAQFFFQkFKWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpDbGVhbmVyU2xvdF9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q2xlYW5lclNsb3RfbkBOdG1zRGJMaWJyYXJ5QEBRRUJBQUVCVk50bXNEYkd1aWRAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgY29uc3QgIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6Q2xlYW5zUmVtYWluaW5nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q2xlYW5zUmVtYWluaW5nQE50bXNEYkxpYnJhcnlAQFFFQkE/QktYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiTGlzdDo6Q2xlYXIodm9pZCkgX19wdHI2NA0KKz9DbGVhckBOdG1zRGJMaXN0QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpDbGVhck1vZGlmaWVkKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJNb2RpZmllZEBOdG1zRGJSZWNvcmRQcm9wQEBRRUFBWFhaDQorOyBwdWJsaWM6IHNob3J0IGNvbnN0ICBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6OkNvZGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db2RlQE50bXNEYlJlY29yZFByb3BAQFFFQkE/QkZYWg0KKzsgcHVibGljOiBzaG9ydCBfX2NkZWNsIE50bXNEYlJlY29yZFR5cGU6OkNvZGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db2RlQE50bXNEYlJlY29yZFR5cGVAQFFFQkFGWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkRhdGFDdHh0OjpDb21taXRUcmFuc2FjdGlvbih2b2lkKSBfX3B0cjY0DQorP0NvbW1pdFRyYW5zYWN0aW9uQE50bXNEYkRhdGFDdHh0QEBRRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYk9iamVjdDo6Q29tcHV0ZVByb3BzKGVudW0gTnRtc0RiT2JqZWN0OjpPYmplY3RPcGVyYXRpb25UeXBlKSBfX3B0cjY0DQorP0NvbXB1dGVQcm9wc0BOdG1zRGJPYmplY3RAQFVFQUFYVzRPYmplY3RPcGVyYXRpb25UeXBlQDFAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpDb21wdXRlUHJvcHMoZW51bSBOdG1zRGJPYmplY3Q6Ok9iamVjdE9wZXJhdGlvblR5cGUsbG9uZykgX19wdHI2NA0KKz9Db21wdXRlUHJvcHNATnRtc0RiT2JqZWN0QEBVRUFBWFc0T2JqZWN0T3BlcmF0aW9uVHlwZUAxQEpAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6Q29tcHV0ZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db21wdXRlckBOdG1zRGJMaWJXb3JrSXRlbUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6OkNvbXB1dGVyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29tcHV0ZXJATnRtc0RiT3BSZXF1ZXN0QEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJEcml2ZTo6Q29tcHV0ZXJfSXNOb3ROdWxsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29tcHV0ZXJfSXNOb3ROdWxsQE50bXNEYkRyaXZlQEBRRUJBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpDb21wdXRlcl9Jc05vdE51bGwodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db21wdXRlcl9Jc05vdE51bGxATnRtc0RiTGlicmFyeUBAUUVCQUpYWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYkRyaXZlOjpDb21wdXRlcl9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29tcHV0ZXJfbkBOdG1zRGJEcml2ZUBAUUVCQUFFQlZOdG1zRGJHdWlkQEBYWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYkxpYnJhcnk6OkNvbXB1dGVyX24odm9pZCljb25zdCAgX19wdHI2NA0KKz9Db21wdXRlcl9uQE50bXNEYkxpYnJhcnlAQFFFQkFBRUJWTnRtc0RiR3VpZEBAWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIE50bXNEYlN0cmluZzo6Q29uY2F0U3RyaW5nKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbmNhdFN0cmluZ0BOdG1zRGJTdHJpbmdAQElFQUFYUEVCREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJEYXRhQ3R4dDo6Q29ubmVjdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0Nvbm5lY3RATnRtc0RiRGF0YUN0eHRAQFFFQUFLUEVCRzBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgTnRtc0RiU3RyaW5nOjpDb252ZXJ0TUJTdHJpbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsY2hhciAqIF9fcHRyNjQgJiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbnZlcnRNQlN0cmluZ0BOdG1zRGJTdHJpbmdAQElFQUFYUEVCR0tBRUFQRUFEQUVBX0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6Q29weURhdGEodm9pZCAqIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz9Db3B5RGF0YUBOdG1zRGJSZWNvcmRQcm9wQEBRRUFBWFBFQVhKQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYkxpc3Q6OkNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q291bnRATnRtc0RiTGlzdEBAUUVCQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpDb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvdW50QE50bXNEYk9iamVjdEBAUUVCQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTnRtc0RiUHJvcEhlYWRlcjo6Q291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3VudEBOdG1zRGJQcm9wSGVhZGVyQEBRRUJBSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpDb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvdW50QE50bXNEYlJlY29yZFByb3BAQFFFQkFLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYlJlY29yZFByb3BMaXN0OjpDb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvdW50QE50bXNEYlJlY29yZFByb3BMaXN0QEBRRUJBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIE50bXNEYlNlbGVjdGlvblNldDo6Q291bnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3VudEBOdG1zRGJTZWxlY3Rpb25TZXRAQFVFQkFKWFoNCis7IHB1YmxpYzogc3RydWN0IF9TWVNURU1USU1FICBfX2NkZWNsIE50bXNEYk9iamVjdDo6Q3JlYXRlVHModm9pZCljb25zdCAgX19wdHI2NA0KKz9DcmVhdGVUc0BOdG1zRGJPYmplY3RAQFFFQkE/QVVfU1lTVEVNVElNRUBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6OkRhdGFTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RGF0YVNpemVATnRtc0RiUmVjb3JkUHJvcEBAUUVCQUtYWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGF0YWJhc2UgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiRGF0YUN0eHQ6OkRhdGFiYXNlKHZvaWQpIF9fcHRyNjQNCis/RGF0YWJhc2VATnRtc0RiRGF0YUN0eHRAQFFFQUFQRUFWTnRtc0RhdGFiYXNlQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX2NkZWNsIE50bXNEYk1lZGlhUG9vbDo6RGVhbGxvY2F0aW9uUG9saWN5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RGVhbGxvY2F0aW9uUG9saWN5QE50bXNEYk1lZGlhUG9vbEBAUUVCQT9CS1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJQcm9wSGVhZGVyOjpEZWNDb3VudCh2b2lkKSBfX3B0cjY0DQorP0RlY0NvdW50QE50bXNEYlByb3BIZWFkZXJAQFFFQUFYWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYlVJRGVzdGluYXRpb246OkRlY1JlZmVyZW5jZSh2b2lkKSBfX3B0cjY0DQorP0RlY1JlZmVyZW5jZUBOdG1zRGJVSURlc3RpbmF0aW9uQEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpEZWZDbGVhbmVyU2xvdF9Jc05vdE51bGwodm9pZCljb25zdCAgX19wdHI2NA0KKz9EZWZDbGVhbmVyU2xvdF9Jc05vdE51bGxATnRtc0RiTGlicmFyeUBAUUVCQUpYWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYkxpYnJhcnk6OkRlZkNsZWFuZXJTbG90X24odm9pZCljb25zdCAgX19wdHI2NA0KKz9EZWZDbGVhbmVyU2xvdF9uQE50bXNEYkxpYnJhcnlAQFFFQkFBRUJWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAgX19jZGVjbCBOdG1zRGJEcml2ZTo6RGVmZXJEZWxheSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0RlZmVyRGVsYXlATnRtc0RiRHJpdmVAQFFFQkE/QktYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpEZWxldGVEYk9iamVjdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlRGJPYmplY3RATnRtc0RiQ2hhbmdlckBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYkNoYW5nZXJUeXBlOjpEZWxldGVEYk9iamVjdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlRGJPYmplY3RATnRtc0RiQ2hhbmdlclR5cGVAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJDb21wdXRlcjo6RGVsZXRlRGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZURiT2JqZWN0QE50bXNEYkNvbXB1dGVyQEBNRUFBWFBFQVZOdG1zRGJEYXRhQ3R4dEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgTnRtc0RiRHJpdmU6OkRlbGV0ZURiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVEYk9iamVjdEBOdG1zRGJEcml2ZUBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlVHlwZTo6RGVsZXRlRGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZURiT2JqZWN0QE50bXNEYkRyaXZlVHlwZUBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYklFRG9vcjo6RGVsZXRlRGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZURiT2JqZWN0QE50bXNEYklFRG9vckBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYklFUG9ydDo6RGVsZXRlRGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZURiT2JqZWN0QE50bXNEYklFUG9ydEBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYkxpYldvcmtJdGVtOjpEZWxldGVEYk9iamVjdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlRGJPYmplY3RATnRtc0RiTGliV29ya0l0ZW1AQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpEZWxldGVEYk9iamVjdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlRGJPYmplY3RATnRtc0RiTGlicmFyeUBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYkxvZ2ljYWxNZWRpYTo6RGVsZXRlRGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZURiT2JqZWN0QE50bXNEYkxvZ2ljYWxNZWRpYUBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYk1lZGlhUG9vbDo6RGVsZXRlRGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZURiT2JqZWN0QE50bXNEYk1lZGlhUG9vbEBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYk1lZGlhVHlwZTo6RGVsZXRlRGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZURiT2JqZWN0QE50bXNEYk1lZGlhVHlwZUBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYk9iamVjdDo6RGVsZXRlRGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZURiT2JqZWN0QE50bXNEYk9iamVjdEBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYk9wUmVxdWVzdDo6RGVsZXRlRGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZURiT2JqZWN0QE50bXNEYk9wUmVxdWVzdEBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYlBhcnRpdGlvbjo6RGVsZXRlRGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZURiT2JqZWN0QE50bXNEYlBhcnRpdGlvbkBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6OkRlbGV0ZURiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVEYk9iamVjdEBOdG1zRGJQaHlzaWNhbE1lZGlhQEBNRUFBWFBFQVZOdG1zRGJEYXRhQ3R4dEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgTnRtc0RiU3RvcmFnZVNsb3Q6OkRlbGV0ZURiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVEYk9iamVjdEBOdG1zRGJTdG9yYWdlU2xvdEBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYlVJRGVzdGluYXRpb246OkRlbGV0ZURiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVEYk9iamVjdEBOdG1zRGJVSURlc3RpbmF0aW9uQEBNRUFBWFBFQVZOdG1zRGJEYXRhQ3R4dEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiU2VsZWN0aW9uU2V0OjpEZWxldGVPYmplY3RzKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVPYmplY3RzQE50bXNEYlNlbGVjdGlvblNldEBAVUVBQUtQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBOdG1zRGJPYmplY3Q6OkRlbGV0ZVJlZmVyZW5jZXMoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0LGNsYXNzIE50bXNEYlJlY29yZFByb3BMaXN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVSZWZlcmVuY2VzQE50bXNEYk9iamVjdEBASUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQFBFQVZOdG1zRGJSZWNvcmRQcm9wTGlzdEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6OkRlbnNpdHlDb2RlKHZvaWQpIF9fcHRyNjQNCis/RGVuc2l0eUNvZGVATnRtc0RiUGh5c2ljYWxNZWRpYUBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJPYmplY3Q6OkRlc2NyaXB0aW9uVyh2b2lkKSBfX3B0cjY0DQorP0Rlc2NyaXB0aW9uV0BOdG1zRGJPYmplY3RAQFFFQUFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpEZXNjcmlwdGlvblcodm9pZCljb25zdCAgX19wdHI2NA0KKz9EZXNjcmlwdGlvbldATnRtc0RiT2JqZWN0QEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJPYmplY3Q6OkRlc2NyaXB0aW9uX0lzTm90TnVsbCh2b2lkKSBfX3B0cjY0DQorP0Rlc2NyaXB0aW9uX0lzTm90TnVsbEBOdG1zRGJPYmplY3RAQFFFQUFKWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJPYmplY3Q6OkRlc2NyaXB0aW9uX24odm9pZCkgX19wdHI2NA0KKz9EZXNjcmlwdGlvbl9uQE50bXNEYk9iamVjdEBAUUVBQVBFQkRYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIE50bXNEYkRhdGFDdHh0OjpEZXN0cm95TXV0ZXgodm9pZCkNCis/RGVzdHJveU11dGV4QE50bXNEYkRhdGFDdHh0QEBTQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJMaXN0OjpEZXN0cnVjdChjbGFzcyBOdG1zRGJMaXN0SXRlbSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVzdHJ1Y3RATnRtc0RiTGlzdEBAVUVBQVhQRUFWTnRtc0RiTGlzdEl0ZW1AQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgY29uc3QgIF9fY2RlY2wgTnRtc0RiQ2hhbmdlclR5cGU6OkRldmljZVR5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9EZXZpY2VUeXBlQE50bXNEYkNoYW5nZXJUeXBlQEBRRUJBP0JLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAgX19jZGVjbCBOdG1zRGJNZWRpYVR5cGU6OkRldmljZVR5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9EZXZpY2VUeXBlQE50bXNEYk1lZGlhVHlwZUBAUUVCQT9CS1haDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgTnRtc0RiRGF0YUN0eHQ6OkRpc2FibGVOb3RpZmljYXRpb24oY2xhc3MgQ2hhbmdlUmVnaXN0cmF0aW9uICogX19wdHI2NCkNCis/RGlzYWJsZU5vdGlmaWNhdGlvbkBOdG1zRGJEYXRhQ3R4dEBAU0FYUEVBVkNoYW5nZVJlZ2lzdHJhdGlvbkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkRhdGFDdHh0OjpEaXNjb25uZWN0KHZvaWQpIF9fcHRyNjQNCis/RGlzY29ubmVjdEBOdG1zRGJEYXRhQ3R4dEBAUUVBQUtYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06OkRyaXZlSWRfSXNOb3ROdWxsKHZvaWQpIF9fcHRyNjQNCis/RHJpdmVJZF9Jc05vdE51bGxATnRtc0RiTGliV29ya0l0ZW1AQFFFQUFKWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6RHJpdmVJZF9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RHJpdmVJZF9uQE50bXNEYkxpYldvcmtJdGVtQEBRRUJBQUVCVk50bXNEYkd1aWRAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgY29uc3QgIF9fY2RlY2wgTnRtc0RiRHJpdmU6OkRyaXZlTnVtYmVyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RHJpdmVOdW1iZXJATnRtc0RiRHJpdmVAQFFFQkE/QktYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX2NkZWNsIE50bXNEYkRyaXZlOjpEcml2ZVN0YXRlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RHJpdmVTdGF0ZUBOdG1zRGJEcml2ZUBAUUVCQT9CS1haDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiRHJpdmU6OkRyaXZlVHlwZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0RyaXZlVHlwZUBOdG1zRGJEcml2ZUBAUUVCQUFFQlZOdG1zRGJHdWlkQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX2NkZWNsIE50bXNEYkRyaXZlVHlwZTo6RHJpdmVUeXBlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RHJpdmVUeXBlQE50bXNEYkRyaXZlVHlwZUBAUUVCQT9CS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJDb21wdXRlcjo6RHJpdmVzKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCxjbGFzcyBOdG1zRGJTZWxlY3Rpb25TZXQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0RyaXZlc0BOdG1zRGJDb21wdXRlckBAUUVBQUtQRUFWTnRtc0RiRGF0YUN0eHRAQEFFQVZOdG1zRGJTZWxlY3Rpb25TZXRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpEcml2ZXMoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0LGNsYXNzIE50bXNEYlNlbGVjdGlvblNldCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RHJpdmVzQE50bXNEYkxpYnJhcnlAQFFFQUFLUEVBVk50bXNEYkRhdGFDdHh0QEBBRUFWTnRtc0RiU2VsZWN0aW9uU2V0QEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOdG1zRGJMaXN0OjpEeW5hbWljKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RHluYW1pY0BOdG1zRGJMaXN0QEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6OkR5bmFtaWModm9pZCljb25zdCAgX19wdHI2NA0KKz9EeW5hbWljQE50bXNEYlJlY29yZFByb3BAQFFFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIENoYW5nZVJlZ2lzdHJhdGlvbiAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJEYXRhQ3R4dDo6RW5hYmxlTm90aWZpY2F0aW9uKHZvaWQgKF9fY2RlY2wqKShpbnQsY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQsaW50LHZvaWQgKiBfX3B0cjY0KSx2b2lkICogX19wdHI2NCkNCis/RW5hYmxlTm90aWZpY2F0aW9uQE50bXNEYkRhdGFDdHh0QEBTQVBFQVZDaGFuZ2VSZWdpc3RyYXRpb25AQFA2QVhIQUVCVk50bXNEYkd1aWRAQEhQRUFYQFoxQFoNCis7IHB1YmxpYzogc2hvcnQgY29uc3QgIF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpFbmFibGVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RW5hYmxlZEBOdG1zRGJPYmplY3RAQFFFQkE/QkZYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiRGF0YUN0eHQ6OkVudGVyQ29ubkNyaXRTZWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/RW50ZXJDb25uQ3JpdFNlY3Rpb25ATnRtc0RiRGF0YUN0eHRAQFFFQUFYWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiRXJyb3IgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiRGF0YUN0eHQ6OkVycm9yKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RXJyb3JATnRtc0RiRGF0YUN0eHRAQFFFQkFBRUJWTnRtc0RiRXJyb3JAQFhaDQorOyBwdWJsaWM6IGludCBjb25zdCAgX19jZGVjbCBOdG1zRGJFcnJvcjo6RXJyb3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9FcnJvckBOdG1zRGJFcnJvckBAUUVCQT9CSFhaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkVycm9yICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYk9iamVjdDo6RXJyb3Iodm9pZCkgX19wdHI2NA0KKz9FcnJvckBOdG1zRGJPYmplY3RAQFFFQUFBRUFWTnRtc0RiRXJyb3JAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6RXJyb3JDb2RlKHZvaWQpIF9fcHRyNjQNCis/RXJyb3JDb2RlQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPYmplY3Q6OkV4cGxpY2l0QWRkUmVsYXRpb24obG9uZyxzaG9ydCxjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9FeHBsaWNpdEFkZFJlbGF0aW9uQE50bXNEYk9iamVjdEBAUUVBQUtKRkFFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpFeHBsaWNpdFJlbW92ZVJlbGF0aW9uKGxvbmcsY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RXhwbGljaXRSZW1vdmVSZWxhdGlvbkBOdG1zRGJPYmplY3RAQFFFQUFLSkFFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiRGF0YUN0eHQ6OkV4cG9ydERhdGFiYXNlKHZvaWQpIF9fcHRyNjQNCis/RXhwb3J0RGF0YWJhc2VATnRtc0RiRGF0YUN0eHRAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAgX19jZGVjbCBOdG1zRGJJRVBvcnQ6OkV4dGVuZFN0YXRlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RXh0ZW5kU3RhdGVATnRtc0RiSUVQb3J0QEBRRUJBP0JLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpGZXRjaChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmV0Y2hATnRtc0RiT2JqZWN0QEBVRUFBS1BFQVZOdG1zRGJEYXRhQ3R4dEBAQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGF0YWJhc2U6OkZpbGVFbmQodm9pZCkgX19wdHI2NA0KKz9GaWxlRW5kQE50bXNEYXRhYmFzZUBAQUVBQUtYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIE50bXNEYkZpbGU6OkZpbGVIYW5kbGUodm9pZCkgX19wdHI2NA0KKz9GaWxlSGFuZGxlQE50bXNEYkZpbGVAQFFFQUFQRUFYWFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGF0YWJhc2U6OkZpbGVQb3NpdGlvbih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0ZpbGVQb3NpdGlvbkBOdG1zRGF0YWJhc2VAQEFFQUFLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJGaWxlOjpGaWxlU3RhdHVzKHZvaWQpIF9fcHRyNjQNCis/RmlsZVN0YXR1c0BOdG1zRGJGaWxlQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIE50bXNEYkZpbGU6OkZpbGVuYW1lKHZvaWQpIF9fcHRyNjQNCis/RmlsZW5hbWVATnRtc0RiRmlsZUBAUUVBQVBFQUdYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIE50bXNEYlR5cGVHdWlkOjpGaWxsKHN0cnVjdCBfR1VJRCAmIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmlsbEBOdG1zRGJUeXBlR3VpZEBAQUVBQVhBRUFVX0dVSURAQFBFQURAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTnRtc0RiTGlzdDo6TWFwOjpGaW5kKGNsYXNzIE50bXNEYkxpc3RJdGVtICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9GaW5kQE1hcEBOdG1zRGJMaXN0QEBRRUJBSlBFQVZOdG1zRGJMaXN0SXRlbUBAQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIE50bXNEYkRhdGFDdHh0OjpGaW5kT2JUeXBlKGNsYXNzIE50bXNEYlJlY29yZEtleSAmIF9fcHRyNjQpDQorP0ZpbmRPYlR5cGVATnRtc0RiRGF0YUN0eHRAQFNBSEFFQVZOdG1zRGJSZWNvcmRLZXlAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBOdG1zRGJEYXRhQ3R4dDo6RmluZE9iVHlwZShzaG9ydCkNCis/RmluZE9iVHlwZUBOdG1zRGJEYXRhQ3R4dEBAU0FIRkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgY29uc3QgIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6Rmlyc3RDaGFuZ2VyTnVtYmVyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Rmlyc3RDaGFuZ2VyTnVtYmVyQE50bXNEYkxpYnJhcnlAQFFFQkE/QktYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX2NkZWNsIE50bXNEYkxpYnJhcnk6OkZpcnN0RHJpdmVOdW1iZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9GaXJzdERyaXZlTnVtYmVyQE50bXNEYkxpYnJhcnlAQFFFQkE/QktYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX2NkZWNsIE50bXNEYkxpYnJhcnk6OkZpcnN0UG9ydE51bWJlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0ZpcnN0UG9ydE51bWJlckBOdG1zRGJMaWJyYXJ5QEBRRUJBP0JLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpGaXJzdFNsb3ROdW1iZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9GaXJzdFNsb3ROdW1iZXJATnRtc0RiTGlicmFyeUBAUUVCQT9CS1haDQorOyBwdWJsaWM6IHNob3J0IGNvbnN0ICBfX2NkZWNsIE50bXNEYkxpYnJhcnk6OkZpeGVkT2ZmbGluZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0ZpeGVkT2ZmbGluZUBOdG1zRGJMaWJyYXJ5QEBRRUJBP0JGWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpGbGFncyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0ZsYWdzQE50bXNEYkxpYnJhcnlAQFFFQkE/QktYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTWVkaWFQb29sOjpGb2xkZXJzKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCxjbGFzcyBOdG1zRGJTZWxlY3Rpb25TZXQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZvbGRlcnNATnRtc0RiTWVkaWFQb29sQEBRRUFBS1BFQVZOdG1zRGJEYXRhQ3R4dEBAQUVBVk50bXNEYlNlbGVjdGlvblNldEBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTnRtc0RiTGlzdDo6TWFwOjpGdWxsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RnVsbEBNYXBATnRtc0RiTGlzdEBAUUVCQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX2NkZWNsIE50bXNEYklFUG9ydDo6RnVsbFN0YXRlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RnVsbFN0YXRlQE50bXNEYklFUG9ydEBAUUVCQT9CS1haDQorOyBwdWJsaWM6IHNob3J0IF9fY2RlY2wgTnRtc0RiR3VpZDo6R2VuZXJhdGVIYXNoKHZvaWQpIF9fcHRyNjQNCis/R2VuZXJhdGVIYXNoQE50bXNEYkd1aWRAQFFFQUFGWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYkxpc3Q6Ok1hcDo6R2V0KGxvbmcsY2xhc3MgTnRtc0RiTGlzdEl0ZW0gKiBfX3B0cjY0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXRATWFwQE50bXNEYkxpc3RAQFFFQkFKSkFFQVBFQVZOdG1zRGJMaXN0SXRlbUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYlBhcnRpdGlvbjo6R2V0QWxsb2NPcHRpb24odm9pZCkgX19wdHI2NA0KKz9HZXRBbGxvY09wdGlvbkBOdG1zRGJQYXJ0aXRpb25AQFFFQUFLWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkxpYldvcmtJdGVtOjpHZXRBcHBsaWNhdGlvbkEoY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldEFwcGxpY2F0aW9uQUBOdG1zRGJMaWJXb3JrSXRlbUBAUUVBQVhQRUFESEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6OkdldEFwcGxpY2F0aW9uQShjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0QXBwbGljYXRpb25BQE50bXNEYk9wUmVxdWVzdEBAUUVBQVhQRUFESEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6R2V0QXBwbGljYXRpb25XKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0QXBwbGljYXRpb25XQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBWFBFQUdIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYk9wUmVxdWVzdDo6R2V0QXBwbGljYXRpb25XKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0QXBwbGljYXRpb25XQE50bXNEYk9wUmVxdWVzdEBAUUVBQVhQRUFHSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPYmplY3Q6OkdldEF0dHJpYnV0ZShjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0QXR0cmlidXRlQE50bXNEYk9iamVjdEBAUUVBQUtQRUFWTnRtc0RiRGF0YUN0eHRAQFBFQkRQRUFYUEVBS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpHZXRCYXJjb2RlQShjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0QmFyY29kZUFATnRtc0RiUGh5c2ljYWxNZWRpYUBAUUVBQVhQRUFESEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpHZXRCYXJjb2RlVyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldEJhcmNvZGVXQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQUFYUEVBR0hAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiVUlEZXN0aW5hdGlvbjo6R2V0Q29tcHV0ZXIodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXRDb21wdXRlckBOdG1zRGJVSURlc3RpbmF0aW9uQEBRRUFBWFBFQUdIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkxpYldvcmtJdGVtOjpHZXRDb21wdXRlckEoY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldENvbXB1dGVyQUBOdG1zRGJMaWJXb3JrSXRlbUBAUUVBQVhQRUFESEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6OkdldENvbXB1dGVyQShjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0Q29tcHV0ZXJBQE50bXNEYk9wUmVxdWVzdEBAUUVBQVhQRUFESEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6R2V0Q29tcHV0ZXJXKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0Q29tcHV0ZXJXQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBWFBFQUdIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYk9wUmVxdWVzdDo6R2V0Q29tcHV0ZXJXKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0Q29tcHV0ZXJXQE50bXNEYk9wUmVxdWVzdEBAUUVBQVhQRUFHSEBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6R2V0RGF0YShpbnQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0dldERhdGFATnRtc0RiUmVjb3JkUHJvcEBAUUVCQVBFQVhQRUFIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgTnRtc0RiQ2hhbmdlcjo6R2V0RGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERiT2JqZWN0QE50bXNEYkNoYW5nZXJAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJDaGFuZ2VyVHlwZTo6R2V0RGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERiT2JqZWN0QE50bXNEYkNoYW5nZXJUeXBlQEBNRUFBWFBFQVZOdG1zRGJEYXRhQ3R4dEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgTnRtc0RiQ29tcHV0ZXI6OkdldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREYk9iamVjdEBOdG1zRGJDb21wdXRlckBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlOjpHZXREYk9iamVjdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RGJPYmplY3RATnRtc0RiRHJpdmVAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJEcml2ZVR5cGU6OkdldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREYk9iamVjdEBOdG1zRGJEcml2ZVR5cGVAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJJRURvb3I6OkdldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREYk9iamVjdEBOdG1zRGJJRURvb3JAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJJRVBvcnQ6OkdldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREYk9iamVjdEBOdG1zRGJJRVBvcnRAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6R2V0RGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERiT2JqZWN0QE50bXNEYkxpYldvcmtJdGVtQEBNRUFBWFBFQVZOdG1zRGJEYXRhQ3R4dEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6R2V0RGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERiT2JqZWN0QE50bXNEYkxpYnJhcnlAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJMb2dpY2FsTWVkaWE6OkdldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREYk9iamVjdEBOdG1zRGJMb2dpY2FsTWVkaWFAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJNZWRpYVBvb2w6OkdldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREYk9iamVjdEBOdG1zRGJNZWRpYVBvb2xAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJNZWRpYVR5cGU6OkdldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREYk9iamVjdEBOdG1zRGJNZWRpYVR5cGVAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJPYmplY3Q6OkdldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREYk9iamVjdEBOdG1zRGJPYmplY3RAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6OkdldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREYk9iamVjdEBOdG1zRGJPcFJlcXVlc3RAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJQYXJ0aXRpb246OkdldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREYk9iamVjdEBOdG1zRGJQYXJ0aXRpb25AQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpHZXREYk9iamVjdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RGJPYmplY3RATnRtc0RiUGh5c2ljYWxNZWRpYUBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYlN0b3JhZ2VTbG90OjpHZXREYk9iamVjdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RGJPYmplY3RATnRtc0RiU3RvcmFnZVNsb3RAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJVSURlc3RpbmF0aW9uOjpHZXREYk9iamVjdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RGJPYmplY3RATnRtc0RiVUlEZXN0aW5hdGlvbkBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3MgTnRtc0RiUmVjb3JkUHJvcCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpHZXREYlByb3BlcnR5KGxvbmcpY29uc3QgIF9fcHRyNjQNCis/R2V0RGJQcm9wZXJ0eUBOdG1zRGJDaGFuZ2VyQEBNRUJBUEVBVk50bXNEYlJlY29yZFByb3BAQEpAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIE50bXNEYlJlY29yZFByb3AgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiQ2hhbmdlclR5cGU6OkdldERiUHJvcGVydHkobG9uZyljb25zdCAgX19wdHI2NA0KKz9HZXREYlByb3BlcnR5QE50bXNEYkNoYW5nZXJUeXBlQEBNRUJBUEVBVk50bXNEYlJlY29yZFByb3BAQEpAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIE50bXNEYlJlY29yZFByb3AgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiQ29tcHV0ZXI6OkdldERiUHJvcGVydHkobG9uZyljb25zdCAgX19wdHI2NA0KKz9HZXREYlByb3BlcnR5QE50bXNEYkNvbXB1dGVyQEBNRUJBUEVBVk50bXNEYlJlY29yZFByb3BAQEpAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIE50bXNEYlJlY29yZFByb3AgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiRHJpdmU6OkdldERiUHJvcGVydHkobG9uZyljb25zdCAgX19wdHI2NA0KKz9HZXREYlByb3BlcnR5QE50bXNEYkRyaXZlQEBNRUJBUEVBVk50bXNEYlJlY29yZFByb3BAQEpAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIE50bXNEYlJlY29yZFByb3AgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiRHJpdmVUeXBlOjpHZXREYlByb3BlcnR5KGxvbmcpY29uc3QgIF9fcHRyNjQNCis/R2V0RGJQcm9wZXJ0eUBOdG1zRGJEcml2ZVR5cGVAQE1FQkFQRUFWTnRtc0RiUmVjb3JkUHJvcEBASkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3MgTnRtc0RiUmVjb3JkUHJvcCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJJRURvb3I6OkdldERiUHJvcGVydHkobG9uZyljb25zdCAgX19wdHI2NA0KKz9HZXREYlByb3BlcnR5QE50bXNEYklFRG9vckBATUVCQVBFQVZOdG1zRGJSZWNvcmRQcm9wQEBKQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBOdG1zRGJSZWNvcmRQcm9wICogX19wdHI2NCBfX2NkZWNsIE50bXNEYklFUG9ydDo6R2V0RGJQcm9wZXJ0eShsb25nKWNvbnN0ICBfX3B0cjY0DQorP0dldERiUHJvcGVydHlATnRtc0RiSUVQb3J0QEBNRUJBUEVBVk50bXNEYlJlY29yZFByb3BAQEpAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIE50bXNEYlJlY29yZFByb3AgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06OkdldERiUHJvcGVydHkobG9uZyljb25zdCAgX19wdHI2NA0KKz9HZXREYlByb3BlcnR5QE50bXNEYkxpYldvcmtJdGVtQEBNRUJBUEVBVk50bXNEYlJlY29yZFByb3BAQEpAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIE50bXNEYlJlY29yZFByb3AgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6R2V0RGJQcm9wZXJ0eShsb25nKWNvbnN0ICBfX3B0cjY0DQorP0dldERiUHJvcGVydHlATnRtc0RiTGlicmFyeUBATUVCQVBFQVZOdG1zRGJSZWNvcmRQcm9wQEBKQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBOdG1zRGJSZWNvcmRQcm9wICogX19wdHI2NCBfX2NkZWNsIE50bXNEYkxvZ2ljYWxNZWRpYTo6R2V0RGJQcm9wZXJ0eShsb25nKWNvbnN0ICBfX3B0cjY0DQorP0dldERiUHJvcGVydHlATnRtc0RiTG9naWNhbE1lZGlhQEBNRUJBUEVBVk50bXNEYlJlY29yZFByb3BAQEpAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIE50bXNEYlJlY29yZFByb3AgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiTWVkaWFQb29sOjpHZXREYlByb3BlcnR5KGxvbmcpY29uc3QgIF9fcHRyNjQNCis/R2V0RGJQcm9wZXJ0eUBOdG1zRGJNZWRpYVBvb2xAQE1FQkFQRUFWTnRtc0RiUmVjb3JkUHJvcEBASkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3MgTnRtc0RiUmVjb3JkUHJvcCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJNZWRpYVR5cGU6OkdldERiUHJvcGVydHkobG9uZyljb25zdCAgX19wdHI2NA0KKz9HZXREYlByb3BlcnR5QE50bXNEYk1lZGlhVHlwZUBATUVCQVBFQVZOdG1zRGJSZWNvcmRQcm9wQEBKQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBOdG1zRGJSZWNvcmRQcm9wICogX19wdHI2NCBfX2NkZWNsIE50bXNEYk9iamVjdDo6R2V0RGJQcm9wZXJ0eShsb25nKWNvbnN0ICBfX3B0cjY0DQorP0dldERiUHJvcGVydHlATnRtc0RiT2JqZWN0QEBNRUJBUEVBVk50bXNEYlJlY29yZFByb3BAQEpAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIE50bXNEYlJlY29yZFByb3AgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiT3BSZXF1ZXN0OjpHZXREYlByb3BlcnR5KGxvbmcpY29uc3QgIF9fcHRyNjQNCis/R2V0RGJQcm9wZXJ0eUBOdG1zRGJPcFJlcXVlc3RAQE1FQkFQRUFWTnRtc0RiUmVjb3JkUHJvcEBASkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3MgTnRtc0RiUmVjb3JkUHJvcCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJQYXJ0aXRpb246OkdldERiUHJvcGVydHkobG9uZyljb25zdCAgX19wdHI2NA0KKz9HZXREYlByb3BlcnR5QE50bXNEYlBhcnRpdGlvbkBATUVCQVBFQVZOdG1zRGJSZWNvcmRQcm9wQEBKQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBOdG1zRGJSZWNvcmRQcm9wICogX19wdHI2NCBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6OkdldERiUHJvcGVydHkobG9uZyljb25zdCAgX19wdHI2NA0KKz9HZXREYlByb3BlcnR5QE50bXNEYlBoeXNpY2FsTWVkaWFAQE1FQkFQRUFWTnRtc0RiUmVjb3JkUHJvcEBASkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3MgTnRtc0RiUmVjb3JkUHJvcCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJTdG9yYWdlU2xvdDo6R2V0RGJQcm9wZXJ0eShsb25nKWNvbnN0ICBfX3B0cjY0DQorP0dldERiUHJvcGVydHlATnRtc0RiU3RvcmFnZVNsb3RAQE1FQkFQRUFWTnRtc0RiUmVjb3JkUHJvcEBASkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3MgTnRtc0RiUmVjb3JkUHJvcCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJVSURlc3RpbmF0aW9uOjpHZXREYlByb3BlcnR5KGxvbmcpY29uc3QgIF9fcHRyNjQNCis/R2V0RGJQcm9wZXJ0eUBOdG1zRGJVSURlc3RpbmF0aW9uQEBNRUJBUEVBVk50bXNEYlJlY29yZFByb3BAQEpAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpHZXREZXNjcmlwdGlvbkEoY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldERlc2NyaXB0aW9uQUBOdG1zRGJPYmplY3RAQFFFQUFYUEVBREhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpHZXREZXNjcmlwdGlvblcodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXREZXNjcmlwdGlvbldATnRtc0RiT2JqZWN0QEBRRUFBWFBFQUdIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlOjpHZXREcml2ZUxldHRlcih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldERyaXZlTGV0dGVyQE50bXNEYkRyaXZlQEBRRUFBWFBFQUdIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlOjpHZXREcml2ZUxldHRlckEoY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldERyaXZlTGV0dGVyQUBOdG1zRGJEcml2ZUBAUUVBQVhQRUFESEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6OkdldE1lc3NhZ2VBKGNoYXIgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXRNZXNzYWdlQUBOdG1zRGJPcFJlcXVlc3RAQFFFQUFYUEVBREhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiT3BSZXF1ZXN0OjpHZXRNZXNzYWdlVyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldE1lc3NhZ2VXQE50bXNEYk9wUmVxdWVzdEBAUUVBQVhQRUFHSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJPYmplY3Q6OkdldE5hbWVBKGNoYXIgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXROYW1lQUBOdG1zRGJPYmplY3RAQFFFQUFYUEVBREhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpHZXROYW1lVyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldE5hbWVXQE50bXNEYk9iamVjdEBAUUVBQVhQRUFHSEBaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBOdG1zRGJSZWNvcmRQcm9wICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3BMaXN0OjpHZXROdWxsKHZvaWQpDQorP0dldE51bGxATnRtc0RiUmVjb3JkUHJvcExpc3RAQFNBQUVBVk50bXNEYlJlY29yZFByb3BAQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJQYXJ0aXRpb246OkdldE9taWRMYWJlbEluZm9BKGNoYXIgKiBfX3B0cjY0LGludCljb25zdCAgX19wdHI2NA0KKz9HZXRPbWlkTGFiZWxJbmZvQUBOdG1zRGJQYXJ0aXRpb25AQFFFQkFYUEVBREhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUGFydGl0aW9uOjpHZXRPbWlkTGFiZWxJbmZvVyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldE9taWRMYWJlbEluZm9XQE50bXNEYlBhcnRpdGlvbkBAUUVCQVhQRUFHSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJQYXJ0aXRpb246OkdldE9taWRMYWJlbFR5cGVBKGNoYXIgKiBfX3B0cjY0LGludCljb25zdCAgX19wdHI2NA0KKz9HZXRPbWlkTGFiZWxUeXBlQUBOdG1zRGJQYXJ0aXRpb25AQFFFQkFYUEVBREhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUGFydGl0aW9uOjpHZXRPbWlkTGFiZWxUeXBlVyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldE9taWRMYWJlbFR5cGVXQE50bXNEYlBhcnRpdGlvbkBAUUVCQVhQRUFHSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpHZXRQYXRoTmFtZUEoY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldFBhdGhOYW1lQUBOdG1zRGJDaGFuZ2VyQEBRRUFBWFBFQURIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlOjpHZXRQYXRoTmFtZUEoY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldFBhdGhOYW1lQUBOdG1zRGJEcml2ZUBAUUVBQVhQRUFESEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpHZXRQYXRoTmFtZVcodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXRQYXRoTmFtZVdATnRtc0RiQ2hhbmdlckBAUUVBQVhQRUFHSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJEcml2ZTo6R2V0UGF0aE5hbWVXKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0UGF0aE5hbWVXQE50bXNEYkRyaXZlQEBRRUFBWFBFQUdIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkNoYW5nZXJUeXBlOjpHZXRQcm9kdWN0QShjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0UHJvZHVjdEFATnRtc0RiQ2hhbmdlclR5cGVAQFFFQUFYUEVBREhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiRHJpdmVUeXBlOjpHZXRQcm9kdWN0QShjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0UHJvZHVjdEFATnRtc0RiRHJpdmVUeXBlQEBRRUFBWFBFQURIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkNoYW5nZXJUeXBlOjpHZXRQcm9kdWN0Vyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldFByb2R1Y3RXQE50bXNEYkNoYW5nZXJUeXBlQEBRRUFBWFBFQUdIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlVHlwZTo6R2V0UHJvZHVjdFcodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXRQcm9kdWN0V0BOdG1zRGJEcml2ZVR5cGVAQFFFQUFYUEVBR0hAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBOdG1zRGJSZWNvcmRQcm9wICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYk9iamVjdDo6R2V0UHJvcGVydHkoY2xhc3MgTnRtc0RiUmVjb3JkUHJvcExpc3QgKiBfX3B0cjY0LGxvbmcpIF9fcHRyNjQNCis/R2V0UHJvcGVydHlATnRtc0RiT2JqZWN0QEBJRUFBQUVBVk50bXNEYlJlY29yZFByb3BAQFBFQVZOdG1zRGJSZWNvcmRQcm9wTGlzdEBASkBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlJlY29yZFByb3AgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpHZXRQcm9wZXJ0eShsb25nKSBfX3B0cjY0DQorP0dldFByb3BlcnR5QE50bXNEYk9iamVjdEBAUUVBQVBFQVZOdG1zRGJSZWNvcmRQcm9wQEBKQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUmVjb3JkUHJvcCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wTGlzdDo6R2V0UHJvcGVydHkobG9uZykgX19wdHI2NA0KKz9HZXRQcm9wZXJ0eUBOdG1zRGJSZWNvcmRQcm9wTGlzdEBAUUVBQUFFQVZOdG1zRGJSZWNvcmRQcm9wQEBKQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUHJvcERhdGFUeXBlIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3BMaXN0OjpHZXRQcm9wZXJ0eVR5cGUobG9uZykgX19wdHI2NA0KKz9HZXRQcm9wZXJ0eVR5cGVATnRtc0RiUmVjb3JkUHJvcExpc3RAQFFFQUFBRUJWTnRtc0RiUHJvcERhdGFUeXBlQEBKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkNoYW5nZXI6OkdldFJldmlzaW9uQShjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0UmV2aXNpb25BQE50bXNEYkNoYW5nZXJAQFFFQUFYUEVBREhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiRHJpdmU6OkdldFJldmlzaW9uQShjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0UmV2aXNpb25BQE50bXNEYkRyaXZlQEBRRUFBWFBFQURIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkNoYW5nZXI6OkdldFJldmlzaW9uVyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldFJldmlzaW9uV0BOdG1zRGJDaGFuZ2VyQEBRRUFBWFBFQUdIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlOjpHZXRSZXZpc2lvblcodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXRSZXZpc2lvbldATnRtc0RiRHJpdmVAQFFFQUFYUEVBR0hAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpHZXRTZWN1cml0eURlc2NyaXB0b3Iodm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0U2VjdXJpdHlEZXNjcmlwdG9yQE50bXNEYk9iamVjdEBAUUVBQUtQRUFYQUVBS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpHZXRTZXF1ZW5jZU51bWJlckEoY2hhciAqIF9fcHRyNjQsaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldFNlcXVlbmNlTnVtYmVyQUBOdG1zRGJQaHlzaWNhbE1lZGlhQEBRRUJBWFBFQURIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6OkdldFNlcXVlbmNlTnVtYmVyVyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldFNlcXVlbmNlTnVtYmVyV0BOdG1zRGJQaHlzaWNhbE1lZGlhQEBRRUJBWFBFQUdIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkNoYW5nZXI6OkdldFNlcmlhbE51bWJlckEoY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldFNlcmlhbE51bWJlckFATnRtc0RiQ2hhbmdlckBAUUVBQVhQRUFESEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJEcml2ZTo6R2V0U2VyaWFsTnVtYmVyQShjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0U2VyaWFsTnVtYmVyQUBOdG1zRGJEcml2ZUBAUUVBQVhQRUFESEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpHZXRTZXJpYWxOdW1iZXJXKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0U2VyaWFsTnVtYmVyV0BOdG1zRGJDaGFuZ2VyQEBRRUFBWFBFQUdIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlOjpHZXRTZXJpYWxOdW1iZXJXKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0U2VyaWFsTnVtYmVyV0BOdG1zRGJEcml2ZUBAUUVBQVhQRUFHSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJDb21wdXRlcjo6R2V0VUlEZXN0aW5hdGlvbnMoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsY2xhc3MgTnRtc0RiU2VsZWN0aW9uU2V0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRVSURlc3RpbmF0aW9uc0BOdG1zRGJDb21wdXRlckBAUUVBQUtQRUFWTnRtc0RiRGF0YUN0eHRAQEtBRUFWTnRtc0RiU2VsZWN0aW9uU2V0QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6R2V0VUlEZXN0aW5hdGlvbnMoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsY2xhc3MgTnRtc0RiU2VsZWN0aW9uU2V0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRVSURlc3RpbmF0aW9uc0BOdG1zRGJMaWJyYXJ5QEBRRUFBS1BFQVZOdG1zRGJEYXRhQ3R4dEBAS0FFQVZOdG1zRGJTZWxlY3Rpb25TZXRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6R2V0VXNlckEoY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldFVzZXJBQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBWFBFQURIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYk9wUmVxdWVzdDo6R2V0VXNlckEoY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldFVzZXJBQE50bXNEYk9wUmVxdWVzdEBAUUVBQVhQRUFESEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6R2V0VXNlclcodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXRVc2VyV0BOdG1zRGJMaWJXb3JrSXRlbUBAUUVBQVhQRUFHSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6OkdldFVzZXJXKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0VXNlcldATnRtc0RiT3BSZXF1ZXN0QEBRRUFBWFBFQUdIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkNoYW5nZXJUeXBlOjpHZXRWZW5kb3JBKGNoYXIgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXRWZW5kb3JBQE50bXNEYkNoYW5nZXJUeXBlQEBRRUFBWFBFQURIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlVHlwZTo6R2V0VmVuZG9yQShjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0VmVuZG9yQUBOdG1zRGJEcml2ZVR5cGVAQFFFQUFYUEVBREhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiQ2hhbmdlclR5cGU6OkdldFZlbmRvclcodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXRWZW5kb3JXQE50bXNEYkNoYW5nZXJUeXBlQEBRRUFBWFBFQUdIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlVHlwZTo6R2V0VmVuZG9yVyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0dldFZlbmRvcldATnRtc0RiRHJpdmVUeXBlQEBRRUFBWFBFQUdIQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RhdGFiYXNlICogX19wdHI2NCBfX2NkZWNsIE50bXNEYkRhdGFDdHh0OjpIYW5kbGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9IYW5kbGVATnRtc0RiRGF0YUN0eHRAQFFFQkFQRUFWTnRtc0RhdGFiYXNlQEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOdG1zRGJQcm9wR3VpZDo6SGFzQ2hhbmdlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0hhc0NoYW5nZWRATnRtc0RiUHJvcEd1aWRAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTnRtc0RiUHJvcEd1aWQ6Okhhc05ld1JlbGF0aW9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SGFzTmV3UmVsYXRpb25ATnRtc0RiUHJvcEd1aWRAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTnRtc0RiUHJvcEd1aWQ6Okhhc1ByZXZpb3VzUmVsYXRpb24odm9pZCljb25zdCAgX19wdHI2NA0KKz9IYXNQcmV2aW91c1JlbGF0aW9uQE50bXNEYlByb3BHdWlkQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE50bXNEYlByb3BHdWlkOjpIYXNSZWxhdGVkUHJvcGVydHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9IYXNSZWxhdGVkUHJvcGVydHlATnRtc0RiUHJvcEd1aWRAQFFFQkFIWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUHJvcEhlYWRlciAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpIZWFkZXIodm9pZCkgX19wdHI2NA0KKz9IZWFkZXJATnRtc0RiUmVjb3JkUHJvcEBAUUVBQUFFQVZOdG1zRGJQcm9wSGVhZGVyQEBYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTnRtc0RiUGh5c2ljYWxNZWRpYTo6SG9tZVNsb3RJZF9Jc05vdE51bGwodm9pZCkgX19wdHI2NA0KKz9Ib21lU2xvdElkX0lzTm90TnVsbEBOdG1zRGJQaHlzaWNhbE1lZGlhQEBRRUFBSlhaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUGh5c2ljYWxNZWRpYTo6SG9tZVNsb3RJZF9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SG9tZVNsb3RJZF9uQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQkFBRUJWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAgX19jZGVjbCBOdG1zRGJJRURvb3I6OklFRG9vck51bWJlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lFRG9vck51bWJlckBOdG1zRGJJRURvb3JAQFFFQkE/QktYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX2NkZWNsIE50bXNEYklFRG9vcjo6SUVEb29yU3RhdGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9JRURvb3JTdGF0ZUBOdG1zRGJJRURvb3JAQFFFQkE/QktYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6SUVEb29ycyhjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQsY2xhc3MgTnRtc0RiU2VsZWN0aW9uU2V0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9JRURvb3JzQE50bXNEYkxpYnJhcnlAQFFFQUFLUEVBVk50bXNEYkRhdGFDdHh0QEBBRUFWTnRtc0RiU2VsZWN0aW9uU2V0QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX2NkZWNsIE50bXNEYklFUG9ydDo6SUVQb3J0TnVtYmVyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SUVQb3J0TnVtYmVyQE50bXNEYklFUG9ydEBAUUVCQT9CS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpJRVBvcnRzKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCxjbGFzcyBOdG1zRGJTZWxlY3Rpb25TZXQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0lFUG9ydHNATnRtc0RiTGlicmFyeUBAUUVBQUtQRUFWTnRtc0RiRGF0YUN0eHRAQEFFQVZOdG1zRGJTZWxlY3Rpb25TZXRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJEYXRhQ3R4dDo6SW1wb3J0RGF0YWJhc2Uodm9pZCkgX19wdHI2NA0KKz9JbXBvcnREYXRhYmFzZUBOdG1zRGJEYXRhQ3R4dEBAUUVBQUtYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUHJvcEhlYWRlcjo6SW5jQ291bnQodm9pZCkgX19wdHI2NA0KKz9JbmNDb3VudEBOdG1zRGJQcm9wSGVhZGVyQEBRRUFBWFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJVSURlc3RpbmF0aW9uOjpJbmNSZWZlcmVuY2Uodm9pZCkgX19wdHI2NA0KKz9JbmNSZWZlcmVuY2VATnRtc0RiVUlEZXN0aW5hdGlvbkBAUUVBQUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiUmVjb3JkS2V5OjpJbmRleCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0luZGV4QE50bXNEYlJlY29yZEtleUBAUUVCQUtYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6SW5pdChzaG9ydCkgX19wdHI2NA0KKz9Jbml0QE50bXNEYlJlY29yZFByb3BAQFFFQUFYRkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpJbml0KHNob3J0LGNsYXNzIE50bXNEYkd1aWQgJiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9Jbml0QE50bXNEYlJlY29yZFByb3BAQFFFQUFYRkFFQVZOdG1zRGJHdWlkQEBIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6OkluaXQoc2hvcnQsY2xhc3MgTnRtc0RiTGlua2VkR3VpZCAmIF9fcHRyNjQsY2xhc3MgTnRtc0RiUmVjb3JkVHlwZSAqIF9fcHRyNjQsc2hvcnQpIF9fcHRyNjQNCis/SW5pdEBOdG1zRGJSZWNvcmRQcm9wQEBRRUFBWEZBRUFWTnRtc0RiTGlua2VkR3VpZEBAUEVBVk50bXNEYlJlY29yZFR5cGVAQEZAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6SW5pdChzaG9ydCxjaGFyICogX19wdHI2NCxpbnQsaW50KSBfX3B0cjY0DQorP0luaXRATnRtc0RiUmVjb3JkUHJvcEBAUUVBQVhGUEVBREhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6OkluaXQoc2hvcnQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz9Jbml0QE50bXNEYlJlY29yZFByb3BAQFFFQUFYRlBFQUVISEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpJbml0KHNob3J0LHNob3J0ICogX19wdHI2NCxpbnQsaW50KSBfX3B0cjY0DQorP0luaXRATnRtc0RiUmVjb3JkUHJvcEBAUUVBQVhGUEVBRkhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6OkluaXQoc2hvcnQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGludCxpbnQpIF9fcHRyNjQNCis/SW5pdEBOdG1zRGJSZWNvcmRQcm9wQEBRRUFBWEZQRUFHSEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6SW5pdChzaG9ydCxsb25nICogX19wdHI2NCxpbnQsaW50KSBfX3B0cjY0DQorP0luaXRATnRtc0RiUmVjb3JkUHJvcEBAUUVBQVhGUEVBSkhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6OkluaXQoc2hvcnQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz9Jbml0QE50bXNEYlJlY29yZFByb3BAQFFFQUFYRlBFQUtISEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpJbml0KHNob3J0LHVuaW9uIF9MQVJHRV9JTlRFR0VSICogX19wdHI2NCxpbnQsaW50KSBfX3B0cjY0DQorP0luaXRATnRtc0RiUmVjb3JkUHJvcEBAUUVBQVhGUEVBVF9MQVJHRV9JTlRFR0VSQEBISEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpJbml0KHNob3J0LHN0cnVjdCBfU1lTVEVNVElNRSAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0luaXRATnRtc0RiUmVjb3JkUHJvcEBAUUVBQVhGUEVBVV9TWVNURU1USU1FQEBIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6OkluaXQoc2hvcnQsY2xhc3MgTnRtc0RiUmVjb3JkS2V5TGlzdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0luaXRATnRtc0RiUmVjb3JkUHJvcEBAUUVBQVhGUEVBVk50bXNEYlJlY29yZEtleUxpc3RAQEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6SW5pdChzaG9ydCx2b2lkICogX19wdHI2NCxpbnQsaW50KSBfX3B0cjY0DQorP0luaXRATnRtc0RiUmVjb3JkUHJvcEBAUUVBQVhGUEVBWEhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgTnRtc0RiQ2hhbmdlcjo6SW5pdERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0RGJPYmplY3RATnRtc0RiQ2hhbmdlckBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYkNoYW5nZXJUeXBlOjpJbml0RGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXREYk9iamVjdEBOdG1zRGJDaGFuZ2VyVHlwZUBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYkNvbXB1dGVyOjpJbml0RGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXREYk9iamVjdEBOdG1zRGJDb21wdXRlckBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlOjpJbml0RGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXREYk9iamVjdEBOdG1zRGJEcml2ZUBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlVHlwZTo6SW5pdERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0RGJPYmplY3RATnRtc0RiRHJpdmVUeXBlQEBNRUFBWFBFQVZOdG1zRGJEYXRhQ3R4dEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgTnRtc0RiSUVEb29yOjpJbml0RGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXREYk9iamVjdEBOdG1zRGJJRURvb3JAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJJRVBvcnQ6OkluaXREYk9iamVjdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdERiT2JqZWN0QE50bXNEYklFUG9ydEBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYkxpYldvcmtJdGVtOjpJbml0RGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXREYk9iamVjdEBOdG1zRGJMaWJXb3JrSXRlbUBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYkxpYnJhcnk6OkluaXREYk9iamVjdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdERiT2JqZWN0QE50bXNEYkxpYnJhcnlAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJMb2dpY2FsTWVkaWE6OkluaXREYk9iamVjdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdERiT2JqZWN0QE50bXNEYkxvZ2ljYWxNZWRpYUBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYk1lZGlhUG9vbDo6SW5pdERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0RGJPYmplY3RATnRtc0RiTWVkaWFQb29sQEBNRUFBWFBFQVZOdG1zRGJEYXRhQ3R4dEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgTnRtc0RiTWVkaWFUeXBlOjpJbml0RGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXREYk9iamVjdEBOdG1zRGJNZWRpYVR5cGVAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJPYmplY3Q6OkluaXREYk9iamVjdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdERiT2JqZWN0QE50bXNEYk9iamVjdEBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYk9wUmVxdWVzdDo6SW5pdERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0RGJPYmplY3RATnRtc0RiT3BSZXF1ZXN0QEBNRUFBWFBFQVZOdG1zRGJEYXRhQ3R4dEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgTnRtc0RiUGFydGl0aW9uOjpJbml0RGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXREYk9iamVjdEBOdG1zRGJQYXJ0aXRpb25AQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpJbml0RGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXREYk9iamVjdEBOdG1zRGJQaHlzaWNhbE1lZGlhQEBNRUFBWFBFQVZOdG1zRGJEYXRhQ3R4dEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgTnRtc0RiU3RvcmFnZVNsb3Q6OkluaXREYk9iamVjdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdERiT2JqZWN0QE50bXNEYlN0b3JhZ2VTbG90QEBNRUFBWFBFQVZOdG1zRGJEYXRhQ3R4dEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgTnRtc0RiVUlEZXN0aW5hdGlvbjo6SW5pdERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0RGJPYmplY3RATnRtc0RiVUlEZXN0aW5hdGlvbkBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTnRtc0RiQ2hhbmdlcjo6SW5pdERlZmF1bHRzKHZvaWQpIF9fcHRyNjQNCis/SW5pdERlZmF1bHRzQE50bXNEYkNoYW5nZXJAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJDaGFuZ2VyVHlwZTo6SW5pdERlZmF1bHRzKHZvaWQpIF9fcHRyNjQNCis/SW5pdERlZmF1bHRzQE50bXNEYkNoYW5nZXJUeXBlQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTnRtc0RiQ29tcHV0ZXI6OkluaXREZWZhdWx0cyh2b2lkKSBfX3B0cjY0DQorP0luaXREZWZhdWx0c0BOdG1zRGJDb21wdXRlckBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlOjpJbml0RGVmYXVsdHModm9pZCkgX19wdHI2NA0KKz9Jbml0RGVmYXVsdHNATnRtc0RiRHJpdmVAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJEcml2ZVR5cGU6OkluaXREZWZhdWx0cyh2b2lkKSBfX3B0cjY0DQorP0luaXREZWZhdWx0c0BOdG1zRGJEcml2ZVR5cGVAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJJRURvb3I6OkluaXREZWZhdWx0cyh2b2lkKSBfX3B0cjY0DQorP0luaXREZWZhdWx0c0BOdG1zRGJJRURvb3JAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJJRVBvcnQ6OkluaXREZWZhdWx0cyh2b2lkKSBfX3B0cjY0DQorP0luaXREZWZhdWx0c0BOdG1zRGJJRVBvcnRAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6SW5pdERlZmF1bHRzKHZvaWQpIF9fcHRyNjQNCis/SW5pdERlZmF1bHRzQE50bXNEYkxpYldvcmtJdGVtQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6SW5pdERlZmF1bHRzKHZvaWQpIF9fcHRyNjQNCis/SW5pdERlZmF1bHRzQE50bXNEYkxpYnJhcnlAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJMb2dpY2FsTWVkaWE6OkluaXREZWZhdWx0cyh2b2lkKSBfX3B0cjY0DQorP0luaXREZWZhdWx0c0BOdG1zRGJMb2dpY2FsTWVkaWFAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJNZWRpYVBvb2w6OkluaXREZWZhdWx0cyh2b2lkKSBfX3B0cjY0DQorP0luaXREZWZhdWx0c0BOdG1zRGJNZWRpYVBvb2xAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJNZWRpYVR5cGU6OkluaXREZWZhdWx0cyh2b2lkKSBfX3B0cjY0DQorP0luaXREZWZhdWx0c0BOdG1zRGJNZWRpYVR5cGVAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJPYmplY3Q6OkluaXREZWZhdWx0cyh2b2lkKSBfX3B0cjY0DQorP0luaXREZWZhdWx0c0BOdG1zRGJPYmplY3RAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6OkluaXREZWZhdWx0cyh2b2lkKSBfX3B0cjY0DQorP0luaXREZWZhdWx0c0BOdG1zRGJPcFJlcXVlc3RAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJQYXJ0aXRpb246OkluaXREZWZhdWx0cyh2b2lkKSBfX3B0cjY0DQorP0luaXREZWZhdWx0c0BOdG1zRGJQYXJ0aXRpb25AQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpJbml0RGVmYXVsdHModm9pZCkgX19wdHI2NA0KKz9Jbml0RGVmYXVsdHNATnRtc0RiUGh5c2ljYWxNZWRpYUBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIE50bXNEYlN0b3JhZ2VTbG90OjpJbml0RGVmYXVsdHModm9pZCkgX19wdHI2NA0KKz9Jbml0RGVmYXVsdHNATnRtc0RiU3RvcmFnZVNsb3RAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJVSURlc3RpbmF0aW9uOjpJbml0RGVmYXVsdHModm9pZCkgX19wdHI2NA0KKz9Jbml0RGVmYXVsdHNATnRtc0RiVUlEZXN0aW5hdGlvbkBAQUVBQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgTnRtc0RiRGF0YUN0eHQ6OkluaXRNdXRleCh2b2lkKQ0KKz9Jbml0TXV0ZXhATnRtc0RiRGF0YUN0eHRAQFNBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYk9iamVjdDo6SW5pdGlhbGl6ZU9iamVjdCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0luaXRpYWxpemVPYmplY3RATnRtc0RiT2JqZWN0QEBNRUFBS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPYmplY3Q6Okluc2VydChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5zZXJ0QE50bXNEYk9iamVjdEBAVUVBQUtQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE50bXNEYkNoYW5nZXI6Okluc3RhbmNlTmFtZVcodm9pZCljb25zdCAgX19wdHI2NA0KKz9JbnN0YW5jZU5hbWVXQE50bXNEYkNoYW5nZXJAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiRHJpdmU6Okluc3RhbmNlTmFtZVcodm9pZCljb25zdCAgX19wdHI2NA0KKz9JbnN0YW5jZU5hbWVXQE50bXNEYkRyaXZlQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgY29uc3QgIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6SW52ZW50b3J5TWV0aG9kKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SW52ZW50b3J5TWV0aG9kQE50bXNEYkxpYnJhcnlAQFFFQkE/QktYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6OkludmVudG9yeVN0YXRlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SW52ZW50b3J5U3RhdGVATnRtc0RiUGh5c2ljYWxNZWRpYUBAUUVCQT9CS1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6OklzQnVmZmVyVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0J1ZmZlclZhbGlkQE50bXNEYlJlY29yZFByb3BAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpJc01vZGlmaWVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNNb2RpZmllZEBOdG1zRGJPYmplY3RAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6SXNNb2RpZmllZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzTW9kaWZpZWRATnRtc0RiUmVjb3JkUHJvcEBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOdG1zRGJPYmplY3Q6OklzTmV3KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNOZXdATnRtc0RiT2JqZWN0QEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE50bXNEYlJlY29yZEtleTo6SXNOZXcodm9pZCkgX19wdHI2NA0KKz9Jc05ld0BOdG1zRGJSZWNvcmRLZXlAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6SXNOdWxsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNOdWxsQE50bXNEYlJlY29yZFByb3BAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTnRtc0RiRXJyb3I6OklzU3VjY2Vzcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzU3VjY2Vzc0BOdG1zRGJFcnJvckBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOdG1zRGF0YWJhc2U6OklzVmFsaWQodm9pZCkgX19wdHI2NA0KKz9Jc1ZhbGlkQE50bXNEYXRhYmFzZUBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOdG1zRGJEYXRhQ3R4dDo6SXNWYWxpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVmFsaWRATnRtc0RiRGF0YUN0eHRAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBOdG1zRGJPYmplY3RAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTnRtc0RiUmVjb3JkS2V5OjpJc1ZhbGlkKHZvaWQpIF9fcHRyNjQNCis/SXNWYWxpZEBOdG1zRGJSZWNvcmRLZXlAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6SXNWYWxpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVmFsaWRATnRtc0RiUmVjb3JkUHJvcEBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wTGlzdDo6SXNWYWxpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVmFsaWRATnRtc0RiUmVjb3JkUHJvcExpc3RAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTnRtc0RiUmVjb3JkVHlwZTo6SXNWYWxpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVmFsaWRATnRtc0RiUmVjb3JkVHlwZUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOdG1zRGJTZWxlY3Rpb25TZXQ6OklzVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1ZhbGlkQE50bXNEYlNlbGVjdGlvblNldEBAUUVCQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTnRtc0RiUHJvcFJlbGF0aW9uOjpLZXlDb3VudCh2b2lkKSBfX3B0cjY0DQorP0tleUNvdW50QE50bXNEYlByb3BSZWxhdGlvbkBAUUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTnRtc0RiRHJpdmU6Okxhc3RDbGVhbmVkVHNfSXNOb3ROdWxsKHZvaWQpIF9fcHRyNjQNCis/TGFzdENsZWFuZWRUc19Jc05vdE51bGxATnRtc0RiRHJpdmVAQFFFQUFKWFoNCis7IHB1YmxpYzogc3RydWN0IF9TWVNURU1USU1FIGNvbnN0ICBfX2NkZWNsIE50bXNEYkRyaXZlOjpMYXN0Q2xlYW5lZFRzX24odm9pZCljb25zdCAgX19wdHI2NA0KKz9MYXN0Q2xlYW5lZFRzX25ATnRtc0RiRHJpdmVAQFFFQkE/QlVfU1lTVEVNVElNRUBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYk9iamVjdDo6TGFzdEVycm9yKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TGFzdEVycm9yQE50bXNEYk9iamVjdEBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiRGF0YUN0eHQ6Okxhc3RFcnJvckNvZGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9MYXN0RXJyb3JDb2RlQE50bXNEYkRhdGFDdHh0QEBRRUJBS1haDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpMYXN0RXJyb3JTdHJpbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9MYXN0RXJyb3JTdHJpbmdATnRtc0RiT2JqZWN0QEBRRUJBUEVCRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJQcm9wZXJ0eVZhbHVlOjpMYXN0U3RhdHVzKHZvaWQpIF9fcHRyNjQNCis/TGFzdFN0YXR1c0BOdG1zRGJQcm9wZXJ0eVZhbHVlQEBRRUFBS1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJEYXRhQ3R4dDo6TGVhdmVDb25uQ3JpdFNlY3Rpb24odm9pZCkgX19wdHI2NA0KKz9MZWF2ZUNvbm5Dcml0U2VjdGlvbkBOdG1zRGJEYXRhQ3R4dEBAUUVBQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgTnRtc0RiU3RyaW5nOjpMZW5ndGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9MZW5ndGhATnRtc0RiU3RyaW5nQEBRRUJBX0tYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6TGliQ3VycmVudE1lZGlhKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCxjbGFzcyBOdG1zRGJTZWxlY3Rpb25TZXQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0xpYkN1cnJlbnRNZWRpYUBOdG1zRGJMaWJyYXJ5QEBRRUFBS1BFQVZOdG1zRGJEYXRhQ3R4dEBAQUVBVk50bXNEYlNlbGVjdGlvblNldEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6OkxpYkN1cnJlbnRNZWRpYV9Jc05vdE51bGwodm9pZCljb25zdCAgX19wdHI2NA0KKz9MaWJDdXJyZW50TWVkaWFfSXNOb3ROdWxsQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQkFKWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpMaWJDdXJyZW50TWVkaWFfbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0xpYkN1cnJlbnRNZWRpYV9uQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQkFBRUJWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYkNvbXB1dGVyOjpMaWJSZXFDbGVhblRpbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9MaWJSZXFDbGVhblRpbWVATnRtc0RiQ29tcHV0ZXJAQFFFQkFKWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkNvbXB1dGVyOjpMaWJSZXFGbGFncyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0xpYlJlcUZsYWdzQE50bXNEYkNvbXB1dGVyQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpMaWJXb3JrSXRlbXMoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0LGNsYXNzIE50bXNEYlNlbGVjdGlvblNldCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/TGliV29ya0l0ZW1zQE50bXNEYkxpYnJhcnlAQFFFQUFLUEVBVk50bXNEYkRhdGFDdHh0QEBBRUFWTnRtc0RiU2VsZWN0aW9uU2V0QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX2NkZWNsIE50bXNEYkxpYnJhcnk6OkxpYnJhcnlUeXBlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TGlicmFyeVR5cGVATnRtc0RiTGlicmFyeUBAUUVCQT9CS1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpMaWJyYXJ5X0lzTm90TnVsbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0xpYnJhcnlfSXNOb3ROdWxsQE50bXNEYkNoYW5nZXJAQFFFQkFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYkRyaXZlOjpMaWJyYXJ5X0lzTm90TnVsbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0xpYnJhcnlfSXNOb3ROdWxsQE50bXNEYkRyaXZlQEBRRUJBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJJRURvb3I6OkxpYnJhcnlfSXNOb3ROdWxsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TGlicmFyeV9Jc05vdE51bGxATnRtc0RiSUVEb29yQEBRRUJBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJJRVBvcnQ6OkxpYnJhcnlfSXNOb3ROdWxsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TGlicmFyeV9Jc05vdE51bGxATnRtc0RiSUVQb3J0QEBRRUJBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6TGlicmFyeV9Jc05vdE51bGwodm9pZCljb25zdCAgX19wdHI2NA0KKz9MaWJyYXJ5X0lzTm90TnVsbEBOdG1zRGJMaWJXb3JrSXRlbUBAUUVCQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTnRtc0RiU3RvcmFnZVNsb3Q6OkxpYnJhcnlfSXNOb3ROdWxsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TGlicmFyeV9Jc05vdE51bGxATnRtc0RiU3RvcmFnZVNsb3RAQFFFQkFKWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpMaWJyYXJ5X24odm9pZCljb25zdCAgX19wdHI2NA0KKz9MaWJyYXJ5X25ATnRtc0RiQ2hhbmdlckBAUUVCQUFFQlZOdG1zRGJHdWlkQEBYWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYkRyaXZlOjpMaWJyYXJ5X24odm9pZCljb25zdCAgX19wdHI2NA0KKz9MaWJyYXJ5X25ATnRtc0RiRHJpdmVAQFFFQkFBRUJWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJJRURvb3I6OkxpYnJhcnlfbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0xpYnJhcnlfbkBOdG1zRGJJRURvb3JAQFFFQkFBRUJWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJJRVBvcnQ6OkxpYnJhcnlfbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0xpYnJhcnlfbkBOdG1zRGJJRVBvcnRAQFFFQkFBRUJWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6TGlicmFyeV9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TGlicmFyeV9uQE50bXNEYkxpYldvcmtJdGVtQEBRRUJBQUVCVk50bXNEYkd1aWRAQFhaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiU3RvcmFnZVNsb3Q6OkxpYnJhcnlfbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0xpYnJhcnlfbkBOdG1zRGJTdG9yYWdlU2xvdEBAUUVCQUFFQlZOdG1zRGJHdWlkQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiQ29tcHV0ZXI6OkxpYnJhcnlzKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCxjbGFzcyBOdG1zRGJTZWxlY3Rpb25TZXQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0xpYnJhcnlzQE50bXNEYkNvbXB1dGVyQEBRRUFBS1BFQVZOdG1zRGJEYXRhQ3R4dEBAQUVBVk50bXNEYlNlbGVjdGlvblNldEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAgX19jZGVjbCBOdG1zRGJQYXJ0aXRpb246OkxpZmVDeWNsZVN0YXRlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TGlmZUN5Y2xlU3RhdGVATnRtc0RiUGFydGl0aW9uQEBRRUJBP0JLWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUmVjb3JkS2V5TGlzdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJQcm9wUmVsYXRpb246Okxpc3Qodm9pZCkgX19wdHI2NA0KKz9MaXN0QE50bXNEYlByb3BSZWxhdGlvbkBAUUVBQVBFQVZOdG1zRGJSZWNvcmRLZXlMaXN0QEBYWg0KKzsgcHJpdmF0ZTogY2xhc3MgTnRtc0RiUmVjb3JkS2V5TGlzdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJTZWxlY3Rpb25TZXQ6Okxpc3Qodm9pZCkgX19wdHI2NA0KKz9MaXN0QE50bXNEYlNlbGVjdGlvblNldEBAQUVBQVBFQVZOdG1zRGJSZWNvcmRLZXlMaXN0QEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpMb2FkKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0xvYWRATnRtc0RiUmVjb3JkUHJvcEBAUUVBQUlQRUFFQUVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJNZWRpYVBvb2w6OkxvZ2ljYWxQb29sTWVtYmVyKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCxjbGFzcyBOdG1zRGJTZWxlY3Rpb25TZXQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0xvZ2ljYWxQb29sTWVtYmVyQE50bXNEYk1lZGlhUG9vbEBAUUVBQUtQRUFWTnRtc0RiRGF0YUN0eHRAQEFFQVZOdG1zRGJTZWxlY3Rpb25TZXRAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJQYXJ0aXRpb246OkxvZ2ljYWxtZWRpYV9Jc05vdE51bGwodm9pZCljb25zdCAgX19wdHI2NA0KKz9Mb2dpY2FsbWVkaWFfSXNOb3ROdWxsQE50bXNEYlBhcnRpdGlvbkBAUUVCQUpYWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlBhcnRpdGlvbjo6TG9naWNhbG1lZGlhX24odm9pZCljb25zdCAgX19wdHI2NA0KKz9Mb2dpY2FsbWVkaWFfbkBOdG1zRGJQYXJ0aXRpb25AQFFFQkFBRUJWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAgX19jZGVjbCBOdG1zRGJNZWRpYVBvb2w6Ok1heEFsbG9jYXRlcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP01heEFsbG9jYXRlc0BOdG1zRGJNZWRpYVBvb2xAQFFFQkE/QktYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAgX19jZGVjbCBOdG1zRGJJRVBvcnQ6Ok1heEV4dGVuZFNlY3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9NYXhFeHRlbmRTZWNzQE50bXNEYklFUG9ydEBAUUVCQT9CR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICBfX2NkZWNsIE50bXNEYklFRG9vcjo6TWF4T3BlblNlY3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9NYXhPcGVuU2Vjc0BOdG1zRGJJRURvb3JAQFFFQkE/QkdYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTnRtc0RiTG9naWNhbE1lZGlhOjpNZWRpYVBvb2xJZF9Jc05vdE51bGwodm9pZCkgX19wdHI2NA0KKz9NZWRpYVBvb2xJZF9Jc05vdE51bGxATnRtc0RiTG9naWNhbE1lZGlhQEBRRUFBSlhaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiTG9naWNhbE1lZGlhOjpNZWRpYVBvb2xJZF9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TWVkaWFQb29sSWRfbkBOdG1zRGJMb2dpY2FsTWVkaWFAQFFFQkFBRUJWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkNvbXB1dGVyOjpNZWRpYVBvb2xQb2xpY3kodm9pZCljb25zdCAgX19wdHI2NA0KKz9NZWRpYVBvb2xQb2xpY3lATnRtc0RiQ29tcHV0ZXJAQFFFQkFLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYkNvbXB1dGVyOjpNZWRpYVJvb3RfSXNOb3ROdWxsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TWVkaWFSb290X0lzTm90TnVsbEBOdG1zRGJDb21wdXRlckBAUUVCQUpYWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYkNvbXB1dGVyOjpNZWRpYVJvb3Rfbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP01lZGlhUm9vdF9uQE50bXNEYkNvbXB1dGVyQEBRRUJBQUVCVk50bXNEYkd1aWRAQFhaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkd1aWQgY29uc3QgIF9fY2RlY2wgTnRtc0RiTWVkaWFQb29sOjpNZWRpYVR5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9NZWRpYVR5cGVATnRtc0RiTWVkaWFQb29sQEBRRUJBP0JWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAgX19jZGVjbCBOdG1zRGJNZWRpYVR5cGU6Ok1lZGlhVHlwZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP01lZGlhVHlwZUBOdG1zRGJNZWRpYVR5cGVAQFFFQkE/QktYWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6Ok1lZGlhVHlwZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP01lZGlhVHlwZUBOdG1zRGJQaHlzaWNhbE1lZGlhQEBRRUJBP0JWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6Ok1lZGlhVHlwZUNvZGUodm9pZCkgX19wdHI2NA0KKz9NZWRpYVR5cGVDb2RlQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQUFLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYk1lZGlhUG9vbDo6TWVkaWFUeXBlX0lzTm90TnVsbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP01lZGlhVHlwZV9Jc05vdE51bGxATnRtc0RiTWVkaWFQb29sQEBRRUJBSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpNZWRpYVR5cGVzKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCxjbGFzcyBOdG1zRGJTZWxlY3Rpb25TZXQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP01lZGlhVHlwZXNATnRtc0RiTGlicmFyeUBAUUVBQUtQRUFWTnRtc0RiRGF0YUN0eHRAQEFFQVZOdG1zRGJTZWxlY3Rpb25TZXRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE50bXNEYk9wUmVxdWVzdDo6TWVzc2FnZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP01lc3NhZ2VATnRtc0RiT3BSZXF1ZXN0QEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHN0cnVjdCBfU1lTVEVNVElNRSAgX19jZGVjbCBOdG1zRGJPYmplY3Q6Ok1vZGlmeVRzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TW9kaWZ5VHNATnRtc0RiT2JqZWN0QEBRRUJBP0FVX1NZU1RFTVRJTUVAQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYk9iamVjdDo6TW9kaWZ5VmFsdWVUb051bGwobG9uZykgX19wdHI2NA0KKz9Nb2RpZnlWYWx1ZVRvTnVsbEBOdG1zRGJPYmplY3RAQE1FQUFYSkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgY29uc3QgIF9fY2RlY2wgTnRtc0RiUGFydGl0aW9uOjpNb3VudENvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TW91bnRDb3VudEBOdG1zRGJQYXJ0aXRpb25AQFFFQkE/QktYWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6Ok1vdW50ZWRQYXJ0aXRpb24odm9pZCljb25zdCAgX19wdHI2NA0KKz9Nb3VudGVkUGFydGl0aW9uQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQkFBRUJWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAgX19jZGVjbCBOdG1zRGJNZWRpYVBvb2w6Ok1wb29sVHlwZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP01wb29sVHlwZUBOdG1zRGJNZWRpYVBvb2xAQFFFQkE/QktYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJPYmplY3Q6Ok5hbWVXKHZvaWQpIF9fcHRyNjQNCis/TmFtZVdATnRtc0RiT2JqZWN0QEBRRUFBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE50bXNEYk9iamVjdDo6TmFtZVcodm9pZCljb25zdCAgX19wdHI2NA0KKz9OYW1lV0BOdG1zRGJPYmplY3RAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYk9iamVjdDo6TmFtZV9Jc05vdE51bGwodm9pZCkgX19wdHI2NA0KKz9OYW1lX0lzTm90TnVsbEBOdG1zRGJPYmplY3RAQFFFQUFKWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJPYmplY3Q6Ok5hbWVfbih2b2lkKSBfX3B0cjY0DQorP05hbWVfbkBOdG1zRGJPYmplY3RAQFFFQUFQRUJEWFoNCis7IHB1YmxpYzogc2hvcnQgY29uc3QgIF9fY2RlY2wgTnRtc0RiRHJpdmU6Ok5lZWRzQ2xlYW5pbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9OZWVkc0NsZWFuaW5nQE50bXNEYkRyaXZlQEBRRUJBP0JGWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkd1aWQ6Ok5ldyh2b2lkKSBfX3B0cjY0DQorP05ld0BOdG1zRGJHdWlkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wTGlzdDo6TmV3UHJvcEJpbmFyeShsb25nLHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9OZXdQcm9wQmluYXJ5QE50bXNEYlJlY29yZFByb3BMaXN0QEBRRUFBWEpQRUFFSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wTGlzdDo6TmV3UHJvcENoYXIobG9uZyxjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/TmV3UHJvcENoYXJATnRtc0RiUmVjb3JkUHJvcExpc3RAQFFFQUFYSlBFQURIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3BMaXN0OjpOZXdQcm9wQ2hhcihsb25nLHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9OZXdQcm9wQ2hhckBOdG1zRGJSZWNvcmRQcm9wTGlzdEBAUUVBQVhKUEVBRUhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcExpc3Q6Ok5ld1Byb3BHdWlkKGxvbmcsY2xhc3MgTnRtc0RiR3VpZCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/TmV3UHJvcEd1aWRATnRtc0RiUmVjb3JkUHJvcExpc3RAQFFFQUFYSkFFQVZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcExpc3Q6Ok5ld1Byb3BHdWlkKGxvbmcsY2xhc3MgTnRtc0RiTGlua2VkR3VpZCAmIF9fcHRyNjQsY2xhc3MgTnRtc0RiUmVjb3JkVHlwZSAqIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz9OZXdQcm9wR3VpZEBOdG1zRGJSZWNvcmRQcm9wTGlzdEBAUUVBQVhKQUVBVk50bXNEYkxpbmtlZEd1aWRAQFBFQVZOdG1zRGJSZWNvcmRUeXBlQEBKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3BMaXN0OjpOZXdQcm9wTGFyZ2VJbnQobG9uZyx1bmlvbiBfTEFSR0VfSU5URUdFUiAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP05ld1Byb3BMYXJnZUludEBOdG1zRGJSZWNvcmRQcm9wTGlzdEBAUUVBQVhKUEVBVF9MQVJHRV9JTlRFR0VSQEBIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3BMaXN0OjpOZXdQcm9wTG9uZyhsb25nLGxvbmcgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9OZXdQcm9wTG9uZ0BOdG1zRGJSZWNvcmRQcm9wTGlzdEBAUUVBQVhKUEVBSkhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcExpc3Q6Ok5ld1Byb3BMb25nKGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP05ld1Byb3BMb25nQE50bXNEYlJlY29yZFByb3BMaXN0QEBRRUFBWEpQRUFLSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wTGlzdDo6TmV3UHJvcFJlbGF0aW9uKGxvbmcpIF9fcHRyNjQNCis/TmV3UHJvcFJlbGF0aW9uQE50bXNEYlJlY29yZFByb3BMaXN0QEBRRUFBWEpAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcExpc3Q6Ok5ld1Byb3BSZWxhdGlvbihsb25nLGNsYXNzIE50bXNEYlJlY29yZEtleUxpc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP05ld1Byb3BSZWxhdGlvbkBOdG1zRGJSZWNvcmRQcm9wTGlzdEBAUUVBQVhKUEVBVk50bXNEYlJlY29yZEtleUxpc3RAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wTGlzdDo6TmV3UHJvcFNob3J0KGxvbmcsc2hvcnQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9OZXdQcm9wU2hvcnRATnRtc0RiUmVjb3JkUHJvcExpc3RAQFFFQUFYSlBFQUZIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3BMaXN0OjpOZXdQcm9wU2hvcnQobG9uZyx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP05ld1Byb3BTaG9ydEBOdG1zRGJSZWNvcmRQcm9wTGlzdEBAUUVBQVhKUEVBR0hAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcExpc3Q6Ok5ld1Byb3BUaW1lRGF0ZShsb25nLHN0cnVjdCBfU1lTVEVNVElNRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TmV3UHJvcFRpbWVEYXRlQE50bXNEYlJlY29yZFByb3BMaXN0QEBRRUFBWEpQRUFVX1NZU1RFTVRJTUVAQEBaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkd1aWQgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiUHJvcEd1aWQ6Ok5ld1JlbGF0aW9uR3VpZCh2b2lkKSBfX3B0cjY0DQorP05ld1JlbGF0aW9uR3VpZEBOdG1zRGJQcm9wR3VpZEBAUUVBQUFFQVZOdG1zRGJHdWlkQEBYWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJMaXN0OjpNYXAgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiTGlzdDo6TWFwOjpOZXh0KHZvaWQpIF9fcHRyNjQNCis/TmV4dEBNYXBATnRtc0RiTGlzdEBAUUVBQVBFQVYxMkBYWg0KKzsgcHVibGljOiBsb25nIGNvbnN0ICBfX2NkZWNsIE50bXNEYk1lZGlhVHlwZTo6TmV4dFNlcXVlbmNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TmV4dFNlcXVlbmNlQE50bXNEYk1lZGlhVHlwZUBAUUVCQT9CSlhaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBOdG1zRGJQcm9wRGF0YVR5cGUgIE50bXNEYlJlY29yZFByb3BMaXN0OjpOb1R5cGUNCis/Tm9UeXBlQE50bXNEYlJlY29yZFByb3BMaXN0QEAyVk50bXNEYlByb3BEYXRhVHlwZUBAQSBEQVRBDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiSW5zdGFsbCh2b2lkKQ0KKz9OdG1zRGJJbnN0YWxsQEBZQUtYWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYlJlbW92ZSh2b2lkKQ0KKz9OdG1zRGJSZW1vdmVAQFlBS1haDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiU2h1dGRvd24odm9pZCkNCis/TnRtc0RiU2h1dGRvd25AQFlBS1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE50bXNEYkd1aWQ6Ok51bGwodm9pZCljb25zdCAgX19wdHI2NA0KKz9OdWxsQE50bXNEYkd1aWRAQFFFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiR3VpZDo6TnVsbEd1aWQodm9pZCkNCis/TnVsbEd1aWRATnRtc0RiR3VpZEBAU0FBRUJWMUBYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgTnRtc0RiUmVjb3JkVW5pcXVlS2V5ICBOdG1zRGJSZWNvcmRVbmlxdWVLZXk6Ok51bGxLZXkNCis/TnVsbEtleUBOdG1zRGJSZWNvcmRVbmlxdWVLZXlAQDJWMUBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIE50bXNEYlJlY29yZFByb3AgIE50bXNEYlJlY29yZFByb3A6Ok51bGxQcm9wDQorP051bGxQcm9wQE50bXNEYlJlY29yZFByb3BAQDJWMUBBIERBVEENCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkxpYnJhcnk6Ok51bUNoYW5nZXJzKHZvaWQpIF9fcHRyNjQNCis/TnVtQ2hhbmdlcnNATnRtc0RiTGlicmFyeUBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6TnVtRG9vcnModm9pZCkgX19wdHI2NA0KKz9OdW1Eb29yc0BOdG1zRGJMaWJyYXJ5QEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpOdW1Ecml2ZXModm9pZCkgX19wdHI2NA0KKz9OdW1Ecml2ZXNATnRtc0RiTGlicmFyeUBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTWVkaWFQb29sOjpOdW1Gb2xkZXJzKHZvaWQpIF9fcHRyNjQNCis/TnVtRm9sZGVyc0BOdG1zRGJNZWRpYVBvb2xAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkxpYnJhcnk6Ok51bUxpYldvcmtJdGVtcyh2b2lkKSBfX3B0cjY0DQorP051bUxpYldvcmtJdGVtc0BOdG1zRGJMaWJyYXJ5QEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJNZWRpYVBvb2w6Ok51bUxvZ2ljYWxNZWRpYSh2b2lkKSBfX3B0cjY0DQorP051bUxvZ2ljYWxNZWRpYUBOdG1zRGJNZWRpYVBvb2xAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkxpYnJhcnk6Ok51bU1lZGlhKHZvaWQpIF9fcHRyNjQNCis/TnVtTWVkaWFATnRtc0RiTGlicmFyeUBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6TnVtTWVkaWFUeXBlcyh2b2lkKSBfX3B0cjY0DQorP051bU1lZGlhVHlwZXNATnRtc0RiTGlicmFyeUBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiUGh5c2ljYWxNZWRpYTo6TnVtUGFydGl0aW9ucyh2b2lkKSBfX3B0cjY0DQorP051bVBhcnRpdGlvbnNATnRtc0RiUGh5c2ljYWxNZWRpYUBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTWVkaWFQb29sOjpOdW1QaHlzaWNhbE1lZGlhKHZvaWQpIF9fcHRyNjQNCis/TnVtUGh5c2ljYWxNZWRpYUBOdG1zRGJNZWRpYVBvb2xAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkxpYnJhcnk6Ok51bVBvcnRzKHZvaWQpIF9fcHRyNjQNCis/TnVtUG9ydHNATnRtc0RiTGlicmFyeUBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6TnVtU2xvdHModm9pZCkgX19wdHI2NA0KKz9OdW1TbG90c0BOdG1zRGJMaWJyYXJ5QEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJDb21wdXRlcjo6TnVtVUlEZXN0aW5hdGlvbnModW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9OdW1VSURlc3RpbmF0aW9uc0BOdG1zRGJDb21wdXRlckBAUUVBQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkxpYnJhcnk6Ok51bVVJRGVzdGluYXRpb25zKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/TnVtVUlEZXN0aW5hdGlvbnNATnRtc0RiTGlicmFyeUBAUUVBQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpOdW1iZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9OdW1iZXJATnRtc0RiQ2hhbmdlckBAUUVCQT9CS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgY29uc3QgIF9fY2RlY2wgTnRtc0RiRHJpdmVUeXBlOjpOdW1iZXJPZkhlYWRzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/TnVtYmVyT2ZIZWFkc0BOdG1zRGJEcml2ZVR5cGVAQFFFQkE/QktYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX2NkZWNsIE50bXNEYk1lZGlhVHlwZTo6TnVtYmVyT2ZTaWRlcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP051bWJlck9mU2lkZXNATnRtc0RiTWVkaWFUeXBlQEBRRUJBP0JLWFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIE50bXNEYk9ialR5cGVEZWYgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiT2JqVHlwZURlZjo6T2JqVHlwZURlZih1bnNpZ25lZCBsb25nKQ0KKz9PYmpUeXBlRGVmQE50bXNEYk9ialR5cGVEZWZAQFNBQUVBVjFAS0BaDQorOyB2b2lkIF9fY2RlY2wgT2JqZWN0Q2hhbmdlKGludCxzaG9ydCxjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCxpbnQpDQorP09iamVjdENoYW5nZUBAWUFYSEZBRUJWTnRtc0RiR3VpZEBASEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPYmpUeXBlRGVmOjpPYmplY3RDb2RlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/T2JqZWN0Q29kZUBOdG1zRGJPYmpUeXBlRGVmQEBRRUJBS1haDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpPYmplY3RHdWlkKHZvaWQpIF9fcHRyNjQNCis/T2JqZWN0R3VpZEBOdG1zRGJPYmplY3RAQFFFQUFBRUJWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJTZWxlY3Rpb25TZXQ6Ok9iamVjdEd1aWQobG9uZyljb25zdCAgX19wdHI2NA0KKz9PYmplY3RHdWlkQE50bXNEYlNlbGVjdGlvblNldEBAUUVCQUFFQlZOdG1zRGJHdWlkQEBKQFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJPYmplY3Q6Ok9iamVjdElkKHZvaWQpIF9fcHRyNjQNCis/T2JqZWN0SWRATnRtc0RiT2JqZWN0QEBRRUFBQUVCVk50bXNEYkd1aWRAQFhaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlJlY29yZFVuaXF1ZUtleSBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJTZWxlY3Rpb25TZXQ6Ok9iamVjdEtleShsb25nKWNvbnN0ICBfX3B0cjY0DQorP09iamVjdEtleUBOdG1zRGJTZWxlY3Rpb25TZXRAQFFFQkFBRUJWTnRtc0RiUmVjb3JkVW5pcXVlS2V5QEBKQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYk9iamVjdDo6T2JqZWN0VHlwZSh2b2lkKSBfX3B0cjY0DQorP09iamVjdFR5cGVATnRtc0RiT2JqZWN0QEBRRUFBS1haDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBOdG1zRGJPYmpUeXBlRGVmICogIE50bXNEYk9ialR5cGVEZWY6Ok9iamVjdFR5cGVzDQorP09iamVjdFR5cGVzQE50bXNEYk9ialR5cGVEZWZAQDJQQVYxQEEgREFUQQ0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX2NkZWNsIE50bXNEYlBhcnRpdGlvbjo6T21pZExhYmVsSWRMZW5ndGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9PbWlkTGFiZWxJZExlbmd0aEBOdG1zRGJQYXJ0aXRpb25AQFFFQkE/QktYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE50bXNEYlBhcnRpdGlvbjo6T21pZExhYmVsSWRfbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP09taWRMYWJlbElkX25ATnRtc0RiUGFydGl0aW9uQEBRRUJBUEVCRVhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJDb21wdXRlcjo6T3BSZXFDbGVhblRpbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9PcFJlcUNsZWFuVGltZUBOdG1zRGJDb21wdXRlckBAUUVCQUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiQ29tcHV0ZXI6Ok9wUmVxRmxhZ3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9PcFJlcUZsYWdzQE50bXNEYkNvbXB1dGVyQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgY29uc3QgIF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06Ok9wZXJhdGlvbkNvZGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9PcGVyYXRpb25Db2RlQE50bXNEYkxpYldvcmtJdGVtQEBRRUJBP0JLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6Ok9wZXJhdGlvbkVycm9yQ29kZV9Jc05vdE51bGwodm9pZCkgX19wdHI2NA0KKz9PcGVyYXRpb25FcnJvckNvZGVfSXNOb3ROdWxsQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQUFKWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6T3BlcmF0aW9uT3B0aW9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/T3BlcmF0aW9uT3B0aW9uQE50bXNEYkxpYldvcmtJdGVtQEBRRUJBP0JLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAgX19jZGVjbCBOdG1zRGJPYmplY3Q6Ok9wZXJhdGlvbmFsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/T3BlcmF0aW9uYWxATnRtc0RiT2JqZWN0QEBRRUJBP0JLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYk1lZGlhUG9vbDo6UGFyZW50X0lzTm90TnVsbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1BhcmVudF9Jc05vdE51bGxATnRtc0RiTWVkaWFQb29sQEBRRUJBSlhaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiTWVkaWFQb29sOjpQYXJlbnRfbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1BhcmVudF9uQE50bXNEYk1lZGlhUG9vbEBAUUVCQUFFQlZOdG1zRGJHdWlkQEBYWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYkxvZ2ljYWxNZWRpYTo6UGFydGl0aW9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UGFydGl0aW9uQE50bXNEYkxvZ2ljYWxNZWRpYUBAUUVCQUFFQlZOdG1zRGJHdWlkQEBYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06OlBhcnRpdGlvbklkX0lzTm90TnVsbCh2b2lkKSBfX3B0cjY0DQorP1BhcnRpdGlvbklkX0lzTm90TnVsbEBOdG1zRGJMaWJXb3JrSXRlbUBAUUVBQUpYWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYkxpYldvcmtJdGVtOjpQYXJ0aXRpb25JZF9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UGFydGl0aW9uSWRfbkBOdG1zRGJMaWJXb3JrSXRlbUBAUUVCQUFFQlZOdG1zRGJHdWlkQEBYWg0KKzsgcHVibGljOiBzaG9ydCBjb25zdCAgX19jZGVjbCBOdG1zRGJQYXJ0aXRpb246OlBhcnRpdGlvbk51bWJlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1BhcnRpdGlvbk51bWJlckBOdG1zRGJQYXJ0aXRpb25AQFFFQkE/QkZYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiUGh5c2ljYWxNZWRpYTo6UGFydGl0aW9ucyhjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQsY2xhc3MgTnRtc0RiU2VsZWN0aW9uU2V0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9QYXJ0aXRpb25zQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQUFLUEVBVk50bXNEYkRhdGFDdHh0QEBBRUFWTnRtc0RiU2VsZWN0aW9uU2V0QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpQYXRoTmFtZVcodm9pZCljb25zdCAgX19wdHI2NA0KKz9QYXRoTmFtZVdATnRtc0RiQ2hhbmdlckBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJEcml2ZTo6UGF0aE5hbWVXKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UGF0aE5hbWVXQE50bXNEYkRyaXZlQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpQYXRoTmFtZV9Jc05vdE51bGwodm9pZCkgX19wdHI2NA0KKz9QYXRoTmFtZV9Jc05vdE51bGxATnRtc0RiQ2hhbmdlckBAUUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTnRtc0RiRHJpdmU6OlBhdGhOYW1lX0lzTm90TnVsbCh2b2lkKSBfX3B0cjY0DQorP1BhdGhOYW1lX0lzTm90TnVsbEBOdG1zRGJEcml2ZUBAUUVBQUpYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE50bXNEYkNoYW5nZXI6OlBhdGhOYW1lX24odm9pZCkgX19wdHI2NA0KKz9QYXRoTmFtZV9uQE50bXNEYkNoYW5nZXJAQFFFQUFQRUJEWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJEcml2ZTo6UGF0aE5hbWVfbih2b2lkKSBfX3B0cjY0DQorP1BhdGhOYW1lX25ATnRtc0RiRHJpdmVAQFFFQUFQRUJEWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6OlBoeXNMb2NJZF9Jc05vdE51bGwodm9pZCkgX19wdHI2NA0KKz9QaHlzTG9jSWRfSXNOb3ROdWxsQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQUFKWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpQaHlzTG9jSWRfbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1BoeXNMb2NJZF9uQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQkFBRUJWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpQaHlzTG9jVHlwZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1BoeXNMb2NUeXBlQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQkE/QktYWg0KKzsgcHVibGljOiBsb25nIGNvbnN0ICBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6OlBoeXNNZWRpYUVycm9yQ29kZV9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UGh5c01lZGlhRXJyb3JDb2RlX25ATnRtc0RiUGh5c2ljYWxNZWRpYUBAUUVCQT9CSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6UGh5c01lZGlhSWRfSXNOb3ROdWxsKHZvaWQpIF9fcHRyNjQNCis/UGh5c01lZGlhSWRfSXNOb3ROdWxsQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBSlhaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06OlBoeXNNZWRpYUlkX24odm9pZCljb25zdCAgX19wdHI2NA0KKz9QaHlzTWVkaWFJZF9uQE50bXNEYkxpYldvcmtJdGVtQEBRRUJBQUVCVk50bXNEYkd1aWRAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgY29uc3QgIF9fY2RlY2wgTnRtc0RiUGh5c2ljYWxNZWRpYTo6UGh5c01lZGlhU3RhdGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9QaHlzTWVkaWFTdGF0ZUBOdG1zRGJQaHlzaWNhbE1lZGlhQEBRRUJBP0JLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYlBhcnRpdGlvbjo6UGh5c2ljYWxtZWRpYV9Jc05vdE51bGwodm9pZCljb25zdCAgX19wdHI2NA0KKz9QaHlzaWNhbG1lZGlhX0lzTm90TnVsbEBOdG1zRGJQYXJ0aXRpb25AQFFFQkFKWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJQYXJ0aXRpb246OlBoeXNpY2FsbWVkaWFfbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1BoeXNpY2FsbWVkaWFfbkBOdG1zRGJQYXJ0aXRpb25AQFFFQkFBRUJWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYkxpc3Q6Ok1hcDo6UGxhY2UobG9uZyljb25zdCAgX19wdHI2NA0KKz9QbGFjZUBNYXBATnRtc0RiTGlzdEBAUUVCQUpKQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYk1lZGlhUG9vbDo6UG9vbE1lbWJlcihjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQsY2xhc3MgTnRtc0RiU2VsZWN0aW9uU2V0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Qb29sTWVtYmVyQE50bXNEYk1lZGlhUG9vbEBAUUVBQUtQRUFWTnRtc0RiRGF0YUN0eHRAQEFFQVZOdG1zRGJTZWxlY3Rpb25TZXRAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpQb29sTWVtYmVyX0lzTm90TnVsbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1Bvb2xNZW1iZXJfSXNOb3ROdWxsQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQkFKWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpQb29sTWVtYmVyX24odm9pZCljb25zdCAgX19wdHI2NA0KKz9Qb29sTWVtYmVyX25ATnRtc0RiUGh5c2ljYWxNZWRpYUBAUUVCQUFFQlZOdG1zRGJHdWlkQEBYWg0KKzsgcHVibGljOiBjbGFzcyBOdG1zRGJHdWlkICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlByb3BHdWlkOjpQcmV2aW91c1JlbGF0aW9uR3VpZCh2b2lkKSBfX3B0cjY0DQorP1ByZXZpb3VzUmVsYXRpb25HdWlkQE50bXNEYlByb3BHdWlkQEBRRUFBQUVBVk50bXNEYkd1aWRAQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJHdWlkOjpQcmludCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1ByaW50QE50bXNEYkd1aWRAQFFFQkFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkxpYldvcmtJdGVtOjpQcmlvcml0eSh2b2lkKSBfX3B0cjY0DQorP1ByaW9yaXR5QE50bXNEYkxpYldvcmtJdGVtQEBRRUFBS1haDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiQ2hhbmdlclR5cGU6OlByb2R1Y3Qodm9pZCkgX19wdHI2NA0KKz9Qcm9kdWN0QE50bXNEYkNoYW5nZXJUeXBlQEBRRUFBUEVCRFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiRHJpdmVUeXBlOjpQcm9kdWN0KHZvaWQpIF9fcHRyNjQNCis/UHJvZHVjdEBOdG1zRGJEcml2ZVR5cGVAQFFFQUFQRUJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiQ2hhbmdlclR5cGU6OlByb2R1Y3RXKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UHJvZHVjdFdATnRtc0RiQ2hhbmdlclR5cGVAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiRHJpdmVUeXBlOjpQcm9kdWN0Vyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1Byb2R1Y3RXQE50bXNEYkRyaXZlVHlwZUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBzaG9ydCBfX2NkZWNsIE50bXNEYlByb3BIZWFkZXI6OlByb3BDb2RlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UHJvcENvZGVATnRtc0RiUHJvcEhlYWRlckBAUUVCQUZYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTnRtc0RiUHJvcGVydHlWYWx1ZTo6UHJvcENvZGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Qcm9wQ29kZUBOdG1zRGJQcm9wZXJ0eVZhbHVlQEBRRUJBSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wTGlzdDo6UHJvcGVydHlTcGFjZSh2b2lkKSBfX3B0cjY0DQorP1Byb3BlcnR5U3BhY2VATnRtc0RiUmVjb3JkUHJvcExpc3RAQFFFQUFLWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUHJvcERhdGFUeXBlIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3BMaXN0OjpQcm9wZXJ0eVR5cGUodm9pZCkgX19wdHI2NA0KKz9Qcm9wZXJ0eVR5cGVATnRtc0RiUmVjb3JkUHJvcExpc3RAQFFFQUFBRUJWTnRtc0RiUHJvcERhdGFUeXBlQEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6UHJvdGVjdGVkKHZvaWQpIF9fcHRyNjQNCis/UHJvdGVjdGVkQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBSFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJMaXN0OjpNYXA6OlB1dChsb25nLGNsYXNzIE50bXNEYkxpc3RJdGVtICYgX19wdHI2NCkgX19wdHI2NA0KKz9QdXRATWFwQE50bXNEYkxpc3RAQFFFQUFKSkFFQVZOdG1zRGJMaXN0SXRlbUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcExpc3Q6OlF1YW50aXR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVhbnRpdHlATnRtc0RiUmVjb3JkUHJvcExpc3RAQFFFQkFIWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wTGlzdDo6UmVDb3VudCh2b2lkKSBfX3B0cjY0DQorP1JlQ291bnRATnRtc0RiUmVjb3JkUHJvcExpc3RAQEFFQUFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIE50bXNEYk9iamVjdDo6UmVhZE9iamVjdFJlY29yZChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQsY2xhc3MgTnRtc0RiUmVjb3JkS2V5ICYgX19wdHI2NCxjbGFzcyBOdG1zRGJSZWNvcmRSZXYgJiBfX3B0cjY0LGNsYXNzIE50bXNEYlJlY29yZFByb3BMaXN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWFkT2JqZWN0UmVjb3JkQE50bXNEYk9iamVjdEBASUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEFFQVZOdG1zRGJSZWNvcmRLZXlAQEFFQVZOdG1zRGJSZWNvcmRSZXZAQFBFQVZOdG1zRGJSZWNvcmRQcm9wTGlzdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpSZWZyZXNoKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWZyZXNoQE50bXNEYk9iamVjdEBAVUVBQUtQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJPYmpUeXBlRGVmOjpSZWdpc3Rlcih2b2lkKSBfX3B0cjY0DQorP1JlZ2lzdGVyQE50bXNEYk9ialR5cGVEZWZAQFFFQUFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIE50bXNEYkRhdGFDdHh0OjpSZWdpc3Rlck9iTWV0YSh2b2lkKSBfX3B0cjY0DQorP1JlZ2lzdGVyT2JNZXRhQE50bXNEYkRhdGFDdHh0QEBJRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBOdG1zRGJPYmplY3Q6OlJlZ2lzdGVyT2JqZWN0UmVjb3JkKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCxjbGFzcyBOdG1zRGJSZWNvcmRUeXBlICYgX19wdHI2NCxjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWdpc3Rlck9iamVjdFJlY29yZEBOdG1zRGJPYmplY3RAQElFQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBBRUFWTnRtc0RiUmVjb3JkVHlwZUBAUEVBREBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJQcm9wR3VpZDo6UmVsYXRpb25Qcm9wZXJ0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1JlbGF0aW9uUHJvcGVydHlATnRtc0RiUHJvcEd1aWRAQFFFQkFKWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUmVjb3JkVHlwZSBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJQcm9wR3VpZDo6UmVsYXRpb25UeXBlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UmVsYXRpb25UeXBlQE50bXNEYlByb3BHdWlkQEBRRUJBQUVCVk50bXNEYlJlY29yZFR5cGVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgTnRtc0RiRGF0YUN0eHQ6OlJlbGVhc2VDaGFuZ2VNdXRleCh2b2lkKQ0KKz9SZWxlYXNlQ2hhbmdlTXV0ZXhATnRtc0RiRGF0YUN0eHRAQFNBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJMaXN0OjpNYXA6OlJlbW92ZShsb25nKSBfX3B0cjY0DQorP1JlbW92ZUBNYXBATnRtc0RiTGlzdEBAUUVBQVhKQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6UmVtb3ZlKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVATnRtc0RiTGlicmFyeUBAVUVBQUtQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYk9iamVjdDo6UmVtb3ZlKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVATnRtc0RiT2JqZWN0QEBVRUFBS1BFQVZOdG1zRGJEYXRhQ3R4dEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkxpYnJhcnk6OlJlbW92ZU1lZGlhVHlwZShjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVNZWRpYVR5cGVATnRtc0RiTGlicmFyeUBAUUVBQUtBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpSZW1vdmVSZWdhcmRsZXNzKGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVSZWdhcmRsZXNzQE50bXNEYk9iamVjdEBAVUVBQUtQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJDb21wdXRlcjo6UmVtb3ZlVUlEZXN0aW5hdGlvbih1bnNpZ25lZCBsb25nLGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbW92ZVVJRGVzdGluYXRpb25ATnRtc0RiQ29tcHV0ZXJAQFFFQUFLS0FFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6UmVtb3ZlVUlEZXN0aW5hdGlvbih1bnNpZ25lZCBsb25nLGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbW92ZVVJRGVzdGluYXRpb25ATnRtc0RiTGlicmFyeUBAUUVBQUtLQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBOdG1zRGJTdHJpbmc6OlJlcGxhY2VTdHJpbmcoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVwbGFjZVN0cmluZ0BOdG1zRGJTdHJpbmdAQElFQUFYUEVCREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPYmplY3Q6OlJlcG9ydFNwZWNpZmljRXJyb3IodW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9SZXBvcnRTcGVjaWZpY0Vycm9yQE50bXNEYk9iamVjdEBAUUVCQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYk9wUmVxdWVzdDo6UmVxdWVzdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1JlcXVlc3RATnRtc0RiT3BSZXF1ZXN0QEBRRUJBS1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJMaXN0OjpSZXNldCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QE50bXNEYkxpc3RAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3BMaXN0OjpSZXNldCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QE50bXNEYlJlY29yZFByb3BMaXN0QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYlNlbGVjdGlvblNldDo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBOdG1zRGJTZWxlY3Rpb25TZXRAQFVFQUFYWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpSZXZpc2lvbih2b2lkKSBfX3B0cjY0DQorP1JldmlzaW9uQE50bXNEYkNoYW5nZXJAQFFFQUFQRUJEWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJEcml2ZTo6UmV2aXNpb24odm9pZCkgX19wdHI2NA0KKz9SZXZpc2lvbkBOdG1zRGJEcml2ZUBAUUVBQVBFQkRYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpSZXZpc2lvblcodm9pZCljb25zdCAgX19wdHI2NA0KKz9SZXZpc2lvbldATnRtc0RiQ2hhbmdlckBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJEcml2ZTo6UmV2aXNpb25XKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UmV2aXNpb25XQE50bXNEYkRyaXZlQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJEYXRhQ3R4dDo6Um9sbGJhY2tUcmFuc2FjdGlvbih2b2lkKSBfX3B0cjY0DQorP1JvbGxiYWNrVHJhbnNhY3Rpb25ATnRtc0RiRGF0YUN0eHRAQFFFQUFLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYkRyaXZlOjpTYXZlZFBhcnRpdGlvbklkX0lzTm90TnVsbCh2b2lkKSBfX3B0cjY0DQorP1NhdmVkUGFydGl0aW9uSWRfSXNOb3ROdWxsQE50bXNEYkRyaXZlQEBRRUFBSlhaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiRHJpdmU6OlNhdmVkUGFydGl0aW9uSWRfbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1NhdmVkUGFydGl0aW9uSWRfbkBOdG1zRGJEcml2ZUBAUUVCQUFFQlZOdG1zRGJHdWlkQEBYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTnRtc0RiQ2hhbmdlcjo6U2NzaUJ1c19Jc05vdE51bGwodm9pZCkgX19wdHI2NA0KKz9TY3NpQnVzX0lzTm90TnVsbEBOdG1zRGJDaGFuZ2VyQEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJEcml2ZTo6U2NzaUJ1c19Jc05vdE51bGwodm9pZCkgX19wdHI2NA0KKz9TY3NpQnVzX0lzTm90TnVsbEBOdG1zRGJEcml2ZUBAUUVBQUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpTY3NpQnVzX24odm9pZCljb25zdCAgX19wdHI2NA0KKz9TY3NpQnVzX25ATnRtc0RiQ2hhbmdlckBAUUVCQT9CR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICBfX2NkZWNsIE50bXNEYkRyaXZlOjpTY3NpQnVzX24odm9pZCljb25zdCAgX19wdHI2NA0KKz9TY3NpQnVzX25ATnRtc0RiRHJpdmVAQFFFQkE/QkdYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTnRtc0RiQ2hhbmdlcjo6U2NzaUx1bl9Jc05vdE51bGwodm9pZCkgX19wdHI2NA0KKz9TY3NpTHVuX0lzTm90TnVsbEBOdG1zRGJDaGFuZ2VyQEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJEcml2ZTo6U2NzaUx1bl9Jc05vdE51bGwodm9pZCkgX19wdHI2NA0KKz9TY3NpTHVuX0lzTm90TnVsbEBOdG1zRGJEcml2ZUBAUUVBQUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpTY3NpTHVuX24odm9pZCljb25zdCAgX19wdHI2NA0KKz9TY3NpTHVuX25ATnRtc0RiQ2hhbmdlckBAUUVCQT9CR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICBfX2NkZWNsIE50bXNEYkRyaXZlOjpTY3NpTHVuX24odm9pZCljb25zdCAgX19wdHI2NA0KKz9TY3NpTHVuX25ATnRtc0RiRHJpdmVAQFFFQkE/QkdYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTnRtc0RiQ2hhbmdlcjo6U2NzaVBvcnRfSXNOb3ROdWxsKHZvaWQpIF9fcHRyNjQNCis/U2NzaVBvcnRfSXNOb3ROdWxsQE50bXNEYkNoYW5nZXJAQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYkRyaXZlOjpTY3NpUG9ydF9Jc05vdE51bGwodm9pZCkgX19wdHI2NA0KKz9TY3NpUG9ydF9Jc05vdE51bGxATnRtc0RiRHJpdmVAQFFFQUFKWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgIF9fY2RlY2wgTnRtc0RiQ2hhbmdlcjo6U2NzaVBvcnRfbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1Njc2lQb3J0X25ATnRtc0RiQ2hhbmdlckBAUUVCQT9CR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICBfX2NkZWNsIE50bXNEYkRyaXZlOjpTY3NpUG9ydF9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U2NzaVBvcnRfbkBOdG1zRGJEcml2ZUBAUUVCQT9CR1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpTY3NpVGFyZ2V0X0lzTm90TnVsbCh2b2lkKSBfX3B0cjY0DQorP1Njc2lUYXJnZXRfSXNOb3ROdWxsQE50bXNEYkNoYW5nZXJAQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYkRyaXZlOjpTY3NpVGFyZ2V0X0lzTm90TnVsbCh2b2lkKSBfX3B0cjY0DQorP1Njc2lUYXJnZXRfSXNOb3ROdWxsQE50bXNEYkRyaXZlQEBRRUFBSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICBfX2NkZWNsIE50bXNEYkNoYW5nZXI6OlNjc2lUYXJnZXRfbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1Njc2lUYXJnZXRfbkBOdG1zRGJDaGFuZ2VyQEBRRUJBP0JHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgIF9fY2RlY2wgTnRtc0RiRHJpdmU6OlNjc2lUYXJnZXRfbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1Njc2lUYXJnZXRfbkBOdG1zRGJEcml2ZUBAUUVCQT9CR1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJTZWxlY3Rpb25TZXQ6OlNlbGVjdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZWxlY3RATnRtc0RiU2VsZWN0aW9uU2V0QEBRRUFBWFBFQVZOdG1zRGJEYXRhQ3R4dEBAS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE50bXNEYkNoYW5nZXI6OlNlcmlhbE51bWJlclcodm9pZCljb25zdCAgX19wdHI2NA0KKz9TZXJpYWxOdW1iZXJXQE50bXNEYkNoYW5nZXJAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiRHJpdmU6OlNlcmlhbE51bWJlclcodm9pZCljb25zdCAgX19wdHI2NA0KKz9TZXJpYWxOdW1iZXJXQE50bXNEYkRyaXZlQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpTZXJpYWxOdW1iZXJfSXNOb3ROdWxsKHZvaWQpIF9fcHRyNjQNCis/U2VyaWFsTnVtYmVyX0lzTm90TnVsbEBOdG1zRGJDaGFuZ2VyQEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJEcml2ZTo6U2VyaWFsTnVtYmVyX0lzTm90TnVsbCh2b2lkKSBfX3B0cjY0DQorP1NlcmlhbE51bWJlcl9Jc05vdE51bGxATnRtc0RiRHJpdmVAQFFFQUFKWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpTZXJpYWxOdW1iZXJfbih2b2lkKSBfX3B0cjY0DQorP1NlcmlhbE51bWJlcl9uQE50bXNEYkNoYW5nZXJAQFFFQUFQRUJEWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJEcml2ZTo6U2VyaWFsTnVtYmVyX24odm9pZCkgX19wdHI2NA0KKz9TZXJpYWxOdW1iZXJfbkBOdG1zRGJEcml2ZUBAUUVBQVBFQkRYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiTGlzdDo6TWFwOjpTZXQobG9uZyxjbGFzcyBOdG1zRGJMaXN0SXRlbSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QE1hcEBOdG1zRGJMaXN0QEBRRUFBWEpQRUFWTnRtc0RiTGlzdEl0ZW1AQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPYmplY3Q6OlNldEFkbWluQ29udHJvbFNlY3VyaXR5KHZvaWQpIF9fcHRyNjQNCis/U2V0QWRtaW5Db250cm9sU2VjdXJpdHlATnRtc0RiT2JqZWN0QEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJQYXJ0aXRpb246OlNldEFsbG9jT3B0aW9uKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0QWxsb2NPcHRpb25ATnRtc0RiUGFydGl0aW9uQEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiUGFydGl0aW9uOjpTZXRBbGxvY2F0ZUNvdW50KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0QWxsb2NhdGVDb3VudEBOdG1zRGJQYXJ0aXRpb25AQFFFQUFLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJNZWRpYVBvb2w6OlNldEFsbG9jYXRpb25Qb2xpY3kodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRBbGxvY2F0aW9uUG9saWN5QE50bXNEYk1lZGlhUG9vbEBAUUVBQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkxpYldvcmtJdGVtOjpTZXRBcHBsaWNhdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QXBwbGljYXRpb25ATnRtc0RiTGliV29ya0l0ZW1AQFFFQUFLUEVCR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6OlNldEFwcGxpY2F0aW9uKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRBcHBsaWNhdGlvbkBOdG1zRGJPcFJlcXVlc3RAQFFFQUFLUEVCR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6OlNldEFyZzEoY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QXJnMUBOdG1zRGJPcFJlcXVlc3RAQFFFQUFLQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6OlNldEFyZzFUeXBlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0QXJnMVR5cGVATnRtc0RiT3BSZXF1ZXN0QEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiT3BSZXF1ZXN0OjpTZXRBcmcyKGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEFyZzJATnRtc0RiT3BSZXF1ZXN0QEBRRUFBS0FFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiT3BSZXF1ZXN0OjpTZXRBcmcyVHlwZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldEFyZzJUeXBlQE50bXNEYk9wUmVxdWVzdEBAUUVBQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkxpYldvcmtJdGVtOjpTZXRBc3NvY1dvcmtJdGVtKGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEFzc29jV29ya0l0ZW1ATnRtc0RiTGliV29ya0l0ZW1AQFFFQUFLQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6U2V0QXNzb2NXb3JrSXRlbV9OdWxsKHZvaWQpIF9fcHRyNjQNCis/U2V0QXNzb2NXb3JrSXRlbV9OdWxsQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPYmplY3Q6OlNldEF0dHJpYnV0ZShjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRBdHRyaWJ1dGVATnRtc0RiT2JqZWN0QEBRRUFBS1BFQVZOdG1zRGJEYXRhQ3R4dEBAUEVCRFBFQVhLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkxpYnJhcnk6OlNldEF1dG9SZWNvdmVyeShzaG9ydCkgX19wdHI2NA0KKz9TZXRBdXRvUmVjb3ZlcnlATnRtc0RiTGlicmFyeUBAUUVBQUtGQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkxpYnJhcnk6OlNldEJhckNvZGVSZWFkZXIoc2hvcnQpIF9fcHRyNjQNCis/U2V0QmFyQ29kZVJlYWRlckBOdG1zRGJMaWJyYXJ5QEBRRUFBS0ZAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiUGh5c2ljYWxNZWRpYTo6U2V0QmFyY29kZShjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRCYXJjb2RlQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQUFLUEVCREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpTZXRCYXJjb2RlU3RhdGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRCYXJjb2RlU3RhdGVATnRtc0RiUGh5c2ljYWxNZWRpYUBAUUVBQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6OlNldEJhcmNvZGVXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRCYXJjb2RlV0BOdG1zRGJQaHlzaWNhbE1lZGlhQEBRRUFBS1BFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUGh5c2ljYWxNZWRpYTo6U2V0QmFyY29kZV9OdWxsKHZvaWQpIF9fcHRyNjQNCis/U2V0QmFyY29kZV9OdWxsQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYlBhcnRpdGlvbjo6U2V0Q2FwYWNpdHkodW5pb24gX0xBUkdFX0lOVEVHRVIpIF9fcHRyNjQNCis/U2V0Q2FwYWNpdHlATnRtc0RiUGFydGl0aW9uQEBRRUFBS1RfTEFSR0VfSU5URUdFUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkNoYW5nZXI6OlNldENoYW5nZXJUeXBlKGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldENoYW5nZXJUeXBlQE50bXNEYkNoYW5nZXJAQFFFQUFLQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpTZXRDbGVhbmVyU2xvdChjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRDbGVhbmVyU2xvdEBOdG1zRGJMaWJyYXJ5QEBRRUFBS0FFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6U2V0Q2xlYW5lclNsb3RfTnVsbCh2b2lkKSBfX3B0cjY0DQorP1NldENsZWFuZXJTbG90X051bGxATnRtc0RiTGlicmFyeUBAUUVBQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6U2V0Q2xlYW5zUmVtYWluaW5nKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0Q2xlYW5zUmVtYWluaW5nQE50bXNEYkxpYnJhcnlAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJEcml2ZTo6U2V0Q29tcHV0ZXIoY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Q29tcHV0ZXJATnRtc0RiRHJpdmVAQFFFQUFLQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6U2V0Q29tcHV0ZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldENvbXB1dGVyQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBS1BFQkdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6U2V0Q29tcHV0ZXIoY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Q29tcHV0ZXJATnRtc0RiTGlicmFyeUBAUUVBQUtBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYk9wUmVxdWVzdDo6U2V0Q29tcHV0ZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldENvbXB1dGVyQE50bXNEYk9wUmVxdWVzdEBAUUVBQUtQRUJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYlVJRGVzdGluYXRpb246OlNldENvbXB1dGVyKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCkgX19wdHI2NA0KKz9TZXRDb21wdXRlckBOdG1zRGJVSURlc3RpbmF0aW9uQEBRRUFBS1FFQUdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiRHJpdmU6OlNldENvbXB1dGVyX051bGwodm9pZCkgX19wdHI2NA0KKz9TZXRDb21wdXRlcl9OdWxsQE50bXNEYkRyaXZlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpTZXRDb21wdXRlcl9OdWxsKHZvaWQpIF9fcHRyNjQNCis/U2V0Q29tcHV0ZXJfTnVsbEBOdG1zRGJMaWJyYXJ5QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJQcm9wSGVhZGVyOjpTZXRDb3VudChsb25nKSBfX3B0cjY0DQorP1NldENvdW50QE50bXNEYlByb3BIZWFkZXJAQFFFQUFYSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpTZXREYXRhKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERhdGFATnRtc0RiUmVjb3JkUHJvcEBAUUVBQVhQRUFYQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgTnRtc0RiQ2hhbmdlcjo6U2V0RGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERiT2JqZWN0QE50bXNEYkNoYW5nZXJAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJDaGFuZ2VyVHlwZTo6U2V0RGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERiT2JqZWN0QE50bXNEYkNoYW5nZXJUeXBlQEBNRUFBWFBFQVZOdG1zRGJEYXRhQ3R4dEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgTnRtc0RiQ29tcHV0ZXI6OlNldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREYk9iamVjdEBOdG1zRGJDb21wdXRlckBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlOjpTZXREYk9iamVjdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RGJPYmplY3RATnRtc0RiRHJpdmVAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJEcml2ZVR5cGU6OlNldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREYk9iamVjdEBOdG1zRGJEcml2ZVR5cGVAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJJRURvb3I6OlNldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREYk9iamVjdEBOdG1zRGJJRURvb3JAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJJRVBvcnQ6OlNldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREYk9iamVjdEBOdG1zRGJJRVBvcnRAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6U2V0RGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERiT2JqZWN0QE50bXNEYkxpYldvcmtJdGVtQEBNRUFBWFBFQVZOdG1zRGJEYXRhQ3R4dEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6U2V0RGJPYmplY3QoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERiT2JqZWN0QE50bXNEYkxpYnJhcnlAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJMb2dpY2FsTWVkaWE6OlNldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREYk9iamVjdEBOdG1zRGJMb2dpY2FsTWVkaWFAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJNZWRpYVBvb2w6OlNldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREYk9iamVjdEBOdG1zRGJNZWRpYVBvb2xAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJNZWRpYVR5cGU6OlNldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREYk9iamVjdEBOdG1zRGJNZWRpYVR5cGVAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJPYmplY3Q6OlNldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREYk9iamVjdEBOdG1zRGJPYmplY3RAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6OlNldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREYk9iamVjdEBOdG1zRGJPcFJlcXVlc3RAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJQYXJ0aXRpb246OlNldERiT2JqZWN0KGNsYXNzIE50bXNEYkRhdGFDdHh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREYk9iamVjdEBOdG1zRGJQYXJ0aXRpb25AQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpTZXREYk9iamVjdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RGJPYmplY3RATnRtc0RiUGh5c2ljYWxNZWRpYUBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE50bXNEYlN0b3JhZ2VTbG90OjpTZXREYk9iamVjdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RGJPYmplY3RATnRtc0RiU3RvcmFnZVNsb3RAQE1FQUFYUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBOdG1zRGJVSURlc3RpbmF0aW9uOjpTZXREYk9iamVjdChjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RGJPYmplY3RATnRtc0RiVUlEZXN0aW5hdGlvbkBATUVBQVhQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJNZWRpYVBvb2w6OlNldERlYWxsb2NhdGlvblBvbGljeSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldERlYWxsb2NhdGlvblBvbGljeUBOdG1zRGJNZWRpYVBvb2xAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpTZXREZWZDbGVhbmVyU2xvdChjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXREZWZDbGVhbmVyU2xvdEBOdG1zRGJMaWJyYXJ5QEBRRUFBS0FFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6U2V0RGVmQ2xlYW5lclNsb3RfTnVsbCh2b2lkKSBfX3B0cjY0DQorP1NldERlZkNsZWFuZXJTbG90X051bGxATnRtc0RiTGlicmFyeUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUHJvcGVydHk6OlNldERlZmF1bHQodm9pZCkgX19wdHI2NA0KKz9TZXREZWZhdWx0QE50bXNEYlByb3BlcnR5QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpTZXREZWZhdWx0KHZvaWQpIF9fcHRyNjQNCis/U2V0RGVmYXVsdEBOdG1zRGJSZWNvcmRQcm9wQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJPYmplY3Q6OlNldERlZmF1bHRWYWx1ZShjbGFzcyBOdG1zRGJQcm9wZXJ0eSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RGVmYXVsdFZhbHVlQE50bXNEYk9iamVjdEBAUUVBQVhQRUFWTnRtc0RiUHJvcGVydHlAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJEcml2ZTo6U2V0RGVmZXJEZWxheSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldERlZmVyRGVsYXlATnRtc0RiRHJpdmVAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpTZXREZW5zaXR5Q29kZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldERlbnNpdHlDb2RlQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPYmplY3Q6OlNldERlc2NyaXB0aW9uKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERlc2NyaXB0aW9uQE50bXNEYk9iamVjdEBAUUVBQUtQRUJEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYk9iamVjdDo6U2V0RGVzY3JpcHRpb25XKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREZXNjcmlwdGlvbldATnRtc0RiT2JqZWN0QEBRRUFBS1BFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpTZXREZXNjcmlwdGlvbl9OdWxsKHZvaWQpIF9fcHRyNjQNCis/U2V0RGVzY3JpcHRpb25fTnVsbEBOdG1zRGJPYmplY3RAQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkNoYW5nZXJUeXBlOjpTZXREZXZpY2VUeXBlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0RGV2aWNlVHlwZUBOdG1zRGJDaGFuZ2VyVHlwZUBAUUVBQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYk1lZGlhVHlwZTo6U2V0RGV2aWNlVHlwZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldERldmljZVR5cGVATnRtc0RiTWVkaWFUeXBlQEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06OlNldERyaXZlSWQoY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RHJpdmVJZEBOdG1zRGJMaWJXb3JrSXRlbUBAUUVBQUtBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkxpYldvcmtJdGVtOjpTZXREcml2ZUlkX051bGwodm9pZCkgX19wdHI2NA0KKz9TZXREcml2ZUlkX051bGxATnRtc0RiTGliV29ya0l0ZW1AQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkRyaXZlOjpTZXREcml2ZUxldHRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RHJpdmVMZXR0ZXJATnRtc0RiRHJpdmVAQFFFQUFLUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJEcml2ZTo6U2V0RHJpdmVMZXR0ZXJfTnVsbCh2b2lkKSBfX3B0cjY0DQorP1NldERyaXZlTGV0dGVyX051bGxATnRtc0RiRHJpdmVAQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkRyaXZlOjpTZXREcml2ZU51bWJlcih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldERyaXZlTnVtYmVyQE50bXNEYkRyaXZlQEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiRHJpdmU6OlNldERyaXZlU3RhdGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXREcml2ZVN0YXRlQE50bXNEYkRyaXZlQEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiRHJpdmU6OlNldERyaXZlVHlwZShjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXREcml2ZVR5cGVATnRtc0RiRHJpdmVAQFFFQUFLQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJEcml2ZVR5cGU6OlNldERyaXZlVHlwZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldERyaXZlVHlwZUBOdG1zRGJEcml2ZVR5cGVAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJMaXN0OjpTZXREeW5hbWljKGludCkgX19wdHI2NA0KKz9TZXREeW5hbWljQE50bXNEYkxpc3RAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpTZXREeW5hbWljKHZvaWQpIF9fcHRyNjQNCis/U2V0RHluYW1pY0BOdG1zRGJSZWNvcmRQcm9wQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJTZWxlY3Rpb25TZXQ6OlNldER5bmFtaWMoaW50KSBfX3B0cjY0DQorP1NldER5bmFtaWNATnRtc0RiU2VsZWN0aW9uU2V0QEBRRUFBWEhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpTZXRFbmFibGVkKHNob3J0KSBfX3B0cjY0DQorP1NldEVuYWJsZWRATnRtc0RiT2JqZWN0QEBRRUFBS0ZAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06OlNldEVycm9yQ29kZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldEVycm9yQ29kZUBOdG1zRGJMaWJXb3JrSXRlbUBAUUVBQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYklFUG9ydDo6U2V0RXh0ZW5kU3RhdGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRFeHRlbmRTdGF0ZUBOdG1zRGJJRVBvcnRAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJGaWxlOjpTZXRGaWxlU3RhdHVzKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0RmlsZVN0YXR1c0BOdG1zRGJGaWxlQEBRRUFBWEtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6U2V0Rmlyc3RDaGFuZ2VyTnVtYmVyKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0Rmlyc3RDaGFuZ2VyTnVtYmVyQE50bXNEYkxpYnJhcnlAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpTZXRGaXJzdERyaXZlTnVtYmVyKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0Rmlyc3REcml2ZU51bWJlckBOdG1zRGJMaWJyYXJ5QEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6U2V0Rmlyc3RQb3J0TnVtYmVyKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0Rmlyc3RQb3J0TnVtYmVyQE50bXNEYkxpYnJhcnlAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpTZXRGaXJzdFNsb3ROdW1iZXIodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRGaXJzdFNsb3ROdW1iZXJATnRtc0RiTGlicmFyeUBAUUVBQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkxpYnJhcnk6OlNldEZpeGVkT2ZmbGluZShzaG9ydCkgX19wdHI2NA0KKz9TZXRGaXhlZE9mZmxpbmVATnRtc0RiTGlicmFyeUBAUUVBQUtGQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkxpYnJhcnk6OlNldEZsYWdzKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0RmxhZ3NATnRtc0RiTGlicmFyeUBAUUVBQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYklFUG9ydDo6U2V0RnVsbFN0YXRlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0RnVsbFN0YXRlQE50bXNEYklFUG9ydEBAUUVBQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6OlNldEhvbWVTbG90SWQoY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0SG9tZVNsb3RJZEBOdG1zRGJQaHlzaWNhbE1lZGlhQEBRRUFBS0FFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUGh5c2ljYWxNZWRpYTo6U2V0SG9tZVNsb3RJZF9OdWxsKHZvaWQpIF9fcHRyNjQNCis/U2V0SG9tZVNsb3RJZF9OdWxsQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYklFRG9vcjo6U2V0SUVEb29yTnVtYmVyKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0SUVEb29yTnVtYmVyQE50bXNEYklFRG9vckBAUUVBQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYklFRG9vcjo6U2V0SUVEb29yU3RhdGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRJRURvb3JTdGF0ZUBOdG1zRGJJRURvb3JAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJJRVBvcnQ6OlNldElFUG9ydE51bWJlcih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldElFUG9ydE51bWJlckBOdG1zRGJJRVBvcnRAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpTZXRJbnN0YW5jZU5hbWVXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRJbnN0YW5jZU5hbWVXQE50bXNEYkNoYW5nZXJAQFFFQUFLUEVCR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJEcml2ZTo6U2V0SW5zdGFuY2VOYW1lVyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0SW5zdGFuY2VOYW1lV0BOdG1zRGJEcml2ZUBAUUVBQUtQRUJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkxpYnJhcnk6OlNldEludmVudG9yeU1ldGhvZCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldEludmVudG9yeU1ldGhvZEBOdG1zRGJMaWJyYXJ5QEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiUGh5c2ljYWxNZWRpYTo6U2V0SW52ZW50b3J5U3RhdGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRJbnZlbnRvcnlTdGF0ZUBOdG1zRGJQaHlzaWNhbE1lZGlhQEBRRUFBS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUHJvcFJlY29yZENsYXNzOjpTZXRLZXkoY2xhc3MgTnRtc0RiUmVjb3JkS2V5ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRLZXlATnRtc0RiUHJvcFJlY29yZENsYXNzQEBRRUFBWEFFQVZOdG1zRGJSZWNvcmRLZXlAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJEcml2ZTo6U2V0TGFzdENsZWFuZWRUcyhzdHJ1Y3QgX1NZU1RFTVRJTUUpIF9fcHRyNjQNCis/U2V0TGFzdENsZWFuZWRUc0BOdG1zRGJEcml2ZUBAUUVBQUtVX1NZU1RFTVRJTUVAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJEcml2ZTo6U2V0TGFzdENsZWFuZWRUc19OdWxsKHZvaWQpIF9fcHRyNjQNCis/U2V0TGFzdENsZWFuZWRUc19OdWxsQE50bXNEYkRyaXZlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpTZXRMZW5ndGgobG9uZykgX19wdHI2NA0KKz9TZXRMZW5ndGhATnRtc0RiUmVjb3JkUHJvcEBAUUVBQVhKQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6OlNldExpYkN1cnJlbnRNZWRpYShjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRMaWJDdXJyZW50TWVkaWFATnRtc0RiUGh5c2ljYWxNZWRpYUBAUUVBQUtBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6OlNldExpYkN1cnJlbnRNZWRpYV9OdWxsKHZvaWQpIF9fcHRyNjQNCis/U2V0TGliQ3VycmVudE1lZGlhX051bGxATnRtc0RiUGh5c2ljYWxNZWRpYUBAUUVBQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiQ29tcHV0ZXI6OlNldExpYlJlcUNsZWFuVGltZShsb25nKSBfX3B0cjY0DQorP1NldExpYlJlcUNsZWFuVGltZUBOdG1zRGJDb21wdXRlckBAUUVBQUtKQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkNvbXB1dGVyOjpTZXRMaWJSZXFGbGFncyh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldExpYlJlcUZsYWdzQE50bXNEYkNvbXB1dGVyQEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiQ2hhbmdlcjo6U2V0TGlicmFyeShjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRMaWJyYXJ5QE50bXNEYkNoYW5nZXJAQFFFQUFLQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJEcml2ZTo6U2V0TGlicmFyeShjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRMaWJyYXJ5QE50bXNEYkRyaXZlQEBRRUFBS0FFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiSUVEb29yOjpTZXRMaWJyYXJ5KGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldExpYnJhcnlATnRtc0RiSUVEb29yQEBRRUFBS0FFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiSUVQb3J0OjpTZXRMaWJyYXJ5KGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldExpYnJhcnlATnRtc0RiSUVQb3J0QEBRRUFBS0FFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06OlNldExpYnJhcnkoY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TGlicmFyeUBOdG1zRGJMaWJXb3JrSXRlbUBAUUVBQUtBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYlN0b3JhZ2VTbG90OjpTZXRMaWJyYXJ5KGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldExpYnJhcnlATnRtc0RiU3RvcmFnZVNsb3RAQFFFQUFLQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpTZXRMaWJyYXJ5VHlwZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldExpYnJhcnlUeXBlQE50bXNEYkxpYnJhcnlAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpTZXRMaWJyYXJ5X051bGwodm9pZCkgX19wdHI2NA0KKz9TZXRMaWJyYXJ5X051bGxATnRtc0RiQ2hhbmdlckBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiRHJpdmU6OlNldExpYnJhcnlfTnVsbCh2b2lkKSBfX3B0cjY0DQorP1NldExpYnJhcnlfTnVsbEBOdG1zRGJEcml2ZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiSUVEb29yOjpTZXRMaWJyYXJ5X051bGwodm9pZCkgX19wdHI2NA0KKz9TZXRMaWJyYXJ5X051bGxATnRtc0RiSUVEb29yQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJJRVBvcnQ6OlNldExpYnJhcnlfTnVsbCh2b2lkKSBfX3B0cjY0DQorP1NldExpYnJhcnlfTnVsbEBOdG1zRGJJRVBvcnRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkxpYldvcmtJdGVtOjpTZXRMaWJyYXJ5X051bGwodm9pZCkgX19wdHI2NA0KKz9TZXRMaWJyYXJ5X051bGxATnRtc0RiTGliV29ya0l0ZW1AQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlN0b3JhZ2VTbG90OjpTZXRMaWJyYXJ5X051bGwodm9pZCkgX19wdHI2NA0KKz9TZXRMaWJyYXJ5X051bGxATnRtc0RiU3RvcmFnZVNsb3RAQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYlBhcnRpdGlvbjo6U2V0TGlmZUN5Y2xlU3RhdGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRMaWZlQ3ljbGVTdGF0ZUBOdG1zRGJQYXJ0aXRpb25AQFFFQUFLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJQYXJ0aXRpb246OlNldExvZ2ljYWxtZWRpYShjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRMb2dpY2FsbWVkaWFATnRtc0RiUGFydGl0aW9uQEBRRUFBS0FFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUGFydGl0aW9uOjpTZXRMb2dpY2FsbWVkaWFfTnVsbCh2b2lkKSBfX3B0cjY0DQorP1NldExvZ2ljYWxtZWRpYV9OdWxsQE50bXNEYlBhcnRpdGlvbkBAUUVBQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTWVkaWFQb29sOjpTZXRNYXhBbGxvY2F0ZXModW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRNYXhBbGxvY2F0ZXNATnRtc0RiTWVkaWFQb29sQEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiSUVQb3J0OjpTZXRNYXhFeHRlbmRTZWNzKHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1NldE1heEV4dGVuZFNlY3NATnRtc0RiSUVQb3J0QEBRRUFBS0dAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiSUVEb29yOjpTZXRNYXhPcGVuU2Vjcyh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZXRNYXhPcGVuU2Vjc0BOdG1zRGJJRURvb3JAQFFFQUFLR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMb2dpY2FsTWVkaWE6OlNldE1lZGlhUG9vbElkKGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldE1lZGlhUG9vbElkQE50bXNEYkxvZ2ljYWxNZWRpYUBAUUVBQUtBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkxvZ2ljYWxNZWRpYTo6U2V0TWVkaWFQb29sSWRfTnVsbCh2b2lkKSBfX3B0cjY0DQorP1NldE1lZGlhUG9vbElkX051bGxATnRtc0RiTG9naWNhbE1lZGlhQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJDb21wdXRlcjo6U2V0TWVkaWFQb29sUG9saWN5KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0TWVkaWFQb29sUG9saWN5QE50bXNEYkNvbXB1dGVyQEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiQ29tcHV0ZXI6OlNldE1lZGlhUm9vdChjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRNZWRpYVJvb3RATnRtc0RiQ29tcHV0ZXJAQFFFQUFLQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJDb21wdXRlcjo6U2V0TWVkaWFSb290X051bGwodm9pZCkgX19wdHI2NA0KKz9TZXRNZWRpYVJvb3RfTnVsbEBOdG1zRGJDb21wdXRlckBAUUVBQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTWVkaWFQb29sOjpTZXRNZWRpYVR5cGUoY2xhc3MgTnRtc0RiR3VpZCkgX19wdHI2NA0KKz9TZXRNZWRpYVR5cGVATnRtc0RiTWVkaWFQb29sQEBRRUFBS1ZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTWVkaWFUeXBlOjpTZXRNZWRpYVR5cGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRNZWRpYVR5cGVATnRtc0RiTWVkaWFUeXBlQEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiUGh5c2ljYWxNZWRpYTo6U2V0TWVkaWFUeXBlKGNsYXNzIE50bXNEYkd1aWQpIF9fcHRyNjQNCis/U2V0TWVkaWFUeXBlQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQUFLVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpTZXRNZWRpYVR5cGVDb2RlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0TWVkaWFUeXBlQ29kZUBOdG1zRGJQaHlzaWNhbE1lZGlhQEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiT3BSZXF1ZXN0OjpTZXRNZXNzYWdlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRNZXNzYWdlQE50bXNEYk9wUmVxdWVzdEBAUUVBQUtQRUJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYk9wUmVxdWVzdDo6U2V0TWVzc2FnZUEoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TWVzc2FnZUFATnRtc0RiT3BSZXF1ZXN0QEBRRUFBS1BFQkRAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBOdG1zRGJPYmplY3Q6OlNldE1vZGlmaWVkKGxvbmcpIF9fcHRyNjQNCis/U2V0TW9kaWZpZWRATnRtc0RiT2JqZWN0QEBRRUFBSEpAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6U2V0TW9kaWZpZWQodm9pZCkgX19wdHI2NA0KKz9TZXRNb2RpZmllZEBOdG1zRGJSZWNvcmRQcm9wQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJQYXJ0aXRpb246OlNldE1vdW50Q291bnQodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRNb3VudENvdW50QE50bXNEYlBhcnRpdGlvbkBAUUVBQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6OlNldE1vdW50ZWRQYXJ0aXRpb24oY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TW91bnRlZFBhcnRpdGlvbkBOdG1zRGJQaHlzaWNhbE1lZGlhQEBRRUFBS0FFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTWVkaWFQb29sOjpTZXRNcG9vbFR5cGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRNcG9vbFR5cGVATnRtc0RiTWVkaWFQb29sQEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpTZXROYW1lKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldE5hbWVATnRtc0RiT2JqZWN0QEBRRUFBS1BFQkRAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpTZXROYW1lVyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TmFtZVdATnRtc0RiT2JqZWN0QEBRRUFBS1BFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpTZXROYW1lX051bGwodm9pZCkgX19wdHI2NA0KKz9TZXROYW1lX051bGxATnRtc0RiT2JqZWN0QEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJEcml2ZTo6U2V0TmVlZHNDbGVhbmluZyhzaG9ydCkgX19wdHI2NA0KKz9TZXROZWVkc0NsZWFuaW5nQE50bXNEYkRyaXZlQEBRRUFBS0ZAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiTGlzdDo6TWFwOjpTZXROZXh0KGNsYXNzIE50bXNEYkxpc3Q6Ok1hcCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TmV4dEBNYXBATnRtc0RiTGlzdEBAUUVBQVhQRUFWMTJAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYk1lZGlhVHlwZTo6U2V0TmV4dFNlcXVlbmNlKGxvbmcpIF9fcHRyNjQNCis/U2V0TmV4dFNlcXVlbmNlQE50bXNEYk1lZGlhVHlwZUBAUUVBQUtKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYXRhYmFzZTo6U2V0Tm90aWZpY2F0aW9uSGFuZGxlcih2b2lkIChfX2NkZWNsKikoaW50LHNob3J0LGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0LGludCkpIF9fcHRyNjQNCis/U2V0Tm90aWZpY2F0aW9uSGFuZGxlckBOdG1zRGF0YWJhc2VAQFFFQUFYUDZBWEhGQUVCVk50bXNEYkd1aWRAQEhAWkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJSZWNvcmRQcm9wOjpTZXROdWxsKHZvaWQpIF9fcHRyNjQNCis/U2V0TnVsbEBOdG1zRGJSZWNvcmRQcm9wQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpTZXROdW1iZXIodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXROdW1iZXJATnRtc0RiQ2hhbmdlckBAUUVBQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkRyaXZlVHlwZTo6U2V0TnVtYmVyT2ZIZWFkcyh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldE51bWJlck9mSGVhZHNATnRtc0RiRHJpdmVUeXBlQEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTWVkaWFUeXBlOjpTZXROdW1iZXJPZlNpZGVzKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0TnVtYmVyT2ZTaWRlc0BOdG1zRGJNZWRpYVR5cGVAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJTZWxlY3Rpb25TZXQ6OlNldE9iamVjdEd1aWQobG9uZyxjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRPYmplY3RHdWlkQE50bXNEYlNlbGVjdGlvblNldEBAUUVBQVhKQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPYmplY3Q6OlNldE9iamVjdElkKGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldE9iamVjdElkQE50bXNEYk9iamVjdEBAUUVBQUtBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYk9iamVjdDo6U2V0T2JqZWN0SWQoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0T2JqZWN0SWRATnRtc0RiT2JqZWN0QEBRRUFBS1BFQkRAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiUGFydGl0aW9uOjpTZXRPbWlkTGFiZWxJZCh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldE9taWRMYWJlbElkQE50bXNEYlBhcnRpdGlvbkBAUUVBQUtQRUJFS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJQYXJ0aXRpb246OlNldE9taWRMYWJlbEluZm8odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldE9taWRMYWJlbEluZm9ATnRtc0RiUGFydGl0aW9uQEBRRUFBS1BFQkdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiUGFydGl0aW9uOjpTZXRPbWlkTGFiZWxUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRPbWlkTGFiZWxUeXBlQE50bXNEYlBhcnRpdGlvbkBAUUVBQUtQRUJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkNvbXB1dGVyOjpTZXRPcFJlcUNsZWFuVGltZShsb25nKSBfX3B0cjY0DQorP1NldE9wUmVxQ2xlYW5UaW1lQE50bXNEYkNvbXB1dGVyQEBRRUFBS0pAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiQ29tcHV0ZXI6OlNldE9wUmVxRmxhZ3ModW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRPcFJlcUZsYWdzQE50bXNEYkNvbXB1dGVyQEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06OlNldE9wZXJhdGlvbkNvZGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRPcGVyYXRpb25Db2RlQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUGh5c2ljYWxNZWRpYTo6U2V0T3BlcmF0aW9uRXJyb3JDb2RlX051bGwodm9pZCkgX19wdHI2NA0KKz9TZXRPcGVyYXRpb25FcnJvckNvZGVfTnVsbEBOdG1zRGJQaHlzaWNhbE1lZGlhQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6U2V0T3BlcmF0aW9uT3B0aW9uKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0T3BlcmF0aW9uT3B0aW9uQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiT2JqZWN0OjpTZXRPcGVyYXRpb25hbCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldE9wZXJhdGlvbmFsQE50bXNEYk9iamVjdEBAUUVBQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYk1lZGlhUG9vbDo6U2V0UGFyZW50KGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFBhcmVudEBOdG1zRGJNZWRpYVBvb2xAQFFFQUFLQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJNZWRpYVBvb2w6OlNldFBhcmVudF9OdWxsKHZvaWQpIF9fcHRyNjQNCis/U2V0UGFyZW50X051bGxATnRtc0RiTWVkaWFQb29sQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJMb2dpY2FsTWVkaWE6OlNldFBhcnRpdGlvbihjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQYXJ0aXRpb25ATnRtc0RiTG9naWNhbE1lZGlhQEBRRUFBWEFFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06OlNldFBhcnRpdGlvbklkKGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFBhcnRpdGlvbklkQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBS0FFQlZOdG1zRGJHdWlkQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06OlNldFBhcnRpdGlvbklkX051bGwodm9pZCkgX19wdHI2NA0KKz9TZXRQYXJ0aXRpb25JZF9OdWxsQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJQYXJ0aXRpb246OlNldFBhcnRpdGlvbk51bWJlcihzaG9ydCkgX19wdHI2NA0KKz9TZXRQYXJ0aXRpb25OdW1iZXJATnRtc0RiUGFydGl0aW9uQEBRRUFBS0ZAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiQ2hhbmdlcjo6U2V0UGF0aE5hbWUoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UGF0aE5hbWVATnRtc0RiQ2hhbmdlckBAUUVBQUtQRUJEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkRyaXZlOjpTZXRQYXRoTmFtZShjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQYXRoTmFtZUBOdG1zRGJEcml2ZUBAUUVBQUtQRUJEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkNoYW5nZXI6OlNldFBhdGhOYW1lVyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UGF0aE5hbWVXQE50bXNEYkNoYW5nZXJAQFFFQUFLUEVCR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJEcml2ZTo6U2V0UGF0aE5hbWVXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQYXRoTmFtZVdATnRtc0RiRHJpdmVAQFFFQUFLUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpTZXRQYXRoTmFtZV9OdWxsKHZvaWQpIF9fcHRyNjQNCis/U2V0UGF0aE5hbWVfTnVsbEBOdG1zRGJDaGFuZ2VyQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJEcml2ZTo6U2V0UGF0aE5hbWVfTnVsbCh2b2lkKSBfX3B0cjY0DQorP1NldFBhdGhOYW1lX051bGxATnRtc0RiRHJpdmVAQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6OlNldFBoeXNMb2NJZChjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQaHlzTG9jSWRATnRtc0RiUGh5c2ljYWxNZWRpYUBAUUVBQUtBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6OlNldFBoeXNMb2NJZF9OdWxsKHZvaWQpIF9fcHRyNjQNCis/U2V0UGh5c0xvY0lkX051bGxATnRtc0RiUGh5c2ljYWxNZWRpYUBAUUVBQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiUGh5c2ljYWxNZWRpYTo6U2V0UGh5c0xvY1R5cGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRQaHlzTG9jVHlwZUBOdG1zRGJQaHlzaWNhbE1lZGlhQEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiUGh5c2ljYWxNZWRpYTo6U2V0UGh5c01lZGlhRXJyb3JDb2RlKGxvbmcpIF9fcHRyNjQNCis/U2V0UGh5c01lZGlhRXJyb3JDb2RlQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQUFLSkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6U2V0UGh5c01lZGlhSWQoY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UGh5c01lZGlhSWRATnRtc0RiTGliV29ya0l0ZW1AQFFFQUFLQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6U2V0UGh5c01lZGlhSWRfTnVsbCh2b2lkKSBfX3B0cjY0DQorP1NldFBoeXNNZWRpYUlkX051bGxATnRtc0RiTGliV29ya0l0ZW1AQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYlBoeXNpY2FsTWVkaWE6OlNldFBoeXNNZWRpYVN0YXRlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0UGh5c01lZGlhU3RhdGVATnRtc0RiUGh5c2ljYWxNZWRpYUBAUUVBQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYlBhcnRpdGlvbjo6U2V0UGh5c2ljYWxtZWRpYShjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQaHlzaWNhbG1lZGlhQE50bXNEYlBhcnRpdGlvbkBAUUVBQUtBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlBhcnRpdGlvbjo6U2V0UGh5c2ljYWxtZWRpYV9OdWxsKHZvaWQpIF9fcHRyNjQNCis/U2V0UGh5c2ljYWxtZWRpYV9OdWxsQE50bXNEYlBhcnRpdGlvbkBAUUVBQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiUGh5c2ljYWxNZWRpYTo6U2V0UG9vbE1lbWJlcihjbGFzcyBOdG1zRGJHdWlkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQb29sTWVtYmVyQE50bXNEYlBoeXNpY2FsTWVkaWFAQFFFQUFLQUVCVk50bXNEYkd1aWRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpTZXRQb29sTWVtYmVyX051bGwodm9pZCkgX19wdHI2NA0KKz9TZXRQb29sTWVtYmVyX051bGxATnRtc0RiUGh5c2ljYWxNZWRpYUBAUUVBQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06OlNldFByaW9yaXR5KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0UHJpb3JpdHlATnRtc0RiTGliV29ya0l0ZW1AQFFFQUFLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJDaGFuZ2VyVHlwZTo6U2V0UHJvZHVjdChjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQcm9kdWN0QE50bXNEYkNoYW5nZXJUeXBlQEBRRUFBS1BFQkRAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiRHJpdmVUeXBlOjpTZXRQcm9kdWN0KGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFByb2R1Y3RATnRtc0RiRHJpdmVUeXBlQEBRRUFBS1BFQkRAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiQ2hhbmdlclR5cGU6OlNldFByb2R1Y3RXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQcm9kdWN0V0BOdG1zRGJDaGFuZ2VyVHlwZUBAUUVBQUtQRUJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkRyaXZlVHlwZTo6U2V0UHJvZHVjdFcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFByb2R1Y3RXQE50bXNEYkRyaXZlVHlwZUBAUUVBQUtQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlByb3BIZWFkZXI6OlNldFByb3BDb2RlKHNob3J0KSBfX3B0cjY0DQorP1NldFByb3BDb2RlQE50bXNEYlByb3BIZWFkZXJAQFFFQUFYRkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6U2V0UHJvdGVjdGVkKGludCkgX19wdHI2NA0KKz9TZXRQcm90ZWN0ZWRATnRtc0RiTGliV29ya0l0ZW1AQFFFQUFLSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6OlNldFJlcXVlc3QodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRSZXF1ZXN0QE50bXNEYk9wUmVxdWVzdEBAUUVBQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkNoYW5nZXI6OlNldFJldmlzaW9uKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFJldmlzaW9uQE50bXNEYkNoYW5nZXJAQFFFQUFLUEVCREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJEcml2ZTo6U2V0UmV2aXNpb24oY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UmV2aXNpb25ATnRtc0RiRHJpdmVAQFFFQUFLUEVCREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpTZXRSZXZpc2lvblcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFJldmlzaW9uV0BOdG1zRGJDaGFuZ2VyQEBRRUFBS1BFQkdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiRHJpdmU6OlNldFJldmlzaW9uVyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UmV2aXNpb25XQE50bXNEYkRyaXZlQEBRRUFBS1BFQkdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiRHJpdmU6OlNldFNhdmVkUGFydGl0aW9uSWQoY2xhc3MgTnRtc0RiR3VpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0U2F2ZWRQYXJ0aXRpb25JZEBOdG1zRGJEcml2ZUBAUUVBQUtBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlOjpTZXRTYXZlZFBhcnRpdGlvbklkX051bGwodm9pZCkgX19wdHI2NA0KKz9TZXRTYXZlZFBhcnRpdGlvbklkX051bGxATnRtc0RiRHJpdmVAQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkNoYW5nZXI6OlNldFNjc2lCdXModW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0U2NzaUJ1c0BOdG1zRGJDaGFuZ2VyQEBRRUFBS0dAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiRHJpdmU6OlNldFNjc2lCdXModW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0U2NzaUJ1c0BOdG1zRGJEcml2ZUBAUUVBQUtHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkNoYW5nZXI6OlNldFNjc2lCdXNfTnVsbCh2b2lkKSBfX3B0cjY0DQorP1NldFNjc2lCdXNfTnVsbEBOdG1zRGJDaGFuZ2VyQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJEcml2ZTo6U2V0U2NzaUJ1c19OdWxsKHZvaWQpIF9fcHRyNjQNCis/U2V0U2NzaUJ1c19OdWxsQE50bXNEYkRyaXZlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpTZXRTY3NpTHVuKHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1NldFNjc2lMdW5ATnRtc0RiQ2hhbmdlckBAUUVBQUtHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkRyaXZlOjpTZXRTY3NpTHVuKHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1NldFNjc2lMdW5ATnRtc0RiRHJpdmVAQFFFQUFLR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpTZXRTY3NpTHVuX051bGwodm9pZCkgX19wdHI2NA0KKz9TZXRTY3NpTHVuX051bGxATnRtc0RiQ2hhbmdlckBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiRHJpdmU6OlNldFNjc2lMdW5fTnVsbCh2b2lkKSBfX3B0cjY0DQorP1NldFNjc2lMdW5fTnVsbEBOdG1zRGJEcml2ZUBAUUVBQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiQ2hhbmdlcjo6U2V0U2NzaVBvcnQodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0U2NzaVBvcnRATnRtc0RiQ2hhbmdlckBAUUVBQUtHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkRyaXZlOjpTZXRTY3NpUG9ydCh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZXRTY3NpUG9ydEBOdG1zRGJEcml2ZUBAUUVBQUtHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkNoYW5nZXI6OlNldFNjc2lQb3J0X051bGwodm9pZCkgX19wdHI2NA0KKz9TZXRTY3NpUG9ydF9OdWxsQE50bXNEYkNoYW5nZXJAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlOjpTZXRTY3NpUG9ydF9OdWxsKHZvaWQpIF9fcHRyNjQNCis/U2V0U2NzaVBvcnRfTnVsbEBOdG1zRGJEcml2ZUBAUUVBQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiQ2hhbmdlcjo6U2V0U2NzaVRhcmdldCh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZXRTY3NpVGFyZ2V0QE50bXNEYkNoYW5nZXJAQFFFQUFLR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJEcml2ZTo6U2V0U2NzaVRhcmdldCh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZXRTY3NpVGFyZ2V0QE50bXNEYkRyaXZlQEBRRUFBS0dAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiQ2hhbmdlcjo6U2V0U2NzaVRhcmdldF9OdWxsKHZvaWQpIF9fcHRyNjQNCis/U2V0U2NzaVRhcmdldF9OdWxsQE50bXNEYkNoYW5nZXJAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlOjpTZXRTY3NpVGFyZ2V0X051bGwodm9pZCkgX19wdHI2NA0KKz9TZXRTY3NpVGFyZ2V0X051bGxATnRtc0RiRHJpdmVAQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYk9iamVjdDo6U2V0U2VjdXJpdHlEZXNjcmlwdG9yKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0U2VjdXJpdHlEZXNjcmlwdG9yQE50bXNEYk9iamVjdEBAUUVBQUtQRUFYS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJQaHlzaWNhbE1lZGlhOjpTZXRTZXF1ZW5jZU51bWJlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0U2VxdWVuY2VOdW1iZXJATnRtc0RiUGh5c2ljYWxNZWRpYUBAUUVBQUtQRUJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkNoYW5nZXI6OlNldFNlcmlhbE51bWJlcihjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRTZXJpYWxOdW1iZXJATnRtc0RiQ2hhbmdlckBAUUVBQUtQRUJEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkRyaXZlOjpTZXRTZXJpYWxOdW1iZXIoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0U2VyaWFsTnVtYmVyQE50bXNEYkRyaXZlQEBRRUFBS1BFQkRAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiQ2hhbmdlcjo6U2V0U2VyaWFsTnVtYmVyVyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0U2VyaWFsTnVtYmVyV0BOdG1zRGJDaGFuZ2VyQEBRRUFBS1BFQkdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiRHJpdmU6OlNldFNlcmlhbE51bWJlclcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFNlcmlhbE51bWJlcldATnRtc0RiRHJpdmVAQFFFQUFLUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJDaGFuZ2VyOjpTZXRTZXJpYWxOdW1iZXJfTnVsbCh2b2lkKSBfX3B0cjY0DQorP1NldFNlcmlhbE51bWJlcl9OdWxsQE50bXNEYkNoYW5nZXJAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkRyaXZlOjpTZXRTZXJpYWxOdW1iZXJfTnVsbCh2b2lkKSBfX3B0cjY0DQorP1NldFNlcmlhbE51bWJlcl9OdWxsQE50bXNEYkRyaXZlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJQYXJ0aXRpb246OlNldFNpZGUodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0U2lkZUBOdG1zRGJQYXJ0aXRpb25AQFFFQUFLR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJMaXN0OjpNYXA6OlNldFNpemUobG9uZykgX19wdHI2NA0KKz9TZXRTaXplQE1hcEBOdG1zRGJMaXN0QEBRRUFBWEpAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiUHJvcEhlYWRlcjo6U2V0U2l6ZShzaG9ydCkgX19wdHI2NA0KKz9TZXRTaXplQE50bXNEYlByb3BIZWFkZXJAQFFFQUFYRkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6U2V0U2xvdElkKGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFNsb3RJZEBOdG1zRGJMaWJXb3JrSXRlbUBAUUVBQUtBRUJWTnRtc0RiR3VpZEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYkxpYldvcmtJdGVtOjpTZXRTbG90SWRfTnVsbCh2b2lkKSBfX3B0cjY0DQorP1NldFNsb3RJZF9OdWxsQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJTdG9yYWdlU2xvdDo6U2V0U2xvdE51bWJlcih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFNsb3ROdW1iZXJATnRtc0RiU3RvcmFnZVNsb3RAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJTdG9yYWdlU2xvdDo6U2V0U2xvdFN0YXRlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0U2xvdFN0YXRlQE50bXNEYlN0b3JhZ2VTbG90QEBRRUFBS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiRmlsZTo6U2V0U3RhdGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRTdGF0ZUBOdG1zRGJGaWxlQEBRRUFBWEtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06OlNldFN0YXRlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0U3RhdGVATnRtc0RiTGliV29ya0l0ZW1AQFFFQUFLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6OlNldFN0YXRlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0U3RhdGVATnRtc0RiT3BSZXF1ZXN0QEBRRUFBS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTnRtc0RiU3RyaW5nOjpTZXRTdHJpbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0U3RyaW5nQE50bXNEYlN0cmluZ0BAUUVBQVhQRUJHS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJyYXJ5OjpTZXRTdXBwb3J0RHJ2Q2xlYW4oc2hvcnQpIF9fcHRyNjQNCis/U2V0U3VwcG9ydERydkNsZWFuQE50bXNEYkxpYnJhcnlAQFFFQUFLRkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6U2V0VGltZUNvbXBsZXRlZChzdHJ1Y3QgX1NZU1RFTVRJTUUpIF9fcHRyNjQNCis/U2V0VGltZUNvbXBsZXRlZEBOdG1zRGJMaWJXb3JrSXRlbUBAUUVBQUtVX1NZU1RFTVRJTUVAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6U2V0VGltZUNvbXBsZXRlZF9OdWxsKHZvaWQpIF9fcHRyNjQNCis/U2V0VGltZUNvbXBsZXRlZF9OdWxsQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6U2V0VGltZVF1ZXVlZChzdHJ1Y3QgX1NZU1RFTVRJTUUpIF9fcHRyNjQNCis/U2V0VGltZVF1ZXVlZEBOdG1zRGJMaWJXb3JrSXRlbUBAUUVBQUtVX1NZU1RFTVRJTUVAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6U2V0VGltZVF1ZXVlZF9OdWxsKHZvaWQpIF9fcHRyNjQNCis/U2V0VGltZVF1ZXVlZF9OdWxsQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6OlNldFRpbWVTdWJtaXR0ZWQoc3RydWN0IF9TWVNURU1USU1FKSBfX3B0cjY0DQorP1NldFRpbWVTdWJtaXR0ZWRATnRtc0RiT3BSZXF1ZXN0QEBRRUFBS1VfU1lTVEVNVElNRUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE50bXNEYlByb3BHdWlkOjpTZXRVcFRvRGF0ZSh2b2lkKSBfX3B0cjY0DQorP1NldFVwVG9EYXRlQE50bXNEYlByb3BHdWlkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJEcml2ZTo6U2V0VXNlQ291bnQodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRVc2VDb3VudEBOdG1zRGJEcml2ZUBAUUVBQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkxpYldvcmtJdGVtOjpTZXRVc2VyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRVc2VyQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBS1BFQkdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiT3BSZXF1ZXN0OjpTZXRVc2VyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRVc2VyQE50bXNEYk9wUmVxdWVzdEBAUUVBQUtQRUJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkNoYW5nZXJUeXBlOjpTZXRWZW5kb3IoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VmVuZG9yQE50bXNEYkNoYW5nZXJUeXBlQEBRRUFBS1BFQkRAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiRHJpdmVUeXBlOjpTZXRWZW5kb3IoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VmVuZG9yQE50bXNEYkRyaXZlVHlwZUBAUUVBQUtQRUJEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkNoYW5nZXJUeXBlOjpTZXRWZW5kb3JXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWZW5kb3JXQE50bXNEYkNoYW5nZXJUeXBlQEBRRUFBS1BFQkdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiRHJpdmVUeXBlOjpTZXRWZW5kb3JXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWZW5kb3JXQE50bXNEYkRyaXZlVHlwZUBAUUVBQUtQRUJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYk1lZGlhVHlwZTo6U2V0V3JpdGVDaGFyYWN0ZXJpc3RpY3ModW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRXcml0ZUNoYXJhY3RlcmlzdGljc0BOdG1zRGJNZWRpYVR5cGVAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgTnRtc0RiRGF0YUN0eHQ6OlNodXRkb3duKHZvaWQpDQorP1NodXRkb3duQE50bXNEYkRhdGFDdHh0QEBTQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAgX19jZGVjbCBOdG1zRGJQYXJ0aXRpb246OlNpZGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9TaWRlQE50bXNEYlBhcnRpdGlvbkBAUUVCQT9CR1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJMaXN0OjpNYXA6OlNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9TaXplQE1hcEBOdG1zRGJMaXN0QEBRRUJBSlhaDQorOyBwdWJsaWM6IHNob3J0IF9fY2RlY2wgTnRtc0RiUHJvcEhlYWRlcjo6U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1NpemVATnRtc0RiUHJvcEhlYWRlckBAUUVCQUZYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiUmVjb3JkUHJvcDo6U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1NpemVATnRtc0RiUmVjb3JkUHJvcEBAUUVCQUtYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06OlNsb3RJZF9Jc05vdE51bGwodm9pZCkgX19wdHI2NA0KKz9TbG90SWRfSXNOb3ROdWxsQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBSlhaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYkd1aWQgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06OlNsb3RJZF9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U2xvdElkX25ATnRtc0RiTGliV29ya0l0ZW1AQFFFQkFBRUJWTnRtc0RiR3VpZEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAgX19jZGVjbCBOdG1zRGJTdG9yYWdlU2xvdDo6U2xvdE51bWJlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1Nsb3ROdW1iZXJATnRtc0RiU3RvcmFnZVNsb3RAQFFFQkE/QktYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX2NkZWNsIE50bXNEYlN0b3JhZ2VTbG90OjpTbG90U3RhdGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9TbG90U3RhdGVATnRtc0RiU3RvcmFnZVNsb3RAQFFFQkE/QktYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiRGF0YUN0eHQ6OlN0YXJ0VHJhbnNhY3Rpb24odm9pZCkgX19wdHI2NA0KKz9TdGFydFRyYW5zYWN0aW9uQE50bXNEYkRhdGFDdHh0QEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJGaWxlOjpTdGF0ZSh2b2lkKSBfX3B0cjY0DQorP1N0YXRlQE50bXNEYkZpbGVAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6U3RhdGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9TdGF0ZUBOdG1zRGJMaWJXb3JrSXRlbUBAUUVCQT9CS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPcFJlcXVlc3Q6OlN0YXRlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U3RhdGVATnRtc0RiT3BSZXF1ZXN0QEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJTZWxlY3Rpb25TZXQ6OlN0YXR1cyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1N0YXR1c0BOdG1zRGJTZWxlY3Rpb25TZXRAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYkxpYnJhcnk6OlN0b3JhZ2VTbG90cyhjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQsY2xhc3MgTnRtc0RiU2VsZWN0aW9uU2V0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TdG9yYWdlU2xvdHNATnRtc0RiTGlicmFyeUBAUUVBQUtQRUFWTnRtc0RiRGF0YUN0eHRAQEFFQVZOdG1zRGJTZWxlY3Rpb25TZXRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6OlN0b3JlKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1N0b3JlQE50bXNEYlJlY29yZFByb3BAQFFFQUFJUEVBRUBaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiR3VpZDo6U3RyR3VpZChjaGFyICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9TdHJHdWlkQE50bXNEYkd1aWRAQFFFQkFQRUFEUEVBREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiR3VpZDo6U3RyR3VpZCh1bnNpZ25lZCBjaGFyICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9TdHJHdWlkQE50bXNEYkd1aWRAQFFFQkFQRUFFUEVBRUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIE50bXNEYkd1aWQ6OlN0ckd1aWRXKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9TdHJHdWlkV0BOdG1zRGJHdWlkQEBRRUJBUEVBR1BFQUdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTnRtc0RiT2JqVHlwZURlZjo6U3VwZXJUeXBlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U3VwZXJUeXBlQE50bXNEYk9ialR5cGVEZWZAQFFFQkFLWFoNCis7IHB1YmxpYzogc2hvcnQgY29uc3QgIF9fY2RlY2wgTnRtc0RiTGlicmFyeTo6U3VwcG9ydERydkNsZWFuKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U3VwcG9ydERydkNsZWFuQE50bXNEYkxpYnJhcnlAQFFFQkE/QkZYWg0KKzsgcHVibGljOiBzaG9ydCBfX2NkZWNsIE50bXNEYlJlY29yZEtleTo6VGFibGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9UYWJsZUBOdG1zRGJSZWNvcmRLZXlAQFFFQkFGWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE50bXNEYkxpYldvcmtJdGVtOjpUaW1lQ29tcGxldGVkX0lzTm90TnVsbCh2b2lkKSBfX3B0cjY0DQorP1RpbWVDb21wbGV0ZWRfSXNOb3ROdWxsQE50bXNEYkxpYldvcmtJdGVtQEBRRUFBSlhaDQorOyBwdWJsaWM6IHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6VGltZUNvbXBsZXRlZF9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/VGltZUNvbXBsZXRlZF9uQE50bXNEYkxpYldvcmtJdGVtQEBRRUJBP0JVX1NZU1RFTVRJTUVAQFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOdG1zRGJMaWJXb3JrSXRlbTo6VGltZVF1ZXVlZF9Jc05vdE51bGwodm9pZCkgX19wdHI2NA0KKz9UaW1lUXVldWVkX0lzTm90TnVsbEBOdG1zRGJMaWJXb3JrSXRlbUBAUUVBQUpYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgIF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06OlRpbWVRdWV1ZWRfbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1RpbWVRdWV1ZWRfbkBOdG1zRGJMaWJXb3JrSXRlbUBAUUVCQT9CVV9TWVNURU1USU1FQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgIF9fY2RlY2wgTnRtc0RiT3BSZXF1ZXN0OjpUaW1lU3VibWl0dGVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/VGltZVN1Ym1pdHRlZEBOdG1zRGJPcFJlcXVlc3RAQFFFQkE/QlVfU1lTVEVNVElNRUBAWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc1RyYW5zYWN0aW9uICogX19wdHI2NCBfX2NkZWNsIE50bXNEYkRhdGFDdHh0OjpUcmFuc2FjdGlvbih2b2lkKSBfX3B0cjY0DQorP1RyYW5zYWN0aW9uQE50bXNEYkRhdGFDdHh0QEBRRUFBUEVBVk50bXNUcmFuc2FjdGlvbkBAWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUmVjb3JkVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJPYmpUeXBlRGVmOjpUeXBlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/VHlwZUBOdG1zRGJPYmpUeXBlRGVmQEBRRUJBUEVBVk50bXNEYlJlY29yZFR5cGVAQFhaDQorOyBwdWJsaWM6IGNsYXNzIE50bXNEYlByb3BEYXRhVHlwZSBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJQcm9wSGVhZGVyOjpUeXBlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/VHlwZUBOdG1zRGJQcm9wSGVhZGVyQEBRRUJBQUVCVk50bXNEYlByb3BEYXRhVHlwZUBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYlByb3BlcnR5VmFsdWU6OlR5cGUodm9pZCkgX19wdHI2NA0KKz9UeXBlQE50bXNEYlByb3BlcnR5VmFsdWVAQFFFQUFLWFoNCis7IHB1YmxpYzogY2xhc3MgTnRtc0RiUHJvcERhdGFUeXBlIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIE50bXNEYlJlY29yZFByb3A6OlR5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9UeXBlQE50bXNEYlJlY29yZFByb3BAQFFFQkFBRUJWTnRtc0RiUHJvcERhdGFUeXBlQEBYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE50bXNEYk9ialR5cGVEZWY6OlR5cGVOYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/VHlwZU5hbWVATnRtc0RiT2JqVHlwZURlZkBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE50bXNEYk9ialR5cGVEZWY6OlR5cGVOYW1lQWJicmV2KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/VHlwZU5hbWVBYmJyZXZATnRtc0RiT2JqVHlwZURlZkBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPYmplY3Q6OlVwZGF0ZShjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VXBkYXRlQE50bXNEYk9iamVjdEBAVUVBQUtQRUFWTnRtc0RiRGF0YUN0eHRAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYk9iamVjdDo6VXBkYXRlUmVnYXJkbGVzcyhjbGFzcyBOdG1zRGJEYXRhQ3R4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VXBkYXRlUmVnYXJkbGVzc0BOdG1zRGJPYmplY3RAQFVFQUFLUEVBVk50bXNEYkRhdGFDdHh0QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX2NkZWNsIE50bXNEYkRyaXZlOjpVc2VDb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1VzZUNvdW50QE50bXNEYkRyaXZlQEBRRUJBP0JLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiTGliV29ya0l0ZW06OlVzZXIodm9pZCljb25zdCAgX19wdHI2NA0KKz9Vc2VyQE50bXNEYkxpYldvcmtJdGVtQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE50bXNEYk9wUmVxdWVzdDo6VXNlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1VzZXJATnRtc0RiT3BSZXF1ZXN0QEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJMaXN0OjpNYXA6OlZhbGlkYXRlKHZvaWQpIF9fcHRyNjQNCis/VmFsaWRhdGVATWFwQE50bXNEYkxpc3RAQFFFQUFYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBpbnQgX19jZGVjbCBOdG1zRGJPYmplY3Q6OlZhbHVlSXNOb3ROdWxsKGxvbmcpY29uc3QgIF9fcHRyNjQNCis/VmFsdWVJc05vdE51bGxATnRtc0RiT2JqZWN0QEBNRUJBSUpAWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE50bXNEYkNoYW5nZXJUeXBlOjpWZW5kb3Iodm9pZCkgX19wdHI2NA0KKz9WZW5kb3JATnRtc0RiQ2hhbmdlclR5cGVAQFFFQUFQRUJEWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJEcml2ZVR5cGU6OlZlbmRvcih2b2lkKSBfX3B0cjY0DQorP1ZlbmRvckBOdG1zRGJEcml2ZVR5cGVAQFFFQUFQRUJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiQ2hhbmdlclR5cGU6OlZlbmRvclcodm9pZCljb25zdCAgX19wdHI2NA0KKz9WZW5kb3JXQE50bXNEYkNoYW5nZXJUeXBlQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIE50bXNEYkRyaXZlVHlwZTo6VmVuZG9yVyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1ZlbmRvcldATnRtc0RiRHJpdmVUeXBlQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOdG1zRGJHdWlkOjpXaW4zMkd1aWQoc3RydWN0IF9HVUlEICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9XaW4zMkd1aWRATnRtc0RiR3VpZEBAUUVCQVhBRUFVX0dVSURAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPYmplY3Q6OldyaXRlQXR0cmlidXRlKGNsYXNzIE50bXNEYlByb3BlcnR5VmFsdWUgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1dyaXRlQXR0cmlidXRlQE50bXNEYk9iamVjdEBAUUVBQUtBRUFWTnRtc0RiUHJvcGVydHlWYWx1ZUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAgX19jZGVjbCBOdG1zRGJNZWRpYVR5cGU6OldyaXRlQ2hhcmFjdGVyaXN0aWNzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/V3JpdGVDaGFyYWN0ZXJpc3RpY3NATnRtc0RiTWVkaWFUeXBlQEBRRUJBP0JLWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIE50bXNEYk9iamVjdDo6V3JpdGVPYmplY3RSZWNvcmQoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0LGNsYXNzIE50bXNEYlJlY29yZEtleSAmIF9fcHRyNjQsY2xhc3MgTnRtc0RiUmVjb3JkUmV2ICYgX19wdHI2NCxjbGFzcyBOdG1zRGJSZWNvcmRQcm9wTGlzdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/V3JpdGVPYmplY3RSZWNvcmRATnRtc0RiT2JqZWN0QEBJRUFBWFBFQVZOdG1zRGJEYXRhQ3R4dEBAQUVBVk50bXNEYlJlY29yZEtleUBAQUVBVk50bXNEYlJlY29yZFJldkBAUEVBVk50bXNEYlJlY29yZFByb3BMaXN0QEBAWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgTnRtc0RiR3VpZDo6X2lkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/X2lkQE50bXNEYkd1aWRAQFFFQkFBRUJVX0dVSURAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOdG1zRGJPYmplY3Q6OmNvdW50UmVsYXRlZE9iamVjdHMobG9uZykgX19wdHI2NA0KKz9jb3VudFJlbGF0ZWRPYmplY3RzQE50bXNEYk9iamVjdEBAUUVBQUtKQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIE50bXNEYk9iamVjdDo6Z2V0UmVsYXRlZE9iamVjdHMoY2xhc3MgTnRtc0RiRGF0YUN0eHQgKiBfX3B0cjY0LGNsYXNzIE50bXNEYlNlbGVjdGlvblNldCAmIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz9nZXRSZWxhdGVkT2JqZWN0c0BOdG1zRGJPYmplY3RAQFFFQUFLUEVBVk50bXNEYkRhdGFDdHh0QEBBRUFWTnRtc0RiU2VsZWN0aW9uU2V0QEBKQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJUeXBlR3VpZDo6aWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9pZEBOdG1zRGJUeXBlR3VpZEBAUUVCQVBFQkRYWg0KKzsgcHJpdmF0ZTogc3RhdGljIHZvaWQgKiBfX3B0cjY0ICBfX3B0cjY0IE50bXNEYkRhdGFDdHh0OjptX0NoYW5nZU11dGV4DQorP21fQ2hhbmdlTXV0ZXhATnRtc0RiRGF0YUN0eHRAQDBQRUFYRUEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ2hhbmdlUmVnaXN0cmF0aW9uICogX19wdHI2NCAgX19wdHI2NCBOdG1zRGJEYXRhQ3R4dDo6bV9DaGFuZ2VUYWJsZQ0KKz9tX0NoYW5nZVRhYmxlQE50bXNEYkRhdGFDdHh0QEAyUEVBVkNoYW5nZVJlZ2lzdHJhdGlvbkBARUEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIE50bXNEYlJlY29yZFR5cGUgIE50bXNEYkNoYW5nZXI6Om1fVHlwZQ0KKz9tX1R5cGVATnRtc0RiQ2hhbmdlckBAMFZOdG1zRGJSZWNvcmRUeXBlQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBOdG1zRGJSZWNvcmRUeXBlICBOdG1zRGJDaGFuZ2VyVHlwZTo6bV9UeXBlDQorP21fVHlwZUBOdG1zRGJDaGFuZ2VyVHlwZUBAMFZOdG1zRGJSZWNvcmRUeXBlQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBOdG1zRGJSZWNvcmRUeXBlICBOdG1zRGJDb21wdXRlcjo6bV9UeXBlDQorP21fVHlwZUBOdG1zRGJDb21wdXRlckBAMFZOdG1zRGJSZWNvcmRUeXBlQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBOdG1zRGJSZWNvcmRUeXBlICBOdG1zRGJEcml2ZTo6bV9UeXBlDQorP21fVHlwZUBOdG1zRGJEcml2ZUBAMFZOdG1zRGJSZWNvcmRUeXBlQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBOdG1zRGJSZWNvcmRUeXBlICBOdG1zRGJEcml2ZVR5cGU6Om1fVHlwZQ0KKz9tX1R5cGVATnRtc0RiRHJpdmVUeXBlQEAwVk50bXNEYlJlY29yZFR5cGVAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIE50bXNEYlJlY29yZFR5cGUgIE50bXNEYklFRG9vcjo6bV9UeXBlDQorP21fVHlwZUBOdG1zRGJJRURvb3JAQDBWTnRtc0RiUmVjb3JkVHlwZUBAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgTnRtc0RiUmVjb3JkVHlwZSAgTnRtc0RiSUVQb3J0OjptX1R5cGUNCis/bV9UeXBlQE50bXNEYklFUG9ydEBAMFZOdG1zRGJSZWNvcmRUeXBlQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBOdG1zRGJSZWNvcmRUeXBlICBOdG1zRGJMaWJXb3JrSXRlbTo6bV9UeXBlDQorP21fVHlwZUBOdG1zRGJMaWJXb3JrSXRlbUBAMFZOdG1zRGJSZWNvcmRUeXBlQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBOdG1zRGJSZWNvcmRUeXBlICBOdG1zRGJMaWJyYXJ5OjptX1R5cGUNCis/bV9UeXBlQE50bXNEYkxpYnJhcnlAQDBWTnRtc0RiUmVjb3JkVHlwZUBAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgTnRtc0RiUmVjb3JkVHlwZSAgTnRtc0RiTG9naWNhbE1lZGlhOjptX1R5cGUNCis/bV9UeXBlQE50bXNEYkxvZ2ljYWxNZWRpYUBAMFZOdG1zRGJSZWNvcmRUeXBlQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBOdG1zRGJSZWNvcmRUeXBlICBOdG1zRGJNZWRpYVBvb2w6Om1fVHlwZQ0KKz9tX1R5cGVATnRtc0RiTWVkaWFQb29sQEAwVk50bXNEYlJlY29yZFR5cGVAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIE50bXNEYlJlY29yZFR5cGUgIE50bXNEYk1lZGlhVHlwZTo6bV9UeXBlDQorP21fVHlwZUBOdG1zRGJNZWRpYVR5cGVAQDBWTnRtc0RiUmVjb3JkVHlwZUBAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgTnRtc0RiUmVjb3JkVHlwZSAgTnRtc0RiT2JqZWN0OjptX1R5cGUNCis/bV9UeXBlQE50bXNEYk9iamVjdEBAMFZOdG1zRGJSZWNvcmRUeXBlQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBOdG1zRGJSZWNvcmRUeXBlICBOdG1zRGJPcFJlcXVlc3Q6Om1fVHlwZQ0KKz9tX1R5cGVATnRtc0RiT3BSZXF1ZXN0QEAwVk50bXNEYlJlY29yZFR5cGVAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIE50bXNEYlJlY29yZFR5cGUgIE50bXNEYlBhcnRpdGlvbjo6bV9UeXBlDQorP21fVHlwZUBOdG1zRGJQYXJ0aXRpb25AQDBWTnRtc0RiUmVjb3JkVHlwZUBAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgTnRtc0RiUmVjb3JkVHlwZSAgTnRtc0RiUGh5c2ljYWxNZWRpYTo6bV9UeXBlDQorP21fVHlwZUBOdG1zRGJQaHlzaWNhbE1lZGlhQEAwVk50bXNEYlJlY29yZFR5cGVAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIE50bXNEYlJlY29yZFR5cGUgIE50bXNEYlN0b3JhZ2VTbG90OjptX1R5cGUNCis/bV9UeXBlQE50bXNEYlN0b3JhZ2VTbG90QEAwVk50bXNEYlJlY29yZFR5cGVAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIE50bXNEYlJlY29yZFR5cGUgIE50bXNEYlVJRGVzdGluYXRpb246Om1fVHlwZQ0KKz9tX1R5cGVATnRtc0RiVUlEZXN0aW5hdGlvbkBAMFZOdG1zRGJSZWNvcmRUeXBlQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgIE50bXNEYkRhdGFDdHh0OjptX2xvY2tlZA0KKz9tX2xvY2tlZEBOdG1zRGJEYXRhQ3R4dEBAMEhBIERBVEENCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOdG1zRGJFcnJvcjo6bWVzc2FnZVN0cmluZyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP21lc3NhZ2VTdHJpbmdATnRtc0RiRXJyb3JAQFFFQkFQRUJEWFoNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9udG1zZXZ0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL250bXNldnQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJjMGQ0ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9udG1zZXZ0LmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE5UTVNFVlQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5UTVNFVlQuZGxsDQorRVhQT1JUUw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL250bXNtZ3IuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbnRtc21nci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjFmZmY0MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL250bXNtZ3IuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTlRNU01HUi5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTlRNU01HUi5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9udG1zc3ZjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL250bXNzdmMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI4YzY1NDIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9udG1zc3ZjLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG50bXNzdmMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG50bXNzdmMuZGxsDQorRVhQT1JUUw0KK1NlcnZpY2VNYWluDQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL250b2MuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbnRvYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjVlYjRiNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL250b2MuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBOVE9DLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBOVE9DLmRsbA0KK0VYUE9SVFMNCitOdE9jU2V0dXBQcm9jDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbnRwcmludC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9udHByaW50LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yOTE3YTEwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbnRwcmludC5kZWYKQEAgLTAsMCArMSw1MSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBOVFBSSU5ULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBOVFBSSU5ULmRsbA0KK0VYUE9SVFMNCitJcHBPY0VudHJ5DQorUFNldHVwVXBncmFkZUNsdXN0ZXJEcml2ZXJzVw0KK1NlcnZlckluc3RhbGxXDQorU2V0dXBJbmV0UHJpbnQNCitDbGFzc0luc3RhbGwzMg0KK1BTZXR1cEFzc29jaWF0ZUlDTVByb2ZpbGVzDQorUFNldHVwQnVpbGREcml2ZXJzRnJvbVBhdGgNCitQU2V0dXBDcmVhdGVEcnZTZXR1cFBhZ2UNCitQU2V0dXBDcmVhdGVNb25pdG9ySW5mbw0KK1BTZXR1cENyZWF0ZVByaW50ZXJEZXZpY2VJbmZvTGlzdA0KK1BTZXR1cERlc3Ryb3lEcml2ZXJJbmZvMw0KK1BTZXR1cERlc3Ryb3lNb25pdG9ySW5mbw0KK1BTZXR1cERlc3Ryb3lQcmludGVyRGV2aWNlSW5mb0xpc3QNCitQU2V0dXBEZXN0cm95U2VsZWN0ZWREcml2ZXJJbmZvDQorUFNldHVwRHJpdmVySW5mb0Zyb21OYW1lDQorUFNldHVwRW51bU1vbml0b3INCitQU2V0dXBGaW5kTWFwcGVkRHJpdmVyDQorUFNldHVwRnJlZURydkZpZWxkDQorUFNldHVwRnJlZU1lbQ0KK1BTZXR1cEdldEFjdHVhbEluc3RhbGxTZWN0aW9uDQorUFNldHVwR2V0RHJpdmVySW5mRm9yUHJpbnRlcg0KK1BTZXR1cEdldERyaXZlckluZkZvclByaW50ZXJFeA0KK1BTZXR1cEdldERyaXZlckluZm8zDQorUFNldHVwR2V0TG9jYWxEYXRhRmllbGQNCitQU2V0dXBHZXRQYXRoVG9TZWFyY2gNCitQU2V0dXBHZXRTZWxlY3RlZERyaXZlckluZm8NCitQU2V0dXBJbnN0YWxsSUNNUHJvZmlsZXMNCitQU2V0dXBJbnN0YWxsSW5ib3hEcml2ZXJTaWxlbnRseQ0KK1BTZXR1cEluc3RhbGxNb25pdG9yDQorUFNldHVwSW5zdGFsbFByaW50ZXJEcml2ZXINCitQU2V0dXBJbnN0YWxsUHJpbnRlckRyaXZlckZyb21UaGVXZWINCitQU2V0dXBJc0NvbXBhdGlibGVEcml2ZXINCitQU2V0dXBJc0RyaXZlckluc3RhbGxlZA0KK1BTZXR1cElzVGhlRHJpdmVyRm91bmRJbkluZkluc3RhbGxlZA0KK1BTZXR1cEtpbGxCYWRVc2VyQ29ubmVjdGlvbnMNCitQU2V0dXBQcmVTZWxlY3REcml2ZXINCitQU2V0dXBQcm9jZXNzUHJpbnRlckFkZGVkDQorUFNldHVwU2VsZWN0RGV2aWNlQnV0dG9ucw0KK1BTZXR1cFNlbGVjdERyaXZlcg0KK1BTZXR1cFNldERyaXZlclBsYXRmb3JtDQorUFNldHVwU2V0U2VsZWN0RGV2VGl0bGVBbmRJbnN0cnVjdGlvbnMNCitQU2V0dXBTaG93QmxvY2tlZERyaXZlclVJDQorUFNldHVwVGhpc1BsYXRmb3JtDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvbnRzaHJ1aS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9udHNocnVpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNTFlYmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvbnRzaHJ1aS5kZWYKQEAgLTAsMCArMSwyNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBudHNocnVpLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBudHNocnVpLmRsbA0KK0VYUE9SVFMNCitDYW5TaGFyZUZvbGRlclcNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0dldExvY2FsUGF0aEZyb21OZXRSZXNvdXJjZQ0KK0dldExvY2FsUGF0aEZyb21OZXRSZXNvdXJjZUENCitHZXRMb2NhbFBhdGhGcm9tTmV0UmVzb3VyY2VXDQorR2V0TmV0UmVzb3VyY2VGcm9tTG9jYWxQYXRoDQorR2V0TmV0UmVzb3VyY2VGcm9tTG9jYWxQYXRoQQ0KK0dldE5ldFJlc291cmNlRnJvbUxvY2FsUGF0aFcNCitJc0ZvbGRlclByaXZhdGVGb3JVc2VyDQorSXNQYXRoU2hhcmVkDQorSXNQYXRoU2hhcmVkQQ0KK0lzUGF0aFNoYXJlZFcNCitTZXRGb2xkZXJQZXJtaXNzaW9uc0ZvclNoYXJpbmcNCitTaGFyaW5nRGlhbG9nDQorU2hhcmluZ0RpYWxvZ0ENCitTaGFyaW5nRGlhbG9nVw0KK1Nob3dTaGFyZUZvbGRlclVJVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL250dmRtNjQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvbnR2ZG02NC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmIyNTMyNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL250dmRtNjQuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbnR2ZG02NC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbnR2ZG02NC5kbGwNCitFWFBPUlRTDQorRGxsSW5zdGFsbA0KK050VmRtNjRDcmVhdGVQcm9jZXNzDQorTnRWZG02NFJhaXNlSW52YWxpZDE2Qml0RXJyb3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9ud3Byb3ZhdS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9ud3Byb3ZhdS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTFlYmViYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL253cHJvdmF1LmRlZgpAQCAtMCwwICsxLDQ5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE5XUFJPVkFVLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBOV1BST1ZBVS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitHZXRTZXJ2aWNlSXRlbUZyb21MaXN0DQorSW5pdGlhbGl6ZVByaW50UHJvdmlkb3INCitMc2FBcENhbGxQYWNrYWdlDQorTHNhQXBJbml0aWFsaXplUGFja2FnZQ0KK0xzYUFwTG9nb25UZXJtaW5hdGVkDQorTHNhQXBMb2dvblVzZXINCitOUEFkZENvbm5lY3Rpb24NCitOUEFkZENvbm5lY3Rpb24zDQorTlBDYW5jZWxDb25uZWN0aW9uDQorTlBDbG9zZUVudW0NCitOUEVudW1SZXNvdXJjZQ0KK05QRm9ybWF0TmV0d29ya05hbWUNCitOUEdldENhcHMNCitOUEdldENvbm5lY3Rpb24NCitOUEdldENvbm5lY3Rpb25QZXJmb3JtYW5jZQ0KK05QR2V0UmVzb3VyY2VJbmZvcm1hdGlvbg0KK05QR2V0UmVzb3VyY2VQYXJlbnQNCitOUEdldFVuaXZlcnNhbE5hbWUNCitOUEdldFVzZXINCitOUExvYWROYW1lU3BhY2VzDQorTlBMb2dvbk5vdGlmeQ0KK05QT3BlbkVudW0NCitOUFBhc3N3b3JkQ2hhbmdlTm90aWZ5DQorTlNQU3RhcnR1cA0KK053RGVyZWdpc3RlclNlcnZpY2UNCitOd0VuY3J5cHRDaGFsbGVuZ2UNCitOd0VudW1Db25uZWN0aW9ucw0KK053R2V0U2VydmljZQ0KK053R2V0VXNlck5hbWVGb3JTZXJ2ZXINCitOd0luaXRpYWxpemVTZXJ2aWNlUHJvdmlkZXINCitOd1F1ZXJ5SW5mbw0KK053UXVlcnlMb2dvbk9wdGlvbnMNCitOd1JlZ2lzdGVyU2VydmljZQ0KK053U2V0SW5mb0luUmVnaXN0cnkNCitOd1NldEluZm9Jbldrc3RhDQorTndTZXRMb2dvbk9wdGlvbnNJblJlZ2lzdHJ5DQorTndTZXRMb2dvblNjcmlwdA0KK053VGVybWluYXRlU2VydmljZVByb3ZpZGVyDQorTndWYWxpZGF0ZVVzZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9vYWtsZXkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvb2FrbGV5LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NDZlMTE1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvb2FrbGV5LmRlZgpAQCAtMCwwICsxLDI0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG9ha2xleS5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgb2FrbGV5LkRMTA0KK0VYUE9SVFMNCitJS0VRdWVyeVN0YXRpc3RpY3MNCitJS0VFbnVtTU1zDQorSUtFRGVsZXRlQXNzb2NpYXRpb24NCitJS0VJbml0aWF0ZUlLRU5lZ290aWF0aW9uDQorSUtFUXVlcnlTcGlDaGFuZ2UNCitJS0VSZWdpc3Rlck5vdGlmeUNsaWVudA0KK0lLRUluaXQNCitJS0VTaHV0ZG93bg0KK0lLRUludGVyZmFjZUNoYW5nZQ0KK0lLRUNsb3NlSUtFTm90aWZ5SGFuZGxlDQorSUtFUXVlcnlJS0VOZWdvdGlhdGlvblN0YXR1cw0KK0lLRUNsb3NlSUtFTmVnb3RpYXRpb25IYW5kbGUNCitJS0VOb3RpZnlQb2xpY3lDaGFuZ2UNCitJS0VBZGRTQXMNCitJS0VTZXRDb25maWd1cmF0aW9uVmFyaWFibGVzDQorSUtFR2V0Q29uZmlndXJhdGlvblZhcmlhYmxlcw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL29ianNlbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9vYmpzZWwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUzODFmNmEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9vYmpzZWwuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgb2Jqc2VsLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBvYmpzZWwuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvb2NjYWNoZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9vY2NhY2hlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZDU4MjUwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvb2NjYWNoZS5kZWYKQEAgLTAsMCArMSwyNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBPQ0NBQ0hFLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBPQ0NBQ0hFLmRsbA0KK0VYUE9SVFMNCitGaW5kQ29udHJvbENsb3NlDQorRmluZEZpcnN0Q29udHJvbA0KK0ZpbmROZXh0Q29udHJvbA0KK0dldENvbnRyb2xEZXBlbmRlbnRGaWxlDQorR2V0Q29udHJvbEluZm8NCitJc01vZHVsZVJlbW92YWJsZQ0KK1JlbGVhc2VDb250cm9sSGFuZGxlDQorUmVtb3ZlQ29udHJvbEJ5SGFuZGxlDQorUmVtb3ZlQ29udHJvbEJ5TmFtZQ0KK1JlbW92ZUV4cGlyZWRDb250cm9scw0KK1N3ZWVwQ29udHJvbHNCeUxhc3RBY2Nlc3NEYXRlDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxJbnN0YWxsDQorRGxsTWFpbg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL29jZ2VuLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL29jZ2VuLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42OWE1MDIxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvb2NnZW4uZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBPQ1NCUy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgT0NTQlMuZGxsDQorRVhQT1JUUw0KK09jRW50cnkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9vY21hbmFnZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9vY21hbmFnZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWYxMWYxMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL29jbWFuYWdlLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE9DTUFOQUdFLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBPQ01BTkFHRS5kbGwNCitFWFBPUlRTDQorT2NDb21wb25lbnRTdGF0ZQ0KK09jQ3JlYXRlT2NQYWdlDQorT2NDcmVhdGVTZXR1cFBhZ2UNCitPY0dldFdpemFyZFBhZ2VzDQorT2NJbml0aWFsaXplDQorT2NSZW1lbWJlcldpemFyZERpYWxvZ0hhbmRsZQ0KK09jU3ViQ29tcG9uZW50c1ByZXNlbnQNCitPY1Rlcm1pbmF0ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL29jbXNuLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL29jbXNuLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMWIxNmZmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvb2Ntc24uZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBPQ01TTi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgT0NNU04uZGxsDQorRVhQT1JUUw0KK09jRW50cnkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9vZGJjMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvb2RiYzMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41YjdhYjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvb2RiYzMyLmRlZgpAQCAtMCwwICsxLDE5MCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBPREJDMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE9EQkMzMi5kbGwNCitFWFBPUlRTDQorU1FMQWxsb2NDb25uZWN0DQorU1FMQWxsb2NFbnYNCitTUUxBbGxvY1N0bXQNCitTUUxCaW5kQ29sDQorU1FMQ2FuY2VsDQorU1FMQ29sQXR0cmlidXRlcw0KK1NRTENvbm5lY3QNCitTUUxEZXNjcmliZUNvbA0KK1NRTERpc2Nvbm5lY3QNCitTUUxFcnJvcg0KK1NRTEV4ZWNEaXJlY3QNCitTUUxFeGVjdXRlDQorU1FMRmV0Y2gNCitTUUxGcmVlQ29ubmVjdA0KK1NRTEZyZWVFbnYNCitTUUxGcmVlU3RtdA0KK1NRTEdldEN1cnNvck5hbWUNCitTUUxOdW1SZXN1bHRDb2xzDQorU1FMUHJlcGFyZQ0KK1NRTFJvd0NvdW50DQorU1FMU2V0Q3Vyc29yTmFtZQ0KK1NRTFNldFBhcmFtDQorU1FMVHJhbnNhY3QNCitTUUxBbGxvY0hhbmRsZQ0KK1NRTEJpbmRQYXJhbQ0KK1NRTENsb3NlQ3Vyc29yDQorU1FMQ29sQXR0cmlidXRlDQorU1FMQ29weURlc2MNCitTUUxFbmRUcmFuDQorU1FMRmV0Y2hTY3JvbGwNCitTUUxGcmVlSGFuZGxlDQorU1FMR2V0Q29ubmVjdEF0dHINCitTUUxHZXREZXNjRmllbGQNCitTUUxHZXREZXNjUmVjDQorU1FMR2V0RGlhZ0ZpZWxkDQorU1FMR2V0RGlhZ1JlYw0KK1NRTEdldEVudkF0dHINCitTUUxHZXRTdG10QXR0cg0KK1NRTFNldENvbm5lY3RBdHRyDQorU1FMQ29sdW1ucw0KK1NRTERyaXZlckNvbm5lY3QNCitTUUxHZXRDb25uZWN0T3B0aW9uDQorU1FMR2V0RGF0YQ0KK1NRTEdldEZ1bmN0aW9ucw0KK1NRTEdldEluZm8NCitTUUxHZXRTdG10T3B0aW9uDQorU1FMR2V0VHlwZUluZm8NCitTUUxQYXJhbURhdGENCitTUUxQdXREYXRhDQorU1FMU2V0Q29ubmVjdE9wdGlvbg0KK1NRTFNldFN0bXRPcHRpb24NCitTUUxTcGVjaWFsQ29sdW1ucw0KK1NRTFN0YXRpc3RpY3MNCitTUUxUYWJsZXMNCitTUUxCcm93c2VDb25uZWN0DQorU1FMQ29sdW1uUHJpdmlsZWdlcw0KK1NRTERhdGFTb3VyY2VzDQorU1FMRGVzY3JpYmVQYXJhbQ0KK1NRTEV4dGVuZGVkRmV0Y2gNCitTUUxGb3JlaWduS2V5cw0KK1NRTE1vcmVSZXN1bHRzDQorU1FMTmF0aXZlU3FsDQorU1FMTnVtUGFyYW1zDQorU1FMUGFyYW1PcHRpb25zDQorU1FMUHJpbWFyeUtleXMNCitTUUxQcm9jZWR1cmVDb2x1bW5zDQorU1FMUHJvY2VkdXJlcw0KK1NRTFNldFBvcw0KK1NRTFNldFNjcm9sbE9wdGlvbnMNCitTUUxUYWJsZVByaXZpbGVnZXMNCitTUUxEcml2ZXJzDQorU1FMQmluZFBhcmFtZXRlcg0KK1NRTFNldERlc2NGaWVsZA0KK1NRTFNldERlc2NSZWMNCitTUUxTZXRFbnZBdHRyDQorU1FMU2V0U3RtdEF0dHINCitTUUxBbGxvY0hhbmRsZVN0ZA0KK1NRTEJ1bGtPcGVyYXRpb25zDQorQ2xvc2VPREJDUGVyZkRhdGENCitDb2xsZWN0T0RCQ1BlcmZEYXRhDQorQ3Vyc29yTGliTG9ja0RiYw0KK0N1cnNvckxpYkxvY2tEZXNjDQorQ3Vyc29yTGliTG9ja1N0bXQNCitPREJDR2V0VHJ5V2FpdFZhbHVlDQorQ3Vyc29yTGliVHJhbnNhY3QNCitPREJDU2V0VHJ5V2FpdFZhbHVlDQorRGxsQmlkRW50cnlQb2ludA0KK0dldE9EQkNTaGFyZWREYXRhDQorTG9ja0hhbmRsZQ0KK01wSGVhcEFsbG9jDQorTXBIZWFwQ29tcGFjdA0KK01wSGVhcENyZWF0ZQ0KK01wSGVhcERlc3Ryb3kNCitNcEhlYXBGcmVlDQorTXBIZWFwUmVBbGxvYw0KK01wSGVhcFNpemUNCitNcEhlYXBWYWxpZGF0ZQ0KK09EQkNJbnRlcm5hbENvbm5lY3RXDQorT3Blbk9EQkNQZXJmRGF0YQ0KK1Bvc3RDb21wb25lbnRFcnJvcg0KK1Bvc3RPREJDQ29tcG9uZW50RXJyb3INCitQb3N0T0RCQ0Vycm9yDQorU2VhcmNoU3RhdHVzQ29kZQ0KK1ZGcmVlRXJyb3JzDQorVlJldHJpZXZlRHJpdmVyRXJyb3JzUm93Q29sDQorU1FMQ29sQXR0cmlidXRlc1cNCitTUUxDb25uZWN0Vw0KK1NRTERlc2NyaWJlQ29sVw0KK1ZhbGlkYXRlRXJyb3JRdWV1ZQ0KK1NRTEVycm9yVw0KK1NRTEV4ZWNEaXJlY3RXDQorZ19oSGVhcE1hbGxvYyBEQVRBDQorU1FMR2V0Q3Vyc29yTmFtZVcNCitTUUxQcmVwYXJlVw0KK1NRTFNldEN1cnNvck5hbWVXDQorU1FMQ29sQXR0cmlidXRlVw0KK1NRTEdldENvbm5lY3RBdHRyVw0KK1NRTEdldERlc2NGaWVsZFcNCitTUUxHZXREZXNjUmVjVw0KK1NRTEdldERpYWdGaWVsZFcNCitTUUxHZXREaWFnUmVjVw0KK1NRTEdldFN0bXRBdHRyVw0KK1NRTFNldENvbm5lY3RBdHRyVw0KK1NRTENvbHVtbnNXDQorU1FMRHJpdmVyQ29ubmVjdFcNCitTUUxHZXRDb25uZWN0T3B0aW9uVw0KK1NRTEdldEluZm9XDQorU1FMR2V0VHlwZUluZm9XDQorU1FMU2V0Q29ubmVjdE9wdGlvblcNCitTUUxTcGVjaWFsQ29sdW1uc1cNCitTUUxTdGF0aXN0aWNzVw0KK1NRTFRhYmxlc1cNCitTUUxCcm93c2VDb25uZWN0Vw0KK1NRTENvbHVtblByaXZpbGVnZXNXDQorU1FMRGF0YVNvdXJjZXNXDQorU1FMRm9yZWlnbktleXNXDQorU1FMTmF0aXZlU3FsVw0KK1NRTFByaW1hcnlLZXlzVw0KK1NRTFByb2NlZHVyZUNvbHVtbnNXDQorU1FMUHJvY2VkdXJlc1cNCitTUUxUYWJsZVByaXZpbGVnZXNXDQorU1FMRHJpdmVyc1cNCitTUUxTZXREZXNjRmllbGRXDQorU1FMU2V0U3RtdEF0dHJXDQorU1FMQ29sQXR0cmlidXRlc0ENCitTUUxDb25uZWN0QQ0KK1NRTERlc2NyaWJlQ29sQQ0KK1NRTEVycm9yQQ0KK1NRTEV4ZWNEaXJlY3RBDQorU1FMR2V0Q3Vyc29yTmFtZUENCitTUUxQcmVwYXJlQQ0KK1NRTFNldEN1cnNvck5hbWVBDQorU1FMQ29sQXR0cmlidXRlQQ0KK1NRTEdldENvbm5lY3RBdHRyQQ0KK1NRTEdldERlc2NGaWVsZEENCitTUUxHZXREZXNjUmVjQQ0KK1NRTEdldERpYWdGaWVsZEENCitTUUxHZXREaWFnUmVjQQ0KK1NRTEdldFN0bXRBdHRyQQ0KK1NRTFNldENvbm5lY3RBdHRyQQ0KK1NRTENvbHVtbnNBDQorU1FMRHJpdmVyQ29ubmVjdEENCitTUUxHZXRDb25uZWN0T3B0aW9uQQ0KK1NRTEdldEluZm9BDQorU1FMR2V0VHlwZUluZm9BDQorU1FMU2V0Q29ubmVjdE9wdGlvbkENCitTUUxTcGVjaWFsQ29sdW1uc0ENCitTUUxTdGF0aXN0aWNzQQ0KK1NRTFRhYmxlc0ENCitTUUxCcm93c2VDb25uZWN0QQ0KK1NRTENvbHVtblByaXZpbGVnZXNBDQorU1FMRGF0YVNvdXJjZXNBDQorU1FMRm9yZWlnbktleXNBDQorU1FMTmF0aXZlU3FsQQ0KK1NRTFByaW1hcnlLZXlzQQ0KK1NRTFByb2NlZHVyZUNvbHVtbnNBDQorU1FMUHJvY2VkdXJlc0ENCitTUUxUYWJsZVByaXZpbGVnZXNBDQorU1FMRHJpdmVyc0ENCitTUUxTZXREZXNjRmllbGRBDQorU1FMU2V0U3RtdEF0dHJBDQorT0RCQ1F1YWxpZnlGaWxlRFNOVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL29kYmMzMmd0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL29kYmMzMmd0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNWZhN2ExCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvb2RiYzMyZ3QuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgT0RCQzMyR1QuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE9EQkMzMkdULmRsbA0KK0VYUE9SVFMNCitEaXNwYXRjaA0KK0Rpc3BhdGNoMg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL29kYmNiY3AuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvb2RiY2JjcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTFiOWU3OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL29kYmNiY3AuZGVmCkBAIC0wLDAgKzEsMzYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgb2RiY2JjcC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgb2RiY2JjcC5kbGwNCitFWFBPUlRTDQorZGJwcnR5cGVBDQorYmNwX2JhdGNoDQorYmNwX2JpbmQNCitiY3BfY29sZm10DQorYmNwX2NvbGxlbg0KK2JjcF9jb2xwdHINCitiY3BfY29sdW1ucw0KK2JjcF9jb250cm9sDQorYmNwX2RvbmUNCitiY3BfaW5pdEENCitiY3BfZXhlYw0KK2JjcF9tb3JldGV4dA0KK2JjcF9zZW5kcm93DQorYmNwX3JlYWRmbXRBDQorYmNwX3dyaXRlZm10QQ0KK2RicHJ0eXBlVw0KK2JjcF9pbml0Vw0KK2JjcF9yZWFkZm10Vw0KK2JjcF93cml0ZWZtdFcNCitTUUxMaW5rZWRTZXJ2ZXJzDQorU1FMTGlua2VkQ2F0YWxvZ3NXDQorU1FMTGlua2VkQ2F0YWxvZ3NBDQorTGliTWFpbg0KK1NRTEluaXRFbnVtU2VydmVycw0KK1NRTEdldE5leHRFbnVtZXJhdGlvbg0KK1NRTENsb3NlRW51bVNlcnZlcnMNCitiY3BfZ2V0Y29sZm10DQorYmNwX3NldGNvbGZtdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL29kYmNjb25mLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL29kYmNjb25mLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNjM1ZjdkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvb2RiY2NvbmYuZGVmCkBAIC0wLDAgKzEsMTA0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG9kYmNjb25mLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBvZGJjY29uZi5ETEwNCitFWFBPUlRTDQorU2V0U2lsZW50DQorU2V0QWN0aW9uTG9nRmlsZQ0KK1NldEFjdGlvbkxvZ01vZGVTeg0KK1NldEFjdGlvbkxvZ01vZGUNCitFeGVjdXRlQWN0aW9uDQorU2V0QWN0aW9uRW51bQ0KK1NldEFjdGlvbk5hbWUNCitFeHBhbmRQYXRoDQorR2V0UGF0aEZyb21JRA0KK0FwcGx5VzJLWFBhaw0KK0FwcGx5TWlsbGVuQ2F0DQorVW5yZWdXMktYUGFrDQorQXBwUmVnRW51bQ0KK0Nsb3NlQXBwUmVnRW51bQ0KK09wZW5BcHBSZWdFbnVtDQorUXVlcnlBcHBsaWNhdGlvbg0KK1JlZnJlc2hBcHBSZWdFbnVtDQorUmVnaXN0ZXJBcHBsaWNhdGlvbg0KK1J1bkRMTDMyX1JlZ2lzdGVyQXBwbGljYXRpb24NCitSdW5ETEwzMl9VbnJlZ2lzdGVyQXBwbGljYXRpb24NCitVbnJlZ2lzdGVyQXBwbGljYXRpb24NCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorU0xMaXN0Q3JlYXRlDQorU0xMaXN0RGVzdHJveQ0KK1NMTGlzdEFkZE5vZGUNCitTTExpc3RSZW1vdmVOb2RlDQorU0xMaXN0R2V0SGVhZA0KK1NMTGlzdEdldE5leHQNCitTTExpc3RHZXREYXRhDQorU0xMaXN0U2V0RGF0YQ0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitETExpc3RDcmVhdGUNCitETExpc3REZXN0cm95DQorRExMaXN0QWRkTm9kZQ0KK0RMTGlzdFJlbW92ZU5vZGUNCitETExpc3RHZXRIZWFkDQorRExMaXN0R2V0TmV4dA0KK0RMTGlzdEdldFByZXYNCitETExpc3RHZXREYXRhDQorRExMaXN0U2V0RGF0YQ0KK09wZW5Qcm9jZXNzSW5mbw0KK0Nsb3NlUHJvY2Vzc0luZm8NCitJc0ZpbGVMb2NrZWQNCitFbmFibGVOVFByaXZpbGVnZQ0KK0Rpc2FibGVOVFByaXZpbGVnZQ0KK0VuYWJsZURlYnVnUHJpdmlsZWdlcw0KK0Rpc2FibGVEZWJ1Z1ByaXZpbGVnZXMNCitMb29rdXBBcHBGcmllbmRseU5hbWUNCitJc01vZHVsZUxvYWRlZEJ5UHJvY2Vzcw0KK0lzTW9kdWxlTG9hZGVkQnlQcm9jZXNzRXgNCitTaHV0ZG93blByb2Nlc3MNCitPcGVuUHJvY2Vzc0Rpc3BsYXlOYW1lcw0KK0Nsb3NlUHJvY2Vzc0Rpc3BsYXlOYW1lcw0KK0dldFByb2Nlc3NMaXN0RnJvbUZpbGVMaXN0DQorT3BlblByb2Nlc3NMaXN0DQorQ2xvc2VQcm9jZXNzTGlzdA0KK0VudW1lcmF0ZVByb2Nlc3Nlcw0KK0FkZEluZlRvTGlzdA0KK0NyZWF0ZUluZkxpc3QNCitQb3B1bGF0ZUluZkZpbGVMaXN0DQorRGVzdHJveUluZkxpc3QNCitPcGVuRHJpdmVTcGFjZUxpc3QNCitDbG9zZURyaXZlU3BhY2VMaXN0DQorQ2FsY3VsYXRlUmVxdWlyZWREcml2ZVNwYWNlDQorT3BlbkRyaXZlU3BhY2VMaXN0RnJvbUluZkxpc3QNCitSdW5ETEwzMl9GaWx0ZXJSdW5PbmNlRXhSZWdpc3RyYXRpb24NCitBZGRGaWx0ZXJSdW5PbmNlRXhSZWdpc3RyYXRpb25Ub1JlZ2lzdHJ5DQorUmVtb3ZlRmlsdGVyUnVuT25jZUV4UmVnaXN0cmF0aW9uRnJvbVJlZ2lzdHJ5DQorRmlsdGVyUnVuT25jZUV4UmVnaXN0cmF0aW9uDQorQmFja3VwUmVnS2V5DQorUmVzdG9yZVJlZ0tleQ0KK1JlZ1ZlcnNpb24NCitSZWdWZXJzaW9uRXgNCitMb2FkUmVnVmVyc2lvbg0KK0xvYWRSZWdWZXJzaW9uRXgNCitHZXRQcm9ncmFtRmlsZXNEaXJlY3RvcnkNCitHZXRQcm9ncmFtRmlsZXNDb21tb25GaWxlc0RpcmVjdG9yeQ0KK09wZW5QZW5kaW5nUmVuYW1lTGlzdA0KK0Nsb3NlUGVuZGluZ1JlbmFtZUxpc3QNCitQYXJzZVZlcnNpb25EYXRhRnJvbVN0cmluZw0KK1BhcnNlVmVyc2lvbkRhdGFGcm9tU3RyaW5nRXgNCitDb21wYXJlVmVyc2lvbkRhdGENCitDb21wYXJlVmVyc2lvbkRhdGFFeA0KK0lzRXhjZXB0aW9uSW5mDQorSXNFeGNlcHRpb25JbmZFeA0KK0NyZWF0ZVJlZ0tleUJhY2t1cExpc3QNCitEZXN0cm95UmVnS2V5QmFja3VwTGlzdA0KK1JlZ0tleUJhY2t1cA0KK1JlZ0tleVJlc3RvcmUNCitTYXZlUmVnS2V5QmFja3VwVG9GaWxlDQorTG9hZFJlZ0tleUJhY2t1cEZyb21GaWxlDQorQmFja3VwQ2F0YWxvZw0KK1Jlc3RvcmVDYXRhbG9nDQorRG9lc0ZpbGVFeGlzdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL29kYmNjcDMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL29kYmNjcDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMjI0YzM3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvb2RiY2NwMzIuZGVmCkBAIC0wLDAgKzEsNjUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgT0RCQ0NQMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE9EQkNDUDMyLmRsbA0KK0VYUE9SVFMNCitTUUxJbnN0YWxsRHJpdmVyDQorU1FMSW5zdGFsbERyaXZlck1hbmFnZXINCitTUUxHZXRJbnN0YWxsZWREcml2ZXJzDQorU1FMR2V0QXZhaWxhYmxlRHJpdmVycw0KK1NRTENvbmZpZ0RhdGFTb3VyY2UNCitTUUxSZW1vdmVEZWZhdWx0RGF0YVNvdXJjZQ0KK1NRTFdyaXRlRFNOVG9JbmkNCitTUUxSZW1vdmVEU05Gcm9tSW5pDQorU1FMSW5zdGFsbE9EQkMNCitTUUxNYW5hZ2VEYXRhU291cmNlcw0KK1NRTENyZWF0ZURhdGFTb3VyY2UNCitTUUxHZXRUcmFuc2xhdG9yDQorU1FMV3JpdGVQcml2YXRlUHJvZmlsZVN0cmluZw0KK1NRTEdldFByaXZhdGVQcm9maWxlU3RyaW5nDQorU1FMVmFsaWREU04NCitTUUxSZW1vdmVEcml2ZXJNYW5hZ2VyDQorU1FMSW5zdGFsbFRyYW5zbGF0b3INCitTUUxSZW1vdmVUcmFuc2xhdG9yDQorU1FMUmVtb3ZlRHJpdmVyDQorU1FMQ29uZmlnRHJpdmVyDQorU1FMSW5zdGFsbGVyRXJyb3INCitTUUxQb3N0SW5zdGFsbGVyRXJyb3INCitTUUxSZWFkRmlsZURTTg0KK1NRTFdyaXRlRmlsZURTTg0KK1NRTEluc3RhbGxEcml2ZXJFeA0KK1NRTEdldENvbmZpZ01vZGUNCitTUUxTZXRDb25maWdNb2RlDQorU1FMSW5zdGFsbFRyYW5zbGF0b3JFeA0KK1NRTENyZWF0ZURhdGFTb3VyY2VFeA0KK09EQkNDUGxBcHBsZXQNCitTZWxlY3RUcmFuc0RsZw0KK1NRTEluc3RhbGxEcml2ZXJXDQorU1FMSW5zdGFsbERyaXZlck1hbmFnZXJXDQorU1FMR2V0SW5zdGFsbGVkRHJpdmVyc1cNCitTUUxHZXRBdmFpbGFibGVEcml2ZXJzVw0KK1NRTENvbmZpZ0RhdGFTb3VyY2VXDQorU1FMV3JpdGVEU05Ub0luaVcNCitTUUxSZW1vdmVEU05Gcm9tSW5pVw0KK1NRTEluc3RhbGxPREJDVw0KK1NRTENyZWF0ZURhdGFTb3VyY2VXDQorU1FMR2V0VHJhbnNsYXRvclcNCitTUUxXcml0ZVByaXZhdGVQcm9maWxlU3RyaW5nVw0KK1NRTEdldFByaXZhdGVQcm9maWxlU3RyaW5nVw0KK1NRTFZhbGlkRFNOVw0KK1NRTEluc3RhbGxUcmFuc2xhdG9yVw0KK1NRTFJlbW92ZVRyYW5zbGF0b3JXDQorU1FMUmVtb3ZlRHJpdmVyVw0KK1NRTENvbmZpZ0RyaXZlclcNCitTUUxJbnN0YWxsZXJFcnJvclcNCitTUUxQb3N0SW5zdGFsbGVyRXJyb3JXDQorU1FMUmVhZEZpbGVEU05XDQorU1FMV3JpdGVGaWxlRFNOVw0KK1NRTEluc3RhbGxEcml2ZXJFeFcNCitTUUxJbnN0YWxsVHJhbnNsYXRvckV4Vw0KK1NRTENyZWF0ZURhdGFTb3VyY2VFeFcNCitTUUxMb2FkRHJpdmVyTGlzdEJveA0KK1NRTExvYWREYXRhU291cmNlc0xpc3RCb3gNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9vZGJjY3IzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9vZGJjY3IzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzk1NTc2ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL29kYmNjcjMyLmRlZgpAQCAtMCwwICsxLDQ1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE9EQkNDUjMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBPREJDQ1IzMi5kbGwNCitFWFBPUlRTDQorU1FMQmluZENvbA0KK1NRTENhbmNlbA0KK1JlbGVhc2VDTFN0bXRSZXNvdXJjZXMNCitTUUxFeGVjRGlyZWN0DQorU1FMRXhlY3V0ZQ0KK1NRTEZldGNoDQorU1FMRnJlZVN0bXQNCitTUUxQcmVwYXJlDQorU1FMUm93Q291bnQNCitTUUxUcmFuc2FjdA0KK1NRTENsb3NlQ3Vyc29yDQorU1FMRW5kVHJhbg0KK1NRTEZldGNoU2Nyb2xsDQorU1FMRnJlZUhhbmRsZQ0KK1NRTEdldERlc2NGaWVsZA0KK1NRTEdldERlc2NSZWMNCitTUUxHZXRTdG10QXR0cg0KK1NRTFNldENvbm5lY3RBdHRyDQorU1FMR2V0RGF0YQ0KK1NRTEdldEluZm8NCitTUUxHZXRTdG10T3B0aW9uDQorU1FMUGFyYW1EYXRhDQorU1FMUHV0RGF0YQ0KK1NRTFNldENvbm5lY3RPcHRpb24NCitTUUxTZXRTdG10T3B0aW9uDQorU1FMRXh0ZW5kZWRGZXRjaA0KK1NRTE1vcmVSZXN1bHRzDQorU1FMTmF0aXZlU3FsDQorU1FMTnVtUGFyYW1zDQorU1FMUGFyYW1PcHRpb25zDQorU1FMU2V0UG9zDQorU1FMU2V0U2Nyb2xsT3B0aW9ucw0KK1NRTEJpbmRQYXJhbWV0ZXINCitTUUxTZXREZXNjRmllbGQNCitTUUxTZXREZXNjUmVjDQorU1FMU2V0U3RtdEF0dHINCitTUUxCdWxrT3BlcmF0aW9ucw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL29kYmNjdTMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL29kYmNjdTMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43OTU1NzZkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvb2RiY2N1MzIuZGVmCkBAIC0wLDAgKzEsNDUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgT0RCQ0NSMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE9EQkNDUjMyLmRsbA0KK0VYUE9SVFMNCitTUUxCaW5kQ29sDQorU1FMQ2FuY2VsDQorUmVsZWFzZUNMU3RtdFJlc291cmNlcw0KK1NRTEV4ZWNEaXJlY3QNCitTUUxFeGVjdXRlDQorU1FMRmV0Y2gNCitTUUxGcmVlU3RtdA0KK1NRTFByZXBhcmUNCitTUUxSb3dDb3VudA0KK1NRTFRyYW5zYWN0DQorU1FMQ2xvc2VDdXJzb3INCitTUUxFbmRUcmFuDQorU1FMRmV0Y2hTY3JvbGwNCitTUUxGcmVlSGFuZGxlDQorU1FMR2V0RGVzY0ZpZWxkDQorU1FMR2V0RGVzY1JlYw0KK1NRTEdldFN0bXRBdHRyDQorU1FMU2V0Q29ubmVjdEF0dHINCitTUUxHZXREYXRhDQorU1FMR2V0SW5mbw0KK1NRTEdldFN0bXRPcHRpb24NCitTUUxQYXJhbURhdGENCitTUUxQdXREYXRhDQorU1FMU2V0Q29ubmVjdE9wdGlvbg0KK1NRTFNldFN0bXRPcHRpb24NCitTUUxFeHRlbmRlZEZldGNoDQorU1FMTW9yZVJlc3VsdHMNCitTUUxOYXRpdmVTcWwNCitTUUxOdW1QYXJhbXMNCitTUUxQYXJhbU9wdGlvbnMNCitTUUxTZXRQb3MNCitTUUxTZXRTY3JvbGxPcHRpb25zDQorU1FMQmluZFBhcmFtZXRlcg0KK1NRTFNldERlc2NGaWVsZA0KK1NRTFNldERlc2NSZWMNCitTUUxTZXRTdG10QXR0cg0KK1NRTEJ1bGtPcGVyYXRpb25zDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvb2RiY3RyYWMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvb2RiY3RyYWMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlmM2ZhMDAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9vZGJjdHJhYy5kZWYKQEAgLTAsMCArMSwxMzAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgT0RCQ1RSQUMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE9EQkNUUkFDLmRsbA0KK0VYUE9SVFMNCitUcmFjZVNRTEFsbG9jQ29ubmVjdA0KK1RyYWNlU1FMQWxsb2NFbnYNCitUcmFjZVNRTEFsbG9jU3RtdA0KK1RyYWNlU1FMQmluZENvbA0KK1RyYWNlU1FMQ2FuY2VsDQorVHJhY2VTUUxDb2xBdHRyaWJ1dGVzDQorVHJhY2VTUUxDb25uZWN0DQorVHJhY2VTUUxEZXNjcmliZUNvbA0KK1RyYWNlU1FMRGlzY29ubmVjdA0KK1RyYWNlU1FMRXJyb3INCitUcmFjZVNRTEV4ZWNEaXJlY3QNCitUcmFjZVNRTEV4ZWN1dGUNCitUcmFjZVNRTEZldGNoDQorVHJhY2VTUUxGcmVlQ29ubmVjdA0KK1RyYWNlU1FMRnJlZUVudg0KK1RyYWNlU1FMRnJlZVN0bXQNCitUcmFjZVNRTEdldEN1cnNvck5hbWUNCitUcmFjZVNRTE51bVJlc3VsdENvbHMNCitUcmFjZVNRTFByZXBhcmUNCitUcmFjZVNRTFJvd0NvdW50DQorVHJhY2VTUUxTZXRDdXJzb3JOYW1lDQorVHJhY2VTUUxTZXRQYXJhbQ0KK1RyYWNlU1FMVHJhbnNhY3QNCitUcmFjZVNRTEFsbG9jSGFuZGxlDQorVHJhY2VTUUxCaW5kUGFyYW0NCitUcmFjZVNRTENsb3NlQ3Vyc29yDQorVHJhY2VTUUxDb2xBdHRyaWJ1dGUNCitUcmFjZVNRTENvcHlEZXNjDQorVHJhY2VTUUxFbmRUcmFuDQorVHJhY2VTUUxGZXRjaFNjcm9sbA0KK1RyYWNlU1FMRnJlZUhhbmRsZQ0KK1RyYWNlU1FMR2V0Q29ubmVjdEF0dHINCitUcmFjZVNRTEdldERlc2NGaWVsZA0KK1RyYWNlU1FMR2V0RGVzY1JlYw0KK1RyYWNlU1FMR2V0RGlhZ0ZpZWxkDQorVHJhY2VTUUxHZXREaWFnUmVjDQorVHJhY2VTUUxHZXRFbnZBdHRyDQorVHJhY2VTUUxHZXRTdG10QXR0cg0KK1RyYWNlU1FMU2V0Q29ubmVjdEF0dHINCitUcmFjZVNRTENvbHVtbnMNCitUcmFjZVNRTERyaXZlckNvbm5lY3QNCitUcmFjZVNRTEdldENvbm5lY3RPcHRpb24NCitUcmFjZVNRTEdldERhdGENCitUcmFjZVNRTEdldEZ1bmN0aW9ucw0KK1RyYWNlU1FMR2V0SW5mbw0KK1RyYWNlU1FMR2V0U3RtdE9wdGlvbg0KK1RyYWNlU1FMR2V0VHlwZUluZm8NCitUcmFjZVNRTFBhcmFtRGF0YQ0KK1RyYWNlU1FMUHV0RGF0YQ0KK1RyYWNlU1FMU2V0Q29ubmVjdE9wdGlvbg0KK1RyYWNlU1FMU2V0U3RtdE9wdGlvbg0KK1RyYWNlU1FMU3BlY2lhbENvbHVtbnMNCitUcmFjZVNRTFN0YXRpc3RpY3MNCitUcmFjZVNRTFRhYmxlcw0KK1RyYWNlU1FMQnJvd3NlQ29ubmVjdA0KK1RyYWNlU1FMQ29sdW1uUHJpdmlsZWdlcw0KK1RyYWNlU1FMRGF0YVNvdXJjZXMNCitUcmFjZVNRTERlc2NyaWJlUGFyYW0NCitUcmFjZVNRTEV4dGVuZGVkRmV0Y2gNCitUcmFjZVNRTEZvcmVpZ25LZXlzDQorVHJhY2VTUUxNb3JlUmVzdWx0cw0KK1RyYWNlU1FMTmF0aXZlU3FsDQorVHJhY2VTUUxOdW1QYXJhbXMNCitUcmFjZVNRTFBhcmFtT3B0aW9ucw0KK1RyYWNlU1FMUHJpbWFyeUtleXMNCitUcmFjZVNRTFByb2NlZHVyZUNvbHVtbnMNCitUcmFjZVNRTFByb2NlZHVyZXMNCitUcmFjZVNRTFNldFBvcw0KK1RyYWNlU1FMU2V0U2Nyb2xsT3B0aW9ucw0KK1RyYWNlU1FMVGFibGVQcml2aWxlZ2VzDQorVHJhY2VTUUxEcml2ZXJzDQorVHJhY2VTUUxCaW5kUGFyYW1ldGVyDQorVHJhY2VTUUxTZXREZXNjRmllbGQNCitUcmFjZVNRTFNldERlc2NSZWMNCitUcmFjZVNRTFNldEVudkF0dHINCitUcmFjZVNRTFNldFN0bXRBdHRyDQorVHJhY2VTUUxBbGxvY0hhbmRsZVN0ZA0KK1RyYWNlU1FMQnVsa09wZXJhdGlvbnMNCitGaXJlVlNEZWJ1Z0V2ZW50DQorVHJhY2VWU0NvbnRyb2wNCitUcmFjZVNRTENvbEF0dHJpYnV0ZXNXDQorVHJhY2VTUUxDb25uZWN0Vw0KK1RyYWNlU1FMRGVzY3JpYmVDb2xXDQorVHJhY2VTUUxFcnJvclcNCitUcmFjZVNRTEV4ZWNEaXJlY3RXDQorVHJhY2VTUUxHZXRDdXJzb3JOYW1lVw0KK1RyYWNlU1FMUHJlcGFyZVcNCitUcmFjZVNRTFNldEN1cnNvck5hbWVXDQorVHJhY2VTUUxDb2xBdHRyaWJ1dGVXDQorVHJhY2VTUUxHZXRDb25uZWN0QXR0clcNCitUcmFjZVNRTEdldERlc2NGaWVsZFcNCitUcmFjZVNRTEdldERlc2NSZWNXDQorVHJhY2VTUUxHZXREaWFnRmllbGRXDQorVHJhY2VTUUxHZXREaWFnUmVjVw0KK1RyYWNlU1FMR2V0U3RtdEF0dHJXDQorVHJhY2VTUUxTZXRDb25uZWN0QXR0clcNCitUcmFjZVNRTENvbHVtbnNXDQorVHJhY2VTUUxEcml2ZXJDb25uZWN0Vw0KK1RyYWNlU1FMR2V0Q29ubmVjdE9wdGlvblcNCitUcmFjZVNRTEdldEluZm9XDQorVHJhY2VTUUxHZXRUeXBlSW5mb1cNCitUcmFjZVNRTFNldENvbm5lY3RPcHRpb25XDQorVHJhY2VTUUxTcGVjaWFsQ29sdW1uc1cNCitUcmFjZVNRTFN0YXRpc3RpY3NXDQorVHJhY2VTUUxUYWJsZXNXDQorVHJhY2VTUUxCcm93c2VDb25uZWN0Vw0KK1RyYWNlU1FMQ29sdW1uUHJpdmlsZWdlc1cNCitUcmFjZVNRTERhdGFTb3VyY2VzVw0KK1RyYWNlU1FMRm9yZWlnbktleXNXDQorVHJhY2VTUUxOYXRpdmVTcWxXDQorVHJhY2VTUUxQcmltYXJ5S2V5c1cNCitUcmFjZVNRTFByb2NlZHVyZUNvbHVtbnNXDQorVHJhY2VTUUxQcm9jZWR1cmVzVw0KK1RyYWNlU1FMVGFibGVQcml2aWxlZ2VzVw0KK1RyYWNlU1FMRHJpdmVyc1cNCitUcmFjZVNRTFNldERlc2NGaWVsZFcNCitUcmFjZVNRTFNldFN0bXRBdHRyVw0KK1RyYWNlU1FMQWxsb2NIYW5kbGVTdGRXDQorVHJhY2VSZXR1cm4NCitUcmFjZU9wZW5Mb2dGaWxlDQorVHJhY2VDbG9zZUxvZ0ZpbGUNCitUcmFjZVZlcnNpb24NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9vZWltcG9ydC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9vZWltcG9ydC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmFmMjA5ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL29laW1wb3J0LmRlZgpAQCAtMCwwICsxLDE1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE9FSU1QT1JULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBPRUlNUE9SVC5kbGwNCitFWFBPUlRTDQorUGVyZm9ybUltcG9ydA0KK0V4cG9ydE1lc3NhZ2VzDQorUGVyZm9ybU1pZ3JhdGlvbg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvb2VtaWdsaWIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvb2VtaWdsaWIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgyZDQ4MDQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9vZW1pZ2xpYi5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBPRU1JR0xJQi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgT0VNSUdMSUIuZGxsDQorRVhQT1JUUw0KK09FNVNpbXBsZUNyZWF0ZQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvb2ZmZmlsdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9vZmZmaWx0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45M2U0OGNlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvb2ZmZmlsdC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBPRkZGSUxULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBPRkZGSUxULmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL29sZTMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL29sZTMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NmZiZjgzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvb2xlMzIuZGVmCkBAIC0wLDAgKzEsMzk3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG9sZTMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBvbGUzMi5kbGwNCitFWFBPUlRTDQorQ29WcmZDaGVja1RocmVhZFN0YXRlDQorQ29WcmZHZXRUaHJlYWRTdGF0ZQ0KK0NvVnJmUmVsZWFzZVRocmVhZFN0YXRlDQorUHJvcFZhcmlhbnRDaGFuZ2VUeXBlDQorQmluZE1vbmlrZXINCitDTElQRk9STUFUX1VzZXJGcmVlDQorQ0xJUEZPUk1BVF9Vc2VyRnJlZTY0DQorQ0xJUEZPUk1BVF9Vc2VyTWFyc2hhbA0KK0NMSVBGT1JNQVRfVXNlck1hcnNoYWw2NA0KK0NMSVBGT1JNQVRfVXNlclNpemUNCitDTElQRk9STUFUX1VzZXJTaXplNjQNCitDTElQRk9STUFUX1VzZXJVbm1hcnNoYWwNCitDTElQRk9STUFUX1VzZXJVbm1hcnNoYWw2NA0KK0NMU0lERnJvbU9sZTFDbGFzcw0KK0NMU0lERnJvbVByb2dJRA0KK0NMU0lERnJvbVByb2dJREV4DQorQ0xTSURGcm9tU3RyaW5nDQorQ29BZGRSZWZTZXJ2ZXJQcm9jZXNzDQorQ29BbGxvd1NldEZvcmVncm91bmRXaW5kb3cNCitDb0J1aWxkVmVyc2lvbg0KK0NvQ2FuY2VsQ2FsbA0KK0NvQ29weVByb3h5DQorQ29DcmVhdGVGcmVlVGhyZWFkZWRNYXJzaGFsZXINCitDb0NyZWF0ZUd1aWQNCitDb0NyZWF0ZUluc3RhbmNlDQorQ29DcmVhdGVJbnN0YW5jZUV4DQorQ29DcmVhdGVPYmplY3RJbkNvbnRleHQNCitDb0RlYWN0aXZhdGVPYmplY3QNCitDb0Rpc2FibGVDYWxsQ2FuY2VsbGF0aW9uDQorQ29EaXNjb25uZWN0T2JqZWN0DQorQ29Eb3NEYXRlVGltZVRvRmlsZVRpbWUNCitDb0VuYWJsZUNhbGxDYW5jZWxsYXRpb24NCitDb0ZpbGVUaW1lTm93DQorQ29GaWxlVGltZVRvRG9zRGF0ZVRpbWUNCitDb0ZyZWVBbGxMaWJyYXJpZXMNCitDb0ZyZWVMaWJyYXJ5DQorQ29GcmVlVW51c2VkTGlicmFyaWVzDQorQ29GcmVlVW51c2VkTGlicmFyaWVzRXgNCitDb0dldEFwYXJ0bWVudElEDQorQ29HZXRDYWxsQ29udGV4dA0KK0NvR2V0Q2FsbGVyVElEDQorQ29HZXRDYW5jZWxPYmplY3QNCitDb0dldENsYXNzT2JqZWN0DQorQ29HZXRDbGFzc1ZlcnNpb24NCitDb0dldENvbUNhdGFsb2cNCitDb0dldENvbnRleHRUb2tlbg0KK0NvR2V0Q3VycmVudExvZ2ljYWxUaHJlYWRJZA0KK0NvR2V0Q3VycmVudFByb2Nlc3MNCitDb0dldERlZmF1bHRDb250ZXh0DQorQ29HZXRJbnN0YW5jZUZyb21GaWxlDQorQ29HZXRJbnN0YW5jZUZyb21JU3RvcmFnZQ0KK0NvR2V0SW50ZXJjZXB0b3INCitDb0dldEludGVyY2VwdG9yRnJvbVR5cGVJbmZvDQorQ29HZXRJbnRlcmZhY2VBbmRSZWxlYXNlU3RyZWFtDQorQ29HZXRNYWxsb2MNCitDb0dldE1hcnNoYWxTaXplTWF4DQorQ29HZXRNb2R1bGVUeXBlDQorQ29HZXRPYmplY3QNCitDb0dldE9iamVjdENvbnRleHQNCitDb0dldFBTQ2xzaWQNCitDb0dldFByb2Nlc3NJZGVudGlmaWVyDQorQ29HZXRTdGFuZGFyZE1hcnNoYWwNCitDb0dldFN0YXRlDQorQ29HZXRTdGRNYXJzaGFsRXgNCitDb0dldFN5c3RlbVNlY3VyaXR5UGVybWlzc2lvbnMNCitDb0dldFRyZWF0QXNDbGFzcw0KK0NvSW1wZXJzb25hdGVDbGllbnQNCitDb0luaXRpYWxpemUNCitDb0luaXRpYWxpemVFeA0KK0NvSW5pdGlhbGl6ZVNlY3VyaXR5DQorQ29Jbml0aWFsaXplV09XDQorQ29JbnN0YWxsDQorQ29JbnZhbGlkYXRlUmVtb3RlTWFjaGluZUJpbmRpbmdzDQorQ29Jc0hhbmRsZXJDb25uZWN0ZWQNCitDb0lzT2xlMUNsYXNzDQorQ29Mb2FkTGlicmFyeQ0KK0NvTG9ja09iamVjdEV4dGVybmFsDQorQ29NYXJzaGFsSHJlc3VsdA0KK0NvTWFyc2hhbEludGVyVGhyZWFkSW50ZXJmYWNlSW5TdHJlYW0NCitDb01hcnNoYWxJbnRlcmZhY2UNCitDb1BvcFNlcnZpY2VEb21haW4NCitDb1B1c2hTZXJ2aWNlRG9tYWluDQorQ29RdWVyeUF1dGhlbnRpY2F0aW9uU2VydmljZXMNCitDb1F1ZXJ5Q2xpZW50QmxhbmtldA0KK0NvUXVlcnlQcm94eUJsYW5rZXQNCitDb1F1ZXJ5UmVsZWFzZU9iamVjdA0KK0NvUmVhY3RpdmF0ZU9iamVjdA0KK0NvUmVnaXN0ZXJDaGFubmVsSG9vaw0KK0NvUmVnaXN0ZXJDbGFzc09iamVjdA0KK0NvUmVnaXN0ZXJJbml0aWFsaXplU3B5DQorQ29SZWdpc3Rlck1hbGxvY1NweQ0KK0NvUmVnaXN0ZXJNZXNzYWdlRmlsdGVyDQorQ29SZWdpc3RlclBTQ2xzaWQNCitDb1JlZ2lzdGVyU3Vycm9nYXRlDQorQ29SZWdpc3RlclN1cnJvZ2F0ZUV4DQorQ29SZWxlYXNlTWFyc2hhbERhdGENCitDb1JlbGVhc2VTZXJ2ZXJQcm9jZXNzDQorQ29SZXN1bWVDbGFzc09iamVjdHMNCitDb1JldGlyZVNlcnZlcg0KK0NvUmV2ZXJ0VG9TZWxmDQorQ29SZXZva2VDbGFzc09iamVjdA0KK0NvUmV2b2tlSW5pdGlhbGl6ZVNweQ0KK0NvUmV2b2tlTWFsbG9jU3B5DQorQ29TZXRDYW5jZWxPYmplY3QNCitDb1NldFByb3h5QmxhbmtldA0KK0NvU2V0U3RhdGUNCitDb1N1c3BlbmRDbGFzc09iamVjdHMNCitDb1N3aXRjaENhbGxDb250ZXh0DQorQ29UYXNrTWVtQWxsb2MNCitDb1Rhc2tNZW1GcmVlDQorQ29UYXNrTWVtUmVhbGxvYw0KK0NvVGVzdENhbmNlbA0KK0NvVHJlYXRBc0NsYXNzDQorQ29VbmluaXRpYWxpemUNCitDb1VubG9hZGluZ1dPVw0KK0NvVW5tYXJzaGFsSHJlc3VsdA0KK0NvVW5tYXJzaGFsSW50ZXJmYWNlDQorQ29XYWl0Rm9yTXVsdGlwbGVIYW5kbGVzDQorQ29tUHNfTmRyRGxsQ2FuVW5sb2FkTm93DQorQ29tUHNfTmRyRGxsR2V0Q2xhc3NPYmplY3QNCitDb21Qc19OZHJEbGxSZWdpc3RlclByb3h5DQorQ29tUHNfTmRyRGxsVW5yZWdpc3RlclByb3h5DQorQ3JlYXRlQW50aU1vbmlrZXINCitDcmVhdGVCaW5kQ3R4DQorQ3JlYXRlQ2xhc3NNb25pa2VyDQorQ3JlYXRlRGF0YUFkdmlzZUhvbGRlcg0KK0NyZWF0ZURhdGFDYWNoZQ0KK0NyZWF0ZUVycm9ySW5mbw0KK0NyZWF0ZUZpbGVNb25pa2VyDQorQ3JlYXRlR2VuZXJpY0NvbXBvc2l0ZQ0KK0NyZWF0ZUlMb2NrQnl0ZXNPbkhHbG9iYWwNCitDcmVhdGVJdGVtTW9uaWtlcg0KK0NyZWF0ZU9ianJlZk1vbmlrZXINCitDcmVhdGVPbGVBZHZpc2VIb2xkZXINCitDcmVhdGVQb2ludGVyTW9uaWtlcg0KK0NyZWF0ZVN0ZFByb2dyZXNzSW5kaWNhdG9yDQorQ3JlYXRlU3RyZWFtT25IR2xvYmFsDQorRGNvbUNoYW5uZWxTZXRIUmVzdWx0DQorRGxsRGVidWdPYmplY3RSUENIb29rDQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxHZXRDbGFzc09iamVjdFdPVw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRG9EcmFnRHJvcA0KK0VuYWJsZUhvb2tPYmplY3QNCitGbXRJZFRvUHJvcFN0Z05hbWUNCitGcmVlUHJvcFZhcmlhbnRBcnJheQ0KK0dldENsYXNzRmlsZQ0KK0dldENvbnZlcnRTdGcNCitHZXREb2N1bWVudEJpdFN0Zw0KK0dldEVycm9ySW5mbw0KK0dldEhHbG9iYWxGcm9tSUxvY2tCeXRlcw0KK0dldEhHbG9iYWxGcm9tU3RyZWFtDQorR2V0SG9va0ludGVyZmFjZQ0KK0dldFJ1bm5pbmdPYmplY3RUYWJsZQ0KK0hBQ0NFTF9Vc2VyRnJlZQ0KK0hBQ0NFTF9Vc2VyRnJlZTY0DQorSEFDQ0VMX1VzZXJNYXJzaGFsDQorSEFDQ0VMX1VzZXJNYXJzaGFsNjQNCitIQUNDRUxfVXNlclNpemUNCitIQUNDRUxfVXNlclNpemU2NA0KK0hBQ0NFTF9Vc2VyVW5tYXJzaGFsDQorSEFDQ0VMX1VzZXJVbm1hcnNoYWw2NA0KK0hCSVRNQVBfVXNlckZyZWUNCitIQklUTUFQX1VzZXJGcmVlNjQNCitIQklUTUFQX1VzZXJNYXJzaGFsDQorSEJJVE1BUF9Vc2VyTWFyc2hhbDY0DQorSEJJVE1BUF9Vc2VyU2l6ZQ0KK0hCSVRNQVBfVXNlclNpemU2NA0KK0hCSVRNQVBfVXNlclVubWFyc2hhbA0KK0hCSVRNQVBfVXNlclVubWFyc2hhbDY0DQorSEJSVVNIX1VzZXJGcmVlDQorSEJSVVNIX1VzZXJGcmVlNjQNCitIQlJVU0hfVXNlck1hcnNoYWwNCitIQlJVU0hfVXNlck1hcnNoYWw2NA0KK0hCUlVTSF9Vc2VyU2l6ZQ0KK0hCUlVTSF9Vc2VyU2l6ZTY0DQorSEJSVVNIX1VzZXJVbm1hcnNoYWwNCitIQlJVU0hfVXNlclVubWFyc2hhbDY0DQorSERDX1VzZXJGcmVlDQorSERDX1VzZXJGcmVlNjQNCitIRENfVXNlck1hcnNoYWwNCitIRENfVXNlck1hcnNoYWw2NA0KK0hEQ19Vc2VyU2l6ZQ0KK0hEQ19Vc2VyU2l6ZTY0DQorSERDX1VzZXJVbm1hcnNoYWwNCitIRENfVXNlclVubWFyc2hhbDY0DQorSEVOSE1FVEFGSUxFX1VzZXJGcmVlDQorSEVOSE1FVEFGSUxFX1VzZXJGcmVlNjQNCitIRU5ITUVUQUZJTEVfVXNlck1hcnNoYWwNCitIRU5ITUVUQUZJTEVfVXNlck1hcnNoYWw2NA0KK0hFTkhNRVRBRklMRV9Vc2VyU2l6ZQ0KK0hFTkhNRVRBRklMRV9Vc2VyU2l6ZTY0DQorSEVOSE1FVEFGSUxFX1VzZXJVbm1hcnNoYWwNCitIRU5ITUVUQUZJTEVfVXNlclVubWFyc2hhbDY0DQorSEdMT0JBTF9Vc2VyRnJlZQ0KK0hHTE9CQUxfVXNlckZyZWU2NA0KK0hHTE9CQUxfVXNlck1hcnNoYWwNCitIR0xPQkFMX1VzZXJNYXJzaGFsNjQNCitIR0xPQkFMX1VzZXJTaXplDQorSEdMT0JBTF9Vc2VyU2l6ZTY0DQorSEdMT0JBTF9Vc2VyVW5tYXJzaGFsDQorSEdMT0JBTF9Vc2VyVW5tYXJzaGFsNjQNCitISUNPTl9Vc2VyRnJlZQ0KK0hJQ09OX1VzZXJGcmVlNjQNCitISUNPTl9Vc2VyTWFyc2hhbA0KK0hJQ09OX1VzZXJNYXJzaGFsNjQNCitISUNPTl9Vc2VyU2l6ZQ0KK0hJQ09OX1VzZXJTaXplNjQNCitISUNPTl9Vc2VyVW5tYXJzaGFsDQorSElDT05fVXNlclVubWFyc2hhbDY0DQorSE1FTlVfVXNlckZyZWUNCitITUVOVV9Vc2VyRnJlZTY0DQorSE1FTlVfVXNlck1hcnNoYWwNCitITUVOVV9Vc2VyTWFyc2hhbDY0DQorSE1FTlVfVXNlclNpemUNCitITUVOVV9Vc2VyU2l6ZTY0DQorSE1FTlVfVXNlclVubWFyc2hhbA0KK0hNRU5VX1VzZXJVbm1hcnNoYWw2NA0KK0hNRVRBRklMRVBJQ1RfVXNlckZyZWUNCitITUVUQUZJTEVQSUNUX1VzZXJGcmVlNjQNCitITUVUQUZJTEVQSUNUX1VzZXJNYXJzaGFsDQorSE1FVEFGSUxFUElDVF9Vc2VyTWFyc2hhbDY0DQorSE1FVEFGSUxFUElDVF9Vc2VyU2l6ZQ0KK0hNRVRBRklMRVBJQ1RfVXNlclNpemU2NA0KK0hNRVRBRklMRVBJQ1RfVXNlclVubWFyc2hhbA0KK0hNRVRBRklMRVBJQ1RfVXNlclVubWFyc2hhbDY0DQorSE1FVEFGSUxFX1VzZXJGcmVlDQorSE1FVEFGSUxFX1VzZXJGcmVlNjQNCitITUVUQUZJTEVfVXNlck1hcnNoYWwNCitITUVUQUZJTEVfVXNlck1hcnNoYWw2NA0KK0hNRVRBRklMRV9Vc2VyU2l6ZQ0KK0hNRVRBRklMRV9Vc2VyU2l6ZTY0DQorSE1FVEFGSUxFX1VzZXJVbm1hcnNoYWwNCitITUVUQUZJTEVfVXNlclVubWFyc2hhbDY0DQorSFBBTEVUVEVfVXNlckZyZWUNCitIUEFMRVRURV9Vc2VyRnJlZTY0DQorSFBBTEVUVEVfVXNlck1hcnNoYWwNCitIUEFMRVRURV9Vc2VyTWFyc2hhbDY0DQorSFBBTEVUVEVfVXNlclNpemUNCitIUEFMRVRURV9Vc2VyU2l6ZTY0DQorSFBBTEVUVEVfVXNlclVubWFyc2hhbA0KK0hQQUxFVFRFX1VzZXJVbm1hcnNoYWw2NA0KK0hXTkRfVXNlckZyZWUNCitIV05EX1VzZXJGcmVlNjQNCitIV05EX1VzZXJNYXJzaGFsDQorSFdORF9Vc2VyTWFyc2hhbDY0DQorSFdORF9Vc2VyU2l6ZQ0KK0hXTkRfVXNlclNpemU2NA0KK0hXTkRfVXNlclVubWFyc2hhbA0KK0hXTkRfVXNlclVubWFyc2hhbDY0DQorSGtPbGVSZWdpc3Rlck9iamVjdA0KK0lJREZyb21TdHJpbmcNCitJc0FjY2VsZXJhdG9yDQorSXNFcXVhbEdVSUQNCitJc1ZhbGlkSWlkDQorSXNWYWxpZEludGVyZmFjZQ0KK0lzVmFsaWRQdHJJbg0KK0lzVmFsaWRQdHJPdXQNCitNa1BhcnNlRGlzcGxheU5hbWUNCitNb25pa2VyQ29tbW9uUHJlZml4V2l0aA0KK01vbmlrZXJSZWxhdGl2ZVBhdGhUbw0KK09sZUJ1aWxkVmVyc2lvbg0KK09sZUNvbnZlcnRJU3RvcmFnZVRvT0xFU1RSRUFNDQorT2xlQ29udmVydElTdG9yYWdlVG9PTEVTVFJFQU1FeA0KK09sZUNvbnZlcnRPTEVTVFJFQU1Ub0lTdG9yYWdlDQorT2xlQ29udmVydE9MRVNUUkVBTVRvSVN0b3JhZ2VFeA0KK09sZUNyZWF0ZQ0KK09sZUNyZWF0ZURlZmF1bHRIYW5kbGVyDQorT2xlQ3JlYXRlRW1iZWRkaW5nSGVscGVyDQorT2xlQ3JlYXRlRXgNCitPbGVDcmVhdGVGcm9tRGF0YQ0KK09sZUNyZWF0ZUZyb21EYXRhRXgNCitPbGVDcmVhdGVGcm9tRmlsZQ0KK09sZUNyZWF0ZUZyb21GaWxlRXgNCitPbGVDcmVhdGVMaW5rDQorT2xlQ3JlYXRlTGlua0V4DQorT2xlQ3JlYXRlTGlua0Zyb21EYXRhDQorT2xlQ3JlYXRlTGlua0Zyb21EYXRhRXgNCitPbGVDcmVhdGVMaW5rVG9GaWxlDQorT2xlQ3JlYXRlTGlua1RvRmlsZUV4DQorT2xlQ3JlYXRlTWVudURlc2NyaXB0b3INCitPbGVDcmVhdGVTdGF0aWNGcm9tRGF0YQ0KK09sZURlc3Ryb3lNZW51RGVzY3JpcHRvcg0KK09sZURvQXV0b0NvbnZlcnQNCitPbGVEcmF3DQorT2xlRHVwbGljYXRlRGF0YQ0KK09sZUZsdXNoQ2xpcGJvYXJkDQorT2xlR2V0QXV0b0NvbnZlcnQNCitPbGVHZXRDbGlwYm9hcmQNCitPbGVHZXRJY29uT2ZDbGFzcw0KK09sZUdldEljb25PZkZpbGUNCitPbGVJbml0aWFsaXplDQorT2xlSW5pdGlhbGl6ZVdPVw0KK09sZUlzQ3VycmVudENsaXBib2FyZA0KK09sZUlzUnVubmluZw0KK09sZUxvYWQNCitPbGVMb2FkRnJvbVN0cmVhbQ0KK09sZUxvY2tSdW5uaW5nDQorT2xlTWV0YWZpbGVQaWN0RnJvbUljb25BbmRMYWJlbA0KK09sZU5vdGVPYmplY3RWaXNpYmxlDQorT2xlUXVlcnlDcmVhdGVGcm9tRGF0YQ0KK09sZVF1ZXJ5TGlua0Zyb21EYXRhDQorT2xlUmVnRW51bUZvcm1hdEV0Yw0KK09sZVJlZ0VudW1WZXJicw0KK09sZVJlZ0dldE1pc2NTdGF0dXMNCitPbGVSZWdHZXRVc2VyVHlwZQ0KK09sZVJ1bg0KK09sZVNhdmUNCitPbGVTYXZlVG9TdHJlYW0NCitPbGVTZXRBdXRvQ29udmVydA0KK09sZVNldENsaXBib2FyZA0KK09sZVNldENvbnRhaW5lZE9iamVjdA0KK09sZVNldE1lbnVEZXNjcmlwdG9yDQorT2xlVHJhbnNsYXRlQWNjZWxlcmF0b3INCitPbGVVbmluaXRpYWxpemUNCitPcGVuT3JDcmVhdGVTdHJlYW0NCitQcm9nSURGcm9tQ0xTSUQNCitQcm9wU3RnTmFtZVRvRm10SWQNCitQcm9wU3lzQWxsb2NTdHJpbmcNCitQcm9wU3lzRnJlZVN0cmluZw0KK1Byb3BWYXJpYW50Q2xlYXINCitQcm9wVmFyaWFudENvcHkNCitSZWFkQ2xhc3NTdGcNCitSZWFkQ2xhc3NTdG0NCitSZWFkRm10VXNlclR5cGVTdGcNCitSZWFkT2xlU3RnDQorUmVhZFN0cmluZ1N0cmVhbQ0KK1JlZ2lzdGVyRHJhZ0Ryb3ANCitSZWxlYXNlU3RnTWVkaXVtDQorUmV2b2tlRHJhZ0Ryb3ANCitTTkJfVXNlckZyZWUNCitTTkJfVXNlckZyZWU2NA0KK1NOQl9Vc2VyTWFyc2hhbA0KK1NOQl9Vc2VyTWFyc2hhbDY0DQorU05CX1VzZXJTaXplDQorU05CX1VzZXJTaXplNjQNCitTTkJfVXNlclVubWFyc2hhbA0KK1NOQl9Vc2VyVW5tYXJzaGFsNjQNCitTVEdNRURJVU1fVXNlckZyZWUNCitTVEdNRURJVU1fVXNlckZyZWU2NA0KK1NUR01FRElVTV9Vc2VyTWFyc2hhbA0KK1NUR01FRElVTV9Vc2VyTWFyc2hhbDY0DQorU1RHTUVESVVNX1VzZXJTaXplDQorU1RHTUVESVVNX1VzZXJTaXplNjQNCitTVEdNRURJVU1fVXNlclVubWFyc2hhbA0KK1NUR01FRElVTV9Vc2VyVW5tYXJzaGFsNjQNCitTZXRDb252ZXJ0U3RnDQorU2V0RG9jdW1lbnRCaXRTdGcNCitTZXRFcnJvckluZm8NCitTdGdDb252ZXJ0UHJvcGVydHlUb1ZhcmlhbnQNCitTdGdDb252ZXJ0VmFyaWFudFRvUHJvcGVydHkNCitTdGdDcmVhdGVEb2NmaWxlDQorU3RnQ3JlYXRlRG9jZmlsZU9uSUxvY2tCeXRlcw0KK1N0Z0NyZWF0ZVByb3BTZXRTdGcNCitTdGdDcmVhdGVQcm9wU3RnDQorU3RnQ3JlYXRlU3RvcmFnZUV4DQorU3RnR2V0SUZpbGxMb2NrQnl0ZXNPbkZpbGUNCitTdGdHZXRJRmlsbExvY2tCeXRlc09uSUxvY2tCeXRlcw0KK1N0Z0lzU3RvcmFnZUZpbGUNCitTdGdJc1N0b3JhZ2VJTG9ja0J5dGVzDQorU3RnT3BlbkFzeW5jRG9jZmlsZU9uSUZpbGxMb2NrQnl0ZXMNCitTdGdPcGVuUHJvcFN0Zw0KK1N0Z09wZW5TdG9yYWdlDQorU3RnT3BlblN0b3JhZ2VFeA0KK1N0Z09wZW5TdG9yYWdlT25IYW5kbGUNCitTdGdPcGVuU3RvcmFnZU9uSUxvY2tCeXRlcw0KK1N0Z1Byb3BlcnR5TGVuZ3RoQXNWYXJpYW50DQorU3RnU2V0VGltZXMNCitTdHJpbmdGcm9tQ0xTSUQNCitTdHJpbmdGcm9tR1VJRDINCitTdHJpbmdGcm9tSUlEDQorVXBkYXRlRENPTVNldHRpbmdzDQorVXRDb252ZXJ0RHZ0ZDE2dG9EdnRkMzINCitVdENvbnZlcnREdnRkMzJ0b0R2dGQxNg0KK1V0R2V0RHZ0ZDE2SW5mbw0KK1V0R2V0RHZ0ZDMySW5mbw0KK1dkdHBJbnRlcmZhY2VQb2ludGVyX1VzZXJGcmVlDQorV2R0cEludGVyZmFjZVBvaW50ZXJfVXNlckZyZWU2NA0KK1dkdHBJbnRlcmZhY2VQb2ludGVyX1VzZXJNYXJzaGFsDQorV2R0cEludGVyZmFjZVBvaW50ZXJfVXNlck1hcnNoYWw2NA0KK1dkdHBJbnRlcmZhY2VQb2ludGVyX1VzZXJTaXplDQorV2R0cEludGVyZmFjZVBvaW50ZXJfVXNlclNpemU2NA0KK1dkdHBJbnRlcmZhY2VQb2ludGVyX1VzZXJVbm1hcnNoYWwNCitXZHRwSW50ZXJmYWNlUG9pbnRlcl9Vc2VyVW5tYXJzaGFsNjQNCitXcml0ZUNsYXNzU3RnDQorV3JpdGVDbGFzc1N0bQ0KK1dyaXRlRm10VXNlclR5cGVTdGcNCitXcml0ZU9sZVN0Zw0KK1dyaXRlU3RyaW5nU3RyZWFtDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvb2xlYWNjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL29sZWFjYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDNjNGRjMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL29sZWFjYy5kZWYKQEAgLTAsMCArMSwzMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBPTEVBQ0MuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE9MRUFDQy5kbGwNCitFWFBPUlRTDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorQWNjZXNzaWJsZUNoaWxkcmVuDQorQWNjZXNzaWJsZU9iamVjdEZyb21FdmVudA0KK0FjY2Vzc2libGVPYmplY3RGcm9tUG9pbnQNCitBY2Nlc3NpYmxlT2JqZWN0RnJvbVdpbmRvdw0KK0NyZWF0ZVN0ZEFjY2Vzc2libGVPYmplY3QNCitDcmVhdGVTdGRBY2Nlc3NpYmxlUHJveHlBDQorQ3JlYXRlU3RkQWNjZXNzaWJsZVByb3h5Vw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorR2V0T2xlYWNjVmVyc2lvbkluZm8NCitHZXRSb2xlVGV4dEENCitHZXRSb2xlVGV4dFcNCitHZXRTdGF0ZVRleHRBDQorR2V0U3RhdGVUZXh0Vw0KK0lJRF9JQWNjZXNzaWJsZQ0KK0lJRF9JQWNjZXNzaWJsZUhhbmRsZXINCitMSUJJRF9BY2Nlc3NpYmlsaXR5DQorTHJlc3VsdEZyb21PYmplY3QNCitPYmplY3RGcm9tTHJlc3VsdA0KK1dpbmRvd0Zyb21BY2Nlc3NpYmxlT2JqZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvb2xlYXV0MzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvb2xlYXV0MzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE2OGY5ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9vbGVhdXQzMi5kZWYKQEAgLTAsMCArMSw0MTggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgT0xFQVVUMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE9MRUFVVDMyLmRsbA0KK0VYUE9SVFMNCitTeXNBbGxvY1N0cmluZw0KK1N5c1JlQWxsb2NTdHJpbmcNCitTeXNBbGxvY1N0cmluZ0xlbg0KK1N5c1JlQWxsb2NTdHJpbmdMZW4NCitTeXNGcmVlU3RyaW5nDQorU3lzU3RyaW5nTGVuDQorVmFyaWFudEluaXQNCitWYXJpYW50Q2xlYXINCitWYXJpYW50Q29weQ0KK1ZhcmlhbnRDb3B5SW5kDQorVmFyaWFudENoYW5nZVR5cGUNCitWYXJpYW50VGltZVRvRG9zRGF0ZVRpbWUNCitEb3NEYXRlVGltZVRvVmFyaWFudFRpbWUNCitTYWZlQXJyYXlDcmVhdGUNCitTYWZlQXJyYXlEZXN0cm95DQorU2FmZUFycmF5R2V0RGltDQorU2FmZUFycmF5R2V0RWxlbXNpemUNCitTYWZlQXJyYXlHZXRVQm91bmQNCitTYWZlQXJyYXlHZXRMQm91bmQNCitTYWZlQXJyYXlMb2NrDQorU2FmZUFycmF5VW5sb2NrDQorU2FmZUFycmF5QWNjZXNzRGF0YQ0KK1NhZmVBcnJheVVuYWNjZXNzRGF0YQ0KK1NhZmVBcnJheUdldEVsZW1lbnQNCitTYWZlQXJyYXlQdXRFbGVtZW50DQorU2FmZUFycmF5Q29weQ0KK0Rpc3BHZXRQYXJhbQ0KK0Rpc3BHZXRJRHNPZk5hbWVzDQorRGlzcEludm9rZQ0KK0NyZWF0ZURpc3BUeXBlSW5mbw0KK0NyZWF0ZVN0ZERpc3BhdGNoDQorUmVnaXN0ZXJBY3RpdmVPYmplY3QNCitSZXZva2VBY3RpdmVPYmplY3QNCitHZXRBY3RpdmVPYmplY3QNCitTYWZlQXJyYXlBbGxvY0Rlc2NyaXB0b3INCitTYWZlQXJyYXlBbGxvY0RhdGENCitTYWZlQXJyYXlEZXN0cm95RGVzY3JpcHRvcg0KK1NhZmVBcnJheURlc3Ryb3lEYXRhDQorU2FmZUFycmF5UmVkaW0NCitTYWZlQXJyYXlBbGxvY0Rlc2NyaXB0b3JFeA0KK1NhZmVBcnJheUNyZWF0ZUV4DQorU2FmZUFycmF5Q3JlYXRlVmVjdG9yRXgNCitTYWZlQXJyYXlTZXRSZWNvcmRJbmZvDQorU2FmZUFycmF5R2V0UmVjb3JkSW5mbw0KK1ZhclBhcnNlTnVtRnJvbVN0cg0KK1Zhck51bUZyb21QYXJzZU51bQ0KK1ZhckkyRnJvbVVJMQ0KK1ZhckkyRnJvbUk0DQorVmFySTJGcm9tUjQNCitWYXJJMkZyb21SOA0KK1ZhckkyRnJvbUN5DQorVmFySTJGcm9tRGF0ZQ0KK1ZhckkyRnJvbVN0cg0KK1ZhckkyRnJvbURpc3ANCitWYXJJMkZyb21Cb29sDQorU2FmZUFycmF5U2V0SUlEDQorVmFySTRGcm9tVUkxDQorVmFySTRGcm9tSTINCitWYXJJNEZyb21SNA0KK1Zhckk0RnJvbVI4DQorVmFySTRGcm9tQ3kNCitWYXJJNEZyb21EYXRlDQorVmFySTRGcm9tU3RyDQorVmFySTRGcm9tRGlzcA0KK1Zhckk0RnJvbUJvb2wNCitTYWZlQXJyYXlHZXRJSUQNCitWYXJSNEZyb21VSTENCitWYXJSNEZyb21JMg0KK1ZhclI0RnJvbUk0DQorVmFyUjRGcm9tUjgNCitWYXJSNEZyb21DeQ0KK1ZhclI0RnJvbURhdGUNCitWYXJSNEZyb21TdHINCitWYXJSNEZyb21EaXNwDQorVmFyUjRGcm9tQm9vbA0KK1NhZmVBcnJheUdldFZhcnR5cGUNCitWYXJSOEZyb21VSTENCitWYXJSOEZyb21JMg0KK1ZhclI4RnJvbUk0DQorVmFyUjhGcm9tUjQNCitWYXJSOEZyb21DeQ0KK1ZhclI4RnJvbURhdGUNCitWYXJSOEZyb21TdHINCitWYXJSOEZyb21EaXNwDQorVmFyUjhGcm9tQm9vbA0KK1ZhckZvcm1hdA0KK1ZhckRhdGVGcm9tVUkxDQorVmFyRGF0ZUZyb21JMg0KK1ZhckRhdGVGcm9tSTQNCitWYXJEYXRlRnJvbVI0DQorVmFyRGF0ZUZyb21SOA0KK1ZhckRhdGVGcm9tQ3kNCitWYXJEYXRlRnJvbVN0cg0KK1ZhckRhdGVGcm9tRGlzcA0KK1ZhckRhdGVGcm9tQm9vbA0KK1ZhckZvcm1hdERhdGVUaW1lDQorVmFyQ3lGcm9tVUkxDQorVmFyQ3lGcm9tSTINCitWYXJDeUZyb21JNA0KK1ZhckN5RnJvbVI0DQorVmFyQ3lGcm9tUjgNCitWYXJDeUZyb21EYXRlDQorVmFyQ3lGcm9tU3RyDQorVmFyQ3lGcm9tRGlzcA0KK1ZhckN5RnJvbUJvb2wNCitWYXJGb3JtYXROdW1iZXINCitWYXJCc3RyRnJvbVVJMQ0KK1ZhckJzdHJGcm9tSTINCitWYXJCc3RyRnJvbUk0DQorVmFyQnN0ckZyb21SNA0KK1ZhckJzdHJGcm9tUjgNCitWYXJCc3RyRnJvbUN5DQorVmFyQnN0ckZyb21EYXRlDQorVmFyQnN0ckZyb21EaXNwDQorVmFyQnN0ckZyb21Cb29sDQorVmFyRm9ybWF0UGVyY2VudA0KK1ZhckJvb2xGcm9tVUkxDQorVmFyQm9vbEZyb21JMg0KK1ZhckJvb2xGcm9tSTQNCitWYXJCb29sRnJvbVI0DQorVmFyQm9vbEZyb21SOA0KK1ZhckJvb2xGcm9tRGF0ZQ0KK1ZhckJvb2xGcm9tQ3kNCitWYXJCb29sRnJvbVN0cg0KK1ZhckJvb2xGcm9tRGlzcA0KK1ZhckZvcm1hdEN1cnJlbmN5DQorVmFyV2Vla2RheU5hbWUNCitWYXJNb250aE5hbWUNCitWYXJVSTFGcm9tSTINCitWYXJVSTFGcm9tSTQNCitWYXJVSTFGcm9tUjQNCitWYXJVSTFGcm9tUjgNCitWYXJVSTFGcm9tQ3kNCitWYXJVSTFGcm9tRGF0ZQ0KK1ZhclVJMUZyb21TdHINCitWYXJVSTFGcm9tRGlzcA0KK1ZhclVJMUZyb21Cb29sDQorVmFyRm9ybWF0RnJvbVRva2Vucw0KK1ZhclRva2VuaXplRm9ybWF0U3RyaW5nDQorVmFyQWRkDQorVmFyQW5kDQorVmFyRGl2DQorQlNUUl9Vc2VyRnJlZTY0DQorQlNUUl9Vc2VyTWFyc2hhbDY0DQorRGlzcENhbGxGdW5jDQorVmFyaWFudENoYW5nZVR5cGVFeA0KK1NhZmVBcnJheVB0ck9mSW5kZXgNCitTeXNTdHJpbmdCeXRlTGVuDQorU3lzQWxsb2NTdHJpbmdCeXRlTGVuDQorQlNUUl9Vc2VyU2l6ZTY0DQorVmFyRXF2DQorVmFySWRpdg0KK1ZhckltcA0KK1Zhck1vZA0KK1Zhck11bA0KK1Zhck9yDQorVmFyUG93DQorVmFyU3ViDQorQ3JlYXRlVHlwZUxpYg0KK0xvYWRUeXBlTGliDQorTG9hZFJlZ1R5cGVMaWINCitSZWdpc3RlclR5cGVMaWINCitRdWVyeVBhdGhPZlJlZ1R5cGVMaWINCitMSGFzaFZhbE9mTmFtZVN5cw0KK0xIYXNoVmFsT2ZOYW1lU3lzQQ0KK1Zhclhvcg0KK1ZhckFicw0KK1ZhckZpeA0KK09hQnVpbGRWZXJzaW9uDQorQ2xlYXJDdXN0RGF0YQ0KK1ZhckludA0KK1Zhck5lZw0KK1Zhck5vdA0KK1ZhclJvdW5kDQorVmFyQ21wDQorVmFyRGVjQWRkDQorVmFyRGVjRGl2DQorVmFyRGVjTXVsDQorQ3JlYXRlVHlwZUxpYjINCitWYXJEZWNTdWINCitWYXJEZWNBYnMNCitMb2FkVHlwZUxpYkV4DQorU3lzdGVtVGltZVRvVmFyaWFudFRpbWUNCitWYXJpYW50VGltZVRvU3lzdGVtVGltZQ0KK1VuUmVnaXN0ZXJUeXBlTGliDQorVmFyRGVjRml4DQorVmFyRGVjSW50DQorVmFyRGVjTmVnDQorVmFyRGVjRnJvbVVJMQ0KK1ZhckRlY0Zyb21JMg0KK1ZhckRlY0Zyb21JNA0KK1ZhckRlY0Zyb21SNA0KK1ZhckRlY0Zyb21SOA0KK1ZhckRlY0Zyb21EYXRlDQorVmFyRGVjRnJvbUN5DQorVmFyRGVjRnJvbVN0cg0KK1ZhckRlY0Zyb21EaXNwDQorVmFyRGVjRnJvbUJvb2wNCitHZXRFcnJvckluZm8NCitTZXRFcnJvckluZm8NCitDcmVhdGVFcnJvckluZm8NCitWYXJEZWNSb3VuZA0KK1ZhckRlY0NtcA0KK1ZhckkyRnJvbUkxDQorVmFySTJGcm9tVUkyDQorVmFySTJGcm9tVUk0DQorVmFySTJGcm9tRGVjDQorVmFySTRGcm9tSTENCitWYXJJNEZyb21VSTINCitWYXJJNEZyb21VSTQNCitWYXJJNEZyb21EZWMNCitWYXJSNEZyb21JMQ0KK1ZhclI0RnJvbVVJMg0KK1ZhclI0RnJvbVVJNA0KK1ZhclI0RnJvbURlYw0KK1ZhclI4RnJvbUkxDQorVmFyUjhGcm9tVUkyDQorVmFyUjhGcm9tVUk0DQorVmFyUjhGcm9tRGVjDQorVmFyRGF0ZUZyb21JMQ0KK1ZhckRhdGVGcm9tVUkyDQorVmFyRGF0ZUZyb21VSTQNCitWYXJEYXRlRnJvbURlYw0KK1ZhckN5RnJvbUkxDQorVmFyQ3lGcm9tVUkyDQorVmFyQ3lGcm9tVUk0DQorVmFyQ3lGcm9tRGVjDQorVmFyQnN0ckZyb21JMQ0KK1ZhckJzdHJGcm9tVUkyDQorVmFyQnN0ckZyb21VSTQNCitWYXJCc3RyRnJvbURlYw0KK1ZhckJvb2xGcm9tSTENCitWYXJCb29sRnJvbVVJMg0KK1ZhckJvb2xGcm9tVUk0DQorVmFyQm9vbEZyb21EZWMNCitWYXJVSTFGcm9tSTENCitWYXJVSTFGcm9tVUkyDQorVmFyVUkxRnJvbVVJNA0KK1ZhclVJMUZyb21EZWMNCitWYXJEZWNGcm9tSTENCitWYXJEZWNGcm9tVUkyDQorVmFyRGVjRnJvbVVJNA0KK1ZhckkxRnJvbVVJMQ0KK1ZhckkxRnJvbUkyDQorVmFySTFGcm9tSTQNCitWYXJJMUZyb21SNA0KK1ZhckkxRnJvbVI4DQorVmFySTFGcm9tRGF0ZQ0KK1ZhckkxRnJvbUN5DQorVmFySTFGcm9tU3RyDQorVmFySTFGcm9tRGlzcA0KK1ZhckkxRnJvbUJvb2wNCitWYXJJMUZyb21VSTINCitWYXJJMUZyb21VSTQNCitWYXJJMUZyb21EZWMNCitWYXJVSTJGcm9tVUkxDQorVmFyVUkyRnJvbUkyDQorVmFyVUkyRnJvbUk0DQorVmFyVUkyRnJvbVI0DQorVmFyVUkyRnJvbVI4DQorVmFyVUkyRnJvbURhdGUNCitWYXJVSTJGcm9tQ3kNCitWYXJVSTJGcm9tU3RyDQorVmFyVUkyRnJvbURpc3ANCitWYXJVSTJGcm9tQm9vbA0KK1ZhclVJMkZyb21JMQ0KK1ZhclVJMkZyb21VSTQNCitWYXJVSTJGcm9tRGVjDQorVmFyVUk0RnJvbVVJMQ0KK1ZhclVJNEZyb21JMg0KK1ZhclVJNEZyb21JNA0KK1ZhclVJNEZyb21SNA0KK1ZhclVJNEZyb21SOA0KK1ZhclVJNEZyb21EYXRlDQorVmFyVUk0RnJvbUN5DQorVmFyVUk0RnJvbVN0cg0KK1ZhclVJNEZyb21EaXNwDQorVmFyVUk0RnJvbUJvb2wNCitWYXJVSTRGcm9tSTENCitWYXJVSTRGcm9tVUkyDQorVmFyVUk0RnJvbURlYw0KK0JTVFJfVXNlclNpemUNCitCU1RSX1VzZXJNYXJzaGFsDQorQlNUUl9Vc2VyVW5tYXJzaGFsDQorQlNUUl9Vc2VyRnJlZQ0KK1ZBUklBTlRfVXNlclNpemUNCitWQVJJQU5UX1VzZXJNYXJzaGFsDQorVkFSSUFOVF9Vc2VyVW5tYXJzaGFsDQorVkFSSUFOVF9Vc2VyRnJlZQ0KK0xQU0FGRUFSUkFZX1VzZXJTaXplDQorTFBTQUZFQVJSQVlfVXNlck1hcnNoYWwNCitMUFNBRkVBUlJBWV9Vc2VyVW5tYXJzaGFsDQorTFBTQUZFQVJSQVlfVXNlckZyZWUNCitMUFNBRkVBUlJBWV9TaXplDQorTFBTQUZFQVJSQVlfTWFyc2hhbA0KK0xQU0FGRUFSUkFZX1VubWFyc2hhbA0KK1ZhckRlY0NtcFI4DQorVmFyQ3lBZGQNCitCU1RSX1VzZXJVbm1hcnNoYWw2NA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorVmFyQ3lNdWwNCitWYXJDeU11bEk0DQorVmFyQ3lTdWINCitWYXJDeUFicw0KK1ZhckN5Rml4DQorVmFyQ3lJbnQNCitWYXJDeU5lZw0KK1ZhckN5Um91bmQNCitWYXJDeUNtcA0KK1ZhckN5Q21wUjgNCitWYXJCc3RyQ2F0DQorVmFyQnN0ckNtcA0KK1ZhclI4UG93DQorVmFyUjRDbXBSOA0KK1ZhclI4Um91bmQNCitWYXJDYXQNCitWYXJEYXRlRnJvbVVkYXRlRXgNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitHZXRSZWNvcmRJbmZvRnJvbUd1aWRzDQorR2V0UmVjb3JkSW5mb0Zyb21UeXBlSW5mbw0KK0xQU0FGRUFSUkFZX1VzZXJGcmVlNjQNCitTZXRWYXJDb252ZXJzaW9uTG9jYWxlU2V0dGluZw0KK0dldFZhckNvbnZlcnNpb25Mb2NhbGVTZXR0aW5nDQorU2V0T2FOb0NhY2hlDQorTFBTQUZFQVJSQVlfVXNlck1hcnNoYWw2NA0KK1ZhckN5TXVsSTgNCitWYXJEYXRlRnJvbVVkYXRlDQorVmFyVWRhdGVGcm9tRGF0ZQ0KK0dldEFsdE1vbnRoTmFtZXMNCitWYXJJOEZyb21VSTENCitWYXJJOEZyb21JMg0KK1Zhckk4RnJvbVI0DQorVmFySThGcm9tUjgNCitWYXJJOEZyb21DeQ0KK1Zhckk4RnJvbURhdGUNCitWYXJJOEZyb21TdHINCitWYXJJOEZyb21EaXNwDQorVmFySThGcm9tQm9vbA0KK1Zhckk4RnJvbUkxDQorVmFySThGcm9tVUkyDQorVmFySThGcm9tVUk0DQorVmFySThGcm9tRGVjDQorVmFySTJGcm9tSTgNCitWYXJJMkZyb21VSTgNCitWYXJJNEZyb21JOA0KK1Zhckk0RnJvbVVJOA0KK0xQU0FGRUFSUkFZX1VzZXJTaXplNjQNCitMUFNBRkVBUlJBWV9Vc2VyVW5tYXJzaGFsNjQNCitPQUNyZWF0ZVR5cGVMaWIyDQorVkFSSUFOVF9Vc2VyRnJlZTY0DQorVkFSSUFOVF9Vc2VyTWFyc2hhbDY0DQorVkFSSUFOVF9Vc2VyU2l6ZTY0DQorVkFSSUFOVF9Vc2VyVW5tYXJzaGFsNjQNCitWYXJSNEZyb21JOA0KK1ZhclI0RnJvbVVJOA0KK1ZhclI4RnJvbUk4DQorVmFyUjhGcm9tVUk4DQorVmFyRGF0ZUZyb21JOA0KK1ZhckRhdGVGcm9tVUk4DQorVmFyQ3lGcm9tSTgNCitWYXJDeUZyb21VSTgNCitWYXJCc3RyRnJvbUk4DQorVmFyQnN0ckZyb21VSTgNCitWYXJCb29sRnJvbUk4DQorVmFyQm9vbEZyb21VSTgNCitWYXJVSTFGcm9tSTgNCitWYXJVSTFGcm9tVUk4DQorVmFyRGVjRnJvbUk4DQorVmFyRGVjRnJvbVVJOA0KK1ZhckkxRnJvbUk4DQorVmFySTFGcm9tVUk4DQorVmFyVUkyRnJvbUk4DQorVmFyVUkyRnJvbVVJOA0KK09sZUxvYWRQaWN0dXJlRXgNCitPbGVMb2FkUGljdHVyZUZpbGVFeA0KK1NhZmVBcnJheUNyZWF0ZVZlY3Rvcg0KK1NhZmVBcnJheUNvcHlEYXRhDQorVmVjdG9yRnJvbUJzdHINCitCc3RyRnJvbVZlY3Rvcg0KK09sZUljb25Ub0N1cnNvcg0KK09sZUNyZWF0ZVByb3BlcnR5RnJhbWVJbmRpcmVjdA0KK09sZUNyZWF0ZVByb3BlcnR5RnJhbWUNCitPbGVMb2FkUGljdHVyZQ0KK09sZUNyZWF0ZVBpY3R1cmVJbmRpcmVjdA0KK09sZUNyZWF0ZUZvbnRJbmRpcmVjdA0KK09sZVRyYW5zbGF0ZUNvbG9yDQorT2xlTG9hZFBpY3R1cmVGaWxlDQorT2xlU2F2ZVBpY3R1cmVGaWxlDQorT2xlTG9hZFBpY3R1cmVQYXRoDQorVmFyVUk0RnJvbUk4DQorVmFyVUk0RnJvbVVJOA0KK1Zhckk4RnJvbVVJOA0KK1ZhclVJOEZyb21JOA0KK1ZhclVJOEZyb21VSTENCitWYXJVSThGcm9tSTINCitWYXJVSThGcm9tUjQNCitWYXJVSThGcm9tUjgNCitWYXJVSThGcm9tQ3kNCitWYXJVSThGcm9tRGF0ZQ0KK1ZhclVJOEZyb21TdHINCitWYXJVSThGcm9tRGlzcA0KK1ZhclVJOEZyb21Cb29sDQorVmFyVUk4RnJvbUkxDQorVmFyVUk4RnJvbVVJMg0KK1ZhclVJOEZyb21VSTQNCitWYXJVSThGcm9tRGVjDQorUmVnaXN0ZXJUeXBlTGliRm9yVXNlcg0KK1VuUmVnaXN0ZXJUeXBlTGliRm9yVXNlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL29sZWNsaTMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL29sZWNsaTMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZWFkZTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvb2xlY2xpMzIuZGVmCkBAIC0wLDAgKzEsMTg2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE9MRUNMSTMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBPTEVDTEkzMi5kbGwNCitFWFBPUlRTDQorV0VQDQorT2xlRGVsZXRlDQorT2xlU2F2ZVRvU3RyZWFtDQorT2xlTG9hZEZyb21TdHJlYW0NCitPbGVDbG9uZQ0KK09sZUNvcHlGcm9tTGluaw0KK09sZUVxdWFsDQorT2xlUXVlcnlMaW5rRnJvbUNsaXANCitPbGVRdWVyeUNyZWF0ZUZyb21DbGlwDQorT2xlQ3JlYXRlTGlua0Zyb21DbGlwDQorT2xlQ3JlYXRlRnJvbUNsaXANCitPbGVDb3B5VG9DbGlwYm9hcmQNCitPbGVRdWVyeVR5cGUNCitPbGVTZXRIb3N0TmFtZXMNCitPbGVTZXRUYXJnZXREZXZpY2UNCitPbGVTZXRCb3VuZHMNCitPbGVRdWVyeUJvdW5kcw0KK09sZURyYXcNCitPbGVRdWVyeU9wZW4NCitPbGVBY3RpdmF0ZQ0KK09sZVVwZGF0ZQ0KK09sZVJlY29ubmVjdA0KK09sZUdldExpbmtVcGRhdGVPcHRpb25zDQorT2xlU2V0TGlua1VwZGF0ZU9wdGlvbnMNCitPbGVFbnVtRm9ybWF0cw0KK09sZUNsb3NlDQorT2xlR2V0RGF0YQ0KK09sZVNldERhdGENCitPbGVRdWVyeVByb3RvY29sDQorT2xlUXVlcnlPdXRPZkRhdGUNCitPbGVPYmplY3RDb252ZXJ0DQorT2xlQ3JlYXRlRnJvbVRlbXBsYXRlDQorT2xlQ3JlYXRlDQorT2xlUXVlcnlSZWxlYXNlU3RhdHVzDQorT2xlUXVlcnlSZWxlYXNlRXJyb3INCitPbGVRdWVyeVJlbGVhc2VNZXRob2QNCitPbGVDcmVhdGVGcm9tRmlsZQ0KK09sZUNyZWF0ZUxpbmtGcm9tRmlsZQ0KK09sZVJlbGVhc2UNCitPbGVSZWdpc3RlckNsaWVudERvYw0KK09sZVJldm9rZUNsaWVudERvYw0KK09sZVJlbmFtZUNsaWVudERvYw0KK09sZVJldmVydENsaWVudERvYw0KK09sZVNhdmVkQ2xpZW50RG9jDQorT2xlUmVuYW1lDQorT2xlRW51bU9iamVjdHMNCitPbGVRdWVyeU5hbWUNCitPbGVTZXRDb2xvclNjaGVtZQ0KK09sZVJlcXVlc3REYXRhDQorT2xlTG9ja1NlcnZlcg0KK09sZVVubG9ja1NlcnZlcg0KK09sZVF1ZXJ5U2l6ZQ0KK09sZUV4ZWN1dGUNCitPbGVDcmVhdGVJbnZpc2libGUNCitPbGVRdWVyeUNsaWVudFZlcnNpb24NCitPbGVJc0RjTWV0YQ0KK0RvY1duZFByb2MNCitTcnZyV25kUHJvYw0KK01mQ2FsbGJhY2tGdW5jDQorRGVmTG9hZEZyb21TdHJlYW0NCitEZWZDcmVhdGVGcm9tQ2xpcA0KK0RlZkNyZWF0ZUxpbmtGcm9tQ2xpcA0KK0RlZkNyZWF0ZUZyb21UZW1wbGF0ZQ0KK0RlZkNyZWF0ZQ0KK0RlZkNyZWF0ZUZyb21GaWxlDQorRGVmQ3JlYXRlTGlua0Zyb21GaWxlDQorRGVmQ3JlYXRlSW52aXNpYmxlDQorTGVSZWxlYXNlDQorTGVTaG93DQorTGVHZXREYXRhDQorTGVTZXREYXRhDQorTGVTZXRIb3N0TmFtZXMNCitMZVNldFRhcmdldERldmljZQ0KK0xlU2V0Qm91bmRzDQorTGVTYXZlVG9TdHJlYW0NCitMZUNsb25lDQorTGVDb3B5RnJvbUxpbmsNCitMZUVxdWFsDQorTGVDb3B5DQorTGVRdWVyeVR5cGUNCitMZVF1ZXJ5Qm91bmRzDQorTGVEcmF3DQorTGVRdWVyeU9wZW4NCitMZUFjdGl2YXRlDQorTGVVcGRhdGUNCitMZVJlY29ubmVjdA0KK0xlRW51bUZvcm1hdA0KK0xlUXVlcnlQcm90b2NvbA0KK0xlUXVlcnlPdXRPZkRhdGUNCitMZU9iamVjdENvbnZlcnQNCitMZUNoYW5nZURhdGENCitMZUNsb3NlDQorTGVHZXRVcGRhdGVPcHRpb25zDQorTGVTZXRVcGRhdGVPcHRpb25zDQorTGVFeGVjdXRlDQorTGVPYmplY3RMb25nDQorTGVDcmVhdGVJbnZpc2libGUNCitNZlJlbGVhc2UNCitNZkdldERhdGENCitNZlNhdmVUb1N0cmVhbQ0KK01mQ2xvbmUNCitNZkVxdWFsDQorTWZDb3B5DQorTWZRdWVyeUJvdW5kcw0KK01mRHJhdw0KK01mRW51bUZvcm1hdA0KK01mQ2hhbmdlRGF0YQ0KK0JtUmVsZWFzZQ0KK0JtR2V0RGF0YQ0KK0JtU2F2ZVRvU3RyZWFtDQorQm1DbG9uZQ0KK0JtRXF1YWwNCitCbUNvcHkNCitCbVF1ZXJ5Qm91bmRzDQorQm1EcmF3DQorQm1FbnVtRm9ybWF0DQorQm1DaGFuZ2VEYXRhDQorRGliUmVsZWFzZQ0KK0RpYkdldERhdGENCitEaWJTYXZlVG9TdHJlYW0NCitEaWJDbG9uZQ0KK0RpYkVxdWFsDQorRGliQ29weQ0KK0RpYlF1ZXJ5Qm91bmRzDQorRGliRHJhdw0KK0RpYkVudW1Gb3JtYXQNCitEaWJDaGFuZ2VEYXRhDQorR2VuUmVsZWFzZQ0KK0dlbkdldERhdGENCitHZW5TZXREYXRhDQorR2VuU2F2ZVRvU3RyZWFtDQorR2VuQ2xvbmUNCitHZW5FcXVhbA0KK0dlbkNvcHkNCitHZW5RdWVyeUJvdW5kcw0KK0dlbkRyYXcNCitHZW5FbnVtRm9ybWF0DQorR2VuQ2hhbmdlRGF0YQ0KK0VyclNob3cNCitFcnJTZXREYXRhDQorRXJyU2V0SG9zdE5hbWVzDQorRXJyU2V0VGFyZ2V0RGV2aWNlDQorRXJyU2V0Qm91bmRzDQorRXJyQ29weUZyb21MaW5rDQorRXJyUXVlcnlPcGVuDQorRXJyQWN0aXZhdGUNCitFcnJDbG9zZQ0KK0VyclVwZGF0ZQ0KK0VyclJlY29ubmVjdA0KK0VyclF1ZXJ5UHJvdG9jb2wNCitFcnJRdWVyeU91dE9mRGF0ZQ0KK0Vyck9iamVjdENvbnZlcnQNCitFcnJHZXRVcGRhdGVPcHRpb25zDQorRXJyU2V0VXBkYXRlT3B0aW9ucw0KK0VyckV4ZWN1dGUNCitFcnJPYmplY3RMb25nDQorUGJMb2FkRnJvbVN0cmVhbQ0KK1BiQ3JlYXRlRnJvbUNsaXANCitQYkNyZWF0ZUxpbmtGcm9tQ2xpcA0KK1BiQ3JlYXRlRnJvbVRlbXBsYXRlDQorUGJDcmVhdGUNCitQYkRyYXcNCitQYlF1ZXJ5Qm91bmRzDQorUGJDb3B5VG9DbGlwYm9hcmQNCitQYkNyZWF0ZUZyb21GaWxlDQorUGJDcmVhdGVMaW5rRnJvbUZpbGUNCitQYkVudW1Gb3JtYXRzDQorUGJHZXREYXRhDQorUGJDcmVhdGVJbnZpc2libGUNCitPYmpRdWVyeU5hbWUNCitPYmpSZW5hbWUNCitPYmpRdWVyeVR5cGUNCitPYmpRdWVyeVNpemUNCitDb25uZWN0RGxnUHJvYw0KK1NldE5ldE5hbWUNCitDaGVja05ldERyaXZlDQorU2V0TmV4dE5ldERyaXZlDQorR2V0VGFza1Zpc2libGVXaW5kb3cNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9vbGVjbnYzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9vbGVjbnYzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjg1ZGNiZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL29sZWNudjMyLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgT0xFQ05WMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE9MRUNOVjMyLmRsbA0KK0VYUE9SVFMNCitRRDJHREkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9vbGVkYjMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL29sZWRiMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBiZjJmMzIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9vbGVkYjMyLmRlZgpAQCAtMCwwICsxLDE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE9MRURCMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE9MRURCMzIuZGxsDQorRVhQT1JUUw0KK0RsbE1haW4NCitPcGVuRFNMRmlsZQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvb2xlZGIzMnIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvb2xlZGIzMnIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFlOTQ4MzkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9vbGVkYjMyci5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBPTEVEQjMyUi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgT0xFREIzMlIuZGxsDQorRVhQT1JUUw0KK0RsbE1haW4NCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9vbGVkbGcuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvb2xlZGxnLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNTdhYWJlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvb2xlZGxnLmRlZgpAQCAtMCwwICsxLDMxIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG9sZWRsZy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgb2xlZGxnLmRsbA0KK0VYUE9SVFMNCitPbGVVSUFkZFZlcmJNZW51QQ0KK09sZVVJQ2FuQ29udmVydE9yQWN0aXZhdGVBcw0KK09sZVVJSW5zZXJ0T2JqZWN0QQ0KK09sZVVJUGFzdGVTcGVjaWFsQQ0KK09sZVVJRWRpdExpbmtzQQ0KK09sZVVJQ2hhbmdlSWNvbkENCitPbGVVSUNvbnZlcnRBDQorT2xlVUlCdXN5QQ0KK09sZVVJVXBkYXRlTGlua3NBDQorT2xlVUlQcm9tcHRVc2VyQQ0KK09sZVVJT2JqZWN0UHJvcGVydGllc0ENCitPbGVVSUNoYW5nZVNvdXJjZUENCitPbGVVSUFkZFZlcmJNZW51Vw0KK09sZVVJQnVzeVcNCitPbGVVSUNoYW5nZUljb25XDQorT2xlVUlDaGFuZ2VTb3VyY2VXDQorT2xlVUlDb252ZXJ0Vw0KK09sZVVJRWRpdExpbmtzVw0KK09sZVVJSW5zZXJ0T2JqZWN0Vw0KK09sZVVJT2JqZWN0UHJvcGVydGllc1cNCitPbGVVSVBhc3RlU3BlY2lhbFcNCitPbGVVSVByb21wdFVzZXJXDQorT2xlVUlVcGRhdGVMaW5rc1cNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9vbGVwcm4uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvb2xlcHJuLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZTllZGY1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvb2xlcHJuLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG9sZXBybi5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgb2xlcHJuLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL29sZXN2cjMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL29sZXN2cjMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZmY0OTEzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvb2xlc3ZyMzIuZGVmCkBAIC0wLDAgKzEsMzEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgT0xFU1ZSMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE9MRVNWUjMyLmRsbA0KK0VYUE9SVFMNCitXRVANCitPbGVSZWdpc3RlclNlcnZlcg0KK09sZVJldm9rZVNlcnZlcg0KK09sZUJsb2NrU2VydmVyDQorT2xlVW5ibG9ja1NlcnZlcg0KK09sZVJlZ2lzdGVyU2VydmVyRG9jDQorT2xlUmV2b2tlU2VydmVyRG9jDQorT2xlUmVuYW1lU2VydmVyRG9jDQorT2xlUmV2ZXJ0U2VydmVyRG9jDQorT2xlU2F2ZWRTZXJ2ZXJEb2MNCitPbGVSZXZva2VPYmplY3QNCitPbGVRdWVyeVNlcnZlclZlcnNpb24NCitTcnZyV25kUHJvYw0KK0RvY1duZFByb2MNCitJdGVtV25kUHJvYw0KK1NlbmREYXRhTXNnDQorRmluZEl0ZW1XbmQNCitJdGVtQ2FsbEJhY2sNCitUZXJtaW5hdGVDbGllbnRzDQorVGVybWluYXRlRG9jQ2xpZW50cw0KK0RlbGV0ZUNsaWVudEluZm8NCitTZW5kUmVuYW1lTXNnDQorRW51bUZvclRlcm1pbmF0ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL29wZW5nbDMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL29wZW5nbDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNGM4OTgyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvb3BlbmdsMzIuZGVmCkBAIC0wLDAgKzEsMzc2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE9QRU5HTDMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBPUEVOR0wzMi5kbGwNCitFWFBPUlRTDQorR2xtZkJlZ2luR2xzQmxvY2sNCitHbG1mQ2xvc2VNZXRhRmlsZQ0KK0dsbWZFbmRHbHNCbG9jaw0KK0dsbWZFbmRQbGF5YmFjaw0KK0dsbWZJbml0UGxheWJhY2sNCitHbG1mUGxheUdsc1JlY29yZA0KK2dsQWNjdW0NCitnbEFscGhhRnVuYw0KK2dsQXJlVGV4dHVyZXNSZXNpZGVudA0KK2dsQXJyYXlFbGVtZW50DQorZ2xCZWdpbg0KK2dsQmluZFRleHR1cmUNCitnbEJpdG1hcA0KK2dsQmxlbmRGdW5jDQorZ2xDYWxsTGlzdA0KK2dsQ2FsbExpc3RzDQorZ2xDbGVhcg0KK2dsQ2xlYXJBY2N1bQ0KK2dsQ2xlYXJDb2xvcg0KK2dsQ2xlYXJEZXB0aA0KK2dsQ2xlYXJJbmRleA0KK2dsQ2xlYXJTdGVuY2lsDQorZ2xDbGlwUGxhbmUNCitnbENvbG9yM2INCitnbENvbG9yM2J2DQorZ2xDb2xvcjNkDQorZ2xDb2xvcjNkdg0KK2dsQ29sb3IzZg0KK2dsQ29sb3IzZnYNCitnbENvbG9yM2kNCitnbENvbG9yM2l2DQorZ2xDb2xvcjNzDQorZ2xDb2xvcjNzdg0KK2dsQ29sb3IzdWINCitnbENvbG9yM3Vidg0KK2dsQ29sb3IzdWkNCitnbENvbG9yM3Vpdg0KK2dsQ29sb3IzdXMNCitnbENvbG9yM3Vzdg0KK2dsQ29sb3I0Yg0KK2dsQ29sb3I0YnYNCitnbENvbG9yNGQNCitnbENvbG9yNGR2DQorZ2xDb2xvcjRmDQorZ2xDb2xvcjRmdg0KK2dsQ29sb3I0aQ0KK2dsQ29sb3I0aXYNCitnbENvbG9yNHMNCitnbENvbG9yNHN2DQorZ2xDb2xvcjR1Yg0KK2dsQ29sb3I0dWJ2DQorZ2xDb2xvcjR1aQ0KK2dsQ29sb3I0dWl2DQorZ2xDb2xvcjR1cw0KK2dsQ29sb3I0dXN2DQorZ2xDb2xvck1hc2sNCitnbENvbG9yTWF0ZXJpYWwNCitnbENvbG9yUG9pbnRlcg0KK2dsQ29weVBpeGVscw0KK2dsQ29weVRleEltYWdlMUQNCitnbENvcHlUZXhJbWFnZTJEDQorZ2xDb3B5VGV4U3ViSW1hZ2UxRA0KK2dsQ29weVRleFN1YkltYWdlMkQNCitnbEN1bGxGYWNlDQorZ2xEZWJ1Z0VudHJ5DQorZ2xEZWxldGVMaXN0cw0KK2dsRGVsZXRlVGV4dHVyZXMNCitnbERlcHRoRnVuYw0KK2dsRGVwdGhNYXNrDQorZ2xEZXB0aFJhbmdlDQorZ2xEaXNhYmxlDQorZ2xEaXNhYmxlQ2xpZW50U3RhdGUNCitnbERyYXdBcnJheXMNCitnbERyYXdCdWZmZXINCitnbERyYXdFbGVtZW50cw0KK2dsRHJhd1BpeGVscw0KK2dsRWRnZUZsYWcNCitnbEVkZ2VGbGFnUG9pbnRlcg0KK2dsRWRnZUZsYWd2DQorZ2xFbmFibGUNCitnbEVuYWJsZUNsaWVudFN0YXRlDQorZ2xFbmQNCitnbEVuZExpc3QNCitnbEV2YWxDb29yZDFkDQorZ2xFdmFsQ29vcmQxZHYNCitnbEV2YWxDb29yZDFmDQorZ2xFdmFsQ29vcmQxZnYNCitnbEV2YWxDb29yZDJkDQorZ2xFdmFsQ29vcmQyZHYNCitnbEV2YWxDb29yZDJmDQorZ2xFdmFsQ29vcmQyZnYNCitnbEV2YWxNZXNoMQ0KK2dsRXZhbE1lc2gyDQorZ2xFdmFsUG9pbnQxDQorZ2xFdmFsUG9pbnQyDQorZ2xGZWVkYmFja0J1ZmZlcg0KK2dsRmluaXNoDQorZ2xGbHVzaA0KK2dsRm9nZg0KK2dsRm9nZnYNCitnbEZvZ2kNCitnbEZvZ2l2DQorZ2xGcm9udEZhY2UNCitnbEZydXN0dW0NCitnbEdlbkxpc3RzDQorZ2xHZW5UZXh0dXJlcw0KK2dsR2V0Qm9vbGVhbnYNCitnbEdldENsaXBQbGFuZQ0KK2dsR2V0RG91Ymxldg0KK2dsR2V0RXJyb3INCitnbEdldEZsb2F0dg0KK2dsR2V0SW50ZWdlcnYNCitnbEdldExpZ2h0ZnYNCitnbEdldExpZ2h0aXYNCitnbEdldE1hcGR2DQorZ2xHZXRNYXBmdg0KK2dsR2V0TWFwaXYNCitnbEdldE1hdGVyaWFsZnYNCitnbEdldE1hdGVyaWFsaXYNCitnbEdldFBpeGVsTWFwZnYNCitnbEdldFBpeGVsTWFwdWl2DQorZ2xHZXRQaXhlbE1hcHVzdg0KK2dsR2V0UG9pbnRlcnYNCitnbEdldFBvbHlnb25TdGlwcGxlDQorZ2xHZXRTdHJpbmcNCitnbEdldFRleEVudmZ2DQorZ2xHZXRUZXhFbnZpdg0KK2dsR2V0VGV4R2VuZHYNCitnbEdldFRleEdlbmZ2DQorZ2xHZXRUZXhHZW5pdg0KK2dsR2V0VGV4SW1hZ2UNCitnbEdldFRleExldmVsUGFyYW1ldGVyZnYNCitnbEdldFRleExldmVsUGFyYW1ldGVyaXYNCitnbEdldFRleFBhcmFtZXRlcmZ2DQorZ2xHZXRUZXhQYXJhbWV0ZXJpdg0KK2dsSGludA0KK2dsSW5kZXhNYXNrDQorZ2xJbmRleFBvaW50ZXINCitnbEluZGV4ZA0KK2dsSW5kZXhkdg0KK2dsSW5kZXhmDQorZ2xJbmRleGZ2DQorZ2xJbmRleGkNCitnbEluZGV4aXYNCitnbEluZGV4cw0KK2dsSW5kZXhzdg0KK2dsSW5kZXh1Yg0KK2dsSW5kZXh1YnYNCitnbEluaXROYW1lcw0KK2dsSW50ZXJsZWF2ZWRBcnJheXMNCitnbElzRW5hYmxlZA0KK2dsSXNMaXN0DQorZ2xJc1RleHR1cmUNCitnbExpZ2h0TW9kZWxmDQorZ2xMaWdodE1vZGVsZnYNCitnbExpZ2h0TW9kZWxpDQorZ2xMaWdodE1vZGVsaXYNCitnbExpZ2h0Zg0KK2dsTGlnaHRmdg0KK2dsTGlnaHRpDQorZ2xMaWdodGl2DQorZ2xMaW5lU3RpcHBsZQ0KK2dsTGluZVdpZHRoDQorZ2xMaXN0QmFzZQ0KK2dsTG9hZElkZW50aXR5DQorZ2xMb2FkTWF0cml4ZA0KK2dsTG9hZE1hdHJpeGYNCitnbExvYWROYW1lDQorZ2xMb2dpY09wDQorZ2xNYXAxZA0KK2dsTWFwMWYNCitnbE1hcDJkDQorZ2xNYXAyZg0KK2dsTWFwR3JpZDFkDQorZ2xNYXBHcmlkMWYNCitnbE1hcEdyaWQyZA0KK2dsTWFwR3JpZDJmDQorZ2xNYXRlcmlhbGYNCitnbE1hdGVyaWFsZnYNCitnbE1hdGVyaWFsaQ0KK2dsTWF0ZXJpYWxpdg0KK2dsTWF0cml4TW9kZQ0KK2dsTXVsdE1hdHJpeGQNCitnbE11bHRNYXRyaXhmDQorZ2xOZXdMaXN0DQorZ2xOb3JtYWwzYg0KK2dsTm9ybWFsM2J2DQorZ2xOb3JtYWwzZA0KK2dsTm9ybWFsM2R2DQorZ2xOb3JtYWwzZg0KK2dsTm9ybWFsM2Z2DQorZ2xOb3JtYWwzaQ0KK2dsTm9ybWFsM2l2DQorZ2xOb3JtYWwzcw0KK2dsTm9ybWFsM3N2DQorZ2xOb3JtYWxQb2ludGVyDQorZ2xPcnRobw0KK2dsUGFzc1Rocm91Z2gNCitnbFBpeGVsTWFwZnYNCitnbFBpeGVsTWFwdWl2DQorZ2xQaXhlbE1hcHVzdg0KK2dsUGl4ZWxTdG9yZWYNCitnbFBpeGVsU3RvcmVpDQorZ2xQaXhlbFRyYW5zZmVyZg0KK2dsUGl4ZWxUcmFuc2ZlcmkNCitnbFBpeGVsWm9vbQ0KK2dsUG9pbnRTaXplDQorZ2xQb2x5Z29uTW9kZQ0KK2dsUG9seWdvbk9mZnNldA0KK2dsUG9seWdvblN0aXBwbGUNCitnbFBvcEF0dHJpYg0KK2dsUG9wQ2xpZW50QXR0cmliDQorZ2xQb3BNYXRyaXgNCitnbFBvcE5hbWUNCitnbFByaW9yaXRpemVUZXh0dXJlcw0KK2dsUHVzaEF0dHJpYg0KK2dsUHVzaENsaWVudEF0dHJpYg0KK2dsUHVzaE1hdHJpeA0KK2dsUHVzaE5hbWUNCitnbFJhc3RlclBvczJkDQorZ2xSYXN0ZXJQb3MyZHYNCitnbFJhc3RlclBvczJmDQorZ2xSYXN0ZXJQb3MyZnYNCitnbFJhc3RlclBvczJpDQorZ2xSYXN0ZXJQb3MyaXYNCitnbFJhc3RlclBvczJzDQorZ2xSYXN0ZXJQb3Myc3YNCitnbFJhc3RlclBvczNkDQorZ2xSYXN0ZXJQb3MzZHYNCitnbFJhc3RlclBvczNmDQorZ2xSYXN0ZXJQb3MzZnYNCitnbFJhc3RlclBvczNpDQorZ2xSYXN0ZXJQb3MzaXYNCitnbFJhc3RlclBvczNzDQorZ2xSYXN0ZXJQb3Mzc3YNCitnbFJhc3RlclBvczRkDQorZ2xSYXN0ZXJQb3M0ZHYNCitnbFJhc3RlclBvczRmDQorZ2xSYXN0ZXJQb3M0ZnYNCitnbFJhc3RlclBvczRpDQorZ2xSYXN0ZXJQb3M0aXYNCitnbFJhc3RlclBvczRzDQorZ2xSYXN0ZXJQb3M0c3YNCitnbFJlYWRCdWZmZXINCitnbFJlYWRQaXhlbHMNCitnbFJlY3RkDQorZ2xSZWN0ZHYNCitnbFJlY3RmDQorZ2xSZWN0ZnYNCitnbFJlY3RpDQorZ2xSZWN0aXYNCitnbFJlY3RzDQorZ2xSZWN0c3YNCitnbFJlbmRlck1vZGUNCitnbFJvdGF0ZWQNCitnbFJvdGF0ZWYNCitnbFNjYWxlZA0KK2dsU2NhbGVmDQorZ2xTY2lzc29yDQorZ2xTZWxlY3RCdWZmZXINCitnbFNoYWRlTW9kZWwNCitnbFN0ZW5jaWxGdW5jDQorZ2xTdGVuY2lsTWFzaw0KK2dsU3RlbmNpbE9wDQorZ2xUZXhDb29yZDFkDQorZ2xUZXhDb29yZDFkdg0KK2dsVGV4Q29vcmQxZg0KK2dsVGV4Q29vcmQxZnYNCitnbFRleENvb3JkMWkNCitnbFRleENvb3JkMWl2DQorZ2xUZXhDb29yZDFzDQorZ2xUZXhDb29yZDFzdg0KK2dsVGV4Q29vcmQyZA0KK2dsVGV4Q29vcmQyZHYNCitnbFRleENvb3JkMmYNCitnbFRleENvb3JkMmZ2DQorZ2xUZXhDb29yZDJpDQorZ2xUZXhDb29yZDJpdg0KK2dsVGV4Q29vcmQycw0KK2dsVGV4Q29vcmQyc3YNCitnbFRleENvb3JkM2QNCitnbFRleENvb3JkM2R2DQorZ2xUZXhDb29yZDNmDQorZ2xUZXhDb29yZDNmdg0KK2dsVGV4Q29vcmQzaQ0KK2dsVGV4Q29vcmQzaXYNCitnbFRleENvb3JkM3MNCitnbFRleENvb3JkM3N2DQorZ2xUZXhDb29yZDRkDQorZ2xUZXhDb29yZDRkdg0KK2dsVGV4Q29vcmQ0Zg0KK2dsVGV4Q29vcmQ0ZnYNCitnbFRleENvb3JkNGkNCitnbFRleENvb3JkNGl2DQorZ2xUZXhDb29yZDRzDQorZ2xUZXhDb29yZDRzdg0KK2dsVGV4Q29vcmRQb2ludGVyDQorZ2xUZXhFbnZmDQorZ2xUZXhFbnZmdg0KK2dsVGV4RW52aQ0KK2dsVGV4RW52aXYNCitnbFRleEdlbmQNCitnbFRleEdlbmR2DQorZ2xUZXhHZW5mDQorZ2xUZXhHZW5mdg0KK2dsVGV4R2VuaQ0KK2dsVGV4R2VuaXYNCitnbFRleEltYWdlMUQNCitnbFRleEltYWdlMkQNCitnbFRleFBhcmFtZXRlcmYNCitnbFRleFBhcmFtZXRlcmZ2DQorZ2xUZXhQYXJhbWV0ZXJpDQorZ2xUZXhQYXJhbWV0ZXJpdg0KK2dsVGV4U3ViSW1hZ2UxRA0KK2dsVGV4U3ViSW1hZ2UyRA0KK2dsVHJhbnNsYXRlZA0KK2dsVHJhbnNsYXRlZg0KK2dsVmVydGV4MmQNCitnbFZlcnRleDJkdg0KK2dsVmVydGV4MmYNCitnbFZlcnRleDJmdg0KK2dsVmVydGV4MmkNCitnbFZlcnRleDJpdg0KK2dsVmVydGV4MnMNCitnbFZlcnRleDJzdg0KK2dsVmVydGV4M2QNCitnbFZlcnRleDNkdg0KK2dsVmVydGV4M2YNCitnbFZlcnRleDNmdg0KK2dsVmVydGV4M2kNCitnbFZlcnRleDNpdg0KK2dsVmVydGV4M3MNCitnbFZlcnRleDNzdg0KK2dsVmVydGV4NGQNCitnbFZlcnRleDRkdg0KK2dsVmVydGV4NGYNCitnbFZlcnRleDRmdg0KK2dsVmVydGV4NGkNCitnbFZlcnRleDRpdg0KK2dsVmVydGV4NHMNCitnbFZlcnRleDRzdg0KK2dsVmVydGV4UG9pbnRlcg0KK2dsVmlld3BvcnQNCit3Z2xDaG9vc2VQaXhlbEZvcm1hdA0KK3dnbENvcHlDb250ZXh0DQord2dsQ3JlYXRlQ29udGV4dA0KK3dnbENyZWF0ZUxheWVyQ29udGV4dA0KK3dnbERlbGV0ZUNvbnRleHQNCit3Z2xEZXNjcmliZUxheWVyUGxhbmUNCit3Z2xEZXNjcmliZVBpeGVsRm9ybWF0DQord2dsR2V0Q3VycmVudENvbnRleHQNCit3Z2xHZXRDdXJyZW50REMNCit3Z2xHZXREZWZhdWx0UHJvY0FkZHJlc3MNCit3Z2xHZXRMYXllclBhbGV0dGVFbnRyaWVzDQord2dsR2V0UGl4ZWxGb3JtYXQNCit3Z2xHZXRQcm9jQWRkcmVzcw0KK3dnbE1ha2VDdXJyZW50DQord2dsUmVhbGl6ZUxheWVyUGFsZXR0ZQ0KK3dnbFNldExheWVyUGFsZXR0ZUVudHJpZXMNCit3Z2xTZXRQaXhlbEZvcm1hdA0KK3dnbFNoYXJlTGlzdHMNCit3Z2xTd2FwQnVmZmVycw0KK3dnbFN3YXBMYXllckJ1ZmZlcnMNCit3Z2xTd2FwTXVsdGlwbGVCdWZmZXJzDQord2dsVXNlRm9udEJpdG1hcHNBDQord2dsVXNlRm9udEJpdG1hcHNXDQord2dsVXNlRm9udE91dGxpbmVzQQ0KK3dnbFVzZUZvbnRPdXRsaW5lc1cNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9vc3VuaW5zdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9vc3VuaW5zdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2ZlNGNhZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL29zdW5pbnN0LmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE9TVU5JTlNULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBPU1VOSU5TVC5kbGwNCitFWFBPUlRTDQorRXhlY3V0ZVVuaW5zdGFsbA0KK0dldFVuaW5zdGFsbEltYWdlU2l6ZQ0KK0lzVW5pbnN0YWxsSW1hZ2VWYWxpZA0KK1Byb3ZpZGVVaUFsZXJ0cw0KK1JlbW92ZVVuaW5zdGFsbEltYWdlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvb3ZwcmludG1vbmRsbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9vdnByaW50bW9uZGxsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40OWUxZWI0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvb3ZwcmludG1vbmRsbC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBvdnByaW50bW9uZGxsLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBvdnByaW50bW9uZGxsLmRsbA0KK0VYUE9SVFMNCitEbGxNYWluDQorSW5pdGlhbGl6ZVByaW50TW9uaXRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3BhZHJzNDA0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3BhZHJzNDA0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMDMzMjg1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcGFkcnM0MDQuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcmVzbWFpbi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcmVzbWFpbi5kbGwNCitFWFBPUlRTDQorUGFkSGVscF9IYW5kbGVDb250ZXh0UG9wdXANCitQYWRIZWxwX0hhbmRsZUhlbHANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9wYWRyczQxMS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9wYWRyczQxMS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzAzMzI4NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3BhZHJzNDExLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHJlc21haW4uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHJlc21haW4uZGxsDQorRVhQT1JUUw0KK1BhZEhlbHBfSGFuZGxlQ29udGV4dFBvcHVwDQorUGFkSGVscF9IYW5kbGVIZWxwDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcGFkcnM0MTIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcGFkcnM0MTIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMwMzMyODUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9wYWRyczQxMi5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSByZXNtYWluLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSByZXNtYWluLmRsbA0KK0VYUE9SVFMNCitQYWRIZWxwX0hhbmRsZUNvbnRleHRQb3B1cA0KK1BhZEhlbHBfSGFuZGxlSGVscA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3BhZHJzODA0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3BhZHJzODA0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MTgwYjQxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcGFkcnM4MDQuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUkVTTUFJTi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUkVTTUFJTi5kbGwNCitFWFBPUlRTDQorUGFkSGVscF9IYW5kbGVDb250ZXh0UG9wdXANCitQYWRIZWxwX0hhbmRsZUhlbHANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9wYW5tYXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcGFubWFwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNGJkYjZlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcGFubWFwLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHBhbm1hcC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcGFubWFwLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3BhdXRvZW5yLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3BhdXRvZW5yLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lMjYyMWM1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcGF1dG9lbnIuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUEFVVE9FTlIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFBBVVRPRU5SLmRsbA0KK0VYUE9SVFMNCitDZXJ0QXV0b0Vucm9sbG1lbnQNCitDZXJ0QXV0b1JlbW92ZQ0KK1Byb3ZBdXRvRW5yb2xsbWVudA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3BjaHNoZWxsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3BjaHNoZWxsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZmU4NzcwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcGNoc2hlbGwuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbWFyc2NvcmUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1hcnNjb3JlLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3BjaHN2Yy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9wY2hzdmMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNlOTc5ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9wY2hzdmMuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBwY2hzdmMuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHBjaHN2Yy5ETEwNCitFWFBPUlRTDQorU2VydmljZU1haW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9wZGguZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcGRoLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMWJjOGUyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcGRoLmRlZgpAQCAtMCwwICsxLDE2NyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBwZGguZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHBkaC5kbGwNCitFWFBPUlRTDQorUGRoUGxhR2V0TG9nRmlsZU5hbWVBDQorRGxsSW5zdGFsbA0KK1BkaEFkZDAwOUNvdW50ZXJBDQorUGRoQWRkMDA5Q291bnRlclcNCitQZGhBZGRDb3VudGVyQQ0KK1BkaEFkZENvdW50ZXJXDQorUGRoQmluZElucHV0RGF0YVNvdXJjZUENCitQZGhCaW5kSW5wdXREYXRhU291cmNlVw0KK1BkaEJyb3dzZUNvdW50ZXJzQQ0KK1BkaEJyb3dzZUNvdW50ZXJzSEENCitQZGhCcm93c2VDb3VudGVyc0hXDQorUGRoQnJvd3NlQ291bnRlcnNXDQorUGRoQ2FsY3VsYXRlQ291bnRlckZyb21SYXdWYWx1ZQ0KK1BkaENsb3NlTG9nDQorUGRoQ2xvc2VRdWVyeQ0KK1BkaENvbGxlY3RRdWVyeURhdGENCitQZGhDb2xsZWN0UXVlcnlEYXRhRXgNCitQZGhDb21wdXRlQ291bnRlclN0YXRpc3RpY3MNCitQZGhDb25uZWN0TWFjaGluZUENCitQZGhDb25uZWN0TWFjaGluZVcNCitQZGhDcmVhdGVTUUxUYWJsZXNBDQorUGRoQ3JlYXRlU1FMVGFibGVzVw0KK1BkaEVudW1Mb2dTZXROYW1lc0ENCitQZGhFbnVtTG9nU2V0TmFtZXNXDQorUGRoRW51bU1hY2hpbmVzQQ0KK1BkaEVudW1NYWNoaW5lc0hBDQorUGRoRW51bU1hY2hpbmVzSFcNCitQZGhFbnVtTWFjaGluZXNXDQorUGRoRW51bU9iamVjdEl0ZW1zQQ0KK1BkaEVudW1PYmplY3RJdGVtc0hBDQorUGRoRW51bU9iamVjdEl0ZW1zSFcNCitQZGhFbnVtT2JqZWN0SXRlbXNXDQorUGRoRW51bU9iamVjdHNBDQorUGRoRW51bU9iamVjdHNIQQ0KK1BkaEVudW1PYmplY3RzSFcNCitQZGhFbnVtT2JqZWN0c1cNCitQZGhFeHBhbmRDb3VudGVyUGF0aEENCitQZGhFeHBhbmRDb3VudGVyUGF0aFcNCitQZGhFeHBhbmRXaWxkQ2FyZFBhdGhBDQorUGRoRXhwYW5kV2lsZENhcmRQYXRoSEENCitQZGhFeHBhbmRXaWxkQ2FyZFBhdGhIVw0KK1BkaEV4cGFuZFdpbGRDYXJkUGF0aFcNCitQZGhGb3JtYXRGcm9tUmF3VmFsdWUNCitQZGhHZXRDb3VudGVySW5mb0ENCitQZGhHZXRDb3VudGVySW5mb1cNCitQZGhHZXRDb3VudGVyVGltZUJhc2UNCitQZGhHZXREYXRhU291cmNlVGltZVJhbmdlQQ0KK1BkaEdldERhdGFTb3VyY2VUaW1lUmFuZ2VIDQorUGRoR2V0RGF0YVNvdXJjZVRpbWVSYW5nZVcNCitQZGhHZXREZWZhdWx0UGVyZkNvdW50ZXJBDQorUGRoR2V0RGVmYXVsdFBlcmZDb3VudGVySEENCitQZGhHZXREZWZhdWx0UGVyZkNvdW50ZXJIVw0KK1BkaEdldERlZmF1bHRQZXJmQ291bnRlclcNCitQZGhHZXREZWZhdWx0UGVyZk9iamVjdEENCitQZGhHZXREZWZhdWx0UGVyZk9iamVjdEhBDQorUGRoR2V0RGVmYXVsdFBlcmZPYmplY3RIVw0KK1BkaEdldERlZmF1bHRQZXJmT2JqZWN0Vw0KK1BkaEdldERsbFZlcnNpb24NCitQZGhHZXRGb3JtYXR0ZWRDb3VudGVyQXJyYXlBDQorUGRoR2V0Rm9ybWF0dGVkQ291bnRlckFycmF5Vw0KK1BkaEdldEZvcm1hdHRlZENvdW50ZXJWYWx1ZQ0KK1BkaEdldExvZ0ZpbGVTaXplDQorUGRoR2V0TG9nRmlsZVR5cGVBDQorUGRoR2V0TG9nRmlsZVR5cGVXDQorUGRoR2V0TG9nU2V0R1VJRA0KK1BkaEdldFJhd0NvdW50ZXJBcnJheUENCitQZGhHZXRSYXdDb3VudGVyQXJyYXlXDQorUGRoR2V0UmF3Q291bnRlclZhbHVlDQorUGRoSXNSZWFsVGltZVF1ZXJ5DQorUGRoTGlzdExvZ0ZpbGVIZWFkZXJBDQorUGRoTGlzdExvZ0ZpbGVIZWFkZXJXDQorUGRoTG9va3VwUGVyZkluZGV4QnlOYW1lQQ0KK1BkaExvb2t1cFBlcmZJbmRleEJ5TmFtZVcNCitQZGhMb29rdXBQZXJmTmFtZUJ5SW5kZXhBDQorUGRoTG9va3VwUGVyZk5hbWVCeUluZGV4Vw0KK1BkaE1ha2VDb3VudGVyUGF0aEENCitQZGhNYWtlQ291bnRlclBhdGhXDQorUGRoT3BlbkxvZ0ENCitQZGhPcGVuTG9nVw0KK1BkaE9wZW5RdWVyeQ0KK1BkaE9wZW5RdWVyeUENCitQZGhPcGVuUXVlcnlIDQorUGRoT3BlblF1ZXJ5Vw0KK1BkaFBhcnNlQ291bnRlclBhdGhBDQorUGRoUGFyc2VDb3VudGVyUGF0aFcNCitQZGhQYXJzZUluc3RhbmNlTmFtZUENCitQZGhQYXJzZUluc3RhbmNlTmFtZVcNCitQZGhQbGFBZGRJdGVtQQ0KK1BkaFBsYUFkZEl0ZW1XDQorUGRoUGxhQ3JlYXRlQQ0KK1BkaFBsYUNyZWF0ZVcNCitQZGhQbGFEZWxldGVBDQorUGRoUGxhRGVsZXRlVw0KK1BkaFBsYURvd25ncmFkZVcNCitQZGhQbGFFbnVtQ29sbGVjdGlvbnNBDQorUGRoUGxhRW51bUNvbGxlY3Rpb25zVw0KK1BkaFBsYUdldEluZm9BDQorUGRoUGxhR2V0SW5mb1cNCitQZGhQbGFHZXRMb2dGaWxlTmFtZVcNCitQZGhQbGFHZXRTY2hlZHVsZUENCitQZGhQbGFHZXRTY2hlZHVsZVcNCitQZGhQbGFSZW1vdmVBbGxJdGVtc0ENCitQZGhQbGFSZW1vdmVBbGxJdGVtc1cNCitQZGhQbGFTY2hlZHVsZUENCitQZGhQbGFTY2hlZHVsZVcNCitQZGhQbGFTZXRJbmZvQQ0KK1BkaFBsYVNldEluZm9XDQorUGRoUGxhU2V0SXRlbUxpc3RBDQorUGRoUGxhU2V0SXRlbUxpc3RXDQorUGRoUGxhU2V0UnVuQXNBDQorUGRoUGxhU2V0UnVuQXNXDQorUGRoUGxhU3RhcnRBDQorUGRoUGxhU3RhcnRXDQorUGRoUGxhU3RvcEENCitQZGhQbGFTdG9wVw0KK1BkaFBsYVVwZ3JhZGVXDQorUGRoUGxhVmFsaWRhdGVJbmZvQQ0KK1BkaFBsYVZhbGlkYXRlSW5mb1cNCitQZGhSZWFkUmF3TG9nUmVjb3JkDQorUGRoUmVsb2dBDQorUGRoUmVsb2dXDQorUGRoUmVtb3ZlQ291bnRlcg0KK1BkaFNlbGVjdERhdGFTb3VyY2VBDQorUGRoU2VsZWN0RGF0YVNvdXJjZVcNCitQZGhTZXRDb3VudGVyU2NhbGVGYWN0b3INCitQZGhTZXREZWZhdWx0UmVhbFRpbWVEYXRhU291cmNlDQorUGRoU2V0TG9nU2V0UnVuSUQNCitQZGhTZXRRdWVyeVRpbWVSYW5nZQ0KK1BkaFRyYW5zbGF0ZTAwOUNvdW50ZXJBDQorUGRoVHJhbnNsYXRlMDA5Q291bnRlclcNCitQZGhUcmFuc2xhdGVMb2NhbGVDb3VudGVyQQ0KK1BkaFRyYW5zbGF0ZUxvY2FsZUNvdW50ZXJXDQorUGRoVXBkYXRlTG9nQQ0KK1BkaFVwZGF0ZUxvZ0ZpbGVDYXRhbG9nDQorUGRoVXBkYXRlTG9nVw0KK1BkaFZhbGlkYXRlUGF0aEENCitQZGhWYWxpZGF0ZVBhdGhXDQorUGRoVmJBZGRDb3VudGVyDQorUGRoVmJDcmVhdGVDb3VudGVyUGF0aExpc3QNCitQZGhWYkdldENvdW50ZXJQYXRoRWxlbWVudHMNCitQZGhWYkdldENvdW50ZXJQYXRoRnJvbUxpc3QNCitQZGhWYkdldERvdWJsZUNvdW50ZXJWYWx1ZQ0KK1BkaFZiR2V0TG9nRmlsZVNpemUNCitQZGhWYkdldE9uZUNvdW50ZXJQYXRoDQorUGRoVmJJc0dvb2RTdGF0dXMNCitQZGhWYk9wZW5Mb2cNCitQZGhWYk9wZW5RdWVyeQ0KK1BkaFZiVXBkYXRlTG9nDQorUGRoVmVyaWZ5U1FMREJBDQorUGRoVmVyaWZ5U1FMREJXDQorUGRoaVBsYTIwMDNTUDFJbnN0YWxsZWQNCitQZGhpUGxhRG93bmdyYWRlDQorUGRoaVBsYUZvcm1hdEJsYW5rc0ENCitQZGhpUGxhRm9ybWF0QmxhbmtzVw0KK1BkaGlQbGFHZXRWZXJzaW9uDQorUGRoaVBsYVJ1bkFzDQorUGRoaVBsYVNldFJ1bkFzDQorUGRoaVBsYVVwZ3JhZGUNCitQbGFUaW1lSW5mb1RvTWlsbGlTZWNvbmRzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcGVyZmN0cnMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcGVyZmN0cnMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE2N2RiOTkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9wZXJmY3Rycy5kZWYKQEAgLTAsMCArMSwyNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBwZXJmY3Rycy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcGVyZmN0cnMuZGxsDQorRVhQT1JUUw0KK09wZW5OYmZQZXJmb3JtYW5jZURhdGENCitDb2xsZWN0TmJmUGVyZm9ybWFuY2VEYXRhDQorQ2xvc2VOYmZQZXJmb3JtYW5jZURhdGENCitPcGVuVGNwSXBQZXJmb3JtYW5jZURhdGENCitDb2xsZWN0VGNwSXBQZXJmb3JtYW5jZURhdGENCitDbG9zZVRjcElwUGVyZm9ybWFuY2VEYXRhDQorT3BlbklQWFBlcmZvcm1hbmNlRGF0YQ0KK0NvbGxlY3RJUFhQZXJmb3JtYW5jZURhdGENCitDbG9zZUlQWFBlcmZvcm1hbmNlRGF0YQ0KK09wZW5TUFhQZXJmb3JtYW5jZURhdGENCitDb2xsZWN0U1BYUGVyZm9ybWFuY2VEYXRhDQorQ2xvc2VTUFhQZXJmb3JtYW5jZURhdGENCitPcGVuTldOQlBlcmZvcm1hbmNlRGF0YQ0KK0NvbGxlY3ROV05CUGVyZm9ybWFuY2VEYXRhDQorQ2xvc2VOV05CUGVyZm9ybWFuY2VEYXRhDQorT3BlbkRoY3BQZXJmb3JtYW5jZURhdGENCitDb2xsZWN0RGhjcFBlcmZvcm1hbmNlRGF0YQ0KK0Nsb3NlRGhjcFBlcmZvcm1hbmNlRGF0YQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3BlcmZkaXNrLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3BlcmZkaXNrLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNGJkNzk5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcGVyZmRpc2suZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUGVyZkRpc2suZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFBlcmZEaXNrLmRsbA0KK0VYUE9SVFMNCitDbG9zZURpc2tPYmplY3QNCitDb2xsZWN0RGlza09iamVjdERhdGENCitPcGVuRGlza09iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3BlcmZuZXQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcGVyZm5ldC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjcwYzRmOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3BlcmZuZXQuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUGVyZk5ldC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUGVyZk5ldC5kbGwNCitFWFBPUlRTDQorQ2xvc2VOZXRTdmNzT2JqZWN0DQorQ29sbGVjdE5ldFN2Y3NPYmplY3REYXRhDQorT3Blbk5ldFN2Y3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9wZXJmb3MuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcGVyZm9zLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yODZjZTU2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcGVyZm9zLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFBlcmZPUy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUGVyZk9TLmRsbA0KK0VYUE9SVFMNCitDbG9zZU9TT2JqZWN0DQorQ29sbGVjdE9TT2JqZWN0RGF0YQ0KK09wZW5PU09iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3BlcmZwcm9jLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3BlcmZwcm9jLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYzk0ZjhhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcGVyZnByb2MuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUGVyZlByb2MuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFBlcmZQcm9jLmRsbA0KK0VYUE9SVFMNCitDbG9zZVN5c1Byb2Nlc3NPYmplY3QNCitDb2xsZWN0U3lzUHJvY2Vzc09iamVjdERhdGENCitPcGVuU3lzUHJvY2Vzc09iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3BlcmZ0cy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9wZXJmdHMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM2YmJhZjQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9wZXJmdHMuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUGVyZlRTLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBQZXJmVFMuZGxsDQorRVhQT1JUUw0KK0Nsb3NlVFNPYmplY3QNCitDb2xsZWN0VFNPYmplY3REYXRhDQorT3BlblRTT2JqZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcGhvdG93aXouZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcGhvdG93aXouZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYzYTM1M2EKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9waG90b3dpei5kZWYKQEAgLTAsMCArMSwxNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBQSE9UT1dJWi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUEhPVE9XSVouZGxsDQorRVhQT1JUUw0KK1VzZVBQV0ZvclByaW50VG8NCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbEluc3RhbGwNCitEbGxNYWluDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcGlkLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3BpZC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzk0YTNiNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3BpZC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBwaWQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHBpZC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9waWRnZW4uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcGlkZ2VuLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NmU5NTc4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcGlkZ2VuLmRlZgpAQCAtMCwwICsxLDIwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFBJREdlbi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUElER2VuLmRsbA0KK0VYUE9SVFMNCitQSURHZW5BDQorUElER2VuVw0KK1BJREdlblNpbXBBDQorUElER2VuU2ltcFcNCitTZXR1cFBJREdlbkENCitTZXR1cFBJREdlblcNCitQSURHZW5FeEENCitQSURHZW5FeFcNCitTZXR1cFBJREdlbkV4QQ0KK1NldHVwUElER2VuRXhXDQorUElER2VuRXgyQQ0KK1BJREdlbkV4MlcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9waW50bGNzYS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9waW50bGNzYS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDI4Yjk1ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3BpbnRsY3NhLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElNRVNLRi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSU1FU0tGLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3BpbnRsY3NkLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3BpbnRsY3NkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMTg2ZGEzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcGludGxjc2QuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJTUVTS0RpYy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSU1FU0tEaWMuZGxsDQorRVhQT1JUUw0KK0NyZWF0ZUlJbWVTa2RpY0luc3RhbmNlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcGpsbW9uLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3BqbG1vbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjBlODIwZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3BqbG1vbi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFBKTE1PTi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUEpMTU9OLmRsbA0KK0VYUE9SVFMNCitJbml0aWFsaXplUHJpbnRNb25pdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcG5nZmlsdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9wbmdmaWx0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYjhkMzY2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcG5nZmlsdC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBQTkdGSUxURVIuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFBOR0ZJTFRFUi5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9wb2xpY21hbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9wb2xpY21hbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmIwZDdiYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3BvbGljbWFuLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFBPTElDTUFOLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBQT0xJQ01BTi5ETEwNCitFWFBPUlRTDQorQ3JlYXRlQURDb250YWluZXJzDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9wb2xzdG9yZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9wb2xzdG9yZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmJjOGIwMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3BvbHN0b3JlLmRlZgpAQCAtMCwwICsxLDcyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFBPTFNUT1JFLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBQT0xTVE9SRS5ETEwNCitFWFBPUlRTDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorSVBTZWNBbGxvY1BvbE1lbQ0KK0lQU2VjQWxsb2NQb2xTdHINCitJUFNlY0Fzc2lnblBvbGljeQ0KK0lQU2VjQ2hvb3NlRHJpdmVyQm9vdE1vZGUNCitJUFNlY0NsZWFyV01JU3RvcmUNCitJUFNlY0Nsb3NlUG9saWN5U3RvcmUNCitJUFNlY0NvcHlBdXRoTWV0aG9kDQorSVBTZWNDb3B5RmlsdGVyRGF0YQ0KK0lQU2VjQ29weUZpbHRlclNwZWMNCitJUFNlY0NvcHlJU0FLTVBEYXRhDQorSVBTZWNDb3B5TkZBRGF0YQ0KK0lQU2VjQ29weU5lZ1BvbERhdGENCitJUFNlY0NvcHlQb2xpY3lEYXRhDQorSVBTZWNDcmVhdGVGaWx0ZXJEYXRhDQorSVBTZWNDcmVhdGVJU0FLTVBEYXRhDQorSVBTZWNDcmVhdGVORkFEYXRhDQorSVBTZWNDcmVhdGVOZWdQb2xEYXRhDQorSVBTZWNDcmVhdGVQb2xpY3lEYXRhDQorSVBTZWNEZWxldGVGaWx0ZXJEYXRhDQorSVBTZWNEZWxldGVJU0FLTVBEYXRhDQorSVBTZWNEZWxldGVORkFEYXRhDQorSVBTZWNEZWxldGVOZWdQb2xEYXRhDQorSVBTZWNEZWxldGVQb2xpY3lEYXRhDQorSVBTZWNFbnVtRmlsdGVyRGF0YQ0KK0lQU2VjRW51bUlTQUtNUERhdGENCitJUFNlY0VudW1ORkFEYXRhDQorSVBTZWNFbnVtTmVnUG9sRGF0YQ0KK0lQU2VjRW51bVBvbGljeURhdGENCitJUFNlY0V4cG9ydFBvbGljaWVzDQorSVBTZWNGcmVlRmlsdGVyRGF0YQ0KK0lQU2VjRnJlZUZpbHRlclNwZWMNCitJUFNlY0ZyZWVGaWx0ZXJTcGVjcw0KK0lQU2VjRnJlZUlTQUtNUERhdGENCitJUFNlY0ZyZWVNdWxGaWx0ZXJEYXRhDQorSVBTZWNGcmVlTXVsSVNBS01QRGF0YQ0KK0lQU2VjRnJlZU11bE5GQURhdGENCitJUFNlY0ZyZWVNdWxOZWdQb2xEYXRhDQorSVBTZWNGcmVlTXVsUG9saWN5RGF0YQ0KK0lQU2VjRnJlZU5GQURhdGENCitJUFNlY0ZyZWVOZWdQb2xEYXRhDQorSVBTZWNGcmVlUG9sTWVtDQorSVBTZWNGcmVlUG9sU3RyDQorSVBTZWNGcmVlUG9saWN5RGF0YQ0KK0lQU2VjR2V0QXNzaWduZWREb21haW5Qb2xpY3lOYW1lDQorSVBTZWNHZXRBc3NpZ25lZFBvbGljeURhdGENCitJUFNlY0dldEZpbHRlckRhdGENCitJUFNlY0dldElTQUtNUERhdGENCitJUFNlY0dldE5lZ1BvbERhdGENCitJUFNlY0ltcG9ydFBvbGljaWVzDQorSVBTZWNJc0RvbWFpblBvbGljeUFzc2lnbmVkDQorSVBTZWNJc0xvY2FsUG9saWN5QXNzaWduZWQNCitJUFNlY09wZW5Qb2xpY3lTdG9yZQ0KK0lQU2VjUmVhbGxvY2F0ZVBvbE1lbQ0KK0lQU2VjUmVhbGxvY2F0ZVBvbFN0cg0KK0lQU2VjUmVzdG9yZURlZmF1bHRQb2xpY2llcw0KK0lQU2VjU2V0RmlsdGVyRGF0YQ0KK0lQU2VjU2V0SVNBS01QRGF0YQ0KK0lQU2VjU2V0TkZBRGF0YQ0KK0lQU2VjU2V0TmVnUG9sRGF0YQ0KK0lQU2VjU2V0UG9saWN5RGF0YQ0KK0lQU2VjVW5hc3NpZ25Qb2xpY3kNCitXcml0ZURpcmVjdG9yeVBvbGljeVRvV01JDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcG93cnByb2YuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcG93cnByb2YuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRjN2JjMDcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9wb3dycHJvZi5kZWYKQEAgLTAsMCArMSwzMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBQT1dSUFJPRi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUE9XUlBST0YuZGxsDQorRVhQT1JUUw0KK0NhbGxOdFBvd2VySW5mb3JtYXRpb24NCitDYW5Vc2VyV3JpdGVQd3JTY2hlbWUNCitEZWxldGVQd3JTY2hlbWUNCitFbnVtUHdyU2NoZW1lcw0KK0dldEFjdGl2ZVB3clNjaGVtZQ0KK0dldEN1cnJlbnRQb3dlclBvbGljaWVzDQorR2V0UHdyQ2FwYWJpbGl0aWVzDQorR2V0UHdyRGlza1NwaW5kb3duUmFuZ2UNCitJc0FkbWluT3ZlcnJpZGVBY3RpdmUNCitJc1B3ckhpYmVybmF0ZUFsbG93ZWQNCitJc1B3clNodXRkb3duQWxsb3dlZA0KK0lzUHdyU3VzcGVuZEFsbG93ZWQNCitMb2FkQ3VycmVudFB3clNjaGVtZQ0KK01lcmdlTGVnYWN5UHdyU2NoZW1lDQorUmVhZEdsb2JhbFB3clBvbGljeQ0KK1JlYWRQcm9jZXNzb3JQd3JTY2hlbWUNCitSZWFkUHdyU2NoZW1lDQorU2V0QWN0aXZlUHdyU2NoZW1lDQorU2V0U3VzcGVuZFN0YXRlDQorVmFsaWRhdGVQb3dlclBvbGljaWVzDQorV3JpdGVHbG9iYWxQd3JQb2xpY3kNCitXcml0ZVByb2Nlc3NvclB3clNjaGVtZQ0KK1dyaXRlUHdyU2NoZW1lDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcHJpbnR1aS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9wcmludHVpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MjI4NDkyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcHJpbnR1aS5kZWYKQEAgLTAsMCArMSwzMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBQUklOVFVJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBQUklOVFVJLmRsbA0KK0VYUE9SVFMNCitDb25zdHJ1Y3RQcmludGVyRnJpZW5kbHlOYW1lDQorRG9jdW1lbnRQcm9wZXJ0aWVzV3JhcA0KK1BuUEludGVyZmFjZQ0KK1ByaW50VUlFbnRyeVcNCitQcmludGVyUHJvcFBhZ2VQcm92aWRlcg0KK0Nvbm5lY3RUb1ByaW50ZXJEbGcNCitDb25uZWN0VG9QcmludGVyUHJvcGVydHlQYWdlDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxNYWluDQorR2V0TGVnYWN5UHJpbnRVSQ0KK1ByaW50Tm90aWZ5VHJheV9FeGl0DQorUHJpbnROb3RpZnlUcmF5X0luaXQNCitSZWdpc3RlclByaW50Tm90aWZ5DQorU2hvd0Vycm9yTWVzc2FnZUhSDQorU2hvd0Vycm9yTWVzc2FnZVNDDQorVW5yZWdpc3RlclByaW50Tm90aWZ5DQorYkZvbGRlckVudW1QcmludGVycw0KK2JGb2xkZXJHZXRQcmludGVyDQorYkZvbGRlclJlZnJlc2gNCitiUHJpbnRlclNldHVwDQordkRvY3VtZW50RGVmYXVsdHMNCit2UHJpbnRlclByb3BQYWdlcw0KK3ZRdWV1ZUNyZWF0ZQ0KK3ZTZXJ2ZXJQcm9wUGFnZXMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9wcm9mbWFwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3Byb2ZtYXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBlZGY0NTgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9wcm9mbWFwLmRlZgpAQCAtMCwwICsxLDE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFBST0ZNQVAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFBST0ZNQVAuZGxsDQorRVhQT1JUUw0KK0RsbE1haW4NCitJbml0aWFsaXplUHJvZmlsZU1hcHBpbmdBcGkNCitSZW1hcEFuZE1vdmVVc2VyQQ0KK1JlbWFwQW5kTW92ZVVzZXJXDQorUmVtYXBVc2VyUHJvZmlsZUENCitSZW1hcFVzZXJQcm9maWxlVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3Byb3Z0aHJkLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3Byb3Z0aHJkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZjU5ZDNhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcHJvdnRocmQuZGVmCkBAIC0wLDAgKzEsMTk0MiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBQUk9WVEhSRC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUFJPVlRIUkQuZGxsDQorRVhQT1JUUw0KKzsgUEVBR1BFQUc6Oj8kQ29tcGFyZUVsZW1lbnRzKFlBSFBFQlFFQUcwQFopDQorPz8kQ29tcGFyZUVsZW1lbnRzQFBFQUdQRUFHQEBZQUhQRUJRRUFHMEBaDQorOyBQRUFHOjo/JEhhc2hLZXkoWUFJUEVBR0BaKQ0KKz8/JEhhc2hLZXlAUEVBR0BAWUFJUEVBR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0JTdHJpbmc6OkNCU3RyaW5nKGludCkgX19wdHI2NA0KKz8/MENCU3RyaW5nQEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIENCU3RyaW5nOjpDQlN0cmluZyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQlN0cmluZ0BAUUVBQUBQRUFHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQlN0cmluZzo6Q0JTdHJpbmcodm9pZCkgX19wdHI2NA0KKz8/MENCU3RyaW5nQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ29uanVuY3Rpb25zOjpDb25qdW5jdGlvbnModW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENvbmp1bmN0aW9uc0BAUUVBQUBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBEaXNqdW5jdGlvbnM6OkRpc2p1bmN0aW9ucyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBEaXNqdW5jdGlvbnNAQFFFQUFAS0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIFBhcnRpdGlvblNldDo6UGFydGl0aW9uU2V0KGNsYXNzIFBhcnRpdGlvblNldCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQYXJ0aXRpb25TZXRAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQYXJ0aXRpb25TZXQ6OlBhcnRpdGlvblNldCh2b2lkKSBfX3B0cjY0DQorPz8wUGFydGl0aW9uU2V0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkFuYWx5c2VyOjpQcm92QW5hbHlzZXIoY2xhc3MgUHJvdkFuYWx5c2VyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZBbmFseXNlckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZBbmFseXNlcjo6UHJvdkFuYWx5c2VyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZBbmFseXNlckBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92Qml0U3RyaW5nVHlwZTo6UHJvdkJpdFN0cmluZ1R5cGUoY2xhc3MgUHJvdkJpdFN0cmluZ1R5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkJpdFN0cmluZ1R5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92Qml0U3RyaW5nVHlwZTo6UHJvdkJpdFN0cmluZ1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkJpdFN0cmluZ1R5cGVAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkJpdFN0cmluZ1R5cGU6OlByb3ZCaXRTdHJpbmdUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBQcm92T2N0ZXRTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkJpdFN0cmluZ1R5cGVAQFFFQUFAUEVCR0FFQlZQcm92T2N0ZXRTdHJpbmdAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkJpdFN0cmluZ1R5cGU6OlByb3ZCaXRTdHJpbmdUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkJpdFN0cmluZ1R5cGVAQFFFQUFAUEVCR1BFQVBFQkdBRUJLQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92Q291bnRlcjY0OjpQcm92Q291bnRlcjY0KGNsYXNzIFByb3ZDb3VudGVyNjQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkNvdW50ZXI2NEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZDb3VudGVyNjQ6OlByb3ZDb3VudGVyNjQodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wUHJvdkNvdW50ZXI2NEBAUUVBQUBLS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkNvdW50ZXI2NFR5cGU6OlByb3ZDb3VudGVyNjRUeXBlKGNsYXNzIFByb3ZDb3VudGVyNjRUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZDb3VudGVyNjRUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkNvdW50ZXI2NFR5cGU6OlByb3ZDb3VudGVyNjRUeXBlKGNsYXNzIFByb3ZDb3VudGVyNjQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkNvdW50ZXI2NFR5cGVAQFFFQUFAQUVCVlByb3ZDb3VudGVyNjRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkNvdW50ZXI2NFR5cGU6OlByb3ZDb3VudGVyNjRUeXBlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFByb3ZDb3VudGVyNjRUeXBlQEBRRUFBQEtLQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92Q291bnRlcjY0VHlwZTo6UHJvdkNvdW50ZXI2NFR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkNvdW50ZXI2NFR5cGVAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkNvdW50ZXI2NFR5cGU6OlByb3ZDb3VudGVyNjRUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBQcm92Q291bnRlcjY0VHlwZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZDb3VudGVyOjpQcm92Q291bnRlcihjbGFzcyBQcm92Q291bnRlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92Q291bnRlckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZDb3VudGVyOjpQcm92Q291bnRlcih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wUHJvdkNvdW50ZXJAQFFFQUFAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkNvdW50ZXJUeXBlOjpQcm92Q291bnRlclR5cGUoY2xhc3MgUHJvdkNvdW50ZXJUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZDb3VudGVyVHlwZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZDb3VudGVyVHlwZTo6UHJvdkNvdW50ZXJUeXBlKGNsYXNzIFByb3ZDb3VudGVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZDb3VudGVyVHlwZUBAUUVBQUBBRUJWUHJvdkNvdW50ZXJAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkNvdW50ZXJUeXBlOjpQcm92Q291bnRlclR5cGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFByb3ZDb3VudGVyVHlwZUBAUUVBQUBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92Q291bnRlclR5cGU6OlByb3ZDb3VudGVyVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92Q291bnRlclR5cGVAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkNvdW50ZXJUeXBlOjpQcm92Q291bnRlclR5cGUodm9pZCkgX19wdHI2NA0KKz8/MFByb3ZDb3VudGVyVHlwZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZEYXRlVGltZVR5cGU6OlByb3ZEYXRlVGltZVR5cGUoY2xhc3MgUHJvdkRhdGVUaW1lVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92RGF0ZVRpbWVUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkRhdGVUaW1lVHlwZTo6UHJvdkRhdGVUaW1lVHlwZShjbGFzcyBQcm92T2N0ZXRTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkRhdGVUaW1lVHlwZUBAUUVBQUBBRUJWUHJvdk9jdGV0U3RyaW5nQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZEYXRlVGltZVR5cGU6OlByb3ZEYXRlVGltZVR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkRhdGVUaW1lVHlwZUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92RGF0ZVRpbWVUeXBlOjpQcm92RGF0ZVRpbWVUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBQcm92RGF0ZVRpbWVUeXBlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkRlYnVnTG9nOjpQcm92RGVidWdMb2coY2hhcikgX19wdHI2NA0KKz8/MFByb3ZEZWJ1Z0xvZ0BAUUVBQUBEQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92RGlzcGxheVN0cmluZ1R5cGU6OlByb3ZEaXNwbGF5U3RyaW5nVHlwZShjbGFzcyBQcm92RGlzcGxheVN0cmluZ1R5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkRpc3BsYXlTdHJpbmdUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkRpc3BsYXlTdHJpbmdUeXBlOjpQcm92RGlzcGxheVN0cmluZ1R5cGUoY2xhc3MgUHJvdk9jdGV0U3RyaW5nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92RGlzcGxheVN0cmluZ1R5cGVAQFFFQUFAQUVCVlByb3ZPY3RldFN0cmluZ0BAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkRpc3BsYXlTdHJpbmdUeXBlOjpQcm92RGlzcGxheVN0cmluZ1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZEaXNwbGF5U3RyaW5nVHlwZUBAUUVBQUBQRUJHMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkRpc3BsYXlTdHJpbmdUeXBlOjpQcm92RGlzcGxheVN0cmluZ1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkRpc3BsYXlTdHJpbmdUeXBlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZFbnVtZXJhdGVkVHlwZTo6UHJvdkVudW1lcmF0ZWRUeXBlKGNsYXNzIFByb3ZFbnVtZXJhdGVkVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92RW51bWVyYXRlZFR5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92RW51bWVyYXRlZFR5cGU6OlByb3ZFbnVtZXJhdGVkVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkVudW1lcmF0ZWRUeXBlQEBRRUFBQFBFQkcwQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92RW51bWVyYXRlZFR5cGU6OlByb3ZFbnVtZXJhdGVkVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92RW51bWVyYXRlZFR5cGVAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkVudW1lcmF0ZWRUeXBlOjpQcm92RW51bWVyYXRlZFR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkVudW1lcmF0ZWRUeXBlQEBRRUFBQFBFQkdBRUJKQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92RW51bWVyYXRlZFR5cGU6OlByb3ZFbnVtZXJhdGVkVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgUHJvdkludGVnZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkVudW1lcmF0ZWRUeXBlQEBRRUFBQFBFQkdBRUJWUHJvdkludGVnZXJAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkV2ZW50T2JqZWN0OjpQcm92RXZlbnRPYmplY3QoY2xhc3MgUHJvdkV2ZW50T2JqZWN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZFdmVudE9iamVjdEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZFdmVudE9iamVjdDo6UHJvdkV2ZW50T2JqZWN0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZFdmVudE9iamVjdEBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6UHJvdkZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZUBAUUVBQUBBRUJLQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6UHJvdkZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsY2xhc3MgUHJvdk9jdGV0U3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlQEBRRUFBQEFFQktBRUJWUHJvdk9jdGV0U3RyaW5nQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlOjpQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZSh1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZUBAUUVBQUBBRUJLUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGU6OlByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlKGNsYXNzIFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlOjpQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGVAQFFFQUFAQUVCS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlOjpQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsY2xhc3MgUHJvdk9jdGV0U3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZUBAUUVBQUBBRUJLQUVCVlByb3ZPY3RldFN0cmluZ0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGU6OlByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZSh1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZUBAUUVBQUBBRUJLUEVCRUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlOjpQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlQEBRRUFBQEFFQktQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGU6OlByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZShjbGFzcyBQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZTo6UHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZSh1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGVAQFFFQUFAQUVCS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZTo6UHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZSh1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBQcm92T3BhcXVlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGVAQFFFQUFAQUVCS0FFQlZQcm92T3BhcXVlQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGU6OlByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGVAQFFFQUFAQUVCS1BFQkVLQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92Rml4ZWRMZW5ndGhPcGFxdWVUeXBlOjpQcm92Rml4ZWRMZW5ndGhPcGFxdWVUeXBlKHVuc2lnbmVkIGxvbmcgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGVAQFFFQUFAQUVCS1BFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGU6OlByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGUoY2xhc3MgUHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92Rml4ZWRMZW5ndGhPcGFxdWVUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlOjpQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGVAQFFFQUFAQUVCS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlOjpQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsY2xhc3MgUHJvdk9jdGV0U3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZUBAUUVBQUBBRUJLQUVCVlByb3ZPY3RldFN0cmluZ0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGU6OlByb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZSh1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGVAQFFFQUFAQUVCS1BFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZTo6UHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlKGNsYXNzIFByb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92Rml4ZWRUeXBlOjpQcm92Rml4ZWRUeXBlKGNsYXNzIFByb3ZGaXhlZFR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkZpeGVkVHlwZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZGaXhlZFR5cGU6OlByb3ZGaXhlZFR5cGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFByb3ZGaXhlZFR5cGVAQFFFQUFAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkdhdWdlOjpQcm92R2F1Z2UoY2xhc3MgUHJvdkdhdWdlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZHYXVnZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZHYXVnZTo6UHJvdkdhdWdlKGxvbmcpIF9fcHRyNjQNCis/PzBQcm92R2F1Z2VAQFFFQUFASkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkdhdWdlVHlwZTo6UHJvdkdhdWdlVHlwZShjbGFzcyBQcm92R2F1Z2VUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZHYXVnZVR5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92R2F1Z2VUeXBlOjpQcm92R2F1Z2VUeXBlKGNsYXNzIFByb3ZHYXVnZSBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkdhdWdlVHlwZUBAUUVBQUBBRUJWUHJvdkdhdWdlQEBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92R2F1Z2VUeXBlOjpQcm92R2F1Z2VUeXBlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkdhdWdlVHlwZUBAUUVBQUBLUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkdhdWdlVHlwZTo6UHJvdkdhdWdlVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkdhdWdlVHlwZUBAUUVBQUBQRUJHMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkdhdWdlVHlwZTo6UHJvdkdhdWdlVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92R2F1Z2VUeXBlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZJUFhBZGRyZXNzVHlwZTo6UHJvdklQWEFkZHJlc3NUeXBlKGNsYXNzIFByb3ZJUFhBZGRyZXNzVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92SVBYQWRkcmVzc1R5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92SVBYQWRkcmVzc1R5cGU6OlByb3ZJUFhBZGRyZXNzVHlwZShjbGFzcyBQcm92T2N0ZXRTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdklQWEFkZHJlc3NUeXBlQEBRRUFBQEFFQlZQcm92T2N0ZXRTdHJpbmdAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdklQWEFkZHJlc3NUeXBlOjpQcm92SVBYQWRkcmVzc1R5cGUodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92SVBYQWRkcmVzc1R5cGVAQFFFQUFAUEVCRUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdklQWEFkZHJlc3NUeXBlOjpQcm92SVBYQWRkcmVzc1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdklQWEFkZHJlc3NUeXBlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZJUFhBZGRyZXNzVHlwZTo6UHJvdklQWEFkZHJlc3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBQcm92SVBYQWRkcmVzc1R5cGVAQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBQcm92SW5zdGFuY2VUeXBlOjpQcm92SW5zdGFuY2VUeXBlKGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkluc3RhbmNlVHlwZUBASUVBQUBBRUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIFByb3ZJbnN0YW5jZVR5cGU6OlByb3ZJbnN0YW5jZVR5cGUoaW50LGludCkgX19wdHI2NA0KKz8/MFByb3ZJbnN0YW5jZVR5cGVAQElFQUFASEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZJbnRlZ2VyOjpQcm92SW50ZWdlcihjbGFzcyBQcm92SW50ZWdlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92SW50ZWdlckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZJbnRlZ2VyOjpQcm92SW50ZWdlcihsb25nKSBfX3B0cjY0DQorPz8wUHJvdkludGVnZXJAQFFFQUFASkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkludGVnZXJUeXBlOjpQcm92SW50ZWdlclR5cGUoY2xhc3MgUHJvdkludGVnZXJUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZJbnRlZ2VyVHlwZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZJbnRlZ2VyVHlwZTo6UHJvdkludGVnZXJUeXBlKGNsYXNzIFByb3ZJbnRlZ2VyIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92SW50ZWdlclR5cGVAQFFFQUFAQUVCVlByb3ZJbnRlZ2VyQEBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92SW50ZWdlclR5cGU6OlByb3ZJbnRlZ2VyVHlwZShsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZJbnRlZ2VyVHlwZUBAUUVBQUBKUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkludGVnZXJUeXBlOjpQcm92SW50ZWdlclR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZJbnRlZ2VyVHlwZUBAUUVBQUBQRUJHMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkludGVnZXJUeXBlOjpQcm92SW50ZWdlclR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdkludGVnZXJUeXBlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZJcEFkZHJlc3M6OlByb3ZJcEFkZHJlc3MoY2xhc3MgUHJvdklwQWRkcmVzcyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92SXBBZGRyZXNzQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdklwQWRkcmVzczo6UHJvdklwQWRkcmVzcyh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wUHJvdklwQWRkcmVzc0BAUUVBQUBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92SXBBZGRyZXNzOjpQcm92SXBBZGRyZXNzKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdklwQWRkcmVzc0BAUUVBQUBQRUJEQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92SXBBZGRyZXNzVHlwZTo6UHJvdklwQWRkcmVzc1R5cGUoY2xhc3MgUHJvdklwQWRkcmVzc1R5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdklwQWRkcmVzc1R5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92SXBBZGRyZXNzVHlwZTo6UHJvdklwQWRkcmVzc1R5cGUoY2xhc3MgUHJvdklwQWRkcmVzcyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92SXBBZGRyZXNzVHlwZUBAUUVBQUBBRUJWUHJvdklwQWRkcmVzc0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92SXBBZGRyZXNzVHlwZTo6UHJvdklwQWRkcmVzc1R5cGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFByb3ZJcEFkZHJlc3NUeXBlQEBRRUFBQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZJcEFkZHJlc3NUeXBlOjpQcm92SXBBZGRyZXNzVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92SXBBZGRyZXNzVHlwZUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92SXBBZGRyZXNzVHlwZTo6UHJvdklwQWRkcmVzc1R5cGUodm9pZCkgX19wdHI2NA0KKz8/MFByb3ZJcEFkZHJlc3NUeXBlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdkxleGljb246OlByb3ZMZXhpY29uKHZvaWQpIF9fcHRyNjQNCis/PzBQcm92TGV4aWNvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZNYWNBZGRyZXNzVHlwZTo6UHJvdk1hY0FkZHJlc3NUeXBlKGNsYXNzIFByb3ZNYWNBZGRyZXNzVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92TWFjQWRkcmVzc1R5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92TWFjQWRkcmVzc1R5cGU6OlByb3ZNYWNBZGRyZXNzVHlwZShjbGFzcyBQcm92T2N0ZXRTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdk1hY0FkZHJlc3NUeXBlQEBRRUFBQEFFQlZQcm92T2N0ZXRTdHJpbmdAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdk1hY0FkZHJlc3NUeXBlOjpQcm92TWFjQWRkcmVzc1R5cGUodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92TWFjQWRkcmVzc1R5cGVAQFFFQUFAUEVCRUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdk1hY0FkZHJlc3NUeXBlOjpQcm92TWFjQWRkcmVzc1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdk1hY0FkZHJlc3NUeXBlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZNYWNBZGRyZXNzVHlwZTo6UHJvdk1hY0FkZHJlc3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBQcm92TWFjQWRkcmVzc1R5cGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92TmVnYXRpdmVSYW5nZVR5cGU6OlByb3ZOZWdhdGl2ZVJhbmdlVHlwZShjbGFzcyBQcm92TmVnYXRpdmVSYW5nZVR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlOjpQcm92TmVnYXRpdmVSYW5nZVR5cGUobG9uZyxsb25nKSBfX3B0cjY0DQorPz8wUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlQEBRRUFBQEpKQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92TmVnYXRpdmVSYW5nZVR5cGU6OlByb3ZOZWdhdGl2ZVJhbmdlVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8wUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdk5ldHdvcmtBZGRyZXNzVHlwZTo6UHJvdk5ldHdvcmtBZGRyZXNzVHlwZShjbGFzcyBQcm92TmV0d29ya0FkZHJlc3NUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZOZXR3b3JrQWRkcmVzc1R5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92TmV0d29ya0FkZHJlc3NUeXBlOjpQcm92TmV0d29ya0FkZHJlc3NUeXBlKGNsYXNzIFByb3ZJcEFkZHJlc3MgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdk5ldHdvcmtBZGRyZXNzVHlwZUBAUUVBQUBBRUJWUHJvdklwQWRkcmVzc0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92TmV0d29ya0FkZHJlc3NUeXBlOjpQcm92TmV0d29ya0FkZHJlc3NUeXBlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBQcm92TmV0d29ya0FkZHJlc3NUeXBlQEBRRUFBQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZOZXR3b3JrQWRkcmVzc1R5cGU6OlByb3ZOZXR3b3JrQWRkcmVzc1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdk5ldHdvcmtBZGRyZXNzVHlwZUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92TmV0d29ya0FkZHJlc3NUeXBlOjpQcm92TmV0d29ya0FkZHJlc3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBQcm92TmV0d29ya0FkZHJlc3NUeXBlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdk51bGw6OlByb3ZOdWxsKHZvaWQpIF9fcHRyNjQNCis/PzBQcm92TnVsbEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZOdWxsVHlwZTo6UHJvdk51bGxUeXBlKGNsYXNzIFByb3ZOdWxsVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92TnVsbFR5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92TnVsbFR5cGU6OlByb3ZOdWxsVHlwZShjbGFzcyBQcm92TnVsbCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92TnVsbFR5cGVAQFFFQUFAQUVCVlByb3ZOdWxsQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZOdWxsVHlwZTo6UHJvdk51bGxUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBQcm92TnVsbFR5cGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92T1NJQWRkcmVzc1R5cGU6OlByb3ZPU0lBZGRyZXNzVHlwZShjbGFzcyBQcm92T1NJQWRkcmVzc1R5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdk9TSUFkZHJlc3NUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdk9TSUFkZHJlc3NUeXBlOjpQcm92T1NJQWRkcmVzc1R5cGUoY2xhc3MgUHJvdk9jdGV0U3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZPU0lBZGRyZXNzVHlwZUBAUUVBQUBBRUJWUHJvdk9jdGV0U3RyaW5nQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZPU0lBZGRyZXNzVHlwZTo6UHJvdk9TSUFkZHJlc3NUeXBlKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBQcm92T1NJQWRkcmVzc1R5cGVAQFFFQUFAUEVCRUtAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZPU0lBZGRyZXNzVHlwZTo6UHJvdk9TSUFkZHJlc3NUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZPU0lBZGRyZXNzVHlwZUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92T1NJQWRkcmVzc1R5cGU6OlByb3ZPU0lBZGRyZXNzVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8wUHJvdk9TSUFkZHJlc3NUeXBlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXI6OlByb3ZPYmplY3RJZGVudGlmaWVyKGNsYXNzIFByb3ZPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZPYmplY3RJZGVudGlmaWVyQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXI6OlByb3ZPYmplY3RJZGVudGlmaWVyKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdk9iamVjdElkZW50aWZpZXJAQFFFQUFAUEVCREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXI6OlByb3ZPYmplY3RJZGVudGlmaWVyKHVuc2lnbmVkIGxvbmcgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBQcm92T2JqZWN0SWRlbnRpZmllckBAUUVBQUBQRUJLS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXJUeXBlOjpQcm92T2JqZWN0SWRlbnRpZmllclR5cGUoY2xhc3MgUHJvdk9iamVjdElkZW50aWZpZXJUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZPYmplY3RJZGVudGlmaWVyVHlwZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZPYmplY3RJZGVudGlmaWVyVHlwZTo6UHJvdk9iamVjdElkZW50aWZpZXJUeXBlKGNsYXNzIFByb3ZPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZPYmplY3RJZGVudGlmaWVyVHlwZUBAUUVBQUBBRUJWUHJvdk9iamVjdElkZW50aWZpZXJAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXJUeXBlOjpQcm92T2JqZWN0SWRlbnRpZmllclR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdk9iamVjdElkZW50aWZpZXJUeXBlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZPYmplY3RJZGVudGlmaWVyVHlwZTo6UHJvdk9iamVjdElkZW50aWZpZXJUeXBlKHVuc2lnbmVkIGxvbmcgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBQcm92T2JqZWN0SWRlbnRpZmllclR5cGVAQFFFQUFAUEVCS0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZPYmplY3RJZGVudGlmaWVyVHlwZTo6UHJvdk9iamVjdElkZW50aWZpZXJUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBQcm92T2JqZWN0SWRlbnRpZmllclR5cGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92T2N0ZXRTdHJpbmc6OlByb3ZPY3RldFN0cmluZyhjbGFzcyBQcm92T2N0ZXRTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdk9jdGV0U3RyaW5nQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdk9jdGV0U3RyaW5nOjpQcm92T2N0ZXRTdHJpbmcodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFByb3ZPY3RldFN0cmluZ0BAUUVBQUBQRUJFS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdk9jdGV0U3RyaW5nVHlwZTo6UHJvdk9jdGV0U3RyaW5nVHlwZShjbGFzcyBQcm92T2N0ZXRTdHJpbmdUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZPY3RldFN0cmluZ1R5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92T2N0ZXRTdHJpbmdUeXBlOjpQcm92T2N0ZXRTdHJpbmdUeXBlKGNsYXNzIFByb3ZPY3RldFN0cmluZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdk9jdGV0U3RyaW5nVHlwZUBAUUVBQUBBRUJWUHJvdk9jdGV0U3RyaW5nQEBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92T2N0ZXRTdHJpbmdUeXBlOjpQcm92T2N0ZXRTdHJpbmdUeXBlKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdk9jdGV0U3RyaW5nVHlwZUBAUUVBQUBQRUJFS1BFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZPY3RldFN0cmluZ1R5cGU6OlByb3ZPY3RldFN0cmluZ1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZPY3RldFN0cmluZ1R5cGVAQFFFQUFAUEVCRzBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZPY3RldFN0cmluZ1R5cGU6OlByb3ZPY3RldFN0cmluZ1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdk9jdGV0U3RyaW5nVHlwZUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92T3BhcXVlOjpQcm92T3BhcXVlKGNsYXNzIFByb3ZPcGFxdWUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdk9wYXF1ZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZPcGFxdWU6OlByb3ZPcGFxdWUodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFByb3ZPcGFxdWVAQFFFQUFAUEVCRUtAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZPcGFxdWVUeXBlOjpQcm92T3BhcXVlVHlwZShjbGFzcyBQcm92T3BhcXVlVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92T3BhcXVlVHlwZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZPcGFxdWVUeXBlOjpQcm92T3BhcXVlVHlwZShjbGFzcyBQcm92T3BhcXVlIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92T3BhcXVlVHlwZUBAUUVBQUBBRUJWUHJvdk9wYXF1ZUBAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdk9wYXF1ZVR5cGU6OlByb3ZPcGFxdWVUeXBlKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdk9wYXF1ZVR5cGVAQFFFQUFAUEVCRUtQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92T3BhcXVlVHlwZTo6UHJvdk9wYXF1ZVR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZPcGFxdWVUeXBlQEBRRUFBQFBFQkcwQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92T3BhcXVlVHlwZTo6UHJvdk9wYXF1ZVR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdk9wYXF1ZVR5cGVAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdlBoeXNBZGRyZXNzVHlwZTo6UHJvdlBoeXNBZGRyZXNzVHlwZShjbGFzcyBQcm92UGh5c0FkZHJlc3NUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZQaHlzQWRkcmVzc1R5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92UGh5c0FkZHJlc3NUeXBlOjpQcm92UGh5c0FkZHJlc3NUeXBlKGNsYXNzIFByb3ZPY3RldFN0cmluZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdlBoeXNBZGRyZXNzVHlwZUBAUUVBQUBBRUJWUHJvdk9jdGV0U3RyaW5nQEBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92UGh5c0FkZHJlc3NUeXBlOjpQcm92UGh5c0FkZHJlc3NUeXBlKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdlBoeXNBZGRyZXNzVHlwZUBAUUVBQUBQRUJFS1BFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZQaHlzQWRkcmVzc1R5cGU6OlByb3ZQaHlzQWRkcmVzc1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZQaHlzQWRkcmVzc1R5cGVAQFFFQUFAUEVCRzBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZQaHlzQWRkcmVzc1R5cGU6OlByb3ZQaHlzQWRkcmVzc1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdlBoeXNBZGRyZXNzVHlwZUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92UG9zaXRpdmVSYW5nZVR5cGU6OlByb3ZQb3NpdGl2ZVJhbmdlVHlwZShjbGFzcyBQcm92UG9zaXRpdmVSYW5nZVR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdlBvc2l0aXZlUmFuZ2VUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdlBvc2l0aXZlUmFuZ2VUeXBlOjpQcm92UG9zaXRpdmVSYW5nZVR5cGUodW5zaWduZWQgbG9uZyxsb25nKSBfX3B0cjY0DQorPz8wUHJvdlBvc2l0aXZlUmFuZ2VUeXBlQEBRRUFBQEtKQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92UG9zaXRpdmVSYW5nZVR5cGU6OlByb3ZQb3NpdGl2ZVJhbmdlVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8wUHJvdlBvc2l0aXZlUmFuZ2VUeXBlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZTo6UHJvdlBvc2l0aXZlUmFuZ2VkVHlwZShjbGFzcyBQcm92UG9zaXRpdmVSYW5nZWRUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92UG9zaXRpdmVSYW5nZWRUeXBlOjpQcm92UG9zaXRpdmVSYW5nZWRUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdlJvd1N0YXR1c1R5cGU6OlByb3ZSb3dTdGF0dXNUeXBlKGxvbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdlJvd1N0YXR1c1R5cGVAQFFFQUFAQUVCSkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdlJvd1N0YXR1c1R5cGU6OlByb3ZSb3dTdGF0dXNUeXBlKGNsYXNzIFByb3ZSb3dTdGF0dXNUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZSb3dTdGF0dXNUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdlJvd1N0YXR1c1R5cGU6OlByb3ZSb3dTdGF0dXNUeXBlKGNsYXNzIFByb3ZJbnRlZ2VyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZSb3dTdGF0dXNUeXBlQEBRRUFBQEFFQlZQcm92SW50ZWdlckBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92Um93U3RhdHVzVHlwZTo6UHJvdlJvd1N0YXR1c1R5cGUoZW51bSBQcm92Um93U3RhdHVzVHlwZTo6UHJvdlJvd1N0YXR1c0VudW0gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdlJvd1N0YXR1c1R5cGVAQFFFQUFAQUVCVzRQcm92Um93U3RhdHVzRW51bUAwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdlJvd1N0YXR1c1R5cGU6OlByb3ZSb3dTdGF0dXNUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZSb3dTdGF0dXNUeXBlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZSb3dTdGF0dXNUeXBlOjpQcm92Um93U3RhdHVzVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8wUHJvdlJvd1N0YXR1c1R5cGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92VGltZVRpY2tzOjpQcm92VGltZVRpY2tzKGNsYXNzIFByb3ZUaW1lVGlja3MgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdlRpbWVUaWNrc0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZUaW1lVGlja3M6OlByb3ZUaW1lVGlja3ModW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFByb3ZUaW1lVGlja3NAQFFFQUFAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdlRpbWVUaWNrc1R5cGU6OlByb3ZUaW1lVGlja3NUeXBlKGNsYXNzIFByb3ZUaW1lVGlja3NUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFByb3ZUaW1lVGlja3NUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdlRpbWVUaWNrc1R5cGU6OlByb3ZUaW1lVGlja3NUeXBlKGNsYXNzIFByb3ZUaW1lVGlja3MgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdlRpbWVUaWNrc1R5cGVAQFFFQUFAQUVCVlByb3ZUaW1lVGlja3NAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdlRpbWVUaWNrc1R5cGU6OlByb3ZUaW1lVGlja3NUeXBlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBQcm92VGltZVRpY2tzVHlwZUBAUUVBQUBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92VGltZVRpY2tzVHlwZTo6UHJvdlRpbWVUaWNrc1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdlRpbWVUaWNrc1R5cGVAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdlRpbWVUaWNrc1R5cGU6OlByb3ZUaW1lVGlja3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBQcm92VGltZVRpY2tzVHlwZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZVRFBBZGRyZXNzVHlwZTo6UHJvdlVEUEFkZHJlc3NUeXBlKGNsYXNzIFByb3ZVRFBBZGRyZXNzVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92VURQQWRkcmVzc1R5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92VURQQWRkcmVzc1R5cGU6OlByb3ZVRFBBZGRyZXNzVHlwZShjbGFzcyBQcm92T2N0ZXRTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdlVEUEFkZHJlc3NUeXBlQEBRRUFBQEFFQlZQcm92T2N0ZXRTdHJpbmdAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdlVEUEFkZHJlc3NUeXBlOjpQcm92VURQQWRkcmVzc1R5cGUodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBQcm92VURQQWRkcmVzc1R5cGVAQFFFQUFAUEVCRUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUHJvdlVEUEFkZHJlc3NUeXBlOjpQcm92VURQQWRkcmVzc1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdlVEUEFkZHJlc3NUeXBlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFByb3ZVRFBBZGRyZXNzVHlwZTo6UHJvdlVEUEFkZHJlc3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBQcm92VURQQWRkcmVzc1R5cGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92VUludGVnZXIzMjo6UHJvdlVJbnRlZ2VyMzIoY2xhc3MgUHJvdlVJbnRlZ2VyMzIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdlVJbnRlZ2VyMzJAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92VUludGVnZXIzMjo6UHJvdlVJbnRlZ2VyMzIobG9uZykgX19wdHI2NA0KKz8/MFByb3ZVSW50ZWdlcjMyQEBRRUFBQEpAWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBQcm92VmFsdWU6OlByb3ZWYWx1ZShjbGFzcyBQcm92VmFsdWUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUHJvdlZhbHVlQEBBRUFBQEFFQlYwQEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgUHJvdlZhbHVlOjpQcm92VmFsdWUodm9pZCkgX19wdHI2NA0KKz8/MFByb3ZWYWx1ZUBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpRdWVyeVByZXByb2Nlc3NvcihjbGFzcyBRdWVyeVByZXByb2Nlc3NvciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBRdWVyeVByZXByb2Nlc3NvckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpRdWVyeVByZXByb2Nlc3Nvcih2b2lkKSBfX3B0cjY0DQorPz8wUXVlcnlQcmVwcm9jZXNzb3JAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBXbWlBbmROb2RlOjpXbWlBbmROb2RlKGNsYXNzIFdtaUFuZE5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pQW5kTm9kZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdtaUFuZE5vZGU6OldtaUFuZE5vZGUoY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlBbmROb2RlQEBRRUFBQFBFQVZXbWlUcmVlTm9kZUBAMDBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdtaU5vdE5vZGU6OldtaU5vdE5vZGUoY2xhc3MgV21pTm90Tm9kZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlOb3ROb2RlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pTm90Tm9kZTo6V21pTm90Tm9kZShjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pTm90Tm9kZUBAUUVBQUBQRUFWV21pVHJlZU5vZGVAQDBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdtaU51bGxOb2RlOjpXbWlOdWxsTm9kZShjbGFzcyBXbWlOdWxsTm9kZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlOdWxsTm9kZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdtaU51bGxOb2RlOjpXbWlOdWxsTm9kZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlOdWxsTm9kZUBAUUVBQUBQRUFHS1BFQVZXbWlUcmVlTm9kZUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBXbWlOdWxsUmFuZ2VOb2RlOjpXbWlOdWxsUmFuZ2VOb2RlKGNsYXNzIFdtaU51bGxSYW5nZU5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pTnVsbFJhbmdlTm9kZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdtaU51bGxSYW5nZU5vZGU6OldtaU51bGxSYW5nZU5vZGUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFdtaU51bGxSYW5nZU5vZGVAQFFFQUFAUEVBR0tQRUFWV21pVHJlZU5vZGVAQDFAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdtaU9wZXJhdG9yRXF1YWxOb2RlOjpXbWlPcGVyYXRvckVxdWFsTm9kZShjbGFzcyBXbWlPcGVyYXRvckVxdWFsTm9kZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlPcGVyYXRvckVxdWFsTm9kZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdtaU9wZXJhdG9yRXF1YWxOb2RlOjpXbWlPcGVyYXRvckVxdWFsTm9kZShjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pT3BlcmF0b3JFcXVhbE5vZGVAQFFFQUFAUEVBVldtaVRyZWVOb2RlQEAwQFoNCis7IHB1YmxpYzogX19jZGVjbCBXbWlPcGVyYXRvckVxdWFsT3JHcmVhdGVyTm9kZTo6V21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGUoY2xhc3MgV21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBXbWlPcGVyYXRvckVxdWFsT3JHcmVhdGVyTm9kZTo6V21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGUoY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFdtaU9wZXJhdG9yRXF1YWxPckdyZWF0ZXJOb2RlQEBRRUFBQFBFQVZXbWlUcmVlTm9kZUBAMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pT3BlcmF0b3JFcXVhbE9yTGVzc05vZGU6OldtaU9wZXJhdG9yRXF1YWxPckxlc3NOb2RlKGNsYXNzIFdtaU9wZXJhdG9yRXF1YWxPckxlc3NOb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFdtaU9wZXJhdG9yRXF1YWxPckxlc3NOb2RlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pT3BlcmF0b3JFcXVhbE9yTGVzc05vZGU6OldtaU9wZXJhdG9yRXF1YWxPckxlc3NOb2RlKGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlPcGVyYXRvckVxdWFsT3JMZXNzTm9kZUBAUUVBQUBQRUFWV21pVHJlZU5vZGVAQDBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdtaU9wZXJhdG9yR3JlYXRlck5vZGU6OldtaU9wZXJhdG9yR3JlYXRlck5vZGUoY2xhc3MgV21pT3BlcmF0b3JHcmVhdGVyTm9kZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlPcGVyYXRvckdyZWF0ZXJOb2RlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pT3BlcmF0b3JHcmVhdGVyTm9kZTo6V21pT3BlcmF0b3JHcmVhdGVyTm9kZShjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pT3BlcmF0b3JHcmVhdGVyTm9kZUBAUUVBQUBQRUFWV21pVHJlZU5vZGVAQDBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdtaU9wZXJhdG9ySXNBTm9kZTo6V21pT3BlcmF0b3JJc0FOb2RlKGNsYXNzIFdtaU9wZXJhdG9ySXNBTm9kZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlPcGVyYXRvcklzQU5vZGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBXbWlPcGVyYXRvcklzQU5vZGU6OldtaU9wZXJhdG9ySXNBTm9kZShjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pT3BlcmF0b3JJc0FOb2RlQEBRRUFBQFBFQVZXbWlUcmVlTm9kZUBAMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pT3BlcmF0b3JMZXNzTm9kZTo6V21pT3BlcmF0b3JMZXNzTm9kZShjbGFzcyBXbWlPcGVyYXRvckxlc3NOb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFdtaU9wZXJhdG9yTGVzc05vZGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBXbWlPcGVyYXRvckxlc3NOb2RlOjpXbWlPcGVyYXRvckxlc3NOb2RlKGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlPcGVyYXRvckxlc3NOb2RlQEBRRUFBQFBFQVZXbWlUcmVlTm9kZUBAMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pT3BlcmF0b3JMaWtlTm9kZTo6V21pT3BlcmF0b3JMaWtlTm9kZShjbGFzcyBXbWlPcGVyYXRvckxpa2VOb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFdtaU9wZXJhdG9yTGlrZU5vZGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBXbWlPcGVyYXRvckxpa2VOb2RlOjpXbWlPcGVyYXRvckxpa2VOb2RlKGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlPcGVyYXRvckxpa2VOb2RlQEBRRUFBQFBFQVZXbWlUcmVlTm9kZUBAMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pT3BlcmF0b3JOb2RlOjpXbWlPcGVyYXRvck5vZGUoY2xhc3MgV21pT3BlcmF0b3JOb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFdtaU9wZXJhdG9yTm9kZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdtaU9wZXJhdG9yTm9kZTo6V21pT3BlcmF0b3JOb2RlKHVuc2lnbmVkIGxvbmcsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFdtaU9wZXJhdG9yTm9kZUBAUUVBQUBLUEVBVldtaVRyZWVOb2RlQEAwQFoNCis7IHB1YmxpYzogX19jZGVjbCBXbWlPcGVyYXRvck5vdEVxdWFsTm9kZTo6V21pT3BlcmF0b3JOb3RFcXVhbE5vZGUoY2xhc3MgV21pT3BlcmF0b3JOb3RFcXVhbE5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pT3BlcmF0b3JOb3RFcXVhbE5vZGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBXbWlPcGVyYXRvck5vdEVxdWFsTm9kZTo6V21pT3BlcmF0b3JOb3RFcXVhbE5vZGUoY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFdtaU9wZXJhdG9yTm90RXF1YWxOb2RlQEBRRUFBQFBFQVZXbWlUcmVlTm9kZUBAMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pT3BlcmF0b3JOb3RJc0FOb2RlOjpXbWlPcGVyYXRvck5vdElzQU5vZGUoY2xhc3MgV21pT3BlcmF0b3JOb3RJc0FOb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFdtaU9wZXJhdG9yTm90SXNBTm9kZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdtaU9wZXJhdG9yTm90SXNBTm9kZTo6V21pT3BlcmF0b3JOb3RJc0FOb2RlKGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlPcGVyYXRvck5vdElzQU5vZGVAQFFFQUFAUEVBVldtaVRyZWVOb2RlQEAwQFoNCis7IHB1YmxpYzogX19jZGVjbCBXbWlPcGVyYXRvck5vdExpa2VOb2RlOjpXbWlPcGVyYXRvck5vdExpa2VOb2RlKGNsYXNzIFdtaU9wZXJhdG9yTm90TGlrZU5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pT3BlcmF0b3JOb3RMaWtlTm9kZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdtaU9wZXJhdG9yTm90TGlrZU5vZGU6OldtaU9wZXJhdG9yTm90TGlrZU5vZGUoY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFdtaU9wZXJhdG9yTm90TGlrZU5vZGVAQFFFQUFAUEVBVldtaVRyZWVOb2RlQEAwQFoNCis7IHB1YmxpYzogX19jZGVjbCBXbWlPck5vZGU6OldtaU9yTm9kZShjbGFzcyBXbWlPck5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pT3JOb2RlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pT3JOb2RlOjpXbWlPck5vZGUoY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlPck5vZGVAQFFFQUFAUEVBVldtaVRyZWVOb2RlQEAwMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pUmFuZ2VOb2RlOjpXbWlSYW5nZU5vZGUoY2xhc3MgV21pUmFuZ2VOb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFdtaVJhbmdlTm9kZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdtaVJhbmdlTm9kZTo6V21pUmFuZ2VOb2RlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsaW50LGludCxpbnQsaW50LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlSYW5nZU5vZGVAQFFFQUFAS1BFQUdLSEhISFBFQVZXbWlUcmVlTm9kZUBAMUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pU2lnbmVkSW50ZWdlck5vZGU6OldtaVNpZ25lZEludGVnZXJOb2RlKGNsYXNzIFdtaVNpZ25lZEludGVnZXJOb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFdtaVNpZ25lZEludGVnZXJOb2RlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pU2lnbmVkSW50ZWdlck5vZGU6OldtaVNpZ25lZEludGVnZXJOb2RlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxsb25nLHVuc2lnbmVkIGxvbmcsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pU2lnbmVkSW50ZWdlck5vZGVAQFFFQUFAUEVBR0pLUEVBVldtaVRyZWVOb2RlQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdtaVNpZ25lZEludGVnZXJSYW5nZU5vZGU6OldtaVNpZ25lZEludGVnZXJSYW5nZU5vZGUoY2xhc3MgV21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZTo6V21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxpbnQsaW50LGludCxpbnQsbG9uZyxsb25nLGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBRRUFBQFBFQUdLSEhISEpKUEVBVldtaVRyZWVOb2RlQEAxQFoNCis7IHB1YmxpYzogX19jZGVjbCBXbWlTdHJpbmdOb2RlOjpXbWlTdHJpbmdOb2RlKGNsYXNzIFdtaVN0cmluZ05vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pU3RyaW5nTm9kZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdtaVN0cmluZ05vZGU6OldtaVN0cmluZ05vZGUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxlbnVtIFdtaVZhbHVlTm9kZTo6V21pVmFsdWVGdW5jdGlvbixlbnVtIFdtaVZhbHVlTm9kZTo6V21pVmFsdWVGdW5jdGlvbix1bnNpZ25lZCBsb25nLGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFdtaVN0cmluZ05vZGVAQFFFQUFAUEVBRzBXNFdtaVZhbHVlRnVuY3Rpb25AV21pVmFsdWVOb2RlQEAxS1BFQVZXbWlUcmVlTm9kZUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBXbWlTdHJpbmdSYW5nZU5vZGU6OldtaVN0cmluZ1JhbmdlTm9kZShjbGFzcyBXbWlTdHJpbmdSYW5nZU5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pU3RyaW5nUmFuZ2VOb2RlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pU3RyaW5nUmFuZ2VOb2RlOjpXbWlTdHJpbmdSYW5nZU5vZGUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsaW50LGludCxpbnQsaW50LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFdtaVN0cmluZ1JhbmdlTm9kZUBAUUVBQUBQRUFHS0hISEgwMFBFQVZXbWlUcmVlTm9kZUBAMUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pVHJlZU5vZGU6OldtaVRyZWVOb2RlKGNsYXNzIFdtaVRyZWVOb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFdtaVRyZWVOb2RlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pVHJlZU5vZGU6OldtaVRyZWVOb2RlKHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlUcmVlTm9kZUBAUUVBQUBLUEVBWFBFQVYwQDExQFoNCis7IHB1YmxpYzogX19jZGVjbCBXbWlUcmVlTm9kZTo6V21pVHJlZU5vZGUoY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pVHJlZU5vZGVAQFFFQUFAUEVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBXbWlUcmVlTm9kZUl0ZXJhdG9yOjpXbWlUcmVlTm9kZUl0ZXJhdG9yKGNsYXNzIFdtaVRyZWVOb2RlSXRlcmF0b3IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pVHJlZU5vZGVJdGVyYXRvckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdtaVRyZWVOb2RlSXRlcmF0b3I6OldtaVRyZWVOb2RlSXRlcmF0b3IoY2xhc3MgV21pVHJlZU5vZGVJdGVyYXRvciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlUcmVlTm9kZUl0ZXJhdG9yQEBRRUFBQFBFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pVHJlZU5vZGVJdGVyYXRvcjo6V21pVHJlZU5vZGVJdGVyYXRvcihjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlUcmVlTm9kZUl0ZXJhdG9yQEBRRUFBQFBFQVZXbWlUcmVlTm9kZUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBXbWlVbnNpZ25lZEludGVnZXJOb2RlOjpXbWlVbnNpZ25lZEludGVnZXJOb2RlKGNsYXNzIFdtaVVuc2lnbmVkSW50ZWdlck5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pVW5zaWduZWRJbnRlZ2VyTm9kZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdtaVVuc2lnbmVkSW50ZWdlck5vZGU6OldtaVVuc2lnbmVkSW50ZWdlck5vZGUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlVbnNpZ25lZEludGVnZXJOb2RlQEBRRUFBQFBFQUdLS1BFQVZXbWlUcmVlTm9kZUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGU6OldtaVVuc2lnbmVkSW50ZWdlclJhbmdlTm9kZShjbGFzcyBXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlOjpXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsaW50LGludCxpbnQsaW50LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBRRUFBQFBFQUdLSEhISEtLUEVBVldtaVRyZWVOb2RlQEAxQFoNCis7IHB1YmxpYzogX19jZGVjbCBXbWlWYWx1ZU5vZGU6OldtaVZhbHVlTm9kZShjbGFzcyBXbWlWYWx1ZU5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV21pVmFsdWVOb2RlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV21pVmFsdWVOb2RlOjpXbWlWYWx1ZU5vZGUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsZW51bSBXbWlWYWx1ZU5vZGU6OldtaVZhbHVlRnVuY3Rpb24sZW51bSBXbWlWYWx1ZU5vZGU6OldtaVZhbHVlRnVuY3Rpb24sdW5zaWduZWQgbG9uZyxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXbWlWYWx1ZU5vZGVAQFFFQUFAS1BFQUdXNFdtaVZhbHVlRnVuY3Rpb25AMEAxS1BFQVZXbWlUcmVlTm9kZUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQlN0cmluZzo6fkNCU3RyaW5nKHZvaWQpIF9fcHRyNjQNCis/PzFDQlN0cmluZ0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENvbmp1bmN0aW9uczo6fkNvbmp1bmN0aW9ucyh2b2lkKSBfX3B0cjY0DQorPz8xQ29uanVuY3Rpb25zQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRGlzanVuY3Rpb25zOjp+RGlzanVuY3Rpb25zKHZvaWQpIF9fcHRyNjQNCis/PzFEaXNqdW5jdGlvbnNAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFBhcnRpdGlvblNldDo6flBhcnRpdGlvblNldCh2b2lkKSBfX3B0cjY0DQorPz8xUGFydGl0aW9uU2V0QEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQcm92QW5hbHlzZXI6On5Qcm92QW5hbHlzZXIodm9pZCkgX19wdHI2NA0KKz8/MVByb3ZBbmFseXNlckBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUHJvdkJpdFN0cmluZ1R5cGU6On5Qcm92Qml0U3RyaW5nVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdkJpdFN0cmluZ1R5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFByb3ZDb3VudGVyNjQ6On5Qcm92Q291bnRlcjY0KHZvaWQpIF9fcHRyNjQNCis/PzFQcm92Q291bnRlcjY0QEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQcm92Q291bnRlcjY0VHlwZTo6flByb3ZDb3VudGVyNjRUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFQcm92Q291bnRlcjY0VHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUHJvdkNvdW50ZXI6On5Qcm92Q291bnRlcih2b2lkKSBfX3B0cjY0DQorPz8xUHJvdkNvdW50ZXJAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFByb3ZDb3VudGVyVHlwZTo6flByb3ZDb3VudGVyVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdkNvdW50ZXJUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQcm92RGF0ZVRpbWVUeXBlOjp+UHJvdkRhdGVUaW1lVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdkRhdGVUaW1lVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUHJvdkRpc3BsYXlTdHJpbmdUeXBlOjp+UHJvdkRpc3BsYXlTdHJpbmdUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFQcm92RGlzcGxheVN0cmluZ1R5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFByb3ZFbnVtZXJhdGVkVHlwZTo6flByb3ZFbnVtZXJhdGVkVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdkVudW1lcmF0ZWRUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQcm92RXZlbnRPYmplY3Q6On5Qcm92RXZlbnRPYmplY3Qodm9pZCkgX19wdHI2NA0KKz8/MVByb3ZFdmVudE9iamVjdEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUHJvdkZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGU6On5Qcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdkZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZTo6flByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQcm92Rml4ZWRMZW5ndGhPcGFxdWVUeXBlOjp+UHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlOjp+UHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFByb3ZGaXhlZFR5cGU6On5Qcm92Rml4ZWRUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFQcm92Rml4ZWRUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQcm92R2F1Z2U6On5Qcm92R2F1Z2Uodm9pZCkgX19wdHI2NA0KKz8/MVByb3ZHYXVnZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUHJvdkdhdWdlVHlwZTo6flByb3ZHYXVnZVR5cGUodm9pZCkgX19wdHI2NA0KKz8/MVByb3ZHYXVnZVR5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFByb3ZJUFhBZGRyZXNzVHlwZTo6flByb3ZJUFhBZGRyZXNzVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdklQWEFkZHJlc3NUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQcm92SW5zdGFuY2VUeXBlOjp+UHJvdkluc3RhbmNlVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdkluc3RhbmNlVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUHJvdkludGVnZXI6On5Qcm92SW50ZWdlcih2b2lkKSBfX3B0cjY0DQorPz8xUHJvdkludGVnZXJAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFByb3ZJbnRlZ2VyVHlwZTo6flByb3ZJbnRlZ2VyVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdkludGVnZXJUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQcm92SXBBZGRyZXNzOjp+UHJvdklwQWRkcmVzcyh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdklwQWRkcmVzc0BAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUHJvdklwQWRkcmVzc1R5cGU6On5Qcm92SXBBZGRyZXNzVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdklwQWRkcmVzc1R5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBQcm92TGV4aWNvbjo6flByb3ZMZXhpY29uKHZvaWQpIF9fcHRyNjQNCis/PzFQcm92TGV4aWNvbkBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUHJvdk1hY0FkZHJlc3NUeXBlOjp+UHJvdk1hY0FkZHJlc3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFQcm92TWFjQWRkcmVzc1R5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFByb3ZOZWdhdGl2ZVJhbmdlVHlwZTo6flByb3ZOZWdhdGl2ZVJhbmdlVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQcm92TmV0d29ya0FkZHJlc3NUeXBlOjp+UHJvdk5ldHdvcmtBZGRyZXNzVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdk5ldHdvcmtBZGRyZXNzVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUHJvdk51bGw6On5Qcm92TnVsbCh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdk51bGxAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFByb3ZOdWxsVHlwZTo6flByb3ZOdWxsVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdk51bGxUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQcm92T1NJQWRkcmVzc1R5cGU6On5Qcm92T1NJQWRkcmVzc1R5cGUodm9pZCkgX19wdHI2NA0KKz8/MVByb3ZPU0lBZGRyZXNzVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXI6On5Qcm92T2JqZWN0SWRlbnRpZmllcih2b2lkKSBfX3B0cjY0DQorPz8xUHJvdk9iamVjdElkZW50aWZpZXJAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFByb3ZPYmplY3RJZGVudGlmaWVyVHlwZTo6flByb3ZPYmplY3RJZGVudGlmaWVyVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdk9iamVjdElkZW50aWZpZXJUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQcm92T2N0ZXRTdHJpbmc6On5Qcm92T2N0ZXRTdHJpbmcodm9pZCkgX19wdHI2NA0KKz8/MVByb3ZPY3RldFN0cmluZ0BAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUHJvdk9jdGV0U3RyaW5nVHlwZTo6flByb3ZPY3RldFN0cmluZ1R5cGUodm9pZCkgX19wdHI2NA0KKz8/MVByb3ZPY3RldFN0cmluZ1R5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFByb3ZPcGFxdWU6On5Qcm92T3BhcXVlKHZvaWQpIF9fcHRyNjQNCis/PzFQcm92T3BhcXVlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQcm92T3BhcXVlVHlwZTo6flByb3ZPcGFxdWVUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFQcm92T3BhcXVlVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUHJvdlBoeXNBZGRyZXNzVHlwZTo6flByb3ZQaHlzQWRkcmVzc1R5cGUodm9pZCkgX19wdHI2NA0KKz8/MVByb3ZQaHlzQWRkcmVzc1R5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFByb3ZQb3NpdGl2ZVJhbmdlVHlwZTo6flByb3ZQb3NpdGl2ZVJhbmdlVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdlBvc2l0aXZlUmFuZ2VUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQcm92UG9zaXRpdmVSYW5nZWRUeXBlOjp+UHJvdlBvc2l0aXZlUmFuZ2VkVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUHJvdlJvd1N0YXR1c1R5cGU6On5Qcm92Um93U3RhdHVzVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xUHJvdlJvd1N0YXR1c1R5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFByb3ZUaW1lVGlja3M6On5Qcm92VGltZVRpY2tzKHZvaWQpIF9fcHRyNjQNCis/PzFQcm92VGltZVRpY2tzQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQcm92VGltZVRpY2tzVHlwZTo6flByb3ZUaW1lVGlja3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFQcm92VGltZVRpY2tzVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUHJvdlVEUEFkZHJlc3NUeXBlOjp+UHJvdlVEUEFkZHJlc3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFQcm92VURQQWRkcmVzc1R5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFByb3ZVSW50ZWdlcjMyOjp+UHJvdlVJbnRlZ2VyMzIodm9pZCkgX19wdHI2NA0KKz8/MVByb3ZVSW50ZWdlcjMyQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQcm92VmFsdWU6On5Qcm92VmFsdWUodm9pZCkgX19wdHI2NA0KKz8/MVByb3ZWYWx1ZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6On5RdWVyeVByZXByb2Nlc3Nvcih2b2lkKSBfX3B0cjY0DQorPz8xUXVlcnlQcmVwcm9jZXNzb3JAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFdtaUFuZE5vZGU6On5XbWlBbmROb2RlKHZvaWQpIF9fcHRyNjQNCis/PzFXbWlBbmROb2RlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBXbWlOb3ROb2RlOjp+V21pTm90Tm9kZSh2b2lkKSBfX3B0cjY0DQorPz8xV21pTm90Tm9kZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgV21pTnVsbE5vZGU6On5XbWlOdWxsTm9kZSh2b2lkKSBfX3B0cjY0DQorPz8xV21pTnVsbE5vZGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFdtaU51bGxSYW5nZU5vZGU6On5XbWlOdWxsUmFuZ2VOb2RlKHZvaWQpIF9fcHRyNjQNCis/PzFXbWlOdWxsUmFuZ2VOb2RlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBXbWlPcGVyYXRvckVxdWFsTm9kZTo6fldtaU9wZXJhdG9yRXF1YWxOb2RlKHZvaWQpIF9fcHRyNjQNCis/PzFXbWlPcGVyYXRvckVxdWFsTm9kZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgV21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGU6On5XbWlPcGVyYXRvckVxdWFsT3JHcmVhdGVyTm9kZSh2b2lkKSBfX3B0cjY0DQorPz8xV21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFdtaU9wZXJhdG9yRXF1YWxPckxlc3NOb2RlOjp+V21pT3BlcmF0b3JFcXVhbE9yTGVzc05vZGUodm9pZCkgX19wdHI2NA0KKz8/MVdtaU9wZXJhdG9yRXF1YWxPckxlc3NOb2RlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBXbWlPcGVyYXRvckdyZWF0ZXJOb2RlOjp+V21pT3BlcmF0b3JHcmVhdGVyTm9kZSh2b2lkKSBfX3B0cjY0DQorPz8xV21pT3BlcmF0b3JHcmVhdGVyTm9kZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgV21pT3BlcmF0b3JJc0FOb2RlOjp+V21pT3BlcmF0b3JJc0FOb2RlKHZvaWQpIF9fcHRyNjQNCis/PzFXbWlPcGVyYXRvcklzQU5vZGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFdtaU9wZXJhdG9yTGVzc05vZGU6On5XbWlPcGVyYXRvckxlc3NOb2RlKHZvaWQpIF9fcHRyNjQNCis/PzFXbWlPcGVyYXRvckxlc3NOb2RlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBXbWlPcGVyYXRvckxpa2VOb2RlOjp+V21pT3BlcmF0b3JMaWtlTm9kZSh2b2lkKSBfX3B0cjY0DQorPz8xV21pT3BlcmF0b3JMaWtlTm9kZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgV21pT3BlcmF0b3JOb2RlOjp+V21pT3BlcmF0b3JOb2RlKHZvaWQpIF9fcHRyNjQNCis/PzFXbWlPcGVyYXRvck5vZGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFdtaU9wZXJhdG9yTm90RXF1YWxOb2RlOjp+V21pT3BlcmF0b3JOb3RFcXVhbE5vZGUodm9pZCkgX19wdHI2NA0KKz8/MVdtaU9wZXJhdG9yTm90RXF1YWxOb2RlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBXbWlPcGVyYXRvck5vdElzQU5vZGU6On5XbWlPcGVyYXRvck5vdElzQU5vZGUodm9pZCkgX19wdHI2NA0KKz8/MVdtaU9wZXJhdG9yTm90SXNBTm9kZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgV21pT3BlcmF0b3JOb3RMaWtlTm9kZTo6fldtaU9wZXJhdG9yTm90TGlrZU5vZGUodm9pZCkgX19wdHI2NA0KKz8/MVdtaU9wZXJhdG9yTm90TGlrZU5vZGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFdtaU9yTm9kZTo6fldtaU9yTm9kZSh2b2lkKSBfX3B0cjY0DQorPz8xV21pT3JOb2RlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBXbWlSYW5nZU5vZGU6On5XbWlSYW5nZU5vZGUodm9pZCkgX19wdHI2NA0KKz8/MVdtaVJhbmdlTm9kZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgV21pU2lnbmVkSW50ZWdlck5vZGU6On5XbWlTaWduZWRJbnRlZ2VyTm9kZSh2b2lkKSBfX3B0cjY0DQorPz8xV21pU2lnbmVkSW50ZWdlck5vZGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFdtaVNpZ25lZEludGVnZXJSYW5nZU5vZGU6On5XbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlKHZvaWQpIF9fcHRyNjQNCis/PzFXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBXbWlTdHJpbmdOb2RlOjp+V21pU3RyaW5nTm9kZSh2b2lkKSBfX3B0cjY0DQorPz8xV21pU3RyaW5nTm9kZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgV21pU3RyaW5nUmFuZ2VOb2RlOjp+V21pU3RyaW5nUmFuZ2VOb2RlKHZvaWQpIF9fcHRyNjQNCis/PzFXbWlTdHJpbmdSYW5nZU5vZGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFdtaVRyZWVOb2RlOjp+V21pVHJlZU5vZGUodm9pZCkgX19wdHI2NA0KKz8/MVdtaVRyZWVOb2RlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBXbWlUcmVlTm9kZUl0ZXJhdG9yOjp+V21pVHJlZU5vZGVJdGVyYXRvcih2b2lkKSBfX3B0cjY0DQorPz8xV21pVHJlZU5vZGVJdGVyYXRvckBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgV21pVW5zaWduZWRJbnRlZ2VyTm9kZTo6fldtaVVuc2lnbmVkSW50ZWdlck5vZGUodm9pZCkgX19wdHI2NA0KKz8/MVdtaVVuc2lnbmVkSW50ZWdlck5vZGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFdtaVVuc2lnbmVkSW50ZWdlclJhbmdlTm9kZTo6fldtaVVuc2lnbmVkSW50ZWdlclJhbmdlTm9kZSh2b2lkKSBfX3B0cjY0DQorPz8xV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBXbWlWYWx1ZU5vZGU6On5XbWlWYWx1ZU5vZGUodm9pZCkgX19wdHI2NA0KKz8/MVdtaVZhbHVlTm9kZUBAVUVBQUBYWg0KKzsgcHVibGljOiBjbGFzcyBDQlN0cmluZyAmIF9fcHRyNjQgX19jZGVjbCBDQlN0cmluZzo6b3BlcmF0b3I9KGNsYXNzIENCU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENCU3RyaW5nQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0JTdHJpbmcgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ0JTdHJpbmc6Om9wZXJhdG9yPSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDQlN0cmluZ0BAUUVBQUFFQlYwQFBFQUdAWg0KKzsgcHVibGljOiBjbGFzcyBDb25qdW5jdGlvbnMgJiBfX3B0cjY0IF9fY2RlY2wgQ29uanVuY3Rpb25zOjpvcGVyYXRvcj0oY2xhc3MgQ29uanVuY3Rpb25zIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENvbmp1bmN0aW9uc0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIERpc2p1bmN0aW9ucyAmIF9fcHRyNjQgX19jZGVjbCBEaXNqdW5jdGlvbnM6Om9wZXJhdG9yPShjbGFzcyBEaXNqdW5jdGlvbnMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80RGlzanVuY3Rpb25zQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUGFydGl0aW9uU2V0ICYgX19wdHI2NCBfX2NkZWNsIFBhcnRpdGlvblNldDo6b3BlcmF0b3I9KGNsYXNzIFBhcnRpdGlvblNldCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRQYXJ0aXRpb25TZXRAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92QW5hbHlzZXIgJiBfX3B0cjY0IF9fY2RlY2wgUHJvdkFuYWx5c2VyOjpvcGVyYXRvcj0oY2xhc3MgUHJvdkFuYWx5c2VyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFByb3ZBbmFseXNlckBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZCaXRTdHJpbmdUeXBlICYgX19wdHI2NCBfX2NkZWNsIFByb3ZCaXRTdHJpbmdUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdkJpdFN0cmluZ1R5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UHJvdkJpdFN0cmluZ1R5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92VmFsdWUgJiBfX3B0cjY0IF9fY2RlY2wgUHJvdkNvdW50ZXI2NDo6b3BlcmF0b3I9KGNsYXNzIFByb3ZDb3VudGVyNjQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UHJvdkNvdW50ZXI2NEBAUUVBQUFFQVZQcm92VmFsdWVAQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZDb3VudGVyNjRUeXBlICYgX19wdHI2NCBfX2NkZWNsIFByb3ZDb3VudGVyNjRUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdkNvdW50ZXI2NFR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UHJvdkNvdW50ZXI2NFR5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92VmFsdWUgJiBfX3B0cjY0IF9fY2RlY2wgUHJvdkNvdW50ZXI6Om9wZXJhdG9yPShjbGFzcyBQcm92Q291bnRlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRQcm92Q291bnRlckBAUUVBQUFFQVZQcm92VmFsdWVAQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZDb3VudGVyVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBQcm92Q291bnRlclR5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92Q291bnRlclR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UHJvdkNvdW50ZXJUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdkRhdGVUaW1lVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBQcm92RGF0ZVRpbWVUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdkRhdGVUaW1lVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRQcm92RGF0ZVRpbWVUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdkRlYnVnTG9nICYgX19wdHI2NCBfX2NkZWNsIFByb3ZEZWJ1Z0xvZzo6b3BlcmF0b3I9KGNsYXNzIFByb3ZEZWJ1Z0xvZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRQcm92RGVidWdMb2dAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92RGlzcGxheVN0cmluZ1R5cGUgJiBfX3B0cjY0IF9fY2RlY2wgUHJvdkRpc3BsYXlTdHJpbmdUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdkRpc3BsYXlTdHJpbmdUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFByb3ZEaXNwbGF5U3RyaW5nVHlwZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZFbnVtZXJhdGVkVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBQcm92RW51bWVyYXRlZFR5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92RW51bWVyYXRlZFR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UHJvdkVudW1lcmF0ZWRUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdkV2ZW50T2JqZWN0ICYgX19wdHI2NCBfX2NkZWNsIFByb3ZFdmVudE9iamVjdDo6b3BlcmF0b3I9KGNsYXNzIFByb3ZFdmVudE9iamVjdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRQcm92RXZlbnRPYmplY3RAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlICYgX19wdHI2NCBfX2NkZWNsIFByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92Rml4ZWRMZW5ndGhPcGFxdWVUeXBlICYgX19wdHI2NCBfX2NkZWNsIFByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92Rml4ZWRMZW5ndGhPcGFxdWVUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGUgJiBfX3B0cjY0IF9fY2RlY2wgUHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFByb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZGaXhlZFR5cGUgJiBfX3B0cjY0IF9fY2RlY2wgUHJvdkZpeGVkVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZGaXhlZFR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UHJvdkZpeGVkVHlwZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZWYWx1ZSAmIF9fcHRyNjQgX19jZGVjbCBQcm92R2F1Z2U6Om9wZXJhdG9yPShjbGFzcyBQcm92R2F1Z2UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UHJvdkdhdWdlQEBRRUFBQUVBVlByb3ZWYWx1ZUBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdkdhdWdlVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBQcm92R2F1Z2VUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdkdhdWdlVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRQcm92R2F1Z2VUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdklQWEFkZHJlc3NUeXBlICYgX19wdHI2NCBfX2NkZWNsIFByb3ZJUFhBZGRyZXNzVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZJUFhBZGRyZXNzVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRQcm92SVBYQWRkcmVzc1R5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92SW5zdGFuY2VUeXBlICYgX19wdHI2NCBfX2NkZWNsIFByb3ZJbnN0YW5jZVR5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92SW5zdGFuY2VUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFByb3ZJbnN0YW5jZVR5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92VmFsdWUgJiBfX3B0cjY0IF9fY2RlY2wgUHJvdkludGVnZXI6Om9wZXJhdG9yPShjbGFzcyBQcm92SW50ZWdlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRQcm92SW50ZWdlckBAUUVBQUFFQVZQcm92VmFsdWVAQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZJbnRlZ2VyVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBQcm92SW50ZWdlclR5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92SW50ZWdlclR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UHJvdkludGVnZXJUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdlZhbHVlICYgX19wdHI2NCBfX2NkZWNsIFByb3ZJcEFkZHJlc3M6Om9wZXJhdG9yPShjbGFzcyBQcm92SXBBZGRyZXNzIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFByb3ZJcEFkZHJlc3NAQFFFQUFBRUFWUHJvdlZhbHVlQEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92SXBBZGRyZXNzVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBQcm92SXBBZGRyZXNzVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZJcEFkZHJlc3NUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFByb3ZJcEFkZHJlc3NUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdkxleGljb24gJiBfX3B0cjY0IF9fY2RlY2wgUHJvdkxleGljb246Om9wZXJhdG9yPShjbGFzcyBQcm92TGV4aWNvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRQcm92TGV4aWNvbkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZNYWNBZGRyZXNzVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBQcm92TWFjQWRkcmVzc1R5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92TWFjQWRkcmVzc1R5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UHJvdk1hY0FkZHJlc3NUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlICYgX19wdHI2NCBfX2NkZWNsIFByb3ZOZWdhdGl2ZVJhbmdlVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZOZWdhdGl2ZVJhbmdlVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRQcm92TmVnYXRpdmVSYW5nZVR5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92TmV0d29ya0FkZHJlc3NUeXBlICYgX19wdHI2NCBfX2NkZWNsIFByb3ZOZXR3b3JrQWRkcmVzc1R5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92TmV0d29ya0FkZHJlc3NUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFByb3ZOZXR3b3JrQWRkcmVzc1R5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92VmFsdWUgJiBfX3B0cjY0IF9fY2RlY2wgUHJvdk51bGw6Om9wZXJhdG9yPShjbGFzcyBQcm92TnVsbCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRQcm92TnVsbEBAUUVBQUFFQVZQcm92VmFsdWVAQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZOdWxsVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBQcm92TnVsbFR5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92TnVsbFR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UHJvdk51bGxUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdk9TSUFkZHJlc3NUeXBlICYgX19wdHI2NCBfX2NkZWNsIFByb3ZPU0lBZGRyZXNzVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZPU0lBZGRyZXNzVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRQcm92T1NJQWRkcmVzc1R5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92VmFsdWUgJiBfX3B0cjY0IF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yPShjbGFzcyBQcm92T2JqZWN0SWRlbnRpZmllciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRQcm92T2JqZWN0SWRlbnRpZmllckBAUUVBQUFFQVZQcm92VmFsdWVAQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZPYmplY3RJZGVudGlmaWVyVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBQcm92T2JqZWN0SWRlbnRpZmllclR5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92T2JqZWN0SWRlbnRpZmllclR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UHJvdk9iamVjdElkZW50aWZpZXJUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdlZhbHVlICYgX19wdHI2NCBfX2NkZWNsIFByb3ZPY3RldFN0cmluZzo6b3BlcmF0b3I9KGNsYXNzIFByb3ZPY3RldFN0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRQcm92T2N0ZXRTdHJpbmdAQFFFQUFBRUFWUHJvdlZhbHVlQEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92T2N0ZXRTdHJpbmdUeXBlICYgX19wdHI2NCBfX2NkZWNsIFByb3ZPY3RldFN0cmluZ1R5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92T2N0ZXRTdHJpbmdUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFByb3ZPY3RldFN0cmluZ1R5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92VmFsdWUgJiBfX3B0cjY0IF9fY2RlY2wgUHJvdk9wYXF1ZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZPcGFxdWUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UHJvdk9wYXF1ZUBAUUVBQUFFQVZQcm92VmFsdWVAQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZPcGFxdWVUeXBlICYgX19wdHI2NCBfX2NkZWNsIFByb3ZPcGFxdWVUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdk9wYXF1ZVR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UHJvdk9wYXF1ZVR5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92UGh5c0FkZHJlc3NUeXBlICYgX19wdHI2NCBfX2NkZWNsIFByb3ZQaHlzQWRkcmVzc1R5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92UGh5c0FkZHJlc3NUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFByb3ZQaHlzQWRkcmVzc1R5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92UG9zaXRpdmVSYW5nZVR5cGUgJiBfX3B0cjY0IF9fY2RlY2wgUHJvdlBvc2l0aXZlUmFuZ2VUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdlBvc2l0aXZlUmFuZ2VUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFByb3ZQb3NpdGl2ZVJhbmdlVHlwZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGUgJiBfX3B0cjY0IF9fY2RlY2wgUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZSb3dTdGF0dXNUeXBlICYgX19wdHI2NCBfX2NkZWNsIFByb3ZSb3dTdGF0dXNUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdlJvd1N0YXR1c1R5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UHJvdlJvd1N0YXR1c1R5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92VmFsdWUgJiBfX3B0cjY0IF9fY2RlY2wgUHJvdlRpbWVUaWNrczo6b3BlcmF0b3I9KGNsYXNzIFByb3ZUaW1lVGlja3MgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UHJvdlRpbWVUaWNrc0BAUUVBQUFFQVZQcm92VmFsdWVAQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZUaW1lVGlja3NUeXBlICYgX19wdHI2NCBfX2NkZWNsIFByb3ZUaW1lVGlja3NUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdlRpbWVUaWNrc1R5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UHJvdlRpbWVUaWNrc1R5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92VURQQWRkcmVzc1R5cGUgJiBfX3B0cjY0IF9fY2RlY2wgUHJvdlVEUEFkZHJlc3NUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdlVEUEFkZHJlc3NUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFByb3ZVRFBBZGRyZXNzVHlwZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZWYWx1ZSAmIF9fcHRyNjQgX19jZGVjbCBQcm92VUludGVnZXIzMjo6b3BlcmF0b3I9KGNsYXNzIFByb3ZVSW50ZWdlcjMyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFByb3ZVSW50ZWdlcjMyQEBRRUFBQUVBVlByb3ZWYWx1ZUBAQUVCVjBAQFoNCis7IHByaXZhdGU6IGNsYXNzIFByb3ZWYWx1ZSAmIF9fcHRyNjQgX19jZGVjbCBQcm92VmFsdWU6Om9wZXJhdG9yPShjbGFzcyBQcm92VmFsdWUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UHJvdlZhbHVlQEBBRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUXVlcnlQcmVwcm9jZXNzb3IgJiBfX3B0cjY0IF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6Om9wZXJhdG9yPShjbGFzcyBRdWVyeVByZXByb2Nlc3NvciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRRdWVyeVByZXByb2Nlc3NvckBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaUFuZE5vZGUgJiBfX3B0cjY0IF9fY2RlY2wgV21pQW5kTm9kZTo6b3BlcmF0b3I9KGNsYXNzIFdtaUFuZE5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80V21pQW5kTm9kZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaU5vdE5vZGUgJiBfX3B0cjY0IF9fY2RlY2wgV21pTm90Tm9kZTo6b3BlcmF0b3I9KGNsYXNzIFdtaU5vdE5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80V21pTm90Tm9kZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaU51bGxOb2RlICYgX19wdHI2NCBfX2NkZWNsIFdtaU51bGxOb2RlOjpvcGVyYXRvcj0oY2xhc3MgV21pTnVsbE5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80V21pTnVsbE5vZGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlOdWxsUmFuZ2VOb2RlICYgX19wdHI2NCBfX2NkZWNsIFdtaU51bGxSYW5nZU5vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlOdWxsUmFuZ2VOb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFdtaU51bGxSYW5nZU5vZGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlPcGVyYXRvckVxdWFsTm9kZSAmIF9fcHRyNjQgX19jZGVjbCBXbWlPcGVyYXRvckVxdWFsTm9kZTo6b3BlcmF0b3I9KGNsYXNzIFdtaU9wZXJhdG9yRXF1YWxOb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFdtaU9wZXJhdG9yRXF1YWxOb2RlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGUgJiBfX3B0cjY0IF9fY2RlY2wgV21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlPcGVyYXRvckVxdWFsT3JHcmVhdGVyTm9kZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRXbWlPcGVyYXRvckVxdWFsT3JHcmVhdGVyTm9kZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaU9wZXJhdG9yRXF1YWxPckxlc3NOb2RlICYgX19wdHI2NCBfX2NkZWNsIFdtaU9wZXJhdG9yRXF1YWxPckxlc3NOb2RlOjpvcGVyYXRvcj0oY2xhc3MgV21pT3BlcmF0b3JFcXVhbE9yTGVzc05vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80V21pT3BlcmF0b3JFcXVhbE9yTGVzc05vZGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlPcGVyYXRvckdyZWF0ZXJOb2RlICYgX19wdHI2NCBfX2NkZWNsIFdtaU9wZXJhdG9yR3JlYXRlck5vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlPcGVyYXRvckdyZWF0ZXJOb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFdtaU9wZXJhdG9yR3JlYXRlck5vZGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlPcGVyYXRvcklzQU5vZGUgJiBfX3B0cjY0IF9fY2RlY2wgV21pT3BlcmF0b3JJc0FOb2RlOjpvcGVyYXRvcj0oY2xhc3MgV21pT3BlcmF0b3JJc0FOb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFdtaU9wZXJhdG9ySXNBTm9kZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaU9wZXJhdG9yTGVzc05vZGUgJiBfX3B0cjY0IF9fY2RlY2wgV21pT3BlcmF0b3JMZXNzTm9kZTo6b3BlcmF0b3I9KGNsYXNzIFdtaU9wZXJhdG9yTGVzc05vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80V21pT3BlcmF0b3JMZXNzTm9kZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaU9wZXJhdG9yTGlrZU5vZGUgJiBfX3B0cjY0IF9fY2RlY2wgV21pT3BlcmF0b3JMaWtlTm9kZTo6b3BlcmF0b3I9KGNsYXNzIFdtaU9wZXJhdG9yTGlrZU5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80V21pT3BlcmF0b3JMaWtlTm9kZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaU9wZXJhdG9yTm9kZSAmIF9fcHRyNjQgX19jZGVjbCBXbWlPcGVyYXRvck5vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlPcGVyYXRvck5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80V21pT3BlcmF0b3JOb2RlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV21pT3BlcmF0b3JOb3RFcXVhbE5vZGUgJiBfX3B0cjY0IF9fY2RlY2wgV21pT3BlcmF0b3JOb3RFcXVhbE5vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlPcGVyYXRvck5vdEVxdWFsTm9kZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRXbWlPcGVyYXRvck5vdEVxdWFsTm9kZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaU9wZXJhdG9yTm90SXNBTm9kZSAmIF9fcHRyNjQgX19jZGVjbCBXbWlPcGVyYXRvck5vdElzQU5vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlPcGVyYXRvck5vdElzQU5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80V21pT3BlcmF0b3JOb3RJc0FOb2RlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV21pT3BlcmF0b3JOb3RMaWtlTm9kZSAmIF9fcHRyNjQgX19jZGVjbCBXbWlPcGVyYXRvck5vdExpa2VOb2RlOjpvcGVyYXRvcj0oY2xhc3MgV21pT3BlcmF0b3JOb3RMaWtlTm9kZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRXbWlPcGVyYXRvck5vdExpa2VOb2RlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV21pT3JOb2RlICYgX19wdHI2NCBfX2NkZWNsIFdtaU9yTm9kZTo6b3BlcmF0b3I9KGNsYXNzIFdtaU9yTm9kZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRXbWlPck5vZGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlSYW5nZU5vZGUgJiBfX3B0cjY0IF9fY2RlY2wgV21pUmFuZ2VOb2RlOjpvcGVyYXRvcj0oY2xhc3MgV21pUmFuZ2VOb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFdtaVJhbmdlTm9kZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaVNpZ25lZEludGVnZXJOb2RlICYgX19wdHI2NCBfX2NkZWNsIFdtaVNpZ25lZEludGVnZXJOb2RlOjpvcGVyYXRvcj0oY2xhc3MgV21pU2lnbmVkSW50ZWdlck5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80V21pU2lnbmVkSW50ZWdlck5vZGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlICYgX19wdHI2NCBfX2NkZWNsIFdtaVNpZ25lZEludGVnZXJSYW5nZU5vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFdtaVNpZ25lZEludGVnZXJSYW5nZU5vZGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlTdHJpbmdOb2RlICYgX19wdHI2NCBfX2NkZWNsIFdtaVN0cmluZ05vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlTdHJpbmdOb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFdtaVN0cmluZ05vZGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlTdHJpbmdSYW5nZU5vZGUgJiBfX3B0cjY0IF9fY2RlY2wgV21pU3RyaW5nUmFuZ2VOb2RlOjpvcGVyYXRvcj0oY2xhc3MgV21pU3RyaW5nUmFuZ2VOb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFdtaVN0cmluZ1JhbmdlTm9kZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaVRyZWVOb2RlICYgX19wdHI2NCBfX2NkZWNsIFdtaVRyZWVOb2RlOjpvcGVyYXRvcj0oY2xhc3MgV21pVHJlZU5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80V21pVHJlZU5vZGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlUcmVlTm9kZUl0ZXJhdG9yICYgX19wdHI2NCBfX2NkZWNsIFdtaVRyZWVOb2RlSXRlcmF0b3I6Om9wZXJhdG9yPShjbGFzcyBXbWlUcmVlTm9kZUl0ZXJhdG9yIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFdtaVRyZWVOb2RlSXRlcmF0b3JAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlVbnNpZ25lZEludGVnZXJOb2RlICYgX19wdHI2NCBfX2NkZWNsIFdtaVVuc2lnbmVkSW50ZWdlck5vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlVbnNpZ25lZEludGVnZXJOb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFdtaVVuc2lnbmVkSW50ZWdlck5vZGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGUgJiBfX3B0cjY0IF9fY2RlY2wgV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlOjpvcGVyYXRvcj0oY2xhc3MgV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFdtaVVuc2lnbmVkSW50ZWdlclJhbmdlTm9kZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaVZhbHVlTm9kZSAmIF9fcHRyNjQgX19jZGVjbCBXbWlWYWx1ZU5vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlWYWx1ZU5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80V21pVmFsdWVOb2RlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUHJvdkluc3RhbmNlVHlwZTo6b3BlcmF0b3I9PShjbGFzcyBQcm92SW5zdGFuY2VUeXBlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OFByb3ZJbnN0YW5jZVR5cGVAQFFFQkFIQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yPT0oY2xhc3MgUHJvdk9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz84UHJvdk9iamVjdElkZW50aWZpZXJAQFFFQkFIQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUHJvdlZhbHVlOjpvcGVyYXRvcj09KGNsYXNzIFByb3ZWYWx1ZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzhQcm92VmFsdWVAQFFFQkFIQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUHJvdkluc3RhbmNlVHlwZTo6b3BlcmF0b3IhPShjbGFzcyBQcm92SW5zdGFuY2VUeXBlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OVByb3ZJbnN0YW5jZVR5cGVAQFFFQkFIQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yIT0oY2xhc3MgUHJvdk9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz85UHJvdk9iamVjdElkZW50aWZpZXJAQFFFQkFIQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUHJvdlZhbHVlOjpvcGVyYXRvciE9KGNsYXNzIFByb3ZWYWx1ZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzlQcm92VmFsdWVAQFFFQkFIQUVCVjBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQgX19jZGVjbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3JbXSh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorPz9BUHJvdk9iamVjdElkZW50aWZpZXJAQFFFQkFBRUFLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQcm92QW5hbHlzZXI6Om9wZXJhdG9yIHZvaWQgKiBfX3B0cjY0KHZvaWQpIF9fcHRyNjQNCis/P0JQcm92QW5hbHlzZXJAQFVFQUFQRUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFByb3ZJbnN0YW5jZVR5cGU6Om9wZXJhdG9yIHZvaWQgKiBfX3B0cjY0KHZvaWQpIF9fcHRyNjQNCis/P0JQcm92SW5zdGFuY2VUeXBlQEBVRUFBUEVBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQcm92UG9zaXRpdmVSYW5nZWRUeXBlOjpvcGVyYXRvciB2b2lkICogX19wdHI2NCh2b2lkKSBfX3B0cjY0DQorPz9CUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAVUVBQVBFQVhYWg0KKzsgcHVibGljOiBjbGFzcyBQcm92T2JqZWN0SWRlbnRpZmllciAgX19jZGVjbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3IrKGNsYXNzIFByb3ZPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/SFByb3ZPYmplY3RJZGVudGlmaWVyQEBRRUJBP0FWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I8KGNsYXNzIFByb3ZPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/TVByb3ZPYmplY3RJZGVudGlmaWVyQEBRRUJBSEFFQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFByb3ZPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcjw9KGNsYXNzIFByb3ZPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/TlByb3ZPYmplY3RJZGVudGlmaWVyQEBRRUJBSEFFQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFByb3ZPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj4oY2xhc3MgUHJvdk9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz9PUHJvdk9iamVjdElkZW50aWZpZXJAQFFFQkFIQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yPj0oY2xhc3MgUHJvdk9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz9QUHJvdk9iamVjdElkZW50aWZpZXJAQFFFQkFIQUVCVjBAQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBQcm92SXBBZGRyZXNzOjpvcGVyYXRvcigpKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P1JQcm92SXBBZGRyZXNzQEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yKCkodm9pZCljb25zdCAgX19wdHI2NA0KKz8/UlByb3ZPYmplY3RJZGVudGlmaWVyQEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdk9jdGV0U3RyaW5nOjpvcGVyYXRvcigpKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P1JQcm92T2N0ZXRTdHJpbmdAQFFFQkFQRUFYWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBQcm92T3BhcXVlOjpvcGVyYXRvcigpKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P1JQcm92T3BhcXVlQEBRRUJBUEVBWFhaDQorOyBjb25zdCAgUGFydGl0aW9uU2V0OjpgdmZ0YWJsZScNCis/P183UGFydGl0aW9uU2V0QEA2QkANCis7IGNvbnN0ICBQcm92QW5hbHlzZXI6OmB2ZnRhYmxlJw0KKz8/XzdQcm92QW5hbHlzZXJAQDZCQA0KKzsgY29uc3QgIFByb3ZCaXRTdHJpbmdUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92SW5zdGFuY2VUeXBlJ30NCis/P183UHJvdkJpdFN0cmluZ1R5cGVAQDZCUHJvdkluc3RhbmNlVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZCaXRTdHJpbmdUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92UG9zaXRpdmVSYW5nZWRUeXBlJ30NCis/P183UHJvdkJpdFN0cmluZ1R5cGVAQDZCUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZDb3VudGVyNjQ6OmB2ZnRhYmxlJw0KKz8/XzdQcm92Q291bnRlcjY0QEA2QkANCis7IGNvbnN0ICBQcm92Q291bnRlcjY0VHlwZTo6YHZmdGFibGUnDQorPz9fN1Byb3ZDb3VudGVyNjRUeXBlQEA2QkANCis7IGNvbnN0ICBQcm92Q291bnRlcjo6YHZmdGFibGUnDQorPz9fN1Byb3ZDb3VudGVyQEA2QkANCis7IGNvbnN0ICBQcm92Q291bnRlclR5cGU6OmB2ZnRhYmxlJw0KKz8/XzdQcm92Q291bnRlclR5cGVAQDZCQA0KKzsgY29uc3QgIFByb3ZEYXRlVGltZVR5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZJbnN0YW5jZVR5cGUnfQ0KKz8/XzdQcm92RGF0ZVRpbWVUeXBlQEA2QlByb3ZJbnN0YW5jZVR5cGVAQEANCis7IGNvbnN0ICBQcm92RGF0ZVRpbWVUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92UG9zaXRpdmVSYW5nZWRUeXBlJ30NCis/P183UHJvdkRhdGVUaW1lVHlwZUBANkJQcm92UG9zaXRpdmVSYW5nZWRUeXBlQEBADQorOyBjb25zdCAgUHJvdkRpc3BsYXlTdHJpbmdUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92SW5zdGFuY2VUeXBlJ30NCis/P183UHJvdkRpc3BsYXlTdHJpbmdUeXBlQEA2QlByb3ZJbnN0YW5jZVR5cGVAQEANCis7IGNvbnN0ICBQcm92RGlzcGxheVN0cmluZ1R5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGUnfQ0KKz8/XzdQcm92RGlzcGxheVN0cmluZ1R5cGVAQDZCUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZFbnVtZXJhdGVkVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdkluc3RhbmNlVHlwZSd9DQorPz9fN1Byb3ZFbnVtZXJhdGVkVHlwZUBANkJQcm92SW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgUHJvdkVudW1lcmF0ZWRUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92TmVnYXRpdmVSYW5nZWRUeXBlJ30NCis/P183UHJvdkVudW1lcmF0ZWRUeXBlQEA2QlByb3ZOZWdhdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBQcm92RXZlbnRPYmplY3Q6OmB2ZnRhYmxlJw0KKz8/XzdQcm92RXZlbnRPYmplY3RAQDZCQA0KKzsgY29uc3QgIFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlOjpgdmZ0YWJsZScNCis/P183UHJvdkZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGVAQDZCQA0KKzsgY29uc3QgIFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92SW5zdGFuY2VUeXBlJ30NCis/P183UHJvdkZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGVAQDZCUHJvdkluc3RhbmNlVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92UG9zaXRpdmVSYW5nZWRUeXBlJ30NCis/P183UHJvdkZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGVAQDZCUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZTo6YHZmdGFibGUnDQorPz9fN1Byb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZUBANkJADQorOyBjb25zdCAgUHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92SW5zdGFuY2VUeXBlJ30NCis/P183UHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlQEA2QlByb3ZJbnN0YW5jZVR5cGVAQEANCis7IGNvbnN0ICBQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGUnfQ0KKz8/XzdQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGVAQDZCUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGU6OmB2ZnRhYmxlJw0KKz8/XzdQcm92Rml4ZWRMZW5ndGhPcGFxdWVUeXBlQEA2QkANCis7IGNvbnN0ICBQcm92Rml4ZWRMZW5ndGhPcGFxdWVUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92SW5zdGFuY2VUeXBlJ30NCis/P183UHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZUBANkJQcm92SW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgUHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1Byb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGVAQDZCUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZTo6YHZmdGFibGUnDQorPz9fN1Byb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZUBANkJADQorOyBjb25zdCAgUHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92SW5zdGFuY2VUeXBlJ30NCis/P183UHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlQEA2QlByb3ZJbnN0YW5jZVR5cGVAQEANCis7IGNvbnN0ICBQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGUnfQ0KKz8/XzdQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGVAQDZCUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZGaXhlZFR5cGU6OmB2ZnRhYmxlJw0KKz8/XzdQcm92Rml4ZWRUeXBlQEA2QkANCis7IGNvbnN0ICBQcm92R2F1Z2U6OmB2ZnRhYmxlJw0KKz8/XzdQcm92R2F1Z2VAQDZCQA0KKzsgY29uc3QgIFByb3ZHYXVnZVR5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZJbnN0YW5jZVR5cGUnfQ0KKz8/XzdQcm92R2F1Z2VUeXBlQEA2QlByb3ZJbnN0YW5jZVR5cGVAQEANCis7IGNvbnN0ICBQcm92R2F1Z2VUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92UG9zaXRpdmVSYW5nZWRUeXBlJ30NCis/P183UHJvdkdhdWdlVHlwZUBANkJQcm92UG9zaXRpdmVSYW5nZWRUeXBlQEBADQorOyBjb25zdCAgUHJvdklQWEFkZHJlc3NUeXBlOjpgdmZ0YWJsZScNCis/P183UHJvdklQWEFkZHJlc3NUeXBlQEA2QkANCis7IGNvbnN0ICBQcm92SVBYQWRkcmVzc1R5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZJbnN0YW5jZVR5cGUnfQ0KKz8/XzdQcm92SVBYQWRkcmVzc1R5cGVAQDZCUHJvdkluc3RhbmNlVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZJUFhBZGRyZXNzVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1Byb3ZJUFhBZGRyZXNzVHlwZUBANkJQcm92UG9zaXRpdmVSYW5nZWRUeXBlQEBADQorOyBjb25zdCAgUHJvdkluc3RhbmNlVHlwZTo6YHZmdGFibGUnDQorPz9fN1Byb3ZJbnN0YW5jZVR5cGVAQDZCQA0KKzsgY29uc3QgIFByb3ZJbnRlZ2VyOjpgdmZ0YWJsZScNCis/P183UHJvdkludGVnZXJAQDZCQA0KKzsgY29uc3QgIFByb3ZJbnRlZ2VyVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdkluc3RhbmNlVHlwZSd9DQorPz9fN1Byb3ZJbnRlZ2VyVHlwZUBANkJQcm92SW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgUHJvdkludGVnZXJUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92TmVnYXRpdmVSYW5nZWRUeXBlJ30NCis/P183UHJvdkludGVnZXJUeXBlQEA2QlByb3ZOZWdhdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBQcm92SXBBZGRyZXNzOjpgdmZ0YWJsZScNCis/P183UHJvdklwQWRkcmVzc0BANkJADQorOyBjb25zdCAgUHJvdklwQWRkcmVzc1R5cGU6OmB2ZnRhYmxlJw0KKz8/XzdQcm92SXBBZGRyZXNzVHlwZUBANkJADQorOyBjb25zdCAgUHJvdk1hY0FkZHJlc3NUeXBlOjpgdmZ0YWJsZScNCis/P183UHJvdk1hY0FkZHJlc3NUeXBlQEA2QkANCis7IGNvbnN0ICBQcm92TWFjQWRkcmVzc1R5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZJbnN0YW5jZVR5cGUnfQ0KKz8/XzdQcm92TWFjQWRkcmVzc1R5cGVAQDZCUHJvdkluc3RhbmNlVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZNYWNBZGRyZXNzVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1Byb3ZNYWNBZGRyZXNzVHlwZUBANkJQcm92UG9zaXRpdmVSYW5nZWRUeXBlQEBADQorOyBjb25zdCAgUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlOjpgdmZ0YWJsZScNCis/P183UHJvdk5lZ2F0aXZlUmFuZ2VUeXBlQEA2QkANCis7IGNvbnN0ICBQcm92TmV0d29ya0FkZHJlc3NUeXBlOjpgdmZ0YWJsZScNCis/P183UHJvdk5ldHdvcmtBZGRyZXNzVHlwZUBANkJADQorOyBjb25zdCAgUHJvdk51bGw6OmB2ZnRhYmxlJw0KKz8/XzdQcm92TnVsbEBANkJADQorOyBjb25zdCAgUHJvdk51bGxUeXBlOjpgdmZ0YWJsZScNCis/P183UHJvdk51bGxUeXBlQEA2QkANCis7IGNvbnN0ICBQcm92T1NJQWRkcmVzc1R5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZJbnN0YW5jZVR5cGUnfQ0KKz8/XzdQcm92T1NJQWRkcmVzc1R5cGVAQDZCUHJvdkluc3RhbmNlVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZPU0lBZGRyZXNzVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1Byb3ZPU0lBZGRyZXNzVHlwZUBANkJQcm92UG9zaXRpdmVSYW5nZWRUeXBlQEBADQorOyBjb25zdCAgUHJvdk9iamVjdElkZW50aWZpZXI6OmB2ZnRhYmxlJw0KKz8/XzdQcm92T2JqZWN0SWRlbnRpZmllckBANkJADQorOyBjb25zdCAgUHJvdk9iamVjdElkZW50aWZpZXJUeXBlOjpgdmZ0YWJsZScNCis/P183UHJvdk9iamVjdElkZW50aWZpZXJUeXBlQEA2QkANCis7IGNvbnN0ICBQcm92T2N0ZXRTdHJpbmc6OmB2ZnRhYmxlJw0KKz8/XzdQcm92T2N0ZXRTdHJpbmdAQDZCQA0KKzsgY29uc3QgIFByb3ZPY3RldFN0cmluZ1R5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZJbnN0YW5jZVR5cGUnfQ0KKz8/XzdQcm92T2N0ZXRTdHJpbmdUeXBlQEA2QlByb3ZJbnN0YW5jZVR5cGVAQEANCis7IGNvbnN0ICBQcm92T2N0ZXRTdHJpbmdUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92UG9zaXRpdmVSYW5nZWRUeXBlJ30NCis/P183UHJvdk9jdGV0U3RyaW5nVHlwZUBANkJQcm92UG9zaXRpdmVSYW5nZWRUeXBlQEBADQorOyBjb25zdCAgUHJvdk9wYXF1ZTo6YHZmdGFibGUnDQorPz9fN1Byb3ZPcGFxdWVAQDZCQA0KKzsgY29uc3QgIFByb3ZPcGFxdWVUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92SW5zdGFuY2VUeXBlJ30NCis/P183UHJvdk9wYXF1ZVR5cGVAQDZCUHJvdkluc3RhbmNlVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZPcGFxdWVUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92UG9zaXRpdmVSYW5nZWRUeXBlJ30NCis/P183UHJvdk9wYXF1ZVR5cGVAQDZCUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZQaHlzQWRkcmVzc1R5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZJbnN0YW5jZVR5cGUnfQ0KKz8/XzdQcm92UGh5c0FkZHJlc3NUeXBlQEA2QlByb3ZJbnN0YW5jZVR5cGVAQEANCis7IGNvbnN0ICBQcm92UGh5c0FkZHJlc3NUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92UG9zaXRpdmVSYW5nZWRUeXBlJ30NCis/P183UHJvdlBoeXNBZGRyZXNzVHlwZUBANkJQcm92UG9zaXRpdmVSYW5nZWRUeXBlQEBADQorOyBjb25zdCAgUHJvdlBvc2l0aXZlUmFuZ2VUeXBlOjpgdmZ0YWJsZScNCis/P183UHJvdlBvc2l0aXZlUmFuZ2VUeXBlQEA2QkANCis7IGNvbnN0ICBQcm92UG9zaXRpdmVSYW5nZWRUeXBlOjpgdmZ0YWJsZScNCis/P183UHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBANkJADQorOyBjb25zdCAgUHJvdlJvd1N0YXR1c1R5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZJbnN0YW5jZVR5cGUnfQ0KKz8/XzdQcm92Um93U3RhdHVzVHlwZUBANkJQcm92SW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgUHJvdlJvd1N0YXR1c1R5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZOZWdhdGl2ZVJhbmdlZFR5cGUnfQ0KKz8/XzdQcm92Um93U3RhdHVzVHlwZUBANkJQcm92TmVnYXRpdmVSYW5nZWRUeXBlQEBADQorOyBjb25zdCAgUHJvdlRpbWVUaWNrczo6YHZmdGFibGUnDQorPz9fN1Byb3ZUaW1lVGlja3NAQDZCQA0KKzsgY29uc3QgIFByb3ZUaW1lVGlja3NUeXBlOjpgdmZ0YWJsZScNCis/P183UHJvdlRpbWVUaWNrc1R5cGVAQDZCQA0KKzsgY29uc3QgIFByb3ZVRFBBZGRyZXNzVHlwZTo6YHZmdGFibGUnDQorPz9fN1Byb3ZVRFBBZGRyZXNzVHlwZUBANkJADQorOyBjb25zdCAgUHJvdlVEUEFkZHJlc3NUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92SW5zdGFuY2VUeXBlJ30NCis/P183UHJvdlVEUEFkZHJlc3NUeXBlQEA2QlByb3ZJbnN0YW5jZVR5cGVAQEANCis7IGNvbnN0ICBQcm92VURQQWRkcmVzc1R5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGUnfQ0KKz8/XzdQcm92VURQQWRkcmVzc1R5cGVAQDZCUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZVSW50ZWdlcjMyOjpgdmZ0YWJsZScNCis/P183UHJvdlVJbnRlZ2VyMzJAQDZCQA0KKzsgY29uc3QgIFByb3ZWYWx1ZTo6YHZmdGFibGUnDQorPz9fN1Byb3ZWYWx1ZUBANkJADQorOyBjb25zdCAgUXVlcnlQcmVwcm9jZXNzb3I6OmB2ZnRhYmxlJw0KKz8/XzdRdWVyeVByZXByb2Nlc3NvckBANkJADQorOyBjb25zdCAgV21pQW5kTm9kZTo6YHZmdGFibGUnDQorPz9fN1dtaUFuZE5vZGVAQDZCQA0KKzsgY29uc3QgIFdtaU5vdE5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlOb3ROb2RlQEA2QkANCis7IGNvbnN0ICBXbWlOdWxsTm9kZTo6YHZmdGFibGUnDQorPz9fN1dtaU51bGxOb2RlQEA2QkANCis7IGNvbnN0ICBXbWlOdWxsUmFuZ2VOb2RlOjpgdmZ0YWJsZScNCis/P183V21pTnVsbFJhbmdlTm9kZUBANkJADQorOyBjb25zdCAgV21pT3BlcmF0b3JFcXVhbE5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlPcGVyYXRvckVxdWFsTm9kZUBANkJADQorOyBjb25zdCAgV21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlPcGVyYXRvckVxdWFsT3JHcmVhdGVyTm9kZUBANkJADQorOyBjb25zdCAgV21pT3BlcmF0b3JFcXVhbE9yTGVzc05vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlPcGVyYXRvckVxdWFsT3JMZXNzTm9kZUBANkJADQorOyBjb25zdCAgV21pT3BlcmF0b3JHcmVhdGVyTm9kZTo6YHZmdGFibGUnDQorPz9fN1dtaU9wZXJhdG9yR3JlYXRlck5vZGVAQDZCQA0KKzsgY29uc3QgIFdtaU9wZXJhdG9ySXNBTm9kZTo6YHZmdGFibGUnDQorPz9fN1dtaU9wZXJhdG9ySXNBTm9kZUBANkJADQorOyBjb25zdCAgV21pT3BlcmF0b3JMZXNzTm9kZTo6YHZmdGFibGUnDQorPz9fN1dtaU9wZXJhdG9yTGVzc05vZGVAQDZCQA0KKzsgY29uc3QgIFdtaU9wZXJhdG9yTGlrZU5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlPcGVyYXRvckxpa2VOb2RlQEA2QkANCis7IGNvbnN0ICBXbWlPcGVyYXRvck5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlPcGVyYXRvck5vZGVAQDZCQA0KKzsgY29uc3QgIFdtaU9wZXJhdG9yTm90RXF1YWxOb2RlOjpgdmZ0YWJsZScNCis/P183V21pT3BlcmF0b3JOb3RFcXVhbE5vZGVAQDZCQA0KKzsgY29uc3QgIFdtaU9wZXJhdG9yTm90SXNBTm9kZTo6YHZmdGFibGUnDQorPz9fN1dtaU9wZXJhdG9yTm90SXNBTm9kZUBANkJADQorOyBjb25zdCAgV21pT3BlcmF0b3JOb3RMaWtlTm9kZTo6YHZmdGFibGUnDQorPz9fN1dtaU9wZXJhdG9yTm90TGlrZU5vZGVAQDZCQA0KKzsgY29uc3QgIFdtaU9yTm9kZTo6YHZmdGFibGUnDQorPz9fN1dtaU9yTm9kZUBANkJADQorOyBjb25zdCAgV21pUmFuZ2VOb2RlOjpgdmZ0YWJsZScNCis/P183V21pUmFuZ2VOb2RlQEA2QkANCis7IGNvbnN0ICBXbWlTaWduZWRJbnRlZ2VyTm9kZTo6YHZmdGFibGUnDQorPz9fN1dtaVNpZ25lZEludGVnZXJOb2RlQEA2QkANCis7IGNvbnN0ICBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlOjpgdmZ0YWJsZScNCis/P183V21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZUBANkJADQorOyBjb25zdCAgV21pU3RyaW5nTm9kZTo6YHZmdGFibGUnDQorPz9fN1dtaVN0cmluZ05vZGVAQDZCQA0KKzsgY29uc3QgIFdtaVN0cmluZ1JhbmdlTm9kZTo6YHZmdGFibGUnDQorPz9fN1dtaVN0cmluZ1JhbmdlTm9kZUBANkJADQorOyBjb25zdCAgV21pVHJlZU5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlUcmVlTm9kZUBANkJADQorOyBjb25zdCAgV21pVHJlZU5vZGVJdGVyYXRvcjo6YHZmdGFibGUnDQorPz9fN1dtaVRyZWVOb2RlSXRlcmF0b3JAQDZCQA0KKzsgY29uc3QgIFdtaVVuc2lnbmVkSW50ZWdlck5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlVbnNpZ25lZEludGVnZXJOb2RlQEA2QkANCis7IGNvbnN0ICBXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGVAQDZCQA0KKzsgY29uc3QgIFdtaVZhbHVlTm9kZTo6YHZmdGFibGUnDQorPz9fN1dtaVZhbHVlTm9kZUBANkJADQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQcm92QW5hbHlzZXI6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GUHJvdkFuYWx5c2VyQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQcm92RGlzcGxheVN0cmluZ1R5cGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GUHJvdkRpc3BsYXlTdHJpbmdUeXBlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQcm92RXZlbnRPYmplY3Q6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GUHJvdkV2ZW50T2JqZWN0QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQcm92R2F1Z2VUeXBlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRlByb3ZHYXVnZVR5cGVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFByb3ZJbnN0YW5jZVR5cGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GUHJvdkluc3RhbmNlVHlwZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUHJvdkludGVnZXJUeXBlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRlByb3ZJbnRlZ2VyVHlwZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUHJvdk9jdGV0U3RyaW5nVHlwZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZQcm92T2N0ZXRTdHJpbmdUeXBlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQcm92T3BhcXVlVHlwZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZQcm92T3BhcXVlVHlwZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUHJvdlBoeXNBZGRyZXNzVHlwZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZQcm92UGh5c0FkZHJlc3NUeXBlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQcm92UG9zaXRpdmVSYW5nZWRUeXBlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRlByb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdtaUFuZE5vZGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GV21pQW5kTm9kZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV21pTm90Tm9kZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZXbWlOb3ROb2RlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXbWlPcGVyYXRvckVxdWFsTm9kZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZXbWlPcGVyYXRvckVxdWFsTm9kZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GV21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdtaU9wZXJhdG9yRXF1YWxPckxlc3NOb2RlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRldtaU9wZXJhdG9yRXF1YWxPckxlc3NOb2RlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXbWlPcGVyYXRvckdyZWF0ZXJOb2RlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRldtaU9wZXJhdG9yR3JlYXRlck5vZGVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdtaU9wZXJhdG9ySXNBTm9kZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZXbWlPcGVyYXRvcklzQU5vZGVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdtaU9wZXJhdG9yTGVzc05vZGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GV21pT3BlcmF0b3JMZXNzTm9kZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV21pT3BlcmF0b3JMaWtlTm9kZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZXbWlPcGVyYXRvckxpa2VOb2RlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXbWlPcGVyYXRvck5vdEVxdWFsTm9kZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZXbWlPcGVyYXRvck5vdEVxdWFsTm9kZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV21pT3BlcmF0b3JOb3RJc0FOb2RlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRldtaU9wZXJhdG9yTm90SXNBTm9kZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV21pT3BlcmF0b3JOb3RMaWtlTm9kZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZXbWlPcGVyYXRvck5vdExpa2VOb2RlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXbWlPck5vZGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GV21pT3JOb2RlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXbWlUcmVlTm9kZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZXbWlUcmVlTm9kZUBAUUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIFdtaVJhbmdlTm9kZSAqIF9fcHRyNjQgX19jZGVjbCBRdWVyeVByZXByb2Nlc3Nvcjo6QWxsb2NJbmZpbml0ZVJhbmdlTm9kZSh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWxsb2NJbmZpbml0ZVJhbmdlTm9kZUBRdWVyeVByZXByb2Nlc3NvckBATUVBQVBFQVZXbWlSYW5nZU5vZGVAQFBFQVhQRUFHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgX19jZGVjbCBRdWVyeVByZXByb2Nlc3Nvcjo6QWxsb2NUeXBlTm9kZSh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsc3RydWN0IHRhZ1ZBUklBTlQgJiBfX3B0cjY0LGVudW0gV21pVmFsdWVOb2RlOjpXbWlWYWx1ZUZ1bmN0aW9uLGVudW0gV21pVmFsdWVOb2RlOjpXbWlWYWx1ZUZ1bmN0aW9uLGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9BbGxvY1R5cGVOb2RlQFF1ZXJ5UHJlcHJvY2Vzc29yQEBNRUFBUEVBVldtaVRyZWVOb2RlQEBQRUFYUEVBR0FFQVV0YWdWQVJJQU5UQEBXNFdtaVZhbHVlRnVuY3Rpb25AV21pVmFsdWVOb2RlQEAzUEVBVjJAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBQcm92QW5hbHlzZXI6OkFuYWx5c2UoY2xhc3MgUHJvdkxleGljb24gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCxpbnQsaW50LGludCkgX19wdHI2NA0KKz9BbmFseXNlQFByb3ZBbmFseXNlckBATUVBQUhQRUFWUHJvdkxleGljb25AQEFFQUtHUEVCRzFISEhAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgUHJvdkJpdFN0cmluZ1R5cGU6OkJpdFN0cmluZ0RlZih2b2lkKSBfX3B0cjY0DQorP0JpdFN0cmluZ0RlZkBQcm92Qml0U3RyaW5nVHlwZUBAQUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBQcm92UG9zaXRpdmVSYW5nZWRUeXBlOjpDaGVjayh1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9DaGVja0BQcm92UG9zaXRpdmVSYW5nZWRUeXBlQEBRRUFBSEFFQktAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUHJvdkV2ZW50T2JqZWN0OjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQFByb3ZFdmVudE9iamVjdEBAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXbWlSYW5nZU5vZGU6OkNsb3NlZExvd2VyQm91bmQodm9pZCkgX19wdHI2NA0KKz9DbG9zZWRMb3dlckJvdW5kQFdtaVJhbmdlTm9kZUBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXbWlSYW5nZU5vZGU6OkNsb3NlZFVwcGVyQm91bmQodm9pZCkgX19wdHI2NA0KKz9DbG9zZWRVcHBlckJvdW5kQFdtaVJhbmdlTm9kZUBAUUVBQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIFByb3ZEZWJ1Z0xvZzo6Q2xvc2Vkb3duKHZvaWQpDQorP0Nsb3NlZG93bkBQcm92RGVidWdMb2dAQFNBWFhaDQorOyBwcm90ZWN0ZWQ6IGVudW0gUHJvdk9iamVjdElkZW50aWZpZXI6OkNvbXBhcmlzb24gIF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXI6OkNvbXBhcmUoY2xhc3MgUHJvdk9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIFByb3ZPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db21wYXJlQFByb3ZPYmplY3RJZGVudGlmaWVyQEBJRUJBP0FXNENvbXBhcmlzb25AMUBBRUJWMUAwQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFdtaVJhbmdlTm9kZTo6Q29tcGFyZVByb3BlcnR5TmFtZShjbGFzcyBXbWlSYW5nZU5vZGUgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbXBhcmVQcm9wZXJ0eU5hbWVAV21pUmFuZ2VOb2RlQEBRRUFBSkFFQVYxQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBXbWlWYWx1ZU5vZGU6OkNvbXBhcmVQcm9wZXJ0eU5hbWUoY2xhc3MgV21pVmFsdWVOb2RlICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db21wYXJlUHJvcGVydHlOYW1lQFdtaVZhbHVlTm9kZUBAUUVBQUpBRUFWMUBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBQcm92RXZlbnRPYmplY3Q6OkNvbXBsZXRlKHZvaWQpIF9fcHRyNjQNCis/Q29tcGxldGVAUHJvdkV2ZW50T2JqZWN0QEBVRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IGVudW0gV21pVHJpU3RhdGUgIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6OkNvbnZlcnRUb1JhbmdlcyhjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbnZlcnRUb1Jhbmdlc0BRdWVyeVByZXByb2Nlc3NvckBASUVBQT9BVzRXbWlUcmlTdGF0ZUBAQUVBUEVBVldtaVRyZWVOb2RlQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdkJpdFN0cmluZ1R5cGU6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFByb3ZCaXRTdHJpbmdUeXBlQEBVRUJBUEVBVlByb3ZJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdlZhbHVlICogX19wdHI2NCBfX2NkZWNsIFByb3ZDb3VudGVyNjQ6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFByb3ZDb3VudGVyNjRAQFVFQkFQRUFWUHJvdlZhbHVlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdkNvdW50ZXI2NFR5cGU6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFByb3ZDb3VudGVyNjRUeXBlQEBVRUJBUEVBVlByb3ZJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdlZhbHVlICogX19wdHI2NCBfX2NkZWNsIFByb3ZDb3VudGVyOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBQcm92Q291bnRlckBAVUVCQVBFQVZQcm92VmFsdWVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBQcm92Q291bnRlclR5cGU6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFByb3ZDb3VudGVyVHlwZUBAVUVCQVBFQVZQcm92SW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdkRhdGVUaW1lVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAUHJvdkRhdGVUaW1lVHlwZUBAVUVCQVBFQVZQcm92SW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdkRpc3BsYXlTdHJpbmdUeXBlOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBQcm92RGlzcGxheVN0cmluZ1R5cGVAQFVFQkFQRUFWUHJvdkluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92SW5zdGFuY2VUeXBlICogX19wdHI2NCBfX2NkZWNsIFByb3ZFbnVtZXJhdGVkVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAUHJvdkVudW1lcmF0ZWRUeXBlQEBVRUJBUEVBVlByb3ZJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAUHJvdkZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGVAQFVFQkFQRUFWUHJvdkluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92SW5zdGFuY2VUeXBlICogX19wdHI2NCBfX2NkZWNsIFByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAUHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlQEBVRUJBUEVBVlByb3ZJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBQcm92Rml4ZWRMZW5ndGhPcGFxdWVUeXBlOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBQcm92Rml4ZWRMZW5ndGhPcGFxdWVUeXBlQEBVRUJBUEVBVlByb3ZJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGU6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFByb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZUBAVUVCQVBFQVZQcm92SW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZWYWx1ZSAqIF9fcHRyNjQgX19jZGVjbCBQcm92R2F1Z2U6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFByb3ZHYXVnZUBAVUVCQVBFQVZQcm92VmFsdWVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBQcm92R2F1Z2VUeXBlOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBQcm92R2F1Z2VUeXBlQEBVRUJBUEVBVlByb3ZJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBQcm92SVBYQWRkcmVzc1R5cGU6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFByb3ZJUFhBZGRyZXNzVHlwZUBAVUVCQVBFQVZQcm92SW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZWYWx1ZSAqIF9fcHRyNjQgX19jZGVjbCBQcm92SW50ZWdlcjo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAUHJvdkludGVnZXJAQFVFQkFQRUFWUHJvdlZhbHVlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdkludGVnZXJUeXBlOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBQcm92SW50ZWdlclR5cGVAQFVFQkFQRUFWUHJvdkluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92VmFsdWUgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdklwQWRkcmVzczo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAUHJvdklwQWRkcmVzc0BAVUVCQVBFQVZQcm92VmFsdWVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBQcm92SXBBZGRyZXNzVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAUHJvdklwQWRkcmVzc1R5cGVAQFVFQkFQRUFWUHJvdkluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92SW5zdGFuY2VUeXBlICogX19wdHI2NCBfX2NkZWNsIFByb3ZNYWNBZGRyZXNzVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAUHJvdk1hY0FkZHJlc3NUeXBlQEBVRUJBUEVBVlByb3ZJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlICogX19wdHI2NCBfX2NkZWNsIFByb3ZOZWdhdGl2ZVJhbmdlVHlwZTo6Q29weSh2b2lkKSBfX3B0cjY0DQorP0NvcHlAUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlQEBVRUFBUEVBVjFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92SW5zdGFuY2VUeXBlICogX19wdHI2NCBfX2NkZWNsIFByb3ZOZXR3b3JrQWRkcmVzc1R5cGU6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFByb3ZOZXR3b3JrQWRkcmVzc1R5cGVAQFVFQkFQRUFWUHJvdkluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92VmFsdWUgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdk51bGw6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFByb3ZOdWxsQEBVRUJBUEVBVlByb3ZWYWx1ZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92SW5zdGFuY2VUeXBlICogX19wdHI2NCBfX2NkZWNsIFByb3ZOdWxsVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAUHJvdk51bGxUeXBlQEBVRUJBUEVBVlByb3ZJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBQcm92T1NJQWRkcmVzc1R5cGU6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFByb3ZPU0lBZGRyZXNzVHlwZUBAVUVCQVBFQVZQcm92SW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZWYWx1ZSAqIF9fcHRyNjQgX19jZGVjbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAUHJvdk9iamVjdElkZW50aWZpZXJAQFVFQkFQRUFWUHJvdlZhbHVlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXJUeXBlOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBQcm92T2JqZWN0SWRlbnRpZmllclR5cGVAQFVFQkFQRUFWUHJvdkluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92VmFsdWUgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdk9jdGV0U3RyaW5nOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBQcm92T2N0ZXRTdHJpbmdAQFVFQkFQRUFWUHJvdlZhbHVlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdk9jdGV0U3RyaW5nVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAUHJvdk9jdGV0U3RyaW5nVHlwZUBAVUVCQVBFQVZQcm92SW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZWYWx1ZSAqIF9fcHRyNjQgX19jZGVjbCBQcm92T3BhcXVlOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBQcm92T3BhcXVlQEBVRUJBUEVBVlByb3ZWYWx1ZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92SW5zdGFuY2VUeXBlICogX19wdHI2NCBfX2NkZWNsIFByb3ZPcGFxdWVUeXBlOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBQcm92T3BhcXVlVHlwZUBAVUVCQVBFQVZQcm92SW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdlBoeXNBZGRyZXNzVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAUHJvdlBoeXNBZGRyZXNzVHlwZUBAVUVCQVBFQVZQcm92SW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZQb3NpdGl2ZVJhbmdlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBQcm92UG9zaXRpdmVSYW5nZVR5cGU6OkNvcHkodm9pZCkgX19wdHI2NA0KKz9Db3B5QFByb3ZQb3NpdGl2ZVJhbmdlVHlwZUBAVUVBQVBFQVYxQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBQcm92Um93U3RhdHVzVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAUHJvdlJvd1N0YXR1c1R5cGVAQFVFQkFQRUFWUHJvdkluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92VmFsdWUgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdlRpbWVUaWNrczo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAUHJvdlRpbWVUaWNrc0BAVUVCQVBFQVZQcm92VmFsdWVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBQcm92VGltZVRpY2tzVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAUHJvdlRpbWVUaWNrc1R5cGVAQFVFQkFQRUFWUHJvdkluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92SW5zdGFuY2VUeXBlICogX19wdHI2NCBfX2NkZWNsIFByb3ZVRFBBZGRyZXNzVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAUHJvdlVEUEFkZHJlc3NUeXBlQEBVRUJBUEVBVlByb3ZJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdlZhbHVlICogX19wdHI2NCBfX2NkZWNsIFByb3ZVSW50ZWdlcjMyOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBQcm92VUludGVnZXIzMkBAVUVCQVBFQVZQcm92VmFsdWVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0IF9fY2RlY2wgV21pQW5kTm9kZTo6Q29weSh2b2lkKSBfX3B0cjY0DQorP0NvcHlAV21pQW5kTm9kZUBAVUVBQVBFQVZXbWlUcmVlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgX19jZGVjbCBXbWlOb3ROb2RlOjpDb3B5KHZvaWQpIF9fcHRyNjQNCis/Q29weUBXbWlOb3ROb2RlQEBVRUFBUEVBVldtaVRyZWVOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCBfX2NkZWNsIFdtaU51bGxOb2RlOjpDb3B5KHZvaWQpIF9fcHRyNjQNCis/Q29weUBXbWlOdWxsTm9kZUBAVUVBQVBFQVZXbWlUcmVlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgX19jZGVjbCBXbWlOdWxsUmFuZ2VOb2RlOjpDb3B5KHZvaWQpIF9fcHRyNjQNCis/Q29weUBXbWlOdWxsUmFuZ2VOb2RlQEBVRUFBUEVBVldtaVRyZWVOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCBfX2NkZWNsIFdtaU9wZXJhdG9yRXF1YWxOb2RlOjpDb3B5KHZvaWQpIF9fcHRyNjQNCis/Q29weUBXbWlPcGVyYXRvckVxdWFsTm9kZUBAVUVBQVBFQVZXbWlUcmVlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgX19jZGVjbCBXbWlPcGVyYXRvckVxdWFsT3JHcmVhdGVyTm9kZTo6Q29weSh2b2lkKSBfX3B0cjY0DQorP0NvcHlAV21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGVAQFVFQUFQRUFWV21pVHJlZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0IF9fY2RlY2wgV21pT3BlcmF0b3JFcXVhbE9yTGVzc05vZGU6OkNvcHkodm9pZCkgX19wdHI2NA0KKz9Db3B5QFdtaU9wZXJhdG9yRXF1YWxPckxlc3NOb2RlQEBVRUFBUEVBVldtaVRyZWVOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCBfX2NkZWNsIFdtaU9wZXJhdG9yR3JlYXRlck5vZGU6OkNvcHkodm9pZCkgX19wdHI2NA0KKz9Db3B5QFdtaU9wZXJhdG9yR3JlYXRlck5vZGVAQFVFQUFQRUFWV21pVHJlZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0IF9fY2RlY2wgV21pT3BlcmF0b3JJc0FOb2RlOjpDb3B5KHZvaWQpIF9fcHRyNjQNCis/Q29weUBXbWlPcGVyYXRvcklzQU5vZGVAQFVFQUFQRUFWV21pVHJlZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0IF9fY2RlY2wgV21pT3BlcmF0b3JMZXNzTm9kZTo6Q29weSh2b2lkKSBfX3B0cjY0DQorP0NvcHlAV21pT3BlcmF0b3JMZXNzTm9kZUBAVUVBQVBFQVZXbWlUcmVlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgX19jZGVjbCBXbWlPcGVyYXRvckxpa2VOb2RlOjpDb3B5KHZvaWQpIF9fcHRyNjQNCis/Q29weUBXbWlPcGVyYXRvckxpa2VOb2RlQEBVRUFBUEVBVldtaVRyZWVOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCBfX2NkZWNsIFdtaU9wZXJhdG9yTm90RXF1YWxOb2RlOjpDb3B5KHZvaWQpIF9fcHRyNjQNCis/Q29weUBXbWlPcGVyYXRvck5vdEVxdWFsTm9kZUBAVUVBQVBFQVZXbWlUcmVlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgX19jZGVjbCBXbWlPcGVyYXRvck5vdElzQU5vZGU6OkNvcHkodm9pZCkgX19wdHI2NA0KKz9Db3B5QFdtaU9wZXJhdG9yTm90SXNBTm9kZUBAVUVBQVBFQVZXbWlUcmVlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgX19jZGVjbCBXbWlPcGVyYXRvck5vdExpa2VOb2RlOjpDb3B5KHZvaWQpIF9fcHRyNjQNCis/Q29weUBXbWlPcGVyYXRvck5vdExpa2VOb2RlQEBVRUFBUEVBVldtaVRyZWVOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCBfX2NkZWNsIFdtaU9yTm9kZTo6Q29weSh2b2lkKSBfX3B0cjY0DQorP0NvcHlAV21pT3JOb2RlQEBVRUFBUEVBVldtaVRyZWVOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCBfX2NkZWNsIFdtaVNpZ25lZEludGVnZXJOb2RlOjpDb3B5KHZvaWQpIF9fcHRyNjQNCis/Q29weUBXbWlTaWduZWRJbnRlZ2VyTm9kZUBAVUVBQVBFQVZXbWlUcmVlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgX19jZGVjbCBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlOjpDb3B5KHZvaWQpIF9fcHRyNjQNCis/Q29weUBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBVRUFBUEVBVldtaVRyZWVOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCBfX2NkZWNsIFdtaVN0cmluZ05vZGU6OkNvcHkodm9pZCkgX19wdHI2NA0KKz9Db3B5QFdtaVN0cmluZ05vZGVAQFVFQUFQRUFWV21pVHJlZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0IF9fY2RlY2wgV21pU3RyaW5nUmFuZ2VOb2RlOjpDb3B5KHZvaWQpIF9fcHRyNjQNCis/Q29weUBXbWlTdHJpbmdSYW5nZU5vZGVAQFVFQUFQRUFWV21pVHJlZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0IF9fY2RlY2wgV21pVHJlZU5vZGU6OkNvcHkodm9pZCkgX19wdHI2NA0KKz9Db3B5QFdtaVRyZWVOb2RlQEBVRUFBUEVBVjFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlUcmVlTm9kZUl0ZXJhdG9yICogX19wdHI2NCBfX2NkZWNsIFdtaVRyZWVOb2RlSXRlcmF0b3I6OkNvcHkodm9pZCkgX19wdHI2NA0KKz9Db3B5QFdtaVRyZWVOb2RlSXRlcmF0b3JAQFVFQUFQRUFWMUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCBfX2NkZWNsIFdtaVVuc2lnbmVkSW50ZWdlck5vZGU6OkNvcHkodm9pZCkgX19wdHI2NA0KKz9Db3B5QFdtaVVuc2lnbmVkSW50ZWdlck5vZGVAQFVFQUFQRUFWV21pVHJlZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0IF9fY2RlY2wgV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlOjpDb3B5KHZvaWQpIF9fcHRyNjQNCis/Q29weUBXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGVAQFVFQUFQRUFWV21pVHJlZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0IF9fY2RlY2wgV21pVHJlZU5vZGU6OkNvcHlOb2RlKHZvaWQpIF9fcHRyNjQNCis/Q29weU5vZGVAV21pVHJlZU5vZGVAQFVFQUFQRUFWMUBYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6OkNvdW50RGlzanVuY3Rpb25zKGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db3VudERpc2p1bmN0aW9uc0BRdWVyeVByZXByb2Nlc3NvckBASUVBQVhQRUFWV21pVHJlZU5vZGVAQEFFQUtAWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFdtaVRyaVN0YXRlICBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpDcmVhdGVEaXNqdW5jdGlvbkNvbnRhaW5lcih2b2lkICogX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0LGNsYXNzIERpc2p1bmN0aW9ucyAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZURpc2p1bmN0aW9uQ29udGFpbmVyQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJRUFBP0FXNFdtaVRyaVN0YXRlQEBQRUFYUEVBVldtaVRyZWVOb2RlQEBLUEVBUEVBR0FFQVBFQVZEaXNqdW5jdGlvbnNAQEBaDQorOyBwcm90ZWN0ZWQ6IGVudW0gV21pVHJpU3RhdGUgIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6OkNyZWF0ZURpc2p1bmN0aW9ucyh2b2lkICogX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQsY2xhc3MgRGlzanVuY3Rpb25zICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q3JlYXRlRGlzanVuY3Rpb25zQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJRUFBP0FXNFdtaVRyaVN0YXRlQEBQRUFYUEVBVldtaVRyZWVOb2RlQEBQRUFWRGlzanVuY3Rpb25zQEBLUEVBUEVBR0FFQUtAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIFByb3ZMZXhpY29uICogX19wdHI2NCBfX2NkZWNsIFByb3ZBbmFseXNlcjo6Q3JlYXRlTGV4aWNvbih2b2lkKSBfX3B0cjY0DQorP0NyZWF0ZUxleGljb25AUHJvdkFuYWx5c2VyQEBNRUFBUEVBVlByb3ZMZXhpY29uQEBYWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFdtaVRyaVN0YXRlICBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpDcmVhdGVQYXJ0aXRpb25TZXQoY2xhc3MgRGlzanVuY3Rpb25zICogX19wdHI2NCxjbGFzcyBQYXJ0aXRpb25TZXQgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVQYXJ0aXRpb25TZXRAUXVlcnlQcmVwcm9jZXNzb3JAQElFQUE/QVc0V21pVHJpU3RhdGVAQFBFQVZEaXNqdW5jdGlvbnNAQEFFQVBFQVZQYXJ0aXRpb25TZXRAQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZPYmplY3RJZGVudGlmaWVyICogX19wdHI2NCBfX2NkZWNsIFByb3ZPYmplY3RJZGVudGlmaWVyOjpDdXQoY2xhc3MgUHJvdk9iamVjdElkZW50aWZpZXIgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0N1dEBQcm92T2JqZWN0SWRlbnRpZmllckBAUUVCQVBFQVYxQEFFQVYxQEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBQcm92RGF0ZVRpbWVUeXBlOjpEYXRlVGltZURlZih2b2lkKSBfX3B0cjY0DQorP0RhdGVUaW1lRGVmQFByb3ZEYXRlVGltZVR5cGVAQEFFQUFIWFoNCis7IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIERiY3NUb1VuaWNvZGVTdHJpbmcoY2hhciBjb25zdCAqIF9fcHRyNjQpDQorP0RiY3NUb1VuaWNvZGVTdHJpbmdAQFlBUEVBR1BFQkRAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIFByb3ZBbmFseXNlcjo6RGVjQ2hhclRvRGVjSW50ZWdlcihjaGFyKQ0KKz9EZWNDaGFyVG9EZWNJbnRlZ2VyQFByb3ZBbmFseXNlckBAU0FLREBaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIF9fY2RlY2wgUHJvdkFuYWx5c2VyOjpEZWNJbnRlZ2VyVG9EZWNDaGFyKHVuc2lnbmVkIGNoYXIpDQorP0RlY0ludGVnZXJUb0RlY0NoYXJAUHJvdkFuYWx5c2VyQEBTQURFQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgUHJvdkFuYWx5c2VyOjpEZWNJbnRlZ2VyVG9EZWNXQ2hhcih1bnNpZ25lZCBjaGFyKQ0KKz9EZWNJbnRlZ2VyVG9EZWNXQ2hhckBQcm92QW5hbHlzZXJAQFNBR0VAWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBfX2NkZWNsIFByb3ZBbmFseXNlcjo6RGVjSW50ZWdlclRvSGV4Q2hhcih1bnNpZ25lZCBjaGFyKQ0KKz9EZWNJbnRlZ2VyVG9IZXhDaGFyQFByb3ZBbmFseXNlckBAU0FERUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIFByb3ZBbmFseXNlcjo6RGVjSW50ZWdlclRvSGV4V0NoYXIodW5zaWduZWQgY2hhcikNCis/RGVjSW50ZWdlclRvSGV4V0NoYXJAUHJvdkFuYWx5c2VyQEBTQUdFQFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgX19jZGVjbCBQcm92QW5hbHlzZXI6OkRlY0ludGVnZXJUb09jdENoYXIodW5zaWduZWQgY2hhcikNCis/RGVjSW50ZWdlclRvT2N0Q2hhckBQcm92QW5hbHlzZXJAQFNBREVAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBQcm92QW5hbHlzZXI6OkRlY0ludGVnZXJUb09jdFdDaGFyKHVuc2lnbmVkIGNoYXIpDQorP0RlY0ludGVnZXJUb09jdFdDaGFyQFByb3ZBbmFseXNlckBAU0FHRUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgUHJvdkFuYWx5c2VyOjpEZWNXQ2hhclRvRGVjSW50ZWdlcih1bnNpZ25lZCBzaG9ydCkNCis/RGVjV0NoYXJUb0RlY0ludGVnZXJAUHJvdkFuYWx5c2VyQEBTQUtHQFoNCis7IHByb3RlY3RlZDogZW51bSBRdWVyeVByZXByb2Nlc3Nvcjo6UXVhZFN0YXRlICBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpEaXNqdW5jdGl2ZU5vcm1hbEZvcm0oY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9EaXNqdW5jdGl2ZU5vcm1hbEZvcm1AUXVlcnlQcmVwcm9jZXNzb3JAQElFQUE/QVc0UXVhZFN0YXRlQDFAQUVBUEVBVldtaVRyZWVOb2RlQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFByb3ZEYXRlVGltZVR5cGU6OkVuY29kZSh1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9FbmNvZGVAUHJvdkRhdGVUaW1lVHlwZUBAQUVBQVhBRUJLMDAwMDAwMDAwMEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBQcm92RW51bWVyYXRlZFR5cGU6OkVudW1lcmF0aW9uRGVmKHZvaWQpIF9fcHRyNjQNCis/RW51bWVyYXRpb25EZWZAUHJvdkVudW1lcmF0ZWRUeXBlQEBBRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgUHJvdkNvdW50ZXI2NDo6RXF1aXZhbGVudChjbGFzcyBQcm92VmFsdWUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAUHJvdkNvdW50ZXI2NEBATUVCQUhBRUJWUHJvdlZhbHVlQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBQcm92Q291bnRlcjY0OjpFcXVpdmFsZW50KGNsYXNzIFByb3ZDb3VudGVyNjQgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAUHJvdkNvdW50ZXI2NEBAUUVCQUhBRUJWMUBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFByb3ZDb3VudGVyNjRUeXBlOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAUHJvdkNvdW50ZXI2NFR5cGVAQE1FQkFIQUVCVlByb3ZJbnN0YW5jZVR5cGVAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgUHJvdkNvdW50ZXI6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdlZhbHVlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFByb3ZDb3VudGVyQEBNRUJBSEFFQlZQcm92VmFsdWVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFByb3ZDb3VudGVyOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZDb3VudGVyIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFByb3ZDb3VudGVyQEBRRUJBSEFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgUHJvdkNvdW50ZXJUeXBlOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAUHJvdkNvdW50ZXJUeXBlQEBNRUJBSEFFQlZQcm92SW5zdGFuY2VUeXBlQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFByb3ZHYXVnZTo6RXF1aXZhbGVudChjbGFzcyBQcm92VmFsdWUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAUHJvdkdhdWdlQEBNRUJBSEFFQlZQcm92VmFsdWVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFByb3ZHYXVnZTo6RXF1aXZhbGVudChjbGFzcyBQcm92R2F1Z2UgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAUHJvdkdhdWdlQEBRRUJBSEFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgUHJvdkdhdWdlVHlwZTo6RXF1aXZhbGVudChjbGFzcyBQcm92SW5zdGFuY2VUeXBlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFByb3ZHYXVnZVR5cGVAQE1FQkFIQUVCVlByb3ZJbnN0YW5jZVR5cGVAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgUHJvdkludGVnZXI6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdlZhbHVlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFByb3ZJbnRlZ2VyQEBNRUJBSEFFQlZQcm92VmFsdWVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFByb3ZJbnRlZ2VyOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZJbnRlZ2VyIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFByb3ZJbnRlZ2VyQEBRRUJBSEFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgUHJvdkludGVnZXJUeXBlOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAUHJvdkludGVnZXJUeXBlQEBNRUJBSEFFQlZQcm92SW5zdGFuY2VUeXBlQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFByb3ZJcEFkZHJlc3M6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdlZhbHVlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFByb3ZJcEFkZHJlc3NAQE1FQkFIQUVCVlByb3ZWYWx1ZUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUHJvdklwQWRkcmVzczo6RXF1aXZhbGVudChjbGFzcyBQcm92SXBBZGRyZXNzIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFByb3ZJcEFkZHJlc3NAQFFFQkFIQUVCVjFAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBQcm92SXBBZGRyZXNzVHlwZTo6RXF1aXZhbGVudChjbGFzcyBQcm92SW5zdGFuY2VUeXBlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFByb3ZJcEFkZHJlc3NUeXBlQEBNRUJBSEFFQlZQcm92SW5zdGFuY2VUeXBlQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFByb3ZOZXR3b3JrQWRkcmVzc1R5cGU6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdkluc3RhbmNlVHlwZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBQcm92TmV0d29ya0FkZHJlc3NUeXBlQEBNRUJBSEFFQlZQcm92SW5zdGFuY2VUeXBlQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFByb3ZOdWxsOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZWYWx1ZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBQcm92TnVsbEBATUVCQUhBRUJWUHJvdlZhbHVlQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFByb3ZOdWxsVHlwZTo6RXF1aXZhbGVudChjbGFzcyBQcm92SW5zdGFuY2VUeXBlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFByb3ZOdWxsVHlwZUBATUVCQUhBRUJWUHJvdkluc3RhbmNlVHlwZUBAQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXI6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdk9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAUHJvdk9iamVjdElkZW50aWZpZXJAQElFQkFIQUVCVjFAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6RXF1aXZhbGVudChjbGFzcyBQcm92VmFsdWUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAUHJvdk9iamVjdElkZW50aWZpZXJAQE1FQkFIQUVCVlByb3ZWYWx1ZUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXI6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdk9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBQcm92T2JqZWN0SWRlbnRpZmllckBAUUVCQUhBRUJWMUBLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBQcm92T2JqZWN0SWRlbnRpZmllclR5cGU6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdkluc3RhbmNlVHlwZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBQcm92T2JqZWN0SWRlbnRpZmllclR5cGVAQE1FQkFIQUVCVlByb3ZJbnN0YW5jZVR5cGVAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgUHJvdk9jdGV0U3RyaW5nOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZWYWx1ZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBQcm92T2N0ZXRTdHJpbmdAQE1FQkFIQUVCVlByb3ZWYWx1ZUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUHJvdk9jdGV0U3RyaW5nOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZPY3RldFN0cmluZyBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBQcm92T2N0ZXRTdHJpbmdAQFFFQkFIQUVCVjFAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBQcm92T2N0ZXRTdHJpbmdUeXBlOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAUHJvdk9jdGV0U3RyaW5nVHlwZUBATUVCQUhBRUJWUHJvdkluc3RhbmNlVHlwZUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBQcm92T3BhcXVlOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZWYWx1ZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBQcm92T3BhcXVlQEBNRUJBSEFFQlZQcm92VmFsdWVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFByb3ZPcGFxdWU6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdk9wYXF1ZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBQcm92T3BhcXVlQEBRRUJBSEFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgUHJvdk9wYXF1ZVR5cGU6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdkluc3RhbmNlVHlwZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBQcm92T3BhcXVlVHlwZUBATUVCQUhBRUJWUHJvdkluc3RhbmNlVHlwZUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBQcm92VGltZVRpY2tzOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZWYWx1ZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBQcm92VGltZVRpY2tzQEBNRUJBSEFFQlZQcm92VmFsdWVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFByb3ZUaW1lVGlja3M6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdlRpbWVUaWNrcyBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBQcm92VGltZVRpY2tzQEBRRUJBSEFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgUHJvdlRpbWVUaWNrc1R5cGU6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdkluc3RhbmNlVHlwZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBQcm92VGltZVRpY2tzVHlwZUBATUVCQUhBRUJWUHJvdkluc3RhbmNlVHlwZUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBQcm92VUludGVnZXIzMjo6RXF1aXZhbGVudChjbGFzcyBQcm92VmFsdWUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAUHJvdlVJbnRlZ2VyMzJAQE1FQkFIQUVCVlByb3ZWYWx1ZUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUHJvdlVJbnRlZ2VyMzI6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdlVJbnRlZ2VyMzIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAUHJvdlVJbnRlZ2VyMzJAQFFFQkFIQUVCVjFAQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6OkV2YWx1YXRlKHZvaWQgKiBfX3B0cjY0LHN0cnVjdCBTUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAmIF9fcHRyNjQsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9FdmFsdWF0ZUBRdWVyeVByZXByb2Nlc3NvckBASUVBQUhQRUFYQUVBVVNRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBQRUFQRUFWV21pVHJlZU5vZGVAQEBaDQorOyBwcm90ZWN0ZWQ6IGVudW0gV21pVHJpU3RhdGUgIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6OkV2YWx1YXRlQW5kRXhwcmVzc2lvbihjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0V2YWx1YXRlQW5kRXhwcmVzc2lvbkBRdWVyeVByZXByb2Nlc3NvckBASUVBQT9BVzRXbWlUcmlTdGF0ZUBAQUVBUEVBVldtaVRyZWVOb2RlQEBAWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFdtaVRyaVN0YXRlICBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpFdmFsdWF0ZU5vdEVxdWFsRXhwcmVzc2lvbihjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0V2YWx1YXRlTm90RXF1YWxFeHByZXNzaW9uQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJRUFBP0FXNFdtaVRyaVN0YXRlQEBBRUFQRUFWV21pVHJlZU5vZGVAQEBaDQorOyBwcm90ZWN0ZWQ6IGVudW0gV21pVHJpU3RhdGUgIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6OkV2YWx1YXRlTm90RXhwcmVzc2lvbihjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0V2YWx1YXRlTm90RXhwcmVzc2lvbkBRdWVyeVByZXByb2Nlc3NvckBASUVBQT9BVzRXbWlUcmlTdGF0ZUBAQUVBUEVBVldtaVRyZWVOb2RlQEBAWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFdtaVRyaVN0YXRlICBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpFdmFsdWF0ZU9yRXhwcmVzc2lvbihjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0V2YWx1YXRlT3JFeHByZXNzaW9uQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJRUFBP0FXNFdtaVRyaVN0YXRlQEBBRUFQRUFWV21pVHJlZU5vZGVAQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZMZXhpY29uICogX19wdHI2NCBfX2NkZWNsIFByb3ZBbmFseXNlcjo6R2V0KGludCxpbnQsaW50KSBfX3B0cjY0DQorP0dldEBQcm92QW5hbHlzZXJAQFFFQUFQRUFWUHJvdkxleGljb25AQEhISEBaDQorOyBwcml2YXRlOiBjbGFzcyBQcm92TGV4aWNvbiAqIF9fcHRyNjQgX19jZGVjbCBQcm92Qml0U3RyaW5nVHlwZTo6R2V0KHZvaWQpIF9fcHRyNjQNCis/R2V0QFByb3ZCaXRTdHJpbmdUeXBlQEBBRUFBUEVBVlByb3ZMZXhpY29uQEBYWg0KKzsgcHJpdmF0ZTogY2xhc3MgUHJvdkxleGljb24gKiBfX3B0cjY0IF9fY2RlY2wgUHJvdkRhdGVUaW1lVHlwZTo6R2V0KHZvaWQpIF9fcHRyNjQNCis/R2V0QFByb3ZEYXRlVGltZVR5cGVAQEFFQUFQRUFWUHJvdkxleGljb25AQFhaDQorOyBwcml2YXRlOiBjbGFzcyBQcm92TGV4aWNvbiAqIF9fcHRyNjQgX19jZGVjbCBQcm92RW51bWVyYXRlZFR5cGU6OkdldCh2b2lkKSBfX3B0cjY0DQorP0dldEBQcm92RW51bWVyYXRlZFR5cGVAQEFFQUFQRUFWUHJvdkxleGljb25AQFhaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIFByb3ZMZXhpY29uICogX19wdHI2NCBfX2NkZWNsIFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGU6OkdldCh2b2lkKSBfX3B0cjY0DQorP0dldEBQcm92UG9zaXRpdmVSYW5nZWRUeXBlQEBJRUFBUEVBVlByb3ZMZXhpY29uQEBYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIFByb3ZPYmplY3RJZGVudGlmaWVyOjpHZXRBbGxvY2F0ZWRTdHJpbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRBbGxvY2F0ZWRTdHJpbmdAUHJvdk9iamVjdElkZW50aWZpZXJAQFFFQkFQRUFEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIERpc2p1bmN0aW9uczo6R2V0Q29uanVuY3Rpb25Db3VudCh2b2lkKSBfX3B0cjY0DQorP0dldENvbmp1bmN0aW9uQ291bnRARGlzanVuY3Rpb25zQEBRRUFBS1haDQorOyBwdWJsaWM6IGVudW0gV21pVmFsdWVOb2RlOjpXbWlWYWx1ZUZ1bmN0aW9uICBfX2NkZWNsIFdtaVZhbHVlTm9kZTo6R2V0Q29uc3RhbnRGdW5jdGlvbih2b2lkKSBfX3B0cjY0DQorP0dldENvbnN0YW50RnVuY3Rpb25AV21pVmFsdWVOb2RlQEBRRUFBP0FXNFdtaVZhbHVlRnVuY3Rpb25AMUBYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIFdtaVRyZWVOb2RlOjpHZXREYXRhKHZvaWQpIF9fcHRyNjQNCis/R2V0RGF0YUBXbWlUcmVlTm9kZUBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV21pVHJlZU5vZGU6OkdldERhdGEodm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERhdGFAV21pVHJlZU5vZGVAQFFFQUFYUEVBUEVBWEBaDQorOyBwdWJsaWM6IGNsYXNzIENvbmp1bmN0aW9ucyAqIF9fcHRyNjQgX19jZGVjbCBEaXNqdW5jdGlvbnM6OkdldERpc2p1bmN0aW9uKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/R2V0RGlzanVuY3Rpb25ARGlzanVuY3Rpb25zQEBRRUFBUEVBVkNvbmp1bmN0aW9uc0BAS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBEaXNqdW5jdGlvbnM6OkdldERpc2p1bmN0aW9uQ291bnQodm9pZCkgX19wdHI2NA0KKz9HZXREaXNqdW5jdGlvbkNvdW50QERpc2p1bmN0aW9uc0BAUUVBQUtYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIFByb3ZFdmVudE9iamVjdDo6R2V0SGFuZGxlKHZvaWQpIF9fcHRyNjQNCis/R2V0SGFuZGxlQFByb3ZFdmVudE9iamVjdEBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgUHJvdkNvdW50ZXI2NDo6R2V0SGlnaFZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0SGlnaFZhbHVlQFByb3ZDb3VudGVyNjRAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFdtaVJhbmdlTm9kZTo6R2V0SW5kZXgodm9pZCkgX19wdHI2NA0KKz9HZXRJbmRleEBXbWlSYW5nZU5vZGVAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFdtaVZhbHVlTm9kZTo6R2V0SW5kZXgodm9pZCkgX19wdHI2NA0KKz9HZXRJbmRleEBXbWlWYWx1ZU5vZGVAQFFFQUFLWFoNCis7IHB1YmxpYzogZW51bSBXbWlUcmlTdGF0ZSAgX19jZGVjbCBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlOjpHZXRJbnRlcnNlY3RpbmdSYW5nZShjbGFzcyBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlICYgX19wdHI2NCxjbGFzcyBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlICogX19wdHI2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0SW50ZXJzZWN0aW5nUmFuZ2VAV21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZUBAUUVBQT9BVzRXbWlUcmlTdGF0ZUBAQUVBVjFAQUVBUEVBVjFAQFoNCis7IHB1YmxpYzogZW51bSBXbWlUcmlTdGF0ZSAgX19jZGVjbCBXbWlTdHJpbmdSYW5nZU5vZGU6OkdldEludGVyc2VjdGluZ1JhbmdlKGNsYXNzIFdtaVN0cmluZ1JhbmdlTm9kZSAmIF9fcHRyNjQsY2xhc3MgV21pU3RyaW5nUmFuZ2VOb2RlICogX19wdHI2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0SW50ZXJzZWN0aW5nUmFuZ2VAV21pU3RyaW5nUmFuZ2VOb2RlQEBRRUFBP0FXNFdtaVRyaVN0YXRlQEBBRUFWMUBBRUFQRUFWMUBAWg0KKzsgcHVibGljOiBlbnVtIFdtaVRyaVN0YXRlICBfX2NkZWNsIFdtaVVuc2lnbmVkSW50ZWdlclJhbmdlTm9kZTo6R2V0SW50ZXJzZWN0aW5nUmFuZ2UoY2xhc3MgV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlICYgX19wdHI2NCxjbGFzcyBXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGUgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRJbnRlcnNlY3RpbmdSYW5nZUBXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGVAQFFFQUE/QVc0V21pVHJpU3RhdGVAQEFFQVYxQEFFQVBFQVYxQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCBfX2NkZWNsIFdtaVRyZWVOb2RlSXRlcmF0b3I6OkdldEl0ZXJhdG9yKHZvaWQpIF9fcHRyNjQNCis/R2V0SXRlcmF0b3JAV21pVHJlZU5vZGVJdGVyYXRvckBAUUVBQVBFQVZXbWlUcmVlTm9kZUBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFBhcnRpdGlvblNldDo6R2V0S2V5SW5kZXgodm9pZCkgX19wdHI2NA0KKz9HZXRLZXlJbmRleEBQYXJ0aXRpb25TZXRAQFFFQUFLWFoNCis7IHB1YmxpYzogY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0IF9fY2RlY2wgV21pVHJlZU5vZGU6OkdldExlZnQodm9pZCkgX19wdHI2NA0KKz9HZXRMZWZ0QFdtaVRyZWVOb2RlQEBRRUFBUEVBVjFAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdtaVRyZWVOb2RlOjpHZXRMZWZ0KGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldExlZnRAV21pVHJlZU5vZGVAQFFFQUFYQUVBUEVBUEVBVjFAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFByb3ZEZWJ1Z0xvZzo6R2V0TGV2ZWwodm9pZCkgX19wdHI2NA0KKz9HZXRMZXZlbEBQcm92RGVidWdMb2dAQFFFQUFLWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUHJvdkRlYnVnTG9nOjpHZXRMb2dnaW5nKHZvaWQpIF9fcHRyNjQNCis/R2V0TG9nZ2luZ0BQcm92RGVidWdMb2dAQFFFQUFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFByb3ZDb3VudGVyNjQ6OkdldExvd1ZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0TG93VmFsdWVAUHJvdkNvdW50ZXI2NEBAUUVCQUtYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlOjpHZXRMb3dlckJvdW5kKHZvaWQpIF9fcHRyNjQNCis/R2V0TG93ZXJCb3VuZEBQcm92TmVnYXRpdmVSYW5nZVR5cGVAQFFFQUFKWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFByb3ZQb3NpdGl2ZVJhbmdlVHlwZTo6R2V0TG93ZXJCb3VuZCh2b2lkKSBfX3B0cjY0DQorP0dldExvd2VyQm91bmRAUHJvdlBvc2l0aXZlUmFuZ2VUeXBlQEBRRUFBS1haDQorOyBwdWJsaWM6IGVudW0gV21pVHJpU3RhdGUgIF9fY2RlY2wgV21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZTo6R2V0T3ZlcmxhcHBpbmdSYW5nZShjbGFzcyBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlICYgX19wdHI2NCxjbGFzcyBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlICogX19wdHI2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0T3ZlcmxhcHBpbmdSYW5nZUBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBRRUFBP0FXNFdtaVRyaVN0YXRlQEBBRUFWMUBBRUFQRUFWMUBAWg0KKzsgcHVibGljOiBlbnVtIFdtaVRyaVN0YXRlICBfX2NkZWNsIFdtaVN0cmluZ1JhbmdlTm9kZTo6R2V0T3ZlcmxhcHBpbmdSYW5nZShjbGFzcyBXbWlTdHJpbmdSYW5nZU5vZGUgJiBfX3B0cjY0LGNsYXNzIFdtaVN0cmluZ1JhbmdlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE92ZXJsYXBwaW5nUmFuZ2VAV21pU3RyaW5nUmFuZ2VOb2RlQEBRRUFBP0FXNFdtaVRyaVN0YXRlQEBBRUFWMUBBRUFQRUFWMUBAWg0KKzsgcHVibGljOiBlbnVtIFdtaVRyaVN0YXRlICBfX2NkZWNsIFdtaVVuc2lnbmVkSW50ZWdlclJhbmdlTm9kZTo6R2V0T3ZlcmxhcHBpbmdSYW5nZShjbGFzcyBXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGUgJiBfX3B0cjY0LGNsYXNzIFdtaVVuc2lnbmVkSW50ZWdlclJhbmdlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE92ZXJsYXBwaW5nUmFuZ2VAV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBRRUFBP0FXNFdtaVRyaVN0YXRlQEBBRUFWMUBBRUFQRUFWMUBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgX19jZGVjbCBXbWlUcmVlTm9kZTo6R2V0UGFyZW50KHZvaWQpIF9fcHRyNjQNCis/R2V0UGFyZW50QFdtaVRyZWVOb2RlQEBRRUFBUEVBVjFAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdtaVRyZWVOb2RlOjpHZXRQYXJlbnQoY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0ICogX19wdHI2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UGFyZW50QFdtaVRyZWVOb2RlQEBRRUFBWEFFQVBFQVBFQVYxQEBaDQorOyBwdWJsaWM6IGNsYXNzIFBhcnRpdGlvblNldCAqIF9fcHRyNjQgX19jZGVjbCBQYXJ0aXRpb25TZXQ6OkdldFBhcnRpdGlvbih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldFBhcnRpdGlvbkBQYXJ0aXRpb25TZXRAQFFFQUFQRUFWMUBLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFBhcnRpdGlvblNldDo6R2V0UGFydGl0aW9uQ291bnQodm9pZCkgX19wdHI2NA0KKz9HZXRQYXJ0aXRpb25Db3VudEBQYXJ0aXRpb25TZXRAQFFFQUFLWFoNCis7IHB1YmxpYzogZW51bSBXbWlWYWx1ZU5vZGU6OldtaVZhbHVlRnVuY3Rpb24gIF9fY2RlY2wgV21pVmFsdWVOb2RlOjpHZXRQcm9wZXJ0eUZ1bmN0aW9uKHZvaWQpIF9fcHRyNjQNCis/R2V0UHJvcGVydHlGdW5jdGlvbkBXbWlWYWx1ZU5vZGVAQFFFQUE/QVc0V21pVmFsdWVGdW5jdGlvbkAxQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFdtaVJhbmdlTm9kZTo6R2V0UHJvcGVydHlOYW1lKHZvaWQpIF9fcHRyNjQNCis/R2V0UHJvcGVydHlOYW1lQFdtaVJhbmdlTm9kZUBAUUVBQVBFQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBXbWlWYWx1ZU5vZGU6OkdldFByb3BlcnR5TmFtZSh2b2lkKSBfX3B0cjY0DQorP0dldFByb3BlcnR5TmFtZUBXbWlWYWx1ZU5vZGVAQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIFByb3ZEZWJ1Z0xvZyAqIF9fcHRyNjQgX19jZGVjbCBQcm92RGVidWdMb2c6OkdldFByb3ZEZWJ1Z0xvZyhjaGFyKQ0KKz9HZXRQcm92RGVidWdMb2dAUHJvdkRlYnVnTG9nQEBTQVBFQVYxQERAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlSYW5nZU5vZGUgKiBfX3B0cjY0IF9fY2RlY2wgQ29uanVuY3Rpb25zOjpHZXRSYW5nZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldFJhbmdlQENvbmp1bmN0aW9uc0BAUUVBQVBFQVZXbWlSYW5nZU5vZGVAQEtAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlSYW5nZU5vZGUgKiBfX3B0cjY0IF9fY2RlY2wgUGFydGl0aW9uU2V0OjpHZXRSYW5nZSh2b2lkKSBfX3B0cjY0DQorP0dldFJhbmdlQFBhcnRpdGlvblNldEBAUUVBQVBFQVZXbWlSYW5nZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pUmFuZ2VOb2RlICogX19wdHI2NCBfX2NkZWNsIFdtaU9wZXJhdG9yRXF1YWxOb2RlOjpHZXRSYW5nZSh2b2lkKSBfX3B0cjY0DQorP0dldFJhbmdlQFdtaU9wZXJhdG9yRXF1YWxOb2RlQEBVRUFBUEVBVldtaVJhbmdlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlSYW5nZU5vZGUgKiBfX3B0cjY0IF9fY2RlY2wgV21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGU6OkdldFJhbmdlKHZvaWQpIF9fcHRyNjQNCis/R2V0UmFuZ2VAV21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGVAQFVFQUFQRUFWV21pUmFuZ2VOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVJhbmdlTm9kZSAqIF9fcHRyNjQgX19jZGVjbCBXbWlPcGVyYXRvckVxdWFsT3JMZXNzTm9kZTo6R2V0UmFuZ2Uodm9pZCkgX19wdHI2NA0KKz9HZXRSYW5nZUBXbWlPcGVyYXRvckVxdWFsT3JMZXNzTm9kZUBAVUVBQVBFQVZXbWlSYW5nZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pUmFuZ2VOb2RlICogX19wdHI2NCBfX2NkZWNsIFdtaU9wZXJhdG9yR3JlYXRlck5vZGU6OkdldFJhbmdlKHZvaWQpIF9fcHRyNjQNCis/R2V0UmFuZ2VAV21pT3BlcmF0b3JHcmVhdGVyTm9kZUBAVUVBQVBFQVZXbWlSYW5nZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pUmFuZ2VOb2RlICogX19wdHI2NCBfX2NkZWNsIFdtaU9wZXJhdG9ySXNBTm9kZTo6R2V0UmFuZ2Uodm9pZCkgX19wdHI2NA0KKz9HZXRSYW5nZUBXbWlPcGVyYXRvcklzQU5vZGVAQFVFQUFQRUFWV21pUmFuZ2VOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVJhbmdlTm9kZSAqIF9fcHRyNjQgX19jZGVjbCBXbWlPcGVyYXRvckxlc3NOb2RlOjpHZXRSYW5nZSh2b2lkKSBfX3B0cjY0DQorP0dldFJhbmdlQFdtaU9wZXJhdG9yTGVzc05vZGVAQFVFQUFQRUFWV21pUmFuZ2VOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVJhbmdlTm9kZSAqIF9fcHRyNjQgX19jZGVjbCBXbWlPcGVyYXRvckxpa2VOb2RlOjpHZXRSYW5nZSh2b2lkKSBfX3B0cjY0DQorP0dldFJhbmdlQFdtaU9wZXJhdG9yTGlrZU5vZGVAQFVFQUFQRUFWV21pUmFuZ2VOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVJhbmdlTm9kZSAqIF9fcHRyNjQgX19jZGVjbCBXbWlPcGVyYXRvck5vdEVxdWFsTm9kZTo6R2V0UmFuZ2Uodm9pZCkgX19wdHI2NA0KKz9HZXRSYW5nZUBXbWlPcGVyYXRvck5vdEVxdWFsTm9kZUBAVUVBQVBFQVZXbWlSYW5nZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pUmFuZ2VOb2RlICogX19wdHI2NCBfX2NkZWNsIFdtaU9wZXJhdG9yTm90SXNBTm9kZTo6R2V0UmFuZ2Uodm9pZCkgX19wdHI2NA0KKz9HZXRSYW5nZUBXbWlPcGVyYXRvck5vdElzQU5vZGVAQFVFQUFQRUFWV21pUmFuZ2VOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVJhbmdlTm9kZSAqIF9fcHRyNjQgX19jZGVjbCBXbWlPcGVyYXRvck5vdExpa2VOb2RlOjpHZXRSYW5nZSh2b2lkKSBfX3B0cjY0DQorP0dldFJhbmdlQFdtaU9wZXJhdG9yTm90TGlrZU5vZGVAQFVFQUFQRUFWV21pUmFuZ2VOb2RlQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ29uanVuY3Rpb25zOjpHZXRSYW5nZUNvdW50KHZvaWQpIF9fcHRyNjQNCis/R2V0UmFuZ2VDb3VudEBDb25qdW5jdGlvbnNAQFFFQUFLWFoNCis7IHB1YmxpYzogY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0IF9fY2RlY2wgV21pVHJlZU5vZGU6OkdldFJpZ2h0KHZvaWQpIF9fcHRyNjQNCis/R2V0UmlnaHRAV21pVHJlZU5vZGVAQFFFQUFQRUFWMUBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV21pVHJlZU5vZGU6OkdldFJpZ2h0KGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFJpZ2h0QFdtaVRyZWVOb2RlQEBRRUFBWEFFQVBFQVBFQVYxQEBaDQorOyBwdWJsaWM6IGVudW0gUHJvdlJvd1N0YXR1c1R5cGU6OlByb3ZSb3dTdGF0dXNFbnVtICBfX2NkZWNsIFByb3ZSb3dTdGF0dXNUeXBlOjpHZXRSb3dTdGF0dXModm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRSb3dTdGF0dXNAUHJvdlJvd1N0YXR1c1R5cGVAQFFFQkE/QVc0UHJvdlJvd1N0YXR1c0VudW1AMUBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDQlN0cmluZzo6R2V0U3RyaW5nKHZvaWQpIF9fcHRyNjQNCis/R2V0U3RyaW5nQENCU3RyaW5nQEBRRUFBUEVBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdkJpdFN0cmluZ1R5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nVmFsdWVAUHJvdkJpdFN0cmluZ1R5cGVAQFVFQkFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBQcm92Q291bnRlcjY0VHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdHJpbmdWYWx1ZUBQcm92Q291bnRlcjY0VHlwZUBAVUVCQVBFQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFByb3ZDb3VudGVyVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdHJpbmdWYWx1ZUBQcm92Q291bnRlclR5cGVAQFVFQkFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBQcm92RGF0ZVRpbWVUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0cmluZ1ZhbHVlQFByb3ZEYXRlVGltZVR5cGVAQFVFQkFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBQcm92RGlzcGxheVN0cmluZ1R5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nVmFsdWVAUHJvdkRpc3BsYXlTdHJpbmdUeXBlQEBVRUJBUEVBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdkVudW1lcmF0ZWRUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0cmluZ1ZhbHVlQFByb3ZFbnVtZXJhdGVkVHlwZUBAVUVCQVBFQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0cmluZ1ZhbHVlQFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlQEBVRUJBUEVBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0cmluZ1ZhbHVlQFByb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZUBAVUVCQVBFQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFByb3ZHYXVnZVR5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nVmFsdWVAUHJvdkdhdWdlVHlwZUBAVUVCQVBFQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFByb3ZJUFhBZGRyZXNzVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdHJpbmdWYWx1ZUBQcm92SVBYQWRkcmVzc1R5cGVAQFVFQkFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBQcm92SW50ZWdlclR5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nVmFsdWVAUHJvdkludGVnZXJUeXBlQEBVRUJBUEVBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdklwQWRkcmVzc1R5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nVmFsdWVAUHJvdklwQWRkcmVzc1R5cGVAQFVFQkFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBQcm92TWFjQWRkcmVzc1R5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nVmFsdWVAUHJvdk1hY0FkZHJlc3NUeXBlQEBVRUJBUEVBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdk5ldHdvcmtBZGRyZXNzVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdHJpbmdWYWx1ZUBQcm92TmV0d29ya0FkZHJlc3NUeXBlQEBVRUJBUEVBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdk51bGxUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0cmluZ1ZhbHVlQFByb3ZOdWxsVHlwZUBAVUVCQVBFQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFByb3ZPU0lBZGRyZXNzVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdHJpbmdWYWx1ZUBQcm92T1NJQWRkcmVzc1R5cGVAQFVFQkFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBQcm92T2JqZWN0SWRlbnRpZmllclR5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nVmFsdWVAUHJvdk9iamVjdElkZW50aWZpZXJUeXBlQEBVRUJBUEVBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdk9jdGV0U3RyaW5nVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdHJpbmdWYWx1ZUBQcm92T2N0ZXRTdHJpbmdUeXBlQEBVRUJBUEVBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdk9wYXF1ZVR5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nVmFsdWVAUHJvdk9wYXF1ZVR5cGVAQFVFQkFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBQcm92UGh5c0FkZHJlc3NUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0cmluZ1ZhbHVlQFByb3ZQaHlzQWRkcmVzc1R5cGVAQFVFQkFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBQcm92Um93U3RhdHVzVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdHJpbmdWYWx1ZUBQcm92Um93U3RhdHVzVHlwZUBAVUVCQVBFQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFByb3ZUaW1lVGlja3NUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0cmluZ1ZhbHVlQFByb3ZUaW1lVGlja3NUeXBlQEBVRUJBUEVBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdlVEUEFkZHJlc3NUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0cmluZ1ZhbHVlQFByb3ZVRFBBZGRyZXNzVHlwZUBAVUVCQVBFQUdYWg0KKzsgcHJpdmF0ZTogY2xhc3MgUHJvdkxleGljb24gKiBfX3B0cjY0IF9fY2RlY2wgUHJvdkFuYWx5c2VyOjpHZXRUb2tlbihpbnQsaW50LGludCkgX19wdHI2NA0KKz9HZXRUb2tlbkBQcm92QW5hbHlzZXJAQEFFQUFQRUFWUHJvdkxleGljb25AQEhISEBaDQorOyBwdWJsaWM6IGVudW0gUHJvdkxleGljb246OkxleGljb25Ub2tlbiAgX19jZGVjbCBQcm92TGV4aWNvbjo6R2V0VG9rZW4odm9pZCkgX19wdHI2NA0KKz9HZXRUb2tlbkBQcm92TGV4aWNvbkBAUUVBQT9BVzRMZXhpY29uVG9rZW5AMUBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgV21pVHJlZU5vZGU6OkdldFR5cGUodm9pZCkgX19wdHI2NA0KKz9HZXRUeXBlQFdtaVRyZWVOb2RlQEBRRUFBS1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBQcm92TmVnYXRpdmVSYW5nZVR5cGU6OkdldFVwcGVyQm91bmQodm9pZCkgX19wdHI2NA0KKz9HZXRVcHBlckJvdW5kQFByb3ZOZWdhdGl2ZVJhbmdlVHlwZUBAUUVBQUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgUHJvdlBvc2l0aXZlUmFuZ2VUeXBlOjpHZXRVcHBlckJvdW5kKHZvaWQpIF9fcHRyNjQNCis/R2V0VXBwZXJCb3VuZEBQcm92UG9zaXRpdmVSYW5nZVR5cGVAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFByb3ZCaXRTdHJpbmdUeXBlOjpHZXRWYWx1ZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBQcm92Qml0U3RyaW5nVHlwZUBAUUVCQUtBRUFQRUFQRUFHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFByb3ZDb3VudGVyNjRUeXBlOjpHZXRWYWx1ZSh1bnNpZ25lZCBsb25nICYgX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBQcm92Q291bnRlcjY0VHlwZUBAUUVCQVhBRUFLMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBQcm92Q291bnRlcjo6R2V0VmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBQcm92Q291bnRlckBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgUHJvdkNvdW50ZXJUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFByb3ZDb3VudGVyVHlwZUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBQcm92RGF0ZVRpbWVUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFByb3ZEYXRlVGltZVR5cGVAQFFFQkFQRUFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdkRpc3BsYXlTdHJpbmdUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFByb3ZEaXNwbGF5U3RyaW5nVHlwZUBAUUVCQVBFQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBQcm92RW51bWVyYXRlZFR5cGU6OkdldFZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFsdWVAUHJvdkVudW1lcmF0ZWRUeXBlQEBRRUJBUEVBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlQEBRRUJBUEVBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBQcm92R2F1Z2U6OkdldFZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFsdWVAUHJvdkdhdWdlQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBQcm92R2F1Z2VUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFByb3ZHYXVnZVR5cGVAQFFFQkFLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFByb3ZJbnRlZ2VyOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFByb3ZJbnRlZ2VyQEBRRUJBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBQcm92SW50ZWdlclR5cGU6OkdldFZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFsdWVAUHJvdkludGVnZXJUeXBlQEBRRUJBSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBQcm92SXBBZGRyZXNzOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFByb3ZJcEFkZHJlc3NAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFByb3ZJcEFkZHJlc3NUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFByb3ZJcEFkZHJlc3NUeXBlQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuaW9uIFByb3ZMZXhpY29uVmFsdWUgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdkxleGljb246OkdldFZhbHVlKHZvaWQpIF9fcHRyNjQNCis/R2V0VmFsdWVAUHJvdkxleGljb25AQFFFQUFQRUFUUHJvdkxleGljb25WYWx1ZUBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFByb3ZOZXR3b3JrQWRkcmVzc1R5cGU6OkdldFZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFsdWVAUHJvdk5ldHdvcmtBZGRyZXNzVHlwZUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nICogX19wdHI2NCBfX2NkZWNsIFByb3ZPYmplY3RJZGVudGlmaWVyOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFByb3ZPYmplY3RJZGVudGlmaWVyQEBRRUJBUEVBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0IF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXJUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFByb3ZPYmplY3RJZGVudGlmaWVyVHlwZUBAUUVCQVBFQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIFByb3ZPY3RldFN0cmluZzo6R2V0VmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBQcm92T2N0ZXRTdHJpbmdAQFFFQkFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBQcm92T2N0ZXRTdHJpbmdUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFByb3ZPY3RldFN0cmluZ1R5cGVAQFFFQkFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBQcm92T3BhcXVlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFByb3ZPcGFxdWVAQFFFQkFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBQcm92T3BhcXVlVHlwZTo6R2V0VmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBQcm92T3BhcXVlVHlwZUBAUUVCQVBFQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBQcm92Um93U3RhdHVzVHlwZTo6R2V0VmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBQcm92Um93U3RhdHVzVHlwZUBAUUVCQVBFQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgUHJvdlRpbWVUaWNrczo6R2V0VmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBQcm92VGltZVRpY2tzQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBQcm92VGltZVRpY2tzVHlwZTo6R2V0VmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBQcm92VGltZVRpY2tzVHlwZUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgUHJvdlVJbnRlZ2VyMzI6OkdldFZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFsdWVAUHJvdlVJbnRlZ2VyMzJAQFFFQkFLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFdtaVNpZ25lZEludGVnZXJOb2RlOjpHZXRWYWx1ZSh2b2lkKSBfX3B0cjY0DQorP0dldFZhbHVlQFdtaVNpZ25lZEludGVnZXJOb2RlQEBRRUFBSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFdtaVN0cmluZ05vZGU6OkdldFZhbHVlKHZvaWQpIF9fcHRyNjQNCis/R2V0VmFsdWVAV21pU3RyaW5nTm9kZUBAUUVBQVBFQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgV21pVW5zaWduZWRJbnRlZ2VyTm9kZTo6R2V0VmFsdWUodm9pZCkgX19wdHI2NA0KKz9HZXRWYWx1ZUBXbWlVbnNpZ25lZEludGVnZXJOb2RlQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6R2V0VmFsdWVMZW5ndGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUxlbmd0aEBQcm92T2JqZWN0SWRlbnRpZmllckBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXJUeXBlOjpHZXRWYWx1ZUxlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlTGVuZ3RoQFByb3ZPYmplY3RJZGVudGlmaWVyVHlwZUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgUHJvdk9jdGV0U3RyaW5nOjpHZXRWYWx1ZUxlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlTGVuZ3RoQFByb3ZPY3RldFN0cmluZ0BAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgUHJvdk9jdGV0U3RyaW5nVHlwZTo6R2V0VmFsdWVMZW5ndGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUxlbmd0aEBQcm92T2N0ZXRTdHJpbmdUeXBlQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBQcm92T3BhcXVlOjpHZXRWYWx1ZUxlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlTGVuZ3RoQFByb3ZPcGFxdWVAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFByb3ZPcGFxdWVUeXBlOjpHZXRWYWx1ZUxlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlTGVuZ3RoQFByb3ZPcGFxdWVUeXBlQEBRRUJBS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgUHJvdkFuYWx5c2VyOjpIZXhDaGFyVG9EZWNJbnRlZ2VyKGNoYXIpDQorP0hleENoYXJUb0RlY0ludGVnZXJAUHJvdkFuYWx5c2VyQEBTQUtEQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBQcm92QW5hbHlzZXI6OkhleFdDaGFyVG9EZWNJbnRlZ2VyKHVuc2lnbmVkIHNob3J0KQ0KKz9IZXhXQ2hhclRvRGVjSW50ZWdlckBQcm92QW5hbHlzZXJAQFNBS0dAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXbWlSYW5nZU5vZGU6OkluZmluaXRlTG93ZXJCb3VuZCh2b2lkKSBfX3B0cjY0DQorP0luZmluaXRlTG93ZXJCb3VuZEBXbWlSYW5nZU5vZGVAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV21pUmFuZ2VOb2RlOjpJbmZpbml0ZVVwcGVyQm91bmQodm9pZCkgX19wdHI2NA0KKz9JbmZpbml0ZVVwcGVyQm91bmRAV21pUmFuZ2VOb2RlQEBRRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFByb3ZBbmFseXNlcjo6SW5pdGlhbGlzZSh2b2lkKSBfX3B0cjY0DQorP0luaXRpYWxpc2VAUHJvdkFuYWx5c2VyQEBNRUFBWFhaDQorOyBwdWJsaWM6IGVudW0gV21pVHJpU3RhdGUgIF9fY2RlY2wgQ29uanVuY3Rpb25zOjpJbml0aWFsaXplKHZvaWQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBDb25qdW5jdGlvbnNAQFFFQUE/QVc0V21pVHJpU3RhdGVAQFhaDQorOyBwdWJsaWM6IGVudW0gV21pVHJpU3RhdGUgIF9fY2RlY2wgRGlzanVuY3Rpb25zOjpJbml0aWFsaXplKHZvaWQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBEaXNqdW5jdGlvbnNAQFFFQUE/QVc0V21pVHJpU3RhdGVAQFhaDQorOyBwdWJsaWM6IGVudW0gV21pVHJpU3RhdGUgIF9fY2RlY2wgUGFydGl0aW9uU2V0OjpJbml0aWFsaXplKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBQYXJ0aXRpb25TZXRAQFFFQUE/QVc0V21pVHJpU3RhdGVAQEtAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6SW5pdGlhbGl6ZSh1bnNpZ25lZCBsb25nIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0luaXRpYWxpemVAUHJvdk9iamVjdElkZW50aWZpZXJAQE1FQUFYUEVCS0tAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBQcm92T2N0ZXRTdHJpbmc6OkluaXRpYWxpemUodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Jbml0aWFsaXplQFByb3ZPY3RldFN0cmluZ0BATUVBQVhQRUJFS0BaDQorOyBwcm90ZWN0ZWQ6IGVudW0gV21pVHJpU3RhdGUgIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6Okluc2VydE5vZGUoY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0ICYgX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0luc2VydE5vZGVAUXVlcnlQcmVwcm9jZXNzb3JAQElFQUE/QVc0V21pVHJpU3RhdGVAQEFFQVBFQVZXbWlUcmVlTm9kZUBAMEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgZW51bSBRdWVyeVByZXByb2Nlc3Nvcjo6UXVhZFN0YXRlICBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpJbnZhcmlhbnRFdmFsdWF0ZSh2b2lkICogX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ludmFyaWFudEV2YWx1YXRlQFF1ZXJ5UHJlcHJvY2Vzc29yQEBNRUFBP0FXNFF1YWRTdGF0ZUAxQFBFQVhQRUFWV21pVHJlZU5vZGVAQDFAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgUHJvdkFuYWx5c2VyOjpJc0FscGhhKHVuc2lnbmVkIHNob3J0KQ0KKz9Jc0FscGhhQFByb3ZBbmFseXNlckBAU0FIR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBQcm92QW5hbHlzZXI6OklzQWxwaGFOdW1lcmljKHVuc2lnbmVkIHNob3J0KQ0KKz9Jc0FscGhhTnVtZXJpY0BQcm92QW5hbHlzZXJAQFNBSEdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgUHJvdkFuYWx5c2VyOjpJc0RlY2ltYWwodW5zaWduZWQgc2hvcnQpDQorP0lzRGVjaW1hbEBQcm92QW5hbHlzZXJAQFNBSEdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgUHJvdkFuYWx5c2VyOjpJc0VvZih1bnNpZ25lZCBzaG9ydCkNCis/SXNFb2ZAUHJvdkFuYWx5c2VyQEBTQUhHQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIFByb3ZBbmFseXNlcjo6SXNIZXgodW5zaWduZWQgc2hvcnQpDQorP0lzSGV4QFByb3ZBbmFseXNlckBAU0FIR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBQcm92QW5hbHlzZXI6OklzTGVhZGluZ0RlY2ltYWwodW5zaWduZWQgc2hvcnQpDQorP0lzTGVhZGluZ0RlY2ltYWxAUHJvdkFuYWx5c2VyQEBTQUhHQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBQcm92SW5zdGFuY2VUeXBlOjpJc051bGwodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc051bGxAUHJvdkluc3RhbmNlVHlwZUBAVUVCQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgUHJvdkFuYWx5c2VyOjpJc09jdGFsKHVuc2lnbmVkIHNob3J0KQ0KKz9Jc09jdGFsQFByb3ZBbmFseXNlckBAU0FIR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgUHJvdkNvdW50ZXI2NFR5cGU6OklzUHJvdlYxVHlwZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUHJvdlYxVHlwZUBQcm92Q291bnRlcjY0VHlwZUBAVUVCQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIFByb3ZJbnN0YW5jZVR5cGU6OklzUHJvdlYxVHlwZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUHJvdlYxVHlwZUBQcm92SW5zdGFuY2VUeXBlQEBVRUJBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgUHJvdkluc3RhbmNlVHlwZTo6SXNQcm92VjJDVHlwZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUHJvdlYyQ1R5cGVAUHJvdkluc3RhbmNlVHlwZUBAVUVCQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIFByb3ZOdWxsVHlwZTo6SXNQcm92VjJDVHlwZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUHJvdlYyQ1R5cGVAUHJvdk51bGxUeXBlQEBVRUJBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgUHJvdkluc3RhbmNlVHlwZTo6SXNWYWxpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVmFsaWRAUHJvdkluc3RhbmNlVHlwZUBAVUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBQcm92UG9zaXRpdmVSYW5nZWRUeXBlOjpJc1ZhbGlkKHZvaWQpIF9fcHRyNjQNCis/SXNWYWxpZEBQcm92UG9zaXRpdmVSYW5nZWRUeXBlQEBRRUFBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBQcm92QW5hbHlzZXI6OklzV2hpdGVzcGFjZSh1bnNpZ25lZCBzaG9ydCkNCis/SXNXaGl0ZXNwYWNlQFByb3ZBbmFseXNlckBAU0FIR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFBhcnRpdGlvblNldDo6TGVhZih2b2lkKSBfX3B0cjY0DQorP0xlYWZAUGFydGl0aW9uU2V0QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdtaVNpZ25lZEludGVnZXJOb2RlOjpMZXhpY29ncmFwaGljYWxseUFmdGVyKGxvbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0xleGljb2dyYXBoaWNhbGx5QWZ0ZXJAV21pU2lnbmVkSW50ZWdlck5vZGVAQFFFQUFIQUVBSkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdtaVN0cmluZ05vZGU6OkxleGljb2dyYXBoaWNhbGx5QWZ0ZXIodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9MZXhpY29ncmFwaGljYWxseUFmdGVyQFdtaVN0cmluZ05vZGVAQFFFQUFIQUVBUEVBR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdtaVVuc2lnbmVkSW50ZWdlck5vZGU6OkxleGljb2dyYXBoaWNhbGx5QWZ0ZXIodW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/TGV4aWNvZ3JhcGhpY2FsbHlBZnRlckBXbWlVbnNpZ25lZEludGVnZXJOb2RlQEBRRUFBSEFFQUtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXbWlTaWduZWRJbnRlZ2VyTm9kZTo6TGV4aWNvZ3JhcGhpY2FsbHlCZWZvcmUobG9uZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/TGV4aWNvZ3JhcGhpY2FsbHlCZWZvcmVAV21pU2lnbmVkSW50ZWdlck5vZGVAQFFFQUFIQUVBSkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdtaVN0cmluZ05vZGU6OkxleGljb2dyYXBoaWNhbGx5QmVmb3JlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/TGV4aWNvZ3JhcGhpY2FsbHlCZWZvcmVAV21pU3RyaW5nTm9kZUBAUUVBQUhBRUFQRUFHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV21pVW5zaWduZWRJbnRlZ2VyTm9kZTo6TGV4aWNvZ3JhcGhpY2FsbHlCZWZvcmUodW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/TGV4aWNvZ3JhcGhpY2FsbHlCZWZvcmVAV21pVW5zaWduZWRJbnRlZ2VyTm9kZUBAUUVBQUhBRUFLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFdtaVNpZ25lZEludGVnZXJSYW5nZU5vZGU6Okxvd2VyQm91bmQodm9pZCkgX19wdHI2NA0KKz9Mb3dlckJvdW5kQFdtaVNpZ25lZEludGVnZXJSYW5nZU5vZGVAQFFFQUFKWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgV21pU3RyaW5nUmFuZ2VOb2RlOjpMb3dlckJvdW5kKHZvaWQpIF9fcHRyNjQNCis/TG93ZXJCb3VuZEBXbWlTdHJpbmdSYW5nZU5vZGVAQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFdtaVVuc2lnbmVkSW50ZWdlclJhbmdlTm9kZTo6TG93ZXJCb3VuZCh2b2lkKSBfX3B0cjY0DQorP0xvd2VyQm91bmRAV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBRRUFBS1haDQorOyBwcml2YXRlOiBjbGFzcyBQcm92TGV4aWNvbiAqIF9fcHRyNjQgX19jZGVjbCBQcm92Qml0U3RyaW5nVHlwZTo6TWF0Y2goZW51bSBQcm92TGV4aWNvbjo6TGV4aWNvblRva2VuKSBfX3B0cjY0DQorP01hdGNoQFByb3ZCaXRTdHJpbmdUeXBlQEBBRUFBUEVBVlByb3ZMZXhpY29uQEBXNExleGljb25Ub2tlbkAyQEBaDQorOyBwcml2YXRlOiBjbGFzcyBQcm92TGV4aWNvbiAqIF9fcHRyNjQgX19jZGVjbCBQcm92RGF0ZVRpbWVUeXBlOjpNYXRjaChlbnVtIFByb3ZMZXhpY29uOjpMZXhpY29uVG9rZW4pIF9fcHRyNjQNCis/TWF0Y2hAUHJvdkRhdGVUaW1lVHlwZUBAQUVBQVBFQVZQcm92TGV4aWNvbkBAVzRMZXhpY29uVG9rZW5AMkBAWg0KKzsgcHJpdmF0ZTogY2xhc3MgUHJvdkxleGljb24gKiBfX3B0cjY0IF9fY2RlY2wgUHJvdkVudW1lcmF0ZWRUeXBlOjpNYXRjaChlbnVtIFByb3ZMZXhpY29uOjpMZXhpY29uVG9rZW4pIF9fcHRyNjQNCis/TWF0Y2hAUHJvdkVudW1lcmF0ZWRUeXBlQEBBRUFBUEVBVlByb3ZMZXhpY29uQEBXNExleGljb25Ub2tlbkAyQEBaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIFByb3ZMZXhpY29uICogX19wdHI2NCBfX2NkZWNsIFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGU6Ok1hdGNoKGVudW0gUHJvdkxleGljb246OkxleGljb25Ub2tlbikgX19wdHI2NA0KKz9NYXRjaEBQcm92UG9zaXRpdmVSYW5nZWRUeXBlQEBJRUFBUEVBVlByb3ZMZXhpY29uQEBXNExleGljb25Ub2tlbkAyQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgUHJvdkFuYWx5c2VyOjpPY3RDaGFyVG9EZWNJbnRlZ2VyKGNoYXIpDQorP09jdENoYXJUb0RlY0ludGVnZXJAUHJvdkFuYWx5c2VyQEBTQUtEQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBQcm92QW5hbHlzZXI6Ok9jdFdDaGFyVG9EZWNJbnRlZ2VyKHVuc2lnbmVkIHNob3J0KQ0KKz9PY3RXQ2hhclRvRGVjSW50ZWdlckBQcm92QW5hbHlzZXJAQFNBS0dAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFByb3ZPYmplY3RJZGVudGlmaWVyOjpPdmVyV3JpdGUodW5zaWduZWQgbG9uZyBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T3ZlcldyaXRlQFByb3ZPYmplY3RJZGVudGlmaWVyQEBBRUFBWFBFQktAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFByb3ZPY3RldFN0cmluZzo6T3ZlcldyaXRlKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP092ZXJXcml0ZUBQcm92T2N0ZXRTdHJpbmdAQEFFQUFYUEVCRUBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBQcm92Qml0U3RyaW5nVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1BhcnNlQFByb3ZCaXRTdHJpbmdUeXBlQEBBRUFBSFBFQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBQcm92Q291bnRlcjY0VHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1BhcnNlQFByb3ZDb3VudGVyNjRUeXBlQEBJRUFBSFBFQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBQcm92Q291bnRlclR5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QYXJzZUBQcm92Q291bnRlclR5cGVAQElFQUFIUEVCR0BaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBQcm92RGF0ZVRpbWVUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UGFyc2VAUHJvdkRhdGVUaW1lVHlwZUBAQUVBQUhQRUJHQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIFByb3ZFbnVtZXJhdGVkVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1BhcnNlQFByb3ZFbnVtZXJhdGVkVHlwZUBAQUVBQUhQRUJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgUHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UGFyc2VAUHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlQEBJRUFBSFBFQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBQcm92R2F1Z2VUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UGFyc2VAUHJvdkdhdWdlVHlwZUBASUVBQUhQRUJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgUHJvdklQWEFkZHJlc3NUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UGFyc2VAUHJvdklQWEFkZHJlc3NUeXBlQEBJRUFBSFBFQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBQcm92SW50ZWdlclR5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QYXJzZUBQcm92SW50ZWdlclR5cGVAQElFQUFIUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIFByb3ZJcEFkZHJlc3NUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UGFyc2VAUHJvdklwQWRkcmVzc1R5cGVAQElFQUFIUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIFByb3ZNYWNBZGRyZXNzVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1BhcnNlQFByb3ZNYWNBZGRyZXNzVHlwZUBASUVBQUhQRUJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgUHJvdk5ldHdvcmtBZGRyZXNzVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1BhcnNlQFByb3ZOZXR3b3JrQWRkcmVzc1R5cGVAQElFQUFIUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIFByb3ZPU0lBZGRyZXNzVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1BhcnNlQFByb3ZPU0lBZGRyZXNzVHlwZUBASUVBQUhQRUJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXJUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UGFyc2VAUHJvdk9iamVjdElkZW50aWZpZXJUeXBlQEBJRUFBSFBFQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBQcm92T2N0ZXRTdHJpbmdUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UGFyc2VAUHJvdk9jdGV0U3RyaW5nVHlwZUBASUVBQUhQRUJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgUHJvdk9wYXF1ZVR5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QYXJzZUBQcm92T3BhcXVlVHlwZUBASUVBQUhQRUJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgUHJvdlBoeXNBZGRyZXNzVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1BhcnNlQFByb3ZQaHlzQWRkcmVzc1R5cGVAQElFQUFIUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QYXJzZUBQcm92UG9zaXRpdmVSYW5nZWRUeXBlQEBJRUFBSFBFQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBQcm92VGltZVRpY2tzVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1BhcnNlQFByb3ZUaW1lVGlja3NUeXBlQEBJRUFBSFBFQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBQcm92VURQQWRkcmVzc1R5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QYXJzZUBQcm92VURQQWRkcmVzc1R5cGVAQElFQUFIUEVCR0BaDQorOyBwdWJsaWM6IGVudW0gUXVlcnlQcmVwcm9jZXNzb3I6OlF1YWRTdGF0ZSAgX19jZGVjbCBRdWVyeVByZXByb2Nlc3Nvcjo6UHJlUHJvY2Vzcyh2b2lkICogX19wdHI2NCxzdHJ1Y3QgU1FMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gKiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UHJlUHJvY2Vzc0BRdWVyeVByZXByb2Nlc3NvckBAUUVBQT9BVzRRdWFkU3RhdGVAMUBQRUFYUEVBVVNRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBBRUFQRUFWV21pVHJlZU5vZGVAQEBaDQorOyBwdWJsaWM6IGVudW0gUXVlcnlQcmVwcm9jZXNzb3I6OlF1YWRTdGF0ZSAgX19jZGVjbCBRdWVyeVByZXByb2Nlc3Nvcjo6UHJlUHJvY2Vzcyh2b2lkICogX19wdHI2NCxzdHJ1Y3QgU1FMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gKiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQsY2xhc3MgUGFydGl0aW9uU2V0ICogX19wdHI2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UHJlUHJvY2Vzc0BRdWVyeVByZXByb2Nlc3NvckBAUUVBQT9BVzRRdWFkU3RhdGVAMUBQRUFYUEVBVVNRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBQRUFWV21pVHJlZU5vZGVAQEtQRUFQRUFHQUVBUEVBVlBhcnRpdGlvblNldEBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXI6OlByZWZpeCh1bnNpZ25lZCBsb25nLGNsYXNzIFByb3ZPYmplY3RJZGVudGlmaWVyICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9QcmVmaXhAUHJvdk9iamVjdElkZW50aWZpZXJAQFFFQkFIS0FFQVYxQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFdtaUFuZE5vZGU6OlByaW50KHZvaWQpIF9fcHRyNjQNCis/UHJpbnRAV21pQW5kTm9kZUBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBXbWlOb3ROb2RlOjpQcmludCh2b2lkKSBfX3B0cjY0DQorP1ByaW50QFdtaU5vdE5vZGVAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgV21pTnVsbE5vZGU6OlByaW50KHZvaWQpIF9fcHRyNjQNCis/UHJpbnRAV21pTnVsbE5vZGVAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgV21pTnVsbFJhbmdlTm9kZTo6UHJpbnQodm9pZCkgX19wdHI2NA0KKz9QcmludEBXbWlOdWxsUmFuZ2VOb2RlQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFdtaU9wZXJhdG9yRXF1YWxOb2RlOjpQcmludCh2b2lkKSBfX3B0cjY0DQorP1ByaW50QFdtaU9wZXJhdG9yRXF1YWxOb2RlQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFdtaU9wZXJhdG9yRXF1YWxPckdyZWF0ZXJOb2RlOjpQcmludCh2b2lkKSBfX3B0cjY0DQorP1ByaW50QFdtaU9wZXJhdG9yRXF1YWxPckdyZWF0ZXJOb2RlQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFdtaU9wZXJhdG9yRXF1YWxPckxlc3NOb2RlOjpQcmludCh2b2lkKSBfX3B0cjY0DQorP1ByaW50QFdtaU9wZXJhdG9yRXF1YWxPckxlc3NOb2RlQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFdtaU9wZXJhdG9yR3JlYXRlck5vZGU6OlByaW50KHZvaWQpIF9fcHRyNjQNCis/UHJpbnRAV21pT3BlcmF0b3JHcmVhdGVyTm9kZUBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBXbWlPcGVyYXRvcklzQU5vZGU6OlByaW50KHZvaWQpIF9fcHRyNjQNCis/UHJpbnRAV21pT3BlcmF0b3JJc0FOb2RlQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFdtaU9wZXJhdG9yTGVzc05vZGU6OlByaW50KHZvaWQpIF9fcHRyNjQNCis/UHJpbnRAV21pT3BlcmF0b3JMZXNzTm9kZUBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBXbWlPcGVyYXRvckxpa2VOb2RlOjpQcmludCh2b2lkKSBfX3B0cjY0DQorP1ByaW50QFdtaU9wZXJhdG9yTGlrZU5vZGVAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgV21pT3BlcmF0b3JOb3RFcXVhbE5vZGU6OlByaW50KHZvaWQpIF9fcHRyNjQNCis/UHJpbnRAV21pT3BlcmF0b3JOb3RFcXVhbE5vZGVAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgV21pT3BlcmF0b3JOb3RJc0FOb2RlOjpQcmludCh2b2lkKSBfX3B0cjY0DQorP1ByaW50QFdtaU9wZXJhdG9yTm90SXNBTm9kZUBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBXbWlPcGVyYXRvck5vdExpa2VOb2RlOjpQcmludCh2b2lkKSBfX3B0cjY0DQorP1ByaW50QFdtaU9wZXJhdG9yTm90TGlrZU5vZGVAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgV21pT3JOb2RlOjpQcmludCh2b2lkKSBfX3B0cjY0DQorP1ByaW50QFdtaU9yTm9kZUBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBXbWlTaWduZWRJbnRlZ2VyTm9kZTo6UHJpbnQodm9pZCkgX19wdHI2NA0KKz9QcmludEBXbWlTaWduZWRJbnRlZ2VyTm9kZUBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlOjpQcmludCh2b2lkKSBfX3B0cjY0DQorP1ByaW50QFdtaVNpZ25lZEludGVnZXJSYW5nZU5vZGVAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgV21pU3RyaW5nTm9kZTo6UHJpbnQodm9pZCkgX19wdHI2NA0KKz9QcmludEBXbWlTdHJpbmdOb2RlQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFdtaVN0cmluZ1JhbmdlTm9kZTo6UHJpbnQodm9pZCkgX19wdHI2NA0KKz9QcmludEBXbWlTdHJpbmdSYW5nZU5vZGVAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgV21pVHJlZU5vZGU6OlByaW50KHZvaWQpIF9fcHRyNjQNCis/UHJpbnRAV21pVHJlZU5vZGVAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgV21pVW5zaWduZWRJbnRlZ2VyTm9kZTo6UHJpbnQodm9pZCkgX19wdHI2NA0KKz9QcmludEBXbWlVbnNpZ25lZEludGVnZXJOb2RlQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFdtaVVuc2lnbmVkSW50ZWdlclJhbmdlTm9kZTo6UHJpbnQodm9pZCkgX19wdHI2NA0KKz9QcmludEBXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGVAQFVFQUFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpQcmludFRyZWUoY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1ByaW50VHJlZUBRdWVyeVByZXByb2Nlc3NvckBASUVBQVhQRUFWV21pVHJlZU5vZGVAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFByb3ZFdmVudE9iamVjdDo6UHJvY2Vzcyh2b2lkKSBfX3B0cjY0DQorP1Byb2Nlc3NAUHJvdkV2ZW50T2JqZWN0QEBVRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgUHJvdkJpdFN0cmluZ1R5cGU6OlB1c2hCYWNrKHZvaWQpIF9fcHRyNjQNCis/UHVzaEJhY2tAUHJvdkJpdFN0cmluZ1R5cGVAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBQcm92RGF0ZVRpbWVUeXBlOjpQdXNoQmFjayh2b2lkKSBfX3B0cjY0DQorP1B1c2hCYWNrQFByb3ZEYXRlVGltZVR5cGVAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBQcm92RW51bWVyYXRlZFR5cGU6OlB1c2hCYWNrKHZvaWQpIF9fcHRyNjQNCis/UHVzaEJhY2tAUHJvdkVudW1lcmF0ZWRUeXBlQEBBRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBQcm92UG9zaXRpdmVSYW5nZWRUeXBlOjpQdXNoQmFjayh2b2lkKSBfX3B0cjY0DQorP1B1c2hCYWNrQFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQElFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFByb3ZBbmFseXNlcjo6UHV0QmFjayhjbGFzcyBQcm92TGV4aWNvbiBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UHV0QmFja0BQcm92QW5hbHlzZXJAQFFFQUFYUEVCVlByb3ZMZXhpY29uQEBAWg0KKzsgcHVibGljOiBlbnVtIFF1ZXJ5UHJlcHJvY2Vzc29yOjpRdWFkU3RhdGUgIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6OlF1ZXJ5KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxzdHJ1Y3QgU1FMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUBRdWVyeVByZXByb2Nlc3NvckBAUUVBQT9BVzRRdWFkU3RhdGVAMUBQRUFHQUVBUEVBVVNRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6OlF1aWNrU29ydChjbGFzcyBXbWlSYW5nZU5vZGUgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1F1aWNrU29ydEBRdWVyeVByZXByb2Nlc3NvckBASUVBQVhQRUFQRUFWV21pUmFuZ2VOb2RlQEBQRUFLS0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGU6OlJhbmdlRGVmKHZvaWQpIF9fcHRyNjQNCis/UmFuZ2VEZWZAUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBASUVBQUhYWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFdtaVRyaVN0YXRlICBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpSZWN1cnNpdmVDb252ZXJ0VG9SYW5nZXMoY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZWN1cnNpdmVDb252ZXJ0VG9SYW5nZXNAUXVlcnlQcmVwcm9jZXNzb3JAQElFQUE/QVc0V21pVHJpU3RhdGVAQEFFQVBFQVZXbWlUcmVlTm9kZUBAQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIFByb3ZCaXRTdHJpbmdUeXBlOjpSZWN1cnNpdmVEZWYodm9pZCkgX19wdHI2NA0KKz9SZWN1cnNpdmVEZWZAUHJvdkJpdFN0cmluZ1R5cGVAQEFFQUFIWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIFByb3ZFbnVtZXJhdGVkVHlwZTo6UmVjdXJzaXZlRGVmKHZvaWQpIF9fcHRyNjQNCis/UmVjdXJzaXZlRGVmQFByb3ZFbnVtZXJhdGVkVHlwZUBAQUVBQUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBQcm92UG9zaXRpdmVSYW5nZWRUeXBlOjpSZWN1cnNpdmVEZWYodm9pZCkgX19wdHI2NA0KKz9SZWN1cnNpdmVEZWZAUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBASUVBQUhYWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFF1ZXJ5UHJlcHJvY2Vzc29yOjpRdWFkU3RhdGUgIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6OlJlY3Vyc2l2ZURpc2p1bmN0aXZlTm9ybWFsRm9ybShjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlY3Vyc2l2ZURpc2p1bmN0aXZlTm9ybWFsRm9ybUBRdWVyeVByZXByb2Nlc3NvckBASUVBQT9BVzRRdWFkU3RhdGVAMUBBRUFQRUFWV21pVHJlZU5vZGVAQEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpSZWN1cnNpdmVFdmFsdWF0ZSh2b2lkICogX19wdHI2NCxzdHJ1Y3QgU1FMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gJiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgKiBfX3B0cjY0LGludCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVjdXJzaXZlRXZhbHVhdGVAUXVlcnlQcmVwcm9jZXNzb3JAQElFQUFIUEVBWEFFQVVTUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTkBAUEVBVldtaVRyZWVOb2RlQEBQRUFQRUFWM0BBRUFIQFoNCis7IHByb3RlY3RlZDogZW51bSBXbWlUcmlTdGF0ZSAgX19jZGVjbCBRdWVyeVByZXByb2Nlc3Nvcjo6UmVjdXJzaXZlSW5zZXJ0Tm9kZShjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVjdXJzaXZlSW5zZXJ0Tm9kZUBRdWVyeVByZXByb2Nlc3NvckBASUVBQT9BVzRXbWlUcmlTdGF0ZUBAQUVBUEVBVldtaVRyZWVOb2RlQEAwQFoNCis7IHByb3RlY3RlZDogZW51bSBXbWlUcmlTdGF0ZSAgX19jZGVjbCBRdWVyeVByZXByb2Nlc3Nvcjo6UmVjdXJzaXZlUGFydGl0aW9uU2V0KGNsYXNzIERpc2p1bmN0aW9ucyAqIF9fcHRyNjQsY2xhc3MgUGFydGl0aW9uU2V0ICogX19wdHI2NCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlY3Vyc2l2ZVBhcnRpdGlvblNldEBRdWVyeVByZXByb2Nlc3NvckBASUVBQT9BVzRXbWlUcmlTdGF0ZUBAUEVBVkRpc2p1bmN0aW9uc0BAQUVBUEVBVlBhcnRpdGlvblNldEBAS1BFQUtLQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpSZWN1cnNpdmVRdWlja1NvcnQoY2xhc3MgV21pUmFuZ2VOb2RlICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlY3Vyc2l2ZVF1aWNrU29ydEBRdWVyeVByZXByb2Nlc3NvckBASUVBQVhQRUFQRUFWV21pUmFuZ2VOb2RlQEBQRUFLS0tAWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFF1ZXJ5UHJlcHJvY2Vzc29yOjpRdWFkU3RhdGUgIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6OlJlY3Vyc2l2ZVJlbW92ZUludmFyaWFudHModm9pZCAqIF9fcHRyNjQsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZWN1cnNpdmVSZW1vdmVJbnZhcmlhbnRzQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJRUFBP0FXNFF1YWRTdGF0ZUAxQFBFQVhBRUFQRUFWV21pVHJlZU5vZGVAQEBaDQorOyBwcm90ZWN0ZWQ6IGVudW0gUXVlcnlQcmVwcm9jZXNzb3I6OlF1YWRTdGF0ZSAgX19jZGVjbCBRdWVyeVByZXByb2Nlc3Nvcjo6UmVjdXJzaXZlUmVtb3ZlTm9uT3ZlcmxhcHBpbmdSYW5nZXMoY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0ICYgX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlY3Vyc2l2ZVJlbW92ZU5vbk92ZXJsYXBwaW5nUmFuZ2VzQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJRUFBP0FXNFF1YWRTdGF0ZUAxQEFFQVBFQVZXbWlUcmVlTm9kZUBAMEBaDQorOyBwcm90ZWN0ZWQ6IGVudW0gV21pVHJpU3RhdGUgIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6OlJlY3Vyc2l2ZVNvcnQoY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZWN1cnNpdmVTb3J0QFF1ZXJ5UHJlcHJvY2Vzc29yQEBJRUFBP0FXNFdtaVRyaVN0YXRlQEBBRUFQRUFWV21pVHJlZU5vZGVAQEBaDQorOyBwcm90ZWN0ZWQ6IGVudW0gV21pVHJpU3RhdGUgIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6OlJlY3Vyc2l2ZVNvcnRDb25kaXRpb25hbHMoY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0ICYgX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlY3Vyc2l2ZVNvcnRDb25kaXRpb25hbHNAUXVlcnlQcmVwcm9jZXNzb3JAQElFQUE/QVc0V21pVHJpU3RhdGVAQEFFQVBFQVZXbWlUcmVlTm9kZUBAMEBaDQorOyBwcm90ZWN0ZWQ6IGVudW0gUXVlcnlQcmVwcm9jZXNzb3I6OlF1YWRTdGF0ZSAgX19jZGVjbCBRdWVyeVByZXByb2Nlc3Nvcjo6UmVtb3ZlSW52YXJpYW50cyh2b2lkICogX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbW92ZUludmFyaWFudHNAUXVlcnlQcmVwcm9jZXNzb3JAQElFQUE/QVc0UXVhZFN0YXRlQDFAUEVBWEFFQVBFQVZXbWlUcmVlTm9kZUBAQFoNCis7IHByb3RlY3RlZDogZW51bSBRdWVyeVByZXByb2Nlc3Nvcjo6UXVhZFN0YXRlICBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpSZW1vdmVOb25PdmVybGFwcGluZ1JhbmdlcyhjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbW92ZU5vbk92ZXJsYXBwaW5nUmFuZ2VzQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJRUFBP0FXNFF1YWRTdGF0ZUAxQEFFQVBFQVZXbWlUcmVlTm9kZUBAQFoNCis7IHByb3RlY3RlZDogZW51bSBXbWlUcmlTdGF0ZSAgX19jZGVjbCBRdWVyeVByZXByb2Nlc3Nvcjo6UmVtb3ZlT3ZlcmxhcHModW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCxjbGFzcyBXbWlSYW5nZU5vZGUgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVPdmVybGFwc0BRdWVyeVByZXByb2Nlc3NvckBASUVBQT9BVzRXbWlUcmlTdGF0ZUBAUEVBS0swMFBFQVBFQVZXbWlSYW5nZU5vZGVAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQgX19jZGVjbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6UmVwbGljYXRlKHVuc2lnbmVkIGxvbmcgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9SZXBsaWNhdGVAUHJvdk9iamVjdElkZW50aWZpZXJAQE1FQkFQRUFLUEVCS0swS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQgX19jZGVjbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6UmVwbGljYXRlKHVuc2lnbmVkIGxvbmcgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/UmVwbGljYXRlQFByb3ZPYmplY3RJZGVudGlmaWVyQEBNRUJBUEVBS1BFQktLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIFByb3ZPY3RldFN0cmluZzo6UmVwbGljYXRlKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVwbGljYXRlQFByb3ZPY3RldFN0cmluZ0BATUVBQVBFQUVQRUJFS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFBhcnRpdGlvblNldDo6Um9vdCh2b2lkKSBfX3B0cjY0DQorP1Jvb3RAUGFydGl0aW9uU2V0QEBRRUFBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQcm92QW5hbHlzZXI6OlNldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QFByb3ZBbmFseXNlckBAUUVBQVhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFByb3ZFdmVudE9iamVjdDo6U2V0KHZvaWQpIF9fcHRyNjQNCis/U2V0QFByb3ZFdmVudE9iamVjdEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIFdtaVRyZWVOb2RlOjpTZXREYXRhKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERhdGFAV21pVHJlZU5vZGVAQFFFQUFQRUFYUEVBWEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCBfX2NkZWNsIFdtaVRyZWVOb2RlSXRlcmF0b3I6OlNldEl0ZXJhdG9yKGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRJdGVyYXRvckBXbWlUcmVlTm9kZUl0ZXJhdG9yQEBRRUFBUEVBVldtaVRyZWVOb2RlQEBQRUFWMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUGFydGl0aW9uU2V0OjpTZXRLZXlJbmRleCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldEtleUluZGV4QFBhcnRpdGlvblNldEBAUUVBQVhLQFoNCis7IHB1YmxpYzogY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0IF9fY2RlY2wgV21pVHJlZU5vZGU6OlNldExlZnQoY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldExlZnRAV21pVHJlZU5vZGVAQFFFQUFQRUFWMUBQRUFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlOjpTZXRMb3dlckJvdW5kKGxvbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldExvd2VyQm91bmRAUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlQEBRRUFBWEFFQkpAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUHJvdlBvc2l0aXZlUmFuZ2VUeXBlOjpTZXRMb3dlckJvdW5kKHVuc2lnbmVkIGxvbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldExvd2VyQm91bmRAUHJvdlBvc2l0aXZlUmFuZ2VUeXBlQEBRRUFBWEFFQktAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUHJvdkluc3RhbmNlVHlwZTo6U2V0TnVsbChpbnQpIF9fcHRyNjQNCis/U2V0TnVsbEBQcm92SW5zdGFuY2VUeXBlQEBRRUFBWEhAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgX19jZGVjbCBXbWlUcmVlTm9kZTo6U2V0UGFyZW50KGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQYXJlbnRAV21pVHJlZU5vZGVAQFFFQUFQRUFWMUBQRUFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUGFydGl0aW9uU2V0OjpTZXRQYXJ0aXRpb24odW5zaWduZWQgbG9uZyxjbGFzcyBQYXJ0aXRpb25TZXQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFBhcnRpdGlvbkBQYXJ0aXRpb25TZXRAQFFFQUFYS1BFQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDb25qdW5jdGlvbnM6OlNldFJhbmdlKHVuc2lnbmVkIGxvbmcsY2xhc3MgV21pUmFuZ2VOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRSYW5nZUBDb25qdW5jdGlvbnNAQFFFQUFYS1BFQVZXbWlSYW5nZU5vZGVAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQYXJ0aXRpb25TZXQ6OlNldFJhbmdlKGNsYXNzIFdtaVJhbmdlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UmFuZ2VAUGFydGl0aW9uU2V0QEBRRUFBWFBFQVZXbWlSYW5nZU5vZGVAQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCBfX2NkZWNsIFdtaVRyZWVOb2RlOjpTZXRSaWdodChjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UmlnaHRAV21pVHJlZU5vZGVAQFFFQUFQRUFWMUBQRUFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUHJvdkluc3RhbmNlVHlwZTo6U2V0U3RhdHVzKGludCkgX19wdHI2NA0KKz9TZXRTdGF0dXNAUHJvdkluc3RhbmNlVHlwZUBAUUVBQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGU6OlNldFN0YXR1cyhpbnQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFN0YXR1c0BQcm92UG9zaXRpdmVSYW5nZWRUeXBlQEBRRUFBWEFFQkhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUHJvdkxleGljb246OlNldFRva2VuKGVudW0gUHJvdkxleGljb246OkxleGljb25Ub2tlbikgX19wdHI2NA0KKz9TZXRUb2tlbkBQcm92TGV4aWNvbkBAUUVBQVhXNExleGljb25Ub2tlbkAxQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXbWlUcmVlTm9kZTo6U2V0VHlwZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFR5cGVAV21pVHJlZU5vZGVAQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQcm92TmVnYXRpdmVSYW5nZVR5cGU6OlNldFVwcGVyQm91bmQobG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VXBwZXJCb3VuZEBQcm92TmVnYXRpdmVSYW5nZVR5cGVAQFFFQUFYQUVCSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQcm92UG9zaXRpdmVSYW5nZVR5cGU6OlNldFVwcGVyQm91bmQodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VXBwZXJCb3VuZEBQcm92UG9zaXRpdmVSYW5nZVR5cGVAQFFFQUFYQUVCS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQcm92Q291bnRlcjY0OjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0VmFsdWVAUHJvdkNvdW50ZXI2NEBAUUVBQVhLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQcm92Q291bnRlcjo6U2V0VmFsdWUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRWYWx1ZUBQcm92Q291bnRlckBAUUVBQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFByb3ZHYXVnZTo6U2V0VmFsdWUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRWYWx1ZUBQcm92R2F1Z2VAQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQcm92SW50ZWdlcjo6U2V0VmFsdWUobG9uZykgX19wdHI2NA0KKz9TZXRWYWx1ZUBQcm92SW50ZWdlckBAUUVBQVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFByb3ZJcEFkZHJlc3M6OlNldFZhbHVlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0VmFsdWVAUHJvdklwQWRkcmVzc0BAUUVBQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFByb3ZPYmplY3RJZGVudGlmaWVyOjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFZhbHVlQFByb3ZPYmplY3RJZGVudGlmaWVyQEBRRUFBWFBFQktLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFByb3ZPY3RldFN0cmluZzo6U2V0VmFsdWUodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRWYWx1ZUBQcm92T2N0ZXRTdHJpbmdAQFFFQUFYUEVCRUtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUHJvdk9wYXF1ZTo6U2V0VmFsdWUodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRWYWx1ZUBQcm92T3BhcXVlQEBRRUFBWFBFQkVLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFByb3ZUaW1lVGlja3M6OlNldFZhbHVlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0VmFsdWVAUHJvdlRpbWVUaWNrc0BAUUVBQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFByb3ZVSW50ZWdlcjMyOjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFZhbHVlQFByb3ZVSW50ZWdlcjMyQEBRRUFBWEtAWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFdtaVRyaVN0YXRlICBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpTb3J0KGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U29ydEBRdWVyeVByZXByb2Nlc3NvckBASUVBQT9BVzRXbWlUcmlTdGF0ZUBAQUVBUEVBVldtaVRyZWVOb2RlQEBAWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFdtaVRyaVN0YXRlICBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpTb3J0Q29uZGl0aW9uYWxzKGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U29ydENvbmRpdGlvbmFsc0BRdWVyeVByZXByb2Nlc3NvckBASUVBQT9BVzRXbWlUcmlTdGF0ZUBAQUVBUEVBVldtaVRyZWVOb2RlQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6OlNvcnRSYW5nZXModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCxjbGFzcyBXbWlSYW5nZU5vZGUgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Tb3J0UmFuZ2VzQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJRUFBWEtQRUFLUEVBUEVBVldtaVJhbmdlTm9kZUBAQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIFByb3ZEZWJ1Z0xvZzo6U3RhcnR1cCh2b2lkKQ0KKz9TdGFydHVwQFByb3ZEZWJ1Z0xvZ0BAU0FIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXI6OlN1ZmZpeCh1bnNpZ25lZCBsb25nLGNsYXNzIFByb3ZPYmplY3RJZGVudGlmaWVyICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9TdWZmaXhAUHJvdk9iamVjdElkZW50aWZpZXJAQFFFQkFIS0FFQVYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBRdWVyeVByZXByb2Nlc3Nvcjo6VHJhbnNmb3JtQW5kT3JFeHByZXNzaW9uKGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCAmIF9fcHRyNjQsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9UcmFuc2Zvcm1BbmRPckV4cHJlc3Npb25AUXVlcnlQcmVwcm9jZXNzb3JAQElFQUFYQUVBUEVBVldtaVRyZWVOb2RlQEBQRUFWMkAxQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpUcmFuc2Zvcm1BbmRUcnVlRXZhbHVhdGlvbihjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9UcmFuc2Zvcm1BbmRUcnVlRXZhbHVhdGlvbkBRdWVyeVByZXByb2Nlc3NvckBASUVBQVhBRUFQRUFWV21pVHJlZU5vZGVAQFBFQVYyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBRdWVyeVByZXByb2Nlc3Nvcjo6VHJhbnNmb3JtSW50ZXJzZWN0aW5nUmFuZ2UoY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0ICYgX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1RyYW5zZm9ybUludGVyc2VjdGluZ1JhbmdlQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJRUFBWEFFQVBFQVZXbWlUcmVlTm9kZUBAUEVBVjJAMUBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBRdWVyeVByZXByb2Nlc3Nvcjo6VHJhbnNmb3JtTm9uSW50ZXJzZWN0aW5nUmFuZ2UoY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0ICYgX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VHJhbnNmb3JtTm9uSW50ZXJzZWN0aW5nUmFuZ2VAUXVlcnlQcmVwcm9jZXNzb3JAQElFQUFYQUVBUEVBVldtaVRyZWVOb2RlQEBQRUFWMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6OlRyYW5zZm9ybU5vdEFuZEV4cHJlc3Npb24oY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0ICYgX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VHJhbnNmb3JtTm90QW5kRXhwcmVzc2lvbkBRdWVyeVByZXByb2Nlc3NvckBASUVBQVhBRUFQRUFWV21pVHJlZU5vZGVAQFBFQVYyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBRdWVyeVByZXByb2Nlc3Nvcjo6VHJhbnNmb3JtTm90RXF1YWxFeHByZXNzaW9uKGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCAmIF9fcHRyNjQsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1RyYW5zZm9ybU5vdEVxdWFsRXhwcmVzc2lvbkBRdWVyeVByZXByb2Nlc3NvckBASUVBQVhBRUFQRUFWV21pVHJlZU5vZGVAQFBFQVYyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBRdWVyeVByZXByb2Nlc3Nvcjo6VHJhbnNmb3JtTm90Tm90RXhwcmVzc2lvbihjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9UcmFuc2Zvcm1Ob3ROb3RFeHByZXNzaW9uQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJRUFBWEFFQVBFQVZXbWlUcmVlTm9kZUBAUEVBVjJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpUcmFuc2Zvcm1Ob3RPcGVyYXRvckVxdWFsRXhwcmVzc2lvbihjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9UcmFuc2Zvcm1Ob3RPcGVyYXRvckVxdWFsRXhwcmVzc2lvbkBRdWVyeVByZXByb2Nlc3NvckBASUVBQVhBRUFQRUFWV21pVHJlZU5vZGVAQFBFQVYyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBRdWVyeVByZXByb2Nlc3Nvcjo6VHJhbnNmb3JtTm90T3BlcmF0b3JFcXVhbE9yR3JlYXRlckV4cHJlc3Npb24oY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0ICYgX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VHJhbnNmb3JtTm90T3BlcmF0b3JFcXVhbE9yR3JlYXRlckV4cHJlc3Npb25AUXVlcnlQcmVwcm9jZXNzb3JAQElFQUFYQUVBUEVBVldtaVRyZWVOb2RlQEBQRUFWMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6OlRyYW5zZm9ybU5vdE9wZXJhdG9yRXF1YWxPckxlc3NFeHByZXNzaW9uKGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCAmIF9fcHRyNjQsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1RyYW5zZm9ybU5vdE9wZXJhdG9yRXF1YWxPckxlc3NFeHByZXNzaW9uQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJRUFBWEFFQVBFQVZXbWlUcmVlTm9kZUBAUEVBVjJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpUcmFuc2Zvcm1Ob3RPcGVyYXRvckdyZWF0ZXJFeHByZXNzaW9uKGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCAmIF9fcHRyNjQsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1RyYW5zZm9ybU5vdE9wZXJhdG9yR3JlYXRlckV4cHJlc3Npb25AUXVlcnlQcmVwcm9jZXNzb3JAQElFQUFYQUVBUEVBVldtaVRyZWVOb2RlQEBQRUFWMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6OlRyYW5zZm9ybU5vdE9wZXJhdG9ySXNBRXhwcmVzc2lvbihjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9UcmFuc2Zvcm1Ob3RPcGVyYXRvcklzQUV4cHJlc3Npb25AUXVlcnlQcmVwcm9jZXNzb3JAQElFQUFYQUVBUEVBVldtaVRyZWVOb2RlQEBQRUFWMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6OlRyYW5zZm9ybU5vdE9wZXJhdG9yTGVzc0V4cHJlc3Npb24oY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0ICYgX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VHJhbnNmb3JtTm90T3BlcmF0b3JMZXNzRXhwcmVzc2lvbkBRdWVyeVByZXByb2Nlc3NvckBASUVBQVhBRUFQRUFWV21pVHJlZU5vZGVAQFBFQVYyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBRdWVyeVByZXByb2Nlc3Nvcjo6VHJhbnNmb3JtTm90T3BlcmF0b3JMaWtlRXhwcmVzc2lvbihjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9UcmFuc2Zvcm1Ob3RPcGVyYXRvckxpa2VFeHByZXNzaW9uQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJRUFBWEFFQVBFQVZXbWlUcmVlTm9kZUBAUEVBVjJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpUcmFuc2Zvcm1Ob3RPcGVyYXRvck5vdEVxdWFsRXhwcmVzc2lvbihjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9UcmFuc2Zvcm1Ob3RPcGVyYXRvck5vdEVxdWFsRXhwcmVzc2lvbkBRdWVyeVByZXByb2Nlc3NvckBASUVBQVhBRUFQRUFWV21pVHJlZU5vZGVAQFBFQVYyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBRdWVyeVByZXByb2Nlc3Nvcjo6VHJhbnNmb3JtTm90T3BlcmF0b3JOb3RJc0FFeHByZXNzaW9uKGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCAmIF9fcHRyNjQsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1RyYW5zZm9ybU5vdE9wZXJhdG9yTm90SXNBRXhwcmVzc2lvbkBRdWVyeVByZXByb2Nlc3NvckBASUVBQVhBRUFQRUFWV21pVHJlZU5vZGVAQFBFQVYyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBRdWVyeVByZXByb2Nlc3Nvcjo6VHJhbnNmb3JtTm90T3BlcmF0b3JOb3RMaWtlRXhwcmVzc2lvbihjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQgJiBfX3B0cjY0LGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9UcmFuc2Zvcm1Ob3RPcGVyYXRvck5vdExpa2VFeHByZXNzaW9uQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJRUFBWEFFQVBFQVZXbWlUcmVlTm9kZUBAUEVBVjJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpUcmFuc2Zvcm1Ob3RPckV4cHJlc3Npb24oY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0ICYgX19wdHI2NCxjbGFzcyBXbWlUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VHJhbnNmb3JtTm90T3JFeHByZXNzaW9uQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJRUFBWEFFQVBFQVZXbWlUcmVlTm9kZUBAUEVBVjJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpUcmFuc2Zvcm1PcGVyYXRvclRvUmFuZ2UoY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9UcmFuc2Zvcm1PcGVyYXRvclRvUmFuZ2VAUXVlcnlQcmVwcm9jZXNzb3JAQElFQUFYQUVBUEVBVldtaVRyZWVOb2RlQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgUXVlcnlQcmVwcm9jZXNzb3I6OlRyYW5zZm9ybU9yRmFsc2VFdmFsdWF0aW9uKGNsYXNzIFdtaVRyZWVOb2RlICogX19wdHI2NCAmIF9fcHRyNjQsY2xhc3MgV21pVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1RyYW5zZm9ybU9yRmFsc2VFdmFsdWF0aW9uQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJRUFBWEFFQVBFQVZXbWlUcmVlTm9kZUBAUEVBVjJAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgUHJvdk9iamVjdElkZW50aWZpZXI6OlVuUmVwbGljYXRlKHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1VuUmVwbGljYXRlQFByb3ZPYmplY3RJZGVudGlmaWVyQEBNRUFBWFBFQUtAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBQcm92T2N0ZXRTdHJpbmc6OlVuUmVwbGljYXRlKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1VuUmVwbGljYXRlQFByb3ZPY3RldFN0cmluZ0BATUVBQVhQRUFFQFoNCis7IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFVuaWNvZGVTdHJpbmdBcHBlbmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/VW5pY29kZVN0cmluZ0FwcGVuZEBAWUFQRUFHUEVCRzBAWg0KKzsgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgVW5pY29kZVN0cmluZ0R1cGxpY2F0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP1VuaWNvZGVTdHJpbmdEdXBsaWNhdGVAQFlBUEVBR1BFQkdAWg0KKzsgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBVbmljb2RlVG9EYmNzU3RyaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/VW5pY29kZVRvRGJjc1N0cmluZ0BAWUFQRUFEUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlOjpVcHBlckJvdW5kKHZvaWQpIF9fcHRyNjQNCis/VXBwZXJCb3VuZEBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBRRUFBSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFdtaVN0cmluZ1JhbmdlTm9kZTo6VXBwZXJCb3VuZCh2b2lkKSBfX3B0cjY0DQorP1VwcGVyQm91bmRAV21pU3RyaW5nUmFuZ2VOb2RlQEBRRUFBUEVBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGU6OlVwcGVyQm91bmQodm9pZCkgX19wdHI2NA0KKz9VcHBlckJvdW5kQFdtaVVuc2lnbmVkSW50ZWdlclJhbmdlTm9kZUBAUUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIFByb3ZFdmVudE9iamVjdDo6V2FpdCh2b2lkKSBfX3B0cjY0DQorP1dhaXRAUHJvdkV2ZW50T2JqZWN0QEBVRUFBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQcm92RGVidWdMb2c6OldyaXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCwuLi4pIF9fcHRyNjQNCis/V3JpdGVAUHJvdkRlYnVnTG9nQEBRRUFBWFBFQkdaWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUHJvdkRlYnVnTG9nOjpXcml0ZUEoY2hhciBjb25zdCAqIF9fcHRyNjQsLi4uKSBfX3B0cjY0DQorP1dyaXRlQUBQcm92RGVidWdMb2dAQFFFQUFYUEVCRFpaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQcm92RGVidWdMb2c6OldyaXRlRmlsZUFuZExpbmUoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsLi4uKSBfX3B0cjY0DQorP1dyaXRlRmlsZUFuZExpbmVAUHJvdkRlYnVnTG9nQEBRRUFBWFBFQkRLUEVCR1paDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQcm92RGVidWdMb2c6OldyaXRlRmlsZUFuZExpbmUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LC4uLikgX19wdHI2NA0KKz9Xcml0ZUZpbGVBbmRMaW5lQFByb3ZEZWJ1Z0xvZ0BAUUVBQVhQRUJHSzBaWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUHJvdkRlYnVnTG9nOjpXcml0ZUZpbGVBbmRMaW5lQShjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGNoYXIgY29uc3QgKiBfX3B0cjY0LC4uLikgX19wdHI2NA0KKz9Xcml0ZUZpbGVBbmRMaW5lQUBQcm92RGVidWdMb2dAQFFFQUFYUEVCREswWloNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFByb3ZEZWJ1Z0xvZzo6V3JpdGVGaWxlQW5kTGluZVcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LC4uLikgX19wdHI2NA0KKz9Xcml0ZUZpbGVBbmRMaW5lV0BQcm92RGVidWdMb2dAQFFFQUFYUEVCR0swWloNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFByb3ZEZWJ1Z0xvZzo6V3JpdGVXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCwuLi4pIF9fcHRyNjQNCis/V3JpdGVXQFByb3ZEZWJ1Z0xvZ0BAUUVBQVhQRUJHWloNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIFByb3ZEZWJ1Z0xvZyAqIF9fcHRyNjQgIF9fcHRyNjQgUHJvdkRlYnVnTG9nOjpzX1Byb3ZEZWJ1Z0xvZw0KKz9zX1Byb3ZEZWJ1Z0xvZ0BQcm92RGVidWdMb2dAQDJQRUFWMUBFQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nICBQcm92RGVidWdMb2c6OnNfUmVmZXJlbmNlQ291bnQNCis/c19SZWZlcmVuY2VDb3VudEBQcm92RGVidWdMb2dAQDJKQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBQcm92RGVidWdMb2cgKiAgUHJvdkRlYnVnTG9nOjpzX2FMb2dzDQorP3NfYUxvZ3NAUHJvdkRlYnVnTG9nQEAyUEFWMUBBIERBVEENCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9wc2FwaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9wc2FwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGEwZTlhMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3BzYXBpLmRlZgpAQCAtMCwwICsxLDMzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFBTQVBJLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBQU0FQSS5ETEwNCitFWFBPUlRTDQorRW1wdHlXb3JraW5nU2V0DQorRW51bURldmljZURyaXZlcnMNCitFbnVtUGFnZUZpbGVzQQ0KK0VudW1QYWdlRmlsZXNXDQorRW51bVByb2Nlc3NNb2R1bGVzDQorRW51bVByb2Nlc3Nlcw0KK0dldERldmljZURyaXZlckJhc2VOYW1lQQ0KK0dldERldmljZURyaXZlckJhc2VOYW1lVw0KK0dldERldmljZURyaXZlckZpbGVOYW1lQQ0KK0dldERldmljZURyaXZlckZpbGVOYW1lVw0KK0dldE1hcHBlZEZpbGVOYW1lQQ0KK0dldE1hcHBlZEZpbGVOYW1lVw0KK0dldE1vZHVsZUJhc2VOYW1lQQ0KK0dldE1vZHVsZUJhc2VOYW1lVw0KK0dldE1vZHVsZUZpbGVOYW1lRXhBDQorR2V0TW9kdWxlRmlsZU5hbWVFeFcNCitHZXRNb2R1bGVJbmZvcm1hdGlvbg0KK0dldFBlcmZvcm1hbmNlSW5mbw0KK0dldFByb2Nlc3NJbWFnZUZpbGVOYW1lQQ0KK0dldFByb2Nlc3NJbWFnZUZpbGVOYW1lVw0KK0dldFByb2Nlc3NNZW1vcnlJbmZvDQorR2V0V3NDaGFuZ2VzDQorSW5pdGlhbGl6ZVByb2Nlc3NGb3JXc1dhdGNoDQorUXVlcnlXb3JraW5nU2V0DQorUXVlcnlXb3JraW5nU2V0RXgNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9wc2Jhc2UuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcHNiYXNlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43N2EzMDk3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcHNiYXNlLmRlZgpAQCAtMCwwICsxLDI5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFBTQkFTRS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUFNCQVNFLmRsbA0KK0VYUE9SVFMNCitGUGFzc3dvcmRDaGFuZ2VOb3RpZnkNCitTUENsb3NlSXRlbQ0KK1NQT3Blbkl0ZW0NCitTUEFjcXVpcmVDb250ZXh0DQorU1BDcmVhdGVTdWJ0eXBlDQorU1BDcmVhdGVUeXBlDQorU1BEZWxldGVJdGVtDQorU1BEZWxldGVTdWJ0eXBlDQorU1BEZWxldGVUeXBlDQorU1BFbnVtSXRlbXMNCitTUEVudW1TdWJ0eXBlcw0KK1NQRW51bVR5cGVzDQorU1BHZXRQcm92SW5mbw0KK1NQR2V0UHJvdlBhcmFtDQorU1BHZXRTdWJ0eXBlSW5mbw0KK1NQR2V0VHlwZUluZm8NCitTUFByb3ZpZGVySW5pdGlhbGl6ZQ0KK1NQUmVhZEl0ZW0NCitTUFJlbGVhc2VDb250ZXh0DQorU1BTZXRQcm92UGFyYW0NCitTUFdyaXRlSXRlbQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3BzY2hkcHJmLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3BzY2hkcHJmLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYTZiZDgxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcHNjaGRwcmYuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUHNjaGRQcmYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFBzY2hkUHJmLmRsbA0KK0VYUE9SVFMNCitDbG9zZVBzY2hlZFBlcmZvcm1hbmNlRGF0YQ0KK0NvbGxlY3RQc2NoZWRQZXJmb3JtYW5jZURhdGENCitPcGVuUHNjaGVkUGVyZm9ybWFuY2VEYXRhDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcHNucHBhZ24uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcHNucHBhZ24uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU5MTU4M2EKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9wc25wcGFnbi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBQU05QUEFHTi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUFNOUFBBR04uZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcHN0b3JlYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9wc3RvcmVjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZGI5YmIwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcHN0b3JlYy5kZWYKQEAgLTAsMCArMSwxNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBQU1RPUkVDLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBQU1RPUkVDLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK1BTdG9yZUNyZWF0ZUluc3RhbmNlDQorUFN0b3JlRW51bVByb3ZpZGVycw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3BzdG9yc3ZjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3BzdG9yc3ZjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kOTJjOTZkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcHN0b3JzdmMuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUFNUT1JTVkMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFBTVE9SU1ZDLmRsbA0KK0VYUE9SVFMNCitQU1RPUkVTZXJ2aWNlTWFpbg0KK1NlcnZpY2VFbnRyeQ0KK1N0YXJ0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcWFzZi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9xYXNmLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lMWEyMjMzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcWFzZi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBRQVNGLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBRQVNGLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3FjYXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcWNhcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmNjZDljNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3FjYXAuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUUNhcC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUUNhcC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9xZHYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcWR2LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYjdjNGEwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcWR2LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFFEVi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUURWLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3FkdmQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcWR2ZC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjM2YjYxZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3FkdmQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUWR2ZC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUWR2ZC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9xZWRpdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9xZWRpdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmI5ZGI1OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3FlZGl0LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFFFZGl0LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBRRWRpdC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9xbWdyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3FtZ3IuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQwYjNiNjQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9xbWdyLmRlZgpAQCAtMCwwICsxLDM4IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHFtZ3IuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHFtZ3IuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIENOZXN0ZWRJbXBlcnNvbmF0aW9uOjpDTmVzdGVkSW1wZXJzb25hdGlvbihjbGFzcyBUb2tlbkhhbmRsZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTmVzdGVkSW1wZXJzb25hdGlvbkBAUUVBQUBBRUFWVG9rZW5IYW5kbGVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ05lc3RlZEltcGVyc29uYXRpb246OkNOZXN0ZWRJbXBlcnNvbmF0aW9uKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ05lc3RlZEltcGVyc29uYXRpb25AQFFFQUFAUEVBWEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ05lc3RlZEltcGVyc29uYXRpb246OkNOZXN0ZWRJbXBlcnNvbmF0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzBDTmVzdGVkSW1wZXJzb25hdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFBST1hZX1NFVFRJTkdTX0NPTlRBSU5FUjo6UFJPWFlfU0VUVElOR1NfQ09OVEFJTkVSKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgUFJPWFlfU0VUVElOR1MgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUFJPWFlfU0VUVElOR1NfQ09OVEFJTkVSQEBRRUFBQFBFQkdQRUJVUFJPWFlfU0VUVElOR1NAQEBaDQorOyB2b2lkICogX19wdHI2NCBfX2NkZWNsIEJJVFNBbGxvYyh1bnNpZ25lZCBfX2ludDY0KQ0KKz9CSVRTQWxsb2NAQFlBUEVBWF9LQFoNCis7IHZvaWQgX19jZGVjbCBCSVRTRnJlZSh2b2lkICogX19wdHI2NCkNCis/QklUU0ZyZWVAQFlBWFBFQVhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgQ1JhbmdlQ29sbGVjdGlvbjo6Qnl0ZXNSZW1haW5pbmdJbkN1cnJlbnRSYW5nZSh2b2lkKSBfX3B0cjY0DQorP0J5dGVzUmVtYWluaW5nSW5DdXJyZW50UmFuZ2VAQ1JhbmdlQ29sbGVjdGlvbkBAUUVBQV9LWFoNCis7IHByb3RlY3RlZDogYm9vbCBfX2NkZWNsIENSYW5nZUNvbGxlY3Rpb246OkNhbGN1bGF0ZUJ5dGVzVG90YWwodm9pZCkgX19wdHI2NA0KKz9DYWxjdWxhdGVCeXRlc1RvdGFsQENSYW5nZUNvbGxlY3Rpb25AQElFQUFfTlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQ3JlZGVudGlhbHNDb250YWluZXI6OkZpbmQoZW51bSBfX01JRExfSUJhY2tncm91bmRDb3B5Sm9iMl8wMDAxLGVudW0gX19NSURMX0lCYWNrZ3JvdW5kQ29weUpvYjJfMDAwMixzdHJ1Y3QgX19NSURMX0lCYWNrZ3JvdW5kQ29weUpvYjJfMDAwNSAqIF9fcHRyNjQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0ZpbmRAQ0NyZWRlbnRpYWxzQ29udGFpbmVyQEBRRUJBSlc0X19NSURMX0lCYWNrZ3JvdW5kQ29weUpvYjJfMDAwMUBAVzRfX01JRExfSUJhY2tncm91bmRDb3B5Sm9iMl8wMDAyQEBQRUFQRUFVX19NSURMX0lCYWNrZ3JvdW5kQ29weUpvYjJfMDAwNUBAQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBGaW5kSW50ZXJmYWNlSW5kZXgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9GaW5kSW50ZXJmYWNlSW5kZXhAQFlBS1BFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1JhbmdlQ29sbGVjdGlvbjo6R2V0U3ViUmFuZ2VzKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIGludCxjbGFzcyBDUmFuZ2VDb2xsZWN0aW9uICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0U3ViUmFuZ2VzQENSYW5nZUNvbGxlY3Rpb25AQFFFQUFKX0swMElQRUFQRUFWMUBAWg0KKzsgY2xhc3Mgc3RkOjphdXRvX3B0cjx1bnNpZ25lZCBzaG9ydD4gIF9fY2RlY2wgSG9zdEZyb21Qcm94eURlc2NyaXB0aW9uKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/SG9zdEZyb21Qcm94eURlc2NyaXB0aW9uQEBZQT9BVj8kYXV0b19wdHJAR0BzdGRAQFBFQUdAWg0KK1NlcnZpY2VNYWluDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IEdlbmVyaWNTdHJpbmdIYW5kbGU8dW5zaWduZWQgc2hvcnQ+OjpTdHJpbmdEYXRhICBHZW5lcmljU3RyaW5nSGFuZGxlPHVuc2lnbmVkIHNob3J0Pjo6c19FbXB0eVN0cmluZw0KKz9zX0VtcHR5U3RyaW5nQD8kR2VuZXJpY1N0cmluZ0hhbmRsZUBHQEAwVVN0cmluZ0RhdGFAMUBBIERBVEENCitCSVRTU2VydmljZU1haW4NCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9xbWdycHJ4eS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9xbWdycHJ4eS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTkwZjgzNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3FtZ3Jwcnh5LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHFtZ3Jwcnh5LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBxbWdycHJ4eS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9xb3NuYW1lLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3Fvc25hbWUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM2NzIwN2MKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9xb3NuYW1lLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHFvc25hbWUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHFvc25hbWUuZGxsDQorRVhQT1JUUw0KK1dQVUdldFFPU1RlbXBsYXRlDQorV1NDSW5zdGFsbFFPU1RlbXBsYXRlDQorV1NDUmVtb3ZlUU9TVGVtcGxhdGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9xdWFydHouZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcXVhcnR6LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YWY1ZTZmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcXVhcnR6LmRlZgpAQCAtMCwwICsxLDE3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFFVQVJUWi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUVVBUlRaLmRsbA0KK0VYUE9SVFMNCitBTUdldEVycm9yVGV4dEENCitBTUdldEVycm9yVGV4dFcNCitBbXBGYWN0b3JUb0RCDQorREJUb0FtcEZhY3Rvcg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorR2V0UHJveHlEbGxJbmZvDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcXVlcnkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcXVlcnkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM3Mjk2OWMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9xdWVyeS5kZWYKQEAgLTAsMCArMSwxNDQ3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHF1ZXJ5LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBxdWVyeS5kbGwNCitFWFBPUlRTDQorOyBjbGFzcyBDQ29UYXNrQWxsb2NhdG9yICBDb1Rhc2tBbGxvY2F0b3INCis/Q29UYXNrQWxsb2NhdG9yQEAzVkNDb1Rhc2tBbGxvY2F0b3JAQEEgREFUQQ0KKzsgcHVibGljOiBfX2NkZWNsIENBbGxvY1N0b3JhZ2VWYXJpYW50OjpDQWxsb2NTdG9yYWdlVmFyaWFudChzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgJiBfX3B0cjY0LGNsYXNzIFBNZW1vcnlBbGxvY2F0b3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0FsbG9jU3RvcmFnZVZhcmlhbnRAQFFFQUFAQUVBVXRhZ1BST1BWQVJJQU5UQEBBRUFWUE1lbW9yeUFsbG9jYXRvckBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQWxsb2NTdG9yYWdlVmFyaWFudDo6Q0FsbG9jU3RvcmFnZVZhcmlhbnQoY2xhc3MgUERlU2VyU3RyZWFtICYgX19wdHI2NCxjbGFzcyBQTWVtb3J5QWxsb2NhdG9yICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENBbGxvY1N0b3JhZ2VWYXJpYW50QEBRRUFBQEFFQVZQRGVTZXJTdHJlYW1AQEFFQVZQTWVtb3J5QWxsb2NhdG9yQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENBbGxvY1N0b3JhZ2VWYXJpYW50OjpDQWxsb2NTdG9yYWdlVmFyaWFudChjaGFyIGNvbnN0ICogX19wdHI2NCxjbGFzcyBQTWVtb3J5QWxsb2NhdG9yICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENBbGxvY1N0b3JhZ2VWYXJpYW50QEBRRUFBQFBFQkRBRUFWUE1lbW9yeUFsbG9jYXRvckBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQWxsb2NTdG9yYWdlVmFyaWFudDo6Q0FsbG9jU3RvcmFnZVZhcmlhbnQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIFBNZW1vcnlBbGxvY2F0b3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0FsbG9jU3RvcmFnZVZhcmlhbnRAQFFFQUFAUEVCR0FFQVZQTWVtb3J5QWxsb2NhdG9yQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENBbGxvY1N0b3JhZ2VWYXJpYW50OjpDQWxsb2NTdG9yYWdlVmFyaWFudChzdHJ1Y3QgX0dVSUQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIFBNZW1vcnlBbGxvY2F0b3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0FsbG9jU3RvcmFnZVZhcmlhbnRAQFFFQUFAUEVCVV9HVUlEQEBBRUFWUE1lbW9yeUFsbG9jYXRvckBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQWxsb2NTdG9yYWdlVmFyaWFudDo6Q0FsbG9jU3RvcmFnZVZhcmlhbnQoZW51bSBWQVJFTlVNLHVuc2lnbmVkIGxvbmcsY2xhc3MgUE1lbW9yeUFsbG9jYXRvciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQWxsb2NTdG9yYWdlVmFyaWFudEBAUUVBQUBXNFZBUkVOVU1AQEtBRUFWUE1lbW9yeUFsbG9jYXRvckBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ2F0U3RhdGU6OkNDYXRTdGF0ZSh2b2lkKSBfX3B0cjY0DQorPz8wQ0NhdFN0YXRlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NhdGVnb3JpemF0aW9uU2V0OjpDQ2F0ZWdvcml6YXRpb25TZXQoY2xhc3MgQ0NhdGVnb3JpemF0aW9uU2V0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENDYXRlZ29yaXphdGlvblNldEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENDYXRlZ29yaXphdGlvblNldDo6Q0NhdGVnb3JpemF0aW9uU2V0KHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MENDYXRlZ29yaXphdGlvblNldEBAUUVBQUBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ2lBZG1pblBhcmFtczo6Q0NpQWRtaW5QYXJhbXMoY2xhc3MgQ0xhbmdMaXN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENDaUFkbWluUGFyYW1zQEBRRUFBQFBFQVZDTGFuZ0xpc3RAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NpUmVnUGFyYW1zOjpDQ2lSZWdQYXJhbXModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0NpUmVnUGFyYW1zQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIENDb2x1bW5TZXQ6OkNDb2x1bW5TZXQodW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQ0NvbHVtblNldEBAUUVBQUBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ29sdW1uczo6Q0NvbHVtbnMoY2xhc3MgQ0NvbHVtbnMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0NvbHVtbnNAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ29sdW1uczo6Q0NvbHVtbnModW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQ0NvbHVtbnNAQFFFQUFASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NvbnRlbnRSZXN0cmljdGlvbjo6Q0NvbnRlbnRSZXN0cmljdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0Z1bGxQcm9wU3BlYyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wQ0NvbnRlbnRSZXN0cmljdGlvbkBAUUVBQUBQRUJHQUVCVkNGdWxsUHJvcFNwZWNAQEtLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDREZBOjpDREZBKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBDVGltZUxpbWl0ICYgX19wdHI2NCx1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorPz8wQ0RGQUBAUUVBQUBQRUJHQUVBVkNUaW1lTGltaXRAQEVAWg0KKzsgcHVibGljOiBfX2NkZWNsIENEYkNvbElkOjpDRGJDb2xJZChzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENEYkNvbElkQEBRRUFBQEFFQlVfR1VJREBAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0RiQ29sSWQ6OkNEYkNvbElkKHN0cnVjdCB0YWdEQklEIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENEYkNvbElkQEBRRUFBQEFFQlV0YWdEQklEQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENEYkNvbElkOjpDRGJDb2xJZChjbGFzcyBDRGJDb2xJZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRGJDb2xJZEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENEYkNvbElkOjpDRGJDb2xJZCh2b2lkKSBfX3B0cjY0DQorPz8wQ0RiQ29sSWRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRGJDb2x1bW5zOjpDRGJDb2x1bW5zKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MENEYkNvbHVtbnNAQFFFQUFASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0RiQ29udGVudFJlc3RyaWN0aW9uOjpDRGJDb250ZW50UmVzdHJpY3Rpb24odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCB0YWdEQklEIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDRGJDb250ZW50UmVzdHJpY3Rpb25AQFFFQUFAUEVCR0FFQlV0YWdEQklEQEBLS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0RiQ29udGVudFJlc3RyaWN0aW9uOjpDRGJDb250ZW50UmVzdHJpY3Rpb24odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENEYkNvbHVtbk5vZGUgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENEYkNvbnRlbnRSZXN0cmljdGlvbkBAUUVBQUBQRUJHQUVCVkNEYkNvbHVtbk5vZGVAQEtLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRGJOYXRMYW5nUmVzdHJpY3Rpb246OkNEYk5hdExhbmdSZXN0cmljdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IHRhZ0RCSUQgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDRGJOYXRMYW5nUmVzdHJpY3Rpb25AQFFFQUFAUEVCR0FFQlV0YWdEQklEQEBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRGJOYXRMYW5nUmVzdHJpY3Rpb246OkNEYk5hdExhbmdSZXN0cmljdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0RiQ29sdW1uTm9kZSBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENEYk5hdExhbmdSZXN0cmljdGlvbkBAUUVBQUBQRUJHQUVCVkNEYkNvbHVtbk5vZGVAQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIENEYlF1ZXJ5UmVzdWx0czo6Q0RiUXVlcnlSZXN1bHRzKHZvaWQpIF9fcHRyNjQNCis/PzBDRGJRdWVyeVJlc3VsdHNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRGJTZWxlY3ROb2RlOjpDRGJTZWxlY3ROb2RlKHZvaWQpIF9fcHRyNjQNCis/PzBDRGJTZWxlY3ROb2RlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0RiU29ydFNldDo6Q0RiU29ydFNldCh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBDRGJTb3J0U2V0QEBRRUFBQElAWg0KKzsgcHVibGljOiBfX2NkZWNsIENEZWZDb2x1bW5SZWdFbnRyeTo6Q0RlZkNvbHVtblJlZ0VudHJ5KHZvaWQpIF9fcHRyNjQNCis/PzBDRGVmQ29sdW1uUmVnRW50cnlAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRHJpdmVJbmZvOjpDRHJpdmVJbmZvKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wQ0RyaXZlSW5mb0BAUUVBQUBQRUJHS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0R5blN0cmVhbTo6Q0R5blN0cmVhbShjbGFzcyBQTW1TdHJlYW0gKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0R5blN0cmVhbUBAUUVBQUBQRUFWUE1tU3RyZWFtQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENFdmVudEl0ZW06OkNFdmVudEl0ZW0odW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBsb25nLHZvaWQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0V2ZW50SXRlbUBAUUVBQUBHR0tHS1BFQlhAWg0KKzsgcHVibGljOiBfX2NkZWNsIENFdmVudExvZzo6Q0V2ZW50TG9nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRXZlbnRMb2dAQFFFQUFAUEVCRzBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENFeGNlcHRpb246OkNFeGNlcHRpb24obG9uZykgX19wdHI2NA0KKz8/MENFeGNlcHRpb25AQFFFQUFASkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0V4Y2VwdGlvbjo6Q0V4Y2VwdGlvbih2b2lkKSBfX3B0cjY0DQorPz8wQ0V4Y2VwdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENGaWxlQnVmZmVyOjpDRmlsZUJ1ZmZlcihjbGFzcyBDRmlsZU1hcFZpZXcgJiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MENGaWxlQnVmZmVyQEBRRUFBQEFFQVZDRmlsZU1hcFZpZXdAQElAWg0KKzsgcHVibGljOiBfX2NkZWNsIENGaWxlTWFwVmlldzo6Q0ZpbGVNYXBWaWV3KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENGaWxlTWFwVmlld0BAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRmlsdGVyRGFlbW9uOjpDRmlsdGVyRGFlbW9uKGNsYXNzIENpUHJveHkgJiBfX3B0cjY0LGNsYXNzIENDaUZyYW1ld29ya1BhcmFtcyAmIF9fcHRyNjQsY2xhc3MgQ0xhbmdMaXN0ICYgX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHN0cnVjdCBJQ2lDRmlsdGVyQ2xpZW50ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENGaWx0ZXJEYWVtb25AQFFFQUFAQUVBVkNpUHJveHlAQEFFQVZDQ2lGcmFtZXdvcmtQYXJhbXNAQEFFQVZDTGFuZ0xpc3RAQFBFQUVLUEVBVUlDaUNGaWx0ZXJDbGllbnRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Z1bGxQYXRoOjpDRnVsbFBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0Z1bGxQYXRoQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIENGdWxsUGF0aDo6Q0Z1bGxQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBDRnVsbFBhdGhAQFFFQUFAUEVCR0lAWg0KKzsgcHVibGljOiBfX2NkZWNsIENGdWxsUHJvcFNwZWM6OkNGdWxsUHJvcFNwZWMoY2xhc3MgUERlU2VyU3RyZWFtICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENGdWxsUHJvcFNwZWNAQFFFQUFAQUVBVlBEZVNlclN0cmVhbUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRnVsbFByb3BTcGVjOjpDRnVsbFByb3BTcGVjKGNsYXNzIENGdWxsUHJvcFNwZWMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0Z1bGxQcm9wU3BlY0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENGdWxsUHJvcFNwZWM6OkNGdWxsUHJvcFNwZWModm9pZCkgX19wdHI2NA0KKz8/MENGdWxsUHJvcFNwZWNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRndBc3luY1dvcmtJdGVtOjpDRndBc3luY1dvcmtJdGVtKGNsYXNzIENXb3JrTWFuYWdlciAmIF9fcHRyNjQsY2xhc3MgQ1dvcmtRdWV1ZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRndBc3luY1dvcmtJdGVtQEBRRUFBQEFFQVZDV29ya01hbmFnZXJAQEFFQVZDV29ya1F1ZXVlQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENGd0V2ZW50SXRlbTo6Q0Z3RXZlbnRJdGVtKHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENGd0V2ZW50SXRlbUBAUUVBQUBHS0dLUEVBWEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0dlbmVyaWNDaVByb3h5OjpDR2VuZXJpY0NpUHJveHkoY2xhc3MgQ1NoYXJlZE5hbWVHZW4gJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENHZW5lcmljQ2lQcm94eUBAUUVBQUBBRUFWQ1NoYXJlZE5hbWVHZW5AQEtLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDR2V0RGJQcm9wczo6Q0dldERiUHJvcHModm9pZCkgX19wdHI2NA0KKz8/MENHZXREYlByb3BzQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ltcGVyc29uYXRlUmVtb3RlQWNjZXNzOjpDSW1wZXJzb25hdGVSZW1vdGVBY2Nlc3MoY2xhc3MgQ0ltcGVyc29uYXRpb25Ub2tlbkNhY2hlICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENJbXBlcnNvbmF0ZVJlbW90ZUFjY2Vzc0BAUUVBQUBQRUFWQ0ltcGVyc29uYXRpb25Ub2tlbkNhY2hlQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbXBlcnNvbmF0aW9uVG9rZW5DYWNoZTo6Q0ltcGVyc29uYXRpb25Ub2tlbkNhY2hlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENJbXBlcnNvbmF0aW9uVG9rZW5DYWNoZUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW5kZXhUYWJsZTo6Q0luZGV4VGFibGUoY2xhc3MgQ2lTdG9yYWdlICYgX19wdHI2NCxjbGFzcyBDVHJhbnNhY3Rpb24gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0luZGV4VGFibGVAQFFFQUFAQUVBVkNpU3RvcmFnZUBAQUVBVkNUcmFuc2FjdGlvbkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW50ZXJuYWxQcm9wZXJ0eVJlc3RyaWN0aW9uOjpDSW50ZXJuYWxQcm9wZXJ0eVJlc3RyaWN0aW9uKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBDU3RvcmFnZVZhcmlhbnQgY29uc3QgJiBfX3B0cjY0LGNsYXNzIENSZXN0cmljdGlvbiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSW50ZXJuYWxQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRRUFBQEtLQUVCVkNTdG9yYWdlVmFyaWFudEBAUEVBVkNSZXN0cmljdGlvbkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDS2V5QXJyYXk6OkNLZXlBcnJheShpbnQsaW50KSBfX3B0cjY0DQorPz8wQ0tleUFycmF5QEBRRUFBQEhIQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTGFuZ0xpc3Q6OkNMYW5nTGlzdChzdHJ1Y3QgSUNpQ0xhbmdSZXMgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDTGFuZ0xpc3RAQFFFQUFAUEVBVUlDaUNMYW5nUmVzQEBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTG9jYWxHbG9iYWxQcm9wZXJ0eUxpc3Q6OkNMb2NhbEdsb2JhbFByb3BlcnR5TGlzdCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wQ0xvY2FsR2xvYmFsUHJvcGVydHlMaXN0QEBRRUFBQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIENMb2NhbEdsb2JhbFByb3BlcnR5TGlzdDo6Q0xvY2FsR2xvYmFsUHJvcGVydHlMaXN0KGNsYXNzIENFbXB0eVByb3BlcnR5TGlzdCAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wQ0xvY2FsR2xvYmFsUHJvcGVydHlMaXN0QEBRRUFBQFBFQVZDRW1wdHlQcm9wZXJ0eUxpc3RAQEhQRUJHS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01hY2hpbmVBZG1pbjo6Q01hY2hpbmVBZG1pbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wQ01hY2hpbmVBZG1pbkBAUUVBQUBQRUJHSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01lbVNlclN0cmVhbTo6Q01lbVNlclN0cmVhbSh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBDTWVtU2VyU3RyZWFtQEBRRUFBQElAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZW1TZXJTdHJlYW06OkNNZW1TZXJTdHJlYW0odW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENNZW1TZXJTdHJlYW1AQFFFQUFAUEVBRUtAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhRGF0YU1ncjo6Q01ldGFEYXRhTWdyKGludCxlbnVtIENpVlJvb3RUeXBlRW51bSx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENNZXRhRGF0YU1nckBAUUVBQUBIVzRDaVZSb290VHlwZUVudW1AQEtQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTW1TdHJlYW06OkNNbVN0cmVhbSh1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz8/MENNbVN0cmVhbUBAUUVBQUBLSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01tU3RyZWFtQ29uc2VjQnVmOjpDTW1TdHJlYW1Db25zZWNCdWYodm9pZCkgX19wdHI2NA0KKz8/MENNbVN0cmVhbUNvbnNlY0J1ZkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENOYXRMYW5ndWFnZVJlc3RyaWN0aW9uOjpDTmF0TGFuZ3VhZ2VSZXN0cmljdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0Z1bGxQcm9wU3BlYyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENOYXRMYW5ndWFnZVJlc3RyaWN0aW9uQEBRRUFBQFBFQkdBRUJWQ0Z1bGxQcm9wU3BlY0BAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ05vZGVSZXN0cmljdGlvbjo6Q05vZGVSZXN0cmljdGlvbih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MENOb2RlUmVzdHJpY3Rpb25AQFFFQUFAS0lAWg0KKzsgcHVibGljOiBfX2NkZWNsIENOb3JtYWxpemVyOjpDTm9ybWFsaXplcihjbGFzcyBQTm9pc2VMaXN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENOb3JtYWxpemVyQEBRRUFBQEFFQVZQTm9pc2VMaXN0QEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENQYXRoUGFyc2VyOjpDUGF0aFBhcnNlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENQYXRoUGFyc2VyQEBRRUFBQFBFQkdLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDUGVyZk1vbjo6Q1BlcmZNb24odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1BlcmZNb25AQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1BlcnNEZUNvbXA6OkNQZXJzRGVDb21wKGNsYXNzIFBEaXJlY3RvcnkgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsY2xhc3MgQ1BoeXNJbmRleCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxpbnQsaW50KSBfX3B0cjY0DQorPz8wQ1BlcnNEZUNvbXBAQFFFQUFAQUVBVlBEaXJlY3RvcnlAQEtBRUFWQ1BoeXNJbmRleEBAS0hIQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBDUGh5c1N0b3JhZ2U6OkNQaHlzU3RvcmFnZShjbGFzcyBQU3RvcmFnZSAmIF9fcHRyNjQsY2xhc3MgUFN0b3JhZ2VPYmplY3QgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgaW50LGNsYXNzIFBNbVN0cmVhbSAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIGludCxpbnQpIF9fcHRyNjQNCis/PzBDUGh5c1N0b3JhZ2VAQElFQUFAQUVBVlBTdG9yYWdlQEBBRUFWUFN0b3JhZ2VPYmplY3RAQEtJUEVBVlBNbVN0cmVhbUBASElIQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBDUGh5c1N0b3JhZ2U6OkNQaHlzU3RvcmFnZShjbGFzcyBQU3RvcmFnZSAmIF9fcHRyNjQsY2xhc3MgUFN0b3JhZ2VPYmplY3QgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsY2xhc3MgUE1tU3RyZWFtICogX19wdHI2NCxlbnVtIENQaHlzU3RvcmFnZTo6RU9wZW5Nb2RlLGludCx1bnNpZ25lZCBpbnQsaW50KSBfX3B0cjY0DQorPz8wQ1BoeXNTdG9yYWdlQEBJRUFBQEFFQVZQU3RvcmFnZUBAQUVBVlBTdG9yYWdlT2JqZWN0QEBLUEVBVlBNbVN0cmVhbUBAVzRFT3Blbk1vZGVAMUBISUhAWg0KKzsgcHVibGljOiBfX2NkZWNsIENQaWRMb29rdXBUYWJsZTo6Q1BpZExvb2t1cFRhYmxlKHZvaWQpIF9fcHRyNjQNCis/PzBDUGlkTG9va3VwVGFibGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUGlkUmVtYXBwZXI6OkNQaWRSZW1hcHBlcihjbGFzcyBYSW50ZXJmYWNlPHN0cnVjdCBJUHJvcGVydHlNYXBwZXI+ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENQaWRSZW1hcHBlckBAUUVBQUBBRUFWPyRYSW50ZXJmYWNlQFVJUHJvcGVydHlNYXBwZXJAQEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDUGlkUmVtYXBwZXI6OkNQaWRSZW1hcHBlcihjbGFzcyBDUGlkTWFwcGVyIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBYSW50ZXJmYWNlPHN0cnVjdCBJUHJvcGVydHlNYXBwZXI+ICYgX19wdHI2NCxjbGFzcyBDUmVzdHJpY3Rpb24gKiBfX3B0cjY0LGNsYXNzIENDb2x1bW5TZXQgKiBfX3B0cjY0LGNsYXNzIENTb3J0U2V0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENQaWRSZW1hcHBlckBAUUVBQUBBRUJWQ1BpZE1hcHBlckBAQUVBVj8kWEludGVyZmFjZUBVSVByb3BlcnR5TWFwcGVyQEBAQFBFQVZDUmVzdHJpY3Rpb25AQFBFQVZDQ29sdW1uU2V0QEBQRUFWQ1NvcnRTZXRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Byb3BMaXN0RmlsZTo6Q1Byb3BMaXN0RmlsZShjbGFzcyBDRW1wdHlQcm9wZXJ0eUxpc3QgKiBfX3B0cjY0LGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENQcm9wTGlzdEZpbGVAQFFFQUFAUEVBVkNFbXB0eVByb3BlcnR5TGlzdEBASFBFQkdLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDUHJvcE5hbWVBcnJheTo6Q1Byb3BOYW1lQXJyYXkoY2xhc3MgUERlU2VyU3RyZWFtICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENQcm9wTmFtZUFycmF5QEBRRUFBQEFFQVZQRGVTZXJTdHJlYW1AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Byb3BOYW1lQXJyYXk6OkNQcm9wTmFtZUFycmF5KHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MENQcm9wTmFtZUFycmF5QEBRRUFBQElAWg0KKzsgcHVibGljOiBfX2NkZWNsIENQcm9wU3RvcmVNYW5hZ2VyOjpDUHJvcFN0b3JlTWFuYWdlcih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wQ1Byb3BTdG9yZU1hbmFnZXJAQFFFQUFAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Byb3BlcnR5UmVzdHJpY3Rpb246OkNQcm9wZXJ0eVJlc3RyaWN0aW9uKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0Z1bGxQcm9wU3BlYyBjb25zdCAmIF9fcHRyNjQsY2xhc3MgQ1N0b3JhZ2VWYXJpYW50IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRRUFBQEtBRUJWQ0Z1bGxQcm9wU3BlY0BAQUVCVkNTdG9yYWdlVmFyaWFudEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDUHJvcGVydHlSZXN0cmljdGlvbjo6Q1Byb3BlcnR5UmVzdHJpY3Rpb24odm9pZCkgX19wdHI2NA0KKz8/MENQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Byb3BlcnR5U3RvcmVXaWRzOjpDUHJvcGVydHlTdG9yZVdpZHMoY2xhc3MgQ1Byb3BTdG9yZU1hbmFnZXIgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1Byb3BlcnR5U3RvcmVXaWRzQEBRRUFBQEFFQVZDUHJvcFN0b3JlTWFuYWdlckBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDUHJvcGVydHlWYWx1ZVBhcnNlcjo6Q1Byb3BlcnR5VmFsdWVQYXJzZXIoY2xhc3MgQ1F1ZXJ5U2Nhbm5lciAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENQcm9wZXJ0eVZhbHVlUGFyc2VyQEBRRUFBQEFFQVZDUXVlcnlTY2FubmVyQEBHS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1F1ZXJ5U2Nhbm5lcjo6Q1F1ZXJ5U2Nhbm5lcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIGxvbmcsaW50KSBfX3B0cjY0DQorPz8wQ1F1ZXJ5U2Nhbm5lckBAUUVBQUBQRUJHSEtIQFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmFuZ2VLZXlSZXBvc2l0b3J5OjpDUmFuZ2VLZXlSZXBvc2l0b3J5KHZvaWQpIF9fcHRyNjQNCis/PzBDUmFuZ2VLZXlSZXBvc2l0b3J5QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Jjb3ZTdHJtQXBwZW5kVHJhbnM6OkNSY292U3RybUFwcGVuZFRyYW5zKGNsYXNzIFBSY292U3RvcmFnZU9iaiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDUmNvdlN0cm1BcHBlbmRUcmFuc0BAUUVBQUBBRUFWUFJjb3ZTdG9yYWdlT2JqQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENSY292U3RybU1EVHJhbnM6OkNSY292U3RybU1EVHJhbnMoY2xhc3MgUFJjb3ZTdG9yYWdlT2JqICYgX19wdHI2NCxlbnVtIENSY292U3RybU1EVHJhbnM6Ok1ET3AsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENSY292U3RybU1EVHJhbnNAQFFFQUFAQUVBVlBSY292U3RvcmFnZU9iakBAVzRNRE9wQDBAS0BaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQ1Jjb3ZTdHJtVHJhbnM6OkNSY292U3RybVRyYW5zKGNsYXNzIFBSY292U3RvcmFnZU9iaiAmIF9fcHRyNjQsZW51bSBSY292T3BUeXBlKSBfX3B0cjY0DQorPz8wQ1Jjb3ZTdHJtVHJhbnNAQElFQUFAQUVBVlBSY292U3RvcmFnZU9iakBAVzRSY292T3BUeXBlQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENSZWdBY2Nlc3M6OkNSZWdBY2Nlc3ModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDUmVnQWNjZXNzQEBRRUFBQEtQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmVnQ2hhbmdlRXZlbnQ6OkNSZWdDaGFuZ2VFdmVudCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wQ1JlZ0NoYW5nZUV2ZW50QEBRRUFBQFBFQkdIQFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmVnTm90aWZ5OjpDUmVnTm90aWZ5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENSZWdOb3RpZnlAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1JlcXVlc3RDbGllbnQ6OkNSZXF1ZXN0Q2xpZW50KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgSURCUHJvcGVydGllcyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDUmVxdWVzdENsaWVudEBAUUVBQUBQRUJHUEVBVUlEQlByb3BlcnRpZXNAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1JlcXVlc3RRdWV1ZTo6Q1JlcXVlc3RRdWV1ZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1JlcXVlc3RRdWV1ZUBAUUVBQUBJSUlISUlBRUJVX0dVSURAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Njb3BlUmVzdHJpY3Rpb246OkNTY29wZVJlc3RyaWN0aW9uKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQsaW50KSBfX3B0cjY0DQorPz8wQ1Njb3BlUmVzdHJpY3Rpb25AQFFFQUFAUEVCR0hIQFoNCis7IHB1YmxpYzogX19jZGVjbCBDU2RpZExvb2t1cFRhYmxlOjpDU2RpZExvb2t1cFRhYmxlKHZvaWQpIF9fcHRyNjQNCis/PzBDU2RpZExvb2t1cFRhYmxlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1NpemVTZXJTdHJlYW06OkNTaXplU2VyU3RyZWFtKHZvaWQpIF9fcHRyNjQNCis/PzBDU2l6ZVNlclN0cmVhbUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTb3J0OjpDU29ydCh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBDU29ydEBAUUVBQUBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBDU29ydFNldDo6Q1NvcnRTZXQodW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQ1NvcnRTZXRAQFFFQUFASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1N0YW5kYXJkUHJvcE1hcHBlcjo6Q1N0YW5kYXJkUHJvcE1hcHBlcih2b2lkKSBfX3B0cjY0DQorPz8wQ1N0YW5kYXJkUHJvcE1hcHBlckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTdmNRdWVyeTo6Q1N2Y1F1ZXJ5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgSURCUHJvcGVydGllcyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDU3ZjUXVlcnlAQFFFQUFAUEVCR1BFQVVJREJQcm9wZXJ0aWVzQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENTeW5SZXN0cmljdGlvbjo6Q1N5blJlc3RyaWN0aW9uKGNsYXNzIENLZXkgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz8/MENTeW5SZXN0cmljdGlvbkBAUUVBQUBBRUJWQ0tleUBAS0tLSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1RpbWVMaW1pdDo6Q1RpbWVMaW1pdCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDVGltZUxpbWl0QEBRRUFBQEtLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDVHJhbnNhY3Rpb246OkNUcmFuc2FjdGlvbih2b2lkKSBfX3B0cjY0DQorPz8wQ1RyYW5zYWN0aW9uQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1VuZmlsdGVyZWRSZXN0cmljdGlvbjo6Q1VuZmlsdGVyZWRSZXN0cmljdGlvbih2b2lkKSBfX3B0cjY0DQorPz8wQ1VuZmlsdGVyZWRSZXN0cmljdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWYWx1ZU5vcm1hbGl6ZXI6OkNWYWx1ZU5vcm1hbGl6ZXIoY2xhc3MgUEtleVJlcG9zaXRvcnkgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1ZhbHVlTm9ybWFsaXplckBAUUVBQUBBRUFWUEtleVJlcG9zaXRvcnlAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1ZpcnR1YWxTdHJpbmc6OkNWaXJ0dWFsU3RyaW5nKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MENWaXJ0dWFsU3RyaW5nQEBRRUFBQElAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXaW4zMlJlZ0FjY2Vzczo6Q1dpbjMyUmVnQWNjZXNzKHN0cnVjdCBIS0VZX18gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENXaW4zMlJlZ0FjY2Vzc0BAUUVBQUBQRUFVSEtFWV9fQEBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV29yZFJlc3RyaWN0aW9uOjpDV29yZFJlc3RyaWN0aW9uKGNsYXNzIENLZXlCdWYgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz8/MENXb3JkUmVzdHJpY3Rpb25AQFFFQUFAQUVCVkNLZXlCdWZAQEtLS0hAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXb3JrUXVldWU6OkNXb3JrUXVldWUodW5zaWduZWQgaW50LGVudW0gQ1dvcmtRdWV1ZTo6V29ya1F1ZXVlVHlwZSkgX19wdHI2NA0KKz8/MENXb3JrUXVldWVAQFFFQUFASVc0V29ya1F1ZXVlVHlwZUAwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ2lTdG9yYWdlOjpDaVN0b3JhZ2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBJQ2lDQWR2aXNlU3RhdHVzICYgX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50KSBfX3B0cjY0DQorPz8wQ2lTdG9yYWdlQEBRRUFBQFBFQkdBRUFVSUNpQ0FkdmlzZVN0YXR1c0BAS0tIQFoNCis7IHB1YmxpYzogX19jZGVjbCBTU3RvcmFnZU9iamVjdDo6U1N0b3JhZ2VPYmplY3QoY2xhc3MgUFN0b3JhZ2VPYmplY3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU1N0b3JhZ2VPYmplY3RAQFFFQUFAUEVBVlBTdG9yYWdlT2JqZWN0QEBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIENBbGxvY1N0b3JhZ2VWYXJpYW50Ojp+Q0FsbG9jU3RvcmFnZVZhcmlhbnQodm9pZCkgX19wdHI2NA0KKz8/MUNBbGxvY1N0b3JhZ2VWYXJpYW50QEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NhdFN0YXRlOjp+Q0NhdFN0YXRlKHZvaWQpIF9fcHRyNjQNCis/PzFDQ2F0U3RhdGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ2F0YWxvZ0FkbWluOjp+Q0NhdGFsb2dBZG1pbih2b2lkKSBfX3B0cjY0DQorPz8xQ0NhdGFsb2dBZG1pbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENDYXRhbG9nRW51bTo6fkNDYXRhbG9nRW51bSh2b2lkKSBfX3B0cjY0DQorPz8xQ0NhdGFsb2dFbnVtQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NvbHVtbnM6On5DQ29sdW1ucyh2b2lkKSBfX3B0cjY0DQorPz8xQ0NvbHVtbnNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ29udGVudFJlc3RyaWN0aW9uOjp+Q0NvbnRlbnRSZXN0cmljdGlvbih2b2lkKSBfX3B0cjY0DQorPz8xQ0NvbnRlbnRSZXN0cmljdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENERkE6On5DREZBKHZvaWQpIF9fcHRyNjQNCis/PzFDREZBQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0RiQ21kVHJlZU5vZGU6On5DRGJDbWRUcmVlTm9kZSh2b2lkKSBfX3B0cjY0DQorPz8xQ0RiQ21kVHJlZU5vZGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRGJDb2x1bW5zOjp+Q0RiQ29sdW1ucyh2b2lkKSBfX3B0cjY0DQorPz8xQ0RiQ29sdW1uc0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENEYlByb3BTZXQ6On5DRGJQcm9wU2V0KHZvaWQpIF9fcHRyNjQNCis/PzFDRGJQcm9wU2V0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0RiUXVlcnlSZXN1bHRzOjp+Q0RiUXVlcnlSZXN1bHRzKHZvaWQpIF9fcHRyNjQNCis/PzFDRGJRdWVyeVJlc3VsdHNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRGJTb3J0U2V0Ojp+Q0RiU29ydFNldCh2b2lkKSBfX3B0cjY0DQorPz8xQ0RiU29ydFNldEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENEeW5TdHJlYW06On5DRHluU3RyZWFtKHZvaWQpIF9fcHRyNjQNCis/PzFDRHluU3RyZWFtQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0V2ZW50SXRlbTo6fkNFdmVudEl0ZW0odm9pZCkgX19wdHI2NA0KKz8/MUNFdmVudEl0ZW1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXZlbnRMb2c6On5DRXZlbnRMb2codm9pZCkgX19wdHI2NA0KKz8/MUNFdmVudExvZ0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENGaWxlTWFwVmlldzo6fkNGaWxlTWFwVmlldyh2b2lkKSBfX3B0cjY0DQorPz8xQ0ZpbGVNYXBWaWV3QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ZpbHRlckRhZW1vbjo6fkNGaWx0ZXJEYWVtb24odm9pZCkgX19wdHI2NA0KKz8/MUNGaWx0ZXJEYWVtb25AQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENGd0FzeW5jV29ya0l0ZW06On5DRndBc3luY1dvcmtJdGVtKHZvaWQpIF9fcHRyNjQNCis/PzFDRndBc3luY1dvcmtJdGVtQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Z3RXZlbnRJdGVtOjp+Q0Z3RXZlbnRJdGVtKHZvaWQpIF9fcHRyNjQNCis/PzFDRndFdmVudEl0ZW1AQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENHZW5lcmljQ2lQcm94eTo6fkNHZW5lcmljQ2lQcm94eSh2b2lkKSBfX3B0cjY0DQorPz8xQ0dlbmVyaWNDaVByb3h5QEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ltcGVyc29uYXRlQ2xpZW50Ojp+Q0ltcGVyc29uYXRlQ2xpZW50KHZvaWQpIF9fcHRyNjQNCis/PzFDSW1wZXJzb25hdGVDbGllbnRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW1wZXJzb25hdGVTeXN0ZW06On5DSW1wZXJzb25hdGVTeXN0ZW0odm9pZCkgX19wdHI2NA0KKz8/MUNJbXBlcnNvbmF0ZVN5c3RlbUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbXBlcnNvbmF0aW9uVG9rZW5DYWNoZTo6fkNJbXBlcnNvbmF0aW9uVG9rZW5DYWNoZSh2b2lkKSBfX3B0cjY0DQorPz8xQ0ltcGVyc29uYXRpb25Ub2tlbkNhY2hlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ludGVybmFsUHJvcGVydHlSZXN0cmljdGlvbjo6fkNJbnRlcm5hbFByb3BlcnR5UmVzdHJpY3Rpb24odm9pZCkgX19wdHI2NA0KKz8/MUNJbnRlcm5hbFByb3BlcnR5UmVzdHJpY3Rpb25AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDS2V5QXJyYXk6On5DS2V5QXJyYXkodm9pZCkgX19wdHI2NA0KKz8/MUNLZXlBcnJheUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENMYW5nTGlzdDo6fkNMYW5nTGlzdCh2b2lkKSBfX3B0cjY0DQorPz8xQ0xhbmdMaXN0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01hY2hpbmVBZG1pbjo6fkNNYWNoaW5lQWRtaW4odm9pZCkgX19wdHI2NA0KKz8/MUNNYWNoaW5lQWRtaW5AQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENNZW1TZXJTdHJlYW06On5DTWVtU2VyU3RyZWFtKHZvaWQpIF9fcHRyNjQNCis/PzFDTWVtU2VyU3RyZWFtQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFEYXRhTWdyOjp+Q01ldGFEYXRhTWdyKHZvaWQpIF9fcHRyNjQNCis/PzFDTWV0YURhdGFNZ3JAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENNbVN0cmVhbTo6fkNNbVN0cmVhbSh2b2lkKSBfX3B0cjY0DQorPz8xQ01tU3RyZWFtQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01tU3RyZWFtQ29uc2VjQnVmOjp+Q01tU3RyZWFtQ29uc2VjQnVmKHZvaWQpIF9fcHRyNjQNCis/PzFDTW1TdHJlYW1Db25zZWNCdWZAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTmF0TGFuZ3VhZ2VSZXN0cmljdGlvbjo6fkNOYXRMYW5ndWFnZVJlc3RyaWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFDTmF0TGFuZ3VhZ2VSZXN0cmljdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENOb2RlUmVzdHJpY3Rpb246On5DTm9kZVJlc3RyaWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFDTm9kZVJlc3RyaWN0aW9uQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ05vdFJlc3RyaWN0aW9uOjp+Q05vdFJlc3RyaWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFDTm90UmVzdHJpY3Rpb25AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDT2NjUmVzdHJpY3Rpb246On5DT2NjUmVzdHJpY3Rpb24odm9pZCkgX19wdHI2NA0KKz8/MUNPY2NSZXN0cmljdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENQYXJzZUNvbW1hbmRUcmVlOjp+Q1BhcnNlQ29tbWFuZFRyZWUodm9pZCkgX19wdHI2NA0KKz8/MUNQYXJzZUNvbW1hbmRUcmVlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1BlcmZNb246On5DUGVyZk1vbih2b2lkKSBfX3B0cjY0DQorPz8xQ1BlcmZNb25AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUGhyYXNlUmVzdHJpY3Rpb246On5DUGhyYXNlUmVzdHJpY3Rpb24odm9pZCkgX19wdHI2NA0KKz8/MUNQaHJhc2VSZXN0cmljdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1BoeXNTdG9yYWdlOjp+Q1BoeXNTdG9yYWdlKHZvaWQpIF9fcHRyNjQNCis/PzFDUGh5c1N0b3JhZ2VAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUGlkTG9va3VwVGFibGU6On5DUGlkTG9va3VwVGFibGUodm9pZCkgX19wdHI2NA0KKz8/MUNQaWRMb29rdXBUYWJsZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENQaWRSZW1hcHBlcjo6fkNQaWRSZW1hcHBlcih2b2lkKSBfX3B0cjY0DQorPz8xQ1BpZFJlbWFwcGVyQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Byb2Nlc3M6On5DUHJvY2Vzcyh2b2lkKSBfX3B0cjY0DQorPz8xQ1Byb2Nlc3NAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUHJvcFN0b3JlTWFuYWdlcjo6fkNQcm9wU3RvcmVNYW5hZ2VyKHZvaWQpIF9fcHRyNjQNCis/PzFDUHJvcFN0b3JlTWFuYWdlckBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1Byb3BlcnR5TGlzdDo6fkNQcm9wZXJ0eUxpc3Qodm9pZCkgX19wdHI2NA0KKz8/MUNQcm9wZXJ0eUxpc3RAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUHJvcGVydHlSZXN0cmljdGlvbjo6fkNQcm9wZXJ0eVJlc3RyaWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFDUHJvcGVydHlSZXN0cmljdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENQcm9wZXJ0eVN0b3JlOjp+Q1Byb3BlcnR5U3RvcmUodm9pZCkgX19wdHI2NA0KKz8/MUNQcm9wZXJ0eVN0b3JlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Byb3BlcnR5U3RvcmVXaWRzOjp+Q1Byb3BlcnR5U3RvcmVXaWRzKHZvaWQpIF9fcHRyNjQNCis/PzFDUHJvcGVydHlTdG9yZVdpZHNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUXVlcnlVbmtub3duOjp+Q1F1ZXJ5VW5rbm93bih2b2lkKSBfX3B0cjY0DQorPz8xQ1F1ZXJ5VW5rbm93bkBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1JhbmdlS2V5UmVwb3NpdG9yeTo6fkNSYW5nZUtleVJlcG9zaXRvcnkodm9pZCkgX19wdHI2NA0KKz8/MUNSYW5nZUtleVJlcG9zaXRvcnlAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmVnQ2hhbmdlRXZlbnQ6On5DUmVnQ2hhbmdlRXZlbnQodm9pZCkgX19wdHI2NA0KKz8/MUNSZWdDaGFuZ2VFdmVudEBAUUVBQUBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIF9fY2RlY2wgQ1JlZ05vdGlmeTo6fkNSZWdOb3RpZnkodm9pZCkgX19wdHI2NA0KKz8/MUNSZWdOb3RpZnlAQE1FQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmVzdHJpY3Rpb246On5DUmVzdHJpY3Rpb24odm9pZCkgX19wdHI2NA0KKz8/MUNSZXN0cmljdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTY29wZUFkbWluOjp+Q1Njb3BlQWRtaW4odm9pZCkgX19wdHI2NA0KKz8/MUNTY29wZUFkbWluQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Njb3BlRW51bTo6fkNTY29wZUVudW0odm9pZCkgX19wdHI2NA0KKz8/MUNTY29wZUVudW1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDU2NvcGVSZXN0cmljdGlvbjo6fkNTY29wZVJlc3RyaWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFDU2NvcGVSZXN0cmljdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTZGlkTG9va3VwVGFibGU6On5DU2RpZExvb2t1cFRhYmxlKHZvaWQpIF9fcHRyNjQNCis/PzFDU2RpZExvb2t1cFRhYmxlQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDU2l6ZVNlclN0cmVhbTo6fkNTaXplU2VyU3RyZWFtKHZvaWQpIF9fcHRyNjQNCis/PzFDU2l6ZVNlclN0cmVhbUBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTb3J0Ojp+Q1NvcnQodm9pZCkgX19wdHI2NA0KKz8/MUNTb3J0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1N5blJlc3RyaWN0aW9uOjp+Q1N5blJlc3RyaWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFDU3luUmVzdHJpY3Rpb25AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmlydHVhbFN0cmluZzo6fkNWaXJ0dWFsU3RyaW5nKHZvaWQpIF9fcHRyNjQNCis/PzFDVmlydHVhbFN0cmluZ0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENXaW4zMlJlZ0FjY2Vzczo6fkNXaW4zMlJlZ0FjY2Vzcyh2b2lkKSBfX3B0cjY0DQorPz8xQ1dpbjMyUmVnQWNjZXNzQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1dvcmRSZXN0cmljdGlvbjo6fkNXb3JkUmVzdHJpY3Rpb24odm9pZCkgX19wdHI2NA0KKz8/MUNXb3JkUmVzdHJpY3Rpb25AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDV29ya01hbmFnZXI6On5DV29ya01hbmFnZXIodm9pZCkgX19wdHI2NA0KKz8/MUNXb3JrTWFuYWdlckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENXb3JrUXVldWU6On5DV29ya1F1ZXVlKHZvaWQpIF9fcHRyNjQNCis/PzFDV29ya1F1ZXVlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1N0b3JhZ2VPYmplY3Q6On5TU3RvcmFnZU9iamVjdCh2b2lkKSBfX3B0cjY0DQorPz8xU1N0b3JhZ2VPYmplY3RAQFFFQUFAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0RiQ29sSWQgJiBfX3B0cjY0IF9fY2RlY2wgQ0RiQ29sSWQ6Om9wZXJhdG9yPShjbGFzcyBDRGJDb2xJZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDRGJDb2xJZEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENEYkNvbElkOjpvcGVyYXRvcj09KGNsYXNzIENEYkNvbElkIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OENEYkNvbElkQEBRRUJBSEFFQlYwQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDV29ya01hbmFnZXI6OkFib3J0V29ya0l0ZW1zKHZvaWQpIF9fcHRyNjQNCis/QWJvcnRXb3JrSXRlbXNAQ1dvcmtNYW5hZ2VyQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUXVlcnlTY2FubmVyOjpBY2NlcHQodm9pZCkgX19wdHI2NA0KKz9BY2NlcHRAQ1F1ZXJ5U2Nhbm5lckBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1F1ZXJ5U2Nhbm5lcjo6QWNjZXB0Q29tbWFuZCh2b2lkKSBfX3B0cjY0DQorP0FjY2VwdENvbW1hbmRAQ1F1ZXJ5U2Nhbm5lckBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1F1ZXJ5U2Nhbm5lcjo6QWNjZXB0V29yZCh2b2lkKSBfX3B0cjY0DQorP0FjY2VwdFdvcmRAQ1F1ZXJ5U2Nhbm5lckBAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU2RpZExvb2t1cFRhYmxlOjpBY2Nlc3NDaGVjayh1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsaW50ICYgX19wdHI2NCkgX19wdHI2NA0KKz9BY2Nlc3NDaGVja0BDU2RpZExvb2t1cFRhYmxlQEBRRUFBSEtQRUFYS0FFQUhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDUXVlcnlTY2FubmVyOjpBY3FMaW5lKGludCkgX19wdHI2NA0KKz9BY3FMaW5lQENRdWVyeVNjYW5uZXJAQFFFQUFQRUFHSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENRdWVyeVNjYW5uZXI6OkFjcVBhdGgodm9pZCkgX19wdHI2NA0KKz9BY3FQYXRoQENRdWVyeVNjYW5uZXJAQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1F1ZXJ5U2Nhbm5lcjo6QWNxUGhyYXNlKHZvaWQpIF9fcHRyNjQNCis/QWNxUGhyYXNlQENRdWVyeVNjYW5uZXJAQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogY2xhc3MgQ1JhbmdlUmVzdHJpY3Rpb24gKiBfX3B0cjY0IF9fY2RlY2wgQ1JhbmdlS2V5UmVwb3NpdG9yeTo6QWNxUnN0KHZvaWQpIF9fcHRyNjQNCis/QWNxUnN0QENSYW5nZUtleVJlcG9zaXRvcnlAQFFFQUFQRUFWQ1JhbmdlUmVzdHJpY3Rpb25AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENRdWVyeVNjYW5uZXI6OkFjcVdvcmQodm9pZCkgX19wdHI2NA0KKz9BY3FXb3JkQENRdWVyeVNjYW5uZXJAQFFFQUFQRUFHWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDUHJvcGVydHlTdG9yZTo6QWNxdWlyZVJlYWQoY2xhc3MgQ1JlYWRXcml0ZUxvY2tSZWNvcmQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0FjcXVpcmVSZWFkQENQcm9wZXJ0eVN0b3JlQEBBRUFBWEFFQVZDUmVhZFdyaXRlTG9ja1JlY29yZEBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RiQ29sdW1uczo6QWRkKGNsYXNzIENEYkNvbElkIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/QWRkQENEYkNvbHVtbnNAQFFFQUFIQUVCVkNEYkNvbElkQEBJQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENEYlF1ZXJ5UmVzdWx0czo6QWRkKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FkZEBDRGJRdWVyeVJlc3VsdHNAQFFFQUFYUEVBR0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGJTb3J0U2V0OjpBZGQoY2xhc3MgQ0RiQ29sSWQgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0FkZEBDRGJTb3J0U2V0QEBRRUFBSEFFQlZDRGJDb2xJZEBAS0lAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGJTb3J0U2V0OjpBZGQoY2xhc3MgQ0RiU29ydEtleSBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0FkZEBDRGJTb3J0U2V0QEBRRUFBSEFFQlZDRGJTb3J0S2V5QEBJQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0tleUFycmF5OjpBZGQoaW50LGNsYXNzIENLZXkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEBDS2V5QXJyYXlAQFFFQUFISEFFQlZDS2V5QEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDS2V5QXJyYXk6OkFkZChpbnQsY2xhc3MgQ0tleUJ1ZiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkQENLZXlBcnJheUBAUUVBQUhIQUVCVkNLZXlCdWZAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDV29ya1F1ZXVlOjpBZGQoY2xhc3MgUFdvcmtJdGVtICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRAQ1dvcmtRdWV1ZUBAUUVBQVhQRUFWUFdvcmtJdGVtQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0V2ZW50SXRlbTo6QWRkQXJnKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QWRkQXJnQENFdmVudEl0ZW1AQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRXZlbnRJdGVtOjpBZGRBcmcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEFyZ0BDRXZlbnRJdGVtQEBRRUFBWFBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Z3RXZlbnRJdGVtOjpBZGRBcmcodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BZGRBcmdAQ0Z3RXZlbnRJdGVtQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Z3RXZlbnRJdGVtOjpBZGRBcmcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEFyZ0BDRndFdmVudEl0ZW1AQFFFQUFYUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ2F0YWxvZ0FkbWluOjpBZGRDYWNoZWRQcm9wZXJ0eShjbGFzcyBDRnVsbFByb3BTcGVjIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/QWRkQ2FjaGVkUHJvcGVydHlAQ0NhdGFsb2dBZG1pbkBAUUVBQVhBRUJWQ0Z1bGxQcm9wU3BlY0BAS0tLSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ2F0U3RhdGU6OkFkZENhdGFsb2coY2xhc3MgWFB0clNUPHVuc2lnbmVkIHNob3J0PiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkQ2F0YWxvZ0BDQ2F0U3RhdGVAQFFFQUFYQUVBVj8kWFB0clNUQEdAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTWFjaGluZUFkbWluOjpBZGRDYXRhbG9nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkQ2F0YWxvZ0BDTWFjaGluZUFkbWluQEBRRUFBWFBFQkcwQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENOb2RlUmVzdHJpY3Rpb246OkFkZENoaWxkKGNsYXNzIENSZXN0cmljdGlvbiAqIF9fcHRyNjQsdW5zaWduZWQgaW50ICYgX19wdHI2NCkgX19wdHI2NA0KKz9BZGRDaGlsZEBDTm9kZVJlc3RyaWN0aW9uQEBRRUFBWFBFQVZDUmVzdHJpY3Rpb25AQEFFQUlAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NhdFN0YXRlOjpBZGREaXIoY2xhc3MgWFB0clNUPHVuc2lnbmVkIHNob3J0PiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkRGlyQENDYXRTdGF0ZUBAUUVBQVhBRUFWPyRYUHRyU1RAR0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ1Byb3BlcnR5TGlzdDo6QWRkRW50cnkoY2xhc3MgQ1Byb3BFbnRyeSAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0FkZEVudHJ5QENQcm9wZXJ0eUxpc3RAQFVFQUFYUEVBVkNQcm9wRW50cnlAQEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0V2ZW50SXRlbTo6QWRkRXJyb3IodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BZGRFcnJvckBDRXZlbnRJdGVtQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N5blJlc3RyaWN0aW9uOjpBZGRLZXkoY2xhc3MgQ0tleUJ1ZiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkS2V5QENTeW5SZXN0cmljdGlvbkBAUUVBQVhBRUJWQ0tleUJ1ZkBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDYXRTdGF0ZTo6QWRkTWFjaGluZShjbGFzcyBYUHRyU1Q8dW5zaWduZWQgc2hvcnQ+ICYgX19wdHI2NCkgX19wdHI2NA0KKz9BZGRNYWNoaW5lQENDYXRTdGF0ZUBAUUVBQVhBRUFWPyRYUHRyU1RAR0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0RiUHJvcGVydGllczo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQENEYlByb3BlcnRpZXNAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0VtcHR5UHJvcGVydHlMaXN0OjpBZGRSZWYodm9pZCkgX19wdHI2NA0KKz9BZGRSZWZAQ0VtcHR5UHJvcGVydHlMaXN0QEBVRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENFbnVtU3RyaW5nOjpBZGRSZWYodm9pZCkgX19wdHI2NA0KKz9BZGRSZWZAQ0VudW1TdHJpbmdAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0VudW1Xb3JraWQ6OkFkZFJlZih2b2lkKSBfX3B0cjY0DQorP0FkZFJlZkBDRW51bVdvcmtpZEBAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRndQcm9wZXJ0eU1hcHBlcjo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQENGd1Byb3BlcnR5TWFwcGVyQEBVRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENRdWVyeVVua25vd246OkFkZFJlZih2b2lkKSBfX3B0cjY0DQorP0FkZFJlZkBDUXVlcnlVbmtub3duQEBVRUFBS1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDV29ya1F1ZXVlOjpBZGRSZWZXb3JrVGhyZWFkcyh2b2lkKSBfX3B0cjY0DQorP0FkZFJlZldvcmtUaHJlYWRzQENXb3JrUXVldWVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDYXRhbG9nQWRtaW46OkFkZFNjb3BlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkU2NvcGVAQ0NhdGFsb2dBZG1pbkBAUUVBQVhQRUJHMEgwMEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENEYlNvcnROb2RlOjpBZGRTb3J0Q29sdW1uKHN0cnVjdCB0YWdEQklEIGNvbnN0ICYgX19wdHI2NCxpbnQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BZGRTb3J0Q29sdW1uQENEYlNvcnROb2RlQEBRRUFBSEFFQlV0YWdEQklEQEBIS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENEYk5lc3RpbmdOb2RlOjpBZGRUYWJsZShjbGFzcyBDRGJDbWRUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkVGFibGVAQ0RiTmVzdGluZ05vZGVAQFFFQUFIUEVBVkNEYkNtZFRyZWVOb2RlQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1dvcmtNYW5hZ2VyOjpBZGRUb1dvcmtMaXN0KGNsYXNzIENGd0FzeW5jV29ya0l0ZW0gKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZFRvV29ya0xpc3RAQ1dvcmtNYW5hZ2VyQEBRRUFBWFBFQVZDRndBc3luY1dvcmtJdGVtQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Z3QXN5bmNXb3JrSXRlbTo6QWRkVG9Xb3JrUXVldWUodm9pZCkgX19wdHI2NA0KKz9BZGRUb1dvcmtRdWV1ZUBDRndBc3luY1dvcmtJdGVtQEBRRUFBWFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDRGJDbWRUcmVlTm9kZTo6QWxsb2NBbmRDb3B5V1N0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0FsbG9jQW5kQ29weVdTdHJpbmdAQ0RiQ21kVHJlZU5vZGVAQFNBUEVBR1BFQkdAWg0KKzsgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQWxsb2NIZWFwQW5kQ29weSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpDQorP0FsbG9jSGVhcEFuZENvcHlAQFlBUEVBR1BFQkdBRUFLQFoNCis7IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIEFsbG9jSGVhcEFuZEdldFdTdHJpbmcoY2xhc3MgUERlU2VyU3RyZWFtICYgX19wdHI2NCkNCis/QWxsb2NIZWFwQW5kR2V0V1N0cmluZ0BAWUFQRUFHQUVBVlBEZVNlclN0cmVhbUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENFbnVtU3RyaW5nOjpBcHBlbmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FwcGVuZEBDRW51bVN0cmluZ0BAUUVBQVhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENFbnVtV29ya2lkOjpBcHBlbmQodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BcHBlbmRAQ0VudW1Xb3JraWRAQFFFQUFYS0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDRGJDbWRUcmVlTm9kZTo6QXBwZW5kQ2hpbGQoY2xhc3MgQ0RiQ21kVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FwcGVuZENoaWxkQENEYkNtZFRyZWVOb2RlQEBJRUFBWFBFQVYxQEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENEYkxpc3RBbmNob3I6OkFwcGVuZExpc3RFbGVtZW50KHVuc2lnbmVkIHNob3J0LHN0cnVjdCB0YWdEQklEIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRMaXN0RWxlbWVudEBDRGJMaXN0QW5jaG9yQEBJRUFBSEdBRUJVdGFnREJJREBAQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0RiTGlzdEFuY2hvcjo6QXBwZW5kTGlzdEVsZW1lbnQoY2xhc3MgQ0RiQ21kVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FwcGVuZExpc3RFbGVtZW50QENEYkxpc3RBbmNob3JAQElFQUFIUEVBVkNEYkNtZFRyZWVOb2RlQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGJQcm9qZWN0TGlzdEFuY2hvcjo6QXBwZW5kTGlzdEVsZW1lbnQoc3RydWN0IHRhZ0RCSUQgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRMaXN0RWxlbWVudEBDRGJQcm9qZWN0TGlzdEFuY2hvckBAUUVBQUhBRUJVdGFnREJJREBAUEVBR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBDUHJvcFN0b3JlTWFuYWdlcjo6QmVnaW5UcmFuc2FjdGlvbih2b2lkKSBfX3B0cjY0DQorP0JlZ2luVHJhbnNhY3Rpb25AQ1Byb3BTdG9yZU1hbmFnZXJAQFFFQUFfS1haDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ0NpT2xlOjpCaW5kSUZpbHRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IElVbmtub3duICogX19wdHI2NCxzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHN0cnVjdCBJRmlsdGVyICogX19wdHI2NCAqIF9fcHRyNjQsaW50KQ0KKz9CaW5kSUZpbHRlckBDQ2lPbGVAQFNBSlBFQkdQRUFVSVVua25vd25AQEFFQlVfR1VJREBAUEVBUEVBVUlGaWx0ZXJAQEhAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENDaU9sZTo6QmluZElGaWx0ZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQsc3RydWN0IElGaWx0ZXIgKiBfX3B0cjY0ICogX19wdHI2NCxpbnQpDQorP0JpbmRJRmlsdGVyQENDaU9sZUBAU0FKUEVCR1BFQVVJVW5rbm93bkBAUEVBUEVBVUlGaWx0ZXJAQEhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nICogX19wdHI2NCBfX2NkZWNsIENQaHlzU3RvcmFnZTo6Qm9ycm93QnVmZmVyKHVuc2lnbmVkIGxvbmcsaW50LGludCkgX19wdHI2NA0KKz9Cb3Jyb3dCdWZmZXJAQ1BoeXNTdG9yYWdlQEBRRUFBUEVBS0tISEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0IF9fY2RlY2wgQ1BoeXNTdG9yYWdlOjpCb3Jyb3dOZXdCdWZmZXIodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Cb3Jyb3dOZXdCdWZmZXJAQ1BoeXNTdG9yYWdlQEBRRUFBUEVBS0tAWg0KKzsgdm9pZCBfX2NkZWNsIEJ1aWxkUmVnaXN0cnlQcm9wZXJ0aWVzS2V5KGNsYXNzIFhBcnJheTx1bnNpZ25lZCBzaG9ydD4gJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/QnVpbGRSZWdpc3RyeVByb3BlcnRpZXNLZXlAQFlBWEFFQVY/JFhBcnJheUBHQEBQRUJHQFoNCis7IHZvaWQgX19jZGVjbCBCdWlsZFJlZ2lzdHJ5U2NvcGVzS2V5KGNsYXNzIFhBcnJheTx1bnNpZ25lZCBzaG9ydD4gJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/QnVpbGRSZWdpc3RyeVNjb3Blc0tleUBAWUFYQUVBVj8kWEFycmF5QEdAQFBFQkdAWg0KKzsgdm9pZCBfX2NkZWNsIENJU2h1dGRvd24odm9pZCkNCis/Q0lTaHV0ZG93bkBAWUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDYXRTdGF0ZTo6Q2hhbmdlQ3VycmVudENhdGFsb2codW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoYW5nZUN1cnJlbnRDYXRhbG9nQENDYXRTdGF0ZUBAUUVBQVhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDYXRTdGF0ZTo6Q2hhbmdlQ3VycmVudERlcHRoKGludCkgX19wdHI2NA0KKz9DaGFuZ2VDdXJyZW50RGVwdGhAQ0NhdFN0YXRlQEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NhdFN0YXRlOjpDaGFuZ2VDdXJyZW50TWFjaGluZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2hhbmdlQ3VycmVudE1hY2hpbmVAQ0NhdFN0YXRlQEBRRUFBWFBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NhdFN0YXRlOjpDaGFuZ2VDdXJyZW50U2NvcGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoYW5nZUN1cnJlbnRTY29wZUBDQ2F0U3RhdGVAQFFFQUFYUEVCR0BaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1Byb3BTdG9yZUluZm86OkNoYW5nZURpcnR5KGludCkgX19wdHI2NA0KKz9DaGFuZ2VEaXJ0eUBDUHJvcFN0b3JlSW5mb0BAQUVBQVhIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENMb2NhbEdsb2JhbFByb3BlcnR5TGlzdDo6Q2hlY2tFcnJvcih1bnNpZ25lZCBsb25nICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoZWNrRXJyb3JAQ0xvY2FsR2xvYmFsUHJvcGVydHlMaXN0QEBRRUFBSkFFQUtQRUFQRUFHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENQcm9wTGlzdEZpbGU6OkNoZWNrRXJyb3IodW5zaWduZWQgbG9uZyAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DaGVja0Vycm9yQENQcm9wTGlzdEZpbGVAQFFFQUFKQUVBS1BFQVBFQUdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ2lTdG9yYWdlOjpDaGVja0hhc0luZGV4VGFibGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9DaGVja0hhc0luZGV4VGFibGVAQ2lTdG9yYWdlQEBTQUhQRUJHQFoNCitDaUNyZWF0ZVNlY3VyaXR5RGVzY3JpcHRvcg0KKzsgaW50IF9fY2RlY2wgQ2lHZXRQYXNzd29yZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/Q2lHZXRQYXNzd29yZEBAWUFIUEVCRzBQRUFHQFoNCis7IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ2lOdE9wZW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9DaU50T3BlbkBAWUFQRUFYUEVCR0tLS0BaDQorOyBsb25nIF9fY2RlY2wgQ2lOdE9wZW5Ob1Rocm93KHZvaWQgKiBfX3B0cjY0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0NpTnRPcGVuTm9UaHJvd0BAWUFKQUVBUEVBWFBFQkdLS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RiQ29sSWQ6OkNsZWFudXAodm9pZCkgX19wdHI2NA0KKz9DbGVhbnVwQENEYkNvbElkQEBRRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDRGJDbWRUcmVlTm9kZTo6Q2xlYW51cERhdGFWYWx1ZSh2b2lkKSBfX3B0cjY0DQorP0NsZWFudXBEYXRhVmFsdWVAQ0RiQ21kVHJlZU5vZGVAQElFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDb21iaW5lZFByb3BlcnR5TGlzdDo6Q2xlYXJMaXN0KHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJMaXN0QENDb21iaW5lZFByb3BlcnR5TGlzdEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Byb3BlcnR5TGlzdDo6Q2xlYXJMaXN0KHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJMaXN0QENQcm9wZXJ0eUxpc3RAQFFFQUFYWFoNCis7IHB1YmxpYzogY2xhc3MgQ0RiQ21kVHJlZU5vZGUgKiBfX3B0cjY0IF9fY2RlY2wgQ0RiQ21kVHJlZU5vZGU6OkNsb25lKGludCljb25zdCAgX19wdHI2NA0KKz9DbG9uZUBDRGJDbWRUcmVlTm9kZUBAUUVCQVBFQVYxQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDRW51bVN0cmluZzo6Q2xvbmUoc3RydWN0IElFbnVtU3RyaW5nICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2xvbmVAQ0VudW1TdHJpbmdAQFVFQUFKUEVBUEVBVUlFbnVtU3RyaW5nQEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTm9kZVJlc3RyaWN0aW9uICogX19wdHI2NCBfX2NkZWNsIENOb2RlUmVzdHJpY3Rpb246OkNsb25lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q2xvbmVAQ05vZGVSZXN0cmljdGlvbkBAUUVCQVBFQVYxQFhaDQorOyBwdWJsaWM6IGNsYXNzIENPY2NSZXN0cmljdGlvbiAqIF9fcHRyNjQgX19jZGVjbCBDT2NjUmVzdHJpY3Rpb246OkNsb25lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q2xvbmVAQ09jY1Jlc3RyaWN0aW9uQEBRRUJBUEVBVjFAWFoNCis7IHB1YmxpYzogY2xhc3MgQ1Jlc3RyaWN0aW9uICogX19wdHI2NCBfX2NkZWNsIENSZXN0cmljdGlvbjo6Q2xvbmUodm9pZCljb25zdCAgX19wdHI2NA0KKz9DbG9uZUBDUmVzdHJpY3Rpb25AQFFFQkFQRUFWMUBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1BoeXNTdG9yYWdlOjpDbG9zZSh2b2lkKSBfX3B0cjY0DQorP0Nsb3NlQENQaHlzU3RvcmFnZUBAUUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ1BpcGVDbGllbnQ6OkNsb3NlKHZvaWQpIF9fcHRyNjQNCis/Q2xvc2VAQ1BpcGVDbGllbnRAQElFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENPTEVQcm9wTWFuYWdlcjo6Q1Byb3BTZXRNYXA6OkNsb3NlKHZvaWQpIF9fcHRyNjQNCis/Q2xvc2VAQ1Byb3BTZXRNYXBAQ09MRVByb3BNYW5hZ2VyQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUHJvcFN0b3JlTWFuYWdlcjo6Q2xvc2VSZWNvcmQoY2xhc3MgQ0NvbXBvc2l0ZVByb3BSZWNvcmQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0Nsb3NlUmVjb3JkQENQcm9wU3RvcmVNYW5hZ2VyQEBRRUFBWFBFQVZDQ29tcG9zaXRlUHJvcFJlY29yZEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQcm9wU3RvcmVNYW5hZ2VyOjpDbG9zZVJlY29yZChjbGFzcyBDQ29tcG9zaXRlUHJvcFJlY29yZEZvcldyaXRlcyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2xvc2VSZWNvcmRAQ1Byb3BTdG9yZU1hbmFnZXJAQFFFQUFYUEVBVkNDb21wb3NpdGVQcm9wUmVjb3JkRm9yV3JpdGVzQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Jjb3ZTdHJtQXBwZW5kVHJhbnM6OkNvbW1pdCh2b2lkKSBfX3B0cjY0DQorP0NvbW1pdEBDUmNvdlN0cm1BcHBlbmRUcmFuc0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Jjb3ZTdHJtTURUcmFuczo6Q29tbWl0KHZvaWQpIF9fcHRyNjQNCis/Q29tbWl0QENSY292U3RybU1EVHJhbnNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSY292U3RybVdyaXRlVHJhbnM6OkNvbW1pdCh2b2lkKSBfX3B0cjY0DQorP0NvbW1pdEBDUmNvdlN0cm1Xcml0ZVRyYW5zQEBRRUFBWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDRHJpdmVJbmZvOjpDb250YWluc0RyaXZlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/Q29udGFpbnNEcml2ZUBDRHJpdmVJbmZvQEBTQUhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNYWNoaW5lQWRtaW46OkNyZWF0ZVN1YmRpcnModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZVN1YmRpcnNAQ01hY2hpbmVBZG1pbkBAUUVBQVhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZXF1ZXN0Q2xpZW50OjpEYXRhV3JpdGVSZWFkKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz9EYXRhV3JpdGVSZWFkQENSZXF1ZXN0Q2xpZW50QEBRRUFBWFBFQVhLMEtBRUFLQFoNCis7IHZvaWQgX19jZGVjbCBEZWNvZGVFc2NhcGVzKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP0RlY29kZUVzY2FwZXNAQFlBWFBFQUdBRUFLMEBaDQorOyB2b2lkIF9fY2RlY2wgRGVjb2RlSHRtbE51bWVyaWModW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9EZWNvZGVIdG1sTnVtZXJpY0BAWUFYUEVBR0BaDQorOyB2b2lkIF9fY2RlY2wgRGVjb2RlVVJMRXNjYXBlcyh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/RGVjb2RlVVJMRXNjYXBlc0BAWUFYUEVBRUFFQUtQRUFHS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUHJvcFN0b3JlTWFuYWdlcjo6RGVsZXRlUmVjb3JkKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RGVsZXRlUmVjb3JkQENQcm9wU3RvcmVNYW5hZ2VyQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NhdGFsb2dBZG1pbjo6RGVsZXRlUmVnaXN0cnlQYXJhbU5vVGhyb3codW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZVJlZ2lzdHJ5UGFyYW1Ob1Rocm93QENDYXRhbG9nQWRtaW5AQFFFQUFYUEVCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBDaVN0b3JhZ2U6OkRldGVybWluZURyaXZlVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0RldGVybWluZURyaXZlVHlwZUBDaVN0b3JhZ2VAQFNBSVBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTWFjaGluZUFkbWluOjpEaXNhYmxlQ0kodm9pZCkgX19wdHI2NA0KKz9EaXNhYmxlQ0lAQ01hY2hpbmVBZG1pbkBAUUVBQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlZ05vdGlmeTo6RGlzYWJsZU5vdGlmaWNhdGlvbih2b2lkKSBfX3B0cjY0DQorP0Rpc2FibGVOb3RpZmljYXRpb25AQ1JlZ05vdGlmeUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01ldGFEYXRhTWdyOjpEaXNhYmxlVlBhdGhOb3RpZnkodm9pZCkgX19wdHI2NA0KKz9EaXNhYmxlVlBhdGhOb3RpZnlAQ01ldGFEYXRhTWdyQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmVxdWVzdENsaWVudDo6RGlzY29ubmVjdCh2b2lkKSBfX3B0cjY0DQorP0Rpc2Nvbm5lY3RAQ1JlcXVlc3RDbGllbnRAQFFFQUFYWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENDb3B5UmNvdk9iamVjdDo6RG9JdCh2b2lkKSBfX3B0cjY0DQorP0RvSXRAQ0NvcHlSY292T2JqZWN0QEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRmlsdGVyRGFlbW9uOjpEb1VwZGF0ZXModm9pZCkgX19wdHI2NA0KKz9Eb1VwZGF0ZXNAQ0ZpbHRlckRhZW1vbkBAUUVBQUpYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Z3QXN5bmNXb3JrSXRlbTo6RG9uZSh2b2lkKSBfX3B0cjY0DQorP0RvbmVAQ0Z3QXN5bmNXb3JrSXRlbUBAUUVBQVhYWg0KKzsgbG9uZyBfX2NkZWNsIER1bXBXb3JrSWQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKQ0KKz9EdW1wV29ya0lkQEBZQUpQRUJHS1BFQUVBRUFLMDBLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQaWRMb29rdXBUYWJsZTo6RW1wdHkodm9pZCkgX19wdHI2NA0KKz9FbXB0eUBDUGlkTG9va3VwVGFibGVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQcm9wU3RvcmVNYW5hZ2VyOjpFbXB0eSh2b2lkKSBfX3B0cjY0DQorP0VtcHR5QENQcm9wU3RvcmVNYW5hZ2VyQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmNvdlN0cm1Xcml0ZVRyYW5zOjpFbXB0eSh2b2lkKSBfX3B0cjY0DQorP0VtcHR5QENSY292U3RybVdyaXRlVHJhbnNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTZGlkTG9va3VwVGFibGU6OkVtcHR5KHZvaWQpIF9fcHRyNjQNCis/RW1wdHlAQ1NkaWRMb29rdXBUYWJsZUBAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTWFjaGluZUFkbWluOjpFbmFibGVDSSh2b2lkKSBfX3B0cjY0DQorP0VuYWJsZUNJQENNYWNoaW5lQWRtaW5AQFFFQUFIWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNZXRhRGF0YU1ncjo6RW5hYmxlVlBhdGhOb3RpZnkoY2xhc3MgQ01ldGFEYXRhVlBhdGhDaGFuZ2VDYWxsQmFjayAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RW5hYmxlVlBhdGhOb3RpZnlAQ01ldGFEYXRhTWdyQEBRRUFBWFBFQVZDTWV0YURhdGFWUGF0aENoYW5nZUNhbGxCYWNrQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Byb3BTdG9yZU1hbmFnZXI6OkVuZFRyYW5zYWN0aW9uKHVuc2lnbmVkIF9faW50NjQsaW50LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9FbmRUcmFuc2FjdGlvbkBDUHJvcFN0b3JlTWFuYWdlckBAUUVBQVhfS0hLS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXaW4zMlJlZ0FjY2Vzczo6RW51bSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9FbnVtQENXaW4zMlJlZ0FjY2Vzc0BAUUVBQUhQRUFHS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENFbXB0eVByb3BlcnR5TGlzdDo6RW51bVByb3BJbmZvKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCxzdHJ1Y3QgdGFnREJJRCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0VudW1Qcm9wSW5mb0BDRW1wdHlQcm9wZXJ0eUxpc3RAQFVFQUFKS1BFQVBFQkdQRUFQRUFVdGFnREJJREBAUEVBR1BFQUlAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01ldGFEYXRhTWdyOjpFbnVtVlBhdGhzKGNsYXNzIENNZXRhRGF0YUNhbGxCYWNrICYgX19wdHI2NCkgX19wdHI2NA0KKz9FbnVtVlBhdGhzQENNZXRhRGF0YU1nckBAUUVBQVhBRUFWQ01ldGFEYXRhQ2FsbEJhY2tAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTWV0YURhdGFNZ3I6OkVudW1WU2VydmVycyhjbGFzcyBDTWV0YURhdGFWaXJ0dWFsU2VydmVyQ2FsbEJhY2sgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0VudW1WU2VydmVyc0BDTWV0YURhdGFNZ3JAQFFFQUFYQUVBVkNNZXRhRGF0YVZpcnR1YWxTZXJ2ZXJDYWxsQmFja0BAQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDaVN0b3JhZ2U6OkVudW1lcmF0ZUZpbGVzSW5EaXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENFbnVtU3RyaW5nICYgX19wdHI2NCkNCis/RW51bWVyYXRlRmlsZXNJbkRpckBDaVN0b3JhZ2VAQFNBWFBFQkdBRUFWQ0VudW1TdHJpbmdAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENQaWRMb29rdXBUYWJsZTo6RW51bWVyYXRlUHJvcGVydHkoY2xhc3MgQ0Z1bGxQcm9wU3BlYyAmIF9fcHRyNjQsdW5zaWduZWQgaW50ICYgX19wdHI2NCkgX19wdHI2NA0KKz9FbnVtZXJhdGVQcm9wZXJ0eUBDUGlkTG9va3VwVGFibGVAQFFFQUFIQUVBVkNGdWxsUHJvcFNwZWNAQEFFQUlAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1JlZ0FjY2Vzczo6RW51bWVyYXRlVmFsdWVzKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxjbGFzcyBDUmVnQ2FsbEJhY2sgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0VudW1lcmF0ZVZhbHVlc0BDUmVnQWNjZXNzQEBRRUFBWFBFQUdBRUFWQ1JlZ0NhbGxCYWNrQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTW1TdHJlYW1Db25zZWNCdWY6OkVvZih2b2lkKSBfX3B0cjY0DQorP0VvZkBDTW1TdHJlYW1Db25zZWNCdWZAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ01ldGFEYXRhTWdyOjpFeHRlbnNpb25IYXNTY3JpcHRNYXAodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0V4dGVuc2lvbkhhc1NjcmlwdE1hcEBDTWV0YURhdGFNZ3JAQFFFQUFIUEVCR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENQaWRDb252ZXJ0ZXI6OkZQU1RvUFJPUElEKGNsYXNzIENGdWxsUHJvcFNwZWMgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZQU1RvUFJPUElEQENQaWRDb252ZXJ0ZXJAQFVFQUFKQUVCVkNGdWxsUHJvcFNwZWNAQEFFQUtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Byb3BTdG9yZU1hbmFnZXI6OkZhc3RJbml0KGNsYXNzIENpU3RvcmFnZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmFzdEluaXRAQ1Byb3BTdG9yZU1hbmFnZXJAQFFFQUFYUEVBVkNpU3RvcmFnZUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENPTEVQcm9wTWFuYWdlcjo6RmV0Y2hQcm9wZXJ0eShzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHN0cnVjdCB0YWdQUk9QU1BFQyBjb25zdCAmIF9fcHRyNjQsc3RydWN0IHRhZ1BST1BWQVJJQU5UICogX19wdHI2NCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZldGNoUHJvcGVydHlAQ09MRVByb3BNYW5hZ2VyQEBRRUFBWEFFQlVfR1VJREBAQUVCVXRhZ1BST1BTUEVDQEBQRUFVdGFnUFJPUFZBUklBTlRAQFBFQUlAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDS2V5QXJyYXk6OkZpbGxNYXgoaW50KSBfX3B0cjY0DQorP0ZpbGxNYXhAQ0tleUFycmF5QEBRRUFBSEhAWg0KKzsgcHVibGljOiBjbGFzcyBDUHJvcEVudHJ5IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENFbXB0eVByb3BlcnR5TGlzdDo6RmluZChjbGFzcyBDRGJDb2xJZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RmluZEBDRW1wdHlQcm9wZXJ0eUxpc3RAQFFFQUFQRUJWQ1Byb3BFbnRyeUBAQUVCVkNEYkNvbElkQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIENQcm9wRW50cnkgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ1Byb3BlcnR5TGlzdDo6RmluZChjbGFzcyBDRGJDb2xJZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RmluZEBDUHJvcGVydHlMaXN0QEBVRUFBUEVCVkNQcm9wRW50cnlAQEFFQlZDRGJDb2xJZEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBDUHJvcEVudHJ5IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENQcm9wZXJ0eUxpc3Q6OkZpbmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbmRAQ1Byb3BlcnR5TGlzdEBAVUVBQVBFQlZDUHJvcEVudHJ5QEBQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1BpZExvb2t1cFRhYmxlOjpGaW5kUHJvcGlkKGNsYXNzIENGdWxsUHJvcFNwZWMgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9GaW5kUHJvcGlkQENQaWRMb29rdXBUYWJsZUBAUUVBQUhBRUJWQ0Z1bGxQcm9wU3BlY0BAQUVBS0hAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0R5blN0cmVhbTo6Rmx1c2godm9pZCkgX19wdHI2NA0KKz9GbHVzaEBDRHluU3RyZWFtQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUGh5c1N0b3JhZ2U6OkZsdXNoKGludCkgX19wdHI2NA0KKz9GbHVzaEBDUGh5c1N0b3JhZ2VAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUHJvcFN0b3JlTWFuYWdlcjo6Rmx1c2godm9pZCkgX19wdHI2NA0KKz9GbHVzaEBDUHJvcFN0b3JlTWFuYWdlckBAUUVBQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENDaU9sZTo6Rmx1c2hJZGxlKHZvaWQpDQorP0ZsdXNoSWRsZUBDQ2lPbGVAQFNBWFhaDQorOyBwdWJsaWM6IHN0cnVjdCB0YWdEQkNPTU1BTkRUUkVFICogX19wdHI2NCBfX2NkZWNsIENUZXh0VG9UcmVlOjpGb3JtRnVsbFRyZWUodm9pZCkgX19wdHI2NA0KKz9Gb3JtRnVsbFRyZWVAQ1RleHRUb1RyZWVAQFFFQUFQRUFVdGFnREJDT01NQU5EVFJFRUBAWFoNCis7IGNsYXNzIENEYkNtZFRyZWVOb2RlICogX19wdHI2NCBfX2NkZWNsIEZvcm1RdWVyeVRyZWUoY2xhc3MgQ0RiQ21kVHJlZU5vZGUgJiBfX3B0cjY0LGNsYXNzIENDYXRTdGF0ZSAmIF9fcHRyNjQsc3RydWN0IElDb2x1bW5NYXBwZXIgKiBfX3B0cjY0LGludCxpbnQpDQorP0Zvcm1RdWVyeVRyZWVAQFlBUEVBVkNEYkNtZFRyZWVOb2RlQEBBRUFWMUBBRUFWQ0NhdFN0YXRlQEBQRUFVSUNvbHVtbk1hcHBlckBASEhAWg0KK0ZzQ2lTaHV0ZG93bg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1JlZ0FjY2Vzczo6R2V0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRAQ1JlZ0FjY2Vzc0BAUUVBQUtQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWdBY2Nlc3M6OkdldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9HZXRAQ1JlZ0FjY2Vzc0BAUUVBQVhQRUJHUEVBR0lAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV2luMzJSZWdBY2Nlc3M6OkdldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0QENXaW4zMlJlZ0FjY2Vzc0BAUUVBQUhQRUJHQUVBS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXaW4zMlJlZ0FjY2Vzczo6R2V0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LGludCkgX19wdHI2NA0KKz9HZXRAQ1dpbjMyUmVnQWNjZXNzQEBRRUFBSFBFQkdQRUFHSUhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDUHJvcGVydHlMaXN0OjpHZXRBbGxFbnRyaWVzKGNsYXNzIENQcm9wRW50cnkgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldEFsbEVudHJpZXNAQ1Byb3BlcnR5TGlzdEBAVUVBQUpQRUFQRUFWQ1Byb3BFbnRyeUBAS0BaDQorOyBwdWJsaWM6IHNob3J0IF9fY2RlY2wgQ0FsbG9jU3RvcmFnZVZhcmlhbnQ6OkdldEJPT0wodW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldEJPT0xAQ0FsbG9jU3RvcmFnZVZhcmlhbnRAQFFFQkFGSUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUHJvcFN0b3JlTWFuYWdlcjo6R2V0QmFja3VwU2l6ZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldEJhY2t1cFNpemVAQ1Byb3BTdG9yZU1hbmFnZXJAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENNZW1EZVNlclN0cmVhbTo6R2V0QmxvYih1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldEJsb2JAQ01lbURlU2VyU3RyZWFtQEBVRUFBWFBFQUVLQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBHZXRCcm93c2VyQ29kZXBhZ2UoY2xhc3MgQ1dlYlNlcnZlciAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/R2V0QnJvd3NlckNvZGVwYWdlQEBZQUtBRUFWQ1dlYlNlcnZlckBAS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciBfX2NkZWNsIENNZW1EZVNlclN0cmVhbTo6R2V0Qnl0ZSh2b2lkKSBfX3B0cjY0DQorP0dldEJ5dGVAQ01lbURlU2VyU3RyZWFtQEBVRUFBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENDYXRTdGF0ZTo6R2V0Q0Qodm9pZCkgX19wdHI2NA0KKz9HZXRDREBDQ2F0U3RhdGVAQFFFQUFQRUJHWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1dlYlNlcnZlcjo6R2V0Q0dJVmFyaWFibGUoY2hhciBjb25zdCAqIF9fcHRyNjQsY2xhc3MgWEFycmF5PHVuc2lnbmVkIHNob3J0PiAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0Q0dJVmFyaWFibGVAQ1dlYlNlcnZlckBAUUVBQUhQRUJEQUVBVj8kWEFycmF5QEdAQEFFQUtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV2ViU2VydmVyOjpHZXRDR0lWYXJpYWJsZVcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIFhBcnJheTx1bnNpZ25lZCBzaG9ydD4gJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldENHSVZhcmlhYmxlV0BDV2ViU2VydmVyQEBRRUFBSFBFQkdBRUFWPyRYQXJyYXlAR0BAQUVBS0BaDQorOyBwdWJsaWM6IHN0cnVjdCBfR1VJRCAgX19jZGVjbCBDQWxsb2NTdG9yYWdlVmFyaWFudDo6R2V0Q0xTSUQodW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldENMU0lEQENBbGxvY1N0b3JhZ2VWYXJpYW50QEBRRUJBP0FVX0dVSURAQElAWg0KKzsgcHVibGljOiB1bmlvbiB0YWdDWSAgX19jZGVjbCBDQWxsb2NTdG9yYWdlVmFyaWFudDo6R2V0Q1kodW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldENZQENBbGxvY1N0b3JhZ2VWYXJpYW50QEBRRUJBP0FUdGFnQ1lAQElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDQ2F0U3RhdGU6OkdldENhdGVnb3J5KHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9HZXRDYXRlZ29yeUBDQ2F0U3RhdGVAQFFFQkFQRUJHSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENNZW1EZVNlclN0cmVhbTo6R2V0Q2hhcihjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldENoYXJAQ01lbURlU2VyU3RyZWFtQEBVRUFBWFBFQURLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0NhdFN0YXRlOjpHZXRDb2x1bW4odW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldENvbHVtbkBDQ2F0U3RhdGVAQFFFQkFQRUJHSUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1F1ZXJ5U2Nhbm5lcjo6R2V0Q29tbWFuZENoYXIodm9pZCkgX19wdHI2NA0KKz9HZXRDb21tYW5kQ2hhckBDUXVlcnlTY2FubmVyQEBRRUFBR1haDQorOyBwdWJsaWM6IGRvdWJsZSBfX2NkZWNsIENBbGxvY1N0b3JhZ2VWYXJpYW50OjpHZXREQVRFKHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9HZXREQVRFQENBbGxvY1N0b3JhZ2VWYXJpYW50QEBRRUJBTklAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2F0YWxvZ0FkbWluOjpHZXREV09SRFBhcmFtKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXREV09SRFBhcmFtQENDYXRhbG9nQWRtaW5AQFFFQUFIUEVCR0FFQUtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTWFjaGluZUFkbWluOjpHZXREV09SRFBhcmFtKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXREV09SRFBhcmFtQENNYWNoaW5lQWRtaW5AQFFFQUFIUEVCR0FFQUtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RyaXZlSW5mbzo6R2V0RGlza1NwYWNlKF9faW50NjQgJiBfX3B0cjY0LF9faW50NjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERpc2tTcGFjZUBDRHJpdmVJbmZvQEBRRUFBWEFFQV9KMEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgZG91YmxlIF9fY2RlY2wgQ01lbURlU2VyU3RyZWFtOjpHZXREb3VibGUodm9pZCkgX19wdHI2NA0KKz9HZXREb3VibGVAQ01lbURlU2VyU3RyZWFtQEBVRUFBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ0RyaXZlSW5mbzo6R2V0RHJpdmUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/R2V0RHJpdmVAQ0RyaXZlSW5mb0BAU0FYUEVCR1BFQUdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENHZW5lcmljQ2lQcm94eTo6R2V0RW50cnlCdWZmZXIodW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RW50cnlCdWZmZXJAQ0dlbmVyaWNDaVByb3h5QEBRRUFBUEVBRUFFQUtAWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0ZJTEVUSU1FICBfX2NkZWNsIENBbGxvY1N0b3JhZ2VWYXJpYW50OjpHZXRGSUxFVElNRSh1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/R2V0RklMRVRJTUVAQ0FsbG9jU3RvcmFnZVZhcmlhbnRAQFFFQkE/QVVfRklMRVRJTUVAQElAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUGF0aFBhcnNlcjo6R2V0RmlsZU5hbWUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0dldEZpbGVOYW1lQENQYXRoUGFyc2VyQEBRRUJBSFBFQUdBRUFLQFoNCis7IHB1YmxpYzogZW51bSBDRHJpdmVJbmZvOjplRmlsZVN5c3RlbSAgX19jZGVjbCBDRHJpdmVJbmZvOjpHZXRGaWxlU3lzdGVtKGludCkgX19wdHI2NA0KKz9HZXRGaWxlU3lzdGVtQENEcml2ZUluZm9AQFFFQUE/QVc0ZUZpbGVTeXN0ZW1AMUBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBmbG9hdCBfX2NkZWNsIENNZW1EZVNlclN0cmVhbTo6R2V0RmxvYXQodm9pZCkgX19wdHI2NA0KKz9HZXRGbG9hdEBDTWVtRGVTZXJTdHJlYW1AQFVFQUFNWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ01lbURlU2VyU3RyZWFtOjpHZXRHVUlEKHN0cnVjdCBfR1VJRCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0R1VJREBDTWVtRGVTZXJTdHJlYW1AQFVFQUFYQUVBVV9HVUlEQEBAWg0KKzsgY2xhc3MgQ1Byb3BMaXN0RmlsZSAqIF9fcHRyNjQgX19jZGVjbCBHZXRHbG9iYWxQcm9wTGlzdEZpbGUodm9pZCkNCis/R2V0R2xvYmFsUHJvcExpc3RGaWxlQEBZQVBFQVZDUHJvcExpc3RGaWxlQEBYWg0KKzsgY2xhc3MgQ1N0YXRpY1Byb3BlcnR5TGlzdCAqIF9fcHRyNjQgX19jZGVjbCBHZXRHbG9iYWxTdGF0aWNQcm9wZXJ0eUxpc3Qodm9pZCkNCis/R2V0R2xvYmFsU3RhdGljUHJvcGVydHlMaXN0QEBZQVBFQVZDU3RhdGljUHJvcGVydHlMaXN0QEBYWg0KKzsgcHVibGljOiBzaG9ydCBfX2NkZWNsIENBbGxvY1N0b3JhZ2VWYXJpYW50OjpHZXRJMih1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/R2V0STJAQ0FsbG9jU3RvcmFnZVZhcmlhbnRAQFFFQkFGSUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQWxsb2NTdG9yYWdlVmFyaWFudDo6R2V0STQodW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldEk0QENBbGxvY1N0b3JhZ2VWYXJpYW50QEBRRUJBSklAWg0KKzsgcHVibGljOiB1bmlvbiBfTEFSR0VfSU5URUdFUiAgX19jZGVjbCBDQWxsb2NTdG9yYWdlVmFyaWFudDo6R2V0STgodW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldEk4QENBbGxvY1N0b3JhZ2VWYXJpYW50QEBRRUJBP0FUX0xBUkdFX0lOVEVHRVJAQElAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEdldExDSURGcm9tU3RyaW5nKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/R2V0TENJREZyb21TdHJpbmdAQFlBS1BFQUdAWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIENBbGxvY1N0b3JhZ2VWYXJpYW50OjpHZXRMUFNUUih1bnNpZ25lZCBpbnQpY29uc3QgIF9fcHRyNjQNCis/R2V0TFBTVFJAQ0FsbG9jU3RvcmFnZVZhcmlhbnRAQFFFQkFQRUFESUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENBbGxvY1N0b3JhZ2VWYXJpYW50OjpHZXRMUFdTVFIodW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldExQV1NUUkBDQWxsb2NTdG9yYWdlVmFyaWFudEBAUUVCQVBFQUdJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0NhdGFsb2dBZG1pbjo6R2V0TG9jYXRpb24odm9pZCkgX19wdHI2NA0KKz9HZXRMb2NhdGlvbkBDQ2F0YWxvZ0FkbWluQEBRRUFBUEVCR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENNZW1EZVNlclN0cmVhbTo6R2V0TG9uZyh2b2lkKSBfX3B0cjY0DQorP0dldExvbmdAQ01lbURlU2VyU3RyZWFtQEBVRUFBSlhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENRdWVyeVNjYW5uZXI6OkdldE51bWJlcih1bnNpZ25lZCBsb25nICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE51bWJlckBDUXVlcnlTY2FubmVyQEBRRUFBSEFFQUtBRUFIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1F1ZXJ5U2Nhbm5lcjo6R2V0TnVtYmVyKGRvdWJsZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TnVtYmVyQENRdWVyeVNjYW5uZXJAQFFFQUFIQUVBTkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENRdWVyeVNjYW5uZXI6OkdldE51bWJlcihfX2ludDY0ICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE51bWJlckBDUXVlcnlTY2FubmVyQEBRRUFBSEFFQV9KQUVBSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENRdWVyeVNjYW5uZXI6OkdldE51bWJlcih1bnNpZ25lZCBfX2ludDY0ICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE51bWJlckBDUXVlcnlTY2FubmVyQEBRRUFBSEFFQV9LQUVBSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDS2V5RGVDb21wOjpHZXRPZmZzZXQoc3RydWN0IEJpdE9mZnNldCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0T2Zmc2V0QENLZXlEZUNvbXBAQFFFQUFYQUVBVUJpdE9mZnNldEBAQFoNCis7IGxvbmcgX19jZGVjbCBHZXRPbGVEQkVycm9ySW5mbyhzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0LHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBpbnQsc3RydWN0IHRhZ0VSUk9SSU5GTyAqIF9fcHRyNjQsc3RydWN0IElFcnJvckluZm8gKiBfX3B0cjY0ICogX19wdHI2NCkNCis/R2V0T2xlREJFcnJvckluZm9AQFlBSlBFQVVJVW5rbm93bkBAQUVCVV9HVUlEQEBLSVBFQVV0YWdFUlJPUklORk9AQFBFQVBFQVVJRXJyb3JJbmZvQEBAWg0KKzsgbG9uZyBfX2NkZWNsIEdldE9sZUVycm9yKGNsYXNzIENFeGNlcHRpb24gJiBfX3B0cjY0KQ0KKz9HZXRPbGVFcnJvckBAWUFKQUVBVkNFeGNlcHRpb25AQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDV2ViU2VydmVyOjpHZXRQaHlzaWNhbFBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/R2V0UGh5c2ljYWxQYXRoQENXZWJTZXJ2ZXJAQFFFQUFLUEVCR1BFQUdLS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENFbXB0eVByb3BlcnR5TGlzdDo6R2V0UHJvcEluZm8oY2xhc3MgQ0RiQ29sSWQgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcEluZm9AQ0VtcHR5UHJvcGVydHlMaXN0QEBRRUFBSEFFQlZDRGJDb2xJZEBAUEVBUEVCR1BFQUdQRUFJQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0VtcHR5UHJvcGVydHlMaXN0OjpHZXRQcm9wSW5mbyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQ0RiQ29sSWQgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQcm9wSW5mb0BDRW1wdHlQcm9wZXJ0eUxpc3RAQFFFQUFIUEVCR1BFQVBFQVZDRGJDb2xJZEBAUEVBR1BFQUlAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDRW1wdHlQcm9wZXJ0eUxpc3Q6OkdldFByb3BJbmZvRnJvbUlkKHN0cnVjdCB0YWdEQklEIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFByb3BJbmZvRnJvbUlkQENFbXB0eVByb3BlcnR5TGlzdEBAVUVBQUpQRUJVdGFnREJJREBAUEVBUEVBR1BFQUdQRUFJQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0VtcHR5UHJvcGVydHlMaXN0OjpHZXRQcm9wSW5mb0Zyb21OYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgdGFnREJJRCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFByb3BJbmZvRnJvbU5hbWVAQ0VtcHR5UHJvcGVydHlMaXN0QEBVRUFBSlBFQkdQRUFQRUFVdGFnREJJREBAUEVBR1BFQUlAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBDRW1wdHlQcm9wZXJ0eUxpc3Q6OkdldFByb3BUeXBlKHVuc2lnbmVkIGludCkNCis/R2V0UHJvcFR5cGVAQ0VtcHR5UHJvcGVydHlMaXN0QEBTQUdJQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIENFbXB0eVByb3BlcnR5TGlzdDo6R2V0UHJvcFR5cGVDb3VudCh2b2lkKQ0KKz9HZXRQcm9wVHlwZUNvdW50QENFbXB0eVByb3BlcnR5TGlzdEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENFbXB0eVByb3BlcnR5TGlzdDo6R2V0UHJvcFR5cGVOYW1lKHVuc2lnbmVkIGludCkNCis/R2V0UHJvcFR5cGVOYW1lQENFbXB0eVByb3BlcnR5TGlzdEBAU0FQRUJHSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENEYlByb3BlcnRpZXM6OkdldFByb3BlcnRpZXModW5zaWduZWQgbG9uZyxzdHJ1Y3QgdGFnREJQUk9QSURTRVQgY29uc3QgKiBfX3B0cjY0IGNvbnN0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHN0cnVjdCB0YWdEQlBST1BTRVQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQcm9wZXJ0aWVzQENEYlByb3BlcnRpZXNAQFVFQUFKS1FFQlV0YWdEQlBST1BJRFNFVEBAUEVBS1BFQVBFQVV0YWdEQlBST1BTRVRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDR2V0RGJQcm9wczo6R2V0UHJvcGVydGllcyhzdHJ1Y3QgSURCUHJvcGVydGllcyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9HZXRQcm9wZXJ0aWVzQENHZXREYlByb3BzQEBRRUFBWFBFQVVJREJQcm9wZXJ0aWVzQEBLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0RiUHJvcGVydGllczo6R2V0UHJvcGVydHlJbmZvKHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ0RCUFJPUElEU0VUIGNvbnN0ICogX19wdHI2NCBjb25zdCx1bnNpZ25lZCBsb25nICogX19wdHI2NCxzdHJ1Y3QgdGFnREJQUk9QSU5GT1NFVCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcGVydHlJbmZvQENEYlByb3BlcnRpZXNAQFVFQUFKS1FFQlV0YWdEQlBST1BJRFNFVEBAUEVBS1BFQVBFQVV0YWdEQlBST1BJTkZPU0VUQEBQRUFQRUFHQFoNCis7IHB1YmxpYzogZmxvYXQgX19jZGVjbCBDQWxsb2NTdG9yYWdlVmFyaWFudDo6R2V0UjQodW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldFI0QENBbGxvY1N0b3JhZ2VWYXJpYW50QEBRRUJBTUlAWg0KKzsgcHVibGljOiBkb3VibGUgX19jZGVjbCBDQWxsb2NTdG9yYWdlVmFyaWFudDo6R2V0UjgodW5zaWduZWQgaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldFI4QENBbGxvY1N0b3JhZ2VWYXJpYW50QEBRRUJBTklAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTWFjaGluZUFkbWluOjpHZXRTWlBhcmFtKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9HZXRTWlBhcmFtQENNYWNoaW5lQWRtaW5AQFFFQUFIUEVCR1BFQUdLQFoNCis7IGxvbmcgX19jZGVjbCBHZXRTY29kZUVycm9yKGNsYXNzIENFeGNlcHRpb24gJiBfX3B0cjY0KQ0KKz9HZXRTY29kZUVycm9yQEBZQUpBRUFWQ0V4Y2VwdGlvbkBAQFoNCis7IGludCBfX2NkZWNsIEdldFNlY3JldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpDQorP0dldFNlY3JldEBAWUFIUEVCRzBQRUFQRUFHUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRHJpdmVJbmZvOjpHZXRTZWN0b3JTaXplKHZvaWQpIF9fcHRyNjQNCis/R2V0U2VjdG9yU2l6ZUBDRHJpdmVJbmZvQEBRRUFBS1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ2F0U3RhdGU6OkdldFNvcnRQcm9wKHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgKiBfX3B0cjY0LGVudW0gU09SVERJUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/R2V0U29ydFByb3BAQ0NhdFN0YXRlQEBRRUJBWElQRUFQRUJHUEVBVzRTT1JURElSQEBAWg0KKzsgdm9pZCBfX2NkZWNsIEdldFN0YWNrVHJhY2UoY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/R2V0U3RhY2tUcmFjZUBAWUFYUEVBREtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENHZW5lcmljQ2lQcm94eTo6R2V0U3RhcnR1cERhdGEoc3RydWN0IF9HVUlEICYgX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRTdGFydHVwRGF0YUBDR2VuZXJpY0NpUHJveHlAQFFFQUFQRUJFQUVBVV9HVUlEQEBBRUFLQFoNCis7IHB1YmxpYzogY2xhc3MgUFN0b3JhZ2UgJiBfX3B0cjY0IF9fY2RlY2wgQ1Byb3BTdG9yZU1hbmFnZXI6OkdldFN0b3JhZ2UodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9HZXRTdG9yYWdlQENQcm9wU3RvcmVNYW5hZ2VyQEBRRUFBQUVBVlBTdG9yYWdlQEBLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ0tleTo6R2V0U3RyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyQENLZXlAQFFFQkFQRUFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ0tleUJ1Zjo6R2V0U3RyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyQENLZXlCdWZAQFFFQkFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCBjaGFyICogX19wdHI2NCBfX2NkZWNsIENNZW1EZVNlclN0cmVhbTo6R2V0U3RyaW5nKHZvaWQpIF9fcHRyNjQNCis/R2V0U3RyaW5nQENNZW1EZVNlclN0cmVhbUBAVUVBQVBFQURYWg0KKzsgY2xhc3MgQ0RiUmVzdHJpY3Rpb24gKiBfX3B0cjY0IF9fY2RlY2wgR2V0U3RyaW5nRGJSZXN0cmljdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgSUNvbHVtbk1hcHBlciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/R2V0U3RyaW5nRGJSZXN0cmljdGlvbkBAWUFQRUFWQ0RiUmVzdHJpY3Rpb25AQFBFQkdLUEVBVUlDb2x1bW5NYXBwZXJAQEtAWg0KKzsgdm9pZCBfX2NkZWNsIEdldFN0cmluZ0Zyb21MQ0lEKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9HZXRTdHJpbmdGcm9tTENJREBAWUFYS1BFQUdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1Byb3BTdG9yZU1hbmFnZXI6OkdldFRvdGFsU2l6ZUluS0Iodm9pZCkgX19wdHI2NA0KKz9HZXRUb3RhbFNpemVJbktCQENQcm9wU3RvcmVNYW5hZ2VyQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUHJvcGVydHlTdG9yZTo6R2V0VG90YWxTaXplSW5LQih2b2lkKSBfX3B0cjY0DQorP0dldFRvdGFsU2l6ZUluS0JAQ1Byb3BlcnR5U3RvcmVAQFFFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ01lbURlU2VyU3RyZWFtOjpHZXRVTG9uZyh2b2lkKSBfX3B0cjY0DQorP0dldFVMb25nQENNZW1EZVNlclN0cmVhbUBAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ01lbURlU2VyU3RyZWFtOjpHZXRVU2hvcnQodm9pZCkgX19wdHI2NA0KKz9HZXRVU2hvcnRAQ01lbURlU2VyU3RyZWFtQEBVRUFBR1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSW5kZXhUYWJsZTo6R2V0VXNlckhkckluZm8odW5zaWduZWQgaW50ICYgX19wdHI2NCxpbnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFVzZXJIZHJJbmZvQENJbmRleFRhYmxlQEBRRUFBWEFFQUlBRUFIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENNZXRhRGF0YU1ncjo6R2V0VlBhdGhBY2Nlc3ModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFZQYXRoQWNjZXNzQENNZXRhRGF0YU1nckBAUUVBQUtQRUJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENNZXRhRGF0YU1ncjo6R2V0VlBhdGhBdXRob3JpemF0aW9uKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRWUGF0aEF1dGhvcml6YXRpb25AQ01ldGFEYXRhTWdyQEBRRUFBS1BFQkdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ01ldGFEYXRhTWdyOjpHZXRWUGF0aFNTTEFjY2Vzcyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0VlBhdGhTU0xBY2Nlc3NAQ01ldGFEYXRhTWdyQEBRRUFBS1BFQkdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDRHJpdmVJbmZvOjpHZXRWb2x1bWVOYW1lKGludCkgX19wdHI2NA0KKz9HZXRWb2x1bWVOYW1lQENEcml2ZUluZm9AQFFFQUFQRUJHSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENNZW1EZVNlclN0cmVhbTo6R2V0V0NoYXIodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/R2V0V0NoYXJAQ01lbURlU2VyU3RyZWFtQEBVRUFBWFBFQUdLQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDTWVtRGVTZXJTdHJlYW06OkdldFdTdHJpbmcodm9pZCkgX19wdHI2NA0KKz9HZXRXU3RyaW5nQENNZW1EZVNlclN0cmVhbUBAVUVBQVBFQUdYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0RiQ21kVHJlZU5vZGU6OkdldFdlaWdodCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFdlaWdodEBDRGJDbWRUcmVlTm9kZUBAUUVCQUpYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0R5blN0cmVhbTo6R3JvdyhjbGFzcyBQU3RvcmFnZSAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Hcm93QENEeW5TdHJlYW1AQFFFQUFYQUVBVlBTdG9yYWdlQEBLQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDVmlydHVhbFN0cmluZzo6R3Jvd0J1ZmZlcih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dyb3dCdWZmZXJAQ1ZpcnR1YWxTdHJpbmdAQEFFQUFYS0BaDQorOyB2b2lkIF9fY2RlY2wgSFRNTEVzY2FwZVcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENWaXJ0dWFsU3RyaW5nICYgX19wdHI2NCx1bnNpZ25lZCBsb25nKQ0KKz9IVE1MRXNjYXBlV0BAWUFYUEVCR0FFQVZDVmlydHVhbFN0cmluZ0BAS0BaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ0ltcGVyc29uYXRlQ2xpZW50OjpJbXBlcnNvbmF0ZSh2b2lkKSBfX3B0cjY0DQorP0ltcGVyc29uYXRlQENJbXBlcnNvbmF0ZUNsaWVudEBAQUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZpbGVNYXBWaWV3OjpJbml0KHZvaWQpIF9fcHRyNjQNCis/SW5pdEBDRmlsZU1hcFZpZXdAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNbVN0cmVhbUNvbnNlY0J1Zjo6SW5pdChjbGFzcyBQTW1TdHJlYW0gKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRAQ01tU3RyZWFtQ29uc2VjQnVmQEBRRUFBWFBFQVZQTW1TdHJlYW1AQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENQaWRMb29rdXBUYWJsZTo6SW5pdChjbGFzcyBQUmNvdlN0b3JhZ2VPYmogKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRAQ1BpZExvb2t1cFRhYmxlQEBRRUFBSFBFQVZQUmNvdlN0b3JhZ2VPYmpAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUmNvdlN0b3JhZ2VIZHI6OkluaXQodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Jbml0QENSY292U3RvcmFnZUhkckBAUUVBQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWdDaGFuZ2VFdmVudDo6SW5pdCh2b2lkKSBfX3B0cjY0DQorP0luaXRAQ1JlZ0NoYW5nZUV2ZW50QEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTZGlkTG9va3VwVGFibGU6OkluaXQoY2xhc3MgQ2lTdG9yYWdlICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0QENTZGlkTG9va3VwVGFibGVAQFFFQUFIUEVBVkNpU3RvcmFnZUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ1Byb3BlcnR5TGlzdDo6SW5pdEl0ZXJhdG9yKHZvaWQpIF9fcHRyNjQNCis/SW5pdEl0ZXJhdG9yQENQcm9wZXJ0eUxpc3RAQFVFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENJbXBlcnNvbmF0aW9uVG9rZW5DYWNoZTo6SW5pdGlhbGl6ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50LGludCxpbnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBDSW1wZXJzb25hdGlvblRva2VuQ2FjaGVAQFFFQUFYUEVCR0hISEtLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRHluU3RyZWFtOjpJbml0aWFsaXplRm9yUmVhZCh2b2lkKSBfX3B0cjY0DQorP0luaXRpYWxpemVGb3JSZWFkQENEeW5TdHJlYW1AQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENEeW5TdHJlYW06OkluaXRpYWxpemVGb3JXcml0ZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0luaXRpYWxpemVGb3JXcml0ZUBDRHluU3RyZWFtQEBRRUFBWEtAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0RiQ21kVHJlZU5vZGU6Okluc2VydENoaWxkKGNsYXNzIENEYkNtZFRyZWVOb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9JbnNlcnRDaGlsZEBDRGJDbWRUcmVlTm9kZUBASUVBQVhQRUFWMUBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTWFjaGluZUFkbWluOjpJc0NJRW5hYmxlZCh2b2lkKSBfX3B0cjY0DQorP0lzQ0lFbmFibGVkQENNYWNoaW5lQWRtaW5AQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ01hY2hpbmVBZG1pbjo6SXNDSVBhdXNlZCh2b2lkKSBfX3B0cjY0DQorP0lzQ0lQYXVzZWRAQ01hY2hpbmVBZG1pbkBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTWFjaGluZUFkbWluOjpJc0NJU3RhcnRlZCh2b2lkKSBfX3B0cjY0DQorP0lzQ0lTdGFydGVkQENNYWNoaW5lQWRtaW5AQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ01hY2hpbmVBZG1pbjo6SXNDSVN0b3BwZWQodm9pZCkgX19wdHI2NA0KKz9Jc0NJU3RvcHBlZEBDTWFjaGluZUFkbWluQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDYXRhbG9nQWRtaW46OklzQ2F0YWxvZ0luYWN0aXZlKHZvaWQpIF9fcHRyNjQNCis/SXNDYXRhbG9nSW5hY3RpdmVAQ0NhdGFsb2dBZG1pbkBAUUVBQUhYWg0KKzsgaW50IF9fY2RlY2wgSXNEaXJlY3RvcnlXcml0YWJsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0lzRGlyZWN0b3J5V3JpdGFibGVAQFlBSFBFQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ01ldGFEYXRhTWdyOjpJc0lJU0FkbWluVXAoaW50ICYgX19wdHI2NCkNCis/SXNJSVNBZG1pblVwQENNZXRhRGF0YU1nckBAU0FIQUVBSEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDSW1wZXJzb25hdGVTeXN0ZW06OklzSW1wZXJzb25hdGVkKHZvaWQpDQorP0lzSW1wZXJzb25hdGVkQENJbXBlcnNvbmF0ZVN5c3RlbUBAU0FIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Jlc3RyaWN0aW9uOjpJc0xlYWYodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0xlYWZAQ1Jlc3RyaWN0aW9uQEBRRUJBSFhaDQorOyBpbnQgX19jZGVjbCBJc051bGxQb2ludGVyVmFyaWFudChzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgKiBfX3B0cjY0KQ0KKz9Jc051bGxQb2ludGVyVmFyaWFudEBAWUFIUEVBVXRhZ1BST1BWQVJJQU5UQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2F0YWxvZ0FkbWluOjpJc1BhdXNlZCh2b2lkKSBfX3B0cjY0DQorP0lzUGF1c2VkQENDYXRhbG9nQWRtaW5AQFFFQUFIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENJbXBlcnNvbmF0ZVN5c3RlbTo6SXNSdW5uaW5nQXNTeXN0ZW0odm9pZCkNCis/SXNSdW5uaW5nQXNTeXN0ZW1AQ0ltcGVyc29uYXRlU3lzdGVtQEBTQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRHJpdmVJbmZvOjpJc1NhbWVEcml2ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNTYW1lRHJpdmVAQ0RyaXZlSW5mb0BAUUVBQUhQRUJHQFoNCis7IGxvbmcgX19jZGVjbCBJc1Njb3BlVmFsaWQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCxpbnQpDQorP0lzU2NvcGVWYWxpZEBAWUFKUEVCR0lIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NhdGFsb2dBZG1pbjo6SXNTdGFydGVkKHZvaWQpIF9fcHRyNjQNCis/SXNTdGFydGVkQENDYXRhbG9nQWRtaW5AQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NhdGFsb2dBZG1pbjo6SXNTdG9wcGVkKHZvaWQpIF9fcHRyNjQNCis/SXNTdG9wcGVkQENDYXRhbG9nQWRtaW5AQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0FsbG9jU3RvcmFnZVZhcmlhbnQ6OklzVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1ZhbGlkQENBbGxvY1N0b3JhZ2VWYXJpYW50QEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENOb2RlUmVzdHJpY3Rpb246OklzVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1ZhbGlkQENOb2RlUmVzdHJpY3Rpb25AQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ09jY1Jlc3RyaWN0aW9uOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBDT2NjUmVzdHJpY3Rpb25AQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Jlc3RyaWN0aW9uOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBDUmVzdHJpY3Rpb25AQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0ZpbHRlckRhZW1vbjo6SXNXYWl0aW5nRm9yRG9jdW1lbnQodm9pZCkgX19wdHI2NA0KKz9Jc1dhaXRpbmdGb3JEb2N1bWVudEBDRmlsdGVyRGFlbW9uQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENEcml2ZUluZm86OklzV3JpdGVQcm90ZWN0ZWQodm9pZCkgX19wdHI2NA0KKz9Jc1dyaXRlUHJvdGVjdGVkQENEcml2ZUluZm9AQFFFQUFIWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMb2NhbEdsb2JhbFByb3BlcnR5TGlzdDo6TG9hZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgY29uc3QpIF9fcHRyNjQNCis/TG9hZEBDTG9jYWxHbG9iYWxQcm9wZXJ0eUxpc3RAQFFFQUFYUUVCR0BaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTG9jYWxlVG9Db2RlcGFnZSh1bnNpZ25lZCBsb25nKQ0KKz9Mb2NhbGVUb0NvZGVwYWdlQEBZQUtLQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUHJvcGVydHlTdG9yZTo6TG9rTmV3V29ya0lkKHVuc2lnbmVkIGxvbmcsaW50LGludCkgX19wdHI2NA0KKz9Mb2tOZXdXb3JrSWRAQ1Byb3BlcnR5U3RvcmVAQEFFQUFLS0hIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NhdFN0YXRlSW5mbzo6TG9rVXBkYXRlKHZvaWQpIF9fcHRyNjQNCis/TG9rVXBkYXRlQENDYXRTdGF0ZUluZm9AQFFFQUFIWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQcm9wU3RvcmVNYW5hZ2VyOjpMb25nSW5pdChpbnQgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LHZvaWQgKF9fY2RlY2wqKSh1bnNpZ25lZCBsb25nLGludCx2b2lkIGNvbnN0ICogX19wdHI2NCksdm9pZCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TG9uZ0luaXRAQ1Byb3BTdG9yZU1hbmFnZXJAQFFFQUFYQUVBSEFFQUtQNkFYS0hQRUJYQFoyQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGludCBfX2NkZWNsIENQcm9wU3RvcmVJbmZvOjpMb29rdXAodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Mb29rdXBAQ1Byb3BTdG9yZUluZm9AQEFFQUFJS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDU2RpZExvb2t1cFRhYmxlOjpMb29rdXBTRElEKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/TG9va3VwU0RJREBDU2RpZExvb2t1cFRhYmxlQEBRRUFBS1BFQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQaHlzU3RvcmFnZTo6TWFrZUJhY2t1cENvcHkoY2xhc3MgQ1BoeXNTdG9yYWdlICYgX19wdHI2NCxjbGFzcyBQU2F2ZVByb2dyZXNzVHJhY2tlciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/TWFrZUJhY2t1cENvcHlAQ1BoeXNTdG9yYWdlQEBRRUFBWEFFQVYxQEFFQVZQU2F2ZVByb2dyZXNzVHJhY2tlckBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQaWRMb29rdXBUYWJsZTo6TWFrZUJhY2t1cENvcHkoY2xhc3MgUFJjb3ZTdG9yYWdlT2JqICYgX19wdHI2NCxjbGFzcyBQU2F2ZVByb2dyZXNzVHJhY2tlciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/TWFrZUJhY2t1cENvcHlAQ1BpZExvb2t1cFRhYmxlQEBRRUFBWEFFQVZQUmNvdlN0b3JhZ2VPYmpAQEFFQVZQU2F2ZVByb2dyZXNzVHJhY2tlckBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQcm9wU3RvcmVNYW5hZ2VyOjpNYWtlQmFja3VwQ29weShzdHJ1Y3QgSVByb2dyZXNzTm90aWZ5ICogX19wdHI2NCxpbnQgJiBfX3B0cjY0LGNsYXNzIENpU3RvcmFnZSAmIF9fcHRyNjQsc3RydWN0IElDaUVudW1Xb3JraWRzICogX19wdHI2NCxzdHJ1Y3QgSUVudW1TdHJpbmcgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9NYWtlQmFja3VwQ29weUBDUHJvcFN0b3JlTWFuYWdlckBAUUVBQVhQRUFVSVByb2dyZXNzTm90aWZ5QEBBRUFIQUVBVkNpU3RvcmFnZUBAUEVBVUlDaUVudW1Xb3JraWRzQEBQRUFQRUFVSUVudW1TdHJpbmdAQEBaDQorOyBsb25nIF9fY2RlY2wgTWFrZUlDb21tYW5kKHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IElVbmtub3duICogX19wdHI2NCkNCis/TWFrZUlDb21tYW5kQEBZQUpQRUFQRUFVSVVua25vd25AQFBFQkcxUEVBVTFAQFoNCis7IGxvbmcgX19jZGVjbCBNYWtlSVNlYXJjaChzdHJ1Y3QgSVNlYXJjaFF1ZXJ5SGl0cyAqIF9fcHRyNjQgKiBfX3B0cjY0LGNsYXNzIENEYlJlc3RyaWN0aW9uICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP01ha2VJU2VhcmNoQEBZQUpQRUFQRUFVSVNlYXJjaFF1ZXJ5SGl0c0BAUEVBVkNEYlJlc3RyaWN0aW9uQEBQRUJHQFoNCis7IGxvbmcgX19jZGVjbCBNYWtlTG9jYWxJQ29tbWFuZChzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0ICogX19wdHI2NCxzdHJ1Y3QgSUNpQ0RvY1N0b3JlICogX19wdHI2NCxzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0KQ0KKz9NYWtlTG9jYWxJQ29tbWFuZEBAWUFKUEVBUEVBVUlVbmtub3duQEBQRUFVSUNpQ0RvY1N0b3JlQEBQRUFVMUBAWg0KKzsgbG9uZyBfX2NkZWNsIE1ha2VNZXRhZGF0YUlDb21tYW5kKHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQgKiBfX3B0cjY0LGVudW0gQ2lNZXRhRGF0YSx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQpDQorP01ha2VNZXRhZGF0YUlDb21tYW5kQEBZQUpQRUFQRUFVSVVua25vd25AQFc0Q2lNZXRhRGF0YUBAUEVCRzJQRUFVMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Z1bGxQYXRoOjpNYWtlUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TWFrZVBhdGhAQ0Z1bGxQYXRoQEBRRUFBWFBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Z1bGxQYXRoOjpNYWtlUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP01ha2VQYXRoQENGdWxsUGF0aEBAUUVBQVhQRUJHSUBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ0ltcGVyc29uYXRlU3lzdGVtOjpNYWtlUHJpdmlsZWdlZCh2b2lkKSBfX3B0cjY0DQorP01ha2VQcml2aWxlZ2VkQENJbXBlcnNvbmF0ZVN5c3RlbUBAQUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01tU3RyZWFtQ29uc2VjQnVmOjpNYXAodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9NYXBAQ01tU3RyZWFtQ29uc2VjQnVmQEBRRUFBWEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRHluU3RyZWFtOjpNYXJrRGlydHkodm9pZCkgX19wdHI2NA0KKz9NYXJrRGlydHlAQ0R5blN0cmVhbUBAUUVBQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Jhc2VTdG9yYWdlVmFyaWFudDo6TWFyc2hhbGwoY2xhc3MgUFNlclN0cmVhbSAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/TWFyc2hhbGxAQ0Jhc2VTdG9yYWdlVmFyaWFudEBAUUVCQVhBRUFWUFNlclN0cmVhbUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDb250ZW50UmVzdHJpY3Rpb246Ok1hcnNoYWxsKGNsYXNzIFBTZXJTdHJlYW0gJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP01hcnNoYWxsQENDb250ZW50UmVzdHJpY3Rpb25AQFFFQkFYQUVBVlBTZXJTdHJlYW1AQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRGJDbWRUcmVlTm9kZTo6TWFyc2hhbGwoY2xhc3MgUFNlclN0cmVhbSAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/TWFyc2hhbGxAQ0RiQ21kVHJlZU5vZGVAQFFFQkFYQUVBVlBTZXJTdHJlYW1AQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRnVsbFByb3BTcGVjOjpNYXJzaGFsbChjbGFzcyBQU2VyU3RyZWFtICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9NYXJzaGFsbEBDRnVsbFByb3BTcGVjQEBRRUJBWEFFQVZQU2VyU3RyZWFtQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ05hdExhbmd1YWdlUmVzdHJpY3Rpb246Ok1hcnNoYWxsKGNsYXNzIFBTZXJTdHJlYW0gJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP01hcnNoYWxsQENOYXRMYW5ndWFnZVJlc3RyaWN0aW9uQEBRRUJBWEFFQVZQU2VyU3RyZWFtQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ05vZGVSZXN0cmljdGlvbjo6TWFyc2hhbGwoY2xhc3MgUFNlclN0cmVhbSAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/TWFyc2hhbGxAQ05vZGVSZXN0cmljdGlvbkBAUUVCQVhBRUFWUFNlclN0cmVhbUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENOb3RSZXN0cmljdGlvbjo6TWFyc2hhbGwoY2xhc3MgUFNlclN0cmVhbSAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/TWFyc2hhbGxAQ05vdFJlc3RyaWN0aW9uQEBRRUJBWEFFQVZQU2VyU3RyZWFtQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Byb3BOYW1lQXJyYXk6Ok1hcnNoYWxsKGNsYXNzIFBTZXJTdHJlYW0gJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP01hcnNoYWxsQENQcm9wTmFtZUFycmF5QEBRRUJBWEFFQVZQU2VyU3RyZWFtQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Byb3BlcnR5UmVzdHJpY3Rpb246Ok1hcnNoYWxsKGNsYXNzIFBTZXJTdHJlYW0gJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP01hcnNoYWxsQENQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRRUJBWEFFQVZQU2VyU3RyZWFtQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Jlc3RyaWN0aW9uOjpNYXJzaGFsbChjbGFzcyBQU2VyU3RyZWFtICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9NYXJzaGFsbEBDUmVzdHJpY3Rpb25AQFFFQkFYQUVBVlBTZXJTdHJlYW1AQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVmVjdG9yUmVzdHJpY3Rpb246Ok1hcnNoYWxsKGNsYXNzIFBTZXJTdHJlYW0gJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP01hcnNoYWxsQENWZWN0b3JSZXN0cmljdGlvbkBAUUVCQVhBRUFWUFNlclN0cmVhbUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0J1ZmZlckNhY2hlOjpNaW5QYWdlSW5Vc2UodW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/TWluUGFnZUluVXNlQENCdWZmZXJDYWNoZUBAUUVBQUhBRUFLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1BoeXNTdG9yYWdlOjpNaW5QYWdlSW5Vc2UodW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/TWluUGFnZUluVXNlQENQaHlzU3RvcmFnZUBAUUVBQUhBRUFLQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBNdWx0aUJ5dGVUb1hBcnJheVdpZGVDaGFyKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgaW50LGNsYXNzIFhBcnJheTx1bnNpZ25lZCBzaG9ydD4gJiBfX3B0cjY0KQ0KKz9NdWx0aUJ5dGVUb1hBcnJheVdpZGVDaGFyQEBZQUtQRUJFS0lBRUFWPyRYQXJyYXlAR0BAQFoNCis7IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBNeV93Y3N0b3VpNjQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQsaW50KQ0KKz9NeV93Y3N0b3VpNjRAQFlBX0tQRUJHUEVBUEVBR0hAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1BpZFJlbWFwcGVyOjpOYW1lVG9SZWFsKGNsYXNzIENGdWxsUHJvcFNwZWMgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP05hbWVUb1JlYWxAQ1BpZFJlbWFwcGVyQEBRRUFBS1BFQlZDRnVsbFByb3BTcGVjQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IElTdGVtbWVyICogX19wdHI2NCBfX2NkZWNsIENDaU9sZTo6TmV3U3RlbW1lcihzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0KQ0KKz9OZXdTdGVtbWVyQENDaU9sZUBAU0FQRUFVSVN0ZW1tZXJAQEFFQlVfR1VJREBAQFoNCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBJV29yZEJyZWFrZXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0NpT2xlOjpOZXdXb3JkQnJlYWtlcihzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0KQ0KKz9OZXdXb3JkQnJlYWtlckBDQ2lPbGVAQFNBUEVBVUlXb3JkQnJlYWtlckBAQUVCVV9HVUlEQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2F0YWxvZ0VudW06Ok5leHQodm9pZCkgX19wdHI2NA0KKz9OZXh0QENDYXRhbG9nRW51bUBAUUVBQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDRW51bVN0cmluZzo6TmV4dCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TmV4dEBDRW51bVN0cmluZ0BAVUVBQUpLUEVBUEVBR1BFQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDRW51bVdvcmtpZDo6TmV4dCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP05leHRAQ0VudW1Xb3JraWRAQFVFQUFKS1BFQUswQFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBDUHJvcEVudHJ5IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENQcm9wZXJ0eUxpc3Q6Ok5leHQodm9pZCkgX19wdHI2NA0KKz9OZXh0QENQcm9wZXJ0eUxpc3RAQFVFQUFQRUJWQ1Byb3BFbnRyeUBAWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Njb3BlRW51bTo6TmV4dCh2b2lkKSBfX3B0cjY0DQorP05leHRAQ1Njb3BlRW51bUBAUUVBQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1Byb3BlcnR5U3RvcmVXaWRzOjpOZXh0V29ya0lkKHZvaWQpIF9fcHRyNjQNCis/TmV4dFdvcmtJZEBDUHJvcGVydHlTdG9yZVdpZHNAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgQ0NhdFN0YXRlOjpOdW1iZXJPZkNvbHVtbnModm9pZCljb25zdCAgX19wdHI2NA0KKz9OdW1iZXJPZkNvbHVtbnNAQ0NhdFN0YXRlQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIENDYXRTdGF0ZTo6TnVtYmVyT2ZTb3J0UHJvcHModm9pZCljb25zdCAgX19wdHI2NA0KKz9OdW1iZXJPZlNvcnRQcm9wc0BDQ2F0U3RhdGVAQFFFQkFJWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNbVN0cmVhbTo6T3Blbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/T3BlbkBDTW1TdHJlYW1AQFFFQUFYUEVCR0tLS0tIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ09MRVByb3BNYW5hZ2VyOjpPcGVuKGNsYXNzIENGdW5ueVBhdGggY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09wZW5AQ09MRVByb3BNYW5hZ2VyQEBRRUFBSEFFQlZDRnVubnlQYXRoQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01tU3RyZWFtOjpPcGVuRXhjbHVzaXZlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/T3BlbkV4Y2x1c2l2ZUBDTW1TdHJlYW1AQFFFQUFYUEVBR0hAWg0KKzsgc3RydWN0IF9pb2J1ZiAqIF9fcHRyNjQgX19jZGVjbCBPcGVuRmlsZUZyb21QYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/T3BlbkZpbGVGcm9tUGF0aEBAWUFQRUFVX2lvYnVmQEBQRUJHQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbXBvc2l0ZVByb3BSZWNvcmQgKiBfX3B0cjY0IF9fY2RlY2wgQ1Byb3BTdG9yZU1hbmFnZXI6Ok9wZW5SZWNvcmQodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9PcGVuUmVjb3JkQENQcm9wU3RvcmVNYW5hZ2VyQEBRRUFBUEVBVkNDb21wb3NpdGVQcm9wUmVjb3JkQEBLUEVBRUBaDQorOyBwdWJsaWM6IGNsYXNzIENDb21wb3NpdGVQcm9wUmVjb3JkRm9yV3JpdGVzICogX19wdHI2NCBfX2NkZWNsIENQcm9wU3RvcmVNYW5hZ2VyOjpPcGVuUmVjb3JkRm9yV3JpdGVzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T3BlblJlY29yZEZvcldyaXRlc0BDUHJvcFN0b3JlTWFuYWdlckBAUUVBQVBFQVZDQ29tcG9zaXRlUHJvcFJlY29yZEZvcldyaXRlc0BAS1BFQUVAWg0KKzsgbG9uZyBfX2NkZWNsIFBhcnNlQ2F0YWxvZ1VSTCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgWFB0clNUPHVuc2lnbmVkIHNob3J0PiAmIF9fcHRyNjQsY2xhc3MgWFB0clNUPHVuc2lnbmVkIHNob3J0PiAmIF9fcHRyNjQpDQorP1BhcnNlQ2F0YWxvZ1VSTEBAWUFKUEVCR0FFQVY/JFhQdHJTVEBHQEAxQFoNCis7IHB1YmxpYzogY2xhc3MgQ1Jlc3RyaWN0aW9uICogX19wdHI2NCBfX2NkZWNsIENQYXJzZUNvbW1hbmRUcmVlOjpQYXJzZUV4cHJlc3Npb24oY2xhc3MgQ0RiQ21kVHJlZU5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1BhcnNlRXhwcmVzc2lvbkBDUGFyc2VDb21tYW5kVHJlZUBAUUVBQVBFQVZDUmVzdHJpY3Rpb25AQFBFQVZDRGJDbWRUcmVlTm9kZUBAQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDUHJvcGVydHlMaXN0OjpQYXJzZU9uZUxpbmUoY2xhc3MgQ1F1ZXJ5U2Nhbm5lciAmIF9fcHRyNjQsaW50LGNsYXNzIFhQdHI8Y2xhc3MgQ1Byb3BFbnRyeT4gJiBfX3B0cjY0KQ0KKz9QYXJzZU9uZUxpbmVAQ1Byb3BlcnR5TGlzdEBAU0FYQUVBVkNRdWVyeVNjYW5uZXJAQEhBRUFWPyRYUHRyQFZDUHJvcEVudHJ5QEBAQEBaDQorOyBwdWJsaWM6IGNsYXNzIENEYlJlc3RyaWN0aW9uICogX19wdHI2NCBfX2NkZWNsIENRdWVyeVBhcnNlcjo6UGFyc2VRdWVyeVBocmFzZSh2b2lkKSBfX3B0cjY0DQorP1BhcnNlUXVlcnlQaHJhc2VAQ1F1ZXJ5UGFyc2VyQEBRRUFBUEVBVkNEYlJlc3RyaWN0aW9uQEBYWg0KKzsgY2xhc3MgQ0RiQ29sdW1ucyAqIF9fcHRyNjQgX19jZGVjbCBQYXJzZVN0cmluZ0NvbHVtbnModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBJQ29sdW1uTWFwcGVyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGNsYXNzIFBWYXJpYWJsZVNldCAqIF9fcHRyNjQsY2xhc3MgQ0R5bkFycmF5PHVuc2lnbmVkIHNob3J0PiAqIF9fcHRyNjQpDQorP1BhcnNlU3RyaW5nQ29sdW1uc0BAWUFQRUFWQ0RiQ29sdW1uc0BAUEVCR1BFQVVJQ29sdW1uTWFwcGVyQEBLUEVBVlBWYXJpYWJsZVNldEBAUEVBVj8kQ0R5bkFycmF5QEdAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDYXRhbG9nQWRtaW46OlBhdXNlKHZvaWQpIF9fcHRyNjQNCis/UGF1c2VAQ0NhdGFsb2dBZG1pbkBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTWFjaGluZUFkbWluOjpQYXVzZUNJKHZvaWQpIF9fcHRyNjQNCis/UGF1c2VDSUBDTWFjaGluZUFkbWluQEBRRUFBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENNZW1EZVNlclN0cmVhbTo6UGVla1VMb25nKHZvaWQpIF9fcHRyNjQNCis/UGVla1VMb25nQENNZW1EZVNlclN0cmVhbUBAVUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1BpZE1hcHBlcjo6UGlkVG9SZWFsUGlkKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UGlkVG9SZWFsUGlkQENQaWRNYXBwZXJAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDU3RhbmRhcmRQcm9wTWFwcGVyOjpQcm9wZXJ0eVRvUHJvcElkKGNsYXNzIENGdWxsUHJvcFNwZWMgY29uc3QgJiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9Qcm9wZXJ0eVRvUHJvcElkQENTdGFuZGFyZFByb3BNYXBwZXJAQFFFQUFLQUVCVkNGdWxsUHJvcFNwZWNAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDRndQcm9wZXJ0eU1hcHBlcjo6UHJvcGVydHlUb1Byb3BpZChzdHJ1Y3QgdGFnRlVMTFBST1BTUEVDIGNvbnN0ICogX19wdHI2NCxpbnQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UHJvcGVydHlUb1Byb3BpZEBDRndQcm9wZXJ0eU1hcHBlckBAVUVBQUpQRUJVdGFnRlVMTFBST1BTUEVDQEBIUEVBS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVmFsdWVOb3JtYWxpemVyOjpQdXRNYXhWYWx1ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LGVudW0gVkFSRU5VTSkgX19wdHI2NA0KKz9QdXRNYXhWYWx1ZUBDVmFsdWVOb3JtYWxpemVyQEBRRUFBWEtBRUFLVzRWQVJFTlVNQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1ZhbHVlTm9ybWFsaXplcjo6UHV0TWluVmFsdWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICYgX19wdHI2NCxlbnVtIFZBUkVOVU0pIF9fcHRyNjQNCis/UHV0TWluVmFsdWVAQ1ZhbHVlTm9ybWFsaXplckBAUUVBQVhLQUVBS1c0VkFSRU5VTUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENWYWx1ZU5vcm1hbGl6ZXI6OlB1dFZhbHVlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQsY2xhc3MgQ1N0b3JhZ2VWYXJpYW50IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9QdXRWYWx1ZUBDVmFsdWVOb3JtYWxpemVyQEBRRUFBWEtBRUFLQUVCVkNTdG9yYWdlVmFyaWFudEBAQFoNCis7IHZvaWQgX19jZGVjbCBQdXRXU3RyaW5nKGNsYXNzIFBTZXJTdHJlYW0gJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/UHV0V1N0cmluZ0BAWUFYQUVBVlBTZXJTdHJlYW1AQFBFQkdAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0RiUmVzdHJpY3Rpb24gKiBfX3B0cjY0IF9fY2RlY2wgQ1F1ZXJ5UGFyc2VyOjpRdWVyeShjbGFzcyBDRGJOb2RlUmVzdHJpY3Rpb24gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5QENRdWVyeVBhcnNlckBAQUVBQVBFQVZDRGJSZXN0cmljdGlvbkBAUEVBVkNEYk5vZGVSZXN0cmljdGlvbkBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NhdGFsb2dBZG1pbiAqIF9fcHRyNjQgX19jZGVjbCBDQ2F0YWxvZ0VudW06OlF1ZXJ5Q2F0YWxvZ0FkbWluKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlDYXRhbG9nQWRtaW5AQ0NhdGFsb2dFbnVtQEBRRUFBUEVBVkNDYXRhbG9nQWRtaW5AQFhaDQorOyBwdWJsaWM6IGNsYXNzIENDYXRhbG9nQWRtaW4gKiBfX3B0cjY0IF9fY2RlY2wgQ01hY2hpbmVBZG1pbjo6UXVlcnlDYXRhbG9nQWRtaW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5Q2F0YWxvZ0FkbWluQENNYWNoaW5lQWRtaW5AQFFFQUFQRUFWQ0NhdGFsb2dBZG1pbkBAUEVCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENDYXRhbG9nRW51bSAqIF9fcHRyNjQgX19jZGVjbCBDTWFjaGluZUFkbWluOjpRdWVyeUNhdGFsb2dFbnVtKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlDYXRhbG9nRW51bUBDTWFjaGluZUFkbWluQEBRRUFBUEVBVkNDYXRhbG9nRW51bUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0RiUHJvcGVydGllczo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlJbnRlcmZhY2VAQ0RiUHJvcGVydGllc0BAVUVBQUpBRUJVX0dVSURAQFBFQVBFQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDRW1wdHlQcm9wZXJ0eUxpc3Q6OlF1ZXJ5SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5SW50ZXJmYWNlQENFbXB0eVByb3BlcnR5TGlzdEBAVUVBQUpBRUJVX0dVSURAQFBFQVBFQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDRW51bVN0cmluZzo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYgX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlJbnRlcmZhY2VAQ0VudW1TdHJpbmdAQFVFQUFKQUVCVV9HVUlEQEBQRUFQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0VudW1Xb3JraWQ6OlF1ZXJ5SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5SW50ZXJmYWNlQENFbnVtV29ya2lkQEBVRUFBSkFFQlVfR1VJREBAUEVBUEVBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENGd1Byb3BlcnR5TWFwcGVyOjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUludGVyZmFjZUBDRndQcm9wZXJ0eU1hcHBlckBAVUVBQUpBRUJVX0dVSURAQFBFQVBFQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDUXVlcnlVbmtub3duOjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUludGVyZmFjZUBDUXVlcnlVbmtub3duQEBVRUFBSkFFQlVfR1VJREBAUEVBUEVBWEBaDQorOyBwdWJsaWM6IGNsYXNzIFBSY292U3RvcmFnZU9iaiAqIF9fcHRyNjQgX19jZGVjbCBDaVN0b3JhZ2U6OlF1ZXJ5UGlkTG9va3VwVGFibGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9RdWVyeVBpZExvb2t1cFRhYmxlQENpU3RvcmFnZUBAUUVBQVBFQVZQUmNvdlN0b3JhZ2VPYmpAQEtAWg0KKzsgcHVibGljOiBjbGFzcyBDU2NvcGVBZG1pbiAqIF9fcHRyNjQgX19jZGVjbCBDQ2F0YWxvZ0FkbWluOjpRdWVyeVNjb3BlQWRtaW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5U2NvcGVBZG1pbkBDQ2F0YWxvZ0FkbWluQEBRRUFBUEVBVkNTY29wZUFkbWluQEBQRUJHQFoNCis7IHB1YmxpYzogY2xhc3MgQ1Njb3BlQWRtaW4gKiBfX3B0cjY0IF9fY2RlY2wgQ1Njb3BlRW51bTo6UXVlcnlTY29wZUFkbWluKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlTY29wZUFkbWluQENTY29wZUVudW1AQFFFQUFQRUFWQ1Njb3BlQWRtaW5AQFhaDQorOyBwdWJsaWM6IGNsYXNzIENTY29wZUVudW0gKiBfX3B0cjY0IF9fY2RlY2wgQ0NhdGFsb2dBZG1pbjo6UXVlcnlTY29wZUVudW0odm9pZCkgX19wdHI2NA0KKz9RdWVyeVNjb3BlRW51bUBDQ2F0YWxvZ0FkbWluQEBRRUFBUEVBVkNTY29wZUVudW1AQFhaDQorOyBwdWJsaWM6IGNsYXNzIFBSY292U3RvcmFnZU9iaiAqIF9fcHRyNjQgX19jZGVjbCBDaVN0b3JhZ2U6OlF1ZXJ5U2NvcGVMaXN0KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UXVlcnlTY29wZUxpc3RAQ2lTdG9yYWdlQEBRRUFBUEVBVlBSY292U3RvcmFnZU9iakBAS0BaDQorOyBwdWJsaWM6IGNsYXNzIFBSY292U3RvcmFnZU9iaiAqIF9fcHRyNjQgX19jZGVjbCBDaVN0b3JhZ2U6OlF1ZXJ5U2RpZExvb2t1cFRhYmxlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UXVlcnlTZGlkTG9va3VwVGFibGVAQ2lTdG9yYWdlQEBRRUFBUEVBVlBSY292U3RvcmFnZU9iakBAS0BaDQorOyBwdWJsaWM6IGNsYXNzIFBSY292U3RvcmFnZU9iaiAqIF9fcHRyNjQgX19jZGVjbCBDaVN0b3JhZ2U6OlF1ZXJ5VmlydHVhbFNjb3BlTGlzdCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1F1ZXJ5VmlydHVhbFNjb3BlTGlzdEBDaVN0b3JhZ2VAQFFFQUFQRUFWUFJjb3ZTdG9yYWdlT2JqQEBLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQaWRSZW1hcHBlcjo6UmVCdWlsZChjbGFzcyBDUGlkTWFwcGVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZUJ1aWxkQENQaWRSZW1hcHBlckBAUUVBQVhBRUJWQ1BpZE1hcHBlckBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENRdWVyeVVua25vd246OlJlSW5pdCh1bnNpZ25lZCBsb25nLGNsYXNzIENSb3dzZXQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZUluaXRAQ1F1ZXJ5VW5rbm93bkBAUUVBQVhLUEVBUEVBVkNSb3dzZXRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSW1wZXJzb25hdGlvblRva2VuQ2FjaGU6OlJlSW5pdGlhbGl6ZUlJU1Njb3Blcyh2b2lkKSBfX3B0cjY0DQorP1JlSW5pdGlhbGl6ZUlJU1Njb3Blc0BDSW1wZXJzb25hdGlvblRva2VuQ2FjaGVAQFFFQUFYWFoNCis7IHByaXZhdGU6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENQaHlzSW5kZXg6OlJlT3BlblN0cmVhbSh2b2lkKSBfX3B0cjY0DQorP1JlT3BlblN0cmVhbUBDUGh5c0luZGV4QEBFRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRHluU3RyZWFtOjpSZWFkKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVhZEBDRHluU3RyZWFtQEBRRUFBS1BFQVhLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSY292U3RybVRyYW5zOjpSZWFkKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVhZEBDUmNvdlN0cm1UcmFuc0BAUUVBQUtQRUFYS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUmVnQWNjZXNzOjpSZWFkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlYWRAQ1JlZ0FjY2Vzc0BAUUVBQUtQRUJHS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENSZWdBY2Nlc3M6OlJlYWQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWFkQENSZWdBY2Nlc3NAQFFFQUFQRUFHUEVCRzBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUHJvcFN0b3JlTWFuYWdlcjo6UmVhZFByaW1hcnlQcm9wZXJ0eSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1BST1BWQVJJQU5UICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZWFkUHJpbWFyeVByb3BlcnR5QENQcm9wU3RvcmVNYW5hZ2VyQEBRRUFBSEtLQUVBVXRhZ1BST1BWQVJJQU5UQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDT0xFUHJvcE1hbmFnZXI6OlJlYWRQcm9wZXJ0eShjbGFzcyBDRnVsbFByb3BTcGVjIGNvbnN0ICYgX19wdHI2NCxzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlYWRQcm9wZXJ0eUBDT0xFUHJvcE1hbmFnZXJAQFFFQUFIQUVCVkNGdWxsUHJvcFNwZWNAQEFFQVV0YWdQUk9QVkFSSUFOVEBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Byb3BTdG9yZU1hbmFnZXI6OlJlYWRQcm9wZXJ0eShjbGFzcyBDQ29tcG9zaXRlUHJvcFJlY29yZCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlYWRQcm9wZXJ0eUBDUHJvcFN0b3JlTWFuYWdlckBAUUVBQUhBRUFWQ0NvbXBvc2l0ZVByb3BSZWNvcmRAQEtBRUFVdGFnUFJPUFZBUklBTlRAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENQcm9wU3RvcmVNYW5hZ2VyOjpSZWFkUHJvcGVydHkoY2xhc3MgQ0NvbXBvc2l0ZVByb3BSZWNvcmQgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1BST1BWQVJJQU5UICYgX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlYWRQcm9wZXJ0eUBDUHJvcFN0b3JlTWFuYWdlckBAUUVBQUhBRUFWQ0NvbXBvc2l0ZVByb3BSZWNvcmRAQEtBRUFVdGFnUFJPUFZBUklBTlRAQFBFQUVQRUFJQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Byb3BTdG9yZU1hbmFnZXI6OlJlYWRQcm9wZXJ0eShjbGFzcyBDQ29tcG9zaXRlUHJvcFJlY29yZCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVhZFByb3BlcnR5QENQcm9wU3RvcmVNYW5hZ2VyQEBRRUFBSEFFQVZDQ29tcG9zaXRlUHJvcFJlY29yZEBAS1BFQVV0YWdQUk9QVkFSSUFOVEBAUEVBSUBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENQcm9wU3RvcmVNYW5hZ2VyOjpSZWFkUHJvcGVydHkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdQUk9QVkFSSUFOVCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVhZFByb3BlcnR5QENQcm9wU3RvcmVNYW5hZ2VyQEBRRUFBSEtLQUVBVXRhZ1BST1BWQVJJQU5UQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUHJvcFN0b3JlTWFuYWdlcjo6UmVhZFByb3BlcnR5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgJiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVhZFByb3BlcnR5QENQcm9wU3RvcmVNYW5hZ2VyQEBRRUFBSEtLQUVBVXRhZ1BST1BWQVJJQU5UQEBQRUFFUEVBSUBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENQcm9wU3RvcmVNYW5hZ2VyOjpSZWFkUHJvcGVydHkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdQUk9QVkFSSUFOVCAqIF9fcHRyNjQsdW5zaWduZWQgaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWFkUHJvcGVydHlAQ1Byb3BTdG9yZU1hbmFnZXJAQFFFQUFIS0tQRUFVdGFnUFJPUFZBUklBTlRAQFBFQUlAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUHJvcGVydHlTdG9yZTo6UmVhZFByb3BlcnR5KGNsYXNzIENQcm9wUmVjb3JkTm9Mb2NrICYgX19wdHI2NCx1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdQUk9QVkFSSUFOVCAqIF9fcHRyNjQsdW5zaWduZWQgaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWFkUHJvcGVydHlAQ1Byb3BlcnR5U3RvcmVAQFFFQUFIQUVBVkNQcm9wUmVjb3JkTm9Mb2NrQEBLUEVBVXRhZ1BST1BWQVJJQU5UQEBQRUFJQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Byb3BlcnR5U3RvcmU6OlJlYWRQcm9wZXJ0eSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1BST1BWQVJJQU5UICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZWFkUHJvcGVydHlAQ1Byb3BlcnR5U3RvcmVAQFFFQUFIS0tBRUFVdGFnUFJPUFZBUklBTlRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBDREZBOjpSZWNvZ25pemUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlY29nbml6ZUBDREZBQEBRRUFBRVBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NpUmVnUGFyYW1zOjpSZWZyZXNoKHN0cnVjdCBJQ2lBZG1pblBhcmFtcyAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1JlZnJlc2hAQ0NpUmVnUGFyYW1zQEBRRUFBWFBFQVVJQ2lBZG1pblBhcmFtc0BASEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRGVmQ29sdW1uUmVnRW50cnk6OlJlZnJlc2goaW50KSBfX3B0cjY0DQorP1JlZnJlc2hAQ0RlZkNvbHVtblJlZ0VudHJ5QEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1dvcmtRdWV1ZTo6UmVmcmVzaFBhcmFtcyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVmcmVzaFBhcmFtc0BDV29ya1F1ZXVlQEBRRUFBWEtLQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0RiUHJvcGVydGllczo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ0RiUHJvcGVydGllc0BAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRW1wdHlQcm9wZXJ0eUxpc3Q6OlJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlQENFbXB0eVByb3BlcnR5TGlzdEBAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRW51bVN0cmluZzo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ0VudW1TdHJpbmdAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0VudW1Xb3JraWQ6OlJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlQENFbnVtV29ya2lkQEBVRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENGd1Byb3BlcnR5TWFwcGVyOjpSZWxlYXNlKHZvaWQpIF9fcHRyNjQNCis/UmVsZWFzZUBDRndQcm9wZXJ0eU1hcHBlckBAVUVBQUtYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ltcGVyc29uYXRlUmVtb3RlQWNjZXNzOjpSZWxlYXNlKHZvaWQpIF9fcHRyNjQNCis/UmVsZWFzZUBDSW1wZXJzb25hdGVSZW1vdGVBY2Nlc3NAQFFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1F1ZXJ5VW5rbm93bjo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ1F1ZXJ5VW5rbm93bkBAVUVBQUtYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1dvcmtRdWV1ZTo6UmVsZWFzZShjbGFzcyBDV29ya1RocmVhZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVsZWFzZUBDV29ya1F1ZXVlQEBRRUFBWFBFQVZDV29ya1RocmVhZEBAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDUHJvcGVydHlTdG9yZTo6UmVsZWFzZVJlYWQoY2xhc3MgQ1JlYWRXcml0ZUxvY2tSZWNvcmQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbGVhc2VSZWFkQENQcm9wZXJ0eVN0b3JlQEBBRUFBWEFFQVZDUmVhZFdyaXRlTG9ja1JlY29yZEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENXb3JrUXVldWU6OlJlbGVhc2VXb3JrVGhyZWFkcyh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VXb3JrVGhyZWFkc0BDV29ya1F1ZXVlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29sdW1uczo6UmVtb3ZlKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9SZW1vdmVAQ0NvbHVtbnNAQFFFQUFYSUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRGJTb3J0U2V0OjpSZW1vdmUodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1JlbW92ZUBDRGJTb3J0U2V0QEBRRUFBWElAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NvcnQ6OlJlbW92ZSh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/UmVtb3ZlQENTb3J0QEBRRUFBWElAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENXb3JrUXVldWU6OlJlbW92ZShjbGFzcyBDV29ya1RocmVhZCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVtb3ZlQENXb3JrUXVldWVAQEFFQUFYQUVBVkNXb3JrVGhyZWFkQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1dvcmtRdWV1ZTo6UmVtb3ZlKGNsYXNzIFBXb3JrSXRlbSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVtb3ZlQENXb3JrUXVldWVAQFFFQUFYUEVBVlBXb3JrSXRlbUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNYWNoaW5lQWRtaW46OlJlbW92ZUNhdGFsb2codW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9SZW1vdmVDYXRhbG9nQENNYWNoaW5lQWRtaW5AQFFFQUFYUEVCR0hAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01hY2hpbmVBZG1pbjo6UmVtb3ZlQ2F0YWxvZ0ZpbGVzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVDYXRhbG9nRmlsZXNAQ01hY2hpbmVBZG1pbkBAUUVBQVhQRUJHQFoNCis7IHB1YmxpYzogY2xhc3MgQ1Jlc3RyaWN0aW9uICogX19wdHI2NCBfX2NkZWNsIENOb2RlUmVzdHJpY3Rpb246OlJlbW92ZUNoaWxkKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9SZW1vdmVDaGlsZEBDTm9kZVJlc3RyaWN0aW9uQEBRRUFBUEVBVkNSZXN0cmljdGlvbkBASUBaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIENEYkNtZFRyZWVOb2RlICogX19wdHI2NCBfX2NkZWNsIENEYkNtZFRyZWVOb2RlOjpSZW1vdmVGaXJzdENoaWxkKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlRmlyc3RDaGlsZEBDRGJDbWRUcmVlTm9kZUBASUVBQVBFQVYxQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ2F0YWxvZ0FkbWluOjpSZW1vdmVTY29wZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVtb3ZlU2NvcGVAQ0NhdGFsb2dBZG1pbkBAUUVBQVhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQaHlzU3RvcmFnZTo6UmVvcGVuKGludCkgX19wdHI2NA0KKz9SZW9wZW5AQ1BoeXNTdG9yYWdlQEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0V2ZW50TG9nOjpSZXBvcnRFdmVudFcoY2xhc3MgQ0V2ZW50SXRlbSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVwb3J0RXZlbnRXQENFdmVudExvZ0BAUUVBQVhBRUFWQ0V2ZW50SXRlbUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGd0V2ZW50SXRlbTo6UmVwb3J0RXZlbnRXKHN0cnVjdCBJQ2lDQWR2aXNlU3RhdHVzICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZXBvcnRFdmVudFdAQ0Z3RXZlbnRJdGVtQEBRRUFBWEFFQVVJQ2lDQWR2aXNlU3RhdHVzQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUGh5c1N0b3JhZ2U6OlJlcXVpcmVzRmx1c2godW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZXF1aXJlc0ZsdXNoQENQaHlzU3RvcmFnZUBAUUVBQUhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENSZWdDaGFuZ2VFdmVudDo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBDUmVnQ2hhbmdlRXZlbnRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENRdWVyeVNjYW5uZXI6OlJlc2V0QnVmZmVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZXNldEJ1ZmZlckBDUXVlcnlTY2FubmVyQEBRRUFBWFBFQkdAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0FsbG9jU3RvcmFnZVZhcmlhbnQ6OlJlc2V0VHlwZShjbGFzcyBQTWVtb3J5QWxsb2NhdG9yICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZXNldFR5cGVAQ0FsbG9jU3RvcmFnZVZhcmlhbnRAQElFQUFYQUVBVlBNZW1vcnlBbGxvY2F0b3JAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUHJvY2Vzczo6UmVzdW1lKHZvaWQpIF9fcHRyNjQNCis/UmVzdW1lQENQcm9jZXNzQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUGh5c1N0b3JhZ2U6OlJldHVybkJ1ZmZlcih1bnNpZ25lZCBsb25nLGludCxpbnQpIF9fcHRyNjQNCis/UmV0dXJuQnVmZmVyQENQaHlzU3RvcmFnZUBAUUVBQVhLSEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01tU3RyZWFtQ29uc2VjQnVmOjpSZXdpbmQodm9pZCkgX19wdHI2NA0KKz9SZXdpbmRAQ01tU3RyZWFtQ29uc2VjQnVmQEBRRUFBWFhaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU2FDb21wdXRlU2l6ZSh1bnNpZ25lZCBzaG9ydCxzdHJ1Y3QgdGFnU0FGRUFSUkFZICYgX19wdHI2NCkNCis/U2FDb21wdXRlU2l6ZUBAWUFLR0FFQVV0YWdTQUZFQVJSQVlAQEBaDQorOyBpbnQgX19jZGVjbCBTYUNyZWF0ZUFuZENvcHkoY2xhc3MgUE1lbW9yeUFsbG9jYXRvciAmIF9fcHRyNjQsc3RydWN0IHRhZ1NBRkVBUlJBWSAqIF9fcHRyNjQsc3RydWN0IHRhZ1NBRkVBUlJBWSAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9TYUNyZWF0ZUFuZENvcHlAQFlBSEFFQVZQTWVtb3J5QWxsb2NhdG9yQEBQRUFVdGFnU0FGRUFSUkFZQEBQRUFQRUFVMkBAWg0KKzsgaW50IF9fY2RlY2wgU2FDcmVhdGVEYXRhKGNsYXNzIFBWYXJBbGxvY2F0b3IgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0LHN0cnVjdCB0YWdTQUZFQVJSQVkgJiBfX3B0cjY0LHN0cnVjdCB0YWdTQUZFQVJSQVkgJiBfX3B0cjY0LGludCkNCis/U2FDcmVhdGVEYXRhQEBZQUhBRUFWUFZhckFsbG9jYXRvckBAR0FFQVV0YWdTQUZFQVJSQVlAQDFIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Jjb3ZTdHJtVHJhbnM6OlNlZWsodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZWVrQENSY292U3RybVRyYW5zQEBRRUFBSEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RiUXVlcnlSZXN1bHRzOjpTZXJpYWxpemUoY2xhc3MgUFNlclN0cmVhbSAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/U2VyaWFsaXplQENEYlF1ZXJ5UmVzdWx0c0BAUUVCQVhBRUFWUFNlclN0cmVhbUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQaWRSZW1hcHBlcjo6U2V0KGNsYXNzIFhBcnJheTx1bnNpZ25lZCBsb25nPiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QENQaWRSZW1hcHBlckBAUUVBQVhBRUFWPyRYQXJyYXlAS0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTY29wZUFkbWluOjpTZXRBbGlhcyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QWxpYXNAQ1Njb3BlQWRtaW5AQFFFQUFYUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RvcmFnZVZhcmlhbnQ6OlNldEJPT0woc2hvcnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1NldEJPT0xAQ1N0b3JhZ2VWYXJpYW50QEBRRUFBWEZJQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENBbGxvY1N0b3JhZ2VWYXJpYW50OjpTZXRCU1RSKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxjbGFzcyBQTWVtb3J5QWxsb2NhdG9yICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRCU1RSQENBbGxvY1N0b3JhZ2VWYXJpYW50QEBRRUFBWFBFQUdBRUFWUE1lbW9yeUFsbG9jYXRvckBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdG9yYWdlVmFyaWFudDo6U2V0QlNUUih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1NldEJTVFJAQ1N0b3JhZ2VWYXJpYW50QEBRRUFBWFBFQUdJQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQcm9wU3RvcmVNYW5hZ2VyOjpTZXRCYWNrdXBTaXplKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRCYWNrdXBTaXplQENQcm9wU3RvcmVNYW5hZ2VyQEBRRUFBWEtLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDYXRTdGF0ZTo6U2V0Q0QodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldENEQENDYXRTdGF0ZUBAUUVBQVhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdG9yYWdlVmFyaWFudDo6U2V0Q0xTSUQoc3RydWN0IF9HVUlEIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRDTFNJREBDU3RvcmFnZVZhcmlhbnRAQFFFQUFYUEVCVV9HVUlEQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0b3JhZ2VWYXJpYW50OjpTZXRDTFNJRChzdHJ1Y3QgX0dVSUQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP1NldENMU0lEQENTdG9yYWdlVmFyaWFudEBAUUVBQVhVX0dVSURAQElAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0b3JhZ2VWYXJpYW50OjpTZXRDWSh1bmlvbiB0YWdDWSx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0Q1lAQ1N0b3JhZ2VWYXJpYW50QEBRRUFBWFR0YWdDWUBASUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ2F0U3RhdGU6OlNldENhdGFsb2codW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldENhdGFsb2dAQ0NhdFN0YXRlQEBRRUFBWFBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NhdFN0YXRlOjpTZXRDb2x1bW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRDb2x1bW5AQ0NhdFN0YXRlQEBRRUFBWFBFQkdJQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDUXVlcnlQYXJzZXI6OlNldEN1cnJlbnRQcm9wZXJ0eSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsZW51bSBQcm9wZXJ0eVR5cGUpIF9fcHRyNjQNCis/U2V0Q3VycmVudFByb3BlcnR5QENRdWVyeVBhcnNlckBAQUVBQVhQRUJHVzRQcm9wZXJ0eVR5cGVAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RvcmFnZVZhcmlhbnQ6OlNldERBVEUoZG91YmxlLHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXREQVRFQENTdG9yYWdlVmFyaWFudEBAUUVBQVhOSUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ2F0YWxvZ0FkbWluOjpTZXREV09SRFBhcmFtKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldERXT1JEUGFyYW1AQ0NhdGFsb2dBZG1pbkBAUUVBQVhQRUJHS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTWFjaGluZUFkbWluOjpTZXREV09SRFBhcmFtKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldERXT1JEUGFyYW1AQ01hY2hpbmVBZG1pbkBAUUVBQVhQRUJHS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ2F0U3RhdGU6OlNldERlZmF1bHRQcm9wZXJ0eSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RGVmYXVsdFByb3BlcnR5QENDYXRTdGF0ZUBAUUVBQVhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTY29wZUFkbWluOjpTZXRFeGNsdWRlKGludCkgX19wdHI2NA0KKz9TZXRFeGNsdWRlQENTY29wZUFkbWluQEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0b3JhZ2VWYXJpYW50OjpTZXRGSUxFVElNRShzdHJ1Y3QgX0ZJTEVUSU1FLHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRGSUxFVElNRUBDU3RvcmFnZVZhcmlhbnRAQFFFQUFYVV9GSUxFVElNRUBASUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RvcmFnZVZhcmlhbnQ6OlNldEkyKHNob3J0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRJMkBDU3RvcmFnZVZhcmlhbnRAQFFFQUFYRklAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0b3JhZ2VWYXJpYW50OjpTZXRJNChsb25nLHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRJNEBDU3RvcmFnZVZhcmlhbnRAQFFFQUFYSklAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0b3JhZ2VWYXJpYW50OjpTZXRJOCh1bmlvbiBfTEFSR0VfSU5URUdFUix1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0SThAQ1N0b3JhZ2VWYXJpYW50QEBRRUFBWFRfTEFSR0VfSU5URUdFUkBASUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RvcmFnZVZhcmlhbnQ6OlNldExQU1RSKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRMUFNUUkBDU3RvcmFnZVZhcmlhbnRAQFFFQUFYUEVCRElAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0b3JhZ2VWYXJpYW50OjpTZXRMUFdTVFIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRMUFdTVFJAQ1N0b3JhZ2VWYXJpYW50QEBRRUFBWFBFQkdJQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDYXRTdGF0ZTo6U2V0TG9jYWxlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRMb2NhbGVAQ0NhdFN0YXRlQEBRRUFBWFBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Njb3BlQWRtaW46OlNldExvZ29uSW5mbyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENDYXRhbG9nQWRtaW4gJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldExvZ29uSW5mb0BDU2NvcGVBZG1pbkBAUUVBQVhQRUJHMEFFQVZDQ2F0YWxvZ0FkbWluQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Byb3BTdG9yZU1hbmFnZXI6OlNldE1hcHBlZENhY2hlU2l6ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0TWFwcGVkQ2FjaGVTaXplQENQcm9wU3RvcmVNYW5hZ2VyQEBRRUFBWEtLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDYXRTdGF0ZTo6U2V0TnVtYmVyT2ZDb2x1bW5zKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXROdW1iZXJPZkNvbHVtbnNAQ0NhdFN0YXRlQEBRRUFBWElAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NhdFN0YXRlOjpTZXROdW1iZXJPZlNvcnRQcm9wcyh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0TnVtYmVyT2ZTb3J0UHJvcHNAQ0NhdFN0YXRlQEBRRUFBWElAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Njb3BlQWRtaW46OlNldFBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFBhdGhAQ1Njb3BlQWRtaW5AQFFFQUFYUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29udGVudFJlc3RyaWN0aW9uOjpTZXRQaHJhc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFBocmFzZUBDQ29udGVudFJlc3RyaWN0aW9uQEBRRUFBWFBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ05hdExhbmd1YWdlUmVzdHJpY3Rpb246OlNldFBocmFzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UGhyYXNlQENOYXRMYW5ndWFnZVJlc3RyaWN0aW9uQEBRRUFBWFBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0dlbmVyaWNDaVByb3h5OjpTZXRQcmlvcml0eSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0UHJpb3JpdHlAQ0dlbmVyaWNDaVByb3h5QEBRRUFBWEtLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0RiUHJvcGVydGllczo6U2V0UHJvcGVydGllcyh1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdEQlBST1BTRVQgKiBfX3B0cjY0IGNvbnN0KSBfX3B0cjY0DQorP1NldFByb3BlcnRpZXNAQ0RiUHJvcGVydGllc0BAVUVBQUpLUUVBVXRhZ0RCUFJPUFNFVEBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RiQ29sSWQ6OlNldFByb3BlcnR5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQcm9wZXJ0eUBDRGJDb2xJZEBAUUVBQUhQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RiUHJvcEJhc2VSZXN0cmljdGlvbjo6U2V0UHJvcGVydHkoc3RydWN0IHRhZ0RCSUQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFByb3BlcnR5QENEYlByb3BCYXNlUmVzdHJpY3Rpb25AQFFFQUFIQUVCVXRhZ0RCSURAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENEYlByb3BCYXNlUmVzdHJpY3Rpb246OlNldFByb3BlcnR5KGNsYXNzIENEYkNvbHVtbk5vZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFByb3BlcnR5QENEYlByb3BCYXNlUmVzdHJpY3Rpb25AQFFFQUFIQUVCVkNEYkNvbHVtbk5vZGVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENGdWxsUHJvcFNwZWM6OlNldFByb3BlcnR5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQcm9wZXJ0eUBDRnVsbFByb3BTcGVjQEBRRUFBSFBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Z1bGxQcm9wU3BlYzo6U2V0UHJvcGVydHkodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRQcm9wZXJ0eUBDRnVsbFByb3BTcGVjQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0b3JhZ2VWYXJpYW50OjpTZXRSNChmbG9hdCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0UjRAQ1N0b3JhZ2VWYXJpYW50QEBRRUFBWE1JQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdG9yYWdlVmFyaWFudDo6U2V0UjgoZG91YmxlLHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRSOEBDU3RvcmFnZVZhcmlhbnRAQFFFQUFYTklAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGJTZWxlY3ROb2RlOjpTZXRSZXN0cmljdGlvbihjbGFzcyBDRGJDbWRUcmVlTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UmVzdHJpY3Rpb25AQ0RiU2VsZWN0Tm9kZUBAUUVBQUhQRUFWQ0RiQ21kVHJlZU5vZGVAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ0ltcGVyc29uYXRlU3lzdGVtOjpTZXRSdW5uaW5nQXNTeXN0ZW0odm9pZCkNCis/U2V0UnVubmluZ0FzU3lzdGVtQENJbXBlcnNvbmF0ZVN5c3RlbUBAU0FYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNYWNoaW5lQWRtaW46OlNldFNaUGFyYW0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFNaUGFyYW1AQ01hY2hpbmVBZG1pbkBAUUVBQVhQRUJHMEtAWg0KKzsgdm9pZCBfX2NkZWNsIFNldFNjb3BlUHJvcGVydGllcyhzdHJ1Y3QgSUNvbW1hbmQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IGNvbnN0ICogX19wdHI2NCkNCis/U2V0U2NvcGVQcm9wZXJ0aWVzQEBZQVhQRUFVSUNvbW1hbmRAQElQRUJRRUJHUEVCSzExQFoNCis7IGxvbmcgX19jZGVjbCBTZXRTY29wZVByb3BlcnRpZXNOb1Rocm93KHN0cnVjdCBJQ29tbWFuZCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgY29uc3QgKiBfX3B0cjY0KQ0KKz9TZXRTY29wZVByb3BlcnRpZXNOb1Rocm93QEBZQUpQRUFVSUNvbW1hbmRAQElQRUJRRUJHUEVCSzExQFoNCis7IHZvaWQgX19jZGVjbCBTZXRTZWNyZXQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/U2V0U2VjcmV0QEBZQVhQRUJHMDBLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDYXRTdGF0ZTo6U2V0U29ydFByb3AodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGVudW0gU09SVERJUix1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0U29ydFByb3BAQ0NhdFN0YXRlQEBRRUFBWFBFQkdXNFNPUlRESVJAQElAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0b3JhZ2VWYXJpYW50OjpTZXRVSTEodW5zaWduZWQgY2hhcix1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0VUkxQENTdG9yYWdlVmFyaWFudEBAUUVBQVhFSUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RvcmFnZVZhcmlhbnQ6OlNldFVJMih1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0VUkyQENTdG9yYWdlVmFyaWFudEBAUUVBQVhHSUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RvcmFnZVZhcmlhbnQ6OlNldFVJNCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9TZXRVSTRAQ1N0b3JhZ2VWYXJpYW50QEBRRUFBWEtJQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdG9yYWdlVmFyaWFudDo6U2V0VUk4KHVuaW9uIF9VTEFSR0VfSU5URUdFUix1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/U2V0VUk4QENTdG9yYWdlVmFyaWFudEBAUUVBQVhUX1VMQVJHRV9JTlRFR0VSQEBJQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjpTZXRWYWx1ZShzdHJ1Y3QgdGFnQkxPQiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VmFsdWVAQ1Byb3BlcnR5UmVzdHJpY3Rpb25AQFFFQUFYQUVBVXRhZ0JMT0JAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUHJvcGVydHlSZXN0cmljdGlvbjo6U2V0VmFsdWUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFZhbHVlQENQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRRUFBWFBFQUdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Byb3BlcnR5UmVzdHJpY3Rpb246OlNldFZhbHVlKHN0cnVjdCBfR1VJRCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VmFsdWVAQ1Byb3BlcnR5UmVzdHJpY3Rpb25AQFFFQUFYUEVBVV9HVUlEQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0RiQ21kVHJlZU5vZGU6OlNldFdlaWdodChsb25nKSBfX3B0cjY0DQorP1NldFdlaWdodEBDRGJDbWRUcmVlTm9kZUBAUUVBQVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQcm9wU3RvcmVNYW5hZ2VyOjpTZXR1cCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBfX2ludDY0LGludCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldHVwQENQcm9wU3RvcmVNYW5hZ2VyQEBRRUFBWEtLS19LSEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0R5blN0cmVhbTo6U2hyaW5rKGNsYXNzIFBTdG9yYWdlICYgX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1Nocmlua0BDRHluU3RyZWFtQEBRRUFBWEFFQVZQU3RvcmFnZUBAS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDUGh5c1N0b3JhZ2U6OlNocmlua0Zyb21Gcm9udCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2hyaW5rRnJvbUZyb250QENQaHlzU3RvcmFnZUBAUUVBQUtLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUGh5c1N0b3JhZ2U6OlNocmlua1RvRml0KHZvaWQpIF9fcHRyNjQNCis/U2hyaW5rVG9GaXRAQ1BoeXNTdG9yYWdlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ0NpT2xlOjpTaHV0ZG93bih2b2lkKQ0KKz9TaHV0ZG93bkBDQ2lPbGVAQFNBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUHJvcFN0b3JlTWFuYWdlcjo6U2h1dGRvd24odm9pZCkgX19wdHI2NA0KKz9TaHV0ZG93bkBDUHJvcFN0b3JlTWFuYWdlckBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1dvcmtRdWV1ZTo6U2h1dGRvd24odm9pZCkgX19wdHI2NA0KKz9TaHV0ZG93bkBDV29ya1F1ZXVlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRGJRdWVyeVJlc3VsdHM6OlNpemUodm9pZCkgX19wdHI2NA0KKz9TaXplQENEYlF1ZXJ5UmVzdWx0c0BAUUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDRW51bVN0cmluZzo6U2tpcCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NraXBAQ0VudW1TdHJpbmdAQFVFQUFKS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENFbnVtV29ya2lkOjpTa2lwKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2tpcEBDRW51bVdvcmtpZEBAVUVBQUpLQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ01lbURlU2VyU3RyZWFtOjpTa2lwQmxvYih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NraXBCbG9iQENNZW1EZVNlclN0cmVhbUBAVUVBQVhLQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ01lbURlU2VyU3RyZWFtOjpTa2lwQnl0ZSh2b2lkKSBfX3B0cjY0DQorP1NraXBCeXRlQENNZW1EZVNlclN0cmVhbUBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDTWVtRGVTZXJTdHJlYW06OlNraXBDaGFyKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2tpcENoYXJAQ01lbURlU2VyU3RyZWFtQEBVRUFBWEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDTWVtRGVTZXJTdHJlYW06OlNraXBEb3VibGUodm9pZCkgX19wdHI2NA0KKz9Ta2lwRG91YmxlQENNZW1EZVNlclN0cmVhbUBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDTWVtRGVTZXJTdHJlYW06OlNraXBGbG9hdCh2b2lkKSBfX3B0cjY0DQorP1NraXBGbG9hdEBDTWVtRGVTZXJTdHJlYW1AQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ01lbURlU2VyU3RyZWFtOjpTa2lwR1VJRCh2b2lkKSBfX3B0cjY0DQorP1NraXBHVUlEQENNZW1EZVNlclN0cmVhbUBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDTWVtRGVTZXJTdHJlYW06OlNraXBMb25nKHZvaWQpIF9fcHRyNjQNCis/U2tpcExvbmdAQ01lbURlU2VyU3RyZWFtQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENNZW1EZVNlclN0cmVhbTo6U2tpcFVMb25nKHZvaWQpIF9fcHRyNjQNCis/U2tpcFVMb25nQENNZW1EZVNlclN0cmVhbUBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDTWVtRGVTZXJTdHJlYW06OlNraXBVU2hvcnQodm9pZCkgX19wdHI2NA0KKz9Ta2lwVVNob3J0QENNZW1EZVNlclN0cmVhbUBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDTWVtRGVTZXJTdHJlYW06OlNraXBXQ2hhcih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NraXBXQ2hhckBDTWVtRGVTZXJTdHJlYW1AQFVFQUFYS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDYXRhbG9nQWRtaW46OlN0YXJ0KHZvaWQpIF9fcHRyNjQNCis/U3RhcnRAQ0NhdGFsb2dBZG1pbkBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTWFjaGluZUFkbWluOjpTdGFydENJKHZvaWQpIF9fcHRyNjQNCis/U3RhcnRDSUBDTWFjaGluZUFkbWluQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDYXRhbG9nQWRtaW46OlN0b3Aodm9pZCkgX19wdHI2NA0KKz9TdG9wQENDYXRhbG9nQWRtaW5AQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ01hY2hpbmVBZG1pbjo6U3RvcENJKHZvaWQpIF9fcHRyNjQNCis/U3RvcENJQENNYWNoaW5lQWRtaW5AQFFFQUFIWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGaWx0ZXJEYWVtb246OlN0b3BGaWx0ZXJpbmcodm9pZCkgX19wdHI2NA0KKz9TdG9wRmlsdGVyaW5nQENGaWx0ZXJEYWVtb25AQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgQ0tleTo6U3RyTGVuKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U3RyTGVuQENLZXlAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgQ0tleUJ1Zjo6U3RyTGVuKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U3RyTGVuQENLZXlCdWZAQFFFQkFJWFoNCis7IHZvaWQgX19jZGVjbCBTeXN0ZW1FeGNlcHRpb25UcmFuc2xhdG9yKHVuc2lnbmVkIGludCxzdHJ1Y3QgX0VYQ0VQVElPTl9QT0lOVEVSUyAqIF9fcHRyNjQpDQorP1N5c3RlbUV4Y2VwdGlvblRyYW5zbGF0b3JAQFlBWElQRUFVX0VYQ0VQVElPTl9QT0lOVEVSU0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENSZXN0cmljdGlvbjo6VHJlZUNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/VHJlZUNvdW50QENSZXN0cmljdGlvbkBAUUVCQUtYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01hY2hpbmVBZG1pbjo6VHVuZVBlcmZvcm1hbmNlKGludCx1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9UdW5lUGVyZm9ybWFuY2VAQ01hY2hpbmVBZG1pbkBAUUVBQVhIR0dAWg0KKzsgdm9pZCBfX2NkZWNsIFVSTEVzY2FwZVcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIENWaXJ0dWFsU3RyaW5nICYgX19wdHI2NCx1bnNpZ25lZCBsb25nLGludCkNCis/VVJMRXNjYXBlV0BAWUFYUEVCR0FFQVZDVmlydHVhbFN0cmluZ0BAS0hAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGJQcm9wZXJ0aWVzOjpVbk1hcnNoYWxsKGNsYXNzIFBEZVNlclN0cmVhbSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/VW5NYXJzaGFsbEBDRGJQcm9wZXJ0aWVzQEBRRUFBSEFFQVZQRGVTZXJTdHJlYW1AQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBDUmVzdHJpY3Rpb24gKiBfX3B0cjY0IF9fY2RlY2wgQ1Jlc3RyaWN0aW9uOjpVbk1hcnNoYWxsKGNsYXNzIFBEZVNlclN0cmVhbSAmIF9fcHRyNjQpDQorP1VuTWFyc2hhbGxAQ1Jlc3RyaWN0aW9uQEBTQVBFQVYxQEFFQVZQRGVTZXJTdHJlYW1AQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBDRGJDbWRUcmVlTm9kZSAqIF9fcHRyNjQgX19jZGVjbCBDRGJDbWRUcmVlTm9kZTo6VW5NYXJzaGFsbFRyZWUoY2xhc3MgUERlU2VyU3RyZWFtICYgX19wdHI2NCkNCis/VW5NYXJzaGFsbFRyZWVAQ0RiQ21kVHJlZU5vZGVAQFNBUEVBVjFAQUVBVlBEZVNlclN0cmVhbUBAQFoNCis7IHZvaWQgX19jZGVjbCBVblBpY2tsZShpbnQsY2xhc3MgWFB0cjxjbGFzcyBDQ29sdW1uU2V0PiAmIF9fcHRyNjQsY2xhc3MgWFB0cjxjbGFzcyBDUmVzdHJpY3Rpb24+ICYgX19wdHI2NCxjbGFzcyBYUHRyPGNsYXNzIENTb3J0U2V0PiAmIF9fcHRyNjQsY2xhc3MgWFB0cjxjbGFzcyBDQ2F0ZWdvcml6YXRpb25TZXQ+ICYgX19wdHI2NCxjbGFzcyBDUm93c2V0UHJvcGVydGllcyAmIF9fcHRyNjQsY2xhc3MgWFB0cjxjbGFzcyBDUGlkTWFwcGVyPiAmIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykNCis/VW5QaWNrbGVAQFlBWEhBRUFWPyRYUHRyQFZDQ29sdW1uU2V0QEBAQEFFQVY/JFhQdHJAVkNSZXN0cmljdGlvbkBAQEBBRUFWPyRYUHRyQFZDU29ydFNldEBAQEBBRUFWPyRYUHRyQFZDQ2F0ZWdvcml6YXRpb25TZXRAQEBAQUVBVkNSb3dzZXRQcm9wZXJ0aWVzQEBBRUFWPyRYUHRyQFZDUGlkTWFwcGVyQEBAQFBFQUVLQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENSY292U3RybVRyYW5zOjpVbm1hcChlbnVtIENSY292U3RvcmFnZUhkcjo6RGF0YUNvcHlOdW0pIF9fcHRyNjQNCis/VW5tYXBAQ1Jjb3ZTdHJtVHJhbnNAQElFQUFYVzREYXRhQ29weU51bUBDUmNvdlN0b3JhZ2VIZHJAQEBaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgVXBkYXRlQ29udGVudEluZGV4KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkNCis/VXBkYXRlQ29udGVudEluZGV4QEBZQUtQRUJHMDBIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENEaXNrRnJlZVN0YXR1czo6VXBkYXRlRGlza0xvd0luZm8odm9pZCkgX19wdHI2NA0KKz9VcGRhdGVEaXNrTG93SW5mb0BDRGlza0ZyZWVTdGF0dXNAQFFFQUFYWFoNCis7IGludCBfX2NkZWNsIFZUX1ZBUklBTlRfRVEoc3RydWN0IHRhZ1BST1BWQVJJQU5UIGNvbnN0ICYgX19wdHI2NCxzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgY29uc3QgJiBfX3B0cjY0KQ0KKz9WVF9WQVJJQU5UX0VRQEBZQUhBRUJVdGFnUFJPUFZBUklBTlRAQDBAWg0KKzsgaW50IF9fY2RlY2wgVlRfVkFSSUFOVF9HRShzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgY29uc3QgJiBfX3B0cjY0LHN0cnVjdCB0YWdQUk9QVkFSSUFOVCBjb25zdCAmIF9fcHRyNjQpDQorP1ZUX1ZBUklBTlRfR0VAQFlBSEFFQlV0YWdQUk9QVkFSSUFOVEBAMEBaDQorOyBpbnQgX19jZGVjbCBWVF9WQVJJQU5UX0dUKHN0cnVjdCB0YWdQUk9QVkFSSUFOVCBjb25zdCAmIF9fcHRyNjQsc3RydWN0IHRhZ1BST1BWQVJJQU5UIGNvbnN0ICYgX19wdHI2NCkNCis/VlRfVkFSSUFOVF9HVEBAWUFIQUVCVXRhZ1BST1BWQVJJQU5UQEAwQFoNCis7IGludCBfX2NkZWNsIFZUX1ZBUklBTlRfTEUoc3RydWN0IHRhZ1BST1BWQVJJQU5UIGNvbnN0ICYgX19wdHI2NCxzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgY29uc3QgJiBfX3B0cjY0KQ0KKz9WVF9WQVJJQU5UX0xFQEBZQUhBRUJVdGFnUFJPUFZBUklBTlRAQDBAWg0KKzsgaW50IF9fY2RlY2wgVlRfVkFSSUFOVF9MVChzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgY29uc3QgJiBfX3B0cjY0LHN0cnVjdCB0YWdQUk9QVkFSSUFOVCBjb25zdCAmIF9fcHRyNjQpDQorP1ZUX1ZBUklBTlRfTFRAQFlBSEFFQlV0YWdQUk9QVkFSSUFOVEBAMEBaDQorOyBpbnQgX19jZGVjbCBWVF9WQVJJQU5UX05FKHN0cnVjdCB0YWdQUk9QVkFSSUFOVCBjb25zdCAmIF9fcHRyNjQsc3RydWN0IHRhZ1BST1BWQVJJQU5UIGNvbnN0ICYgX19wdHI2NCkNCis/VlRfVkFSSUFOVF9ORUBAWUFIQUVCVXRhZ1BST1BWQVJJQU5UQEAwQFoNCis7IGludCBfX2NkZWNsIFZhbGlkYXRlU2NvcGVSZXN0cmljdGlvbihjbGFzcyBDUmVzdHJpY3Rpb24gKiBfX3B0cjY0KQ0KKz9WYWxpZGF0ZVNjb3BlUmVzdHJpY3Rpb25AQFlBSFBFQVZDUmVzdHJpY3Rpb25AQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQUmNvdlN0b3JhZ2VPYmo6OlZlcmlmeUNvbnNpc3RlbmN5KHZvaWQpIF9fcHRyNjQNCis/VmVyaWZ5Q29uc2lzdGVuY3lAUFJjb3ZTdG9yYWdlT2JqQEBRRUFBWFhaDQorOyB2b2lkIF9fY2RlY2wgVmVyaWZ5VGhyZWFkSGFzQWRtaW5Qcml2aWxlZ2Uodm9pZCkNCis/VmVyaWZ5VGhyZWFkSGFzQWRtaW5Qcml2aWxlZ2VAQFlBWFhaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgV2lkZUNoYXJUb1hBcnJheU11bHRpQnl0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBpbnQsY2xhc3MgWEFycmF5PHVuc2lnbmVkIGNoYXI+ICYgX19wdHI2NCkNCis/V2lkZUNoYXJUb1hBcnJheU11bHRpQnl0ZUBAWUFLUEVCR0tJQUVBVj8kWEFycmF5QEVAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRHluU3RyZWFtOjpXcml0ZSh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1dyaXRlQENEeW5TdHJlYW1AQFFFQUFYUEVBWEtAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ1Jjb3ZTdHJtVHJhbnM6OldyaXRlKHZvaWQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/V3JpdGVAQ1Jjb3ZTdHJtVHJhbnNAQElFQUFYUEVCWEtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1Byb3BTdG9yZU1hbmFnZXI6OldyaXRlUHJpbWFyeVByb3BlcnR5KGNsYXNzIENDb21wb3NpdGVQcm9wUmVjb3JkRm9yV3JpdGVzICYgX19wdHI2NCx1bnNpZ25lZCBsb25nLGNsYXNzIENTdG9yYWdlVmFyaWFudCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/V3JpdGVQcmltYXJ5UHJvcGVydHlAQ1Byb3BTdG9yZU1hbmFnZXJAQFFFQUFKQUVBVkNDb21wb3NpdGVQcm9wUmVjb3JkRm9yV3JpdGVzQEBLQUVCVkNTdG9yYWdlVmFyaWFudEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENQcm9wU3RvcmVNYW5hZ2VyOjpXcml0ZVByaW1hcnlQcm9wZXJ0eSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsY2xhc3MgQ1N0b3JhZ2VWYXJpYW50IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Xcml0ZVByaW1hcnlQcm9wZXJ0eUBDUHJvcFN0b3JlTWFuYWdlckBAUUVBQUpLS0FFQlZDU3RvcmFnZVZhcmlhbnRAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDUHJvcFN0b3JlTWFuYWdlcjo6V3JpdGVQcm9wZXJ0eShjbGFzcyBDQ29tcG9zaXRlUHJvcFJlY29yZEZvcldyaXRlcyAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxjbGFzcyBDU3RvcmFnZVZhcmlhbnQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1dyaXRlUHJvcGVydHlAQ1Byb3BTdG9yZU1hbmFnZXJAQFFFQUFKQUVBVkNDb21wb3NpdGVQcm9wUmVjb3JkRm9yV3JpdGVzQEBLQUVCVkNTdG9yYWdlVmFyaWFudEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENQcm9wU3RvcmVNYW5hZ2VyOjpXcml0ZVByb3BlcnR5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBDU3RvcmFnZVZhcmlhbnQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1dyaXRlUHJvcGVydHlAQ1Byb3BTdG9yZU1hbmFnZXJAQFFFQUFKS0tBRUJWQ1N0b3JhZ2VWYXJpYW50QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1Byb3BTdG9yZU1hbmFnZXI6OldyaXRlUHJvcGVydHlJbk5ld1JlY29yZCh1bnNpZ25lZCBsb25nLGNsYXNzIENTdG9yYWdlVmFyaWFudCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/V3JpdGVQcm9wZXJ0eUluTmV3UmVjb3JkQENQcm9wU3RvcmVNYW5hZ2VyQEBRRUFBS0tBRUJWQ1N0b3JhZ2VWYXJpYW50QEBAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0RiUHJvamVjdExpc3RBbmNob3IgKiBfX3B0cjY0IF9fY2RlY2wgQ0RiTmVzdGluZ05vZGU6Ol9GaW5kR3JvdXBMaXN0QW5jaG9yKHZvaWQpIF9fcHRyNjQNCis/X0ZpbmRHcm91cExpc3RBbmNob3JAQ0RiTmVzdGluZ05vZGVAQEFFQUFQRUFWQ0RiUHJvamVjdExpc3RBbmNob3JAQFhaDQorOyBwcml2YXRlOiBjbGFzcyBDRGJQcm9qZWN0TGlzdEFuY2hvciAqIF9fcHRyNjQgX19jZGVjbCBDRGJQcm9qZWN0Tm9kZTo6X0ZpbmRPckFkZEFuY2hvcih2b2lkKSBfX3B0cjY0DQorP19GaW5kT3JBZGRBbmNob3JAQ0RiUHJvamVjdE5vZGVAQEFFQUFQRUFWQ0RiUHJvamVjdExpc3RBbmNob3JAQFhaDQorOyBwcml2YXRlOiBjbGFzcyBDRGJTb3J0TGlzdEFuY2hvciAqIF9fcHRyNjQgX19jZGVjbCBDRGJTb3J0Tm9kZTo6X0ZpbmRPckFkZEFuY2hvcih2b2lkKSBfX3B0cjY0DQorP19GaW5kT3JBZGRBbmNob3JAQ0RiU29ydE5vZGVAQEFFQUFQRUFWQ0RiU29ydExpc3RBbmNob3JAQFhaDQorOyBwcml2YXRlOiBjbGFzcyBDRGJTY2FsYXJWYWx1ZSAqIF9fcHRyNjQgX19jZGVjbCBDRGJQcm9wZXJ0eVJlc3RyaWN0aW9uOjpfRmluZE9yQWRkVmFsdWVOb2RlKHZvaWQpIF9fcHRyNjQNCis/X0ZpbmRPckFkZFZhbHVlTm9kZUBDRGJQcm9wZXJ0eVJlc3RyaWN0aW9uQEBBRUFBUEVBVkNEYlNjYWxhclZhbHVlQEBYWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgQ0ltcGVyc29uYXRlUmVtb3RlQWNjZXNzOjpfSW1wZXJzb25hdGVJZih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/X0ltcGVyc29uYXRlSWZAQ0ltcGVyc29uYXRlUmVtb3RlQWNjZXNzQEBBRUFBSFBFQkcwS0BaDQorOyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgX3djc3RvdWk2NCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCxpbnQpDQorP193Y3N0b3VpNjRAQFlBX0tQRUJHUEVBUEVBR0hAWg0KKzsgdm9pZCBfX2NkZWNsIGNpRGVsZXRlKHZvaWQgKiBfX3B0cjY0KQ0KKz9jaURlbGV0ZUBAWUFYUEVBWEBaDQorOyBpbnQgX19jZGVjbCBjaUlzVmFsaWRQb2ludGVyKHZvaWQgY29uc3QgKiBfX3B0cjY0KQ0KKz9jaUlzVmFsaWRQb2ludGVyQEBZQUhQRUJYQFoNCis7IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgY2lOZXcodW5zaWduZWQgX19pbnQ2NCkNCis/Y2lOZXdAQFlBUEVBWF9LQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENGaWxlQnVmZmVyOjpmZ2V0c3coY2xhc3MgWEdyb3dhYmxlPHVuc2lnbmVkIHNob3J0LDI2MD4gJiBfX3B0cjY0KSBfX3B0cjY0DQorP2ZnZXRzd0BDRmlsZUJ1ZmZlckBAUUVBQUtBRUFWPyRYR3Jvd2FibGVARyQwQkFFQEBAQFoNCis7IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIHdjc2lwYXR0ZXJuKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP3djc2lwYXR0ZXJuQEBZQVBFQUdQRUFHUEVCR0BaDQorQWJvcnRNZXJnZXMNCitCZWdpbkNhY2hlVHJhbnNhY3Rpb24NCitCaW5kSUZpbHRlckZyb21TdG9yYWdlDQorQmluZElGaWx0ZXJGcm9tU3RyZWFtDQorQ0lCdWlsZFF1ZXJ5Tm9kZQ0KK0NJQnVpbGRRdWVyeVRyZWUNCitDSUNyZWF0ZUNvbW1hbmQNCitDSUdldEdsb2JhbFByb3BlcnR5TGlzdA0KK0NJTWFrZUlDb21tYW5kDQorQ0lSZXN0cmljdGlvblRvRnVsbFRyZWUNCitDSVN0YXRlDQorQ0lUZXh0VG9GdWxsVHJlZQ0KK0NJVGV4dFRvRnVsbFRyZWVFeA0KK0NJVGV4dFRvU2VsZWN0VHJlZQ0KK0NJVGV4dFRvU2VsZWN0VHJlZUV4DQorQ2lTdmNNYWluDQorQ29sbGVjdENJSVNBUElQZXJmb3JtYW5jZURhdGENCitDb2xsZWN0Q0lQZXJmb3JtYW5jZURhdGENCitDb2xsZWN0RklMVEVSUGVyZm9ybWFuY2VEYXRhDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitEb25lQ0lJU0FQSVBlcmZvcm1hbmNlRGF0YQ0KK0RvbmVDSVBlcmZvcm1hbmNlRGF0YQ0KK0RvbmVGSUxURVJQZXJmb3JtYW5jZURhdGENCitFbmRDYWNoZVRyYW5zYWN0aW9uDQorRm9yY2VNYXN0ZXJNZXJnZQ0KK0luaXRpYWxpemVDSUlTQVBJUGVyZm9ybWFuY2VEYXRhDQorSW5pdGlhbGl6ZUNJUGVyZm9ybWFuY2VEYXRhDQorSW5pdGlhbGl6ZUZJTFRFUlBlcmZvcm1hbmNlRGF0YQ0KK0xvYWRCSElGaWx0ZXINCitMb2FkQmluYXJ5RmlsdGVyDQorTG9hZElGaWx0ZXINCitMb2FkSUZpbHRlckV4DQorTG9hZFRleHRGaWx0ZXINCitMb2NhdGVDYXRhbG9ncw0KK0xvY2F0ZUNhdGFsb2dzQQ0KK0xvY2F0ZUNhdGFsb2dzVw0KK1NldENhdGFsb2dTdGF0ZQ0KK1NldHVwQ2FjaGUNCitTZXR1cENhY2hlRXgNCitTdGFydEZXQ2lTdmNXb3JrDQorU3RvcEZXQ2lTdmNXb3JrDQorU3ZjRW50cnlfQ2lTdmMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9yYWNwbGRsZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9yYWNwbGRsZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2ZmNDVjMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3JhY3BsZGxnLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFJBc3Npc3RhbmNlLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBSQXNzaXN0YW5jZS5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9yYXNhZGhscC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9yYXNhZGhscC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTg1MTk3ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3Jhc2FkaGxwLmRlZgpAQCAtMCwwICsxLDE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHJhc2FkaGxwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSByYXNhZGhscC5kbGwNCitFWFBPUlRTDQorQWNzSGxwQXR0ZW1wdENvbm5lY3Rpb24NCitBY3NIbHBOYkNvbm5lY3Rpb24NCitBY3NIbHBOb3RlTmV3Q29ubmVjdGlvbg0KK1dTQXR0ZW1wdEF1dG9kaWFsQWRkcg0KK1dTQXR0ZW1wdEF1dG9kaWFsTmFtZQ0KK1dTTm90ZVN1Y2Nlc3NmdWxIb3N0ZW50TG9va3VwDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcmFzYXBpMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcmFzYXBpMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUxMDYxOTYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9yYXNhcGkzMi5kZWYKQEAgLTAsMCArMSwxNTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUkFTQVBJMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFJBU0FQSTMyLmRsbA0KK0VYUE9SVFMNCitERE1GcmVlUGhvbmVib29rQ29udGV4dA0KK0RETUdldFBob25lYm9va0luZm8NCitEd0Nsb25lRW50cnkNCitEd0RlbGV0ZVN1YkVudHJ5DQorRHdFbnVtRW50cmllc0ZvckFsbFVzZXJzDQorRHdFbnVtRW50cnlEZXRhaWxzDQorRHdSYXNVbmluaXRpYWxpemUNCitSYXNBdXRvRGlhbFNoYXJlZENvbm5lY3Rpb24NCitSYXNBdXRvZGlhbEFkZHJlc3NUb05ldHdvcmsNCitSYXNBdXRvZGlhbEVudHJ5VG9OZXR3b3JrDQorUmFzQ2xlYXJDb25uZWN0aW9uU3RhdGlzdGljcw0KK1Jhc0NsZWFyTGlua1N0YXRpc3RpY3MNCitSYXNDb25uZWN0aW9uTm90aWZpY2F0aW9uQQ0KK1Jhc0Nvbm5lY3Rpb25Ob3RpZmljYXRpb25XDQorUmFzQ3JlYXRlUGhvbmVib29rRW50cnlBDQorUmFzQ3JlYXRlUGhvbmVib29rRW50cnlXDQorUmFzRGVsZXRlRW50cnlBDQorUmFzRGVsZXRlRW50cnlXDQorUmFzRGVsZXRlU3ViRW50cnlBDQorUmFzRGVsZXRlU3ViRW50cnlXDQorUmFzRGlhbEENCitSYXNEaWFsVw0KK1Jhc0RpYWxXb3cNCitSYXNFZGl0UGhvbmVib29rRW50cnlBDQorUmFzRWRpdFBob25lYm9va0VudHJ5Vw0KK1Jhc0VudW1BdXRvZGlhbEFkZHJlc3Nlc0ENCitSYXNFbnVtQXV0b2RpYWxBZGRyZXNzZXNXDQorUmFzRW51bUNvbm5lY3Rpb25zQQ0KK1Jhc0VudW1Db25uZWN0aW9uc1cNCitSYXNFbnVtQ29ubmVjdGlvbnNXb3cNCitSYXNFbnVtRGV2aWNlc0ENCitSYXNFbnVtRGV2aWNlc1cNCitSYXNFbnVtRW50cmllc0ENCitSYXNFbnVtRW50cmllc1cNCitSYXNFbnVtRW50cmllc1dvdw0KK1Jhc0ZyZWVFYXBVc2VySWRlbnRpdHlBDQorUmFzRnJlZUVhcFVzZXJJZGVudGl0eVcNCitSYXNHZXRBdXRvZGlhbEFkZHJlc3NBDQorUmFzR2V0QXV0b2RpYWxBZGRyZXNzVw0KK1Jhc0dldEF1dG9kaWFsRW5hYmxlQQ0KK1Jhc0dldEF1dG9kaWFsRW5hYmxlVw0KK1Jhc0dldEF1dG9kaWFsUGFyYW1BDQorUmFzR2V0QXV0b2RpYWxQYXJhbVcNCitSYXNHZXRDb25uZWN0UmVzcG9uc2UNCitSYXNHZXRDb25uZWN0U3RhdHVzQQ0KK1Jhc0dldENvbm5lY3RTdGF0dXNXDQorUmFzR2V0Q29ubmVjdFN0YXR1c1dvdw0KK1Jhc0dldENvbm5lY3Rpb25TdGF0aXN0aWNzDQorUmFzR2V0Q291bnRyeUluZm9BDQorUmFzR2V0Q291bnRyeUluZm9XDQorUmFzR2V0Q3JlZGVudGlhbHNBDQorUmFzR2V0Q3JlZGVudGlhbHNXDQorUmFzR2V0Q3VzdG9tQXV0aERhdGFBDQorUmFzR2V0Q3VzdG9tQXV0aERhdGFXDQorUmFzR2V0RWFwVXNlckRhdGFBDQorUmFzR2V0RWFwVXNlckRhdGFXDQorUmFzR2V0RWFwVXNlcklkZW50aXR5QQ0KK1Jhc0dldEVhcFVzZXJJZGVudGl0eVcNCitSYXNHZXRFbnRyeURpYWxQYXJhbXNBDQorUmFzR2V0RW50cnlEaWFsUGFyYW1zVw0KK1Jhc0dldEVudHJ5SHJhc2Nvbm5BDQorUmFzR2V0RW50cnlIcmFzY29ublcNCitSYXNHZXRFbnRyeVByb3BlcnRpZXNBDQorUmFzR2V0RW50cnlQcm9wZXJ0aWVzVw0KK1Jhc0dldEVycm9yU3RyaW5nQQ0KK1Jhc0dldEVycm9yU3RyaW5nVw0KK1Jhc0dldEVycm9yU3RyaW5nV293DQorUmFzR2V0SHBvcnQNCitSYXNHZXRMaW5rU3RhdGlzdGljcw0KK1Jhc0dldFByb2plY3Rpb25JbmZvQQ0KK1Jhc0dldFByb2plY3Rpb25JbmZvVw0KK1Jhc0dldFN1YkVudHJ5SGFuZGxlQQ0KK1Jhc0dldFN1YkVudHJ5SGFuZGxlVw0KK1Jhc0dldFN1YkVudHJ5UHJvcGVydGllc0ENCitSYXNHZXRTdWJFbnRyeVByb3BlcnRpZXNXDQorUmFzSGFuZ1VwQQ0KK1Jhc0hhbmdVcFcNCitSYXNIYW5nVXBXb3cNCitSYXNJbnZva2VFYXBVSQ0KK1Jhc0lzUm91dGVyQ29ubmVjdGlvbg0KK1Jhc0lzU2hhcmVkQ29ubmVjdGlvbg0KK1Jhc1F1ZXJ5UmVkaWFsT25MaW5rRmFpbHVyZQ0KK1Jhc1F1ZXJ5U2hhcmVkQXV0b0RpYWwNCitSYXNRdWVyeVNoYXJlZENvbm5lY3Rpb24NCitSYXNSZW5hbWVFbnRyeUENCitSYXNSZW5hbWVFbnRyeVcNCitSYXNTY3JpcHRFeGVjdXRlDQorUmFzU2NyaXB0R2V0RXZlbnRDb2RlDQorUmFzU2NyaXB0R2V0SXBBZGRyZXNzDQorUmFzU2NyaXB0SW5pdA0KK1Jhc1NjcmlwdFJlY2VpdmUNCitSYXNTY3JpcHRTZW5kDQorUmFzU2NyaXB0VGVybQ0KK1Jhc1NldEF1dG9kaWFsQWRkcmVzc0ENCitSYXNTZXRBdXRvZGlhbEFkZHJlc3NXDQorUmFzU2V0QXV0b2RpYWxFbmFibGVBDQorUmFzU2V0QXV0b2RpYWxFbmFibGVXDQorUmFzU2V0QXV0b2RpYWxQYXJhbUENCitSYXNTZXRBdXRvZGlhbFBhcmFtVw0KK1Jhc1NldENyZWRlbnRpYWxzQQ0KK1Jhc1NldENyZWRlbnRpYWxzVw0KK1Jhc1NldEN1c3RvbUF1dGhEYXRhQQ0KK1Jhc1NldEN1c3RvbUF1dGhEYXRhVw0KK1Jhc1NldEVhcFVzZXJEYXRhQQ0KK1Jhc1NldEVhcFVzZXJEYXRhVw0KK1Jhc1NldEVudHJ5RGlhbFBhcmFtc0ENCitSYXNTZXRFbnRyeURpYWxQYXJhbXNXDQorUmFzU2V0RW50cnlQcm9wZXJ0aWVzQQ0KK1Jhc1NldEVudHJ5UHJvcGVydGllc1cNCitSYXNTZXRPbGRQYXNzd29yZA0KK1Jhc1NldFNoYXJlZEF1dG9EaWFsDQorUmFzU2V0U3ViRW50cnlQcm9wZXJ0aWVzQQ0KK1Jhc1NldFN1YkVudHJ5UHJvcGVydGllc1cNCitSYXNWYWxpZGF0ZUVudHJ5TmFtZUENCitSYXNWYWxpZGF0ZUVudHJ5TmFtZVcNCitSYXNmaWxlQ2xvc2UNCitSYXNmaWxlRGVsZXRlTGluZQ0KK1Jhc2ZpbGVGaW5kRmlyc3RMaW5lDQorUmFzZmlsZUZpbmRMYXN0TGluZQ0KK1Jhc2ZpbGVGaW5kTWFya2VkTGluZQ0KK1Jhc2ZpbGVGaW5kTmV4dEtleUxpbmUNCitSYXNmaWxlRmluZE5leHRMaW5lDQorUmFzZmlsZUZpbmRQcmV2TGluZQ0KK1Jhc2ZpbGVGaW5kU2VjdGlvbkxpbmUNCitSYXNmaWxlR2V0S2V5VmFsdWVGaWVsZHMNCitSYXNmaWxlR2V0TGluZQ0KK1Jhc2ZpbGVHZXRMaW5lTWFyaw0KK1Jhc2ZpbGVHZXRMaW5lVGV4dA0KK1Jhc2ZpbGVHZXRMaW5lVHlwZQ0KK1Jhc2ZpbGVHZXRTZWN0aW9uTmFtZQ0KK1Jhc2ZpbGVJbnNlcnRMaW5lDQorUmFzZmlsZUxvYWQNCitSYXNmaWxlTG9hZEV4DQorUmFzZmlsZUxvYWRJbmZvDQorUmFzZmlsZVB1dEtleVZhbHVlRmllbGRzDQorUmFzZmlsZVB1dExpbmVNYXJrDQorUmFzZmlsZVB1dExpbmVUZXh0DQorUmFzZmlsZVB1dFNlY3Rpb25OYW1lDQorUmFzZmlsZVdyaXRlDQorU2hhcmVkQWNjZXNzUmVzcG9uc2VMaXN0VG9TdHJpbmcNCitTaGFyZWRBY2Nlc3NSZXNwb25zZVN0cmluZ1RvTGlzdA0KK1VuSW5pdGlhbGl6ZVJBUw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3Jhc2F1dG8uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcmFzYXV0by5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2QyMWE4ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3Jhc2F1dG8uZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcmFzYXV0by5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcmFzYXV0by5kbGwNCitFWFBPUlRTDQorU2VydmljZU1haW4NCitTZXRBZGRyZXNzRGlzYWJsZWRFeA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3Jhc2NoYXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcmFzY2hhcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDk0NzQ3YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3Jhc2NoYXAuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUkFTQ0hBUC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUkFTQ0hBUC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitSYXNDcEVudW1Qcm90b2NvbElkcw0KK1Jhc0NwR2V0SW5mbw0KK1Jhc0VhcENyZWF0ZUNvbm5lY3Rpb25Qcm9wZXJ0aWVzDQorUmFzRWFwQ3JlYXRlVXNlclByb3BlcnRpZXMNCitSYXNFYXBGcmVlTWVtb3J5DQorUmFzRWFwR2V0Q3JlZGVudGlhbHMNCitSYXNFYXBHZXRJZGVudGl0eQ0KK1Jhc0VhcEdldEluZm8NCitSYXNFYXBJbnZva2VDb25maWdVSQ0KK1Jhc0VhcEludm9rZUludGVyYWN0aXZlVUkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9yYXNjdHJzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3Jhc2N0cnMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAzODNiMjQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9yYXNjdHJzLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHJhc2N0cnMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHJhc2N0cnMuZGxsDQorRVhQT1JUUw0KK09wZW5SYXNQZXJmb3JtYW5jZURhdGENCitDb2xsZWN0UmFzUGVyZm9ybWFuY2VEYXRhDQorQ2xvc2VSYXNQZXJmb3JtYW5jZURhdGENCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9yYXNkbGcuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcmFzZGxnLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41ODkyZDRkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcmFzZGxnLmRlZgpAQCAtMCwwICsxLDQ1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFJBU0RMRy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUkFTRExHLmRsbA0KK0VYUE9SVFMNCitEd1Rlcm1pbmFsRGxnDQorR2V0UmFzRGlhbE91dFByb3RvY29scw0KK1Jhc0F1dG9kaWFsRGlzYWJsZURsZ0ENCitSYXNBdXRvZGlhbERpc2FibGVEbGdXDQorUmFzQXV0b2RpYWxRdWVyeURsZ0ENCitSYXNBdXRvZGlhbFF1ZXJ5RGxnVw0KK1Jhc0RpYWxEbGdBDQorUmFzRGlhbERsZ1cNCitSYXNFbnRyeURsZ0ENCitSYXNFbnRyeURsZ1cNCitSYXNNb25pdG9yRGxnQQ0KK1Jhc01vbml0b3JEbGdXDQorUmFzUGhvbmVib29rRGxnQQ0KK1Jhc1Bob25lYm9va0RsZ1cNCitSYXNTcnZBZGRQcm9wUGFnZXMNCitSYXNTcnZBZGRXaXpQYWdlcw0KK1Jhc1NydkFsbG93Q29ubmVjdGlvbnNDb25maWcNCitSYXNTcnZDbGVhbnVwU2VydmljZQ0KK1Jhc1NydkVudW1Db25uZWN0aW9ucw0KK1Jhc1Nydkhhbmd1cENvbm5lY3Rpb24NCitSYXNTcnZJbml0aWFsaXplU2VydmljZQ0KK1Jhc1NydklzQ29ubmVjdGlvbkNvbm5lY3RlZA0KK1Jhc1NydklzSUNDb25maWd1cmVkDQorUmFzU3J2SXNTZXJ2aWNlUnVubmluZw0KK1Jhc1NydlF1ZXJ5U2hvd0ljb24NCitSYXNVc2VyRW5hYmxlTWFudWFsRGlhbA0KK1Jhc1VzZXJHZXRNYW51YWxEaWFsDQorUmFzVXNlclByZWZzRGxnDQorUmFzV2l6Q3JlYXRlTmV3RW50cnkNCitSYXNXaXpHZXROQ0NGbGFncw0KK1Jhc1dpekdldFN1Z2dlc3RlZEVudHJ5TmFtZQ0KK1Jhc1dpekdldFVzZXJJbnB1dENvbm5lY3Rpb25OYW1lDQorUmFzV2l6SXNFbnRyeVJlbmFtYWJsZQ0KK1Jhc1dpelF1ZXJ5TWF4UGFnZUNvdW50DQorUmFzV2l6U2V0RW50cnlOYW1lDQorUm91dGVyRW50cnlEbGdBDQorUm91dGVyRW50cnlEbGdXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcmFzbWFuLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3Jhc21hbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWI1MjlmNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3Jhc21hbi5kZWYKQEAgLTAsMCArMSwxNzAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcmFzbWFuLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSByYXNtYW4uZGxsDQorRVhQT1JUUw0KK0R3UmFzR2V0SG9zdEJ5TmFtZQ0KK0lzUmFzbWFuUHJvY2Vzcw0KK1Jhc0FjdGl2YXRlUm91dGUNCitSYXNBY3RpdmF0ZVJvdXRlRXgNCitSYXNBZGRDb25uZWN0aW9uUG9ydA0KK1Jhc0FkZE5vdGlmaWNhdGlvbg0KK1Jhc0FsbG9jYXRlUm91dGUNCitSYXNCdW5kbGVDbGVhclN0YXRpc3RpY3MNCitSYXNCdW5kbGVDbGVhclN0YXRpc3RpY3NFeA0KK1Jhc0J1bmRsZUdldFBvcnQNCitSYXNCdW5kbGVHZXRTdGF0aXN0aWNzDQorUmFzQnVuZGxlR2V0U3RhdGlzdGljc0V4DQorUmFzQ29tcHJlc3Npb25HZXRJbmZvDQorUmFzQ29tcHJlc3Npb25TZXRJbmZvDQorUmFzQ29ubmVjdGlvbkVudW0NCitSYXNDb25uZWN0aW9uR2V0U3RhdGlzdGljcw0KK1Jhc0NyZWF0ZUNvbm5lY3Rpb24NCitSYXNEZUFsbG9jYXRlUm91dGUNCitSYXNEZXN0cm95Q29ubmVjdGlvbg0KK1Jhc0RldmljZUNvbm5lY3QNCitSYXNEZXZpY2VFbnVtDQorUmFzRGV2aWNlR2V0SW5mbw0KK1Jhc0RldmljZVNldEluZm8NCitSYXNEb0lrZQ0KK1Jhc0VuYWJsZUlwU2VjDQorUmFzRW51bUNvbm5lY3Rpb25Qb3J0cw0KK1Jhc0VudW1MYW5OZXRzDQorUmFzRmluZFByZXJlcXVpc2l0ZUVudHJ5DQorUmFzRnJlZUJ1ZmZlcg0KK1Jhc0dldEJhbmR3aWR0aFV0aWxpemF0aW9uDQorUmFzR2V0QmVzdEludGVyZmFjZQ0KK1Jhc0dldEJ1ZmZlcg0KK1Jhc0dldENhbGxlZElkSW5mbw0KK1Jhc0dldENvbm5lY3RJbmZvDQorUmFzR2V0Q29ubmVjdGlvblBhcmFtcw0KK1Jhc0dldENvbm5lY3Rpb25Vc2VyRGF0YQ0KK1Jhc0dldEN1c3RvbVNjcmlwdERsbA0KK1Jhc0dldERldkNvbmZpZw0KK1Jhc0dldERldkNvbmZpZ0V4DQorUmFzR2V0RGV2aWNlQ29uZmlnSW5mbw0KK1Jhc0dldERldmljZU5hbWUNCitSYXNHZXREZXZpY2VOYW1lVw0KK1Jhc0dldERpYWxQYXJhbXMNCitSYXNHZXRFYXBVc2VySW5mbw0KK1Jhc0dldEZyYW1pbmdDYXBhYmlsaXRpZXMNCitSYXNHZXRIQ29ubkZyb21FbnRyeQ0KK1Jhc0dldEhwb3J0RnJvbUNvbm5lY3Rpb24NCitSYXNHZXRJbmZvDQorUmFzR2V0SW5mb0V4DQorUmFzR2V0S2V5DQorUmFzR2V0TmRpc3dhbkRyaXZlckNhcHMNCitSYXNHZXROdW1Qb3J0T3Blbg0KK1Jhc0dldFBvcnRVc2VyRGF0YQ0KK1Jhc0dldFByb3RvY29sSW5mbw0KK1Jhc0dldFRpbWVTaW5jZUxhc3RBY3Rpdml0eQ0KK1Jhc0dldFVuaWNvZGVEZXZpY2VOYW1lDQorUmFzR2V0VXNlckNyZWRlbnRpYWxzDQorUmFzSW5pdGlhbGl6ZQ0KK1Jhc0luaXRpYWxpemVOb1dhaXQNCitSYXNJc0lwU2VjRW5hYmxlZA0KK1Jhc0lzUHVsc2VEaWFsDQorUmFzSXNUcnVzdGVkQ3VzdG9tRGxsDQorUmFzTGlua0dldFN0YXRpc3RpY3MNCitSYXNQblBDb250cm9sDQorUmFzUG9ydEJ1bmRsZQ0KK1Jhc1BvcnRDYW5jZWxSZWNlaXZlDQorUmFzUG9ydENsZWFyU3RhdGlzdGljcw0KK1Jhc1BvcnRDbG9zZQ0KK1Jhc1BvcnRDb25uZWN0Q29tcGxldGUNCitSYXNQb3J0RGlzY29ubmVjdA0KK1Jhc1BvcnRFbnVtDQorUmFzUG9ydEVudW1Qcm90b2NvbHMNCitSYXNQb3J0RnJlZQ0KK1Jhc1BvcnRHZXRCdW5kbGUNCitSYXNQb3J0R2V0QnVuZGxlZFBvcnQNCitSYXNQb3J0R2V0RnJhbWluZ0V4DQorUmFzUG9ydEdldEluZm8NCitSYXNQb3J0R2V0UHJvdG9jb2xDb21wcmVzc2lvbg0KK1Jhc1BvcnRHZXRTdGF0aXN0aWNzDQorUmFzUG9ydEdldFN0YXRpc3RpY3NFeA0KK1Jhc1BvcnRMaXN0ZW4NCitSYXNQb3J0T3Blbg0KK1Jhc1BvcnRPcGVuRXgNCitSYXNQb3J0UmVjZWl2ZQ0KK1Jhc1BvcnRSZWNlaXZlRXgNCitSYXNQb3J0UmVnaXN0ZXJTbGlwDQorUmFzUG9ydFJlc2VydmUNCitSYXNQb3J0UmV0cmlldmVVc2VyRGF0YQ0KK1Jhc1BvcnRTZW5kDQorUmFzUG9ydFNldEZyYW1pbmcNCitSYXNQb3J0U2V0RnJhbWluZ0V4DQorUmFzUG9ydFNldEluZm8NCitSYXNQb3J0U2V0UHJvdG9jb2xDb21wcmVzc2lvbg0KK1Jhc1BvcnRTdG9yZVVzZXJEYXRhDQorUmFzUHBwQ2FsbGJhY2sNCitSYXNQcHBDaGFuZ2VQYXNzd29yZA0KK1Jhc1BwcEdldEVhcEluZm8NCitSYXNQcHBHZXRJbmZvDQorUmFzUHBwUmV0cnkNCitSYXNQcHBTZXRFYXBJbmZvDQorUmFzUHBwU3RhcnQNCitSYXNQcHBTdGFydGVkDQorUmFzUHBwU3RvcA0KK1Jhc1Byb3RvY29sRW51bQ0KK1Jhc1JQQ0JpbmQNCitSYXNSZWZDb25uZWN0aW9uDQorUmFzUmVmZXJlbmNlQ3VzdG9tQ291bnQNCitSYXNSZWZlcmVuY2VSYXNtYW4NCitSYXNSZWdpc3RlclBuUEV2ZW50DQorUmFzUmVnaXN0ZXJQblBIYW5kbGVyDQorUmFzUmVnaXN0ZXJSZWRpYWxDYWxsYmFjaw0KK1Jhc1JlcXVlc3ROb3RpZmljYXRpb24NCitSYXNScGNDb25uZWN0DQorUmFzUnBjQ29ubmVjdFNlcnZlcg0KK1Jhc1JwY0RlbGV0ZUVudHJ5DQorUmFzUnBjRGV2aWNlRW51bQ0KK1Jhc1JwY0Rpc2Nvbm5lY3QNCitSYXNScGNEaXNjb25uZWN0U2VydmVyDQorUmFzUnBjRW51bUNvbm5lY3Rpb25zDQorUmFzUnBjR2V0Q291bnRyeUluZm8NCitSYXNScGNHZXREZXZDb25maWcNCitSYXNScGNHZXRFcnJvclN0cmluZw0KK1Jhc1JwY0dldEluc3RhbGxlZFByb3RvY29scw0KK1Jhc1JwY0dldEluc3RhbGxlZFByb3RvY29sc0V4DQorUmFzUnBjR2V0U3lzdGVtRGlyZWN0b3J5DQorUmFzUnBjR2V0VXNlclByZWZlcmVuY2VzDQorUmFzUnBjR2V0VmVyc2lvbg0KK1Jhc1JwY1BvcnRFbnVtDQorUmFzUnBjUG9ydEdldEluZm8NCitSYXNScGNSZW1vdGVHZXRTeXN0ZW1EaXJlY3RvcnkNCitSYXNScGNSZW1vdGVHZXRVc2VyUHJlZmVyZW5jZXMNCitSYXNScGNSZW1vdGVSYXNEZWxldGVFbnRyeQ0KK1Jhc1JwY1JlbW90ZVNldFVzZXJQcmVmZXJlbmNlcw0KK1Jhc1JwY1NldFVzZXJQcmVmZXJlbmNlcw0KK1Jhc1JwY1VubG9hZERsbA0KK1Jhc1NlY3VyaXR5RGlhbG9nR2V0SW5mbw0KK1Jhc1NlY3VyaXR5RGlhbG9nUmVjZWl2ZQ0KK1Jhc1NlY3VyaXR5RGlhbG9nU2VuZA0KK1Jhc1NlbmRDcmVkcw0KK1Jhc1NlbmROb3RpZmljYXRpb24NCitSYXNTZW5kUHBwTWVzc2FnZVRvUmFzbWFuDQorUmFzU2VydmVyUG9ydENsb3NlDQorUmFzU2V0QWRkcmVzc0Rpc2FibGUNCitSYXNTZXRCYXBQb2xpY3kNCitSYXNTZXRDYWNoZWRDcmVkZW50aWFscw0KK1Jhc1NldENhbGxlZElkSW5mbw0KK1Jhc1NldENvbW1TZXR0aW5ncw0KK1Jhc1NldENvbm5lY3Rpb25QYXJhbXMNCitSYXNTZXRDb25uZWN0aW9uVXNlckRhdGENCitSYXNTZXREZXZDb25maWcNCitSYXNTZXREZXZpY2VDb25maWdJbmZvDQorUmFzU2V0RGlhbFBhcmFtcw0KK1Jhc1NldEVhcExvZ29uSW5mbw0KK1Jhc1NldEVhcFVzZXJJbmZvDQorUmFzU2V0SW9Db21wbGV0aW9uUG9ydA0KK1Jhc1NldEtleQ0KK1Jhc1NldFBvcnRVc2VyRGF0YQ0KK1Jhc1NldFJhc2RpYWxJbmZvDQorUmFzU2V0Um91dGVyVXNhZ2UNCitSYXNTaWduYWxOZXdDb25uZWN0aW9uDQorUmFzU3RhcnRSYXNBdXRvSWZSZXF1aXJlZA0KK1Jhc21hblVuaW5pdGlhbGl6ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3Jhc21hbnMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcmFzbWFucy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDRjMDUzNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3Jhc21hbnMuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcmFzbWFucy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcmFzbWFucy5kbGwNCitFWFBPUlRTDQorU2VydmljZU1haW4NCitTZXJ2aWNlUmVxdWVzdEluUHJvY2Vzcw0KK1NldEVudHJ5RGlhbFBhcmFtcw0KK19SYXNtYW5FbmdpbmUNCitfUmFzbWFuSW5pdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3Jhc21vbnRyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3Jhc21vbnRyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZWJhZTYyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcmFzbW9udHIuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUkFTTU9OVFIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFJBU01PTlRSLmRsbA0KK0VYUE9SVFMNCitHZXREaWFnbm9zdGljRnVuY3Rpb25zDQorSW5pdEhlbHBlckRsbA0KK1J1dGxBbGxvYw0KK1J1dGxBc3NpZ25tZW50RnJvbVRva2VuQW5kRHdvcmQNCitSdXRsQXNzaWdubWVudEZyb21Ub2tlbnMNCitSdXRsQ2xvc2VEdW1wRmlsZQ0KK1J1dGxDcmVhdGVEdW1wRmlsZQ0KK1J1dGxEd29yZER1cA0KK1J1dGxGcmVlDQorUnV0bEdldE9zVmVyc2lvbg0KK1J1dGxHZXRUYWdUb2tlbg0KK1J1dGxJc0hlbHBUb2tlbg0KK1J1dGxQYXJzZQ0KK1J1dGxTdHJEdXANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9yYXNteHMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcmFzbXhzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMmJhZDdkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcmFzbXhzLmRlZgpAQCAtMCwwICsxLDE1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHJhc214cy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcmFzbXhzLmRsbA0KK0VYUE9SVFMNCitEZXZpY2VDb25uZWN0DQorRGV2aWNlRG9uZQ0KK0RldmljZUVudW0NCitEZXZpY2VHZXRJbmZvDQorRGV2aWNlTGlzdGVuDQorRGV2aWNlU2V0SW5mbw0KK0RldmljZVdvcmsNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9yYXNwcHAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcmFzcHBwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNzBhMmEyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcmFzcHBwLmRlZgpAQCAtMCwwICsxLDM1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHJhc3BwcC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcmFzcHBwLmRsbA0KK0VYUE9SVFMNCitIZWxwZXJSZXNldERlZmF1bHRJbnRlcmZhY2VOZXQNCitIZWxwZXJSZXNldERlZmF1bHRJbnRlcmZhY2VOZXRFeA0KK0hlbHBlclNldERlZmF1bHRJbnRlcmZhY2VOZXQNCitIZWxwZXJTZXREZWZhdWx0SW50ZXJmYWNlTmV0RXgNCitJcHhDcEluaXQNCitJcHhjcEJpbmQNCitQcHBEZG1CYXBDYWxsYmFja1Jlc3VsdA0KK1BwcERkbUNhbGxiYWNrRG9uZQ0KK1BwcERkbUNoYW5nZU5vdGlmaWNhdGlvbg0KK1BwcERkbURlSW5pdA0KK1BwcERkbUluaXQNCitQcHBEZG1SZW1vdmVRdWFyYW50aW5lDQorUHBwRGRtU2VuZEludGVyZmFjZUluZm8NCitQcHBEZG1TdGFydA0KK1BwcERkbVN0b3ANCitQcHBTdG9wDQorUmFzQ3BFbnVtUHJvdG9jb2xJZHMNCitSYXNDcEdldEluZm8NCitSYXNTcnZyQWNxdWlyZUFkZHJlc3MNCitSYXNTcnZyQWN0aXZhdGVJcA0KK1Jhc1NydnJJbml0aWFsaXplDQorUmFzU3J2clF1ZXJ5U2VydmVyQWRkcmVzc2VzDQorUmFzU3J2clJlbGVhc2VBZGRyZXNzDQorUmFzU3J2clVuaW5pdGlhbGl6ZQ0KK1NlbmRQUFBNZXNzYWdlVG9FbmdpbmUNCitTdGFydFBQUA0KK1N0b3BQUFANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9yYXNyYWQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcmFzcmFkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kODk2ZmIyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcmFzcmFkLmRlZgpAQCAtMCwwICsxLDIzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFJBU1JBRC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUkFTUkFELmRsbA0KK0VYUE9SVFMNCitPcGVuDQorQ29sbGVjdA0KK0Nsb3NlDQorUmFzQWNjdENvbmZpZ0NoYW5nZU5vdGlmaWNhdGlvbg0KK1Jhc0FjY3RQcm92aWRlckZyZWVBdHRyaWJ1dGVzDQorUmFzQWNjdFByb3ZpZGVySW5pdGlhbGl6ZQ0KK1Jhc0FjY3RQcm92aWRlckludGVyaW1BY2NvdW50aW5nDQorUmFzQWNjdFByb3ZpZGVyU3RhcnRBY2NvdW50aW5nDQorUmFzQWNjdFByb3ZpZGVyU3RvcEFjY291bnRpbmcNCitSYXNBY2N0UHJvdmlkZXJUZXJtaW5hdGUNCitSYXNBdXRoQ29uZmlnQ2hhbmdlTm90aWZpY2F0aW9uDQorUmFzQXV0aFByb3ZpZGVyQXV0aGVudGljYXRlVXNlcg0KK1Jhc0F1dGhQcm92aWRlckZyZWVBdHRyaWJ1dGVzDQorUmFzQXV0aFByb3ZpZGVySW5pdGlhbGl6ZQ0KK1Jhc0F1dGhQcm92aWRlclRlcm1pbmF0ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3Jhc3NhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcmFzc2FwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTU0YjYzZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3Jhc3NhcGkuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUkFTU0FQSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUkFTU0FQSS5kbGwNCitFWFBPUlRTDQorUmFzQWRtaW5ETExJbml0DQorUmFzQWRtaW5Vc2VyU2V0SW5mbw0KK1Jhc0FkbWluVXNlckdldEluZm8NCitSYXNBZG1pbkdldFVzZXJBY2NvdW50U2VydmVyDQorUmFzQWRtaW5Qb3J0RW51bQ0KK1Jhc0FkbWluUG9ydEdldEluZm8NCitSYXNBZG1pblBvcnRDbGVhclN0YXRpc3RpY3MNCitSYXNBZG1pblNlcnZlckdldEluZm8NCitSYXNBZG1pblBvcnREaXNjb25uZWN0DQorUmFzQWRtaW5GcmVlQnVmZmVyDQorUmFzQWRtaW5TZXRVc2VyUGFybXMNCitSYXNBZG1pbkdldFVzZXJQYXJtcw0KK1Jhc0FkbWluQ29tcHJlc3NQaG9uZU51bWJlcg0KK1Jhc0FkbWluR2V0RXJyb3JTdHJpbmcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9yYXNzZXIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcmFzc2VyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZTdiMTlkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcmFzc2VyLmRlZgpAQCAtMCwwICsxLDI3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHJhc3Nlci5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcmFzc2VyLmRsbA0KK0VYUE9SVFMNCitQb3J0Q2hhbmdlQ2FsbGJhY2sNCitQb3J0Q2xlYXJTdGF0aXN0aWNzDQorUG9ydENsb3NlDQorUG9ydENvbXByZXNzaW9uU2V0SW5mbw0KK1BvcnRDb25uZWN0DQorUG9ydERpc2Nvbm5lY3QNCitQb3J0RW51bQ0KK1BvcnRHZXRJbmZvDQorUG9ydEdldFBvcnRTdGF0ZQ0KK1BvcnRHZXRTdGF0aXN0aWNzDQorUG9ydEluaXQNCitQb3J0T3Blbg0KK1BvcnRSZWNlaXZlDQorUG9ydFJlY2VpdmVDb21wbGV0ZQ0KK1BvcnRTZW5kDQorUG9ydFNldEZyYW1pbmcNCitQb3J0U2V0SU5ldENmZw0KK1BvcnRTZXRJbmZvDQorUG9ydFRlc3RTaWduYWxTdGF0ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3Jhc3RhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcmFzdGFwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDRjZDAwMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3Jhc3RhcGkuZGVmCkBAIC0wLDAgKzEsNDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcmFzdGFwaS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcmFzdGFwaS5kbGwNCitFWFBPUlRTDQorQWRkUG9ydHMNCitEZXZpY2VDb25uZWN0DQorRGV2aWNlRG9uZQ0KK0RldmljZUVudW0NCitEZXZpY2VHZXREZXZDb25maWcNCitEZXZpY2VHZXREZXZDb25maWdFeA0KK0RldmljZUdldEluZm8NCitEZXZpY2VMaXN0ZW4NCitEZXZpY2VTZXREZXZDb25maWcNCitEZXZpY2VTZXRJbmZvDQorRGV2aWNlV29yaw0KK0VuYWJsZURldmljZUZvckRpYWxJbg0KK0dldENvbm5lY3RJbmZvDQorR2V0WmVyb0RldmljZUluZm8NCitQb3J0Q2hhbmdlQ2FsbGJhY2sNCitQb3J0Q2xlYXJTdGF0aXN0aWNzDQorUG9ydENsb3NlDQorUG9ydENvbXByZXNzaW9uU2V0SW5mbw0KK1BvcnRDb25uZWN0DQorUG9ydERpc2Nvbm5lY3QNCitQb3J0RW51bQ0KK1BvcnRHZXRJT0hhbmRsZQ0KK1BvcnRHZXRJbmZvDQorUG9ydEdldFBvcnRTdGF0ZQ0KK1BvcnRHZXRTdGF0aXN0aWNzDQorUG9ydEluaXQNCitQb3J0T3Blbg0KK1BvcnRPcGVuRXh0ZXJuYWwNCitQb3J0UmVjZWl2ZQ0KK1BvcnRSZWNlaXZlQ29tcGxldGUNCitQb3J0U2VuZA0KK1BvcnRTZXRGcmFtaW5nDQorUG9ydFNldEluZm8NCitQb3J0U2V0SW9Db21wbGV0aW9uUG9ydA0KK1BvcnRUZXN0U2lnbmFsU3RhdGUNCitSYXNUYXBpSXNQdWxzZURpYWwNCitSYXN0YXBpR2V0Q2FsbGVkSUQNCitSYXN0YXBpU2V0Q2FsbGVkSUQNCitSZW1vdmVQb3J0DQorU2V0Q29tbVNldHRpbmdzDQorVW5sb2FkUmFzdGFwaURsbA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3Jhc3Rscy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9yYXN0bHMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBiNTJkMjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9yYXN0bHMuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcmFzdGxzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSByYXN0bHMuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorUGVhcFVwZGF0ZVN0YXRlVG9UTFYNCitSYXNFYXBDcmVhdGVDb25uZWN0aW9uUHJvcGVydGllcw0KK1Jhc0VhcENyZWF0ZVVzZXJQcm9wZXJ0aWVzDQorUmFzRWFwRnJlZU1lbW9yeQ0KK1Jhc0VhcEdldENyZWRlbnRpYWxzDQorUmFzRWFwR2V0SWRlbnRpdHkNCitSYXNFYXBHZXRJbmZvDQorUmFzRWFwSW52b2tlQ29uZmlnVUkNCitSYXNFYXBJbnZva2VJbnRlcmFjdGl2ZVVJDQorUmFzRWFwVXBkYXRlU2VydmVyQ29uZmlnDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcmNiZHljdGwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcmNiZHljdGwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZhOGUzNzYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9yY2JkeWN0bC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSByY2JkeWN0bC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcmNiZHljdGwuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcmRjaG9zdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9yZGNob3N0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lMTc4NjM2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcmRjaG9zdC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBSRENIb3N0LkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBSRENIb3N0LkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3JkcGNmZ2V4LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3JkcGNmZ2V4LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hN2QzYzBmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcmRwY2ZnZXguZGVmCkBAIC0wLDAgKzEsMTggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUkRQQ0ZHRVguZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFJEUENGR0VYLmRsbA0KK0VYUE9SVFMNCitFeEdldENmZ1ZlcnNpb25JbmZvDQorRXh0RW5jcnlwdGlvbkxldmVscw0KK0V4dEVuZA0KK0V4dEdldENhcGFiaWxpdGllcw0KK0V4dEdldEVuY3J5cHRpb25MZXZlbEFuZERlc2NyRXgNCitFeHRHZXRFbmNyeXB0aW9uTGV2ZWxEZXNjcg0KK0V4dEdldFNlY3VyaXR5TGF5ZXJEZXNjclN0cmluZw0KK0V4dEdldFNlY3VyaXR5TGF5ZXJOYW1lDQorRXh0U2VjdXJpdHlMYXllcnMNCitFeHRTdGFydA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3JkcHNuZC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9yZHBzbmQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIzMTBmNjMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9yZHBzbmQuZGVmCkBAIC0wLDAgKzEsMTUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUkRQU05ELmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBSRFBTTkQuZGxsDQorRVhQT1JUUw0KK0RyaXZlclByb2MNCithdXhNZXNzYWdlDQorbWlkTWVzc2FnZQ0KK21vZE1lc3NhZ2UNCitteGRNZXNzYWdlDQord2lkTWVzc2FnZQ0KK3dvZE1lc3NhZ2UNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9yZHB3c3guZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcmRwd3N4LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NDczNjRmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcmRwd3N4LmRlZgpAQCAtMCwwICsxLDI3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFJEUFdTWC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUkRQV1NYLmRsbA0KK0VYUE9SVFMNCitXc3hCcm9rZW5Db25uZWN0aW9uDQorV3N4Q2FuTG9nb25Qcm9jZWVkDQorV3N4Q2xlYXJDb250ZXh0DQorV3N4Q29ubmVjdA0KK1dzeENvbnZlcnRQdWJsaXNoZWRBcHANCitXc3hDb3B5Q29udGV4dA0KK1dzeERpc2Nvbm5lY3QNCitXc3hEdXBsaWNhdGVDb250ZXh0DQorV3N4RXNjYXBlDQorV3N4SWNhU3RhY2tJb0NvbnRyb2wNCitXc3hJbml0aWFsaXplDQorV3N4SW5pdGlhbGl6ZUNsaWVudERhdGENCitXc3hMb2dvbk5vdGlmeQ0KK1dzeFNlbmRBdXRvUmVjb25uZWN0U3RhdHVzDQorV3N4U2V0RXJyb3JJbmZvDQorV3N4VmlydHVhbENoYW5uZWxTZWN1cml0eQ0KK1dzeFdpblN0YXRpb25Jbml0aWFsaXplDQorV3N4V2luU3RhdGlvblJlSW5pdGlhbGl6ZQ0KK1dzeFdpblN0YXRpb25SdW5kb3duDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcmVnYXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3JlZ2FwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWJkNGY1ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3JlZ2FwaS5kZWYKQEAgLTAsMCArMSw5MiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBSRUdBUEkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFJFR0FQSS5kbGwNCitFWFBPUlRTDQorR2V0RG9tYWluTmFtZQ0KK1F1ZXJ5VXNlclByb3BlcnR5DQorUmVnQnVpbGROdW1iZXJRdWVyeQ0KK1JlZ0NkQ3JlYXRlQQ0KK1JlZ0NkQ3JlYXRlVw0KK1JlZ0NkRGVsZXRlQQ0KK1JlZ0NkRGVsZXRlVw0KK1JlZ0NkRW51bWVyYXRlQQ0KK1JlZ0NkRW51bWVyYXRlVw0KK1JlZ0NkUXVlcnlBDQorUmVnQ2RRdWVyeVcNCitSZWdDbG9zZVNlcnZlcg0KK1JlZ0NvbnNvbGVTaGFkb3dRdWVyeUENCitSZWdDb25zb2xlU2hhZG93UXVlcnlXDQorUmVnQ3JlYXRlVXNlckNvbmZpZ1cNCitSZWdEZWZhdWx0VXNlckNvbmZpZ1F1ZXJ5QQ0KK1JlZ0RlZmF1bHRVc2VyQ29uZmlnUXVlcnlXDQorUmVnRGVueVRTQ29ubmVjdGlvbnNQb2xpY3kNCitSZWdGcmVlVXRpbGl0eUNvbW1hbmRMaXN0DQorUmVnR2V0TGljZW5zaW5nTW9kZVBvbGljeQ0KK1JlZ0dldE1hY2hpbmVQb2xpY3kNCitSZWdHZXRNYWNoaW5lUG9saWN5RXgNCitSZWdHZXRNYWNoaW5lUG9saWN5TmV3DQorUmVnR2V0VFNlcnZlclZlcnNpb24NCitSZWdHZXRVc2VyQ29uZmlnRnJvbVVzZXJQYXJhbWV0ZXJzDQorUmVnR2V0VXNlclBvbGljeQ0KK1JlZ0lzTWFjaGluZUluSGVscE1vZGUNCitSZWdJc01hY2hpbmVQb2xpY3lBbGxvd0hlbHANCitSZWdJc1RTZXJ2ZXINCitSZWdJc1RpbWVab25lUmVkaXJlY3Rpb25FbmFibGVkDQorUmVnTWVyZ2VVc2VyQ29uZmlnV2l0aFVzZXJQYXJhbWV0ZXJzDQorUmVnT3BlblNlcnZlckENCitSZWdPcGVuU2VydmVyVw0KK1JlZ1BkQ3JlYXRlQQ0KK1JlZ1BkQ3JlYXRlVw0KK1JlZ1BkRGVsZXRlQQ0KK1JlZ1BkRGVsZXRlVw0KK1JlZ1BkRW51bWVyYXRlQQ0KK1JlZ1BkRW51bWVyYXRlVw0KK1JlZ1BkUXVlcnlBDQorUmVnUGRRdWVyeVcNCitSZWdRdWVyeU9FTUlkDQorUmVnUXVlcnlVdGlsaXR5Q29tbWFuZExpc3QNCitSZWdTQU1Vc2VyQ29uZmlnDQorUmVnVXNlckNvbmZpZ0RlbGV0ZQ0KK1JlZ1VzZXJDb25maWdRdWVyeQ0KK1JlZ1VzZXJDb25maWdSZW5hbWUNCitSZWdVc2VyQ29uZmlnU2V0DQorUmVnV2RDcmVhdGVBDQorUmVnV2RDcmVhdGVXDQorUmVnV2REZWxldGVBDQorUmVnV2REZWxldGVXDQorUmVnV2RFbnVtZXJhdGVBDQorUmVnV2RFbnVtZXJhdGVXDQorUmVnV2RRdWVyeUENCitSZWdXZFF1ZXJ5Vw0KK1JlZ1dpblN0YXRpb25BY2Nlc3NDaGVjaw0KK1JlZ1dpblN0YXRpb25DcmVhdGVBDQorUmVnV2luU3RhdGlvbkNyZWF0ZVcNCitSZWdXaW5TdGF0aW9uRGVsZXRlQQ0KK1JlZ1dpblN0YXRpb25EZWxldGVXDQorUmVnV2luU3RhdGlvbkVudW1lcmF0ZUENCitSZWdXaW5TdGF0aW9uRW51bWVyYXRlVw0KK1JlZ1dpblN0YXRpb25RdWVyeUENCitSZWdXaW5TdGF0aW9uUXVlcnlEZWZhdWx0U2VjdXJpdHkNCitSZWdXaW5TdGF0aW9uUXVlcnlFeA0KK1JlZ1dpblN0YXRpb25RdWVyeUV4TmV3DQorUmVnV2luU3RhdGlvblF1ZXJ5TnVtVmFsdWVXDQorUmVnV2luU3RhdGlvblF1ZXJ5U2VjdXJpdHlBDQorUmVnV2luU3RhdGlvblF1ZXJ5U2VjdXJpdHlXDQorUmVnV2luU3RhdGlvblF1ZXJ5VmFsdWVXDQorUmVnV2luU3RhdGlvblF1ZXJ5Vw0KK1JlZ1dpblN0YXRpb25TZXROdW1WYWx1ZVcNCitSZWdXaW5TdGF0aW9uU2V0U2VjdXJpdHlBDQorUmVnV2luU3RhdGlvblNldFNlY3VyaXR5Vw0KK1JlZ1dpbnN0YXRpb25RdWVyeVNlY3VyaXR5Q29uZmlnX01hY2hpbmUNCitSZWdXaW5zdGF0aW9uUXVlcnlTZWN1cml0eUNvbmZpZ19NZXJnZWQNCitSZWdXaW5zdGF0aW9uU2V0U2VjdXJpdHlDb25maWcNCitTZXRVc2VyUHJvcGVydHkNCitVc3JQcm9wR2V0U3RyaW5nDQorVXNyUHJvcEdldFZhbHVlDQorVXNyUHJvcFNldFN0cmluZw0KK1VzclByb3BTZXRWYWx1ZQ0KK1dhaXRGb3JUU0Nvbm5lY3Rpb25zUG9saWN5Q2hhbmdlcw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3JlZ3N2Yy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9yZWdzdmMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZjYTRlYjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9yZWdzdmMuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcmVnc3ZjLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSByZWdzdmMuZGxsDQorRVhQT1JUUw0KK1NlcnZpY2VNYWluDQorU3ZjaG9zdFB1c2hTZXJ2aWNlR2xvYmFscw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3JlZ3dpemMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcmVnd2l6Yy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzJhN2YyZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3JlZ3dpemMuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUmVnV2l6Q3RybC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUmVnV2l6Q3RybC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9yZW1vdGVwZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9yZW1vdGVwZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDBhODVmMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3JlbW90ZXBnLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFJlbW90ZVBhZ2UuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFJlbW90ZVBhZ2UuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcmVuZC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9yZW5kLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44OTZjYThhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcmVuZC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSByZW5kLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSByZW5kLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3JlcGRydmZzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3JlcGRydmZzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MzkwNmRlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcmVwZHJ2ZnMuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgWEZpbGVzLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBYRmlsZXMuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcmVzdXRpbHMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcmVzdXRpbHMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVhZjZjNTIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9yZXN1dGlscy5kZWYKQEAgLTAsMCArMSw4MCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBSRVNVVElMUy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUkVTVVRJTFMuZGxsDQorRVhQT1JUUw0KK0NsdXNXb3JrZXJDaGVja1Rlcm1pbmF0ZQ0KK0NsdXNXb3JrZXJDcmVhdGUNCitDbHVzV29ya2VyU3RhcnQNCitDbHVzV29ya2VyVGVybWluYXRlDQorUmVzVXRpbEFkZFVua25vd25Qcm9wZXJ0aWVzDQorUmVzVXRpbENyZWF0ZURpcmVjdG9yeVRyZWUNCitSZXNVdGlsRHVwUGFyYW1ldGVyQmxvY2sNCitSZXNVdGlsRHVwU3RyaW5nDQorUmVzVXRpbEVudW1Qcml2YXRlUHJvcGVydGllcw0KK1Jlc1V0aWxFbnVtUHJvcGVydGllcw0KK1Jlc1V0aWxFbnVtUmVzb3VyY2VzDQorUmVzVXRpbEVudW1SZXNvdXJjZXNFeA0KK1Jlc1V0aWxFeHBhbmRFbnZpcm9ubWVudFN0cmluZ3MNCitSZXNVdGlsRmluZEJpbmFyeVByb3BlcnR5DQorUmVzVXRpbEZpbmREZXBlbmRlbnREaXNrUmVzb3VyY2VEcml2ZUxldHRlcg0KK1Jlc1V0aWxGaW5kRHdvcmRQcm9wZXJ0eQ0KK1Jlc1V0aWxGaW5kRXhwYW5kU3pQcm9wZXJ0eQ0KK1Jlc1V0aWxGaW5kRXhwYW5kZWRTelByb3BlcnR5DQorUmVzVXRpbEZpbmRMb25nUHJvcGVydHkNCitSZXNVdGlsRmluZE11bHRpU3pQcm9wZXJ0eQ0KK1Jlc1V0aWxGaW5kU3pQcm9wZXJ0eQ0KK1Jlc1V0aWxGcmVlRW52aXJvbm1lbnQNCitSZXNVdGlsRnJlZVBhcmFtZXRlckJsb2NrDQorUmVzVXRpbEdldEFsbFByb3BlcnRpZXMNCitSZXNVdGlsR2V0QmluYXJ5UHJvcGVydHkNCitSZXNVdGlsR2V0QmluYXJ5VmFsdWUNCitSZXNVdGlsR2V0Q29yZUNsdXN0ZXJSZXNvdXJjZXMNCitSZXNVdGlsR2V0RHdvcmRQcm9wZXJ0eQ0KK1Jlc1V0aWxHZXREd29yZFZhbHVlDQorUmVzVXRpbEdldEVudmlyb25tZW50V2l0aE5ldE5hbWUNCitSZXNVdGlsR2V0TXVsdGlTelByb3BlcnR5DQorUmVzVXRpbEdldFByaXZhdGVQcm9wZXJ0aWVzDQorUmVzVXRpbEdldFByb3BlcnRpZXMNCitSZXNVdGlsR2V0UHJvcGVydGllc1RvUGFyYW1ldGVyQmxvY2sNCitSZXNVdGlsR2V0UHJvcGVydHkNCitSZXNVdGlsR2V0UHJvcGVydHlGb3JtYXRzDQorUmVzVXRpbEdldFByb3BlcnR5U2l6ZQ0KK1Jlc1V0aWxHZXRSZXNvdXJjZURlcGVuZGVuY3kNCitSZXNVdGlsR2V0UmVzb3VyY2VEZXBlbmRlbmN5QnlDbGFzcw0KK1Jlc1V0aWxHZXRSZXNvdXJjZURlcGVuZGVuY3lCeU5hbWUNCitSZXNVdGlsR2V0UmVzb3VyY2VEZXBlbmRlbnRJUEFkZHJlc3NQcm9wcw0KK1Jlc1V0aWxHZXRSZXNvdXJjZU5hbWUNCitSZXNVdGlsR2V0UmVzb3VyY2VOYW1lRGVwZW5kZW5jeQ0KK1Jlc1V0aWxHZXRTelByb3BlcnR5DQorUmVzVXRpbEdldFN6VmFsdWUNCitSZXNVdGlsSXNQYXRoVmFsaWQNCitSZXNVdGlsSXNSZXNvdXJjZUNsYXNzRXF1YWwNCitSZXNVdGlsUHJvcGVydHlMaXN0RnJvbVBhcmFtZXRlckJsb2NrDQorUmVzVXRpbFJlbW92ZVJlc291cmNlU2VydmljZUVudmlyb25tZW50DQorUmVzVXRpbFJlc291cmNlVHlwZXNFcXVhbA0KK1Jlc1V0aWxSZXNvdXJjZXNFcXVhbA0KK1Jlc1V0aWxTZXRCaW5hcnlWYWx1ZQ0KK1Jlc1V0aWxTZXREd29yZFZhbHVlDQorUmVzVXRpbFNldEV4cGFuZFN6VmFsdWUNCitSZXNVdGlsU2V0TXVsdGlTelZhbHVlDQorUmVzVXRpbFNldFByaXZhdGVQcm9wZXJ0eUxpc3QNCitSZXNVdGlsU2V0UHJvcGVydHlQYXJhbWV0ZXJCbG9jaw0KK1Jlc1V0aWxTZXRQcm9wZXJ0eVBhcmFtZXRlckJsb2NrRXgNCitSZXNVdGlsU2V0UHJvcGVydHlUYWJsZQ0KK1Jlc1V0aWxTZXRQcm9wZXJ0eVRhYmxlRXgNCitSZXNVdGlsU2V0UmVzb3VyY2VTZXJ2aWNlRW52aXJvbm1lbnQNCitSZXNVdGlsU2V0UmVzb3VyY2VTZXJ2aWNlU3RhcnRQYXJhbWV0ZXJzDQorUmVzVXRpbFNldFN6VmFsdWUNCitSZXNVdGlsU2V0VW5rbm93blByb3BlcnRpZXMNCitSZXNVdGlsU3RhcnRSZXNvdXJjZVNlcnZpY2UNCitSZXNVdGlsU3RvcFJlc291cmNlU2VydmljZQ0KK1Jlc1V0aWxTdG9wU2VydmljZQ0KK1Jlc1V0aWxUZXJtaW5hdGVTZXJ2aWNlUHJvY2Vzc0Zyb21SZXNEbGwNCitSZXNVdGlsVmVyaWZ5UHJpdmF0ZVByb3BlcnR5TGlzdA0KK1Jlc1V0aWxWZXJpZnlQcm9wZXJ0eVRhYmxlDQorUmVzVXRpbFZlcmlmeVJlc291cmNlU2VydmljZQ0KK1Jlc1V0aWxWZXJpZnlTZXJ2aWNlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcmljaGVkMjAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcmljaGVkMjAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVmMmIyOWQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9yaWNoZWQyMC5kZWYKQEAgLTAsMCArMSwxNyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBSSUNIRUQyMC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUklDSEVEMjAuZGxsDQorRVhQT1JUUw0KK0lJRF9JUmljaEVkaXRPbGUNCitJSURfSVJpY2hFZGl0T2xlQ2FsbGJhY2sNCitDcmVhdGVUZXh0U2VydmljZXMNCitJSURfSVRleHRTZXJ2aWNlcw0KK0lJRF9JVGV4dEhvc3QNCitJSURfSVRleHRIb3N0Mg0KK1JFRXh0ZW5kZWRSZWdpc3RlckNsYXNzDQorUmljaEVkaXQxMEFOU0lXbmRQcm9jDQorUmljaEVkaXRBTlNJV25kUHJvYw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3JucjIwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3JucjIwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZGUyYmJmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcm5yMjAuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBSTlIyMC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUk5SMjAuZGxsDQorRVhQT1JUUw0KK05TUFN0YXJ0dXANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9yb3V0ZXRhYi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9yb3V0ZXRhYi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzM5NWEzYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3JvdXRldGFiLmRlZgpAQCAtMCwwICsxLDE4IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFJPVVRFVEFCLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBST1VURVRBQi5kbGwNCitFWFBPUlRTDQorQWRkUm91dGUNCitEZWxldGVSb3V0ZQ0KK0ZyZWVJUEFkZHJlc3NUYWJsZQ0KK0ZyZWVSb3V0ZVRhYmxlDQorR2V0SVBBZGRyZXNzVGFibGUNCitHZXRJZkVudHJ5DQorR2V0Um91dGVUYWJsZQ0KK1JlZnJlc2hBZGRyZXNzZXMNCitSZWxvYWRJUEFkZHJlc3NUYWJsZQ0KK1NldEFkZHJDaGFuZ2VOb3RpZnlFdmVudA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3JwY25zNC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9ycGNuczQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZkZTAyMzAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9ycGNuczQuZGVmCkBAIC0wLDAgKzEsNzEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUlBDTlM0LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBSUENOUzQuZGxsDQorRVhQT1JUUw0KK0lfR2V0RGVmYXVsdEVudHJ5U3ludGF4DQorSV9ScGNOc0dldEJ1ZmZlcg0KK0lfUnBjTnNOZWdvdGlhdGVUcmFuc2ZlclN5bnRheA0KK0lfUnBjTnNSYWlzZUV4Y2VwdGlvbg0KK0lfUnBjTnNTZW5kUmVjZWl2ZQ0KK0lfUnBjUmVCaW5kQnVmZmVyDQorUnBjSWZJZFZlY3RvckZyZWUNCitScGNOc0JpbmRpbmdFeHBvcnRBDQorUnBjTnNCaW5kaW5nRXhwb3J0UG5QQQ0KK1JwY05zQmluZGluZ0V4cG9ydFBuUFcNCitScGNOc0JpbmRpbmdFeHBvcnRXDQorUnBjTnNCaW5kaW5nSW1wb3J0QmVnaW5BDQorUnBjTnNCaW5kaW5nSW1wb3J0QmVnaW5XDQorUnBjTnNCaW5kaW5nSW1wb3J0RG9uZQ0KK1JwY05zQmluZGluZ0ltcG9ydE5leHQNCitScGNOc0JpbmRpbmdMb29rdXBCZWdpbkENCitScGNOc0JpbmRpbmdMb29rdXBCZWdpblcNCitScGNOc0JpbmRpbmdMb29rdXBEb25lDQorUnBjTnNCaW5kaW5nTG9va3VwTmV4dA0KK1JwY05zQmluZGluZ1NlbGVjdA0KK1JwY05zQmluZGluZ1VuZXhwb3J0QQ0KK1JwY05zQmluZGluZ1VuZXhwb3J0UG5QQQ0KK1JwY05zQmluZGluZ1VuZXhwb3J0UG5QVw0KK1JwY05zQmluZGluZ1VuZXhwb3J0Vw0KK1JwY05zRW50cnlFeHBhbmROYW1lQQ0KK1JwY05zRW50cnlFeHBhbmROYW1lVw0KK1JwY05zRW50cnlPYmplY3RJbnFCZWdpbkENCitScGNOc0VudHJ5T2JqZWN0SW5xQmVnaW5XDQorUnBjTnNFbnRyeU9iamVjdElucURvbmUNCitScGNOc0VudHJ5T2JqZWN0SW5xTmV4dA0KK1JwY05zR3JvdXBEZWxldGVBDQorUnBjTnNHcm91cERlbGV0ZVcNCitScGNOc0dyb3VwTWJyQWRkQQ0KK1JwY05zR3JvdXBNYnJBZGRXDQorUnBjTnNHcm91cE1icklucUJlZ2luQQ0KK1JwY05zR3JvdXBNYnJJbnFCZWdpblcNCitScGNOc0dyb3VwTWJySW5xRG9uZQ0KK1JwY05zR3JvdXBNYnJJbnFOZXh0QQ0KK1JwY05zR3JvdXBNYnJJbnFOZXh0Vw0KK1JwY05zR3JvdXBNYnJSZW1vdmVBDQorUnBjTnNHcm91cE1iclJlbW92ZVcNCitScGNOc01nbXRCaW5kaW5nVW5leHBvcnRBDQorUnBjTnNNZ210QmluZGluZ1VuZXhwb3J0Vw0KK1JwY05zTWdtdEVudHJ5Q3JlYXRlQQ0KK1JwY05zTWdtdEVudHJ5Q3JlYXRlVw0KK1JwY05zTWdtdEVudHJ5RGVsZXRlQQ0KK1JwY05zTWdtdEVudHJ5RGVsZXRlVw0KK1JwY05zTWdtdEVudHJ5SW5xSWZJZHNBDQorUnBjTnNNZ210RW50cnlJbnFJZklkc1cNCitScGNOc01nbXRIYW5kbGVTZXRFeHBBZ2UNCitScGNOc01nbXRJbnFFeHBBZ2UNCitScGNOc01nbXRTZXRFeHBBZ2UNCitScGNOc1Byb2ZpbGVEZWxldGVBDQorUnBjTnNQcm9maWxlRGVsZXRlVw0KK1JwY05zUHJvZmlsZUVsdEFkZEENCitScGNOc1Byb2ZpbGVFbHRBZGRXDQorUnBjTnNQcm9maWxlRWx0SW5xQmVnaW5BDQorUnBjTnNQcm9maWxlRWx0SW5xQmVnaW5XDQorUnBjTnNQcm9maWxlRWx0SW5xRG9uZQ0KK1JwY05zUHJvZmlsZUVsdElucU5leHRBDQorUnBjTnNQcm9maWxlRWx0SW5xTmV4dFcNCitScGNOc1Byb2ZpbGVFbHRSZW1vdmVBDQorUnBjTnNQcm9maWxlRWx0UmVtb3ZlVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3JwY25zaC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9ycGNuc2guZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAyNWZlYjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9ycGNuc2guZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBycGNuc2guRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHJwY25zaC5ETEwNCitFWFBPUlRTDQorSW5pdEhlbHBlckRsbA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3JwY3JlZi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9ycGNyZWYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjliYzJmNmQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9ycGNyZWYuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUlBDUkVGLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBSUENSRUYuZGxsDQorRVhQT1JUUw0KK0luZXRpbmZvU3RhcnRScGNTZXJ2ZXJMaXN0ZW4NCitJbmV0aW5mb1N0b3BScGNTZXJ2ZXJMaXN0ZW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9ycGNydDQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcnBjcnQ0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hZTZiNDI5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcnBjcnQ0LmRlZgpAQCAtMCwwICsxLDUyMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBSUENSVDQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFJQQ1JUNC5kbGwNCitFWFBPUlRTDQorQ3JlYXRlUHJveHlGcm9tVHlwZUluZm8NCitDcmVhdGVTdHViRnJvbVR5cGVJbmZvDQorSV9ScGNTZXJ2ZXJUdXJuT25PZmZLZWVwYWxpdmVzDQorQ1N0ZFN0dWJCdWZmZXJfQWRkUmVmDQorQ1N0ZFN0dWJCdWZmZXJfQ29ubmVjdA0KK0NTdGRTdHViQnVmZmVyX0NvdW50UmVmcw0KK0NTdGRTdHViQnVmZmVyX0RlYnVnU2VydmVyUXVlcnlJbnRlcmZhY2UNCitDU3RkU3R1YkJ1ZmZlcl9EZWJ1Z1NlcnZlclJlbGVhc2UNCitDU3RkU3R1YkJ1ZmZlcl9EaXNjb25uZWN0DQorQ1N0ZFN0dWJCdWZmZXJfSW52b2tlDQorQ1N0ZFN0dWJCdWZmZXJfSXNJSURTdXBwb3J0ZWQNCitDU3RkU3R1YkJ1ZmZlcl9RdWVyeUludGVyZmFjZQ0KK0RjZUVycm9ySW5xVGV4dEENCitEY2VFcnJvcklucVRleHRXDQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxJbnN0YWxsDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitHbG9iYWxNdXRleENsZWFyRXh0ZXJuYWwNCitHbG9iYWxNdXRleFJlcXVlc3RFeHRlcm5hbA0KK0lVbmtub3duX0FkZFJlZl9Qcm94eQ0KK0lVbmtub3duX1F1ZXJ5SW50ZXJmYWNlX1Byb3h5DQorSVVua25vd25fUmVsZWFzZV9Qcm94eQ0KK0lfUnBjQWJvcnRBc3luY0NhbGwNCitJX1JwY0FsbG9jYXRlDQorSV9ScGNBc3luY0Fib3J0Q2FsbA0KK0lfUnBjQXN5bmNTZXRIYW5kbGUNCitJX1JwY0JDYWNoZUFsbG9jYXRlDQorSV9ScGNCQ2FjaGVGcmVlDQorSV9ScGNCaW5kaW5nQ29weQ0KK0lfUnBjQmluZGluZ0hhbmRsZVRvQXN5bmNIYW5kbGUNCitJX1JwY0JpbmRpbmdJbnFDb25uSWQNCitJX1JwY0JpbmRpbmdJbnFEeW5hbWljRW5kcG9pbnQNCitJX1JwY0JpbmRpbmdJbnFEeW5hbWljRW5kcG9pbnRBDQorSV9ScGNCaW5kaW5nSW5xRHluYW1pY0VuZHBvaW50Vw0KK0lfUnBjQmluZGluZ0lucUxvY2FsQ2xpZW50UElEDQorSV9ScGNCaW5kaW5nSW5xTWFyc2hhbGxlZFRhcmdldEluZm8NCitJX1JwY0JpbmRpbmdJbnFTZWN1cml0eUNvbnRleHQNCitJX1JwY0JpbmRpbmdJbnFUcmFuc3BvcnRUeXBlDQorSV9ScGNCaW5kaW5nSW5xV2lyZUlkRm9yU25lZ28NCitJX1JwY0JpbmRpbmdJc0NsaWVudExvY2FsDQorSV9ScGNCaW5kaW5nVG9TdGF0aWNTdHJpbmdCaW5kaW5nVw0KK0lfUnBjQ2xlYXJNdXRleA0KK0lfUnBjQ29ubmVjdGlvbklucVNvY2tCdWZmU2l6ZQ0KK0lfUnBjQ29ubmVjdGlvblNldFNvY2tCdWZmU2l6ZQ0KK0lfUnBjRGVsZXRlTXV0ZXgNCitJX1JwY0VuYWJsZVdtaVRyYWNlDQorSV9ScGNFeGNlcHRpb25GaWx0ZXINCitJX1JwY0ZyZWUNCitJX1JwY0ZyZWVCdWZmZXINCitJX1JwY0ZyZWVQaXBlQnVmZmVyDQorSV9ScGNHZXRCdWZmZXINCitJX1JwY0dldEJ1ZmZlcldpdGhPYmplY3QNCitJX1JwY0dldEN1cnJlbnRDYWxsSGFuZGxlDQorSV9ScGNHZXRFeHRlbmRlZEVycm9yDQorSV9ScGNJZklucVRyYW5zZmVyU3ludGF4ZXMNCitJX1JwY0xvZ0V2ZW50DQorSV9ScGNNYXBXaW4zMlN0YXR1cw0KK0lfUnBjTkRSQ0dldFdpcmVSZXByZXNlbnRhdGlvbg0KK0lfUnBjTkRSU0NvbnRleHRFbWVyZ2VuY3lDbGVhbnVwDQorSV9ScGNOZWdvdGlhdGVUcmFuc2ZlclN5bnRheA0KK0lfUnBjTnNCaW5kaW5nU2V0RW50cnlOYW1lDQorSV9ScGNOc0JpbmRpbmdTZXRFbnRyeU5hbWVBDQorSV9ScGNOc0JpbmRpbmdTZXRFbnRyeU5hbWVXDQorSV9ScGNOc0ludGVyZmFjZUV4cG9ydGVkDQorSV9ScGNOc0ludGVyZmFjZVVuZXhwb3J0ZWQNCitJX1JwY1BhcnNlU2VjdXJpdHkNCitJX1JwY1BhdXNlRXhlY3V0aW9uDQorSV9ScGNQcm94eU5ld0Nvbm5lY3Rpb24NCitJX1JwY1JlYWxsb2NQaXBlQnVmZmVyDQorSV9ScGNSZWNlaXZlDQorSV9ScGNSZWNvcmRDYWxsb3V0RmFpbHVyZQ0KK0lfUnBjUmVwbHlUb0NsaWVudFdpdGhTdGF0dXMNCitJX1JwY1JlcXVlc3RNdXRleA0KK0lfUnBjU05DSE9wdGlvbg0KK0lfUnBjU2VuZA0KK0lfUnBjU2VuZFJlY2VpdmUNCitJX1JwY1NlcnZlckFsbG9jYXRlSXBQb3J0DQorSV9ScGNTZXJ2ZXJDaGVja0NsaWVudFJlc3RyaWN0aW9uDQorSV9ScGNTZXJ2ZXJJbnFBZGRyZXNzQ2hhbmdlRm4NCitJX1JwY1NlcnZlcklucUxvY2FsQ29ubkFkZHJlc3MNCitJX1JwY1NlcnZlcklucVRyYW5zcG9ydFR5cGUNCitJX1JwY1NlcnZlcklzQ2xpZW50RGlzY29ubmVjdGVkDQorSV9ScGNTZXJ2ZXJSZWdpc3RlckZvcndhcmRGdW5jdGlvbg0KK0lfUnBjU2VydmVyU2V0QWRkcmVzc0NoYW5nZUZuDQorSV9ScGNTZXJ2ZXJVc2VQcm90c2VxMkENCitJX1JwY1NlcnZlclVzZVByb3RzZXEyVw0KK0lfUnBjU2VydmVyVXNlUHJvdHNlcUVwMkENCitJX1JwY1NlcnZlclVzZVByb3RzZXFFcDJXDQorSV9ScGNTZXNzaW9uU3RyaWN0Q29udGV4dEhhbmRsZQ0KK0lfUnBjU2V0QXN5bmNIYW5kbGUNCitJX1JwY1NzRG9udFNlcmlhbGl6ZUNvbnRleHQNCitJX1JwY1N5c3RlbUZ1bmN0aW9uMDAxDQorSV9ScGNUcmFuc0Nvbm5lY3Rpb25BbGxvY2F0ZVBhY2tldA0KK0lfUnBjVHJhbnNDb25uZWN0aW9uRnJlZVBhY2tldA0KK0lfUnBjVHJhbnNDb25uZWN0aW9uUmVhbGxvY1BhY2tldA0KK0lfUnBjVHJhbnNEYXRhZ3JhbUFsbG9jYXRlDQorSV9ScGNUcmFuc0RhdGFncmFtQWxsb2NhdGUyDQorSV9ScGNUcmFuc0RhdGFncmFtRnJlZQ0KK0lfUnBjVHJhbnNHZXRUaHJlYWRFdmVudA0KK0lfUnBjVHJhbnNJb0NhbmNlbGxlZA0KK0lfUnBjVHJhbnNTZXJ2ZXJOZXdDb25uZWN0aW9uDQorSV9ScGNUdXJuT25FRUluZm9Qcm9wYWdhdGlvbg0KK0lfVXVpZENyZWF0ZQ0KK01lc0J1ZmZlckhhbmRsZVJlc2V0DQorTWVzRGVjb2RlQnVmZmVySGFuZGxlQ3JlYXRlDQorTWVzRGVjb2RlSW5jcmVtZW50YWxIYW5kbGVDcmVhdGUNCitNZXNFbmNvZGVEeW5CdWZmZXJIYW5kbGVDcmVhdGUNCitNZXNFbmNvZGVGaXhlZEJ1ZmZlckhhbmRsZUNyZWF0ZQ0KK01lc0VuY29kZUluY3JlbWVudGFsSGFuZGxlQ3JlYXRlDQorTWVzSGFuZGxlRnJlZQ0KK01lc0luY3JlbWVudGFsSGFuZGxlUmVzZXQNCitNZXNJbnFQcm9jRW5jb2RpbmdJZA0KK05EUkNDb250ZXh0QmluZGluZw0KK05EUkNDb250ZXh0TWFyc2hhbGwNCitORFJDQ29udGV4dFVubWFyc2hhbGwNCitORFJTQ29udGV4dE1hcnNoYWxsDQorTkRSU0NvbnRleHRNYXJzaGFsbDINCitORFJTQ29udGV4dE1hcnNoYWxsRXgNCitORFJTQ29udGV4dFVubWFyc2hhbGwNCitORFJTQ29udGV4dFVubWFyc2hhbGwyDQorTkRSU0NvbnRleHRVbm1hcnNoYWxsRXgNCitOZHI2NEFzeW5jQ2xpZW50Q2FsbA0KK05kcjY0QXN5bmNTZXJ2ZXJDYWxsNjQNCitOZHI2NEFzeW5jU2VydmVyQ2FsbEFsbA0KK05kcjY0RGNvbUFzeW5jQ2xpZW50Q2FsbA0KK05kcjY0RGNvbUFzeW5jU3R1YkNhbGwNCitOZHJBbGxvY2F0ZQ0KK05kckFzeW5jQ2xpZW50Q2FsbA0KK05kckFzeW5jU2VydmVyQ2FsbA0KK05kckJ5dGVDb3VudFBvaW50ZXJCdWZmZXJTaXplDQorTmRyQnl0ZUNvdW50UG9pbnRlckZyZWUNCitOZHJCeXRlQ291bnRQb2ludGVyTWFyc2hhbGwNCitOZHJCeXRlQ291bnRQb2ludGVyVW5tYXJzaGFsbA0KK05kckNTdGRTdHViQnVmZmVyMl9SZWxlYXNlDQorTmRyQ1N0ZFN0dWJCdWZmZXJfUmVsZWFzZQ0KK05kckNsZWFyT3V0UGFyYW1ldGVycw0KK05kckNsaWVudENhbGwyDQorTmRyQ2xpZW50Q2FsbDMNCitOZHJDbGllbnRDb250ZXh0TWFyc2hhbGwNCitOZHJDbGllbnRDb250ZXh0VW5tYXJzaGFsbA0KK05kckNsaWVudEluaXRpYWxpemUNCitOZHJDbGllbnRJbml0aWFsaXplTmV3DQorTmRyQ29tcGxleEFycmF5QnVmZmVyU2l6ZQ0KK05kckNvbXBsZXhBcnJheUZyZWUNCitOZHJDb21wbGV4QXJyYXlNYXJzaGFsbA0KK05kckNvbXBsZXhBcnJheU1lbW9yeVNpemUNCitOZHJDb21wbGV4QXJyYXlVbm1hcnNoYWxsDQorTmRyQ29tcGxleFN0cnVjdEJ1ZmZlclNpemUNCitOZHJDb21wbGV4U3RydWN0RnJlZQ0KK05kckNvbXBsZXhTdHJ1Y3RNYXJzaGFsbA0KK05kckNvbXBsZXhTdHJ1Y3RNZW1vcnlTaXplDQorTmRyQ29tcGxleFN0cnVjdFVubWFyc2hhbGwNCitOZHJDb25mb3JtYW50QXJyYXlCdWZmZXJTaXplDQorTmRyQ29uZm9ybWFudEFycmF5RnJlZQ0KK05kckNvbmZvcm1hbnRBcnJheU1hcnNoYWxsDQorTmRyQ29uZm9ybWFudEFycmF5TWVtb3J5U2l6ZQ0KK05kckNvbmZvcm1hbnRBcnJheVVubWFyc2hhbGwNCitOZHJDb25mb3JtYW50U3RyaW5nQnVmZmVyU2l6ZQ0KK05kckNvbmZvcm1hbnRTdHJpbmdNYXJzaGFsbA0KK05kckNvbmZvcm1hbnRTdHJpbmdNZW1vcnlTaXplDQorTmRyQ29uZm9ybWFudFN0cmluZ1VubWFyc2hhbGwNCitOZHJDb25mb3JtYW50U3RydWN0QnVmZmVyU2l6ZQ0KK05kckNvbmZvcm1hbnRTdHJ1Y3RGcmVlDQorTmRyQ29uZm9ybWFudFN0cnVjdE1hcnNoYWxsDQorTmRyQ29uZm9ybWFudFN0cnVjdE1lbW9yeVNpemUNCitOZHJDb25mb3JtYW50U3RydWN0VW5tYXJzaGFsbA0KK05kckNvbmZvcm1hbnRWYXJ5aW5nQXJyYXlCdWZmZXJTaXplDQorTmRyQ29uZm9ybWFudFZhcnlpbmdBcnJheUZyZWUNCitOZHJDb25mb3JtYW50VmFyeWluZ0FycmF5TWFyc2hhbGwNCitOZHJDb25mb3JtYW50VmFyeWluZ0FycmF5TWVtb3J5U2l6ZQ0KK05kckNvbmZvcm1hbnRWYXJ5aW5nQXJyYXlVbm1hcnNoYWxsDQorTmRyQ29uZm9ybWFudFZhcnlpbmdTdHJ1Y3RCdWZmZXJTaXplDQorTmRyQ29uZm9ybWFudFZhcnlpbmdTdHJ1Y3RGcmVlDQorTmRyQ29uZm9ybWFudFZhcnlpbmdTdHJ1Y3RNYXJzaGFsbA0KK05kckNvbmZvcm1hbnRWYXJ5aW5nU3RydWN0TWVtb3J5U2l6ZQ0KK05kckNvbmZvcm1hbnRWYXJ5aW5nU3RydWN0VW5tYXJzaGFsbA0KK05kckNvbnRleHRIYW5kbGVJbml0aWFsaXplDQorTmRyQ29udGV4dEhhbmRsZVNpemUNCitOZHJDb252ZXJ0DQorTmRyQ29udmVydDINCitOZHJDb3JyZWxhdGlvbkZyZWUNCitOZHJDb3JyZWxhdGlvbkluaXRpYWxpemUNCitOZHJDb3JyZWxhdGlvblBhc3MNCitOZHJDcmVhdGVTZXJ2ZXJJbnRlcmZhY2VGcm9tU3R1Yg0KK05kckRjb21Bc3luY0NsaWVudENhbGwNCitOZHJEY29tQXN5bmNTdHViQ2FsbA0KK05kckRsbENhblVubG9hZE5vdw0KK05kckRsbEdldENsYXNzT2JqZWN0DQorTmRyRGxsUmVnaXN0ZXJQcm94eQ0KK05kckRsbFVucmVnaXN0ZXJQcm94eQ0KK05kckVuY2Fwc3VsYXRlZFVuaW9uQnVmZmVyU2l6ZQ0KK05kckVuY2Fwc3VsYXRlZFVuaW9uRnJlZQ0KK05kckVuY2Fwc3VsYXRlZFVuaW9uTWFyc2hhbGwNCitOZHJFbmNhcHN1bGF0ZWRVbmlvbk1lbW9yeVNpemUNCitOZHJFbmNhcHN1bGF0ZWRVbmlvblVubWFyc2hhbGwNCitOZHJGaXhlZEFycmF5QnVmZmVyU2l6ZQ0KK05kckZpeGVkQXJyYXlGcmVlDQorTmRyRml4ZWRBcnJheU1hcnNoYWxsDQorTmRyRml4ZWRBcnJheU1lbW9yeVNpemUNCitOZHJGaXhlZEFycmF5VW5tYXJzaGFsbA0KK05kckZyZWVCdWZmZXINCitOZHJGdWxsUG9pbnRlckZyZWUNCitOZHJGdWxsUG9pbnRlckluc2VydFJlZklkDQorTmRyRnVsbFBvaW50ZXJRdWVyeVBvaW50ZXINCitOZHJGdWxsUG9pbnRlclF1ZXJ5UmVmSWQNCitOZHJGdWxsUG9pbnRlclhsYXRGcmVlDQorTmRyRnVsbFBvaW50ZXJYbGF0SW5pdA0KK05kckdldEJ1ZmZlcg0KK05kckdldERjb21Qcm90b2NvbFZlcnNpb24NCitOZHJHZXRTaW1wbGVUeXBlQnVmZmVyQWxpZ25tZW50DQorTmRyR2V0U2ltcGxlVHlwZUJ1ZmZlclNpemUNCitOZHJHZXRTaW1wbGVUeXBlTWVtb3J5U2l6ZQ0KK05kckdldFR5cGVGbGFncw0KK05kckdldFVzZXJNYXJzaGFsSW5mbw0KK05kckludGVyZmFjZVBvaW50ZXJCdWZmZXJTaXplDQorTmRySW50ZXJmYWNlUG9pbnRlckZyZWUNCitOZHJJbnRlcmZhY2VQb2ludGVyTWFyc2hhbGwNCitOZHJJbnRlcmZhY2VQb2ludGVyTWVtb3J5U2l6ZQ0KK05kckludGVyZmFjZVBvaW50ZXJVbm1hcnNoYWxsDQorTmRyTWFwQ29tbUFuZEZhdWx0U3RhdHVzDQorTmRyTWVzUHJvY0VuY29kZURlY29kZQ0KK05kck1lc1Byb2NFbmNvZGVEZWNvZGUyDQorTmRyTWVzUHJvY0VuY29kZURlY29kZTMNCitOZHJNZXNTaW1wbGVUeXBlQWxpZ25TaXplDQorTmRyTWVzU2ltcGxlVHlwZUFsaWduU2l6ZUFsbA0KK05kck1lc1NpbXBsZVR5cGVEZWNvZGUNCitOZHJNZXNTaW1wbGVUeXBlRGVjb2RlQWxsDQorTmRyTWVzU2ltcGxlVHlwZUVuY29kZQ0KK05kck1lc1NpbXBsZVR5cGVFbmNvZGVBbGwNCitOZHJNZXNUeXBlQWxpZ25TaXplDQorTmRyTWVzVHlwZUFsaWduU2l6ZTINCitOZHJNZXNUeXBlQWxpZ25TaXplMw0KK05kck1lc1R5cGVEZWNvZGUNCitOZHJNZXNUeXBlRGVjb2RlMg0KK05kck1lc1R5cGVEZWNvZGUzDQorTmRyTWVzVHlwZUVuY29kZQ0KK05kck1lc1R5cGVFbmNvZGUyDQorTmRyTWVzVHlwZUVuY29kZTMNCitOZHJNZXNUeXBlRnJlZTINCitOZHJNZXNUeXBlRnJlZTMNCitOZHJOb25Db25mb3JtYW50U3RyaW5nQnVmZmVyU2l6ZQ0KK05kck5vbkNvbmZvcm1hbnRTdHJpbmdNYXJzaGFsbA0KK05kck5vbkNvbmZvcm1hbnRTdHJpbmdNZW1vcnlTaXplDQorTmRyTm9uQ29uZm9ybWFudFN0cmluZ1VubWFyc2hhbGwNCitOZHJOb25FbmNhcHN1bGF0ZWRVbmlvbkJ1ZmZlclNpemUNCitOZHJOb25FbmNhcHN1bGF0ZWRVbmlvbkZyZWUNCitOZHJOb25FbmNhcHN1bGF0ZWRVbmlvbk1hcnNoYWxsDQorTmRyTm9uRW5jYXBzdWxhdGVkVW5pb25NZW1vcnlTaXplDQorTmRyTm9uRW5jYXBzdWxhdGVkVW5pb25Vbm1hcnNoYWxsDQorTmRyTnNHZXRCdWZmZXINCitOZHJOc1NlbmRSZWNlaXZlDQorTmRyT2xlQWxsb2NhdGUNCitOZHJPbGVGcmVlDQorTmRyT3V0SW5pdA0KK05kclBhcnRpYWxJZ25vcmVDbGllbnRCdWZmZXJTaXplDQorTmRyUGFydGlhbElnbm9yZUNsaWVudE1hcnNoYWxsDQorTmRyUGFydGlhbElnbm9yZVNlcnZlckluaXRpYWxpemUNCitOZHJQYXJ0aWFsSWdub3JlU2VydmVyVW5tYXJzaGFsbA0KK05kclBvaW50ZXJCdWZmZXJTaXplDQorTmRyUG9pbnRlckZyZWUNCitOZHJQb2ludGVyTWFyc2hhbGwNCitOZHJQb2ludGVyTWVtb3J5U2l6ZQ0KK05kclBvaW50ZXJVbm1hcnNoYWxsDQorTmRyUHJveHlFcnJvckhhbmRsZXINCitOZHJQcm94eUZyZWVCdWZmZXINCitOZHJQcm94eUdldEJ1ZmZlcg0KK05kclByb3h5SW5pdGlhbGl6ZQ0KK05kclByb3h5U2VuZFJlY2VpdmUNCitOZHJSYW5nZVVubWFyc2hhbGwNCitOZHJScGNTbUNsaWVudEFsbG9jYXRlDQorTmRyUnBjU21DbGllbnRGcmVlDQorTmRyUnBjU21TZXRDbGllbnRUb09zZg0KK05kclJwY1NzRGVmYXVsdEFsbG9jYXRlDQorTmRyUnBjU3NEZWZhdWx0RnJlZQ0KK05kclJwY1NzRGlzYWJsZUFsbG9jYXRlDQorTmRyUnBjU3NFbmFibGVBbGxvY2F0ZQ0KK05kclNlbmRSZWNlaXZlDQorTmRyU2VydmVyQ2FsbDINCitOZHJTZXJ2ZXJDYWxsQWxsDQorTmRyU2VydmVyQ2FsbE5kcjY0DQorTmRyU2VydmVyQ29udGV4dE1hcnNoYWxsDQorTmRyU2VydmVyQ29udGV4dE5ld01hcnNoYWxsDQorTmRyU2VydmVyQ29udGV4dE5ld1VubWFyc2hhbGwNCitOZHJTZXJ2ZXJDb250ZXh0VW5tYXJzaGFsbA0KK05kclNlcnZlckluaXRpYWxpemUNCitOZHJTZXJ2ZXJJbml0aWFsaXplTWFyc2hhbGwNCitOZHJTZXJ2ZXJJbml0aWFsaXplTmV3DQorTmRyU2VydmVySW5pdGlhbGl6ZVBhcnRpYWwNCitOZHJTZXJ2ZXJJbml0aWFsaXplVW5tYXJzaGFsbA0KK05kclNpbXBsZVN0cnVjdEJ1ZmZlclNpemUNCitOZHJTaW1wbGVTdHJ1Y3RGcmVlDQorTmRyU2ltcGxlU3RydWN0TWFyc2hhbGwNCitOZHJTaW1wbGVTdHJ1Y3RNZW1vcnlTaXplDQorTmRyU2ltcGxlU3RydWN0VW5tYXJzaGFsbA0KK05kclNpbXBsZVR5cGVNYXJzaGFsbA0KK05kclNpbXBsZVR5cGVVbm1hcnNoYWxsDQorTmRyU3R1YkNhbGwyDQorTmRyU3R1YkNhbGwzDQorTmRyU3R1YkZvcndhcmRpbmdGdW5jdGlvbg0KK05kclN0dWJHZXRCdWZmZXINCitOZHJTdHViSW5pdGlhbGl6ZQ0KK05kclN0dWJJbml0aWFsaXplTWFyc2hhbGwNCitOZHJUeXBlRmxhZ3MNCitOZHJUeXBlRnJlZQ0KK05kclR5cGVNYXJzaGFsbA0KK05kclR5cGVTaXplDQorTmRyVHlwZVVubWFyc2hhbGwNCitOZHJVbm1hcnNoYWxsQmFzZXR5cGVJbmxpbmUNCitOZHJVc2VyTWFyc2hhbEJ1ZmZlclNpemUNCitOZHJVc2VyTWFyc2hhbEZyZWUNCitOZHJVc2VyTWFyc2hhbE1hcnNoYWxsDQorTmRyVXNlck1hcnNoYWxNZW1vcnlTaXplDQorTmRyVXNlck1hcnNoYWxTaW1wbGVUeXBlQ29udmVydA0KK05kclVzZXJNYXJzaGFsVW5tYXJzaGFsbA0KK05kclZhcnlpbmdBcnJheUJ1ZmZlclNpemUNCitOZHJWYXJ5aW5nQXJyYXlGcmVlDQorTmRyVmFyeWluZ0FycmF5TWFyc2hhbGwNCitOZHJWYXJ5aW5nQXJyYXlNZW1vcnlTaXplDQorTmRyVmFyeWluZ0FycmF5VW5tYXJzaGFsbA0KK05kclhtaXRPclJlcEFzQnVmZmVyU2l6ZQ0KK05kclhtaXRPclJlcEFzRnJlZQ0KK05kclhtaXRPclJlcEFzTWFyc2hhbGwNCitOZHJYbWl0T3JSZXBBc01lbW9yeVNpemUNCitOZHJYbWl0T3JSZXBBc1VubWFyc2hhbGwNCitOZHJwQ3JlYXRlUHJveHkNCitOZHJwQ3JlYXRlU3R1Yg0KK05kcnBHZXRQcm9jRm9ybWF0U3RyaW5nDQorTmRycEdldFR5cGVGb3JtYXRTdHJpbmcNCitOZHJwR2V0VHlwZUdlbkNvb2tpZQ0KK05kcnBNZW1vcnlJbmNyZW1lbnQNCitOZHJwUmVsZWFzZVR5cGVGb3JtYXRTdHJpbmcNCitOZHJwUmVsZWFzZVR5cGVHZW5Db29raWUNCitOZHJwU2V0UnBjU3NEZWZhdWx0cw0KK05kcnBWYXJWdE9mVHlwZURlc2MNCitScGNBYm9ydEFzeW5jQ2FsbA0KK1JwY0FzeW5jQWJvcnRDYWxsDQorUnBjQXN5bmNDYW5jZWxDYWxsDQorUnBjQXN5bmNDb21wbGV0ZUNhbGwNCitScGNBc3luY0dldENhbGxTdGF0dXMNCitScGNBc3luY0luaXRpYWxpemVIYW5kbGUNCitScGNBc3luY1JlZ2lzdGVySW5mbw0KK1JwY0JpbmRpbmdDb3B5DQorUnBjQmluZGluZ0ZyZWUNCitScGNCaW5kaW5nRnJvbVN0cmluZ0JpbmRpbmdBDQorUnBjQmluZGluZ0Zyb21TdHJpbmdCaW5kaW5nVw0KK1JwY0JpbmRpbmdJbnFBdXRoQ2xpZW50QQ0KK1JwY0JpbmRpbmdJbnFBdXRoQ2xpZW50RXhBDQorUnBjQmluZGluZ0lucUF1dGhDbGllbnRFeFcNCitScGNCaW5kaW5nSW5xQXV0aENsaWVudFcNCitScGNCaW5kaW5nSW5xQXV0aEluZm9BDQorUnBjQmluZGluZ0lucUF1dGhJbmZvRXhBDQorUnBjQmluZGluZ0lucUF1dGhJbmZvRXhXDQorUnBjQmluZGluZ0lucUF1dGhJbmZvVw0KK1JwY0JpbmRpbmdJbnFPYmplY3QNCitScGNCaW5kaW5nSW5xT3B0aW9uDQorUnBjQmluZGluZ1Jlc2V0DQorUnBjQmluZGluZ1NlcnZlckZyb21DbGllbnQNCitScGNCaW5kaW5nU2V0QXV0aEluZm9BDQorUnBjQmluZGluZ1NldEF1dGhJbmZvRXhBDQorUnBjQmluZGluZ1NldEF1dGhJbmZvRXhXDQorUnBjQmluZGluZ1NldEF1dGhJbmZvVw0KK1JwY0JpbmRpbmdTZXRPYmplY3QNCitScGNCaW5kaW5nU2V0T3B0aW9uDQorUnBjQmluZGluZ1RvU3RyaW5nQmluZGluZ0ENCitScGNCaW5kaW5nVG9TdHJpbmdCaW5kaW5nVw0KK1JwY0JpbmRpbmdWZWN0b3JGcmVlDQorUnBjQ2FuY2VsQXN5bmNDYWxsDQorUnBjQ2FuY2VsVGhyZWFkDQorUnBjQ2FuY2VsVGhyZWFkRXgNCitScGNDZXJ0R2VuZXJhdGVQcmluY2lwYWxOYW1lQQ0KK1JwY0NlcnRHZW5lcmF0ZVByaW5jaXBhbE5hbWVXDQorUnBjQ29tcGxldGVBc3luY0NhbGwNCitScGNFcFJlZ2lzdGVyQQ0KK1JwY0VwUmVnaXN0ZXJOb1JlcGxhY2VBDQorUnBjRXBSZWdpc3Rlck5vUmVwbGFjZVcNCitScGNFcFJlZ2lzdGVyVw0KK1JwY0VwUmVzb2x2ZUJpbmRpbmcNCitScGNFcFVucmVnaXN0ZXINCitScGNFcnJvckFkZFJlY29yZA0KK1JwY0Vycm9yQ2xlYXJJbmZvcm1hdGlvbg0KK1JwY0Vycm9yRW5kRW51bWVyYXRpb24NCitScGNFcnJvckdldE5leHRSZWNvcmQNCitScGNFcnJvckdldE51bWJlck9mUmVjb3Jkcw0KK1JwY0Vycm9yTG9hZEVycm9ySW5mbw0KK1JwY0Vycm9yUmVzZXRFbnVtZXJhdGlvbg0KK1JwY0Vycm9yU2F2ZUVycm9ySW5mbw0KK1JwY0Vycm9yU3RhcnRFbnVtZXJhdGlvbg0KK1JwY0ZyZWVBdXRob3JpemF0aW9uQ29udGV4dA0KK1JwY0dldEFzeW5jQ2FsbFN0YXR1cw0KK1JwY0dldEF1dGhvcml6YXRpb25Db250ZXh0Rm9yQ2xpZW50DQorUnBjSWZJZFZlY3RvckZyZWUNCitScGNJZklucUlkDQorUnBjSW1wZXJzb25hdGVDbGllbnQNCitScGNJbml0aWFsaXplQXN5bmNIYW5kbGUNCitScGNNZ210RW5hYmxlSWRsZUNsZWFudXANCitScGNNZ210RXBFbHRJbnFCZWdpbg0KK1JwY01nbXRFcEVsdElucURvbmUNCitScGNNZ210RXBFbHRJbnFOZXh0QQ0KK1JwY01nbXRFcEVsdElucU5leHRXDQorUnBjTWdtdEVwVW5yZWdpc3Rlcg0KK1JwY01nbXRJbnFDb21UaW1lb3V0DQorUnBjTWdtdElucURlZmF1bHRQcm90ZWN0TGV2ZWwNCitScGNNZ210SW5xSWZJZHMNCitScGNNZ210SW5xU2VydmVyUHJpbmNOYW1lQQ0KK1JwY01nbXRJbnFTZXJ2ZXJQcmluY05hbWVXDQorUnBjTWdtdElucVN0YXRzDQorUnBjTWdtdElzU2VydmVyTGlzdGVuaW5nDQorUnBjTWdtdFNldEF1dGhvcml6YXRpb25Gbg0KK1JwY01nbXRTZXRDYW5jZWxUaW1lb3V0DQorUnBjTWdtdFNldENvbVRpbWVvdXQNCitScGNNZ210U2V0U2VydmVyU3RhY2tTaXplDQorUnBjTWdtdFN0YXRzVmVjdG9yRnJlZQ0KK1JwY01nbXRTdG9wU2VydmVyTGlzdGVuaW5nDQorUnBjTWdtdFdhaXRTZXJ2ZXJMaXN0ZW4NCitScGNOZXR3b3JrSW5xUHJvdHNlcXNBDQorUnBjTmV0d29ya0lucVByb3RzZXFzVw0KK1JwY05ldHdvcmtJc1Byb3RzZXFWYWxpZEENCitScGNOZXR3b3JrSXNQcm90c2VxVmFsaWRXDQorUnBjTnNCaW5kaW5nSW5xRW50cnlOYW1lQQ0KK1JwY05zQmluZGluZ0lucUVudHJ5TmFtZVcNCitScGNPYmplY3RJbnFUeXBlDQorUnBjT2JqZWN0U2V0SW5xRm4NCitScGNPYmplY3RTZXRUeXBlDQorUnBjUHJvdHNlcVZlY3RvckZyZWVBDQorUnBjUHJvdHNlcVZlY3RvckZyZWVXDQorUnBjUmFpc2VFeGNlcHRpb24NCitScGNSZWdpc3RlckFzeW5jSW5mbw0KK1JwY1JldmVydFRvU2VsZg0KK1JwY1JldmVydFRvU2VsZkV4DQorUnBjU2VydmVySW5xQmluZGluZ3MNCitScGNTZXJ2ZXJJbnFDYWxsQXR0cmlidXRlc0ENCitScGNTZXJ2ZXJJbnFDYWxsQXR0cmlidXRlc1cNCitScGNTZXJ2ZXJJbnFEZWZhdWx0UHJpbmNOYW1lQQ0KK1JwY1NlcnZlcklucURlZmF1bHRQcmluY05hbWVXDQorUnBjU2VydmVySW5xSWYNCitScGNTZXJ2ZXJMaXN0ZW4NCitScGNTZXJ2ZXJSZWdpc3RlckF1dGhJbmZvQQ0KK1JwY1NlcnZlclJlZ2lzdGVyQXV0aEluZm9XDQorUnBjU2VydmVyUmVnaXN0ZXJJZg0KK1JwY1NlcnZlclJlZ2lzdGVySWYyDQorUnBjU2VydmVyUmVnaXN0ZXJJZkV4DQorUnBjU2VydmVyVGVzdENhbmNlbA0KK1JwY1NlcnZlclVucmVnaXN0ZXJJZg0KK1JwY1NlcnZlclVucmVnaXN0ZXJJZkV4DQorUnBjU2VydmVyVXNlQWxsUHJvdHNlcXMNCitScGNTZXJ2ZXJVc2VBbGxQcm90c2Vxc0V4DQorUnBjU2VydmVyVXNlQWxsUHJvdHNlcXNJZg0KK1JwY1NlcnZlclVzZUFsbFByb3RzZXFzSWZFeA0KK1JwY1NlcnZlclVzZVByb3RzZXFBDQorUnBjU2VydmVyVXNlUHJvdHNlcUVwQQ0KK1JwY1NlcnZlclVzZVByb3RzZXFFcEV4QQ0KK1JwY1NlcnZlclVzZVByb3RzZXFFcEV4Vw0KK1JwY1NlcnZlclVzZVByb3RzZXFFcFcNCitScGNTZXJ2ZXJVc2VQcm90c2VxRXhBDQorUnBjU2VydmVyVXNlUHJvdHNlcUV4Vw0KK1JwY1NlcnZlclVzZVByb3RzZXFJZkENCitScGNTZXJ2ZXJVc2VQcm90c2VxSWZFeEENCitScGNTZXJ2ZXJVc2VQcm90c2VxSWZFeFcNCitScGNTZXJ2ZXJVc2VQcm90c2VxSWZXDQorUnBjU2VydmVyVXNlUHJvdHNlcVcNCitScGNTZXJ2ZXJZaWVsZA0KK1JwY1NtQWxsb2NhdGUNCitScGNTbUNsaWVudEZyZWUNCitScGNTbURlc3Ryb3lDbGllbnRDb250ZXh0DQorUnBjU21EaXNhYmxlQWxsb2NhdGUNCitScGNTbUVuYWJsZUFsbG9jYXRlDQorUnBjU21GcmVlDQorUnBjU21HZXRUaHJlYWRIYW5kbGUNCitScGNTbVNldENsaWVudEFsbG9jRnJlZQ0KK1JwY1NtU2V0VGhyZWFkSGFuZGxlDQorUnBjU21Td2FwQ2xpZW50QWxsb2NGcmVlDQorUnBjU3NBbGxvY2F0ZQ0KK1JwY1NzQ29udGV4dExvY2tFeGNsdXNpdmUNCitScGNTc0NvbnRleHRMb2NrU2hhcmVkDQorUnBjU3NEZXN0cm95Q2xpZW50Q29udGV4dA0KK1JwY1NzRGlzYWJsZUFsbG9jYXRlDQorUnBjU3NEb250U2VyaWFsaXplQ29udGV4dA0KK1JwY1NzRW5hYmxlQWxsb2NhdGUNCitScGNTc0ZyZWUNCitScGNTc0dldENvbnRleHRCaW5kaW5nDQorUnBjU3NHZXRUaHJlYWRIYW5kbGUNCitScGNTc1NldENsaWVudEFsbG9jRnJlZQ0KK1JwY1NzU2V0VGhyZWFkSGFuZGxlDQorUnBjU3NTd2FwQ2xpZW50QWxsb2NGcmVlDQorUnBjU3RyaW5nQmluZGluZ0NvbXBvc2VBDQorUnBjU3RyaW5nQmluZGluZ0NvbXBvc2VXDQorUnBjU3RyaW5nQmluZGluZ1BhcnNlQQ0KK1JwY1N0cmluZ0JpbmRpbmdQYXJzZVcNCitScGNTdHJpbmdGcmVlQQ0KK1JwY1N0cmluZ0ZyZWVXDQorUnBjVGVzdENhbmNlbA0KK1JwY1VzZXJGcmVlDQorU2ltcGxlVHlwZUFsaWdubWVudA0KK1NpbXBsZVR5cGVCdWZmZXJTaXplDQorU2ltcGxlVHlwZU1lbW9yeVNpemUNCitUb3dlckNvbnN0cnVjdA0KK1Rvd2VyRXhwbG9kZQ0KK1V1aWRDb21wYXJlDQorVXVpZENyZWF0ZQ0KK1V1aWRDcmVhdGVOaWwNCitVdWlkQ3JlYXRlU2VxdWVudGlhbA0KK1V1aWRFcXVhbA0KK1V1aWRGcm9tU3RyaW5nQQ0KK1V1aWRGcm9tU3RyaW5nVw0KK1V1aWRIYXNoDQorVXVpZElzTmlsDQorVXVpZFRvU3RyaW5nQQ0KK1V1aWRUb1N0cmluZ1cNCitwZm5GcmVlUm91dGluZXMgREFUQQ0KK3Bmbk1hcnNoYWxsUm91dGluZXMgREFUQQ0KK3BmblNpemVSb3V0aW5lcyBEQVRBDQorcGZuVW5tYXJzaGFsbFJvdXRpbmVzIERBVEENCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9ycGNzcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9ycGNzcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjAwYTgxMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3JwY3NzLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFJQQ1NTLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBSUENTUy5kbGwNCitFWFBPUlRTDQorU2VydmljZU1haW4NCitDb0dldENvbUNhdGFsb2cNCitHZXRSUENTU0luZm8NCitXaGljaFNlcnZpY2UNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9yc2FlbmguZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcnNhZW5oLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MTVmOGE3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcnNhZW5oLmRlZgpAQCAtMCwwICsxLDM1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFJTQUVOSC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUlNBRU5ILmRsbA0KK0VYUE9SVFMNCitDUEFjcXVpcmVDb250ZXh0DQorQ1BDcmVhdGVIYXNoDQorQ1BEZWNyeXB0DQorQ1BEZXJpdmVLZXkNCitDUERlc3Ryb3lIYXNoDQorQ1BEZXN0cm95S2V5DQorQ1BEdXBsaWNhdGVIYXNoDQorQ1BEdXBsaWNhdGVLZXkNCitDUEVuY3J5cHQNCitDUEV4cG9ydEtleQ0KK0NQR2VuS2V5DQorQ1BHZW5SYW5kb20NCitDUEdldEhhc2hQYXJhbQ0KK0NQR2V0S2V5UGFyYW0NCitDUEdldFByb3ZQYXJhbQ0KK0NQR2V0VXNlcktleQ0KK0NQSGFzaERhdGENCitDUEhhc2hTZXNzaW9uS2V5DQorQ1BJbXBvcnRLZXkNCitDUFJlbGVhc2VDb250ZXh0DQorQ1BTZXRIYXNoUGFyYW0NCitDUFNldEtleVBhcmFtDQorQ1BTZXRQcm92UGFyYW0NCitDUFNpZ25IYXNoDQorQ1BWZXJpZnlTaWduYXR1cmUNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9yc2ZzYXBzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3JzZnNhcHMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg0YmM1MDcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9yc2ZzYXBzLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHBzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBwcy5kbGwNCitFWFBPUlRTDQorR2V0UHJveHlEbGxJbmZvDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9yc2h4MzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvcnNoeDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xY2I5YzE2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcnNoeDMyLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFJTSFgzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUlNIWDMyLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3JzbXBzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3JzbXBzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZjNiZTk5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcnNtcHMuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcnNtcHMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHJzbXBzLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldFByb3h5RGxsSW5mbw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3J0bS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9ydG0uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM5ZTIzMDAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9ydG0uZGVmCkBAIC0wLDAgKzEsMTIwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHJ0bS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcnRtLmRsbA0KK0VYUE9SVFMNCitCZXN0TWF0Y2hJblRhYmxlDQorQ2hlY2tUYWJsZQ0KK0NyZWF0ZVRhYmxlDQorRGVsZXRlRnJvbVRhYmxlDQorRGVzdHJveVRhYmxlDQorRHVtcFRhYmxlDQorRW51bU92ZXJUYWJsZQ0KK0luc2VydEludG9UYWJsZQ0KK01nbUFkZEdyb3VwTWVtYmVyc2hpcEVudHJ5DQorTWdtRGVJbml0aWFsaXplDQorTWdtRGVSZWdpc3Rlck1Qcm90b2NvbA0KK01nbURlbGV0ZUdyb3VwTWVtYmVyc2hpcEVudHJ5DQorTWdtR2V0Rmlyc3RNZmUNCitNZ21HZXRGaXJzdE1mZVN0YXRzDQorTWdtR2V0TWZlDQorTWdtR2V0TWZlU3RhdHMNCitNZ21HZXROZXh0TWZlDQorTWdtR2V0TmV4dE1mZVN0YXRzDQorTWdtR2V0UHJvdG9jb2xPbkludGVyZmFjZQ0KK01nbUdyb3VwRW51bWVyYXRpb25FbmQNCitNZ21Hcm91cEVudW1lcmF0aW9uR2V0TmV4dA0KK01nbUdyb3VwRW51bWVyYXRpb25TdGFydA0KK01nbUluaXRpYWxpemUNCitNZ21SZWdpc3Rlck1Qcm90b2NvbA0KK01nbVJlbGVhc2VJbnRlcmZhY2VPd25lcnNoaXANCitNZ21UYWtlSW50ZXJmYWNlT3duZXJzaGlwDQorTmV4dE1hdGNoSW5UYWJsZQ0KK1J0bUFkZE5leHRIb3ANCitSdG1BZGRSb3V0ZQ0KK1J0bUFkZFJvdXRlVG9EZXN0DQorUnRtQmxvY2tDb252ZXJ0Um91dGVzVG9TdGF0aWMNCitSdG1CbG9ja0RlbGV0ZVJvdXRlcw0KK1J0bUJsb2NrTWV0aG9kcw0KK1J0bUJsb2NrU2V0Um91dGVFbmFibGUNCitSdG1DbG9zZUVudW1lcmF0aW9uSGFuZGxlDQorUnRtQ3JlYXRlRGVzdEVudW0NCitSdG1DcmVhdGVFbnVtZXJhdGlvbkhhbmRsZQ0KK1J0bUNyZWF0ZU5leHRIb3BFbnVtDQorUnRtQ3JlYXRlUm91dGVFbnVtDQorUnRtQ3JlYXRlUm91dGVMaXN0DQorUnRtQ3JlYXRlUm91dGVMaXN0RW51bQ0KK1J0bUNyZWF0ZVJvdXRlVGFibGUNCitSdG1EZWxldGVFbnVtSGFuZGxlDQorUnRtRGVsZXRlTmV4dEhvcA0KK1J0bURlbGV0ZVJvdXRlDQorUnRtRGVsZXRlUm91dGVMaXN0DQorUnRtRGVsZXRlUm91dGVUYWJsZQ0KK1J0bURlbGV0ZVJvdXRlVG9EZXN0DQorUnRtRGVxdWV1ZVJvdXRlQ2hhbmdlTWVzc2FnZQ0KK1J0bURlcmVmZXJlbmNlSGFuZGxlcw0KK1J0bURlcmVnaXN0ZXJDbGllbnQNCitSdG1EZXJlZ2lzdGVyRW50aXR5DQorUnRtRGVyZWdpc3RlckZyb21DaGFuZ2VOb3RpZmljYXRpb24NCitSdG1FbnVtZXJhdGVHZXROZXh0Um91dGUNCitSdG1GaW5kTmV4dEhvcA0KK1J0bUdldEFkZHJlc3NGYW1pbHlJbmZvDQorUnRtR2V0Q2hhbmdlU3RhdHVzDQorUnRtR2V0Q2hhbmdlZERlc3RzDQorUnRtR2V0RGVzdEluZm8NCitSdG1HZXRFbnRpdHlJbmZvDQorUnRtR2V0RW50aXR5TWV0aG9kcw0KK1J0bUdldEVudW1EZXN0cw0KK1J0bUdldEVudW1OZXh0SG9wcw0KK1J0bUdldEVudW1Sb3V0ZXMNCitSdG1HZXRFeGFjdE1hdGNoRGVzdGluYXRpb24NCitSdG1HZXRFeGFjdE1hdGNoUm91dGUNCitSdG1HZXRGaXJzdFJvdXRlDQorUnRtR2V0SW5zdGFuY2VJbmZvDQorUnRtR2V0SW5zdGFuY2VzDQorUnRtR2V0TGVzc1NwZWNpZmljRGVzdGluYXRpb24NCitSdG1HZXRMaXN0RW51bVJvdXRlcw0KK1J0bUdldE1vc3RTcGVjaWZpY0Rlc3RpbmF0aW9uDQorUnRtR2V0TmV0d29ya0NvdW50DQorUnRtR2V0TmV4dEhvcEluZm8NCitSdG1HZXROZXh0SG9wUG9pbnRlcg0KK1J0bUdldE5leHRSb3V0ZQ0KK1J0bUdldE9wYXF1ZUluZm9ybWF0aW9uUG9pbnRlcg0KK1J0bUdldFJlZ2lzdGVyZWRFbnRpdGllcw0KK1J0bUdldFJvdXRlQWdlDQorUnRtR2V0Um91dGVJbmZvDQorUnRtR2V0Um91dGVQb2ludGVyDQorUnRtSG9sZERlc3RpbmF0aW9uDQorUnRtSWdub3JlQ2hhbmdlZERlc3RzDQorUnRtSW5zZXJ0SW5Sb3V0ZUxpc3QNCitSdG1JbnZva2VNZXRob2QNCitSdG1Jc0Jlc3RSb3V0ZQ0KK1J0bUlzTWFya2VkRm9yQ2hhbmdlTm90aWZpY2F0aW9uDQorUnRtSXNSb3V0ZQ0KK1J0bUxvY2tEZXN0aW5hdGlvbg0KK1J0bUxvY2tOZXh0SG9wDQorUnRtTG9ja1JvdXRlDQorUnRtTG9va3VwSVBEZXN0aW5hdGlvbg0KK1J0bU1hcmtEZXN0Rm9yQ2hhbmdlTm90aWZpY2F0aW9uDQorUnRtUmVhZEFkZHJlc3NGYW1pbHlDb25maWcNCitSdG1SZWFkSW5zdGFuY2VDb25maWcNCitSdG1SZWZlcmVuY2VIYW5kbGVzDQorUnRtUmVnaXN0ZXJDbGllbnQNCitSdG1SZWdpc3RlckVudGl0eQ0KK1J0bVJlZ2lzdGVyRm9yQ2hhbmdlTm90aWZpY2F0aW9uDQorUnRtUmVsZWFzZUNoYW5nZWREZXN0cw0KK1J0bVJlbGVhc2VEZXN0SW5mbw0KK1J0bVJlbGVhc2VEZXN0cw0KK1J0bVJlbGVhc2VFbnRpdGllcw0KK1J0bVJlbGVhc2VFbnRpdHlJbmZvDQorUnRtUmVsZWFzZU5leHRIb3BJbmZvDQorUnRtUmVsZWFzZU5leHRIb3BzDQorUnRtUmVsZWFzZVJvdXRlSW5mbw0KK1J0bVJlbGVhc2VSb3V0ZXMNCitSdG1VcGRhdGVBbmRVbmxvY2tSb3V0ZQ0KK1J0bVdyaXRlQWRkcmVzc0ZhbWlseUNvbmZpZw0KK1J0bVdyaXRlSW5zdGFuY2VDb25maWcNCitTZWFyY2hJblRhYmxlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvcnR1dGlscy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9ydHV0aWxzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MmY3YjY1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvcnR1dGlscy5kZWYKQEAgLTAsMCArMSw1MSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBydHV0aWxzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBydHV0aWxzLmRsbA0KK0VYUE9SVFMNCitMb2dFcnJvckENCitMb2dFcnJvclcNCitMb2dFdmVudEENCitMb2dFdmVudFcNCitNcHJTZXR1cFByb3RvY29sRW51bQ0KK01wclNldHVwUHJvdG9jb2xGcmVlDQorUXVldWVXb3JrSXRlbQ0KK1JvdXRlckFzc2VydA0KK1JvdXRlckdldEVycm9yU3RyaW5nQQ0KK1JvdXRlckdldEVycm9yU3RyaW5nVw0KK1JvdXRlckxvZ0RlcmVnaXN0ZXJBDQorUm91dGVyTG9nRGVyZWdpc3RlclcNCitSb3V0ZXJMb2dFdmVudEENCitSb3V0ZXJMb2dFdmVudERhdGFBDQorUm91dGVyTG9nRXZlbnREYXRhVw0KK1JvdXRlckxvZ0V2ZW50RXhBDQorUm91dGVyTG9nRXZlbnRFeFcNCitSb3V0ZXJMb2dFdmVudFN0cmluZ0ENCitSb3V0ZXJMb2dFdmVudFN0cmluZ1cNCitSb3V0ZXJMb2dFdmVudFZhbGlzdEV4QQ0KK1JvdXRlckxvZ0V2ZW50VmFsaXN0RXhXDQorUm91dGVyTG9nRXZlbnRXDQorUm91dGVyTG9nUmVnaXN0ZXJBDQorUm91dGVyTG9nUmVnaXN0ZXJXDQorU2V0SW9Db21wbGV0aW9uUHJvYw0KK1RyYWNlRGVyZWdpc3RlckENCitUcmFjZURlcmVnaXN0ZXJFeEENCitUcmFjZURlcmVnaXN0ZXJFeFcNCitUcmFjZURlcmVnaXN0ZXJXDQorVHJhY2VEdW1wRXhBDQorVHJhY2VEdW1wRXhXDQorVHJhY2VHZXRDb25zb2xlQQ0KK1RyYWNlR2V0Q29uc29sZVcNCitUcmFjZVByaW50ZkENCitUcmFjZVByaW50ZkV4QQ0KK1RyYWNlUHJpbnRmRXhXDQorVHJhY2VQcmludGZXDQorVHJhY2VQdXRzRXhBDQorVHJhY2VQdXRzRXhXDQorVHJhY2VSZWdpc3RlckV4QQ0KK1RyYWNlUmVnaXN0ZXJFeFcNCitUcmFjZVZwcmludGZFeEENCitUcmFjZVZwcmludGZFeFcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9yd25oLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3J3bmguZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE0ZjRjYWMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9yd25oLmRlZgpAQCAtMCwwICsxLDEwNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBSV05ILmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBSV05ILmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBDQ3JpdFNlY3Rpb246OkNDcml0U2VjdGlvbih2b2lkKSBfX3B0cjY0DQorPz8wQ0NyaXRTZWN0aW9uQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1NoYXJlTG9ja0V4cG9ydDo6Q1NoYXJlTG9ja0V4cG9ydCh2b2lkKSBfX3B0cjY0DQorPz8wQ1NoYXJlTG9ja0V4cG9ydEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTaGFyZUxvY2tOSDo6Q1NoYXJlTG9ja05IKHZvaWQpIF9fcHRyNjQNCis/PzBDU2hhcmVMb2NrTkhAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDU2ltcGxlQ3JpdFNlY3Rpb246OkNTaW1wbGVDcml0U2VjdGlvbih2b2lkKSBfX3B0cjY0DQorPz8wQ1NpbXBsZUNyaXRTZWN0aW9uQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NyaXRTZWN0aW9uOjp+Q0NyaXRTZWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFDQ3JpdFNlY3Rpb25AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDU2hhcmVMb2NrRXhwb3J0Ojp+Q1NoYXJlTG9ja0V4cG9ydCh2b2lkKSBfX3B0cjY0DQorPz8xQ1NoYXJlTG9ja0V4cG9ydEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENTaGFyZUxvY2tOSDo6fkNTaGFyZUxvY2tOSCh2b2lkKSBfX3B0cjY0DQorPz8xQ1NoYXJlTG9ja05IQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1NpbXBsZUNyaXRTZWN0aW9uOjp+Q1NpbXBsZUNyaXRTZWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFDU2ltcGxlQ3JpdFNlY3Rpb25AQFFFQUFAWFoNCis7IHB1YmxpYzogY2xhc3MgQ1NoYXJlTG9ja0V4cG9ydCAmIF9fcHRyNjQgX19jZGVjbCBDU2hhcmVMb2NrRXhwb3J0OjpvcGVyYXRvcj0oY2xhc3MgQ1NoYXJlTG9ja0V4cG9ydCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDU2hhcmVMb2NrRXhwb3J0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1NpbXBsZUNyaXRTZWN0aW9uICYgX19wdHI2NCBfX2NkZWNsIENTaW1wbGVDcml0U2VjdGlvbjo6b3BlcmF0b3I9KGNsYXNzIENTaW1wbGVDcml0U2VjdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDU2ltcGxlQ3JpdFNlY3Rpb25AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NyaXRTZWN0aW9uOjpFbnRlcihjbGFzcyBDV2FpdGluZ1RocmVhZCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RW50ZXJAQ0NyaXRTZWN0aW9uQEBRRUFBWEFFQVZDV2FpdGluZ1RocmVhZEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDcml0U2VjdGlvbjo6RW50ZXIodm9pZCkgX19wdHI2NA0KKz9FbnRlckBDQ3JpdFNlY3Rpb25AQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTaW1wbGVDcml0U2VjdGlvbjo6RW50ZXIoY2xhc3MgQ1dhaXRpbmdUaHJlYWQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0VudGVyQENTaW1wbGVDcml0U2VjdGlvbkBAUUVBQVhBRUFWQ1dhaXRpbmdUaHJlYWRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU2ltcGxlQ3JpdFNlY3Rpb246OkVudGVyKHZvaWQpIF9fcHRyNjQNCis/RW50ZXJAQ1NpbXBsZUNyaXRTZWN0aW9uQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU2hhcmVMb2NrRXhwb3J0OjpFeGNsdXNpdmVMb2NrKHZvaWQpIF9fcHRyNjQNCis/RXhjbHVzaXZlTG9ja0BDU2hhcmVMb2NrRXhwb3J0QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU2hhcmVMb2NrTkg6OkV4Y2x1c2l2ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9FeGNsdXNpdmVMb2NrQENTaGFyZUxvY2tOSEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NoYXJlTG9ja05IOjpFeGNsdXNpdmVUb1BhcnRpYWwodm9pZCkgX19wdHI2NA0KKz9FeGNsdXNpdmVUb1BhcnRpYWxAQ1NoYXJlTG9ja05IQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU2hhcmVMb2NrRXhwb3J0OjpFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKSBfX3B0cjY0DQorP0V4Y2x1c2l2ZVRvU2hhcmVkQENTaGFyZUxvY2tFeHBvcnRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTaGFyZUxvY2tOSDo6RXhjbHVzaXZlVG9TaGFyZWQodm9pZCkgX19wdHI2NA0KKz9FeGNsdXNpdmVUb1NoYXJlZEBDU2hhcmVMb2NrTkhAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTaGFyZUxvY2tFeHBvcnQ6OkV4Y2x1c2l2ZVVubG9jayh2b2lkKSBfX3B0cjY0DQorP0V4Y2x1c2l2ZVVubG9ja0BDU2hhcmVMb2NrRXhwb3J0QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU2hhcmVMb2NrTkg6OkV4Y2x1c2l2ZVVubG9jayh2b2lkKSBfX3B0cjY0DQorP0V4Y2x1c2l2ZVVubG9ja0BDU2hhcmVMb2NrTkhAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTaGFyZUxvY2tOSDo6Rmlyc3RQYXJ0aWFsVG9FeGNsdXNpdmUodm9pZCkgX19wdHI2NA0KKz9GaXJzdFBhcnRpYWxUb0V4Y2x1c2l2ZUBDU2hhcmVMb2NrTkhAQFFFQUFYWFoNCis7IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgR2V0UGVyVGhyZWFkRXZlbnQodm9pZCkNCis/R2V0UGVyVGhyZWFkRXZlbnRAQFlBUEVBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ3JpdFNlY3Rpb246OkxlYXZlKHZvaWQpIF9fcHRyNjQNCis/TGVhdmVAQ0NyaXRTZWN0aW9uQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU2ltcGxlQ3JpdFNlY3Rpb246OkxlYXZlKHZvaWQpIF9fcHRyNjQNCis/TGVhdmVAQ1NpbXBsZUNyaXRTZWN0aW9uQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU2hhcmVMb2NrTkg6OlBhcnRpYWxMb2NrKHZvaWQpIF9fcHRyNjQNCis/UGFydGlhbExvY2tAQ1NoYXJlTG9ja05IQEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTaGFyZUxvY2tOSDo6UGFydGlhbFRvRXhjbHVzaXZlKHZvaWQpIF9fcHRyNjQNCis/UGFydGlhbFRvRXhjbHVzaXZlQENTaGFyZUxvY2tOSEBAUUVBQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NoYXJlTG9ja05IOjpQYXJ0aWFsVG9TaGFyZWQodm9pZCkgX19wdHI2NA0KKz9QYXJ0aWFsVG9TaGFyZWRAQ1NoYXJlTG9ja05IQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU2hhcmVMb2NrTkg6OlBhcnRpYWxVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9QYXJ0aWFsVW5sb2NrQENTaGFyZUxvY2tOSEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NoYXJlTG9ja0V4cG9ydDo6U2hhcmVMb2NrKHZvaWQpIF9fcHRyNjQNCis/U2hhcmVMb2NrQENTaGFyZUxvY2tFeHBvcnRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTaGFyZUxvY2tOSDo6U2hhcmVMb2NrKHZvaWQpIF9fcHRyNjQNCis/U2hhcmVMb2NrQENTaGFyZUxvY2tOSEBAUUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENTaGFyZUxvY2tOSDo6U2hhcmVMb2NrSW50ZXJuYWwodm9pZCkgX19wdHI2NA0KKz9TaGFyZUxvY2tJbnRlcm5hbEBDU2hhcmVMb2NrTkhAQEFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTaGFyZUxvY2tFeHBvcnQ6OlNoYXJlVW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/U2hhcmVVbmxvY2tAQ1NoYXJlTG9ja0V4cG9ydEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NoYXJlTG9ja05IOjpTaGFyZVVubG9jayh2b2lkKSBfX3B0cjY0DQorP1NoYXJlVW5sb2NrQENTaGFyZUxvY2tOSEBAUUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENTaGFyZUxvY2tOSDo6U2hhcmVVbmxvY2tJbnRlcm5hbCh2b2lkKSBfX3B0cjY0DQorP1NoYXJlVW5sb2NrSW50ZXJuYWxAQ1NoYXJlTG9ja05IQEBBRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTaGFyZUxvY2tFeHBvcnQ6OlNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpIF9fcHRyNjQNCis/U2hhcmVkVG9FeGNsdXNpdmVAQ1NoYXJlTG9ja0V4cG9ydEBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU2hhcmVMb2NrTkg6OlNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpIF9fcHRyNjQNCis/U2hhcmVkVG9FeGNsdXNpdmVAQ1NoYXJlTG9ja05IQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTaGFyZUxvY2tOSDo6U2hhcmVkVG9QYXJ0aWFsKHZvaWQpIF9fcHRyNjQNCis/U2hhcmVkVG9QYXJ0aWFsQENTaGFyZUxvY2tOSEBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ3JpdFNlY3Rpb246OlRyeUVudGVyKGNsYXNzIENXYWl0aW5nVGhyZWFkICYgX19wdHI2NCkgX19wdHI2NA0KKz9UcnlFbnRlckBDQ3JpdFNlY3Rpb25AQFFFQUFIQUVBVkNXYWl0aW5nVGhyZWFkQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ3JpdFNlY3Rpb246OlRyeUVudGVyKHZvaWQpIF9fcHRyNjQNCis/VHJ5RW50ZXJAQ0NyaXRTZWN0aW9uQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTaW1wbGVDcml0U2VjdGlvbjo6VHJ5RW50ZXIoY2xhc3MgQ1dhaXRpbmdUaHJlYWQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1RyeUVudGVyQENTaW1wbGVDcml0U2VjdGlvbkBAUUVBQUhBRUFWQ1dhaXRpbmdUaHJlYWRAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTaW1wbGVDcml0U2VjdGlvbjo6VHJ5RW50ZXIodm9pZCkgX19wdHI2NA0KKz9UcnlFbnRlckBDU2ltcGxlQ3JpdFNlY3Rpb25AQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1NoYXJlTG9ja0V4cG9ydDo6VHJ5RXhjbHVzaXZlTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeUV4Y2x1c2l2ZUxvY2tAQ1NoYXJlTG9ja0V4cG9ydEBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU2hhcmVMb2NrTkg6OlRyeUV4Y2x1c2l2ZUxvY2sodm9pZCkgX19wdHI2NA0KKz9UcnlFeGNsdXNpdmVMb2NrQENTaGFyZUxvY2tOSEBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU2hhcmVMb2NrTkg6OlRyeVBhcnRpYWxMb2NrKHZvaWQpIF9fcHRyNjQNCis/VHJ5UGFydGlhbExvY2tAQ1NoYXJlTG9ja05IQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTaGFyZUxvY2tFeHBvcnQ6OlRyeVNoYXJlTG9jayh2b2lkKSBfX3B0cjY0DQorP1RyeVNoYXJlTG9ja0BDU2hhcmVMb2NrRXhwb3J0QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTaGFyZUxvY2tOSDo6VHJ5U2hhcmVMb2NrKHZvaWQpIF9fcHRyNjQNCis/VHJ5U2hhcmVMb2NrQENTaGFyZUxvY2tOSEBAUUVBQUhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENTaGFyZUxvY2tOSDo6V2FrZVJlYWRlcnModm9pZCkgX19wdHI2NA0KKz9XYWtlUmVhZGVyc0BDU2hhcmVMb2NrTkhAQEFFQUFYWFoNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zYWZyY2RsZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zYWZyY2RsZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTFhM2UzNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NhZnJjZGxnLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNBRlJDRmlsZURsZy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU0FGUkNGaWxlRGxnLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NhZnJkbS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zYWZyZG0uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVmNWU3ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zYWZyZG0uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU0FGcmRtLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTQUZyZG0uRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2FmcnNsdi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zYWZyc2x2LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jZWU5YmJiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc2FmcnNsdi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTQUZSU0xWLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTQUZSU0xWLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NhbWxpYi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zYW1saWIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJiNmJhZDMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zYW1saWIuZGVmCkBAIC0wLDAgKzEsNzMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU0FNTElCLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTQU1MSUIuZGxsDQorRVhQT1JUUw0KK1NhbUFkZE1lbWJlclRvQWxpYXMNCitTYW1BZGRNZW1iZXJUb0dyb3VwDQorU2FtQWRkTXVsdGlwbGVNZW1iZXJzVG9BbGlhcw0KK1NhbUNoYW5nZVBhc3N3b3JkVXNlcg0KK1NhbUNoYW5nZVBhc3N3b3JkVXNlcjINCitTYW1DaGFuZ2VQYXNzd29yZFVzZXIzDQorU2FtQ2xvc2VIYW5kbGUNCitTYW1Db25uZWN0DQorU2FtQ29ubmVjdFdpdGhDcmVkcw0KK1NhbUNyZWF0ZUFsaWFzSW5Eb21haW4NCitTYW1DcmVhdGVHcm91cEluRG9tYWluDQorU2FtQ3JlYXRlVXNlcjJJbkRvbWFpbg0KK1NhbUNyZWF0ZVVzZXJJbkRvbWFpbg0KK1NhbURlbGV0ZUFsaWFzDQorU2FtRGVsZXRlR3JvdXANCitTYW1EZWxldGVVc2VyDQorU2FtRW51bWVyYXRlQWxpYXNlc0luRG9tYWluDQorU2FtRW51bWVyYXRlRG9tYWluc0luU2FtU2VydmVyDQorU2FtRW51bWVyYXRlR3JvdXBzSW5Eb21haW4NCitTYW1FbnVtZXJhdGVVc2Vyc0luRG9tYWluDQorU2FtRnJlZU1lbW9yeQ0KK1NhbUdldEFsaWFzTWVtYmVyc2hpcA0KK1NhbUdldENvbXBhdGliaWxpdHlNb2RlDQorU2FtR2V0RGlzcGxheUVudW1lcmF0aW9uSW5kZXgNCitTYW1HZXRHcm91cHNGb3JVc2VyDQorU2FtR2V0TWVtYmVyc0luQWxpYXMNCitTYW1HZXRNZW1iZXJzSW5Hcm91cA0KK1NhbUxvb2t1cERvbWFpbkluU2FtU2VydmVyDQorU2FtTG9va3VwSWRzSW5Eb21haW4NCitTYW1Mb29rdXBOYW1lc0luRG9tYWluDQorU2FtT3BlbkFsaWFzDQorU2FtT3BlbkRvbWFpbg0KK1NhbU9wZW5Hcm91cA0KK1NhbU9wZW5Vc2VyDQorU2FtUXVlcnlEaXNwbGF5SW5mb3JtYXRpb24NCitTYW1RdWVyeUluZm9ybWF0aW9uQWxpYXMNCitTYW1RdWVyeUluZm9ybWF0aW9uRG9tYWluDQorU2FtUXVlcnlJbmZvcm1hdGlvbkdyb3VwDQorU2FtUXVlcnlJbmZvcm1hdGlvblVzZXINCitTYW1RdWVyeVNlY3VyaXR5T2JqZWN0DQorU2FtUmVtb3ZlTWVtYmVyRnJvbUFsaWFzDQorU2FtUmVtb3ZlTWVtYmVyRnJvbUZvcmVpZ25Eb21haW4NCitTYW1SZW1vdmVNZW1iZXJGcm9tR3JvdXANCitTYW1SZW1vdmVNdWx0aXBsZU1lbWJlcnNGcm9tQWxpYXMNCitTYW1SaWRUb1NpZA0KK1NhbVNldEluZm9ybWF0aW9uQWxpYXMNCitTYW1TZXRJbmZvcm1hdGlvbkRvbWFpbg0KK1NhbVNldEluZm9ybWF0aW9uR3JvdXANCitTYW1TZXRJbmZvcm1hdGlvblVzZXINCitTYW1TZXRNZW1iZXJBdHRyaWJ1dGVzT2ZHcm91cA0KK1NhbVNldFNlY3VyaXR5T2JqZWN0DQorU2FtU2h1dGRvd25TYW1TZXJ2ZXINCitTYW1UZXN0UHJpdmF0ZUZ1bmN0aW9uc0RvbWFpbg0KK1NhbVRlc3RQcml2YXRlRnVuY3Rpb25zVXNlcg0KK1NhbVZhbGlkYXRlUGFzc3dvcmQNCitTYW1pQ2hhbmdlS2V5cw0KK1NhbWlDaGFuZ2VQYXNzd29yZFVzZXINCitTYW1pQ2hhbmdlUGFzc3dvcmRVc2VyMg0KK1NhbWlFbmNyeXB0UGFzc3dvcmRzDQorU2FtaUdldEJvb3RLZXlJbmZvcm1hdGlvbg0KK1NhbWlMbUNoYW5nZVBhc3N3b3JkVXNlcg0KK1NhbWlPZW1DaGFuZ2VQYXNzd29yZFVzZXIyDQorU2FtaVNldEJvb3RLZXlJbmZvcm1hdGlvbg0KK1NhbWlTZXREU1JNUGFzc3dvcmQNCitTYW1pU2V0RFNSTVBhc3N3b3JkT1dGDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2Ftc3J2LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NhbXNydi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmFiNTFiOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NhbXNydi5kZWYKQEAgLTAsMCArMSwxNzAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU0FNU1JWLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTQU1TUlYuZGxsDQorRVhQT1JUUw0KK1NhbUlBY2NvdW50UmVzdHJpY3Rpb25zDQorU2FtSUFkZERTTmFtZVRvQWxpYXMNCitTYW1JQWRkRFNOYW1lVG9Hcm91cA0KK1NhbUlBbUlHQw0KK1NhbUlDaGFuZ2VQYXNzd29yZEZvcmVpZ25Vc2VyDQorU2FtSUNoYW5nZVBhc3N3b3JkRm9yZWlnblVzZXIyDQorU2FtSUNvbm5lY3QNCitTYW1JQ3JlYXRlQWNjb3VudEJ5UmlkDQorU2FtSURlbW90ZQ0KK1NhbUlEZW1vdGVVbmRvDQorU2FtSURvRlNNT1JvbGVDaGFuZ2UNCitTYW1JRHNDcmVhdGVPYmplY3RJbkRvbWFpbg0KK1NhbUlEc1NldE9iamVjdEluZm9ybWF0aW9uDQorU2FtSUVudW1lcmF0ZUFjY291bnRSaWRzDQorU2FtSUVudW1lcmF0ZUludGVyZG9tYWluVHJ1c3RBY2NvdW50c0ZvclVwZ3JhZGUNCitTYW1JRmxvYXRpbmdTaW5nbGVNYXN0ZXJPcEV4DQorU2FtSUZyZWVTaWRBbmRBdHRyaWJ1dGVzTGlzdA0KK1NhbUlGcmVlU2lkQXJyYXkNCitTYW1JRnJlZVZvaWQNCitTYW1JRnJlZV9TQU1QUl9BTElBU19JTkZPX0JVRkZFUg0KK1NhbUlGcmVlX1NBTVBSX0RJU1BMQVlfSU5GT19CVUZGRVINCitTYW1JRnJlZV9TQU1QUl9ET01BSU5fSU5GT19CVUZGRVINCitTYW1JRnJlZV9TQU1QUl9FTlVNRVJBVElPTl9CVUZGRVINCitTYW1JRnJlZV9TQU1QUl9HRVRfR1JPVVBTX0JVRkZFUg0KK1NhbUlGcmVlX1NBTVBSX0dFVF9NRU1CRVJTX0JVRkZFUg0KK1NhbUlGcmVlX1NBTVBSX0dST1VQX0lORk9fQlVGRkVSDQorU2FtSUZyZWVfU0FNUFJfUFNJRF9BUlJBWQ0KK1NhbUlGcmVlX1NBTVBSX1JFVFVSTkVEX1VTVFJJTkdfQVJSQVkNCitTYW1JRnJlZV9TQU1QUl9TUl9TRUNVUklUWV9ERVNDUklQVE9SDQorU2FtSUZyZWVfU0FNUFJfVUxPTkdfQVJSQVkNCitTYW1JRnJlZV9TQU1QUl9VU0VSX0lORk9fQlVGRkVSDQorU2FtSUZyZWVfVXNlckludGVybmFsNkluZm9ybWF0aW9uDQorU2FtSUdDTG9va3VwTmFtZXMNCitTYW1JR0NMb29rdXBTaWRzDQorU2FtSUdldEFsaWFzTWVtYmVyc2hpcA0KK1NhbUlHZXRCb290S2V5SW5mb3JtYXRpb24NCitTYW1JR2V0RGVmYXVsdEFkbWluaXN0cmF0b3JOYW1lDQorU2FtSUdldERlZmF1bHRDb21wdXRlcnNDb250YWluZXINCitTYW1JR2V0Rml4ZWRBdHRyaWJ1dGVzDQorU2FtSUdldEludGVyZG9tYWluVHJ1c3RBY2NvdW50UGFzc3dvcmRzRm9yVXBncmFkZQ0KK1NhbUlHZXRQcml2YXRlRGF0YQ0KK1NhbUlHZXRSZXNvdXJjZUdyb3VwTWVtYmVyc2hpcHNUcmFuc2l0aXZlDQorU2FtSUdldFNlcmlhbE51bWJlckRvbWFpbg0KK1NhbUlHZXRVc2VyTG9nb25JbmZvcm1hdGlvbg0KK1NhbUlHZXRVc2VyTG9nb25JbmZvcm1hdGlvbjINCitTYW1JR2V0VXNlckxvZ29uSW5mb3JtYXRpb25FeA0KK1NhbUlIYW5kbGVPYmplY3RVcGRhdGUNCitTYW1JSW1wZXJzb25hdGVOdWxsU2Vzc2lvbg0KK1NhbUlJbmNyZW1lbnRQZXJmb3JtYW5jZUNvdW50ZXINCitTYW1JSW5pdGlhbGl6ZQ0KK1NhbUlJc0F0dHJpYnV0ZVByb3RlY3RlZA0KK1NhbUlJc0Rvd25sZXZlbERjVXBncmFkZQ0KK1NhbUlJc0V4dGVuZGVkU2lkTW9kZQ0KK1NhbUlJc1JlYm9vdEFmdGVyUHJvbW90aW9uDQorU2FtSUlzU2V0dXBJblByb2dyZXNzDQorU2FtSUxvYWREb3dubGV2ZWxEYXRhYmFzZQ0KK1NhbUlMb29wYmFja0Nvbm5lY3QNCitTYW1JTWl4ZWREb21haW4NCitTYW1JTWl4ZWREb21haW4yDQorU2FtSU5UNFVwZ3JhZGVJblByb2dyZXNzDQorU2FtSU5ldExvZ29uUGluZw0KK1NhbUlOb3RpZnlEZWx0YQ0KK1NhbUlOb3RpZnlSb2xlQ2hhbmdlDQorU2FtSU5vdGlmeVNlcnZlckRlbHRhDQorU2FtSU9wZW5BY2NvdW50DQorU2FtSU9wZW5Vc2VyQnlBbHRlcm5hdGVJZA0KK1NhbUlQcm9tb3RlDQorU2FtSVByb21vdGVVbmRvDQorU2FtSVF1ZXJ5U2VydmVyUm9sZQ0KK1NhbUlRdWVyeVNlcnZlclJvbGUyDQorU2FtSVJlbW92ZURTTmFtZUZyb21BbGlhcw0KK1NhbUlSZW1vdmVEU05hbWVGcm9tR3JvdXANCitTYW1JUmVwbGFjZURvd25sZXZlbERhdGFiYXNlDQorU2FtSVJlc2V0QmFkUHdkQ291bnRPblBkYw0KK1NhbUlSZXRyaWV2ZVByaW1hcnlDcmVkZW50aWFscw0KK1NhbUlSZXZlcnROdWxsU2Vzc2lvbg0KK1NhbUlTYW1lU2l0ZQ0KK1NhbUlTZXRBdWRpdGluZ0luZm9ybWF0aW9uDQorU2FtSVNldE1peGVkRG9tYWluRmxhZw0KK1NhbUlTZXRQYXNzd29yZEZvcmVpZ25Vc2VyDQorU2FtSVNldFBhc3N3b3JkRm9yZWlnblVzZXIyDQorU2FtSVNldFBhc3N3b3JkSW5mb09uUGRjDQorU2FtSVNldFByaXZhdGVEYXRhDQorU2FtSVNldFNlcmlhbE51bWJlckRvbWFpbg0KK1NhbUlTdG9yZVByaW1hcnlDcmVkZW50aWFscw0KK1NhbUlVUE5Gcm9tVXNlckhhbmRsZQ0KK1NhbUlVbkxvYWREb3dubGV2ZWxEYXRhYmFzZQ0KK1NhbUlVcGRhdGVMb2dvblN0YXRpc3RpY3MNCitTYW1wQWJvcnRTaW5nbGVMb29wYmFja1Rhc2sNCitTYW1wQWNjb3VudENvbnRyb2xUb0ZsYWdzDQorU2FtcEFjcXVpcmVTYW1Mb2NrRXhjbHVzaXZlDQorU2FtcEFjcXVpcmVXcml0ZUxvY2sNCitTYW1wQ29tbWl0QnVmZmVyZWRXcml0ZXMNCitTYW1wQ29udmVydE50NFNkVG9OdDVTZA0KK1NhbXBEc0NoYW5nZVBhc3N3b3JkVXNlcg0KK1NhbXBGbGFnc1RvQWNjb3VudENvbnRyb2wNCitTYW1wR2V0RGVmYXVsdFNlY3VyaXR5RGVzY3JpcHRvckZvckNsYXNzDQorU2FtcEdldFNlcmlhbE51bWJlckRvbWFpbjINCitTYW1wSW5pdGlhbGl6ZVJlZ2lzdHJ5DQorU2FtcEluaXRpYWxpemVTZENvbnZlcnNpb24NCitTYW1wSW52YWxpZGF0ZURvbWFpbkNhY2hlDQorU2FtcEludmFsaWRhdGVSaWRSYW5nZQ0KK1NhbXBJc0F1ZGl0aW5nRW5hYmxlZA0KK1NhbXBOZXRMb2dvbk5vdGlmaWNhdGlvblJlcXVpcmVkDQorU2FtcE5vdGlmeUF1ZGl0Q2hhbmdlDQorU2FtcE5vdGlmeVJlcGxpY2F0ZWRJbkNoYW5nZQ0KK1NhbXBQcm9jZXNzU2luZ2xlTG9vcGJhY2tUYXNrDQorU2FtcFJlbGVhc2VTYW1Mb2NrRXhjbHVzaXZlDQorU2FtcFJlbGVhc2VXcml0ZUxvY2sNCitTYW1wUnRsQ29udmVydFVsb25nVG9Vbmljb2RlU3RyaW5nDQorU2FtcFNldFNlcmlhbE51bWJlckRvbWFpbjINCitTYW1wVXNpbmdEc0RhdGENCitTYW1wV3JpdGVHcm91cFR5cGUNCitTYW1yQWRkTWVtYmVyVG9BbGlhcw0KK1NhbXJBZGRNZW1iZXJUb0dyb3VwDQorU2FtckFkZE11bHRpcGxlTWVtYmVyc1RvQWxpYXMNCitTYW1yQ2hhbmdlUGFzc3dvcmRVc2VyDQorU2FtckNsb3NlSGFuZGxlDQorU2FtckNyZWF0ZUFsaWFzSW5Eb21haW4NCitTYW1yQ3JlYXRlR3JvdXBJbkRvbWFpbg0KK1NhbXJDcmVhdGVVc2VyMkluRG9tYWluDQorU2FtckNyZWF0ZVVzZXJJbkRvbWFpbg0KK1NhbXJEZWxldGVBbGlhcw0KK1NhbXJEZWxldGVHcm91cA0KK1NhbXJEZWxldGVVc2VyDQorU2FtckVudW1lcmF0ZUFsaWFzZXNJbkRvbWFpbg0KK1NhbXJFbnVtZXJhdGVEb21haW5zSW5TYW1TZXJ2ZXINCitTYW1yRW51bWVyYXRlR3JvdXBzSW5Eb21haW4NCitTYW1yRW51bWVyYXRlVXNlcnNJbkRvbWFpbg0KK1NhbXJHZXRBbGlhc01lbWJlcnNoaXANCitTYW1yR2V0R3JvdXBzRm9yVXNlcg0KK1NhbXJHZXRNZW1iZXJzSW5BbGlhcw0KK1NhbXJHZXRNZW1iZXJzSW5Hcm91cA0KK1NhbXJHZXRVc2VyRG9tYWluUGFzc3dvcmRJbmZvcm1hdGlvbg0KK1NhbXJMb29rdXBEb21haW5JblNhbVNlcnZlcg0KK1NhbXJMb29rdXBJZHNJbkRvbWFpbg0KK1NhbXJMb29rdXBOYW1lc0luRG9tYWluDQorU2Ftck9wZW5BbGlhcw0KK1NhbXJPcGVuRG9tYWluDQorU2Ftck9wZW5Hcm91cA0KK1NhbXJPcGVuVXNlcg0KK1NhbXJRdWVyeURpc3BsYXlJbmZvcm1hdGlvbg0KK1NhbXJRdWVyeUluZm9ybWF0aW9uQWxpYXMNCitTYW1yUXVlcnlJbmZvcm1hdGlvbkRvbWFpbg0KK1NhbXJRdWVyeUluZm9ybWF0aW9uR3JvdXANCitTYW1yUXVlcnlJbmZvcm1hdGlvblVzZXINCitTYW1yUXVlcnlTZWN1cml0eU9iamVjdA0KK1NhbXJSZW1vdmVNZW1iZXJGcm9tQWxpYXMNCitTYW1yUmVtb3ZlTWVtYmVyRnJvbUZvcmVpZ25Eb21haW4NCitTYW1yUmVtb3ZlTWVtYmVyRnJvbUdyb3VwDQorU2FtclJlbW92ZU11bHRpcGxlTWVtYmVyc0Zyb21BbGlhcw0KK1NhbXJSaWRUb1NpZA0KK1NhbXJTZXRJbmZvcm1hdGlvbkFsaWFzDQorU2FtclNldEluZm9ybWF0aW9uRG9tYWluDQorU2FtclNldEluZm9ybWF0aW9uR3JvdXANCitTYW1yU2V0SW5mb3JtYXRpb25Vc2VyDQorU2FtclNldE1lbWJlckF0dHJpYnV0ZXNPZkdyb3VwDQorU2FtclNldFNlY3VyaXR5T2JqZWN0DQorU2FtclNodXRkb3duU2FtU2VydmVyDQorU2FtclRlc3RQcml2YXRlRnVuY3Rpb25zRG9tYWluDQorU2FtclRlc3RQcml2YXRlRnVuY3Rpb25zVXNlcg0KK1NhbXJVbmljb2RlQ2hhbmdlUGFzc3dvcmRVc2VyMg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2FwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGZlMjI5NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NhcGkuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgc2FwaS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgc2FwaS5kbGwNCitFWFBPUlRTDQorUnVuU2FwaVNlcnZlcg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2NhcmRkbGcuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2NhcmRkbGcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYxNTg2YWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zY2FyZGRsZy5kZWYKQEAgLTAsMCArMSwxNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTQ0FSRERMRy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU0NBUkRETEcuZGxsDQorRVhQT1JUUw0KK0dldE9wZW5DYXJkTmFtZUENCitHZXRPcGVuQ2FyZE5hbWVXDQorU0NhcmREbGdFeHRlbmRlZEVycm9yDQorU0NhcmRVSURsZ1NlbGVjdENhcmRBDQorU0NhcmRVSURsZ1NlbGVjdENhcmRXDQorU0NhcmRVSURsZ0dldFBJTkENCitTQ2FyZFVJRGxnQ2hhbmdlUElOQQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NjY2Jhc2UuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2NjYmFzZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTFjMGNlYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NjY2Jhc2UuZGVmCkBAIC0wLDAgKzEsMzQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU0NDQkFTRS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU0NDQkFTRS5kbGwNCitFWFBPUlRTDQorQ1BBY3F1aXJlQ29udGV4dA0KK0NQQWNxdWlyZUNvbnRleHRXDQorQ1BDcmVhdGVIYXNoDQorQ1BEZWNyeXB0DQorQ1BEZXJpdmVLZXkNCitDUERlc3Ryb3lIYXNoDQorQ1BEZXN0cm95S2V5DQorQ1BFbmNyeXB0DQorQ1BFeHBvcnRLZXkNCitDUEdlbktleQ0KK0NQR2VuUmFuZG9tDQorQ1BHZXRIYXNoUGFyYW0NCitDUEdldEtleVBhcmFtDQorQ1BHZXRQcm92UGFyYW0NCitDUEdldFVzZXJLZXkNCitDUEhhc2hEYXRhDQorQ1BIYXNoU2Vzc2lvbktleQ0KK0NQSW1wb3J0S2V5DQorQ1BSZWxlYXNlQ29udGV4dA0KK0NQU2V0SGFzaFBhcmFtDQorQ1BTZXRLZXlQYXJhbQ0KK0NQU2V0UHJvdlBhcmFtDQorQ1BTaWduSGFzaA0KK0NQVmVyaWZ5U2lnbmF0dXJlDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2Njc2NjcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zY2NzY2NwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMzJmMTVhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc2Njc2NjcC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTY2NTQ0NQLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTY2NTQ0NQLkRMTA0KK0VYUE9SVFMNCitTQ0NQRGxsQ2FuVW5sb2FkTm93DQorU0NDUERsbEdldENsYXNzT2JqZWN0DQorU0NDUERsbFJlZ2lzdGVyU2VydmVyDQorU0NDUERsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zY2VjbGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2NlY2xpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45Y2JiMWQwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc2NlY2xpLmRlZgpAQCAtMCwwICsxLDgwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNDRUNMSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU0NFQ0xJLmRsbA0KK0VYUE9SVFMNCitEZWx0YU5vdGlmeQ0KK0luaXRpYWxpemVDaGFuZ2VOb3RpZnkNCitTY2VDb25maWd1cmVDb252ZXJ0ZWRGaWxlU2VjdXJpdHkNCitTY2VHZW5lcmF0ZUdyb3VwUG9saWN5DQorU2NlTm90aWZ5UG9saWN5RGVsdGENCitTY2VPcGVuUG9saWN5DQorU2NlUHJvY2Vzc0VGU1JlY292ZXJ5R1BPDQorU2NlUHJvY2Vzc1NlY3VyaXR5UG9saWN5R1BPDQorU2NlUHJvY2Vzc1NlY3VyaXR5UG9saWN5R1BPRXgNCitTY2VTeXNQcmVwDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorU2NlQWRkVG9OYW1lTGlzdA0KK1NjZUFkZFRvTmFtZVN0YXR1c0xpc3QNCitTY2VBZGRUb09iamVjdExpc3QNCitTY2VBbmFseXplU3lzdGVtDQorU2NlQXBwZW5kU2VjdXJpdHlQcm9maWxlSW5mbw0KK1NjZUJyb3dzZURhdGFiYXNlVGFibGUNCitTY2VDbG9zZVByb2ZpbGUNCitTY2VDb21taXRUcmFuc2FjdGlvbg0KK1NjZUNvbXBhcmVOYW1lTGlzdA0KK1NjZUNvbXBhcmVTZWN1cml0eURlc2NyaXB0b3JzDQorU2NlQ29uZmlndXJlU3lzdGVtDQorU2NlQ29weUJhc2VQcm9maWxlDQorU2NlQ3JlYXRlRGlyZWN0b3J5DQorU2NlRGNQcm9tb0NyZWF0ZUdQT3NJblN5c3ZvbA0KK1NjZURjUHJvbW9DcmVhdGVHUE9zSW5TeXN2b2xFeA0KK1NjZURjUHJvbW90ZVNlY3VyaXR5DQorU2NlRGNQcm9tb3RlU2VjdXJpdHlFeA0KK1NjZUVuZm9yY2VTZWN1cml0eVBvbGljeVByb3BhZ2F0aW9uDQorU2NlRW51bWVyYXRlU2VydmljZXMNCitTY2VGcmVlTWVtb3J5DQorU2NlRnJlZVByb2ZpbGVNZW1vcnkNCitTY2VHZW5lcmF0ZVJvbGxiYWNrDQorU2NlR2V0QW5hbHlzaXNBcmVhU3VtbWFyeQ0KK1NjZUdldEFyZWFzDQorU2NlR2V0RGF0YWJhc2VTZXR0aW5nDQorU2NlR2V0RGJUaW1lDQorU2NlR2V0T2JqZWN0Q2hpbGRyZW4NCitTY2VHZXRPYmplY3RTZWN1cml0eQ0KK1NjZUdldFNjcFByb2ZpbGVEZXNjcmlwdGlvbg0KK1NjZUdldFNlY3VyaXR5UHJvZmlsZUluZm8NCitTY2VHZXRTZXJ2ZXJQcm9kdWN0VHlwZQ0KK1NjZUdldFRpbWVTdGFtcA0KK1NjZUlzU3lzdGVtRGF0YWJhc2UNCitTY2VMb29rdXBQcml2UmlnaHROYW1lDQorU2NlT3BlblByb2ZpbGUNCitTY2VSZWdpc3RlclJlZ1ZhbHVlcw0KK1NjZVJvbGxiYWNrVHJhbnNhY3Rpb24NCitTY2VTZXREYXRhYmFzZVNldHRpbmcNCitTY2VTZXR1cEJhY2t1cFNlY3VyaXR5DQorU2NlU2V0dXBDb25maWd1cmVTZXJ2aWNlcw0KK1NjZVNldHVwR2VuZXJhdGVUZW1wbGF0ZQ0KK1NjZVNldHVwTW92ZVNlY3VyaXR5RmlsZQ0KK1NjZVNldHVwUm9vdFNlY3VyaXR5DQorU2NlU2V0dXBTeXN0ZW1CeUluZk5hbWUNCitTY2VTZXR1cFVud2luZFNlY3VyaXR5RmlsZQ0KK1NjZVNldHVwVXBkYXRlU2VjdXJpdHlGaWxlDQorU2NlU2V0dXBVcGRhdGVTZWN1cml0eUtleQ0KK1NjZVNldHVwVXBkYXRlU2VjdXJpdHlTZXJ2aWNlDQorU2NlU3RhcnRUcmFuc2FjdGlvbg0KK1NjZVN2Y0NvbnZlcnRTRFRvVGV4dA0KK1NjZVN2Y0NvbnZlcnRUZXh0VG9TRA0KK1NjZVN2Y0ZyZWUNCitTY2VTdmNHZXRJbmZvcm1hdGlvblRlbXBsYXRlDQorU2NlU3ZjUXVlcnlJbmZvDQorU2NlU3ZjU2V0SW5mbw0KK1NjZVN2Y1NldEluZm9ybWF0aW9uVGVtcGxhdGUNCitTY2VTdmNVcGRhdGVJbmZvDQorU2NlVXBkYXRlT2JqZWN0SW5mbw0KK1NjZVVwZGF0ZVNlY3VyaXR5UHJvZmlsZQ0KK1NjZVdyaXRlU2VjdXJpdHlQcm9maWxlSW5mbw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NjZXNydi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zY2VzcnYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY3ZjRhMzMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zY2VzcnYuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU0NFU1JWLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTQ0VTUlYuZGxsDQorRVhQT1JUUw0KK1NjZXNydkluaXRpYWxpemVTZXJ2ZXINCitTY2VzcnZUZXJtaW5hdGVTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zY2hhbm5lbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zY2hhbm5lbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTVjNjk5NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NjaGFubmVsLmRlZgpAQCAtMCwwICsxLDQ1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNDSEFOTkVMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTQ0hBTk5FTC5kbGwNCitFWFBPUlRTDQorQWNjZXB0U2VjdXJpdHlDb250ZXh0DQorQWNxdWlyZUNyZWRlbnRpYWxzSGFuZGxlQQ0KK0FjcXVpcmVDcmVkZW50aWFsc0hhbmRsZVcNCitBcHBseUNvbnRyb2xUb2tlbg0KK0Nsb3NlU3NsUGVyZm9ybWFuY2VEYXRhDQorQ29sbGVjdFNzbFBlcmZvcm1hbmNlRGF0YQ0KK0NvbXBsZXRlQXV0aFRva2VuDQorRGVsZXRlU2VjdXJpdHlDb250ZXh0DQorRW51bWVyYXRlU2VjdXJpdHlQYWNrYWdlc0ENCitFbnVtZXJhdGVTZWN1cml0eVBhY2thZ2VzVw0KK0ZyZWVDb250ZXh0QnVmZmVyDQorRnJlZUNyZWRlbnRpYWxzSGFuZGxlDQorSW1wZXJzb25hdGVTZWN1cml0eUNvbnRleHQNCitJbml0U2VjdXJpdHlJbnRlcmZhY2VBDQorSW5pdFNlY3VyaXR5SW50ZXJmYWNlVw0KK0luaXRpYWxpemVTZWN1cml0eUNvbnRleHRBDQorSW5pdGlhbGl6ZVNlY3VyaXR5Q29udGV4dFcNCitNYWtlU2lnbmF0dXJlDQorT3BlblNzbFBlcmZvcm1hbmNlRGF0YQ0KK1F1ZXJ5Q29udGV4dEF0dHJpYnV0ZXNBDQorUXVlcnlDb250ZXh0QXR0cmlidXRlc1cNCitRdWVyeVNlY3VyaXR5UGFja2FnZUluZm9BDQorUXVlcnlTZWN1cml0eVBhY2thZ2VJbmZvVw0KK1JldmVydFNlY3VyaXR5Q29udGV4dA0KK1NlYWxNZXNzYWdlDQorU3BMc2FNb2RlSW5pdGlhbGl6ZQ0KK1NwVXNlck1vZGVJbml0aWFsaXplDQorU3NsQ3JhY2tDZXJ0aWZpY2F0ZQ0KK1NzbEVtcHR5Q2FjaGVBDQorU3NsRW1wdHlDYWNoZVcNCitTc2xGcmVlQ2VydGlmaWNhdGUNCitTc2xHZW5lcmF0ZUtleVBhaXINCitTc2xHZW5lcmF0ZVJhbmRvbUJpdHMNCitTc2xHZXRNYXhpbXVtS2V5U2l6ZQ0KK1NzbExvYWRDZXJ0aWZpY2F0ZQ0KK1Vuc2VhbE1lc3NhZ2UNCitWZXJpZnlTaWduYXR1cmUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zY2hlZHN2Yy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zY2hlZHN2Yy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzBlZGM5YgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NjaGVkc3ZjLmRlZgpAQCAtMCwwICsxLDE1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHNjaGVkc3ZjLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBzY2hlZHN2Yy5kbGwNCitFWFBPUlRTDQorU1BVbmluc3RhbGwNCitTUFVuaW5zdGFsbENhbGxiYWNrDQorU2NoZWRTZXJ2aWNlTWFpbg0KK1N5c1ByZXBCYWNrdXANCitTeXNQcmVwUmVzdG9yZQ0KK0Nsb3NlUHJvYw0KK1N5c1ByZXBDYWxsYmFjaw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NjbGdudGZ5LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NjbGdudGZ5LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNGUxYWMzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc2NsZ250ZnkuZGVmCkBAIC0wLDAgKzEsMjAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU0NMR05URlkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNDTEdOVEZZLmRsbA0KK0VYUE9SVFMNCitXTEV2ZW50TG9jaw0KK1dMRXZlbnRMb2dvZmYNCitXTEV2ZW50TG9nb24NCitXTEV2ZW50U2h1dGRvd24NCitXTEV2ZW50U3RhcnRTY3JlZW5TYXZlcg0KK1dMRXZlbnRTdGFydFNoZWxsDQorV0xFdmVudFN0YXJ0dXANCitXTEV2ZW50U3RvcFNjcmVlblNhdmVyDQorV0xFdmVudFVubG9jaw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dlbmVyYXRlRGVmYXVsdEVGU1JlY292ZXJ5UG9saWN5DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2NyZWRpci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zY3JlZGlyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZGIxZWFkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc2NyZWRpci5kZWYKQEAgLTAsMCArMSw1MiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBzY3JlZGlyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBzY3JlZGlyLmRsbA0KK0VYUE9SVFMNCitTQ2FyZFJlbGVhc2VCYWRDb250ZXh0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorU0NhcmRBY2Nlc3NTdGFydGVkRXZlbnQNCitTQ2FyZEFkZFJlYWRlclRvR3JvdXBBDQorU0NhcmRBZGRSZWFkZXJUb0dyb3VwVw0KK1NDYXJkQmVnaW5UcmFuc2FjdGlvbg0KK1NDYXJkQ2FuY2VsDQorU0NhcmRDb25uZWN0QQ0KK1NDYXJkQ29ubmVjdFcNCitTQ2FyZENvbnRyb2wNCitTQ2FyZERpc2Nvbm5lY3QNCitTQ2FyZEVuZFRyYW5zYWN0aW9uDQorU0NhcmRFc3RhYmxpc2hDb250ZXh0DQorU0NhcmRGb3JnZXRSZWFkZXJBDQorU0NhcmRGb3JnZXRSZWFkZXJHcm91cEENCitTQ2FyZEZvcmdldFJlYWRlckdyb3VwVw0KK1NDYXJkRm9yZ2V0UmVhZGVyVw0KK1NDYXJkR2V0QXR0cmliDQorU0NhcmRHZXRTdGF0dXNDaGFuZ2VBDQorU0NhcmRHZXRTdGF0dXNDaGFuZ2VXDQorU0NhcmRJbnRyb2R1Y2VSZWFkZXJBDQorU0NhcmRJbnRyb2R1Y2VSZWFkZXJHcm91cEENCitTQ2FyZEludHJvZHVjZVJlYWRlckdyb3VwVw0KK1NDYXJkSW50cm9kdWNlUmVhZGVyVw0KK1NDYXJkSXNWYWxpZENvbnRleHQNCitTQ2FyZExpc3RSZWFkZXJHcm91cHNBDQorU0NhcmRMaXN0UmVhZGVyR3JvdXBzVw0KK1NDYXJkTGlzdFJlYWRlcnNBDQorU0NhcmRMaXN0UmVhZGVyc1cNCitTQ2FyZExvY2F0ZUNhcmRzQQ0KK1NDYXJkTG9jYXRlQ2FyZHNCeUFUUkENCitTQ2FyZExvY2F0ZUNhcmRzQnlBVFJXDQorU0NhcmRMb2NhdGVDYXJkc1cNCitTQ2FyZFJlY29ubmVjdA0KK1NDYXJkUmVsZWFzZUNvbnRleHQNCitTQ2FyZFJlbGVhc2VTdGFydGVkRXZlbnQNCitTQ2FyZFJlbW92ZVJlYWRlckZyb21Hcm91cEENCitTQ2FyZFJlbW92ZVJlYWRlckZyb21Hcm91cFcNCitTQ2FyZFNldEF0dHJpYg0KK1NDYXJkU3RhdGUNCitTQ2FyZFN0YXR1c0ENCitTQ2FyZFN0YXR1c1cNCitTQ2FyZFRyYW5zbWl0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2NyaXB0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NjcmlwdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTM5ZjUwOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NjcmlwdC5kZWYKQEAgLTAsMCArMSwxNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTQ1JJUFQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNDUklQVC5kbGwNCitFWFBPUlRTDQorRGVzdGluYXRpb25Nb2R1bGUNCitEbGxNYWluDQorTW9kdWxlSW5pdGlhbGl6ZQ0KK01vZHVsZVRlcm1pbmF0ZQ0KK1NvdXJjZU1vZHVsZQ0KK1R5cGVNb2R1bGUNCitWaXJ0dWFsQ29tcHV0ZXJNb2R1bGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zY3JpcHRvLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NjcmlwdG8uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNjMTdhMDcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zY3JpcHRvLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHNjcmlwdG8uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHNjcmlwdG8uZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2NyaXB0cHcuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2NyaXB0cHcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMyOTA0NDgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zY3JpcHRwdy5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTY3JpcHRQVy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU2NyaXB0UFcuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2NybnNhdmUuYyBiL21pbmd3LXc2NC1jcnQvbGliL3Njcm5zYXZlLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmZhYjBjOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3Njcm5zYXZlLmMKQEAgLTAsMCArMSw0MDkgQEAKKyNpZiAwCisvKgorICBTY3JlZW4gc2F2ZXIgbGlicmFyeSBieSBBbmRlcnMgTm9ybGFuZGVyIDxhbm9ybGFuZEBoZW0yLnBhc3NhZ2VuLnNlPgorCisgIFRoaXMgbGlicmFyeSBpcyAoaG9wZWZ1bGx5KSBjb21wYXRpYmxlIHdpdGggTWljcm9zb2Z0J3MKKyAgc2NyZWVuIHNhdmVyIGxpYnJhcnkuCisKKyAgVGhpcyBpcyBwdWJsaWMgZG9tYWluIHNvZnR3YXJlLgorCisgKi8KKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8c2NybnNhdmUuaD4KKyNpbmNsdWRlIDxyZWdzdHIuaD4KKworLyogc2NyZWVuIHNhdmVyIHdpbmRvdyBjbGFzcyAqLworI2RlZmluZSBDTEFTU19TQ1JOU0FWRSBURVhUKCJXaW5kb3dzU2NyZWVuU2F2ZXJDbGFzcyIpCisKKy8qIGdsb2JhbHMgKi8KK0hXTkQJCWhNYWluV2luZG93ID0gTlVMTDsKK0JPT0wJCWZDaGlsZFByZXZpZXcgPSBGQUxTRTsKK0hJTlNUQU5DRQloTWFpbkluc3RhbmNlOworVENIQVIJCXN6TmFtZVtUSVRMRUJBUk5BTUVMRU5dOworVENIQVIJCXN6QXBwTmFtZVtBUFBOQU1FQlVGRkVSTEVOXTsKK1RDSEFSCQlzekluaUZpbGVbTUFYRklMRUxFTl07CitUQ0hBUgkJc3pTY3JlZW5TYXZlclsyMl07CitUQ0hBUgkJc3pIZWxwRmlsZVtNQVhGSUxFTEVOXTsKK1RDSEFSCQlzek5vSGVscE1lbW9yeVtCVUZGTEVOXTsKK1VJTlQJCU15SGVscE1lc3NhZ2U7CisKKy8qIGxvY2FsIGhvdXNlIGtlZXBpbmcgKi8KK3N0YXRpYyBISU5TVEFOQ0UgaFB3ZExpYiA9IE5VTEw7CitzdGF0aWMgUE9JTlQgcHRfb3JpZzsKK3N0YXRpYyBCT09MIGNoZWNraW5nX3B3ZCA9IEZBTFNFOworc3RhdGljIEJPT0wgY2xvc2luZyA9IEZBTFNFOworc3RhdGljIEJPT0wgdzk1ID0gRkFMU0U7CisKK3R5cGVkZWYgQk9PTCAoV0lOQVBJICpWRVJJRllQV0RQUk9DKShIV05EKTsKK3R5cGVkZWYgRFdPUkQgKFdJTkFQSSAqQ0hQV0RQUk9DKShMUENUU1RSLCBIV05ELCBEV09SRCwgUFZPSUQpOworc3RhdGljIFZFUklGWVBXRFBST0MgVmVyaWZ5U2NyZWVuU2F2ZVB3ZCA9IE5VTEw7CisKKy8qIGZ1bmN0aW9uIG5hbWVzICovCisjZGVmaW5lIHN6VmVyaWZ5UGFzc3dvcmQgIlZlcmlmeVNjcmVlblNhdmVQd2QiCisKKyNpZmRlZiBVTklDT0RFCisjZGVmaW5lIHN6UHdkQ2hhbmdlUGFzc3dvcmQgIlB3ZENoYW5nZVBhc3N3b3JkVyIKKyNlbHNlCisjZGVmaW5lIHN6UHdkQ2hhbmdlUGFzc3dvcmQgIlB3ZENoYW5nZVBhc3N3b3JkQSIKKyNlbmRpZgorCitzdGF0aWMgdm9pZCBUZXJtaW5hdGVTY3JlZW5TYXZlcihIV05EIGhXbmQpOworc3RhdGljIEJPT0wgUmVnaXN0ZXJDbGFzc2VzKHZvaWQpOworc3RhdGljIExSRVNVTFQgV0lOQVBJIFN5c1NjcmVlblNhdmVyUHJvYyhIV05ELFVJTlQsV1BBUkFNLExQQVJBTSk7CitzdGF0aWMgaW50IExhdW5jaFNjcmVlblNhdmVyKEhXTkQgaFBhcmVudCk7CitzdGF0aWMgdm9pZCBMYXVuY2hDb25maWcodm9pZCk7CisKK3N0YXRpYyBpbnQgSVNTUEFDRShjaGFyIGMpCit7CisgIHJldHVybiAoYyA9PSAnICcgfHwgYyA9PSAnXHQnKTsKK30KKworI2RlZmluZSBJU05VTShjKSAoKGMpID49ICcwJyAmJiBjIDw9ICc5JykKK3N0YXRpYyB1bnNpZ25lZCBsb25nCitfdG91bChjb25zdCBjaGFyICpzKQoreworICB1bnNpZ25lZCBsb25nIHJlczsKKyAgdW5zaWduZWQgbG9uZyBuOworICBjb25zdCBjaGFyICpwOworICBmb3IgKHAgPSBzOyAqcDsgcCsrKQorICAgIGlmICghSVNOVU0oKnApKSBicmVhazsKKyAgcC0tOworICByZXMgPSAwOworICBmb3IgKG4gPSAxOyBwID49IHM7IHAtLSwgbiAqPSAxMCkKKyAgICByZXMgKz0gKCpwIC0gJzAnKSAqIG47CisgIHJldHVybiByZXM7Cit9CisKKy8qIHNjcmVlbiBzYXZlciBlbnRyeSBwb2ludCAqLworaW50IEFQSUVOVFJZIFdpbk1haW4oSElOU1RBTkNFIGhJbnN0LCBISU5TVEFOQ0UgaFByZXZJbnN0LAorICAgICAgICAgICAgICAgICAgICAgTFBTVFIgQ21kTGluZSwgaW50IG5DbWRTaG93KQoreworICBMUFNUUiBwOworICBPU1ZFUlNJT05JTkZPIHZpOworCisgIC8qIGluaXRpYWxpemUgKi8KKyAgaE1haW5JbnN0YW5jZSA9IGhJbnN0OworCisgIHZpLmR3T1NWZXJzaW9uSW5mb1NpemUgPSBzaXplb2YodmkpOworICBHZXRWZXJzaW9uRXgoJnZpKTsKKyAgLyogY2hlY2sgaWYgd2UgYXJlIGdvaW5nIHRvIGNoZWNrIGZvciBwYXNzd29yZHMgKi8KKyAgaWYgKHZpLmR3UGxhdGZvcm1JZCA9PSBWRVJfUExBVEZPUk1fV0lOMzJfV0lORE9XUykKKyAgICB7CisgICAgICBIS0VZIGhLZXk7CisgICAgICAvKiB3ZSBhcmUgdXNpbmcgd2luZG93cyA5NSAqLworICAgICAgdzk1ID0gVFJVRTsKKyAgICAgIGlmIChSZWdPcGVuS2V5KEhLRVlfQ1VSUkVOVF9VU0VSLCBSRUdTVFJfUEFUSF9TQ1JFRU5TQVZFICwmaEtleSkgPT0KKyAgICAgICAgICBFUlJPUl9TVUNDRVNTKQorICAgICAgICB7CisgICAgICAgICAgRFdPUkQgY2hlY2tfcHdkOworICAgICAgICAgIERXT1JEIHNpemUgPSBzaXplb2YoRFdPUkQpOworICAgICAgICAgIERXT1JEIHR5cGU7CisgICAgICAgICAgTE9ORyByZXM7CisgICAgICAgICAgcmVzID0gUmVnUXVlcnlWYWx1ZUV4KGhLZXksIFJFR1NUUl9WQUxVRV9VU0VTQ1JQQVNTV09SRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgJnR5cGUsIChQQllURSkgJmNoZWNrX3B3ZCwgJnNpemUpOworICAgICAgICAgIGlmIChjaGVja19wd2QgJiYgcmVzID09IEVSUk9SX1NVQ0NFU1MpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGhQd2RMaWIgPSBMb2FkTGlicmFyeShURVhUKCJQQVNTV09SRC5DUEwiKSk7CisgICAgICAgICAgICAgIGlmIChoUHdkTGliKQorICAgICAgICAgICAgICAgIFZlcmlmeVNjcmVlblNhdmVQd2QgPSBHZXRQcm9jQWRkcmVzcyhoUHdkTGliLCBzelZlcmlmeVBhc3N3b3JkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBSZWdDbG9zZUtleShoS2V5KTsKKyAgICAgICAgfQorICAgIH0KKworICAvKiBwYXJzZSBhcmd1bWVudHMgKi8KKyAgZm9yIChwID0gQ21kTGluZTsgKnA7IHArKykKKyAgICB7CisgICAgICBzd2l0Y2ggKCpwKQorICAgICAgICB7CisgICAgICAgIGNhc2UgJ1MnOgorICAgICAgICBjYXNlICdzJzoKKyAgICAgICAgICAvKiBzdGFydCBzY3JlZW4gc2F2ZXIgKi8KKyAgICAgICAgICByZXR1cm4gTGF1bmNoU2NyZWVuU2F2ZXIoTlVMTCk7CisgICAgICAgICAgCisgICAgICAgIGNhc2UgJ1AnOgorICAgICAgICBjYXNlICdwJzoKKyAgICAgICAgICB7CisgICAgICAgICAgICAvKiBzdGFydCBzY3JlZW4gc2F2ZXIgaW4gcHJldmlldyB3aW5kb3cgKi8KKyAgICAgICAgICAgIEhXTkQgaFBhcmVudDsKKyAgICAgICAgICAgIGZDaGlsZFByZXZpZXcgPSBUUlVFOworICAgICAgICAgICAgd2hpbGUgKElTU1BBQ0UoKisrcCkpOworICAgICAgICAgICAgaFBhcmVudCA9IChIV05EKSAodW5zaWduZWQgbG9uZyBsb25nKV90b3VsKHApOworICAgICAgICAgICAgaWYgKGhQYXJlbnQgJiYgSXNXaW5kb3coaFBhcmVudCkpCisgICAgICAgICAgICAgIHJldHVybiBMYXVuY2hTY3JlZW5TYXZlcihoUGFyZW50KTsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgY2FzZSAnQyc6CisgICAgICAgIGNhc2UgJ2MnOgorICAgICAgICAgIC8qIGRpc3BsYXkgY29uZmlndXJlIGRpYWxvZyAqLworICAgICAgICAgIExhdW5jaENvbmZpZygpOworICAgICAgICAgIHJldHVybiAwOworCisgICAgICAgIGNhc2UgJ0EnOgorICAgICAgICBjYXNlICdhJzoKKyAgICAgICAgICB7CisgICAgICAgICAgICAvKiBjaGFuZ2Ugc2NyZWVuIHNhdmVyIHBhc3N3b3JkICovCisgICAgICAgICAgICBIV05EIGhQYXJlbnQ7CisgICAgICAgICAgICB3aGlsZSAoSVNTUEFDRSgqKytwKSk7CisgICAgICAgICAgICBoUGFyZW50ID0gKEhXTkQpICh1bnNpZ25lZCBsb25nIGxvbmcpIF90b3VsKHApOworICAgICAgICAgICAgaWYgKCFoUGFyZW50IHx8ICFJc1dpbmRvdyhoUGFyZW50KSkKKyAgICAgICAgICAgICAgaFBhcmVudCA9IEdldEZvcmVncm91bmRXaW5kb3coKTsKKyAgICAgICAgICAgIFNjcmVlblNhdmVyQ2hhbmdlUGFzc3dvcmQoaFBhcmVudCk7CisgICAgICAgICAgfQorICAgICAgICAgIHJldHVybiAwOworCisgICAgICAgIGNhc2UgJy0nOgorICAgICAgICBjYXNlICcvJzoKKyAgICAgICAgY2FzZSAnICc6CisgICAgICAgIGRlZmF1bHQ6IAorCSAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgIExhdW5jaENvbmZpZygpOworICByZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgTGF1bmNoQ29uZmlnKHZvaWQpCit7CisgIC8qIEZJWE1FOiBzaG91bGQgdGhpcyBiZSBjYWxsZWQgKi8KKyAgUmVnaXN0ZXJEaWFsb2dDbGFzc2VzKGhNYWluSW5zdGFuY2UpOworICAvKiBkaXNwbGF5IGNvbmZpZ3VyZSBkaWFsb2cgKi8KKyAgRGlhbG9nQm94KGhNYWluSW5zdGFuY2UsIE1BS0VJTlRSRVNPVVJDRShETEdfU0NSTlNBVkVDT05GSUdVUkUpLAorICAgICAgICAgICAgR2V0Rm9yZWdyb3VuZFdpbmRvdygpLCAoRExHUFJPQykgU2NyZWVuU2F2ZXJDb25maWd1cmVEaWFsb2cpOworfQorCisKK3N0YXRpYyBpbnQgTGF1bmNoU2NyZWVuU2F2ZXIoSFdORCBoUGFyZW50KQoreworICBCT09MIGZvbzsKKyAgVUlOVCBzdHlsZTsKKyAgUkVDVCByYzsKKyAgTVNHIG1zZzsKKworICAvKiBkb24ndCBhbGxvdyBvdGhlciB0YXNrcyB0byBnZXQgaW50byB0aGUgZm9yZWdyb3VuZCAqLworICBpZiAodzk1ICYmICFmQ2hpbGRQcmV2aWV3KQorICAgIFN5c3RlbVBhcmFtZXRlcnNJbmZvKFNQSV9TQ1JFRU5TQVZFUlJVTk5JTkcsIFRSVUUsICZmb28sIDApOworCisgIG1zZy53UGFyYW0gPSAwOworCisgIC8qIHJlZ2lzdGVyIGNsYXNzZXMsIGJvdGggdXNlciBkZWZpbmVkIGFuZCBjbGFzc2VzIHVzZWQgYnkgc2NyZWVuIHNhdmVyCisgICAgIGxpYnJhcnkgKi8KKyAgaWYgKCFSZWdpc3RlckNsYXNzZXMoKSkKKyAgICB7CisgICAgICBNZXNzYWdlQm94KE5VTEwsIFRFWFQoIlJlZ2lzdGVyQ2xhc3NlcygpIGZhaWxlZCIpLCBOVUxMLCBNQl9JQ09OSEFORCk7CisgICAgICBnb3RvIHJlc3RvcmU7CisgICAgfQorCisgIC8qIGEgc2xpZ2h0bHkgZGlmZmVyZW50IGFwcHJvYWNoIG5lZWRzIHRvIGJlIHVzZWQgd2hlbiBkaXNwbGF5aW5nCisgICAgIGluIGEgcHJldmlldyB3aW5kb3cgKi8KKyAgaWYgKGhQYXJlbnQpCisgICAgeworICAgICAgc3R5bGUgPSBXU19DSElMRDsKKyAgICAgIEdldENsaWVudFJlY3QoaFBhcmVudCwgJnJjKTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBzdHlsZSA9IFdTX1BPUFVQOworICAgICAgcmMucmlnaHQgPSBHZXRTeXN0ZW1NZXRyaWNzKFNNX0NYU0NSRUVOKTsKKyAgICAgIHJjLmJvdHRvbSA9IEdldFN5c3RlbU1ldHJpY3MoU01fQ1lTQ1JFRU4pOworICAgICAgc3R5bGUgfD0gV1NfVklTSUJMRTsKKyAgICB9CisKKyAgLyogY3JlYXRlIG1haW4gc2NyZWVuIHNhdmVyIHdpbmRvdyAqLworICBoTWFpbldpbmRvdyA9IENyZWF0ZVdpbmRvd0V4KGhQYXJlbnQgPyAwIDogV1NfRVhfVE9QTU9TVCwgQ0xBU1NfU0NSTlNBVkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVYVCgiU0NSRUVOU0FWRVIiKSwgc3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgcmMucmlnaHQsIHJjLmJvdHRvbSwgaFBhcmVudCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoTWFpbkluc3RhbmNlLCBOVUxMKTsKKworICAvKiBkaXNwbGF5IHdpbmRvdyBhbmQgc3RhcnQgcHVtcGluZyBtZXNzYWdlcyAqLworICBpZiAoaE1haW5XaW5kb3cpCisgICAgeworICAgICAgVXBkYXRlV2luZG93KGhNYWluV2luZG93KTsKKyAgICAgIFNob3dXaW5kb3coaE1haW5XaW5kb3csIFNXX1NIT1cpOworCisgICAgICB3aGlsZSAoR2V0TWVzc2FnZSgmbXNnLCBOVUxMLCAwLCAwKSA9PSBUUlVFKQorICAgICAgICB7CisgICAgICAgICAgVHJhbnNsYXRlTWVzc2FnZSgmbXNnKTsKKyAgICAgICAgICBEaXNwYXRjaE1lc3NhZ2UoJm1zZyk7CisgICAgICAgIH0KKyAgICB9CisKK3Jlc3RvcmU6CisgIC8qIHJlc3RvcmUgc3lzdGVtICovCisgIGlmICh3OTUgJiYgIWZDaGlsZFByZXZpZXcpCisgICAgU3lzdGVtUGFyYW1ldGVyc0luZm8oU1BJX1NDUkVFTlNBVkVSUlVOTklORywgRkFMU0UsICZmb28sIDApOworICBGcmVlTGlicmFyeShoUHdkTGliKTsKKyAgcmV0dXJuIG1zZy53UGFyYW07Cit9CisKKy8qIHRoaXMgZnVuY3Rpb24gdGFrZXMgY2FyZSBvZiAqbXVzdCogZG8gdGFza3MsIGxpa2UgdGVybWluYXRpbmcKKyAgIHNjcmVlbiBzYXZlciAqLworc3RhdGljIExSRVNVTFQgV0lOQVBJIFN5c1NjcmVlblNhdmVyUHJvYyhIV05EIGhXbmQsIFVJTlQgbXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCit7CisgIHN3aXRjaCAobXNnKQorICAgIHsKKyAgICBjYXNlIFdNX0NSRUFURToKKyAgICAgIGlmICghZkNoaWxkUHJldmlldykKKyAgICAgICAgU2V0Q3Vyc29yKE5VTEwpOworICAgICAgLyogbW91c2UgaXMgbm90IHN1cHBvc2VkIHRvIG1vdmUgZnJvbSB0aGlzIHBvc2l0aW9uICovCisgICAgICBHZXRDdXJzb3JQb3MoJnB0X29yaWcpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBXTV9ERVNUUk9ZOgorICAgICAgUG9zdFF1aXRNZXNzYWdlKDApOworICAgICAgYnJlYWs7CisgICAgY2FzZSBXTV9USU1FUjoKKyAgICAgIGlmIChjbG9zaW5nKQorICAgICAgICByZXR1cm4gMDsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgV01fUEFJTlQ6CisgICAgICBpZiAoY2xvc2luZykKKyAgICAgICAgcmV0dXJuIERlZldpbmRvd1Byb2MoaFduZCwgbXNnLCB3UGFyYW0sIGxQYXJhbSk7CisgICAgICBicmVhazsKKyAgICBjYXNlIFdNX1NZU0NPTU1BTkQ6CisgICAgICBpZiAoIWZDaGlsZFByZXZpZXcpCisgICAgICAgIHN3aXRjaCAod1BhcmFtKQorICAgICAgICAgIHsKKyAgICAgICAgICBjYXNlIFNDX0NMT1NFOgorICAgICAgICAgIGNhc2UgU0NfU0NSRUVOU0FWRToKKyAgICAgICAgICBjYXNlIFNDX05FWFRXSU5ET1c6CisgICAgICAgICAgY2FzZSBTQ19QUkVWV0lORE9XOgorICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworICAgICAgICAgIH0KKyAgICAgIGJyZWFrOworICAgIGNhc2UgV01fTU9VU0VNT1ZFOgorICAgIGNhc2UgV01fTEJVVFRPTkRPV046CisgICAgY2FzZSBXTV9SQlVUVE9ORE9XTjoKKyAgICBjYXNlIFdNX01CVVRUT05ET1dOOgorICAgIGNhc2UgV01fS0VZRE9XTjoKKyAgICBjYXNlIFdNX1NZU0tFWURPV046CisgICAgY2FzZSBXTV9OQ0FDVElWQVRFOgorICAgIGNhc2UgV01fQUNUSVZBVEU6CisgICAgY2FzZSBXTV9BQ1RJVkFURUFQUDoKKyAgICAgIGlmIChjbG9zaW5nKQorICAgICAgICByZXR1cm4gRGVmV2luZG93UHJvYyhoV25kLCBtc2csIHdQYXJhbSwgbFBhcmFtKTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgcmV0dXJuIFNjcmVlblNhdmVyUHJvYyhoV25kLCBtc2csIHdQYXJhbSwgbFBhcmFtKTsKK30KKworTE9ORyBXSU5BUEkgRGVmU2NyZWVuU2F2ZXJQcm9jKEhXTkQgaFduZCwgVUlOVCBtc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKK3sKKyAgLyogZG9uJ3QgZG8gYW55IHNwZWNpYWwgcHJvY2Vzc2luZyB3aGVuIGluIHByZXZpZXcgbW9kZSAqLworICBpZiAoZkNoaWxkUHJldmlldyB8fCBjbG9zaW5nKQorICAgIHJldHVybiBEZWZXaW5kb3dQcm9jKGhXbmQsIG1zZywgd1BhcmFtLCBsUGFyYW0pOworCisgIHN3aXRjaCAobXNnKQorICAgIHsKKyAgICBjYXNlIFdNX0NMT1NFOgorICAgICAgVGVybWluYXRlU2NyZWVuU2F2ZXIoaFduZCk7CisgICAgICAvKiBkbyBOT1QgcGFzcyB0aGlzIHRvIERlZldpbmRvd1Byb2M7IGl0IHdpbGwgdGVybWluYXRlIGV2ZW4gaWYKKyAgICAgICAgIGFuIGludmFsaWQgcGFzc3dvcmQgd2FzIGdpdmVuLgorICAgICAgICovCisgICAgICByZXR1cm4gMDsKKyAgICBjYXNlIFNDUk1fVkVSSUZZUFc6IAorICAgICAgLyogdmVyaWZ5IHBhc3N3b3JkIG9yIHJldHVybiBUUlVFIGlmIHBhc3N3b3JkIGNoZWNraW5nIGlzIHR1cm5lZCBvZmYgKi8KKyAgICAgIGlmIChWZXJpZnlTY3JlZW5TYXZlUHdkKSAKKyAgICAgICAgcmV0dXJuIFZlcmlmeVNjcmVlblNhdmVQd2QoaFduZCk7CisgICAgICBlbHNlCisgICAgICAgIHJldHVybiBUUlVFOworICAgIGNhc2UgV01fU0VUQ1VSU09SOgorICAgICAgaWYgKGNoZWNraW5nX3B3ZCkKKyAgICAgICAgYnJlYWs7CisgICAgICBTZXRDdXJzb3IoTlVMTCk7CisgICAgICByZXR1cm4gVFJVRTsKKyAgICBjYXNlIFdNX05DQUNUSVZBVEU6CisgICAgY2FzZSBXTV9BQ1RJVkFURToKKyAgICBjYXNlIFdNX0FDVElWQVRFQVBQOgorICAgICAgaWYgKHdQYXJhbSAhPSBGQUxTRSkKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXTV9NT1VTRU1PVkU6CisgICAgICB7CisgICAgICAgIFBPSU5UIHB0OworICAgICAgICBHZXRDdXJzb3JQb3MoJnB0KTsKKyAgICAgICAgaWYgKHB0LnggPT0gcHRfb3JpZy54ICYmIHB0LnkgPT0gcHRfb3JpZy55KQorICAgICAgICAgIGJyZWFrOworICAgICAgfQorICAgIGNhc2UgV01fTEJVVFRPTkRPV046CisgICAgY2FzZSBXTV9SQlVUVE9ORE9XTjoKKyAgICBjYXNlIFdNX01CVVRUT05ET1dOOgorICAgIGNhc2UgV01fS0VZRE9XTjoKKyAgICBjYXNlIFdNX1NZU0tFWURPV046CisgICAgICAvKiB0cnkgdG8gdGVybWluYXRlIHNjcmVlbiBzYXZlciAqLworICAgICAgaWYgKCFjaGVja2luZ19wd2QpCisgICAgICAgIFBvc3RNZXNzYWdlKGhXbmQsIFdNX0NMT1NFLCAwLCAwKTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgcmV0dXJuIERlZldpbmRvd1Byb2MoaFduZCwgbXNnLCB3UGFyYW0sIGxQYXJhbSk7Cit9CisKK3N0YXRpYyB2b2lkIFRlcm1pbmF0ZVNjcmVlblNhdmVyKEhXTkQgaFduZCkKK3sKKyAgLyogZG9uJ3QgYWxsb3cgcmVjdXJzaW9uICovCisgIGlmIChjaGVja2luZ19wd2QgfHwgY2xvc2luZykKKyAgICByZXR1cm47CisKKyAgLyogdmVyaWZ5IHBhc3N3b3JkICovCisgIGlmIChWZXJpZnlTY3JlZW5TYXZlUHdkKQorICAgIHsKKyAgICAgIGNoZWNraW5nX3B3ZCA9IFRSVUU7CisgICAgICBjbG9zaW5nID0gU2VuZE1lc3NhZ2UoaFduZCwgU0NSTV9WRVJJRllQVywgMCwgMCk7CisgICAgICBjaGVja2luZ19wd2QgPSBGQUxTRTsKKyAgICB9CisgIGVsc2UKKyAgICBjbG9zaW5nID0gVFJVRTsKKworICAvKiBhcmUgd2UgY2xvc2luZz8gKi8KKyAgaWYgKGNsb3NpbmcpCisgICAgeworICAgICAgRGVzdHJveVdpbmRvdyhoV25kKTsKKyAgICB9CisgIGVsc2UKKyAgICBHZXRDdXJzb3JQb3MoJnB0X29yaWcpOyAvKiBpZiBub3Q6IGdldCBuZXcgbW91c2UgcG9zaXRpb24gKi8KK30KKworLyoKKyAgUmVnaXN0ZXIgc2NyZWVuIHNhdmVyIHdpbmRvdyBjbGFzcyBhbmQgY2FsbCB1c2VyCisgIHN1cHBsaWVkIGhvb2suCisgKi8KK3N0YXRpYyBCT09MIFJlZ2lzdGVyQ2xhc3Nlcyh2b2lkKQoreworICBXTkRDTEFTUyBjbHM7CisgIAorICBjbHMuaEN1cnNvciA9IE5VTEw7IAorICBjbHMuaEljb24gPSBMb2FkSWNvbihoTWFpbkluc3RhbmNlLCBNQUtFSU5UQVRPTShJRF9BUFApKTsgCisgIGNscy5scHN6TWVudU5hbWUgPSBOVUxMOworICBjbHMubHBzekNsYXNzTmFtZSA9IENMQVNTX1NDUk5TQVZFOworICBjbHMuaGJyQmFja2dyb3VuZCA9IEdldFN0b2NrT2JqZWN0KEJMQUNLX0JSVVNIKTsKKyAgY2xzLmhJbnN0YW5jZSA9IGhNYWluSW5zdGFuY2U7CisgIGNscy5zdHlsZSA9IENTX1ZSRURSQVcgfCBDU19IUkVEUkFXIHwgQ1NfU0FWRUJJVFMgfCBDU19QQVJFTlREQzsKKyAgY2xzLmxwZm5XbmRQcm9jID0gKFdORFBST0MpIFN5c1NjcmVlblNhdmVyUHJvYzsKKyAgY2xzLmNiV25kRXh0cmEgPSAwOworICBjbHMuY2JDbHNFeHRyYSA9IDA7CisgIAorICBpZiAoIVJlZ2lzdGVyQ2xhc3MoJmNscykpCisgICAgcmV0dXJuIEZBTFNFOworCisgIHJldHVybiBSZWdpc3RlckRpYWxvZ0NsYXNzZXMoaE1haW5JbnN0YW5jZSk7Cit9CisKK3ZvaWQgV0lOQVBJIFNjcmVlblNhdmVyQ2hhbmdlUGFzc3dvcmQoSFdORCBoUGFyZW50KQoreworICAvKiBsb2FkIE1hc3RlciBQYXNzd29yZCBSb3V0ZXIgKE1QUikgKi8KKyAgSElOU1RBTkNFIGhNcHIgPSBMb2FkTGlicmFyeShURVhUKCJNUFIuRExMIikpOworICAKKyAgaWYgKGhNcHIpCisgICAgeworICAgICAgQ0hQV0RQUk9DIENoYW5nZVBhc3N3b3JkOworICAgICAgQ2hhbmdlUGFzc3dvcmQgPSAoQ0hQV0RQUk9DKSBHZXRQcm9jQWRkcmVzcyhoTXByLCBzelB3ZENoYW5nZVBhc3N3b3JkKTsKKworICAgICAgLyogY2hhbmdlIHBhc3N3b3JkIGZvciBzY3JlZW4gc2F2ZXIgcHJvdmlkZXIgKi8KKyAgICAgIGlmIChDaGFuZ2VQYXNzd29yZCkKKyAgICAgICAgQ2hhbmdlUGFzc3dvcmQoVEVYVCgiU0NSU0FWRSIpLCBoUGFyZW50LCAwLCBOVUxMKTsKKworICAgICAgRnJlZUxpYnJhcnkoaE1wcik7CisgICAgfQorfQorI2VuZGlmCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zY3JvYmouZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2Nyb2JqLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yZWNjYzk2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc2Nyb2JqLmRlZgpAQCAtMCwwICsxLDE5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNDUk9CSi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU0NST0JKLmRsbA0KK0VYUE9SVFMNCitHZW5lcmF0ZVR5cGVMaWINCitHZW5lcmF0ZVR5cGVMaWJXDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxJbnN0YWxsDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxSZWdpc3RlclNlcnZlckV4DQorRGxsUmVnaXN0ZXJTZXJ2ZXJFeEENCitEbGxSZWdpc3RlclNlcnZlckV4Vw0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyRXgNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zY3JwdHV0bC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zY3JwdHV0bC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDY5ZjY5OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NjcnB0dXRsLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNjcnB0VXRsLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTY3JwdFV0bC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zY3JydW4uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2NycnVuLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZmVlNDk0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc2NycnVuLmRlZgpAQCAtMCwwICsxLDE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNjclJ1bi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU2NyUnVuLmRsbA0KK0VYUE9SVFMNCitETExHZXREb2N1bWVudGF0aW9uDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitEb09wZW5QaXBlU3RyZWFtDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2RoY2luc3QuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2RoY2luc3QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMzMWVmMGYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zZGhjaW5zdC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBzZGhjaW5zdC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgc2RoY2luc3QuZGxsDQorRVhQT1JUUw0KK1NkQ2xhc3NDb0luc3RhbGxlcg0KK1NkQ2xhc3NJbnN0YWxsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2RwYmxiLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NkcGJsYi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmIzYjE3YQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NkcGJsYi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBzZHBibGIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHNkcGJsYi5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zZWNsb2dvbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zZWNsb2dvbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGQ1MWZjNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NlY2xvZ29uLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHNlY2xvZ29uLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBzZWNsb2dvbi5kbGwNCitFWFBPUlRTDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorU3ZjRW50cnlfU2VjbG9nb24NCitTdmNob3N0UHVzaFNlcnZpY2VHbG9iYWxzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2VjdXIzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zZWN1cjMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41Y2NhOTg4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc2VjdXIzMi5kZWYKQEAgLTAsMCArMSw4OCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTZWN1cjMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTZWN1cjMyLmRsbA0KK0VYUE9SVFMNCitTZWNEZWxldGVVc2VyTW9kZUNvbnRleHQNCitTZWNJbml0VXNlck1vZGVDb250ZXh0DQorQWNjZXB0U2VjdXJpdHlDb250ZXh0DQorQWNxdWlyZUNyZWRlbnRpYWxzSGFuZGxlQQ0KK0FjcXVpcmVDcmVkZW50aWFsc0hhbmRsZVcNCitBZGRDcmVkZW50aWFsc0ENCitBZGRDcmVkZW50aWFsc1cNCitBZGRTZWN1cml0eVBhY2thZ2VBDQorQWRkU2VjdXJpdHlQYWNrYWdlVw0KK0FwcGx5Q29udHJvbFRva2VuDQorQ29tcGxldGVBdXRoVG9rZW4NCitDcmVkTWFyc2hhbFRhcmdldEluZm8NCitDcmVkVW5tYXJzaGFsVGFyZ2V0SW5mbw0KK0RlY3J5cHRNZXNzYWdlDQorRGVsZXRlU2VjdXJpdHlDb250ZXh0DQorRGVsZXRlU2VjdXJpdHlQYWNrYWdlQQ0KK0RlbGV0ZVNlY3VyaXR5UGFja2FnZVcNCitFbmNyeXB0TWVzc2FnZQ0KK0VudW1lcmF0ZVNlY3VyaXR5UGFja2FnZXNBDQorRW51bWVyYXRlU2VjdXJpdHlQYWNrYWdlc1cNCitFeHBvcnRTZWN1cml0eUNvbnRleHQNCitGcmVlQ29udGV4dEJ1ZmZlcg0KK0ZyZWVDcmVkZW50aWFsc0hhbmRsZQ0KK0dldENvbXB1dGVyT2JqZWN0TmFtZUENCitHZXRDb21wdXRlck9iamVjdE5hbWVXDQorR2V0U2VjdXJpdHlVc2VySW5mbw0KK0dldFVzZXJOYW1lRXhBDQorR2V0VXNlck5hbWVFeFcNCitJbXBlcnNvbmF0ZVNlY3VyaXR5Q29udGV4dA0KK0ltcG9ydFNlY3VyaXR5Q29udGV4dEENCitJbXBvcnRTZWN1cml0eUNvbnRleHRXDQorSW5pdFNlY3VyaXR5SW50ZXJmYWNlQQ0KK0luaXRTZWN1cml0eUludGVyZmFjZVcNCitJbml0aWFsaXplU2VjdXJpdHlDb250ZXh0QQ0KK0luaXRpYWxpemVTZWN1cml0eUNvbnRleHRXDQorTHNhQ2FsbEF1dGhlbnRpY2F0aW9uUGFja2FnZQ0KK0xzYUNvbm5lY3RVbnRydXN0ZWQNCitMc2FEZXJlZ2lzdGVyTG9nb25Qcm9jZXNzDQorTHNhRW51bWVyYXRlTG9nb25TZXNzaW9ucw0KK0xzYUZyZWVSZXR1cm5CdWZmZXINCitMc2FHZXRMb2dvblNlc3Npb25EYXRhDQorTHNhTG9nb25Vc2VyDQorTHNhTG9va3VwQXV0aGVudGljYXRpb25QYWNrYWdlDQorTHNhUmVnaXN0ZXJMb2dvblByb2Nlc3MNCitMc2FSZWdpc3RlclBvbGljeUNoYW5nZU5vdGlmaWNhdGlvbg0KK0xzYVVucmVnaXN0ZXJQb2xpY3lDaGFuZ2VOb3RpZmljYXRpb24NCitNYWtlU2lnbmF0dXJlDQorUXVlcnlDb250ZXh0QXR0cmlidXRlc0ENCitRdWVyeUNvbnRleHRBdHRyaWJ1dGVzVw0KK1F1ZXJ5Q3JlZGVudGlhbHNBdHRyaWJ1dGVzQQ0KK1F1ZXJ5Q3JlZGVudGlhbHNBdHRyaWJ1dGVzVw0KK1F1ZXJ5U2VjdXJpdHlDb250ZXh0VG9rZW4NCitRdWVyeVNlY3VyaXR5UGFja2FnZUluZm9BDQorUXVlcnlTZWN1cml0eVBhY2thZ2VJbmZvVw0KK1JldmVydFNlY3VyaXR5Q29udGV4dA0KK1Nhc2xBY2NlcHRTZWN1cml0eUNvbnRleHQNCitTYXNsRW51bWVyYXRlUHJvZmlsZXNBDQorU2FzbEVudW1lcmF0ZVByb2ZpbGVzVw0KK1Nhc2xHZXRDb250ZXh0T3B0aW9uDQorU2FzbEdldFByb2ZpbGVQYWNrYWdlQQ0KK1Nhc2xHZXRQcm9maWxlUGFja2FnZVcNCitTYXNsSWRlbnRpZnlQYWNrYWdlQQ0KK1Nhc2xJZGVudGlmeVBhY2thZ2VXDQorU2FzbEluaXRpYWxpemVTZWN1cml0eUNvbnRleHRBDQorU2FzbEluaXRpYWxpemVTZWN1cml0eUNvbnRleHRXDQorU2FzbFNldENvbnRleHRPcHRpb24NCitTZWFsTWVzc2FnZQ0KK1NlY0NhY2hlU3NwaVBhY2thZ2VzDQorU2VjcEZyZWVNZW1vcnkNCitTZWNwU2V0SVBBZGRyZXNzDQorU2VjcFRyYW5zbGF0ZU5hbWUNCitTZWNwVHJhbnNsYXRlTmFtZUV4DQorU2V0Q29udGV4dEF0dHJpYnV0ZXNBDQorU2V0Q29udGV4dEF0dHJpYnV0ZXNXDQorU2V0Q3JlZGVudGlhbHNBdHRyaWJ1dGVzQQ0KK1NldENyZWRlbnRpYWxzQXR0cmlidXRlc1cNCitUcmFuc2xhdGVOYW1lQQ0KK1RyYW5zbGF0ZU5hbWVXDQorVW5zZWFsTWVzc2FnZQ0KK1ZlcmlmeVNpZ25hdHVyZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NlY3VyaXR5LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NlY3VyaXR5LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMDYzODJmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc2VjdXJpdHkuZGVmCkBAIC0wLDAgKzEsNDQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU2VjdXJpdHkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNlY3VyaXR5LmRsbA0KK0VYUE9SVFMNCitBY2NlcHRTZWN1cml0eUNvbnRleHQNCitBY3F1aXJlQ3JlZGVudGlhbHNIYW5kbGVBDQorQWNxdWlyZUNyZWRlbnRpYWxzSGFuZGxlVw0KK0FkZFNlY3VyaXR5UGFja2FnZUENCitBZGRTZWN1cml0eVBhY2thZ2VXDQorQXBwbHlDb250cm9sVG9rZW4NCitDb21wbGV0ZUF1dGhUb2tlbg0KK0RlY3J5cHRNZXNzYWdlDQorRGVsZXRlU2VjdXJpdHlDb250ZXh0DQorRGVsZXRlU2VjdXJpdHlQYWNrYWdlQQ0KK0RlbGV0ZVNlY3VyaXR5UGFja2FnZVcNCitFbmNyeXB0TWVzc2FnZQ0KK0VudW1lcmF0ZVNlY3VyaXR5UGFja2FnZXNBDQorRW51bWVyYXRlU2VjdXJpdHlQYWNrYWdlc1cNCitFeHBvcnRTZWN1cml0eUNvbnRleHQNCitGcmVlQ29udGV4dEJ1ZmZlcg0KK0ZyZWVDcmVkZW50aWFsc0hhbmRsZQ0KK0ltcGVyc29uYXRlU2VjdXJpdHlDb250ZXh0DQorSW1wb3J0U2VjdXJpdHlDb250ZXh0QQ0KK0ltcG9ydFNlY3VyaXR5Q29udGV4dFcNCitJbml0U2VjdXJpdHlJbnRlcmZhY2VBDQorSW5pdFNlY3VyaXR5SW50ZXJmYWNlVw0KK0luaXRpYWxpemVTZWN1cml0eUNvbnRleHRBDQorSW5pdGlhbGl6ZVNlY3VyaXR5Q29udGV4dFcNCitNYWtlU2lnbmF0dXJlDQorUXVlcnlDb250ZXh0QXR0cmlidXRlc0ENCitRdWVyeUNvbnRleHRBdHRyaWJ1dGVzVw0KK1F1ZXJ5Q3JlZGVudGlhbHNBdHRyaWJ1dGVzQQ0KK1F1ZXJ5Q3JlZGVudGlhbHNBdHRyaWJ1dGVzVw0KK1F1ZXJ5U2VjdXJpdHlDb250ZXh0VG9rZW4NCitRdWVyeVNlY3VyaXR5UGFja2FnZUluZm9BDQorUXVlcnlTZWN1cml0eVBhY2thZ2VJbmZvVw0KK1JldmVydFNlY3VyaXR5Q29udGV4dA0KK1NlYWxNZXNzYWdlDQorVW5zZWFsTWVzc2FnZQ0KK1ZlcmlmeVNpZ25hdHVyZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NlbmRjbXNnLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NlbmRjbXNnLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNDUxZDZkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc2VuZGNtc2cuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU2VuZENNc2cuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNlbmRDTXNnLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NlbmRtYWlsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NlbmRtYWlsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MmI1ODIwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc2VuZG1haWwuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU2VuZE1haWwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNlbmRNYWlsLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NlbnMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2Vucy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODIwYzJiMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NlbnMuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU2Vucy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU2Vucy5kbGwNCitFWFBPUlRTDQorU2VydmljZU1haW4NCitTZW5zTm90aWZ5TmV0Y29uRXZlbnQNCitTZW5zTm90aWZ5UmFzRXZlbnQNCitTZW5zTm90aWZ5V2lubG9nb25FdmVudA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NlbnNhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2Vuc2FwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzE2YzQ4ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NlbnNhcGkuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU2Vuc0FwaS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU2Vuc0FwaS5kbGwNCitFWFBPUlRTDQorSXNEZXN0aW5hdGlvblJlYWNoYWJsZUENCitJc0Rlc3RpbmF0aW9uUmVhY2hhYmxlVw0KK0lzTmV0d29ya0FsaXZlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2Vuc2NmZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zZW5zY2ZnLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YzUyNzRmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc2Vuc2NmZy5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTZW5zQ2ZnLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTZW5zQ2ZnLmRsbA0KK0VYUE9SVFMNCitTZW5zUmVnaXN0ZXINCitTZW5zVW5yZWdpc3Rlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3Nlby5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zZW8uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY5MWJkNzIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zZW8uZGVmCkBAIC0wLDAgKzEsMjcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU0VPLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTRU8uRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorTUNJU0dldEJpbmRpbmdJbk1ldGFiYXNlQQ0KK01DSVNHZXRCaW5kaW5nSW5NZXRhYmFzZVcNCitNQ0lTSW5pdFNFT0ENCitNQ0lTSW5pdFNFT1cNCitTRU9DYW5jZWxMaXN0ZW5Gb3JFdmVudA0KK1NFT0NvcHlEaWN0aW9uYXJ5DQorU0VPQ3JlYXRlRGljdGlvbmFyeUZyb21JU3RyZWFtDQorU0VPQ3JlYXRlRGljdGlvbmFyeUZyb21NdWx0aVN6QQ0KK1NFT0NyZWF0ZURpY3Rpb25hcnlGcm9tTXVsdGlTelcNCitTRU9DcmVhdGVJU3RyZWFtRnJvbUZpbGVBDQorU0VPQ3JlYXRlSVN0cmVhbUZyb21GaWxlVw0KK1NFT0NyZWF0ZU11bHRpU3pGcm9tRGljdGlvbmFyeUENCitTRU9DcmVhdGVNdWx0aVN6RnJvbURpY3Rpb25hcnlXDQorU0VPTGlzdGVuRm9yRXZlbnQNCitTRU9Xcml0ZURpY3Rpb25hcnlUb0lTdHJlYW0NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zZW9zLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3Nlb3MuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFlM2QwZmUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zZW9zLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNFT1MuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNFT1MuRExMDQorRVhQT1JUUw0KK0dldFByb3h5RGxsSW5mbw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2VyaWFsdWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2VyaWFsdWkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU1ZDIwOGEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zZXJpYWx1aS5kZWYKQEAgLTAsMCArMSwxNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTRVJJQUxVSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU0VSSUFMVUkuZGxsDQorRVhQT1JUUw0KK2RydkNvbW1Db25maWdEaWFsb2dXDQorZHJ2Q29tbUNvbmZpZ0RpYWxvZ0ENCitkcnZTZXREZWZhdWx0Q29tbUNvbmZpZ1cNCitkcnZTZXREZWZhdWx0Q29tbUNvbmZpZ0ENCitkcnZHZXREZWZhdWx0Q29tbUNvbmZpZ1cNCitkcnZHZXREZWZhdWx0Q29tbUNvbmZpZ0ENCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zZXJ2ZGVwcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zZXJ2ZGVwcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjM1MDNiNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NlcnZkZXBzLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNlcnZEZXBzLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTZXJ2RGVwcy5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zZXJ3dmRydi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zZXJ3dmRydi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTNkMWVmZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3Nlcnd2ZHJ2LmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNFUldWRFJWLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTRVJXVkRSVi5kbGwNCitFWFBPUlRTDQorRHJpdmVyUHJvYw0KK3dpZE1lc3NhZ2UNCit3b2RNZXNzYWdlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2V0dXBhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2V0dXBhcGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ4NmE3NGQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zZXR1cGFwaS5kZWYKQEAgLTAsMCArMSw2MTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU0VUVVBBUEkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNFVFVQQVBJLmRsbA0KK0VYUE9SVFMNCitDTVBfR2V0QmxvY2tlZERyaXZlckluZm8NCitDTVBfR2V0U2VydmVyU2lkZURldmljZUluc3RhbGxGbGFncw0KK0NNUF9Jbml0X0RldGVjdGlvbg0KK0NNUF9SZWdpc3Rlck5vdGlmaWNhdGlvbg0KK0NNUF9SZXBvcnRfTG9nT24NCitDTVBfVW5yZWdpc3Rlck5vdGlmaWNhdGlvbg0KK0NNUF9XYWl0Tm9QZW5kaW5nSW5zdGFsbEV2ZW50cw0KK0NNUF9XYWl0U2VydmljZXNBdmFpbGFibGUNCitDTV9BZGRfRW1wdHlfTG9nX0NvbmYNCitDTV9BZGRfRW1wdHlfTG9nX0NvbmZfRXgNCitDTV9BZGRfSURBDQorQ01fQWRkX0lEVw0KK0NNX0FkZF9JRF9FeEENCitDTV9BZGRfSURfRXhXDQorQ01fQWRkX1JhbmdlDQorQ01fQWRkX1Jlc19EZXMNCitDTV9BZGRfUmVzX0Rlc19FeA0KK0NNX0Nvbm5lY3RfTWFjaGluZUENCitDTV9Db25uZWN0X01hY2hpbmVXDQorQ01fQ3JlYXRlX0Rldk5vZGVBDQorQ01fQ3JlYXRlX0Rldk5vZGVXDQorQ01fQ3JlYXRlX0Rldk5vZGVfRXhBDQorQ01fQ3JlYXRlX0Rldk5vZGVfRXhXDQorQ01fQ3JlYXRlX1JhbmdlX0xpc3QNCitDTV9EZWxldGVfQ2xhc3NfS2V5DQorQ01fRGVsZXRlX0NsYXNzX0tleV9FeA0KK0NNX0RlbGV0ZV9EZXZOb2RlX0tleQ0KK0NNX0RlbGV0ZV9EZXZOb2RlX0tleV9FeA0KK0NNX0RlbGV0ZV9SYW5nZQ0KK0NNX0RldGVjdF9SZXNvdXJjZV9Db25mbGljdA0KK0NNX0RldGVjdF9SZXNvdXJjZV9Db25mbGljdF9FeA0KK0NNX0Rpc2FibGVfRGV2Tm9kZQ0KK0NNX0Rpc2FibGVfRGV2Tm9kZV9FeA0KK0NNX0Rpc2Nvbm5lY3RfTWFjaGluZQ0KK0NNX0R1cF9SYW5nZV9MaXN0DQorQ01fRW5hYmxlX0Rldk5vZGUNCitDTV9FbmFibGVfRGV2Tm9kZV9FeA0KK0NNX0VudW1lcmF0ZV9DbGFzc2VzDQorQ01fRW51bWVyYXRlX0NsYXNzZXNfRXgNCitDTV9FbnVtZXJhdGVfRW51bWVyYXRvcnNBDQorQ01fRW51bWVyYXRlX0VudW1lcmF0b3JzVw0KK0NNX0VudW1lcmF0ZV9FbnVtZXJhdG9yc19FeEENCitDTV9FbnVtZXJhdGVfRW51bWVyYXRvcnNfRXhXDQorQ01fRmluZF9SYW5nZQ0KK0NNX0ZpcnN0X1JhbmdlDQorQ01fRnJlZV9Mb2dfQ29uZg0KK0NNX0ZyZWVfTG9nX0NvbmZfRXgNCitDTV9GcmVlX0xvZ19Db25mX0hhbmRsZQ0KK0NNX0ZyZWVfUmFuZ2VfTGlzdA0KK0NNX0ZyZWVfUmVzX0Rlcw0KK0NNX0ZyZWVfUmVzX0Rlc19FeA0KK0NNX0ZyZWVfUmVzX0Rlc19IYW5kbGUNCitDTV9GcmVlX1Jlc291cmNlX0NvbmZsaWN0X0hhbmRsZQ0KK0NNX0dldF9DaGlsZA0KK0NNX0dldF9DaGlsZF9FeA0KK0NNX0dldF9DbGFzc19LZXlfTmFtZUENCitDTV9HZXRfQ2xhc3NfS2V5X05hbWVXDQorQ01fR2V0X0NsYXNzX0tleV9OYW1lX0V4QQ0KK0NNX0dldF9DbGFzc19LZXlfTmFtZV9FeFcNCitDTV9HZXRfQ2xhc3NfTmFtZUENCitDTV9HZXRfQ2xhc3NfTmFtZVcNCitDTV9HZXRfQ2xhc3NfTmFtZV9FeEENCitDTV9HZXRfQ2xhc3NfTmFtZV9FeFcNCitDTV9HZXRfQ2xhc3NfUmVnaXN0cnlfUHJvcGVydHlBDQorQ01fR2V0X0NsYXNzX1JlZ2lzdHJ5X1Byb3BlcnR5Vw0KK0NNX0dldF9EZXB0aA0KK0NNX0dldF9EZXB0aF9FeA0KK0NNX0dldF9EZXZOb2RlX0N1c3RvbV9Qcm9wZXJ0eUENCitDTV9HZXRfRGV2Tm9kZV9DdXN0b21fUHJvcGVydHlXDQorQ01fR2V0X0Rldk5vZGVfQ3VzdG9tX1Byb3BlcnR5X0V4QQ0KK0NNX0dldF9EZXZOb2RlX0N1c3RvbV9Qcm9wZXJ0eV9FeFcNCitDTV9HZXRfRGV2Tm9kZV9SZWdpc3RyeV9Qcm9wZXJ0eUENCitDTV9HZXRfRGV2Tm9kZV9SZWdpc3RyeV9Qcm9wZXJ0eVcNCitDTV9HZXRfRGV2Tm9kZV9SZWdpc3RyeV9Qcm9wZXJ0eV9FeEENCitDTV9HZXRfRGV2Tm9kZV9SZWdpc3RyeV9Qcm9wZXJ0eV9FeFcNCitDTV9HZXRfRGV2Tm9kZV9TdGF0dXMNCitDTV9HZXRfRGV2Tm9kZV9TdGF0dXNfRXgNCitDTV9HZXRfRGV2aWNlX0lEQQ0KK0NNX0dldF9EZXZpY2VfSURXDQorQ01fR2V0X0RldmljZV9JRF9FeEENCitDTV9HZXRfRGV2aWNlX0lEX0V4Vw0KK0NNX0dldF9EZXZpY2VfSURfTGlzdEENCitDTV9HZXRfRGV2aWNlX0lEX0xpc3RXDQorQ01fR2V0X0RldmljZV9JRF9MaXN0X0V4QQ0KK0NNX0dldF9EZXZpY2VfSURfTGlzdF9FeFcNCitDTV9HZXRfRGV2aWNlX0lEX0xpc3RfU2l6ZUENCitDTV9HZXRfRGV2aWNlX0lEX0xpc3RfU2l6ZVcNCitDTV9HZXRfRGV2aWNlX0lEX0xpc3RfU2l6ZV9FeEENCitDTV9HZXRfRGV2aWNlX0lEX0xpc3RfU2l6ZV9FeFcNCitDTV9HZXRfRGV2aWNlX0lEX1NpemUNCitDTV9HZXRfRGV2aWNlX0lEX1NpemVfRXgNCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9BbGlhc0ENCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9BbGlhc1cNCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9BbGlhc19FeEENCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9BbGlhc19FeFcNCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9MaXN0QQ0KK0NNX0dldF9EZXZpY2VfSW50ZXJmYWNlX0xpc3RXDQorQ01fR2V0X0RldmljZV9JbnRlcmZhY2VfTGlzdF9FeEENCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9MaXN0X0V4Vw0KK0NNX0dldF9EZXZpY2VfSW50ZXJmYWNlX0xpc3RfU2l6ZUENCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9MaXN0X1NpemVXDQorQ01fR2V0X0RldmljZV9JbnRlcmZhY2VfTGlzdF9TaXplX0V4QQ0KK0NNX0dldF9EZXZpY2VfSW50ZXJmYWNlX0xpc3RfU2l6ZV9FeFcNCitDTV9HZXRfRmlyc3RfTG9nX0NvbmYNCitDTV9HZXRfRmlyc3RfTG9nX0NvbmZfRXgNCitDTV9HZXRfR2xvYmFsX1N0YXRlDQorQ01fR2V0X0dsb2JhbF9TdGF0ZV9FeA0KK0NNX0dldF9IV19Qcm9mX0ZsYWdzQQ0KK0NNX0dldF9IV19Qcm9mX0ZsYWdzVw0KK0NNX0dldF9IV19Qcm9mX0ZsYWdzX0V4QQ0KK0NNX0dldF9IV19Qcm9mX0ZsYWdzX0V4Vw0KK0NNX0dldF9IYXJkd2FyZV9Qcm9maWxlX0luZm9BDQorQ01fR2V0X0hhcmR3YXJlX1Byb2ZpbGVfSW5mb1cNCitDTV9HZXRfSGFyZHdhcmVfUHJvZmlsZV9JbmZvX0V4QQ0KK0NNX0dldF9IYXJkd2FyZV9Qcm9maWxlX0luZm9fRXhXDQorQ01fR2V0X0xvZ19Db25mX1ByaW9yaXR5DQorQ01fR2V0X0xvZ19Db25mX1ByaW9yaXR5X0V4DQorQ01fR2V0X05leHRfTG9nX0NvbmYNCitDTV9HZXRfTmV4dF9Mb2dfQ29uZl9FeA0KK0NNX0dldF9OZXh0X1Jlc19EZXMNCitDTV9HZXRfTmV4dF9SZXNfRGVzX0V4DQorQ01fR2V0X1BhcmVudA0KK0NNX0dldF9QYXJlbnRfRXgNCitDTV9HZXRfUmVzX0Rlc19EYXRhDQorQ01fR2V0X1Jlc19EZXNfRGF0YV9FeA0KK0NNX0dldF9SZXNfRGVzX0RhdGFfU2l6ZQ0KK0NNX0dldF9SZXNfRGVzX0RhdGFfU2l6ZV9FeA0KK0NNX0dldF9SZXNvdXJjZV9Db25mbGljdF9Db3VudA0KK0NNX0dldF9SZXNvdXJjZV9Db25mbGljdF9EZXRhaWxzQQ0KK0NNX0dldF9SZXNvdXJjZV9Db25mbGljdF9EZXRhaWxzVw0KK0NNX0dldF9TaWJsaW5nDQorQ01fR2V0X1NpYmxpbmdfRXgNCitDTV9HZXRfVmVyc2lvbg0KK0NNX0dldF9WZXJzaW9uX0V4DQorQ01fSW50ZXJzZWN0X1JhbmdlX0xpc3QNCitDTV9JbnZlcnRfUmFuZ2VfTGlzdA0KK0NNX0lzX0RvY2tfU3RhdGlvbl9QcmVzZW50DQorQ01fSXNfRG9ja19TdGF0aW9uX1ByZXNlbnRfRXgNCitDTV9Jc19WZXJzaW9uX0F2YWlsYWJsZQ0KK0NNX0lzX1ZlcnNpb25fQXZhaWxhYmxlX0V4DQorQ01fTG9jYXRlX0Rldk5vZGVBDQorQ01fTG9jYXRlX0Rldk5vZGVXDQorQ01fTG9jYXRlX0Rldk5vZGVfRXhBDQorQ01fTG9jYXRlX0Rldk5vZGVfRXhXDQorQ01fTWVyZ2VfUmFuZ2VfTGlzdA0KK0NNX01vZGlmeV9SZXNfRGVzDQorQ01fTW9kaWZ5X1Jlc19EZXNfRXgNCitDTV9Nb3ZlX0Rldk5vZGUNCitDTV9Nb3ZlX0Rldk5vZGVfRXgNCitDTV9OZXh0X1JhbmdlDQorQ01fT3Blbl9DbGFzc19LZXlBDQorQ01fT3Blbl9DbGFzc19LZXlXDQorQ01fT3Blbl9DbGFzc19LZXlfRXhBDQorQ01fT3Blbl9DbGFzc19LZXlfRXhXDQorQ01fT3Blbl9EZXZOb2RlX0tleQ0KK0NNX09wZW5fRGV2Tm9kZV9LZXlfRXgNCitDTV9RdWVyeV9BbmRfUmVtb3ZlX1N1YlRyZWVBDQorQ01fUXVlcnlfQW5kX1JlbW92ZV9TdWJUcmVlVw0KK0NNX1F1ZXJ5X0FuZF9SZW1vdmVfU3ViVHJlZV9FeEENCitDTV9RdWVyeV9BbmRfUmVtb3ZlX1N1YlRyZWVfRXhXDQorQ01fUXVlcnlfQXJiaXRyYXRvcl9GcmVlX0RhdGENCitDTV9RdWVyeV9BcmJpdHJhdG9yX0ZyZWVfRGF0YV9FeA0KK0NNX1F1ZXJ5X0FyYml0cmF0b3JfRnJlZV9TaXplDQorQ01fUXVlcnlfQXJiaXRyYXRvcl9GcmVlX1NpemVfRXgNCitDTV9RdWVyeV9SZW1vdmVfU3ViVHJlZQ0KK0NNX1F1ZXJ5X1JlbW92ZV9TdWJUcmVlX0V4DQorQ01fUXVlcnlfUmVzb3VyY2VfQ29uZmxpY3RfTGlzdA0KK0NNX1JlZW51bWVyYXRlX0Rldk5vZGUNCitDTV9SZWVudW1lcmF0ZV9EZXZOb2RlX0V4DQorQ01fUmVnaXN0ZXJfRGV2aWNlX0RyaXZlcg0KK0NNX1JlZ2lzdGVyX0RldmljZV9Ecml2ZXJfRXgNCitDTV9SZWdpc3Rlcl9EZXZpY2VfSW50ZXJmYWNlQQ0KK0NNX1JlZ2lzdGVyX0RldmljZV9JbnRlcmZhY2VXDQorQ01fUmVnaXN0ZXJfRGV2aWNlX0ludGVyZmFjZV9FeEENCitDTV9SZWdpc3Rlcl9EZXZpY2VfSW50ZXJmYWNlX0V4Vw0KK0NNX1JlbW92ZV9TdWJUcmVlDQorQ01fUmVtb3ZlX1N1YlRyZWVfRXgNCitDTV9SZXF1ZXN0X0RldmljZV9FamVjdEENCitDTV9SZXF1ZXN0X0RldmljZV9FamVjdFcNCitDTV9SZXF1ZXN0X0RldmljZV9FamVjdF9FeEENCitDTV9SZXF1ZXN0X0RldmljZV9FamVjdF9FeFcNCitDTV9SZXF1ZXN0X0VqZWN0X1BDDQorQ01fUmVxdWVzdF9FamVjdF9QQ19FeA0KK0NNX1J1bl9EZXRlY3Rpb24NCitDTV9SdW5fRGV0ZWN0aW9uX0V4DQorQ01fU2V0X0NsYXNzX1JlZ2lzdHJ5X1Byb3BlcnR5QQ0KK0NNX1NldF9DbGFzc19SZWdpc3RyeV9Qcm9wZXJ0eVcNCitDTV9TZXRfRGV2Tm9kZV9Qcm9ibGVtDQorQ01fU2V0X0Rldk5vZGVfUHJvYmxlbV9FeA0KK0NNX1NldF9EZXZOb2RlX1JlZ2lzdHJ5X1Byb3BlcnR5QQ0KK0NNX1NldF9EZXZOb2RlX1JlZ2lzdHJ5X1Byb3BlcnR5Vw0KK0NNX1NldF9EZXZOb2RlX1JlZ2lzdHJ5X1Byb3BlcnR5X0V4QQ0KK0NNX1NldF9EZXZOb2RlX1JlZ2lzdHJ5X1Byb3BlcnR5X0V4Vw0KK0NNX1NldF9IV19Qcm9mDQorQ01fU2V0X0hXX1Byb2ZfRXgNCitDTV9TZXRfSFdfUHJvZl9GbGFnc0ENCitDTV9TZXRfSFdfUHJvZl9GbGFnc1cNCitDTV9TZXRfSFdfUHJvZl9GbGFnc19FeEENCitDTV9TZXRfSFdfUHJvZl9GbGFnc19FeFcNCitDTV9TZXR1cF9EZXZOb2RlDQorQ01fU2V0dXBfRGV2Tm9kZV9FeA0KK0NNX1Rlc3RfUmFuZ2VfQXZhaWxhYmxlDQorQ01fVW5pbnN0YWxsX0Rldk5vZGUNCitDTV9Vbmluc3RhbGxfRGV2Tm9kZV9FeA0KK0NNX1VucmVnaXN0ZXJfRGV2aWNlX0ludGVyZmFjZUENCitDTV9VbnJlZ2lzdGVyX0RldmljZV9JbnRlcmZhY2VXDQorQ01fVW5yZWdpc3Rlcl9EZXZpY2VfSW50ZXJmYWNlX0V4QQ0KK0NNX1VucmVnaXN0ZXJfRGV2aWNlX0ludGVyZmFjZV9FeFcNCitEb2VzVXNlckhhdmVQcml2aWxlZ2UNCitFeHRlbnNpb25Qcm9wU2hlZXRQYWdlUHJvYw0KK0luc3RhbGxDYXRhbG9nDQorSW5zdGFsbEhpbmZTZWN0aW9uDQorSW5zdGFsbEhpbmZTZWN0aW9uQQ0KK0luc3RhbGxIaW5mU2VjdGlvblcNCitJc1VzZXJBZG1pbg0KK015RnJlZQ0KK015TWFsbG9jDQorTXlSZWFsbG9jDQorU2V0dXBBZGRJbnN0YWxsU2VjdGlvblRvRGlza1NwYWNlTGlzdEENCitTZXR1cEFkZEluc3RhbGxTZWN0aW9uVG9EaXNrU3BhY2VMaXN0Vw0KK1NldHVwQWRkU2VjdGlvblRvRGlza1NwYWNlTGlzdEENCitTZXR1cEFkZFNlY3Rpb25Ub0Rpc2tTcGFjZUxpc3RXDQorU2V0dXBBZGRUb0Rpc2tTcGFjZUxpc3RBDQorU2V0dXBBZGRUb0Rpc2tTcGFjZUxpc3RXDQorU2V0dXBBZGRUb1NvdXJjZUxpc3RBDQorU2V0dXBBZGRUb1NvdXJjZUxpc3RXDQorU2V0dXBBZGp1c3REaXNrU3BhY2VMaXN0QQ0KK1NldHVwQWRqdXN0RGlza1NwYWNlTGlzdFcNCitTZXR1cEJhY2t1cEVycm9yQQ0KK1NldHVwQmFja3VwRXJyb3JXDQorU2V0dXBDYW5jZWxUZW1wb3JhcnlTb3VyY2VMaXN0DQorU2V0dXBDbG9zZUZpbGVRdWV1ZQ0KK1NldHVwQ2xvc2VJbmZGaWxlDQorU2V0dXBDbG9zZUxvZw0KK1NldHVwQ29tbWl0RmlsZVF1ZXVlDQorU2V0dXBDb21taXRGaWxlUXVldWVBDQorU2V0dXBDb21taXRGaWxlUXVldWVXDQorU2V0dXBDb25maWd1cmVXbWlGcm9tSW5mU2VjdGlvbkENCitTZXR1cENvbmZpZ3VyZVdtaUZyb21JbmZTZWN0aW9uVw0KK1NldHVwQ29weUVycm9yQQ0KK1NldHVwQ29weUVycm9yVw0KK1NldHVwQ29weU9FTUluZkENCitTZXR1cENvcHlPRU1JbmZXDQorU2V0dXBDcmVhdGVEaXNrU3BhY2VMaXN0QQ0KK1NldHVwQ3JlYXRlRGlza1NwYWNlTGlzdFcNCitTZXR1cERlY29tcHJlc3NPckNvcHlGaWxlQQ0KK1NldHVwRGVjb21wcmVzc09yQ29weUZpbGVXDQorU2V0dXBEZWZhdWx0UXVldWVDYWxsYmFjaw0KK1NldHVwRGVmYXVsdFF1ZXVlQ2FsbGJhY2tBDQorU2V0dXBEZWZhdWx0UXVldWVDYWxsYmFja1cNCitTZXR1cERlbGV0ZUVycm9yQQ0KK1NldHVwRGVsZXRlRXJyb3JXDQorU2V0dXBEZXN0cm95RGlza1NwYWNlTGlzdA0KK1NldHVwRGlBc2tGb3JPRU1EaXNrDQorU2V0dXBEaUJ1aWxkQ2xhc3NJbmZvTGlzdA0KK1NldHVwRGlCdWlsZENsYXNzSW5mb0xpc3RFeEENCitTZXR1cERpQnVpbGRDbGFzc0luZm9MaXN0RXhXDQorU2V0dXBEaUJ1aWxkRHJpdmVySW5mb0xpc3QNCitTZXR1cERpQ2FsbENsYXNzSW5zdGFsbGVyDQorU2V0dXBEaUNhbmNlbERyaXZlckluZm9TZWFyY2gNCitTZXR1cERpQ2hhbmdlU3RhdGUNCitTZXR1cERpQ2xhc3NHdWlkc0Zyb21OYW1lQQ0KK1NldHVwRGlDbGFzc0d1aWRzRnJvbU5hbWVFeEENCitTZXR1cERpQ2xhc3NHdWlkc0Zyb21OYW1lRXhXDQorU2V0dXBEaUNsYXNzR3VpZHNGcm9tTmFtZVcNCitTZXR1cERpQ2xhc3NOYW1lRnJvbUd1aWRBDQorU2V0dXBEaUNsYXNzTmFtZUZyb21HdWlkRXhBDQorU2V0dXBEaUNsYXNzTmFtZUZyb21HdWlkRXhXDQorU2V0dXBEaUNsYXNzTmFtZUZyb21HdWlkVw0KK1NldHVwRGlDcmVhdGVEZXZSZWdLZXlBDQorU2V0dXBEaUNyZWF0ZURldlJlZ0tleVcNCitTZXR1cERpQ3JlYXRlRGV2aWNlSW5mb0ENCitTZXR1cERpQ3JlYXRlRGV2aWNlSW5mb0xpc3QNCitTZXR1cERpQ3JlYXRlRGV2aWNlSW5mb0xpc3RFeEENCitTZXR1cERpQ3JlYXRlRGV2aWNlSW5mb0xpc3RFeFcNCitTZXR1cERpQ3JlYXRlRGV2aWNlSW5mb1cNCitTZXR1cERpQ3JlYXRlRGV2aWNlSW50ZXJmYWNlQQ0KK1NldHVwRGlDcmVhdGVEZXZpY2VJbnRlcmZhY2VSZWdLZXlBDQorU2V0dXBEaUNyZWF0ZURldmljZUludGVyZmFjZVJlZ0tleVcNCitTZXR1cERpQ3JlYXRlRGV2aWNlSW50ZXJmYWNlVw0KK1NldHVwRGlEZWxldGVEZXZSZWdLZXkNCitTZXR1cERpRGVsZXRlRGV2aWNlSW5mbw0KK1NldHVwRGlEZWxldGVEZXZpY2VJbnRlcmZhY2VEYXRhDQorU2V0dXBEaURlbGV0ZURldmljZUludGVyZmFjZVJlZ0tleQ0KK1NldHVwRGlEZXN0cm95Q2xhc3NJbWFnZUxpc3QNCitTZXR1cERpRGVzdHJveURldmljZUluZm9MaXN0DQorU2V0dXBEaURlc3Ryb3lEcml2ZXJJbmZvTGlzdA0KK1NldHVwRGlEcmF3TWluaUljb24NCitTZXR1cERpRW51bURldmljZUluZm8NCitTZXR1cERpRW51bURldmljZUludGVyZmFjZXMNCitTZXR1cERpRW51bURyaXZlckluZm9BDQorU2V0dXBEaUVudW1Ecml2ZXJJbmZvVw0KK1NldHVwRGlHZXRBY3R1YWxNb2RlbHNTZWN0aW9uQQ0KK1NldHVwRGlHZXRBY3R1YWxNb2RlbHNTZWN0aW9uVw0KK1NldHVwRGlHZXRBY3R1YWxTZWN0aW9uVG9JbnN0YWxsQQ0KK1NldHVwRGlHZXRBY3R1YWxTZWN0aW9uVG9JbnN0YWxsRXhBDQorU2V0dXBEaUdldEFjdHVhbFNlY3Rpb25Ub0luc3RhbGxFeFcNCitTZXR1cERpR2V0QWN0dWFsU2VjdGlvblRvSW5zdGFsbFcNCitTZXR1cERpR2V0Q2xhc3NCaXRtYXBJbmRleA0KK1NldHVwRGlHZXRDbGFzc0Rlc2NyaXB0aW9uQQ0KK1NldHVwRGlHZXRDbGFzc0Rlc2NyaXB0aW9uRXhBDQorU2V0dXBEaUdldENsYXNzRGVzY3JpcHRpb25FeFcNCitTZXR1cERpR2V0Q2xhc3NEZXNjcmlwdGlvblcNCitTZXR1cERpR2V0Q2xhc3NEZXZQcm9wZXJ0eVNoZWV0c0ENCitTZXR1cERpR2V0Q2xhc3NEZXZQcm9wZXJ0eVNoZWV0c1cNCitTZXR1cERpR2V0Q2xhc3NEZXZzQQ0KK1NldHVwRGlHZXRDbGFzc0RldnNFeEENCitTZXR1cERpR2V0Q2xhc3NEZXZzRXhXDQorU2V0dXBEaUdldENsYXNzRGV2c1cNCitTZXR1cERpR2V0Q2xhc3NJbWFnZUluZGV4DQorU2V0dXBEaUdldENsYXNzSW1hZ2VMaXN0DQorU2V0dXBEaUdldENsYXNzSW1hZ2VMaXN0RXhBDQorU2V0dXBEaUdldENsYXNzSW1hZ2VMaXN0RXhXDQorU2V0dXBEaUdldENsYXNzSW5zdGFsbFBhcmFtc0ENCitTZXR1cERpR2V0Q2xhc3NJbnN0YWxsUGFyYW1zVw0KK1NldHVwRGlHZXRDbGFzc1JlZ2lzdHJ5UHJvcGVydHlBDQorU2V0dXBEaUdldENsYXNzUmVnaXN0cnlQcm9wZXJ0eVcNCitTZXR1cERpR2V0Q3VzdG9tRGV2aWNlUHJvcGVydHlBDQorU2V0dXBEaUdldEN1c3RvbURldmljZVByb3BlcnR5Vw0KK1NldHVwRGlHZXREZXZpY2VJbmZvTGlzdENsYXNzDQorU2V0dXBEaUdldERldmljZUluZm9MaXN0RGV0YWlsQQ0KK1NldHVwRGlHZXREZXZpY2VJbmZvTGlzdERldGFpbFcNCitTZXR1cERpR2V0RGV2aWNlSW5zdGFsbFBhcmFtc0ENCitTZXR1cERpR2V0RGV2aWNlSW5zdGFsbFBhcmFtc1cNCitTZXR1cERpR2V0RGV2aWNlSW5zdGFuY2VJZEENCitTZXR1cERpR2V0RGV2aWNlSW5zdGFuY2VJZFcNCitTZXR1cERpR2V0RGV2aWNlSW50ZXJmYWNlQWxpYXMNCitTZXR1cERpR2V0RGV2aWNlSW50ZXJmYWNlRGV0YWlsQQ0KK1NldHVwRGlHZXREZXZpY2VJbnRlcmZhY2VEZXRhaWxXDQorU2V0dXBEaUdldERldmljZVJlZ2lzdHJ5UHJvcGVydHlBDQorU2V0dXBEaUdldERldmljZVJlZ2lzdHJ5UHJvcGVydHlXDQorU2V0dXBEaUdldERyaXZlckluZm9EZXRhaWxBDQorU2V0dXBEaUdldERyaXZlckluZm9EZXRhaWxXDQorU2V0dXBEaUdldERyaXZlckluc3RhbGxQYXJhbXNBDQorU2V0dXBEaUdldERyaXZlckluc3RhbGxQYXJhbXNXDQorU2V0dXBEaUdldEh3UHJvZmlsZUZyaWVuZGx5TmFtZUENCitTZXR1cERpR2V0SHdQcm9maWxlRnJpZW5kbHlOYW1lRXhBDQorU2V0dXBEaUdldEh3UHJvZmlsZUZyaWVuZGx5TmFtZUV4Vw0KK1NldHVwRGlHZXRId1Byb2ZpbGVGcmllbmRseU5hbWVXDQorU2V0dXBEaUdldEh3UHJvZmlsZUxpc3QNCitTZXR1cERpR2V0SHdQcm9maWxlTGlzdEV4QQ0KK1NldHVwRGlHZXRId1Byb2ZpbGVMaXN0RXhXDQorU2V0dXBEaUdldElORkNsYXNzQQ0KK1NldHVwRGlHZXRJTkZDbGFzc1cNCitTZXR1cERpR2V0U2VsZWN0ZWREZXZpY2UNCitTZXR1cERpR2V0U2VsZWN0ZWREcml2ZXJBDQorU2V0dXBEaUdldFNlbGVjdGVkRHJpdmVyVw0KK1NldHVwRGlHZXRXaXphcmRQYWdlDQorU2V0dXBEaUluc3RhbGxDbGFzc0ENCitTZXR1cERpSW5zdGFsbENsYXNzRXhBDQorU2V0dXBEaUluc3RhbGxDbGFzc0V4Vw0KK1NldHVwRGlJbnN0YWxsQ2xhc3NXDQorU2V0dXBEaUluc3RhbGxEZXZpY2UNCitTZXR1cERpSW5zdGFsbERldmljZUludGVyZmFjZXMNCitTZXR1cERpSW5zdGFsbERyaXZlckZpbGVzDQorU2V0dXBEaUxvYWRDbGFzc0ljb24NCitTZXR1cERpTW92ZUR1cGxpY2F0ZURldmljZQ0KK1NldHVwRGlPcGVuQ2xhc3NSZWdLZXkNCitTZXR1cERpT3BlbkNsYXNzUmVnS2V5RXhBDQorU2V0dXBEaU9wZW5DbGFzc1JlZ0tleUV4Vw0KK1NldHVwRGlPcGVuRGV2UmVnS2V5DQorU2V0dXBEaU9wZW5EZXZpY2VJbmZvQQ0KK1NldHVwRGlPcGVuRGV2aWNlSW5mb1cNCitTZXR1cERpT3BlbkRldmljZUludGVyZmFjZUENCitTZXR1cERpT3BlbkRldmljZUludGVyZmFjZVJlZ0tleQ0KK1NldHVwRGlPcGVuRGV2aWNlSW50ZXJmYWNlVw0KK1NldHVwRGlSZWdpc3RlckNvRGV2aWNlSW5zdGFsbGVycw0KK1NldHVwRGlSZWdpc3RlckRldmljZUluZm8NCitTZXR1cERpUmVtb3ZlRGV2aWNlDQorU2V0dXBEaVJlbW92ZURldmljZUludGVyZmFjZQ0KK1NldHVwRGlSZXN0YXJ0RGV2aWNlcw0KK1NldHVwRGlTZWxlY3RCZXN0Q29tcGF0RHJ2DQorU2V0dXBEaVNlbGVjdERldmljZQ0KK1NldHVwRGlTZWxlY3RPRU1EcnYNCitTZXR1cERpU2V0Q2xhc3NJbnN0YWxsUGFyYW1zQQ0KK1NldHVwRGlTZXRDbGFzc0luc3RhbGxQYXJhbXNXDQorU2V0dXBEaVNldENsYXNzUmVnaXN0cnlQcm9wZXJ0eUENCitTZXR1cERpU2V0Q2xhc3NSZWdpc3RyeVByb3BlcnR5Vw0KK1NldHVwRGlTZXREZXZpY2VJbnN0YWxsUGFyYW1zQQ0KK1NldHVwRGlTZXREZXZpY2VJbnN0YWxsUGFyYW1zVw0KK1NldHVwRGlTZXREZXZpY2VJbnRlcmZhY2VEZWZhdWx0DQorU2V0dXBEaVNldERldmljZVJlZ2lzdHJ5UHJvcGVydHlBDQorU2V0dXBEaVNldERldmljZVJlZ2lzdHJ5UHJvcGVydHlXDQorU2V0dXBEaVNldERyaXZlckluc3RhbGxQYXJhbXNBDQorU2V0dXBEaVNldERyaXZlckluc3RhbGxQYXJhbXNXDQorU2V0dXBEaVNldFNlbGVjdGVkRGV2aWNlDQorU2V0dXBEaVNldFNlbGVjdGVkRHJpdmVyQQ0KK1NldHVwRGlTZXRTZWxlY3RlZERyaXZlclcNCitTZXR1cERpVW5yZW1vdmVEZXZpY2UNCitTZXR1cER1cGxpY2F0ZURpc2tTcGFjZUxpc3RBDQorU2V0dXBEdXBsaWNhdGVEaXNrU3BhY2VMaXN0Vw0KK1NldHVwRW51bUluZlNlY3Rpb25zQQ0KK1NldHVwRW51bUluZlNlY3Rpb25zVw0KK1NldHVwRmluZEZpcnN0TGluZUENCitTZXR1cEZpbmRGaXJzdExpbmVXDQorU2V0dXBGaW5kTmV4dExpbmUNCitTZXR1cEZpbmROZXh0TWF0Y2hMaW5lQQ0KK1NldHVwRmluZE5leHRNYXRjaExpbmVXDQorU2V0dXBGcmVlU291cmNlTGlzdEENCitTZXR1cEZyZWVTb3VyY2VMaXN0Vw0KK1NldHVwR2V0QmFja3VwSW5mb3JtYXRpb25BDQorU2V0dXBHZXRCYWNrdXBJbmZvcm1hdGlvblcNCitTZXR1cEdldEJpbmFyeUZpZWxkDQorU2V0dXBHZXRGaWVsZENvdW50DQorU2V0dXBHZXRGaWxlQ29tcHJlc3Npb25JbmZvQQ0KK1NldHVwR2V0RmlsZUNvbXByZXNzaW9uSW5mb0V4QQ0KK1NldHVwR2V0RmlsZUNvbXByZXNzaW9uSW5mb0V4Vw0KK1NldHVwR2V0RmlsZUNvbXByZXNzaW9uSW5mb1cNCitTZXR1cEdldEZpbGVRdWV1ZUNvdW50DQorU2V0dXBHZXRGaWxlUXVldWVGbGFncw0KK1NldHVwR2V0SW5mRmlsZUxpc3RBDQorU2V0dXBHZXRJbmZGaWxlTGlzdFcNCitTZXR1cEdldEluZkluZm9ybWF0aW9uQQ0KK1NldHVwR2V0SW5mSW5mb3JtYXRpb25XDQorU2V0dXBHZXRJbmZTZWN0aW9ucw0KK1NldHVwR2V0SW50RmllbGQNCitTZXR1cEdldExpbmVCeUluZGV4QQ0KK1NldHVwR2V0TGluZUJ5SW5kZXhXDQorU2V0dXBHZXRMaW5lQ291bnRBDQorU2V0dXBHZXRMaW5lQ291bnRXDQorU2V0dXBHZXRMaW5lVGV4dEENCitTZXR1cEdldExpbmVUZXh0Vw0KK1NldHVwR2V0TXVsdGlTekZpZWxkQQ0KK1NldHVwR2V0TXVsdGlTekZpZWxkVw0KK1NldHVwR2V0Tm9uSW50ZXJhY3RpdmVNb2RlDQorU2V0dXBHZXRTb3VyY2VGaWxlTG9jYXRpb25BDQorU2V0dXBHZXRTb3VyY2VGaWxlTG9jYXRpb25XDQorU2V0dXBHZXRTb3VyY2VGaWxlU2l6ZUENCitTZXR1cEdldFNvdXJjZUZpbGVTaXplVw0KK1NldHVwR2V0U291cmNlSW5mb0ENCitTZXR1cEdldFNvdXJjZUluZm9XDQorU2V0dXBHZXRTdHJpbmdGaWVsZEENCitTZXR1cEdldFN0cmluZ0ZpZWxkVw0KK1NldHVwR2V0VGFyZ2V0UGF0aEENCitTZXR1cEdldFRhcmdldFBhdGhXDQorU2V0dXBJbml0RGVmYXVsdFF1ZXVlQ2FsbGJhY2sNCitTZXR1cEluaXREZWZhdWx0UXVldWVDYWxsYmFja0V4DQorU2V0dXBJbml0aWFsaXplRmlsZUxvZ0ENCitTZXR1cEluaXRpYWxpemVGaWxlTG9nVw0KK1NldHVwSW5zdGFsbEZpbGVBDQorU2V0dXBJbnN0YWxsRmlsZUV4QQ0KK1NldHVwSW5zdGFsbEZpbGVFeFcNCitTZXR1cEluc3RhbGxGaWxlVw0KK1NldHVwSW5zdGFsbEZpbGVzRnJvbUluZlNlY3Rpb25BDQorU2V0dXBJbnN0YWxsRmlsZXNGcm9tSW5mU2VjdGlvblcNCitTZXR1cEluc3RhbGxGcm9tSW5mU2VjdGlvbkENCitTZXR1cEluc3RhbGxGcm9tSW5mU2VjdGlvblcNCitTZXR1cEluc3RhbGxTZXJ2aWNlc0Zyb21JbmZTZWN0aW9uQQ0KK1NldHVwSW5zdGFsbFNlcnZpY2VzRnJvbUluZlNlY3Rpb25FeEENCitTZXR1cEluc3RhbGxTZXJ2aWNlc0Zyb21JbmZTZWN0aW9uRXhXDQorU2V0dXBJbnN0YWxsU2VydmljZXNGcm9tSW5mU2VjdGlvblcNCitTZXR1cEl0ZXJhdGVDYWJpbmV0QQ0KK1NldHVwSXRlcmF0ZUNhYmluZXRXDQorU2V0dXBMb2dFcnJvckENCitTZXR1cExvZ0Vycm9yVw0KK1NldHVwTG9nRmlsZUENCitTZXR1cExvZ0ZpbGVXDQorU2V0dXBPcGVuQXBwZW5kSW5mRmlsZUENCitTZXR1cE9wZW5BcHBlbmRJbmZGaWxlVw0KK1NldHVwT3BlbkZpbGVRdWV1ZQ0KK1NldHVwT3BlbkluZkZpbGVBDQorU2V0dXBPcGVuSW5mRmlsZVcNCitTZXR1cE9wZW5Mb2cNCitTZXR1cE9wZW5NYXN0ZXJJbmYNCitTZXR1cFByZXBhcmVRdWV1ZUZvclJlc3RvcmVBDQorU2V0dXBQcmVwYXJlUXVldWVGb3JSZXN0b3JlVw0KK1NldHVwUHJvbXB0Rm9yRGlza0ENCitTZXR1cFByb21wdEZvckRpc2tXDQorU2V0dXBQcm9tcHRSZWJvb3QNCitTZXR1cFF1ZXJ5RHJpdmVzSW5EaXNrU3BhY2VMaXN0QQ0KK1NldHVwUXVlcnlEcml2ZXNJbkRpc2tTcGFjZUxpc3RXDQorU2V0dXBRdWVyeUZpbGVMb2dBDQorU2V0dXBRdWVyeUZpbGVMb2dXDQorU2V0dXBRdWVyeUluZkZpbGVJbmZvcm1hdGlvbkENCitTZXR1cFF1ZXJ5SW5mRmlsZUluZm9ybWF0aW9uVw0KK1NldHVwUXVlcnlJbmZPcmlnaW5hbEZpbGVJbmZvcm1hdGlvbkENCitTZXR1cFF1ZXJ5SW5mT3JpZ2luYWxGaWxlSW5mb3JtYXRpb25XDQorU2V0dXBRdWVyeUluZlZlcnNpb25JbmZvcm1hdGlvbkENCitTZXR1cFF1ZXJ5SW5mVmVyc2lvbkluZm9ybWF0aW9uVw0KK1NldHVwUXVlcnlTb3VyY2VMaXN0QQ0KK1NldHVwUXVlcnlTb3VyY2VMaXN0Vw0KK1NldHVwUXVlcnlTcGFjZVJlcXVpcmVkT25Ecml2ZUENCitTZXR1cFF1ZXJ5U3BhY2VSZXF1aXJlZE9uRHJpdmVXDQorU2V0dXBRdWV1ZUNvcHlBDQorU2V0dXBRdWV1ZUNvcHlJbmRpcmVjdEENCitTZXR1cFF1ZXVlQ29weUluZGlyZWN0Vw0KK1NldHVwUXVldWVDb3B5U2VjdGlvbkENCitTZXR1cFF1ZXVlQ29weVNlY3Rpb25XDQorU2V0dXBRdWV1ZUNvcHlXDQorU2V0dXBRdWV1ZURlZmF1bHRDb3B5QQ0KK1NldHVwUXVldWVEZWZhdWx0Q29weVcNCitTZXR1cFF1ZXVlRGVsZXRlQQ0KK1NldHVwUXVldWVEZWxldGVTZWN0aW9uQQ0KK1NldHVwUXVldWVEZWxldGVTZWN0aW9uVw0KK1NldHVwUXVldWVEZWxldGVXDQorU2V0dXBRdWV1ZVJlbmFtZUENCitTZXR1cFF1ZXVlUmVuYW1lU2VjdGlvbkENCitTZXR1cFF1ZXVlUmVuYW1lU2VjdGlvblcNCitTZXR1cFF1ZXVlUmVuYW1lVw0KK1NldHVwUmVtb3ZlRmlsZUxvZ0VudHJ5QQ0KK1NldHVwUmVtb3ZlRmlsZUxvZ0VudHJ5Vw0KK1NldHVwUmVtb3ZlRnJvbURpc2tTcGFjZUxpc3RBDQorU2V0dXBSZW1vdmVGcm9tRGlza1NwYWNlTGlzdFcNCitTZXR1cFJlbW92ZUZyb21Tb3VyY2VMaXN0QQ0KK1NldHVwUmVtb3ZlRnJvbVNvdXJjZUxpc3RXDQorU2V0dXBSZW1vdmVJbnN0YWxsU2VjdGlvbkZyb21EaXNrU3BhY2VMaXN0QQ0KK1NldHVwUmVtb3ZlSW5zdGFsbFNlY3Rpb25Gcm9tRGlza1NwYWNlTGlzdFcNCitTZXR1cFJlbW92ZVNlY3Rpb25Gcm9tRGlza1NwYWNlTGlzdEENCitTZXR1cFJlbW92ZVNlY3Rpb25Gcm9tRGlza1NwYWNlTGlzdFcNCitTZXR1cFJlbmFtZUVycm9yQQ0KK1NldHVwUmVuYW1lRXJyb3JXDQorU2V0dXBTY2FuRmlsZVF1ZXVlDQorU2V0dXBTY2FuRmlsZVF1ZXVlQQ0KK1NldHVwU2NhbkZpbGVRdWV1ZVcNCitTZXR1cFNldERpcmVjdG9yeUlkQQ0KK1NldHVwU2V0RGlyZWN0b3J5SWRFeEENCitTZXR1cFNldERpcmVjdG9yeUlkRXhXDQorU2V0dXBTZXREaXJlY3RvcnlJZFcNCitTZXR1cFNldEZpbGVRdWV1ZUFsdGVybmF0ZVBsYXRmb3JtQQ0KK1NldHVwU2V0RmlsZVF1ZXVlQWx0ZXJuYXRlUGxhdGZvcm1XDQorU2V0dXBTZXRGaWxlUXVldWVGbGFncw0KK1NldHVwU2V0Tm9uSW50ZXJhY3RpdmVNb2RlDQorU2V0dXBTZXRQbGF0Zm9ybVBhdGhPdmVycmlkZUENCitTZXR1cFNldFBsYXRmb3JtUGF0aE92ZXJyaWRlVw0KK1NldHVwU2V0U291cmNlTGlzdEENCitTZXR1cFNldFNvdXJjZUxpc3RXDQorU2V0dXBUZXJtRGVmYXVsdFF1ZXVlQ2FsbGJhY2sNCitTZXR1cFRlcm1pbmF0ZUZpbGVMb2cNCitTZXR1cFVuaW5zdGFsbE5ld2x5Q29waWVkSW5mcw0KK1NldHVwVW5pbnN0YWxsT0VNSW5mQQ0KK1NldHVwVW5pbnN0YWxsT0VNSW5mVw0KK1NldHVwVmVyaWZ5SW5mRmlsZUENCitTZXR1cFZlcmlmeUluZkZpbGVXDQorVW5pY29kZVRvTXVsdGlCeXRlDQorVmVyaWZ5Q2F0YWxvZ0ZpbGUNCitwU2V0dXBBY2Nlc3NSdW5PbmNlTm9kZUxpc3QNCitwU2V0dXBBY3F1aXJlU0NNTG9jaw0KK3BTZXR1cEFkZE1pbmlJY29uVG9MaXN0DQorcFNldHVwQWRkVGFnVG9Hcm91cE9yZGVyTGlzdEVudHJ5DQorcFNldHVwQXBwZW5kU3RyaW5nVG9NdWx0aVN6DQorcFNldHVwQ2FwdHVyZUFuZENvbnZlcnRBbnNpQXJnDQorcFNldHVwQ2VudGVyV2luZG93UmVsYXRpdmVUb1BhcmVudA0KK3BTZXR1cENvbmNhdGVuYXRlUGF0aHMNCitwU2V0dXBEZXN0cm95UnVuT25jZU5vZGVMaXN0DQorcFNldHVwRGlHZXREZXZpY2VJbmZvQ29udGV4dA0KK3BTZXR1cERpU2V0RGV2aWNlSW5mb0NvbnRleHQNCitwU2V0dXBEb2VzVXNlckhhdmVQcml2aWxlZ2UNCitwU2V0dXBEdXBsaWNhdGVTdHJpbmcNCitwU2V0dXBFbmFibGVQcml2aWxlZ2UNCitwU2V0dXBGcmVlDQorcFNldHVwRnJlZVN0cmluZ0FycmF5DQorcFNldHVwR2V0Q3VycmVudERyaXZlclNpZ25pbmdQb2xpY3kNCitwU2V0dXBHZXRGaWVsZA0KK3BTZXR1cEdldEZpbGVUaXRsZQ0KK3BTZXR1cEdldEdsb2JhbEZsYWdzDQorcFNldHVwR2V0SW5mU2VjdGlvbnMNCitwU2V0dXBHZXRRdWV1ZUZsYWdzDQorcFNldHVwR2V0UmVhbFN5c3RlbVRpbWUNCitwU2V0dXBHZXRWZXJzaW9uSW5mb0Zyb21JbWFnZQ0KK3BTZXR1cEd1aWRGcm9tU3RyaW5nDQorcFNldHVwSGFuZGxlRmFpbGVkVmVyaWZpY2F0aW9uDQorcFNldHVwSW5mQ2FjaGVCdWlsZA0KK3BTZXR1cEluZklzRnJvbU9lbUxvY2F0aW9uDQorcFNldHVwSW5zdGFsbENhdGFsb2cNCitwU2V0dXBJbnN0YWxsU3RvcEV4DQorcFNldHVwSXNHdWlkTnVsbA0KK3BTZXR1cElzTG9jYWxTeXN0ZW0NCitwU2V0dXBJc1VzZXJBZG1pbg0KK3BTZXR1cE1ha2VTdXJlUGF0aEV4aXN0cw0KK3BTZXR1cE1hbGxvYw0KK3BTZXR1cE1vZGlmeUdsb2JhbEZsYWdzDQorcFNldHVwTXVsdGlCeXRlVG9Vbmljb2RlDQorcFNldHVwT3BlbkFuZE1hcEZpbGVGb3JSZWFkDQorcFNldHVwT3V0T2ZNZW1vcnkNCitwU2V0dXBRdWVyeU11bHRpU3pWYWx1ZVRvQXJyYXkNCitwU2V0dXBSZWFsbG9jDQorcFNldHVwUmVnaXN0cnlEZWxub2RlDQorcFNldHVwUmV0cmlldmVTZXJ2aWNlQ29uZmlnDQorcFNldHVwU2V0QXJyYXlUb011bHRpU3pWYWx1ZQ0KK3BTZXR1cFNldEdsb2JhbEZsYWdzDQorcFNldHVwU2V0Tm9Ecml2ZXJQcm9tcHRzDQorcFNldHVwU2V0UXVldWVGbGFncw0KK3BTZXR1cFNldFN5c3RlbVNvdXJjZVBhdGgNCitwU2V0dXBTaG91bGREZXZpY2VCZUV4Y2x1ZGVkDQorcFNldHVwU3RyaW5nRnJvbUd1aWQNCitwU2V0dXBTdHJpbmdUYWJsZUFkZFN0cmluZw0KK3BTZXR1cFN0cmluZ1RhYmxlQWRkU3RyaW5nRXgNCitwU2V0dXBTdHJpbmdUYWJsZURlc3Ryb3kNCitwU2V0dXBTdHJpbmdUYWJsZUR1cGxpY2F0ZQ0KK3BTZXR1cFN0cmluZ1RhYmxlRW51bQ0KK3BTZXR1cFN0cmluZ1RhYmxlR2V0RXh0cmFEYXRhDQorcFNldHVwU3RyaW5nVGFibGVJbml0aWFsaXplDQorcFNldHVwU3RyaW5nVGFibGVJbml0aWFsaXplRXgNCitwU2V0dXBTdHJpbmdUYWJsZUxvb2tVcFN0cmluZw0KK3BTZXR1cFN0cmluZ1RhYmxlTG9va1VwU3RyaW5nRXgNCitwU2V0dXBTdHJpbmdUYWJsZVNldEV4dHJhRGF0YQ0KK3BTZXR1cFN0cmluZ1RhYmxlU3RyaW5nRnJvbUlkDQorcFNldHVwU3RyaW5nVGFibGVTdHJpbmdGcm9tSWRFeA0KK3BTZXR1cFVuaWNvZGVUb011bHRpQnl0ZQ0KK3BTZXR1cFVubWFwQW5kQ2xvc2VGaWxlDQorcFNldHVwVmVyaWZ5Q2F0YWxvZ0ZpbGUNCitwU2V0dXBWZXJpZnlGaWxlDQorcFNldHVwVmVyaWZ5UXVldWVkQ2F0YWxvZ3MNCitwU2V0dXBXcml0ZUxvZ0VudHJ5DQorcFNldHVwV3JpdGVMb2dFcnJvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NldHVwcXJ5LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NldHVwcXJ5LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YjFiODE0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc2V0dXBxcnkuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBzZXR1cHFyeS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgc2V0dXBxcnkuZGxsDQorRVhQT1JUUw0KK0luZGV4U3J2DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2ZjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NmYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTE2M2UzZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NmYy5kZWYKQEAgLTAsMCArMSwxNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBzZmMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHNmYy5kbGwNCitFWFBPUlRTDQorU1JTZXRSZXN0b3JlUG9pbnQNCitTUlNldFJlc3RvcmVQb2ludEENCitTUlNldFJlc3RvcmVQb2ludFcNCitTZmNHZXROZXh0UHJvdGVjdGVkRmlsZQ0KK1NmY0lzRmlsZVByb3RlY3RlZA0KK1NmY1dMRXZlbnRMb2dvZmYNCitTZmNXTEV2ZW50TG9nb24NCitTZnBWZXJpZnlGaWxlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2ZjX29zLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NmY19vcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDM2ZWI3NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NmY19vcy5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBzZmNfb3MuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHNmY19vcy5kbGwNCitFWFBPUlRTDQorU2ZjR2V0TmV4dFByb3RlY3RlZEZpbGUNCitTZmNJc0ZpbGVQcm90ZWN0ZWQNCitTZmNXTEV2ZW50TG9nb2ZmDQorU2ZjV0xFdmVudExvZ29uDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2ZjZmlsZXMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2ZjZmlsZXMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYxZDJlZDUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zZmNmaWxlcy5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHNmY2ZpbGVzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBzZmNmaWxlcy5kbGwNCitFWFBPUlRTDQorU2ZjR2V0RmlsZXMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zZm1hcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2ZtYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kODNjOTM1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc2ZtYXBpLmRlZgpAQCAtMCwwICsxLDQwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNGTUFQSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU0ZNQVBJLmRsbA0KK0VYUE9SVFMNCitBZnBBZG1pbkJ1ZmZlckZyZWUNCitBZnBBZG1pbkNvbm5lY3QNCitBZnBBZG1pbkNvbm5lY3Rpb25DbG9zZQ0KK0FmcEFkbWluQ29ubmVjdGlvbkVudW0NCitBZnBBZG1pbkRpcmVjdG9yeUdldEluZm8NCitBZnBBZG1pbkRpcmVjdG9yeVNldEluZm8NCitBZnBBZG1pbkRpc2Nvbm5lY3QNCitBZnBBZG1pbkVUQ01hcEFkZA0KK0FmcEFkbWluRVRDTWFwQXNzb2NpYXRlDQorQWZwQWRtaW5FVENNYXBEZWxldGUNCitBZnBBZG1pbkVUQ01hcEdldEluZm8NCitBZnBBZG1pbkVUQ01hcFNldEluZm8NCitBZnBBZG1pbkZpbGVDbG9zZQ0KK0FmcEFkbWluRmlsZUVudW0NCitBZnBBZG1pbkZpbmRlclNldEluZm8NCitBZnBBZG1pbkludmFsaWRWb2x1bWVEZWxldGUNCitBZnBBZG1pbkludmFsaWRWb2x1bWVFbnVtDQorQWZwQWRtaW5NZXNzYWdlU2VuZA0KK0FmcEFkbWluUHJvZmlsZUNsZWFyDQorQWZwQWRtaW5Qcm9maWxlR2V0DQorQWZwQWRtaW5TZXJ2ZXJHZXRJbmZvDQorQWZwQWRtaW5TZXJ2ZXJTZXRJbmZvDQorQWZwQWRtaW5TZXNzaW9uQ2xvc2UNCitBZnBBZG1pblNlc3Npb25FbnVtDQorQWZwQWRtaW5TdGF0aXN0aWNzQ2xlYXINCitBZnBBZG1pblN0YXRpc3RpY3NHZXQNCitBZnBBZG1pblN0YXRpc3RpY3NHZXRFeA0KK0FmcEFkbWluVm9sdW1lQWRkDQorQWZwQWRtaW5Wb2x1bWVEZWxldGUNCitBZnBBZG1pblZvbHVtZUVudW0NCitBZnBBZG1pblZvbHVtZUdldEluZm8NCitBZnBBZG1pblZvbHVtZVNldEluZm8NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zaGRvY3Z3LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NoZG9jdncuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmExYjUyNTUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zaGRvY3Z3LmRlZgpAQCAtMCwwICsxLDM2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNIRE9DVlcuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNIRE9DVlcuZGxsDQorRVhQT1JUUw0KK0FkZFVybFRvRmF2b3JpdGVzDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxHZXRWZXJzaW9uDQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsUmVnaXN0ZXJXaW5kb3dDbGFzc2VzDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0RvQWRkVG9GYXZEbGcNCitEb0FkZFRvRmF2RGxnVw0KK0RvRmlsZURvd25sb2FkDQorRG9GaWxlRG93bmxvYWRFeA0KK0RvT3JnYW5pemVGYXZEbGcNCitEb09yZ2FuaXplRmF2RGxnVw0KK0RvUHJpdmFjeURsZw0KK0hsaW5rRmluZEZyYW1lDQorSGxpbmtGcmFtZU5hdmlnYXRlDQorSGxpbmtGcmFtZU5hdmlnYXRlTkhMDQorSUVXcml0ZUVycm9yTG9nDQorSW1wb3J0UHJpdmFjeVNldHRpbmdzDQorU0hBZGRTdWJzY3JpYmVGYXZvcml0ZQ0KK09wZW5VUkwNCitTSEdldElEaXNwYXRjaEZvckZvbGRlcg0KK1NldFF1ZXJ5TmV0U2Vzc2lvbkNvdW50DQorU2V0U2hlbGxPZmZsaW5lU3RhdGUNCitTb2Z0d2FyZVVwZGF0ZU1lc3NhZ2VCb3gNCitVUkxRdWFsaWZ5QQ0KK1VSTFF1YWxpZnlXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2hlbGwzMi5jIGIvbWluZ3ctdzY0LWNydC9saWIvc2hlbGwzMi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRiMjNiODMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zaGVsbDMyLmMKQEAgLTAsMCArMSw3OCBAQAorI2RlZmluZSBJTklUR1VJRAorI2luY2x1ZGUgPGJhc2V0eXBzLmg+CisjaW5jbHVkZSA8c2hsZ3VpZC5oPgorI2lmIDAKK0RFRklORV9TSExHVUlEKENMU0lEX1NoZWxsRGVza3RvcCwweDAwMDIxNDAwTCwwLDApOworREVGSU5FX1NITEdVSUQoQ0xTSURfU2hlbGxMaW5rLDB4MDAwMjE0MDFMLDAsMCk7CitERUZJTkVfU0hMR1VJRChGTVRJRF9JbnRzaGN1dCwweDAwMDIxNEEwTCwwLDApOworREVGSU5FX1NITEdVSUQoRk1USURfSW50ZXJuZXRTaXRlLDB4MDAwMjE0QTFMLDAsMCk7CitERUZJTkVfU0hMR1VJRChDR0lEX0V4cGxvcmVyLDB4MDAwMjE0RDBMLDAsMCk7CitERUZJTkVfU0hMR1VJRChDR0lEX1NoZWxsRG9jVmlldywweDAwMDIxNEQxTCwwLDApOworREVGSU5FX1NITEdVSUQoQ0dJRF9TaGVsbFNlcnZpY2VPYmplY3QsMHgwMDAyMTREMkwsMCwwKTsKK0RFRklORV9TSExHVUlEKElJRF9JTmV3U2hvcnRjdXRIb29rQSwweDAwMDIxNEUxTCwwLDApOworREVGSU5FX1NITEdVSUQoSUlEX0lTaGVsbEJyb3dzZXIsMHgwMDAyMTRFMkwsMCwwKTsKK0RFRklORV9TSExHVUlEKElJRF9JU2hlbGxWaWV3LDB4MDAwMjE0RTNMLDAsMCk7CitERUZJTkVfU0hMR1VJRChJSURfSUNvbnRleHRNZW51LDB4MDAwMjE0RTRMLDAsMCk7CitERUZJTkVfU0hMR1VJRChJSURfSVF1ZXJ5SW5mbywweDAwMDIxNTAwTCwwLDApOworREVGSU5FX1NITEdVSUQoSUlEX0lTaGVsbEljb24sMHgwMDAyMTRFNUwsMCwwKTsKK0RFRklORV9TSExHVUlEKElJRF9JU2hlbGxGb2xkZXIsMHgwMDAyMTRFNkwsMCwwKTsKK0RFRklORV9TSExHVUlEKElJRF9JU2hlbGxFeHRJbml0LDB4MDAwMjE0RThMLDAsMCk7CitERUZJTkVfU0hMR1VJRChJSURfSVNoZWxsUHJvcFNoZWV0RXh0LDB4MDAwMjE0RTlMLDAsMCk7CitERUZJTkVfU0hMR1VJRChJSURfSVBlcnNpc3RGb2xkZXIsMHgwMDAyMTRFQUwsMCwwKTsKK0RFRklORV9TSExHVUlEKElJRF9JRXh0cmFjdEljb25BLDB4MDAwMjE0RUJMLDAsMCk7CitERUZJTkVfU0hMR1VJRChJSURfSVNoZWxsTGlua0EsMHgwMDAyMTRFRUwsMCwwKTsKK0RFRklORV9TSExHVUlEKElJRF9JU2hlbGxDb3B5SG9va0EsMHgwMDAyMTRFRkwsMCwwKTsKK0RFRklORV9TSExHVUlEKElJRF9JRmlsZVZpZXdlckEsMHgwMDAyMTRGMEwsMCwwKTsKK0RFRklORV9TSExHVUlEKElJRF9JQ29tbURsZ0Jyb3dzZXIsMHgwMDAyMTRGMUwsMCwwKTsKK0RFRklORV9TSExHVUlEKElJRF9JRW51bUlETGlzdCwweDAwMDIxNEYyTCwwLDApOworREVGSU5FX1NITEdVSUQoSUlEX0lGaWxlVmlld2VyU2l0ZSwweDAwMDIxNEYzTCwwLDApOworREVGSU5FX1NITEdVSUQoSUlEX0lDb250ZXh0TWVudTIsMHgwMDAyMTRGNEwsMCwwKTsKK0RFRklORV9HVUlEKElJRF9JQ29udGV4dE1lbnUzLDB4QkNGQ0UwQTAsMHhFQzE3LDB4MTFEMCwweDhELDB4MTAsMHgwLDB4QTAsMHhDOSwweEYsMHgyNywweDE5KTsKK0RFRklORV9TSExHVUlEKElJRF9JU2hlbGxFeGVjdXRlSG9va0EsMHgwMDAyMTRGNUwsMCwwKTsKK0RFRklORV9TSExHVUlEKElJRF9JUHJvcFNoZWV0UGFnZSwweDAwMDIxNEY2TCwwLDApOworREVGSU5FX1NITEdVSUQoSUlEX0lOZXdTaG9ydGN1dEhvb2tXLDB4MDAwMjE0RjdMLDAsMCk7CitERUZJTkVfU0hMR1VJRChJSURfSUZpbGVWaWV3ZXJXLDB4MDAwMjE0RjhMLDAsMCk7CitERUZJTkVfU0hMR1VJRChJSURfSVNoZWxsTGlua1csMHgwMDAyMTRGOUwsMCwwKTsKK0RFRklORV9TSExHVUlEKElJRF9JRXh0cmFjdEljb25XLDB4MDAwMjE0RkFMLDAsMCk7CitERUZJTkVfU0hMR1VJRChJSURfSVNoZWxsRXhlY3V0ZUhvb2tXLDB4MDAwMjE0RkJMLDAsMCk7CitERUZJTkVfU0hMR1VJRChJSURfSVNoZWxsQ29weUhvb2tXLDB4MDAwMjE0RkNMLDAsMCk7CitERUZJTkVfR1VJRChJSURfSVNoZWxsVmlldzIsMHg4OEUzOUU4MEwsMHgzNTc4LDB4MTFDRiwweEFFLDB4NjksMHgwOCwweDAwLDB4MkIsMHgyRSwweDEyLDB4NjIpOworREVGSU5FX0dVSUQoSUlEX0lTaGVsbEZvbGRlcjIsMHg5M0YyRjY4QywweDFEMUIsMHgxMUQzLDB4QTMsMHgwRSwweDAwLDB4QzAsMHg0RiwweDc5LDB4QUIsMHhEMSk7CitERUZJTkVfR1VJRChJSURfSVBlcnNpc3RGb2xkZXIyLDB4MUFDM0Q5RjAsMHgxNzVDLDB4MTFEMSwweDk1LDB4QkUsMHgwMCwweDYwLDB4OTcsMHg5NywweEVBLDB4NEYpOworREVGSU5FX0dVSUQoSUlEX0lQZXJzaXN0Rm9sZGVyMywweENFRjA0RkRGLDB4RkU3MiwweDExRDIsMHg4NywweEE1LDB4MDAsMHhDMCwweDRGLDB4NjgsMHgzNywweENGKTsKK0RFRklORV9HVUlEKElJRF9JRmlsZVN5c3RlbUJpbmREYXRhLDB4MUUxOEQxMCwweDREOEIsMHgxMUQyLDB4ODUsMHg1RCwweDAwLDB4NjAsMHgwOCwweDA1LDB4OTMsMHg2Nyk7CitERUZJTkVfR1VJRChMSUJJRF9TSERvY1Z3LDB4RUFCMjJBQzAsMHgzMEMxLDB4MTFDRiwweEE3LDB4RUIsMHgwMCwweDAwLDB4QzAsMHg1QiwweEFFLDB4MEIpOworREVGSU5FX0dVSUQoSUlEX0lTaGVsbEV4cGxvcmVyLDB4RUFCMjJBQzEsMHgzMEMxLDB4MTFDRiwweEE3LDB4RUIsMHgwMCwweDAwLDB4QzAsMHg1QiwweEFFLDB4MEIpOworREVGSU5FX0dVSUQoRElJRF9EU2hlbGxFeHBsb3JlckV2ZW50cywweEVBQjIyQUMyLDB4MzBDMSwweDExQ0YsMHhBNywweEVCLDB4MDAsMHgwMCwweEMwLDB4NUIsMHhBRSwweDBCKTsKK0RFRklORV9HVUlEKENMU0lEX1NoZWxsRXhwbG9yZXIsMHhFQUIyMkFDMywweDMwQzEsMHgxMUNGLDB4QTcsMHhFQiwweDAwLDB4MDAsMHhDMCwweDVCLDB4QUUsMHgwQik7CitERUZJTkVfR1VJRChJSURfSVNISXRlbU9DLDB4RUFCMjJBQzQsMHgzMEMxLDB4MTFDRiwweEE3LDB4RUIsMHgwMCwweDAwLDB4QzAsMHg1QiwweEFFLDB4MEIpOworREVGSU5FX0dVSUQoRElJRF9EU0hJdGVtT0NFdmVudHMsMHhFQUIyMkFDNSwweDMwQzEsMHgxMUNGLDB4QTcsMHhFQiwweDAwLDB4MDAsMHhDMCwweDVCLDB4QUUsMHgwQik7CitERUZJTkVfR1VJRChDTFNJRF9TSEl0ZW1PQywweEVBQjIyQUM2LDB4MzBDMSwweDExQ0YsMHhBNywweEVCLDB4MDAsMHgwMCwweEMwLDB4NUIsMHhBRSwweDBCKTsKK0RFRklORV9HVUlEKElJRF9ESHlwZXJMaW5rLDB4MDAwMkRGMDcsMHgwMDAwLDB4MDAwMCwweEMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0RJRXhwbG9yZXIsMHgwMDAyREYwNSwweDAwMDAsMHgwMDAwLDB4QzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0Nik7CitERUZJTkVfR1VJRChESUlEX0RFeHBsb3JlckV2ZW50cywweDAwMDJERjA2LDB4MDAwMCwweDAwMDAsMHhDMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ2KTsKK0RFRklORV9HVUlEKENMU0lEX0ludGVybmV0RXhwbG9yZXIsMHgwMDAyREYwMSwweDAwMDAsMHgwMDAwLDB4QzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0Nik7CitERUZJTkVfR1VJRChDTFNJRF9TdGRIeXBlckxpbmssMHgwMDAyREYwOSwweDAwMDAsMHgwMDAwLDB4QzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0Nik7CitERUZJTkVfR1VJRChDTFNJRF9GaWxlVHlwZXMsMHhCMDkxRTU0MCwweDgzRTMsMHgxMUNGLDB4QTcsMHgxMywweDAwLDB4MjAsMHhBRiwweEQ3LDB4OTcsMHg2Mik7CitERUZJTkVfR1VJRChDTFNJRF9JbnRlcm5ldFNob3J0Y3V0LDB4RkJGMjNCNDBMLDB4RTNGMCwweDEwMUIsMHg4NCwweDg4LDB4MDAsMHhBQSwweDAwLDB4M0UsMHg1NiwweEY4KTsKK0RFRklORV9HVUlEKElJRF9JVW5pZm9ybVJlc291cmNlTG9jYXRvciwweEZCRjIzQjgwTCwweEUzRjAsMHgxMDFCLDB4ODQsMHg4OCwweDAwLDB4QUEsMHgwMCwweDNFLDB4NTYsMHhGOCk7CitERUZJTkVfR1VJRChDTFNJRF9EcmFnRHJvcEhlbHBlciwweDQ2NTcyNzhBTCwweDQxMUIsMHgxMUQyLDB4ODMsMHg5QSwweDAsMHhDMCwweDRGLDB4RDksMHgxOCwweEQwKTsKK0RFRklORV9HVUlEKElJRF9JRHJvcFRhcmdldEhlbHBlciwweDQ2NTcyNzhCTCwweDQxMUIsMHgxMUQyLDB4ODMsMHg5QSwweDAsMHhDMCwweDRGLDB4RDksMHgxOCwweEQwKTsKK0RFRklORV9HVUlEKElJRF9JRHJhZ1NvdXJjZUhlbHBlciwweERFNUJGNzg2TCwweDQ3N0EsMHgxMUQyLDB4ODMsMHg5RCwweDAsMHhDMCwweDRGLDB4RDksMHgxOCwweEQwKTsKK0RFRklORV9HVUlEKElJRF9JQ29sdW1uUHJvdmlkZXIsMHhFODAyNTAwNCwweDFDNDIsMHgxMUQyLDB4QkUsMHgyQywweDAsMHhBMCwweEM5LDB4QTgsMHgzRCwweEExKTsKK0RFRklORV9HVUlEKElJRF9JU2hlbGxJY29uT3ZlcmxheUlkZW50aWZpZXIsMHgwQzZDNDIwMEwsMHhDNTg5LDB4MTFEMCwweDk5LDB4OUEsMHgwMCwweEMwLDB4NEYsMHhENiwweDU1LDB4RTEpOworREVGSU5FX0dVSUQoQ0xTSURfQXV0b0NvbXBsZXRlLDB4MDBiYjI3NjMsMHg2YTc3LDB4MTFkMCwweGE1LDB4MzUsMHgwMCwweGMwLDB4NGYsMHhkNywweGQwLDB4NjIpOworREVGSU5FX0dVSUQoSUlEX0lBdXRvQ29tcGxldGUsMHgwMGJiMjc2MiwweDZhNzcsMHgxMWQwLDB4YTUsMHgzNSwweDAwLDB4YzAsMHg0ZiwweGQ3LDB4ZDAsMHg2Mik7CitERUZJTkVfR1VJRChJSURfSUF1dG9Db21wbGV0ZTIsMHhlYWMwNGJjMCwweDM3OTEsMHgxMWQyLDB4YmIsMHg5NSwweDAwLDB4NjAsMHg5NywweDdiLDB4NDYsMHg0Yyk7CitERUZJTkVfR1VJRChDTFNJRF9BQ0xNdWx0aSwweDAwYmIyNzY1LDB4NmE3NywweDExZDAsMHhhNSwweDM1LDB4MDAsMHhjMCwweDRmLDB4ZDcsMHhkMCwweDYyKTsKK0RFRklORV9HVUlEKElJRF9JT2JqTWdyLDB4MDBiYjI3NjEsMHg2YTc3LDB4MTFkMCwweGE1LDB4MzUsMHgwMCwweGMwLDB4NGYsMHhkNywweGQwLDB4NjIpOworREVGSU5FX0dVSUQoQ0xTSURfQUNMaXN0SVNGLDB4MDNjMDM2ZjEsMHhhMTg2LDB4MTFEMCwweDgyLDB4NGEsMHgwMCwweGFhLDB4MDAsMHg1YiwweDQzLDB4ODMpOworREVGSU5FX0dVSUQoSUlEX0lBQ0xpc3QsMHg3N2ExMzBiMCwweDk0ZmQsMHgxMUQwLDB4YTUsMHg0NCwweDAwLDB4YzAsMHg0ZiwweGQ3LDB4ZDAsMHg2Mik7CitERUZJTkVfR1VJRChDTFNJRF9SZWN5Y2xlQmluLDB4NjQ1RkYwNDAsMHg1MDgxLDB4MTAxQiwweDlGLDB4MDgsMHgwMCwweEFBLDB4MDAsMHgyRiwweDk1LDB4NEUpOworREVGSU5FX0dVSUQoQ0xTSURfQ29udHJvbFBhbmVsLDB4MjFFQzIwMjAsMHgzQUVBLDB4MTA2OSwweEEyLDB4REQsMHgwOCwweDAwLDB4MkIsMHgzMCwweDMwLDB4OUQpOworREVGSU5FX0dVSUQoQ0xTSURfTXlDb21wdXRlciwweDIwRDA0RkUwLDB4M0FFQSwweDEwNjksMHhBMiwweEQ4LDB4MDgsMHgwMCwweDJCLDB4MzAsMHgzMCwweDlEKTsKK0RFRklORV9HVUlEKENMU0lEX0ludGVybmV0LDB4ODcxQzUzODAsMHg0MkEwLDB4MTA2OSwweEEyLDB4RUEsMHgwOCwweDAwLDB4MkIsMHgzMCwweDMwLDB4OUQpOworREVGSU5FX0dVSUQoQ0xTSURfTmV0d29ya1BsYWNlcywweDIwOEQyQzYwLDB4M0FFQSwweDEwNjksMHhBMiwweEQ3LDB4MDgsMHgwMCwweDJCLDB4MzAsMHgzMCwweDlEKTsKK0RFRklORV9HVUlEKENMU0lEX015RG9jdW1lbnRzLDB4NDUwZDhmYmEsMHhhZDI1LDB4MTFkMCwweDk4LDB4YTgsMHgwOCwweDAwLDB4MzYsMHgxYiwweDExLDB4MDMpOworREVGSU5FX0dVSUQoQ0xTSURfRm9sZGVyU2hvcnRjdXQsMHgwQUZBQ0VEMSwweEU4MjgsMHgxMUQxLDB4OTEsMHg4NywweEI1LDB4MzIsMHhGMSwweEU5LDB4NTcsMHg1RCk7CisjZW5kaWYKZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NoZWxsMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2hlbGwzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTBkMzIyNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NoZWxsMzIuZGVmCkBAIC0wLDAgKzEsMzE3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNIRUxMMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNIRUxMMzIuZGxsDQorRVhQT1JUUw0KK1NIQ2hhbmdlTm90aWZ5UmVnaXN0ZXINCitTSERlZkV4dHJhY3RJY29uQQ0KK1NIQ2hhbmdlTm90aWZ5RGVyZWdpc3Rlcg0KK1NIRGVmRXh0cmFjdEljb25XDQorUGlmTWdyX09wZW5Qcm9wZXJ0aWVzDQorUGlmTWdyX0dldFByb3BlcnRpZXMNCitQaWZNZ3JfU2V0UHJvcGVydGllcw0KK1BpZk1ncl9DbG9zZVByb3BlcnRpZXMNCitTSFN0YXJ0TmV0Q29ubmVjdGlvbkRpYWxvZ1cNCitJTEZpbmRMYXN0SUQNCitJTFJlbW92ZUxhc3RJRA0KK0lMQ2xvbmUNCitJTENsb25lRmlyc3QNCitJTElzRXF1YWwNCitEQURfRHJhZ0VudGVyRXgyDQorSUxJc1BhcmVudA0KK0lMRmluZENoaWxkDQorSUxDb21iaW5lDQorSUxMb2FkRnJvbVN0cmVhbQ0KK0lMU2F2ZVRvU3RyZWFtDQorU0hJTENyZWF0ZUZyb21QYXRoDQorSXNMRk5Ecml2ZUENCitJc0xGTkRyaXZlVw0KK1BhdGhJc0V4ZQ0KK1BhdGhNYWtlVW5pcXVlTmFtZQ0KK1BhdGhRdWFsaWZ5DQorUGF0aFJlc29sdmUNCitSZXN0YXJ0RGlhbG9nDQorUGlja0ljb25EbGcNCitHZXRGaWxlTmFtZUZyb21Ccm93c2UNCitEcml2ZVR5cGUNCitJc05ldERyaXZlDQorU2hlbGxfTWVyZ2VNZW51cw0KK1NIR2V0U2V0U2V0dGluZ3MNCitTaGVsbF9HZXRJbWFnZUxpc3RzDQorU2hlbGxfR2V0Q2FjaGVkSW1hZ2VJbmRleA0KK1NIU2hlbGxGb2xkZXJWaWV3X01lc3NhZ2UNCitTSENyZWF0ZVN0ZEVudW1GbXRFdGMNCitQYXRoWWV0QW5vdGhlck1ha2VVbmlxdWVOYW1lDQorU0hNYXBQSURMVG9TeXN0ZW1JbWFnZUxpc3RJbmRleA0KK1NIT3BlblByb3BTaGVldFcNCitPcGVuQXNfUnVuRExMDQorT3BlblJlZ1N0cmVhbQ0KK1NIRG9EcmFnRHJvcA0KK1NIQ2xvbmVTcGVjaWFsSURMaXN0DQorU0hGaW5kRmlsZXMNCitQYXRoR2V0U2hvcnRQYXRoDQorU0hHZXRSZWFsSURMDQorU0hSZXN0cmljdGVkDQorT3BlbkFzX1J1bkRMTEENCitTSENvQ3JlYXRlSW5zdGFuY2UNCitTaWduYWxGaWxlT3Blbg0KK09wZW5Bc19SdW5ETExXDQorQWN0aXZhdGVfUnVuRExMDQorQXBwQ29tcGF0X1J1bkRMTFcNCitDaGVja0VzY2FwZXNBDQorQ2hlY2tFc2NhcGVzVw0KK0NvbW1hbmRMaW5lVG9Bcmd2Vw0KK0NvbnRyb2xfRmlsbENhY2hlX1J1bkRMTA0KK0NvbnRyb2xfRmlsbENhY2hlX1J1bkRMTEENCitDb250cm9sX0ZpbGxDYWNoZV9SdW5ETExXDQorQ29udHJvbF9SdW5ETEwNCitDb250cm9sX1J1bkRMTEENCitDb250cm9sX1J1bkRMTEFzVXNlclcNCitDb250cm9sX1J1bkRMTFcNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0lzTEZORHJpdmUNCitEbGxHZXRWZXJzaW9uDQorU0hGbHVzaENsaXBib2FyZA0KK0RsbEluc3RhbGwNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RBRF9BdXRvU2Nyb2xsDQorREFEX0RyYWdFbnRlckV4DQorREFEX0RyYWdMZWF2ZQ0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitEQURfRHJhZ01vdmUNCitEb0Vudmlyb25tZW50U3Vic3RBDQorREFEX1NldERyYWdJbWFnZQ0KK0RBRF9TaG93RHJhZ0ltYWdlDQorRG9FbnZpcm9ubWVudFN1YnN0Vw0KK0RyYWdBY2NlcHRGaWxlcw0KK0RyYWdGaW5pc2gNCitEcmFnUXVlcnlGaWxlDQorRHJhZ1F1ZXJ5RmlsZUENCitEcmFnUXVlcnlGaWxlQW9yVw0KK0RyYWdRdWVyeUZpbGVXDQorU0hDTFNJREZyb21TdHJpbmcNCitTSE1hcElETGlzdFRvSW1hZ2VMaXN0SW5kZXhBc3luYw0KK1NIRmluZF9Jbml0TWVudVBvcHVwDQorRHJhZ1F1ZXJ5UG9pbnQNCitTSExvYWRPTEUNCitJTEdldFNpemUNCitJTEdldE5leHQNCitJTEFwcGVuZElEDQorSUxGcmVlDQorSUxDcmVhdGVGcm9tUGF0aA0KK1NIUnVuQ29udHJvbFBhbmVsDQorU0hTaW1wbGVJRExpc3RGcm9tUGF0aA0KK1dpbjMyRGVsZXRlRmlsZQ0KK1NIQ3JlYXRlRGlyZWN0b3J5DQorQ2FsbENQTEVudHJ5MTYNCitTSEFkZEZyb21Qcm9wU2hlZXRFeHRBcnJheQ0KK1NIQ3JlYXRlUHJvcFNoZWV0RXh0QXJyYXkNCitTSERlc3Ryb3lQcm9wU2hlZXRFeHRBcnJheQ0KK1NIUmVwbGFjZUZyb21Qcm9wU2hlZXRFeHRBcnJheQ0KK1BhdGhDbGVhbnVwU3BlYw0KK1NIVmFsaWRhdGVVTkMNCitTSENyZWF0ZVNoZWxsRm9sZGVyVmlld0V4DQorU0hTZXRJbnN0YW5jZUV4cGxvcmVyDQorU0hPYmplY3RQcm9wZXJ0aWVzDQorU0hHZXROZXdMaW5rSW5mb0ENCitTSEdldE5ld0xpbmtJbmZvVw0KK1NoZWxsTWVzc2FnZUJveFcNCitTaGVsbE1lc3NhZ2VCb3hBDQorSUxDcmVhdGVGcm9tUGF0aEENCitJTENyZWF0ZUZyb21QYXRoVw0KK1NIVXBkYXRlSW1hZ2VBDQorU0hVcGRhdGVJbWFnZVcNCitTSEhhbmRsZVVwZGF0ZUltYWdlDQorU0hGcmVlDQorU0hBbGxvYw0KK0R1cGxpY2F0ZUljb24NCitFeHRyYWN0QXNzb2NpYXRlZEljb25BDQorRXh0cmFjdEFzc29jaWF0ZWRJY29uRXhBDQorRXh0cmFjdEFzc29jaWF0ZWRJY29uRXhXDQorRXh0cmFjdEFzc29jaWF0ZWRJY29uVw0KK0V4dHJhY3RJY29uQQ0KK0V4dHJhY3RJY29uRXgNCitFeHRyYWN0SWNvbkV4QQ0KK0V4dHJhY3RJY29uRXhXDQorRXh0cmFjdEljb25SZXNJbmZvQQ0KK0V4dHJhY3RJY29uUmVzSW5mb1cNCitFeHRyYWN0SWNvblcNCitFeHRyYWN0VmVyc2lvblJlc291cmNlMTZXDQorRmluZEV4ZURsZ1Byb2MNCitGaW5kRXhlY3V0YWJsZUENCitGaW5kRXhlY3V0YWJsZVcNCitGcmVlSWNvbkxpc3QNCitJbnRlcm5hbEV4dHJhY3RJY29uTGlzdEENCitJbnRlcm5hbEV4dHJhY3RJY29uTGlzdFcNCitQYXRoSXNTbG93Vw0KK1BhdGhJc1Nsb3dBDQorU0hUZXN0VG9rZW5NZW1iZXJzaGlwDQorT3B0aW9uc19SdW5ETEwNCitTSENyZWF0ZVNoZWxsRm9sZGVyVmlldw0KK09wdGlvbnNfUnVuRExMQQ0KK09wdGlvbnNfUnVuRExMVw0KK1ByaW50ZXJzR2V0Q29tbWFuZF9SdW5ETEwNCitQcmludGVyc0dldENvbW1hbmRfUnVuRExMQQ0KK1ByaW50ZXJzR2V0Q29tbWFuZF9SdW5ETExXDQorUmVhbFNoZWxsRXhlY3V0ZUENCitSZWFsU2hlbGxFeGVjdXRlRXhBDQorUmVhbFNoZWxsRXhlY3V0ZUV4Vw0KK1JlYWxTaGVsbEV4ZWN1dGVXDQorUmVnZW5lcmF0ZVVzZXJFbnZpcm9ubWVudA0KK1NIQWRkVG9SZWNlbnREb2NzDQorU0hBcHBCYXJNZXNzYWdlDQorU0hCaW5kVG9QYXJlbnQNCitTSEJyb3dzZUZvckZvbGRlcg0KK1NIQnJvd3NlRm9yRm9sZGVyQQ0KK1NIQnJvd3NlRm9yRm9sZGVyVw0KK1NIQ2hhbmdlTm90aWZ5DQorU0hDaGFuZ2VOb3RpZnlTdXNwZW5kUmVzdW1lDQorU0hDcmVhdGVEaXJlY3RvcnlFeEENCitTSENyZWF0ZURpcmVjdG9yeUV4Vw0KK1NIQ3JlYXRlTG9jYWxTZXJ2ZXJSdW5EbGwNCitTSENyZWF0ZVByb2Nlc3NBc1VzZXJXDQorU0hDcmVhdGVRdWVyeUNhbmNlbEF1dG9QbGF5TW9uaWtlcg0KK1NIQ3JlYXRlU2hlbGxJdGVtDQorU0hFbXB0eVJlY3ljbGVCaW5BDQorU0hFbXB0eVJlY3ljbGVCaW5XDQorU0hFbmFibGVTZXJ2aWNlT2JqZWN0DQorU0hFbnVtZXJhdGVVbnJlYWRNYWlsQWNjb3VudHNXDQorU0hFeHRyYWN0SWNvbnNXDQorU0hGaWxlT3BlcmF0aW9uDQorU0hGaWxlT3BlcmF0aW9uQQ0KK1NIRmlsZU9wZXJhdGlvblcNCitTSEZvcm1hdERyaXZlDQorU0hGcmVlTmFtZU1hcHBpbmdzDQorU0hHZXREYXRhRnJvbUlETGlzdEENCitTSEdldERhdGFGcm9tSURMaXN0Vw0KK1NIR2V0RGVza3RvcEZvbGRlcg0KK1NIR2V0RGlza0ZyZWVTcGFjZUENCitTSEdldERpc2tGcmVlU3BhY2VFeEENCitTSEdldERpc2tGcmVlU3BhY2VFeFcNCitTSEdldEZpbGVJbmZvDQorU0hHZXRGaWxlSW5mb0ENCitTSEdldEZpbGVJbmZvVw0KK1NIR2V0Rm9sZGVyTG9jYXRpb24NCitTSEdldEZvbGRlclBhdGhBDQorU0hHZXRGb2xkZXJQYXRoQW5kU3ViRGlyQQ0KK1NIR2V0Rm9sZGVyUGF0aEFuZFN1YkRpclcNCitTSEdldEZvbGRlclBhdGhXDQorU0hHZXRJY29uT3ZlcmxheUluZGV4QQ0KK1NIR2V0SWNvbk92ZXJsYXlJbmRleFcNCitTSEdldEluc3RhbmNlRXhwbG9yZXINCitTSEdldE1hbGxvYw0KK1NIR2V0TmV3TGlua0luZm8NCitTSEdldFBhdGhGcm9tSURMaXN0DQorU0hHZXRQYXRoRnJvbUlETGlzdEENCitTSEdldFBhdGhGcm9tSURMaXN0Vw0KK1NIR2V0U2V0dGluZ3MNCitTSEdldFNwZWNpYWxGb2xkZXJMb2NhdGlvbg0KK1NIR2V0U3BlY2lhbEZvbGRlclBhdGhBDQorU0hHZXRTcGVjaWFsRm9sZGVyUGF0aFcNCitTSEdldFVucmVhZE1haWxDb3VudFcNCitTSEhlbHBTaG9ydGN1dHNfUnVuRExMDQorU0hIZWxwU2hvcnRjdXRzX1J1bkRMTEENCitTSEhlbHBTaG9ydGN1dHNfUnVuRExMVw0KK1NISW52b2tlUHJpbnRlckNvbW1hbmRBDQorU0hJbnZva2VQcmludGVyQ29tbWFuZFcNCitTSElzRmlsZUF2YWlsYWJsZU9mZmxpbmUNCitTSExvYWRJblByb2MNCitTSExvYWROb25sb2FkZWRJY29uT3ZlcmxheUlkZW50aWZpZXJzDQorU0hPcGVuRm9sZGVyQW5kU2VsZWN0SXRlbXMNCitTSFBhcnNlRGlzcGxheU5hbWUNCitTSFBhdGhQcmVwYXJlRm9yV3JpdGVBDQorU0hQYXRoUHJlcGFyZUZvcldyaXRlVw0KK1NIUXVlcnlSZWN5Y2xlQmluQQ0KK1NIUXVlcnlSZWN5Y2xlQmluVw0KK1NIU2V0TG9jYWxpemVkTmFtZQ0KK1NIU2V0VW5yZWFkTWFpbENvdW50Vw0KK1NIVXBkYXRlUmVjeWNsZUJpbkljb24NCitTaGVDaGFuZ2VEaXJBDQorU2hlQ2hhbmdlRGlyRXhBDQorU2hlQ2hhbmdlRGlyRXhXDQorU2hlQ2hhbmdlRGlyVw0KK1NoZUNvbnZlcnRQYXRoVw0KK1NoZUZ1bGxQYXRoQQ0KK1NoZUZ1bGxQYXRoVw0KK1NoZUdldEN1ckRyaXZlDQorU2hlR2V0RGlyQQ0KK1NoZUdldERpckV4Vw0KK1NoZUdldERpclcNCitTaGVHZXRQYXRoT2Zmc2V0Vw0KK1NoZVJlbW92ZVF1b3Rlc0ENCitTaGVSZW1vdmVRdW90ZXNXDQorU2hlU2V0Q3VyRHJpdmUNCitTaGVTaG9ydGVuUGF0aEENCitTaGVTaG9ydGVuUGF0aFcNCitTaGVsbEFib3V0QQ0KK1NoZWxsQWJvdXRXDQorU2hlbGxFeGVjX1J1bkRMTA0KK1NoZWxsRXhlY19SdW5ETExBDQorU2hlbGxFeGVjX1J1bkRMTFcNCitTaGVsbEV4ZWN1dGVBDQorU2hlbGxFeGVjdXRlRXgNCitTaGVsbEV4ZWN1dGVFeEENCitTaGVsbEV4ZWN1dGVFeFcNCitTaGVsbEV4ZWN1dGVXDQorU2hlbGxIb29rUHJvYw0KK1NoZWxsX05vdGlmeUljb24NCitTaGVsbF9Ob3RpZnlJY29uQQ0KK1NoZWxsX05vdGlmeUljb25XDQorU3RyQ2hyQQ0KK1N0ckNocklBDQorU3RyQ2hySVcNCitTdHJDaHJXDQorU3RyQ21wTkENCitTdHJDbXBOSUENCitTdHJDbXBOSVcNCitTdHJDbXBOVw0KK1N0ckNweU5BDQorU3RyQ3B5TlcNCitTdHJOQ21wQQ0KK1N0ck5DbXBJQQ0KK1N0ck5DbXBJVw0KK1N0ck5DbXBXDQorU3RyTkNweUENCitTdHJOQ3B5Vw0KK1N0clJDaHJBDQorU3RyUkNocklBDQorU3RyUkNocklXDQorU3RyUkNoclcNCitTdHJSU3RyQQ0KK1N0clJTdHJJQQ0KK1N0clJTdHJJVw0KK1N0clJTdHJXDQorU3RyU3RyQQ0KK1N0clN0cklBDQorU3RyU3RySVcNCitTdHJTdHJXDQorV09XU2hlbGxFeGVjdXRlDQorU0hBbGxvY1NoYXJlZA0KK1NITG9ja1NoYXJlZA0KK1NIVW5sb2NrU2hhcmVkDQorU0hGcmVlU2hhcmVkDQorUmVhbERyaXZlVHlwZQ0KK1NIRmx1c2hTRkNhY2hlDQorU0hDaGFuZ2VOb3RpZmljYXRpb25fTG9jaw0KK1NIQ2hhbmdlTm90aWZpY2F0aW9uX1VubG9jaw0KK1dyaXRlQ2FiaW5ldFN0YXRlDQorUGF0aFByb2Nlc3NDb21tYW5kDQorUmVhZENhYmluZXRTdGF0ZQ0KK0lzVXNlckFuQWRtaW4NCitTSFByb3BTdGdDcmVhdGUNCitTSFByb3BTdGdSZWFkTXVsdGlwbGUNCitTSFByb3BTdGdXcml0ZU11bHRpcGxlDQorQ0RlZkZvbGRlck1lbnVfQ3JlYXRlDQorQ0RlZkZvbGRlck1lbnVfQ3JlYXRlMg0KK1NIR2V0U2V0Rm9sZGVyQ3VzdG9tU2V0dGluZ3NXDQorU0hNdWx0aUZpbGVQcm9wZXJ0aWVzDQorU0hHZXRJbWFnZUxpc3QNCitSZXN0YXJ0RGlhbG9nRXgNCitTSENyZWF0ZUZpbGVFeHRyYWN0SWNvblcNCitTSExpbWl0SW5wdXRFZGl0DQorU0hHZXRTaGVsbFN0eWxlSEluc3RhbmNlDQorU0hHZXRBdHRyaWJ1dGVzRnJvbURhdGFPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zaGZvbGRlci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zaGZvbGRlci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzY2ZDI4NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NoZm9sZGVyLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNIRk9MREVSLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTSEZPTERFUi5kbGwNCitFWFBPUlRTDQorU0hHZXRGb2xkZXJQYXRoQQ0KK1NIR2V0Rm9sZGVyUGF0aFcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zaGdpbmEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2hnaW5hLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YzM5MTMyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc2hnaW5hLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNIR0lOQS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU0hHSU5BLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbEluc3RhbGwNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zaGltZW5nLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NoaW1lbmcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ0NTUxMjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zaGltZW5nLmRlZgpAQCAtMCwwICsxLDE4IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNoaW1FbmcuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNoaW1FbmcuZGxsDQorRVhQT1JUUw0KK1NFX0RsbExvYWRlZA0KK1NFX0RsbFVubG9hZGVkDQorU0VfRHluYW1pY1NoaW0NCitTRV9EeW5hbWljVW5zaGltDQorU0VfSW5zdGFsbEFmdGVySW5pdA0KK1NFX0luc3RhbGxCZWZvcmVJbml0DQorU0VfSXNTaGltRGxsDQorU0VfUHJvY2Vzc0R5aW5nDQorU0VfUmVtb3ZlTlRWRE1UYXNrDQorU0VfU2hpbU5UVkRNDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2hpbWd2dy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zaGltZ3Z3LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NjQ4MDc2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc2hpbWd2dy5kZWYKQEAgLTAsMCArMSwyMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBzaGltZ3Z3LkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBzaGltZ3Z3LkRMTA0KK0VYUE9SVFMNCitJbWFnZVZpZXdfQ09NU2VydmVyDQorSW1hZ2VWaWV3X0Z1bGxzY3JlZW4NCitJbWFnZVZpZXdfRnVsbHNjcmVlbkENCitJbWFnZVZpZXdfRnVsbHNjcmVlblcNCitJbWFnZVZpZXdfUHJpbnRUbw0KK0ltYWdlVmlld19QcmludFRvQQ0KK0ltYWdlVmlld19QcmludFRvVw0KK2ltYWdldmlld19mdWxsc2NyZWVuVw0KK0NvbnZlcnRESUJTRUNUSU9OVG9UaHVtYm5haWwNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbEluc3RhbGwNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zaGx3YXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NobHdhcGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRiZjZiZTMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zaGx3YXBpLmRlZgpAQCAtMCwwICsxLDMyMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTSExXQVBJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTSExXQVBJLmRsbA0KK0VYUE9SVFMNCitTSEFsbG9jU2hhcmVkDQorU0hMb2NrU2hhcmVkDQorU0hVbmxvY2tTaGFyZWQNCitTSEZyZWVTaGFyZWQNCitHZXRBY2NlcHRMYW5ndWFnZXNBDQorR2V0QWNjZXB0TGFuZ3VhZ2VzVw0KK1NIQ3JlYXRlVGhyZWFkDQorSXNDaGFyU3BhY2VXDQorU3RyQ21wQ0ENCitTdHJDbXBDVw0KK1N0ckNtcElDQQ0KK1N0ckNtcElDVw0KK0Fzc29jQ3JlYXRlDQorU0hMb2FkSW5kaXJlY3RTdHJpbmcNCitTSEdldFZpZXdTdGF0ZVByb3BlcnR5QmFnDQorRGVsYXlMb2FkRmFpbHVyZUhvb2sNCitJc0ludGVybmV0RVNDRW5hYmxlZA0KK0Fzc29jR2V0UGVyY2VpdmVkVHlwZQ0KK0Fzc29jSXNEYW5nZXJvdXMNCitBc3NvY1F1ZXJ5S2V5QQ0KK0Fzc29jUXVlcnlLZXlXDQorQXNzb2NRdWVyeVN0cmluZ0ENCitBc3NvY1F1ZXJ5U3RyaW5nQnlLZXlBDQorQXNzb2NRdWVyeVN0cmluZ0J5S2V5Vw0KK0Fzc29jUXVlcnlTdHJpbmdXDQorQ2hyQ21wSUENCitDaHJDbXBJVw0KK0NvbG9yQWRqdXN0THVtYQ0KK0NvbG9ySExTVG9SR0INCitDb2xvclJHQlRvSExTDQorRGxsR2V0VmVyc2lvbg0KK0dldE1lbnVQb3NGcm9tSUQNCitIYXNoRGF0YQ0KK0ludGxTdHJFcVdvcmtlckENCitJbnRsU3RyRXFXb3JrZXJXDQorSXNDaGFyU3BhY2VBDQorUGF0aEFkZEJhY2tzbGFzaEENCitQYXRoQWRkQmFja3NsYXNoVw0KK1BhdGhBZGRFeHRlbnNpb25BDQorUGF0aEFkZEV4dGVuc2lvblcNCitQYXRoQXBwZW5kQQ0KK1BhdGhBcHBlbmRXDQorUGF0aEJ1aWxkUm9vdEENCitQYXRoQnVpbGRSb290Vw0KK1BhdGhDYW5vbmljYWxpemVBDQorUGF0aENhbm9uaWNhbGl6ZVcNCitQYXRoQ29tYmluZUENCitQYXRoQ29tYmluZVcNCitQYXRoQ29tbW9uUHJlZml4QQ0KK1BhdGhDb21tb25QcmVmaXhXDQorUGF0aENvbXBhY3RQYXRoQQ0KK1BhdGhDb21wYWN0UGF0aEV4QQ0KK1BhdGhDb21wYWN0UGF0aEV4Vw0KK1BhdGhDb21wYWN0UGF0aFcNCitQYXRoQ3JlYXRlRnJvbVVybEENCitQYXRoQ3JlYXRlRnJvbVVybFcNCitQYXRoRmlsZUV4aXN0c0ENCitQYXRoRmlsZUV4aXN0c1cNCitQYXRoRmluZEV4dGVuc2lvbkENCitQYXRoRmluZEV4dGVuc2lvblcNCitQYXRoRmluZEZpbGVOYW1lQQ0KK1BhdGhGaW5kRmlsZU5hbWVXDQorUGF0aEZpbmROZXh0Q29tcG9uZW50QQ0KK1BhdGhGaW5kTmV4dENvbXBvbmVudFcNCitQYXRoRmluZE9uUGF0aEENCitQYXRoRmluZE9uUGF0aFcNCitQYXRoRmluZFN1ZmZpeEFycmF5QQ0KK1BhdGhGaW5kU3VmZml4QXJyYXlXDQorUGF0aEdldEFyZ3NBDQorUGF0aEdldEFyZ3NXDQorUGF0aEdldENoYXJUeXBlQQ0KK1BhdGhHZXRDaGFyVHlwZVcNCitQYXRoR2V0RHJpdmVOdW1iZXJBDQorUGF0aEdldERyaXZlTnVtYmVyVw0KK1BhdGhJc0NvbnRlbnRUeXBlQQ0KK1BhdGhJc0NvbnRlbnRUeXBlVw0KK1BhdGhJc0RpcmVjdG9yeUENCitQYXRoSXNEaXJlY3RvcnlFbXB0eUENCitQYXRoSXNEaXJlY3RvcnlFbXB0eVcNCitQYXRoSXNEaXJlY3RvcnlXDQorUGF0aElzRmlsZVNwZWNBDQorUGF0aElzRmlsZVNwZWNXDQorUGF0aElzTEZORmlsZVNwZWNBDQorUGF0aElzTEZORmlsZVNwZWNXDQorUGF0aElzTmV0d29ya1BhdGhBDQorUGF0aElzTmV0d29ya1BhdGhXDQorUGF0aElzUHJlZml4QQ0KK1BhdGhJc1ByZWZpeFcNCitQYXRoSXNSZWxhdGl2ZUENCitQYXRoSXNSZWxhdGl2ZVcNCitQYXRoSXNSb290QQ0KK1BhdGhJc1Jvb3RXDQorUGF0aElzU2FtZVJvb3RBDQorUGF0aElzU2FtZVJvb3RXDQorUGF0aElzU3lzdGVtRm9sZGVyQQ0KK1BhdGhJc1N5c3RlbUZvbGRlclcNCitQYXRoSXNVTkNBDQorUGF0aElzVU5DU2VydmVyQQ0KK1BhdGhJc1VOQ1NlcnZlclNoYXJlQQ0KK1BhdGhJc1VOQ1NlcnZlclNoYXJlVw0KK1BhdGhJc1VOQ1NlcnZlclcNCitQYXRoSXNVTkNXDQorUGF0aElzVVJMQQ0KK1BhdGhJc1VSTFcNCitQYXRoTWFrZVByZXR0eUENCitQYXRoTWFrZVByZXR0eVcNCitQYXRoTWFrZVN5c3RlbUZvbGRlckENCitQYXRoTWFrZVN5c3RlbUZvbGRlclcNCitQYXRoTWF0Y2hTcGVjQQ0KK1BhdGhNYXRjaFNwZWNXDQorUGF0aFBhcnNlSWNvbkxvY2F0aW9uQQ0KK1BhdGhQYXJzZUljb25Mb2NhdGlvblcNCitQYXRoUXVvdGVTcGFjZXNBDQorUGF0aFF1b3RlU3BhY2VzVw0KK1BhdGhSZWxhdGl2ZVBhdGhUb0ENCitQYXRoUmVsYXRpdmVQYXRoVG9XDQorUGF0aFJlbW92ZUFyZ3NBDQorUGF0aFJlbW92ZUFyZ3NXDQorUGF0aFJlbW92ZUJhY2tzbGFzaEENCitQYXRoUmVtb3ZlQmFja3NsYXNoVw0KK1BhdGhSZW1vdmVCbGFua3NBDQorUGF0aFJlbW92ZUJsYW5rc1cNCitQYXRoUmVtb3ZlRXh0ZW5zaW9uQQ0KK1BhdGhSZW1vdmVFeHRlbnNpb25XDQorUGF0aFJlbW92ZUZpbGVTcGVjQQ0KK1BhdGhSZW1vdmVGaWxlU3BlY1cNCitQYXRoUmVuYW1lRXh0ZW5zaW9uQQ0KK1BhdGhSZW5hbWVFeHRlbnNpb25XDQorUGF0aFNlYXJjaEFuZFF1YWxpZnlBDQorUGF0aFNlYXJjaEFuZFF1YWxpZnlXDQorUGF0aFNldERsZ0l0ZW1QYXRoQQ0KK1BhdGhTZXREbGdJdGVtUGF0aFcNCitQYXRoU2tpcFJvb3RBDQorUGF0aFNraXBSb290Vw0KK1BhdGhTdHJpcFBhdGhBDQorUGF0aFN0cmlwUGF0aFcNCitQYXRoU3RyaXBUb1Jvb3RBDQorUGF0aFN0cmlwVG9Sb290Vw0KK1BhdGhVbkV4cGFuZEVudlN0cmluZ3NBDQorUGF0aFVuRXhwYW5kRW52U3RyaW5nc1cNCitQYXRoVW5kZWNvcmF0ZUENCitQYXRoVW5kZWNvcmF0ZVcNCitQYXRoVW5tYWtlU3lzdGVtRm9sZGVyQQ0KK1BhdGhVbm1ha2VTeXN0ZW1Gb2xkZXJXDQorUGF0aFVucXVvdGVTcGFjZXNBDQorUGF0aFVucXVvdGVTcGFjZXNXDQorU0hBdXRvQ29tcGxldGUNCitTSENvcHlLZXlBDQorU0hDb3B5S2V5Vw0KK1NIQ3JlYXRlU2hlbGxQYWxldHRlDQorU0hDcmVhdGVTdHJlYW1PbkZpbGVBDQorU0hDcmVhdGVTdHJlYW1PbkZpbGVFeA0KK1NIQ3JlYXRlU3RyZWFtT25GaWxlVw0KK1NIQ3JlYXRlU3RyZWFtV3JhcHBlcg0KK1NIQ3JlYXRlVGhyZWFkUmVmDQorU0hEZWxldGVFbXB0eUtleUENCitTSERlbGV0ZUVtcHR5S2V5Vw0KK1NIRGVsZXRlS2V5QQ0KK1NIRGVsZXRlS2V5Vw0KK1NIRGVsZXRlT3JwaGFuS2V5QQ0KK1NIRGVsZXRlT3JwaGFuS2V5Vw0KK1NIRGVsZXRlVmFsdWVBDQorU0hEZWxldGVWYWx1ZVcNCitTSEVudW1LZXlFeEENCitTSEVudW1LZXlFeFcNCitTSEVudW1WYWx1ZUENCitTSEVudW1WYWx1ZVcNCitTSEdldEludmVyc2VDTUFQDQorU0hHZXRUaHJlYWRSZWYNCitTSEdldFZhbHVlQQ0KK1NIR2V0VmFsdWVXDQorU0hJc0xvd01lbW9yeU1hY2hpbmUNCitTSE9wZW5SZWdTdHJlYW0yQQ0KK1NIT3BlblJlZ1N0cmVhbTJXDQorU0hPcGVuUmVnU3RyZWFtQQ0KK1NIT3BlblJlZ1N0cmVhbVcNCitTSFF1ZXJ5SW5mb0tleUENCitTSFF1ZXJ5SW5mb0tleVcNCitTSFF1ZXJ5VmFsdWVFeEENCitTSFF1ZXJ5VmFsdWVFeFcNCitTSFJlZ0Nsb3NlVVNLZXkNCitTSFJlZ0NyZWF0ZVVTS2V5QQ0KK1NIUmVnQ3JlYXRlVVNLZXlXDQorU0hSZWdEZWxldGVFbXB0eVVTS2V5QQ0KK1NIUmVnRGVsZXRlRW1wdHlVU0tleVcNCitTSFJlZ0RlbGV0ZVVTVmFsdWVBDQorU0hSZWdEZWxldGVVU1ZhbHVlVw0KK1NIUmVnRHVwbGljYXRlSEtleQ0KK1NIUmVnRW51bVVTS2V5QQ0KK1NIUmVnRW51bVVTS2V5Vw0KK1NIUmVnRW51bVVTVmFsdWVBDQorU0hSZWdFbnVtVVNWYWx1ZVcNCitTSFJlZ0dldEJvb2xVU1ZhbHVlQQ0KK1NIUmVnR2V0Qm9vbFVTVmFsdWVXDQorU0hSZWdHZXRQYXRoQQ0KK1NIUmVnR2V0UGF0aFcNCitTSFJlZ0dldFVTVmFsdWVBDQorU0hSZWdHZXRVU1ZhbHVlVw0KK1NIUmVnR2V0VmFsdWVBDQorU0hSZWdHZXRWYWx1ZVcNCitTSFJlZ09wZW5VU0tleUENCitTSFJlZ09wZW5VU0tleVcNCitTSFJlZ1F1ZXJ5SW5mb1VTS2V5QQ0KK1NIUmVnUXVlcnlJbmZvVVNLZXlXDQorU0hSZWdRdWVyeVVTVmFsdWVBDQorU0hSZWdRdWVyeVVTVmFsdWVXDQorU0hSZWdTZXRQYXRoQQ0KK1NIUmVnU2V0UGF0aFcNCitTSFJlZ1NldFVTVmFsdWVBDQorU0hSZWdTZXRVU1ZhbHVlVw0KK1NIUmVnV3JpdGVVU1ZhbHVlQQ0KK1NIUmVnV3JpdGVVU1ZhbHVlVw0KK1NIUmVnaXN0ZXJWYWxpZGF0ZVRlbXBsYXRlDQorU0hSZWxlYXNlVGhyZWFkUmVmDQorU0hTZXRUaHJlYWRSZWYNCitTSFNldFZhbHVlQQ0KK1NIU2V0VmFsdWVXDQorU0hTa2lwSnVuY3Rpb24NCitTSFN0ckR1cEENCitTSFN0ckR1cFcNCitTdHJDU3BuQQ0KK1N0ckNTcG5JQQ0KK1N0ckNTcG5JVw0KK1N0ckNTcG5XDQorU3RyQ2F0QnVmZkENCitTdHJDYXRCdWZmVw0KK1N0ckNhdENoYWluVw0KK1N0ckNhdFcNCitTdHJDaHJBDQorU3RyQ2hySUENCitTdHJDaHJJVw0KK1N0ckNock5JVw0KK1N0ckNock5XDQorU3RyQ2hyVw0KK1N0ckNtcElXDQorU3RyQ21wTG9naWNhbFcNCitTdHJDbXBOQQ0KK1N0ckNtcE5JQQ0KK1N0ckNtcE5JVw0KK1N0ckNtcE5XDQorU3RyQ21wVw0KK1N0ckNweU5XDQorU3RyQ3B5Vw0KK1N0ckR1cEENCitTdHJEdXBXDQorU3RyRm9ybWF0Qnl0ZVNpemU2NEENCitTdHJGb3JtYXRCeXRlU2l6ZUENCitTdHJGb3JtYXRCeXRlU2l6ZVcNCitTdHJGb3JtYXRLQlNpemVBDQorU3RyRm9ybWF0S0JTaXplVw0KK1N0ckZyb21UaW1lSW50ZXJ2YWxBDQorU3RyRnJvbVRpbWVJbnRlcnZhbFcNCitTdHJJc0ludGxFcXVhbEENCitTdHJJc0ludGxFcXVhbFcNCitTdHJOQ2F0QQ0KK1N0ck5DYXRXDQorU3RyUEJya0ENCitTdHJQQnJrVw0KK1N0clJDaHJBDQorU3RyUkNocklBDQorU3RyUkNocklXDQorU3RyUkNoclcNCitTdHJSU3RySUENCitTdHJSU3RySVcNCitTdHJSZXRUb0JTVFINCitTdHJSZXRUb0J1ZkENCitTdHJSZXRUb0J1ZlcNCitTdHJSZXRUb1N0ckENCitTdHJSZXRUb1N0clcNCitTdHJTcG5BDQorU3RyU3BuVw0KK1N0clN0ckENCitTdHJTdHJJQQ0KK1N0clN0cklXDQorU3RyU3RyTklXDQorU3RyU3RyTlcNCitTdHJTdHJXDQorU3RyVG9JbnQ2NEV4QQ0KK1N0clRvSW50NjRFeFcNCitTdHJUb0ludEENCitTdHJUb0ludEV4QQ0KK1N0clRvSW50RXhXDQorU3RyVG9JbnRXDQorU3RyVHJpbUENCitTdHJUcmltVw0KK1VybEFwcGx5U2NoZW1lQQ0KK1VybEFwcGx5U2NoZW1lVw0KK1VybENhbm9uaWNhbGl6ZUENCitVcmxDYW5vbmljYWxpemVXDQorVXJsQ29tYmluZUENCitVcmxDb21iaW5lVw0KK1VybENvbXBhcmVBDQorVXJsQ29tcGFyZVcNCitVcmxDcmVhdGVGcm9tUGF0aEENCitVcmxDcmVhdGVGcm9tUGF0aFcNCitVcmxFc2NhcGVBDQorVXJsRXNjYXBlVw0KK1VybEdldExvY2F0aW9uQQ0KK1VybEdldExvY2F0aW9uVw0KK1VybEdldFBhcnRBDQorVXJsR2V0UGFydFcNCitVcmxIYXNoQQ0KK1VybEhhc2hXDQorVXJsSXNBDQorVXJsSXNOb0hpc3RvcnlBDQorVXJsSXNOb0hpc3RvcnlXDQorVXJsSXNPcGFxdWVBDQorVXJsSXNPcGFxdWVXDQorVXJsSXNXDQorVXJsVW5lc2NhcGVBDQorVXJsVW5lc2NhcGVXDQord25zcHJpbnRmQQ0KK3duc3ByaW50ZlcNCit3dm5zcHJpbnRmQQ0KK3d2bnNwcmludGZXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2htZWRpYS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zaG1lZGlhLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40OGYxOWQxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc2htZWRpYS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTSE1FRElBLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTSE1FRElBLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3Noc2NyYXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2hzY3JhcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2JjZjQyMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3Noc2NyYXAuZGVmCkBAIC0wLDAgKzEsMTQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU0hTQ1JBUC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU0hTQ1JBUC5kbGwNCitFWFBPUlRTDQorU2NyYXBfQ3JlYXRlRnJvbURhdGFPYmplY3QNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK09wZW5TY3JhcF9SdW5ETEwNCitPcGVuU2NyYXBfUnVuRExMQQ0KK09wZW5TY3JhcF9SdW5ETExXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2hzdmNzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3Noc3Zjcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODk0YTE3OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3Noc3Zjcy5kZWYKQEAgLTAsMCArMSwxNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTSFNWQ1MuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNIU1ZDUy5kbGwNCitFWFBPUlRTDQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0hhcmR3YXJlRGV0ZWN0aW9uU2VydmljZU1haW4NCitUaGVtZVNlcnZpY2VNYWluDQorQ3JlYXRlSGFyZHdhcmVFdmVudE1vbmlrZXINCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NpZ3RhYi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zaWd0YWIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU0ZWFmOWYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zaWd0YWIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTSUdUQUIuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNJR1RBQi5ETEwNCitFWFBPUlRTDQorRHJpdmVyU2lnbmluZ0RpYWxvZw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NpbXB0Y3AuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2ltcHRjcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTliOWE3NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NpbXB0Y3AuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBzaW1wdGNwLmV4ZQ0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBzaW1wdGNwLmV4ZQ0KK0VYUE9SVFMNCitTZXJ2aWNlRW50cnkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zaXNia3VwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3Npc2JrdXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIzYTY4OTYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zaXNia3VwLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHNpc2JrdXAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHNpc2JrdXAuZGxsDQorRVhQT1JUUw0KK1Npc0NTRmlsZXNUb0JhY2t1cEZvckxpbmsNCitTaXNDcmVhdGVCYWNrdXBTdHJ1Y3R1cmUNCitTaXNDcmVhdGVSZXN0b3JlU3RydWN0dXJlDQorU2lzRnJlZUFsbG9jYXRlZE1lbW9yeQ0KK1Npc0ZyZWVCYWNrdXBTdHJ1Y3R1cmUNCitTaXNGcmVlUmVzdG9yZVN0cnVjdHVyZQ0KK1Npc1Jlc3RvcmVkQ29tbW9uU3RvcmVGaWxlDQorU2lzUmVzdG9yZWRMaW5rDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc2tkbGwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc2tkbGwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg5YmJhMjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9za2RsbC5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNLRExMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTS0RMTC5kbGwNCitFWFBPUlRTDQorU0tFWV9TeXN0ZW1QYXJhbWV0ZXJzSW5mbw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NsYXllcnhwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NsYXllcnhwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lMmQ3NDMyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc2xheWVyeHAuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU2xheWVyWFAuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNsYXllclhQLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NsYmNzcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zbGJjc3AuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI2YjI2OWMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zbGJjc3AuZGVmCkBAIC0wLDAgKzEsMzUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU0xCQ1NQLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTTEJDU1AuZGxsDQorRVhQT1JUUw0KK0NQQWNxdWlyZUNvbnRleHQNCitDUFNldEhhc2hQYXJhbQ0KK0NQU2V0S2V5UGFyYW0NCitDUFNldFByb3ZQYXJhbQ0KK0NQQ3JlYXRlSGFzaA0KK0NQRGVjcnlwdA0KK0NQRGVyaXZlS2V5DQorQ1BEZXN0cm95SGFzaA0KK0NQRGVzdHJveUtleQ0KK0NQRHVwbGljYXRlSGFzaA0KK0NQRHVwbGljYXRlS2V5DQorQ1BFbmNyeXB0DQorQ1BFeHBvcnRLZXkNCitDUEdlbktleQ0KK0NQR2VuUmFuZG9tDQorQ1BHZXRIYXNoUGFyYW0NCitDUEdldEtleVBhcmFtDQorQ1BHZXRQcm92UGFyYW0NCitDUEdldFVzZXJLZXkNCitDUEhhc2hEYXRhDQorQ1BIYXNoU2Vzc2lvbktleQ0KK0NQSW1wb3J0S2V5DQorQ1BSZWxlYXNlQ29udGV4dA0KK0NQU2lnbkhhc2gNCitDUFZlcmlmeVNpZ25hdHVyZQ0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NsYmlvcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zbGJpb3AuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY3Yjk3ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zbGJpb3AuZGVmCkBAIC0wLDAgKzEsODc3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNsYklvcC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU2xiSW9wLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBzY3U6OkV4Y1RlbXBsYXRlPDIsdW5zaWduZWQgbG9uZz46OkV4Y1RlbXBsYXRlPDIsdW5zaWduZWQgbG9uZz4oY2xhc3MgRXhjVGVtcGxhdGU8Mix1bnNpZ25lZCBsb25nPjo6RXhjVGVtcGxhdGU8Mix1bnNpZ25lZCBsb25nPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JEV4Y1RlbXBsYXRlQCQwMUtAc2N1QEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHNjdTo6RXhjVGVtcGxhdGU8Mix1bnNpZ25lZCBsb25nPjo6RXhjVGVtcGxhdGU8Mix1bnNpZ25lZCBsb25nPih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wPyRFeGNUZW1wbGF0ZUAkMDFLQHNjdUBAUUVBQUBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBzY3U6OlNlY3VyZUFycmF5PGNoYXI+OjpTZWN1cmVBcnJheTxjaGFyPihjbGFzcyBTZWN1cmVBcnJheTxjaGFyPjo6U2VjdXJlQXJyYXk8Y2hhcj4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRTZWN1cmVBcnJheUBEQHNjdUBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzY3U6OlNlY3VyZUFycmF5PGNoYXI+OjpTZWN1cmVBcnJheTxjaGFyPihjaGFyICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyRTZWN1cmVBcnJheUBEQHNjdUBAUUVBQUBQRUFEX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHNjdTo6U2VjdXJlQXJyYXk8Y2hhcj46OlNlY3VyZUFycmF5PGNoYXI+KGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JFNlY3VyZUFycmF5QERAc2N1QEBRRUFBQFBFQkRfS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTxjaGFyPjo6U2VjdXJlQXJyYXk8Y2hhcj4odm9pZCkgX19wdHI2NA0KKz8/MD8kU2VjdXJlQXJyYXlAREBzY3VAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBzY3U6OlNlY3VyZUFycmF5PGNoYXI+OjpTZWN1cmVBcnJheTxjaGFyPih1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyRTZWN1cmVBcnJheUBEQHNjdUBAUUVBQUBfS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTxjaGFyPjo6U2VjdXJlQXJyYXk8Y2hhcj4odW5zaWduZWQgX19pbnQ2NCxjaGFyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kU2VjdXJlQXJyYXlAREBzY3VAQFFFQUFAX0tBRUJEQFoNCis7IHB1YmxpYzogX19jZGVjbCBzY3U6OlNlY3VyZUFycmF5PHVuc2lnbmVkIGNoYXI+OjpTZWN1cmVBcnJheTx1bnNpZ25lZCBjaGFyPihjbGFzcyBTZWN1cmVBcnJheTx1bnNpZ25lZCBjaGFyPjo6U2VjdXJlQXJyYXk8dW5zaWduZWQgY2hhcj4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRTZWN1cmVBcnJheUBFQHNjdUBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzY3U6OlNlY3VyZUFycmF5PHVuc2lnbmVkIGNoYXI+OjpTZWN1cmVBcnJheTx1bnNpZ25lZCBjaGFyPih1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyRTZWN1cmVBcnJheUBFQHNjdUBAUUVBQUBQRUFFX0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIHNjdTo6U2VjdXJlQXJyYXk8dW5zaWduZWQgY2hhcj46OlNlY3VyZUFycmF5PHVuc2lnbmVkIGNoYXI+KHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/PzA/JFNlY3VyZUFycmF5QEVAc2N1QEBRRUFBQFBFQkVfS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTx1bnNpZ25lZCBjaGFyPjo6U2VjdXJlQXJyYXk8dW5zaWduZWQgY2hhcj4odm9pZCkgX19wdHI2NA0KKz8/MD8kU2VjdXJlQXJyYXlARUBzY3VAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBzY3U6OlNlY3VyZUFycmF5PHVuc2lnbmVkIGNoYXI+OjpTZWN1cmVBcnJheTx1bnNpZ25lZCBjaGFyPih1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz8wPyRTZWN1cmVBcnJheUBFQHNjdUBAUUVBQUBfS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTx1bnNpZ25lZCBjaGFyPjo6U2VjdXJlQXJyYXk8dW5zaWduZWQgY2hhcj4odW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBjaGFyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kU2VjdXJlQXJyYXlARUBzY3VAQFFFQUFAX0tBRUJFQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmF1dG9fcHRyPGNsYXNzIGlvcDo6Q1NoYXJlZE1hcmtlcj46OmF1dG9fcHRyPGNsYXNzIGlvcDo6Q1NoYXJlZE1hcmtlcj4oY2xhc3MgYXV0b19wdHI8Y2xhc3MgaW9wOjpDU2hhcmVkTWFya2VyPjo6YXV0b19wdHI8Y2xhc3MgaW9wOjpDU2hhcmVkTWFya2VyPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGF1dG9fcHRyQFZDU2hhcmVkTWFya2VyQGlvcEBAQHN0ZEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmF1dG9fcHRyPGNsYXNzIGlvcDo6Q1NoYXJlZE1hcmtlcj46OmF1dG9fcHRyPGNsYXNzIGlvcDo6Q1NoYXJlZE1hcmtlcj4oY2xhc3MgaW9wOjpDU2hhcmVkTWFya2VyICogX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kYXV0b19wdHJAVkNTaGFyZWRNYXJrZXJAaW9wQEBAc3RkQEBRRUFBQFBFQVZDU2hhcmVkTWFya2VyQGlvcEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmF1dG9fcHRyPGNsYXNzIGlvcDo6Uk1IYW5nUHJvY0RlYXRoU3luY2hPYmplY3RzPjo6YXV0b19wdHI8Y2xhc3MgaW9wOjpSTUhhbmdQcm9jRGVhdGhTeW5jaE9iamVjdHM+KGNsYXNzIGF1dG9fcHRyPGNsYXNzIGlvcDo6Uk1IYW5nUHJvY0RlYXRoU3luY2hPYmplY3RzPjo6YXV0b19wdHI8Y2xhc3MgaW9wOjpSTUhhbmdQcm9jRGVhdGhTeW5jaE9iamVjdHM+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kYXV0b19wdHJAVlJNSGFuZ1Byb2NEZWF0aFN5bmNoT2JqZWN0c0Bpb3BAQEBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjphdXRvX3B0cjxjbGFzcyBpb3A6OlJNSGFuZ1Byb2NEZWF0aFN5bmNoT2JqZWN0cz46OmF1dG9fcHRyPGNsYXNzIGlvcDo6Uk1IYW5nUHJvY0RlYXRoU3luY2hPYmplY3RzPihjbGFzcyBpb3A6OlJNSGFuZ1Byb2NEZWF0aFN5bmNoT2JqZWN0cyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGF1dG9fcHRyQFZSTUhhbmdQcm9jRGVhdGhTeW5jaE9iamVjdHNAaW9wQEBAc3RkQEBRRUFBQFBFQVZSTUhhbmdQcm9jRGVhdGhTeW5jaE9iamVjdHNAaW9wQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+KGNsYXNzIGxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGxpc3RAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAVj8kYWxsb2NhdG9yQFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEBzdGRAQEBzdGRAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID4oY2xhc3MgbGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGxpc3RAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAVj8kYWxsb2NhdG9yQFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEBzdGRAQEBzdGRAQFFFQUFAQUVCVj8kYWxsb2NhdG9yQFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID4oY2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgbGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGxpc3RAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAVj8kYWxsb2NhdG9yQFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEBzdGRAQEBzdGRAQFFFQUFAUEVCVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAMEFFQlY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+KGNsYXNzIGxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6Y29uc3RfaXRlcmF0b3IsY2xhc3MgbGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+Ojpjb25zdF9pdGVyYXRvcixjbGFzcyBsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQUBWY29uc3RfaXRlcmF0b3JAMDFAMEFFQlY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+KHVuc2lnbmVkIF9faW50NjQsY2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCBjb25zdCAmIF9fcHRyNjQsY2xhc3MgbGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGxpc3RAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAVj8kYWxsb2NhdG9yQFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEBzdGRAQEBzdGRAQFFFQUFAX0tBRUJWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBBRUJWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OnZlY3RvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQ+ID46OnZlY3RvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQ+ID4oY2xhc3MgdmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPjo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JHZlY3RvckBQRUFVRXZlbnRJbmZvQGlvcEBAVj8kYWxsb2NhdG9yQFBFQVVFdmVudEluZm9AaW9wQEBAc3RkQEBAc3RkQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPjo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPihjbGFzcyB2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+OjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyR2ZWN0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQFY/JGFsbG9jYXRvckBQRUFVRXZlbnRJbmZvQGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQUBBRUJWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+Ojp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+KHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIHZlY3RvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQ+ID46OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JHZlY3RvckBQRUFVRXZlbnRJbmZvQGlvcEBAVj8kYWxsb2NhdG9yQFBFQVVFdmVudEluZm9AaW9wQEBAc3RkQEBAc3RkQEBRRUFBQFBFQlFFQVVFdmVudEluZm9AaW9wQEAwQUVCVj8kYWxsb2NhdG9yQFBFQVVFdmVudEluZm9AaW9wQEBAMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPjo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPih1bnNpZ25lZCBfX2ludDY0LHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgY29uc3QgJiBfX3B0cjY0LGNsYXNzIHZlY3RvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQ+ID46OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JHZlY3RvckBQRUFVRXZlbnRJbmZvQGlvcEBAVj8kYWxsb2NhdG9yQFBFQVVFdmVudEluZm9AaW9wQEBAc3RkQEBAc3RkQEBRRUFBQF9LQUVCUUVBVUV2ZW50SW5mb0Bpb3BAQEFFQlY/JGFsbG9jYXRvckBQRUFVRXZlbnRJbmZvQGlvcEBAQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBpb3A6OkNBY2Nlc3NDYXJkOjpDQWNjZXNzQ2FyZCh1bnNpZ25lZCBfX2ludDY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENBY2Nlc3NDYXJkQGlvcEBAUUVBQUBfS1BFQkQwS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgaW9wOjpDQ3J5cHRvQ2FyZDo6Q0NyeXB0b0NhcmQodW5zaWduZWQgX19pbnQ2NCxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDQ3J5cHRvQ2FyZEBpb3BAQFFFQUFAX0tQRUJEMEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIGlvcDo6Q0lPUDo6Q0lPUCh2b2lkKSBfX3B0cjY0DQorPz8wQ0lPUEBpb3BAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBpb3A6OkNJT1BDcml0aWNhbFNlY3Rpb246OkNJT1BDcml0aWNhbFNlY3Rpb24oY2xhc3MgQ0lPUENyaXRpY2FsU2VjdGlvbjo6Q0lPUExvY2sgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0lPUENyaXRpY2FsU2VjdGlvbkBpb3BAQFFFQUFAUEVBVkNJT1BMb2NrQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBpb3A6OkNJT1BMb2NrOjpDSU9QTG9jayhjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENJT1BMb2NrQGlvcEBAUUVBQUBQRUJEQFoNCis7IHB1YmxpYzogX19jZGVjbCBpb3A6OkNJT1BNdXRleDo6Q0lPUE11dGV4KGNsYXNzIENJT1BNdXRleDo6Q0lPUExvY2sgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0lPUE11dGV4QGlvcEBAUUVBQUBQRUFWQ0lPUExvY2tAMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIGlvcDo6Q0xvY2tXcmFwOjpDTG9ja1dyYXAoY2xhc3MgQ0xvY2tXcmFwOjpDSU9QTG9jayAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTG9ja1dyYXBAaW9wQEBRRUFBQFBFQVZDSU9QTG9ja0AxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgaW9wOjpDTWFya2VyOjpDTWFya2VyKGNsYXNzIENNYXJrZXI6OkNNYXJrZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01hcmtlckBpb3BAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgaW9wOjpDTWFya2VyOjpDTWFya2VyKGVudW0gQ01hcmtlcjo6Q01hcmtlcjo6TWFya2VyVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWFya2VyQGlvcEBAUUVBQUBBRUJXNE1hcmtlclR5cGVAMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBpb3A6OkNNYXJrZXI6OkNNYXJrZXIoZW51bSBDTWFya2VyOjpDTWFya2VyOjpNYXJrZXJUeXBlLHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsX19pbnQ2NCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWFya2VyQGlvcEBAUUVBQUBXNE1hcmtlclR5cGVAMDFAQUVCVV9HVUlEQEBBRUJfSkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgaW9wOjpDUHJpdmF0ZUtleUJsb2I6OkNQcml2YXRlS2V5QmxvYihjbGFzcyBDUHJpdmF0ZUtleUJsb2I6OkNQcml2YXRlS2V5QmxvYiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDUHJpdmF0ZUtleUJsb2JAaW9wQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIGlvcDo6Q1ByaXZhdGVLZXlCbG9iOjpDUHJpdmF0ZUtleUJsb2Iodm9pZCkgX19wdHI2NA0KKz8/MENQcml2YXRlS2V5QmxvYkBpb3BAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBpb3A6OkNQdWJsaWNLZXlCbG9iOjpDUHVibGljS2V5QmxvYihjbGFzcyBDUHVibGljS2V5QmxvYjo6Q1B1YmxpY0tleUJsb2IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1B1YmxpY0tleUJsb2JAaW9wQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIGlvcDo6Q1B1YmxpY0tleUJsb2I6OkNQdWJsaWNLZXlCbG9iKHZvaWQpIF9fcHRyNjQNCis/PzBDUHVibGljS2V5QmxvYkBpb3BAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBpb3A6OkNTQ2FyZExvY2s6OkNTQ2FyZExvY2soY2xhc3MgQ1NDYXJkTG9jazo6Q0lPUExvY2sgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1NDYXJkTG9ja0Bpb3BAQFFFQUFAUEVBVkNJT1BMb2NrQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OkNTbWFydENhcmQodW5zaWduZWQgX19pbnQ2NCxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDU21hcnRDYXJkQGlvcEBAUUVBQUBfS1BFQkQwS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpFeGNlcHRpb246OkV4Y2VwdGlvbihjbGFzcyBDU21hcnRDYXJkOjpFeGNlcHRpb246OkV4Y2VwdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBFeGNlcHRpb25AQ1NtYXJ0Q2FyZEBpb3BAQFFFQUFAQUVCVjAxMkBAWg0KKzsgcHVibGljOiBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6RXhjZXB0aW9uOjpFeGNlcHRpb24oZW51bSBDU21hcnRDYXJkOjpFeGNlcHRpb246OkNhdXNlQ29kZSx1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/PzBFeGNlcHRpb25AQ1NtYXJ0Q2FyZEBpb3BAQFFFQUFAVzRDYXVzZUNvZGVAMTJARUVHQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBzY3U6OkV4Y2VwdGlvbjo6RXhjZXB0aW9uKGVudW0gRXhjZXB0aW9uOjpFeGNlcHRpb246OkZhY2lsaXR5Q29kZSkgX19wdHI2NA0KKz8/MEV4Y2VwdGlvbkBzY3VAQElFQUFAVzRGYWNpbGl0eUNvZGVAMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzY3U6OkV4Y2VwdGlvbjo6RXhjZXB0aW9uKGNsYXNzIEV4Y2VwdGlvbjo6RXhjZXB0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MEV4Y2VwdGlvbkBzY3VAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgaW9wOjpGaWxlUGF0aDo6RmlsZVBhdGgoY2xhc3MgRmlsZVBhdGg6OkZpbGVQYXRoIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MEZpbGVQYXRoQGlvcEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBpb3A6OkZpbGVQYXRoOjpGaWxlUGF0aChjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4pIF9fcHRyNjQNCis/PzBGaWxlUGF0aEBpb3BAQFFFQUFAVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIGlvcDo6RmlsZVBhdGg6OkZpbGVQYXRoKHZvaWQpIF9fcHRyNjQNCis/PzBGaWxlUGF0aEBpb3BAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBpb3A6OkZpbGVQYXRoQ29tcG9uZW50OjpGaWxlUGF0aENvbXBvbmVudChjbGFzcyBGaWxlUGF0aENvbXBvbmVudDo6RmlsZVBhdGhDb21wb25lbnQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wRmlsZVBhdGhDb21wb25lbnRAaW9wQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ6OkZpbGVQYXRoQ29tcG9uZW50KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorPz8wRmlsZVBhdGhDb21wb25lbnRAaW9wQEBRRUFBQEdAWg0KKzsgcHVibGljOiBfX2NkZWNsIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ6OkZpbGVQYXRoQ29tcG9uZW50KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPikgX19wdHI2NA0KKz8/MEZpbGVQYXRoQ29tcG9uZW50QGlvcEBAUUVBQUBWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc2N1OjpPc0V4Y2VwdGlvbjo6T3NFeGNlcHRpb24oY2xhc3MgT3NFeGNlcHRpb246Ok9zRXhjZXB0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ME9zRXhjZXB0aW9uQHNjdUBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzY3U6Ok9zRXhjZXB0aW9uOjpPc0V4Y2VwdGlvbihsb25nKSBfX3B0cjY0DQorPz8wT3NFeGNlcHRpb25Ac2N1QEBRRUFBQEpAWg0KKzsgcHVibGljOiBfX2NkZWNsIHNjdTo6T3NFeGNlcHRpb246Ok9zRXhjZXB0aW9uKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBPc0V4Y2VwdGlvbkBzY3VAQFFFQUFAS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzY3U6OkV4Y1RlbXBsYXRlPDIsdW5zaWduZWQgbG9uZz46On5FeGNUZW1wbGF0ZTwyLHVuc2lnbmVkIGxvbmc+KHZvaWQpIF9fcHRyNjQNCis/PzE/JEV4Y1RlbXBsYXRlQCQwMUtAc2N1QEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTxjaGFyPjo6flNlY3VyZUFycmF5PGNoYXI+KHZvaWQpIF9fcHRyNjQNCis/PzE/JFNlY3VyZUFycmF5QERAc2N1QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTx1bnNpZ25lZCBjaGFyPjo6flNlY3VyZUFycmF5PHVuc2lnbmVkIGNoYXI+KHZvaWQpIF9fcHRyNjQNCis/PzE/JFNlY3VyZUFycmF5QEVAc2N1QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjphdXRvX3B0cjxjbGFzcyBpb3A6OkNTaGFyZWRNYXJrZXI+Ojp+YXV0b19wdHI8Y2xhc3MgaW9wOjpDU2hhcmVkTWFya2VyPih2b2lkKSBfX3B0cjY0DQorPz8xPyRhdXRvX3B0ckBWQ1NoYXJlZE1hcmtlckBpb3BAQEBzdGRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6OmF1dG9fcHRyPGNsYXNzIGlvcDo6Uk1IYW5nUHJvY0RlYXRoU3luY2hPYmplY3RzPjo6fmF1dG9fcHRyPGNsYXNzIGlvcDo6Uk1IYW5nUHJvY0RlYXRoU3luY2hPYmplY3RzPih2b2lkKSBfX3B0cjY0DQorPz8xPyRhdXRvX3B0ckBWUk1IYW5nUHJvY0RlYXRoU3luY2hPYmplY3RzQGlvcEBAQHN0ZEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46On5saXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPih2b2lkKSBfX3B0cjY0DQorPz8xPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+Ojp+dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPih2b2lkKSBfX3B0cjY0DQorPz8xPyR2ZWN0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQFY/JGFsbG9jYXRvckBQRUFVRXZlbnRJbmZvQGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgaW9wOjpDQWNjZXNzQ2FyZDo6fkNBY2Nlc3NDYXJkKHZvaWQpIF9fcHRyNjQNCis/PzFDQWNjZXNzQ2FyZEBpb3BAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIGlvcDo6Q0NyeXB0b0NhcmQ6On5DQ3J5cHRvQ2FyZCh2b2lkKSBfX3B0cjY0DQorPz8xQ0NyeXB0b0NhcmRAaW9wQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgaW9wOjpDSU9QOjp+Q0lPUCh2b2lkKSBfX3B0cjY0DQorPz8xQ0lPUEBpb3BAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBpb3A6OkNJT1BDcml0aWNhbFNlY3Rpb246On5DSU9QQ3JpdGljYWxTZWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFDSU9QQ3JpdGljYWxTZWN0aW9uQGlvcEBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgaW9wOjpDSU9QTG9jazo6fkNJT1BMb2NrKHZvaWQpIF9fcHRyNjQNCis/PzFDSU9QTG9ja0Bpb3BAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBpb3A6OkNJT1BNdXRleDo6fkNJT1BNdXRleCh2b2lkKSBfX3B0cjY0DQorPz8xQ0lPUE11dGV4QGlvcEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIGlvcDo6Q0xvY2tXcmFwOjp+Q0xvY2tXcmFwKHZvaWQpIF9fcHRyNjQNCis/PzFDTG9ja1dyYXBAaW9wQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBpb3A6OkNNYXJrZXI6On5DTWFya2VyKHZvaWQpIF9fcHRyNjQNCis/PzFDTWFya2VyQGlvcEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgaW9wOjpDUHJpdmF0ZUtleUJsb2I6On5DUHJpdmF0ZUtleUJsb2Iodm9pZCkgX19wdHI2NA0KKz8/MUNQcml2YXRlS2V5QmxvYkBpb3BAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIGlvcDo6Q1B1YmxpY0tleUJsb2I6On5DUHVibGljS2V5QmxvYih2b2lkKSBfX3B0cjY0DQorPz8xQ1B1YmxpY0tleUJsb2JAaW9wQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgaW9wOjpDU0NhcmRMb2NrOjp+Q1NDYXJkTG9jayh2b2lkKSBfX3B0cjY0DQorPz8xQ1NDYXJkTG9ja0Bpb3BAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6fkNTbWFydENhcmQodm9pZCkgX19wdHI2NA0KKz8/MUNTbWFydENhcmRAaW9wQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OkV4Y2VwdGlvbjo6fkV4Y2VwdGlvbih2b2lkKSBfX3B0cjY0DQorPz8xRXhjZXB0aW9uQENTbWFydENhcmRAaW9wQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzY3U6OkV4Y2VwdGlvbjo6fkV4Y2VwdGlvbih2b2lkKSBfX3B0cjY0DQorPz8xRXhjZXB0aW9uQHNjdUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgaW9wOjpGaWxlUGF0aDo6fkZpbGVQYXRoKHZvaWQpIF9fcHRyNjQNCis/PzFGaWxlUGF0aEBpb3BAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ6On5GaWxlUGF0aENvbXBvbmVudCh2b2lkKSBfX3B0cjY0DQorPz8xRmlsZVBhdGhDb21wb25lbnRAaW9wQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBzY3U6Ok9zRXhjZXB0aW9uOjp+T3NFeGNlcHRpb24odm9pZCkgX19wdHI2NA0KKz8/MU9zRXhjZXB0aW9uQHNjdUBAVUVBQUBYWg0KKzsgcHVibGljOiBjbGFzcyBzY3U6OkV4Y1RlbXBsYXRlPDIsdW5zaWduZWQgbG9uZz4gJiBfX3B0cjY0IF9fY2RlY2wgc2N1OjpFeGNUZW1wbGF0ZTwyLHVuc2lnbmVkIGxvbmc+OjpvcGVyYXRvcj0oY2xhc3Mgc2N1OjpFeGNUZW1wbGF0ZTwyLHVuc2lnbmVkIGxvbmc+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kRXhjVGVtcGxhdGVAJDAxS0BzY3VAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHNjdTo6U2VjdXJlQXJyYXk8Y2hhcj4gJiBfX3B0cjY0IF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTxjaGFyPjo6b3BlcmF0b3I9KGNoYXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRTZWN1cmVBcnJheUBEQHNjdUBAUUVBQUFFQVYwMUBBRUJEQFoNCis7IHB1YmxpYzogY2xhc3Mgc2N1OjpTZWN1cmVBcnJheTxjaGFyPiAmIF9fcHRyNjQgX19jZGVjbCBzY3U6OlNlY3VyZUFycmF5PGNoYXI+OjpvcGVyYXRvcj0oY2xhc3Mgc2N1OjpTZWN1cmVBcnJheTxjaGFyPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JFNlY3VyZUFycmF5QERAc2N1QEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzY3U6OlNlY3VyZUFycmF5PHVuc2lnbmVkIGNoYXI+ICYgX19wdHI2NCBfX2NkZWNsIHNjdTo6U2VjdXJlQXJyYXk8dW5zaWduZWQgY2hhcj46Om9wZXJhdG9yPSh1bnNpZ25lZCBjaGFyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kU2VjdXJlQXJyYXlARUBzY3VAQFFFQUFBRUFWMDFAQUVCRUBaDQorOyBwdWJsaWM6IGNsYXNzIHNjdTo6U2VjdXJlQXJyYXk8dW5zaWduZWQgY2hhcj4gJiBfX3B0cjY0IF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTx1bnNpZ25lZCBjaGFyPjo6b3BlcmF0b3I9KGNsYXNzIHNjdTo6U2VjdXJlQXJyYXk8dW5zaWduZWQgY2hhcj4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRTZWN1cmVBcnJheUBFQHNjdUBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjphdXRvX3B0cjxjbGFzcyBpb3A6OkNTaGFyZWRNYXJrZXI+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6YXV0b19wdHI8Y2xhc3MgaW9wOjpDU2hhcmVkTWFya2VyPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YXV0b19wdHI8Y2xhc3MgaW9wOjpDU2hhcmVkTWFya2VyPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JGF1dG9fcHRyQFZDU2hhcmVkTWFya2VyQGlvcEBAQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjphdXRvX3B0cjxjbGFzcyBpb3A6OlJNSGFuZ1Byb2NEZWF0aFN5bmNoT2JqZWN0cz4gJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjphdXRvX3B0cjxjbGFzcyBpb3A6OlJNSGFuZ1Byb2NEZWF0aFN5bmNoT2JqZWN0cz46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmF1dG9fcHRyPGNsYXNzIGlvcDo6Uk1IYW5nUHJvY0RlYXRoU3luY2hPYmplY3RzPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JGF1dG9fcHRyQFZSTUhhbmdQcm9jRGVhdGhTeW5jaE9iamVjdHNAaW9wQEBAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JHZlY3RvckBQRUFVRXZlbnRJbmZvQGlvcEBAVj8kYWxsb2NhdG9yQFBFQVVFdmVudEluZm9AaW9wQEBAc3RkQEBAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBpb3A6OkNJT1AgJiBfX3B0cjY0IF9fY2RlY2wgaW9wOjpDSU9QOjpvcGVyYXRvcj0oY2xhc3MgaW9wOjpDSU9QIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJT1BAaW9wQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBpb3A6OkNJT1BDcml0aWNhbFNlY3Rpb24gJiBfX3B0cjY0IF9fY2RlY2wgaW9wOjpDSU9QQ3JpdGljYWxTZWN0aW9uOjpvcGVyYXRvcj0oY2xhc3MgaW9wOjpDSU9QQ3JpdGljYWxTZWN0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJT1BDcml0aWNhbFNlY3Rpb25AaW9wQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBpb3A6OkNJT1BNdXRleCAmIF9fcHRyNjQgX19jZGVjbCBpb3A6OkNJT1BNdXRleDo6b3BlcmF0b3I9KGNsYXNzIGlvcDo6Q0lPUE11dGV4IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJT1BNdXRleEBpb3BAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIGlvcDo6Q0xvY2tXcmFwICYgX19wdHI2NCBfX2NkZWNsIGlvcDo6Q0xvY2tXcmFwOjpvcGVyYXRvcj0oY2xhc3MgaW9wOjpDTG9ja1dyYXAgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0xvY2tXcmFwQGlvcEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3MgaW9wOjpDTWFya2VyICYgX19wdHI2NCBfX2NkZWNsIGlvcDo6Q01hcmtlcjo6b3BlcmF0b3I9KGNsYXNzIGlvcDo6Q01hcmtlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTWFya2VyQGlvcEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3MgaW9wOjpDUHJpdmF0ZUtleUJsb2IgJiBfX3B0cjY0IF9fY2RlY2wgaW9wOjpDUHJpdmF0ZUtleUJsb2I6Om9wZXJhdG9yPShjbGFzcyBpb3A6OkNQcml2YXRlS2V5QmxvYiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDUHJpdmF0ZUtleUJsb2JAaW9wQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBpb3A6OkNQdWJsaWNLZXlCbG9iICYgX19wdHI2NCBfX2NkZWNsIGlvcDo6Q1B1YmxpY0tleUJsb2I6Om9wZXJhdG9yPShjbGFzcyBpb3A6OkNQdWJsaWNLZXlCbG9iIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENQdWJsaWNLZXlCbG9iQGlvcEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3MgaW9wOjpDU0NhcmRMb2NrICYgX19wdHI2NCBfX2NkZWNsIGlvcDo6Q1NDYXJkTG9jazo6b3BlcmF0b3I9KGNsYXNzIGlvcDo6Q1NDYXJkTG9jayBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDU0NhcmRMb2NrQGlvcEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3MgaW9wOjpDU21hcnRDYXJkOjpFeGNlcHRpb24gJiBfX3B0cjY0IF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpFeGNlcHRpb246Om9wZXJhdG9yPShjbGFzcyBpb3A6OkNTbWFydENhcmQ6OkV4Y2VwdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRFeGNlcHRpb25AQ1NtYXJ0Q2FyZEBpb3BAQFFFQUFBRUFWMDEyQEFFQlYwMTJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc2N1OjpFeGNlcHRpb24gJiBfX3B0cjY0IF9fY2RlY2wgc2N1OjpFeGNlcHRpb246Om9wZXJhdG9yPShjbGFzcyBzY3U6OkV4Y2VwdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRFeGNlcHRpb25Ac2N1QEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBpb3A6OkZpbGVQYXRoICYgX19wdHI2NCBfX2NkZWNsIGlvcDo6RmlsZVBhdGg6Om9wZXJhdG9yPShjbGFzcyBpb3A6OkZpbGVQYXRoIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NEZpbGVQYXRoQGlvcEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCAmIF9fcHRyNjQgX19jZGVjbCBpb3A6OkZpbGVQYXRoQ29tcG9uZW50OjpvcGVyYXRvcj0oY2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRGaWxlUGF0aENvbXBvbmVudEBpb3BAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHNjdTo6T3NFeGNlcHRpb24gJiBfX3B0cjY0IF9fY2RlY2wgc2N1OjpPc0V4Y2VwdGlvbjo6b3BlcmF0b3I9KGNsYXNzIHNjdTo6T3NFeGNlcHRpb24gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80T3NFeGNlcHRpb25Ac2N1QEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgYm9vbCBfX2NkZWNsIGlvcDo6b3BlcmF0b3I9PShjbGFzcyBpb3A6OkNNYXJrZXIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIGlvcDo6Q01hcmtlciBjb25zdCAmIF9fcHRyNjQpDQorPz84aW9wQEBZQV9OQUVCVkNNYXJrZXJAMEAwQFoNCis7IGJvb2wgX19jZGVjbCBpb3A6Om9wZXJhdG9yIT0oY2xhc3MgaW9wOjpDTWFya2VyIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBpb3A6OkNNYXJrZXIgY29uc3QgJiBfX3B0cjY0KQ0KKz8/OWlvcEBAWUFfTkFFQlZDTWFya2VyQDBAMEBaDQorOyBwdWJsaWM6IGNoYXIgJiBfX3B0cjY0IF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTxjaGFyPjo6b3BlcmF0b3JbXSh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz9BPyRTZWN1cmVBcnJheUBEQHNjdUBAUUVBQUFFQURfS0BaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTxjaGFyPjo6b3BlcmF0b3JbXSh1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorPz9BPyRTZWN1cmVBcnJheUBEQHNjdUBAUUVCQUFFQkRfS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgJiBfX3B0cjY0IF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTx1bnNpZ25lZCBjaGFyPjo6b3BlcmF0b3JbXSh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorPz9BPyRTZWN1cmVBcnJheUBFQHNjdUBAUUVBQUFFQUVfS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTx1bnNpZ25lZCBjaGFyPjo6b3BlcmF0b3JbXSh1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorPz9BPyRTZWN1cmVBcnJheUBFQHNjdUBAUUVCQUFFQkVfS0BaDQorOyBwdWJsaWM6IHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+OjpvcGVyYXRvcltdKHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/P0E/JHZlY3RvckBQRUFVRXZlbnRJbmZvQGlvcEBAVj8kYWxsb2NhdG9yQFBFQVVFdmVudEluZm9AaW9wQEBAc3RkQEBAc3RkQEBRRUFBQUVBUEVBVUV2ZW50SW5mb0Bpb3BAQF9LQFoNCis7IHB1YmxpYzogc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OnZlY3RvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQ+ID46Om9wZXJhdG9yW10odW5zaWduZWQgX19pbnQ2NCljb25zdCAgX19wdHI2NA0KKz8/QT8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQFFFQkFBRUJRRUFVRXZlbnRJbmZvQGlvcEBAX0tAWg0KKzsgcHVibGljOiBjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50ICYgX19wdHI2NCBfX2NkZWNsIGlvcDo6RmlsZVBhdGg6Om9wZXJhdG9yW10odW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz9BRmlsZVBhdGhAaW9wQEBRRUFBQUVBVkZpbGVQYXRoQ29tcG9uZW50QDFASUBaDQorOyBwdWJsaWM6IGNsYXNzIGlvcDo6Q1NoYXJlZE1hcmtlciAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmF1dG9fcHRyPGNsYXNzIGlvcDo6Q1NoYXJlZE1hcmtlcj46Om9wZXJhdG9yLT4odm9pZCljb25zdCAgX19wdHI2NA0KKz8/Qz8kYXV0b19wdHJAVkNTaGFyZWRNYXJrZXJAaW9wQEBAc3RkQEBRRUJBUEVBVkNTaGFyZWRNYXJrZXJAaW9wQEBYWg0KKzsgcHVibGljOiBjbGFzcyBpb3A6OlJNSGFuZ1Byb2NEZWF0aFN5bmNoT2JqZWN0cyAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmF1dG9fcHRyPGNsYXNzIGlvcDo6Uk1IYW5nUHJvY0RlYXRoU3luY2hPYmplY3RzPjo6b3BlcmF0b3ItPih2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9DPyRhdXRvX3B0ckBWUk1IYW5nUHJvY0RlYXRoU3luY2hPYmplY3RzQGlvcEBAQHN0ZEBAUUVCQVBFQVZSTUhhbmdQcm9jRGVhdGhTeW5jaE9iamVjdHNAaW9wQEBYWg0KKzsgcHVibGljOiBjaGFyICYgX19wdHI2NCBfX2NkZWNsIHNjdTo6U2VjdXJlQXJyYXk8Y2hhcj46Om9wZXJhdG9yKih2b2lkKSBfX3B0cjY0DQorPz9EPyRTZWN1cmVBcnJheUBEQHNjdUBAUUVBQUFFQURYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIHNjdTo6U2VjdXJlQXJyYXk8Y2hhcj46Om9wZXJhdG9yKih2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9EPyRTZWN1cmVBcnJheUBEQHNjdUBAUUVCQUFFQkRYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICYgX19wdHI2NCBfX2NkZWNsIHNjdTo6U2VjdXJlQXJyYXk8dW5zaWduZWQgY2hhcj46Om9wZXJhdG9yKih2b2lkKSBfX3B0cjY0DQorPz9EPyRTZWN1cmVBcnJheUBFQHNjdUBAUUVBQUFFQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIHNjdTo6U2VjdXJlQXJyYXk8dW5zaWduZWQgY2hhcj46Om9wZXJhdG9yKih2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9EPyRTZWN1cmVBcnJheUBFQHNjdUBAUUVCQUFFQkVYWg0KKzsgcHVibGljOiBjbGFzcyBpb3A6OkNTaGFyZWRNYXJrZXIgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjphdXRvX3B0cjxjbGFzcyBpb3A6OkNTaGFyZWRNYXJrZXI+OjpvcGVyYXRvcioodm9pZCljb25zdCAgX19wdHI2NA0KKz8/RD8kYXV0b19wdHJAVkNTaGFyZWRNYXJrZXJAaW9wQEBAc3RkQEBRRUJBQUVBVkNTaGFyZWRNYXJrZXJAaW9wQEBYWg0KKzsgcHVibGljOiBjbGFzcyBpb3A6OlJNSGFuZ1Byb2NEZWF0aFN5bmNoT2JqZWN0cyAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OmF1dG9fcHRyPGNsYXNzIGlvcDo6Uk1IYW5nUHJvY0RlYXRoU3luY2hPYmplY3RzPjo6b3BlcmF0b3IqKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0Q/JGF1dG9fcHRyQFZSTUhhbmdQcm9jRGVhdGhTeW5jaE9iamVjdHNAaW9wQEBAc3RkQEBRRUJBQUVBVlJNSGFuZ1Byb2NEZWF0aFN5bmNoT2JqZWN0c0Bpb3BAQFhaDQorOyBwdWJsaWM6IGNsYXNzIGlvcDo6RmlsZVBhdGggY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgaW9wOjpGaWxlUGF0aDo6b3BlcmF0b3IrPShjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50KSBfX3B0cjY0DQorPz9ZRmlsZVBhdGhAaW9wQEBRRUFBQUVCVjAxQFZGaWxlUGF0aENvbXBvbmVudEAxQEBaDQorOyBjb25zdCAgc2N1OjpFeGNUZW1wbGF0ZTwyLHVuc2lnbmVkIGxvbmc+OjpgdmZ0YWJsZScNCis/P183PyRFeGNUZW1wbGF0ZUAkMDFLQHNjdUBANkJADQorOyBjb25zdCAgaW9wOjpDQWNjZXNzQ2FyZDo6YHZmdGFibGUnDQorPz9fN0NBY2Nlc3NDYXJkQGlvcEBANkJADQorOyBjb25zdCAgaW9wOjpDQ3J5cHRvQ2FyZDo6YHZmdGFibGUnDQorPz9fN0NDcnlwdG9DYXJkQGlvcEBANkJADQorOyBjb25zdCAgaW9wOjpDSU9QTG9jazo6YHZmdGFibGUnDQorPz9fN0NJT1BMb2NrQGlvcEBANkJADQorOyBjb25zdCAgaW9wOjpDTWFya2VyOjpgdmZ0YWJsZScNCis/P183Q01hcmtlckBpb3BAQDZCQA0KKzsgY29uc3QgIGlvcDo6Q1ByaXZhdGVLZXlCbG9iOjpgdmZ0YWJsZScNCis/P183Q1ByaXZhdGVLZXlCbG9iQGlvcEBANkJADQorOyBjb25zdCAgaW9wOjpDUHVibGljS2V5QmxvYjo6YHZmdGFibGUnDQorPz9fN0NQdWJsaWNLZXlCbG9iQGlvcEBANkJADQorOyBjb25zdCAgaW9wOjpDU21hcnRDYXJkOjpgdmZ0YWJsZScNCis/P183Q1NtYXJ0Q2FyZEBpb3BAQDZCQA0KKzsgY29uc3QgIGlvcDo6Q1NtYXJ0Q2FyZDo6RXhjZXB0aW9uOjpgdmZ0YWJsZScNCis/P183RXhjZXB0aW9uQENTbWFydENhcmRAaW9wQEA2QkANCis7IGNvbnN0ICBzY3U6OkV4Y2VwdGlvbjo6YHZmdGFibGUnDQorPz9fN0V4Y2VwdGlvbkBzY3VAQDZCQA0KKzsgY29uc3QgIGlvcDo6RmlsZVBhdGg6OmB2ZnRhYmxlJw0KKz8/XzdGaWxlUGF0aEBpb3BAQDZCQA0KKzsgY29uc3QgIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ6OmB2ZnRhYmxlJw0KKz8/XzdGaWxlUGF0aENvbXBvbmVudEBpb3BAQDZCQA0KKzsgY29uc3QgIHNjdTo6T3NFeGNlcHRpb246OmB2ZnRhYmxlJw0KKz8/XzdPc0V4Y2VwdGlvbkBzY3VAQDZCQA0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjphdXRvX3B0cjxjbGFzcyBpb3A6OkNTaGFyZWRNYXJrZXI+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRj8kYXV0b19wdHJAVkNTaGFyZWRNYXJrZXJAaW9wQEBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OmF1dG9fcHRyPGNsYXNzIGlvcDo6Uk1IYW5nUHJvY0RlYXRoU3luY2hPYmplY3RzPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0Y/JGF1dG9fcHRyQFZSTUhhbmdQcm9jRGVhdGhTeW5jaE9iamVjdHNAaW9wQEBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRj8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRj8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIGlvcDo6Q0NyeXB0b0NhcmQ6OkFjY2Vzc1RvQ3J5cHRvQUNMKGJvb2wgKiBfX3B0cjY0LHN0cnVjdCBpb3A6OkNyeXB0b0FDTCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWNjZXNzVG9DcnlwdG9BQ0xAQ0NyeXB0b0NhcmRAaW9wQEBJRUFBWFBFQV9OUEVBVUNyeXB0b0FDTEAyQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0FjY2Vzc0NhcmQ6OkJsb2NrQXBwbGV0KHZvaWQpIF9fcHRyNjQNCis/QmxvY2tBcHBsZXRAQ0FjY2Vzc0NhcmRAaW9wQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6QmxvY2tBcHBsZXQodm9pZCkgX19wdHI2NA0KKz9CbG9ja0FwcGxldEBDU21hcnRDYXJkQGlvcEBAVUVBQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgc2N1OjpFeGNUZW1wbGF0ZTwyLHVuc2lnbmVkIGxvbmc+OjpDYXVzZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NhdXNlQD8kRXhjVGVtcGxhdGVAJDAxS0BzY3VAQFFFQkFLWFoNCis7IHB1YmxpYzogZW51bSBpb3A6OkNTbWFydENhcmQ6OkNhdXNlQ29kZSAgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OkV4Y2VwdGlvbjo6Q2F1c2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9DYXVzZUBFeGNlcHRpb25AQ1NtYXJ0Q2FyZEBpb3BAQFFFQkE/QVc0Q2F1c2VDb2RlQDIzQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0FjY2Vzc0NhcmQ6OkNoYW5nZUFDTCh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DaGFuZ2VBQ0xAQ0FjY2Vzc0NhcmRAaW9wQEBVRUFBWFBFQkVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNDcnlwdG9DYXJkOjpDaGFuZ2VBQ0wodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2hhbmdlQUNMQENDcnlwdG9DYXJkQGlvcEBAVUVBQVhQRUJFQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpDaGFuZ2VBQ0wodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2hhbmdlQUNMQENTbWFydENhcmRAaW9wQEBVRUFBWFBFQkVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNBY2Nlc3NDYXJkOjpDaGFuZ2VDSFYodW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DaGFuZ2VDSFZAQ0FjY2Vzc0NhcmRAaW9wQEBVRUFBWEVQRUJFMEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0FjY2Vzc0NhcmQ6OkNoYW5nZUNIVih1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoYW5nZUNIVkBDQWNjZXNzQ2FyZEBpb3BAQFVFQUFYRVBFQkVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNDcnlwdG9DYXJkOjpDaGFuZ2VDSFYodW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DaGFuZ2VDSFZAQ0NyeXB0b0NhcmRAaW9wQEBVRUFBWEVQRUJFMEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0NyeXB0b0NhcmQ6OkNoYW5nZUNIVih1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoYW5nZUNIVkBDQ3J5cHRvQ2FyZEBpb3BAQFVFQUFYRVBFQkVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OkNoYW5nZUNIVih1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoYW5nZUNIVkBDU21hcnRDYXJkQGlvcEBAVUVBQVhFUEVCRTBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OkNoYW5nZUNIVih1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoYW5nZUNIVkBDU21hcnRDYXJkQGlvcEBAVUVBQVhFUEVCRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0FjY2Vzc0NhcmQ6OkNoYW5nZVRyYW5zcG9ydEtleSh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DaGFuZ2VUcmFuc3BvcnRLZXlAQ0FjY2Vzc0NhcmRAaW9wQEBVRUFBWFBFQkVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNDcnlwdG9DYXJkOjpDaGFuZ2VUcmFuc3BvcnRLZXkodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2hhbmdlVHJhbnNwb3J0S2V5QENDcnlwdG9DYXJkQGlvcEBAVUVBQVhQRUJFQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpDaGFuZ2VUcmFuc3BvcnRLZXkodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2hhbmdlVHJhbnNwb3J0S2V5QENTbWFydENhcmRAaW9wQEBVRUFBWFBFQkVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNBY2Nlc3NDYXJkOjpDaGFuZ2VVbmJsb2NrS2V5KHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2hhbmdlVW5ibG9ja0tleUBDQWNjZXNzQ2FyZEBpb3BAQFVFQUFYRVBFQkVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNDcnlwdG9DYXJkOjpDaGFuZ2VVbmJsb2NrS2V5KHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2hhbmdlVW5ibG9ja0tleUBDQ3J5cHRvQ2FyZEBpb3BAQFVFQUFYRVBFQkVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OkNoYW5nZVVuYmxvY2tLZXkodW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DaGFuZ2VVbmJsb2NrS2V5QENTbWFydENhcmRAaW9wQEBVRUFBWEVQRUJFQFoNCis7IHB1YmxpYzogY2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCAgX19jZGVjbCBpb3A6OkZpbGVQYXRoOjpDaG9wVGFpbCh2b2lkKSBfX3B0cjY0DQorP0Nob3BUYWlsQEZpbGVQYXRoQGlvcEBAUUVBQT9BVkZpbGVQYXRoQ29tcG9uZW50QDJAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6RXhjZXB0aW9uOjpDbGFzcyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NsYXNzQEV4Y2VwdGlvbkBDU21hcnRDYXJkQGlvcEBAUUVCQUVYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgaW9wOjpGaWxlUGF0aDo6Q2xlYXIodm9pZCkgX19wdHI2NA0KKz9DbGVhckBGaWxlUGF0aEBpb3BAQFFFQUFYWFoNCis7IHZvaWQgX19jZGVjbCBpb3A6OkNsZWFyKGNsYXNzIGlvcDo6Q1ByaXZhdGVLZXlCbG9iICYgX19wdHI2NCkNCis/Q2xlYXJAaW9wQEBZQVhBRUFWQ1ByaXZhdGVLZXlCbG9iQDFAQFoNCis7IHZvaWQgX19jZGVjbCBpb3A6OkNsZWFyKGNsYXNzIGlvcDo6Q1B1YmxpY0tleUJsb2IgJiBfX3B0cjY0KQ0KKz9DbGVhckBpb3BAQFlBWEFFQVZDUHVibGljS2V5QmxvYkAxQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTxjaGFyPjo6Q2xlYXJEYXRhU3RvcmUodm9pZCkgX19wdHI2NA0KKz9DbGVhckRhdGFTdG9yZUA/JFNlY3VyZUFycmF5QERAc2N1QEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTx1bnNpZ25lZCBjaGFyPjo6Q2xlYXJEYXRhU3RvcmUodm9pZCkgX19wdHI2NA0KKz9DbGVhckRhdGFTdG9yZUA/JFNlY3VyZUFycmF5QEVAc2N1QEBBRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3Mgc2N1OjpFeGNlcHRpb24gKiBfX3B0cjY0IF9fY2RlY2wgc2N1OjpFeGNUZW1wbGF0ZTwyLHVuc2lnbmVkIGxvbmc+OjpDbG9uZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0Nsb25lQD8kRXhjVGVtcGxhdGVAJDAxS0BzY3VAQFVFQkFQRUFWRXhjZXB0aW9uQDJAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBzY3U6OkV4Y2VwdGlvbiAqIF9fcHRyNjQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OkV4Y2VwdGlvbjo6Q2xvbmUodm9pZCljb25zdCAgX19wdHI2NA0KKz9DbG9uZUBFeGNlcHRpb25AQ1NtYXJ0Q2FyZEBpb3BAQFVFQkFQRUFWMXNjdUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBzY3U6OkV4Y2VwdGlvbiAqIF9fcHRyNjQgX19jZGVjbCBzY3U6Ok9zRXhjZXB0aW9uOjpDbG9uZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0Nsb25lQE9zRXhjZXB0aW9uQHNjdUBAVUVCQVBFQVZFeGNlcHRpb25AMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+ICBfX2NkZWNsIGlvcDo6RmlsZVBhdGg6OkNvbXBvbmVudHModm9pZCkgX19wdHI2NA0KKz9Db21wb25lbnRzQEZpbGVQYXRoQGlvcEBAUUVBQT9BVj8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAWFoNCis7IHB1YmxpYzogY2xhc3MgaW9wOjpDU21hcnRDYXJkICogX19wdHI2NCBfX2NkZWNsIGlvcDo6Q0lPUDo6Q29ubmVjdChjaGFyIGNvbnN0ICogX19wdHI2NCxib29sKSBfX3B0cjY0DQorP0Nvbm5lY3RAQ0lPUEBpb3BAQFFFQUFQRUFWQ1NtYXJ0Q2FyZEAyQFBFQkRfTkBaDQorOyBwcml2YXRlOiBjbGFzcyBpb3A6OkNTbWFydENhcmQgKiBfX3B0cjY0IF9fY2RlY2wgaW9wOjpDSU9QOjpDcmVhdGVDYXJkKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgX19pbnQ2NCxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NyZWF0ZUNhcmRAQ0lPUEBpb3BAQEFFQUFQRUFWQ1NtYXJ0Q2FyZEAyQFBFQkVLX0tQRUJES0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0FjY2Vzc0NhcmQ6OkNyZWF0ZUZpbGVBKHN0cnVjdCBpb3A6OkZJTEVfSEVBREVSIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVGaWxlQUBDQWNjZXNzQ2FyZEBpb3BAQFVFQUFYUEVCVUZJTEVfSEVBREVSQDJAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDQ3J5cHRvQ2FyZDo6Q3JlYXRlRmlsZUEoc3RydWN0IGlvcDo6RklMRV9IRUFERVIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZUZpbGVBQENDcnlwdG9DYXJkQGlvcEBAVUVBQVhQRUJVRklMRV9IRUFERVJAMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OkNyZWF0ZUZpbGVBKHN0cnVjdCBpb3A6OkZJTEVfSEVBREVSIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVGaWxlQUBDU21hcnRDYXJkQGlvcEBAVUVBQVhQRUJVRklMRV9IRUFERVJAMkBAWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OICogX19wdHI2NCBfX2NkZWNsIGlvcDo6Q0lPUExvY2s6OkNyaXRpY2FsU2VjdGlvbih2b2lkKSBfX3B0cjY0DQorP0NyaXRpY2FsU2VjdGlvbkBDSU9QTG9ja0Bpb3BAQFFFQUFQRUFVX1JUTF9DUklUSUNBTF9TRUNUSU9OQEBYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgaW9wOjpDQ3J5cHRvQ2FyZDo6Q3J5cHRvVG9BY2Nlc3NBQ0wodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/Q3J5cHRvVG9BY2Nlc3NBQ0xAQ0NyeXB0b0NhcmRAaW9wQEBJRUFBWFBFQUVFRUVAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgaW9wOjpDSU9QTG9jazo6RGVjcmVtZW50UmVmQ291bnQodm9pZCkgX19wdHI2NA0KKz9EZWNyZW1lbnRSZWZDb3VudEBDSU9QTG9ja0Bpb3BAQFFFQUFYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDQWNjZXNzQ2FyZDo6RGVmYXVsdERpc3BhdGNoRXJyb3IodW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIHNob3J0KWNvbnN0ICBfX3B0cjY0DQorP0RlZmF1bHREaXNwYXRjaEVycm9yQENBY2Nlc3NDYXJkQGlvcEBATUVCQVhFRUdAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNDcnlwdG9DYXJkOjpEZWZhdWx0RGlzcGF0Y2hFcnJvcih1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgc2hvcnQpY29uc3QgIF9fcHRyNjQNCis/RGVmYXVsdERpc3BhdGNoRXJyb3JAQ0NyeXB0b0NhcmRAaW9wQEBNRUJBWEVFR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6RGVmYXVsdERpc3BhdGNoRXJyb3IodW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIHNob3J0KWNvbnN0ICBfX3B0cjY0DQorP0RlZmF1bHREaXNwYXRjaEVycm9yQENTbWFydENhcmRAaW9wQEBNRUJBWEVFR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0FjY2Vzc0NhcmQ6OkRlbGV0ZUFwcGxldCh2b2lkKSBfX3B0cjY0DQorP0RlbGV0ZUFwcGxldEBDQWNjZXNzQ2FyZEBpb3BAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpEZWxldGVBcHBsZXQodm9pZCkgX19wdHI2NA0KKz9EZWxldGVBcHBsZXRAQ1NtYXJ0Q2FyZEBpb3BAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDQWNjZXNzQ2FyZDo6RGVsZXRlRmlsZUEodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/RGVsZXRlRmlsZUFAQ0FjY2Vzc0NhcmRAaW9wQEBVRUFBWEdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNDcnlwdG9DYXJkOjpEZWxldGVGaWxlQSh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9EZWxldGVGaWxlQUBDQ3J5cHRvQ2FyZEBpb3BAQFVFQUFYR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6RGVsZXRlRmlsZUEodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/RGVsZXRlRmlsZUFAQ1NtYXJ0Q2FyZEBpb3BAQFVFQUFYR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzY3U6OkV4Y1RlbXBsYXRlPDIsdW5zaWduZWQgbG9uZz46OkRlc2NyaXB0aW9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RGVzY3JpcHRpb25APyRFeGNUZW1wbGF0ZUAkMDFLQHNjdUBAVUVCQVBFQkRYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpFeGNlcHRpb246OkRlc2NyaXB0aW9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RGVzY3JpcHRpb25ARXhjZXB0aW9uQENTbWFydENhcmRAaW9wQEBVRUJBUEVCRFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzY3U6OkV4Y2VwdGlvbjo6RGVzY3JpcHRpb24odm9pZCljb25zdCAgX19wdHI2NA0KKz9EZXNjcmlwdGlvbkBFeGNlcHRpb25Ac2N1QEBVRUJBUEVCRFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzY3U6Ok9zRXhjZXB0aW9uOjpEZXNjcmlwdGlvbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0Rlc2NyaXB0aW9uQE9zRXhjZXB0aW9uQHNjdUBAVUVCQVBFQkRYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNBY2Nlc3NDYXJkOjpEaXJlY3RvcnkodW5zaWduZWQgY2hhcixzdHJ1Y3QgaW9wOjpGSUxFX0hFQURFUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGlyZWN0b3J5QENBY2Nlc3NDYXJkQGlvcEBAVUVBQVhFUEVBVUZJTEVfSEVBREVSQDJAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDQ3J5cHRvQ2FyZDo6RGlyZWN0b3J5KHVuc2lnbmVkIGNoYXIsc3RydWN0IGlvcDo6RklMRV9IRUFERVIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RpcmVjdG9yeUBDQ3J5cHRvQ2FyZEBpb3BAQFVFQUFYRVBFQVVGSUxFX0hFQURFUkAyQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6RGlyZWN0b3J5KHVuc2lnbmVkIGNoYXIsc3RydWN0IGlvcDo6RklMRV9IRUFERVIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RpcmVjdG9yeUBDU21hcnRDYXJkQGlvcEBAVUVBQVhFUEVBVUZJTEVfSEVBREVSQDJAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6RGlydHkoYm9vbCkgX19wdHI2NA0KKz9EaXJ0eUBDU21hcnRDYXJkQGlvcEBAUUVBQVhfTkBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OkRpcnR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RGlydHlAQ1NtYXJ0Q2FyZEBpb3BAQFFFQkFfTlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0FjY2Vzc0NhcmQ6OkRpc3BhdGNoRXJyb3IodW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIHNob3J0KWNvbnN0ICBfX3B0cjY0DQorP0Rpc3BhdGNoRXJyb3JAQ0FjY2Vzc0NhcmRAaW9wQEBNRUJBWEVFR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0NyeXB0b0NhcmQ6OkRpc3BhdGNoRXJyb3IodW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIHNob3J0KWNvbnN0ICBfX3B0cjY0DQorP0Rpc3BhdGNoRXJyb3JAQ0NyeXB0b0NhcmRAaW9wQEBNRUJBWEVFR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6RGlzcGF0Y2hFcnJvcih1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgc2hvcnQpY29uc3QgIF9fcHRyNjQNCis/RGlzcGF0Y2hFcnJvckBDU21hcnRDYXJkQGlvcEBATUVCQVhFRUdAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNBY2Nlc3NDYXJkOjpEb1JlYWRCbG9jayh1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP0RvUmVhZEJsb2NrQENBY2Nlc3NDYXJkQGlvcEBATUVBQVhHUEVBRUVAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNDcnlwdG9DYXJkOjpEb1JlYWRCbG9jayh1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP0RvUmVhZEJsb2NrQENDcnlwdG9DYXJkQGlvcEBATUVBQVhHUEVBRUVAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNBY2Nlc3NDYXJkOjpEb1dyaXRlQmxvY2sodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9Eb1dyaXRlQmxvY2tAQ0FjY2Vzc0NhcmRAaW9wQEBNRUFBWEdQRUJFRUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0NyeXB0b0NhcmQ6OkRvV3JpdGVCbG9jayh1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP0RvV3JpdGVCbG9ja0BDQ3J5cHRvQ2FyZEBpb3BAQE1FQUFYR1BFQkVFQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgc2N1OjpFeGNUZW1wbGF0ZTwyLHVuc2lnbmVkIGxvbmc+OjpFcnJvcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0Vycm9yQD8kRXhjVGVtcGxhdGVAJDAxS0BzY3VAQFVFQkFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpFeGNlcHRpb246OkVycm9yKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RXJyb3JARXhjZXB0aW9uQENTbWFydENhcmRAaW9wQEBVRUJBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0FjY2Vzc0NhcmQ6OkV4ZWN1dGVJbnN0YWxsKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/RXhlY3V0ZUluc3RhbGxAQ0FjY2Vzc0NhcmRAaW9wQEBVRUFBWFBFQkVFQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpFeGVjdXRlSW5zdGFsbCh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP0V4ZWN1dGVJbnN0YWxsQENTbWFydENhcmRAaW9wQEBVRUFBWFBFQkVFQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDQWNjZXNzQ2FyZDo6RXhlY3V0ZU1haW4odm9pZCkgX19wdHI2NA0KKz9FeGVjdXRlTWFpbkBDQWNjZXNzQ2FyZEBpb3BAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpFeGVjdXRlTWFpbih2b2lkKSBfX3B0cjY0DQorP0V4ZWN1dGVNYWluQENTbWFydENhcmRAaW9wQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0FjY2Vzc0NhcmQ6OkV4dGVybmFsQXV0aChlbnVtIGlvcDo6S2V5VHlwZSx1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RXh0ZXJuYWxBdXRoQENBY2Nlc3NDYXJkQGlvcEBAVUVBQVhXNEtleVR5cGVAMkBFRVBFQkVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNDcnlwdG9DYXJkOjpFeHRlcm5hbEF1dGgoZW51bSBpb3A6OktleVR5cGUsdW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0V4dGVybmFsQXV0aEBDQ3J5cHRvQ2FyZEBpb3BAQFVFQUFYVzRLZXlUeXBlQDJARUVQRUJFQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpFeHRlcm5hbEF1dGgoZW51bSBpb3A6OktleVR5cGUsdW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0V4dGVybmFsQXV0aEBDU21hcnRDYXJkQGlvcEBAVUVBQVhXNEtleVR5cGVAMkBFRVBFQkVAWg0KKzsgcHVibGljOiBlbnVtIHNjdTo6RXhjZXB0aW9uOjpGYWNpbGl0eUNvZGUgIF9fY2RlY2wgc2N1OjpFeGNlcHRpb246OkZhY2lsaXR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RmFjaWxpdHlARXhjZXB0aW9uQHNjdUBAUUVCQT9BVzRGYWNpbGl0eUNvZGVAMTJAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6RmlyZUV2ZW50cyhpbnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9GaXJlRXZlbnRzQENTbWFydENhcmRAaW9wQEBRRUFBWEhLUEVBRUBaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OkZvcm1hdFBhdGgoY2hhciAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Rm9ybWF0UGF0aEBDU21hcnRDYXJkQGlvcEBASUVBQUVQRUFEUEVCREBaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgaW9wOjpDUHVibGljS2V5QmxvYiAgX19jZGVjbCBpb3A6OkNDcnlwdG9DYXJkOjpHZW5lcmF0ZUtleVBhaXIodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgY2hhcixlbnVtIGlvcDo6S2V5VHlwZSkgX19wdHI2NA0KKz9HZW5lcmF0ZUtleVBhaXJAQ0NyeXB0b0NhcmRAaW9wQEBVRUFBP0FWQ1B1YmxpY0tleUJsb2JAMkBQRUJFR0VXNEtleVR5cGVAMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIGlvcDo6Q1B1YmxpY0tleUJsb2IgIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpHZW5lcmF0ZUtleVBhaXIodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgY2hhcixlbnVtIGlvcDo6S2V5VHlwZSkgX19wdHI2NA0KKz9HZW5lcmF0ZUtleVBhaXJAQ1NtYXJ0Q2FyZEBpb3BAQFVFQUE/QVZDUHVibGljS2V5QmxvYkAyQFBFQkVHRVc0S2V5VHlwZUAyQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0NyeXB0b0NhcmQ6OkdldEFDTCh1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRBQ0xAQ0NyeXB0b0NhcmRAaW9wQEBVRUFBWFBFQUVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OkdldEFDTCh1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRBQ0xAQ1NtYXJ0Q2FyZEBpb3BAQFVFQUFYUEVBRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0FjY2Vzc0NhcmQ6OkdldENoYWxsZW5nZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldENoYWxsZW5nZUBDQWNjZXNzQ2FyZEBpb3BAQFVFQUFYS1BFQUVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNDcnlwdG9DYXJkOjpHZXRDaGFsbGVuZ2UodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDaGFsbGVuZ2VAQ0NyeXB0b0NhcmRAaW9wQEBVRUFBWEtQRUFFQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpHZXRDaGFsbGVuZ2UodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDaGFsbGVuZ2VAQ1NtYXJ0Q2FyZEBpb3BAQFVFQUFYS1BFQUVAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpHZXRDdXJyZW50RGlyKGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEN1cnJlbnREaXJAQ1NtYXJ0Q2FyZEBpb3BAQFFFQUFYUEVBREBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OkdldEN1cnJlbnRGaWxlKGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEN1cnJlbnRGaWxlQENTbWFydENhcmRAaW9wQEBRRUFBWFBFQURAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OkdldFJlc3BvbnNlKHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRSZXNwb25zZUBDU21hcnRDYXJkQGlvcEBAVUVBQVhFRVBFQUVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNBY2Nlc3NDYXJkOjpHZXRTZXJpYWwodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0U2VyaWFsQENBY2Nlc3NDYXJkQGlvcEBAVUVBQVhQRUFFQUVBX0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNDcnlwdG9DYXJkOjpHZXRTZXJpYWwodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0U2VyaWFsQENDcnlwdG9DYXJkQGlvcEBAVUVBQVhQRUFFQUVBX0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OkdldFNlcmlhbCh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRTZXJpYWxAQ1NtYXJ0Q2FyZEBpb3BAQFVFQUFYUEVBRUFFQV9LQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBpb3A6OkZpbGVQYXRoQ29tcG9uZW50OjpHZXRTaG9ydElEKHZvaWQpIF9fcHRyNjQNCis/R2V0U2hvcnRJREBGaWxlUGF0aENvbXBvbmVudEBpb3BAQFFFQUFHWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6R2V0U3RhdGUodW5zaWduZWQgbG9uZyAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0U3RhdGVAQ1NtYXJ0Q2FyZEBpb3BAQFFFQUFYQUVBSzBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fY2RlY2wgaW9wOjpGaWxlUGF0aENvbXBvbmVudDo6R2V0U3RyaW5nSUQodm9pZCkgX19wdHI2NA0KKz9HZXRTdHJpbmdJREBGaWxlUGF0aENvbXBvbmVudEBpb3BAQFFFQUE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX2NkZWNsIGlvcDo6RmlsZVBhdGg6OkdldFN0cmluZ1BhdGgodm9pZCkgX19wdHI2NA0KKz9HZXRTdHJpbmdQYXRoQEZpbGVQYXRoQGlvcEBAUUVBQT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBYWg0KKzsgcHVibGljOiBjbGFzcyBpb3A6OkZpbGVQYXRoICBfX2NkZWNsIGlvcDo6RmlsZVBhdGg6OkdyZWF0ZXN0Q29tbW9uUHJlZml4KGNsYXNzIGlvcDo6RmlsZVBhdGggJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dyZWF0ZXN0Q29tbW9uUHJlZml4QEZpbGVQYXRoQGlvcEBAUUVBQT9BVjEyQEFFQVYxMkBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpIYXNQcm9wZXJ0eSh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9IYXNQcm9wZXJ0eUBDU21hcnRDYXJkQGlvcEBAUUVBQV9OR0BaDQorOyBwdWJsaWM6IGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQgIF9fY2RlY2wgaW9wOjpGaWxlUGF0aDo6SGVhZCh2b2lkKSBfX3B0cjY0DQorP0hlYWRARmlsZVBhdGhAaW9wQEBRRUFBP0FWRmlsZVBhdGhDb21wb25lbnRAMkBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgaW9wOjpDSU9QTG9jazo6SW5jcmVtZW50UmVmQ291bnQodm9pZCkgX19wdHI2NA0KKz9JbmNyZW1lbnRSZWZDb3VudEBDSU9QTG9ja0Bpb3BAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGlvcDo6Q0lPUExvY2s6OkluaXQoY2xhc3MgaW9wOjpDU21hcnRDYXJkICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0QENJT1BMb2NrQGlvcEBAUUVBQVhQRUFWQ1NtYXJ0Q2FyZEAyQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgaW9wOjpDSU9QOjpJbml0SU9QU2VjdXJpdHlBdHRycyhjbGFzcyBDU2VjdXJpdHlBdHRyaWJ1dGVzICogX19wdHI2NCkNCis/SW5pdElPUFNlY3VyaXR5QXR0cnNAQ0lPUEBpb3BAQFNBWFBFQVZDU2VjdXJpdHlBdHRyaWJ1dGVzQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpFeGNlcHRpb246Oklucyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0luc0BFeGNlcHRpb25AQ1NtYXJ0Q2FyZEBpb3BAQFFFQkFFWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDQWNjZXNzQ2FyZDo6SW50ZXJuYWxBdXRoKGVudW0gaW9wOjpLZXlUeXBlLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9JbnRlcm5hbEF1dGhAQ0FjY2Vzc0NhcmRAaW9wQEBVRUFBWFc0S2V5VHlwZUAyQEVFUEVCRVBFQUVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNDcnlwdG9DYXJkOjpJbnRlcm5hbEF1dGgoZW51bSBpb3A6OktleVR5cGUsdW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ludGVybmFsQXV0aEBDQ3J5cHRvQ2FyZEBpb3BAQFVFQUFYVzRLZXlUeXBlQDJARUVQRUJFUEVBRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6SW50ZXJuYWxBdXRoKGVudW0gaW9wOjpLZXlUeXBlLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9JbnRlcm5hbEF1dGhAQ1NtYXJ0Q2FyZEBpb3BAQFVFQUFYVzRLZXlUeXBlQDJARUVQRUJFUEVBRUBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBpb3A6OkZpbGVQYXRoOjpJc0VtcHR5KHZvaWQpIF9fcHRyNjQNCis/SXNFbXB0eUBGaWxlUGF0aEBpb3BAQFFFQUFfTlhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgaW9wOjpDSU9QOjpMaXN0S25vd25DYXJkcyhjaGFyICogX19wdHI2NCxpbnQgJiBfX3B0cjY0KQ0KKz9MaXN0S25vd25DYXJkc0BDSU9QQGlvcEBAU0FYUEVBREFFQUhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgaW9wOjpDSU9QOjpMaXN0UmVhZGVycyhjaGFyICogX19wdHI2NCxpbnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0xpc3RSZWFkZXJzQENJT1BAaW9wQEBRRUFBWFBFQURBRUFIQFoNCis7IHB1YmxpYzogY2xhc3MgaW9wOjpDSU9QTG9jayAqIF9fcHRyNjQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OkxvY2sodm9pZCkgX19wdHI2NA0KKz9Mb2NrQENTbWFydENhcmRAaW9wQEBRRUFBUEVBVkNJT1BMb2NrQDJAWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDQWNjZXNzQ2FyZDo6TG9nb3V0QWxsKHZvaWQpIF9fcHRyNjQNCis/TG9nb3V0QWxsQENBY2Nlc3NDYXJkQGlvcEBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNDcnlwdG9DYXJkOjpMb2dvdXRBbGwodm9pZCkgX19wdHI2NA0KKz9Mb2dvdXRBbGxAQ0NyeXB0b0NhcmRAaW9wQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6TG9nb3V0QWxsKHZvaWQpIF9fcHRyNjQNCis/TG9nb3V0QWxsQENTbWFydENhcmRAaW9wQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgaW9wOjpDSU9QTG9jazo6TXV0ZXhIYW5kbGUodm9pZCkgX19wdHI2NA0KKz9NdXRleEhhbmRsZUBDSU9QTG9ja0Bpb3BAQFFFQUFQRUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIGlvcDo6RmlsZVBhdGg6Ok51bUNvbXBvbmVudHModm9pZCkgX19wdHI2NA0KKz9OdW1Db21wb25lbnRzQEZpbGVQYXRoQGlvcEBAUUVBQUVYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6UHJvY2Vzc1JldHVyblN0YXR1cyh1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/UHJvY2Vzc1JldHVyblN0YXR1c0BDU21hcnRDYXJkQGlvcEBAQUVBQVhFRUdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBzY3U6OkV4Y1RlbXBsYXRlPDIsdW5zaWduZWQgbG9uZz46OlJhaXNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UmFpc2VAPyRFeGNUZW1wbGF0ZUAkMDFLQHNjdUBAVUVCQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OkV4Y2VwdGlvbjo6UmFpc2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9SYWlzZUBFeGNlcHRpb25AQ1NtYXJ0Q2FyZEBpb3BAQFVFQkFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgc2N1OjpPc0V4Y2VwdGlvbjo6UmFpc2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9SYWlzZUBPc0V4Y2VwdGlvbkBzY3VAQFVFQkFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6UmVDb25uZWN0KHZvaWQpIF9fcHRyNjQNCis/UmVDb25uZWN0QENTbWFydENhcmRAaW9wQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6UmVhZEJpbmFyeSh1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWFkQmluYXJ5QENTbWFydENhcmRAaW9wQEBVRUFBWEdHUEVBRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0FjY2Vzc0NhcmQ6OlJlYWRQdWJsaWNLZXkoY2xhc3MgaW9wOjpDUHVibGljS2V5QmxvYiAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9SZWFkUHVibGljS2V5QENBY2Nlc3NDYXJkQGlvcEBAVUVBQVhQRUFWQ1B1YmxpY0tleUJsb2JAMkBFQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDQ3J5cHRvQ2FyZDo6UmVhZFB1YmxpY0tleShjbGFzcyBpb3A6OkNQdWJsaWNLZXlCbG9iICogX19wdHI2NCx1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP1JlYWRQdWJsaWNLZXlAQ0NyeXB0b0NhcmRAaW9wQEBVRUFBWFBFQVZDUHVibGljS2V5QmxvYkAyQEVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OlJlYWRQdWJsaWNLZXkoY2xhc3MgaW9wOjpDUHVibGljS2V5QmxvYiAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9SZWFkUHVibGljS2V5QENTbWFydENhcmRAaW9wQEBVRUFBWFBFQVZDUHVibGljS2V5QmxvYkAyQEVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNBY2Nlc3NDYXJkOjpSZWFkUmVjb3JkKHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlYWRSZWNvcmRAQ0FjY2Vzc0NhcmRAaW9wQEBVRUFBWEVFRVBFQUVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OlJlYWRSZWNvcmQodW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVhZFJlY29yZEBDU21hcnRDYXJkQGlvcEBAVUVBQVhFRUVQRUFFQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIGlvcDo6Q0lPUExvY2s6OlJlZkNvdW50KHZvaWQpIF9fcHRyNjQNCis/UmVmQ291bnRAQ0lPUExvY2tAaW9wQEBRRUFBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgaW9wOjpDSU9QOjpSZWdpc3RlckNhcmQoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LGVudW0gaW9wOjpjYXJkVHlwZSkNCis/UmVnaXN0ZXJDYXJkQENJT1BAaW9wQEBTQVhQRUJEUEVCRUUxRTFXNGNhcmRUeXBlQDJAQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBpb3A6OkNJT1A6OlJlZ2lzdGVyRGVmYXVsdENhcmRzKHZvaWQpDQorP1JlZ2lzdGVyRGVmYXVsdENhcmRzQENJT1BAaW9wQEBTQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpSZWdpc3RlckV2ZW50KHZvaWQgKF9fY2RlY2wqKSh2b2lkICogX19wdHI2NCxpbnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICogX19wdHI2NCksdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVnaXN0ZXJFdmVudEBDU21hcnRDYXJkQGlvcEBAUUVBQUtQNkFYUEVBWEhLUEVBRUBaMEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OlJlcXVpcmVTZWxlY3Qodm9pZCkgX19wdHI2NA0KKz9SZXF1aXJlU2VsZWN0QENTbWFydENhcmRAaW9wQEBJRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OlJlc2V0Q2FyZCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0Q2FyZEBDU21hcnRDYXJkQGlvcEBAUUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNBY2Nlc3NDYXJkOjpSZXNldEluc3RhbmNlKHZvaWQpIF9fcHRyNjQNCis/UmVzZXRJbnN0YW5jZUBDQWNjZXNzQ2FyZEBpb3BAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpSZXNldEluc3RhbmNlKHZvaWQpIF9fcHRyNjQNCis/UmVzZXRJbnN0YW5jZUBDU21hcnRDYXJkQGlvcEBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNBY2Nlc3NDYXJkOjpSZXNldFByb2dyYW0odm9pZCkgX19wdHI2NA0KKz9SZXNldFByb2dyYW1AQ0FjY2Vzc0NhcmRAaW9wQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6UmVzZXRQcm9ncmFtKHZvaWQpIF9fcHRyNjQNCis/UmVzZXRQcm9ncmFtQENTbWFydENhcmRAaW9wQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OlJlc2V0U2VsZWN0KHZvaWQpIF9fcHRyNjQNCis/UmVzZXRTZWxlY3RAQ1NtYXJ0Q2FyZEBpb3BAQFFFQUFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6UmVzcG9uc2VMZW5ndGhBdmFpbGFibGUodW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9SZXNwb25zZUxlbmd0aEF2YWlsYWJsZUBDU21hcnRDYXJkQGlvcEBASUVBQVhFQFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgY2hhciBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6UmVzcG9uc2VMZW5ndGhBdmFpbGFibGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9SZXNwb25zZUxlbmd0aEF2YWlsYWJsZUBDU21hcnRDYXJkQGlvcEBASUVCQUVYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgaW9wOjpGaWxlUGF0aCAgX19jZGVjbCBpb3A6OkZpbGVQYXRoOjpSb290KHZvaWQpDQorP1Jvb3RARmlsZVBhdGhAaW9wQEBTQT9BVjEyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0FjY2Vzc0NhcmQ6OlNlbGVjdCh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZWxlY3RAQ0FjY2Vzc0NhcmRAaW9wQEBNRUFBWEdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNBY2Nlc3NDYXJkOjpTZWxlY3QoY2hhciBjb25zdCAqIF9fcHRyNjQsc3RydWN0IGlvcDo6RklMRV9IRUFERVIgKiBfX3B0cjY0LGJvb2wpIF9fcHRyNjQNCis/U2VsZWN0QENBY2Nlc3NDYXJkQGlvcEBAVUVBQVhQRUJEUEVBVUZJTEVfSEVBREVSQDJAX05AWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNDcnlwdG9DYXJkOjpTZWxlY3QodW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2VsZWN0QENDcnlwdG9DYXJkQGlvcEBATUVBQVhHQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDQ3J5cHRvQ2FyZDo6U2VsZWN0KGNoYXIgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBpb3A6OkZJTEVfSEVBREVSICogX19wdHI2NCxib29sKSBfX3B0cjY0DQorP1NlbGVjdEBDQ3J5cHRvQ2FyZEBpb3BAQFVFQUFYUEVCRFBFQVVGSUxFX0hFQURFUkAyQF9OQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpTZWxlY3QoY2hhciBjb25zdCAqIF9fcHRyNjQsc3RydWN0IGlvcDo6RklMRV9IRUFERVIgKiBfX3B0cjY0LGJvb2wpIF9fcHRyNjQNCis/U2VsZWN0QENTbWFydENhcmRAaW9wQEBVRUFBWFBFQkRQRUFVRklMRV9IRUFERVJAMkBfTkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0FjY2Vzc0NhcmQ6OlNlbGVjdENhcmRsZXQodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9TZWxlY3RDYXJkbGV0QENBY2Nlc3NDYXJkQGlvcEBAVUVBQVhQRUJFRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6U2VsZWN0Q2FyZGxldCh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP1NlbGVjdENhcmRsZXRAQ1NtYXJ0Q2FyZEBpb3BAQFVFQUFYUEVCRUVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNBY2Nlc3NDYXJkOjpTZWxlY3RMb2FkZXIodm9pZCkgX19wdHI2NA0KKz9TZWxlY3RMb2FkZXJAQ0FjY2Vzc0NhcmRAaW9wQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6U2VsZWN0TG9hZGVyKHZvaWQpIF9fcHRyNjQNCis/U2VsZWN0TG9hZGVyQENTbWFydENhcmRAaW9wQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0FjY2Vzc0NhcmQ6OlNlbGVjdFBhcmVudCh2b2lkKSBfX3B0cjY0DQorP1NlbGVjdFBhcmVudEBDQWNjZXNzQ2FyZEBpb3BAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDQ3J5cHRvQ2FyZDo6U2VsZWN0UGFyZW50KHZvaWQpIF9fcHRyNjQNCis/U2VsZWN0UGFyZW50QENDcnlwdG9DYXJkQGlvcEBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OlNlbGVjdFBhcmVudCh2b2lkKSBfX3B0cjY0DQorP1NlbGVjdFBhcmVudEBDU21hcnRDYXJkQGlvcEBAVUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpTZW5kQ2FyZEFQRFUodW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VuZENhcmRBUERVQENTbWFydENhcmRAaW9wQEBRRUFBWEVFRUVFUEVCRUVQRUFFQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDQWNjZXNzQ2FyZDo6U2V0Q3VycmVudEFzTG9hZGVyKHZvaWQpIF9fcHRyNjQNCis/U2V0Q3VycmVudEFzTG9hZGVyQENBY2Nlc3NDYXJkQGlvcEBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OlNldEN1cnJlbnRBc0xvYWRlcih2b2lkKSBfX3B0cjY0DQorP1NldEN1cnJlbnRBc0xvYWRlckBDU21hcnRDYXJkQGlvcEBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNBY2Nlc3NDYXJkOjpTZXREZWZhdWx0QXNMb2FkZXIodm9pZCkgX19wdHI2NA0KKz9TZXREZWZhdWx0QXNMb2FkZXJAQ0FjY2Vzc0NhcmRAaW9wQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6U2V0RGVmYXVsdEFzTG9hZGVyKHZvaWQpIF9fcHRyNjQNCis/U2V0RGVmYXVsdEFzTG9hZGVyQENTbWFydENhcmRAaW9wQEBVRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTxjaGFyPjo6U2V0dXBGcm9tQnVmZmVyKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/U2V0dXBGcm9tQnVmZmVyQD8kU2VjdXJlQXJyYXlAREBzY3VAQEFFQUFYUEVCRF9LQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBzY3U6OlNlY3VyZUFycmF5PHVuc2lnbmVkIGNoYXI+OjpTZXR1cEZyb21CdWZmZXIodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9TZXR1cEZyb21CdWZmZXJAPyRTZWN1cmVBcnJheUBFQHNjdUBAQUVBQVhQRUJFX0tAWg0KKzsgcHVibGljOiBjbGFzcyBpb3A6OkNTbWFydENhcmQgKiBfX3B0cjY0IF9fY2RlY2wgaW9wOjpDSU9QTG9jazo6U21hcnRDYXJkKHZvaWQpIF9fcHRyNjQNCis/U21hcnRDYXJkQENJT1BMb2NrQGlvcEBAUUVBQVBFQVZDU21hcnRDYXJkQDJAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OkV4Y2VwdGlvbjo6U3RhdHVzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U3RhdHVzQEV4Y2VwdGlvbkBDU21hcnRDYXJkQGlvcEBAUUVCQUdYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGJvb2wgX19jZGVjbCBpb3A6OkNBY2Nlc3NDYXJkOjpTdXBwb3J0TG9nb3V0KHZvaWQpIF9fcHRyNjQNCis/U3VwcG9ydExvZ291dEBDQWNjZXNzQ2FyZEBpb3BAQE1FQUFfTlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgYm9vbCBfX2NkZWNsIGlvcDo6Q0NyeXB0b0NhcmQ6OlN1cHBvcnRMb2dvdXQodm9pZCkgX19wdHI2NA0KKz9TdXBwb3J0TG9nb3V0QENDcnlwdG9DYXJkQGlvcEBATUVBQV9OWFoNCis7IHB1YmxpYzogY2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCAgX19jZGVjbCBpb3A6OkZpbGVQYXRoOjpUYWlsKHZvaWQpIF9fcHRyNjQNCis/VGFpbEBGaWxlUGF0aEBpb3BAQFFFQUE/QVZGaWxlUGF0aENvbXBvbmVudEAyQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0FjY2Vzc0NhcmQ6OlVuYmxvY2tDSFYodW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9VbmJsb2NrQ0hWQENBY2Nlc3NDYXJkQGlvcEBAVUVBQVhFUEVCRTBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNDcnlwdG9DYXJkOjpVbmJsb2NrQ0hWKHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VW5ibG9ja0NIVkBDQ3J5cHRvQ2FyZEBpb3BAQFVFQUFYRVBFQkUwQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpVbmJsb2NrQ0hWKHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VW5ibG9ja0NIVkBDU21hcnRDYXJkQGlvcEBAVUVBQVhFUEVCRTBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpVbnJlZ2lzdGVyRXZlbnQodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9VbnJlZ2lzdGVyRXZlbnRAQ1NtYXJ0Q2FyZEBpb3BAQFFFQUFfTktAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNBY2Nlc3NDYXJkOjpVcGRhdGVSZWNvcmQodW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VXBkYXRlUmVjb3JkQENBY2Nlc3NDYXJkQGlvcEBAVUVBQVhFRUVQRUFFQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpVcGRhdGVSZWNvcmQodW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VXBkYXRlUmVjb3JkQENTbWFydENhcmRAaW9wQEBVRUFBWEVFRVBFQUVAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIGlvcDo6Q0FjY2Vzc0NhcmQ6OlZhbGlkQ2xhc3NCeXRlKHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/VmFsaWRDbGFzc0J5dGVAQ0FjY2Vzc0NhcmRAaW9wQEBBRUFBX05FQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDQWNjZXNzQ2FyZDo6VmFsaWRhdGVQcm9ncmFtKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/VmFsaWRhdGVQcm9ncmFtQENBY2Nlc3NDYXJkQGlvcEBAVUVBQVhQRUJFRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6VmFsaWRhdGVQcm9ncmFtKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/VmFsaWRhdGVQcm9ncmFtQENTbWFydENhcmRAaW9wQEBVRUFBWFBFQkVFQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDQWNjZXNzQ2FyZDo6VmVyaWZ5Q0hWKHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VmVyaWZ5Q0hWQENBY2Nlc3NDYXJkQGlvcEBAVUVBQVhFUEVCRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0NyeXB0b0NhcmQ6OlZlcmlmeUNIVih1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1ZlcmlmeUNIVkBDQ3J5cHRvQ2FyZEBpb3BAQFVFQUFYRVBFQkVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OlZlcmlmeUNIVih1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1ZlcmlmeUNIVkBDU21hcnRDYXJkQGlvcEBAVUVBQVhFUEVCRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0FjY2Vzc0NhcmQ6OlZlcmlmeUtleSh1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VmVyaWZ5S2V5QENBY2Nlc3NDYXJkQGlvcEBAVUVBQVhFRVBFQkVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNDcnlwdG9DYXJkOjpWZXJpZnlLZXkodW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1ZlcmlmeUtleUBDQ3J5cHRvQ2FyZEBpb3BAQFVFQUFYRUVQRUJFQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpWZXJpZnlLZXkodW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1ZlcmlmeUtleUBDU21hcnRDYXJkQGlvcEBAVUVBQVhFRVBFQkVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNBY2Nlc3NDYXJkOjpWZXJpZnlUcmFuc3BvcnRLZXkodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VmVyaWZ5VHJhbnNwb3J0S2V5QENBY2Nlc3NDYXJkQGlvcEBAVUVBQVhQRUJFQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDQ3J5cHRvQ2FyZDo6VmVyaWZ5VHJhbnNwb3J0S2V5KHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1ZlcmlmeVRyYW5zcG9ydEtleUBDQ3J5cHRvQ2FyZEBpb3BAQFVFQUFYUEVCRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6VmVyaWZ5VHJhbnNwb3J0S2V5KHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1ZlcmlmeVRyYW5zcG9ydEtleUBDU21hcnRDYXJkQGlvcEBAVUVBQVhQRUJFQFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBpb3A6OkNJT1A6OldhaXRGb3JTQ01hbmFnZXIodm9pZCkNCis/V2FpdEZvclNDTWFuYWdlckBDSU9QQGlvcEBAU0FfTlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6V3JpdGVCaW5hcnkodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/V3JpdGVCaW5hcnlAQ1NtYXJ0Q2FyZEBpb3BAQFVFQUFYR0dQRUJFQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OldyaXRlQmxvY2sodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9Xcml0ZUJsb2NrQENTbWFydENhcmRAaW9wQEBBRUFBWEdQRUJFRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIGlvcDo6Q0FjY2Vzc0NhcmQ6OldyaXRlUHJpdmF0ZUtleShjbGFzcyBpb3A6OkNQcml2YXRlS2V5QmxvYix1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP1dyaXRlUHJpdmF0ZUtleUBDQWNjZXNzQ2FyZEBpb3BAQFVFQUFYVkNQcml2YXRlS2V5QmxvYkAyQEVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNDcnlwdG9DYXJkOjpXcml0ZVByaXZhdGVLZXkoY2xhc3MgaW9wOjpDUHJpdmF0ZUtleUJsb2IsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9Xcml0ZVByaXZhdGVLZXlAQ0NyeXB0b0NhcmRAaW9wQEBVRUFBWFZDUHJpdmF0ZUtleUJsb2JAMkBFQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpXcml0ZVByaXZhdGVLZXkoY2xhc3MgaW9wOjpDUHJpdmF0ZUtleUJsb2IsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9Xcml0ZVByaXZhdGVLZXlAQ1NtYXJ0Q2FyZEBpb3BAQFVFQUFYVkNQcml2YXRlS2V5QmxvYkAyQEVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNBY2Nlc3NDYXJkOjpXcml0ZVB1YmxpY0tleShjbGFzcyBpb3A6OkNQdWJsaWNLZXlCbG9iLHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/V3JpdGVQdWJsaWNLZXlAQ0FjY2Vzc0NhcmRAaW9wQEBVRUFBWFZDUHVibGljS2V5QmxvYkAyQEVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNDcnlwdG9DYXJkOjpXcml0ZVB1YmxpY0tleShjbGFzcyBpb3A6OkNQdWJsaWNLZXlCbG9iLHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/V3JpdGVQdWJsaWNLZXlAQ0NyeXB0b0NhcmRAaW9wQEBVRUFBWFZDUHVibGljS2V5QmxvYkAyQEVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OldyaXRlUHVibGljS2V5KGNsYXNzIGlvcDo6Q1B1YmxpY0tleUJsb2IsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9Xcml0ZVB1YmxpY0tleUBDU21hcnRDYXJkQGlvcEBAVUVBQVhWQ1B1YmxpY0tleUJsb2JAMkBFQFoNCis7IHByb3RlY3RlZDogc3RydWN0IHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46Ol9Ob2RlICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46Ol9CdXlub2RlKHN0cnVjdCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjpfTm9kZSAqIF9fcHRyNjQsc3RydWN0IHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46Ol9Ob2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9fQnV5bm9kZUA/JGxpc3RAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAVj8kYWxsb2NhdG9yQFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEBzdGRAQEBzdGRAQElFQUFQRUFVX05vZGVAMTJAUEVBVTMxMkAwQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPjo6X0Rlc3Ryb3koc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCAqIF9fcHRyNjQsc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/X0Rlc3Ryb3lAPyR2ZWN0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQFY/JGFsbG9jYXRvckBQRUFVRXZlbnRJbmZvQGlvcEBAQHN0ZEBAQHN0ZEBASUVBQVhQRUFQRUFVRXZlbnRJbmZvQGlvcEBAMEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBzdGQ6OnZlY3RvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQ+ID46Ol9FcShjbGFzcyBzdGQ6OnZlY3RvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQ+ID4gY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP19FcUA/JHZlY3RvckBQRUFVRXZlbnRJbmZvQGlvcEBAVj8kYWxsb2NhdG9yQFBFQVVFdmVudEluZm9AaW9wQEBAc3RkQEBAc3RkQEBRRUJBX05BRUJWMTJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46Ol9GcmVlbm9kZShzdHJ1Y3Qgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6X05vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP19GcmVlbm9kZUA/JGxpc3RAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAVj8kYWxsb2NhdG9yQFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEBzdGRAQEBzdGRAQElFQUFYUEVBVV9Ob2RlQDEyQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBzdGQ6OnZlY3RvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQ+ID46Ol9MdChjbGFzcyBzdGQ6OnZlY3RvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQ+ID4gY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP19MdEA/JHZlY3RvckBQRUFVRXZlbnRJbmZvQGlvcEBAVj8kYWxsb2NhdG9yQFBFQVVFdmVudEluZm9AaW9wQEBAc3RkQEBAc3RkQEBRRUJBX05BRUJWMTJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46Ol9TcGxpY2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6aXRlcmF0b3IsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6aXRlcmF0b3IsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6aXRlcmF0b3IpIF9fcHRyNjQNCis/X1NwbGljZUA/JGxpc3RAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAVj8kYWxsb2NhdG9yQFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEBzdGRAQEBzdGRAQElFQUFYVml0ZXJhdG9yQDEyQEFFQVYxMkAwMEBaDQorOyBwcm90ZWN0ZWQ6IHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+OjpfVWNvcHkoc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/X1Vjb3B5QD8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQElFQUFQRUFQRUFVRXZlbnRJbmZvQGlvcEBAUEVCUUVBVTM0QDBQRUFQRUFVMzRAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPjo6X1VmaWxsKHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/X1VmaWxsQD8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQElFQUFYUEVBUEVBVUV2ZW50SW5mb0Bpb3BAQF9LQUVCUUVBVTM0QEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjpfWHJhbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP19YcmFuQD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBASUVCQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+OjpfWHJhbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP19YcmFuQD8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQElFQkFYWFoNCis7IHB1YmxpYzogY2xhc3Mgc2N1OjpTZWN1cmVBcnJheTxjaGFyPiAmIF9fcHRyNjQgX19jZGVjbCBzY3U6OlNlY3VyZUFycmF5PGNoYXI+OjphcHBlbmQoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9hcHBlbmRAPyRTZWN1cmVBcnJheUBEQHNjdUBAUUVBQUFFQVYxMkBQRUJEX0tAWg0KKzsgcHVibGljOiBjbGFzcyBzY3U6OlNlY3VyZUFycmF5PGNoYXI+ICYgX19wdHI2NCBfX2NkZWNsIHNjdTo6U2VjdXJlQXJyYXk8Y2hhcj46OmFwcGVuZCh1bnNpZ25lZCBfX2ludDY0LGNoYXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP2FwcGVuZEA/JFNlY3VyZUFycmF5QERAc2N1QEBRRUFBQUVBVjEyQF9LQUVCREBaDQorOyBwdWJsaWM6IGNsYXNzIHNjdTo6U2VjdXJlQXJyYXk8dW5zaWduZWQgY2hhcj4gJiBfX3B0cjY0IF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTx1bnNpZ25lZCBjaGFyPjo6YXBwZW5kKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/YXBwZW5kQD8kU2VjdXJlQXJyYXlARUBzY3VAQFFFQUFBRUFWMTJAUEVCRV9LQFoNCis7IHB1YmxpYzogY2xhc3Mgc2N1OjpTZWN1cmVBcnJheTx1bnNpZ25lZCBjaGFyPiAmIF9fcHRyNjQgX19jZGVjbCBzY3U6OlNlY3VyZUFycmF5PHVuc2lnbmVkIGNoYXI+OjphcHBlbmQodW5zaWduZWQgX19pbnQ2NCx1bnNpZ25lZCBjaGFyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9hcHBlbmRAPyRTZWN1cmVBcnJheUBFQHNjdUBAUUVBQUFFQVYxMkBfS0FFQkVAWg0KKzsgcHVibGljOiBjbGFzcyBzY3U6OlNlY3VyZUFycmF5PGNoYXI+ICYgX19wdHI2NCBfX2NkZWNsIHNjdTo6U2VjdXJlQXJyYXk8Y2hhcj46OmFwcGVuZF9zdHJpbmcodW5zaWduZWQgX19pbnQ2NCxjaGFyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9hcHBlbmRfc3RyaW5nQD8kU2VjdXJlQXJyYXlAREBzY3VAQFFFQUFBRUFWMTJAX0tBRUJEQFoNCis7IHB1YmxpYzogY2xhc3Mgc2N1OjpTZWN1cmVBcnJheTx1bnNpZ25lZCBjaGFyPiAmIF9fcHRyNjQgX19jZGVjbCBzY3U6OlNlY3VyZUFycmF5PHVuc2lnbmVkIGNoYXI+OjphcHBlbmRfc3RyaW5nKHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgY2hhciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/YXBwZW5kX3N0cmluZ0A/JFNlY3VyZUFycmF5QEVAc2N1QEBRRUFBQUVBVjEyQF9LQUVCRUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+Ojphc3NpZ24oY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6Y29uc3RfaXRlcmF0b3IsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6Y29uc3RfaXRlcmF0b3IpIF9fcHRyNjQNCis/YXNzaWduQD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQVhWY29uc3RfaXRlcmF0b3JAMTJAMEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+Ojphc3NpZ24odW5zaWduZWQgX19pbnQ2NCxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9hc3NpZ25APyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUFBWF9LQUVCVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPjo6YXNzaWduKHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP2Fzc2lnbkA/JHZlY3RvckBQRUFVRXZlbnRJbmZvQGlvcEBAVj8kYWxsb2NhdG9yQFBFQVVFdmVudEluZm9AaW9wQEBAc3RkQEBAc3RkQEBRRUFBWFBFQlFFQVVFdmVudEluZm9AaW9wQEAwQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPjo6YXNzaWduKHVuc2lnbmVkIF9faW50NjQsc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/YXNzaWduQD8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQFFFQUFYX0tBRUJRRUFVRXZlbnRJbmZvQGlvcEBAQFoNCis7IHB1YmxpYzogc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OnZlY3RvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQ+ID46OmF0KHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/YXRAPyR2ZWN0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQFY/JGFsbG9jYXRvckBQRUFVRXZlbnRJbmZvQGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQUFFQVBFQVVFdmVudEluZm9AaW9wQEBfS0BaDQorOyBwdWJsaWM6IHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+OjphdCh1bnNpZ25lZCBfX2ludDY0KWNvbnN0ICBfX3B0cjY0DQorP2F0QD8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQFFFQkFBRUJRRUFVRXZlbnRJbmZvQGlvcEBAX0tAWg0KKzsgcHVibGljOiBjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46OmJhY2sodm9pZCkgX19wdHI2NA0KKz9iYWNrQD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQUFFQVZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFhaDQorOyBwdWJsaWM6IGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6YmFjayh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2JhY2tAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUJBQUVCVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAWFoNCis7IHB1YmxpYzogc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OnZlY3RvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQ+ID46OmJhY2sodm9pZCkgX19wdHI2NA0KKz9iYWNrQD8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQFFFQUFBRUFQRUFVRXZlbnRJbmZvQGlvcEBAWFoNCis7IHB1YmxpYzogc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OnZlY3RvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQ+ID46OmJhY2sodm9pZCljb25zdCAgX19wdHI2NA0KKz9iYWNrQD8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQFFFQkFBRUJRRUFVRXZlbnRJbmZvQGlvcEBAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6aXRlcmF0b3IgIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6YmVnaW4odm9pZCkgX19wdHI2NA0KKz9iZWdpbkA/JGxpc3RAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAVj8kYWxsb2NhdG9yQFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEBzdGRAQEBzdGRAQFFFQUE/QVZpdGVyYXRvckAxMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+Ojpjb25zdF9pdGVyYXRvciAgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjpiZWdpbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2JlZ2luQD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVCQT9BVmNvbnN0X2l0ZXJhdG9yQDEyQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+OjpiZWdpbih2b2lkKSBfX3B0cjY0DQorP2JlZ2luQD8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQFFFQUFQRUFQRUFVRXZlbnRJbmZvQGlvcEBAWFoNCis7IHB1YmxpYzogc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6OnZlY3RvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQ+ID46OmJlZ2luKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/YmVnaW5APyR2ZWN0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQFY/JGFsbG9jYXRvckBQRUFVRXZlbnRJbmZvQGlvcEBAQHN0ZEBAQHN0ZEBAUUVCQVBFQlFFQVVFdmVudEluZm9AaW9wQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+OjpjYXBhY2l0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2NhcGFjaXR5QD8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQFFFQkFfS1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjpjbGVhcih2b2lkKSBfX3B0cjY0DQorP2NsZWFyQD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+OjpjbGVhcih2b2lkKSBfX3B0cjY0DQorP2NsZWFyQD8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBzY3U6OlNlY3VyZUFycmF5PGNoYXI+OjpkYXRhKHZvaWQpIF9fcHRyNjQNCis/ZGF0YUA/JFNlY3VyZUFycmF5QERAc2N1QEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTxjaGFyPjo6ZGF0YSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2RhdGFAPyRTZWN1cmVBcnJheUBEQHNjdUBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIHNjdTo6U2VjdXJlQXJyYXk8dW5zaWduZWQgY2hhcj46OmRhdGEodm9pZCkgX19wdHI2NA0KKz9kYXRhQD8kU2VjdXJlQXJyYXlARUBzY3VAQFFFQUFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBzY3U6OlNlY3VyZUFycmF5PHVuc2lnbmVkIGNoYXI+OjpkYXRhKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZGF0YUA/JFNlY3VyZUFycmF5QEVAc2N1QEBRRUJBUEVCRVhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjplbXB0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2VtcHR5QD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVCQV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPjo6ZW1wdHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9lbXB0eUA/JHZlY3RvckBQRUFVRXZlbnRJbmZvQGlvcEBAVj8kYWxsb2NhdG9yQFBFQVVFdmVudEluZm9AaW9wQEBAc3RkQEBAc3RkQEBRRUJBX05YWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjppdGVyYXRvciAgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjplbmQodm9pZCkgX19wdHI2NA0KKz9lbmRAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUFBP0FWaXRlcmF0b3JAMTJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6Y29uc3RfaXRlcmF0b3IgIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6ZW5kKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZW5kQD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVCQT9BVmNvbnN0X2l0ZXJhdG9yQDEyQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+OjplbmQodm9pZCkgX19wdHI2NA0KKz9lbmRAPyR2ZWN0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQFY/JGFsbG9jYXRvckBQRUFVRXZlbnRJbmZvQGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQVBFQVBFQVVFdmVudEluZm9AaW9wQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPjo6ZW5kKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZW5kQD8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQFFFQkFQRUJRRUFVRXZlbnRJbmZvQGlvcEBAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6aXRlcmF0b3IgIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6ZXJhc2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6aXRlcmF0b3IsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6aXRlcmF0b3IpIF9fcHRyNjQNCis/ZXJhc2VAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUFBP0FWaXRlcmF0b3JAMTJAVjMxMkAwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6aXRlcmF0b3IgIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6ZXJhc2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6aXRlcmF0b3IpIF9fcHRyNjQNCis/ZXJhc2VAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUFBP0FWaXRlcmF0b3JAMTJAVjMxMkBAWg0KKzsgcHVibGljOiBzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0ICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPjo6ZXJhc2Uoc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCAqIF9fcHRyNjQsc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/ZXJhc2VAPyR2ZWN0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQFY/JGFsbG9jYXRvckBQRUFVRXZlbnRJbmZvQGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQVBFQVBFQVVFdmVudEluZm9AaW9wQEBQRUFQRUFVMzRAMEBaDQorOyBwdWJsaWM6IHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+OjplcmFzZShzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9lcmFzZUA/JHZlY3RvckBQRUFVRXZlbnRJbmZvQGlvcEBAVj8kYWxsb2NhdG9yQFBFQVVFdmVudEluZm9AaW9wQEBAc3RkQEBAc3RkQEBRRUFBUEVBUEVBVUV2ZW50SW5mb0Bpb3BAQFBFQVBFQVUzNEBAWg0KKzsgcHVibGljOiBjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46OmZyb250KHZvaWQpIF9fcHRyNjQNCis/ZnJvbnRAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUFBQUVBVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAWFoNCis7IHB1YmxpYzogY2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+Ojpmcm9udCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2Zyb250QD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVCQUFFQlZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+Ojpmcm9udCh2b2lkKSBfX3B0cjY0DQorP2Zyb250QD8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQFFFQUFBRUFQRUFVRXZlbnRJbmZvQGlvcEBAWFoNCis7IHB1YmxpYzogc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6OnZlY3RvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQ+ID46OmZyb250KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/ZnJvbnRAPyR2ZWN0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQFY/JGFsbG9jYXRvckBQRUFVRXZlbnRJbmZvQGlvcEBAQHN0ZEBAQHN0ZEBAUUVCQUFFQlFFQVVFdmVudEluZm9AaW9wQEBYWg0KKzsgcHVibGljOiBjbGFzcyBpb3A6OkNTaGFyZWRNYXJrZXIgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjphdXRvX3B0cjxjbGFzcyBpb3A6OkNTaGFyZWRNYXJrZXI+OjpnZXQodm9pZCljb25zdCAgX19wdHI2NA0KKz9nZXRAPyRhdXRvX3B0ckBWQ1NoYXJlZE1hcmtlckBpb3BAQEBzdGRAQFFFQkFQRUFWQ1NoYXJlZE1hcmtlckBpb3BAQFhaDQorOyBwdWJsaWM6IGNsYXNzIGlvcDo6Uk1IYW5nUHJvY0RlYXRoU3luY2hPYmplY3RzICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6YXV0b19wdHI8Y2xhc3MgaW9wOjpSTUhhbmdQcm9jRGVhdGhTeW5jaE9iamVjdHM+OjpnZXQodm9pZCljb25zdCAgX19wdHI2NA0KKz9nZXRAPyRhdXRvX3B0ckBWUk1IYW5nUHJvY0RlYXRoU3luY2hPYmplY3RzQGlvcEBAQHN0ZEBAUUVCQVBFQVZSTUhhbmdQcm9jRGVhdGhTeW5jaE9iamVjdHNAaW9wQEBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpnZXRBVFIodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Z2V0QVRSQENTbWFydENhcmRAaW9wQEBRRUFBWFBFQUVBRUFFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIGlvcDo6Q1NtYXJ0Q2FyZDo6Z2V0Q2FyZEhhbmRsZSh2b2lkKSBfX3B0cjY0DQorP2dldENhcmRIYW5kbGVAQ1NtYXJ0Q2FyZEBpb3BAQFFFQUFfS1haDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgaW9wOjpDU21hcnRDYXJkOjpnZXRDYXJkTmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2dldENhcmROYW1lQENTbWFydENhcmRAaW9wQEBRRUJBUEVCRFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ICBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46OmdldF9hbGxvY2F0b3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9nZXRfYWxsb2NhdG9yQD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVCQT9BVj8kYWxsb2NhdG9yQFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQ+ICBfX2NkZWNsIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPjo6Z2V0X2FsbG9jYXRvcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2dldF9hbGxvY2F0b3JAPyR2ZWN0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQFY/JGFsbG9jYXRvckBQRUFVRXZlbnRJbmZvQGlvcEBAQHN0ZEBAQHN0ZEBAUUVCQT9BVj8kYWxsb2NhdG9yQFBFQVVFdmVudEluZm9AaW9wQEBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjppdGVyYXRvciAgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjppbnNlcnQoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6aXRlcmF0b3IsY2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/aW5zZXJ0QD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQT9BVml0ZXJhdG9yQDEyQFYzMTJAQUVCVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46Omluc2VydChjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjppdGVyYXRvcixjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50IGNvbnN0ICogX19wdHI2NCxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9pbnNlcnRAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUFBWFZpdGVyYXRvckAxMkBQRUJWRmlsZVBhdGhDb21wb25lbnRAaW9wQEAxQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46Omluc2VydChjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjppdGVyYXRvcixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+Ojpjb25zdF9pdGVyYXRvcixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+Ojpjb25zdF9pdGVyYXRvcikgX19wdHI2NA0KKz9pbnNlcnRAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUFBWFZpdGVyYXRvckAxMkBWY29uc3RfaXRlcmF0b3JAMTJAMUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjppbnNlcnQoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6aXRlcmF0b3IsdW5zaWduZWQgX19pbnQ2NCxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9pbnNlcnRAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUFBWFZpdGVyYXRvckAxMkBfS0FFQlZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+OjppbnNlcnQoc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCAqIF9fcHRyNjQsc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/aW5zZXJ0QD8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQFFFQUFQRUFQRUFVRXZlbnRJbmZvQGlvcEBAUEVBUEVBVTM0QEFFQlFFQVUzNEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+OjppbnNlcnQoc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCAqIF9fcHRyNjQsc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/aW5zZXJ0QD8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQFFFQUFYUEVBUEVBVUV2ZW50SW5mb0Bpb3BAQFBFQlFFQVUzNEAxQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPjo6aW5zZXJ0KHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIF9faW50NjQsc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/aW5zZXJ0QD8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQFFFQUFYUEVBUEVBVUV2ZW50SW5mb0Bpb3BAQF9LQUVCUUVBVTM0QEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzY3U6OlNlY3VyZUFycmF5PGNoYXI+OjpsZW5ndGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9sZW5ndGhAPyRTZWN1cmVBcnJheUBEQHNjdUBAUUVCQV9LWFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHNjdTo6U2VjdXJlQXJyYXk8dW5zaWduZWQgY2hhcj46Omxlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2xlbmd0aEA/JFNlY3VyZUFycmF5QEVAc2N1QEBRRUJBX0tYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTxjaGFyPjo6bGVuZ3RoX3N0cmluZyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2xlbmd0aF9zdHJpbmdAPyRTZWN1cmVBcnJheUBEQHNjdUBAUUVCQV9LWFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHNjdTo6U2VjdXJlQXJyYXk8dW5zaWduZWQgY2hhcj46Omxlbmd0aF9zdHJpbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9sZW5ndGhfc3RyaW5nQD8kU2VjdXJlQXJyYXlARUBzY3VAQFFFQkFfS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjptYXhfc2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP21heF9zaXplQD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVCQV9LWFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPjo6bWF4X3NpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9tYXhfc2l6ZUA/JHZlY3RvckBQRUFVRXZlbnRJbmZvQGlvcEBAVj8kYWxsb2NhdG9yQFBFQVVFdmVudEluZm9AaW9wQEBAc3RkQEBAc3RkQEBRRUJBX0tYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6bWVyZ2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/bWVyZ2VAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUFBWEFFQVYxMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6bWVyZ2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPiAmIF9fcHRyNjQsc3RydWN0IHN0ZDo6Z3JlYXRlcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PikgX19wdHI2NA0KKz9tZXJnZUA/JGxpc3RAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAVj8kYWxsb2NhdG9yQFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEBzdGRAQEBzdGRAQFFFQUFYQUVBVjEyQFU/JGdyZWF0ZXJAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQDJAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46OnBvcF9iYWNrKHZvaWQpIF9fcHRyNjQNCis/cG9wX2JhY2tAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6OnZlY3RvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQ+ID46OnBvcF9iYWNrKHZvaWQpIF9fcHRyNjQNCis/cG9wX2JhY2tAPyR2ZWN0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQFY/JGFsbG9jYXRvckBQRUFVRXZlbnRJbmZvQGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6cG9wX2Zyb250KHZvaWQpIF9fcHRyNjQNCis/cG9wX2Zyb250QD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6cHVzaF9iYWNrKGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP3B1c2hfYmFja0A/JGxpc3RAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAVj8kYWxsb2NhdG9yQFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEBzdGRAQEBzdGRAQFFFQUFYQUVCVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPjo6cHVzaF9iYWNrKHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP3B1c2hfYmFja0A/JHZlY3RvckBQRUFVRXZlbnRJbmZvQGlvcEBAVj8kYWxsb2NhdG9yQFBFQVVFdmVudEluZm9AaW9wQEBAc3RkQEBAc3RkQEBRRUFBWEFFQlFFQVVFdmVudEluZm9AaW9wQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6cHVzaF9mcm9udChjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9wdXNoX2Zyb250QD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQVhBRUJWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfYmlkaXJlY3Rpb25hbF9pdGVyYXRvcjxjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjppdGVyYXRvcixjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQgJiBfX3B0cjY0LGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQgKiBfX3B0cjY0LF9faW50NjQ+ICBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46OnJiZWdpbih2b2lkKSBfX3B0cjY0DQorP3JiZWdpbkA/JGxpc3RAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAVj8kYWxsb2NhdG9yQFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEBzdGRAQEBzdGRAQFFFQUE/QVY/JHJldmVyc2VfYmlkaXJlY3Rpb25hbF9pdGVyYXRvckBWaXRlcmF0b3JAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBBRUFWNDVAUEVBVjQ1QF9KQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpyZXZlcnNlX2JpZGlyZWN0aW9uYWxfaXRlcmF0b3I8Y2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6Y29uc3RfaXRlcmF0b3IsY2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50IGNvbnN0ICogX19wdHI2NCxfX2ludDY0PiAgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjpyYmVnaW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9yYmVnaW5APyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRyZXZlcnNlX2JpZGlyZWN0aW9uYWxfaXRlcmF0b3JAVmNvbnN0X2l0ZXJhdG9yQD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQUVCVjQ1QFBFQlY0NUBfSkAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6cmV2ZXJzZV9pdGVyYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0ICogX19wdHI2NCxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgJiBfX3B0cjY0LHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgKiBfX3B0cjY0LF9faW50NjQ+ICBfX2NkZWNsIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPjo6cmJlZ2luKHZvaWQpIF9fcHRyNjQNCis/cmJlZ2luQD8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQFFFQUE/QVY/JHJldmVyc2VfaXRlcmF0b3JAUEVBUEVBVUV2ZW50SW5mb0Bpb3BAQFBFQVUxMkBBRUFQRUFVMTJAUEVBUEVBVTEyQF9KQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpyZXZlcnNlX2l0ZXJhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCBjb25zdCAmIF9fcHRyNjQsc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCBjb25zdCAqIF9fcHRyNjQsX19pbnQ2ND4gIF9fY2RlY2wgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+OjpyYmVnaW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9yYmVnaW5APyR2ZWN0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQFY/JGFsbG9jYXRvckBQRUFVRXZlbnRJbmZvQGlvcEBAQHN0ZEBAQHN0ZEBAUUVCQT9BVj8kcmV2ZXJzZV9pdGVyYXRvckBQRUJRRUFVRXZlbnRJbmZvQGlvcEBAUEVBVTEyQEFFQlFFQVUxMkBQRUJRRUFVMTJAX0pAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBpb3A6OkNTaGFyZWRNYXJrZXIgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjphdXRvX3B0cjxjbGFzcyBpb3A6OkNTaGFyZWRNYXJrZXI+OjpyZWxlYXNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmVsZWFzZUA/JGF1dG9fcHRyQFZDU2hhcmVkTWFya2VyQGlvcEBAQHN0ZEBAUUVCQVBFQVZDU2hhcmVkTWFya2VyQGlvcEBAWFoNCis7IHB1YmxpYzogY2xhc3MgaW9wOjpSTUhhbmdQcm9jRGVhdGhTeW5jaE9iamVjdHMgKiBfX3B0cjY0IF9fY2RlY2wgc3RkOjphdXRvX3B0cjxjbGFzcyBpb3A6OlJNSGFuZ1Byb2NEZWF0aFN5bmNoT2JqZWN0cz46OnJlbGVhc2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9yZWxlYXNlQD8kYXV0b19wdHJAVlJNSGFuZ1Byb2NEZWF0aFN5bmNoT2JqZWN0c0Bpb3BAQEBzdGRAQFFFQkFQRUFWUk1IYW5nUHJvY0RlYXRoU3luY2hPYmplY3RzQGlvcEBAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46OnJlbW92ZShjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9yZW1vdmVAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUFBWEFFQlZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjpyZW1vdmVfaWYoY2xhc3Mgc3RkOjpiaW5kZXIybmQ8c3RydWN0IHN0ZDo6bm90X2VxdWFsX3RvPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID4pIF9fcHRyNjQNCis/cmVtb3ZlX2lmQD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQVhWPyRiaW5kZXIybmRAVT8kbm90X2VxdWFsX3RvQFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEBzdGRAQEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6cmV2ZXJzZV9iaWRpcmVjdGlvbmFsX2l0ZXJhdG9yPGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46Oml0ZXJhdG9yLGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCAmIF9fcHRyNjQsY2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCAqIF9fcHRyNjQsX19pbnQ2ND4gIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6cmVuZCh2b2lkKSBfX3B0cjY0DQorP3JlbmRAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUFBP0FWPyRyZXZlcnNlX2JpZGlyZWN0aW9uYWxfaXRlcmF0b3JAVml0ZXJhdG9yQD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQUVBVjQ1QFBFQVY0NUBfSkAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6cmV2ZXJzZV9iaWRpcmVjdGlvbmFsX2l0ZXJhdG9yPGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46OmNvbnN0X2l0ZXJhdG9yLGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCBjb25zdCAmIF9fcHRyNjQsY2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCBjb25zdCAqIF9fcHRyNjQsX19pbnQ2ND4gIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6cmVuZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3JlbmRAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRyZXZlcnNlX2JpZGlyZWN0aW9uYWxfaXRlcmF0b3JAVmNvbnN0X2l0ZXJhdG9yQD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQUVCVjQ1QFBFQlY0NUBfSkAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6cmV2ZXJzZV9pdGVyYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0ICogX19wdHI2NCxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgJiBfX3B0cjY0LHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQgKiBfX3B0cjY0LF9faW50NjQ+ICBfX2NkZWNsIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPjo6cmVuZCh2b2lkKSBfX3B0cjY0DQorP3JlbmRAPyR2ZWN0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQFY/JGFsbG9jYXRvckBQRUFVRXZlbnRJbmZvQGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQT9BVj8kcmV2ZXJzZV9pdGVyYXRvckBQRUFQRUFVRXZlbnRJbmZvQGlvcEBAUEVBVTEyQEFFQVBFQVUxMkBQRUFQRUFVMTJAX0pAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfaXRlcmF0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0IGNvbnN0ICYgX19wdHI2NCxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0IGNvbnN0ICogX19wdHI2NCxfX2ludDY0PiAgX19jZGVjbCBzdGQ6OnZlY3RvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQ+ID46OnJlbmQodm9pZCljb25zdCAgX19wdHI2NA0KKz9yZW5kQD8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JHJldmVyc2VfaXRlcmF0b3JAUEVCUUVBVUV2ZW50SW5mb0Bpb3BAQFBFQVUxMkBBRUJRRUFVMTJAUEVCUUVBVTEyQF9KQDJAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPjo6cmVzZXJ2ZSh1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP3Jlc2VydmVAPyR2ZWN0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQFY/JGFsbG9jYXRvckBQRUFVRXZlbnRJbmZvQGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQVhfS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjpyZXNpemUodW5zaWduZWQgX19pbnQ2NCxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50KSBfX3B0cjY0DQorP3Jlc2l6ZUA/JGxpc3RAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAVj8kYWxsb2NhdG9yQFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEBzdGRAQEBzdGRAQFFFQUFYX0tWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+OjpyZXNpemUodW5zaWduZWQgX19pbnQ2NCxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9yZXNpemVAPyR2ZWN0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQFY/JGFsbG9jYXRvckBQRUFVRXZlbnRJbmZvQGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQVhfS0FFQlFFQVVFdmVudEluZm9AaW9wQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6cmV2ZXJzZSh2b2lkKSBfX3B0cjY0DQorP3JldmVyc2VAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBpb3A6OkNTbWFydENhcmQ6OnNldENhcmROYW1lKGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP3NldENhcmROYW1lQENTbWFydENhcmRAaW9wQEBRRUFBWFBFQkRAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc2N1OjpTZWN1cmVBcnJheTxjaGFyPjo6c2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3NpemVAPyRTZWN1cmVBcnJheUBEQHNjdUBAUUVCQV9LWFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHNjdTo6U2VjdXJlQXJyYXk8dW5zaWduZWQgY2hhcj46OnNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9zaXplQD8kU2VjdXJlQXJyYXlARUBzY3VAQFFFQkFfS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjpzaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/c2l6ZUA/JGxpc3RAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAVj8kYWxsb2NhdG9yQFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEBzdGRAQEBzdGRAQFFFQkFfS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6OnZlY3RvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQ+ID46OnNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9zaXplQD8kdmVjdG9yQFBFQVVFdmVudEluZm9AaW9wQEBWPyRhbGxvY2F0b3JAUEVBVUV2ZW50SW5mb0Bpb3BAQEBzdGRAQEBzdGRAQFFFQkFfS1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+Ojpzb3J0KHN0cnVjdCBzdGQ6OmdyZWF0ZXI8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4pIF9fcHRyNjQNCis/c29ydEA/JGxpc3RAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAVj8kYWxsb2NhdG9yQFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQEBzdGRAQEBzdGRAQFFFQUFYVT8kZ3JlYXRlckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6c29ydCh2b2lkKSBfX3B0cjY0DQorP3NvcnRAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjpzcGxpY2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6aXRlcmF0b3IsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6aXRlcmF0b3IsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6aXRlcmF0b3IpIF9fcHRyNjQNCis/c3BsaWNlQD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQVhWaXRlcmF0b3JAMTJAQUVBVjEyQDAwQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID46OnNwbGljZShjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjppdGVyYXRvcixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+ICYgX19wdHI2NCxjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjppdGVyYXRvcikgX19wdHI2NA0KKz9zcGxpY2VAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUFBWFZpdGVyYXRvckAxMkBBRUFWMTJAMEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+OjpzcGxpY2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6aXRlcmF0b3IsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/c3BsaWNlQD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQVhWaXRlcmF0b3JAMTJAQUVBVjEyQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PiA+Ojpzd2FwKGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQ+ID4gJiBfX3B0cjY0KSBfX3B0cjY0DQorP3N3YXBAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUFBWEFFQVYxMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjp2ZWN0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2NCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxzdHJ1Y3QgaW9wOjpFdmVudEluZm8gKiBfX3B0cjY0PiA+Ojpzd2FwKGNsYXNzIHN0ZDo6dmVjdG9yPHN0cnVjdCBpb3A6OkV2ZW50SW5mbyAqIF9fcHRyNjQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8c3RydWN0IGlvcDo6RXZlbnRJbmZvICogX19wdHI2ND4gPiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/c3dhcEA/JHZlY3RvckBQRUFVRXZlbnRJbmZvQGlvcEBAVj8kYWxsb2NhdG9yQFBFQVVFdmVudEluZm9AaW9wQEBAc3RkQEBAc3RkQEBRRUFBWEFFQVYxMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6dW5pcXVlKHN0cnVjdCBzdGQ6Om5vdF9lcXVhbF90bzxjbGFzcyBpb3A6OkZpbGVQYXRoQ29tcG9uZW50PikgX19wdHI2NA0KKz91bmlxdWVAPyRsaXN0QFZGaWxlUGF0aENvbXBvbmVudEBpb3BAQFY/JGFsbG9jYXRvckBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAc3RkQEBAc3RkQEBRRUFBWFU/JG5vdF9lcXVhbF90b0BWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBAMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIGlvcDo6RmlsZVBhdGhDb21wb25lbnQsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgaW9wOjpGaWxlUGF0aENvbXBvbmVudD4gPjo6dW5pcXVlKHZvaWQpIF9fcHRyNjQNCis/dW5pcXVlQD8kbGlzdEBWRmlsZVBhdGhDb21wb25lbnRAaW9wQEBWPyRhbGxvY2F0b3JAVkZpbGVQYXRoQ29tcG9uZW50QGlvcEBAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KK0RsbEdldFZlcnNpb24NCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zbWxvZ2NmZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zbWxvZ2NmZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTU2ZjQxOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NtbG9nY2ZnLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNtTG9nQ2ZnLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTbUxvZ0NmZy5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zbXRwYWRtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NtdHBhZG0uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI2Y2UyMzkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zbXRwYWRtLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNNVFBBRE0uRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNNVFBBRE0uRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc210cGFwaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zbXRwYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZjVhZjY0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc210cGFwaS5kZWYKQEAgLTAsMCArMSwyNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTTVRQQVBJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTTVRQQVBJLmRsbA0KK0VYUE9SVFMNCitTbXRwQmFja3VwUm91dGluZ1RhYmxlDQorU210cENsZWFyU3RhdGlzdGljcw0KK1NtdHBDcmVhdGVEaXN0TGlzdA0KK1NtdHBDcmVhdGVEaXN0TGlzdE1lbWJlcg0KK1NtdHBDcmVhdGVVc2VyDQorU210cERlbGV0ZURpc3RMaXN0DQorU210cERlbGV0ZURpc3RMaXN0TWVtYmVyDQorU210cERlbGV0ZVVzZXINCitTbXRwRGlzY29ubmVjdFVzZXINCitTbXRwR2V0QWRtaW5JbmZvcm1hdGlvbg0KK1NtdHBHZXRDb25uZWN0ZWRVc2VyTGlzdA0KK1NtdHBHZXROYW1lTGlzdA0KK1NtdHBHZXROYW1lTGlzdEZyb21MaXN0DQorU210cEdldFVzZXJQcm9wcw0KK1NtdHBHZXRWUm9vdFNpemUNCitTbXRwUXVlcnlTdGF0aXN0aWNzDQorU210cFNldEFkbWluSW5mb3JtYXRpb24NCitTbXRwU2V0VXNlclByb3BzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc210cGNvbnMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc210cGNvbnMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjczMjA3OGQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zbXRwY29ucy5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTTVRQQ09OUy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU01UUENPTlMuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc210cGN0cnMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc210cGN0cnMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjViMmJiMDkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zbXRwY3Rycy5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTTVRQQ1RSUy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU01UUENUUlMuZGxsDQorRVhQT1JUUw0KK09wZW5TbXRwUGVyZm9ybWFuY2VEYXRhDQorQ29sbGVjdFNtdHBQZXJmb3JtYW5jZURhdGENCitDbG9zZVNtdHBQZXJmb3JtYW5jZURhdGENCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zbXRwc25hcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zbXRwc25hcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDI1MThjMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NtdHBzbmFwLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHNtdHBzbmFwLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBzbXRwc25hcC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zbXRwc3ZjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NtdHBzdmMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ3MzFmMWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zbXRwc3ZjLmRlZgpAQCAtMCwwICsxLDM0MyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTTVRQU1ZDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTTVRQU1ZDLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBIQVNIX1RBQkxFOjpIQVNIX1RBQkxFKGNsYXNzIEhBU0hfVEFCTEUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wSEFTSF9UQUJMRUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIEhUX0VMRU1FTlQ6OkhUX0VMRU1FTlQoY2xhc3MgSFRfRUxFTUVOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBIVF9FTEVNRU5UQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSFRfRUxFTUVOVDo6SFRfRUxFTUVOVCh2b2lkKSBfX3B0cjY0DQorPz8wSFRfRUxFTUVOVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIElJU19DVEw6OklJU19DVEwoY2xhc3MgSUlTX0NUTCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBJSVNfQ1RMQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSUlTX1NFUlZFUl9DRVJUOjpJSVNfU0VSVkVSX0NFUlQoY2xhc3MgSUlTX1NFUlZFUl9DRVJUIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MElJU19TRVJWRVJfQ0VSVEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIElJU19TRVJWSUNFOjpJSVNfU0VSVklDRShjbGFzcyBJSVNfU0VSVklDRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBJSVNfU0VSVklDRUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIElJU19TU0xfSU5GTzo6SUlTX1NTTF9JTkZPKGNsYXNzIElJU19TU0xfSU5GTyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBJSVNfU1NMX0lORk9AQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBMT0dHSU5HOjpMT0dHSU5HKGNsYXNzIExPR0dJTkcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTE9HR0lOR0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgSEFTSF9UQUJMRTo6fkhBU0hfVEFCTEUodm9pZCkgX19wdHI2NA0KKz8/MUhBU0hfVEFCTEVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIEhUX0VMRU1FTlQ6On5IVF9FTEVNRU5UKHZvaWQpIF9fcHRyNjQNCis/PzFIVF9FTEVNRU5UQEBVRUFBQFhaDQorOyBwdWJsaWM6IGNsYXNzIEhBU0hfVEFCTEUgJiBfX3B0cjY0IF9fY2RlY2wgSEFTSF9UQUJMRTo6b3BlcmF0b3I9KGNsYXNzIEhBU0hfVEFCTEUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80SEFTSF9UQUJMRUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIEhUX0VMRU1FTlQgJiBfX3B0cjY0IF9fY2RlY2wgSFRfRUxFTUVOVDo6b3BlcmF0b3I9KGNsYXNzIEhUX0VMRU1FTlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80SFRfRUxFTUVOVEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIElJU19DVEwgJiBfX3B0cjY0IF9fY2RlY2wgSUlTX0NUTDo6b3BlcmF0b3I9KGNsYXNzIElJU19DVEwgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80SUlTX0NUTEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIElJU19TRVJWRVJfQ0VSVCAmIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVkVSX0NFUlQ6Om9wZXJhdG9yPShjbGFzcyBJSVNfU0VSVkVSX0NFUlQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80SUlTX1NFUlZFUl9DRVJUQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgSUlTX1NFUlZJQ0UgJiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZJQ0U6Om9wZXJhdG9yPShjbGFzcyBJSVNfU0VSVklDRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRJSVNfU0VSVklDRUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIElJU19TU0xfSU5GTyAmIF9fcHRyNjQgX19jZGVjbCBJSVNfU1NMX0lORk86Om9wZXJhdG9yPShjbGFzcyBJSVNfU1NMX0lORk8gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80SUlTX1NTTF9JTkZPQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTE9HR0lORyAmIF9fcHRyNjQgX19jZGVjbCBMT0dHSU5HOjpvcGVyYXRvcj0oY2xhc3MgTE9HR0lORyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRMT0dHSU5HQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgVFNWQ19DQUNIRSAmIF9fcHRyNjQgX19jZGVjbCBUU1ZDX0NBQ0hFOjpvcGVyYXRvcj0oY2xhc3MgVFNWQ19DQUNIRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRUU1ZDX0NBQ0hFQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElORVRfUEFSU0VSOjpvcGVyYXRvcis9KGludCkgX19wdHI2NA0KKz8/WUlORVRfUEFSU0VSQEBRRUFBWEhAWg0KKzsgY29uc3QgIEhBU0hfVEFCTEU6OmB2ZnRhYmxlJw0KKz8/XzdIQVNIX1RBQkxFQEA2QkANCis7IGNvbnN0ICBIVF9FTEVNRU5UOjpgdmZ0YWJsZScNCis/P183SFRfRUxFTUVOVEBANkJADQorOyBjb25zdCAgSUlTX1NFUlZJQ0U6OmB2ZnRhYmxlJw0KKz8/XzdJSVNfU0VSVklDRUBANkJADQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpBY3F1aXJlRmFzdExvY2sodm9pZCkgX19wdHI2NA0KKz9BY3F1aXJlRmFzdExvY2tASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1NFUlZJQ0U6OkFjcXVpcmVTZXJ2aWNlTG9jayhpbnQpIF9fcHRyNjQNCis/QWNxdWlyZVNlcnZpY2VMb2NrQElJU19TRVJWSUNFQEBRRUFBWEhAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHZvaWQgX19jZGVjbCBJSVNfVlJPT1RfVEFCTEU6OkFkZFJlZlJlY29yZCh2b2lkIGNvbnN0ICogX19wdHI2NCxpbnQpDQorP0FkZFJlZlJlY29yZEBJSVNfVlJPT1RfVEFCTEVAQENBWFBFQlhIQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSEFTSF9UQUJMRTo6Q2FsY3VsYXRlSGFzaChjaGFyIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9DYWxjdWxhdGVIYXNoQEhBU0hfVEFCTEVAQFVFQkFLUEVCREBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBJSVNfU1NMX0lORk86OkNoZWNrU2lnbmF0dXJlKHZvaWQpIF9fcHRyNjQNCis/Q2hlY2tTaWduYXR1cmVASUlTX1NTTF9JTkZPQEBBRUFBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpDbGVhbnVwQWZ0ZXJDb25zdHJ1Y3RvckZhaWx1cmUodm9pZCkgX19wdHI2NA0KKz9DbGVhbnVwQWZ0ZXJDb25zdHJ1Y3RvckZhaWx1cmVASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6RGVjcmVtZW50Q3VycmVudENvbm5lY3Rpb25zKHZvaWQpIF9fcHRyNjQNCis/RGVjcmVtZW50Q3VycmVudENvbm5lY3Rpb25zQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWSUNFOjpEZWxheUN1cnJlbnRTZXJ2aWNlQ3RybE9wZXJhdGlvbih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0RlbGF5Q3VycmVudFNlcnZpY2VDdHJsT3BlcmF0aW9uQElJU19TRVJWSUNFQEBRRUFBS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBNSU1FX01BUF9FTlRSWTo6RGVyZWZlcmVuY2Uodm9pZCkgX19wdHI2NA0KKz9EZXJlZmVyZW5jZUBNSU1FX01BUF9FTlRSWUBAVUVBQUpYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpEb1NlcnZlck5hbWVDaGVjayh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0RvU2VydmVyTmFtZUNoZWNrQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFIWFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBJTkVUX1BBUlNFUjo6RWF0Tm9uV2hpdGUodm9pZCkgX19wdHI2NA0KKz9FYXROb25XaGl0ZUBJTkVUX1BBUlNFUkBAUUVBQVBFQURYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIElORVRfUEFSU0VSOjpFYXRXaGl0ZSh2b2lkKSBfX3B0cjY0DQorP0VhdFdoaXRlQElORVRfUEFSU0VSQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ09NTU9OX01FVEFEQVRBOjpGaW5pc2hQcml2YXRlUHJvcGVydGllcyhjbGFzcyBCVUZGRVIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsaW50KSBfX3B0cjY0DQorP0ZpbmlzaFByaXZhdGVQcm9wZXJ0aWVzQENPTU1PTl9NRVRBREFUQUBAVUVBQUhQRUFWQlVGRkVSQEBLSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBIQVNIX1RBQkxFOjpGbHVzaEVsZW1lbnRzKHZvaWQpIF9fcHRyNjQNCis/Rmx1c2hFbGVtZW50c0BIQVNIX1RBQkxFQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBUU1ZDX0NBQ0hFOjpHZXRJbnN0YW5jZUlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0SW5zdGFuY2VJZEBUU1ZDX0NBQ0hFQEBRRUJBS1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVklDRTo6R2V0TURJbnN0YW5jZVBhdGgodW5zaWduZWQgbG9uZyxjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRNREluc3RhbmNlUGF0aEBJSVNfU0VSVklDRUBAUUVBQVhLUEVBREBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgVFNWQ19DQUNIRTo6R2V0U2VydmVySW5zdGFuY2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTZXJ2ZXJJbnN0YW5jZUBUU1ZDX0NBQ0hFQEBRRUJBUEVBWFhaDQorOyBwcml2YXRlOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVklDRTo6R2V0U2VydmljZUNvbmZpZ0luZm9TaXplKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/R2V0U2VydmljZUNvbmZpZ0luZm9TaXplQElJU19TRVJWSUNFQEBFRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgVFNWQ19DQUNIRTo6R2V0U2VydmljZUlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U2VydmljZUlkQFRTVkNfQ0FDSEVAQFFFQkFLWFoNCis7IHB1YmxpYzogY2xhc3MgQ0FDSEVEX1RPS0VOICogX19wdHI2NCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpHZXRUb2tlbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFRva2VuQFRDUF9BVVRIRU5UQEBRRUJBUEVBVkNBQ0hFRF9UT0tFTkBAWFoNCis7IHB1YmxpYzogY2xhc3MgVFNWQ19DQUNIRSAmIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpHZXRUc3ZjQ2FjaGUodm9pZCkgX19wdHI2NA0KKz9HZXRUc3ZjQ2FjaGVASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQUFFQVZUU1ZDX0NBQ0hFQEBYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpHZXRVc2VySGFuZGxlKHZvaWQpIF9fcHRyNjQNCis/R2V0VXNlckhhbmRsZUBUQ1BfQVVUSEVOVEBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENPTU1PTl9NRVRBREFUQTo6SGFuZGxlUHJpdmF0ZVByb3BlcnR5KGNoYXIgKiBfX3B0cjY0LGNsYXNzIElJU19TRVJWRVJfSU5TVEFOQ0UgKiBfX3B0cjY0LHN0cnVjdCBfTUVUQURBVEFfR0VUQUxMX0lOVEVSTkFMX1JFQ09SRCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQsY2xhc3MgQlVGRkVSICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCxzdHJ1Y3QgX01FVEFEQVRBX0VSUk9SX0lORk8gKiBfX3B0cjY0KSBfX3B0cjY0DQorP0hhbmRsZVByaXZhdGVQcm9wZXJ0eUBDT01NT05fTUVUQURBVEFAQFVFQUFIUEVBRFBFQVZJSVNfU0VSVkVSX0lOU1RBTkNFQEBQRUFVX01FVEFEQVRBX0dFVEFMTF9JTlRFUk5BTF9SRUNPUkRAQFBFQVhQRUFWQlVGRkVSQEBQRUFLUEVBVV9NRVRBREFUQV9FUlJPUl9JTkZPQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpIYXNOb3JtYWxCaW5kaW5ncyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0hhc05vcm1hbEJpbmRpbmdzQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6SGFzU2VjdXJlQmluZGluZ3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9IYXNTZWN1cmVCaW5kaW5nc0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpJbmNyZW1lbnRDdXJyZW50Q29ubmVjdGlvbnModm9pZCkgX19wdHI2NA0KKz9JbmNyZW1lbnRDdXJyZW50Q29ubmVjdGlvbnNASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVklDRTo6SXNBY3RpdmUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0FjdGl2ZUBJSVNfU0VSVklDRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpJc0F1dG9TdGFydCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzQXV0b1N0YXJ0QElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6SXNDbHVzdGVyRW5hYmxlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzQ2x1c3RlckVuYWJsZWRASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUhYWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgSUlTX1NTTF9JTkZPOjpJc0RlZmF1bHRDVEwodm9pZCkgX19wdHI2NA0KKz9Jc0RlZmF1bHRDVExASUlTX1NTTF9JTkZPQEBBRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TU0xfSU5GTzo6SXNEZWZhdWx0Q2VydGlmaWNhdGUodm9pZCkgX19wdHI2NA0KKz9Jc0RlZmF1bHRDZXJ0aWZpY2F0ZUBJSVNfU1NMX0lORk9AQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6SXNEb3duTGV2ZWxJbnN0YW5jZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRG93bkxldmVsSW5zdGFuY2VASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0NFUlQ6OklzRm9ydGV6emFDZXJ0KHZvaWQpIF9fcHRyNjQNCis/SXNGb3J0ZXp6YUNlcnRASUlTX1NFUlZFUl9DRVJUQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OklzTG9nZ2luZ0VuYWJsZWRBKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNMb2dnaW5nRW5hYmxlZEFASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIE1JTUVfTUFQX0VOVFJZOjpJc01hdGNoKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/SXNNYXRjaEBNSU1FX01BUF9FTlRSWUBAVUVCQUhQRUJES0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJU19TRVJWSUNFOjpJc011bHRpSW5zdGFuY2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc011bHRpSW5zdGFuY2VASUlTX1NFUlZJQ0VAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OklzU3lzdGVtREJDUyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzU3lzdGVtREJDU0BJSVNfU0VSVklDRUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBIQVNIX1RBQkxFOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBIQVNIX1RBQkxFQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRTX09QRU5fRklMRV9JTkZPOjpJc1ZhbGlkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZEBUU19PUEVOX0ZJTEVfSU5GT0BAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpMb2FkU3RyKGNsYXNzIFNUUiAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxpbnQpY29uc3QgIF9fcHRyNjQNCis/TG9hZFN0ckBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBSEFFQVZTVFJAQEtIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TU0xfSU5GTzo6TG9jayh2b2lkKSBfX3B0cjY0DQorP0xvY2tASUlTX1NTTF9JTkZPQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfVlJPT1RfVEFCTEU6OkxvY2tDb252ZXJ0RXhjbHVzaXZlKHZvaWQpIF9fcHRyNjQNCis/TG9ja0NvbnZlcnRFeGNsdXNpdmVASUlTX1ZST09UX1RBQkxFQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfVlJPT1RfVEFCTEU6OkxvY2tFeGNsdXNpdmUodm9pZCkgX19wdHI2NA0KKz9Mb2NrRXhjbHVzaXZlQElJU19WUk9PVF9UQUJMRUBAUUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIExPR0dJTkc6OkxvY2tFeGNsdXNpdmUodm9pZCkgX19wdHI2NA0KKz9Mb2NrRXhjbHVzaXZlQExPR0dJTkdAQEFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19WUk9PVF9UQUJMRTo6TG9ja1NoYXJlZCh2b2lkKSBfX3B0cjY0DQorP0xvY2tTaGFyZWRASUlTX1ZST09UX1RBQkxFQEBRRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HR0lORzo6TG9ja1NoYXJlZCh2b2lkKSBfX3B0cjY0DQorP0xvY2tTaGFyZWRATE9HR0lOR0BAQUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6TG9ja1RoaXNGb3JSZWFkKHZvaWQpIF9fcHRyNjQNCis/TG9ja1RoaXNGb3JSZWFkQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OkxvY2tUaGlzRm9yV3JpdGUodm9pZCkgX19wdHI2NA0KKz9Mb2NrVGhpc0ZvcldyaXRlQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWSUNFOjpMb2dFdmVudCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0LGNoYXIgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCBjb25zdCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0xvZ0V2ZW50QElJU19TRVJWSUNFQEBRRUFBWEtHUUVBUEVCREtAWg0KKzsgcHVibGljOiBjbGFzcyBIVF9FTEVNRU5UICogX19wdHI2NCBfX2NkZWNsIEhBU0hfVEFCTEU6Okxvb2t1cChjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Mb29rdXBASEFTSF9UQUJMRUBAUUVBQVBFQVZIVF9FTEVNRU5UQEBQRUJEQFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBJTkVUX1BBUlNFUjo6TmV4dEl0ZW0odm9pZCkgX19wdHI2NA0KKz9OZXh0SXRlbUBJTkVUX1BBUlNFUkBAUUVBQVBFQURYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIElORVRfUEFSU0VSOjpOZXh0UGFyYW0odm9pZCkgX19wdHI2NA0KKz9OZXh0UGFyYW1ASU5FVF9QQVJTRVJAQFFFQUFQRUFEWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE1JTUVfTUFQOjpQcmludCh2b2lkKSBfX3B0cjY0DQorP1ByaW50QE1JTUVfTUFQQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIE1JTUVfTUFQX0VOVFJZOjpQcmludCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1ByaW50QE1JTUVfTUFQX0VOVFJZQEBVRUJBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeUFjY2VwdEV4T3V0c3RhbmRpbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUFjY2VwdEV4T3V0c3RhbmRpbmdASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlBY2NlcHRFeFRpbWVvdXQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUFjY2VwdEV4VGltZW91dEBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgSUlTX1NTTF9JTkZPICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5QW5kUmVmZXJlbmNlU1NMSW5mb09iaih2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5QW5kUmVmZXJlbmNlU1NMSW5mb09iakBJSVNfU0VSVkVSX0lOU1RBTkNFQEBVRUFBUEVBVklJU19TU0xfSU5GT0BAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFRTX09QRU5fRklMRV9JTkZPOjpRdWVyeUF0dHJpYnV0ZXModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUF0dHJpYnV0ZXNAVFNfT1BFTl9GSUxFX0lORk9AQFFFQkFLWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeUJhbmR3aWR0aEluZm8odm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUJhbmR3aWR0aEluZm9ASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiBjbGFzcyBJSVNfQ1RMICogX19wdHI2NCBfX2NkZWNsIElJU19TU0xfSU5GTzo6UXVlcnlDVEwodm9pZCkgX19wdHI2NA0KKz9RdWVyeUNUTEBJSVNfU1NMX0lORk9AQFFFQUFQRUFWSUlTX0NUTEBAWFoNCis7IHB1YmxpYzogc3RydWN0IF9DVExfQ09OVEVYVCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfQ1RMOjpRdWVyeUNUTENvbnRleHQodm9pZCkgX19wdHI2NA0KKz9RdWVyeUNUTENvbnRleHRASUlTX0NUTEBAUUVBQVBFQlVfQ1RMX0NPTlRFWFRAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfQ0VSVF9DT05URVhUIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWRVJfQ0VSVDo6UXVlcnlDZXJ0Q29udGV4dCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5Q2VydENvbnRleHRASUlTX1NFUlZFUl9DRVJUQEBRRUFBUEVCVV9DRVJUX0NPTlRFWFRAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfQ0VSVF9DT05URVhUIGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVkVSX0NFUlQ6OlF1ZXJ5Q2VydENvbnRleHRBZGRyKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlDZXJ0Q29udGV4dEFkZHJASUlTX1NFUlZFUl9DRVJUQEBRRUFBUEVBUEVCVV9DRVJUX0NPTlRFWFRAQFhaDQorOyBwdWJsaWM6IGNsYXNzIElJU19TRVJWRVJfQ0VSVCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU1NMX0lORk86OlF1ZXJ5Q2VydGlmaWNhdGUodm9pZCkgX19wdHI2NA0KKz9RdWVyeUNlcnRpZmljYXRlQElJU19TU0xfSU5GT0BAUUVBQVBFQVZJSVNfU0VSVkVSX0NFUlRAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeUNvbm5lY3Rpb25UaW1lb3V0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDb25uZWN0aW9uVGltZW91dEBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBS1haDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZFUl9DRVJUOjpRdWVyeUNvbnRhaW5lcih2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5Q29udGFpbmVyQElJU19TRVJWRVJfQ0VSVEBAUUVBQVBFQURYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1NlY0hhbmRsZSAqIF9fcHRyNjQgX19jZGVjbCBUQ1BfQVVUSEVOVDo6UXVlcnlDcmVkSGFuZGxlKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlDcmVkSGFuZGxlQFRDUF9BVVRIRU5UQEBRRUFBUEVBVV9TZWNIYW5kbGVAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfU2VjSGFuZGxlICogX19wdHI2NCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpRdWVyeUN0eHRIYW5kbGUodm9pZCkgX19wdHI2NA0KKz9RdWVyeUN0eHRIYW5kbGVAVENQX0FVVEhFTlRAQFFFQUFQRUFVX1NlY0hhbmRsZUBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5Q3VycmVudENvbm5lY3Rpb25zKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDdXJyZW50Q29ubmVjdGlvbnNASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlF1ZXJ5Q3VycmVudFNlcnZpY2VFcnJvcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q3VycmVudFNlcnZpY2VFcnJvckBJSVNfU0VSVklDRUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlF1ZXJ5Q3VycmVudFNlcnZpY2VTdGF0ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q3VycmVudFNlcnZpY2VTdGF0ZUBJSVNfU0VSVklDRUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5RGVmYXVsdFBvcnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeURlZmF1bHRQb3J0QElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWSUNFOjpRdWVyeURvd25MZXZlbEluc3RhbmNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlEb3duTGV2ZWxJbnN0YW5jZUBJSVNfU0VSVklDRUBAUUVCQUtYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIFRTX09QRU5fRklMRV9JTkZPOjpRdWVyeUVUYWcodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUVUYWdAVFNfT1BFTl9GSUxFX0lORk9AQFFFQkFQRUFEWFoNCis7IHB1YmxpYzogY2xhc3MgRVZFTlRfTE9HICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWSUNFOjpRdWVyeUV2ZW50TG9nKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlFdmVudExvZ0BJSVNfU0VSVklDRUBAUUVBQVBFQVZFVkVOVF9MT0dAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVklDRTo6UXVlcnlJbnN0YW5jZUNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlJbnN0YW5jZUNvdW50QElJU19TRVJWSUNFQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeUluc3RhbmNlSWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUluc3RhbmNlSWRASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTUlNRV9NQVBfRU5UUlk6OlF1ZXJ5S2V5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlLZXlATUlNRV9NQVBfRU5UUllAQFVFQkFQRUJEWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTUlNRV9NQVBfRU5UUlk6OlF1ZXJ5S2V5TGVuKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlLZXlMZW5ATUlNRV9NQVBfRU5UUllAQFVFQkFLWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgVFNfT1BFTl9GSUxFX0lORk86OlF1ZXJ5TGFzdFdyaXRlVGltZShzdHJ1Y3QgX0ZJTEVUSU1FICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUxhc3RXcml0ZVRpbWVAVFNfT1BFTl9GSUxFX0lORk9AQFFFQkFIUEVBVV9GSUxFVElNRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX0NUTDo6UXVlcnlMaXN0SWRlbnRpZmllcih2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5TGlzdElkZW50aWZpZXJASUlTX0NUTEBAUUVBQVBFQUdYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeUxvZ0Fub255bW91cyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TG9nQW5vbnltb3VzQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlMb2dOb25Bbm9ueW1vdXModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUxvZ05vbkFub255bW91c0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBSFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX0NUTDo6UXVlcnlNQlBhdGgodm9pZCkgX19wdHI2NA0KKz9RdWVyeU1CUGF0aEBJSVNfQ1RMQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZFUl9DRVJUOjpRdWVyeU1CUGF0aCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5TUJQYXRoQElJU19TRVJWRVJfQ0VSVEBAUUVBQVBFQURYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5TURQYXRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNRFBhdGhASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWSUNFOjpRdWVyeU1EUGF0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TURQYXRoQElJU19TRVJWSUNFQEBRRUJBUEVCRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeU1EUGF0aExlbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TURQYXRoTGVuQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFLWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeU1EVlJQYXRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNRFZSUGF0aEBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBUEVCRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeU1EVlJQYXRoTGVuKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNRFZSUGF0aExlbkBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeU1heENvbm5lY3Rpb25zKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNYXhDb25uZWN0aW9uc0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeU1heEVuZHBvaW50Q29ubmVjdGlvbnModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1heEVuZHBvaW50Q29ubmVjdGlvbnNASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUtYWg0KKzsgcHVibGljOiBjbGFzcyBNSU1FX01BUCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVklDRTo6UXVlcnlNaW1lTWFwKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNaW1lTWFwQElJU19TRVJWSUNFQEBRRUJBUEVBVk1JTUVfTUFQQEBYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWSUNFOjpRdWVyeU1vZHVsZU5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeU1vZHVsZU5hbWVASUlTX1NFUlZJQ0VAQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfQ0VSVDo6UXVlcnlPcGVuRmxhZ3Modm9pZCkgX19wdHI2NA0KKz9RdWVyeU9wZW5GbGFnc0BJSVNfU0VSVkVSX0NFUlRAQFFFQUFLWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfQ1RMOjpRdWVyeU9yaWdpbmFsU3RvcmUodm9pZCkgX19wdHI2NA0KKz9RdWVyeU9yaWdpbmFsU3RvcmVASUlTX0NUTEBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWRVJfQ0VSVDo6UXVlcnlQcm92aWRlck5hbWUodm9pZCkgX19wdHI2NA0KKz9RdWVyeVByb3ZpZGVyTmFtZUBJSVNfU0VSVkVSX0NFUlRAQFFFQUFQRUFEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfQ0VSVDo6UXVlcnlQcm92aWRlclR5cGUodm9pZCkgX19wdHI2NA0KKz9RdWVyeVByb3ZpZGVyVHlwZUBJSVNfU0VSVkVSX0NFUlRAQFFFQUFLWFoNCis7IHB1YmxpYzogbG9uZyAqIF9fcHRyNjQgX19jZGVjbCBSZWZCbG9iOjpRdWVyeVJlZkNvdW50KHZvaWQpIF9fcHRyNjQNCis/UXVlcnlSZWZDb3VudEBSZWZCbG9iQEBRRUFBUEVBSlhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlSZWdQYXJhbUtleSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UmVnUGFyYW1LZXlASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWSUNFOjpRdWVyeVJlZ1BhcmFtS2V5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlSZWdQYXJhbUtleUBJSVNfU0VSVklDRUBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5Um9vdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Um9vdEBJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUJBUEVBRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeVNhdmVkU3RhdGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNhdmVkU3RhdGVASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlTZXJ2ZXJTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTZXJ2ZXJTaXplQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlF1ZXJ5U2VydmVyU3RhdGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNlcnZlclN0YXRlQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQkFLWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVklDRTo6UXVlcnlTZXJ2aWNlQ29tbWVudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2VydmljZUNvbW1lbnRASUlTX1NFUlZJQ0VAQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWSUNFOjpRdWVyeVNlcnZpY2VJZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2VydmljZUlkQElJU19TRVJWSUNFQEBRRUJBS1haDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlF1ZXJ5U2VydmljZU5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNlcnZpY2VOYW1lQElJU19TRVJWSUNFQEBRRUJBUEVCRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVklDRTo6UXVlcnlTZXJ2aWNlU3BlY2lmaWNFeGl0Q29kZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2VydmljZVNwZWNpZmljRXhpdENvZGVASUlTX1NFUlZJQ0VAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWSUNFOjpRdWVyeVNodXRkb3duU2NoZWR1bGVJZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2h1dGRvd25TY2hlZHVsZUlkQElJU19TRVJWSUNFQEBRRUJBS1haDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6UXVlcnlTaXRlTmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2l0ZU5hbWVASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVCQVBFQkRYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUU19PUEVOX0ZJTEVfSU5GTzo6UXVlcnlTaXplKHVuaW9uIF9MQVJHRV9JTlRFR0VSICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNpemVAVFNfT1BFTl9GSUxFX0lORk9AQFFFQkFIQUVBVF9MQVJHRV9JTlRFR0VSQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUU19PUEVOX0ZJTEVfSU5GTzo6UXVlcnlTaXplKHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2l6ZUBUU19PUEVOX0ZJTEVfSU5GT0BAUUVCQUhQRUFLMEBaDQorOyBwdWJsaWM6IHN0cnVjdCBfU2VjSGFuZGxlICogX19wdHI2NCBfX2NkZWNsIFRDUF9BVVRIRU5UOjpRdWVyeVNzbEN0eHRIYW5kbGUodm9pZCkgX19wdHI2NA0KKz9RdWVyeVNzbEN0eHRIYW5kbGVAVENQX0FVVEhFTlRAQFFFQUFQRUFVX1NlY0hhbmRsZUBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19DVEw6OlF1ZXJ5U3RhdHVzKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlTdGF0dXNASUlTX0NUTEBAUUVBQUtYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIElJU19TRVJWRVJfQ0VSVDo6UXVlcnlTdG9yZUhhbmRsZSh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5U3RvcmVIYW5kbGVASUlTX1NFUlZFUl9DRVJUQEBRRUFBUEVBWFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX0NUTDo6UXVlcnlTdG9yZU5hbWUodm9pZCkgX19wdHI2NA0KKz9RdWVyeVN0b3JlTmFtZUBJSVNfQ1RMQEBRRUFBUEVBRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgSUlTX1NFUlZFUl9DRVJUOjpRdWVyeVN0b3JlTmFtZSh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5U3RvcmVOYW1lQElJU19TRVJWRVJfQ0VSVEBAUUVBQVBFQURYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1ZST09UX1RBQkxFOjpRdWVyeVZyb290Q291bnQodm9pZCkgX19wdHI2NA0KKz9RdWVyeVZyb290Q291bnRASUlTX1ZST09UX1RBQkxFQEBRRUFBS1haDQorOyBwdWJsaWM6IGNsYXNzIElJU19WUk9PVF9UQUJMRSAqIF9fcHRyNjQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpRdWVyeVZyb290VGFibGUodm9pZCkgX19wdHI2NA0KKz9RdWVyeVZyb290VGFibGVASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQVBFQVZJSVNfVlJPT1RfVEFCTEVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIE1JTUVfTUFQX0VOVFJZOjpSZWZlcmVuY2Uodm9pZCkgX19wdHI2NA0KKz9SZWZlcmVuY2VATUlNRV9NQVBfRU5UUllAQFVFQUFKWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlJlbGVhc2VGYXN0TG9jayh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VGYXN0TG9ja0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVklDRTo6UmVsZWFzZVNlcnZpY2VMb2NrKGludCkgX19wdHI2NA0KKz9SZWxlYXNlU2VydmljZUxvY2tASUlTX1NFUlZJQ0VAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpSZW1vdmVOb3JtYWxCaW5kaW5ncyh2b2lkKSBfX3B0cjY0DQorP1JlbW92ZU5vcm1hbEJpbmRpbmdzQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlJlbW92ZVNlY3VyZUJpbmRpbmdzKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlU2VjdXJlQmluZGluZ3NASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQUtYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSU5FVF9QQVJTRVI6OlJlc3RvcmVCdWZmZXIodm9pZCkgX19wdHI2NA0KKz9SZXN0b3JlQnVmZmVyQElORVRfUEFSU0VSQEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRTX09QRU5fRklMRV9JTkZPOjpSZXRyaWV2ZUh0dHBJbmZvKGNoYXIgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmV0cmlldmVIdHRwSW5mb0BUU19PUEVOX0ZJTEVfSU5GT0BAUUVBQUhQRUFEUEVBSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpTYXZlU2VydmVyU3RhdGUodm9pZCkgX19wdHI2NA0KKz9TYXZlU2VydmVyU3RhdGVASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQVhYWg0KK1NlcnZpY2VFbnRyeQ0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ09NTU9OX01FVEFEQVRBOjpTZXRBY2Nlc3NQZXJtcyh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldEFjY2Vzc1Blcm1zQENPTU1PTl9NRVRBREFUQUBAUUVBQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFRTVkNfQ0FDSEU6OlNldFBhcmFtZXRlcnModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFBhcmFtZXRlcnNAVFNWQ19DQUNIRUBAUUVBQVhLS1BFQVhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlNldFNlcnZpY2VDb21tZW50KGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFNlcnZpY2VDb21tZW50QElJU19TRVJWSUNFQEBRRUFBWFBFQURAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1NFUlZJQ0U6OlNldFNlcnZpY2VTcGVjaWZpY0V4aXRDb2RlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0U2VydmljZVNwZWNpZmljRXhpdENvZGVASUlTX1NFUlZJQ0VAQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVNfU0VSVkVSX0lOU1RBTkNFOjpTZXRaYXBSZWdLZXkodm9pZCkgX19wdHI2NA0KKz9TZXRaYXBSZWdLZXlASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9DRVJUOjpTdGF0dXModm9pZCkgX19wdHI2NA0KKz9TdGF0dXNASUlTX1NFUlZFUl9DRVJUQEBRRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIElJU19TRVJWSUNFOjpTdG9wSW5zdGFuY2VQcm9jcyhjbGFzcyBJSVNfU0VSVkVSX0lOU1RBTkNFICogX19wdHI2NCkgX19wdHI2NA0KKz9TdG9wSW5zdGFuY2VQcm9jc0BJSVNfU0VSVklDRUBAVUVBQVhQRUFWSUlTX1NFUlZFUl9JTlNUQU5DRUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TU0xfSU5GTzo6VW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/VW5sb2NrQElJU19TU0xfSU5GT0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTX1ZST09UX1RBQkxFOjpVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9VbmxvY2tASUlTX1ZST09UX1RBQkxFQEBRRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgTE9HR0lORzo6VW5sb2NrKHZvaWQpIF9fcHRyNjQNCis/VW5sb2NrQExPR0dJTkdAQEFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlVubG9ja1RoaXModm9pZCkgX19wdHI2NA0KKz9VbmxvY2tUaGlzQElJU19TRVJWRVJfSU5TVEFOQ0VAQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIElJU19TRVJWRVJfSU5TVEFOQ0U6OlVwZGF0ZU5vcm1hbEJpbmRpbmdzKHZvaWQpIF9fcHRyNjQNCis/VXBkYXRlTm9ybWFsQmluZGluZ3NASUlTX1NFUlZFUl9JTlNUQU5DRUBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgSUlTX1NFUlZFUl9JTlNUQU5DRTo6VXBkYXRlU2VjdXJlQmluZGluZ3Modm9pZCkgX19wdHI2NA0KKz9VcGRhdGVTZWN1cmVCaW5kaW5nc0BJSVNfU0VSVkVSX0lOU1RBTkNFQEBRRUFBS1haDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBJSVNfU0VSVkVSX0NFUlQ6OlVzZVByb2dyYW1tYXRpY1BJTkVudHJ5KGNsYXNzIE1CICogX19wdHI2NCkgX19wdHI2NA0KKz9Vc2VQcm9ncmFtbWF0aWNQSU5FbnRyeUBJSVNfU0VSVkVSX0NFUlRAQEFFQUFIUEVBVk1CQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBUU19PUEVOX0ZJTEVfSU5GTzo6V2Vha0VUYWcodm9pZCljb25zdCAgX19wdHI2NA0KKz9XZWFrRVRhZ0BUU19PUEVOX0ZJTEVfSU5GT0BAUUVCQUhYWg0KKzsgaW50IF9fY2RlY2wgdXVkZWNvZGUoY2hhciAqIF9fcHRyNjQsY2xhc3MgQlVGRkVSICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCxpbnQpDQorP3V1ZGVjb2RlQEBZQUhQRUFEUEVBVkJVRkZFUkBAUEVBS0hAWg0KKzsgaW50IF9fY2RlY2wgdXVlbmNvZGUodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxjbGFzcyBCVUZGRVIgKiBfX3B0cjY0LGludCkNCis/dXVlbmNvZGVAQFlBSFBFQUVLUEVBVkJVRkZFUkBASEBaDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc25pZmZwb2wuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc25pZmZwb2wuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQyMTg2ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zbmlmZnBvbC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTbmlmZlBvbC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU25pZmZQb2wuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc25tcGFwaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zbm1wYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYzhhNTdjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc25tcGFwaS5kZWYKQEAgLTAsMCArMSw0NiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBzbm1wYXBpLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBzbm1wYXBpLmRsbA0KK0VYUE9SVFMNCitTbm1wU3ZjQWRkcklzSXB4DQorU25tcFN2Y0FkZHJUb1NvY2tldA0KK1NubXBTdmNHZXRFbnRlcnByaXNlT0lEDQorU25tcFN2Y0dldFVwdGltZQ0KK1NubXBTdmNHZXRVcHRpbWVGcm9tVGltZQ0KK1NubXBTdmNJbml0VXB0aW1lDQorU25tcFN2Y1NldExvZ0xldmVsDQorU25tcFN2Y1NldExvZ1R5cGUNCitTbm1wVGZ4Q2xvc2UNCitTbm1wVGZ4T3Blbg0KK1NubXBUZnhRdWVyeQ0KK1NubXBVdGlsQW5zaVRvVW5pY29kZQ0KK1NubXBVdGlsQXNuQW55Q3B5DQorU25tcFV0aWxBc25BbnlGcmVlDQorU25tcFV0aWxEYmdQcmludA0KK1NubXBVdGlsSWRzVG9BDQorU25tcFV0aWxNZW1BbGxvYw0KK1NubXBVdGlsTWVtRnJlZQ0KK1NubXBVdGlsTWVtUmVBbGxvYw0KK1NubXBVdGlsT2N0ZXRzQ21wDQorU25tcFV0aWxPY3RldHNDcHkNCitTbm1wVXRpbE9jdGV0c0ZyZWUNCitTbm1wVXRpbE9jdGV0c05DbXANCitTbm1wVXRpbE9pZEFwcGVuZA0KK1NubXBVdGlsT2lkQ21wDQorU25tcFV0aWxPaWRDcHkNCitTbm1wVXRpbE9pZEZyZWUNCitTbm1wVXRpbE9pZE5DbXANCitTbm1wVXRpbE9pZFRvQQ0KK1NubXBVdGlsUHJpbnRBc25BbnkNCitTbm1wVXRpbFByaW50T2lkDQorU25tcFV0aWxVVEY4VG9Vbmljb2RlDQorU25tcFV0aWxVbmljb2RlVG9BbnNpDQorU25tcFV0aWxVbmljb2RlVG9VVEY4DQorU25tcFV0aWxWYXJCaW5kQ3B5DQorU25tcFV0aWxWYXJCaW5kRnJlZQ0KK1NubXBVdGlsVmFyQmluZExpc3RDcHkNCitTbm1wVXRpbFZhckJpbmRMaXN0RnJlZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NubXBjbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zbm1wY2wuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA0OGIzNWQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zbm1wY2wuZGVmCkBAIC0wLDAgKzEsMjE1MCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBzbm1wY2wuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHNubXBjbC5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0JTdHJpbmc6OkNCU3RyaW5nKGludCkgX19wdHI2NA0KKz8/MENCU3RyaW5nQEBRRUFBQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIENCU3RyaW5nOjpDQlN0cmluZyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQlN0cmluZ0BAUUVBQUBQRUFHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQlN0cmluZzo6Q0JTdHJpbmcodm9pZCkgX19wdHI2NA0KKz8/MENCU3RyaW5nQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgR2VuZXJhbEV4Y2VwdGlvbjo6R2VuZXJhbEV4Y2VwdGlvbihjbGFzcyBHZW5lcmFsRXhjZXB0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MEdlbmVyYWxFeGNlcHRpb25AQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBHZW5lcmFsRXhjZXB0aW9uOjpHZW5lcmFsRXhjZXB0aW9uKGNsYXNzIFNubXBFcnJvclJlcG9ydCBjb25zdCAmIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBHZW5lcmFsRXhjZXB0aW9uQEBRRUFBQEFFQlZTbm1wRXJyb3JSZXBvcnRAQFBFQURIS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgR2VuZXJhbEV4Y2VwdGlvbjo6R2VuZXJhbEV4Y2VwdGlvbihlbnVtIFNubXBFcnJvcixlbnVtIFNubXBTdGF0dXMsY2hhciAqIF9fcHRyNjQsaW50LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBHZW5lcmFsRXhjZXB0aW9uQEBRRUFBQFc0U25tcEVycm9yQEBXNFNubXBTdGF0dXNAQFBFQURIS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgR2V0TmV4dE9wZXJhdGlvbjo6R2V0TmV4dE9wZXJhdGlvbihjbGFzcyBTbm1wU2Vzc2lvbiAmIF9fcHRyNjQsY2xhc3MgU25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBHZXROZXh0T3BlcmF0aW9uQEBRRUFBQEFFQVZTbm1wU2Vzc2lvbkBAQUVBVlNubXBBdXRvUmV0cmlldmVPcGVyYXRpb25AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgR2V0TmV4dE9wZXJhdGlvbjo6R2V0TmV4dE9wZXJhdGlvbihjbGFzcyBHZXROZXh0T3BlcmF0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MEdldE5leHRPcGVyYXRpb25AQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wQW5hbHlzZXI6OlNubXBBbmFseXNlcihjbGFzcyBTbm1wQW5hbHlzZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEFuYWx5c2VyQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEFuYWx5c2VyOjpTbm1wQW5hbHlzZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEFuYWx5c2VyQEBRRUFBQFBFQkdAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIFNubXBBdXRvUmV0cmlldmVPcGVyYXRpb246OlNubXBBdXRvUmV0cmlldmVPcGVyYXRpb24oY2xhc3MgU25tcFNlc3Npb24gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbkBASUVBQUBBRUFWU25tcFNlc3Npb25AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbjo6U25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbihjbGFzcyBTbm1wQXV0b1JldHJpZXZlT3BlcmF0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBBdXRvUmV0cmlldmVPcGVyYXRpb25AQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wQml0U3RyaW5nVHlwZTo6U25tcEJpdFN0cmluZ1R5cGUoY2xhc3MgU25tcEJpdFN0cmluZ1R5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEJpdFN0cmluZ1R5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wQml0U3RyaW5nVHlwZTo6U25tcEJpdFN0cmluZ1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEJpdFN0cmluZ1R5cGVAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEJpdFN0cmluZ1R5cGU6OlNubXBCaXRTdHJpbmdUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBTbm1wT2N0ZXRTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEJpdFN0cmluZ1R5cGVAQFFFQUFAUEVCR0FFQlZTbm1wT2N0ZXRTdHJpbmdAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEJpdFN0cmluZ1R5cGU6OlNubXBCaXRTdHJpbmdUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEJpdFN0cmluZ1R5cGVAQFFFQUFAUEVCR1BFQVBFQkdBRUJLQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBTbm1wQ2xhc3NMaWJyYXJ5OjpTbm1wQ2xhc3NMaWJyYXJ5KHZvaWQpIF9fcHRyNjQNCis/PzBTbm1wQ2xhc3NMaWJyYXJ5QEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcENsYXNzTGlicmFyeTo6U25tcENsYXNzTGlicmFyeShjbGFzcyBTbm1wQ2xhc3NMaWJyYXJ5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBDbGFzc0xpYnJhcnlAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wQ29tbXVuaXR5QmFzZWRTZWN1cml0eTo6U25tcENvbW11bml0eUJhc2VkU2VjdXJpdHkoY2xhc3MgU25tcENvbW11bml0eUJhc2VkU2VjdXJpdHkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcENvbW11bml0eUJhc2VkU2VjdXJpdHlAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wQ29tbXVuaXR5QmFzZWRTZWN1cml0eTo6U25tcENvbW11bml0eUJhc2VkU2VjdXJpdHkoY2xhc3MgU25tcE9jdGV0U3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5QEBRRUFBQEFFQlZTbm1wT2N0ZXRTdHJpbmdAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcENvbW11bml0eUJhc2VkU2VjdXJpdHk6OlNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5KGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcENvbW11bml0eUJhc2VkU2VjdXJpdHlAQFFFQUFAUEVCREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcENvdW50ZXI2NDo6U25tcENvdW50ZXI2NChjbGFzcyBTbm1wQ291bnRlcjY0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBDb3VudGVyNjRAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wQ291bnRlcjY0OjpTbm1wQ291bnRlcjY0KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNubXBDb3VudGVyNjRAQFFFQUFAS0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBDb3VudGVyNjRUeXBlOjpTbm1wQ291bnRlcjY0VHlwZShjbGFzcyBTbm1wQ291bnRlcjY0VHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wQ291bnRlcjY0VHlwZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBDb3VudGVyNjRUeXBlOjpTbm1wQ291bnRlcjY0VHlwZShjbGFzcyBTbm1wQ291bnRlcjY0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBDb3VudGVyNjRUeXBlQEBRRUFBQEFFQlZTbm1wQ291bnRlcjY0QEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBDb3VudGVyNjRUeXBlOjpTbm1wQ291bnRlcjY0VHlwZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBTbm1wQ291bnRlcjY0VHlwZUBAUUVBQUBLS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcENvdW50ZXI2NFR5cGU6OlNubXBDb3VudGVyNjRUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBDb3VudGVyNjRUeXBlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBDb3VudGVyNjRUeXBlOjpTbm1wQ291bnRlcjY0VHlwZSh2b2lkKSBfX3B0cjY0DQorPz8wU25tcENvdW50ZXI2NFR5cGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wQ291bnRlcjo6U25tcENvdW50ZXIoY2xhc3MgU25tcENvdW50ZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcENvdW50ZXJAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wQ291bnRlcjo6U25tcENvdW50ZXIodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNubXBDb3VudGVyQEBRRUFBQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBDb3VudGVyVHlwZTo6U25tcENvdW50ZXJUeXBlKGNsYXNzIFNubXBDb3VudGVyVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wQ291bnRlclR5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wQ291bnRlclR5cGU6OlNubXBDb3VudGVyVHlwZShjbGFzcyBTbm1wQ291bnRlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wQ291bnRlclR5cGVAQFFFQUFAQUVCVlNubXBDb3VudGVyQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBDb3VudGVyVHlwZTo6U25tcENvdW50ZXJUeXBlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBTbm1wQ291bnRlclR5cGVAQFFFQUFAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcENvdW50ZXJUeXBlOjpTbm1wQ291bnRlclR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcENvdW50ZXJUeXBlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBDb3VudGVyVHlwZTo6U25tcENvdW50ZXJUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBTbm1wQ291bnRlclR5cGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wRGF0ZVRpbWVUeXBlOjpTbm1wRGF0ZVRpbWVUeXBlKGNsYXNzIFNubXBEYXRlVGltZVR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcERhdGVUaW1lVHlwZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBEYXRlVGltZVR5cGU6OlNubXBEYXRlVGltZVR5cGUoY2xhc3MgU25tcE9jdGV0U3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBEYXRlVGltZVR5cGVAQFFFQUFAQUVCVlNubXBPY3RldFN0cmluZ0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wRGF0ZVRpbWVUeXBlOjpTbm1wRGF0ZVRpbWVUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBEYXRlVGltZVR5cGVAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcERhdGVUaW1lVHlwZTo6U25tcERhdGVUaW1lVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8wU25tcERhdGVUaW1lVHlwZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBEaXNwbGF5U3RyaW5nVHlwZTo6U25tcERpc3BsYXlTdHJpbmdUeXBlKGNsYXNzIFNubXBEaXNwbGF5U3RyaW5nVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wRGlzcGxheVN0cmluZ1R5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wRGlzcGxheVN0cmluZ1R5cGU6OlNubXBEaXNwbGF5U3RyaW5nVHlwZShjbGFzcyBTbm1wT2N0ZXRTdHJpbmcgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBEaXNwbGF5U3RyaW5nVHlwZUBAUUVBQUBBRUJWU25tcE9jdGV0U3RyaW5nQEBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wRGlzcGxheVN0cmluZ1R5cGU6OlNubXBEaXNwbGF5U3RyaW5nVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcERpc3BsYXlTdHJpbmdUeXBlQEBRRUFBQFBFQkcwQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wRGlzcGxheVN0cmluZ1R5cGU6OlNubXBEaXNwbGF5U3RyaW5nVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wRGlzcGxheVN0cmluZ1R5cGVAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEVuY29kZURlY29kZTo6U25tcEVuY29kZURlY29kZShjbGFzcyBTbm1wRW5jb2RlRGVjb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBFbmNvZGVEZWNvZGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wRW5jb2RlRGVjb2RlOjpTbm1wRW5jb2RlRGVjb2RlKHZvaWQpIF9fcHRyNjQNCis/PzBTbm1wRW5jb2RlRGVjb2RlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEVuZE9mTWliVmlldzo6U25tcEVuZE9mTWliVmlldyh2b2lkKSBfX3B0cjY0DQorPz8wU25tcEVuZE9mTWliVmlld0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBFbnVtZXJhdGVkVHlwZTo6U25tcEVudW1lcmF0ZWRUeXBlKGNsYXNzIFNubXBFbnVtZXJhdGVkVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wRW51bWVyYXRlZFR5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wRW51bWVyYXRlZFR5cGU6OlNubXBFbnVtZXJhdGVkVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEVudW1lcmF0ZWRUeXBlQEBRRUFBQFBFQkcwQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wRW51bWVyYXRlZFR5cGU6OlNubXBFbnVtZXJhdGVkVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wRW51bWVyYXRlZFR5cGVAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEVudW1lcmF0ZWRUeXBlOjpTbm1wRW51bWVyYXRlZFR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGxvbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEVudW1lcmF0ZWRUeXBlQEBRRUFBQFBFQkdBRUJKQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wRW51bWVyYXRlZFR5cGU6OlNubXBFbnVtZXJhdGVkVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgU25tcEludGVnZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEVudW1lcmF0ZWRUeXBlQEBRRUFBQFBFQkdBRUJWU25tcEludGVnZXJAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEVycm9yUmVwb3J0OjpTbm1wRXJyb3JSZXBvcnQoY2xhc3MgU25tcEVycm9yUmVwb3J0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBFcnJvclJlcG9ydEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBFcnJvclJlcG9ydDo6U25tcEVycm9yUmVwb3J0KGVudW0gU25tcEVycm9yLGVudW0gU25tcFN0YXR1cyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wU25tcEVycm9yUmVwb3J0QEBRRUFBQFc0U25tcEVycm9yQEBXNFNubXBTdGF0dXNAQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBFcnJvclJlcG9ydDo6U25tcEVycm9yUmVwb3J0KHZvaWQpIF9fcHRyNjQNCis/PzBTbm1wRXJyb3JSZXBvcnRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wRml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6U25tcEZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wRml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZUBAUUVBQUBBRUJLQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wRml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6U25tcEZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsY2xhc3MgU25tcE9jdGV0U3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlQEBRRUFBQEFFQktBRUJWU25tcE9jdGV0U3RyaW5nQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlOjpTbm1wRml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZSh1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wRml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZUBAUUVBQUBBRUJLUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGU6OlNubXBGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlKGNsYXNzIFNubXBGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlOjpTbm1wRml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wRml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGVAQFFFQUFAQUVCS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlOjpTbm1wRml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsY2xhc3MgU25tcE9jdGV0U3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZUBAUUVBQUBBRUJLQUVCVlNubXBPY3RldFN0cmluZ0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wRml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGU6OlNubXBGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZSh1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZUBAUUVBQUBBRUJLUEVCRUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlOjpTbm1wRml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlQEBRRUFBQEFFQktQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wRml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGU6OlNubXBGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZShjbGFzcyBTbm1wRml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEZpeGVkTGVuZ3RoT3BhcXVlVHlwZTo6U25tcEZpeGVkTGVuZ3RoT3BhcXVlVHlwZSh1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBGaXhlZExlbmd0aE9wYXF1ZVR5cGVAQFFFQUFAQUVCS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEZpeGVkTGVuZ3RoT3BhcXVlVHlwZTo6U25tcEZpeGVkTGVuZ3RoT3BhcXVlVHlwZSh1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBTbm1wT3BhcXVlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBGaXhlZExlbmd0aE9wYXF1ZVR5cGVAQFFFQUFAQUVCS0FFQlZTbm1wT3BhcXVlQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBGaXhlZExlbmd0aE9wYXF1ZVR5cGU6OlNubXBGaXhlZExlbmd0aE9wYXF1ZVR5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNubXBGaXhlZExlbmd0aE9wYXF1ZVR5cGVAQFFFQUFAQUVCS1BFQkVLQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wRml4ZWRMZW5ndGhPcGFxdWVUeXBlOjpTbm1wRml4ZWRMZW5ndGhPcGFxdWVUeXBlKHVuc2lnbmVkIGxvbmcgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBGaXhlZExlbmd0aE9wYXF1ZVR5cGVAQFFFQUFAQUVCS1BFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBGaXhlZExlbmd0aE9wYXF1ZVR5cGU6OlNubXBGaXhlZExlbmd0aE9wYXF1ZVR5cGUoY2xhc3MgU25tcEZpeGVkTGVuZ3RoT3BhcXVlVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wRml4ZWRMZW5ndGhPcGFxdWVUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlOjpTbm1wRml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wRml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGVAQFFFQUFAQUVCS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlOjpTbm1wRml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsY2xhc3MgU25tcE9jdGV0U3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZUBAUUVBQUBBRUJLQUVCVlNubXBPY3RldFN0cmluZ0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wRml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGU6OlNubXBGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZSh1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wRml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGVAQFFFQUFAQUVCS1BFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZTo6U25tcEZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlKGNsYXNzIFNubXBGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wRml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wRml4ZWRUeXBlOjpTbm1wRml4ZWRUeXBlKGNsYXNzIFNubXBGaXhlZFR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEZpeGVkVHlwZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBGaXhlZFR5cGU6OlNubXBGaXhlZFR5cGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNubXBGaXhlZFR5cGVAQFFFQUFAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEdhdWdlOjpTbm1wR2F1Z2UoY2xhc3MgU25tcEdhdWdlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBHYXVnZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBHYXVnZTo6U25tcEdhdWdlKGxvbmcpIF9fcHRyNjQNCis/PzBTbm1wR2F1Z2VAQFFFQUFASkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEdhdWdlVHlwZTo6U25tcEdhdWdlVHlwZShjbGFzcyBTbm1wR2F1Z2VUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBHYXVnZVR5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wR2F1Z2VUeXBlOjpTbm1wR2F1Z2VUeXBlKGNsYXNzIFNubXBHYXVnZSBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEdhdWdlVHlwZUBAUUVBQUBBRUJWU25tcEdhdWdlQEBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wR2F1Z2VUeXBlOjpTbm1wR2F1Z2VUeXBlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEdhdWdlVHlwZUBAUUVBQUBLUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEdhdWdlVHlwZTo6U25tcEdhdWdlVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEdhdWdlVHlwZUBAUUVBQUBQRUJHMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEdhdWdlVHlwZTo6U25tcEdhdWdlVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wR2F1Z2VUeXBlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBHZXROZXh0T3BlcmF0aW9uOjpTbm1wR2V0TmV4dE9wZXJhdGlvbihjbGFzcyBTbm1wU2Vzc2lvbiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wR2V0TmV4dE9wZXJhdGlvbkBAUUVBQUBBRUFWU25tcFNlc3Npb25AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEdldE5leHRPcGVyYXRpb246OlNubXBHZXROZXh0T3BlcmF0aW9uKGNsYXNzIFNubXBHZXROZXh0T3BlcmF0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBHZXROZXh0T3BlcmF0aW9uQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEdldE9wZXJhdGlvbjo6U25tcEdldE9wZXJhdGlvbihjbGFzcyBTbm1wU2Vzc2lvbiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wR2V0T3BlcmF0aW9uQEBRRUFBQEFFQVZTbm1wU2Vzc2lvbkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wR2V0T3BlcmF0aW9uOjpTbm1wR2V0T3BlcmF0aW9uKGNsYXNzIFNubXBHZXRPcGVyYXRpb24gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEdldE9wZXJhdGlvbkBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBJUFhBZGRyZXNzVHlwZTo6U25tcElQWEFkZHJlc3NUeXBlKGNsYXNzIFNubXBJUFhBZGRyZXNzVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wSVBYQWRkcmVzc1R5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wSVBYQWRkcmVzc1R5cGU6OlNubXBJUFhBZGRyZXNzVHlwZShjbGFzcyBTbm1wT2N0ZXRTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcElQWEFkZHJlc3NUeXBlQEBRRUFBQEFFQlZTbm1wT2N0ZXRTdHJpbmdAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcElQWEFkZHJlc3NUeXBlOjpTbm1wSVBYQWRkcmVzc1R5cGUodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wSVBYQWRkcmVzc1R5cGVAQFFFQUFAUEVCRUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcElQWEFkZHJlc3NUeXBlOjpTbm1wSVBYQWRkcmVzc1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcElQWEFkZHJlc3NUeXBlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBJUFhBZGRyZXNzVHlwZTo6U25tcElQWEFkZHJlc3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBTbm1wSVBYQWRkcmVzc1R5cGVAQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBTbm1wSW1wU2Vzc2lvbjo6U25tcEltcFNlc3Npb24oY2xhc3MgU25tcFRyYW5zcG9ydCAmIF9fcHRyNjQsY2xhc3MgU25tcFNlY3VyaXR5ICYgX19wdHI2NCxjbGFzcyBTbm1wRW5jb2RlRGVjb2RlICYgX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wU25tcEltcFNlc3Npb25AQElFQUFAQUVBVlNubXBUcmFuc3BvcnRAQEFFQVZTbm1wU2VjdXJpdHlAQEFFQVZTbm1wRW5jb2RlRGVjb2RlQEBLS0tLQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wSW1wVHJhbnNwb3J0OjpTbm1wSW1wVHJhbnNwb3J0KGNsYXNzIFNubXBTZXNzaW9uICYgX19wdHI2NCxjbGFzcyBTbm1wVHJhbnNwb3J0QWRkcmVzcyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wSW1wVHJhbnNwb3J0QEBRRUFBQEFFQVZTbm1wU2Vzc2lvbkBAQUVCVlNubXBUcmFuc3BvcnRBZGRyZXNzQEBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIFNubXBJbnN0YW5jZVR5cGU6OlNubXBJbnN0YW5jZVR5cGUoY2xhc3MgU25tcEluc3RhbmNlVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wSW5zdGFuY2VUeXBlQEBJRUFBQEFFQlYwQEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgU25tcEluc3RhbmNlVHlwZTo6U25tcEluc3RhbmNlVHlwZShpbnQsaW50KSBfX3B0cjY0DQorPz8wU25tcEluc3RhbmNlVHlwZUBASUVBQUBISEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEludGVnZXI6OlNubXBJbnRlZ2VyKGNsYXNzIFNubXBJbnRlZ2VyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBJbnRlZ2VyQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEludGVnZXI6OlNubXBJbnRlZ2VyKGxvbmcpIF9fcHRyNjQNCis/PzBTbm1wSW50ZWdlckBAUUVBQUBKQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wSW50ZWdlclR5cGU6OlNubXBJbnRlZ2VyVHlwZShjbGFzcyBTbm1wSW50ZWdlclR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEludGVnZXJUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEludGVnZXJUeXBlOjpTbm1wSW50ZWdlclR5cGUoY2xhc3MgU25tcEludGVnZXIgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBJbnRlZ2VyVHlwZUBAUUVBQUBBRUJWU25tcEludGVnZXJAQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBJbnRlZ2VyVHlwZTo6U25tcEludGVnZXJUeXBlKGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEludGVnZXJUeXBlQEBRRUFBQEpQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wSW50ZWdlclR5cGU6OlNubXBJbnRlZ2VyVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEludGVnZXJUeXBlQEBRRUFBQFBFQkcwQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wSW50ZWdlclR5cGU6OlNubXBJbnRlZ2VyVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wSW50ZWdlclR5cGVAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcElwQWRkcmVzczo6U25tcElwQWRkcmVzcyhjbGFzcyBTbm1wSXBBZGRyZXNzIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBJcEFkZHJlc3NAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wSXBBZGRyZXNzOjpTbm1wSXBBZGRyZXNzKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBTbm1wSXBBZGRyZXNzQEBRRUFBQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBJcEFkZHJlc3M6OlNubXBJcEFkZHJlc3MoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wSXBBZGRyZXNzQEBRRUFBQFBFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBJcEFkZHJlc3NUeXBlOjpTbm1wSXBBZGRyZXNzVHlwZShjbGFzcyBTbm1wSXBBZGRyZXNzVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wSXBBZGRyZXNzVHlwZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBJcEFkZHJlc3NUeXBlOjpTbm1wSXBBZGRyZXNzVHlwZShjbGFzcyBTbm1wSXBBZGRyZXNzIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBJcEFkZHJlc3NUeXBlQEBRRUFBQEFFQlZTbm1wSXBBZGRyZXNzQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBJcEFkZHJlc3NUeXBlOjpTbm1wSXBBZGRyZXNzVHlwZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wU25tcElwQWRkcmVzc1R5cGVAQFFFQUFAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcElwQWRkcmVzc1R5cGU6OlNubXBJcEFkZHJlc3NUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBJcEFkZHJlc3NUeXBlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBJcEFkZHJlc3NUeXBlOjpTbm1wSXBBZGRyZXNzVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8wU25tcElwQWRkcmVzc1R5cGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wSXB4SW1wOjpTbm1wSXB4SW1wKGNsYXNzIFNubXBTZXNzaW9uICYgX19wdHI2NCxjbGFzcyBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzcyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wSXB4SW1wQEBRRUFBQEFFQVZTbm1wU2Vzc2lvbkBAQUVCVlNubXBUcmFuc3BvcnRJcHhBZGRyZXNzQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBJcHhJbXA6OlNubXBJcHhJbXAoY2xhc3MgU25tcFNlc3Npb24gJiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcElweEltcEBAUUVBQUBBRUFWU25tcFNlc3Npb25AQFBFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBJcHhJbXA6OlNubXBJcHhJbXAoY2xhc3MgU25tcFNlc3Npb24gJiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcElweEltcEBAUUVBQUBBRUFWU25tcFNlc3Npb25AQFBFQkVAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBJcHhUcmFuc3BvcnQ6OlNubXBJcHhUcmFuc3BvcnQoY2xhc3MgU25tcFNlc3Npb24gJiBfX3B0cjY0LGNsYXNzIFNubXBUcmFuc3BvcnRJcHhBZGRyZXNzIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBJcHhUcmFuc3BvcnRAQFFFQUFAQUVBVlNubXBTZXNzaW9uQEBBRUJWU25tcFRyYW5zcG9ydElweEFkZHJlc3NAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcExleGljb246OlNubXBMZXhpY29uKHZvaWQpIF9fcHRyNjQNCis/PzBTbm1wTGV4aWNvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBNYWNBZGRyZXNzVHlwZTo6U25tcE1hY0FkZHJlc3NUeXBlKGNsYXNzIFNubXBNYWNBZGRyZXNzVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wTWFjQWRkcmVzc1R5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wTWFjQWRkcmVzc1R5cGU6OlNubXBNYWNBZGRyZXNzVHlwZShjbGFzcyBTbm1wT2N0ZXRTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcE1hY0FkZHJlc3NUeXBlQEBRRUFBQEFFQlZTbm1wT2N0ZXRTdHJpbmdAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcE1hY0FkZHJlc3NUeXBlOjpTbm1wTWFjQWRkcmVzc1R5cGUodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wTWFjQWRkcmVzc1R5cGVAQFFFQUFAUEVCRUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcE1hY0FkZHJlc3NUeXBlOjpTbm1wTWFjQWRkcmVzc1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcE1hY0FkZHJlc3NUeXBlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBNYWNBZGRyZXNzVHlwZTo6U25tcE1hY0FkZHJlc3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBTbm1wTWFjQWRkcmVzc1R5cGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wTmVnYXRpdmVSYW5nZVR5cGU6OlNubXBOZWdhdGl2ZVJhbmdlVHlwZShjbGFzcyBTbm1wTmVnYXRpdmVSYW5nZVR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcE5lZ2F0aXZlUmFuZ2VUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcE5lZ2F0aXZlUmFuZ2VUeXBlOjpTbm1wTmVnYXRpdmVSYW5nZVR5cGUobG9uZyxsb25nKSBfX3B0cjY0DQorPz8wU25tcE5lZ2F0aXZlUmFuZ2VUeXBlQEBRRUFBQEpKQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wTmVnYXRpdmVSYW5nZVR5cGU6OlNubXBOZWdhdGl2ZVJhbmdlVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8wU25tcE5lZ2F0aXZlUmFuZ2VUeXBlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcE5ldHdvcmtBZGRyZXNzVHlwZTo6U25tcE5ldHdvcmtBZGRyZXNzVHlwZShjbGFzcyBTbm1wTmV0d29ya0FkZHJlc3NUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBOZXR3b3JrQWRkcmVzc1R5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wTmV0d29ya0FkZHJlc3NUeXBlOjpTbm1wTmV0d29ya0FkZHJlc3NUeXBlKGNsYXNzIFNubXBJcEFkZHJlc3MgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcE5ldHdvcmtBZGRyZXNzVHlwZUBAUUVBQUBBRUJWU25tcElwQWRkcmVzc0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wTmV0d29ya0FkZHJlc3NUeXBlOjpTbm1wTmV0d29ya0FkZHJlc3NUeXBlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBTbm1wTmV0d29ya0FkZHJlc3NUeXBlQEBRRUFBQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBOZXR3b3JrQWRkcmVzc1R5cGU6OlNubXBOZXR3b3JrQWRkcmVzc1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcE5ldHdvcmtBZGRyZXNzVHlwZUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wTmV0d29ya0FkZHJlc3NUeXBlOjpTbm1wTmV0d29ya0FkZHJlc3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBTbm1wTmV0d29ya0FkZHJlc3NUeXBlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcE5vU3VjaEluc3RhbmNlOjpTbm1wTm9TdWNoSW5zdGFuY2Uodm9pZCkgX19wdHI2NA0KKz8/MFNubXBOb1N1Y2hJbnN0YW5jZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBOb1N1Y2hPYmplY3Q6OlNubXBOb1N1Y2hPYmplY3Qodm9pZCkgX19wdHI2NA0KKz8/MFNubXBOb1N1Y2hPYmplY3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wTnVsbDo6U25tcE51bGwodm9pZCkgX19wdHI2NA0KKz8/MFNubXBOdWxsQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcE51bGxUeXBlOjpTbm1wTnVsbFR5cGUoY2xhc3MgU25tcE51bGxUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBOdWxsVHlwZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBOdWxsVHlwZTo6U25tcE51bGxUeXBlKGNsYXNzIFNubXBOdWxsIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBOdWxsVHlwZUBAUUVBQUBBRUJWU25tcE51bGxAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcE51bGxUeXBlOjpTbm1wTnVsbFR5cGUodm9pZCkgX19wdHI2NA0KKz8/MFNubXBOdWxsVHlwZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBPU0lBZGRyZXNzVHlwZTo6U25tcE9TSUFkZHJlc3NUeXBlKGNsYXNzIFNubXBPU0lBZGRyZXNzVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wT1NJQWRkcmVzc1R5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wT1NJQWRkcmVzc1R5cGU6OlNubXBPU0lBZGRyZXNzVHlwZShjbGFzcyBTbm1wT2N0ZXRTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcE9TSUFkZHJlc3NUeXBlQEBRRUFBQEFFQlZTbm1wT2N0ZXRTdHJpbmdAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcE9TSUFkZHJlc3NUeXBlOjpTbm1wT1NJQWRkcmVzc1R5cGUodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNubXBPU0lBZGRyZXNzVHlwZUBAUUVBQUBQRUJFS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcE9TSUFkZHJlc3NUeXBlOjpTbm1wT1NJQWRkcmVzc1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcE9TSUFkZHJlc3NUeXBlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBPU0lBZGRyZXNzVHlwZTo6U25tcE9TSUFkZHJlc3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBTbm1wT1NJQWRkcmVzc1R5cGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllcjo6U25tcE9iamVjdElkZW50aWZpZXIoY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcE9iamVjdElkZW50aWZpZXJAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllcjo6U25tcE9iamVjdElkZW50aWZpZXIoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wT2JqZWN0SWRlbnRpZmllckBAUUVBQUBQRUJEQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllcjo6U25tcE9iamVjdElkZW50aWZpZXIodW5zaWduZWQgbG9uZyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNubXBPYmplY3RJZGVudGlmaWVyQEBRRUFBQFBFQktLQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllclR5cGU6OlNubXBPYmplY3RJZGVudGlmaWVyVHlwZShjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllclR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcE9iamVjdElkZW50aWZpZXJUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcE9iamVjdElkZW50aWZpZXJUeXBlOjpTbm1wT2JqZWN0SWRlbnRpZmllclR5cGUoY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcE9iamVjdElkZW50aWZpZXJUeXBlQEBRRUFBQEFFQlZTbm1wT2JqZWN0SWRlbnRpZmllckBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllclR5cGU6OlNubXBPYmplY3RJZGVudGlmaWVyVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wT2JqZWN0SWRlbnRpZmllclR5cGVAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcE9iamVjdElkZW50aWZpZXJUeXBlOjpTbm1wT2JqZWN0SWRlbnRpZmllclR5cGUodW5zaWduZWQgbG9uZyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNubXBPYmplY3RJZGVudGlmaWVyVHlwZUBAUUVBQUBQRUJLS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcE9iamVjdElkZW50aWZpZXJUeXBlOjpTbm1wT2JqZWN0SWRlbnRpZmllclR5cGUodm9pZCkgX19wdHI2NA0KKz8/MFNubXBPYmplY3RJZGVudGlmaWVyVHlwZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBPY3RldFN0cmluZzo6U25tcE9jdGV0U3RyaW5nKGNsYXNzIFNubXBPY3RldFN0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wT2N0ZXRTdHJpbmdAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wT2N0ZXRTdHJpbmc6OlNubXBPY3RldFN0cmluZyh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wU25tcE9jdGV0U3RyaW5nQEBRRUFBQFBFQkVLQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wT2N0ZXRTdHJpbmdUeXBlOjpTbm1wT2N0ZXRTdHJpbmdUeXBlKGNsYXNzIFNubXBPY3RldFN0cmluZ1R5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcE9jdGV0U3RyaW5nVHlwZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBPY3RldFN0cmluZ1R5cGU6OlNubXBPY3RldFN0cmluZ1R5cGUoY2xhc3MgU25tcE9jdGV0U3RyaW5nIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wT2N0ZXRTdHJpbmdUeXBlQEBRRUFBQEFFQlZTbm1wT2N0ZXRTdHJpbmdAQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBPY3RldFN0cmluZ1R5cGU6OlNubXBPY3RldFN0cmluZ1R5cGUodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wT2N0ZXRTdHJpbmdUeXBlQEBRRUFBQFBFQkVLUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcE9jdGV0U3RyaW5nVHlwZTo6U25tcE9jdGV0U3RyaW5nVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcE9jdGV0U3RyaW5nVHlwZUBAUUVBQUBQRUJHMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcE9jdGV0U3RyaW5nVHlwZTo6U25tcE9jdGV0U3RyaW5nVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wT2N0ZXRTdHJpbmdUeXBlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBPcGFxdWU6OlNubXBPcGFxdWUoY2xhc3MgU25tcE9wYXF1ZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wT3BhcXVlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcE9wYXF1ZTo6U25tcE9wYXF1ZSh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wU25tcE9wYXF1ZUBAUUVBQUBQRUJFS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcE9wYXF1ZVR5cGU6OlNubXBPcGFxdWVUeXBlKGNsYXNzIFNubXBPcGFxdWVUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBPcGFxdWVUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcE9wYXF1ZVR5cGU6OlNubXBPcGFxdWVUeXBlKGNsYXNzIFNubXBPcGFxdWUgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBPcGFxdWVUeXBlQEBRRUFBQEFFQlZTbm1wT3BhcXVlQEBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wT3BhcXVlVHlwZTo6U25tcE9wYXF1ZVR5cGUodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wT3BhcXVlVHlwZUBAUUVBQUBQRUJFS1BFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBPcGFxdWVUeXBlOjpTbm1wT3BhcXVlVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcE9wYXF1ZVR5cGVAQFFFQUFAUEVCRzBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBPcGFxdWVUeXBlOjpTbm1wT3BhcXVlVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wT3BhcXVlVHlwZUBAUUVBQUBQRUJHQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBTbm1wT3BlcmF0aW9uOjpTbm1wT3BlcmF0aW9uKGNsYXNzIFNubXBTZXNzaW9uICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBPcGVyYXRpb25AQElFQUFAQUVBVlNubXBTZXNzaW9uQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBPcGVyYXRpb246OlNubXBPcGVyYXRpb24oY2xhc3MgU25tcE9wZXJhdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wT3BlcmF0aW9uQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFBkdTo6U25tcFBkdShjbGFzcyBTbm1wUGR1ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBQZHVAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wUGR1OjpTbm1wUGR1KHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcFBkdUBAUUVBQUBQRUJFQUVCS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFBkdTo6U25tcFBkdSh2b2lkKSBfX3B0cjY0DQorPz8wU25tcFBkdUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBQaHlzQWRkcmVzc1R5cGU6OlNubXBQaHlzQWRkcmVzc1R5cGUoY2xhc3MgU25tcFBoeXNBZGRyZXNzVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wUGh5c0FkZHJlc3NUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFBoeXNBZGRyZXNzVHlwZTo6U25tcFBoeXNBZGRyZXNzVHlwZShjbGFzcyBTbm1wT2N0ZXRTdHJpbmcgY29uc3QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBQaHlzQWRkcmVzc1R5cGVAQFFFQUFAQUVCVlNubXBPY3RldFN0cmluZ0BAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFBoeXNBZGRyZXNzVHlwZTo6U25tcFBoeXNBZGRyZXNzVHlwZSh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBQaHlzQWRkcmVzc1R5cGVAQFFFQUFAUEVCRUtQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wUGh5c0FkZHJlc3NUeXBlOjpTbm1wUGh5c0FkZHJlc3NUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wUGh5c0FkZHJlc3NUeXBlQEBRRUFBQFBFQkcwQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wUGh5c0FkZHJlc3NUeXBlOjpTbm1wUGh5c0FkZHJlc3NUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBQaHlzQWRkcmVzc1R5cGVAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFBvc2l0aXZlUmFuZ2VUeXBlOjpTbm1wUG9zaXRpdmVSYW5nZVR5cGUoY2xhc3MgU25tcFBvc2l0aXZlUmFuZ2VUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBQb3NpdGl2ZVJhbmdlVHlwZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBQb3NpdGl2ZVJhbmdlVHlwZTo6U25tcFBvc2l0aXZlUmFuZ2VUeXBlKHVuc2lnbmVkIGxvbmcsbG9uZykgX19wdHI2NA0KKz8/MFNubXBQb3NpdGl2ZVJhbmdlVHlwZUBAUUVBQUBLSkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFBvc2l0aXZlUmFuZ2VUeXBlOjpTbm1wUG9zaXRpdmVSYW5nZVR5cGUodm9pZCkgX19wdHI2NA0KKz8/MFNubXBQb3NpdGl2ZVJhbmdlVHlwZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBQb3NpdGl2ZVJhbmdlZFR5cGU6OlNubXBQb3NpdGl2ZVJhbmdlZFR5cGUoY2xhc3MgU25tcFBvc2l0aXZlUmFuZ2VkVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wUG9zaXRpdmVSYW5nZWRUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFBvc2l0aXZlUmFuZ2VkVHlwZTo6U25tcFBvc2l0aXZlUmFuZ2VkVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wUG9zaXRpdmVSYW5nZWRUeXBlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBSb3dTdGF0dXNUeXBlOjpTbm1wUm93U3RhdHVzVHlwZShsb25nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBSb3dTdGF0dXNUeXBlQEBRRUFBQEFFQkpAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBSb3dTdGF0dXNUeXBlOjpTbm1wUm93U3RhdHVzVHlwZShjbGFzcyBTbm1wUm93U3RhdHVzVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wUm93U3RhdHVzVHlwZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBSb3dTdGF0dXNUeXBlOjpTbm1wUm93U3RhdHVzVHlwZShjbGFzcyBTbm1wSW50ZWdlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wUm93U3RhdHVzVHlwZUBAUUVBQUBBRUJWU25tcEludGVnZXJAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFJvd1N0YXR1c1R5cGU6OlNubXBSb3dTdGF0dXNUeXBlKGVudW0gU25tcFJvd1N0YXR1c1R5cGU6OlNubXBSb3dTdGF0dXNFbnVtIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBSb3dTdGF0dXNUeXBlQEBRRUFBQEFFQlc0U25tcFJvd1N0YXR1c0VudW1AMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBSb3dTdGF0dXNUeXBlOjpTbm1wUm93U3RhdHVzVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wUm93U3RhdHVzVHlwZUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wUm93U3RhdHVzVHlwZTo6U25tcFJvd1N0YXR1c1R5cGUodm9pZCkgX19wdHI2NA0KKz8/MFNubXBSb3dTdGF0dXNUeXBlQEBRRUFBQFhaDQorOyBwcml2YXRlOiBfX2NkZWNsIFNubXBTZWN1cml0eTo6U25tcFNlY3VyaXR5KGNsYXNzIFNubXBTZWN1cml0eSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wU2VjdXJpdHlAQEFFQUFAQUVCVjBAQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBTbm1wU2VjdXJpdHk6OlNubXBTZWN1cml0eSh2b2lkKSBfX3B0cjY0DQorPz8wU25tcFNlY3VyaXR5QEBJRUFBQFhaDQorOyBwcml2YXRlOiBfX2NkZWNsIFNubXBTZXNzaW9uOjpTbm1wU2Vzc2lvbihjbGFzcyBTbm1wU2Vzc2lvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wU2Vzc2lvbkBAQUVBQUBBRUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIFNubXBTZXNzaW9uOjpTbm1wU2Vzc2lvbihjbGFzcyBTbm1wVHJhbnNwb3J0ICYgX19wdHI2NCxjbGFzcyBTbm1wU2VjdXJpdHkgJiBfX3B0cjY0LGNsYXNzIFNubXBFbmNvZGVEZWNvZGUgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBTbm1wU2Vzc2lvbkBASUVBQUBBRUFWU25tcFRyYW5zcG9ydEBAQUVBVlNubXBTZWN1cml0eUBAQUVBVlNubXBFbmNvZGVEZWNvZGVAQEtLS0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBTZXRPcGVyYXRpb246OlNubXBTZXRPcGVyYXRpb24oY2xhc3MgU25tcFNlc3Npb24gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcFNldE9wZXJhdGlvbkBAUUVBQUBBRUFWU25tcFNlc3Npb25AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFNldE9wZXJhdGlvbjo6U25tcFNldE9wZXJhdGlvbihjbGFzcyBTbm1wU2V0T3BlcmF0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBTZXRPcGVyYXRpb25AQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVGltZVRpY2tzOjpTbm1wVGltZVRpY2tzKGNsYXNzIFNubXBUaW1lVGlja3MgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcFRpbWVUaWNrc0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBUaW1lVGlja3M6OlNubXBUaW1lVGlja3ModW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNubXBUaW1lVGlja3NAQFFFQUFAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFRpbWVUaWNrc1R5cGU6OlNubXBUaW1lVGlja3NUeXBlKGNsYXNzIFNubXBUaW1lVGlja3NUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBUaW1lVGlja3NUeXBlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFRpbWVUaWNrc1R5cGU6OlNubXBUaW1lVGlja3NUeXBlKGNsYXNzIFNubXBUaW1lVGlja3MgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcFRpbWVUaWNrc1R5cGVAQFFFQUFAQUVCVlNubXBUaW1lVGlja3NAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFRpbWVUaWNrc1R5cGU6OlNubXBUaW1lVGlja3NUeXBlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBTbm1wVGltZVRpY2tzVHlwZUBAUUVBQUBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVGltZVRpY2tzVHlwZTo6U25tcFRpbWVUaWNrc1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcFRpbWVUaWNrc1R5cGVAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFRpbWVUaWNrc1R5cGU6OlNubXBUaW1lVGlja3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBTbm1wVGltZVRpY2tzVHlwZUBAUUVBQUBYWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBTbm1wVHJhbnNwb3J0OjpTbm1wVHJhbnNwb3J0KGNsYXNzIFNubXBUcmFuc3BvcnQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcFRyYW5zcG9ydEBAQUVBQUBBRUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIFNubXBUcmFuc3BvcnQ6OlNubXBUcmFuc3BvcnQoY2xhc3MgU25tcFNlc3Npb24gJiBfX3B0cjY0LGNsYXNzIFNubXBUcmFuc3BvcnRBZGRyZXNzIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBUcmFuc3BvcnRAQElFQUFAQUVBVlNubXBTZXNzaW9uQEBBRUJWU25tcFRyYW5zcG9ydEFkZHJlc3NAQEBaDQorOyBwcml2YXRlOiBfX2NkZWNsIFNubXBUcmFuc3BvcnRBZGRyZXNzOjpTbm1wVHJhbnNwb3J0QWRkcmVzcyhjbGFzcyBTbm1wVHJhbnNwb3J0QWRkcmVzcyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wVHJhbnNwb3J0QWRkcmVzc0BAQUVBQUBBRUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIFNubXBUcmFuc3BvcnRBZGRyZXNzOjpTbm1wVHJhbnNwb3J0QWRkcmVzcyh2b2lkKSBfX3B0cjY0DQorPz8wU25tcFRyYW5zcG9ydEFkZHJlc3NAQElFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVHJhbnNwb3J0SXBBZGRyZXNzOjpTbm1wVHJhbnNwb3J0SXBBZGRyZXNzKGNsYXNzIFNubXBUcmFuc3BvcnRJcEFkZHJlc3MgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcFRyYW5zcG9ydElwQWRkcmVzc0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBUcmFuc3BvcnRJcEFkZHJlc3M6OlNubXBUcmFuc3BvcnRJcEFkZHJlc3ModW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNubXBUcmFuc3BvcnRJcEFkZHJlc3NAQFFFQUFAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFRyYW5zcG9ydElwQWRkcmVzczo6U25tcFRyYW5zcG9ydElwQWRkcmVzcyhjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wU25tcFRyYW5zcG9ydElwQWRkcmVzc0BAUUVBQUBQRUJES0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFRyYW5zcG9ydElwQWRkcmVzczo6U25tcFRyYW5zcG9ydElwQWRkcmVzcyh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz8/MFNubXBUcmFuc3BvcnRJcEFkZHJlc3NAQFFFQUFAUEVCRUdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBUcmFuc3BvcnRJcEFkZHJlc3M6OlNubXBUcmFuc3BvcnRJcEFkZHJlc3Modm9pZCkgX19wdHI2NA0KKz8/MFNubXBUcmFuc3BvcnRJcEFkZHJlc3NAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzczo6U25tcFRyYW5zcG9ydElweEFkZHJlc3MoY2xhc3MgU25tcFRyYW5zcG9ydElweEFkZHJlc3MgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcFRyYW5zcG9ydElweEFkZHJlc3NAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzczo6U25tcFRyYW5zcG9ydElweEFkZHJlc3MoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzc0BAUUVBQUBQRUJEQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzczo6U25tcFRyYW5zcG9ydElweEFkZHJlc3ModW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/PzBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzc0BAUUVBQUBQRUJFR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFRyYW5zcG9ydElweEFkZHJlc3M6OlNubXBUcmFuc3BvcnRJcHhBZGRyZXNzKHZvaWQpIF9fcHRyNjQNCis/PzBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzc0BAUUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIFNubXBUcmFwUmVjZWl2ZXI6OlNubXBUcmFwUmVjZWl2ZXIodm9pZCkgX19wdHI2NA0KKz8/MFNubXBUcmFwUmVjZWl2ZXJAQElFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVHJhcFJlY2VpdmVyOjpTbm1wVHJhcFJlY2VpdmVyKGNsYXNzIFNubXBUcmFwUmVjZWl2ZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcFRyYXBSZWNlaXZlckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBVRFBBZGRyZXNzVHlwZTo6U25tcFVEUEFkZHJlc3NUeXBlKGNsYXNzIFNubXBVRFBBZGRyZXNzVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wVURQQWRkcmVzc1R5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVURQQWRkcmVzc1R5cGU6OlNubXBVRFBBZGRyZXNzVHlwZShjbGFzcyBTbm1wT2N0ZXRTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcFVEUEFkZHJlc3NUeXBlQEBRRUFBQEFFQlZTbm1wT2N0ZXRTdHJpbmdAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFVEUEFkZHJlc3NUeXBlOjpTbm1wVURQQWRkcmVzc1R5cGUodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wVURQQWRkcmVzc1R5cGVAQFFFQUFAUEVCRUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFVEUEFkZHJlc3NUeXBlOjpTbm1wVURQQWRkcmVzc1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcFVEUEFkZHJlc3NUeXBlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBVRFBBZGRyZXNzVHlwZTo6U25tcFVEUEFkZHJlc3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzBTbm1wVURQQWRkcmVzc1R5cGVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVUludGVnZXIzMjo6U25tcFVJbnRlZ2VyMzIoY2xhc3MgU25tcFVJbnRlZ2VyMzIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcFVJbnRlZ2VyMzJAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVUludGVnZXIzMjo6U25tcFVJbnRlZ2VyMzIobG9uZykgX19wdHI2NA0KKz8/MFNubXBVSW50ZWdlcjMyQEBRRUFBQEpAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBVSW50ZWdlcjMyVHlwZTo6U25tcFVJbnRlZ2VyMzJUeXBlKGNsYXNzIFNubXBVSW50ZWdlcjMyVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wVUludGVnZXIzMlR5cGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVUludGVnZXIzMlR5cGU6OlNubXBVSW50ZWdlcjMyVHlwZShjbGFzcyBTbm1wVUludGVnZXIzMiBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcFVJbnRlZ2VyMzJUeXBlQEBRRUFBQEFFQlZTbm1wVUludGVnZXIzMkBAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFVJbnRlZ2VyMzJUeXBlOjpTbm1wVUludGVnZXIzMlR5cGUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wVUludGVnZXIzMlR5cGVAQFFFQUFAS1BFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBVSW50ZWdlcjMyVHlwZTo6U25tcFVJbnRlZ2VyMzJUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wVUludGVnZXIzMlR5cGVAQFFFQUFAUEVCRzBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBVSW50ZWdlcjMyVHlwZTo6U25tcFVJbnRlZ2VyMzJUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBVSW50ZWdlcjMyVHlwZUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVWRwSXBJbXA6OlNubXBVZHBJcEltcChjbGFzcyBTbm1wU2Vzc2lvbiAmIF9fcHRyNjQsY2xhc3MgU25tcFRyYW5zcG9ydElwQWRkcmVzcyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wVWRwSXBJbXBAQFFFQUFAQUVBVlNubXBTZXNzaW9uQEBBRUJWU25tcFRyYW5zcG9ydElwQWRkcmVzc0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVWRwSXBJbXA6OlNubXBVZHBJcEltcChjbGFzcyBTbm1wU2Vzc2lvbiAmIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNubXBVZHBJcEltcEBAUUVBQUBBRUFWU25tcFNlc3Npb25AQFBFQkRLQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVWRwSXBJbXA6OlNubXBVZHBJcEltcChjbGFzcyBTbm1wU2Vzc2lvbiAmIF9fcHRyNjQsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wVWRwSXBJbXBAQFFFQUFAQUVBVlNubXBTZXNzaW9uQEBQRUJFQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVWRwSXBUcmFuc3BvcnQ6OlNubXBVZHBJcFRyYW5zcG9ydChjbGFzcyBTbm1wU2Vzc2lvbiAmIF9fcHRyNjQsY2xhc3MgU25tcFRyYW5zcG9ydElwQWRkcmVzcyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wVWRwSXBUcmFuc3BvcnRAQFFFQUFAQUVBVlNubXBTZXNzaW9uQEBBRUJWU25tcFRyYW5zcG9ydElwQWRkcmVzc0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVjFFbmNvZGVEZWNvZGU6OlNubXBWMUVuY29kZURlY29kZShjbGFzcyBTbm1wVjFFbmNvZGVEZWNvZGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcFYxRW5jb2RlRGVjb2RlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFYxRW5jb2RlRGVjb2RlOjpTbm1wVjFFbmNvZGVEZWNvZGUodm9pZCkgX19wdHI2NA0KKz8/MFNubXBWMUVuY29kZURlY29kZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBWMU92ZXJJcDo6U25tcFYxT3ZlcklwKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNubXBWMU92ZXJJcEBAUUVBQUBQRUJESzBLS0tLQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVjFPdmVySXB4OjpTbm1wVjFPdmVySXB4KGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBTbm1wVjFPdmVySXB4QEBRRUFBQFBFQkQwS0tLS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFYyQ0VuY29kZURlY29kZTo6U25tcFYyQ0VuY29kZURlY29kZShjbGFzcyBTbm1wVjJDRW5jb2RlRGVjb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBWMkNFbmNvZGVEZWNvZGVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVjJDRW5jb2RlRGVjb2RlOjpTbm1wVjJDRW5jb2RlRGVjb2RlKHZvaWQpIF9fcHRyNjQNCis/PzBTbm1wVjJDRW5jb2RlRGVjb2RlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFYyQ092ZXJJcDo6U25tcFYyQ092ZXJJcChjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBTbm1wVjJDT3ZlcklwQEBRRUFBQFBFQkRLMEtLS0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBWMkNPdmVySXB4OjpTbm1wVjJDT3ZlcklweChjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wU25tcFYyQ092ZXJJcHhAQFFFQUFAUEVCRDBLS0tLQFoNCis7IHByaXZhdGU6IF9fY2RlY2wgU25tcFZhbHVlOjpTbm1wVmFsdWUoY2xhc3MgU25tcFZhbHVlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBWYWx1ZUBAQUVBQUBBRUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIFNubXBWYWx1ZTo6U25tcFZhbHVlKHZvaWQpIF9fcHRyNjQNCis/PzBTbm1wVmFsdWVAQElFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVmFyQmluZDo6U25tcFZhckJpbmQoY2xhc3MgU25tcFZhckJpbmQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcFZhckJpbmRAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVmFyQmluZDo6U25tcFZhckJpbmQoY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIFNubXBWYWx1ZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wVmFyQmluZEBAUUVBQUBBRUJWU25tcE9iamVjdElkZW50aWZpZXJAQEFFQlZTbm1wVmFsdWVAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFZhckJpbmRMaXN0OjpTbm1wVmFyQmluZExpc3QoY2xhc3MgU25tcFZhckJpbmRMaXN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBWYXJCaW5kTGlzdEBAUUVBQUBBRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdDo6U25tcFZhckJpbmRMaXN0KHZvaWQpIF9fcHRyNjQNCis/PzBTbm1wVmFyQmluZExpc3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVmFyQmluZExpc3ROb2RlOjpTbm1wVmFyQmluZExpc3ROb2RlKGNsYXNzIFNubXBWYXJCaW5kICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBWYXJCaW5kTGlzdE5vZGVAQFFFQUFAQUVBVlNubXBWYXJCaW5kQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdE5vZGU6OlNubXBWYXJCaW5kTGlzdE5vZGUoY2xhc3MgU25tcFZhckJpbmQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcFZhckJpbmRMaXN0Tm9kZUBAUUVBQUBBRUJWU25tcFZhckJpbmRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFZhckJpbmRMaXN0Tm9kZTo6U25tcFZhckJpbmRMaXN0Tm9kZShjbGFzcyBTbm1wVmFyQmluZCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wVmFyQmluZExpc3ROb2RlQEBRRUFBQFBFQlZTbm1wVmFyQmluZEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQlN0cmluZzo6fkNCU3RyaW5nKHZvaWQpIF9fcHRyNjQNCis/PzFDQlN0cmluZ0BAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgR2VuZXJhbEV4Y2VwdGlvbjo6fkdlbmVyYWxFeGNlcHRpb24odm9pZCkgX19wdHI2NA0KKz8/MUdlbmVyYWxFeGNlcHRpb25AQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIEdldE5leHRPcGVyYXRpb246On5HZXROZXh0T3BlcmF0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFHZXROZXh0T3BlcmF0aW9uQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wQW5hbHlzZXI6On5Tbm1wQW5hbHlzZXIodm9pZCkgX19wdHI2NA0KKz8/MVNubXBBbmFseXNlckBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbjo6flNubXBBdXRvUmV0cmlldmVPcGVyYXRpb24odm9pZCkgX19wdHI2NA0KKz8/MVNubXBBdXRvUmV0cmlldmVPcGVyYXRpb25AQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBCaXRTdHJpbmdUeXBlOjp+U25tcEJpdFN0cmluZ1R5cGUodm9pZCkgX19wdHI2NA0KKz8/MVNubXBCaXRTdHJpbmdUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wQ2xhc3NMaWJyYXJ5Ojp+U25tcENsYXNzTGlicmFyeSh2b2lkKSBfX3B0cjY0DQorPz8xU25tcENsYXNzTGlicmFyeUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcENvbW11bml0eUJhc2VkU2VjdXJpdHk6On5Tbm1wQ29tbXVuaXR5QmFzZWRTZWN1cml0eSh2b2lkKSBfX3B0cjY0DQorPz8xU25tcENvbW11bml0eUJhc2VkU2VjdXJpdHlAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBDb3VudGVyNjQ6On5Tbm1wQ291bnRlcjY0KHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wQ291bnRlcjY0QEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wQ291bnRlcjY0VHlwZTo6flNubXBDb3VudGVyNjRUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wQ291bnRlcjY0VHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcENvdW50ZXI6On5Tbm1wQ291bnRlcih2b2lkKSBfX3B0cjY0DQorPz8xU25tcENvdW50ZXJAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBDb3VudGVyVHlwZTo6flNubXBDb3VudGVyVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xU25tcENvdW50ZXJUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wRGF0ZVRpbWVUeXBlOjp+U25tcERhdGVUaW1lVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xU25tcERhdGVUaW1lVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcERpc3BsYXlTdHJpbmdUeXBlOjp+U25tcERpc3BsYXlTdHJpbmdUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wRGlzcGxheVN0cmluZ1R5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBFbmNvZGVEZWNvZGU6On5Tbm1wRW5jb2RlRGVjb2RlKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wRW5jb2RlRGVjb2RlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wRW5kT2ZNaWJWaWV3Ojp+U25tcEVuZE9mTWliVmlldyh2b2lkKSBfX3B0cjY0DQorPz8xU25tcEVuZE9mTWliVmlld0BAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcEVudW1lcmF0ZWRUeXBlOjp+U25tcEVudW1lcmF0ZWRUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wRW51bWVyYXRlZFR5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBFcnJvclJlcG9ydDo6flNubXBFcnJvclJlcG9ydCh2b2lkKSBfX3B0cjY0DQorPz8xU25tcEVycm9yUmVwb3J0QEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wRml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6flNubXBGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wRml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcEZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlOjp+U25tcEZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wRml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBGaXhlZExlbmd0aE9wYXF1ZVR5cGU6On5Tbm1wRml4ZWRMZW5ndGhPcGFxdWVUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wRml4ZWRMZW5ndGhPcGFxdWVUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wRml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGU6On5Tbm1wRml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGUodm9pZCkgX19wdHI2NA0KKz8/MVNubXBGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcEZpeGVkVHlwZTo6flNubXBGaXhlZFR5cGUodm9pZCkgX19wdHI2NA0KKz8/MVNubXBGaXhlZFR5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBHYXVnZTo6flNubXBHYXVnZSh2b2lkKSBfX3B0cjY0DQorPz8xU25tcEdhdWdlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wR2F1Z2VUeXBlOjp+U25tcEdhdWdlVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xU25tcEdhdWdlVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcEdldE5leHRPcGVyYXRpb246On5Tbm1wR2V0TmV4dE9wZXJhdGlvbih2b2lkKSBfX3B0cjY0DQorPz8xU25tcEdldE5leHRPcGVyYXRpb25AQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBHZXRPcGVyYXRpb246On5Tbm1wR2V0T3BlcmF0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wR2V0T3BlcmF0aW9uQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wSVBYQWRkcmVzc1R5cGU6On5Tbm1wSVBYQWRkcmVzc1R5cGUodm9pZCkgX19wdHI2NA0KKz8/MVNubXBJUFhBZGRyZXNzVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcEltcFNlc3Npb246On5Tbm1wSW1wU2Vzc2lvbih2b2lkKSBfX3B0cjY0DQorPz8xU25tcEltcFNlc3Npb25AQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBJbXBUcmFuc3BvcnQ6On5Tbm1wSW1wVHJhbnNwb3J0KHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wSW1wVHJhbnNwb3J0QEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wSW5zdGFuY2VUeXBlOjp+U25tcEluc3RhbmNlVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xU25tcEluc3RhbmNlVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcEludGVnZXI6On5Tbm1wSW50ZWdlcih2b2lkKSBfX3B0cjY0DQorPz8xU25tcEludGVnZXJAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBJbnRlZ2VyVHlwZTo6flNubXBJbnRlZ2VyVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xU25tcEludGVnZXJUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wSXBBZGRyZXNzOjp+U25tcElwQWRkcmVzcyh2b2lkKSBfX3B0cjY0DQorPz8xU25tcElwQWRkcmVzc0BAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcElwQWRkcmVzc1R5cGU6On5Tbm1wSXBBZGRyZXNzVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xU25tcElwQWRkcmVzc1R5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBJcHhJbXA6On5Tbm1wSXB4SW1wKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wSXB4SW1wQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wSXB4VHJhbnNwb3J0Ojp+U25tcElweFRyYW5zcG9ydCh2b2lkKSBfX3B0cjY0DQorPz8xU25tcElweFRyYW5zcG9ydEBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBMZXhpY29uOjp+U25tcExleGljb24odm9pZCkgX19wdHI2NA0KKz8/MVNubXBMZXhpY29uQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wTWFjQWRkcmVzc1R5cGU6On5Tbm1wTWFjQWRkcmVzc1R5cGUodm9pZCkgX19wdHI2NA0KKz8/MVNubXBNYWNBZGRyZXNzVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcE5lZ2F0aXZlUmFuZ2VUeXBlOjp+U25tcE5lZ2F0aXZlUmFuZ2VUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wTmVnYXRpdmVSYW5nZVR5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBOZXR3b3JrQWRkcmVzc1R5cGU6On5Tbm1wTmV0d29ya0FkZHJlc3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wTmV0d29ya0FkZHJlc3NUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wTm9TdWNoSW5zdGFuY2U6On5Tbm1wTm9TdWNoSW5zdGFuY2Uodm9pZCkgX19wdHI2NA0KKz8/MVNubXBOb1N1Y2hJbnN0YW5jZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcE5vU3VjaE9iamVjdDo6flNubXBOb1N1Y2hPYmplY3Qodm9pZCkgX19wdHI2NA0KKz8/MVNubXBOb1N1Y2hPYmplY3RAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBOdWxsOjp+U25tcE51bGwodm9pZCkgX19wdHI2NA0KKz8/MVNubXBOdWxsQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wTnVsbFR5cGU6On5Tbm1wTnVsbFR5cGUodm9pZCkgX19wdHI2NA0KKz8/MVNubXBOdWxsVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcE9TSUFkZHJlc3NUeXBlOjp+U25tcE9TSUFkZHJlc3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wT1NJQWRkcmVzc1R5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBPYmplY3RJZGVudGlmaWVyOjp+U25tcE9iamVjdElkZW50aWZpZXIodm9pZCkgX19wdHI2NA0KKz8/MVNubXBPYmplY3RJZGVudGlmaWVyQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllclR5cGU6On5Tbm1wT2JqZWN0SWRlbnRpZmllclR5cGUodm9pZCkgX19wdHI2NA0KKz8/MVNubXBPYmplY3RJZGVudGlmaWVyVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcE9jdGV0U3RyaW5nOjp+U25tcE9jdGV0U3RyaW5nKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wT2N0ZXRTdHJpbmdAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBPY3RldFN0cmluZ1R5cGU6On5Tbm1wT2N0ZXRTdHJpbmdUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wT2N0ZXRTdHJpbmdUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wT3BhcXVlOjp+U25tcE9wYXF1ZSh2b2lkKSBfX3B0cjY0DQorPz8xU25tcE9wYXF1ZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcE9wYXF1ZVR5cGU6On5Tbm1wT3BhcXVlVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xU25tcE9wYXF1ZVR5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBPcGVyYXRpb246On5Tbm1wT3BlcmF0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wT3BlcmF0aW9uQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wUGR1Ojp+U25tcFBkdSh2b2lkKSBfX3B0cjY0DQorPz8xU25tcFBkdUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcFBoeXNBZGRyZXNzVHlwZTo6flNubXBQaHlzQWRkcmVzc1R5cGUodm9pZCkgX19wdHI2NA0KKz8/MVNubXBQaHlzQWRkcmVzc1R5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBQb3NpdGl2ZVJhbmdlVHlwZTo6flNubXBQb3NpdGl2ZVJhbmdlVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xU25tcFBvc2l0aXZlUmFuZ2VUeXBlQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wUG9zaXRpdmVSYW5nZWRUeXBlOjp+U25tcFBvc2l0aXZlUmFuZ2VkVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xU25tcFBvc2l0aXZlUmFuZ2VkVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcFJvd1N0YXR1c1R5cGU6On5Tbm1wUm93U3RhdHVzVHlwZSh2b2lkKSBfX3B0cjY0DQorPz8xU25tcFJvd1N0YXR1c1R5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBTZWN1cml0eTo6flNubXBTZWN1cml0eSh2b2lkKSBfX3B0cjY0DQorPz8xU25tcFNlY3VyaXR5QEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wU2Vzc2lvbjo6flNubXBTZXNzaW9uKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wU2Vzc2lvbkBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcFNldE9wZXJhdGlvbjo6flNubXBTZXRPcGVyYXRpb24odm9pZCkgX19wdHI2NA0KKz8/MVNubXBTZXRPcGVyYXRpb25AQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBUaW1lVGlja3M6On5Tbm1wVGltZVRpY2tzKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wVGltZVRpY2tzQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wVGltZVRpY2tzVHlwZTo6flNubXBUaW1lVGlja3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wVGltZVRpY2tzVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcFRyYW5zcG9ydDo6flNubXBUcmFuc3BvcnQodm9pZCkgX19wdHI2NA0KKz8/MVNubXBUcmFuc3BvcnRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBUcmFuc3BvcnRBZGRyZXNzOjp+U25tcFRyYW5zcG9ydEFkZHJlc3Modm9pZCkgX19wdHI2NA0KKz8/MVNubXBUcmFuc3BvcnRBZGRyZXNzQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wVHJhbnNwb3J0SXBBZGRyZXNzOjp+U25tcFRyYW5zcG9ydElwQWRkcmVzcyh2b2lkKSBfX3B0cjY0DQorPz8xU25tcFRyYW5zcG9ydElwQWRkcmVzc0BAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcFRyYW5zcG9ydElweEFkZHJlc3M6On5Tbm1wVHJhbnNwb3J0SXB4QWRkcmVzcyh2b2lkKSBfX3B0cjY0DQorPz8xU25tcFRyYW5zcG9ydElweEFkZHJlc3NAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVHJhcFJlY2VpdmVyOjp+U25tcFRyYXBSZWNlaXZlcih2b2lkKSBfX3B0cjY0DQorPz8xU25tcFRyYXBSZWNlaXZlckBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcFVEUEFkZHJlc3NUeXBlOjp+U25tcFVEUEFkZHJlc3NUeXBlKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wVURQQWRkcmVzc1R5cGVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBVSW50ZWdlcjMyOjp+U25tcFVJbnRlZ2VyMzIodm9pZCkgX19wdHI2NA0KKz8/MVNubXBVSW50ZWdlcjMyQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wVUludGVnZXIzMlR5cGU6On5Tbm1wVUludGVnZXIzMlR5cGUodm9pZCkgX19wdHI2NA0KKz8/MVNubXBVSW50ZWdlcjMyVHlwZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcFVkcElwSW1wOjp+U25tcFVkcElwSW1wKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wVWRwSXBJbXBAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBVZHBJcFRyYW5zcG9ydDo6flNubXBVZHBJcFRyYW5zcG9ydCh2b2lkKSBfX3B0cjY0DQorPz8xU25tcFVkcElwVHJhbnNwb3J0QEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wVjFFbmNvZGVEZWNvZGU6On5Tbm1wVjFFbmNvZGVEZWNvZGUodm9pZCkgX19wdHI2NA0KKz8/MVNubXBWMUVuY29kZURlY29kZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcFYxT3ZlcklwOjp+U25tcFYxT3ZlcklwKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wVjFPdmVySXBAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBWMU92ZXJJcHg6On5Tbm1wVjFPdmVySXB4KHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wVjFPdmVySXB4QEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wVjJDRW5jb2RlRGVjb2RlOjp+U25tcFYyQ0VuY29kZURlY29kZSh2b2lkKSBfX3B0cjY0DQorPz8xU25tcFYyQ0VuY29kZURlY29kZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcFYyQ092ZXJJcDo6flNubXBWMkNPdmVySXAodm9pZCkgX19wdHI2NA0KKz8/MVNubXBWMkNPdmVySXBAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBWMkNPdmVySXB4Ojp+U25tcFYyQ092ZXJJcHgodm9pZCkgX19wdHI2NA0KKz8/MVNubXBWMkNPdmVySXB4QEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wVmFsdWU6On5Tbm1wVmFsdWUodm9pZCkgX19wdHI2NA0KKz8/MVNubXBWYWx1ZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcFZhckJpbmQ6On5Tbm1wVmFyQmluZCh2b2lkKSBfX3B0cjY0DQorPz8xU25tcFZhckJpbmRAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVmFyQmluZExpc3Q6On5Tbm1wVmFyQmluZExpc3Qodm9pZCkgX19wdHI2NA0KKz8/MVNubXBWYXJCaW5kTGlzdEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdE5vZGU6On5Tbm1wVmFyQmluZExpc3ROb2RlKHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wVmFyQmluZExpc3ROb2RlQEBRRUFBQFhaDQorOyBwdWJsaWM6IGNsYXNzIENCU3RyaW5nICYgX19wdHI2NCBfX2NkZWNsIENCU3RyaW5nOjpvcGVyYXRvcj0oY2xhc3MgQ0JTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0JTdHJpbmdAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQlN0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDQlN0cmluZzo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/NENCU3RyaW5nQEBRRUFBQUVCVjBAUEVBR0BaDQorOyBwdWJsaWM6IGNsYXNzIEdlbmVyYWxFeGNlcHRpb24gJiBfX3B0cjY0IF9fY2RlY2wgR2VuZXJhbEV4Y2VwdGlvbjo6b3BlcmF0b3I9KGNsYXNzIEdlbmVyYWxFeGNlcHRpb24gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80R2VuZXJhbEV4Y2VwdGlvbkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBBbmFseXNlciAmIF9fcHRyNjQgX19jZGVjbCBTbm1wQW5hbHlzZXI6Om9wZXJhdG9yPShjbGFzcyBTbm1wQW5hbHlzZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcEFuYWx5c2VyQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbiAmIF9fcHRyNjQgX19jZGVjbCBTbm1wQXV0b1JldHJpZXZlT3BlcmF0aW9uOjpvcGVyYXRvcj0oY2xhc3MgU25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wQXV0b1JldHJpZXZlT3BlcmF0aW9uQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcEJpdFN0cmluZ1R5cGUgJiBfX3B0cjY0IF9fY2RlY2wgU25tcEJpdFN0cmluZ1R5cGU6Om9wZXJhdG9yPShjbGFzcyBTbm1wQml0U3RyaW5nVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wQml0U3RyaW5nVHlwZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBDbGFzc0xpYnJhcnkgJiBfX3B0cjY0IF9fY2RlY2wgU25tcENsYXNzTGlicmFyeTo6b3BlcmF0b3I9KGNsYXNzIFNubXBDbGFzc0xpYnJhcnkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcENsYXNzTGlicmFyeUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5ICYgX19wdHI2NCBfX2NkZWNsIFNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5OjpvcGVyYXRvcj0oY2xhc3MgU25tcENvbW11bml0eUJhc2VkU2VjdXJpdHkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcENvbW11bml0eUJhc2VkU2VjdXJpdHlAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wVmFsdWUgJiBfX3B0cjY0IF9fY2RlY2wgU25tcENvdW50ZXI2NDo6b3BlcmF0b3I9KGNsYXNzIFNubXBDb3VudGVyNjQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcENvdW50ZXI2NEBAUUVBQUFFQVZTbm1wVmFsdWVAQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBDb3VudGVyNjRUeXBlICYgX19wdHI2NCBfX2NkZWNsIFNubXBDb3VudGVyNjRUeXBlOjpvcGVyYXRvcj0oY2xhc3MgU25tcENvdW50ZXI2NFR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcENvdW50ZXI2NFR5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wVmFsdWUgJiBfX3B0cjY0IF9fY2RlY2wgU25tcENvdW50ZXI6Om9wZXJhdG9yPShjbGFzcyBTbm1wQ291bnRlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wQ291bnRlckBAUUVBQUFFQVZTbm1wVmFsdWVAQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBDb3VudGVyVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wQ291bnRlclR5cGU6Om9wZXJhdG9yPShjbGFzcyBTbm1wQ291bnRlclR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcENvdW50ZXJUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcERhdGVUaW1lVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wRGF0ZVRpbWVUeXBlOjpvcGVyYXRvcj0oY2xhc3MgU25tcERhdGVUaW1lVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wRGF0ZVRpbWVUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcERpc3BsYXlTdHJpbmdUeXBlICYgX19wdHI2NCBfX2NkZWNsIFNubXBEaXNwbGF5U3RyaW5nVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFNubXBEaXNwbGF5U3RyaW5nVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wRGlzcGxheVN0cmluZ1R5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wRW5jb2RlRGVjb2RlICYgX19wdHI2NCBfX2NkZWNsIFNubXBFbmNvZGVEZWNvZGU6Om9wZXJhdG9yPShjbGFzcyBTbm1wRW5jb2RlRGVjb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBFbmNvZGVEZWNvZGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wVmFsdWUgJiBfX3B0cjY0IF9fY2RlY2wgU25tcEVuZE9mTWliVmlldzo6b3BlcmF0b3I9KGNsYXNzIFNubXBFbmRPZk1pYlZpZXcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcEVuZE9mTWliVmlld0BAUUVBQUFFQVZTbm1wVmFsdWVAQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBFbnVtZXJhdGVkVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wRW51bWVyYXRlZFR5cGU6Om9wZXJhdG9yPShjbGFzcyBTbm1wRW51bWVyYXRlZFR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcEVudW1lcmF0ZWRUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcEVycm9yUmVwb3J0ICYgX19wdHI2NCBfX2NkZWNsIFNubXBFcnJvclJlcG9ydDo6b3BlcmF0b3I9KGNsYXNzIFNubXBFcnJvclJlcG9ydCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wRXJyb3JSZXBvcnRAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wRml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wRml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFNubXBGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcEZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlICYgX19wdHI2NCBfX2NkZWNsIFNubXBGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFNubXBGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wRml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wRml4ZWRMZW5ndGhPcGFxdWVUeXBlICYgX19wdHI2NCBfX2NkZWNsIFNubXBGaXhlZExlbmd0aE9wYXF1ZVR5cGU6Om9wZXJhdG9yPShjbGFzcyBTbm1wRml4ZWRMZW5ndGhPcGFxdWVUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBGaXhlZExlbmd0aE9wYXF1ZVR5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wRml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGUgJiBfX3B0cjY0IF9fY2RlY2wgU25tcEZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlOjpvcGVyYXRvcj0oY2xhc3MgU25tcEZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBGaXhlZFR5cGUgJiBfX3B0cjY0IF9fY2RlY2wgU25tcEZpeGVkVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFNubXBGaXhlZFR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcEZpeGVkVHlwZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBWYWx1ZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wR2F1Z2U6Om9wZXJhdG9yPShjbGFzcyBTbm1wR2F1Z2UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcEdhdWdlQEBRRUFBQUVBVlNubXBWYWx1ZUBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcEdhdWdlVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wR2F1Z2VUeXBlOjpvcGVyYXRvcj0oY2xhc3MgU25tcEdhdWdlVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wR2F1Z2VUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcElQWEFkZHJlc3NUeXBlICYgX19wdHI2NCBfX2NkZWNsIFNubXBJUFhBZGRyZXNzVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFNubXBJUFhBZGRyZXNzVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wSVBYQWRkcmVzc1R5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wSW5zdGFuY2VUeXBlICYgX19wdHI2NCBfX2NkZWNsIFNubXBJbnN0YW5jZVR5cGU6Om9wZXJhdG9yPShjbGFzcyBTbm1wSW5zdGFuY2VUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBJbnN0YW5jZVR5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wVmFsdWUgJiBfX3B0cjY0IF9fY2RlY2wgU25tcEludGVnZXI6Om9wZXJhdG9yPShjbGFzcyBTbm1wSW50ZWdlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wSW50ZWdlckBAUUVBQUFFQVZTbm1wVmFsdWVAQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBJbnRlZ2VyVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wSW50ZWdlclR5cGU6Om9wZXJhdG9yPShjbGFzcyBTbm1wSW50ZWdlclR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcEludGVnZXJUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcFZhbHVlICYgX19wdHI2NCBfX2NkZWNsIFNubXBJcEFkZHJlc3M6Om9wZXJhdG9yPShjbGFzcyBTbm1wSXBBZGRyZXNzIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBJcEFkZHJlc3NAQFFFQUFBRUFWU25tcFZhbHVlQEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wSXBBZGRyZXNzVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wSXBBZGRyZXNzVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFNubXBJcEFkZHJlc3NUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBJcEFkZHJlc3NUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcExleGljb24gJiBfX3B0cjY0IF9fY2RlY2wgU25tcExleGljb246Om9wZXJhdG9yPShjbGFzcyBTbm1wTGV4aWNvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wTGV4aWNvbkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBNYWNBZGRyZXNzVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wTWFjQWRkcmVzc1R5cGU6Om9wZXJhdG9yPShjbGFzcyBTbm1wTWFjQWRkcmVzc1R5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcE1hY0FkZHJlc3NUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcE5lZ2F0aXZlUmFuZ2VUeXBlICYgX19wdHI2NCBfX2NkZWNsIFNubXBOZWdhdGl2ZVJhbmdlVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFNubXBOZWdhdGl2ZVJhbmdlVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wTmVnYXRpdmVSYW5nZVR5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wTmV0d29ya0FkZHJlc3NUeXBlICYgX19wdHI2NCBfX2NkZWNsIFNubXBOZXR3b3JrQWRkcmVzc1R5cGU6Om9wZXJhdG9yPShjbGFzcyBTbm1wTmV0d29ya0FkZHJlc3NUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBOZXR3b3JrQWRkcmVzc1R5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wVmFsdWUgJiBfX3B0cjY0IF9fY2RlY2wgU25tcE5vU3VjaEluc3RhbmNlOjpvcGVyYXRvcj0oY2xhc3MgU25tcE5vU3VjaEluc3RhbmNlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBOb1N1Y2hJbnN0YW5jZUBAUUVBQUFFQVZTbm1wVmFsdWVAQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBWYWx1ZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wTm9TdWNoT2JqZWN0OjpvcGVyYXRvcj0oY2xhc3MgU25tcE5vU3VjaE9iamVjdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wTm9TdWNoT2JqZWN0QEBRRUFBQUVBVlNubXBWYWx1ZUBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcFZhbHVlICYgX19wdHI2NCBfX2NkZWNsIFNubXBOdWxsOjpvcGVyYXRvcj0oY2xhc3MgU25tcE51bGwgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcE51bGxAQFFFQUFBRUFWU25tcFZhbHVlQEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wTnVsbFR5cGUgJiBfX3B0cjY0IF9fY2RlY2wgU25tcE51bGxUeXBlOjpvcGVyYXRvcj0oY2xhc3MgU25tcE51bGxUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBOdWxsVHlwZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBPU0lBZGRyZXNzVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wT1NJQWRkcmVzc1R5cGU6Om9wZXJhdG9yPShjbGFzcyBTbm1wT1NJQWRkcmVzc1R5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcE9TSUFkZHJlc3NUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcFZhbHVlICYgX19wdHI2NCBfX2NkZWNsIFNubXBPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj0oY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcE9iamVjdElkZW50aWZpZXJAQFFFQUFBRUFWU25tcFZhbHVlQEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllclR5cGUgJiBfX3B0cjY0IF9fY2RlY2wgU25tcE9iamVjdElkZW50aWZpZXJUeXBlOjpvcGVyYXRvcj0oY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXJUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBPYmplY3RJZGVudGlmaWVyVHlwZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBWYWx1ZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wT2N0ZXRTdHJpbmc6Om9wZXJhdG9yPShjbGFzcyBTbm1wT2N0ZXRTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcE9jdGV0U3RyaW5nQEBRRUFBQUVBVlNubXBWYWx1ZUBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcE9jdGV0U3RyaW5nVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wT2N0ZXRTdHJpbmdUeXBlOjpvcGVyYXRvcj0oY2xhc3MgU25tcE9jdGV0U3RyaW5nVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wT2N0ZXRTdHJpbmdUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcFZhbHVlICYgX19wdHI2NCBfX2NkZWNsIFNubXBPcGFxdWU6Om9wZXJhdG9yPShjbGFzcyBTbm1wT3BhcXVlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBPcGFxdWVAQFFFQUFBRUFWU25tcFZhbHVlQEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wT3BhcXVlVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wT3BhcXVlVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFNubXBPcGFxdWVUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBPcGFxdWVUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHByaXZhdGU6IGNsYXNzIFNubXBPcGVyYXRpb24gJiBfX3B0cjY0IF9fY2RlY2wgU25tcE9wZXJhdGlvbjo6b3BlcmF0b3I9KGNsYXNzIFNubXBPcGVyYXRpb24gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcE9wZXJhdGlvbkBAQUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBQZHUgJiBfX3B0cjY0IF9fY2RlY2wgU25tcFBkdTo6b3BlcmF0b3I9KGNsYXNzIFNubXBQZHUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcFBkdUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBQaHlzQWRkcmVzc1R5cGUgJiBfX3B0cjY0IF9fY2RlY2wgU25tcFBoeXNBZGRyZXNzVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFNubXBQaHlzQWRkcmVzc1R5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcFBoeXNBZGRyZXNzVHlwZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBQb3NpdGl2ZVJhbmdlVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wUG9zaXRpdmVSYW5nZVR5cGU6Om9wZXJhdG9yPShjbGFzcyBTbm1wUG9zaXRpdmVSYW5nZVR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcFBvc2l0aXZlUmFuZ2VUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcFBvc2l0aXZlUmFuZ2VkVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wUG9zaXRpdmVSYW5nZWRUeXBlOjpvcGVyYXRvcj0oY2xhc3MgU25tcFBvc2l0aXZlUmFuZ2VkVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wUG9zaXRpdmVSYW5nZWRUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcFJvd1N0YXR1c1R5cGUgJiBfX3B0cjY0IF9fY2RlY2wgU25tcFJvd1N0YXR1c1R5cGU6Om9wZXJhdG9yPShjbGFzcyBTbm1wUm93U3RhdHVzVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wUm93U3RhdHVzVHlwZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwcml2YXRlOiBjbGFzcyBTbm1wU2VjdXJpdHkgJiBfX3B0cjY0IF9fY2RlY2wgU25tcFNlY3VyaXR5OjpvcGVyYXRvcj0oY2xhc3MgU25tcFNlY3VyaXR5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBTZWN1cml0eUBAQUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwcml2YXRlOiBjbGFzcyBTbm1wU2Vzc2lvbiAmIF9fcHRyNjQgX19jZGVjbCBTbm1wU2Vzc2lvbjo6b3BlcmF0b3I9KGNsYXNzIFNubXBTZXNzaW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBTZXNzaW9uQEBBRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcFZhbHVlICYgX19wdHI2NCBfX2NkZWNsIFNubXBUaW1lVGlja3M6Om9wZXJhdG9yPShjbGFzcyBTbm1wVGltZVRpY2tzIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBUaW1lVGlja3NAQFFFQUFBRUFWU25tcFZhbHVlQEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wVGltZVRpY2tzVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wVGltZVRpY2tzVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFNubXBUaW1lVGlja3NUeXBlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBUaW1lVGlja3NUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHByaXZhdGU6IGNsYXNzIFNubXBUcmFuc3BvcnQgJiBfX3B0cjY0IF9fY2RlY2wgU25tcFRyYW5zcG9ydDo6b3BlcmF0b3I9KGNsYXNzIFNubXBUcmFuc3BvcnQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcFRyYW5zcG9ydEBAQUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwcml2YXRlOiBjbGFzcyBTbm1wVHJhbnNwb3J0QWRkcmVzcyAmIF9fcHRyNjQgX19jZGVjbCBTbm1wVHJhbnNwb3J0QWRkcmVzczo6b3BlcmF0b3I9KGNsYXNzIFNubXBUcmFuc3BvcnRBZGRyZXNzIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBUcmFuc3BvcnRBZGRyZXNzQEBBRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcFRyYW5zcG9ydElwQWRkcmVzcyAmIF9fcHRyNjQgX19jZGVjbCBTbm1wVHJhbnNwb3J0SXBBZGRyZXNzOjpvcGVyYXRvcj0oY2xhc3MgU25tcFRyYW5zcG9ydElwQWRkcmVzcyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wVHJhbnNwb3J0SXBBZGRyZXNzQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcFRyYW5zcG9ydElwQWRkcmVzcyAmIF9fcHRyNjQgX19jZGVjbCBTbm1wVHJhbnNwb3J0SXBBZGRyZXNzOjpvcGVyYXRvcj0odW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wVHJhbnNwb3J0SXBBZGRyZXNzQEBRRUFBQUVBVjBAUEVCRUBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBUcmFuc3BvcnRJcHhBZGRyZXNzICYgX19wdHI2NCBfX2NkZWNsIFNubXBUcmFuc3BvcnRJcHhBZGRyZXNzOjpvcGVyYXRvcj0oY2xhc3MgU25tcFRyYW5zcG9ydElweEFkZHJlc3MgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcFRyYW5zcG9ydElweEFkZHJlc3NAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzcyAmIF9fcHRyNjQgX19jZGVjbCBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzczo6b3BlcmF0b3I9KHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcFRyYW5zcG9ydElweEFkZHJlc3NAQFFFQUFBRUFWMEBQRUJFQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcFRyYXBSZWNlaXZlciAmIF9fcHRyNjQgX19jZGVjbCBTbm1wVHJhcFJlY2VpdmVyOjpvcGVyYXRvcj0oY2xhc3MgU25tcFRyYXBSZWNlaXZlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wVHJhcFJlY2VpdmVyQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcFVEUEFkZHJlc3NUeXBlICYgX19wdHI2NCBfX2NkZWNsIFNubXBVRFBBZGRyZXNzVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFNubXBVRFBBZGRyZXNzVHlwZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wVURQQWRkcmVzc1R5cGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wVmFsdWUgJiBfX3B0cjY0IF9fY2RlY2wgU25tcFVJbnRlZ2VyMzI6Om9wZXJhdG9yPShjbGFzcyBTbm1wVUludGVnZXIzMiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wVUludGVnZXIzMkBAUUVBQUFFQVZTbm1wVmFsdWVAQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBVSW50ZWdlcjMyVHlwZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wVUludGVnZXIzMlR5cGU6Om9wZXJhdG9yPShjbGFzcyBTbm1wVUludGVnZXIzMlR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcFVJbnRlZ2VyMzJUeXBlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcFYxRW5jb2RlRGVjb2RlICYgX19wdHI2NCBfX2NkZWNsIFNubXBWMUVuY29kZURlY29kZTo6b3BlcmF0b3I9KGNsYXNzIFNubXBWMUVuY29kZURlY29kZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wVjFFbmNvZGVEZWNvZGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wVjJDRW5jb2RlRGVjb2RlICYgX19wdHI2NCBfX2NkZWNsIFNubXBWMkNFbmNvZGVEZWNvZGU6Om9wZXJhdG9yPShjbGFzcyBTbm1wVjJDRW5jb2RlRGVjb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBWMkNFbmNvZGVEZWNvZGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHJpdmF0ZTogY2xhc3MgU25tcFZhbHVlICYgX19wdHI2NCBfX2NkZWNsIFNubXBWYWx1ZTo6b3BlcmF0b3I9KGNsYXNzIFNubXBWYWx1ZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wVmFsdWVAQEFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wVmFyQmluZCAmIF9fcHRyNjQgX19jZGVjbCBTbm1wVmFyQmluZDo6b3BlcmF0b3I9KGNsYXNzIFNubXBWYXJCaW5kIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBWYXJCaW5kQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcFZhckJpbmRMaXN0ICYgX19wdHI2NCBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdDo6b3BlcmF0b3I9KGNsYXNzIFNubXBWYXJCaW5kTGlzdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wVmFyQmluZExpc3RAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wVmFyQmluZExpc3ROb2RlICYgX19wdHI2NCBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdE5vZGU6Om9wZXJhdG9yPShjbGFzcyBTbm1wVmFyQmluZExpc3ROb2RlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBWYXJCaW5kTGlzdE5vZGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wSW5zdGFuY2VUeXBlOjpvcGVyYXRvcj09KGNsYXNzIFNubXBJbnN0YW5jZVR5cGUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz84U25tcEluc3RhbmNlVHlwZUBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I9PShjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzhTbm1wT2JqZWN0SWRlbnRpZmllckBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wVHJhbnNwb3J0SXBBZGRyZXNzOjpvcGVyYXRvcj09KGNsYXNzIFNubXBUcmFuc3BvcnRJcEFkZHJlc3MgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz84U25tcFRyYW5zcG9ydElwQWRkcmVzc0BAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzczo6b3BlcmF0b3I9PShjbGFzcyBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzcyBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzhTbm1wVHJhbnNwb3J0SXB4QWRkcmVzc0BAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wVmFsdWU6Om9wZXJhdG9yPT0oY2xhc3MgU25tcFZhbHVlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OFNubXBWYWx1ZUBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wSW5zdGFuY2VUeXBlOjpvcGVyYXRvciE9KGNsYXNzIFNubXBJbnN0YW5jZVR5cGUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz85U25tcEluc3RhbmNlVHlwZUBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3IhPShjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzlTbm1wT2JqZWN0SWRlbnRpZmllckBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wVHJhbnNwb3J0SXBBZGRyZXNzOjpvcGVyYXRvciE9KGNsYXNzIFNubXBUcmFuc3BvcnRJcEFkZHJlc3MgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz85U25tcFRyYW5zcG9ydElwQWRkcmVzc0BAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzczo6b3BlcmF0b3IhPShjbGFzcyBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzcyBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzlTbm1wVHJhbnNwb3J0SXB4QWRkcmVzc0BAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wVmFsdWU6Om9wZXJhdG9yIT0oY2xhc3MgU25tcFZhbHVlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OVNubXBWYWx1ZUBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nICYgX19wdHI2NCBfX2NkZWNsIFNubXBPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcltdKHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/P0FTbm1wT2JqZWN0SWRlbnRpZmllckBAUUVCQUFFQUtLQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgU25tcFRyYW5zcG9ydElwQWRkcmVzczo6b3BlcmF0b3JbXSh1bnNpZ25lZCBzaG9ydCljb25zdCAgX19wdHI2NA0KKz8/QVNubXBUcmFuc3BvcnRJcEFkZHJlc3NAQFVFQkFFR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciBfX2NkZWNsIFNubXBUcmFuc3BvcnRJcHhBZGRyZXNzOjpvcGVyYXRvcltdKHVuc2lnbmVkIHNob3J0KWNvbnN0ICBfX3B0cjY0DQorPz9BU25tcFRyYW5zcG9ydElweEFkZHJlc3NAQFVFQkFFR0BaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBWYXJCaW5kICogX19wdHI2NCBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdDo6b3BlcmF0b3JbXSh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/P0FTbm1wVmFyQmluZExpc3RAQFFFQUFQRUFWU25tcFZhckJpbmRAQElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcEFuYWx5c2VyOjpvcGVyYXRvciB2b2lkICogX19wdHI2NCh2b2lkKSBfX3B0cjY0DQorPz9CU25tcEFuYWx5c2VyQEBVRUFBUEVBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wQ29tbXVuaXR5QmFzZWRTZWN1cml0eTo6b3BlcmF0b3Igdm9pZCAqIF9fcHRyNjQodm9pZCljb25zdCAgX19wdHI2NA0KKz8/QlNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5QEBVRUJBUEVBWFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEVycm9yUmVwb3J0OjpvcGVyYXRvciB2b2lkICogX19wdHI2NCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CU25tcEVycm9yUmVwb3J0QEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcEltcFNlc3Npb246Om9wZXJhdG9yIHZvaWQgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JTbm1wSW1wU2Vzc2lvbkBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcEluc3RhbmNlVHlwZTo6b3BlcmF0b3Igdm9pZCAqIF9fcHRyNjQodm9pZCkgX19wdHI2NA0KKz8/QlNubXBJbnN0YW5jZVR5cGVAQFVFQUFQRUFYWFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wT3BlcmF0aW9uOjpvcGVyYXRvciB2b2lkICogX19wdHI2NCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CU25tcE9wZXJhdGlvbkBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBQZHU6Om9wZXJhdG9yIHZvaWQgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JTbm1wUGR1QEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wUG9zaXRpdmVSYW5nZWRUeXBlOjpvcGVyYXRvciB2b2lkICogX19wdHI2NCh2b2lkKSBfX3B0cjY0DQorPz9CU25tcFBvc2l0aXZlUmFuZ2VkVHlwZUBAVUVBQVBFQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcFRyYW5zcG9ydElwQWRkcmVzczo6b3BlcmF0b3Igdm9pZCAqIF9fcHRyNjQodm9pZCljb25zdCAgX19wdHI2NA0KKz8/QlNubXBUcmFuc3BvcnRJcEFkZHJlc3NAQFVFQkFQRUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBUcmFuc3BvcnRJcHhBZGRyZXNzOjpvcGVyYXRvciB2b2lkICogX19wdHI2NCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CU25tcFRyYW5zcG9ydElweEFkZHJlc3NAQFVFQkFQRUFYWFoNCis7IHB1YmxpYzogY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgIF9fY2RlY2wgU25tcE9iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yKyhjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/P0hTbm1wT2JqZWN0SWRlbnRpZmllckBAUUVCQT9BVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU25tcE9iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yPChjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/P01Tbm1wT2JqZWN0SWRlbnRpZmllckBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I8PShjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/P05Tbm1wT2JqZWN0SWRlbnRpZmllckBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I+KGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/T1NubXBPYmplY3RJZGVudGlmaWVyQEBRRUJBSEFFQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNubXBPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj49KGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/UFNubXBPYmplY3RJZGVudGlmaWVyQEBRRUJBSEFFQlYwQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wQ29tbXVuaXR5QmFzZWRTZWN1cml0eTo6b3BlcmF0b3IoKSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9SU25tcENvbW11bml0eUJhc2VkU2VjdXJpdHlAQFVFQkFQRUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX19wdHI2NCBfX2NkZWNsIFNubXBFbmNvZGVEZWNvZGU6Om9wZXJhdG9yKCkodm9pZCljb25zdCAgX19wdHI2NA0KKz8/UlNubXBFbmNvZGVEZWNvZGVAQFVFQkFQRUFYWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wRXJyb3JSZXBvcnQ6Om9wZXJhdG9yKCkodm9pZCljb25zdCAgX19wdHI2NA0KKz8/UlNubXBFcnJvclJlcG9ydEBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgU25tcEltcFNlc3Npb246Om9wZXJhdG9yKCkodm9pZCljb25zdCAgX19wdHI2NA0KKz8/UlNubXBJbXBTZXNzaW9uQEBVRUJBUEVBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wSW1wVHJhbnNwb3J0OjpvcGVyYXRvcigpKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P1JTbm1wSW1wVHJhbnNwb3J0QEBVRUJBUEVBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgU25tcElwQWRkcmVzczo6b3BlcmF0b3IoKSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9SU25tcElwQWRkcmVzc0BAUUVCQVBFQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgU25tcElweEltcDo6b3BlcmF0b3IoKSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9SU25tcElweEltcEBAVUVCQVBFQVhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIFNubXBPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcigpKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P1JTbm1wT2JqZWN0SWRlbnRpZmllckBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIFNubXBPY3RldFN0cmluZzo6b3BlcmF0b3IoKSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9SU25tcE9jdGV0U3RyaW5nQEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgU25tcE9wYXF1ZTo6b3BlcmF0b3IoKSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9SU25tcE9wYXF1ZUBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIFNubXBPcGVyYXRpb246Om9wZXJhdG9yKCkodm9pZCljb25zdCAgX19wdHI2NA0KKz8/UlNubXBPcGVyYXRpb25AQFFFQkFQRUFYWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wUGR1OjpvcGVyYXRvcigpKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P1JTbm1wUGR1QEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wVHJhbnNwb3J0SXBBZGRyZXNzOjpvcGVyYXRvcigpKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P1JTbm1wVHJhbnNwb3J0SXBBZGRyZXNzQEBVRUJBUEVBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzczo6b3BlcmF0b3IoKSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9SU25tcFRyYW5zcG9ydElweEFkZHJlc3NAQFVFQkFQRUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX19wdHI2NCBfX2NkZWNsIFNubXBVZHBJcEltcDo6b3BlcmF0b3IoKSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9SU25tcFVkcElwSW1wQEBVRUJBUEVBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wVjFPdmVySXA6Om9wZXJhdG9yKCkodm9pZCljb25zdCAgX19wdHI2NA0KKz8/UlNubXBWMU92ZXJJcEBAVUVCQVBFQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgU25tcFYxT3ZlcklweDo6b3BlcmF0b3IoKSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9SU25tcFYxT3ZlcklweEBAVUVCQVBFQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgU25tcFYyQ092ZXJJcDo6b3BlcmF0b3IoKSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9SU25tcFYyQ092ZXJJcEBAVUVCQVBFQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgU25tcFYyQ092ZXJJcHg6Om9wZXJhdG9yKCkodm9pZCljb25zdCAgX19wdHI2NA0KKz8/UlNubXBWMkNPdmVySXB4QEBVRUJBUEVBWFhaDQorOyBjb25zdCAgR2VuZXJhbEV4Y2VwdGlvbjo6YHZmdGFibGUnDQorPz9fN0dlbmVyYWxFeGNlcHRpb25AQDZCQA0KKzsgY29uc3QgIEdldE5leHRPcGVyYXRpb246OmB2ZnRhYmxlJw0KKz8/XzdHZXROZXh0T3BlcmF0aW9uQEA2QkANCis7IGNvbnN0ICBTbm1wQW5hbHlzZXI6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wQW5hbHlzZXJAQDZCQA0KKzsgY29uc3QgIFNubXBBdXRvUmV0cmlldmVPcGVyYXRpb246OmB2ZnRhYmxlJw0KKz8/XzdTbm1wQXV0b1JldHJpZXZlT3BlcmF0aW9uQEA2QkANCis7IGNvbnN0ICBTbm1wQml0U3RyaW5nVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcEluc3RhbmNlVHlwZSd9DQorPz9fN1NubXBCaXRTdHJpbmdUeXBlQEA2QlNubXBJbnN0YW5jZVR5cGVAQEANCis7IGNvbnN0ICBTbm1wQml0U3RyaW5nVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcFBvc2l0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1NubXBCaXRTdHJpbmdUeXBlQEA2QlNubXBQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBTbm1wQ2xhc3NMaWJyYXJ5OjpgdmZ0YWJsZScNCis/P183U25tcENsYXNzTGlicmFyeUBANkJADQorOyBjb25zdCAgU25tcENvbW11bml0eUJhc2VkU2VjdXJpdHk6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wQ29tbXVuaXR5QmFzZWRTZWN1cml0eUBANkJADQorOyBjb25zdCAgU25tcENvdW50ZXI2NDo6YHZmdGFibGUnDQorPz9fN1NubXBDb3VudGVyNjRAQDZCQA0KKzsgY29uc3QgIFNubXBDb3VudGVyNjRUeXBlOjpgdmZ0YWJsZScNCis/P183U25tcENvdW50ZXI2NFR5cGVAQDZCQA0KKzsgY29uc3QgIFNubXBDb3VudGVyOjpgdmZ0YWJsZScNCis/P183U25tcENvdW50ZXJAQDZCQA0KKzsgY29uc3QgIFNubXBDb3VudGVyVHlwZTo6YHZmdGFibGUnDQorPz9fN1NubXBDb3VudGVyVHlwZUBANkJADQorOyBjb25zdCAgU25tcERhdGVUaW1lVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcEluc3RhbmNlVHlwZSd9DQorPz9fN1NubXBEYXRlVGltZVR5cGVAQDZCU25tcEluc3RhbmNlVHlwZUBAQA0KKzsgY29uc3QgIFNubXBEYXRlVGltZVR5cGU6OmB2ZnRhYmxlJ3tmb3IgYFNubXBQb3NpdGl2ZVJhbmdlZFR5cGUnfQ0KKz8/XzdTbm1wRGF0ZVRpbWVUeXBlQEA2QlNubXBQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBTbm1wRGlzcGxheVN0cmluZ1R5cGU6OmB2ZnRhYmxlJ3tmb3IgYFNubXBJbnN0YW5jZVR5cGUnfQ0KKz8/XzdTbm1wRGlzcGxheVN0cmluZ1R5cGVAQDZCU25tcEluc3RhbmNlVHlwZUBAQA0KKzsgY29uc3QgIFNubXBEaXNwbGF5U3RyaW5nVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcFBvc2l0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1NubXBEaXNwbGF5U3RyaW5nVHlwZUBANkJTbm1wUG9zaXRpdmVSYW5nZWRUeXBlQEBADQorOyBjb25zdCAgU25tcEVuY29kZURlY29kZTo6YHZmdGFibGUnDQorPz9fN1NubXBFbmNvZGVEZWNvZGVAQDZCQA0KKzsgY29uc3QgIFNubXBFbmRPZk1pYlZpZXc6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wRW5kT2ZNaWJWaWV3QEA2QkANCis7IGNvbnN0ICBTbm1wRW51bWVyYXRlZFR5cGU6OmB2ZnRhYmxlJ3tmb3IgYFNubXBJbnN0YW5jZVR5cGUnfQ0KKz8/XzdTbm1wRW51bWVyYXRlZFR5cGVAQDZCU25tcEluc3RhbmNlVHlwZUBAQA0KKzsgY29uc3QgIFNubXBFbnVtZXJhdGVkVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcE5lZ2F0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1NubXBFbnVtZXJhdGVkVHlwZUBANkJTbm1wTmVnYXRpdmVSYW5nZWRUeXBlQEBADQorOyBjb25zdCAgU25tcEVycm9yUmVwb3J0OjpgdmZ0YWJsZScNCis/P183U25tcEVycm9yUmVwb3J0QEA2QkANCis7IGNvbnN0ICBTbm1wRml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6YHZmdGFibGUnDQorPz9fN1NubXBGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlQEA2QkANCis7IGNvbnN0ICBTbm1wRml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcEluc3RhbmNlVHlwZSd9DQorPz9fN1NubXBGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlQEA2QlNubXBJbnN0YW5jZVR5cGVAQEANCis7IGNvbnN0ICBTbm1wRml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcFBvc2l0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1NubXBGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlQEA2QlNubXBQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBTbm1wRml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGU6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wRml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGVAQDZCQA0KKzsgY29uc3QgIFNubXBGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcEluc3RhbmNlVHlwZSd9DQorPz9fN1NubXBGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZUBANkJTbm1wSW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgU25tcEZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBTbm1wUG9zaXRpdmVSYW5nZWRUeXBlJ30NCis/P183U25tcEZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlQEA2QlNubXBQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBTbm1wRml4ZWRMZW5ndGhPcGFxdWVUeXBlOjpgdmZ0YWJsZScNCis/P183U25tcEZpeGVkTGVuZ3RoT3BhcXVlVHlwZUBANkJADQorOyBjb25zdCAgU25tcEZpeGVkTGVuZ3RoT3BhcXVlVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcEluc3RhbmNlVHlwZSd9DQorPz9fN1NubXBGaXhlZExlbmd0aE9wYXF1ZVR5cGVAQDZCU25tcEluc3RhbmNlVHlwZUBAQA0KKzsgY29uc3QgIFNubXBGaXhlZExlbmd0aE9wYXF1ZVR5cGU6OmB2ZnRhYmxlJ3tmb3IgYFNubXBQb3NpdGl2ZVJhbmdlZFR5cGUnfQ0KKz8/XzdTbm1wRml4ZWRMZW5ndGhPcGFxdWVUeXBlQEA2QlNubXBQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBTbm1wRml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGU6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wRml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGVAQDZCQA0KKzsgY29uc3QgIFNubXBGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcEluc3RhbmNlVHlwZSd9DQorPz9fN1NubXBGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZUBANkJTbm1wSW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgU25tcEZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBTbm1wUG9zaXRpdmVSYW5nZWRUeXBlJ30NCis/P183U25tcEZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlQEA2QlNubXBQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBTbm1wRml4ZWRUeXBlOjpgdmZ0YWJsZScNCis/P183U25tcEZpeGVkVHlwZUBANkJADQorOyBjb25zdCAgU25tcEdhdWdlOjpgdmZ0YWJsZScNCis/P183U25tcEdhdWdlQEA2QkANCis7IGNvbnN0ICBTbm1wR2F1Z2VUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBTbm1wSW5zdGFuY2VUeXBlJ30NCis/P183U25tcEdhdWdlVHlwZUBANkJTbm1wSW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgU25tcEdhdWdlVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcFBvc2l0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1NubXBHYXVnZVR5cGVAQDZCU25tcFBvc2l0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFNubXBHZXROZXh0T3BlcmF0aW9uOjpgdmZ0YWJsZScNCis/P183U25tcEdldE5leHRPcGVyYXRpb25AQDZCQA0KKzsgY29uc3QgIFNubXBHZXRPcGVyYXRpb246OmB2ZnRhYmxlJw0KKz8/XzdTbm1wR2V0T3BlcmF0aW9uQEA2QkANCis7IGNvbnN0ICBTbm1wSVBYQWRkcmVzc1R5cGU6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wSVBYQWRkcmVzc1R5cGVAQDZCQA0KKzsgY29uc3QgIFNubXBJUFhBZGRyZXNzVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcEluc3RhbmNlVHlwZSd9DQorPz9fN1NubXBJUFhBZGRyZXNzVHlwZUBANkJTbm1wSW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgU25tcElQWEFkZHJlc3NUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBTbm1wUG9zaXRpdmVSYW5nZWRUeXBlJ30NCis/P183U25tcElQWEFkZHJlc3NUeXBlQEA2QlNubXBQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBTbm1wSW1wU2Vzc2lvbjo6YHZmdGFibGUnDQorPz9fN1NubXBJbXBTZXNzaW9uQEA2QkANCis7IGNvbnN0ICBTbm1wSW1wVHJhbnNwb3J0OjpgdmZ0YWJsZScNCis/P183U25tcEltcFRyYW5zcG9ydEBANkJADQorOyBjb25zdCAgU25tcEluc3RhbmNlVHlwZTo6YHZmdGFibGUnDQorPz9fN1NubXBJbnN0YW5jZVR5cGVAQDZCQA0KKzsgY29uc3QgIFNubXBJbnRlZ2VyOjpgdmZ0YWJsZScNCis/P183U25tcEludGVnZXJAQDZCQA0KKzsgY29uc3QgIFNubXBJbnRlZ2VyVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcEluc3RhbmNlVHlwZSd9DQorPz9fN1NubXBJbnRlZ2VyVHlwZUBANkJTbm1wSW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgU25tcEludGVnZXJUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBTbm1wTmVnYXRpdmVSYW5nZWRUeXBlJ30NCis/P183U25tcEludGVnZXJUeXBlQEA2QlNubXBOZWdhdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBTbm1wSXBBZGRyZXNzOjpgdmZ0YWJsZScNCis/P183U25tcElwQWRkcmVzc0BANkJADQorOyBjb25zdCAgU25tcElwQWRkcmVzc1R5cGU6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wSXBBZGRyZXNzVHlwZUBANkJADQorOyBjb25zdCAgU25tcElweEltcDo6YHZmdGFibGUne2ZvciBgU25tcElweFRyYW5zcG9ydCd9DQorPz9fN1NubXBJcHhJbXBAQDZCU25tcElweFRyYW5zcG9ydEBAQA0KKzsgY29uc3QgIFNubXBJcHhJbXA6OmB2ZnRhYmxlJ3tmb3IgYFNubXBUcmFuc3BvcnRJcHhBZGRyZXNzJ30NCis/P183U25tcElweEltcEBANkJTbm1wVHJhbnNwb3J0SXB4QWRkcmVzc0BAQA0KKzsgY29uc3QgIFNubXBJcHhUcmFuc3BvcnQ6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wSXB4VHJhbnNwb3J0QEA2QkANCis7IGNvbnN0ICBTbm1wTWFjQWRkcmVzc1R5cGU6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wTWFjQWRkcmVzc1R5cGVAQDZCQA0KKzsgY29uc3QgIFNubXBNYWNBZGRyZXNzVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcEluc3RhbmNlVHlwZSd9DQorPz9fN1NubXBNYWNBZGRyZXNzVHlwZUBANkJTbm1wSW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgU25tcE1hY0FkZHJlc3NUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBTbm1wUG9zaXRpdmVSYW5nZWRUeXBlJ30NCis/P183U25tcE1hY0FkZHJlc3NUeXBlQEA2QlNubXBQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBTbm1wTmVnYXRpdmVSYW5nZVR5cGU6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wTmVnYXRpdmVSYW5nZVR5cGVAQDZCQA0KKzsgY29uc3QgIFNubXBOZXR3b3JrQWRkcmVzc1R5cGU6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wTmV0d29ya0FkZHJlc3NUeXBlQEA2QkANCis7IGNvbnN0ICBTbm1wTm9TdWNoSW5zdGFuY2U6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wTm9TdWNoSW5zdGFuY2VAQDZCQA0KKzsgY29uc3QgIFNubXBOb1N1Y2hPYmplY3Q6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wTm9TdWNoT2JqZWN0QEA2QkANCis7IGNvbnN0ICBTbm1wTnVsbDo6YHZmdGFibGUnDQorPz9fN1NubXBOdWxsQEA2QkANCis7IGNvbnN0ICBTbm1wTnVsbFR5cGU6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wTnVsbFR5cGVAQDZCQA0KKzsgY29uc3QgIFNubXBPU0lBZGRyZXNzVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcEluc3RhbmNlVHlwZSd9DQorPz9fN1NubXBPU0lBZGRyZXNzVHlwZUBANkJTbm1wSW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgU25tcE9TSUFkZHJlc3NUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBTbm1wUG9zaXRpdmVSYW5nZWRUeXBlJ30NCis/P183U25tcE9TSUFkZHJlc3NUeXBlQEA2QlNubXBQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBTbm1wT2JqZWN0SWRlbnRpZmllcjo6YHZmdGFibGUnDQorPz9fN1NubXBPYmplY3RJZGVudGlmaWVyQEA2QkANCis7IGNvbnN0ICBTbm1wT2JqZWN0SWRlbnRpZmllclR5cGU6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wT2JqZWN0SWRlbnRpZmllclR5cGVAQDZCQA0KKzsgY29uc3QgIFNubXBPY3RldFN0cmluZzo6YHZmdGFibGUnDQorPz9fN1NubXBPY3RldFN0cmluZ0BANkJADQorOyBjb25zdCAgU25tcE9jdGV0U3RyaW5nVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcEluc3RhbmNlVHlwZSd9DQorPz9fN1NubXBPY3RldFN0cmluZ1R5cGVAQDZCU25tcEluc3RhbmNlVHlwZUBAQA0KKzsgY29uc3QgIFNubXBPY3RldFN0cmluZ1R5cGU6OmB2ZnRhYmxlJ3tmb3IgYFNubXBQb3NpdGl2ZVJhbmdlZFR5cGUnfQ0KKz8/XzdTbm1wT2N0ZXRTdHJpbmdUeXBlQEA2QlNubXBQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBTbm1wT3BhcXVlOjpgdmZ0YWJsZScNCis/P183U25tcE9wYXF1ZUBANkJADQorOyBjb25zdCAgU25tcE9wYXF1ZVR5cGU6OmB2ZnRhYmxlJ3tmb3IgYFNubXBJbnN0YW5jZVR5cGUnfQ0KKz8/XzdTbm1wT3BhcXVlVHlwZUBANkJTbm1wSW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgU25tcE9wYXF1ZVR5cGU6OmB2ZnRhYmxlJ3tmb3IgYFNubXBQb3NpdGl2ZVJhbmdlZFR5cGUnfQ0KKz8/XzdTbm1wT3BhcXVlVHlwZUBANkJTbm1wUG9zaXRpdmVSYW5nZWRUeXBlQEBADQorOyBjb25zdCAgU25tcE9wZXJhdGlvbjo6YHZmdGFibGUnDQorPz9fN1NubXBPcGVyYXRpb25AQDZCQA0KKzsgY29uc3QgIFNubXBQZHU6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wUGR1QEA2QkANCis7IGNvbnN0ICBTbm1wUGh5c0FkZHJlc3NUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBTbm1wSW5zdGFuY2VUeXBlJ30NCis/P183U25tcFBoeXNBZGRyZXNzVHlwZUBANkJTbm1wSW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgU25tcFBoeXNBZGRyZXNzVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcFBvc2l0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1NubXBQaHlzQWRkcmVzc1R5cGVAQDZCU25tcFBvc2l0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFNubXBQb3NpdGl2ZVJhbmdlVHlwZTo6YHZmdGFibGUnDQorPz9fN1NubXBQb3NpdGl2ZVJhbmdlVHlwZUBANkJADQorOyBjb25zdCAgU25tcFBvc2l0aXZlUmFuZ2VkVHlwZTo6YHZmdGFibGUnDQorPz9fN1NubXBQb3NpdGl2ZVJhbmdlZFR5cGVAQDZCQA0KKzsgY29uc3QgIFNubXBSb3dTdGF0dXNUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBTbm1wSW5zdGFuY2VUeXBlJ30NCis/P183U25tcFJvd1N0YXR1c1R5cGVAQDZCU25tcEluc3RhbmNlVHlwZUBAQA0KKzsgY29uc3QgIFNubXBSb3dTdGF0dXNUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBTbm1wTmVnYXRpdmVSYW5nZWRUeXBlJ30NCis/P183U25tcFJvd1N0YXR1c1R5cGVAQDZCU25tcE5lZ2F0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFNubXBTZWN1cml0eTo6YHZmdGFibGUnDQorPz9fN1NubXBTZWN1cml0eUBANkJADQorOyBjb25zdCAgU25tcFNlc3Npb246OmB2ZnRhYmxlJw0KKz8/XzdTbm1wU2Vzc2lvbkBANkJADQorOyBjb25zdCAgU25tcFNldE9wZXJhdGlvbjo6YHZmdGFibGUnDQorPz9fN1NubXBTZXRPcGVyYXRpb25AQDZCQA0KKzsgY29uc3QgIFNubXBUaW1lVGlja3M6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wVGltZVRpY2tzQEA2QkANCis7IGNvbnN0ICBTbm1wVGltZVRpY2tzVHlwZTo6YHZmdGFibGUnDQorPz9fN1NubXBUaW1lVGlja3NUeXBlQEA2QkANCis7IGNvbnN0ICBTbm1wVHJhbnNwb3J0OjpgdmZ0YWJsZScNCis/P183U25tcFRyYW5zcG9ydEBANkJADQorOyBjb25zdCAgU25tcFRyYW5zcG9ydEFkZHJlc3M6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wVHJhbnNwb3J0QWRkcmVzc0BANkJADQorOyBjb25zdCAgU25tcFRyYW5zcG9ydElwQWRkcmVzczo6YHZmdGFibGUnDQorPz9fN1NubXBUcmFuc3BvcnRJcEFkZHJlc3NAQDZCQA0KKzsgY29uc3QgIFNubXBUcmFuc3BvcnRJcHhBZGRyZXNzOjpgdmZ0YWJsZScNCis/P183U25tcFRyYW5zcG9ydElweEFkZHJlc3NAQDZCQA0KKzsgY29uc3QgIFNubXBUcmFwUmVjZWl2ZXI6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wVHJhcFJlY2VpdmVyQEA2QkANCis7IGNvbnN0ICBTbm1wVURQQWRkcmVzc1R5cGU6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wVURQQWRkcmVzc1R5cGVAQDZCQA0KKzsgY29uc3QgIFNubXBVRFBBZGRyZXNzVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcEluc3RhbmNlVHlwZSd9DQorPz9fN1NubXBVRFBBZGRyZXNzVHlwZUBANkJTbm1wSW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgU25tcFVEUEFkZHJlc3NUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBTbm1wUG9zaXRpdmVSYW5nZWRUeXBlJ30NCis/P183U25tcFVEUEFkZHJlc3NUeXBlQEA2QlNubXBQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBTbm1wVUludGVnZXIzMjo6YHZmdGFibGUnDQorPz9fN1NubXBVSW50ZWdlcjMyQEA2QkANCis7IGNvbnN0ICBTbm1wVUludGVnZXIzMlR5cGU6OmB2ZnRhYmxlJ3tmb3IgYFNubXBJbnN0YW5jZVR5cGUnfQ0KKz8/XzdTbm1wVUludGVnZXIzMlR5cGVAQDZCU25tcEluc3RhbmNlVHlwZUBAQA0KKzsgY29uc3QgIFNubXBVSW50ZWdlcjMyVHlwZTo6YHZmdGFibGUne2ZvciBgU25tcFBvc2l0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1NubXBVSW50ZWdlcjMyVHlwZUBANkJTbm1wUG9zaXRpdmVSYW5nZWRUeXBlQEBADQorOyBjb25zdCAgU25tcFVkcElwSW1wOjpgdmZ0YWJsZSd7Zm9yIGBTbm1wVHJhbnNwb3J0SXBBZGRyZXNzJ30NCis/P183U25tcFVkcElwSW1wQEA2QlNubXBUcmFuc3BvcnRJcEFkZHJlc3NAQEANCis7IGNvbnN0ICBTbm1wVWRwSXBJbXA6OmB2ZnRhYmxlJ3tmb3IgYFNubXBVZHBJcFRyYW5zcG9ydCd9DQorPz9fN1NubXBVZHBJcEltcEBANkJTbm1wVWRwSXBUcmFuc3BvcnRAQEANCis7IGNvbnN0ICBTbm1wVWRwSXBUcmFuc3BvcnQ6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wVWRwSXBUcmFuc3BvcnRAQDZCQA0KKzsgY29uc3QgIFNubXBWMUVuY29kZURlY29kZTo6YHZmdGFibGUnDQorPz9fN1NubXBWMUVuY29kZURlY29kZUBANkJADQorOyBjb25zdCAgU25tcFYxT3ZlcklwOjpgdmZ0YWJsZSd7Zm9yIGBTbm1wQ29tbXVuaXR5QmFzZWRTZWN1cml0eSd9DQorPz9fN1NubXBWMU92ZXJJcEBANkJTbm1wQ29tbXVuaXR5QmFzZWRTZWN1cml0eUBAQA0KKzsgY29uc3QgIFNubXBWMU92ZXJJcDo6YHZmdGFibGUne2ZvciBgU25tcEltcFNlc3Npb24nfQ0KKz8/XzdTbm1wVjFPdmVySXBAQDZCU25tcEltcFNlc3Npb25AQEANCis7IGNvbnN0ICBTbm1wVjFPdmVySXA6OmB2ZnRhYmxlJ3tmb3IgYFNubXBUcmFuc3BvcnRJcEFkZHJlc3MnfQ0KKz8/XzdTbm1wVjFPdmVySXBAQDZCU25tcFRyYW5zcG9ydElwQWRkcmVzc0BAQA0KKzsgY29uc3QgIFNubXBWMU92ZXJJcDo6YHZmdGFibGUne2ZvciBgU25tcFVkcElwVHJhbnNwb3J0J30NCis/P183U25tcFYxT3ZlcklwQEA2QlNubXBVZHBJcFRyYW5zcG9ydEBAQA0KKzsgY29uc3QgIFNubXBWMU92ZXJJcDo6YHZmdGFibGUne2ZvciBgU25tcFYxRW5jb2RlRGVjb2RlJ30NCis/P183U25tcFYxT3ZlcklwQEA2QlNubXBWMUVuY29kZURlY29kZUBAQA0KKzsgY29uc3QgIFNubXBWMU92ZXJJcHg6OmB2ZnRhYmxlJ3tmb3IgYFNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5J30NCis/P183U25tcFYxT3ZlcklweEBANkJTbm1wQ29tbXVuaXR5QmFzZWRTZWN1cml0eUBAQA0KKzsgY29uc3QgIFNubXBWMU92ZXJJcHg6OmB2ZnRhYmxlJ3tmb3IgYFNubXBJbXBTZXNzaW9uJ30NCis/P183U25tcFYxT3ZlcklweEBANkJTbm1wSW1wU2Vzc2lvbkBAQA0KKzsgY29uc3QgIFNubXBWMU92ZXJJcHg6OmB2ZnRhYmxlJ3tmb3IgYFNubXBJcHhUcmFuc3BvcnQnfQ0KKz8/XzdTbm1wVjFPdmVySXB4QEA2QlNubXBJcHhUcmFuc3BvcnRAQEANCis7IGNvbnN0ICBTbm1wVjFPdmVySXB4OjpgdmZ0YWJsZSd7Zm9yIGBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzcyd9DQorPz9fN1NubXBWMU92ZXJJcHhAQDZCU25tcFRyYW5zcG9ydElweEFkZHJlc3NAQEANCis7IGNvbnN0ICBTbm1wVjFPdmVySXB4OjpgdmZ0YWJsZSd7Zm9yIGBTbm1wVjFFbmNvZGVEZWNvZGUnfQ0KKz8/XzdTbm1wVjFPdmVySXB4QEA2QlNubXBWMUVuY29kZURlY29kZUBAQA0KKzsgY29uc3QgIFNubXBWMkNFbmNvZGVEZWNvZGU6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wVjJDRW5jb2RlRGVjb2RlQEA2QkANCis7IGNvbnN0ICBTbm1wVjJDT3ZlcklwOjpgdmZ0YWJsZSd7Zm9yIGBTbm1wQ29tbXVuaXR5QmFzZWRTZWN1cml0eSd9DQorPz9fN1NubXBWMkNPdmVySXBAQDZCU25tcENvbW11bml0eUJhc2VkU2VjdXJpdHlAQEANCis7IGNvbnN0ICBTbm1wVjJDT3ZlcklwOjpgdmZ0YWJsZSd7Zm9yIGBTbm1wSW1wU2Vzc2lvbid9DQorPz9fN1NubXBWMkNPdmVySXBAQDZCU25tcEltcFNlc3Npb25AQEANCis7IGNvbnN0ICBTbm1wVjJDT3ZlcklwOjpgdmZ0YWJsZSd7Zm9yIGBTbm1wVHJhbnNwb3J0SXBBZGRyZXNzJ30NCis/P183U25tcFYyQ092ZXJJcEBANkJTbm1wVHJhbnNwb3J0SXBBZGRyZXNzQEBADQorOyBjb25zdCAgU25tcFYyQ092ZXJJcDo6YHZmdGFibGUne2ZvciBgU25tcFVkcElwVHJhbnNwb3J0J30NCis/P183U25tcFYyQ092ZXJJcEBANkJTbm1wVWRwSXBUcmFuc3BvcnRAQEANCis7IGNvbnN0ICBTbm1wVjJDT3ZlcklwOjpgdmZ0YWJsZSd7Zm9yIGBTbm1wVjJDRW5jb2RlRGVjb2RlJ30NCis/P183U25tcFYyQ092ZXJJcEBANkJTbm1wVjJDRW5jb2RlRGVjb2RlQEBADQorOyBjb25zdCAgU25tcFYyQ092ZXJJcHg6OmB2ZnRhYmxlJ3tmb3IgYFNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5J30NCis/P183U25tcFYyQ092ZXJJcHhAQDZCU25tcENvbW11bml0eUJhc2VkU2VjdXJpdHlAQEANCis7IGNvbnN0ICBTbm1wVjJDT3ZlcklweDo6YHZmdGFibGUne2ZvciBgU25tcEltcFNlc3Npb24nfQ0KKz8/XzdTbm1wVjJDT3ZlcklweEBANkJTbm1wSW1wU2Vzc2lvbkBAQA0KKzsgY29uc3QgIFNubXBWMkNPdmVySXB4OjpgdmZ0YWJsZSd7Zm9yIGBTbm1wSXB4VHJhbnNwb3J0J30NCis/P183U25tcFYyQ092ZXJJcHhAQDZCU25tcElweFRyYW5zcG9ydEBAQA0KKzsgY29uc3QgIFNubXBWMkNPdmVySXB4OjpgdmZ0YWJsZSd7Zm9yIGBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzcyd9DQorPz9fN1NubXBWMkNPdmVySXB4QEA2QlNubXBUcmFuc3BvcnRJcHhBZGRyZXNzQEBADQorOyBjb25zdCAgU25tcFYyQ092ZXJJcHg6OmB2ZnRhYmxlJ3tmb3IgYFNubXBWMkNFbmNvZGVEZWNvZGUnfQ0KKz8/XzdTbm1wVjJDT3ZlcklweEBANkJTbm1wVjJDRW5jb2RlRGVjb2RlQEBADQorOyBjb25zdCAgU25tcFZhbHVlOjpgdmZ0YWJsZScNCis/P183U25tcFZhbHVlQEA2QkANCis7IGNvbnN0ICBTbm1wVmFyQmluZDo6YHZmdGFibGUnDQorPz9fN1NubXBWYXJCaW5kQEA2QkANCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBBbmFseXNlcjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZTbm1wQW5hbHlzZXJAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRlNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wRGlzcGxheVN0cmluZ1R5cGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GU25tcERpc3BsYXlTdHJpbmdUeXBlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wR2F1Z2VUeXBlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRlNubXBHYXVnZVR5cGVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBJbnN0YW5jZVR5cGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GU25tcEluc3RhbmNlVHlwZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU25tcEludGVnZXJUeXBlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRlNubXBJbnRlZ2VyVHlwZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU25tcE9jdGV0U3RyaW5nVHlwZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZTbm1wT2N0ZXRTdHJpbmdUeXBlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wT3BhcXVlVHlwZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZTbm1wT3BhcXVlVHlwZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU25tcFBoeXNBZGRyZXNzVHlwZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZTbm1wUGh5c0FkZHJlc3NUeXBlQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wUG9zaXRpdmVSYW5nZWRUeXBlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRlNubXBQb3NpdGl2ZVJhbmdlZFR5cGVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBVSW50ZWdlcjMyVHlwZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZTbm1wVUludGVnZXIzMlR5cGVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdDo6QWRkKGNsYXNzIFNubXBWYXJCaW5kIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9BZGRAU25tcFZhckJpbmRMaXN0QEBRRUFBWEFFQlZTbm1wVmFyQmluZEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdDo6QWRkTm9SZWFsbG9jYXRlKGNsYXNzIFNubXBWYXJCaW5kICYgX19wdHI2NCkgX19wdHI2NA0KKz9BZGROb1JlYWxsb2NhdGVAU25tcFZhckJpbmRMaXN0QEBRRUFBWEFFQVZTbm1wVmFyQmluZEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wQW5hbHlzZXI6OkFuYWx5c2UoY2xhc3MgU25tcExleGljb24gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCxpbnQsaW50LGludCkgX19wdHI2NA0KKz9BbmFseXNlQFNubXBBbmFseXNlckBATUVBQUhQRUFWU25tcExleGljb25AQEFFQUtHUEVCRzFISEhAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgU25tcEJpdFN0cmluZ1R5cGU6OkJpdFN0cmluZ0RlZih2b2lkKSBfX3B0cjY0DQorP0JpdFN0cmluZ0RlZkBTbm1wQml0U3RyaW5nVHlwZUBAQUVBQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgR2V0TmV4dE9wZXJhdGlvbjo6Q2FuY2VsUmVxdWVzdCh2b2lkKSBfX3B0cjY0DQorP0NhbmNlbFJlcXVlc3RAR2V0TmV4dE9wZXJhdGlvbkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbjo6Q2FuY2VsUmVxdWVzdCh2b2lkKSBfX3B0cjY0DQorP0NhbmNlbFJlcXVlc3RAU25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU25tcE9wZXJhdGlvbjo6Q2FuY2VsUmVxdWVzdCh2b2lkKSBfX3B0cjY0DQorP0NhbmNlbFJlcXVlc3RAU25tcE9wZXJhdGlvbkBAUUVBQVhYWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wVmFyQmluZExpc3QgKiBfX3B0cjY0IF9fY2RlY2wgU25tcFZhckJpbmRMaXN0OjpDYXIodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0NhckBTbm1wVmFyQmluZExpc3RAQFFFQUFQRUFWMUBJQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcFZhckJpbmRMaXN0ICogX19wdHI2NCBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdDo6Q2RyKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9DZHJAU25tcFZhckJpbmRMaXN0QEBRRUFBUEVBVjFASUBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNubXBQb3NpdGl2ZVJhbmdlZFR5cGU6OkNoZWNrKHVuc2lnbmVkIGxvbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoZWNrQFNubXBQb3NpdGl2ZVJhbmdlZFR5cGVAQFFFQUFIQUVCS0BaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgU25tcE9wZXJhdGlvbjo6Q2hlY2tPcGVyYXRpb25EZWxldGlvbih2b2lkKSBfX3B0cjY0DQorP0NoZWNrT3BlcmF0aW9uRGVsZXRpb25AU25tcE9wZXJhdGlvbkBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIEdldE5leHRPcGVyYXRpb246OkNsZWFudXAodm9pZCkgX19wdHI2NA0KKz9DbGVhbnVwQEdldE5leHRPcGVyYXRpb25AQEFFQUFYWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBTbm1wQ2xhc3NMaWJyYXJ5OjpDbG9zZWRvd24odm9pZCkNCis/Q2xvc2Vkb3duQFNubXBDbGFzc0xpYnJhcnlAQFNBWFhaDQorOyBwcm90ZWN0ZWQ6IGVudW0gU25tcE9iamVjdElkZW50aWZpZXI6OkNvbXBhcmlzb24gIF9fY2RlY2wgU25tcE9iamVjdElkZW50aWZpZXI6OkNvbXBhcmUoY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db21wYXJlQFNubXBPYmplY3RJZGVudGlmaWVyQEBJRUJBP0FXNENvbXBhcmlzb25AMUBBRUJWMUAwQFoNCis7IGludCBfX2NkZWNsIENvbXBhcmVFbGVtZW50cyhjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllclR5cGUgKiBfX3B0cjY0LGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyVHlwZSAqIF9fcHRyNjQpDQorP0NvbXBhcmVFbGVtZW50c0BAWUFIUEVBVlNubXBPYmplY3RJZGVudGlmaWVyVHlwZUBAMEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcEluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wQml0U3RyaW5nVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcEJpdFN0cmluZ1R5cGVAQFVFQkFQRUFWU25tcEluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wU2VjdXJpdHkgKiBfX3B0cjY0IF9fY2RlY2wgU25tcENvbW11bml0eUJhc2VkU2VjdXJpdHk6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5QEBVRUJBUEVBVlNubXBTZWN1cml0eUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wVmFsdWUgKiBfX3B0cjY0IF9fY2RlY2wgU25tcENvdW50ZXI2NDo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcENvdW50ZXI2NEBAVUVCQVBFQVZTbm1wVmFsdWVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcEluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wQ291bnRlcjY0VHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcENvdW50ZXI2NFR5cGVAQFVFQkFQRUFWU25tcEluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wVmFsdWUgKiBfX3B0cjY0IF9fY2RlY2wgU25tcENvdW50ZXI6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFNubXBDb3VudGVyQEBVRUJBUEVBVlNubXBWYWx1ZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wSW5zdGFuY2VUeXBlICogX19wdHI2NCBfX2NkZWNsIFNubXBDb3VudGVyVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcENvdW50ZXJUeXBlQEBVRUJBUEVBVlNubXBJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcEluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wRGF0ZVRpbWVUeXBlOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBTbm1wRGF0ZVRpbWVUeXBlQEBVRUJBUEVBVlNubXBJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcEluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wRGlzcGxheVN0cmluZ1R5cGU6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFNubXBEaXNwbGF5U3RyaW5nVHlwZUBAVUVCQVBFQVZTbm1wSW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBWYWx1ZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wRW5kT2ZNaWJWaWV3OjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBTbm1wRW5kT2ZNaWJWaWV3QEBVRUJBUEVBVlNubXBWYWx1ZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wSW5zdGFuY2VUeXBlICogX19wdHI2NCBfX2NkZWNsIFNubXBFbnVtZXJhdGVkVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcEVudW1lcmF0ZWRUeXBlQEBVRUJBUEVBVlNubXBJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcEluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wRml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcEZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGVAQFVFQkFQRUFWU25tcEluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wSW5zdGFuY2VUeXBlICogX19wdHI2NCBfX2NkZWNsIFNubXBGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcEZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlQEBVRUJBUEVBVlNubXBJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcEluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wRml4ZWRMZW5ndGhPcGFxdWVUeXBlOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBTbm1wRml4ZWRMZW5ndGhPcGFxdWVUeXBlQEBVRUJBUEVBVlNubXBJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcEluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wRml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGU6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFNubXBGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZUBAVUVCQVBFQVZTbm1wSW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBWYWx1ZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wR2F1Z2U6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFNubXBHYXVnZUBAVUVCQVBFQVZTbm1wVmFsdWVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcEluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wR2F1Z2VUeXBlOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBTbm1wR2F1Z2VUeXBlQEBVRUJBUEVBVlNubXBJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcEluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wSVBYQWRkcmVzc1R5cGU6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFNubXBJUFhBZGRyZXNzVHlwZUBAVUVCQVBFQVZTbm1wSW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBWYWx1ZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wSW50ZWdlcjo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcEludGVnZXJAQFVFQkFQRUFWU25tcFZhbHVlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBJbnN0YW5jZVR5cGUgKiBfX3B0cjY0IF9fY2RlY2wgU25tcEludGVnZXJUeXBlOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBTbm1wSW50ZWdlclR5cGVAQFVFQkFQRUFWU25tcEluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wVmFsdWUgKiBfX3B0cjY0IF9fY2RlY2wgU25tcElwQWRkcmVzczo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcElwQWRkcmVzc0BAVUVCQVBFQVZTbm1wVmFsdWVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcEluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wSXBBZGRyZXNzVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcElwQWRkcmVzc1R5cGVAQFVFQkFQRUFWU25tcEluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wSW5zdGFuY2VUeXBlICogX19wdHI2NCBfX2NkZWNsIFNubXBNYWNBZGRyZXNzVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcE1hY0FkZHJlc3NUeXBlQEBVRUJBUEVBVlNubXBJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcE5lZ2F0aXZlUmFuZ2VUeXBlICogX19wdHI2NCBfX2NkZWNsIFNubXBOZWdhdGl2ZVJhbmdlVHlwZTo6Q29weSh2b2lkKSBfX3B0cjY0DQorP0NvcHlAU25tcE5lZ2F0aXZlUmFuZ2VUeXBlQEBVRUFBUEVBVjFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wSW5zdGFuY2VUeXBlICogX19wdHI2NCBfX2NkZWNsIFNubXBOZXR3b3JrQWRkcmVzc1R5cGU6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFNubXBOZXR3b3JrQWRkcmVzc1R5cGVAQFVFQkFQRUFWU25tcEluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wVmFsdWUgKiBfX3B0cjY0IF9fY2RlY2wgU25tcE5vU3VjaEluc3RhbmNlOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBTbm1wTm9TdWNoSW5zdGFuY2VAQFVFQkFQRUFWU25tcFZhbHVlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBWYWx1ZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wTm9TdWNoT2JqZWN0OjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBTbm1wTm9TdWNoT2JqZWN0QEBVRUJBUEVBVlNubXBWYWx1ZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wVmFsdWUgKiBfX3B0cjY0IF9fY2RlY2wgU25tcE51bGw6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFNubXBOdWxsQEBVRUJBUEVBVlNubXBWYWx1ZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wSW5zdGFuY2VUeXBlICogX19wdHI2NCBfX2NkZWNsIFNubXBOdWxsVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcE51bGxUeXBlQEBVRUJBUEVBVlNubXBJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcEluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wT1NJQWRkcmVzc1R5cGU6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFNubXBPU0lBZGRyZXNzVHlwZUBAVUVCQVBFQVZTbm1wSW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBWYWx1ZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllcjo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcE9iamVjdElkZW50aWZpZXJAQFVFQkFQRUFWU25tcFZhbHVlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBJbnN0YW5jZVR5cGUgKiBfX3B0cjY0IF9fY2RlY2wgU25tcE9iamVjdElkZW50aWZpZXJUeXBlOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBTbm1wT2JqZWN0SWRlbnRpZmllclR5cGVAQFVFQkFQRUFWU25tcEluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wVmFsdWUgKiBfX3B0cjY0IF9fY2RlY2wgU25tcE9jdGV0U3RyaW5nOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBTbm1wT2N0ZXRTdHJpbmdAQFVFQkFQRUFWU25tcFZhbHVlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBJbnN0YW5jZVR5cGUgKiBfX3B0cjY0IF9fY2RlY2wgU25tcE9jdGV0U3RyaW5nVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcE9jdGV0U3RyaW5nVHlwZUBAVUVCQVBFQVZTbm1wSW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBWYWx1ZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wT3BhcXVlOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBTbm1wT3BhcXVlQEBVRUJBUEVBVlNubXBWYWx1ZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wSW5zdGFuY2VUeXBlICogX19wdHI2NCBfX2NkZWNsIFNubXBPcGFxdWVUeXBlOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBTbm1wT3BhcXVlVHlwZUBAVUVCQVBFQVZTbm1wSW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBJbnN0YW5jZVR5cGUgKiBfX3B0cjY0IF9fY2RlY2wgU25tcFBoeXNBZGRyZXNzVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcFBoeXNBZGRyZXNzVHlwZUBAVUVCQVBFQVZTbm1wSW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBQb3NpdGl2ZVJhbmdlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wUG9zaXRpdmVSYW5nZVR5cGU6OkNvcHkodm9pZCkgX19wdHI2NA0KKz9Db3B5QFNubXBQb3NpdGl2ZVJhbmdlVHlwZUBAVUVBQVBFQVYxQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcEluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wUm93U3RhdHVzVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcFJvd1N0YXR1c1R5cGVAQFVFQkFQRUFWU25tcEluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wVmFsdWUgKiBfX3B0cjY0IF9fY2RlY2wgU25tcFRpbWVUaWNrczo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcFRpbWVUaWNrc0BAVUVCQVBFQVZTbm1wVmFsdWVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcEluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wVGltZVRpY2tzVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcFRpbWVUaWNrc1R5cGVAQFVFQkFQRUFWU25tcEluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wVHJhbnNwb3J0QWRkcmVzcyAqIF9fcHRyNjQgX19jZGVjbCBTbm1wVHJhbnNwb3J0SXBBZGRyZXNzOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBTbm1wVHJhbnNwb3J0SXBBZGRyZXNzQEBVRUJBUEVBVlNubXBUcmFuc3BvcnRBZGRyZXNzQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBUcmFuc3BvcnRBZGRyZXNzICogX19wdHI2NCBfX2NkZWNsIFNubXBUcmFuc3BvcnRJcHhBZGRyZXNzOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzc0BAVUVCQVBFQVZTbm1wVHJhbnNwb3J0QWRkcmVzc0BAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wSW5zdGFuY2VUeXBlICogX19wdHI2NCBfX2NkZWNsIFNubXBVRFBBZGRyZXNzVHlwZTo6Q29weSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvcHlAU25tcFVEUEFkZHJlc3NUeXBlQEBVRUJBUEVBVlNubXBJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcFZhbHVlICogX19wdHI2NCBfX2NkZWNsIFNubXBVSW50ZWdlcjMyOjpDb3B5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q29weUBTbm1wVUludGVnZXIzMkBAVUVCQVBFQVZTbm1wVmFsdWVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcEluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wVUludGVnZXIzMlR5cGU6OkNvcHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Db3B5QFNubXBVSW50ZWdlcjMyVHlwZUBAVUVCQVBFQVZTbm1wSW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wVmFyQmluZExpc3QgKiBfX3B0cjY0IF9fY2RlY2wgU25tcFZhckJpbmRMaXN0OjpDb3B5U2VnbWVudCh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/Q29weVNlZ21lbnRAU25tcFZhckJpbmRMaXN0QEBRRUFBUEVBVjFASUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3MgU25tcExleGljb24gKiBfX3B0cjY0IF9fY2RlY2wgU25tcEFuYWx5c2VyOjpDcmVhdGVMZXhpY29uKHZvaWQpIF9fcHRyNjQNCis/Q3JlYXRlTGV4aWNvbkBTbm1wQW5hbHlzZXJAQE1FQUFQRUFWU25tcExleGljb25AQFhaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyICogX19wdHI2NCBfX2NkZWNsIFNubXBPYmplY3RJZGVudGlmaWVyOjpDdXQoY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0N1dEBTbm1wT2JqZWN0SWRlbnRpZmllckBAUUVCQVBFQVYxQEFFQVYxQEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBTbm1wRGF0ZVRpbWVUeXBlOjpEYXRlVGltZURlZih2b2lkKSBfX3B0cjY0DQorP0RhdGVUaW1lRGVmQFNubXBEYXRlVGltZVR5cGVAQEFFQUFIWFoNCis7IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIERiY3NUb1VuaWNvZGVTdHJpbmcoY2hhciBjb25zdCAqIF9fcHRyNjQpDQorP0RiY3NUb1VuaWNvZGVTdHJpbmdAQFlBUEVBR1BFQkRAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIFNubXBBbmFseXNlcjo6RGVjQ2hhclRvRGVjSW50ZWdlcihjaGFyKQ0KKz9EZWNDaGFyVG9EZWNJbnRlZ2VyQFNubXBBbmFseXNlckBAU0FLREBaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIF9fY2RlY2wgU25tcEFuYWx5c2VyOjpEZWNJbnRlZ2VyVG9EZWNDaGFyKHVuc2lnbmVkIGNoYXIpDQorP0RlY0ludGVnZXJUb0RlY0NoYXJAU25tcEFuYWx5c2VyQEBTQURFQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgU25tcEFuYWx5c2VyOjpEZWNJbnRlZ2VyVG9EZWNXQ2hhcih1bnNpZ25lZCBjaGFyKQ0KKz9EZWNJbnRlZ2VyVG9EZWNXQ2hhckBTbm1wQW5hbHlzZXJAQFNBR0VAWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBfX2NkZWNsIFNubXBBbmFseXNlcjo6RGVjSW50ZWdlclRvSGV4Q2hhcih1bnNpZ25lZCBjaGFyKQ0KKz9EZWNJbnRlZ2VyVG9IZXhDaGFyQFNubXBBbmFseXNlckBAU0FERUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIFNubXBBbmFseXNlcjo6RGVjSW50ZWdlclRvSGV4V0NoYXIodW5zaWduZWQgY2hhcikNCis/RGVjSW50ZWdlclRvSGV4V0NoYXJAU25tcEFuYWx5c2VyQEBTQUdFQFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgX19jZGVjbCBTbm1wQW5hbHlzZXI6OkRlY0ludGVnZXJUb09jdENoYXIodW5zaWduZWQgY2hhcikNCis/RGVjSW50ZWdlclRvT2N0Q2hhckBTbm1wQW5hbHlzZXJAQFNBREVAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBTbm1wQW5hbHlzZXI6OkRlY0ludGVnZXJUb09jdFdDaGFyKHVuc2lnbmVkIGNoYXIpDQorP0RlY0ludGVnZXJUb09jdFdDaGFyQFNubXBBbmFseXNlckBAU0FHRUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU25tcEFuYWx5c2VyOjpEZWNXQ2hhclRvRGVjSW50ZWdlcih1bnNpZ25lZCBzaG9ydCkNCis/RGVjV0NoYXJUb0RlY0ludGVnZXJAU25tcEFuYWx5c2VyQEBTQUtHQFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciAgX19jZGVjbCBTbm1wQ291bnRlcjY0VHlwZTo6RGVjb2RlKGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9EZWNvZGVAU25tcENvdW50ZXI2NFR5cGVAQFVFQUE/QVZTbm1wT2JqZWN0SWRlbnRpZmllckBAQUVCVjJAQFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciAgX19jZGVjbCBTbm1wQ291bnRlclR5cGU6OkRlY29kZShjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVjb2RlQFNubXBDb3VudGVyVHlwZUBAVUVBQT9BVlNubXBPYmplY3RJZGVudGlmaWVyQEBBRUJWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyICBfX2NkZWNsIFNubXBGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZTo6RGVjb2RlKGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9EZWNvZGVAU25tcEZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlQEBVRUFBP0FWU25tcE9iamVjdElkZW50aWZpZXJAQEFFQlYyQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgIF9fY2RlY2wgU25tcEZpeGVkTGVuZ3RoT3BhcXVlVHlwZTo6RGVjb2RlKGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9EZWNvZGVAU25tcEZpeGVkTGVuZ3RoT3BhcXVlVHlwZUBAVUVBQT9BVlNubXBPYmplY3RJZGVudGlmaWVyQEBBRUJWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyICBfX2NkZWNsIFNubXBHYXVnZVR5cGU6OkRlY29kZShjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVjb2RlQFNubXBHYXVnZVR5cGVAQFVFQUE/QVZTbm1wT2JqZWN0SWRlbnRpZmllckBAQUVCVjJAQFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciAgX19jZGVjbCBTbm1wSW50ZWdlclR5cGU6OkRlY29kZShjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVjb2RlQFNubXBJbnRlZ2VyVHlwZUBAVUVBQT9BVlNubXBPYmplY3RJZGVudGlmaWVyQEBBRUJWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyICBfX2NkZWNsIFNubXBJcEFkZHJlc3NUeXBlOjpEZWNvZGUoY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlY29kZUBTbm1wSXBBZGRyZXNzVHlwZUBAVUVBQT9BVlNubXBPYmplY3RJZGVudGlmaWVyQEBBRUJWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyICBfX2NkZWNsIFNubXBOZXR3b3JrQWRkcmVzc1R5cGU6OkRlY29kZShjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVjb2RlQFNubXBOZXR3b3JrQWRkcmVzc1R5cGVAQFVFQUE/QVZTbm1wT2JqZWN0SWRlbnRpZmllckBAQUVCVjJAQFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciAgX19jZGVjbCBTbm1wTnVsbFR5cGU6OkRlY29kZShjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVjb2RlQFNubXBOdWxsVHlwZUBAVUVBQT9BVlNubXBPYmplY3RJZGVudGlmaWVyQEBBRUJWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyICBfX2NkZWNsIFNubXBPYmplY3RJZGVudGlmaWVyVHlwZTo6RGVjb2RlKGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9EZWNvZGVAU25tcE9iamVjdElkZW50aWZpZXJUeXBlQEBVRUFBP0FWU25tcE9iamVjdElkZW50aWZpZXJAQEFFQlYyQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgIF9fY2RlY2wgU25tcE9jdGV0U3RyaW5nVHlwZTo6RGVjb2RlKGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9EZWNvZGVAU25tcE9jdGV0U3RyaW5nVHlwZUBAVUVBQT9BVlNubXBPYmplY3RJZGVudGlmaWVyQEBBRUJWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyICBfX2NkZWNsIFNubXBPcGFxdWVUeXBlOjpEZWNvZGUoY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlY29kZUBTbm1wT3BhcXVlVHlwZUBAVUVBQT9BVlNubXBPYmplY3RJZGVudGlmaWVyQEBBRUJWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyICBfX2NkZWNsIFNubXBUaW1lVGlja3NUeXBlOjpEZWNvZGUoY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlY29kZUBTbm1wVGltZVRpY2tzVHlwZUBAVUVBQT9BVlNubXBPYmplY3RJZGVudGlmaWVyQEBBRUJWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyICBfX2NkZWNsIFNubXBVSW50ZWdlcjMyVHlwZTo6RGVjb2RlKGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9EZWNvZGVAU25tcFVJbnRlZ2VyMzJUeXBlQEBVRUFBP0FWU25tcE9iamVjdElkZW50aWZpZXJAQEFFQlYyQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcEVuY29kZURlY29kZTo6RGVjb2RlRnJhbWUoY2xhc3MgU25tcFBkdSAmIF9fcHRyNjQsbG9uZyxlbnVtIFNubXBFbmNvZGVEZWNvZGU6OlBkdVR5cGUsY2xhc3MgU25tcEVycm9yUmVwb3J0ICYgX19wdHI2NCxjbGFzcyBTbm1wVmFyQmluZExpc3QgKiBfX3B0cjY0ICYgX19wdHI2NCxjbGFzcyBTbm1wQ29tbXVuaXR5QmFzZWRTZWN1cml0eSAqIF9fcHRyNjQgJiBfX3B0cjY0LGNsYXNzIFNubXBUcmFuc3BvcnRBZGRyZXNzICogX19wdHI2NCAmIF9fcHRyNjQsY2xhc3MgU25tcFRyYW5zcG9ydEFkZHJlc3MgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9EZWNvZGVGcmFtZUBTbm1wRW5jb2RlRGVjb2RlQEBVRUFBSEFFQVZTbm1wUGR1QEBKVzRQZHVUeXBlQDFAQUVBVlNubXBFcnJvclJlcG9ydEBAQUVBUEVBVlNubXBWYXJCaW5kTGlzdEBAQUVBUEVBVlNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5QEBBRUFQRUFWU25tcFRyYW5zcG9ydEFkZHJlc3NAQDVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBFbmNvZGVEZWNvZGU6OkRlY29kZUZyYW1lKHZvaWQgKiBfX3B0cjY0LGNsYXNzIFNubXBQZHUgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlY29kZUZyYW1lQFNubXBFbmNvZGVEZWNvZGVAQFVFQUFIUEVBWEFFQVZTbm1wUGR1QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wSW1wU2Vzc2lvbjo6RGVyZWdpc3Rlck9wZXJhdGlvbihjbGFzcyBTbm1wT3BlcmF0aW9uICYgX19wdHI2NCkgX19wdHI2NA0KKz9EZXJlZ2lzdGVyT3BlcmF0aW9uQFNubXBJbXBTZXNzaW9uQEBVRUFBWEFFQVZTbm1wT3BlcmF0aW9uQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgR2V0TmV4dE9wZXJhdGlvbjo6RGVzdHJveU9wZXJhdGlvbih2b2lkKSBfX3B0cjY0DQorP0Rlc3Ryb3lPcGVyYXRpb25AR2V0TmV4dE9wZXJhdGlvbkBAUUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgU25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbjo6RGVzdHJveU9wZXJhdGlvbih2b2lkKSBfX3B0cjY0DQorP0Rlc3Ryb3lPcGVyYXRpb25AU25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbkBASUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgU25tcE9wZXJhdGlvbjo6RGVzdHJveU9wZXJhdGlvbih2b2lkKSBfX3B0cjY0DQorP0Rlc3Ryb3lPcGVyYXRpb25AU25tcE9wZXJhdGlvbkBASUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgU25tcFZhckJpbmRMaXN0OjpEZXN0cm95UG9zaXRpb24oY2xhc3MgU25tcFZhckJpbmRMaXN0OjpMaXN0UG9zaXRpb24gKiBfX3B0cjY0KSBfX3B0cjY0DQorP0Rlc3Ryb3lQb3NpdGlvbkBTbm1wVmFyQmluZExpc3RAQElFQUFYUEVBVkxpc3RQb3NpdGlvbkAxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNubXBUcmFwUmVjZWl2ZXI6OkRlc3Ryb3lSZWNlaXZlcih2b2lkKSBfX3B0cjY0DQorP0Rlc3Ryb3lSZWNlaXZlckBTbm1wVHJhcFJlY2VpdmVyQEBRRUFBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcEltcFNlc3Npb246OkRlc3Ryb3lTZXNzaW9uKHZvaWQpIF9fcHRyNjQNCis/RGVzdHJveVNlc3Npb25AU25tcEltcFNlc3Npb25AQFVFQUFIWFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX2NkZWNsIFNubXBFbmNvZGVEZWNvZGU6OkRlc3Ryb3lTdGF0aWNDb21wb25lbnRzKHZvaWQpDQorP0Rlc3Ryb3lTdGF0aWNDb21wb25lbnRzQFNubXBFbmNvZGVEZWNvZGVAQEtBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdDo6RW1wdHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9FbXB0eUBTbm1wVmFyQmluZExpc3RAQFFFQkFIWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdDo6RW1wdHlMb29rdXBUYWJsZSh2b2lkKSBfX3B0cjY0DQorP0VtcHR5TG9va3VwVGFibGVAU25tcFZhckJpbmRMaXN0QEBJRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgIF9fY2RlY2wgU25tcENvdW50ZXI2NFR5cGU6OkVuY29kZShjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RW5jb2RlQFNubXBDb3VudGVyNjRUeXBlQEBVRUJBP0FWU25tcE9iamVjdElkZW50aWZpZXJAQEFFQlYyQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgIF9fY2RlY2wgU25tcENvdW50ZXJUeXBlOjpFbmNvZGUoY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VuY29kZUBTbm1wQ291bnRlclR5cGVAQFVFQkE/QVZTbm1wT2JqZWN0SWRlbnRpZmllckBAQUVCVjJAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBTbm1wRGF0ZVRpbWVUeXBlOjpFbmNvZGUodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RW5jb2RlQFNubXBEYXRlVGltZVR5cGVAQEFFQUFYQUVCSzAwMDAwMDAwMDBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyICBfX2NkZWNsIFNubXBGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZTo6RW5jb2RlKGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FbmNvZGVAU25tcEZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlQEBVRUJBP0FWU25tcE9iamVjdElkZW50aWZpZXJAQEFFQlYyQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgIF9fY2RlY2wgU25tcEZpeGVkTGVuZ3RoT3BhcXVlVHlwZTo6RW5jb2RlKGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FbmNvZGVAU25tcEZpeGVkTGVuZ3RoT3BhcXVlVHlwZUBAVUVCQT9BVlNubXBPYmplY3RJZGVudGlmaWVyQEBBRUJWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyICBfX2NkZWNsIFNubXBHYXVnZVR5cGU6OkVuY29kZShjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RW5jb2RlQFNubXBHYXVnZVR5cGVAQFVFQkE/QVZTbm1wT2JqZWN0SWRlbnRpZmllckBAQUVCVjJAQFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciAgX19jZGVjbCBTbm1wSW50ZWdlclR5cGU6OkVuY29kZShjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RW5jb2RlQFNubXBJbnRlZ2VyVHlwZUBAVUVCQT9BVlNubXBPYmplY3RJZGVudGlmaWVyQEBBRUJWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyICBfX2NkZWNsIFNubXBJcEFkZHJlc3NUeXBlOjpFbmNvZGUoY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VuY29kZUBTbm1wSXBBZGRyZXNzVHlwZUBAVUVCQT9BVlNubXBPYmplY3RJZGVudGlmaWVyQEBBRUJWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyICBfX2NkZWNsIFNubXBOZXR3b3JrQWRkcmVzc1R5cGU6OkVuY29kZShjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RW5jb2RlQFNubXBOZXR3b3JrQWRkcmVzc1R5cGVAQFVFQkE/QVZTbm1wT2JqZWN0SWRlbnRpZmllckBAQUVCVjJAQFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciAgX19jZGVjbCBTbm1wTnVsbFR5cGU6OkVuY29kZShjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RW5jb2RlQFNubXBOdWxsVHlwZUBAVUVCQT9BVlNubXBPYmplY3RJZGVudGlmaWVyQEBBRUJWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyICBfX2NkZWNsIFNubXBPYmplY3RJZGVudGlmaWVyVHlwZTo6RW5jb2RlKGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FbmNvZGVAU25tcE9iamVjdElkZW50aWZpZXJUeXBlQEBVRUJBP0FWU25tcE9iamVjdElkZW50aWZpZXJAQEFFQlYyQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgIF9fY2RlY2wgU25tcE9jdGV0U3RyaW5nVHlwZTo6RW5jb2RlKGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FbmNvZGVAU25tcE9jdGV0U3RyaW5nVHlwZUBAVUVCQT9BVlNubXBPYmplY3RJZGVudGlmaWVyQEBBRUJWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyICBfX2NkZWNsIFNubXBPcGFxdWVUeXBlOjpFbmNvZGUoY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VuY29kZUBTbm1wT3BhcXVlVHlwZUBAVUVCQT9BVlNubXBPYmplY3RJZGVudGlmaWVyQEBBRUJWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyICBfX2NkZWNsIFNubXBUaW1lVGlja3NUeXBlOjpFbmNvZGUoY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VuY29kZUBTbm1wVGltZVRpY2tzVHlwZUBAVUVCQT9BVlNubXBPYmplY3RJZGVudGlmaWVyQEBBRUJWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyICBfX2NkZWNsIFNubXBVSW50ZWdlcjMyVHlwZTo6RW5jb2RlKGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FbmNvZGVAU25tcFVJbnRlZ2VyMzJUeXBlQEBVRUJBP0FWU25tcE9iamVjdElkZW50aWZpZXJAQEFFQlYyQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcEVuY29kZURlY29kZTo6RW5jb2RlRnJhbWUoY2xhc3MgU25tcFBkdSAmIF9fcHRyNjQsbG9uZyxlbnVtIFNubXBFbmNvZGVEZWNvZGU6OlBkdVR5cGUsY2xhc3MgU25tcEVycm9yUmVwb3J0ICYgX19wdHI2NCxjbGFzcyBTbm1wVmFyQmluZExpc3QgJiBfX3B0cjY0LGNsYXNzIFNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5ICogX19wdHI2NCAmIF9fcHRyNjQsY2xhc3MgU25tcFRyYW5zcG9ydEFkZHJlc3MgKiBfX3B0cjY0ICYgX19wdHI2NCxjbGFzcyBTbm1wVHJhbnNwb3J0QWRkcmVzcyAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0VuY29kZUZyYW1lQFNubXBFbmNvZGVEZWNvZGVAQFVFQUFIQUVBVlNubXBQZHVAQEpXNFBkdVR5cGVAMUBBRUFWU25tcEVycm9yUmVwb3J0QEBBRUFWU25tcFZhckJpbmRMaXN0QEBBRUFQRUFWU25tcENvbW11bml0eUJhc2VkU2VjdXJpdHlAQEFFQVBFQVZTbm1wVHJhbnNwb3J0QWRkcmVzc0BANUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcEVuY29kZURlY29kZTo6RW5jb2RlRnJhbWUoY2xhc3MgU25tcFBkdSAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RW5jb2RlRnJhbWVAU25tcEVuY29kZURlY29kZUBAVUVBQUhBRUFWU25tcFBkdUBAUEVBWEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBTbm1wRW51bWVyYXRlZFR5cGU6OkVudW1lcmF0aW9uRGVmKHZvaWQpIF9fcHRyNjQNCis/RW51bWVyYXRpb25EZWZAU25tcEVudW1lcmF0ZWRUeXBlQEBBRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcENvdW50ZXI2NDo6RXF1aXZhbGVudChjbGFzcyBTbm1wVmFsdWUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAU25tcENvdW50ZXI2NEBATUVCQUhBRUJWU25tcFZhbHVlQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wQ291bnRlcjY0OjpFcXVpdmFsZW50KGNsYXNzIFNubXBDb3VudGVyNjQgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAU25tcENvdW50ZXI2NEBAUUVCQUhBRUJWMUBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBDb3VudGVyNjRUeXBlOjpFcXVpdmFsZW50KGNsYXNzIFNubXBJbnN0YW5jZVR5cGUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAU25tcENvdW50ZXI2NFR5cGVAQE1FQkFIQUVCVlNubXBJbnN0YW5jZVR5cGVAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcENvdW50ZXI6OkVxdWl2YWxlbnQoY2xhc3MgU25tcFZhbHVlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFNubXBDb3VudGVyQEBNRUJBSEFFQlZTbm1wVmFsdWVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNubXBDb3VudGVyOjpFcXVpdmFsZW50KGNsYXNzIFNubXBDb3VudGVyIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFNubXBDb3VudGVyQEBRRUJBSEFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcENvdW50ZXJUeXBlOjpFcXVpdmFsZW50KGNsYXNzIFNubXBJbnN0YW5jZVR5cGUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAU25tcENvdW50ZXJUeXBlQEBNRUJBSEFFQlZTbm1wSW5zdGFuY2VUeXBlQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBFbmRPZk1pYlZpZXc6OkVxdWl2YWxlbnQoY2xhc3MgU25tcFZhbHVlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFNubXBFbmRPZk1pYlZpZXdAQE1FQkFIQUVCVlNubXBWYWx1ZUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wR2F1Z2U6OkVxdWl2YWxlbnQoY2xhc3MgU25tcFZhbHVlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFNubXBHYXVnZUBATUVCQUhBRUJWU25tcFZhbHVlQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wR2F1Z2U6OkVxdWl2YWxlbnQoY2xhc3MgU25tcEdhdWdlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFNubXBHYXVnZUBAUUVCQUhBRUJWMUBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBHYXVnZVR5cGU6OkVxdWl2YWxlbnQoY2xhc3MgU25tcEluc3RhbmNlVHlwZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBTbm1wR2F1Z2VUeXBlQEBNRUJBSEFFQlZTbm1wSW5zdGFuY2VUeXBlQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBJbnRlZ2VyOjpFcXVpdmFsZW50KGNsYXNzIFNubXBWYWx1ZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBTbm1wSW50ZWdlckBATUVCQUhBRUJWU25tcFZhbHVlQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wSW50ZWdlcjo6RXF1aXZhbGVudChjbGFzcyBTbm1wSW50ZWdlciBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBTbm1wSW50ZWdlckBAUUVCQUhBRUJWMUBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBJbnRlZ2VyVHlwZTo6RXF1aXZhbGVudChjbGFzcyBTbm1wSW5zdGFuY2VUeXBlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFNubXBJbnRlZ2VyVHlwZUBATUVCQUhBRUJWU25tcEluc3RhbmNlVHlwZUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wSXBBZGRyZXNzOjpFcXVpdmFsZW50KGNsYXNzIFNubXBWYWx1ZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBTbm1wSXBBZGRyZXNzQEBNRUJBSEFFQlZTbm1wVmFsdWVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNubXBJcEFkZHJlc3M6OkVxdWl2YWxlbnQoY2xhc3MgU25tcElwQWRkcmVzcyBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBTbm1wSXBBZGRyZXNzQEBRRUJBSEFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcElwQWRkcmVzc1R5cGU6OkVxdWl2YWxlbnQoY2xhc3MgU25tcEluc3RhbmNlVHlwZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBTbm1wSXBBZGRyZXNzVHlwZUBATUVCQUhBRUJWU25tcEluc3RhbmNlVHlwZUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wTmV0d29ya0FkZHJlc3NUeXBlOjpFcXVpdmFsZW50KGNsYXNzIFNubXBJbnN0YW5jZVR5cGUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAU25tcE5ldHdvcmtBZGRyZXNzVHlwZUBATUVCQUhBRUJWU25tcEluc3RhbmNlVHlwZUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wTm9TdWNoSW5zdGFuY2U6OkVxdWl2YWxlbnQoY2xhc3MgU25tcFZhbHVlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFNubXBOb1N1Y2hJbnN0YW5jZUBATUVCQUhBRUJWU25tcFZhbHVlQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBOb1N1Y2hPYmplY3Q6OkVxdWl2YWxlbnQoY2xhc3MgU25tcFZhbHVlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFNubXBOb1N1Y2hPYmplY3RAQE1FQkFIQUVCVlNubXBWYWx1ZUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wTnVsbDo6RXF1aXZhbGVudChjbGFzcyBTbm1wVmFsdWUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAU25tcE51bGxAQE1FQkFIQUVCVlNubXBWYWx1ZUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wTnVsbFR5cGU6OkVxdWl2YWxlbnQoY2xhc3MgU25tcEluc3RhbmNlVHlwZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1aXZhbGVudEBTbm1wTnVsbFR5cGVAQE1FQkFIQUVCVlNubXBJbnN0YW5jZVR5cGVAQEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIFNubXBPYmplY3RJZGVudGlmaWVyOjpFcXVpdmFsZW50KGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFNubXBPYmplY3RJZGVudGlmaWVyQEBJRUJBSEFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcE9iamVjdElkZW50aWZpZXI6OkVxdWl2YWxlbnQoY2xhc3MgU25tcFZhbHVlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFNubXBPYmplY3RJZGVudGlmaWVyQEBNRUJBSEFFQlZTbm1wVmFsdWVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNubXBPYmplY3RJZGVudGlmaWVyOjpFcXVpdmFsZW50KGNsYXNzIFNubXBPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYgX19wdHI2NCx1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAU25tcE9iamVjdElkZW50aWZpZXJAQFFFQkFIQUVCVjFAS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcE9iamVjdElkZW50aWZpZXJUeXBlOjpFcXVpdmFsZW50KGNsYXNzIFNubXBJbnN0YW5jZVR5cGUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAU25tcE9iamVjdElkZW50aWZpZXJUeXBlQEBNRUJBSEFFQlZTbm1wSW5zdGFuY2VUeXBlQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBPY3RldFN0cmluZzo6RXF1aXZhbGVudChjbGFzcyBTbm1wVmFsdWUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAU25tcE9jdGV0U3RyaW5nQEBNRUJBSEFFQlZTbm1wVmFsdWVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNubXBPY3RldFN0cmluZzo6RXF1aXZhbGVudChjbGFzcyBTbm1wT2N0ZXRTdHJpbmcgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAU25tcE9jdGV0U3RyaW5nQEBRRUJBSEFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcE9jdGV0U3RyaW5nVHlwZTo6RXF1aXZhbGVudChjbGFzcyBTbm1wSW5zdGFuY2VUeXBlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFNubXBPY3RldFN0cmluZ1R5cGVAQE1FQkFIQUVCVlNubXBJbnN0YW5jZVR5cGVAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcE9wYXF1ZTo6RXF1aXZhbGVudChjbGFzcyBTbm1wVmFsdWUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAU25tcE9wYXF1ZUBATUVCQUhBRUJWU25tcFZhbHVlQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wT3BhcXVlOjpFcXVpdmFsZW50KGNsYXNzIFNubXBPcGFxdWUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAU25tcE9wYXF1ZUBAUUVCQUhBRUJWMUBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBPcGFxdWVUeXBlOjpFcXVpdmFsZW50KGNsYXNzIFNubXBJbnN0YW5jZVR5cGUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAU25tcE9wYXF1ZVR5cGVAQE1FQkFIQUVCVlNubXBJbnN0YW5jZVR5cGVAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcFRpbWVUaWNrczo6RXF1aXZhbGVudChjbGFzcyBTbm1wVmFsdWUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAU25tcFRpbWVUaWNrc0BATUVCQUhBRUJWU25tcFZhbHVlQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wVGltZVRpY2tzOjpFcXVpdmFsZW50KGNsYXNzIFNubXBUaW1lVGlja3MgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAU25tcFRpbWVUaWNrc0BAUUVCQUhBRUJWMUBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBUaW1lVGlja3NUeXBlOjpFcXVpdmFsZW50KGNsYXNzIFNubXBJbnN0YW5jZVR5cGUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAU25tcFRpbWVUaWNrc1R5cGVAQE1FQkFIQUVCVlNubXBJbnN0YW5jZVR5cGVAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcFVJbnRlZ2VyMzI6OkVxdWl2YWxlbnQoY2xhc3MgU25tcFZhbHVlIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFNubXBVSW50ZWdlcjMyQEBNRUJBSEFFQlZTbm1wVmFsdWVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNubXBVSW50ZWdlcjMyOjpFcXVpdmFsZW50KGNsYXNzIFNubXBVSW50ZWdlcjMyIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVpdmFsZW50QFNubXBVSW50ZWdlcjMyQEBRRUJBSEFFQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcFVJbnRlZ2VyMzJUeXBlOjpFcXVpdmFsZW50KGNsYXNzIFNubXBJbnN0YW5jZVR5cGUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWl2YWxlbnRAU25tcFVJbnRlZ2VyMzJUeXBlQEBNRUJBSEFFQlZTbm1wSW5zdGFuY2VUeXBlQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBTbm1wQXV0b1JldHJpZXZlT3BlcmF0aW9uOjpFdmFsdWF0ZU5leHRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgY29uc3QgJiBfX3B0cjY0LGNsYXNzIFNubXBWYXJCaW5kIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBTbm1wVmFyQmluZCBjb25zdCAmIF9fcHRyNjQsY2xhc3MgU25tcFZhckJpbmQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0V2YWx1YXRlTmV4dFJlcXVlc3RAU25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbkBATUVBQUpBRUJLQUVCVlNubXBWYXJCaW5kQEAxQUVBVjJAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgR2V0TmV4dE9wZXJhdGlvbjo6RnJhbWVPdmVyUnVuKHZvaWQpIF9fcHRyNjQNCis/RnJhbWVPdmVyUnVuQEdldE5leHRPcGVyYXRpb25AQE1FQUFYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgU25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbjo6RnJhbWVPdmVyUnVuKHZvaWQpIF9fcHRyNjQNCis/RnJhbWVPdmVyUnVuQFNubXBBdXRvUmV0cmlldmVPcGVyYXRpb25AQE1FQUFYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgU25tcE9wZXJhdGlvbjo6RnJhbWVPdmVyUnVuKHZvaWQpIF9fcHRyNjQNCis/RnJhbWVPdmVyUnVuQFNubXBPcGVyYXRpb25AQE1FQUFYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgR2V0TmV4dE9wZXJhdGlvbjo6RnJhbWVUb29CaWcodm9pZCkgX19wdHI2NA0KKz9GcmFtZVRvb0JpZ0BHZXROZXh0T3BlcmF0aW9uQEBNRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNubXBBdXRvUmV0cmlldmVPcGVyYXRpb246OkZyYW1lVG9vQmlnKHZvaWQpIF9fcHRyNjQNCis/RnJhbWVUb29CaWdAU25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbkBATUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wT3BlcmF0aW9uOjpGcmFtZVRvb0JpZyh2b2lkKSBfX3B0cjY0DQorP0ZyYW1lVG9vQmlnQFNubXBPcGVyYXRpb25AQE1FQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBTbm1wUGR1OjpGcmVlRnJhbWUodm9pZCkgX19wdHI2NA0KKz9GcmVlRnJhbWVAU25tcFBkdUBAQUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgU25tcFZhckJpbmRMaXN0OjpGcmVlTGlzdCh2b2lkKSBfX3B0cjY0DQorP0ZyZWVMaXN0QFNubXBWYXJCaW5kTGlzdEBASUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFNubXBQZHU6OkZyZWVQZHUodm9pZCkgX19wdHI2NA0KKz9GcmVlUGR1QFNubXBQZHVAQEFFQUFYWFoNCis7IHB1YmxpYzogY2xhc3MgU25tcExleGljb24gKiBfX3B0cjY0IF9fY2RlY2wgU25tcEFuYWx5c2VyOjpHZXQoaW50LGludCxpbnQpIF9fcHRyNjQNCis/R2V0QFNubXBBbmFseXNlckBAUUVBQVBFQVZTbm1wTGV4aWNvbkBASEhIQFoNCis7IHByaXZhdGU6IGNsYXNzIFNubXBMZXhpY29uICogX19wdHI2NCBfX2NkZWNsIFNubXBCaXRTdHJpbmdUeXBlOjpHZXQodm9pZCkgX19wdHI2NA0KKz9HZXRAU25tcEJpdFN0cmluZ1R5cGVAQEFFQUFQRUFWU25tcExleGljb25AQFhaDQorOyBwcml2YXRlOiBjbGFzcyBTbm1wTGV4aWNvbiAqIF9fcHRyNjQgX19jZGVjbCBTbm1wRGF0ZVRpbWVUeXBlOjpHZXQodm9pZCkgX19wdHI2NA0KKz9HZXRAU25tcERhdGVUaW1lVHlwZUBAQUVBQVBFQVZTbm1wTGV4aWNvbkBAWFoNCis7IHByaXZhdGU6IGNsYXNzIFNubXBMZXhpY29uICogX19wdHI2NCBfX2NkZWNsIFNubXBFbnVtZXJhdGVkVHlwZTo6R2V0KHZvaWQpIF9fcHRyNjQNCis/R2V0QFNubXBFbnVtZXJhdGVkVHlwZUBAQUVBQVBFQVZTbm1wTGV4aWNvbkBAWFoNCis7IHByb3RlY3RlZDogY2xhc3MgU25tcExleGljb24gKiBfX3B0cjY0IF9fY2RlY2wgU25tcFBvc2l0aXZlUmFuZ2VkVHlwZTo6R2V0KHZvaWQpIF9fcHRyNjQNCis/R2V0QFNubXBQb3NpdGl2ZVJhbmdlZFR5cGVAQElFQUFQRUFWU25tcExleGljb25AQFhaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBWYXJCaW5kIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdDo6R2V0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0QFNubXBWYXJCaW5kTGlzdEBAUUVCQVBFQlZTbm1wVmFyQmluZEBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjaGFyICogX19wdHI2NCBfX2NkZWNsIFNubXBUcmFuc3BvcnRJcEFkZHJlc3M6OkdldEFkZHJlc3Modm9pZCkgX19wdHI2NA0KKz9HZXRBZGRyZXNzQFNubXBUcmFuc3BvcnRJcEFkZHJlc3NAQFVFQUFQRUFEWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIFNubXBUcmFuc3BvcnRJcEFkZHJlc3M6OkdldEFkZHJlc3ModW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQpY29uc3QgIF9fcHRyNjQNCis/R2V0QWRkcmVzc0BTbm1wVHJhbnNwb3J0SXBBZGRyZXNzQEBVRUJBR1BFQUVHQFoNCis7IHB1YmxpYzogdmlydHVhbCBjaGFyICogX19wdHI2NCBfX2NkZWNsIFNubXBUcmFuc3BvcnRJcHhBZGRyZXNzOjpHZXRBZGRyZXNzKHZvaWQpIF9fcHRyNjQNCis/R2V0QWRkcmVzc0BTbm1wVHJhbnNwb3J0SXB4QWRkcmVzc0BAVUVBQVBFQURYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgU25tcFRyYW5zcG9ydElweEFkZHJlc3M6OkdldEFkZHJlc3ModW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQpY29uc3QgIF9fcHRyNjQNCis/R2V0QWRkcmVzc0BTbm1wVHJhbnNwb3J0SXB4QWRkcmVzc0BAVUVCQUdQRUFFR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBTbm1wVHJhbnNwb3J0SXBBZGRyZXNzOjpHZXRBZGRyZXNzTGVuZ3RoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0QWRkcmVzc0xlbmd0aEBTbm1wVHJhbnNwb3J0SXBBZGRyZXNzQEBVRUJBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzczo6R2V0QWRkcmVzc0xlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEFkZHJlc3NMZW5ndGhAU25tcFRyYW5zcG9ydElweEFkZHJlc3NAQFVFQkFHWFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllcjo6R2V0QWxsb2NhdGVkU3RyaW5nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0QWxsb2NhdGVkU3RyaW5nQFNubXBPYmplY3RJZGVudGlmaWVyQEBRRUJBUEVBRFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgU25tcENvbW11bml0eUJhc2VkU2VjdXJpdHk6OkdldENvbW11bml0eU5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRDb21tdW5pdHlOYW1lQFNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5QEBRRUJBUEVCRFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wQ29tbXVuaXR5QmFzZWRTZWN1cml0eTo6R2V0Q29tbXVuaXR5TmFtZShjbGFzcyBTbm1wT2N0ZXRTdHJpbmcgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0dldENvbW11bml0eU5hbWVAU25tcENvbW11bml0eUJhc2VkU2VjdXJpdHlAQFFFQkFYQUVBVlNubXBPY3RldFN0cmluZ0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wRW5jb2RlRGVjb2RlOjpHZXRDb21tdW5pdHlOYW1lKGNsYXNzIFNubXBQZHUgJiBfX3B0cjY0LGNsYXNzIFNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRDb21tdW5pdHlOYW1lQFNubXBFbmNvZGVEZWNvZGVAQFVFQUFIQUVBVlNubXBQZHVAQEFFQVZTbm1wQ29tbXVuaXR5QmFzZWRTZWN1cml0eUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wQ29tbXVuaXR5QmFzZWRTZWN1cml0eSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wUGR1OjpHZXRDb21tdW5pdHlOYW1lKHZvaWQpIF9fcHRyNjQNCis/R2V0Q29tbXVuaXR5TmFtZUBTbm1wUGR1QEBVRUFBQUVBVlNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5QEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wVmFyQmluZExpc3Q6OkdldEN1cnJlbnRJbmRleCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEN1cnJlbnRJbmRleEBTbm1wVmFyQmluZExpc3RAQFFFQkFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wRW5jb2RlRGVjb2RlOjpHZXREZXN0aW5hdGlvbkFkZHJlc3MoY2xhc3MgU25tcFBkdSAmIF9fcHRyNjQsY2xhc3MgU25tcFRyYW5zcG9ydEFkZHJlc3MgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXREZXN0aW5hdGlvbkFkZHJlc3NAU25tcEVuY29kZURlY29kZUBAVUVBQUhBRUFWU25tcFBkdUBAQUVBUEVBVlNubXBUcmFuc3BvcnRBZGRyZXNzQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBUcmFuc3BvcnRBZGRyZXNzICYgX19wdHI2NCBfX2NkZWNsIFNubXBQZHU6OkdldERlc3RpbmF0aW9uQWRkcmVzcyh2b2lkKSBfX3B0cjY0DQorP0dldERlc3RpbmF0aW9uQWRkcmVzc0BTbm1wUGR1QEBVRUFBQUVBVlNubXBUcmFuc3BvcnRBZGRyZXNzQEBYWg0KKzsgcHVibGljOiBlbnVtIFNubXBFcnJvciAgX19jZGVjbCBTbm1wRXJyb3JSZXBvcnQ6OkdldEVycm9yKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0RXJyb3JAU25tcEVycm9yUmVwb3J0QEBRRUJBP0FXNFNubXBFcnJvckBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wRW5jb2RlRGVjb2RlOjpHZXRFcnJvclJlcG9ydChjbGFzcyBTbm1wUGR1ICYgX19wdHI2NCxjbGFzcyBTbm1wRXJyb3JSZXBvcnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEVycm9yUmVwb3J0QFNubXBFbmNvZGVEZWNvZGVAQFVFQUFIQUVBVlNubXBQZHVAQEFFQVZTbm1wRXJyb3JSZXBvcnRAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcEVycm9yUmVwb3J0ICYgX19wdHI2NCBfX2NkZWNsIFNubXBQZHU6OkdldEVycm9yUmVwb3J0KHZvaWQpIF9fcHRyNjQNCis/R2V0RXJyb3JSZXBvcnRAU25tcFBkdUBAVUVBQUFFQVZTbm1wRXJyb3JSZXBvcnRAQFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgR2VuZXJhbEV4Y2VwdGlvbjo6R2V0RmlsZSh2b2lkKSBfX3B0cjY0DQorP0dldEZpbGVAR2VuZXJhbEV4Y2VwdGlvbkBAUUVBQVBFQURYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU25tcFNlc3Npb246OkdldEZsb3dDb250cm9sV2luZG93KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0Rmxvd0NvbnRyb2xXaW5kb3dAU25tcFNlc3Npb25AQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBTbm1wUGR1OjpHZXRGcmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEZyYW1lQFNubXBQZHVAQFFFQkFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFNubXBQZHU6OkdldEZyYW1lTGVuZ3RoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0RnJhbWVMZW5ndGhAU25tcFBkdUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU25tcENvdW50ZXI2NDo6R2V0SGlnaFZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0SGlnaFZhbHVlQFNubXBDb3VudGVyNjRAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFNubXBFcnJvclJlcG9ydDo6R2V0SW5kZXgodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRJbmRleEBTbm1wRXJyb3JSZXBvcnRAQFFFQkFLWFoNCis7IHB1YmxpYzogY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgJiBfX3B0cjY0IF9fY2RlY2wgU25tcFZhckJpbmQ6OkdldEluc3RhbmNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0SW5zdGFuY2VAU25tcFZhckJpbmRAQFFFQkFBRUFWU25tcE9iamVjdElkZW50aWZpZXJAQFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBTbm1wVHJhbnNwb3J0SXBBZGRyZXNzOjpHZXRJcEFkZHJlc3MoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0SXBBZGRyZXNzQFNubXBUcmFuc3BvcnRJcEFkZHJlc3NAQEFFQUFIUEVCREBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzczo6R2V0SXB4QWRkcmVzcyhjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRJcHhBZGRyZXNzQFNubXBUcmFuc3BvcnRJcHhBZGRyZXNzQEBBRUFBSFBFQkRAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBTbm1wVmFyQmluZExpc3Q6OkdldExlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldExlbmd0aEBTbm1wVmFyQmluZExpc3RAQFFFQkFJWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgR2VuZXJhbEV4Y2VwdGlvbjo6R2V0TGluZSh2b2lkKSBfX3B0cjY0DQorP0dldExpbmVAR2VuZXJhbEV4Y2VwdGlvbkBAUUVBQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU25tcENvdW50ZXI2NDo6R2V0TG93VmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRMb3dWYWx1ZUBTbm1wQ291bnRlcjY0QEBRRUJBS1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTbm1wTmVnYXRpdmVSYW5nZVR5cGU6OkdldExvd2VyQm91bmQodm9pZCkgX19wdHI2NA0KKz9HZXRMb3dlckJvdW5kQFNubXBOZWdhdGl2ZVJhbmdlVHlwZUBAUUVBQUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU25tcFBvc2l0aXZlUmFuZ2VUeXBlOjpHZXRMb3dlckJvdW5kKHZvaWQpIF9fcHRyNjQNCis/R2V0TG93ZXJCb3VuZEBTbm1wUG9zaXRpdmVSYW5nZVR5cGVAQFFFQUFLWFoNCis7IHB1YmxpYzogY2xhc3MgU25tcFZhckJpbmRMaXN0Tm9kZSAqIF9fcHRyNjQgX19jZGVjbCBTbm1wVmFyQmluZExpc3ROb2RlOjpHZXROZXh0KHZvaWQpIF9fcHRyNjQNCis/R2V0TmV4dEBTbm1wVmFyQmluZExpc3ROb2RlQEBRRUFBUEVBVjFAWFoNCis7IHByaXZhdGU6IGNsYXNzIFNubXBPcGVyYXRpb24gKiBfX3B0cjY0IF9fY2RlY2wgU25tcEltcFNlc3Npb246OkdldE9wZXJhdGlvbih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldE9wZXJhdGlvbkBTbm1wSW1wU2Vzc2lvbkBAQUVBQVBFQVZTbm1wT3BlcmF0aW9uQEBLQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wRW5jb2RlRGVjb2RlOjpHZXRQZHVUeXBlKGNsYXNzIFNubXBQZHUgJiBfX3B0cjY0LGVudW0gU25tcEVuY29kZURlY29kZTo6UGR1VHlwZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UGR1VHlwZUBTbm1wRW5jb2RlRGVjb2RlQEBVRUFBSEFFQVZTbm1wUGR1QEBBRUFXNFBkdVR5cGVAMUBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGVudW0gU25tcEVuY29kZURlY29kZTo6UGR1VHlwZSAgX19jZGVjbCBTbm1wR2V0TmV4dE9wZXJhdGlvbjo6R2V0UGR1VHlwZSh2b2lkKSBfX3B0cjY0DQorP0dldFBkdVR5cGVAU25tcEdldE5leHRPcGVyYXRpb25AQE1FQUE/QVc0UGR1VHlwZUBTbm1wRW5jb2RlRGVjb2RlQEBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGVudW0gU25tcEVuY29kZURlY29kZTo6UGR1VHlwZSAgX19jZGVjbCBTbm1wR2V0T3BlcmF0aW9uOjpHZXRQZHVUeXBlKHZvaWQpIF9fcHRyNjQNCis/R2V0UGR1VHlwZUBTbm1wR2V0T3BlcmF0aW9uQEBNRUFBP0FXNFBkdVR5cGVAU25tcEVuY29kZURlY29kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBlbnVtIFNubXBFbmNvZGVEZWNvZGU6OlBkdVR5cGUgJiBfX3B0cjY0IF9fY2RlY2wgU25tcFBkdTo6R2V0UGR1VHlwZSh2b2lkKSBfX3B0cjY0DQorP0dldFBkdVR5cGVAU25tcFBkdUBAVUVBQUFFQVc0UGR1VHlwZUBTbm1wRW5jb2RlRGVjb2RlQEBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGVudW0gU25tcEVuY29kZURlY29kZTo6UGR1VHlwZSAgX19jZGVjbCBTbm1wU2V0T3BlcmF0aW9uOjpHZXRQZHVUeXBlKHZvaWQpIF9fcHRyNjQNCis/R2V0UGR1VHlwZUBTbm1wU2V0T3BlcmF0aW9uQEBNRUFBP0FXNFBkdVR5cGVAU25tcEVuY29kZURlY29kZUBAWFoNCis7IHByb3RlY3RlZDogY2xhc3MgU25tcFZhckJpbmRMaXN0OjpMaXN0UG9zaXRpb24gKiBfX3B0cjY0IF9fY2RlY2wgU25tcFZhckJpbmRMaXN0OjpHZXRQb3NpdGlvbih2b2lkKSBfX3B0cjY0DQorP0dldFBvc2l0aW9uQFNubXBWYXJCaW5kTGlzdEBASUVBQVBFQVZMaXN0UG9zaXRpb25AMUBYWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wVmFyQmluZExpc3ROb2RlICogX19wdHI2NCBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdE5vZGU6OkdldFByZXZpb3VzKHZvaWQpIF9fcHRyNjQNCis/R2V0UHJldmlvdXNAU25tcFZhckJpbmRMaXN0Tm9kZUBAUUVBQVBFQVYxQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcEVuY29kZURlY29kZTo6R2V0UmVxdWVzdElkKGNsYXNzIFNubXBQZHUgJiBfX3B0cjY0LGxvbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFJlcXVlc3RJZEBTbm1wRW5jb2RlRGVjb2RlQEBVRUFBSEFFQVZTbm1wUGR1QEBBRUFKQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nICYgX19wdHI2NCBfX2NkZWNsIFNubXBQZHU6OkdldFJlcXVlc3RJZCh2b2lkKSBfX3B0cjY0DQorP0dldFJlcXVlc3RJZEBTbm1wUGR1QEBVRUFBQUVBSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBTbm1wU2Vzc2lvbjo6R2V0UmV0cnlDb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFJldHJ5Q291bnRAU25tcFNlc3Npb25AQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFNubXBTZXNzaW9uOjpHZXRSZXRyeVRpbWVvdXQodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRSZXRyeVRpbWVvdXRAU25tcFNlc3Npb25AQFFFQkFLWFoNCis7IHB1YmxpYzogZW51bSBTbm1wUm93U3RhdHVzVHlwZTo6U25tcFJvd1N0YXR1c0VudW0gIF9fY2RlY2wgU25tcFJvd1N0YXR1c1R5cGU6OkdldFJvd1N0YXR1cyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFJvd1N0YXR1c0BTbm1wUm93U3RhdHVzVHlwZUBAUUVCQT9BVzRTbm1wUm93U3RhdHVzRW51bUAxQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcEVuY29kZURlY29kZSAmIF9fcHRyNjQgX19jZGVjbCBTbm1wSW1wU2Vzc2lvbjo6R2V0U25tcEVuY29kZURlY29kZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFNubXBFbmNvZGVEZWNvZGVAU25tcEltcFNlc3Npb25AQFVFQkFBRUFWU25tcEVuY29kZURlY29kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wU2VjdXJpdHkgJiBfX3B0cjY0IF9fY2RlY2wgU25tcEltcFNlc3Npb246OkdldFNubXBTZWN1cml0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFNubXBTZWN1cml0eUBTbm1wSW1wU2Vzc2lvbkBAVUVCQUFFQVZTbm1wU2VjdXJpdHlAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcEVuY29kZURlY29kZTo6R2V0U291cmNlQWRkcmVzcyhjbGFzcyBTbm1wUGR1ICYgX19wdHI2NCxjbGFzcyBTbm1wVHJhbnNwb3J0QWRkcmVzcyAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFNvdXJjZUFkZHJlc3NAU25tcEVuY29kZURlY29kZUBAVUVBQUhBRUFWU25tcFBkdUBAQUVBUEVBVlNubXBUcmFuc3BvcnRBZGRyZXNzQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBUcmFuc3BvcnRBZGRyZXNzICYgX19wdHI2NCBfX2NkZWNsIFNubXBQZHU6OkdldFNvdXJjZUFkZHJlc3Modm9pZCkgX19wdHI2NA0KKz9HZXRTb3VyY2VBZGRyZXNzQFNubXBQZHVAQFVFQUFBRUFWU25tcFRyYW5zcG9ydEFkZHJlc3NAQFhaDQorOyBwdWJsaWM6IGVudW0gU25tcFN0YXR1cyAgX19jZGVjbCBTbm1wRXJyb3JSZXBvcnQ6OkdldFN0YXR1cyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0YXR1c0BTbm1wRXJyb3JSZXBvcnRAQFFFQkE/QVc0U25tcFN0YXR1c0BAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ0JTdHJpbmc6OkdldFN0cmluZyh2b2lkKSBfX3B0cjY0DQorP0dldFN0cmluZ0BDQlN0cmluZ0BAUUVBQVBFQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFNubXBCaXRTdHJpbmdUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0cmluZ1ZhbHVlQFNubXBCaXRTdHJpbmdUeXBlQEBVRUJBUEVBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgU25tcENvdW50ZXI2NFR5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nVmFsdWVAU25tcENvdW50ZXI2NFR5cGVAQFVFQkFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wQ291bnRlclR5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nVmFsdWVAU25tcENvdW50ZXJUeXBlQEBVRUJBUEVBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgU25tcERhdGVUaW1lVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdHJpbmdWYWx1ZUBTbm1wRGF0ZVRpbWVUeXBlQEBVRUJBUEVBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgU25tcERpc3BsYXlTdHJpbmdUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0cmluZ1ZhbHVlQFNubXBEaXNwbGF5U3RyaW5nVHlwZUBAVUVCQVBFQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFNubXBFbnVtZXJhdGVkVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdHJpbmdWYWx1ZUBTbm1wRW51bWVyYXRlZFR5cGVAQFVFQkFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wRml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdHJpbmdWYWx1ZUBTbm1wRml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZUBAVUVCQVBFQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFNubXBGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdHJpbmdWYWx1ZUBTbm1wRml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGVAQFVFQkFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wR2F1Z2VUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0cmluZ1ZhbHVlQFNubXBHYXVnZVR5cGVAQFVFQkFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wSVBYQWRkcmVzc1R5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nVmFsdWVAU25tcElQWEFkZHJlc3NUeXBlQEBVRUJBUEVBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgU25tcEludGVnZXJUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0cmluZ1ZhbHVlQFNubXBJbnRlZ2VyVHlwZUBAVUVCQVBFQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFNubXBJcEFkZHJlc3NUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0cmluZ1ZhbHVlQFNubXBJcEFkZHJlc3NUeXBlQEBVRUJBUEVBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgU25tcE1hY0FkZHJlc3NUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0cmluZ1ZhbHVlQFNubXBNYWNBZGRyZXNzVHlwZUBAVUVCQVBFQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFNubXBOZXR3b3JrQWRkcmVzc1R5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nVmFsdWVAU25tcE5ldHdvcmtBZGRyZXNzVHlwZUBAVUVCQVBFQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFNubXBOdWxsVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdHJpbmdWYWx1ZUBTbm1wTnVsbFR5cGVAQFVFQkFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wT1NJQWRkcmVzc1R5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nVmFsdWVAU25tcE9TSUFkZHJlc3NUeXBlQEBVRUJBUEVBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgU25tcE9iamVjdElkZW50aWZpZXJUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0cmluZ1ZhbHVlQFNubXBPYmplY3RJZGVudGlmaWVyVHlwZUBAVUVCQVBFQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFNubXBPY3RldFN0cmluZ1R5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nVmFsdWVAU25tcE9jdGV0U3RyaW5nVHlwZUBAVUVCQVBFQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFNubXBPcGFxdWVUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFN0cmluZ1ZhbHVlQFNubXBPcGFxdWVUeXBlQEBVRUJBUEVBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgU25tcFBoeXNBZGRyZXNzVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdHJpbmdWYWx1ZUBTbm1wUGh5c0FkZHJlc3NUeXBlQEBVRUJBUEVBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgU25tcFJvd1N0YXR1c1R5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nVmFsdWVAU25tcFJvd1N0YXR1c1R5cGVAQFVFQkFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wVGltZVRpY2tzVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdHJpbmdWYWx1ZUBTbm1wVGltZVRpY2tzVHlwZUBAVUVCQVBFQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFNubXBVRFBBZGRyZXNzVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdHJpbmdWYWx1ZUBTbm1wVURQQWRkcmVzc1R5cGVAQFVFQkFQRUFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wVUludGVnZXIzMlR5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nVmFsdWVAU25tcFVJbnRlZ2VyMzJUeXBlQEBVRUJBUEVBR1haDQorOyBwcml2YXRlOiBjbGFzcyBTbm1wTGV4aWNvbiAqIF9fcHRyNjQgX19jZGVjbCBTbm1wQW5hbHlzZXI6OkdldFRva2VuKGludCxpbnQsaW50KSBfX3B0cjY0DQorP0dldFRva2VuQFNubXBBbmFseXNlckBAQUVBQVBFQVZTbm1wTGV4aWNvbkBASEhIQFoNCis7IHB1YmxpYzogZW51bSBTbm1wTGV4aWNvbjo6TGV4aWNvblRva2VuICBfX2NkZWNsIFNubXBMZXhpY29uOjpHZXRUb2tlbih2b2lkKSBfX3B0cjY0DQorP0dldFRva2VuQFNubXBMZXhpY29uQEBRRUFBP0FXNExleGljb25Ub2tlbkAxQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcFRyYW5zcG9ydEFkZHJlc3MgJiBfX3B0cjY0IF9fY2RlY2wgU25tcFRyYW5zcG9ydDo6R2V0VHJhbnNwb3J0QWRkcmVzcyh2b2lkKSBfX3B0cjY0DQorP0dldFRyYW5zcG9ydEFkZHJlc3NAU25tcFRyYW5zcG9ydEBAVUVBQUFFQVZTbm1wVHJhbnNwb3J0QWRkcmVzc0BAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wVHJhbnNwb3J0ICYgX19wdHI2NCBfX2NkZWNsIFNubXBJbXBTZXNzaW9uOjpHZXRUcmFuc3BvcnRQcm90b2NvbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFRyYW5zcG9ydFByb3RvY29sQFNubXBJbXBTZXNzaW9uQEBVRUJBQUVBVlNubXBUcmFuc3BvcnRAQFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTbm1wTmVnYXRpdmVSYW5nZVR5cGU6OkdldFVwcGVyQm91bmQodm9pZCkgX19wdHI2NA0KKz9HZXRVcHBlckJvdW5kQFNubXBOZWdhdGl2ZVJhbmdlVHlwZUBAUUVBQUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU25tcFBvc2l0aXZlUmFuZ2VUeXBlOjpHZXRVcHBlckJvdW5kKHZvaWQpIF9fcHRyNjQNCis/R2V0VXBwZXJCb3VuZEBTbm1wUG9zaXRpdmVSYW5nZVR5cGVAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFNubXBCaXRTdHJpbmdUeXBlOjpHZXRWYWx1ZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBTbm1wQml0U3RyaW5nVHlwZUBAUUVCQUtBRUFQRUFQRUFHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBDb3VudGVyNjRUeXBlOjpHZXRWYWx1ZSh1bnNpZ25lZCBsb25nICYgX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBTbm1wQ291bnRlcjY0VHlwZUBAUUVCQVhBRUFLMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBTbm1wQ291bnRlcjo6R2V0VmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBTbm1wQ291bnRlckBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU25tcENvdW50ZXJUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFNubXBDb3VudGVyVHlwZUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wRGF0ZVRpbWVUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFNubXBEYXRlVGltZVR5cGVAQFFFQkFQRUFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgU25tcERpc3BsYXlTdHJpbmdUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFNubXBEaXNwbGF5U3RyaW5nVHlwZUBAUUVCQVBFQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wRW51bWVyYXRlZFR5cGU6OkdldFZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFsdWVAU25tcEVudW1lcmF0ZWRUeXBlQEBRRUJBUEVBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFNubXBGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFNubXBGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlQEBRRUJBUEVBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBTbm1wR2F1Z2U6OkdldFZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFsdWVAU25tcEdhdWdlQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBTbm1wR2F1Z2VUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFNubXBHYXVnZVR5cGVAQFFFQkFLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFNubXBJbnRlZ2VyOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFNubXBJbnRlZ2VyQEBRRUJBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBTbm1wSW50ZWdlclR5cGU6OkdldFZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFsdWVAU25tcEludGVnZXJUeXBlQEBRRUJBSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBTbm1wSXBBZGRyZXNzOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFNubXBJcEFkZHJlc3NAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFNubXBJcEFkZHJlc3NUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFNubXBJcEFkZHJlc3NUeXBlQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuaW9uIFNubXBMZXhpY29uVmFsdWUgKiBfX3B0cjY0IF9fY2RlY2wgU25tcExleGljb246OkdldFZhbHVlKHZvaWQpIF9fcHRyNjQNCis/R2V0VmFsdWVAU25tcExleGljb25AQFFFQUFQRUFUU25tcExleGljb25WYWx1ZUBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFNubXBOZXR3b3JrQWRkcmVzc1R5cGU6OkdldFZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFsdWVAU25tcE5ldHdvcmtBZGRyZXNzVHlwZUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nICogX19wdHI2NCBfX2NkZWNsIFNubXBPYmplY3RJZGVudGlmaWVyOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFNubXBPYmplY3RJZGVudGlmaWVyQEBRRUJBUEVBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0IF9fY2RlY2wgU25tcE9iamVjdElkZW50aWZpZXJUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFNubXBPYmplY3RJZGVudGlmaWVyVHlwZUBAUUVCQVBFQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIFNubXBPY3RldFN0cmluZzo6R2V0VmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBTbm1wT2N0ZXRTdHJpbmdAQFFFQkFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBTbm1wT2N0ZXRTdHJpbmdUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFNubXBPY3RldFN0cmluZ1R5cGVAQFFFQkFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBTbm1wT3BhcXVlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFNubXBPcGFxdWVAQFFFQkFQRUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBTbm1wT3BhcXVlVHlwZTo6R2V0VmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBTbm1wT3BhcXVlVHlwZUBAUUVCQVBFQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wUm93U3RhdHVzVHlwZTo6R2V0VmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBTbm1wUm93U3RhdHVzVHlwZUBAUUVCQVBFQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU25tcFRpbWVUaWNrczo6R2V0VmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBTbm1wVGltZVRpY2tzQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBTbm1wVGltZVRpY2tzVHlwZTo6R2V0VmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBTbm1wVGltZVRpY2tzVHlwZUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU25tcFVJbnRlZ2VyMzI6OkdldFZhbHVlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFsdWVAU25tcFVJbnRlZ2VyMzJAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFNubXBVSW50ZWdlcjMyVHlwZTo6R2V0VmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBTbm1wVUludGVnZXIzMlR5cGVAQFFFQkFLWFoNCis7IHB1YmxpYzogY2xhc3MgU25tcFZhbHVlICYgX19wdHI2NCBfX2NkZWNsIFNubXBWYXJCaW5kOjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFNubXBWYXJCaW5kQEBRRUJBQUVBVlNubXBWYWx1ZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wVmFsdWUgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgU25tcENvdW50ZXI2NFR5cGU6OkdldFZhbHVlRW5jb2Rpbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUVuY29kaW5nQFNubXBDb3VudGVyNjRUeXBlQEBVRUJBUEVCVlNubXBWYWx1ZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wVmFsdWUgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgU25tcENvdW50ZXJUeXBlOjpHZXRWYWx1ZUVuY29kaW5nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFsdWVFbmNvZGluZ0BTbm1wQ291bnRlclR5cGVAQFVFQkFQRUJWU25tcFZhbHVlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBWYWx1ZSBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wR2F1Z2VUeXBlOjpHZXRWYWx1ZUVuY29kaW5nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFsdWVFbmNvZGluZ0BTbm1wR2F1Z2VUeXBlQEBVRUJBUEVCVlNubXBWYWx1ZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wVmFsdWUgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgU25tcEludGVnZXJUeXBlOjpHZXRWYWx1ZUVuY29kaW5nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFsdWVFbmNvZGluZ0BTbm1wSW50ZWdlclR5cGVAQFVFQkFQRUJWU25tcFZhbHVlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBWYWx1ZSBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wSXBBZGRyZXNzVHlwZTo6R2V0VmFsdWVFbmNvZGluZyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlRW5jb2RpbmdAU25tcElwQWRkcmVzc1R5cGVAQFVFQkFQRUJWU25tcFZhbHVlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBWYWx1ZSBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wTmV0d29ya0FkZHJlc3NUeXBlOjpHZXRWYWx1ZUVuY29kaW5nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFsdWVFbmNvZGluZ0BTbm1wTmV0d29ya0FkZHJlc3NUeXBlQEBVRUJBUEVCVlNubXBWYWx1ZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTbm1wVmFsdWUgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgU25tcE51bGxUeXBlOjpHZXRWYWx1ZUVuY29kaW5nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFsdWVFbmNvZGluZ0BTbm1wTnVsbFR5cGVAQFVFQkFQRUJWU25tcFZhbHVlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBWYWx1ZSBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllclR5cGU6OkdldFZhbHVlRW5jb2Rpbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUVuY29kaW5nQFNubXBPYmplY3RJZGVudGlmaWVyVHlwZUBAVUVCQVBFQlZTbm1wVmFsdWVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcFZhbHVlIGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFNubXBPY3RldFN0cmluZ1R5cGU6OkdldFZhbHVlRW5jb2Rpbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUVuY29kaW5nQFNubXBPY3RldFN0cmluZ1R5cGVAQFVFQkFQRUJWU25tcFZhbHVlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBWYWx1ZSBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wT3BhcXVlVHlwZTo6R2V0VmFsdWVFbmNvZGluZyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlRW5jb2RpbmdAU25tcE9wYXF1ZVR5cGVAQFVFQkFQRUJWU25tcFZhbHVlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBWYWx1ZSBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wVGltZVRpY2tzVHlwZTo6R2V0VmFsdWVFbmNvZGluZyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlRW5jb2RpbmdAU25tcFRpbWVUaWNrc1R5cGVAQFVFQkFQRUJWU25tcFZhbHVlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBWYWx1ZSBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wVUludGVnZXIzMlR5cGU6OkdldFZhbHVlRW5jb2Rpbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUVuY29kaW5nQFNubXBVSW50ZWdlcjMyVHlwZUBAVUVCQVBFQlZTbm1wVmFsdWVAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllcjo6R2V0VmFsdWVMZW5ndGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUxlbmd0aEBTbm1wT2JqZWN0SWRlbnRpZmllckBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU25tcE9iamVjdElkZW50aWZpZXJUeXBlOjpHZXRWYWx1ZUxlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlTGVuZ3RoQFNubXBPYmplY3RJZGVudGlmaWVyVHlwZUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU25tcE9jdGV0U3RyaW5nOjpHZXRWYWx1ZUxlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlTGVuZ3RoQFNubXBPY3RldFN0cmluZ0BAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU25tcE9jdGV0U3RyaW5nVHlwZTo6R2V0VmFsdWVMZW5ndGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUxlbmd0aEBTbm1wT2N0ZXRTdHJpbmdUeXBlQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBTbm1wT3BhcXVlOjpHZXRWYWx1ZUxlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlTGVuZ3RoQFNubXBPcGFxdWVAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFNubXBPcGFxdWVUeXBlOjpHZXRWYWx1ZUxlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlTGVuZ3RoQFNubXBPcGFxdWVUeXBlQEBRRUJBS1haDQorOyBwdWJsaWM6IGNsYXNzIFNubXBWYXJCaW5kICogX19wdHI2NCBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdE5vZGU6OkdldFZhckJpbmQodm9pZCkgX19wdHI2NA0KKz9HZXRWYXJCaW5kQFNubXBWYXJCaW5kTGlzdE5vZGVAQFFFQUFQRUFWU25tcFZhckJpbmRAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcEVuY29kZURlY29kZTo6R2V0VmFyYmluZExpc3QoY2xhc3MgU25tcFBkdSAmIF9fcHRyNjQsY2xhc3MgU25tcFZhckJpbmRMaXN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRWYXJiaW5kTGlzdEBTbm1wRW5jb2RlRGVjb2RlQEBVRUFBSEFFQVZTbm1wUGR1QEBBRUFWU25tcFZhckJpbmRMaXN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNubXBWYXJCaW5kTGlzdCAmIF9fcHRyNjQgX19jZGVjbCBTbm1wUGR1OjpHZXRWYXJiaW5kTGlzdCh2b2lkKSBfX3B0cjY0DQorP0dldFZhcmJpbmRMaXN0QFNubXBQZHVAQFVFQUFBRUFWU25tcFZhckJpbmRMaXN0QEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU25tcFNlc3Npb246OkdldFZhcmJpbmRzUGVyUGR1KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFyYmluZHNQZXJQZHVAU25tcFNlc3Npb25AQFFFQkFLWFoNCis7IHByb3RlY3RlZDogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wRW5jb2RlRGVjb2RlOjpHZXRXaW5Tbm1wU2Vzc2lvbih2b2lkKSBfX3B0cjY0DQorP0dldFdpblNubXBTZXNzaW9uQFNubXBFbmNvZGVEZWNvZGVAQElFQUFQRUFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdDo6R29CYWNrd2FyZChjbGFzcyBTbm1wVmFyQmluZExpc3ROb2RlICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/R29CYWNrd2FyZEBTbm1wVmFyQmluZExpc3RAQElFQUFYUEVBVlNubXBWYXJCaW5kTGlzdE5vZGVAQElAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgU25tcFZhckJpbmRMaXN0OjpHb0ZvcndhcmQoY2xhc3MgU25tcFZhckJpbmRMaXN0Tm9kZSAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0dvRm9yd2FyZEBTbm1wVmFyQmluZExpc3RAQElFQUFYUEVBVlNubXBWYXJCaW5kTGlzdE5vZGVAQElAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBTbm1wVmFyQmluZExpc3Q6OkdvdG9JbmRleCh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/R290b0luZGV4QFNubXBWYXJCaW5kTGlzdEBASUVBQUhJQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdDo6R290b1Bvc2l0aW9uKGNsYXNzIFNubXBWYXJCaW5kTGlzdDo6TGlzdFBvc2l0aW9uICogX19wdHI2NCkgX19wdHI2NA0KKz9Hb3RvUG9zaXRpb25AU25tcFZhckJpbmRMaXN0QEBJRUFBWFBFQVZMaXN0UG9zaXRpb25AMUBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFNubXBJbXBTZXNzaW9uOjpIYW5kbGVEZWxldGlvbkV2ZW50KHZvaWQpIF9fcHRyNjQNCis/SGFuZGxlRGVsZXRpb25FdmVudEBTbm1wSW1wU2Vzc2lvbkBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFNubXBJbXBTZXNzaW9uOjpIYW5kbGVTZW50RnJhbWUodW5zaWduZWQgbG9uZyxjbGFzcyBTbm1wT3BlcmF0aW9uICogX19wdHI2NCkgX19wdHI2NA0KKz9IYW5kbGVTZW50RnJhbWVAU25tcEltcFNlc3Npb25AQEFFQUFYS1BFQVZTbm1wT3BlcmF0aW9uQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wSW1wVHJhbnNwb3J0OjpIYW5kbGVTZW50RnJhbWUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9IYW5kbGVTZW50RnJhbWVAU25tcEltcFRyYW5zcG9ydEBATUVBQVhLQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBTbm1wQW5hbHlzZXI6OkhleENoYXJUb0RlY0ludGVnZXIoY2hhcikNCis/SGV4Q2hhclRvRGVjSW50ZWdlckBTbm1wQW5hbHlzZXJAQFNBS0RAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIFNubXBBbmFseXNlcjo6SGV4V0NoYXJUb0RlY0ludGVnZXIodW5zaWduZWQgc2hvcnQpDQorP0hleFdDaGFyVG9EZWNJbnRlZ2VyQFNubXBBbmFseXNlckBAU0FLR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNubXBBbmFseXNlcjo6SW5pdGlhbGlzZSh2b2lkKSBfX3B0cjY0DQorP0luaXRpYWxpc2VAU25tcEFuYWx5c2VyQEBNRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBTbm1wQ29tbXVuaXR5QmFzZWRTZWN1cml0eTo6SW5pdGlhbGl6ZSh2b2lkKSBfX3B0cjY0DQorP0luaXRpYWxpemVAU25tcENvbW11bml0eUJhc2VkU2VjdXJpdHlAQElFQUFYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgU25tcE9iamVjdElkZW50aWZpZXI6OkluaXRpYWxpemUodW5zaWduZWQgbG9uZyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Jbml0aWFsaXplQFNubXBPYmplY3RJZGVudGlmaWVyQEBNRUFBWFBFQktLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgU25tcE9jdGV0U3RyaW5nOjpJbml0aWFsaXplKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBTbm1wT2N0ZXRTdHJpbmdAQE1FQUFYUEVCRUtAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFNubXBQZHU6OkluaXRpYWxpemUodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBTbm1wUGR1QEBBRUFBWFBFQkVBRUJLQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdDo6SW5pdGlhbGl6ZShjbGFzcyBTbm1wVmFyQmluZExpc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVAU25tcFZhckJpbmRMaXN0QEBJRUFBWEFFQVYxQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgU25tcFBkdTo6SW5pdGlhbGl6ZU9iamVjdChjbGFzcyBTbm1wUGR1ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0aWFsaXplT2JqZWN0QFNubXBQZHVAQEFFQUFYQUVBVjFAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX2NkZWNsIFNubXBFbmNvZGVEZWNvZGU6OkluaXRpYWxpemVTdGF0aWNDb21wb25lbnRzKHZvaWQpDQorP0luaXRpYWxpemVTdGF0aWNDb21wb25lbnRzQFNubXBFbmNvZGVEZWNvZGVAQEtBSFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgU25tcFYxRW5jb2RlRGVjb2RlOjpJbml0aWFsaXplVmFyaWFibGVzKHZvaWQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZVZhcmlhYmxlc0BTbm1wVjFFbmNvZGVEZWNvZGVAQEFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBTbm1wVjJDRW5jb2RlRGVjb2RlOjpJbml0aWFsaXplVmFyaWFibGVzKHZvaWQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZVZhcmlhYmxlc0BTbm1wVjJDRW5jb2RlRGVjb2RlQEBBRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBTbm1wVmFyQmluZExpc3Q6Okluc2VydChjbGFzcyBTbm1wVmFyQmluZExpc3ROb2RlICogX19wdHI2NCxjbGFzcyBTbm1wVmFyQmluZExpc3ROb2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9JbnNlcnRAU25tcFZhckJpbmRMaXN0QEBJRUFBWFBFQVZTbm1wVmFyQmluZExpc3ROb2RlQEAwQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIFNubXBBbmFseXNlcjo6SXNBbHBoYSh1bnNpZ25lZCBzaG9ydCkNCis/SXNBbHBoYUBTbm1wQW5hbHlzZXJAQFNBSEdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgU25tcEFuYWx5c2VyOjpJc0FscGhhTnVtZXJpYyh1bnNpZ25lZCBzaG9ydCkNCis/SXNBbHBoYU51bWVyaWNAU25tcEFuYWx5c2VyQEBTQUhHQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIFNubXBBbmFseXNlcjo6SXNEZWNpbWFsKHVuc2lnbmVkIHNob3J0KQ0KKz9Jc0RlY2ltYWxAU25tcEFuYWx5c2VyQEBTQUhHQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIFNubXBBbmFseXNlcjo6SXNFb2YodW5zaWduZWQgc2hvcnQpDQorP0lzRW9mQFNubXBBbmFseXNlckBAU0FIR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBTbm1wQW5hbHlzZXI6OklzSGV4KHVuc2lnbmVkIHNob3J0KQ0KKz9Jc0hleEBTbm1wQW5hbHlzZXJAQFNBSEdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgU25tcEFuYWx5c2VyOjpJc0xlYWRpbmdEZWNpbWFsKHVuc2lnbmVkIHNob3J0KQ0KKz9Jc0xlYWRpbmdEZWNpbWFsQFNubXBBbmFseXNlckBAU0FIR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcEluc3RhbmNlVHlwZTo6SXNOdWxsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNOdWxsQFNubXBJbnN0YW5jZVR5cGVAQFVFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIFNubXBBbmFseXNlcjo6SXNPY3RhbCh1bnNpZ25lZCBzaG9ydCkNCis/SXNPY3RhbEBTbm1wQW5hbHlzZXJAQFNBSEdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wVHJhcFJlY2VpdmVyOjpJc1JlZ2lzdGVyZWQodm9pZCkgX19wdHI2NA0KKz9Jc1JlZ2lzdGVyZWRAU25tcFRyYXBSZWNlaXZlckBAUUVBQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBDb3VudGVyNjRUeXBlOjpJc1NOTVBWMVR5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1NOTVBWMVR5cGVAU25tcENvdW50ZXI2NFR5cGVAQFVFQkFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wSW5zdGFuY2VUeXBlOjpJc1NOTVBWMVR5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1NOTVBWMVR5cGVAU25tcEluc3RhbmNlVHlwZUBAVUVCQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBJbnN0YW5jZVR5cGU6OklzU05NUFYyQ1R5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1NOTVBWMkNUeXBlQFNubXBJbnN0YW5jZVR5cGVAQFVFQkFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wTnVsbFR5cGU6OklzU05NUFYyQ1R5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1NOTVBWMkNUeXBlQFNubXBOdWxsVHlwZUBAVUVCQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBJbnN0YW5jZVR5cGU6OklzVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1ZhbGlkQFNubXBJbnN0YW5jZVR5cGVAQFVFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU25tcFBvc2l0aXZlUmFuZ2VkVHlwZTo6SXNWYWxpZCh2b2lkKSBfX3B0cjY0DQorP0lzVmFsaWRAU25tcFBvc2l0aXZlUmFuZ2VkVHlwZUBAUUVBQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBUcmFuc3BvcnRJcEFkZHJlc3M6OklzVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1ZhbGlkQFNubXBUcmFuc3BvcnRJcEFkZHJlc3NAQFVFQkFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzczo6SXNWYWxpZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVmFsaWRAU25tcFRyYW5zcG9ydElweEFkZHJlc3NAQFVFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIFNubXBBbmFseXNlcjo6SXNXaGl0ZXNwYWNlKHVuc2lnbmVkIHNob3J0KQ0KKz9Jc1doaXRlc3BhY2VAU25tcEFuYWx5c2VyQEBTQUhHQFoNCis7IHByaXZhdGU6IGNsYXNzIFNubXBMZXhpY29uICogX19wdHI2NCBfX2NkZWNsIFNubXBCaXRTdHJpbmdUeXBlOjpNYXRjaChlbnVtIFNubXBMZXhpY29uOjpMZXhpY29uVG9rZW4pIF9fcHRyNjQNCis/TWF0Y2hAU25tcEJpdFN0cmluZ1R5cGVAQEFFQUFQRUFWU25tcExleGljb25AQFc0TGV4aWNvblRva2VuQDJAQFoNCis7IHByaXZhdGU6IGNsYXNzIFNubXBMZXhpY29uICogX19wdHI2NCBfX2NkZWNsIFNubXBEYXRlVGltZVR5cGU6Ok1hdGNoKGVudW0gU25tcExleGljb246OkxleGljb25Ub2tlbikgX19wdHI2NA0KKz9NYXRjaEBTbm1wRGF0ZVRpbWVUeXBlQEBBRUFBUEVBVlNubXBMZXhpY29uQEBXNExleGljb25Ub2tlbkAyQEBaDQorOyBwcml2YXRlOiBjbGFzcyBTbm1wTGV4aWNvbiAqIF9fcHRyNjQgX19jZGVjbCBTbm1wRW51bWVyYXRlZFR5cGU6Ok1hdGNoKGVudW0gU25tcExleGljb246OkxleGljb25Ub2tlbikgX19wdHI2NA0KKz9NYXRjaEBTbm1wRW51bWVyYXRlZFR5cGVAQEFFQUFQRUFWU25tcExleGljb25AQFc0TGV4aWNvblRva2VuQDJAQFoNCis7IHByb3RlY3RlZDogY2xhc3MgU25tcExleGljb24gKiBfX3B0cjY0IF9fY2RlY2wgU25tcFBvc2l0aXZlUmFuZ2VkVHlwZTo6TWF0Y2goZW51bSBTbm1wTGV4aWNvbjo6TGV4aWNvblRva2VuKSBfX3B0cjY0DQorP01hdGNoQFNubXBQb3NpdGl2ZVJhbmdlZFR5cGVAQElFQUFQRUFWU25tcExleGljb25AQFc0TGV4aWNvblRva2VuQDJAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgU25tcFZhckJpbmRMaXN0OjpOZXh0KHZvaWQpIF9fcHRyNjQNCis/TmV4dEBTbm1wVmFyQmluZExpc3RAQFFFQUFIWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBTbm1wSW1wU2Vzc2lvbjo6Tm90aWZ5T3BlcmF0aW9uKHVuc2lnbmVkIGxvbmcsY2xhc3MgU25tcFBkdSBjb25zdCAmIF9fcHRyNjQsY2xhc3MgU25tcEVycm9yUmVwb3J0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Ob3RpZnlPcGVyYXRpb25AU25tcEltcFNlc3Npb25AQEFFQUFYS0FFQlZTbm1wUGR1QEBBRUJWU25tcEVycm9yUmVwb3J0QEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIFNubXBBbmFseXNlcjo6T2N0Q2hhclRvRGVjSW50ZWdlcihjaGFyKQ0KKz9PY3RDaGFyVG9EZWNJbnRlZ2VyQFNubXBBbmFseXNlckBAU0FLREBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU25tcEFuYWx5c2VyOjpPY3RXQ2hhclRvRGVjSW50ZWdlcih1bnNpZ25lZCBzaG9ydCkNCis/T2N0V0NoYXJUb0RlY0ludGVnZXJAU25tcEFuYWx5c2VyQEBTQUtHQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllcjo6T3ZlcldyaXRlKHVuc2lnbmVkIGxvbmcgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP092ZXJXcml0ZUBTbm1wT2JqZWN0SWRlbnRpZmllckBAQUVBQVhQRUJLQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBTbm1wT2N0ZXRTdHJpbmc6Ok92ZXJXcml0ZSh1bnNpZ25lZCBjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9PdmVyV3JpdGVAU25tcE9jdGV0U3RyaW5nQEBBRUFBWFBFQkVAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgU25tcEJpdFN0cmluZ1R5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QYXJzZUBTbm1wQml0U3RyaW5nVHlwZUBAQUVBQUhQRUJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgU25tcENvdW50ZXI2NFR5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QYXJzZUBTbm1wQ291bnRlcjY0VHlwZUBASUVBQUhQRUJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgU25tcENvdW50ZXJUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UGFyc2VAU25tcENvdW50ZXJUeXBlQEBJRUFBSFBFQkdAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgU25tcERhdGVUaW1lVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1BhcnNlQFNubXBEYXRlVGltZVR5cGVAQEFFQUFIUEVCR0BaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBTbm1wRW51bWVyYXRlZFR5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QYXJzZUBTbm1wRW51bWVyYXRlZFR5cGVAQEFFQUFIUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIFNubXBGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1BhcnNlQFNubXBGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZUBASUVBQUhQRUJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgU25tcEdhdWdlVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1BhcnNlQFNubXBHYXVnZVR5cGVAQElFQUFIUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIFNubXBJUFhBZGRyZXNzVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1BhcnNlQFNubXBJUFhBZGRyZXNzVHlwZUBASUVBQUhQRUJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgU25tcEludGVnZXJUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UGFyc2VAU25tcEludGVnZXJUeXBlQEBJRUFBSFBFQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBTbm1wSXBBZGRyZXNzVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1BhcnNlQFNubXBJcEFkZHJlc3NUeXBlQEBJRUFBSFBFQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBTbm1wTWFjQWRkcmVzc1R5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QYXJzZUBTbm1wTWFjQWRkcmVzc1R5cGVAQElFQUFIUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIFNubXBOZXR3b3JrQWRkcmVzc1R5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QYXJzZUBTbm1wTmV0d29ya0FkZHJlc3NUeXBlQEBJRUFBSFBFQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBTbm1wT1NJQWRkcmVzc1R5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QYXJzZUBTbm1wT1NJQWRkcmVzc1R5cGVAQElFQUFIUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIFNubXBPYmplY3RJZGVudGlmaWVyVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1BhcnNlQFNubXBPYmplY3RJZGVudGlmaWVyVHlwZUBASUVBQUhQRUJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgU25tcE9jdGV0U3RyaW5nVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1BhcnNlQFNubXBPY3RldFN0cmluZ1R5cGVAQElFQUFIUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIFNubXBPcGFxdWVUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UGFyc2VAU25tcE9wYXF1ZVR5cGVAQElFQUFIUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIFNubXBQaHlzQWRkcmVzc1R5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QYXJzZUBTbm1wUGh5c0FkZHJlc3NUeXBlQEBJRUFBSFBFQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBTbm1wUG9zaXRpdmVSYW5nZWRUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UGFyc2VAU25tcFBvc2l0aXZlUmFuZ2VkVHlwZUBASUVBQUhQRUJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgU25tcFRpbWVUaWNrc1R5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QYXJzZUBTbm1wVGltZVRpY2tzVHlwZUBASUVBQUhQRUJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgU25tcFVEUEFkZHJlc3NUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UGFyc2VAU25tcFVEUEFkZHJlc3NUeXBlQEBJRUFBSFBFQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBTbm1wVUludGVnZXIzMlR5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QYXJzZUBTbm1wVUludGVnZXIzMlR5cGVAQElFQUFIUEVCR0BaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgU25tcEltcFNlc3Npb246OlBvc3RTZW50RnJhbWVFdmVudCh1bnNpZ25lZCBsb25nLGNsYXNzIFNubXBPcGVyYXRpb24gJiBfX3B0cjY0LGNsYXNzIFNubXBFcnJvclJlcG9ydCkgX19wdHI2NA0KKz9Qb3N0U2VudEZyYW1lRXZlbnRAU25tcEltcFNlc3Npb25AQEFFQUFYS0FFQVZTbm1wT3BlcmF0aW9uQEBWU25tcEVycm9yUmVwb3J0QEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllcjo6UHJlZml4KHVuc2lnbmVkIGxvbmcsY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1ByZWZpeEBTbm1wT2JqZWN0SWRlbnRpZmllckBAUUVCQUhLQUVBVjFAQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBTbm1wT3BlcmF0aW9uOjpQcm9jZXNzSW50ZXJuYWxFdmVudChzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgX19pbnQ2NCxfX2ludDY0KSBfX3B0cjY0DQorP1Byb2Nlc3NJbnRlcm5hbEV2ZW50QFNubXBPcGVyYXRpb25AQEFFQUFKUEVBVUhXTkRfX0BASV9LX0pAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgR2V0TmV4dE9wZXJhdGlvbjo6UHJvY2Vzc1Jvdyh2b2lkKSBfX3B0cjY0DQorP1Byb2Nlc3NSb3dAR2V0TmV4dE9wZXJhdGlvbkBAQUVBQUhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFNubXBCaXRTdHJpbmdUeXBlOjpQdXNoQmFjayh2b2lkKSBfX3B0cjY0DQorP1B1c2hCYWNrQFNubXBCaXRTdHJpbmdUeXBlQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgU25tcERhdGVUaW1lVHlwZTo6UHVzaEJhY2sodm9pZCkgX19wdHI2NA0KKz9QdXNoQmFja0BTbm1wRGF0ZVRpbWVUeXBlQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgU25tcEVudW1lcmF0ZWRUeXBlOjpQdXNoQmFjayh2b2lkKSBfX3B0cjY0DQorP1B1c2hCYWNrQFNubXBFbnVtZXJhdGVkVHlwZUBAQUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgU25tcFBvc2l0aXZlUmFuZ2VkVHlwZTo6UHVzaEJhY2sodm9pZCkgX19wdHI2NA0KKz9QdXNoQmFja0BTbm1wUG9zaXRpdmVSYW5nZWRUeXBlQEBJRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wQW5hbHlzZXI6OlB1dEJhY2soY2xhc3MgU25tcExleGljb24gY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1B1dEJhY2tAU25tcEFuYWx5c2VyQEBRRUFBWFBFQlZTbm1wTGV4aWNvbkBAQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgU25tcFBvc2l0aXZlUmFuZ2VkVHlwZTo6UmFuZ2VEZWYodm9pZCkgX19wdHI2NA0KKz9SYW5nZURlZkBTbm1wUG9zaXRpdmVSYW5nZWRUeXBlQEBJRUFBSFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgU25tcE9wZXJhdGlvbjo6UmVjZWl2ZUVycm9yZWRSZXNwb25zZSh1bnNpZ25lZCBsb25nLGNsYXNzIFNubXBWYXJCaW5kTGlzdCAmIF9fcHRyNjQsY2xhc3MgU25tcEVycm9yUmVwb3J0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZWNlaXZlRXJyb3JlZFJlc3BvbnNlQFNubXBPcGVyYXRpb25AQEFFQUFYS0FFQVZTbm1wVmFyQmluZExpc3RAQEFFQlZTbm1wRXJyb3JSZXBvcnRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIEdldE5leHRPcGVyYXRpb246OlJlY2VpdmVFcnJvcmVkVmFyQmluZFJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgY29uc3QgJiBfX3B0cjY0LGNsYXNzIFNubXBWYXJCaW5kIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBTbm1wRXJyb3JSZXBvcnQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlY2VpdmVFcnJvcmVkVmFyQmluZFJlc3BvbnNlQEdldE5leHRPcGVyYXRpb25AQE1FQUFYQUVCS0FFQlZTbm1wVmFyQmluZEBAQUVCVlNubXBFcnJvclJlcG9ydEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgU25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbjo6UmVjZWl2ZUVycm9yZWRWYXJCaW5kUmVzcG9uc2UodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsY2xhc3MgU25tcFZhckJpbmQgY29uc3QgJiBfX3B0cjY0LGNsYXNzIFNubXBFcnJvclJlcG9ydCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVjZWl2ZUVycm9yZWRWYXJCaW5kUmVzcG9uc2VAU25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbkBATUVBQVhBRUJLQUVCVlNubXBWYXJCaW5kQEBBRUJWU25tcEVycm9yUmVwb3J0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wT3BlcmF0aW9uOjpSZWNlaXZlRXJyb3JlZFZhckJpbmRSZXNwb25zZSh1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBTbm1wVmFyQmluZCBjb25zdCAmIF9fcHRyNjQsY2xhc3MgU25tcEVycm9yUmVwb3J0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZWNlaXZlRXJyb3JlZFZhckJpbmRSZXNwb25zZUBTbm1wT3BlcmF0aW9uQEBNRUFBWEFFQktBRUJWU25tcFZhckJpbmRAQEFFQlZTbm1wRXJyb3JSZXBvcnRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wQXV0b1JldHJpZXZlT3BlcmF0aW9uOjpSZWNlaXZlRnJhbWUodW5zaWduZWQgbG9uZyxjbGFzcyBTbm1wUGR1IGNvbnN0ICYgX19wdHI2NCxjbGFzcyBTbm1wRXJyb3JSZXBvcnQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlY2VpdmVGcmFtZUBTbm1wQXV0b1JldHJpZXZlT3BlcmF0aW9uQEBRRUFBWEtBRUJWU25tcFBkdUBAQUVCVlNubXBFcnJvclJlcG9ydEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBPcGVyYXRpb246OlJlY2VpdmVGcmFtZSh1bnNpZ25lZCBsb25nLGNsYXNzIFNubXBQZHUgY29uc3QgJiBfX3B0cjY0LGNsYXNzIFNubXBFcnJvclJlcG9ydCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVjZWl2ZUZyYW1lQFNubXBPcGVyYXRpb25AQFFFQUFYS0FFQlZTbm1wUGR1QEBBRUJWU25tcEVycm9yUmVwb3J0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBHZXROZXh0T3BlcmF0aW9uOjpSZWNlaXZlUmVzcG9uc2Uodm9pZCkgX19wdHI2NA0KKz9SZWNlaXZlUmVzcG9uc2VAR2V0TmV4dE9wZXJhdGlvbkBATUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wQXV0b1JldHJpZXZlT3BlcmF0aW9uOjpSZWNlaXZlUmVzcG9uc2Uodm9pZCkgX19wdHI2NA0KKz9SZWNlaXZlUmVzcG9uc2VAU25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbkBATUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wT3BlcmF0aW9uOjpSZWNlaXZlUmVzcG9uc2Uodm9pZCkgX19wdHI2NA0KKz9SZWNlaXZlUmVzcG9uc2VAU25tcE9wZXJhdGlvbkBATUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wQXV0b1JldHJpZXZlT3BlcmF0aW9uOjpSZWNlaXZlUm93UmVzcG9uc2Uodm9pZCkgX19wdHI2NA0KKz9SZWNlaXZlUm93UmVzcG9uc2VAU25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbkBATUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wQXV0b1JldHJpZXZlT3BlcmF0aW9uOjpSZWNlaXZlUm93VmFyQmluZFJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgY29uc3QgJiBfX3B0cjY0LGNsYXNzIFNubXBWYXJCaW5kIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBTbm1wVmFyQmluZCBjb25zdCAmIF9fcHRyNjQsY2xhc3MgU25tcEVycm9yUmVwb3J0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZWNlaXZlUm93VmFyQmluZFJlc3BvbnNlQFNubXBBdXRvUmV0cmlldmVPcGVyYXRpb25AQE1FQUFYQUVCS0FFQlZTbm1wVmFyQmluZEBAMUFFQlZTbm1wRXJyb3JSZXBvcnRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIEdldE5leHRPcGVyYXRpb246OlJlY2VpdmVWYXJCaW5kUmVzcG9uc2UodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQsY2xhc3MgU25tcFZhckJpbmQgY29uc3QgJiBfX3B0cjY0LGNsYXNzIFNubXBWYXJCaW5kIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBTbm1wRXJyb3JSZXBvcnQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlY2VpdmVWYXJCaW5kUmVzcG9uc2VAR2V0TmV4dE9wZXJhdGlvbkBATUVBQVhBRUJLQUVCVlNubXBWYXJCaW5kQEAxQUVCVlNubXBFcnJvclJlcG9ydEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgU25tcEF1dG9SZXRyaWV2ZU9wZXJhdGlvbjo6UmVjZWl2ZVZhckJpbmRSZXNwb25zZSh1bnNpZ25lZCBsb25nIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBTbm1wVmFyQmluZCBjb25zdCAmIF9fcHRyNjQsY2xhc3MgU25tcFZhckJpbmQgY29uc3QgJiBfX3B0cjY0LGNsYXNzIFNubXBFcnJvclJlcG9ydCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVjZWl2ZVZhckJpbmRSZXNwb25zZUBTbm1wQXV0b1JldHJpZXZlT3BlcmF0aW9uQEBNRUFBWEFFQktBRUJWU25tcFZhckJpbmRAQDFBRUJWU25tcEVycm9yUmVwb3J0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wT3BlcmF0aW9uOjpSZWNlaXZlVmFyQmluZFJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgY29uc3QgJiBfX3B0cjY0LGNsYXNzIFNubXBWYXJCaW5kIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBTbm1wVmFyQmluZCBjb25zdCAmIF9fcHRyNjQsY2xhc3MgU25tcEVycm9yUmVwb3J0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZWNlaXZlVmFyQmluZFJlc3BvbnNlQFNubXBPcGVyYXRpb25AQE1FQUFYQUVCS0FFQlZTbm1wVmFyQmluZEBAMUFFQlZTbm1wRXJyb3JSZXBvcnRAQEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBTbm1wQml0U3RyaW5nVHlwZTo6UmVjdXJzaXZlRGVmKHZvaWQpIF9fcHRyNjQNCis/UmVjdXJzaXZlRGVmQFNubXBCaXRTdHJpbmdUeXBlQEBBRUFBSFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBTbm1wRW51bWVyYXRlZFR5cGU6OlJlY3Vyc2l2ZURlZih2b2lkKSBfX3B0cjY0DQorP1JlY3Vyc2l2ZURlZkBTbm1wRW51bWVyYXRlZFR5cGVAQEFFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgU25tcFBvc2l0aXZlUmFuZ2VkVHlwZTo6UmVjdXJzaXZlRGVmKHZvaWQpIF9fcHRyNjQNCis/UmVjdXJzaXZlRGVmQFNubXBQb3NpdGl2ZVJhbmdlZFR5cGVAQElFQUFIWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgU25tcEltcFNlc3Npb246OlJlZ2lzdGVyT3BlcmF0aW9uKGNsYXNzIFNubXBPcGVyYXRpb24gJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlZ2lzdGVyT3BlcmF0aW9uQFNubXBJbXBTZXNzaW9uQEBVRUFBWEFFQVZTbm1wT3BlcmF0aW9uQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgU25tcFZhckJpbmRMaXN0OjpSZWxlYXNlKGNsYXNzIFNubXBWYXJCaW5kTGlzdE5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbGVhc2VAU25tcFZhckJpbmRMaXN0QEBJRUFBWFBFQVZTbm1wVmFyQmluZExpc3ROb2RlQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU25tcFZhckJpbmRMaXN0OjpSZW1vdmUodm9pZCkgX19wdHI2NA0KKz9SZW1vdmVAU25tcFZhckJpbmRMaXN0QEBRRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQgX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllcjo6UmVwbGljYXRlKHVuc2lnbmVkIGxvbmcgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9SZXBsaWNhdGVAU25tcE9iamVjdElkZW50aWZpZXJAQE1FQkFQRUFLUEVCS0swS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQgX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllcjo6UmVwbGljYXRlKHVuc2lnbmVkIGxvbmcgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/UmVwbGljYXRlQFNubXBPYmplY3RJZGVudGlmaWVyQEBNRUJBUEVBS1BFQktLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBjaGFyICogX19wdHI2NCBfX2NkZWNsIFNubXBPY3RldFN0cmluZzo6UmVwbGljYXRlKHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVwbGljYXRlQFNubXBPY3RldFN0cmluZ0BATUVBQVBFQUVQRUJFS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNubXBWYXJCaW5kOjpSZXBsaWNhdGUoY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgY29uc3QgJiBfX3B0cjY0LGNsYXNzIFNubXBWYWx1ZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVwbGljYXRlQFNubXBWYXJCaW5kQEBNRUFBWEFFQlZTbm1wT2JqZWN0SWRlbnRpZmllckBAQUVCVlNubXBWYWx1ZUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdDo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBTbm1wVmFyQmluZExpc3RAQFFFQUFYWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBTbm1wSW1wU2Vzc2lvbjo6UmV0cnlDb3VudCh1bnNpZ25lZCBsb25nKQ0KKz9SZXRyeUNvdW50QFNubXBJbXBTZXNzaW9uQEBTQUtLQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBTbm1wSW1wU2Vzc2lvbjo6UmV0cnlUaW1lb3V0KHVuc2lnbmVkIGxvbmcpDQorP1JldHJ5VGltZW91dEBTbm1wSW1wU2Vzc2lvbkBAU0FLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcEVycm9yUmVwb3J0ICBfX2NkZWNsIFNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5OjpTZWN1cmUoY2xhc3MgU25tcEVuY29kZURlY29kZSAmIF9fcHRyNjQsY2xhc3MgU25tcFBkdSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VjdXJlQFNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5QEBVRUFBP0FWU25tcEVycm9yUmVwb3J0QEBBRUFWU25tcEVuY29kZURlY29kZUBAQUVBVlNubXBQZHVAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgR2V0TmV4dE9wZXJhdGlvbjo6U2VuZCh2b2lkKSBfX3B0cjY0DQorP1NlbmRAR2V0TmV4dE9wZXJhdGlvbkBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFNubXBPcGVyYXRpb246OlNlbmRGcmFtZShjbGFzcyBWQkxpc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NlbmRGcmFtZUBTbm1wT3BlcmF0aW9uQEBBRUFBWEFFQVZWQkxpc3RAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBHZXROZXh0T3BlcmF0aW9uOjpTZW5kUmVxdWVzdChjbGFzcyBTbm1wVmFyQmluZExpc3QgJiBfX3B0cjY0LGNsYXNzIFNubXBWYXJCaW5kTGlzdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VuZFJlcXVlc3RAR2V0TmV4dE9wZXJhdGlvbkBAUUVBQVhBRUFWU25tcFZhckJpbmRMaXN0QEAwQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgR2V0TmV4dE9wZXJhdGlvbjo6U2VuZFJlcXVlc3QoY2xhc3MgU25tcFZhckJpbmRMaXN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZW5kUmVxdWVzdEBHZXROZXh0T3BlcmF0aW9uQEBVRUFBWEFFQVZTbm1wVmFyQmluZExpc3RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNubXBBdXRvUmV0cmlldmVPcGVyYXRpb246OlNlbmRSZXF1ZXN0KGNsYXNzIFNubXBWYXJCaW5kTGlzdCAmIF9fcHRyNjQsY2xhc3MgU25tcFZhckJpbmRMaXN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZW5kUmVxdWVzdEBTbm1wQXV0b1JldHJpZXZlT3BlcmF0aW9uQEBVRUFBWEFFQVZTbm1wVmFyQmluZExpc3RAQDBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wQXV0b1JldHJpZXZlT3BlcmF0aW9uOjpTZW5kUmVxdWVzdChjbGFzcyBTbm1wVmFyQmluZExpc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NlbmRSZXF1ZXN0QFNubXBBdXRvUmV0cmlldmVPcGVyYXRpb25AQFVFQUFYQUVBVlNubXBWYXJCaW5kTGlzdEBAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBTbm1wT3BlcmF0aW9uOjpTZW5kUmVxdWVzdChjbGFzcyBTbm1wVmFyQmluZExpc3QgJiBfX3B0cjY0LGNsYXNzIFNubXBTZWN1cml0eSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VuZFJlcXVlc3RAU25tcE9wZXJhdGlvbkBAQUVBQVhBRUFWU25tcFZhckJpbmRMaXN0QEBQRUFWU25tcFNlY3VyaXR5QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wT3BlcmF0aW9uOjpTZW5kUmVxdWVzdChjbGFzcyBTbm1wVmFyQmluZExpc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NlbmRSZXF1ZXN0QFNubXBPcGVyYXRpb25AQFVFQUFYQUVBVlNubXBWYXJCaW5kTGlzdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgU25tcE9wZXJhdGlvbjo6U2VuZFJlcXVlc3QoY2xhc3MgU25tcFZhckJpbmRMaXN0ICYgX19wdHI2NCxjbGFzcyBTbm1wU2VjdXJpdHkgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NlbmRSZXF1ZXN0QFNubXBPcGVyYXRpb25AQFVFQUFYQUVBVlNubXBWYXJCaW5kTGlzdEBAQUVBVlNubXBTZWN1cml0eUBAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBTbm1wT3BlcmF0aW9uOjpTZW5kVmFyQmluZExpc3QoY2xhc3MgU25tcFZhckJpbmRMaXN0ICYgX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZW5kVmFyQmluZExpc3RAU25tcE9wZXJhdGlvbkBAQUVBQVhBRUFWU25tcFZhckJpbmRMaXN0QEBJS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIEdldE5leHRPcGVyYXRpb246OlNlbnRGcmFtZSh1bnNpZ25lZCBsb25nLGNsYXNzIFNubXBFcnJvclJlcG9ydCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VudEZyYW1lQEdldE5leHRPcGVyYXRpb25AQE1FQUFYS0FFQlZTbm1wRXJyb3JSZXBvcnRAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNubXBBdXRvUmV0cmlldmVPcGVyYXRpb246OlNlbnRGcmFtZSh1bnNpZ25lZCBsb25nLGNsYXNzIFNubXBFcnJvclJlcG9ydCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VudEZyYW1lQFNubXBBdXRvUmV0cmlldmVPcGVyYXRpb25AQFVFQUFYS0FFQlZTbm1wRXJyb3JSZXBvcnRAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNubXBPcGVyYXRpb246OlNlbnRGcmFtZSh1bnNpZ25lZCBsb25nLGNsYXNzIFNubXBFcnJvclJlcG9ydCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2VudEZyYW1lQFNubXBPcGVyYXRpb25AQFVFQUFYS0FFQlZTbm1wRXJyb3JSZXBvcnRAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU25tcEVycm9yUmVwb3J0ICBfX2NkZWNsIFNubXBJbXBTZXNzaW9uOjpTZXNzaW9uQ2FuY2VsRnJhbWUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXNzaW9uQ2FuY2VsRnJhbWVAU25tcEltcFNlc3Npb25AQFVFQUE/QVZTbm1wRXJyb3JSZXBvcnRAQEtAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wU2Vzc2lvbjo6U2Vzc2lvbkZsb3dDb250cm9sT2ZmKHZvaWQpIF9fcHRyNjQNCis/U2Vzc2lvbkZsb3dDb250cm9sT2ZmQFNubXBTZXNzaW9uQEBNRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNubXBTZXNzaW9uOjpTZXNzaW9uRmxvd0NvbnRyb2xPbih2b2lkKSBfX3B0cjY0DQorP1Nlc3Npb25GbG93Q29udHJvbE9uQFNubXBTZXNzaW9uQEBNRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNubXBJbXBTZXNzaW9uOjpTZXNzaW9uUmVjZWl2ZUZyYW1lKGNsYXNzIFNubXBQZHUgJiBfX3B0cjY0LGNsYXNzIFNubXBFcnJvclJlcG9ydCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2Vzc2lvblJlY2VpdmVGcmFtZUBTbm1wSW1wU2Vzc2lvbkBAVUVBQVhBRUFWU25tcFBkdUBAQUVBVlNubXBFcnJvclJlcG9ydEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgU25tcEltcFNlc3Npb246OlNlc3Npb25TZW5kRnJhbWUoY2xhc3MgU25tcE9wZXJhdGlvbiAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQsY2xhc3MgU25tcFBkdSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2Vzc2lvblNlbmRGcmFtZUBTbm1wSW1wU2Vzc2lvbkBAVUVBQVhBRUFWU25tcE9wZXJhdGlvbkBAQUVBS0FFQVZTbm1wUGR1QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wSW1wU2Vzc2lvbjo6U2Vzc2lvblNlbmRGcmFtZShjbGFzcyBTbm1wT3BlcmF0aW9uICYgX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCxjbGFzcyBTbm1wUGR1ICYgX19wdHI2NCxjbGFzcyBTbm1wU2VjdXJpdHkgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1Nlc3Npb25TZW5kRnJhbWVAU25tcEltcFNlc3Npb25AQFVFQUFYQUVBVlNubXBPcGVyYXRpb25AQEFFQUtBRUFWU25tcFBkdUBAQUVBVlNubXBTZWN1cml0eUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgU25tcEltcFNlc3Npb246OlNlc3Npb25TZW50RnJhbWUodW5zaWduZWQgbG9uZyxjbGFzcyBTbm1wRXJyb3JSZXBvcnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1Nlc3Npb25TZW50RnJhbWVAU25tcEltcFNlc3Npb25AQFVFQUFYS0FFQVZTbm1wRXJyb3JSZXBvcnRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wQW5hbHlzZXI6OlNldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QFNubXBBbmFseXNlckBAUUVBQVhQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5OjpTZXRDb21tdW5pdHlOYW1lKGNsYXNzIFNubXBPY3RldFN0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Q29tbXVuaXR5TmFtZUBTbm1wQ29tbXVuaXR5QmFzZWRTZWN1cml0eUBAUUVBQVhBRUJWU25tcE9jdGV0U3RyaW5nQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU25tcENvbW11bml0eUJhc2VkU2VjdXJpdHk6OlNldENvbW11bml0eU5hbWUoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Q29tbXVuaXR5TmFtZUBTbm1wQ29tbXVuaXR5QmFzZWRTZWN1cml0eUBAUUVBQVhQRUJEQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wRW5jb2RlRGVjb2RlOjpTZXRDb21tdW5pdHlOYW1lKGNsYXNzIFNubXBQZHUgJiBfX3B0cjY0LGNsYXNzIFNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRDb21tdW5pdHlOYW1lQFNubXBFbmNvZGVEZWNvZGVAQFVFQUFIQUVBVlNubXBQZHVAQEFFQVZTbm1wQ29tbXVuaXR5QmFzZWRTZWN1cml0eUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wUGR1OjpTZXRDb21tdW5pdHlOYW1lKGNsYXNzIFNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRDb21tdW5pdHlOYW1lQFNubXBQZHVAQFVFQUFIQUVBVlNubXBDb21tdW5pdHlCYXNlZFNlY3VyaXR5QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBFbmNvZGVEZWNvZGU6OlNldERlc3RpbmF0aW9uQWRkcmVzcyhjbGFzcyBTbm1wUGR1ICYgX19wdHI2NCxjbGFzcyBTbm1wVHJhbnNwb3J0QWRkcmVzcyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RGVzdGluYXRpb25BZGRyZXNzQFNubXBFbmNvZGVEZWNvZGVAQFVFQUFIQUVBVlNubXBQZHVAQEFFQVZTbm1wVHJhbnNwb3J0QWRkcmVzc0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wUGR1OjpTZXREZXN0aW5hdGlvbkFkZHJlc3MoY2xhc3MgU25tcFRyYW5zcG9ydEFkZHJlc3MgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERlc3RpbmF0aW9uQWRkcmVzc0BTbm1wUGR1QEBVRUFBSEFFQVZTbm1wVHJhbnNwb3J0QWRkcmVzc0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBFcnJvclJlcG9ydDo6U2V0RXJyb3IoZW51bSBTbm1wRXJyb3IpIF9fcHRyNjQNCis/U2V0RXJyb3JAU25tcEVycm9yUmVwb3J0QEBRRUFBWFc0U25tcEVycm9yQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBFbmNvZGVEZWNvZGU6OlNldEVycm9yUmVwb3J0KGNsYXNzIFNubXBQZHUgJiBfX3B0cjY0LGNsYXNzIFNubXBFcnJvclJlcG9ydCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RXJyb3JSZXBvcnRAU25tcEVuY29kZURlY29kZUBAVUVBQUhBRUFWU25tcFBkdUBAQUVBVlNubXBFcnJvclJlcG9ydEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wUGR1OjpTZXRFcnJvclJlcG9ydChjbGFzcyBTbm1wRXJyb3JSZXBvcnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEVycm9yUmVwb3J0QFNubXBQZHVAQFVFQUFIQUVBVlNubXBFcnJvclJlcG9ydEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBFcnJvclJlcG9ydDo6U2V0SW5kZXgodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRJbmRleEBTbm1wRXJyb3JSZXBvcnRAQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wTmVnYXRpdmVSYW5nZVR5cGU6OlNldExvd2VyQm91bmQobG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TG93ZXJCb3VuZEBTbm1wTmVnYXRpdmVSYW5nZVR5cGVAQFFFQUFYQUVCSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wUG9zaXRpdmVSYW5nZVR5cGU6OlNldExvd2VyQm91bmQodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TG93ZXJCb3VuZEBTbm1wUG9zaXRpdmVSYW5nZVR5cGVAQFFFQUFYQUVCS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wVmFyQmluZExpc3ROb2RlOjpTZXROZXh0KGNsYXNzIFNubXBWYXJCaW5kTGlzdE5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldE5leHRAU25tcFZhckJpbmRMaXN0Tm9kZUBAUUVBQVhQRUFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU25tcEluc3RhbmNlVHlwZTo6U2V0TnVsbChpbnQpIF9fcHRyNjQNCis/U2V0TnVsbEBTbm1wSW5zdGFuY2VUeXBlQEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU25tcFBkdTo6U2V0UGR1KGNsYXNzIFNubXBQZHUgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFBkdUBTbm1wUGR1QEBRRUFBWEFFQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wUGR1OjpTZXRQZHUodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRQZHVAU25tcFBkdUBAUUVBQVhQRUJFS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcEVuY29kZURlY29kZTo6U2V0UGR1VHlwZShjbGFzcyBTbm1wUGR1ICYgX19wdHI2NCxlbnVtIFNubXBFbmNvZGVEZWNvZGU6OlBkdVR5cGUpIF9fcHRyNjQNCis/U2V0UGR1VHlwZUBTbm1wRW5jb2RlRGVjb2RlQEBVRUFBSEFFQVZTbm1wUGR1QEBXNFBkdVR5cGVAMUBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBQZHU6OlNldFBkdVR5cGUoZW51bSBTbm1wRW5jb2RlRGVjb2RlOjpQZHVUeXBlKSBfX3B0cjY0DQorP1NldFBkdVR5cGVAU25tcFBkdUBAVUVBQUhXNFBkdVR5cGVAU25tcEVuY29kZURlY29kZUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBWYXJCaW5kTGlzdE5vZGU6OlNldFByZXZpb3VzKGNsYXNzIFNubXBWYXJCaW5kTGlzdE5vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFByZXZpb3VzQFNubXBWYXJCaW5kTGlzdE5vZGVAQFFFQUFYUEVBVjFAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wRW5jb2RlRGVjb2RlOjpTZXRSZXF1ZXN0SWQoY2xhc3MgU25tcFBkdSAmIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz9TZXRSZXF1ZXN0SWRAU25tcEVuY29kZURlY29kZUBAVUVBQUhBRUFWU25tcFBkdUBASkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcFBkdTo6U2V0UmVxdWVzdElkKGxvbmcpIF9fcHRyNjQNCis/U2V0UmVxdWVzdElkQFNubXBQZHVAQFVFQUFISkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcEVuY29kZURlY29kZTo6U2V0U291cmNlQWRkcmVzcyhjbGFzcyBTbm1wUGR1ICYgX19wdHI2NCxjbGFzcyBTbm1wVHJhbnNwb3J0QWRkcmVzcyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0U291cmNlQWRkcmVzc0BTbm1wRW5jb2RlRGVjb2RlQEBVRUFBSEFFQVZTbm1wUGR1QEBBRUFWU25tcFRyYW5zcG9ydEFkZHJlc3NAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcFBkdTo6U2V0U291cmNlQWRkcmVzcyhjbGFzcyBTbm1wVHJhbnNwb3J0QWRkcmVzcyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0U291cmNlQWRkcmVzc0BTbm1wUGR1QEBVRUFBSEFFQVZTbm1wVHJhbnNwb3J0QWRkcmVzc0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBFcnJvclJlcG9ydDo6U2V0U3RhdHVzKGVudW0gU25tcFN0YXR1cykgX19wdHI2NA0KKz9TZXRTdGF0dXNAU25tcEVycm9yUmVwb3J0QEBRRUFBWFc0U25tcFN0YXR1c0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBJbnN0YW5jZVR5cGU6OlNldFN0YXR1cyhpbnQpIF9fcHRyNjQNCis/U2V0U3RhdHVzQFNubXBJbnN0YW5jZVR5cGVAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wUG9zaXRpdmVSYW5nZWRUeXBlOjpTZXRTdGF0dXMoaW50IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRTdGF0dXNAU25tcFBvc2l0aXZlUmFuZ2VkVHlwZUBAUUVBQVhBRUJIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBMZXhpY29uOjpTZXRUb2tlbihlbnVtIFNubXBMZXhpY29uOjpMZXhpY29uVG9rZW4pIF9fcHRyNjQNCis/U2V0VG9rZW5AU25tcExleGljb25AQFFFQUFYVzRMZXhpY29uVG9rZW5AMUBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wVjFFbmNvZGVEZWNvZGU6OlNldFRyYW5zbGF0ZU1vZGUodm9pZCkgX19wdHI2NA0KKz9TZXRUcmFuc2xhdGVNb2RlQFNubXBWMUVuY29kZURlY29kZUBATUVBQVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wVjJDRW5jb2RlRGVjb2RlOjpTZXRUcmFuc2xhdGVNb2RlKHZvaWQpIF9fcHRyNjQNCis/U2V0VHJhbnNsYXRlTW9kZUBTbm1wVjJDRW5jb2RlRGVjb2RlQEBNRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wTmVnYXRpdmVSYW5nZVR5cGU6OlNldFVwcGVyQm91bmQobG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VXBwZXJCb3VuZEBTbm1wTmVnYXRpdmVSYW5nZVR5cGVAQFFFQUFYQUVCSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wUG9zaXRpdmVSYW5nZVR5cGU6OlNldFVwcGVyQm91bmQodW5zaWduZWQgbG9uZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VXBwZXJCb3VuZEBTbm1wUG9zaXRpdmVSYW5nZVR5cGVAQFFFQUFYQUVCS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wQ291bnRlcjY0OjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0VmFsdWVAU25tcENvdW50ZXI2NEBAUUVBQVhLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wQ291bnRlcjo6U2V0VmFsdWUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRWYWx1ZUBTbm1wQ291bnRlckBAUUVBQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBHYXVnZTo6U2V0VmFsdWUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRWYWx1ZUBTbm1wR2F1Z2VAQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wSW50ZWdlcjo6U2V0VmFsdWUobG9uZykgX19wdHI2NA0KKz9TZXRWYWx1ZUBTbm1wSW50ZWdlckBAUUVBQVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBJcEFkZHJlc3M6OlNldFZhbHVlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0VmFsdWVAU25tcElwQWRkcmVzc0BAUUVBQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBPYmplY3RJZGVudGlmaWVyOjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFZhbHVlQFNubXBPYmplY3RJZGVudGlmaWVyQEBRRUFBWFBFQktLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBPY3RldFN0cmluZzo6U2V0VmFsdWUodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRWYWx1ZUBTbm1wT2N0ZXRTdHJpbmdAQFFFQUFYUEVCRUtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU25tcE9wYXF1ZTo6U2V0VmFsdWUodW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRWYWx1ZUBTbm1wT3BhcXVlQEBRRUFBWFBFQkVLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBUaW1lVGlja3M6OlNldFZhbHVlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0VmFsdWVAU25tcFRpbWVUaWNrc0BAUUVBQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBVSW50ZWdlcjMyOjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFZhbHVlQFNubXBVSW50ZWdlcjMyQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBFbmNvZGVEZWNvZGU6OlNldFZhckJpbmRMaXN0KGNsYXNzIFNubXBQZHUgJiBfX3B0cjY0LGNsYXNzIFNubXBWYXJCaW5kTGlzdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VmFyQmluZExpc3RAU25tcEVuY29kZURlY29kZUBAVUVBQUhBRUFWU25tcFBkdUBAQUVBVlNubXBWYXJCaW5kTGlzdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wUGR1OjpTZXRWYXJCaW5kTGlzdChjbGFzcyBTbm1wVmFyQmluZExpc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFZhckJpbmRMaXN0QFNubXBQZHVAQFVFQUFIQUVBVlNubXBWYXJCaW5kTGlzdEBAQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIFNubXBDbGFzc0xpYnJhcnk6OlN0YXJ0dXAodm9pZCkNCis/U3RhcnR1cEBTbm1wQ2xhc3NMaWJyYXJ5QEBTQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wT2JqZWN0SWRlbnRpZmllcjo6U3VmZml4KHVuc2lnbmVkIGxvbmcsY2xhc3MgU25tcE9iamVjdElkZW50aWZpZXIgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1N1ZmZpeEBTbm1wT2JqZWN0SWRlbnRpZmllckBAUUVCQUhLQUVBVjFAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgU25tcEltcFRyYW5zcG9ydDo6VHJhbnNwb3J0Rmxvd0NvbnRyb2xPZmYodm9pZCkgX19wdHI2NA0KKz9UcmFuc3BvcnRGbG93Q29udHJvbE9mZkBTbm1wSW1wVHJhbnNwb3J0QEBNRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNubXBJbXBUcmFuc3BvcnQ6OlRyYW5zcG9ydEZsb3dDb250cm9sT24odm9pZCkgX19wdHI2NA0KKz9UcmFuc3BvcnRGbG93Q29udHJvbE9uQFNubXBJbXBUcmFuc3BvcnRAQE1FQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgU25tcEltcFRyYW5zcG9ydDo6VHJhbnNwb3J0UmVjZWl2ZUZyYW1lKGNsYXNzIFNubXBQZHUgJiBfX3B0cjY0LGNsYXNzIFNubXBFcnJvclJlcG9ydCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/VHJhbnNwb3J0UmVjZWl2ZUZyYW1lQFNubXBJbXBUcmFuc3BvcnRAQFVFQUFYQUVBVlNubXBQZHVAQEFFQVZTbm1wRXJyb3JSZXBvcnRAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNubXBJbXBUcmFuc3BvcnQ6OlRyYW5zcG9ydFNlbmRGcmFtZSh1bnNpZ25lZCBsb25nICYgX19wdHI2NCxjbGFzcyBTbm1wUGR1ICYgX19wdHI2NCkgX19wdHI2NA0KKz9UcmFuc3BvcnRTZW5kRnJhbWVAU25tcEltcFRyYW5zcG9ydEBAVUVBQVhBRUFLQUVBVlNubXBQZHVAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNubXBJbXBUcmFuc3BvcnQ6OlRyYW5zcG9ydFNlbnRGcmFtZSh1bnNpZ25lZCBsb25nLGNsYXNzIFNubXBFcnJvclJlcG9ydCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/VHJhbnNwb3J0U2VudEZyYW1lQFNubXBJbXBUcmFuc3BvcnRAQFVFQUFYS0FFQVZTbm1wRXJyb3JSZXBvcnRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNubXBPYmplY3RJZGVudGlmaWVyOjpVblJlcGxpY2F0ZSh1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9VblJlcGxpY2F0ZUBTbm1wT2JqZWN0SWRlbnRpZmllckBATUVBQVhQRUFLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgU25tcE9jdGV0U3RyaW5nOjpVblJlcGxpY2F0ZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9VblJlcGxpY2F0ZUBTbm1wT2N0ZXRTdHJpbmdAQE1FQUFYUEVBRUBaDQorOyB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBVbmljb2RlU3RyaW5nQXBwZW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP1VuaWNvZGVTdHJpbmdBcHBlbmRAQFlBUEVBR1BFQkcwQFoNCis7IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFVuaWNvZGVTdHJpbmdEdXBsaWNhdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9Vbmljb2RlU3RyaW5nRHVwbGljYXRlQEBZQVBFQUdQRUJHQFoNCis7IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgVW5pY29kZVRvRGJjc1N0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP1VuaWNvZGVUb0RiY3NTdHJpbmdAQFlBUEVBRFBFQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgU25tcFRyYW5zcG9ydElwQWRkcmVzczo6VmFsaWRhdGVBZGRyZXNzKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpDQorP1ZhbGlkYXRlQWRkcmVzc0BTbm1wVHJhbnNwb3J0SXBBZGRyZXNzQEBTQUhQRUJES0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBTbm1wVHJhbnNwb3J0SXB4QWRkcmVzczo6VmFsaWRhdGVBZGRyZXNzKGNoYXIgY29uc3QgKiBfX3B0cjY0KQ0KKz9WYWxpZGF0ZUFkZHJlc3NAU25tcFRyYW5zcG9ydElweEFkZHJlc3NAQFNBSFBFQkRAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIFNubXBJbXBTZXNzaW9uOjpWYXJiaW5kc1BlclBkdSh1bnNpZ25lZCBsb25nKQ0KKz9WYXJiaW5kc1BlclBkdUBTbm1wSW1wU2Vzc2lvbkBAU0FLS0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU25tcEltcFNlc3Npb246OldpbmRvd1NpemUodW5zaWduZWQgbG9uZykNCis/V2luZG93U2l6ZUBTbm1wSW1wU2Vzc2lvbkBAU0FLS0BaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgbG9uZyAgU25tcEltcFRyYW5zcG9ydDo6bmV4dF90cmFuc3BvcnRfZnJhbWVfaWQNCis/bmV4dF90cmFuc3BvcnRfZnJhbWVfaWRAU25tcEltcFRyYW5zcG9ydEBAMEtBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIENyaXRpY2FsU2VjdGlvbiAgU25tcEVuY29kZURlY29kZTo6c19Dcml0aWNhbFNlY3Rpb24NCis/c19Dcml0aWNhbFNlY3Rpb25AU25tcEVuY29kZURlY29kZUBAMVZDcml0aWNhbFNlY3Rpb25AQEEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyAgU25tcENsYXNzTGlicmFyeTo6c19SZWZlcmVuY2VDb3VudA0KKz9zX1JlZmVyZW5jZUNvdW50QFNubXBDbGFzc0xpYnJhcnlAQDFKQSBEQVRBDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc25tcGluY2wuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc25tcGluY2wuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY1Njc1NzQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zbm1waW5jbC5kZWYKQEAgLTAsMCArMSwyNjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU05NUElOQ0wuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNOTVBJTkNMLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBXYmVtU25tcENsYXNzT2JqZWN0OjpXYmVtU25tcENsYXNzT2JqZWN0KGNsYXNzIFdiZW1Tbm1wQ2xhc3NPYmplY3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV2JlbVNubXBDbGFzc09iamVjdEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OldiZW1Tbm1wQ2xhc3NPYmplY3QodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MFdiZW1Tbm1wQ2xhc3NPYmplY3RAQFFFQUFAUEVCR0hAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OldiZW1Tbm1wQ2xhc3NPYmplY3Qodm9pZCkgX19wdHI2NA0KKz8/MFdiZW1Tbm1wQ2xhc3NPYmplY3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBXYmVtU25tcEVycm9yT2JqZWN0OjpXYmVtU25tcEVycm9yT2JqZWN0KGNsYXNzIFdiZW1Tbm1wRXJyb3JPYmplY3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV2JlbVNubXBFcnJvck9iamVjdEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdiZW1Tbm1wRXJyb3JPYmplY3Q6OldiZW1Tbm1wRXJyb3JPYmplY3Qodm9pZCkgX19wdHI2NA0KKz8/MFdiZW1Tbm1wRXJyb3JPYmplY3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBXYmVtU25tcFByb3BlcnR5OjpXYmVtU25tcFByb3BlcnR5KGNsYXNzIFdiZW1Tbm1wUHJvcGVydHkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV2JlbVNubXBQcm9wZXJ0eUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdiZW1Tbm1wUHJvcGVydHk6OldiZW1Tbm1wUHJvcGVydHkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV2JlbVNubXBQcm9wZXJ0eUBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBXYmVtU25tcFF1YWxpZmllcjo6V2JlbVNubXBRdWFsaWZpZXIoY2xhc3MgV2JlbVNubXBRdWFsaWZpZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV2JlbVNubXBRdWFsaWZpZXJAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBXYmVtU25tcFF1YWxpZmllcjo6V2JlbVNubXBRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIFNubXBJbnN0YW5jZVR5cGUgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV2JlbVNubXBRdWFsaWZpZXJAQFFFQUFAUEVCR1BFQlZTbm1wSW5zdGFuY2VUeXBlQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgV2JlbVNubXBDbGFzc09iamVjdDo6fldiZW1Tbm1wQ2xhc3NPYmplY3Qodm9pZCkgX19wdHI2NA0KKz8/MVdiZW1Tbm1wQ2xhc3NPYmplY3RAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFdiZW1Tbm1wRXJyb3JPYmplY3Q6On5XYmVtU25tcEVycm9yT2JqZWN0KHZvaWQpIF9fcHRyNjQNCis/PzFXYmVtU25tcEVycm9yT2JqZWN0QEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBXYmVtU25tcFByb3BlcnR5Ojp+V2JlbVNubXBQcm9wZXJ0eSh2b2lkKSBfX3B0cjY0DQorPz8xV2JlbVNubXBQcm9wZXJ0eUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgV2JlbVNubXBRdWFsaWZpZXI6On5XYmVtU25tcFF1YWxpZmllcih2b2lkKSBfX3B0cjY0DQorPz8xV2JlbVNubXBRdWFsaWZpZXJAQFVFQUFAWFoNCis7IHB1YmxpYzogY2xhc3MgV2JlbVNubXBDbGFzc09iamVjdCAmIF9fcHRyNjQgX19jZGVjbCBXYmVtU25tcENsYXNzT2JqZWN0OjpvcGVyYXRvcj0oY2xhc3MgV2JlbVNubXBDbGFzc09iamVjdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRXYmVtU25tcENsYXNzT2JqZWN0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV2JlbVNubXBFcnJvck9iamVjdCAmIF9fcHRyNjQgX19jZGVjbCBXYmVtU25tcEVycm9yT2JqZWN0OjpvcGVyYXRvcj0oY2xhc3MgV2JlbVNubXBFcnJvck9iamVjdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRXYmVtU25tcEVycm9yT2JqZWN0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV2JlbVNubXBQcm9wZXJ0eSAmIF9fcHRyNjQgX19jZGVjbCBXYmVtU25tcFByb3BlcnR5OjpvcGVyYXRvcj0oY2xhc3MgV2JlbVNubXBQcm9wZXJ0eSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRXYmVtU25tcFByb3BlcnR5QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV2JlbVNubXBRdWFsaWZpZXIgJiBfX3B0cjY0IF9fY2RlY2wgV2JlbVNubXBRdWFsaWZpZXI6Om9wZXJhdG9yPShjbGFzcyBXYmVtU25tcFF1YWxpZmllciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRXYmVtU25tcFF1YWxpZmllckBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBjb25zdCAgV2JlbVNubXBDbGFzc09iamVjdDo6YHZmdGFibGUnDQorPz9fN1diZW1Tbm1wQ2xhc3NPYmplY3RAQDZCQA0KKzsgY29uc3QgIFdiZW1Tbm1wRXJyb3JPYmplY3Q6OmB2ZnRhYmxlJw0KKz8/XzdXYmVtU25tcEVycm9yT2JqZWN0QEA2QkANCis7IGNvbnN0ICBXYmVtU25tcFByb3BlcnR5OjpgdmZ0YWJsZScNCis/P183V2JlbVNubXBQcm9wZXJ0eUBANkJADQorOyBjb25zdCAgV2JlbVNubXBRdWFsaWZpZXI6OmB2ZnRhYmxlJw0KKz8/XzdXYmVtU25tcFF1YWxpZmllckBANkJADQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgV2JlbVNubXBDbGFzc09iamVjdDo6QWRkS2V5ZWRQcm9wZXJ0eShjbGFzcyBXYmVtU25tcFByb3BlcnR5ICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRLZXllZFByb3BlcnR5QFdiZW1Tbm1wQ2xhc3NPYmplY3RAQEFFQUFYUEVBVldiZW1Tbm1wUHJvcGVydHlAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OkFkZEtleWVkUHJvcGVydHkodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEtleWVkUHJvcGVydHlAV2JlbVNubXBDbGFzc09iamVjdEBAUUVBQUhQRUFHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV2JlbVNubXBDbGFzc09iamVjdDo6QWRkUHJvcGVydHkodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZFByb3BlcnR5QFdiZW1Tbm1wQ2xhc3NPYmplY3RAQFFFQUFIUEVBR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OkFkZFByb3BlcnR5KGNsYXNzIFdiZW1Tbm1wUHJvcGVydHkgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZFByb3BlcnR5QFdiZW1Tbm1wQ2xhc3NPYmplY3RAQFFFQUFIUEVBVldiZW1Tbm1wUHJvcGVydHlAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OkFkZFF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkUXVhbGlmaWVyQFdiZW1Tbm1wQ2xhc3NPYmplY3RAQFFFQUFIUEVBR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OkFkZFF1YWxpZmllcihjbGFzcyBXYmVtU25tcFF1YWxpZmllciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkUXVhbGlmaWVyQFdiZW1Tbm1wQ2xhc3NPYmplY3RAQFFFQUFIUEVBVldiZW1Tbm1wUXVhbGlmaWVyQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXYmVtU25tcFByb3BlcnR5OjpBZGRRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZFF1YWxpZmllckBXYmVtU25tcFByb3BlcnR5QEBRRUFBSFBFQUdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXYmVtU25tcFByb3BlcnR5OjpBZGRRdWFsaWZpZXIoY2xhc3MgV2JlbVNubXBRdWFsaWZpZXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZFF1YWxpZmllckBXYmVtU25tcFByb3BlcnR5QEBRRUFBSFBFQVZXYmVtU25tcFF1YWxpZmllckBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBXYmVtU25tcENsYXNzT2JqZWN0OjpDaGVjayhjbGFzcyBXYmVtU25tcEVycm9yT2JqZWN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9DaGVja0BXYmVtU25tcENsYXNzT2JqZWN0QEBVRUFBSEFFQVZXYmVtU25tcEVycm9yT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIFdiZW1Tbm1wUHJvcGVydHk6OkNoZWNrKGNsYXNzIFdiZW1Tbm1wRXJyb3JPYmplY3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoZWNrQFdiZW1Tbm1wUHJvcGVydHlAQFVFQUFIQUVBVldiZW1Tbm1wRXJyb3JPYmplY3RAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXYmVtU25tcENsYXNzT2JqZWN0OjpEZWxldGVQcm9wZXJ0eSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlUHJvcGVydHlAV2JlbVNubXBDbGFzc09iamVjdEBAUUVBQVhQRUFHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV2JlbVNubXBQcm9wZXJ0eTo6RW5jb2RlKHN0cnVjdCB0YWdWQVJJQU5UIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBTbm1wT2JqZWN0SWRlbnRpZmllciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RW5jb2RlQFdiZW1Tbm1wUHJvcGVydHlAQFFFQUFIQUVCVXRhZ1ZBUklBTlRAQEFFQVZTbm1wT2JqZWN0SWRlbnRpZmllckBAQFoNCis7IHB1YmxpYzogY2xhc3MgV2JlbVNubXBQcm9wZXJ0eSAqIF9fcHRyNjQgX19jZGVjbCBXYmVtU25tcENsYXNzT2JqZWN0OjpGaW5kS2V5UHJvcGVydHkodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0ZpbmRLZXlQcm9wZXJ0eUBXYmVtU25tcENsYXNzT2JqZWN0QEBRRUJBUEVBVldiZW1Tbm1wUHJvcGVydHlAQFBFQUdAWg0KKzsgcHVibGljOiBjbGFzcyBXYmVtU25tcFByb3BlcnR5ICogX19wdHI2NCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OkZpbmRQcm9wZXJ0eSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RmluZFByb3BlcnR5QFdiZW1Tbm1wQ2xhc3NPYmplY3RAQFFFQkFQRUFWV2JlbVNubXBQcm9wZXJ0eUBAUEVBR0BaDQorOyBwdWJsaWM6IGNsYXNzIFdiZW1Tbm1wUXVhbGlmaWVyICogX19wdHI2NCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OkZpbmRRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0ZpbmRRdWFsaWZpZXJAV2JlbVNubXBDbGFzc09iamVjdEBAUUVCQVBFQVZXYmVtU25tcFF1YWxpZmllckBAUEVBR0BaDQorOyBwdWJsaWM6IGNsYXNzIFdiZW1Tbm1wUXVhbGlmaWVyICogX19wdHI2NCBfX2NkZWNsIFdiZW1Tbm1wUHJvcGVydHk6OkZpbmRRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0ZpbmRRdWFsaWZpZXJAV2JlbVNubXBQcm9wZXJ0eUBAUUVCQVBFQVZXYmVtU25tcFF1YWxpZmllckBAUEVBR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OkdldChjbGFzcyBXYmVtU25tcEVycm9yT2JqZWN0ICYgX19wdHI2NCxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0QFdiZW1Tbm1wQ2xhc3NPYmplY3RAQFFFQUFIQUVBVldiZW1Tbm1wRXJyb3JPYmplY3RAQFBFQVVJV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgV2JlbVNubXBQcm9wZXJ0eTo6R2V0Q2ltVHlwZSh2b2lkKSBfX3B0cjY0DQorP0dldENpbVR5cGVAV2JlbVNubXBQcm9wZXJ0eUBAUUVBQUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBXYmVtU25tcENsYXNzT2JqZWN0OjpHZXRDbGFzc05hbWVXKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0Q2xhc3NOYW1lV0BXYmVtU25tcENsYXNzT2JqZWN0QEBRRUJBUEVBR1haDQorOyBwdWJsaWM6IGNsYXNzIFdiZW1Tbm1wUHJvcGVydHkgKiBfX3B0cjY0IF9fY2RlY2wgV2JlbVNubXBDbGFzc09iamVjdDo6R2V0Q3VycmVudFByb3BlcnR5KHZvaWQpIF9fcHRyNjQNCis/R2V0Q3VycmVudFByb3BlcnR5QFdiZW1Tbm1wQ2xhc3NPYmplY3RAQFFFQUFQRUFWV2JlbVNubXBQcm9wZXJ0eUBAWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFdiZW1Tbm1wUHJvcGVydHk6OkdldEhhbmRsZSh2b2lkKSBfX3B0cjY0DQorP0dldEhhbmRsZUBXYmVtU25tcFByb3BlcnR5QEBRRUFBSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBXYmVtU25tcFByb3BlcnR5OjpHZXRLZXlPcmRlcih2b2lkKSBfX3B0cjY0DQorP0dldEtleU9yZGVyQFdiZW1Tbm1wUHJvcGVydHlAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OkdldEtleVByb3BlcnR5Q291bnQodm9pZCkgX19wdHI2NA0KKz9HZXRLZXlQcm9wZXJ0eUNvdW50QFdiZW1Tbm1wQ2xhc3NPYmplY3RAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgV2JlbVNubXBFcnJvck9iamVjdDo6R2V0TWVzc2FnZVcodm9pZCkgX19wdHI2NA0KKz9HZXRNZXNzYWdlV0BXYmVtU25tcEVycm9yT2JqZWN0QEBRRUFBUEVBR1haDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBXYmVtU25tcENsYXNzT2JqZWN0OjpHZXRNb3NDbGFzc09iamVjdChjbGFzcyBXYmVtU25tcEVycm9yT2JqZWN0ICYgX19wdHI2NCxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TW9zQ2xhc3NPYmplY3RAV2JlbVNubXBDbGFzc09iamVjdEBAQUVBQUhBRUFWV2JlbVNubXBFcnJvck9iamVjdEBAUEVBVUlXYmVtQ2xhc3NPYmplY3RAQEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBXYmVtU25tcENsYXNzT2JqZWN0OjpHZXRNb3NDbGFzc09iamVjdFByb3BlcnRpZXMoY2xhc3MgV2JlbVNubXBFcnJvck9iamVjdCAmIF9fcHRyNjQsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE1vc0NsYXNzT2JqZWN0UHJvcGVydGllc0BXYmVtU25tcENsYXNzT2JqZWN0QEBBRUFBSEFFQVZXYmVtU25tcEVycm9yT2JqZWN0QEBQRUFVSVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OkdldE1vc0NsYXNzT2JqZWN0UHJvcGVydHlRdWFsaWZpZXJzKGNsYXNzIFdiZW1Tbm1wRXJyb3JPYmplY3QgJiBfX3B0cjY0LGNsYXNzIFdiZW1Tbm1wUHJvcGVydHkgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbVF1YWxpZmllclNldCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TW9zQ2xhc3NPYmplY3RQcm9wZXJ0eVF1YWxpZmllcnNAV2JlbVNubXBDbGFzc09iamVjdEBAQUVBQUhBRUFWV2JlbVNubXBFcnJvck9iamVjdEBAUEVBVldiZW1Tbm1wUHJvcGVydHlAQFBFQVVJV2JlbVF1YWxpZmllclNldEBAQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OkdldE1vc0NsYXNzT2JqZWN0UXVhbGlmaWVycyhjbGFzcyBXYmVtU25tcEVycm9yT2JqZWN0ICYgX19wdHI2NCxzdHJ1Y3QgSVdiZW1RdWFsaWZpZXJTZXQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE1vc0NsYXNzT2JqZWN0UXVhbGlmaWVyc0BXYmVtU25tcENsYXNzT2JqZWN0QEBBRUFBSEFFQVZXYmVtU25tcEVycm9yT2JqZWN0QEBQRUFVSVdiZW1RdWFsaWZpZXJTZXRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFdiZW1Tbm1wUHJvcGVydHk6OkdldE5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXROYW1lQFdiZW1Tbm1wUHJvcGVydHlAQFFFQkFQRUFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgV2JlbVNubXBRdWFsaWZpZXI6OkdldE5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXROYW1lQFdiZW1Tbm1wUXVhbGlmaWVyQEBRRUJBUEVBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBXYmVtU25tcENsYXNzT2JqZWN0OjpHZXROdW1iZXJPZkFjY2Vzc2libGUodm9pZCkgX19wdHI2NA0KKz9HZXROdW1iZXJPZkFjY2Vzc2libGVAV2JlbVNubXBDbGFzc09iamVjdEBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgV2JlbVNubXBDbGFzc09iamVjdDo6R2V0UHJvcGVydHlDb3VudCh2b2lkKSBfX3B0cjY0DQorP0dldFByb3BlcnR5Q291bnRAV2JlbVNubXBDbGFzc09iamVjdEBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgV2JlbVNubXBDbGFzc09iamVjdDo6R2V0UXVhbGlmaWVyQ291bnQodm9pZCkgX19wdHI2NA0KKz9HZXRRdWFsaWZpZXJDb3VudEBXYmVtU25tcENsYXNzT2JqZWN0QEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBXYmVtU25tcFByb3BlcnR5OjpHZXRRdWFsaWZpZXJDb3VudCh2b2lkKSBfX3B0cjY0DQorP0dldFF1YWxpZmllckNvdW50QFdiZW1Tbm1wUHJvcGVydHlAQFFFQUFLWFoNCis7IHB1YmxpYzogZW51bSB0YWdfV0JFTVNOTVBTVEFUVVMgIF9fY2RlY2wgV2JlbVNubXBFcnJvck9iamVjdDo6R2V0U3RhdHVzKHZvaWQpIF9fcHRyNjQNCis/R2V0U3RhdHVzQFdiZW1Tbm1wRXJyb3JPYmplY3RAQFFFQUE/QVc0dGFnX1dCRU1TTk1QU1RBVFVTQEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXYmVtU25tcFByb3BlcnR5OjpHZXRUYWcodm9pZCkgX19wdHI2NA0KKz9HZXRUYWdAV2JlbVNubXBQcm9wZXJ0eUBAUUVBQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgV2JlbVNubXBQcm9wZXJ0eTo6R2V0VGV4dHVhbENvbnZlbnRpb24odm9pZCkgX19wdHI2NA0KKz9HZXRUZXh0dWFsQ29udmVudGlvbkBXYmVtU25tcFByb3BlcnR5QEBRRUFBS1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdiZW1Tbm1wUHJvcGVydHk6OkdldFZhbHVlKHN0cnVjdCB0YWdWQVJJQU5UICYgX19wdHI2NCxsb25nICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBXYmVtU25tcFByb3BlcnR5QEBRRUJBSEFFQVV0YWdWQVJJQU5UQEBBRUFKQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcEluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBXYmVtU25tcFByb3BlcnR5OjpHZXRWYWx1ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlQFdiZW1Tbm1wUHJvcGVydHlAQFFFQkFQRUFWU25tcEluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV2JlbVNubXBRdWFsaWZpZXI6OkdldFZhbHVlKHN0cnVjdCB0YWdWQVJJQU5UICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBXYmVtU25tcFF1YWxpZmllckBAUUVCQUhBRUFVdGFnVkFSSUFOVEBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcEluc3RhbmNlVHlwZSAqIF9fcHRyNjQgX19jZGVjbCBXYmVtU25tcFF1YWxpZmllcjo6R2V0VmFsdWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZUBXYmVtU25tcFF1YWxpZmllckBAUUVCQVBFQVZTbm1wSW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIFdiZW1Tbm1wUHJvcGVydHk6OkdldFZhbHVlVmFyaWFudEVuY29kZWRUeXBlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0VmFsdWVWYXJpYW50RW5jb2RlZFR5cGVAV2JlbVNubXBQcm9wZXJ0eUBAUUVCQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIFdiZW1Tbm1wUHJvcGVydHk6OkdldFZhbHVlVmFyaWFudFR5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRWYWx1ZVZhcmlhbnRUeXBlQFdiZW1Tbm1wUHJvcGVydHlAQFFFQkFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX19jZGVjbCBXYmVtU25tcFF1YWxpZmllcjo6R2V0VmFsdWVWYXJpYW50VHlwZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldFZhbHVlVmFyaWFudFR5cGVAV2JlbVNubXBRdWFsaWZpZXJAQFFFQkFHWFoNCis7IHB1YmxpYzogZW51bSB0YWdfV0JFTVNUQVRVUyAgX19jZGVjbCBXYmVtU25tcEVycm9yT2JqZWN0OjpHZXRXYmVtU3RhdHVzKHZvaWQpIF9fcHRyNjQNCis/R2V0V2JlbVN0YXR1c0BXYmVtU25tcEVycm9yT2JqZWN0QEBRRUFBP0FXNHRhZ19XQkVNU1RBVFVTQEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXYmVtU25tcENsYXNzT2JqZWN0OjpHb3RvUHJvcGVydHkoY2xhc3MgV2JlbVNubXBQcm9wZXJ0eSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R290b1Byb3BlcnR5QFdiZW1Tbm1wQ2xhc3NPYmplY3RAQFFFQUFIUEVBVldiZW1Tbm1wUHJvcGVydHlAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OklzQ2xhc3Modm9pZCkgX19wdHI2NA0KKz9Jc0NsYXNzQFdiZW1Tbm1wQ2xhc3NPYmplY3RAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV2JlbVNubXBQcm9wZXJ0eTo6SXNLZXkodm9pZCkgX19wdHI2NA0KKz9Jc0tleUBXYmVtU25tcFByb3BlcnR5QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OklzS2V5ZWQodm9pZCkgX19wdHI2NA0KKz9Jc0tleWVkQFdiZW1Tbm1wQ2xhc3NPYmplY3RAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV2JlbVNubXBQcm9wZXJ0eTo6SXNOdWxsKHZvaWQpIF9fcHRyNjQNCis/SXNOdWxsQFdiZW1Tbm1wUHJvcGVydHlAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV2JlbVNubXBRdWFsaWZpZXI6OklzUHJvcGFnYXRhYmxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNQcm9wYWdhdGFibGVAV2JlbVNubXBRdWFsaWZpZXJAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV2JlbVNubXBDbGFzc09iamVjdDo6SXNSZWFkYWJsZSh2b2lkKSBfX3B0cjY0DQorP0lzUmVhZGFibGVAV2JlbVNubXBDbGFzc09iamVjdEBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXYmVtU25tcFByb3BlcnR5OjpJc1JlYWRhYmxlKHZvaWQpIF9fcHRyNjQNCis/SXNSZWFkYWJsZUBXYmVtU25tcFByb3BlcnR5QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdiZW1Tbm1wUHJvcGVydHk6OklzU05NUFYxVHlwZSh2b2lkKSBfX3B0cjY0DQorP0lzU05NUFYxVHlwZUBXYmVtU25tcFByb3BlcnR5QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdiZW1Tbm1wUHJvcGVydHk6OklzU05NUFYyQ1R5cGUodm9pZCkgX19wdHI2NA0KKz9Jc1NOTVBWMkNUeXBlQFdiZW1Tbm1wUHJvcGVydHlAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV2JlbVNubXBDbGFzc09iamVjdDo6SXNTaW5nbGV0b24odm9pZCkgX19wdHI2NA0KKz9Jc1NpbmdsZXRvbkBXYmVtU25tcENsYXNzT2JqZWN0QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OklzVmlydHVhbCh2b2lkKSBfX3B0cjY0DQorP0lzVmlydHVhbEBXYmVtU25tcENsYXNzT2JqZWN0QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdiZW1Tbm1wUHJvcGVydHk6OklzVmlydHVhbEtleSh2b2lkKSBfX3B0cjY0DQorP0lzVmlydHVhbEtleUBXYmVtU25tcFByb3BlcnR5QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OklzV3JpdGFibGUodm9pZCkgX19wdHI2NA0KKz9Jc1dyaXRhYmxlQFdiZW1Tbm1wQ2xhc3NPYmplY3RAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV2JlbVNubXBQcm9wZXJ0eTo6SXNXcml0YWJsZSh2b2lkKSBfX3B0cjY0DQorP0lzV3JpdGFibGVAV2JlbVNubXBQcm9wZXJ0eUBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXYmVtU25tcENsYXNzT2JqZWN0OjpNZXJnZShjbGFzcyBXYmVtU25tcEVycm9yT2JqZWN0ICYgX19wdHI2NCxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP01lcmdlQFdiZW1Tbm1wQ2xhc3NPYmplY3RAQFFFQUFIQUVBVldiZW1Tbm1wRXJyb3JPYmplY3RAQFBFQVVJV2JlbUNsYXNzT2JqZWN0QEBIQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6Ok1lcmdlTW9zQ2xhc3NPYmplY3QoY2xhc3MgV2JlbVNubXBFcnJvck9iamVjdCAmIF9fcHRyNjQsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9NZXJnZU1vc0NsYXNzT2JqZWN0QFdiZW1Tbm1wQ2xhc3NPYmplY3RAQEFFQUFIQUVBVldiZW1Tbm1wRXJyb3JPYmplY3RAQFBFQVVJV2JlbUNsYXNzT2JqZWN0QEBIQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6Ok1lcmdlTW9zQ2xhc3NPYmplY3RQcm9wZXJ0aWVzKGNsYXNzIFdiZW1Tbm1wRXJyb3JPYmplY3QgJiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/TWVyZ2VNb3NDbGFzc09iamVjdFByb3BlcnRpZXNAV2JlbVNubXBDbGFzc09iamVjdEBAQUVBQUhBRUFWV2JlbVNubXBFcnJvck9iamVjdEBAUEVBVUlXYmVtQ2xhc3NPYmplY3RAQEhAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgV2JlbVNubXBDbGFzc09iamVjdDo6TWVyZ2VNb3NDbGFzc09iamVjdFByb3BlcnR5UXVhbGlmaWVycyhjbGFzcyBXYmVtU25tcEVycm9yT2JqZWN0ICYgX19wdHI2NCxjbGFzcyBXYmVtU25tcFByb3BlcnR5ICogX19wdHI2NCxzdHJ1Y3QgSVdiZW1RdWFsaWZpZXJTZXQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP01lcmdlTW9zQ2xhc3NPYmplY3RQcm9wZXJ0eVF1YWxpZmllcnNAV2JlbVNubXBDbGFzc09iamVjdEBAQUVBQUhBRUFWV2JlbVNubXBFcnJvck9iamVjdEBAUEVBVldiZW1Tbm1wUHJvcGVydHlAQFBFQVVJV2JlbVF1YWxpZmllclNldEBAQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6Ok1lcmdlTW9zQ2xhc3NPYmplY3RRdWFsaWZpZXJzKGNsYXNzIFdiZW1Tbm1wRXJyb3JPYmplY3QgJiBfX3B0cjY0LHN0cnVjdCBJV2JlbVF1YWxpZmllclNldCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TWVyZ2VNb3NDbGFzc09iamVjdFF1YWxpZmllcnNAV2JlbVNubXBDbGFzc09iamVjdEBAQUVBQUhBRUFWV2JlbVNubXBFcnJvck9iamVjdEBAUEVBVUlXYmVtUXVhbGlmaWVyU2V0QEBAWg0KKzsgcHVibGljOiBjbGFzcyBXYmVtU25tcFByb3BlcnR5ICogX19wdHI2NCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6Ok5leHRLZXlQcm9wZXJ0eSh2b2lkKSBfX3B0cjY0DQorP05leHRLZXlQcm9wZXJ0eUBXYmVtU25tcENsYXNzT2JqZWN0QEBRRUFBUEVBVldiZW1Tbm1wUHJvcGVydHlAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFdiZW1Tbm1wUHJvcGVydHkgKiBfX3B0cjY0IF9fY2RlY2wgV2JlbVNubXBDbGFzc09iamVjdDo6TmV4dFByb3BlcnR5KHZvaWQpIF9fcHRyNjQNCis/TmV4dFByb3BlcnR5QFdiZW1Tbm1wQ2xhc3NPYmplY3RAQFFFQUFQRUFWV2JlbVNubXBQcm9wZXJ0eUBAWFoNCis7IHB1YmxpYzogY2xhc3MgV2JlbVNubXBRdWFsaWZpZXIgKiBfX3B0cjY0IF9fY2RlY2wgV2JlbVNubXBDbGFzc09iamVjdDo6TmV4dFF1YWxpZmllcih2b2lkKSBfX3B0cjY0DQorP05leHRRdWFsaWZpZXJAV2JlbVNubXBDbGFzc09iamVjdEBAUUVBQVBFQVZXYmVtU25tcFF1YWxpZmllckBAWFoNCis7IHB1YmxpYzogY2xhc3MgV2JlbVNubXBRdWFsaWZpZXIgKiBfX3B0cjY0IF9fY2RlY2wgV2JlbVNubXBQcm9wZXJ0eTo6TmV4dFF1YWxpZmllcih2b2lkKSBfX3B0cjY0DQorP05leHRRdWFsaWZpZXJAV2JlbVNubXBQcm9wZXJ0eUBAUUVBQVBFQVZXYmVtU25tcFF1YWxpZmllckBAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OlJlc2V0S2V5UHJvcGVydHkodm9pZCkgX19wdHI2NA0KKz9SZXNldEtleVByb3BlcnR5QFdiZW1Tbm1wQ2xhc3NPYmplY3RAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OlJlc2V0UHJvcGVydHkodm9pZCkgX19wdHI2NA0KKz9SZXNldFByb3BlcnR5QFdiZW1Tbm1wQ2xhc3NPYmplY3RAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OlJlc2V0UXVhbGlmaWVyKHZvaWQpIF9fcHRyNjQNCis/UmVzZXRRdWFsaWZpZXJAV2JlbVNubXBDbGFzc09iamVjdEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV2JlbVNubXBQcm9wZXJ0eTo6UmVzZXRRdWFsaWZpZXIodm9pZCkgX19wdHI2NA0KKz9SZXNldFF1YWxpZmllckBXYmVtU25tcFByb3BlcnR5QEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OlNldChjbGFzcyBXYmVtU25tcEVycm9yT2JqZWN0ICYgX19wdHI2NCxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1NldEBXYmVtU25tcENsYXNzT2JqZWN0QEBRRUFBSEFFQVZXYmVtU25tcEVycm9yT2JqZWN0QEBQRUFVSVdiZW1DbGFzc09iamVjdEBASEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXYmVtU25tcFByb3BlcnR5OjpTZXRIYW5kbGUobG9uZykgX19wdHI2NA0KKz9TZXRIYW5kbGVAV2JlbVNubXBQcm9wZXJ0eUBAUUVBQVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OlNldElzQ2xhc3MoaW50KSBfX3B0cjY0DQorP1NldElzQ2xhc3NAV2JlbVNubXBDbGFzc09iamVjdEBAUUVBQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdiZW1Tbm1wUHJvcGVydHk6OlNldEtleShpbnQpIF9fcHRyNjQNCis/U2V0S2V5QFdiZW1Tbm1wUHJvcGVydHlAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXYmVtU25tcFByb3BlcnR5OjpTZXRLZXlPcmRlcih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldEtleU9yZGVyQFdiZW1Tbm1wUHJvcGVydHlAQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXYmVtU25tcENsYXNzT2JqZWN0OjpTZXRLZXllZChpbnQpIF9fcHRyNjQNCis/U2V0S2V5ZWRAV2JlbVNubXBDbGFzc09iamVjdEBAUUVBQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdiZW1Tbm1wRXJyb3JPYmplY3Q6OlNldE1lc3NhZ2UodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldE1lc3NhZ2VAV2JlbVNubXBFcnJvck9iamVjdEBAUUVBQVhQRUFHQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OlNldE1vc0NsYXNzT2JqZWN0KGNsYXNzIFdiZW1Tbm1wRXJyb3JPYmplY3QgJiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/U2V0TW9zQ2xhc3NPYmplY3RAV2JlbVNubXBDbGFzc09iamVjdEBAQUVBQUhBRUFWV2JlbVNubXBFcnJvck9iamVjdEBAUEVBVUlXYmVtQ2xhc3NPYmplY3RAQEhAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgV2JlbVNubXBDbGFzc09iamVjdDo6U2V0TW9zQ2xhc3NPYmplY3RQcm9wZXJ0aWVzKGNsYXNzIFdiZW1Tbm1wRXJyb3JPYmplY3QgJiBfX3B0cjY0LHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/U2V0TW9zQ2xhc3NPYmplY3RQcm9wZXJ0aWVzQFdiZW1Tbm1wQ2xhc3NPYmplY3RAQEFFQUFIQUVBVldiZW1Tbm1wRXJyb3JPYmplY3RAQFBFQVVJV2JlbUNsYXNzT2JqZWN0QEBIQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OlNldE1vc0NsYXNzT2JqZWN0UHJvcGVydHlRdWFsaWZpZXJzKGNsYXNzIFdiZW1Tbm1wRXJyb3JPYmplY3QgJiBfX3B0cjY0LGNsYXNzIFdiZW1Tbm1wUHJvcGVydHkgKiBfX3B0cjY0LHN0cnVjdCBJV2JlbVF1YWxpZmllclNldCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0TW9zQ2xhc3NPYmplY3RQcm9wZXJ0eVF1YWxpZmllcnNAV2JlbVNubXBDbGFzc09iamVjdEBAQUVBQUhBRUFWV2JlbVNubXBFcnJvck9iamVjdEBAUEVBVldiZW1Tbm1wUHJvcGVydHlAQFBFQVVJV2JlbVF1YWxpZmllclNldEBAQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OlNldE1vc0NsYXNzT2JqZWN0UXVhbGlmaWVycyhjbGFzcyBXYmVtU25tcEVycm9yT2JqZWN0ICYgX19wdHI2NCxzdHJ1Y3QgSVdiZW1RdWFsaWZpZXJTZXQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldE1vc0NsYXNzT2JqZWN0UXVhbGlmaWVyc0BXYmVtU25tcENsYXNzT2JqZWN0QEBBRUFBSEFFQVZXYmVtU25tcEVycm9yT2JqZWN0QEBQRUFVSVdiZW1RdWFsaWZpZXJTZXRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXYmVtU25tcENsYXNzT2JqZWN0OjpTZXROdW1iZXJPZkFjY2Vzc2libGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXROdW1iZXJPZkFjY2Vzc2libGVAV2JlbVNubXBDbGFzc09iamVjdEBAUUVBQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OlNldFJlYWRhYmxlKGludCkgX19wdHI2NA0KKz9TZXRSZWFkYWJsZUBXYmVtU25tcENsYXNzT2JqZWN0QEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV2JlbVNubXBQcm9wZXJ0eTo6U2V0UmVhZGFibGUoaW50KSBfX3B0cjY0DQorP1NldFJlYWRhYmxlQFdiZW1Tbm1wUHJvcGVydHlAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBXYmVtU25tcENsYXNzT2JqZWN0OjpTZXRTaW5nbGV0b24oaW50KSBfX3B0cjY0DQorP1NldFNpbmdsZXRvbkBXYmVtU25tcENsYXNzT2JqZWN0QEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV2JlbVNubXBFcnJvck9iamVjdDo6U2V0U3RhdHVzKGVudW0gdGFnX1dCRU1TTk1QU1RBVFVTKSBfX3B0cjY0DQorP1NldFN0YXR1c0BXYmVtU25tcEVycm9yT2JqZWN0QEBRRUFBWFc0dGFnX1dCRU1TTk1QU1RBVFVTQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV2JlbVNubXBQcm9wZXJ0eTo6U2V0VGFnKGludCkgX19wdHI2NA0KKz9TZXRUYWdAV2JlbVNubXBQcm9wZXJ0eUBAUUVBQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdiZW1Tbm1wUHJvcGVydHk6OlNldFRleHR1YWxDb252ZW50aW9uKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0VGV4dHVhbENvbnZlbnRpb25AV2JlbVNubXBQcm9wZXJ0eUBAUUVBQVhLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV2JlbVNubXBQcm9wZXJ0eTo6U2V0VmFsdWUoc3RydWN0IHRhZ1ZBUklBTlQgY29uc3QgJiBfX3B0cjY0LGxvbmcgY29uc3QgJiBfX3B0cjY0LGVudW0gV2JlbVByb3BlcnR5VmFsdWVDaGVjaykgX19wdHI2NA0KKz9TZXRWYWx1ZUBXYmVtU25tcFByb3BlcnR5QEBRRUFBSEFFQlV0YWdWQVJJQU5UQEBBRUJKVzRXYmVtUHJvcGVydHlWYWx1ZUNoZWNrQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXYmVtU25tcFByb3BlcnR5OjpTZXRWYWx1ZShzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fcHRyNjQsY2xhc3MgU25tcFZhbHVlIGNvbnN0ICogX19wdHI2NCxlbnVtIFdiZW1Qcm9wZXJ0eVZhbHVlQ2hlY2spIF9fcHRyNjQNCis/U2V0VmFsdWVAV2JlbVNubXBQcm9wZXJ0eUBAUUVBQUhQRUFVSVdiZW1DbGFzc09iamVjdEBAUEVCVlNubXBWYWx1ZUBAVzRXYmVtUHJvcGVydHlWYWx1ZUNoZWNrQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXYmVtU25tcFByb3BlcnR5OjpTZXRWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsZW51bSBXYmVtUHJvcGVydHlWYWx1ZUNoZWNrKSBfX3B0cjY0DQorP1NldFZhbHVlQFdiZW1Tbm1wUHJvcGVydHlAQFFFQUFIUEVCR1c0V2JlbVByb3BlcnR5VmFsdWVDaGVja0BAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV2JlbVNubXBQcm9wZXJ0eTo6U2V0VmFsdWUoY2xhc3MgU25tcEluc3RhbmNlVHlwZSBjb25zdCAqIF9fcHRyNjQsZW51bSBXYmVtUHJvcGVydHlWYWx1ZUNoZWNrKSBfX3B0cjY0DQorP1NldFZhbHVlQFdiZW1Tbm1wUHJvcGVydHlAQFFFQUFIUEVCVlNubXBJbnN0YW5jZVR5cGVAQFc0V2JlbVByb3BlcnR5VmFsdWVDaGVja0BAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV2JlbVNubXBQcm9wZXJ0eTo6U2V0VmFsdWUoY2xhc3MgU25tcFZhbHVlIGNvbnN0ICogX19wdHI2NCxlbnVtIFdiZW1Qcm9wZXJ0eVZhbHVlQ2hlY2spIF9fcHRyNjQNCis/U2V0VmFsdWVAV2JlbVNubXBQcm9wZXJ0eUBAUUVBQUhQRUJWU25tcFZhbHVlQEBXNFdiZW1Qcm9wZXJ0eVZhbHVlQ2hlY2tAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdiZW1Tbm1wUXVhbGlmaWVyOjpTZXRWYWx1ZShzdHJ1Y3QgdGFnVkFSSUFOVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VmFsdWVAV2JlbVNubXBRdWFsaWZpZXJAQFFFQUFIQUVCVXRhZ1ZBUklBTlRAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdiZW1Tbm1wUXVhbGlmaWVyOjpTZXRWYWx1ZShzdHJ1Y3QgSVdiZW1RdWFsaWZpZXJTZXQgKiBfX3B0cjY0LGNsYXNzIFNubXBJbnN0YW5jZVR5cGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFZhbHVlQFdiZW1Tbm1wUXVhbGlmaWVyQEBRRUFBSFBFQVVJV2JlbVF1YWxpZmllclNldEBAQUVCVlNubXBJbnN0YW5jZVR5cGVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdiZW1Tbm1wUXVhbGlmaWVyOjpTZXRWYWx1ZShjbGFzcyBTbm1wSW5zdGFuY2VUeXBlIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWYWx1ZUBXYmVtU25tcFF1YWxpZmllckBAUUVBQUhQRUJWU25tcEluc3RhbmNlVHlwZUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OlNldFZpcnR1YWwoaW50KSBfX3B0cjY0DQorP1NldFZpcnR1YWxAV2JlbVNubXBDbGFzc09iamVjdEBAUUVBQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdiZW1Tbm1wUHJvcGVydHk6OlNldFZpcnR1YWxLZXkoaW50KSBfX3B0cjY0DQorP1NldFZpcnR1YWxLZXlAV2JlbVNubXBQcm9wZXJ0eUBAUUVBQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdiZW1Tbm1wRXJyb3JPYmplY3Q6OlNldFdiZW1TdGF0dXMoZW51bSB0YWdfV0JFTVNUQVRVUykgX19wdHI2NA0KKz9TZXRXYmVtU3RhdHVzQFdiZW1Tbm1wRXJyb3JPYmplY3RAQFFFQUFYVzR0YWdfV0JFTVNUQVRVU0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdiZW1Tbm1wQ2xhc3NPYmplY3Q6OlNldFdyaXRhYmxlKGludCkgX19wdHI2NA0KKz9TZXRXcml0YWJsZUBXYmVtU25tcENsYXNzT2JqZWN0QEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV2JlbVNubXBQcm9wZXJ0eTo6U2V0V3JpdGFibGUoaW50KSBfX3B0cjY0DQorP1NldFdyaXRhYmxlQFdiZW1Tbm1wUHJvcGVydHlAQFFFQUFYSEBaDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zbm1wbWliLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NubXBtaWIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRjZDhlZWYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zbm1wbWliLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNOTVBNSUIuZXhlDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNOTVBNSUIuZXhlDQorRVhQT1JUUw0KK1NubXBFeHRlbnNpb25Jbml0DQorU25tcEV4dGVuc2lvbk1vbml0b3INCitTbm1wRXh0ZW5zaW9uUXVlcnkNCitTbm1wRXh0ZW5zaW9uVHJhcA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NubXBzbWlyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NubXBzbWlyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYWUyNWM1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc25tcHNtaXIuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU05NUFNNSVIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNOTVBTTUlSLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NubXBzbmFwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NubXBzbmFwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZGFkMzgzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc25tcHNuYXAuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU25tcFNuYXAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNubXBTbmFwLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NubXBzdHVwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NubXBzdHVwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNDFiZGYwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc25tcHN0dXAuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBzbm1wc3R1cC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgc25tcHN0dXAuZGxsDQorRVhQT1JUUw0KK0RsbFJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc25tcHRocmQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc25tcHRocmQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMxOGYyNWQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zbm1wdGhyZC5kZWYKQEAgLTAsMCArMSwxNjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU05NUFRIUkQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNOTVBUSFJELmRsbA0KK0VYUE9SVFMNCis7IHByb3RlY3RlZDogX19jZGVjbCBTbm1wQWJzdHJhY3RUYXNrT2JqZWN0OjpTbm1wQWJzdHJhY3RUYXNrT2JqZWN0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNubXBBYnN0cmFjdFRhc2tPYmplY3RAQElFQUFAUEVCRzBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wQWJzdHJhY3RUYXNrT2JqZWN0OjpTbm1wQWJzdHJhY3RUYXNrT2JqZWN0KGNsYXNzIFNubXBBYnN0cmFjdFRhc2tPYmplY3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcEFic3RyYWN0VGFza09iamVjdEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBFdmVudE9iamVjdDo6U25tcEV2ZW50T2JqZWN0KGNsYXNzIFNubXBFdmVudE9iamVjdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wRXZlbnRPYmplY3RAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wRXZlbnRPYmplY3Q6OlNubXBFdmVudE9iamVjdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBTbm1wRXZlbnRPYmplY3RAQFFFQUFAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFRhc2tPYmplY3Q6OlNubXBUYXNrT2JqZWN0KGNsYXNzIFNubXBUYXNrT2JqZWN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFNubXBUYXNrT2JqZWN0QEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgU25tcFRhc2tPYmplY3Q6OlNubXBUYXNrT2JqZWN0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBTbm1wVGFza09iamVjdEBAUUVBQUBQRUJHMDBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBTbm1wVGhyZWFkT2JqZWN0OjpTbm1wVGhyZWFkT2JqZWN0KGNsYXNzIFNubXBUaHJlYWRPYmplY3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wU25tcFRocmVhZE9iamVjdEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFNubXBUaHJlYWRPYmplY3Q6OlNubXBUaHJlYWRPYmplY3QoY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFNubXBUaHJlYWRPYmplY3RAQFFFQUFAUEVCREtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcEFic3RyYWN0VGFza09iamVjdDo6flNubXBBYnN0cmFjdFRhc2tPYmplY3Qodm9pZCkgX19wdHI2NA0KKz8/MVNubXBBYnN0cmFjdFRhc2tPYmplY3RAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNubXBFdmVudE9iamVjdDo6flNubXBFdmVudE9iamVjdCh2b2lkKSBfX3B0cjY0DQorPz8xU25tcEV2ZW50T2JqZWN0QEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTbm1wVGFza09iamVjdDo6flNubXBUYXNrT2JqZWN0KHZvaWQpIF9fcHRyNjQNCis/PzFTbm1wVGFza09iamVjdEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU25tcFRocmVhZE9iamVjdDo6flNubXBUaHJlYWRPYmplY3Qodm9pZCkgX19wdHI2NA0KKz8/MVNubXBUaHJlYWRPYmplY3RAQFVFQUFAWFoNCis7IHB1YmxpYzogY2xhc3MgU25tcEFic3RyYWN0VGFza09iamVjdCAmIF9fcHRyNjQgX19jZGVjbCBTbm1wQWJzdHJhY3RUYXNrT2JqZWN0OjpvcGVyYXRvcj0oY2xhc3MgU25tcEFic3RyYWN0VGFza09iamVjdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wQWJzdHJhY3RUYXNrT2JqZWN0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgU25tcERlYnVnTG9nICYgX19wdHI2NCBfX2NkZWNsIFNubXBEZWJ1Z0xvZzo6b3BlcmF0b3I9KGNsYXNzIFNubXBEZWJ1Z0xvZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRTbm1wRGVidWdMb2dAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wRXZlbnRPYmplY3QgJiBfX3B0cjY0IF9fY2RlY2wgU25tcEV2ZW50T2JqZWN0OjpvcGVyYXRvcj0oY2xhc3MgU25tcEV2ZW50T2JqZWN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBFdmVudE9iamVjdEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNubXBUYXNrT2JqZWN0ICYgX19wdHI2NCBfX2NkZWNsIFNubXBUYXNrT2JqZWN0OjpvcGVyYXRvcj0oY2xhc3MgU25tcFRhc2tPYmplY3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80U25tcFRhc2tPYmplY3RAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBTbm1wVGhyZWFkT2JqZWN0ICYgX19wdHI2NCBfX2NkZWNsIFNubXBUaHJlYWRPYmplY3Q6Om9wZXJhdG9yPShjbGFzcyBTbm1wVGhyZWFkT2JqZWN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFNubXBUaHJlYWRPYmplY3RAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgY29uc3QgIFNubXBBYnN0cmFjdFRhc2tPYmplY3Q6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wQWJzdHJhY3RUYXNrT2JqZWN0QEA2QkANCis7IGNvbnN0ICBTbm1wRXZlbnRPYmplY3Q6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wRXZlbnRPYmplY3RAQDZCQA0KKzsgY29uc3QgIFNubXBUYXNrT2JqZWN0OjpgdmZ0YWJsZScNCis/P183U25tcFRhc2tPYmplY3RAQDZCQA0KKzsgY29uc3QgIFNubXBUaHJlYWRPYmplY3Q6OmB2ZnRhYmxlJw0KKz8/XzdTbm1wVGhyZWFkT2JqZWN0QEA2QkANCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBBYnN0cmFjdFRhc2tPYmplY3Q6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GU25tcEFic3RyYWN0VGFza09iamVjdEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU25tcEV2ZW50T2JqZWN0OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRlNubXBFdmVudE9iamVjdEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU25tcFRhc2tPYmplY3Q6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GU25tcFRhc2tPYmplY3RAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBUaHJlYWRPYmplY3Q6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GU25tcFRocmVhZE9iamVjdEBAUUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wQWJzdHJhY3RUYXNrT2JqZWN0OjpBY2tub3dsZWRnZSh2b2lkKSBfX3B0cjY0DQorP0Fja25vd2xlZGdlQFNubXBBYnN0cmFjdFRhc2tPYmplY3RAQFVFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBTbm1wQWJzdHJhY3RUYXNrT2JqZWN0OjpBdHRhY2hUYXNrVG9UaHJlYWQoY2xhc3MgU25tcFRocmVhZE9iamVjdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QXR0YWNoVGFza1RvVGhyZWFkQFNubXBBYnN0cmFjdFRhc2tPYmplY3RAQEFFQUFYQUVBVlNubXBUaHJlYWRPYmplY3RAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wVGhyZWFkT2JqZWN0OjpCZWdpblRocmVhZCh2b2lkKSBfX3B0cjY0DQorP0JlZ2luVGhyZWFkQFNubXBUaHJlYWRPYmplY3RAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBFdmVudE9iamVjdDo6Q2xlYXIodm9pZCkgX19wdHI2NA0KKz9DbGVhckBTbm1wRXZlbnRPYmplY3RAQFFFQUFYWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBTbm1wVGhyZWFkT2JqZWN0OjpDbG9zZWRvd24odm9pZCkNCis/Q2xvc2Vkb3duQFNubXBUaHJlYWRPYmplY3RAQFNBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNubXBBYnN0cmFjdFRhc2tPYmplY3Q6OkNvbXBsZXRlKHZvaWQpIF9fcHRyNjQNCis/Q29tcGxldGVAU25tcEFic3RyYWN0VGFza09iamVjdEBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wRXZlbnRPYmplY3Q6OkNvbXBsZXRlKHZvaWQpIF9fcHRyNjQNCis/Q29tcGxldGVAU25tcEV2ZW50T2JqZWN0QEBVRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgU25tcFRocmVhZE9iamVjdDo6Q29uc3RydWN0RXZlbnRDb250YWluZXIodm9pZCkgX19wdHI2NA0KKz9Db25zdHJ1Y3RFdmVudENvbnRhaW5lckBTbm1wVGhyZWFkT2JqZWN0QEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgU25tcEFic3RyYWN0VGFza09iamVjdDo6RGV0YWNoVGFza0Zyb21UaHJlYWQoY2xhc3MgU25tcFRocmVhZE9iamVjdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/RGV0YWNoVGFza0Zyb21UaHJlYWRAU25tcEFic3RyYWN0VGFza09iamVjdEBAQUVBQVhBRUFWU25tcFRocmVhZE9iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgU25tcEFic3RyYWN0VGFza09iamVjdDo6RXhlYyh2b2lkKSBfX3B0cjY0DQorP0V4ZWNAU25tcEFic3RyYWN0VGFza09iamVjdEBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wVGFza09iamVjdDo6RXhlYyh2b2lkKSBfX3B0cjY0DQorP0V4ZWNAU25tcFRhc2tPYmplY3RAQFVFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCBfX2NkZWNsIFNubXBUaHJlYWRPYmplY3Q6OkdldEV2ZW50SGFuZGxlcyh2b2lkKSBfX3B0cjY0DQorP0dldEV2ZW50SGFuZGxlc0BTbm1wVGhyZWFkT2JqZWN0QEBBRUFBUEVBUEVBWFhaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgU25tcFRocmVhZE9iamVjdDo6R2V0RXZlbnRIYW5kbGVzU2l6ZSh2b2lkKSBfX3B0cjY0DQorP0dldEV2ZW50SGFuZGxlc1NpemVAU25tcFRocmVhZE9iamVjdEBAQUVBQUtYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIFNubXBFdmVudE9iamVjdDo6R2V0SGFuZGxlKHZvaWQpIF9fcHRyNjQNCis/R2V0SGFuZGxlQFNubXBFdmVudE9iamVjdEBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgU25tcFRhc2tPYmplY3Q6OkdldEhhbmRsZSh2b2lkKSBfX3B0cjY0DQorP0dldEhhbmRsZUBTbm1wVGFza09iamVjdEBAVUVBQVBFQVhYWg0KKzsgcHJpdmF0ZTogY2xhc3MgU25tcEFic3RyYWN0VGFza09iamVjdCAqIF9fcHRyNjQgX19jZGVjbCBTbm1wVGhyZWFkT2JqZWN0OjpHZXRUYXNrT2JqZWN0KHZvaWQgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRUYXNrT2JqZWN0QFNubXBUaHJlYWRPYmplY3RAQEFFQUFQRUFWU25tcEFic3RyYWN0VGFza09iamVjdEBAQUVBUEVBWEBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgU25tcFRocmVhZE9iamVjdDo6R2V0VGhyZWFkSGFuZGxlKHZvaWQpIF9fcHRyNjQNCis/R2V0VGhyZWFkSGFuZGxlQFNubXBUaHJlYWRPYmplY3RAQFFFQUFQRUFYWFoNCis7IHByaXZhdGU6IHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCBfX2NkZWNsIFNubXBUaHJlYWRPYmplY3Q6OkdldFRocmVhZEhhbmRsZVJlZmVyZW5jZSh2b2lkKSBfX3B0cjY0DQorP0dldFRocmVhZEhhbmRsZVJlZmVyZW5jZUBTbm1wVGhyZWFkT2JqZWN0QEBBRUFBUEVBUEVBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBTbm1wVGhyZWFkT2JqZWN0OjpHZXRUaHJlYWRJZCh2b2lkKSBfX3B0cjY0DQorP0dldFRocmVhZElkQFNubXBUaHJlYWRPYmplY3RAQFFFQUFLWFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIFNubXBUaHJlYWRPYmplY3QgKiBfX3B0cjY0IF9fY2RlY2wgU25tcFRocmVhZE9iamVjdDo6R2V0VGhyZWFkT2JqZWN0KHZvaWQpDQorP0dldFRocmVhZE9iamVjdEBTbm1wVGhyZWFkT2JqZWN0QEBTQVBFQVYxQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNubXBUaHJlYWRPYmplY3Q6OkluaXRpYWxpc2Uodm9pZCkgX19wdHI2NA0KKz9Jbml0aWFsaXNlQFNubXBUaHJlYWRPYmplY3RAQFVFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBUaHJlYWRPYmplY3Q6OlBvc3RTaWduYWxUaHJlYWRTaHV0ZG93bih2b2lkKSBfX3B0cjY0DQorP1Bvc3RTaWduYWxUaHJlYWRTaHV0ZG93bkBTbm1wVGhyZWFkT2JqZWN0QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNubXBBYnN0cmFjdFRhc2tPYmplY3Q6OlByb2Nlc3Modm9pZCkgX19wdHI2NA0KKz9Qcm9jZXNzQFNubXBBYnN0cmFjdFRhc2tPYmplY3RAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgU25tcEV2ZW50T2JqZWN0OjpQcm9jZXNzKHZvaWQpIF9fcHRyNjQNCis/UHJvY2Vzc0BTbm1wRXZlbnRPYmplY3RAQFVFQUFYWFoNCis7IHByaXZhdGU6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNubXBUaHJlYWRPYmplY3Q6OlByb2Nlc3Modm9pZCkgX19wdHI2NA0KKz9Qcm9jZXNzQFNubXBUaHJlYWRPYmplY3RAQEVFQUFYWFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fY2RlY2wgU25tcFRocmVhZE9iamVjdDo6UHJvY2Vzc0F0dGFjaCh2b2lkKQ0KKz9Qcm9jZXNzQXR0YWNoQFNubXBUaHJlYWRPYmplY3RAQENBWFhaDQorOyBwcml2YXRlOiBzdGF0aWMgdm9pZCBfX2NkZWNsIFNubXBUaHJlYWRPYmplY3Q6OlByb2Nlc3NEZXRhY2goaW50KQ0KKz9Qcm9jZXNzRGV0YWNoQFNubXBUaHJlYWRPYmplY3RAQENBWEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wVGhyZWFkT2JqZWN0OjpSZWFwVGFzayhjbGFzcyBTbm1wQWJzdHJhY3RUYXNrT2JqZWN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZWFwVGFza0BTbm1wVGhyZWFkT2JqZWN0QEBRRUFBSEFFQVZTbm1wQWJzdHJhY3RUYXNrT2JqZWN0QEBAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgU25tcFRocmVhZE9iamVjdDo6UmVnaXN0ZXJUaHJlYWQodm9pZCkgX19wdHI2NA0KKz9SZWdpc3RlclRocmVhZEBTbm1wVGhyZWFkT2JqZWN0QEBBRUFBSFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBTbm1wVGhyZWFkT2JqZWN0OjpSZW1vdmVUaHJlYWQodm9pZCkgX19wdHI2NA0KKz9SZW1vdmVUaHJlYWRAU25tcFRocmVhZE9iamVjdEBAQUVBQUhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFNubXBUaHJlYWRPYmplY3Q6OlJvdGF0ZVRhc2soY2xhc3MgU25tcEFic3RyYWN0VGFza09iamVjdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Um90YXRlVGFza0BTbm1wVGhyZWFkT2JqZWN0QEBBRUFBWFBFQVZTbm1wQWJzdHJhY3RUYXNrT2JqZWN0QEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBTbm1wVGhyZWFkT2JqZWN0OjpTY2hlZHVsZVRhc2soY2xhc3MgU25tcEFic3RyYWN0VGFza09iamVjdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2NoZWR1bGVUYXNrQFNubXBUaHJlYWRPYmplY3RAQFFFQUFIQUVBVlNubXBBYnN0cmFjdFRhc2tPYmplY3RAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBTbm1wRXZlbnRPYmplY3Q6OlNldCh2b2lkKSBfX3B0cjY0DQorP1NldEBTbm1wRXZlbnRPYmplY3RAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFNubXBUaHJlYWRPYmplY3Q6OlNpZ25hbFRocmVhZFNodXRkb3duKHZvaWQpIF9fcHRyNjQNCis/U2lnbmFsVGhyZWFkU2h1dGRvd25AU25tcFRocmVhZE9iamVjdEBAUUVBQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgU25tcFRocmVhZE9iamVjdDo6U3RhcnR1cCh2b2lkKQ0KKz9TdGFydHVwQFNubXBUaHJlYWRPYmplY3RAQFNBSFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgU25tcFRocmVhZE9iamVjdDo6VGVybWluYXRlVGhyZWFkKHZvaWQpIF9fcHRyNjQNCis/VGVybWluYXRlVGhyZWFkQFNubXBUaHJlYWRPYmplY3RAQEFFQUFYWFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fY2RlY2wgU25tcFRocmVhZE9iamVjdDo6VGhyZWFkRXhlY3V0aW9uUHJvY2VkdXJlKHZvaWQgKiBfX3B0cjY0KQ0KKz9UaHJlYWRFeGVjdXRpb25Qcm9jZWR1cmVAU25tcFRocmVhZE9iamVjdEBAQ0FYUEVBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFNubXBBYnN0cmFjdFRhc2tPYmplY3Q6OlRpbWVkT3V0KHZvaWQpIF9fcHRyNjQNCis/VGltZWRPdXRAU25tcEFic3RyYWN0VGFza09iamVjdEBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBTbm1wVGhyZWFkT2JqZWN0OjpUaW1lZE91dCh2b2lkKSBfX3B0cjY0DQorP1RpbWVkT3V0QFNubXBUaHJlYWRPYmplY3RAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgU25tcFRocmVhZE9iamVjdDo6VW5pbml0aWFsaXNlKHZvaWQpIF9fcHRyNjQNCis/VW5pbml0aWFsaXNlQFNubXBUaHJlYWRPYmplY3RAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBTbm1wQWJzdHJhY3RUYXNrT2JqZWN0OjpXYWl0KGludCkgX19wdHI2NA0KKz9XYWl0QFNubXBBYnN0cmFjdFRhc2tPYmplY3RAQFVFQUFISEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcEV2ZW50T2JqZWN0OjpXYWl0KHZvaWQpIF9fcHRyNjQNCis/V2FpdEBTbm1wRXZlbnRPYmplY3RAQFVFQUFIWFoNCis7IHByaXZhdGU6IHZpcnR1YWwgaW50IF9fY2RlY2wgU25tcFRocmVhZE9iamVjdDo6V2FpdCh2b2lkKSBfX3B0cjY0DQorP1dhaXRAU25tcFRocmVhZE9iamVjdEBARUVBQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIFNubXBBYnN0cmFjdFRhc2tPYmplY3Q6OldhaXRBY2tub3dsZWRnZW1lbnQoaW50KSBfX3B0cjY0DQorP1dhaXRBY2tub3dsZWRnZW1lbnRAU25tcEFic3RyYWN0VGFza09iamVjdEBAVUVBQUhIQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIFNubXBBYnN0cmFjdFRhc2tPYmplY3Q6OldhaXRBY2tub3dsZWRnZW1lbnREaXNwYXRjaChjbGFzcyBTbm1wVGhyZWFkT2JqZWN0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCxpbnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1dhaXRBY2tub3dsZWRnZW1lbnREaXNwYXRjaEBTbm1wQWJzdHJhY3RUYXNrT2JqZWN0QEBBRUFBSFBFQVZTbm1wVGhyZWFkT2JqZWN0QEBQRUFYQUVBSEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBTbm1wQWJzdHJhY3RUYXNrT2JqZWN0OjpXYWl0RGlzcGF0Y2goY2xhc3MgU25tcFRocmVhZE9iamVjdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQsaW50ICYgX19wdHI2NCkgX19wdHI2NA0KKz9XYWl0RGlzcGF0Y2hAU25tcEFic3RyYWN0VGFza09iamVjdEBAQUVBQUhQRUFWU25tcFRocmVhZE9iamVjdEBAUEVBWEFFQUhAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgU25tcFRocmVhZE9iamVjdDo6V2FpdERpc3BhdGNoKHVuc2lnbmVkIGxvbmcsaW50ICYgX19wdHI2NCkgX19wdHI2NA0KKz9XYWl0RGlzcGF0Y2hAU25tcFRocmVhZE9iamVjdEBAQUVBQUhLQUVBSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFNubXBUaHJlYWRPYmplY3Q6OldhaXRGb3JTdGFydHVwKHZvaWQpIF9fcHRyNjQNCis/V2FpdEZvclN0YXJ0dXBAU25tcFRocmVhZE9iamVjdEBAUUVBQUhYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENDcml0aWNhbFNlY3Rpb24gIFNubXBUaHJlYWRPYmplY3Q6OnNfTG9jaw0KKz9zX0xvY2tAU25tcFRocmVhZE9iamVjdEBAMFZDQ3JpdGljYWxTZWN0aW9uQEBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGxvbmcgIFNubXBUaHJlYWRPYmplY3Q6OnNfUmVmZXJlbmNlQ291bnQNCis/c19SZWZlcmVuY2VDb3VudEBTbm1wVGhyZWFkT2JqZWN0QEAySkEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgUHJvdkRlYnVnTG9nICogX19wdHI2NCAgX19wdHI2NCBTbm1wRGVidWdMb2c6OnNfU25tcERlYnVnTG9nDQorP3NfU25tcERlYnVnTG9nQFNubXBEZWJ1Z0xvZ0BAMlBFQVZQcm92RGVidWdMb2dAQEVBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBTbm1wTWFwPHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBTbm1wVGhyZWFkT2JqZWN0ICogX19wdHI2NCxjbGFzcyBTbm1wVGhyZWFkT2JqZWN0ICogX19wdHI2ND4gIFNubXBUaHJlYWRPYmplY3Q6OnNfVGhyZWFkQ29udGFpbmVyDQorP3NfVGhyZWFkQ29udGFpbmVyQFNubXBUaHJlYWRPYmplY3RAQDBWPyRTbm1wTWFwQEtLUEVBVlNubXBUaHJlYWRPYmplY3RAQFBFQVYxQEBAQSBEQVRBDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc25wcmZkbGwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc25wcmZkbGwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQwODZlODYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zbnByZmRsbC5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBFeFByZkRsbC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRXhQcmZEbGwuZGxsDQorRVhQT1JUUw0KK05URlNEcnZDbG9zZQ0KK05URlNEcnZDb2xsZWN0DQorTlRGU0Rydk9wZW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zb2Z0a2JkLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NvZnRrYmQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBhMDFhZjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zb2Z0a2JkLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtiZExheW91dC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS2JkTGF5b3V0LkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NvZnRrZXkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc29mdGtleS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmY2MTE0MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NvZnRrZXkuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbWFpbi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbWFpbi5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zb2Z0cHViLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NvZnRwdWIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJiMTgwZmUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zb2Z0cHViLmRlZgpAQCAtMCwwICsxLDMyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNPRlRQVUIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNPRlRQVUIuZGxsDQorRVhQT1JUUw0KK0dlbmVyaWNDaGFpbkNlcnRpZmljYXRlVHJ1c3QNCitHZW5lcmljQ2hhaW5GaW5hbFByb3YNCitIVFRQU0NlcnRpZmljYXRlVHJ1c3QNCitTb2Z0cHViRGVmQ2VydEluaXQNCitTb2Z0cHViRnJlZURlZlVzYWdlQ2FsbERhdGENCitTb2Z0cHViTG9hZERlZlVzYWdlQ2FsbERhdGENCitBZGRQZXJzb25hbFRydXN0REJQYWdlcw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0RyaXZlckNsZWFudXBQb2xpY3kNCitEcml2ZXJGaW5hbFBvbGljeQ0KK0RyaXZlckluaXRpYWxpemVQb2xpY3kNCitGaW5kQ2VydHNCeUlzc3Vlcg0KK0hUVFBTRmluYWxQcm92DQorT2ZmaWNlQ2xlYW51cFBvbGljeQ0KK09mZmljZUluaXRpYWxpemVQb2xpY3kNCitPcGVuUGVyc29uYWxUcnVzdERCRGlhbG9nDQorU29mdHB1YkF1dGhlbnRpY29kZQ0KK1NvZnRwdWJDaGVja0NlcnQNCitTb2Z0cHViQ2xlYW51cA0KK1NvZnRwdWJEdW1wU3RydWN0dXJlDQorU29mdHB1YkluaXRpYWxpemUNCitTb2Z0cHViTG9hZE1lc3NhZ2UNCitTb2Z0cHViTG9hZFNpZ25hdHVyZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NwY29tbW9uLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NwY29tbW9uLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNDhkOWMwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc3Bjb21tb24uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgc3Bjb21tb24uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHNwY29tbW9uLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3Nwb29sc3MuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc3Bvb2xzcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmVmODJkZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3Nwb29sc3MuZGVmCkBAIC0wLDAgKzEsMTg2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNQT09MU1MuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNQT09MU1MuRExMDQorRVhQT1JUUw0KK3BzekRiZ0FsbG9jTXNnQQ0KK3ZEYmdMb2dFcnJvcg0KK0Fib3J0UHJpbnRlcg0KK0FkZERyaXZlckNhdGFsb2cNCitBZGRGb3JtVw0KK0FkZEpvYlcNCitBZGRNb25pdG9yVw0KK0FkZFBlck1hY2hpbmVDb25uZWN0aW9uVw0KK0FkZFBvcnRFeFcNCitBZGRQb3J0Vw0KK0FkZFByaW50UHJvY2Vzc29yVw0KK0FkZFByaW50UHJvdmlkb3JXDQorQWRkUHJpbnRlckNvbm5lY3Rpb25XDQorQWRkUHJpbnRlckRyaXZlckV4Vw0KK0FkZFByaW50ZXJEcml2ZXJXDQorQWRkUHJpbnRlckV4Vw0KK0FkZFByaW50ZXJXDQorQWRqdXN0UG9pbnRlcnMNCitBZGp1c3RQb2ludGVyc0luU3RydWN0dXJlc0FycmF5DQorQWxpZ25LTVB0cg0KK0FsaWduUnBjUHRyDQorQWxsb2NTcGxTdHINCitBbGxvd1JlbW90ZUNhbGxzDQorQXBwZW5kUHJpbnRlck5vdGlmeUluZm9EYXRhDQorQnVpbGRPdGhlck5hbWVzRnJvbU1hY2hpbmVOYW1lDQorQ2FjaGVBZGROYW1lDQorQ2FjaGVDcmVhdGVBbmRBZGROb2RlDQorQ2FjaGVDcmVhdGVBbmRBZGROb2RlV2l0aElQQWRkcmVzc2VzDQorQ2FjaGVEZWxldGVOb2RlDQorQ2FjaGVJc05hbWVDbHVzdGVyDQorQ2FjaGVJc05hbWVJbk5vZGVMaXN0DQorQ2FsbERydkRldk1vZGVDb252ZXJzaW9uDQorQ2FsbFJvdXRlckZpbmRGaXJzdFByaW50ZXJDaGFuZ2VOb3RpZmljYXRpb24NCitDaGVja0xvY2FsQ2FsbA0KK0Nsb3NlUHJpbnRlcg0KK0NsdXN0ZXJTcGxDbG9zZQ0KK0NsdXN0ZXJTcGxJc0FsaXZlDQorQ2x1c3RlclNwbE9wZW4NCitDb25maWd1cmVQb3J0Vw0KK0NyZWF0ZVByaW50ZXJJQw0KK0RiZ0dldFBvaW50ZXJzDQorRGVsZXRlRm9ybVcNCitEZWxldGVNb25pdG9yVw0KK0RlbGV0ZVBlck1hY2hpbmVDb25uZWN0aW9uVw0KK0RlbGV0ZVBvcnRXDQorRGVsZXRlUHJpbnRQcm9jZXNzb3JXDQorRGVsZXRlUHJpbnRQcm92aWRvclcNCitEZWxldGVQcmludGVyDQorRGVsZXRlUHJpbnRlckNvbm5lY3Rpb25XDQorRGVsZXRlUHJpbnRlckRhdGFFeFcNCitEZWxldGVQcmludGVyRGF0YVcNCitEZWxldGVQcmludGVyRHJpdmVyRXhXDQorRGVsZXRlUHJpbnRlckRyaXZlclcNCitEZWxldGVQcmludGVySUMNCitEZWxldGVQcmludGVyS2V5Vw0KK0RsbEFsbG9jU3BsTWVtDQorRGxsRnJlZVNwbE1lbQ0KK0RsbEZyZWVTcGxTdHINCitFbmREb2NQcmludGVyDQorRW5kUGFnZVByaW50ZXINCitFbnVtRm9ybXNXDQorRW51bUpvYnNXDQorRW51bU1vbml0b3JzVw0KK0VudW1QZXJNYWNoaW5lQ29ubmVjdGlvbnNXDQorRW51bVBvcnRzVw0KK0VudW1QcmludFByb2Nlc3NvckRhdGF0eXBlc1cNCitFbnVtUHJpbnRQcm9jZXNzb3JzVw0KK0VudW1QcmludGVyRGF0YUV4Vw0KK0VudW1QcmludGVyRGF0YVcNCitFbnVtUHJpbnRlckRyaXZlcnNXDQorRW51bVByaW50ZXJLZXlXDQorRW51bVByaW50ZXJzVw0KK0ZpbmRDbG9zZVByaW50ZXJDaGFuZ2VOb3RpZmljYXRpb24NCitGbHVzaFByaW50ZXINCitGb3JtYXRQcmludGVyRm9yUmVnaXN0cnlLZXkNCitGb3JtYXRSZWdpc3RyeUtleUZvclByaW50ZXINCitGcmVlT3RoZXJOYW1lcw0KK0dldENsaWVudFVzZXJIYW5kbGUNCitHZXRGb3JtVw0KK0dldEpvYkF0dHJpYnV0ZXMNCitHZXRKb2JXDQorR2V0TmV0d29ya0lkDQorR2V0UHJpbnRQcm9jZXNzb3JEaXJlY3RvcnlXDQorR2V0UHJpbnRlckRhdGFFeFcNCitHZXRQcmludGVyRGF0YVcNCitHZXRQcmludGVyRHJpdmVyRGlyZWN0b3J5Vw0KK0dldFByaW50ZXJEcml2ZXJFeFcNCitHZXRQcmludGVyRHJpdmVyVw0KK0dldFByaW50ZXJXDQorR2V0U2VydmVyUG9saWN5DQorR2V0U2hyaW5rZWRTaXplDQorSW1wZXJzb25hdGVQcmludGVyQ2xpZW50DQorSW5pdGlhbGl6ZVJvdXRlcg0KK0lzTmFtZWRQaXBlUnBjQ2FsbA0KK0xvYWREcml2ZXINCitMb2FkRHJpdmVyRmlsZXRvQ29udmVydERldm1vZGUNCitMb2FkRHJpdmVyV2l0aFZlcnNpb24NCitMb2dXbWlUcmFjZUV2ZW50DQorTUlETF91c2VyX2FsbG9jYXRlMQ0KK01JRExfdXNlcl9mcmVlMQ0KK01hcnNoYWxsRG93blN0cnVjdHVyZQ0KK01hcnNoYWxsRG93blN0cnVjdHVyZXNBcnJheQ0KK01hcnNoYWxsVXBTdHJ1Y3R1cmUNCitNYXJzaGFsbFVwU3RydWN0dXJlc0FycmF5DQorT2xkR2V0UHJpbnRlckRyaXZlclcNCitPcGVuUHJpbnRlckV4Vw0KK09wZW5QcmludGVyUG9ydFcNCitPcGVuUHJpbnRlclcNCitQYWNrU3RyaW5ncw0KK1BhcnRpYWxSZXBseVByaW50ZXJDaGFuZ2VOb3RpZmljYXRpb24NCitQbGF5R2RpU2NyaXB0T25QcmludGVySUMNCitQcmludGVySGFuZGxlUnVuZG93bg0KK1ByaW50ZXJNZXNzYWdlQm94Vw0KK1Byb3ZpZG9yRmluZENsb3NlUHJpbnRlckNoYW5nZU5vdGlmaWNhdGlvbg0KK1Byb3ZpZG9yRmluZEZpcnN0UHJpbnRlckNoYW5nZU5vdGlmaWNhdGlvbg0KK1JlYWRQcmludGVyDQorUmVhbGxvY1NwbE1lbQ0KK1JlYWxsb2NTcGxTdHINCitSZW1vdGVGaW5kRmlyc3RQcmludGVyQ2hhbmdlTm90aWZpY2F0aW9uDQorUmVwbHlDbG9zZVByaW50ZXINCitSZXBseU9wZW5QcmludGVyDQorUmVwbHlQcmludGVyQ2hhbmdlTm90aWZpY2F0aW9uDQorUmVzZXRQcmludGVyVw0KK1JldmVydFRvUHJpbnRlclNlbGYNCitSb3V0ZXJBbGxvY0JpZGlNZW0NCitSb3V0ZXJBbGxvY0JpZGlSZXNwb25zZUNvbnRhaW5lcg0KK1JvdXRlckFsbG9jUHJpbnRlck5vdGlmeUluZm8NCitSb3V0ZXJGaW5kRmlyc3RQcmludGVyQ2hhbmdlTm90aWZpY2F0aW9uDQorUm91dGVyRmluZE5leHRQcmludGVyQ2hhbmdlTm90aWZpY2F0aW9uDQorUm91dGVyRnJlZUJpZGlNZW0NCitSb3V0ZXJGcmVlUHJpbnRlck5vdGlmeUluZm8NCitSb3V0ZXJSZWZyZXNoUHJpbnRlckNoYW5nZU5vdGlmaWNhdGlvbg0KK1JvdXRlclJlcGx5UHJpbnRlcg0KK1NjaGVkdWxlSm9iDQorU2Vla1ByaW50ZXINCitTZW5kUmVjdkJpZGlEYXRhDQorU2V0QWxsb2NGYWlsQ291bnQNCitTZXRGb3JtVw0KK1NldEpvYlcNCitTZXRQb3J0Vw0KK1NldFByaW50ZXJEYXRhRXhXDQorU2V0UHJpbnRlckRhdGFXDQorU2V0UHJpbnRlclcNCitTcGxDbG9zZVNwb29sRmlsZUhhbmRsZQ0KK1NwbENvbW1pdFNwb29sRGF0YQ0KK1NwbERyaXZlclVubG9hZENvbXBsZXRlDQorU3BsR2V0U3Bvb2xGaWxlSW5mbw0KK1NwbEluaXRpYWxpemVXaW5TcG9vbERydg0KK1NwbElzU2Vzc2lvblplcm8NCitTcGxJc1VwZ3JhZGUNCitTcGxQb3dlckV2ZW50DQorU3BsUHJvY2Vzc1BuUEV2ZW50DQorU3BsUHJvbXB0VUlJblVzZXJzU2Vzc2lvbg0KK1NwbFJlYWRQcmludGVyDQorU3BsUmVnaXN0ZXJGb3JEZXZpY2VFdmVudHMNCitTcGxTaHV0RG93blJvdXRlcg0KK1NwbFVucmVnaXN0ZXJGb3JEZXZpY2VFdmVudHMNCitTcG9vbGVyRmluZENsb3NlUHJpbnRlckNoYW5nZU5vdGlmaWNhdGlvbg0KK1Nwb29sZXJGaW5kRmlyc3RQcmludGVyQ2hhbmdlTm90aWZpY2F0aW9uDQorU3Bvb2xlckZpbmROZXh0UHJpbnRlckNoYW5nZU5vdGlmaWNhdGlvbg0KK1Nwb29sZXJGcmVlUHJpbnRlck5vdGlmeUluZm8NCitTcG9vbGVySGFzSW5pdGlhbGl6ZWQNCitTcG9vbGVySW5pdA0KK1N0YXJ0RG9jUHJpbnRlclcNCitTdGFydFBhZ2VQcmludGVyDQorVW5kb0FsaWduS01QdHINCitVbmRvQWxpZ25ScGNQdHINCitVbmxvYWREcml2ZXINCitVbmxvYWREcml2ZXJGaWxlDQorVXBkYXRlQnVmZmVyU2l6ZQ0KK1VwZGF0ZVByaW50ZXJSZWdBbGwNCitVcGRhdGVQcmludGVyUmVnVXNlcg0KK1dhaXRGb3JQcmludGVyQ2hhbmdlDQorV2FpdEZvclNwb29sZXJJbml0aWFsaXphdGlvbg0KK1dyaXRlUHJpbnRlcg0KK1hjdkRhdGFXDQorYkdldERldk1vZGVQZXJVc2VyDQorYlNldERldk1vZGVQZXJVc2VyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc3B0aXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc3B0aXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE5MWU2NmQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zcHRpcC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTUFRJUC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU1BUSVAuZGxsDQorRVhQT1JUUw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NwdHRzZW5nLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NwdHRzZW5nLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNWIyMTM3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc3B0dHNlbmcuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgc3B0dHNlbmcuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHNwdHRzZW5nLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NxbHNydjMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NxbHNydjMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZGM1ZDQxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc3Fsc3J2MzIuZGVmCkBAIC0wLDAgKzEsOTggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU1FMU1JWMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNRTFNSVjMyLmRsbA0KK0VYUE9SVFMNCitTUUxCaW5kQ29sDQorU1FMQ2FuY2VsDQorU1FMQ29sQXR0cmlidXRlVw0KK1NRTENvbm5lY3RXDQorU1FMRGVzY3JpYmVDb2xXDQorU1FMRGlzY29ubmVjdA0KK1NRTEV4ZWNEaXJlY3RXDQorU1FMRXhlY3V0ZQ0KK1NRTEZldGNoDQorU1FMRnJlZVN0bXQNCitTUUxHZXRDdXJzb3JOYW1lVw0KK1NRTE51bVJlc3VsdENvbHMNCitTUUxQcmVwYXJlVw0KK1NRTFJvd0NvdW50DQorU1FMU2V0Q3Vyc29yTmFtZVcNCitTUUxCdWxrT3BlcmF0aW9ucw0KK1NRTENvbHVtbnNXDQorU1FMRHJpdmVyQ29ubmVjdFcNCitTUUxHZXRDb25uZWN0T3B0aW9uVw0KK1NRTEdldERhdGENCitTUUxHZXRGdW5jdGlvbnMNCitTUUxHZXRJbmZvVw0KK1NRTEdldFR5cGVJbmZvVw0KK1NRTFBhcmFtRGF0YQ0KK1NRTFB1dERhdGENCitTUUxTZXRDb25uZWN0T3B0aW9uVw0KK1NRTFNwZWNpYWxDb2x1bW5zVw0KK1NRTFN0YXRpc3RpY3NXDQorU1FMVGFibGVzVw0KK1NRTEJyb3dzZUNvbm5lY3RXDQorU1FMQ29sdW1uUHJpdmlsZWdlc1cNCitTUUxEZXNjcmliZVBhcmFtDQorU1FMRXh0ZW5kZWRGZXRjaA0KK1NRTEZvcmVpZ25LZXlzVw0KK1NRTE1vcmVSZXN1bHRzDQorU1FMTmF0aXZlU3FsVw0KK1NRTE51bVBhcmFtcw0KK1NRTFBhcmFtT3B0aW9ucw0KK1NRTFByaW1hcnlLZXlzVw0KK1NRTFByb2NlZHVyZUNvbHVtbnNXDQorU1FMUHJvY2VkdXJlc1cNCitTUUxTZXRQb3MNCitTUUxTZXRTY3JvbGxPcHRpb25zDQorU1FMVGFibGVQcml2aWxlZ2VzVw0KK1NRTEJpbmRQYXJhbWV0ZXINCitTUUxBbGxvY0hhbmRsZQ0KK1NRTENsb3NlQ3Vyc29yDQorU1FMQ29weURlc2MNCitTUUxFbmRUcmFuDQorU1FMRnJlZUhhbmRsZQ0KK1NRTEdldENvbm5lY3RBdHRyVw0KK1NRTEdldERlc2NGaWVsZFcNCitTUUxHZXREZXNjUmVjVw0KK1NRTEdldERpYWdGaWVsZFcNCitTUUxHZXREaWFnUmVjVw0KK1NRTEdldEVudkF0dHINCitTUUxHZXRTdG10QXR0clcNCitTUUxTZXRDb25uZWN0QXR0clcNCitTUUxTZXREZXNjRmllbGRXDQorU1FMU2V0RGVzY1JlYw0KK1NRTFNldEVudkF0dHINCitTUUxTZXRTdG10QXR0clcNCitTUUxGZXRjaFNjcm9sbA0KK0xpYk1haW4NCitDb25maWdEU05XDQorQ29uZmlnRHJpdmVyVw0KK1NRTERlYnVnDQorQkNQX2JhdGNoDQorQkNQX2JpbmQNCitCQ1BfY29sZm10DQorQkNQX2NvbGxlbg0KK0JDUF9jb2xwdHINCitCQ1BfY29sdW1ucw0KK0JDUF9jb250cm9sDQorQkNQX2RvbmUNCitCQ1BfaW5pdA0KK0JDUF9leGVjDQorQkNQX21vcmV0ZXh0DQorQkNQX3NlbmRyb3cNCitCQ1BfcmVhZGZtdA0KK0JDUF93cml0ZWZtdA0KK0Nvbm5lY3REbGdQcm9jDQorV2l6RFNORGxnUHJvYw0KK1dpekludFNlY3VyaXR5RGxnUHJvYw0KK1dpekRhdGFiYXNlRGxnUHJvYw0KK1dpekxhbmd1YWdlRGxnUHJvYw0KK0ZpbmlzaERsZ1Byb2MNCitUZXN0RGxnUHJvYw0KK0JDUF9nZXRjb2xmbXQNCitCQ1Bfc2V0Y29sZm10DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc3FseG1seC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zcWx4bWx4LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMTczN2EzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc3FseG1seC5kZWYKQEAgLTAsMCArMSwxNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTUUxYTUxYLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTUUxYTUxYLmRsbA0KK0VYUE9SVFMNCitEbGxNYWluDQorRXhlY3V0ZVRvU3RyZWFtDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zcmNoY3Rscy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zcmNoY3Rscy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTljNWVlMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NyY2hjdGxzLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHNyY2hjdGxzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBzcmNoY3Rscy5kbGwNCitFWFBPUlRTDQorSW5pdGlhbGl6ZVNlYXJjaENvbnRyb2xzDQorVW5pbml0aWFsaXplU2VhcmNoQ29udHJvbHMNCitDcmVhdGVTcGVsbEVkaXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zcmNodWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc3JjaHVpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNTE2N2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc3JjaHVpLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHNyY2h1aS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgc3JjaHVpLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbEluc3RhbGwNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zcmNsaWVudC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zcmNsaWVudC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODE0OWE5NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NyY2xpZW50LmRlZgpAQCAtMCwwICsxLDM1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNSQ0xJRU5ULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTUkNMSUVOVC5kbGwNCitFWFBPUlRTDQorQ3JlYXRlRmlyc3RSdW5ScA0KK0NyZWF0ZVNuYXBzaG90DQorRGlzYWJsZUZJRk8NCitEaXNhYmxlU1INCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0VuYWJsZUZJRk8NCitFbmFibGVTUg0KK0VuYWJsZVNSRXgNCitSZXNldFNSDQorUmVzdG9yZVNuYXBzaG90DQorU1JDb21wcmVzcw0KK1NSRmlmbw0KK1NSRnJlZXplDQorU1JOb3RpZnkNCitTUlByaW50U3RhdGUNCitTUlJlZ2lzdGVyU25hcHNob3RDYWxsYmFjaw0KK1NSUmVtb3ZlUmVzdG9yZVBvaW50DQorU1JTZXRSZXN0b3JlUG9pbnRBDQorU1JTZXRSZXN0b3JlUG9pbnRXDQorU1JTd2l0Y2hMb2cNCitTUlVucmVnaXN0ZXJTbmFwc2hvdENhbGxiYWNrDQorU1JVcGRhdGVEU1NpemUNCitTUlVwZGF0ZU1vbml0b3JlZExpc3RBDQorU1JVcGRhdGVNb25pdG9yZWRMaXN0Vw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3NycnN0ci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zcnJzdHIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIzY2FiZDUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zcnJzdHIuZGVmCkBAIC0wLDAgKzEsMTggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU1JSU1RSLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTUlJTVFIuZGxsDQorRVhQT1JUUw0KK0RsbE1haW4NCitJc1NSRnJvemVuDQorQ2hlY2tQcml2aWxlZ2VzRm9yUmVzdG9yZQ0KK1NSR2V0Q3BsUHJvcFBhZ2UNCitQcmVwYXJlUmVzdG9yZQ0KK0luaXRpYXRlUmVzdG9yZQ0KK1Jlc3VtZVJlc3RvcmUNCitJbml0aWFsaXplQ2hhbmdlTm90aWZ5DQorUGFzc3dvcmRDaGFuZ2VOb3RpZnkNCitJbnZva2VEaXNrQ2xlYW51cA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3Nyc3ZjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3Nyc3ZjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMmQ1MThhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc3JzdmMuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU1JTVkMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNSU1ZDLmRsbA0KK0VYUE9SVFMNCitEbGxNYWluDQorU2VydmljZU1haW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zcnZzdmMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc3J2c3ZjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNTI4Yjk5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc3J2c3ZjLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHNydnN2Yy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgc3J2c3ZjLmRsbA0KK0VYUE9SVFMNCitTZXJ2aWNlTWFpbg0KK1N2Y2hvc3RQdXNoU2VydmljZUdsb2JhbHMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zc2RwYXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NzZHBhcGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEwZWE1NDUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zc2RwYXBpLmRlZgpAQCAtMCwwICsxLDI3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNTRFBBUEkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNTRFBBUEkuZGxsDQorRVhQT1JUUw0KK0NsZWFudXBDYWNoZQ0KK0RIRGlzYWJsZURldmljZUhvc3QNCitESEVuYWJsZURldmljZUhvc3QNCitESFNldElDU0ludGVyZmFjZXMNCitESFNldElDU09mZg0KK0RlcmVnaXN0ZXJOb3RpZmljYXRpb24NCitEZXJlZ2lzdGVyU2VydmljZQ0KK0RlcmVnaXN0ZXJTZXJ2aWNlQnlVU04NCitGaW5kU2VydmljZXMNCitGaW5kU2VydmljZXNDYWxsYmFjaw0KK0ZpbmRTZXJ2aWNlc0NhbmNlbA0KK0ZpbmRTZXJ2aWNlc0Nsb3NlDQorRnJlZVNzZHBNZXNzYWdlDQorR2V0Rmlyc3RTZXJ2aWNlDQorR2V0TmV4dFNlcnZpY2UNCitSZWdpc3Rlck5vdGlmaWNhdGlvbg0KK1JlZ2lzdGVyU2VydmljZQ0KK1NzZHBDbGVhbnVwDQorU3NkcFN0YXJ0dXANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zc2Rwc3J2LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3NzZHBzcnYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE1Y2JiNDkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zc2Rwc3J2LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgc3NkcHNydi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgc3NkcHNydi5kbGwNCitFWFBPUlRTDQorU2VydmljZU1haW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zc2luYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zc2luYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWFiY2IyMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3NzaW5jLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNTSU5DLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTU0lOQy5kbGwNCitFWFBPUlRTDQorR2V0RXh0ZW5zaW9uVmVyc2lvbg0KK0h0dHBFeHRlbnNpb25Qcm9jDQorVGVybWluYXRlRXh0ZW5zaW9uDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc3N0dWIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc3N0dWIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVjOGFjOWEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zc3R1Yi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTU3R1Yi5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU1N0dWIuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc3RheG1lbS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zdGF4bWVtLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYjZiY2JjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc3RheG1lbS5kZWYKQEAgLTAsMCArMSw0MiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTVEFYTUVNLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTVEFYTUVNLmRsbA0KK0VYUE9SVFMNCitFeGNoQWxsb2MNCitFeGNoRnJlZQ0KK0V4Y2hIZWFwQWxsb2MNCitFeGNoSGVhcENvbXBhY3QNCitFeGNoSGVhcENyZWF0ZQ0KK0V4Y2hIZWFwRGVzdHJveQ0KK0V4Y2hIZWFwRnJlZQ0KK0V4Y2hIZWFwTG9jaw0KK0V4Y2hIZWFwUmVBbGxvYw0KK0V4Y2hIZWFwU2l6ZQ0KK0V4Y2hIZWFwVW5sb2NrDQorRXhjaEhlYXBWYWxpZGF0ZQ0KK0V4Y2hIZWFwV2Fsaw0KK0V4Y2hNSGVhcEFsbG9jDQorRXhjaE1IZWFwQWxsb2NEZWJ1Zw0KK0V4Y2hNSGVhcENyZWF0ZQ0KK0V4Y2hNSGVhcERlc3Ryb3kNCitFeGNoTUhlYXBGcmVlDQorRXhjaE1IZWFwUmVBbGxvYw0KK0V4Y2hNSGVhcFJlQWxsb2NEZWJ1Zw0KK0V4Y2hNSGVhcFNpemUNCitFeGNoUmVBbGxvYw0KK0V4Y2hTaXplDQorRXhjaG1lbUZvcm1hdFN5bWJvbA0KK0V4Y2htZW1HZXRDYWxsU3RhY2sNCitFeGNobWVtUmVsb2FkU3ltYm9scw0KK01wSGVhcEFsbG9jDQorTXBIZWFwQ29tcGFjdA0KK01wSGVhcENyZWF0ZQ0KK01wSGVhcERlc3Ryb3kNCitNcEhlYXBGcmVlDQorTXBIZWFwR2V0U3RhdGlzdGljcw0KK01wSGVhcFJlQWxsb2MNCitNcEhlYXBWYWxpZGF0ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3N0Y2xpZW50LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3N0Y2xpZW50LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MTJiZjRlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc3RjbGllbnQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgc3RjbGllbnQuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHN0Y2xpZW50LkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3N0ZHByb3YuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc3RkcHJvdi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjIzZjI5MgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3N0ZHByb3YuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgc3RkcHJvdi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgc3RkcHJvdi5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zdGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc3RpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNWM4ZWVkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc3RpLmRlZgpAQCAtMCwwICsxLDQyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNUSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU1RJLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBCVUZGRVI6OkJVRkZFUih1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBCVUZGRVJAQFFFQUFASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlVGRkVSX0NIQUlOOjpCVUZGRVJfQ0hBSU4odm9pZCkgX19wdHI2NA0KKz8/MEJVRkZFUl9DSEFJTkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEJVRkZFUl9DSEFJTl9JVEVNOjpCVUZGRVJfQ0hBSU5fSVRFTSh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBCVUZGRVJfQ0hBSU5fSVRFTUBAUUVBQUBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBCVUZGRVI6On5CVUZGRVIodm9pZCkgX19wdHI2NA0KKz8/MUJVRkZFUkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEJVRkZFUl9DSEFJTjo6fkJVRkZFUl9DSEFJTih2b2lkKSBfX3B0cjY0DQorPz8xQlVGRkVSX0NIQUlOQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlVGRkVSX0NIQUlOX0lURU06On5CVUZGRVJfQ0hBSU5fSVRFTSh2b2lkKSBfX3B0cjY0DQorPz8xQlVGRkVSX0NIQUlOX0lURU1AQFFFQUFAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEJVRkZFUjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZCVUZGRVJAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEJVRkZFUl9DSEFJTl9JVEVNOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkJVRkZFUl9DSEFJTl9JVEVNQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQlVGRkVSOjpRdWVyeVB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UHRyQEJVRkZFUkBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBCVUZGRVI6OlF1ZXJ5U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2l6ZUBCVUZGRVJAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIEJVRkZFUl9DSEFJTl9JVEVNOjpRdWVyeVVzZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVVzZWRAQlVGRkVSX0NIQUlOX0lURU1AQFFFQkFLWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEJVRkZFUl9DSEFJTl9JVEVNOjpTZXRVc2VkKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0VXNlZEBCVUZGRVJfQ0hBSU5fSVRFTUBAUUVBQVhLQFoNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldFByb3h5RGxsSW5mbw0KK01pZ3JhdGVSZWdpc3RlcmVkU1RJQXBwc0ZvcldJQUV2ZW50cw0KK1JlZ1NUSWZvcldpYQ0KK1N0aUNyZWF0ZUluc3RhbmNlDQorU3RpQ3JlYXRlSW5zdGFuY2VBDQorU3RpQ3JlYXRlSW5zdGFuY2VXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc3RpX2NpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3N0aV9jaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjQ5YTVlMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3N0aV9jaS5kZWYKQEAgLTAsMCArMSw0MyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBzdGlfY2kuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHN0aV9jaS5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fY2RlY2wgQlVGRkVSOjpCVUZGRVIodW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQlVGRkVSQEBRRUFBQElAWg0KKzsgcHVibGljOiBfX2NkZWNsIEJVRkZFUl9DSEFJTjo6QlVGRkVSX0NIQUlOKHZvaWQpIF9fcHRyNjQNCis/PzBCVUZGRVJfQ0hBSU5AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCVUZGRVJfQ0hBSU5fSVRFTTo6QlVGRkVSX0NIQUlOX0lURU0odW5zaWduZWQgaW50KSBfX3B0cjY0DQorPz8wQlVGRkVSX0NIQUlOX0lURU1AQFFFQUFASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlVGRkVSOjp+QlVGRkVSKHZvaWQpIF9fcHRyNjQNCis/PzFCVUZGRVJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCVUZGRVJfQ0hBSU46On5CVUZGRVJfQ0hBSU4odm9pZCkgX19wdHI2NA0KKz8/MUJVRkZFUl9DSEFJTkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEJVRkZFUl9DSEFJTl9JVEVNOjp+QlVGRkVSX0NIQUlOX0lURU0odm9pZCkgX19wdHI2NA0KKz8/MUJVRkZFUl9DSEFJTl9JVEVNQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCVUZGRVI6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GQlVGRkVSQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCVUZGRVJfQ0hBSU5fSVRFTTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZCVUZGRVJfQ0hBSU5fSVRFTUBAUUVBQVhYWg0KK0FkZERldmljZQ0KK0luc3RhbGxXaWFTZXJ2aWNlDQorTWlncmF0ZURldmljZQ0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIEJVRkZFUjo6UXVlcnlQdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVB0ckBCVUZGRVJAQFFFQkFQRUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgQlVGRkVSOjpRdWVyeVNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNpemVAQlVGRkVSQEBRRUJBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBCVUZGRVJfQ0hBSU5fSVRFTTo6UXVlcnlVc2VkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlVc2VkQEJVRkZFUl9DSEFJTl9JVEVNQEBRRUJBS1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBCVUZGRVJfQ0hBSU5fSVRFTTo6U2V0VXNlZCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFVzZWRAQlVGRkVSX0NIQUlOX0lURU1AQFFFQUFYS0BaDQorV2lhQWRkRGV2aWNlDQorV2lhQ3JlYXRlUG9ydExpc3QNCitXaWFDcmVhdGVXaXphcmRNZW51DQorV2lhRGVzdHJveVBvcnRMaXN0DQorV2lhUmVtb3ZlRGV2aWNlDQorQ2xhc3NJbnN0YWxsDQorQ29pbnN0YWxsZXJFbnRyeQ0KK1BUUENvaW5zdGFsbGVyRW50cnkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zdG9iamVjdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zdG9iamVjdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDcwZDY5ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3N0b2JqZWN0LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHN0b2JqZWN0LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBzdG9iamVjdC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zdG9ycHJvcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zdG9ycHJvcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjEzNmU2OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3N0b3Jwcm9wLmRlZgpAQCAtMCwwICsxLDE4IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFBST1BQQUdFLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBQUk9QUEFHRS5ETEwNCitFWFBPUlRTDQorQ2Ryb21EaXNhYmxlRGlnaXRhbFBsYXliYWNrDQorQ2Ryb21FbmFibGVEaWdpdGFsUGxheWJhY2sNCitDZHJvbUlzRGlnaXRhbFBsYXliYWNrRW5hYmxlZA0KK0Nkcm9tS25vd25Hb29kRGlnaXRhbFBsYXliYWNrDQorRGlza0NsYXNzSW5zdGFsbGVyDQorRHZkQ2xhc3NJbnN0YWxsZXINCitEdmRMYXVuY2hlcg0KK0R2ZFByb3BQYWdlUHJvdmlkZXINCitJZGVQcm9wUGFnZVByb3ZpZGVyDQorVm9sdW1lUHJvcFBhZ2VQcm92aWRlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3N0cmVhbWNpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3N0cmVhbWNpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNmM2YTQxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc3RyZWFtY2kuZGVmCkBAIC0wLDAgKzEsMTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgc3RyZWFtY2kuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHN0cmVhbWNpLmRsbA0KK0VYUE9SVFMNCitTdHJlYW1pbmdEZXZpY2VDbGFzc0luc3RhbGxlcg0KK1N0cmVhbWluZ0RldmljZVJlbW92ZQ0KK1N0cmVhbWluZ0RldmljZVJlbW92ZUENCitTdHJlYW1pbmdEZXZpY2VSZW1vdmVXDQorU3RyZWFtaW5nRGV2aWNlU2V0dXANCitTdHJlYW1pbmdEZXZpY2VTZXR1cEENCitTdHJlYW1pbmdEZXZpY2VTZXR1cFcNCitTd0VudW1Db0luc3RhbGxlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3N0cm1maWx0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3N0cm1maWx0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wODVjN2JlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc3RybWZpbHQuZGVmCkBAIC0wLDAgKzEsMTkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgc3RybWZpbHQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHN0cm1maWx0LmRsbA0KK0VYUE9SVFMNCitJc2FwaUZpbHRlckluaXRpYWxpemUNCitJc2FwaUZpbHRlclRlcm1pbmF0ZQ0KK1N0cmVhbUZpbHRlckNsaWVudEluaXRpYWxpemUNCitTdHJlYW1GaWx0ZXJDbGllbnRTdGFydA0KK1N0cmVhbUZpbHRlckNsaWVudFN0b3ANCitTdHJlYW1GaWx0ZXJDbGllbnRUZXJtaW5hdGUNCitTdHJlYW1GaWx0ZXJJbml0aWFsaXplDQorU3RyZWFtRmlsdGVyU3RhcnQNCitTdHJlYW1GaWx0ZXJTdG9wDQorU3RyZWFtRmlsdGVyVGVybWluYXRlDQorRGxsTWFpbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3N2Y2V4dC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zdmNleHQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ3MzcyMDMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zdmNleHQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU1ZDRVhULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTVkNFWFQuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc3ZjcGFjay5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zdmNwYWNrLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYzM3OGVhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc3ZjcGFjay5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNWQ1BBQ0suZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNWQ1BBQ0suZGxsDQorRVhQT1JUUw0KK1N2Y1BhY2tDYWxsYmFja1JvdXRpbmUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zd3Bydi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zd3Bydi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTFmMDJkZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3N3cHJ2LmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHN3cHJ2LkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBzd3Bydi5ETEwNCitFWFBPUlRTDQorU2VydmljZU1haW4NCis7IHZvaWQgX19jZGVjbCBWc3NGcmVlU25hcHNob3RQcm9wZXJ0aWVzKHN0cnVjdCBfVlNTX1NOQVBTSE9UX1BST1AgKiBfX3B0cjY0KQ0KKz9Wc3NGcmVlU25hcHNob3RQcm9wZXJ0aWVzQEBZQVhQRUFVX1ZTU19TTkFQU0hPVF9QUk9QQEBAWg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3N4cy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zeHMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBhODZhNzkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zeHMuZGVmCkBAIC0wLDAgKzEsMzggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgc3hzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBzeHMuZGxsDQorRVhQT1JUUw0KK1N4c0ZpbmRDbHJDbGFzc0luZm9ybWF0aW9uDQorU3hzRmluZENsclN1cnJvZ2F0ZUluZm9ybWF0aW9uDQorU3hzTG9va3VwQ2xyR3VpZA0KK1N4c1J1bkRsbEluc3RhbGxBc3NlbWJseQ0KK1N4c1J1bkRsbEluc3RhbGxBc3NlbWJseVcNCitTeHNwR2VuZXJhdGVNYW5pZmVzdFBhdGhPbkFzc2VtYmx5SWRlbnRpdHkNCitTeHNwR2VuZXJhdGVQb2xpY3lQYXRoT25Bc3NlbWJseUlkZW50aXR5DQorU3hzcFJ1bkRsbERlbGV0ZURpcmVjdG9yeQ0KK1N4c3BSdW5EbGxEZWxldGVEaXJlY3RvcnlXDQorQ3JlYXRlQXNzZW1ibHlDYWNoZQ0KK0NyZWF0ZUFzc2VtYmx5TmFtZU9iamVjdA0KK0RsbEluc3RhbGwNCitTeHNCZWdpbkFzc2VtYmx5SW5zdGFsbA0KK1N4c0VuZEFzc2VtYmx5SW5zdGFsbA0KK1N4c0dlbmVyYXRlQWN0aXZhdGlvbkNvbnRleHQNCitTeHNJbnN0YWxsVw0KK1N4c09sZUF1dDMyTWFwQ29uZmlndXJlZENsc2lkVG9SZWZlcmVuY2VDbHNpZA0KK1N4c09sZUF1dDMyTWFwSUlET3JDTFNJRFRvVHlwZUxpYnJhcnkNCitTeHNPbGVBdXQzMk1hcElJRFRvUHJveHlTdHViQ0xTSUQNCitTeHNPbGVBdXQzMk1hcElJRFRvVExCUGF0aA0KK1N4c09sZUF1dDMyTWFwUmVmZXJlbmNlQ2xzaWRUb0NvbmZpZ3VyZWRDbHNpZA0KK1N4c09sZUF1dDMyUmVkaXJlY3RUeXBlTGlicmFyeQ0KK1N4c1Byb2JlQXNzZW1ibHlJbnN0YWxsYXRpb24NCitTeHNQcm90ZWN0aW9uR2F0aGVyRW50cmllc1cNCitTeHNQcm90ZWN0aW9uTm90aWZ5Vw0KK1N4c1Byb3RlY3Rpb25QZXJmb3JtU2Nhbk5vdw0KK1N4c1Byb3RlY3Rpb25Vc2VyTG9nb2ZmRXZlbnQNCitTeHNQcm90ZWN0aW9uVXNlckxvZ29uRXZlbnQNCitTeHNRdWVyeU1hbmlmZXN0SW5mb3JtYXRpb24NCitTeHNVbmluc3RhbGxXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc3luY2VuZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zeW5jZW5nLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMzYzYTg0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc3luY2VuZy5kZWYKQEAgLTAsMCArMSw0NCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTWU5DRU5HLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTWU5DRU5HLmRsbA0KK0VYUE9SVFMNCitBZGRBbGxUd2luc1RvVHdpbkxpc3QNCitBZGRGb2xkZXJUd2luDQorQWRkT2JqZWN0VHdpbg0KK0FkZFR3aW5Ub1R3aW5MaXN0DQorQW55VHdpbnMNCitCZWdpblJlY29uY2lsaWF0aW9uDQorQ2xlYXJCcmllZmNhc2VDYWNoZQ0KK0Nsb3NlQnJpZWZjYXNlDQorQ29tcGFyZUZpbGVTdGFtcHMNCitDb3VudFNvdXJjZUZvbGRlclR3aW5zDQorQ3JlYXRlRm9sZGVyVHdpbkxpc3QNCitDcmVhdGVSZWNMaXN0DQorQ3JlYXRlVHdpbkxpc3QNCitEZWxldGVCcmllZmNhc2UNCitEZWxldGVUd2luDQorRGVzdHJveUZvbGRlclR3aW5MaXN0DQorRGVzdHJveVJlY0xpc3QNCitEZXN0cm95VHdpbkxpc3QNCitFbmRSZWNvbmNpbGlhdGlvbg0KK0ZpbmRCcmllZmNhc2VDbG9zZQ0KK0ZpbmRGaXJzdEJyaWVmY2FzZQ0KK0ZpbmROZXh0QnJpZWZjYXNlDQorR2V0RmlsZVN0YW1wDQorR2V0Rm9sZGVyVHdpblN0YXR1cw0KK0dldE9iamVjdFR3aW5IYW5kbGUNCitHZXRPcGVuQnJpZWZjYXNlSW5mbw0KK0dldFZvbHVtZURlc2NyaXB0aW9uDQorSXNGb2xkZXJUd2luDQorSXNPcnBoYW5PYmplY3RUd2luDQorSXNQYXRoT25Wb2x1bWUNCitPcGVuQnJpZWZjYXNlDQorUmVjb25jaWxlSXRlbQ0KK1JlbGVhc2VUd2luSGFuZGxlDQorUmVtb3ZlQWxsVHdpbnNGcm9tVHdpbkxpc3QNCitSZW1vdmVUd2luRnJvbVR3aW5MaXN0DQorU2F2ZUJyaWVmY2FzZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3N5bmN1aS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zeW5jdWkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY5NjU3YmEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zeW5jdWkuZGVmCkBAIC0wLDAgKzEsMTQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU1lOQ1VJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTWU5DVUkuZGxsDQorRVhQT1JUUw0KK0JyaWVmY2FzZV9DcmVhdGUNCitCcmllZmNhc2VfSW50cm8NCitCcmllZmNhc2VfQ3JlYXRlVw0KK0JyaWVmY2FzZV9DcmVhdGVBDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi9zeXNpbnYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc3lzaW52LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YzgzOGJkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvc3lzaW52LmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFN5c0ludi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU3lzSW52LmRsbA0KK0VYUE9SVFMNCitHZXRTeXN0ZW1JbnZlbnRvcnlBDQorR2V0U3lzdGVtSW52ZW50b3J5Vw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3N5c21vZC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi9zeXNtb2QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgyYzQ0N2UKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zeXNtb2QuZGVmCkBAIC0wLDAgKzEsMTUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU1lTTU9ELmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTWVNNT0QuZGxsDQorRVhQT1JUUw0KK0Rlc3RpbmF0aW9uTW9kdWxlDQorRGxsTWFpbg0KK01vZHVsZUluaXRpYWxpemUNCitNb2R1bGVUZXJtaW5hdGUNCitTb3VyY2VNb2R1bGUNCitUeXBlTW9kdWxlDQorVmlydHVhbENvbXB1dGVyTW9kdWxlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvc3lzc2V0dXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvc3lzc2V0dXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBjNjQ3MTcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi9zeXNzZXR1cC5kZWYKQEAgLTAsMCArMSw5NiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTWVNTRVRVUC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU1lTU0VUVVAuZGxsDQorRVhQT1JUUw0KK0FzckFkZFNpZkVudHJ5QQ0KK0FzckFkZFNpZkVudHJ5Vw0KK0FzckNyZWF0ZVN0YXRlRmlsZUENCitBc3JDcmVhdGVTdGF0ZUZpbGVXDQorQXNyRnJlZUNvbnRleHQNCitBc3JSZXN0b3JlUGx1Z1BsYXlSZWdpc3RyeURhdGENCitBc3JwR2V0TG9jYWxEaXNrSW5mbw0KK0FzcnBHZXRMb2NhbFZvbHVtZUluZm8NCitBc3JwUmVzdG9yZU5vbkNyaXRpY2FsRGlza3NXDQorQ29tcHV0ZXJDbGFzc0luc3RhbGxlcg0KK0NyZWF0ZUxvY2FsQWRtaW5BY2NvdW50DQorQ3JlYXRlTG9jYWxBZG1pbkFjY291bnRFeA0KK0NyZWF0ZUxvY2FsVXNlckFjY291bnQNCitDcml0aWNhbERldmljZUNvSW5zdGFsbGVyDQorRGV2SW5zdGFsbFcNCitEZXZpY2VCYXlDbGFzc0luc3RhbGxlcg0KK0Rpc2tQcm9wUGFnZVByb3ZpZGVyDQorRG9JbnN0YWxsQ29tcG9uZW50SW5mcw0KK0Vpc2FVcEhhbENvSW5zdGFsbGVyDQorR2VuZXJhdGVOYW1lDQorR2V0QW5zd2VyRmlsZVNldHRpbmcNCitIZGNDbGFzc0luc3RhbGxlcg0KK0luaXRpYWxpemVTZXR1cExvZw0KK0luc3RhbGxXaW5kb3dzTnQNCitJbnZva2VFeHRlcm5hbEFwcGxpY2F0aW9uRXgNCitLZXlib2FyZENsYXNzSW5zdGFsbGVyDQorTGVnYWN5RHJpdmVyUHJvcFBhZ2VQcm92aWRlcg0KK01pZ3JhdGVFeGNlcHRpb25QYWNrYWdlcw0KK01vdXNlQ2xhc3NJbnN0YWxsZXINCitOdEFwbUNsYXNzSW5zdGFsbGVyDQorT3BrQ2hlY2tWZXJzaW9uDQorUFMyTW91c2VQcm9wUGFnZVByb3ZpZGVyDQorUG5QSW5pdGlhbGl6YXRpb25UaHJlYWQNCitQcmVwYXJlRm9yQXVkaXQNCitSZXBhaXJTdGFydE1lbnVJdGVtcw0KK1JlcG9ydEVycm9yDQorUnVuT0VNRXh0cmFUYXNrcw0KK1Njc2lDbGFzc0luc3RhbGxlcg0KK1NldEFjY291bnRzRG9tYWluU2lkDQorU2V0dXBBZGRPclJlbW92ZVRlc3RDZXJ0aWZpY2F0ZQ0KK1NldHVwQ2hhbmdlRm9udFNpemUNCitTZXR1cENoYW5nZUxvY2FsZQ0KK1NldHVwQ2hhbmdlTG9jYWxlRXgNCitTZXR1cENyZWF0ZU9wdGlvbmFsQ29tcG9uZW50c1BhZ2UNCitTZXR1cERlc3Ryb3lMYW5ndWFnZUxpc3QNCitTZXR1cERlc3Ryb3lQaG9uZUxpc3QNCitTZXR1cEVudW1lcmF0ZVJlZ2lzdGVyZWRPc0NvbXBvbmVudHMNCitTZXR1cEV4dGVuZFBhcnRpdGlvbg0KK1NldHVwR2V0R2VvT3B0aW9ucw0KK1NldHVwR2V0SW5zdGFsbE1vZGUNCitTZXR1cEdldEtleWJvYXJkT3B0aW9ucw0KK1NldHVwR2V0TG9jYWxlT3B0aW9ucw0KK1NldHVwR2V0UHJvZHVjdFR5cGUNCitTZXR1cEdldFNldHVwSW5mbw0KK1NldHVwR2V0VmFsaWRFdWxhDQorU2V0dXBJRUhhcmRlbmluZ1NldHRpbmdzDQorU2V0dXBJbmZPYmplY3RJbnN0YWxsQWN0aW9uVw0KK1NldHVwSW5zdGFsbENhdGFsb2cNCitTZXR1cE1hcFRhcGlUb0lzbw0KK1NldHVwT29iZUJuaw0KK1NldHVwT29iZUNsZWFudXANCitTZXR1cE9vYmVJbml0RGVidWdMb2cNCitTZXR1cE9vYmVJbml0UG9zdFNlcnZpY2VzDQorU2V0dXBPb2JlSW5pdFByZVNlcnZpY2VzDQorU2V0dXBQaWRHZW4zDQorU2V0dXBRdWVyeVJlZ2lzdGVyZWRPc0NvbXBvbmVudA0KK1NldHVwUXVlcnlSZWdpc3RlcmVkT3NDb21wb25lbnRzT3JkZXINCitTZXR1cFJlYWRQaG9uZUxpc3QNCitTZXR1cFJlZ2lzdGVyT3NDb21wb25lbnQNCitTZXR1cFNldEFkbWluUGFzc3dvcmQNCitTZXR1cFNldERpc3BsYXkNCitTZXR1cFNldEludGxPcHRpb25zDQorU2V0dXBTZXRSZWdpc3RlcmVkT3NDb21wb25lbnRzT3JkZXINCitTZXR1cFNldFNldHVwSW5mbw0KK1NldHVwU2hlbGxTZXR0aW5ncw0KK1NldHVwU3RhcnRTZXJ2aWNlDQorU2V0dXBVblJlZ2lzdGVyT3NDb21wb25lbnQNCitTdG9yYWdlQ29JbnN0YWxsZXINCitTeXN0ZW1VcGRhdGVVc2VyUHJvZmlsZURpcmVjdG9yeQ0KK1RhcGVDbGFzc0luc3RhbGxlcg0KK1RhcGVQcm9wUGFnZVByb3ZpZGVyDQorVGVybWluYXRlU2V0dXBMb2cNCitVcGRhdGVQbnBEZXZpY2VEcml2ZXJzDQorVXBncmFkZVByaW50ZXJzDQorVmlld1NldHVwQWN0aW9uTG9nDQorVm9sdW1lQ2xhc3NJbnN0YWxsZXINCitwU2V0dXBEZWJ1Z1ByaW50DQorcFNldHVwbG9nU2ZjRXJyb3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi90MmVtYmVkLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3QyZW1iZWQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY0MzFlNmIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi90MmVtYmVkLmRlZgpAQCAtMCwwICsxLDIyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHQyZW1iZWQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHQyZW1iZWQuZGxsDQorRVhQT1JUUw0KK1RUQ2hhclRvVW5pY29kZQ0KK1RURGVsZXRlRW1iZWRkZWRGb250DQorVFRFbWJlZEZvbnQNCitUVEVtYmVkRm9udEV4DQorVFRFbWJlZEZvbnRGcm9tRmlsZUENCitUVEVuYWJsZUVtYmVkZGluZ0ZvckZhY2VuYW1lDQorVFRHZXRFbWJlZGRlZEZvbnRJbmZvDQorVFRHZXRFbWJlZGRpbmdUeXBlDQorVFRHZXROZXdGb250TmFtZQ0KK1RUSXNFbWJlZGRpbmdFbmFibGVkDQorVFRJc0VtYmVkZGluZ0VuYWJsZWRGb3JGYWNlbmFtZQ0KK1RUTG9hZEVtYmVkZGVkRm9udA0KK1RUUnVuVmFsaWRhdGlvblRlc3RzDQorVFRSdW5WYWxpZGF0aW9uVGVzdHNFeA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3RhcGkzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3RhcGkzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYjM2MWU3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdGFwaTMuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgdGFwaTMuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHRhcGkzLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3RhcGkzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi90YXBpMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIyMDQxYjAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi90YXBpMzIuZGVmCkBAIC0wLDAgKzEsMjg2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFRBUEkzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgVEFQSTMyLmRsbA0KK0VYUE9SVFMNCitHZXRUYXBpMTZDYWxsYmFja01zZw0KK0xBZGRyUGFyYW1zSW5pdGVkDQorTE9wZW5EaWFsQXNzdA0KK0xvY1dpemFyZERsZ1Byb2MNCitNTUNBZGRQcm92aWRlcg0KK01NQ0NvbmZpZ1Byb3ZpZGVyDQorTU1DR2V0QXZhaWxhYmxlUHJvdmlkZXJzDQorTU1DR2V0RGV2aWNlRmxhZ3MNCitNTUNHZXRMaW5lSW5mbw0KK01NQ0dldExpbmVTdGF0dXMNCitNTUNHZXRQaG9uZUluZm8NCitNTUNHZXRQaG9uZVN0YXR1cw0KK01NQ0dldFByb3ZpZGVyTGlzdA0KK01NQ0dldFNlcnZlckNvbmZpZw0KK01NQ0luaXRpYWxpemUNCitNTUNSZW1vdmVQcm92aWRlcg0KK01NQ1NldExpbmVJbmZvDQorTU1DU2V0UGhvbmVJbmZvDQorTU1DU2V0U2VydmVyQ29uZmlnDQorTU1DU2h1dGRvd24NCitOb25Bc3luY0V2ZW50VGhyZWFkDQorVEFQSVduZFByb2MNCitUVUlTUElETExDYWxsYmFjaw0KK2ludGVybmFsQ29uZmlnDQoraW50ZXJuYWxDcmVhdGVEZWZMb2NhdGlvbg0KK2ludGVybmFsTmV3TG9jYXRpb25XDQoraW50ZXJuYWxQZXJmb3JtYW5jZQ0KK2ludGVybmFsUmVtb3ZlTG9jYXRpb24NCitpbnRlcm5hbFJlbmFtZUxvY2F0aW9uVw0KK2xpbmVBY2NlcHQNCitsaW5lQWRkUHJvdmlkZXINCitsaW5lQWRkUHJvdmlkZXJBDQorbGluZUFkZFByb3ZpZGVyVw0KK2xpbmVBZGRUb0NvbmZlcmVuY2UNCitsaW5lQWdlbnRTcGVjaWZpYw0KK2xpbmVBbnN3ZXINCitsaW5lQmxpbmRUcmFuc2Zlcg0KK2xpbmVCbGluZFRyYW5zZmVyQQ0KK2xpbmVCbGluZFRyYW5zZmVyVw0KK2xpbmVDbG9zZQ0KK2xpbmVDb21wbGV0ZUNhbGwNCitsaW5lQ29tcGxldGVUcmFuc2Zlcg0KK2xpbmVDb25maWdEaWFsb2cNCitsaW5lQ29uZmlnRGlhbG9nQQ0KK2xpbmVDb25maWdEaWFsb2dFZGl0DQorbGluZUNvbmZpZ0RpYWxvZ0VkaXRBDQorbGluZUNvbmZpZ0RpYWxvZ0VkaXRXDQorbGluZUNvbmZpZ0RpYWxvZ1cNCitsaW5lQ29uZmlnUHJvdmlkZXINCitsaW5lQ3JlYXRlQWdlbnRBDQorbGluZUNyZWF0ZUFnZW50U2Vzc2lvbkENCitsaW5lQ3JlYXRlQWdlbnRTZXNzaW9uVw0KK2xpbmVDcmVhdGVBZ2VudFcNCitsaW5lRGVhbGxvY2F0ZUNhbGwNCitsaW5lRGV2U3BlY2lmaWMNCitsaW5lRGV2U3BlY2lmaWNGZWF0dXJlDQorbGluZURpYWwNCitsaW5lRGlhbEENCitsaW5lRGlhbFcNCitsaW5lRHJvcA0KK2xpbmVGb3J3YXJkDQorbGluZUZvcndhcmRBDQorbGluZUZvcndhcmRXDQorbGluZUdhdGhlckRpZ2l0cw0KK2xpbmVHYXRoZXJEaWdpdHNBDQorbGluZUdhdGhlckRpZ2l0c1cNCitsaW5lR2VuZXJhdGVEaWdpdHMNCitsaW5lR2VuZXJhdGVEaWdpdHNBDQorbGluZUdlbmVyYXRlRGlnaXRzVw0KK2xpbmVHZW5lcmF0ZVRvbmUNCitsaW5lR2V0QWRkcmVzc0NhcHMNCitsaW5lR2V0QWRkcmVzc0NhcHNBDQorbGluZUdldEFkZHJlc3NDYXBzVw0KK2xpbmVHZXRBZGRyZXNzSUQNCitsaW5lR2V0QWRkcmVzc0lEQQ0KK2xpbmVHZXRBZGRyZXNzSURXDQorbGluZUdldEFkZHJlc3NTdGF0dXMNCitsaW5lR2V0QWRkcmVzc1N0YXR1c0ENCitsaW5lR2V0QWRkcmVzc1N0YXR1c1cNCitsaW5lR2V0QWdlbnRBY3Rpdml0eUxpc3RBDQorbGluZUdldEFnZW50QWN0aXZpdHlMaXN0Vw0KK2xpbmVHZXRBZ2VudENhcHNBDQorbGluZUdldEFnZW50Q2Fwc1cNCitsaW5lR2V0QWdlbnRHcm91cExpc3RBDQorbGluZUdldEFnZW50R3JvdXBMaXN0Vw0KK2xpbmVHZXRBZ2VudEluZm8NCitsaW5lR2V0QWdlbnRTZXNzaW9uSW5mbw0KK2xpbmVHZXRBZ2VudFNlc3Npb25MaXN0DQorbGluZUdldEFnZW50U3RhdHVzQQ0KK2xpbmVHZXRBZ2VudFN0YXR1c1cNCitsaW5lR2V0QXBwUHJpb3JpdHkNCitsaW5lR2V0QXBwUHJpb3JpdHlBDQorbGluZUdldEFwcFByaW9yaXR5Vw0KK2xpbmVHZXRDYWxsSW5mbw0KK2xpbmVHZXRDYWxsSW5mb0ENCitsaW5lR2V0Q2FsbEluZm9XDQorbGluZUdldENhbGxTdGF0dXMNCitsaW5lR2V0Q29uZlJlbGF0ZWRDYWxscw0KK2xpbmVHZXRDb3VudHJ5DQorbGluZUdldENvdW50cnlBDQorbGluZUdldENvdW50cnlXDQorbGluZUdldERldkNhcHMNCitsaW5lR2V0RGV2Q2Fwc0ENCitsaW5lR2V0RGV2Q2Fwc1cNCitsaW5lR2V0RGV2Q29uZmlnDQorbGluZUdldERldkNvbmZpZ0ENCitsaW5lR2V0RGV2Q29uZmlnVw0KK2xpbmVHZXRHcm91cExpc3RBDQorbGluZUdldEdyb3VwTGlzdFcNCitsaW5lR2V0SUQNCitsaW5lR2V0SURBDQorbGluZUdldElEVw0KK2xpbmVHZXRJY29uDQorbGluZUdldEljb25BDQorbGluZUdldEljb25XDQorbGluZUdldExpbmVEZXZTdGF0dXMNCitsaW5lR2V0TGluZURldlN0YXR1c0ENCitsaW5lR2V0TGluZURldlN0YXR1c1cNCitsaW5lR2V0TWVzc2FnZQ0KK2xpbmVHZXROZXdDYWxscw0KK2xpbmVHZXROdW1SaW5ncw0KK2xpbmVHZXRQcm92aWRlckxpc3QNCitsaW5lR2V0UHJvdmlkZXJMaXN0QQ0KK2xpbmVHZXRQcm92aWRlckxpc3RXDQorbGluZUdldFByb3h5U3RhdHVzDQorbGluZUdldFF1ZXVlSW5mbw0KK2xpbmVHZXRRdWV1ZUxpc3RBDQorbGluZUdldFF1ZXVlTGlzdFcNCitsaW5lR2V0UmVxdWVzdA0KK2xpbmVHZXRSZXF1ZXN0QQ0KK2xpbmVHZXRSZXF1ZXN0Vw0KK2xpbmVHZXRTdGF0dXNNZXNzYWdlcw0KK2xpbmVHZXRUcmFuc2xhdGVDYXBzDQorbGluZUdldFRyYW5zbGF0ZUNhcHNBDQorbGluZUdldFRyYW5zbGF0ZUNhcHNXDQorbGluZUhhbmRvZmYNCitsaW5lSGFuZG9mZkENCitsaW5lSGFuZG9mZlcNCitsaW5lSG9sZA0KK2xpbmVJbml0aWFsaXplDQorbGluZUluaXRpYWxpemVFeEENCitsaW5lSW5pdGlhbGl6ZUV4Vw0KK2xpbmVNYWtlQ2FsbA0KK2xpbmVNYWtlQ2FsbEENCitsaW5lTWFrZUNhbGxXDQorbGluZU1vbml0b3JEaWdpdHMNCitsaW5lTW9uaXRvck1lZGlhDQorbGluZU1vbml0b3JUb25lcw0KK2xpbmVOZWdvdGlhdGVBUElWZXJzaW9uDQorbGluZU5lZ290aWF0ZUV4dFZlcnNpb24NCitsaW5lT3Blbg0KK2xpbmVPcGVuQQ0KK2xpbmVPcGVuVw0KK2xpbmVQYXJrDQorbGluZVBhcmtBDQorbGluZVBhcmtXDQorbGluZVBpY2t1cA0KK2xpbmVQaWNrdXBBDQorbGluZVBpY2t1cFcNCitsaW5lUHJlcGFyZUFkZFRvQ29uZmVyZW5jZQ0KK2xpbmVQcmVwYXJlQWRkVG9Db25mZXJlbmNlQQ0KK2xpbmVQcmVwYXJlQWRkVG9Db25mZXJlbmNlVw0KK2xpbmVQcm94eU1lc3NhZ2UNCitsaW5lUHJveHlSZXNwb25zZQ0KK2xpbmVSZWRpcmVjdA0KK2xpbmVSZWRpcmVjdEENCitsaW5lUmVkaXJlY3RXDQorbGluZVJlZ2lzdGVyUmVxdWVzdFJlY2lwaWVudA0KK2xpbmVSZWxlYXNlVXNlclVzZXJJbmZvDQorbGluZVJlbW92ZUZyb21Db25mZXJlbmNlDQorbGluZVJlbW92ZVByb3ZpZGVyDQorbGluZVNlY3VyZUNhbGwNCitsaW5lU2VuZFVzZXJVc2VySW5mbw0KK2xpbmVTZXRBZ2VudEFjdGl2aXR5DQorbGluZVNldEFnZW50R3JvdXANCitsaW5lU2V0QWdlbnRNZWFzdXJlbWVudFBlcmlvZA0KK2xpbmVTZXRBZ2VudFNlc3Npb25TdGF0ZQ0KK2xpbmVTZXRBZ2VudFN0YXRlDQorbGluZVNldEFnZW50U3RhdGVFeA0KK2xpbmVTZXRBcHBQcmlvcml0eQ0KK2xpbmVTZXRBcHBQcmlvcml0eUENCitsaW5lU2V0QXBwUHJpb3JpdHlXDQorbGluZVNldEFwcFNwZWNpZmljDQorbGluZVNldENhbGxEYXRhDQorbGluZVNldENhbGxQYXJhbXMNCitsaW5lU2V0Q2FsbFByaXZpbGVnZQ0KK2xpbmVTZXRDYWxsUXVhbGl0eU9mU2VydmljZQ0KK2xpbmVTZXRDYWxsVHJlYXRtZW50DQorbGluZVNldEN1cnJlbnRMb2NhdGlvbg0KK2xpbmVTZXREZXZDb25maWcNCitsaW5lU2V0RGV2Q29uZmlnQQ0KK2xpbmVTZXREZXZDb25maWdXDQorbGluZVNldExpbmVEZXZTdGF0dXMNCitsaW5lU2V0TWVkaWFDb250cm9sDQorbGluZVNldE1lZGlhTW9kZQ0KK2xpbmVTZXROdW1SaW5ncw0KK2xpbmVTZXRRdWV1ZU1lYXN1cmVtZW50UGVyaW9kDQorbGluZVNldFN0YXR1c01lc3NhZ2VzDQorbGluZVNldFRlcm1pbmFsDQorbGluZVNldFRvbGxMaXN0DQorbGluZVNldFRvbGxMaXN0QQ0KK2xpbmVTZXRUb2xsTGlzdFcNCitsaW5lU2V0dXBDb25mZXJlbmNlDQorbGluZVNldHVwQ29uZmVyZW5jZUENCitsaW5lU2V0dXBDb25mZXJlbmNlVw0KK2xpbmVTZXR1cFRyYW5zZmVyDQorbGluZVNldHVwVHJhbnNmZXJBDQorbGluZVNldHVwVHJhbnNmZXJXDQorbGluZVNodXRkb3duDQorbGluZVN3YXBIb2xkDQorbGluZVRyYW5zbGF0ZUFkZHJlc3MNCitsaW5lVHJhbnNsYXRlQWRkcmVzc0ENCitsaW5lVHJhbnNsYXRlQWRkcmVzc1cNCitsaW5lVHJhbnNsYXRlRGlhbG9nDQorbGluZVRyYW5zbGF0ZURpYWxvZ0ENCitsaW5lVHJhbnNsYXRlRGlhbG9nVw0KK2xpbmVVbmNvbXBsZXRlQ2FsbA0KK2xpbmVVbmhvbGQNCitsaW5lVW5wYXJrDQorbGluZVVucGFya0ENCitsaW5lVW5wYXJrVw0KK3Bob25lQ2xvc2UNCitwaG9uZUNvbmZpZ0RpYWxvZw0KK3Bob25lQ29uZmlnRGlhbG9nQQ0KK3Bob25lQ29uZmlnRGlhbG9nVw0KK3Bob25lRGV2U3BlY2lmaWMNCitwaG9uZUdldEJ1dHRvbkluZm8NCitwaG9uZUdldEJ1dHRvbkluZm9BDQorcGhvbmVHZXRCdXR0b25JbmZvVw0KK3Bob25lR2V0RGF0YQ0KK3Bob25lR2V0RGV2Q2Fwcw0KK3Bob25lR2V0RGV2Q2Fwc0ENCitwaG9uZUdldERldkNhcHNXDQorcGhvbmVHZXREaXNwbGF5DQorcGhvbmVHZXRHYWluDQorcGhvbmVHZXRIb29rU3dpdGNoDQorcGhvbmVHZXRJRA0KK3Bob25lR2V0SURBDQorcGhvbmVHZXRJRFcNCitwaG9uZUdldEljb24NCitwaG9uZUdldEljb25BDQorcGhvbmVHZXRJY29uVw0KK3Bob25lR2V0TGFtcA0KK3Bob25lR2V0TWVzc2FnZQ0KK3Bob25lR2V0UmluZw0KK3Bob25lR2V0U3RhdHVzDQorcGhvbmVHZXRTdGF0dXNBDQorcGhvbmVHZXRTdGF0dXNNZXNzYWdlcw0KK3Bob25lR2V0U3RhdHVzVw0KK3Bob25lR2V0Vm9sdW1lDQorcGhvbmVJbml0aWFsaXplDQorcGhvbmVJbml0aWFsaXplRXhBDQorcGhvbmVJbml0aWFsaXplRXhXDQorcGhvbmVOZWdvdGlhdGVBUElWZXJzaW9uDQorcGhvbmVOZWdvdGlhdGVFeHRWZXJzaW9uDQorcGhvbmVPcGVuDQorcGhvbmVTZXRCdXR0b25JbmZvDQorcGhvbmVTZXRCdXR0b25JbmZvQQ0KK3Bob25lU2V0QnV0dG9uSW5mb1cNCitwaG9uZVNldERhdGENCitwaG9uZVNldERpc3BsYXkNCitwaG9uZVNldEdhaW4NCitwaG9uZVNldEhvb2tTd2l0Y2gNCitwaG9uZVNldExhbXANCitwaG9uZVNldFJpbmcNCitwaG9uZVNldFN0YXR1c01lc3NhZ2VzDQorcGhvbmVTZXRWb2x1bWUNCitwaG9uZVNodXRkb3duDQordGFwaUdldExvY2F0aW9uSW5mbw0KK3RhcGlHZXRMb2NhdGlvbkluZm9BDQordGFwaUdldExvY2F0aW9uSW5mb1cNCit0YXBpUmVxdWVzdERyb3ANCit0YXBpUmVxdWVzdE1ha2VDYWxsDQordGFwaVJlcXVlc3RNYWtlQ2FsbEENCit0YXBpUmVxdWVzdE1ha2VDYWxsVw0KK3RhcGlSZXF1ZXN0TWVkaWFDYWxsDQordGFwaVJlcXVlc3RNZWRpYUNhbGxBDQordGFwaVJlcXVlc3RNZWRpYUNhbGxXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvdGFwaXBlcmYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdGFwaXBlcmYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM3ZmE3MmUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi90YXBpcGVyZi5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBUQVBJUEVSRi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgVEFQSVBFUkYuZGxsDQorRVhQT1JUUw0KK0Nsb3NlVGFwaVBlcmZvcm1hbmNlRGF0YQ0KK0NvbGxlY3RUYXBpUGVyZm9ybWFuY2VEYXRhDQorT3BlblRhcGlQZXJmb3JtYW5jZURhdGENCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi90YXBpc3J2LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3RhcGlzcnYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBjMzQ1NTMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi90YXBpc3J2LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgdGFwaXNydi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgdGFwaXNydi5kbGwNCitFWFBPUlRTDQorU2VydmljZU1haW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi90Y3BtaWIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdGNwbWliLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MTQ5MDBiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdGNwbWliLmRlZgpAQCAtMCwwICsxLDcyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFRDUE1JQi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgVENQTUlCLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBDVGNwTWliOjpDVGNwTWliKGNsYXNzIENUY3BNaWIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1RjcE1pYkBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENUY3BNaWI6OkNUY3BNaWIodm9pZCkgX19wdHI2NA0KKz8/MENUY3BNaWJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVGNwTWliQUJDOjpDVGNwTWliQUJDKGNsYXNzIENUY3BNaWJBQkMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1RjcE1pYkFCQ0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENUY3BNaWJBQkM6OkNUY3BNaWJBQkModm9pZCkgX19wdHI2NA0KKz8/MENUY3BNaWJBQkNAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENUY3BNaWI6On5DVGNwTWliKHZvaWQpIF9fcHRyNjQNCis/PzFDVGNwTWliQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDVGNwTWliQUJDOjp+Q1RjcE1pYkFCQyh2b2lkKSBfX3B0cjY0DQorPz8xQ1RjcE1pYkFCQ0BAVUVBQUBYWg0KKzsgcHVibGljOiBjbGFzcyBDVGNwTWliICYgX19wdHI2NCBfX2NkZWNsIENUY3BNaWI6Om9wZXJhdG9yPShjbGFzcyBDVGNwTWliIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENUY3BNaWJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDVGNwTWliQUJDICYgX19wdHI2NCBfX2NkZWNsIENUY3BNaWJBQkM6Om9wZXJhdG9yPShjbGFzcyBDVGNwTWliQUJDIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENUY3BNaWJBQkNAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgY29uc3QgIENUY3BNaWI6OmB2ZnRhYmxlJw0KKz8/XzdDVGNwTWliQEA2QkANCis7IGNvbnN0ICBDVGNwTWliQUJDOjpgdmZ0YWJsZScNCis/P183Q1RjcE1pYkFCQ0BANkJADQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1RjcE1pYjo6RW50ZXJDU2VjdGlvbih2b2lkKSBfX3B0cjY0DQorP0VudGVyQ1NlY3Rpb25AQ1RjcE1pYkBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENUY3BNaWI6OkV4aXRDU2VjdGlvbih2b2lkKSBfX3B0cjY0DQorP0V4aXRDU2VjdGlvbkBDVGNwTWliQEBBRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENUY3BNaWI6OkdldERldmljZURlc2NyaXB0aW9uKGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/R2V0RGV2aWNlRGVzY3JpcHRpb25AQ1RjcE1pYkBAVUVBQUtQRUJEMEtQRUFHS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENUY3BNaWI6OkdldERldmljZUhXQWRkcmVzcyhjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERldmljZUhXQWRkcmVzc0BDVGNwTWliQEBVRUFBS1BFQkQwS0tQRUFHQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1RjcE1pYjo6R2V0RGV2aWNlTmFtZShjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERldmljZU5hbWVAQ1RjcE1pYkBAVUVBQUtQRUJEMEtLUEVBR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENUY3BNaWI6OkdldE5leHRSZXF1ZXN0SWQodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TmV4dFJlcXVlc3RJZEBDVGNwTWliQEBVRUFBS1BFQUtAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDVGNwTWliOjpHZXRTdGF0dXNGcm9tVkJMKHZvaWQgKiBfX3B0cjY0LHN0cnVjdCBzbWlWQUxVRSAqIF9fcHRyNjQsc3RydWN0IHNtaVZBTFVFICogX19wdHI2NCxzdHJ1Y3Qgc21pVkFMVUUgKiBfX3B0cjY0KQ0KKz9HZXRTdGF0dXNGcm9tVkJMQENUY3BNaWJAQENBS1BFQVhQRUFVc21pVkFMVUVAQDExQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1RjcE1pYjo6SW5pdFNubXAodm9pZCkgX19wdHI2NA0KKz9Jbml0U25tcEBDVGNwTWliQEBVRUFBS1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENUY3BNaWI6OklzVmFsaWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1ZhbGlkQENUY3BNaWJAQFFFQkFIWFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgX19jZGVjbCBDVGNwTWliOjpNYXBBc3luY2hUb1BvcnRTdGF0dXModW5zaWduZWQgbG9uZyxzdHJ1Y3QgX1BPUlRfSU5GT18zVyAqIF9fcHRyNjQpDQorP01hcEFzeW5jaFRvUG9ydFN0YXR1c0BDVGNwTWliQEBDQUhLUEVBVV9QT1JUX0lORk9fM1dAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENUY3BNaWI6OlJlZ2lzdGVyRGV2aWNlU3RhdHVzQ2FsbGJhY2sodW5zaWduZWQgbG9uZyAoX19jZGVjbCopKGludCxjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyksdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlZ2lzdGVyRGV2aWNlU3RhdHVzQ2FsbGJhY2tAQ1RjcE1pYkBAVUVBQUtQNkFLSFBFQkQwS0tLQFpQRUFQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1RjcE1pYjo6UmVxdWVzdERldmljZVN0YXR1cyh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZXF1ZXN0RGV2aWNlU3RhdHVzQENUY3BNaWJAQFVFQUFLUEVBWEtQRUJHMUtAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDVGNwTWliOjpTbm1wQ2FsbGJhY2sodm9pZCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIF9faW50NjQsX19pbnQ2NCx2b2lkICogX19wdHI2NCkNCis/U25tcENhbGxiYWNrQENUY3BNaWJAQENBS1BFQVgwSV9LX0owQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENUY3BNaWI6OlNubXBHZXQoY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgU25tcFZhckJpbmRMaXN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Tbm1wR2V0QENUY3BNaWJAQFFFQUFLUEVCRDBLUEVBVVNubXBWYXJCaW5kTGlzdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1RjcE1pYjo6U25tcEdldChjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHN0cnVjdCBBc25PYmplY3RJZGVudGlmaWVyICogX19wdHI2NCxzdHJ1Y3QgU25tcFZhckJpbmRMaXN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Tbm1wR2V0QENUY3BNaWJAQFVFQUFLUEVCRDBLUEVBVUFzbk9iamVjdElkZW50aWZpZXJAQFBFQVVTbm1wVmFyQmluZExpc3RAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDVGNwTWliOjpTbm1wR2V0TmV4dChjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHN0cnVjdCBTbm1wVmFyQmluZExpc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NubXBHZXROZXh0QENUY3BNaWJAQFFFQUFLUEVCRDBLUEVBVVNubXBWYXJCaW5kTGlzdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1RjcE1pYjo6U25tcEdldE5leHQoY2hhciBjb25zdCAqIF9fcHRyNjQsY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgQXNuT2JqZWN0SWRlbnRpZmllciAqIF9fcHRyNjQsc3RydWN0IFNubXBWYXJCaW5kTGlzdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U25tcEdldE5leHRAQ1RjcE1pYkBAVUVBQUtQRUJEMEtQRUFVQXNuT2JqZWN0SWRlbnRpZmllckBAUEVBVVNubXBWYXJCaW5kTGlzdEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENUY3BNaWI6OlNubXBXYWxrKGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsc3RydWN0IFNubXBWYXJCaW5kTGlzdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U25tcFdhbGtAQ1RjcE1pYkBAUUVBQUtQRUJEMEtQRUFVU25tcFZhckJpbmRMaXN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDVGNwTWliOjpTbm1wV2FsayhjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHN0cnVjdCBBc25PYmplY3RJZGVudGlmaWVyICogX19wdHI2NCxzdHJ1Y3QgU25tcFZhckJpbmRMaXN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Tbm1wV2Fsa0BDVGNwTWliQEBVRUFBS1BFQkQwS1BFQVVBc25PYmplY3RJZGVudGlmaWVyQEBQRUFVU25tcFZhckJpbmRMaXN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENUY3BNaWI6OlN1cHBvcnRzUHJpbnRlck1pYihjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U3VwcG9ydHNQcmludGVyTWliQENUY3BNaWJAQFVFQUFIUEVCRDBLUEVBSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENUY3BNaWI6OlVuSW5pdFNubXAodm9pZCkgX19wdHI2NA0KKz9VbkluaXRTbm1wQENUY3BNaWJAQFVFQUFYWFoNCitHZXRUY3BNaWJQdHINCitQaW5nDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvdGNwbW9uLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3RjcG1vbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTlmOTgwNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3RjcG1vbi5kZWYKQEAgLTAsMCArMSwzMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBUQ1BNT04uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFRDUE1PTi5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1BvcnRBQkM6OkNQb3J0QUJDKGNsYXNzIENQb3J0QUJDIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENQb3J0QUJDQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1BvcnRBQkM6OkNQb3J0QUJDKHZvaWQpIF9fcHRyNjQNCis/PzBDUG9ydEFCQ0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENUY3BNaWJBQkM6OkNUY3BNaWJBQkMoY2xhc3MgQ1RjcE1pYkFCQyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDVGNwTWliQUJDQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1RjcE1pYkFCQzo6Q1RjcE1pYkFCQyh2b2lkKSBfX3B0cjY0DQorPz8wQ1RjcE1pYkFCQ0BAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1BvcnRBQkM6On5DUG9ydEFCQyh2b2lkKSBfX3B0cjY0DQorPz8xQ1BvcnRBQkNAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENUY3BNaWJBQkM6On5DVGNwTWliQUJDKHZvaWQpIF9fcHRyNjQNCis/PzFDVGNwTWliQUJDQEBVRUFBQFhaDQorOyBwdWJsaWM6IGNsYXNzIENQb3J0QUJDICYgX19wdHI2NCBfX2NkZWNsIENQb3J0QUJDOjpvcGVyYXRvcj0oY2xhc3MgQ1BvcnRBQkMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1BvcnRBQkNAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDVGNwTWliQUJDICYgX19wdHI2NCBfX2NkZWNsIENUY3BNaWJBQkM6Om9wZXJhdG9yPShjbGFzcyBDVGNwTWliQUJDIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENUY3BNaWJBQkNAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgY29uc3QgIENQb3J0QUJDOjpgdmZ0YWJsZScNCis/P183Q1BvcnRBQkNAQDZCQA0KKzsgY29uc3QgIENUY3BNaWJBQkM6OmB2ZnRhYmxlJw0KKz8/XzdDVGNwTWliQUJDQEA2QkANCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1BvcnRBQkM6OlJlYWQodm9pZCAqIF9fcHRyNjQgY29uc3QsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWFkQENQb3J0QUJDQEBVRUFBS1FFQVhQRUFFS1BFQUtAWg0KK0luaXRpYWxpemVQcmludE1vbml0b3IyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvdGNwbW9udWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdGNwbW9udWkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUzNTU1ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi90Y3Btb251aS5kZWYKQEAgLTAsMCArMSwzMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBUQ1BNb25VSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgVENQTW9uVUkuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIENQb3J0QUJDOjpDUG9ydEFCQyhjbGFzcyBDUG9ydEFCQyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDUG9ydEFCQ0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENQb3J0QUJDOjpDUG9ydEFCQyh2b2lkKSBfX3B0cjY0DQorPz8wQ1BvcnRBQkNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVGNwTWliQUJDOjpDVGNwTWliQUJDKGNsYXNzIENUY3BNaWJBQkMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1RjcE1pYkFCQ0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENUY3BNaWJBQkM6OkNUY3BNaWJBQkModm9pZCkgX19wdHI2NA0KKz8/MENUY3BNaWJBQkNAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENQb3J0QUJDOjp+Q1BvcnRBQkModm9pZCkgX19wdHI2NA0KKz8/MUNQb3J0QUJDQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDVGNwTWliQUJDOjp+Q1RjcE1pYkFCQyh2b2lkKSBfX3B0cjY0DQorPz8xQ1RjcE1pYkFCQ0BAVUVBQUBYWg0KKzsgcHVibGljOiBjbGFzcyBDUG9ydEFCQyAmIF9fcHRyNjQgX19jZGVjbCBDUG9ydEFCQzo6b3BlcmF0b3I9KGNsYXNzIENQb3J0QUJDIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENQb3J0QUJDQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1RjcE1pYkFCQyAmIF9fcHRyNjQgX19jZGVjbCBDVGNwTWliQUJDOjpvcGVyYXRvcj0oY2xhc3MgQ1RjcE1pYkFCQyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDVGNwTWliQUJDQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IGNvbnN0ICBDUG9ydEFCQzo6YHZmdGFibGUnDQorPz9fN0NQb3J0QUJDQEA2QkANCis7IGNvbnN0ICBDVGNwTWliQUJDOjpgdmZ0YWJsZScNCis/P183Q1RjcE1pYkFCQ0BANkJADQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENQb3J0QUJDOjpSZWFkKHZvaWQgKiBfX3B0cjY0IGNvbnN0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVhZEBDUG9ydEFCQ0BAVUVBQUtRRUFYUEVBRUtQRUFLQFoNCitJbml0aWFsaXplUHJpbnRNb25pdG9yVUkNCitMb2NhbEFkZFBvcnRVSQ0KK0xvY2FsQ29uZmlndXJlUG9ydFVJDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvdGVybW1nci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi90ZXJtbWdyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jODA3NTczCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdGVybW1nci5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB0ZXJtbWdyLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSB0ZXJtbWdyLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3Rlcm1zcnYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdGVybXNydi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTNkZTY2OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3Rlcm1zcnYuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBURVJNU1JWLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBURVJNU1JWLmRsbA0KK0VYUE9SVFMNCitTZXJ2aWNlTWFpbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3RoYXdicmtyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3RoYXdicmtyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iZWQ0ZWVlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdGhhd2Jya3IuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgdGhhd2Jya3IuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHRoYXdicmtyLmRsbA0KK0VYUE9SVFMNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3RoZW1ldWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdGhlbWV1aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWJjNDViMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3RoZW1ldWkuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgVGhlbWVVSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgVGhlbWVVSS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxJbnN0YWxsDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvdGxudHN2cnAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdGxudHN2cnAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhkMGZkMDEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi90bG50c3ZycC5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBUbG50U3ZyUFMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFRsbnRTdnJQUy5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitHZXRQcm94eURsbEluZm8NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi90cmFmZmljLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3RyYWZmaWMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE2YzJjNWQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi90cmFmZmljLmRlZgpAQCAtMCwwICsxLDI4IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFRSQUZGSUMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFRSQUZGSUMuZGxsDQorRVhQT1JUUw0KK1RjQWRkRmlsdGVyDQorVGNBZGRGbG93DQorVGNDbG9zZUludGVyZmFjZQ0KK1RjRGVsZXRlRmlsdGVyDQorVGNEZWxldGVGbG93DQorVGNEZXJlZ2lzdGVyQ2xpZW50DQorVGNFbnVtZXJhdGVGbG93cw0KK1RjRW51bWVyYXRlSW50ZXJmYWNlcw0KK1RjR2V0Rmxvd05hbWVBDQorVGNHZXRGbG93TmFtZVcNCitUY01vZGlmeUZsb3cNCitUY09wZW5JbnRlcmZhY2VBDQorVGNPcGVuSW50ZXJmYWNlVw0KK1RjUXVlcnlGbG93QQ0KK1RjUXVlcnlGbG93Vw0KK1RjUXVlcnlJbnRlcmZhY2UNCitUY1JlZ2lzdGVyQ2xpZW50DQorVGNTZXRGbG93QQ0KK1RjU2V0Rmxvd1cNCitUY1NldEludGVyZmFjZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3RyaWFsb2MuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdHJpYWxvYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzg3ODNjMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3RyaWFsb2MuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgdHJpYWxvYy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgdHJpYWxvYy5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi90cmt3a3MuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdHJrd2tzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYTE5MzlkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdHJrd2tzLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHRya3drcy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgdHJrd2tzLmRsbA0KK0VYUE9SVFMNCitTZXJ2aWNlRW50cnkNCitTZXJ2aWNlTWFpbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3RzYXBwY21wLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3RzYXBwY21wLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYWY1MjljCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdHNhcHBjbXAuZGVmCkBAIC0wLDAgKzEsMzcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgVFNBUFBDTVAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFRTQVBQQ01QLmRsbA0KK0VYUE9SVFMNCitUZXJtU2VydlByZXBhcmVBcHBJbnN0YWxsRHVlTVNJDQorVGVybVNlcnZQcm9jZXNzQXBwSW5zdGFsbER1ZU1TSQ0KK0dldFRlcm1zckNvbXBhdEZsYWdzDQorR2V0VGVybXNyQ29tcGF0RmxhZ3NFeA0KK1Rlcm1zcnZBZGp1c3RQaHlNZW1MaW1pdHMNCitUZXJtc3J2QnVpbGRJbmlGaWxlTmFtZQ0KK1Rlcm1zcnZCdWlsZFN5c0luaVBhdGgNCitUZXJtc3J2Q09SSW5pRmlsZQ0KK1Rlcm1zcnZDaGVja05ld0luaUZpbGVzDQorVGVybXNydkNvbnZlcnRTeXNSb290VG9Vc2VyRGlyDQorVGVybXNydkNvcHlJbmlGaWxlDQorVGVybXNydkNyZWF0ZVJlZ0VudHJ5DQorVGVybXNydkRlbGV0ZUtleQ0KK1Rlcm1zcnZEZWxldGVWYWx1ZQ0KK1Rlcm1zcnZGb3JtYXRPYmplY3ROYW1lDQorVGVybXNydkdldENvbXB1dGVyTmFtZQ0KK1Rlcm1zcnZHZXRQcmVTZXRWYWx1ZQ0KK1Rlcm1zcnZHZXRTdHJpbmcNCitUZXJtc3J2R2V0V2luZG93c0RpcmVjdG9yeUENCitUZXJtc3J2R2V0V2luZG93c0RpcmVjdG9yeVcNCitUZXJtc3J2TG9nSW5zdGFsbEluaUZpbGUNCitUZXJtc3J2TG9nSW5zdGFsbEluaUZpbGVFeA0KK1Rlcm1zcnZPcGVuUmVnRW50cnkNCitUZXJtc3J2T3BlblVzZXJDbGFzc2VzDQorVGVybXNydlJlbW92ZUNsYXNzZXNLZXkNCitUZXJtc3J2UmVzdG9yZUtleQ0KK1Rlcm1zcnZTZXRLZXlTZWN1cml0eQ0KK1Rlcm1zcnZTZXRWYWx1ZUtleQ0KK1Rlcm1zcnZVcGRhdGVBbGxVc2VyTWVudQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3RzYnl1di5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi90c2J5dXYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY0Mzk4MjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi90c2J5dXYuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBUU0JZVVYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFRTQllVVi5kbGwNCitFWFBPUlRTDQorRHJpdmVyUHJvYw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3RzY2Znd21pLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3RzY2Znd21pLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lYjkyYWU5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdHNjZmd3bWkuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgVFNDZmdXbWkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFRTQ2ZnV21pLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3RzZDMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3RzZDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZGNkNmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdHNkMzIuZGVmCkBAIC0wLDAgKzEsMTQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgdHNkMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHRzZDMyLmRsbA0KK0VYUE9SVFMNCitUcnVlU3BlZWNoX1ZlcnNpb24NCitUcnVlU3BlZWNoX0luaXQNCitUcnVlU3BlZWNoX1Rlcm0NCitUcnVlU3BlZWNoX0VuY29kDQorVHJ1ZVNwZWVjaF9EZWNvZA0KK1RydWVTcGVlY2hfUmVzZXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi90c2hvb3QuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdHNob290LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZTczZmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdHNob290LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFRTSE9PVC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgVFNIT09ULkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3Rzb2MuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdHNvYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWEwYTZiNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3Rzb2MuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgdHNvYy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgdHNvYy5kbGwNCitFWFBPUlRTDQorSHlkcmFPYw0KK1N5c1ByZXBCYWNrdXANCitTeXNQcmVwUmVzdG9yZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3R3ZXh0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3R3ZXh0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42Y2FjNDJmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdHdleHQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgdHdleHQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHR3ZXh0LmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3R4ZmxvZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi90eGZsb2cuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRhYmJlNjkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi90eGZsb2cuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgVHhmTG9nRGxsLkRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBUeGZMb2dEbGwuRGxsDQorRVhQT1JUUw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvdWRoaXNhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdWRoaXNhcGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFmNDg4MmYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi91ZGhpc2FwaS5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpc2FwaXRzdC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaXNhcGl0c3QuRExMDQorRVhQT1JUUw0KK0dldEV4dGVuc2lvblZlcnNpb24NCitIdHRwRXh0ZW5zaW9uUHJvYw0KK1Rlcm1pbmF0ZUV4dGVuc2lvbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3VmYXQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdWZhdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDJkMGVjZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3VmYXQuZGVmCkBAIC0wLDAgKzEsMTEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFVGQVQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFVGQVQuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIENMVVNURVJfQ0hBSU46OkNMVVNURVJfQ0hBSU4odm9pZCkgX19wdHI2NA0KKz8/MENMVVNURVJfQ0hBSU5AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBFQV9IRUFERVI6OkVBX0hFQURFUih2b2lkKSBfX3B0cjY0DQorPz8wRUFfSEVBREVSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRUFfU0VUOjpFQV9TRVQodm9pZCkgX19wdHI2NA0KKz8/MEVBX1NFVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEZBVF9ESVJFTlQ6OkZBVF9ESVJFTlQodm9pZCkgX19wdHI2NA0KKz8/MEZBVF9ESVJFTlRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBGQVRfU0E6OkZBVF9TQSh2b2lkKSBfX3B0cjY0DQorPz8wRkFUX1NBQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRklMRURJUjo6RklMRURJUih2b2lkKSBfX3B0cjY0DQorPz8wRklMRURJUkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFJFQUxfRkFUX1NBOjpSRUFMX0ZBVF9TQSh2b2lkKSBfX3B0cjY0DQorPz8wUkVBTF9GQVRfU0FAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBST09URElSOjpST09URElSKHZvaWQpIF9fcHRyNjQNCis/PzBST09URElSQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDTFVTVEVSX0NIQUlOOjp+Q0xVU1RFUl9DSEFJTih2b2lkKSBfX3B0cjY0DQorPz8xQ0xVU1RFUl9DSEFJTkBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgRUFfSEVBREVSOjp+RUFfSEVBREVSKHZvaWQpIF9fcHRyNjQNCis/PzFFQV9IRUFERVJAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIEVBX1NFVDo6fkVBX1NFVCh2b2lkKSBfX3B0cjY0DQorPz8xRUFfU0VUQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBGQVRfRElSRU5UOjp+RkFUX0RJUkVOVCh2b2lkKSBfX3B0cjY0DQorPz8xRkFUX0RJUkVOVEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgRkFUX1NBOjp+RkFUX1NBKHZvaWQpIF9fcHRyNjQNCis/PzFGQVRfU0FAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIEZJTEVESVI6On5GSUxFRElSKHZvaWQpIF9fcHRyNjQNCis/PzFGSUxFRElSQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBSRUFMX0ZBVF9TQTo6flJFQUxfRkFUX1NBKHZvaWQpIF9fcHRyNjQNCis/PzFSRUFMX0ZBVF9TQUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUk9PVERJUjo6flJPT1RESVIodm9pZCkgX19wdHI2NA0KKz8/MVJPT1RESVJAQFVFQUFAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIEZBVDo6QWxsb2NDaGFpbih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FsbG9jQ2hhaW5ARkFUQEBRRUFBS0tQRUFLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEZBVDo6RnJlZUNoYWluKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RnJlZUNoYWluQEZBVEBAUUVBQVhLQFoNCis7IHB1YmxpYzogc3RydWN0IF9FQSAqIF9fcHRyNjQgX19jZGVjbCBFQV9TRVQ6OkdldEVhKHVuc2lnbmVkIGxvbmcsbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RWFARUFfU0VUQEBRRUFBUEVBVV9FQUBAS1BFQUpQRUFFQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBGQVQ6OkluZGV4MTIodW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9JbmRleDEyQEZBVEBAQUVCQUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFJFQUxfRkFUX1NBOjpJbml0RkFUQ2hrRGlydHkoY2xhc3MgTE9HX0lPX0RQX0RSSVZFICogX19wdHI2NCxjbGFzcyBNRVNTQUdFICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0RkFUQ2hrRGlydHlAUkVBTF9GQVRfU0FAQFFFQUFFUEVBVkxPR19JT19EUF9EUklWRUBAUEVBVk1FU1NBR0VAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBDTFVTVEVSX0NIQUlOOjpJbml0aWFsaXplKGNsYXNzIE1FTSAqIF9fcHRyNjQsY2xhc3MgTE9HX0lPX0RQX0RSSVZFICogX19wdHI2NCxjbGFzcyBGQVRfU0EgKiBfX3B0cjY0LGNsYXNzIEZBVCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0luaXRpYWxpemVAQ0xVU1RFUl9DSEFJTkBAUUVBQUVQRUFWTUVNQEBQRUFWTE9HX0lPX0RQX0RSSVZFQEBQRUFWRkFUX1NBQEBQRUJWRkFUQEBLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBFQV9IRUFERVI6OkluaXRpYWxpemUoY2xhc3MgTUVNICogX19wdHI2NCxjbGFzcyBMT0dfSU9fRFBfRFJJVkUgKiBfX3B0cjY0LGNsYXNzIEZBVF9TQSAqIF9fcHRyNjQsY2xhc3MgRkFUIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBFQV9IRUFERVJAQFFFQUFFUEVBVk1FTUBAUEVBVkxPR19JT19EUF9EUklWRUBAUEVBVkZBVF9TQUBAUEVCVkZBVEBAS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRUFfU0VUOjpJbml0aWFsaXplKGNsYXNzIE1FTSAqIF9fcHRyNjQsY2xhc3MgTE9HX0lPX0RQX0RSSVZFICogX19wdHI2NCxjbGFzcyBGQVRfU0EgKiBfX3B0cjY0LGNsYXNzIEZBVCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0luaXRpYWxpemVARUFfU0VUQEBRRUFBRVBFQVZNRU1AQFBFQVZMT0dfSU9fRFBfRFJJVkVAQFBFQVZGQVRfU0FAQFBFQlZGQVRAQEtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIEZBVF9ESVJFTlQ6OkluaXRpYWxpemUodm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBGQVRfRElSRU5UQEBRRUFBRVBFQVhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRkFUX0RJUkVOVDo6SW5pdGlhbGl6ZSh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP0luaXRpYWxpemVARkFUX0RJUkVOVEBAUUVBQUVQRUFYRUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBGSUxFRElSOjpJbml0aWFsaXplKGNsYXNzIE1FTSAqIF9fcHRyNjQsY2xhc3MgTE9HX0lPX0RQX0RSSVZFICogX19wdHI2NCxjbGFzcyBGQVRfU0EgKiBfX3B0cjY0LGNsYXNzIEZBVCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Jbml0aWFsaXplQEZJTEVESVJAQFFFQUFFUEVBVk1FTUBAUEVBVkxPR19JT19EUF9EUklWRUBAUEVBVkZBVF9TQUBAUEVCVkZBVEBAS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciBfX2NkZWNsIFJFQUxfRkFUX1NBOjpJbml0aWFsaXplKGNsYXNzIExPR19JT19EUF9EUklWRSAqIF9fcHRyNjQsY2xhc3MgTUVTU0FHRSAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9Jbml0aWFsaXplQFJFQUxfRkFUX1NBQEBVRUFBRVBFQVZMT0dfSU9fRFBfRFJJVkVAQFBFQVZNRVNTQUdFQEBFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFJPT1RESVI6OkluaXRpYWxpemUoY2xhc3MgTUVNICogX19wdHI2NCxjbGFzcyBMT0dfSU9fRFBfRFJJVkUgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsbG9uZykgX19wdHI2NA0KKz9Jbml0aWFsaXplQFJPT1RESVJAQFFFQUFFUEVBVk1FTUBAUEVBVkxPR19JT19EUF9EUklWRUBAS0pAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRkFUX0RJUkVOVDo6SXNWYWxpZENyZWF0aW9uVGltZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzVmFsaWRDcmVhdGlvblRpbWVARkFUX0RJUkVOVEBAUUVCQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRkFUX0RJUkVOVDo6SXNWYWxpZExhc3RBY2Nlc3NUaW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZExhc3RBY2Nlc3NUaW1lQEZBVF9ESVJFTlRAQFFFQkFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIEZBVF9ESVJFTlQ6OklzVmFsaWRMYXN0V3JpdGVUaW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNWYWxpZExhc3RXcml0ZVRpbWVARkFUX0RJUkVOVEBAUUVCQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgRkFUOjpRdWVyeUFsbG9jYXRlZENsdXN0ZXJzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBbGxvY2F0ZWRDbHVzdGVyc0BGQVRAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIEZBVF9TQTo6UXVlcnlDZW5zdXNBbmRSZWxvY2F0ZShzdHJ1Y3QgX0NFTlNVU19SRVBPUlQgKiBfX3B0cjY0LGNsYXNzIElOVFNUQUNLICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUNlbnN1c0FuZFJlbG9jYXRlQEZBVF9TQUBAUUVBQUVQRUFVX0NFTlNVU19SRVBPUlRAQFBFQVZJTlRTVEFDS0BAUEVBRUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBGQVRfRElSRU5UOjpRdWVyeUNyZWF0aW9uVGltZSh1bmlvbiBfTEFSR0VfSU5URUdFUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDcmVhdGlvblRpbWVARkFUX0RJUkVOVEBAUUVCQUVQRUFUX0xBUkdFX0lOVEVHRVJAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgRUFfSEVBREVSOjpRdWVyeUVhU2V0Q2x1c3Rlck51bWJlcih1bnNpZ25lZCBzaG9ydCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUVhU2V0Q2x1c3Rlck51bWJlckBFQV9IRUFERVJAQFFFQkFHR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBGQVRfU0E6OlF1ZXJ5RmlsZVN0YXJ0aW5nQ2x1c3RlcihjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxjbGFzcyBITUVNICogX19wdHI2NCxjbGFzcyBGQVRESVIgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCxjbGFzcyBGQVRfRElSRU5UICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUZpbGVTdGFydGluZ0NsdXN0ZXJARkFUX1NBQEBRRUFBS1BFQlZXU1RSSU5HQEBQRUFWSE1FTUBAUEVBUEVBVkZBVERJUkBAUEVBRVBFQVZGQVRfRElSRU5UQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgUkVBTF9GQVRfU0E6OlF1ZXJ5RnJlZVNlY3RvcnModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUZyZWVTZWN0b3JzQFJFQUxfRkFUX1NBQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBGQVRfRElSRU5UOjpRdWVyeUxhc3RBY2Nlc3NUaW1lKHVuaW9uIF9MQVJHRV9JTlRFR0VSICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUxhc3RBY2Nlc3NUaW1lQEZBVF9ESVJFTlRAQFFFQkFFUEVBVF9MQVJHRV9JTlRFR0VSQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRkFUX0RJUkVOVDo6UXVlcnlMYXN0V3JpdGVUaW1lKHVuaW9uIF9MQVJHRV9JTlRFR0VSICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUxhc3RXcml0ZVRpbWVARkFUX0RJUkVOVEBAUUVCQUVQRUFUX0xBUkdFX0lOVEVHRVJAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBGQVQ6OlF1ZXJ5TGVuZ3RoT2ZDaGFpbih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TGVuZ3RoT2ZDaGFpbkBGQVRAQFFFQkFLS1BFQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRkFURElSOjpRdWVyeUxvbmdOYW1lKGxvbmcsY2xhc3MgV1NUUklORyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlMb25nTmFtZUBGQVRESVJAQFFFQUFFSlBFQVZXU1RSSU5HQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRkFUX0RJUkVOVDo6UXVlcnlOYW1lKGNsYXNzIFdTVFJJTkcgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TmFtZUBGQVRfRElSRU5UQEBRRUJBRVBFQVZXU1RSSU5HQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgRkFUOjpRdWVyeU50aENsdXN0ZXIodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TnRoQ2x1c3RlckBGQVRAQFFFQkFLS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBDTFVTVEVSX0NIQUlOOjpSZWFkKHZvaWQpIF9fcHRyNjQNCis/UmVhZEBDTFVTVEVSX0NIQUlOQEBVRUFBRVhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciBfX2NkZWNsIEVBX1NFVDo6UmVhZCh2b2lkKSBfX3B0cjY0DQorP1JlYWRARUFfU0VUQEBVRUFBRVhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciBfX2NkZWNsIFJFQUxfRkFUX1NBOjpSZWFkKGNsYXNzIE1FU1NBR0UgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlYWRAUkVBTF9GQVRfU0FAQFVFQUFFUEVBVk1FU1NBR0VAQEBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgRkFURElSOjpTZWFyY2hGb3JEaXJFbnRyeShjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZWFyY2hGb3JEaXJFbnRyeUBGQVRESVJAQFFFQUFQRUFYUEVCVldTVFJJTkdAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgRkFUOjpTZXQxMih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0MTJARkFUQEBBRUFBWEtLQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQ0xVU1RFUl9DSEFJTjo6V3JpdGUodm9pZCkgX19wdHI2NA0KKz9Xcml0ZUBDTFVTVEVSX0NIQUlOQEBVRUFBRVhaDQorQ2hrZHNrDQorQ2hrZHNrRXgNCitGb3JtYXQNCitGb3JtYXRFeA0KK1JlY292ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi91aWhlbHBlci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi91aWhlbHBlci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWVjNmY5OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3VpaGVscGVyLmRlZgpAQCAtMCwwICsxLDEwODYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgdWloZWxwZXIuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHVpaGVscGVyLkRMTA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsPGNsYXNzIENGaWxlQ2hvb3NlcixjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6Q1dpbmRvd0ltcGw8Y2xhc3MgQ0ZpbGVDaG9vc2VyLGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+KGNsYXNzIENXaW5kb3dJbXBsPGNsYXNzIENGaWxlQ2hvb3NlcixjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6Q1dpbmRvd0ltcGw8Y2xhc3MgQ0ZpbGVDaG9vc2VyLGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kQ1dpbmRvd0ltcGxAVkNGaWxlQ2hvb3NlckBAVkNXaW5kb3dAQVRMQEBWPyRDV2luVHJhaXRzQCQwRkdBQUFBQUFAJDBBQEAzQEBBVExAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQVRMOjpDV2luZG93SW1wbDxjbGFzcyBDRmlsZUNob29zZXIsY2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID46OkNXaW5kb3dJbXBsPGNsYXNzIENGaWxlQ2hvb3NlcixjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPih2b2lkKSBfX3B0cjY0DQorPz8wPyRDV2luZG93SW1wbEBWQ0ZpbGVDaG9vc2VyQEBWQ1dpbmRvd0BBVExAQFY/JENXaW5UcmFpdHNAJDBGR0FBQUFBQUAkMEFAQDNAQEFUTEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPihjbGFzcyBDV2luZG93SW1wbEJhc2VUPGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+OjpDV2luZG93SW1wbEJhc2VUPGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kQ1dpbmRvd0ltcGxCYXNlVEBWQ1dpbmRvd0BBVExAQFY/JENXaW5UcmFpdHNAJDBGR0FBQUFBQUAkMEFAQDJAQEFUTEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsQmFzZVQ8Y2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID46OkNXaW5kb3dJbXBsQmFzZVQ8Y2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID4odm9pZCkgX19wdHI2NA0KKz8/MD8kQ1dpbmRvd0ltcGxCYXNlVEBWQ1dpbmRvd0BBVExAQFY/JENXaW5UcmFpdHNAJDBGR0FBQUFBQUAkMEFAQDJAQEFUTEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxSb290PGNsYXNzIEFUTDo6Q1dpbmRvdz46OkNXaW5kb3dJbXBsUm9vdDxjbGFzcyBBVEw6OkNXaW5kb3c+KGNsYXNzIENXaW5kb3dJbXBsUm9vdDxjbGFzcyBBVEw6OkNXaW5kb3c+OjpDV2luZG93SW1wbFJvb3Q8Y2xhc3MgQVRMOjpDV2luZG93PiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JENXaW5kb3dJbXBsUm9vdEBWQ1dpbmRvd0BBVExAQEBBVExAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQVRMOjpDV2luZG93SW1wbFJvb3Q8Y2xhc3MgQVRMOjpDV2luZG93Pjo6Q1dpbmRvd0ltcGxSb290PGNsYXNzIEFUTDo6Q1dpbmRvdz4odm9pZCkgX19wdHI2NA0KKz8/MD8kQ1dpbmRvd0ltcGxSb290QFZDV2luZG93QEFUTEBAQEFUTEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4oY2xhc3MgbGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+KGNsYXNzIGxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQUBBRUJWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4oY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICogX19wdHI2NCxjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgKiBfX3B0cjY0LGNsYXNzIGxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQUBQRUJWQ1N0cmluZ0BJSVNAQDBBRUJWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4oY2xhc3MgbGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmNvbnN0X2l0ZXJhdG9yLGNsYXNzIGxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpjb25zdF9pdGVyYXRvcixjbGFzcyBsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFAVmNvbnN0X2l0ZXJhdG9yQDAxQDBBRUJWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4odW5zaWduZWQgX19pbnQ2NCxjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgJiBfX3B0cjY0LGNsYXNzIGxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQUBfS0FFQlZDU3RyaW5nQElJU0BAQUVCVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQmxvYjo6Q0Jsb2IoY2xhc3MgQ0Jsb2IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0Jsb2JAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQmxvYjo6Q0Jsb2IodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBDQmxvYkBAUUVBQUBLUEVBRUhAWg0KKzsgcHVibGljOiBfX2NkZWNsIENCbG9iOjpDQmxvYih2b2lkKSBfX3B0cjY0DQorPz8wQ0Jsb2JAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ29tQXV0aEluZm86OkNDb21BdXRoSW5mbyhjbGFzcyBDQ29tQXV0aEluZm8gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0NvbUF1dGhJbmZvQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjpDQ29tQXV0aEluZm8oY2xhc3MgQ0NvbUF1dGhJbmZvICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENDb21BdXRoSW5mb0BAUUVBQUBQRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENDb21BdXRoSW5mbzo6Q0NvbUF1dGhJbmZvKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0NvbUF1dGhJbmZvQEBRRUFBQFBFQkcwMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Vycm9yOjpDRXJyb3IoY2xhc3MgQ0Vycm9yIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENFcnJvckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENFcnJvcjo6Q0Vycm9yKGxvbmcpIF9fcHRyNjQNCis/PzBDRXJyb3JAQFFFQUFASkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Vycm9yOjpDRXJyb3IodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENFcnJvckBAUUVBQUBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXJyb3I6OkNFcnJvcih2b2lkKSBfX3B0cjY0DQorPz8wQ0Vycm9yQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ZpbGVDaG9vc2VyOjpDRmlsZUNob29zZXIoY2xhc3MgQ0ZpbGVDaG9vc2VyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENGaWxlQ2hvb3NlckBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENGaWxlQ2hvb3Nlcjo6Q0ZpbGVDaG9vc2VyKHZvaWQpIF9fcHRyNjQNCis/PzBDRmlsZUNob29zZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSUlTQXBwbGljYXRpb246OkNJSVNBcHBsaWNhdGlvbihjbGFzcyBDSUlTQXBwbGljYXRpb24gJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0lJU0FwcGxpY2F0aW9uQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpDSUlTQXBwbGljYXRpb24oY2xhc3MgQ0NvbUF1dGhJbmZvICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSUlTQXBwbGljYXRpb25AQFFFQUFAUEVBVkNDb21BdXRoSW5mb0BAUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU0ludGVyZmFjZTo6Q0lJU0ludGVyZmFjZShjbGFzcyBDSUlTSW50ZXJmYWNlICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENJSVNJbnRlcmZhY2VAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSUlTSW50ZXJmYWNlOjpDSUlTSW50ZXJmYWNlKGNsYXNzIENDb21BdXRoSW5mbyAqIF9fcHRyNjQsbG9uZykgX19wdHI2NA0KKz8/MENJSVNJbnRlcmZhY2VAQFFFQUFAUEVBVkNDb21BdXRoSW5mb0BASkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6OkNJSVNTdmNDb250cm9sKGNsYXNzIENJSVNTdmNDb250cm9sICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENJSVNTdmNDb250cm9sQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6OkNJSVNTdmNDb250cm9sKGNsYXNzIENJSVNTdmNDb250cm9sICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENJSVNTdmNDb250cm9sQEBRRUFBQFBFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6OkNJSVNTdmNDb250cm9sKGNsYXNzIENDb21BdXRoSW5mbyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSUlTU3ZjQ29udHJvbEBAUUVBQUBQRUFWQ0NvbUF1dGhJbmZvQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhQmFjazo6Q01ldGFCYWNrKGNsYXNzIENNZXRhQmFjayAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0YUJhY2tAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0YUJhY2s6OkNNZXRhQmFjayhjbGFzcyBDQ29tQXV0aEluZm8gKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01ldGFCYWNrQEBRRUFBQFBFQVZDQ29tQXV0aEluZm9AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFFbnVtZXJhdG9yOjpDTWV0YUVudW1lcmF0b3IoY2xhc3MgQ01ldGFFbnVtZXJhdG9yICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENNZXRhRW51bWVyYXRvckBAUUVBQUBBRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhRW51bWVyYXRvcjo6Q01ldGFFbnVtZXJhdG9yKGludCxjbGFzcyBDTWV0YUtleSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0YUVudW1lcmF0b3JAQFFFQUFASFBFQVZDTWV0YUtleUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0YUVudW1lcmF0b3I6OkNNZXRhRW51bWVyYXRvcihjbGFzcyBDQ29tQXV0aEluZm8gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wQ01ldGFFbnVtZXJhdG9yQEBRRUFBQFBFQVZDQ29tQXV0aEluZm9AQFBFQkdLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0YUVudW1lcmF0b3I6OkNNZXRhRW51bWVyYXRvcihjbGFzcyBDTWV0YUludGVyZmFjZSAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDTWV0YUVudW1lcmF0b3JAQFFFQUFAUEVBVkNNZXRhSW50ZXJmYWNlQEBQRUJHS0BaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkNNZXRhSW50ZXJmYWNlKGNsYXNzIENNZXRhSW50ZXJmYWNlICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENNZXRhSW50ZXJmYWNlQEBJRUFBQFBFQVYwQEBaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkNNZXRhSW50ZXJmYWNlKGNsYXNzIENDb21BdXRoSW5mbyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0YUludGVyZmFjZUBASUVBQUBQRUFWQ0NvbUF1dGhJbmZvQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpDTWV0YUludGVyZmFjZShjbGFzcyBDTWV0YUludGVyZmFjZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0YUludGVyZmFjZUBAUUVBQUBBRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhS2V5OjpDTWV0YUtleShjbGFzcyBDTWV0YUtleSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0YUtleUBAUUVBQUBBRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhS2V5OjpDTWV0YUtleShpbnQsY2xhc3MgQ01ldGFLZXkgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01ldGFLZXlAQFFFQUFASFBFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFLZXk6OkNNZXRhS2V5KGNsYXNzIENDb21BdXRoSW5mbyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0YUtleUBAUUVBQUBQRUFWQ0NvbUF1dGhJbmZvQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhS2V5OjpDTWV0YUtleShjbGFzcyBDQ29tQXV0aEluZm8gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDTWV0YUtleUBAUUVBQUBQRUFWQ0NvbUF1dGhJbmZvQEBQRUJHS0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhS2V5OjpDTWV0YUtleShjbGFzcyBDTWV0YUludGVyZmFjZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0YUtleUBAUUVBQUBQRUFWQ01ldGFJbnRlcmZhY2VAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFLZXk6OkNNZXRhS2V5KGNsYXNzIENNZXRhSW50ZXJmYWNlICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wQ01ldGFLZXlAQFFFQUFAUEVBVkNNZXRhSW50ZXJmYWNlQEBQRUJHS0tAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OkNNZXRhYmFzZVBhdGgoY2xhc3MgQ01ldGFiYXNlUGF0aCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0YWJhc2VQYXRoQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6Q01ldGFiYXNlUGF0aChpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01ldGFiYXNlUGF0aEBAUUVBQUBIUEVCRzAwMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6Q01ldGFiYXNlUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01ldGFiYXNlUGF0aEBAUUVBQUBQRUJHSzAwQFoNCis7IHB1YmxpYzogX19jZGVjbCBDU3RyUGFzc3dvcmQ6OkNTdHJQYXNzd29yZChjbGFzcyBDU3RyUGFzc3dvcmQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1N0clBhc3N3b3JkQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1N0clBhc3N3b3JkOjpDU3RyUGFzc3dvcmQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1N0clBhc3N3b3JkQEBRRUFBQFBFQUdAWg0KKzsgcHVibGljOiBfX2NkZWNsIENTdHJQYXNzd29yZDo6Q1N0clBhc3N3b3JkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENTdHJQYXNzd29yZEBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDU3RyUGFzc3dvcmQ6OkNTdHJQYXNzd29yZCh2b2lkKSBfX3B0cjY0DQorPz8wQ1N0clBhc3N3b3JkQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgSUlTOjpDU3RyaW5nOjpDU3RyaW5nKGNsYXNzIENTdHJpbmc6OkNTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1N0cmluZ0BJSVNAQFFFQUFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSUlTOjpDU3RyaW5nOjpDU3RyaW5nKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDU3RyaW5nQElJU0BAUUVBQUBBRUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgSUlTOjpDU3RyaW5nOjpDU3RyaW5nKGNsYXNzIEFUTDo6Q0NvbUJTVFIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1N0cmluZ0BJSVNAQFFFQUFAQUVCVkNDb21CU1RSQEFUTEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBJSVM6OkNTdHJpbmc6OkNTdHJpbmcodW5zaWduZWQgc2hvcnQsaW50KSBfX3B0cjY0DQorPz8wQ1N0cmluZ0BJSVNAQFFFQUFAR0hAWg0KKzsgcHVibGljOiBfX2NkZWNsIElJUzo6Q1N0cmluZzo6Q1N0cmluZyhjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENTdHJpbmdASUlTQEBRRUFBQFBFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIElJUzo6Q1N0cmluZzo6Q1N0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDU3RyaW5nQElJU0BAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBJSVM6OkNTdHJpbmc6OkNTdHJpbmcodm9pZCkgX19wdHI2NA0KKz8/MENTdHJpbmdASUlTQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1N0cmluZ0xpc3RFeDo6Q1N0cmluZ0xpc3RFeChjbGFzcyBDU3RyaW5nTGlzdEV4IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENTdHJpbmdMaXN0RXhAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDU3RyaW5nTGlzdEV4OjpDU3RyaW5nTGlzdEV4KHZvaWQpIF9fcHRyNjQNCis/PzBDU3RyaW5nTGlzdEV4QEBRRUFBQFhaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQ1dhbUludGVyZmFjZTo6Q1dhbUludGVyZmFjZShjbGFzcyBDV2FtSW50ZXJmYWNlICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENXYW1JbnRlcmZhY2VAQElFQUFAUEVBVjBAQFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpDV2FtSW50ZXJmYWNlKGNsYXNzIENDb21BdXRoSW5mbyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDV2FtSW50ZXJmYWNlQEBJRUFBQFBFQVZDQ29tQXV0aEluZm9AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1dhbUludGVyZmFjZTo6Q1dhbUludGVyZmFjZShjbGFzcyBDV2FtSW50ZXJmYWNlICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENXYW1JbnRlcmZhY2VAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsPGNsYXNzIENGaWxlQ2hvb3NlcixjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6fkNXaW5kb3dJbXBsPGNsYXNzIENGaWxlQ2hvb3NlcixjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPih2b2lkKSBfX3B0cjY0DQorPz8xPyRDV2luZG93SW1wbEBWQ0ZpbGVDaG9vc2VyQEBWQ1dpbmRvd0BBVExAQFY/JENXaW5UcmFpdHNAJDBGR0FBQUFBQUAkMEFAQDNAQEFUTEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6fkNXaW5kb3dJbXBsQmFzZVQ8Y2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kQ1dpbmRvd0ltcGxCYXNlVEBWQ1dpbmRvd0BBVExAQFY/JENXaW5UcmFpdHNAJDBGR0FBQUFBQUAkMEFAQDJAQEFUTEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxSb290PGNsYXNzIEFUTDo6Q1dpbmRvdz46On5DV2luZG93SW1wbFJvb3Q8Y2xhc3MgQVRMOjpDV2luZG93Pih2b2lkKSBfX3B0cjY0DQorPz8xPyRDV2luZG93SW1wbFJvb3RAVkNXaW5kb3dAQVRMQEBAQVRMQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46On5saXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQmxvYjo6fkNCbG9iKHZvaWQpIF9fcHRyNjQNCis/PzFDQmxvYkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENDb21BdXRoSW5mbzo6fkNDb21BdXRoSW5mbyh2b2lkKSBfX3B0cjY0DQorPz8xQ0NvbUF1dGhJbmZvQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Vycm9yOjp+Q0Vycm9yKHZvaWQpIF9fcHRyNjQNCis/PzFDRXJyb3JAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRmlsZUNob29zZXI6On5DRmlsZUNob29zZXIodm9pZCkgX19wdHI2NA0KKz8/MUNGaWxlQ2hvb3NlckBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjp+Q0lJU0FwcGxpY2F0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFDSUlTQXBwbGljYXRpb25AQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSUlTSW50ZXJmYWNlOjp+Q0lJU0ludGVyZmFjZSh2b2lkKSBfX3B0cjY0DQorPz8xQ0lJU0ludGVyZmFjZUBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6On5DSUlTU3ZjQ29udHJvbCh2b2lkKSBfX3B0cjY0DQorPz8xQ0lJU1N2Y0NvbnRyb2xAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENNZXRhQmFjazo6fkNNZXRhQmFjayh2b2lkKSBfX3B0cjY0DQorPz8xQ01ldGFCYWNrQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDTWV0YUVudW1lcmF0b3I6On5DTWV0YUVudW1lcmF0b3Iodm9pZCkgX19wdHI2NA0KKz8/MUNNZXRhRW51bWVyYXRvckBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6On5DTWV0YUludGVyZmFjZSh2b2lkKSBfX3B0cjY0DQorPz8xQ01ldGFJbnRlcmZhY2VAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENNZXRhS2V5Ojp+Q01ldGFLZXkodm9pZCkgX19wdHI2NA0KKz8/MUNNZXRhS2V5QEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6fkNNZXRhYmFzZVBhdGgodm9pZCkgX19wdHI2NA0KKz8/MUNNZXRhYmFzZVBhdGhAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDU3RyUGFzc3dvcmQ6On5DU3RyUGFzc3dvcmQodm9pZCkgX19wdHI2NA0KKz8/MUNTdHJQYXNzd29yZEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIElJUzo6Q1N0cmluZzo6fkNTdHJpbmcodm9pZCkgX19wdHI2NA0KKz8/MUNTdHJpbmdASUlTQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1N0cmluZ0xpc3RFeDo6fkNTdHJpbmdMaXN0RXgodm9pZCkgX19wdHI2NA0KKz8/MUNTdHJpbmdMaXN0RXhAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENXYW1JbnRlcmZhY2U6On5DV2FtSW50ZXJmYWNlKHZvaWQpIF9fcHRyNjQNCis/PzFDV2FtSW50ZXJmYWNlQEBVRUFBQFhaDQorOyBwdWJsaWM6IGNsYXNzIEFUTDo6Q1dpbmRvd0ltcGw8Y2xhc3MgQ0ZpbGVDaG9vc2VyLGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+ICYgX19wdHI2NCBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGw8Y2xhc3MgQ0ZpbGVDaG9vc2VyLGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+OjpvcGVyYXRvcj0oY2xhc3MgQVRMOjpDV2luZG93SW1wbDxjbGFzcyBDRmlsZUNob29zZXIsY2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDV2luZG93SW1wbEBWQ0ZpbGVDaG9vc2VyQEBWQ1dpbmRvd0BBVExAQFY/JENXaW5UcmFpdHNAJDBGR0FBQUFBQUAkMEFAQDNAQEFUTEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3MgQVRMOjpDV2luZG93SW1wbEJhc2VUPGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+ICYgX19wdHI2NCBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6b3BlcmF0b3I9KGNsYXNzIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JENXaW5kb3dJbXBsQmFzZVRAVkNXaW5kb3dAQVRMQEBWPyRDV2luVHJhaXRzQCQwRkdBQUFBQUFAJDBBQEAyQEBBVExAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIEFUTDo6Q1dpbmRvd0ltcGxSb290PGNsYXNzIEFUTDo6Q1dpbmRvdz4gJiBfX3B0cjY0IF9fY2RlY2wgQVRMOjpDV2luZG93SW1wbFJvb3Q8Y2xhc3MgQVRMOjpDV2luZG93Pjo6b3BlcmF0b3I9KGNsYXNzIEFUTDo6Q1dpbmRvd0ltcGxSb290PGNsYXNzIEFUTDo6Q1dpbmRvdz4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDV2luZG93SW1wbFJvb3RAVkNXaW5kb3dAQVRMQEBAQVRMQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIENCbG9iICYgX19wdHI2NCBfX2NkZWNsIENCbG9iOjpvcGVyYXRvcj0oY2xhc3MgQ0Jsb2IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0Jsb2JAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tQXV0aEluZm8gJiBfX3B0cjY0IF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjpvcGVyYXRvcj0oY2xhc3MgQ0NvbUF1dGhJbmZvICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENDb21BdXRoSW5mb0BAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENDb21BdXRoSW5mbyAmIF9fcHRyNjQgX19jZGVjbCBDQ29tQXV0aEluZm86Om9wZXJhdG9yPShjbGFzcyBDQ29tQXV0aEluZm8gKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0NvbUF1dGhJbmZvQEBRRUFBQUVBVjBAUEVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbUF1dGhJbmZvICYgX19wdHI2NCBfX2NkZWNsIENDb21BdXRoSW5mbzo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/NENDb21BdXRoSW5mb0BAUUVBQUFFQVYwQFBFQkdAWg0KKzsgcHVibGljOiBjbGFzcyBDRXJyb3IgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ0Vycm9yOjpvcGVyYXRvcj0oY2xhc3MgQ0Vycm9yIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENFcnJvckBAUUVBQUFFQlYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENFcnJvciBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDRXJyb3I6Om9wZXJhdG9yPShsb25nKSBfX3B0cjY0DQorPz80Q0Vycm9yQEBRRUFBQUVCVjBASkBaDQorOyBwdWJsaWM6IGNsYXNzIENGaWxlQ2hvb3NlciAmIF9fcHRyNjQgX19jZGVjbCBDRmlsZUNob29zZXI6Om9wZXJhdG9yPShjbGFzcyBDRmlsZUNob29zZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0ZpbGVDaG9vc2VyQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0lJU0FwcGxpY2F0aW9uICYgX19wdHI2NCBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6b3BlcmF0b3I9KGNsYXNzIENJSVNBcHBsaWNhdGlvbiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDSUlTQXBwbGljYXRpb25AQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSUlTSW50ZXJmYWNlICYgX19wdHI2NCBfX2NkZWNsIENJSVNJbnRlcmZhY2U6Om9wZXJhdG9yPShjbGFzcyBDSUlTSW50ZXJmYWNlICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJSVNJbnRlcmZhY2VAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSUlTU3ZjQ29udHJvbCAmIF9fcHRyNjQgX19jZGVjbCBDSUlTU3ZjQ29udHJvbDo6b3BlcmF0b3I9KGNsYXNzIENJSVNTdmNDb250cm9sICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJSVNTdmNDb250cm9sQEBRRUFBQUVBVjBAQUVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ01ldGFCYWNrICYgX19wdHI2NCBfX2NkZWNsIENNZXRhQmFjazo6b3BlcmF0b3I9KGNsYXNzIENNZXRhQmFjayAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTWV0YUJhY2tAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTWV0YUVudW1lcmF0b3IgJiBfX3B0cjY0IF9fY2RlY2wgQ01ldGFFbnVtZXJhdG9yOjpvcGVyYXRvcj0oY2xhc3MgQ01ldGFFbnVtZXJhdG9yICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENNZXRhRW51bWVyYXRvckBAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENNZXRhSW50ZXJmYWNlICYgX19wdHI2NCBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpvcGVyYXRvcj0oY2xhc3MgQ01ldGFJbnRlcmZhY2UgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q01ldGFJbnRlcmZhY2VAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTWV0YUtleSAmIF9fcHRyNjQgX19jZGVjbCBDTWV0YUtleTo6b3BlcmF0b3I9KGNsYXNzIENNZXRhS2V5ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENNZXRhS2V5QEBRRUFBQUVBVjBAQUVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ01ldGFiYXNlUGF0aCAmIF9fcHRyNjQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpvcGVyYXRvcj0oY2xhc3MgQ01ldGFiYXNlUGF0aCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTWV0YWJhc2VQYXRoQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0clBhc3N3b3JkIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENTdHJQYXNzd29yZDo6b3BlcmF0b3I9KGNsYXNzIENTdHJQYXNzd29yZCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDU3RyUGFzc3dvcmRAQFFFQUFBRUJWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyUGFzc3dvcmQgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ1N0clBhc3N3b3JkOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1N0clBhc3N3b3JkQEBRRUFBQUVCVjBAUEVCR0BaDQorOyBwdWJsaWM6IGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBJSVM6OkNTdHJpbmc6Om9wZXJhdG9yPShjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1N0cmluZ0BJSVNAQFFFQUFBRUJWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBJSVM6OkNTdHJpbmc6Om9wZXJhdG9yPShjaGFyKSBfX3B0cjY0DQorPz80Q1N0cmluZ0BJSVNAQFFFQUFBRUJWMDFAREBaDQorOyBwdWJsaWM6IGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBJSVM6OkNTdHJpbmc6Om9wZXJhdG9yPSh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz8/NENTdHJpbmdASUlTQEBRRUFBQUVCVjAxQEdAWg0KKzsgcHVibGljOiBjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgSUlTOjpDU3RyaW5nOjpvcGVyYXRvcj0odW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDU3RyaW5nQElJU0BAUUVBQUFFQlYwMUBQRUJFQFoNCis7IHB1YmxpYzogY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIElJUzo6Q1N0cmluZzo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/NENTdHJpbmdASUlTQEBRRUFBQUVCVjAxQFBFQkdAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nTGlzdEV4ICYgX19wdHI2NCBfX2NkZWNsIENTdHJpbmdMaXN0RXg6Om9wZXJhdG9yPShjbGFzcyBDU3RyaW5nTGlzdEV4IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENTdHJpbmdMaXN0RXhAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2FtSW50ZXJmYWNlICYgX19wdHI2NCBfX2NkZWNsIENXYW1JbnRlcmZhY2U6Om9wZXJhdG9yPShjbGFzcyBDV2FtSW50ZXJmYWNlICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENXYW1JbnRlcmZhY2VAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQmxvYjo6b3BlcmF0b3I9PShjbGFzcyBDQmxvYiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzhDQmxvYkBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgY29uc3QgIF9fY2RlY2wgQ0Vycm9yOjpvcGVyYXRvcj09KGNsYXNzIENFcnJvciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzhDRXJyb3JAQFFFQUE/QkhBRUFWMEBAWg0KKzsgcHVibGljOiBpbnQgY29uc3QgIF9fY2RlY2wgQ0Vycm9yOjpvcGVyYXRvcj09KGxvbmcpIF9fcHRyNjQNCis/PzhDRXJyb3JAQFFFQUE/QkhKQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTdHJQYXNzd29yZDo6b3BlcmF0b3I9PShjbGFzcyBDU3RyUGFzc3dvcmQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz84Q1N0clBhc3N3b3JkQEBRRUFBX05BRUFWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQmxvYjo6b3BlcmF0b3IhPShjbGFzcyBDQmxvYiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/PzlDQmxvYkBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgY29uc3QgIF9fY2RlY2wgQ0Vycm9yOjpvcGVyYXRvciE9KGNsYXNzIENFcnJvciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzlDRXJyb3JAQFFFQUE/QkhBRUFWMEBAWg0KKzsgcHVibGljOiBpbnQgY29uc3QgIF9fY2RlY2wgQ0Vycm9yOjpvcGVyYXRvciE9KGxvbmcpIF9fcHRyNjQNCis/PzlDRXJyb3JAQFFFQUE/QkhKQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENTdHJQYXNzd29yZDo6b3BlcmF0b3IhPShjbGFzcyBDU3RyUGFzc3dvcmQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz85Q1N0clBhc3N3b3JkQEBRRUFBX05BRUFWMEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIElJUzo6Q1N0cmluZzo6b3BlcmF0b3JbXShpbnQpY29uc3QgIF9fcHRyNjQNCis/P0FDU3RyaW5nQElJU0BAUUVCQUdIQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ29tQXV0aEluZm86Om9wZXJhdG9yIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCh2b2lkKSBfX3B0cjY0DQorPz9CQ0NvbUF1dGhJbmZvQEBRRUFBUEVBR1haDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjpvcGVyYXRvciBjbGFzcyBDQ29tQXV0aEluZm8gKiBfX3B0cjY0KHZvaWQpIF9fcHRyNjQNCis/P0JDQ29tQXV0aEluZm9AQFFFQUFQRUFWMEBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENFcnJvcjo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KHZvaWQpIF9fcHRyNjQNCis/P0JDRXJyb3JAQFFFQUFQRUJHWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXJyb3I6Om9wZXJhdG9yIGludCBjb25zdCAodm9pZCljb25zdCAgX19wdHI2NA0KKz8/QkNFcnJvckBAUUVCQT9CSFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Vycm9yOjpvcGVyYXRvciBsb25nIGNvbnN0ICh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CQ0Vycm9yQEBRRUJBP0JKWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXJyb3I6Om9wZXJhdG9yIHVuc2lnbmVkIGxvbmcgY29uc3QgKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDRXJyb3JAQFFFQkE/QktYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJSVNJbnRlcmZhY2U6Om9wZXJhdG9yIGludCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CQ0lJU0ludGVyZmFjZUBAUUVCQUhYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJSVNJbnRlcmZhY2U6Om9wZXJhdG9yIGxvbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz8/QkNJSVNJbnRlcmZhY2VAQFFFQkFKWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0YUtleTo6b3BlcmF0b3IgaW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDTWV0YUtleUBAUUVCQUhYWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhS2V5OjpvcGVyYXRvciB1bnNpZ25lZCBsb25nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDTWV0YUtleUBAUUVCQUtYWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhS2V5OjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQodm9pZCljb25zdCAgX19wdHI2NA0KKz8/QkNNZXRhS2V5QEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDTWV0YWJhc2VQYXRoQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1N0clBhc3N3b3JkOjpvcGVyYXRvciBjbGFzcyBJSVM6OkNTdHJpbmcodm9pZCkgX19wdHI2NA0KKz8/QkNTdHJQYXNzd29yZEBAUUVBQT9BVkNTdHJpbmdASUlTQEBYWg0KKzsgcHVibGljOiBfX2NkZWNsIElJUzo6Q1N0cmluZzo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDU3RyaW5nQElJU0BAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgSUlTOjpDU3RyaW5nOjpvcGVyYXRvcis9KGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/P1lDU3RyaW5nQElJU0BAUUVBQUFFQlYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIElJUzo6Q1N0cmluZzo6b3BlcmF0b3IrPShjaGFyKSBfX3B0cjY0DQorPz9ZQ1N0cmluZ0BJSVNAQFFFQUFBRUJWMDFAREBaDQorOyBwdWJsaWM6IGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBJSVM6OkNTdHJpbmc6Om9wZXJhdG9yKz0odW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/P1lDU3RyaW5nQElJU0BAUUVBQUFFQlYwMUBHQFoNCis7IHB1YmxpYzogY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIElJUzo6Q1N0cmluZzo6b3BlcmF0b3IrPSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/P1lDU3RyaW5nQElJU0BAUUVBQUFFQlYwMUBQRUJHQFoNCis7IGNvbnN0ICBDRmlsZUNob29zZXI6OmB2ZnRhYmxlJw0KKz8/XzdDRmlsZUNob29zZXJAQDZCQA0KKzsgY29uc3QgIENJSVNBcHBsaWNhdGlvbjo6YHZmdGFibGUne2ZvciBgQ01ldGFLZXknfQ0KKz8/XzdDSUlTQXBwbGljYXRpb25AQDZCQ01ldGFLZXlAQEANCis7IGNvbnN0ICBDSUlTQXBwbGljYXRpb246OmB2ZnRhYmxlJ3tmb3IgYENXYW1JbnRlcmZhY2UnfQ0KKz8/XzdDSUlTQXBwbGljYXRpb25AQDZCQ1dhbUludGVyZmFjZUBAQA0KKzsgY29uc3QgIENJSVNJbnRlcmZhY2U6OmB2ZnRhYmxlJw0KKz8/XzdDSUlTSW50ZXJmYWNlQEA2QkANCis7IGNvbnN0ICBDSUlTU3ZjQ29udHJvbDo6YHZmdGFibGUnDQorPz9fN0NJSVNTdmNDb250cm9sQEA2QkANCis7IGNvbnN0ICBDTWV0YUJhY2s6OmB2ZnRhYmxlJ3tmb3IgYENNZXRhSW50ZXJmYWNlJ30NCis/P183Q01ldGFCYWNrQEA2QkNNZXRhSW50ZXJmYWNlQEBADQorOyBjb25zdCAgQ01ldGFCYWNrOjpgdmZ0YWJsZSd7Zm9yIGBDV2FtSW50ZXJmYWNlJ30NCis/P183Q01ldGFCYWNrQEA2QkNXYW1JbnRlcmZhY2VAQEANCis7IGNvbnN0ICBDTWV0YUVudW1lcmF0b3I6OmB2ZnRhYmxlJw0KKz8/XzdDTWV0YUVudW1lcmF0b3JAQDZCQA0KKzsgY29uc3QgIENNZXRhSW50ZXJmYWNlOjpgdmZ0YWJsZScNCis/P183Q01ldGFJbnRlcmZhY2VAQDZCQA0KKzsgY29uc3QgIENNZXRhS2V5OjpgdmZ0YWJsZScNCis/P183Q01ldGFLZXlAQDZCQA0KKzsgY29uc3QgIENXYW1JbnRlcmZhY2U6OmB2ZnRhYmxlJw0KKz8/XzdDV2FtSW50ZXJmYWNlQEA2QkANCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRj8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDb21BdXRoSW5mbzo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDQ29tQXV0aEluZm9AQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GQ01ldGFiYXNlUGF0aEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZpbGVDaG9vc2VyOjpBZGRFeHRlbnNpb24oc3RydWN0IEhJTlNUQU5DRV9fICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0FkZEV4dGVuc2lvbkBDRmlsZUNob29zZXJAQFFFQUFYUEVBVUhJTlNUQU5DRV9fQEBJSUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmlsZUNob29zZXI6OkFkZEV4dGVuc2lvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEV4dGVuc2lvbkBDRmlsZUNob29zZXJAQFFFQUFYUEVCRzBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkFkZEtleSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRLZXlAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OkFkZEtleSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkS2V5QENNZXRhS2V5QEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBDRXJyb3I6OkFkZE92ZXJyaWRlKGxvbmcsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0FkZE92ZXJyaWRlQENFcnJvckBAUUVBQUlKSUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmlsZUNob29zZXI6OkFkZFN0eWxlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QWRkU3R5bGVAQ0ZpbGVDaG9vc2VyQEBRRUFBWEtAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0Vycm9yOjpBbGxvY2F0ZVN0YXRpY3Modm9pZCkNCis/QWxsb2NhdGVTdGF0aWNzQENFcnJvckBAS0FIWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENXYW1JbnRlcmZhY2U6OkFwcENyZWF0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BcHBDcmVhdGVAQ1dhbUludGVyZmFjZUBASUVBQUpQRUJHS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpBcHBEZWxldGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9BcHBEZWxldGVAQ1dhbUludGVyZmFjZUBASUVBQUpQRUJHSEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpBcHBEZWxldGVSZWNvdmVyYWJsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0FwcERlbGV0ZVJlY292ZXJhYmxlQENXYW1JbnRlcmZhY2VAQElFQUFKUEVCR0hAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ1dhbUludGVyZmFjZTo6QXBwR2V0U3RhdHVzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBHZXRTdGF0dXNAQ1dhbUludGVyZmFjZUBASUVBQUpQRUJHUEVBS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpBcHBSZWNvdmVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/QXBwUmVjb3ZlckBDV2FtSW50ZXJmYWNlQEBJRUFBSlBFQkdIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENXYW1JbnRlcmZhY2U6OkFwcFVuTG9hZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0FwcFVuTG9hZEBDV2FtSW50ZXJmYWNlQEBJRUFBSlBFQkdIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OkFwcGVuZFBhdGgodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BcHBlbmRQYXRoQENNZXRhYmFzZVBhdGhAQElFQUFYS0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpBcHBlbmRQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRQYXRoQENNZXRhYmFzZVBhdGhAQElFQUFYUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQ29tQXV0aEluZm86OkFwcGx5UHJveHlCbGFua2V0KHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXBwbHlQcm94eUJsYW5rZXRAQ0NvbUF1dGhJbmZvQEBRRUFBSlBFQVVJVW5rbm93bkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENDb21BdXRoSW5mbzo6QXBwbHlQcm94eUJsYW5rZXQoc3RydWN0IElVbmtub3duICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FwcGx5UHJveHlCbGFua2V0QENDb21BdXRoSW5mb0BAUUVBQUpQRUFVSVVua25vd25AQEtAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDSUlTU3ZjQ29udHJvbDo6QXBwbHlQcm94eUJsYW5rZXQodm9pZCkgX19wdHI2NA0KKz9BcHBseVByb3h5QmxhbmtldEBDSUlTU3ZjQ29udHJvbEBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDTWV0YUJhY2s6OkFwcGx5UHJveHlCbGFua2V0KHZvaWQpIF9fcHRyNjQNCis/QXBwbHlQcm94eUJsYW5rZXRAQ01ldGFCYWNrQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpBcHBseVByb3h5QmxhbmtldCh2b2lkKSBfX3B0cjY0DQorP0FwcGx5UHJveHlCbGFua2V0QENNZXRhSW50ZXJmYWNlQEBNRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYW1JbnRlcmZhY2U6OkFwcGx5UHJveHlCbGFua2V0KHZvaWQpIF9fcHRyNjQNCis/QXBwbHlQcm94eUJsYW5rZXRAQ1dhbUludGVyZmFjZUBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0Vycm9yOjpBcmVTdGF0aWNzQWxsb2NhdGVkKHZvaWQpDQorP0FyZVN0YXRpY3NBbGxvY2F0ZWRAQ0Vycm9yQEBLQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFCYWNrOjpCYWNrdXAodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0JhY2t1cEBDTWV0YUJhY2tAQFFFQUFKUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6QmFja3VwKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QmFja3VwQENNZXRhSW50ZXJmYWNlQEBJRUFBSlBFQkdLS0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENGaWxlQ2hvb3Nlcjo6QnJvd3NlRm9yRmlsZShjbGFzcyBJSVM6OkNTdHJpbmcgJiBfX3B0cjY0LGNsYXNzIElJUzo6Q1N0cmluZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QnJvd3NlRm9yRmlsZUBDRmlsZUNob29zZXJAQElFQUFIQUVBVkNTdHJpbmdASUlTQEAwQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0ZpbGVDaG9vc2VyOjpCcm93c2VGb3JGb2xkZXIoY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCkgX19wdHI2NA0KKz9Ccm93c2VGb3JGb2xkZXJAQ0ZpbGVDaG9vc2VyQEBJRUFBSEFFQVZDU3RyaW5nQElJU0BAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0ZpbGVDaG9vc2VyOjpCcm93c2VGb3JGb2xkZXJDYWxsYmFjayhzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx1bnNpZ25lZCBpbnQsX19pbnQ2NCkgX19wdHI2NA0KKz9Ccm93c2VGb3JGb2xkZXJDYWxsYmFja0BDRmlsZUNob29zZXJAQFFFQUFIUEVBVUhXTkRfX0BASV9KQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OkJ1aWxkTWV0YVBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0J1aWxkTWV0YVBhdGhAQ01ldGFiYXNlUGF0aEBASUVBQVhQRUJHMDAwQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OkJ1aWxkTWV0YVBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9CdWlsZE1ldGFQYXRoQENNZXRhYmFzZVBhdGhAQElFQUFYUEVCR0swMEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENJSVNJbnRlcmZhY2U6OkNoYW5nZVByb3h5QmxhbmtldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NoYW5nZVByb3h5QmxhbmtldEBDSUlTSW50ZXJmYWNlQEBVRUFBSlBFQkcwQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpDaGVja0Rlc2NlbmRhbnRzKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0NvbUF1dGhJbmZvICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2hlY2tEZXNjZW5kYW50c0BDTWV0YUtleUBAUUVBQUpLUEVBVkNDb21BdXRoSW5mb0BAUEVCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpDbGVhbk1ldGFQYXRoKGNsYXNzIENNZXRhYmFzZVBhdGggJiBfX3B0cjY0KQ0KKz9DbGVhbk1ldGFQYXRoQENNZXRhYmFzZVBhdGhAQFNBUEVCR0FFQVYxQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpDbGVhbk1ldGFQYXRoKGNsYXNzIElJUzo6Q1N0cmluZyAmIF9fcHRyNjQpDQorP0NsZWFuTWV0YVBhdGhAQ01ldGFiYXNlUGF0aEBAU0FQRUJHQUVBVkNTdHJpbmdASUlTQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Jsb2I6OkNsZWFuVXAodm9pZCkgX19wdHI2NA0KKz9DbGVhblVwQENCbG9iQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RyaW5nTGlzdEV4OjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQENTdHJpbmdMaXN0RXhAQFFFQUFYWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDU3RyUGFzc3dvcmQ6OkNsZWFyUGFzc3dvcmRCdWZmZXJzKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJQYXNzd29yZEJ1ZmZlcnNAQ1N0clBhc3N3b3JkQEBBRUFBWFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6Q2xvc2Uodm9pZCkgX19wdHI2NA0KKz9DbG9zZUBDTWV0YUtleUBAUUVBQUpYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkNsb3NlS2V5KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Q2xvc2VLZXlAQ01ldGFJbnRlcmZhY2VAQElFQUFKS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJUzo6Q1N0cmluZzo6Q29sbGF0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q29sbGF0ZUBDU3RyaW5nQElJU0BAUUVCQUhQRUJHQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6Q29tbW9uQ29uc3RydWN0KHZvaWQpIF9fcHRyNjQNCis/Q29tbW9uQ29uc3RydWN0QENJSVNBcHBsaWNhdGlvbkBASUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU3RyUGFzc3dvcmQ6OkNvbXBhcmUoY2xhc3MgQ1N0clBhc3N3b3JkICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db21wYXJlQENTdHJQYXNzd29yZEBAUUVCQUhBRUFWMUBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU3RyUGFzc3dvcmQ6OkNvbXBhcmUoY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db21wYXJlQENTdHJQYXNzd29yZEBAUUVCQUhBRUFWQ1N0cmluZ0BJSVNAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTdHJQYXNzd29yZDo6Q29tcGFyZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q29tcGFyZUBDU3RyUGFzc3dvcmRAQFFFQkFIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJUzo6Q1N0cmluZzo6Q29tcGFyZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q29tcGFyZUBDU3RyaW5nQElJU0BAUUVCQUhQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTOjpDU3RyaW5nOjpDb21wYXJlTm9DYXNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db21wYXJlTm9DYXNlQENTdHJpbmdASUlTQEBRRUJBSFBFQkdAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDRXJyb3IgY29uc3QgJiBfX3B0cjY0IF9fY2RlY2wgQ0Vycm9yOjpDb25zdHJ1Y3QoY2xhc3MgQ0Vycm9yIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db25zdHJ1Y3RAQ0Vycm9yQEBJRUFBQUVCVjFAQUVCVjFAQFoNCis7IHByb3RlY3RlZDogY2xhc3MgQ0Vycm9yIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENFcnJvcjo6Q29uc3RydWN0KGxvbmcpIF9fcHRyNjQNCis/Q29uc3RydWN0QENFcnJvckBASUVBQUFFQlYxQEpAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1N0cmluZ0xpc3RFeDo6Q29udmVydEZyb21Eb3VibGVOdWxsTGlzdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0NvbnZlcnRGcm9tRG91YmxlTnVsbExpc3RAQ1N0cmluZ0xpc3RFeEBAUUVBQUtQRUJHSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDU3RyaW5nTGlzdEV4OjpDb252ZXJ0VG9Eb3VibGVOdWxsTGlzdCh1bnNpZ25lZCBsb25nICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbnZlcnRUb0RvdWJsZU51bGxMaXN0QENTdHJpbmdMaXN0RXhAQFFFQUFLQUVBS0FFQVBFQUdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OkNvbnZlcnRUb1BhcmVudFBhdGgoaW50KSBfX3B0cjY0DQorP0NvbnZlcnRUb1BhcmVudFBhdGhAQ01ldGFLZXlAQFFFQUFKSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpDb252ZXJ0VG9QYXJlbnRQYXRoKGNsYXNzIENNZXRhYmFzZVBhdGggJiBfX3B0cjY0KQ0KKz9Db252ZXJ0VG9QYXJlbnRQYXRoQENNZXRhYmFzZVBhdGhAQFNBUEVCR0FFQVYxQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpDb252ZXJ0VG9QYXJlbnRQYXRoKGNsYXNzIElJUzo6Q1N0cmluZyAmIF9fcHRyNjQpDQorP0NvbnZlcnRUb1BhcmVudFBhdGhAQ01ldGFiYXNlUGF0aEBAU0FQRUJHQUVBVkNTdHJpbmdASUlTQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkNvcHlEYXRhKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz9Db3B5RGF0YUBDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR0swS0tLSEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6Q29weUtleSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQsaW50KSBfX3B0cjY0DQorP0NvcHlLZXlAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdLMEhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdHJQYXNzd29yZDo6Q29weVRvKGNsYXNzIENTdHJQYXNzd29yZCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weVRvQENTdHJQYXNzd29yZEBAUUVBQVhBRUFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0clBhc3N3b3JkOjpDb3B5VG8oY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5VG9AQ1N0clBhc3N3b3JkQEBRRUFBWEFFQVZDU3RyaW5nQElJU0BAQFoNCis7IHB1YmxpYzogc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQgX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsPGNsYXNzIENGaWxlQ2hvb3NlcixjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6Q3JlYXRlKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHN0cnVjdCB0YWdSRUNUICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGludCx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVAPyRDV2luZG93SW1wbEBWQ0ZpbGVDaG9vc2VyQEBWQ1dpbmRvd0BBVExAQFY/JENXaW5UcmFpdHNAJDBGR0FBQUFBQUAkMEFAQDNAQEFUTEBAUUVBQVBFQVVIV05EX19AQFBFQVUzQEFFQVV0YWdSRUNUQEBQRUJHS0tJUEVBWEBaDQorOyBwdWJsaWM6IHN0cnVjdCBIV05EX18gKiBfX3B0cjY0IF9fY2RlY2wgQVRMOjpDV2luZG93SW1wbEJhc2VUPGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+OjpDcmVhdGUoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsc3RydWN0IHRhZ1JFQ1QgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0LHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NyZWF0ZUA/JENXaW5kb3dJbXBsQmFzZVRAVkNXaW5kb3dAQVRMQEBWPyRDV2luVHJhaXRzQCQwRkdBQUFBQUFAJDBBQEAyQEBBVExAQFFFQUFQRUFVSFdORF9fQEBQRUFVM0BBRUFVdGFnUkVDVEBAUEVCR0tLSUdQRUFYQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6Q3JlYXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0NyZWF0ZUBDSUlTQXBwbGljYXRpb25AQFFFQUFKUEVCR0tAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ0lJU0ludGVyZmFjZTo6Q3JlYXRlKGludCxzdHJ1Y3QgX0dVSUQgY29uc3QgKiBfX3B0cjY0IGNvbnN0LHN0cnVjdCBfR1VJRCBjb25zdCAqIF9fcHRyNjQgY29uc3QsaW50ICogX19wdHI2NCxzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVAQ0lJU0ludGVyZmFjZUBASUVBQUpIUUVCVV9HVUlEQEAwUEVBSFBFQVBFQVVJVW5rbm93bkBAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENJSVNTdmNDb250cm9sOjpDcmVhdGUodm9pZCkgX19wdHI2NA0KKz9DcmVhdGVAQ0lJU1N2Y0NvbnRyb2xAQElFQUFKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpDcmVhdGUodm9pZCkgX19wdHI2NA0KKz9DcmVhdGVAQ01ldGFJbnRlcmZhY2VAQElFQUFKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENXYW1JbnRlcmZhY2U6OkNyZWF0ZSh2b2lkKSBfX3B0cjY0DQorP0NyZWF0ZUBDV2FtSW50ZXJmYWNlQEBJRUFBSlhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDRmlsZUNob29zZXI6OkNyZWF0ZURlZmF1bHRQYXRoRm9yUmVhZCh2b2lkKSBfX3B0cjY0DQorP0NyZWF0ZURlZmF1bHRQYXRoRm9yUmVhZEBDRmlsZUNob29zZXJAQElFQUFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENGaWxlQ2hvb3Nlcjo6Q3JlYXRlRmlsdGVyKGNsYXNzIElJUzo6Q1N0cmluZyAmIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVGaWx0ZXJAQ0ZpbGVDaG9vc2VyQEBJRUFBWEFFQVZDU3RyaW5nQElJU0BAMEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6Q3JlYXRlUGF0aEZyb21GYWlsZWRPcGVuKHZvaWQpIF9fcHRyNjQNCis/Q3JlYXRlUGF0aEZyb21GYWlsZWRPcGVuQENNZXRhS2V5QEBRRUFBSlhaDQorOyBwdWJsaWM6IHN0cnVjdCBfQ09TRVJWRVJJTkZPICogX19wdHI2NCBfX2NkZWNsIENDb21BdXRoSW5mbzo6Q3JlYXRlU2VydmVySW5mb1N0cnVjdCh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP0NyZWF0ZVNlcnZlckluZm9TdHJ1Y3RAQ0NvbUF1dGhJbmZvQEBRRUJBUEVBVV9DT1NFUlZFUklORk9AQEtAWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0NPU0VSVkVSSU5GTyAqIF9fcHRyNjQgX19jZGVjbCBDQ29tQXV0aEluZm86OkNyZWF0ZVNlcnZlckluZm9TdHJ1Y3Qodm9pZCljb25zdCAgX19wdHI2NA0KKz9DcmVhdGVTZXJ2ZXJJbmZvU3RydWN0QENDb21BdXRoSW5mb0BAUUVCQVBFQVVfQ09TRVJWRVJJTkZPQEBYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENFcnJvcjo6Q3Z0VG9JbnRlcm5hbEZvcm1hdChsb25nKQ0KKz9DdnRUb0ludGVybmFsRm9ybWF0QENFcnJvckBAS0FKSkBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ0Vycm9yOjpEZUFsbG9jYXRlU3RhdGljcyh2b2lkKQ0KKz9EZUFsbG9jYXRlU3RhdGljc0BDRXJyb3JAQEtBWFhaDQorOyBsb25nIF9fY2RlY2wgRGVjcnlwdE1lbW9yeVBhc3N3b3JkKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpDQorP0RlY3J5cHRNZW1vcnlQYXNzd29yZEBAWUFKUEVBR1BFQVBFQUdLQFoNCis7IHB1YmxpYzogX19pbnQ2NCBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6RGVmV2luZG93UHJvY1codW5zaWduZWQgaW50LHVuc2lnbmVkIF9faW50NjQsX19pbnQ2NCkgX19wdHI2NA0KKz9EZWZXaW5kb3dQcm9jV0A/JENXaW5kb3dJbXBsQmFzZVRAVkNXaW5kb3dAQVRMQEBWPyRDV2luVHJhaXRzQCQwRkdBQUFBQUFAJDBBQEAyQEBBVExAQFFFQUFfSklfS19KQFoNCis7IHB1YmxpYzogX19pbnQ2NCBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6RGVmV2luZG93UHJvY1codm9pZCkgX19wdHI2NA0KKz9EZWZXaW5kb3dQcm9jV0A/JENXaW5kb3dJbXBsQmFzZVRAVkNXaW5kb3dAQVRMQEBWPyRDV2luVHJhaXRzQCQwRkdBQUFBQUFAJDBBQEAyQEBBVExAQFFFQUFfSlhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsUm9vdDxjbGFzcyBBVEw6OkNXaW5kb3c+OjpEZWZhdWx0UmVmbGVjdGlvbkhhbmRsZXIoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIF9faW50NjQsX19pbnQ2NCxfX2ludDY0ICYgX19wdHI2NCkNCis/RGVmYXVsdFJlZmxlY3Rpb25IYW5kbGVyQD8kQ1dpbmRvd0ltcGxSb290QFZDV2luZG93QEFUTEBAQEFUTEBAU0FIUEVBVUhXTkRfX0BASV9LX0pBRUFfSkBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSUlTQXBwbGljYXRpb246OkRlbGV0ZShpbnQpIF9fcHRyNjQNCis/RGVsZXRlQENJSVNBcHBsaWNhdGlvbkBAUUVBQUpIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhQmFjazo6RGVsZXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0RlbGV0ZUBDTWV0YUJhY2tAQFFFQUFKUEVCR0tAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkRlbGV0ZUFsbERhdGEodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0RlbGV0ZUFsbERhdGFAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdLS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6RGVsZXRlQmFja3VwKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0RlbGV0ZUJhY2t1cEBDTWV0YUludGVyZmFjZUBASUVBQUpQRUJHS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6RGVsZXRlQ2hpbGRLZXlzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZUNoaWxkS2V5c0BDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6RGVsZXRlRGF0YSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RGVsZXRlRGF0YUBDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR0tLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpEZWxldGVLZXkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlS2V5QENNZXRhSW50ZXJmYWNlQEBJRUFBSktQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpEZWxldGVLZXkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZUtleUBDTWV0YUtleUBAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6RGVsZXRlUmVjb3ZlcmFibGUoaW50KSBfX3B0cjY0DQorP0RlbGV0ZVJlY292ZXJhYmxlQENJSVNBcHBsaWNhdGlvbkBAUUVBQUpIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpEZWxldGVWYWx1ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVWYWx1ZUBDTWV0YUtleUBAUUVBQUpLUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RyUGFzc3dvcmQ6OkRlc3Ryb3lDbGVhclRleHRQYXNzd29yZCh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RGVzdHJveUNsZWFyVGV4dFBhc3N3b3JkQENTdHJQYXNzd29yZEBAUUVCQVhQRUFHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQVRMOjpDV2luZG93SW1wbEJhc2VUPGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+OjpEZXN0cm95V2luZG93KHZvaWQpIF9fcHRyNjQNCis/RGVzdHJveVdpbmRvd0A/JENXaW5kb3dJbXBsQmFzZVRAVkNXaW5kb3dAQVRMQEBWPyRDV2luVHJhaXRzQCQwRkdBQUFBQUFAJDBBQEAyQEBBVExAQFFFQUFIWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpEb2VzUGF0aEV4aXN0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Eb2VzUGF0aEV4aXN0QENNZXRhS2V5QEBRRUFBSlBFQkdAWg0KKzsgdm9pZCBfX2NkZWNsIEVkaXRIaWRlQmFsbG9vbih2b2lkKQ0KKz9FZGl0SGlkZUJhbGxvb25AQFlBWFhaDQorOyB2b2lkIF9fY2RlY2wgRWRpdFNob3dCYWxsb29uKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQsdW5zaWduZWQgaW50KQ0KKz9FZGl0U2hvd0JhbGxvb25AQFlBWFBFQVVIV05EX19AQFBFQVVISU5TVEFOQ0VfX0BASUBaDQorOyB2b2lkIF9fY2RlY2wgRWRpdFNob3dCYWxsb29uKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/RWRpdFNob3dCYWxsb29uQEBZQVhQRUFVSFdORF9fQEBQRUJHQFoNCis7IF9faW50NjQgX19jZGVjbCBFZGl0X1Nob3dCYWxsb29uVGlwSGFuZGxlcihzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0VkaXRfU2hvd0JhbGxvb25UaXBIYW5kbGVyQEBZQV9KUEVBVUhXTkRfX0BAUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RyUGFzc3dvcmQ6OkVtcHR5KHZvaWQpIF9fcHRyNjQNCis/RW1wdHlAQ1N0clBhc3N3b3JkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVM6OkNTdHJpbmc6OkVtcHR5KHZvaWQpIF9fcHRyNjQNCis/RW1wdHlAQ1N0cmluZ0BJSVNAQFFFQUFYWFoNCis7IGxvbmcgX19jZGVjbCBFbmNyeXB0TWVtb3J5UGFzc3dvcmQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpDQorP0VuY3J5cHRNZW1vcnlQYXNzd29yZEBAWUFKUEVBR1BFQVBFQUdQRUFLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpFbnVtQmFja3Vwcyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsc3RydWN0IF9GSUxFVElNRSAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9FbnVtQmFja3Vwc0BDTWV0YUludGVyZmFjZUBASUVBQUpQRUFHUEVBS1BFQVVfRklMRVRJTUVAQEtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkVudW1EYXRhKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBfTUVUQURBVEFfUkVDT1JEICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0VudW1EYXRhQENNZXRhSW50ZXJmYWNlQEBJRUFBSktQRUJHUEVBVV9NRVRBREFUQV9SRUNPUkRAQEtQRUFLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpFbnVtS2V5cyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9FbnVtS2V5c0BDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR1BFQUdLQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Vycm9yOjpFeHBhbmRFc2NhcGVDb2RlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAmIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCxsb25nICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FeHBhbmRFc2NhcGVDb2RlQENFcnJvckBASUVCQUhQRUFHS0FFQVBFQUdBRUFWQ1N0cmluZ0BJSVNAQEFFQUpAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRmlsZUNob29zZXI6OkV4dHJhY3RBcmdzKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz9FeHRyYWN0QXJnc0BDRmlsZUNob29zZXJAQElFQUFIUEVBR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENGaWxlQ2hvb3Nlcjo6RXh0cmFjdFBhdGgodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0V4dHJhY3RQYXRoQENGaWxlQ2hvb3NlckBASUVBQUhQRUFHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0Vycm9yOjpGYWlsZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9GYWlsZWRAQ0Vycm9yQEBRRUJBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDRXJyb3I6OkZhaWxlZChsb25nKQ0KKz9GYWlsZWRAQ0Vycm9yQEBTQUhKQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTOjpDU3RyaW5nOjpGaW5kKHVuc2lnbmVkIHNob3J0KWNvbnN0ICBfX3B0cjY0DQorP0ZpbmRAQ1N0cmluZ0BJSVNAQFFFQkFIR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJUzo6Q1N0cmluZzo6RmluZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RmluZEBDU3RyaW5nQElJU0BAUUVCQUhQRUJHQFoNCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENFcnJvcjo6RmluZEZhY2lsaXR5KHVuc2lnbmVkIGxvbmcpDQorP0ZpbmRGYWNpbGl0eUBDRXJyb3JAQEtBUEVCR0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBJSVM6OkNTdHJpbmc6OkZpbmRPbmVPZih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RmluZE9uZU9mQENTdHJpbmdASUlTQEBRRUJBSFBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTOjpDU3RyaW5nOjpGb3JtYXQoc3RydWN0IEhJTlNUQU5DRV9fICogX19wdHI2NCx1bnNpZ25lZCBpbnQsLi4uKSBfX3B0cjY0DQorP0Zvcm1hdEBDU3RyaW5nQElJU0BAUUVBQVhQRUFVSElOU1RBTkNFX19AQElaWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTOjpDU3RyaW5nOjpGb3JtYXQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LC4uLikgX19wdHI2NA0KKz9Gb3JtYXRAQ1N0cmluZ0BJSVNAQFFFQUFYUEVCR1paDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJUzo6Q1N0cmluZzo6Rm9ybWF0TWVzc2FnZVcoc3RydWN0IEhJTlNUQU5DRV9fICogX19wdHI2NCx1bnNpZ25lZCBpbnQsLi4uKSBfX3B0cjY0DQorP0Zvcm1hdE1lc3NhZ2VXQENTdHJpbmdASUlTQEBRRUFBSFBFQVVISU5TVEFOQ0VfX0BASVpaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJUzo6Q1N0cmluZzo6Rm9ybWF0TWVzc2FnZVcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LC4uLikgX19wdHI2NA0KKz9Gb3JtYXRNZXNzYWdlV0BDU3RyaW5nQElJU0BAUUVBQUhQRUJHWloNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJUzo6Q1N0cmluZzo6Rm9ybWF0Vih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Rm9ybWF0VkBDU3RyaW5nQElJU0BAUUVBQVhQRUJHUEVBREBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29tQXV0aEluZm86OkZyZWVTZXJ2ZXJJbmZvU3RydWN0KHN0cnVjdCBfQ09TRVJWRVJJTkZPICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9GcmVlU2VydmVySW5mb1N0cnVjdEBDQ29tQXV0aEluZm9AQFFFQkFYUEVBVV9DT1NFUlZFUklORk9AQEBaDQorOyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBHZW5lcmF0ZVJlZ2lzdHJ5S2V5KGNsYXNzIElJUzo6Q1N0cmluZyAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9HZW5lcmF0ZVJlZ2lzdHJ5S2V5QEBZQVBFQkdBRUFWQ1N0cmluZ0BJSVNAQFBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkdldEFkbWluSW50ZXJmYWNlMihzdHJ1Y3QgSU1TQWRtaW5CYXNlMlcgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRBZG1pbkludGVyZmFjZTJAQ01ldGFJbnRlcmZhY2VAQFFFQUFKUEVBUEVBVUlNU0FkbWluQmFzZTJXQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkdldEFsbERhdGEodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRBbGxEYXRhQENNZXRhSW50ZXJmYWNlQEBJRUFBSktQRUJHS0tLUEVBSzFLUEVBRTFAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OkdldEFsbERhdGEodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRBbGxEYXRhQENNZXRhS2V5QEBJRUFBSktLS1BFQUswUEVBUEVBRVBFQkdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIElJUzo6Q1N0cmluZzo6R2V0QXQoaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldEF0QENTdHJpbmdASUlTQEBRRUJBR0hAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OkdldEJhc2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRCYXNlQENNZXRhS2V5QEBRRUJBS1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTdHJQYXNzd29yZDo6R2V0Qnl0ZUxlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEJ5dGVMZW5ndGhAQ1N0clBhc3N3b3JkQEBRRUJBSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENTdHJQYXNzd29yZDo6R2V0Q2xlYXJUZXh0UGFzc3dvcmQodm9pZCkgX19wdHI2NA0KKz9HZXRDbGVhclRleHRQYXNzd29yZEBDU3RyUGFzc3dvcmRAQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogc3RydWN0IHRhZ01TRyBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsUm9vdDxjbGFzcyBBVEw6OkNXaW5kb3c+OjpHZXRDdXJyZW50TWVzc2FnZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEN1cnJlbnRNZXNzYWdlQD8kQ1dpbmRvd0ltcGxSb290QFZDV2luZG93QEFUTEBAQEFUTEBAUUVCQVBFQlV0YWdNU0dAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0Jsb2I6OkdldERhdGEodm9pZCkgX19wdHI2NA0KKz9HZXREYXRhQENCbG9iQEBRRUFBUEVBRVhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6R2V0RGF0YSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgX01FVEFEQVRBX1JFQ09SRCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RGF0YUBDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR1BFQVVfTUVUQURBVEFfUkVDT1JEQEBQRUFLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpHZXREYXRhUGF0aHModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERhdGFQYXRoc0BDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR0tLS1BFQUdQRUFLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpHZXREYXRhUGF0aHMoY2xhc3MgQ1N0cmluZ0xpc3RFeCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREYXRhUGF0aHNAQ01ldGFLZXlAQFFFQUFKQUVBVkNTdHJpbmdMaXN0RXhAQEtLUEVCR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRmlsZUNob29zZXI6OkdldEZpbGVOYW1lKGNsYXNzIElJUzo6Q1N0cmluZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RmlsZU5hbWVAQ0ZpbGVDaG9vc2VyQEBRRUFBS0FFQVZDU3RyaW5nQElJU0BAQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0ZpbGVDaG9vc2VyOjpHZXRGaWx0ZXJJbmRleChjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEZpbHRlckluZGV4QENGaWxlQ2hvb3NlckBASUVBQUhBRUJWQ1N0cmluZ0BJSVNAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTWV0YUtleTo6R2V0SGFuZGxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0SGFuZGxlQENNZXRhS2V5QEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTWV0YUVudW1lcmF0b3I6OkdldEluZGV4KHZvaWQpIF9fcHRyNjQNCis/R2V0SW5kZXhAQ01ldGFFbnVtZXJhdG9yQEBRRUFBS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6R2V0SW5zdGFuY2VOdW1iZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9HZXRJbnN0YW5jZU51bWJlckBDTWV0YWJhc2VQYXRoQEBTQUtQRUJHQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OkdldEluc3RhbmNlUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCxjbGFzcyBJSVM6OkNTdHJpbmcgKiBfX3B0cjY0KQ0KKz9HZXRJbnN0YW5jZVBhdGhAQ01ldGFiYXNlUGF0aEBAU0FQRUJHUEVCR0FFQVZDU3RyaW5nQElJU0BAUEVBVjIzQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBJTVNBZG1pbkJhc2VXICogX19wdHI2NCBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpHZXRJbnRlcmZhY2Uodm9pZCkgX19wdHI2NA0KKz9HZXRJbnRlcmZhY2VAQ01ldGFJbnRlcmZhY2VAQFFFQUFQRUFVSU1TQWRtaW5CYXNlV0BAWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpHZXRMYXN0Q2hhbmdlVGltZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgX0ZJTEVUSU1FICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0TGFzdENoYW5nZVRpbWVAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdQRUFVX0ZJTEVUSU1FQEBIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OkdldExhc3ROb2RlTmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCkNCis/R2V0TGFzdE5vZGVOYW1lQENNZXRhYmFzZVBhdGhAQFNBUEVCR1BFQkdBRUFWQ1N0cmluZ0BJSVNAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRXJyb3I6OkdldExhc3RXaW5FcnJvcih2b2lkKSBfX3B0cjY0DQorP0dldExhc3RXaW5FcnJvckBDRXJyb3JAQFFFQUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1N0clBhc3N3b3JkOjpHZXRMZW5ndGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRMZW5ndGhAQ1N0clBhc3N3b3JkQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIElJUzo6Q1N0cmluZzo6R2V0TGVuZ3RoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0TGVuZ3RoQENTdHJpbmdASUlTQEBRRUJBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDTWV0YUtleTo6R2V0TURGaWVsZERlZih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0KQ0KKz9HZXRNREZpZWxkRGVmQENNZXRhS2V5QEBTQUhLQUVBSzAwMEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpHZXRNYWNoaW5lUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCxjbGFzcyBJSVM6OkNTdHJpbmcgKiBfX3B0cjY0KQ0KKz9HZXRNYWNoaW5lUGF0aEBDTWV0YWJhc2VQYXRoQEBTQVBFQkdQRUJHQUVBVkNTdHJpbmdASUlTQEBQRUFWMjNAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENGaWxlQ2hvb3Nlcjo6R2V0T2ZuRmxhZ3Modm9pZCkgX19wdHI2NA0KKz9HZXRPZm5GbGFnc0BDRmlsZUNob29zZXJAQFFFQUFLWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENNZXRhS2V5OjpHZXRQcm9wZXJ0eURlc2NyaXB0aW9uKHVuc2lnbmVkIGxvbmcsY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCkNCis/R2V0UHJvcGVydHlEZXNjcmlwdGlvbkBDTWV0YUtleUBAU0FIS0FFQVZDU3RyaW5nQElJU0BAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpHZXRQcm9wZXJ0eVZhbHVlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgJiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFByb3BlcnR5VmFsdWVAQ01ldGFLZXlAQElFQUFKS0FFQUtBRUFQRUFYUEVBS1BFQUhQRUJHMkBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpHZXRSb290UGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCxjbGFzcyBJSVM6OkNTdHJpbmcgKiBfX3B0cjY0KQ0KKz9HZXRSb290UGF0aEBDTWV0YWJhc2VQYXRoQEBTQVBFQkdQRUJHQUVBVkNTdHJpbmdASUlTQEBQRUFWMjNAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OkdldFNlcnZpY2VJbmZvUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0dldFNlcnZpY2VJbmZvUGF0aEBDTWV0YWJhc2VQYXRoQEBTQVBFQkdQRUJHQUVBVkNTdHJpbmdASUlTQEAwQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OkdldFNlcnZpY2VQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBJSVM6OkNTdHJpbmcgJiBfX3B0cjY0LGNsYXNzIElJUzo6Q1N0cmluZyAqIF9fcHRyNjQpDQorP0dldFNlcnZpY2VQYXRoQENNZXRhYmFzZVBhdGhAQFNBUEVCR1BFQkdBRUFWQ1N0cmluZ0BJSVNAQFBFQVYyM0BAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0Jsb2I6OkdldFNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTaXplQENCbG9iQEBRRUJBS1haDQorOyBpbnQgX19jZGVjbCBHZXRTcGVjaWFsUGF0aFJlYWxQYXRoKGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCkNCis/R2V0U3BlY2lhbFBhdGhSZWFsUGF0aEBAWUFIQUVCVkNTdHJpbmdASUlTQEBBRUFWMTJAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENGaWxlQ2hvb3Nlcjo6R2V0U3R5bGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTdHlsZUBDRmlsZUNob29zZXJAQFFFQkFLWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENGaWxlQ2hvb3Nlcjo6R2V0VGV4dCh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0VGV4dEBDRmlsZUNob29zZXJAQElFQUFYUEVBR0BaDQorOyBpbnQgX19jZGVjbCBHZXRWb2x1bWVJbmZvcm1hdGlvblN5c3RlbUZsYWdzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkNCis/R2V0Vm9sdW1lSW5mb3JtYXRpb25TeXN0ZW1GbGFnc0BAWUFIUEVCR1BFQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9faW50NjQgKF9fY2RlY2wqX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsQmFzZVQ8Y2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID46OkdldFdpbmRvd1Byb2Modm9pZCkgX19wdHI2NCkoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIF9faW50NjQsX19pbnQ2NCkNCis/R2V0V2luZG93UHJvY0A/JENXaW5kb3dJbXBsQmFzZVRAVkNXaW5kb3dAQVRMQEBWPyRDV2luVHJhaXRzQCQwRkdBQUFBQUFAJDBBQEAyQEBBVExAQFVFQUFQNkFfSlBFQVVIV05EX19AQElfS19KQFpYWg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IF9BVExfV05EQ0xBU1NJTkZPVyAmIF9fcHRyNjQgX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsPGNsYXNzIENGaWxlQ2hvb3NlcixjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6R2V0V25kQ2xhc3NJbmZvKHZvaWQpDQorP0dldFduZENsYXNzSW5mb0A/JENXaW5kb3dJbXBsQFZDRmlsZUNob29zZXJAQFZDV2luZG93QEFUTEBAVj8kQ1dpblRyYWl0c0AkMEZHQUFBQUFBQCQwQUBAM0BAQVRMQEBTQUFFQVVfQVRMX1dORENMQVNTSU5GT1dAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQVRMOjpDV2luZG93SW1wbEJhc2VUPGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+OjpHZXRXbmRFeFN0eWxlKHVuc2lnbmVkIGxvbmcpDQorP0dldFduZEV4U3R5bGVAPyRDV2luZG93SW1wbEJhc2VUQFZDV2luZG93QEFUTEBAVj8kQ1dpblRyYWl0c0AkMEZHQUFBQUFBQCQwQUBAMkBAQVRMQEBTQUtLQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsQmFzZVQ8Y2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID46OkdldFduZFN0eWxlKHVuc2lnbmVkIGxvbmcpDQorP0dldFduZFN0eWxlQD8kQ1dpbmRvd0ltcGxCYXNlVEBWQ1dpbmRvd0BBVExAQFY/JENXaW5UcmFpdHNAJDBGR0FBQUFBQUAkMEFAQDJAQEFUTEBAU0FLS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRXJyb3I6OkhSZXN1bHQodm9pZCljb25zdCAgX19wdHI2NA0KKz9IUmVzdWx0QENFcnJvckBAUUVCQUpYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENFcnJvcjo6SFJlc3VsdChsb25nKQ0KKz9IUmVzdWx0QENFcnJvckBAU0FKSkBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENGaWxlQ2hvb3Nlcjo6SGFzRWRpdEZvY3VzKHZvaWQpIF9fcHRyNjQNCis/SGFzRWRpdEZvY3VzQENGaWxlQ2hvb3NlckBASUVBQUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDSUlTU3ZjQ29udHJvbDo6SGFzSW50ZXJmYWNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SGFzSW50ZXJmYWNlQENJSVNTdmNDb250cm9sQEBJRUJBSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpIYXNJbnRlcmZhY2Uodm9pZCljb25zdCAgX19wdHI2NA0KKz9IYXNJbnRlcmZhY2VAQ01ldGFJbnRlcmZhY2VAQElFQkFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ1dhbUludGVyZmFjZTo6SGFzSW50ZXJmYWNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SGFzSW50ZXJmYWNlQENXYW1JbnRlcmZhY2VAQElFQkFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Vycm9yOjpIYXNPdmVycmlkZSh1bnNpZ25lZCBpbnQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0hhc092ZXJyaWRlQENFcnJvckBASUVCQUhQRUFJQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0ZpbGVDaG9vc2VyOjpJbml0KGNsYXNzIEFUTDo6Q1dpbmRvdyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP0luaXRAQ0ZpbGVDaG9vc2VyQEBRRUFBSFBFQVZDV2luZG93QEFUTEBAS0lJQFoNCis7IGludCBfX2NkZWNsIElzQmlEaUxvY2FsaXplZFN5c3RlbSh2b2lkKQ0KKz9Jc0JpRGlMb2NhbGl6ZWRTeXN0ZW1AQFlBSFhaDQorOyBpbnQgX19jZGVjbCBJc0RldmljZVBhdGgoY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkNCis/SXNEZXZpY2VQYXRoQEBZQUhBRUJWQ1N0cmluZ0BJSVNAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENCbG9iOjpJc0VtcHR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNFbXB0eUBDQmxvYkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU3RyUGFzc3dvcmQ6OklzRW1wdHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0VtcHR5QENTdHJQYXNzd29yZEBAUUVCQUhYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgSUlTOjpDU3RyaW5nOjpJc0VtcHR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNFbXB0eUBDU3RyaW5nQElJU0BAUUVCQV9OWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpJc0VuYWJsZWRBcHBsaWNhdGlvbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRW5hYmxlZEFwcGxpY2F0aW9uQENJSVNBcHBsaWNhdGlvbkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTWV0YUtleTo6SXNIb21lRGlyZWN0b3J5UGF0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzSG9tZURpcmVjdG9yeVBhdGhAQ01ldGFLZXlAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6SXNIb21lRGlyZWN0b3J5UGF0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzSG9tZURpcmVjdG9yeVBhdGhAQ01ldGFiYXNlUGF0aEBAUUVCQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6SXNIb21lRGlyZWN0b3J5UGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0lzSG9tZURpcmVjdG9yeVBhdGhAQ01ldGFiYXNlUGF0aEBAU0FIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6SXNJbnByb2Modm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0lucHJvY0BDSUlTQXBwbGljYXRpb25AQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjpJc0xvY2FsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNMb2NhbEBDQ29tQXV0aEluZm9AQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lJU0ludGVyZmFjZTo6SXNMb2NhbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzTG9jYWxAQ0lJU0ludGVyZmFjZUBAUUVCQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6SXNNYXN0ZXJJbnN0YW5jZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0lzTWFzdGVySW5zdGFuY2VAQ01ldGFiYXNlUGF0aEBAU0FIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENNZXRhS2V5OjpJc09wZW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc09wZW5AQ01ldGFLZXlAQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpJc091dE9mUHJvYyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzT3V0T2ZQcm9jQENJSVNBcHBsaWNhdGlvbkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSUlTQXBwbGljYXRpb246OklzUG9vbGVkUHJvYyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzUG9vbGVkUHJvY0BDSUlTQXBwbGljYXRpb25AQFFFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENNZXRhS2V5OjpJc1Byb3BlcnR5SW5oZXJpdGFibGUodW5zaWduZWQgbG9uZykNCis/SXNQcm9wZXJ0eUluaGVyaXRhYmxlQENNZXRhS2V5QEBTQUhLQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OklzU2VwYXJhdG9yKHVuc2lnbmVkIHNob3J0KQ0KKz9Jc1NlcGFyYXRvckBDTWV0YWJhc2VQYXRoQEBTQUhHQFoNCis7IGludCBfX2NkZWNsIElzU2VydmVyTG9jYWwodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9Jc1NlcnZlckxvY2FsQEBZQUhQRUJHQFoNCis7IGludCBfX2NkZWNsIElzU3BlY2lhbFBhdGgoY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCxpbnQpDQorP0lzU3BlY2lhbFBhdGhAQFlBSEFFQlZDU3RyaW5nQElJU0BASEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENGaWxlQ2hvb3Nlcjo6SXNWYWxpZENoYXIodW5zaWduZWQgaW50LGludCkgX19wdHI2NA0KKz9Jc1ZhbGlkQ2hhckBDRmlsZUNob29zZXJAQElFQUFISUhAWg0KKzsgaW50IF9fY2RlY2wgSXNWYWxpZEZpbGVQYXRoKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpDQorP0lzVmFsaWRGaWxlUGF0aEBAWUFIUEVBVUhXTkRfX0BAUEVCR0hAWg0KKzsgaW50IF9fY2RlY2wgSXNWYWxpZEZvbGRlclBhdGgoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkNCis/SXNWYWxpZEZvbGRlclBhdGhAQFlBSFBFQVVIV05EX19AQFBFQkdIQFoNCis7IGludCBfX2NkZWNsIElzVmFsaWROYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/SXNWYWxpZE5hbWVAQFlBSFBFQkdAWg0KKzsgaW50IF9fY2RlY2wgSXNWYWxpZFBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9Jc1ZhbGlkUGF0aEBAWUFIUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENGaWxlQ2hvb3Nlcjo6SXNWYWxpZFBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzVmFsaWRQYXRoQENGaWxlQ2hvb3NlckBASUVBQUhQRUJHQFoNCis7IGludCBfX2NkZWNsIElzVmFsaWRVTkNGb2xkZXJQYXRoKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/SXNWYWxpZFVOQ0ZvbGRlclBhdGhAQFlBSFBFQVVIV05EX19AQFBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6OktpbGwodm9pZCkgX19wdHI2NA0KKz9LaWxsQENJSVNTdmNDb250cm9sQEBRRUFBSlhaDQorOyBwdWJsaWM6IGNsYXNzIElJUzo6Q1N0cmluZyAgX19jZGVjbCBJSVM6OkNTdHJpbmc6OkxlZnQoaW50KWNvbnN0ICBfX3B0cjY0DQorP0xlZnRAQ1N0cmluZ0BJSVNAQFFFQkE/QVYxMkBIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTOjpDU3RyaW5nOjpMb2FkU3RyaW5nVyhzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9Mb2FkU3RyaW5nV0BDU3RyaW5nQElJU0BAUUVBQUhQRUFVSElOU1RBTkNFX19AQElAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTOjpDU3RyaW5nOjpNYWtlTG93ZXIodm9pZCkgX19wdHI2NA0KKz9NYWtlTG93ZXJAQ1N0cmluZ0BJSVNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJUzo6Q1N0cmluZzo6TWFrZVJldmVyc2Uodm9pZCkgX19wdHI2NA0KKz9NYWtlUmV2ZXJzZUBDU3RyaW5nQElJU0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTOjpDU3RyaW5nOjpNYWtlVXBwZXIodm9pZCkgX19wdHI2NA0KKz9NYWtlVXBwZXJAQ1N0cmluZ0BJSVNAQFFFQUFYWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENNZXRhS2V5OjpNYXBNRElEVG9UYWJsZUluZGV4KHVuc2lnbmVkIGxvbmcpDQorP01hcE1ESURUb1RhYmxlSW5kZXhAQ01ldGFLZXlAQFNBSEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRXJyb3I6Ok1lc3NhZ2VCb3hGb3JtYXQoc3RydWN0IEhJTlNUQU5DRV9fICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCwuLi4pY29uc3QgIF9fcHRyNjQNCis/TWVzc2FnZUJveEZvcm1hdEBDRXJyb3JAQFFFQkFIUEVBVUhJTlNUQU5DRV9fQEBJSUlaWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRXJyb3I6Ok1lc3NhZ2VCb3hPbkZhaWx1cmUodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9NZXNzYWdlQm94T25GYWlsdXJlQENFcnJvckBAUUVCQUhJSUBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENFcnJvcjo6TWVzc2FnZUJveFcodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCAgX19wdHI2NA0KKz9NZXNzYWdlQm94V0BDRXJyb3JAQFFFQkFISUlAWg0KKzsgcHVibGljOiBjbGFzcyBJSVM6OkNTdHJpbmcgIF9fY2RlY2wgSUlTOjpDU3RyaW5nOjpNaWQoaW50KWNvbnN0ICBfX3B0cjY0DQorP01pZEBDU3RyaW5nQElJU0BAUUVCQT9BVjEyQEhAWg0KKzsgcHVibGljOiBjbGFzcyBJSVM6OkNTdHJpbmcgIF9fY2RlY2wgSUlTOjpDU3RyaW5nOjpNaWQoaW50LGludCljb25zdCAgX19wdHI2NA0KKz9NaWRAQ1N0cmluZ0BJSVNAQFFFQkE/QVYxMkBISEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUJhY2s6Ok5leHQodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHN0cnVjdCBfRklMRVRJTUUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP05leHRAQ01ldGFCYWNrQEBRRUFBSlBFQUtQRUFHUEVBVV9GSUxFVElNRUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhRW51bWVyYXRvcjo6TmV4dCh1bnNpZ25lZCBsb25nICYgX19wdHI2NCxjbGFzcyBJSVM6OkNTdHJpbmcgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9OZXh0QENNZXRhRW51bWVyYXRvckBAUUVBQUpBRUFLQUVBVkNTdHJpbmdASUlTQEBQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhRW51bWVyYXRvcjo6TmV4dChjbGFzcyBJSVM6OkNTdHJpbmcgJiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9OZXh0QENNZXRhRW51bWVyYXRvckBAUUVBQUpBRUFWQ1N0cmluZ0BJSVNAQFBFQkdAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0ZpbGVDaG9vc2VyOjpPbkJyb3dzZUJ0bih2b2lkKSBfX3B0cjY0DQorP09uQnJvd3NlQnRuQENGaWxlQ2hvb3NlckBASUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZpbGVDaG9vc2VyOjpPbkVkaXRDaGFuZ2Uodm9pZCkgX19wdHI2NA0KKz9PbkVkaXRDaGFuZ2VAQ0ZpbGVDaG9vc2VyQEBRRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IF9faW50NjQgX19jZGVjbCBDRmlsZUNob29zZXI6Ok9uRWRpdENoYXIodW5zaWduZWQgaW50LHVuc2lnbmVkIF9faW50NjQsX19pbnQ2NCxpbnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uRWRpdENoYXJAQ0ZpbGVDaG9vc2VyQEBJRUFBX0pJX0tfSkFFQUhAWg0KKzsgcHJvdGVjdGVkOiBfX2ludDY0IF9fY2RlY2wgQ0ZpbGVDaG9vc2VyOjpPbkVkaXRLaWxsRm9jdXModW5zaWduZWQgaW50LHVuc2lnbmVkIF9faW50NjQsX19pbnQ2NCxpbnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP09uRWRpdEtpbGxGb2N1c0BDRmlsZUNob29zZXJAQElFQUFfSklfS19KQUVBSEBaDQorOyBwcm90ZWN0ZWQ6IF9faW50NjQgX19jZGVjbCBDRmlsZUNob29zZXI6Ok9uRWRpdFNldEZvY3VzKHVuc2lnbmVkIGludCx1bnNpZ25lZCBfX2ludDY0LF9faW50NjQsaW50ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PbkVkaXRTZXRGb2N1c0BDRmlsZUNob29zZXJAQElFQUFfSklfS19KQUVBSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6T25GaW5hbE1lc3NhZ2Uoc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T25GaW5hbE1lc3NhZ2VAPyRDV2luZG93SW1wbEJhc2VUQFZDV2luZG93QEFUTEBAVj8kQ1dpblRyYWl0c0AkMEZHQUFBQUFBQCQwQUBAMkBAQVRMQEBVRUFBWFBFQVVIV05EX19AQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmlsZUNob29zZXI6Ok9uUGFzdGUodm9pZCkgX19wdHI2NA0KKz9PblBhc3RlQENGaWxlQ2hvb3NlckBAUUVBQVhYWg0KKzsgcHJvdGVjdGVkOiBfX2ludDY0IF9fY2RlY2wgQ0ZpbGVDaG9vc2VyOjpPblNldEJyb3dzZVN0YXRlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBfX2ludDY0LF9faW50NjQsaW50ICYgX19wdHI2NCkgX19wdHI2NA0KKz9PblNldEJyb3dzZVN0YXRlQENGaWxlQ2hvb3NlckBASUVBQV9KSV9LX0pBRUFIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpPcGVuKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/T3BlbkBDTWV0YUtleUBAUUVBQUpLUEVCR0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRmlsZUNob29zZXI6Ok9wZW5Gb3JSZWFkKHZvaWQpIF9fcHRyNjQNCis/T3BlbkZvclJlYWRAQ0ZpbGVDaG9vc2VyQEBRRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6T3BlbktleSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP09wZW5LZXlAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdLUEVBS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTWV0YUVudW1lcmF0b3I6OlBvcCh2b2lkKSBfX3B0cjY0DQorP1BvcEBDTWV0YUVudW1lcmF0b3JAQFFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDRmlsZUNob29zZXI6OlByb2Nlc3NXaW5kb3dNZXNzYWdlKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBfX2ludDY0LF9faW50NjQsX19pbnQ2NCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Qcm9jZXNzV2luZG93TWVzc2FnZUBDRmlsZUNob29zZXJAQFVFQUFIUEVBVUhXTkRfX0BASV9LX0pBRUFfSktAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01ldGFFbnVtZXJhdG9yOjpQdXNoKHZvaWQpIF9fcHRyNjQNCis/UHVzaEBDTWV0YUVudW1lcmF0b3JAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdHJpbmdMaXN0RXg6OlB1c2hCYWNrKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QdXNoQmFja0BDU3RyaW5nTGlzdEV4QEBRRUFBWFBFQkdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpRdWVyeUFwcFN0YXRlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlBcHBTdGF0ZUBDSUlTQXBwbGljYXRpb25AQFFFQkFLWFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbUF1dGhJbmZvICogX19wdHI2NCBfX2NkZWNsIENJSVNJbnRlcmZhY2U6OlF1ZXJ5QXV0aEluZm8odm9pZCkgX19wdHI2NA0KKz9RdWVyeUF1dGhJbmZvQENJSVNJbnRlcmZhY2VAQFFFQUFQRUFWQ0NvbUF1dGhJbmZvQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlF1ZXJ5RmxhZ3Modm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUZsYWdzQENNZXRhS2V5QEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENNZXRhS2V5OjpRdWVyeU1ldGFQYXRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNZXRhUGF0aEBDTWV0YUtleUBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpRdWVyeU1ldGFQYXRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlNZXRhUGF0aEBDTWV0YWJhc2VQYXRoQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENDb21BdXRoSW5mbzo6UXVlcnlQYXNzd29yZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UGFzc3dvcmRAQ0NvbUF1dGhJbmZvQEBRRUJBUEVBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6UXVlcnlSZXN1bHQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVJlc3VsdEBDSUlTQXBwbGljYXRpb25AQFVFQkFKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0lJU0ludGVyZmFjZTo6UXVlcnlSZXN1bHQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVJlc3VsdEBDSUlTSW50ZXJmYWNlQEBVRUJBSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENNZXRhQmFjazo6UXVlcnlSZXN1bHQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVJlc3VsdEBDTWV0YUJhY2tAQFVFQkFKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlF1ZXJ5UmVzdWx0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlSZXN1bHRAQ01ldGFLZXlAQFVFQkFKWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjpRdWVyeVNlcnZlck5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNlcnZlck5hbWVAQ0NvbUF1dGhJbmZvQEBRRUJBUEVBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENJSVNJbnRlcmZhY2U6OlF1ZXJ5U2VydmVyTmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2VydmVyTmFtZUBDSUlTSW50ZXJmYWNlQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENDb21BdXRoSW5mbzo6UXVlcnlVc2VyTmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VXNlck5hbWVAQ0NvbUF1dGhJbmZvQEBRRUJBUEVBR1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6UXVlcnlWYWx1ZSh1bnNpZ25lZCBsb25nLGludCAmIF9fcHRyNjQsaW50ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlWYWx1ZUBDTWV0YUtleUBAUUVBQUpLQUVBSFBFQUhQRUJHUEVBS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6UXVlcnlWYWx1ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgJiBfX3B0cjY0LGludCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5VmFsdWVAQ01ldGFLZXlAQFFFQUFKS0FFQUtQRUFIUEVCR1BFQUtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlF1ZXJ5VmFsdWUodW5zaWduZWQgbG9uZyxjbGFzcyBDQmxvYiAmIF9fcHRyNjQsaW50ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlWYWx1ZUBDTWV0YUtleUBAUUVBQUpLQUVBVkNCbG9iQEBQRUFIUEVCR1BFQUtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlF1ZXJ5VmFsdWUodW5zaWduZWQgbG9uZyxjbGFzcyBBVEw6OkNDb21CU1RSICYgX19wdHI2NCxpbnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeVZhbHVlQENNZXRhS2V5QEBRRUFBSktBRUFWQ0NvbUJTVFJAQVRMQEBQRUFIUEVCR1BFQUtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlF1ZXJ5VmFsdWUodW5zaWduZWQgbG9uZyxjbGFzcyBDU3RyUGFzc3dvcmQgJiBfX3B0cjY0LGludCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5VmFsdWVAQ01ldGFLZXlAQFFFQUFKS0FFQVZDU3RyUGFzc3dvcmRAQFBFQUhQRUJHUEVBS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6UXVlcnlWYWx1ZSh1bnNpZ25lZCBsb25nLGNsYXNzIElJUzo6Q1N0cmluZyAmIF9fcHRyNjQsaW50ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlWYWx1ZUBDTWV0YUtleUBAUUVBQUpLQUVBVkNTdHJpbmdASUlTQEBQRUFIUEVCR1BFQUtAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlF1ZXJ5VmFsdWUodW5zaWduZWQgbG9uZyxjbGFzcyBDU3RyaW5nTGlzdEV4ICYgX19wdHI2NCxpbnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeVZhbHVlQENNZXRhS2V5QEBRRUFBSktBRUFWQ1N0cmluZ0xpc3RFeEBAUEVBSFBFQkdQRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpRdWVyeVdhbVBhdGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVdhbVBhdGhAQ0lJU0FwcGxpY2F0aW9uQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6UmVPcGVuKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVPcGVuQENNZXRhS2V5QEBRRUFBSktAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlJlT3Blbih2b2lkKSBfX3B0cjY0DQorP1JlT3BlbkBDTWV0YUtleUBAUUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6OlJlYm9vdCh1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz9SZWJvb3RAQ0lJU1N2Y0NvbnRyb2xAQFFFQUFKS0hAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpSZWNvdmVyKGludCkgX19wdHI2NA0KKz9SZWNvdmVyQENJSVNBcHBsaWNhdGlvbkBAUUVBQUpIQFoNCis7IHB1YmxpYzogX19pbnQ2NCBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxSb290PGNsYXNzIEFUTDo6Q1dpbmRvdz46OlJlZmxlY3ROb3RpZmljYXRpb25zKHVuc2lnbmVkIGludCx1bnNpZ25lZCBfX2ludDY0LF9faW50NjQsaW50ICYgX19wdHI2NCkgX19wdHI2NA0KKz9SZWZsZWN0Tm90aWZpY2F0aW9uc0A/JENXaW5kb3dJbXBsUm9vdEBWQ1dpbmRvd0BBVExAQEBBVExAQFFFQUFfSklfS19KQUVBSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSUlTQXBwbGljYXRpb246OlJlZnJlc2hBcHBTdGF0ZSh2b2lkKSBfX3B0cjY0DQorP1JlZnJlc2hBcHBTdGF0ZUBDSUlTQXBwbGljYXRpb25AQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpSZWdlbmVyYXRlKHZvaWQpIF9fcHRyNjQNCis/UmVnZW5lcmF0ZUBDTWV0YUludGVyZmFjZUBAUUVBQUpYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENFcnJvcjo6UmVnaXN0ZXJGYWNpbGl0eSh1bnNpZ25lZCBsb25nLGNoYXIgY29uc3QgKiBfX3B0cjY0KQ0KKz9SZWdpc3RlckZhY2lsaXR5QENFcnJvckBAU0FYS1BFQkRAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Vycm9yOjpSZW1vdmVBbGxPdmVycmlkZXModm9pZCkgX19wdHI2NA0KKz9SZW1vdmVBbGxPdmVycmlkZXNAQ0Vycm9yQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29tQXV0aEluZm86OlJlbW92ZUltcGVyc29uYXRpb24odm9pZCkgX19wdHI2NA0KKz9SZW1vdmVJbXBlcnNvbmF0aW9uQENDb21BdXRoSW5mb0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Vycm9yOjpSZW1vdmVPdmVycmlkZShsb25nKSBfX3B0cjY0DQorP1JlbW92ZU92ZXJyaWRlQENFcnJvckBAUUVBQVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGaWxlQ2hvb3Nlcjo6UmVtb3ZlU3R5bGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZW1vdmVTdHlsZUBDRmlsZUNob29zZXJAQFFFQUFYS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6UmVuYW1lS2V5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW5hbWVLZXlAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkcwQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpSZW5hbWVLZXkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW5hbWVLZXlAQ01ldGFLZXlAQFFFQUFKUEVCRzBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Vycm9yOjpSZXNldCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QENFcnJvckBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01ldGFCYWNrOjpSZXNldCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QENNZXRhQmFja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01ldGFFbnVtZXJhdG9yOjpSZXNldCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1Jlc2V0QENNZXRhRW51bWVyYXRvckBAUUVBQVhLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhQmFjazo6UmVzdG9yZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZXN0b3JlQENNZXRhQmFja0BAUUVBQUpQRUJHS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6UmVzdG9yZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1Jlc3RvcmVAQ01ldGFJbnRlcmZhY2VAQElFQUFKUEVCR0tLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgSUlTOjpDU3RyaW5nOjpSZXZlcnNlRmluZCh1bnNpZ25lZCBzaG9ydCljb25zdCAgX19wdHI2NA0KKz9SZXZlcnNlRmluZEBDU3RyaW5nQElJU0BAUUVCQUhHQFoNCis7IHB1YmxpYzogY2xhc3MgSUlTOjpDU3RyaW5nICBfX2NkZWNsIElJUzo6Q1N0cmluZzo6UmlnaHQoaW50KWNvbnN0ICBfX3B0cjY0DQorP1JpZ2h0QENTdHJpbmdASUlTQEBRRUJBP0FWMTJASEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6U2F2ZURhdGEodm9pZCkgX19wdHI2NA0KKz9TYXZlRGF0YUBDTWV0YUludGVyZmFjZUBAUUVBQUpYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgSUlTOjpDU3RyaW5nOjpTZXRBdChpbnQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0QXRAQ1N0cmluZ0BJSVNAQFFFQUFYSEdAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0ZpbGVDaG9vc2VyOjpTZXRDb21wYWN0ZWRQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRDb21wYWN0ZWRQYXRoQENGaWxlQ2hvb3NlckBASUVBQVhQRUJHQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENDb21BdXRoSW5mbzo6U2V0Q29tcHV0ZXJOYW1lVyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Q29tcHV0ZXJOYW1lV0BDQ29tQXV0aEluZm9AQElFQUFYUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6U2V0RGF0YSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgX01FVEFEQVRBX1JFQ09SRCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RGF0YUBDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR1BFQVVfTUVUQURBVEFfUkVDT1JEQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZpbGVDaG9vc2VyOjpTZXREaWFsb2dUaXRsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RGlhbG9nVGl0bGVAQ0ZpbGVDaG9vc2VyQEBRRUFBWFBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjpTZXRJbXBlcnNvbmF0aW9uKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0SW1wZXJzb25hdGlvbkBDQ29tQXV0aEluZm9AQFFFQUFYUEVCRzBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OlNldExhc3RDaGFuZ2VUaW1lKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBfRklMRVRJTUUgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9TZXRMYXN0Q2hhbmdlVGltZUBDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR1BFQVVfRklMRVRJTUVAQEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Vycm9yOjpTZXRMYXN0V2luRXJyb3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9TZXRMYXN0V2luRXJyb3JAQ0Vycm9yQEBRRUJBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmlsZUNob29zZXI6OlNldE9mbkZsYWdzKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0T2ZuRmxhZ3NAQ0ZpbGVDaG9vc2VyQEBRRUFBWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZpbGVDaG9vc2VyOjpTZXRQYXRoKGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0UGF0aEBDRmlsZUNob29zZXJAQFFFQUFYQUVCVkNTdHJpbmdASUlTQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0ZpbGVDaG9vc2VyOjpTZXRQYXRoVG9FZGl0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQYXRoVG9FZGl0QENGaWxlQ2hvb3NlckBASUVBQVhQRUJHQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpTZXRQcm9wZXJ0eVZhbHVlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCxpbnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRQcm9wZXJ0eVZhbHVlQENNZXRhS2V5QEBJRUFBSktLUEVBWFBFQUhQRUJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENGaWxlQ2hvb3Nlcjo6U2V0U3R5bGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRTdHlsZUBDRmlsZUNob29zZXJAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQmxvYjo6U2V0VmFsdWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/U2V0VmFsdWVAQ0Jsb2JAQFFFQUFYS1BFQUVIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nLGNsYXNzIENCbG9iICYgX19wdHI2NCxpbnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWYWx1ZUBDTWV0YUtleUBAUUVBQUpLQUVBVkNCbG9iQEBQRUFIUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6U2V0VmFsdWUodW5zaWduZWQgbG9uZyxjbGFzcyBDU3RyUGFzc3dvcmQgJiBfX3B0cjY0LGludCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFZhbHVlQENNZXRhS2V5QEBRRUFBSktBRUFWQ1N0clBhc3N3b3JkQEBQRUFIUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6U2V0VmFsdWUodW5zaWduZWQgbG9uZyxjbGFzcyBJSVM6OkNTdHJpbmcgJiBfX3B0cjY0LGludCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFZhbHVlQENNZXRhS2V5QEBRRUFBSktBRUFWQ1N0cmluZ0BJSVNAQFBFQUhQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nLGNsYXNzIENTdHJpbmdMaXN0RXggJiBfX3B0cjY0LGludCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFZhbHVlQENNZXRhS2V5QEBRRUFBSktBRUFWQ1N0cmluZ0xpc3RFeEBAUEVBSFBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlNldFZhbHVlKHVuc2lnbmVkIGxvbmcsaW50LGludCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFZhbHVlQENNZXRhS2V5QEBRRUFBSktIUEVBSFBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlNldFZhbHVlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWYWx1ZUBDTWV0YUtleUBAUUVBQUpLS1BFQUhQRUJHQFoNCis7IHB1YmxpYzogY2xhc3MgSUlTOjpDU3RyaW5nICBfX2NkZWNsIElJUzo6Q1N0cmluZzo6U3BhbkV4Y2x1ZGluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/U3BhbkV4Y2x1ZGluZ0BDU3RyaW5nQElJU0BAUUVCQT9BVjEyQFBFQkdAWg0KKzsgcHVibGljOiBjbGFzcyBJSVM6OkNTdHJpbmcgIF9fY2RlY2wgSUlTOjpDU3RyaW5nOjpTcGFuSW5jbHVkaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9TcGFuSW5jbHVkaW5nQENTdHJpbmdASUlTQEBRRUJBP0FWMTJAUEVCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6U3BsaXRNZXRhUGF0aEF0SW5zdGFuY2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIElJUzo6Q1N0cmluZyAmIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCkNCis/U3BsaXRNZXRhUGF0aEF0SW5zdGFuY2VAQ01ldGFiYXNlUGF0aEBAU0FYUEVCR0FFQVZDU3RyaW5nQElJU0BAMUBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDQ29tQXV0aEluZm86OlNwbGl0VXNlck5hbWVBbmREb21haW4oY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCxjbGFzcyBJSVM6OkNTdHJpbmcgJiBfX3B0cjY0KQ0KKz9TcGxpdFVzZXJOYW1lQW5kRG9tYWluQENDb21BdXRoSW5mb0BAU0FIQUVBVkNTdHJpbmdASUlTQEAwQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNTdmNDb250cm9sOjpTdGFydCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1N0YXJ0QENJSVNTdmNDb250cm9sQEBRRUFBSktAWg0KKzsgcHVibGljOiBzdGF0aWMgX19pbnQ2NCBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6U3RhcnRXaW5kb3dQcm9jKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBfX2ludDY0LF9faW50NjQpDQorP1N0YXJ0V2luZG93UHJvY0A/JENXaW5kb3dJbXBsQmFzZVRAVkNXaW5kb3dAQVRMQEBWPyRDV2luVHJhaXRzQCQwRkdBQUFBQUFAJDBBQEAyQEBBVExAQFNBX0pQRUFVSFdORF9fQEBJX0tfSkBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSUlTU3ZjQ29udHJvbDo6U3RhdHVzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U3RhdHVzQENJSVNTdmNDb250cm9sQEBRRUFBSktQRUFFUEVBSzFAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6OlN0b3AodW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/U3RvcEBDSUlTU3ZjQ29udHJvbEBAUUVBQUpLSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29tQXV0aEluZm86OlN0b3JlUGFzc3dvcmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1N0b3JlUGFzc3dvcmRAQ0NvbUF1dGhJbmZvQEBRRUFBWFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRmlsZUNob29zZXI6OlN0eWxlQml0U2V0KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U3R5bGVCaXRTZXRAQ0ZpbGVDaG9vc2VyQEBRRUFBSEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsQmFzZVQ8Y2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID46OlN1YmNsYXNzV2luZG93KHN0cnVjdCBIV05EX18gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1N1YmNsYXNzV2luZG93QD8kQ1dpbmRvd0ltcGxCYXNlVEBWQ1dpbmRvd0BBVExAQFY/JENXaW5UcmFpdHNAJDBGR0FBQUFBQUAkMEFAQDJAQEFUTEBAUUVBQUhQRUFVSFdORF9fQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRXJyb3I6OlN1Y2NlZWRlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1N1Y2NlZWRlZEBDRXJyb3JAQFFFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENFcnJvcjo6U3VjY2VlZGVkKGxvbmcpDQorP1N1Y2NlZWRlZEBDRXJyb3JAQFNBSEpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6U3VjY2VlZGVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U3VjY2VlZGVkQENJSVNBcHBsaWNhdGlvbkBAVUVCQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENJSVNJbnRlcmZhY2U6OlN1Y2NlZWRlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1N1Y2NlZWRlZEBDSUlTSW50ZXJmYWNlQEBVRUJBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ01ldGFCYWNrOjpTdWNjZWVkZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9TdWNjZWVkZWRAQ01ldGFCYWNrQEBVRUJBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ01ldGFLZXk6OlN1Y2NlZWRlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1N1Y2NlZWRlZEBDTWV0YUtleUBAVUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpTdXBwb3J0c1Bvb2xlZFByb2Modm9pZCljb25zdCAgX19wdHI2NA0KKz9TdXBwb3J0c1Bvb2xlZFByb2NAQ1dhbUludGVyZmFjZUBAUUVCQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0Vycm9yOjpUZXh0RnJvbUhSRVNVTFQoY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9UZXh0RnJvbUhSRVNVTFRAQ0Vycm9yQEBRRUJBSkFFQVZDU3RyaW5nQElJU0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENFcnJvcjo6VGV4dEZyb21IUkVTVUxUKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP1RleHRGcm9tSFJFU1VMVEBDRXJyb3JAQFFFQkFKUEVBR0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDRXJyb3I6OlRleHRGcm9tSFJFU1VMVEV4cGFuZChjbGFzcyBJSVM6OkNTdHJpbmcgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1RleHRGcm9tSFJFU1VMVEV4cGFuZEBDRXJyb3JAQFFFQkFQRUJHQUVBVkNTdHJpbmdASUlTQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDRXJyb3I6OlRleHRGcm9tSFJFU1VMVEV4cGFuZCh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxsb25nICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9UZXh0RnJvbUhSRVNVTFRFeHBhbmRAQ0Vycm9yQEBRRUJBUEVCR1BFQUdLUEVBSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBJSVM6OkNTdHJpbmc6OlRyaW1MZWZ0KHZvaWQpIF9fcHRyNjQNCis/VHJpbUxlZnRAQ1N0cmluZ0BJSVNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIElJUzo6Q1N0cmluZzo6VHJpbVJpZ2h0KHZvaWQpIF9fcHRyNjQNCis/VHJpbVJpZ2h0QENTdHJpbmdASUlTQEBRRUFBWFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpUcnVuY2F0ZVBhdGgoaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBJSVM6OkNTdHJpbmcgJiBfX3B0cjY0LGNsYXNzIElJUzo6Q1N0cmluZyAqIF9fcHRyNjQpDQorP1RydW5jYXRlUGF0aEBDTWV0YWJhc2VQYXRoQEBTQVBFQkdIUEVCR0FFQVZDU3RyaW5nQElJU0BAUEVBVjIzQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSUlTQXBwbGljYXRpb246OlVubG9hZChpbnQpIF9fcHRyNjQNCis/VW5sb2FkQENJSVNBcHBsaWNhdGlvbkBAUUVBQUpIQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDRXJyb3I6OlVucmVnaXN0ZXJGYWNpbGl0eSh1bnNpZ25lZCBsb25nKQ0KKz9VbnJlZ2lzdGVyRmFjaWxpdHlAQ0Vycm9yQEBTQVhLQFoNCis7IHB1YmxpYzogc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQgX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsQmFzZVQ8Y2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID46OlVuc3ViY2xhc3NXaW5kb3coaW50KSBfX3B0cjY0DQorP1Vuc3ViY2xhc3NXaW5kb3dAPyRDV2luZG93SW1wbEJhc2VUQFZDV2luZG93QEFUTEBAVj8kQ1dpblRyYWl0c0AkMEZHQUFBQUFBQCQwQUBAMkBAQVRMQEBRRUFBUEVBVUhXTkRfX0BASEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENDb21BdXRoSW5mbzo6VXNlc0ltcGVyc29uYXRpb24odm9pZCljb25zdCAgX19wdHI2NA0KKz9Vc2VzSW1wZXJzb25hdGlvbkBDQ29tQXV0aEluZm9AQFFFQkFIWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDQ29tQXV0aEluZm86OlZlcmlmeVVzZXJQYXNzd29yZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9WZXJpZnlVc2VyUGFzc3dvcmRAQ0NvbUF1dGhJbmZvQEBTQUtQRUJHMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRXJyb3I6OldpbjMyRXJyb3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9XaW4zMkVycm9yQENFcnJvckBAUUVCQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENFcnJvcjo6V2luMzJFcnJvcihsb25nKQ0KKz9XaW4zMkVycm9yQENFcnJvckBAU0FLSkBaDQorOyBwdWJsaWM6IHN0YXRpYyBfX2ludDY0IF9fY2RlY2wgQVRMOjpDV2luZG93SW1wbEJhc2VUPGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+OjpXaW5kb3dQcm9jKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBfX2ludDY0LF9faW50NjQpDQorP1dpbmRvd1Byb2NAPyRDV2luZG93SW1wbEJhc2VUQFZDV2luZG93QEFUTEBAVj8kQ1dpblRyYWl0c0AkMEZHQUFBQUFBQCQwQUBAMkBAQVRMQEBTQV9KUEVBVUhXTkRfX0BASV9LX0pAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpXcml0ZUZyaWVuZGx5TmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/V3JpdGVGcmllbmRseU5hbWVAQ0lJU0FwcGxpY2F0aW9uQEBRRUFBSlBFQkdAWg0KKzsgcHJvdGVjdGVkOiBzdHJ1Y3Qgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Ol9Ob2RlICogX19wdHI2NCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpfQnV5bm9kZShzdHJ1Y3Qgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Ol9Ob2RlICogX19wdHI2NCxzdHJ1Y3Qgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Ol9Ob2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9fQnV5bm9kZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBJRUFBUEVBVV9Ob2RlQDEyQFBFQVUzMTJAMEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6X0ZyZWVub2RlKHN0cnVjdCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6X05vZGUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP19GcmVlbm9kZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBJRUFBWFBFQVVfTm9kZUAxMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Ol9TcGxpY2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yLGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+ICYgX19wdHI2NCxjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yKSBfX3B0cjY0DQorP19TcGxpY2VAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBASUVBQVhWaXRlcmF0b3JAMTJAQUVBVjEyQDAwQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpfWHJhbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP19YcmFuQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQElFQkFYWFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAgQ01ldGFiYXNlUGF0aDo6X2FueVNlcA0KKz9fYW55U2VwQENNZXRhYmFzZVBhdGhAQDFWQ1N0cmluZ0BJSVNAQEIgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgIENNZXRhYmFzZVBhdGg6Ol9jaFNlcA0KKz9fY2hTZXBAQ01ldGFiYXNlUGF0aEBAMUdCDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgY29uc3QgIF9fcHRyNjQgQ01ldGFiYXNlUGF0aDo6X2Nzek1hY2hpbmUNCis/X2Nzek1hY2hpbmVAQ01ldGFiYXNlUGF0aEBAMVFFQkdFQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IGNvbnN0ICBfX3B0cjY0IENNZXRhYmFzZVBhdGg6Ol9jc3pSb290DQorP19jc3pSb290QENNZXRhYmFzZVBhdGhAQDFRRUJHRUINCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBjb25zdCAgX19wdHI2NCBDTWV0YWJhc2VQYXRoOjpfY3N6U2VwDQorP19jc3pTZXBAQ01ldGFiYXNlUGF0aEBAMVFFQkdFQg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmFzc2lnbihjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6Y29uc3RfaXRlcmF0b3IsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmNvbnN0X2l0ZXJhdG9yKSBfX3B0cjY0DQorP2Fzc2lnbkA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWFZjb25zdF9pdGVyYXRvckAxMkAwQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojphc3NpZ24odW5zaWduZWQgX19pbnQ2NCxjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP2Fzc2lnbkA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWF9LQUVCVkNTdHJpbmdASUlTQEBAWg0KKzsgcHVibGljOiBjbGFzcyBJSVM6OkNTdHJpbmcgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmJhY2sodm9pZCkgX19wdHI2NA0KKz9iYWNrQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFBRUFWQ1N0cmluZ0BJSVNAQFhaDQorOyBwdWJsaWM6IGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6YmFjayh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2JhY2tAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVCQUFFQlZDU3RyaW5nQElJU0BAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yICBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpiZWdpbih2b2lkKSBfX3B0cjY0DQorP2JlZ2luQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUE/QVZpdGVyYXRvckAxMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6Y29uc3RfaXRlcmF0b3IgIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmJlZ2luKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/YmVnaW5APyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVCQT9BVmNvbnN0X2l0ZXJhdG9yQDEyQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6Y2xlYXIodm9pZCkgX19wdHI2NA0KKz9jbGVhckA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6ZW1wdHkodm9pZCljb25zdCAgX19wdHI2NA0KKz9lbXB0eUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUJBX05YWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IgIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmVuZCh2b2lkKSBfX3B0cjY0DQorP2VuZEA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBP0FWaXRlcmF0b3JAMTJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmNvbnN0X2l0ZXJhdG9yICBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjplbmQodm9pZCljb25zdCAgX19wdHI2NA0KKz9lbmRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVCQT9BVmNvbnN0X2l0ZXJhdG9yQDEyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvciAgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6ZXJhc2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yLGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcikgX19wdHI2NA0KKz9lcmFzZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBP0FWaXRlcmF0b3JAMTJAVjMxMkAwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yICBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjplcmFzZShjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IpIF9fcHRyNjQNCis/ZXJhc2VAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQT9BVml0ZXJhdG9yQDEyQFYzMTJAQFoNCis7IHB1YmxpYzogY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpmcm9udCh2b2lkKSBfX3B0cjY0DQorP2Zyb250QD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFBRUFWQ1N0cmluZ0BJSVNAQFhaDQorOyBwdWJsaWM6IGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6ZnJvbnQodm9pZCljb25zdCAgX19wdHI2NA0KKz9mcm9udEA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUJBQUVCVkNTdHJpbmdASUlTQEBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ICBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpnZXRfYWxsb2NhdG9yKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Z2V0X2FsbG9jYXRvckA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IgIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Omluc2VydChjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IsY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9pbnNlcnRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQT9BVml0ZXJhdG9yQDEyQFYzMTJAQUVCVkNTdHJpbmdASUlTQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Omluc2VydChjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IsY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICogX19wdHI2NCxjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP2luc2VydEA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWFZpdGVyYXRvckAxMkBQRUJWQ1N0cmluZ0BJSVNAQDFAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Omluc2VydChjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmNvbnN0X2l0ZXJhdG9yLGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpjb25zdF9pdGVyYXRvcikgX19wdHI2NA0KKz9pbnNlcnRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhWaXRlcmF0b3JAMTJAVmNvbnN0X2l0ZXJhdG9yQDEyQDFAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Omluc2VydChjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IsdW5zaWduZWQgX19pbnQ2NCxjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP2luc2VydEA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWFZpdGVyYXRvckAxMkBfS0FFQlZDU3RyaW5nQElJU0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjptYXhfc2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP21heF9zaXplQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQkFfS1haDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6bWVyZ2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4gJiBfX3B0cjY0KSBfX3B0cjY0DQorP21lcmdlQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYQUVBVjEyQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6bWVyZ2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4gJiBfX3B0cjY0LHN0cnVjdCBzdGQ6OmdyZWF0ZXI8Y2xhc3MgSUlTOjpDU3RyaW5nPikgX19wdHI2NA0KKz9tZXJnZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWEFFQVYxMkBVPyRncmVhdGVyQFZDU3RyaW5nQElJU0BAQDJAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpwb3BfYmFjayh2b2lkKSBfX3B0cjY0DQorP3BvcF9iYWNrQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpwb3BfZnJvbnQodm9pZCkgX19wdHI2NA0KKz9wb3BfZnJvbnRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnB1c2hfYmFjayhjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP3B1c2hfYmFja0A/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWEFFQlZDU3RyaW5nQElJU0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpwdXNoX2Zyb250KGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/cHVzaF9mcm9udEA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWEFFQlZDU3RyaW5nQElJU0BAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpyZXZlcnNlX2JpZGlyZWN0aW9uYWxfaXRlcmF0b3I8Y2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yLGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBJSVM6OkNTdHJpbmcgJiBfX3B0cjY0LGNsYXNzIElJUzo6Q1N0cmluZyAqIF9fcHRyNjQsX19pbnQ2ND4gIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnJiZWdpbih2b2lkKSBfX3B0cjY0DQorP3JiZWdpbkA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBP0FWPyRyZXZlcnNlX2JpZGlyZWN0aW9uYWxfaXRlcmF0b3JAVml0ZXJhdG9yQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFZDU3RyaW5nQElJU0BAQUVBVjQ1QFBFQVY0NUBfSkAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6cmV2ZXJzZV9iaWRpcmVjdGlvbmFsX2l0ZXJhdG9yPGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpjb25zdF9pdGVyYXRvcixjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCxjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgKiBfX3B0cjY0LF9faW50NjQ+ICBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpyYmVnaW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9yYmVnaW5APyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVCQT9BVj8kcmV2ZXJzZV9iaWRpcmVjdGlvbmFsX2l0ZXJhdG9yQFZjb25zdF9pdGVyYXRvckA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBWQ1N0cmluZ0BJSVNAQEFFQlY0NUBQRUJWNDVAX0pAMkBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnJlbW92ZShjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP3JlbW92ZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWEFFQlZDU3RyaW5nQElJU0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpyZW1vdmVfaWYoY2xhc3Mgc3RkOjpiaW5kZXIybmQ8c3RydWN0IHN0ZDo6bm90X2VxdWFsX3RvPGNsYXNzIElJUzo6Q1N0cmluZz4gPikgX19wdHI2NA0KKz9yZW1vdmVfaWZAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhWPyRiaW5kZXIybmRAVT8kbm90X2VxdWFsX3RvQFZDU3RyaW5nQElJU0BAQHN0ZEBAQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpyZXZlcnNlX2JpZGlyZWN0aW9uYWxfaXRlcmF0b3I8Y2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yLGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBJSVM6OkNTdHJpbmcgJiBfX3B0cjY0LGNsYXNzIElJUzo6Q1N0cmluZyAqIF9fcHRyNjQsX19pbnQ2ND4gIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnJlbmQodm9pZCkgX19wdHI2NA0KKz9yZW5kQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUE/QVY/JHJldmVyc2VfYmlkaXJlY3Rpb25hbF9pdGVyYXRvckBWaXRlcmF0b3JAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAVkNTdHJpbmdASUlTQEBBRUFWNDVAUEVBVjQ1QF9KQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpyZXZlcnNlX2JpZGlyZWN0aW9uYWxfaXRlcmF0b3I8Y2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmNvbnN0X2l0ZXJhdG9yLGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgJiBfX3B0cjY0LGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAqIF9fcHRyNjQsX19pbnQ2ND4gIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnJlbmQodm9pZCljb25zdCAgX19wdHI2NA0KKz9yZW5kQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JHJldmVyc2VfYmlkaXJlY3Rpb25hbF9pdGVyYXRvckBWY29uc3RfaXRlcmF0b3JAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAVkNTdHJpbmdASUlTQEBBRUJWNDVAUEVCVjQ1QF9KQDJAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpyZXNpemUodW5zaWduZWQgX19pbnQ2NCxjbGFzcyBJSVM6OkNTdHJpbmcpIF9fcHRyNjQNCis/cmVzaXplQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYX0tWQ1N0cmluZ0BJSVNAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6cmV2ZXJzZSh2b2lkKSBfX3B0cjY0DQorP3JldmVyc2VAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgbG9uZyAgQ0Vycm9yOjpzX2Nkd0ZhY2lsaXRpZXMNCis/c19jZHdGYWNpbGl0aWVzQENFcnJvckBAMUtBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgIENFcnJvcjo6c19jZHdNYXhMTUVycg0KKz9zX2Nkd01heExNRXJyQENFcnJvckBAMUpBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgIENFcnJvcjo6c19jZHdNYXhXU0Vycg0KKz9zX2Nkd01heFdTRXJyQENFcnJvckBAMUpBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgIENFcnJvcjo6c19jZHdNaW5MTUVycg0KKz9zX2Nkd01pbkxNRXJyQENFcnJvckBAMUpBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgIENFcnJvcjo6c19jZHdNaW5XU0Vycg0KKz9zX2Nkd01pbldTRXJyQENFcnJvckBAMUpBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICBDRXJyb3I6OnNfY2hFc2NOdW1iZXINCis/c19jaEVzY051bWJlckBDRXJyb3JAQDFHQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgIENFcnJvcjo6c19jaEVzY1RleHQNCis/c19jaEVzY1RleHRAQ0Vycm9yQEAxR0INCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICBDRXJyb3I6OnNfY2hFc2NhcGUNCis/c19jaEVzY2FwZUBDRXJyb3JAQDFHQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0ICogIENFcnJvcjo6c19jc3pGYWNpbGl0eQ0KKz9zX2NzekZhY2lsaXR5QENFcnJvckBAMVBBUEVCR0EgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IGNvbnN0ICBfX3B0cjY0IENFcnJvcjo6c19jc3pMTURMTA0KKz9zX2NzekxNRExMQENFcnJvckBAMVBFQkdFQiBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgY29uc3QgIF9fcHRyNjQgQ0Vycm9yOjpzX2NzeldTRExMDQorP3NfY3N6V1NETExAQ0Vycm9yQEAxUEVCR0VCIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGludCAgQ0Vycm9yOjpzX2ZBbGxvY2F0ZWQNCis/c19mQWxsb2NhdGVkQENFcnJvckBAMUhBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIENGYWNpbGl0eU1hcCAqIF9fcHRyNjQgIF9fcHRyNjQgQ0Vycm9yOjpzX3BtYXBGYWNpbGl0aWVzDQorP3NfcG1hcEZhY2lsaXRpZXNAQ0Vycm9yQEAxUEVBVkNGYWNpbGl0eU1hcEBARUEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2xhc3MgSUlTOjpDU3RyaW5nICogX19wdHI2NCAgX19wdHI2NCBDRXJyb3I6OnNfcHN0ckRlZkVycm9yDQorP3NfcHN0ckRlZkVycm9yQENFcnJvckBAMVBFQVZDU3RyaW5nQElJU0BARUEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2xhc3MgSUlTOjpDU3RyaW5nICogX19wdHI2NCAgX19wdHI2NCBDRXJyb3I6OnNfcHN0ckRlZlN1Y2NzDQorP3NfcHN0ckRlZlN1Y2NzQENFcnJvckBAMVBFQVZDU3RyaW5nQElJU0BARUEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IENNZXRhS2V5Ojp0YWdNREZJRUxEREVGIGNvbnN0ICogY29uc3QgIENNZXRhS2V5OjpzX3JnTWV0YVRhYmxlDQorP3NfcmdNZXRhVGFibGVAQ01ldGFLZXlAQDFRQlV0YWdNREZJRUxEREVGQDFAQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IGNvbnN0ICBfX3B0cjY0IENNZXRhQmFjazo6c19zek1hc3RlckFwcFJvb3QNCis/c19zek1hc3RlckFwcFJvb3RAQ01ldGFCYWNrQEAxUUVCR0VCDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6c2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3NpemVAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVCQV9LWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpzb3J0KHN0cnVjdCBzdGQ6OmdyZWF0ZXI8Y2xhc3MgSUlTOjpDU3RyaW5nPikgX19wdHI2NA0KKz9zb3J0QD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYVT8kZ3JlYXRlckBWQ1N0cmluZ0BJSVNAQEAyQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6c29ydCh2b2lkKSBfX3B0cjY0DQorP3NvcnRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnNwbGljZShjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4gJiBfX3B0cjY0LGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IpIF9fcHRyNjQNCis/c3BsaWNlQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYVml0ZXJhdG9yQDEyQEFFQVYxMkAwMEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6c3BsaWNlKGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yKSBfX3B0cjY0DQorP3NwbGljZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWFZpdGVyYXRvckAxMkBBRUFWMTJAMEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6c3BsaWNlKGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/c3BsaWNlQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYVml0ZXJhdG9yQDEyQEFFQVYxMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnN3YXAoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4gJiBfX3B0cjY0KSBfX3B0cjY0DQorP3N3YXBAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhBRUFWMTJAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojp1bmlxdWUoc3RydWN0IHN0ZDo6bm90X2VxdWFsX3RvPGNsYXNzIElJUzo6Q1N0cmluZz4pIF9fcHRyNjQNCis/dW5pcXVlQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYVT8kbm90X2VxdWFsX3RvQFZDU3RyaW5nQElJU0BAQDJAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojp1bmlxdWUodm9pZCkgX19wdHI2NA0KKz91bmlxdWVAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgc3RydWN0IF9BVExfV05EQ0xBU1NJTkZPVyAgYHB1YmxpYzogc3RhdGljIHN0cnVjdCBfQVRMX1dORENMQVNTSU5GT1cgJiBfX3B0cjY0IF9fY2RlY2wgQVRMOjpDV2luZG93SW1wbDxjbGFzcyBDRmlsZUNob29zZXIsY2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID46OkdldFduZENsYXNzSW5mbyh2b2lkKSc6OmAyJzo6d2MNCis/d2NAPzE/P0dldFduZENsYXNzSW5mb0A/JENXaW5kb3dJbXBsQFZDRmlsZUNob29zZXJAQFZDV2luZG93QEFUTEBAVj8kQ1dpblRyYWl0c0AkMEZHQUFBQUFBQCQwQUBAM0BAQVRMQEBTQUFFQVVfQVRMX1dORENMQVNTSU5GT1dAQFhaQDRVNEBBIERBVEENCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi91bGliLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3VsaWIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI2MDZjYjkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi91bGliLmRlZgpAQCAtMCwwICsxLDc5NiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB1bGliLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSB1bGliLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBBUkdVTUVOVF9MRVhFTUlaRVI6OkFSR1VNRU5UX0xFWEVNSVpFUih2b2lkKSBfX3B0cjY0DQorPz8wQVJHVU1FTlRfTEVYRU1JWkVSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQVJSQVk6OkFSUkFZKHZvaWQpIF9fcHRyNjQNCis/PzBBUlJBWUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEJEU1RSSU5HOjpCRFNUUklORyhjbGFzcyBCRFNUUklORyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBCRFNUUklOR0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIEJEU1RSSU5HOjpCRFNUUklORyh2b2lkKSBfX3B0cjY0DQorPz8wQkRTVFJJTkdAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCSVRWRUNUT1I6OkJJVFZFQ1RPUih2b2lkKSBfX3B0cjY0DQorPz8wQklUVkVDVE9SQEBRRUFBQFhaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQlNUUklORzo6QlNUUklORyh2b2lkKSBfX3B0cjY0DQorPz8wQlNUUklOR0BASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEJTVFJJTkc6OkJTVFJJTkcoY2xhc3MgQlNUUklORyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBCU1RSSU5HQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQllURV9TVFJFQU06OkJZVEVfU1RSRUFNKHZvaWQpIF9fcHRyNjQNCis/PzBCWVRFX1NUUkVBTUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENIS0RTS19NRVNTQUdFOjpDSEtEU0tfTUVTU0FHRSh2b2lkKSBfX3B0cjY0DQorPz8wQ0hLRFNLX01FU1NBR0VAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTEFTU19ERVNDUklQVE9SOjpDTEFTU19ERVNDUklQVE9SKHZvaWQpIF9fcHRyNjQNCis/PzBDTEFTU19ERVNDUklQVE9SQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ09NTV9ERVZJQ0U6OkNPTU1fREVWSUNFKHZvaWQpIF9fcHRyNjQNCis/PzBDT01NX0RFVklDRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENPTlRfTUVNOjpDT05UX01FTSh2b2lkKSBfX3B0cjY0DQorPz8wQ09OVF9NRU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBEU1RSSU5HOjpEU1RSSU5HKGNsYXNzIERTVFJJTkcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wRFNUUklOR0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIERTVFJJTkc6OkRTVFJJTkcodm9pZCkgX19wdHI2NA0KKz8/MERTVFJJTkdAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBGTEFHX0FSR1VNRU5UOjpGTEFHX0FSR1VNRU5UKHZvaWQpIF9fcHRyNjQNCis/PzBGTEFHX0FSR1VNRU5UQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgRlNOX0ZJTFRFUjo6RlNOX0ZJTFRFUih2b2lkKSBfX3B0cjY0DQorPz8wRlNOX0ZJTFRFUkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEZTVFJJTkc6OkZTVFJJTkcoY2xhc3MgRlNUUklORyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBGU1RSSU5HQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgRlNUUklORzo6RlNUUklORyh2b2lkKSBfX3B0cjY0DQorPz8wRlNUUklOR0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEhNRU06OkhNRU0odm9pZCkgX19wdHI2NA0KKz8/MEhNRU1AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBLRVlCT0FSRDo6S0VZQk9BUkQodm9pZCkgX19wdHI2NA0KKz8/MEtFWUJPQVJEQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTElTVDo6TElTVCh2b2lkKSBfX3B0cjY0DQorPz8wTElTVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIExPTkdfQVJHVU1FTlQ6OkxPTkdfQVJHVU1FTlQodm9pZCkgX19wdHI2NA0KKz8/MExPTkdfQVJHVU1FTlRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBNRU1fQUxMT0NBVE9SOjpNRU1fQUxMT0NBVE9SKHZvaWQpIF9fcHRyNjQNCis/PzBNRU1fQUxMT0NBVE9SQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTUVNX0JMT0NLX01HUjo6TUVNX0JMT0NLX01HUih2b2lkKSBfX3B0cjY0DQorPz8wTUVNX0JMT0NLX01HUkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE1FU1NBR0U6Ok1FU1NBR0Uodm9pZCkgX19wdHI2NA0KKz8/ME1FU1NBR0VAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBNVUxUSVBMRV9QQVRIX0FSR1VNRU5UOjpNVUxUSVBMRV9QQVRIX0FSR1VNRU5UKHZvaWQpIF9fcHRyNjQNCis/PzBNVUxUSVBMRV9QQVRIX0FSR1VNRU5UQEBRRUFBQFhaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgT0JKRUNUOjpPQkpFQ1Qodm9pZCkgX19wdHI2NA0KKz8/ME9CSkVDVEBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE9CSkVDVDo6T0JKRUNUKGNsYXNzIE9CSkVDVCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBPQkpFQ1RAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBQQVRIOjpQQVRIKHZvaWQpIF9fcHRyNjQNCis/PzBQQVRIQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUEFUSF9BUkdVTUVOVDo6UEFUSF9BUkdVTUVOVCh2b2lkKSBfX3B0cjY0DQorPz8wUEFUSF9BUkdVTUVOVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFBSSU5UX1NUUkVBTTo6UFJJTlRfU1RSRUFNKHZvaWQpIF9fcHRyNjQNCis/PzBQUklOVF9TVFJFQU1AQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBQUk9HUkFNOjpQUk9HUkFNKHZvaWQpIF9fcHRyNjQNCis/PzBQUk9HUkFNQEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUkVTVF9PRl9MSU5FX0FSR1VNRU5UOjpSRVNUX09GX0xJTkVfQVJHVU1FTlQodm9pZCkgX19wdHI2NA0KKz8/MFJFU1RfT0ZfTElORV9BUkdVTUVOVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNDUkVFTjo6U0NSRUVOKHZvaWQpIF9fcHRyNjQNCis/PzBTQ1JFRU5AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTT1JURURfTElTVDo6U09SVEVEX0xJU1Qodm9pZCkgX19wdHI2NA0KKz8/MFNPUlRFRF9MSVNUQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgU1RSRUFNX01FU1NBR0U6OlNUUkVBTV9NRVNTQUdFKHZvaWQpIF9fcHRyNjQNCis/PzBTVFJFQU1fTUVTU0FHRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFNUUklOR19BUkdVTUVOVDo6U1RSSU5HX0FSR1VNRU5UKHZvaWQpIF9fcHRyNjQNCis/PzBTVFJJTkdfQVJHVU1FTlRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBTVFJJTkdfQVJSQVk6OlNUUklOR19BUlJBWSh2b2lkKSBfX3B0cjY0DQorPz8wU1RSSU5HX0FSUkFZQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgVElNRUlORk86OlRJTUVJTkZPKHZvaWQpIF9fcHRyNjQNCis/PzBUSU1FSU5GT0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFRJTUVJTkZPX0FSR1VNRU5UOjpUSU1FSU5GT19BUkdVTUVOVCh2b2lkKSBfX3B0cjY0DQorPz8wVElNRUlORk9fQVJHVU1FTlRAQFFFQUFAWFoNCis7IHByb3RlY3RlZDogX19jZGVjbCBXU1RSSU5HOjpXU1RSSU5HKHZvaWQpIF9fcHRyNjQNCis/PzBXU1RSSU5HQEBJRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgV1NUUklORzo6V1NUUklORyhjbGFzcyBXU1RSSU5HIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFdTVFJJTkdAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIEFSR1VNRU5UX0xFWEVNSVpFUjo6fkFSR1VNRU5UX0xFWEVNSVpFUih2b2lkKSBfX3B0cjY0DQorPz8xQVJHVU1FTlRfTEVYRU1JWkVSQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBBUlJBWTo6fkFSUkFZKHZvaWQpIF9fcHRyNjQNCis/PzFBUlJBWUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQkRTVFJJTkc6On5CRFNUUklORyh2b2lkKSBfX3B0cjY0DQorPz8xQkRTVFJJTkdAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIEJJVFZFQ1RPUjo6fkJJVFZFQ1RPUih2b2lkKSBfX3B0cjY0DQorPz8xQklUVkVDVE9SQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBCU1RSSU5HOjp+QlNUUklORyh2b2lkKSBfX3B0cjY0DQorPz8xQlNUUklOR0BAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQllURV9TVFJFQU06On5CWVRFX1NUUkVBTSh2b2lkKSBfX3B0cjY0DQorPz8xQllURV9TVFJFQU1AQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENIS0RTS19NRVNTQUdFOjp+Q0hLRFNLX01FU1NBR0Uodm9pZCkgX19wdHI2NA0KKz8/MUNIS0RTS19NRVNTQUdFQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDT01NX0RFVklDRTo6fkNPTU1fREVWSUNFKHZvaWQpIF9fcHRyNjQNCis/PzFDT01NX0RFVklDRUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgRFNUUklORzo6fkRTVFJJTkcodm9pZCkgX19wdHI2NA0KKz8/MURTVFJJTkdAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIEZTTl9GSUxURVI6On5GU05fRklMVEVSKHZvaWQpIF9fcHRyNjQNCis/PzFGU05fRklMVEVSQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBGU1RSSU5HOjp+RlNUUklORyh2b2lkKSBfX3B0cjY0DQorPz8xRlNUUklOR0BAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgSE1FTTo6fkhNRU0odm9pZCkgX19wdHI2NA0KKz8/MUhNRU1AQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIExJU1Q6On5MSVNUKHZvaWQpIF9fcHRyNjQNCis/PzFMSVNUQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBNRU1fQUxMT0NBVE9SOjp+TUVNX0FMTE9DQVRPUih2b2lkKSBfX3B0cjY0DQorPz8xTUVNX0FMTE9DQVRPUkBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgTUVNX0JMT0NLX01HUjo6fk1FTV9CTE9DS19NR1Iodm9pZCkgX19wdHI2NA0KKz8/MU1FTV9CTE9DS19NR1JAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE1FU1NBR0U6On5NRVNTQUdFKHZvaWQpIF9fcHRyNjQNCis/PzFNRVNTQUdFQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBNVUxUSVBMRV9QQVRIX0FSR1VNRU5UOjp+TVVMVElQTEVfUEFUSF9BUkdVTUVOVCh2b2lkKSBfX3B0cjY0DQorPz8xTVVMVElQTEVfUEFUSF9BUkdVTUVOVEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgT0JKRUNUOjp+T0JKRUNUKHZvaWQpIF9fcHRyNjQNCis/PzFPQkpFQ1RAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFBBVEg6On5QQVRIKHZvaWQpIF9fcHRyNjQNCis/PzFQQVRIQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBQQVRIX0FSR1VNRU5UOjp+UEFUSF9BUkdVTUVOVCh2b2lkKSBfX3B0cjY0DQorPz8xUEFUSF9BUkdVTUVOVEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUFJJTlRfU1RSRUFNOjp+UFJJTlRfU1RSRUFNKHZvaWQpIF9fcHRyNjQNCis/PzFQUklOVF9TVFJFQU1AQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFBST0dSQU06On5QUk9HUkFNKHZvaWQpIF9fcHRyNjQNCis/PzFQUk9HUkFNQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTQ1JFRU46On5TQ1JFRU4odm9pZCkgX19wdHI2NA0KKz8/MVNDUkVFTkBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgU09SVEVEX0xJU1Q6On5TT1JURURfTElTVCh2b2lkKSBfX3B0cjY0DQorPz8xU09SVEVEX0xJU1RAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFNUUkVBTV9NRVNTQUdFOjp+U1RSRUFNX01FU1NBR0Uodm9pZCkgX19wdHI2NA0KKz8/MVNUUkVBTV9NRVNTQUdFQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBTVFJJTkdfQVJHVU1FTlQ6On5TVFJJTkdfQVJHVU1FTlQodm9pZCkgX19wdHI2NA0KKz8/MVNUUklOR19BUkdVTUVOVEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgVElNRUlORk9fQVJHVU1FTlQ6On5USU1FSU5GT19BUkdVTUVOVCh2b2lkKSBfX3B0cjY0DQorPz8xVElNRUlORk9fQVJHVU1FTlRAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFdTVFJJTkc6On5XU1RSSU5HKHZvaWQpIF9fcHRyNjQNCis/PzFXU1RSSU5HQEBVRUFBQFhaDQorOyBwdWJsaWM6IGNsYXNzIEJEU1RSSU5HICYgX19wdHI2NCBfX2NkZWNsIEJEU1RSSU5HOjpvcGVyYXRvcj0oY2xhc3MgQkRTVFJJTkcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80QkRTVFJJTkdAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBCU1RSSU5HICYgX19wdHI2NCBfX2NkZWNsIEJTVFJJTkc6Om9wZXJhdG9yPShjbGFzcyBCU1RSSU5HIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NEJTVFJJTkdAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBEU1RSSU5HICYgX19wdHI2NCBfX2NkZWNsIERTVFJJTkc6Om9wZXJhdG9yPShjbGFzcyBEU1RSSU5HIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NERTVFJJTkdAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBGU1RSSU5HICYgX19wdHI2NCBfX2NkZWNsIEZTVFJJTkc6Om9wZXJhdG9yPShjbGFzcyBGU1RSSU5HIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NEZTVFJJTkdAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBPQkpFQ1QgJiBfX3B0cjY0IF9fY2RlY2wgT0JKRUNUOjpvcGVyYXRvcj0oY2xhc3MgT0JKRUNUIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE9CSkVDVEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdTVFJJTkcgJiBfX3B0cjY0IF9fY2RlY2wgV1NUUklORzo6b3BlcmF0b3I9KGNsYXNzIFdTVFJJTkcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80V1NUUklOR0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBXU1RSSU5HOjpvcGVyYXRvcj09KGNsYXNzIFdTVFJJTkcgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz84V1NUUklOR0BAUUVCQUVBRUJWMEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgV1NUUklORzo6b3BlcmF0b3IhPShjbGFzcyBXU1RSSU5HIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OVdTVFJJTkdAQFFFQkFFQUVCVjBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFRJTUVJTkZPOjpvcGVyYXRvcjwoY2xhc3MgVElNRUlORk8pY29uc3QgIF9fcHRyNjQNCis/P01USU1FSU5GT0BAUUVCQUVWMEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgV1NUUklORzo6b3BlcmF0b3I8KGNsYXNzIFdTVFJJTkcgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz9NV1NUUklOR0BAUUVCQUVBRUJWMEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgV1NUUklORzo6b3BlcmF0b3I8PShjbGFzcyBXU1RSSU5HIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/TldTVFJJTkdAQFFFQkFFQUVCVjBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFRJTUVJTkZPOjpvcGVyYXRvcj4oY2xhc3MgVElNRUlORk8pY29uc3QgIF9fcHRyNjQNCis/P09USU1FSU5GT0BAUUVCQUVWMEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgV1NUUklORzo6b3BlcmF0b3I+KGNsYXNzIFdTVFJJTkcgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz9PV1NUUklOR0BAUUVCQUVBRUJWMEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgV1NUUklORzo6b3BlcmF0b3I+PShjbGFzcyBXU1RSSU5HIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/UFdTVFJJTkdAQFFFQkFFQUVCVjBAQFoNCis7IGNvbnN0ICBCRFNUUklORzo6YHZmdGFibGUnDQorPz9fN0JEU1RSSU5HQEA2QkANCis7IGNvbnN0ICBCU1RSSU5HOjpgdmZ0YWJsZScNCis/P183QlNUUklOR0BANkJADQorOyBjb25zdCAgRFNUUklORzo6YHZmdGFibGUnDQorPz9fN0RTVFJJTkdAQDZCQA0KKzsgY29uc3QgIEZTVFJJTkc6OmB2ZnRhYmxlJw0KKz8/XzdGU1RSSU5HQEA2QkANCis7IGNvbnN0ICBPQkpFQ1Q6OmB2ZnRhYmxlJw0KKz8/XzdPQkpFQ1RAQDZCQA0KKzsgY29uc3QgIFdTVFJJTkc6OmB2ZnRhYmxlJw0KKz8/XzdXU1RSSU5HQEA2QkANCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX19wdHI2NCBfX2NkZWNsIENPTlRfTUVNOjpBY3F1aXJlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BY3F1aXJlQENPTlRfTUVNQEBVRUFBUEVBWEtLQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX19wdHI2NCBfX2NkZWNsIEhNRU06OkFjcXVpcmUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0FjcXVpcmVASE1FTUBAVUVBQVBFQVhLS0BaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgTUVNX0JMT0NLX01HUjo6QWxsb2Modm9pZCkgX19wdHI2NA0KKz9BbGxvY0BNRU1fQkxPQ0tfTUdSQEBRRUFBUEVBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgTUVNX0FMTE9DQVRPUjo6QWxsb2NhdGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BbGxvY2F0ZUBNRU1fQUxMT0NBVE9SQEBRRUFBUEVBWEtAWg0KKzsgcHVibGljOiBlbnVtIFBBVEhfQU5BTFlaRV9DT0RFICBfX2NkZWNsIFBBVEg6OkFuYWx5emVQYXRoKGNsYXNzIFdTVFJJTkcgKiBfX3B0cjY0LGNsYXNzIFBBVEggKiBfX3B0cjY0LGNsYXNzIFdTVFJJTkcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FuYWx5emVQYXRoQFBBVEhAQFFFQUE/QVc0UEFUSF9BTkFMWVpFX0NPREVAQFBFQVZXU1RSSU5HQEBQRUFWMUAwQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFBBVEg6OkFwcGVuZEJhc2UoY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9BcHBlbmRCYXNlQFBBVEhAQFFFQUFFUEVCVldTVFJJTkdAQEVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgUEFUSDo6QXBwZW5kRGVsaW1pdGVyKHZvaWQpIF9fcHRyNjQNCis/QXBwZW5kRGVsaW1pdGVyQFBBVEhAQFFFQUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFBBVEg6OkFwcGVuZFN0cmluZyhjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBlbmRTdHJpbmdAUEFUSEBAUUVBQUVQRUJWV1NUUklOR0BAQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIEZJTEVfU1RSRUFNICogX19wdHI2NCBfX2NkZWNsIEZJTEVfU1RSRUFNOjpDYXN0KGNsYXNzIE9CSkVDVCBjb25zdCAqIF9fcHRyNjQpDQorP0Nhc3RARklMRV9TVFJFQU1AQFNBUEVBVjFAUEVCVk9CSkVDVEBAQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIEtFWUJPQVJEICogX19wdHI2NCBfX2NkZWNsIEtFWUJPQVJEOjpDYXN0KGNsYXNzIE9CSkVDVCBjb25zdCAqIF9fcHRyNjQpDQorP0Nhc3RAS0VZQk9BUkRAQFNBUEVBVjFAUEVCVk9CSkVDVEBAQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIFNDUkVFTiAqIF9fcHRyNjQgX19jZGVjbCBTQ1JFRU46OkNhc3QoY2xhc3MgT0JKRUNUIGNvbnN0ICogX19wdHI2NCkNCis/Q2FzdEBTQ1JFRU5AQFNBUEVBVjFAUEVCVk9CSkVDVEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFNDUkVFTjo6Q2hhbmdlU2NyZWVuU2l6ZSh1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9DaGFuZ2VTY3JlZW5TaXplQFNDUkVFTkBAUUVBQUVHR1BFQUVAWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciAqIF9fcHRyNjQgX19jZGVjbCBNQlNUUjo6Q2hhck5leHRXKGNoYXIgKiBfX3B0cjY0KQ0KKz9DaGFyTmV4dFdATUJTVFJAQFNBUEVBRFBFQURAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCBfX2NkZWNsIFdTVFJJTkc6OkNoZWNrU3BhY2UodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9DaGVja1NwYWNlQFdTVFJJTkdAQENBSFBFQUdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQ09NTV9ERVZJQ0U6OkNvbW1pdFN0YXRlKHZvaWQpIF9fcHRyNjQNCis/Q29tbWl0U3RhdGVAQ09NTV9ERVZJQ0VAQFFFQUFFWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgT0JKRUNUOjpDb21wYXJlKGNsYXNzIE9CSkVDVCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Q29tcGFyZUBPQkpFQ1RAQFVFQkFKUEVCVjFAQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBCSVRWRUNUT1I6OkNvbXB1dGVDb3VudFNldCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0NvbXB1dGVDb3VudFNldEBCSVRWRUNUT1JAQEFFQkFLWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBCRFNUUklORzo6Q29uc3RydWN0KHZvaWQpIF9fcHRyNjQNCis/Q29uc3RydWN0QEJEU1RSSU5HQEBBRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBCU1RSSU5HOjpDb25zdHJ1Y3Qodm9pZCkgX19wdHI2NA0KKz9Db25zdHJ1Y3RAQlNUUklOR0BASUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIERTVFJJTkc6OkNvbnN0cnVjdCh2b2lkKSBfX3B0cjY0DQorP0NvbnN0cnVjdEBEU1RSSU5HQEBBRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBPQkpFQ1Q6OkNvbnN0cnVjdCh2b2lkKSBfX3B0cjY0DQorP0NvbnN0cnVjdEBPQkpFQ1RAQElFQUFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFdTVFJJTkc6OkNvbnN0cnVjdCh2b2lkKSBfX3B0cjY0DQorP0NvbnN0cnVjdEBXU1RSSU5HQEBJRUFBWFhaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIFdTVFJJTkc6OkNvbnZlcnRPZW1Ub1VuaWNvZGVOKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpDQorP0NvbnZlcnRPZW1Ub1VuaWNvZGVOQFdTVFJJTkdAQENBRVBFQUdLUEVBS1BFQURLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFRJTUVJTkZPOjpDb252ZXJ0VG9Mb2NhbCh2b2lkKSBfX3B0cjY0DQorP0NvbnZlcnRUb0xvY2FsQFRJTUVJTkZPQEBRRUFBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBUSU1FSU5GTzo6Q29udmVydFRvVVRDKHZvaWQpIF9fcHRyNjQNCis/Q29udmVydFRvVVRDQFRJTUVJTkZPQEBRRUFBRVhaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIFdTVFJJTkc6OkNvbnZlcnRVbmljb2RlVG9PZW1OKGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpDQorP0NvbnZlcnRVbmljb2RlVG9PZW1OQFdTVFJJTkdAQENBRVBFQURLUEVBS1BFQUdLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIEZTTl9GSUxFOjpDb3B5KGNsYXNzIFBBVEggKiBfX3B0cjY0LGVudW0gX0NPUFlfRVJST1IgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAoX19jZGVjbCopKHVuaW9uIF9MQVJHRV9JTlRFR0VSLHVuaW9uIF9MQVJHRV9JTlRFR0VSLHVuaW9uIF9MQVJHRV9JTlRFR0VSLHVuaW9uIF9MQVJHRV9JTlRFR0VSLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCx2b2lkICogX19wdHI2NCx2b2lkICogX19wdHI2NCksdm9pZCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Db3B5QEZTTl9GSUxFQEBRRUJBRVBFQVZQQVRIQEBQRUFXNF9DT1BZX0VSUk9SQEBLUDZBS1RfTEFSR0VfSU5URUdFUkBAMjIyS0tQRUFYMzNAWjNQRUFIQFoNCis7IHB1YmxpYzogY2xhc3MgRlNOX0RJUkVDVE9SWSAqIF9fcHRyNjQgX19jZGVjbCBGU05fRElSRUNUT1JZOjpDcmVhdGVEaXJlY3RvcnlQYXRoKGNsYXNzIFBBVEggY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0NyZWF0ZURpcmVjdG9yeVBhdGhARlNOX0RJUkVDVE9SWUBAUUVCQVBFQVYxQFBFQlZQQVRIQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBBUlJBWTo6RGVsZXRlQWxsTWVtYmVycyh2b2lkKSBfX3B0cjY0DQorP0RlbGV0ZUFsbE1lbWJlcnNAQVJSQVlAQFVFQUFFWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgU0VRVUVOVElBTF9DT05UQUlORVI6OkRlbGV0ZUFsbE1lbWJlcnModm9pZCkgX19wdHI2NA0KKz9EZWxldGVBbGxNZW1iZXJzQFNFUVVFTlRJQUxfQ09OVEFJTkVSQEBVRUFBRVhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciBfX2NkZWNsIFNPUlRFRF9MSVNUOjpEZWxldGVBbGxNZW1iZXJzKHZvaWQpIF9fcHRyNjQNCis/RGVsZXRlQWxsTWVtYmVyc0BTT1JURURfTElTVEBAVUVBQUVYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQlNUUklORzo6RGVsZXRlQ2hBdCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RGVsZXRlQ2hBdEBCU1RSSU5HQEBRRUFBWEtLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdTVFJJTkc6OkRlbGV0ZUNoQXQodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0RlbGV0ZUNoQXRAV1NUUklOR0BAUUVBQVhLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBGU05fRElSRUNUT1JZOjpEZWxldGVEaXJlY3Rvcnkodm9pZCkgX19wdHI2NA0KKz9EZWxldGVEaXJlY3RvcnlARlNOX0RJUkVDVE9SWUBAUUVBQUVYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIEtFWUJPQVJEOjpEaXNhYmxlQnJlYWtIYW5kbGluZyh2b2lkKQ0KKz9EaXNhYmxlQnJlYWtIYW5kbGluZ0BLRVlCT0FSREBAU0FFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIEtFWUJPQVJEOjpEaXNhYmxlTGluZU1vZGUodm9pZCkgX19wdHI2NA0KKz9EaXNhYmxlTGluZU1vZGVAS0VZQk9BUkRAQFFFQUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE1FU1NBR0U6OkRpc3BsYXkoY2hhciBjb25zdCAqIF9fcHRyNjQsLi4uKSBfX3B0cjY0DQorP0Rpc3BsYXlATUVTU0FHRUBAUUVBQUVQRUJEWloNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgUFJPR1JBTTo6RGlzcGxheU1lc3NhZ2UodW5zaWduZWQgbG9uZyxlbnVtIE1FU1NBR0VfVFlQRSljb25zdCAgX19wdHI2NA0KKz9EaXNwbGF5TWVzc2FnZUBQUk9HUkFNQEBVRUJBRUtXNE1FU1NBR0VfVFlQRUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgUFJPR1JBTTo6RGlzcGxheU1lc3NhZ2UodW5zaWduZWQgbG9uZyxlbnVtIE1FU1NBR0VfVFlQRSxjaGFyICogX19wdHI2NCwuLi4pY29uc3QgIF9fcHRyNjQNCis/RGlzcGxheU1lc3NhZ2VAUFJPR1JBTUBAVUVCQUVLVzRNRVNTQUdFX1RZUEVAQFBFQURaWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTUVTU0FHRTo6RGlzcGxheU1zZyh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0Rpc3BsYXlNc2dATUVTU0FHRUBAUUVBQUVLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE1FU1NBR0U6OkRpc3BsYXlNc2codW5zaWduZWQgbG9uZyxjaGFyIGNvbnN0ICogX19wdHI2NCwuLi4pIF9fcHRyNjQNCis/RGlzcGxheU1zZ0BNRVNTQUdFQEBRRUFBRUtQRUJEWloNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE1FU1NBR0U6OkRpc3BsYXlNc2codW5zaWduZWQgbG9uZyxlbnVtIE1FU1NBR0VfVFlQRSx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0Rpc3BsYXlNc2dATUVTU0FHRUBAUUVBQUVLVzRNRVNTQUdFX1RZUEVAQEtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTUVTU0FHRTo6RGlzcGxheU1zZyh1bnNpZ25lZCBsb25nLGVudW0gTUVTU0FHRV9UWVBFLHVuc2lnbmVkIGxvbmcsY2hhciBjb25zdCAqIF9fcHRyNjQsLi4uKSBfX3B0cjY0DQorP0Rpc3BsYXlNc2dATUVTU0FHRUBAUUVBQUVLVzRNRVNTQUdFX1RZUEVAQEtQRUJEWloNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBTWVNURU06OkRpc3BsYXlTeXN0ZW1FcnJvcih1bnNpZ25lZCBsb25nLGludCkNCis/RGlzcGxheVN5c3RlbUVycm9yQFNZU1RFTUBAU0FYS0hAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBLRVlCT0FSRDo6RG9Ob3RSZXN0b3JlQ29uc29sZU1vZGUodm9pZCkgX19wdHI2NA0KKz9Eb05vdFJlc3RvcmVDb25zb2xlTW9kZUBLRVlCT0FSREBAVUVBQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQVJHVU1FTlRfTEVYRU1JWkVSOjpEb1BhcnNpbmcoY2xhc3MgQVJSQVkgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RvUGFyc2luZ0BBUkdVTUVOVF9MRVhFTUlaRVJAQFFFQUFFUEVBVkFSUkFZQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRlNOX0ZJTFRFUjo6RG9lc05vZGVNYXRjaChjbGFzcyBGU05PREUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RvZXNOb2RlTWF0Y2hARlNOX0ZJTFRFUkBAUUVBQUVQRUFWRlNOT0RFQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTUVTU0FHRTo6RHVtcERhdGFUb0xvZyh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0R1bXBEYXRhVG9Mb2dATUVTU0FHRUBAUUVBQUVQRUFYS0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgS0VZQk9BUkQ6OkVuYWJsZUJyZWFrSGFuZGxpbmcodm9pZCkNCis/RW5hYmxlQnJlYWtIYW5kbGluZ0BLRVlCT0FSREBAU0FFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIEtFWUJPQVJEOjpFbmFibGVMaW5lTW9kZSh2b2lkKSBfX3B0cjY0DQorP0VuYWJsZUxpbmVNb2RlQEtFWUJPQVJEQEBRRUFBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBQQVRIOjpFbmRzV2l0aERlbGltaXRlcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0VuZHNXaXRoRGVsaW1pdGVyQFBBVEhAQFFFQkFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFNDUkVFTjo6RXJhc2VTY3JlZW4odm9pZCkgX19wdHI2NA0KKz9FcmFzZVNjcmVlbkBTQ1JFRU5AQFFFQUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFNDUkVFTjo6RXJhc2VTY3JlZW5BbmRSZXNldEF0dHJpYnV0ZSh2b2lkKSBfX3B0cjY0DQorP0VyYXNlU2NyZWVuQW5kUmVzZXRBdHRyaWJ1dGVAU0NSRUVOQEBRRUFBRVhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgUFJPR1JBTTo6RXhpdFByb2dyYW0odW5zaWduZWQgbG9uZykNCis/RXhpdFByb2dyYW1AUFJPR1JBTUBAU0FYS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFBST0dSQU06OkZhdGFsKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjaGFyICogX19wdHI2NCwuLi4pY29uc3QgIF9fcHRyNjQNCis/RmF0YWxAUFJPR1JBTUBAVUVCQVhLS1BFQURaWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBQUk9HUkFNOjpGYXRhbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0ZhdGFsQFBST0dSQU1AQFVFQkFYWFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBCWVRFX1NUUkVBTTo6RmlsbEFuZFJlYWRCeXRlKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbGxBbmRSZWFkQnl0ZUBCWVRFX1NUUkVBTUBAQUVBQUVQRUFFQFoNCis7IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgRmluZEZpcnN0RmlsZVcoY2xhc3MgUEFUSCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IF9XSU4zMl9GSU5EX0RBVEFXICogX19wdHI2NCkNCis/RmluZEZpcnN0RmlsZVdAQFlBUEVBWFBFQlZQQVRIQEBQRUFVX1dJTjMyX0ZJTkRfREFUQVdAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBLRVlCT0FSRDo6Rmx1c2godm9pZCkgX19wdHI2NA0KKz9GbHVzaEBLRVlCT0FSREBAUUVBQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTUVNX0JMT0NLX01HUjo6RnJlZSh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9GcmVlQE1FTV9CTE9DS19NR1JAQFFFQUFFUEVBWEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgU1lTVEVNOjpGcmVlTGlicmFyeUhhbmRsZSh2b2lkICogX19wdHI2NCkNCis/RnJlZUxpYnJhcnlIYW5kbGVAU1lTVEVNQEBTQVhQRUFYQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xBU1NfREVTQ1JJUFRPUiBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBPQkpFQ1Q6OkdldENsYXNzRGVzY3JpcHRvcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldENsYXNzRGVzY3JpcHRvckBPQkpFQ1RAQFFFQkFQRUJWQ0xBU1NfREVTQ1JJUFRPUkBAWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBTWVNURU06OkdldEZpbGVTZWN1cml0eUJhY2t1cChjbGFzcyBQQVRIIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHN0cnVjdCBfU0VDVVJJVFlfQVRUUklCVVRFUyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpDQorP0dldEZpbGVTZWN1cml0eUJhY2t1cEBTWVNURU1AQFNBRVBFQlZQQVRIQEBLUEVBVV9TRUNVUklUWV9BVFRSSUJVVEVTQEBQRUFLQFoNCis7IHB1YmxpYzogY2xhc3MgV1NUUklORyAqIF9fcHRyNjQgX19jZGVjbCBBUkdVTUVOVDo6R2V0TGV4ZW1lKHZvaWQpIF9fcHRyNjQNCis/R2V0TGV4ZW1lQEFSR1VNRU5UQEBRRUFBUEVBVldTVFJJTkdAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFdTVFJJTkcgKiBfX3B0cjY0IF9fY2RlY2wgQVJHVU1FTlRfTEVYRU1JWkVSOjpHZXRMZXhlbWVBdCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0dldExleGVtZUF0QEFSR1VNRU5UX0xFWEVNSVpFUkBAUUVBQVBFQVZXU1RSSU5HQEBLQFoNCis7IHB1YmxpYzogY2xhc3MgRlNOT0RFICogX19wdHI2NCBfX2NkZWNsIEZTTl9ESVJFQ1RPUlk6OkdldE5leHQodm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldE5leHRARlNOX0RJUkVDVE9SWUBAUUVBQVBFQVZGU05PREVAQFBFQVBFQVhQRUFLQFoNCis7IHB1YmxpYzogaW50ICogX19wdHI2NCBfX2NkZWNsIEtFWUJPQVJEOjpHZXRQRmxhZ0JyZWFrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0UEZsYWdCcmVha0BLRVlCT0FSREBAUUVCQVFFQUhYWg0KKzsgcHVibGljOiBjbGFzcyBXU1RSSU5HICogX19wdHI2NCBfX2NkZWNsIEFSR1VNRU5UOjpHZXRQYXR0ZXJuKHZvaWQpIF9fcHRyNjQNCis/R2V0UGF0dGVybkBBUkdVTUVOVEBAUUVBQVBFQVZXU1RSSU5HQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFNUUkVBTSAqIF9fcHRyNjQgX19jZGVjbCBQUk9HUkFNOjpHZXRTdGFuZGFyZEVycm9yKHZvaWQpIF9fcHRyNjQNCis/R2V0U3RhbmRhcmRFcnJvckBQUk9HUkFNQEBVRUFBUEVBVlNUUkVBTUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBTVFJFQU0gKiBfX3B0cjY0IF9fY2RlY2wgUFJPR1JBTTo6R2V0U3RhbmRhcmRJbnB1dCh2b2lkKSBfX3B0cjY0DQorP0dldFN0YW5kYXJkSW5wdXRAUFJPR1JBTUBAVUVBQVBFQVZTVFJFQU1AQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU1RSRUFNICogX19wdHI2NCBfX2NkZWNsIFBST0dSQU06OkdldFN0YW5kYXJkT3V0cHV0KHZvaWQpIF9fcHRyNjQNCis/R2V0U3RhbmRhcmRPdXRwdXRAUFJPR1JBTUBAVUVBQVBFQVZTVFJFQU1AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIFdTVFJJTkc6OkdldFdTVFIodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRXU1RSQFdTVFJJTkdAQFFFQkFQRUJHWFoNCis7IGNsYXNzIFNUUkVBTSAqIF9fcHRyNjQgX19jZGVjbCBHZXRfU3RhbmRhcmRfRXJyb3JfU3RyZWFtKHZvaWQpDQorP0dldF9TdGFuZGFyZF9FcnJvcl9TdHJlYW1AQFlBUEVBVlNUUkVBTUBAWFoNCis7IGNsYXNzIFNUUkVBTSAqIF9fcHRyNjQgX19jZGVjbCBHZXRfU3RhbmRhcmRfSW5wdXRfU3RyZWFtKHZvaWQpDQorP0dldF9TdGFuZGFyZF9JbnB1dF9TdHJlYW1AQFlBUEVBVlNUUkVBTUBAWFoNCis7IGNsYXNzIFNUUkVBTSAqIF9fcHRyNjQgX19jZGVjbCBHZXRfU3RhbmRhcmRfT3V0cHV0X1N0cmVhbSh2b2lkKQ0KKz9HZXRfU3RhbmRhcmRfT3V0cHV0X1N0cmVhbUBAWUFQRUFWU1RSRUFNQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIEtFWUJPQVJEOjpHb3RBQnJlYWsodm9pZCkNCis/R290QUJyZWFrQEtFWUJPQVJEQEBTQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgUEFUSDo6SGFzV2lsZENhcmQodm9pZCljb25zdCAgX19wdHI2NA0KKz9IYXNXaWxkQ2FyZEBQQVRIQEBRRUJBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBBUkdVTUVOVF9MRVhFTUlaRVI6OkluaXRpYWxpemUoY2xhc3MgQVJSQVkgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVAQVJHVU1FTlRfTEVYRU1JWkVSQEBRRUFBRVBFQVZBUlJBWUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIEFSUkFZOjpJbml0aWFsaXplKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Jbml0aWFsaXplQEFSUkFZQEBRRUFBRUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIEJJVFZFQ1RPUjo6SW5pdGlhbGl6ZSh1bnNpZ25lZCBsb25nLGVudW0gQklULHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVAQklUVkVDVE9SQEBRRUFBRUtXNEJJVEBAUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBCU1RSSU5HOjpJbml0aWFsaXplKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBCU1RSSU5HQEBRRUFBRVBFQkRLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIEJTVFJJTkc6OkluaXRpYWxpemUodm9pZCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQEJTVFJJTkdAQFFFQUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIEJZVEVfU1RSRUFNOjpJbml0aWFsaXplKGNsYXNzIFNUUkVBTSAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Jbml0aWFsaXplQEJZVEVfU1RSRUFNQEBRRUFBRVBFQVZTVFJFQU1AQEtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQ0hLRFNLX01FU1NBR0U6OkluaXRpYWxpemUoY2xhc3MgU1RSRUFNICogX19wdHI2NCxjbGFzcyBTVFJFQU0gKiBfX3B0cjY0LGNsYXNzIFNUUkVBTSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBDSEtEU0tfTUVTU0FHRUBAUUVBQUVQRUFWU1RSRUFNQEAwMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBDTEFTU19ERVNDUklQVE9SOjpJbml0aWFsaXplKHZvaWQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBDTEFTU19ERVNDUklQVE9SQEBRRUFBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBDT01NX0RFVklDRTo6SW5pdGlhbGl6ZShjbGFzcyBQQVRIIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQENPTU1fREVWSUNFQEBRRUFBRVBFQlZQQVRIQEBQRUFFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIENPTlRfTUVNOjpJbml0aWFsaXplKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBDT05UX01FTUBAUUVBQUVQRUFYS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBGTEFHX0FSR1VNRU5UOjpJbml0aWFsaXplKGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVARkxBR19BUkdVTUVOVEBAUUVBQUVQRUFEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIEZMQUdfQVJHVU1FTlQ6OkluaXRpYWxpemUoY2xhc3MgV1NUUklORyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBGTEFHX0FSR1VNRU5UQEBRRUFBRVBFQVZXU1RSSU5HQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRlNOX0ZJTFRFUjo6SW5pdGlhbGl6ZSh2b2lkKSBfX3B0cjY0DQorP0luaXRpYWxpemVARlNOX0ZJTFRFUkBAUUVBQUVYWg0KKzsgcHVibGljOiBjbGFzcyBXU1RSSU5HICogX19wdHI2NCBfX2NkZWNsIEZTVFJJTkc6OkluaXRpYWxpemUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBGU1RSSU5HQEBRRUFBUEVBVldTVFJJTkdAQFBFQUdLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIEhNRU06OkluaXRpYWxpemUodm9pZCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQEhNRU1AQFFFQUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIEtFWUJPQVJEOjpJbml0aWFsaXplKHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9Jbml0aWFsaXplQEtFWUJPQVJEQEBRRUFBRUVFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIExJU1Q6OkluaXRpYWxpemUodm9pZCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQExJU1RAQFFFQUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIExPTkdfQVJHVU1FTlQ6OkluaXRpYWxpemUoY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBMT05HX0FSR1VNRU5UQEBRRUFBRVBFQURAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTUVNX0FMTE9DQVRPUjo6SW5pdGlhbGl6ZSh1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBNRU1fQUxMT0NBVE9SQEBRRUFBRV9LS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBNRU1fQkxPQ0tfTUdSOjpJbml0aWFsaXplKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Jbml0aWFsaXplQE1FTV9CTE9DS19NR1JAQFFFQUFFS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTUVTU0FHRTo6SW5pdGlhbGl6ZSh2b2lkKSBfX3B0cjY0DQorP0luaXRpYWxpemVATUVTU0FHRUBAUUVBQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTVVMVElQTEVfUEFUSF9BUkdVTUVOVDo6SW5pdGlhbGl6ZShjaGFyICogX19wdHI2NCx1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBNVUxUSVBMRV9QQVRIX0FSR1VNRU5UQEBRRUFBRVBFQURFRUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBQQVRIOjpJbml0aWFsaXplKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP0luaXRpYWxpemVAUEFUSEBAUUVBQUVQRUJHRUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBQQVRIOjpJbml0aWFsaXplKGNsYXNzIFBBVEggY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBQQVRIQEBRRUFBRVBFQlYxQEVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgUEFUSDo6SW5pdGlhbGl6ZShjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP0luaXRpYWxpemVAUEFUSEBAUUVBQUVQRUJWV1NUUklOR0BARUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBQQVRIX0FSR1VNRU5UOjpJbml0aWFsaXplKGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBQQVRIX0FSR1VNRU5UQEBRRUFBRVBFQURFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFBSSU5UX1NUUkVBTTo6SW5pdGlhbGl6ZShjbGFzcyBQQVRIIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQFBSSU5UX1NUUkVBTUBAUUVBQUVQRUJWUEFUSEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFBST0dSQU06OkluaXRpYWxpemUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBQUk9HUkFNQEBRRUFBRUtLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBSRVNUX09GX0xJTkVfQVJHVU1FTlQ6OkluaXRpYWxpemUodm9pZCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQFJFU1RfT0ZfTElORV9BUkdVTUVOVEBAUUVBQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgU0NSRUVOOjpJbml0aWFsaXplKHZvaWQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBTQ1JFRU5AQFFFQUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFNPUlRFRF9MSVNUOjpJbml0aWFsaXplKHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBTT1JURURfTElTVEBAUUVBQUVFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFNUUkVBTV9NRVNTQUdFOjpJbml0aWFsaXplKGNsYXNzIFNUUkVBTSAqIF9fcHRyNjQsY2xhc3MgU1RSRUFNICogX19wdHI2NCxjbGFzcyBTVFJFQU0gKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVAU1RSRUFNX01FU1NBR0VAQFFFQUFFUEVBVlNUUkVBTUBAMDBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgU1RSSU5HX0FSR1VNRU5UOjpJbml0aWFsaXplKGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVAU1RSSU5HX0FSR1VNRU5UQEBRRUFBRVBFQURAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgU1RSSU5HX0FSUkFZOjpJbml0aWFsaXplKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0luaXRpYWxpemVAU1RSSU5HX0FSUkFZQEBRRUFBRUtLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBUSU1FSU5GTzo6SW5pdGlhbGl6ZShzdHJ1Y3QgX0ZJTEVUSU1FICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQFRJTUVJTkZPQEBRRUFBRVBFQVVfRklMRVRJTUVAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBUSU1FSU5GTzo6SW5pdGlhbGl6ZShjbGFzcyBUSU1FSU5GTyBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBUSU1FSU5GT0BAUUVBQVhQRUJWMUBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgVElNRUlORk9fQVJHVU1FTlQ6OkluaXRpYWxpemUoY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBUSU1FSU5GT19BUkdVTUVOVEBAUUVBQUVQRUFEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFdTVFJJTkc6OkluaXRpYWxpemUobG9uZykgX19wdHI2NA0KKz9Jbml0aWFsaXplQFdTVFJJTkdAQFFFQUFFSkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBXU1RSSU5HOjpJbml0aWFsaXplKGNoYXIgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBXU1RSSU5HQEBRRUFBRVBFQkRLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFdTVFJJTkc6OkluaXRpYWxpemUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBXU1RSSU5HQEBRRUFBRVBFQkdLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFdTVFJJTkc6OkluaXRpYWxpemUoY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0luaXRpYWxpemVAV1NUUklOR0BAUUVBQUVQRUJWMUBLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBXU1RSSU5HOjpJbml0aWFsaXplKHZvaWQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBXU1RSSU5HQEBRRUFBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBMSVNUOjpJbnNlcnQoY2xhc3MgT0JKRUNUICogX19wdHI2NCxjbGFzcyBJVEVSQVRPUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5zZXJ0QExJU1RAQFFFQUFFUEVBVk9CSkVDVEBAUEVBVklURVJBVE9SQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgV1NUUklORzo6SW5zZXJ0U3RyaW5nKHVuc2lnbmVkIGxvbmcsY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0luc2VydFN0cmluZ0BXU1RSSU5HQEBRRUFBRUtQRUJWMUBLS0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgU1lTVEVNOjpJc0NvcnJlY3RWZXJzaW9uKHZvaWQpDQorP0lzQ29ycmVjdFZlcnNpb25AU1lTVEVNQEBTQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgUEFUSDo6SXNEcml2ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRHJpdmVAUEFUSEBAUUVCQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRlNOX0RJUkVDVE9SWTo6SXNFbXB0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzRW1wdHlARlNOX0RJUkVDVE9SWUBAUUVCQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgUEFUSDo6SXNHdWlkVm9sTmFtZSh2b2lkKSBfX3B0cjY0DQorP0lzR3VpZFZvbE5hbWVAUEFUSEBAUUVBQUVYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBNRVNTQUdFOjpJc0luQXV0b0Noayh2b2lkKSBfX3B0cjY0DQorP0lzSW5BdXRvQ2hrQE1FU1NBR0VAQFVFQUFFWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTUVTU0FHRTo6SXNJblNldHVwKHZvaWQpIF9fcHRyNjQNCis/SXNJblNldHVwQE1FU1NBR0VAQFVFQUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIEtFWUJPQVJEOjpJc0tleUF2YWlsYWJsZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Jc0tleUF2YWlsYWJsZUBLRVlCT0FSREBAUUVCQUVQRUFFQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTUVTU0FHRTo6SXNLZXlQcmVzc2VkKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Jc0tleVByZXNzZWRATUVTU0FHRUBAVUVBQUVLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBNRVNTQUdFOjpJc0xvZ2dpbmdFbmFibGVkKHZvaWQpIF9fcHRyNjQNCis/SXNMb2dnaW5nRW5hYmxlZEBNRVNTQUdFQEBRRUFBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBPQkpFQ1Q6OklzU2FtZUNsYXNzKGNsYXNzIE9CSkVDVCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/SXNTYW1lQ2xhc3NAT0JKRUNUQEBRRUJBRVBFQlYxQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBPQkpFQ1Q6OklzU2FtZU9iamVjdChjbGFzcyBPQkpFQ1QgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0lzU2FtZU9iamVjdEBPQkpFQ1RAQFFFQkFFUEVCVjFAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTUVTU0FHRTo6SXNTdXBwcmVzc2VkTWVzc2FnZSh2b2lkKSBfX3B0cjY0DQorP0lzU3VwcHJlc3NlZE1lc3NhZ2VATUVTU0FHRUBAVUVBQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQVJHVU1FTlQ6OklzVmFsdWVTZXQodm9pZCkgX19wdHI2NA0KKz9Jc1ZhbHVlU2V0QEFSR1VNRU5UQEBRRUFBRVhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciBfX2NkZWNsIENIS0RTS19NRVNTQUdFOjpJc1llc1Jlc3BvbnNlKHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/SXNZZXNSZXNwb25zZUBDSEtEU0tfTUVTU0FHRUBAVUVBQUVFQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTUVTU0FHRTo6SXNZZXNSZXNwb25zZSh1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP0lzWWVzUmVzcG9uc2VATUVTU0FHRUBAVUVBQUVFQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgU1RSRUFNX01FU1NBR0U6OklzWWVzUmVzcG9uc2UodW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9Jc1llc1Jlc3BvbnNlQFNUUkVBTV9NRVNTQUdFQEBVRUFBRUVAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTUVTU0FHRTo6TG9jayh2b2lkKSBfX3B0cjY0DQorP0xvY2tATUVTU0FHRUBAUUVBQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTUVTU0FHRTo6TG9nKGNoYXIgY29uc3QgKiBfX3B0cjY0LC4uLikgX19wdHI2NA0KKz9Mb2dATUVTU0FHRUBAUUVBQUVQRUJEWloNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE1FU1NBR0U6OkxvZ01lc3NhZ2UoY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TG9nTWVzc2FnZUBNRVNTQUdFQEBRRUFBRVBFQlZXU1RSSU5HQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTUVTU0FHRTo6TG9nTXNnKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/TG9nTXNnQE1FU1NBR0VAQFFFQUFFS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBNRVNTQUdFOjpMb2dNc2codW5zaWduZWQgbG9uZyxjaGFyIGNvbnN0ICogX19wdHI2NCwuLi4pIF9fcHRyNjQNCis/TG9nTXNnQE1FU1NBR0VAQFFFQUFFS1BFQkRaWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgRlNOX0RJUkVDVE9SWSAqIF9fcHRyNjQgX19jZGVjbCBTWVNURU06Ok1ha2VEaXJlY3RvcnkoY2xhc3MgUEFUSCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgUEFUSCBjb25zdCAqIF9fcHRyNjQsZW51bSBfQ09QWV9FUlJPUiAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAoX19jZGVjbCopKHVuaW9uIF9MQVJHRV9JTlRFR0VSLHVuaW9uIF9MQVJHRV9JTlRFR0VSLHVuaW9uIF9MQVJHRV9JTlRFR0VSLHVuaW9uIF9MQVJHRV9JTlRFR0VSLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCx2b2lkICogX19wdHI2NCx2b2lkICogX19wdHI2NCksdm9pZCAqIF9fcHRyNjQsaW50ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKQ0KKz9NYWtlRGlyZWN0b3J5QFNZU1RFTUBAU0FQRUFWRlNOX0RJUkVDVE9SWUBAUEVCVlBBVEhAQDBQRUFXNF9DT1BZX0VSUk9SQEBQNkFLVF9MQVJHRV9JTlRFR0VSQEAyMjJLS1BFQVgzM0BaM1BFQUhLQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIEZTTl9GSUxFICogX19wdHI2NCBfX2NkZWNsIFNZU1RFTTo6TWFrZUZpbGUoY2xhc3MgUEFUSCBjb25zdCAqIF9fcHRyNjQpDQorP01ha2VGaWxlQFNZU1RFTUBAU0FQRUFWRlNOX0ZJTEVAQFBFQlZQQVRIQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgRlNOX0ZJTEUgKiBfX3B0cjY0IF9fY2RlY2wgU1lTVEVNOjpNYWtlVGVtcG9yYXJ5RmlsZShjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxjbGFzcyBQQVRIIGNvbnN0ICogX19wdHI2NCkNCis/TWFrZVRlbXBvcmFyeUZpbGVAU1lTVEVNQEBTQVBFQVZGU05fRklMRUBAUEVCVldTVFJJTkdAQFBFQlZQQVRIQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgUEFUSDo6TW9kaWZ5TmFtZShjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Nb2RpZnlOYW1lQFBBVEhAQFFFQUFFUEVCVldTVFJJTkdAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBTQ1JFRU46Ok1vdmVDdXJzb3JUbyh1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9Nb3ZlQ3Vyc29yVG9AU0NSRUVOQEBRRUFBRUdHQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQkRTVFJJTkc6Ok5ld0J1Zih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP05ld0J1ZkBCRFNUUklOR0BAVUVBQUVLQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRFNUUklORzo6TmV3QnVmKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/TmV3QnVmQERTVFJJTkdAQFVFQUFFS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciBfX2NkZWNsIEZTVFJJTkc6Ok5ld0J1Zih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP05ld0J1ZkBGU1RSSU5HQEBVRUFBRUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQlNUUklORzo6TmV4dENoYXIodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9OZXh0Q2hhckBCU1RSSU5HQEBRRUFBS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQVJHVU1FTlRfTEVYRU1JWkVSOjpQcmVwYXJlVG9QYXJzZShjbGFzcyBXU1RSSU5HICogX19wdHI2NCkgX19wdHI2NA0KKz9QcmVwYXJlVG9QYXJzZUBBUkdVTUVOVF9MRVhFTUlaRVJAQFFFQUFFUEVBVldTVFJJTkdAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciBfX2NkZWNsIEFSUkFZOjpQdXQoY2xhc3MgT0JKRUNUICogX19wdHI2NCkgX19wdHI2NA0KKz9QdXRAQVJSQVlAQFVFQUFFUEVBVk9CSkVDVEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTElTVDo6UHV0KGNsYXNzIE9CSkVDVCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UHV0QExJU1RAQFVFQUFFUEVBVk9CSkVDVEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgU09SVEVEX0xJU1Q6OlB1dChjbGFzcyBPQkpFQ1QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1B1dEBTT1JURURfTElTVEBAVUVBQUVQRUFWT0JKRUNUQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQVJHVU1FTlRfTEVYRU1JWkVSOjpQdXRNdWx0aXBsZVN3aXRjaChjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QdXRNdWx0aXBsZVN3aXRjaEBBUkdVTUVOVF9MRVhFTUlaRVJAQFFFQUFYUEVCREBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBBUkdVTUVOVF9MRVhFTUlaRVI6OlB1dE11bHRpcGxlU3dpdGNoKGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1B1dE11bHRpcGxlU3dpdGNoQEFSR1VNRU5UX0xFWEVNSVpFUkBAUUVBQVhQRUJWV1NUUklOR0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEFSR1VNRU5UX0xFWEVNSVpFUjo6UHV0U2VwYXJhdG9ycyhjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QdXRTZXBhcmF0b3JzQEFSR1VNRU5UX0xFWEVNSVpFUkBAUUVBQVhQRUJEQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIEJTVFJJTkc6OlB1dFN0cmluZyhjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1B1dFN0cmluZ0BCU1RSSU5HQEBJRUFBWFBFQURLQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIFdTVFJJTkc6OlB1dFN0cmluZyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UHV0U3RyaW5nQFdTVFJJTkdAQElFQUFYUEVBR0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBXU1RSSU5HOjpQdXRTdHJpbmcodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UHV0U3RyaW5nQFdTVFJJTkdAQElFQUFYUEVBR0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQVJHVU1FTlRfTEVYRU1JWkVSOjpQdXRTd2l0Y2hlcyhjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QdXRTd2l0Y2hlc0BBUkdVTUVOVF9MRVhFTUlaRVJAQFFFQUFYUEVCREBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBBUkdVTUVOVF9MRVhFTUlaRVI6OlB1dFN3aXRjaGVzKGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1B1dFN3aXRjaGVzQEFSR1VNRU5UX0xFWEVNSVpFUkBAUUVBQVhQRUJWV1NUUklOR0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFdTVFJJTkc6OlF1ZXJ5Qnl0ZUNvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlCeXRlQ291bnRAV1NUUklOR0BAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIFdTVFJJTkc6OlF1ZXJ5Q2hBdCh1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q2hBdEBXU1RSSU5HQEBRRUJBR0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQlNUUklORzo6UXVlcnlDaENvdW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDaENvdW50QEJTVFJJTkdAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFdTVFJJTkc6OlF1ZXJ5Q2hDb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q2hDb3VudEBXU1RSSU5HQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBPQkpFQ1Q6OlF1ZXJ5Q2xhc3NJZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q2xhc3NJZEBPQkpFQ1RAQFFFQkFfS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBTQ1JFRU46OlF1ZXJ5Q29kZVBhZ2Uodm9pZCkgX19wdHI2NA0KKz9RdWVyeUNvZGVQYWdlQFNDUkVFTkBAUUVBQUtYWg0KKzsgcHVibGljOiBjbGFzcyBBUlJBWSAqIF9fcHRyNjQgX19jZGVjbCBQQVRIOjpRdWVyeUNvbXBvbmVudEFycmF5KGNsYXNzIEFSUkFZICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNvbXBvbmVudEFycmF5QFBBVEhAQFFFQkFQRUFWQVJSQVlAQFBFQVYyQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgU1lTVEVNOjpRdWVyeUN1cnJlbnREb3NEcml2ZU5hbWUoY2xhc3MgV1NUUklORyAqIF9fcHRyNjQpDQorP1F1ZXJ5Q3VycmVudERvc0RyaXZlTmFtZUBTWVNURU1AQFNBRVBFQVZXU1RSSU5HQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgVElNRUlORk86OlF1ZXJ5RGF0ZShjbGFzcyBXU1RSSU5HICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeURhdGVAVElNRUlORk9AQFFFQkFFUEVBVldTVFJJTkdAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBGU05fRElSRUNUT1JZICogX19wdHI2NCBfX2NkZWNsIFNZU1RFTTo6UXVlcnlEaXJlY3RvcnkoY2xhc3MgUEFUSCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcikNCis/UXVlcnlEaXJlY3RvcnlAU1lTVEVNQEBTQVBFQVZGU05fRElSRUNUT1JZQEBQRUJWUEFUSEBARUBaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIERSSVZFX1RZUEUgIF9fY2RlY2wgU1lTVEVNOjpRdWVyeURyaXZlVHlwZShjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCkNCis/UXVlcnlEcml2ZVR5cGVAU1lTVEVNQEBTQT9BVzREUklWRV9UWVBFQEBQRUJWV1NUUklOR0BAQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIFdTVFJJTkcgKiBfX3B0cjY0IF9fY2RlY2wgU1lTVEVNOjpRdWVyeUVudmlyb25tZW50VmFyaWFibGUoY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQpDQorP1F1ZXJ5RW52aXJvbm1lbnRWYXJpYWJsZUBTWVNURU1AQFNBUEVBVldTVFJJTkdAQFBFQlYyQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBGU05fRklMRSAqIF9fcHRyNjQgX19jZGVjbCBTWVNURU06OlF1ZXJ5RmlsZShjbGFzcyBQQVRIIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KQ0KKz9RdWVyeUZpbGVAU1lTVEVNQEBTQVBFQVZGU05fRklMRUBAUEVCVlBBVEhAQEVQRUFFQFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gRklMRV9UWVBFICBfX2NkZWNsIFNZU1RFTTo6UXVlcnlGaWxlVHlwZShjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCkNCis/UXVlcnlGaWxlVHlwZUBTWVNURU1AQFNBP0FXNEZJTEVfVFlQRUBAUEVCVldTVFJJTkdAQEBaDQorOyBwdWJsaWM6IGNsYXNzIEFSUkFZICogX19wdHI2NCBfX2NkZWNsIEZTTl9ESVJFQ1RPUlk6OlF1ZXJ5RnNub2RlQXJyYXkoY2xhc3MgRlNOX0ZJTFRFUiAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlGc25vZGVBcnJheUBGU05fRElSRUNUT1JZQEBRRUJBUEVBVkFSUkFZQEBQRUFWRlNOX0ZJTFRFUkBAQFoNCis7IHB1YmxpYzogY2xhc3MgUEFUSCAqIF9fcHRyNjQgX19jZGVjbCBQQVRIOjpRdWVyeUZ1bGxQYXRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlGdWxsUGF0aEBQQVRIQEBRRUJBUEVBVjFAWFoNCis7IHB1YmxpYzogY2xhc3MgV1NUUklORyAqIF9fcHRyNjQgX19jZGVjbCBQQVRIOjpRdWVyeUZ1bGxQYXRoU3RyaW5nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlGdWxsUGF0aFN0cmluZ0BQQVRIQEBRRUJBUEVBVldTVFJJTkdAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFdTVFJJTkcgKiBfX3B0cjY0IF9fY2RlY2wgUEFUSDo6UXVlcnlHdWlkU3RyaW5nKGNsYXNzIFdTVFJJTkcgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LGNsYXNzIFdTVFJJTkcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5R3VpZFN0cmluZ0BQQVRIQEBRRUFBUEVBVldTVFJJTkdAQFBFQVYyQFBFQUUwQFoNCis7IHB1YmxpYzogY2xhc3MgV1NUUklORyAqIF9fcHRyNjQgX19jZGVjbCBBUkdVTUVOVF9MRVhFTUlaRVI6OlF1ZXJ5SW52YWxpZEFyZ3VtZW50KHZvaWQpIF9fcHRyNjQNCis/UXVlcnlJbnZhbGlkQXJndW1lbnRAQVJHVU1FTlRfTEVYRU1JWkVSQEBRRUFBUEVBVldTVFJJTkdAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgSVRFUkFUT1IgKiBfX3B0cjY0IF9fY2RlY2wgQVJSQVk6OlF1ZXJ5SXRlcmF0b3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUl0ZXJhdG9yQEFSUkFZQEBVRUJBUEVBVklURVJBVE9SQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIElURVJBVE9SICogX19wdHI2NCBfX2NkZWNsIExJU1Q6OlF1ZXJ5SXRlcmF0b3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUl0ZXJhdG9yQExJU1RAQFVFQkFQRUFWSVRFUkFUT1JAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgSVRFUkFUT1IgKiBfX3B0cjY0IF9fY2RlY2wgU09SVEVEX0xJU1Q6OlF1ZXJ5SXRlcmF0b3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUl0ZXJhdG9yQFNPUlRFRF9MSVNUQEBVRUJBUEVBVklURVJBVE9SQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgX19pbnQ2NCAoX19jZGVjbCpfX2NkZWNsIFNZU1RFTTo6UXVlcnlMaWJyYXJ5RW50cnlQb2ludChjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpKSh2b2lkKQ0KKz9RdWVyeUxpYnJhcnlFbnRyeVBvaW50QFNZU1RFTUBAU0FQNkFfSlhaUEVCVldTVFJJTkdAQDBQRUFQRUFYQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBTWVNURU06OlF1ZXJ5TG9jYWxUaW1lRnJvbVVUaW1lKGNsYXNzIFRJTUVJTkZPIGNvbnN0ICogX19wdHI2NCxjbGFzcyBUSU1FSU5GTyAqIF9fcHRyNjQpDQorP1F1ZXJ5TG9jYWxUaW1lRnJvbVVUaW1lQFNZU1RFTUBAU0FFUEVCVlRJTUVJTkZPQEBQRUFWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBTT1JURURfTElTVDo6UXVlcnlNZW1iZXJDb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TWVtYmVyQ291bnRAU09SVEVEX0xJU1RAQFVFQkFLWFoNCis7IHB1YmxpYzogY2xhc3MgUEFUSCAqIF9fcHRyNjQgX19jZGVjbCBQQVRIOjpRdWVyeU1vdW50UG9pbnRQYXRoKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlNb3VudFBvaW50UGF0aEBQQVRIQEBRRUFBUEVBVjFAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE1FU1NBR0U6OlF1ZXJ5TmV4dExvZ2dlZE1lc3NhZ2UoY2xhc3MgRlNUUklORyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlOZXh0TG9nZ2VkTWVzc2FnZUBNRVNTQUdFQEBRRUFBRVBFQVZGU1RSSU5HQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgV1NUUklORzo6UXVlcnlOdW1iZXIobG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TnVtYmVyQFdTVFJJTkdAQFFFQkFFUEVBSktLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE1FU1NBR0U6OlF1ZXJ5UGFja2VkTG9nKGNsYXNzIEhNRU0gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5UGFja2VkTG9nQE1FU1NBR0VAQFFFQUFFUEVBVkhNRU1AQFBFQUtAWg0KKzsgcHVibGljOiBjbGFzcyBQQVRIICogX19wdHI2NCBfX2NkZWNsIFBBVEg6OlF1ZXJ5UGF0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UGF0aEBQQVRIQEBRRUJBUEVBVjFAWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBCQVNFX1NZU1RFTTo6UXVlcnlSZXNvdXJjZVN0cmluZyhjbGFzcyBXU1RSSU5HICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGNoYXIgY29uc3QgKiBfX3B0cjY0LC4uLikNCis/UXVlcnlSZXNvdXJjZVN0cmluZ0BCQVNFX1NZU1RFTUBAU0FFUEVBVldTVFJJTkdAQEtQRUJEWloNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBCQVNFX1NZU1RFTTo6UXVlcnlSZXNvdXJjZVN0cmluZ1YoY2xhc3MgV1NUUklORyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxjaGFyIGNvbnN0ICogX19wdHI2NCxjaGFyICogX19wdHI2NCkNCis/UXVlcnlSZXNvdXJjZVN0cmluZ1ZAQkFTRV9TWVNURU1AQFNBRVBFQVZXU1RSSU5HQEBLUEVCRFBFQURAWg0KKzsgcHVibGljOiBjbGFzcyBXU1RSSU5HICogX19wdHI2NCBfX2NkZWNsIFBBVEg6OlF1ZXJ5Um9vdCh2b2lkKSBfX3B0cjY0DQorP1F1ZXJ5Um9vdEBQQVRIQEBRRUFBUEVBVldTVFJJTkdAQFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQlNUUklORzo6UXVlcnlTVFIodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNUUkBCU1RSSU5HQEBRRUJBUEVBREtLUEVBREtFQFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBXU1RSSU5HOjpRdWVyeVNUUih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U1RSQFdTVFJJTkdAQFFFQkFQRUFES0tQRUFES0VAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgU0NSRUVOOjpRdWVyeVNjcmVlblNpemUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2NyZWVuU2l6ZUBTQ1JFRU5AQFFFQkFYUEVBRzAwMEBaDQorOyBwdWJsaWM6IGNsYXNzIEZJTEVfU1RSRUFNICogX19wdHI2NCBfX2NkZWNsIEZTTl9GSUxFOjpRdWVyeVN0cmVhbShlbnVtIFNUUkVBTUFDQ0VTUyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1F1ZXJ5U3RyZWFtQEZTTl9GSUxFQEBRRUFBUEVBVkZJTEVfU1RSRUFNQEBXNFNUUkVBTUFDQ0VTU0BAS0BaDQorOyBwdWJsaWM6IGNsYXNzIFdTVFJJTkcgKiBfX3B0cjY0IF9fY2RlY2wgV1NUUklORzo6UXVlcnlTdHJpbmcodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U3RyaW5nQFdTVFJJTkdAQFFFQkFQRUFWMUBLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciBfX2NkZWNsIE1FU1NBR0U6OlF1ZXJ5U3RyaW5nSW5wdXQoY2xhc3MgV1NUUklORyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlTdHJpbmdJbnB1dEBNRVNTQUdFQEBVRUFBRVBFQVZXU1RSSU5HQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgUEFUSCAqIF9fcHRyNjQgX19jZGVjbCBTWVNURU06OlF1ZXJ5U3lzdGVtRGlyZWN0b3J5KHZvaWQpDQorP1F1ZXJ5U3lzdGVtRGlyZWN0b3J5QFNZU1RFTUBAU0FQRUFWUEFUSEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFRJTUVJTkZPOjpRdWVyeVRpbWUoY2xhc3MgV1NUUklORyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlUaW1lQFRJTUVJTkZPQEBRRUJBRVBFQVZXU1RSSU5HQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQ09NTV9ERVZJQ0U6OlF1ZXJ5VGltZU91dCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VGltZU91dEBDT01NX0RFVklDRUBAUUVCQUVYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgV1NUUklORyAqIF9fcHRyNjQgX19jZGVjbCBTWVNURU06OlF1ZXJ5Vm9sdW1lTGFiZWwoY2xhc3MgUEFUSCAqIF9fcHRyNjQsc3RydWN0IF9WT0xfU0VSSUFMX05VTUJFUiAqIF9fcHRyNjQpDQorP1F1ZXJ5Vm9sdW1lTGFiZWxAU1lTVEVNQEBTQVBFQVZXU1RSSU5HQEBQRUFWUEFUSEBAUEVBVV9WT0xfU0VSSUFMX05VTUJFUkBAQFoNCis7IHB1YmxpYzogY2xhc3MgUEFUSCAqIF9fcHRyNjQgX19jZGVjbCBQQVRIOjpRdWVyeVdDRXhwYW5zaW9uKGNsYXNzIFBBVEggKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5V0NFeHBhbnNpb25AUEFUSEBAUUVBQVBFQVYxQFBFQVYxQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFdTVFJJTkc6OlF1ZXJ5V1NUUih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciljb25zdCAgX19wdHI2NA0KKz9RdWVyeVdTVFJAV1NUUklOR0BAUUVCQVBFQUdLS1BFQUdLRUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgU1lTVEVNOjpRdWVyeVdpbmRvd3NFcnJvck1lc3NhZ2UodW5zaWduZWQgbG9uZyxjbGFzcyBXU1RSSU5HICogX19wdHI2NCkNCis/UXVlcnlXaW5kb3dzRXJyb3JNZXNzYWdlQFNZU1RFTUBAU0FFS1BFQVZXU1RSSU5HQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRklMRV9TVFJFQU06OlJlYWRBdCh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLF9faW50NjQsZW51bSBTRUVLT1JJR0lOLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlYWRBdEBGSUxFX1NUUkVBTUBAUUVBQUVQRUFFS19KVzRTRUVLT1JJR0lOQEBQRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFNUUkVBTTo6UmVhZExpbmUoY2xhc3MgV1NUUklORyAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9SZWFkTGluZUBTVFJFQU1AQFFFQUFFUEVBVldTVFJJTkdAQEVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgU1RSRUFNOjpSZWFkTWJMaW5lKGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcix1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlYWRNYkxpbmVAU1RSRUFNQEBRRUFBRVBFQURLUEVBS0VLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFNUUkVBTTo6UmVhZFdMaW5lKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZWFkV0xpbmVAU1RSRUFNQEBRRUFBRVBFQUdLUEVBS0VLQFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBPQkpFQ1QgKiBfX3B0cjY0IF9fY2RlY2wgQVJSQVk6OlJlbW92ZShjbGFzcyBJVEVSQVRPUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVtb3ZlQEFSUkFZQEBVRUFBUEVBVk9CSkVDVEBAUEVBVklURVJBVE9SQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIFNZU1RFTTo6UmVtb3ZlTm9kZShjbGFzcyBGU05PREUgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyKQ0KKz9SZW1vdmVOb2RlQFNZU1RFTUBAU0FFUEVBUEVBVkZTTk9ERUBARUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBXU1RSSU5HOjpSZXBsYWNlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVwbGFjZUBXU1RSSU5HQEBRRUFBRUtLUEVCVjFAS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQlNUUklORzo6UmVwbGFjZVdpdGhDaGFycyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsY2hhcix1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlcGxhY2VXaXRoQ2hhcnNAQlNUUklOR0BAUUVBQUVLS0RLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFdTVFJJTkc6OlJlcGxhY2VXaXRoQ2hhcnModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVwbGFjZVdpdGhDaGFyc0BXU1RSSU5HQEBRRUFBRUtLR0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQklUVkVDVE9SOjpSZXNldEJpdCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVzZXRCaXRAQklUVkVDVE9SQEBRRUFBWEtLQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBXU1RSSU5HOjpSZXNldENvbnZlcnNpb25zKHZvaWQpDQorP1Jlc2V0Q29udmVyc2lvbnNAV1NUUklOR0BAU0FYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE1FU1NBR0U6OlJlc2V0TG9nZ2luZ0l0ZXJhdG9yKHZvaWQpIF9fcHRyNjQNCis/UmVzZXRMb2dnaW5nSXRlcmF0b3JATUVTU0FHRUBAUUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBCRFNUUklORzo6UmVzaXplKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVzaXplQEJEU1RSSU5HQEBVRUFBRUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBEU1RSSU5HOjpSZXNpemUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZXNpemVARFNUUklOR0BAVUVBQUVLQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRlNUUklORzo6UmVzaXplKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVzaXplQEZTVFJJTkdAQFVFQUFFS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBITUVNOjpSZXNpemUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1Jlc2l6ZUBITUVNQEBRRUFBRUtLQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIFBBVEggKiBfX3B0cjY0IF9fY2RlY2wgU1lTVEVNOjpTZWFyY2hQYXRoVyhjbGFzcyBXU1RSSU5HICogX19wdHI2NCxjbGFzcyBXU1RSSU5HICogX19wdHI2NCkNCis/U2VhcmNoUGF0aFdAU1lTVEVNQEBTQVBFQVZQQVRIQEBQRUFWV1NUUklOR0BAMEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIE1FU1NBR0U6OlNlbGVjdFJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsLi4uKSBfX3B0cjY0DQorP1NlbGVjdFJlc3BvbnNlQE1FU1NBR0VAQFVFQUFLS1paDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciBfX2NkZWNsIENIS0RTS19NRVNTQUdFOjpTZXQodW5zaWduZWQgbG9uZyxlbnVtIE1FU1NBR0VfVFlQRSx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldEBDSEtEU0tfTUVTU0FHRUBAVUVBQUVLVzRNRVNTQUdFX1RZUEVAQEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBTVFJFQU1fTUVTU0FHRTo6U2V0KHVuc2lnbmVkIGxvbmcsZW51bSBNRVNTQUdFX1RZUEUsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRAU1RSRUFNX01FU1NBR0VAQFVFQUFFS1c0TUVTU0FHRV9UWVBFQEBLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEFSR1VNRU5UX0xFWEVNSVpFUjo6U2V0QWxsb3dTd2l0Y2hHbG9tbWluZyh1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP1NldEFsbG93U3dpdGNoR2xvbW1pbmdAQVJHVU1FTlRfTEVYRU1JWkVSQEBRRUFBWEVAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIFdTVFJJTkc6OlNldEFuc2lDb252ZXJzaW9ucyh2b2lkKQ0KKz9TZXRBbnNpQ29udmVyc2lvbnNAV1NUUklOR0BAU0FYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIEZTTl9GSUxURVI6OlNldEF0dHJpYnV0ZXModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0QXR0cmlidXRlc0BGU05fRklMVEVSQEBRRUFBRUtLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBDT01NX0RFVklDRTo6U2V0QmF1ZFJhdGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRCYXVkUmF0ZUBDT01NX0RFVklDRUBAUUVBQUVLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEJJVFZFQ1RPUjo6U2V0Qml0KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRCaXRAQklUVkVDVE9SQEBRRUFBWEtLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEFSR1VNRU5UX0xFWEVNSVpFUjo6U2V0Q2FzZVNlbnNpdGl2ZSh1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP1NldENhc2VTZW5zaXRpdmVAQVJHVU1FTlRfTEVYRU1JWkVSQEBRRUFBWEVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIFdTVFJJTkc6OlNldENoQXQodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRDaEF0QFdTVFJJTkdAQFFFQUFHR0tAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgT0JKRUNUOjpTZXRDbGFzc0Rlc2NyaXB0b3IoY2xhc3MgQ0xBU1NfREVTQ1JJUFRPUiBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0Q2xhc3NEZXNjcmlwdG9yQE9CSkVDVEBASUVBQVhQRUJWQ0xBU1NfREVTQ1JJUFRPUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFNDUkVFTjo6U2V0Q29kZVBhZ2UodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRDb2RlUGFnZUBTQ1JFRU5AQFFFQUFFS0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgV1NUUklORzo6U2V0Q29uc29sZUNvbnZlcnNpb25zKHZvaWQpDQorP1NldENvbnNvbGVDb252ZXJzaW9uc0BXU1RSSU5HQEBTQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQ09NTV9ERVZJQ0U6OlNldERhdGFCaXRzKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0RGF0YUJpdHNAQ09NTV9ERVZJQ0VAQFFFQUFFS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBQQVRIOjpTZXREZXZpY2UoY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RGV2aWNlQFBBVEhAQFFFQUFFUEVCVldTVFJJTkdAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciBfX2NkZWNsIE1FU1NBR0U6OlNldERvdHNPbmx5KHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/U2V0RG90c09ubHlATUVTU0FHRUBAVUVBQUVFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIENPTU1fREVWSUNFOjpTZXREdHJDb250cm9sKGVudW0gRFRSX0NPTlRST0wpIF9fcHRyNjQNCis/U2V0RHRyQ29udHJvbEBDT01NX0RFVklDRUBAUUVBQUVXNERUUl9DT05UUk9MQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRlNOX0ZJTFRFUjo6U2V0RmlsZU5hbWUoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RmlsZU5hbWVARlNOX0ZJTFRFUkBAUUVBQUVQRUJEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIEZTTl9GSUxURVI6OlNldEZpbGVOYW1lKGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEZpbGVOYW1lQEZTTl9GSUxURVJAQFFFQUFFUEVCVldTVFJJTkdAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBDT01NX0RFVklDRTo6U2V0SWRzcih1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP1NldElkc3JAQ09NTV9ERVZJQ0VAQFFFQUFFRUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBNRVNTQUdFOjpTZXRMb2dnaW5nRW5hYmxlZCh1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP1NldExvZ2dpbmdFbmFibGVkQE1FU1NBR0VAQFFFQUFYRUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBQQVRIOjpTZXROYW1lKGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldE5hbWVAUEFUSEBAUUVBQUVQRUJWV1NUUklOR0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEFSR1VNRU5UX0xFWEVNSVpFUjo6U2V0Tm9TcGNCZXR3ZWVuRHN0QW5kU3dpdGNoKHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/U2V0Tm9TcGNCZXR3ZWVuRHN0QW5kU3dpdGNoQEFSR1VNRU5UX0xFWEVNSVpFUkBAUUVBQVhFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIENPTU1fREVWSUNFOjpTZXRPY3RzKHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/U2V0T2N0c0BDT01NX0RFVklDRUBAUUVBQUVFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIENPTU1fREVWSUNFOjpTZXRPZHNyKHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/U2V0T2RzckBDT01NX0RFVklDRUBAUUVBQUVFQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBXU1RSSU5HOjpTZXRPZW1Db252ZXJzaW9ucyh2b2lkKQ0KKz9TZXRPZW1Db252ZXJzaW9uc0BXU1RSSU5HQEBTQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgU0NSRUVOOjpTZXRPdXRwdXRDb2RlUGFnZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldE91dHB1dENvZGVQYWdlQFNDUkVFTkBAUUVBQUVLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIENPTU1fREVWSUNFOjpTZXRQYXJpdHkoZW51bSBQQVJJVFkpIF9fcHRyNjQNCis/U2V0UGFyaXR5QENPTU1fREVWSUNFQEBRRUFBRVc0UEFSSVRZQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQ09NTV9ERVZJQ0U6OlNldFJ0c0NvbnRyb2woZW51bSBSVFNfQ09OVFJPTCkgX19wdHI2NA0KKz9TZXRSdHNDb250cm9sQENPTU1fREVWSUNFQEBRRUFBRVc0UlRTX0NPTlRST0xAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBCSVRWRUNUT1I6OlNldFNpemUodW5zaWduZWQgbG9uZyxlbnVtIEJJVCkgX19wdHI2NA0KKz9TZXRTaXplQEJJVFZFQ1RPUkBAUUVBQUtLVzRCSVRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBDT01NX0RFVklDRTo6U2V0U3RvcEJpdHMoZW51bSBTVE9QQklUUykgX19wdHI2NA0KKz9TZXRTdG9wQml0c0BDT01NX0RFVklDRUBAUUVBQUVXNFNUT1BCSVRTQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgRlNOX0ZJTFRFUjo6U2V0VGltZUluZm8oY2xhc3MgVElNRUlORk8gY29uc3QgKiBfX3B0cjY0LGVudW0gRlNOX1RJTUUsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/U2V0VGltZUluZm9ARlNOX0ZJTFRFUkBAUUVBQUVQRUJWVElNRUlORk9AQFc0RlNOX1RJTUVAQEdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQ09NTV9ERVZJQ0U6OlNldFRpbWVPdXQodW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9TZXRUaW1lT3V0QENPTU1fREVWSUNFQEBRRUFBRUVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQ09NTV9ERVZJQ0U6OlNldFhvbih1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP1NldFhvbkBDT01NX0RFVklDRUBAUUVBQUVFQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFdTVFJJTkc6OlNraXBXaGl0ZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP1NraXBXaGl0ZUBXU1RSSU5HQEBTQVBFQUdQRUFHQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgU1RSSU5HX0FSUkFZOjpTb3J0KHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/U29ydEBTVFJJTkdfQVJSQVlAQFVFQUFFRUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBXU1RSSU5HOjpTdHJjYXQoY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U3RyY2F0QFdTVFJJTkdAQFFFQUFFUEVCVjFAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIEJTVFJJTkc6OlN0cmNocihjaGFyLHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/U3RyY2hyQEJTVFJJTkdAQFFFQkFLREtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgV1NUUklORzo6U3RyY2hyKHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/U3RyY2hyQFdTVFJJTkdAQFFFQkFLR0tAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgV1NUUklORzo6U3RyY21wKGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1N0cmNtcEBXU1RSSU5HQEBRRUJBSlBFQlYxQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBXU1RSSU5HOjpTdHJjbXAoY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9TdHJjbXBAV1NUUklOR0BAUUVCQUpQRUJWMUBLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFdTVFJJTkc6OlN0cmNtcChjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKWNvbnN0ICBfX3B0cjY0DQorP1N0cmNtcEBXU1RSSU5HQEBRRUJBSlBFQlYxQEtLS0tAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgV1NUUklORzo6U3RyY21wKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP1N0cmNtcEBXU1RSSU5HQEBTQUhQRUFHMEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBNQlNUUjo6U3RyY21waXMoY2hhciAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQpDQorP1N0cmNtcGlzQE1CU1RSQEBTQUhQRUFEMEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBXU1RSSU5HOjpTdHJjbXBpcyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9TdHJjbXBpc0BXU1RSSU5HQEBTQUhQRUFHMEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBNQlNUUjo6U3RyY21wcyhjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCkNCis/U3RyY21wc0BNQlNUUkBAU0FIUEVBRDBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgV1NUUklORzo6U3RyY21wcyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9TdHJjbXBzQFdTVFJJTkdAQFNBSFBFQUcwQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFdTVFJJTkc6OlN0cmNzcG4oY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9TdHJjc3BuQFdTVFJJTkdAQFFFQkFLUEVCVjFAS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBNQlNUUjo6U3RyaWNtcChjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCkNCis/U3RyaWNtcEBNQlNUUkBAU0FIUEVBRDBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgV1NUUklORzo6U3RyaWNtcChjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9TdHJpY21wQFdTVFJJTkdAQFFFQkFKUEVCVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIFdTVFJJTkc6OlN0cmljbXAoY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9TdHJpY21wQFdTVFJJTkdAQFFFQkFKUEVCVjFAS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBXU1RSSU5HOjpTdHJpY21wKGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/U3RyaWNtcEBXU1RSSU5HQEBRRUJBSlBFQlYxQEtLS0tAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgV1NUUklORzo6U3RyaWNtcCh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9TdHJpY21wQFdTVFJJTkdAQFNBSFBFQUcwQFoNCis7IHB1YmxpYzogY2xhc3MgV1NUUklORyAqIF9fcHRyNjQgX19jZGVjbCBXU1RSSU5HOjpTdHJsd3IodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1N0cmx3ckBXU1RSSU5HQEBRRUFBUEVBVjFAS0tAWg0KKzsgcHVibGljOiBjbGFzcyBXU1RSSU5HICogX19wdHI2NCBfX2NkZWNsIFdTVFJJTkc6OlN0cmx3cih2b2lkKSBfX3B0cjY0DQorP1N0cmx3ckBXU1RSSU5HQEBRRUFBUEVBVjFAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIFdTVFJJTkc6OlN0cnJjaHIodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyljb25zdCAgX19wdHI2NA0KKz9TdHJyY2hyQFdTVFJJTkdAQFFFQkFLR0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgV1NUUklORzo6U3Ryc3BuKGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/U3Ryc3BuQFdTVFJJTkdAQFFFQkFLUEVCVjFAS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyICogX19wdHI2NCBfX2NkZWNsIE1CU1RSOjpTdHJzdHIoY2hhciAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQpDQorP1N0cnN0ckBNQlNUUkBAU0FQRUFEUEVBRDBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgV1NUUklORzo6U3Ryc3RyKGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1N0cnN0ckBXU1RSSU5HQEBRRUJBS1BFQlYxQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdTVFJJTkcgKiBfX3B0cjY0IF9fY2RlY2wgV1NUUklORzo6U3RydXByKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TdHJ1cHJAV1NUUklOR0BAUUVBQVBFQVYxQEtLQFoNCis7IHB1YmxpYzogY2xhc3MgV1NUUklORyAqIF9fcHRyNjQgX19jZGVjbCBXU1RSSU5HOjpTdHJ1cHIodm9pZCkgX19wdHI2NA0KKz9TdHJ1cHJAV1NUUklOR0BAUUVBQVBFQVYxQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBXU1RSSU5HOjpTeW5jTGVuZ3RoKHZvaWQpIF9fcHRyNjQNCis/U3luY0xlbmd0aEBXU1RSSU5HQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBGU05fRElSRUNUT1JZOjpUcmF2ZXJzZSh2b2lkICogX19wdHI2NCxjbGFzcyBGU05fRklMVEVSICogX19wdHI2NCxjbGFzcyBQQVRIICogX19wdHI2NCx1bnNpZ25lZCBjaGFyIChfX2NkZWNsKikodm9pZCAqIF9fcHRyNjQsY2xhc3MgRlNOT0RFICogX19wdHI2NCxjbGFzcyBQQVRIICogX19wdHI2NCkpY29uc3QgIF9fcHRyNjQNCis/VHJhdmVyc2VARlNOX0RJUkVDVE9SWUBAUUVCQUVQRUFYUEVBVkZTTl9GSUxURVJAQFBFQVZQQVRIQEBQNkFFMFBFQVZGU05PREVAQDJAWkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBXU1RSSU5HOjpUcnVuY2F0ZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1RydW5jYXRlQFdTVFJJTkdAQFFFQUFLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBQQVRIOjpUcnVuY2F0ZUJhc2Uodm9pZCkgX19wdHI2NA0KKz9UcnVuY2F0ZUJhc2VAUEFUSEBAUUVBQUVYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUEFUSDo6VHJ1bmNhdGVEZWxpbWl0ZXIodm9pZCkgX19wdHI2NA0KKz9UcnVuY2F0ZURlbGltaXRlckBQQVRIQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQQVRIOjpUcnVuY2F0ZU5hbWVBdENvbG9uKHZvaWQpIF9fcHRyNjQNCis/VHJ1bmNhdGVOYW1lQXRDb2xvbkBQQVRIQEBRRUFBWFhaDQorOyB2b2lkICogX19wdHI2NCBfX2NkZWNsIFVsaWJSZWFsbG9jKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpDQorP1VsaWJSZWFsbG9jQEBZQVBFQVhQRUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBNRVNTQUdFOjpVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9VbmxvY2tATUVTU0FHRUBAUUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBQUk9HUkFNOjpVc2FnZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1VzYWdlQFBST0dSQU1AQFVFQkFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIEZTTk9ERTo6VXNlQWx0ZXJuYXRlTmFtZSh2b2lkKSBfX3B0cjY0DQorP1VzZUFsdGVybmF0ZU5hbWVARlNOT0RFQEBRRUFBRVhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFBST0dSQU06OlZhbGlkYXRlVmVyc2lvbih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpY29uc3QgIF9fcHRyNjQNCis/VmFsaWRhdGVWZXJzaW9uQFBST0dSQU1AQFVFQkFYS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBNRVNTQUdFOjpXYWl0Rm9yVXNlclNpZ25hbCh2b2lkKSBfX3B0cjY0DQorP1dhaXRGb3JVc2VyU2lnbmFsQE1FU1NBR0VAQFVFQUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFNUUkVBTTo6V3JpdGVCeXRlKHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/V3JpdGVCeXRlQFNUUkVBTUBAUUVBQUVFQFoNCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBjaGFyICBXU1RSSU5HOjpfVXNlQW5zaUNvbnZlcnNpb25zDQorP19Vc2VBbnNpQ29udmVyc2lvbnNAV1NUUklOR0BAMEVBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBjaGFyICBXU1RSSU5HOjpfVXNlQW5zaUNvbnZlcnNpb25zUHJldg0KKz9fVXNlQW5zaUNvbnZlcnNpb25zUHJldkBXU1RSSU5HQEAwRUEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGNoYXIgIFdTVFJJTkc6Ol9Vc2VDb25zb2xlQ29udmVyc2lvbnMNCis/X1VzZUNvbnNvbGVDb252ZXJzaW9uc0BXU1RSSU5HQEAwRUEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGNoYXIgIFdTVFJJTkc6Ol9Vc2VDb25zb2xlQ29udmVyc2lvbnNQcmV2DQorP19Vc2VDb25zb2xlQ29udmVyc2lvbnNQcmV2QFdTVFJJTkdAQDBFQSBEQVRBDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvdW1hbmRsZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi91bWFuZGxnLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNjJlZmUyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdW1hbmRsZy5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFVNQU5ETEcuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFVNQU5ETEcuZGxsDQorRVhQT1JUUw0KK1VNYW5EbGcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi91bWRteGZybS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi91bWRteGZybS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTU3MmMxOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3VtZG14ZnJtLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgdW1kbXhmcm0uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHVtZG14ZnJtLmRsbA0KK0VYUE9SVFMNCitHZXRYZm9ybUluZm8NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi91bXBucG1nci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi91bXBucG1nci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjZiMDFkYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3VtcG5wbWdyLmRlZgpAQCAtMCwwICsxLDE3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHVtcG5wbWdyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSB1bXBucG1nci5kbGwNCitFWFBPUlRTDQorRGVsZXRlU2VydmljZVBsdWdQbGF5UmVnS2V5cw0KK1BOUF9HZXREZXZpY2VMaXN0DQorUE5QX0dldERldmljZUxpc3RTaXplDQorUE5QX0dldERldmljZVJlZ1Byb3ANCitQTlBfSHdQcm9mRmxhZ3MNCitQTlBfU2V0QWN0aXZlU2VydmljZQ0KK1JlZ2lzdGVyU2NtQ2FsbGJhY2sNCitSZWdpc3RlclNlcnZpY2VOb3RpZmljYXRpb24NCitTdmNFbnRyeV9QbHVnUGxheQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3VuaWltZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi91bmlpbWUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcwODE3ODAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi91bmlpbWUuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgVU5JSU1FLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBVTklJTUUuRExMDQorRVhQT1JUUw0KK1VuaVNlYXJjaFBocmFzZVByZWRpY3Rpb25BDQorVW5pU2VhcmNoUGhyYXNlUHJlZGljdGlvblcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi91bmltZG1hdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi91bmltZG1hdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGQ5ZWNjNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3VuaW1kbWF0LmRlZgpAQCAtMCwwICsxLDI3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFVOSU1ETUFULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBVTklNRE1BVC5kbGwNCitFWFBPUlRTDQorVW1Jbml0aWFsaXplTW9kZW1Ecml2ZXINCitVbURlaW5pdGlhbGl6ZU1vZGVtRHJpdmVyDQorVW1PcGVuTW9kZW0NCitVbUNsb3NlTW9kZW0NCitVbUluaXRNb2RlbQ0KK1VtTW9uaXRvck1vZGVtDQorVW1BbnN3ZXJNb2RlbQ0KK1VtRGlhbE1vZGVtDQorVW1IYW5ndXBNb2RlbQ0KK1VtR2VuZXJhdGVEaWdpdA0KK1VtU2V0U3BlYWtlclBob25lU3RhdGUNCitVbUR1cGxpY2F0ZURldmljZUhhbmRsZQ0KK1VtQWJvcnRDdXJyZW50TW9kZW1Db21tYW5kDQorVW1TZXRQYXNzdGhyb3VnaE1vZGUNCitVbUlzc3VlQ29tbWFuZA0KK1VtV2F2ZUFjdGlvbg0KK1VtTG9nU3RyaW5nQQ0KK1VtR2V0RGlhZ25vc3RpY3MNCitVbUxvZ0RpYWdub3N0aWNzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvdW5pcGxhdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi91bmlwbGF0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYTQ0YmE0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdW5pcGxhdC5kZWYKQEAgLTAsMCArMSwzNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB1bmlwbGF0LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSB1bmlwbGF0LmRsbA0KK0VYUE9SVFMNCitVbVBsYXRmb3JtSW5pdGlhbGl6ZQ0KK1VtUGxhdGZvcm1EZWluaXRpYWxpemUNCitVbmltb2RlbVJlYWRGaWxlRXgNCitVbmltb2RlbVdyaXRlRmlsZUV4DQorVW5pbW9kZW1EZXZpY2VJb0NvbnRyb2xFeA0KK1VuaW1vZGVtV2FpdENvbW1FdmVudEV4DQorVW5pbW9kZW1RdWV1ZVVzZXJBUEMNCitDcmVhdGVVbmltb2RlbVRpbWVyDQorRnJlZVVuaW1vZGVtVGltZXINCitTZXRVbmltb2RlbVRpbWVyDQorQ2FuY2VsVW5pbW9kZW1UaW1lcg0KK0NyZWF0ZU92ZXJTdHJ1Y3RQb29sDQorRGVzdHJveU92ZXJTdHJ1Y3RQb29sDQorQWxsb2NhdGVPdmVyU3RydWN0RXgNCitGcmVlT3ZlclN0cnVjdA0KK1JlaW5pdE92ZXJTdHJ1Y3QNCitTeW5jRGV2aWNlSW9Db250cm9sDQorV2lubnRJc1dvcmtzdGF0aW9uDQorVW5pbW9kZW1Ob3RpZnlUU1ANCitTdGFydE1vbml0b3JUaHJlYWQNCitTdG9wTW9uaXRvclRocmVhZA0KK01vbml0b3JIYW5kbGUNCitTdG9wTW9uaXRvcmluZ0hhbmRsZQ0KK0NhbGxCZWdpbm5pbmcNCitDYWxsRW5kaW5nDQorUmVzZXRDYWxsQ291bnQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi91bnRmcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi91bnRmcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTdlNDRkMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3VudGZzLmRlZgpAQCAtMCwwICsxLDMwMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBVTlRGUy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgVU5URlMuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIE5URlNfQVRUUklCVVRFOjpOVEZTX0FUVFJJQlVURSh2b2lkKSBfX3B0cjY0DQorPz8wTlRGU19BVFRSSUJVVEVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOVEZTX0FUVFJJQlVURV9ERUZJTklUSU9OX1RBQkxFOjpOVEZTX0FUVFJJQlVURV9ERUZJTklUSU9OX1RBQkxFKHZvaWQpIF9fcHRyNjQNCis/PzBOVEZTX0FUVFJJQlVURV9ERUZJTklUSU9OX1RBQkxFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTlRGU19BVFRSSUJVVEVfTElTVDo6TlRGU19BVFRSSUJVVEVfTElTVCh2b2lkKSBfX3B0cjY0DQorPz8wTlRGU19BVFRSSUJVVEVfTElTVEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE5URlNfQVRUUklCVVRFX1JFQ09SRDo6TlRGU19BVFRSSUJVVEVfUkVDT1JEKHZvaWQpIF9fcHRyNjQNCis/PzBOVEZTX0FUVFJJQlVURV9SRUNPUkRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOVEZTX0JBRF9DTFVTVEVSX0ZJTEU6Ok5URlNfQkFEX0NMVVNURVJfRklMRSh2b2lkKSBfX3B0cjY0DQorPz8wTlRGU19CQURfQ0xVU1RFUl9GSUxFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTlRGU19CSVRNQVA6Ok5URlNfQklUTUFQKHZvaWQpIF9fcHRyNjQNCis/PzBOVEZTX0JJVE1BUEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE5URlNfQklUTUFQX0ZJTEU6Ok5URlNfQklUTUFQX0ZJTEUodm9pZCkgX19wdHI2NA0KKz8/ME5URlNfQklUTUFQX0ZJTEVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOVEZTX0JPT1RfRklMRTo6TlRGU19CT09UX0ZJTEUodm9pZCkgX19wdHI2NA0KKz8/ME5URlNfQk9PVF9GSUxFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTlRGU19DTFVTVEVSX1JVTjo6TlRGU19DTFVTVEVSX1JVTih2b2lkKSBfX3B0cjY0DQorPz8wTlRGU19DTFVTVEVSX1JVTkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE5URlNfRVhURU5UX0xJU1Q6Ok5URlNfRVhURU5UX0xJU1Qodm9pZCkgX19wdHI2NA0KKz8/ME5URlNfRVhURU5UX0xJU1RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOVEZTX0ZJTEVfUkVDT1JEX1NFR01FTlQ6Ok5URlNfRklMRV9SRUNPUkRfU0VHTUVOVCh2b2lkKSBfX3B0cjY0DQorPz8wTlRGU19GSUxFX1JFQ09SRF9TRUdNRU5UQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTlRGU19GUlNfU1RSVUNUVVJFOjpOVEZTX0ZSU19TVFJVQ1RVUkUodm9pZCkgX19wdHI2NA0KKz8/ME5URlNfRlJTX1NUUlVDVFVSRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE5URlNfSU5ERVhfVFJFRTo6TlRGU19JTkRFWF9UUkVFKHZvaWQpIF9fcHRyNjQNCis/PzBOVEZTX0lOREVYX1RSRUVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOVEZTX0xPR19GSUxFOjpOVEZTX0xPR19GSUxFKHZvaWQpIF9fcHRyNjQNCis/PzBOVEZTX0xPR19GSUxFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTlRGU19NRlRfRklMRTo6TlRGU19NRlRfRklMRSh2b2lkKSBfX3B0cjY0DQorPz8wTlRGU19NRlRfRklMRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE5URlNfTUZUX0lORk86Ok5URlNfTUZUX0lORk8odm9pZCkgX19wdHI2NA0KKz8/ME5URlNfTUZUX0lORk9AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOVEZTX1JFRkxFQ1RFRF9NQVNURVJfRklMRV9UQUJMRTo6TlRGU19SRUZMRUNURURfTUFTVEVSX0ZJTEVfVEFCTEUodm9pZCkgX19wdHI2NA0KKz8/ME5URlNfUkVGTEVDVEVEX01BU1RFUl9GSUxFX1RBQkxFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgTlRGU19TQTo6TlRGU19TQSh2b2lkKSBfX3B0cjY0DQorPz8wTlRGU19TQUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIE5URlNfVVBDQVNFX0ZJTEU6Ok5URlNfVVBDQVNFX0ZJTEUodm9pZCkgX19wdHI2NA0KKz8/ME5URlNfVVBDQVNFX0ZJTEVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBOVEZTX1VQQ0FTRV9UQUJMRTo6TlRGU19VUENBU0VfVEFCTEUodm9pZCkgX19wdHI2NA0KKz8/ME5URlNfVVBDQVNFX1RBQkxFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUkFfUFJPQ0VTU19GSUxFOjpSQV9QUk9DRVNTX0ZJTEUodm9pZCkgX19wdHI2NA0KKz8/MFJBX1BST0NFU1NfRklMRUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFJBX1BST0NFU1NfU0Q6OlJBX1BST0NFU1NfU0Qodm9pZCkgX19wdHI2NA0KKz8/MFJBX1BST0NFU1NfU0RAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE5URlNfQVRUUklCVVRFOjp+TlRGU19BVFRSSUJVVEUodm9pZCkgX19wdHI2NA0KKz8/MU5URlNfQVRUUklCVVRFQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBOVEZTX0FUVFJJQlVURV9ERUZJTklUSU9OX1RBQkxFOjp+TlRGU19BVFRSSUJVVEVfREVGSU5JVElPTl9UQUJMRSh2b2lkKSBfX3B0cjY0DQorPz8xTlRGU19BVFRSSUJVVEVfREVGSU5JVElPTl9UQUJMRUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgTlRGU19BVFRSSUJVVEVfTElTVDo6fk5URlNfQVRUUklCVVRFX0xJU1Qodm9pZCkgX19wdHI2NA0KKz8/MU5URlNfQVRUUklCVVRFX0xJU1RAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE5URlNfQVRUUklCVVRFX1JFQ09SRDo6fk5URlNfQVRUUklCVVRFX1JFQ09SRCh2b2lkKSBfX3B0cjY0DQorPz8xTlRGU19BVFRSSUJVVEVfUkVDT1JEQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBOVEZTX0JBRF9DTFVTVEVSX0ZJTEU6On5OVEZTX0JBRF9DTFVTVEVSX0ZJTEUodm9pZCkgX19wdHI2NA0KKz8/MU5URlNfQkFEX0NMVVNURVJfRklMRUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgTlRGU19CSVRNQVA6On5OVEZTX0JJVE1BUCh2b2lkKSBfX3B0cjY0DQorPz8xTlRGU19CSVRNQVBAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE5URlNfQklUTUFQX0ZJTEU6On5OVEZTX0JJVE1BUF9GSUxFKHZvaWQpIF9fcHRyNjQNCis/PzFOVEZTX0JJVE1BUF9GSUxFQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBOVEZTX0JPT1RfRklMRTo6fk5URlNfQk9PVF9GSUxFKHZvaWQpIF9fcHRyNjQNCis/PzFOVEZTX0JPT1RfRklMRUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgTlRGU19DTFVTVEVSX1JVTjo6fk5URlNfQ0xVU1RFUl9SVU4odm9pZCkgX19wdHI2NA0KKz8/MU5URlNfQ0xVU1RFUl9SVU5AQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE5URlNfRVhURU5UX0xJU1Q6On5OVEZTX0VYVEVOVF9MSVNUKHZvaWQpIF9fcHRyNjQNCis/PzFOVEZTX0VYVEVOVF9MSVNUQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBOVEZTX0ZJTEVfUkVDT1JEX1NFR01FTlQ6On5OVEZTX0ZJTEVfUkVDT1JEX1NFR01FTlQodm9pZCkgX19wdHI2NA0KKz8/MU5URlNfRklMRV9SRUNPUkRfU0VHTUVOVEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgTlRGU19GUlNfU1RSVUNUVVJFOjp+TlRGU19GUlNfU1RSVUNUVVJFKHZvaWQpIF9fcHRyNjQNCis/PzFOVEZTX0ZSU19TVFJVQ1RVUkVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE5URlNfSU5ERVhfVFJFRTo6fk5URlNfSU5ERVhfVFJFRSh2b2lkKSBfX3B0cjY0DQorPz8xTlRGU19JTkRFWF9UUkVFQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBOVEZTX0xPR19GSUxFOjp+TlRGU19MT0dfRklMRSh2b2lkKSBfX3B0cjY0DQorPz8xTlRGU19MT0dfRklMRUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgTlRGU19NRlRfRklMRTo6fk5URlNfTUZUX0ZJTEUodm9pZCkgX19wdHI2NA0KKz8/MU5URlNfTUZUX0ZJTEVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE5URlNfTUZUX0lORk86On5OVEZTX01GVF9JTkZPKHZvaWQpIF9fcHRyNjQNCis/PzFOVEZTX01GVF9JTkZPQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBOVEZTX1JFRkxFQ1RFRF9NQVNURVJfRklMRV9UQUJMRTo6fk5URlNfUkVGTEVDVEVEX01BU1RFUl9GSUxFX1RBQkxFKHZvaWQpIF9fcHRyNjQNCis/PzFOVEZTX1JFRkxFQ1RFRF9NQVNURVJfRklMRV9UQUJMRUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgTlRGU19TQTo6fk5URlNfU0Eodm9pZCkgX19wdHI2NA0KKz8/MU5URlNfU0FAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIE5URlNfVVBDQVNFX0ZJTEU6On5OVEZTX1VQQ0FTRV9GSUxFKHZvaWQpIF9fcHRyNjQNCis/PzFOVEZTX1VQQ0FTRV9GSUxFQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBOVEZTX1VQQ0FTRV9UQUJMRTo6fk5URlNfVVBDQVNFX1RBQkxFKHZvaWQpIF9fcHRyNjQNCis/PzFOVEZTX1VQQ0FTRV9UQUJMRUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgUkFfUFJPQ0VTU19GSUxFOjp+UkFfUFJPQ0VTU19GSUxFKHZvaWQpIF9fcHRyNjQNCis/PzFSQV9QUk9DRVNTX0ZJTEVAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFJBX1BST0NFU1NfU0Q6On5SQV9QUk9DRVNTX1NEKHZvaWQpIF9fcHRyNjQNCis/PzFSQV9QUk9DRVNTX1NEQEBVRUFBQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0VYVEVOVF9MSVNUOjpBZGRFeHRlbnQoY2xhc3MgQklHX0lOVCxjbGFzcyBCSUdfSU5ULGNsYXNzIEJJR19JTlQpIF9fcHRyNjQNCis/QWRkRXh0ZW50QE5URlNfRVhURU5UX0xJU1RAQFFFQUFFVkJJR19JTlRAQDAwQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfRklMRV9SRUNPUkRfU0VHTUVOVDo6QWRkRmlsZU5hbWVBdHRyaWJ1dGUoc3RydWN0IF9GSUxFX05BTUUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEZpbGVOYW1lQXR0cmlidXRlQE5URlNfRklMRV9SRUNPUkRfU0VHTUVOVEBAUUVBQUVQRUFVX0ZJTEVfTkFNRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfRklMRV9SRUNPUkRfU0VHTUVOVDo6QWRkU2VjdXJpdHlEZXNjcmlwdG9yKGVudW0gX0NBTk5FRF9TRUNVUklUWV9UWVBFLGNsYXNzIE5URlNfQklUTUFQICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRTZWN1cml0eURlc2NyaXB0b3JATlRGU19GSUxFX1JFQ09SRF9TRUdNRU5UQEBRRUFBRVc0X0NBTk5FRF9TRUNVUklUWV9UWVBFQEBQRUFWTlRGU19CSVRNQVBAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0ZJTEVfUkVDT1JEX1NFR01FTlQ6OkFkZFNlY3VyaXR5RGVzY3JpcHRvckRhdGEoY2xhc3MgTlRGU19BVFRSSUJVVEUgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LHN0cnVjdCBfU0VDVVJJVFlfRU5UUlkgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGVudW0gX0NBTk5FRF9TRUNVUklUWV9UWVBFLGNsYXNzIE5URlNfQklUTUFQICogX19wdHI2NCx1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP0FkZFNlY3VyaXR5RGVzY3JpcHRvckRhdGFATlRGU19GSUxFX1JFQ09SRF9TRUdNRU5UQEBRRUFBRVBFQVZOVEZTX0FUVFJJQlVURUBAUEVBWFBFQVBFQVVfU0VDVVJJVFlfRU5UUllAQEtXNF9DQU5ORURfU0VDVVJJVFlfVFlQRUBAUEVBVk5URlNfQklUTUFQQEBFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfTUFTVEVSX0ZJTEVfVEFCTEU6OkFsbG9jYXRlRmlsZVJlY29yZFNlZ21lbnQoY2xhc3MgQklHX0lOVCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9BbGxvY2F0ZUZpbGVSZWNvcmRTZWdtZW50QE5URlNfTUFTVEVSX0ZJTEVfVEFCTEVAQFFFQUFFUEVBVkJJR19JTlRAQEVAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfTUZUX0lORk86OkNvbXBhcmVEdXBJbmZvKHZvaWQgKiBfX3B0cjY0LHN0cnVjdCBfRklMRV9OQU1FICogX19wdHI2NCkNCis/Q29tcGFyZUR1cEluZm9ATlRGU19NRlRfSU5GT0BAU0FFUEVBWFBFQVVfRklMRV9OQU1FQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfTUZUX0lORk86OkNvbXBhcmVGaWxlTmFtZSh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHN0cnVjdCBfRklMRV9OQU1FICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP0NvbXBhcmVGaWxlTmFtZUBOVEZTX01GVF9JTkZPQEBTQUVQRUFYS1BFQVVfRklMRV9OQU1FQEBQRUFHQFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fY2RlY2wgTlRGU19NRlRfSU5GTzo6Q29tcHV0ZUR1cEluZm9TaWduYXR1cmUoc3RydWN0IF9EVVBMSUNBVEVEX0lORk9STUFUSU9OICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCBjb25zdCkNCis/Q29tcHV0ZUR1cEluZm9TaWduYXR1cmVATlRGU19NRlRfSU5GT0BAQ0FYUEVBVV9EVVBMSUNBVEVEX0lORk9STUFUSU9OQEBRRUFFQFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fY2RlY2wgTlRGU19NRlRfSU5GTzo6Q29tcHV0ZUZpbGVOYW1lU2lnbmF0dXJlKHVuc2lnbmVkIGxvbmcsc3RydWN0IF9GSUxFX05BTUUgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IGNvbnN0KQ0KKz9Db21wdXRlRmlsZU5hbWVTaWduYXR1cmVATlRGU19NRlRfSU5GT0BAQ0FYS1BFQVVfRklMRV9OQU1FQEBRRUFFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfSU5ERVhfVFJFRTo6Q29weUl0ZXJhdG9yKGNsYXNzIE5URlNfSU5ERVhfVFJFRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weUl0ZXJhdG9yQE5URlNfSU5ERVhfVFJFRUBAUUVBQUVQRUFWMUBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19GSUxFX1JFQ09SRF9TRUdNRU5UOjpDcmVhdGUoc3RydWN0IF9TVEFOREFSRF9JTkZPUk1BVElPTiBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQpIF9fcHRyNjQNCis/Q3JlYXRlQE5URlNfRklMRV9SRUNPUkRfU0VHTUVOVEBAUUVBQUVQRUJVX1NUQU5EQVJEX0lORk9STUFUSU9OQEBHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfTE9HX0ZJTEU6OkNyZWF0ZURhdGFBdHRyaWJ1dGUoY2xhc3MgQklHX0lOVCx1bnNpZ25lZCBsb25nLGNsYXNzIE5URlNfQklUTUFQICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVEYXRhQXR0cmlidXRlQE5URlNfTE9HX0ZJTEVAQFFFQUFFVkJJR19JTlRAQEtQRUFWTlRGU19CSVRNQVBAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX1NBOjpDcmVhdGVFbGVtZW50YXJ5U3RydWN0dXJlcyhjbGFzcyBOVEZTX0JJVE1BUCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBOVU1CRVJfU0VUIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIsY2xhc3MgTUVTU0FHRSAqIF9fcHRyNjQsc3RydWN0IEJJT1NfUEFSQU1FVEVSX0JMT0NLICogX19wdHI2NCxjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVFbGVtZW50YXJ5U3RydWN0dXJlc0BOVEZTX1NBQEBRRUFBRVBFQVZOVEZTX0JJVE1BUEBAS0tLS1BFQlZOVU1CRVJfU0VUQEBFRVBFQVZNRVNTQUdFQEBQRUFVQklPU19QQVJBTUVURVJfQkxPQ0tAQFBFQlZXU1RSSU5HQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19NQVNURVJfRklMRV9UQUJMRTo6RXh0ZW5kKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RXh0ZW5kQE5URlNfTUFTVEVSX0ZJTEVfVEFCTEVAQFFFQUFFS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0ZJTEVfUkVDT1JEX1NFR01FTlQ6OkZsdXNoKGNsYXNzIE5URlNfQklUTUFQICogX19wdHI2NCxjbGFzcyBOVEZTX0lOREVYX1RSRUUgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/Rmx1c2hATlRGU19GSUxFX1JFQ09SRF9TRUdNRU5UQEBRRUFBRVBFQVZOVEZTX0JJVE1BUEBAUEVBVk5URlNfSU5ERVhfVFJFRUBARUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX01GVF9GSUxFOjpGbHVzaCh2b2lkKSBfX3B0cjY0DQorP0ZsdXNoQE5URlNfTUZUX0ZJTEVAQFFFQUFFWFoNCis7IHB1YmxpYzogc3RydWN0IF9JTkRFWF9FTlRSWSBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBOVEZTX0lOREVYX1RSRUU6OkdldE5leHQodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9HZXROZXh0QE5URlNfSU5ERVhfVFJFRUBAUUVBQVBFQlVfSU5ERVhfRU5UUllAQFBFQUtQRUFFRUBaDQorOyBwdWJsaWM6IHN0cnVjdCBfQVRUUklCVVRFX0xJU1RfRU5UUlkgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTlRGU19BVFRSSUJVVEVfTElTVDo6R2V0TmV4dEF0dHJpYnV0ZUxpc3RFbnRyeShzdHJ1Y3QgX0FUVFJJQlVURV9MSVNUX0VOVFJZIGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9HZXROZXh0QXR0cmlidXRlTGlzdEVudHJ5QE5URlNfQVRUUklCVVRFX0xJU1RAQFFFQkFQRUJVX0FUVFJJQlVURV9MSVNUX0VOVFJZQEBQRUJVMkBAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIE5URlNfRlJTX1NUUlVDVFVSRTo6R2V0TmV4dEF0dHJpYnV0ZVJlY29yZCh2b2lkIGNvbnN0ICogX19wdHI2NCxjbGFzcyBNRVNTQUdFICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXROZXh0QXR0cmlidXRlUmVjb3JkQE5URlNfRlJTX1NUUlVDVFVSRUBAUUVBQVBFQVhQRUJYUEVBVk1FU1NBR0VAQFBFQUVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19BVFRSSUJVVEU6OkluaXRpYWxpemUoY2xhc3MgTE9HX0lPX0RQX0RSSVZFICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGNsYXNzIE5URlNfRVhURU5UX0xJU1QgY29uc3QgKiBfX3B0cjY0LGNsYXNzIEJJR19JTlQsY2xhc3MgQklHX0lOVCx1bnNpZ25lZCBsb25nLGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP0luaXRpYWxpemVATlRGU19BVFRSSUJVVEVAQFFFQUFFUEVBVkxPR19JT19EUF9EUklWRUBAS1BFQlZOVEZTX0VYVEVOVF9MSVNUQEBWQklHX0lOVEBAMktQRUJWV1NUUklOR0BAR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0FUVFJJQlVURTo6SW5pdGlhbGl6ZShjbGFzcyBMT0dfSU9fRFBfRFJJVkUgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdm9pZCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP0luaXRpYWxpemVATlRGU19BVFRSSUJVVEVAQFFFQUFFUEVBVkxPR19JT19EUF9EUklWRUBAS1BFQlhLS1BFQlZXU1RSSU5HQEBHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfQVRUUklCVVRFX0RFRklOSVRJT05fVEFCTEU6OkluaXRpYWxpemUoY2xhc3MgTlRGU19NQVNURVJfRklMRV9UQUJMRSAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9Jbml0aWFsaXplQE5URlNfQVRUUklCVVRFX0RFRklOSVRJT05fVEFCTEVAQFFFQUFFUEVBVk5URlNfTUFTVEVSX0ZJTEVfVEFCTEVAQEVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19BVFRSSUJVVEVfUkVDT1JEOjpJbml0aWFsaXplKGNsYXNzIElPX0RQX0RSSVZFICogX19wdHI2NCx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQE5URlNfQVRUUklCVVRFX1JFQ09SREBAUUVBQUVQRUFWSU9fRFBfRFJJVkVAQFBFQVhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19CQURfQ0xVU1RFUl9GSUxFOjpJbml0aWFsaXplKGNsYXNzIE5URlNfTUFTVEVSX0ZJTEVfVEFCTEUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVATlRGU19CQURfQ0xVU1RFUl9GSUxFQEBRRUFBRVBFQVZOVEZTX01BU1RFUl9GSUxFX1RBQkxFQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19CSVRNQVA6OkluaXRpYWxpemUoY2xhc3MgQklHX0lOVCx1bnNpZ25lZCBjaGFyLGNsYXNzIExPR19JT19EUF9EUklWRSAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Jbml0aWFsaXplQE5URlNfQklUTUFQQEBRRUFBRVZCSUdfSU5UQEBFUEVBVkxPR19JT19EUF9EUklWRUBAS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0JJVE1BUF9GSUxFOjpJbml0aWFsaXplKGNsYXNzIE5URlNfTUFTVEVSX0ZJTEVfVEFCTEUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVATlRGU19CSVRNQVBfRklMRUBAUUVBQUVQRUFWTlRGU19NQVNURVJfRklMRV9UQUJMRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfQk9PVF9GSUxFOjpJbml0aWFsaXplKGNsYXNzIE5URlNfTUFTVEVSX0ZJTEVfVEFCTEUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVATlRGU19CT09UX0ZJTEVAQFFFQUFFUEVBVk5URlNfTUFTVEVSX0ZJTEVfVEFCTEVAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0NMVVNURVJfUlVOOjpJbml0aWFsaXplKGNsYXNzIE1FTSAqIF9fcHRyNjQsY2xhc3MgTE9HX0lPX0RQX0RSSVZFICogX19wdHI2NCxjbGFzcyBCSUdfSU5ULHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Jbml0aWFsaXplQE5URlNfQ0xVU1RFUl9SVU5AQFFFQUFFUEVBVk1FTUBAUEVBVkxPR19JT19EUF9EUklWRUBAVkJJR19JTlRAQEtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfRVhURU5UX0xJU1Q6OkluaXRpYWxpemUoY2xhc3MgQklHX0lOVCxjbGFzcyBCSUdfSU5UKSBfX3B0cjY0DQorP0luaXRpYWxpemVATlRGU19FWFRFTlRfTElTVEBAUUVBQUVWQklHX0lOVEBAMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0ZJTEVfUkVDT1JEX1NFR01FTlQ6OkluaXRpYWxpemUoY2xhc3MgQklHX0lOVCx1bnNpZ25lZCBsb25nLGNsYXNzIE5URlNfTUFTVEVSX0ZJTEVfVEFCTEUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVATlRGU19GSUxFX1JFQ09SRF9TRUdNRU5UQEBRRUFBRVZCSUdfSU5UQEBLUEVBVk5URlNfTUFTVEVSX0ZJTEVfVEFCTEVAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0ZJTEVfUkVDT1JEX1NFR01FTlQ6OkluaXRpYWxpemUoY2xhc3MgQklHX0lOVCxjbGFzcyBOVEZTX01BU1RFUl9GSUxFX1RBQkxFICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQE5URlNfRklMRV9SRUNPUkRfU0VHTUVOVEBAUUVBQUVWQklHX0lOVEBAUEVBVk5URlNfTUFTVEVSX0ZJTEVfVEFCTEVAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0ZJTEVfUkVDT1JEX1NFR01FTlQ6OkluaXRpYWxpemUoY2xhc3MgQklHX0lOVCxjbGFzcyBOVEZTX01GVF9GSUxFICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQE5URlNfRklMRV9SRUNPUkRfU0VHTUVOVEBAUUVBQUVWQklHX0lOVEBAUEVBVk5URlNfTUZUX0ZJTEVAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0ZJTEVfUkVDT1JEX1NFR01FTlQ6OkluaXRpYWxpemUodm9pZCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQE5URlNfRklMRV9SRUNPUkRfU0VHTUVOVEBAUUVBQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19GUlNfU1RSVUNUVVJFOjpJbml0aWFsaXplKGNsYXNzIE1FTSAqIF9fcHRyNjQsY2xhc3MgTE9HX0lPX0RQX0RSSVZFICogX19wdHI2NCxjbGFzcyBCSUdfSU5ULHVuc2lnbmVkIGxvbmcsY2xhc3MgQklHX0lOVCx1bnNpZ25lZCBsb25nLGNsYXNzIE5URlNfVVBDQVNFX1RBQkxFICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0luaXRpYWxpemVATlRGU19GUlNfU1RSVUNUVVJFQEBRRUFBRVBFQVZNRU1AQFBFQVZMT0dfSU9fRFBfRFJJVkVAQFZCSUdfSU5UQEBLMktQRUFWTlRGU19VUENBU0VfVEFCTEVAQEtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19GUlNfU1RSVUNUVVJFOjpJbml0aWFsaXplKGNsYXNzIE1FTSAqIF9fcHRyNjQsY2xhc3MgTlRGU19BVFRSSUJVVEUgKiBfX3B0cjY0LGNsYXNzIEJJR19JTlQsdW5zaWduZWQgbG9uZyxjbGFzcyBCSUdfSU5ULHVuc2lnbmVkIGxvbmcsY2xhc3MgTlRGU19VUENBU0VfVEFCTEUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVATlRGU19GUlNfU1RSVUNUVVJFQEBRRUFBRVBFQVZNRU1AQFBFQVZOVEZTX0FUVFJJQlVURUBAVkJJR19JTlRAQEsyS1BFQVZOVEZTX1VQQ0FTRV9UQUJMRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfRlJTX1NUUlVDVFVSRTo6SW5pdGlhbGl6ZShjbGFzcyBNRU0gKiBfX3B0cjY0LGNsYXNzIE5URlNfQVRUUklCVVRFICogX19wdHI2NCxjbGFzcyBCSUdfSU5ULHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBCSUdfSU5ULHVuc2lnbmVkIGxvbmcsY2xhc3MgTlRGU19VUENBU0VfVEFCTEUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVATlRGU19GUlNfU1RSVUNUVVJFQEBRRUFBRVBFQVZNRU1AQFBFQVZOVEZTX0FUVFJJQlVURUBAVkJJR19JTlRAQEtLMktQRUFWTlRGU19VUENBU0VfVEFCTEVAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0lOREVYX1RSRUU6OkluaXRpYWxpemUodW5zaWduZWQgbG9uZyxjbGFzcyBMT0dfSU9fRFBfRFJJVkUgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsY2xhc3MgTlRGU19CSVRNQVAgKiBfX3B0cjY0LGNsYXNzIE5URlNfVVBDQVNFX1RBQkxFICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQE5URlNfSU5ERVhfVFJFRUBAUUVBQUVLUEVBVkxPR19JT19EUF9EUklWRUBAS1BFQVZOVEZTX0JJVE1BUEBAUEVBVk5URlNfVVBDQVNFX1RBQkxFQEBLS0tQRUJWV1NUUklOR0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfSU5ERVhfVFJFRTo6SW5pdGlhbGl6ZShjbGFzcyBMT0dfSU9fRFBfRFJJVkUgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsY2xhc3MgTlRGU19CSVRNQVAgKiBfX3B0cjY0LGNsYXNzIE5URlNfVVBDQVNFX1RBQkxFICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGNsYXNzIE5URlNfRklMRV9SRUNPUkRfU0VHTUVOVCAqIF9fcHRyNjQsY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBOVEZTX0lOREVYX1RSRUVAQFFFQUFFUEVBVkxPR19JT19EUF9EUklWRUBAS1BFQVZOVEZTX0JJVE1BUEBAUEVBVk5URlNfVVBDQVNFX1RBQkxFQEBLUEVBVk5URlNfRklMRV9SRUNPUkRfU0VHTUVOVEBAUEVCVldTVFJJTkdAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0xPR19GSUxFOjpJbml0aWFsaXplKGNsYXNzIE5URlNfTUFTVEVSX0ZJTEVfVEFCTEUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVATlRGU19MT0dfRklMRUBAUUVBQUVQRUFWTlRGU19NQVNURVJfRklMRV9UQUJMRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfTUZUX0ZJTEU6OkluaXRpYWxpemUoY2xhc3MgTE9HX0lPX0RQX0RSSVZFICogX19wdHI2NCxjbGFzcyBCSUdfSU5ULHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBCSUdfSU5ULGNsYXNzIE5URlNfQklUTUFQICogX19wdHI2NCxjbGFzcyBOVEZTX1VQQ0FTRV9UQUJMRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBOVEZTX01GVF9GSUxFQEBRRUFBRVBFQVZMT0dfSU9fRFBfRFJJVkVAQFZCSUdfSU5UQEBLSzFQRUFWTlRGU19CSVRNQVBAQFBFQVZOVEZTX1VQQ0FTRV9UQUJMRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfTUZUX0lORk86OkluaXRpYWxpemUoY2xhc3MgQklHX0lOVCxjbGFzcyBOVEZTX1VQQ0FTRV9UQUJMRSAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBOVEZTX01GVF9JTkZPQEBRRUFBRVZCSUdfSU5UQEBQRUFWTlRGU19VUENBU0VfVEFCTEVAQEVFX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19NRlRfSU5GTzo6SW5pdGlhbGl6ZSh2b2lkKSBfX3B0cjY0DQorP0luaXRpYWxpemVATlRGU19NRlRfSU5GT0BAUUVBQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19SRUZMRUNURURfTUFTVEVSX0ZJTEVfVEFCTEU6OkluaXRpYWxpemUoY2xhc3MgTlRGU19NQVNURVJfRklMRV9UQUJMRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBOVEZTX1JFRkxFQ1RFRF9NQVNURVJfRklMRV9UQUJMRUBAUUVBQUVQRUFWTlRGU19NQVNURVJfRklMRV9UQUJMRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfU0E6OkluaXRpYWxpemUoY2xhc3MgTE9HX0lPX0RQX0RSSVZFICogX19wdHI2NCxjbGFzcyBNRVNTQUdFICogX19wdHI2NCxjbGFzcyBCSUdfSU5ULGNsYXNzIEJJR19JTlQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBOVEZTX1NBQEBRRUFBRVBFQVZMT0dfSU9fRFBfRFJJVkVAQFBFQVZNRVNTQUdFQEBWQklHX0lOVEBAMkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX1VQQ0FTRV9GSUxFOjpJbml0aWFsaXplKGNsYXNzIE5URlNfTUFTVEVSX0ZJTEVfVEFCTEUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVATlRGU19VUENBU0VfRklMRUBAUUVBQUVQRUFWTlRGU19NQVNURVJfRklMRV9UQUJMRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfVVBDQVNFX1RBQkxFOjpJbml0aWFsaXplKGNsYXNzIE5URlNfQVRUUklCVVRFICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQE5URlNfVVBDQVNFX1RBQkxFQEBRRUFBRVBFQVZOVEZTX0FUVFJJQlVURUBAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBSQV9QUk9DRVNTX0ZJTEU6OkluaXRpYWxpemUoY2xhc3MgTlRGU19TQSAqIF9fcHRyNjQsY2xhc3MgQklHX0lOVCxjbGFzcyBCSUdfSU5UICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCxjbGFzcyBOVEZTX0ZSU19TVFJVQ1RVUkUgKiBfX3B0cjY0LGNsYXNzIE5URlNfRlJTX1NUUlVDVFVSRSAqIF9fcHRyNjQsY2xhc3MgSE1FTSAqIF9fcHRyNjQsY2xhc3MgSE1FTSAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQsY2xhc3MgTlRGU19BVFRSSUJVVEUgKiBfX3B0cjY0LGNsYXNzIE5URlNfVVBDQVNFX1RBQkxFICogX19wdHI2NCkNCis/SW5pdGlhbGl6ZUBSQV9QUk9DRVNTX0ZJTEVAQFNBRVBFQVZOVEZTX1NBQEBWQklHX0lOVEBAUEVBVjNAUEVBS1BFQVZOVEZTX0ZSU19TVFJVQ1RVUkVAQDRQRUFWSE1FTUBANVBFQVg2UEVBVk5URlNfQVRUUklCVVRFQEBQRUFWTlRGU19VUENBU0VfVEFCTEVAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgUkFfUFJPQ0VTU19TRDo6SW5pdGlhbGl6ZShjbGFzcyBOVEZTX1NBICogX19wdHI2NCxjbGFzcyBCSUdfSU5ULGNsYXNzIEJJR19JTlQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LGNsYXNzIE5URlNfRklMRV9SRUNPUkRfU0VHTUVOVCAqIF9fcHRyNjQsY2xhc3MgTlRGU19GSUxFX1JFQ09SRF9TRUdNRU5UICogX19wdHI2NCx2b2lkICogX19wdHI2NCx2b2lkICogX19wdHI2NCxjbGFzcyBOVEZTX01BU1RFUl9GSUxFX1RBQkxFICogX19wdHI2NCkNCis/SW5pdGlhbGl6ZUBSQV9QUk9DRVNTX1NEQEBTQUVQRUFWTlRGU19TQUBAVkJJR19JTlRAQFBFQVYzQFBFQUtQRUFWTlRGU19GSUxFX1JFQ09SRF9TRUdNRU5UQEA0UEVBWDVQRUFWTlRGU19NQVNURVJfRklMRV9UQUJMRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfSU5ERVhfVFJFRTo6SW5zZXJ0RW50cnkodW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCxzdHJ1Y3QgX01GVF9TRUdNRU5UX1JFRkVSRU5DRSx1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP0luc2VydEVudHJ5QE5URlNfSU5ERVhfVFJFRUBAUUVBQUVLUEVBWFVfTUZUX1NFR01FTlRfUkVGRVJFTkNFQEBFQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19BVFRSSUJVVEU6Okluc2VydEludG9GaWxlKGNsYXNzIE5URlNfRklMRV9SRUNPUkRfU0VHTUVOVCAqIF9fcHRyNjQsY2xhc3MgTlRGU19CSVRNQVAgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luc2VydEludG9GaWxlQE5URlNfQVRUUklCVVRFQEBVRUFBRVBFQVZOVEZTX0ZJTEVfUkVDT1JEX1NFR01FTlRAQFBFQVZOVEZTX0JJVE1BUEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfQklUTUFQOjpJc0FsbG9jYXRlZChjbGFzcyBCSUdfSU5ULGNsYXNzIEJJR19JTlQpY29uc3QgIF9fcHRyNjQNCis/SXNBbGxvY2F0ZWRATlRGU19CSVRNQVBAQFFFQkFFVkJJR19JTlRAQDBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19GSUxFX1JFQ09SRF9TRUdNRU5UOjpJc0F0dHJpYnV0ZVByZXNlbnQodW5zaWduZWQgbG9uZyxjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP0lzQXR0cmlidXRlUHJlc2VudEBOVEZTX0ZJTEVfUkVDT1JEX1NFR01FTlRAQFFFQUFFS1BFQlZXU1RSSU5HQEBFQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX1NBOjpJc0Rvc05hbWUoc3RydWN0IF9GSUxFX05BTUUgY29uc3QgKiBfX3B0cjY0KQ0KKz9Jc0Rvc05hbWVATlRGU19TQUBAU0FFUEVCVV9GSUxFX05BTUVAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0JJVE1BUDo6SXNGcmVlKGNsYXNzIEJJR19JTlQsY2xhc3MgQklHX0lOVCljb25zdCAgX19wdHI2NA0KKz9Jc0ZyZWVATlRGU19CSVRNQVBAQFFFQkFFVkJJR19JTlRAQDBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfU0E6OklzTnRmc05hbWUoc3RydWN0IF9GSUxFX05BTUUgY29uc3QgKiBfX3B0cjY0KQ0KKz9Jc050ZnNOYW1lQE5URlNfU0FAQFNBRVBFQlVfRklMRV9OQU1FQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0FUVFJJQlVURTo6TWFrZU5vbnJlc2lkZW50KGNsYXNzIE5URlNfQklUTUFQICogX19wdHI2NCkgX19wdHI2NA0KKz9NYWtlTm9ucmVzaWRlbnRATlRGU19BVFRSSUJVVEVAQFVFQUFFUEVBVk5URlNfQklUTUFQQEBAWg0KKzsgbG9uZyBfX2NkZWNsIE50ZnNVcGNhc2VDb21wYXJlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGNsYXNzIE5URlNfVVBDQVNFX1RBQkxFIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyKQ0KKz9OdGZzVXBjYXNlQ29tcGFyZUBAWUFKUEVCR0swS1BFQlZOVEZTX1VQQ0FTRV9UQUJMRUBARUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0ZJTEVfUkVDT1JEX1NFR01FTlQ6OlF1ZXJ5QXR0cmlidXRlKGNsYXNzIE5URlNfQVRUUklCVVRFICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5QXR0cmlidXRlQE5URlNfRklMRV9SRUNPUkRfU0VHTUVOVEBAUUVBQUVQRUFWTlRGU19BVFRSSUJVVEVAQFBFQUVLUEVCVldTVFJJTkdAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0ZJTEVfUkVDT1JEX1NFR01FTlQ6OlF1ZXJ5QXR0cmlidXRlQnlPcmRpbmFsKGNsYXNzIE5URlNfQVRUUklCVVRFICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UXVlcnlBdHRyaWJ1dGVCeU9yZGluYWxATlRGU19GSUxFX1JFQ09SRF9TRUdNRU5UQEBRRUFBRVBFQVZOVEZTX0FUVFJJQlVURUBAUEVBRUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfRlJTX1NUUlVDVFVSRTo6UXVlcnlBdHRyaWJ1dGVMaXN0KGNsYXNzIE5URlNfQVRUUklCVVRFX0xJU1QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5QXR0cmlidXRlTGlzdEBOVEZTX0ZSU19TVFJVQ1RVUkVAQFFFQUFFUEVBVk5URlNfQVRUUklCVVRFX0xJU1RAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0ZJTEVfUkVDT1JEX1NFR01FTlQ6OlF1ZXJ5QXR0cmlidXRlTGlzdEF0dHJpYnV0ZShjbGFzcyBOVEZTX0FUVFJJQlVURSAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlBdHRyaWJ1dGVMaXN0QXR0cmlidXRlQE5URlNfRklMRV9SRUNPUkRfU0VHTUVOVEBAUUVBQUVQRUFWTlRGU19BVFRSSUJVVEVAQFBFQUVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19TQTo6UXVlcnlDbHVzdGVyRmFjdG9yKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlDbHVzdGVyRmFjdG9yQE5URlNfU0FAQFFFQkFFWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOVEZTX1NBOjpRdWVyeURlZmF1bHRDbHVzdGVyc1BlckluZGV4QnVmZmVyKGNsYXNzIERQX0RSSVZFIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKQ0KKz9RdWVyeURlZmF1bHRDbHVzdGVyc1BlckluZGV4QnVmZmVyQE5URlNfU0FAQFNBS1BFQlZEUF9EUklWRUBAS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0lOREVYX1RSRUU6OlF1ZXJ5RW50cnkodW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHN0cnVjdCBfSU5ERVhfRU5UUlkgKiBfX3B0cjY0ICogX19wdHI2NCxjbGFzcyBOVEZTX0lOREVYX0JVRkZFUiAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5RW50cnlATlRGU19JTkRFWF9UUkVFQEBRRUFBRUtQRUFYS1BFQVBFQVVfSU5ERVhfRU5UUllAQFBFQVBFQVZOVEZTX0lOREVYX0JVRkZFUkBAUEVBRUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0VYVEVOVF9MSVNUOjpRdWVyeUV4dGVudCh1bnNpZ25lZCBsb25nLGNsYXNzIEJJR19JTlQgKiBfX3B0cjY0LGNsYXNzIEJJR19JTlQgKiBfX3B0cjY0LGNsYXNzIEJJR19JTlQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5RXh0ZW50QE5URlNfRVhURU5UX0xJU1RAQFFFQkFFS1BFQVZCSUdfSU5UQEAwMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0FUVFJJQlVURV9SRUNPUkQ6OlF1ZXJ5RXh0ZW50TGlzdChjbGFzcyBOVEZTX0VYVEVOVF9MSVNUICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUV4dGVudExpc3RATlRGU19BVFRSSUJVVEVfUkVDT1JEQEBRRUJBRVBFQVZOVEZTX0VYVEVOVF9MSVNUQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19JTkRFWF9UUkVFOjpRdWVyeUZpbGVSZWZlcmVuY2UodW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHN0cnVjdCBfTUZUX1NFR01FTlRfUkVGRVJFTkNFICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUZpbGVSZWZlcmVuY2VATlRGU19JTkRFWF9UUkVFQEBRRUFBRUtQRUFYS1BFQVVfTUZUX1NFR01FTlRfUkVGRVJFTkNFQEBQRUFFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfRklMRV9SRUNPUkRfU0VHTUVOVDo6UXVlcnlGaWxlU2l6ZXMoY2xhc3MgQklHX0lOVCAqIF9fcHRyNjQsY2xhc3MgQklHX0lOVCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlGaWxlU2l6ZXNATlRGU19GSUxFX1JFQ09SRF9TRUdNRU5UQEBRRUFBRVBFQVZCSUdfSU5UQEAwUEVBRUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19NRlRfSU5GTzo6UXVlcnlGbGFncyh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCkNCis/UXVlcnlGbGFnc0BOVEZTX01GVF9JTkZPQEBTQUVQRUFYR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX1NBOjpRdWVyeUZyc0Zyb21QYXRoKGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0LGNsYXNzIE5URlNfTUFTVEVSX0ZJTEVfVEFCTEUgKiBfX3B0cjY0LGNsYXNzIE5URlNfQklUTUFQICogX19wdHI2NCxjbGFzcyBOVEZTX0ZJTEVfUkVDT1JEX1NFR01FTlQgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5RnJzRnJvbVBhdGhATlRGU19TQUBAUUVBQUVQRUJWV1NUUklOR0BAUEVBVk5URlNfTUFTVEVSX0ZJTEVfVEFCTEVAQFBFQVZOVEZTX0JJVE1BUEBAUEVBVk5URlNfRklMRV9SRUNPUkRfU0VHTUVOVEBAUEVBRTRAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19FWFRFTlRfTElTVDo6UXVlcnlMY25Gcm9tVmNuKGNsYXNzIEJJR19JTlQsY2xhc3MgQklHX0lOVCAqIF9fcHRyNjQsY2xhc3MgQklHX0lOVCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlMY25Gcm9tVmNuQE5URlNfRVhURU5UX0xJU1RAQFFFQkFFVkJJR19JTlRAQFBFQVYyQDFAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19BVFRSSUJVVEVfUkVDT1JEOjpRdWVyeU5hbWUoY2xhc3MgV1NUUklORyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOYW1lQE5URlNfQVRUUklCVVRFX1JFQ09SREBAUUVCQUVQRUFWV1NUUklOR0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfQVRUUklCVVRFX0xJU1Q6OlF1ZXJ5TmV4dEVudHJ5KHN0cnVjdCBfQVRUUl9MSVNUX0NVUlJfRU5UUlkgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LGNsYXNzIEJJR19JTlQgKiBfX3B0cjY0LHN0cnVjdCBfTUZUX1NFR01FTlRfUkVGRVJFTkNFICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsY2xhc3MgV1NUUklORyAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlOZXh0RW50cnlATlRGU19BVFRSSUJVVEVfTElTVEBAUUVCQUVQRUFVX0FUVFJfTElTVF9DVVJSX0VOVFJZQEBQRUFLUEVBVkJJR19JTlRAQFBFQVVfTUZUX1NFR01FTlRfUkVGRVJFTkNFQEBQRUFHUEVBVldTVFJJTkdAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOVEZTX0VYVEVOVF9MSVNUOjpRdWVyeU51bWJlck9mRXh0ZW50cyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TnVtYmVyT2ZFeHRlbnRzQE5URlNfRVhURU5UX0xJU1RAQFFFQkFLWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBOVEZTX1NBOjpRdWVyeVNlY3RvcnNJbkVsZW1lbnRhcnlTdHJ1Y3R1cmVzKGNsYXNzIERQX0RSSVZFIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9RdWVyeVNlY3RvcnNJbkVsZW1lbnRhcnlTdHJ1Y3R1cmVzQE5URlNfU0FAQFNBS1BFQlZEUF9EUklWRUBAS0tLS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgX01GVF9TRUdNRU5UX1JFRkVSRU5DRSAgX19jZGVjbCBOVEZTX01GVF9JTkZPOjpRdWVyeVNlZ21lbnRSZWZlcmVuY2Uodm9pZCAqIF9fcHRyNjQpDQorP1F1ZXJ5U2VnbWVudFJlZmVyZW5jZUBOVEZTX01GVF9JTkZPQEBTQT9BVV9NRlRfU0VHTUVOVF9SRUZFUkVOQ0VAQFBFQVhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIE5URlNfU0E6OlF1ZXJ5Vm9sdW1lRmxhZ3NBbmRMYWJlbCh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCxjbGFzcyBXU1RSSU5HICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeVZvbHVtZUZsYWdzQW5kTGFiZWxATlRGU19TQUBAUUVBQUdQRUFFMDBQRUFWV1NUUklOR0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfQVRUUklCVVRFOjpSZWFkKHZvaWQgKiBfX3B0cjY0LGNsYXNzIEJJR19JTlQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWFkQE5URlNfQVRUUklCVVRFQEBRRUFBRVBFQVhWQklHX0lOVEBAS1BFQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0ZSU19TVFJVQ1RVUkU6OlJlYWQodm9pZCkgX19wdHI2NA0KKz9SZWFkQE5URlNfRlJTX1NUUlVDVFVSRUBAVUVBQUVYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX01GVF9GSUxFOjpSZWFkKHZvaWQpIF9fcHRyNjQNCis/UmVhZEBOVEZTX01GVF9GSUxFQEBVRUFBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX1NBOjpSZWFkKGNsYXNzIE1FU1NBR0UgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlYWRATlRGU19TQUBAUUVBQUVQRUFWTUVTU0FHRUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19TQTo6UmVhZCh2b2lkKSBfX3B0cjY0DQorP1JlYWRATlRGU19TQUBAVUVBQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19GUlNfU1RSVUNUVVJFOjpSZWFkQWdhaW4oY2xhc3MgQklHX0lOVCkgX19wdHI2NA0KKz9SZWFkQWdhaW5ATlRGU19GUlNfU1RSVUNUVVJFQEBRRUFBRVZCSUdfSU5UQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19BVFRSSUJVVEVfTElTVDo6UmVhZExpc3Qodm9pZCkgX19wdHI2NA0KKz9SZWFkTGlzdEBOVEZTX0FUVFJJQlVURV9MSVNUQEBRRUFBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0ZSU19TVFJVQ1RVUkU6OlJlYWROZXh0KGNsYXNzIEJJR19JTlQpIF9fcHRyNjQNCis/UmVhZE5leHRATlRGU19GUlNfU1RSVUNUVVJFQEBRRUFBRVZCSUdfSU5UQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19GUlNfU1RSVUNUVVJFOjpSZWFkU2V0KGNsYXNzIFRMSU5LICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWFkU2V0QE5URlNfRlJTX1NUUlVDVFVSRUBAUUVBQUVQRUFWVExJTktAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOVEZTX0NMVVNURVJfUlVOOjpSZWxvY2F0ZShjbGFzcyBCSUdfSU5UKSBfX3B0cjY0DQorP1JlbG9jYXRlQE5URlNfQ0xVU1RFUl9SVU5AQFFFQUFYVkJJR19JTlRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBOVEZTX0lOREVYX1RSRUU6OlJlc2V0SXRlcmF0b3Iodm9pZCkgX19wdHI2NA0KKz9SZXNldEl0ZXJhdG9yQE5URlNfSU5ERVhfVFJFRUBAUUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0FUVFJJQlVURTo6UmVzaXplKGNsYXNzIEJJR19JTlQsY2xhc3MgTlRGU19CSVRNQVAgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1Jlc2l6ZUBOVEZTX0FUVFJJQlVURUBAVUVBQUVWQklHX0lOVEBAUEVBVk5URlNfQklUTUFQQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19GUlNfU1RSVUNUVVJFOjpTYWZlUXVlcnlBdHRyaWJ1dGUodW5zaWduZWQgbG9uZyxjbGFzcyBOVEZTX0FUVFJJQlVURSAqIF9fcHRyNjQsY2xhc3MgTlRGU19BVFRSSUJVVEUgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NhZmVRdWVyeUF0dHJpYnV0ZUBOVEZTX0ZSU19TVFJVQ1RVUkVAQFFFQUFFS1BFQVZOVEZTX0FUVFJJQlVURUBAMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0lOREVYX1RSRUU6OlNhdmUoY2xhc3MgTlRGU19GSUxFX1JFQ09SRF9TRUdNRU5UICogX19wdHI2NCkgX19wdHI2NA0KKz9TYXZlQE5URlNfSU5ERVhfVFJFRUBAUUVBQUVQRUFWTlRGU19GSUxFX1JFQ09SRF9TRUdNRU5UQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBOVEZTX0FUVFJJQlVURTo6U2V0U3BhcnNlKGNsYXNzIEJJR19JTlQsY2xhc3MgTlRGU19CSVRNQVAgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFNwYXJzZUBOVEZTX0FUVFJJQlVURUBAVUVBQUVWQklHX0lOVEBAUEVBVk5URlNfQklUTUFQQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19TQTo6U2V0Vm9sdW1lRmxhZyh1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWb2x1bWVGbGFnQE5URlNfU0FAQFFFQUFFR1BFQUVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19TQTo6VGFrZUNlbnN1cyhjbGFzcyBOVEZTX01BU1RFUl9GSUxFX1RBQkxFICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHN0cnVjdCBOVEZTX0NFTlNVU19JTkZPICogX19wdHI2NCkgX19wdHI2NA0KKz9UYWtlQ2Vuc3VzQE5URlNfU0FAQFFFQUFFUEVBVk5URlNfTUFTVEVSX0ZJTEVfVEFCTEVAQEtQRUFVTlRGU19DRU5TVVNfSU5GT0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19BVFRSSUJVVEU6OldyaXRlKHZvaWQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIEJJR19JTlQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCxjbGFzcyBOVEZTX0JJVE1BUCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/V3JpdGVATlRGU19BVFRSSUJVVEVAQFVFQUFFUEVCWFZCSUdfSU5UQEBLUEVBS1BFQVZOVEZTX0JJVE1BUEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIE5URlNfQklUTUFQOjpXcml0ZShjbGFzcyBOVEZTX0FUVFJJQlVURSAqIF9fcHRyNjQsY2xhc3MgTlRGU19CSVRNQVAgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1dyaXRlQE5URlNfQklUTUFQQEBRRUFBRVBFQVZOVEZTX0FUVFJJQlVURUBAUEVBVjFAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19GSUxFX1JFQ09SRF9TRUdNRU5UOjpXcml0ZSh2b2lkKSBfX3B0cjY0DQorP1dyaXRlQE5URlNfRklMRV9SRUNPUkRfU0VHTUVOVEBAVUVBQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19GUlNfU1RSVUNUVVJFOjpXcml0ZSh2b2lkKSBfX3B0cjY0DQorP1dyaXRlQE5URlNfRlJTX1NUUlVDVFVSRUBAUUVBQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgTlRGU19TQTo6V3JpdGVSZW1haW5pbmdCb290Q29kZSh2b2lkKSBfX3B0cjY0DQorP1dyaXRlUmVtYWluaW5nQm9vdENvZGVATlRGU19TQUBAUUVBQUVYWg0KK0Noa2Rzaw0KK0Noa2Rza0V4DQorRXh0ZW5kDQorRm9ybWF0DQorRm9ybWF0RXgNCitSZWNvdmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvdXBucC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi91cG5wLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41YTUzYmMzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdXBucC5kZWYKQEAgLTAsMCArMSwxNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBVUG5QLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBVUG5QLkRMTA0KK0VYUE9SVFMNCitIclJlaHlkcmF0b3JDcmVhdGVTZXJ2aWNlT2JqZWN0DQorSHJSZWh5ZHJhdG9ySW52b2tlU2VydmljZUFjdGlvbg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvdXBucGhvc3QuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdXBucGhvc3QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA4ZDg0ODMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi91cG5waG9zdC5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB1cG5waG9zdC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgdXBucGhvc3QuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorU2VydmljZU1haW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi91cG5wdWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdXBucHVpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNjBhNGI3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdXBucHVpLmRlZgpAQCAtMCwwICsxLDE1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHVwbnB1aS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgdXBucHVpLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0luc3RhbGxVUG5QVUkNCitJc1VQblBVSUluc3RhbGxlZA0KK1VuSW5zdGFsbFVQblBVSQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3VyZWcuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdXJlZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTk4OTFlNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3VyZWcuZGVmCkBAIC0wLDAgKzEsNTggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgVVJFRy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgVVJFRy5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fY2RlY2wgUkVHSVNUUlk6OlJFR0lTVFJZKHZvaWQpIF9fcHRyNjQNCis/PzBSRUdJU1RSWUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFJFR0lTVFJZX0tFWV9JTkZPOjpSRUdJU1RSWV9LRVlfSU5GTyh2b2lkKSBfX3B0cjY0DQorPz8wUkVHSVNUUllfS0VZX0lORk9AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBSRUdJU1RSWV9WQUxVRV9FTlRSWTo6UkVHSVNUUllfVkFMVUVfRU5UUlkodm9pZCkgX19wdHI2NA0KKz8/MFJFR0lTVFJZX1ZBTFVFX0VOVFJZQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBSRUdJU1RSWTo6flJFR0lTVFJZKHZvaWQpIF9fcHRyNjQNCis/PzFSRUdJU1RSWUBAVUVBQUBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgUkVHSVNUUlk6OkFkZFZhbHVlRW50cnkoZW51bSBfUFJFREVGSU5FRF9LRVksY2xhc3MgUkVHSVNUUllfS0VZX0lORk8gKiBfX3B0cjY0LGNsYXNzIFJFR0lTVFJZX1ZBTFVFX0VOVFJZIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZFZhbHVlRW50cnlAUkVHSVNUUllAQFFFQUFFVzRfUFJFREVGSU5FRF9LRVlAQFBFQVZSRUdJU1RSWV9LRVlfSU5GT0BAUEVCVlJFR0lTVFJZX1ZBTFVFX0VOVFJZQEBFUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBSRUdJU1RSWTo6Q3JlYXRlS2V5KGVudW0gX1BSRURFRklORURfS0VZLGNsYXNzIFJFR0lTVFJZX0tFWV9JTkZPICogX19wdHI2NCxjbGFzcyBSRUdJU1RSWV9LRVlfSU5GTyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9DcmVhdGVLZXlAUkVHSVNUUllAQFFFQUFFVzRfUFJFREVGSU5FRF9LRVlAQFBFQVZSRUdJU1RSWV9LRVlfSU5GT0BAMVBFQUtFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFJFR0lTVFJZOjpEZWxldGVLZXkoZW51bSBfUFJFREVGSU5FRF9LRVksY2xhc3MgUkVHSVNUUllfS0VZX0lORk8gKiBfX3B0cjY0LGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZUtleUBSRUdJU1RSWUBAUUVBQUVXNF9QUkVERUZJTkVEX0tFWUBAUEVBVlJFR0lTVFJZX0tFWV9JTkZPQEBQRUJWV1NUUklOR0BAUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBSRUdJU1RSWTo6RGVsZXRlVmFsdWVFbnRyeShlbnVtIF9QUkVERUZJTkVEX0tFWSxjbGFzcyBSRUdJU1RSWV9LRVlfSU5GTyAqIF9fcHRyNjQsY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlVmFsdWVFbnRyeUBSRUdJU1RSWUBAUUVBQUVXNF9QUkVERUZJTkVEX0tFWUBAUEVBVlJFR0lTVFJZX0tFWV9JTkZPQEBQRUJWV1NUUklOR0BAUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBSRUdJU1RSWTo6RG9lc0tleUV4aXN0KGVudW0gX1BSRURFRklORURfS0VZLGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0LGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RvZXNLZXlFeGlzdEBSRUdJU1RSWUBAUUVBQUVXNF9QUkVERUZJTkVEX0tFWUBAUEVCVldTVFJJTkdAQDFQRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFJFR0lTVFJZOjpEb2VzVmFsdWVFeGlzdChlbnVtIF9QUkVERUZJTkVEX0tFWSxjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9Eb2VzVmFsdWVFeGlzdEBSRUdJU1RSWUBAUUVBQUVXNF9QUkVERUZJTkVEX0tFWUBAUEVCVldTVFJJTkdAQDExUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBSRUdJU1RSWTo6RW5hYmxlUm9vdE5vdGlmaWNhdGlvbihlbnVtIF9QUkVERUZJTkVEX0tFWSx2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIpIF9fcHRyNjQNCis/RW5hYmxlUm9vdE5vdGlmaWNhdGlvbkBSRUdJU1RSWUBAUUVBQUVXNF9QUkVERUZJTkVEX0tFWUBAUEVBWEtFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFJFR0lTVFJZOjpJbml0aWFsaXplKGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVAUkVHSVNUUllAQFFFQUFFUEVCVldTVFJJTkdAQFBFQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgUkVHSVNUUllfS0VZX0lORk86OkluaXRpYWxpemUoY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgX1NFQ1VSSVRZX0FUVFJJQlVURVMgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0luaXRpYWxpemVAUkVHSVNUUllfS0VZX0lORk9AQFFFQUFFUEVCVldTVFJJTkdAQDBLMFBFQVVfU0VDVVJJVFlfQVRUUklCVVRFU0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFJFR0lTVFJZX1ZBTFVFX0VOVFJZOjpJbml0aWFsaXplKGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsZW51bSBfUkVHX1RZUEUsdW5zaWduZWQgY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Jbml0aWFsaXplQFJFR0lTVFJZX1ZBTFVFX0VOVFJZQEBRRUFBRVBFQlZXU1RSSU5HQEBLVzRfUkVHX1RZUEVAQFBFQkVLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFJFR0lTVFJZOjpJc0FjY2Vzc0FsbG93ZWQoZW51bSBfUFJFREVGSU5FRF9LRVksY2xhc3MgUkVHSVNUUllfS0VZX0lORk8gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNBY2Nlc3NBbGxvd2VkQFJFR0lTVFJZQEBRRUFBRVc0X1BSRURFRklORURfS0VZQEBQRUFWUkVHSVNUUllfS0VZX0lORk9AQEtQRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFJFR0lTVFJZOjpMb2FkSGl2ZShlbnVtIF9QUkVERUZJTkVEX0tFWSxjbGFzcyBSRUdJU1RSWV9LRVlfSU5GTyAqIF9fcHRyNjQsY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TG9hZEhpdmVAUkVHSVNUUllAQFFFQUFFVzRfUFJFREVGSU5FRF9LRVlAQFBFQVZSRUdJU1RSWV9LRVlfSU5GT0BAUEVCVldTVFJJTkdAQFBFQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgUkVHSVNUUlk6OlF1ZXJ5S2V5SW5mbyhlbnVtIF9QUkVERUZJTkVEX0tFWSxjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxjbGFzcyBSRUdJU1RSWV9LRVlfSU5GTyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlLZXlJbmZvQFJFR0lTVFJZQEBRRUFBRVc0X1BSRURFRklORURfS0VZQEBQRUJWV1NUUklOR0BAMVBFQVZSRUdJU1RSWV9LRVlfSU5GT0BAUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBSRUdJU1RSWTo6UXVlcnlLZXlTZWN1cml0eShlbnVtIF9QUkVERUZJTkVEX0tFWSxjbGFzcyBSRUdJU1RSWV9LRVlfSU5GTyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlLZXlTZWN1cml0eUBSRUdJU1RSWUBAUUVBQUVXNF9QUkVERUZJTkVEX0tFWUBAUEVCVlJFR0lTVFJZX0tFWV9JTkZPQEBLUEVBUEVBWFBFQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgUkVHSVNUUlk6OlF1ZXJ5U3ViS2V5c0luZm8oZW51bSBfUFJFREVGSU5FRF9LRVksY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsY2xhc3MgQVJSQVkgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5U3ViS2V5c0luZm9AUkVHSVNUUllAQFFFQUFFVzRfUFJFREVGSU5FRF9LRVlAQFBFQlZXU1RSSU5HQEAxUEVBVkFSUkFZQEBQRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFJFR0lTVFJZOjpRdWVyeVZhbHVlcyhlbnVtIF9QUkVERUZJTkVEX0tFWSxjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxjbGFzcyBXU1RSSU5HIGNvbnN0ICogX19wdHI2NCxjbGFzcyBBUlJBWSAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlWYWx1ZXNAUkVHSVNUUllAQFFFQUFFVzRfUFJFREVGSU5FRF9LRVlAQFBFQlZXU1RSSU5HQEAxUEVBVkFSUkFZQEBQRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFJFR0lTVFJZOjpSZXN0b3JlS2V5RnJvbUZpbGUoZW51bSBfUFJFREVGSU5FRF9LRVksY2xhc3MgUkVHSVNUUllfS0VZX0lORk8gKiBfX3B0cjY0LGNsYXNzIFdTVFJJTkcgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVzdG9yZUtleUZyb21GaWxlQFJFR0lTVFJZQEBRRUFBRVc0X1BSRURFRklORURfS0VZQEBQRUFWUkVHSVNUUllfS0VZX0lORk9AQFBFQlZXU1RSSU5HQEBFUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBSRUdJU1RSWTo6U2F2ZUtleVRvRmlsZShlbnVtIF9QUkVERUZJTkVEX0tFWSxjbGFzcyBSRUdJU1RSWV9LRVlfSU5GTyAqIF9fcHRyNjQsY2xhc3MgV1NUUklORyBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2F2ZUtleVRvRmlsZUBSRUdJU1RSWUBAUUVBQUVXNF9QUkVERUZJTkVEX0tFWUBAUEVBVlJFR0lTVFJZX0tFWV9JTkZPQEBQRUJWV1NUUklOR0BAUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBSRUdJU1RSWTo6U2V0S2V5U2VjdXJpdHkoZW51bSBfUFJFREVGSU5FRF9LRVksY2xhc3MgUkVHSVNUUllfS0VZX0lORk8gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz9TZXRLZXlTZWN1cml0eUBSRUdJU1RSWUBAUUVBQUVXNF9QUkVERUZJTkVEX0tFWUBAUEVBVlJFR0lTVFJZX0tFWV9JTkZPQEBLUEVBWFBFQUtFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIFJFR0lTVFJZOjpVbkxvYWRIaXZlKGVudW0gX1BSRURFRklORURfS0VZLGNsYXNzIFJFR0lTVFJZX0tFWV9JTkZPICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9VbkxvYWRIaXZlQFJFR0lTVFJZQEBRRUFBRVc0X1BSRURFRklORURfS0VZQEBQRUFWUkVHSVNUUllfS0VZX0lORk9AQFBFQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgUkVHSVNUUlk6OlVwZGF0ZUtleUluZm8oZW51bSBfUFJFREVGSU5FRF9LRVksY2xhc3MgUkVHSVNUUllfS0VZX0lORk8gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1VwZGF0ZUtleUluZm9AUkVHSVNUUllAQFFFQUFFVzRfUFJFREVGSU5FRF9LRVlAQFBFQVZSRUdJU1RSWV9LRVlfSU5GT0BAUEVBS0BaDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvdXJsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3VybC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjFmZDM4ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3VybC5kZWYKQEAgLTAsMCArMSwyOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBVUkwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFVSTC5kbGwNCitFWFBPUlRTDQorQWRkTUlNRUZpbGVUeXBlc1BTDQorQXV0b2RpYWxIb29rQ2FsbGJhY2sNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0ZpbGVQcm90b2NvbEhhbmRsZXINCitGaWxlUHJvdG9jb2xIYW5kbGVyQQ0KK0luZXRJc09mZmxpbmUNCitNSU1FQXNzb2NpYXRpb25EaWFsb2dBDQorTUlNRUFzc29jaWF0aW9uRGlhbG9nVw0KK01haWxUb1Byb3RvY29sSGFuZGxlcg0KK01haWxUb1Byb3RvY29sSGFuZGxlckENCitOZXdzUHJvdG9jb2xIYW5kbGVyDQorTmV3c1Byb3RvY29sSGFuZGxlckENCitPcGVuVVJMDQorT3BlblVSTEENCitUZWxuZXRQcm90b2NvbEhhbmRsZXINCitUZWxuZXRQcm90b2NvbEhhbmRsZXJBDQorVHJhbnNsYXRlVVJMQQ0KK1RyYW5zbGF0ZVVSTFcNCitVUkxBc3NvY2lhdGlvbkRpYWxvZ0ENCitVUkxBc3NvY2lhdGlvbkRpYWxvZ1cNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi91cmxhdXRoLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3VybGF1dGguZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM3MTMwNjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi91cmxhdXRoLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFVSTEFVVEguZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFVSTEFVVEguZGxsDQorRVhQT1JUUw0KK0dldEV4dGVuc2lvblZlcnNpb24NCitIdHRwRXh0ZW5zaW9uUHJvYw0KK1Rlcm1pbmF0ZUV4dGVuc2lvbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3VybG1vbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi91cmxtb24uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIxMjIwYzMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi91cmxtb24uZGVmCkBAIC0wLDAgKzEsOTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgdXJsbW9uLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSB1cmxtb24uZGxsDQorRVhQT1JUUw0KK0FzeW5jR2V0Q2xhc3NCaXRzDQorQXN5bmNJbnN0YWxsRGlzdHJpYnV0aW9uVW5pdA0KK0JpbmRBc3luY01vbmlrZXINCitDRExHZXRMb25nUGF0aE5hbWVBDQorQ0RMR2V0TG9uZ1BhdGhOYW1lVw0KK0NvR2V0Q2xhc3NPYmplY3RGcm9tVVJMDQorQ29JbnN0YWxsDQorQ29JbnRlcm5ldENvbWJpbmVVcmwNCitDb0ludGVybmV0Q29tcGFyZVVybA0KK0NvSW50ZXJuZXRDcmVhdGVTZWN1cml0eU1hbmFnZXINCitDb0ludGVybmV0Q3JlYXRlWm9uZU1hbmFnZXINCitDb0ludGVybmV0RmVhdHVyZVNldHRpbmdzQ2hhbmdlZA0KK0NvSW50ZXJuZXRHZXRQcm90b2NvbEZsYWdzDQorQ29JbnRlcm5ldEdldFNlY3VyaXR5VXJsDQorQ29JbnRlcm5ldEdldFNlc3Npb24NCitDb0ludGVybmV0SXNGZWF0dXJlRW5hYmxlZA0KK0NvSW50ZXJuZXRJc0ZlYXR1cmVFbmFibGVkRm9yVXJsDQorQ29JbnRlcm5ldElzRmVhdHVyZVpvbmVFbGV2YXRpb25FbmFibGVkDQorQ29JbnRlcm5ldFBhcnNlVXJsDQorQ29JbnRlcm5ldFF1ZXJ5SW5mbw0KK0NvSW50ZXJuZXRTZXRGZWF0dXJlRW5hYmxlZA0KK0NvbXBhcmVTZWN1cml0eUlkcw0KK0NvbXBhdEZsYWdzRnJvbUNsc2lkDQorQ29weUJpbmRJbmZvDQorQ29weVN0Z01lZGl1bQ0KK0NyZWF0ZUFzeW5jQmluZEN0eA0KK0NyZWF0ZUFzeW5jQmluZEN0eEV4DQorQ3JlYXRlRm9ybWF0RW51bWVyYXRvcg0KK0NyZWF0ZVVSTE1vbmlrZXINCitDcmVhdGVVUkxNb25pa2VyRXgNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbEluc3RhbGwNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFJlZ2lzdGVyU2VydmVyRXgNCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorRXh0cmFjdA0KK0ZhdWx0SW5JRUZlYXR1cmUNCitGaW5kTWVkaWFUeXBlDQorRmluZE1lZGlhVHlwZUNsYXNzDQorRmluZE1pbWVGcm9tRGF0YQ0KK0dldEFkZFNpdGVzRmlsZVVybA0KK0dldENsYXNzRmlsZU9yTWltZQ0KK0dldENsYXNzVVJMDQorR2V0Q29tcG9uZW50SURGcm9tQ0xTU1BFQw0KK0dldE1hcmtPZlRoZVdlYg0KK0dldFNvZnR3YXJlVXBkYXRlSW5mbw0KK0hsaW5rR29CYWNrDQorSGxpbmtHb0ZvcndhcmQNCitIbGlua05hdmlnYXRlTW9uaWtlcg0KK0hsaW5rTmF2aWdhdGVTdHJpbmcNCitIbGlua1NpbXBsZU5hdmlnYXRlVG9Nb25pa2VyDQorSGxpbmtTaW1wbGVOYXZpZ2F0ZVRvU3RyaW5nDQorSW5zdGFsbEZsYXNoDQorSXNBc3luY01vbmlrZXINCitJc0pJVEluUHJvZ3Jlc3MNCitJc0xvZ2dpbmdFbmFibGVkQQ0KK0lzTG9nZ2luZ0VuYWJsZWRXDQorSXNWYWxpZFVSTA0KK01rUGFyc2VEaXNwbGF5TmFtZUV4DQorT2J0YWluVXNlckFnZW50U3RyaW5nDQorUHJpdmF0ZUNvSW5zdGFsbA0KK1JlZ2lzdGVyQmluZFN0YXR1c0NhbGxiYWNrDQorUmVnaXN0ZXJGb3JtYXRFbnVtZXJhdG9yDQorUmVnaXN0ZXJNZWRpYVR5cGVDbGFzcw0KK1JlZ2lzdGVyTWVkaWFUeXBlcw0KK1JlbGVhc2VCaW5kSW5mbw0KK1Jldm9rZUJpbmRTdGF0dXNDYWxsYmFjaw0KK1Jldm9rZUZvcm1hdEVudW1lcmF0b3INCitTZXRTb2Z0d2FyZVVwZGF0ZUFkdmVydGlzZW1lbnRTdGF0ZQ0KK1Nob3dUcnVzdEFsZXJ0RGlhbG9nDQorVVJMRG93bmxvYWRBDQorVVJMRG93bmxvYWRUb0NhY2hlRmlsZUENCitVUkxEb3dubG9hZFRvQ2FjaGVGaWxlVw0KK1VSTERvd25sb2FkVG9GaWxlQQ0KK1VSTERvd25sb2FkVG9GaWxlVw0KK1VSTERvd25sb2FkVw0KK1VSTE9wZW5CbG9ja2luZ1N0cmVhbUENCitVUkxPcGVuQmxvY2tpbmdTdHJlYW1XDQorVVJMT3BlblB1bGxTdHJlYW1BDQorVVJMT3BlblB1bGxTdHJlYW1XDQorVVJMT3BlblN0cmVhbUENCitVUkxPcGVuU3RyZWFtVw0KK1VybE1rQnVpbGRWZXJzaW9uDQorVXJsTWtHZXRTZXNzaW9uT3B0aW9uDQorVXJsTWtTZXRTZXNzaW9uT3B0aW9uDQorV3JpdGVIaXRMb2dnaW5nDQorWm9uZXNSZUluaXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi91c2Jtb24uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdXNibW9uLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MWQyMWY4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdXNibW9uLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFVTQk1PTi5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgVVNCTU9OLkRMTA0KK0VYUE9SVFMNCitEbGxNYWluDQorSW5pdGlhbGl6ZVByaW50TW9uaXRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3VzZXIzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi91c2VyMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJhZTBkYjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi91c2VyMzIuZGVmCkBAIC0wLDAgKzEsNzQ2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFVTRVIzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgVVNFUjMyLmRsbA0KK0VYUE9SVFMNCitBY3RpdmF0ZUtleWJvYXJkTGF5b3V0DQorQWRqdXN0V2luZG93UmVjdA0KK0FkanVzdFdpbmRvd1JlY3RFeA0KK0FsaWduUmVjdHMNCitBbGxvd0ZvcmVncm91bmRBY3RpdmF0aW9uDQorQWxsb3dTZXRGb3JlZ3JvdW5kV2luZG93DQorQW5pbWF0ZVdpbmRvdw0KK0FueVBvcHVwDQorQXBwZW5kTWVudUENCitBcHBlbmRNZW51Vw0KK0FycmFuZ2VJY29uaWNXaW5kb3dzDQorQXR0YWNoVGhyZWFkSW5wdXQNCitCZWdpbkRlZmVyV2luZG93UG9zDQorQmVnaW5QYWludA0KK0Jsb2NrSW5wdXQNCitCcmluZ1dpbmRvd1RvVG9wDQorQnJvYWRjYXN0U3lzdGVtTWVzc2FnZQ0KK0Jyb2FkY2FzdFN5c3RlbU1lc3NhZ2VBDQorQnJvYWRjYXN0U3lzdGVtTWVzc2FnZUV4QQ0KK0Jyb2FkY2FzdFN5c3RlbU1lc3NhZ2VFeFcNCitCcm9hZGNhc3RTeXN0ZW1NZXNzYWdlVw0KK0J1aWxkUmVhc29uQXJyYXkNCitDYWxjTWVudUJhcg0KK0NhbGxNc2dGaWx0ZXINCitDYWxsTXNnRmlsdGVyQQ0KK0NhbGxNc2dGaWx0ZXJXDQorQ2FsbE5leHRIb29rRXgNCitDYWxsV2luZG93UHJvY0ENCitDYWxsV2luZG93UHJvY1cNCitDYXNjYWRlQ2hpbGRXaW5kb3dzDQorQ2FzY2FkZVdpbmRvd3MNCitDaGFuZ2VDbGlwYm9hcmRDaGFpbg0KK0NoYW5nZURpc3BsYXlTZXR0aW5nc0ENCitDaGFuZ2VEaXNwbGF5U2V0dGluZ3NFeEENCitDaGFuZ2VEaXNwbGF5U2V0dGluZ3NFeFcNCitDaGFuZ2VEaXNwbGF5U2V0dGluZ3NXDQorQ2hhbmdlTWVudUENCitDaGFuZ2VNZW51Vw0KK0NoYXJMb3dlckENCitDaGFyTG93ZXJCdWZmQQ0KK0NoYXJMb3dlckJ1ZmZXDQorQ2hhckxvd2VyVw0KK0NoYXJOZXh0QQ0KK0NoYXJOZXh0RXhBDQorQ2hhck5leHRXDQorQ2hhclByZXZBDQorQ2hhclByZXZFeEENCitDaGFyUHJldlcNCitDaGFyVG9PZW1BDQorQ2hhclRvT2VtQnVmZkENCitDaGFyVG9PZW1CdWZmVw0KK0NoYXJUb09lbVcNCitDaGFyVXBwZXJBDQorQ2hhclVwcGVyQnVmZkENCitDaGFyVXBwZXJCdWZmVw0KK0NoYXJVcHBlclcNCitDaGVja0RsZ0J1dHRvbg0KK0NoZWNrTWVudUl0ZW0NCitDaGVja01lbnVSYWRpb0l0ZW0NCitDaGVja1JhZGlvQnV0dG9uDQorQ2hpbGRXaW5kb3dGcm9tUG9pbnQNCitDaGlsZFdpbmRvd0Zyb21Qb2ludEV4DQorQ2xpSW1tU2V0SG90S2V5DQorQ2xpZW50VGhyZWFkU2V0dXANCitDbGllbnRUb1NjcmVlbg0KK0NsaXBDdXJzb3INCitDbG9zZUNsaXBib2FyZA0KK0Nsb3NlRGVza3RvcA0KK0Nsb3NlV2luZG93DQorQ2xvc2VXaW5kb3dTdGF0aW9uDQorQ29weUFjY2VsZXJhdG9yVGFibGVBDQorQ29weUFjY2VsZXJhdG9yVGFibGVXDQorQ29weUljb24NCitDb3B5SW1hZ2UNCitDb3B5UmVjdA0KK0NvdW50Q2xpcGJvYXJkRm9ybWF0cw0KK0NyZWF0ZUFjY2VsZXJhdG9yVGFibGVBDQorQ3JlYXRlQWNjZWxlcmF0b3JUYWJsZVcNCitDcmVhdGVDYXJldA0KK0NyZWF0ZUN1cnNvcg0KK0NyZWF0ZURlc2t0b3BBDQorQ3JlYXRlRGVza3RvcFcNCitDcmVhdGVEaWFsb2dJbmRpcmVjdFBhcmFtQQ0KK0NyZWF0ZURpYWxvZ0luZGlyZWN0UGFyYW1Bb3JXDQorQ3JlYXRlRGlhbG9nSW5kaXJlY3RQYXJhbVcNCitDcmVhdGVEaWFsb2dQYXJhbUENCitDcmVhdGVEaWFsb2dQYXJhbVcNCitDcmVhdGVJY29uDQorQ3JlYXRlSWNvbkZyb21SZXNvdXJjZQ0KK0NyZWF0ZUljb25Gcm9tUmVzb3VyY2VFeA0KK0NyZWF0ZUljb25JbmRpcmVjdA0KK0NyZWF0ZU1ESVdpbmRvd0ENCitDcmVhdGVNRElXaW5kb3dXDQorQ3JlYXRlTWVudQ0KK0NyZWF0ZVBvcHVwTWVudQ0KK0NyZWF0ZVN5c3RlbVRocmVhZHMNCitDcmVhdGVXaW5kb3dFeEENCitDcmVhdGVXaW5kb3dFeFcNCitDcmVhdGVXaW5kb3dTdGF0aW9uQQ0KK0NyZWF0ZVdpbmRvd1N0YXRpb25XDQorQ3NyQnJvYWRjYXN0U3lzdGVtTWVzc2FnZUV4Vw0KK0N0eEluaXRVc2VyMzINCitEZGVBYmFuZG9uVHJhbnNhY3Rpb24NCitEZGVBY2Nlc3NEYXRhDQorRGRlQWRkRGF0YQ0KK0RkZUNsaWVudFRyYW5zYWN0aW9uDQorRGRlQ21wU3RyaW5nSGFuZGxlcw0KK0RkZUNvbm5lY3QNCitEZGVDb25uZWN0TGlzdA0KK0RkZUNyZWF0ZURhdGFIYW5kbGUNCitEZGVDcmVhdGVTdHJpbmdIYW5kbGVBDQorRGRlQ3JlYXRlU3RyaW5nSGFuZGxlVw0KK0RkZURpc2Nvbm5lY3QNCitEZGVEaXNjb25uZWN0TGlzdA0KK0RkZUVuYWJsZUNhbGxiYWNrDQorRGRlRnJlZURhdGFIYW5kbGUNCitEZGVGcmVlU3RyaW5nSGFuZGxlDQorRGRlR2V0RGF0YQ0KK0RkZUdldExhc3RFcnJvcg0KK0RkZUdldFF1YWxpdHlPZlNlcnZpY2UNCitEZGVJbXBlcnNvbmF0ZUNsaWVudA0KK0RkZUluaXRpYWxpemVBDQorRGRlSW5pdGlhbGl6ZVcNCitEZGVLZWVwU3RyaW5nSGFuZGxlDQorRGRlTmFtZVNlcnZpY2UNCitEZGVQb3N0QWR2aXNlDQorRGRlUXVlcnlDb252SW5mbw0KK0RkZVF1ZXJ5TmV4dFNlcnZlcg0KK0RkZVF1ZXJ5U3RyaW5nQQ0KK0RkZVF1ZXJ5U3RyaW5nVw0KK0RkZVJlY29ubmVjdA0KK0RkZVNldFF1YWxpdHlPZlNlcnZpY2UNCitEZGVTZXRVc2VySGFuZGxlDQorRGRlVW5hY2Nlc3NEYXRhDQorRGRlVW5pbml0aWFsaXplDQorRGVmRGxnUHJvY0ENCitEZWZEbGdQcm9jVw0KK0RlZkZyYW1lUHJvY0ENCitEZWZGcmFtZVByb2NXDQorRGVmTURJQ2hpbGRQcm9jQQ0KK0RlZk1ESUNoaWxkUHJvY1cNCitEZWZSYXdJbnB1dFByb2MNCitEZWZXaW5kb3dQcm9jQQ0KK0RlZldpbmRvd1Byb2NXDQorRGVmZXJXaW5kb3dQb3MNCitEZWxldGVNZW51DQorRGVyZWdpc3RlclNoZWxsSG9va1dpbmRvdw0KK0Rlc3Ryb3lBY2NlbGVyYXRvclRhYmxlDQorRGVzdHJveUNhcmV0DQorRGVzdHJveUN1cnNvcg0KK0Rlc3Ryb3lJY29uDQorRGVzdHJveU1lbnUNCitEZXN0cm95UmVhc29ucw0KK0Rlc3Ryb3lXaW5kb3cNCitEZXZpY2VFdmVudFdvcmtlcg0KK0RpYWxvZ0JveEluZGlyZWN0UGFyYW1BDQorRGlhbG9nQm94SW5kaXJlY3RQYXJhbUFvclcNCitEaWFsb2dCb3hJbmRpcmVjdFBhcmFtVw0KK0RpYWxvZ0JveFBhcmFtQQ0KK0RpYWxvZ0JveFBhcmFtVw0KK0Rpc2FibGVQcm9jZXNzV2luZG93c0dob3N0aW5nDQorRGlzcGF0Y2hNZXNzYWdlQQ0KK0Rpc3BhdGNoTWVzc2FnZVcNCitEaXNwbGF5RXhpdFdpbmRvd3NXYXJuaW5ncw0KK0RsZ0Rpckxpc3RBDQorRGxnRGlyTGlzdENvbWJvQm94QQ0KK0RsZ0Rpckxpc3RDb21ib0JveFcNCitEbGdEaXJMaXN0Vw0KK0RsZ0RpclNlbGVjdENvbWJvQm94RXhBDQorRGxnRGlyU2VsZWN0Q29tYm9Cb3hFeFcNCitEbGdEaXJTZWxlY3RFeEENCitEbGdEaXJTZWxlY3RFeFcNCitEcmFnRGV0ZWN0DQorRHJhZ09iamVjdA0KK0RyYXdBbmltYXRlZFJlY3RzDQorRHJhd0NhcHRpb24NCitEcmF3Q2FwdGlvblRlbXBBDQorRHJhd0NhcHRpb25UZW1wVw0KK0RyYXdFZGdlDQorRHJhd0ZvY3VzUmVjdA0KK0RyYXdGcmFtZQ0KK0RyYXdGcmFtZUNvbnRyb2wNCitEcmF3SWNvbg0KK0RyYXdJY29uRXgNCitEcmF3TWVudUJhcg0KK0RyYXdNZW51QmFyVGVtcA0KK0RyYXdTdGF0ZUENCitEcmF3U3RhdGVXDQorRHJhd1RleHRBDQorRHJhd1RleHRFeEENCitEcmF3VGV4dEV4Vw0KK0RyYXdUZXh0Vw0KK0VkaXRXbmRQcm9jDQorRW1wdHlDbGlwYm9hcmQNCitFbmFibGVNZW51SXRlbQ0KK0VuYWJsZVNjcm9sbEJhcg0KK0VuYWJsZVdpbmRvdw0KK0VuZERlZmVyV2luZG93UG9zDQorRW5kRGlhbG9nDQorRW5kTWVudQ0KK0VuZFBhaW50DQorRW5kVGFzaw0KK0VudGVyUmVhZGVyTW9kZUhlbHBlcg0KK0VudW1DaGlsZFdpbmRvd3MNCitFbnVtQ2xpcGJvYXJkRm9ybWF0cw0KK0VudW1EZXNrdG9wV2luZG93cw0KK0VudW1EZXNrdG9wc0ENCitFbnVtRGVza3RvcHNXDQorRW51bURpc3BsYXlEZXZpY2VzQQ0KK0VudW1EaXNwbGF5RGV2aWNlc1cNCitFbnVtRGlzcGxheU1vbml0b3JzDQorRW51bURpc3BsYXlTZXR0aW5nc0ENCitFbnVtRGlzcGxheVNldHRpbmdzRXhBDQorRW51bURpc3BsYXlTZXR0aW5nc0V4Vw0KK0VudW1EaXNwbGF5U2V0dGluZ3NXDQorRW51bVByb3BzQQ0KK0VudW1Qcm9wc0V4QQ0KK0VudW1Qcm9wc0V4Vw0KK0VudW1Qcm9wc1cNCitFbnVtVGhyZWFkV2luZG93cw0KK0VudW1XaW5kb3dTdGF0aW9uc0ENCitFbnVtV2luZG93U3RhdGlvbnNXDQorRW51bVdpbmRvd3MNCitFcXVhbFJlY3QNCitFeGNsdWRlVXBkYXRlUmduDQorRXhpdFdpbmRvd3NFeA0KK0ZpbGxSZWN0DQorRmluZFdpbmRvd0ENCitGaW5kV2luZG93RXhBDQorRmluZFdpbmRvd0V4Vw0KK0ZpbmRXaW5kb3dXDQorRmxhc2hXaW5kb3cNCitGbGFzaFdpbmRvd0V4DQorRnJhbWVSZWN0DQorRnJlZURERWxQYXJhbQ0KK0dldEFjdGl2ZVdpbmRvdw0KK0dldEFsdFRhYkluZm8NCitHZXRBbHRUYWJJbmZvQQ0KK0dldEFsdFRhYkluZm9XDQorR2V0QW5jZXN0b3INCitHZXRBcHBDb21wYXRGbGFncw0KK0dldEFwcENvbXBhdEZsYWdzMg0KK0dldEFzeW5jS2V5U3RhdGUNCitHZXRDYXB0dXJlDQorR2V0Q2FyZXRCbGlua1RpbWUNCitHZXRDYXJldFBvcw0KK0dldENsYXNzSW5mb0ENCitHZXRDbGFzc0luZm9FeEENCitHZXRDbGFzc0luZm9FeFcNCitHZXRDbGFzc0luZm9XDQorR2V0Q2xhc3NMb25nQQ0KK0dldENsYXNzTG9uZ1B0ckENCitHZXRDbGFzc0xvbmdQdHJXDQorR2V0Q2xhc3NMb25nVw0KK0dldENsYXNzTmFtZUENCitHZXRDbGFzc05hbWVXDQorR2V0Q2xhc3NXb3JkDQorR2V0Q2xpZW50UmVjdA0KK0dldENsaXBDdXJzb3INCitHZXRDbGlwYm9hcmREYXRhDQorR2V0Q2xpcGJvYXJkRm9ybWF0TmFtZUENCitHZXRDbGlwYm9hcmRGb3JtYXROYW1lVw0KK0dldENsaXBib2FyZE93bmVyDQorR2V0Q2xpcGJvYXJkU2VxdWVuY2VOdW1iZXINCitHZXRDbGlwYm9hcmRWaWV3ZXINCitHZXRDb21ib0JveEluZm8NCitHZXRDdXJzb3INCitHZXRDdXJzb3JGcmFtZUluZm8NCitHZXRDdXJzb3JJbmZvDQorR2V0Q3Vyc29yUG9zDQorR2V0REMNCitHZXREQ0V4DQorR2V0RGVza3RvcFdpbmRvdw0KK0dldERpYWxvZ0Jhc2VVbml0cw0KK0dldERsZ0N0cmxJRA0KK0dldERsZ0l0ZW0NCitHZXREbGdJdGVtSW50DQorR2V0RGxnSXRlbVRleHRBDQorR2V0RGxnSXRlbVRleHRXDQorR2V0RG91YmxlQ2xpY2tUaW1lDQorR2V0Rm9jdXMNCitHZXRGb3JlZ3JvdW5kV2luZG93DQorR2V0R1VJVGhyZWFkSW5mbw0KK0dldEd1aVJlc291cmNlcw0KK0dldEljb25JbmZvDQorR2V0SW5wdXREZXNrdG9wDQorR2V0SW5wdXRTdGF0ZQ0KK0dldEludGVybmFsV2luZG93UG9zDQorR2V0S0JDb2RlUGFnZQ0KK0dldEtleU5hbWVUZXh0QQ0KK0dldEtleU5hbWVUZXh0Vw0KK0dldEtleVN0YXRlDQorR2V0S2V5Ym9hcmRMYXlvdXQNCitHZXRLZXlib2FyZExheW91dExpc3QNCitHZXRLZXlib2FyZExheW91dE5hbWVBDQorR2V0S2V5Ym9hcmRMYXlvdXROYW1lVw0KK0dldEtleWJvYXJkU3RhdGUNCitHZXRLZXlib2FyZFR5cGUNCitHZXRMYXN0QWN0aXZlUG9wdXANCitHZXRMYXN0SW5wdXRJbmZvDQorR2V0TGF5ZXJlZFdpbmRvd0F0dHJpYnV0ZXMNCitHZXRMaXN0Qm94SW5mbw0KK0dldE1lbnUNCitHZXRNZW51QmFySW5mbw0KK0dldE1lbnVDaGVja01hcmtEaW1lbnNpb25zDQorR2V0TWVudUNvbnRleHRIZWxwSWQNCitHZXRNZW51RGVmYXVsdEl0ZW0NCitHZXRNZW51SW5mbw0KK0dldE1lbnVJdGVtQ291bnQNCitHZXRNZW51SXRlbUlEDQorR2V0TWVudUl0ZW1JbmZvQQ0KK0dldE1lbnVJdGVtSW5mb1cNCitHZXRNZW51SXRlbVJlY3QNCitHZXRNZW51U3RhdGUNCitHZXRNZW51U3RyaW5nQQ0KK0dldE1lbnVTdHJpbmdXDQorR2V0TWVzc2FnZUENCitHZXRNZXNzYWdlRXh0cmFJbmZvDQorR2V0TWVzc2FnZVBvcw0KK0dldE1lc3NhZ2VUaW1lDQorR2V0TWVzc2FnZVcNCitHZXRNb25pdG9ySW5mb0ENCitHZXRNb25pdG9ySW5mb1cNCitHZXRNb3VzZU1vdmVQb2ludHNFeA0KK0dldE5leHREbGdHcm91cEl0ZW0NCitHZXROZXh0RGxnVGFiSXRlbQ0KK0dldE9wZW5DbGlwYm9hcmRXaW5kb3cNCitHZXRQYXJlbnQNCitHZXRQcmlvcml0eUNsaXBib2FyZEZvcm1hdA0KK0dldFByb2Nlc3NEZWZhdWx0TGF5b3V0DQorR2V0UHJvY2Vzc1dpbmRvd1N0YXRpb24NCitHZXRQcm9nbWFuV2luZG93DQorR2V0UHJvcEENCitHZXRQcm9wVw0KK0dldFF1ZXVlU3RhdHVzDQorR2V0UmF3SW5wdXRCdWZmZXINCitHZXRSYXdJbnB1dERhdGENCitHZXRSYXdJbnB1dERldmljZUluZm9BDQorR2V0UmF3SW5wdXREZXZpY2VJbmZvVw0KK0dldFJhd0lucHV0RGV2aWNlTGlzdA0KK0dldFJlYXNvblRpdGxlRnJvbVJlYXNvbkNvZGUNCitHZXRSZWdpc3RlcmVkUmF3SW5wdXREZXZpY2VzDQorR2V0U2Nyb2xsQmFySW5mbw0KK0dldFNjcm9sbEluZm8NCitHZXRTY3JvbGxQb3MNCitHZXRTY3JvbGxSYW5nZQ0KK0dldFNoZWxsV2luZG93DQorR2V0U3ViTWVudQ0KK0dldFN5c0NvbG9yDQorR2V0U3lzQ29sb3JCcnVzaA0KK0dldFN5c3RlbU1lbnUNCitHZXRTeXN0ZW1NZXRyaWNzDQorR2V0VGFiYmVkVGV4dEV4dGVudEENCitHZXRUYWJiZWRUZXh0RXh0ZW50Vw0KK0dldFRhc2ttYW5XaW5kb3cNCitHZXRUaHJlYWREZXNrdG9wDQorR2V0VGl0bGVCYXJJbmZvDQorR2V0VG9wV2luZG93DQorR2V0VXBkYXRlUmVjdA0KK0dldFVwZGF0ZVJnbg0KK0dldFVzZXJPYmplY3RJbmZvcm1hdGlvbkENCitHZXRVc2VyT2JqZWN0SW5mb3JtYXRpb25XDQorR2V0VXNlck9iamVjdFNlY3VyaXR5DQorR2V0V2luU3RhdGlvbkluZm8NCitHZXRXaW5kb3cNCitHZXRXaW5kb3dDb250ZXh0SGVscElkDQorR2V0V2luZG93REMNCitHZXRXaW5kb3dJbmZvDQorR2V0V2luZG93TG9uZ0ENCitHZXRXaW5kb3dMb25nUHRyQQ0KK0dldFdpbmRvd0xvbmdQdHJXDQorR2V0V2luZG93TG9uZ1cNCitHZXRXaW5kb3dNb2R1bGVGaWxlTmFtZQ0KK0dldFdpbmRvd01vZHVsZUZpbGVOYW1lQQ0KK0dldFdpbmRvd01vZHVsZUZpbGVOYW1lVw0KK0dldFdpbmRvd1BsYWNlbWVudA0KK0dldFdpbmRvd1JlY3QNCitHZXRXaW5kb3dSZ24NCitHZXRXaW5kb3dSZ25Cb3gNCitHZXRXaW5kb3dUZXh0QQ0KK0dldFdpbmRvd1RleHRMZW5ndGhBDQorR2V0V2luZG93VGV4dExlbmd0aFcNCitHZXRXaW5kb3dUZXh0Vw0KK0dldFdpbmRvd1RocmVhZFByb2Nlc3NJZA0KK0dldFdpbmRvd1dvcmQNCitHcmF5U3RyaW5nQQ0KK0dyYXlTdHJpbmdXDQorSGlkZUNhcmV0DQorSGlsaXRlTWVudUl0ZW0NCitJTVBHZXRJTUVBDQorSU1QR2V0SU1FVw0KK0lNUFF1ZXJ5SU1FQQ0KK0lNUFF1ZXJ5SU1FVw0KK0lNUFNldElNRUENCitJTVBTZXRJTUVXDQorSW1wZXJzb25hdGVEZGVDbGllbnRXaW5kb3cNCitJblNlbmRNZXNzYWdlDQorSW5TZW5kTWVzc2FnZUV4DQorSW5mbGF0ZVJlY3QNCitJbml0aWFsaXplTHBrSG9va3MNCitJbnNlcnRNZW51QQ0KK0luc2VydE1lbnVJdGVtQQ0KK0luc2VydE1lbnVJdGVtVw0KK0luc2VydE1lbnVXDQorSW50ZXJuYWxHZXRXaW5kb3dUZXh0DQorSW50ZXJzZWN0UmVjdA0KK0ludmFsaWRhdGVSZWN0DQorSW52YWxpZGF0ZVJnbg0KK0ludmVydFJlY3QNCitJc0NoYXJBbHBoYUENCitJc0NoYXJBbHBoYU51bWVyaWNBDQorSXNDaGFyQWxwaGFOdW1lcmljVw0KK0lzQ2hhckFscGhhVw0KK0lzQ2hhckxvd2VyQQ0KK0lzQ2hhckxvd2VyVw0KK0lzQ2hhclVwcGVyQQ0KK0lzQ2hhclVwcGVyVw0KK0lzQ2hpbGQNCitJc0NsaXBib2FyZEZvcm1hdEF2YWlsYWJsZQ0KK0lzRGlhbG9nTWVzc2FnZQ0KK0lzRGlhbG9nTWVzc2FnZUENCitJc0RpYWxvZ01lc3NhZ2VXDQorSXNEbGdCdXR0b25DaGVja2VkDQorSXNHVUlUaHJlYWQNCitJc0h1bmdBcHBXaW5kb3cNCitJc0ljb25pYw0KK0lzTWVudQ0KK0lzUHJvY2VzczE2Qml0DQorSXNSZWN0RW1wdHkNCitJc1NFVEVuYWJsZWQNCitJc1NlcnZlclNpZGVXaW5kb3cNCitJc1dpbkV2ZW50SG9va0luc3RhbGxlZA0KK0lzV2luZG93DQorSXNXaW5kb3dFbmFibGVkDQorSXNXaW5kb3dJbkRlc3Ryb3kNCitJc1dpbmRvd1VuaWNvZGUNCitJc1dpbmRvd1Zpc2libGUNCitJc1dvdzY0TWVzc2FnZQ0KK0lzWm9vbWVkDQorS2lsbFN5c3RlbVRpbWVyDQorS2lsbFRpbWVyDQorTG9hZEFjY2VsZXJhdG9yc0ENCitMb2FkQWNjZWxlcmF0b3JzVw0KK0xvYWRCaXRtYXBBDQorTG9hZEJpdG1hcFcNCitMb2FkQ3Vyc29yQQ0KK0xvYWRDdXJzb3JGcm9tRmlsZUENCitMb2FkQ3Vyc29yRnJvbUZpbGVXDQorTG9hZEN1cnNvclcNCitMb2FkSWNvbkENCitMb2FkSWNvblcNCitMb2FkSW1hZ2VBDQorTG9hZEltYWdlVw0KK0xvYWRLZXlib2FyZExheW91dEENCitMb2FkS2V5Ym9hcmRMYXlvdXRFeA0KK0xvYWRLZXlib2FyZExheW91dFcNCitMb2FkTG9jYWxGb250cw0KK0xvYWRNZW51QQ0KK0xvYWRNZW51SW5kaXJlY3RBDQorTG9hZE1lbnVJbmRpcmVjdFcNCitMb2FkTWVudVcNCitMb2FkUmVtb3RlRm9udHMNCitMb2FkU3RyaW5nQQ0KK0xvYWRTdHJpbmdXDQorTG9ja1NldEZvcmVncm91bmRXaW5kb3cNCitMb2NrV2luZG93U3RhdGlvbg0KK0xvY2tXaW5kb3dVcGRhdGUNCitMb2NrV29ya1N0YXRpb24NCitMb29rdXBJY29uSWRGcm9tRGlyZWN0b3J5DQorTG9va3VwSWNvbklkRnJvbURpcmVjdG9yeUV4DQorTUJUb1dDU0V4DQorTUJfR2V0U3RyaW5nDQorTWFwRGlhbG9nUmVjdA0KK01hcFZpcnR1YWxLZXlBDQorTWFwVmlydHVhbEtleUV4QQ0KK01hcFZpcnR1YWxLZXlFeFcNCitNYXBWaXJ0dWFsS2V5Vw0KK01hcFdpbmRvd1BvaW50cw0KK01lbnVJdGVtRnJvbVBvaW50DQorTWVudVdpbmRvd1Byb2NBDQorTWVudVdpbmRvd1Byb2NXDQorTWVzc2FnZUJlZXANCitNZXNzYWdlQm94QQ0KK01lc3NhZ2VCb3hFeEENCitNZXNzYWdlQm94RXhXDQorTWVzc2FnZUJveEluZGlyZWN0QQ0KK01lc3NhZ2VCb3hJbmRpcmVjdFcNCitNZXNzYWdlQm94VGltZW91dEENCitNZXNzYWdlQm94VGltZW91dFcNCitNZXNzYWdlQm94Vw0KK01vZGlmeU1lbnVBDQorTW9kaWZ5TWVudVcNCitNb25pdG9yRnJvbVBvaW50DQorTW9uaXRvckZyb21SZWN0DQorTW9uaXRvckZyb21XaW5kb3cNCitNb3ZlV2luZG93DQorTXNnV2FpdEZvck11bHRpcGxlT2JqZWN0cw0KK01zZ1dhaXRGb3JNdWx0aXBsZU9iamVjdHNFeA0KK05vdGlmeVdpbkV2ZW50DQorT2VtS2V5U2Nhbg0KK09lbVRvQ2hhckENCitPZW1Ub0NoYXJCdWZmQQ0KK09lbVRvQ2hhckJ1ZmZXDQorT2VtVG9DaGFyVw0KK09mZnNldFJlY3QNCitPcGVuQ2xpcGJvYXJkDQorT3BlbkRlc2t0b3BBDQorT3BlbkRlc2t0b3BXDQorT3Blbkljb24NCitPcGVuSW5wdXREZXNrdG9wDQorT3BlbldpbmRvd1N0YXRpb25BDQorT3BlbldpbmRvd1N0YXRpb25XDQorUGFja0RERWxQYXJhbQ0KK1BhaW50RGVza3RvcA0KK1BhaW50TWVudUJhcg0KK1BlZWtNZXNzYWdlQQ0KK1BlZWtNZXNzYWdlVw0KK1Bvc3RNZXNzYWdlQQ0KK1Bvc3RNZXNzYWdlVw0KK1Bvc3RRdWl0TWVzc2FnZQ0KK1Bvc3RUaHJlYWRNZXNzYWdlQQ0KK1Bvc3RUaHJlYWRNZXNzYWdlVw0KK1ByaW50V2luZG93DQorUHJpdmF0ZUV4dHJhY3RJY29uRXhBDQorUHJpdmF0ZUV4dHJhY3RJY29uRXhXDQorUHJpdmF0ZUV4dHJhY3RJY29uc0ENCitQcml2YXRlRXh0cmFjdEljb25zVw0KK1B0SW5SZWN0DQorUXVlcnlTZW5kTWVzc2FnZQ0KK1JlYWxDaGlsZFdpbmRvd0Zyb21Qb2ludA0KK1JlYWxHZXRXaW5kb3dDbGFzcw0KK1JlYWxHZXRXaW5kb3dDbGFzc0ENCitSZWFsR2V0V2luZG93Q2xhc3NXDQorUmVhc29uQ29kZU5lZWRzQnVnSUQNCitSZWFzb25Db2RlTmVlZHNDb21tZW50DQorUmVjb3JkU2h1dGRvd25SZWFzb24NCitSZWRyYXdXaW5kb3cNCitSZWdpc3RlckNsYXNzQQ0KK1JlZ2lzdGVyQ2xhc3NFeEENCitSZWdpc3RlckNsYXNzRXhXDQorUmVnaXN0ZXJDbGFzc1cNCitSZWdpc3RlckNsaXBib2FyZEZvcm1hdEENCitSZWdpc3RlckNsaXBib2FyZEZvcm1hdFcNCitSZWdpc3RlckRldmljZU5vdGlmaWNhdGlvbkENCitSZWdpc3RlckRldmljZU5vdGlmaWNhdGlvblcNCitSZWdpc3RlckhvdEtleQ0KK1JlZ2lzdGVyTG9nb25Qcm9jZXNzDQorUmVnaXN0ZXJNZXNzYWdlUHVtcEhvb2sNCitSZWdpc3RlclJhd0lucHV0RGV2aWNlcw0KK1JlZ2lzdGVyU2VydmljZXNQcm9jZXNzDQorUmVnaXN0ZXJTaGVsbEhvb2tXaW5kb3cNCitSZWdpc3RlclN5c3RlbVRocmVhZA0KK1JlZ2lzdGVyVGFza2xpc3QNCitSZWdpc3RlclVzZXJBcGlIb29rDQorUmVnaXN0ZXJXaW5kb3dNZXNzYWdlQQ0KK1JlZ2lzdGVyV2luZG93TWVzc2FnZVcNCitSZWxlYXNlQ2FwdHVyZQ0KK1JlbGVhc2VEQw0KK1JlbW92ZU1lbnUNCitSZW1vdmVQcm9wQQ0KK1JlbW92ZVByb3BXDQorUmVwbHlNZXNzYWdlDQorUmVzb2x2ZURlc2t0b3BGb3JXT1cNCitSZXVzZURERWxQYXJhbQ0KK1NjcmVlblRvQ2xpZW50DQorU2Nyb2xsQ2hpbGRyZW4NCitTY3JvbGxEQw0KK1Njcm9sbFdpbmRvdw0KK1Njcm9sbFdpbmRvd0V4DQorU2VuZERsZ0l0ZW1NZXNzYWdlQQ0KK1NlbmREbGdJdGVtTWVzc2FnZVcNCitTZW5kSU1FTWVzc2FnZUV4QQ0KK1NlbmRJTUVNZXNzYWdlRXhXDQorU2VuZElucHV0DQorU2VuZE1lc3NhZ2VBDQorU2VuZE1lc3NhZ2VDYWxsYmFja0ENCitTZW5kTWVzc2FnZUNhbGxiYWNrVw0KK1NlbmRNZXNzYWdlVGltZW91dEENCitTZW5kTWVzc2FnZVRpbWVvdXRXDQorU2VuZE1lc3NhZ2VXDQorU2VuZE5vdGlmeU1lc3NhZ2VBDQorU2VuZE5vdGlmeU1lc3NhZ2VXDQorU2V0QWN0aXZlV2luZG93DQorU2V0Q2FwdHVyZQ0KK1NldENhcmV0QmxpbmtUaW1lDQorU2V0Q2FyZXRQb3MNCitTZXRDbGFzc0xvbmdBDQorU2V0Q2xhc3NMb25nUHRyQQ0KK1NldENsYXNzTG9uZ1B0clcNCitTZXRDbGFzc0xvbmdXDQorU2V0Q2xhc3NXb3JkDQorU2V0Q2xpcGJvYXJkRGF0YQ0KK1NldENsaXBib2FyZFZpZXdlcg0KK1NldENvbnNvbGVSZXNlcnZlS2V5cw0KK1NldEN1cnNvcg0KK1NldEN1cnNvckNvbnRlbnRzDQorU2V0Q3Vyc29yUG9zDQorU2V0RGVidWdFcnJvckxldmVsDQorU2V0RGVza1dhbGxwYXBlcg0KK1NldERsZ0l0ZW1JbnQNCitTZXREbGdJdGVtVGV4dEENCitTZXREbGdJdGVtVGV4dFcNCitTZXREb3VibGVDbGlja1RpbWUNCitTZXRGb2N1cw0KK1NldEZvcmVncm91bmRXaW5kb3cNCitTZXRJbnRlcm5hbFdpbmRvd1Bvcw0KK1NldEtleWJvYXJkU3RhdGUNCitTZXRMYXN0RXJyb3JFeA0KK1NldExheWVyZWRXaW5kb3dBdHRyaWJ1dGVzDQorU2V0TG9nb25Ob3RpZnlXaW5kb3cNCitTZXRNZW51DQorU2V0TWVudUNvbnRleHRIZWxwSWQNCitTZXRNZW51RGVmYXVsdEl0ZW0NCitTZXRNZW51SW5mbw0KK1NldE1lbnVJdGVtQml0bWFwcw0KK1NldE1lbnVJdGVtSW5mb0ENCitTZXRNZW51SXRlbUluZm9XDQorU2V0TWVzc2FnZUV4dHJhSW5mbw0KK1NldE1lc3NhZ2VRdWV1ZQ0KK1NldFBhcmVudA0KK1NldFByb2Nlc3NEZWZhdWx0TGF5b3V0DQorU2V0UHJvY2Vzc1dpbmRvd1N0YXRpb24NCitTZXRQcm9nbWFuV2luZG93DQorU2V0UHJvcEENCitTZXRQcm9wVw0KK1NldFJlY3QNCitTZXRSZWN0RW1wdHkNCitTZXRTY3JvbGxJbmZvDQorU2V0U2Nyb2xsUG9zDQorU2V0U2Nyb2xsUmFuZ2UNCitTZXRTaGVsbFdpbmRvdw0KK1NldFNoZWxsV2luZG93RXgNCitTZXRTeXNDb2xvcnMNCitTZXRTeXNDb2xvcnNUZW1wDQorU2V0U3lzdGVtQ3Vyc29yDQorU2V0U3lzdGVtTWVudQ0KK1NldFN5c3RlbVRpbWVyDQorU2V0VGFza21hbldpbmRvdw0KK1NldFRocmVhZERlc2t0b3ANCitTZXRUaW1lcg0KK1NldFVzZXJPYmplY3RJbmZvcm1hdGlvbkENCitTZXRVc2VyT2JqZWN0SW5mb3JtYXRpb25XDQorU2V0VXNlck9iamVjdFNlY3VyaXR5DQorU2V0V2luRXZlbnRIb29rDQorU2V0V2luZG93Q29udGV4dEhlbHBJZA0KK1NldFdpbmRvd0xvbmdBDQorU2V0V2luZG93TG9uZ1B0ckENCitTZXRXaW5kb3dMb25nUHRyVw0KK1NldFdpbmRvd0xvbmdXDQorU2V0V2luZG93UGxhY2VtZW50DQorU2V0V2luZG93UG9zDQorU2V0V2luZG93UmduDQorU2V0V2luZG93U3RhdGlvblVzZXINCitTZXRXaW5kb3dUZXh0QQ0KK1NldFdpbmRvd1RleHRXDQorU2V0V2luZG93V29yZA0KK1NldFdpbmRvd3NIb29rQQ0KK1NldFdpbmRvd3NIb29rRXhBDQorU2V0V2luZG93c0hvb2tFeFcNCitTZXRXaW5kb3dzSG9va1cNCitTaG93Q2FyZXQNCitTaG93Q3Vyc29yDQorU2hvd093bmVkUG9wdXBzDQorU2hvd1Njcm9sbEJhcg0KK1Nob3dTdGFydEdsYXNzDQorU2hvd1dpbmRvdw0KK1Nob3dXaW5kb3dBc3luYw0KK1NvZnRNb2RhbE1lc3NhZ2VCb3gNCitTdWJ0cmFjdFJlY3QNCitTd2FwTW91c2VCdXR0b24NCitTd2l0Y2hEZXNrdG9wDQorU3dpdGNoVG9UaGlzV2luZG93DQorU3lzdGVtUGFyYW1ldGVyc0luZm9BDQorU3lzdGVtUGFyYW1ldGVyc0luZm9XDQorVGFiYmVkVGV4dE91dEENCitUYWJiZWRUZXh0T3V0Vw0KK1RpbGVDaGlsZFdpbmRvd3MNCitUaWxlV2luZG93cw0KK1RvQXNjaWkNCitUb0FzY2lpRXgNCitUb1VuaWNvZGUNCitUb1VuaWNvZGVFeA0KK1RyYWNrTW91c2VFdmVudA0KK1RyYWNrUG9wdXBNZW51DQorVHJhY2tQb3B1cE1lbnVFeA0KK1RyYW5zbGF0ZUFjY2VsZXJhdG9yDQorVHJhbnNsYXRlQWNjZWxlcmF0b3JBDQorVHJhbnNsYXRlQWNjZWxlcmF0b3JXDQorVHJhbnNsYXRlTURJU3lzQWNjZWwNCitUcmFuc2xhdGVNZXNzYWdlDQorVHJhbnNsYXRlTWVzc2FnZUV4DQorVW5ob29rV2luRXZlbnQNCitVbmhvb2tXaW5kb3dzSG9vaw0KK1VuaG9va1dpbmRvd3NIb29rRXgNCitVbmlvblJlY3QNCitVbmxvYWRLZXlib2FyZExheW91dA0KK1VubG9ja1dpbmRvd1N0YXRpb24NCitVbnBhY2tEREVsUGFyYW0NCitVbnJlZ2lzdGVyQ2xhc3NBDQorVW5yZWdpc3RlckNsYXNzVw0KK1VucmVnaXN0ZXJEZXZpY2VOb3RpZmljYXRpb24NCitVbnJlZ2lzdGVySG90S2V5DQorVW5yZWdpc3Rlck1lc3NhZ2VQdW1wSG9vaw0KK1VucmVnaXN0ZXJVc2VyQXBpSG9vaw0KK1VwZGF0ZUxheWVyZWRXaW5kb3cNCitVcGRhdGVMYXllcmVkV2luZG93SW5kaXJlY3QNCitVcGRhdGVQZXJVc2VyU3lzdGVtUGFyYW1ldGVycw0KK1VwZGF0ZVdpbmRvdw0KK1VzZXIzMkluaXRpYWxpemVJbW1FbnRyeVRhYmxlDQorVXNlckNsaWVudERsbEluaXRpYWxpemUNCitVc2VySGFuZGxlR3JhbnRBY2Nlc3MNCitVc2VyTHBrUFNNVGV4dE91dA0KK1VzZXJMcGtUYWJiZWRUZXh0T3V0DQorVXNlclJlYWxpemVQYWxldHRlDQorVXNlclJlZ2lzdGVyV293SGFuZGxlcnMNCitWYWxpZGF0ZVJlY3QNCitWYWxpZGF0ZVJnbg0KK1ZrS2V5U2NhbkENCitWa0tleVNjYW5FeEENCitWa0tleVNjYW5FeFcNCitWa0tleVNjYW5XDQorV0NTVG9NQkV4DQorV0lOTkxTRW5hYmxlSU1FDQorV0lOTkxTR2V0RW5hYmxlU3RhdHVzDQorV0lOTkxTR2V0SU1FSG90a2V5DQorV2FpdEZvcklucHV0SWRsZQ0KK1dhaXRNZXNzYWdlDQorV2luMzJQb29sQWxsb2NhdGlvblN0YXRzDQorV2luSGVscEENCitXaW5IZWxwVw0KK1dpbmRvd0Zyb21EQw0KK1dpbmRvd0Zyb21Qb2ludA0KK2tleWJkX2V2ZW50DQorbW91c2VfZXZlbnQNCit3c3ByaW50ZkENCit3c3ByaW50ZlcNCit3dnNwcmludGZBDQord3ZzcHJpbnRmVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3VzZXJlbnYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdXNlcmVudi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmI1ZjJkMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3VzZXJlbnYuZGVmCkBAIC0wLDAgKzEsNTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgVVNFUkVOVi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgVVNFUkVOVi5kbGwNCitFWFBPUlRTDQorQ3JlYXRlRW52aXJvbm1lbnRCbG9jaw0KK0RlbGV0ZVByb2ZpbGVBDQorRGVsZXRlUHJvZmlsZVcNCitEZXN0cm95RW52aXJvbm1lbnRCbG9jaw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0VudGVyQ3JpdGljYWxQb2xpY3lTZWN0aW9uDQorRXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzRm9yVXNlckENCitFeHBhbmRFbnZpcm9ubWVudFN0cmluZ3NGb3JVc2VyVw0KK0ZvcmNlU3luY0ZnUG9saWN5DQorRnJlZUdQT0xpc3RBDQorRnJlZUdQT0xpc3RXDQorR2VuZXJhdGVSc29wUG9saWN5DQorR2V0QWxsVXNlcnNQcm9maWxlRGlyZWN0b3J5QQ0KK0dldEFsbFVzZXJzUHJvZmlsZURpcmVjdG9yeVcNCitHZXRBcHBsaWVkR1BPTGlzdEENCitHZXRBcHBsaWVkR1BPTGlzdFcNCitHZXREZWZhdWx0VXNlclByb2ZpbGVEaXJlY3RvcnlBDQorR2V0RGVmYXVsdFVzZXJQcm9maWxlRGlyZWN0b3J5Vw0KK0dldEdQT0xpc3RBDQorR2V0R1BPTGlzdFcNCitHZXROZXh0RmdQb2xpY3lSZWZyZXNoSW5mbw0KK0dldFByZXZpb3VzRmdQb2xpY3lSZWZyZXNoSW5mbw0KK0dldFByb2ZpbGVUeXBlDQorR2V0UHJvZmlsZXNEaXJlY3RvcnlBDQorR2V0UHJvZmlsZXNEaXJlY3RvcnlXDQorR2V0VXNlclByb2ZpbGVEaXJlY3RvcnlBDQorR2V0VXNlclByb2ZpbGVEaXJlY3RvcnlXDQorTGVhdmVDcml0aWNhbFBvbGljeVNlY3Rpb24NCitMb2FkVXNlclByb2ZpbGVBDQorTG9hZFVzZXJQcm9maWxlVw0KK1Byb2Nlc3NHcm91cFBvbGljeUNvbXBsZXRlZA0KK1Byb2Nlc3NHcm91cFBvbGljeUNvbXBsZXRlZEV4DQorUmVmcmVzaFBvbGljeQ0KK1JlZnJlc2hQb2xpY3lFeA0KK1JlZ2lzdGVyR1BOb3RpZmljYXRpb24NCitSc29wQWNjZXNzQ2hlY2tCeVR5cGUNCitSc29wRmlsZUFjY2Vzc0NoZWNrDQorUnNvcExvZ2dpbmdFbmFibGVkDQorUnNvcFJlc2V0UG9saWN5U2V0dGluZ1N0YXR1cw0KK1Jzb3BTZXRQb2xpY3lTZXR0aW5nU3RhdHVzDQorVW5sb2FkVXNlclByb2ZpbGUNCitVbnJlZ2lzdGVyR1BOb3RpZmljYXRpb24NCitXYWl0Rm9yTWFjaGluZVBvbGljeUZvcmVncm91bmRQcm9jZXNzaW5nDQorV2FpdEZvclVzZXJQb2xpY3lGb3JlZ3JvdW5kUHJvY2Vzc2luZw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3VzcDEwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3VzcDEwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNjQ4M2Q5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdXNwMTAuZGVmCkBAIC0wLDAgKzEsNDMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgVVNQMTAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFVTUDEwLmRsbA0KK0VYUE9SVFMNCitMcGtQcmVzZW50DQorU2NyaXB0QXBwbHlEaWdpdFN1YnN0aXR1dGlvbg0KK1NjcmlwdEFwcGx5TG9naWNhbFdpZHRoDQorU2NyaXB0QnJlYWsNCitTY3JpcHRDUHRvWA0KK1NjcmlwdENhY2hlR2V0SGVpZ2h0DQorU2NyaXB0RnJlZUNhY2hlDQorU2NyaXB0R2V0Q01hcA0KK1NjcmlwdEdldEZvbnRQcm9wZXJ0aWVzDQorU2NyaXB0R2V0R2x5cGhBQkNXaWR0aA0KK1NjcmlwdEdldExvZ2ljYWxXaWR0aHMNCitTY3JpcHRHZXRQcm9wZXJ0aWVzDQorU2NyaXB0SXNDb21wbGV4DQorU2NyaXB0SXRlbWl6ZQ0KK1NjcmlwdEp1c3RpZnkNCitTY3JpcHRMYXlvdXQNCitTY3JpcHRQbGFjZQ0KK1NjcmlwdFJlY29yZERpZ2l0U3Vic3RpdHV0aW9uDQorU2NyaXB0U2hhcGUNCitTY3JpcHRTdHJpbmdBbmFseXNlDQorU2NyaXB0U3RyaW5nQ1B0b1gNCitTY3JpcHRTdHJpbmdGcmVlDQorU2NyaXB0U3RyaW5nR2V0TG9naWNhbFdpZHRocw0KK1NjcmlwdFN0cmluZ0dldE9yZGVyDQorU2NyaXB0U3RyaW5nT3V0DQorU2NyaXB0U3RyaW5nVmFsaWRhdGUNCitTY3JpcHRTdHJpbmdYdG9DUA0KK1NjcmlwdFN0cmluZ19wTG9nQXR0cg0KK1NjcmlwdFN0cmluZ19wU2l6ZQ0KK1NjcmlwdFN0cmluZ19wY091dENoYXJzDQorU2NyaXB0VGV4dE91dA0KK1NjcmlwdFh0b0NQDQorVXNwQWxsb2NDYWNoZQ0KK1VzcEFsbG9jVGVtcA0KK1VzcEZyZWVNZW0NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi91dGlsZGxsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3V0aWxkbGwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIzM2ZhNDAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi91dGlsZGxsLmRlZgpAQCAtMCwwICsxLDQ0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFVUSUxETEwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFVUSUxETEwuZGxsDQorRVhQT1JUUw0KK0FzeW5jRGV2aWNlRW51bWVyYXRlDQorQ2FjaGVkR2V0VXNlckZyb21TaWQNCitDYWxjdWxhdGVEaWZmVGltZQ0KK0NhbGN1bGF0ZUVsYXBzZWRUaW1lDQorQ29tcGFyZUVsYXBzZWRUaW1lDQorQ29uZmlndXJlTW9kZW0NCitDdHhHZXRBbnlEQ05hbWUNCitDdXJyZW50RGF0ZVRpbWVTdHJpbmcNCitEYXRlVGltZVN0cmluZw0KK0VsYXBzZWRUaW1lU3RyaW5nDQorRW51bWVyYXRlTXVsdGlVc2VyU2VydmVycw0KK0Zvcm1EZWNvcmF0ZWRBc3luY0RldmljZU5hbWUNCitHZXRBc3NvY2lhdGVkUG9ydE5hbWUNCitHZXRTeXN0ZW1NZXNzYWdlQQ0KK0dldFN5c3RlbU1lc3NhZ2VXDQorR2V0VW5rbm93blN0cmluZw0KK0dldFVzZXJGcm9tU2lkDQorSGF2ZUFub255bW91c1VzZXJzQ2hhbmdlZA0KK0luaXRpYWxpemVBbm9ueW1vdXNVc2VyQ29tcGFyZUxpc3QNCitJbnN0YWxsTW9kZW0NCitJc1BhcnRPZkRvbWFpbg0KK05ldEJJT1NEZXZpY2VFbnVtZXJhdGUNCitOZXR3b3JrRGV2aWNlRW51bWVyYXRlDQorUGFyc2VEZWNvcmF0ZWRBc3luY0RldmljZU5hbWUNCitRdWVyeUN1cnJlbnRXaW5TdGF0aW9uDQorUmVnR2V0TmV0d29ya0RldmljZU5hbWUNCitSZWdHZXROZXR3b3JrU2VydmljZU5hbWUNCitTZXR1cEFzeW5jQ2RDb25maWcNCitTdGFuZGFyZEVycm9yTWVzc2FnZQ0KK1N0ckFzeW5jQ29ubmVjdFN0YXRlDQorU3RyQ29ubmVjdFN0YXRlDQorU3RyUHJvY2Vzc1N0YXRlDQorU3RyU2RDbGFzcw0KK1N0clN5c3RlbVdhaXRSZWFzb24NCitUZXN0VXNlckZvckFkbWluDQorV2luRW51bWVyYXRlRGV2aWNlcw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3V1aWQuYyBiL21pbmd3LXc2NC1jcnQvbGliL3V1aWQuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NTk4ZmJlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdXVpZC5jCkBAIC0wLDAgKzEsMzQyIEBACisvKgorICBHZW5lcmF0ZSBHVUlEcyBmb3IgT0xFIGFuZCBvdGhlciBpbnRlcmZhY2VzLgorCisgIFRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5IGV4dHJhY3RpbmcgdGhlIG5hbWVzIG9mIGFsbCBHVUlEcworICBmcm9tIHV1aWQubGliLiBUaGUgbmFtZXMgd2VyZSBpbiB0dXJuIHByb2Nlc3NlZCBieSBhIHNjcmlwdAorICB0byBidWlsZCBhIEMgcHJvZ3JhbSB0aGF0IHdoZW4gcnVuIGdlbmVyYXRlZCB0aGlzIGZpbGUuCisgIFNvbWUgZGVmaW5pdGlvbnMgd2VyZSBhZGRlZCBieSBoYW5kIGFmdGVyd2FyZHMuCisqLworCisvKgorICBUT0RPOiBCcmVhayB1cCBpbnRvIHNtYWxsZXIgdW5pdHMsIGJhc2VkIG9uIGRlY2xhcmF0aW9ucyBpbiBoZWFkZXJzLgorKi8KKworI2RlZmluZSBJTklUR1VJRAorI2luY2x1ZGUgPGJhc2V0eXBzLmg+CitERUZJTkVfR1VJRChBUlJBWUlEX1BhdGhQcm9wZXJ0aWVzLDB4N2VjYmJhMDQsMHgyZDk3LDB4MTFjZiwweGEyLDB4MjksMCwweGFhLDAsMHgzZCwweDczLDB4NTIpOworREVGSU5FX0dVSUQoQ0FUSURfQ29udHJvbCwweDQwZmM2ZWQ0LDB4MjQzOCwweDExY2YsMHhhMywweGRiLDB4OCwwLDB4MzYsMHhmMSwweDI1LDB4Mik7CitERUZJTkVfR1VJRChDQVRJRF9Eb2NPYmplY3QsMHg0MGZjNmVkOCwweDI0MzgsMHgxMWNmLDB4YTMsMHhkYiwweDgsMCwweDM2LDB4ZjEsMHgyNSwweDIpOworREVGSU5FX0dVSUQoQ0FUSURfSW5zZXJ0YWJsZSwweDQwZmM2ZWQzLDB4MjQzOCwweDExY2YsMHhhMywweGRiLDB4OCwwLDB4MzYsMHhmMSwweDI1LDB4Mik7CitERUZJTkVfR1VJRChDQVRJRF9JbnRlcm5ldEF3YXJlLDB4ZGU4NmE1OCwweDJiYWEsMHgxMWNmLDB4YTIsMHgyOSwwLDB4YWEsMCwweDNkLDB4NzMsMHg1Mik7CitERUZJTkVfR1VJRChDQVRJRF9Jc1Nob3J0Y3V0LDB4NDBmYzZlZDYsMHgyNDM4LDB4MTFjZiwweGEzLDB4ZGIsMHg4LDAsMHgzNiwweGYxLDB4MjUsMHgyKTsKK0RFRklORV9HVUlEKENBVElEX05ldmVyU2hvd0V4dCwweDQwZmM2ZWQ3LDB4MjQzOCwweDExY2YsMHhhMywweGRiLDB4OCwwLDB4MzYsMHhmMSwweDI1LDB4Mik7CitERUZJTkVfR1VJRChDQVRJRF9QZXJzaXN0c1RvRmlsZSwweGRlODZhNTYsMHgyYmFhLDB4MTFjZiwweGEyLDB4MjksMCwweGFhLDAsMHgzZCwweDczLDB4NTIpOworREVGSU5FX0dVSUQoQ0FUSURfUGVyc2lzdHNUb01lbW9yeSwweGRlODZhNTUsMHgyYmFhLDB4MTFjZiwweGEyLDB4MjksMCwweGFhLDAsMHgzZCwweDczLDB4NTIpOworREVGSU5FX0dVSUQoQ0FUSURfUGVyc2lzdHNUb01vbmlrZXIsMHhkZTg2YTUxLDB4MmJhYSwweDExY2YsMHhhMiwweDI5LDAsMHhhYSwwLDB4M2QsMHg3MywweDUyKTsKK0RFRklORV9HVUlEKENBVElEX1BlcnNpc3RzVG9Qcm9wZXJ0eUJhZywweGRlODZhNTcsMHgyYmFhLDB4MTFjZiwweGEyLDB4MjksMCwweGFhLDAsMHgzZCwweDczLDB4NTIpOworREVGSU5FX0dVSUQoQ0FUSURfUGVyc2lzdHNUb1N0b3JhZ2UsMHhkZTg2YTUyLDB4MmJhYSwweDExY2YsMHhhMiwweDI5LDAsMHhhYSwwLDB4M2QsMHg3MywweDUyKTsKK0RFRklORV9HVUlEKENBVElEX1BlcnNpc3RzVG9TdHJlYW0sMHhkZTg2YTU0LDB4MmJhYSwweDExY2YsMHhhMiwweDI5LDAsMHhhYSwwLDB4M2QsMHg3MywweDUyKTsKK0RFRklORV9HVUlEKENBVElEX1BlcnNpc3RzVG9TdHJlYW1Jbml0LDB4ZGU4NmE1MywweDJiYWEsMHgxMWNmLDB4YTIsMHgyOSwwLDB4YWEsMCwweDNkLDB4NzMsMHg1Mik7CitERUZJTkVfR1VJRChDQVRJRF9QcmludGFibGUsMHg0MGZjNmVkOSwweDI0MzgsMHgxMWNmLDB4YTMsMHhkYiwweDgsMCwweDM2LDB4ZjEsMHgyNSwweDIpOworREVGSU5FX0dVSUQoQ0FUSURfUHJvZ3JhbW1hYmxlLDB4NDBmYzZlZDUsMHgyNDM4LDB4MTFjZiwweGEzLDB4ZGIsMHg4LDAsMHgzNiwweGYxLDB4MjUsMHgyKTsKK0RFRklORV9HVUlEKENBVElEX1JlcXVpcmVzRGF0YVBhdGhIb3N0LDB4ZGU4NmE1MCwweDJiYWEsMHgxMWNmLDB4YTIsMHgyOSwwLDB4YWEsMCwweDNkLDB4NzMsMHg1Mik7CitERUZJTkVfR1VJRChDQVRJRF9TYWZlRm9ySW5pdGlhbGl6aW5nLDB4N2RkOTU4MDIsMHg5ODgyLDB4MTFjZiwweDlmLDB4YTksMCwweGFhLDAsMHg2YywweDQyLDB4YzQpOworREVGSU5FX0dVSUQoQ0FUSURfU2FmZUZvclNjcmlwdGluZywweDdkZDk1ODAxLDB4OTg4MiwweDExY2YsMHg5ZiwweGE5LDAsMHhhYSwwLDB4NmMsMHg0MiwweGM0KTsKK0RFRklORV9HVUlEKENMU0lEX0FsbENsYXNzZXMsMHgzMzAsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChDTFNJRF9DQ29sb3JQcm9wUGFnZSwweGJlMzUyMDEsMHg4ZjkxLDB4MTFjZSwweDlkLDB4ZTMsMCwweGFhLDAsMHg0YiwweGI4LDB4NTEpOworREVGSU5FX0dVSUQoQ0xTSURfQ0ZvbnRQcm9wUGFnZSwgMHgwYmUzNTIwMCwweDhmOTEsMHgxMWNlLDB4OWQsMHhlMywweDAwLDB4YWEsMHgwMCwweDRiLDB4YjgsMHg1MSk7CitERUZJTkVfR1VJRChDTFNJRF9DUGljdHVyZVByb3BQYWdlLDB4YmUzNTIwMiwweDhmOTEsMHgxMWNlLDB4OWQsMHhlMywwLDB4YWEsMCwweDRiLDB4YjgsMHg1MSk7CitERUZJTkVfR1VJRChDTFNJRF9Db252ZXJ0VkJYLDB4ZmI4ZjA4MjIsMHgxNjQsMHgxMDFiLDB4ODQsMHhlZCwweDgsMCwweDJiLDB4MmUsMHhjNywweDEzKTsKK0RFRklORV9HVUlEKENMU0lEX0N1cnJlbnRVc2VyQ2xhc3NlcywweDMzMiwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKENMU0lEX0ZpbGVQcm90b2NvbCwweDc5ZWFjOWU3LDB4YmFmOSwweDExY2UsMHg4YywweDgyLDAsMHhhYSwwLDB4NGIsMHhhOSwweGIpOworREVGSU5FX0dVSUQoQ0xTSURfRnRwUHJvdG9jb2wsMHg3OWVhYzllMywweGJhZjksMHgxMWNlLDB4OGMsMHg4MiwwLDB4YWEsMCwweDRiLDB4YTksMHhiKTsKK0RFRklORV9HVUlEKENMU0lEX0dvcGhlclByb3RvY29sLDB4NzllYWM5ZTQsMHhiYWY5LDB4MTFjZSwweDhjLDB4ODIsMCwweGFhLDAsMHg0YiwweGE5LDB4Yik7CitERUZJTkVfR1VJRChDTFNJRF9IdHRwUHJvdG9jb2wsMHg3OWVhYzllMiwweGJhZjksMHgxMWNlLDB4OGMsMHg4MiwwLDB4YWEsMCwweDRiLDB4YTksMHhiKTsKK0RFRklORV9HVUlEKENMU0lEX0h0dHBTUHJvdG9jb2wsMHg3OWVhYzllNSwweGJhZjksMHgxMWNlLDB4OGMsMHg4MiwwLDB4YWEsMCwweDRiLDB4YTksMHhiKTsKK0RFRklORV9HVUlEKENMU0lEX0lkZW50aXR5VW5tYXJzaGFsLDB4MWIsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChDTFNJRF9JblByb2NGcmVlTWFyc2hhbGVyLDB4MWMsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChDTFNJRF9Mb2NhbE1hY2hpbmVDbGFzc2VzLDB4MzMxLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoQ0xTSURfTWtQcm90b2NvbCwweDc5ZWFjOWU2LDB4YmFmOSwweDExY2UsMHg4YywweDgyLDAsMHhhYSwwLDB4NGIsMHhhOSwweGIpOworREVGSU5FX0dVSUQoQ0xTSURfUFNCaW5kQ3R4LDB4MzEyLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoQ0xTSURfUFNDbGFzc09iamVjdCwweDMwRSwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKENMU0lEX1BTQ2xpZW50U2l0ZSwweDMwZCwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKENMU0lEX1BTRHJhZ0Ryb3AsMHgzMTEsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChDTFNJRF9QU0VudW1lcmF0b3JzLDB4MzEzLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoQ0xTSURfUFNHZW5PYmplY3QsMHgzMGMsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChDTFNJRF9QU0luUGxhY2VBY3RpdmUsMHgzMGYsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChDTFNJRF9QU0luUGxhY2VGcmFtZSwweDMxMCwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKENMU0lEX1BTVXJsTW9uUHJveHksMHg3OWVhYzlmMSwweGJhZjksMHgxMWNlLDB4OGMsMHg4MiwwLDB4YWEsMCwweDRiLDB4YTksMHhiKTsKK0RFRklORV9HVUlEKENMU0lEX1BlcnNpc3RQcm9wc2V0LDB4ZmI4ZjA4MjEsMHgxNjQsMHgxMDFiLDB4ODQsMHhlZCwweDgsMCwweDJiLDB4MmUsMHhjNywweDEzKTsKK0RFRklORV9HVUlEKENMU0lEX1BpY3R1cmVfRGliLDB4MzE2LDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoQ0xTSURfUGljdHVyZV9FbmhNZXRhZmlsZSwweDMxOSwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKENMU0lEX1BpY3R1cmVfTWV0YWZpbGUsMHgzMTUsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChDTFNJRF9TdGF0aWNEaWIsMHgzMTYsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChDTFNJRF9TdGF0aWNNZXRhZmlsZSwweDMxNSwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKENMU0lEX1N0ZENvbXBvbmVudENhdGVnb3JpZXNNZ3IsMHgyZTAwNSwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKENMU0lEX1N0ZEZvbnQsMHhiZTM1MjAzLDB4OGY5MSwweDExY2UsMHg5ZCwweGUzLDAsMHhhYSwwLDB4NGIsMHhiOCwweDUxKTsKK0RFRklORV9HVUlEKENMU0lEX1N0ZEhsaW5rLDB4NzllYWM5ZDAsMHhiYWY5LDB4MTFjZSwweDhjLDB4ODIsMCwweGFhLDAsMHg0YiwweGE5LDB4Yik7CitERUZJTkVfR1VJRChDTFNJRF9TdGRIbGlua0Jyb3dzZUNvbnRleHQsMHg3OWVhYzlkMSwweGJhZjksMHgxMWNlLDB4OGMsMHg4MiwwLDB4YWEsMCwweDRiLDB4YTksMHhiKTsKK0RFRklORV9HVUlEKENMU0lEX1N0ZE1hcnNoYWwsMHgxNywwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKENMU0lEX1N0ZFBpY3R1cmUsMHhiZTM1MjA0LDB4OGY5MSwweDExY2UsMHg5ZCwweGUzLDAsMHhhYSwwLDB4NGIsMHhiOCwweDUxKTsKK0RFRklORV9HVUlEKENMU0lEX1N0ZFVSTE1vbmlrZXIsMHg3OWVhYzllMCwweGJhZjksMHgxMWNlLDB4OGMsMHg4MiwwLDB4YWEsMCwweDRiLDB4YTksMHhiKTsKK0RFRklORV9HVUlEKENMU0lEX1N0ZFVSTFByb3RvY29sLDB4NzllYWM5ZTEsMHhiYWY5LDB4MTFjZSwweDhjLDB4ODIsMCwweGFhLDAsMHg0YiwweGE5LDB4Yik7CitERUZJTkVfR1VJRChDTFNJRF9XZWJCcm93c2VyLDB4ODg1NmY5NjEsMHgzNDBhLDB4MTFkMCwweGE5LDB4NmIsMHgwLDB4YzAsMHg0ZiwweGQ3LDB4NSwweGEyKTsKK0RFRklORV9HVUlEKERJSURfRFdlYkJyb3dzZXJFdmVudHMsMHhlYWIyMmFjMiwweDMwYzEsMHgxMWNmLDB4YTcsMHhlYiwweDAsMHgwLDB4YzAsMHg1YiwweGFlLDB4MGIpOworREVGSU5FX0dVSUQoRElJRF9EV2ViQnJvd3NlckV2ZW50czIsMHgzNGE3MTVhMCwweDY1ODcsMHgxMWQwLDB4OTIsMHg0YSwweDAsMHgyMCwweGFmLDB4YzcsMHhhYywweDRkKTsKK0RFRklORV9HVUlEKEZMQUdJRF9JbnRlcm5ldCwweDk2MzAwZGEwLDB4MmJhYiwweDExY2YsMHhhMiwweDI5LDAsMHhhYSwwLDB4M2QsMHg3MywweDUyKTsKK0RFRklORV9HVUlEKEZNVElEX0RvY1N1bW1hcnlJbmZvcm1hdGlvbiwweGQ1Y2RkNTAyLDB4MmU5YywweDEwMWIsMHg5MywweDk3LDB4OCwwLDB4MmIsMHgyYywweGY5LDB4YWUpOworREVGSU5FX0dVSUQoRk1USURfU3VtbWFyeUluZm9ybWF0aW9uLDB4ZjI5Zjg1ZTAsMHg0ZmY5LDB4MTA2OCwweGFiLDB4OTEsMHg4LDAsMHgyYiwweDI3LDB4YjMsMHhkOSk7CitERUZJTkVfR1VJRChGTVRJRF9Vc2VyRGVmaW5lZFByb3BlcnRpZXMsMHhkNWNkZDUwNSwweDJlOWMsMHgxMDFiLDB4OTMsMHg5NywweDgsMCwweDJiLDB4MmMsMHhmOSwweGFlKTsKK0RFRklORV9HVUlEKEdVSURfQ0hFQ0tWQUxVRUVYQ0xVU0lWRSwweDY2NTA0MzBjLDB4YmUwZiwweDEwMWEsMHg4YiwweGJiLDAsMHhhYSwwLDB4MzAsMHhjLDB4YWIpOworREVGSU5FX0dVSUQoR1VJRF9DT0xPUiwweDY2NTA0MzAxLDB4YmUwZiwweDEwMWEsMHg4YiwweGJiLDAsMHhhYSwwLDB4MzAsMHhjLDB4YWIpOworREVGSU5FX0dVSUQoR1VJRF9GT05UQk9MRCwweDY2NTA0MzBmLDB4YmUwZiwweDEwMWEsMHg4YiwweGJiLDAsMHhhYSwwLDB4MzAsMHhjLDB4YWIpOworREVGSU5FX0dVSUQoR1VJRF9GT05USVRBTElDLDB4NjY1MDQzMTAsMHhiZTBmLDB4MTAxYSwweDhiLDB4YmIsMCwweGFhLDAsMHgzMCwweGMsMHhhYik7CitERUZJTkVfR1VJRChHVUlEX0ZPTlROQU1FLDB4NjY1MDQzMGQsMHhiZTBmLDB4MTAxYSwweDhiLDB4YmIsMCwweGFhLDAsMHgzMCwweGMsMHhhYik7CitERUZJTkVfR1VJRChHVUlEX0ZPTlRTSVpFLDB4NjY1MDQzMGUsMHhiZTBmLDB4MTAxYSwweDhiLDB4YmIsMCwweGFhLDAsMHgzMCwweGMsMHhhYik7CitERUZJTkVfR1VJRChHVUlEX0ZPTlRTVFJJS0VUSFJPVUdILDB4NjY1MDQzMTIsMHhiZTBmLDB4MTAxYSwweDhiLDB4YmIsMCwweGFhLDAsMHgzMCwweGMsMHhhYik7CitERUZJTkVfR1VJRChHVUlEX0ZPTlRVTkRFUlNDT1JFLDB4NjY1MDQzMTEsMHhCRTBGLDB4MTAxQSwweDhCLDB4QkIsMHgwMCwweEFBLDB4MDAsMHgzMCwweDBDLDB4QUIpOworREVGSU5FX0dVSUQoR1VJRF9IQU5ETEUsMHg2NjUwNDMxMywweGJlMGYsMHgxMDFhLDB4OGIsMHhiYiwwLDB4YWEsMCwweDMwLDB4YywweGFiKTsKK0RFRklORV9HVUlEKEdVSURfSElNRVRSSUMsMHg2NjUwNDMwMCwweGJlMGYsMHgxMDFhLDB4OGIsMHhiYiwwLDB4YWEsMCwweDMwLDB4YywweGFiKTsKK0RFRklORV9HVUlEKEdVSURfSGFzUGF0aFByb3BlcnRpZXMsMHgyZGU4MSwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKEdVSURfTlVMTCwwLDAsMCwwLDAsMCwwLDAsMCwwLDApOworREVGSU5FX0dVSUQoR1VJRF9PUFRJT05WQUxVRUVYQ0xVU0lWRSwweDY2NTA0MzBiLDB4YmUwZiwweDEwMWEsMHg4YiwweGJiLDAsMHhhYSwwLDB4MzAsMHhjLDB4YWIpOworREVGSU5FX0dVSUQoR1VJRF9QYXRoUHJvcGVydHksMHgyZGU4MCwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKEdVSURfVFJJU1RBVEUsMHg2NjUwNDMwYSwweGJlMGYsMHgxMDFhLDB4OGIsMHhiYiwwLDB4YWEsMCwweDMwLDB4YywweGFiKTsKK0RFRklORV9HVUlEKEdVSURfWFBPUywweDY2NTA0MzA2LDB4YmUwZiwweDEwMWEsMHg4YiwweGJiLDAsMHhhYSwwLDB4MzAsMHhjLDB4YWIpOworREVGSU5FX0dVSUQoR1VJRF9YUE9TUElYRUwsMHg2NjUwNDMwMiwweGJlMGYsMHgxMDFhLDB4OGIsMHhiYiwwLDB4YWEsMCwweDMwLDB4YywweGFiKTsKK0RFRklORV9HVUlEKEdVSURfWFNJWkUsMHg2NjUwNDMwOCwweGJlMGYsMHgxMDFhLDB4OGIsMHhiYiwwLDB4YWEsMCwweDMwLDB4YywweGFiKTsKK0RFRklORV9HVUlEKEdVSURfWFNJWkVQSVhFTCwweDY2NTA0MzA0LDB4YmUwZiwweDEwMWEsMHg4YiwweGJiLDAsMHhhYSwwLDB4MzAsMHhjLDB4YWIpOworREVGSU5FX0dVSUQoR1VJRF9ZUE9TLDB4NjY1MDQzMDcsMHhiZTBmLDB4MTAxYSwweDhiLDB4YmIsMCwweGFhLDAsMHgzMCwweGMsMHhhYik7CitERUZJTkVfR1VJRChHVUlEX1lQT1NQSVhFTCwweDY2NTA0MzAzLDB4YmUwZiwweDEwMWEsMHg4YiwweGJiLDAsMHhhYSwwLDB4MzAsMHhjLDB4YWIpOworREVGSU5FX0dVSUQoR1VJRF9ZU0laRSwweDY2NTA0MzA5LDB4YmUwZiwweDEwMWEsMHg4YiwweGJiLDAsMHhhYSwwLDB4MzAsMHhjLDB4YWIpOworREVGSU5FX0dVSUQoR1VJRF9ZU0laRVBJWEVMLDB4NjY1MDQzMDUsMHhiZTBmLDB4MTAxYSwweDhiLDB4YmIsMCwweGFhLDAsMHgzMCwweGMsMHhhYik7CitERUZJTkVfR1VJRChJSURfSUFjY2Vzc2libGUsMHg2MTg3MzZlMCwweDNjM2QsMHgxMWNmLDB4ODEsMHgwYywweDAwLDB4YWEsMHgwMCwweDM4LDB4OWIsMHg3MSk7CitERUZJTkVfR1VJRChMSUJJRF9BY2Nlc3NpYmlsaXR5LCAweDFlYTRkYmYwLCAweDNjM2IsMHgxMWNmLCAweDgxLCAweDBjLCAweDAwLCAweGFhLCAweDAwLCAweDM4LCAweDliLCAweDcxKTsKK0RFRklORV9HVUlEKElJRF9JQWN0aXZlU2NyaXB0LDB4YmIxYTJhZTEsMHhhNGY5LDB4MTFjZiwweDhmLDB4MjAsMCwweDgwLDB4NWYsMHgyYywweGQwLDB4NjQpOworREVGSU5FX0dVSUQoSUlEX0lBY3RpdmVTY3JpcHRFcnJvciwweGVhZTFiYTYxLDB4YTRlZCwweDExY2YsMHg4ZiwweDIwLDAsMHg4MCwweDVmLDB4MmMsMHhkMCwweDY0KTsKK0RFRklORV9HVUlEKElJRF9JQWN0aXZlU2NyaXB0UGFyc2UsMHhiYjFhMmFlMiwweGE0ZjksMHgxMWNmLDB4OGYsMHgyMCwwLDB4ODAsMHg1ZiwweDJjLDB4ZDAsMHg2NCk7CitERUZJTkVfR1VJRChJSURfSUFjdGl2ZVNjcmlwdFNpdGUsMHhkYjAxYTFlMywweGE0MmIsMHgxMWNmLDB4OGYsMHgyMCwwLDB4ODAsMHg1ZiwweDJjLDB4ZDAsMHg2NCk7CitERUZJTkVfR1VJRChJSURfSUFjdGl2ZVNjcmlwdFNpdGVXaW5kb3csMHhkMTBmNjc2MSwweDgzZTksMHgxMWNmLDB4OGYsMHgyMCwwLDB4ODAsMHg1ZiwweDJjLDB4ZDAsMHg2NCk7CitERUZJTkVfR1VJRChJSURfSUFkdmlzZVNpbmssMHgxMGYsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSUFkdmlzZVNpbmsyLDB4MTI1LDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lBZHZpc2VTaW5rRXgsMHgzYWYyNDI5MCwweGM5NiwweDExY2UsMHhhMCwweGNmLDAsMHhhYSwwLDB4NjAsMHhhLDB4YjgpOworREVGSU5FX0dVSUQoSUlEX0lBc3luY01vbmlrZXIsMHg3OWVhYzlkMywweGJhZjksMHgxMWNlLDB4OGMsMHg4MiwwLDB4YWEsMCwweDRiLDB4YTksMHhiKTsKK0RFRklORV9HVUlEKElJRF9JQXV0aGVudGljYXRlLDB4NzllYWM5ZDAsMHhiYWY5LDB4MTFjZSwweDhjLDB4ODIsMCwweGFhLDAsMHg0YiwweGE5LDB4Yik7CitERUZJTkVfR1VJRChJSURfSUJpbmRDdHgsMHhlLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lCaW5kSG9zdCwweGZjNDgwMWExLDB4MmJhOSwweDExY2YsMHhhMiwweDI5LDAsMHhhYSwwLDB4M2QsMHg3MywweDUyKTsKK0RFRklORV9HVUlEKElJRF9JQmluZFByb3RvY29sLDB4NzllYWM5Y2QsMHhiYWY5LDB4MTFjZSwweDhjLDB4ODIsMCwweGFhLDAsMHg0YiwweGE5LDB4Yik7CitERUZJTkVfR1VJRChJSURfSUJpbmRTdGF0dXNDYWxsYmFjaywweDc5ZWFjOWMxLDB4YmFmOSwweDExY2UsMHg4YywweDgyLDAsMHhhYSwwLDB4NGIsMHhhOSwweGIpOworREVGSU5FX0dVSUQoSUlEX0lCaW5kU3RhdHVzQ2FsbGJhY2tNc2csMHg3OWVhYzljYiwweGJhZjksMHgxMWNlLDB4OGMsMHg4MiwwLDB4YWEsMCwweDRiLDB4YTksMHhiKTsKK0RFRklORV9HVUlEKElJRF9JQmluZGluZywweDc5ZWFjOWMwLDB4YmFmOSwweDExY2UsMHg4YywweDgyLDAsMHhhYSwwLDB4NGIsMHhhOSwweGIpOworREVGSU5FX0dVSUQoSUlEX0lDYXRJbmZvcm1hdGlvbiwweDJlMDEzLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lDYXRSZWdpc3RlciwweDJlMDEyLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lDaGFubmVsSG9vaywweDEwMDhjNGEwLDB4NzYxMywweDExY2YsMHg5YSwweGYxLDAsMHgyMCwweGFmLDB4NmUsMHg3MiwweGY0KTsKK0RFRklORV9HVUlEKElJRF9JQ2xhc3NBY3RpdmF0b3IsMHgxNDAsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSUNsYXNzRmFjdG9yeSwweDEsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSUNsYXNzRmFjdG9yeTIsMHhiMTk2YjI4ZiwweGJhYjQsMHgxMDFhLDB4YjYsMHg5YywwLDB4YWEsMCwweDM0LDB4MWQsMHg3KTsKK0RFRklORV9HVUlEKElJRF9JQ2xpZW50U2VjdXJpdHksMHgxM0QsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSUNsaWVudFNpdGVIYW5kbGVyLDB4ZjRmNTY5ZDEsMHg1OTNiLDB4MTAxYSwweGI1LDB4NjksMHg4LDAsMHgyYiwweDJkLDB4YmYsMHg3YSk7CitERUZJTkVfR1VJRChJSURfSUNvZGVJbnN0YWxsLDB4NzllYWM5ZDEsMHhiYWY5LDB4MTFjZSwweDhjLDB4ODIsMCwweGFhLDAsMHg0YiwweGE5LDB4Yik7CitERUZJTkVfR1VJRChJSURfSUNvbm5lY3Rpb25Qb2ludCwweGIxOTZiMjg2LDB4YmFiNCwweDEwMWEsMHhiNiwweDljLDAsMHhhYSwwLDB4MzQsMHgxZCwweDcpOworREVGSU5FX0dVSUQoSUlEX0lDb25uZWN0aW9uUG9pbnRDb250YWluZXIsMHhiMTk2YjI4NCwweGJhYjQsMHgxMDFhLDB4YjYsMHg5YywwLDB4YWEsMCwweDM0LDB4MWQsMHg3KTsKK0RFRklORV9HVUlEKElJRF9JQ29udGludWUsMHgxMmEsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSUNvbnRpbnVlQ2FsbGJhY2ssMHhiNzIyYmNjYSwweDRlNjgsMHgxMDFiLDB4YTIsMHhiYywwLDB4YWEsMCwweDQwLDB4NDcsMHg3MCk7CitERUZJTkVfR1VJRChJSURfSUNyZWF0ZUVycm9ySW5mbywweDIyZjAzMzQwLDB4NTQ3ZCwweDEwMWIsMHg4ZSwweDY1LDB4OCwwLDB4MmIsMHgyYiwweGQxLDB4MTkpOworREVGSU5FX0dVSUQoSUlEX0lDcmVhdGVUeXBlSW5mbywweDIwNDA1LDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lDcmVhdGVUeXBlSW5mbzIsMHgyMDQwZSwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JQ3JlYXRlVHlwZUxpYiwweDIwNDA2LDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lDcmVhdGVUeXBlTGliMiwweDIwNDBGLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lEYXRhQWR2aXNlSG9sZGVyLDB4MTEwLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lEYXRhT2JqZWN0LDB4MTBlLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lEZWJ1ZywweDEyMywwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JRGVidWdTdHJlYW0sMHgxMjQsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSURmUmVzZXJ2ZWQxLDB4MTMsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSURmUmVzZXJ2ZWQyLDB4MTQsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSURmUmVzZXJ2ZWQzLDB4MTUsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSURpc3BhdGNoLDB4MjA0MDAsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSURyb3BTb3VyY2UsMHgxMjEsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSURyb3BUYXJnZXQsMHgxMjIsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSUVudW1DQVRFR09SWUlORk8sMHgyZTAxMSwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JRW51bUNhbGxiYWNrLDB4MTA4LDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lFbnVtQ29ubmVjdGlvblBvaW50cywweGIxOTZiMjg1LDB4YmFiNCwweDEwMWEsMHhiNiwweDljLDAsMHhhYSwwLDB4MzQsMHgxZCwweDcpOworREVGSU5FX0dVSUQoSUlEX0lFbnVtQ29ubmVjdGlvbnMsMHhiMTk2YjI4NywweGJhYjQsMHgxMDFhLDB4YjYsMHg5YywwLDB4YWEsMCwweDM0LDB4MWQsMHg3KTsKK0RFRklORV9HVUlEKElJRF9JRW51bUZPUk1BVEVUQywweDEwMywwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JRW51bUdVSUQsMHgyZTAwMCwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JRW51bUdlbmVyaWMsMHgxMDYsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSUVudW1ITElURU0sMHg3OWVhYzljNiwweGJhZjksMHgxMWNlLDB4OGMsMHg4MiwwLDB4YWEsMCwweDRiLDB4YTksMHhiKTsKK0RFRklORV9HVUlEKElJRF9JRW51bUhvbGRlciwweDEwNywwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JRW51bU1vbmlrZXIsMHgxMDIsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSUVudW1PTEVWRVJCLDB4MTA0LDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lFbnVtT2xlRG9jdW1lbnRWaWV3cywweGI3MjJiY2M4LDB4NGU2OCwweDEwMWIsMHhhMiwweGJjLDAsMHhhYSwwLDB4NDAsMHg0NywweDcwKTsKK0RFRklORV9HVUlEKElJRF9JRW51bU9sZVVuZG9Vbml0cywweGIzZTdjMzQwLDB4ZWY5NywweDExY2UsMHg5YiwweGM5LDAsMHhhYSwwLDB4NjAsMHg4ZSwweDEpOworREVGSU5FX0dVSUQoSUlEX0lFbnVtU1RBVERBVEEsMHgxMDUsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSUVudW1TVEFUUFJPUFNFVFNURywweDEzYiwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JRW51bVNUQVRQUk9QU1RHLDB4MTM5LDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lFbnVtU1RBVFNURywweGQsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSUVudW1TVEFUVVJMLDB4M2MzNzRhNDIsMHhiYWU0LDB4MTFjZiwweGJmLDB4N2QsMCwweGFhLDAsMHg2OSwweDQ2LDB4ZWUpOworREVGSU5FX0dVSUQoSUlEX0lFbnVtU3RyaW5nLDB4MTAxLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lFbnVtVW5rbm93biwweDEwMCwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JRW51bVZBUklBTlQsMHgyMDQwNCwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JRXJyb3JJbmZvLDB4MWNmMmIxMjAsMHg1NDdkLDB4MTAxYiwweDhlLDB4NjUsMHg4LDAsMHgyYiwweDJiLDB4ZDEsMHgxOSk7CitERUZJTkVfR1VJRChJSURfSUVycm9yTG9nLDB4MzEyN2NhNDAsMHg0NDZlLDB4MTFjZSwweDgxLDB4MzUsMCwweGFhLDAsMHg0YiwweGI4LDB4NTEpOworREVGSU5FX0dVSUQoSUlEX0lFeHRlcm5hbENvbm5lY3Rpb24sMHgxOSwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JRmlsbExvY2tCeXRlcywweDk5Y2FmMDEwLDB4NDE1ZSwweDExY2YsMHg4OCwweDE0LDAsMHhhYSwwLDB4YjUsMHg2OSwweGY1KTsKK0RFRklORV9HVUlEKElJRF9JRmlsdGVyLDB4ODliY2I3NDAsMHg2MTE5LDB4MTAxYSwweGJjLDB4YjcsMCwweGRkLDB4MSwweDYsMHg1NSwweGFmKTsKK0RFRklORV9HVUlEKElJRF9JRm9udCwweGJlZjZlMDAyLDB4YTg3NCwweDEwMWEsMHg4YiwweGJhLDAsMHhhYSwwLDB4MzAsMHhjLDB4YWIpOworREVGSU5FX0dVSUQoSUlEX0lGb250RGlzcCwweGJlZjZlMDAzLDB4YTg3NCwweDEwMWEsMHg4YiwweGJhLDAsMHhhYSwwLDB4MzAsMHhjLDB4YWIpOworREVGSU5FX0dVSUQoSUlEX0lHbG9iYWxJbnRlcmZhY2VUYWJsZSwweDE0NiwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JSGxpbmssMHg3OWVhYzljMywweGJhZjksMHgxMWNlLDB4OGMsMHg4MiwwLDB4YWEsMCwweDRiLDB4YTksMHhiKTsKK0RFRklORV9HVUlEKElJRF9JSGxpbmtCcm93c2VDb250ZXh0LDB4NzllYWM5YzcsMHhiYWY5LDB4MTFjZSwweDhjLDB4ODIsMCwweGFhLDAsMHg0YiwweGE5LDB4Yik7CitERUZJTkVfR1VJRChJSURfSUhsaW5rRnJhbWUsMHg3OWVhYzljNSwweGJhZjksMHgxMWNlLDB4OGMsMHg4MiwwLDB4YWEsMCwweDRiLDB4YTksMHhiKTsKK0RFRklORV9HVUlEKElJRF9JSGxpbmtTaXRlLDB4NzllYWM5YzIsMHhiYWY5LDB4MTFjZSwweDhjLDB4ODIsMCwweGFhLDAsMHg0YiwweGE5LDB4Yik7CitERUZJTkVfR1VJRChJSURfSUhsaW5rVGFyZ2V0LDB4NzllYWM5YzQsMHhiYWY5LDB4MTFjZSwweDhjLDB4ODIsMCwweGFhLDAsMHg0YiwweGE5LDB4Yik7CitERUZJTkVfR1VJRChJSURfSUh0dHBOZWdvdGlhdGUsMHg3OWVhYzlkMiwweGJhZjksMHgxMWNlLDB4OGMsMHg4MiwwLDB4YWEsMCwweDRiLDB4YTksMHhiKTsKK0RFRklORV9HVUlEKElJRF9JSHR0cFNlY3VyaXR5LDB4NzllYWM5ZDcsMHhiYWZhLDB4MTFjZSwweDhjLDB4ODIsMCwweGFhLDAsMHg0YiwweGE5LDB4Yik7CitERUZJTkVfR1VJRChJSURfSUludGVybmFsTW9uaWtlciwweDExLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lMYXlvdXRTdG9yYWdlLDB4ZTZkNGQ5MCwweDY3MzgsMHgxMWNmLDB4OTYsMHg4LDAsMHhhYSwwLDB4NjgsMHhkLDB4YjQpOworREVGSU5FX0dVSUQoSUlEX0lMb2NrQnl0ZXMsMHhhLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lNYWxsb2MsMHgyLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lNYWxsb2NTcHksMHgxZCwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JTWFyc2hhbCwweDMsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSU1lc3NhZ2VGaWx0ZXIsMHgxNiwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JTWltZUluZm8sMHhmNzc0NTlhMCwweGJmOWEsMHgxMWNmLDB4YmEsMHg0ZSwwLDB4YzAsMHg0ZiwweGQ3LDB4OCwweDE2KTsKK0RFRklORV9HVUlEKElJRF9JTW9uaWtlciwweGYsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSU11bHRpUUksMHgyMCwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JT2JqZWN0U2FmZXR5LDB4Y2I1YmRjODEsMHg5M2MxLDB4MTFjZiwweDhmLDB4MjAsMCwweDgwLDB4NWYsMHgyYywweGQwLDB4NjQpOworREVGSU5FX0dVSUQoSUlEX0lPYmplY3RXaXRoU2l0ZSwweGZjNDgwMWEzLDB4MmJhOSwweDExY2YsMHhhMiwweDI5LDAsMHhhYSwwLDB4M2QsMHg3MywweDUyKTsKK0RFRklORV9HVUlEKElJRF9JT2xlQWR2aXNlSG9sZGVyLDB4MTExLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lPbGVDYWNoZSwweDExZSwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JT2xlQ2FjaGUyLDB4MTI4LDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lPbGVDYWNoZUNvbnRyb2wsMHgxMjksMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSU9sZUNsaWVudFNpdGUsMHgxMTgsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSU9sZUNvbW1hbmRUYXJnZXQsMHhiNzIyYmNjYiwweDRlNjgsMHgxMDFiLDB4YTIsMHhiYywwLDB4YWEsMCwweDQwLDB4NDcsMHg3MCk7CitERUZJTkVfR1VJRChJSURfSU9sZUNvbnRhaW5lciwweDExYiwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JT2xlQ29udHJvbCwweGIxOTZiMjg4LDB4YmFiNCwweDEwMWEsMHhiNiwweDljLDAsMHhhYSwwLDB4MzQsMHgxZCwweDcpOworREVGSU5FX0dVSUQoSUlEX0lPbGVDb250cm9sU2l0ZSwweEIxOTZCMjg5LDB4QkFCNCwweDEwMUEsMHhCNiwweDlDLDB4MDAsMHhBQSwweDAwLDB4MzQsMHgxRCwweDA3KTsKK0RFRklORV9HVUlEKElJRF9JT2xlRG9jdW1lbnQsMHhiNzIyYmNjNSwweDRlNjgsMHgxMDFiLDB4YTIsMHhiYywwLDB4YWEsMCwweDQwLDB4NDcsMHg3MCk7CitERUZJTkVfR1VJRChJSURfSU9sZURvY3VtZW50U2l0ZSwweGI3MjJiY2M3LDB4NGU2OCwweDEwMWIsMHhhMiwweGJjLDAsMHhhYSwwLDB4NDAsMHg0NywweDcwKTsKK0RFRklORV9HVUlEKElJRF9JT2xlRG9jdW1lbnRWaWV3LDB4YjcyMmJjYzYsMHg0ZTY4LDB4MTAxYiwweGEyLDB4YmMsMCwweGFhLDAsMHg0MCwweDQ3LDB4NzApOworREVGSU5FX0dVSUQoSUlEX0lPbGVJblBsYWNlQWN0aXZlT2JqZWN0LDB4MTE3LDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lPbGVJblBsYWNlRnJhbWUsMHgxMTYsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSU9sZUluUGxhY2VPYmplY3QsMHgxMTMsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSU9sZUluUGxhY2VPYmplY3RXaW5kb3dsZXNzLDB4MWMyMDU2Y2MsMHg1ZWY0LDB4MTAxYiwweDhiLDB4YzgsMCwweGFhLDAsMHgzZSwweDNiLDB4MjkpOworREVGSU5FX09MRUdVSUQoSUlEX0lPbGVJblBsYWNlU2l0ZSwweDAwMDAwMTE5LDAsMCk7CitERUZJTkVfR1VJRChJSURfSU9sZUluUGxhY2VTaXRlRXgsMHg5YzJjYWQ4MCwweDM0MjQsMHgxMWNmLDB4YjYsMHg3MCwwLDB4YWEsMCwweDRjLDB4ZDYsMHhkOCk7CitERUZJTkVfR1VJRChJSURfSU9sZUluUGxhY2VTaXRlV2luZG93bGVzcywweDkyMmVhZGEwLDB4MzQyNCwweDExY2YsMHhiNiwweDcwLDAsMHhhYSwwLDB4NGMsMHhkNiwweGQ4KTsKK0RFRklORV9HVUlEKElJRF9JT2xlSW5QbGFjZVVJV2luZG93LDB4MTE1LDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lPbGVJdGVtQ29udGFpbmVyLDB4MTFjLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lPbGVMaW5rLDB4MTFkLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lPbGVNYW5hZ2VyLDB4MTFmLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lPbGVPYmplY3QsMHgxMTIsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSU9sZVBhcmVudFVuZG9Vbml0LDB4YTFmYWYzMzAsMHhlZjk3LDB4MTFjZSwweDliLDB4YzksMCwweGFhLDAsMHg2MCwweDhlLDB4MSk7CitERUZJTkVfR1VJRChJSURfSU9sZVByZXNPYmosMHgxMjAsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSU9sZVVuZG9NYW5hZ2VyMDAsMHg5N2QwMDFmMiwweGNlZWYsMHg5YjExLDB4YzksMCwweGFhLDAsMHg2MCwweDhlLDB4MSwwKTsKK0RFRklORV9HVUlEKElJRF9JT2xlVW5kb01hbmFnZXIsMHhkMDAxZjIwMCwweGVmOTcsMHgxMWNlLDB4OWIsMHhjOSwwLDB4YWEsMCwweDYwLDB4OGUsMHgxKTsKK0RFRklORV9HVUlEKElJRF9JT2xlVW5kb1VuaXQsMHg4OTRhZDNiMCwweGVmOTcsMHgxMWNlLDB4OWIsMHhjOSwwLDB4YWEsMCwweDYwLDB4OGUsMHgxKTsKK0RFRklORV9HVUlEKElJRF9JT2xlV2luZG93LDB4MTE0LDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lPdmVybGFwcGVkQ29tcGxldGlvbiwweDUyMWEyOGYwLDB4ZTQwYiwweDExY2UsMHhiMiwweGM5LDAsMHhhYSwwLDB4NjgsMHg5LDB4MzcpOworREVGSU5FX0dVSUQoSUlEX0lPdmVybGFwcGVkU3RyZWFtLDB4NDkzODQwNzAsMHhlNDBhLDB4MTFjZSwweGIyLDB4YzksMCwweGFhLDAsMHg2OCwweDksMHgzNyk7CitERUZJTkVfR1VJRChJSURfSVBTRmFjdG9yeSwweDksMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSVBTRmFjdG9yeUJ1ZmZlciwweGQ1ZjU2OWQwLDB4NTkzYiwweDEwMWEsMHhiNSwweDY5LDB4OCwwLDB4MmIsMHgyZCwweGJmLDB4N2EpOworREVGSU5FX0dVSUQoSUlEX0lQYXJzZURpc3BsYXlOYW1lLDB4MTFhLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lQZXJQcm9wZXJ0eUJyb3dzaW5nLDB4Mzc2YmQzYWEsMHgzODQ1LDB4MTAxYiwweDg0LDB4ZWQsMHg4LDAsMHgyYiwweDJlLDB4YzcsMHgxMyk7CitERUZJTkVfR1VJRChJSURfSVBlcnNpc3QsMHgxMGMsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSVBlcnNpc3RGaWxlLDB4MTBiLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lQZXJzaXN0TWVtb3J5LDB4YmQxYWU1ZTAsMHhhNmFlLDB4MTFjZSwweGJkLDB4MzcsMHg1MCwweDQyLDAsMHhjMSwwLDApOworREVGSU5FX0dVSUQoSUlEX0lQZXJzaXN0TW9uaWtlciwweDc5ZWFjOWM5LDB4YmFmOSwweDExY2UsMHg4YywweDgyLDAsMHhhYSwwLDB4NGIsMHhhOSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JUGVyc2lzdFByb3BlcnR5QmFnLDB4MzdkODRmNjAsMHg0MmNiLDB4MTFjZSwweDgxLDB4MzUsMCwweGFhLDAsMHg0YiwweGI4LDB4NTEpOworREVGSU5FX0dVSUQoSUlEX0lQZXJzaXN0UHJvcGVydHlCYWcyLDB4MjJmNTU4ODEsMHgyODBiLDB4MTFkMCwweGE4LDB4YTksMCwweGEwLDB4YzksMHhjLDB4MjAsNCk7CitERUZJTkVfT0xFR1VJRChJSURfSVBlcnNpc3RTdG9yYWdlLDB4MDAwMDAxMGEsMCwwKTsKK0RFRklORV9HVUlEKElJRF9JUGVyc2lzdFN0cmVhbSwweDEwOSwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JUGVyc2lzdFN0cmVhbUluaXQsMHg3ZmQ1MjM4MCwweDRlMDcsMHgxMDFiLDB4YWUsMHgyZCwweDgsMCwweDJiLDB4MmUsMHhjNywweDEzKTsKK0RFRklORV9HVUlEKElJRF9JUGljdHVyZSwweDdiZjgwOTgwLDB4YmYzMiwweDEwMWEsMHg4YiwweGJiLDAsMHhhYSwwLDB4MzAsMHhjLDB4YWIpOworREVGSU5FX0dVSUQoSUlEX0lQaWN0dXJlRGlzcCwweDdiZjgwOTgxLDB4YmYzMiwweDEwMWEsMHg4YiwweGJiLDAsMHhhYSwwLDB4MzAsMHhjLDB4YWIpOworREVGSU5FX0dVSUQoSUlEX0lQb2ludGVySW5hY3RpdmUsMHg1NTk4MGJhMCwweDM1YWEsMHgxMWNmLDB4YjYsMHg3MSwwLDB4YWEsMCwweDRjLDB4ZDYsMHhkOCk7CitERUZJTkVfR1VJRChJSURfSVByaW50LDB4YjcyMmJjYzksMHg0ZTY4LDB4MTAxYiwweGEyLDB4YmMsMCwweGFhLDAsMHg0MCwweDQ3LDB4NzApOworREVGSU5FX0dVSUQoSUlEX0lQcm9ncmVzc05vdGlmeSwweGE5ZDc1OGEwLDB4NDYxNywweDExY2YsMHg5NSwweGZjLDAsMHhhYSwwLDB4NjgsMHhkLDB4YjQpOworREVGSU5FX0dVSUQoSUlEX0lQcm9wZXJ0eUJhZywweDU1MjcyYTAwLDB4NDJjYiwweDExY2UsMHg4MSwweDM1LDAsMHhhYSwwLDB4NGIsMHhiOCwweDUxKTsKK0RFRklORV9HVUlEKElJRF9JUHJvcGVydHlCYWcyLDB4MjJmNTU4ODIsMHgyODBiLDB4MTFkMCwweGE4LDB4YTksMCwweGEwLDB4YzksMHhjLDB4MjAsNCk7CitERUZJTkVfR1VJRChJSURfSVByb3BlcnR5RnJhbWUsMHhiMTk2YjI4YSwweGJhYjQsMHgxMDFhLDB4YjYsMHg5YywwLDB4YWEsMCwweDM0LDB4MWQsMHg3KTsKK0RFRklORV9HVUlEKElJRF9JUHJvcGVydHlOb3RpZnlTaW5rLDB4OWJmYmJjMDIsMHhlZmYxLDB4MTAxYSwweDg0LDB4ZWQsMCwweGFhLDAsMHgzNCwweDFkLDB4Nyk7CitERUZJTkVfR1VJRChJSURfSVByb3BlcnR5UGFnZSwweGIxOTZiMjhkLDB4YmFiNCwweDEwMWEsMHhiNiwweDljLDAsMHhhYSwwLDB4MzQsMHgxZCwweDcpOworREVGSU5FX0dVSUQoSUlEX0lQcm9wZXJ0eVBhZ2UyLDB4MWU0NDY2NSwweDI0YWMsMHgxMDFiLDB4ODQsMHhlZCwweDgsMCwweDJiLDB4MmUsMHhjNywweDEzKTsKK0RFRklORV9HVUlEKElJRF9JUHJvcGVydHlQYWdlU2l0ZSwweGIxOTZiMjhjLDB4YmFiNCwweDEwMWEsMHhiNiwweDljLDAsMHhhYSwwLDB4MzQsMHgxZCwweDcpOworREVGSU5FX0dVSUQoSUlEX0lQcm9wZXJ0eVNldFN0b3JhZ2UsMHgxM2EsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSVByb3BlcnR5U3RvcmFnZSwweDEzOCwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JUHJvdmlkZUNsYXNzSW5mbywweGIxOTZiMjgzLDB4YmFiNCwweDEwMWEsMHhiNiwweDljLDAsMHhhYSwwLDB4MzQsMHgxZCwweDcpOworREVGSU5FX0dVSUQoSUlEX0lQcm92aWRlQ2xhc3NJbmZvMiwweGE2YmMzYWMwLDB4ZGJhYSwweDExY2UsMHg5ZCwweGUzLDAsMHhhYSwwLDB4NGIsMHhiOCwweDUxKTsKK0RFRklORV9HVUlEKElJRF9JUHJveHksMHgyNywwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JUHJveHlNYW5hZ2VyLDB4OCwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JUXVpY2tBY3RpdmF0ZSwweGNmNTFlZDEwLDB4NjJmZSwweDExY2YsMHhiZiwweDg2LDAsMHhhMCwweGM5LDB4MywweDQ4LDB4MzYpOworREVGSU5FX0dVSUQoSUlEX0lST1REYXRhLDB4ZjI5ZjZiYzAsMHg1MDIxLDB4MTFjZSwweGFhLDB4MTUsMCwwLDB4NjksMHgxLDB4MjksMHgzZik7CitERUZJTkVfR1VJRChJSURfSVJpY2hFZGl0T2xlLDB4MjBkMDAsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSVJpY2hFZGl0T2xlQ2FsbGJhY2ssMHgyMGQwMywwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JUm9vdFN0b3JhZ2UsMHgxMiwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JUnBjQ2hhbm5lbCwweDQsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSVJwY0NoYW5uZWxCdWZmZXIsMHhkNWY1NmI2MCwweDU5M2IsMHgxMDFhLDB4YjUsMHg2OSwweDgsMCwweDJiLDB4MmQsMHhiZiwweDdhKTsKK0RFRklORV9HVUlEKElJRF9JUnBjUHJveHksMHg3LDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lScGNQcm94eUJ1ZmZlciwweGQ1ZjU2YTM0LDB4NTkzYiwweDEwMWEsMHhiNSwweDY5LDgsMCwweDJiLDB4MmQsMHhiZiwweDdhKTsKK0RFRklORV9HVUlEKElJRF9JUnBjUHJveHlCdWZmZXIzNCwweDNiZDVmNTZhLDB4MWE1OSwweGI1MTAsMHg2OSwweDgsMCwweDJiLDB4MmQsMHhiZiwweDdhLDApOworREVGSU5FX0dVSUQoSUlEX0lScGNTdHViLDB4NSwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JUnBjU3R1YkJ1ZmZlciwweGQ1ZjU2YWZjLDB4NTkzYiwweDEwMWEsMHhiNSwweDY5LDB4OCwwLDB4MmIsMHgyZCwweGJmLDB4N2EpOworREVGSU5FX09MRUdVSUQoSUlEX0lSdW5uYWJsZU9iamVjdCwweDAwMDAwMTI2LDAsMCk7CitERUZJTkVfR1VJRChJSURfSVJ1bm5pbmdPYmplY3RUYWJsZSwweDEwLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lTZXF1ZW50aWFsU3RyZWFtLDB4YzczM2EzMCwweDJhMWMsMHgxMWNlLDB4YWQsMHhlNSwwLDB4YWEsMCwweDQ0LDB4NzcsMHgzZCk7CitERUZJTkVfR1VJRChJSURfSVNlcnZlckhhbmRsZXIsMHhmNGY1NjlkMCwweDU5M2IsMHgxMDFhLDB4YjUsMHg2OSwweDgsMCwweDJiLDB4MmQsMHhiZiwweDdhKTsKK0RFRklORV9HVUlEKElJRF9JU2VydmVyU2VjdXJpdHksMHgxM0UsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSVNlcnZpY2VQcm92aWRlciwweDZkNTE0MGMxLDB4NzQzNiwweDExY2UsMHg4MCwweDM0LDAsMHhhYSwwLDB4NjAsMHg5LDB4ZmEpOworREVGSU5FX0dVSUQoSUlEX0lTaW1wbGVGcmFtZVNpdGUsMHg3NDJiMGUwMSwweDE0ZTYsMHgxMDFiLDB4OTEsMHg0ZSwwLDB4YWEsMCwweDMwLDB4YywweGFiKTsKK0RFRklORV9HVUlEKElJRF9JU3BlY2lmeVByb3BlcnR5UGFnZXMsMHhiMTk2YjI4YiwweGJhYjQsMHgxMDFhLDB4YjYsMHg5YywwLDB4YWEsMCwweDM0LDB4MWQsMHg3KTsKK0RFRklORV9PTEVHVUlEKElJRF9JU3RkTWFyc2hhbEluZm8sMjQsMCwwKTsKK0RFRklORV9HVUlEKElJRF9JU3RvcmFnZSwweGIsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSVN0cmVhbSwweGMsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSVN0dWIsMHgyNiwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JU3R1Yk1hbmFnZXIsMHg2LDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lTdXBwb3J0RXJyb3JJbmZvLDB4ZGYwYjNkNjAsMHg1NDhmLDB4MTAxYiwweDhlLDB4NjUsMHg4LDAsMHgyYiwweDJiLDB4ZDEsMHgxOSk7CitERUZJTkVfR1VJRChJSURfSVRhcmdldEVtYmVkZGluZywweDU0ODc5M2MwLDB4OWU3NCwweDExY2YsMHg5NiwweDU1LDAsMHhhMCwweGM5LDB4MywweDQ5LDB4MjMpOworREVGSU5FX0dVSUQoSUlEX0lUYXJnZXRGcmFtZSwweGQ1Zjc4YzgwLDB4NTI1MiwweDExY2YsMHg5MCwweGZhLDAsMHhhYSwwLDB4NDIsMHgxMCwweDZlKTsKK0RFRklORV9HVUlEKElJRF9JVHlwZUNoYW5nZUV2ZW50cywweDIwNDEwLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lUeXBlQ29tcCwweDIwNDAzLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lUeXBlSW5mbywweDIwNDAxLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lUeXBlSW5mbzIsMHgyMDQxMiwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JVHlwZUxpYiwweDIwNDAyLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lUeXBlTGliMiwweDIwNDExLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lVbmtub3duLDAsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSVVybEhpc3RvcnlTdGcsMHgzYzM3NGE0MSwweGJhZTQsMHgxMWNmLDB4YmYsMHg3ZCwwLDB4YWEsMCwweDY5LDB4NDYsMHhlZSk7CitERUZJTkVfR1VJRChJSURfSVZpZXdPYmplY3QsMHgxMGQsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChJSURfSVZpZXdPYmplY3QyLDB4MTI3LDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoSUlEX0lWaWV3T2JqZWN0RXgsMHgzYWYyNDI5MiwweGM5NiwweDExY2UsMHhhMCwweGNmLDAsMHhhYSwwLDB4NjAsMHhhLDB4YjgpOworREVGSU5FX0dVSUQoSUlEX0lXZWJCcm93c2VyLDB4ZWFiMjJhYzEsMHgzMGMxLDB4MTFjZiwweGE3LDB4ZWIsMHgwLDB4MCwweGMwLDB4NWIsMHhhZSwweDBiKTsKK0RFRklORV9HVUlEKElJRF9JV2ViQnJvd3NlcjIsMHhkMzBjMTY2MSwweGNkYWYsMHgxMWQwLDB4OGEsMHgzZSwweDAsMHhjMCwweDRmLDB4YzksMHhlMiwweDZlKTsKK0RFRklORV9HVUlEKElJRF9JV2ViQnJvd3NlckFwcCwweDJkZjA1LDB4MCwweDAsMHhjMCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDQ2KTsKK0RFRklORV9HVUlEKElJRF9JV2luSW5ldEh0dHBJbmZvLDB4NzllYWM5ZDgsMHhiYWZhLDB4MTFjZSwweDhjLDB4ODIsMCwweGFhLDAsMHg0YiwweGE5LDB4Yik7CitERUZJTkVfR1VJRChJSURfSVdpbkluZXRJbmZvLDB4NzllYWM5ZDYsMHhiYWZhLDB4MTFjZSwweDhjLDB4ODIsMCwweGFhLDAsMHg0YiwweGE5LDB4Yik7CitERUZJTkVfR1VJRChJSURfSVdpbmRvd0ZvckJpbmRpbmdVSSwweDc5ZWFjOWQ1LDB4YmFmYSwweDExY2UsMHg4YywweDgyLDAsMHhhYSwwLDB4NGIsMHhhOSwweGIpOworREVGSU5FX0dVSUQoSUlEX1N0ZE9sZSwweDIwNDMwLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoT0xFX0RBVEFQQVRIX0FMTElNQUdFLDB4MmRlMGUsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChPTEVfREFUQVBBVEhfQUxMTU0sMHgyZGUxOCwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKE9MRV9EQVRBUEFUSF9BTExURVhULDB4MmRlMWUsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChPTEVfREFUQVBBVEhfQU5TSVRFWFQsMHgyZGUxOSwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKE9MRV9EQVRBUEFUSF9BVkksMHgyZGUwZiwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKE9MRV9EQVRBUEFUSF9CQVNJQ0FVRElPLDB4MmRlMTIsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChPTEVfREFUQVBBVEhfQklGRiwweDJkZTIxLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoT0xFX0RBVEFQQVRIX0JNUCwweDJkZTAxLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoT0xFX0RBVEFQQVRIX0NHTSwweDJkZTBiLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoT0xFX0RBVEFQQVRIX0NPTU1PTklNQUdFLDB4MmRlMGQsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChPTEVfREFUQVBBVEhfRElCLDB4MmRlMDIsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChPTEVfREFUQVBBVEhfRElGLDB4MmRlMWYsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChPTEVfREFUQVBBVEhfRU5ITUYsMHgyZGUwNCwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKE9MRV9EQVRBUEFUSF9FUFMsMHgyZGUwYywwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKE9MRV9EQVRBUEFUSF9HSUYsMHgyZGUwNSwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKE9MRV9EQVRBUEFUSF9IVE1MLDB4MmRlMWMsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChPTEVfREFUQVBBVEhfSlBFRywweDJkZTA2LDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoT0xFX0RBVEFQQVRIX01JREksMHgyZGUxMywwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKE9MRV9EQVRBUEFUSF9NUEVHLDB4MmRlMTAsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChPTEVfREFUQVBBVEhfUEFMRVRURSwweDJkZTIyLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoT0xFX0RBVEFQQVRIX1BDWCwweDJkZTA5LDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoT0xFX0RBVEFQQVRIX1BFTkRBVEEsMHgyZGUyMywwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKE9MRV9EQVRBUEFUSF9QSUNULDB4MmRlMGEsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChPTEVfREFUQVBBVEhfUE9TVFNDUklQVCwweDJkZTFkLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoT0xFX0RBVEFQQVRIX1FVSUNLVElNRSwweDJkZTExLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoT0xFX0RBVEFQQVRIX1JJRkYsMHgyZGUxNSwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKE9MRV9EQVRBUEFUSF9SVEYsMHgyZGUxYiwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKE9MRV9EQVRBUEFUSF9TT1VORCwweDJkZTE2LDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoT0xFX0RBVEFQQVRIX1NZTEssMHgyZGUyMCwwLDAsMHhjMCwwLDAsMCwwLDAsMCwweDQ2KTsKK0RFRklORV9HVUlEKE9MRV9EQVRBUEFUSF9USUZGLDB4MmRlMDcsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChPTEVfREFUQVBBVEhfVU5JQ09ERSwweDJkZTFhLDAsMCwweGMwLDAsMCwwLDAsMCwwLDB4NDYpOworREVGSU5FX0dVSUQoT0xFX0RBVEFQQVRIX1ZJREVPLDB4MmRlMTcsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChPTEVfREFUQVBBVEhfV0FWLDB4MmRlMTQsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChPTEVfREFUQVBBVEhfV01GLDB4MmRlMDMsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChPTEVfREFUQVBBVEhfWEJNLDB4MmRlMDgsMCwwLDB4YzAsMCwwLDAsMCwwLDAsMHg0Nik7CitERUZJTkVfR1VJRChTSURfU0NvbnRhaW5lckRpc3BhdGNoLDB4YjcyMmJlMDAsMHg0ZTY4LDB4MTAxYiwweGEyLDB4YmMsMCwweGFhLDAsMHg0MCwweDQ3LDB4NzApOworREVGSU5FX0dVSUQoU0lEX1NEYXRhUGF0aEJyb3dzZXIsMHhmYzQ4MDFhNSwweDJiYTksMHgxMWNmLDB4YTIsMHgyOSwwLDB4YWEsMCwweDNkLDB4NzMsMHg1Mik7CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi91eHRoZW1lLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3V4dGhlbWUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhlMjI0NzIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi91eHRoZW1lLmRlZgpAQCAtMCwwICsxLDU3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFV4VGhlbWUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFV4VGhlbWUuZGxsDQorRVhQT1JUUw0KK0Nsb3NlVGhlbWVEYXRhDQorRHJhd1RoZW1lQmFja2dyb3VuZA0KK0RyYXdUaGVtZUVkZ2UNCitEcmF3VGhlbWVJY29uDQorRHJhd1RoZW1lUGFyZW50QmFja2dyb3VuZA0KK0RyYXdUaGVtZVRleHQNCitFbmFibGVUaGVtZURpYWxvZ1RleHR1cmUNCitFbmFibGVUaGVtaW5nDQorR2V0Q3VycmVudFRoZW1lTmFtZQ0KK0RyYXdUaGVtZUJhY2tncm91bmRFeA0KK0dldFRoZW1lQXBwUHJvcGVydGllcw0KK0dldFRoZW1lQmFja2dyb3VuZENvbnRlbnRSZWN0DQorR2V0VGhlbWVCYWNrZ3JvdW5kRXh0ZW50DQorR2V0VGhlbWVCYWNrZ3JvdW5kUmVnaW9uDQorR2V0VGhlbWVCb29sDQorR2V0VGhlbWVDb2xvcg0KK0dldFRoZW1lRG9jdW1lbnRhdGlvblByb3BlcnR5DQorR2V0VGhlbWVFbnVtVmFsdWUNCitHZXRUaGVtZUZpbGVuYW1lDQorR2V0VGhlbWVGb250DQorR2V0VGhlbWVJbnQNCitHZXRUaGVtZUludExpc3QNCitHZXRUaGVtZU1hcmdpbnMNCitHZXRUaGVtZU1ldHJpYw0KK0dldFRoZW1lUGFydFNpemUNCitHZXRUaGVtZVBvc2l0aW9uDQorR2V0VGhlbWVQcm9wZXJ0eU9yaWdpbg0KK0dldFRoZW1lUmVjdA0KK0dldFRoZW1lU3RyaW5nDQorR2V0VGhlbWVTeXNCb29sDQorR2V0VGhlbWVTeXNDb2xvcg0KK0dldFRoZW1lU3lzQ29sb3JCcnVzaA0KK0dldFRoZW1lU3lzRm9udA0KK0dldFRoZW1lU3lzSW50DQorR2V0VGhlbWVTeXNTaXplDQorR2V0VGhlbWVTeXNTdHJpbmcNCitHZXRUaGVtZVRleHRFeHRlbnQNCitHZXRUaGVtZVRleHRNZXRyaWNzDQorR2V0V2luZG93VGhlbWUNCitIaXRUZXN0VGhlbWVCYWNrZ3JvdW5kDQorSXNBcHBUaGVtZWQNCitJc1RoZW1lQWN0aXZlDQorSXNUaGVtZUJhY2tncm91bmRQYXJ0aWFsbHlUcmFuc3BhcmVudA0KK0lzVGhlbWVEaWFsb2dUZXh0dXJlRW5hYmxlZA0KK0lzVGhlbWVQYXJ0RGVmaW5lZA0KK09wZW5UaGVtZURhdGENCitTZXRUaGVtZUFwcFByb3BlcnRpZXMNCitTZXRXaW5kb3dUaGVtZQ0KK1RoZW1lSW5pdEFwaUhvb2sNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi92YnNjcmlwdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi92YnNjcmlwdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWVmNGNlMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3Zic2NyaXB0LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFZCU0NSSVBULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBWQlNDUklQVC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi92ZHNfcHMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdmRzX3BzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45OGJlZWExCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdmRzX3BzLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHZkc19wcy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgdmRzX3BzLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldFByb3h5RGxsSW5mbw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3Zkc2Jhcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi92ZHNiYXMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIwMDM4NTUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi92ZHNiYXMuZGVmCkBAIC0wLDAgKzEsMjM0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGJwcm92aWRlci5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgYnByb3ZpZGVyLkRMTA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzSGFuZGxlSW1wbDwtMT46OkNWZHNIYW5kbGVJbXBsPC0xPih2b2lkKSBfX3B0cjY0DQorPz8wPyRDVmRzSGFuZGxlSW1wbEAkMD8wQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc0hhbmRsZUltcGw8MD46OkNWZHNIYW5kbGVJbXBsPDA+KHZvaWQpIF9fcHRyNjQNCis/PzA/JENWZHNIYW5kbGVJbXBsQCQwQUBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzSGVhcFB0cjxjaGFyPjo6Q1Zkc0hlYXBQdHI8Y2hhcj4odm9pZCkgX19wdHI2NA0KKz8/MD8kQ1Zkc0hlYXBQdHJAREBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNIZWFwUHRyPHVuc2lnbmVkIGNoYXI+OjpDVmRzSGVhcFB0cjx1bnNpZ25lZCBjaGFyPih2b2lkKSBfX3B0cjY0DQorPz8wPyRDVmRzSGVhcFB0ckBFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc0hlYXBQdHI8dW5zaWduZWQgc2hvcnQ+OjpDVmRzSGVhcFB0cjx1bnNpZ25lZCBzaG9ydD4odm9pZCkgX19wdHI2NA0KKz8/MD8kQ1Zkc0hlYXBQdHJAR0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNIZWFwUHRyPHN0cnVjdCBfQVVDVElPTl9USFJFQURfUEFSQU1FVEVSPjo6Q1Zkc0hlYXBQdHI8c3RydWN0IF9BVUNUSU9OX1RIUkVBRF9QQVJBTUVURVI+KHZvaWQpIF9fcHRyNjQNCis/PzA/JENWZHNIZWFwUHRyQFVfQVVDVElPTl9USFJFQURfUEFSQU1FVEVSQEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzSGVhcFB0cjxzdHJ1Y3QgX0JPT1RfRU5UUlk+OjpDVmRzSGVhcFB0cjxzdHJ1Y3QgX0JPT1RfRU5UUlk+KHZvaWQpIF9fcHRyNjQNCis/PzA/JENWZHNIZWFwUHRyQFVfQk9PVF9FTlRSWUBAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc0hlYXBQdHI8c3RydWN0IF9EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVg+OjpDVmRzSGVhcFB0cjxzdHJ1Y3QgX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWD4odm9pZCkgX19wdHI2NA0KKz8/MD8kQ1Zkc0hlYXBQdHJAVV9EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVhAQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNIZWFwUHRyPHN0cnVjdCBfRklMRV9QQVRIPjo6Q1Zkc0hlYXBQdHI8c3RydWN0IF9GSUxFX1BBVEg+KHZvaWQpIF9fcHRyNjQNCis/PzA/JENWZHNIZWFwUHRyQFVfRklMRV9QQVRIQEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzSGVhcFB0cjxzdHJ1Y3QgX1NQX0RFVklDRV9JTlRFUkZBQ0VfREVUQUlMX0RBVEFfVz46OkNWZHNIZWFwUHRyPHN0cnVjdCBfU1BfREVWSUNFX0lOVEVSRkFDRV9ERVRBSUxfREFUQV9XPih2b2lkKSBfX3B0cjY0DQorPz8wPyRDVmRzSGVhcFB0ckBVX1NQX0RFVklDRV9JTlRFUkZBQ0VfREVUQUlMX0RBVEFfV0BAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc0hlYXBQdHI8c3RydWN0IF9WRFNfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYPjo6Q1Zkc0hlYXBQdHI8c3RydWN0IF9WRFNfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYPih2b2lkKSBfX3B0cjY0DQorPz8wPyRDVmRzSGVhcFB0ckBVX1ZEU19EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVhAQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNIZWFwUHRyPHN0cnVjdCBfVk9MTUdSX0hJRERFTl9WT0xVTUVTPjo6Q1Zkc0hlYXBQdHI8c3RydWN0IF9WT0xNR1JfSElEREVOX1ZPTFVNRVM+KHZvaWQpIF9fcHRyNjQNCis/PzA/JENWZHNIZWFwUHRyQFVfVk9MTUdSX0hJRERFTl9WT0xVTUVTQEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzUHRyPGNoYXI+OjpDVmRzUHRyPGNoYXI+KHZvaWQpIF9fcHRyNjQNCis/PzA/JENWZHNQdHJAREBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNQdHI8dW5zaWduZWQgY2hhcj46OkNWZHNQdHI8dW5zaWduZWQgY2hhcj4odm9pZCkgX19wdHI2NA0KKz8/MD8kQ1Zkc1B0ckBFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc1B0cjx1bnNpZ25lZCBzaG9ydD46OkNWZHNQdHI8dW5zaWduZWQgc2hvcnQ+KHZvaWQpIF9fcHRyNjQNCis/PzA/JENWZHNQdHJAR0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNQdHI8c3RydWN0IF9BVUNUSU9OX1RIUkVBRF9QQVJBTUVURVI+OjpDVmRzUHRyPHN0cnVjdCBfQVVDVElPTl9USFJFQURfUEFSQU1FVEVSPih2b2lkKSBfX3B0cjY0DQorPz8wPyRDVmRzUHRyQFVfQVVDVElPTl9USFJFQURfUEFSQU1FVEVSQEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzUHRyPHN0cnVjdCBfQk9PVF9FTlRSWT46OkNWZHNQdHI8c3RydWN0IF9CT09UX0VOVFJZPih2b2lkKSBfX3B0cjY0DQorPz8wPyRDVmRzUHRyQFVfQk9PVF9FTlRSWUBAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc1B0cjxzdHJ1Y3QgX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWD46OkNWZHNQdHI8c3RydWN0IF9EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVg+KHZvaWQpIF9fcHRyNjQNCis/PzA/JENWZHNQdHJAVV9EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVhAQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNQdHI8c3RydWN0IF9GSUxFX1BBVEg+OjpDVmRzUHRyPHN0cnVjdCBfRklMRV9QQVRIPih2b2lkKSBfX3B0cjY0DQorPz8wPyRDVmRzUHRyQFVfRklMRV9QQVRIQEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzUHRyPHN0cnVjdCBfU1BfREVWSUNFX0lOVEVSRkFDRV9ERVRBSUxfREFUQV9XPjo6Q1Zkc1B0cjxzdHJ1Y3QgX1NQX0RFVklDRV9JTlRFUkZBQ0VfREVUQUlMX0RBVEFfVz4odm9pZCkgX19wdHI2NA0KKz8/MD8kQ1Zkc1B0ckBVX1NQX0RFVklDRV9JTlRFUkZBQ0VfREVUQUlMX0RBVEFfV0BAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc1B0cjxzdHJ1Y3QgX1ZEU19EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVg+OjpDVmRzUHRyPHN0cnVjdCBfVkRTX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWD4odm9pZCkgX19wdHI2NA0KKz8/MD8kQ1Zkc1B0ckBVX1ZEU19EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVhAQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNQdHI8c3RydWN0IF9WT0xNR1JfSElEREVOX1ZPTFVNRVM+OjpDVmRzUHRyPHN0cnVjdCBfVk9MTUdSX0hJRERFTl9WT0xVTUVTPih2b2lkKSBfX3B0cjY0DQorPz8wPyRDVmRzUHRyQFVfVk9MTUdSX0hJRERFTl9WT0xVTUVTQEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUHJ2RW51bU9iamVjdDo6Q1BydkVudW1PYmplY3Qodm9pZCkgX19wdHI2NA0KKz8/MENQcnZFbnVtT2JqZWN0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc0NyaXRpY2FsU2VjdGlvbjo6Q1Zkc0NyaXRpY2FsU2VjdGlvbihzdHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENWZHNDcml0aWNhbFNlY3Rpb25AQFFFQUFAUEVBVV9SVExfQ1JJVElDQUxfU0VDVElPTkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzUG5QTm90aWZpY2F0aW9uQmFzZTo6Q1Zkc1BuUE5vdGlmaWNhdGlvbkJhc2Uodm9pZCkgX19wdHI2NA0KKz8/MENWZHNQblBOb3RpZmljYXRpb25CYXNlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc1N0cnVjdHVyZWRFeGNlcHRpb25UcmFuc2xhdG9yOjpDVmRzU3RydWN0dXJlZEV4Y2VwdGlvblRyYW5zbGF0b3Iodm9pZCkgX19wdHI2NA0KKz8/MENWZHNTdHJ1Y3R1cmVkRXhjZXB0aW9uVHJhbnNsYXRvckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNVbmxvY2tJdDo6Q1Zkc1VubG9ja0l0KGxvbmcgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1Zkc1VubG9ja0l0QEBRRUFBQEFFQUpAWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNIYW5kbGVJbXBsPC0xPjo6fkNWZHNIYW5kbGVJbXBsPC0xPih2b2lkKSBfX3B0cjY0DQorPz8xPyRDVmRzSGFuZGxlSW1wbEAkMD8wQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc0hhbmRsZUltcGw8MD46On5DVmRzSGFuZGxlSW1wbDwwPih2b2lkKSBfX3B0cjY0DQorPz8xPyRDVmRzSGFuZGxlSW1wbEAkMEFAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc0hlYXBQdHI8Y2hhcj46On5DVmRzSGVhcFB0cjxjaGFyPih2b2lkKSBfX3B0cjY0DQorPz8xPyRDVmRzSGVhcFB0ckBEQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc0hlYXBQdHI8dW5zaWduZWQgY2hhcj46On5DVmRzSGVhcFB0cjx1bnNpZ25lZCBjaGFyPih2b2lkKSBfX3B0cjY0DQorPz8xPyRDVmRzSGVhcFB0ckBFQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc0hlYXBQdHI8dW5zaWduZWQgc2hvcnQ+Ojp+Q1Zkc0hlYXBQdHI8dW5zaWduZWQgc2hvcnQ+KHZvaWQpIF9fcHRyNjQNCis/PzE/JENWZHNIZWFwUHRyQEdAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzSGVhcFB0cjxzdHJ1Y3QgX0FVQ1RJT05fVEhSRUFEX1BBUkFNRVRFUj46On5DVmRzSGVhcFB0cjxzdHJ1Y3QgX0FVQ1RJT05fVEhSRUFEX1BBUkFNRVRFUj4odm9pZCkgX19wdHI2NA0KKz8/MT8kQ1Zkc0hlYXBQdHJAVV9BVUNUSU9OX1RIUkVBRF9QQVJBTUVURVJAQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNIZWFwUHRyPHN0cnVjdCBfQk9PVF9FTlRSWT46On5DVmRzSGVhcFB0cjxzdHJ1Y3QgX0JPT1RfRU5UUlk+KHZvaWQpIF9fcHRyNjQNCis/PzE/JENWZHNIZWFwUHRyQFVfQk9PVF9FTlRSWUBAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc0hlYXBQdHI8c3RydWN0IF9EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVg+Ojp+Q1Zkc0hlYXBQdHI8c3RydWN0IF9EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVg+KHZvaWQpIF9fcHRyNjQNCis/PzE/JENWZHNIZWFwUHRyQFVfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYQEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzSGVhcFB0cjxzdHJ1Y3QgX0ZJTEVfUEFUSD46On5DVmRzSGVhcFB0cjxzdHJ1Y3QgX0ZJTEVfUEFUSD4odm9pZCkgX19wdHI2NA0KKz8/MT8kQ1Zkc0hlYXBQdHJAVV9GSUxFX1BBVEhAQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNIZWFwUHRyPHN0cnVjdCBfU1BfREVWSUNFX0lOVEVSRkFDRV9ERVRBSUxfREFUQV9XPjo6fkNWZHNIZWFwUHRyPHN0cnVjdCBfU1BfREVWSUNFX0lOVEVSRkFDRV9ERVRBSUxfREFUQV9XPih2b2lkKSBfX3B0cjY0DQorPz8xPyRDVmRzSGVhcFB0ckBVX1NQX0RFVklDRV9JTlRFUkZBQ0VfREVUQUlMX0RBVEFfV0BAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc0hlYXBQdHI8c3RydWN0IF9WRFNfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYPjo6fkNWZHNIZWFwUHRyPHN0cnVjdCBfVkRTX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWD4odm9pZCkgX19wdHI2NA0KKz8/MT8kQ1Zkc0hlYXBQdHJAVV9WRFNfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYQEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzSGVhcFB0cjxzdHJ1Y3QgX1ZPTE1HUl9ISURERU5fVk9MVU1FUz46On5DVmRzSGVhcFB0cjxzdHJ1Y3QgX1ZPTE1HUl9ISURERU5fVk9MVU1FUz4odm9pZCkgX19wdHI2NA0KKz8/MT8kQ1Zkc0hlYXBQdHJAVV9WT0xNR1JfSElEREVOX1ZPTFVNRVNAQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNQdHI8Y2hhcj46On5DVmRzUHRyPGNoYXI+KHZvaWQpIF9fcHRyNjQNCis/PzE/JENWZHNQdHJAREBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNQdHI8dW5zaWduZWQgY2hhcj46On5DVmRzUHRyPHVuc2lnbmVkIGNoYXI+KHZvaWQpIF9fcHRyNjQNCis/PzE/JENWZHNQdHJARUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNQdHI8dW5zaWduZWQgc2hvcnQ+Ojp+Q1Zkc1B0cjx1bnNpZ25lZCBzaG9ydD4odm9pZCkgX19wdHI2NA0KKz8/MT8kQ1Zkc1B0ckBHQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc1B0cjxzdHJ1Y3QgX0FVQ1RJT05fVEhSRUFEX1BBUkFNRVRFUj46On5DVmRzUHRyPHN0cnVjdCBfQVVDVElPTl9USFJFQURfUEFSQU1FVEVSPih2b2lkKSBfX3B0cjY0DQorPz8xPyRDVmRzUHRyQFVfQVVDVElPTl9USFJFQURfUEFSQU1FVEVSQEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzUHRyPHN0cnVjdCBfQk9PVF9FTlRSWT46On5DVmRzUHRyPHN0cnVjdCBfQk9PVF9FTlRSWT4odm9pZCkgX19wdHI2NA0KKz8/MT8kQ1Zkc1B0ckBVX0JPT1RfRU5UUllAQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNQdHI8c3RydWN0IF9EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVg+Ojp+Q1Zkc1B0cjxzdHJ1Y3QgX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWD4odm9pZCkgX19wdHI2NA0KKz8/MT8kQ1Zkc1B0ckBVX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWEBAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc1B0cjxzdHJ1Y3QgX0ZJTEVfUEFUSD46On5DVmRzUHRyPHN0cnVjdCBfRklMRV9QQVRIPih2b2lkKSBfX3B0cjY0DQorPz8xPyRDVmRzUHRyQFVfRklMRV9QQVRIQEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzUHRyPHN0cnVjdCBfU1BfREVWSUNFX0lOVEVSRkFDRV9ERVRBSUxfREFUQV9XPjo6fkNWZHNQdHI8c3RydWN0IF9TUF9ERVZJQ0VfSU5URVJGQUNFX0RFVEFJTF9EQVRBX1c+KHZvaWQpIF9fcHRyNjQNCis/PzE/JENWZHNQdHJAVV9TUF9ERVZJQ0VfSU5URVJGQUNFX0RFVEFJTF9EQVRBX1dAQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNQdHI8c3RydWN0IF9WRFNfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYPjo6fkNWZHNQdHI8c3RydWN0IF9WRFNfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYPih2b2lkKSBfX3B0cjY0DQorPz8xPyRDVmRzUHRyQFVfVkRTX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWEBAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc1B0cjxzdHJ1Y3QgX1ZPTE1HUl9ISURERU5fVk9MVU1FUz46On5DVmRzUHRyPHN0cnVjdCBfVk9MTUdSX0hJRERFTl9WT0xVTUVTPih2b2lkKSBfX3B0cjY0DQorPz8xPyRDVmRzUHRyQFVfVk9MTUdSX0hJRERFTl9WT0xVTUVTQEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDUHJ2RW51bU9iamVjdDo6fkNQcnZFbnVtT2JqZWN0KHZvaWQpIF9fcHRyNjQNCis/PzFDUHJ2RW51bU9iamVjdEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNDcml0aWNhbFNlY3Rpb246On5DVmRzQ3JpdGljYWxTZWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFDVmRzQ3JpdGljYWxTZWN0aW9uQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc0RlYnVnTG9nOjp+Q1Zkc0RlYnVnTG9nKHZvaWQpIF9fcHRyNjQNCis/PzFDVmRzRGVidWdMb2dAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzUG5QTm90aWZpY2F0aW9uQmFzZTo6fkNWZHNQblBOb3RpZmljYXRpb25CYXNlKHZvaWQpIF9fcHRyNjQNCis/PzFDVmRzUG5QTm90aWZpY2F0aW9uQmFzZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNTdHJ1Y3R1cmVkRXhjZXB0aW9uVHJhbnNsYXRvcjo6fkNWZHNTdHJ1Y3R1cmVkRXhjZXB0aW9uVHJhbnNsYXRvcih2b2lkKSBfX3B0cjY0DQorPz8xQ1Zkc1N0cnVjdHVyZWRFeGNlcHRpb25UcmFuc2xhdG9yQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc1VubG9ja0l0Ojp+Q1Zkc1VubG9ja0l0KHZvaWQpIF9fcHRyNjQNCis/PzFDVmRzVW5sb2NrSXRAQFFFQUFAWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBDVmRzSGFuZGxlSW1wbDwwPjo6b3BlcmF0b3I9KHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDVmRzSGFuZGxlSW1wbEAkMEFAQEBRRUFBUEVBWFBFQVhAWg0KKzsgcHVibGljOiBjaGFyICogX19wdHI2NCBfX2NkZWNsIENWZHNIZWFwUHRyPGNoYXI+OjpvcGVyYXRvcj0oY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JENWZHNIZWFwUHRyQERAQFFFQUFQRUFEUEVBREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ1Zkc0hlYXBQdHI8dW5zaWduZWQgY2hhcj46Om9wZXJhdG9yPSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ1Zkc0hlYXBQdHJARUBAUUVBQVBFQUVQRUFFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1Zkc0hlYXBQdHI8dW5zaWduZWQgc2hvcnQ+OjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDVmRzSGVhcFB0ckBHQEBRRUFBUEVBR1BFQUdAWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0FVQ1RJT05fVEhSRUFEX1BBUkFNRVRFUiAqIF9fcHRyNjQgX19jZGVjbCBDVmRzSGVhcFB0cjxzdHJ1Y3QgX0FVQ1RJT05fVEhSRUFEX1BBUkFNRVRFUj46Om9wZXJhdG9yPShzdHJ1Y3QgX0FVQ1RJT05fVEhSRUFEX1BBUkFNRVRFUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JENWZHNIZWFwUHRyQFVfQVVDVElPTl9USFJFQURfUEFSQU1FVEVSQEBAQFFFQUFQRUFVX0FVQ1RJT05fVEhSRUFEX1BBUkFNRVRFUkBAUEVBVTFAQFoNCis7IHB1YmxpYzogc3RydWN0IF9CT09UX0VOVFJZICogX19wdHI2NCBfX2NkZWNsIENWZHNIZWFwUHRyPHN0cnVjdCBfQk9PVF9FTlRSWT46Om9wZXJhdG9yPShzdHJ1Y3QgX0JPT1RfRU5UUlkgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDVmRzSGVhcFB0ckBVX0JPT1RfRU5UUllAQEBAUUVBQVBFQVVfQk9PVF9FTlRSWUBAUEVBVTFAQFoNCis7IHB1YmxpYzogc3RydWN0IF9GSUxFX1BBVEggKiBfX3B0cjY0IF9fY2RlY2wgQ1Zkc0hlYXBQdHI8c3RydWN0IF9GSUxFX1BBVEg+OjpvcGVyYXRvcj0oc3RydWN0IF9GSUxFX1BBVEggKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDVmRzSGVhcFB0ckBVX0ZJTEVfUEFUSEBAQEBRRUFBUEVBVV9GSUxFX1BBVEhAQFBFQVUxQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBfVkRTX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWCAqIF9fcHRyNjQgX19jZGVjbCBDVmRzSGVhcFB0cjxzdHJ1Y3QgX1ZEU19EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVg+OjpvcGVyYXRvcj0oc3RydWN0IF9WRFNfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYICogX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ1Zkc0hlYXBQdHJAVV9WRFNfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYQEBAQFFFQUFQRUFVX1ZEU19EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVhAQFBFQVUxQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDVmRzSGFuZGxlSW1wbDwwPjo6b3BlcmF0b3I9PSh2b2lkICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OD8kQ1Zkc0hhbmRsZUltcGxAJDBBQEBAUUVCQV9OUEVBWEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDVmRzUHRyPGNoYXI+OjpvcGVyYXRvcj09KGNoYXIgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz84PyRDVmRzUHRyQERAQFFFQkFfTlBFQURAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1Zkc1B0cjx1bnNpZ25lZCBjaGFyPjo6b3BlcmF0b3I9PSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OD8kQ1Zkc1B0ckBFQEBRRUJBX05QRUFFQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENWZHNQdHI8dW5zaWduZWQgc2hvcnQ+OjpvcGVyYXRvcj09KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OD8kQ1Zkc1B0ckBHQEBRRUJBX05QRUFHQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENWZHNQdHI8c3RydWN0IF9CT09UX0VOVFJZPjo6b3BlcmF0b3I9PShzdHJ1Y3QgX0JPT1RfRU5UUlkgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz84PyRDVmRzUHRyQFVfQk9PVF9FTlRSWUBAQEBRRUJBX05QRUFVX0JPT1RfRU5UUllAQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDVmRzUHRyPHN0cnVjdCBfRklMRV9QQVRIPjo6b3BlcmF0b3I9PShzdHJ1Y3QgX0ZJTEVfUEFUSCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Pzg/JENWZHNQdHJAVV9GSUxFX1BBVEhAQEBAUUVCQV9OUEVBVV9GSUxFX1BBVEhAQEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDVmRzSGFuZGxlSW1wbDwwPjo6b3BlcmF0b3IhPSh2b2lkICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OT8kQ1Zkc0hhbmRsZUltcGxAJDBBQEBAUUVCQV9OUEVBWEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDVmRzUHRyPHVuc2lnbmVkIGNoYXI+OjpvcGVyYXRvciE9KHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz85PyRDVmRzUHRyQEVAQFFFQkFfTlBFQUVAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1Zkc1B0cjx1bnNpZ25lZCBzaG9ydD46Om9wZXJhdG9yIT0odW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz85PyRDVmRzUHRyQEdAQFFFQkFfTlBFQUdAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1Zkc1B0cjxzdHJ1Y3QgX0FVQ1RJT05fVEhSRUFEX1BBUkFNRVRFUj46Om9wZXJhdG9yIT0oc3RydWN0IF9BVUNUSU9OX1RIUkVBRF9QQVJBTUVURVIgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz85PyRDVmRzUHRyQFVfQVVDVElPTl9USFJFQURfUEFSQU1FVEVSQEBAQFFFQkFfTlBFQVVfQVVDVElPTl9USFJFQURfUEFSQU1FVEVSQEBAWg0KKzsgcHVibGljOiBjaGFyICYgX19wdHI2NCBfX2NkZWNsIENWZHNQdHI8Y2hhcj46Om9wZXJhdG9yW10odW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/QT8kQ1Zkc1B0ckBEQEBRRUFBQUVBREtAWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNIYW5kbGVJbXBsPC0xPjo6b3BlcmF0b3Igdm9pZCAqIF9fcHRyNjQodm9pZCkgX19wdHI2NA0KKz8/Qj8kQ1Zkc0hhbmRsZUltcGxAJDA/MEBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNIYW5kbGVJbXBsPDA+OjpvcGVyYXRvciB2b2lkICogX19wdHI2NCh2b2lkKSBfX3B0cjY0DQorPz9CPyRDVmRzSGFuZGxlSW1wbEAkMEFAQEBRRUFBUEVBWFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc1B0cjxjaGFyPjo6b3BlcmF0b3IgY2hhciAqIF9fcHRyNjQodm9pZCljb25zdCAgX19wdHI2NA0KKz8/Qj8kQ1Zkc1B0ckBEQEBRRUJBUEVBRFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc1B0cjx1bnNpZ25lZCBjaGFyPjo6b3BlcmF0b3IgdW5zaWduZWQgY2hhciAqIF9fcHRyNjQodm9pZCljb25zdCAgX19wdHI2NA0KKz8/Qj8kQ1Zkc1B0ckBFQEBRRUJBUEVBRVhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc1B0cjx1bnNpZ25lZCBzaG9ydD46Om9wZXJhdG9yIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CPyRDVmRzUHRyQEdAQFFFQkFQRUFHWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzUHRyPHN0cnVjdCBfQVVDVElPTl9USFJFQURfUEFSQU1FVEVSPjo6b3BlcmF0b3Igc3RydWN0IF9BVUNUSU9OX1RIUkVBRF9QQVJBTUVURVIgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0I/JENWZHNQdHJAVV9BVUNUSU9OX1RIUkVBRF9QQVJBTUVURVJAQEBAUUVCQVBFQVVfQVVDVElPTl9USFJFQURfUEFSQU1FVEVSQEBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNQdHI8c3RydWN0IF9EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVg+OjpvcGVyYXRvciBzdHJ1Y3QgX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWCAqIF9fcHRyNjQodm9pZCljb25zdCAgX19wdHI2NA0KKz8/Qj8kQ1Zkc1B0ckBVX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWEBAQEBRRUJBUEVBVV9EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVhAQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc1B0cjxzdHJ1Y3QgX0ZJTEVfUEFUSD46Om9wZXJhdG9yIHN0cnVjdCBfRklMRV9QQVRIICogX19wdHI2NCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CPyRDVmRzUHRyQFVfRklMRV9QQVRIQEBAQFFFQkFQRUFVX0ZJTEVfUEFUSEBAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzUHRyPHN0cnVjdCBfVkRTX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWD46Om9wZXJhdG9yIHN0cnVjdCBfVkRTX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWCAqIF9fcHRyNjQodm9pZCljb25zdCAgX19wdHI2NA0KKz8/Qj8kQ1Zkc1B0ckBVX1ZEU19EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVhAQEBAUUVCQVBFQVVfVkRTX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWEBAWFoNCis7IHB1YmxpYzogc3RydWN0IF9BVUNUSU9OX1RIUkVBRF9QQVJBTUVURVIgKiBfX3B0cjY0IF9fY2RlY2wgQ1Zkc1B0cjxzdHJ1Y3QgX0FVQ1RJT05fVEhSRUFEX1BBUkFNRVRFUj46Om9wZXJhdG9yLT4odm9pZCljb25zdCAgX19wdHI2NA0KKz8/Qz8kQ1Zkc1B0ckBVX0FVQ1RJT05fVEhSRUFEX1BBUkFNRVRFUkBAQEBRRUJBUEVBVV9BVUNUSU9OX1RIUkVBRF9QQVJBTUVURVJAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfQk9PVF9FTlRSWSAqIF9fcHRyNjQgX19jZGVjbCBDVmRzUHRyPHN0cnVjdCBfQk9PVF9FTlRSWT46Om9wZXJhdG9yLT4odm9pZCljb25zdCAgX19wdHI2NA0KKz8/Qz8kQ1Zkc1B0ckBVX0JPT1RfRU5UUllAQEBAUUVCQVBFQVVfQk9PVF9FTlRSWUBAWFoNCis7IHB1YmxpYzogc3RydWN0IF9EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVggKiBfX3B0cjY0IF9fY2RlY2wgQ1Zkc1B0cjxzdHJ1Y3QgX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWD46Om9wZXJhdG9yLT4odm9pZCljb25zdCAgX19wdHI2NA0KKz8/Qz8kQ1Zkc1B0ckBVX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWEBAQEBRRUJBUEVBVV9EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVhAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfRklMRV9QQVRIICogX19wdHI2NCBfX2NkZWNsIENWZHNQdHI8c3RydWN0IF9GSUxFX1BBVEg+OjpvcGVyYXRvci0+KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0M/JENWZHNQdHJAVV9GSUxFX1BBVEhAQEBAUUVCQVBFQVVfRklMRV9QQVRIQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1ZEU19EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVggKiBfX3B0cjY0IF9fY2RlY2wgQ1Zkc1B0cjxzdHJ1Y3QgX1ZEU19EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVg+OjpvcGVyYXRvci0+KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0M/JENWZHNQdHJAVV9WRFNfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYQEBAQFFFQkFQRUFVX1ZEU19EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVhAQFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCBfX2NkZWNsIENWZHNIYW5kbGVJbXBsPC0xPjo6b3BlcmF0b3ImKHZvaWQpIF9fcHRyNjQNCis/P0k/JENWZHNIYW5kbGVJbXBsQCQwPzBAQFFFQUFQRUFQRUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCBfX2NkZWNsIENWZHNQdHI8dW5zaWduZWQgc2hvcnQ+OjpvcGVyYXRvciYodm9pZCkgX19wdHI2NA0KKz8/ST8kQ1Zkc1B0ckBHQEBRRUFBUEVBUEVBR1haDQorOyBwdWJsaWM6IHN0cnVjdCBfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYICogX19wdHI2NCAqIF9fcHRyNjQgX19jZGVjbCBDVmRzUHRyPHN0cnVjdCBfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYPjo6b3BlcmF0b3ImKHZvaWQpIF9fcHRyNjQNCis/P0k/JENWZHNQdHJAVV9EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVhAQEBAUUVBQVBFQVBFQVVfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1ZEU19EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVggKiBfX3B0cjY0ICogX19wdHI2NCBfX2NkZWNsIENWZHNQdHI8c3RydWN0IF9WRFNfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYPjo6b3BlcmF0b3ImKHZvaWQpIF9fcHRyNjQNCis/P0k/JENWZHNQdHJAVV9WRFNfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYQEBAQFFFQUFQRUFQRUFVX1ZEU19EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVhAQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVmRzQXN5bmNPYmplY3RCYXNlOjpBbGxvd0NhbmNlbCh2b2lkKSBfX3B0cjY0DQorP0FsbG93Q2FuY2VsQENWZHNBc3luY09iamVjdEJhc2VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENWZHNQdHI8dW5zaWduZWQgc2hvcnQ+OjpBdHRhY2godW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0F0dGFjaEA/JENWZHNQdHJAR0BAUUVBQVhQRUFHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENWZHNQdHI8c3RydWN0IF9EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVg+OjpBdHRhY2goc3RydWN0IF9EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVggKiBfX3B0cjY0KSBfX3B0cjY0DQorP0F0dGFjaEA/JENWZHNQdHJAVV9EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVhAQEBAUUVBQVhQRUFVX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENWZHNQdHI8c3RydWN0IF9TUF9ERVZJQ0VfSU5URVJGQUNFX0RFVEFJTF9EQVRBX1c+OjpBdHRhY2goc3RydWN0IF9TUF9ERVZJQ0VfSU5URVJGQUNFX0RFVEFJTF9EQVRBX1cgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0F0dGFjaEA/JENWZHNQdHJAVV9TUF9ERVZJQ0VfSU5URVJGQUNFX0RFVEFJTF9EQVRBX1dAQEBAUUVBQVhQRUFVX1NQX0RFVklDRV9JTlRFUkZBQ0VfREVUQUlMX0RBVEFfV0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENWZHNQdHI8c3RydWN0IF9WRFNfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYPjo6QXR0YWNoKHN0cnVjdCBfVkRTX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QXR0YWNoQD8kQ1Zkc1B0ckBVX1ZEU19EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVhAQEBAUUVBQVhQRUFVX1ZEU19EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVhAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVmRzUHRyPHN0cnVjdCBfVk9MTUdSX0hJRERFTl9WT0xVTUVTPjo6QXR0YWNoKHN0cnVjdCBfVk9MTUdSX0hJRERFTl9WT0xVTUVTICogX19wdHI2NCkgX19wdHI2NA0KKz9BdHRhY2hAPyRDVmRzUHRyQFVfVk9MTUdSX0hJRERFTl9WT0xVTUVTQEBAQFFFQUFYUEVBVV9WT0xNR1JfSElEREVOX1ZPTFVNRVNAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVmRzSGFuZGxlSW1wbDwtMT46OkNsb3NlKHZvaWQpIF9fcHRyNjQNCis/Q2xvc2VAPyRDVmRzSGFuZGxlSW1wbEAkMD8wQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ1Zkc0hhbmRsZUltcGw8LTE+OjpEZXRhY2godm9pZCkgX19wdHI2NA0KKz9EZXRhY2hAPyRDVmRzSGFuZGxlSW1wbEAkMD8wQEBRRUFBUEVBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENWZHNQdHI8dW5zaWduZWQgc2hvcnQ+OjpEZXRhY2godm9pZCkgX19wdHI2NA0KKz9EZXRhY2hAPyRDVmRzUHRyQEdAQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogc3RydWN0IF9BVUNUSU9OX1RIUkVBRF9QQVJBTUVURVIgKiBfX3B0cjY0IF9fY2RlY2wgQ1Zkc1B0cjxzdHJ1Y3QgX0FVQ1RJT05fVEhSRUFEX1BBUkFNRVRFUj46OkRldGFjaCh2b2lkKSBfX3B0cjY0DQorP0RldGFjaEA/JENWZHNQdHJAVV9BVUNUSU9OX1RIUkVBRF9QQVJBTUVURVJAQEBAUUVBQVBFQVVfQVVDVElPTl9USFJFQURfUEFSQU1FVEVSQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWCAqIF9fcHRyNjQgX19jZGVjbCBDVmRzUHRyPHN0cnVjdCBfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYPjo6RGV0YWNoKHZvaWQpIF9fcHRyNjQNCis/RGV0YWNoQD8kQ1Zkc1B0ckBVX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWEBAQEBRRUFBUEVBVV9EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVhAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfVkRTX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWCAqIF9fcHRyNjQgX19jZGVjbCBDVmRzUHRyPHN0cnVjdCBfVkRTX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWD46OkRldGFjaCh2b2lkKSBfX3B0cjY0DQorP0RldGFjaEA/JENWZHNQdHJAVV9WRFNfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYQEBAQFFFQUFQRUFVX1ZEU19EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVhAQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVmRzQXN5bmNPYmplY3RCYXNlOjpEaXNhbGxvd0NhbmNlbCh2b2lkKSBfX3B0cjY0DQorP0Rpc2FsbG93Q2FuY2VsQENWZHNBc3luY09iamVjdEJhc2VAQFFFQUFYWFoNCis7IHB1YmxpYzogZW51bSBfX01JRExfX19NSURMX2l0Zl92ZHNzd3Bydl8wMDAwXzAwMDIgIF9fY2RlY2wgQ1Zkc0FzeW5jT2JqZWN0QmFzZTo6R2V0T3V0cHV0VHlwZSh2b2lkKSBfX3B0cjY0DQorP0dldE91dHB1dFR5cGVAQ1Zkc0FzeW5jT2JqZWN0QmFzZUBAUUVBQT9BVzRfX01JRExfX19NSURMX2l0Zl92ZHNzd3Bydl8wMDAwXzAwMDJAQFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENWZHNBc3luY09iamVjdEJhc2U6OklzQ2FuY2VsUmVxdWVzdGVkKHZvaWQpIF9fcHRyNjQNCis/SXNDYW5jZWxSZXF1ZXN0ZWRAQ1Zkc0FzeW5jT2JqZWN0QmFzZUBAUUVBQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Zkc0FzeW5jT2JqZWN0QmFzZTo6U2V0T3V0cHV0VHlwZShlbnVtIF9fTUlETF9fX01JRExfaXRmX3Zkc3N3cHJ2XzAwMDBfMDAwMikgX19wdHI2NA0KKz9TZXRPdXRwdXRUeXBlQENWZHNBc3luY09iamVjdEJhc2VAQFFFQUFYVzRfX01JRExfX19NSURMX2l0Zl92ZHNzd3Bydl8wMDAwXzAwMDJAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUHJ2RW51bU9iamVjdDo6U2V0UG9zaXRpb25Ub0xhc3Qodm9pZCkgX19wdHI2NA0KKz9TZXRQb3NpdGlvblRvTGFzdEBDUHJ2RW51bU9iamVjdEBAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVmRzRGVidWdMb2c6OlRyYWNpbmdMb2dFbmFibGVkKHZvaWQpIF9fcHRyNjQNCis/VHJhY2luZ0xvZ0VuYWJsZWRAQ1Zkc0RlYnVnTG9nQEBRRUFBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVmRzQXN5bmNPYmplY3RCYXNlOjpaZXJvQXN5bmNPdXQodm9pZCkgX19wdHI2NA0KKz9aZXJvQXN5bmNPdXRAQ1Zkc0FzeW5jT2JqZWN0QmFzZUBAUUVBQVhYWg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvdmRzZHluZHIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdmRzZHluZHIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVhZWIyODMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi92ZHNkeW5kci5kZWYKQEAgLTAsMCArMSw1MCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB2ZHNkeW5kci5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgdmRzZHluZHIuRExMDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIENQcnZFbnVtT2JqZWN0OjpDUHJ2RW51bU9iamVjdCh2b2lkKSBfX3B0cjY0DQorPz8wQ1BydkVudW1PYmplY3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzQ3JpdGljYWxTZWN0aW9uOjpDVmRzQ3JpdGljYWxTZWN0aW9uKHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1Zkc0NyaXRpY2FsU2VjdGlvbkBAUUVBQUBQRUFVX1JUTF9DUklUSUNBTF9TRUNUSU9OQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNQblBOb3RpZmljYXRpb25CYXNlOjpDVmRzUG5QTm90aWZpY2F0aW9uQmFzZSh2b2lkKSBfX3B0cjY0DQorPz8wQ1Zkc1BuUE5vdGlmaWNhdGlvbkJhc2VAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzU3RydWN0dXJlZEV4Y2VwdGlvblRyYW5zbGF0b3I6OkNWZHNTdHJ1Y3R1cmVkRXhjZXB0aW9uVHJhbnNsYXRvcih2b2lkKSBfX3B0cjY0DQorPz8wQ1Zkc1N0cnVjdHVyZWRFeGNlcHRpb25UcmFuc2xhdG9yQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc1VubG9ja0l0OjpDVmRzVW5sb2NrSXQobG9uZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDVmRzVW5sb2NrSXRAQFFFQUFAQUVBSkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1BydkVudW1PYmplY3Q6On5DUHJ2RW51bU9iamVjdCh2b2lkKSBfX3B0cjY0DQorPz8xQ1BydkVudW1PYmplY3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzQ3JpdGljYWxTZWN0aW9uOjp+Q1Zkc0NyaXRpY2FsU2VjdGlvbih2b2lkKSBfX3B0cjY0DQorPz8xQ1Zkc0NyaXRpY2FsU2VjdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNEZWJ1Z0xvZzo6fkNWZHNEZWJ1Z0xvZyh2b2lkKSBfX3B0cjY0DQorPz8xQ1Zkc0RlYnVnTG9nQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc1BuUE5vdGlmaWNhdGlvbkJhc2U6On5DVmRzUG5QTm90aWZpY2F0aW9uQmFzZSh2b2lkKSBfX3B0cjY0DQorPz8xQ1Zkc1BuUE5vdGlmaWNhdGlvbkJhc2VAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzU3RydWN0dXJlZEV4Y2VwdGlvblRyYW5zbGF0b3I6On5DVmRzU3RydWN0dXJlZEV4Y2VwdGlvblRyYW5zbGF0b3Iodm9pZCkgX19wdHI2NA0KKz8/MUNWZHNTdHJ1Y3R1cmVkRXhjZXB0aW9uVHJhbnNsYXRvckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNVbmxvY2tJdDo6fkNWZHNVbmxvY2tJdCh2b2lkKSBfX3B0cjY0DQorPz8xQ1Zkc1VubG9ja0l0QEBRRUFBQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVmRzQXN5bmNPYmplY3RCYXNlOjpBbGxvd0NhbmNlbCh2b2lkKSBfX3B0cjY0DQorP0FsbG93Q2FuY2VsQENWZHNBc3luY09iamVjdEJhc2VAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENWZHNBc3luY09iamVjdEJhc2U6OkRpc2FsbG93Q2FuY2VsKHZvaWQpIF9fcHRyNjQNCis/RGlzYWxsb3dDYW5jZWxAQ1Zkc0FzeW5jT2JqZWN0QmFzZUBAUUVBQVhYWg0KKzsgcHVibGljOiBlbnVtIF9fTUlETF9fX01JRExfaXRmX3Zkc3N3cHJ2XzAwMDBfMDAwMiAgX19jZGVjbCBDVmRzQXN5bmNPYmplY3RCYXNlOjpHZXRPdXRwdXRUeXBlKHZvaWQpIF9fcHRyNjQNCis/R2V0T3V0cHV0VHlwZUBDVmRzQXN5bmNPYmplY3RCYXNlQEBRRUFBP0FXNF9fTUlETF9fX01JRExfaXRmX3Zkc3N3cHJ2XzAwMDBfMDAwMkBAWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Zkc0FzeW5jT2JqZWN0QmFzZTo6SXNDYW5jZWxSZXF1ZXN0ZWQodm9pZCkgX19wdHI2NA0KKz9Jc0NhbmNlbFJlcXVlc3RlZEBDVmRzQXN5bmNPYmplY3RCYXNlQEBRRUFBSFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVmRzQXN5bmNPYmplY3RCYXNlOjpTZXRPdXRwdXRUeXBlKGVudW0gX19NSURMX19fTUlETF9pdGZfdmRzc3dwcnZfMDAwMF8wMDAyKSBfX3B0cjY0DQorP1NldE91dHB1dFR5cGVAQ1Zkc0FzeW5jT2JqZWN0QmFzZUBAUUVBQVhXNF9fTUlETF9fX01JRExfaXRmX3Zkc3N3cHJ2XzAwMDBfMDAwMkBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQcnZFbnVtT2JqZWN0OjpTZXRQb3NpdGlvblRvTGFzdCh2b2lkKSBfX3B0cjY0DQorP1NldFBvc2l0aW9uVG9MYXN0QENQcnZFbnVtT2JqZWN0QEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENWZHNEZWJ1Z0xvZzo6VHJhY2luZ0xvZ0VuYWJsZWQodm9pZCkgX19wdHI2NA0KKz9UcmFjaW5nTG9nRW5hYmxlZEBDVmRzRGVidWdMb2dAQFFFQUFIWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENWZHNBc3luY09iamVjdEJhc2U6Olplcm9Bc3luY091dCh2b2lkKSBfX3B0cjY0DQorP1plcm9Bc3luY091dEBDVmRzQXN5bmNPYmplY3RCYXNlQEBRRUFBWFhaDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi92ZHN1dGlsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3Zkc3V0aWwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcyNjc1YWYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi92ZHN1dGlsLmRlZgpAQCAtMCwwICsxLDI2NyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB2ZHN1dGlsLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSB2ZHN1dGlsLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzSGFuZGxlSW1wbDwtMT46OkNWZHNIYW5kbGVJbXBsPC0xPih2b2lkKSBfX3B0cjY0DQorPz8wPyRDVmRzSGFuZGxlSW1wbEAkMD8wQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc0hlYXBQdHI8c3RydWN0IF9NT1VOVE1HUl9NT1VOVF9QT0lOVD46OkNWZHNIZWFwUHRyPHN0cnVjdCBfTU9VTlRNR1JfTU9VTlRfUE9JTlQ+KHZvaWQpIF9fcHRyNjQNCis/PzA/JENWZHNIZWFwUHRyQFVfTU9VTlRNR1JfTU9VTlRfUE9JTlRAQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNIZWFwUHRyPHN0cnVjdCBfTU9VTlRNR1JfTU9VTlRfUE9JTlRTPjo6Q1Zkc0hlYXBQdHI8c3RydWN0IF9NT1VOVE1HUl9NT1VOVF9QT0lOVFM+KHZvaWQpIF9fcHRyNjQNCis/PzA/JENWZHNIZWFwUHRyQFVfTU9VTlRNR1JfTU9VTlRfUE9JTlRTQEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzUHRyPHN0cnVjdCBfTU9VTlRNR1JfTU9VTlRfUE9JTlQ+OjpDVmRzUHRyPHN0cnVjdCBfTU9VTlRNR1JfTU9VTlRfUE9JTlQ+KHZvaWQpIF9fcHRyNjQNCis/PzA/JENWZHNQdHJAVV9NT1VOVE1HUl9NT1VOVF9QT0lOVEBAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc1B0cjxzdHJ1Y3QgX01PVU5UTUdSX01PVU5UX1BPSU5UUz46OkNWZHNQdHI8c3RydWN0IF9NT1VOVE1HUl9NT1VOVF9QT0lOVFM+KHZvaWQpIF9fcHRyNjQNCis/PzA/JENWZHNQdHJAVV9NT1VOVE1HUl9NT1VOVF9QT0lOVFNAQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENQcnZFbnVtT2JqZWN0OjpDUHJ2RW51bU9iamVjdCh2b2lkKSBfX3B0cjY0DQorPz8wQ1BydkVudW1PYmplY3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzQXN5bmNPYmplY3RCYXNlOjpDVmRzQXN5bmNPYmplY3RCYXNlKHZvaWQpIF9fcHRyNjQNCis/PzBDVmRzQXN5bmNPYmplY3RCYXNlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc0NhbGxUcmFjZXI6OkNWZHNDYWxsVHJhY2VyKHVuc2lnbmVkIGxvbmcsY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDVmRzQ2FsbFRyYWNlckBAUUVBQUBLUEVCREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc0NyaXRpY2FsU2VjdGlvbjo6Q1Zkc0NyaXRpY2FsU2VjdGlvbihzdHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENWZHNDcml0aWNhbFNlY3Rpb25AQFFFQUFAUEVBVV9SVExfQ1JJVElDQUxfU0VDVElPTkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzRGVidWdMb2c6OkNWZHNEZWJ1Z0xvZyhpbnQpIF9fcHRyNjQNCis/PzBDVmRzRGVidWdMb2dAQFFFQUFASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc1BuUE5vdGlmaWNhdGlvbkJhc2U6OkNWZHNQblBOb3RpZmljYXRpb25CYXNlKHZvaWQpIF9fcHRyNjQNCis/PzBDVmRzUG5QTm90aWZpY2F0aW9uQmFzZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNTdHJ1Y3R1cmVkRXhjZXB0aW9uVHJhbnNsYXRvcjo6Q1Zkc1N0cnVjdHVyZWRFeGNlcHRpb25UcmFuc2xhdG9yKHZvaWQpIF9fcHRyNjQNCis/PzBDVmRzU3RydWN0dXJlZEV4Y2VwdGlvblRyYW5zbGF0b3JAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzVW5sb2NrSXQ6OkNWZHNVbmxvY2tJdChsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENWZHNVbmxvY2tJdEBAUUVBQUBBRUFKQFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzSGFuZGxlSW1wbDwtMT46On5DVmRzSGFuZGxlSW1wbDwtMT4odm9pZCkgX19wdHI2NA0KKz8/MT8kQ1Zkc0hhbmRsZUltcGxAJDA/MEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNIZWFwUHRyPHN0cnVjdCBfTU9VTlRNR1JfTU9VTlRfUE9JTlQ+Ojp+Q1Zkc0hlYXBQdHI8c3RydWN0IF9NT1VOVE1HUl9NT1VOVF9QT0lOVD4odm9pZCkgX19wdHI2NA0KKz8/MT8kQ1Zkc0hlYXBQdHJAVV9NT1VOVE1HUl9NT1VOVF9QT0lOVEBAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc0hlYXBQdHI8c3RydWN0IF9NT1VOVE1HUl9NT1VOVF9QT0lOVFM+Ojp+Q1Zkc0hlYXBQdHI8c3RydWN0IF9NT1VOVE1HUl9NT1VOVF9QT0lOVFM+KHZvaWQpIF9fcHRyNjQNCis/PzE/JENWZHNIZWFwUHRyQFVfTU9VTlRNR1JfTU9VTlRfUE9JTlRTQEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzUHRyPHN0cnVjdCBfTU9VTlRNR1JfTU9VTlRfUE9JTlQ+Ojp+Q1Zkc1B0cjxzdHJ1Y3QgX01PVU5UTUdSX01PVU5UX1BPSU5UPih2b2lkKSBfX3B0cjY0DQorPz8xPyRDVmRzUHRyQFVfTU9VTlRNR1JfTU9VTlRfUE9JTlRAQEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNQdHI8c3RydWN0IF9NT1VOVE1HUl9NT1VOVF9QT0lOVFM+Ojp+Q1Zkc1B0cjxzdHJ1Y3QgX01PVU5UTUdSX01PVU5UX1BPSU5UUz4odm9pZCkgX19wdHI2NA0KKz8/MT8kQ1Zkc1B0ckBVX01PVU5UTUdSX01PVU5UX1BPSU5UU0BAQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1BydkVudW1PYmplY3Q6On5DUHJ2RW51bU9iamVjdCh2b2lkKSBfX3B0cjY0DQorPz8xQ1BydkVudW1PYmplY3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzQXN5bmNPYmplY3RCYXNlOjp+Q1Zkc0FzeW5jT2JqZWN0QmFzZSh2b2lkKSBfX3B0cjY0DQorPz8xQ1Zkc0FzeW5jT2JqZWN0QmFzZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNDYWxsVHJhY2VyOjp+Q1Zkc0NhbGxUcmFjZXIodm9pZCkgX19wdHI2NA0KKz8/MUNWZHNDYWxsVHJhY2VyQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc0NyaXRpY2FsU2VjdGlvbjo6fkNWZHNDcml0aWNhbFNlY3Rpb24odm9pZCkgX19wdHI2NA0KKz8/MUNWZHNDcml0aWNhbFNlY3Rpb25AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzRGVidWdMb2c6On5DVmRzRGVidWdMb2codm9pZCkgX19wdHI2NA0KKz8/MUNWZHNEZWJ1Z0xvZ0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNQblBOb3RpZmljYXRpb25CYXNlOjp+Q1Zkc1BuUE5vdGlmaWNhdGlvbkJhc2Uodm9pZCkgX19wdHI2NA0KKz8/MUNWZHNQblBOb3RpZmljYXRpb25CYXNlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zkc1N0cnVjdHVyZWRFeGNlcHRpb25UcmFuc2xhdG9yOjp+Q1Zkc1N0cnVjdHVyZWRFeGNlcHRpb25UcmFuc2xhdG9yKHZvaWQpIF9fcHRyNjQNCis/PzFDVmRzU3RydWN0dXJlZEV4Y2VwdGlvblRyYW5zbGF0b3JAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzVW5sb2NrSXQ6On5DVmRzVW5sb2NrSXQodm9pZCkgX19wdHI2NA0KKz8/MUNWZHNVbmxvY2tJdEBAUUVBQUBYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENWZHNIYW5kbGVJbXBsPC0xPjo6b3BlcmF0b3I9KHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDVmRzSGFuZGxlSW1wbEAkMD8wQEBRRUFBUEVBWFBFQVhAWg0KKzsgcHVibGljOiBzdHJ1Y3QgX01PVU5UTUdSX01PVU5UX1BPSU5UICogX19wdHI2NCBfX2NkZWNsIENWZHNIZWFwUHRyPHN0cnVjdCBfTU9VTlRNR1JfTU9VTlRfUE9JTlQ+OjpvcGVyYXRvcj0oc3RydWN0IF9NT1VOVE1HUl9NT1VOVF9QT0lOVCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JENWZHNIZWFwUHRyQFVfTU9VTlRNR1JfTU9VTlRfUE9JTlRAQEBAUUVBQVBFQVVfTU9VTlRNR1JfTU9VTlRfUE9JTlRAQFBFQVUxQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBfTU9VTlRNR1JfTU9VTlRfUE9JTlRTICogX19wdHI2NCBfX2NkZWNsIENWZHNIZWFwUHRyPHN0cnVjdCBfTU9VTlRNR1JfTU9VTlRfUE9JTlRTPjo6b3BlcmF0b3I9KHN0cnVjdCBfTU9VTlRNR1JfTU9VTlRfUE9JTlRTICogX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ1Zkc0hlYXBQdHJAVV9NT1VOVE1HUl9NT1VOVF9QT0lOVFNAQEBAUUVBQVBFQVVfTU9VTlRNR1JfTU9VTlRfUE9JTlRTQEBQRUFVMUBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1Zkc0hhbmRsZUltcGw8LTE+OjpvcGVyYXRvcj09KHZvaWQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz84PyRDVmRzSGFuZGxlSW1wbEAkMD8wQEBRRUJBX05QRUFYQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENWZHNQdHI8c3RydWN0IF9NT1VOVE1HUl9NT1VOVF9QT0lOVD46Om9wZXJhdG9yPT0oc3RydWN0IF9NT1VOVE1HUl9NT1VOVF9QT0lOVCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/Pzg/JENWZHNQdHJAVV9NT1VOVE1HUl9NT1VOVF9QT0lOVEBAQEBRRUJBX05QRUFVX01PVU5UTUdSX01PVU5UX1BPSU5UQEBAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ1Zkc1B0cjxzdHJ1Y3QgX01PVU5UTUdSX01PVU5UX1BPSU5UUz46Om9wZXJhdG9yPT0oc3RydWN0IF9NT1VOVE1HUl9NT1VOVF9QT0lOVFMgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz84PyRDVmRzUHRyQFVfTU9VTlRNR1JfTU9VTlRfUE9JTlRTQEBAQFFFQkFfTlBFQVVfTU9VTlRNR1JfTU9VTlRfUE9JTlRTQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNIYW5kbGVJbXBsPC0xPjo6b3BlcmF0b3Igdm9pZCAqIF9fcHRyNjQodm9pZCkgX19wdHI2NA0KKz8/Qj8kQ1Zkc0hhbmRsZUltcGxAJDA/MEBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWZHNQdHI8c3RydWN0IF9NT1VOVE1HUl9NT1VOVF9QT0lOVD46Om9wZXJhdG9yIHN0cnVjdCBfTU9VTlRNR1JfTU9VTlRfUE9JTlQgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0I/JENWZHNQdHJAVV9NT1VOVE1HUl9NT1VOVF9QT0lOVEBAQEBRRUJBUEVBVV9NT1VOVE1HUl9NT1VOVF9QT0lOVEBAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmRzUHRyPHN0cnVjdCBfTU9VTlRNR1JfTU9VTlRfUE9JTlRTPjo6b3BlcmF0b3Igc3RydWN0IF9NT1VOVE1HUl9NT1VOVF9QT0lOVFMgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0I/JENWZHNQdHJAVV9NT1VOVE1HUl9NT1VOVF9QT0lOVFNAQEBAUUVCQVBFQVVfTU9VTlRNR1JfTU9VTlRfUE9JTlRTQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX01PVU5UTUdSX01PVU5UX1BPSU5UICogX19wdHI2NCBfX2NkZWNsIENWZHNQdHI8c3RydWN0IF9NT1VOVE1HUl9NT1VOVF9QT0lOVD46Om9wZXJhdG9yLT4odm9pZCljb25zdCAgX19wdHI2NA0KKz8/Qz8kQ1Zkc1B0ckBVX01PVU5UTUdSX01PVU5UX1BPSU5UQEBAQFFFQkFQRUFVX01PVU5UTUdSX01PVU5UX1BPSU5UQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX01PVU5UTUdSX01PVU5UX1BPSU5UUyAqIF9fcHRyNjQgX19jZGVjbCBDVmRzUHRyPHN0cnVjdCBfTU9VTlRNR1JfTU9VTlRfUE9JTlRTPjo6b3BlcmF0b3ItPih2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9DPyRDVmRzUHRyQFVfTU9VTlRNR1JfTU9VTlRfUE9JTlRTQEBAQFFFQkFQRUFVX01PVU5UTUdSX01PVU5UX1BPSU5UU0BAWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0IF9fY2RlY2wgQ1Zkc0hhbmRsZUltcGw8LTE+OjpvcGVyYXRvciYodm9pZCkgX19wdHI2NA0KKz8/ST8kQ1Zkc0hhbmRsZUltcGxAJDA/MEBAUUVBQVBFQVBFQVhYWg0KKzsgYm9vbCBfX2NkZWNsIG9wZXJhdG9yPChzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQpDQorPz9NQFlBX05BRUJVX0dVSURAQDBAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEFkZEV2ZW50U291cmNlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3B0cjY0KQ0KKz9BZGRFdmVudFNvdXJjZUBAWUFLUEVBR1BFQVVISU5TVEFOQ0VfX0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENWZHNBc3luY09iamVjdEJhc2U6OkFsbG93Q2FuY2VsKHZvaWQpIF9fcHRyNjQNCis/QWxsb3dDYW5jZWxAQ1Zkc0FzeW5jT2JqZWN0QmFzZUBAUUVBQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1BydkVudW1PYmplY3Q6OkFwcGVuZChzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FwcGVuZEBDUHJ2RW51bU9iamVjdEBAUUVBQUpQRUFVSVVua25vd25AQEBaDQorOyBsb25nIF9fY2RlY2wgQXNzaWduVGVtcFZvbHVtZU5hbWUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBjb25zdCkNCis/QXNzaWduVGVtcFZvbHVtZU5hbWVAQFlBSlBFQUdRRUFHQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1Zkc0FzeW5jT2JqZWN0QmFzZTo6Q2FuY2VsKHZvaWQpIF9fcHRyNjQNCis/Q2FuY2VsQENWZHNBc3luY09iamVjdEJhc2VAQFVFQUFKWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQcnZFbnVtT2JqZWN0OjpDbGVhcih2b2lkKSBfX3B0cjY0DQorP0NsZWFyQENQcnZFbnVtT2JqZWN0QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENQcnZFbnVtT2JqZWN0OjpDbG9uZShzdHJ1Y3QgSUVudW1WZHNPYmplY3QgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DbG9uZUBDUHJ2RW51bU9iamVjdEBAVUVBQUpQRUFQRUFVSUVudW1WZHNPYmplY3RAQEBaDQorOyB2b2lkIF9fY2RlY2wgQ29GcmVlU3RyaW5nQXJyYXkodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCxsb25nKQ0KKz9Db0ZyZWVTdHJpbmdBcnJheUBAWUFYUEVBUEVBR0pAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENyZWF0ZURldmljZUluZm9TZXQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCxzdHJ1Y3QgX1NQX0RFVklORk9fREFUQSAqIF9fcHRyNjQpDQorP0NyZWF0ZURldmljZUluZm9TZXRAQFlBS1BFQUdQRUFQRUFYUEVBVV9TUF9ERVZJTkZPX0RBVEFAQEBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1Zkc1BuUE5vdGlmaWNhdGlvbkJhc2U6OkNyZWF0ZUxpc3RlblRocmVhZCh2b2lkKSBfX3B0cjY0DQorP0NyZWF0ZUxpc3RlblRocmVhZEBDVmRzUG5QTm90aWZpY2F0aW9uQmFzZUBAQUVBQUtYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENWZHNIYW5kbGVJbXBsPC0xPjo6RGV0YWNoKHZvaWQpIF9fcHRyNjQNCis/RGV0YWNoQD8kQ1Zkc0hhbmRsZUltcGxAJDA/MEBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Zkc0FzeW5jT2JqZWN0QmFzZTo6RGlzYWxsb3dDYW5jZWwodm9pZCkgX19wdHI2NA0KKz9EaXNhbGxvd0NhbmNlbEBDVmRzQXN5bmNPYmplY3RCYXNlQEBRRUFBWFhaDQorOyB2b2lkIF9fY2RlY2wgR2FyYmFnZUNvbGxlY3REcml2ZUxldHRlcnModm9pZCkNCis/R2FyYmFnZUNvbGxlY3REcml2ZUxldHRlcnNAQFlBWFhaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgR2V0RGV2aWNlQW5kTWVkaWFUeXBlKHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KQ0KKz9HZXREZXZpY2VBbmRNZWRpYVR5cGVAQFlBS1BFQVhQRUFLMUBaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgR2V0RGV2aWNlTG9jYXRpb24odm9pZCAqIF9fcHRyNjQsc3RydWN0IF9WRFNfRElTS19QUk9QICogX19wdHI2NCkNCis/R2V0RGV2aWNlTG9jYXRpb25AQFlBS1BFQVhQRUFVX1ZEU19ESVNLX1BST1BAQEBaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgR2V0RGV2aWNlTmFtZSh2b2lkICogX19wdHI2NCxpbnQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IGNvbnN0KQ0KKz9HZXREZXZpY2VOYW1lQEBZQUtQRUFYSFFFQUdAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEdldERldmljZU51bWJlcih2b2lkICogX19wdHI2NCxzdHJ1Y3QgX1NUT1JBR0VfREVWSUNFX05VTUJFUiAqIF9fcHRyNjQpDQorP0dldERldmljZU51bWJlckBAWUFLUEVBWFBFQVVfU1RPUkFHRV9ERVZJQ0VfTlVNQkVSQEBAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEdldERldmljZVJlZ2lzdHJ5UHJvcGVydHkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKQ0KKz9HZXREZXZpY2VSZWdpc3RyeVByb3BlcnR5QEBZQUtLS1BFQVBFQUVLQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBHZXREZXZpY2VSZWdpc3RyeVByb3BlcnR5KHZvaWQgKiBfX3B0cjY0LHN0cnVjdCBfU1BfREVWSU5GT19EQVRBICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKQ0KKz9HZXREZXZpY2VSZWdpc3RyeVByb3BlcnR5QEBZQUtQRUFYUEVBVV9TUF9ERVZJTkZPX0RBVEFAQEtQRUFQRUFFS0BaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgR2V0RGlza0xheW91dCh2b2lkICogX19wdHI2NCxzdHJ1Y3QgX0RSSVZFX0xBWU9VVF9JTkZPUk1BVElPTl9FWCAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9HZXREaXNrTGF5b3V0QEBZQUtQRUFYUEVBUEVBVV9EUklWRV9MQVlPVVRfSU5GT1JNQVRJT05fRVhAQEBaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgR2V0SW50ZXJmYWNlRGV0YWlsRGF0YSh2b2lkICogX19wdHI2NCxzdHJ1Y3QgX1NQX0RFVklDRV9JTlRFUkZBQ0VfREFUQSAqIF9fcHRyNjQsc3RydWN0IF9TUF9ERVZJQ0VfSU5URVJGQUNFX0RFVEFJTF9EQVRBX1cgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/R2V0SW50ZXJmYWNlRGV0YWlsRGF0YUBAWUFLUEVBWFBFQVVfU1BfREVWSUNFX0lOVEVSRkFDRV9EQVRBQEBQRUFQRUFVX1NQX0RFVklDRV9JTlRFUkZBQ0VfREVUQUlMX0RBVEFfV0BAQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBHZXRJc1JlbW92YWJsZSh2b2lkICogX19wdHI2NCxpbnQgKiBfX3B0cjY0KQ0KKz9HZXRJc1JlbW92YWJsZUBAWUFLUEVBWFBFQUhAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEdldE1lZGlhR2VvbWV0cnkodm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgX0RJU0tfR0VPTUVUUlkgKiBfX3B0cjY0KQ0KKz9HZXRNZWRpYUdlb21ldHJ5QEBZQUtQRUFYS1BFQVVfRElTS19HRU9NRVRSWUBAQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBHZXRNZWRpYUdlb21ldHJ5KHZvaWQgKiBfX3B0cjY0LHN0cnVjdCBfVkRTX0RJU0tfUFJPUCAqIF9fcHRyNjQpDQorP0dldE1lZGlhR2VvbWV0cnlAQFlBS1BFQVhQRUFVX1ZEU19ESVNLX1BST1BAQEBaDQorOyBwdWJsaWM6IGVudW0gX19NSURMX19fTUlETF9pdGZfdmRzY21seXJfMDAwMF8wMDAyICBfX2NkZWNsIENWZHNBc3luY09iamVjdEJhc2U6OkdldE91dHB1dFR5cGUodm9pZCkgX19wdHI2NA0KKz9HZXRPdXRwdXRUeXBlQENWZHNBc3luY09iamVjdEJhc2VAQFFFQUE/QVc0X19NSURMX19fTUlETF9pdGZfdmRzY21seXJfMDAwMF8wMDAyQEBYWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEdldFBhcnRpdGlvbkluZm9ybWF0aW9uKHZvaWQgKiBfX3B0cjY0LHN0cnVjdCBfUEFSVElUSU9OX0lORk9STUFUSU9OX0VYICogX19wdHI2NCkNCis/R2V0UGFydGl0aW9uSW5mb3JtYXRpb25AQFlBS1BFQVhQRUFVX1BBUlRJVElPTl9JTkZPUk1BVElPTl9FWEBAQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBHZXRWb2x1bWVEaXNrRXh0ZW50SW5mbyh2b2lkICogX19wdHI2NCxzdHJ1Y3QgX1ZPTFVNRV9ESVNLX0VYVEVOVFMgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/R2V0Vm9sdW1lRGlza0V4dGVudEluZm9AQFlBS1BFQVhQRUFQRUFVX1ZPTFVNRV9ESVNLX0VYVEVOVFNAQEBaDQorOyBsb25nIF9fY2RlY2wgR2V0Vm9sdW1lTmFtZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9HZXRWb2x1bWVOYW1lQEBZQUpQRUFHMEBaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgR2V0Vm9sdW1lU2l6ZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCAqIF9fcHRyNjQpDQorP0dldFZvbHVtZVNpemVAQFlBS1BFQUdQRUFfS0BaDQorOyBwdWJsaWM6IHN0cnVjdCBIV05EX18gKiBfX3B0cjY0IF9fY2RlY2wgQ1Zkc1BuUE5vdGlmaWNhdGlvbkJhc2U6OkdldFdpbmRvd0hhbmRsZSh2b2lkKSBfX3B0cjY0DQorP0dldFdpbmRvd0hhbmRsZUBDVmRzUG5QTm90aWZpY2F0aW9uQmFzZUBAUUVBQVBFQVVIV05EX19AQFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENWZHNQblBOb3RpZmljYXRpb25CYXNlOjpIYXNNYXRjaGluZ05vdGlmaWNhdGlvbih1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SGFzTWF0Y2hpbmdOb3RpZmljYXRpb25AQ1Zkc1BuUE5vdGlmaWNhdGlvbkJhc2VAQElFQUFIX0tLQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDVmRzQXN5bmNPYmplY3RCYXNlOjpJbml0aWFsaXplKHZvaWQpDQorP0luaXRpYWxpemVAQ1Zkc0FzeW5jT2JqZWN0QmFzZUBAU0FLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENWZHNQblBOb3RpZmljYXRpb25CYXNlOjpJbml0aWFsaXplKHZvaWQpIF9fcHRyNjQNCis/SW5pdGlhbGl6ZUBDVmRzUG5QTm90aWZpY2F0aW9uQmFzZUBAUUVBQUtYWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEluaXRpYWxpemVTZWN1cml0eURlc2NyaXB0b3IodW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCxzdHJ1Y3QgX0FDTCAqIF9fcHRyNjQgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9Jbml0aWFsaXplU2VjdXJpdHlEZXNjcmlwdG9yQEBZQUtLUEVBWFBFQVBFQVVfQUNMQEBQRUFQRUFYMjJAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVmRzQXN5bmNPYmplY3RCYXNlOjpJc0NhbmNlbFJlcXVlc3RlZCh2b2lkKSBfX3B0cjY0DQorP0lzQ2FuY2VsUmVxdWVzdGVkQENWZHNBc3luY09iamVjdEJhc2VAQFFFQUFIWFoNCis7IGludCBfX2NkZWNsIElzRGV2aWNlRnVsbHlJbnN0YWxsZWQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9Jc0RldmljZUZ1bGx5SW5zdGFsbGVkQEBZQUhQRUFHQFoNCis7IGludCBfX2NkZWNsIElzRGlza0NsdXN0ZXJlZCh2b2lkICogX19wdHI2NCkNCis/SXNEaXNrQ2x1c3RlcmVkQEBZQUhQRUFYQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Zkc0FzeW5jT2JqZWN0QmFzZTo6SXNGaW5pc2hlZCh2b2lkKSBfX3B0cjY0DQorP0lzRmluaXNoZWRAQ1Zkc0FzeW5jT2JqZWN0QmFzZUBAUUVBQUhYWg0KKzsgbG9uZyBfX2NkZWNsIElzTG9jYWxDb21wdXRlcih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP0lzTG9jYWxDb21wdXRlckBAWUFKUEVBR0BaDQorOyBpbnQgX19jZGVjbCBJc01lZGlhUHJlc2VudCh2b2lkICogX19wdHI2NCkNCis/SXNNZWRpYVByZXNlbnRAQFlBSFBFQVhAWg0KKzsgaW50IF9fY2RlY2wgSXNOb0F1dG9Nb3VudCh2b2lkKQ0KKz9Jc05vQXV0b01vdW50QEBZQUhYWg0KKzsgaW50IF9fY2RlY2wgSXNXaW5QRSh2b2lkKQ0KKz9Jc1dpblBFQEBZQUhYWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIExvY2tEaXNtb3VudFZvbHVtZSh2b2lkICogX19wdHI2NCxpbnQpDQorP0xvY2tEaXNtb3VudFZvbHVtZUBAWUFLUEVBWEhAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIExvY2tWb2x1bWUodm9pZCAqIF9fcHRyNjQpDQorP0xvY2tWb2x1bWVAQFlBS1BFQVhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Zkc0RlYnVnTG9nOjpMb2codW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCxjaGFyICogX19wdHI2NCxjaGFyICogX19wdHI2NCkgX19wdHI2NA0KKz9Mb2dAQ1Zkc0RlYnVnTG9nQEBRRUFBWEtLSFBFQUQwQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENWZHNEZWJ1Z0xvZzo6TG9nKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQsY2hhciAqIF9fcHRyNjQsLi4uKSBfX3B0cjY0DQorP0xvZ0BDVmRzRGVidWdMb2dAQFFFQUFYS0tIUEVBRFpaDQorOyB2b2lkIF9fY2RlY2wgTG9nRXJyb3IodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0KQ0KKz9Mb2dFcnJvckBAWUFYUEVBR0tLUEVBWEtLMFBFQURAWg0KKzsgdm9pZCBfX2NkZWNsIExvZ0V2ZW50KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0IGNvbnN0KQ0KKz9Mb2dFdmVudEBAWUFYUEVBR0tHS1BFQVhLUUVBUEVBR0BaDQorOyB2b2lkIF9fY2RlY2wgTG9nSW5mbyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0KQ0KKz9Mb2dJbmZvQEBZQVhQRUFHS0tQRUFYSzBQRUFEQFoNCis7IHZvaWQgX19jZGVjbCBMb2dXYXJuaW5nKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxjaGFyICogX19wdHI2NCkNCis/TG9nV2FybmluZ0BAWUFYUEVBR0tLUEVBWEtLMFBFQURAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIE1vdW50Vm9sdW1lKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkNCis/TW91bnRWb2x1bWVAQFlBS1BFQUdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDUHJ2RW51bU9iamVjdDo6TmV4dCh1bnNpZ25lZCBsb25nLHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP05leHRAQ1BydkVudW1PYmplY3RAQFVFQUFKS1BFQVBFQVVJVW5rbm93bkBAUEVBS0BaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1Zkc1BuUE5vdGlmaWNhdGlvbkJhc2U6Ok5vdGlmaWNhdGlvblRocmVhZCh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9Ob3RpZmljYXRpb25UaHJlYWRAQ1Zkc1BuUE5vdGlmaWNhdGlvbkJhc2VAQEFFQUFLUEVBWEBaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENWZHNQblBOb3RpZmljYXRpb25CYXNlOjpOb3RpZmljYXRpb25UaHJlYWRFbnRyeSh2b2lkICogX19wdHI2NCkNCis/Tm90aWZpY2F0aW9uVGhyZWFkRW50cnlAQ1Zkc1BuUE5vdGlmaWNhdGlvbkJhc2VAQENBS1BFQVhAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIE9wZW5EZXZpY2UodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9PcGVuRGV2aWNlQEBZQUtQRUFHS1BFQVBFQVhAWg0KKzsgbG9uZyBfX2NkZWNsIFF1ZXJ5T2JqZWN0cyhzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0LHN0cnVjdCBJRW51bVZkc09iamVjdCAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gJiBfX3B0cjY0KQ0KKz9RdWVyeU9iamVjdHNAQFlBSlBFQVVJVW5rbm93bkBAUEVBUEVBVUlFbnVtVmRzT2JqZWN0QEBBRUFVX1JUTF9DUklUSUNBTF9TRUNUSU9OQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDVmRzQXN5bmNPYmplY3RCYXNlOjpRdWVyeVN0YXR1cyhsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeVN0YXR1c0BDVmRzQXN5bmNPYmplY3RCYXNlQEBVRUFBSlBFQUpQRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENWZHNQblBOb3RpZmljYXRpb25CYXNlOjpSZWdpc3RlcihzdHJ1Y3QgX05vdGlmaWNhdGlvbkxpc3RlbmluZ1JlcXVlc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVnaXN0ZXJAQ1Zkc1BuUE5vdGlmaWNhdGlvbkJhc2VAQFFFQUFLUEVBVV9Ob3RpZmljYXRpb25MaXN0ZW5pbmdSZXF1ZXN0QEBLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENWZHNQblBOb3RpZmljYXRpb25CYXNlOjpSZWdpc3RlckhhbmRsZSh2b2lkICogX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVnaXN0ZXJIYW5kbGVAQ1Zkc1BuUE5vdGlmaWNhdGlvbkJhc2VAQFFFQUFLUEVBWFBFQVBFQVhAWg0KKzsgbG9uZyBfX2NkZWNsIFJlZ2lzdGVyUHJvdmlkZXIoc3RydWN0IF9HVUlELHN0cnVjdCBfR1VJRCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsZW51bSBfVkRTX1BST1ZJREVSX1RZUEUsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCxzdHJ1Y3QgX0dVSUQpDQorP1JlZ2lzdGVyUHJvdmlkZXJAQFlBSlVfR1VJREBAMFBFQUdXNF9WRFNfUFJPVklERVJfVFlQRUBAMTEwQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBSZW1vdmVFdmVudFNvdXJjZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP1JlbW92ZUV2ZW50U291cmNlQEBZQUtQRUFHQFoNCis7IHZvaWQgX19jZGVjbCBSZW1vdmVUZW1wVm9sdW1lTmFtZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9SZW1vdmVUZW1wVm9sdW1lTmFtZUBAWUFYUEVBRzBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDUHJ2RW51bU9iamVjdDo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBDUHJ2RW51bU9iamVjdEBAVUVBQUpYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Zkc0FzeW5jT2JqZWN0QmFzZTo6U2V0Q29tcGxldGlvblN0YXR1cyhsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0Q29tcGxldGlvblN0YXR1c0BDVmRzQXN5bmNPYmplY3RCYXNlQEBRRUFBWEpLQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBTZXREaXNrTGF5b3V0KHZvaWQgKiBfX3B0cjY0LHN0cnVjdCBfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYICogX19wdHI2NCkNCis/U2V0RGlza0xheW91dEBAWUFLUEVBWFBFQVVfRFJJVkVfTEFZT1VUX0lORk9STUFUSU9OX0VYQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Zkc0FzeW5jT2JqZWN0QmFzZTo6U2V0T3V0cHV0VHlwZShlbnVtIF9fTUlETF9fX01JRExfaXRmX3Zkc2NtbHlyXzAwMDBfMDAwMikgX19wdHI2NA0KKz9TZXRPdXRwdXRUeXBlQENWZHNBc3luY09iamVjdEJhc2VAQFFFQUFYVzRfX01JRExfX19NSURMX2l0Zl92ZHNjbWx5cl8wMDAwXzAwMDJAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDUHJ2RW51bU9iamVjdDo6U2V0UG9zaXRpb25Ub0xhc3Qodm9pZCkgX19wdHI2NA0KKz9TZXRQb3NpdGlvblRvTGFzdEBDUHJ2RW51bU9iamVjdEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Zkc0FzeW5jT2JqZWN0QmFzZTo6U2lnbmFsKHZvaWQpIF9fcHRyNjQNCis/U2lnbmFsQENWZHNBc3luY09iamVjdEJhc2VAQFFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1BydkVudW1PYmplY3Q6OlNraXAodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Ta2lwQENQcnZFbnVtT2JqZWN0QEBVRUFBSktAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVmRzRGVidWdMb2c6OlRyYWNpbmdMb2dFbmFibGVkKHZvaWQpIF9fcHRyNjQNCis/VHJhY2luZ0xvZ0VuYWJsZWRAQ1Zkc0RlYnVnTG9nQEBRRUFBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1Zkc0FzeW5jT2JqZWN0QmFzZTo6VW5pbml0aWFsaXplKHZvaWQpDQorP1VuaW5pdGlhbGl6ZUBDVmRzQXN5bmNPYmplY3RCYXNlQEBTQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Zkc1BuUE5vdGlmaWNhdGlvbkJhc2U6OlVuaW5pdGlhbGl6ZSh2b2lkKSBfX3B0cjY0DQorP1VuaW5pdGlhbGl6ZUBDVmRzUG5QTm90aWZpY2F0aW9uQmFzZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Zkc1BuUE5vdGlmaWNhdGlvbkJhc2U6OlVucmVnaXN0ZXIoc3RydWN0IF9Ob3RpZmljYXRpb25MaXN0ZW5pbmdSZXF1ZXN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9VbnJlZ2lzdGVyQENWZHNQblBOb3RpZmljYXRpb25CYXNlQEBRRUFBWFBFQVVfTm90aWZpY2F0aW9uTGlzdGVuaW5nUmVxdWVzdEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENWZHNQblBOb3RpZmljYXRpb25CYXNlOjpVbnJlZ2lzdGVySGFuZGxlKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1VucmVnaXN0ZXJIYW5kbGVAQ1Zkc1BuUE5vdGlmaWNhdGlvbkJhc2VAQFFFQUFYUEVBWEBaDQorOyBsb25nIF9fY2RlY2wgVW5yZWdpc3RlclByb3ZpZGVyKHN0cnVjdCBfR1VJRCkNCis/VW5yZWdpc3RlclByb3ZpZGVyQEBZQUpVX0dVSURAQEBaDQorOyB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBWZHNBbGxvY2F0ZUVtcHR5U3RyaW5nKHZvaWQpDQorP1Zkc0FsbG9jYXRlRW1wdHlTdHJpbmdAQFlBUEVBR1haDQorOyB2b2lkICogX19wdHI2NCBfX2NkZWNsIFZkc0hlYXBBbGxvYyh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIF9faW50NjQpDQorP1Zkc0hlYXBBbGxvY0BAWUFQRUFYUEVBWEtfS0BaDQorOyBpbnQgX19jZGVjbCBWZHNIZWFwRnJlZSh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHZvaWQgKiBfX3B0cjY0KQ0KKz9WZHNIZWFwRnJlZUBAWUFIUEVBWEswQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBWZHNJbml0aWFsaXplQ3JpdGljYWxTZWN0aW9uKHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gKiBfX3B0cjY0KQ0KKz9WZHNJbml0aWFsaXplQ3JpdGljYWxTZWN0aW9uQEBZQUtQRUFVX1JUTF9DUklUSUNBTF9TRUNUSU9OQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENWZHNTdHJ1Y3R1cmVkRXhjZXB0aW9uVHJhbnNsYXRvcjo6VmRzU2VUcmFuc2xhdG9yKHVuc2lnbmVkIGludCxzdHJ1Y3QgX0VYQ0VQVElPTl9QT0lOVEVSUyAqIF9fcHRyNjQpDQorP1Zkc1NlVHJhbnNsYXRvckBDVmRzU3RydWN0dXJlZEV4Y2VwdGlvblRyYW5zbGF0b3JAQFNBWElQRUFVX0VYQ0VQVElPTl9QT0lOVEVSU0BAQFoNCis7IHZvaWQgX19jZGVjbCBWZHNUcmFjZSh1bnNpZ25lZCBsb25nLGNoYXIgKiBfX3B0cjY0LC4uLikNCis/VmRzVHJhY2VAQFlBWEtQRUFEWloNCis7IHZvaWQgX19jZGVjbCBWZHNUcmFjZUV4KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjaGFyICogX19wdHI2NCwuLi4pDQorP1Zkc1RyYWNlRXhAQFlBWEtLUEVBRFpaDQorOyB2b2lkIF9fY2RlY2wgVmRzVHJhY2VFeEhlbHBlcih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsY2hhciAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQpDQorP1Zkc1RyYWNlRXhIZWxwZXJAQFlBWEtLUEVBRDBAWg0KKzsgdm9pZCBfX2NkZWNsIFZkc1RyYWNlRXhXKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsLi4uKQ0KKz9WZHNUcmFjZUV4V0BAWUFYS0tQRUFHWloNCis7IHZvaWQgX19jZGVjbCBWZHNUcmFjZUV4V0hlbHBlcih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGNoYXIgKiBfX3B0cjY0KQ0KKz9WZHNUcmFjZUV4V0hlbHBlckBAWUFYS0tQRUFHUEVBREBaDQorOyB2b2lkIF9fY2RlY2wgVmRzVHJhY2VXKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LC4uLikNCis/VmRzVHJhY2VXQEBZQVhLUEVBR1paDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDVmRzQXN5bmNPYmplY3RCYXNlOjpXYWl0SW1wbChsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9XYWl0SW1wbEBDVmRzQXN5bmNPYmplY3RCYXNlQEBRRUFBSlBFQUpAWg0KKzsgcHJpdmF0ZTogc3RhdGljIF9faW50NjQgX19jZGVjbCBDVmRzUG5QTm90aWZpY2F0aW9uQmFzZTo6V2luZG93UHJvY0VudHJ5KHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBfX2ludDY0LF9faW50NjQpDQorP1dpbmRvd1Byb2NFbnRyeUBDVmRzUG5QTm90aWZpY2F0aW9uQmFzZUBAQ0FfSlBFQVVIV05EX19AQElfS19KQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENWZHNBc3luY09iamVjdEJhc2U6Olplcm9Bc3luY091dCh2b2lkKSBfX3B0cjY0DQorP1plcm9Bc3luY091dEBDVmRzQXN5bmNPYmplY3RCYXNlQEBRRUFBWFhaDQorRGxsTWFpbg0KK1JlZ2lzdGVyVmRzRmFicmljDQorVW5yZWdpc3RlclZkc0ZhYnJpYw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3Zkc3dtaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi92ZHN3bWkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNiMjU4NjUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi92ZHN3bWkuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgdmRzd21pLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSB2ZHN3bWkuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvdmVyaWZpZXIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdmVyaWZpZXIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMzNjc2YTYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi92ZXJpZmllci5kZWYKQEAgLTAsMCArMSwyNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBWRVJJRklFUi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgVkVSSUZJRVIuZGxsDQorRVhQT1JUUw0KK1ZlcmlmaWVyQWRkRnJlZU1lbW9yeUNhbGxiYWNrDQorVmVyaWZpZXJDcmVhdGVScGNQYWdlSGVhcA0KK1ZlcmlmaWVyRGVsZXRlRnJlZU1lbW9yeUNhbGxiYWNrDQorVmVyaWZpZXJEZXN0cm95UnBjUGFnZUhlYXANCitWZXJpZmllckRpc2FibGVGYXVsdEluamVjdGlvbkV4Y2x1c2lvblJhbmdlDQorVmVyaWZpZXJEaXNhYmxlRmF1bHRJbmplY3Rpb25UYXJnZXRSYW5nZQ0KK1ZlcmlmaWVyRW5hYmxlRmF1bHRJbmplY3Rpb25FeGNsdXNpb25SYW5nZQ0KK1ZlcmlmaWVyRW5hYmxlRmF1bHRJbmplY3Rpb25UYXJnZXRSYW5nZQ0KK1ZlcmlmaWVyRW51bWVyYXRlUmVzb3VyY2UNCitWZXJpZmllcklzQ3VycmVudFRocmVhZEhvbGRpbmdMb2Nrcw0KK1ZlcmlmaWVySXNEbGxFbnRyeUFjdGl2ZQ0KK1ZlcmlmaWVyTG9nTWVzc2FnZQ0KK1ZlcmlmaWVyUXVlcnlSdW50aW1lRmxhZ3MNCitWZXJpZmllclNldEZhdWx0SW5qZWN0aW9uUHJvYmFiaWxpdHkNCitWZXJpZmllclNldEZsYWdzDQorVmVyaWZpZXJTZXRSdW50aW1lRmxhZ3MNCitWZXJpZmllclN0b3BNZXNzYWdlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvdmVyc2lvbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi92ZXJzaW9uLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wODI5NjBhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdmVyc2lvbi5kZWYKQEAgLTAsMCArMSwyMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBWRVJTSU9OLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSAiVkVSU0lPTi5kbGwiDQorRVhQT1JUUw0KK0dldEZpbGVWZXJzaW9uSW5mb0ENCitHZXRGaWxlVmVyc2lvbkluZm9TaXplQQ0KK0dldEZpbGVWZXJzaW9uSW5mb1NpemVXDQorR2V0RmlsZVZlcnNpb25JbmZvVw0KK1ZlckZpbmRGaWxlQQ0KK1ZlckZpbmRGaWxlVw0KK1Zlckluc3RhbGxGaWxlQQ0KK1Zlckluc3RhbGxGaWxlVw0KK1Zlckxhbmd1YWdlTmFtZUENCitWZXJMYW5ndWFnZU5hbWVXDQorVmVyUXVlcnlWYWx1ZUENCitWZXJRdWVyeVZhbHVlSW5kZXhBDQorVmVyUXVlcnlWYWx1ZUluZGV4Vw0KK1ZlclF1ZXJ5VmFsdWVXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvdmd4LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3ZneC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2I4ZWY4ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3ZneC5kZWYKQEAgLTAsMCArMSwxNyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBWR1guRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFZHWC5ETEwNCitFWFBPUlRTDQorJERsbE1haW4kX2dkaXBsdXMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK01zb0Fzc2VydFN6UHJvY1Zhcg0KK01zb0ZGZWF0dXJlDQorTXNvRkluaXRPZmZpY2UNCitNc29GU2V0RmVhdHVyZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3ZpZXdwcm92LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3ZpZXdwcm92LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMjVhMzJiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdmlld3Byb3YuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgVklFV1BST1YuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFZJRVdQUk9WLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3ZteF9tb2RlLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3ZteF9tb2RlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xY2E1ZGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdm14X21vZGUuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBWTVhfTU9ERS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgVk1YX01PREUuZGxsDQorRVhQT1JUUw0KK1ZNWF9Nb2RlQ2hhbmdlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvdnNzX3BzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3Zzc19wcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGUwYjA3OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3Zzc19wcy5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB2c3NfcHMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHZzc19wcy5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitHZXRQcm94eURsbEluZm8NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi92c3NhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdnNzYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYzQyMDE2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdnNzYXBpLmRlZgpAQCAtMCwwICsxLDEyNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBWU1NBUEkuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFZTU0FQSS5ETEwNCitFWFBPUlRTDQorU2ltdWxhdGVTbmFwc2hvdEZyZWV6ZQ0KK1NpbXVsYXRlU25hcHNob3RUaGF3DQorSXNWb2x1bWVTbmFwc2hvdHRlZA0KK1Zzc0ZyZWVTbmFwc2hvdFByb3BlcnRpZXMNCitTaG91bGRCbG9ja1JldmVydA0KKzsgcHVibGljOiBfX2NkZWNsIENWc3NKZXRXcml0ZXI6OkNWc3NKZXRXcml0ZXIodm9pZCkgX19wdHI2NA0KKz8/MENWc3NKZXRXcml0ZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVnNzV3JpdGVyOjpDVnNzV3JpdGVyKHZvaWQpIF9fcHRyNjQNCis/PzBDVnNzV3JpdGVyQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDVnNzSmV0V3JpdGVyOjp+Q1Zzc0pldFdyaXRlcih2b2lkKSBfX3B0cjY0DQorPz8xQ1Zzc0pldFdyaXRlckBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1Zzc1dyaXRlcjo6fkNWc3NXcml0ZXIodm9pZCkgX19wdHI2NA0KKz8/MUNWc3NXcml0ZXJAQFVFQUFAWFoNCis7IHByb3RlY3RlZDogYm9vbCBfX2NkZWNsIENWc3NXcml0ZXI6OkFyZUNvbXBvbmVudHNTZWxlY3RlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0FyZUNvbXBvbmVudHNTZWxlY3RlZEBDVnNzV3JpdGVyQEBJRUJBX05YWg0KKzsgbG9uZyBfX2NkZWNsIENyZWF0ZVZzc0JhY2t1cENvbXBvbmVudHMoY2xhc3MgSVZzc0JhY2t1cENvbXBvbmVudHMgKiBfX3B0cjY0ICogX19wdHI2NCkNCis/Q3JlYXRlVnNzQmFja3VwQ29tcG9uZW50c0BAWUFKUEVBUEVBVklWc3NCYWNrdXBDb21wb25lbnRzQEBAWg0KKzsgbG9uZyBfX2NkZWNsIENyZWF0ZVZzc0V4YW1pbmVXcml0ZXJNZXRhZGF0YSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsY2xhc3MgSVZzc0V4YW1pbmVXcml0ZXJNZXRhZGF0YSAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9DcmVhdGVWc3NFeGFtaW5lV3JpdGVyTWV0YWRhdGFAQFlBSlBFQUdQRUFQRUFWSVZzc0V4YW1pbmVXcml0ZXJNZXRhZGF0YUBAQFoNCis7IGxvbmcgX19jZGVjbCBDcmVhdGVWc3NTbmFwc2hvdFNldERlc2NyaXB0aW9uKHN0cnVjdCBfR1VJRCxsb25nLGNsYXNzIElWc3NTbmFwc2hvdFNldERlc2NyaXB0aW9uICogX19wdHI2NCAqIF9fcHRyNjQpDQorP0NyZWF0ZVZzc1NuYXBzaG90U2V0RGVzY3JpcHRpb25AQFlBSlVfR1VJREBASlBFQVBFQVZJVnNzU25hcHNob3RTZXREZXNjcmlwdGlvbkBAQFoNCis7IHByb3RlY3RlZDogZW51bSBfVlNTX0JBQ0tVUF9UWVBFICBfX2NkZWNsIENWc3NXcml0ZXI6OkdldEJhY2t1cFR5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRCYWNrdXBUeXBlQENWc3NXcml0ZXJAQElFQkE/QVc0X1ZTU19CQUNLVVBfVFlQRUBAWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENWc3NXcml0ZXI6OkdldENvbnRleHQodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRDb250ZXh0QENWc3NXcml0ZXJAQElFQkFKWFoNCis7IHByb3RlY3RlZDogZW51bSBfVlNTX0FQUExJQ0FUSU9OX0xFVkVMICBfX2NkZWNsIENWc3NXcml0ZXI6OkdldEN1cnJlbnRMZXZlbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEN1cnJlbnRMZXZlbEBDVnNzV3JpdGVyQEBJRUJBP0FXNF9WU1NfQVBQTElDQVRJT05fTEVWRUxAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0cnVjdCBfR1VJRCAgX19jZGVjbCBDVnNzV3JpdGVyOjpHZXRDdXJyZW50U25hcHNob3RTZXRJZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEN1cnJlbnRTbmFwc2hvdFNldElkQENWc3NXcml0ZXJAQElFQkE/QVVfR1VJREBAWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCBfX2NkZWNsIENWc3NXcml0ZXI6OkdldEN1cnJlbnRWb2x1bWVBcnJheSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEN1cnJlbnRWb2x1bWVBcnJheUBDVnNzV3JpdGVyQEBJRUJBUEVBUEVCR1haDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGludCBfX2NkZWNsIENWc3NXcml0ZXI6OkdldEN1cnJlbnRWb2x1bWVDb3VudCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEN1cnJlbnRWb2x1bWVDb3VudEBDVnNzV3JpdGVyQEBJRUJBSVhaDQorOyBwcm90ZWN0ZWQ6IGVudW0gX1ZTU19SRVNUT1JFX1RZUEUgIF9fY2RlY2wgQ1Zzc1dyaXRlcjo6R2V0UmVzdG9yZVR5cGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRSZXN0b3JlVHlwZUBDVnNzV3JpdGVyQEBJRUJBP0FXNF9WU1NfUkVTVE9SRV9UWVBFQEBYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ1Zzc1dyaXRlcjo6R2V0U25hcHNob3REZXZpY2VOYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0dldFNuYXBzaG90RGV2aWNlTmFtZUBDVnNzV3JpdGVyQEBJRUJBSlBFQkdQRUFQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENWc3NKZXRXcml0ZXI6OkluaXRpYWxpemUoc3RydWN0IF9HVUlELHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxib29sLGJvb2wsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQENWc3NKZXRXcml0ZXJAQFFFQUFKVV9HVUlEQEBQRUJHX04yMTFAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1Zzc1dyaXRlcjo6SW5pdGlhbGl6ZShzdHJ1Y3QgX0dVSUQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGVudW0gVlNTX1VTQUdFX1RZUEUsZW51bSBWU1NfU09VUkNFX1RZUEUsZW51bSBfVlNTX0FQUExJQ0FUSU9OX0xFVkVMLHVuc2lnbmVkIGxvbmcsZW51bSBWU1NfQUxURVJOQVRFX1dSSVRFUl9TVEFURSxib29sLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQENWc3NXcml0ZXJAQFFFQUFKVV9HVUlEQEBQRUJHVzRWU1NfVVNBR0VfVFlQRUBAVzRWU1NfU09VUkNFX1RZUEVAQFc0X1ZTU19BUFBMSUNBVElPTl9MRVZFTEBAS1c0VlNTX0FMVEVSTkFURV9XUklURVJfU1RBVEVAQF9OMUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDVnNzV3JpdGVyOjpJbnN0YWxsQWx0ZXJuYXRlV3JpdGVyKHN0cnVjdCBfR1VJRCxzdHJ1Y3QgX0dVSUQpIF9fcHRyNjQNCis/SW5zdGFsbEFsdGVybmF0ZVdyaXRlckBDVnNzV3JpdGVyQEBRRUFBSlVfR1VJREBAMEBaDQorOyBwcm90ZWN0ZWQ6IGJvb2wgX19jZGVjbCBDVnNzV3JpdGVyOjpJc0Jvb3RhYmxlU3lzdGVtU3RhdGVCYWNrZWRVcCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzQm9vdGFibGVTeXN0ZW1TdGF0ZUJhY2tlZFVwQENWc3NXcml0ZXJAQElFQkFfTlhaDQorOyBwcm90ZWN0ZWQ6IGJvb2wgX19jZGVjbCBDVnNzV3JpdGVyOjpJc1BhcnRpYWxGaWxlU3VwcG9ydEVuYWJsZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1BhcnRpYWxGaWxlU3VwcG9ydEVuYWJsZWRAQ1Zzc1dyaXRlckBASUVCQV9OWFoNCis7IHByb3RlY3RlZDogYm9vbCBfX2NkZWNsIENWc3NXcml0ZXI6OklzUGF0aEFmZmVjdGVkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9Jc1BhdGhBZmZlY3RlZEBDVnNzV3JpdGVyQEBJRUJBX05QRUJHQFoNCis7IGxvbmcgX19jZGVjbCBMb2FkVnNzU25hcHNob3RTZXREZXNjcmlwdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgSVZzc1NuYXBzaG90U2V0RGVzY3JpcHRpb24gKiBfX3B0cjY0ICogX19wdHI2NCxzdHJ1Y3QgX0dVSUQpDQorP0xvYWRWc3NTbmFwc2hvdFNldERlc2NyaXB0aW9uQEBZQUpQRUJHUEVBUEVBVklWc3NTbmFwc2hvdFNldERlc2NyaXB0aW9uQEBVX0dVSURAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENWc3NKZXRXcml0ZXI6Ok9uQWJvcnRCZWdpbih2b2lkKSBfX3B0cjY0DQorP09uQWJvcnRCZWdpbkBDVnNzSmV0V3JpdGVyQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENWc3NKZXRXcml0ZXI6Ok9uQWJvcnRFbmQodm9pZCkgX19wdHI2NA0KKz9PbkFib3J0RW5kQENWc3NKZXRXcml0ZXJAQFVFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBib29sIF9fY2RlY2wgQ1Zzc1dyaXRlcjo6T25CYWNrT2ZmSU9PblZvbHVtZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsc3RydWN0IF9HVUlELHN0cnVjdCBfR1VJRCkgX19wdHI2NA0KKz9PbkJhY2tPZmZJT09uVm9sdW1lQENWc3NXcml0ZXJAQFVFQUFfTlBFQUdVX0dVSURAQDFAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGJvb2wgX19jZGVjbCBDVnNzV3JpdGVyOjpPbkJhY2t1cENvbXBsZXRlKGNsYXNzIElWc3NXcml0ZXJDb21wb25lbnRzICogX19wdHI2NCkgX19wdHI2NA0KKz9PbkJhY2t1cENvbXBsZXRlQENWc3NXcml0ZXJAQFVFQUFfTlBFQVZJVnNzV3JpdGVyQ29tcG9uZW50c0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBib29sIF9fY2RlY2wgQ1Zzc0pldFdyaXRlcjo6T25CYWNrdXBDb21wbGV0ZUJlZ2luKGNsYXNzIElWc3NXcml0ZXJDb21wb25lbnRzICogX19wdHI2NCkgX19wdHI2NA0KKz9PbkJhY2t1cENvbXBsZXRlQmVnaW5AQ1Zzc0pldFdyaXRlckBAVUVBQV9OUEVBVklWc3NXcml0ZXJDb21wb25lbnRzQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGJvb2wgX19jZGVjbCBDVnNzSmV0V3JpdGVyOjpPbkJhY2t1cENvbXBsZXRlRW5kKGNsYXNzIElWc3NXcml0ZXJDb21wb25lbnRzICogX19wdHI2NCxib29sKSBfX3B0cjY0DQorP09uQmFja3VwQ29tcGxldGVFbmRAQ1Zzc0pldFdyaXRlckBAVUVBQV9OUEVBVklWc3NXcml0ZXJDb21wb25lbnRzQEBfTkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgYm9vbCBfX2NkZWNsIENWc3NXcml0ZXI6Ok9uQmFja3VwU2h1dGRvd24oc3RydWN0IF9HVUlEKSBfX3B0cjY0DQorP09uQmFja3VwU2h1dGRvd25AQ1Zzc1dyaXRlckBAVUVBQV9OVV9HVUlEQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGJvb2wgX19jZGVjbCBDVnNzV3JpdGVyOjpPbkNvbnRpbnVlSU9PblZvbHVtZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsc3RydWN0IF9HVUlELHN0cnVjdCBfR1VJRCkgX19wdHI2NA0KKz9PbkNvbnRpbnVlSU9PblZvbHVtZUBDVnNzV3JpdGVyQEBVRUFBX05QRUFHVV9HVUlEQEAxQFoNCis7IHB1YmxpYzogdmlydHVhbCBib29sIF9fY2RlY2wgQ1Zzc0pldFdyaXRlcjo6T25GcmVlemVCZWdpbih2b2lkKSBfX3B0cjY0DQorP09uRnJlZXplQmVnaW5AQ1Zzc0pldFdyaXRlckBAVUVBQV9OWFoNCis7IHB1YmxpYzogdmlydHVhbCBib29sIF9fY2RlY2wgQ1Zzc0pldFdyaXRlcjo6T25GcmVlemVFbmQoYm9vbCkgX19wdHI2NA0KKz9PbkZyZWV6ZUVuZEBDVnNzSmV0V3JpdGVyQEBVRUFBX05fTkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgYm9vbCBfX2NkZWNsIENWc3NKZXRXcml0ZXI6Ok9uSWRlbnRpZnkoY2xhc3MgSVZzc0NyZWF0ZVdyaXRlck1ldGFkYXRhICogX19wdHI2NCkgX19wdHI2NA0KKz9PbklkZW50aWZ5QENWc3NKZXRXcml0ZXJAQFVFQUFfTlBFQVZJVnNzQ3JlYXRlV3JpdGVyTWV0YWRhdGFAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgYm9vbCBfX2NkZWNsIENWc3NXcml0ZXI6Ok9uSWRlbnRpZnkoY2xhc3MgSVZzc0NyZWF0ZVdyaXRlck1ldGFkYXRhICogX19wdHI2NCkgX19wdHI2NA0KKz9PbklkZW50aWZ5QENWc3NXcml0ZXJAQFVFQUFfTlBFQVZJVnNzQ3JlYXRlV3JpdGVyTWV0YWRhdGFAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgYm9vbCBfX2NkZWNsIENWc3NXcml0ZXI6Ok9uUG9zdFJlc3RvcmUoY2xhc3MgSVZzc1dyaXRlckNvbXBvbmVudHMgKiBfX3B0cjY0KSBfX3B0cjY0DQorP09uUG9zdFJlc3RvcmVAQ1Zzc1dyaXRlckBAVUVBQV9OUEVBVklWc3NXcml0ZXJDb21wb25lbnRzQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGJvb2wgX19jZGVjbCBDVnNzSmV0V3JpdGVyOjpPblBvc3RSZXN0b3JlQmVnaW4oY2xhc3MgSVZzc1dyaXRlckNvbXBvbmVudHMgKiBfX3B0cjY0KSBfX3B0cjY0DQorP09uUG9zdFJlc3RvcmVCZWdpbkBDVnNzSmV0V3JpdGVyQEBVRUFBX05QRUFWSVZzc1dyaXRlckNvbXBvbmVudHNAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgYm9vbCBfX2NkZWNsIENWc3NKZXRXcml0ZXI6Ok9uUG9zdFJlc3RvcmVFbmQoY2xhc3MgSVZzc1dyaXRlckNvbXBvbmVudHMgKiBfX3B0cjY0LGJvb2wpIF9fcHRyNjQNCis/T25Qb3N0UmVzdG9yZUVuZEBDVnNzSmV0V3JpdGVyQEBVRUFBX05QRUFWSVZzc1dyaXRlckNvbXBvbmVudHNAQF9OQFoNCis7IHB1YmxpYzogdmlydHVhbCBib29sIF9fY2RlY2wgQ1Zzc0pldFdyaXRlcjo6T25Qb3N0U25hcHNob3QoY2xhc3MgSVZzc1dyaXRlckNvbXBvbmVudHMgKiBfX3B0cjY0KSBfX3B0cjY0DQorP09uUG9zdFNuYXBzaG90QENWc3NKZXRXcml0ZXJAQFVFQUFfTlBFQVZJVnNzV3JpdGVyQ29tcG9uZW50c0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBib29sIF9fY2RlY2wgQ1Zzc1dyaXRlcjo6T25Qb3N0U25hcHNob3QoY2xhc3MgSVZzc1dyaXRlckNvbXBvbmVudHMgKiBfX3B0cjY0KSBfX3B0cjY0DQorP09uUG9zdFNuYXBzaG90QENWc3NXcml0ZXJAQFVFQUFfTlBFQVZJVnNzV3JpdGVyQ29tcG9uZW50c0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBib29sIF9fY2RlY2wgQ1Zzc1dyaXRlcjo6T25QcmVSZXN0b3JlKGNsYXNzIElWc3NXcml0ZXJDb21wb25lbnRzICogX19wdHI2NCkgX19wdHI2NA0KKz9PblByZVJlc3RvcmVAQ1Zzc1dyaXRlckBAVUVBQV9OUEVBVklWc3NXcml0ZXJDb21wb25lbnRzQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGJvb2wgX19jZGVjbCBDVnNzSmV0V3JpdGVyOjpPblByZVJlc3RvcmVCZWdpbihjbGFzcyBJVnNzV3JpdGVyQ29tcG9uZW50cyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T25QcmVSZXN0b3JlQmVnaW5AQ1Zzc0pldFdyaXRlckBAVUVBQV9OUEVBVklWc3NXcml0ZXJDb21wb25lbnRzQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGJvb2wgX19jZGVjbCBDVnNzSmV0V3JpdGVyOjpPblByZVJlc3RvcmVFbmQoY2xhc3MgSVZzc1dyaXRlckNvbXBvbmVudHMgKiBfX3B0cjY0LGJvb2wpIF9fcHRyNjQNCis/T25QcmVSZXN0b3JlRW5kQENWc3NKZXRXcml0ZXJAQFVFQUFfTlBFQVZJVnNzV3JpdGVyQ29tcG9uZW50c0BAX05AWg0KKzsgcHVibGljOiB2aXJ0dWFsIGJvb2wgX19jZGVjbCBDVnNzV3JpdGVyOjpPblByZXBhcmVCYWNrdXAoY2xhc3MgSVZzc1dyaXRlckNvbXBvbmVudHMgKiBfX3B0cjY0KSBfX3B0cjY0DQorP09uUHJlcGFyZUJhY2t1cEBDVnNzV3JpdGVyQEBVRUFBX05QRUFWSVZzc1dyaXRlckNvbXBvbmVudHNAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgYm9vbCBfX2NkZWNsIENWc3NKZXRXcml0ZXI6Ok9uUHJlcGFyZUJhY2t1cEJlZ2luKGNsYXNzIElWc3NXcml0ZXJDb21wb25lbnRzICogX19wdHI2NCkgX19wdHI2NA0KKz9PblByZXBhcmVCYWNrdXBCZWdpbkBDVnNzSmV0V3JpdGVyQEBVRUFBX05QRUFWSVZzc1dyaXRlckNvbXBvbmVudHNAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgYm9vbCBfX2NkZWNsIENWc3NKZXRXcml0ZXI6Ok9uUHJlcGFyZUJhY2t1cEVuZChjbGFzcyBJVnNzV3JpdGVyQ29tcG9uZW50cyAqIF9fcHRyNjQsYm9vbCkgX19wdHI2NA0KKz9PblByZXBhcmVCYWNrdXBFbmRAQ1Zzc0pldFdyaXRlckBAVUVBQV9OUEVBVklWc3NXcml0ZXJDb21wb25lbnRzQEBfTkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgYm9vbCBfX2NkZWNsIENWc3NKZXRXcml0ZXI6Ok9uUHJlcGFyZVNuYXBzaG90QmVnaW4odm9pZCkgX19wdHI2NA0KKz9PblByZXBhcmVTbmFwc2hvdEJlZ2luQENWc3NKZXRXcml0ZXJAQFVFQUFfTlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgYm9vbCBfX2NkZWNsIENWc3NKZXRXcml0ZXI6Ok9uUHJlcGFyZVNuYXBzaG90RW5kKGJvb2wpIF9fcHRyNjQNCis/T25QcmVwYXJlU25hcHNob3RFbmRAQ1Zzc0pldFdyaXRlckBAVUVBQV9OX05AWg0KKzsgcHVibGljOiB2aXJ0dWFsIGJvb2wgX19jZGVjbCBDVnNzSmV0V3JpdGVyOjpPblRoYXdCZWdpbih2b2lkKSBfX3B0cjY0DQorP09uVGhhd0JlZ2luQENWc3NKZXRXcml0ZXJAQFVFQUFfTlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgYm9vbCBfX2NkZWNsIENWc3NKZXRXcml0ZXI6Ok9uVGhhd0VuZChib29sKSBfX3B0cjY0DQorP09uVGhhd0VuZEBDVnNzSmV0V3JpdGVyQEBVRUFBX05fTkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgYm9vbCBfX2NkZWNsIENWc3NXcml0ZXI6Ok9uVlNTQXBwbGljYXRpb25TdGFydHVwKHZvaWQpIF9fcHRyNjQNCis/T25WU1NBcHBsaWNhdGlvblN0YXJ0dXBAQ1Zzc1dyaXRlckBAVUVBQV9OWFoNCis7IHB1YmxpYzogdmlydHVhbCBib29sIF9fY2RlY2wgQ1Zzc1dyaXRlcjo6T25WU1NTaHV0ZG93bih2b2lkKSBfX3B0cjY0DQorP09uVlNTU2h1dGRvd25AQ1Zzc1dyaXRlckBAVUVBQV9OWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENWc3NXcml0ZXI6OlNldFdyaXRlckZhaWx1cmUobG9uZykgX19wdHI2NA0KKz9TZXRXcml0ZXJGYWlsdXJlQENWc3NXcml0ZXJAQElFQUFKSkBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDVnNzV3JpdGVyOjpTdWJzY3JpYmUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TdWJzY3JpYmVAQ1Zzc1dyaXRlckBAUUVBQUpLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENWc3NKZXRXcml0ZXI6OlVuaW5pdGlhbGl6ZSh2b2lkKSBfX3B0cjY0DQorP1VuaW5pdGlhbGl6ZUBDVnNzSmV0V3JpdGVyQEBRRUFBWFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDVnNzV3JpdGVyOjpVbnN1YnNjcmliZSh2b2lkKSBfX3B0cjY0DQorP1Vuc3Vic2NyaWJlQENWc3NXcml0ZXJAQFFFQUFKWFoNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi92c3N3bWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdnNzd21pLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYmViMDk2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdnNzd21pLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHZzc3dtaS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgdnNzd21pLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3czMnRpbWUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdzMydGltZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWRiNzI0ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3czMnRpbWUuZGVmCkBAIC0wLDAgKzEsMjkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgdzMydGltZS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgdzMydGltZS5kbGwNCitFWFBPUlRTDQorZm5XMzJUbVJlZ2lzdGVyU2VydmljZUN0cmxIYW5kbGVyRXggREFUQQ0KK2ZuVzMyVG1TZXRTZXJ2aWNlU3RhdHVzIERBVEENCitEbGxJbnN0YWxsDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorU3ZjaG9zdEVudHJ5X1czMlRpbWUNCitTdmNob3N0UHVzaFNlcnZpY2VHbG9iYWxzDQorVGltZVByb3ZDbG9zZQ0KK1RpbWVQcm92Q29tbWFuZA0KK1RpbWVQcm92T3Blbg0KK1czMlRpbWVCdWZmZXJGcmVlDQorVzMyVGltZURjUHJvbW8NCitXMzJUaW1lR2V0TmV0bG9nb25TZXJ2aWNlQml0cw0KK1czMlRpbWVRdWVyeUNvbmZpZw0KK1czMlRpbWVRdWVyeUhhcmR3YXJlUHJvdmlkZXJTdGF0dXMNCitXMzJUaW1lUXVlcnlOVFBQcm92aWRlclN0YXR1cw0KK1czMlRpbWVTZXRDb25maWcNCitXMzJUaW1lU3luY05vdw0KK1czMlRpbWVWZXJpZnlKb2luQ29uZmlnDQorVzMyVGltZVZlcmlmeVVuam9pbkNvbmZpZw0KK1czMlRtU2VydmljZU1haW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93MzJ0b3BsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3czMnRvcGwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJlN2E3MDEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93MzJ0b3BsLmRlZgpAQCAtMCwwICsxLDg3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFczMlRPUEwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFczMlRPUEwuZGxsDQorRVhQT1JUUw0KK1RvcGxBZGRFZGdlU2V0VG9HcmFwaA0KK1RvcGxBZGRFZGdlVG9HcmFwaA0KK1RvcGxEZWxldGVDb21wb25lbnRzDQorVG9wbERlbGV0ZUdyYXBoU3RhdGUNCitUb3BsRGVsZXRlU3Bhbm5pbmdUcmVlRWRnZXMNCitUb3BsRWRnZUFzc29jaWF0ZQ0KK1RvcGxFZGdlQ3JlYXRlDQorVG9wbEVkZ2VEZXN0cm95DQorVG9wbEVkZ2VEaXNhc3NvY2lhdGUNCitUb3BsRWRnZUZyZWUNCitUb3BsRWRnZUdldEZyb21WZXJ0ZXgNCitUb3BsRWRnZUdldFRvVmVydGV4DQorVG9wbEVkZ2VHZXRXZWlnaHQNCitUb3BsRWRnZUluaXQNCitUb3BsRWRnZVNldEZyb21WZXJ0ZXgNCitUb3BsRWRnZVNldFRvVmVydGV4DQorVG9wbEVkZ2VTZXRWdHgNCitUb3BsRWRnZVNldFdlaWdodA0KK1RvcGxGcmVlDQorVG9wbEdldEFsd2F5c1NjaGVkdWxlDQorVG9wbEdldFNwYW5uaW5nVHJlZUVkZ2VzRm9yVnR4DQorVG9wbEdyYXBoQWRkVmVydGV4DQorVG9wbEdyYXBoQ3JlYXRlDQorVG9wbEdyYXBoRGVzdHJveQ0KK1RvcGxHcmFwaEZpbmRFZGdlc0Zvck1TVA0KK1RvcGxHcmFwaEZyZWUNCitUb3BsR3JhcGhJbml0DQorVG9wbEdyYXBoTWFrZVJpbmcNCitUb3BsR3JhcGhOdW1iZXJPZlZlcnRpY2VzDQorVG9wbEdyYXBoUmVtb3ZlVmVydGV4DQorVG9wbEdyYXBoU2V0VmVydGV4SXRlcg0KK1RvcGxIZWFwQ3JlYXRlDQorVG9wbEhlYXBEZXN0cm95DQorVG9wbEhlYXBFeHRyYWN0TWluDQorVG9wbEhlYXBJbnNlcnQNCitUb3BsSGVhcElzRWxlbWVudE9mDQorVG9wbEhlYXBJc0VtcHR5DQorVG9wbElzVG9wbEV4Y2VwdGlvbg0KK1RvcGxJdGVyQWR2YW5jZQ0KK1RvcGxJdGVyQ3JlYXRlDQorVG9wbEl0ZXJGcmVlDQorVG9wbEl0ZXJHZXRPYmplY3QNCitUb3BsTGlzdEFkZEVsZW0NCitUb3BsTGlzdENyZWF0ZQ0KK1RvcGxMaXN0RnJlZQ0KK1RvcGxMaXN0TnVtYmVyT2ZFbGVtZW50cw0KK1RvcGxMaXN0UmVtb3ZlRWxlbQ0KK1RvcGxMaXN0U2V0SXRlcg0KK1RvcGxNYWtlR3JhcGhTdGF0ZQ0KK1RvcGxQU2NoZWR1bGVWYWxpZA0KK1RvcGxTVEhlYXBBZGQNCitUb3BsU1RIZWFwQ29zdFJlZHVjZWQNCitUb3BsU1RIZWFwRGVzdHJveQ0KK1RvcGxTVEhlYXBFeHRyYWN0TWluDQorVG9wbFNUSGVhcEluaXQNCitUb3BsU2NoZWR1bGVDYWNoZUNyZWF0ZQ0KK1RvcGxTY2hlZHVsZUNhY2hlRGVzdHJveQ0KK1RvcGxTY2hlZHVsZUNyZWF0ZQ0KK1RvcGxTY2hlZHVsZUR1cmF0aW9uDQorVG9wbFNjaGVkdWxlRXhwb3J0UmVhZG9ubHkNCitUb3BsU2NoZWR1bGVJbXBvcnQNCitUb3BsU2NoZWR1bGVJc0VxdWFsDQorVG9wbFNjaGVkdWxlTWF4VW5hdmFpbGFibGUNCitUb3BsU2NoZWR1bGVNZXJnZQ0KK1RvcGxTY2hlZHVsZU51bUVudHJpZXMNCitUb3BsU2NoZWR1bGVWYWxpZA0KK1RvcGxTZXRBbGxvY2F0b3INCitUb3BsVmVydGV4Q3JlYXRlDQorVG9wbFZlcnRleERlc3Ryb3kNCitUb3BsVmVydGV4RnJlZQ0KK1RvcGxWZXJ0ZXhHZXRJZA0KK1RvcGxWZXJ0ZXhHZXRJbkVkZ2UNCitUb3BsVmVydGV4R2V0T3V0RWRnZQ0KK1RvcGxWZXJ0ZXhHZXRQYXJlbnQNCitUb3BsVmVydGV4SW5pdA0KK1RvcGxWZXJ0ZXhOdW1iZXJPZkluRWRnZXMNCitUb3BsVmVydGV4TnVtYmVyT2ZPdXRFZGdlcw0KK1RvcGxWZXJ0ZXhTZXRJZA0KK1RvcGxWZXJ0ZXhTZXRQYXJlbnQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93M2NhY2hlLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3czY2FjaGUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRjYjJhM2EKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93M2NhY2hlLmRlZgpAQCAtMCwwICsxLDgyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFczQ0FDSEUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFczQ0FDSEUuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIENBQ0hFX0VOVFJZOjpDQUNIRV9FTlRSWShjbGFzcyBDQUNIRV9FTlRSWSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQUNIRV9FTlRSWUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENBQ0hFX0VOVFJZOjpDQUNIRV9FTlRSWShjbGFzcyBPQkpFQ1RfQ0FDSEUgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDQUNIRV9FTlRSWUBAUUVBQUBQRUFWT0JKRUNUX0NBQ0hFQEBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBPQkpFQ1RfQ0FDSEU6Ok9CSkVDVF9DQUNIRSh2b2lkKSBfX3B0cjY0DQorPz8wT0JKRUNUX0NBQ0hFQEBRRUFBQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgX19jZGVjbCBDQUNIRV9FTlRSWTo6fkNBQ0hFX0VOVFJZKHZvaWQpIF9fcHRyNjQNCis/PzFDQUNIRV9FTlRSWUBATUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgT0JKRUNUX0NBQ0hFOjp+T0JKRUNUX0NBQ0hFKHZvaWQpIF9fcHRyNjQNCis/PzFPQkpFQ1RfQ0FDSEVAQFVFQUFAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0FDSEVfRU5UUlkgJiBfX3B0cjY0IF9fY2RlY2wgQ0FDSEVfRU5UUlk6Om9wZXJhdG9yPShjbGFzcyBDQUNIRV9FTlRSWSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDQUNIRV9FTlRSWUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBjb25zdCAgQ0FDSEVfRU5UUlk6OmB2ZnRhYmxlJw0KKz8/XzdDQUNIRV9FTlRSWUBANkJADQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBPQkpFQ1RfQ0FDSEU6OkFkZENhY2hlRW50cnkoY2xhc3MgQ0FDSEVfRU5UUlkgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZENhY2hlRW50cnlAT0JKRUNUX0NBQ0hFQEBRRUFBSlBFQVZDQUNIRV9FTlRSWUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENBQ0hFX0VOVFJZOjpBZGREaXJtb25JbnZhbGlkYXRvcihzdHJ1Y3QgRElSTU9OX0NPTkZJRyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkRGlybW9uSW52YWxpZGF0b3JAQ0FDSEVfRU5UUllAQFFFQUFKUEVBVURJUk1PTl9DT05GSUdAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBPQkpFQ1RfQ0FDSEU6OkFkZERpcm1vbkludmFsaWRhdG9yKHN0cnVjdCBESVJNT05fQ09ORklHICogX19wdHI2NCxjbGFzcyBDRGlyTW9uaXRvckVudHJ5ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkRGlybW9uSW52YWxpZGF0b3JAT0JKRUNUX0NBQ0hFQEBRRUFBSlBFQVVESVJNT05fQ09ORklHQEBQRUFQRUFWQ0Rpck1vbml0b3JFbnRyeUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0FDSEVfRU5UUlk6OkNoZWNrU2lnbmF0dXJlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/Q2hlY2tTaWduYXR1cmVAQ0FDSEVfRU5UUllAQFFFQkFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDQUNIRV9FTlRSWTo6Q2hlY2tvdXQoY2xhc3MgQ0FDSEVfVVNFUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2hlY2tvdXRAQ0FDSEVfRU5UUllAQFVFQUFIUEVBVkNBQ0hFX1VTRVJAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBPQkpFQ1RfQ0FDSEU6OkNsZWFudXBDYWNoZUVudHJ5TGlzdEl0ZW1zKHN0cnVjdCBfTElTVF9FTlRSWSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q2xlYW51cENhY2hlRW50cnlMaXN0SXRlbXNAT0JKRUNUX0NBQ0hFQEBRRUFBWFBFQVVfTElTVF9FTlRSWUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENBQ0hFX0VOVFJZOjpEZXJlZmVyZW5jZUNhY2hlRW50cnkodm9pZCkgX19wdHI2NA0KKz9EZXJlZmVyZW5jZUNhY2hlRW50cnlAQ0FDSEVfRU5UUllAQFFFQUFYWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIE9CSkVDVF9DQUNIRTo6RmluZENhY2hlRW50cnkoY2xhc3MgQ0FDSEVfS0VZICogX19wdHI2NCxjbGFzcyBDQUNIRV9FTlRSWSAqIF9fcHRyNjQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RmluZENhY2hlRW50cnlAT0JKRUNUX0NBQ0hFQEBRRUFBSlBFQVZDQUNIRV9LRVlAQFBFQVBFQVZDQUNIRV9FTlRSWUBAUEVBSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBPQkpFQ1RfQ0FDSEU6OkZsdXNoQnlSZWdDaGFuZ2Uoc3RydWN0IF9MSVNUX0VOVFJZICogX19wdHI2NCkgX19wdHI2NA0KKz9GbHVzaEJ5UmVnQ2hhbmdlQE9CSkVDVF9DQUNIRUBAUUVBQVhQRUFVX0xJU1RfRU5UUllAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBPQkpFQ1RfQ0FDSEU6OkZsdXNoQ2FjaGVFbnRyeShjbGFzcyBDQUNIRV9LRVkgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZsdXNoQ2FjaGVFbnRyeUBPQkpFQ1RfQ0FDSEVAQFFFQUFKUEVBVkNBQ0hFX0tFWUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENBQ0hFX0VOVFJZOjpMb2NrQ2FjaGVFbnRyeSh2b2lkKSBfX3B0cjY0DQorP0xvY2tDYWNoZUVudHJ5QENBQ0hFX0VOVFJZQEBRRUFBWFhaDQorOyBwdWJsaWM6IGNsYXNzIE9CSkVDVF9DQUNIRSAqIF9fcHRyNjQgX19jZGVjbCBDQUNIRV9FTlRSWTo6UXVlcnlDYWNoZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5Q2FjaGVAQ0FDSEVfRU5UUllAQFFFQkFQRUFWT0JKRUNUX0NBQ0hFQEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQUNIRV9FTlRSWTo6UXVlcnlDYWNoZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUNhY2hlZEBDQUNIRV9FTlRSWUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQUNIRV9FTlRSWTo6UXVlcnlJc0ZsdXNoZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUlzRmx1c2hlZEBDQUNIRV9FTlRSWUBAUUVCQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENBQ0hFX0VOVFJZOjpRdWVyeUlzT2tUb0ZsdXNoRGlybW9uKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1F1ZXJ5SXNPa1RvRmx1c2hEaXJtb25AQ0FDSEVfRU5UUllAQFVFQUFIUEVBR0tAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQUNIRV9FTlRSWTo6UXVlcnlJc09rVG9GbHVzaE1ldGFkYXRhKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1F1ZXJ5SXNPa1RvRmx1c2hNZXRhZGF0YUBDQUNIRV9FTlRSWUBAUUVBQUhQRUFHS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0FDSEVfRU5UUlk6OlF1ZXJ5SXNPa1RvRmx1c2hUVEwodm9pZCkgX19wdHI2NA0KKz9RdWVyeUlzT2tUb0ZsdXNoVFRMQENBQ0hFX0VOVFJZQEBVRUFBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgU1RSVSAqIF9fcHRyNjQgX19jZGVjbCBDQUNIRV9FTlRSWTo6UXVlcnlNZXRhZGF0YVBhdGgodm9pZCkgX19wdHI2NA0KKz9RdWVyeU1ldGFkYXRhUGF0aEBDQUNIRV9FTlRSWUBAVUVBQVBFQVZTVFJVQEBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0FDSEVfRU5UUlk6OlJlZmVyZW5jZUNhY2hlRW50cnkodm9pZCkgX19wdHI2NA0KKz9SZWZlcmVuY2VDYWNoZUVudHJ5QENBQ0hFX0VOVFJZQEBRRUFBWFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBPQkpFQ1RfQ0FDSEU6OlNldENhY2hlQ29uZmlndXJhdGlvbih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgQ0FDSEVfSElOVF9DT05GSUcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldENhY2hlQ29uZmlndXJhdGlvbkBPQkpFQ1RfQ0FDSEVAQFFFQUFKS0tLUEVBVUNBQ0hFX0hJTlRfQ09ORklHQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0FDSEVfRU5UUlk6OlNldENhY2hlZChpbnQpIF9fcHRyNjQNCis/U2V0Q2FjaGVkQENBQ0hFX0VOVFJZQEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0FDSEVfRU5UUlk6OlNldEZsdXNoZWQodm9pZCkgX19wdHI2NA0KKz9TZXRGbHVzaGVkQENBQ0hFX0VOVFJZQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQUNIRV9FTlRSWTo6VW5sb2NrQ2FjaGVFbnRyeSh2b2lkKSBfX3B0cjY0DQorP1VubG9ja0NhY2hlRW50cnlAQ0FDSEVfRU5UUllAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIE9CSkVDVF9DQUNIRTo6VW5yZWdpc3RlclNjYXZlbmdlcih2b2lkKSBfX3B0cjY0DQorP1VucmVnaXN0ZXJTY2F2ZW5nZXJAT0JKRUNUX0NBQ0hFQEBRRUFBWFhaDQorOyBsb25nIF9fY2RlY2wgVzNDYWNoZURvTWV0YWRhdGFJbnZhbGlkYXRpb24odW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpDQorP1czQ2FjaGVEb01ldGFkYXRhSW52YWxpZGF0aW9uQEBZQUpQRUFHS0BaDQorOyB2b2lkIF9fY2RlY2wgVzNDYWNoZUZsdXNoQWxsQ2FjaGVzKHZvaWQpDQorP1czQ2FjaGVGbHVzaEFsbENhY2hlc0BAWUFYWFoNCis7IGxvbmcgX19jZGVjbCBXM0NhY2hlSW5pdGlhbGl6ZShzdHJ1Y3QgSU1TQWRtaW5CYXNlVyAqIF9fcHRyNjQpDQorP1czQ2FjaGVJbml0aWFsaXplQEBZQUpQRUFVSU1TQWRtaW5CYXNlV0BAQFoNCis7IGxvbmcgX19jZGVjbCBXM0NhY2hlUmVnaXN0ZXJDYWNoZShjbGFzcyBPQkpFQ1RfQ0FDSEUgKiBfX3B0cjY0KQ0KKz9XM0NhY2hlUmVnaXN0ZXJDYWNoZUBAWUFKUEVBVk9CSkVDVF9DQUNIRUBAQFoNCis7IHZvaWQgX19jZGVjbCBXM0NhY2hlVGVybWluYXRlKHZvaWQpDQorP1czQ2FjaGVUZXJtaW5hdGVAQFlBWFhaDQorOyBsb25nIF9fY2RlY2wgVzNDYWNoZVVucmVnaXN0ZXJDYWNoZShjbGFzcyBPQkpFQ1RfQ0FDSEUgKiBfX3B0cjY0KQ0KKz9XM0NhY2hlVW5yZWdpc3RlckNhY2hlQEBZQUpQRUFWT0JKRUNUX0NBQ0hFQEBAWg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3czY29tbG9nLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3czY29tbG9nLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MTdjMjRiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdzNjb21sb2cuZGVmCkBAIC0wLDAgKzEsMzYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgVzNDT01MT0cuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFczQ09NTE9HLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBMT0dHSU5HOjpMT0dHSU5HKGNsYXNzIExPR0dJTkcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wTE9HR0lOR0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIExPR0dJTkc6OkxPR0dJTkcodm9pZCkgX19wdHI2NA0KKz8/MExPR0dJTkdAQFFFQUFAWFoNCis7IHByaXZhdGU6IF9fY2RlY2wgTE9HR0lORzo6fkxPR0dJTkcodm9pZCkgX19wdHI2NA0KKz8/MUxPR0dJTkdAQEFFQUFAWFoNCis7IHB1YmxpYzogY2xhc3MgTE9HR0lORyAmIF9fcHRyNjQgX19jZGVjbCBMT0dHSU5HOjpvcGVyYXRvcj0oY2xhc3MgTE9HR0lORyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRMT0dHSU5HQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIExPR0dJTkc6OkFjdGl2YXRlTG9nZ2luZyhjaGFyIGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IElNU0FkbWluQmFzZVcgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9BY3RpdmF0ZUxvZ2dpbmdATE9HR0lOR0BAUUVBQUpQRUJEUEVCR1BFQVVJTVNBZG1pbkJhc2VXQEBIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIExPR0dJTkc6OkFkZFJlZih2b2lkKSBfX3B0cjY0DQorP0FkZFJlZkBMT0dHSU5HQEBRRUFBWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgTE9HR0lORzo6SW5pdGlhbGl6ZSh2b2lkKQ0KKz9Jbml0aWFsaXplQExPR0dJTkdAQFNBSlhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIExPR0dJTkc6OklzUmVxdWlyZWRFeHRyYUxvZ2dpbmdGaWVsZHModm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1JlcXVpcmVkRXh0cmFMb2dnaW5nRmllbGRzQExPR0dJTkdAQFFFQkFIWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIExPR0dJTkc6OkxvZ0luZm9ybWF0aW9uKGNsYXNzIExPR19DT05URVhUICogX19wdHI2NCkgX19wdHI2NA0KKz9Mb2dJbmZvcm1hdGlvbkBMT0dHSU5HQEBRRUFBWFBFQVZMT0dfQ09OVEVYVEBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgTE9HR0lORzo6UXVlcnlEb0N1c3RvbUxvZ2dpbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeURvQ3VzdG9tTG9nZ2luZ0BMT0dHSU5HQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIExPR0dJTkc6OlF1ZXJ5RG9VbExvZ2dpbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeURvVWxMb2dnaW5nQExPR0dJTkdAQFFFQkFIWFoNCis7IHB1YmxpYzogY2xhc3MgTVVMVElTWkEgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgTE9HR0lORzo6UXVlcnlFeHRyYUxvZ2dpbmdGaWVsZHModm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeUV4dHJhTG9nZ2luZ0ZpZWxkc0BMT0dHSU5HQEBRRUJBUEVCVk1VTFRJU1pBQEBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgTE9HR0lORzo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VATE9HR0lOR0BAUUVBQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIExPR0dJTkc6OlRlcm1pbmF0ZSh2b2lkKQ0KKz9UZXJtaW5hdGVATE9HR0lOR0BAU0FYWFoNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93M2NvcmUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdzNjb3JlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZGRiNDQyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdzNjb3JlLmRlZgpAQCAtMCwwICsxLDE3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHczY29yZS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgdzNjb3JlLmRsbA0KK0VYUE9SVFMNCis7IGludCBfX2NkZWNsIEZpbmRJbkVUYWdMaXN0KGNoYXIgY29uc3QgKiBfX3B0cjY0LGNoYXIgY29uc3QgKiBfX3B0cjY0LGludCkNCis/RmluZEluRVRhZ0xpc3RAQFlBSFBFQkQwSEBaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBXM19GSUxFX0lORk9fQ0FDSEUgKiBfX3B0cjY0IF9fY2RlY2wgVzNfRklMRV9JTkZPX0NBQ0hFOjpHZXRGaWxlQ2FjaGUodm9pZCkNCis/R2V0RmlsZUNhY2hlQFczX0ZJTEVfSU5GT19DQUNIRUBAU0FQRUFWMUBYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgVzNfRklMRV9JTkZPX0NBQ0hFOjpHZXRGaWxlSW5mbyhjbGFzcyBTVFJVICYgX19wdHI2NCxzdHJ1Y3QgRElSTU9OX0NPTkZJRyAqIF9fcHRyNjQsY2xhc3MgQ0FDSEVfVVNFUiAqIF9fcHRyNjQsaW50LGNsYXNzIFczX0ZJTEVfSU5GTyAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCBGSUxFX0NBQ0hFX0FTWU5DX0NPTlRFWFQgKiBfX3B0cjY0LGludCAqIF9fcHRyNjQsaW50LGludCxzdHJ1Y3QgX0VUV19UUkFDRV9JTkZPICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRGaWxlSW5mb0BXM19GSUxFX0lORk9fQ0FDSEVAQFFFQUFKQUVBVlNUUlVAQFBFQVVESVJNT05fQ09ORklHQEBQRUFWQ0FDSEVfVVNFUkBASFBFQVBFQVZXM19GSUxFX0lORk9AQFBFQVVGSUxFX0NBQ0hFX0FTWU5DX0NPTlRFWFRAQFBFQUhISFBFQVVfRVRXX1RSQUNFX0lORk9AQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFczX0ZJTEVfSU5GTzo6U2V0QXNzb2NpYXRlZE9iamVjdChjbGFzcyBBU1NPQ0lBVEVEX0ZJTEVfT0JKRUNUICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRBc3NvY2lhdGVkT2JqZWN0QFczX0ZJTEVfSU5GT0BAUUVBQUhQRUFWQVNTT0NJQVRFRF9GSUxFX09CSkVDVEBAQFoNCitVbFczU3RhcnQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93M2N0cmxwcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93M2N0cmxwcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTFhODlmOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3czY3RybHBzLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHczY3RybHBzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSB3M2N0cmxwcy5kbGwNCitFWFBPUlRTDQorR2V0UHJveHlEbGxJbmZvDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93M2N0cnMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdzNjdHJzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZmM5YTRkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdzNjdHJzLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFczQ1RSUy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgVzNDVFJTLmRsbA0KK0VYUE9SVFMNCitPcGVuVzNQZXJmb3JtYW5jZURhdGENCitDb2xsZWN0VzNQZXJmb3JtYW5jZURhdGENCitDbG9zZVczUGVyZm9ybWFuY2VEYXRhDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvdzNkdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93M2R0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NTliMmM1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvdzNkdC5kZWYKQEAgLTAsMCArMSwyOCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB3M2R0LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSB3M2R0LmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogY2xhc3MgSVBNX01FU1NBR0VfUElQRSAmIF9fcHRyNjQgX19jZGVjbCBJUE1fTUVTU0FHRV9QSVBFOjpvcGVyYXRvcj0oY2xhc3MgSVBNX01FU1NBR0VfUElQRSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRJUE1fTUVTU0FHRV9QSVBFQEBRRUFBQUVBVjBAQUVCVjBAQFoNCitVbEF0cUFkZEZyYWdtZW50VG9DYWNoZQ0KK1VsQXRxQWxsb2NhdGVNZW1vcnkNCitVbEF0cUZsdXNoVWxDYWNoZQ0KK1VsQXRxRnJlZUNvbnRleHQNCitVbEF0cUdldENvbnRleHRQcm9wZXJ0eQ0KK1VsQXRxSW5kdWNlU2h1dGRvd24NCitVbEF0cUluaXRpYWxpemUNCitVbEF0cVJlYWRGcmFnbWVudEZyb21DYWNoZQ0KK1VsQXRxUmVjZWl2ZUNsaWVudENlcnRpZmljYXRlDQorVWxBdHFSZWNlaXZlRW50aXR5Qm9keQ0KK1VsQXRxUmVtb3ZlRnJhZ21lbnRGcm9tQ2FjaGUNCitVbEF0cVNlbmRFbnRpdHlCb2R5DQorVWxBdHFTZW5kSHR0cFJlc3BvbnNlDQorVWxBdHFTZXRDb250ZXh0UHJvcGVydHkNCitVbEF0cVNldFVuaGVhbHRoeQ0KK1VsQXRxU3RhcnRMaXN0ZW4NCitVbEF0cVRlcm1pbmF0ZQ0KK1VsQXRxV2FpdEZvckRpc2Nvbm5lY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93M2V4dC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93M2V4dC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2JjZGEzYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3czZXh0LmRlZgpAQCAtMCwwICsxLDU1NiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB3M2V4dC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgdzNleHQuRExMDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGw8Y2xhc3MgQ0ZpbGVDaG9vc2VyLGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+OjpDV2luZG93SW1wbDxjbGFzcyBDRmlsZUNob29zZXIsY2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID4oY2xhc3MgQ1dpbmRvd0ltcGw8Y2xhc3MgQ0ZpbGVDaG9vc2VyLGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+OjpDV2luZG93SW1wbDxjbGFzcyBDRmlsZUNob29zZXIsY2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRDV2luZG93SW1wbEBWQ0ZpbGVDaG9vc2VyQEBWQ1dpbmRvd0BBVExAQFY/JENXaW5UcmFpdHNAJDBGR0FBQUFBQUAkMEFAQDNAQEFUTEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsPGNsYXNzIENGaWxlQ2hvb3NlcixjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6Q1dpbmRvd0ltcGw8Y2xhc3MgQ0ZpbGVDaG9vc2VyLGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+KHZvaWQpIF9fcHRyNjQNCis/PzA/JENXaW5kb3dJbXBsQFZDRmlsZUNob29zZXJAQFZDV2luZG93QEFUTEBAVj8kQ1dpblRyYWl0c0AkMEZHQUFBQUFBQCQwQUBAM0BAQVRMQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQVRMOjpDV2luZG93SW1wbEJhc2VUPGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+OjpDV2luZG93SW1wbEJhc2VUPGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+KGNsYXNzIENXaW5kb3dJbXBsQmFzZVQ8Y2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID46OkNXaW5kb3dJbXBsQmFzZVQ8Y2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRDV2luZG93SW1wbEJhc2VUQFZDV2luZG93QEFUTEBAVj8kQ1dpblRyYWl0c0AkMEZHQUFBQUFBQCQwQUBAMkBAQVRMQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPih2b2lkKSBfX3B0cjY0DQorPz8wPyRDV2luZG93SW1wbEJhc2VUQFZDV2luZG93QEFUTEBAVj8kQ1dpblRyYWl0c0AkMEZHQUFBQUFBQCQwQUBAMkBAQVRMQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQVRMOjpDV2luZG93SW1wbFJvb3Q8Y2xhc3MgQVRMOjpDV2luZG93Pjo6Q1dpbmRvd0ltcGxSb290PGNsYXNzIEFUTDo6Q1dpbmRvdz4oY2xhc3MgQ1dpbmRvd0ltcGxSb290PGNsYXNzIEFUTDo6Q1dpbmRvdz46OkNXaW5kb3dJbXBsUm9vdDxjbGFzcyBBVEw6OkNXaW5kb3c+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kQ1dpbmRvd0ltcGxSb290QFZDV2luZG93QEFUTEBAQEFUTEBAUUVBQUBBRUJWMDFAQFoNCis7IHB1YmxpYzogX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsUm9vdDxjbGFzcyBBVEw6OkNXaW5kb3c+OjpDV2luZG93SW1wbFJvb3Q8Y2xhc3MgQVRMOjpDV2luZG93Pih2b2lkKSBfX3B0cjY0DQorPz8wPyRDV2luZG93SW1wbFJvb3RAVkNXaW5kb3dAQVRMQEBAQVRMQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPihjbGFzcyBsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBQEFFQlYwMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4oY2xhc3MgbGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBQEFFQlY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPihjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgKiBfX3B0cjY0LGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAqIF9fcHRyNjQsY2xhc3MgbGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBQFBFQlZDU3RyaW5nQElJU0BAMEFFQlY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPihjbGFzcyBsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6Y29uc3RfaXRlcmF0b3IsY2xhc3MgbGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmNvbnN0X2l0ZXJhdG9yLGNsYXNzIGxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQUBWY29uc3RfaXRlcmF0b3JAMDFAMEFFQlY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEAxQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPih1bnNpZ25lZCBfX2ludDY0LGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fcHRyNjQsY2xhc3MgbGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBQF9LQUVCVkNTdHJpbmdASUlTQEBBRUJWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAMUBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENFcnJvcjo6Q0Vycm9yKGNsYXNzIENFcnJvciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRXJyb3JAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXJyb3I6OkNFcnJvcihsb25nKSBfX3B0cjY0DQorPz8wQ0Vycm9yQEBRRUFBQEpAWg0KKzsgcHVibGljOiBfX2NkZWNsIENFcnJvcjo6Q0Vycm9yKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDRXJyb3JAQFFFQUFAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Vycm9yOjpDRXJyb3Iodm9pZCkgX19wdHI2NA0KKz8/MENFcnJvckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENGaWxlQ2hvb3Nlcjo6Q0ZpbGVDaG9vc2VyKGNsYXNzIENGaWxlQ2hvb3NlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRmlsZUNob29zZXJAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRmlsZUNob29zZXI6OkNGaWxlQ2hvb3Nlcih2b2lkKSBfX3B0cjY0DQorPz8wQ0ZpbGVDaG9vc2VyQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpDSUlTQXBwbGljYXRpb24oY2xhc3MgQ0lJU0FwcGxpY2F0aW9uICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENJSVNBcHBsaWNhdGlvbkBAUUVBQUBBRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJSVNJbnRlcmZhY2U6OkNJSVNJbnRlcmZhY2UoY2xhc3MgQ0lJU0ludGVyZmFjZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSUlTSW50ZXJmYWNlQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6OkNJSVNTdmNDb250cm9sKGNsYXNzIENJSVNTdmNDb250cm9sICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENJSVNTdmNDb250cm9sQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFCYWNrOjpDTWV0YUJhY2soY2xhc3MgQ01ldGFCYWNrICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENNZXRhQmFja0BAUUVBQUBBRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhRW51bWVyYXRvcjo6Q01ldGFFbnVtZXJhdG9yKGNsYXNzIENNZXRhRW51bWVyYXRvciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWV0YUVudW1lcmF0b3JAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0YUludGVyZmFjZTo6Q01ldGFJbnRlcmZhY2UoY2xhc3MgQ01ldGFJbnRlcmZhY2UgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01ldGFJbnRlcmZhY2VAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0YUtleTo6Q01ldGFLZXkoY2xhc3MgQ01ldGFLZXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01ldGFLZXlAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpDTWV0YWJhc2VQYXRoKGNsYXNzIENNZXRhYmFzZVBhdGggY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01ldGFiYXNlUGF0aEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENTdHJpbmdMaXN0RXg6OkNTdHJpbmdMaXN0RXgoY2xhc3MgQ1N0cmluZ0xpc3RFeCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDU3RyaW5nTGlzdEV4QEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1dhbUludGVyZmFjZTo6Q1dhbUludGVyZmFjZShjbGFzcyBDV2FtSW50ZXJmYWNlICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENXYW1JbnRlcmZhY2VAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsPGNsYXNzIENGaWxlQ2hvb3NlcixjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6fkNXaW5kb3dJbXBsPGNsYXNzIENGaWxlQ2hvb3NlcixjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPih2b2lkKSBfX3B0cjY0DQorPz8xPyRDV2luZG93SW1wbEBWQ0ZpbGVDaG9vc2VyQEBWQ1dpbmRvd0BBVExAQFY/JENXaW5UcmFpdHNAJDBGR0FBQUFBQUAkMEFAQDNAQEFUTEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6fkNXaW5kb3dJbXBsQmFzZVQ8Y2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kQ1dpbmRvd0ltcGxCYXNlVEBWQ1dpbmRvd0BBVExAQFY/JENXaW5UcmFpdHNAJDBGR0FBQUFBQUAkMEFAQDJAQEFUTEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxSb290PGNsYXNzIEFUTDo6Q1dpbmRvdz46On5DV2luZG93SW1wbFJvb3Q8Y2xhc3MgQVRMOjpDV2luZG93Pih2b2lkKSBfX3B0cjY0DQorPz8xPyRDV2luZG93SW1wbFJvb3RAVkNXaW5kb3dAQVRMQEBAQVRMQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46On5saXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4odm9pZCkgX19wdHI2NA0KKz8/MT8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQmxvYjo6fkNCbG9iKHZvaWQpIF9fcHRyNjQNCis/PzFDQmxvYkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENDb21BdXRoSW5mbzo6fkNDb21BdXRoSW5mbyh2b2lkKSBfX3B0cjY0DQorPz8xQ0NvbUF1dGhJbmZvQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0ZpbGVDaG9vc2VyOjp+Q0ZpbGVDaG9vc2VyKHZvaWQpIF9fcHRyNjQNCis/PzFDRmlsZUNob29zZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6fkNJSVNBcHBsaWNhdGlvbih2b2lkKSBfX3B0cjY0DQorPz8xQ0lJU0FwcGxpY2F0aW9uQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lJU0ludGVyZmFjZTo6fkNJSVNJbnRlcmZhY2Uodm9pZCkgX19wdHI2NA0KKz8/MUNJSVNJbnRlcmZhY2VAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENNZXRhQmFjazo6fkNNZXRhQmFjayh2b2lkKSBfX3B0cjY0DQorPz8xQ01ldGFCYWNrQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDTWV0YUVudW1lcmF0b3I6On5DTWV0YUVudW1lcmF0b3Iodm9pZCkgX19wdHI2NA0KKz8/MUNNZXRhRW51bWVyYXRvckBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhYmFzZVBhdGg6On5DTWV0YWJhc2VQYXRoKHZvaWQpIF9fcHRyNjQNCis/PzFDTWV0YWJhc2VQYXRoQEBRRUFBQFhaDQorOyBwdWJsaWM6IGNsYXNzIEFUTDo6Q1dpbmRvd0ltcGw8Y2xhc3MgQ0ZpbGVDaG9vc2VyLGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+ICYgX19wdHI2NCBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGw8Y2xhc3MgQ0ZpbGVDaG9vc2VyLGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+OjpvcGVyYXRvcj0oY2xhc3MgQVRMOjpDV2luZG93SW1wbDxjbGFzcyBDRmlsZUNob29zZXIsY2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDV2luZG93SW1wbEBWQ0ZpbGVDaG9vc2VyQEBWQ1dpbmRvd0BBVExAQFY/JENXaW5UcmFpdHNAJDBGR0FBQUFBQUAkMEFAQDNAQEFUTEBAUUVBQUFFQVYwMUBBRUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3MgQVRMOjpDV2luZG93SW1wbEJhc2VUPGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+ICYgX19wdHI2NCBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6b3BlcmF0b3I9KGNsYXNzIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzQ/JENXaW5kb3dJbXBsQmFzZVRAVkNXaW5kb3dAQVRMQEBWPyRDV2luVHJhaXRzQCQwRkdBQUFBQUFAJDBBQEAyQEBBVExAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIEFUTDo6Q1dpbmRvd0ltcGxSb290PGNsYXNzIEFUTDo6Q1dpbmRvdz4gJiBfX3B0cjY0IF9fY2RlY2wgQVRMOjpDV2luZG93SW1wbFJvb3Q8Y2xhc3MgQVRMOjpDV2luZG93Pjo6b3BlcmF0b3I9KGNsYXNzIEFUTDo6Q1dpbmRvd0ltcGxSb290PGNsYXNzIEFUTDo6Q1dpbmRvdz4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80PyRDV2luZG93SW1wbFJvb3RAVkNXaW5kb3dAQVRMQEBAQVRMQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPiAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFBRUFWMDFAQUVCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIENFcnJvciBjb25zdCAmIF9fcHRyNjQgX19jZGVjbCBDRXJyb3I6Om9wZXJhdG9yPShjbGFzcyBDRXJyb3IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0Vycm9yQEBRRUFBQUVCVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0Vycm9yIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIENFcnJvcjo6b3BlcmF0b3I9KGxvbmcpIF9fcHRyNjQNCis/PzRDRXJyb3JAQFFFQUFBRUJWMEBKQFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZpbGVDaG9vc2VyICYgX19wdHI2NCBfX2NkZWNsIENGaWxlQ2hvb3Nlcjo6b3BlcmF0b3I9KGNsYXNzIENGaWxlQ2hvb3NlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDRmlsZUNob29zZXJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSUlTQXBwbGljYXRpb24gJiBfX3B0cjY0IF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpvcGVyYXRvcj0oY2xhc3MgQ0lJU0FwcGxpY2F0aW9uICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJSVNBcHBsaWNhdGlvbkBAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJSVNJbnRlcmZhY2UgJiBfX3B0cjY0IF9fY2RlY2wgQ0lJU0ludGVyZmFjZTo6b3BlcmF0b3I9KGNsYXNzIENJSVNJbnRlcmZhY2UgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0lJU0ludGVyZmFjZUBAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJSVNTdmNDb250cm9sICYgX19wdHI2NCBfX2NkZWNsIENJSVNTdmNDb250cm9sOjpvcGVyYXRvcj0oY2xhc3MgQ0lJU1N2Y0NvbnRyb2wgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0lJU1N2Y0NvbnRyb2xAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTWV0YUJhY2sgJiBfX3B0cjY0IF9fY2RlY2wgQ01ldGFCYWNrOjpvcGVyYXRvcj0oY2xhc3MgQ01ldGFCYWNrICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENNZXRhQmFja0BAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENNZXRhRW51bWVyYXRvciAmIF9fcHRyNjQgX19jZGVjbCBDTWV0YUVudW1lcmF0b3I6Om9wZXJhdG9yPShjbGFzcyBDTWV0YUVudW1lcmF0b3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q01ldGFFbnVtZXJhdG9yQEBRRUFBQUVBVjBAQUVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ01ldGFJbnRlcmZhY2UgJiBfX3B0cjY0IF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6Om9wZXJhdG9yPShjbGFzcyBDTWV0YUludGVyZmFjZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTWV0YUludGVyZmFjZUBAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENNZXRhS2V5ICYgX19wdHI2NCBfX2NkZWNsIENNZXRhS2V5OjpvcGVyYXRvcj0oY2xhc3MgQ01ldGFLZXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q01ldGFLZXlAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTWV0YWJhc2VQYXRoICYgX19wdHI2NCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6Om9wZXJhdG9yPShjbGFzcyBDTWV0YWJhc2VQYXRoIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENNZXRhYmFzZVBhdGhAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nTGlzdEV4ICYgX19wdHI2NCBfX2NkZWNsIENTdHJpbmdMaXN0RXg6Om9wZXJhdG9yPShjbGFzcyBDU3RyaW5nTGlzdEV4IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENTdHJpbmdMaXN0RXhAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2FtSW50ZXJmYWNlICYgX19wdHI2NCBfX2NkZWNsIENXYW1JbnRlcmZhY2U6Om9wZXJhdG9yPShjbGFzcyBDV2FtSW50ZXJmYWNlICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENXYW1JbnRlcmZhY2VAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBpbnQgY29uc3QgIF9fY2RlY2wgQ0Vycm9yOjpvcGVyYXRvcj09KGNsYXNzIENFcnJvciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzhDRXJyb3JAQFFFQUE/QkhBRUFWMEBAWg0KKzsgcHVibGljOiBpbnQgY29uc3QgIF9fY2RlY2wgQ0Vycm9yOjpvcGVyYXRvcj09KGxvbmcpIF9fcHRyNjQNCis/PzhDRXJyb3JAQFFFQUE/QkhKQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0Jsb2I6Om9wZXJhdG9yIT0oY2xhc3MgQ0Jsb2IgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz85Q0Jsb2JAQFFFQkFIQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IGNvbnN0ICBfX2NkZWNsIENFcnJvcjo6b3BlcmF0b3IhPShjbGFzcyBDRXJyb3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz85Q0Vycm9yQEBRRUFBP0JIQUVBVjBAQFoNCis7IHB1YmxpYzogaW50IGNvbnN0ICBfX2NkZWNsIENFcnJvcjo6b3BlcmF0b3IhPShsb25nKSBfX3B0cjY0DQorPz85Q0Vycm9yQEBRRUFBP0JISkBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDU3RyUGFzc3dvcmQ6Om9wZXJhdG9yIT0oY2xhc3MgQ1N0clBhc3N3b3JkICYgX19wdHI2NCkgX19wdHI2NA0KKz8/OUNTdHJQYXNzd29yZEBAUUVBQV9OQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ29tQXV0aEluZm86Om9wZXJhdG9yIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCh2b2lkKSBfX3B0cjY0DQorPz9CQ0NvbUF1dGhJbmZvQEBRRUFBUEVBR1haDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjpvcGVyYXRvciBjbGFzcyBDQ29tQXV0aEluZm8gKiBfX3B0cjY0KHZvaWQpIF9fcHRyNjQNCis/P0JDQ29tQXV0aEluZm9AQFFFQUFQRUFWMEBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENFcnJvcjo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KHZvaWQpIF9fcHRyNjQNCis/P0JDRXJyb3JAQFFFQUFQRUJHWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXJyb3I6Om9wZXJhdG9yIGludCBjb25zdCAodm9pZCljb25zdCAgX19wdHI2NA0KKz8/QkNFcnJvckBAUUVCQT9CSFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Vycm9yOjpvcGVyYXRvciBsb25nIGNvbnN0ICh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CQ0Vycm9yQEBRRUJBP0JKWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXJyb3I6Om9wZXJhdG9yIHVuc2lnbmVkIGxvbmcgY29uc3QgKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDRXJyb3JAQFFFQkE/QktYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJSVNJbnRlcmZhY2U6Om9wZXJhdG9yIGludCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorPz9CQ0lJU0ludGVyZmFjZUBAUUVCQUhYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJSVNJbnRlcmZhY2U6Om9wZXJhdG9yIGxvbmcodm9pZCljb25zdCAgX19wdHI2NA0KKz8/QkNJSVNJbnRlcmZhY2VAQFFFQkFKWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTWV0YUtleTo6b3BlcmF0b3IgaW50KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDTWV0YUtleUBAUUVCQUhYWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhS2V5OjpvcGVyYXRvciB1bnNpZ25lZCBsb25nKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDTWV0YUtleUBAUUVCQUtYWg0KKzsgcHVibGljOiBfX2NkZWNsIENNZXRhS2V5OjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQodm9pZCljb25zdCAgX19wdHI2NA0KKz8/QkNNZXRhS2V5QEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JDTWV0YWJhc2VQYXRoQEBRRUJBUEVCR1haDQorOyBjb25zdCAgQ0ZpbGVDaG9vc2VyOjpgdmZ0YWJsZScNCis/P183Q0ZpbGVDaG9vc2VyQEA2QkANCis7IGNvbnN0ICBDSUlTQXBwbGljYXRpb246OmB2ZnRhYmxlJ3tmb3IgYENNZXRhS2V5J30NCis/P183Q0lJU0FwcGxpY2F0aW9uQEA2QkNNZXRhS2V5QEBADQorOyBjb25zdCAgQ0lJU0FwcGxpY2F0aW9uOjpgdmZ0YWJsZSd7Zm9yIGBDV2FtSW50ZXJmYWNlJ30NCis/P183Q0lJU0FwcGxpY2F0aW9uQEA2QkNXYW1JbnRlcmZhY2VAQEANCis7IGNvbnN0ICBDSUlTSW50ZXJmYWNlOjpgdmZ0YWJsZScNCis/P183Q0lJU0ludGVyZmFjZUBANkJADQorOyBjb25zdCAgQ0lJU1N2Y0NvbnRyb2w6OmB2ZnRhYmxlJw0KKz8/XzdDSUlTU3ZjQ29udHJvbEBANkJADQorOyBjb25zdCAgQ01ldGFCYWNrOjpgdmZ0YWJsZSd7Zm9yIGBDTWV0YUludGVyZmFjZSd9DQorPz9fN0NNZXRhQmFja0BANkJDTWV0YUludGVyZmFjZUBAQA0KKzsgY29uc3QgIENNZXRhQmFjazo6YHZmdGFibGUne2ZvciBgQ1dhbUludGVyZmFjZSd9DQorPz9fN0NNZXRhQmFja0BANkJDV2FtSW50ZXJmYWNlQEBADQorOyBjb25zdCAgQ01ldGFFbnVtZXJhdG9yOjpgdmZ0YWJsZScNCis/P183Q01ldGFFbnVtZXJhdG9yQEA2QkANCis7IGNvbnN0ICBDTWV0YUludGVyZmFjZTo6YHZmdGFibGUnDQorPz9fN0NNZXRhSW50ZXJmYWNlQEA2QkANCis7IGNvbnN0ICBDTWV0YUtleTo6YHZmdGFibGUnDQorPz9fN0NNZXRhS2V5QEA2QkANCis7IGNvbnN0ICBDV2FtSW50ZXJmYWNlOjpgdmZ0YWJsZScNCis/P183Q1dhbUludGVyZmFjZUBANkJADQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0Y/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ29tQXV0aEluZm86OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GQ0NvbUF1dGhJbmZvQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNNZXRhYmFzZVBhdGhAQFFFQUFYWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpBZGRLZXkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkS2V5QENNZXRhSW50ZXJmYWNlQEBJRUFBSktQRUJHQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpBZGRLZXkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEtleUBDTWV0YUtleUBAUUVBQUpQRUJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGaWxlQ2hvb3Nlcjo6QWRkU3R5bGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BZGRTdHlsZUBDRmlsZUNob29zZXJAQFFFQUFYS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpBcHBEZWxldGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9BcHBEZWxldGVAQ1dhbUludGVyZmFjZUBASUVBQUpQRUJHSEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpBcHBEZWxldGVSZWNvdmVyYWJsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0FwcERlbGV0ZVJlY292ZXJhYmxlQENXYW1JbnRlcmZhY2VAQElFQUFKUEVCR0hAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ1dhbUludGVyZmFjZTo6QXBwR2V0U3RhdHVzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9BcHBHZXRTdGF0dXNAQ1dhbUludGVyZmFjZUBASUVBQUpQRUJHUEVBS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpBcHBSZWNvdmVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/QXBwUmVjb3ZlckBDV2FtSW50ZXJmYWNlQEBJRUFBSlBFQkdIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENXYW1JbnRlcmZhY2U6OkFwcFVuTG9hZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0FwcFVuTG9hZEBDV2FtSW50ZXJmYWNlQEBJRUFBSlBFQkdIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6OkFwcGx5UHJveHlCbGFua2V0KHZvaWQpIF9fcHRyNjQNCis/QXBwbHlQcm94eUJsYW5rZXRAQ0lJU1N2Y0NvbnRyb2xAQE1FQUFKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgQ01ldGFCYWNrOjpBcHBseVByb3h5QmxhbmtldCh2b2lkKSBfX3B0cjY0DQorP0FwcGx5UHJveHlCbGFua2V0QENNZXRhQmFja0BATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6QXBwbHlQcm94eUJsYW5rZXQodm9pZCkgX19wdHI2NA0KKz9BcHBseVByb3h5QmxhbmtldEBDTWV0YUludGVyZmFjZUBATUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2FtSW50ZXJmYWNlOjpBcHBseVByb3h5QmxhbmtldCh2b2lkKSBfX3B0cjY0DQorP0FwcGx5UHJveHlCbGFua2V0QENXYW1JbnRlcmZhY2VAQE1FQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhQmFjazo6QmFja3VwKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9CYWNrdXBAQ01ldGFCYWNrQEBRRUFBSlBFQkdAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkJhY2t1cCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0JhY2t1cEBDTWV0YUludGVyZmFjZUBASUVBQUpQRUJHS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDSUlTSW50ZXJmYWNlOjpDaGFuZ2VQcm94eUJsYW5rZXQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DaGFuZ2VQcm94eUJsYW5rZXRAQ0lJU0ludGVyZmFjZUBAVUVBQUpQRUJHMEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6Q2xvc2VLZXkodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9DbG9zZUtleUBDTWV0YUludGVyZmFjZUBASUVBQUpLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpDb3B5RGF0YSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/Q29weURhdGFAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdLMEtLS0hAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkNvcHlLZXkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz9Db3B5S2V5QENNZXRhSW50ZXJmYWNlQEBJRUFBSktQRUJHSzBISEBaDQorOyBwdWJsaWM6IHN0cnVjdCBIV05EX18gKiBfX3B0cjY0IF9fY2RlY2wgQVRMOjpDV2luZG93SW1wbDxjbGFzcyBDRmlsZUNob29zZXIsY2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID46OkNyZWF0ZShzdHJ1Y3QgSFdORF9fICogX19wdHI2NCxzdHJ1Y3QgdGFnUkVDVCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBpbnQsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q3JlYXRlQD8kQ1dpbmRvd0ltcGxAVkNGaWxlQ2hvb3NlckBAVkNXaW5kb3dAQVRMQEBWPyRDV2luVHJhaXRzQCQwRkdBQUFBQUFAJDBBQEAzQEBBVExAQFFFQUFQRUFVSFdORF9fQEBQRUFVM0BBRUFVdGFnUkVDVEBAUEVCR0tLSVBFQVhAWg0KKzsgcHVibGljOiBzdHJ1Y3QgSFdORF9fICogX19wdHI2NCBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6Q3JlYXRlKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHN0cnVjdCB0YWdSRUNUICYgX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9DcmVhdGVAPyRDV2luZG93SW1wbEJhc2VUQFZDV2luZG93QEFUTEBAVj8kQ1dpblRyYWl0c0AkMEZHQUFBQUFBQCQwQUBAMkBAQVRMQEBRRUFBUEVBVUhXTkRfX0BAUEVBVTNAQUVBVXRhZ1JFQ1RAQFBFQkdLS0lHUEVBWEBaDQorOyBwdWJsaWM6IF9faW50NjQgX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsQmFzZVQ8Y2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID46OkRlZldpbmRvd1Byb2NXKHVuc2lnbmVkIGludCx1bnNpZ25lZCBfX2ludDY0LF9faW50NjQpIF9fcHRyNjQNCis/RGVmV2luZG93UHJvY1dAPyRDV2luZG93SW1wbEJhc2VUQFZDV2luZG93QEFUTEBAVj8kQ1dpblRyYWl0c0AkMEZHQUFBQUFBQCQwQUBAMkBAQVRMQEBRRUFBX0pJX0tfSkBaDQorOyBwdWJsaWM6IF9faW50NjQgX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsQmFzZVQ8Y2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID46OkRlZldpbmRvd1Byb2NXKHZvaWQpIF9fcHRyNjQNCis/RGVmV2luZG93UHJvY1dAPyRDV2luZG93SW1wbEJhc2VUQFZDV2luZG93QEFUTEBAVj8kQ1dpblRyYWl0c0AkMEZHQUFBQUFBQCQwQUBAMkBAQVRMQEBRRUFBX0pYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQVRMOjpDV2luZG93SW1wbFJvb3Q8Y2xhc3MgQVRMOjpDV2luZG93Pjo6RGVmYXVsdFJlZmxlY3Rpb25IYW5kbGVyKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBfX2ludDY0LF9faW50NjQsX19pbnQ2NCAmIF9fcHRyNjQpDQorP0RlZmF1bHRSZWZsZWN0aW9uSGFuZGxlckA/JENXaW5kb3dJbXBsUm9vdEBWQ1dpbmRvd0BBVExAQEBBVExAQFNBSFBFQVVIV05EX19AQElfS19KQUVBX0pAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpEZWxldGUoaW50KSBfX3B0cjY0DQorP0RlbGV0ZUBDSUlTQXBwbGljYXRpb25AQFFFQUFKSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUJhY2s6OkRlbGV0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9EZWxldGVAQ01ldGFCYWNrQEBRRUFBSlBFQkdLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpEZWxldGVBbGxEYXRhKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9EZWxldGVBbGxEYXRhQENNZXRhSW50ZXJmYWNlQEBJRUFBSktQRUJHS0tAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkRlbGV0ZUJhY2t1cCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9EZWxldGVCYWNrdXBAQ01ldGFJbnRlcmZhY2VAQElFQUFKUEVCR0tAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkRlbGV0ZUNoaWxkS2V5cyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVDaGlsZEtleXNAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OkRlbGV0ZURhdGEodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP0RlbGV0ZURhdGFAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdLS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6RGVsZXRlS2V5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlbGV0ZUtleUBDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6RGVsZXRlS2V5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EZWxldGVLZXlAQ01ldGFLZXlAQFFFQUFKUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSUlTQXBwbGljYXRpb246OkRlbGV0ZVJlY292ZXJhYmxlKGludCkgX19wdHI2NA0KKz9EZWxldGVSZWNvdmVyYWJsZUBDSUlTQXBwbGljYXRpb25AQFFFQUFKSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6RGVzdHJveVdpbmRvdyh2b2lkKSBfX3B0cjY0DQorP0Rlc3Ryb3lXaW5kb3dAPyRDV2luZG93SW1wbEJhc2VUQFZDV2luZG93QEFUTEBAVj8kQ1dpblRyYWl0c0AkMEZHQUFBQUFBQCQwQUBAMkBAQVRMQEBRRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6RW51bUJhY2t1cHModW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHN0cnVjdCBfRklMRVRJTUUgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RW51bUJhY2t1cHNAQ01ldGFJbnRlcmZhY2VAQElFQUFKUEVBR1BFQUtQRUFVX0ZJTEVUSU1FQEBLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpFbnVtRGF0YSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgX01FVEFEQVRBX1JFQ09SRCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9FbnVtRGF0YUBDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR1BFQVVfTUVUQURBVEFfUkVDT1JEQEBLUEVBS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6RW51bUtleXModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RW51bUtleXNAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdQRUFHS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENFcnJvcjo6RmFpbGVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/RmFpbGVkQENFcnJvckBAUUVCQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0Vycm9yOjpGYWlsZWQobG9uZykNCis/RmFpbGVkQENFcnJvckBAU0FISkBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6R2V0QWxsRGF0YSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEFsbERhdGFAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdLS0tQRUFLMUtQRUFFMUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTWV0YUtleTo6R2V0QmFzZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEJhc2VAQ01ldGFLZXlAQFFFQkFLWFoNCis7IHB1YmxpYzogc3RydWN0IHRhZ01TRyBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsUm9vdDxjbGFzcyBBVEw6OkNXaW5kb3c+OjpHZXRDdXJyZW50TWVzc2FnZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEN1cnJlbnRNZXNzYWdlQD8kQ1dpbmRvd0ltcGxSb290QFZDV2luZG93QEFUTEBAQEFUTEBAUUVCQVBFQlV0YWdNU0dAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0Jsb2I6OkdldERhdGEodm9pZCkgX19wdHI2NA0KKz9HZXREYXRhQENCbG9iQEBRRUFBUEVBRVhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6R2V0RGF0YSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgX01FVEFEQVRBX1JFQ09SRCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RGF0YUBDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR1BFQVVfTUVUQURBVEFfUkVDT1JEQEBQRUFLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpHZXREYXRhUGF0aHModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERhdGFQYXRoc0BDTWV0YUludGVyZmFjZUBASUVBQUpLUEVCR0tLS1BFQUdQRUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpHZXRIYW5kbGUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRIYW5kbGVAQ01ldGFLZXlAQFFFQkFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENNZXRhRW51bWVyYXRvcjo6R2V0SW5kZXgodm9pZCkgX19wdHI2NA0KKz9HZXRJbmRleEBDTWV0YUVudW1lcmF0b3JAQFFFQUFLWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OkdldEluc3RhbmNlUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCxjbGFzcyBJSVM6OkNTdHJpbmcgKiBfX3B0cjY0KQ0KKz9HZXRJbnN0YW5jZVBhdGhAQ01ldGFiYXNlUGF0aEBAU0FQRUJHUEVCR0FFQVZDU3RyaW5nQElJU0BAUEVBVjIzQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBJTVNBZG1pbkJhc2VXICogX19wdHI2NCBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpHZXRJbnRlcmZhY2Uodm9pZCkgX19wdHI2NA0KKz9HZXRJbnRlcmZhY2VAQ01ldGFJbnRlcmZhY2VAQFFFQUFQRUFVSU1TQWRtaW5CYXNlV0BAWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpHZXRMYXN0Q2hhbmdlVGltZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxzdHJ1Y3QgX0ZJTEVUSU1FICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/R2V0TGFzdENoYW5nZVRpbWVAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdQRUFVX0ZJTEVUSU1FQEBIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENFcnJvcjo6R2V0TGFzdFdpbkVycm9yKHZvaWQpIF9fcHRyNjQNCis/R2V0TGFzdFdpbkVycm9yQENFcnJvckBAUUVBQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6R2V0TWFjaGluZVBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGNsYXNzIElJUzo6Q1N0cmluZyAmIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nICogX19wdHI2NCkNCis/R2V0TWFjaGluZVBhdGhAQ01ldGFiYXNlUGF0aEBAU0FQRUJHUEVCR0FFQVZDU3RyaW5nQElJU0BAUEVBVjIzQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRmlsZUNob29zZXI6OkdldE9mbkZsYWdzKHZvaWQpIF9fcHRyNjQNCis/R2V0T2ZuRmxhZ3NAQ0ZpbGVDaG9vc2VyQEBRRUFBS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpHZXRSb290UGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCxjbGFzcyBJSVM6OkNTdHJpbmcgKiBfX3B0cjY0KQ0KKz9HZXRSb290UGF0aEBDTWV0YWJhc2VQYXRoQEBTQVBFQkdQRUJHQUVBVkNTdHJpbmdASUlTQEBQRUFWMjNAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENNZXRhYmFzZVBhdGg6OkdldFNlcnZpY2VQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBJSVM6OkNTdHJpbmcgJiBfX3B0cjY0LGNsYXNzIElJUzo6Q1N0cmluZyAqIF9fcHRyNjQpDQorP0dldFNlcnZpY2VQYXRoQENNZXRhYmFzZVBhdGhAQFNBUEVCR1BFQkdBRUFWQ1N0cmluZ0BJSVNAQFBFQVYyM0BAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0Jsb2I6OkdldFNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTaXplQENCbG9iQEBRRUJBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRmlsZUNob29zZXI6OkdldFN0eWxlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0U3R5bGVAQ0ZpbGVDaG9vc2VyQEBRRUJBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgX19pbnQ2NCAoX19jZGVjbCpfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6R2V0V2luZG93UHJvYyh2b2lkKSBfX3B0cjY0KShzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgX19pbnQ2NCxfX2ludDY0KQ0KKz9HZXRXaW5kb3dQcm9jQD8kQ1dpbmRvd0ltcGxCYXNlVEBWQ1dpbmRvd0BBVExAQFY/JENXaW5UcmFpdHNAJDBGR0FBQUFBQUAkMEFAQDJAQEFUTEBAVUVBQVA2QV9KUEVBVUhXTkRfX0BASV9LX0pAWlhaDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgX0FUTF9XTkRDTEFTU0lORk9XICYgX19wdHI2NCBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGw8Y2xhc3MgQ0ZpbGVDaG9vc2VyLGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+OjpHZXRXbmRDbGFzc0luZm8odm9pZCkNCis/R2V0V25kQ2xhc3NJbmZvQD8kQ1dpbmRvd0ltcGxAVkNGaWxlQ2hvb3NlckBAVkNXaW5kb3dAQVRMQEBWPyRDV2luVHJhaXRzQCQwRkdBQUFBQUFAJDBBQEAzQEBBVExAQFNBQUVBVV9BVExfV05EQ0xBU1NJTkZPV0BAWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsQmFzZVQ8Y2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID46OkdldFduZEV4U3R5bGUodW5zaWduZWQgbG9uZykNCis/R2V0V25kRXhTdHlsZUA/JENXaW5kb3dJbXBsQmFzZVRAVkNXaW5kb3dAQVRMQEBWPyRDV2luVHJhaXRzQCQwRkdBQUFBQUFAJDBBQEAyQEBBVExAQFNBS0tAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6R2V0V25kU3R5bGUodW5zaWduZWQgbG9uZykNCis/R2V0V25kU3R5bGVAPyRDV2luZG93SW1wbEJhc2VUQFZDV2luZG93QEFUTEBAVj8kQ1dpblRyYWl0c0AkMEZHQUFBQUFBQCQwQUBAMkBAQVRMQEBTQUtLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENFcnJvcjo6SFJlc3VsdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0hSZXN1bHRAQ0Vycm9yQEBRRUJBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgQ0Vycm9yOjpIUmVzdWx0KGxvbmcpDQorP0hSZXN1bHRAQ0Vycm9yQEBTQUpKQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6Okhhc0ludGVyZmFjZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0hhc0ludGVyZmFjZUBDSUlTU3ZjQ29udHJvbEBASUVCQUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6SGFzSW50ZXJmYWNlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SGFzSW50ZXJmYWNlQENNZXRhSW50ZXJmYWNlQEBJRUJBSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENXYW1JbnRlcmZhY2U6Okhhc0ludGVyZmFjZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0hhc0ludGVyZmFjZUBDV2FtSW50ZXJmYWNlQEBJRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENCbG9iOjpJc0VtcHR5KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNFbXB0eUBDQmxvYkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSUlTQXBwbGljYXRpb246OklzRW5hYmxlZEFwcGxpY2F0aW9uKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNFbmFibGVkQXBwbGljYXRpb25AQ0lJU0FwcGxpY2F0aW9uQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENNZXRhS2V5OjpJc0hvbWVEaXJlY3RvcnlQYXRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNIb21lRGlyZWN0b3J5UGF0aEBDTWV0YUtleUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTWV0YWJhc2VQYXRoOjpJc0hvbWVEaXJlY3RvcnlQYXRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNIb21lRGlyZWN0b3J5UGF0aEBDTWV0YWJhc2VQYXRoQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6SXNJbnByb2Modm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc0lucHJvY0BDSUlTQXBwbGljYXRpb25AQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjpJc0xvY2FsKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNMb2NhbEBDQ29tQXV0aEluZm9AQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lJU0ludGVyZmFjZTo6SXNMb2NhbCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzTG9jYWxAQ0lJU0ludGVyZmFjZUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTWV0YUtleTo6SXNPcGVuKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNPcGVuQENNZXRhS2V5QEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6SXNPdXRPZlByb2Modm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc091dE9mUHJvY0BDSUlTQXBwbGljYXRpb25AQFFFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0lJU0FwcGxpY2F0aW9uOjpJc1Bvb2xlZFByb2Modm9pZCljb25zdCAgX19wdHI2NA0KKz9Jc1Bvb2xlZFByb2NAQ0lJU0FwcGxpY2F0aW9uQEBRRUJBSFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSUlTU3ZjQ29udHJvbDo6S2lsbCh2b2lkKSBfX3B0cjY0DQorP0tpbGxAQ0lJU1N2Y0NvbnRyb2xAQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhQmFjazo6TmV4dCh1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsc3RydWN0IF9GSUxFVElNRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/TmV4dEBDTWV0YUJhY2tAQFFFQUFKUEVBS1BFQUdQRUFVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsQmFzZVQ8Y2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID46Ok9uRmluYWxNZXNzYWdlKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0KSBfX3B0cjY0DQorP09uRmluYWxNZXNzYWdlQD8kQ1dpbmRvd0ltcGxCYXNlVEBWQ1dpbmRvd0BBVExAQFY/JENXaW5UcmFpdHNAJDBGR0FBQUFBQUAkMEFAQDJAQEFUTEBAVUVBQVhQRUFVSFdORF9fQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRmlsZUNob29zZXI6Ok9wZW5Gb3JSZWFkKHZvaWQpIF9fcHRyNjQNCis/T3BlbkZvclJlYWRAQ0ZpbGVDaG9vc2VyQEBRRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6T3BlbktleSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP09wZW5LZXlAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkdLUEVBS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTWV0YUVudW1lcmF0b3I6OlBvcCh2b2lkKSBfX3B0cjY0DQorP1BvcEBDTWV0YUVudW1lcmF0b3JAQFFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDRmlsZUNob29zZXI6OlByb2Nlc3NXaW5kb3dNZXNzYWdlKHN0cnVjdCBIV05EX18gKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBfX2ludDY0LF9faW50NjQsX19pbnQ2NCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Qcm9jZXNzV2luZG93TWVzc2FnZUBDRmlsZUNob29zZXJAQFVFQUFIUEVBVUhXTkRfX0BASV9LX0pBRUFfSktAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01ldGFFbnVtZXJhdG9yOjpQdXNoKHZvaWQpIF9fcHRyNjQNCis/UHVzaEBDTWV0YUVudW1lcmF0b3JAQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6UXVlcnlBcHBTdGF0ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5QXBwU3RhdGVAQ0lJU0FwcGxpY2F0aW9uQEBRRUJBS1haDQorOyBwdWJsaWM6IGNsYXNzIENDb21BdXRoSW5mbyAqIF9fcHRyNjQgX19jZGVjbCBDSUlTSW50ZXJmYWNlOjpRdWVyeUF1dGhJbmZvKHZvaWQpIF9fcHRyNjQNCis/UXVlcnlBdXRoSW5mb0BDSUlTSW50ZXJmYWNlQEBRRUFBUEVBVkNDb21BdXRoSW5mb0BAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpRdWVyeUZsYWdzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlGbGFnc0BDTWV0YUtleUBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDTWV0YUtleTo6UXVlcnlNZXRhUGF0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TWV0YVBhdGhAQ01ldGFLZXlAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ01ldGFiYXNlUGF0aDo6UXVlcnlNZXRhUGF0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5TWV0YVBhdGhAQ01ldGFiYXNlUGF0aEBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDQ29tQXV0aEluZm86OlF1ZXJ5UGFzc3dvcmQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVBhc3N3b3JkQENDb21BdXRoSW5mb0BAUUVCQVBFQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDSUlTSW50ZXJmYWNlOjpRdWVyeVJlc3VsdCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UmVzdWx0QENJSVNJbnRlcmZhY2VAQFVFQkFKWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjpRdWVyeVNlcnZlck5hbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVNlcnZlck5hbWVAQ0NvbUF1dGhJbmZvQEBRRUJBUEVBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENJSVNJbnRlcmZhY2U6OlF1ZXJ5U2VydmVyTmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2VydmVyTmFtZUBDSUlTSW50ZXJmYWNlQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENDb21BdXRoSW5mbzo6UXVlcnlVc2VyTmFtZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VXNlck5hbWVAQ0NvbUF1dGhJbmZvQEBRRUJBUEVBR1haDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6UXVlcnlWYWx1ZSh1bnNpZ25lZCBsb25nLGludCAmIF9fcHRyNjQsaW50ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlWYWx1ZUBDTWV0YUtleUBAUUVBQUpLQUVBSFBFQUhQRUJHUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6UXVlcnlXYW1QYXRoKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlXYW1QYXRoQENJSVNBcHBsaWNhdGlvbkBAUUVCQVBFQkdYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlJlT3Blbih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1JlT3BlbkBDTWV0YUtleUBAUUVBQUpLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpSZU9wZW4odm9pZCkgX19wdHI2NA0KKz9SZU9wZW5AQ01ldGFLZXlAQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNTdmNDb250cm9sOjpSZWJvb3QodW5zaWduZWQgbG9uZyxpbnQpIF9fcHRyNjQNCis/UmVib290QENJSVNTdmNDb250cm9sQEBRRUFBSktIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6UmVjb3ZlcihpbnQpIF9fcHRyNjQNCis/UmVjb3ZlckBDSUlTQXBwbGljYXRpb25AQFFFQUFKSEBaDQorOyBwdWJsaWM6IF9faW50NjQgX19jZGVjbCBBVEw6OkNXaW5kb3dJbXBsUm9vdDxjbGFzcyBBVEw6OkNXaW5kb3c+OjpSZWZsZWN0Tm90aWZpY2F0aW9ucyh1bnNpZ25lZCBpbnQsdW5zaWduZWQgX19pbnQ2NCxfX2ludDY0LGludCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVmbGVjdE5vdGlmaWNhdGlvbnNAPyRDV2luZG93SW1wbFJvb3RAVkNXaW5kb3dAQVRMQEBAQVRMQEBRRUFBX0pJX0tfSkFFQUhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Vycm9yOjpSZW1vdmVPdmVycmlkZShsb25nKSBfX3B0cjY0DQorP1JlbW92ZU92ZXJyaWRlQENFcnJvckBAUUVBQVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGaWxlQ2hvb3Nlcjo6UmVtb3ZlU3R5bGUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZW1vdmVTdHlsZUBDRmlsZUNob29zZXJAQFFFQUFYS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6UmVuYW1lS2V5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW5hbWVLZXlAQ01ldGFJbnRlcmZhY2VAQElFQUFKS1BFQkcwQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENNZXRhS2V5OjpSZW5hbWVLZXkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW5hbWVLZXlAQ01ldGFLZXlAQFFFQUFKUEVCRzBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0Vycm9yOjpSZXNldCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QENFcnJvckBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01ldGFCYWNrOjpSZXNldCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QENNZXRhQmFja0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01ldGFFbnVtZXJhdG9yOjpSZXNldCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1Jlc2V0QENNZXRhRW51bWVyYXRvckBAUUVBQVhLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpSZXN0b3JlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/UmVzdG9yZUBDTWV0YUludGVyZmFjZUBASUVBQUpQRUJHS0tAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFJbnRlcmZhY2U6OlNhdmVEYXRhKHZvaWQpIF9fcHRyNjQNCis/U2F2ZURhdGFAQ01ldGFJbnRlcmZhY2VAQFFFQUFKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX2NkZWNsIENNZXRhSW50ZXJmYWNlOjpTZXREYXRhKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHN0cnVjdCBfTUVUQURBVEFfUkVDT1JEICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREYXRhQENNZXRhSW50ZXJmYWNlQEBJRUFBSktQRUJHUEVBVV9NRVRBREFUQV9SRUNPUkRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmlsZUNob29zZXI6OlNldERpYWxvZ1RpdGxlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREaWFsb2dUaXRsZUBDRmlsZUNob29zZXJAQFFFQUFYUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWV0YUludGVyZmFjZTo6U2V0TGFzdENoYW5nZVRpbWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IF9GSUxFVElNRSAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1NldExhc3RDaGFuZ2VUaW1lQENNZXRhSW50ZXJmYWNlQEBJRUFBSktQRUJHUEVBVV9GSUxFVElNRUBASEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRXJyb3I6OlNldExhc3RXaW5FcnJvcih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1NldExhc3RXaW5FcnJvckBDRXJyb3JAQFFFQkFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGaWxlQ2hvb3Nlcjo6U2V0T2ZuRmxhZ3ModW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRPZm5GbGFnc0BDRmlsZUNob29zZXJAQFFFQUFYS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRmlsZUNob29zZXI6OlNldFN0eWxlKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0U3R5bGVAQ0ZpbGVDaG9vc2VyQEBRRUFBS0tAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ01ldGFLZXk6OlNldFZhbHVlKHVuc2lnbmVkIGxvbmcsY2xhc3MgSUlTOjpDU3RyaW5nICYgX19wdHI2NCxpbnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRWYWx1ZUBDTWV0YUtleUBAUUVBQUpLQUVBVkNTdHJpbmdASUlTQEBQRUFIUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6U2V0VmFsdWUodW5zaWduZWQgbG9uZyxpbnQsaW50ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VmFsdWVAQ01ldGFLZXlAQFFFQUFKS0hQRUFIUEVCR0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDTWV0YUtleTo6U2V0VmFsdWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFZhbHVlQENNZXRhS2V5QEBRRUFBSktLUEVBSFBFQkdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0lJU1N2Y0NvbnRyb2w6OlN0YXJ0KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U3RhcnRAQ0lJU1N2Y0NvbnRyb2xAQFFFQUFKS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBfX2ludDY0IF9fY2RlY2wgQVRMOjpDV2luZG93SW1wbEJhc2VUPGNsYXNzIEFUTDo6Q1dpbmRvdyxjbGFzcyBBVEw6OkNXaW5UcmFpdHM8MTQ0Mjg0MDU3NiwwPiA+OjpTdGFydFdpbmRvd1Byb2Moc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIF9faW50NjQsX19pbnQ2NCkNCis/U3RhcnRXaW5kb3dQcm9jQD8kQ1dpbmRvd0ltcGxCYXNlVEBWQ1dpbmRvd0BBVExAQFY/JENXaW5UcmFpdHNAJDBGR0FBQUFBQUAkMEFAQDJAQEFUTEBAU0FfSlBFQVVIV05EX19AQElfS19KQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNTdmNDb250cm9sOjpTdGF0dXModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9TdGF0dXNAQ0lJU1N2Y0NvbnRyb2xAQFFFQUFKS1BFQUVQRUFLMUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSUlTU3ZjQ29udHJvbDo6U3RvcCh1bnNpZ25lZCBsb25nLGludCkgX19wdHI2NA0KKz9TdG9wQENJSVNTdmNDb250cm9sQEBRRUFBSktIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDb21BdXRoSW5mbzo6U3RvcmVQYXNzd29yZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U3RvcmVQYXNzd29yZEBDQ29tQXV0aEluZm9AQFFFQUFYUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENGaWxlQ2hvb3Nlcjo6U3R5bGVCaXRTZXQodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TdHlsZUJpdFNldEBDRmlsZUNob29zZXJAQFFFQUFIS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6U3ViY2xhc3NXaW5kb3coc3RydWN0IEhXTkRfXyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U3ViY2xhc3NXaW5kb3dAPyRDV2luZG93SW1wbEJhc2VUQFZDV2luZG93QEFUTEBAVj8kQ1dpblRyYWl0c0AkMEZHQUFBQUFBQCQwQUBAMkBAQVRMQEBRRUFBSFBFQVVIV05EX19AQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENFcnJvcjo6U3VjY2VlZGVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U3VjY2VlZGVkQENFcnJvckBAUUVCQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0Vycm9yOjpTdWNjZWVkZWQobG9uZykNCis/U3VjY2VlZGVkQENFcnJvckBAU0FISkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0lJU0ludGVyZmFjZTo6U3VjY2VlZGVkKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U3VjY2VlZGVkQENJSVNJbnRlcmZhY2VAQFVFQkFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1dhbUludGVyZmFjZTo6U3VwcG9ydHNQb29sZWRQcm9jKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U3VwcG9ydHNQb29sZWRQcm9jQENXYW1JbnRlcmZhY2VAQFFFQkFIWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJSVNBcHBsaWNhdGlvbjo6VW5sb2FkKGludCkgX19wdHI2NA0KKz9VbmxvYWRAQ0lJU0FwcGxpY2F0aW9uQEBRRUFBSkhAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENFcnJvcjo6VW5yZWdpc3RlckZhY2lsaXR5KHVuc2lnbmVkIGxvbmcpDQorP1VucmVnaXN0ZXJGYWNpbGl0eUBDRXJyb3JAQFNBWEtAWg0KKzsgcHVibGljOiBzdHJ1Y3QgSFdORF9fICogX19wdHI2NCBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6VW5zdWJjbGFzc1dpbmRvdyhpbnQpIF9fcHRyNjQNCis/VW5zdWJjbGFzc1dpbmRvd0A/JENXaW5kb3dJbXBsQmFzZVRAVkNXaW5kb3dAQVRMQEBWPyRDV2luVHJhaXRzQCQwRkdBQUFBQUFAJDBBQEAyQEBBVExAQFFFQUFQRUFVSFdORF9fQEBIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NvbUF1dGhJbmZvOjpVc2VzSW1wZXJzb25hdGlvbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1VzZXNJbXBlcnNvbmF0aW9uQENDb21BdXRoSW5mb0BAUUVCQUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0Vycm9yOjpXaW4zMkVycm9yKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/V2luMzJFcnJvckBDRXJyb3JAQFFFQkFLWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRXJyb3I6OldpbjMyRXJyb3IobG9uZykNCis/V2luMzJFcnJvckBDRXJyb3JAQFNBS0pAWg0KKzsgcHVibGljOiBzdGF0aWMgX19pbnQ2NCBfX2NkZWNsIEFUTDo6Q1dpbmRvd0ltcGxCYXNlVDxjbGFzcyBBVEw6OkNXaW5kb3csY2xhc3MgQVRMOjpDV2luVHJhaXRzPDE0NDI4NDA1NzYsMD4gPjo6V2luZG93UHJvYyhzdHJ1Y3QgSFdORF9fICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgX19pbnQ2NCxfX2ludDY0KQ0KKz9XaW5kb3dQcm9jQD8kQ1dpbmRvd0ltcGxCYXNlVEBWQ1dpbmRvd0BBVExAQFY/JENXaW5UcmFpdHNAJDBGR0FBQUFBQUAkMEFAQDJAQEFUTEBAU0FfSlBFQVVIV05EX19AQElfS19KQFoNCis7IHByb3RlY3RlZDogc3RydWN0IHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpfTm9kZSAqIF9fcHRyNjQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6X0J1eW5vZGUoc3RydWN0IHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpfTm9kZSAqIF9fcHRyNjQsc3RydWN0IHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpfTm9kZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/X0J1eW5vZGVAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBASUVBQVBFQVVfTm9kZUAxMkBQRUFVMzEyQDBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Ol9GcmVlbm9kZShzdHJ1Y3Qgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Ol9Ob2RlICogX19wdHI2NCkgX19wdHI2NA0KKz9fRnJlZW5vZGVAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBASUVBQVhQRUFVX05vZGVAMTJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpfU3BsaWNlKGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yLGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcikgX19wdHI2NA0KKz9fU3BsaWNlQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQElFQUFYVml0ZXJhdG9yQDEyQEFFQVYxMkAwMEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6X1hyYW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9fWHJhbkA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBJRUJBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6YXNzaWduKGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpjb25zdF9pdGVyYXRvcixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6Y29uc3RfaXRlcmF0b3IpIF9fcHRyNjQNCis/YXNzaWduQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYVmNvbnN0X2l0ZXJhdG9yQDEyQDBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmFzc2lnbih1bnNpZ25lZCBfX2ludDY0LGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/YXNzaWduQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYX0tBRUJWQ1N0cmluZ0BJSVNAQEBaDQorOyBwdWJsaWM6IGNsYXNzIElJUzo6Q1N0cmluZyAmIF9fcHRyNjQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6YmFjayh2b2lkKSBfX3B0cjY0DQorP2JhY2tAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQUFFQVZDU3RyaW5nQElJU0BAWFoNCis7IHB1YmxpYzogY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpiYWNrKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/YmFja0A/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUJBQUVCVkNTdHJpbmdASUlTQEBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IgIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmJlZ2luKHZvaWQpIF9fcHRyNjQNCis/YmVnaW5APyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQT9BVml0ZXJhdG9yQDEyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpjb25zdF9pdGVyYXRvciAgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6YmVnaW4odm9pZCljb25zdCAgX19wdHI2NA0KKz9iZWdpbkA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUJBP0FWY29uc3RfaXRlcmF0b3JAMTJAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpjbGVhcih2b2lkKSBfX3B0cjY0DQorP2NsZWFyQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjplbXB0eSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2VtcHR5QD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQkFfTlhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvciAgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6ZW5kKHZvaWQpIF9fcHRyNjQNCis/ZW5kQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUE/QVZpdGVyYXRvckAxMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6Y29uc3RfaXRlcmF0b3IgIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmVuZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2VuZEA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUJBP0FWY29uc3RfaXRlcmF0b3JAMTJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yICBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjplcmFzZShjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yKSBfX3B0cjY0DQorP2VyYXNlQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUE/QVZpdGVyYXRvckAxMkBWMzEyQDBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IgIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmVyYXNlKGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcikgX19wdHI2NA0KKz9lcmFzZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBP0FWaXRlcmF0b3JAMTJAVjMxMkBAWg0KKzsgcHVibGljOiBjbGFzcyBJSVM6OkNTdHJpbmcgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmZyb250KHZvaWQpIF9fcHRyNjQNCis/ZnJvbnRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQUFFQVZDU3RyaW5nQElJU0BAWFoNCis7IHB1YmxpYzogY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpmcm9udCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP2Zyb250QD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQkFBRUJWQ1N0cmluZ0BJSVNAQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmdldF9hbGxvY2F0b3Iodm9pZCljb25zdCAgX19wdHI2NA0KKz9nZXRfYWxsb2NhdG9yQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQkE/QVY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvciAgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aW5zZXJ0KGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcixjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP2luc2VydEA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBP0FWaXRlcmF0b3JAMTJAVjMxMkBBRUJWQ1N0cmluZ0BJSVNAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aW5zZXJ0KGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcixjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgKiBfX3B0cjY0LGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/aW5zZXJ0QD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYVml0ZXJhdG9yQDEyQFBFQlZDU3RyaW5nQElJU0BAMUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aW5zZXJ0KGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6Y29uc3RfaXRlcmF0b3IsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmNvbnN0X2l0ZXJhdG9yKSBfX3B0cjY0DQorP2luc2VydEA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWFZpdGVyYXRvckAxMkBWY29uc3RfaXRlcmF0b3JAMTJAMUBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aW5zZXJ0KGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcix1bnNpZ25lZCBfX2ludDY0LGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/aW5zZXJ0QD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYVml0ZXJhdG9yQDEyQF9LQUVCVkNTdHJpbmdASUlTQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Om1heF9zaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/bWF4X3NpemVAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVCQV9LWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjptZXJnZShjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/bWVyZ2VAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhBRUFWMTJAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjptZXJnZShjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPiAmIF9fcHRyNjQsc3RydWN0IHN0ZDo6Z3JlYXRlcjxjbGFzcyBJSVM6OkNTdHJpbmc+KSBfX3B0cjY0DQorP21lcmdlQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYQUVBVjEyQFU/JGdyZWF0ZXJAVkNTdHJpbmdASUlTQEBAMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnBvcF9iYWNrKHZvaWQpIF9fcHRyNjQNCis/cG9wX2JhY2tAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnBvcF9mcm9udCh2b2lkKSBfX3B0cjY0DQorP3BvcF9mcm9udEA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6cHVzaF9iYWNrKGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/cHVzaF9iYWNrQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYQUVCVkNTdHJpbmdASUlTQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnB1c2hfZnJvbnQoY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9wdXNoX2Zyb250QD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYQUVCVkNTdHJpbmdASUlTQEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfYmlkaXJlY3Rpb25hbF9pdGVyYXRvcjxjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IsY2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIElJUzo6Q1N0cmluZyAmIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nICogX19wdHI2NCxfX2ludDY0PiAgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6cmJlZ2luKHZvaWQpIF9fcHRyNjQNCis/cmJlZ2luQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUE/QVY/JHJldmVyc2VfYmlkaXJlY3Rpb25hbF9pdGVyYXRvckBWaXRlcmF0b3JAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAVkNTdHJpbmdASUlTQEBBRUFWNDVAUEVBVjQ1QF9KQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpyZXZlcnNlX2JpZGlyZWN0aW9uYWxfaXRlcmF0b3I8Y2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmNvbnN0X2l0ZXJhdG9yLGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgJiBfX3B0cjY0LGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAqIF9fcHRyNjQsX19pbnQ2ND4gIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnJiZWdpbih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3JiZWdpbkA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUJBP0FWPyRyZXZlcnNlX2JpZGlyZWN0aW9uYWxfaXRlcmF0b3JAVmNvbnN0X2l0ZXJhdG9yQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFZDU3RyaW5nQElJU0BAQUVCVjQ1QFBFQlY0NUBfSkAyQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6cmVtb3ZlKGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/cmVtb3ZlQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYQUVCVkNTdHJpbmdASUlTQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnJlbW92ZV9pZihjbGFzcyBzdGQ6OmJpbmRlcjJuZDxzdHJ1Y3Qgc3RkOjpub3RfZXF1YWxfdG88Y2xhc3MgSUlTOjpDU3RyaW5nPiA+KSBfX3B0cjY0DQorP3JlbW92ZV9pZkA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWFY/JGJpbmRlcjJuZEBVPyRub3RfZXF1YWxfdG9AVkNTdHJpbmdASUlTQEBAc3RkQEBAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfYmlkaXJlY3Rpb25hbF9pdGVyYXRvcjxjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IsY2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIElJUzo6Q1N0cmluZyAmIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nICogX19wdHI2NCxfX2ludDY0PiAgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6cmVuZCh2b2lkKSBfX3B0cjY0DQorP3JlbmRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQT9BVj8kcmV2ZXJzZV9iaWRpcmVjdGlvbmFsX2l0ZXJhdG9yQFZpdGVyYXRvckA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBWQ1N0cmluZ0BJSVNAQEFFQVY0NUBQRUFWNDVAX0pAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfYmlkaXJlY3Rpb25hbF9pdGVyYXRvcjxjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6Y29uc3RfaXRlcmF0b3IsY2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fcHRyNjQsY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICogX19wdHI2NCxfX2ludDY0PiAgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6cmVuZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3JlbmRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVCQT9BVj8kcmV2ZXJzZV9iaWRpcmVjdGlvbmFsX2l0ZXJhdG9yQFZjb25zdF9pdGVyYXRvckA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBWQ1N0cmluZ0BJSVNAQEFFQlY0NUBQRUJWNDVAX0pAMkBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnJlc2l6ZSh1bnNpZ25lZCBfX2ludDY0LGNsYXNzIElJUzo6Q1N0cmluZykgX19wdHI2NA0KKz9yZXNpemVAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhfS1ZDU3RyaW5nQElJU0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpyZXZlcnNlKHZvaWQpIF9fcHRyNjQNCis/cmV2ZXJzZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6c2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP3NpemVAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVCQV9LWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpzb3J0KHN0cnVjdCBzdGQ6OmdyZWF0ZXI8Y2xhc3MgSUlTOjpDU3RyaW5nPikgX19wdHI2NA0KKz9zb3J0QD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYVT8kZ3JlYXRlckBWQ1N0cmluZ0BJSVNAQEAyQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6c29ydCh2b2lkKSBfX3B0cjY0DQorP3NvcnRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnNwbGljZShjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4gJiBfX3B0cjY0LGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IpIF9fcHRyNjQNCis/c3BsaWNlQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYVml0ZXJhdG9yQDEyQEFFQVYxMkAwMEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6c3BsaWNlKGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPiAmIF9fcHRyNjQsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yKSBfX3B0cjY0DQorP3NwbGljZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRRUFBWFZpdGVyYXRvckAxMkBBRUFWMTJAMEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6c3BsaWNlKGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/c3BsaWNlQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYVml0ZXJhdG9yQDEyQEFFQVYxMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnN3YXAoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4gJiBfX3B0cjY0KSBfX3B0cjY0DQorP3N3YXBAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhBRUFWMTJAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojp1bmlxdWUoc3RydWN0IHN0ZDo6bm90X2VxdWFsX3RvPGNsYXNzIElJUzo6Q1N0cmluZz4pIF9fcHRyNjQNCis/dW5pcXVlQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFFQUFYVT8kbm90X2VxdWFsX3RvQFZDU3RyaW5nQElJU0BAQDJAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojp1bmlxdWUodm9pZCkgX19wdHI2NA0KKz91bmlxdWVAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUVBQVhYWg0KKzsgc3RydWN0IF9BVExfV05EQ0xBU1NJTkZPVyAgYHB1YmxpYzogc3RhdGljIHN0cnVjdCBfQVRMX1dORENMQVNTSU5GT1cgJiBfX3B0cjY0IF9fY2RlY2wgQVRMOjpDV2luZG93SW1wbDxjbGFzcyBDRmlsZUNob29zZXIsY2xhc3MgQVRMOjpDV2luZG93LGNsYXNzIEFUTDo6Q1dpblRyYWl0czwxNDQyODQwNTc2LDA+ID46OkdldFduZENsYXNzSW5mbyh2b2lkKSc6OmAyJzo6d2MNCis/d2NAPzE/P0dldFduZENsYXNzSW5mb0A/JENXaW5kb3dJbXBsQFZDRmlsZUNob29zZXJAQFZDV2luZG93QEFUTEBAVj8kQ1dpblRyYWl0c0AkMEZHQUFBQUFBQCQwQUBAM0BAQVRMQEBTQUFFQVVfQVRMX1dORENMQVNTSU5GT1dAQFhaQDRVNEBBIERBVEENCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3czaXNhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdzNpc2FwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWNmNDk0ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3czaXNhcGkuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgdzNpc2FwaS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgdzNpc2FwaS5kbGwNCitFWFBPUlRTDQorSW5pdE1vZHVsZQ0KK1Byb2Nlc3NJc2FwaUNvbXBsZXRpb24NCitQcm9jZXNzSXNhcGlSZXF1ZXN0DQorVGVybWluYXRlTW9kdWxlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvdzNzc2wuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdzNzc2wuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgwYTBkY2MKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93M3NzbC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB3M3NzbC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgdzNzc2wuZGxsDQorRVhQT1JUUw0KK0hUVFBGaWx0ZXJTZXJ2aWNlTWFpbg0KK1NlcnZpY2VFbnRyeQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3czdHAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvdzN0cC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWEwOWVlOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3czdHAuZGVmCkBAIC0wLDAgKzEsMzEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgVzNUUC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgVzNUUC5kbGwNCitFWFBPUlRTDQorOyBwcml2YXRlOiBfX2NkZWNsIFRIUkVBRF9QT09MOjpUSFJFQURfUE9PTCh2b2lkKSBfX3B0cjY0DQorPz8wVEhSRUFEX1BPT0xAQEFFQUFAWFoNCis7IHByaXZhdGU6IF9fY2RlY2wgVEhSRUFEX1BPT0w6On5USFJFQURfUE9PTCh2b2lkKSBfX3B0cjY0DQorPz8xVEhSRUFEX1BPT0xAQEFFQUFAWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgVEhSRUFEX1BPT0w6OkJpbmRJb0NvbXBsZXRpb25DYWxsYmFjayh2b2lkICogX19wdHI2NCx2b2lkIChfX2NkZWNsKikodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHN0cnVjdCBfT1ZFUkxBUFBFRCAqIF9fcHRyNjQpLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/QmluZElvQ29tcGxldGlvbkNhbGxiYWNrQFRIUkVBRF9QT09MQEBRRUFBSFBFQVhQNkFYS0tQRUFVX09WRVJMQVBQRURAQEBaS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBUSFJFQURfUE9PTDo6Q3JlYXRlVGhyZWFkUG9vbChjbGFzcyBUSFJFQURfUE9PTCAqIF9fcHRyNjQgKiBfX3B0cjY0LHN0cnVjdCBUSFJFQURfUE9PTF9DT05GSUcgKiBfX3B0cjY0KQ0KKz9DcmVhdGVUaHJlYWRQb29sQFRIUkVBRF9QT09MQEBTQUhQRUFQRUFWMUBQRUFVVEhSRUFEX1BPT0xfQ09ORklHQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgVEhSRUFEX1BPT0w6OkdldFN0YXRzKHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFN0YXRzQFRIUkVBRF9QT09MQEBRRUFBWFBFQUswMEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFRIUkVBRF9QT09MOjpQb3N0Q29tcGxldGlvbih1bnNpZ25lZCBsb25nLHZvaWQgKF9fY2RlY2wqKSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsc3RydWN0IF9PVkVSTEFQUEVEICogX19wdHI2NCksc3RydWN0IF9PVkVSTEFQUEVEICogX19wdHI2NCkgX19wdHI2NA0KKz9Qb3N0Q29tcGxldGlvbkBUSFJFQURfUE9PTEBAUUVBQUhLUDZBWEtLUEVBVV9PVkVSTEFQUEVEQEBAWjBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgVEhSRUFEX1BPT0w6OlNldEluZm8oZW51bSBUSFJFQURfUE9PTF9JTkZPLHVuc2lnbmVkIF9faW50NjQpIF9fcHRyNjQNCis/U2V0SW5mb0BUSFJFQURfUE9PTEBAUUVBQV9LVzRUSFJFQURfUE9PTF9JTkZPQEBfS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBUSFJFQURfUE9PTDo6VGVybWluYXRlVGhyZWFkUG9vbCh2b2lkKSBfX3B0cjY0DQorP1Rlcm1pbmF0ZVRocmVhZFBvb2xAVEhSRUFEX1BPT0xAQFFFQUFYWFoNCitUaHJlYWRQb29sQmluZElvQ29tcGxldGlvbkNhbGxiYWNrDQorVGhyZWFkUG9vbEdldFN0YXRzDQorVGhyZWFkUG9vbEluaXRpYWxpemUNCitUaHJlYWRQb29sUG9zdENvbXBsZXRpb24NCitUaHJlYWRQb29sU2V0SW5mbw0KK1RocmVhZFBvb2xUZXJtaW5hdGUNCitEbGxNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd0FEUk9ULmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dBRFJPVC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDAwNTQzYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dBRFJPVC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBZFJvdC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQWRSb3QuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd0FjTGF5ZXJzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dBY0xheWVycy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGY4YTg5OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dBY0xheWVycy5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBOVUxMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBOVUxMLmRsbA0KK0VYUE9SVFMNCitHZXRIb29rQVBJcw0KK05vdGlmeVNoaW1zDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd0FjTHVhLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dBY0x1YS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTk1MWEyMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dBY0x1YS5kZWYKQEAgLTAsMCArMSw3MCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBOVUxMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBOVUxMLmRsbA0KK0VYUE9SVFMNCitHZXRIb29rQVBJcw0KK0x1YWNSZWdPcGVuS2V5Vw0KK05vdGlmeVNoaW1zDQorTHVhQ29weUZpbGVXDQorTHVhQ3JlYXRlRGlyZWN0b3J5Vw0KK0x1YUNyZWF0ZUZpbGVXDQorTHVhRGVsZXRlRmlsZVcNCitMdWFGU0luaXQNCitMdWFHZXRGaWxlQXR0cmlidXRlc1cNCitMdWFHZXRQcml2YXRlUHJvZmlsZUludFcNCitMdWFHZXRQcml2YXRlUHJvZmlsZVNlY3Rpb25XDQorTHVhR2V0UHJpdmF0ZVByb2ZpbGVTdHJpbmdXDQorTHVhR2V0UHJpdmF0ZVByb2ZpbGVTdHJ1Y3RXDQorTHVhR2V0VGVtcEZpbGVOYW1lVw0KK0x1YU1vdmVGaWxlVw0KK0x1YVJlZ0Nsb3NlS2V5DQorTHVhUmVnQ3JlYXRlS2V5RXhXDQorTHVhUmVnQ3JlYXRlS2V5Vw0KK0x1YVJlZ0RlbGV0ZUtleVcNCitMdWFSZWdFbnVtS2V5RXhXDQorTHVhUmVnRW51bUtleVcNCitMdWFSZWdFbnVtVmFsdWVXDQorTHVhUmVnSW5pdA0KK0x1YVJlZ09wZW5LZXlFeFcNCitMdWFSZWdPcGVuS2V5Vw0KK0x1YVJlZ1F1ZXJ5VmFsdWVFeFcNCitMdWFSZWdRdWVyeVZhbHVlVw0KK0x1YVJlZ1NldFZhbHVlRXhXDQorTHVhUmVnU2V0VmFsdWVXDQorTHVhUmVtb3ZlRGlyZWN0b3J5Vw0KK0x1YVNldEZpbGVBdHRyaWJ1dGVzVw0KK0x1YVNob3VsZEFwcGx5U2hpbQ0KK0x1YVdyaXRlUHJpdmF0ZVByb2ZpbGVTZWN0aW9uVw0KK0x1YVdyaXRlUHJpdmF0ZVByb2ZpbGVTdHJpbmdXDQorTHVhV3JpdGVQcml2YXRlUHJvZmlsZVN0cnVjdFcNCitMdWFjQ3JlYXRlRmlsZVcNCitMdWFjRGVsZXRlRmlsZVcNCitMdWFjRlNDbGVhbnVwDQorTHVhY0ZTSW5pdA0KK0x1YWNGaW5kRmlyc3RGaWxlVw0KK0x1YWNHZXRGaWxlQXR0cmlidXRlc1cNCitMdWFjUmVnQ2xlYW51cA0KK0x1YWNSZWdDbG9zZUtleQ0KK0x1YWNSZWdEZWxldGVLZXlXDQorTHVhY1JlZ0VudW1LZXlFeFcNCitMdWFjUmVnRW51bUtleVcNCitMdWFjUmVnSW5pdA0KK0x1YWNSZWdPcGVuS2V5RXhXDQorTHVhY1JlbW92ZURpcmVjdG9yeVcNCitMdWF0Q29weUZpbGVXDQorTHVhdENyZWF0ZURpcmVjdG9yeVcNCitMdWF0Q3JlYXRlRmlsZVcNCitMdWF0RGVsZXRlRmlsZVcNCitMdWF0RlNDbGVhbnVwDQorTHVhdEZTSW5pdA0KK0x1YXRHZXRUZW1wRmlsZU5hbWVXDQorTHVhdE1vdmVGaWxlVw0KK0x1YXRSZW1vdmVEaXJlY3RvcnlXDQorTHVhdFNldEZpbGVBdHRyaWJ1dGVzVw0KK0x1YXRXcml0ZVByaXZhdGVQcm9maWxlU2VjdGlvblcNCitMdWF0V3JpdGVQcml2YXRlUHJvZmlsZVN0cmluZ1cNCitMdWF0V3JpdGVQcml2YXRlUHJvZmlsZVN0cnVjdFcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93QWNTcGVjZmMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd0FjU3BlY2ZjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZjhhODk5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd0FjU3BlY2ZjLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE5VTEwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5VTEwuZGxsDQorRVhQT1JUUw0KK0dldEhvb2tBUElzDQorTm90aWZ5U2hpbXMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93QWNYdHJuYWwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd0FjWHRybmFsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZjZmMTliCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd0FjWHRybmFsLmRlZgpAQCAtMCwwICsxLDM2OSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBOVUxMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBOVUxMLmRsbA0KK0VYUE9SVFMNCitHZXRIb29rQVBJcw0KK2dsQWNjdW0NCitnbEFscGhhRnVuYw0KK2dsQXJlVGV4dHVyZXNSZXNpZGVudA0KK2dsQXJyYXlFbGVtZW50DQorZ2xCZWdpbg0KK2dsQmluZFRleHR1cmUNCitnbEJpdG1hcA0KK2dsQmxlbmRGdW5jDQorZ2xDYWxsTGlzdA0KK2dsQ2FsbExpc3RzDQorZ2xDbGVhcg0KK2dsQ2xlYXJBY2N1bQ0KK2dsQ2xlYXJDb2xvcg0KK2dsQ2xlYXJEZXB0aA0KK2dsQ2xlYXJJbmRleA0KK2dsQ2xlYXJTdGVuY2lsDQorZ2xDbGlwUGxhbmUNCitnbENvbG9yM2INCitnbENvbG9yM2J2DQorZ2xDb2xvcjNkDQorZ2xDb2xvcjNkdg0KK2dsQ29sb3IzZg0KK2dsQ29sb3IzZnYNCitnbENvbG9yM2kNCitnbENvbG9yM2l2DQorZ2xDb2xvcjNzDQorZ2xDb2xvcjNzdg0KK2dsQ29sb3IzdWINCitnbENvbG9yM3Vidg0KK2dsQ29sb3IzdWkNCitnbENvbG9yM3Vpdg0KK2dsQ29sb3IzdXMNCitnbENvbG9yM3Vzdg0KK2dsQ29sb3I0Yg0KK2dsQ29sb3I0YnYNCitnbENvbG9yNGQNCitnbENvbG9yNGR2DQorZ2xDb2xvcjRmDQorZ2xDb2xvcjRmdg0KK2dsQ29sb3I0aQ0KK2dsQ29sb3I0aXYNCitnbENvbG9yNHMNCitnbENvbG9yNHN2DQorZ2xDb2xvcjR1Yg0KK2dsQ29sb3I0dWJ2DQorZ2xDb2xvcjR1aQ0KK2dsQ29sb3I0dWl2DQorZ2xDb2xvcjR1cw0KK2dsQ29sb3I0dXN2DQorZ2xDb2xvck1hc2sNCitnbENvbG9yTWF0ZXJpYWwNCitnbENvbG9yUG9pbnRlcg0KK2dsQ29weVBpeGVscw0KK2dsQ29weVRleEltYWdlMUQNCitnbENvcHlUZXhJbWFnZTJEDQorZ2xDb3B5VGV4U3ViSW1hZ2UxRA0KK2dsQ29weVRleFN1YkltYWdlMkQNCitnbEN1bGxGYWNlDQorZ2xEZWxldGVMaXN0cw0KK2dsRGVsZXRlVGV4dHVyZXMNCitnbERlcHRoRnVuYw0KK2dsRGVwdGhNYXNrDQorZ2xEZXB0aFJhbmdlDQorZ2xEaXNhYmxlDQorZ2xEaXNhYmxlQ2xpZW50U3RhdGUNCitnbERyYXdBcnJheXMNCitnbERyYXdCdWZmZXINCitnbERyYXdFbGVtZW50cw0KK2dsRHJhd1BpeGVscw0KK2dsRWRnZUZsYWcNCitnbEVkZ2VGbGFnUG9pbnRlcg0KK2dsRWRnZUZsYWd2DQorZ2xFbmFibGUNCitnbEVuYWJsZUNsaWVudFN0YXRlDQorZ2xFbmQNCitnbEVuZExpc3QNCitnbEV2YWxDb29yZDFkDQorZ2xFdmFsQ29vcmQxZHYNCitnbEV2YWxDb29yZDFmDQorZ2xFdmFsQ29vcmQxZnYNCitnbEV2YWxDb29yZDJkDQorZ2xFdmFsQ29vcmQyZHYNCitnbEV2YWxDb29yZDJmDQorZ2xFdmFsQ29vcmQyZnYNCitnbEV2YWxNZXNoMQ0KK2dsRXZhbE1lc2gyDQorZ2xFdmFsUG9pbnQxDQorZ2xFdmFsUG9pbnQyDQorZ2xGZWVkYmFja0J1ZmZlcg0KK2dsRmluaXNoDQorZ2xGbHVzaA0KK2dsRm9nZg0KK2dsRm9nZnYNCitnbEZvZ2kNCitnbEZvZ2l2DQorZ2xGcm9udEZhY2UNCitnbEZydXN0dW0NCitnbEdlbkxpc3RzDQorZ2xHZW5UZXh0dXJlcw0KK2dsR2V0Qm9vbGVhbnYNCitnbEdldENsaXBQbGFuZQ0KK2dsR2V0RG91Ymxldg0KK2dsR2V0RXJyb3INCitnbEdldEZsb2F0dg0KK2dsR2V0SW50ZWdlcnYNCitnbEdldExpZ2h0ZnYNCitnbEdldExpZ2h0aXYNCitnbEdldE1hcGR2DQorZ2xHZXRNYXBmdg0KK2dsR2V0TWFwaXYNCitnbEdldE1hdGVyaWFsZnYNCitnbEdldE1hdGVyaWFsaXYNCitnbEdldFBpeGVsTWFwZnYNCitnbEdldFBpeGVsTWFwdWl2DQorZ2xHZXRQaXhlbE1hcHVzdg0KK2dsR2V0UG9pbnRlcnYNCitnbEdldFBvbHlnb25TdGlwcGxlDQorZ2xHZXRTdHJpbmcNCitnbEdldFRleEVudmZ2DQorZ2xHZXRUZXhFbnZpdg0KK2dsR2V0VGV4R2VuZHYNCitnbEdldFRleEdlbmZ2DQorZ2xHZXRUZXhHZW5pdg0KK2dsR2V0VGV4SW1hZ2UNCitnbEdldFRleExldmVsUGFyYW1ldGVyZnYNCitnbEdldFRleExldmVsUGFyYW1ldGVyaXYNCitnbEdldFRleFBhcmFtZXRlcmZ2DQorZ2xHZXRUZXhQYXJhbWV0ZXJpdg0KK2dsSGludA0KK2dsSW5kZXhNYXNrDQorZ2xJbmRleFBvaW50ZXINCitnbEluZGV4ZA0KK2dsSW5kZXhkdg0KK2dsSW5kZXhmDQorZ2xJbmRleGZ2DQorZ2xJbmRleGkNCitnbEluZGV4aXYNCitnbEluZGV4cw0KK2dsSW5kZXhzdg0KK2dsSW5kZXh1Yg0KK2dsSW5kZXh1YnYNCitnbEluaXROYW1lcw0KK2dsSW50ZXJsZWF2ZWRBcnJheXMNCitnbElzRW5hYmxlZA0KK2dsSXNMaXN0DQorZ2xJc1RleHR1cmUNCitnbExpZ2h0TW9kZWxmDQorZ2xMaWdodE1vZGVsZnYNCitnbExpZ2h0TW9kZWxpDQorZ2xMaWdodE1vZGVsaXYNCitnbExpZ2h0Zg0KK2dsTGlnaHRmdg0KK2dsTGlnaHRpDQorZ2xMaWdodGl2DQorZ2xMaW5lU3RpcHBsZQ0KK2dsTGluZVdpZHRoDQorZ2xMaXN0QmFzZQ0KK2dsTG9hZElkZW50aXR5DQorZ2xMb2FkTWF0cml4ZA0KK2dsTG9hZE1hdHJpeGYNCitnbExvYWROYW1lDQorZ2xMb2dpY09wDQorZ2xNYXAxZA0KK2dsTWFwMWYNCitnbE1hcDJkDQorZ2xNYXAyZg0KK2dsTWFwR3JpZDFkDQorZ2xNYXBHcmlkMWYNCitnbE1hcEdyaWQyZA0KK2dsTWFwR3JpZDJmDQorZ2xNYXRlcmlhbGYNCitnbE1hdGVyaWFsZnYNCitnbE1hdGVyaWFsaQ0KK2dsTWF0ZXJpYWxpdg0KK2dsTWF0cml4TW9kZQ0KK2dsTXVsdE1hdHJpeGQNCitnbE11bHRNYXRyaXhmDQorZ2xOZXdMaXN0DQorZ2xOb3JtYWwzYg0KK2dsTm9ybWFsM2J2DQorZ2xOb3JtYWwzZA0KK2dsTm9ybWFsM2R2DQorZ2xOb3JtYWwzZg0KK2dsTm9ybWFsM2Z2DQorZ2xOb3JtYWwzaQ0KK2dsTm9ybWFsM2l2DQorZ2xOb3JtYWwzcw0KK2dsTm9ybWFsM3N2DQorZ2xOb3JtYWxQb2ludGVyDQorZ2xPcnRobw0KK2dsUGFzc1Rocm91Z2gNCitnbFBpeGVsTWFwZnYNCitnbFBpeGVsTWFwdWl2DQorZ2xQaXhlbE1hcHVzdg0KK2dsUGl4ZWxTdG9yZWYNCitnbFBpeGVsU3RvcmVpDQorZ2xQaXhlbFRyYW5zZmVyZg0KK2dsUGl4ZWxUcmFuc2ZlcmkNCitnbFBpeGVsWm9vbQ0KK2dsUG9pbnRTaXplDQorZ2xQb2x5Z29uTW9kZQ0KK2dsUG9seWdvbk9mZnNldA0KK2dsUG9seWdvblN0aXBwbGUNCitnbFBvcEF0dHJpYg0KK2dsUG9wQ2xpZW50QXR0cmliDQorZ2xQb3BNYXRyaXgNCitnbFBvcE5hbWUNCitnbFByaW9yaXRpemVUZXh0dXJlcw0KK2dsUHVzaEF0dHJpYg0KK2dsUHVzaENsaWVudEF0dHJpYg0KK2dsUHVzaE1hdHJpeA0KK2dsUHVzaE5hbWUNCitnbFJhc3RlclBvczJkDQorZ2xSYXN0ZXJQb3MyZHYNCitnbFJhc3RlclBvczJmDQorZ2xSYXN0ZXJQb3MyZnYNCitnbFJhc3RlclBvczJpDQorZ2xSYXN0ZXJQb3MyaXYNCitnbFJhc3RlclBvczJzDQorZ2xSYXN0ZXJQb3Myc3YNCitnbFJhc3RlclBvczNkDQorZ2xSYXN0ZXJQb3MzZHYNCitnbFJhc3RlclBvczNmDQorZ2xSYXN0ZXJQb3MzZnYNCitnbFJhc3RlclBvczNpDQorZ2xSYXN0ZXJQb3MzaXYNCitnbFJhc3RlclBvczNzDQorZ2xSYXN0ZXJQb3Mzc3YNCitnbFJhc3RlclBvczRkDQorZ2xSYXN0ZXJQb3M0ZHYNCitnbFJhc3RlclBvczRmDQorZ2xSYXN0ZXJQb3M0ZnYNCitnbFJhc3RlclBvczRpDQorZ2xSYXN0ZXJQb3M0aXYNCitnbFJhc3RlclBvczRzDQorZ2xSYXN0ZXJQb3M0c3YNCitnbFJlYWRCdWZmZXINCitnbFJlYWRQaXhlbHMNCitnbFJlY3RkDQorZ2xSZWN0ZHYNCitnbFJlY3RmDQorZ2xSZWN0ZnYNCitnbFJlY3RpDQorZ2xSZWN0aXYNCitnbFJlY3RzDQorZ2xSZWN0c3YNCitnbFJlbmRlck1vZGUNCitnbFJvdGF0ZWQNCitnbFJvdGF0ZWYNCitnbFNjYWxlZA0KK2dsU2NhbGVmDQorZ2xTY2lzc29yDQorZ2xTZWxlY3RCdWZmZXINCitnbFNoYWRlTW9kZWwNCitnbFN0ZW5jaWxGdW5jDQorZ2xTdGVuY2lsTWFzaw0KK2dsU3RlbmNpbE9wDQorZ2xUZXhDb29yZDFkDQorZ2xUZXhDb29yZDFkdg0KK2dsVGV4Q29vcmQxZg0KK2dsVGV4Q29vcmQxZnYNCitnbFRleENvb3JkMWkNCitnbFRleENvb3JkMWl2DQorZ2xUZXhDb29yZDFzDQorZ2xUZXhDb29yZDFzdg0KK2dsVGV4Q29vcmQyZA0KK2dsVGV4Q29vcmQyZHYNCitnbFRleENvb3JkMmYNCitnbFRleENvb3JkMmZ2DQorZ2xUZXhDb29yZDJpDQorZ2xUZXhDb29yZDJpdg0KK2dsVGV4Q29vcmQycw0KK2dsVGV4Q29vcmQyc3YNCitnbFRleENvb3JkM2QNCitnbFRleENvb3JkM2R2DQorZ2xUZXhDb29yZDNmDQorZ2xUZXhDb29yZDNmdg0KK2dsVGV4Q29vcmQzaQ0KK2dsVGV4Q29vcmQzaXYNCitnbFRleENvb3JkM3MNCitnbFRleENvb3JkM3N2DQorZ2xUZXhDb29yZDRkDQorZ2xUZXhDb29yZDRkdg0KK2dsVGV4Q29vcmQ0Zg0KK2dsVGV4Q29vcmQ0ZnYNCitnbFRleENvb3JkNGkNCitnbFRleENvb3JkNGl2DQorZ2xUZXhDb29yZDRzDQorZ2xUZXhDb29yZDRzdg0KK2dsVGV4Q29vcmRQb2ludGVyDQorZ2xUZXhFbnZmDQorZ2xUZXhFbnZmdg0KK2dsVGV4RW52aQ0KK2dsVGV4RW52aXYNCitnbFRleEdlbmQNCitnbFRleEdlbmR2DQorZ2xUZXhHZW5mDQorZ2xUZXhHZW5mdg0KK2dsVGV4R2VuaQ0KK2dsVGV4R2VuaXYNCitnbFRleEltYWdlMUQNCitnbFRleEltYWdlMkQNCitnbFRleFBhcmFtZXRlcmYNCitnbFRleFBhcmFtZXRlcmZ2DQorZ2xUZXhQYXJhbWV0ZXJpDQorZ2xUZXhQYXJhbWV0ZXJpdg0KK2dsVGV4U3ViSW1hZ2UxRA0KK2dsVGV4U3ViSW1hZ2UyRA0KK2dsVHJhbnNsYXRlZA0KK2dsVHJhbnNsYXRlZg0KK2dsVmVydGV4MmQNCitnbFZlcnRleDJkdg0KK2dsVmVydGV4MmYNCitnbFZlcnRleDJmdg0KK2dsVmVydGV4MmkNCitnbFZlcnRleDJpdg0KK2dsVmVydGV4MnMNCitnbFZlcnRleDJzdg0KK2dsVmVydGV4M2QNCitnbFZlcnRleDNkdg0KK2dsVmVydGV4M2YNCitnbFZlcnRleDNmdg0KK2dsVmVydGV4M2kNCitnbFZlcnRleDNpdg0KK2dsVmVydGV4M3MNCitnbFZlcnRleDNzdg0KK2dsVmVydGV4NGQNCitnbFZlcnRleDRkdg0KK2dsVmVydGV4NGYNCitnbFZlcnRleDRmdg0KK2dsVmVydGV4NGkNCitnbFZlcnRleDRpdg0KK2dsVmVydGV4NHMNCitnbFZlcnRleDRzdg0KK2dsVmVydGV4UG9pbnRlcg0KK2dsVmlld3BvcnQNCit3Z2xDaG9vc2VQaXhlbEZvcm1hdA0KK3dnbENvcHlDb250ZXh0DQord2dsQ3JlYXRlTGF5ZXJDb250ZXh0DQord2dsRGVzY3JpYmVMYXllclBsYW5lDQord2dsRGVzY3JpYmVQaXhlbEZvcm1hdA0KK3dnbEdldERlZmF1bHRQcm9jQWRkcmVzcw0KK3dnbEdldExheWVyUGFsZXR0ZUVudHJpZXMNCit3Z2xHZXRQaXhlbEZvcm1hdA0KK3dnbFJlYWxpemVMYXllclBhbGV0dGUNCit3Z2xTZXRMYXllclBhbGV0dGVFbnRyaWVzDQord2dsU2V0UGl4ZWxGb3JtYXQNCit3Z2xTaGFyZUxpc3RzDQord2dsU3dhcEJ1ZmZlcnMNCit3Z2xTd2FwTGF5ZXJCdWZmZXJzDQord2dsVXNlRm9udEJpdG1hcHNBDQord2dsVXNlRm9udEJpdG1hcHNXDQord2dsVXNlRm9udE91dGxpbmVzQQ0KK3dnbFVzZUZvbnRPdXRsaW5lc1cNCit3Z2xDcmVhdGVDb250ZXh0DQord2dsRGVsZXRlQ29udGV4dA0KK3dnbEdldEN1cnJlbnRDb250ZXh0DQord2dsR2V0Q3VycmVudERDDQord2dsR2V0UHJvY0FkZHJlc3MNCit3Z2xNYWtlQ3VycmVudA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dDSFRTS0RJQy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Q0hUU0tESUMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA2YWIwYzMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Q0hUU0tESUMuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaW1lc2tkaWMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGltZXNrZGljLmRsbA0KK0VYUE9SVFMNCitDcmVhdGVJSW1lU2tkaWNJbnN0YW5jZQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd0NIVFNLRi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Q0hUU0tGLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZjYxMTQzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd0NIVFNLRi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtYWluLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtYWluLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dDSU5USU1FLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dDSU5USU1FLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MjUzYTliCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd0NJTlRJTUUuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDSU5USU1FLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDSU5USU1FLkRMTA0KK0VYUE9SVFMNCitVbmlDcmVhdGVJbnN0TEluc3RhbmNlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd0NtbmNsaW0uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd0NtbmNsaW0uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFmMzc5MDkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Q21uY2xpbS5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBab25lQ2xpZW50TS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgWm9uZUNsaWVudE0uZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd0NvbnRSb3QuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd0NvbnRSb3QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVlOGY2NzYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Q29udFJvdC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDT05UUk9ULkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDT05UUk9ULkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dITU1BUEkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd0hNTUFQSS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWQ1YTFmNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dITU1BUEkuZGVmCkBAIC0wLDAgKzEsMzUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSE1NQVBJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBITU1BUEkuZGxsDQorRVhQT1JUUw0KK01BUElGcmVlQnVmZmVyDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorTUFQSVNlbmREb2N1bWVudHMNCitNQVBJTG9nb24NCitNQVBJTG9nb2ZmDQorTUFQSVNlbmRNYWlsDQorTUFQSVNhdmVNYWlsDQorTUFQSVJlYWRNYWlsDQorTUFQSUZpbmROZXh0DQorTUFQSURlbGV0ZU1haWwNCitNQVBJQWRkcmVzcw0KK01BUElEZXRhaWxzDQorTUFQSVJlc29sdmVOYW1lDQorQk1BUElTZW5kTWFpbA0KK0JNQVBJU2F2ZU1haWwNCitCTUFQSVJlYWRNYWlsDQorQk1BUElHZXRSZWFkTWFpbA0KK0JNQVBJRmluZE5leHQNCitCTUFQSUFkZHJlc3MNCitCTUFQSUdldEFkZHJlc3MNCitCTUFQSURldGFpbHMNCitCTUFQSVJlc29sdmVOYW1lDQorTWFpbFRvUHJvdG9jb2xIYW5kbGVyDQorT3BlbkluYm94SGFuZGxlcg0KK0FkZFNlcnZpY2UNCitSZW1vdmVTZXJ2aWNlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd0tCREFMLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dLQkRBTC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2NhZTViYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dLQkRBTC5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREFMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRBTC5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd01TQ1RGLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dNU0NURi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzE3ODNkZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dNU0NURi5kZWYKQEAgLTAsMCArMSw0NyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU0NURi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNDVEYuZGxsDQorRVhQT1JUUw0KK1RGX0dldExhbmdJY29uDQorVEZfR2V0TWxuZ0hLTA0KK1RGX0dldE1sbmdJY29uSW5kZXgNCitURl9HZXRUaHJlYWRGbGFncw0KK1RGX0luYXRFeHRyYWN0SWNvbg0KK1RGX0luaXRNbG5nSW5mbw0KK1RGX0lzSW5NYXJzaGFsaW5nDQorVEZfTWxuZ0luZm9Db3VudA0KK1RGX1J1bklucHV0Q1BMDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitTZXRJbnB1dFNjb3BlDQorU2V0SW5wdXRTY29wZVhNTA0KK1NldElucHV0U2NvcGVzDQorVEZfQ1VBU0FwcEZpeA0KK1RGX0NoZWNrVGhyZWFkSW5wdXRJZGxlDQorVEZfQ2xlYXJMYW5nQmFyQWRkSW5zDQorVEZfQ3JlYXRlQ2F0ZWdvcnlNZ3INCitURl9DcmVhdGVDaWNMb2FkTXV0ZXgNCitURl9DcmVhdGVEaXNwbGF5QXR0cmlidXRlTWdyDQorVEZfQ3JlYXRlSW5wdXRQcm9jZXNzb3JQcm9maWxlcw0KK1RGX0NyZWF0ZUxhbmdCYXJJdGVtTWdyDQorVEZfQ3JlYXRlTGFuZ0Jhck1ncg0KK1RGX0NyZWF0ZVRocmVhZE1ncg0KK1RGX0RsbERldGFjaEluT3RoZXINCitURl9HZXRHbG9iYWxDb21wYXJ0bWVudA0KK1RGX0dldElucHV0U2NvcGUNCitURl9HZXRUaHJlYWRNZ3INCitURl9Jbml0U3lzdGVtDQorVEZfSW52YWxpZEFzc2VtYmx5TGlzdENhY2hlDQorVEZfSW52YWxpZEFzc2VtYmx5TGlzdENhY2hlSWZFeGlzdA0KK1RGX0lzQ3RmbW9uUnVubmluZw0KK1RGX0lzRnVsbFNjcmVlbldpbmRvd0FjaXR2YXRlZA0KK1RGX1Bvc3RBbGxUaHJlYWRNc2cNCitURl9SZWdpc3RlckxhbmdCYXJBZGRJbg0KK1RGX1VuaW5pdFN5c3RlbQ0KK1RGX1VucmVnaXN0ZXJMYW5nQmFyQWRkSW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93TVNDVEZQLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dNU0NURlAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAxZWM3MzQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93TVNDVEZQLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TQ1RGUC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNDVEZQLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldFByb3h5RGxsSW5mbw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dNU0lNVEYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd01TSU1URi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzEyZWVjMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dNU0lNVEYuZGVmCkBAIC0wLDAgKzEsMTQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXNpbXRmLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc2ltdGYuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorTXNpbXRmSXNHdWlkTWFwRW5hYmxlDQorTXNpbXRmSXNXaW5kb3dGaWx0ZXJlZA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dORVhUTElOSy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93TkVYVExJTksuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY3OTU3Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93TkVYVExJTksuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTmV4dExpbmsuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5leHRMaW5rLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dQQURSUzQwNC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93UEFEUlM0MDQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMwMzMyODUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93UEFEUlM0MDQuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcmVzbWFpbi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcmVzbWFpbi5kbGwNCitFWFBPUlRTDQorUGFkSGVscF9IYW5kbGVDb250ZXh0UG9wdXANCitQYWRIZWxwX0hhbmRsZUhlbHANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93UElOVExDU0EuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd1BJTlRMQ1NBLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMjhiOTVlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd1BJTlRMQ1NBLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElNRVNLRi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSU1FU0tGLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dQSU5UTENTRC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93UElOVExDU0QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIxODZkYTMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93UElOVExDU0QuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJTUVTS0RpYy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSU1FU0tEaWMuZGxsDQorRVhQT1JUUw0KK0NyZWF0ZUlJbWVTa2RpY0luc3RhbmNlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2FhYWFtb24uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2FhYWFtb24uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY4NTAzMzYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YWFhYW1vbi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEFBQUFNT04uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEFBQUFNT04uZGxsDQorRVhQT1JUUw0KK0luaXRIZWxwZXJEbGwNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YWIzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YWIzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzc3N2YwZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhYjMyLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdBQjMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXQUIzMi5kbGwNCitFWFBPUlRTDQorV0FCT3Blbg0KK1dBQkNyZWF0ZUlQcm9wDQorV0FCT3BlbkV4DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2FiZmluZC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YWJmaW5kLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZDk0YjBjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2FiZmluZC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBXQUJGSU5ELmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXQUJGSU5ELmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dhYmltcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YWJpbXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE4MmExNDcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YWJpbXAuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgV0FCSU1QLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXQUJJTVAuZGxsDQorRVhQT1JUUw0KK05ldHNjYXBlSW1wb3J0DQorTmV0c2NhcGVFeHBvcnQNCitFdWRvcmFJbXBvcnQNCitFdWRvcmFFeHBvcnQNCitBdGhlbmExNkltcG9ydA0KK0F0aGVuYTE2RXhwb3J0DQorUEFCSW1wb3J0DQorUEFCRXhwb3J0DQorQ1NWSW1wb3J0DQorQ1NWRXhwb3J0DQorTERJRkltcG9ydA0KK01lc3NlbmdlckltcG9ydA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dhY2xlZGl0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhY2xlZGl0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYTNlMTgwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2FjbGVkaXQuZGVmCkBAIC0wLDAgKzEsMTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQUNMRURJVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQUNMRURJVC5kbGwNCitFWFBPUlRTDQorRWRpdEF1ZGl0SW5mbw0KK0VkaXRPd25lckluZm8NCitFZGl0UGVybWlzc2lvbkluZm8NCitEbGxNYWluDQorRk1FeHRlbnNpb25Qcm9jVw0KK1NlZERpc2NyZXRpb25hcnlBY2xFZGl0b3INCitTZWRTeXN0ZW1BY2xFZGl0b3INCitTZWRUYWtlT3duZXJzaGlwDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2FjbHVpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhY2x1aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzJiNTc3YgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhY2x1aS5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBQ0xVSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQUNMVUkuZGxsDQorRVhQT1JUUw0KK0NyZWF0ZVNlY3VyaXR5UGFnZQ0KK0VkaXRTZWN1cml0eQ0KK0lJRF9JU2VjdXJpdHlJbmZvcm1hdGlvbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dhY3RpdmVkcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YWN0aXZlZHMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmExZTg4NjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YWN0aXZlZHMuZGVmCkBAIC0wLDAgKzEsMzkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQUNUSVZFRFMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEFDVElWRURTLmRsbA0KK0VYUE9SVFMNCitBRHNHZXRPYmplY3QNCitBRHNCdWlsZEVudW1lcmF0b3INCitBRHNGcmVlRW51bWVyYXRvcg0KK0FEc0VudW1lcmF0ZU5leHQNCitBRHNCdWlsZFZhckFycmF5U3RyDQorQURzQnVpbGRWYXJBcnJheUludA0KK0FEc09wZW5PYmplY3QNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0FEc1NldExhc3RFcnJvcg0KK0FEc0dldExhc3RFcnJvcg0KK0FsbG9jQURzTWVtDQorRnJlZUFEc01lbQ0KK1JlYWxsb2NBRHNNZW0NCitBbGxvY0FEc1N0cg0KK0ZyZWVBRHNTdHINCitSZWFsbG9jQURzU3RyDQorQURzRW5jb2RlQmluYXJ5RGF0YQ0KK1Byb3BWYXJpYW50VG9BZHNUeXBlDQorQWRzVHlwZVRvUHJvcFZhcmlhbnQNCitBZHNGcmVlQWRzVmFsdWVzDQorQURzRGVjb2RlQmluYXJ5RGF0YQ0KK0Fkc1R5cGVUb1Byb3BWYXJpYW50Mg0KK1Byb3BWYXJpYW50VG9BZHNUeXBlMg0KK0NvbnZlcnRTZWNEZXNjcmlwdG9yVG9WYXJpYW50DQorQ29udmVydFNlY3VyaXR5RGVzY3JpcHRvclRvU2VjRGVzDQorQmluYXJ5U0RUb1NlY3VyaXR5RGVzY3JpcHRvcg0KK1NlY3VyaXR5RGVzY3JpcHRvclRvQmluYXJ5U0QNCitDb252ZXJ0VHJ1c3RlZVRvU2lkDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2FjdHhwcnh5LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhY3R4cHJ4eS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzIxOWMwZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhY3R4cHJ4eS5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTV0VFUFJYLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTV0VFUFJYLmRsbA0KK0VYUE9SVFMNCitHZXRQcm94eURsbEluZm8NCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dhY3dvdzY0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhY3dvdzY0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZjhhODk5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2Fjd293NjQuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTlVMTC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTlVMTC5kbGwNCitFWFBPUlRTDQorR2V0SG9va0FQSXMNCitOb3RpZnlTaGltcw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dhZG1wYXJzZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YWRtcGFyc2UuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQwNzI2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YWRtcGFyc2UuZGVmCkBAIC0wLDAgKzEsMjcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYWRtcGFyc2UuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGFkbXBhcnNlLmRsbA0KK0VYUE9SVFMNCitEbGxNYWluDQorSXNBZG1EaXJ0eQ0KK1Jlc2V0QWRtRGlydHlGbGFnDQorQWRtQ2xvc2UNCitBZG1GaW5pc2hlZEENCitBZG1GaW5pc2hlZFcNCitBZG1Jbml0QQ0KK0FkbUluaXRXDQorQWRtUmVzZXRBDQorQWRtUmVzZXRXDQorQWRtU2F2ZURhdGENCitDaGVja0R1cGxpY2F0ZUtleXNBDQorQ2hlY2tEdXBsaWNhdGVLZXlzVw0KK0NyZWF0ZUFkbVVpQQ0KK0NyZWF0ZUFkbVVpVw0KK0dldEFkbUNhdGVnb3JpZXNBDQorR2V0QWRtQ2F0ZWdvcmllc1cNCitHZXRGb250SW5mb0ENCitHZXRGb250SW5mb1cNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YWRtd3ByeC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YWRtd3ByeC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDhlZWUzZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhZG13cHJ4LmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEFETVdQUk9YLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBBRE1XUFJPWC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitSZWxlYXNlT2JqZWN0U2VjdXJpdHlDb250ZXh0Vw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dhZHB0aWYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2FkcHRpZi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWRkY2I0ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhZHB0aWYuZGVmCkBAIC0wLDAgKzEsNDggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYWRwdGlmLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBhZHB0aWYuZGxsDQorRVhQT1JUUw0KK0NyZWF0ZVNvY2tldFBvcnQNCitEZWxldGVTb2NrZXRQb3J0DQorRndCaW5kRndJbnRlcmZhY2VUb0FkYXB0ZXINCitGd0Nvbm5lY3Rpb25SZXF1ZXN0RmFpbGVkDQorRndDcmVhdGVJbnRlcmZhY2UNCitGd0RlbGV0ZUludGVyZmFjZQ0KK0Z3RGlzYWJsZUZ3SW50ZXJmYWNlDQorRndFbmFibGVGd0ludGVyZmFjZQ0KK0Z3R2V0SW50ZXJmYWNlDQorRndHZXROb3RpZmljYXRpb25SZXN1bHQNCitGd0dldFN0YXRpY05ldGJpb3NOYW1lcw0KK0Z3SXNTdGFydGVkDQorRndOb3RpZnlDb25uZWN0aW9uUmVxdWVzdA0KK0Z3U2V0SW50ZXJmYWNlDQorRndTZXRTdGF0aWNOZXRiaW9zTmFtZXMNCitGd1N0YXJ0DQorRndTdG9wDQorRndVbmJpbmRGd0ludGVyZmFjZUZyb21BZGFwdGVyDQorRndVcGRhdGVDb25maWcNCitGd1VwZGF0ZVJvdXRlVGFibGUNCitHZXRBZGFwdGVyTmFtZUZyb21NYWNBZGRyVw0KK0dldEFkYXB0ZXJOYW1lVw0KK0dldEZpbHRlcnMNCitJcHhBZGp1c3RJb0NvbXBsZXRpb25QYXJhbXMNCitJcHhDcmVhdGVBZGFwdGVyQ29uZmlndXJhdGlvblBvcnQNCitJcHhEZWxldGVBZGFwdGVyQ29uZmlndXJhdGlvblBvcnQNCitJcHhEb2VzUm91dGVFeGlzdA0KK0lweEdldEFkYXB0ZXJDb25maWcNCitJcHhHZXRBZGFwdGVyTGlzdA0KK0lweEdldE92ZXJsYXBwZWRSZXN1bHQNCitJcHhHZXRRdWV1ZWRBZGFwdGVyQ29uZmlndXJhdGlvblN0YXR1cw0KK0lweEdldFF1ZXVlZENvbXBsZXRpb25TdGF0dXMNCitJcHhQb3N0UXVldWVkQ29tcGxldGlvblN0YXR1cw0KK0lweFJlY3ZQYWNrZXQNCitJcHhTZW5kUGFja2V0DQorSXB4V2FuQ3JlYXRlQWRhcHRlckNvbmZpZ3VyYXRpb25Qb3J0DQorSXB4V2FuUXVlcnlJbmFjdGl2aXR5VGltZXINCitJcHhXYW5TZXRBZGFwdGVyQ29uZmlndXJhdGlvbg0KK1NlcnZpY2VNYWluDQorU2V0RmlsdGVycw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dhZHNpaXMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Fkc2lpcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWM5MWRmNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhZHNpaXMuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQURTSUlTLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBBRFNJSVMuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2Fkc2xkcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YWRzbGRwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mODRlNDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2Fkc2xkcC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBhZHNsZHAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGFkc2xkcC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YWRzbGRwYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YWRzbGRwYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDBiOWZlNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhZHNsZHBjLmRlZgpAQCAtMCwwICsxLDE4OCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBhZHNsZHBjLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBhZHNsZHBjLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTGV4ZXI6OkNMZXhlcih2b2lkKQ0KKz8/MENMZXhlckBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0xleGVyOjp+Q0xleGVyKHZvaWQpDQorPz8xQ0xleGVyQEBRQUVAWFoNCitBRHNBYmFuZG9uU2VhcmNoDQorQURzQ2xvc2VTZWFyY2hIYW5kbGUNCitBRHNDcmVhdGVBdHRyaWJ1dGVEZWZpbml0aW9uDQorQURzQ3JlYXRlQ2xhc3NEZWZpbml0aW9uDQorQURzQ3JlYXRlRFNPYmplY3QNCitBRHNDcmVhdGVEU09iamVjdEV4dA0KK0FEc0RlbGV0ZUF0dHJpYnV0ZURlZmluaXRpb24NCitBRHNEZWxldGVDbGFzc0RlZmluaXRpb24NCitBRHNEZWxldGVEU09iamVjdA0KK0FEc0VudW1BdHRyaWJ1dGVzDQorQURzRW51bUNsYXNzZXMNCitBRHNFeGVjdXRlU2VhcmNoDQorQURzRnJlZUNvbHVtbg0KK0FEc0dldENvbHVtbg0KK0FEc0dldEZpcnN0Um93DQorQURzR2V0TmV4dENvbHVtbk5hbWUNCitBRHNHZXROZXh0Um93DQorQURzR2V0T2JqZWN0QXR0cmlidXRlcw0KK0FEc0dldFByZXZpb3VzUm93DQorQURzSGVscGVyR2V0Q3VycmVudFJvd01lc3NhZ2UNCitBRHNPYmplY3QNCitBRHNTZXRPYmplY3RBdHRyaWJ1dGVzDQorQURzU2V0U2VhcmNoUHJlZmVyZW5jZQ0KK0FEc1dyaXRlQXR0cmlidXRlRGVmaW5pdGlvbg0KK0FEc1dyaXRlQ2xhc3NEZWZpbml0aW9uDQorQWRzVHlwZVRvTGRhcFR5cGVDb3B5Q29uc3RydWN0DQorQWRzVHlwZVRvTGRhcFR5cGVDb3B5RE5XaXRoQmluYXJ5DQorQWRzVHlwZVRvTGRhcFR5cGVDb3B5RE5XaXRoU3RyaW5nDQorQWRzVHlwZVRvTGRhcFR5cGVDb3B5R2VuZXJhbGl6ZWRUaW1lDQorQWRzVHlwZVRvTGRhcFR5cGVDb3B5VGltZQ0KK0JlckJ2RnJlZQ0KK0JlckVuY29kaW5nUXVvdGFDb250cm9sDQorQnVpbGRBRHNQYXJlbnRQYXRoDQorQnVpbGRBRHNQYXJlbnRQYXRoRnJvbU9iamVjdEluZm8yDQorQnVpbGRBRHNQYXJlbnRQYXRoRnJvbU9iamVjdEluZm8NCitCdWlsZEFEc1BhdGhGcm9tTERBUFBhdGgyDQorQnVpbGRBRHNQYXRoRnJvbUxEQVBQYXRoDQorQnVpbGRBRHNQYXRoRnJvbVBhcmVudA0KK0J1aWxkTERBUFBhdGhGcm9tQURzUGF0aDINCitCdWlsZExEQVBQYXRoRnJvbUFEc1BhdGgNCitDaGFuZ2VTZXBhcmF0b3INCitDb21wb25lbnQNCitDb252ZXJ0U2lkVG9TdHJpbmcNCitDb252ZXJ0U2lkVG9VMlRydXN0ZWUNCitDb252ZXJ0VTJUcnVzdGVlVG9TaWQNCitGaW5kRW50cnlJblNlYXJjaFRhYmxlDQorRmluZFNlYXJjaFRhYmxlSW5kZXgNCitGcmVlT2JqZWN0SW5mbw0KK0dldERlZmF1bHRTZXJ2ZXINCitHZXREaXNwbGF5TmFtZQ0KK0dldERvbWFpbkROU05hbWVGb3JEb21haW4NCitHZXRMREFQVHlwZU5hbWUNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENMZXhlcjo6R2V0TmV4dFRva2VuKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXROZXh0VG9rZW5AQ0xleGVyQEBRQUVKUEFHUEFLQFoNCitHZXRTeW50YXhPZkF0dHJpYnV0ZQ0KK0luaXRPYmplY3RJbmZvDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTGV4ZXI6OkluaXRpYWxpemVQYXRoKHVuc2lnbmVkIHNob3J0ICopDQorP0luaXRpYWxpemVQYXRoQENMZXhlckBAUUFFSlBBR0BaDQorSXNHQ05hbWVzcGFjZQ0KK0xkYXBBZGRFeHRTDQorTGRhcEFkZFMNCitMZGFwQXR0cmlidXRlRnJlZQ0KK0xkYXBDYWNoZUFkZFJlZg0KK0xkYXBDbG9zZU9iamVjdA0KK0xkYXBDb21wYXJlRXh0DQorTGRhcENvbnRyb2xGcmVlDQorTGRhcENvbnRyb2xzRnJlZQ0KK0xkYXBDb3VudEVudHJpZXMNCitMZGFwQ3JhY2tVc2VyRE50b05UTE1Vc2VyMg0KK0xkYXBDcmFja1VzZXJETnRvTlRMTVVzZXINCitMZGFwQ3JlYXRlUGFnZUNvbnRyb2wNCitMZGFwRGVsZXRlRXh0Uw0KK0xkYXBEZWxldGVTDQorTGRhcEZpcnN0QXR0cmlidXRlDQorTGRhcEZpcnN0RW50cnkNCitMZGFwR2V0RG4NCitMZGFwR2V0TmV4dFBhZ2VTDQorTGRhcEdldFNjaGVtYU9iamVjdENvdW50DQorTGRhcEdldFN1YlNjaGVtYVN1YkVudHJ5UGF0aA0KK0xkYXBHZXRTeW50YXhJZE9mQXR0cmlidXRlDQorTGRhcEdldFN5bnRheE9mQXR0cmlidXRlT25TZXJ2ZXINCitMZGFwR2V0VmFsdWVzDQorTGRhcEdldFZhbHVlc0xlbg0KK0xkYXBJbml0aWFsaXplU2VhcmNoUHJlZmVyZW5jZXMNCitMZGFwSXNDbGFzc05hbWVWYWxpZE9uU2VydmVyDQorTGRhcE1ha2VTY2hlbWFDYWNoZU9ic29sZXRlDQorTGRhcE1lbUZyZWUNCitMZGFwTW9kRG5TDQorTGRhcE1vZGlmeUV4dFMNCitMZGFwTW9kaWZ5Uw0KK0xkYXBNc2dGcmVlDQorTGRhcE5leHRBdHRyaWJ1dGUNCitMZGFwTmV4dEVudHJ5DQorTGRhcE9wZW5PYmplY3QyDQorTGRhcE9wZW5PYmplY3QNCitMZGFwUGFyc2VQYWdlQ29udHJvbA0KK0xkYXBQYXJzZVJlc3VsdA0KK0xkYXBSZWFkQXR0cmlidXRlMg0KK0xkYXBSZWFkQXR0cmlidXRlDQorTGRhcFJlYWRBdHRyaWJ1dGVGYXN0DQorTGRhcFJlbmFtZUV4dFMNCitMZGFwUmVzdWx0DQorTGRhcFNlYXJjaA0KK0xkYXBTZWFyY2hBYmFuZG9uUGFnZQ0KK0xkYXBTZWFyY2hFeHRTDQorTGRhcFNlYXJjaEluaXRQYWdlDQorTGRhcFNlYXJjaFMNCitMZGFwU2VhcmNoU1QNCitMZGFwVHlwZUJpbmFyeVRvU3RyaW5nDQorTGRhcFR5cGVDb3B5Q29uc3RydWN0DQorTGRhcFR5cGVGcmVlTGRhcE1vZExpc3QNCitMZGFwVHlwZUZyZWVMZGFwTW9kT2JqZWN0DQorTGRhcFR5cGVGcmVlTGRhcE9iamVjdHMNCitMZGFwVHlwZVRvQWRzVHlwZUROV2l0aEJpbmFyeQ0KK0xkYXBUeXBlVG9BZHNUeXBlRE5XaXRoU3RyaW5nDQorTGRhcFR5cGVUb0Fkc1R5cGVHZW5lcmFsaXplZFRpbWUNCitMZGFwVHlwZVRvQWRzVHlwZVVUQ1RpbWUNCitMZGFwVmFsdWVGcmVlDQorTGRhcFZhbHVlRnJlZUxlbg0KK0xkYXBjS2VlcEhhbmRsZUFyb3VuZA0KK0xkYXBjU2V0U3RpY2t5U2VydmVyDQorUGF0aE5hbWUNCitSZWFkUGFnaW5nU3VwcG9ydGVkQXR0cg0KK1JlYWRTZWN1cml0eURlc2NyaXB0b3JDb250cm9sVHlwZQ0KK1JlYWRTZXJ2ZXJTdXBwb3J0c0lzQURDb250cm9sDQorU2NoZW1hQWRkUmVmDQorU2NoZW1hQ2xvc2UNCitTY2hlbWFHZXRDbGFzc0luZm8NCitTY2hlbWFHZXRDbGFzc0luZm9CeUluZGV4DQorU2NoZW1hR2V0T2JqZWN0Q291bnQNCitTY2hlbWFHZXRQcm9wZXJ0eUluZm8NCitTY2hlbWFHZXRQcm9wZXJ0eUluZm9CeUluZGV4DQorU2NoZW1hR2V0U3RyaW5nc0Zyb21TdHJpbmdUYWJsZQ0KK1NjaGVtYUdldFN5bnRheE9mQXR0cmlidXRlDQorU2NoZW1hSXNDbGFzc0FDb250YWluZXINCitTY2hlbWFPcGVuDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTGV4ZXI6OlNldEF0RGlzYWJsZXIoaW50KQ0KKz9TZXRBdERpc2FibGVyQENMZXhlckBAUUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xleGVyOjpTZXRFeGNsYWltbmF0aW9uRGlzYWJsZXIoaW50KQ0KKz9TZXRFeGNsYWltbmF0aW9uRGlzYWJsZXJAQ0xleGVyQEBRQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTGV4ZXI6OlNldEZTbGFzaERpc2FibGVyKGludCkNCis/U2V0RlNsYXNoRGlzYWJsZXJAQ0xleGVyQEBRQUVYSEBaDQorU29ydEFuZFJlbW92ZUR1cGxpY2F0ZU9JRHMNCitVbk1hcnNoYWxsTERBUFRvTERBUFN5bklEDQoraW50Y21wDQorQURTSUFiYW5kb25TZWFyY2gNCitBRFNJQ2xvc2VEU09iamVjdA0KK0FEU0lDbG9zZVNlYXJjaEhhbmRsZQ0KK0FEU0lDcmVhdGVEU09iamVjdA0KK0FEU0lEZWxldGVEU09iamVjdA0KK0FEU0lFeGVjdXRlU2VhcmNoDQorQURTSUZyZWVDb2x1bW4NCitBRFNJR2V0Q29sdW1uDQorQURTSUdldEZpcnN0Um93DQorQURTSUdldE5leHRDb2x1bW5OYW1lDQorQURTSUdldE5leHRSb3cNCitBRFNJR2V0T2JqZWN0QXR0cmlidXRlcw0KK0FEU0lHZXRQcmV2aW91c1Jvdw0KK0FEU0lNb2RpZnlSZG4NCitBRFNJT3BlbkRTT2JqZWN0DQorQURTSVNldE9iamVjdEF0dHJpYnV0ZXMNCitBRFNJU2V0U2VhcmNoUHJlZmVyZW5jZQ0KK0FEc0RlY29kZUJpbmFyeURhdGENCitBRHNFbmNvZGVCaW5hcnlEYXRhDQorQURzR2V0TGFzdEVycm9yDQorQURzU2V0TGFzdEVycm9yDQorQWRzVHlwZUZyZWVBZHNPYmplY3RzDQorQWxsb2NBRHNNZW0NCitBbGxvY0FEc1N0cg0KK0ZyZWVBRHNNZW0NCitGcmVlQURzU3RyDQorTGRhcFR5cGVUb0Fkc1R5cGVDb3B5Q29uc3RydWN0DQorTWFwQURTVHlwZVRvTERBUFR5cGUNCitNYXBMREFQVHlwZVRvQURTVHlwZQ0KK1JlYWxsb2NBRHNNZW0NCitSZWFsbG9jQURzU3RyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2Fkc21zZXh0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhZHNtc2V4dC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjhmNTYwOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhZHNtc2V4dC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBhZHNtc2V4dC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgYWRzbXNleHQuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2Fkc250LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhZHNudC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDJjNDU1NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhZHNudC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBRFNOVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQURTTlQuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2FkdmFwaTMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhZHZhcGkzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2VjMTE1OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhZHZhcGkzMi5kZWYKQEAgLTAsMCArMSw2OTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQURWQVBJMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEFEVkFQSTMyLmRsbA0KK0VYUE9SVFMNCitJX1NjR2V0Q3VycmVudEdyb3VwU3RhdGVXDQorQV9TSEFGaW5hbA0KK0FfU0hBSW5pdA0KK0FfU0hBVXBkYXRlDQorQWJvcnRTeXN0ZW1TaHV0ZG93bkENCitBYm9ydFN5c3RlbVNodXRkb3duVw0KK0FjY2Vzc0NoZWNrDQorQWNjZXNzQ2hlY2tBbmRBdWRpdEFsYXJtQQ0KK0FjY2Vzc0NoZWNrQW5kQXVkaXRBbGFybVcNCitBY2Nlc3NDaGVja0J5VHlwZQ0KK0FjY2Vzc0NoZWNrQnlUeXBlQW5kQXVkaXRBbGFybUENCitBY2Nlc3NDaGVja0J5VHlwZUFuZEF1ZGl0QWxhcm1XDQorQWNjZXNzQ2hlY2tCeVR5cGVSZXN1bHRMaXN0DQorQWNjZXNzQ2hlY2tCeVR5cGVSZXN1bHRMaXN0QW5kQXVkaXRBbGFybUENCitBY2Nlc3NDaGVja0J5VHlwZVJlc3VsdExpc3RBbmRBdWRpdEFsYXJtQnlIYW5kbGVBDQorQWNjZXNzQ2hlY2tCeVR5cGVSZXN1bHRMaXN0QW5kQXVkaXRBbGFybUJ5SGFuZGxlVw0KK0FjY2Vzc0NoZWNrQnlUeXBlUmVzdWx0TGlzdEFuZEF1ZGl0QWxhcm1XDQorQWRkQWNjZXNzQWxsb3dlZEFjZQ0KK0FkZEFjY2Vzc0FsbG93ZWRBY2VFeA0KK0FkZEFjY2Vzc0FsbG93ZWRPYmplY3RBY2UNCitBZGRBY2Nlc3NEZW5pZWRBY2UNCitBZGRBY2Nlc3NEZW5pZWRBY2VFeA0KK0FkZEFjY2Vzc0RlbmllZE9iamVjdEFjZQ0KK0FkZEFjZQ0KK0FkZEF1ZGl0QWNjZXNzQWNlDQorQWRkQXVkaXRBY2Nlc3NBY2VFeA0KK0FkZEF1ZGl0QWNjZXNzT2JqZWN0QWNlDQorQWRkVXNlcnNUb0VuY3J5cHRlZEZpbGUNCitBZGp1c3RUb2tlbkdyb3Vwcw0KK0FkanVzdFRva2VuUHJpdmlsZWdlcw0KK0FsbG9jYXRlQW5kSW5pdGlhbGl6ZVNpZA0KK0FsbG9jYXRlTG9jYWxseVVuaXF1ZUlkDQorQXJlQWxsQWNjZXNzZXNHcmFudGVkDQorQXJlQW55QWNjZXNzZXNHcmFudGVkDQorQmFja3VwRXZlbnRMb2dBDQorQmFja3VwRXZlbnRMb2dXDQorQnVpbGRFeHBsaWNpdEFjY2Vzc1dpdGhOYW1lQQ0KK0J1aWxkRXhwbGljaXRBY2Nlc3NXaXRoTmFtZVcNCitCdWlsZEltcGVyc29uYXRlRXhwbGljaXRBY2Nlc3NXaXRoTmFtZUENCitCdWlsZEltcGVyc29uYXRlRXhwbGljaXRBY2Nlc3NXaXRoTmFtZVcNCitCdWlsZEltcGVyc29uYXRlVHJ1c3RlZUENCitCdWlsZEltcGVyc29uYXRlVHJ1c3RlZVcNCitCdWlsZFNlY3VyaXR5RGVzY3JpcHRvckENCitCdWlsZFNlY3VyaXR5RGVzY3JpcHRvclcNCitCdWlsZFRydXN0ZWVXaXRoTmFtZUENCitCdWlsZFRydXN0ZWVXaXRoTmFtZVcNCitCdWlsZFRydXN0ZWVXaXRoT2JqZWN0c0FuZE5hbWVBDQorQnVpbGRUcnVzdGVlV2l0aE9iamVjdHNBbmROYW1lVw0KK0J1aWxkVHJ1c3RlZVdpdGhPYmplY3RzQW5kU2lkQQ0KK0J1aWxkVHJ1c3RlZVdpdGhPYmplY3RzQW5kU2lkVw0KK0J1aWxkVHJ1c3RlZVdpdGhTaWRBDQorQnVpbGRUcnVzdGVlV2l0aFNpZFcNCitDYW5jZWxPdmVybGFwcGVkQWNjZXNzDQorQ2hhbmdlU2VydmljZUNvbmZpZzJBDQorQ2hhbmdlU2VydmljZUNvbmZpZzJXDQorQ2hhbmdlU2VydmljZUNvbmZpZ0ENCitDaGFuZ2VTZXJ2aWNlQ29uZmlnVw0KK0NoZWNrVG9rZW5NZW1iZXJzaGlwDQorQ2xlYXJFdmVudExvZ0ENCitDbGVhckV2ZW50TG9nVw0KK0Nsb3NlQ29kZUF1dGh6TGV2ZWwNCitDbG9zZUVuY3J5cHRlZEZpbGVSYXcNCitDbG9zZUV2ZW50TG9nDQorQ2xvc2VTZXJ2aWNlSGFuZGxlDQorQ2xvc2VUcmFjZQ0KK0NvbW1hbmRMaW5lRnJvbU1zaURlc2NyaXB0b3INCitDb21wdXRlQWNjZXNzVG9rZW5Gcm9tQ29kZUF1dGh6TGV2ZWwNCitDb250cm9sU2VydmljZQ0KK0NvbnRyb2xUcmFjZUENCitDb250cm9sVHJhY2VXDQorQ29udmVydEFjY2Vzc1RvU2VjdXJpdHlEZXNjcmlwdG9yQQ0KK0NvbnZlcnRBY2Nlc3NUb1NlY3VyaXR5RGVzY3JpcHRvclcNCitDb252ZXJ0U0RUb1N0cmluZ1NEUm9vdERvbWFpbkENCitDb252ZXJ0U0RUb1N0cmluZ1NEUm9vdERvbWFpblcNCitDb252ZXJ0U2VjdXJpdHlEZXNjcmlwdG9yVG9BY2Nlc3NBDQorQ29udmVydFNlY3VyaXR5RGVzY3JpcHRvclRvQWNjZXNzTmFtZWRBDQorQ29udmVydFNlY3VyaXR5RGVzY3JpcHRvclRvQWNjZXNzTmFtZWRXDQorQ29udmVydFNlY3VyaXR5RGVzY3JpcHRvclRvQWNjZXNzVw0KK0NvbnZlcnRTZWN1cml0eURlc2NyaXB0b3JUb1N0cmluZ1NlY3VyaXR5RGVzY3JpcHRvckENCitDb252ZXJ0U2VjdXJpdHlEZXNjcmlwdG9yVG9TdHJpbmdTZWN1cml0eURlc2NyaXB0b3JXDQorQ29udmVydFNpZFRvU3RyaW5nU2lkQQ0KK0NvbnZlcnRTaWRUb1N0cmluZ1NpZFcNCitDb252ZXJ0U3RyaW5nU0RUb1NERG9tYWluQQ0KK0NvbnZlcnRTdHJpbmdTRFRvU0REb21haW5XDQorQ29udmVydFN0cmluZ1NEVG9TRFJvb3REb21haW5BDQorQ29udmVydFN0cmluZ1NEVG9TRFJvb3REb21haW5XDQorQ29udmVydFN0cmluZ1NlY3VyaXR5RGVzY3JpcHRvclRvU2VjdXJpdHlEZXNjcmlwdG9yQQ0KK0NvbnZlcnRTdHJpbmdTZWN1cml0eURlc2NyaXB0b3JUb1NlY3VyaXR5RGVzY3JpcHRvclcNCitDb252ZXJ0U3RyaW5nU2lkVG9TaWRBDQorQ29udmVydFN0cmluZ1NpZFRvU2lkVw0KK0NvbnZlcnRUb0F1dG9Jbmhlcml0UHJpdmF0ZU9iamVjdFNlY3VyaXR5DQorQ29weVNpZA0KK0NyZWF0ZUNvZGVBdXRoekxldmVsDQorQ3JlYXRlUHJpdmF0ZU9iamVjdFNlY3VyaXR5DQorQ3JlYXRlUHJpdmF0ZU9iamVjdFNlY3VyaXR5RXgNCitDcmVhdGVQcml2YXRlT2JqZWN0U2VjdXJpdHlXaXRoTXVsdGlwbGVJbmhlcml0YW5jZQ0KK0NyZWF0ZVByb2Nlc3NBc1VzZXJBDQorQ3JlYXRlUHJvY2Vzc0FzVXNlclcNCitDcmVhdGVQcm9jZXNzV2l0aExvZ29uVw0KK0NyZWF0ZVByb2Nlc3NXaXRoVG9rZW5XDQorQ3JlYXRlUmVzdHJpY3RlZFRva2VuDQorQ3JlYXRlU2VydmljZUENCitDcmVhdGVTZXJ2aWNlVw0KK0NyZWF0ZVRyYWNlSW5zdGFuY2VJZA0KK0NyZWF0ZVdlbGxLbm93blNpZA0KK0NyZWREZWxldGVBDQorQ3JlZERlbGV0ZVcNCitDcmVkRW51bWVyYXRlQQ0KK0NyZWRFbnVtZXJhdGVXDQorQ3JlZEZyZWUNCitDcmVkR2V0U2Vzc2lvblR5cGVzDQorQ3JlZEdldFRhcmdldEluZm9BDQorQ3JlZEdldFRhcmdldEluZm9XDQorQ3JlZElzTWFyc2hhbGVkQ3JlZGVudGlhbEENCitDcmVkSXNNYXJzaGFsZWRDcmVkZW50aWFsVw0KK0NyZWRNYXJzaGFsQ3JlZGVudGlhbEENCitDcmVkTWFyc2hhbENyZWRlbnRpYWxXDQorQ3JlZFByb2ZpbGVMb2FkZWQNCitDcmVkUmVhZEENCitDcmVkUmVhZERvbWFpbkNyZWRlbnRpYWxzQQ0KK0NyZWRSZWFkRG9tYWluQ3JlZGVudGlhbHNXDQorQ3JlZFJlYWRXDQorQ3JlZFJlbmFtZUENCitDcmVkUmVuYW1lVw0KK0NyZWRVbm1hcnNoYWxDcmVkZW50aWFsQQ0KK0NyZWRVbm1hcnNoYWxDcmVkZW50aWFsVw0KK0NyZWRXcml0ZUENCitDcmVkV3JpdGVEb21haW5DcmVkZW50aWFsc0ENCitDcmVkV3JpdGVEb21haW5DcmVkZW50aWFsc1cNCitDcmVkV3JpdGVXDQorQ3JlZHBDb252ZXJ0Q3JlZGVudGlhbA0KK0NyZWRwQ29udmVydFRhcmdldEluZm8NCitDcmVkcERlY29kZUNyZWRlbnRpYWwNCitDcmVkcEVuY29kZUNyZWRlbnRpYWwNCitDcnlwdEFjcXVpcmVDb250ZXh0QQ0KK0NyeXB0QWNxdWlyZUNvbnRleHRXDQorQ3J5cHRDb250ZXh0QWRkUmVmDQorQ3J5cHRDcmVhdGVIYXNoDQorQ3J5cHREZWNyeXB0DQorQ3J5cHREZXJpdmVLZXkNCitDcnlwdERlc3Ryb3lIYXNoDQorQ3J5cHREZXN0cm95S2V5DQorQ3J5cHREdXBsaWNhdGVIYXNoDQorQ3J5cHREdXBsaWNhdGVLZXkNCitDcnlwdEVuY3J5cHQNCitDcnlwdEVudW1Qcm92aWRlclR5cGVzQQ0KK0NyeXB0RW51bVByb3ZpZGVyVHlwZXNXDQorQ3J5cHRFbnVtUHJvdmlkZXJzQQ0KK0NyeXB0RW51bVByb3ZpZGVyc1cNCitDcnlwdEV4cG9ydEtleQ0KK0NyeXB0R2VuS2V5DQorQ3J5cHRHZW5SYW5kb20NCitDcnlwdEdldERlZmF1bHRQcm92aWRlckENCitDcnlwdEdldERlZmF1bHRQcm92aWRlclcNCitDcnlwdEdldEhhc2hQYXJhbQ0KK0NyeXB0R2V0S2V5UGFyYW0NCitDcnlwdEdldFByb3ZQYXJhbQ0KK0NyeXB0R2V0VXNlcktleQ0KK0NyeXB0SGFzaERhdGENCitDcnlwdEhhc2hTZXNzaW9uS2V5DQorQ3J5cHRJbXBvcnRLZXkNCitDcnlwdFJlbGVhc2VDb250ZXh0DQorQ3J5cHRTZXRIYXNoUGFyYW0NCitDcnlwdFNldEtleVBhcmFtDQorQ3J5cHRTZXRQcm92UGFyYW0NCitDcnlwdFNldFByb3ZpZGVyQQ0KK0NyeXB0U2V0UHJvdmlkZXJFeEENCitDcnlwdFNldFByb3ZpZGVyRXhXDQorQ3J5cHRTZXRQcm92aWRlclcNCitDcnlwdFNpZ25IYXNoQQ0KK0NyeXB0U2lnbkhhc2hXDQorQ3J5cHRWZXJpZnlTaWduYXR1cmVBDQorQ3J5cHRWZXJpZnlTaWduYXR1cmVXDQorRGVjcnlwdEZpbGVBDQorRGVjcnlwdEZpbGVXDQorRGVsZXRlQWNlDQorRGVsZXRlU2VydmljZQ0KK0RlcmVnaXN0ZXJFdmVudFNvdXJjZQ0KK0Rlc3Ryb3lQcml2YXRlT2JqZWN0U2VjdXJpdHkNCitEdXBsaWNhdGVFbmNyeXB0aW9uSW5mb0ZpbGUNCitEdXBsaWNhdGVUb2tlbg0KK0R1cGxpY2F0ZVRva2VuRXgNCitFbGZCYWNrdXBFdmVudExvZ0ZpbGVBDQorRWxmQmFja3VwRXZlbnRMb2dGaWxlVw0KK0VsZkNoYW5nZU5vdGlmeQ0KK0VsZkNsZWFyRXZlbnRMb2dGaWxlQQ0KK0VsZkNsZWFyRXZlbnRMb2dGaWxlVw0KK0VsZkNsb3NlRXZlbnRMb2cNCitFbGZEZXJlZ2lzdGVyRXZlbnRTb3VyY2UNCitFbGZGbHVzaEV2ZW50TG9nDQorRWxmTnVtYmVyT2ZSZWNvcmRzDQorRWxmT2xkZXN0UmVjb3JkDQorRWxmT3BlbkJhY2t1cEV2ZW50TG9nQQ0KK0VsZk9wZW5CYWNrdXBFdmVudExvZ1cNCitFbGZPcGVuRXZlbnRMb2dBDQorRWxmT3BlbkV2ZW50TG9nVw0KK0VsZlJlYWRFdmVudExvZ0ENCitFbGZSZWFkRXZlbnRMb2dXDQorRWxmUmVnaXN0ZXJFdmVudFNvdXJjZUENCitFbGZSZWdpc3RlckV2ZW50U291cmNlVw0KK0VsZlJlcG9ydEV2ZW50QQ0KK0VsZlJlcG9ydEV2ZW50QW5kU291cmNlVw0KK0VsZlJlcG9ydEV2ZW50Vw0KK0VuYWJsZVRyYWNlDQorRW5jcnlwdEZpbGVBDQorRW5jcnlwdEZpbGVXDQorRW5jcnlwdGVkRmlsZUtleUluZm8NCitFbmNyeXB0aW9uRGlzYWJsZQ0KK0VudW1EZXBlbmRlbnRTZXJ2aWNlc0ENCitFbnVtRGVwZW5kZW50U2VydmljZXNXDQorRW51bVNlcnZpY2VHcm91cFcNCitFbnVtU2VydmljZXNTdGF0dXNBDQorRW51bVNlcnZpY2VzU3RhdHVzRXhBDQorRW51bVNlcnZpY2VzU3RhdHVzRXhXDQorRW51bVNlcnZpY2VzU3RhdHVzVw0KK0VudW1lcmF0ZVRyYWNlR3VpZHMNCitFcXVhbERvbWFpblNpZA0KK0VxdWFsUHJlZml4U2lkDQorRXF1YWxTaWQNCitGaWxlRW5jcnlwdGlvblN0YXR1c0ENCitGaWxlRW5jcnlwdGlvblN0YXR1c1cNCitGaW5kRmlyc3RGcmVlQWNlDQorRmx1c2hUcmFjZUENCitGbHVzaFRyYWNlVw0KK0ZyZWVFbmNyeXB0ZWRGaWxlS2V5SW5mbw0KK0ZyZWVFbmNyeXB0aW9uQ2VydGlmaWNhdGVIYXNoTGlzdA0KK0ZyZWVJbmhlcml0ZWRGcm9tQXJyYXkNCitGcmVlU2lkDQorR2V0QWNjZXNzUGVybWlzc2lvbnNGb3JPYmplY3RBDQorR2V0QWNjZXNzUGVybWlzc2lvbnNGb3JPYmplY3RXDQorR2V0QWNlDQorR2V0QWNsSW5mb3JtYXRpb24NCitHZXRBdWRpdGVkUGVybWlzc2lvbnNGcm9tQWNsQQ0KK0dldEF1ZGl0ZWRQZXJtaXNzaW9uc0Zyb21BY2xXDQorR2V0Q3VycmVudEh3UHJvZmlsZUENCitHZXRDdXJyZW50SHdQcm9maWxlVw0KK0dldEVmZmVjdGl2ZVJpZ2h0c0Zyb21BY2xBDQorR2V0RWZmZWN0aXZlUmlnaHRzRnJvbUFjbFcNCitHZXRFdmVudExvZ0luZm9ybWF0aW9uDQorR2V0RXhwbGljaXRFbnRyaWVzRnJvbUFjbEENCitHZXRFeHBsaWNpdEVudHJpZXNGcm9tQWNsVw0KK0dldEZpbGVTZWN1cml0eUENCitHZXRGaWxlU2VjdXJpdHlXDQorR2V0SW5mb3JtYXRpb25Db2RlQXV0aHpMZXZlbFcNCitHZXRJbmZvcm1hdGlvbkNvZGVBdXRoelBvbGljeVcNCitHZXRJbmhlcml0YW5jZVNvdXJjZUENCitHZXRJbmhlcml0YW5jZVNvdXJjZVcNCitHZXRLZXJuZWxPYmplY3RTZWN1cml0eQ0KK0dldExlbmd0aFNpZA0KK0dldExvY2FsTWFuYWdlZEFwcGxpY2F0aW9uRGF0YQ0KK0dldExvY2FsTWFuYWdlZEFwcGxpY2F0aW9ucw0KK0dldE1hbmFnZWRBcHBsaWNhdGlvbkNhdGVnb3JpZXMNCitHZXRNYW5hZ2VkQXBwbGljYXRpb25zDQorR2V0TXVsdGlwbGVUcnVzdGVlQQ0KK0dldE11bHRpcGxlVHJ1c3RlZU9wZXJhdGlvbkENCitHZXRNdWx0aXBsZVRydXN0ZWVPcGVyYXRpb25XDQorR2V0TXVsdGlwbGVUcnVzdGVlVw0KK0dldE5hbWVkU2VjdXJpdHlJbmZvQQ0KK0dldE5hbWVkU2VjdXJpdHlJbmZvRXhBDQorR2V0TmFtZWRTZWN1cml0eUluZm9FeFcNCitHZXROYW1lZFNlY3VyaXR5SW5mb1cNCitHZXROdW1iZXJPZkV2ZW50TG9nUmVjb3Jkcw0KK0dldE9sZGVzdEV2ZW50TG9nUmVjb3JkDQorR2V0T3ZlcmxhcHBlZEFjY2Vzc1Jlc3VsdHMNCitHZXRQcml2YXRlT2JqZWN0U2VjdXJpdHkNCitHZXRTZWN1cml0eURlc2NyaXB0b3JDb250cm9sDQorR2V0U2VjdXJpdHlEZXNjcmlwdG9yRGFjbA0KK0dldFNlY3VyaXR5RGVzY3JpcHRvckdyb3VwDQorR2V0U2VjdXJpdHlEZXNjcmlwdG9yTGVuZ3RoDQorR2V0U2VjdXJpdHlEZXNjcmlwdG9yT3duZXINCitHZXRTZWN1cml0eURlc2NyaXB0b3JSTUNvbnRyb2wNCitHZXRTZWN1cml0eURlc2NyaXB0b3JTYWNsDQorR2V0U2VjdXJpdHlJbmZvDQorR2V0U2VjdXJpdHlJbmZvRXhBDQorR2V0U2VjdXJpdHlJbmZvRXhXDQorR2V0U2VydmljZURpc3BsYXlOYW1lQQ0KK0dldFNlcnZpY2VEaXNwbGF5TmFtZVcNCitHZXRTZXJ2aWNlS2V5TmFtZUENCitHZXRTZXJ2aWNlS2V5TmFtZVcNCitHZXRTaWRJZGVudGlmaWVyQXV0aG9yaXR5DQorR2V0U2lkTGVuZ3RoUmVxdWlyZWQNCitHZXRTaWRTdWJBdXRob3JpdHkNCitHZXRTaWRTdWJBdXRob3JpdHlDb3VudA0KK0dldFRva2VuSW5mb3JtYXRpb24NCitHZXRUcmFjZUVuYWJsZUZsYWdzDQorR2V0VHJhY2VFbmFibGVMZXZlbA0KK0dldFRyYWNlTG9nZ2VySGFuZGxlDQorR2V0VHJ1c3RlZUZvcm1BDQorR2V0VHJ1c3RlZUZvcm1XDQorR2V0VHJ1c3RlZU5hbWVBDQorR2V0VHJ1c3RlZU5hbWVXDQorR2V0VHJ1c3RlZVR5cGVBDQorR2V0VHJ1c3RlZVR5cGVXDQorR2V0VXNlck5hbWVBDQorR2V0VXNlck5hbWVXDQorR2V0V2luZG93c0FjY291bnREb21haW5TaWQNCitJX1F1ZXJ5VGFnSW5mb3JtYXRpb24NCitJX1NjSXNTZWN1cml0eVByb2Nlc3MNCitJX1NjUG5QR2V0U2VydmljZU5hbWUNCitJX1NjU2VuZFRTTWVzc2FnZQ0KK0lfU2NTZXRTZXJ2aWNlQml0c0ENCitJX1NjU2V0U2VydmljZUJpdHNXDQorSWRlbnRpZnlDb2RlQXV0aHpMZXZlbFcNCitJbXBlcnNvbmF0ZUFub255bW91c1Rva2VuDQorSW1wZXJzb25hdGVMb2dnZWRPblVzZXINCitJbXBlcnNvbmF0ZU5hbWVkUGlwZUNsaWVudA0KK0ltcGVyc29uYXRlU2VsZg0KK0luaXRpYWxpemVBY2wNCitJbml0aWFsaXplU2VjdXJpdHlEZXNjcmlwdG9yDQorSW5pdGlhbGl6ZVNpZA0KK0luaXRpYXRlU3lzdGVtU2h1dGRvd25BDQorSW5pdGlhdGVTeXN0ZW1TaHV0ZG93bkV4QQ0KK0luaXRpYXRlU3lzdGVtU2h1dGRvd25FeFcNCitJbml0aWF0ZVN5c3RlbVNodXRkb3duVw0KK0luc3RhbGxBcHBsaWNhdGlvbg0KK0lzVGV4dFVuaWNvZGUNCitJc1Rva2VuUmVzdHJpY3RlZA0KK0lzVG9rZW5VbnRydXN0ZWQNCitJc1ZhbGlkQWNsDQorSXNWYWxpZFNlY3VyaXR5RGVzY3JpcHRvcg0KK0lzVmFsaWRTaWQNCitJc1dlbGxLbm93blNpZA0KK0xvY2tTZXJ2aWNlRGF0YWJhc2UNCitMb2dvblVzZXJBDQorTG9nb25Vc2VyRXhBDQorTG9nb25Vc2VyRXhXDQorTG9nb25Vc2VyVw0KK0xvb2t1cEFjY291bnROYW1lQQ0KK0xvb2t1cEFjY291bnROYW1lVw0KK0xvb2t1cEFjY291bnRTaWRBDQorTG9va3VwQWNjb3VudFNpZFcNCitMb29rdXBQcml2aWxlZ2VEaXNwbGF5TmFtZUENCitMb29rdXBQcml2aWxlZ2VEaXNwbGF5TmFtZVcNCitMb29rdXBQcml2aWxlZ2VOYW1lQQ0KK0xvb2t1cFByaXZpbGVnZU5hbWVXDQorTG9va3VwUHJpdmlsZWdlVmFsdWVBDQorTG9va3VwUHJpdmlsZWdlVmFsdWVXDQorTG9va3VwU2VjdXJpdHlEZXNjcmlwdG9yUGFydHNBDQorTG9va3VwU2VjdXJpdHlEZXNjcmlwdG9yUGFydHNXDQorTHNhQWRkQWNjb3VudFJpZ2h0cw0KK0xzYUFkZFByaXZpbGVnZXNUb0FjY291bnQNCitMc2FDbGVhckF1ZGl0TG9nDQorTHNhQ2xvc2UNCitMc2FDcmVhdGVBY2NvdW50DQorTHNhQ3JlYXRlU2VjcmV0DQorTHNhQ3JlYXRlVHJ1c3RlZERvbWFpbg0KK0xzYUNyZWF0ZVRydXN0ZWREb21haW5FeA0KK0xzYURlbGV0ZQ0KK0xzYURlbGV0ZVRydXN0ZWREb21haW4NCitMc2FFbnVtZXJhdGVBY2NvdW50UmlnaHRzDQorTHNhRW51bWVyYXRlQWNjb3VudHMNCitMc2FFbnVtZXJhdGVBY2NvdW50c1dpdGhVc2VyUmlnaHQNCitMc2FFbnVtZXJhdGVQcml2aWxlZ2VzDQorTHNhRW51bWVyYXRlUHJpdmlsZWdlc09mQWNjb3VudA0KK0xzYUVudW1lcmF0ZVRydXN0ZWREb21haW5zDQorTHNhRW51bWVyYXRlVHJ1c3RlZERvbWFpbnNFeA0KK0xzYUZyZWVNZW1vcnkNCitMc2FHZXRRdW90YXNGb3JBY2NvdW50DQorTHNhR2V0UmVtb3RlVXNlck5hbWUNCitMc2FHZXRTeXN0ZW1BY2Nlc3NBY2NvdW50DQorTHNhR2V0VXNlck5hbWUNCitMc2FJQ0xvb2t1cE5hbWVzDQorTHNhSUNMb29rdXBOYW1lc1dpdGhDcmVkcw0KK0xzYUlDTG9va3VwU2lkcw0KK0xzYUlDTG9va3VwU2lkc1dpdGhDcmVkcw0KK0xzYUxvb2t1cE5hbWVzMg0KK0xzYUxvb2t1cE5hbWVzDQorTHNhTG9va3VwUHJpdmlsZWdlRGlzcGxheU5hbWUNCitMc2FMb29rdXBQcml2aWxlZ2VOYW1lDQorTHNhTG9va3VwUHJpdmlsZWdlVmFsdWUNCitMc2FMb29rdXBTaWRzDQorTHNhTnRTdGF0dXNUb1dpbkVycm9yDQorTHNhT3BlbkFjY291bnQNCitMc2FPcGVuUG9saWN5DQorTHNhT3BlblBvbGljeVNjZQ0KK0xzYU9wZW5TZWNyZXQNCitMc2FPcGVuVHJ1c3RlZERvbWFpbg0KK0xzYU9wZW5UcnVzdGVkRG9tYWluQnlOYW1lDQorTHNhUXVlcnlEb21haW5JbmZvcm1hdGlvblBvbGljeQ0KK0xzYVF1ZXJ5Rm9yZXN0VHJ1c3RJbmZvcm1hdGlvbg0KK0xzYVF1ZXJ5SW5mb1RydXN0ZWREb21haW4NCitMc2FRdWVyeUluZm9ybWF0aW9uUG9saWN5DQorTHNhUXVlcnlTZWNyZXQNCitMc2FRdWVyeVNlY3VyaXR5T2JqZWN0DQorTHNhUXVlcnlUcnVzdGVkRG9tYWluSW5mbw0KK0xzYVF1ZXJ5VHJ1c3RlZERvbWFpbkluZm9CeU5hbWUNCitMc2FSZW1vdmVBY2NvdW50UmlnaHRzDQorTHNhUmVtb3ZlUHJpdmlsZWdlc0Zyb21BY2NvdW50DQorTHNhUmV0cmlldmVQcml2YXRlRGF0YQ0KK0xzYVNldERvbWFpbkluZm9ybWF0aW9uUG9saWN5DQorTHNhU2V0Rm9yZXN0VHJ1c3RJbmZvcm1hdGlvbg0KK0xzYVNldEluZm9ybWF0aW9uUG9saWN5DQorTHNhU2V0SW5mb3JtYXRpb25UcnVzdGVkRG9tYWluDQorTHNhU2V0UXVvdGFzRm9yQWNjb3VudA0KK0xzYVNldFNlY3JldA0KK0xzYVNldFNlY3VyaXR5T2JqZWN0DQorTHNhU2V0U3lzdGVtQWNjZXNzQWNjb3VudA0KK0xzYVNldFRydXN0ZWREb21haW5JbmZvQnlOYW1lDQorTHNhU2V0VHJ1c3RlZERvbWFpbkluZm9ybWF0aW9uDQorTHNhU3RvcmVQcml2YXRlRGF0YQ0KK01ENEZpbmFsDQorTUQ0SW5pdA0KK01ENFVwZGF0ZQ0KK01ENUZpbmFsDQorTUQ1SW5pdA0KK01ENVVwZGF0ZQ0KK01TQ2hhcFNydkNoYW5nZVBhc3N3b3JkMg0KK01TQ2hhcFNydkNoYW5nZVBhc3N3b3JkDQorTWFrZUFic29sdXRlU0QyDQorTWFrZUFic29sdXRlU0QNCitNYWtlU2VsZlJlbGF0aXZlU0QNCitNYXBHZW5lcmljTWFzaw0KK05vdGlmeUJvb3RDb25maWdTdGF0dXMNCitOb3RpZnlDaGFuZ2VFdmVudExvZw0KK09iamVjdENsb3NlQXVkaXRBbGFybUENCitPYmplY3RDbG9zZUF1ZGl0QWxhcm1XDQorT2JqZWN0RGVsZXRlQXVkaXRBbGFybUENCitPYmplY3REZWxldGVBdWRpdEFsYXJtVw0KK09iamVjdE9wZW5BdWRpdEFsYXJtQQ0KK09iamVjdE9wZW5BdWRpdEFsYXJtVw0KK09iamVjdFByaXZpbGVnZUF1ZGl0QWxhcm1BDQorT2JqZWN0UHJpdmlsZWdlQXVkaXRBbGFybVcNCitPcGVuQmFja3VwRXZlbnRMb2dBDQorT3BlbkJhY2t1cEV2ZW50TG9nVw0KK09wZW5FbmNyeXB0ZWRGaWxlUmF3QQ0KK09wZW5FbmNyeXB0ZWRGaWxlUmF3Vw0KK09wZW5FdmVudExvZ0ENCitPcGVuRXZlbnRMb2dXDQorT3BlblByb2Nlc3NUb2tlbg0KK09wZW5TQ01hbmFnZXJBDQorT3BlblNDTWFuYWdlclcNCitPcGVuU2VydmljZUENCitPcGVuU2VydmljZVcNCitPcGVuVGhyZWFkVG9rZW4NCitPcGVuVHJhY2VBDQorT3BlblRyYWNlVw0KK1ByaXZpbGVnZUNoZWNrDQorUHJpdmlsZWdlZFNlcnZpY2VBdWRpdEFsYXJtQQ0KK1ByaXZpbGVnZWRTZXJ2aWNlQXVkaXRBbGFybVcNCitQcm9jZXNzSWRsZVRhc2tzDQorUHJvY2Vzc1RyYWNlDQorUXVlcnlBbGxUcmFjZXNBDQorUXVlcnlBbGxUcmFjZXNXDQorUXVlcnlSZWNvdmVyeUFnZW50c09uRW5jcnlwdGVkRmlsZQ0KK1F1ZXJ5U2VydmljZUNvbmZpZzJBDQorUXVlcnlTZXJ2aWNlQ29uZmlnMlcNCitRdWVyeVNlcnZpY2VDb25maWdBDQorUXVlcnlTZXJ2aWNlQ29uZmlnVw0KK1F1ZXJ5U2VydmljZUxvY2tTdGF0dXNBDQorUXVlcnlTZXJ2aWNlTG9ja1N0YXR1c1cNCitRdWVyeVNlcnZpY2VPYmplY3RTZWN1cml0eQ0KK1F1ZXJ5U2VydmljZVN0YXR1cw0KK1F1ZXJ5U2VydmljZVN0YXR1c0V4DQorUXVlcnlUcmFjZUENCitRdWVyeVRyYWNlVw0KK1F1ZXJ5VXNlcnNPbkVuY3J5cHRlZEZpbGUNCitSZWFkRW5jcnlwdGVkRmlsZVJhdw0KK1JlYWRFdmVudExvZ0ENCitSZWFkRXZlbnRMb2dXDQorUmVnQ2xvc2VLZXkNCitSZWdDb25uZWN0UmVnaXN0cnlBDQorUmVnQ29ubmVjdFJlZ2lzdHJ5RXhBDQorUmVnQ29ubmVjdFJlZ2lzdHJ5RXhXDQorUmVnQ29ubmVjdFJlZ2lzdHJ5Vw0KK1JlZ0NyZWF0ZUtleUENCitSZWdDcmVhdGVLZXlFeEENCitSZWdDcmVhdGVLZXlFeFcNCitSZWdDcmVhdGVLZXlXDQorUmVnRGVsZXRlS2V5QQ0KK1JlZ0RlbGV0ZUtleUV4QQ0KK1JlZ0RlbGV0ZUtleUV4Vw0KK1JlZ0RlbGV0ZUtleVcNCitSZWdEZWxldGVWYWx1ZUENCitSZWdEZWxldGVWYWx1ZVcNCitSZWdEaXNhYmxlUHJlZGVmaW5lZENhY2hlDQorUmVnRGlzYWJsZVJlZmxlY3Rpb25LZXkNCitSZWdFbmFibGVSZWZsZWN0aW9uS2V5DQorUmVnRW51bUtleUENCitSZWdFbnVtS2V5RXhBDQorUmVnRW51bUtleUV4Vw0KK1JlZ0VudW1LZXlXDQorUmVnRW51bVZhbHVlQQ0KK1JlZ0VudW1WYWx1ZVcNCitSZWdGbHVzaEtleQ0KK1JlZ0dldEtleVNlY3VyaXR5DQorUmVnR2V0VmFsdWVBDQorUmVnR2V0VmFsdWVXDQorUmVnTG9hZEtleUENCitSZWdMb2FkS2V5Vw0KK1JlZ05vdGlmeUNoYW5nZUtleVZhbHVlDQorUmVnT3BlbkN1cnJlbnRVc2VyDQorUmVnT3BlbktleUENCitSZWdPcGVuS2V5RXhBDQorUmVnT3BlbktleUV4Vw0KK1JlZ09wZW5LZXlXDQorUmVnT3BlblVzZXJDbGFzc2VzUm9vdA0KK1JlZ092ZXJyaWRlUHJlZGVmS2V5DQorUmVnUXVlcnlJbmZvS2V5QQ0KK1JlZ1F1ZXJ5SW5mb0tleVcNCitSZWdRdWVyeU11bHRpcGxlVmFsdWVzQQ0KK1JlZ1F1ZXJ5TXVsdGlwbGVWYWx1ZXNXDQorUmVnUXVlcnlSZWZsZWN0aW9uS2V5DQorUmVnUXVlcnlWYWx1ZUENCitSZWdRdWVyeVZhbHVlRXhBDQorUmVnUXVlcnlWYWx1ZUV4Vw0KK1JlZ1F1ZXJ5VmFsdWVXDQorUmVnUmVwbGFjZUtleUENCitSZWdSZXBsYWNlS2V5Vw0KK1JlZ1Jlc3RvcmVLZXlBDQorUmVnUmVzdG9yZUtleVcNCitSZWdTYXZlS2V5QQ0KK1JlZ1NhdmVLZXlFeEENCitSZWdTYXZlS2V5RXhXDQorUmVnU2F2ZUtleVcNCitSZWdTZXRLZXlTZWN1cml0eQ0KK1JlZ1NldFZhbHVlQQ0KK1JlZ1NldFZhbHVlRXhBDQorUmVnU2V0VmFsdWVFeFcNCitSZWdTZXRWYWx1ZVcNCitSZWdVbkxvYWRLZXlBDQorUmVnVW5Mb2FkS2V5Vw0KK1JlZ2lzdGVyRXZlbnRTb3VyY2VBDQorUmVnaXN0ZXJFdmVudFNvdXJjZVcNCitSZWdpc3RlcklkbGVUYXNrDQorUmVnaXN0ZXJTZXJ2aWNlQ3RybEhhbmRsZXJBDQorUmVnaXN0ZXJTZXJ2aWNlQ3RybEhhbmRsZXJFeEENCitSZWdpc3RlclNlcnZpY2VDdHJsSGFuZGxlckV4Vw0KK1JlZ2lzdGVyU2VydmljZUN0cmxIYW5kbGVyVw0KK1JlZ2lzdGVyVHJhY2VHdWlkc0ENCitSZWdpc3RlclRyYWNlR3VpZHNXDQorUmVtb3ZlVHJhY2VDYWxsYmFjaw0KK1JlbW92ZVVzZXJzRnJvbUVuY3J5cHRlZEZpbGUNCitSZXBvcnRFdmVudEENCitSZXBvcnRFdmVudFcNCitSZXZlcnRUb1NlbGYNCitTYWZlckNsb3NlTGV2ZWwNCitTYWZlckNvbXB1dGVUb2tlbkZyb21MZXZlbA0KK1NhZmVyQ3JlYXRlTGV2ZWwNCitTYWZlckdldExldmVsSW5mb3JtYXRpb24NCitTYWZlckdldFBvbGljeUluZm9ybWF0aW9uDQorU2FmZXJJZGVudGlmeUxldmVsDQorU2FmZXJSZWNvcmRFdmVudExvZ0VudHJ5DQorU2FmZXJTZXRMZXZlbEluZm9ybWF0aW9uDQorU2FmZXJTZXRQb2xpY3lJbmZvcm1hdGlvbg0KK1NhZmVyaUNoYW5nZVJlZ2lzdHJ5U2NvcGUNCitTYWZlcmlDb21wYXJlVG9rZW5MZXZlbHMNCitTYWZlcmlJc0V4ZWN1dGFibGVGaWxlVHlwZQ0KK1NhZmVyaVBvcHVsYXRlRGVmYXVsdHNJblJlZ2lzdHJ5DQorU2FmZXJpUmVjb3JkRXZlbnRMb2dFbnRyeQ0KK1NhZmVyaVJlcGxhY2VQcm9jZXNzVGhyZWFkVG9rZW5zDQorU2FmZXJpU2VhcmNoTWF0Y2hpbmdIYXNoUnVsZXMNCitTZXRBY2xJbmZvcm1hdGlvbg0KK1NldEVudHJpZXNJbkFjY2Vzc0xpc3RBDQorU2V0RW50cmllc0luQWNjZXNzTGlzdFcNCitTZXRFbnRyaWVzSW5BY2xBDQorU2V0RW50cmllc0luQWNsVw0KK1NldEVudHJpZXNJbkF1ZGl0TGlzdEENCitTZXRFbnRyaWVzSW5BdWRpdExpc3RXDQorU2V0RmlsZVNlY3VyaXR5QQ0KK1NldEZpbGVTZWN1cml0eVcNCitTZXRJbmZvcm1hdGlvbkNvZGVBdXRoekxldmVsVw0KK1NldEluZm9ybWF0aW9uQ29kZUF1dGh6UG9saWN5Vw0KK1NldEtlcm5lbE9iamVjdFNlY3VyaXR5DQorU2V0TmFtZWRTZWN1cml0eUluZm9BDQorU2V0TmFtZWRTZWN1cml0eUluZm9FeEENCitTZXROYW1lZFNlY3VyaXR5SW5mb0V4Vw0KK1NldE5hbWVkU2VjdXJpdHlJbmZvVw0KK1NldFByaXZhdGVPYmplY3RTZWN1cml0eQ0KK1NldFByaXZhdGVPYmplY3RTZWN1cml0eUV4DQorU2V0U2VjdXJpdHlEZXNjcmlwdG9yQ29udHJvbA0KK1NldFNlY3VyaXR5RGVzY3JpcHRvckRhY2wNCitTZXRTZWN1cml0eURlc2NyaXB0b3JHcm91cA0KK1NldFNlY3VyaXR5RGVzY3JpcHRvck93bmVyDQorU2V0U2VjdXJpdHlEZXNjcmlwdG9yUk1Db250cm9sDQorU2V0U2VjdXJpdHlEZXNjcmlwdG9yU2FjbA0KK1NldFNlY3VyaXR5SW5mbw0KK1NldFNlY3VyaXR5SW5mb0V4QQ0KK1NldFNlY3VyaXR5SW5mb0V4Vw0KK1NldFNlcnZpY2VCaXRzDQorU2V0U2VydmljZU9iamVjdFNlY3VyaXR5DQorU2V0U2VydmljZVN0YXR1cw0KK1NldFRocmVhZFRva2VuDQorU2V0VG9rZW5JbmZvcm1hdGlvbg0KK1NldFRyYWNlQ2FsbGJhY2sNCitTZXRVc2VyRmlsZUVuY3J5cHRpb25LZXkNCitTdGFydFNlcnZpY2VBDQorU3RhcnRTZXJ2aWNlQ3RybERpc3BhdGNoZXJBDQorU3RhcnRTZXJ2aWNlQ3RybERpc3BhdGNoZXJXDQorU3RhcnRTZXJ2aWNlVw0KK1N0YXJ0VHJhY2VBDQorU3RhcnRUcmFjZVcNCitTdG9wVHJhY2VBDQorU3RvcFRyYWNlVw0KK1N5c3RlbUZ1bmN0aW9uMDAxDQorU3lzdGVtRnVuY3Rpb24wMDINCitTeXN0ZW1GdW5jdGlvbjAwMw0KK1N5c3RlbUZ1bmN0aW9uMDA0DQorU3lzdGVtRnVuY3Rpb24wMDUNCitTeXN0ZW1GdW5jdGlvbjAwNg0KK1N5c3RlbUZ1bmN0aW9uMDA3DQorU3lzdGVtRnVuY3Rpb24wMDgNCitTeXN0ZW1GdW5jdGlvbjAwOQ0KK1N5c3RlbUZ1bmN0aW9uMDEwDQorU3lzdGVtRnVuY3Rpb24wMTENCitTeXN0ZW1GdW5jdGlvbjAxMg0KK1N5c3RlbUZ1bmN0aW9uMDEzDQorU3lzdGVtRnVuY3Rpb24wMTQNCitTeXN0ZW1GdW5jdGlvbjAxNQ0KK1N5c3RlbUZ1bmN0aW9uMDE2DQorU3lzdGVtRnVuY3Rpb24wMTcNCitTeXN0ZW1GdW5jdGlvbjAxOA0KK1N5c3RlbUZ1bmN0aW9uMDE5DQorU3lzdGVtRnVuY3Rpb24wMjANCitTeXN0ZW1GdW5jdGlvbjAyMQ0KK1N5c3RlbUZ1bmN0aW9uMDIyDQorU3lzdGVtRnVuY3Rpb24wMjMNCitTeXN0ZW1GdW5jdGlvbjAyNA0KK1N5c3RlbUZ1bmN0aW9uMDI1DQorU3lzdGVtRnVuY3Rpb24wMjYNCitTeXN0ZW1GdW5jdGlvbjAyNw0KK1N5c3RlbUZ1bmN0aW9uMDI4DQorU3lzdGVtRnVuY3Rpb24wMjkNCitTeXN0ZW1GdW5jdGlvbjAzMA0KK1N5c3RlbUZ1bmN0aW9uMDMxDQorU3lzdGVtRnVuY3Rpb24wMzINCitTeXN0ZW1GdW5jdGlvbjAzMw0KK1N5c3RlbUZ1bmN0aW9uMDM0DQorU3lzdGVtRnVuY3Rpb24wMzUNCitTeXN0ZW1GdW5jdGlvbjAzNg0KK1N5c3RlbUZ1bmN0aW9uMDQwDQorU3lzdGVtRnVuY3Rpb24wNDENCitUcmFjZUV2ZW50DQorVHJhY2VFdmVudEluc3RhbmNlDQorVHJhY2VNZXNzYWdlDQorVHJhY2VNZXNzYWdlVmENCitUcmVlUmVzZXROYW1lZFNlY3VyaXR5SW5mb0ENCitUcmVlUmVzZXROYW1lZFNlY3VyaXR5SW5mb1cNCitUcnVzdGVlQWNjZXNzVG9PYmplY3RBDQorVHJ1c3RlZUFjY2Vzc1RvT2JqZWN0Vw0KK1VuaW5zdGFsbEFwcGxpY2F0aW9uDQorVW5sb2NrU2VydmljZURhdGFiYXNlDQorVW5yZWdpc3RlcklkbGVUYXNrDQorVW5yZWdpc3RlclRyYWNlR3VpZHMNCitVcGRhdGVUcmFjZUENCitVcGRhdGVUcmFjZVcNCitXZG1XbWlTZXJ2aWNlTWFpbg0KK1dtaUNsb3NlQmxvY2sNCitXbWlDbG9zZVRyYWNlV2l0aEN1cnNvcg0KK1dtaUNvbnZlcnRUaW1lc3RhbXANCitXbWlEZXZJbnN0VG9JbnN0YW5jZU5hbWVBDQorV21pRGV2SW5zdFRvSW5zdGFuY2VOYW1lVw0KK1dtaUVudW1lcmF0ZUd1aWRzDQorV21pRXhlY3V0ZU1ldGhvZEENCitXbWlFeGVjdXRlTWV0aG9kVw0KK1dtaUZpbGVIYW5kbGVUb0luc3RhbmNlTmFtZUENCitXbWlGaWxlSGFuZGxlVG9JbnN0YW5jZU5hbWVXDQorV21pRnJlZUJ1ZmZlcg0KK1dtaUdldEZpcnN0VHJhY2VPZmZzZXQNCitXbWlHZXROZXh0RXZlbnQNCitXbWlHZXRUcmFjZUhlYWRlcg0KK1dtaU1vZkVudW1lcmF0ZVJlc291cmNlc0ENCitXbWlNb2ZFbnVtZXJhdGVSZXNvdXJjZXNXDQorV21pTm90aWZpY2F0aW9uUmVnaXN0cmF0aW9uQQ0KK1dtaU5vdGlmaWNhdGlvblJlZ2lzdHJhdGlvblcNCitXbWlPcGVuQmxvY2sNCitXbWlPcGVuVHJhY2VXaXRoQ3Vyc29yDQorV21pUGFyc2VUcmFjZUV2ZW50DQorV21pUXVlcnlBbGxEYXRhQQ0KK1dtaVF1ZXJ5QWxsRGF0YU11bHRpcGxlQQ0KK1dtaVF1ZXJ5QWxsRGF0YU11bHRpcGxlVw0KK1dtaVF1ZXJ5QWxsRGF0YVcNCitXbWlRdWVyeUd1aWRJbmZvcm1hdGlvbg0KK1dtaVF1ZXJ5U2luZ2xlSW5zdGFuY2VBDQorV21pUXVlcnlTaW5nbGVJbnN0YW5jZU11bHRpcGxlQQ0KK1dtaVF1ZXJ5U2luZ2xlSW5zdGFuY2VNdWx0aXBsZVcNCitXbWlRdWVyeVNpbmdsZUluc3RhbmNlVw0KK1dtaVJlY2VpdmVOb3RpZmljYXRpb25zQQ0KK1dtaVJlY2VpdmVOb3RpZmljYXRpb25zVw0KK1dtaVNldFNpbmdsZUluc3RhbmNlQQ0KK1dtaVNldFNpbmdsZUluc3RhbmNlVw0KK1dtaVNldFNpbmdsZUl0ZW1BDQorV21pU2V0U2luZ2xlSXRlbVcNCitXb3c2NFdpbjMyQXBpRW50cnkNCitXcml0ZUVuY3J5cHRlZEZpbGVSYXcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YWR2cGFjay5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YWR2cGFjay5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzQxNDMwOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhZHZwYWNrLmRlZgpAQCAtMCwwICsxLDQwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEFEVlBBQ0suZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEFEVlBBQ0suZGxsDQorRVhQT1JUUw0KK0FkZERlbEJhY2t1cEVudHJ5DQorQWR2SW5zdGFsbEZpbGUNCitDbG9zZUlORkVuZ2luZQ0KK0RlbE5vZGUNCitEZWxOb2RlUnVuRExMMzINCitEbGxNYWluDQorRG9JbmZJbnN0YWxsDQorRXhlY3V0ZUNhYg0KK0V4dHJhY3RGaWxlcw0KK0ZpbGVTYXZlTWFya05vdEV4aXN0DQorRmlsZVNhdmVSZXN0b3JlDQorRmlsZVNhdmVSZXN0b3JlT25JTkYNCitHZXRWZXJzaW9uRnJvbUZpbGUNCitHZXRWZXJzaW9uRnJvbUZpbGVFeA0KK0lzTlRBZG1pbg0KK0xhdW5jaElORlNlY3Rpb24NCitMYXVuY2hJTkZTZWN0aW9uRXgNCitOZWVkUmVib290DQorTmVlZFJlYm9vdEluaXQNCitPcGVuSU5GRW5naW5lDQorUmVib290Q2hlY2tPbkluc3RhbGwNCitSZWdJbnN0YWxsDQorUmVnUmVzdG9yZUFsbA0KK1JlZ1NhdmVSZXN0b3JlDQorUmVnU2F2ZVJlc3RvcmVPbklORg0KK1JlZ2lzdGVyT0NYDQorUnVuU2V0dXBDb21tYW5kDQorU2V0UGVyVXNlclNlY1ZhbHVlcw0KK1RyYW5zbGF0ZUluZlN0cmluZw0KK1RyYW5zbGF0ZUluZlN0cmluZ0V4DQorVXNlckluc3RTdHViV3JhcHBlcg0KK1VzZXJVbkluc3RTdHViV3JhcHBlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dhZWx1cHN2Yy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YWVsdXBzdmMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdlZGJkZDYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YWVsdXBzdmMuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBRUxVUFNWQy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQUVMVVBTVkMuZGxsDQorRVhQT1JUUw0KK1NlcnZpY2VNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2FnZW50YW5tLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhZ2VudGFubS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTgwNTY2NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhZ2VudGFubS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBZ2VudEFubS5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQWdlbnRBbm0uRExMDQorRVhQT1JUUw0KK0NyZWF0ZUFnZW50QW5pbUENCitDcmVhdGVBZ2VudEFuaW1XDQorQ3JlYXRlQWdlbnRSZW5kZXJBDQorQ3JlYXRlQWdlbnRSZW5kZXJXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2FnZW50Y3RsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhZ2VudGN0bC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2I2NmM3MAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhZ2VudGN0bC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBZ2VudEN0bC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQWdlbnRDdGwuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2FnZW50ZHAyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhZ2VudGRwMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOThhYWNkZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhZ2VudGRwMi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBZ2VudERQMi5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQWdlbnREUDIuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2FnZW50ZHB2LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhZ2VudGRwdi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2VjMDgzOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhZ2VudGRwdi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBZ2VudERQdi5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQWdlbnREUHYuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2FnZW50bXB4LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhZ2VudG1weC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmJhZWVlMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhZ2VudG1weC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBZ2VudE1QeC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQWdlbnRNUHguRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2FnZW50cHNoLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhZ2VudHBzaC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTgxMWYzNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhZ2VudHBzaC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBZ2VudFBzaC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQWdlbnRQc2guRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2FnZW50c3IuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2FnZW50c3IuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMwZjJiNzcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YWdlbnRzci5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBZ2VudFNSLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBBZ2VudFNSLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dhZ3RpbnRsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhZ3RpbnRsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NDdlMWRkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2FndGludGwuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQWd0SW50bC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQWd0SW50bC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YWlyMzAwcHAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2FpcjMwMHBwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZjJhNTM3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2FpcjMwMHBwLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGFpcjMwMHBwLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBhaXIzMDBwcC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitBaXJDYXJkRGV2aWNlUHJvcFBhZ2UNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YW0uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2FtLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MTlkMTkxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2FtLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdBTS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgV0FNLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dhbXBzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhbXBzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMzE4NGI0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2FtcHMuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaXNhcGlwcy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaXNhcGlwcy5kbGwNCitFWFBPUlRTDQorR2V0UHJveHlEbGxJbmZvDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YW1yZWcuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2FtcmVnLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNjlhYWE4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2FtcmVnLmRlZgpAQCAtMCwwICsxLDE5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHdhbXJlZy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgd2FtcmVnLkRMTA0KK0VYUE9SVFMNCitDcmVhdGVJSVNQYWNrYWdlDQorRGVsZXRlSUlTUGFja2FnZQ0KK1dhbVJlZ19SZWdpc3RlclNpbmtOb3RpZnkNCitXYW1SZWdfVW5SZWdpc3RlclNpbmtOb3RpZnkNCitJbnN0YWxsV2FtDQorVW5JbnN0YWxsV2FtDQorQ3JlYXRlQ09NUGx1c0FwcGxpY2F0aW9uDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YW1yZWdwcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YW1yZWdwcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjAzMzAwZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhbXJlZ3BzLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdBTVJFR1BTLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXQU1SRUdQUy5ETEwNCitFWFBPUlRTDQorR2V0UHJveHlEbGxJbmZvDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YW1zdHJlYW0uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Ftc3RyZWFtLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYmNhY2NhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2Ftc3RyZWFtLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGFtc3RyZWFtLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBhbXN0cmVhbS5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YXBjdXBzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhcGN1cHMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjliOTA5OWQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YXBjdXBzLmRlZgpAQCAtMCwwICsxLDE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGFwY3Vwcy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgYXBjdXBzLmRsbA0KK0VYUE9SVFMNCitVUFNDYW5jZWxXYWl0DQorVVBTR2V0U3RhdGUNCitVUFNJbml0DQorVVBTU3RvcA0KK1VQU1R1cm5PZmYNCitVUFNXYWl0Rm9yU3RhdGVDaGFuZ2UNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YXBwaGVscC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YXBwaGVscC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTJiOWVkNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhcHBoZWxwLmRlZgpAQCAtMCwwICsxLDE2NiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBhcHBoZWxwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBhcHBoZWxwLmRsbA0KK0VYUE9SVFMNCitBbGxvd1Blcm1MYXllcg0KK0FwcGhlbHBDaGVja0V4ZQ0KK0FwcGhlbHBDaGVja0lNRQ0KK0FwcGhlbHBDaGVja0luc3RhbGxTaGllbGRQYWNrYWdlDQorQXBwaGVscENoZWNrTXNpUGFja2FnZQ0KK0FwcGhlbHBDaGVja1J1bkFwcA0KK0FwcGhlbHBDaGVja1NoZWxsT2JqZWN0DQorQXBwaGVscEZpeE1zaVBhY2thZ2UNCitBcHBoZWxwRml4TXNpUGFja2FnZUV4ZQ0KK0FwcGhlbHBGcmVlRmlsZUF0dHJpYnV0ZXMNCitBcHBoZWxwR2V0RmlsZUF0dHJpYnV0ZXMNCitBcHBoZWxwR2V0TlRWRE1JbmZvDQorQXBwaGVscEdldFNoaW1EZWJ1Z0xldmVsDQorQXBwaGVscFF1ZXJ5TW9kdWxlRGF0YQ0KK0FwcGhlbHBSZWxlYXNlRXhlDQorQXBwaGVscFNob3dEaWFsb2cNCitBcHBoZWxwU2hvd1VJDQorQXBwaGVscFVwZGF0ZUNhY2hlRW50cnkNCitHZXRQZXJtTGF5ZXJzDQorU2RiQmVnaW5Xcml0ZUxpc3RUYWcNCitTZGJCdWlsZENvbXBhdEVudlZhcmlhYmxlcw0KK1NkYkNsb3NlQXBwaGVscEluZm9ybWF0aW9uDQorU2RiQ2xvc2VEYXRhYmFzZQ0KK1NkYkNsb3NlRGF0YWJhc2VXcml0ZQ0KK1NkYkNsb3NlTG9jYWxEYXRhYmFzZQ0KK1NkYkNvbW1pdEluZGV4ZXMNCitTZGJDcmVhdGVEYXRhYmFzZQ0KK1NkYkNyZWF0ZUhlbHBDZW50ZXJVUkwNCitTZGJDcmVhdGVNc2lUcmFuc2Zvcm1GaWxlDQorU2RiRGVjbGFyZUluZGV4DQorU2RiRGVsZXRlUGVybUxheWVyS2V5cw0KK1NkYkVuZFdyaXRlTGlzdFRhZw0KK1NkYkVudW1Nc2lUcmFuc2Zvcm1zDQorU2RiRXNjYXBlQXBwaGVscFVSTA0KK1NkYkZpbmRDdXN0b21BY3Rpb25Gb3JQYWNrYWdlDQorU2RiRmluZEZpcnN0RFdPUkRJbmRleGVkVGFnDQorU2RiRmluZEZpcnN0R1VJREluZGV4ZWRUYWcNCitTZGJGaW5kRmlyc3RNc2lQYWNrYWdlDQorU2RiRmluZEZpcnN0TXNpUGFja2FnZV9TdHINCitTZGJGaW5kRmlyc3ROYW1lZFRhZw0KK1NkYkZpbmRGaXJzdFN0cmluZ0luZGV4ZWRUYWcNCitTZGJGaW5kRmlyc3RUYWcNCitTZGJGaW5kRmlyc3RUYWdSZWYNCitTZGJGaW5kTXNpUGFja2FnZUJ5SUQNCitTZGJGaW5kTmV4dERXT1JESW5kZXhlZFRhZw0KK1NkYkZpbmROZXh0R1VJREluZGV4ZWRUYWcNCitTZGJGaW5kTmV4dE1zaVBhY2thZ2UNCitTZGJGaW5kTmV4dFN0cmluZ0luZGV4ZWRUYWcNCitTZGJGaW5kTmV4dFRhZw0KK1NkYkZpbmROZXh0VGFnUmVmDQorU2RiRm9ybWF0QXR0cmlidXRlDQorU2RiRnJlZURhdGFiYXNlSW5mb3JtYXRpb24NCitTZGJGcmVlRmlsZUF0dHJpYnV0ZXMNCitTZGJGcmVlRmlsZUluZm8NCitTZGJGcmVlRmxhZ0luZm8NCitTZGJHVUlERnJvbVN0cmluZw0KK1NkYkdVSURUb1N0cmluZw0KK1NkYkdldEFwcENvbXBhdERhdGFTaXplDQorU2RiR2V0QXBwUGF0Y2hEaXINCitTZGJHZXRCaW5hcnlUYWdEYXRhDQorU2RiR2V0RGF0YWJhc2VHVUlEDQorU2RiR2V0RGF0YWJhc2VJRA0KK1NkYkdldERhdGFiYXNlSW5mb3JtYXRpb24NCitTZGJHZXREYXRhYmFzZUluZm9ybWF0aW9uQnlOYW1lDQorU2RiR2V0RGF0YWJhc2VNYXRjaA0KK1NkYkdldERhdGFiYXNlVmVyc2lvbg0KK1NkYkdldERsbFBhdGgNCitTZGJHZXRFbnRyeUZsYWdzDQorU2RiR2V0RmlsZUF0dHJpYnV0ZXMNCitTZGJHZXRGaWxlSW5mbw0KK1NkYkdldEZpcnN0Q2hpbGQNCitTZGJHZXRJbWFnZVR5cGUNCitTZGJHZXRJbmRleA0KK1NkYkdldEl0ZW1Gcm9tSXRlbVJlZg0KK1NkYkdldExheWVyTmFtZQ0KK1NkYkdldExheWVyVGFnUmVmDQorU2RiR2V0TG9jYWxQREINCitTZGJHZXRNYXRjaGluZ0V4ZQ0KK1NkYkdldE1zaVBhY2thZ2VJbmZvcm1hdGlvbg0KK1NkYkdldE5hbWVkTGF5ZXINCitTZGJHZXROZXh0Q2hpbGQNCitTZGJHZXROdGhVc2VyU2RiDQorU2RiR2V0UERCRnJvbUdVSUQNCitTZGJHZXRQZXJtTGF5ZXJLZXlzDQorU2RiR2V0U2hvd0RlYnVnSW5mb09wdGlvbg0KK1NkYkdldFNob3dEZWJ1Z0luZm9PcHRpb25WYWx1ZQ0KK1NkYkdldFN0YW5kYXJkRGF0YWJhc2VHVUlEDQorU2RiR2V0U3RyaW5nVGFnUHRyDQorU2RiR2V0VGFnRGF0YVNpemUNCitTZGJHZXRUYWdGcm9tVGFnSUQNCitTZGJHcmFiTWF0Y2hpbmdJbmZvDQorU2RiR3JhYk1hdGNoaW5nSW5mb0V4DQorU2RiSW5pdERhdGFiYXNlDQorU2RiSW5pdERhdGFiYXNlRXgNCitTZGJJc051bGxHVUlEDQorU2RiSXNUYWdyZWZGcm9tTG9jYWxEQg0KK1NkYklzVGFncmVmRnJvbU1haW5EQg0KK1NkYk1ha2VJbmRleEtleUZyb21TdHJpbmcNCitTZGJPcGVuQXBwaGVscERldGFpbHNEYXRhYmFzZQ0KK1NkYk9wZW5BcHBoZWxwRGV0YWlsc0RhdGFiYXNlU1ANCitTZGJPcGVuQXBwaGVscEluZm9ybWF0aW9uDQorU2RiT3BlbkFwcGhlbHBJbmZvcm1hdGlvbkJ5SUQNCitTZGJPcGVuRGF0YWJhc2UNCitTZGJPcGVuTG9jYWxEYXRhYmFzZQ0KK1NkYlBhY2tBcHBDb21wYXREYXRhDQorU2RiUXVlcnlBcHBoZWxwSW5mb3JtYXRpb24NCitTZGJRdWVyeURhdGENCitTZGJRdWVyeURhdGFFeA0KK1NkYlF1ZXJ5RGF0YUV4VGFnSUQNCitTZGJRdWVyeUZsYWdJbmZvDQorU2RiUXVlcnlGbGFnTWFzaw0KK1NkYlJlYWRBcHBoZWxwRGF0YQ0KK1NkYlJlYWRBcHBoZWxwRGV0YWlsc0RhdGENCitTZGJSZWFkQllURVRhZw0KK1NkYlJlYWRCWVRFVGFnUmVmDQorU2RiUmVhZEJpbmFyeVRhZw0KK1NkYlJlYWREV09SRFRhZw0KK1NkYlJlYWREV09SRFRhZ1JlZg0KK1NkYlJlYWRFbnRyeUluZm9ybWF0aW9uDQorU2RiUmVhZE1zaVRyYW5zZm9ybUluZm8NCitTZGJSZWFkUGF0Y2hCaXRzDQorU2RiUmVhZFFXT1JEVGFnDQorU2RiUmVhZFFXT1JEVGFnUmVmDQorU2RiUmVhZFN0cmluZ1RhZw0KK1NkYlJlYWRTdHJpbmdUYWdSZWYNCitTZGJSZWFkV09SRFRhZw0KK1NkYlJlYWRXT1JEVGFnUmVmDQorU2RiUmVnaXN0ZXJEYXRhYmFzZQ0KK1NkYlJlZ2lzdGVyRGF0YWJhc2VFeA0KK1NkYlJlbGVhc2VEYXRhYmFzZQ0KK1NkYlJlbGVhc2VNYXRjaGluZ0V4ZQ0KK1NkYlJlc29sdmVEYXRhYmFzZQ0KK1NkYlNldEFwcGhlbHBEZWJ1Z1BhcmFtZXRlcnMNCitTZGJTZXRFbnRyeUZsYWdzDQorU2RiU2V0SW1hZ2VUeXBlDQorU2RiU2V0UGVybUxheWVyS2V5cw0KK1NkYlNob3dBcHBoZWxwRGlhbG9nDQorU2RiU3RhcnRJbmRleGluZw0KK1NkYlN0b3BJbmRleGluZw0KK1NkYlRhZ0lEVG9UYWdSZWYNCitTZGJUYWdSZWZUb1RhZ0lEDQorU2RiVGFnVG9TdHJpbmcNCitTZGJVbnBhY2tBcHBDb21wYXREYXRhDQorU2RiVW5yZWdpc3RlckRhdGFiYXNlDQorU2RiV3JpdGVCWVRFVGFnDQorU2RiV3JpdGVCaW5hcnlUYWcNCitTZGJXcml0ZUJpbmFyeVRhZ0Zyb21GaWxlDQorU2RiV3JpdGVEV09SRFRhZw0KK1NkYldyaXRlTlVMTFRhZw0KK1NkYldyaXRlUVdPUkRUYWcNCitTZGJXcml0ZVN0cmluZ1JlZlRhZw0KK1NkYldyaXRlU3RyaW5nVGFnDQorU2RiV3JpdGVTdHJpbmdUYWdEaXJlY3QNCitTZGJXcml0ZVdPUkRUYWcNCitTZXRQZXJtTGF5ZXJzDQorU2hpbURiZ1ByaW50DQorU2hpbUR1bXBDYWNoZQ0KK1NoaW1GbHVzaENhY2hlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2FwcG1nbXRzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhcHBtZ210cy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGMzODUxYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhcHBtZ210cy5kZWYKQEAgLTAsMCArMSwyNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBUFBNR01UUy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQVBQTUdNVFMuZGxsDQorRVhQT1JUUw0KK0NzU2V0T3B0aW9ucw0KK0NzQ3JlYXRlQ2xhc3NTdG9yZQ0KK0NzRW51bUFwcHMNCitDc0dldEFwcENhdGVnb3JpZXMNCitDc0dldENsYXNzQWNjZXNzDQorQ3NHZXRDbGFzc1N0b3JlDQorQ3NHZXRDbGFzc1N0b3JlUGF0aA0KK0NzUmVnaXN0ZXJBcHBDYXRlZ29yeQ0KK0NzU2VydmVyR2V0Q2xhc3NTdG9yZQ0KK0NzVW5yZWdpc3RlckFwcENhdGVnb3J5DQorR2VuZXJhdGVHcm91cFBvbGljeQ0KK0lJRF9JQ2xhc3NBZG1pbg0KK1Byb2Nlc3NHcm91cFBvbGljeU9iamVjdHNFeA0KK1JlbGVhc2VBcHBDYXRlZ29yeUluZm9MaXN0DQorUmVsZWFzZVBhY2thZ2VEZXRhaWwNCitSZWxlYXNlUGFja2FnZUluZm8NCitTZXJ2aWNlTWFpbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dhcHBtZ3IuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2FwcG1nci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzc3NTJkOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhcHBtZ3IuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU05BUElOLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTTkFQSU4uRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorR2VuZXJhdGVTY3JpcHQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YXNwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhc3AuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM2YTExOGUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YXNwLmRlZgpAQCAtMCwwICsxLDE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGFzcC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgYXNwLmRsbA0KK0VYUE9SVFMNCitBc3BTdGF0dXNIdG1sRHVtcA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldEV4dGVuc2lvblZlcnNpb24NCitIdHRwRXh0ZW5zaW9uUHJvYw0KK1Rlcm1pbmF0ZUV4dGVuc2lvbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dhc3BwZXJmLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhc3BwZXJmLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iZjBjMGYzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2FzcHBlcmYuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYXNwcGVyZi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgYXNwcGVyZi5kbGwNCitFWFBPUlRTDQorT3BlbkFTUFBlcmZvcm1hbmNlRGF0YQ0KK0NvbGxlY3RBU1BQZXJmb3JtYW5jZURhdGENCitDbG9zZUFTUFBlcmZvcm1hbmNlRGF0YQ0KK1JlZ2lzdGVyQVhTDQorVW5SZWdpc3RlckFYUw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dhc3ljZmlsdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YXN5Y2ZpbHQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZhZmRjM2EKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YXN5Y2ZpbHQuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQVNZQ0ZJTFQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEFTWUNGSUxULmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitGaWx0ZXJDcmVhdGVJbnN0YW5jZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dhdGtjdHJzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhdGtjdHJzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MzkyMDA0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2F0a2N0cnMuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYXRrY3Rycy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgYXRrY3Rycy5kbGwNCitFWFBPUlRTDQorT3BlbkF0a1BlcmZvcm1hbmNlRGF0YQ0KK0NvbGxlY3RBdGtQZXJmb3JtYW5jZURhdGENCitDbG9zZUF0a1BlcmZvcm1hbmNlRGF0YQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dhdGwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2F0bC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2FiNTM5ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhdGwuZGVmCkBAIC0wLDAgKzEsNjAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQVRMLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBBVEwuRExMDQorRVhQT1JUUw0KK0F0bEFkdmlzZQ0KK0F0bFVuYWR2aXNlDQorQXRsRnJlZU1hcnNoYWxTdHJlYW0NCitBdGxNYXJzaGFsUHRySW5Qcm9jDQorQXRsVW5tYXJzaGFsUHRyDQorQXRsTW9kdWxlR2V0Q2xhc3NPYmplY3QNCitBdGxNb2R1bGVJbml0DQorQXRsTW9kdWxlUmVnaXN0ZXJDbGFzc09iamVjdHMNCitBdGxNb2R1bGVSZWdpc3RlclNlcnZlcg0KK0F0bE1vZHVsZVJlZ2lzdGVyVHlwZUxpYg0KK0F0bE1vZHVsZVJldm9rZUNsYXNzT2JqZWN0cw0KK0F0bE1vZHVsZVRlcm0NCitBdGxNb2R1bGVVbnJlZ2lzdGVyU2VydmVyDQorQXRsTW9kdWxlVXBkYXRlUmVnaXN0cnlGcm9tUmVzb3VyY2VEDQorQXRsV2FpdFdpdGhNZXNzYWdlTG9vcA0KK0F0bFNldEVycm9ySW5mbw0KK0F0bENyZWF0ZVRhcmdldERDDQorQXRsSGlNZXRyaWNUb1BpeGVsDQorQXRsUGl4ZWxUb0hpTWV0cmljDQorQXRsRGV2TW9kZVcyQQ0KK0F0bENvbVB0ckFzc2lnbg0KK0F0bENvbVFJUHRyQXNzaWduDQorQXRsSW50ZXJuYWxRdWVyeUludGVyZmFjZQ0KK0RsbENhblVubG9hZE5vdw0KK0F0bEdldFZlcnNpb24NCitBdGxBeERpYWxvZ0JveFcNCitBdGxBeERpYWxvZ0JveEENCitBdGxBeENyZWF0ZURpYWxvZ1cNCitBdGxBeENyZWF0ZURpYWxvZ0ENCitBdGxBeENyZWF0ZUNvbnRyb2wNCitBdGxBeENyZWF0ZUNvbnRyb2xFeA0KK0F0bEF4QXR0YWNoQ29udHJvbA0KK0F0bEF4V2luSW5pdA0KK0F0bE1vZHVsZUFkZENyZWF0ZVduZERhdGENCitBdGxNb2R1bGVFeHRyYWN0Q3JlYXRlV25kRGF0YQ0KK0F0bE1vZHVsZVJlZ2lzdGVyV25kQ2xhc3NJbmZvVw0KK0F0bE1vZHVsZVJlZ2lzdGVyV25kQ2xhc3NJbmZvQQ0KK0F0bEF4R2V0Q29udHJvbA0KK0F0bEF4R2V0SG9zdA0KK0F0bFJlZ2lzdGVyQ2xhc3NDYXRlZ29yaWVzSGVscGVyDQorQXRsSVBlcnNpc3RTdHJlYW1Jbml0X0xvYWQNCitBdGxJUGVyc2lzdFN0cmVhbUluaXRfU2F2ZQ0KK0F0bElQZXJzaXN0UHJvcGVydHlCYWdfTG9hZA0KK0F0bElQZXJzaXN0UHJvcGVydHlCYWdfU2F2ZQ0KK0F0bEdldE9iamVjdFNvdXJjZUludGVyZmFjZQ0KK0F0bE1vZHVsZVVuUmVnaXN0ZXJUeXBlTGliDQorQXRsTW9kdWxlTG9hZFR5cGVMaWINCitBdGxNb2R1bGVVbnJlZ2lzdGVyU2VydmVyRXgNCitBdGxNb2R1bGVBZGRUZXJtRnVuYw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2F0bWxpYi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YXRtbGliLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iZTFlYzBiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2F0bWxpYi5kZWYKQEAgLTAsMCArMSw4NCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBVE1MSUIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEFUTUxJQi5kbGwNCitFWFBPUlRTDQorQVRNQWRkRm9udA0KK0FUTUFkZEZvbnRBDQorQVRNQWRkRm9udEV4DQorQVRNQWRkRm9udEV4QQ0KK0FUTUFkZEZvbnRFeFcNCitBVE1BZGRGb250Vw0KK0FUTUJCb3hCYXNlWFlTaG93VGV4dA0KK0FUTUJCb3hCYXNlWFlTaG93VGV4dEENCitBVE1CQm94QmFzZVhZU2hvd1RleHRXDQorQVRNQmVnaW5Gb250Q2hhbmdlDQorQVRNQ2xpZW50DQorQVRNRW5kRm9udENoYW5nZQ0KK0FUTUVudW1Gb250cw0KK0FUTUVudW1Gb250c0ENCitBVE1FbnVtRm9udHNXDQorQVRNRW51bU1NRm9udHMNCitBVE1FbnVtTU1Gb250c0ENCitBVE1FbnVtTU1Gb250c1cNCitBVE1GaW5pc2gNCitBVE1Gb250QXZhaWxhYmxlDQorQVRNRm9udEF2YWlsYWJsZUENCitBVE1Gb250QXZhaWxhYmxlVw0KK0FUTUZvbnRTZWxlY3RlZA0KK0FUTUZvbnRTdGF0dXMNCitBVE1Gb250U3RhdHVzQQ0KK0FUTUZvbnRTdGF0dXNXDQorQVRNRm9yY2VGb250Q2hhbmdlDQorQVRNR2V0QnVpbGRTdHINCitBVE1HZXRCdWlsZFN0ckENCitBVE1HZXRCdWlsZFN0clcNCitBVE1HZXRGb250QkJveA0KK0FUTUdldEZvbnRJbmZvDQorQVRNR2V0Rm9udEluZm9BDQorQVRNR2V0Rm9udEluZm9XDQorQVRNR2V0Rm9udFBhdGhzDQorQVRNR2V0Rm9udFBhdGhzQQ0KK0FUTUdldEZvbnRQYXRoc1cNCitBVE1HZXRHbHlwaExpc3QNCitBVE1HZXRHbHlwaExpc3RBDQorQVRNR2V0R2x5cGhMaXN0Vw0KK0FUTUdldE1lbnVOYW1lDQorQVRNR2V0TWVudU5hbWVBDQorQVRNR2V0TWVudU5hbWVXDQorQVRNR2V0TnRtRmllbGRzDQorQVRNR2V0TnRtRmllbGRzQQ0KK0FUTUdldE50bUZpZWxkc1cNCitBVE1HZXRPdXRsaW5lDQorQVRNR2V0T3V0bGluZUENCitBVE1HZXRPdXRsaW5lVw0KK0FUTUdldFBvc3RTY3JpcHROYW1lDQorQVRNR2V0UG9zdFNjcmlwdE5hbWVBDQorQVRNR2V0UG9zdFNjcmlwdE5hbWVXDQorQVRNR2V0VmVyc2lvbg0KK0FUTUdldFZlcnNpb25FeA0KK0FUTUdldFZlcnNpb25FeEENCitBVE1HZXRWZXJzaW9uRXhXDQorQVRNSW5zdGFsbFN1YnN0Rm9udEENCitBVE1JbnN0YWxsU3Vic3RGb250Vw0KK0FUTU1ha2VQRk0NCitBVE1NYWtlUEZNQQ0KK0FUTU1ha2VQRk1XDQorQVRNTWFrZVBTUw0KK0FUTU1ha2VQU1NBDQorQVRNTWFrZVBTU1cNCitBVE1Qcm9wZXJseUxvYWRlZA0KK0FUTVJlbW92ZUZvbnQNCitBVE1SZW1vdmVGb250QQ0KK0FUTVJlbW92ZUZvbnRXDQorQVRNUmVtb3ZlU3Vic3RGb250QQ0KK0FUTVJlbW92ZVN1YnN0Rm9udFcNCitBVE1TZWxlY3RFbmNvZGluZw0KK0FUTVNlbGVjdE9iamVjdA0KK0FUTVNldEZsYWdzDQorQVRNWFlTaG93VGV4dA0KK0FUTVhZU2hvd1RleHRBDQorQVRNWFlTaG93VGV4dFcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YXRtcHZjbm8uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2F0bXB2Y25vLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMjE0Yzc4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2F0bXB2Y25vLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNGSUxURVIyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTRklMVEVSMi5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YXVkaW9kZXYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2F1ZGlvZGV2LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NGY5OGVkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2F1ZGlvZGV2LmRlZgpAQCAtMCwwICsxLDM0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNITUVESUEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNITUVESUEuZGxsDQorRVhQT1JUUw0KK19DRGVmRm9sZGVyTWVudV9NZXJnZU1lbnVAMTYNCitfQ0lETERhdGFfQ3JlYXRlRnJvbUlEQXJyYXlAMTYNCitfQ29ubmVjdFRvQ29ubmVjdGlvblBvaW50QDI0DQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitfR1VJREZyb21TdHJpbmdXQDgNCitfR2V0VUlWZXJzaW9uQDANCitfSVVua25vd25fQXRvbWljUmVsZWFzZUA0DQorX0lVbmtub3duX0dldFdpbmRvd0A4DQorX0lVbmtub3duX1F1ZXJ5U2VydmljZUAxNg0KK19JVW5rbm93bl9TZXRAOA0KK19JVW5rbm93bl9TZXRTaXRlQDgNCitfSXNPU0A0DQorX1BhcnNlVVJMV0A4DQorX1NIQW5zaVRvVW5pY29kZUAxMg0KK19TSENvQ3JlYXRlSW5zdGFuY2VBQ0AyMA0KK19TSEZvcm1hdERhdGVUaW1lV0AxNg0KK19TSEdldE1lbnVGcm9tSURAOA0KK19TSEdldE9iamVjdENvbXBhdEZsYWdzQDgNCitfU0hJbnZva2VDb21tYW5kT25Db250ZXh0TWVudUAyMA0KK19TSEludm9rZUNvbW1hbmRzT25Db250ZXh0TWVudUAyNA0KK19TSExvYWRSZWdVSVN0cmluZ1dAMTYNCitfU0hTdHJpbmdGcm9tR1VJRFdAMTINCitfU0hVbmljb2RlVG9BbnNpQDEyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2F1ZGlvc3J2LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dhdWRpb3Nydi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmUyYjEwNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhdWRpb3Nydi5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBVURJT1NSVi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQVVESU9TUlYuZGxsDQorRVhQT1JUUw0KK1NlcnZpY2VNYWluDQorU3ZjaG9zdFB1c2hTZXJ2aWNlR2xvYmFscw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dhdXRoei5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YXV0aHouZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdmMzRjYWQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YXV0aHouZGVmCkBAIC0wLDAgKzEsNDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQVVUSFouZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEFVVEhaLmRsbA0KK0VYUE9SVFMNCitBdXRoekFjY2Vzc0NoZWNrDQorQXV0aHpBZGRTaWRzVG9Db250ZXh0DQorQXV0aHpDYWNoZWRBY2Nlc3NDaGVjaw0KK0F1dGh6RW51bWVyYXRlU2VjdXJpdHlFdmVudFNvdXJjZXMNCitBdXRoekZyZWVBdWRpdEV2ZW50DQorQXV0aHpGcmVlQ29udGV4dA0KK0F1dGh6RnJlZUhhbmRsZQ0KK0F1dGh6RnJlZVJlc291cmNlTWFuYWdlcg0KK0F1dGh6R2V0SW5mb3JtYXRpb25Gcm9tQ29udGV4dA0KK0F1dGh6SW5pdGlhbGl6ZUNvbnRleHRGcm9tQXV0aHpDb250ZXh0DQorQXV0aHpJbml0aWFsaXplQ29udGV4dEZyb21TaWQNCitBdXRoekluaXRpYWxpemVDb250ZXh0RnJvbVRva2VuDQorQXV0aHpJbml0aWFsaXplT2JqZWN0QWNjZXNzQXVkaXRFdmVudA0KK0F1dGh6SW5pdGlhbGl6ZU9iamVjdEFjY2Vzc0F1ZGl0RXZlbnQyDQorQXV0aHpJbml0aWFsaXplUmVzb3VyY2VNYW5hZ2VyDQorQXV0aHpJbnN0YWxsU2VjdXJpdHlFdmVudFNvdXJjZQ0KK0F1dGh6T3Blbk9iamVjdEF1ZGl0DQorQXV0aHpSZWdpc3RlclNlY3VyaXR5RXZlbnRTb3VyY2UNCitBdXRoelJlcG9ydFNlY3VyaXR5RXZlbnQNCitBdXRoelJlcG9ydFNlY3VyaXR5RXZlbnRGcm9tUGFyYW1zDQorQXV0aHpVbmluc3RhbGxTZWN1cml0eUV2ZW50U291cmNlDQorQXV0aHpVbnJlZ2lzdGVyU2VjdXJpdHlFdmVudFNvdXJjZQ0KK0F1dGh6aUFsbG9jYXRlQXVkaXRQYXJhbXMNCitBdXRoemlGcmVlQXVkaXRFdmVudFR5cGUNCitBdXRoemlGcmVlQXVkaXRQYXJhbXMNCitBdXRoemlGcmVlQXVkaXRRdWV1ZQ0KK0F1dGh6aUluaXRpYWxpemVBdWRpdEV2ZW50DQorQXV0aHppSW5pdGlhbGl6ZUF1ZGl0RXZlbnRUeXBlDQorQXV0aHppSW5pdGlhbGl6ZUF1ZGl0UGFyYW1zDQorQXV0aHppSW5pdGlhbGl6ZUF1ZGl0UGFyYW1zRnJvbUFycmF5DQorQXV0aHppSW5pdGlhbGl6ZUF1ZGl0UGFyYW1zV2l0aFJNDQorQXV0aHppSW5pdGlhbGl6ZUF1ZGl0UXVldWUNCitBdXRoemlJbml0aWFsaXplQ29udGV4dEZyb21TaWQNCitBdXRoemlMb2dBdWRpdEV2ZW50DQorQXV0aHppTW9kaWZ5QXVkaXRFdmVudDINCitBdXRoemlNb2RpZnlBdWRpdEV2ZW50DQorQXV0aHppTW9kaWZ5QXVkaXRFdmVudFR5cGUNCitBdXRoemlNb2RpZnlBdWRpdFF1ZXVlDQorQXV0aHppUXVlcnlBdWRpdFBvbGljeQ0KK0F1dGh6aVNldEF1ZGl0UG9saWN5DQorQXV0aHppU291cmNlQXVkaXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YXV0b2Rpc2MuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2F1dG9kaXNjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43M2IyMzU4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2F1dG9kaXNjLmRlZgpAQCAtMCwwICsxLDE1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEF1dG9EaXNjLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBBdXRvRGlzYy5kbGwNCitFWFBPUlRTDQorQWRkRW1haWxUb0F1dG9Db21wbGV0ZQ0KK0F1dG9EaXNjb3ZlckFuZE9wZW5FbWFpbA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dhdmVtc3AuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2F2ZW1zcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDU1NzIxNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhdmVtc3AuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgd2F2ZW1zcC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgd2F2ZW1zcC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YXZpY2FwMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2F2aWNhcDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lN2MxMWYwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2F2aWNhcDMyLmRlZgpAQCAtMCwwICsxLDE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEFWSUNBUDMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBBVklDQVAzMi5kbGwNCitFWFBPUlRTDQorQXBwQ2xlYW51cA0KK2NhcENyZWF0ZUNhcHR1cmVXaW5kb3dBDQorY2FwQ3JlYXRlQ2FwdHVyZVdpbmRvd1cNCitjYXBHZXREcml2ZXJEZXNjcmlwdGlvbkENCitjYXBHZXREcml2ZXJEZXNjcmlwdGlvblcNCit2aWRlb1RodW5rMzINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YXZpZmlsMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2F2aWZpbDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNjlmNGUwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2F2aWZpbDMyLmRlZgpAQCAtMCwwICsxLDg0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEFWSUZJTDMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBBVklGSUwzMi5kbGwNCitFWFBPUlRTDQorQVZJQnVpbGRGaWx0ZXINCitBVklCdWlsZEZpbHRlckENCitBVklCdWlsZEZpbHRlclcNCitBVklDbGVhckNsaXBib2FyZA0KK0FWSUZpbGVBZGRSZWYNCitBVklGaWxlQ3JlYXRlU3RyZWFtDQorQVZJRmlsZUNyZWF0ZVN0cmVhbUENCitBVklGaWxlQ3JlYXRlU3RyZWFtVw0KK0FWSUZpbGVFbmRSZWNvcmQNCitBVklGaWxlRXhpdA0KK0FWSUZpbGVHZXRTdHJlYW0NCitBVklGaWxlSW5mbw0KK0FWSUZpbGVJbmZvQQ0KK0FWSUZpbGVJbmZvVw0KK0FWSUZpbGVJbml0DQorQVZJRmlsZU9wZW4NCitBVklGaWxlT3BlbkENCitBVklGaWxlT3BlblcNCitBVklGaWxlUmVhZERhdGENCitBVklGaWxlUmVsZWFzZQ0KK0FWSUZpbGVXcml0ZURhdGENCitBVklHZXRGcm9tQ2xpcGJvYXJkDQorQVZJTWFrZUNvbXByZXNzZWRTdHJlYW0NCitBVklNYWtlRmlsZUZyb21TdHJlYW1zDQorQVZJTWFrZVN0cmVhbUZyb21DbGlwYm9hcmQNCitBVklQdXRGaWxlT25DbGlwYm9hcmQNCitBVklTYXZlDQorQVZJU2F2ZUENCitBVklTYXZlT3B0aW9ucw0KK0FWSVNhdmVPcHRpb25zRnJlZQ0KK0FWSVNhdmVWDQorQVZJU2F2ZVZBDQorQVZJU2F2ZVZXDQorQVZJU2F2ZVcNCitBVklTdHJlYW1BZGRSZWYNCitBVklTdHJlYW1CZWdpblN0cmVhbWluZw0KK0FWSVN0cmVhbUNyZWF0ZQ0KK0FWSVN0cmVhbUVuZFN0cmVhbWluZw0KK0FWSVN0cmVhbUZpbmRTYW1wbGUNCitBVklTdHJlYW1HZXRGcmFtZQ0KK0FWSVN0cmVhbUdldEZyYW1lQ2xvc2UNCitBVklTdHJlYW1HZXRGcmFtZU9wZW4NCitBVklTdHJlYW1JbmZvDQorQVZJU3RyZWFtSW5mb0ENCitBVklTdHJlYW1JbmZvVw0KK0FWSVN0cmVhbUxlbmd0aA0KK0FWSVN0cmVhbU9wZW5Gcm9tRmlsZQ0KK0FWSVN0cmVhbU9wZW5Gcm9tRmlsZUENCitBVklTdHJlYW1PcGVuRnJvbUZpbGVXDQorQVZJU3RyZWFtUmVhZA0KK0FWSVN0cmVhbVJlYWREYXRhDQorQVZJU3RyZWFtUmVhZEZvcm1hdA0KK0FWSVN0cmVhbVJlbGVhc2UNCitBVklTdHJlYW1TYW1wbGVUb1RpbWUNCitBVklTdHJlYW1TZXRGb3JtYXQNCitBVklTdHJlYW1TdGFydA0KK0FWSVN0cmVhbVRpbWVUb1NhbXBsZQ0KK0FWSVN0cmVhbVdyaXRlDQorQVZJU3RyZWFtV3JpdGVEYXRhDQorQ3JlYXRlRWRpdGFibGVTdHJlYW0NCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0VkaXRTdHJlYW1DbG9uZQ0KK0VkaXRTdHJlYW1Db3B5DQorRWRpdFN0cmVhbUN1dA0KK0VkaXRTdHJlYW1QYXN0ZQ0KK0VkaXRTdHJlYW1TZXRJbmZvDQorRWRpdFN0cmVhbVNldEluZm9BDQorRWRpdFN0cmVhbVNldEluZm9XDQorRWRpdFN0cmVhbVNldE5hbWUNCitFZGl0U3RyZWFtU2V0TmFtZUENCitFZGl0U3RyZWFtU2V0TmFtZVcNCitJSURfSUFWSUVkaXRTdHJlYW0NCitJSURfSUFWSUZpbGUNCitJSURfSUFWSVN0cmVhbQ0KK0lJRF9JR2V0RnJhbWUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YXZtY294cC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YXZtY294cC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWJiMmMzNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhdm1jb3hwLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQVZNQ09JTlMuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEFWTUNPSU5TLkRMTA0KK0VYUE9SVFMNCitBVk1Db0luc3RhbGwNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YXpyb2xlcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YXpyb2xlcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTdhZmRmNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dhenJvbGVzLmRlZgpAQCAtMCwwICsxLDUyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGF6cm9sZXMuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGF6cm9sZXMuRExMDQorRVhQT1JUUw0KK0F6QWRkUHJvcGVydHlJdGVtDQorQXpBcHBsaWNhdGlvbkNsb3NlDQorQXpBcHBsaWNhdGlvbkNyZWF0ZQ0KK0F6QXBwbGljYXRpb25EZWxldGUNCitBekFwcGxpY2F0aW9uRW51bQ0KK0F6QXBwbGljYXRpb25PcGVuDQorQXpBdXRob3JpemF0aW9uU3RvcmVEZWxldGUNCitBekNsb3NlSGFuZGxlDQorQXpDb250ZXh0QWNjZXNzQ2hlY2sNCitBekNvbnRleHRHZXRBc3NpZ25lZFNjb3Blc1BhZ2UNCitBekNvbnRleHRHZXRSb2xlcw0KK0F6RnJlZU1lbW9yeQ0KK0F6R2V0UHJvcGVydHkNCitBekdyb3VwQ3JlYXRlDQorQXpHcm91cERlbGV0ZQ0KK0F6R3JvdXBFbnVtDQorQXpHcm91cE9wZW4NCitBekluaXRpYWxpemUNCitBekluaXRpYWxpemVDb250ZXh0RnJvbU5hbWUNCitBekluaXRpYWxpemVDb250ZXh0RnJvbVRva2VuDQorQXpPcGVyYXRpb25DcmVhdGUNCitBek9wZXJhdGlvbkRlbGV0ZQ0KK0F6T3BlcmF0aW9uRW51bQ0KK0F6T3BlcmF0aW9uT3Blbg0KK0F6UmVtb3ZlUHJvcGVydHlJdGVtDQorQXpSb2xlQ3JlYXRlDQorQXpSb2xlRGVsZXRlDQorQXpSb2xlRW51bQ0KK0F6Um9sZU9wZW4NCitBelNjb3BlQ3JlYXRlDQorQXpTY29wZURlbGV0ZQ0KK0F6U2NvcGVFbnVtDQorQXpTY29wZU9wZW4NCitBelNldFByb3BlcnR5DQorQXpTdWJtaXQNCitBelRhc2tDcmVhdGUNCitBelRhc2tEZWxldGUNCitBelRhc2tFbnVtDQorQXpUYXNrT3Blbg0KK0F6VXBkYXRlQ2FjaGUNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dhenJvbGV1aS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YXpyb2xldWkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI5ZWZkZjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YXpyb2xldWkuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYXpyb2xldWkuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGF6cm9sZXVpLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3diYXRtZXRlci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YmF0bWV0ZXIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQxNTMwMmMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YmF0bWV0ZXIuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQmF0TWV0ZXIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEJhdE1ldGVyLmRsbA0KK0VYUE9SVFMNCitCYXRNZXRlckNhcGFiaWxpdGllcw0KK0NyZWF0ZUJhdE1ldGVyDQorRGVzdHJveUJhdE1ldGVyDQorUG93ZXJDYXBhYmlsaXRpZXMNCitVcGRhdGVCYXRNZXRlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3diYXR0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3diYXR0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMWVkZDI0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2JhdHQuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYmF0dC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgYmF0dC5kbGwNCitFWFBPUlRTDQorQmF0dGVyeUNsYXNzQ29JbnN0YWxsZXINCitCYXR0ZXJ5Q2xhc3NJbnN0YWxsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2Jja2cuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Jja2cuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAwYTQ4ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YmNrZy5kZWYKQEAgLTAsMCArMSwyMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBCYWNrZ2FtbW9uLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBCYWNrZ2FtbW9uLmRsbA0KK0VYUE9SVFMNCitab25lQ2xpZW50RXhpdA0KK1pvbmVDbGllbnRHYW1lQWRkS2liaXR6ZXINCitab25lQ2xpZW50R2FtZURlbGV0ZQ0KK1pvbmVDbGllbnRHYW1lTmV3DQorWm9uZUNsaWVudEdhbWVQcm9jZXNzTWVzc2FnZQ0KK1pvbmVDbGllbnRHYW1lUmVtb3ZlS2liaXR6ZXINCitab25lQ2xpZW50SW50ZXJuYWxOYW1lDQorWm9uZUNsaWVudE1haW4NCitab25lQ2xpZW50TWVzc2FnZUhhbmRsZXINCitab25lQ2xpZW50TmFtZQ0KK1pvbmVDbGllbnRWZXJzaW9uDQorWm9uZUdhbWVEbGxEZWxldGUNCitab25lR2FtZURsbEluaXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YmNrZ3Jlcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YmNrZ3Jlcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjFmYzJiNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3diY2tncmVzLmRlZgpAQCAtMCwwICsxLDggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQmFja2dhbW1vblJlcy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQmFja2dhbW1vblJlcy5kbGwNCitFWFBPUlRTDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2JlbWNudGwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2JlbWNudGwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU2OTNmMjQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YmVtY250bC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBXYmVtQ250bC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgV2JlbUNudGwuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2JlbWNvbW4uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2JlbWNvbW4uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA0ODVmZTUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YmVtY29tbi5kZWYKQEAgLTAsMCArMSwyMzE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHdiZW1jb21uLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSB3YmVtY29tbi5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0xvY2thYmxlRmxleEFycmF5PGNsYXNzIENTdGF0aWNDcml0U2VjPjo6Q0xvY2thYmxlRmxleEFycmF5PGNsYXNzIENTdGF0aWNDcml0U2VjPihjbGFzcyBDTG9ja2FibGVGbGV4QXJyYXk8Y2xhc3MgQ1N0YXRpY0NyaXRTZWM+ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MD8kQ0xvY2thYmxlRmxleEFycmF5QFZDU3RhdGljQ3JpdFNlY0BAQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0xvY2thYmxlRmxleEFycmF5PGNsYXNzIENTdGF0aWNDcml0U2VjPjo6Q0xvY2thYmxlRmxleEFycmF5PGNsYXNzIENTdGF0aWNDcml0U2VjPih2b2lkKSBfX3B0cjY0DQorPz8wPyRDTG9ja2FibGVGbGV4QXJyYXlAVkNTdGF0aWNDcml0U2VjQEBAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDOVhBY2U6OkM5WEFjZShjbGFzcyBDOVhBY2UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQzlYQWNlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQzlYQWNlOjpDOVhBY2UodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQzlYQWNlQEBRRUFBQEtLS1BFQUdAWg0KKzsgcHVibGljOiBfX2NkZWNsIEM5WEFjZTo6QzlYQWNlKHZvaWQpIF9fcHRyNjQNCis/PzBDOVhBY2VAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQWJzdHJhY3RRbDFQYXJzZXI6OkNBYnN0cmFjdFFsMVBhcnNlcihjbGFzcyBDQWJzdHJhY3RRbDFQYXJzZXIgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0Fic3RyYWN0UWwxUGFyc2VyQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjpDQWJzdHJhY3RRbDFQYXJzZXIoY2xhc3MgQ0dlbkxleFNvdXJjZSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQWJzdHJhY3RRbDFQYXJzZXJAQFFFQUFAUEVBVkNHZW5MZXhTb3VyY2VAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0FyZW5hOjpDQXJlbmEoY2xhc3MgQ0FyZW5hIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENBcmVuYUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENBcmVuYTo6Q0FyZW5hKHZvaWQpIF9fcHRyNjQNCis/PzBDQXJlbmFAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQmFzZUFjZTo6Q0Jhc2VBY2UoY2xhc3MgQ0Jhc2VBY2UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0Jhc2VBY2VAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQmFzZUFjZTo6Q0Jhc2VBY2Uodm9pZCkgX19wdHI2NA0KKz8/MENCYXNlQWNlQEBRRUFBQFhaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQ0Jhc2ljVW5sb2FkSW5zdHJ1Y3Rpb246OkNCYXNpY1VubG9hZEluc3RydWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzBDQmFzaWNVbmxvYWRJbnN0cnVjdGlvbkBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENCYXNpY1VubG9hZEluc3RydWN0aW9uOjpDQmFzaWNVbmxvYWRJbnN0cnVjdGlvbihjbGFzcyBDQmFzaWNVbmxvYWRJbnN0cnVjdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQmFzaWNVbmxvYWRJbnN0cnVjdGlvbkBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENCYXNpY1VubG9hZEluc3RydWN0aW9uOjpDQmFzaWNVbmxvYWRJbnN0cnVjdGlvbihjbGFzcyBDV2JlbUludGVydmFsKSBfX3B0cjY0DQorPz8wQ0Jhc2ljVW5sb2FkSW5zdHJ1Y3Rpb25AQFFFQUFAVkNXYmVtSW50ZXJ2YWxAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0J1ZmZlcjo6Q0J1ZmZlcihjbGFzcyBDQnVmZmVyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENCdWZmZXJAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQnVmZmVyOjpDQnVmZmVyKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsaW50KSBfX3B0cjY0DQorPz8wQ0J1ZmZlckBAUUVBQUBQRUFFS0hAWg0KKzsgcHVibGljOiBfX2NkZWNsIENDaGVja2VkSW5Dcml0U2VjOjpDQ2hlY2tlZEluQ3JpdFNlYyhjbGFzcyBDQ3JpdFNlYyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQ2hlY2tlZEluQ3JpdFNlY0BAUUVBQUBQRUFWQ0NyaXRTZWNAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NvbnRhaW5lckNvbnRyb2w6OkNDb250YWluZXJDb250cm9sKGNsYXNzIENDb250YWluZXJDb250cm9sIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENDb250YWluZXJDb250cm9sQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NvbnRhaW5lckNvbnRyb2w6OkNDb250YWluZXJDb250cm9sKHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQ29udGFpbmVyQ29udHJvbEBAUUVBQUBQRUFVSVVua25vd25AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NyaXRTZWM6OkNDcml0U2VjKHZvaWQpIF9fcHRyNjQNCis/PzBDQ3JpdFNlY0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENETVRGUGFyc2VyOjpDRE1URlBhcnNlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRE1URlBhcnNlckBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRGF0ZVBhcnQ6OkNEYXRlUGFydCh2b2lkKSBfX3B0cjY0DQorPz8wQ0RhdGVQYXJ0QEBRRUFBQFhaDQorOyBwcm90ZWN0ZWQ6IF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpDRGF0ZVRpbWVQYXJzZXIodm9pZCkgX19wdHI2NA0KKz8/MENEYXRlVGltZVBhcnNlckBASUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENEYXRlVGltZVBhcnNlcjo6Q0RhdGVUaW1lUGFyc2VyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENEYXRlVGltZVBhcnNlckBAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRW50ZXJXYmVtQ3JpdGljYWxTZWN0aW9uOjpDRW50ZXJXYmVtQ3JpdGljYWxTZWN0aW9uKGNsYXNzIENXYmVtQ3JpdGljYWxTZWN0aW9uICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wQ0VudGVyV2JlbUNyaXRpY2FsU2VjdGlvbkBAUUVBQUBQRUFWQ1diZW1Dcml0aWNhbFNlY3Rpb25AQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIENFdmVudExvZzo6Q0V2ZW50TG9nKGNsYXNzIENFdmVudExvZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDRXZlbnRMb2dAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXZlbnRMb2c6OkNFdmVudExvZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/PzBDRXZlbnRMb2dAQFFFQUFAUEVCRzBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXZlbnRMb2dSZWNvcmQ6OkNFdmVudExvZ1JlY29yZChjbGFzcyBDRXZlbnRMb2dSZWNvcmQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0V2ZW50TG9nUmVjb3JkQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0V2ZW50TG9nUmVjb3JkOjpDRXZlbnRMb2dSZWNvcmQodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyxjbGFzcyBDSW5zZXJ0aW9uU3RyaW5nLGNsYXNzIENJbnNlcnRpb25TdHJpbmcsY2xhc3MgQ0luc2VydGlvblN0cmluZyxjbGFzcyBDSW5zZXJ0aW9uU3RyaW5nLGNsYXNzIENJbnNlcnRpb25TdHJpbmcsY2xhc3MgQ0luc2VydGlvblN0cmluZyxjbGFzcyBDSW5zZXJ0aW9uU3RyaW5nLGNsYXNzIENJbnNlcnRpb25TdHJpbmcsY2xhc3MgQ0luc2VydGlvblN0cmluZyxjbGFzcyBDSW5zZXJ0aW9uU3RyaW5nKSBfX3B0cjY0DQorPz8wQ0V2ZW50TG9nUmVjb3JkQEBRRUFBQEdLVkNJbnNlcnRpb25TdHJpbmdAQDAwMDAwMDAwMEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0V4ZWNRdWV1ZTo6Q0V4ZWNRdWV1ZShjbGFzcyBDRXhlY1F1ZXVlICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENFeGVjUXVldWVAQFFFQUFAQUVBVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXhlY1F1ZXVlOjpDRXhlY1F1ZXVlKHZvaWQpIF9fcHRyNjQNCis/PzBDRXhlY1F1ZXVlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0V4ZWNSZXF1ZXN0OjpDRXhlY1JlcXVlc3QoY2xhc3MgQ0V4ZWNSZXF1ZXN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENFeGVjUmVxdWVzdEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENFeGVjUmVxdWVzdDo6Q0V4ZWNSZXF1ZXN0KHZvaWQpIF9fcHRyNjQNCis/PzBDRXhlY1JlcXVlc3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRmxleEFycmF5OjpDRmxleEFycmF5KGNsYXNzIENGbGV4QXJyYXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0ZsZXhBcnJheUBAUUVBQUBBRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENGbGV4QXJyYXk6OkNGbGV4QXJyYXkoaW50LGludCkgX19wdHI2NA0KKz8/MENGbGV4QXJyYXlAQFFFQUFASEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIENGbGV4UXVldWU6OkNGbGV4UXVldWUoaW50KSBfX3B0cjY0DQorPz8wQ0ZsZXhRdWV1ZUBAUUVBQUBIQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSGFsdGFibGU6OkNIYWx0YWJsZShjbGFzcyBDSGFsdGFibGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0hhbHRhYmxlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0hhbHRhYmxlOjpDSGFsdGFibGUodm9pZCkgX19wdHI2NA0KKz8/MENIYWx0YWJsZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENIZXg6OkNIZXgobG9uZykgX19wdHI2NA0KKz8/MENIZXhAQFFFQUFASkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lkZW50aXR5U2VjdXJpdHk6OkNJZGVudGl0eVNlY3VyaXR5KGNsYXNzIENJZGVudGl0eVNlY3VyaXR5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENJZGVudGl0eVNlY3VyaXR5QEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lkZW50aXR5U2VjdXJpdHk6OkNJZGVudGl0eVNlY3VyaXR5KGJvb2wpIF9fcHRyNjQNCis/PzBDSWRlbnRpdHlTZWN1cml0eUBAUUVBQUBfTkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lkZW50aXR5VGVzdDo6Q0lkZW50aXR5VGVzdChjbGFzcyBDSWRlbnRpdHlUZXN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENJZGVudGl0eVRlc3RAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSWRlbnRpdHlUZXN0OjpDSWRlbnRpdHlUZXN0KGNsYXNzIENUaW1lckluc3RydWN0aW9uICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENJZGVudGl0eVRlc3RAQFFFQUFAUEVBVkNUaW1lckluc3RydWN0aW9uQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbkNyaXRTZWM6OkNJbkNyaXRTZWMoc3RydWN0IF9SVExfQ1JJVElDQUxfU0VDVElPTiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSW5Dcml0U2VjQEBRRUFBQFBFQVVfUlRMX0NSSVRJQ0FMX1NFQ1RJT05AQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0luc2VydGlvblN0cmluZzo6Q0luc2VydGlvblN0cmluZyhjbGFzcyBDSW5zZXJ0aW9uU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENJbnNlcnRpb25TdHJpbmdAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW5zZXJ0aW9uU3RyaW5nOjpDSW5zZXJ0aW9uU3RyaW5nKGxvbmcpIF9fcHRyNjQNCis/PzBDSW5zZXJ0aW9uU3RyaW5nQEBRRUFBQEpAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbnNlcnRpb25TdHJpbmc6OkNJbnNlcnRpb25TdHJpbmcoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDSW5zZXJ0aW9uU3RyaW5nQEBRRUFBQFBFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbnNlcnRpb25TdHJpbmc6OkNJbnNlcnRpb25TdHJpbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0luc2VydGlvblN0cmluZ0BAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW5zZXJ0aW9uU3RyaW5nOjpDSW5zZXJ0aW9uU3RyaW5nKGNsYXNzIENIZXgpIF9fcHRyNjQNCis/PzBDSW5zZXJ0aW9uU3RyaW5nQEBRRUFBQFZDSGV4QEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbnNlcnRpb25TdHJpbmc6OkNJbnNlcnRpb25TdHJpbmcodm9pZCkgX19wdHI2NA0KKz8/MENJbnNlcnRpb25TdHJpbmdAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW5zdHJ1Y3Rpb25RdWV1ZTo6Q0luc3RydWN0aW9uUXVldWUodm9pZCkgX19wdHI2NA0KKz8/MENJbnN0cnVjdGlvblF1ZXVlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0luc3RydWN0aW9uVGVzdDo6Q0luc3RydWN0aW9uVGVzdChjbGFzcyBDSW5zdHJ1Y3Rpb25UZXN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENJbnN0cnVjdGlvblRlc3RAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW5zdHJ1Y3Rpb25UZXN0OjpDSW5zdHJ1Y3Rpb25UZXN0KHZvaWQpIF9fcHRyNjQNCis/PzBDSW5zdHJ1Y3Rpb25UZXN0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0xpZmVDb250cm9sOjpDTGlmZUNvbnRyb2woY2xhc3MgQ0xpZmVDb250cm9sIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENMaWZlQ29udHJvbEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENMaWZlQ29udHJvbDo6Q0xpZmVDb250cm9sKHZvaWQpIF9fcHRyNjQNCis/PzBDTGlmZUNvbnRyb2xAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTGlrZTo6Q0xpa2UoY2xhc3MgQ0xpa2UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0xpa2VAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTGlrZTo6Q0xpa2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorPz8wQ0xpa2VAQFFFQUFAUEVCR0dAWg0KKzsgcHVibGljOiBfX2NkZWNsIENMaWtlOjpDTGlrZSh2b2lkKSBfX3B0cjY0DQorPz8wQ0xpa2VAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTGltaXRDb250cm9sOjpDTGltaXRDb250cm9sKGNsYXNzIENMaW1pdENvbnRyb2wgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0xpbWl0Q29udHJvbEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENMaW1pdENvbnRyb2w6OkNMaW1pdENvbnRyb2wodm9pZCkgX19wdHI2NA0KKz8/MENMaW1pdENvbnRyb2xAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTVJDSUNvbXByZXNzaW9uOjpDTVJDSUNvbXByZXNzaW9uKHZvaWQpIF9fcHRyNjQNCis/PzBDTVJDSUNvbXByZXNzaW9uQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01SQ0lDb250cm9sOjpDTVJDSUNvbnRyb2wodm9pZCkgX19wdHI2NA0KKz8/MENNUkNJQ29udHJvbEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENNaW5NYXhMaW1pdENvbnRyb2w6OkNNaW5NYXhMaW1pdENvbnRyb2woY2xhc3MgQ01pbk1heExpbWl0Q29udHJvbCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTWluTWF4TGltaXRDb250cm9sQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ01pbk1heExpbWl0Q29udHJvbDo6Q01pbk1heExpbWl0Q29udHJvbChpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ01pbk1heExpbWl0Q29udHJvbEBAUUVBQUBIUEVCR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ050QWNlOjpDTnRBY2UoY2xhc3MgQ050QWNlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENOdEFjZUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENOdEFjZTo6Q050QWNlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIENOdFNpZCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTnRBY2VAQFFFQUFAS0tLQUVBVkNOdFNpZEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTnRBY2U6OkNOdEFjZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ050QWNlQEBRRUFBQEtLS1BFQUcwQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTnRBY2U6OkNOdEFjZShzdHJ1Y3QgX0FDQ0VTU19BTExPV0VEX0FDRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTnRBY2VAQFFFQUFAUEVBVV9BQ0NFU1NfQUxMT1dFRF9BQ0VAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ050QWNlOjpDTnRBY2Uodm9pZCkgX19wdHI2NA0KKz8/MENOdEFjZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENOdEFjbDo6Q050QWNsKGNsYXNzIENOdEFjbCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTnRBY2xAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTnRBY2w6OkNOdEFjbCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorPz8wQ050QWNsQEBRRUFBQEtAWg0KKzsgcHVibGljOiBfX2NkZWNsIENOdEFjbDo6Q050QWNsKHN0cnVjdCBfQUNMICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENOdEFjbEBAUUVBQUBQRUFVX0FDTEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTnRTZWN1cml0eURlc2NyaXB0b3I6OkNOdFNlY3VyaXR5RGVzY3JpcHRvcihjbGFzcyBDTnRTZWN1cml0eURlc2NyaXB0b3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ050U2VjdXJpdHlEZXNjcmlwdG9yQEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ050U2VjdXJpdHlEZXNjcmlwdG9yOjpDTnRTZWN1cml0eURlc2NyaXB0b3Iodm9pZCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wQ050U2VjdXJpdHlEZXNjcmlwdG9yQEBRRUFBQFBFQVhIQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTnRTZWN1cml0eURlc2NyaXB0b3I6OkNOdFNlY3VyaXR5RGVzY3JpcHRvcih2b2lkKSBfX3B0cjY0DQorPz8wQ050U2VjdXJpdHlEZXNjcmlwdG9yQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ050U2lkOjpDTnRTaWQoY2xhc3MgQ050U2lkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENOdFNpZEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENOdFNpZDo6Q050U2lkKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDTnRTaWRAQFFFQUFAUEVBRzBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENOdFNpZDo6Q050U2lkKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ050U2lkQEBRRUFBQFBFQVhAWg0KKzsgcHVibGljOiBfX2NkZWNsIENOdFNpZDo6Q050U2lkKGVudW0gQ050U2lkOjpTaWRUeXBlKSBfX3B0cjY0DQorPz8wQ050U2lkQEBRRUFBQFc0U2lkVHlwZUAwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ050U2lkOjpDTnRTaWQodm9pZCkgX19wdHI2NA0KKz8/MENOdFNpZEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENQcm9wZXJ0eU5hbWU6OkNQcm9wZXJ0eU5hbWUoY2xhc3MgQ1Byb3BlcnR5TmFtZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDUHJvcGVydHlOYW1lQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Byb3BlcnR5TmFtZTo6Q1Byb3BlcnR5TmFtZSh2b2lkKSBfX3B0cjY0DQorPz8wQ1Byb3BlcnR5TmFtZUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENRbDFQYXJzZVNpbms6OkNRbDFQYXJzZVNpbmsoY2xhc3MgQ1FsMVBhcnNlU2luayBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDUWwxUGFyc2VTaW5rQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1FsMVBhcnNlU2luazo6Q1FsMVBhcnNlU2luayh2b2lkKSBfX3B0cjY0DQorPz8wQ1FsMVBhcnNlU2lua0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENSZWdpc3RyeU1pbk1heExpbWl0Q29udHJvbDo6Q1JlZ2lzdHJ5TWluTWF4TGltaXRDb250cm9sKGNsYXNzIENSZWdpc3RyeU1pbk1heExpbWl0Q29udHJvbCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDUmVnaXN0cnlNaW5NYXhMaW1pdENvbnRyb2xAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDUmVnaXN0cnlNaW5NYXhMaW1pdENvbnRyb2w6OkNSZWdpc3RyeU1pbk1heExpbWl0Q29udHJvbChpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENSZWdpc3RyeU1pbk1heExpbWl0Q29udHJvbEBAUUVBQUBIUEVCRzAwMDBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENTYWZlQXJyYXk6OkNTYWZlQXJyYXkoY2xhc3MgQ1NhZmVBcnJheSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDU2FmZUFycmF5QEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1NhZmVBcnJheTo6Q1NhZmVBcnJheShpbnQsaW50LGludCxpbnQpIF9fcHRyNjQNCis/PzBDU2FmZUFycmF5QEBRRUFBQEhISEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIENTYWZlQXJyYXk6OkNTYWZlQXJyYXkoc3RydWN0IHRhZ1NBRkVBUlJBWSAqIF9fcHRyNjQsaW50LGludCxpbnQpIF9fcHRyNjQNCis/PzBDU2FmZUFycmF5QEBRRUFBQFBFQVV0YWdTQUZFQVJSQVlAQEhISEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1N0YXRpY0NyaXRTZWM6OkNTdGF0aWNDcml0U2VjKHZvaWQpIF9fcHRyNjQNCis/PzBDU3RhdGljQ3JpdFNlY0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENUZXh0VGVtcGxhdGU6OkNUZXh0VGVtcGxhdGUoY2xhc3MgQ1RleHRUZW1wbGF0ZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDVGV4dFRlbXBsYXRlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1RleHRUZW1wbGF0ZTo6Q1RleHRUZW1wbGF0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDVGV4dFRlbXBsYXRlQEBRRUFBQFBFQkdAWg0KKzsgcHVibGljOiBfX2NkZWNsIENUaW1lckdlbmVyYXRvcjo6Q1RpbWVyR2VuZXJhdG9yKGNsYXNzIENUaW1lckdlbmVyYXRvciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDVGltZXJHZW5lcmF0b3JAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDVGltZXJHZW5lcmF0b3I6OkNUaW1lckdlbmVyYXRvcih2b2lkKSBfX3B0cjY0DQorPz8wQ1RpbWVyR2VuZXJhdG9yQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1RpbWVySW5zdHJ1Y3Rpb246OkNUaW1lckluc3RydWN0aW9uKGNsYXNzIENUaW1lckluc3RydWN0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENUaW1lckluc3RydWN0aW9uQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1RpbWVySW5zdHJ1Y3Rpb246OkNUaW1lckluc3RydWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzBDVGltZXJJbnN0cnVjdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENVbms6OkNVbmsoY2xhc3MgQ1VuayBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDVW5rQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Vuazo6Q1VuayhjbGFzcyBDTGlmZUNvbnRyb2wgKiBfX3B0cjY0LHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDVW5rQEBRRUFBQFBFQVZDTGlmZUNvbnRyb2xAQFBFQVVJVW5rbm93bkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDVW5rSW50ZXJuYWw6OkNVbmtJbnRlcm5hbChjbGFzcyBDVW5rSW50ZXJuYWwgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1Vua0ludGVybmFsQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Vua0ludGVybmFsOjpDVW5rSW50ZXJuYWwoY2xhc3MgQ0xpZmVDb250cm9sICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENVbmtJbnRlcm5hbEBAUUVBQUBQRUFWQ0xpZmVDb250cm9sQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENVbmxvYWRJbnN0cnVjdGlvbjo6Q1VubG9hZEluc3RydWN0aW9uKGNsYXNzIENVbmxvYWRJbnN0cnVjdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDVW5sb2FkSW5zdHJ1Y3Rpb25AQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDVW5sb2FkSW5zdHJ1Y3Rpb246OkNVbmxvYWRJbnN0cnVjdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsc3RydWN0IElXYmVtQ29udGV4dCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDVW5sb2FkSW5zdHJ1Y3Rpb25AQFFFQUFAUEVCR1BFQVVJV2JlbUNvbnRleHRAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zhcjo6Q1ZhcihjbGFzcyBDVmFyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENWYXJAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmFyOjpDVmFyKGNoYXIpIF9fcHRyNjQNCis/PzBDVmFyQEBRRUFBQERAWg0KKzsgcHVibGljOiBfX2NkZWNsIENWYXI6OkNWYXIodW5zaWduZWQgY2hhcikgX19wdHI2NA0KKz8/MENWYXJAQFFFQUFARUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zhcjo6Q1ZhcihzaG9ydCkgX19wdHI2NA0KKz8/MENWYXJAQFFFQUFARkBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zhcjo6Q1ZhcihzaG9ydCxpbnQpIF9fcHRyNjQNCis/PzBDVmFyQEBRRUFBQEZIQFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmFyOjpDVmFyKHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorPz8wQ1ZhckBAUUVBQUBHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmFyOjpDVmFyKGludCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDVmFyQEBRRUFBQEhQRUFHQFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmFyOjpDVmFyKGludCxzdHJ1Y3QgdGFnU0FGRUFSUkFZICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENWYXJAQFFFQUFASFBFQVV0YWdTQUZFQVJSQVlAQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zhcjo6Q1ZhcihpbnQsY2xhc3MgYXV0b19ic3RyKSBfX3B0cjY0DQorPz8wQ1ZhckBAUUVBQUBIVmF1dG9fYnN0ckBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmFyOjpDVmFyKGxvbmcpIF9fcHRyNjQNCis/PzBDVmFyQEBRRUFBQEpAWg0KKzsgcHVibGljOiBfX2NkZWNsIENWYXI6OkNWYXIodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENWYXJAQFFFQUFAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zhcjo6Q1ZhcihmbG9hdCkgX19wdHI2NA0KKz8/MENWYXJAQFFFQUFATUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zhcjo6Q1Zhcihkb3VibGUpIF9fcHRyNjQNCis/PzBDVmFyQEBRRUFBQE5AWg0KKzsgcHVibGljOiBfX2NkZWNsIENWYXI6OkNWYXIoY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wQ1ZhckBAUUVBQUBQRUFESEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zhcjo6Q1Zhcih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wQ1ZhckBAUUVBQUBQRUFHSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zhcjo6Q1ZhcihzdHJ1Y3QgX0ZJTEVUSU1FICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENWYXJAQFFFQUFAUEVBVV9GSUxFVElNRUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmFyOjpDVmFyKHN0cnVjdCBfR1VJRCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wQ1ZhckBAUUVBQUBQRUFVX0dVSURAQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIENWYXI6OkNWYXIoc3RydWN0IHRhZ0JMT0IgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MENWYXJAQFFFQUFAUEVBVXRhZ0JMT0JAQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIENWYXI6OkNWYXIoc3RydWN0IHRhZ1ZBUklBTlQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1ZhckBAUUVBQUBQRUFVdGFnVkFSSUFOVEBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmFyOjpDVmFyKGNsYXNzIENWYXJWZWN0b3IgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MENWYXJAQFFFQUFAUEVBVkNWYXJWZWN0b3JAQEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIENWYXI6OkNWYXIodm9pZCkgX19wdHI2NA0KKz8/MENWYXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmFyVmVjdG9yOjpDVmFyVmVjdG9yKGNsYXNzIENWYXJWZWN0b3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1ZhclZlY3RvckBAUUVBQUBBRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENWYXJWZWN0b3I6OkNWYXJWZWN0b3IoaW50LGludCxpbnQpIF9fcHRyNjQNCis/PzBDVmFyVmVjdG9yQEBRRUFBQEhISEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1ZhclZlY3Rvcjo6Q1ZhclZlY3RvcihpbnQsc3RydWN0IHRhZ1NBRkVBUlJBWSAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorPz8wQ1ZhclZlY3RvckBAUUVBQUBIUEVBVXRhZ1NBRkVBUlJBWUBASEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1ZhclZlY3Rvcjo6Q1ZhclZlY3Rvcih2b2lkKSBfX3B0cjY0DQorPz8wQ1ZhclZlY3RvckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENXUUxTY2FubmVyOjpDV1FMU2Nhbm5lcihjbGFzcyBDV1FMU2Nhbm5lciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDV1FMU2Nhbm5lckBAUUVBQUBBRUFWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXUUxTY2FubmVyOjpDV1FMU2Nhbm5lcihjbGFzcyBDR2VuTGV4U291cmNlICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENXUUxTY2FubmVyQEBRRUFBQFBFQVZDR2VuTGV4U291cmNlQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXU3RyaW5nQXJyYXk6OkNXU3RyaW5nQXJyYXkoY2xhc3MgQ1dTdHJpbmdBcnJheSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDV1N0cmluZ0FycmF5QEBRRUFBQEFFQVYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1dTdHJpbmdBcnJheTo6Q1dTdHJpbmdBcnJheShpbnQsaW50KSBfX3B0cjY0DQorPz8wQ1dTdHJpbmdBcnJheUBAUUVBQUBISEBaDQorOyBwcml2YXRlOiBfX2NkZWNsIENXYmVtQ2FsbFNlY3VyaXR5OjpDV2JlbUNhbGxTZWN1cml0eShjbGFzcyBDV2JlbUNhbGxTZWN1cml0eSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDV2JlbUNhbGxTZWN1cml0eUBAQUVBQUBBRUJWMEBAWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBDV2JlbUNhbGxTZWN1cml0eTo6Q1diZW1DYWxsU2VjdXJpdHkodm9pZCkgX19wdHI2NA0KKz8/MENXYmVtQ2FsbFNlY3VyaXR5QEBBRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1Dcml0aWNhbFNlY3Rpb246OkNXYmVtQ3JpdGljYWxTZWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzBDV2JlbUNyaXRpY2FsU2VjdGlvbkBAUUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIENXYmVtSW50ZXJ2YWw6OkNXYmVtSW50ZXJ2YWwodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENXYmVtSW50ZXJ2YWxAQElFQUFAS0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1JbnRlcnZhbDo6Q1diZW1JbnRlcnZhbCh2b2lkKSBfX3B0cjY0DQorPz8wQ1diZW1JbnRlcnZhbEBAUUVBQUBYWg0KKzsgcHJvdGVjdGVkOiBfX2NkZWNsIENXYmVtVGltZTo6Q1diZW1UaW1lKF9faW50NjQpIF9fcHRyNjQNCis/PzBDV2JlbVRpbWVAQElFQUFAX0pAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXYmVtVGltZTo6Q1diZW1UaW1lKGNsYXNzIENXYmVtVGltZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDV2JlbVRpbWVAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2JlbVRpbWU6OkNXYmVtVGltZSh2b2lkKSBfX3B0cjY0DQorPz8wQ1diZW1UaW1lQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1diZW1UaW1lU3Bhbjo6Q1diZW1UaW1lU3BhbihpbnQsaW50LGludCxpbnQsaW50LGludCxpbnQpIF9fcHRyNjQNCis/PzBDV2JlbVRpbWVTcGFuQEBRRUFBQEhISEhISEhAWg0KKzsgcHVibGljOiBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6Q1dpbjMyRGVmYXVsdEFyZW5hKGNsYXNzIENXaW4zMkRlZmF1bHRBcmVuYSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDV2luMzJEZWZhdWx0QXJlbmFAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2luMzJEZWZhdWx0QXJlbmE6OkNXaW4zMkRlZmF1bHRBcmVuYSh2b2lkKSBfX3B0cjY0DQorPz8wQ1dpbjMyRGVmYXVsdEFyZW5hQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUUwxX1BhcnNlcjo6UUwxX1BhcnNlcihjbGFzcyBRTDFfUGFyc2VyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFFMMV9QYXJzZXJAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBRTDFfUGFyc2VyOjpRTDFfUGFyc2VyKGNsYXNzIENHZW5MZXhTb3VyY2UgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUUwxX1BhcnNlckBAUUVBQUBQRUFWQ0dlbkxleFNvdXJjZUBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OOjpRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OKHN0cnVjdCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT05AQFFFQUFAQUVCVTBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OOjpRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OKHZvaWQpIF9fcHRyNjQNCis/PzBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUUxfTEVWRUxfMV9UT0tFTjo6UUxfTEVWRUxfMV9UT0tFTihzdHJ1Y3QgUUxfTEVWRUxfMV9UT0tFTiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBRTF9MRVZFTF8xX1RPS0VOQEBRRUFBQEFFQlUwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgUUxfTEVWRUxfMV9UT0tFTjo6UUxfTEVWRUxfMV9UT0tFTih2b2lkKSBfX3B0cjY0DQorPz8wUUxfTEVWRUxfMV9UT0tFTkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFJlZ2lzdHJ5OjpSZWdpc3RyeSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MFJlZ2lzdHJ5QEBRRUFBQFBFQUdLQFoNCis7IHB1YmxpYzogX19jZGVjbCBSZWdpc3RyeTo6UmVnaXN0cnkoc3RydWN0IEhLRVlfXyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MFJlZ2lzdHJ5QEBRRUFBQFBFQVVIS0VZX19AQEtLUEVBR0BaDQorOyBwdWJsaWM6IF9fY2RlY2wgUmVnaXN0cnk6OlJlZ2lzdHJ5KHN0cnVjdCBIS0VZX18gKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wUmVnaXN0cnlAQFFFQUFAUEVBVUhLRVlfX0BAS1BFQUdAWg0KKzsgcHVibGljOiBfX2NkZWNsIFJlZ2lzdHJ5OjpSZWdpc3RyeSh2b2lkKSBfX3B0cjY0DQorPz8wUmVnaXN0cnlAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBXU3RyaW5nOjpXU3RyaW5nKGNsYXNzIFdTdHJpbmcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV1N0cmluZ0BAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdTdHJpbmc6OldTdHJpbmcodW5zaWduZWQgbG9uZyxzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV1N0cmluZ0BAUUVBQUBLUEVBVUhJTlNUQU5DRV9fQEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdTdHJpbmc6OldTdHJpbmcodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz8/MFdTdHJpbmdAQFFFQUFAUEVBR0hAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdTdHJpbmc6OldTdHJpbmcoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXU3RyaW5nQEBRRUFBQFBFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIFdTdHJpbmc6OldTdHJpbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wV1N0cmluZ0BAUUVBQUBQRUJHQFoNCis7IHB1YmxpYzogX19jZGVjbCBXU3RyaW5nOjpXU3RyaW5nKHZvaWQpIF9fcHRyNjQNCis/PzBXU3RyaW5nQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgc3RkOjpfTG9ja2l0OjpfTG9ja2l0KHZvaWQpIF9fcHRyNjQNCis/PzBfTG9ja2l0QHN0ZEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENMb2NrYWJsZUZsZXhBcnJheTxjbGFzcyBDU3RhdGljQ3JpdFNlYz46On5DTG9ja2FibGVGbGV4QXJyYXk8Y2xhc3MgQ1N0YXRpY0NyaXRTZWM+KHZvaWQpIF9fcHRyNjQNCis/PzE/JENMb2NrYWJsZUZsZXhBcnJheUBWQ1N0YXRpY0NyaXRTZWNAQEBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQzlYQWNlOjp+QzlYQWNlKHZvaWQpIF9fcHRyNjQNCis/PzFDOVhBY2VAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENBYnN0cmFjdFFsMVBhcnNlcjo6fkNBYnN0cmFjdFFsMVBhcnNlcih2b2lkKSBfX3B0cjY0DQorPz8xQ0Fic3RyYWN0UWwxUGFyc2VyQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDQmFzZUFjZTo6fkNCYXNlQWNlKHZvaWQpIF9fcHRyNjQNCis/PzFDQmFzZUFjZUBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ0Jhc2ljVW5sb2FkSW5zdHJ1Y3Rpb246On5DQmFzaWNVbmxvYWRJbnN0cnVjdGlvbih2b2lkKSBfX3B0cjY0DQorPz8xQ0Jhc2ljVW5sb2FkSW5zdHJ1Y3Rpb25AQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQnVmZmVyOjp+Q0J1ZmZlcih2b2lkKSBfX3B0cjY0DQorPz8xQ0J1ZmZlckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENDaGVja2VkSW5Dcml0U2VjOjp+Q0NoZWNrZWRJbkNyaXRTZWModm9pZCkgX19wdHI2NA0KKz8/MUNDaGVja2VkSW5Dcml0U2VjQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NyaXRTZWM6On5DQ3JpdFNlYyh2b2lkKSBfX3B0cjY0DQorPz8xQ0NyaXRTZWNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRE1URlBhcnNlcjo6fkNETVRGUGFyc2VyKHZvaWQpIF9fcHRyNjQNCis/PzFDRE1URlBhcnNlckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENEYXRlUGFydDo6fkNEYXRlUGFydCh2b2lkKSBfX3B0cjY0DQorPz8xQ0RhdGVQYXJ0QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjp+Q0RhdGVUaW1lUGFyc2VyKHZvaWQpIF9fcHRyNjQNCis/PzFDRGF0ZVRpbWVQYXJzZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRW50ZXJXYmVtQ3JpdGljYWxTZWN0aW9uOjp+Q0VudGVyV2JlbUNyaXRpY2FsU2VjdGlvbih2b2lkKSBfX3B0cjY0DQorPz8xQ0VudGVyV2JlbUNyaXRpY2FsU2VjdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENFdmVudExvZzo6fkNFdmVudExvZyh2b2lkKSBfX3B0cjY0DQorPz8xQ0V2ZW50TG9nQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0V2ZW50TG9nUmVjb3JkOjp+Q0V2ZW50TG9nUmVjb3JkKHZvaWQpIF9fcHRyNjQNCis/PzFDRXZlbnRMb2dSZWNvcmRAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRXhlY1F1ZXVlOjp+Q0V4ZWNRdWV1ZSh2b2lkKSBfX3B0cjY0DQorPz8xQ0V4ZWNRdWV1ZUBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ0V4ZWNSZXF1ZXN0Ojp+Q0V4ZWNSZXF1ZXN0KHZvaWQpIF9fcHRyNjQNCis/PzFDRXhlY1JlcXVlc3RAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRmxleEFycmF5Ojp+Q0ZsZXhBcnJheSh2b2lkKSBfX3B0cjY0DQorPz8xQ0ZsZXhBcnJheUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENGbGV4UXVldWU6On5DRmxleFF1ZXVlKHZvaWQpIF9fcHRyNjQNCis/PzFDRmxleFF1ZXVlQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDSGFsdGFibGU6On5DSGFsdGFibGUodm9pZCkgX19wdHI2NA0KKz8/MUNIYWx0YWJsZUBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJZGVudGl0eVNlY3VyaXR5Ojp+Q0lkZW50aXR5U2VjdXJpdHkodm9pZCkgX19wdHI2NA0KKz8/MUNJZGVudGl0eVNlY3VyaXR5QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0lkZW50aXR5VGVzdDo6fkNJZGVudGl0eVRlc3Qodm9pZCkgX19wdHI2NA0KKz8/MUNJZGVudGl0eVRlc3RAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDSW5Dcml0U2VjOjp+Q0luQ3JpdFNlYyh2b2lkKSBfX3B0cjY0DQorPz8xQ0luQ3JpdFNlY0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbnNlcnRpb25TdHJpbmc6On5DSW5zZXJ0aW9uU3RyaW5nKHZvaWQpIF9fcHRyNjQNCis/PzFDSW5zZXJ0aW9uU3RyaW5nQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0luc3RydWN0aW9uUXVldWU6On5DSW5zdHJ1Y3Rpb25RdWV1ZSh2b2lkKSBfX3B0cjY0DQorPz8xQ0luc3RydWN0aW9uUXVldWVAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTGlrZTo6fkNMaWtlKHZvaWQpIF9fcHRyNjQNCis/PzFDTGlrZUBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ0xpbWl0Q29udHJvbDo6fkNMaW1pdENvbnRyb2wodm9pZCkgX19wdHI2NA0KKz8/MUNMaW1pdENvbnRyb2xAQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTVJDSUNvbXByZXNzaW9uOjp+Q01SQ0lDb21wcmVzc2lvbih2b2lkKSBfX3B0cjY0DQorPz8xQ01SQ0lDb21wcmVzc2lvbkBAUUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ01pbk1heExpbWl0Q29udHJvbDo6fkNNaW5NYXhMaW1pdENvbnRyb2wodm9pZCkgX19wdHI2NA0KKz8/MUNNaW5NYXhMaW1pdENvbnRyb2xAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENOdEFjZTo6fkNOdEFjZSh2b2lkKSBfX3B0cjY0DQorPz8xQ050QWNlQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ050QWNsOjp+Q050QWNsKHZvaWQpIF9fcHRyNjQNCis/PzFDTnRBY2xAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDTnRTZWN1cml0eURlc2NyaXB0b3I6On5DTnRTZWN1cml0eURlc2NyaXB0b3Iodm9pZCkgX19wdHI2NA0KKz8/MUNOdFNlY3VyaXR5RGVzY3JpcHRvckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENOdFNpZDo6fkNOdFNpZCh2b2lkKSBfX3B0cjY0DQorPz8xQ050U2lkQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Byb3BlcnR5TmFtZTo6fkNQcm9wZXJ0eU5hbWUodm9pZCkgX19wdHI2NA0KKz8/MUNQcm9wZXJ0eU5hbWVAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENSZWdpc3RyeU1pbk1heExpbWl0Q29udHJvbDo6fkNSZWdpc3RyeU1pbk1heExpbWl0Q29udHJvbCh2b2lkKSBfX3B0cjY0DQorPz8xQ1JlZ2lzdHJ5TWluTWF4TGltaXRDb250cm9sQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1NhZmVBcnJheTo6fkNTYWZlQXJyYXkodm9pZCkgX19wdHI2NA0KKz8/MUNTYWZlQXJyYXlAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDU3RhdGljQ3JpdFNlYzo6fkNTdGF0aWNDcml0U2VjKHZvaWQpIF9fcHRyNjQNCis/PzFDU3RhdGljQ3JpdFNlY0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENUZXh0VGVtcGxhdGU6On5DVGV4dFRlbXBsYXRlKHZvaWQpIF9fcHRyNjQNCis/PzFDVGV4dFRlbXBsYXRlQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDVGltZXJHZW5lcmF0b3I6On5DVGltZXJHZW5lcmF0b3Iodm9pZCkgX19wdHI2NA0KKz8/MUNUaW1lckdlbmVyYXRvckBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1RpbWVySW5zdHJ1Y3Rpb246On5DVGltZXJJbnN0cnVjdGlvbih2b2lkKSBfX3B0cjY0DQorPz8xQ1RpbWVySW5zdHJ1Y3Rpb25AQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIENVbms6On5DVW5rKHZvaWQpIF9fcHRyNjQNCis/PzFDVW5rQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDVW5rSW50ZXJuYWw6On5DVW5rSW50ZXJuYWwodm9pZCkgX19wdHI2NA0KKz8/MUNVbmtJbnRlcm5hbEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgQ1VubG9hZEluc3RydWN0aW9uOjp+Q1VubG9hZEluc3RydWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFDVW5sb2FkSW5zdHJ1Y3Rpb25AQFVFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmFyOjp+Q1Zhcih2b2lkKSBfX3B0cjY0DQorPz8xQ1ZhckBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWYXJWZWN0b3I6On5DVmFyVmVjdG9yKHZvaWQpIF9fcHRyNjQNCis/PzFDVmFyVmVjdG9yQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1dRTFNjYW5uZXI6On5DV1FMU2Nhbm5lcih2b2lkKSBfX3B0cjY0DQorPz8xQ1dRTFNjYW5uZXJAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDV1N0cmluZ0FycmF5Ojp+Q1dTdHJpbmdBcnJheSh2b2lkKSBfX3B0cjY0DQorPz8xQ1dTdHJpbmdBcnJheUBAUUVBQUBYWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBDV2JlbUNhbGxTZWN1cml0eTo6fkNXYmVtQ2FsbFNlY3VyaXR5KHZvaWQpIF9fcHRyNjQNCis/PzFDV2JlbUNhbGxTZWN1cml0eUBAQUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENXYmVtQ3JpdGljYWxTZWN0aW9uOjp+Q1diZW1Dcml0aWNhbFNlY3Rpb24odm9pZCkgX19wdHI2NA0KKz8/MUNXYmVtQ3JpdGljYWxTZWN0aW9uQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1dpbjMyRGVmYXVsdEFyZW5hOjp+Q1dpbjMyRGVmYXVsdEFyZW5hKHZvaWQpIF9fcHRyNjQNCis/PzFDV2luMzJEZWZhdWx0QXJlbmFAQFFFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIFFMMV9QYXJzZXI6On5RTDFfUGFyc2VyKHZvaWQpIF9fcHRyNjQNCis/PzFRTDFfUGFyc2VyQEBVRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTjo6flFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04odm9pZCkgX19wdHI2NA0KKz8/MVFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT05AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBRTF9MRVZFTF8xX1RPS0VOOjp+UUxfTEVWRUxfMV9UT0tFTih2b2lkKSBfX3B0cjY0DQorPz8xUUxfTEVWRUxfMV9UT0tFTkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFJlZ2lzdHJ5Ojp+UmVnaXN0cnkodm9pZCkgX19wdHI2NA0KKz8/MVJlZ2lzdHJ5QEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgV1N0cmluZzo6fldTdHJpbmcodm9pZCkgX19wdHI2NA0KKz8/MVdTdHJpbmdAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBzdGQ6Ol9Mb2NraXQ6On5fTG9ja2l0KHZvaWQpIF9fcHRyNjQNCis/PzFfTG9ja2l0QHN0ZEBAUUVBQUBYWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja2FibGVGbGV4QXJyYXk8Y2xhc3MgQ1N0YXRpY0NyaXRTZWM+ICYgX19wdHI2NCBfX2NkZWNsIENMb2NrYWJsZUZsZXhBcnJheTxjbGFzcyBDU3RhdGljQ3JpdFNlYz46Om9wZXJhdG9yPShjbGFzcyBDTG9ja2FibGVGbGV4QXJyYXk8Y2xhc3MgQ1N0YXRpY0NyaXRTZWM+ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/ND8kQ0xvY2thYmxlRmxleEFycmF5QFZDU3RhdGljQ3JpdFNlY0BAQEBRRUFBQUVBVjBAQUVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQzlYQWNlICYgX19wdHI2NCBfX2NkZWNsIEM5WEFjZTo6b3BlcmF0b3I9KGNsYXNzIEM5WEFjZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDOVhBY2VAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQWJzdHJhY3RRbDFQYXJzZXIgJiBfX3B0cjY0IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjpvcGVyYXRvcj0oY2xhc3MgQ0Fic3RyYWN0UWwxUGFyc2VyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENBYnN0cmFjdFFsMVBhcnNlckBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENBcmVuYSAmIF9fcHRyNjQgX19jZGVjbCBDQXJlbmE6Om9wZXJhdG9yPShjbGFzcyBDQXJlbmEgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0FyZW5hQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0Jhc2VBY2UgJiBfX3B0cjY0IF9fY2RlY2wgQ0Jhc2VBY2U6Om9wZXJhdG9yPShjbGFzcyBDQmFzZUFjZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDQmFzZUFjZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENCYXNlTXJjaUNvbXByZXNzaW9uICYgX19wdHI2NCBfX2NkZWNsIENCYXNlTXJjaUNvbXByZXNzaW9uOjpvcGVyYXRvcj0oY2xhc3MgQ0Jhc2VNcmNpQ29tcHJlc3Npb24gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0Jhc2VNcmNpQ29tcHJlc3Npb25AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQmFzaWNVbmxvYWRJbnN0cnVjdGlvbiAmIF9fcHRyNjQgX19jZGVjbCBDQmFzaWNVbmxvYWRJbnN0cnVjdGlvbjo6b3BlcmF0b3I9KGNsYXNzIENCYXNpY1VubG9hZEluc3RydWN0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENCYXNpY1VubG9hZEluc3RydWN0aW9uQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0J1ZmZlciAmIF9fcHRyNjQgX19jZGVjbCBDQnVmZmVyOjpvcGVyYXRvcj0oY2xhc3MgQ0J1ZmZlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDQnVmZmVyQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NoZWNrZWRJbkNyaXRTZWMgJiBfX3B0cjY0IF9fY2RlY2wgQ0NoZWNrZWRJbkNyaXRTZWM6Om9wZXJhdG9yPShjbGFzcyBDQ2hlY2tlZEluQ3JpdFNlYyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDQ2hlY2tlZEluQ3JpdFNlY0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENDb250YWluZXJDb250cm9sICYgX19wdHI2NCBfX2NkZWNsIENDb250YWluZXJDb250cm9sOjpvcGVyYXRvcj0oY2xhc3MgQ0NvbnRhaW5lckNvbnRyb2wgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0NvbnRhaW5lckNvbnRyb2xAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ3JpdFNlYyAmIF9fcHRyNjQgX19jZGVjbCBDQ3JpdFNlYzo6b3BlcmF0b3I9KGNsYXNzIENDcml0U2VjIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENDcml0U2VjQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0RNVEZQYXJzZXIgJiBfX3B0cjY0IF9fY2RlY2wgQ0RNVEZQYXJzZXI6Om9wZXJhdG9yPShjbGFzcyBDRE1URlBhcnNlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDRE1URlBhcnNlckBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENEYXRlUGFydCAmIF9fcHRyNjQgX19jZGVjbCBDRGF0ZVBhcnQ6Om9wZXJhdG9yPShjbGFzcyBDRGF0ZVBhcnQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0RhdGVQYXJ0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0RhdGVUaW1lUGFyc2VyICYgX19wdHI2NCBfX2NkZWNsIENEYXRlVGltZVBhcnNlcjo6b3BlcmF0b3I9KGNsYXNzIENEYXRlVGltZVBhcnNlciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDRGF0ZVRpbWVQYXJzZXJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRW50ZXJXYmVtQ3JpdGljYWxTZWN0aW9uICYgX19wdHI2NCBfX2NkZWNsIENFbnRlcldiZW1Dcml0aWNhbFNlY3Rpb246Om9wZXJhdG9yPShjbGFzcyBDRW50ZXJXYmVtQ3JpdGljYWxTZWN0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENFbnRlcldiZW1Dcml0aWNhbFNlY3Rpb25AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRXZlbnRMb2cgJiBfX3B0cjY0IF9fY2RlY2wgQ0V2ZW50TG9nOjpvcGVyYXRvcj0oY2xhc3MgQ0V2ZW50TG9nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENFdmVudExvZ0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENFdmVudExvZ1JlY29yZCAmIF9fcHRyNjQgX19jZGVjbCBDRXZlbnRMb2dSZWNvcmQ6Om9wZXJhdG9yPShjbGFzcyBDRXZlbnRMb2dSZWNvcmQgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0V2ZW50TG9nUmVjb3JkQEBRRUFBQUVBVjBAQUVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0V4ZWNRdWV1ZSAmIF9fcHRyNjQgX19jZGVjbCBDRXhlY1F1ZXVlOjpvcGVyYXRvcj0oY2xhc3MgQ0V4ZWNRdWV1ZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDRXhlY1F1ZXVlQEBRRUFBQUVBVjBAQUVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0V4ZWNSZXF1ZXN0ICYgX19wdHI2NCBfX2NkZWNsIENFeGVjUmVxdWVzdDo6b3BlcmF0b3I9KGNsYXNzIENFeGVjUmVxdWVzdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDRXhlY1JlcXVlc3RAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRmxleEFycmF5ICYgX19wdHI2NCBfX2NkZWNsIENGbGV4QXJyYXk6Om9wZXJhdG9yPShjbGFzcyBDRmxleEFycmF5ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENGbGV4QXJyYXlAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRmxleFF1ZXVlICYgX19wdHI2NCBfX2NkZWNsIENGbGV4UXVldWU6Om9wZXJhdG9yPShjbGFzcyBDRmxleFF1ZXVlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENGbGV4UXVldWVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSGFsdGFibGUgJiBfX3B0cjY0IF9fY2RlY2wgQ0hhbHRhYmxlOjpvcGVyYXRvcj0oY2xhc3MgQ0hhbHRhYmxlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENIYWx0YWJsZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENIZXggJiBfX3B0cjY0IF9fY2RlY2wgQ0hleDo6b3BlcmF0b3I9KGNsYXNzIENIZXggY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0hleEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJZGVudGl0eVNlY3VyaXR5ICYgX19wdHI2NCBfX2NkZWNsIENJZGVudGl0eVNlY3VyaXR5OjpvcGVyYXRvcj0oY2xhc3MgQ0lkZW50aXR5U2VjdXJpdHkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0lkZW50aXR5U2VjdXJpdHlAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSWRlbnRpdHlUZXN0ICYgX19wdHI2NCBfX2NkZWNsIENJZGVudGl0eVRlc3Q6Om9wZXJhdG9yPShjbGFzcyBDSWRlbnRpdHlUZXN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJZGVudGl0eVRlc3RAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSW5Dcml0U2VjICYgX19wdHI2NCBfX2NkZWNsIENJbkNyaXRTZWM6Om9wZXJhdG9yPShjbGFzcyBDSW5Dcml0U2VjIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJbkNyaXRTZWNAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSW5zZXJ0aW9uU3RyaW5nICYgX19wdHI2NCBfX2NkZWNsIENJbnNlcnRpb25TdHJpbmc6Om9wZXJhdG9yPShjbGFzcyBDSW5zZXJ0aW9uU3RyaW5nIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJbnNlcnRpb25TdHJpbmdAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSW5zdHJ1Y3Rpb25RdWV1ZSAmIF9fcHRyNjQgX19jZGVjbCBDSW5zdHJ1Y3Rpb25RdWV1ZTo6b3BlcmF0b3I9KGNsYXNzIENJbnN0cnVjdGlvblF1ZXVlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENJbnN0cnVjdGlvblF1ZXVlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0luc3RydWN0aW9uVGVzdCAmIF9fcHRyNjQgX19jZGVjbCBDSW5zdHJ1Y3Rpb25UZXN0OjpvcGVyYXRvcj0oY2xhc3MgQ0luc3RydWN0aW9uVGVzdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDSW5zdHJ1Y3Rpb25UZXN0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpZmVDb250cm9sICYgX19wdHI2NCBfX2NkZWNsIENMaWZlQ29udHJvbDo6b3BlcmF0b3I9KGNsYXNzIENMaWZlQ29udHJvbCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTGlmZUNvbnRyb2xAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTGlrZSAmIF9fcHRyNjQgX19jZGVjbCBDTGlrZTo6b3BlcmF0b3I9KGNsYXNzIENMaWtlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENMaWtlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpbWl0Q29udHJvbCAmIF9fcHRyNjQgX19jZGVjbCBDTGltaXRDb250cm9sOjpvcGVyYXRvcj0oY2xhc3MgQ0xpbWl0Q29udHJvbCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTGltaXRDb250cm9sQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ01SQ0lDb21wcmVzc2lvbiAmIF9fcHRyNjQgX19jZGVjbCBDTVJDSUNvbXByZXNzaW9uOjpvcGVyYXRvcj0oY2xhc3MgQ01SQ0lDb21wcmVzc2lvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTVJDSUNvbXByZXNzaW9uQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ01SQ0lDb250cm9sICYgX19wdHI2NCBfX2NkZWNsIENNUkNJQ29udHJvbDo6b3BlcmF0b3I9KGNsYXNzIENNUkNJQ29udHJvbCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTVJDSUNvbnRyb2xAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTWluTWF4TGltaXRDb250cm9sICYgX19wdHI2NCBfX2NkZWNsIENNaW5NYXhMaW1pdENvbnRyb2w6Om9wZXJhdG9yPShjbGFzcyBDTWluTWF4TGltaXRDb250cm9sIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENNaW5NYXhMaW1pdENvbnRyb2xAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTnRBY2UgJiBfX3B0cjY0IF9fY2RlY2wgQ050QWNlOjpvcGVyYXRvcj0oY2xhc3MgQ050QWNlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENOdEFjZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENOdEFjbCAmIF9fcHRyNjQgX19jZGVjbCBDTnRBY2w6Om9wZXJhdG9yPShjbGFzcyBDTnRBY2wgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q050QWNsQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ050U2VjdXJpdHkgJiBfX3B0cjY0IF9fY2RlY2wgQ050U2VjdXJpdHk6Om9wZXJhdG9yPShjbGFzcyBDTnRTZWN1cml0eSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTnRTZWN1cml0eUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENOdFNlY3VyaXR5RGVzY3JpcHRvciAmIF9fcHRyNjQgX19jZGVjbCBDTnRTZWN1cml0eURlc2NyaXB0b3I6Om9wZXJhdG9yPShjbGFzcyBDTnRTZWN1cml0eURlc2NyaXB0b3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q050U2VjdXJpdHlEZXNjcmlwdG9yQEBRRUFBQUVBVjBAQUVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ050U2lkICYgX19wdHI2NCBfX2NkZWNsIENOdFNpZDo6b3BlcmF0b3I9KGNsYXNzIENOdFNpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTnRTaWRAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUGVyc2lzdGVudENvbmZpZyAmIF9fcHRyNjQgX19jZGVjbCBDUGVyc2lzdGVudENvbmZpZzo6b3BlcmF0b3I9KGNsYXNzIENQZXJzaXN0ZW50Q29uZmlnIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENQZXJzaXN0ZW50Q29uZmlnQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQcm9wZXJ0eU5hbWU6Om9wZXJhdG9yPShzdHJ1Y3QgX3RhZ19XYmVtUHJvcGVydHlOYW1lIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENQcm9wZXJ0eU5hbWVAQFFFQUFYQUVCVV90YWdfV2JlbVByb3BlcnR5TmFtZUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQcm9wZXJ0eU5hbWU6Om9wZXJhdG9yPShjbGFzcyBDUHJvcGVydHlOYW1lIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENQcm9wZXJ0eU5hbWVAQFFFQUFYQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1FsMVBhcnNlU2luayAmIF9fcHRyNjQgX19jZGVjbCBDUWwxUGFyc2VTaW5rOjpvcGVyYXRvcj0oY2xhc3MgQ1FsMVBhcnNlU2luayBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDUWwxUGFyc2VTaW5rQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1JlZ2lzdHJ5TWluTWF4TGltaXRDb250cm9sICYgX19wdHI2NCBfX2NkZWNsIENSZWdpc3RyeU1pbk1heExpbWl0Q29udHJvbDo6b3BlcmF0b3I9KGNsYXNzIENSZWdpc3RyeU1pbk1heExpbWl0Q29udHJvbCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDUmVnaXN0cnlNaW5NYXhMaW1pdENvbnRyb2xAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU2FmZUFycmF5ICYgX19wdHI2NCBfX2NkZWNsIENTYWZlQXJyYXk6Om9wZXJhdG9yPShjbGFzcyBDU2FmZUFycmF5ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENTYWZlQXJyYXlAQFFFQUFBRUFWMEBBRUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU21hbGxBcnJheUJsb2IgJiBfX3B0cjY0IF9fY2RlY2wgQ1NtYWxsQXJyYXlCbG9iOjpvcGVyYXRvcj0oY2xhc3MgQ1NtYWxsQXJyYXlCbG9iIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENTbWFsbEFycmF5QmxvYkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTdGF0aWNDcml0U2VjICYgX19wdHI2NCBfX2NkZWNsIENTdGF0aWNDcml0U2VjOjpvcGVyYXRvcj0oY2xhc3MgQ1N0YXRpY0NyaXRTZWMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1N0YXRpY0NyaXRTZWNAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDVGV4dFRlbXBsYXRlICYgX19wdHI2NCBfX2NkZWNsIENUZXh0VGVtcGxhdGU6Om9wZXJhdG9yPShjbGFzcyBDVGV4dFRlbXBsYXRlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENUZXh0VGVtcGxhdGVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDVGltZXJHZW5lcmF0b3IgJiBfX3B0cjY0IF9fY2RlY2wgQ1RpbWVyR2VuZXJhdG9yOjpvcGVyYXRvcj0oY2xhc3MgQ1RpbWVyR2VuZXJhdG9yIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENUaW1lckdlbmVyYXRvckBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENUaW1lckluc3RydWN0aW9uICYgX19wdHI2NCBfX2NkZWNsIENUaW1lckluc3RydWN0aW9uOjpvcGVyYXRvcj0oY2xhc3MgQ1RpbWVySW5zdHJ1Y3Rpb24gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1RpbWVySW5zdHJ1Y3Rpb25AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDVW5rICYgX19wdHI2NCBfX2NkZWNsIENVbms6Om9wZXJhdG9yPShjbGFzcyBDVW5rIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENVbmtAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDVW5rSW50ZXJuYWwgJiBfX3B0cjY0IF9fY2RlY2wgQ1Vua0ludGVybmFsOjpvcGVyYXRvcj0oY2xhc3MgQ1Vua0ludGVybmFsIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENVbmtJbnRlcm5hbEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENVbmxvYWRJbnN0cnVjdGlvbiAmIF9fcHRyNjQgX19jZGVjbCBDVW5sb2FkSW5zdHJ1Y3Rpb246Om9wZXJhdG9yPShjbGFzcyBDVW5sb2FkSW5zdHJ1Y3Rpb24gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1VubG9hZEluc3RydWN0aW9uQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1ZhciAmIF9fcHRyNjQgX19jZGVjbCBDVmFyOjpvcGVyYXRvcj0oY2xhc3MgQ1ZhciBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDVmFyQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1ZhclZlY3RvciAmIF9fcHRyNjQgX19jZGVjbCBDVmFyVmVjdG9yOjpvcGVyYXRvcj0oY2xhc3MgQ1ZhclZlY3RvciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDVmFyVmVjdG9yQEBRRUFBQUVBVjBAQUVBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1dRTFNjYW5uZXIgJiBfX3B0cjY0IF9fY2RlY2wgQ1dRTFNjYW5uZXI6Om9wZXJhdG9yPShjbGFzcyBDV1FMU2Nhbm5lciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDV1FMU2Nhbm5lckBAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXU3RyaW5nQXJyYXkgJiBfX3B0cjY0IF9fY2RlY2wgQ1dTdHJpbmdBcnJheTo6b3BlcmF0b3I9KGNsYXNzIENXU3RyaW5nQXJyYXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1dTdHJpbmdBcnJheUBAUUVBQUFFQVYwQEFFQVYwQEBaDQorOyBwcml2YXRlOiBjbGFzcyBDV2JlbUNhbGxTZWN1cml0eSAmIF9fcHRyNjQgX19jZGVjbCBDV2JlbUNhbGxTZWN1cml0eTo6b3BlcmF0b3I9KGNsYXNzIENXYmVtQ2FsbFNlY3VyaXR5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENXYmVtQ2FsbFNlY3VyaXR5QEBBRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1diZW1Dcml0aWNhbFNlY3Rpb24gJiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1Dcml0aWNhbFNlY3Rpb246Om9wZXJhdG9yPShjbGFzcyBDV2JlbUNyaXRpY2FsU2VjdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDV2JlbUNyaXRpY2FsU2VjdGlvbkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXYmVtSW50ZXJ2YWwgJiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1JbnRlcnZhbDo6b3BlcmF0b3I9KGNsYXNzIENXYmVtSW50ZXJ2YWwgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1diZW1JbnRlcnZhbEBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDV2JlbVRpbWU6Om9wZXJhdG9yPShjbGFzcyBDV2JlbVRpbWUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1diZW1UaW1lQEBRRUFBWEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXYmVtVGltZVNwYW4gJiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1UaW1lU3Bhbjo6b3BlcmF0b3I9KGNsYXNzIENXYmVtVGltZVNwYW4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1diZW1UaW1lU3BhbkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXaW4zMkRlZmF1bHRBcmVuYSAmIF9fcHRyNjQgX19jZGVjbCBDV2luMzJEZWZhdWx0QXJlbmE6Om9wZXJhdG9yPShjbGFzcyBDV2luMzJEZWZhdWx0QXJlbmEgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1dpbjMyRGVmYXVsdEFyZW5hQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgTUQ1ICYgX19wdHI2NCBfX2NkZWNsIE1ENTo6b3BlcmF0b3I9KGNsYXNzIE1ENSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRNRDVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBRTDFfUGFyc2VyICYgX19wdHI2NCBfX2NkZWNsIFFMMV9QYXJzZXI6Om9wZXJhdG9yPShjbGFzcyBRTDFfUGFyc2VyIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFFMMV9QYXJzZXJAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBzdHJ1Y3QgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAmIF9fcHRyNjQgX19jZGVjbCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OOjpvcGVyYXRvcj0oc3RydWN0IFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTkBAUUVBQUFFQVUwQEFFQlUwQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBRTF9MRVZFTF8xX1RPS0VOICYgX19wdHI2NCBfX2NkZWNsIFFMX0xFVkVMXzFfVE9LRU46Om9wZXJhdG9yPShzdHJ1Y3QgUUxfTEVWRUxfMV9UT0tFTiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRRTF9MRVZFTF8xX1RPS0VOQEBRRUFBQUVBVTBAQUVCVTBAQFoNCis7IHB1YmxpYzogc3RydWN0IFFMX0xFVkVMXzFfVE9LRU4gJiBfX3B0cjY0IF9fY2RlY2wgUUxfTEVWRUxfMV9UT0tFTjo6b3BlcmF0b3I9KHN0cnVjdCBfdGFnX1diZW1RbDFUb2tlbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRRTF9MRVZFTF8xX1RPS0VOQEBRRUFBQUVBVTBAQUVCVV90YWdfV2JlbVFsMVRva2VuQEBAWg0KKzsgcHVibGljOiBjbGFzcyBSZWdpc3RyeSAmIF9fcHRyNjQgX19jZGVjbCBSZWdpc3RyeTo6b3BlcmF0b3I9KGNsYXNzIFJlZ2lzdHJ5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NFJlZ2lzdHJ5QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV1N0cmluZyAmIF9fcHRyNjQgX19jZGVjbCBXU3RyaW5nOjpvcGVyYXRvcj0oY2xhc3MgV1N0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRXU3RyaW5nQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV1N0cmluZyAmIF9fcHRyNjQgX19jZGVjbCBXU3RyaW5nOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz80V1N0cmluZ0BAUUVBQUFFQVYwQFBFQkdAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9Mb2NraXQgJiBfX3B0cjY0IF9fY2RlY2wgc3RkOjpfTG9ja2l0OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpfTG9ja2l0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NF9Mb2NraXRAc3RkQEBRRUFBQUVBVjAxQEFFQlYwMUBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRXZlbnRMb2dSZWNvcmQ6Om9wZXJhdG9yPT0oY2xhc3MgQ0V2ZW50TG9nUmVjb3JkIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/OENFdmVudExvZ1JlY29yZEBAUUVBQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTnRTaWQ6Om9wZXJhdG9yPT0oY2xhc3MgQ050U2lkICYgX19wdHI2NCkgX19wdHI2NA0KKz8/OENOdFNpZEBAUUVBQUhBRUFWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDUHJvcGVydHlOYW1lOjpvcGVyYXRvcj09KHN0cnVjdCBfdGFnX1diZW1Qcm9wZXJ0eU5hbWUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz84Q1Byb3BlcnR5TmFtZUBAUUVBQUhBRUJVX3RhZ19XYmVtUHJvcGVydHlOYW1lQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVmFyOjpvcGVyYXRvcj09KGNsYXNzIENWYXIgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz84Q1ZhckBAUUVBQUhBRUFWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVmFyVmVjdG9yOjpvcGVyYXRvcj09KGNsYXNzIENWYXJWZWN0b3IgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz84Q1ZhclZlY3RvckBAUUVBQUhBRUFWMEBAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCAmIF9fcHRyNjQgX19jZGVjbCBDRmxleEFycmF5OjpvcGVyYXRvcltdKGludCkgX19wdHI2NA0KKz8/QUNGbGV4QXJyYXlAQFFFQUFBRUFQRUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ0ZsZXhBcnJheTo6b3BlcmF0b3JbXShpbnQpY29uc3QgIF9fcHRyNjQNCis/P0FDRmxleEFycmF5QEBRRUJBUEVBWEhAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENTbWFsbEFycmF5QmxvYjo6b3BlcmF0b3JbXShpbnQpY29uc3QgIF9fcHRyNjQNCis/P0FDU21hbGxBcnJheUJsb2JAQFFFQkFQRUFYSEBaDQorOyBwdWJsaWM6IGNsYXNzIENWYXIgJiBfX3B0cjY0IF9fY2RlY2wgQ1ZhclZlY3Rvcjo6b3BlcmF0b3JbXShpbnQpIF9fcHRyNjQNCis/P0FDVmFyVmVjdG9yQEBRRUFBQUVBVkNWYXJAQEhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDV1N0cmluZ0FycmF5OjpvcGVyYXRvcltdKGludCljb25zdCAgX19wdHI2NA0KKz8/QUNXU3RyaW5nQXJyYXlAQFFFQkFQRUFHSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgV1N0cmluZzo6b3BlcmF0b3JbXShpbnQpY29uc3QgIF9fcHRyNjQNCis/P0FXU3RyaW5nQEBRRUJBR0hAWg0KKzsgcHVibGljOiBfX2NkZWNsIENIZXg6Om9wZXJhdG9yIGxvbmcodm9pZCkgX19wdHI2NA0KKz8/QkNIZXhAQFFFQUFKWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmFyOjpvcGVyYXRvciBzdHJ1Y3QgX0ZJTEVUSU1FKHZvaWQpIF9fcHRyNjQNCis/P0JDVmFyQEBRRUFBP0FVX0ZJTEVUSU1FQEBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWYXI6Om9wZXJhdG9yIGNoYXIodm9pZCkgX19wdHI2NA0KKz8/QkNWYXJAQFFFQUFEWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmFyOjpvcGVyYXRvciB1bnNpZ25lZCBjaGFyKHZvaWQpIF9fcHRyNjQNCis/P0JDVmFyQEBRRUFBRVhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zhcjo6b3BlcmF0b3Igc2hvcnQodm9pZCkgX19wdHI2NA0KKz8/QkNWYXJAQFFFQUFGWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmFyOjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCh2b2lkKSBfX3B0cjY0DQorPz9CQ1ZhckBAUUVBQUdYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWYXI6Om9wZXJhdG9yIGxvbmcodm9pZCkgX19wdHI2NA0KKz8/QkNWYXJAQFFFQUFKWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmFyOjpvcGVyYXRvciB1bnNpZ25lZCBsb25nKHZvaWQpIF9fcHRyNjQNCis/P0JDVmFyQEBRRUFBS1haDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zhcjo6b3BlcmF0b3IgZmxvYXQodm9pZCkgX19wdHI2NA0KKz8/QkNWYXJAQFFFQUFNWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmFyOjpvcGVyYXRvciBkb3VibGUodm9pZCkgX19wdHI2NA0KKz8/QkNWYXJAQFFFQUFOWFoNCis7IHB1YmxpYzogX19jZGVjbCBDVmFyOjpvcGVyYXRvciBjaGFyICogX19wdHI2NCh2b2lkKSBfX3B0cjY0DQorPz9CQ1ZhckBAUUVBQVBFQURYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWYXI6Om9wZXJhdG9yIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCh2b2lkKSBfX3B0cjY0DQorPz9CQ1ZhckBAUUVBQVBFQUdYWg0KKzsgcHVibGljOiBfX2NkZWNsIENWYXI6Om9wZXJhdG9yIHN0cnVjdCBfR1VJRCAqIF9fcHRyNjQodm9pZCkgX19wdHI2NA0KKz8/QkNWYXJAQFFFQUFQRUFVX0dVSURAQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zhcjo6b3BlcmF0b3Igc3RydWN0IHRhZ0JMT0IgKiBfX3B0cjY0KHZvaWQpIF9fcHRyNjQNCis/P0JDVmFyQEBRRUFBUEVBVXRhZ0JMT0JAQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1Zhcjo6b3BlcmF0b3IgY2xhc3MgQ1ZhclZlY3RvciAqIF9fcHRyNjQodm9pZCkgX19wdHI2NA0KKz8/QkNWYXJAQFFFQUFQRUFWQ1ZhclZlY3RvckBAWFoNCis7IHB1YmxpYzogX19jZGVjbCBXU3RyaW5nOjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQodm9pZCkgX19wdHI2NA0KKz8/QldTdHJpbmdAQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogX19jZGVjbCBXU3RyaW5nOjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQodm9pZCljb25zdCAgX19wdHI2NA0KKz8/QldTdHJpbmdAQFFFQkFQRUJHWFoNCis7IHB1YmxpYzogY2xhc3MgQ1diZW1JbnRlcnZhbCAgX19jZGVjbCBDV2JlbUludGVydmFsOjpvcGVyYXRvciooZG91YmxlKWNvbnN0ICBfX3B0cjY0DQorPz9EQ1diZW1JbnRlcnZhbEBAUUVCQT9BVjBATkBaDQorOyBwdWJsaWM6IGNsYXNzIENXYmVtVGltZSAgX19jZGVjbCBDV2JlbVRpbWU6Om9wZXJhdG9yLShjbGFzcyBDV2JlbVRpbWVTcGFuIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/R0NXYmVtVGltZUBAUUVCQT9BVjBAQUVCVkNXYmVtVGltZVNwYW5AQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXYmVtSW50ZXJ2YWwgIF9fY2RlY2wgQ1diZW1UaW1lOjpvcGVyYXRvci0oY2xhc3MgQ1diZW1UaW1lIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/R0NXYmVtVGltZUBAUUVCQT9BVkNXYmVtSW50ZXJ2YWxAQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXYmVtSW50ZXJ2YWwgIF9fY2RlY2wgQ1diZW1JbnRlcnZhbDo6b3BlcmF0b3IrKGNsYXNzIENXYmVtSW50ZXJ2YWwpY29uc3QgIF9fcHRyNjQNCis/P0hDV2JlbUludGVydmFsQEBRRUJBP0FWMEBWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbVRpbWUgIF9fY2RlY2wgQ1diZW1UaW1lOjpvcGVyYXRvcisoY2xhc3MgQ1diZW1JbnRlcnZhbCBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/P0hDV2JlbVRpbWVAQFFFQkE/QVYwQEFFQlZDV2JlbUludGVydmFsQEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbVRpbWUgIF9fY2RlY2wgQ1diZW1UaW1lOjpvcGVyYXRvcisoY2xhc3MgQ1diZW1UaW1lU3BhbiBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/P0hDV2JlbVRpbWVAQFFFQkE/QVYwQEFFQlZDV2JlbVRpbWVTcGFuQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV2JlbUludGVydmFsOjpvcGVyYXRvcjwoY2xhc3MgQ1diZW1JbnRlcnZhbCkgX19wdHI2NA0KKz8/TUNXYmVtSW50ZXJ2YWxAQFFFQUFIVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1diZW1UaW1lOjpvcGVyYXRvcjwoY2xhc3MgQ1diZW1UaW1lIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/TUNXYmVtVGltZUBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXU3RyaW5nOjpvcGVyYXRvcjwodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz9NV1N0cmluZ0BAUUVCQUhQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1diZW1UaW1lOjpvcGVyYXRvcjw9KGNsYXNzIENXYmVtVGltZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/P05DV2JlbVRpbWVAQFFFQkFIQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV1N0cmluZzo6b3BlcmF0b3I8PSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/P05XU3RyaW5nQEBRRUJBSFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV2JlbUludGVydmFsOjpvcGVyYXRvcj4oY2xhc3MgQ1diZW1JbnRlcnZhbCkgX19wdHI2NA0KKz8/T0NXYmVtSW50ZXJ2YWxAQFFFQUFIVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1diZW1UaW1lOjpvcGVyYXRvcj4oY2xhc3MgQ1diZW1UaW1lIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/T0NXYmVtVGltZUBAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXU3RyaW5nOjpvcGVyYXRvcj4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorPz9PV1N0cmluZ0BAUUVCQUhQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1diZW1UaW1lOjpvcGVyYXRvcj49KGNsYXNzIENXYmVtVGltZSBjb25zdCAmIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/P1BDV2JlbVRpbWVAQFFFQkFIQUVCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV1N0cmluZzo6b3BlcmF0b3I+PSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/P1BXU3RyaW5nQEBRRUJBSFBFQkdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENJZGVudGl0eVRlc3Q6Om9wZXJhdG9yKCkoY2xhc3MgQ1RpbWVySW5zdHJ1Y3Rpb24gKiBfX3B0cjY0KSBfX3B0cjY0DQorPz9SQ0lkZW50aXR5VGVzdEBAVUVBQUhQRUFWQ1RpbWVySW5zdHJ1Y3Rpb25AQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdTdHJpbmcgIF9fY2RlY2wgV1N0cmluZzo6b3BlcmF0b3IoKShpbnQsaW50KWNvbnN0ICBfX3B0cjY0DQorPz9SV1N0cmluZ0BAUUVCQT9BVjBASEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1diZW1JbnRlcnZhbDo6b3BlcmF0b3IrPShjbGFzcyBDV2JlbUludGVydmFsKSBfX3B0cjY0DQorPz9ZQ1diZW1JbnRlcnZhbEBAUUVBQVhWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXU3RyaW5nICYgX19wdHI2NCBfX2NkZWNsIFdTdHJpbmc6Om9wZXJhdG9yKz0oY2xhc3MgV1N0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/P1lXU3RyaW5nQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV1N0cmluZyAmIF9fcHRyNjQgX19jZGVjbCBXU3RyaW5nOjpvcGVyYXRvcis9KHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorPz9ZV1N0cmluZ0BAUUVBQUFFQVYwQEdAWg0KKzsgcHVibGljOiBjbGFzcyBXU3RyaW5nICYgX19wdHI2NCBfX2NkZWNsIFdTdHJpbmc6Om9wZXJhdG9yKz0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz9ZV1N0cmluZ0BAUUVBQUFFQVYwQFBFQkdAWg0KKzsgY29uc3QgIEM5WEFjZTo6YHZmdGFibGUnDQorPz9fN0M5WEFjZUBANkJADQorOyBjb25zdCAgQ0Fic3RyYWN0UWwxUGFyc2VyOjpgdmZ0YWJsZScNCis/P183Q0Fic3RyYWN0UWwxUGFyc2VyQEA2QkANCis7IGNvbnN0ICBDQXJlbmE6OmB2ZnRhYmxlJw0KKz8/XzdDQXJlbmFAQDZCQA0KKzsgY29uc3QgIENCYXNlQWNlOjpgdmZ0YWJsZScNCis/P183Q0Jhc2VBY2VAQDZCQA0KKzsgY29uc3QgIENCYXNpY1VubG9hZEluc3RydWN0aW9uOjpgdmZ0YWJsZScNCis/P183Q0Jhc2ljVW5sb2FkSW5zdHJ1Y3Rpb25AQDZCQA0KKzsgY29uc3QgIENCdWZmZXI6OmB2ZnRhYmxlJw0KKz8/XzdDQnVmZmVyQEA2QkANCis7IGNvbnN0ICBDQ29udGFpbmVyQ29udHJvbDo6YHZmdGFibGUnDQorPz9fN0NDb250YWluZXJDb250cm9sQEA2QkANCis7IGNvbnN0ICBDRXhlY1F1ZXVlOjpgdmZ0YWJsZScNCis/P183Q0V4ZWNRdWV1ZUBANkJADQorOyBjb25zdCAgQ0V4ZWNSZXF1ZXN0OjpgdmZ0YWJsZScNCis/P183Q0V4ZWNSZXF1ZXN0QEA2QkANCis7IGNvbnN0ICBDSGFsdGFibGU6OmB2ZnRhYmxlJw0KKz8/XzdDSGFsdGFibGVAQDZCQA0KKzsgY29uc3QgIENJZGVudGl0eVRlc3Q6OmB2ZnRhYmxlJw0KKz8/XzdDSWRlbnRpdHlUZXN0QEA2QkANCis7IGNvbnN0ICBDSW5zdHJ1Y3Rpb25UZXN0OjpgdmZ0YWJsZScNCis/P183Q0luc3RydWN0aW9uVGVzdEBANkJADQorOyBjb25zdCAgQ0xpZmVDb250cm9sOjpgdmZ0YWJsZScNCis/P183Q0xpZmVDb250cm9sQEA2QkANCis7IGNvbnN0ICBDTGltaXRDb250cm9sOjpgdmZ0YWJsZScNCis/P183Q0xpbWl0Q29udHJvbEBANkJADQorOyBjb25zdCAgQ01pbk1heExpbWl0Q29udHJvbDo6YHZmdGFibGUnDQorPz9fN0NNaW5NYXhMaW1pdENvbnRyb2xAQDZCQA0KKzsgY29uc3QgIENOdEFjZTo6YHZmdGFibGUnDQorPz9fN0NOdEFjZUBANkJADQorOyBjb25zdCAgQ1FsMVBhcnNlU2luazo6YHZmdGFibGUnDQorPz9fN0NRbDFQYXJzZVNpbmtAQDZCQA0KKzsgY29uc3QgIENSZWdpc3RyeU1pbk1heExpbWl0Q29udHJvbDo6YHZmdGFibGUnDQorPz9fN0NSZWdpc3RyeU1pbk1heExpbWl0Q29udHJvbEBANkJADQorOyBjb25zdCAgQ1RpbWVyR2VuZXJhdG9yOjpgdmZ0YWJsZScNCis/P183Q1RpbWVyR2VuZXJhdG9yQEA2QkANCis7IGNvbnN0ICBDVGltZXJJbnN0cnVjdGlvbjo6YHZmdGFibGUnDQorPz9fN0NUaW1lckluc3RydWN0aW9uQEA2QkANCis7IGNvbnN0ICBDVW5rOjpgdmZ0YWJsZScNCis/P183Q1Vua0BANkJADQorOyBjb25zdCAgQ1Vua0ludGVybmFsOjpgdmZ0YWJsZScNCis/P183Q1Vua0ludGVybmFsQEA2QkANCis7IGNvbnN0ICBDVW5sb2FkSW5zdHJ1Y3Rpb246OmB2ZnRhYmxlJw0KKz8/XzdDVW5sb2FkSW5zdHJ1Y3Rpb25AQDZCQA0KKzsgY29uc3QgIENXYmVtQ2FsbFNlY3VyaXR5OjpgdmZ0YWJsZScNCis/P183Q1diZW1DYWxsU2VjdXJpdHlAQDZCQA0KKzsgY29uc3QgIENXaW4zMkRlZmF1bHRBcmVuYTo6YHZmdGFibGUnDQorPz9fN0NXaW4zMkRlZmF1bHRBcmVuYUBANkJADQorOyBjb25zdCAgUUwxX1BhcnNlcjo6YHZmdGFibGUnDQorPz9fN1FMMV9QYXJzZXJAQDZCQA0KKzsgY29uc3QgIFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT046OmB2ZnRhYmxlJw0KKz8/XzdRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEA2QkANCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENCdWZmZXI6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GQ0J1ZmZlckBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0V2ZW50TG9nOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNFdmVudExvZ0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZsZXhBcnJheTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDRmxleEFycmF5QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmxleFF1ZXVlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNGbGV4UXVldWVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENOdEFjbDo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDTnRBY2xAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENUZXh0VGVtcGxhdGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GQ1RleHRUZW1wbGF0ZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Vuazo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDVW5rQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDV1N0cmluZ0FycmF5OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNXU3RyaW5nQXJyYXlAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNUkNJQ29udHJvbDo6QWJvcnRDb21wcmVzc2lvbih2b2lkKSBfX3B0cjY0DQorP0Fib3J0Q29tcHJlc3Npb25AQ01SQ0lDb250cm9sQEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENNUkNJQ29udHJvbDo6QWJvcnRSZXF1ZXN0ZWQodm9pZCkgX19wdHI2NA0KKz9BYm9ydFJlcXVlc3RlZEBDTVJDSUNvbnRyb2xAQFFFQUFIWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENTYWZlQXJyYXk6OkFjY2Vzcyh2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWNjZXNzQENTYWZlQXJyYXlAQFFFQUFKUEVBUEVBWEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJZGVudGl0eVNlY3VyaXR5OjpBY2Nlc3NDaGVjayh2b2lkKSBfX3B0cjY0DQorP0FjY2Vzc0NoZWNrQENJZGVudGl0eVNlY3VyaXR5QEBRRUFBSFhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDVmFyVmVjdG9yOjpBY2Nlc3NSYXdBcnJheSh2b2lkICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWNjZXNzUmF3QXJyYXlAQ1ZhclZlY3RvckBAUUVBQUpQRUFQRUFYQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0ZsZXhBcnJheTo6QWRkKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEBDRmxleEFycmF5QEBRRUFBSFBFQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDTWluTWF4TGltaXRDb250cm9sOjpBZGQodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEBDTWluTWF4TGltaXRDb250cm9sQEBVRUFBSktLUEVBS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENWYXJWZWN0b3I6OkFkZChjbGFzcyBDVmFyICYgX19wdHI2NCkgX19wdHI2NA0KKz9BZGRAQ1ZhclZlY3RvckBAUUVBQUhBRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1ZhclZlY3Rvcjo6QWRkKGNsYXNzIENWYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEBDVmFyVmVjdG9yQEBRRUFBSFBFQVZDVmFyQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV1N0cmluZ0FycmF5OjpBZGQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEBDV1N0cmluZ0FycmF5QEBRRUFBSFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTnRBY2w6OkFkZEFjZShjbGFzcyBDTnRBY2UgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEFjZUBDTnRBY2xAQFFFQUFIUEVBVkNOdEFjZUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTjo6QWRkQWdncmVnYXRpb25Qcm9wZXJ0eShjbGFzcyBDUHJvcGVydHlOYW1lIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9BZGRBZ2dyZWdhdGlvblByb3BlcnR5QFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT05AQFVFQUFYQUVCVkNQcm9wZXJ0eU5hbWVAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT046OkFkZEFsbEFnZ3JlZ2F0aW9uUHJvcGVydGllcyh2b2lkKSBfX3B0cjY0DQorP0FkZEFsbEFnZ3JlZ2F0aW9uUHJvcGVydGllc0BRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT046OkFkZEFsbFByb3BlcnRpZXModm9pZCkgX19wdHI2NA0KKz9BZGRBbGxQcm9wZXJ0aWVzQFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT05AQFVFQUFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENBYnN0cmFjdFFsMVBhcnNlcjo6QWRkQXBwcm9wcmlhdGVUb2tlbihzdHJ1Y3QgX3RhZ19XYmVtUWwxVG9rZW4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEFwcHJvcHJpYXRlVG9rZW5AQ0Fic3RyYWN0UWwxUGFyc2VyQEBJRUFBWEFFQlVfdGFnX1diZW1RbDFUb2tlbkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1NhZmVBcnJheTo6QWRkQlNUUih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkQlNUUkBDU2FmZUFycmF5QEBRRUFBSFBFQUdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU2FmZUFycmF5OjpBZGRCb29sKHNob3J0KSBfX3B0cjY0DQorP0FkZEJvb2xAQ1NhZmVBcnJheUBAUUVBQUhGQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1NhZmVBcnJheTo6QWRkQnl0ZSh1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP0FkZEJ5dGVAQ1NhZmVBcnJheUBAUUVBQUhFQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1NhZmVBcnJheTo6QWRkRGlzcGF0Y2goc3RydWN0IElEaXNwYXRjaCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkRGlzcGF0Y2hAQ1NhZmVBcnJheUBAUUVBQUhQRUFVSURpc3BhdGNoQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU2FmZUFycmF5OjpBZGREb3VibGUoZG91YmxlKSBfX3B0cjY0DQorP0FkZERvdWJsZUBDU2FmZUFycmF5QEBRRUFBSE5AWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Byb3BlcnR5TmFtZTo6QWRkRWxlbWVudCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkRWxlbWVudEBDUHJvcGVydHlOYW1lQEBRRUFBWFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU2FmZUFycmF5OjpBZGRGbG9hdChmbG9hdCkgX19wdHI2NA0KKz9BZGRGbG9hdEBDU2FmZUFycmF5QEBRRUFBSE1AWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OOjpBZGRIYXZpbmdUb2tlbihzdHJ1Y3QgX3RhZ19XYmVtUWwxVG9rZW4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZEhhdmluZ1Rva2VuQFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT05AQFVFQUFYQUVCVV90YWdfV2JlbVFsMVRva2VuQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0V2ZW50TG9nUmVjb3JkOjpBZGRJbnNlcnRpb25TdHJpbmcoY2xhc3MgQ0luc2VydGlvblN0cmluZyAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkSW5zZXJ0aW9uU3RyaW5nQENFdmVudExvZ1JlY29yZEBASUVBQVhBRUFWQ0luc2VydGlvblN0cmluZ0BAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1NhZmVBcnJheTo6QWRkTG9uZyhsb25nKSBfX3B0cjY0DQorP0FkZExvbmdAQ1NhZmVBcnJheUBAUUVBQUhKQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0xpbWl0Q29udHJvbDo6QWRkTWVtYmVyKHZvaWQpIF9fcHRyNjQNCis/QWRkTWVtYmVyQENMaW1pdENvbnRyb2xAQFVFQUFKWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTjo6QWRkUHJvcGVydHkoY2xhc3MgQ1Byb3BlcnR5TmFtZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkUHJvcGVydHlAUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTkBAVUVBQVhBRUJWQ1Byb3BlcnR5TmFtZUBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENFdmVudExvZzo6QWRkUmVjb3JkKGNsYXNzIENFdmVudExvZ1JlY29yZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkUmVjb3JkQENFdmVudExvZ0BASUVBQVhQRUFWQ0V2ZW50TG9nUmVjb3JkQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDQmFzaWNVbmxvYWRJbnN0cnVjdGlvbjo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQENCYXNpY1VubG9hZEluc3RydWN0aW9uQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENCdWZmZXI6OkFkZFJlZih2b2lkKSBfX3B0cjY0DQorP0FkZFJlZkBDQnVmZmVyQEBVRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENDb250YWluZXJDb250cm9sOjpBZGRSZWYoc3RydWN0IElVbmtub3duICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRSZWZAQ0NvbnRhaW5lckNvbnRyb2xAQFVFQUFYUEVBVUlVbmtub3duQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0V4ZWNRdWV1ZTo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQENFeGVjUXVldWVAQFFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1Vuazo6QWRkUmVmKHZvaWQpIF9fcHRyNjQNCis/QWRkUmVmQENVbmtAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1Vua0ludGVybmFsOjpBZGRSZWYodm9pZCkgX19wdHI2NA0KKz9BZGRSZWZAQ1Vua0ludGVybmFsQEBVRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENXYmVtQ2FsbFNlY3VyaXR5OjpBZGRSZWYodm9pZCkgX19wdHI2NA0KKz9BZGRSZWZAQ1diZW1DYWxsU2VjdXJpdHlAQFVFQUFLWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT046OkFkZFJlZih2b2lkKSBfX3B0cjY0DQorP0FkZFJlZkBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBRRUFBWFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBDU2FmZUFycmF5OjpBZGRTY2FsYXIodW5pb24gU0FfQXJyYXlTY2FsYXIpIF9fcHRyNjQNCis/QWRkU2NhbGFyQENTYWZlQXJyYXlAQEFFQUFIVFNBX0FycmF5U2NhbGFyQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU2FmZUFycmF5OjpBZGRTaG9ydChzaG9ydCkgX19wdHI2NA0KKz9BZGRTaG9ydEBDU2FmZUFycmF5QEBRRUFBSEZAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTjo6QWRkVG9rZW4oc3RydWN0IFFMX0xFVkVMXzFfVE9LRU4gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkZFRva2VuQFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT05AQFFFQUFYQUVCVVFMX0xFVkVMXzFfVE9LRU5AQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT046OkFkZFRva2VuKHN0cnVjdCBfdGFnX1diZW1RbDFUb2tlbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QWRkVG9rZW5AUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTkBAVUVBQVhBRUJVX3RhZ19XYmVtUWwxVG9rZW5AQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTYWZlQXJyYXk6OkFkZFVua25vd24oc3RydWN0IElVbmtub3duICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRVbmtub3duQENTYWZlQXJyYXlAQFFFQUFIUEVBVUlVbmtub3duQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU2FmZUFycmF5OjpBZGRWYXJpYW50KHN0cnVjdCB0YWdWQVJJQU5UICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRWYXJpYW50QENTYWZlQXJyYXlAQFFFQUFIUEVBVXRhZ1ZBUklBTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENFeGVjUXVldWU6OkFkanVzdEluaXRpYWxQcmlvcml0eShjbGFzcyBDRXhlY1JlcXVlc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkanVzdEluaXRpYWxQcmlvcml0eUBDRXhlY1F1ZXVlQEBNRUFBWFBFQVZDRXhlY1JlcXVlc3RAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENFeGVjUXVldWU6OkFkanVzdFByaW9yaXR5Rm9yUGFzc2luZyhjbGFzcyBDRXhlY1JlcXVlc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FkanVzdFByaW9yaXR5Rm9yUGFzc2luZ0BDRXhlY1F1ZXVlQEBNRUFBWFBFQVZDRXhlY1JlcXVlc3RAQEBaDQorOyB2b2lkIF9fY2RlY2wgQWRqdXN0UHJpdklmTG9jYWxTeXN0ZW0odm9pZCAqIF9fcHRyNjQpDQorP0FkanVzdFByaXZJZkxvY2FsU3lzdGVtQEBZQVhQRUFYQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENCdWZmZXI6OkFkdmFuY2UodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9BZHZhbmNlQENCdWZmZXJAQFFFQUFKS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENXUUxTY2FubmVyOjpBbGlhc1RvVGFibGUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FsaWFzVG9UYWJsZUBDV1FMU2Nhbm5lckBAUUVBQVFFQUdQRUFHQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX19wdHI2NCBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6QWxsb2ModW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9BbGxvY0BDV2luMzJEZWZhdWx0QXJlbmFAQFVFQUFQRUFYX0tAWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OkFsbG9jQW1QbSh2b2lkKSBfX3B0cjY0DQorP0FsbG9jQW1QbUBDRGF0ZVRpbWVQYXJzZXJAQElFQUFQRUFHWFoNCis7IGludCBfX2NkZWNsIEFsbG9jV0NIQVJUb01CUyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9BbGxvY1dDSEFSVG9NQlNAQFlBSFBFQUdQRUFQRUFEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1RleHRUZW1wbGF0ZTo6QXBwbHkoc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0FwcGx5QENUZXh0VGVtcGxhdGVAQFFFQUFQRUFHUEVBVUlXYmVtQ2xhc3NPYmplY3RAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmxleEFycmF5OjpCaW5kKGNsYXNzIENGbGV4QXJyYXkgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0JpbmRAQ0ZsZXhBcnJheUBAUUVBQVhBRUFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV1N0cmluZzo6QmluZFB0cih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QmluZFB0ckBXU3RyaW5nQEBRRUFBWFBFQUdAWg0KKzsgdm9pZCBfX2NkZWNsIEJsb2JBc3NpZ24oc3RydWN0IHRhZ0JMT0IgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsaW50KQ0KKz9CbG9iQXNzaWduQEBZQVhQRUFVdGFnQkxPQkBAUEVBWEtIQFoNCis7IHZvaWQgX19jZGVjbCBCbG9iQ2xlYXIoc3RydWN0IHRhZ0JMT0IgKiBfX3B0cjY0KQ0KKz9CbG9iQ2xlYXJAQFlBWFBFQVV0YWdCTE9CQEBAWg0KKzsgc3RydWN0IHRhZ0JMT0IgIF9fY2RlY2wgQmxvYkNvcHkoc3RydWN0IHRhZ0JMT0IgY29uc3QgKiBfX3B0cjY0KQ0KKz9CbG9iQ29weUBAWUE/QVV0YWdCTE9CQEBQRUJVMUBAWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEJyZWFrT25EYmdBbmRSZW50ZXJMb29wKHZvaWQpDQorP0JyZWFrT25EYmdBbmRSZW50ZXJMb29wQEBZQUtYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0luc3RydWN0aW9uUXVldWU6OkJyZWFrV2FpdCh2b2lkKSBfX3B0cjY0DQorP0JyZWFrV2FpdEBDSW5zdHJ1Y3Rpb25RdWV1ZUBAUUVBQVhYWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgQ1dRTFNjYW5uZXI6OkJ1aWxkU1dRTENvbFJlZihjbGFzcyBDRmxleEFycmF5ICYgX19wdHI2NCxzdHJ1Y3QgU1dRTENvbFJlZiAmIF9fcHRyNjQpIF9fcHRyNjQNCis/QnVpbGRTV1FMQ29sUmVmQENXUUxTY2FubmVyQEBBRUFBSEFFQVZDRmxleEFycmF5QEBBRUFVU1dRTENvbFJlZkBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0V4ZWNRdWV1ZTo6Q2FsY1NpdE91dFBlbmFsdHkobG9uZykgX19wdHI2NA0KKz9DYWxjU2l0T3V0UGVuYWx0eUBDRXhlY1F1ZXVlQEBNRUFBS0pAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVmFyOjpDYW5EZWxldGUodm9pZCkgX19wdHI2NA0KKz9DYW5EZWxldGVAQ1ZhckBAUUVBQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0luc3RydWN0aW9uUXVldWU6OkNoYW5nZShjbGFzcyBDVGltZXJJbnN0cnVjdGlvbiAqIF9fcHRyNjQsY2xhc3MgQ1diZW1UaW1lKSBfX3B0cjY0DQorP0NoYW5nZUBDSW5zdHJ1Y3Rpb25RdWV1ZUBAUUVBQUpQRUFWQ1RpbWVySW5zdHJ1Y3Rpb25AQFZDV2JlbVRpbWVAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENWYXI6OkNoYW5nZVR5cGVUbyh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9DaGFuZ2VUeXBlVG9AQ1ZhckBAUUVBQUhHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Zhcjo6Q2hhbmdlVHlwZVRvRXgodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9DaGFuZ2VUeXBlVG9FeEBDVmFyQEBRRUFBSEdLQFoNCis7IGxvbmcgX19jZGVjbCBDaGFuZ2VWYXJpYW50VG9DSU1UWVBFKHN0cnVjdCB0YWdWQVJJQU5UICogX19wdHI2NCxzdHJ1Y3QgdGFnVkFSSUFOVCAqIF9fcHRyNjQsbG9uZykNCis/Q2hhbmdlVmFyaWFudFRvQ0lNVFlQRUBAWUFKUEVBVXRhZ1ZBUklBTlRAQDBKQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENEYXRlVGltZVBhcnNlcjo6Q2hlY2tETVRGRGF0ZVRpbWVGb3JtYXQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCxpbnQpDQorP0NoZWNrRE1URkRhdGVUaW1lRm9ybWF0QENEYXRlVGltZVBhcnNlckBAU0FIUEVCR0hIQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpDaGVja0RNVEZEYXRlVGltZUZvcm1hdEludGVybmFsKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DaGVja0RNVEZEYXRlVGltZUZvcm1hdEludGVybmFsQENEYXRlVGltZVBhcnNlckBASUVBQUhQRUJHQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENEYXRlVGltZVBhcnNlcjo6Q2hlY2tETVRGRGF0ZVRpbWVJbnRlcnZhbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0NoZWNrRE1URkRhdGVUaW1lSW50ZXJ2YWxAQ0RhdGVUaW1lUGFyc2VyQEBTQUhQRUJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpDaGVja0RhdGVGb3JtYXQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9DaGVja0RhdGVGb3JtYXRAQ0RhdGVUaW1lUGFyc2VyQEBJRUFBSFBFQkdIQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpDaGVja1RpbWVGb3JtYXQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9DaGVja1RpbWVGb3JtYXRAQ0RhdGVUaW1lUGFyc2VyQEBJRUFBSFBFQkdIQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDU2FmZUFycmF5OjpDaGVja1R5cGUoaW50KSBfX3B0cjY0DQorP0NoZWNrVHlwZUBDU2FmZUFycmF5QEBBRUFBWEhAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENVbmxvYWRJbnN0cnVjdGlvbjo6Q2xlYXIodm9pZCkNCis/Q2xlYXJAQ1VubG9hZEluc3RydWN0aW9uQEBTQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENXUUxTY2FubmVyOjpDbGVhclByb3BSZWZzKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJQcm9wUmVmc0BDV1FMU2Nhbm5lckBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENXUUxTY2FubmVyOjpDbGVhclRhYmxlUmVmcyh2b2lkKSBfX3B0cjY0DQorP0NsZWFyVGFibGVSZWZzQENXUUxTY2FubmVyQEBBRUFBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ1dRTFNjYW5uZXI6OkNsZWFyVG9rZW5zKHZvaWQpIF9fcHRyNjQNCis/Q2xlYXJUb2tlbnNAQ1dRTFNjYW5uZXJAQEFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0J1ZmZlcjo6Q2xvbmUoc3RydWN0IElTdHJlYW0gKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9DbG9uZUBDQnVmZmVyQEBVRUFBSlBFQVBFQVVJU3RyZWFtQEBAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCAqIF9fcHRyNjQgX19jZGVjbCBDU21hbGxBcnJheUJsb2I6OkNsb25lRGF0YSh2b2lkKSBfX3B0cjY0DQorP0Nsb25lRGF0YUBDU21hbGxBcnJheUJsb2JAQFFFQUFQRUFQRUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DYWxsU2VjdXJpdHk6OkNsb25lVGhyZWFkQ29udGV4dChpbnQpIF9fcHRyNjQNCis/Q2xvbmVUaHJlYWRDb250ZXh0QENXYmVtQ2FsbFNlY3VyaXR5QEBVRUFBSkhAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIENXYmVtQ2FsbFNlY3VyaXR5OjpDbG9uZVRocmVhZFRva2VuKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/Q2xvbmVUaHJlYWRUb2tlbkBDV2JlbUNhbGxTZWN1cml0eUBAQUVBQUpLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0V2ZW50TG9nOjpDbG9zZSh2b2lkKSBfX3B0cjY0DQorP0Nsb3NlQENFdmVudExvZ0BAUUVBQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDQnVmZmVyOjpDb21taXQodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9Db21taXRAQ0J1ZmZlckBAVUVBQUpLQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX2NkZWNsIENGbGV4QXJyYXk6OkNvbXBhcmVFbHModm9pZCBjb25zdCAqIF9fcHRyNjQsdm9pZCBjb25zdCAqIF9fcHRyNjQpDQorP0NvbXBhcmVFbHNAQ0ZsZXhBcnJheUBAS0FIUEVCWDBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1NtYWxsQXJyYXlCbG9iOjpDb21wYXJlRWxzKHZvaWQgY29uc3QgKiBfX3B0cjY0LHZvaWQgY29uc3QgKiBfX3B0cjY0KQ0KKz9Db21wYXJlRWxzQENTbWFsbEFycmF5QmxvYkBAS0FIUEVCWDBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVmFyOjpDb21wYXJlVG8oY2xhc3MgQ1ZhciAmIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0NvbXBhcmVUb0BDVmFyQEBRRUFBSEFFQVYxQEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVmFyVmVjdG9yOjpDb21wYXJlVG8oY2xhc3MgQ1ZhclZlY3RvciAmIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0NvbXBhcmVUb0BDVmFyVmVjdG9yQEBRRUFBSEFFQVYxQEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZsZXhBcnJheTo6Q29tcHJlc3Modm9pZCkgX19wdHI2NA0KKz9Db21wcmVzc0BDRmxleEFycmF5QEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDV1N0cmluZ0FycmF5OjpDb21wcmVzcyh2b2lkKSBfX3B0cjY0DQorP0NvbXByZXNzQENXU3RyaW5nQXJyYXlAQFFFQUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgQ01SQ0lDb21wcmVzc2lvbjo6Q29tcHJlc3NCdWZmZXIodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGVudW0gQ01SQ0lDb21wcmVzc2lvbjo6Q29tcHJlc3Npb25MZXZlbCkgX19wdHI2NA0KKz9Db21wcmVzc0J1ZmZlckBDTVJDSUNvbXByZXNzaW9uQEBRRUFBSVBFQUVLMEtXNENvbXByZXNzaW9uTGV2ZWxAMUBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTVJDSUNvbXByZXNzaW9uOjpDb21wcmVzc0ZpbGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGVudW0gQ01SQ0lDb21wcmVzc2lvbjo6Q29tcHJlc3Npb25MZXZlbCxjbGFzcyBDTVJDSUNvbnRyb2wgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0NvbXByZXNzRmlsZUBDTVJDSUNvbXByZXNzaW9uQEBRRUFBSFBFQkcwS1c0Q29tcHJlc3Npb25MZXZlbEAxQFBFQVZDTVJDSUNvbnRyb2xAQEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENNUkNJQ29tcHJlc3Npb246OkNvbXByZXNzRmlsZVYxKGludCxpbnQsdW5zaWduZWQgbG9uZyxlbnVtIENNUkNJQ29tcHJlc3Npb246OkNvbXByZXNzaW9uTGV2ZWwsY2xhc3MgQ01SQ0lDb250cm9sICogX19wdHI2NCkgX19wdHI2NA0KKz9Db21wcmVzc0ZpbGVWMUBDTVJDSUNvbXByZXNzaW9uQEBJRUFBSEhIS1c0Q29tcHJlc3Npb25MZXZlbEAxQFBFQVZDTVJDSUNvbnRyb2xAQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX19jZGVjbCBDTWluTWF4TGltaXRDb250cm9sOjpDb21wdXRlUGVuYWx0eSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9Db21wdXRlUGVuYWx0eUBDTWluTWF4TGltaXRDb250cm9sQEBJRUFBSktLUEVBS1BFQUhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENUZXh0VGVtcGxhdGU6OkNvbmNhdFdpdGhvdXRRdW90ZXMoY2xhc3MgV1N0cmluZyAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db25jYXRXaXRob3V0UXVvdGVzQENUZXh0VGVtcGxhdGVAQEFFQUFYQUVBVldTdHJpbmdAQEFFQVBFQUdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTnRBY2w6OkNvbnRhaW5zU2lkKGNsYXNzIENOdFNpZCAmIF9fcHRyNjQsdW5zaWduZWQgY2hhciAmIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29udGFpbnNTaWRAQ050QWNsQEBRRUFBSEFFQVZDTnRTaWRAQEFFQUVAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIE1ENTo6Q29udGludWVUcmFuc2Zvcm0odm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IGNvbnN0KQ0KKz9Db250aW51ZVRyYW5zZm9ybUBNRDVAQFNBWFBFQVhJUUVBRUBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDU21hbGxBcnJheUJsb2I6OkNvcHlEYXRhKGNsYXNzIENTbWFsbEFycmF5QmxvYiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weURhdGFAQ1NtYWxsQXJyYXlCbG9iQEBJRUFBWFBFQVYxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENGbGV4QXJyYXk6OkNvcHlEYXRhRnJvbShjbGFzcyBDRmxleEFycmF5IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5RGF0YUZyb21AQ0ZsZXhBcnJheUBAUUVBQUhBRUJWMUBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDQnVmZmVyOjpDb3B5VG8oc3RydWN0IElTdHJlYW0gKiBfX3B0cjY0LHVuaW9uIF9VTEFSR0VfSU5URUdFUix1bmlvbiBfVUxBUkdFX0lOVEVHRVIgKiBfX3B0cjY0LHVuaW9uIF9VTEFSR0VfSU5URUdFUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/Q29weVRvQENCdWZmZXJAQFVFQUFKUEVBVUlTdHJlYW1AQFRfVUxBUkdFX0lOVEVHRVJAQFBFQVQzQDJAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTnRTaWQ6OkNvcHlUbyh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9Db3B5VG9AQ050U2lkQEBRRUFBSFBFQVhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV1FMU2Nhbm5lcjo6Q291bnRRdWVyeSh2b2lkKSBfX3B0cjY0DQorP0NvdW50UXVlcnlAQ1dRTFNjYW5uZXJAQFFFQUFIWFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIENTbWFsbEFycmF5QmxvYiAqIF9fcHRyNjQgX19jZGVjbCBDU21hbGxBcnJheUJsb2I6OkNyZWF0ZUJsb2IoaW50KQ0KKz9DcmVhdGVCbG9iQENTbWFsbEFycmF5QmxvYkBAU0FQRUFWMUBIQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIElXYmVtQ2FsbFNlY3VyaXR5ICogX19wdHI2NCBfX2NkZWNsIENXYmVtQ2FsbFNlY3VyaXR5OjpDcmVhdGVJbnN0KHZvaWQpDQorP0NyZWF0ZUluc3RAQ1diZW1DYWxsU2VjdXJpdHlAQFNBUEVBVklXYmVtQ2FsbFNlY3VyaXR5QEBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIENFeGVjUXVldWU6OkNyZWF0ZU5ld1RocmVhZCh2b2lkKSBfX3B0cjY0DQorP0NyZWF0ZU5ld1RocmVhZEBDRXhlY1F1ZXVlQEBNRUFBSFhaDQorOyBpbnQgX19jZGVjbCBDcml0aWNhbEZhaWxBREFQVHJhY2UoY2hhciBjb25zdCAqIF9fcHRyNjQpDQorP0NyaXRpY2FsRmFpbEFEQVBUcmFjZUBAWUFIUEVCREBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENBYnN0cmFjdFFsMVBhcnNlcjo6Q3VycmVudExpbmUodm9pZCkgX19wdHI2NA0KKz9DdXJyZW50TGluZUBDQWJzdHJhY3RRbDFQYXJzZXJAQFFFQUFIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjpDdXJyZW50VG9rZW4odm9pZCkgX19wdHI2NA0KKz9DdXJyZW50VG9rZW5AQ0Fic3RyYWN0UWwxUGFyc2VyQEBRRUFBUEVBR1haDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENEYXRlVGltZVBhcnNlcjo6RGF0ZUZvcm1hdDEwKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0RhdGVGb3JtYXQxMEBDRGF0ZVRpbWVQYXJzZXJAQElFQUFIUEVCRzBIQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpEYXRlRm9ybWF0MTEodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/RGF0ZUZvcm1hdDExQENEYXRlVGltZVBhcnNlckBASUVBQUhQRUJHMEhAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OkRhdGVGb3JtYXQxMih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9EYXRlRm9ybWF0MTJAQ0RhdGVUaW1lUGFyc2VyQEBJRUFBSFBFQkcwSEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENEYXRlVGltZVBhcnNlcjo6RGF0ZUZvcm1hdDEzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0RhdGVGb3JtYXQxM0BDRGF0ZVRpbWVQYXJzZXJAQElFQUFIUEVCRzBIQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpEYXRlRm9ybWF0MTQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/RGF0ZUZvcm1hdDE0QENEYXRlVGltZVBhcnNlckBASUVBQUhQRUJHMEhAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OkRhdGVGb3JtYXQxNSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0RhdGVGb3JtYXQxNUBDRGF0ZVRpbWVQYXJzZXJAQElFQUFIUEVCR0hAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OkRhdGVGb3JtYXQxKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/RGF0ZUZvcm1hdDFAQ0RhdGVUaW1lUGFyc2VyQEBJRUFBSFBFQkdIQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpEYXRlRm9ybWF0Mih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0RhdGVGb3JtYXQyQENEYXRlVGltZVBhcnNlckBASUVBQUhQRUJHSEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENEYXRlVGltZVBhcnNlcjo6RGF0ZUZvcm1hdDModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9EYXRlRm9ybWF0M0BDRGF0ZVRpbWVQYXJzZXJAQElFQUFIUEVCR0hAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OkRhdGVGb3JtYXQ0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/RGF0ZUZvcm1hdDRAQ0RhdGVUaW1lUGFyc2VyQEBJRUFBSFBFQkdIQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpEYXRlRm9ybWF0NSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0RhdGVGb3JtYXQ1QENEYXRlVGltZVBhcnNlckBASUVBQUhQRUJHSEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENEYXRlVGltZVBhcnNlcjo6RGF0ZUZvcm1hdDYodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9EYXRlRm9ybWF0NkBDRGF0ZVRpbWVQYXJzZXJAQElFQUFIUEVCR0hAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OkRhdGVGb3JtYXQ3KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/RGF0ZUZvcm1hdDdAQ0RhdGVUaW1lUGFyc2VyQEBJRUFBSFBFQkdIQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpEYXRlRm9ybWF0OCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0RhdGVGb3JtYXQ4QENEYXRlVGltZVBhcnNlckBASUVBQUhQRUJHSEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENEYXRlVGltZVBhcnNlcjo6RGF0ZUZvcm1hdDkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/RGF0ZUZvcm1hdDlAQ0RhdGVUaW1lUGFyc2VyQEBJRUFBSFBFQkcwSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmxleEFycmF5OjpEZWJ1Z0R1bXAodm9pZCkgX19wdHI2NA0KKz9EZWJ1Z0R1bXBAQ0ZsZXhBcnJheUBAUUVBQVhYWg0KKzsgaW50IF9fY2RlY2wgRGVidWdUcmFjZShjaGFyLGNoYXIgY29uc3QgKiBfX3B0cjY0LC4uLikNCis/RGVidWdUcmFjZUBAWUFIRFBFQkRaWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0ZsZXhRdWV1ZTo6RGVjcmVtZW50SW5kZXgoaW50ICYgX19wdHI2NCkgX19wdHI2NA0KKz9EZWNyZW1lbnRJbmRleEBDRmxleFF1ZXVlQEBJRUFBWEFFQUhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTnRBY2w6OkRlbGV0ZUFjZShpbnQpIF9fcHRyNjQNCis/RGVsZXRlQWNlQENOdEFjbEBAUUVBQUhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENBYnN0cmFjdFFsMVBhcnNlcjo6RGVsZXRlUHJvcGVydHlOYW1lKHZvaWQpIF9fcHRyNjQNCis/RGVsZXRlUHJvcGVydHlOYW1lQENBYnN0cmFjdFFsMVBhcnNlckBASUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV1N0cmluZ0FycmF5OjpEZWxldGVTdHIoaW50KSBfX3B0cjY0DQorP0RlbGV0ZVN0ckBDV1N0cmluZ0FycmF5QEBRRUFBSEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIFdTdHJpbmc6OkRlbGV0ZVN0cmluZyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlU3RyaW5nQFdTdHJpbmdAQEFFQUFYUEVBR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFJlZ2lzdHJ5OjpEZWxldGVWYWx1ZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVsZXRlVmFsdWVAUmVnaXN0cnlAQFFFQUFIUEVBR0BaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ0ZsZXhRdWV1ZTo6RGVxdWV1ZSh2b2lkKSBfX3B0cjY0DQorP0RlcXVldWVAQ0ZsZXhRdWV1ZUBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0luc3RydWN0aW9uUXVldWU6OkRlcXVldWUoY2xhc3MgQ1RpbWVySW5zdHJ1Y3Rpb24gKiBfX3B0cjY0ICYgX19wdHI2NCxjbGFzcyBDV2JlbVRpbWUgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlcXVldWVAQ0luc3RydWN0aW9uUXVldWVAQFFFQUFKQUVBUEVBVkNUaW1lckluc3RydWN0aW9uQEBBRUFWQ1diZW1UaW1lQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGJvb2wgX19jZGVjbCBDOVhBY2U6OkRlc2VyaWFsaXplKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0Rlc2VyaWFsaXplQEM5WEFjZUBAVUVBQV9OUEVBRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgYm9vbCBfX2NkZWNsIENOdEFjZTo6RGVzZXJpYWxpemUodW5zaWduZWQgY2hhciAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RGVzZXJpYWxpemVAQ050QWNlQEBVRUFBX05QRUFFQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDV1N0cmluZ0FycmF5OjpEaWZmZXJlbmNlKGNsYXNzIENXU3RyaW5nQXJyYXkgJiBfX3B0cjY0LGNsYXNzIENXU3RyaW5nQXJyYXkgJiBfX3B0cjY0LGNsYXNzIENXU3RyaW5nQXJyYXkgJiBfX3B0cjY0KQ0KKz9EaWZmZXJlbmNlQENXU3RyaW5nQXJyYXlAQFNBWEFFQVYxQDAwQFoNCis7IHByb3RlY3RlZDogYm9vbCBfX2NkZWNsIENMaWtlOjpEb0xpa2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9Eb0xpa2VAQ0xpa2VAQElFQUFfTlBFQkcwR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0V4ZWNRdWV1ZTo6RG9lc05lZWROZXdUaHJlYWQoY2xhc3MgQ0V4ZWNSZXF1ZXN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Eb2VzTmVlZE5ld1RocmVhZEBDRXhlY1F1ZXVlQEBNRUFBSFBFQVZDRXhlY1JlcXVlc3RAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENWYXJWZWN0b3I6OkRvZXNWZWN0b3JUeXBlTWF0Y2hBcnJheVR5cGUodm9pZCkgX19wdHI2NA0KKz9Eb2VzVmVjdG9yVHlwZU1hdGNoQXJyYXlUeXBlQENWYXJWZWN0b3JAQFFFQUFIWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENXUUxTY2FubmVyOjpEdW1wKHZvaWQpIF9fcHRyNjQNCis/RHVtcEBDV1FMU2Nhbm5lckBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTjo6RHVtcChjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9EdW1wQFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT05AQFFFQUFYUEVCREBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBRTF9MRVZFTF8xX1RPS0VOOjpEdW1wKHN0cnVjdCBfaW9idWYgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0R1bXBAUUxfTEVWRUxfMV9UT0tFTkBAUUVBQVhQRUFVX2lvYnVmQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDRXhlY1JlcXVlc3Q6OkR1bXBFcnJvcih2b2lkKSBfX3B0cjY0DQorP0R1bXBFcnJvckBDRXhlY1JlcXVlc3RAQFVFQUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Zhcjo6RHVtcFRleHQoc3RydWN0IF9pb2J1ZiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/RHVtcFRleHRAQ1ZhckBAUUVBQUhQRUFVX2lvYnVmQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU2FmZUFycmF5OjpFbGVtZW50U2l6ZSh2b2lkKSBfX3B0cjY0DQorP0VsZW1lbnRTaXplQENTYWZlQXJyYXlAQFFFQUFIWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGbGV4QXJyYXk6OkVtcHR5KHZvaWQpIF9fcHRyNjQNCis/RW1wdHlAQ0ZsZXhBcnJheUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Byb3BlcnR5TmFtZTo6RW1wdHkodm9pZCkgX19wdHI2NA0KKz9FbXB0eUBDUHJvcGVydHlOYW1lQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU2FmZUFycmF5OjpFbXB0eSh2b2lkKSBfX3B0cjY0DQorP0VtcHR5QENTYWZlQXJyYXlAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENWYXI6OkVtcHR5KHZvaWQpIF9fcHRyNjQNCis/RW1wdHlAQ1ZhckBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1ZhclZlY3Rvcjo6RW1wdHkodm9pZCkgX19wdHI2NA0KKz9FbXB0eUBDVmFyVmVjdG9yQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDV1N0cmluZ0FycmF5OjpFbXB0eSh2b2lkKSBfX3B0cjY0DQorP0VtcHR5QENXU3RyaW5nQXJyYXlAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFdTdHJpbmc6OkVtcHR5KHZvaWQpIF9fcHRyNjQNCis/RW1wdHlAV1N0cmluZ0BAUUVBQVhYWg0KKzsgbG9uZyBfX2NkZWNsIEVuYWJsZUFsbFByaXZpbGVnZXModW5zaWduZWQgbG9uZykNCis/RW5hYmxlQWxsUHJpdmlsZWdlc0BAWUFKS0BaDQorOyBpbnQgX19jZGVjbCBFbmFibGVQcml2aWxlZ2UodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP0VuYWJsZVByaXZpbGVnZUBAWUFIS1BFQkdAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX2NkZWNsIENJZGVudGl0eVNlY3VyaXR5OjpFbmNyeXB0ZWRDYWxsKHZvaWQpIF9fcHRyNjQNCis/RW5jcnlwdGVkQ2FsbEBDSWRlbnRpdHlTZWN1cml0eUBAQUVBQV9OWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0V4ZWNRdWV1ZTo6RW5xdWV1ZShjbGFzcyBDRXhlY1JlcXVlc3QgKiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9FbnF1ZXVlQENFeGVjUXVldWVAQFVFQUFKUEVBVkNFeGVjUmVxdWVzdEBAUEVBUEVBWEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRmxleFF1ZXVlOjpFbnF1ZXVlKHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0VucXVldWVAQ0ZsZXhRdWV1ZUBAUUVBQV9OUEVBWEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSW5zdHJ1Y3Rpb25RdWV1ZTo6RW5xdWV1ZShjbGFzcyBDV2JlbVRpbWUsY2xhc3MgQ1RpbWVySW5zdHJ1Y3Rpb24gKiBfX3B0cjY0KSBfX3B0cjY0DQorP0VucXVldWVAQ0luc3RydWN0aW9uUXVldWVAQFFFQUFKVkNXYmVtVGltZUBAUEVBVkNUaW1lckluc3RydWN0aW9uQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0V4ZWNRdWV1ZTo6RW5xdWV1ZUFuZFdhaXQoY2xhc3MgQ0V4ZWNSZXF1ZXN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9FbnF1ZXVlQW5kV2FpdEBDRXhlY1F1ZXVlQEBRRUFBSlBFQVZDRXhlY1JlcXVlc3RAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRXhlY1F1ZXVlOjpFbnF1ZXVlV2l0aG91dFNsZWVwKGNsYXNzIENFeGVjUmVxdWVzdCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0VucXVldWVXaXRob3V0U2xlZXBAQ0V4ZWNRdWV1ZUBAUUVBQUpQRUFWQ0V4ZWNSZXF1ZXN0QEBQRUFQRUFYQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENQcm9wZXJ0eU5hbWU6OkVuc3VyZUFsbG9jYXRlZChsb25nKSBfX3B0cjY0DQorP0Vuc3VyZUFsbG9jYXRlZEBDUHJvcGVydHlOYW1lQEBJRUFBWEpAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRmxleEFycmF5OjpFbnN1cmVFeHRlbnQoaW50KSBfX3B0cjY0DQorP0Vuc3VyZUV4dGVudEBDRmxleEFycmF5QEBRRUFBSEhAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDU21hbGxBcnJheUJsb2IgKiBfX3B0cjY0IF9fY2RlY2wgQ1NtYWxsQXJyYXlCbG9iOjpFbnN1cmVFeHRlbnQoaW50KSBfX3B0cjY0DQorP0Vuc3VyZUV4dGVudEBDU21hbGxBcnJheUJsb2JAQElFQUFQRUFWMUBIQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDVGltZXJHZW5lcmF0b3I6OkVuc3VyZVJ1bm5pbmcodm9pZCkgX19wdHI2NA0KKz9FbnN1cmVSdW5uaW5nQENUaW1lckdlbmVyYXRvckBAQUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENCdWZmZXI6OkVuc3VyZVNpemUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9FbnN1cmVTaXplQENCdWZmZXJAQEFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ2hlY2tlZEluQ3JpdFNlYzo6RW50ZXIodm9pZCkgX19wdHI2NA0KKz9FbnRlckBDQ2hlY2tlZEluQ3JpdFNlY0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NyaXRTZWM6OkVudGVyKHZvaWQpIF9fcHRyNjQNCis/RW50ZXJAQ0NyaXRTZWNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENFeGVjUXVldWU6OkVudGVyKHZvaWQpIF9fcHRyNjQNCis/RW50ZXJAQ0V4ZWNRdWV1ZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0YXRpY0NyaXRTZWM6OkVudGVyKHZvaWQpIF9fcHRyNjQNCis/RW50ZXJAQ1N0YXRpY0NyaXRTZWNAQFFFQUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1diZW1Dcml0aWNhbFNlY3Rpb246OkVudGVyKHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/RW50ZXJAQ1diZW1Dcml0aWNhbFNlY3Rpb25AQFFFQUFIS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdTdHJpbmc6OkVxdWFsKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVhbEBXU3RyaW5nQEBRRUJBSFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXU3RyaW5nOjpFcXVhbE5vQ2FzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/RXF1YWxOb0Nhc2VAV1N0cmluZ0BAUUVCQUhQRUJHQFoNCis7IGludCBfX2NkZWNsIEVycm9yVHJhY2UoY2hhcixjaGFyIGNvbnN0ICogX19wdHI2NCwuLi4pDQorP0Vycm9yVHJhY2VAQFlBSERQRUJEWloNCis7IHB1YmxpYzogY2xhc3MgV1N0cmluZyAgX19jZGVjbCBXU3RyaW5nOjpFc2NhcGVRdW90ZXModm9pZCljb25zdCAgX19wdHI2NA0KKz9Fc2NhcGVRdW90ZXNAV1N0cmluZ0BAUUVCQT9BVjFAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBDRXhlY1F1ZXVlOjpFeGVjdXRlKGNsYXNzIENFeGVjUXVldWU6OkNUaHJlYWRSZWNvcmQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0V4ZWN1dGVAQ0V4ZWNRdWV1ZUBATUVBQUhQRUFWQ1RocmVhZFJlY29yZEAxQEBaDQorOyB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBFeHRyYWN0TWFjaGluZU5hbWUodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9FeHRyYWN0TWFjaGluZU5hbWVAQFlBUEVBR1BFQUdAWg0KKzsgcHJpdmF0ZTogc3RydWN0IFdTTGV4VG9rZW4gKiBfX3B0cjY0IF9fY2RlY2wgQ1dRTFNjYW5uZXI6OkV4dHJhY3ROZXh0KGludCkgX19wdHI2NA0KKz9FeHRyYWN0TmV4dEBDV1FMU2Nhbm5lckBAQUVBQVBFQVVXU0xleFRva2VuQEBIQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIENXUUxTY2FubmVyOjpFeHRyYWN0U2VsZWN0VHlwZSh2b2lkKSBfX3B0cjY0DQorP0V4dHJhY3RTZWxlY3RUeXBlQENXUUxTY2FubmVyQEBBRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdTdHJpbmc6OkV4dHJhY3RUb2tlbih1bnNpZ25lZCBzaG9ydCxjbGFzcyBXU3RyaW5nICYgX19wdHI2NCkgX19wdHI2NA0KKz9FeHRyYWN0VG9rZW5AV1N0cmluZ0BAUUVBQUhHQUVBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV1N0cmluZzo6RXh0cmFjdFRva2VuKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxjbGFzcyBXU3RyaW5nICYgX19wdHI2NCkgX19wdHI2NA0KKz9FeHRyYWN0VG9rZW5AV1N0cmluZ0BAUUVBQUhQRUJHQUVBVjFAQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDU2FmZUFycmF5OjpGYXRhbChjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9GYXRhbEBDU2FmZUFycmF5QEBBRUFBWFBFQkRAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgQ1BlcnNpc3RlbnRDb25maWc6OkZpbGVFeGlzdHModW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0ZpbGVFeGlzdHNAQ1BlcnNpc3RlbnRDb25maWdAQEFFQUFIUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVmFyVmVjdG9yOjpGaWxsQ1ZhckF0KGludCxjbGFzcyBDVmFyICYgX19wdHI2NCkgX19wdHI2NA0KKz9GaWxsQ1ZhckF0QENWYXJWZWN0b3JAQFFFQUFYSEFFQVZDVmFyQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OkZpbGxETVRGKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP0ZpbGxETVRGQENEYXRlVGltZVBhcnNlckBAUUVBQUhQRUFHX0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Zhcjo6RmlsbFZhcmlhbnQoc3RydWN0IHRhZ1ZBUklBTlQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9GaWxsVmFyaWFudEBDVmFyQEBRRUFBWFBFQVV0YWdWQVJJQU5UQEBIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1dTdHJpbmdBcnJheTo6RmluZFN0cih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0ZpbmRTdHJAQ1dTdHJpbmdBcnJheUBAUUVBQUhQRUJHSEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENBYnN0cmFjdFFsMVBhcnNlcjo6RmxpcE9wZXJhdG9yKGludCkgX19wdHI2NA0KKz9GbGlwT3BlcmF0b3JAQ0Fic3RyYWN0UWwxUGFyc2VyQEBJRUFBSEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6RnJlZSh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9GcmVlQENXaW4zMkRlZmF1bHRBcmVuYUBAVUVBQUhQRUFYQFoNCis7IHB1YmxpYzogX19pbnQ2NCBfX2NkZWNsIENXYmVtVGltZTo6R2V0MTAwbnNzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0MTAwbnNzQENXYmVtVGltZUBAUUVCQV9KWFoNCis7IHB1YmxpYzogc3RydWN0IFNOdEFic29sdXRlU0QgKiBfX3B0cjY0IF9fY2RlY2wgQ050U2VjdXJpdHlEZXNjcmlwdG9yOjpHZXRBYnNvbHV0ZUNvcHkodm9pZCkgX19wdHI2NA0KKz9HZXRBYnNvbHV0ZUNvcHlAQ050U2VjdXJpdHlEZXNjcmlwdG9yQEBRRUFBUEVBVVNOdEFic29sdXRlU0RAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEM5WEFjZTo6R2V0QWNjZXNzTWFzayh2b2lkKSBfX3B0cjY0DQorP0dldEFjY2Vzc01hc2tAQzlYQWNlQEBVRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENOdEFjZTo6R2V0QWNjZXNzTWFzayh2b2lkKSBfX3B0cjY0DQorP0dldEFjY2Vzc01hc2tAQ050QWNlQEBVRUFBS1haDQorOyBsb25nIF9fY2RlY2wgR2V0QWNjZXNzVG9rZW4odm9pZCAqIF9fcHRyNjQgJiBfX3B0cjY0KQ0KKz9HZXRBY2Nlc3NUb2tlbkBAWUFKQUVBUEVBWEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENOdEFjbDo6R2V0QWNlKGludCxjbGFzcyBDTnRBY2UgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEFjZUBDTnRBY2xAQFFFQUFISEFFQVZDTnRBY2VAQEBaDQorOyBwdWJsaWM6IGNsYXNzIENOdEFjZSAqIF9fcHRyNjQgX19jZGVjbCBDTnRBY2w6OkdldEFjZShpbnQpIF9fcHRyNjQNCis/R2V0QWNlQENOdEFjbEBAUUVBQVBFQVZDTnRBY2VAQEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTnRBY2w6OkdldEFjbFNpemVJbmZvKHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEFjbFNpemVJbmZvQENOdEFjbEBAUUVBQUhQRUFLMEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2FsbFNlY3VyaXR5OjpHZXRBY3RpdmVJbXBlcnNvbmF0aW9uKHZvaWQpIF9fcHRyNjQNCis/R2V0QWN0aXZlSW1wZXJzb25hdGlvbkBDV2JlbUNhbGxTZWN1cml0eUBAVUVBQUpYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU2FmZUFycmF5OjpHZXRBY3R1YWxWYXJUeXBlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRBY3R1YWxWYXJUeXBlQENTYWZlQXJyYXlAQFFFQUFIUEVBR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkICogX19wdHI2NCBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6R2V0QXJlbmFIZWFwKHZvaWQpDQorP0dldEFyZW5hSGVhcEBDV2luMzJEZWZhdWx0QXJlbmFAQFNBUEVBWFhaDQorOyBwdWJsaWM6IHN0cnVjdCB0YWdTQUZFQVJSQVkgKiBfX3B0cjY0IF9fY2RlY2wgQ1NhZmVBcnJheTo6R2V0QXJyYXkodm9pZCkgX19wdHI2NA0KKz9HZXRBcnJheUBDU2FmZUFycmF5QEBRRUFBUEVBVXRhZ1NBRkVBUlJBWUBAWFoNCis7IHB1YmxpYzogc3RydWN0IHRhZ1NBRkVBUlJBWSAqIF9fcHRyNjQgX19jZGVjbCBDU2FmZUFycmF5OjpHZXRBcnJheUNvcHkodm9pZCkgX19wdHI2NA0KKz9HZXRBcnJheUNvcHlAQ1NhZmVBcnJheUBAUUVBQVBFQVV0YWdTQUZFQVJSQVlAQFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCBfX2NkZWNsIENGbGV4QXJyYXk6OkdldEFycmF5UHRyKHZvaWQpIF9fcHRyNjQNCis/R2V0QXJyYXlQdHJAQ0ZsZXhBcnJheUBAUUVBQVBFQVBFQVhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDRmxleEFycmF5OjpHZXRBcnJheVB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEFycmF5UHRyQENGbGV4QXJyYXlAQFFFQkFQRUJRRUFYWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0IF9fY2RlY2wgQ1NtYWxsQXJyYXlCbG9iOjpHZXRBcnJheVB0cih2b2lkKSBfX3B0cjY0DQorP0dldEFycmF5UHRyQENTbWFsbEFycmF5QmxvYkBAUUVBQVBFQVBFQVhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDU21hbGxBcnJheUJsb2I6OkdldEFycmF5UHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0QXJyYXlQdHJAQ1NtYWxsQXJyYXlCbG9iQEBRRUJBUEVCUUVBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCAqIF9fcHRyNjQgX19jZGVjbCBDV1N0cmluZ0FycmF5OjpHZXRBcnJheVB0cih2b2lkKSBfX3B0cjY0DQorP0dldEFycmF5UHRyQENXU3RyaW5nQXJyYXlAQFFFQUFQRUFQRUJHWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBDRmxleEFycmF5OjpHZXRBdChpbnQpY29uc3QgIF9fcHRyNjQNCis/R2V0QXRAQ0ZsZXhBcnJheUBAUUVCQVBFQVhIQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBDU21hbGxBcnJheUJsb2I6OkdldEF0KGludCljb25zdCAgX19wdHI2NA0KKz9HZXRBdEBDU21hbGxBcnJheUJsb2JAQFFFQkFQRUFYSEBaDQorOyBwdWJsaWM6IGNsYXNzIENWYXIgJiBfX3B0cjY0IF9fY2RlY2wgQ1ZhclZlY3Rvcjo6R2V0QXQoaW50KSBfX3B0cjY0DQorP0dldEF0QENWYXJWZWN0b3JAQFFFQUFBRUFWQ1ZhckBASEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENXU3RyaW5nQXJyYXk6OkdldEF0KGludCljb25zdCAgX19wdHI2NA0KKz9HZXRBdEBDV1N0cmluZ0FycmF5QEBRRUJBUEVBR0hAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDV2JlbUNhbGxTZWN1cml0eTo6R2V0QXV0aGVudGljYXRpb25JZChzdHJ1Y3QgX0xVSUQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldEF1dGhlbnRpY2F0aW9uSWRAQ1diZW1DYWxsU2VjdXJpdHlAQFVFQUFLQUVBVV9MVUlEQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDVmFyOjpHZXRCU1RSKHZvaWQpIF9fcHRyNjQNCis/R2V0QlNUUkBDVmFyQEBRRUFBUEVBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENTYWZlQXJyYXk6OkdldEJTVFJBdChpbnQpIF9fcHRyNjQNCis/R2V0QlNUUkF0QENTYWZlQXJyYXlAQFFFQUFQRUFHSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENTYWZlQXJyYXk6OkdldEJTVFJBdFRocm93KGludCkgX19wdHI2NA0KKz9HZXRCU1RSQXRUaHJvd0BDU2FmZUFycmF5QEBRRUFBUEVBR0hAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBSZWdpc3RyeTo6R2V0QmluYXJ5KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0QmluYXJ5QFJlZ2lzdHJ5QEBRRUFBSFBFQUdQRUFQRUFFUEVBS0BaDQorOyBwdWJsaWM6IHN0cnVjdCB0YWdCTE9CICogX19wdHI2NCBfX2NkZWNsIENWYXI6OkdldEJsb2Iodm9pZCkgX19wdHI2NA0KKz9HZXRCbG9iQENWYXJAQFFFQUFQRUFVdGFnQkxPQkBAWFoNCis7IHB1YmxpYzogc2hvcnQgX19jZGVjbCBDVmFyOjpHZXRCb29sKHZvaWQpIF9fcHRyNjQNCis/R2V0Qm9vbEBDVmFyQEBRRUFBRlhaDQorOyBwdWJsaWM6IHNob3J0IF9fY2RlY2wgQ1NhZmVBcnJheTo6R2V0Qm9vbEF0KGludCkgX19wdHI2NA0KKz9HZXRCb29sQXRAQ1NhZmVBcnJheUBAUUVBQUZIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIENWYXI6OkdldEJ5dGUodm9pZCkgX19wdHI2NA0KKz9HZXRCeXRlQENWYXJAQFFFQUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIENTYWZlQXJyYXk6OkdldEJ5dGVBdChpbnQpIF9fcHRyNjQNCis/R2V0Qnl0ZUF0QENTYWZlQXJyYXlAQFFFQUFFSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENXYmVtQ2FsbFNlY3VyaXR5OjpHZXRDYWxsZXJJZGVudGl0eSh2b2lkKSBfX3B0cjY0DQorP0dldENhbGxlcklkZW50aXR5QENXYmVtQ2FsbFNlY3VyaXR5QEBRRUFBUEVCR1haDQorOyBwdWJsaWM6IGNoYXIgX19jZGVjbCBDVmFyOjpHZXRDaGFyKHZvaWQpIF9fcHRyNjQNCis/R2V0Q2hhckBDVmFyQEBRRUFBRFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfR1VJRCAqIF9fcHRyNjQgX19jZGVjbCBDVmFyOjpHZXRDbHNJZCh2b2lkKSBfX3B0cjY0DQorP0dldENsc0lkQENWYXJAQFFFQUFQRUFVX0dVSURAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDTVJDSUNvbXByZXNzaW9uOjpHZXRDb21wcmVzc2VkRmlsZUluZm8odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGVudW0gQ01SQ0lDb21wcmVzc2lvbjo6Q29tcHJlc3Npb25MZXZlbCAmIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAmIF9fcHRyNjQsc3RydWN0IF9GSUxFVElNRSAmIF9fcHRyNjQsX19pbnQ2NCAmIF9fcHRyNjQpDQorP0dldENvbXByZXNzZWRGaWxlSW5mb0BDTVJDSUNvbXByZXNzaW9uQEBTQUhQRUJHQUVBVzRDb21wcmVzc2lvbkxldmVsQDFAQUVBS0FFQVVfRklMRVRJTUVAQEFFQV9KQFoNCis7IHB1YmxpYzogY2xhc3MgQ1diZW1UaW1lICBfX2NkZWNsIENFdmVudExvZ1JlY29yZDo6R2V0Q3JlYXRpb25UaW1lKHZvaWQpIF9fcHRyNjQNCis/R2V0Q3JlYXRpb25UaW1lQENFdmVudExvZ1JlY29yZEBAUUVBQT9BVkNXYmVtVGltZUBAWFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIENXYmVtVGltZTo6R2V0RE1URihpbnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RE1URkBDV2JlbVRpbWVAQEFFQUFISEtQRUFHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENWYXI6OkdldERXT1JEKHZvaWQpIF9fcHRyNjQNCis/R2V0RFdPUkRAQ1ZhckBAUUVBQUtYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBSZWdpc3RyeTo6R2V0RFdPUkQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERXT1JEQFJlZ2lzdHJ5QEBRRUFBSFBFQUdQRUFLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUmVnaXN0cnk6OkdldERXT1JEU3RyKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXREV09SRFN0ckBSZWdpc3RyeUBAUUVBQUhQRUFHUEVBS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENOdFNlY3VyaXR5RGVzY3JpcHRvcjo6R2V0RGFjbChjbGFzcyBDTnRBY2wgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldERhY2xAQ050U2VjdXJpdHlEZXNjcmlwdG9yQEBRRUFBSEFFQVZDTnRBY2xAQEBaDQorOyBwdWJsaWM6IGNsYXNzIENOdEFjbCAqIF9fcHRyNjQgX19jZGVjbCBDTnRTZWN1cml0eURlc2NyaXB0b3I6OkdldERhY2wodm9pZCkgX19wdHI2NA0KKz9HZXREYWNsQENOdFNlY3VyaXR5RGVzY3JpcHRvckBAUUVBQVBFQVZDTnRBY2xAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OkdldERheSh2b2lkKSBfX3B0cjY0DQorP0dldERheUBDRGF0ZVRpbWVQYXJzZXJAQFFFQUFFWFoNCis7IHB1YmxpYzogc3RydWN0IElEaXNwYXRjaCAqIF9fcHRyNjQgX19jZGVjbCBDVmFyOjpHZXREaXNwYXRjaCh2b2lkKSBfX3B0cjY0DQorP0dldERpc3BhdGNoQENWYXJAQFFFQUFQRUFVSURpc3BhdGNoQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSURpc3BhdGNoICogX19wdHI2NCBfX2NkZWNsIENTYWZlQXJyYXk6OkdldERpc3BhdGNoQXQoaW50KSBfX3B0cjY0DQorP0dldERpc3BhdGNoQXRAQ1NhZmVBcnJheUBAUUVBQVBFQVVJRGlzcGF0Y2hAQEhAWg0KKzsgcHVibGljOiBkb3VibGUgX19jZGVjbCBDVmFyOjpHZXREb3VibGUodm9pZCkgX19wdHI2NA0KKz9HZXREb3VibGVAQ1ZhckBAUUVBQU5YWg0KKzsgcHVibGljOiBkb3VibGUgX19jZGVjbCBDU2FmZUFycmF5OjpHZXREb3VibGVBdChpbnQpIF9fcHRyNjQNCis/R2V0RG91YmxlQXRAQ1NhZmVBcnJheUBAUUVBQU5IQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1ZhclZlY3Rvcjo6R2V0RWxlbWVudFNpemUodm9pZCkgX19wdHI2NA0KKz9HZXRFbGVtZW50U2l6ZUBDVmFyVmVjdG9yQEBRRUFBSFhaDQorOyBwdWJsaWM6IHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQgX19jZGVjbCBDVmFyOjpHZXRFbWJlZGRlZE9iamVjdCh2b2lkKSBfX3B0cjY0DQorP0dldEVtYmVkZGVkT2JqZWN0QENWYXJAQFFFQUFQRUFVSVVua25vd25AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENMaWtlOjpHZXRFeHByZXNzaW9uKHZvaWQpIF9fcHRyNjQNCis/R2V0RXhwcmVzc2lvbkBDTGlrZUBAUUVBQVBFQkdYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV2JlbVRpbWU6OkdldEZJTEVUSU1FKHN0cnVjdCBfRklMRVRJTUUgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0dldEZJTEVUSU1FQENXYmVtVGltZUBAUUVCQUhQRUFVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0ZJTEVUSU1FICBfX2NkZWNsIENWYXI6OkdldEZpbGVUaW1lKHZvaWQpIF9fcHRyNjQNCis/R2V0RmlsZVRpbWVAQ1ZhckBAUUVBQT9BVV9GSUxFVElNRUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBDV2JlbVRpbWUgIF9fY2RlY2wgQ0Jhc2ljVW5sb2FkSW5zdHJ1Y3Rpb246OkdldEZpcnN0RmlyaW5nVGltZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldEZpcnN0RmlyaW5nVGltZUBDQmFzaWNVbmxvYWRJbnN0cnVjdGlvbkBAVUVCQT9BVkNXYmVtVGltZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBDV2JlbVRpbWUgIF9fY2RlY2wgQ1VubG9hZEluc3RydWN0aW9uOjpHZXRGaXJzdEZpcmluZ1RpbWUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRGaXJzdEZpcmluZ1RpbWVAQ1VubG9hZEluc3RydWN0aW9uQEBVRUJBP0FWQ1diZW1UaW1lQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIEM5WEFjZTo6R2V0RmxhZ3Modm9pZCkgX19wdHI2NA0KKz9HZXRGbGFnc0BDOVhBY2VAQFVFQUFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDTnRBY2U6OkdldEZsYWdzKHZvaWQpIF9fcHRyNjQNCis/R2V0RmxhZ3NAQ050QWNlQEBVRUFBSFhaDQorOyBwdWJsaWM6IGZsb2F0IF9fY2RlY2wgQ1Zhcjo6R2V0RmxvYXQodm9pZCkgX19wdHI2NA0KKz9HZXRGbG9hdEBDVmFyQEBRRUFBTVhaDQorOyBwdWJsaWM6IGZsb2F0IF9fY2RlY2wgQ1NhZmVBcnJheTo6R2V0RmxvYXRBdChpbnQpIF9fcHRyNjQNCis/R2V0RmxvYXRBdEBDU2FmZUFycmF5QEBRRUFBTUhAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1BlcnNpc3RlbnRDb25maWc6OkdldEZ1bGxGaWxlbmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RnVsbEZpbGVuYW1lQENQZXJzaXN0ZW50Q29uZmlnQEBBRUFBUEVBR1BFQkdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDOVhBY2U6OkdldEZ1bGxVc2VyTmFtZTIodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRGdWxsVXNlck5hbWUyQEM5WEFjZUBAVUVBQUpQRUFQRUFHQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ050QWNlOjpHZXRGdWxsVXNlck5hbWUyKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0RnVsbFVzZXJOYW1lMkBDTnRBY2VAQFVFQUFKUEVBUEVBR0BaDQorOyBwdWJsaWM6IGNsYXNzIENOdFNpZCAqIF9fcHRyNjQgX19jZGVjbCBDTnRTZWN1cml0eURlc2NyaXB0b3I6OkdldEdyb3VwKHZvaWQpIF9fcHRyNjQNCis/R2V0R3JvdXBAQ050U2VjdXJpdHlEZXNjcmlwdG9yQEBRRUFBUEVBVkNOdFNpZEBAWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBDUHJvcGVydHlOYW1lOjpHZXRIYW5kbGUodm9pZCkgX19wdHI2NA0KKz9HZXRIYW5kbGVAQ1Byb3BlcnR5TmFtZUBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpHZXRIb3Vycyh2b2lkKSBfX3B0cjY0DQorP0dldEhvdXJzQENEYXRlVGltZVBhcnNlckBAUUVBQUVYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRXhlY1F1ZXVlOjpHZXRJZGxlVGltZW91dChjbGFzcyBDRXhlY1F1ZXVlOjpDVGhyZWFkUmVjb3JkICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRJZGxlVGltZW91dEBDRXhlY1F1ZXVlQEBNRUFBS1BFQVZDVGhyZWFkUmVjb3JkQDFAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENCdWZmZXI6OkdldEluZGV4KHZvaWQpIF9fcHRyNjQNCis/R2V0SW5kZXhAQ0J1ZmZlckBAUUVBQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ1diZW1JbnRlcnZhbCAgX19jZGVjbCBDV2JlbUludGVydmFsOjpHZXRJbmZpbml0eSh2b2lkKQ0KKz9HZXRJbmZpbml0eUBDV2JlbUludGVydmFsQEBTQT9BVjFAWFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIENXYmVtVGltZSAgX19jZGVjbCBDV2JlbVRpbWU6OkdldEluZmluaXR5KHZvaWQpDQorP0dldEluZmluaXR5QENXYmVtVGltZUBAU0E/QVYxQFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENOdFNpZDo6R2V0SW5mbyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0SW5mb0BDTnRTaWRAQFFFQUFIUEVBUEVBRzBQRUFLQFoNCis7IHB1YmxpYzogc3RydWN0IElVbmtub3duICogX19wdHI2NCBfX2NkZWNsIENVbms6OkdldElubmVyVW5rbm93bih2b2lkKSBfX3B0cjY0DQorP0dldElubmVyVW5rbm93bkBDVW5rQEBRRUFBUEVBVUlVbmtub3duQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENCYXNpY1VubG9hZEluc3RydWN0aW9uOjpHZXRJbnN0cnVjdGlvblR5cGUodm9pZCkgX19wdHI2NA0KKz9HZXRJbnN0cnVjdGlvblR5cGVAQ0Jhc2ljVW5sb2FkSW5zdHJ1Y3Rpb25AQFVFQUFIWFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBDVmFyOjpHZXRMUFNUUih2b2lkKSBfX3B0cjY0DQorP0dldExQU1RSQENWYXJAQFFFQUFQRUFEWFoNCis7IHB1YmxpYzogY2hhciAqIF9fcHRyNjQgX19jZGVjbCBXU3RyaW5nOjpHZXRMUFNUUih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0dldExQU1RSQFdTdHJpbmdAQFFFQkFQRUFEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1Zhcjo6R2V0TFBXU1RSKHZvaWQpIF9fcHRyNjQNCis/R2V0TFBXU1RSQENWYXJAQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgV1N0cmluZzo6R2V0TFRva2VuKHVuc2lnbmVkIHNob3J0KWNvbnN0ICBfX3B0cjY0DQorP0dldExUb2tlbkBXU3RyaW5nQEBRRUJBUEVBR0dAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgUmVnaXN0cnk6OkdldExhc3RFcnJvcih2b2lkKSBfX3B0cjY0DQorP0dldExhc3RFcnJvckBSZWdpc3RyeUBAUUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpHZXRMb2NhbEluZm9BbmRBbGxvYyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0TG9jYWxJbmZvQW5kQWxsb2NAQ0RhdGVUaW1lUGFyc2VyQEBJRUFBWEtBRUFQRUFHQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDV2JlbVRpbWU6OkdldExvY2FsT2Zmc2V0Rm9yRGF0ZShzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgKiBfX3B0cjY0KQ0KKz9HZXRMb2NhbE9mZnNldEZvckRhdGVAQ1diZW1UaW1lQEBTQUpQRUJVX1NZU1RFTVRJTUVAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbUNyaXRpY2FsU2VjdGlvbjo6R2V0TG9ja0NvdW50KHZvaWQpIF9fcHRyNjQNCis/R2V0TG9ja0NvdW50QENXYmVtQ3JpdGljYWxTZWN0aW9uQEBRRUFBSlhaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgR2V0TG9nZ2luZ0xldmVsRW5hYmxlZCh2b2lkKQ0KKz9HZXRMb2dnaW5nTGV2ZWxFbmFibGVkQEBZQUtYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1Zhcjo6R2V0TG9uZyh2b2lkKSBfX3B0cjY0DQorP0dldExvbmdAQ1ZhckBAUUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1NhZmVBcnJheTo6R2V0TG9uZ0F0KGludCkgX19wdHI2NA0KKz9HZXRMb25nQXRAQ1NhZmVBcnJheUBAUUVBQUpIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpHZXRNaWNyb3NlY29uZHModm9pZCkgX19wdHI2NA0KKz9HZXRNaWNyb3NlY29uZHNAQ0RhdGVUaW1lUGFyc2VyQEBRRUFBSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDV2JlbUludGVydmFsOjpHZXRNaWxsaXNlY29uZHModm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRNaWxsaXNlY29uZHNAQ1diZW1JbnRlcnZhbEBAUUVCQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpHZXRNaW51dGVzKHZvaWQpIF9fcHRyNjQNCis/R2V0TWludXRlc0BDRGF0ZVRpbWVQYXJzZXJAQFFFQUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX2NkZWNsIENEYXRlVGltZVBhcnNlcjo6R2V0TW9udGgodm9pZCkgX19wdHI2NA0KKz9HZXRNb250aEBDRGF0ZVRpbWVQYXJzZXJAQFFFQUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgUmVnaXN0cnk6OkdldE11bHRpU3RyKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRNdWx0aVN0ckBSZWdpc3RyeUBAUUVBQVBFQUdQRUFHQUVBS0BaDQorOyBwdWJsaWM6IHN0cnVjdCB0YWdTQUZFQVJSQVkgKiBfX3B0cjY0IF9fY2RlY2wgQ1Zhcjo6R2V0TmV3U2FmZUFycmF5KHZvaWQpIF9fcHRyNjQNCis/R2V0TmV3U2FmZUFycmF5QENWYXJAQFFFQUFQRUFVdGFnU0FGRUFSUkFZQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgdGFnU0FGRUFSUkFZICogX19wdHI2NCBfX2NkZWNsIENWYXJWZWN0b3I6OkdldE5ld1NhZmVBcnJheSh2b2lkKSBfX3B0cjY0DQorP0dldE5ld1NhZmVBcnJheUBDVmFyVmVjdG9yQEBRRUFBUEVBVXRhZ1NBRkVBUlJBWUBAWFoNCis7IHB1YmxpYzogc3RydWN0IHRhZ1ZBUklBTlQgKiBfX3B0cjY0IF9fY2RlY2wgQ1Zhcjo6R2V0TmV3VmFyaWFudCh2b2lkKSBfX3B0cjY0DQorP0dldE5ld1ZhcmlhbnRAQ1ZhckBAUUVBQVBFQVV0YWdWQVJJQU5UQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDRXhlY1JlcXVlc3QgKiBfX3B0cjY0IF9fY2RlY2wgQ0V4ZWNSZXF1ZXN0OjpHZXROZXh0KHZvaWQpIF9fcHRyNjQNCis/R2V0TmV4dEBDRXhlY1JlcXVlc3RAQFFFQUFQRUFWMUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIENXYmVtVGltZSAgX19jZGVjbCBDQmFzaWNVbmxvYWRJbnN0cnVjdGlvbjo6R2V0TmV4dEZpcmluZ1RpbWUoY2xhc3MgQ1diZW1UaW1lLGxvbmcgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0dldE5leHRGaXJpbmdUaW1lQENCYXNpY1VubG9hZEluc3RydWN0aW9uQEBVRUJBP0FWQ1diZW1UaW1lQEBWMkBQRUFKQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ050QWNsOjpHZXROdW1BY2VzKHZvaWQpIF9fcHRyNjQNCis/R2V0TnVtQWNlc0BDTnRBY2xAQFFFQUFIWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENQcm9wZXJ0eU5hbWU6OkdldE51bUVsZW1lbnRzKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0TnVtRWxlbWVudHNAQ1Byb3BlcnR5TmFtZUBAUUVCQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0luc3RydWN0aW9uUXVldWU6OkdldE51bUluc3RydWN0aW9ucyh2b2lkKSBfX3B0cjY0DQorP0dldE51bUluc3RydWN0aW9uc0BDSW5zdHJ1Y3Rpb25RdWV1ZUBAUUVBQUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIENFdmVudExvZ1JlY29yZDo6R2V0TnVtU3RyaW5ncyh2b2lkKSBfX3B0cjY0DQorP0dldE51bVN0cmluZ3NAQ0V2ZW50TG9nUmVjb3JkQEBRRUFBR1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENWYXI6OkdldE9sZVR5cGUodm9pZCkgX19wdHI2NA0KKz9HZXRPbGVUeXBlQENWYXJAQFFFQUFIWFoNCis7IHB1YmxpYzogY2xhc3MgQ050U2lkICogX19wdHI2NCBfX2NkZWNsIENOdFNlY3VyaXR5RGVzY3JpcHRvcjo6R2V0T3duZXIodm9pZCkgX19wdHI2NA0KKz9HZXRPd25lckBDTnRTZWN1cml0eURlc2NyaXB0b3JAQFFFQUFQRUFWQ050U2lkQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1diZW1Dcml0aWNhbFNlY3Rpb246OkdldE93bmluZ1RocmVhZElkKHZvaWQpIF9fcHRyNjQNCis/R2V0T3duaW5nVGhyZWFkSWRAQ1diZW1Dcml0aWNhbFNlY3Rpb25AQFFFQUFLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENEYXRlUGFydDo6R2V0UGFydChpbnQsaW50ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQYXJ0QENEYXRlUGFydEBAUUVBQUpIUEVBSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENVbmxvYWRJbnN0cnVjdGlvbjo6R2V0UGF0aCh2b2lkKSBfX3B0cjY0DQorP0dldFBhdGhAQ1VubG9hZEluc3RydWN0aW9uQEBRRUFBUUVBR1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENQZXJzaXN0ZW50Q29uZmlnOjpHZXRQZXJzaXN0ZW50Q2ZnVmFsdWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRQZXJzaXN0ZW50Q2ZnVmFsdWVAQ1BlcnNpc3RlbnRDb25maWdAQFFFQUFIS0FFQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNhbGxTZWN1cml0eTo6R2V0UG90ZW50aWFsSW1wZXJzb25hdGlvbih2b2lkKSBfX3B0cjY0DQorP0dldFBvdGVudGlhbEltcGVyc29uYXRpb25AQ1diZW1DYWxsU2VjdXJpdHlAQFVFQUFKWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENEYXRlVGltZVBhcnNlcjo6R2V0UHJlZmVyZWREYXRlRm9ybWF0KHZvaWQpIF9fcHRyNjQNCis/R2V0UHJlZmVyZWREYXRlRm9ybWF0QENEYXRlVGltZVBhcnNlckBASUVBQVhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0V4ZWNSZXF1ZXN0OjpHZXRQcmlvcml0eSh2b2lkKSBfX3B0cjY0DQorP0dldFByaW9yaXR5QENFeGVjUmVxdWVzdEBAUUVBQUpYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1RleHRUZW1wbGF0ZTo6R2V0UHJvcGVydHlGcm9tSVVua25vd24odW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UHJvcGVydHlGcm9tSVVua25vd25AQ1RleHRUZW1wbGF0ZUBAQUVBQVBFQUdQRUFHUEVBVUlVbmtub3duQEBAWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0FDQ0VTU19BTExPV0VEX0FDRSAqIF9fcHRyNjQgX19jZGVjbCBDTnRBY2U6OkdldFB0cih2b2lkKSBfX3B0cjY0DQorP0dldFB0ckBDTnRBY2VAQFFFQUFQRUFVX0FDQ0VTU19BTExPV0VEX0FDRUBAWFoNCis7IHB1YmxpYzogc3RydWN0IF9BQ0wgKiBfX3B0cjY0IF9fY2RlY2wgQ050QWNsOjpHZXRQdHIodm9pZCkgX19wdHI2NA0KKz9HZXRQdHJAQ050QWNsQEBRRUFBUEVBVV9BQ0xAQFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ050U2VjdXJpdHlEZXNjcmlwdG9yOjpHZXRQdHIodm9pZCkgX19wdHI2NA0KKz9HZXRQdHJAQ050U2VjdXJpdHlEZXNjcmlwdG9yQEBRRUFBUEVBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ050U2lkOjpHZXRQdHIodm9pZCkgX19wdHI2NA0KKz9HZXRQdHJAQ050U2lkQEBRRUFBUEVBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFFMMV9QYXJzZXI6OkdldFF1ZXJ5Q2xhc3ModW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXRRdWVyeUNsYXNzQFFMMV9QYXJzZXJAQFFFQUFIUEVBR0hAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRmxleFF1ZXVlOjpHZXRRdWV1ZVNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRRdWV1ZVNpemVAQ0ZsZXhRdWV1ZUBAUUVCQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1ZhclZlY3Rvcjo6R2V0UmF3QXJyYXlEYXRhKHZvaWQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXRSYXdBcnJheURhdGFAQ1ZhclZlY3RvckBAUUVBQUpQRUFYSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IF9fY2RlY2wgQ0J1ZmZlcjo6R2V0UmF3RGF0YSh2b2lkKSBfX3B0cjY0DQorP0dldFJhd0RhdGFAQ0J1ZmZlckBAUUVBQVBFQUVYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU2FmZUFycmF5OjpHZXRSYXdEYXRhKHZvaWQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9HZXRSYXdEYXRhQENTYWZlQXJyYXlAQFFFQUFIUEVBWEhAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENWYXI6OkdldFJhd0RhdGEodm9pZCkgX19wdHI2NA0KKz9HZXRSYXdEYXRhQENWYXJAQFFFQUFQRUFYWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENXYmVtQ3JpdGljYWxTZWN0aW9uOjpHZXRSZWN1cnNpb25Db3VudCh2b2lkKSBfX3B0cjY0DQorP0dldFJlY3Vyc2lvbkNvdW50QENXYmVtQ3JpdGljYWxTZWN0aW9uQEBRRUFBSlhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXUUxTY2FubmVyOjpHZXRSZWZlcmVuY2VkQWxpYXNlcyhjbGFzcyBDV1N0cmluZ0FycmF5ICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRSZWZlcmVuY2VkQWxpYXNlc0BDV1FMU2Nhbm5lckBAUUVBQUhBRUFWQ1dTdHJpbmdBcnJheUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1dRTFNjYW5uZXI6OkdldFJlZmVyZW5jZWRUYWJsZXMoY2xhc3MgQ1dTdHJpbmdBcnJheSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0UmVmZXJlbmNlZFRhYmxlc0BDV1FMU2Nhbm5lckBAUUVBQUhBRUFWQ1dTdHJpbmdBcnJheUBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1diZW1UaW1lOjpHZXRTWVNURU1USU1FKHN0cnVjdCBfU1lTVEVNVElNRSAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/R2V0U1lTVEVNVElNRUBDV2JlbVRpbWVAQFFFQkFIUEVBVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTnRBY2wgKiBfX3B0cjY0IF9fY2RlY2wgQ050U2VjdXJpdHlEZXNjcmlwdG9yOjpHZXRTYWNsKHZvaWQpIF9fcHRyNjQNCis/R2V0U2FjbEBDTnRTZWN1cml0eURlc2NyaXB0b3JAQFFFQUFQRUFWQ050QWNsQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgdGFnU0FGRUFSUkFZICogX19wdHI2NCBfX2NkZWNsIENWYXJWZWN0b3I6OkdldFNhZmVBcnJheShpbnQpIF9fcHRyNjQNCis/R2V0U2FmZUFycmF5QENWYXJWZWN0b3JAQFFFQUFQRUFVdGFnU0FGRUFSUkFZQEBIQFoNCis7IHByaXZhdGU6IHVuaW9uIFNBX0FycmF5U2NhbGFyICBfX2NkZWNsIENTYWZlQXJyYXk6OkdldFNjYWxhckF0KGludCkgX19wdHI2NA0KKz9HZXRTY2FsYXJBdEBDU2FmZUFycmF5QEBBRUFBP0FUU0FfQXJyYXlTY2FsYXJAQEhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpHZXRTZWNvbmRzKHZvaWQpIF9fcHRyNjQNCis/R2V0U2Vjb25kc0BDRGF0ZVRpbWVQYXJzZXJAQFFFQUFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENXYmVtSW50ZXJ2YWw6OkdldFNlY29uZHModm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRTZWNvbmRzQENXYmVtSW50ZXJ2YWxAQFFFQkFLWFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZsZXhBcnJheSBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDV1FMU2Nhbm5lcjo6R2V0U2VsZWN0ZWRDb2x1bW5zKHZvaWQpIF9fcHRyNjQNCis/R2V0U2VsZWN0ZWRDb2x1bW5zQENXUUxTY2FubmVyQEBRRUFBUEVCVkNGbGV4QXJyYXlAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEM5WEFjZTo6R2V0U2VyaWFsaXplZFNpemUodm9pZCkgX19wdHI2NA0KKz9HZXRTZXJpYWxpemVkU2l6ZUBDOVhBY2VAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ050QWNlOjpHZXRTZXJpYWxpemVkU2l6ZSh2b2lkKSBfX3B0cjY0DQorP0dldFNlcmlhbGl6ZWRTaXplQENOdEFjZUBAVUVBQUtYWg0KKzsgcHVibGljOiBzaG9ydCBfX2NkZWNsIENWYXI6OkdldFNob3J0KHZvaWQpIF9fcHRyNjQNCis/R2V0U2hvcnRAQ1ZhckBAUUVBQUZYWg0KKzsgcHVibGljOiBzaG9ydCBfX2NkZWNsIENTYWZlQXJyYXk6OkdldFNob3J0QXQoaW50KSBfX3B0cjY0DQorP0dldFNob3J0QXRAQ1NhZmVBcnJheUBAUUVBQUZIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ050QWNlOjpHZXRTaWQoY2xhc3MgQ050U2lkICYgX19wdHI2NCkgX19wdHI2NA0KKz9HZXRTaWRAQ050QWNlQEBRRUFBSEFFQVZDTnRTaWRAQEBaDQorOyBwdWJsaWM6IGNsYXNzIENOdFNpZCAqIF9fcHRyNjQgX19jZGVjbCBDTnRBY2U6OkdldFNpZCh2b2lkKSBfX3B0cjY0DQorP0dldFNpZEBDTnRBY2VAQFFFQUFQRUFWQ050U2lkQEBYWg0KKzsgcHJpdmF0ZTogbG9uZyBfX2NkZWNsIENJZGVudGl0eVNlY3VyaXR5OjpHZXRTaWRGcm9tVGhyZWFkT3JQcm9jZXNzKGNsYXNzIENOdFNpZCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0U2lkRnJvbVRocmVhZE9yUHJvY2Vzc0BDSWRlbnRpdHlTZWN1cml0eUBAQUVBQUpBRUFWQ050U2lkQEBAWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDQWJzdHJhY3RRbDFQYXJzZXI6OkdldFNpbmdsZVByb3BlcnR5TmFtZSh2b2lkKSBfX3B0cjY0DQorP0dldFNpbmdsZVByb3BlcnR5TmFtZUBDQWJzdHJhY3RRbDFQYXJzZXJAQElFQUFQRUJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENFeGVjUXVldWU6OkdldFNpdG91dFBlbmFsdHkodm9pZCkgX19wdHI2NA0KKz9HZXRTaXRvdXRQZW5hbHR5QENFeGVjUXVldWVAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENCdWZmZXI6OkdldFNpemUodm9pZCkgX19wdHI2NA0KKz9HZXRTaXplQENCdWZmZXJAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENOdEFjZTo6R2V0U2l6ZSh2b2lkKSBfX3B0cjY0DQorP0dldFNpemVAQ050QWNlQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTnRBY2w6OkdldFNpemUodm9pZCkgX19wdHI2NA0KKz9HZXRTaXplQENOdEFjbEBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ050U2VjdXJpdHlEZXNjcmlwdG9yOjpHZXRTaXplKHZvaWQpIF9fcHRyNjQNCis/R2V0U2l6ZUBDTnRTZWN1cml0eURlc2NyaXB0b3JAQFFFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENOdFNpZDo6R2V0U2l6ZSh2b2lkKSBfX3B0cjY0DQorP0dldFNpemVAQ050U2lkQEBRRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEM5WEFjZTo6R2V0U3RhdHVzKHZvaWQpIF9fcHRyNjQNCis/R2V0U3RhdHVzQEM5WEFjZUBAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTnRBY2U6OkdldFN0YXR1cyh2b2lkKSBfX3B0cjY0DQorP0dldFN0YXR1c0BDTnRBY2VAQFVFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENOdEFjbDo6R2V0U3RhdHVzKHZvaWQpIF9fcHRyNjQNCis/R2V0U3RhdHVzQENOdEFjbEBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ050U2VjdXJpdHlEZXNjcmlwdG9yOjpHZXRTdGF0dXModm9pZCkgX19wdHI2NA0KKz9HZXRTdGF0dXNAQ050U2VjdXJpdHlEZXNjcmlwdG9yQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTnRTaWQ6OkdldFN0YXR1cyh2b2lkKSBfX3B0cjY0DQorP0dldFN0YXR1c0BDTnRTaWRAQFFFQUFLWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUmVnaXN0cnk6OkdldFN0cih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9HZXRTdHJAUmVnaXN0cnlAQFFFQUFIUEVBR1BFQVBFQUdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDSW5zZXJ0aW9uU3RyaW5nOjpHZXRTdHJpbmcodm9pZCkgX19wdHI2NA0KKz9HZXRTdHJpbmdAQ0luc2VydGlvblN0cmluZ0BAUUVBQVBFQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCBDRXZlbnRMb2dSZWNvcmQ6OkdldFN0cmluZ0F0KGludCkgX19wdHI2NA0KKz9HZXRTdHJpbmdBdEBDRXZlbnRMb2dSZWNvcmRAQFFFQUFQRUJHSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENQcm9wZXJ0eU5hbWU6OkdldFN0cmluZ0F0KGxvbmcpY29uc3QgIF9fcHRyNjQNCis/R2V0U3RyaW5nQXRAQ1Byb3BlcnR5TmFtZUBAUUVCQVBFQkdKQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1Byb3BlcnR5TmFtZTo6R2V0VGV4dCh2b2lkKSBfX3B0cjY0DQorP0dldFRleHRAQ1Byb3BlcnR5TmFtZUBAUUVBQVBFQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDVmFyOjpHZXRUZXh0KGxvbmcsbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0VGV4dEBDVmFyQEBRRUFBUEVBR0pKUEVCR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENWYXJWZWN0b3I6OkdldFRleHQobG9uZyxsb25nKSBfX3B0cjY0DQorP0dldFRleHRAQ1ZhclZlY3RvckBAUUVBQVBFQUdKSkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT046OkdldFRleHQodm9pZCkgX19wdHI2NA0KKz9HZXRUZXh0QFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT05AQFFFQUFQRUFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgUUxfTEVWRUxfMV9UT0tFTjo6R2V0VGV4dCh2b2lkKSBfX3B0cjY0DQorP0dldFRleHRAUUxfTEVWRUxfMV9UT0tFTkBAUUVBQVBFQUdYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTnRTaWQ6OkdldFRleHRTaWQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0dldFRleHRTaWRAQ050U2lkQEBRRUFBSFBFQUdQRUFLQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIENXYmVtVGltZSAgX19jZGVjbCBDV2JlbVRpbWU6OkdldFRpY2tDb3VudCh2b2lkKQ0KKz9HZXRUaWNrQ291bnRAQ1diZW1UaW1lQEBTQT9BVjFAWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRXhlY1F1ZXVlOjpHZXRUbHNJbmRleCh2b2lkKQ0KKz9HZXRUbHNJbmRleEBDRXhlY1F1ZXVlQEBTQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1DYWxsU2VjdXJpdHk6OkdldFRva2VuKHZvaWQpIF9fcHRyNjQNCis/R2V0VG9rZW5AQ1diZW1DYWxsU2VjdXJpdHlAQFVFQUFQRUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDOVhBY2U6OkdldFR5cGUodm9pZCkgX19wdHI2NA0KKz9HZXRUeXBlQEM5WEFjZUBAVUVBQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENFeGVjUXVldWU6OkdldFR5cGUodm9pZCkgX19wdHI2NA0KKz9HZXRUeXBlQENFeGVjUXVldWVAQFVFQUFQRUJHWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDTnRBY2U6OkdldFR5cGUodm9pZCkgX19wdHI2NA0KKz9HZXRUeXBlQENOdEFjZUBAVUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU2FmZUFycmF5OjpHZXRUeXBlKHZvaWQpIF9fcHRyNjQNCis/R2V0VHlwZUBDU2FmZUFycmF5QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENWYXI6OkdldFR5cGUodm9pZCkgX19wdHI2NA0KKz9HZXRUeXBlQENWYXJAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1ZhclZlY3Rvcjo6R2V0VHlwZSh2b2lkKSBfX3B0cjY0DQorP0dldFR5cGVAQ1ZhclZlY3RvckBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBSZWdpc3RyeTo6R2V0VHlwZSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/R2V0VHlwZUBSZWdpc3RyeUBAUUVBQUhQRUFHUEVBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENWYXI6OkdldFR5cGVUZXh0KHZvaWQpIF9fcHRyNjQNCis/R2V0VHlwZVRleHRAQ1ZhckBAUUVBQVBFQUdYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OkdldFVUQyh2b2lkKSBfX3B0cjY0DQorP0dldFVUQ0BDRGF0ZVRpbWVQYXJzZXJAQFFFQUFIWFoNCis7IHB1YmxpYzogc3RydWN0IElVbmtub3duICogX19wdHI2NCBfX2NkZWNsIENVbms6OkdldFVua25vd24odm9pZCkgX19wdHI2NA0KKz9HZXRVbmtub3duQENVbmtAQFFFQUFQRUFVSVVua25vd25AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQgX19jZGVjbCBDVW5rSW50ZXJuYWw6OkdldFVua25vd24odm9pZCkgX19wdHI2NA0KKz9HZXRVbmtub3duQENVbmtJbnRlcm5hbEBAUUVBQVBFQVVJVW5rbm93bkBAWFoNCis7IHB1YmxpYzogc3RydWN0IElVbmtub3duICogX19wdHI2NCBfX2NkZWNsIENWYXI6OkdldFVua25vd24odm9pZCkgX19wdHI2NA0KKz9HZXRVbmtub3duQENWYXJAQFFFQUFQRUFVSVVua25vd25AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQgX19jZGVjbCBDU2FmZUFycmF5OjpHZXRVbmtub3duQXQoaW50KSBfX3B0cjY0DQorP0dldFVua25vd25BdEBDU2FmZUFycmF5QEBRRUFBUEVBVUlVbmtub3duQEBIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0RNVEZQYXJzZXI6OkdldFZhbHVlKGludCkgX19wdHI2NA0KKz9HZXRWYWx1ZUBDRE1URlBhcnNlckBAUUVBQUhIQFoNCis7IHB1YmxpYzogY2xhc3MgQ1ZhclZlY3RvciAqIF9fcHRyNjQgX19jZGVjbCBDVmFyOjpHZXRWYXJWZWN0b3Iodm9pZCkgX19wdHI2NA0KKz9HZXRWYXJWZWN0b3JAQ1ZhckBAUUVBQVBFQVZDVmFyVmVjdG9yQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgdGFnVkFSSUFOVCAgX19jZGVjbCBDU2FmZUFycmF5OjpHZXRWYXJpYW50QXQoaW50KSBfX3B0cjY0DQorP0dldFZhcmlhbnRBdEBDU2FmZUFycmF5QEBRRUFBP0FVdGFnVkFSSUFOVEBASEBaDQorOyB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBHZXRXTUlBREFQQ21kTGluZShpbnQpDQorP0dldFdNSUFEQVBDbWRMaW5lQEBZQVBFQUdIQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBDRXhlY1JlcXVlc3Q6OkdldFdoZW5Eb25lSGFuZGxlKHZvaWQpIF9fcHRyNjQNCis/R2V0V2hlbkRvbmVIYW5kbGVAQ0V4ZWNSZXF1ZXN0QEBRRUFBUEVBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgQ1Zhcjo6R2V0V29yZCh2b2lkKSBfX3B0cjY0DQorP0dldFdvcmRAQ1ZhckBAUUVBQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OkdldFllYXIodm9pZCkgX19wdHI2NA0KKz9HZXRZZWFyQENEYXRlVGltZVBhcnNlckBAUUVBQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ1diZW1UaW1lICBfX2NkZWNsIENXYmVtVGltZTo6R2V0WmVybyh2b2lkKQ0KKz9HZXRaZXJvQENXYmVtVGltZUBAU0E/QVYxQFhaDQorOyBwcm90ZWN0ZWQ6IGJvb2wgX19jZGVjbCBDRmxleFF1ZXVlOjpHcm93KHZvaWQpIF9fcHRyNjQNCis/R3Jvd0BDRmxleFF1ZXVlQEBJRUFBX05YWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDU21hbGxBcnJheUJsb2IgKiBfX3B0cjY0IF9fY2RlY2wgQ1NtYWxsQXJyYXlCbG9iOjpHcm93KHZvaWQpIF9fcHRyNjQNCis/R3Jvd0BDU21hbGxBcnJheUJsb2JAQElFQUFQRUFWMUBYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0hhbHRhYmxlOjpIYWx0KHZvaWQpIF9fcHRyNjQNCis/SGFsdEBDSGFsdGFibGVAQFFFQUFKWFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENUZXh0VGVtcGxhdGU6OkhhbmRsZUVtYmVkZGVkT2JqZWN0UHJvcGVydGllcyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0hhbmRsZUVtYmVkZGVkT2JqZWN0UHJvcGVydGllc0BDVGV4dFRlbXBsYXRlQEBBRUFBUEVBR1BFQUdQRUFVSVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ050U2VjdXJpdHlEZXNjcmlwdG9yOjpIYXNPd25lcih2b2lkKSBfX3B0cjY0DQorP0hhc093bmVyQENOdFNlY3VyaXR5RGVzY3JpcHRvckBAUUVBQUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDV2JlbUNhbGxTZWN1cml0eTo6SW1wZXJzb25hdGVDbGllbnQodm9pZCkgX19wdHI2NA0KKz9JbXBlcnNvbmF0ZUNsaWVudEBDV2JlbUNhbGxTZWN1cml0eUBAVUVBQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDUWwxUGFyc2VTaW5rOjpJbk9yZGVyKGxvbmcpIF9fcHRyNjQNCis/SW5PcmRlckBDUWwxUGFyc2VTaW5rQEBVRUFBWEpAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0ZsZXhRdWV1ZTo6SW5jcmVtZW50SW5kZXgoaW50ICYgX19wdHI2NCkgX19wdHI2NA0KKz9JbmNyZW1lbnRJbmRleEBDRmxleFF1ZXVlQEBJRUFBWEFFQUhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Byb3BlcnR5TmFtZTo6SW5pdCh2b2lkKSBfX3B0cjY0DQorP0luaXRAQ1Byb3BlcnR5TmFtZUBAUUVBQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENWYXI6OkluaXQodm9pZCkgX19wdHI2NA0KKz9Jbml0QENWYXJAQEFFQUFYWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHZvaWQgX19jZGVjbCBDRXhlY1F1ZXVlOjpJbml0VGxzKHZvaWQpDQorP0luaXRUbHNAQ0V4ZWNRdWV1ZUBAS0FYWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHZvaWQgX19jZGVjbCBDQWJzdHJhY3RRbDFQYXJzZXI6OkluaXRUb2tlbihzdHJ1Y3QgX3RhZ19XYmVtUWwxVG9rZW4gKiBfX3B0cjY0KQ0KKz9Jbml0VG9rZW5AQ0Fic3RyYWN0UWwxUGFyc2VyQEBLQVhQRUFVX3RhZ19XYmVtUWwxVG9rZW5AQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDU21hbGxBcnJheUJsb2I6OkluaXRpYWxpemUoaW50KSBfX3B0cjY0DQorP0luaXRpYWxpemVAQ1NtYWxsQXJyYXlCbG9iQEBJRUFBWEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENVbms6OkluaXRpYWxpemUodm9pZCkgX19wdHI2NA0KKz9Jbml0aWFsaXplQENVbmtAQFVFQUFIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0V4ZWNRdWV1ZTo6SW5pdGlhbGl6ZVRocmVhZCh2b2lkKSBfX3B0cjY0DQorP0luaXRpYWxpemVUaHJlYWRAQ0V4ZWNRdWV1ZUBATUVBQUpYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRmxleEFycmF5OjpJbnNlcnRBdChpbnQsdm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5zZXJ0QXRAQ0ZsZXhBcnJheUBAUUVBQUhIUEVBWEBaDQorOyBwdWJsaWM6IGNsYXNzIENTbWFsbEFycmF5QmxvYiAqIF9fcHRyNjQgX19jZGVjbCBDU21hbGxBcnJheUJsb2I6Okluc2VydEF0KGludCx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9JbnNlcnRBdEBDU21hbGxBcnJheUJsb2JAQFFFQUFQRUFWMUBIUEVBWEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENWYXJWZWN0b3I6Okluc2VydEF0KGludCxjbGFzcyBDVmFyICYgX19wdHI2NCkgX19wdHI2NA0KKz9JbnNlcnRBdEBDVmFyVmVjdG9yQEBRRUFBSEhBRUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1dTdHJpbmdBcnJheTo6SW5zZXJ0QXQoaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9JbnNlcnRBdEBDV1N0cmluZ0FycmF5QEBRRUFBSEhQRUJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENVbmtJbnRlcm5hbDo6SW50ZXJuYWxBZGRSZWYodm9pZCkgX19wdHI2NA0KKz9JbnRlcm5hbEFkZFJlZkBDVW5rSW50ZXJuYWxAQFFFQUFLWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENVbmtJbnRlcm5hbDo6SW50ZXJuYWxRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9JbnRlcm5hbFF1ZXJ5SW50ZXJmYWNlQENVbmtJbnRlcm5hbEBAUUVBQUpBRUJVX0dVSURAQFBFQVBFQVhAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1ZhclZlY3Rvcjo6SW50ZXJuYWxSYXdBcnJheUFjY2Vzcyh2b2lkKSBfX3B0cjY0DQorP0ludGVybmFsUmF3QXJyYXlBY2Nlc3NAQ1ZhclZlY3RvckBAUUVBQUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1Vua0ludGVybmFsOjpJbnRlcm5hbFJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9JbnRlcm5hbFJlbGVhc2VAQ1Vua0ludGVybmFsQEBRRUFBS1haDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1dTdHJpbmdBcnJheTo6SW50ZXJzZWN0aW9uKGNsYXNzIENXU3RyaW5nQXJyYXkgJiBfX3B0cjY0LGNsYXNzIENXU3RyaW5nQXJyYXkgJiBfX3B0cjY0LGNsYXNzIENXU3RyaW5nQXJyYXkgJiBfX3B0cjY0KQ0KKz9JbnRlcnNlY3Rpb25AQ1dTdHJpbmdBcnJheUBAU0FYQUVBVjFAMDBAWg0KKzsgaW50IF9fY2RlY2wgSXNBZG1pbih2b2lkICogX19wdHI2NCkNCis/SXNBZG1pbkBAWUFIUEVBWEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ0V4ZWNRdWV1ZTo6SXNBcHByb3ByaWF0ZVRocmVhZCh2b2lkKSBfX3B0cjY0DQorP0lzQXBwcm9wcmlhdGVUaHJlYWRAQ0V4ZWNRdWV1ZUBATUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVmFyOjpJc0RhdGFOdWxsKHZvaWQpIF9fcHRyNjQNCis/SXNEYXRhTnVsbEBDVmFyQEBRRUFBSFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBDVGV4dFRlbXBsYXRlOjpJc0VtYmVkZGVkT2JqZWN0UHJvcGVydHkodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzRW1iZWRkZWRPYmplY3RQcm9wZXJ0eUBDVGV4dFRlbXBsYXRlQEBBRUFBSFBFQUdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDSW5zZXJ0aW9uU3RyaW5nOjpJc0VtcHR5KHZvaWQpIF9fcHRyNjQNCis/SXNFbXB0eUBDSW5zZXJ0aW9uU3RyaW5nQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENJbnN0cnVjdGlvblF1ZXVlOjpJc0VtcHR5KHZvaWQpIF9fcHRyNjQNCis/SXNFbXB0eUBDSW5zdHJ1Y3Rpb25RdWV1ZUBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2hlY2tlZEluQ3JpdFNlYzo6SXNFbnRlcmVkKHZvaWQpIF9fcHRyNjQNCis/SXNFbnRlcmVkQENDaGVja2VkSW5Dcml0U2VjQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENFbnRlcldiZW1Dcml0aWNhbFNlY3Rpb246OklzRW50ZXJlZCh2b2lkKSBfX3B0cjY0DQorP0lzRW50ZXJlZEBDRW50ZXJXYmVtQ3JpdGljYWxTZWN0aW9uQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXYmVtSW50ZXJ2YWw6OklzRmluaXRlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNGaW5pdGVAQ1diZW1JbnRlcnZhbEBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV2JlbVRpbWU6OklzRmluaXRlKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNGaW5pdGVAQ1diZW1UaW1lQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENIYWx0YWJsZTo6SXNIYWx0ZWQodm9pZCkgX19wdHI2NA0KKz9Jc0hhbHRlZEBDSGFsdGFibGVAQFFFQUFIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBDRXhlY1F1ZXVlOjpJc0lkbGVUb29Mb25nKGNsYXNzIENFeGVjUXVldWU6OkNUaHJlYWRSZWNvcmQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/SXNJZGxlVG9vTG9uZ0BDRXhlY1F1ZXVlQEBNRUFBSFBFQVZDVGhyZWFkUmVjb3JkQDFAS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQ1diZW1DYWxsU2VjdXJpdHk6OklzSW1wZXJzb25hdGluZyh2b2lkKSBfX3B0cjY0DQorP0lzSW1wZXJzb25hdGluZ0BDV2JlbUNhbGxTZWN1cml0eUBAVUVBQUhYWg0KKzsgaW50IF9fY2RlY2wgSXNJbkFkbWluR3JvdXAodm9pZCkNCis/SXNJbkFkbWluR3JvdXBAQFlBSFhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRE1URlBhcnNlcjo6SXNJbnRlcnZhbCh2b2lkKSBfX3B0cjY0DQorP0lzSW50ZXJ2YWxAQ0RNVEZQYXJzZXJAQFFFQUFfTlhaDQorOyBpbnQgX19jZGVjbCBJc0xvY2FsU2VydmljZSh2b2lkICogX19wdHI2NCkNCis/SXNMb2NhbFNlcnZpY2VAQFlBSFBFQVhAWg0KKzsgaW50IF9fY2RlY2wgSXNOVCh2b2lkKQ0KKz9Jc05UQEBZQUhYWg0KKzsgaW50IF9fY2RlY2wgSXNOZXR3b3JrU2VydmljZSh2b2lkICogX19wdHI2NCkNCis/SXNOZXR3b3JrU2VydmljZUBAWUFIUEVBWEBaDQorOyBpbnQgX19jZGVjbCBJc050U2V0dXBSdW5uaW5nKHZvaWQpDQorP0lzTnRTZXR1cFJ1bm5pbmdAQFlBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENWYXI6OklzTnVsbCh2b2lkKSBfX3B0cjY0DQorP0lzTnVsbEBDVmFyQEBRRUFBSFhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRXhlY1JlcXVlc3Q6OklzT2sodm9pZCkgX19wdHI2NA0KKz9Jc09rQENFeGVjUmVxdWVzdEBAUUVBQV9OWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1ZhclZlY3Rvcjo6SXNPcHRpbWl6ZWQodm9pZCkgX19wdHI2NA0KKz9Jc09wdGltaXplZEBDVmFyVmVjdG9yQEBRRUFBSFhaDQorOyBib29sIF9fY2RlY2wgSXNQcml2aWxlZ2VQcmVzZW50KHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/SXNQcml2aWxlZ2VQcmVzZW50QEBZQV9OUEVBWFBFQkdAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIENFeGVjUXVldWU6OklzU1RBKHZvaWQpIF9fcHRyNjQNCis/SXNTVEFAQ0V4ZWNRdWV1ZUBATUVBQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ0V4ZWNRdWV1ZTo6SXNTVEFUaHJlYWQodm9pZCkNCis/SXNTVEFUaHJlYWRAQ0V4ZWNRdWV1ZUBAU0FIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX19jZGVjbCBDRXhlY1F1ZXVlOjpJc1N1aXRhYmxlVGhyZWFkKGNsYXNzIENFeGVjUXVldWU6OkNUaHJlYWRSZWNvcmQgKiBfX3B0cjY0LGNsYXNzIENFeGVjUmVxdWVzdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNTdWl0YWJsZVRocmVhZEBDRXhlY1F1ZXVlQEBNRUFBSFBFQVZDVGhyZWFkUmVjb3JkQDFAUEVBVkNFeGVjUmVxdWVzdEBAQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENETVRGUGFyc2VyOjpJc1VzZWQoaW50KSBfX3B0cjY0DQorP0lzVXNlZEBDRE1URlBhcnNlckBAUUVBQV9OSEBaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDTnRTaWQ6OklzVXNlcih2b2lkKSBfX3B0cjY0DQorP0lzVXNlckBDTnRTaWRAQFFFQUFfTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDTnRTZWN1cml0eTo6SXNVc2VySW5Hcm91cCh2b2lkICogX19wdHI2NCxjbGFzcyBDTnRTaWQgJiBfX3B0cjY0KQ0KKz9Jc1VzZXJJbkdyb3VwQENOdFNlY3VyaXR5QEBTQUhQRUFYQUVBVkNOdFNpZEBAQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENETVRGUGFyc2VyOjpJc1ZhbGlkKHZvaWQpIF9fcHRyNjQNCis/SXNWYWxpZEBDRE1URlBhcnNlckBAUUVBQV9OWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ050QWNsOjpJc1ZhbGlkKHZvaWQpIF9fcHRyNjQNCis/SXNWYWxpZEBDTnRBY2xAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ050U2VjdXJpdHlEZXNjcmlwdG9yOjpJc1ZhbGlkKHZvaWQpIF9fcHRyNjQNCis/SXNWYWxpZEBDTnRTZWN1cml0eURlc2NyaXB0b3JAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ050U2lkOjpJc1ZhbGlkKHZvaWQpIF9fcHRyNjQNCis/SXNWYWxpZEBDTnRTaWRAQFFFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpJc1ZhbGlkQW1QbVN0cmluZyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQgY29uc3QpIF9fcHRyNjQNCis/SXNWYWxpZEFtUG1TdHJpbmdAQ0RhdGVUaW1lUGFyc2VyQEBJRUFBSFBFQUdQRUJHUUVBUEVBR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENEYXRlVGltZVBhcnNlcjo6SXNWYWxpZENvbG9uTWlsbGlzZWNvbmQodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Jc1ZhbGlkQ29sb25NaWxsaXNlY29uZEBDRGF0ZVRpbWVQYXJzZXJAQElFQUFIUEVBR1BFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OklzVmFsaWREYXRlVGltZSh2b2lkKSBfX3B0cjY0DQorP0lzVmFsaWREYXRlVGltZUBDRGF0ZVRpbWVQYXJzZXJAQFFFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpJc1ZhbGlkRGF5TnVtYmVyKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNWYWxpZERheU51bWJlckBDRGF0ZVRpbWVQYXJzZXJAQElFQUFIUEVBR1BFQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OklzVmFsaWREb3RNaWxsaXNlY29uZCh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzVmFsaWREb3RNaWxsaXNlY29uZEBDRGF0ZVRpbWVQYXJzZXJAQElFQUFIUEVBR1BFQkdAWg0KKzsgaW50IF9fY2RlY2wgSXNWYWxpZEVsZW1lbnROYW1lMih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxpbnQpDQorP0lzVmFsaWRFbGVtZW50TmFtZTJAQFlBSFBFQkdLSEBaDQorOyBpbnQgX19jZGVjbCBJc1ZhbGlkRWxlbWVudE5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpDQorP0lzVmFsaWRFbGVtZW50TmFtZUBAWUFIUEVCR0tAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OklzVmFsaWRIb3VyTnVtYmVyKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNWYWxpZEhvdXJOdW1iZXJAQ0RhdGVUaW1lUGFyc2VyQEBJRUFBSFBFQUdQRUJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpJc1ZhbGlkTWludXRlTnVtYmVyKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/SXNWYWxpZE1pbnV0ZU51bWJlckBDRGF0ZVRpbWVQYXJzZXJAQElFQUFIUEVBR1BFQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OklzVmFsaWRNb250aE51bWJlcih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzVmFsaWRNb250aE51bWJlckBDRGF0ZVRpbWVQYXJzZXJAQElFQUFIUEVBR1BFQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OklzVmFsaWRNb250aFN0cmluZyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQgY29uc3QsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCBjb25zdCkgX19wdHI2NA0KKz9Jc1ZhbGlkTW9udGhTdHJpbmdAQ0RhdGVUaW1lUGFyc2VyQEBJRUFBSFBFQUdQRUJHUUVBUEVBRzJAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OklzVmFsaWRTZWNvbmROdW1iZXIodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Jc1ZhbGlkU2Vjb25kTnVtYmVyQENEYXRlVGltZVBhcnNlckBASUVBQUhQRUFHUEVCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDVmFyVmVjdG9yOjpJc1ZhbGlkVmVjdG9yQXJyYXkoaW50LHN0cnVjdCB0YWdTQUZFQVJSQVkgKiBfX3B0cjY0KQ0KKz9Jc1ZhbGlkVmVjdG9yQXJyYXlAQ1ZhclZlY3RvckBAU0FISFBFQVV0YWdTQUZFQVJSQVlAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDVmFyVmVjdG9yOjpJc1ZhbGlkVmVjdG9yVHlwZShpbnQpDQorP0lzVmFsaWRWZWN0b3JUeXBlQENWYXJWZWN0b3JAQFNBSEhAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OklzVmFsaWRZZWFyTW9udGhEYXlOdW1iZXIodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP0lzVmFsaWRZZWFyTW9udGhEYXlOdW1iZXJAQ0RhdGVUaW1lUGFyc2VyQEBJRUFBSFBFQUdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OklzVmFsaWRZZWFyTnVtYmVyKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP0lzVmFsaWRZZWFyTnVtYmVyQENEYXRlVGltZVBhcnNlckBASUVBQUhQRUFHUEVCR0hAWg0KKzsgaW50IF9fY2RlY2wgSXNXMktPck1vcmUodm9pZCkNCis/SXNXMktPck1vcmVAQFlBSFhaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDRE1URlBhcnNlcjo6SXNXaWxkY2FyZChpbnQpIF9fcHRyNjQNCis/SXNXaWxkY2FyZEBDRE1URlBhcnNlckBAUUVBQV9OSEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXYmVtSW50ZXJ2YWw6OklzWmVybyh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0lzWmVyb0BDV2JlbUludGVydmFsQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXYmVtVGltZTo6SXNaZXJvKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/SXNaZXJvQENXYmVtVGltZUBAUUVCQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NoZWNrZWRJbkNyaXRTZWM6OkxlYXZlKHZvaWQpIF9fcHRyNjQNCis/TGVhdmVAQ0NoZWNrZWRJbkNyaXRTZWNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDcml0U2VjOjpMZWF2ZSh2b2lkKSBfX3B0cjY0DQorP0xlYXZlQENDcml0U2VjQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRXhlY1F1ZXVlOjpMZWF2ZSh2b2lkKSBfX3B0cjY0DQorP0xlYXZlQENFeGVjUXVldWVAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdGF0aWNDcml0U2VjOjpMZWF2ZSh2b2lkKSBfX3B0cjY0DQorP0xlYXZlQENTdGF0aWNDcml0U2VjQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDV2JlbUNyaXRpY2FsU2VjdGlvbjo6TGVhdmUodm9pZCkgX19wdHI2NA0KKz9MZWF2ZUBDV2JlbUNyaXRpY2FsU2VjdGlvbkBAUUVBQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXU3RyaW5nOjpMZW5ndGgodm9pZCljb25zdCAgX19wdHI2NA0KKz9MZW5ndGhAV1N0cmluZ0BAUUVCQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0xvY2thYmxlRmxleEFycmF5PGNsYXNzIENTdGF0aWNDcml0U2VjPjo6TG9jayh2b2lkKSBfX3B0cjY0DQorP0xvY2tAPyRDTG9ja2FibGVGbGV4QXJyYXlAVkNTdGF0aWNDcml0U2VjQEBAQFFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0J1ZmZlcjo6TG9ja1JlZ2lvbih1bmlvbiBfVUxBUkdFX0lOVEVHRVIsdW5pb24gX1VMQVJHRV9JTlRFR0VSLHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/TG9ja1JlZ2lvbkBDQnVmZmVyQEBVRUFBSlRfVUxBUkdFX0lOVEVHRVJAQDBLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ0V4ZWNRdWV1ZTo6TG9nRXJyb3IoY2xhc3MgQ0V4ZWNSZXF1ZXN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/TG9nRXJyb3JAQ0V4ZWNRdWV1ZUBATUVBQVhQRUFWQ0V4ZWNSZXF1ZXN0QEBIQFoNCis7IGludCBfX2NkZWNsIExvZ2dpbmdMZXZlbEVuYWJsZWQodW5zaWduZWQgbG9uZykNCis/TG9nZ2luZ0xldmVsRW5hYmxlZEBAWUFIS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBDV2JlbUNhbGxTZWN1cml0eSAqIF9fcHRyNjQgX19jZGVjbCBDV2JlbUNhbGxTZWN1cml0eTo6TWFrZUludGVybmFsQ29weU9mVGhyZWFkKHZvaWQpDQorP01ha2VJbnRlcm5hbENvcHlPZlRocmVhZEBDV2JlbUNhbGxTZWN1cml0eUBAU0FQRUFWMUBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVmFyVmVjdG9yOjpNYWtlT3B0aW1pemVkKGludCxpbnQsaW50KSBfX3B0cjY0DQorP01ha2VPcHRpbWl6ZWRAQ1ZhclZlY3RvckBAUUVBQUhISEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDVGltZXJJbnN0cnVjdGlvbjo6TWFya0ZvclJlbW92YWwodm9pZCkgX19wdHI2NA0KKz9NYXJrRm9yUmVtb3ZhbEBDVGltZXJJbnN0cnVjdGlvbkBAVUVBQUpYWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0xpa2U6Ok1hdGNoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9NYXRjaEBDTGlrZUBAUUVBQV9OUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGJvb2wgX19jZGVjbCBDTGlrZTo6TWF0Y2hTZXQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP01hdGNoU2V0QENMaWtlQEBJRUFBX05QRUJHMEFFQUhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBSZWdpc3RyeTo6TW92ZVRvU3Via2V5KHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCkgX19wdHI2NA0KKz9Nb3ZlVG9TdWJrZXlAUmVnaXN0cnlAQFFFQUFIUEVBR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIENCYXNlTXJjaUNvbXByZXNzaW9uOjpNcmNpMURlY29tcHJlc3ModW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9NcmNpMURlY29tcHJlc3NAQ0Jhc2VNcmNpQ29tcHJlc3Npb25AQFFFQUFJUEVBRUkwSUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIENCYXNlTXJjaUNvbXByZXNzaW9uOjpNcmNpMU1heENvbXByZXNzKHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/TXJjaTFNYXhDb21wcmVzc0BDQmFzZU1yY2lDb21wcmVzc2lvbkBAUUVBQUlQRUFFSTBJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgQ0Jhc2VNcmNpQ29tcHJlc3Npb246Ok1yY2kyRGVjb21wcmVzcyh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP01yY2kyRGVjb21wcmVzc0BDQmFzZU1yY2lDb21wcmVzc2lvbkBAUUVBQUlQRUFFSTBJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fY2RlY2wgQ0Jhc2VNcmNpQ29tcHJlc3Npb246Ok1yY2kyTWF4Q29tcHJlc3ModW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz9NcmNpMk1heENvbXByZXNzQENCYXNlTXJjaUNvbXByZXNzaW9uQEBRRUFBSVBFQUVJMElAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX2NkZWNsIENBYnN0cmFjdFFsMVBhcnNlcjo6TmV4dChpbnQpIF9fcHRyNjQNCis/TmV4dEBDQWJzdHJhY3RRbDFQYXJzZXJAQE1FQUFISEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBDV1FMU2Nhbm5lcjo6TmV4dCh2b2lkKSBfX3B0cjY0DQorP05leHRAQ1dRTFNjYW5uZXJAQEFFQUFIWFoNCis7IGludCBfX2NkZWNsIE5vcm1hbGl6ZUNpbURhdGVUaW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0KQ0KKz9Ob3JtYWxpemVDaW1EYXRlVGltZUBAWUFIUEVCR1BFQVBFQUdAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDVGltZXJHZW5lcmF0b3I6Ok5vdGlmeVN0YXJ0aW5nVGhyZWFkKHZvaWQpIF9fcHRyNjQNCis/Tm90aWZ5U3RhcnRpbmdUaHJlYWRAQ1RpbWVyR2VuZXJhdG9yQEBNRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX2NkZWNsIENUaW1lckdlbmVyYXRvcjo6Tm90aWZ5U3RvcHBpbmdUaHJlYWQodm9pZCkgX19wdHI2NA0KKz9Ob3RpZnlTdG9wcGluZ1RocmVhZEBDVGltZXJHZW5lcmF0b3JAQE1FQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDQ29udGFpbmVyQ29udHJvbDo6T2JqZWN0Q3JlYXRlZChzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0KSBfX3B0cjY0DQorP09iamVjdENyZWF0ZWRAQ0NvbnRhaW5lckNvbnRyb2xAQFVFQUFIUEVBVUlVbmtub3duQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDQ29udGFpbmVyQ29udHJvbDo6T2JqZWN0RGVzdHJveWVkKHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQpIF9fcHRyNjQNCis/T2JqZWN0RGVzdHJveWVkQENDb250YWluZXJDb250cm9sQEBVRUFBWFBFQVVJVW5rbm93bkBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDVW5rOjpPbkluaXRpYWxpemUodm9pZCkgX19wdHI2NA0KKz9PbkluaXRpYWxpemVAQ1Vua0BAVUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRXZlbnRMb2c6Ok9wZW4odm9pZCkgX19wdHI2NA0KKz9PcGVuQENFdmVudExvZ0BAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBSZWdpc3RyeTo6T3BlbihzdHJ1Y3QgSEtFWV9fICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9PcGVuQFJlZ2lzdHJ5QEBRRUFBSFBFQVVIS0VZX19AQFBFQUdLQFoNCis7IHB1YmxpYzogY2xhc3MgQ050QWNsICogX19wdHI2NCBfX2NkZWNsIENOdEFjbDo6T3JkZXJBY2VzKHZvaWQpIF9fcHRyNjQNCis/T3JkZXJBY2VzQENOdEFjbEBAUUVBQVBFQVYxQFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENBYnN0cmFjdFFsMVBhcnNlcjo6UGFyc2UoY2xhc3MgQ1FsMVBhcnNlU2luayAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1BhcnNlQENBYnN0cmFjdFFsMVBhcnNlckBAUUVBQUhQRUFWQ1FsMVBhcnNlU2lua0BASEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXUUxTY2FubmVyOjpQYXJzZSh2b2lkKSBfX3B0cjY0DQorP1BhcnNlQENXUUxTY2FubmVyQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFFMMV9QYXJzZXI6OlBhcnNlKHN0cnVjdCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OICogX19wdHI2NCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UGFyc2VAUUwxX1BhcnNlckBAUUVBQUhQRUFQRUFVUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTkBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENETVRGUGFyc2VyOjpQYXJzZUFic29sdXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9QYXJzZUFic29sdXRlQENETVRGUGFyc2VyQEBJRUFBWFBFQkdAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0RNVEZQYXJzZXI6OlBhcnNlRGF0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UGFyc2VEYXRlQENETVRGUGFyc2VyQEBJRUFBWFBFQkdAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0RNVEZQYXJzZXI6OlBhcnNlSW50ZXJ2YWwodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1BhcnNlSW50ZXJ2YWxAQ0RNVEZQYXJzZXJAQElFQUFYUEVCR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENETVRGUGFyc2VyOjpQYXJzZVBhcnQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCxpbnQsaW50ICogX19wdHI2NCxpbnQsaW50KSBfX3B0cjY0DQorP1BhcnNlUGFydEBDRE1URlBhcnNlckBASUVBQUhQRUJHSEhQRUFISEhAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENGbGV4UXVldWU6OlBlZWsodm9pZCkgX19wdHI2NA0KKz9QZWVrQENGbGV4UXVldWVAQFFFQUFQRUFYWFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENUZXh0VGVtcGxhdGU6OlByb2Nlc3NBcnJheShzdHJ1Y3QgdGFnVkFSSUFOVCBjb25zdCAmIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1Byb2Nlc3NBcnJheUBDVGV4dFRlbXBsYXRlQEBBRUFBUEVBR0FFQlV0YWdWQVJJQU5UQEBQRUFHQFoNCis7IHByaXZhdGU6IGludCBfX2NkZWNsIENXUUxTY2FubmVyOjpQdXNoYmFjayhzdHJ1Y3QgV1NMZXhUb2tlbiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UHVzaGJhY2tAQ1dRTFNjYW5uZXJAQEFFQUFIUEVBVVdTTGV4VG9rZW5AQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENXYmVtQ2FsbFNlY3VyaXR5OjpRdWVyeUJsYW5rZXQodW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx1bnNpZ25lZCBsb25nICogX19wdHI2NCx2b2lkICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UXVlcnlCbGFua2V0QENXYmVtQ2FsbFNlY3VyaXR5QEBVRUFBSlBFQUswUEVBUEVBRzAwUEVBUEVBWDBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDQnVmZmVyOjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUludGVyZmFjZUBDQnVmZmVyQEBVRUFBSkFFQlVfR1VJREBAUEVBUEVBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENVbms6OlF1ZXJ5SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5SW50ZXJmYWNlQENVbmtAQFVFQUFKQUVCVV9HVUlEQEBQRUFQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1Vua0ludGVybmFsOjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJiBfX3B0cjY0LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9RdWVyeUludGVyZmFjZUBDVW5rSW50ZXJuYWxAQFVFQUFKQUVCVV9HVUlEQEBQRUFQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DYWxsU2VjdXJpdHk6OlF1ZXJ5SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1F1ZXJ5SW50ZXJmYWNlQENXYmVtQ2FsbFNlY3VyaXR5QEBVRUFBSkFFQlVfR1VJREBAUEVBUEVBWEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0V4ZWNRdWV1ZTo6UXVldWVVbmJsb2NrZWRXYWl0Rm9yU2luZ2xlT2JqZWN0KHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpDQorP1F1ZXVlVW5ibG9ja2VkV2FpdEZvclNpbmdsZU9iamVjdEBDRXhlY1F1ZXVlQEBTQUtQRUFYS0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0V4ZWNRdWV1ZTo6UXVldWVXYWl0Rm9yU2luZ2xlT2JqZWN0KHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcpDQorP1F1ZXVlV2FpdEZvclNpbmdsZU9iamVjdEBDRXhlY1F1ZXVlQEBTQUtQRUFYS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENCdWZmZXI6OlJlYWQodm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWFkQENCdWZmZXJAQFVFQUFKUEVBWEtQRUFLQFoNCis7IGludCBfX2NkZWNsIFJlYWRJNjQodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LF9faW50NjQgJiBfX3B0cjY0IF9fcHRyNjQpDQorP1JlYWRJNjRAQFlBSFBFQkdBRUZBX0pAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0J1ZmZlcjo6UmVhZExQV1NUUih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlYWRMUFdTVFJAQ0J1ZmZlckBAUUVBQUpBRUFQRUJHQFoNCis7IGludCBfX2NkZWNsIFJlYWRVSTY0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0ICYgX19wdHI2NCBfX3B0cjY0KQ0KKz9SZWFkVUk2NEBAWUFIUEVCR0FFRkFfS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBDV2luMzJEZWZhdWx0QXJlbmE6OlJlYWxsb2Modm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9SZWFsbG9jQENXaW4zMkRlZmF1bHRBcmVuYUBAVUVBQVBFQVhQRUFYX0tAWg0KKzsgcHJpdmF0ZTogaW50IF9fY2RlY2wgQ1dRTFNjYW5uZXI6OlJlZHVjZVNxbDg5Sm9pbnModm9pZCkgX19wdHI2NA0KKz9SZWR1Y2VTcWw4OUpvaW5zQENXUUxTY2FubmVyQEBBRUFBSFhaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBDV1FMU2Nhbm5lcjo6UmVkdWNlU3FsOTJKb2lucyh2b2lkKSBfX3B0cjY0DQorP1JlZHVjZVNxbDkySm9pbnNAQ1dRTFNjYW5uZXJAQEFFQUFIWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHZvaWQgX19jZGVjbCBDRXhlY1F1ZXVlOjpSZWdpc3RlcihjbGFzcyBDRXhlY1F1ZXVlOjpDVGhyZWFkUmVjb3JkICogX19wdHI2NCkNCis/UmVnaXN0ZXJAQ0V4ZWNRdWV1ZUBAS0FYUEVBVkNUaHJlYWRSZWNvcmRAMUBAWg0KKzsgdm9pZCBfX2NkZWNsIFJlZ2lzdGVyRExMKHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fcHRyNjQsc3RydWN0IF9HVUlELHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9SZWdpc3RlckRMTEBAWUFYUEVBVUhJTlNUQU5DRV9fQEBVX0dVSURAQFBFQUcyMkBaDQorOyBsb25nIF9fY2RlY2wgUmVnaXN0ZXJEbGxBcHBpZChzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3B0cjY0LHN0cnVjdCBfR1VJRCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP1JlZ2lzdGVyRGxsQXBwaWRAQFlBSlBFQVVISU5TVEFOQ0VfX0BAVV9HVUlEQEBQRUFHMjIyQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ0Jhc2ljVW5sb2FkSW5zdHJ1Y3Rpb246OlJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlQENCYXNpY1VubG9hZEluc3RydWN0aW9uQEBVRUFBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENCdWZmZXI6OlJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlQENCdWZmZXJAQFVFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ0NvbnRhaW5lckNvbnRyb2w6OlJlbGVhc2Uoc3RydWN0IElVbmtub3duICogX19wdHI2NCkgX19wdHI2NA0KKz9SZWxlYXNlQENDb250YWluZXJDb250cm9sQEBVRUFBWFBFQVVJVW5rbm93bkBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENFeGVjUXVldWU6OlJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlQENFeGVjUXVldWVAQFFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1Vuazo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ1Vua0BAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDVW5rSW50ZXJuYWw6OlJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlQENVbmtJbnRlcm5hbEBAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDV2JlbUNhbGxTZWN1cml0eTo6UmVsZWFzZSh2b2lkKSBfX3B0cjY0DQorP1JlbGVhc2VAQ1diZW1DYWxsU2VjdXJpdHlAQFVFQUFLWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT046OlJlbGVhc2Uodm9pZCkgX19wdHI2NA0KKz9SZWxlYXNlQFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT05AQFFFQUFYWFoNCis7IHB1YmxpYzogY2xhc3MgQ1diZW1JbnRlcnZhbCAgX19jZGVjbCBDV2JlbVRpbWU6OlJlbWFpbnNVbnRpbChjbGFzcyBDV2JlbVRpbWUgY29uc3QgJiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP1JlbWFpbnNVbnRpbEBDV2JlbVRpbWVAQFFFQkE/QVZDV2JlbUludGVydmFsQEBBRUJWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0luc3RydWN0aW9uUXVldWU6OlJlbW92ZShjbGFzcyBDSW5zdHJ1Y3Rpb25UZXN0ICogX19wdHI2NCxjbGFzcyBDVGltZXJJbnN0cnVjdGlvbiAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbW92ZUBDSW5zdHJ1Y3Rpb25RdWV1ZUBAUUVBQUpQRUFWQ0luc3RydWN0aW9uVGVzdEBAUEVBUEVBVkNUaW1lckluc3RydWN0aW9uQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19jZGVjbCBDTWluTWF4TGltaXRDb250cm9sOjpSZW1vdmUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9SZW1vdmVAQ01pbk1heExpbWl0Q29udHJvbEBAVUVBQUpLQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENUaW1lckdlbmVyYXRvcjo6UmVtb3ZlKGNsYXNzIENJbnN0cnVjdGlvblRlc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1JlbW92ZUBDVGltZXJHZW5lcmF0b3JAQFFFQUFKUEVBVkNJbnN0cnVjdGlvblRlc3RAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENGbGV4QXJyYXk6OlJlbW92ZUF0KGludCkgX19wdHI2NA0KKz9SZW1vdmVBdEBDRmxleEFycmF5QEBRRUFBSEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU2FmZUFycmF5OjpSZW1vdmVBdChpbnQpIF9fcHRyNjQNCis/UmVtb3ZlQXRAQ1NhZmVBcnJheUBAUUVBQUhIQFoNCis7IHB1YmxpYzogY2xhc3MgQ1NtYWxsQXJyYXlCbG9iICogX19wdHI2NCBfX2NkZWNsIENTbWFsbEFycmF5QmxvYjo6UmVtb3ZlQXQoaW50LHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZW1vdmVBdEBDU21hbGxBcnJheUJsb2JAQFFFQUFQRUFWMUBIUEVBUEVBWEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENWYXJWZWN0b3I6OlJlbW92ZUF0KGludCkgX19wdHI2NA0KKz9SZW1vdmVBdEBDVmFyVmVjdG9yQEBRRUFBSEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV1N0cmluZ0FycmF5OjpSZW1vdmVBdChpbnQpIF9fcHRyNjQNCis/UmVtb3ZlQXRAQ1dTdHJpbmdBcnJheUBAUUVBQUhIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0xpbWl0Q29udHJvbDo6UmVtb3ZlTWVtYmVyKHZvaWQpIF9fcHRyNjQNCis/UmVtb3ZlTWVtYmVyQENMaW1pdENvbnRyb2xAQFVFQUFKWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1dTdHJpbmdBcnJheTo6UmVwbGFjZUF0KGludCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVwbGFjZUF0QENXU3RyaW5nQXJyYXlAQFFFQUFISFBFQUdAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgUUwxX1BhcnNlcjo6UmVwbGFjZUNsYXNzTmFtZShzdHJ1Y3QgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9SZXBsYWNlQ2xhc3NOYW1lQFFMMV9QYXJzZXJAQFNBUEVBR1BFQVVRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBQRUJHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0V2ZW50TG9nOjpSZXBvcnQodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyxjbGFzcyBDSW5zZXJ0aW9uU3RyaW5nLGNsYXNzIENJbnNlcnRpb25TdHJpbmcsY2xhc3MgQ0luc2VydGlvblN0cmluZyxjbGFzcyBDSW5zZXJ0aW9uU3RyaW5nLGNsYXNzIENJbnNlcnRpb25TdHJpbmcsY2xhc3MgQ0luc2VydGlvblN0cmluZyxjbGFzcyBDSW5zZXJ0aW9uU3RyaW5nLGNsYXNzIENJbnNlcnRpb25TdHJpbmcsY2xhc3MgQ0luc2VydGlvblN0cmluZyxjbGFzcyBDSW5zZXJ0aW9uU3RyaW5nKSBfX3B0cjY0DQorP1JlcG9ydEBDRXZlbnRMb2dAQFFFQUFIR0tWQ0luc2VydGlvblN0cmluZ0BAMDAwMDAwMDAwQFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENGbGV4UXVldWU6OlJlcXVldWUodm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmVxdWV1ZUBDRmxleFF1ZXVlQEBRRUFBX05QRUFYQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENSZWdpc3RyeU1pbk1heExpbWl0Q29udHJvbDo6UmVyZWFkKHZvaWQpIF9fcHRyNjQNCis/UmVyZWFkQENSZWdpc3RyeU1pbk1heExpbWl0Q29udHJvbEBAUUVBQUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDVW5sb2FkSW5zdHJ1Y3Rpb246OlJlcmVhZChzdHJ1Y3QgSVdiZW1Db250ZXh0ICogX19wdHI2NCkgX19wdHI2NA0KKz9SZXJlYWRAQ1VubG9hZEluc3RydWN0aW9uQEBVRUFBWFBFQVVJV2JlbUNvbnRleHRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQnVmZmVyOjpSZXNldCh2b2lkKSBfX3B0cjY0DQorP1Jlc2V0QENCdWZmZXJAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNUkNJQ29udHJvbDo6UmVzZXQodm9pZCkgX19wdHI2NA0KKz9SZXNldEBDTVJDSUNvbnRyb2xAQFFFQUFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENEYXRlVGltZVBhcnNlcjo6UmVzZXREYXRlKGludCkgX19wdHI2NA0KKz9SZXNldERhdGVAQ0RhdGVUaW1lUGFyc2VyQEBJRUFBWEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpSZXNldERhdGVUaW1lKGludCkgX19wdHI2NA0KKz9SZXNldERhdGVUaW1lQENEYXRlVGltZVBhcnNlckBASUVBQVhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENEYXRlVGltZVBhcnNlcjo6UmVzZXRUaW1lKGludCkgX19wdHI2NA0KKz9SZXNldFRpbWVAQ0RhdGVUaW1lUGFyc2VyQEBJRUFBWEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTnRBY2w6OlJlc2l6ZSh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1Jlc2l6ZUBDTnRBY2xAQFFFQUFIS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDSGFsdGFibGU6OlJlc3VtZSh2b2lkKSBfX3B0cjY0DQorP1Jlc3VtZUBDSGFsdGFibGVAQFFFQUFKWFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENIYWx0YWJsZTo6UmVzdW1lQWxsKHZvaWQpIF9fcHRyNjQNCis/UmVzdW1lQWxsQENIYWx0YWJsZUBAUUVBQUpYWg0KKzsgbG9uZyBfX2NkZWNsIFJldHJpZXZlU2lkRnJvbUNhbGwoY2xhc3MgQ050U2lkICYgX19wdHI2NCkNCis/UmV0cmlldmVTaWRGcm9tQ2FsbEBAWUFKQUVBVkNOdFNpZEBAQFoNCis7IHByaXZhdGU6IGxvbmcgX19jZGVjbCBDSWRlbnRpdHlTZWN1cml0eTo6UmV0cmlldmVTaWRGcm9tQ2FsbChjbGFzcyBDTnRTaWQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1JldHJpZXZlU2lkRnJvbUNhbGxAQ0lkZW50aXR5U2VjdXJpdHlAQEFFQUFKQUVBVkNOdFNpZEBAQFoNCis7IGxvbmcgX19jZGVjbCBSZXRyaWV2ZVNpZEZyb21Ub2tlbih2b2lkICogX19wdHI2NCxjbGFzcyBDTnRTaWQgJiBfX3B0cjY0KQ0KKz9SZXRyaWV2ZVNpZEZyb21Ub2tlbkBAWUFKUEVBWEFFQVZDTnRTaWRAQEBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDVGV4dFRlbXBsYXRlOjpSZXR1cm5Fc2NhcGVkUmV0dXJucyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/UmV0dXJuRXNjYXBlZFJldHVybnNAQ1RleHRUZW1wbGF0ZUBAQUVBQVBFQUdQRUFHQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0J1ZmZlcjo6UmV2ZXJ0KHZvaWQpIF9fcHRyNjQNCis/UmV2ZXJ0QENCdWZmZXJAQFVFQUFKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1diZW1DYWxsU2VjdXJpdHk6OlJldmVydFRvU2VsZih2b2lkKSBfX3B0cjY0DQorP1JldmVydFRvU2VsZkBDV2JlbUNhbGxTZWN1cml0eUBAVUVBQUpYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1RpbWVyR2VuZXJhdG9yOjpTY2hlZHVsZUZyZWVVbnVzZWRMaWJyYXJpZXModm9pZCkgX19wdHI2NA0KKz9TY2hlZHVsZUZyZWVVbnVzZWRMaWJyYXJpZXNAQ1RpbWVyR2VuZXJhdG9yQEBRRUFBWFhaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENUaW1lckdlbmVyYXRvcjo6U2NoZWR1bGVyVGhyZWFkKHZvaWQgKiBfX3B0cjY0KQ0KKz9TY2hlZHVsZXJUaHJlYWRAQ1RpbWVyR2VuZXJhdG9yQEBDQUtQRUFYQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0V2ZW50TG9nOjpTZWFyY2hGb3JSZWNvcmQoY2xhc3MgQ0V2ZW50TG9nUmVjb3JkICogX19wdHI2NCkgX19wdHI2NA0KKz9TZWFyY2hGb3JSZWNvcmRAQ0V2ZW50TG9nQEBJRUFBSFBFQVZDRXZlbnRMb2dSZWNvcmRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3MgQ0V4ZWNSZXF1ZXN0ICogX19wdHI2NCBfX2NkZWNsIENFeGVjUXVldWU6OlNlYXJjaEZvclN1aXRhYmxlUmVxdWVzdChjbGFzcyBDRXhlY1F1ZXVlOjpDVGhyZWFkUmVjb3JkICogX19wdHI2NCkgX19wdHI2NA0KKz9TZWFyY2hGb3JTdWl0YWJsZVJlcXVlc3RAQ0V4ZWNRdWV1ZUBATUVBQVBFQVZDRXhlY1JlcXVlc3RAQFBFQVZDVGhyZWFkUmVjb3JkQDFAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0J1ZmZlcjo6U2Vlayh1bmlvbiBfTEFSR0VfSU5URUdFUix1bnNpZ25lZCBsb25nLHVuaW9uIF9VTEFSR0VfSU5URUdFUiAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2Vla0BDQnVmZmVyQEBVRUFBSlRfTEFSR0VfSU5URUdFUkBAS1BFQVRfVUxBUkdFX0lOVEVHRVJAQEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBDV1FMU2Nhbm5lcjo6U2VsZWN0TGlzdCh2b2lkKSBfX3B0cjY0DQorP1NlbGVjdExpc3RAQ1dRTFNjYW5uZXJAQEFFQUFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBib29sIF9fY2RlY2wgQzlYQWNlOjpTZXJpYWxpemUodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9TZXJpYWxpemVAQzlYQWNlQEBVRUFBX05QRUFFX0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGJvb2wgX19jZGVjbCBDTnRBY2U6OlNlcmlhbGl6ZSh1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP1NlcmlhbGl6ZUBDTnRBY2VAQFVFQUFfTlBFQUVfS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDV2JlbVRpbWU6OlNldDEwMG5zcyhfX2ludDY0KSBfX3B0cjY0DQorP1NldDEwMG5zc0BDV2JlbVRpbWVAQFFFQUFYX0pAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1RpbWVyR2VuZXJhdG9yOjpTZXQoY2xhc3MgQ1RpbWVySW5zdHJ1Y3Rpb24gKiBfX3B0cjY0LGNsYXNzIENXYmVtVGltZSkgX19wdHI2NA0KKz9TZXRAQ1RpbWVyR2VuZXJhdG9yQEBRRUFBSlBFQVZDVGltZXJJbnN0cnVjdGlvbkBAVkNXYmVtVGltZUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTjo6U2V0QWdncmVnYXRlZCh2b2lkKSBfX3B0cjY0DQorP1NldEFnZ3JlZ2F0ZWRAUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTkBAVUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OOjpTZXRBZ2dyZWdhdGlvblRvbGVyYW5jZShzdHJ1Y3QgX3RhZ19XYmVtUWwxVG9sZXJhbmNlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRBZ2dyZWdhdGlvblRvbGVyYW5jZUBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBVRUFBWEFFQlVfdGFnX1diZW1RbDFUb2xlcmFuY2VAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVmFyOjpTZXRBc051bGwodm9pZCkgX19wdHI2NA0KKz9TZXRBc051bGxAQ1ZhckBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZsZXhBcnJheTo6U2V0QXQoaW50LHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEF0QENGbGV4QXJyYXlAQFFFQUFYSFBFQVhAWg0KKzsgcHVibGljOiBjbGFzcyBDU21hbGxBcnJheUJsb2IgKiBfX3B0cjY0IF9fY2RlY2wgQ1NtYWxsQXJyYXlCbG9iOjpTZXRBdChpbnQsdm9pZCAqIF9fcHRyNjQsdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEF0QENTbWFsbEFycmF5QmxvYkBAUUVBQVBFQVYxQEhQRUFYUEVBUEVBWEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXU3RyaW5nQXJyYXk6OlNldEF0KGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0QXRAQ1dTdHJpbmdBcnJheUBAUUVBQUhIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENWYXI6OlNldEJTVFIodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEJTVFJAQ1ZhckBAUUVBQUhQRUFHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Zhcjo6U2V0QlNUUihjbGFzcyBhdXRvX2JzdHIpIF9fcHRyNjQNCis/U2V0QlNUUkBDVmFyQEBRRUFBSFZhdXRvX2JzdHJAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTYWZlQXJyYXk6OlNldEJTVFJBdChpbnQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEJTVFJBdEBDU2FmZUFycmF5QEBRRUFBSEhQRUFHQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUmVnaXN0cnk6OlNldEJpbmFyeSh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRCaW5hcnlAUmVnaXN0cnlAQFFFQUFIUEVBR1BFQUVLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENWYXI6OlNldEJsb2Ioc3RydWN0IHRhZ0JMT0IgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9TZXRCbG9iQENWYXJAQFFFQUFYUEVBVXRhZ0JMT0JAQEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Zhcjo6U2V0Qm9vbChzaG9ydCkgX19wdHI2NA0KKz9TZXRCb29sQENWYXJAQFFFQUFYRkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTYWZlQXJyYXk6OlNldEJvb2xBdChpbnQsc2hvcnQpIF9fcHRyNjQNCis/U2V0Qm9vbEF0QENTYWZlQXJyYXlAQFFFQUFISEZAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Zhcjo6U2V0Qnl0ZSh1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP1NldEJ5dGVAQ1ZhckBAUUVBQVhFQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1NhZmVBcnJheTo6U2V0Qnl0ZUF0KGludCx1bnNpZ25lZCBjaGFyKSBfX3B0cjY0DQorP1NldEJ5dGVBdEBDU2FmZUFycmF5QEBRRUFBSEhFQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENWYXI6OlNldENhbkRlbGV0ZShpbnQpIF9fcHRyNjQNCis/U2V0Q2FuRGVsZXRlQENWYXJAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVmFyOjpTZXRDaGFyKGNoYXIpIF9fcHRyNjQNCis/U2V0Q2hhckBDVmFyQEBRRUFBWERAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OOjpTZXRDbGFzc05hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldENsYXNzTmFtZUBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBVRUFBWFBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Zhcjo6U2V0Q2xzSWQoc3RydWN0IF9HVUlEICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/U2V0Q2xzSWRAQ1ZhckBAUUVBQVhQRUFVX0dVSURAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OOjpTZXRDb3VudFF1ZXJ5KHZvaWQpIF9fcHRyNjQNCis/U2V0Q291bnRRdWVyeUBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBVRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXYmVtVGltZTo6U2V0RE1URih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RE1URkBDV2JlbVRpbWVAQFFFQUFIUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVmFyOjpTZXREV09SRCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldERXT1JEQENWYXJAQFFFQUFYS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFJlZ2lzdHJ5OjpTZXREV09SRCh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXREV09SREBSZWdpc3RyeUBAUUVBQUhQRUFHS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFJlZ2lzdHJ5OjpTZXREV09SRFN0cih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXREV09SRFN0ckBSZWdpc3RyeUBAUUVBQUhQRUFHS0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENOdFNlY3VyaXR5RGVzY3JpcHRvcjo6U2V0RGFjbChjbGFzcyBDTnRBY2wgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERhY2xAQ050U2VjdXJpdHlEZXNjcmlwdG9yQEBRRUFBSFBFQVZDTnRBY2xAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRGF0ZVBhcnQ6OlNldERhdGUoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RGF0ZUBDRGF0ZVBhcnRAQFFFQUFKUEVCREBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDRGF0ZVBhcnQ6OlNldERhdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERhdGVAQ0RhdGVQYXJ0QEBRRUFBSlBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OlNldERhdGVUaW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREYXRlVGltZUBDRGF0ZVRpbWVQYXJzZXJAQFFFQUFIUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU2FmZUFycmF5OjpTZXREZXN0cnVjdG9yUG9saWN5KGludCkgX19wdHI2NA0KKz9TZXREZXN0cnVjdG9yUG9saWN5QENTYWZlQXJyYXlAQFFFQUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVmFyOjpTZXREaXNwYXRjaChzdHJ1Y3QgSURpc3BhdGNoICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXREaXNwYXRjaEBDVmFyQEBRRUFBWFBFQVVJRGlzcGF0Y2hAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTYWZlQXJyYXk6OlNldERpc3BhdGNoQXQoaW50LHN0cnVjdCBJRGlzcGF0Y2ggKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldERpc3BhdGNoQXRAQ1NhZmVBcnJheUBAUUVBQUhIUEVBVUlEaXNwYXRjaEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENWYXI6OlNldERvdWJsZShkb3VibGUpIF9fcHRyNjQNCis/U2V0RG91YmxlQENWYXJAQFFFQUFYTkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTYWZlQXJyYXk6OlNldERvdWJsZUF0KGludCxkb3VibGUpIF9fcHRyNjQNCis/U2V0RG91YmxlQXRAQ1NhZmVBcnJheUBAUUVBQUhITkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVmFyOjpTZXRFbWJlZGRlZE9iamVjdChzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEVtYmVkZGVkT2JqZWN0QENWYXJAQFFFQUFYUEVBVUlVbmtub3duQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBSZWdpc3RyeTo6U2V0RXhwYW5kU3RyKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RXhwYW5kU3RyQFJlZ2lzdHJ5QEBRRUFBSFBFQUcwQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENMaWtlOjpTZXRFeHByZXNzaW9uKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZXRFeHByZXNzaW9uQENMaWtlQEBRRUFBWFBFQkdHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDU3RhdGljQ3JpdFNlYzo6U2V0RmFpbHVyZSh2b2lkKQ0KKz9TZXRGYWlsdXJlQENTdGF0aWNDcml0U2VjQEBTQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Zhcjo6U2V0RmlsZVRpbWUoc3RydWN0IF9GSUxFVElNRSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0RmlsZVRpbWVAQ1ZhckBAUUVBQVhQRUFVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV2JlbVRpbWU6OlNldEZpbGVUaW1lKHN0cnVjdCBfRklMRVRJTUUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEZpbGVUaW1lQENXYmVtVGltZUBAUUVBQUhBRUJVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDOVhBY2U6OlNldEZsYWdzKGxvbmcpIF9fcHRyNjQNCis/U2V0RmxhZ3NAQzlYQWNlQEBVRUFBWEpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDTnRBY2U6OlNldEZsYWdzKGxvbmcpIF9fcHRyNjQNCis/U2V0RmxhZ3NAQ050QWNlQEBVRUFBWEpAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Zhcjo6U2V0RmxvYXQoZmxvYXQpIF9fcHRyNjQNCis/U2V0RmxvYXRAQ1ZhckBAUUVBQVhNQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1NhZmVBcnJheTo6U2V0RmxvYXRBdChpbnQsZmxvYXQpIF9fcHRyNjQNCis/U2V0RmxvYXRBdEBDU2FmZUFycmF5QEBRRUFBSEhNQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ050U2VjdXJpdHlEZXNjcmlwdG9yOjpTZXRGcm9tQWJzb2x1dGVDb3B5KHN0cnVjdCBTTnRBYnNvbHV0ZVNEICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRGcm9tQWJzb2x1dGVDb3B5QENOdFNlY3VyaXR5RGVzY3JpcHRvckBAUUVBQUhQRUFVU050QWJzb2x1dGVTREBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ050U2VjdXJpdHlEZXNjcmlwdG9yOjpTZXRHcm91cChjbGFzcyBDTnRTaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEdyb3VwQENOdFNlY3VyaXR5RGVzY3JpcHRvckBAUUVBQUhQRUFWQ050U2lkQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NhZmVBcnJheTo6U2V0R3Jvd0dyYW51bGFyaXR5KGludCkgX19wdHI2NA0KKz9TZXRHcm93R3JhbnVsYXJpdHlAQ1NhZmVBcnJheUBAUUVBQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQcm9wZXJ0eU5hbWU6OlNldEhhbmRsZSh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRIYW5kbGVAQ1Byb3BlcnR5TmFtZUBAUUVBQVhQRUFYQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENFeGVjUXVldWU6OlNldElkbGVUaW1lb3V0KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0SWRsZVRpbWVvdXRAQ0V4ZWNRdWV1ZUBAUUVBQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENCYXNpY1VubG9hZEluc3RydWN0aW9uOjpTZXRJbnRlcnZhbChjbGFzcyBDV2JlbUludGVydmFsICYgX19wdHI2NCkgX19wdHI2NA0KKz9TZXRJbnRlcnZhbEBDQmFzaWNVbmxvYWRJbnN0cnVjdGlvbkBAUUVBQVhBRUFWQ1diZW1JbnRlcnZhbEBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Zhcjo6U2V0TFBTVFIoY2hhciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1NldExQU1RSQENWYXJAQFFFQUFIUEVBREhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVmFyOjpTZXRMUFdTVFIodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9TZXRMUFdTVFJAQ1ZhckBAUUVBQUhQRUFHSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVmFyOjpTZXRMb25nKGxvbmcpIF9fcHRyNjQNCis/U2V0TG9uZ0BDVmFyQEBRRUFBWEpAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU2FmZUFycmF5OjpTZXRMb25nQXQoaW50LGxvbmcpIF9fcHRyNjQNCis/U2V0TG9uZ0F0QENTYWZlQXJyYXlAQFFFQUFISEpAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01pbk1heExpbWl0Q29udHJvbDo6U2V0TWF4KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0TWF4QENNaW5NYXhMaW1pdENvbnRyb2xAQFFFQUFYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDV2JlbUludGVydmFsOjpTZXRNaWxsaXNlY29uZHModW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRNaWxsaXNlY29uZHNAQ1diZW1JbnRlcnZhbEBAUUVBQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENNaW5NYXhMaW1pdENvbnRyb2w6OlNldE1pbih1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldE1pbkBDTWluTWF4TGltaXRDb250cm9sQEBRRUFBWEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBSZWdpc3RyeTo6U2V0TXVsdGlTdHIodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldE11bHRpU3RyQFJlZ2lzdHJ5QEBRRUFBSFBFQUcwS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRXhlY1JlcXVlc3Q6OlNldE5leHQoY2xhc3MgQ0V4ZWNSZXF1ZXN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXROZXh0QENFeGVjUmVxdWVzdEBAUUVBQVhQRUFWMUBAWg0KKzsgaW50IF9fY2RlY2wgU2V0T2JqZWN0QWNjZXNzMih2b2lkICogX19wdHI2NCkNCis/U2V0T2JqZWN0QWNjZXNzMkBAWUFIUEVBWEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRXhlY1F1ZXVlOjpTZXRPdmVyZmxvd0lkbGVUaW1lb3V0KHVuc2lnbmVkIGxvbmcpIF9fcHRyNjQNCis/U2V0T3ZlcmZsb3dJZGxlVGltZW91dEBDRXhlY1F1ZXVlQEBRRUFBWEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTnRTZWN1cml0eURlc2NyaXB0b3I6OlNldE93bmVyKGNsYXNzIENOdFNpZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0T3duZXJAQ050U2VjdXJpdHlEZXNjcmlwdG9yQEBRRUFBSFBFQVZDTnRTaWRAQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENQZXJzaXN0ZW50Q29uZmlnOjpTZXRQZXJzaXN0ZW50Q2ZnVmFsdWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFBlcnNpc3RlbnRDZmdWYWx1ZUBDUGVyc2lzdGVudENvbmZpZ0BAUUVBQUhLS0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRXhlY1JlcXVlc3Q6OlNldFByaW9yaXR5KGxvbmcpIF9fcHRyNjQNCis/U2V0UHJpb3JpdHlAQ0V4ZWNSZXF1ZXN0QEBRRUFBWEpAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Zhcjo6U2V0UmF3KGludCx2b2lkICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/U2V0UmF3QENWYXJAQFFFQUFYSFBFQVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENWYXJWZWN0b3I6OlNldFJhd0FycmF5QmluZGluZyhpbnQpIF9fcHRyNjQNCis/U2V0UmF3QXJyYXlCaW5kaW5nQENWYXJWZWN0b3JAQFFFQUFYSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDVmFyVmVjdG9yOjpTZXRSYXdBcnJheURhdGEodm9pZCAqIF9fcHRyNjQsaW50LGludCkgX19wdHI2NA0KKz9TZXRSYXdBcnJheURhdGFAQ1ZhclZlY3RvckBAUUVBQUpQRUFYSEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NhZmVBcnJheTo6U2V0UmF3QXJyYXlNYXhFbGVtZW50KGludCkgX19wdHI2NA0KKz9TZXRSYXdBcnJheU1heEVsZW1lbnRAQ1NhZmVBcnJheUBAUUVBQVhIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1ZhclZlY3Rvcjo6U2V0UmF3QXJyYXlTaXplKGludCkgX19wdHI2NA0KKz9TZXRSYXdBcnJheVNpemVAQ1ZhclZlY3RvckBAUUVBQUhIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1NhZmVBcnJheTo6U2V0UmF3RGF0YSh2b2lkICogX19wdHI2NCxpbnQsaW50KSBfX3B0cjY0DQorP1NldFJhd0RhdGFAQ1NhZmVBcnJheUBAUUVBQUhQRUFYSEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0V4ZWNRdWV1ZTo6U2V0UmVxdWVzdExpbWl0cyhsb25nLGxvbmcsbG9uZykgX19wdHI2NA0KKz9TZXRSZXF1ZXN0TGltaXRzQENFeGVjUXVldWVAQFFFQUFYSkpKQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ050U2VjdXJpdHlEZXNjcmlwdG9yOjpTZXRTYWNsKGNsYXNzIENOdEFjbCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0U2FjbEBDTnRTZWN1cml0eURlc2NyaXB0b3JAQFFFQUFIUEVBVkNOdEFjbEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENWYXI6OlNldFNhZmVBcnJheShpbnQsc3RydWN0IHRhZ1NBRkVBUlJBWSAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0U2FmZUFycmF5QENWYXJAQFFFQUFYSFBFQVV0YWdTQUZFQVJSQVlAQEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBDU2FmZUFycmF5OjpTZXRTY2FsYXJBdChpbnQsdW5pb24gU0FfQXJyYXlTY2FsYXIpIF9fcHRyNjQNCis/U2V0U2NhbGFyQXRAQ1NhZmVBcnJheUBAQUVBQUhIVFNBX0FycmF5U2NhbGFyQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Zhcjo6U2V0U2hvcnQoc2hvcnQpIF9fcHRyNjQNCis/U2V0U2hvcnRAQ1ZhckBAUUVBQVhGQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1NhZmVBcnJheTo6U2V0U2hvcnRBdChpbnQsc2hvcnQpIF9fcHRyNjQNCis/U2V0U2hvcnRBdEBDU2FmZUFycmF5QEBRRUFBSEhGQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENCdWZmZXI6OlNldFNpemUodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRTaXplQENCdWZmZXJAQFFFQUFKS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX2NkZWNsIENCdWZmZXI6OlNldFNpemUodW5pb24gX1VMQVJHRV9JTlRFR0VSKSBfX3B0cjY0DQorP1NldFNpemVAQ0J1ZmZlckBAVUVBQUpUX1VMQVJHRV9JTlRFR0VSQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZsZXhBcnJheTo6U2V0U2l6ZShpbnQpIF9fcHRyNjQNCis/U2V0U2l6ZUBDRmxleEFycmF5QEBRRUFBWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ01pbk1heExpbWl0Q29udHJvbDo6U2V0U2xlZXBBdE1heCh1bnNpZ25lZCBsb25nKSBfX3B0cjY0DQorP1NldFNsZWVwQXRNYXhAQ01pbk1heExpbWl0Q29udHJvbEBAUUVBQVhLQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgUmVnaXN0cnk6OlNldFN0cih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFN0ckBSZWdpc3RyeUBAUUVBQUhQRUFHMEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXYmVtVGltZTo6U2V0U3lzdGVtVGltZShzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFN5c3RlbVRpbWVAQ1diZW1UaW1lQEBRRUFBSEFFQlVfU1lTVEVNVElNRUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENUZXh0VGVtcGxhdGU6OlNldFRlbXBsYXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRUZW1wbGF0ZUBDVGV4dFRlbXBsYXRlQEBRRUFBWFBFQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0V4ZWNRdWV1ZTo6U2V0VGhyZWFkTGltaXRzKGxvbmcsbG9uZyxsb25nKSBfX3B0cjY0DQorP1NldFRocmVhZExpbWl0c0BDRXhlY1F1ZXVlQEBRRUFBWEpKSkBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVW5sb2FkSW5zdHJ1Y3Rpb246OlNldFRvRGVmYXVsdCh2b2lkKSBfX3B0cjY0DQorP1NldFRvRGVmYXVsdEBDVW5sb2FkSW5zdHJ1Y3Rpb25AQFFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTjo6U2V0VG9sZXJhbmNlKHN0cnVjdCBfdGFnX1diZW1RbDFUb2xlcmFuY2UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFRvbGVyYW5jZUBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBVRUFBWEFFQlVfdGFnX1diZW1RbDFUb2xlcmFuY2VAQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVmFyOjpTZXRVbmtub3duKHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0VW5rbm93bkBDVmFyQEBRRUFBWFBFQVVJVW5rbm93bkBAQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1NhZmVBcnJheTo6U2V0VW5rbm93bkF0KGludCxzdHJ1Y3QgSVVua25vd24gKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFVua25vd25BdEBDU2FmZUFycmF5QEBRRUFBSEhQRUFVSVVua25vd25AQEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDVmFyOjpTZXRWYXJWZWN0b3IoY2xhc3MgQ1ZhclZlY3RvciAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1NldFZhclZlY3RvckBDVmFyQEBRRUFBWFBFQVZDVmFyVmVjdG9yQEBIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1Zhcjo6U2V0VmFyaWFudChzdHJ1Y3QgdGFnVkFSSUFOVCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1NldFZhcmlhbnRAQ1ZhckBAUUVBQUhQRUFVdGFnVkFSSUFOVEBASEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTYWZlQXJyYXk6OlNldFZhcmlhbnRBdChpbnQsc3RydWN0IHRhZ1ZBUklBTlQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldFZhcmlhbnRBdEBDU2FmZUFycmF5QEBRRUFBSEhQRUFVdGFnVkFSSUFOVEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENFeGVjUmVxdWVzdDo6U2V0V2hlbkRvbmVIYW5kbGUodm9pZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/U2V0V2hlbkRvbmVIYW5kbGVAQ0V4ZWNSZXF1ZXN0QEBRRUFBWFBFQVhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1Zhcjo6U2V0V29yZCh1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9TZXRXb3JkQENWYXJAQFFFQUFYR0BaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIENTbWFsbEFycmF5QmxvYiAqIF9fcHRyNjQgX19jZGVjbCBDU21hbGxBcnJheUJsb2I6OlNocmluayh2b2lkKSBfX3B0cjY0DQorP1Nocmlua0BDU21hbGxBcnJheUJsb2JAQElFQUFQRUFWMUBYWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDU21hbGxBcnJheUJsb2IgKiBfX3B0cjY0IF9fY2RlY2wgQ1NtYWxsQXJyYXlCbG9iOjpTaHJpbmtJZk5lZWRlZCh2b2lkKSBfX3B0cjY0DQorP1Nocmlua0lmTmVlZGVkQENTbWFsbEFycmF5QmxvYkBASUVBQVBFQVYxQFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRXhlY1F1ZXVlOjpTaHV0ZG93bih2b2lkKSBfX3B0cjY0DQorP1NodXRkb3duQENFeGVjUXVldWVAQFFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ1RpbWVyR2VuZXJhdG9yOjpTaHV0ZG93bih2b2lkKSBfX3B0cjY0DQorP1NodXRkb3duQENUaW1lckdlbmVyYXRvckBAVUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDRXhlY1F1ZXVlOjpTaHV0ZG93blRocmVhZChjbGFzcyBDRXhlY1F1ZXVlOjpDVGhyZWFkUmVjb3JkICogX19wdHI2NCkgX19wdHI2NA0KKz9TaHV0ZG93blRocmVhZEBDRXhlY1F1ZXVlQEBNRUFBWFBFQVZDVGhyZWFkUmVjb3JkQDFAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ0V4ZWNRdWV1ZTo6U2l0T3V0UGVuYWx0eShsb25nKSBfX3B0cjY0DQorP1NpdE91dFBlbmFsdHlAQ0V4ZWNRdWV1ZUBATUVBQVhKQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0ZsZXhBcnJheTo6U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1NpemVAQ0ZsZXhBcnJheUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU2FmZUFycmF5OjpTaXplKHZvaWQpIF9fcHRyNjQNCis/U2l6ZUBDU2FmZUFycmF5QEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTbWFsbEFycmF5QmxvYjo6U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1NpemVAQ1NtYWxsQXJyYXlCbG9iQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENWYXJWZWN0b3I6OlNpemUodm9pZCkgX19wdHI2NA0KKz9TaXplQENWYXJWZWN0b3JAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1dTdHJpbmdBcnJheTo6U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1NpemVAQ1dTdHJpbmdBcnJheUBAUUVCQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZsZXhBcnJheTo6U29ydCh2b2lkKSBfX3B0cjY0DQorP1NvcnRAQ0ZsZXhBcnJheUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1NtYWxsQXJyYXlCbG9iOjpTb3J0KHZvaWQpIF9fcHRyNjQNCis/U29ydEBDU21hbGxBcnJheUJsb2JAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENXU3RyaW5nQXJyYXk6OlNvcnQodm9pZCkgX19wdHI2NA0KKz9Tb3J0QENXU3RyaW5nQXJyYXlAQFFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0J1ZmZlcjo6U3RhdChzdHJ1Y3QgdGFnU1RBVFNURyAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TdGF0QENCdWZmZXJAQFVFQUFKUEVBVXRhZ1NUQVRTVEdAQEtAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU2FmZUFycmF5OjpTdGF0dXModm9pZCkgX19wdHI2NA0KKz9TdGF0dXNAQ1NhZmVBcnJheUBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVmFyOjpTdGF0dXModm9pZCkgX19wdHI2NA0KKz9TdGF0dXNAQ1ZhckBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVmFyVmVjdG9yOjpTdGF0dXModm9pZCkgX19wdHI2NA0KKz9TdGF0dXNAQ1ZhclZlY3RvckBAUUVBQUhYWg0KKzsgcHVibGljOiBjbGFzcyBXU3RyaW5nICYgX19wdHI2NCBfX2NkZWNsIFdTdHJpbmc6OlN0cmlwVG9Ub2tlbih1bnNpZ25lZCBzaG9ydCxpbnQpIF9fcHRyNjQNCis/U3RyaXBUb1Rva2VuQFdTdHJpbmdAQFFFQUFBRUFWMUBHSEBaDQorOyBwcml2YXRlOiBpbnQgX19jZGVjbCBDV1FMU2Nhbm5lcjo6U3RyaXBXaGVyZUNsYXVzZSh2b2lkKSBfX3B0cjY0DQorP1N0cmlwV2hlcmVDbGF1c2VAQ1dRTFNjYW5uZXJAQEFFQUFIWFoNCis7IHB1YmxpYzogY2xhc3MgV1N0cmluZyAmIF9fcHRyNjQgX19jZGVjbCBXU3RyaW5nOjpTdHJpcFdzKGludCkgX19wdHI2NA0KKz9TdHJpcFdzQFdTdHJpbmdAQFFFQUFBRUFWMUBIQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENCYXNpY1VubG9hZEluc3RydWN0aW9uOjpUZXJtaW5hdGUodm9pZCkgX19wdHI2NA0KKz9UZXJtaW5hdGVAQ0Jhc2ljVW5sb2FkSW5zdHJ1Y3Rpb25AQFFFQUFYWFoNCis7IGxvbmcgX19jZGVjbCBUZXN0RGlyRXhpc3RBbmRDcmVhdGVXaXRoU0RJZk5vdFRoZXJlKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP1Rlc3REaXJFeGlzdEFuZENyZWF0ZVdpdGhTRElmTm90VGhlcmVAQFlBSlBFQUcwQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ0V4ZWNRdWV1ZTo6VGhyZWFkTWFpbihjbGFzcyBDRXhlY1F1ZXVlOjpDVGhyZWFkUmVjb3JkICogX19wdHI2NCkgX19wdHI2NA0KKz9UaHJlYWRNYWluQENFeGVjUXVldWVAQE1FQUFYUEVBVkNUaHJlYWRSZWNvcmRAMUBAWg0KKzsgbG9uZyBfX2NkZWNsIFRocm90dGxlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/VGhyb3R0bGVAQFlBSktLS0tLQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENQZXJzaXN0ZW50Q29uZmlnOjpUaWR5VXAodm9pZCkgX19wdHI2NA0KKz9UaWR5VXBAQ1BlcnNpc3RlbnRDb25maWdAQFFFQUFYWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpUaW1lRm9ybWF0MSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1RpbWVGb3JtYXQxQENEYXRlVGltZVBhcnNlckBASUVBQUhQRUJHSEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENEYXRlVGltZVBhcnNlcjo6VGltZUZvcm1hdDIodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9UaW1lRm9ybWF0MkBDRGF0ZVRpbWVQYXJzZXJAQElFQUFIUEVCR0hAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OlRpbWVGb3JtYXQzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/VGltZUZvcm1hdDNAQ0RhdGVUaW1lUGFyc2VyQEBJRUFBSFBFQkdIQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpUaW1lRm9ybWF0NCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1RpbWVGb3JtYXQ0QENEYXRlVGltZVBhcnNlckBASUVBQUhQRUJHSEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENEYXRlVGltZVBhcnNlcjo6VGltZUZvcm1hdDUodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9UaW1lRm9ybWF0NUBDRGF0ZVRpbWVQYXJzZXJAQElFQUFIUEVCR0hAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OlRpbWVGb3JtYXQ2KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/VGltZUZvcm1hdDZAQ0RhdGVUaW1lUGFyc2VyQEBJRUFBSFBFQkdIQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0RhdGVUaW1lUGFyc2VyOjpUaW1lRm9ybWF0Nyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQsaW50KSBfX3B0cjY0DQorP1RpbWVGb3JtYXQ3QENEYXRlVGltZVBhcnNlckBASUVBQUhQRUJHSEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENEYXRlVGltZVBhcnNlcjo6VGltZUZvcm1hdDgodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LGludCkgX19wdHI2NA0KKz9UaW1lRm9ybWF0OEBDRGF0ZVRpbWVQYXJzZXJAQElFQUFIUEVCR0hAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDRGF0ZVRpbWVQYXJzZXI6OlRpbWVGb3JtYXQ5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/VGltZUZvcm1hdDlAQ0RhdGVUaW1lUGFyc2VyQEBJRUFBSFBFQkdIQFoNCis7IHByb3RlY3RlZDogY2xhc3MgQ1diZW1JbnRlcnZhbCAgX19jZGVjbCBDSW5zdHJ1Y3Rpb25RdWV1ZTo6VGltZVRvV2FpdCh2b2lkKSBfX3B0cjY0DQorP1RpbWVUb1dhaXRAQ0luc3RydWN0aW9uUXVldWVAQElFQUE/QVZDV2JlbUludGVydmFsQEBYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVmFyOjpUb1NpbmdsZUNoYXIodm9pZCkgX19wdHI2NA0KKz9Ub1NpbmdsZUNoYXJAQ1ZhckBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVmFyVmVjdG9yOjpUb1NpbmdsZUNoYXIodm9pZCkgX19wdHI2NA0KKz9Ub1NpbmdsZUNoYXJAQ1ZhclZlY3RvckBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDVmFyOjpUb1VJNCh2b2lkKSBfX3B0cjY0DQorP1RvVUk0QENWYXJAQFFFQUFIWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ1ZhclZlY3Rvcjo6VG9VSTQodm9pZCkgX19wdHI2NA0KKz9Ub1VJNEBDVmFyVmVjdG9yQEBRRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDSW5zdHJ1Y3Rpb25RdWV1ZTo6VG91Y2hIZWFkKHZvaWQpIF9fcHRyNjQNCis/VG91Y2hIZWFkQENJbnN0cnVjdGlvblF1ZXVlQEBJRUFBWFhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgTUQ1OjpUcmFuc2Zvcm0odm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGNoYXIgKiBfX3B0cjY0IGNvbnN0KQ0KKz9UcmFuc2Zvcm1ATUQ1QEBTQVhQRUFYSVFFQUVAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENBYnN0cmFjdFFsMVBhcnNlcjo6VHJhbnNsYXRlSW50cmluc2ljKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/VHJhbnNsYXRlSW50cmluc2ljQENBYnN0cmFjdFFsMVBhcnNlckBAS0FLUEVCR0BaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmxleEFycmF5OjpUcmltKHZvaWQpIF9fcHRyNjQNCis/VHJpbUBDRmxleEFycmF5QEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTYWZlQXJyYXk6OlRyaW0odm9pZCkgX19wdHI2NA0KKz9UcmltQENTYWZlQXJyYXlAQFFFQUFIWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTbWFsbEFycmF5QmxvYjo6VHJpbSh2b2lkKSBfX3B0cjY0DQorP1RyaW1AQ1NtYWxsQXJyYXlCbG9iQEBRRUFBWFhaDQorOyBwdWJsaWM6IGNsYXNzIFdTdHJpbmcgJiBfX3B0cjY0IF9fY2RlY2wgV1N0cmluZzo6VHJ1bmNBdExUb2tlbih1bnNpZ25lZCBzaG9ydCkgX19wdHI2NA0KKz9UcnVuY0F0TFRva2VuQFdTdHJpbmdAQFFFQUFBRUFWMUBHQFoNCis7IHB1YmxpYzogY2xhc3MgV1N0cmluZyAmIF9fcHRyNjQgX19jZGVjbCBXU3RyaW5nOjpUcnVuY0F0UlRva2VuKHVuc2lnbmVkIHNob3J0KSBfX3B0cjY0DQorP1RydW5jQXRSVG9rZW5AV1N0cmluZ0BAUUVBQUFFQVYxQEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1Zhcjo6VHlwZVRvVGV4dChpbnQpDQorP1R5cGVUb1RleHRAQ1ZhckBAU0FQRUFHSEBaDQorOyB2b2lkIF9fY2RlY2wgVW5SZWdpc3RlckRMTChzdHJ1Y3QgX0dVSUQsdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9VblJlZ2lzdGVyRExMQEBZQVhVX0dVSURAQFBFQUdAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1NhZmVBcnJheTo6VW5hY2Nlc3Modm9pZCkgX19wdHI2NA0KKz9VbmFjY2Vzc0BDU2FmZUFycmF5QEBRRUFBSlhaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDVmFyVmVjdG9yOjpVbmFjY2Vzc1Jhd0FycmF5KHZvaWQpIF9fcHRyNjQNCis/VW5hY2Nlc3NSYXdBcnJheUBDVmFyVmVjdG9yQEBRRUFBSlhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0ICogX19wdHI2NCBfX2NkZWNsIENGbGV4QXJyYXk6OlVuYmluZFB0cih2b2lkKSBfX3B0cjY0DQorP1VuYmluZFB0ckBDRmxleEFycmF5QEBRRUFBUEVBUEVBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIFdTdHJpbmc6OlVuYmluZFB0cih2b2lkKSBfX3B0cjY0DQorP1VuYmluZFB0ckBXU3RyaW5nQEBRRUFBUEVBR1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENFeGVjUXVldWU6OlVuYmxvY2tlZFdhaXRGb3JTaW5nbGVPYmplY3Qodm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyxjbGFzcyBDRXhlY1F1ZXVlOjpDVGhyZWFkUmVjb3JkICogX19wdHI2NCkgX19wdHI2NA0KKz9VbmJsb2NrZWRXYWl0Rm9yU2luZ2xlT2JqZWN0QENFeGVjUXVldWVAQE1FQUFLUEVBWEtQRUFWQ1RocmVhZFJlY29yZEAxQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIENNUkNJQ29tcHJlc3Npb246OlVuY29tcHJlc3NCdWZmZXIodW5zaWduZWQgY2hhciAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICogX19wdHI2NCx1bnNpZ25lZCBsb25nLGVudW0gQ01SQ0lDb21wcmVzc2lvbjo6Q29tcHJlc3Npb25MZXZlbCkgX19wdHI2NA0KKz9VbmNvbXByZXNzQnVmZmVyQENNUkNJQ29tcHJlc3Npb25AQFFFQUFJUEVBRUswS1c0Q29tcHJlc3Npb25MZXZlbEAxQEBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENNUkNJQ29tcHJlc3Npb246OlVuY29tcHJlc3NGaWxlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/VW5jb21wcmVzc0ZpbGVAQ01SQ0lDb21wcmVzc2lvbkBAUUVBQUhQRUJHMEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENNUkNJQ29tcHJlc3Npb246OlVuY29tcHJlc3NGaWxlVjEoaW50LGludCkgX19wdHI2NA0KKz9VbmNvbXByZXNzRmlsZVYxQENNUkNJQ29tcHJlc3Npb25AQElFQUFISEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX19jZGVjbCBDRXhlY1F1ZXVlOjpVbmluaXRpYWxpemVUaHJlYWQodm9pZCkgX19wdHI2NA0KKz9VbmluaXRpYWxpemVUaHJlYWRAQ0V4ZWNRdWV1ZUBATUVBQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENXU3RyaW5nQXJyYXk6OlVuaW9uKGNsYXNzIENXU3RyaW5nQXJyYXkgJiBfX3B0cjY0LGNsYXNzIENXU3RyaW5nQXJyYXkgJiBfX3B0cjY0LGNsYXNzIENXU3RyaW5nQXJyYXkgJiBfX3B0cjY0KQ0KKz9VbmlvbkBDV1N0cmluZ0FycmF5QEBTQVhBRUFWMUAwMEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDTG9ja2FibGVGbGV4QXJyYXk8Y2xhc3MgQ1N0YXRpY0NyaXRTZWM+OjpVbmxvY2sodm9pZCkgX19wdHI2NA0KKz9VbmxvY2tAPyRDTG9ja2FibGVGbGV4QXJyYXlAVkNTdGF0aWNDcml0U2VjQEBAQFFFQUFYWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0J1ZmZlcjo6VW5sb2NrUmVnaW9uKHVuaW9uIF9VTEFSR0VfSU5URUdFUix1bmlvbiBfVUxBUkdFX0lOVEVHRVIsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9VbmxvY2tSZWdpb25AQ0J1ZmZlckBAVUVBQUpUX1VMQVJHRV9JTlRFR0VSQEAwS0BaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ0ZsZXhRdWV1ZTo6VW5xdWV1ZSh2b2lkKSBfX3B0cjY0DQorP1VucXVldWVAQ0ZsZXhRdWV1ZUBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV1N0cmluZzo6VW5xdW90ZSh2b2lkKSBfX3B0cjY0DQorP1VucXVvdGVAV1N0cmluZ0BAUUVBQVhYWg0KKzsgbG9uZyBfX2NkZWNsIFVucmVnaXN0ZXJEbGxBcHBpZChzdHJ1Y3QgX0dVSUQpDQorP1VucmVnaXN0ZXJEbGxBcHBpZEBAWUFKVV9HVUlEQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1dpbjMyRGVmYXVsdEFyZW5hOjpWYWxpZGF0ZU1lbVNpemUoaW50KQ0KKz9WYWxpZGF0ZU1lbVNpemVAQ1dpbjMyRGVmYXVsdEFyZW5hQEBTQUhIQFoNCis7IHB1YmxpYzogbG9uZyBfX2NkZWNsIENJbnN0cnVjdGlvblF1ZXVlOjpXYWl0QW5kUGVlayhjbGFzcyBDVGltZXJJbnN0cnVjdGlvbiAqIF9fcHRyNjQgJiBfX3B0cjY0LGNsYXNzIENXYmVtVGltZSAmIF9fcHRyNjQpIF9fcHRyNjQNCis/V2FpdEFuZFBlZWtAQ0luc3RydWN0aW9uUXVldWVAQFFFQUFKQUVBUEVBVkNUaW1lckluc3RydWN0aW9uQEBBRUFWQ1diZW1UaW1lQEBAWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ0hhbHRhYmxlOjpXYWl0Rm9yUmVzdW1wdGlvbih2b2lkKSBfX3B0cjY0DQorP1dhaXRGb3JSZXN1bXB0aW9uQENIYWx0YWJsZUBAUUVBQUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRXhlY1F1ZXVlOjpXYWl0Rm9yU2luZ2xlT2JqZWN0V2hpbGVCdXN5KHZvaWQgKiBfX3B0cjY0LHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0V4ZWNRdWV1ZTo6Q1RocmVhZFJlY29yZCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/V2FpdEZvclNpbmdsZU9iamVjdFdoaWxlQnVzeUBDRXhlY1F1ZXVlQEBNRUFBS1BFQVhLUEVBVkNUaHJlYWRSZWNvcmRAMUBAWg0KKzsgaW50IF9fY2RlY2wgV2JlbUNyZWF0ZURpcmVjdG9yeSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpDQorP1diZW1DcmVhdGVEaXJlY3RvcnlAQFlBSFBFQkdAWg0KKzsgaW50IF9fY2RlY2wgV2JlbUdldE1hY2hpbmVTaHV0ZG93bih2b2lkKQ0KKz9XYmVtR2V0TWFjaGluZVNodXRkb3duQEBZQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6V2JlbUhlYXBGcmVlKHZvaWQpDQorP1diZW1IZWFwRnJlZUBDV2luMzJEZWZhdWx0QXJlbmFAQFNBWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDV2luMzJEZWZhdWx0QXJlbmE6OldiZW1IZWFwSW5pdGlhbGl6ZSh2b2lkICogX19wdHI2NCkNCis/V2JlbUhlYXBJbml0aWFsaXplQENXaW4zMkRlZmF1bHRBcmVuYUBAU0FIUEVBWEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkICogX19wdHI2NCBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6V2JlbU1lbUFsbG9jKHVuc2lnbmVkIF9faW50NjQpDQorP1diZW1NZW1BbGxvY0BDV2luMzJEZWZhdWx0QXJlbmFAQFNBUEVBWF9LQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6V2JlbU1lbUZyZWUodm9pZCAqIF9fcHRyNjQpDQorP1diZW1NZW1GcmVlQENXaW4zMkRlZmF1bHRBcmVuYUBAU0FIUEVBWEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkICogX19wdHI2NCBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6V2JlbU1lbVJlQWxsb2Modm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkNCis/V2JlbU1lbVJlQWxsb2NAQ1dpbjMyRGVmYXVsdEFyZW5hQEBTQVBFQVhQRUFYX0tAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6V2JlbU1lbVNpemUodm9pZCAqIF9fcHRyNjQpDQorP1diZW1NZW1TaXplQENXaW4zMkRlZmF1bHRBcmVuYUBAU0FfS1BFQVhAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1dpbjMyRGVmYXVsdEFyZW5hOjpXYmVtT3V0T2ZNZW1vcnkodm9pZCkNCis/V2JlbU91dE9mTWVtb3J5QENXaW4zMkRlZmF1bHRBcmVuYUBAU0FIWFoNCis7IGxvbmcgX19jZGVjbCBXYmVtU2V0RHluYW1pY0Nsb2FraW5nKHN0cnVjdCBJVW5rbm93biAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9XYmVtU2V0RHluYW1pY0Nsb2FraW5nQEBZQUpQRUFVSVVua25vd25AQEtLQFoNCis7IGludCBfX2NkZWNsIFdiZW1TZXRNYWNoaW5lU2h1dGRvd24oaW50KQ0KKz9XYmVtU2V0TWFjaGluZVNodXRkb3duQEBZQUhIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6V2JlbVN5c0FsbG9jU3RyaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/V2JlbVN5c0FsbG9jU3RyaW5nQENXaW4zMkRlZmF1bHRBcmVuYUBAU0FQRUFHUEVCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDV2luMzJEZWZhdWx0QXJlbmE6OldiZW1TeXNBbGxvY1N0cmluZ0J5dGVMZW4oY2hhciBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgaW50KQ0KKz9XYmVtU3lzQWxsb2NTdHJpbmdCeXRlTGVuQENXaW4zMkRlZmF1bHRBcmVuYUBAU0FQRUFHUEVCRElAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1dpbjMyRGVmYXVsdEFyZW5hOjpXYmVtU3lzQWxsb2NTdHJpbmdMZW4odW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkNCis/V2JlbVN5c0FsbG9jU3RyaW5nTGVuQENXaW4zMkRlZmF1bHRBcmVuYUBAU0FQRUFHUEVCR0lAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6V2JlbVN5c0ZyZWVTdHJpbmcodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9XYmVtU3lzRnJlZVN0cmluZ0BDV2luMzJEZWZhdWx0QXJlbmFAQFNBWFBFQUdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1dpbjMyRGVmYXVsdEFyZW5hOjpXYmVtU3lzUmVBbGxvY1N0cmluZyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCkNCis/V2JlbVN5c1JlQWxsb2NTdHJpbmdAQ1dpbjMyRGVmYXVsdEFyZW5hQEBTQUhQRUFQRUFHUEVCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDV2luMzJEZWZhdWx0QXJlbmE6OldiZW1TeXNSZUFsbG9jU3RyaW5nTGVuKHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0LHVuc2lnbmVkIGludCkNCis/V2JlbVN5c1JlQWxsb2NTdHJpbmdMZW5AQ1dpbjMyRGVmYXVsdEFyZW5hQEBTQUhQRUFQRUFHUEVCR0lAWg0KKzsgbG9uZyBfX2NkZWNsIFdiZW1WYXJpYW50Q2hhbmdlVHlwZShzdHJ1Y3QgdGFnVkFSSUFOVCAqIF9fcHRyNjQsc3RydWN0IHRhZ1ZBUklBTlQgKiBfX3B0cjY0LHVuc2lnbmVkIHNob3J0KQ0KKz9XYmVtVmFyaWFudENoYW5nZVR5cGVAQFlBSlBFQVV0YWdWQVJJQU5UQEAwR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdTdHJpbmc6OldpbGRjYXJkVGVzdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/V2lsZGNhcmRUZXN0QFdTdHJpbmdAQFFFQkFIUEVCR0BaDQorOyBpbnQgX19jZGVjbCBXaW5QRUtleSh2b2lkKQ0KKz9XaW5QRUtleUBAWUFIWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fY2RlY2wgQ0J1ZmZlcjo6V3JpdGUodm9pZCBjb25zdCAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogX19wdHI2NCkgX19wdHI2NA0KKz9Xcml0ZUBDQnVmZmVyQEBVRUFBSlBFQlhLUEVBS0BaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDQnVmZmVyOjpXcml0ZUxQV1NUUih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/V3JpdGVMUFdTVFJAQ0J1ZmZlckBAUUVBQUpQRUJHQFoNCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDRXhlY1F1ZXVlOjpfVGhyZWFkRW50cnkodm9pZCAqIF9fcHRyNjQpDQorP19UaHJlYWRFbnRyeUBDRXhlY1F1ZXVlQEBLQUtQRUFYQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjphZ2dyZWdhdGVfYnkodm9pZCkgX19wdHI2NA0KKz9hZ2dyZWdhdGVfYnlAQ0Fic3RyYWN0UWwxUGFyc2VyQEBJRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENBYnN0cmFjdFFsMVBhcnNlcjo6YWdncmVnYXRlX3dpdGhpbih2b2lkKSBfX3B0cjY0DQorP2FnZ3JlZ2F0ZV93aXRoaW5AQ0Fic3RyYWN0UWwxUGFyc2VyQEBJRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENBYnN0cmFjdFFsMVBhcnNlcjo6YWdncmVnYXRpb25fcGFyYW1zKHZvaWQpIF9fcHRyNjQNCis/YWdncmVnYXRpb25fcGFyYW1zQENBYnN0cmFjdFFsMVBhcnNlckBASUVBQUhYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCAgQ1N0YXRpY0NyaXRTZWM6OmFueUZhaWxlZF8NCis/YW55RmFpbGVkX0BDU3RhdGljQ3JpdFNlY0BAMEhBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENTdGF0aWNDcml0U2VjOjphbnlGYWlsdXJlKHZvaWQpDQorP2FueUZhaWx1cmVAQ1N0YXRpY0NyaXRTZWNAQFNBSFhaDQorOyBpbnQgX19jZGVjbCBiQXJlV2VMb2NhbCh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP2JBcmVXZUxvY2FsQEBZQUhQRUFHQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDQmFzZU1yY2lDb21wcmVzc2lvbjo6Y2hhcmJ1Zih1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/Y2hhcmJ1ZkBDQmFzZU1yY2lDb21wcmVzc2lvbkBAQUVBQVhJQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjpjbGFzc19uYW1lKHZvaWQpIF9fcHRyNjQNCis/Y2xhc3NfbmFtZUBDQWJzdHJhY3RRbDFQYXJzZXJAQElFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjpjb21wX29wZXJhdG9yKHZvaWQpIF9fcHRyNjQNCis/Y29tcF9vcGVyYXRvckBDQWJzdHJhY3RRbDFQYXJzZXJAQElFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjplcXVpdl9vcGVyYXRvcih2b2lkKSBfX3B0cjY0DQorP2VxdWl2X29wZXJhdG9yQENBYnN0cmFjdFFsMVBhcnNlckBASUVBQUhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENCYXNlTXJjaUNvbXByZXNzaW9uOjpleHBhbmRzdHJpbmcodW5zaWduZWQgY2hhciAqIF9fcHRyNjQgKiBfX3B0cjY0LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/ZXhwYW5kc3RyaW5nQENCYXNlTXJjaUNvbXByZXNzaW9uQEBBRUFBWFBFQVBFQUVJSUBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENBYnN0cmFjdFFsMVBhcnNlcjo6ZXhwcjIodm9pZCkgX19wdHI2NA0KKz9leHByMkBDQWJzdHJhY3RRbDFQYXJzZXJAQElFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjpleHByKHZvaWQpIF9fcHRyNjQNCis/ZXhwckBDQWJzdHJhY3RRbDFQYXJzZXJAQElFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjpmaW5hbGl6ZSh2b2lkKSBfX3B0cjY0DQorP2ZpbmFsaXplQENBYnN0cmFjdFFsMVBhcnNlckBASUVBQUhYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgaW50IF9fY2RlY2wgQ0Jhc2VNcmNpQ29tcHJlc3Npb246OmdldGJpdCh2b2lkKSBfX3B0cjY0DQorP2dldGJpdEBDQmFzZU1yY2lDb21wcmVzc2lvbkBAQUVBQUlYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgaW50IF9fY2RlY2wgQ0Jhc2VNcmNpQ29tcHJlc3Npb246OmdldGJpdHModW5zaWduZWQgaW50KSBfX3B0cjY0DQorP2dldGJpdHNAQ0Jhc2VNcmNpQ29tcHJlc3Npb25AQEFFQUFJSUBaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ0Jhc2VNcmNpQ29tcHJlc3Npb246OmluaXRoYXNoKHZvaWQpIF9fcHRyNjQNCis/aW5pdGhhc2hAQ0Jhc2VNcmNpQ29tcHJlc3Npb25AQEFFQUFYWFoNCis7IHB1YmxpYzogYm9vbCBfX2NkZWNsIENIYWx0YWJsZTo6aXNWYWxpZCh2b2lkKSBfX3B0cjY0DQorP2lzVmFsaWRAQ0hhbHRhYmxlQEBRRUFBX05YWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDQWJzdHJhY3RRbDFQYXJzZXI6OmlzX29wZXJhdG9yKHZvaWQpIF9fcHRyNjQNCis/aXNfb3BlcmF0b3JAQ0Fic3RyYWN0UWwxUGFyc2VyQEBJRUFBSFhaDQorOyBpbnQgX19jZGVjbCBpc3VuaWFscGhhKHVuc2lnbmVkIHNob3J0KQ0KKz9pc3VuaWFscGhhQEBZQUhHQFoNCis7IGludCBfX2NkZWNsIGlzdW5pYWxwaGFudW0odW5zaWduZWQgc2hvcnQpDQorP2lzdW5pYWxwaGFudW1AQFlBSEdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDQWJzdHJhY3RRbDFQYXJzZXI6OmxlYWRpbmdfaWRlbnRfZXhwcih2b2lkKSBfX3B0cjY0DQorP2xlYWRpbmdfaWRlbnRfZXhwckBDQWJzdHJhY3RRbDFQYXJzZXJAQElFQUFIWFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDRGlyZWN0b3J5UGF0aCAgQ1BlcnNpc3RlbnRDb25maWc6Om1fRGlyZWN0b3J5DQorP21fRGlyZWN0b3J5QENQZXJzaXN0ZW50Q29uZmlnQEAwVkNEaXJlY3RvcnlQYXRoQEBBIERBVEENCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDQmFzZU1yY2lDb21wcmVzc2lvbjo6bXJjaTFvdXRzaW5nbGUodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP21yY2kxb3V0c2luZ2xlQENCYXNlTXJjaUNvbXByZXNzaW9uQEBBRUFBWElAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENCYXNlTXJjaUNvbXByZXNzaW9uOjptcmNpMW91dHN0cmluZyh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP21yY2kxb3V0c3RyaW5nQENCYXNlTXJjaUNvbXByZXNzaW9uQEBBRUFBWElJQFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDQmFzZU1yY2lDb21wcmVzc2lvbjo6bXJjaTJvdXRzaW5nbGUodW5zaWduZWQgaW50KSBfX3B0cjY0DQorP21yY2kyb3V0c2luZ2xlQENCYXNlTXJjaUNvbXByZXNzaW9uQEBBRUFBWElAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX2NkZWNsIENCYXNlTXJjaUNvbXByZXNzaW9uOjptcmNpMm91dHN0cmluZyh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP21yY2kyb3V0c3RyaW5nQENCYXNlTXJjaUNvbXByZXNzaW9uQEBBRUFBWElJQFoNCis7IHVuc2lnbmVkIGxvbmcgIG1zdGF0aWNfZHdUbHNJbmRleA0KKz9tc3RhdGljX2R3VGxzSW5kZXhAQDNLQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nICBDRXhlY1F1ZXVlOjptc3RhdGljX2xOdW1Jbml0cw0KKz9tc3RhdGljX2xOdW1Jbml0c0BDRXhlY1F1ZXVlQEAxSkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDQWJzdHJhY3RRbDFQYXJzZXI6Om9wdF9hZ2dyZWdhdGlvbih2b2lkKSBfX3B0cjY0DQorP29wdF9hZ2dyZWdhdGlvbkBDQWJzdHJhY3RRbDFQYXJzZXJAQElFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjpvcHRfaGF2aW5nKHZvaWQpIF9fcHRyNjQNCis/b3B0X2hhdmluZ0BDQWJzdHJhY3RRbDFQYXJzZXJAQElFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjpvcHRfd2hlcmUodm9pZCkgX19wdHI2NA0KKz9vcHRfd2hlcmVAQ0Fic3RyYWN0UWwxUGFyc2VyQEBJRUFBSFhaDQorOyBwcml2YXRlOiB2b2lkIF9fY2RlY2wgQ0Jhc2VNcmNpQ29tcHJlc3Npb246Om91dGxlbmd0aCh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/b3V0bGVuZ3RoQENCYXNlTXJjaUNvbXByZXNzaW9uQEBBRUFBWElAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDQWJzdHJhY3RRbDFQYXJzZXI6OnBhcnNlKGludCkgX19wdHI2NA0KKz9wYXJzZUBDQWJzdHJhY3RRbDFQYXJzZXJAQElFQUFISEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENBYnN0cmFjdFFsMVBhcnNlcjo6cGFyc2VfcHJvcGVydHlfbmFtZShjbGFzcyBDUHJvcGVydHlOYW1lICYgX19wdHI2NCkgX19wdHI2NA0KKz9wYXJzZV9wcm9wZXJ0eV9uYW1lQENBYnN0cmFjdFFsMVBhcnNlckBASUVBQUhBRUFWQ1Byb3BlcnR5TmFtZUBAQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjpwcm9wX2xpc3Qodm9pZCkgX19wdHI2NA0KKz9wcm9wX2xpc3RAQ0Fic3RyYWN0UWwxUGFyc2VyQEBJRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENBYnN0cmFjdFFsMVBhcnNlcjo6cHJvcF9saXN0XzIodm9pZCkgX19wdHI2NA0KKz9wcm9wX2xpc3RfMkBDQWJzdHJhY3RRbDFQYXJzZXJAQElFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjpwcm9wZXJ0eV9uYW1lKHZvaWQpIF9fcHRyNjQNCis/cHJvcGVydHlfbmFtZUBDQWJzdHJhY3RRbDFQYXJzZXJAQElFQUFIWFoNCis7IHByaXZhdGU6IHZvaWQgX19jZGVjbCBDQmFzZU1yY2lDb21wcmVzc2lvbjo6cHV0Yml0cyh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KSBfX3B0cjY0DQorP3B1dGJpdHNAQ0Jhc2VNcmNpQ29tcHJlc3Npb25AQEFFQUFYSUlAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDQWJzdHJhY3RRbDFQYXJzZXI6OnJlbF9vcGVyYXRvcih2b2lkKSBfX3B0cjY0DQorP3JlbF9vcGVyYXRvckBDQWJzdHJhY3RRbDFQYXJzZXJAQElFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjpzaW1wbGVfZXhwcih2b2lkKSBfX3B0cjY0DQorP3NpbXBsZV9leHByQENBYnN0cmFjdFFsMVBhcnNlckBASUVBQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ1diZW1JbnRlcnZhbCAgX19jZGVjbCBDQmFzaWNVbmxvYWRJbnN0cnVjdGlvbjo6c3RhdGljUmVhZChzdHJ1Y3QgSVdiZW1TZXJ2aWNlcyAqIF9fcHRyNjQsc3RydWN0IElXYmVtQ29udGV4dCAqIF9fcHRyNjQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KQ0KKz9zdGF0aWNSZWFkQENCYXNpY1VubG9hZEluc3RydWN0aW9uQEBTQT9BVkNXYmVtSW50ZXJ2YWxAQFBFQVVJV2JlbVNlcnZpY2VzQEBQRUFVSVdiZW1Db250ZXh0QEBQRUJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjp0ZXJtMih2b2lkKSBfX3B0cjY0DQorP3Rlcm0yQENBYnN0cmFjdFFsMVBhcnNlckBASUVBQUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDQWJzdHJhY3RRbDFQYXJzZXI6OnRlcm0odm9pZCkgX19wdHI2NA0KKz90ZXJtQENBYnN0cmFjdFFsMVBhcnNlckBASUVBQUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX19jZGVjbCBDQWJzdHJhY3RRbDFQYXJzZXI6OnRvbGVyYW5jZSh2b2lkKSBfX3B0cjY0DQorP3RvbGVyYW5jZUBDQWJzdHJhY3RRbDFQYXJzZXJAQElFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjp0cmFpbGluZ19jb25zdF9leHByKHZvaWQpIF9fcHRyNjQNCis/dHJhaWxpbmdfY29uc3RfZXhwckBDQWJzdHJhY3RRbDFQYXJzZXJAQElFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjp0cmFpbGluZ19pZGVudF9leHByKHZvaWQpIF9fcHRyNjQNCis/dHJhaWxpbmdfaWRlbnRfZXhwckBDQWJzdHJhY3RRbDFQYXJzZXJAQElFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjp0cmFpbGluZ19vcl9udWxsKHZvaWQpIF9fcHRyNjQNCis/dHJhaWxpbmdfb3JfbnVsbEBDQWJzdHJhY3RRbDFQYXJzZXJAQElFQUFIWFoNCis7IHByb3RlY3RlZDogaW50IF9fY2RlY2wgQ0Fic3RyYWN0UWwxUGFyc2VyOjp0cmFpbGluZ19wcm9wX2V4cHIodm9pZCkgX19wdHI2NA0KKz90cmFpbGluZ19wcm9wX2V4cHJAQ0Fic3RyYWN0UWwxUGFyc2VyQEBJRUFBSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX2NkZWNsIENBYnN0cmFjdFFsMVBhcnNlcjo6dHlwZWRfY29uc3RhbnQodm9pZCkgX19wdHI2NA0KKz90eXBlZF9jb25zdGFudEBDQWJzdHJhY3RRbDFQYXJzZXJAQElFQUFIWFoNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YmVtY29ucy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YmVtY29ucy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzNmNWFiNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3diZW1jb25zLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdCRU1DT05TLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXQkVNQ09OUy5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YmVtY29yZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YmVtY29yZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjkyNGMyMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3diZW1jb3JlLmRlZgpAQCAtMCwwICsxLDE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdCRU1DT1JFLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXQkVNQ09SRS5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitSZWluaXRpYWxpemUNCitTaHV0ZG93bg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3diZW1kaXNwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3diZW1kaXNwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZWIyMzdmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2JlbWRpc3AuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgd2JlbWRpc3AuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHdiZW1kaXNwLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3diZW1lc3MuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2JlbWVzcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODk4NjY2ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3diZW1lc3MuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgd2JlbWVzcy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgd2JlbWVzcy5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YmVtcGVyZi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YmVtcGVyZi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2RiODg5NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3diZW1wZXJmLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdCRU1QRVJGLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXQkVNUEVSRi5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YmVtcHJveC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YmVtcHJveC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjRiZTc1ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3diZW1wcm94LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHdiZW1wcm94LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSB3YmVtcHJveC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YmVtc3ZjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3diZW1zdmMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEwOGM3NzIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YmVtc3ZjLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdCRU1TVkMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFdCRU1TVkMuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2JlbXVwZ2QuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2JlbXVwZ2QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFlYzRiYTMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YmVtdXBnZC5kZWYKQEAgLTAsMCArMSwxNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBXYmVtVXBnZC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgV2JlbVVwZ2QuZGxsDQorRVhQT1JUUw0KK0NoZWNrV01JU2V0dXANCitMb2FkTW9mRmlsZXMNCitNVUlfSW5zdGFsbE1GTEZpbGVzDQorT2NFbnRyeQ0KK1JlcGFpcldNSVNldHVwDQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2JpZGlzcGwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2JpZGlzcGwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgwY2I3Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YmlkaXNwbC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBiaWRpc3BsLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBiaWRpc3BsLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3diaXRzcHJ4Mi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Yml0c3ByeDIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVlYzM4OWMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Yml0c3ByeDIuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYml0c3ByeDIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGJpdHNwcngyLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3diaXRzcHJ4My5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Yml0c3ByeDMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNmMWExODcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Yml0c3ByeDMuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYml0c3ByeDMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGJpdHNwcngzLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dibGFja2JveC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YmxhY2tib3guZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY5YzAxODYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93YmxhY2tib3guZGVmCkBAIC0wLDAgKzEsNDMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQmxhY2tCb3hfbm9pbnQzLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBCbGFja0JveF9ub2ludDMuRExMDQorRVhQT1JUUw0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIElCbGFja0JveDo6SUJsYWNrQm94KGNsYXNzIElCbGFja0JveCBjb25zdCAmKQ0KKz8/MElCbGFja0JveEBASUFFQEFCVjBAQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBJQmxhY2tCb3g6OklCbGFja0JveCh2b2lkKQ0KKz8/MElCbGFja0JveEBASUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgSUJsYWNrQm94RXgyOjpJQmxhY2tCb3hFeDIoY2xhc3MgSUJsYWNrQm94RXgyIGNvbnN0ICYpDQorPz8wSUJsYWNrQm94RXgyQEBJQUVAQUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIElCbGFja0JveEV4Mjo6SUJsYWNrQm94RXgyKHZvaWQpDQorPz8wSUJsYWNrQm94RXgyQEBJQUVAWFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBJQmxhY2tCb3hFeDo6SUJsYWNrQm94RXgoY2xhc3MgSUJsYWNrQm94RXggY29uc3QgJikNCis/PzBJQmxhY2tCb3hFeEBASUFFQEFCVjBAQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBJQmxhY2tCb3hFeDo6SUJsYWNrQm94RXgodm9pZCkNCis/PzBJQmxhY2tCb3hFeEBASUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBJQmxhY2tCb3g6On5JQmxhY2tCb3godm9pZCkNCis/PzFJQmxhY2tCb3hAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgSUJsYWNrQm94RXgyOjp+SUJsYWNrQm94RXgyKHZvaWQpDQorPz8xSUJsYWNrQm94RXgyQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIElCbGFja0JveEV4Ojp+SUJsYWNrQm94RXgodm9pZCkNCis/PzFJQmxhY2tCb3hFeEBAVUFFQFhaDQorOyBjb25zdCAgSUJsYWNrQm94OjpgdmZ0YWJsZScNCis/P183SUJsYWNrQm94QEA2QkANCis7IGNvbnN0ICBJQmxhY2tCb3hFeDI6OmB2ZnRhYmxlJ3tmb3IgYElCbGFja0JveCd9DQorPz9fN0lCbGFja0JveEV4MkBANkJJQmxhY2tCb3hAQEANCis7IGNvbnN0ICBJQmxhY2tCb3hFeDI6OmB2ZnRhYmxlJ3tmb3IgYElVbmtub3duJ30NCis/P183SUJsYWNrQm94RXgyQEA2QklVbmtub3duQEBADQorOyBjb25zdCAgSUJsYWNrQm94RXg6OmB2ZnRhYmxlJ3tmb3IgYElCbGFja0JveCd9DQorPz9fN0lCbGFja0JveEV4QEA2QklCbGFja0JveEBAQA0KKzsgY29uc3QgIElCbGFja0JveEV4OjpgdmZ0YWJsZSd7Zm9yIGBJVW5rbm93bid9DQorPz9fN0lCbGFja0JveEV4QEA2QklVbmtub3duQEBADQorRGxsTWFpbg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldEhXSUQNCitJQmxhY2tCb3hfQ3JlYXRlSW5zdGFuY2UyDQorSUJsYWNrQm94X0NyZWF0ZUluc3RhbmNlDQorSUJsYWNrQm94X0NyZWF0ZUluc3RhbmNlRXgNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YnJvd3NjYXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Jyb3dzY2FwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYjQ5NmZhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2Jyb3dzY2FwLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEJyb3dzQ2FwLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBCcm93c0NhcC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YnJvd3Nlci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93YnJvd3Nlci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDMyY2M2NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dicm93c2VyLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGJyb3dzZXIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGJyb3dzZXIuZGxsDQorRVhQT1JUUw0KK0lfQnJvd3NlclNlcnZlckVudW1Gb3JYYWN0c3J2DQorU2VydmljZU1haW4NCitTdmNob3N0UHVzaFNlcnZpY2VHbG9iYWxzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2Jyb3dzZXVpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dicm93c2V1aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjRlZTVhYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dicm93c2V1aS5kZWYKQEAgLTAsMCArMSwxNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBCUk9XU0VVSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQlJPV1NFVUkuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsR2V0VmVyc2lvbg0KK0RsbEluc3RhbGwNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93YnJvd3Nld20uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Jyb3dzZXdtLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lOWYwYWRhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2Jyb3dzZXdtLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEJyb3dzZVdNLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBCcm93c2VXTS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Y19ldWNkYi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y19ldWNkYi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTVmZDFiOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djX2V1Y2RiLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY19ldWNkYi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgY19ldWNkYi5kbGwNCitFWFBPUlRTDQorTmxzRGxsQ29kZVBhZ2VUcmFuc2xhdGlvbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djX2cxODAzMC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y19nMTgwMzAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ5Zjg3OTYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y19nMTgwMzAuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY19nYjE4MDMwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBjX2diMTgwMzAuZGxsDQorRVhQT1JUUw0KK0J5dGVzVG9Vbmljb2RlDQorTmxzRGxsQ29kZVBhZ2VUcmFuc2xhdGlvbg0KK1VuaWNvZGVUb0J5dGVzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NfaXMyMDIyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djX2lzMjAyMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmUyYzc0NAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djX2lzMjAyMi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGNfaXMyMDIyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBjX2lzMjAyMi5kbGwNCitFWFBPUlRTDQorTmxzRGxsQ29kZVBhZ2VUcmFuc2xhdGlvbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djX2lzY2lpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djX2lzY2lpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iM2YzYmJmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2NfaXNjaWkuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBjX2lzY2lpLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBjX2lzY2lpLmRsbA0KK0VYUE9SVFMNCitObHNEbGxDb2RlUGFnZVRyYW5zbGF0aW9uDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2Nfc25hZGIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Nfc25hZGIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJmOTUxZTkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y19zbmFkYi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGNfc25hZGIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNfc25hZGIuZGxsDQorRVhQT1JUUw0KK05sc0RsbENvZGVQYWdlVHJhbnNsYXRpb24NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Y2FiaW5ldC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y2FiaW5ldC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODkyNTM1MgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djYWJpbmV0LmRlZgpAQCAtMCwwICsxLDIyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENhYmluZXQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENhYmluZXQuZGxsDQorRVhQT1JUUw0KK0dldERsbFZlcnNpb24NCitEbGxHZXRWZXJzaW9uDQorRXh0cmFjdA0KK0RlbGV0ZUV4dHJhY3RlZEZpbGVzDQorRkNJQ3JlYXRlDQorRkNJQWRkRmlsZQ0KK0ZDSUZsdXNoRm9sZGVyDQorRkNJRmx1c2hDYWJpbmV0DQorRkNJRGVzdHJveQ0KK0ZESUNyZWF0ZQ0KK0ZESUlzQ2FiaW5ldA0KK0ZESUNvcHkNCitGRElEZXN0cm95DQorRkRJVHJ1bmNhdGVDYWJpbmV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NhYnZpZXcuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2NhYnZpZXcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmExOGNkMTQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y2Fidmlldy5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDQUJWSUVXLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDQUJWSUVXLmRsbA0KK0VYUE9SVFMNCitVbmluc3RhbGwNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djYW1vY3guZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2NhbW9jeC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWQ2ZWMzOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djYW1vY3guZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY2Ftb2N4LkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBjYW1vY3guRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NhcmRzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djYXJkcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2VmY2M3NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djYXJkcy5kZWYKQEAgLTAsMCArMSwxNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDQVJEUy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ0FSRFMuZGxsDQorRVhQT1JUUw0KK1dFUA0KK2NkdEFuaW1hdGUNCitjZHREcmF3DQorY2R0RHJhd0V4dA0KK2NkdEluaXQNCitjZHRUZXJtDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NhdHNydi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y2F0c3J2LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMTkxZDA3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2NhdHNydi5kZWYKQEAgLTAsMCArMSwyNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBjYXRzcnYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNhdHNydi5kbGwNCitFWFBPUlRTDQorOyBsb25nIF9fc3RkY2FsbCBDYW5jZWxXcml0ZUlDUihzdHJ1Y3QgSUNvbXBvbmVudFJlY29yZHMgKiAqKQ0KKz9DYW5jZWxXcml0ZUlDUkBAWUdKUEFQQVVJQ29tcG9uZW50UmVjb3Jkc0BAQFoNCitDcmVhdGVDb21wb25lbnRMaWJyYXJ5VFMNCitHZXRDYXRhbG9nQ1JNQ2xlcmsNCis7IGxvbmcgX19zdGRjYWxsIEdldFJlYWRJQ1IoaW50LHN0cnVjdCBJQ29tcG9uZW50UmVjb3JkcyAqICopDQorP0dldFJlYWRJQ1JAQFlHSkhQQVBBVUlDb21wb25lbnRSZWNvcmRzQEBAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgR2V0V3JpdGVJQ1Ioc3RydWN0IElDb21wb25lbnRSZWNvcmRzICogKikNCis/R2V0V3JpdGVJQ1JAQFlHSlBBUEFVSUNvbXBvbmVudFJlY29yZHNAQEBaDQorT3BlbkNvbXBvbmVudExpYnJhcnlTaGFyZWRUUw0KK09wZW5Db21wb25lbnRMaWJyYXJ5VFMNCis7IHZvaWQgX19zdGRjYWxsIFJlbGVhc2VSZWFkSUNSKHN0cnVjdCBJQ29tcG9uZW50UmVjb3JkcyAqICopDQorP1JlbGVhc2VSZWFkSUNSQEBZR1hQQVBBVUlDb21wb25lbnRSZWNvcmRzQEBAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgU2F2ZVdyaXRlSUNSKHN0cnVjdCBJQ29tcG9uZW50UmVjb3JkcyAqICopDQorP1NhdmVXcml0ZUlDUkBAWUdKUEFQQVVJQ29tcG9uZW50UmVjb3Jkc0BAQFoNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djYXRzcnZwcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y2F0c3J2cHMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAwYzk5YWMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y2F0c3J2cHMuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY2F0c3J2cHMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNhdHNydnBzLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldFByb3h5RGxsSW5mbw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djYXRzcnZ1dC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y2F0c3J2dXQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJlMjEwMWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y2F0c3J2dXQuZGVmCkBAIC0wLDAgKzEsNTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY2F0c3J2dXQuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNhdHNydnV0LkRMTA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ29tUGx1c0NvbXBvbmVudDo6Q0NvbVBsdXNDb21wb25lbnQoY2xhc3MgQ0NvbVBsdXNDb21wb25lbnQgY29uc3QgJikNCis/PzBDQ29tUGx1c0NvbXBvbmVudEBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ29tUGx1c0ludGVyZmFjZTo6Q0NvbVBsdXNJbnRlcmZhY2UoY2xhc3MgQ0NvbVBsdXNJbnRlcmZhY2UgY29uc3QgJikNCis/PzBDQ29tUGx1c0ludGVyZmFjZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ29tUGx1c01ldGhvZDo6Q0NvbVBsdXNNZXRob2QoY2xhc3MgQ0NvbVBsdXNNZXRob2QgY29uc3QgJikNCis/PzBDQ29tUGx1c01ldGhvZEBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ29tUGx1c09iamVjdDo6Q0NvbVBsdXNPYmplY3QoY2xhc3MgQ0NvbVBsdXNPYmplY3QgY29uc3QgJikNCis/PzBDQ29tUGx1c09iamVjdEBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENDb21QbHVzQ29tcG9uZW50Ojp+Q0NvbVBsdXNDb21wb25lbnQodm9pZCkNCis/PzFDQ29tUGx1c0NvbXBvbmVudEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDQ29tUGx1c0ludGVyZmFjZTo6fkNDb21QbHVzSW50ZXJmYWNlKHZvaWQpDQorPz8xQ0NvbVBsdXNJbnRlcmZhY2VAQFVBRUBYWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tUGx1c0NvbXBvbmVudCAmIF9fdGhpc2NhbGwgQ0NvbVBsdXNDb21wb25lbnQ6Om9wZXJhdG9yPShjbGFzcyBDQ29tUGx1c0NvbXBvbmVudCBjb25zdCAmKQ0KKz8/NENDb21QbHVzQ29tcG9uZW50QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbVBsdXNJbnRlcmZhY2UgJiBfX3RoaXNjYWxsIENDb21QbHVzSW50ZXJmYWNlOjpvcGVyYXRvcj0oY2xhc3MgQ0NvbVBsdXNJbnRlcmZhY2UgY29uc3QgJikNCis/PzRDQ29tUGx1c0ludGVyZmFjZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENDb21QbHVzTWV0aG9kICYgX190aGlzY2FsbCBDQ29tUGx1c01ldGhvZDo6b3BlcmF0b3I9KGNsYXNzIENDb21QbHVzTWV0aG9kIGNvbnN0ICYpDQorPz80Q0NvbVBsdXNNZXRob2RAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tUGx1c09iamVjdCAmIF9fdGhpc2NhbGwgQ0NvbVBsdXNPYmplY3Q6Om9wZXJhdG9yPShjbGFzcyBDQ29tUGx1c09iamVjdCBjb25zdCAmKQ0KKz8/NENDb21QbHVzT2JqZWN0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbVBsdXNUeXBlbGliICYgX190aGlzY2FsbCBDQ29tUGx1c1R5cGVsaWI6Om9wZXJhdG9yPShjbGFzcyBDQ29tUGx1c1R5cGVsaWIgY29uc3QgJikNCis/PzRDQ29tUGx1c1R5cGVsaWJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgY29uc3QgIENDb21QbHVzQ29tcG9uZW50OjpgdmZ0YWJsZScNCis/P183Q0NvbVBsdXNDb21wb25lbnRAQDZCQA0KKzsgY29uc3QgIENDb21QbHVzSW50ZXJmYWNlOjpgdmZ0YWJsZScNCis/P183Q0NvbVBsdXNJbnRlcmZhY2VAQDZCQA0KKzsgY29uc3QgIENDb21QbHVzTWV0aG9kOjpgdmZ0YWJsZScNCis/P183Q0NvbVBsdXNNZXRob2RAQDZCQA0KKzsgY29uc3QgIENDb21QbHVzT2JqZWN0OjpgdmZ0YWJsZScNCis/P183Q0NvbVBsdXNPYmplY3RAQDZCQA0KKzsgcHVibGljOiBzdHJ1Y3QgSVR5cGVMaWIgKiBfX3RoaXNjYWxsIENDb21QbHVzVHlwZWxpYjo6R2V0SVR5cGVMaWIodm9pZCkNCis/R2V0SVR5cGVMaWJAQ0NvbVBsdXNUeXBlbGliQEBRQUVQQVVJVHlwZUxpYkBAWFoNCitSZWdEQkJhY2t1cA0KK1JlZ0RCUmVzdG9yZQ0KK1N0YXJ0TVRTVE9DT00NCitXaW5sb2dvbkhhbmRsZVBlbmRpbmdJbmZPcGVyYXRpb25zDQorQ0dNSXNBZG1pbmlzdHJhdG9yDQorQ09NUGx1c1VuaW5zdGFsbEFjdGlvblcNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0ZpbmRBc3NlbWJseU1vZHVsZXNXDQorTWFuYWdlZFJlcXVlc3RXDQorUXVlcnlVc2VyRGxsVw0KK1J1bk1UU1RvQ29tDQorU3lzcHJlcENvbXBsdXMyDQorU3lzcHJlcENvbXBsdXMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Y2NmZ250LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djY2ZnbnQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE4OWQxZTMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y2NmZ250LmRlZgpAQCAtMCwwICsxLDIzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElDRkdOVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSUNGR05ULmRsbA0KK0VYUE9SVFMNCitJY2ZnU2V0SW5zdGFsbFNvdXJjZVBhdGgNCitJbmV0U2V0QXV0b2RpYWxBZGRyZXNzDQorSWNmZ0dldExhc3RJbnN0YWxsRXJyb3JUZXh0DQorSWNmZ0luc3RhbGxJbmV0Q29tcG9uZW50cw0KK0ljZmdJbnN0YWxsTW9kZW0NCitJY2ZnSXNGaWxlU2hhcmluZ1R1cm5lZE9uDQorSWNmZ0lzR2xvYmFsRE5TDQorSWNmZ05lZWRJbmV0Q29tcG9uZW50cw0KK0ljZmdOZWVkTW9kZW0NCitJY2ZnUmVtb3ZlR2xvYmFsRE5TDQorSWNmZ1N0YXJ0U2VydmljZXMNCitJY2ZnVHVybk9mZkZpbGVTaGFyaW5nDQorSW5ldEdldEF1dG9kaWFsDQorSW5ldEdldFN1cHBvcnRlZFBsYXRmb3JtDQorSW5ldFNldEF1dG9kaWFsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NkZnZpZXcuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2NkZnZpZXcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNhOTQ3YjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y2Rmdmlldy5kZWYKQEAgLTAsMCArMSwxNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDZGZWaWV3LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDZGZWaWV3LmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK09wZW5DaGFubmVsDQorUGFyc2VEZXNrdG9wQ29tcG9uZW50DQorU3Vic2NyaWJlDQorU3Vic2NyaWJlVG9DREYNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Y2Rvc3lzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djZG9zeXMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNjZWU4NTkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y2Rvc3lzLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENkb1N5cy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ2RvU3lzLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djZXJ0Y2xpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djZXJ0Y2xpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNTk1OTM1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2NlcnRjbGkuZGVmCkBAIC0wLDAgKzEsODkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY2VydGNsaS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgY2VydGNsaS5kbGwNCitFWFBPUlRTDQorQ0FBY2Nlc3NDaGVjaw0KK0NBQWNjZXNzQ2hlY2tFeA0KK0NBQWRkQ0FDZXJ0aWZpY2F0ZVR5cGUNCitDQUNlcnRUeXBlQWNjZXNzQ2hlY2sNCitDQUNlcnRUeXBlQWNjZXNzQ2hlY2tFeA0KK0NBQ2VydFR5cGVHZXRTZWN1cml0eQ0KK0NBQ2VydFR5cGVRdWVyeQ0KK0NBQ2VydFR5cGVSZWdpc3RlclF1ZXJ5DQorQ0FDZXJ0VHlwZVNldFNlY3VyaXR5DQorQ0FDZXJ0VHlwZVVucmVnaXN0ZXJRdWVyeQ0KK0NBQ2xvbmVDZXJ0VHlwZQ0KK0NBQ2xvc2VDQQ0KK0NBQ2xvc2VDZXJ0VHlwZQ0KK0NBQ291bnRDQXMNCitDQUNvdW50Q2VydFR5cGVzDQorQ0FDcmVhdGVBdXRvRW5yb2xsbWVudE9iamVjdEV4DQorQ0FDcmVhdGVDZXJ0VHlwZQ0KK0NBQ3JlYXRlTG9jYWxBdXRvRW5yb2xsbWVudE9iamVjdA0KK0NBQ3JlYXRlTmV3Q0ENCitDQURlbGV0ZUNBDQorQ0FEZWxldGVDZXJ0VHlwZQ0KK0NBRGVsZXRlTG9jYWxBdXRvRW5yb2xsbWVudE9iamVjdA0KK0NBRW51bUNlcnRUeXBlcw0KK0NBRW51bUNlcnRUeXBlc0V4DQorQ0FFbnVtQ2VydFR5cGVzRm9yQ0ENCitDQUVudW1DZXJ0VHlwZXNGb3JDQUV4DQorQ0FFbnVtRmlyc3RDQQ0KK0NBRW51bU5leHRDQQ0KK0NBRW51bU5leHRDZXJ0VHlwZQ0KK0NBRmluZEJ5Q2VydFR5cGUNCitDQUZpbmRCeUlzc3VlckRODQorQ0FGaW5kQnlOYW1lDQorQ0FGaW5kQ2VydFR5cGVCeU5hbWUNCitDQUZyZWVDQVByb3BlcnR5DQorQ0FGcmVlQ2VydFR5cGVFeHRlbnNpb25zDQorQ0FGcmVlQ2VydFR5cGVQcm9wZXJ0eQ0KK0NBR2V0Q0FDZXJ0aWZpY2F0ZQ0KK0NBR2V0Q0FFeHBpcmF0aW9uDQorQ0FHZXRDQUZsYWdzDQorQ0FHZXRDQVByb3BlcnR5DQorQ0FHZXRDQVNlY3VyaXR5DQorQ0FHZXRDZXJ0VHlwZUV4cGlyYXRpb24NCitDQUdldENlcnRUeXBlRXh0ZW5zaW9ucw0KK0NBR2V0Q2VydFR5cGVFeHRlbnNpb25zRXgNCitDQUdldENlcnRUeXBlRmxhZ3MNCitDQUdldENlcnRUeXBlRmxhZ3NFeA0KK0NBR2V0Q2VydFR5cGVLZXlTcGVjDQorQ0FHZXRDZXJ0VHlwZVByb3BlcnR5DQorQ0FHZXRDZXJ0VHlwZVByb3BlcnR5RXgNCitDQUdldERODQorQ0FJbnN0YWxsRGVmYXVsdENlcnRUeXBlDQorQ0FJc0NlcnRUeXBlQ3VycmVudA0KK0NBT0lEQWRkDQorQ0FPSURDcmVhdGVOZXcNCitDQU9JRERlbGV0ZQ0KK0NBT0lERnJlZUxkYXBVUkwNCitDQU9JREZyZWVQcm9wZXJ0eQ0KK0NBT0lER2V0TGRhcFVSTA0KK0NBT0lER2V0UHJvcGVydHkNCitDQU9JRFNldFByb3BlcnR5DQorQ0FSZW1vdmVDQUNlcnRpZmljYXRlVHlwZQ0KK0NBU2V0Q0FDZXJ0aWZpY2F0ZQ0KK0NBU2V0Q0FFeHBpcmF0aW9uDQorQ0FTZXRDQUZsYWdzDQorQ0FTZXRDQVByb3BlcnR5DQorQ0FTZXRDQVNlY3VyaXR5DQorQ0FTZXRDZXJ0VHlwZUV4cGlyYXRpb24NCitDQVNldENlcnRUeXBlRXh0ZW5zaW9uDQorQ0FTZXRDZXJ0VHlwZUZsYWdzDQorQ0FTZXRDZXJ0VHlwZUZsYWdzRXgNCitDQVNldENlcnRUeXBlS2V5U3BlYw0KK0NBU2V0Q2VydFR5cGVQcm9wZXJ0eQ0KK0NBU2V0Q2VydFR5cGVQcm9wZXJ0eUV4DQorQ0FVcGRhdGVDQQ0KK0NBVXBkYXRlQ2VydFR5cGUNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbEluc3RhbGwNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitHZXRQcm94eURsbEluZm8NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Y2VydG1nci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y2VydG1nci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjg2ZWZkZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djZXJ0bWdyLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENlcnRNZ3IuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENlcnRNZ3IuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djZXJ0b2JqLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djZXJ0b2JqLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xOWU1MWUwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2NlcnRvYmouZGVmCkBAIC0wLDAgKzEsNDY2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENlcnRPYmouRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENlcnRPYmouRExMDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4oY2xhc3MgbGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4gY29uc3QgJikNCis/PzA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+KGNsYXNzIGxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gY29uc3QgJikNCis/PzA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRQUVAQUJWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4odW5zaWduZWQgaW50LGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmLGNsYXNzIGxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gY29uc3QgJikNCis/PzA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRQUVASUFCVkNTdHJpbmdASUlTQEBBQlY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPihjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgKixjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgKixjbGFzcyBsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+IGNvbnN0ICYpDQorPz8wPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUFFQFBCVkNTdHJpbmdASUlTQEAwQUJWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4oY2xhc3MgbGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmNvbnN0X2l0ZXJhdG9yLGNsYXNzIGxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpjb25zdF9pdGVyYXRvcixjbGFzcyBsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+IGNvbnN0ICYpDQorPz8wPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUFFQFZjb25zdF9pdGVyYXRvckAwMUAwQUJWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFcnJvcjo6Q0Vycm9yKGNsYXNzIENFcnJvciBjb25zdCAmKQ0KKz8/MENFcnJvckBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRXJyb3I6OkNFcnJvcihsb25nKQ0KKz8/MENFcnJvckBAUUFFQEpAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFcnJvcjo6Q0Vycm9yKHVuc2lnbmVkIGxvbmcpDQorPz8wQ0Vycm9yQEBRQUVAS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0Vycm9yOjpDRXJyb3Iodm9pZCkNCis/PzBDRXJyb3JAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJSVNBcHBsaWNhdGlvbjo6Q0lJU0FwcGxpY2F0aW9uKGNsYXNzIENJSVNBcHBsaWNhdGlvbiAmKQ0KKz8/MENJSVNBcHBsaWNhdGlvbkBAUUFFQEFBVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSUlTSW50ZXJmYWNlOjpDSUlTSW50ZXJmYWNlKGNsYXNzIENJSVNJbnRlcmZhY2UgJikNCis/PzBDSUlTSW50ZXJmYWNlQEBRQUVAQUFWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJSVNTdmNDb250cm9sOjpDSUlTU3ZjQ29udHJvbChjbGFzcyBDSUlTU3ZjQ29udHJvbCAmKQ0KKz8/MENJSVNTdmNDb250cm9sQEBRQUVAQUFWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENNZXRhQmFjazo6Q01ldGFCYWNrKGNsYXNzIENNZXRhQmFjayAmKQ0KKz8/MENNZXRhQmFja0BAUUFFQEFBVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0YUVudW1lcmF0b3I6OkNNZXRhRW51bWVyYXRvcihjbGFzcyBDTWV0YUVudW1lcmF0b3IgJikNCis/PzBDTWV0YUVudW1lcmF0b3JAQFFBRUBBQVYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkNNZXRhSW50ZXJmYWNlKGNsYXNzIENNZXRhSW50ZXJmYWNlICYpDQorPz8wQ01ldGFJbnRlcmZhY2VAQFFBRUBBQVYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ01ldGFLZXk6OkNNZXRhS2V5KGNsYXNzIENNZXRhS2V5ICYpDQorPz8wQ01ldGFLZXlAQFFBRUBBQVYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ01ldGFiYXNlUGF0aDo6Q01ldGFiYXNlUGF0aChjbGFzcyBDTWV0YWJhc2VQYXRoIGNvbnN0ICYpDQorPz8wQ01ldGFiYXNlUGF0aEBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU3RyaW5nTGlzdEV4OjpDU3RyaW5nTGlzdEV4KGNsYXNzIENTdHJpbmdMaXN0RXggY29uc3QgJikNCis/PzBDU3RyaW5nTGlzdEV4QEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYW1JbnRlcmZhY2U6OkNXYW1JbnRlcmZhY2UoY2xhc3MgQ1dhbUludGVyZmFjZSAmKQ0KKz8/MENXYW1JbnRlcmZhY2VAQFFBRUBBQVYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46On5saXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4odm9pZCkNCis/PzE/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQmxvYjo6fkNCbG9iKHZvaWQpDQorPz8xQ0Jsb2JAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDb21BdXRoSW5mbzo6fkNDb21BdXRoSW5mbyh2b2lkKQ0KKz8/MUNDb21BdXRoSW5mb0BAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDSUlTQXBwbGljYXRpb246On5DSUlTQXBwbGljYXRpb24odm9pZCkNCis/PzFDSUlTQXBwbGljYXRpb25AQFVBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJSVNJbnRlcmZhY2U6On5DSUlTSW50ZXJmYWNlKHZvaWQpDQorPz8xQ0lJU0ludGVyZmFjZUBAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDTWV0YUJhY2s6On5DTWV0YUJhY2sodm9pZCkNCis/PzFDTWV0YUJhY2tAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ01ldGFFbnVtZXJhdG9yOjp+Q01ldGFFbnVtZXJhdG9yKHZvaWQpDQorPz8xQ01ldGFFbnVtZXJhdG9yQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0YWJhc2VQYXRoOjp+Q01ldGFiYXNlUGF0aCh2b2lkKQ0KKz8/MUNNZXRhYmFzZVBhdGhAQFFBRUBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPiAmIF9fdGhpc2NhbGwgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPiBjb25zdCAmKQ0KKz8/ND8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIENFcnJvciBjb25zdCAmIF9fdGhpc2NhbGwgQ0Vycm9yOjpvcGVyYXRvcj0oY2xhc3MgQ0Vycm9yIGNvbnN0ICYpDQorPz80Q0Vycm9yQEBRQUVBQlYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0Vycm9yIGNvbnN0ICYgX190aGlzY2FsbCBDRXJyb3I6Om9wZXJhdG9yPShsb25nKQ0KKz8/NENFcnJvckBAUUFFQUJWMEBKQFoNCis7IHB1YmxpYzogY2xhc3MgQ0lJU0FwcGxpY2F0aW9uICYgX190aGlzY2FsbCBDSUlTQXBwbGljYXRpb246Om9wZXJhdG9yPShjbGFzcyBDSUlTQXBwbGljYXRpb24gJikNCis/PzRDSUlTQXBwbGljYXRpb25AQFFBRUFBVjBAQUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSUlTSW50ZXJmYWNlICYgX190aGlzY2FsbCBDSUlTSW50ZXJmYWNlOjpvcGVyYXRvcj0oY2xhc3MgQ0lJU0ludGVyZmFjZSAmKQ0KKz8/NENJSVNJbnRlcmZhY2VAQFFBRUFBVjBAQUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSUlTU3ZjQ29udHJvbCAmIF9fdGhpc2NhbGwgQ0lJU1N2Y0NvbnRyb2w6Om9wZXJhdG9yPShjbGFzcyBDSUlTU3ZjQ29udHJvbCAmKQ0KKz8/NENJSVNTdmNDb250cm9sQEBRQUVBQVYwQEFBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ01ldGFCYWNrICYgX190aGlzY2FsbCBDTWV0YUJhY2s6Om9wZXJhdG9yPShjbGFzcyBDTWV0YUJhY2sgJikNCis/PzRDTWV0YUJhY2tAQFFBRUFBVjBAQUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTWV0YUVudW1lcmF0b3IgJiBfX3RoaXNjYWxsIENNZXRhRW51bWVyYXRvcjo6b3BlcmF0b3I9KGNsYXNzIENNZXRhRW51bWVyYXRvciAmKQ0KKz8/NENNZXRhRW51bWVyYXRvckBAUUFFQUFWMEBBQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENNZXRhSW50ZXJmYWNlICYgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6b3BlcmF0b3I9KGNsYXNzIENNZXRhSW50ZXJmYWNlICYpDQorPz80Q01ldGFJbnRlcmZhY2VAQFFBRUFBVjBAQUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTWV0YUtleSAmIF9fdGhpc2NhbGwgQ01ldGFLZXk6Om9wZXJhdG9yPShjbGFzcyBDTWV0YUtleSAmKQ0KKz8/NENNZXRhS2V5QEBRQUVBQVYwQEFBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ01ldGFiYXNlUGF0aCAmIF9fdGhpc2NhbGwgQ01ldGFiYXNlUGF0aDo6b3BlcmF0b3I9KGNsYXNzIENNZXRhYmFzZVBhdGggY29uc3QgJikNCis/PzRDTWV0YWJhc2VQYXRoQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZ0xpc3RFeCAmIF9fdGhpc2NhbGwgQ1N0cmluZ0xpc3RFeDo6b3BlcmF0b3I9KGNsYXNzIENTdHJpbmdMaXN0RXggY29uc3QgJikNCis/PzRDU3RyaW5nTGlzdEV4QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1dhbUludGVyZmFjZSAmIF9fdGhpc2NhbGwgQ1dhbUludGVyZmFjZTo6b3BlcmF0b3I9KGNsYXNzIENXYW1JbnRlcmZhY2UgJikNCis/PzRDV2FtSW50ZXJmYWNlQEBRQUVBQVYwQEFBVjBAQFoNCis7IHB1YmxpYzogaW50IGNvbnN0ICBfX3RoaXNjYWxsIENFcnJvcjo6b3BlcmF0b3I9PShjbGFzcyBDRXJyb3IgJikNCis/PzhDRXJyb3JAQFFBRT9CSEFBVjBAQFoNCis7IHB1YmxpYzogaW50IGNvbnN0ICBfX3RoaXNjYWxsIENFcnJvcjo6b3BlcmF0b3I9PShsb25nKQ0KKz8/OENFcnJvckBAUUFFP0JISkBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENCbG9iOjpvcGVyYXRvciE9KGNsYXNzIENCbG9iIGNvbnN0ICYpY29uc3QgDQorPz85Q0Jsb2JAQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IGludCBjb25zdCAgX190aGlzY2FsbCBDRXJyb3I6Om9wZXJhdG9yIT0oY2xhc3MgQ0Vycm9yICYpDQorPz85Q0Vycm9yQEBRQUU/QkhBQVYwQEBaDQorOyBwdWJsaWM6IGludCBjb25zdCAgX190aGlzY2FsbCBDRXJyb3I6Om9wZXJhdG9yIT0obG9uZykNCis/PzlDRXJyb3JAQFFBRT9CSEpAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1N0clBhc3N3b3JkOjpvcGVyYXRvciE9KGNsYXNzIENTdHJQYXNzd29yZCAmKQ0KKz8/OUNTdHJQYXNzd29yZEBAUUFFX05BQVYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NvbUF1dGhJbmZvOjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCAqKHZvaWQpDQorPz9CQ0NvbUF1dGhJbmZvQEBRQUVQQUdYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDb21BdXRoSW5mbzo6b3BlcmF0b3IgY2xhc3MgQ0NvbUF1dGhJbmZvICoodm9pZCkNCis/P0JDQ29tQXV0aEluZm9AQFFBRVBBVjBAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRXJyb3I6Om9wZXJhdG9yIHVuc2lnbmVkIHNob3J0IGNvbnN0ICoodm9pZCkNCis/P0JDRXJyb3JAQFFBRVBCR1haDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0Vycm9yOjpvcGVyYXRvciBpbnQgY29uc3QgKHZvaWQpY29uc3QgDQorPz9CQ0Vycm9yQEBRQkU/QkhYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFcnJvcjo6b3BlcmF0b3IgbG9uZyBjb25zdCAodm9pZCljb25zdCANCis/P0JDRXJyb3JAQFFCRT9CSlhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0Vycm9yOjpvcGVyYXRvciB1bnNpZ25lZCBsb25nIGNvbnN0ICh2b2lkKWNvbnN0IA0KKz8/QkNFcnJvckBAUUJFP0JLWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSUlTSW50ZXJmYWNlOjpvcGVyYXRvciBpbnQodm9pZCljb25zdCANCis/P0JDSUlTSW50ZXJmYWNlQEBRQkVIWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSUlTSW50ZXJmYWNlOjpvcGVyYXRvciBsb25nKHZvaWQpY29uc3QgDQorPz9CQ0lJU0ludGVyZmFjZUBAUUJFSlhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ01ldGFLZXk6Om9wZXJhdG9yIGludCh2b2lkKWNvbnN0IA0KKz8/QkNNZXRhS2V5QEBRQkVIWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0YUtleTo6b3BlcmF0b3IgdW5zaWduZWQgbG9uZyh2b2lkKWNvbnN0IA0KKz8/QkNNZXRhS2V5QEBRQkVLWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0YUtleTo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgY29uc3QgKih2b2lkKWNvbnN0IA0KKz8/QkNNZXRhS2V5QEBRQkVQQkdYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENNZXRhYmFzZVBhdGg6Om9wZXJhdG9yIHVuc2lnbmVkIHNob3J0IGNvbnN0ICoodm9pZCljb25zdCANCis/P0JDTWV0YWJhc2VQYXRoQEBRQkVQQkdYWg0KKzsgY29uc3QgIENJSVNBcHBsaWNhdGlvbjo6YHZmdGFibGUne2ZvciBgQ01ldGFLZXknfQ0KKz8/XzdDSUlTQXBwbGljYXRpb25AQDZCQ01ldGFLZXlAQEANCis7IGNvbnN0ICBDSUlTQXBwbGljYXRpb246OmB2ZnRhYmxlJ3tmb3IgYENXYW1JbnRlcmZhY2UnfQ0KKz8/XzdDSUlTQXBwbGljYXRpb25AQDZCQ1dhbUludGVyZmFjZUBAQA0KKzsgY29uc3QgIENJSVNJbnRlcmZhY2U6OmB2ZnRhYmxlJw0KKz8/XzdDSUlTSW50ZXJmYWNlQEA2QkANCis7IGNvbnN0ICBDSUlTU3ZjQ29udHJvbDo6YHZmdGFibGUnDQorPz9fN0NJSVNTdmNDb250cm9sQEA2QkANCis7IGNvbnN0ICBDTWV0YUJhY2s6OmB2ZnRhYmxlJ3tmb3IgYENNZXRhSW50ZXJmYWNlJ30NCis/P183Q01ldGFCYWNrQEA2QkNNZXRhSW50ZXJmYWNlQEBADQorOyBjb25zdCAgQ01ldGFCYWNrOjpgdmZ0YWJsZSd7Zm9yIGBDV2FtSW50ZXJmYWNlJ30NCis/P183Q01ldGFCYWNrQEA2QkNXYW1JbnRlcmZhY2VAQEANCis7IGNvbnN0ICBDTWV0YUVudW1lcmF0b3I6OmB2ZnRhYmxlJw0KKz8/XzdDTWV0YUVudW1lcmF0b3JAQDZCQA0KKzsgY29uc3QgIENNZXRhSW50ZXJmYWNlOjpgdmZ0YWJsZScNCis/P183Q01ldGFJbnRlcmZhY2VAQDZCQA0KKzsgY29uc3QgIENNZXRhS2V5OjpgdmZ0YWJsZScNCis/P183Q01ldGFLZXlAQDZCQA0KKzsgY29uc3QgIENXYW1JbnRlcmZhY2U6OmB2ZnRhYmxlJw0KKz8/XzdDV2FtSW50ZXJmYWNlQEA2QkANCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDb21BdXRoSW5mbzo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GQ0NvbUF1dGhJbmZvQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENNZXRhYmFzZVBhdGg6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRkNNZXRhYmFzZVBhdGhAQFFBRVhYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkFkZEtleSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0FkZEtleUBDTWV0YUludGVyZmFjZUBASUFFSktQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFLZXk6OkFkZEtleSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9BZGRLZXlAQ01ldGFLZXlAQFFBRUpQQkdAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ1dhbUludGVyZmFjZTo6QXBwRGVsZXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz9BcHBEZWxldGVAQ1dhbUludGVyZmFjZUBASUFFSlBCR0hAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ1dhbUludGVyZmFjZTo6QXBwRGVsZXRlUmVjb3ZlcmFibGUodW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpDQorP0FwcERlbGV0ZVJlY292ZXJhYmxlQENXYW1JbnRlcmZhY2VAQElBRUpQQkdIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENXYW1JbnRlcmZhY2U6OkFwcEdldFN0YXR1cyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcgKikNCis/QXBwR2V0U3RhdHVzQENXYW1JbnRlcmZhY2VAQElBRUpQQkdQQUtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ1dhbUludGVyZmFjZTo6QXBwUmVjb3Zlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/QXBwUmVjb3ZlckBDV2FtSW50ZXJmYWNlQEBJQUVKUEJHSEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDV2FtSW50ZXJmYWNlOjpBcHBVbkxvYWQodW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpDQorP0FwcFVuTG9hZEBDV2FtSW50ZXJmYWNlQEBJQUVKUEJHSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENJSVNTdmNDb250cm9sOjpBcHBseVByb3h5QmxhbmtldCh2b2lkKQ0KKz9BcHBseVByb3h5QmxhbmtldEBDSUlTU3ZjQ29udHJvbEBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENNZXRhQmFjazo6QXBwbHlQcm94eUJsYW5rZXQodm9pZCkNCis/QXBwbHlQcm94eUJsYW5rZXRAQ01ldGFCYWNrQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkFwcGx5UHJveHlCbGFua2V0KHZvaWQpDQorP0FwcGx5UHJveHlCbGFua2V0QENNZXRhSW50ZXJmYWNlQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1dhbUludGVyZmFjZTo6QXBwbHlQcm94eUJsYW5rZXQodm9pZCkNCis/QXBwbHlQcm94eUJsYW5rZXRAQ1dhbUludGVyZmFjZUBATUFFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0YUJhY2s6OkJhY2t1cCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9CYWNrdXBAQ01ldGFCYWNrQEBRQUVKUEJHQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpCYWNrdXAodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0JhY2t1cEBDTWV0YUludGVyZmFjZUBASUFFSlBCR0tLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ0lJU0ludGVyZmFjZTo6Q2hhbmdlUHJveHlCbGFua2V0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/Q2hhbmdlUHJveHlCbGFua2V0QENJSVNJbnRlcmZhY2VAQFVBRUpQQkcwQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpDbG9zZUtleSh1bnNpZ25lZCBsb25nKQ0KKz9DbG9zZUtleUBDTWV0YUludGVyZmFjZUBASUFFSktAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkNvcHlEYXRhKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50KQ0KKz9Db3B5RGF0YUBDTWV0YUludGVyZmFjZUBASUFFSktQQkdLMEtLS0hAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkNvcHlLZXkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQsaW50KQ0KKz9Db3B5S2V5QENNZXRhSW50ZXJmYWNlQEBJQUVKS1BCR0swSEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0lJU0FwcGxpY2F0aW9uOjpEZWxldGUoaW50KQ0KKz9EZWxldGVAQ0lJU0FwcGxpY2F0aW9uQEBRQUVKSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0YUJhY2s6OkRlbGV0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0RlbGV0ZUBDTWV0YUJhY2tAQFFBRUpQQkdLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpEZWxldGVBbGxEYXRhKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0RlbGV0ZUFsbERhdGFAQ01ldGFJbnRlcmZhY2VAQElBRUpLUEJHS0tAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkRlbGV0ZUJhY2t1cCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0RlbGV0ZUJhY2t1cEBDTWV0YUludGVyZmFjZUBASUFFSlBCR0tAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkRlbGV0ZUNoaWxkS2V5cyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0RlbGV0ZUNoaWxkS2V5c0BDTWV0YUludGVyZmFjZUBASUFFSktQQkdAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkRlbGV0ZURhdGEodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/RGVsZXRlRGF0YUBDTWV0YUludGVyZmFjZUBASUFFSktQQkdLS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6RGVsZXRlS2V5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/RGVsZXRlS2V5QENNZXRhSW50ZXJmYWNlQEBJQUVKS1BCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0YUtleTo6RGVsZXRlS2V5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0RlbGV0ZUtleUBDTWV0YUtleUBAUUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDSUlTQXBwbGljYXRpb246OkRlbGV0ZVJlY292ZXJhYmxlKGludCkNCis/RGVsZXRlUmVjb3ZlcmFibGVAQ0lJU0FwcGxpY2F0aW9uQEBRQUVKSEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6RW51bUJhY2t1cHModW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBsb25nICosc3RydWN0IF9GSUxFVElNRSAqLHVuc2lnbmVkIGxvbmcpDQorP0VudW1CYWNrdXBzQENNZXRhSW50ZXJmYWNlQEBJQUVKUEFHUEFLUEFVX0ZJTEVUSU1FQEBLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpFbnVtRGF0YSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IF9NRVRBREFUQV9SRUNPUkQgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKikNCis/RW51bURhdGFAQ01ldGFJbnRlcmZhY2VAQElBRUpLUEJHUEFVX01FVEFEQVRBX1JFQ09SREBAS1BBS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6RW51bUtleXModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZykNCis/RW51bUtleXNAQ01ldGFJbnRlcmZhY2VAQElBRUpLUEJHUEFHS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENFcnJvcjo6RmFpbGVkKHZvaWQpY29uc3QgDQorP0ZhaWxlZEBDRXJyb3JAQFFCRUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDRXJyb3I6OkZhaWxlZChsb25nKQ0KKz9GYWlsZWRAQ0Vycm9yQEBTR0hKQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpHZXRBbGxEYXRhKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcgKikNCis/R2V0QWxsRGF0YUBDTWV0YUludGVyZmFjZUBASUFFSktQQkdLS0tQQUsxS1BBRTFAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ01ldGFLZXk6OkdldEJhc2Uodm9pZCljb25zdCANCis/R2V0QmFzZUBDTWV0YUtleUBAUUJFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENCbG9iOjpHZXREYXRhKHZvaWQpDQorP0dldERhdGFAQ0Jsb2JAQFFBRVBBRVhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6R2V0RGF0YSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IF9NRVRBREFUQV9SRUNPUkQgKix1bnNpZ25lZCBsb25nICopDQorP0dldERhdGFAQ01ldGFJbnRlcmZhY2VAQElBRUpLUEJHUEFVX01FVEFEQVRBX1JFQ09SREBAUEFLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpHZXREYXRhUGF0aHModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXREYXRhUGF0aHNAQ01ldGFJbnRlcmZhY2VAQElBRUpLUEJHS0tLUEFHUEFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENNZXRhS2V5OjpHZXRIYW5kbGUodm9pZCljb25zdCANCis/R2V0SGFuZGxlQENNZXRhS2V5QEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENNZXRhRW51bWVyYXRvcjo6R2V0SW5kZXgodm9pZCkNCis/R2V0SW5kZXhAQ01ldGFFbnVtZXJhdG9yQEBRQUVLWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19zdGRjYWxsIENNZXRhYmFzZVBhdGg6OkdldEluc3RhbmNlUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIElJUzo6Q1N0cmluZyAmLGNsYXNzIElJUzo6Q1N0cmluZyAqKQ0KKz9HZXRJbnN0YW5jZVBhdGhAQ01ldGFiYXNlUGF0aEBAU0dQQkdQQkdBQVZDU3RyaW5nQElJU0BAUEFWMjNAQFoNCis7IHB1YmxpYzogc3RydWN0IElNU0FkbWluQmFzZVcgKiBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpHZXRJbnRlcmZhY2Uodm9pZCkNCis/R2V0SW50ZXJmYWNlQENNZXRhSW50ZXJmYWNlQEBRQUVQQVVJTVNBZG1pbkJhc2VXQEBYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkdldExhc3RDaGFuZ2VUaW1lKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKixzdHJ1Y3QgX0ZJTEVUSU1FICosaW50KQ0KKz9HZXRMYXN0Q2hhbmdlVGltZUBDTWV0YUludGVyZmFjZUBASUFFSktQQkdQQVVfRklMRVRJTUVAQEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Vycm9yOjpHZXRMYXN0V2luRXJyb3Iodm9pZCkNCis/R2V0TGFzdFdpbkVycm9yQENFcnJvckBAUUFFWFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDTWV0YWJhc2VQYXRoOjpHZXRNYWNoaW5lUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIElJUzo6Q1N0cmluZyAmLGNsYXNzIElJUzo6Q1N0cmluZyAqKQ0KKz9HZXRNYWNoaW5lUGF0aEBDTWV0YWJhc2VQYXRoQEBTR1BCR1BCR0FBVkNTdHJpbmdASUlTQEBQQVYyM0BAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgQ01ldGFiYXNlUGF0aDo6R2V0Um9vdFBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBJSVM6OkNTdHJpbmcgJixjbGFzcyBJSVM6OkNTdHJpbmcgKikNCis/R2V0Um9vdFBhdGhAQ01ldGFiYXNlUGF0aEBAU0dQQkdQQkdBQVZDU3RyaW5nQElJU0BAUEFWMjNAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19zdGRjYWxsIENNZXRhYmFzZVBhdGg6OkdldFNlcnZpY2VQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgSUlTOjpDU3RyaW5nICYsY2xhc3MgSUlTOjpDU3RyaW5nICopDQorP0dldFNlcnZpY2VQYXRoQENNZXRhYmFzZVBhdGhAQFNHUEJHUEJHQUFWQ1N0cmluZ0BJSVNAQFBBVjIzQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDQmxvYjo6R2V0U2l6ZSh2b2lkKWNvbnN0IA0KKz9HZXRTaXplQENCbG9iQEBRQkVLWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENFcnJvcjo6SFJlc3VsdCh2b2lkKWNvbnN0IA0KKz9IUmVzdWx0QENFcnJvckBAUUJFSlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDRXJyb3I6OkhSZXN1bHQobG9uZykNCis/SFJlc3VsdEBDRXJyb3JAQFNHSkpAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDSUlTU3ZjQ29udHJvbDo6SGFzSW50ZXJmYWNlKHZvaWQpY29uc3QgDQorP0hhc0ludGVyZmFjZUBDSUlTU3ZjQ29udHJvbEBASUJFSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpIYXNJbnRlcmZhY2Uodm9pZCljb25zdCANCis/SGFzSW50ZXJmYWNlQENNZXRhSW50ZXJmYWNlQEBJQkVIWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgQ1dhbUludGVyZmFjZTo6SGFzSW50ZXJmYWNlKHZvaWQpY29uc3QgDQorP0hhc0ludGVyZmFjZUBDV2FtSW50ZXJmYWNlQEBJQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0Jsb2I6OklzRW1wdHkodm9pZCljb25zdCANCis/SXNFbXB0eUBDQmxvYkBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJSVNBcHBsaWNhdGlvbjo6SXNFbmFibGVkQXBwbGljYXRpb24odm9pZCljb25zdCANCis/SXNFbmFibGVkQXBwbGljYXRpb25AQ0lJU0FwcGxpY2F0aW9uQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ01ldGFLZXk6OklzSG9tZURpcmVjdG9yeVBhdGgodm9pZCljb25zdCANCis/SXNIb21lRGlyZWN0b3J5UGF0aEBDTWV0YUtleUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENNZXRhYmFzZVBhdGg6OklzSG9tZURpcmVjdG9yeVBhdGgodm9pZCljb25zdCANCis/SXNIb21lRGlyZWN0b3J5UGF0aEBDTWV0YWJhc2VQYXRoQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lJU0FwcGxpY2F0aW9uOjpJc0lucHJvYyh2b2lkKWNvbnN0IA0KKz9Jc0lucHJvY0BDSUlTQXBwbGljYXRpb25AQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ29tQXV0aEluZm86OklzTG9jYWwodm9pZCljb25zdCANCis/SXNMb2NhbEBDQ29tQXV0aEluZm9AQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSUlTSW50ZXJmYWNlOjpJc0xvY2FsKHZvaWQpY29uc3QgDQorP0lzTG9jYWxAQ0lJU0ludGVyZmFjZUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENNZXRhS2V5OjpJc09wZW4odm9pZCljb25zdCANCis/SXNPcGVuQENNZXRhS2V5QEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lJU0FwcGxpY2F0aW9uOjpJc091dE9mUHJvYyh2b2lkKWNvbnN0IA0KKz9Jc091dE9mUHJvY0BDSUlTQXBwbGljYXRpb25AQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSUlTQXBwbGljYXRpb246OklzUG9vbGVkUHJvYyh2b2lkKWNvbnN0IA0KKz9Jc1Bvb2xlZFByb2NAQ0lJU0FwcGxpY2F0aW9uQEBRQkVIWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENJSVNTdmNDb250cm9sOjpLaWxsKHZvaWQpDQorP0tpbGxAQ0lJU1N2Y0NvbnRyb2xAQFFBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFCYWNrOjpOZXh0KHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBzaG9ydCAqLHN0cnVjdCBfRklMRVRJTUUgKikNCis/TmV4dEBDTWV0YUJhY2tAQFFBRUpQQUtQQUdQQVVfRklMRVRJTUVAQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6T3BlbktleSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICopDQorP09wZW5LZXlAQ01ldGFJbnRlcmZhY2VAQElBRUpLUEJHS1BBS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTWV0YUVudW1lcmF0b3I6OlBvcCh2b2lkKQ0KKz9Qb3BAQ01ldGFFbnVtZXJhdG9yQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENNZXRhRW51bWVyYXRvcjo6UHVzaCh2b2lkKQ0KKz9QdXNoQENNZXRhRW51bWVyYXRvckBAUUFFWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDSUlTQXBwbGljYXRpb246OlF1ZXJ5QXBwU3RhdGUodm9pZCljb25zdCANCis/UXVlcnlBcHBTdGF0ZUBDSUlTQXBwbGljYXRpb25AQFFCRUtYWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tQXV0aEluZm8gKiBfX3RoaXNjYWxsIENJSVNJbnRlcmZhY2U6OlF1ZXJ5QXV0aEluZm8odm9pZCkNCis/UXVlcnlBdXRoSW5mb0BDSUlTSW50ZXJmYWNlQEBRQUVQQVZDQ29tQXV0aEluZm9AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTWV0YUtleTo6UXVlcnlGbGFncyh2b2lkKWNvbnN0IA0KKz9RdWVyeUZsYWdzQENNZXRhS2V5QEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIENNZXRhS2V5OjpRdWVyeU1ldGFQYXRoKHZvaWQpY29uc3QgDQorP1F1ZXJ5TWV0YVBhdGhAQ01ldGFLZXlAQFFCRVBCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBDTWV0YWJhc2VQYXRoOjpRdWVyeU1ldGFQYXRoKHZvaWQpY29uc3QgDQorP1F1ZXJ5TWV0YVBhdGhAQ01ldGFiYXNlUGF0aEBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIENDb21BdXRoSW5mbzo6UXVlcnlQYXNzd29yZCh2b2lkKWNvbnN0IA0KKz9RdWVyeVBhc3N3b3JkQENDb21BdXRoSW5mb0BAUUJFUEFHWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ0lJU0ludGVyZmFjZTo6UXVlcnlSZXN1bHQodm9pZCljb25zdCANCis/UXVlcnlSZXN1bHRAQ0lJU0ludGVyZmFjZUBAVUJFSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBDQ29tQXV0aEluZm86OlF1ZXJ5U2VydmVyTmFtZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVNlcnZlck5hbWVAQ0NvbUF1dGhJbmZvQEBRQkVQQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgQ0lJU0ludGVyZmFjZTo6UXVlcnlTZXJ2ZXJOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2VydmVyTmFtZUBDSUlTSW50ZXJmYWNlQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ0NvbUF1dGhJbmZvOjpRdWVyeVVzZXJOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5VXNlck5hbWVAQ0NvbUF1dGhJbmZvQEBRQkVQQUdYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFLZXk6OlF1ZXJ5VmFsdWUodW5zaWduZWQgbG9uZyxpbnQgJixpbnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcgKikNCis/UXVlcnlWYWx1ZUBDTWV0YUtleUBAUUFFSktBQUhQQUhQQkdQQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgQ0lJU0FwcGxpY2F0aW9uOjpRdWVyeVdhbVBhdGgodm9pZCljb25zdCANCis/UXVlcnlXYW1QYXRoQENJSVNBcHBsaWNhdGlvbkBAUUJFUEJHWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhS2V5OjpSZU9wZW4odW5zaWduZWQgbG9uZykNCis/UmVPcGVuQENNZXRhS2V5QEBRQUVKS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0YUtleTo6UmVPcGVuKHZvaWQpDQorP1JlT3BlbkBDTWV0YUtleUBAUUFFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDSUlTU3ZjQ29udHJvbDo6UmVib290KHVuc2lnbmVkIGxvbmcsaW50KQ0KKz9SZWJvb3RAQ0lJU1N2Y0NvbnRyb2xAQFFBRUpLSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDSUlTQXBwbGljYXRpb246OlJlY292ZXIoaW50KQ0KKz9SZWNvdmVyQENJSVNBcHBsaWNhdGlvbkBAUUFFSkhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Vycm9yOjpSZW1vdmVPdmVycmlkZShsb25nKQ0KKz9SZW1vdmVPdmVycmlkZUBDRXJyb3JAQFFBRVhKQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpSZW5hbWVLZXkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1JlbmFtZUtleUBDTWV0YUludGVyZmFjZUBASUFFSktQQkcwQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhS2V5OjpSZW5hbWVLZXkodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9SZW5hbWVLZXlAQ01ldGFLZXlAQFFBRUpQQkcwQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENFcnJvcjo6UmVzZXQodm9pZCkNCis/UmVzZXRAQ0Vycm9yQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENNZXRhQmFjazo6UmVzZXQodm9pZCkNCis/UmVzZXRAQ01ldGFCYWNrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENNZXRhRW51bWVyYXRvcjo6UmVzZXQodW5zaWduZWQgbG9uZykNCis/UmVzZXRAQ01ldGFFbnVtZXJhdG9yQEBRQUVYS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6UmVzdG9yZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/UmVzdG9yZUBDTWV0YUludGVyZmFjZUBASUFFSlBCR0tLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpTYXZlRGF0YSh2b2lkKQ0KKz9TYXZlRGF0YUBDTWV0YUludGVyZmFjZUBAUUFFSlhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6U2V0RGF0YSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IF9NRVRBREFUQV9SRUNPUkQgKikNCis/U2V0RGF0YUBDTWV0YUludGVyZmFjZUBASUFFSktQQkdQQVVfTUVUQURBVEFfUkVDT1JEQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OlNldExhc3RDaGFuZ2VUaW1lKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKixzdHJ1Y3QgX0ZJTEVUSU1FICosaW50KQ0KKz9TZXRMYXN0Q2hhbmdlVGltZUBDTWV0YUludGVyZmFjZUBASUFFSktQQkdQQVVfRklMRVRJTUVAQEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Vycm9yOjpTZXRMYXN0V2luRXJyb3Iodm9pZCljb25zdCANCis/U2V0TGFzdFdpbkVycm9yQENFcnJvckBAUUJFWFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0YUtleTo6U2V0VmFsdWUodW5zaWduZWQgbG9uZyxjbGFzcyBJSVM6OkNTdHJpbmcgJixpbnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRWYWx1ZUBDTWV0YUtleUBAUUFFSktBQVZDU3RyaW5nQElJU0BAUEFIUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhS2V5OjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nLGludCxpbnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRWYWx1ZUBDTWV0YUtleUBAUUFFSktIUEFIUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhS2V5OjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0VmFsdWVAQ01ldGFLZXlAQFFBRUpLS1BBSFBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDSUlTU3ZjQ29udHJvbDo6U3RhcnQodW5zaWduZWQgbG9uZykNCis/U3RhcnRAQ0lJU1N2Y0NvbnRyb2xAQFFBRUpLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENJSVNTdmNDb250cm9sOjpTdGF0dXModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcgKikNCis/U3RhdHVzQENJSVNTdmNDb250cm9sQEBRQUVKS1BBRVBBSzFAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0lJU1N2Y0NvbnRyb2w6OlN0b3AodW5zaWduZWQgbG9uZyxpbnQpDQorP1N0b3BAQ0lJU1N2Y0NvbnRyb2xAQFFBRUpLSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ29tQXV0aEluZm86OlN0b3JlUGFzc3dvcmQodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U3RvcmVQYXNzd29yZEBDQ29tQXV0aEluZm9AQFFBRVhQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRXJyb3I6OlN1Y2NlZWRlZCh2b2lkKWNvbnN0IA0KKz9TdWNjZWVkZWRAQ0Vycm9yQEBRQkVIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0Vycm9yOjpTdWNjZWVkZWQobG9uZykNCis/U3VjY2VlZGVkQENFcnJvckBAU0dISkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0lJU0ludGVyZmFjZTo6U3VjY2VlZGVkKHZvaWQpY29uc3QgDQorP1N1Y2NlZWRlZEBDSUlTSW50ZXJmYWNlQEBVQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1dhbUludGVyZmFjZTo6U3VwcG9ydHNQb29sZWRQcm9jKHZvaWQpY29uc3QgDQorP1N1cHBvcnRzUG9vbGVkUHJvY0BDV2FtSW50ZXJmYWNlQEBRQkVIWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENJSVNBcHBsaWNhdGlvbjo6VW5sb2FkKGludCkNCis/VW5sb2FkQENJSVNBcHBsaWNhdGlvbkBAUUFFSkhAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ0Vycm9yOjpVbnJlZ2lzdGVyRmFjaWxpdHkodW5zaWduZWQgbG9uZykNCis/VW5yZWdpc3RlckZhY2lsaXR5QENFcnJvckBAU0dYS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDb21BdXRoSW5mbzo6VXNlc0ltcGVyc29uYXRpb24odm9pZCljb25zdCANCis/VXNlc0ltcGVyc29uYXRpb25AQ0NvbUF1dGhJbmZvQEBRQkVIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENFcnJvcjo6V2luMzJFcnJvcih2b2lkKWNvbnN0IA0KKz9XaW4zMkVycm9yQENFcnJvckBAUUJFS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDRXJyb3I6OldpbjMyRXJyb3IobG9uZykNCis/V2luMzJFcnJvckBDRXJyb3JAQFNHS0pAWg0KKzsgcHJvdGVjdGVkOiBzdHJ1Y3Qgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Ol9Ob2RlICogX190aGlzY2FsbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6X0J1eW5vZGUoc3RydWN0IHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpfTm9kZSAqLHN0cnVjdCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6X05vZGUgKikNCis/X0J1eW5vZGVAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBASUFFUEFVX05vZGVAMTJAUEFVMzEyQDBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Ol9GcmVlbm9kZShzdHJ1Y3Qgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Ol9Ob2RlICopDQorP19GcmVlbm9kZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBJQUVYUEFVX05vZGVAMTJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpfU3BsaWNlKGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPiAmLGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IpDQorP19TcGxpY2VAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBASUFFWFZpdGVyYXRvckAxMkBBQVYxMkAwMEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6X1hyYW4odm9pZCljb25zdCANCis/X1hyYW5APyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBASUJFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6YXNzaWduKHVuc2lnbmVkIGludCxjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgJikNCis/YXNzaWduQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFBRVhJQUJWQ1N0cmluZ0BJSVNAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6YXNzaWduKGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpjb25zdF9pdGVyYXRvcixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6Y29uc3RfaXRlcmF0b3IpDQorP2Fzc2lnbkA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRQUVYVmNvbnN0X2l0ZXJhdG9yQDEyQDBAWg0KKzsgcHVibGljOiBjbGFzcyBJSVM6OkNTdHJpbmcgJiBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpiYWNrKHZvaWQpDQorP2JhY2tAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUFFQUFWQ1N0cmluZ0BJSVNAQFhaDQorOyBwdWJsaWM6IGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fdGhpc2NhbGwgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmJhY2sodm9pZCljb25zdCANCis/YmFja0A/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRQkVBQlZDU3RyaW5nQElJU0BAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yICBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpiZWdpbih2b2lkKQ0KKz9iZWdpbkA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRQUU/QVZpdGVyYXRvckAxMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6Y29uc3RfaXRlcmF0b3IgIF9fdGhpc2NhbGwgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmJlZ2luKHZvaWQpY29uc3QgDQorP2JlZ2luQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFCRT9BVmNvbnN0X2l0ZXJhdG9yQDEyQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6Y2xlYXIodm9pZCkNCis/Y2xlYXJAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6ZW1wdHkodm9pZCljb25zdCANCis/ZW1wdHlAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUJFX05YWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IgIF9fdGhpc2NhbGwgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmVuZCh2b2lkKQ0KKz9lbmRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUFFP0FWaXRlcmF0b3JAMTJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmNvbnN0X2l0ZXJhdG9yICBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjplbmQodm9pZCljb25zdCANCis/ZW5kQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFCRT9BVmNvbnN0X2l0ZXJhdG9yQDEyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvciAgX190aGlzY2FsbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6ZXJhc2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yLGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcikNCis/ZXJhc2VAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUFFP0FWaXRlcmF0b3JAMTJAVjMxMkAwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yICBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjplcmFzZShjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IpDQorP2VyYXNlQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFBRT9BVml0ZXJhdG9yQDEyQFYzMTJAQFoNCis7IHB1YmxpYzogY2xhc3MgSUlTOjpDU3RyaW5nICYgX190aGlzY2FsbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6ZnJvbnQodm9pZCkNCis/ZnJvbnRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUFFQUFWQ1N0cmluZ0BJSVNAQFhaDQorOyBwdWJsaWM6IGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmIF9fdGhpc2NhbGwgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmZyb250KHZvaWQpY29uc3QgDQorP2Zyb250QD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFCRUFCVkNTdHJpbmdASUlTQEBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ICBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpnZXRfYWxsb2NhdG9yKHZvaWQpY29uc3QgDQorP2dldF9hbGxvY2F0b3JAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IgIF9fdGhpc2NhbGwgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Omluc2VydChjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IsY2xhc3MgSUlTOjpDU3RyaW5nIGNvbnN0ICYpDQorP2luc2VydEA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRQUU/QVZpdGVyYXRvckAxMkBWMzEyQEFCVkNTdHJpbmdASUlTQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Omluc2VydChjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IsdW5zaWduZWQgaW50LGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmKQ0KKz9pbnNlcnRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUFFWFZpdGVyYXRvckAxMkBJQUJWQ1N0cmluZ0BJSVNAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aW5zZXJ0KGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcixjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgKixjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgKikNCis/aW5zZXJ0QD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFBRVhWaXRlcmF0b3JAMTJAUEJWQ1N0cmluZ0BJSVNAQDFAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Omluc2VydChjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmNvbnN0X2l0ZXJhdG9yLGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpjb25zdF9pdGVyYXRvcikNCis/aW5zZXJ0QD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFBRVhWaXRlcmF0b3JAMTJAVmNvbnN0X2l0ZXJhdG9yQDEyQDFAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6bWF4X3NpemUodm9pZCljb25zdCANCis/bWF4X3NpemVAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUJFSVhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6bWVyZ2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4gJikNCis/bWVyZ2VAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUFFWEFBVjEyQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6bWVyZ2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4gJixzdHJ1Y3Qgc3RkOjpncmVhdGVyPGNsYXNzIElJUzo6Q1N0cmluZz4pDQorP21lcmdlQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFBRVhBQVYxMkBVPyRncmVhdGVyQFZDU3RyaW5nQElJU0BAQDJAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpwb3BfYmFjayh2b2lkKQ0KKz9wb3BfYmFja0A/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpwb3BfZnJvbnQodm9pZCkNCis/cG9wX2Zyb250QD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnB1c2hfYmFjayhjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgJikNCis/cHVzaF9iYWNrQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFBRVhBQlZDU3RyaW5nQElJU0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpwdXNoX2Zyb250KGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmKQ0KKz9wdXNoX2Zyb250QD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFBRVhBQlZDU3RyaW5nQElJU0BAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpyZXZlcnNlX2JpZGlyZWN0aW9uYWxfaXRlcmF0b3I8Y2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yLGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBJSVM6OkNTdHJpbmcgJixjbGFzcyBJSVM6OkNTdHJpbmcgKixpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpyYmVnaW4odm9pZCkNCis/cmJlZ2luQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFBRT9BVj8kcmV2ZXJzZV9iaWRpcmVjdGlvbmFsX2l0ZXJhdG9yQFZpdGVyYXRvckA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBWQ1N0cmluZ0BJSVNAQEFBVjQ1QFBBVjQ1QEhAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfYmlkaXJlY3Rpb25hbF9pdGVyYXRvcjxjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6Y29uc3RfaXRlcmF0b3IsY2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmLGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAqLGludD4gIF9fdGhpc2NhbGwgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnJiZWdpbih2b2lkKWNvbnN0IA0KKz9yYmVnaW5APyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRyZXZlcnNlX2JpZGlyZWN0aW9uYWxfaXRlcmF0b3JAVmNvbnN0X2l0ZXJhdG9yQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFZDU3RyaW5nQElJU0BAQUJWNDVAUEJWNDVASEAyQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6cmVtb3ZlKGNsYXNzIElJUzo6Q1N0cmluZyBjb25zdCAmKQ0KKz9yZW1vdmVAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUFFWEFCVkNTdHJpbmdASUlTQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnJlbW92ZV9pZihjbGFzcyBzdGQ6OmJpbmRlcjJuZDxzdHJ1Y3Qgc3RkOjpub3RfZXF1YWxfdG88Y2xhc3MgSUlTOjpDU3RyaW5nPiA+KQ0KKz9yZW1vdmVfaWZAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUFFWFY/JGJpbmRlcjJuZEBVPyRub3RfZXF1YWxfdG9AVkNTdHJpbmdASUlTQEBAc3RkQEBAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfYmlkaXJlY3Rpb25hbF9pdGVyYXRvcjxjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IsY2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIElJUzo6Q1N0cmluZyAmLGNsYXNzIElJUzo6Q1N0cmluZyAqLGludD4gIF9fdGhpc2NhbGwgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnJlbmQodm9pZCkNCis/cmVuZEA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRQUU/QVY/JHJldmVyc2VfYmlkaXJlY3Rpb25hbF9pdGVyYXRvckBWaXRlcmF0b3JAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAVkNTdHJpbmdASUlTQEBBQVY0NUBQQVY0NUBIQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpyZXZlcnNlX2JpZGlyZWN0aW9uYWxfaXRlcmF0b3I8Y2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OmNvbnN0X2l0ZXJhdG9yLGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgJixjbGFzcyBJSVM6OkNTdHJpbmcgY29uc3QgKixpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpyZW5kKHZvaWQpY29uc3QgDQorP3JlbmRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRyZXZlcnNlX2JpZGlyZWN0aW9uYWxfaXRlcmF0b3JAVmNvbnN0X2l0ZXJhdG9yQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFZDU3RyaW5nQElJU0BAQUJWNDVAUEJWNDVASEAyQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6cmVzaXplKHVuc2lnbmVkIGludCxjbGFzcyBJSVM6OkNTdHJpbmcpDQorP3Jlc2l6ZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRQUVYSVZDU3RyaW5nQElJU0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpyZXZlcnNlKHZvaWQpDQorP3JldmVyc2VAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpzaXplKHZvaWQpY29uc3QgDQorP3NpemVAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUJFSVhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6c29ydChzdHJ1Y3Qgc3RkOjpncmVhdGVyPGNsYXNzIElJUzo6Q1N0cmluZz4pDQorP3NvcnRAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUFFWFU/JGdyZWF0ZXJAVkNTdHJpbmdASUlTQEBAMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnNvcnQodm9pZCkNCis/c29ydEA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjpzcGxpY2UoY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yLGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+ICYsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46Oml0ZXJhdG9yLGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+OjppdGVyYXRvcikNCis/c3BsaWNlQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFBRVhWaXRlcmF0b3JAMTJAQUFWMTJAMDBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnNwbGljZShjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4gJixjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IpDQorP3NwbGljZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRQUVYVml0ZXJhdG9yQDEyQEFBVjEyQDBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID46OnNwbGljZShjbGFzcyBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6aXRlcmF0b3IsY2xhc3Mgc3RkOjpsaXN0PGNsYXNzIElJUzo6Q1N0cmluZyxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjbGFzcyBJSVM6OkNTdHJpbmc+ID4gJikNCis/c3BsaWNlQD8kbGlzdEBWQ1N0cmluZ0BJSVNAQFY/JGFsbG9jYXRvckBWQ1N0cmluZ0BJSVNAQEBzdGRAQEBzdGRAQFFBRVhWaXRlcmF0b3JAMTJAQUFWMTJAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+Ojpzd2FwKGNsYXNzIHN0ZDo6bGlzdDxjbGFzcyBJSVM6OkNTdHJpbmcsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgSUlTOjpDU3RyaW5nPiA+ICYpDQorP3N3YXBAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUFFWEFBVjEyQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6dW5pcXVlKHN0cnVjdCBzdGQ6Om5vdF9lcXVhbF90bzxjbGFzcyBJSVM6OkNTdHJpbmc+KQ0KKz91bmlxdWVAPyRsaXN0QFZDU3RyaW5nQElJU0BAVj8kYWxsb2NhdG9yQFZDU3RyaW5nQElJU0BAQHN0ZEBAQHN0ZEBAUUFFWFU/JG5vdF9lcXVhbF90b0BWQ1N0cmluZ0BJSVNAQEAyQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omxpc3Q8Y2xhc3MgSUlTOjpDU3RyaW5nLGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIElJUzo6Q1N0cmluZz4gPjo6dW5pcXVlKHZvaWQpDQorP3VuaXF1ZUA/JGxpc3RAVkNTdHJpbmdASUlTQEBWPyRhbGxvY2F0b3JAVkNTdHJpbmdASUlTQEBAc3RkQEBAc3RkQEBRQUVYWFoNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djZXdtZG0uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Nld21kbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjhhYTNkOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djZXdtZG0uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ0VXTURNLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDRVdNRE0uRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NmZ21ncjMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djZmdtZ3IzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmQ3YWIxMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djZmdtZ3IzMi5kZWYKQEAgLTAsMCArMSwyMDQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ0ZHTUdSMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENGR01HUjMyLmRsbA0KK0VYUE9SVFMNCitDTVBfSW5pdF9EZXRlY3Rpb24NCitDTVBfUmVnaXN0ZXJOb3RpZmljYXRpb24NCitDTVBfUmVwb3J0X0xvZ09uDQorQ01QX1VucmVnaXN0ZXJOb3RpZmljYXRpb24NCitDTVBfV2FpdE5vUGVuZGluZ0luc3RhbGxFdmVudHMNCitDTVBfV2FpdFNlcnZpY2VzQXZhaWxhYmxlDQorQ01fQWRkX0VtcHR5X0xvZ19Db25mDQorQ01fQWRkX0VtcHR5X0xvZ19Db25mX0V4DQorQ01fQWRkX0lEQQ0KK0NNX0FkZF9JRFcNCitDTV9BZGRfSURfRXhBDQorQ01fQWRkX0lEX0V4Vw0KK0NNX0FkZF9SYW5nZQ0KK0NNX0FkZF9SZXNfRGVzDQorQ01fQWRkX1Jlc19EZXNfRXgNCitDTV9Db25uZWN0X01hY2hpbmVBDQorQ01fQ29ubmVjdF9NYWNoaW5lVw0KK0NNX0NyZWF0ZV9EZXZOb2RlQQ0KK0NNX0NyZWF0ZV9EZXZOb2RlVw0KK0NNX0NyZWF0ZV9EZXZOb2RlX0V4QQ0KK0NNX0NyZWF0ZV9EZXZOb2RlX0V4Vw0KK0NNX0NyZWF0ZV9SYW5nZV9MaXN0DQorQ01fRGVsZXRlX0NsYXNzX0tleQ0KK0NNX0RlbGV0ZV9DbGFzc19LZXlfRXgNCitDTV9EZWxldGVfRGV2Tm9kZV9LZXkNCitDTV9EZWxldGVfRGV2Tm9kZV9LZXlfRXgNCitDTV9EZWxldGVfUmFuZ2UNCitDTV9EZXRlY3RfUmVzb3VyY2VfQ29uZmxpY3QNCitDTV9EZXRlY3RfUmVzb3VyY2VfQ29uZmxpY3RfRXgNCitDTV9EaXNhYmxlX0Rldk5vZGUNCitDTV9EaXNhYmxlX0Rldk5vZGVfRXgNCitDTV9EaXNjb25uZWN0X01hY2hpbmUNCitDTV9EdXBfUmFuZ2VfTGlzdA0KK0NNX0VuYWJsZV9EZXZOb2RlDQorQ01fRW5hYmxlX0Rldk5vZGVfRXgNCitDTV9FbnVtZXJhdGVfQ2xhc3Nlcw0KK0NNX0VudW1lcmF0ZV9DbGFzc2VzX0V4DQorQ01fRW51bWVyYXRlX0VudW1lcmF0b3JzQQ0KK0NNX0VudW1lcmF0ZV9FbnVtZXJhdG9yc1cNCitDTV9FbnVtZXJhdGVfRW51bWVyYXRvcnNfRXhBDQorQ01fRW51bWVyYXRlX0VudW1lcmF0b3JzX0V4Vw0KK0NNX0ZpbmRfUmFuZ2UNCitDTV9GaXJzdF9SYW5nZQ0KK0NNX0ZyZWVfTG9nX0NvbmYNCitDTV9GcmVlX0xvZ19Db25mX0V4DQorQ01fRnJlZV9Mb2dfQ29uZl9IYW5kbGUNCitDTV9GcmVlX1JhbmdlX0xpc3QNCitDTV9GcmVlX1Jlc19EZXMNCitDTV9GcmVlX1Jlc19EZXNfRXgNCitDTV9GcmVlX1Jlc19EZXNfSGFuZGxlDQorQ01fRnJlZV9SZXNvdXJjZV9Db25mbGljdF9IYW5kbGUNCitDTV9HZXRfQ2hpbGQNCitDTV9HZXRfQ2hpbGRfRXgNCitDTV9HZXRfQ2xhc3NfS2V5X05hbWVBDQorQ01fR2V0X0NsYXNzX0tleV9OYW1lVw0KK0NNX0dldF9DbGFzc19LZXlfTmFtZV9FeEENCitDTV9HZXRfQ2xhc3NfS2V5X05hbWVfRXhXDQorQ01fR2V0X0NsYXNzX05hbWVBDQorQ01fR2V0X0NsYXNzX05hbWVXDQorQ01fR2V0X0NsYXNzX05hbWVfRXhBDQorQ01fR2V0X0NsYXNzX05hbWVfRXhXDQorQ01fR2V0X0NsYXNzX1JlZ2lzdHJ5X1Byb3BlcnR5QQ0KK0NNX0dldF9DbGFzc19SZWdpc3RyeV9Qcm9wZXJ0eVcNCitDTV9HZXRfRGVwdGgNCitDTV9HZXRfRGVwdGhfRXgNCitDTV9HZXRfRGV2Tm9kZV9SZWdpc3RyeV9Qcm9wZXJ0eUENCitDTV9HZXRfRGV2Tm9kZV9SZWdpc3RyeV9Qcm9wZXJ0eVcNCitDTV9HZXRfRGV2Tm9kZV9SZWdpc3RyeV9Qcm9wZXJ0eV9FeEENCitDTV9HZXRfRGV2Tm9kZV9SZWdpc3RyeV9Qcm9wZXJ0eV9FeFcNCitDTV9HZXRfRGV2Tm9kZV9TdGF0dXMNCitDTV9HZXRfRGV2Tm9kZV9TdGF0dXNfRXgNCitDTV9HZXRfRGV2aWNlX0lEQQ0KK0NNX0dldF9EZXZpY2VfSURXDQorQ01fR2V0X0RldmljZV9JRF9FeEENCitDTV9HZXRfRGV2aWNlX0lEX0V4Vw0KK0NNX0dldF9EZXZpY2VfSURfTGlzdEENCitDTV9HZXRfRGV2aWNlX0lEX0xpc3RXDQorQ01fR2V0X0RldmljZV9JRF9MaXN0X0V4QQ0KK0NNX0dldF9EZXZpY2VfSURfTGlzdF9FeFcNCitDTV9HZXRfRGV2aWNlX0lEX0xpc3RfU2l6ZUENCitDTV9HZXRfRGV2aWNlX0lEX0xpc3RfU2l6ZVcNCitDTV9HZXRfRGV2aWNlX0lEX0xpc3RfU2l6ZV9FeEENCitDTV9HZXRfRGV2aWNlX0lEX0xpc3RfU2l6ZV9FeFcNCitDTV9HZXRfRGV2aWNlX0lEX1NpemUNCitDTV9HZXRfRGV2aWNlX0lEX1NpemVfRXgNCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9BbGlhc0ENCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9BbGlhc1cNCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9BbGlhc19FeEENCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9BbGlhc19FeFcNCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9MaXN0QQ0KK0NNX0dldF9EZXZpY2VfSW50ZXJmYWNlX0xpc3RXDQorQ01fR2V0X0RldmljZV9JbnRlcmZhY2VfTGlzdF9FeEENCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9MaXN0X0V4Vw0KK0NNX0dldF9EZXZpY2VfSW50ZXJmYWNlX0xpc3RfU2l6ZUENCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9MaXN0X1NpemVXDQorQ01fR2V0X0RldmljZV9JbnRlcmZhY2VfTGlzdF9TaXplX0V4QQ0KK0NNX0dldF9EZXZpY2VfSW50ZXJmYWNlX0xpc3RfU2l6ZV9FeFcNCitDTV9HZXRfRmlyc3RfTG9nX0NvbmYNCitDTV9HZXRfRmlyc3RfTG9nX0NvbmZfRXgNCitDTV9HZXRfR2xvYmFsX1N0YXRlDQorQ01fR2V0X0dsb2JhbF9TdGF0ZV9FeA0KK0NNX0dldF9IV19Qcm9mX0ZsYWdzQQ0KK0NNX0dldF9IV19Qcm9mX0ZsYWdzVw0KK0NNX0dldF9IV19Qcm9mX0ZsYWdzX0V4QQ0KK0NNX0dldF9IV19Qcm9mX0ZsYWdzX0V4Vw0KK0NNX0dldF9IYXJkd2FyZV9Qcm9maWxlX0luZm9BDQorQ01fR2V0X0hhcmR3YXJlX1Byb2ZpbGVfSW5mb1cNCitDTV9HZXRfSGFyZHdhcmVfUHJvZmlsZV9JbmZvX0V4QQ0KK0NNX0dldF9IYXJkd2FyZV9Qcm9maWxlX0luZm9fRXhXDQorQ01fR2V0X0xvZ19Db25mX1ByaW9yaXR5DQorQ01fR2V0X0xvZ19Db25mX1ByaW9yaXR5X0V4DQorQ01fR2V0X05leHRfTG9nX0NvbmYNCitDTV9HZXRfTmV4dF9Mb2dfQ29uZl9FeA0KK0NNX0dldF9OZXh0X1Jlc19EZXMNCitDTV9HZXRfTmV4dF9SZXNfRGVzX0V4DQorQ01fR2V0X1BhcmVudA0KK0NNX0dldF9QYXJlbnRfRXgNCitDTV9HZXRfUmVzX0Rlc19EYXRhDQorQ01fR2V0X1Jlc19EZXNfRGF0YV9FeA0KK0NNX0dldF9SZXNfRGVzX0RhdGFfU2l6ZQ0KK0NNX0dldF9SZXNfRGVzX0RhdGFfU2l6ZV9FeA0KK0NNX0dldF9SZXNvdXJjZV9Db25mbGljdF9Db3VudA0KK0NNX0dldF9SZXNvdXJjZV9Db25mbGljdF9EZXRhaWxzQQ0KK0NNX0dldF9SZXNvdXJjZV9Db25mbGljdF9EZXRhaWxzVw0KK0NNX0dldF9TaWJsaW5nDQorQ01fR2V0X1NpYmxpbmdfRXgNCitDTV9HZXRfVmVyc2lvbg0KK0NNX0dldF9WZXJzaW9uX0V4DQorQ01fSW50ZXJzZWN0X1JhbmdlX0xpc3QNCitDTV9JbnZlcnRfUmFuZ2VfTGlzdA0KK0NNX0lzX0RvY2tfU3RhdGlvbl9QcmVzZW50DQorQ01fSXNfRG9ja19TdGF0aW9uX1ByZXNlbnRfRXgNCitDTV9Mb2NhdGVfRGV2Tm9kZUENCitDTV9Mb2NhdGVfRGV2Tm9kZVcNCitDTV9Mb2NhdGVfRGV2Tm9kZV9FeEENCitDTV9Mb2NhdGVfRGV2Tm9kZV9FeFcNCitDTV9NZXJnZV9SYW5nZV9MaXN0DQorQ01fTW9kaWZ5X1Jlc19EZXMNCitDTV9Nb2RpZnlfUmVzX0Rlc19FeA0KK0NNX01vdmVfRGV2Tm9kZQ0KK0NNX01vdmVfRGV2Tm9kZV9FeA0KK0NNX05leHRfUmFuZ2UNCitDTV9PcGVuX0NsYXNzX0tleUENCitDTV9PcGVuX0NsYXNzX0tleVcNCitDTV9PcGVuX0NsYXNzX0tleV9FeEENCitDTV9PcGVuX0NsYXNzX0tleV9FeFcNCitDTV9PcGVuX0Rldk5vZGVfS2V5DQorQ01fT3Blbl9EZXZOb2RlX0tleV9FeA0KK0NNX1F1ZXJ5X0FuZF9SZW1vdmVfU3ViVHJlZUENCitDTV9RdWVyeV9BbmRfUmVtb3ZlX1N1YlRyZWVXDQorQ01fUXVlcnlfQW5kX1JlbW92ZV9TdWJUcmVlX0V4QQ0KK0NNX1F1ZXJ5X0FuZF9SZW1vdmVfU3ViVHJlZV9FeFcNCitDTV9RdWVyeV9BcmJpdHJhdG9yX0ZyZWVfRGF0YQ0KK0NNX1F1ZXJ5X0FyYml0cmF0b3JfRnJlZV9EYXRhX0V4DQorQ01fUXVlcnlfQXJiaXRyYXRvcl9GcmVlX1NpemUNCitDTV9RdWVyeV9BcmJpdHJhdG9yX0ZyZWVfU2l6ZV9FeA0KK0NNX1F1ZXJ5X1JlbW92ZV9TdWJUcmVlDQorQ01fUXVlcnlfUmVtb3ZlX1N1YlRyZWVfRXgNCitDTV9RdWVyeV9SZXNvdXJjZV9Db25mbGljdF9MaXN0DQorQ01fUmVlbnVtZXJhdGVfRGV2Tm9kZQ0KK0NNX1JlZW51bWVyYXRlX0Rldk5vZGVfRXgNCitDTV9SZWdpc3Rlcl9EZXZpY2VfRHJpdmVyDQorQ01fUmVnaXN0ZXJfRGV2aWNlX0RyaXZlcl9FeA0KK0NNX1JlZ2lzdGVyX0RldmljZV9JbnRlcmZhY2VBDQorQ01fUmVnaXN0ZXJfRGV2aWNlX0ludGVyZmFjZVcNCitDTV9SZWdpc3Rlcl9EZXZpY2VfSW50ZXJmYWNlX0V4QQ0KK0NNX1JlZ2lzdGVyX0RldmljZV9JbnRlcmZhY2VfRXhXDQorQ01fUmVtb3ZlX1N1YlRyZWUNCitDTV9SZW1vdmVfU3ViVHJlZV9FeA0KK0NNX1JlcXVlc3RfRWplY3RfUEMNCitDTV9SZXF1ZXN0X0VqZWN0X1BDX0V4DQorQ01fUnVuX0RldGVjdGlvbg0KK0NNX1J1bl9EZXRlY3Rpb25fRXgNCitDTV9TZXRfQ2xhc3NfUmVnaXN0cnlfUHJvcGVydHlBDQorQ01fU2V0X0NsYXNzX1JlZ2lzdHJ5X1Byb3BlcnR5Vw0KK0NNX1NldF9EZXZOb2RlX1Byb2JsZW0NCitDTV9TZXRfRGV2Tm9kZV9Qcm9ibGVtX0V4DQorQ01fU2V0X0Rldk5vZGVfUmVnaXN0cnlfUHJvcGVydHlBDQorQ01fU2V0X0Rldk5vZGVfUmVnaXN0cnlfUHJvcGVydHlXDQorQ01fU2V0X0Rldk5vZGVfUmVnaXN0cnlfUHJvcGVydHlfRXhBDQorQ01fU2V0X0Rldk5vZGVfUmVnaXN0cnlfUHJvcGVydHlfRXhXDQorQ01fU2V0X0hXX1Byb2YNCitDTV9TZXRfSFdfUHJvZl9FeA0KK0NNX1NldF9IV19Qcm9mX0ZsYWdzQQ0KK0NNX1NldF9IV19Qcm9mX0ZsYWdzVw0KK0NNX1NldF9IV19Qcm9mX0ZsYWdzX0V4QQ0KK0NNX1NldF9IV19Qcm9mX0ZsYWdzX0V4Vw0KK0NNX1NldHVwX0Rldk5vZGUNCitDTV9TZXR1cF9EZXZOb2RlX0V4DQorQ01fVGVzdF9SYW5nZV9BdmFpbGFibGUNCitDTV9Vbmluc3RhbGxfRGV2Tm9kZQ0KK0NNX1VuaW5zdGFsbF9EZXZOb2RlX0V4DQorQ01fVW5yZWdpc3Rlcl9EZXZpY2VfSW50ZXJmYWNlQQ0KK0NNX1VucmVnaXN0ZXJfRGV2aWNlX0ludGVyZmFjZVcNCitDTV9VbnJlZ2lzdGVyX0RldmljZV9JbnRlcmZhY2VfRXhBDQorQ01fVW5yZWdpc3Rlcl9EZXZpY2VfSW50ZXJmYWNlX0V4Vw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djaGtyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djaGtyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hODFlMmFkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2Noa3IuZGVmCkBAIC0wLDAgKzEsMjEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ2hlY2tlcnMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENoZWNrZXJzLmRsbA0KK0VYUE9SVFMNCitab25lQ2xpZW50TWFpbg0KK1pvbmVDbGllbnRFeGl0DQorWm9uZUNsaWVudEdhbWVBZGRLaWJpdHplcg0KK1pvbmVDbGllbnRHYW1lRGVsZXRlDQorWm9uZUNsaWVudEdhbWVOZXcNCitab25lQ2xpZW50R2FtZVByb2Nlc3NNZXNzYWdlDQorWm9uZUNsaWVudEdhbWVSZW1vdmVLaWJpdHplcg0KK1pvbmVDbGllbnRJbnRlcm5hbE5hbWUNCitab25lQ2xpZW50TWVzc2FnZUhhbmRsZXINCitab25lQ2xpZW50TmFtZQ0KK1pvbmVDbGllbnRWZXJzaW9uDQorWm9uZUdhbWVEbGxEZWxldGUNCitab25lR2FtZURsbEluaXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Y2hzYnJrci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y2hzYnJrci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjAxN2MxMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djaHNicmtyLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENoc0JyS3IuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENoc0JyS3IuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NodGJya3IuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2NodGJya3IuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRiOWVhZGIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y2h0YnJrci5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDSFRCUktSLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDSFRCUktSLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djaWFkbWluLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djaWFkbWluLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNTczOTAzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2NpYWRtaW4uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ0lBRE1JTi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ0lBRE1JTi5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Y2ljLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djaWMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFmYTc1NDgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y2ljLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGNpYy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgY2ljLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djaW9kbS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y2lvZG0uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM4OTgwY2QKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y2lvZG0uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY2lvZG0uRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNpb2RtLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djbGIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2NsYi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmIzM2UxNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djbGIuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY2xiLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBjbGIuZGxsDQorRVhQT1JUUw0KK0NsYkFkZERhdGENCitDbGJTZXRDb2x1bW5XaWR0aHMNCitDbGJTdHlsZVcNCitDbGJXbmRQcm9jDQorQ3VzdG9tQ29udHJvbEluZm9XDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NsYmNhdGV4LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djbGJjYXRleC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjE3MDhhZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djbGJjYXRleC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDT0xCQ0FULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDT0xCQ0FULmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djbGJjYXRxLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djbGJjYXRxLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ZTY4NzFmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2NsYmNhdHEuZGVmCkBAIC0wLDAgKzEsNjcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ0xCQ2F0US5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ0xCQ2F0US5ETEwNCitFWFBPUlRTDQorQWN0aXZhdG9yVXBkYXRlRm9ySXNSb3V0ZXJDaGFuZ2VzDQorOyB2b2lkIF9fc3RkY2FsbCBDbGVhckxpc3QoY2xhc3MgQ1N0cnVjdEFycmF5ICopDQorP0NsZWFyTGlzdEBAWUdYUEFWQ1N0cnVjdEFycmF5QEBAWg0KK0NvUmVnQ2xlYW51cA0KKzsgbG9uZyBfX3N0ZGNhbGwgQ3JlYXRlQ29tcG9uZW50TGlicmFyeVRTKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyxzdHJ1Y3QgSUNvbXBvbmVudFJlY29yZHMgKiAqKQ0KKz9DcmVhdGVDb21wb25lbnRMaWJyYXJ5VFNAQFlHSlBCR0pQQVBBVUlDb21wb25lbnRSZWNvcmRzQEBAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgRGF0YUNvbnZlcnQodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICosdm9pZCAqLHZvaWQgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhcix1bnNpZ25lZCBsb25nKQ0KKz9EYXRhQ29udmVydEBAWUdKR0dLUEFLUEFYMUtLMEVFS0BaDQorRGVsZXRlQWxsQWN0aXZhdG9yc0ZvckNsc2lkDQorOyB2b2lkIF9fc3RkY2FsbCBEZXN0cm95U3RnRGF0YWJhc2UoY2xhc3MgU3RnRGF0YWJhc2UgKikNCis/RGVzdHJveVN0Z0RhdGFiYXNlQEBZR1hQQVZTdGdEYXRhYmFzZUBAQFoNCitEb3duZ3JhZGVBUEwNCis7IGxvbmcgX19zdGRjYWxsIEdldERhdGFDb252ZXJzaW9uKHN0cnVjdCBJRGF0YUNvbnZlcnQgKiAqKQ0KKz9HZXREYXRhQ29udmVyc2lvbkBAWUdKUEFQQVVJRGF0YUNvbnZlcnRAQEBaDQorOyBjbGFzcyBDR2V0RGF0YUNvbnZlcnNpb24gKiBfX3N0ZGNhbGwgR2V0RGF0YUNvbnZlcnRPYmplY3Qodm9pZCkNCis/R2V0RGF0YUNvbnZlcnRPYmplY3RAQFlHUEFWQ0dldERhdGFDb252ZXJzaW9uQEBYWg0KK0dldEdsb2JhbEJhYnlKSVRFbmFibGVkDQorOyBsb25nIF9fc3RkY2FsbCBHZXRQcm9wVmFsdWUodW5zaWduZWQgc2hvcnQsbG9uZyAqLHZvaWQgKixpbnQsaW50ICosc3RydWN0IHRhZ0RCUFJPUCAmKQ0KKz9HZXRQcm9wVmFsdWVAQFlHSkdQQUpQQVhIUEFIQUFVdGFnREJQUk9QQEBAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgR2V0U3RnRGF0YWJhc2UoY2xhc3MgU3RnRGF0YWJhc2UgKiAqKQ0KKz9HZXRTdGdEYXRhYmFzZUBAWUdKUEFQQVZTdGdEYXRhYmFzZUBAQFoNCis7IHZvaWQgX19zdGRjYWxsIEluaXRFcnJvcnModW5zaWduZWQgbG9uZyAqKQ0KKz9Jbml0RXJyb3JzQEBZR1hQQUtAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgT3BlbkNvbXBvbmVudExpYnJhcnlTaGFyZWRUUyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyxzdHJ1Y3QgX1NFQ1VSSVRZX0FUVFJJQlVURVMgKixsb25nLHN0cnVjdCBJQ29tcG9uZW50UmVjb3JkcyAqICopDQorP09wZW5Db21wb25lbnRMaWJyYXJ5U2hhcmVkVFNAQFlHSlBCRzBLUEFVX1NFQ1VSSVRZX0FUVFJJQlVURVNAQEpQQVBBVUlDb21wb25lbnRSZWNvcmRzQEBAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgT3BlbkNvbXBvbmVudExpYnJhcnlUUyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcsc3RydWN0IElDb21wb25lbnRSZWNvcmRzICogKikNCis/T3BlbkNvbXBvbmVudExpYnJhcnlUU0BAWUdKUEJHSlBBUEFVSUNvbXBvbmVudFJlY29yZHNAQEBaDQorOyBsb25nIF9fY2RlY2wgUG9zdEVycm9yKGxvbmcsLi4uKQ0KKz9Qb3N0RXJyb3JAQFlBSkpaWg0KKzsgdm9pZCBfX3N0ZGNhbGwgU2h1dERvd25EYXRhQ29udmVyc2lvbih2b2lkKQ0KKz9TaHV0RG93bkRhdGFDb252ZXJzaW9uQEBZR1hYWg0KK1VwZGF0ZUZyb21BcHBDaGFuZ2UNCitVcGRhdGVGcm9tQ29tcG9uZW50Q2hhbmdlDQorQ0xTSURGcm9tU3RyaW5nQnlCaXRuZXNzDQorQ2hlY2tNZW1vcnlHYXRlcw0KK0NvbVBsdXNFbmFibGVQYXJ0aXRpb25zDQorQ29tUGx1c0VuYWJsZVJlbW90ZUFjY2Vzcw0KK0NvbVBsdXNNaWdyYXRlDQorQ29tUGx1c1BhcnRpdGlvbnNFbmFibGVkDQorQ29tUGx1c1JlbW90ZUFjY2Vzc0VuYWJsZWQNCitDcmVhdGVDb21wb25lbnRMaWJyYXJ5RXgNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldENhdGFsb2dPYmplY3QyDQorR2V0Q2F0YWxvZ09iamVjdA0KK0dldENvbXB1dGVyT2JqZWN0DQorR2V0U2ltcGxlVGFibGVEaXNwZW5zZXINCitJbnByb2NTZXJ2ZXIzMkZyb21TdHJpbmcNCitPcGVuQ29tcG9uZW50TGlicmFyeUV4DQorT3BlbkNvbXBvbmVudExpYnJhcnlPbk1lbUV4DQorT3BlbkNvbXBvbmVudExpYnJhcnlPblN0cmVhbUV4DQorT3BlbkNvbXBvbmVudExpYnJhcnlTaGFyZWRFeA0KK1NlcnZlckdldEFwcGxpY2F0aW9uVHlwZQ0KK1NldFNldHVwT3Blbg0KK1NldFNldHVwU2F2ZQ0KK1NldHVwT3Blbg0KK1NldHVwU2F2ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djbHVzYXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djbHVzYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNGNjM2Q2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2NsdXNhcGkuZGVmCkBAIC0wLDAgKzEsMTIzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENMVVNBUEkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENMVVNBUEkuZGxsDQorRVhQT1JUUw0KK0FkZENsdXN0ZXJSZXNvdXJjZURlcGVuZGVuY3kNCitBZGRDbHVzdGVyUmVzb3VyY2VOb2RlDQorQmFja3VwQ2x1c3RlckRhdGFiYXNlDQorQ2FuUmVzb3VyY2VCZURlcGVuZGVudA0KK0NoYW5nZUNsdXN0ZXJSZXNvdXJjZUdyb3VwDQorQ2xvc2VDbHVzdGVyDQorQ2xvc2VDbHVzdGVyR3JvdXANCitDbG9zZUNsdXN0ZXJOZXRJbnRlcmZhY2UNCitDbG9zZUNsdXN0ZXJOZXR3b3JrDQorQ2xvc2VDbHVzdGVyTm9kZQ0KK0Nsb3NlQ2x1c3Rlck5vdGlmeVBvcnQNCitDbG9zZUNsdXN0ZXJSZXNvdXJjZQ0KK0NsdXN0ZXJDbG9zZUVudW0NCitDbHVzdGVyQ29udHJvbA0KK0NsdXN0ZXJFbnVtDQorQ2x1c3RlckdldEVudW1Db3VudA0KK0NsdXN0ZXJHcm91cENsb3NlRW51bQ0KK0NsdXN0ZXJHcm91cENvbnRyb2wNCitDbHVzdGVyR3JvdXBFbnVtDQorQ2x1c3Rlckdyb3VwR2V0RW51bUNvdW50DQorQ2x1c3Rlckdyb3VwT3BlbkVudW0NCitDbHVzdGVyTmV0SW50ZXJmYWNlQ29udHJvbA0KK0NsdXN0ZXJOZXR3b3JrQ2xvc2VFbnVtDQorQ2x1c3Rlck5ldHdvcmtDb250cm9sDQorQ2x1c3Rlck5ldHdvcmtFbnVtDQorQ2x1c3Rlck5ldHdvcmtHZXRFbnVtQ291bnQNCitDbHVzdGVyTmV0d29ya09wZW5FbnVtDQorQ2x1c3Rlck5vZGVDbG9zZUVudW0NCitDbHVzdGVyTm9kZUNvbnRyb2wNCitDbHVzdGVyTm9kZUVudW0NCitDbHVzdGVyTm9kZUdldEVudW1Db3VudA0KK0NsdXN0ZXJOb2RlT3BlbkVudW0NCitDbHVzdGVyT3BlbkVudW0NCitDbHVzdGVyUmVnQ2xvc2VLZXkNCitDbHVzdGVyUmVnQ3JlYXRlS2V5DQorQ2x1c3RlclJlZ0RlbGV0ZUtleQ0KK0NsdXN0ZXJSZWdEZWxldGVWYWx1ZQ0KK0NsdXN0ZXJSZWdFbnVtS2V5DQorQ2x1c3RlclJlZ0VudW1WYWx1ZQ0KK0NsdXN0ZXJSZWdHZXRLZXlTZWN1cml0eQ0KK0NsdXN0ZXJSZWdPcGVuS2V5DQorQ2x1c3RlclJlZ1F1ZXJ5SW5mb0tleQ0KK0NsdXN0ZXJSZWdRdWVyeVZhbHVlDQorQ2x1c3RlclJlZ1NldEtleVNlY3VyaXR5DQorQ2x1c3RlclJlZ1NldFZhbHVlDQorQ2x1c3RlclJlc291cmNlQ2xvc2VFbnVtDQorQ2x1c3RlclJlc291cmNlQ29udHJvbA0KK0NsdXN0ZXJSZXNvdXJjZUVudW0NCitDbHVzdGVyUmVzb3VyY2VHZXRFbnVtQ291bnQNCitDbHVzdGVyUmVzb3VyY2VPcGVuRW51bQ0KK0NsdXN0ZXJSZXNvdXJjZVR5cGVDbG9zZUVudW0NCitDbHVzdGVyUmVzb3VyY2VUeXBlQ29udHJvbA0KK0NsdXN0ZXJSZXNvdXJjZVR5cGVFbnVtDQorQ2x1c3RlclJlc291cmNlVHlwZUdldEVudW1Db3VudA0KK0NsdXN0ZXJSZXNvdXJjZVR5cGVPcGVuRW51bQ0KK0NyZWF0ZUNsdXN0ZXJHcm91cA0KK0NyZWF0ZUNsdXN0ZXJOb3RpZnlQb3J0DQorQ3JlYXRlQ2x1c3RlclJlc291cmNlDQorQ3JlYXRlQ2x1c3RlclJlc291cmNlVHlwZQ0KK0RlbGV0ZUNsdXN0ZXJHcm91cA0KK0RlbGV0ZUNsdXN0ZXJSZXNvdXJjZQ0KK0RlbGV0ZUNsdXN0ZXJSZXNvdXJjZVR5cGUNCitFdmljdENsdXN0ZXJOb2RlDQorRXZpY3RDbHVzdGVyTm9kZUV4DQorRmFpbENsdXN0ZXJSZXNvdXJjZQ0KK0dldENsdXN0ZXJGcm9tR3JvdXANCitHZXRDbHVzdGVyRnJvbU5ldEludGVyZmFjZQ0KK0dldENsdXN0ZXJGcm9tTmV0d29yaw0KK0dldENsdXN0ZXJGcm9tTm9kZQ0KK0dldENsdXN0ZXJGcm9tUmVzb3VyY2UNCitHZXRDbHVzdGVyR3JvdXBLZXkNCitHZXRDbHVzdGVyR3JvdXBTdGF0ZQ0KK0dldENsdXN0ZXJJbmZvcm1hdGlvbg0KK0dldENsdXN0ZXJLZXkNCitHZXRDbHVzdGVyTmV0SW50ZXJmYWNlDQorR2V0Q2x1c3Rlck5ldEludGVyZmFjZUtleQ0KK0dldENsdXN0ZXJOZXRJbnRlcmZhY2VTdGF0ZQ0KK0dldENsdXN0ZXJOZXR3b3JrSWQNCitHZXRDbHVzdGVyTmV0d29ya0tleQ0KK0dldENsdXN0ZXJOZXR3b3JrU3RhdGUNCitHZXRDbHVzdGVyTm9kZUlkDQorR2V0Q2x1c3Rlck5vZGVLZXkNCitHZXRDbHVzdGVyTm9kZVN0YXRlDQorR2V0Q2x1c3Rlck5vdGlmeQ0KK0dldENsdXN0ZXJRdW9ydW1SZXNvdXJjZQ0KK0dldENsdXN0ZXJSZXNvdXJjZUtleQ0KK0dldENsdXN0ZXJSZXNvdXJjZU5ldHdvcmtOYW1lDQorR2V0Q2x1c3RlclJlc291cmNlU3RhdGUNCitHZXRDbHVzdGVyUmVzb3VyY2VUeXBlS2V5DQorR2V0Tm9kZUNsdXN0ZXJTdGF0ZQ0KK01vdmVDbHVzdGVyR3JvdXANCitPZmZsaW5lQ2x1c3Rlckdyb3VwDQorT2ZmbGluZUNsdXN0ZXJSZXNvdXJjZQ0KK09ubGluZUNsdXN0ZXJHcm91cA0KK09ubGluZUNsdXN0ZXJSZXNvdXJjZQ0KK09wZW5DbHVzdGVyDQorT3BlbkNsdXN0ZXJHcm91cA0KK09wZW5DbHVzdGVyTmV0SW50ZXJmYWNlDQorT3BlbkNsdXN0ZXJOZXR3b3JrDQorT3BlbkNsdXN0ZXJOb2RlDQorT3BlbkNsdXN0ZXJSZXNvdXJjZQ0KK1BhdXNlQ2x1c3Rlck5vZGUNCitSZWdpc3RlckNsdXN0ZXJOb3RpZnkNCitSZW1vdmVDbHVzdGVyUmVzb3VyY2VEZXBlbmRlbmN5DQorUmVtb3ZlQ2x1c3RlclJlc291cmNlTm9kZQ0KK1Jlc3RvcmVDbHVzdGVyRGF0YWJhc2UNCitSZXN1bWVDbHVzdGVyTm9kZQ0KK1NldENsdXN0ZXJHcm91cE5hbWUNCitTZXRDbHVzdGVyR3JvdXBOb2RlTGlzdA0KK1NldENsdXN0ZXJOYW1lDQorU2V0Q2x1c3Rlck5ldHdvcmtOYW1lDQorU2V0Q2x1c3Rlck5ldHdvcmtQcmlvcml0eU9yZGVyDQorU2V0Q2x1c3RlclF1b3J1bVJlc291cmNlDQorU2V0Q2x1c3RlclJlc291cmNlTmFtZQ0KK1NldENsdXN0ZXJTZXJ2aWNlQWNjb3VudFBhc3N3b3JkDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NtY2ZnMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2NtY2ZnMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJjNjUxNzYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y21jZmczMi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBjbWNmZzMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBjbWNmZzMyLmRsbA0KK0VYUE9SVFMNCitDbXN0cEV4dGVuc2lvblByb2MNCitDTUNvbmZpZw0KK19DTUNvbmZpZ0A4DQorQ01Db25maWdFeA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djbWRpYWwzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y21kaWFsMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYxNWFhMzgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y21kaWFsMzIuZGVmCkBAIC0wLDAgKzEsMjEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY21kaWFsMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNtZGlhbDMyLmRsbA0KK0VYUE9SVFMNCitBdXRvRGlhbEZ1bmMNCitJbmV0RGlhbEhhbmRsZXINCitfQXV0b0RpYWxGdW5jQDE2DQorQ21DdXN0b21EaWFsRGxnDQorQ21DdXN0b21IYW5nVXANCitDbVJlQ29ubmVjdA0KK0dldEN1c3RvbVByb3BlcnR5DQorX0luZXREaWFsSGFuZGxlckAxNg0KK1Jhc0N1c3RvbURlbGV0ZUVudHJ5Tm90aWZ5DQorUmFzQ3VzdG9tRGlhbA0KK1Jhc0N1c3RvbURpYWxEbGcNCitSYXNDdXN0b21FbnRyeURsZw0KK1Jhc0N1c3RvbUhhbmdVcA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djbXBiazMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djbXBiazMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYjU1YWM3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2NtcGJrMzIuZGVmCkBAIC0wLDAgKzEsMzEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY21wYmszMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgY21wYmszMi5kbGwNCitFWFBPUlRTDQorUGhvbmVCb29rQ29weUZpbHRlcg0KK1Bob25lQm9va0VudW1Db3VudHJpZXMNCitQaG9uZUJvb2tFbnVtTnVtYmVycw0KK1Bob25lQm9va0VudW1OdW1iZXJzV2l0aFJlZ2lvbnNaZXJvDQorUGhvbmVCb29rRW51bVJlZ2lvbnMNCitQaG9uZUJvb2tGcmVlRmlsdGVyDQorUGhvbmVCb29rR2V0Q291bnRyeUlkDQorUGhvbmVCb29rR2V0Q291bnRyeU5hbWVBDQorUGhvbmVCb29rR2V0Q291bnRyeU5hbWVXDQorUGhvbmVCb29rR2V0Q3VycmVudENvdW50cnlJZA0KK1Bob25lQm9va0dldFBob25lQ2Fub25pY2FsQQ0KK1Bob25lQm9va0dldFBob25lRFVOQQ0KK1Bob25lQm9va0dldFBob25lRGVzY0ENCitQaG9uZUJvb2tHZXRQaG9uZURpc3BBDQorUGhvbmVCb29rR2V0UGhvbmVOb25DYW5vbmljYWxBDQorUGhvbmVCb29rR2V0UGhvbmVUeXBlDQorUGhvbmVCb29rR2V0UmVnaW9uTmFtZUENCitQaG9uZUJvb2tIYXNQaG9uZVR5cGUNCitQaG9uZUJvb2tMb2FkDQorUGhvbmVCb29rTWF0Y2hGaWx0ZXINCitQaG9uZUJvb2tNZXJnZUNoYW5nZXMNCitQaG9uZUJvb2tQYXJzZUluZm9BDQorUGhvbmVCb29rVW5sb2FkDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2Ntc2V0QUNMLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djbXNldEFDTC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjJjMzk0NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djbXNldEFDTC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBjbVNldEFDTC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgY21TZXRBQ0wuZGxsDQorRVhQT1JUUw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djbXV0aWwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2NtdXRpbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTBlOTFlNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djbXV0aWwuZGVmCkBAIC0wLDAgKzEsMjU0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGNtdXRpbC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgY211dGlsLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSW5pQTo6Q0luaUEoc3RydWN0IEhJTlNUQU5DRV9fICosY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqKQ0KKz8/MENJbmlBQEBRQUVAUEFVSElOU1RBTkNFX19AQFBCRDExMUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0luaVc6OkNJbmlXKHN0cnVjdCBISU5TVEFOQ0VfXyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wQ0luaVdAQFFBRUBQQVVISU5TVEFOQ0VfX0BAUEJHMTExQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUmFuZG9tOjpDUmFuZG9tKHVuc2lnbmVkIGludCkNCis/PzBDUmFuZG9tQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1JhbmRvbTo6Q1JhbmRvbSh2b2lkKQ0KKz8/MENSYW5kb21AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENtTG9nRmlsZTo6Q21Mb2dGaWxlKHZvaWQpDQorPz8wQ21Mb2dGaWxlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSW5pQTo6fkNJbmlBKHZvaWQpDQorPz8xQ0luaUFAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbmlXOjp+Q0luaVcodm9pZCkNCis/PzFDSW5pV0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ21Mb2dGaWxlOjp+Q21Mb2dGaWxlKHZvaWQpDQorPz8xQ21Mb2dGaWxlQEBRQUVAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0luaUEgJiBfX3RoaXNjYWxsIENJbmlBOjpvcGVyYXRvcj0oY2xhc3MgQ0luaUEgY29uc3QgJikNCis/PzRDSW5pQUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJbmlXICYgX190aGlzY2FsbCBDSW5pVzo6b3BlcmF0b3I9KGNsYXNzIENJbmlXIGNvbnN0ICYpDQorPz80Q0luaVdAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUmFuZG9tICYgX190aGlzY2FsbCBDUmFuZG9tOjpvcGVyYXRvcj0oY2xhc3MgQ1JhbmRvbSBjb25zdCAmKQ0KKz8/NENSYW5kb21AQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDbUxvZ0ZpbGUgJiBfX3RoaXNjYWxsIENtTG9nRmlsZTo6b3BlcmF0b3I9KGNsYXNzIENtTG9nRmlsZSBjb25zdCAmKQ0KKz8/NENtTG9nRmlsZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5pQTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GQ0luaUFAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0luaVc6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRkNJbmlXQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENtTG9nRmlsZTo6QmFubmVyKHZvaWQpDQorP0Jhbm5lckBDbUxvZ0ZpbGVAQFFBRVhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDSW5pQTo6Q0luaUFfRGVsZXRlRW50cnlGcm9tUmVnKHN0cnVjdCBIS0VZX18gKixjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqKWNvbnN0IA0KKz9DSW5pQV9EZWxldGVFbnRyeUZyb21SZWdAQ0luaUFAQElCRUhQQVVIS0VZX19AQFBCRDFAWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDSW5pQTo6Q0luaUFfR2V0RW50cnlGcm9tUmVnKHN0cnVjdCBIS0VZX18gKixjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyljb25zdCANCis/Q0luaUFfR2V0RW50cnlGcm9tUmVnQENJbmlBQEBJQkVQQUVQQVVIS0VZX19AQFBCRDFLS0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIENJbmlBOjpDSW5pQV9Xcml0ZUVudHJ5VG9SZWcoc3RydWN0IEhLRVlfXyAqLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosdW5zaWduZWQgY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyljb25zdCANCis/Q0luaUFfV3JpdGVFbnRyeVRvUmVnQENJbmlBQEBJQkVIUEFVSEtFWV9fQEBQQkQxUEJFS0tAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDSW5pVzo6Q0luaVdfRGVsZXRlRW50cnlGcm9tUmVnKHN0cnVjdCBIS0VZX18gKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP0NJbmlXX0RlbGV0ZUVudHJ5RnJvbVJlZ0BDSW5pV0BASUJFSFBBVUhLRVlfX0BAUEJHMUBaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENJbmlXOjpDSW5pV19HZXRFbnRyeUZyb21SZWcoc3RydWN0IEhLRVlfXyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP0NJbmlXX0dldEVudHJ5RnJvbVJlZ0BDSW5pV0BASUJFUEFFUEFVSEtFWV9fQEBQQkcxS0tAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDSW5pVzo6Q0luaVdfV3JpdGVFbnRyeVRvUmVnKHN0cnVjdCBIS0VZX18gKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyljb25zdCANCis/Q0luaVdfV3JpdGVFbnRyeVRvUmVnQENJbmlXQEBJQkVIUEFVSEtFWV9fQEBQQkcxUEJFS0tAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ0luaUE6OkNJbmlfU2V0RmlsZShjaGFyICogKixjaGFyIGNvbnN0ICopDQorP0NJbmlfU2V0RmlsZUBDSW5pQUBAS0dYUEFQQURQQkRAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ0luaVc6OkNJbmlfU2V0RmlsZSh1bnNpZ25lZCBzaG9ydCAqICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/Q0luaV9TZXRGaWxlQENJbmlXQEBLR1hQQVBBR1BCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5pQTo6Q2xlYXIodm9pZCkNCis/Q2xlYXJAQ0luaUFAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0luaVc6OkNsZWFyKHZvaWQpDQorP0NsZWFyQENJbmlXQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENtTG9nRmlsZTo6Q2xlYXIoaW50KQ0KKz9DbGVhckBDbUxvZ0ZpbGVAQFFBRVhIQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBDbUxvZ0ZpbGU6OkNsb3NlRmlsZSh2b2lkKQ0KKz9DbG9zZUZpbGVAQ21Mb2dGaWxlQEBBQUVKWFoNCitDbUF0b2xBDQorQ21BdG9sVw0KK0NtQnVpbGRGdWxsUGF0aEZyb21SZWxhdGl2ZUENCitDbUJ1aWxkRnVsbFBhdGhGcm9tUmVsYXRpdmVXDQorQ21Db21wYXJlU3RyaW5nQQ0KK0NtQ29tcGFyZVN0cmluZ1cNCitDbUNvbnZlcnRSZWxhdGl2ZVBhdGhBDQorQ21Db252ZXJ0UmVsYXRpdmVQYXRoVw0KK0NtRW5kT2ZTdHJBDQorQ21FbmRPZlN0clcNCitDbUZtdE1zZ0ENCitDbUZtdE1zZ1cNCitDbUZyZWUNCitDbUlzRGlnaXRBDQorQ21Jc0RpZ2l0Vw0KK0NtSXNTcGFjZUENCitDbUlzU3BhY2VXDQorQ21Mb2FkSWNvbkENCitDbUxvYWRJY29uVw0KK0NtTG9hZEltYWdlDQorQ21Mb2FkSW1hZ2VBDQorQ21Mb2FkSW1hZ2VXDQorQ21Mb2FkU21hbGxJY29uQQ0KK0NtTG9hZFNtYWxsSWNvblcNCitDbUxvYWRTdHJpbmdBDQorQ21Mb2FkU3RyaW5nVw0KK0NtTWFsbG9jDQorQ21Nb3ZlTWVtb3J5DQorQ21QYXJzZVBhdGhBDQorQ21QYXJzZVBhdGhXDQorQ21SZWFsbG9jDQorQ21TdHJDYXRBbGxvY0ENCitDbVN0ckNhdEFsbG9jVw0KK0NtU3RyQ3B5QWxsb2NBDQorQ21TdHJDcHlBbGxvY1cNCitDbVN0clN0ckENCitDbVN0clN0clcNCitDbVN0clRyaW1BDQorQ21TdHJUcmltVw0KK0NtU3RyY2hyQQ0KK0NtU3RyY2hyVw0KK0NtU3RyaXBGaWxlTmFtZUENCitDbVN0cmlwRmlsZU5hbWVXDQorQ21TdHJpcFBhdGhBbmRFeHRBDQorQ21TdHJpcFBhdGhBbmRFeHRXDQorQ21TdHJyY2hyQQ0KK0NtU3RycmNoclcNCitDbVN0cnRva0ENCitDbVN0cnRva1cNCitDbVdpbkhlbHANCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENtTG9nRmlsZTo6RGVJbml0KHZvaWQpDQorP0RlSW5pdEBDbUxvZ0ZpbGVAQFFBRUpYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENtTG9nRmlsZTo6Rm9ybWF0V3JpdGUoZW51bSBfQ01MT0dfSVRFTSx1bnNpZ25lZCBzaG9ydCAqKQ0KKz9Gb3JtYXRXcml0ZUBDbUxvZ0ZpbGVAQEFBRVhXNF9DTUxPR19JVEVNQEBQQUdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSW5pQTo6R1BQQihjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqLGludCljb25zdCANCis/R1BQQkBDSW5pQUBAUUJFSFBCRDBIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0luaVc6OkdQUEIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCljb25zdCANCis/R1BQQkBDSW5pV0BAUUJFSFBCRzBIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENJbmlBOjpHUFBJKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZyljb25zdCANCis/R1BQSUBDSW5pQUBAUUJFS1BCRDBLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENJbmlXOjpHUFBJKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9HUFBJQENJbmlXQEBRQkVLUEJHMEtAWg0KKzsgcHVibGljOiBjaGFyICogX190aGlzY2FsbCBDSW5pQTo6R1BQUyhjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKiljb25zdCANCis/R1BQU0BDSW5pQUBAUUJFUEFEUEJEMDBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ0luaVc6OkdQUFModW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP0dQUFNAQ0luaVdAQFFCRVBBR1BCRzAwQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1JhbmRvbTo6R2VuZXJhdGUodm9pZCkNCis/R2VuZXJhdGVAQ1JhbmRvbUBAUUFFSFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIENJbmlBOjpHZXRGaWxlKHZvaWQpY29uc3QgDQorP0dldEZpbGVAQ0luaUFAQFFCRVBCRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBDSW5pVzo6R2V0RmlsZSh2b2lkKWNvbnN0IA0KKz9HZXRGaWxlQENJbmlXQEBRQkVQQkdYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3RoaXNjYWxsIENJbmlBOjpHZXRISW5zdCh2b2lkKWNvbnN0IA0KKz9HZXRISW5zdEBDSW5pQUBAUUJFUEFVSElOU1RBTkNFX19AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBISU5TVEFOQ0VfXyAqIF9fdGhpc2NhbGwgQ0luaVc6OkdldEhJbnN0KHZvaWQpY29uc3QgDQorP0dldEhJbnN0QENJbmlXQEBRQkVQQVVISU5TVEFOQ0VfX0BAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIENtTG9nRmlsZTo6R2V0TG9nRmlsZVBhdGgodm9pZCkNCis/R2V0TG9nRmlsZVBhdGhAQ21Mb2dGaWxlQEBRQUVQQkdYWg0KK0dldE9TQnVpbGROdW1iZXINCitHZXRPU01ham9yVmVyc2lvbg0KK0dldE9TVmVyc2lvbg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBDSW5pQTo6R2V0UHJpbWFyeUZpbGUodm9pZCljb25zdCANCis/R2V0UHJpbWFyeUZpbGVAQ0luaUFAQFFCRVBCRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBDSW5pVzo6R2V0UHJpbWFyeUZpbGUodm9pZCljb25zdCANCis/R2V0UHJpbWFyeUZpbGVAQ0luaVdAQFFCRVBCR1haDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIENJbmlBOjpHZXRQcmltYXJ5UmVnUGF0aCh2b2lkKWNvbnN0IA0KKz9HZXRQcmltYXJ5UmVnUGF0aEBDSW5pQUBAUUJFUEJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIENJbmlXOjpHZXRQcmltYXJ5UmVnUGF0aCh2b2lkKWNvbnN0IA0KKz9HZXRQcmltYXJ5UmVnUGF0aEBDSW5pV0BAUUJFUEJHWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgQ0luaUE6OkdldFJlZ1BhdGgodm9pZCljb25zdCANCis/R2V0UmVnUGF0aEBDSW5pQUBAUUJFUEJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIENJbmlXOjpHZXRSZWdQYXRoKHZvaWQpY29uc3QgDQorP0dldFJlZ1BhdGhAQ0luaVdAQFFCRVBCR1haDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIENJbmlBOjpHZXRTZWN0aW9uKHZvaWQpY29uc3QgDQorP0dldFNlY3Rpb25AQ0luaUFAQFFCRVBCRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBDSW5pVzo6R2V0U2VjdGlvbih2b2lkKWNvbnN0IA0KKz9HZXRTZWN0aW9uQENJbmlXQEBRQkVQQkdYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JhbmRvbTo6SW5pdCh1bnNpZ25lZCBsb25nKQ0KKz9Jbml0QENSYW5kb21AQFFBRVhLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENtTG9nRmlsZTo6SW5pdChzdHJ1Y3QgSElOU1RBTkNFX18gKixpbnQsY2hhciBjb25zdCAqKQ0KKz9Jbml0QENtTG9nRmlsZUBAUUFFSlBBVUhJTlNUQU5DRV9fQEBIUEJEQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENtTG9nRmlsZTo6SW5pdChzdHJ1Y3QgSElOU1RBTkNFX18gKixpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/SW5pdEBDbUxvZ0ZpbGVAQFFBRUpQQVVISU5TVEFOQ0VfX0BASFBCR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENtTG9nRmlsZTo6SXNFbmFibGVkKHZvaWQpDQorP0lzRW5hYmxlZEBDbUxvZ0ZpbGVAQFFBRUhYWg0KK0lzRmFyRWFzdE5vbk9TUjJXaW45NQ0KK0lzTG9nb25Bc1N5c3RlbQ0KKzsgcHJvdGVjdGVkOiBjaGFyICogX190aGlzY2FsbCBDSW5pQTo6TG9hZEVudHJ5KGNoYXIgY29uc3QgKiljb25zdCANCis/TG9hZEVudHJ5QENJbmlBQEBJQkVQQURQQkRAWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ0luaVc6OkxvYWRFbnRyeSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9Mb2FkRW50cnlAQ0luaVdAQElCRVBBR1BCR0BaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIENJbmlBOjpMb2FkU2VjdGlvbihjaGFyIGNvbnN0ICopY29uc3QgDQorP0xvYWRTZWN0aW9uQENJbmlBQEBRQkVQQURQQkRAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ0luaVc6OkxvYWRTZWN0aW9uKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP0xvYWRTZWN0aW9uQENJbmlXQEBRQkVQQUdQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ21Mb2dGaWxlOjpMb2coZW51bSBfQ01MT0dfSVRFTSwuLi4pDQorP0xvZ0BDbUxvZ0ZpbGVAQFFBQVhXNF9DTUxPR19JVEVNQEBaWg0KK01ha2VCb2xkDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgQ21Mb2dGaWxlOjpPcGVuRmlsZSh2b2lkKQ0KKz9PcGVuRmlsZUBDbUxvZ0ZpbGVAQEFBRUpYWg0KK1JlbGVhc2VCb2xkDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5pQTo6U2V0RW50cnkoY2hhciBjb25zdCAqKQ0KKz9TZXRFbnRyeUBDSW5pQUBAUUFFWFBCREBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5pVzo6U2V0RW50cnkodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0RW50cnlAQ0luaVdAQFFBRVhQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0luaUE6OlNldEVudHJ5RnJvbUlkeCh1bnNpZ25lZCBsb25nKQ0KKz9TZXRFbnRyeUZyb21JZHhAQ0luaUFAQFFBRVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENJbmlXOjpTZXRFbnRyeUZyb21JZHgodW5zaWduZWQgbG9uZykNCis/U2V0RW50cnlGcm9tSWR4QENJbmlXQEBRQUVYS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5pQTo6U2V0RmlsZShjaGFyIGNvbnN0ICopDQorP1NldEZpbGVAQ0luaUFAQFFBRVhQQkRAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0luaVc6OlNldEZpbGUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0RmlsZUBDSW5pV0BAUUFFWFBCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5pQTo6U2V0SEluc3Qoc3RydWN0IEhJTlNUQU5DRV9fICopDQorP1NldEhJbnN0QENJbmlBQEBRQUVYUEFVSElOU1RBTkNFX19AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5pVzo6U2V0SEluc3Qoc3RydWN0IEhJTlNUQU5DRV9fICopDQorP1NldEhJbnN0QENJbmlXQEBRQUVYUEFVSElOU1RBTkNFX19AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5pQTo6U2V0SUNTRGF0YVBhdGgoY2hhciBjb25zdCAqKQ0KKz9TZXRJQ1NEYXRhUGF0aEBDSW5pQUBAUUFFWFBCREBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5pVzo6U2V0SUNTRGF0YVBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0SUNTRGF0YVBhdGhAQ0luaVdAQFFBRVhQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ21Mb2dGaWxlOjpTZXRQYXJhbXMoaW50LHVuc2lnbmVkIGxvbmcsY2hhciBjb25zdCAqKQ0KKz9TZXRQYXJhbXNAQ21Mb2dGaWxlQEBRQUVKSEtQQkRAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ21Mb2dGaWxlOjpTZXRQYXJhbXMoaW50LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0UGFyYW1zQENtTG9nRmlsZUBAUUFFSkhLUEJHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENJbmlBOjpTZXRQcmltYXJ5RmlsZShjaGFyIGNvbnN0ICopDQorP1NldFByaW1hcnlGaWxlQENJbmlBQEBRQUVYUEJEQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENJbmlXOjpTZXRQcmltYXJ5RmlsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRQcmltYXJ5RmlsZUBDSW5pV0BAUUFFWFBCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5pQTo6U2V0UHJpbWFyeVJlZ1BhdGgoY2hhciBjb25zdCAqKQ0KKz9TZXRQcmltYXJ5UmVnUGF0aEBDSW5pQUBAUUFFWFBCREBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5pVzo6U2V0UHJpbWFyeVJlZ1BhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0UHJpbWFyeVJlZ1BhdGhAQ0luaVdAQFFBRVhQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0luaUE6OlNldFJlYWRJQ1NEYXRhKGludCkNCis/U2V0UmVhZElDU0RhdGFAQ0luaUFAQFFBRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENJbmlXOjpTZXRSZWFkSUNTRGF0YShpbnQpDQorP1NldFJlYWRJQ1NEYXRhQENJbmlXQEBRQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5pQTo6U2V0UmVnUGF0aChjaGFyIGNvbnN0ICopDQorP1NldFJlZ1BhdGhAQ0luaUFAQFFBRVhQQkRAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0luaVc6OlNldFJlZ1BhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0UmVnUGF0aEBDSW5pV0BAUUFFWFBCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5pQTo6U2V0U2VjdGlvbihjaGFyIGNvbnN0ICopDQorP1NldFNlY3Rpb25AQ0luaUFAQFFBRVhQQkRAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0luaVc6OlNldFNlY3Rpb24odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0U2VjdGlvbkBDSW5pV0BAUUFFWFBCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5pQTo6U2V0V3JpdGVJQ1NEYXRhKGludCkNCis/U2V0V3JpdGVJQ1NEYXRhQENJbmlBQEBRQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5pVzo6U2V0V3JpdGVJQ1NEYXRhKGludCkNCis/U2V0V3JpdGVJQ1NEYXRhQENJbmlXQEBRQUVYSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDbUxvZ0ZpbGU6OlN0YXJ0KGludCkNCis/U3RhcnRAQ21Mb2dGaWxlQEBRQUVKSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDbUxvZ0ZpbGU6OlN0b3Aodm9pZCkNCis/U3RvcEBDbUxvZ0ZpbGVAQFFBRUpYWg0KK1N6VG9Xeg0KK1N6VG9XeldpdGhBbGxvYw0KK1VwZGF0ZUZvbnQNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENJbmlBOjpXUFBCKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosaW50KQ0KKz9XUFBCQENJbmlBQEBRQUVYUEJEMEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0luaVc6OldQUEIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/V1BQQkBDSW5pV0BAUUFFWFBCRzBIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENJbmlBOjpXUFBJKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/V1BQSUBDSW5pQUBAUUFFWFBCRDBLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENJbmlXOjpXUFBJKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9XUFBJQENJbmlXQEBRQUVYUEJHMEtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0luaUE6OldQUFMoY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICopDQorP1dQUFNAQ0luaUFAQFFBRVhQQkQwMEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5pVzo6V1BQUyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/V1BQU0BDSW5pV0BAUUFFWFBCRzAwQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBDbUxvZ0ZpbGU6OldyaXRlKHVuc2lnbmVkIHNob3J0ICopDQorP1dyaXRlQENtTG9nRmlsZUBAQUFFSlBBR0BaDQorV3pUb1N6DQorV3pUb1N6V2l0aEFsbG9jDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NuYmptb24uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2NuYmptb24uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQyMmZlMWIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y25iam1vbi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENOQkpNT04uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENOQkpNT04uZGxsDQorRVhQT1JUUw0KK0luaXRpYWxpemVQcmludE1vbml0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Y25ldGNmZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y25ldGNmZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTVmNmM1MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djbmV0Y2ZnLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENORVRDRkcuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENORVRDRkcuZGxsDQorRVhQT1JUUw0KK0luZXRDb25maWdTeXN0ZW0NCitJbmV0TmVlZE1vZGVtDQorSW5ldE5lZWRTeXN0ZW1Db21wb25lbnRzDQorSW5ldFN0YXJ0U2VydmljZXMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Y252ZmF0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djbnZmYXQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ3ZmUwNDYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y252ZmF0LmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENVRkFULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDVUZBVC5kbGwNCitFWFBPUlRTDQorSXNDb252ZXJzaW9uQXZhaWxhYmxlDQorQ29udmVydEZBVA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djb2xiYWN0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djb2xiYWN0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNzM1OGJiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2NvbGJhY3QuZGVmCkBAIC0wLDAgKzEsMTUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY29sYmFjdC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgY29sYmFjdC5ETEwNCitFWFBPUlRTDQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitHZXRDbGFzc0luZm9Gb3JDdXJyZW50VXNlcg0KK0dldERlZmF1bHRQYXJ0aXRpb25Gb3JDdXJyZW50VXNlcg0KK0dldERlZmF1bHRQYXJ0aXRpb25Gb3JTaWQNCitQYXJ0aXRpb25BY2Nlc3NDaGVjaw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djb21hZGRpbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y29tYWRkaW4uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBmN2IwZWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y29tYWRkaW4uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ09NQURESU4uRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENPTUFERElOLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djb21hZG1pbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y29tYWRtaW4uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmEwMzJmNjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y29tYWRtaW4uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ09NQURNSU4uRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENPTUFETUlOLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djb21jYXQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2NvbWNhdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDJlMDczNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djb21jYXQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ09NQ0FULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDT01DQVQuZGxsDQorRVhQT1JUUw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsQ2FuVW5sb2FkTm93DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NvbWN0bDMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djb21jdGwzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWUyZDMyMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djb21jdGwzMi5kZWYKQEAgLTAsMCArMSwxMTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ09NQ1RMMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENPTUNUTDMyLmRsbA0KK0VYUE9SVFMNCitNZW51SGVscA0KK1Nob3dIaWRlTWVudUN0bA0KK0dldEVmZmVjdGl2ZUNsaWVudFJlY3QNCitEcmF3U3RhdHVzVGV4dEENCitDcmVhdGVTdGF0dXNXaW5kb3dBDQorQ3JlYXRlVG9vbGJhcg0KK0NyZWF0ZU1hcHBlZEJpdG1hcA0KK0NyZWF0ZVByb3BlcnR5U2hlZXRQYWdlDQorTWFrZURyYWdMaXN0DQorTEJJdGVtRnJvbVB0DQorRHJhd0luc2VydA0KK0NyZWF0ZVVwRG93bkNvbnRyb2wNCitJbml0Q29tbW9uQ29udHJvbHMNCitDcmVhdGVQcm9wZXJ0eVNoZWV0UGFnZUENCitDcmVhdGVQcm9wZXJ0eVNoZWV0UGFnZVcNCitDcmVhdGVTdGF0dXNXaW5kb3cNCitDcmVhdGVTdGF0dXNXaW5kb3dXDQorQ3JlYXRlVG9vbGJhckV4DQorRGVzdHJveVByb3BlcnR5U2hlZXRQYWdlDQorRGxsR2V0VmVyc2lvbg0KK0RsbEluc3RhbGwNCitEcmF3U3RhdHVzVGV4dA0KK0RyYXdTdGF0dXNUZXh0Vw0KK0ZsYXRTQl9FbmFibGVTY3JvbGxCYXINCitGbGF0U0JfR2V0U2Nyb2xsSW5mbw0KK0ZsYXRTQl9HZXRTY3JvbGxQb3MNCitGbGF0U0JfR2V0U2Nyb2xsUHJvcA0KK0ZsYXRTQl9HZXRTY3JvbGxSYW5nZQ0KK0ZsYXRTQl9TZXRTY3JvbGxJbmZvDQorRmxhdFNCX1NldFNjcm9sbFBvcw0KK0ZsYXRTQl9TZXRTY3JvbGxQcm9wDQorRmxhdFNCX1NldFNjcm9sbFJhbmdlDQorRmxhdFNCX1Nob3dTY3JvbGxCYXINCitHZXRNVUlMYW5ndWFnZQ0KK0ltYWdlTGlzdF9BZGQNCitJbWFnZUxpc3RfQWRkSWNvbg0KK0ltYWdlTGlzdF9BZGRNYXNrZWQNCitJbWFnZUxpc3RfQmVnaW5EcmFnDQorSW1hZ2VMaXN0X0NvcHkNCitJbWFnZUxpc3RfQ3JlYXRlDQorSW1hZ2VMaXN0X0Rlc3Ryb3kNCitJbWFnZUxpc3RfRHJhZ0VudGVyDQorSW1hZ2VMaXN0X0RyYWdMZWF2ZQ0KK0ltYWdlTGlzdF9EcmFnTW92ZQ0KK0ltYWdlTGlzdF9EcmFnU2hvd05vbG9jaw0KK0ltYWdlTGlzdF9EcmF3DQorSW1hZ2VMaXN0X0RyYXdFeA0KK0ltYWdlTGlzdF9EcmF3SW5kaXJlY3QNCitJbWFnZUxpc3RfRHVwbGljYXRlDQorSW1hZ2VMaXN0X0VuZERyYWcNCitJbWFnZUxpc3RfR2V0QmtDb2xvcg0KK0ltYWdlTGlzdF9HZXREcmFnSW1hZ2UNCitJbWFnZUxpc3RfR2V0RmxhZ3MNCitJbWFnZUxpc3RfR2V0SWNvbg0KK0ltYWdlTGlzdF9HZXRJY29uU2l6ZQ0KK0ltYWdlTGlzdF9HZXRJbWFnZUNvdW50DQorSW1hZ2VMaXN0X0dldEltYWdlSW5mbw0KK0ltYWdlTGlzdF9HZXRJbWFnZVJlY3QNCitJbWFnZUxpc3RfTG9hZEltYWdlDQorSW1hZ2VMaXN0X0xvYWRJbWFnZUENCitJbWFnZUxpc3RfTG9hZEltYWdlVw0KK0ltYWdlTGlzdF9NZXJnZQ0KK0ltYWdlTGlzdF9SZWFkDQorSW1hZ2VMaXN0X1JlbW92ZQ0KK0ltYWdlTGlzdF9SZXBsYWNlDQorSW1hZ2VMaXN0X1JlcGxhY2VJY29uDQorSW1hZ2VMaXN0X1NldEJrQ29sb3INCitJbWFnZUxpc3RfU2V0RHJhZ0N1cnNvckltYWdlDQorSW1hZ2VMaXN0X1NldEZpbHRlcg0KK0ltYWdlTGlzdF9TZXRGbGFncw0KK0ltYWdlTGlzdF9TZXRJY29uU2l6ZQ0KK0ltYWdlTGlzdF9TZXRJbWFnZUNvdW50DQorSW1hZ2VMaXN0X1NldE92ZXJsYXlJbWFnZQ0KK0ltYWdlTGlzdF9Xcml0ZQ0KK0luaXRDb21tb25Db250cm9sc0V4DQorSW5pdE1VSUxhbmd1YWdlDQorSW5pdGlhbGl6ZUZsYXRTQg0KK1Byb3BlcnR5U2hlZXQNCitQcm9wZXJ0eVNoZWV0QQ0KK1Byb3BlcnR5U2hlZXRXDQorUmVnaXN0ZXJDbGFzc05hbWVXDQorVW5pbml0aWFsaXplRmxhdFNCDQorX1RyYWNrTW91c2VFdmVudA0KK0ZyZWVNUlVMaXN0DQorU3RyX1NldFB0clcNCitEU0FfQ3JlYXRlDQorRFNBX0Rlc3Ryb3kNCitEU0FfR2V0SXRlbVB0cg0KK0RTQV9JbnNlcnRJdGVtDQorRFNBX0RlbGV0ZUFsbEl0ZW1zDQorRFBBX0NyZWF0ZQ0KK0RQQV9EZXN0cm95DQorRFBBX0dldFB0cg0KK0RQQV9JbnNlcnRQdHINCitEUEFfU2V0UHRyDQorRFBBX0RlbGV0ZVB0cg0KK0RQQV9EZWxldGVBbGxQdHJzDQorRFBBX1NvcnQNCitEUEFfU2VhcmNoDQorRFBBX0VudW1DYWxsYmFjaw0KK0RQQV9EZXN0cm95Q2FsbGJhY2sNCitEU0FfRGVzdHJveUNhbGxiYWNrDQorQ3JlYXRlTVJVTGlzdFcNCitBZGRNUlVTdHJpbmdXDQorRW51bU1SVUxpc3RXDQorU2V0V2luZG93U3ViY2xhc3MNCitSZW1vdmVXaW5kb3dTdWJjbGFzcw0KK0RlZlN1YmNsYXNzUHJvYw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djb21kbGczMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y29tZGxnMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ2Y2ZhOWIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y29tZGxnMzIuZGVmCkBAIC0wLDAgKzEsMzQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY29tZGxnMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNvbWRsZzMyLmRsbA0KK0VYUE9SVFMNCitDaG9vc2VDb2xvckENCitDaG9vc2VDb2xvclcNCitDaG9vc2VGb250QQ0KK0Nob29zZUZvbnRXDQorQ29tbURsZ0V4dGVuZGVkRXJyb3INCitGaW5kVGV4dEENCitGaW5kVGV4dFcNCitHZXRGaWxlVGl0bGVBDQorR2V0RmlsZVRpdGxlVw0KK0dldE9wZW5GaWxlTmFtZUENCitHZXRPcGVuRmlsZU5hbWVXDQorR2V0U2F2ZUZpbGVOYW1lQQ0KK0dldFNhdmVGaWxlTmFtZVcNCitMb2FkQWx0ZXJCaXRtYXANCitQYWdlU2V0dXBEbGdBDQorUGFnZVNldHVwRGxnVw0KK1ByaW50RGxnQQ0KK1ByaW50RGxnRXhBDQorUHJpbnREbGdFeFcNCitQcmludERsZ1cNCitSZXBsYWNlVGV4dEENCitSZXBsYWNlVGV4dFcNCitTc3luY19BTlNJX1VOSUNPREVfU3RydWN0X0Zvcl9XT1cNCitXYW50QXJyb3dzDQorZHdMQlN1YmNsYXNzDQorZHdPS1N1YmNsYXNzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NvbXBhdFVJLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djb21wYXRVSS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzkzZDljMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djb21wYXRVSS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDb21wYXRVSS5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ29tcGF0VUkuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NvbXBzdHVpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djb21wc3R1aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGU2ZGY4NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djb21wc3R1aS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDT01QU1RVSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ09NUFNUVUkuZGxsDQorRVhQT1JUUw0KK0NvbW1vblByb3BlcnR5U2hlZXRVSUENCitDb21tb25Qcm9wZXJ0eVNoZWV0VUlXDQorR2V0Q1BTVUlVc2VyRGF0YQ0KK1NldENQU1VJVXNlckRhdGENCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Y29tcmVzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djb21yZXMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVmY2NmNmUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y29tcmVzLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ09NUmVzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDT01SZXMuZGxsDQorRVhQT1JUUw0KK0NPTVJlc01vZHVsZUluc3RhbmNlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NvbXNuYXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2NvbXNuYXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVkNjU2OTkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y29tc25hcC5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDb21TbmFwLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDb21TbmFwLkRMTA0KK0VYUE9SVFMNCitJbnN0YWxsRHNFeHRlbnNpb24NCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djb21zdmNzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djb21zdmNzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYTA4YmUwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2NvbXN2Y3MuZGVmCkBAIC0wLDAgKzEsMjkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgY29tc3Zjcy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgY29tc3Zjcy5kbGwNCitFWFBPUlRTDQorQ29zR2V0Q2FsbENvbnRleHQNCitHZXRNVEFUaHJlYWRQb29sTWV0cmljcw0KK0NvQ3JlYXRlQWN0aXZpdHkNCitDb0VudGVyU2VydmljZURvbWFpbg0KK0NvTGVhdmVTZXJ2aWNlRG9tYWluDQorQ29Mb2FkU2VydmljZXMNCitDb21TdmNzRXhjZXB0aW9uRmlsdGVyDQorQ29tU3Zjc0xvZ0Vycm9yDQorRGlzcE1hbkdldENvbnRleHQNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldE1hbmFnZWRFeHRlbnNpb25zDQorR2V0T2JqZWN0Q29udGV4dA0KK0dldFRya1N2ck9iamVjdA0KK01UU0NyZWF0ZUFjdGl2aXR5DQorTWluaUR1bXBXDQorUmVjeWNsZVN1cnJvZ2F0ZQ0KK1JlZ2lzdGVyQ29tRXZlbnRzDQorU2FmZVJlZg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djb211aWQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2NvbXVpZC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmEwNDMxMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djb211aWQuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ29tVUlELkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDb21VSUQuRExMDQorRVhQT1JUUw0KK0NyZWF0ZURDT01TZWN1cml0eVVJUGFnZQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NvbmZtc3AuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2NvbmZtc3AuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk4NWZjZDIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y29uZm1zcC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBjb25mbXNwLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBjb25mbXNwLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djb25zb2xlLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djb25zb2xlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ODA2NjU4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2NvbnNvbGUuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDb25zb2xlLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDb25zb2xlLmRsbA0KK0VYUE9SVFMNCitDUGxBcHBsZXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Y29ycG9sLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djb3Jwb2wuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMxYWEyOWMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y29ycG9sLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGNvcnBvbC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgY29ycG9sLmRsbA0KK0VYUE9SVFMNCitDT1JMb2NrRG93blByb3ZpZGVyDQorQ09SUG9saWN5RUUNCitDT1JQb2xpY3lQcm92aWRlcg0KK0RsbENhblVubG9hZE5vdw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dldFB1Ymxpc2hlcg0KK0dldFVuc2lnbmVkUGVybWlzc2lvbnMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Y3JlZHVpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djcmVkdWkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA0NjA1NDAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y3JlZHVpLmRlZgpAQCAtMCwwICsxLDI1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGNyZWR1aS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgY3JlZHVpLmRsbA0KK0VYUE9SVFMNCitDcmVkVUlDbWRMaW5lUHJvbXB0Rm9yQ3JlZGVudGlhbHNBDQorQ3JlZFVJQ21kTGluZVByb21wdEZvckNyZWRlbnRpYWxzVw0KK0NyZWRVSUNvbmZpcm1DcmVkZW50aWFsc0ENCitDcmVkVUlDb25maXJtQ3JlZGVudGlhbHNXDQorQ3JlZFVJSW5pdENvbnRyb2xzDQorQ3JlZFVJUGFyc2VVc2VyTmFtZUENCitDcmVkVUlQYXJzZVVzZXJOYW1lVw0KK0NyZWRVSVByb21wdEZvckNyZWRlbnRpYWxzQQ0KK0NyZWRVSVByb21wdEZvckNyZWRlbnRpYWxzVw0KK0NyZWRVSVJlYWRTU09DcmVkQQ0KK0NyZWRVSVJlYWRTU09DcmVkVw0KK0NyZWRVSVN0b3JlU1NPQ3JlZEENCitDcmVkVUlTdG9yZVNTT0NyZWRXDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Y3J0ZGxsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djcnRkbGwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUzYzRjYzIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y3J0ZGxsLmRlZgpAQCAtMCwwICsxLDUzNyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDUlRETEwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENSVERMTC5kbGwNCitFWFBPUlRTDQorOyB2b2lkICogX19jZGVjbCBvcGVyYXRvciBuZXcodW5zaWduZWQgaW50KQ0KKz8/MkBZQVBBWElAWg0KKzsgdm9pZCBfX2NkZWNsIG9wZXJhdG9yIGRlbGV0ZSh2b2lkICopDQorPz8zQFlBWFBBWEBaDQorOyBpbnQgKF9fY2RlY2wqX19jZGVjbCBfc2V0X25ld19oYW5kbGVyKGludCAoX19jZGVjbCopKHVuc2lnbmVkIGludCkpKSh1bnNpZ25lZCBpbnQpDQorP19zZXRfbmV3X2hhbmRsZXJAQFlBUDZBSElAWlA2QUhJQFpAWg0KK19DSWFjb3MNCitfQ0lhc2luDQorX0NJYXRhbg0KK19DSWF0YW4yDQorX0NJY29zDQorX0NJY29zaA0KK19DSWV4cA0KK19DSWZtb2QNCitfQ0lsb2cNCitfQ0lsb2cxMA0KK19DSXBvdw0KK19DSXNpbg0KK19DSXNpbmgNCitfQ0lzcXJ0DQorX0NJdGFuDQorX0NJdGFuaA0KK19IVUdFX2RsbCBEQVRBDQorX1hjcHRGaWx0ZXINCitfX0dldE1haW5BcmdzDQorX19hcmdjX2RsbCBEQVRBDQorX19hcmd2X2RsbCBEQVRBDQorX19kbGxvbmV4aXQNCitfX2Rvc2Vycm5vDQorX19mcGVjb2RlDQorX19pc2FzY2lpDQorX19pc2NzeW0NCitfX2lzY3N5bWYNCitfX21iX2N1cl9tYXhfZGxsIERBVEENCitfX3B4Y3B0aW5mb3B0cnMNCitfX3RocmVhZGhhbmRsZQ0KK19fdGhyZWFkaWQNCitfX3RvYXNjaWkNCitfYWJub3JtYWxfdGVybWluYXRpb24NCitfYWNjZXNzDQorX2FjbWRsbl9kbGwgREFUQQ0KK19hZXhpdF9ydG5fZGxsIERBVEENCitfYW1zZ19leGl0DQorX2Fzc2VydA0KK19iYXNlbWFqb3JfZGxsIERBVEENCitfYmFzZW1pbm9yX2RsbCBEQVRBDQorX2Jhc2V2ZXJzaW9uX2RsbCBEQVRBDQorX2JlZXANCitfYmVnaW50aHJlYWQNCitfY19leGl0DQorX2NhYnMNCitfY2V4aXQNCitfY2dldHMNCitfY2hkaXINCitfY2hkcml2ZQ0KK19jaGdzaWduDQorX2NobW9kDQorX2Noc2l6ZQ0KK19jbGVhcmZwDQorX2Nsb3NlDQorX2NvbW1pdA0KK19jb21tb2RlX2RsbCBEQVRBDQorX2NvbnRyb2w4Nw0KK19jb250cm9sZnANCitfY29weXNpZ24NCitfY3ByaW50Zg0KK19jcHVtb2RlX2RsbCBEQVRBDQorX2NwdXRzDQorX2NyZWF0DQorX2NzY2FuZg0KK19jdHlwZSBEQVRBDQorX2N3YWl0DQorX2RheWxpZ2h0X2RsbCBEQVRBDQorX2R1cA0KK19kdXAyDQorX2VjdnQNCitfZW5kdGhyZWFkDQorX2Vudmlyb25fZGxsIERBVEENCitfZW9mDQorX2Vycm5vDQorX2V4Y2VwdF9oYW5kbGVyMg0KK19leGVjbA0KK19leGVjbGUNCitfZXhlY2xwDQorX2V4ZWNscGUNCitfZXhlY3YNCitfZXhlY3ZlDQorX2V4ZWN2cA0KK19leGVjdnBlDQorX2V4aXQNCitfZXhwYW5kDQorX2ZjbG9zZWFsbA0KK19mY3Z0DQorX2Zkb3Blbg0KK19mZ2V0Y2hhcg0KK19mZ2V0d2NoYXINCitfZmlsYnVmDQorX2ZpbGVpbmZvX2RsbCBEQVRBDQorX2ZpbGVsZW5ndGgNCitfZmlsZW5vDQorX2ZpbmRjbG9zZQ0KK19maW5kZmlyc3QNCitfZmluZG5leHQNCitfZmluaXRlDQorX2Zsc2J1Zg0KK19mbHVzaGFsbA0KK19mbW9kZV9kbGwgREFUQQ0KK19mcGNsYXNzDQorX2ZwaWVlZV9mbHQNCitfZnByZXNldA0KK19mcHV0Y2hhcg0KK19mcHV0d2NoYXINCitfZnNvcGVuDQorX2ZzdGF0DQorX2Z0aW1lDQorX2Z0b2wNCitfZnVsbHBhdGgNCitfZnV0aW1lDQorX2djdnQNCitfZ2V0X29zZmhhbmRsZQ0KK19nZXRjaA0KK19nZXRjaGUNCitfZ2V0Y3dkDQorX2dldGRjd2QNCitfZ2V0ZGlza2ZyZWUNCitfZ2V0ZGxscHJvY2FkZHINCitfZ2V0ZHJpdmUNCitfZ2V0ZHJpdmVzDQorX2dldHBpZA0KK19nZXRzeXN0aW1lDQorX2dldHcNCitfZ2xvYmFsX3Vud2luZDINCitfaGVhcGNoaw0KK19oZWFwbWluDQorX2hlYXBzZXQNCitfaGVhcHdhbGsNCitfaHlwb3QNCitfaW5pdHRlcm0NCitfaW9iIERBVEENCitfaXNhdHR5DQorX2lzY3R5cGUNCitfaXNtYmJhbG51bQ0KK19pc21iYmFscGhhDQorX2lzbWJiZ3JhcGgNCitfaXNtYmJrYWxudW0NCitfaXNtYmJrYW5hDQorX2lzbWJia3B1bmN0DQorX2lzbWJibGVhZA0KK19pc21iYnByaW50DQorX2lzbWJicHVuY3QNCitfaXNtYmJ0cmFpbA0KK19pc21iY2FscGhhDQorX2lzbWJjZGlnaXQNCitfaXNtYmNoaXJhDQorX2lzbWJja2F0YQ0KK19pc21iY2wwDQorX2lzbWJjbDENCitfaXNtYmNsMg0KK19pc21iY2xlZ2FsDQorX2lzbWJjbG93ZXINCitfaXNtYmNwcmludA0KK19pc21iY3NwYWNlDQorX2lzbWJjc3ltYm9sDQorX2lzbWJjdXBwZXINCitfaXNtYnNsZWFkDQorX2lzbWJzdHJhaWwNCitfaXNuYW4NCitfaXRvYQ0KK19pdG93DQorX2owDQorX2oxDQorX2puDQorX2tiaGl0DQorX2xmaW5kDQorX2xvYWRkbGwNCitfbG9jYWxfdW53aW5kMg0KK19sb2NraW5nDQorX2xvZ2INCitfbHJvdGwNCitfbHJvdHINCitfbHNlYXJjaA0KK19sc2Vlaw0KK19sdG9hDQorX2x0b3cNCitfbWFrZXBhdGgNCitfbWF0aGVycg0KK19tYmJ0b21iYw0KK19tYmJ0eXBlDQorX21iY2NweQ0KK19tYmNqaXN0b2ptcw0KK19tYmNqbXN0b2ppcw0KK19tYmNsZW4NCitfbWJjdG9oaXJhDQorX21iY3Rva2F0YQ0KK19tYmN0b2xvd2VyDQorX21iY3RvbWJiDQorX21iY3RvdXBwZXINCitfbWJjdHlwZSBEQVRBDQorX21ic2J0eXBlDQorX21ic2NhdA0KK19tYnNjaHINCitfbWJzY21wDQorX21ic2NweQ0KK19tYnNjc3BuDQorX21ic2RlYw0KK19tYnNkdXANCitfbWJzaWNtcA0KK19tYnNpbmMNCitfbWJzbGVuDQorX21ic2x3cg0KK19tYnNuYmNhdA0KK19tYnNuYmNtcA0KK19tYnNuYmNudA0KK19tYnNuYmNweQ0KK19tYnNuYmljbXANCitfbWJzbmJzZXQNCitfbWJzbmNhdA0KK19tYnNuY2NudA0KK19tYnNuY21wDQorX21ic25jcHkNCitfbWJzbmV4dGMNCitfbWJzbmljbXANCitfbWJzbmluYw0KK19tYnNuc2V0DQorX21ic3BicmsNCitfbWJzcmNocg0KK19tYnNyZXYNCitfbWJzc2V0DQorX21ic3Nwbg0KK19tYnNzcG5wDQorX21ic3N0cg0KK19tYnN0b2sNCitfbWJzdHJsZW4NCitfbWJzdXByDQorX21lbWNjcHkNCitfbWVtaWNtcA0KK19ta2Rpcg0KK19ta3RlbXANCitfbXNpemUNCitfbmV4dGFmdGVyDQorX29uZXhpdA0KK19vcGVuDQorX29wZW5fb3NmaGFuZGxlDQorX29zbWFqb3JfZGxsIERBVEENCitfb3NtaW5vcl9kbGwgREFUQQ0KK19vc21vZGVfZGxsIERBVEENCitfb3N2ZXJfZGxsIERBVEENCitfb3N2ZXJzaW9uX2RsbCBEQVRBDQorX3BjbG9zZQ0KK19wY3R5cGVfZGxsIERBVEENCitfcGdtcHRyX2RsbCBEQVRBDQorX3BpcGUNCitfcG9wZW4NCitfcHVyZWNhbGwNCitfcHV0Y2gNCitfcHV0ZW52DQorX3B1dHcNCitfcHdjdHlwZV9kbGwgREFUQQ0KK19yZWFkDQorX3JtZGlyDQorX3JtdG1wDQorX3JvdGwNCitfcm90cg0KK19zY2FsYg0KK19zZWFyY2hlbnYNCitfc2V0ZXJyb3Jtb2RlDQorX3NldGptcA0KK19zZXRtb2RlDQorX3NldHN5c3RpbWUNCitfc2xlZXANCitfc25wcmludGYNCitfc253cHJpbnRmDQorX3NvcGVuDQorX3NwYXdubA0KK19zcGF3bmxlDQorX3NwYXdubHANCitfc3Bhd25scGUNCitfc3Bhd252DQorX3NwYXdudmUNCitfc3Bhd252cA0KK19zcGF3bnZwZQ0KK19zcGxpdHBhdGgNCitfc3RhdA0KK19zdGF0dXNmcA0KK19zdHJjbXBpDQorX3N0cmRhdGUNCitfc3RyZGVjDQorX3N0cmR1cA0KK19zdHJlcnJvcg0KK19zdHJpY21wDQorX3N0cmljb2xsDQorX3N0cmluYw0KK19zdHJsd3INCitfc3RybmNudA0KK19zdHJuZXh0Yw0KK19zdHJuaWNtcA0KK19zdHJuaW5jDQorX3N0cm5zZXQNCitfc3RycmV2DQorX3N0cnNldA0KK19zdHJzcG5wDQorX3N0cnRpbWUNCitfc3RydXByDQorX3N3YWINCitfc3lzX2Vycmxpc3QgREFUQQ0KK19zeXNfbmVycl9kbGwgREFUQQ0KK190ZWxsDQorX3RlbXBuYW0NCitfdGltZXpvbmVfZGxsIERBVEENCitfdG9sb3dlcg0KK190b3VwcGVyDQorX3R6bmFtZSBEQVRBDQorX3R6c2V0DQorX3VsdG9hDQorX3VsdG93DQorX3VtYXNrDQorX3VuZ2V0Y2gNCitfdW5saW5rDQorX3VubG9hZGRsbA0KK191dGltZQ0KK192c25wcmludGYNCitfdnNud3ByaW50Zg0KK193Y3NkdXANCitfd2NzaWNtcA0KK193Y3NpY29sbA0KK193Y3Nsd3INCitfd2NzbmljbXANCitfd2NzbnNldA0KK193Y3NyZXYNCitfd2Nzc2V0DQorX3djc3Vwcg0KK193aW5tYWpvcl9kbGwgREFUQQ0KK193aW5taW5vcl9kbGwgREFUQQ0KK193aW52ZXJfZGxsIERBVEENCitfd3JpdGUNCitfd3RvaQ0KK193dG9sDQorX3kwDQorX3kxDQorX3luDQorYWJvcnQNCithYnMNCithY29zDQorYXNjdGltZQ0KK2FzaW4NCithdGFuDQorYXRhbjINCithdGV4aXQNCithdG9mDQorYXRvaQ0KK2F0b2wNCitic2VhcmNoDQorY2FsbG9jDQorY2VpbA0KK2NsZWFyZXJyDQorY2xvY2sNCitjb3MNCitjb3NoDQorY3RpbWUNCitkaWZmdGltZQ0KK2Rpdg0KK2V4aXQNCitleHANCitmYWJzDQorZmNsb3NlDQorZmVvZg0KK2ZlcnJvcg0KK2ZmbHVzaA0KK2ZnZXRjDQorZmdldHBvcw0KK2ZnZXRzDQorZmdldHdjDQorZmxvb3INCitmbW9kDQorZm9wZW4NCitmcHJpbnRmDQorZnB1dGMNCitmcHV0cw0KK2ZwdXR3Yw0KK2ZyZWFkDQorZnJlZQ0KK2ZyZW9wZW4NCitmcmV4cA0KK2ZzY2FuZg0KK2ZzZWVrDQorZnNldHBvcw0KK2Z0ZWxsDQorZndwcmludGYNCitmd3JpdGUNCitmd3NjYW5mDQorZ2V0Yw0KK2dldGNoYXINCitnZXRlbnYNCitnZXRzDQorZ210aW1lDQoraXNfd2N0eXBlDQoraXNhbG51bQ0KK2lzYWxwaGENCitpc2NudHJsDQoraXNkaWdpdA0KK2lzZ3JhcGgNCitpc2xlYWRieXRlDQoraXNsb3dlcg0KK2lzcHJpbnQNCitpc3B1bmN0DQoraXNzcGFjZQ0KK2lzdXBwZXINCitpc3dhbG51bQ0KK2lzd2FscGhhDQoraXN3YXNjaWkNCitpc3djbnRybA0KK2lzd2N0eXBlDQoraXN3ZGlnaXQNCitpc3dncmFwaA0KK2lzd2xvd2VyDQoraXN3cHJpbnQNCitpc3dwdW5jdA0KK2lzd3NwYWNlDQoraXN3dXBwZXINCitpc3d4ZGlnaXQNCitpc3hkaWdpdA0KK2xhYnMNCitsZGV4cA0KK2xkaXYNCitsb2NhbGVjb252DQorbG9jYWx0aW1lDQorbG9nDQorbG9nMTANCitsb25nam1wDQorbWFsbG9jDQorbWJsZW4NCittYnN0b3djcw0KK21idG93Yw0KK21lbWNocg0KK21lbWNtcA0KK21lbWNweQ0KK21lbW1vdmUNCittZW1zZXQNCitta3RpbWUNCittb2RmDQorcGVycm9yDQorcG93DQorcHJpbnRmDQorcHV0Yw0KK3B1dGNoYXINCitwdXRzDQorcXNvcnQNCityYWlzZQ0KK3JhbmQNCityZWFsbG9jDQorcmVtb3ZlDQorcmVuYW1lDQorcmV3aW5kDQorc2NhbmYNCitzZXRidWYNCitzZXRsb2NhbGUNCitzZXR2YnVmDQorc2lnbmFsDQorc2luDQorc2luaA0KK3NwcmludGYNCitzcXJ0DQorc3JhbmQNCitzc2NhbmYNCitzdHJjYXQNCitzdHJjaHINCitzdHJjbXANCitzdHJjb2xsDQorc3RyY3B5DQorc3RyY3Nwbg0KK3N0cmVycm9yDQorc3RyZnRpbWUNCitzdHJsZW4NCitzdHJuY2F0DQorc3RybmNtcA0KK3N0cm5jcHkNCitzdHJwYnJrDQorc3RycmNocg0KK3N0cnNwbg0KK3N0cnN0cg0KK3N0cnRvZA0KK3N0cnRvaw0KK3N0cnRvbA0KK3N0cnRvdWwNCitzdHJ4ZnJtDQorc3dwcmludGYNCitzd3NjYW5mDQorc3lzdGVtDQordGFuDQordGFuaA0KK3RpbWUNCit0bXBmaWxlDQordG1wbmFtDQordG9sb3dlcg0KK3RvdXBwZXINCit0b3dsb3dlcg0KK3Rvd3VwcGVyDQordW5nZXRjDQordW5nZXR3Yw0KK3ZmcHJpbnRmDQordmZ3cHJpbnRmDQordnByaW50Zg0KK3ZzcHJpbnRmDQordnN3cHJpbnRmDQordndwcmludGYNCit3Y3NjYXQNCit3Y3NjaHINCit3Y3NjbXANCit3Y3Njb2xsDQord2NzY3B5DQord2NzY3Nwbg0KK3djc2Z0aW1lDQord2NzbGVuDQord2NzbmNhdA0KK3djc25jbXANCit3Y3NuY3B5DQord2NzcGJyaw0KK3djc3JjaHINCit3Y3NzcG4NCit3Y3NzdHINCit3Y3N0b2QNCit3Y3N0b2sNCit3Y3N0b2wNCit3Y3N0b21icw0KK3djc3RvdWwNCit3Y3N4ZnJtDQord2N0b21iDQord3ByaW50Zg0KK3dzY2FuZg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djcnlwdDMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djcnlwdDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYWEwYjNlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2NyeXB0MzIuZGVmCkBAIC0wLDAgKzEsMjg2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENSWVBUMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENSWVBUMzIuZGxsDQorRVhQT1JUUw0KK0NoYWluV2x4TG9nb2ZmRXZlbnQNCitDbG9zZUNlcnRQZXJmb3JtYW5jZURhdGENCitDb2xsZWN0Q2VydFBlcmZvcm1hbmNlRGF0YQ0KK09wZW5DZXJ0UGVyZm9ybWFuY2VEYXRhDQorQ2VydEFkZENSTENvbnRleHRUb1N0b3JlDQorQ2VydEFkZENSTExpbmtUb1N0b3JlDQorQ2VydEFkZENUTENvbnRleHRUb1N0b3JlDQorQ2VydEFkZENUTExpbmtUb1N0b3JlDQorQ2VydEFkZENlcnRpZmljYXRlQ29udGV4dFRvU3RvcmUNCitDZXJ0QWRkQ2VydGlmaWNhdGVMaW5rVG9TdG9yZQ0KK0NlcnRBZGRFbmNvZGVkQ1JMVG9TdG9yZQ0KK0NlcnRBZGRFbmNvZGVkQ1RMVG9TdG9yZQ0KK0NlcnRBZGRFbmNvZGVkQ2VydGlmaWNhdGVUb1N0b3JlDQorQ2VydEFkZEVuY29kZWRDZXJ0aWZpY2F0ZVRvU3lzdGVtU3RvcmVBDQorQ2VydEFkZEVuY29kZWRDZXJ0aWZpY2F0ZVRvU3lzdGVtU3RvcmVXDQorQ2VydEFkZEVuaGFuY2VkS2V5VXNhZ2VJZGVudGlmaWVyDQorQ2VydEFkZFNlcmlhbGl6ZWRFbGVtZW50VG9TdG9yZQ0KK0NlcnRBZGRTdG9yZVRvQ29sbGVjdGlvbg0KK0NlcnRBbGdJZFRvT0lEDQorQ2VydENsb3NlU3RvcmUNCitDZXJ0Q29tcGFyZUNlcnRpZmljYXRlDQorQ2VydENvbXBhcmVDZXJ0aWZpY2F0ZU5hbWUNCitDZXJ0Q29tcGFyZUludGVnZXJCbG9iDQorQ2VydENvbXBhcmVQdWJsaWNLZXlJbmZvDQorQ2VydENvbnRyb2xTdG9yZQ0KK0NlcnRDcmVhdGVDUkxDb250ZXh0DQorQ2VydENyZWF0ZUNUTENvbnRleHQNCitDZXJ0Q3JlYXRlQ1RMRW50cnlGcm9tQ2VydGlmaWNhdGVDb250ZXh0UHJvcGVydGllcw0KK0NlcnRDcmVhdGVDZXJ0aWZpY2F0ZUNoYWluRW5naW5lDQorQ2VydENyZWF0ZUNlcnRpZmljYXRlQ29udGV4dA0KK0NlcnRDcmVhdGVDb250ZXh0DQorQ2VydENyZWF0ZVNlbGZTaWduQ2VydGlmaWNhdGUNCitDZXJ0RGVsZXRlQ1JMRnJvbVN0b3JlDQorQ2VydERlbGV0ZUNUTEZyb21TdG9yZQ0KK0NlcnREZWxldGVDZXJ0aWZpY2F0ZUZyb21TdG9yZQ0KK0NlcnREdXBsaWNhdGVDUkxDb250ZXh0DQorQ2VydER1cGxpY2F0ZUNUTENvbnRleHQNCitDZXJ0RHVwbGljYXRlQ2VydGlmaWNhdGVDaGFpbg0KK0NlcnREdXBsaWNhdGVDZXJ0aWZpY2F0ZUNvbnRleHQNCitDZXJ0RHVwbGljYXRlU3RvcmUNCitDZXJ0RW51bUNSTENvbnRleHRQcm9wZXJ0aWVzDQorQ2VydEVudW1DUkxzSW5TdG9yZQ0KK0NlcnRFbnVtQ1RMQ29udGV4dFByb3BlcnRpZXMNCitDZXJ0RW51bUNUTHNJblN0b3JlDQorQ2VydEVudW1DZXJ0aWZpY2F0ZUNvbnRleHRQcm9wZXJ0aWVzDQorQ2VydEVudW1DZXJ0aWZpY2F0ZXNJblN0b3JlDQorQ2VydEVudW1QaHlzaWNhbFN0b3JlDQorQ2VydEVudW1TdWJqZWN0SW5Tb3J0ZWRDVEwNCitDZXJ0RW51bVN5c3RlbVN0b3JlDQorQ2VydEVudW1TeXN0ZW1TdG9yZUxvY2F0aW9uDQorQ2VydEZpbmRBdHRyaWJ1dGUNCitDZXJ0RmluZENSTEluU3RvcmUNCitDZXJ0RmluZENUTEluU3RvcmUNCitDZXJ0RmluZENlcnRpZmljYXRlSW5DUkwNCitDZXJ0RmluZENlcnRpZmljYXRlSW5TdG9yZQ0KK0NlcnRGaW5kQ2hhaW5JblN0b3JlDQorQ2VydEZpbmRFeHRlbnNpb24NCitDZXJ0RmluZFJETkF0dHINCitDZXJ0RmluZFN1YmplY3RJbkNUTA0KK0NlcnRGaW5kU3ViamVjdEluU29ydGVkQ1RMDQorQ2VydEZyZWVDUkxDb250ZXh0DQorQ2VydEZyZWVDVExDb250ZXh0DQorQ2VydEZyZWVDZXJ0aWZpY2F0ZUNoYWluDQorQ2VydEZyZWVDZXJ0aWZpY2F0ZUNoYWluRW5naW5lDQorQ2VydEZyZWVDZXJ0aWZpY2F0ZUNvbnRleHQNCitDZXJ0R2V0Q1JMQ29udGV4dFByb3BlcnR5DQorQ2VydEdldENSTEZyb21TdG9yZQ0KK0NlcnRHZXRDVExDb250ZXh0UHJvcGVydHkNCitDZXJ0R2V0Q2VydGlmaWNhdGVDaGFpbg0KK0NlcnRHZXRDZXJ0aWZpY2F0ZUNvbnRleHRQcm9wZXJ0eQ0KK0NlcnRHZXRFbmhhbmNlZEtleVVzYWdlDQorQ2VydEdldEludGVuZGVkS2V5VXNhZ2UNCitDZXJ0R2V0SXNzdWVyQ2VydGlmaWNhdGVGcm9tU3RvcmUNCitDZXJ0R2V0TmFtZVN0cmluZ0ENCitDZXJ0R2V0TmFtZVN0cmluZ1cNCitDZXJ0R2V0UHVibGljS2V5TGVuZ3RoDQorQ2VydEdldFN0b3JlUHJvcGVydHkNCitDZXJ0R2V0U3ViamVjdENlcnRpZmljYXRlRnJvbVN0b3JlDQorQ2VydEdldFZhbGlkVXNhZ2VzDQorQ2VydElzUkROQXR0cnNJbkNlcnRpZmljYXRlTmFtZQ0KK0NlcnRJc1ZhbGlkQ1JMRm9yQ2VydGlmaWNhdGUNCitDZXJ0TmFtZVRvU3RyQQ0KK0NlcnROYW1lVG9TdHJXDQorQ2VydE9JRFRvQWxnSWQNCitDZXJ0T3BlblN0b3JlDQorQ2VydE9wZW5TeXN0ZW1TdG9yZUENCitDZXJ0T3BlblN5c3RlbVN0b3JlVw0KK0NlcnRSRE5WYWx1ZVRvU3RyQQ0KK0NlcnRSRE5WYWx1ZVRvU3RyVw0KK0NlcnRSZWdpc3RlclBoeXNpY2FsU3RvcmUNCitDZXJ0UmVnaXN0ZXJTeXN0ZW1TdG9yZQ0KK0NlcnRSZW1vdmVFbmhhbmNlZEtleVVzYWdlSWRlbnRpZmllcg0KK0NlcnRSZW1vdmVTdG9yZUZyb21Db2xsZWN0aW9uDQorQ2VydFJlc3luY0NlcnRpZmljYXRlQ2hhaW5FbmdpbmUNCitDZXJ0U2F2ZVN0b3JlDQorQ2VydFNlcmlhbGl6ZUNSTFN0b3JlRWxlbWVudA0KK0NlcnRTZXJpYWxpemVDVExTdG9yZUVsZW1lbnQNCitDZXJ0U2VyaWFsaXplQ2VydGlmaWNhdGVTdG9yZUVsZW1lbnQNCitDZXJ0U2V0Q1JMQ29udGV4dFByb3BlcnR5DQorQ2VydFNldENUTENvbnRleHRQcm9wZXJ0eQ0KK0NlcnRTZXRDZXJ0aWZpY2F0ZUNvbnRleHRQcm9wZXJ0aWVzRnJvbUNUTEVudHJ5DQorQ2VydFNldENlcnRpZmljYXRlQ29udGV4dFByb3BlcnR5DQorQ2VydFNldEVuaGFuY2VkS2V5VXNhZ2UNCitDZXJ0U2V0U3RvcmVQcm9wZXJ0eQ0KK0NlcnRTdHJUb05hbWVBDQorQ2VydFN0clRvTmFtZVcNCitDZXJ0VW5yZWdpc3RlclBoeXNpY2FsU3RvcmUNCitDZXJ0VW5yZWdpc3RlclN5c3RlbVN0b3JlDQorQ2VydFZlcmlmeUNSTFJldm9jYXRpb24NCitDZXJ0VmVyaWZ5Q1JMVGltZVZhbGlkaXR5DQorQ2VydFZlcmlmeUNUTFVzYWdlDQorQ2VydFZlcmlmeUNlcnRpZmljYXRlQ2hhaW5Qb2xpY3kNCitDZXJ0VmVyaWZ5UmV2b2NhdGlvbg0KK0NlcnRWZXJpZnlTdWJqZWN0Q2VydGlmaWNhdGVDb250ZXh0DQorQ2VydFZlcmlmeVRpbWVWYWxpZGl0eQ0KK0NlcnRWZXJpZnlWYWxpZGl0eU5lc3RpbmcNCitDcmVhdGVGaWxlVQ0KK0NyeXB0QWNxdWlyZUNlcnRpZmljYXRlUHJpdmF0ZUtleQ0KK0NyeXB0QWNxdWlyZUNvbnRleHRVDQorQ3J5cHRCaW5hcnlUb1N0cmluZ0ENCitDcnlwdEJpbmFyeVRvU3RyaW5nVw0KK0NyeXB0Q2xvc2VBc3luY0hhbmRsZQ0KK0NyeXB0Q3JlYXRlQXN5bmNIYW5kbGUNCitDcnlwdENyZWF0ZUtleUlkZW50aWZpZXJGcm9tQ1NQDQorQ3J5cHREZWNvZGVNZXNzYWdlDQorQ3J5cHREZWNvZGVPYmplY3QNCitDcnlwdERlY29kZU9iamVjdEV4DQorQ3J5cHREZWNyeXB0QW5kVmVyaWZ5TWVzc2FnZVNpZ25hdHVyZQ0KK0NyeXB0RGVjcnlwdE1lc3NhZ2UNCitDcnlwdEVuY29kZU9iamVjdA0KK0NyeXB0RW5jb2RlT2JqZWN0RXgNCitDcnlwdEVuY3J5cHRNZXNzYWdlDQorQ3J5cHRFbnVtS2V5SWRlbnRpZmllclByb3BlcnRpZXMNCitDcnlwdEVudW1PSURGdW5jdGlvbg0KK0NyeXB0RW51bU9JREluZm8NCitDcnlwdEVudW1Qcm92aWRlcnNVDQorQ3J5cHRFeHBvcnRQS0NTOA0KK0NyeXB0RXhwb3J0UHVibGljS2V5SW5mbw0KK0NyeXB0RXhwb3J0UHVibGljS2V5SW5mb0V4DQorQ3J5cHRGaW5kQ2VydGlmaWNhdGVLZXlQcm92SW5mbw0KK0NyeXB0RmluZExvY2FsaXplZE5hbWUNCitDcnlwdEZpbmRPSURJbmZvDQorQ3J5cHRGb3JtYXRPYmplY3QNCitDcnlwdEZyZWVPSURGdW5jdGlvbkFkZHJlc3MNCitDcnlwdEdldEFzeW5jUGFyYW0NCitDcnlwdEdldERlZmF1bHRPSUREbGxMaXN0DQorQ3J5cHRHZXREZWZhdWx0T0lERnVuY3Rpb25BZGRyZXNzDQorQ3J5cHRHZXRLZXlJZGVudGlmaWVyUHJvcGVydHkNCitDcnlwdEdldE1lc3NhZ2VDZXJ0aWZpY2F0ZXMNCitDcnlwdEdldE1lc3NhZ2VTaWduZXJDb3VudA0KK0NyeXB0R2V0T0lERnVuY3Rpb25BZGRyZXNzDQorQ3J5cHRHZXRPSURGdW5jdGlvblZhbHVlDQorQ3J5cHRIYXNoQ2VydGlmaWNhdGUNCitDcnlwdEhhc2hNZXNzYWdlDQorQ3J5cHRIYXNoUHVibGljS2V5SW5mbw0KK0NyeXB0SGFzaFRvQmVTaWduZWQNCitDcnlwdEltcG9ydFBLQ1M4DQorQ3J5cHRJbXBvcnRQdWJsaWNLZXlJbmZvDQorQ3J5cHRJbXBvcnRQdWJsaWNLZXlJbmZvRXgNCitDcnlwdEluaXRPSURGdW5jdGlvblNldA0KK0NyeXB0SW5zdGFsbERlZmF1bHRDb250ZXh0DQorQ3J5cHRJbnN0YWxsT0lERnVuY3Rpb25BZGRyZXNzDQorQ3J5cHRMb2FkU2lwDQorQ3J5cHRNZW1BbGxvYw0KK0NyeXB0TWVtRnJlZQ0KK0NyeXB0TWVtUmVhbGxvYw0KK0NyeXB0TXNnQ2FsY3VsYXRlRW5jb2RlZExlbmd0aA0KK0NyeXB0TXNnQ2xvc2UNCitDcnlwdE1zZ0NvbnRyb2wNCitDcnlwdE1zZ0NvdW50ZXJzaWduDQorQ3J5cHRNc2dDb3VudGVyc2lnbkVuY29kZWQNCitDcnlwdE1zZ0R1cGxpY2F0ZQ0KK0NyeXB0TXNnRW5jb2RlQW5kU2lnbkNUTA0KK0NyeXB0TXNnR2V0QW5kVmVyaWZ5U2lnbmVyDQorQ3J5cHRNc2dHZXRQYXJhbQ0KK0NyeXB0TXNnT3BlblRvRGVjb2RlDQorQ3J5cHRNc2dPcGVuVG9FbmNvZGUNCitDcnlwdE1zZ1NpZ25DVEwNCitDcnlwdE1zZ1VwZGF0ZQ0KK0NyeXB0TXNnVmVyaWZ5Q291bnRlcnNpZ25hdHVyZUVuY29kZWQNCitDcnlwdE1zZ1ZlcmlmeUNvdW50ZXJzaWduYXR1cmVFbmNvZGVkRXgNCitDcnlwdFByb3RlY3REYXRhDQorQ3J5cHRQcm90ZWN0TWVtb3J5DQorQ3J5cHRRdWVyeU9iamVjdA0KK0NyeXB0UmVnaXN0ZXJEZWZhdWx0T0lERnVuY3Rpb24NCitDcnlwdFJlZ2lzdGVyT0lERnVuY3Rpb24NCitDcnlwdFJlZ2lzdGVyT0lESW5mbw0KK0NyeXB0U0lQQWRkUHJvdmlkZXINCitDcnlwdFNJUENyZWF0ZUluZGlyZWN0RGF0YQ0KK0NyeXB0U0lQR2V0U2lnbmVkRGF0YU1zZw0KK0NyeXB0U0lQTG9hZA0KK0NyeXB0U0lQUHV0U2lnbmVkRGF0YU1zZw0KK0NyeXB0U0lQUmVtb3ZlUHJvdmlkZXINCitDcnlwdFNJUFJlbW92ZVNpZ25lZERhdGFNc2cNCitDcnlwdFNJUFJldHJpZXZlU3ViamVjdEd1aWQNCitDcnlwdFNJUFJldHJpZXZlU3ViamVjdEd1aWRGb3JDYXRhbG9nRmlsZQ0KK0NyeXB0U0lQVmVyaWZ5SW5kaXJlY3REYXRhDQorQ3J5cHRTZXRBc3luY1BhcmFtDQorQ3J5cHRTZXRLZXlJZGVudGlmaWVyUHJvcGVydHkNCitDcnlwdFNldE9JREZ1bmN0aW9uVmFsdWUNCitDcnlwdFNldFByb3ZpZGVyVQ0KK0NyeXB0U2lnbkFuZEVuY29kZUNlcnRpZmljYXRlDQorQ3J5cHRTaWduQW5kRW5jcnlwdE1lc3NhZ2UNCitDcnlwdFNpZ25DZXJ0aWZpY2F0ZQ0KK0NyeXB0U2lnbkhhc2hVDQorQ3J5cHRTaWduTWVzc2FnZQ0KK0NyeXB0U2lnbk1lc3NhZ2VXaXRoS2V5DQorQ3J5cHRTdHJpbmdUb0JpbmFyeUENCitDcnlwdFN0cmluZ1RvQmluYXJ5Vw0KK0NyeXB0VW5pbnN0YWxsRGVmYXVsdENvbnRleHQNCitDcnlwdFVucHJvdGVjdERhdGENCitDcnlwdFVucHJvdGVjdE1lbW9yeQ0KK0NyeXB0VW5yZWdpc3RlckRlZmF1bHRPSURGdW5jdGlvbg0KK0NyeXB0VW5yZWdpc3Rlck9JREZ1bmN0aW9uDQorQ3J5cHRVbnJlZ2lzdGVyT0lESW5mbw0KK0NyeXB0VmVyaWZ5Q2VydGlmaWNhdGVTaWduYXR1cmUNCitDcnlwdFZlcmlmeUNlcnRpZmljYXRlU2lnbmF0dXJlRXgNCitDcnlwdFZlcmlmeURldGFjaGVkTWVzc2FnZUhhc2gNCitDcnlwdFZlcmlmeURldGFjaGVkTWVzc2FnZVNpZ25hdHVyZQ0KK0NyeXB0VmVyaWZ5TWVzc2FnZUhhc2gNCitDcnlwdFZlcmlmeU1lc3NhZ2VTaWduYXR1cmUNCitDcnlwdFZlcmlmeU1lc3NhZ2VTaWduYXR1cmVXaXRoS2V5DQorQ3J5cHRWZXJpZnlTaWduYXR1cmVVDQorSV9DZXJ0UHJvdGVjdEZ1bmN0aW9uDQorSV9DZXJ0U3J2UHJvdGVjdEZ1bmN0aW9uDQorSV9DZXJ0U3luY1N0b3JlDQorSV9DZXJ0VXBkYXRlU3RvcmUNCitJX0NyeXB0QWRkUmVmTHJ1RW50cnkNCitJX0NyeXB0QWRkU21hcnRDYXJkQ2VydFRvU3RvcmUNCitJX0NyeXB0QWxsb2NUbHMNCitJX0NyeXB0Q3JlYXRlTHJ1Q2FjaGUNCitJX0NyeXB0Q3JlYXRlTHJ1RW50cnkNCitJX0NyeXB0RGV0YWNoVGxzDQorSV9DcnlwdERpc2FibGVMcnVPZkVudHJpZXMNCitJX0NyeXB0RW5hYmxlTHJ1T2ZFbnRyaWVzDQorSV9DcnlwdEVudW1NYXRjaGluZ0xydUVudHJpZXMNCitJX0NyeXB0RmluZExydUVudHJ5DQorSV9DcnlwdEZpbmRMcnVFbnRyeURhdGENCitJX0NyeXB0RmluZFNtYXJ0Q2FyZENlcnRJblN0b3JlDQorSV9DcnlwdEZsdXNoTHJ1Q2FjaGUNCitJX0NyeXB0RnJlZUxydUNhY2hlDQorSV9DcnlwdEZyZWVUbHMNCitJX0NyeXB0R2V0QXNuMURlY29kZXINCitJX0NyeXB0R2V0QXNuMUVuY29kZXINCitJX0NyeXB0R2V0RGVmYXVsdENyeXB0UHJvdg0KK0lfQ3J5cHRHZXREZWZhdWx0Q3J5cHRQcm92Rm9yRW5jcnlwdA0KK0lfQ3J5cHRHZXRGaWxlVmVyc2lvbg0KK0lfQ3J5cHRHZXRMcnVFbnRyeURhdGENCitJX0NyeXB0R2V0THJ1RW50cnlJZGVudGlmaWVyDQorSV9DcnlwdEdldE9zc0dsb2JhbA0KK0lfQ3J5cHRHZXRUbHMNCitJX0NyeXB0SW5zZXJ0THJ1RW50cnkNCitJX0NyeXB0SW5zdGFsbEFzbjFNb2R1bGUNCitJX0NyeXB0SW5zdGFsbE9zc0dsb2JhbA0KK0lfQ3J5cHRSZWFkVHJ1c3RlZFB1Ymxpc2hlckRXT1JEVmFsdWVGcm9tUmVnaXN0cnkNCitJX0NyeXB0UmVnaXN0ZXJTbWFydENhcmRTdG9yZQ0KK0lfQ3J5cHRSZWxlYXNlTHJ1RW50cnkNCitJX0NyeXB0UmVtb3ZlTHJ1RW50cnkNCitJX0NyeXB0U2V0VGxzDQorSV9DcnlwdFRvdWNoTHJ1RW50cnkNCitJX0NyeXB0VW5pbnN0YWxsQXNuMU1vZHVsZQ0KK0lfQ3J5cHRVbmluc3RhbGxPc3NHbG9iYWwNCitJX0NyeXB0VW5yZWdpc3RlclNtYXJ0Q2FyZFN0b3JlDQorSV9DcnlwdFdhbGtBbGxMcnVDYWNoZUVudHJpZXMNCitQRlhFeHBvcnRDZXJ0U3RvcmUNCitQRlhFeHBvcnRDZXJ0U3RvcmVFeA0KK1BGWEltcG9ydENlcnRTdG9yZQ0KK1BGWElzUEZYQmxvYg0KK1BGWFZlcmlmeVBhc3N3b3JkDQorUmVnQ3JlYXRlSEtDVUtleUV4VQ0KK1JlZ0NyZWF0ZUtleUV4VQ0KK1JlZ0RlbGV0ZVZhbHVlVQ0KK1JlZ0VudW1WYWx1ZVUNCitSZWdPcGVuSEtDVUtleUV4VQ0KK1JlZ09wZW5LZXlFeFUNCitSZWdRdWVyeUluZm9LZXlVDQorUmVnUXVlcnlWYWx1ZUV4VQ0KK1JlZ1NldFZhbHVlRXhVDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NyeXB0ZGxnLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djcnlwdGRsZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGRjNGRjMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djcnlwdGRsZy5kZWYKQEAgLTAsMCArMSwyOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDUllQVERMRy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ1JZUFRETEcuZGxsDQorRVhQT1JUUw0KK0NlcnRDb25maWd1cmVUcnVzdEENCitDZXJ0Q29uZmlndXJlVHJ1c3RXDQorQ2VydFRydXN0Q2VydFBvbGljeQ0KK0NlcnRUcnVzdENsZWFudXANCitDZXJ0VHJ1c3RGaW5hbFBvbGljeQ0KK0NlcnRUcnVzdEluaXQNCitEZWNvZGVBdHRyU2VxdWVuY2UNCitEZWNvZGVSZWNpcGllbnRJRA0KK0VuY29kZUF0dHJTZXF1ZW5jZQ0KK0VuY29kZVJlY2lwaWVudElEDQorRm9ybWF0UEtJWEVtYWlsUHJvdGVjdGlvbg0KK0Zvcm1hdFZlcmlzaWduRXh0ZW5zaW9uDQorQ2VydE1vZGlmeUNlcnRpZmljYXRlc1RvVHJ1c3QNCitDZXJ0U2VsZWN0Q2VydGlmaWNhdGVBDQorQ2VydFNlbGVjdENlcnRpZmljYXRlVw0KK0NlcnRWaWV3UHJvcGVydGllc0ENCitDZXJ0Vmlld1Byb3BlcnRpZXNXDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorR2V0RnJpZW5kbHlOYW1lT2ZDZXJ0QQ0KK0dldEZyaWVuZGx5TmFtZU9mQ2VydFcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Y3J5cHRkbGwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2NyeXB0ZGxsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43YmQyODU3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2NyeXB0ZGxsLmRlZgpAQCAtMCwwICsxLDIyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGNyeXB0ZGxsLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBjcnlwdGRsbC5kbGwNCitFWFBPUlRTDQorQ0RCdWlsZEludGVncml0eVZlY3QNCitDREJ1aWxkVmVjdA0KK0NERmluZENvbW1vbkNTeXN0ZW0NCitDREZpbmRDb21tb25DU3lzdGVtV2l0aEtleQ0KK0NER2VuZXJhdGVSYW5kb21CaXRzDQorQ0RMb2NhdGVDU3lzdGVtDQorQ0RMb2NhdGVDaGVja1N1bQ0KK0NETG9jYXRlUm5nDQorQ0RSZWdpc3RlckNTeXN0ZW0NCitDRFJlZ2lzdGVyQ2hlY2tTdW0NCitDRFJlZ2lzdGVyUm5nDQorTUQ1RmluYWwNCitNRDVJbml0DQorTUQ1VXBkYXRlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NyeXB0ZXh0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djcnlwdGV4dC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjY5YWRlNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djcnlwdGV4dC5kZWYKQEAgLTAsMCArMSw0MCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDUllQVEVYVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ1JZUFRFWFQuZGxsDQorRVhQT1JUUw0KK0NyeXB0RXh0QWRkQ0VSDQorQ3J5cHRFeHRBZGRDRVJXDQorQ3J5cHRFeHRBZGRDUkwNCitDcnlwdEV4dEFkZENSTFcNCitDcnlwdEV4dEFkZENUTA0KK0NyeXB0RXh0QWRkQ1RMVw0KK0NyeXB0RXh0QWRkUDdSDQorQ3J5cHRFeHRBZGRQN1JXDQorQ3J5cHRFeHRBZGRQRlgNCitDcnlwdEV4dEFkZFBGWFcNCitDcnlwdEV4dEFkZFNQQw0KK0NyeXB0RXh0QWRkU1BDVw0KK0NyeXB0RXh0T3BlbkNBVA0KK0NyeXB0RXh0T3BlbkNBVFcNCitDcnlwdEV4dE9wZW5DRVINCitDcnlwdEV4dE9wZW5DRVJXDQorQ3J5cHRFeHRPcGVuQ1JMDQorQ3J5cHRFeHRPcGVuQ1JMVw0KK0NyeXB0RXh0T3BlbkNUTA0KK0NyeXB0RXh0T3BlbkNUTFcNCitDcnlwdEV4dE9wZW5QMTANCitDcnlwdEV4dE9wZW5QMTBXDQorQ3J5cHRFeHRPcGVuUDdSDQorQ3J5cHRFeHRPcGVuUDdSVw0KK0NyeXB0RXh0T3BlblBLQ1M3DQorQ3J5cHRFeHRPcGVuUEtDUzdXDQorQ3J5cHRFeHRPcGVuU1RSDQorQ3J5cHRFeHRPcGVuU1RSVw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NyeXB0bmV0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djcnlwdG5ldC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmY0NjdmNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djcnlwdG5ldC5kZWYKQEAgLTAsMCArMSwyNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDUllQVE5FVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ1JZUFRORVQuZGxsDQorRVhQT1JUUw0KK0NlcnREbGxWZXJpZnlDVExVc2FnZQ0KK0NlcnREbGxWZXJpZnlSZXZvY2F0aW9uDQorQ3J5cHRuZXRXbHhMb2dvZmZFdmVudA0KK0xkYXBQcm92T3BlblN0b3JlDQorQ3J5cHRDYW5jZWxBc3luY1JldHJpZXZhbA0KK0NyeXB0Rmx1c2hUaW1lVmFsaWRPYmplY3QNCitDcnlwdEdldE9iamVjdFVybA0KK0NyeXB0R2V0VGltZVZhbGlkT2JqZWN0DQorQ3J5cHRJbnN0YWxsQ2FuY2VsUmV0cmlldmFsDQorQ3J5cHRSZXRyaWV2ZU9iamVjdEJ5VXJsQQ0KK0NyeXB0UmV0cmlldmVPYmplY3RCeVVybFcNCitDcnlwdFVuaW5zdGFsbENhbmNlbFJldHJpZXZhbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0lfQ3J5cHROZXRFbnVtVXJsQ2FjaGVFbnRyeQ0KK0lfQ3J5cHROZXRHZXRIb3N0TmFtZUZyb21VcmwNCitJX0NyeXB0TmV0R2V0VXNlckRzU3RvcmVVcmwNCitJX0NyeXB0TmV0SXNDb25uZWN0ZWQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Y3J5cHRzdmMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2NyeXB0c3ZjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zOTY5YzVjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2NyeXB0c3ZjLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ1JZUFRTVkMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENSWVBUU1ZDLmRsbA0KK0VYUE9SVFMNCitDcnlwdFNlcnZpY2VNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2NyeXB0dWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2NyeXB0dWkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYyMThjNjQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y3J5cHR1aS5kZWYKQEAgLTAsMCArMSw1NiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDUllQVFVJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDUllQVFVJLmRsbA0KK0VYUE9SVFMNCitBQ1VJUHJvdmlkZXJJbnZva2VVSQ0KK0NyeXB0VUlEbGdDZXJ0TWdyDQorQ3J5cHRVSURsZ0ZyZWVDQUNvbnRleHQNCitDcnlwdFVJRGxnU2VsZWN0Q0ENCitDcnlwdFVJRGxnU2VsZWN0Q2VydGlmaWNhdGVBDQorQ3J5cHRVSURsZ1NlbGVjdENlcnRpZmljYXRlRnJvbVN0b3JlDQorQ3J5cHRVSURsZ1NlbGVjdENlcnRpZmljYXRlVw0KK0NyeXB0VUlEbGdTZWxlY3RTdG9yZUENCitDcnlwdFVJRGxnU2VsZWN0U3RvcmVXDQorQ3J5cHRVSURsZ1ZpZXdDUkxBDQorQ3J5cHRVSURsZ1ZpZXdDUkxXDQorQ3J5cHRVSURsZ1ZpZXdDVExBDQorQ3J5cHRVSURsZ1ZpZXdDVExXDQorQ3J5cHRVSURsZ1ZpZXdDZXJ0aWZpY2F0ZUENCitDcnlwdFVJRGxnVmlld0NlcnRpZmljYXRlUHJvcGVydGllc0ENCitDcnlwdFVJRGxnVmlld0NlcnRpZmljYXRlUHJvcGVydGllc1cNCitDcnlwdFVJRGxnVmlld0NlcnRpZmljYXRlVw0KK0NyeXB0VUlEbGdWaWV3Q29udGV4dA0KK0NyeXB0VUlEbGdWaWV3U2lnbmVySW5mb0ENCitDcnlwdFVJRGxnVmlld1NpZ25lckluZm9XDQorQ3J5cHRVSUZyZWVDZXJ0aWZpY2F0ZVByb3BlcnRpZXNQYWdlc0ENCitDcnlwdFVJRnJlZUNlcnRpZmljYXRlUHJvcGVydGllc1BhZ2VzVw0KK0NyeXB0VUlGcmVlVmlld1NpZ25hdHVyZXNQYWdlc0ENCitDcnlwdFVJRnJlZVZpZXdTaWduYXR1cmVzUGFnZXNXDQorQ3J5cHRVSUdldENlcnRpZmljYXRlUHJvcGVydGllc1BhZ2VzQQ0KK0NyeXB0VUlHZXRDZXJ0aWZpY2F0ZVByb3BlcnRpZXNQYWdlc1cNCitDcnlwdFVJR2V0Vmlld1NpZ25hdHVyZXNQYWdlc0ENCitDcnlwdFVJR2V0Vmlld1NpZ25hdHVyZXNQYWdlc1cNCitDcnlwdFVJU3RhcnRDZXJ0TWdyDQorQ3J5cHRVSVdpekJ1aWxkQ1RMDQorQ3J5cHRVSVdpekNlcnRSZXF1ZXN0DQorQ3J5cHRVSVdpekNyZWF0ZUNlcnRSZXF1ZXN0Tm9EUw0KK0NyeXB0VUlXaXpEaWdpdGFsU2lnbg0KK0NyeXB0VUlXaXpFeHBvcnQNCitDcnlwdFVJV2l6RnJlZUNlcnRSZXF1ZXN0Tm9EUw0KK0NyeXB0VUlXaXpGcmVlRGlnaXRhbFNpZ25Db250ZXh0DQorQ3J5cHRVSVdpekltcG9ydA0KK0NyeXB0VUlXaXpRdWVyeUNlcnRSZXF1ZXN0Tm9EUw0KK0NyeXB0VUlXaXpTdWJtaXRDZXJ0UmVxdWVzdE5vRFMNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitFbnJvbGxtZW50Q09NT2JqZWN0RmFjdG9yeV9nZXRJbnN0YW5jZQ0KK0lfQ3J5cHRVSVByb3RlY3QNCitJX0NyeXB0VUlQcm90ZWN0RmFpbHVyZQ0KK0xvY2FsRW5yb2xsDQorTG9jYWxFbnJvbGxOb0RTDQorUmV0cmlldmVQS0NTN0Zyb21DQQ0KK1dpemFyZEZyZWUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Y3NhcGkzdDEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2NzYXBpM3QxLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNTE5NmMwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2NzYXBpM3QxLmRlZgpAQCAtMCwwICsxLDI0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGNzYXBpM3QxLm5iYnQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZICJjc2FwaTN0MS5uYmJ0LmRsbCINCitFWFBPUlRTDQorU3BlbGxlclNldERsbE5hbWUNCitTcGVsbGVyVmVyc2lvbg0KK1NwZWxsZXJJbml0DQorU3BlbGxlclRlcm1pbmF0ZQ0KK1NwZWxsZXJPcGVuTGV4DQorU3BlbGxlckNsb3NlTGV4DQorU3BlbGxlclNldE9wdGlvbnMNCitTcGVsbGVyR2V0T3B0aW9ucw0KK1NwZWxsZXJBZGRDaGFuZ2VVZHINCitTcGVsbGVyQWRkVWRyDQorU3BlbGxlckJ1aWx0aW5VZHINCitTcGVsbGVyQ2hlY2sNCitTcGVsbGVyQ2xlYXJVZHINCitTcGVsbGVyRGVsVWRyDQorU3BlbGxlckdldExpc3RVZHINCitTcGVsbGVyR2V0U2l6ZVVkcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djc2NkbGwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2NzY2RsbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDRhYzI2OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djc2NkbGwuZGVmCkBAIC0wLDAgKzEsNzYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ1NDRExMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBDU0NETEwuZGxsDQorRVhQT1JUUw0KK01wclNlcnZpY2VQcm9jDQorUmVJbnRfV25kUHJvYw0KK0xvZ29uSGFwcGVuZWQNCitMb2dvZmZIYXBwZW5lZA0KK1VwZGF0ZQ0KK1JlZnJlc2hDb25uZWN0aW9ucw0KK0JyZWFrQ29ubmVjdGlvbnMNCitDaGVja0NTQw0KK0NTQ0lzQ1NDRW5hYmxlZA0KK0NTQ0ZpbmRDbG9zZQ0KK0NTQ1NldE1heFNwYWNlDQorQ1NDRnJlZVNwYWNlDQorQ2hlY2tDU0NFeA0KK0NTQ0RvRW5hYmxlRGlzYWJsZQ0KK0NTQ1BpbkZpbGVBDQorQ1NDVW5waW5GaWxlQQ0KK0NTQ1F1ZXJ5RmlsZVN0YXR1c0ENCitDU0NGaW5kRmlyc3RGaWxlQQ0KK0NTQ0ZpbmROZXh0RmlsZUENCitDU0NEZWxldGVBDQorQ1NDRmlsbFNwYXJzZUZpbGVzQQ0KK0NTQ01lcmdlU2hhcmVBDQorQ1NDQ29weVJlcGxpY2FBDQorQ1NDRW51bUZvclN0YXRzQQ0KK0NTQ0lzU2VydmVyT2ZmbGluZUENCitDU0NHZXRTcGFjZVVzYWdlQQ0KK0NTQ1RyYW5zaXRpb25TZXJ2ZXJPbmxpbmVBDQorQ1NDQ2hlY2tTaGFyZU9ubGluZUENCitDU0NEb0xvY2FsUmVuYW1lQQ0KK0NTQ0VudW1Gb3JTdGF0c0V4QQ0KK0NTQ0ZpbmRGaXJzdEZpbGVGb3JTaWRBDQorQ1NDUXVlcnlGaWxlU3RhdHVzRXhBDQorQ1NDUXVlcnlTaGFyZVN0YXR1c0ENCitDU0NQdXJnZVVucGlubmVkRmlsZXMNCitDU0NQaW5GaWxlVw0KK0NTQ1VucGluRmlsZVcNCitDU0NRdWVyeUZpbGVTdGF0dXNXDQorQ1NDRmluZEZpcnN0RmlsZVcNCitDU0NGaW5kTmV4dEZpbGVXDQorQ1NDRGVsZXRlVw0KK0NTQ0ZpbGxTcGFyc2VGaWxlc1cNCitDU0NNZXJnZVNoYXJlVw0KK0NTQ0NvcHlSZXBsaWNhVw0KK0NTQ0VudW1Gb3JTdGF0c1cNCitDU0NJc1NlcnZlck9mZmxpbmVXDQorQ1NDR2V0U3BhY2VVc2FnZVcNCitDU0NUcmFuc2l0aW9uU2VydmVyT25saW5lVw0KK0NTQ0NoZWNrU2hhcmVPbmxpbmVXDQorQ1NDRG9Mb2NhbFJlbmFtZVcNCitDU0NFbnVtRm9yU3RhdHNFeFcNCitDU0NEb0xvY2FsUmVuYW1lRXhXDQorQ1NDQ2hlY2tTaGFyZU9ubGluZUV4Vw0KK0NTQ0JlZ2luU3luY2hyb25pemF0aW9uVw0KK0NTQ0VuZFN5bmNocm9uaXphdGlvblcNCitDU0NGaW5kRmlyc3RGaWxlRm9yU2lkVw0KK0NTQ0VuY3J5cHREZWNyeXB0RGF0YWJhc2UNCitDU0NRdWVyeURhdGFiYXNlU3RhdHVzDQorQ1NDUXVlcnlGaWxlU3RhdHVzRXhXDQorQ1NDUXVlcnlTaGFyZVN0YXR1c1cNCitDU0NTaGFyZUlkVG9TaGFyZU5hbWUNCitXaW5sb2dvbkxvZ29uRXZlbnQNCitXaW5sb2dvbkxvZ29mZkV2ZW50DQorV2lubG9nb25TY3JlZW5TYXZlckV2ZW50DQorV2lubG9nb25TaHV0ZG93bkV2ZW50DQorV2lubG9nb25Mb2NrRXZlbnQNCitXaW5sb2dvblVubG9ja0V2ZW50DQorV2lubG9nb25TdGFydFNoZWxsRXZlbnQNCitXaW5sb2dvblN0YXJ0dXBFdmVudA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djc2N1aS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y3NjdWkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRhODNjMzAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y3NjdWkuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ1NDVUkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENTQ1VJLmRsbA0KK0VYUE9SVFMNCitDU0NVSU9wdGlvbnNQcm9wZXJ0eVNoZWV0DQorUHJvY2Vzc0dyb3VwUG9saWN5DQorQ1NDT3B0aW9uc19SdW5ETEwNCitDU0NPcHRpb25zX1J1bkRMTEENCitDU0NPcHRpb25zX1J1bkRMTFcNCitDU0NVSUluaXRpYWxpemUNCitDU0NVSU1zZ1Byb2Nlc3MNCitDU0NVSVJlbW92ZUZvbGRlckZyb21DYWNoZQ0KK0NTQ1VJU2V0U3RhdGUNCitDc2NQb2xpY3lQcm9jZXNzaW5nX1J1bkRMTFcNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djc3NlcWNoay5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y3NzZXFjaGsuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRlMjAyMDQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y3NzZXFjaGsuZGVmCkBAIC0wLDAgKzEsMjEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ1NTRVFDSEsuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENTU0VRQ0hLLmRsbA0KK0VYUE9SVFMNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbENhblVubG9hZE5vdw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0lTQ0NyZWF0ZU9iamVjdA0KK0lTQ0Rlc3Ryb3lPYmplY3QNCitJU0NDaGVja1NlcXVlbmNlDQorSVNDR2V0Q29udGV4dA0KK0lTQ0dldEN1cnJlbnRTdGF0ZQ0KK0lTQ1NldEN1cnJlbnRTdGF0ZQ0KK0lTQ01hY3JvU2VxdWVuY2VDaGVjaw0KK0lTQ0RlY29kZUNvbW1hbmQNCitJU0NEZWNvZGVDb21tYW5kRXgNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Y3RsM2QzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y3RsM2QzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTdmZjc2MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djdGwzZDMyLmRlZgpAQCAtMCwwICsxLDMzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIENUTDNEMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENUTDNEMzIuZGxsDQorRVhQT1JUUw0KK0N0bDNkR2V0VmVyDQorQ3RsM2RTdWJjbGFzc0RsZw0KK0N0bDNkU3ViY2xhc3NDdGwNCitDdGwzZEN0bENvbG9yDQorQ3RsM2RFbmFibGVkDQorQ3RsM2RDb2xvckNoYW5nZQ0KK0J0blduZFByb2MzZA0KK0VkaXRXbmRQcm9jM2QNCitMaXN0V25kUHJvYzNkDQorQ29tYm9XbmRQcm9jM2QNCitTdGF0aWNXbmRQcm9jM2QNCitDdGwzZFJlZ2lzdGVyDQorQ3RsM2RVbnJlZ2lzdGVyDQorQ3RsM2RBdXRvU3ViY2xhc3MNCitDdGwzZERsZ1Byb2MNCitDdGwzZEN0bENvbG9yRXgNCitDdGwzZFNldFN0eWxlDQorQ3RsM2REbGdGcmFtZVBhaW50DQorQ3RsM2RTdWJjbGFzc0RsZ0V4DQorQ3RsM2RXaW5JbmlDaGFuZ2UNCitDdGwzZElzQXV0b1N1YmNsYXNzDQorQ3RsM2RVbkF1dG9TdWJjbGFzcw0KK0N0bDNkU3ViY2xhc3NDdGxFeA0KK0N0bDNkVW5zdWJjbGFzc0N0bA0KK0N0bDNkQXV0b1N1YmNsYXNzRXgNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Y3VzdHNhdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y3VzdHNhdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDFhMDhmZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djdXN0c2F0LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGN1c3RzYXQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGN1c3RzYXQuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2N5eWNvaW5zLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djeXljb2lucy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGU3OGY0MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djeXljb2lucy5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDWVlDT0lOUy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ1lZQ09JTlMuRExMDQorRVhQT1JUUw0KK0N5Y2xvbXlDb0luc3RhbGxlcg0KK0N5Y2xvbXlQcm9wUGFnZVByb3ZpZGVyDQorTGliTWFpbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djeXlwb3J0cy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y3l5cG9ydHMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMyNzVhYmIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y3l5cG9ydHMuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ1lZUE9SVFMuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENZWVBPUlRTLkRMTA0KK0VYUE9SVFMNCitDeXlwb3J0QWR2YW5jZWREaWFsb2cNCitDeXlwb3J0Q29JbnN0YWxsZXINCitMaWJNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2N5emNvaW5zLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3djeXpjb2lucy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTFlNWJhZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3djeXpjb2lucy5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBDWVpDT0lOUy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQ1laQ09JTlMuRExMDQorRVhQT1JUUw0KK0N5Y2xhZHpDb0luc3RhbGxlcg0KK0N5Y2xhZHpQcm9wUGFnZVByb3ZpZGVyDQorTGliTWFpbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3djeXpwb3J0cy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Y3l6cG9ydHMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU1MGZlYTIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Y3l6cG9ydHMuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgQ1laUE9SVFMuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIENZWlBPUlRTLkRMTA0KK0VYUE9SVFMNCitDeXpwb3J0QWR2YW5jZWREaWFsb2cNCitDeXpwb3J0Q29JbnN0YWxsZXINCitMaWJNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2QzZDguZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2QzZDguZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUxYmFkMDkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZDNkOC5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBkM2Q4LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkM2Q4LmRsbA0KK0VYUE9SVFMNCitDaGVja0Z1bGxzY3JlZW4NCitWYWxpZGF0ZVBpeGVsU2hhZGVyDQorVmFsaWRhdGVWZXJ0ZXhTaGFkZXINCitEZWJ1Z1NldE11dGUNCitEaXJlY3QzRENyZWF0ZTgNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZDNkOHRoay5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZDNkOHRoay5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTI2NmZiZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkM2Q4dGhrLmRlZgpAQCAtMCwwICsxLDY0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGQzZDh0aGsuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGQzZDh0aGsuZGxsDQorRVhQT1JUUw0KK09zVGh1bmtEM2RDb250ZXh0Q3JlYXRlDQorT3NUaHVua0QzZENvbnRleHREZXN0cm95DQorT3NUaHVua0QzZENvbnRleHREZXN0cm95QWxsDQorT3NUaHVua0QzZERyYXdQcmltaXRpdmVzMg0KK09zVGh1bmtEM2RWYWxpZGF0ZVRleHR1cmVTdGFnZVN0YXRlDQorT3NUaHVua0RkQWRkQXR0YWNoZWRTdXJmYWNlDQorT3NUaHVua0RkQWxwaGFCbHQNCitPc1RodW5rRGRBdHRhY2hTdXJmYWNlDQorT3NUaHVua0RkQmVnaW5Nb0NvbXBGcmFtZQ0KK09zVGh1bmtEZEJsdA0KK09zVGh1bmtEZENhbkNyZWF0ZUQzREJ1ZmZlcg0KK09zVGh1bmtEZENhbkNyZWF0ZVN1cmZhY2UNCitPc1RodW5rRGRDb2xvckNvbnRyb2wNCitPc1RodW5rRGRDcmVhdGVEM0RCdWZmZXINCitPc1RodW5rRGRDcmVhdGVEaXJlY3REcmF3T2JqZWN0DQorT3NUaHVua0RkQ3JlYXRlTW9Db21wDQorT3NUaHVua0RkQ3JlYXRlU3VyZmFjZQ0KK09zVGh1bmtEZENyZWF0ZVN1cmZhY2VFeA0KK09zVGh1bmtEZENyZWF0ZVN1cmZhY2VPYmplY3QNCitPc1RodW5rRGREZWxldGVEaXJlY3REcmF3T2JqZWN0DQorT3NUaHVua0RkRGVsZXRlU3VyZmFjZU9iamVjdA0KK09zVGh1bmtEZERlc3Ryb3lEM0RCdWZmZXINCitPc1RodW5rRGREZXN0cm95TW9Db21wDQorT3NUaHVua0RkRGVzdHJveVN1cmZhY2UNCitPc1RodW5rRGRFbmRNb0NvbXBGcmFtZQ0KK09zVGh1bmtEZEZsaXANCitPc1RodW5rRGRGbGlwVG9HRElTdXJmYWNlDQorT3NUaHVua0RkR2V0QXZhaWxEcml2ZXJNZW1vcnkNCitPc1RodW5rRGRHZXRCbHRTdGF0dXMNCitPc1RodW5rRGRHZXREQw0KK09zVGh1bmtEZEdldERyaXZlckluZm8NCitPc1RodW5rRGRHZXREcml2ZXJTdGF0ZQ0KK09zVGh1bmtEZEdldER4SGFuZGxlDQorT3NUaHVua0RkR2V0RmxpcFN0YXR1cw0KK09zVGh1bmtEZEdldEludGVybmFsTW9Db21wSW5mbw0KK09zVGh1bmtEZEdldE1vQ29tcEJ1ZmZJbmZvDQorT3NUaHVua0RkR2V0TW9Db21wRm9ybWF0cw0KK09zVGh1bmtEZEdldE1vQ29tcEd1aWRzDQorT3NUaHVua0RkR2V0U2NhbkxpbmUNCitPc1RodW5rRGRMb2NrDQorT3NUaHVua0RkTG9ja0QzRA0KK09zVGh1bmtEZFF1ZXJ5RGlyZWN0RHJhd09iamVjdA0KK09zVGh1bmtEZFF1ZXJ5TW9Db21wU3RhdHVzDQorT3NUaHVua0RkUmVlbmFibGVEaXJlY3REcmF3T2JqZWN0DQorT3NUaHVua0RkUmVsZWFzZURDDQorT3NUaHVua0RkUmVuZGVyTW9Db21wDQorT3NUaHVua0RkUmVzZXRWaXNyZ24NCitPc1RodW5rRGRTZXRDb2xvcktleQ0KK09zVGh1bmtEZFNldEV4Y2x1c2l2ZU1vZGUNCitPc1RodW5rRGRTZXRHYW1tYVJhbXANCitPc1RodW5rRGRTZXRPdmVybGF5UG9zaXRpb24NCitPc1RodW5rRGRVbmF0dGFjaFN1cmZhY2UNCitPc1RodW5rRGRVbmxvY2sNCitPc1RodW5rRGRVbmxvY2tEM0QNCitPc1RodW5rRGRVcGRhdGVPdmVybGF5DQorT3NUaHVua0RkV2FpdEZvclZlcnRpY2FsQmxhbmsNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZDNkOS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZDNkOS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTdlY2UwMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkM2Q5LmRlZgpAQCAtMCwwICsxLDIyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGQzZDkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGQzZDkuZGxsDQorRVhQT1JUUw0KK0NoZWNrRnVsbHNjcmVlbg0KK0RpcmVjdDNEU2hhZGVyVmFsaWRhdG9yQ3JlYXRlOQ0KK1BTR1BFcnJvcg0KK1BTR1BTYW1wbGVUZXh0dXJlDQorRDNEUEVSRl9CZWdpbkV2ZW50DQorRDNEUEVSRl9FbmRFdmVudA0KK0QzRFBFUkZfR2V0U3RhdHVzDQorRDNEUEVSRl9RdWVyeVJlcGVhdEZyYW1lDQorRDNEUEVSRl9TZXRNYXJrZXINCitEM0RQRVJGX1NldE9wdGlvbnMNCitEM0RQRVJGX1NldFJlZ2lvbg0KK0RlYnVnU2V0TGV2ZWwNCitEZWJ1Z1NldE11dGUNCitEaXJlY3QzRENyZWF0ZTkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZDNkaW0uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2QzZGltLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZTJjODlkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2QzZGltLmRlZgpAQCAtMCwwICsxLDIxIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGQzZGltLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkM2RpbS5kbGwNCitFWFBPUlRTDQorRDNERnJlZQ0KK0QzRE1hbGxvYw0KK0QzRFJlYWxsb2MNCitEaXJlY3QzRENyZWF0ZURldmljZQ0KK0RpcmVjdDNEQ3JlYXRlVGV4dHVyZQ0KK0RpcmVjdDNER2V0U1dSYXN0WlBpeEZtdHMNCitEaXJlY3QzRENyZWF0ZQ0KK0RpcmVjdDNEX0hBTENsZWFuVXANCitGbHVzaEQzRERldmljZXMyDQorRmx1c2hEM0REZXZpY2VzDQorUGFsZXR0ZUFzc29jaWF0ZU5vdGlmeQ0KK1BhbGV0dGVVcGRhdGVOb3RpZnkNCitTdXJmYWNlRmxpcE5vdGlmeQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkM2RpbTcwMC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZDNkaW03MDAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIyY2ViZWQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZDNkaW03MDAuZGVmCkBAIC0wLDAgKzEsMjYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZDNkaW03MDAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGQzZGltNzAwLmRsbA0KK0VYUE9SVFMNCitEM0RGcmVlDQorRDNETWFsbG9jDQorRDNEUmVhbGxvYw0KK0RpcmVjdDNEQ3JlYXRlRGV2aWNlDQorQ3JlYXRlVGV4dHVyZQ0KK0QzREJyZWFrVkJMb2NrDQorRDNEVGV4dHVyZVVwZGF0ZQ0KK0Rlc3Ryb3lUZXh0dXJlDQorRGlyZWN0M0RDcmVhdGUNCitEaXJlY3QzRF9IQUxDbGVhblVwDQorRmx1c2hEM0REZXZpY2VzDQorR2V0TE9EDQorR2V0UHJpb3JpdHkNCitQYWxldHRlQXNzb2NpYXRlTm90aWZ5DQorUGFsZXR0ZVVwZGF0ZU5vdGlmeQ0KK1NldExPRA0KK1NldFByaW9yaXR5DQorU3VyZmFjZUZsaXBOb3RpZnkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZDNkcG1lc2guZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2QzZHBtZXNoLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZDU1OGU3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2QzZHBtZXNoLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZDNkcG1lc2guZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGQzZHBtZXNoLmRsbA0KK0VYUE9SVFMNCitDcmVhdGVEM0RSTVBNZXNoVmlzdWFsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2QzZHJhbXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2QzZHJhbXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNjZjNmNDgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZDNkcmFtcC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBkM2RyYW1wLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkM2RyYW1wLmRsbA0KK0VYUE9SVFMNCitSYW1wT2xkVHJpDQorZ19SYW1wT2xkX0JlYWRUYmwgREFUQQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkM2RybS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZDNkcm0uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjViNjA4YTkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZDNkcm0uZGVmCkBAIC0wLDAgKzEsMzEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZDNkcm0uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGQzZHJtLmRsbA0KK0VYUE9SVFMNCitEM0RSTUNvbG9yR2V0QWxwaGENCitEM0RSTUNvbG9yR2V0Qmx1ZQ0KK0QzRFJNQ29sb3JHZXRHcmVlbg0KK0QzRFJNQ29sb3JHZXRSZWQNCitEM0RSTUNyZWF0ZUNvbG9yUkdCDQorRDNEUk1DcmVhdGVDb2xvclJHQkENCitEM0RSTU1hdHJpeEZyb21RdWF0ZXJuaW9uDQorRDNEUk1RdWF0ZXJuaW9uRnJvbVJvdGF0aW9uDQorRDNEUk1RdWF0ZXJuaW9uTXVsdGlwbHkNCitEM0RSTVF1YXRlcm5pb25TbGVycA0KK0QzRFJNVmVjdG9yQWRkDQorRDNEUk1WZWN0b3JDcm9zc1Byb2R1Y3QNCitEM0RSTVZlY3RvckRvdFByb2R1Y3QNCitEM0RSTVZlY3Rvck1vZHVsdXMNCitEM0RSTVZlY3Rvck5vcm1hbGl6ZQ0KK0QzRFJNVmVjdG9yUmFuZG9tDQorRDNEUk1WZWN0b3JSZWZsZWN0DQorRDNEUk1WZWN0b3JSb3RhdGUNCitEM0RSTVZlY3RvclNjYWxlDQorRDNEUk1WZWN0b3JTdWJ0cmFjdA0KK0RpcmVjdDNEUk1DcmVhdGUNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkM2R4b2YuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2QzZHhvZi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDA4NmU0NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkM2R4b2YuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZDNkeG9mLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkM2R4b2YuZGxsDQorRVhQT1JUUw0KK0RpcmVjdFhGaWxlQ3JlYXRlDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZGFuaW0uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RhbmltLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MDY5ZmNlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2RhbmltLmRlZgpAQCAtMCwwICsxLDExOTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgREFOSU0uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERBTklNLmRsbA0KK0VYUE9SVFMNCis7IGNsYXNzIENSQnZyICogX19zdGRjYWxsIENPTVRvQ1JCdnIoc3RydWN0IElVbmtub3duICopDQorP0NPTVRvQ1JCdnJAQFlHUEFWQ1JCdnJAQFBBVUlVbmtub3duQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JBYnMoY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JBYnNAQFlHUEFWQ1JOdW1iZXJAQFBBVjFAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSQWNvcyhjbGFzcyBDUk51bWJlciAqKQ0KKz9DUkFjb3NAQFlHUEFWQ1JOdW1iZXJAQFBBVjFAQFoNCis7IGJvb2wgX19zdGRjYWxsIENSQWNxdWlyZUdDTG9jayh2b2lkKQ0KKz9DUkFjcXVpcmVHQ0xvY2tAQFlHX05YWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JBZGQoY2xhc3MgQ1JOdW1iZXIgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUkFkZEBAWUdQQVZDUk51bWJlckBAUEFWMUAwQFoNCis7IGNsYXNzIENSUG9pbnQyICogX19zdGRjYWxsIENSQWRkKGNsYXNzIENSUG9pbnQyICosY2xhc3MgQ1JWZWN0b3IyICopDQorP0NSQWRkQEBZR1BBVkNSUG9pbnQyQEBQQVYxQFBBVkNSVmVjdG9yMkBAQFoNCis7IGNsYXNzIENSUG9pbnQzICogX19zdGRjYWxsIENSQWRkKGNsYXNzIENSUG9pbnQzICosY2xhc3MgQ1JWZWN0b3IzICopDQorP0NSQWRkQEBZR1BBVkNSUG9pbnQzQEBQQVYxQFBBVkNSVmVjdG9yM0BAQFoNCis7IGNsYXNzIENSVmVjdG9yMiAqIF9fc3RkY2FsbCBDUkFkZChjbGFzcyBDUlZlY3RvcjIgKixjbGFzcyBDUlZlY3RvcjIgKikNCis/Q1JBZGRAQFlHUEFWQ1JWZWN0b3IyQEBQQVYxQDBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19zdGRjYWxsIENSQWRkKGNsYXNzIENSVmVjdG9yMyAqLGNsYXNzIENSVmVjdG9yMyAqKQ0KKz9DUkFkZEBAWUdQQVZDUlZlY3RvcjNAQFBBVjFAMEBaDQorOyBib29sIF9fc3RkY2FsbCBDUkFkZEJ2clRvUnVuKGNsYXNzIENSVmlldyAqLGNsYXNzIENSQnZyICosYm9vbCxsb25nICopDQorP0NSQWRkQnZyVG9SdW5AQFlHX05QQVZDUlZpZXdAQFBBVkNSQnZyQEBfTlBBSkBaDQorOyBsb25nIF9fc3RkY2FsbCBDUkFkZEVsZW1lbnQoY2xhc3MgQ1JBcnJheSAqLGNsYXNzIENSQnZyICosdW5zaWduZWQgbG9uZykNCis/Q1JBZGRFbGVtZW50QEBZR0pQQVZDUkFycmF5QEBQQVZDUkJ2ckBAS0BaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSQWRkUGlja0RhdGEoY2xhc3MgQ1JHZW9tZXRyeSAqLHN0cnVjdCBJVW5rbm93biAqLGJvb2wpDQorP0NSQWRkUGlja0RhdGFAQFlHUEFWQ1JHZW9tZXRyeUBAUEFWMUBQQVVJVW5rbm93bkBAX05AWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fc3RkY2FsbCBDUkFkZFBpY2tEYXRhKGNsYXNzIENSSW1hZ2UgKixzdHJ1Y3QgSVVua25vd24gKixib29sKQ0KKz9DUkFkZFBpY2tEYXRhQEBZR1BBVkNSSW1hZ2VAQFBBVjFAUEFVSVVua25vd25AQF9OQFoNCis7IGJvb2wgX19zdGRjYWxsIENSQWRkUmVmR0Modm9pZCAqKQ0KKz9DUkFkZFJlZkdDQEBZR19OUEFYQFoNCis7IGJvb2wgX19zdGRjYWxsIENSQWRkU2l0ZShjbGFzcyBDUlNpdGUgKikNCis/Q1JBZGRTaXRlQEBZR19OUEFWQ1JTaXRlQEBAWg0KKzsgY2xhc3MgQ1JFdmVudCAqIF9fc3RkY2FsbCBDUkFsd2F5cyh2b2lkKQ0KKz9DUkFsd2F5c0BAWUdQQVZDUkV2ZW50QEBYWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fc3RkY2FsbCBDUkFtYmllbnRDb2xvcihjbGFzcyBDUkdlb21ldHJ5ICosY2xhc3MgQ1JDb2xvciAqKQ0KKz9DUkFtYmllbnRDb2xvckBAWUdQQVZDUkdlb21ldHJ5QEBQQVYxQFBBVkNSQ29sb3JAQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSQW1iaWVudExpZ2h0KHZvaWQpDQorP0NSQW1iaWVudExpZ2h0QEBZR1BBVkNSR2VvbWV0cnlAQFhaDQorOyBjbGFzcyBDUkJvb2xlYW4gKiBfX3N0ZGNhbGwgQ1JBbmQoY2xhc3MgQ1JCb29sZWFuICosY2xhc3MgQ1JCb29sZWFuICopDQorP0NSQW5kQEBZR1BBVkNSQm9vbGVhbkBAUEFWMUAwQFoNCis7IGNsYXNzIENSRXZlbnQgKiBfX3N0ZGNhbGwgQ1JBbmRFdmVudChjbGFzcyBDUkV2ZW50ICosY2xhc3MgQ1JFdmVudCAqKQ0KKz9DUkFuZEV2ZW50QEBZR1BBVkNSRXZlbnRAQFBBVjFAMEBaDQorOyBjbGFzcyBDUkZvbnRTdHlsZSAqIF9fc3RkY2FsbCBDUkFudGlBbGlhc2luZyhjbGFzcyBDUkZvbnRTdHlsZSAqLGRvdWJsZSkNCis/Q1JBbnRpQWxpYXNpbmdAQFlHUEFWQ1JGb250U3R5bGVAQFBBVjFATkBaDQorOyBjbGFzcyBDUkxpbmVTdHlsZSAqIF9fc3RkY2FsbCBDUkFudGlBbGlhc2luZyhjbGFzcyBDUkxpbmVTdHlsZSAqLGRvdWJsZSkNCis/Q1JBbnRpQWxpYXNpbmdAQFlHUEFWQ1JMaW5lU3R5bGVAQFBBVjFATkBaDQorOyBjbGFzcyBDUkV2ZW50ICogX19zdGRjYWxsIENSQXBwVHJpZ2dlcmVkRXZlbnQodm9pZCkNCis/Q1JBcHBUcmlnZ2VyZWRFdmVudEBAWUdQQVZDUkV2ZW50QEBYWg0KKzsgY2xhc3MgQ1JEWFRyYW5zZm9ybVJlc3VsdCAqIF9fc3RkY2FsbCBDUkFwcGx5RFhUcmFuc2Zvcm0oc3RydWN0IElVbmtub3duICosbG9uZyxjbGFzcyBDUkJ2ciAqICosY2xhc3MgQ1JCdnIgKikNCis/Q1JBcHBseURYVHJhbnNmb3JtQEBZR1BBVkNSRFhUcmFuc2Zvcm1SZXN1bHRAQFBBVUlVbmtub3duQEBKUEFQQVZDUkJ2ckBAUEFWM0BAWg0KKzsgY2xhc3MgQ1JDb2xvciAqIF9fc3RkY2FsbCBDUkFxdWEodm9pZCkNCis/Q1JBcXVhQEBZR1BBVkNSQ29sb3JAQFhaDQorOyBjbGFzcyBDUlBhdGgyICogX19zdGRjYWxsIENSQXJjKGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSkNCis/Q1JBcmNAQFlHUEFWQ1JQYXRoMkBATk5OTkBaDQorOyBjbGFzcyBDUlBhdGgyICogX19zdGRjYWxsIENSQXJjUmFkaWFucyhkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUpDQorP0NSQXJjUmFkaWFuc0BAWUdQQVZDUlBhdGgyQEBOTk5OQFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3N0ZGNhbGwgQ1JBcmNSYWRpYW5zKGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKixjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSQXJjUmFkaWFuc0BAWUdQQVZDUlBhdGgyQEBQQVZDUk51bWJlckBAMDAwQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSQXNpbihjbGFzcyBDUk51bWJlciAqKQ0KKz9DUkFzaW5AQFlHUEFWQ1JOdW1iZXJAQFBBVjFAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSQXRhbjIoY2xhc3MgQ1JOdW1iZXIgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUkF0YW4yQEBZR1BBVkNSTnVtYmVyQEBQQVYxQDBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JBdGFuKGNsYXNzIENSTnVtYmVyICopDQorP0NSQXRhbkBAWUdQQVZDUk51bWJlckBAUEFWMUBAWg0KKzsgY2xhc3MgQ1JFdmVudCAqIF9fc3RkY2FsbCBDUkF0dGFjaERhdGEoY2xhc3MgQ1JFdmVudCAqLGNsYXNzIENSQnZyICopDQorP0NSQXR0YWNoRGF0YUBAWUdQQVZDUkV2ZW50QEBQQVYxQFBBVkNSQnZyQEBAWg0KKzsgY2xhc3MgQ1JCdnIgKiBfX3N0ZGNhbGwgQ1JCU3BsaW5lKGludCxsb25nLGNsYXNzIENSTnVtYmVyICogKiBjb25zdCxsb25nLGNsYXNzIENSQnZyICogKiBjb25zdCxsb25nLGNsYXNzIENSTnVtYmVyICogKiBjb25zdCxjbGFzcyBDUk51bWJlciAqLGVudW0gQ1JfQlZSX1RZUEVJRCkNCis/Q1JCU3BsaW5lQEBZR1BBVkNSQnZyQEBISlFBUEFWQ1JOdW1iZXJAQEpRQVBBVjFASjBQQVYyQFc0Q1JfQlZSX1RZUEVJREBAQFoNCis7IGNsYXNzIENSR2VvbWV0cnkgKiBfX3N0ZGNhbGwgQ1JCaWxsYm9hcmQoY2xhc3MgQ1JHZW9tZXRyeSAqLGNsYXNzIENSVmVjdG9yMyAqKQ0KKz9DUkJpbGxib2FyZEBAWUdQQVZDUkdlb21ldHJ5QEBQQVYxQFBBVkNSVmVjdG9yM0BAQFoNCis7IGNsYXNzIENSQ29sb3IgKiBfX3N0ZGNhbGwgQ1JCbGFjayh2b2lkKQ0KKz9DUkJsYWNrQEBZR1BBVkNSQ29sb3JAQFhaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSQmxlbmRUZXh0dXJlRGlmZnVzZShjbGFzcyBDUkdlb21ldHJ5ICosY2xhc3MgQ1JCb29sZWFuICopDQorP0NSQmxlbmRUZXh0dXJlRGlmZnVzZUBAWUdQQVZDUkdlb21ldHJ5QEBQQVYxQFBBVkNSQm9vbGVhbkBAQFoNCis7IGNsYXNzIENSQ29sb3IgKiBfX3N0ZGNhbGwgQ1JCbHVlKHZvaWQpDQorP0NSQmx1ZUBAWUdQQVZDUkNvbG9yQEBYWg0KKzsgY2xhc3MgQ1JGb250U3R5bGUgKiBfX3N0ZGNhbGwgQ1JCb2xkKGNsYXNzIENSRm9udFN0eWxlICopDQorP0NSQm9sZEBAWUdQQVZDUkZvbnRTdHlsZUBAUEFWMUBAWg0KKzsgY2xhc3MgQ1JCYm94MiAqIF9fc3RkY2FsbCBDUkJvdW5kaW5nQm94KGNsYXNzIENSSW1hZ2UgKikNCis/Q1JCb3VuZGluZ0JveEBAWUdQQVZDUkJib3gyQEBQQVZDUkltYWdlQEBAWg0KKzsgY2xhc3MgQ1JCYm94MiAqIF9fc3RkY2FsbCBDUkJvdW5kaW5nQm94KGNsYXNzIENSUGF0aDIgKixjbGFzcyBDUkxpbmVTdHlsZSAqKQ0KKz9DUkJvdW5kaW5nQm94QEBZR1BBVkNSQmJveDJAQFBBVkNSUGF0aDJAQFBBVkNSTGluZVN0eWxlQEBAWg0KKzsgY2xhc3MgQ1JCYm94MyAqIF9fc3RkY2FsbCBDUkJvdW5kaW5nQm94KGNsYXNzIENSR2VvbWV0cnkgKikNCis/Q1JCb3VuZGluZ0JveEBAWUdQQVZDUkJib3gzQEBQQVZDUkdlb21ldHJ5QEBAWg0KKzsgY2xhc3MgQ1JCdnIgKiBfX3N0ZGNhbGwgQ1JCdnJBcHBseVByZWZlcmVuY2UoY2xhc3MgQ1JCdnIgKix1bnNpZ25lZCBzaG9ydCAqLHN0cnVjdCB0YWdWQVJJQU5UKQ0KKz9DUkJ2ckFwcGx5UHJlZmVyZW5jZUBAWUdQQVZDUkJ2ckBAUEFWMUBQQUdVdGFnVkFSSUFOVEBAQFoNCis7IGJvb2wgX19zdGRjYWxsIENSQnZyVG9DT00oY2xhc3MgQ1JCdnIgKixzdHJ1Y3QgX0dVSUQgY29uc3QgJix2b2lkICogKikNCis/Q1JCdnJUb0NPTUBAWUdfTlBBVkNSQnZyQEBBQlVfR1VJREBAUEFQQVhAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JDZWlsaW5nKGNsYXNzIENSTnVtYmVyICopDQorP0NSQ2VpbGluZ0BAWUdQQVZDUk51bWJlckBAUEFWMUBAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgQ1JDbGVhckxhc3RFcnJvcih2b2lkKQ0KKz9DUkNsZWFyTGFzdEVycm9yQEBZR1hYWg0KKzsgY2xhc3MgQ1JNYXR0ZSAqIF9fc3RkY2FsbCBDUkNsZWFyTWF0dGUodm9pZCkNCis/Q1JDbGVhck1hdHRlQEBZR1BBVkNSTWF0dGVAQFhaDQorOyBjbGFzcyBDUkltYWdlICogX19zdGRjYWxsIENSQ2xpcChjbGFzcyBDUkltYWdlICosY2xhc3MgQ1JNYXR0ZSAqKQ0KKz9DUkNsaXBAQFlHUEFWQ1JJbWFnZUBAUEFWMUBQQVZDUk1hdHRlQEBAWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fc3RkY2FsbCBDUkNsaXBQb2x5Z29uSW1hZ2UoY2xhc3MgQ1JJbWFnZSAqLGNsYXNzIENSQXJyYXkgKikNCis/Q1JDbGlwUG9seWdvbkltYWdlQEBZR1BBVkNSSW1hZ2VAQFBBVjFAUEFWQ1JBcnJheUBAQFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3N0ZGNhbGwgQ1JDbG9zZShjbGFzcyBDUlBhdGgyICopDQorP0NSQ2xvc2VAQFlHUEFWQ1JQYXRoMkBAUEFWMUBAWg0KKzsgY2xhc3MgQ1JDb2xvciAqIF9fc3RkY2FsbCBDUkNvbG9ySHNsKGRvdWJsZSxkb3VibGUsZG91YmxlKQ0KKz9DUkNvbG9ySHNsQEBZR1BBVkNSQ29sb3JAQE5OTkBaDQorOyBjbGFzcyBDUkNvbG9yICogX19zdGRjYWxsIENSQ29sb3JIc2woY2xhc3MgQ1JOdW1iZXIgKixjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSQ29sb3JIc2xAQFlHUEFWQ1JDb2xvckBAUEFWQ1JOdW1iZXJAQDAwQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JDb2xvcktleShjbGFzcyBDUkltYWdlICosY2xhc3MgQ1JDb2xvciAqKQ0KKz9DUkNvbG9yS2V5QEBZR1BBVkNSSW1hZ2VAQFBBVjFAUEFWQ1JDb2xvckBAQFoNCis7IGNsYXNzIENSQ29sb3IgKiBfX3N0ZGNhbGwgQ1JDb2xvclJnYjI1NShzaG9ydCxzaG9ydCxzaG9ydCkNCis/Q1JDb2xvclJnYjI1NUBAWUdQQVZDUkNvbG9yQEBGRkZAWg0KKzsgY2xhc3MgQ1JDb2xvciAqIF9fc3RkY2FsbCBDUkNvbG9yUmdiKGRvdWJsZSxkb3VibGUsZG91YmxlKQ0KKz9DUkNvbG9yUmdiQEBZR1BBVkNSQ29sb3JAQE5OTkBaDQorOyBjbGFzcyBDUkNvbG9yICogX19zdGRjYWxsIENSQ29sb3JSZ2IoY2xhc3MgQ1JOdW1iZXIgKixjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSQ29sb3JSZ2JAQFlHUEFWQ1JDb2xvckBAUEFWQ1JOdW1iZXJAQDAwQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fc3RkY2FsbCBDUkNvbXBvc2UyKGNsYXNzIENSVHJhbnNmb3JtMiAqLGNsYXNzIENSVHJhbnNmb3JtMiAqKQ0KKz9DUkNvbXBvc2UyQEBZR1BBVkNSVHJhbnNmb3JtMkBAUEFWMUAwQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fc3RkY2FsbCBDUkNvbXBvc2UyKGNsYXNzIENSQXJyYXkgKikNCis/Q1JDb21wb3NlMkBAWUdQQVZDUlRyYW5zZm9ybTJAQFBBVkNSQXJyYXlAQEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3N0ZGNhbGwgQ1JDb21wb3NlMyhjbGFzcyBDUlRyYW5zZm9ybTMgKixjbGFzcyBDUlRyYW5zZm9ybTMgKikNCis/Q1JDb21wb3NlM0BAWUdQQVZDUlRyYW5zZm9ybTNAQFBBVjFAMEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3N0ZGNhbGwgQ1JDb21wb3NlMyhjbGFzcyBDUkFycmF5ICopDQorP0NSQ29tcG9zZTNAQFlHUEFWQ1JUcmFuc2Zvcm0zQEBQQVZDUkFycmF5QEBAWg0KKzsgY2xhc3MgQ1JQYXRoMiAqIF9fc3RkY2FsbCBDUkNvbmNhdChjbGFzcyBDUlBhdGgyICosY2xhc3MgQ1JQYXRoMiAqKQ0KKz9DUkNvbmNhdEBAWUdQQVZDUlBhdGgyQEBQQVYxQDBAWg0KKzsgY2xhc3MgQ1JQYXRoMiAqIF9fc3RkY2FsbCBDUkNvbmNhdChjbGFzcyBDUkFycmF5ICopDQorP0NSQ29uY2F0QEBZR1BBVkNSUGF0aDJAQFBBVkNSQXJyYXlAQEBaDQorOyBjbGFzcyBDUlN0cmluZyAqIF9fc3RkY2FsbCBDUkNvbmNhdFN0cmluZyhjbGFzcyBDUlN0cmluZyAqLGNsYXNzIENSU3RyaW5nICopDQorP0NSQ29uY2F0U3RyaW5nQEBZR1BBVkNSU3RyaW5nQEBQQVYxQDBAWg0KKzsgY2xhc3MgQ1JCdnIgKiBfX3N0ZGNhbGwgQ1JDb25kKGNsYXNzIENSQm9vbGVhbiAqLGNsYXNzIENSQnZyICosY2xhc3MgQ1JCdnIgKikNCis/Q1JDb25kQEBZR1BBVkNSQnZyQEBQQVZDUkJvb2xlYW5AQFBBVjFAMUBaDQorOyBib29sIF9fc3RkY2FsbCBDUkNvbm5lY3Qoc3RydWN0IEhJTlNUQU5DRV9fICopDQorP0NSQ29ubmVjdEBAWUdfTlBBVUhJTlNUQU5DRV9fQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JDb3MoY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JDb3NAQFlHUEFWQ1JOdW1iZXJAQFBBVjFAQFoNCis7IGNsYXNzIENSQXJyYXkgKiBfX3N0ZGNhbGwgQ1JDcmVhdGVBcnJheShsb25nLGRvdWJsZSAqIGNvbnN0LGVudW0gQ1JfQlZSX1RZUEVJRCkNCis/Q1JDcmVhdGVBcnJheUBAWUdQQVZDUkFycmF5QEBKUUFOVzRDUl9CVlJfVFlQRUlEQEBAWg0KKzsgY2xhc3MgQ1JBcnJheSAqIF9fc3RkY2FsbCBDUkNyZWF0ZUFycmF5KGxvbmcsY2xhc3MgQ1JCdnIgKiAqIGNvbnN0LHVuc2lnbmVkIGxvbmcpDQorP0NSQ3JlYXRlQXJyYXlAQFlHUEFWQ1JBcnJheUBASlFBUEFWQ1JCdnJAQEtAWg0KKzsgY2xhc3MgQ1JCb29sZWFuICogX19zdGRjYWxsIENSQ3JlYXRlQm9vbGVhbihib29sKQ0KKz9DUkNyZWF0ZUJvb2xlYW5AQFlHUEFWQ1JCb29sZWFuQEBfTkBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUkNyZWF0ZU51bWJlcihkb3VibGUpDQorP0NSQ3JlYXRlTnVtYmVyQEBZR1BBVkNSTnVtYmVyQEBOQFoNCis7IGNsYXNzIENSUG9pbnQyICogX19zdGRjYWxsIENSQ3JlYXRlUG9pbnQyKGRvdWJsZSxkb3VibGUpDQorP0NSQ3JlYXRlUG9pbnQyQEBZR1BBVkNSUG9pbnQyQEBOTkBaDQorOyBjbGFzcyBDUlBvaW50MiAqIF9fc3RkY2FsbCBDUkNyZWF0ZVBvaW50MihjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSQ3JlYXRlUG9pbnQyQEBZR1BBVkNSUG9pbnQyQEBQQVZDUk51bWJlckBAMEBaDQorOyBjbGFzcyBDUlBvaW50MyAqIF9fc3RkY2FsbCBDUkNyZWF0ZVBvaW50Myhkb3VibGUsZG91YmxlLGRvdWJsZSkNCis/Q1JDcmVhdGVQb2ludDNAQFlHUEFWQ1JQb2ludDNAQE5OTkBaDQorOyBjbGFzcyBDUlBvaW50MyAqIF9fc3RkY2FsbCBDUkNyZWF0ZVBvaW50MyhjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JDcmVhdGVQb2ludDNAQFlHUEFWQ1JQb2ludDNAQFBBVkNSTnVtYmVyQEAwMEBaDQorOyBjbGFzcyBDUlN0cmluZyAqIF9fc3RkY2FsbCBDUkNyZWF0ZVN0cmluZyh1bnNpZ25lZCBzaG9ydCAqKQ0KKz9DUkNyZWF0ZVN0cmluZ0BAWUdQQVZDUlN0cmluZ0BAUEFHQFoNCis7IGNsYXNzIENSVHVwbGUgKiBfX3N0ZGNhbGwgQ1JDcmVhdGVUdXBsZShsb25nLGNsYXNzIENSQnZyICogKiBjb25zdCkNCis/Q1JDcmVhdGVUdXBsZUBAWUdQQVZDUlR1cGxlQEBKUUFQQVZDUkJ2ckBAQFoNCis7IGNsYXNzIENSVXNlckRhdGEgKiBfX3N0ZGNhbGwgQ1JDcmVhdGVVc2VyRGF0YShzdHJ1Y3QgSVVua25vd24gKikNCis/Q1JDcmVhdGVVc2VyRGF0YUBAWUdQQVZDUlVzZXJEYXRhQEBQQVVJVW5rbm93bkBAQFoNCis7IGNsYXNzIENSVmVjdG9yMiAqIF9fc3RkY2FsbCBDUkNyZWF0ZVZlY3RvcjIoZG91YmxlLGRvdWJsZSkNCis/Q1JDcmVhdGVWZWN0b3IyQEBZR1BBVkNSVmVjdG9yMkBATk5AWg0KKzsgY2xhc3MgQ1JWZWN0b3IyICogX19zdGRjYWxsIENSQ3JlYXRlVmVjdG9yMihjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSQ3JlYXRlVmVjdG9yMkBAWUdQQVZDUlZlY3RvcjJAQFBBVkNSTnVtYmVyQEAwQFoNCis7IGNsYXNzIENSVmVjdG9yMyAqIF9fc3RkY2FsbCBDUkNyZWF0ZVZlY3RvcjMoZG91YmxlLGRvdWJsZSxkb3VibGUpDQorP0NSQ3JlYXRlVmVjdG9yM0BAWUdQQVZDUlZlY3RvcjNAQE5OTkBaDQorOyBjbGFzcyBDUlZlY3RvcjMgKiBfX3N0ZGNhbGwgQ1JDcmVhdGVWZWN0b3IzKGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUkNyZWF0ZVZlY3RvcjNAQFlHUEFWQ1JWZWN0b3IzQEBQQVZDUk51bWJlckBAMDBAWg0KKzsgY2xhc3MgQ1JWaWV3ICogX19zdGRjYWxsIENSQ3JlYXRlVmlldyh2b2lkKQ0KKz9DUkNyZWF0ZVZpZXdAQFlHUEFWQ1JWaWV3QEBYWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fc3RkY2FsbCBDUkNyb3AoY2xhc3MgQ1JJbWFnZSAqLGNsYXNzIENSUG9pbnQyICosY2xhc3MgQ1JQb2ludDIgKikNCis/Q1JDcm9wQEBZR1BBVkNSSW1hZ2VAQFBBVjFAUEFWQ1JQb2ludDJAQDFAWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19zdGRjYWxsIENSQ3Jvc3MoY2xhc3MgQ1JWZWN0b3IzICosY2xhc3MgQ1JWZWN0b3IzICopDQorP0NSQ3Jvc3NAQFlHUEFWQ1JWZWN0b3IzQEBQQVYxQDBAWg0KKzsgY2xhc3MgQ1JQYXRoMiAqIF9fc3RkY2FsbCBDUkN1YmljQlNwbGluZVBhdGgoY2xhc3MgQ1JBcnJheSAqLGNsYXNzIENSQXJyYXkgKikNCis/Q1JDdWJpY0JTcGxpbmVQYXRoQEBZR1BBVkNSUGF0aDJAQFBBVkNSQXJyYXlAQDBAWg0KKzsgY2xhc3MgQ1JDb2xvciAqIF9fc3RkY2FsbCBDUkN5YW4odm9pZCkNCis/Q1JDeWFuQEBZR1BBVkNSQ29sb3JAQFhaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSRDNEUk1UZXh0dXJlKGNsYXNzIENSR2VvbWV0cnkgKixzdHJ1Y3QgSVVua25vd24gKikNCis/Q1JEM0RSTVRleHR1cmVAQFlHUEFWQ1JHZW9tZXRyeUBAUEFWMUBQQVVJVW5rbm93bkBAQFoNCis7IGNsYXNzIENSTGluZVN0eWxlICogX19zdGRjYWxsIENSRGFzaChjbGFzcyBDUkxpbmVTdHlsZSAqLGNsYXNzIENSRGFzaFN0eWxlICopDQorP0NSRGFzaEBAWUdQQVZDUkxpbmVTdHlsZUBAUEFWMUBQQVZDUkRhc2hTdHlsZUBAQFoNCis7IGNsYXNzIENSTGluZVN0eWxlICogX19zdGRjYWxsIENSRGFzaEV4KGNsYXNzIENSTGluZVN0eWxlICosdW5zaWduZWQgbG9uZykNCis/Q1JEYXNoRXhAQFlHUEFWQ1JMaW5lU3R5bGVAQFBBVjFAS0BaDQorOyBjbGFzcyBDUkRhc2hTdHlsZSAqIF9fc3RkY2FsbCBDUkRhc2hTdHlsZURhc2hlZCh2b2lkKQ0KKz9DUkRhc2hTdHlsZURhc2hlZEBAWUdQQVZDUkRhc2hTdHlsZUBAWFoNCis7IGNsYXNzIENSRGFzaFN0eWxlICogX19zdGRjYWxsIENSRGFzaFN0eWxlU29saWQodm9pZCkNCis/Q1JEYXNoU3R5bGVTb2xpZEBAWUdQQVZDUkRhc2hTdHlsZUBAWFoNCis7IGNsYXNzIENSRm9udFN0eWxlICogX19zdGRjYWxsIENSRGVmYXVsdEZvbnQodm9pZCkNCis/Q1JEZWZhdWx0Rm9udEBAWUdQQVZDUkZvbnRTdHlsZUBAWFoNCis7IGNsYXNzIENSTGluZVN0eWxlICogX19zdGRjYWxsIENSRGVmYXVsdExpbmVTdHlsZSh2b2lkKQ0KKz9DUkRlZmF1bHRMaW5lU3R5bGVAQFlHUEFWQ1JMaW5lU3R5bGVAQFhaDQorOyBjbGFzcyBDUk1pY3JvcGhvbmUgKiBfX3N0ZGNhbGwgQ1JEZWZhdWx0TWljcm9waG9uZSh2b2lkKQ0KKz9DUkRlZmF1bHRNaWNyb3Bob25lQEBZR1BBVkNSTWljcm9waG9uZUBAWFoNCis7IGNsYXNzIENSQ2FtZXJhICogX19zdGRjYWxsIENSRGVwdGgoY2xhc3MgQ1JDYW1lcmEgKixkb3VibGUpDQorP0NSRGVwdGhAQFlHUEFWQ1JDYW1lcmFAQFBBVjFATkBaDQorOyBjbGFzcyBDUkNhbWVyYSAqIF9fc3RkY2FsbCBDUkRlcHRoKGNsYXNzIENSQ2FtZXJhICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JEZXB0aEBAWUdQQVZDUkNhbWVyYUBAUEFWMUBQQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSQ2FtZXJhICogX19zdGRjYWxsIENSRGVwdGhSZXNvbHV0aW9uKGNsYXNzIENSQ2FtZXJhICosZG91YmxlKQ0KKz9DUkRlcHRoUmVzb2x1dGlvbkBAWUdQQVZDUkNhbWVyYUBAUEFWMUBOQFoNCis7IGNsYXNzIENSQ2FtZXJhICogX19zdGRjYWxsIENSRGVwdGhSZXNvbHV0aW9uKGNsYXNzIENSQ2FtZXJhICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JEZXB0aFJlc29sdXRpb25AQFlHUEFWQ1JDYW1lcmFAQFBBVjFAUEFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUkRlcml2YXRpdmUoY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JEZXJpdmF0aXZlQEBZR1BBVkNSTnVtYmVyQEBQQVYxQEBaDQorOyBjbGFzcyBDUlZlY3RvcjIgKiBfX3N0ZGNhbGwgQ1JEZXJpdmF0aXZlKGNsYXNzIENSVmVjdG9yMiAqKQ0KKz9DUkRlcml2YXRpdmVAQFlHUEFWQ1JWZWN0b3IyQEBQQVYxQEBaDQorOyBjbGFzcyBDUlZlY3RvcjIgKiBfX3N0ZGNhbGwgQ1JEZXJpdmF0aXZlKGNsYXNzIENSUG9pbnQyICopDQorP0NSRGVyaXZhdGl2ZUBAWUdQQVZDUlZlY3RvcjJAQFBBVkNSUG9pbnQyQEBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19zdGRjYWxsIENSRGVyaXZhdGl2ZShjbGFzcyBDUlZlY3RvcjMgKikNCis/Q1JEZXJpdmF0aXZlQEBZR1BBVkNSVmVjdG9yM0BAUEFWMUBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19zdGRjYWxsIENSRGVyaXZhdGl2ZShjbGFzcyBDUlBvaW50MyAqKQ0KKz9DUkRlcml2YXRpdmVAQFlHUEFWQ1JWZWN0b3IzQEBQQVZDUlBvaW50M0BAQFoNCis7IHZvaWQgX19zdGRjYWxsIENSRGVzdHJveVZpZXcoY2xhc3MgQ1JWaWV3ICopDQorP0NSRGVzdHJveVZpZXdAQFlHWFBBVkNSVmlld0BAQFoNCis7IGNsYXNzIENSTGluZVN0eWxlICogX19zdGRjYWxsIENSRGV0YWlsKGNsYXNzIENSTGluZVN0eWxlICopDQorP0NSRGV0YWlsQEBZR1BBVkNSTGluZVN0eWxlQEBQQVYxQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19zdGRjYWxsIENSRGV0ZWN0YWJsZUVtcHR5SW1hZ2Uodm9pZCkNCis/Q1JEZXRlY3RhYmxlRW1wdHlJbWFnZUBAWUdQQVZDUkltYWdlQEBYWg0KKzsgY2xhc3MgQ1JNYXR0ZSAqIF9fc3RkY2FsbCBDUkRpZmZlcmVuY2VNYXR0ZShjbGFzcyBDUk1hdHRlICosY2xhc3MgQ1JNYXR0ZSAqKQ0KKz9DUkRpZmZlcmVuY2VNYXR0ZUBAWUdQQVZDUk1hdHRlQEBQQVYxQDBAWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fc3RkY2FsbCBDUkRpZmZ1c2VDb2xvcihjbGFzcyBDUkdlb21ldHJ5ICosY2xhc3MgQ1JDb2xvciAqKQ0KKz9DUkRpZmZ1c2VDb2xvckBAWUdQQVZDUkdlb21ldHJ5QEBQQVYxQFBBVkNSQ29sb3JAQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSRGlyZWN0aW9uYWxMaWdodCh2b2lkKQ0KKz9DUkRpcmVjdGlvbmFsTGlnaHRAQFlHUEFWQ1JHZW9tZXRyeUBAWFoNCis7IGJvb2wgX19zdGRjYWxsIENSRGlzY29ubmVjdChzdHJ1Y3QgSElOU1RBTkNFX18gKikNCis/Q1JEaXNjb25uZWN0QEBZR19OUEFVSElOU1RBTkNFX19AQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUkRpc3RhbmNlKGNsYXNzIENSUG9pbnQyICosY2xhc3MgQ1JQb2ludDIgKikNCis/Q1JEaXN0YW5jZUBAWUdQQVZDUk51bWJlckBAUEFWQ1JQb2ludDJAQDBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JEaXN0YW5jZShjbGFzcyBDUlBvaW50MyAqLGNsYXNzIENSUG9pbnQzICopDQorP0NSRGlzdGFuY2VAQFlHUEFWQ1JOdW1iZXJAQFBBVkNSUG9pbnQzQEAwQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSRGlzdGFuY2VTcXVhcmVkKGNsYXNzIENSUG9pbnQyICosY2xhc3MgQ1JQb2ludDIgKikNCis/Q1JEaXN0YW5jZVNxdWFyZWRAQFlHUEFWQ1JOdW1iZXJAQFBBVkNSUG9pbnQyQEAwQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSRGlzdGFuY2VTcXVhcmVkKGNsYXNzIENSUG9pbnQzICosY2xhc3MgQ1JQb2ludDMgKikNCis/Q1JEaXN0YW5jZVNxdWFyZWRAQFlHUEFWQ1JOdW1iZXJAQFBBVkNSUG9pbnQzQEAwQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSRGl2KGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JEaXZAQFlHUEFWQ1JOdW1iZXJAQFBBVjFAMEBaDQorOyBjbGFzcyBDUlZlY3RvcjIgKiBfX3N0ZGNhbGwgQ1JEaXYoY2xhc3MgQ1JWZWN0b3IyICosZG91YmxlKQ0KKz9DUkRpdkBAWUdQQVZDUlZlY3RvcjJAQFBBVjFATkBaDQorOyBjbGFzcyBDUlZlY3RvcjIgKiBfX3N0ZGNhbGwgQ1JEaXYoY2xhc3MgQ1JWZWN0b3IyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JEaXZAQFlHUEFWQ1JWZWN0b3IyQEBQQVYxQFBBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19zdGRjYWxsIENSRGl2KGNsYXNzIENSVmVjdG9yMyAqLGRvdWJsZSkNCis/Q1JEaXZAQFlHUEFWQ1JWZWN0b3IzQEBQQVYxQE5AWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19zdGRjYWxsIENSRGl2KGNsYXNzIENSVmVjdG9yMyAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSRGl2QEBZR1BBVkNSVmVjdG9yM0BAUEFWMUBQQVZDUk51bWJlckBAQFoNCis7IGJvb2wgX19zdGRjYWxsIENSRG9HQyh2b2lkKQ0KKz9DUkRvR0NAQFlHX05YWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JEb3QoY2xhc3MgQ1JWZWN0b3IyICosY2xhc3MgQ1JWZWN0b3IyICopDQorP0NSRG90QEBZR1BBVkNSTnVtYmVyQEBQQVZDUlZlY3RvcjJAQDBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JEb3QoY2xhc3MgQ1JWZWN0b3IzICosY2xhc3MgQ1JWZWN0b3IzICopDQorP0NSRG90QEBZR1BBVkNSTnVtYmVyQEBQQVZDUlZlY3RvcjNAQDBAWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fc3RkY2FsbCBDUkRyYXcoY2xhc3MgQ1JQYXRoMiAqLGNsYXNzIENSTGluZVN0eWxlICopDQorP0NSRHJhd0BAWUdQQVZDUkltYWdlQEBQQVZDUlBhdGgyQEBQQVZDUkxpbmVTdHlsZUBAQFoNCis7IGNsYXNzIENSQnZyICogX19zdGRjYWxsIENSRHVyYXRpb24oY2xhc3MgQ1JCdnIgKixkb3VibGUpDQorP0NSRHVyYXRpb25AQFlHUEFWQ1JCdnJAQFBBVjFATkBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fc3RkY2FsbCBDUkR1cmF0aW9uKGNsYXNzIENSQnZyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JEdXJhdGlvbkBAWUdQQVZDUkJ2ckBAUEFWMUBQQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSQm9vbGVhbiAqIF9fc3RkY2FsbCBDUkVRKGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JFUUBAWUdQQVZDUkJvb2xlYW5AQFBBVkNSTnVtYmVyQEAwQFoNCis7IGNsYXNzIENSR2VvbWV0cnkgKiBfX3N0ZGNhbGwgQ1JFbWlzc2l2ZUNvbG9yKGNsYXNzIENSR2VvbWV0cnkgKixjbGFzcyBDUkNvbG9yICopDQorP0NSRW1pc3NpdmVDb2xvckBAWUdQQVZDUkdlb21ldHJ5QEBQQVYxQFBBVkNSQ29sb3JAQEBaDQorOyBjbGFzcyBDUkNvbG9yICogX19zdGRjYWxsIENSRW1wdHlDb2xvcih2b2lkKQ0KKz9DUkVtcHR5Q29sb3JAQFlHUEFWQ1JDb2xvckBAWFoNCis7IGNsYXNzIENSR2VvbWV0cnkgKiBfX3N0ZGNhbGwgQ1JFbXB0eUdlb21ldHJ5KHZvaWQpDQorP0NSRW1wdHlHZW9tZXRyeUBAWUdQQVZDUkdlb21ldHJ5QEBYWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fc3RkY2FsbCBDUkVtcHR5SW1hZ2Uodm9pZCkNCis/Q1JFbXB0eUltYWdlQEBZR1BBVkNSSW1hZ2VAQFhaDQorOyBjbGFzcyBDUkxpbmVTdHlsZSAqIF9fc3RkY2FsbCBDUkVtcHR5TGluZVN0eWxlKHZvaWQpDQorP0NSRW1wdHlMaW5lU3R5bGVAQFlHUEFWQ1JMaW5lU3R5bGVAQFhaDQorOyBjbGFzcyBDUk1vbnRhZ2UgKiBfX3N0ZGNhbGwgQ1JFbXB0eU1vbnRhZ2Uodm9pZCkNCis/Q1JFbXB0eU1vbnRhZ2VAQFlHUEFWQ1JNb250YWdlQEBYWg0KKzsgY2xhc3MgQ1JMaW5lU3R5bGUgKiBfX3N0ZGNhbGwgQ1JFbmQoY2xhc3MgQ1JMaW5lU3R5bGUgKixjbGFzcyBDUkVuZFN0eWxlICopDQorP0NSRW5kQEBZR1BBVkNSTGluZVN0eWxlQEBQQVYxQFBBVkNSRW5kU3R5bGVAQEBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fc3RkY2FsbCBDUkVuZEV2ZW50KGNsYXNzIENSQnZyICopDQorP0NSRW5kRXZlbnRAQFlHUEFWQ1JCdnJAQFBBVjFAQFoNCis7IGNsYXNzIENSTGluZVN0eWxlICogX19zdGRjYWxsIENSRW5kRXgoY2xhc3MgQ1JMaW5lU3R5bGUgKix1bnNpZ25lZCBsb25nKQ0KKz9DUkVuZEV4QEBZR1BBVkNSTGluZVN0eWxlQEBQQVYxQEtAWg0KKzsgY2xhc3MgQ1JFbmRTdHlsZSAqIF9fc3RkY2FsbCBDUkVuZFN0eWxlRmxhdCh2b2lkKQ0KKz9DUkVuZFN0eWxlRmxhdEBAWUdQQVZDUkVuZFN0eWxlQEBYWg0KKzsgY2xhc3MgQ1JFbmRTdHlsZSAqIF9fc3RkY2FsbCBDUkVuZFN0eWxlUm91bmQodm9pZCkNCis/Q1JFbmRTdHlsZVJvdW5kQEBZR1BBVkNSRW5kU3R5bGVAQFhaDQorOyBjbGFzcyBDUkVuZFN0eWxlICogX19zdGRjYWxsIENSRW5kU3R5bGVTcXVhcmUodm9pZCkNCis/Q1JFbmRTdHlsZVNxdWFyZUBAWUdQQVZDUkVuZFN0eWxlQEBYWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JFeHAoY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JFeHBAQFlHUEFWQ1JOdW1iZXJAQFBBVjFAQFoNCis7IGNsYXNzIENSQnZyICogX19zdGRjYWxsIENSRXh0ZW5kZWRBdHRyaWIoY2xhc3MgQ1JCdnIgKix1bnNpZ25lZCBzaG9ydCAqLHN0cnVjdCB0YWdWQVJJQU5UKQ0KKz9DUkV4dGVuZGVkQXR0cmliQEBZR1BBVkNSQnZyQEBQQVYxQFBBR1V0YWdWQVJJQU5UQEBAWg0KKzsgZG91YmxlIF9fc3RkY2FsbCBDUkV4dHJhY3QoY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JFeHRyYWN0QEBZR05QQVZDUk51bWJlckBAQFoNCis7IHVuc2lnbmVkIHNob3J0ICogX19zdGRjYWxsIENSRXh0cmFjdChjbGFzcyBDUlN0cmluZyAqKQ0KKz9DUkV4dHJhY3RAQFlHUEFHUEFWQ1JTdHJpbmdAQEBaDQorOyBib29sIF9fc3RkY2FsbCBDUkV4dHJhY3QoY2xhc3MgQ1JCb29sZWFuICopDQorP0NSRXh0cmFjdEBAWUdfTlBBVkNSQm9vbGVhbkBAQFoNCis7IGNsYXNzIENSQm9vbGVhbiAqIF9fc3RkY2FsbCBDUkZhbHNlKHZvaWQpDQorP0NSRmFsc2VAQFlHUEFWQ1JCb29sZWFuQEBYWg0KKzsgY2xhc3MgQ1JGb250U3R5bGUgKiBfX3N0ZGNhbGwgQ1JGYW1pbHkoY2xhc3MgQ1JGb250U3R5bGUgKix1bnNpZ25lZCBzaG9ydCAqKQ0KKz9DUkZhbWlseUBAWUdQQVZDUkZvbnRTdHlsZUBAUEFWMUBQQUdAWg0KKzsgY2xhc3MgQ1JGb250U3R5bGUgKiBfX3N0ZGNhbGwgQ1JGYW1pbHkoY2xhc3MgQ1JGb250U3R5bGUgKixjbGFzcyBDUlN0cmluZyAqKQ0KKz9DUkZhbWlseUBAWUdQQVZDUkZvbnRTdHlsZUBAUEFWMUBQQVZDUlN0cmluZ0BAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JGaWxsKGNsYXNzIENSUGF0aDIgKixjbGFzcyBDUkxpbmVTdHlsZSAqLGNsYXNzIENSSW1hZ2UgKikNCis/Q1JGaWxsQEBZR1BBVkNSSW1hZ2VAQFBBVkNSUGF0aDJAQFBBVkNSTGluZVN0eWxlQEBQQVYxQEBaDQorOyBjbGFzcyBDUk1hdHRlICogX19zdGRjYWxsIENSRmlsbE1hdHRlKGNsYXNzIENSUGF0aDIgKikNCis/Q1JGaWxsTWF0dGVAQFlHUEFWQ1JNYXR0ZUBAUEFWQ1JQYXRoMkBAQFoNCis7IGNsYXNzIENSQnZyICogX19zdGRjYWxsIENSRmlyc3QoY2xhc3MgQ1JQYWlyICopDQorP0NSRmlyc3RAQFlHUEFWQ1JCdnJAQFBBVkNSUGFpckBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSRmxvb3IoY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JGbG9vckBAWUdQQVZDUk51bWJlckBAUEFWMUBAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19zdGRjYWxsIENSRm9sbG93UGF0aChjbGFzcyBDUlBhdGgyICosZG91YmxlKQ0KKz9DUkZvbGxvd1BhdGhAQFlHUEFWQ1JUcmFuc2Zvcm0yQEBQQVZDUlBhdGgyQEBOQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fc3RkY2FsbCBDUkZvbGxvd1BhdGgoY2xhc3MgQ1JQYXRoMiAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSRm9sbG93UGF0aEBAWUdQQVZDUlRyYW5zZm9ybTJAQFBBVkNSUGF0aDJAQFBBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19zdGRjYWxsIENSRm9sbG93UGF0aEFuZ2xlKGNsYXNzIENSUGF0aDIgKixkb3VibGUpDQorP0NSRm9sbG93UGF0aEFuZ2xlQEBZR1BBVkNSVHJhbnNmb3JtMkBAUEFWQ1JQYXRoMkBATkBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3N0ZGNhbGwgQ1JGb2xsb3dQYXRoQW5nbGUoY2xhc3MgQ1JQYXRoMiAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSRm9sbG93UGF0aEFuZ2xlQEBZR1BBVkNSVHJhbnNmb3JtMkBAUEFWQ1JQYXRoMkBAUEFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3N0ZGNhbGwgQ1JGb2xsb3dQYXRoQW5nbGVFdmFsKGNsYXNzIENSUGF0aDIgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUkZvbGxvd1BhdGhBbmdsZUV2YWxAQFlHUEFWQ1JUcmFuc2Zvcm0yQEBQQVZDUlBhdGgyQEBQQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fc3RkY2FsbCBDUkZvbGxvd1BhdGhBbmdsZVVwcmlnaHQoY2xhc3MgQ1JQYXRoMiAqLGRvdWJsZSkNCis/Q1JGb2xsb3dQYXRoQW5nbGVVcHJpZ2h0QEBZR1BBVkNSVHJhbnNmb3JtMkBAUEFWQ1JQYXRoMkBATkBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3N0ZGNhbGwgQ1JGb2xsb3dQYXRoQW5nbGVVcHJpZ2h0KGNsYXNzIENSUGF0aDIgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUkZvbGxvd1BhdGhBbmdsZVVwcmlnaHRAQFlHUEFWQ1JUcmFuc2Zvcm0yQEBQQVZDUlBhdGgyQEBQQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fc3RkY2FsbCBDUkZvbGxvd1BhdGhBbmdsZVVwcmlnaHRFdmFsKGNsYXNzIENSUGF0aDIgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUkZvbGxvd1BhdGhBbmdsZVVwcmlnaHRFdmFsQEBZR1BBVkNSVHJhbnNmb3JtMkBAUEFWQ1JQYXRoMkBAUEFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3N0ZGNhbGwgQ1JGb2xsb3dQYXRoRXZhbChjbGFzcyBDUlBhdGgyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JGb2xsb3dQYXRoRXZhbEBAWUdQQVZDUlRyYW5zZm9ybTJAQFBBVkNSUGF0aDJAQFBBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JGb250U3R5bGUgKiBfX3N0ZGNhbGwgQ1JGb250KHVuc2lnbmVkIHNob3J0ICosZG91YmxlLGNsYXNzIENSQ29sb3IgKikNCis/Q1JGb250QEBZR1BBVkNSRm9udFN0eWxlQEBQQUdOUEFWQ1JDb2xvckBAQFoNCis7IGNsYXNzIENSRm9udFN0eWxlICogX19zdGRjYWxsIENSRm9udChjbGFzcyBDUlN0cmluZyAqLGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JDb2xvciAqKQ0KKz9DUkZvbnRAQFlHUEFWQ1JGb250U3R5bGVAQFBBVkNSU3RyaW5nQEBQQVZDUk51bWJlckBAUEFWQ1JDb2xvckBAQFoNCis7IGNsYXNzIENSQ29sb3IgKiBfX3N0ZGNhbGwgQ1JGdWNoc2lhKHZvaWQpDQorP0NSRnVjaHNpYUBAWUdQQVZDUkNvbG9yQEBYWg0KKzsgY2xhc3MgQ1JCb29sZWFuICogX19zdGRjYWxsIENSR1QoY2xhc3MgQ1JOdW1iZXIgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUkdUQEBZR1BBVkNSQm9vbGVhbkBAUEFWQ1JOdW1iZXJAQDBAWg0KKzsgY2xhc3MgQ1JCb29sZWFuICogX19zdGRjYWxsIENSR1RFKGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JHVEVAQFlHUEFWQ1JCb29sZWFuQEBQQVZDUk51bWJlckBAMEBaDQorOyBjbGFzcyBDUlNvdW5kICogX19zdGRjYWxsIENSR2FpbihjbGFzcyBDUlNvdW5kICosZG91YmxlKQ0KKz9DUkdhaW5AQFlHUEFWQ1JTb3VuZEBAUEFWMUBOQFoNCis7IGNsYXNzIENSU291bmQgKiBfX3N0ZGNhbGwgQ1JHYWluKGNsYXNzIENSU291bmQgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUkdhaW5AQFlHUEFWQ1JTb3VuZEBAUEFWMUBQQVZDUk51bWJlckBAQFoNCis7IGVudW0gQ1JfQlZSX1RZUEVJRCAgX19zdGRjYWxsIENSR2V0QXJyYXlUeXBlSWQoY2xhc3MgQ1JCdnIgKikNCis/Q1JHZXRBcnJheVR5cGVJZEBAWUc/QVc0Q1JfQlZSX1RZUEVJREBAUEFWQ1JCdnJAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUkdldEJsdWUoY2xhc3MgQ1JDb2xvciAqKQ0KKz9DUkdldEJsdWVAQFlHUEFWQ1JOdW1iZXJAQFBBVkNSQ29sb3JAQEBaDQorOyBjbGFzcyBDUkV2ZW50ICogX19zdGRjYWxsIENSR2V0Q29tcGxldGlvbkV2ZW50KGNsYXNzIENSSW1wb3J0YXRpb25SZXN1bHQgKikNCis/Q1JHZXRDb21wbGV0aW9uRXZlbnRAQFlHUEFWQ1JFdmVudEBAUEFWQ1JJbXBvcnRhdGlvblJlc3VsdEBAQFoNCis7IGJvb2wgX19zdGRjYWxsIENSR2V0Q29tcG9zaXRlRGlyZWN0bHlUb1RhcmdldChjbGFzcyBDUlZpZXcgKikNCis/Q1JHZXRDb21wb3NpdGVEaXJlY3RseVRvVGFyZ2V0QEBZR19OUEFWQ1JWaWV3QEBAWg0KKzsgZG91YmxlIF9fc3RkY2FsbCBDUkdldENvbnN0RHVyYXRpb24oY2xhc3MgQ1JFdmVudCAqKQ0KKz9DUkdldENvbnN0RHVyYXRpb25AQFlHTlBBVkNSRXZlbnRAQEBaDQorOyBzdHJ1Y3QgSERDX18gKiBfX3N0ZGNhbGwgQ1JHZXREQyhjbGFzcyBDUlZpZXcgKikNCis/Q1JHZXREQ0BAWUdQQVVIRENfX0BAUEFWQ1JWaWV3QEBAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JHZXREREQzRFJNKGNsYXNzIENSVmlldyAqLHN0cnVjdCBJVW5rbm93biAqICosc3RydWN0IElVbmtub3duICogKikNCis/Q1JHZXREREQzRFJNQEBZR19OUEFWQ1JWaWV3QEBQQVBBVUlVbmtub3duQEAxQFoNCis7IHN0cnVjdCBJVW5rbm93biAqIF9fc3RkY2FsbCBDUkdldERhdGEoY2xhc3MgQ1JVc2VyRGF0YSAqKQ0KKz9DUkdldERhdGFAQFlHUEFVSVVua25vd25AQFBBVkNSVXNlckRhdGFAQEBaDQorOyBzdHJ1Y3QgSVVua25vd24gKiBfX3N0ZGNhbGwgQ1JHZXREaXJlY3REcmF3U3VyZmFjZShjbGFzcyBDUlZpZXcgKikNCis/Q1JHZXREaXJlY3REcmF3U3VyZmFjZUBAWUdQQVVJVW5rbm93bkBAUEFWQ1JWaWV3QEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JHZXREdXJhdGlvbihjbGFzcyBDUkltcG9ydGF0aW9uUmVzdWx0ICopDQorP0NSR2V0RHVyYXRpb25AQFlHUEFWQ1JOdW1iZXJAQFBBVkNSSW1wb3J0YXRpb25SZXN1bHRAQEBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fc3RkY2FsbCBDUkdldEVsZW1lbnQoY2xhc3MgQ1JBcnJheSAqLGxvbmcpDQorP0NSR2V0RWxlbWVudEBAWUdQQVZDUkJ2ckBAUEFWQ1JBcnJheUBASkBaDQorOyBjbGFzcyBDUkV2ZW50ICogX19zdGRjYWxsIENSR2V0RXZlbnQoY2xhc3MgQ1JQaWNrYWJsZVJlc3VsdCAqKQ0KKz9DUkdldEV2ZW50QEBZR1BBVkNSRXZlbnRAQFBBVkNSUGlja2FibGVSZXN1bHRAQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSR2V0R2VvbWV0cnkoY2xhc3MgQ1JJbXBvcnRhdGlvblJlc3VsdCAqKQ0KKz9DUkdldEdlb21ldHJ5QEBZR1BBVkNSR2VvbWV0cnlAQFBBVkNSSW1wb3J0YXRpb25SZXN1bHRAQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSR2V0R2VvbWV0cnkoY2xhc3MgQ1JQaWNrYWJsZVJlc3VsdCAqKQ0KKz9DUkdldEdlb21ldHJ5QEBZR1BBVkNSR2VvbWV0cnlAQFBBVkNSUGlja2FibGVSZXN1bHRAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUkdldEdyZWVuKGNsYXNzIENSQ29sb3IgKikNCis/Q1JHZXRHcmVlbkBAWUdQQVZDUk51bWJlckBAUEFWQ1JDb2xvckBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSR2V0SHVlKGNsYXNzIENSQ29sb3IgKikNCis/Q1JHZXRIdWVAQFlHUEFWQ1JOdW1iZXJAQFBBVkNSQ29sb3JAQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19zdGRjYWxsIENSR2V0SW1hZ2UoY2xhc3MgQ1JJbXBvcnRhdGlvblJlc3VsdCAqKQ0KKz9DUkdldEltYWdlQEBZR1BBVkNSSW1hZ2VAQFBBVkNSSW1wb3J0YXRpb25SZXN1bHRAQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19zdGRjYWxsIENSR2V0SW1hZ2UoY2xhc3MgQ1JQaWNrYWJsZVJlc3VsdCAqKQ0KKz9DUkdldEltYWdlQEBZR1BBVkNSSW1hZ2VAQFBBVkNSUGlja2FibGVSZXN1bHRAQEBaDQorOyBmbG9hdCBfX3N0ZGNhbGwgQ1JHZXRJbXBvcnRQcmlvcml0eShjbGFzcyBDUkJ2ciAqKQ0KKz9DUkdldEltcG9ydFByaW9yaXR5QEBZR01QQVZDUkJ2ckBAQFoNCis7IGxvbmcgX19zdGRjYWxsIENSR2V0SW52YWxpZGF0ZWRSZWN0cyhjbGFzcyBDUlZpZXcgKix1bnNpZ25lZCBsb25nLGxvbmcsc3RydWN0IHRhZ1JFQ1QgKikNCis/Q1JHZXRJbnZhbGlkYXRlZFJlY3RzQEBZR0pQQVZDUlZpZXdAQEtKUEFVdGFnUkVDVEBAQFoNCis7IGxvbmcgX19zdGRjYWxsIENSR2V0TGFzdEVycm9yKHZvaWQpDQorP0NSR2V0TGFzdEVycm9yQEBZR0pYWg0KKzsgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgQ1JHZXRMYXN0RXJyb3JTdHJpbmcodm9pZCkNCis/Q1JHZXRMYXN0RXJyb3JTdHJpbmdAQFlHUEJHWFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSR2V0TGlnaHRuZXNzKGNsYXNzIENSQ29sb3IgKikNCis/Q1JHZXRMaWdodG5lc3NAQFlHUEFWQ1JOdW1iZXJAQFBBVkNSQ29sb3JAQEBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fc3RkY2FsbCBDUkdldE1vZGlmaWFibGVCdnIoY2xhc3MgQ1JCdnIgKikNCis/Q1JHZXRNb2RpZmlhYmxlQnZyQEBZR1BBVkNSQnZyQEBQQVYxQEBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fc3RkY2FsbCBDUkdldE91dHB1dEJ2cihjbGFzcyBDUkRYVHJhbnNmb3JtUmVzdWx0ICopDQorP0NSR2V0T3V0cHV0QnZyQEBZR1BBVkNSQnZyQEBQQVZDUkRYVHJhbnNmb3JtUmVzdWx0QEBAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JHZXRQcmVmZXJlbmNlKGNsYXNzIENSVmlldyAqLHVuc2lnbmVkIHNob3J0ICosc3RydWN0IHRhZ1ZBUklBTlQgKikNCis/Q1JHZXRQcmVmZXJlbmNlQEBZR19OUEFWQ1JWaWV3QEBQQUdQQVV0YWdWQVJJQU5UQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JHZXRQcm9ncmVzcyhjbGFzcyBDUkltcG9ydGF0aW9uUmVzdWx0ICopDQorP0NSR2V0UHJvZ3Jlc3NAQFlHUEFWQ1JOdW1iZXJAQFBBVkNSSW1wb3J0YXRpb25SZXN1bHRAQEBaDQorOyBib29sIF9fc3RkY2FsbCBDUkdldFJNRGV2aWNlKGNsYXNzIENSVmlldyAqLHN0cnVjdCBJVW5rbm93biAqICosdW5zaWduZWQgbG9uZyAqKQ0KKz9DUkdldFJNRGV2aWNlQEBZR19OUEFWQ1JWaWV3QEBQQVBBVUlVbmtub3duQEBQQUtAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JHZXRSZWQoY2xhc3MgQ1JDb2xvciAqKQ0KKz9DUkdldFJlZEBAWUdQQVZDUk51bWJlckBAUEFWQ1JDb2xvckBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSR2V0U2F0dXJhdGlvbihjbGFzcyBDUkNvbG9yICopDQorP0NSR2V0U2F0dXJhdGlvbkBAWUdQQVZDUk51bWJlckBAUEFWQ1JDb2xvckBAQFoNCis7IHN0cnVjdCBJU2VydmljZVByb3ZpZGVyICogX19zdGRjYWxsIENSR2V0U2VydmljZVByb3ZpZGVyKGNsYXNzIENSVmlldyAqKQ0KKz9DUkdldFNlcnZpY2VQcm92aWRlckBAWUdQQVVJU2VydmljZVByb3ZpZGVyQEBQQVZDUlZpZXdAQEBaDQorOyBkb3VibGUgX19zdGRjYWxsIENSR2V0U2ltdWxhdGlvblRpbWUoY2xhc3MgQ1JWaWV3ICopDQorP0NSR2V0U2ltdWxhdGlvblRpbWVAQFlHTlBBVkNSVmlld0BAQFoNCis7IGNsYXNzIENSVmlld1NpdGUgKiBfX3N0ZGNhbGwgQ1JHZXRTaXRlKGNsYXNzIENSVmlldyAqKQ0KKz9DUkdldFNpdGVAQFlHUEFWQ1JWaWV3U2l0ZUBAUEFWQ1JWaWV3QEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JHZXRTaXplKGNsYXNzIENSSW1wb3J0YXRpb25SZXN1bHQgKikNCis/Q1JHZXRTaXplQEBZR1BBVkNSTnVtYmVyQEBQQVZDUkltcG9ydGF0aW9uUmVzdWx0QEBAWg0KKzsgY2xhc3MgQ1JTb3VuZCAqIF9fc3RkY2FsbCBDUkdldFNvdW5kKGNsYXNzIENSSW1wb3J0YXRpb25SZXN1bHQgKikNCis/Q1JHZXRTb3VuZEBAWUdQQVZDUlNvdW5kQEBQQVZDUkltcG9ydGF0aW9uUmVzdWx0QEBAWg0KKzsgc3RydWN0IElVbmtub3duICogX19zdGRjYWxsIENSR2V0VHJhbnNmb3JtKGNsYXNzIENSRFhUcmFuc2Zvcm1SZXN1bHQgKikNCis/Q1JHZXRUcmFuc2Zvcm1AQFlHUEFVSVVua25vd25AQFBBVkNSRFhUcmFuc2Zvcm1SZXN1bHRAQEBaDQorOyBlbnVtIENSX0JWUl9UWVBFSUQgIF9fc3RkY2FsbCBDUkdldFR5cGVJZChjbGFzcyBDUkJ2ciAqKQ0KKz9DUkdldFR5cGVJZEBAWUc/QVc0Q1JfQlZSX1RZUEVJREBAUEFWQ1JCdnJAQEBaDQorOyBzdHJ1Y3QgSFdORF9fICogX19zdGRjYWxsIENSR2V0V2luZG93KGNsYXNzIENSVmlldyAqKQ0KKz9DUkdldFdpbmRvd0BAWUdQQVVIV05EX19AQFBBVkNSVmlld0BAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSR2V0WChjbGFzcyBDUlBvaW50MiAqKQ0KKz9DUkdldFhAQFlHUEFWQ1JOdW1iZXJAQFBBVkNSUG9pbnQyQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JHZXRYKGNsYXNzIENSUG9pbnQzICopDQorP0NSR2V0WEBAWUdQQVZDUk51bWJlckBAUEFWQ1JQb2ludDNAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUkdldFgoY2xhc3MgQ1JWZWN0b3IyICopDQorP0NSR2V0WEBAWUdQQVZDUk51bWJlckBAUEFWQ1JWZWN0b3IyQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JHZXRYKGNsYXNzIENSVmVjdG9yMyAqKQ0KKz9DUkdldFhAQFlHUEFWQ1JOdW1iZXJAQFBBVkNSVmVjdG9yM0BAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSR2V0WShjbGFzcyBDUlBvaW50MiAqKQ0KKz9DUkdldFlAQFlHUEFWQ1JOdW1iZXJAQFBBVkNSUG9pbnQyQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JHZXRZKGNsYXNzIENSUG9pbnQzICopDQorP0NSR2V0WUBAWUdQQVZDUk51bWJlckBAUEFWQ1JQb2ludDNAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUkdldFkoY2xhc3MgQ1JWZWN0b3IyICopDQorP0NSR2V0WUBAWUdQQVZDUk51bWJlckBAUEFWQ1JWZWN0b3IyQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JHZXRZKGNsYXNzIENSVmVjdG9yMyAqKQ0KKz9DUkdldFlAQFlHUEFWQ1JOdW1iZXJAQFBBVkNSVmVjdG9yM0BAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSR2V0WihjbGFzcyBDUlBvaW50MyAqKQ0KKz9DUkdldFpAQFlHUEFWQ1JOdW1iZXJAQFBBVkNSUG9pbnQzQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JHZXRaKGNsYXNzIENSVmVjdG9yMyAqKQ0KKz9DUkdldFpAQFlHUEFWQ1JOdW1iZXJAQFBBVkNSVmVjdG9yM0BAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSR2xvYmFsVGltZSh2b2lkKQ0KKz9DUkdsb2JhbFRpbWVAQFlHUEFWQ1JOdW1iZXJAQFhaDQorOyBjbGFzcyBDUkltYWdlICogX19zdGRjYWxsIENSR3JhZGllbnRIb3Jpem9udGFsKGNsYXNzIENSQ29sb3IgKixjbGFzcyBDUkNvbG9yICosZG91YmxlKQ0KKz9DUkdyYWRpZW50SG9yaXpvbnRhbEBAWUdQQVZDUkltYWdlQEBQQVZDUkNvbG9yQEAwTkBaDQorOyBjbGFzcyBDUkltYWdlICogX19zdGRjYWxsIENSR3JhZGllbnRIb3Jpem9udGFsKGNsYXNzIENSQ29sb3IgKixjbGFzcyBDUkNvbG9yICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JHcmFkaWVudEhvcml6b250YWxAQFlHUEFWQ1JJbWFnZUBAUEFWQ1JDb2xvckBAMFBBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fc3RkY2FsbCBDUkdyYWRpZW50UG9seWdvbihjbGFzcyBDUkFycmF5ICosY2xhc3MgQ1JBcnJheSAqKQ0KKz9DUkdyYWRpZW50UG9seWdvbkBAWUdQQVZDUkltYWdlQEBQQVZDUkFycmF5QEAwQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JHcmFkaWVudFNxdWFyZShjbGFzcyBDUkNvbG9yICosY2xhc3MgQ1JDb2xvciAqLGNsYXNzIENSQ29sb3IgKixjbGFzcyBDUkNvbG9yICopDQorP0NSR3JhZGllbnRTcXVhcmVAQFlHUEFWQ1JJbWFnZUBAUEFWQ1JDb2xvckBAMDAwQFoNCis7IGNsYXNzIENSQ29sb3IgKiBfX3N0ZGNhbGwgQ1JHcmF5KHZvaWQpDQorP0NSR3JheUBAWUdQQVZDUkNvbG9yQEBYWg0KKzsgY2xhc3MgQ1JDb2xvciAqIF9fc3RkY2FsbCBDUkdyZWVuKHZvaWQpDQorP0NSR3JlZW5AQFlHUEFWQ1JDb2xvckBAWFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JIYXRjaEJhY2t3YXJkRGlhZ29uYWwoY2xhc3MgQ1JDb2xvciAqLGRvdWJsZSkNCis/Q1JIYXRjaEJhY2t3YXJkRGlhZ29uYWxAQFlHUEFWQ1JJbWFnZUBAUEFWQ1JDb2xvckBATkBaDQorOyBjbGFzcyBDUkltYWdlICogX19zdGRjYWxsIENSSGF0Y2hCYWNrd2FyZERpYWdvbmFsKGNsYXNzIENSQ29sb3IgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUkhhdGNoQmFja3dhcmREaWFnb25hbEBAWUdQQVZDUkltYWdlQEBQQVZDUkNvbG9yQEBQQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JIYXRjaENyb3NzKGNsYXNzIENSQ29sb3IgKixkb3VibGUpDQorP0NSSGF0Y2hDcm9zc0BAWUdQQVZDUkltYWdlQEBQQVZDUkNvbG9yQEBOQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JIYXRjaENyb3NzKGNsYXNzIENSQ29sb3IgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUkhhdGNoQ3Jvc3NAQFlHUEFWQ1JJbWFnZUBAUEFWQ1JDb2xvckBAUEFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19zdGRjYWxsIENSSGF0Y2hEaWFnb25hbENyb3NzKGNsYXNzIENSQ29sb3IgKixkb3VibGUpDQorP0NSSGF0Y2hEaWFnb25hbENyb3NzQEBZR1BBVkNSSW1hZ2VAQFBBVkNSQ29sb3JAQE5AWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fc3RkY2FsbCBDUkhhdGNoRGlhZ29uYWxDcm9zcyhjbGFzcyBDUkNvbG9yICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JIYXRjaERpYWdvbmFsQ3Jvc3NAQFlHUEFWQ1JJbWFnZUBAUEFWQ1JDb2xvckBAUEFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19zdGRjYWxsIENSSGF0Y2hGb3J3YXJkRGlhZ29uYWwoY2xhc3MgQ1JDb2xvciAqLGRvdWJsZSkNCis/Q1JIYXRjaEZvcndhcmREaWFnb25hbEBAWUdQQVZDUkltYWdlQEBQQVZDUkNvbG9yQEBOQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JIYXRjaEZvcndhcmREaWFnb25hbChjbGFzcyBDUkNvbG9yICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JIYXRjaEZvcndhcmREaWFnb25hbEBAWUdQQVZDUkltYWdlQEBQQVZDUkNvbG9yQEBQQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JIYXRjaEhvcml6b250YWwoY2xhc3MgQ1JDb2xvciAqLGRvdWJsZSkNCis/Q1JIYXRjaEhvcml6b250YWxAQFlHUEFWQ1JJbWFnZUBAUEFWQ1JDb2xvckBATkBaDQorOyBjbGFzcyBDUkltYWdlICogX19zdGRjYWxsIENSSGF0Y2hIb3Jpem9udGFsKGNsYXNzIENSQ29sb3IgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUkhhdGNoSG9yaXpvbnRhbEBAWUdQQVZDUkltYWdlQEBQQVZDUkNvbG9yQEBQQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JIYXRjaFZlcnRpY2FsKGNsYXNzIENSQ29sb3IgKixkb3VibGUpDQorP0NSSGF0Y2hWZXJ0aWNhbEBAWUdQQVZDUkltYWdlQEBQQVZDUkNvbG9yQEBOQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JIYXRjaFZlcnRpY2FsKGNsYXNzIENSQ29sb3IgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUkhhdGNoVmVydGljYWxAQFlHUEFWQ1JJbWFnZUBAUEFWQ1JDb2xvckBAUEFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fc3RkY2FsbCBDUkhvb2soY2xhc3MgQ1JCdnIgKixjbGFzcyBDUkJ2ckhvb2sgKikNCis/Q1JIb29rQEBZR1BBVkNSQnZyQEBQQVYxQFBBVkNSQnZySG9va0BAQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fc3RkY2FsbCBDUklkZW50aXR5VHJhbnNmb3JtMih2b2lkKQ0KKz9DUklkZW50aXR5VHJhbnNmb3JtMkBAWUdQQVZDUlRyYW5zZm9ybTJAQFhaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3N0ZGNhbGwgQ1JJZGVudGl0eVRyYW5zZm9ybTModm9pZCkNCis/Q1JJZGVudGl0eVRyYW5zZm9ybTNAQFlHUEFWQ1JUcmFuc2Zvcm0zQEBYWg0KKzsgY2xhc3MgQ1JNb250YWdlICogX19zdGRjYWxsIENSSW1hZ2VNb250YWdlKGNsYXNzIENSSW1hZ2UgKixkb3VibGUpDQorP0NSSW1hZ2VNb250YWdlQEBZR1BBVkNSTW9udGFnZUBAUEFWQ1JJbWFnZUBATkBaDQorOyBjbGFzcyBDUk1vbnRhZ2UgKiBfX3N0ZGNhbGwgQ1JJbWFnZU1vbnRhZ2VBbmltKGNsYXNzIENSSW1hZ2UgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUkltYWdlTW9udGFnZUFuaW1AQFlHUEFWQ1JNb250YWdlQEBQQVZDUkltYWdlQEBQQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JJbWFnZVF1YWxpdHkoY2xhc3MgQ1JJbWFnZSAqLHVuc2lnbmVkIGxvbmcpDQorP0NSSW1hZ2VRdWFsaXR5QEBZR1BBVkNSSW1hZ2VAQFBBVjFAS0BaDQorOyBib29sIF9fc3RkY2FsbCBDUkltcG9ydENhbmNlbChjbGFzcyBDUkJ2ciAqKQ0KKz9DUkltcG9ydENhbmNlbEBAWUdfTlBBVkNSQnZyQEBAWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fc3RkY2FsbCBDUkltcG9ydERpcmVjdDNEUk1WaXN1YWwoc3RydWN0IElVbmtub3duICopDQorP0NSSW1wb3J0RGlyZWN0M0RSTVZpc3VhbEBAWUdQQVZDUkdlb21ldHJ5QEBQQVVJVW5rbm93bkBAQFoNCis7IGNsYXNzIENSR2VvbWV0cnkgKiBfX3N0ZGNhbGwgQ1JJbXBvcnREaXJlY3QzRFJNVmlzdWFsV3JhcHBlZChzdHJ1Y3QgSVVua25vd24gKixsb25nLGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSx1bnNpZ25lZCBsb25nKQ0KKz9DUkltcG9ydERpcmVjdDNEUk1WaXN1YWxXcmFwcGVkQEBZR1BBVkNSR2VvbWV0cnlAQFBBVUlVbmtub3duQEBKTk5OTk5OTk5OTk5OTktAWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fc3RkY2FsbCBDUkltcG9ydERpcmVjdERyYXdTdXJmYWNlKHN0cnVjdCBJVW5rbm93biAqLGNsYXNzIENSRXZlbnQgKikNCis/Q1JJbXBvcnREaXJlY3REcmF3U3VyZmFjZUBAWUdQQVZDUkltYWdlQEBQQVVJVW5rbm93bkBAUEFWQ1JFdmVudEBAQFoNCis7IHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENSSW1wb3J0R2VvbWV0cnkodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENSSW1wb3J0U2l0ZSAqLHN0cnVjdCBJQmluZEhvc3QgKixjbGFzcyBDUkdlb21ldHJ5ICosY2xhc3MgQ1JHZW9tZXRyeSAqICosY2xhc3MgQ1JFdmVudCAqICosY2xhc3MgQ1JOdW1iZXIgKiAqLGNsYXNzIENSTnVtYmVyICogKikNCis/Q1JJbXBvcnRHZW9tZXRyeUBAWUdLUEJHMFBBVkNSSW1wb3J0U2l0ZUBAUEFVSUJpbmRIb3N0QEBQQVZDUkdlb21ldHJ5QEBQQVBBVjNAUEFQQVZDUkV2ZW50QEBQQVBBVkNSTnVtYmVyQEA2QFoNCis7IHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENSSW1wb3J0R2VvbWV0cnlXcmFwcGVkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDUkltcG9ydFNpdGUgKixzdHJ1Y3QgSUJpbmRIb3N0ICosY2xhc3MgQ1JHZW9tZXRyeSAqLGNsYXNzIENSR2VvbWV0cnkgKiAqLGNsYXNzIENSRXZlbnQgKiAqLGNsYXNzIENSTnVtYmVyICogKixjbGFzcyBDUk51bWJlciAqICosbG9uZyxkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUsdW5zaWduZWQgbG9uZykNCis/Q1JJbXBvcnRHZW9tZXRyeVdyYXBwZWRAQFlHS1BCRzBQQVZDUkltcG9ydFNpdGVAQFBBVUlCaW5kSG9zdEBAUEFWQ1JHZW9tZXRyeUBAUEFQQVYzQFBBUEFWQ1JFdmVudEBAUEFQQVZDUk51bWJlckBANkpOTk5OTk5OTk5OTk5OS0BaDQorOyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDUkltcG9ydEltYWdlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDUkltcG9ydFNpdGUgKixzdHJ1Y3QgSUJpbmRIb3N0ICosYm9vbCx1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhcixjbGFzcyBDUkltYWdlICosY2xhc3MgQ1JJbWFnZSAqICosY2xhc3MgQ1JFdmVudCAqICosY2xhc3MgQ1JOdW1iZXIgKiAqLGNsYXNzIENSTnVtYmVyICogKikNCis/Q1JJbXBvcnRJbWFnZUBAWUdLUEJHMFBBVkNSSW1wb3J0U2l0ZUBAUEFVSUJpbmRIb3N0QEBfTkVFRVBBVkNSSW1hZ2VAQFBBUEFWM0BQQVBBVkNSRXZlbnRAQFBBUEFWQ1JOdW1iZXJAQDdAWg0KKzsgY2xhc3MgQ1JJbXBvcnRhdGlvblJlc3VsdCAqIF9fc3RkY2FsbCBDUkltcG9ydE1lZGlhKHVuc2lnbmVkIHNob3J0ICosdm9pZCAqLGVudW0gQ1JfTUVESUFfU09VUkNFLHZvaWQgKiAqIGNvbnN0LHVuc2lnbmVkIGxvbmcsY2xhc3MgQ1JJbXBvcnRTaXRlICopDQorP0NSSW1wb3J0TWVkaWFAQFlHUEFWQ1JJbXBvcnRhdGlvblJlc3VsdEBAUEFHUEFYVzRDUl9NRURJQV9TT1VSQ0VAQFFBUEFYS1BBVkNSSW1wb3J0U2l0ZUBAQFoNCis7IHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENSSW1wb3J0TW92aWUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENSSW1wb3J0U2l0ZSAqLHN0cnVjdCBJQmluZEhvc3QgKixib29sLGNsYXNzIENSSW1hZ2UgKixjbGFzcyBDUlNvdW5kICosY2xhc3MgQ1JJbWFnZSAqICosY2xhc3MgQ1JTb3VuZCAqICosY2xhc3MgQ1JOdW1iZXIgKiAqLGNsYXNzIENSRXZlbnQgKiAqLGNsYXNzIENSTnVtYmVyICogKixjbGFzcyBDUk51bWJlciAqICopDQorP0NSSW1wb3J0TW92aWVAQFlHS1BCRzBQQVZDUkltcG9ydFNpdGVAQFBBVUlCaW5kSG9zdEBAX05QQVZDUkltYWdlQEBQQVZDUlNvdW5kQEBQQVBBVjNAUEFQQVY0QFBBUEFWQ1JOdW1iZXJAQFBBUEFWQ1JFdmVudEBAODhAWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ1JJbXBvcnRTb3VuZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1JJbXBvcnRTaXRlICosc3RydWN0IElCaW5kSG9zdCAqLGJvb2wsY2xhc3MgQ1JTb3VuZCAqLGNsYXNzIENSU291bmQgKiAqLGNsYXNzIENSTnVtYmVyICogKixjbGFzcyBDUkV2ZW50ICogKixjbGFzcyBDUk51bWJlciAqICosY2xhc3MgQ1JOdW1iZXIgKiAqKQ0KKz9DUkltcG9ydFNvdW5kQEBZR0tQQkcwUEFWQ1JJbXBvcnRTaXRlQEBQQVVJQmluZEhvc3RAQF9OUEFWQ1JTb3VuZEBAUEFQQVYzQFBBUEFWQ1JOdW1iZXJAQFBBUEFWQ1JFdmVudEBANjZAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgQ1JJbXBvcnRTdGF0dXMoY2xhc3MgQ1JCdnIgKikNCis/Q1JJbXBvcnRTdGF0dXNAQFlHSlBBVkNSQnZyQEBAWg0KKzsgY2xhc3MgQ1JCdnIgKiBfX3N0ZGNhbGwgQ1JJbXBvcnRhbmNlKGNsYXNzIENSQnZyICosZG91YmxlKQ0KKz9DUkltcG9ydGFuY2VAQFlHUEFWQ1JCdnJAQFBBVjFATkBaDQorOyBib29sIF9fc3RkY2FsbCBDUkluaXQoY2xhc3MgQ1JCdnIgKixjbGFzcyBDUkJ2ciAqKQ0KKz9DUkluaXRAQFlHX05QQVZDUkJ2ckBAMEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUkludGVncmFsKGNsYXNzIENSTnVtYmVyICopDQorP0NSSW50ZWdyYWxAQFlHUEFWQ1JOdW1iZXJAQFBBVjFAQFoNCis7IGNsYXNzIENSVmVjdG9yMiAqIF9fc3RkY2FsbCBDUkludGVncmFsKGNsYXNzIENSVmVjdG9yMiAqKQ0KKz9DUkludGVncmFsQEBZR1BBVkNSVmVjdG9yMkBAUEFWMUBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19zdGRjYWxsIENSSW50ZWdyYWwoY2xhc3MgQ1JWZWN0b3IzICopDQorP0NSSW50ZWdyYWxAQFlHUEFWQ1JWZWN0b3IzQEBQQVYxQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUkludGVycG9sYXRlKGRvdWJsZSxkb3VibGUsZG91YmxlKQ0KKz9DUkludGVycG9sYXRlQEBZR1BBVkNSTnVtYmVyQEBOTk5AWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JJbnRlcnBvbGF0ZShjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JJbnRlcnBvbGF0ZUBAWUdQQVZDUk51bWJlckBAUEFWMUAwMEBaDQorOyBjbGFzcyBDUk1hdHRlICogX19zdGRjYWxsIENSSW50ZXJzZWN0TWF0dGUoY2xhc3MgQ1JNYXR0ZSAqLGNsYXNzIENSTWF0dGUgKikNCis/Q1JJbnRlcnNlY3RNYXR0ZUBAWUdQQVZDUk1hdHRlQEBQQVYxQDBAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19zdGRjYWxsIENSSW52ZXJzZShjbGFzcyBDUlRyYW5zZm9ybTIgKikNCis/Q1JJbnZlcnNlQEBZR1BBVkNSVHJhbnNmb3JtMkBAUEFWMUBAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0zICogX19zdGRjYWxsIENSSW52ZXJzZShjbGFzcyBDUlRyYW5zZm9ybTMgKikNCis/Q1JJbnZlcnNlQEBZR1BBVkNSVHJhbnNmb3JtM0BAUEFWMUBAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JJc0Nvbm5lY3RlZChzdHJ1Y3QgSElOU1RBTkNFX18gKikNCis/Q1JJc0Nvbm5lY3RlZEBAWUdfTlBBVUhJTlNUQU5DRV9fQEBAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JJc0NvbnN0YW50QnZyKGNsYXNzIENSQnZyICopDQorP0NSSXNDb25zdGFudEJ2ckBAWUdfTlBBVkNSQnZyQEBAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JJc0ltcG9ydChjbGFzcyBDUkJ2ciAqKQ0KKz9DUklzSW1wb3J0QEBZR19OUEFWQ1JCdnJAQEBaDQorOyBib29sIF9fc3RkY2FsbCBDUklzTW9kaWZpYWJsZUJ2cihjbGFzcyBDUkJ2ciAqKQ0KKz9DUklzTW9kaWZpYWJsZUJ2ckBAWUdfTlBBVkNSQnZyQEBAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JJc1JlYWR5KGNsYXNzIENSQnZyICosYm9vbCkNCis/Q1JJc1JlYWR5QEBZR19OUEFWQ1JCdnJAQF9OQFoNCis7IGNsYXNzIENSQm9vbGVhbiAqIF9fc3RkY2FsbCBDUklzU2luZ3VsYXIoY2xhc3MgQ1JUcmFuc2Zvcm0yICopDQorP0NSSXNTaW5ndWxhckBAWUdQQVZDUkJvb2xlYW5AQFBBVkNSVHJhbnNmb3JtMkBAQFoNCis7IGNsYXNzIENSQm9vbGVhbiAqIF9fc3RkY2FsbCBDUklzU2luZ3VsYXIoY2xhc3MgQ1JUcmFuc2Zvcm0zICopDQorP0NSSXNTaW5ndWxhckBAWUdQQVZDUkJvb2xlYW5AQFBBVkNSVHJhbnNmb3JtM0BAQFoNCis7IGNsYXNzIENSRm9udFN0eWxlICogX19zdGRjYWxsIENSSXRhbGljKGNsYXNzIENSRm9udFN0eWxlICopDQorP0NSSXRhbGljQEBZR1BBVkNSRm9udFN0eWxlQEBQQVYxQEBaDQorOyBjbGFzcyBDUkxpbmVTdHlsZSAqIF9fc3RkY2FsbCBDUkpvaW4oY2xhc3MgQ1JMaW5lU3R5bGUgKixjbGFzcyBDUkpvaW5TdHlsZSAqKQ0KKz9DUkpvaW5AQFlHUEFWQ1JMaW5lU3R5bGVAQFBBVjFAUEFWQ1JKb2luU3R5bGVAQEBaDQorOyBjbGFzcyBDUkxpbmVTdHlsZSAqIF9fc3RkY2FsbCBDUkpvaW5FeChjbGFzcyBDUkxpbmVTdHlsZSAqLHVuc2lnbmVkIGxvbmcpDQorP0NSSm9pbkV4QEBZR1BBVkNSTGluZVN0eWxlQEBQQVYxQEtAWg0KKzsgY2xhc3MgQ1JKb2luU3R5bGUgKiBfX3N0ZGNhbGwgQ1JKb2luU3R5bGVCZXZlbCh2b2lkKQ0KKz9DUkpvaW5TdHlsZUJldmVsQEBZR1BBVkNSSm9pblN0eWxlQEBYWg0KKzsgY2xhc3MgQ1JKb2luU3R5bGUgKiBfX3N0ZGNhbGwgQ1JKb2luU3R5bGVNaXRlcih2b2lkKQ0KKz9DUkpvaW5TdHlsZU1pdGVyQEBZR1BBVkNSSm9pblN0eWxlQEBYWg0KKzsgY2xhc3MgQ1JKb2luU3R5bGUgKiBfX3N0ZGNhbGwgQ1JKb2luU3R5bGVSb3VuZCh2b2lkKQ0KKz9DUkpvaW5TdHlsZVJvdW5kQEBZR1BBVkNSSm9pblN0eWxlQEBYWg0KKzsgY2xhc3MgQ1JFdmVudCAqIF9fc3RkY2FsbCBDUktleURvd24obG9uZykNCis/Q1JLZXlEb3duQEBZR1BBVkNSRXZlbnRAQEpAWg0KKzsgY2xhc3MgQ1JCb29sZWFuICogX19zdGRjYWxsIENSS2V5U3RhdGUoY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JLZXlTdGF0ZUBAWUdQQVZDUkJvb2xlYW5AQFBBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JFdmVudCAqIF9fc3RkY2FsbCBDUktleVVwKGxvbmcpDQorP0NSS2V5VXBAQFlHUEFWQ1JFdmVudEBASkBaDQorOyBjbGFzcyBDUkJvb2xlYW4gKiBfX3N0ZGNhbGwgQ1JMVChjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSTFRAQFlHUEFWQ1JCb29sZWFuQEBQQVZDUk51bWJlckBAMEBaDQorOyBjbGFzcyBDUkJvb2xlYW4gKiBfX3N0ZGNhbGwgQ1JMVEUoY2xhc3MgQ1JOdW1iZXIgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUkxURUBAWUdQQVZDUkJvb2xlYW5AQFBBVkNSTnVtYmVyQEAwQFoNCis7IGNsYXNzIENSRXZlbnQgKiBfX3N0ZGNhbGwgQ1JMZWZ0QnV0dG9uRG93bih2b2lkKQ0KKz9DUkxlZnRCdXR0b25Eb3duQEBZR1BBVkNSRXZlbnRAQFhaDQorOyBjbGFzcyBDUkJvb2xlYW4gKiBfX3N0ZGNhbGwgQ1JMZWZ0QnV0dG9uU3RhdGUodm9pZCkNCis/Q1JMZWZ0QnV0dG9uU3RhdGVAQFlHUEFWQ1JCb29sZWFuQEBYWg0KKzsgY2xhc3MgQ1JFdmVudCAqIF9fc3RkY2FsbCBDUkxlZnRCdXR0b25VcCh2b2lkKQ0KKz9DUkxlZnRCdXR0b25VcEBAWUdQQVZDUkV2ZW50QEBYWg0KKzsgbG9uZyBfX3N0ZGNhbGwgQ1JMZW5ndGgoY2xhc3MgQ1JUdXBsZSAqKQ0KKz9DUkxlbmd0aEBAWUdKUEFWQ1JUdXBsZUBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSTGVuZ3RoKGNsYXNzIENSQXJyYXkgKikNCis/Q1JMZW5ndGhAQFlHUEFWQ1JOdW1iZXJAQFBBVkNSQXJyYXlAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUkxlbmd0aChjbGFzcyBDUlZlY3RvcjIgKikNCis/Q1JMZW5ndGhAQFlHUEFWQ1JOdW1iZXJAQFBBVkNSVmVjdG9yMkBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSTGVuZ3RoKGNsYXNzIENSVmVjdG9yMyAqKQ0KKz9DUkxlbmd0aEBAWUdQQVZDUk51bWJlckBAUEFWQ1JWZWN0b3IzQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JMZW5ndGhTcXVhcmVkKGNsYXNzIENSVmVjdG9yMiAqKQ0KKz9DUkxlbmd0aFNxdWFyZWRAQFlHUEFWQ1JOdW1iZXJAQFBBVkNSVmVjdG9yMkBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSTGVuZ3RoU3F1YXJlZChjbGFzcyBDUlZlY3RvcjMgKikNCis/Q1JMZW5ndGhTcXVhcmVkQEBZR1BBVkNSTnVtYmVyQEBQQVZDUlZlY3RvcjNAQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSTGlnaHRBdHRlbnVhdGlvbihjbGFzcyBDUkdlb21ldHJ5ICosZG91YmxlLGRvdWJsZSxkb3VibGUpDQorP0NSTGlnaHRBdHRlbnVhdGlvbkBAWUdQQVZDUkdlb21ldHJ5QEBQQVYxQE5OTkBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSTGlnaHRBdHRlbnVhdGlvbihjbGFzcyBDUkdlb21ldHJ5ICosY2xhc3MgQ1JOdW1iZXIgKixjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSTGlnaHRBdHRlbnVhdGlvbkBAWUdQQVZDUkdlb21ldHJ5QEBQQVYxQFBBVkNSTnVtYmVyQEAxMUBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSTGlnaHRDb2xvcihjbGFzcyBDUkdlb21ldHJ5ICosY2xhc3MgQ1JDb2xvciAqKQ0KKz9DUkxpZ2h0Q29sb3JAQFlHUEFWQ1JHZW9tZXRyeUBAUEFWMUBQQVZDUkNvbG9yQEBAWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fc3RkY2FsbCBDUkxpZ2h0UmFuZ2UoY2xhc3MgQ1JHZW9tZXRyeSAqLGRvdWJsZSkNCis/Q1JMaWdodFJhbmdlQEBZR1BBVkNSR2VvbWV0cnlAQFBBVjFATkBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSTGlnaHRSYW5nZShjbGFzcyBDUkdlb21ldHJ5ICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JMaWdodFJhbmdlQEBZR1BBVkNSR2VvbWV0cnlAQFBBVjFAUEFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSTGlnaHRpbmcoY2xhc3MgQ1JHZW9tZXRyeSAqLGNsYXNzIENSQm9vbGVhbiAqKQ0KKz9DUkxpZ2h0aW5nQEBZR1BBVkNSR2VvbWV0cnlAQFBBVjFAUEFWQ1JCb29sZWFuQEBAWg0KKzsgY2xhc3MgQ1JDb2xvciAqIF9fc3RkY2FsbCBDUkxpbWUodm9pZCkNCis/Q1JMaW1lQEBZR1BBVkNSQ29sb3JAQFhaDQorOyBjbGFzcyBDUlBhdGgyICogX19zdGRjYWxsIENSTGluZShjbGFzcyBDUlBvaW50MiAqLGNsYXNzIENSUG9pbnQyICopDQorP0NSTGluZUBAWUdQQVZDUlBhdGgyQEBQQVZDUlBvaW50MkBAMEBaDQorOyBjbGFzcyBDUkxpbmVTdHlsZSAqIF9fc3RkY2FsbCBDUkxpbmVDb2xvcihjbGFzcyBDUkxpbmVTdHlsZSAqLGNsYXNzIENSQ29sb3IgKikNCis/Q1JMaW5lQ29sb3JAQFlHUEFWQ1JMaW5lU3R5bGVAQFBBVjFAUEFWQ1JDb2xvckBAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JMaW5lYXJHcmFkaWVudE11bHRpY29sb3IoY2xhc3MgQ1JBcnJheSAqLGNsYXNzIENSQXJyYXkgKikNCis/Q1JMaW5lYXJHcmFkaWVudE11bHRpY29sb3JAQFlHUEFWQ1JJbWFnZUBAUEFWQ1JBcnJheUBAMEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUkxuKGNsYXNzIENSTnVtYmVyICopDQorP0NSTG5AQFlHUEFWQ1JOdW1iZXJAQFBBVjFAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSTG9jYWxUaW1lKHZvaWQpDQorP0NSTG9jYWxUaW1lQEBZR1BBVkNSTnVtYmVyQEBYWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JMb2cxMChjbGFzcyBDUk51bWJlciAqKQ0KKz9DUkxvZzEwQEBZR1BBVkNSTnVtYmVyQEBQQVYxQEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3N0ZGNhbGwgQ1JMb29rQXRGcm9tKGNsYXNzIENSUG9pbnQzICosY2xhc3MgQ1JQb2ludDMgKixjbGFzcyBDUlZlY3RvcjMgKikNCis/Q1JMb29rQXRGcm9tQEBZR1BBVkNSVHJhbnNmb3JtM0BAUEFWQ1JQb2ludDNAQDBQQVZDUlZlY3RvcjNAQEBaDQorOyBjbGFzcyBDUlNvdW5kICogX19zdGRjYWxsIENSTG9vcChjbGFzcyBDUlNvdW5kICopDQorP0NSTG9vcEBAWUdQQVZDUlNvdW5kQEBQQVYxQEBaDQorOyBjbGFzcyBDUkNvbG9yICogX19zdGRjYWxsIENSTWFnZW50YSh2b2lkKQ0KKz9DUk1hZ2VudGFAQFlHUEFWQ1JDb2xvckBAWFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JNYXBUb1VuaXRTcXVhcmUoY2xhc3MgQ1JJbWFnZSAqKQ0KKz9DUk1hcFRvVW5pdFNxdWFyZUBAWUdQQVZDUkltYWdlQEBQQVYxQEBaDQorOyBjbGFzcyBDUkNvbG9yICogX19zdGRjYWxsIENSTWFyb29uKHZvaWQpDQorP0NSTWFyb29uQEBZR1BBVkNSQ29sb3JAQFhaDQorOyBjbGFzcyBDUlBvaW50MiAqIF9fc3RkY2FsbCBDUk1heChjbGFzcyBDUkJib3gyICopDQorP0NSTWF4QEBZR1BBVkNSUG9pbnQyQEBQQVZDUkJib3gyQEBAWg0KKzsgY2xhc3MgQ1JQb2ludDMgKiBfX3N0ZGNhbGwgQ1JNYXgoY2xhc3MgQ1JCYm94MyAqKQ0KKz9DUk1heEBAWUdQQVZDUlBvaW50M0BAUEFWQ1JCYm94M0BAQFoNCis7IGNsYXNzIENSUG9pbnQyICogX19zdGRjYWxsIENSTWluKGNsYXNzIENSQmJveDIgKikNCis/Q1JNaW5AQFlHUEFWQ1JQb2ludDJAQFBBVkNSQmJveDJAQEBaDQorOyBjbGFzcyBDUlBvaW50MyAqIF9fc3RkY2FsbCBDUk1pbihjbGFzcyBDUkJib3gzICopDQorP0NSTWluQEBZR1BBVkNSUG9pbnQzQEBQQVZDUkJib3gzQEBAWg0KKzsgY2xhc3MgQ1JMaW5lU3R5bGUgKiBfX3N0ZGNhbGwgQ1JNaXRlckxpbWl0KGNsYXNzIENSTGluZVN0eWxlICosZG91YmxlKQ0KKz9DUk1pdGVyTGltaXRAQFlHUEFWQ1JMaW5lU3R5bGVAQFBBVjFATkBaDQorOyBjbGFzcyBDUkxpbmVTdHlsZSAqIF9fc3RkY2FsbCBDUk1pdGVyTGltaXQoY2xhc3MgQ1JMaW5lU3R5bGUgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUk1pdGVyTGltaXRAQFlHUEFWQ1JMaW5lU3R5bGVAQFBBVjFAUEFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUlNvdW5kICogX19zdGRjYWxsIENSTWl4KGNsYXNzIENSU291bmQgKixjbGFzcyBDUlNvdW5kICopDQorP0NSTWl4QEBZR1BBVkNSU291bmRAQFBBVjFAMEBaDQorOyBjbGFzcyBDUlNvdW5kICogX19zdGRjYWxsIENSTWl4KGNsYXNzIENSQXJyYXkgKikNCis/Q1JNaXhAQFlHUEFWQ1JTb3VuZEBAUEFWQ1JBcnJheUBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSTW9kKGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JNb2RAQFlHUEFWQ1JOdW1iZXJAQFBBVjFAMEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSTW9kZWxDbGlwKGNsYXNzIENSR2VvbWV0cnkgKixjbGFzcyBDUlBvaW50MyAqLGNsYXNzIENSVmVjdG9yMyAqKQ0KKz9DUk1vZGVsQ2xpcEBAWUdQQVZDUkdlb21ldHJ5QEBQQVYxQFBBVkNSUG9pbnQzQEBQQVZDUlZlY3RvcjNAQEBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fc3RkY2FsbCBDUk1vZGlmaWFibGVCdnIoY2xhc3MgQ1JCdnIgKix1bnNpZ25lZCBsb25nKQ0KKz9DUk1vZGlmaWFibGVCdnJAQFlHUEFWQ1JCdnJAQFBBVjFAS0BaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUk1vZGlmaWFibGVOdW1iZXIoZG91YmxlKQ0KKz9DUk1vZGlmaWFibGVOdW1iZXJAQFlHUEFWQ1JOdW1iZXJAQE5AWg0KKzsgY2xhc3MgQ1JTdHJpbmcgKiBfX3N0ZGNhbGwgQ1JNb2RpZmlhYmxlU3RyaW5nKHVuc2lnbmVkIHNob3J0ICopDQorP0NSTW9kaWZpYWJsZVN0cmluZ0BAWUdQQVZDUlN0cmluZ0BAUEFHQFoNCis7IGNsYXNzIENSUG9pbnQyICogX19zdGRjYWxsIENSTW91c2VQb3NpdGlvbih2b2lkKQ0KKz9DUk1vdXNlUG9zaXRpb25AQFlHUEFWQ1JQb2ludDJAQFhaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUk11bChjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSTXVsQEBZR1BBVkNSTnVtYmVyQEBQQVYxQDBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IyICogX19zdGRjYWxsIENSTXVsKGNsYXNzIENSVmVjdG9yMiAqLGRvdWJsZSkNCis/Q1JNdWxAQFlHUEFWQ1JWZWN0b3IyQEBQQVYxQE5AWg0KKzsgY2xhc3MgQ1JWZWN0b3IyICogX19zdGRjYWxsIENSTXVsKGNsYXNzIENSVmVjdG9yMiAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSTXVsQEBZR1BBVkNSVmVjdG9yMkBAUEFWMUBQQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSVmVjdG9yMyAqIF9fc3RkY2FsbCBDUk11bChjbGFzcyBDUlZlY3RvcjMgKixkb3VibGUpDQorP0NSTXVsQEBZR1BBVkNSVmVjdG9yM0BAUEFWMUBOQFoNCis7IGNsYXNzIENSVmVjdG9yMyAqIF9fc3RkY2FsbCBDUk11bChjbGFzcyBDUlZlY3RvcjMgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUk11bEBAWUdQQVZDUlZlY3RvcjNAQFBBVjFAUEFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkJvb2xlYW4gKiBfX3N0ZGNhbGwgQ1JORShjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSTkVAQFlHUEFWQ1JCb29sZWFuQEBQQVZDUk51bWJlckBAMEBaDQorOyBjbGFzcyBDUkNvbG9yICogX19zdGRjYWxsIENSTmF2eSh2b2lkKQ0KKz9DUk5hdnlAQFlHUEFWQ1JDb2xvckBAWFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSTmVnKGNsYXNzIENSTnVtYmVyICopDQorP0NSTmVnQEBZR1BBVkNSTnVtYmVyQEBQQVYxQEBaDQorOyBjbGFzcyBDUlZlY3RvcjIgKiBfX3N0ZGNhbGwgQ1JOZWcoY2xhc3MgQ1JWZWN0b3IyICopDQorP0NSTmVnQEBZR1BBVkNSVmVjdG9yMkBAUEFWMUBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19zdGRjYWxsIENSTmVnKGNsYXNzIENSVmVjdG9yMyAqKQ0KKz9DUk5lZ0BAWUdQQVZDUlZlY3RvcjNAQFBBVjFAQFoNCis7IGNsYXNzIENSRXZlbnQgKiBfX3N0ZGNhbGwgQ1JOZXZlcih2b2lkKQ0KKz9DUk5ldmVyQEBZR1BBVkNSRXZlbnRAQFhaDQorOyBjbGFzcyBDUlZlY3RvcjIgKiBfX3N0ZGNhbGwgQ1JOb3JtYWxpemUoY2xhc3MgQ1JWZWN0b3IyICopDQorP0NSTm9ybWFsaXplQEBZR1BBVkNSVmVjdG9yMkBAUEFWMUBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19zdGRjYWxsIENSTm9ybWFsaXplKGNsYXNzIENSVmVjdG9yMyAqKQ0KKz9DUk5vcm1hbGl6ZUBAWUdQQVZDUlZlY3RvcjNAQFBBVjFAQFoNCis7IGNsYXNzIENSQm9vbGVhbiAqIF9fc3RkY2FsbCBDUk5vdChjbGFzcyBDUkJvb2xlYW4gKikNCis/Q1JOb3RAQFlHUEFWQ1JCb29sZWFuQEBQQVYxQEBaDQorOyBjbGFzcyBDUkV2ZW50ICogX19zdGRjYWxsIENSTm90RXZlbnQoY2xhc3MgQ1JFdmVudCAqKQ0KKz9DUk5vdEV2ZW50QEBZR1BBVkNSRXZlbnRAQFBBVjFAQFoNCis7IGNsYXNzIENSRXZlbnQgKiBfX3N0ZGNhbGwgQ1JOb3RpZnkoY2xhc3MgQ1JFdmVudCAqLGNsYXNzIENSVW50aWxOb3RpZmllciAqKQ0KKz9DUk5vdGlmeUBAWUdQQVZDUkV2ZW50QEBQQVYxQFBBVkNSVW50aWxOb3RpZmllckBAQFoNCis7IGNsYXNzIENSQnZyICogX19zdGRjYWxsIENSTnRoKGNsYXNzIENSQXJyYXkgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUk50aEBAWUdQQVZDUkJ2ckBAUEFWQ1JBcnJheUBAUEFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fc3RkY2FsbCBDUk50aChjbGFzcyBDUlR1cGxlICosbG9uZykNCis/Q1JOdGhAQFlHUEFWQ1JCdnJAQFBBVkNSVHVwbGVAQEpAWg0KKzsgY2xhc3MgQ1JDb2xvciAqIF9fc3RkY2FsbCBDUk9saXZlKHZvaWQpDQorP0NST2xpdmVAQFlHUEFWQ1JDb2xvckBAWFoNCis7IGJvb2wgX19zdGRjYWxsIENST25Gb2N1cyhjbGFzcyBDUlZpZXcgKixib29sKQ0KKz9DUk9uRm9jdXNAQFlHX05QQVZDUlZpZXdAQF9OQFoNCis7IGJvb2wgX19zdGRjYWxsIENST25LZXkoY2xhc3MgQ1JWaWV3ICosZG91YmxlLGxvbmcsYm9vbCx1bnNpZ25lZCBjaGFyKQ0KKz9DUk9uS2V5QEBZR19OUEFWQ1JWaWV3QEBOSl9ORUBaDQorOyBib29sIF9fc3RkY2FsbCBDUk9uTW91c2VCdXR0b24oY2xhc3MgQ1JWaWV3ICosZG91YmxlLGxvbmcsbG9uZyx1bnNpZ25lZCBjaGFyLGJvb2wsdW5zaWduZWQgY2hhcikNCis/Q1JPbk1vdXNlQnV0dG9uQEBZR19OUEFWQ1JWaWV3QEBOSkpFX05FQFoNCis7IGJvb2wgX19zdGRjYWxsIENST25Nb3VzZUxlYXZlKGNsYXNzIENSVmlldyAqLGRvdWJsZSkNCis/Q1JPbk1vdXNlTGVhdmVAQFlHX05QQVZDUlZpZXdAQE5AWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JPbk1vdXNlTW92ZShjbGFzcyBDUlZpZXcgKixkb3VibGUsbG9uZyxsb25nLHVuc2lnbmVkIGNoYXIpDQorP0NST25Nb3VzZU1vdmVAQFlHX05QQVZDUlZpZXdAQE5KSkVAWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fc3RkY2FsbCBDUk9wYWNpdHkoY2xhc3MgQ1JHZW9tZXRyeSAqLGRvdWJsZSkNCis/Q1JPcGFjaXR5QEBZR1BBVkNSR2VvbWV0cnlAQFBBVjFATkBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENST3BhY2l0eShjbGFzcyBDUkdlb21ldHJ5ICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JPcGFjaXR5QEBZR1BBVkNSR2VvbWV0cnlAQFBBVjFAUEFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19zdGRjYWxsIENST3BhY2l0eShjbGFzcyBDUkltYWdlICosZG91YmxlKQ0KKz9DUk9wYWNpdHlAQFlHUEFWQ1JJbWFnZUBAUEFWMUBOQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JPcGFjaXR5KGNsYXNzIENSSW1hZ2UgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUk9wYWNpdHlAQFlHUEFWQ1JJbWFnZUBAUEFWMUBQQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSTWF0dGUgKiBfX3N0ZGNhbGwgQ1JPcGFxdWVNYXR0ZSh2b2lkKQ0KKz9DUk9wYXF1ZU1hdHRlQEBZR1BBVkNSTWF0dGVAQFhaDQorOyBjbGFzcyBDUkJvb2xlYW4gKiBfX3N0ZGNhbGwgQ1JPcihjbGFzcyBDUkJvb2xlYW4gKixjbGFzcyBDUkJvb2xlYW4gKikNCis/Q1JPckBAWUdQQVZDUkJvb2xlYW5AQFBBVjFAMEBaDQorOyBjbGFzcyBDUkV2ZW50ICogX19zdGRjYWxsIENST3JFdmVudChjbGFzcyBDUkV2ZW50ICosY2xhc3MgQ1JFdmVudCAqKQ0KKz9DUk9yRXZlbnRAQFlHUEFWQ1JFdmVudEBAUEFWMUAwQFoNCis7IGNsYXNzIENSUG9pbnQyICogX19zdGRjYWxsIENST3JpZ2luMih2b2lkKQ0KKz9DUk9yaWdpbjJAQFlHUEFWQ1JQb2ludDJAQFhaDQorOyBjbGFzcyBDUlBvaW50MyAqIF9fc3RkY2FsbCBDUk9yaWdpbjModm9pZCkNCis/Q1JPcmlnaW4zQEBZR1BBVkNSUG9pbnQzQEBYWg0KKzsgY2xhc3MgQ1JQYXRoMiAqIF9fc3RkY2FsbCBDUk92YWwoZG91YmxlLGRvdWJsZSkNCis/Q1JPdmFsQEBZR1BBVkNSUGF0aDJAQE5OQFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3N0ZGNhbGwgQ1JPdmFsKGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JPdmFsQEBZR1BBVkNSUGF0aDJAQFBBVkNSTnVtYmVyQEAwQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JPdmVybGF5KGNsYXNzIENSSW1hZ2UgKixjbGFzcyBDUkltYWdlICopDQorP0NST3ZlcmxheUBAWUdQQVZDUkltYWdlQEBQQVYxQDBAWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fc3RkY2FsbCBDUk92ZXJsYXkoY2xhc3MgQ1JBcnJheSAqKQ0KKz9DUk92ZXJsYXlAQFlHUEFWQ1JJbWFnZUBAUEFWQ1JBcnJheUBAQFoNCis7IGNsYXNzIENSU291bmQgKiBfX3N0ZGNhbGwgQ1JQYW4oY2xhc3MgQ1JTb3VuZCAqLGRvdWJsZSkNCis/Q1JQYW5AQFlHUEFWQ1JTb3VuZEBAUEFWMUBOQFoNCis7IGNsYXNzIENSU291bmQgKiBfX3N0ZGNhbGwgQ1JQYW4oY2xhc3MgQ1JTb3VuZCAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSUGFuQEBZR1BBVkNSU291bmRAQFBBVjFAUEFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkNhbWVyYSAqIF9fc3RkY2FsbCBDUlBhcmFsbGVsQ2FtZXJhKGRvdWJsZSkNCis/Q1JQYXJhbGxlbENhbWVyYUBAWUdQQVZDUkNhbWVyYUBATkBaDQorOyBjbGFzcyBDUkNhbWVyYSAqIF9fc3RkY2FsbCBDUlBhcmFsbGVsQ2FtZXJhQW5pbShjbGFzcyBDUk51bWJlciAqKQ0KKz9DUlBhcmFsbGVsQ2FtZXJhQW5pbUBAWUdQQVZDUkNhbWVyYUBAUEFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3N0ZGNhbGwgQ1JQYXJhbGxlbFRyYW5zZm9ybTIoY2xhc3MgQ1JUcmFuc2Zvcm0zICopDQorP0NSUGFyYWxsZWxUcmFuc2Zvcm0yQEBZR1BBVkNSVHJhbnNmb3JtMkBAUEFWQ1JUcmFuc2Zvcm0zQEBAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JQYXVzZU1vZGVsKGNsYXNzIENSVmlldyAqKQ0KKz9DUlBhdXNlTW9kZWxAQFlHX05QQVZDUlZpZXdAQEBaDQorOyBjbGFzcyBDUkNhbWVyYSAqIF9fc3RkY2FsbCBDUlBlcnNwZWN0aXZlQ2FtZXJhKGRvdWJsZSxkb3VibGUpDQorP0NSUGVyc3BlY3RpdmVDYW1lcmFAQFlHUEFWQ1JDYW1lcmFAQE5OQFoNCis7IGNsYXNzIENSQ2FtZXJhICogX19zdGRjYWxsIENSUGVyc3BlY3RpdmVDYW1lcmFBbmltKGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JQZXJzcGVjdGl2ZUNhbWVyYUFuaW1AQFlHUEFWQ1JDYW1lcmFAQFBBVkNSTnVtYmVyQEAwQFoNCis7IGNsYXNzIENSU291bmQgKiBfX3N0ZGNhbGwgQ1JQaGFzZShjbGFzcyBDUlNvdW5kICosZG91YmxlKQ0KKz9DUlBoYXNlQEBZR1BBVkNSU291bmRAQFBBVjFATkBaDQorOyBjbGFzcyBDUlNvdW5kICogX19zdGRjYWxsIENSUGhhc2UoY2xhc3MgQ1JTb3VuZCAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSUGhhc2VAQFlHUEFWQ1JTb3VuZEBAUEFWMUBQQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSUGlja2FibGVSZXN1bHQgKiBfX3N0ZGNhbGwgQ1JQaWNrYWJsZShjbGFzcyBDUkdlb21ldHJ5ICopDQorP0NSUGlja2FibGVAQFlHUEFWQ1JQaWNrYWJsZVJlc3VsdEBAUEFWQ1JHZW9tZXRyeUBAQFoNCis7IGNsYXNzIENSUGlja2FibGVSZXN1bHQgKiBfX3N0ZGNhbGwgQ1JQaWNrYWJsZShjbGFzcyBDUkltYWdlICopDQorP0NSUGlja2FibGVAQFlHUEFWQ1JQaWNrYWJsZVJlc3VsdEBAUEFWQ1JJbWFnZUBAQFoNCis7IGNsYXNzIENSUGlja2FibGVSZXN1bHQgKiBfX3N0ZGNhbGwgQ1JQaWNrYWJsZU9jY2x1ZGVkKGNsYXNzIENSR2VvbWV0cnkgKikNCis/Q1JQaWNrYWJsZU9jY2x1ZGVkQEBZR1BBVkNSUGlja2FibGVSZXN1bHRAQFBBVkNSR2VvbWV0cnlAQEBaDQorOyBjbGFzcyBDUlBpY2thYmxlUmVzdWx0ICogX19zdGRjYWxsIENSUGlja2FibGVPY2NsdWRlZChjbGFzcyBDUkltYWdlICopDQorP0NSUGlja2FibGVPY2NsdWRlZEBAWUdQQVZDUlBpY2thYmxlUmVzdWx0QEBQQVZDUkltYWdlQEBAWg0KKzsgY2xhc3MgQ1JQYXRoMiAqIF9fc3RkY2FsbCBDUlBpZShkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUpDQorP0NSUGllQEBZR1BBVkNSUGF0aDJAQE5OTk5AWg0KKzsgY2xhc3MgQ1JQYXRoMiAqIF9fc3RkY2FsbCBDUlBpZVJhZGlhbnMoZG91YmxlLGRvdWJsZSxkb3VibGUsZG91YmxlKQ0KKz9DUlBpZVJhZGlhbnNAQFlHUEFWQ1JQYXRoMkBATk5OTkBaDQorOyBjbGFzcyBDUlBhdGgyICogX19zdGRjYWxsIENSUGllUmFkaWFucyhjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUlBpZVJhZGlhbnNAQFlHUEFWQ1JQYXRoMkBAUEFWQ1JOdW1iZXJAQDAwMEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUlBpeGVsKHZvaWQpDQorP0NSUGl4ZWxAQFlHUEFWQ1JOdW1iZXJAQFhaDQorOyBjbGFzcyBDUlBvaW50MiAqIF9fc3RkY2FsbCBDUlBvaW50MlBvbGFyKGRvdWJsZSxkb3VibGUpDQorP0NSUG9pbnQyUG9sYXJAQFlHUEFWQ1JQb2ludDJAQE5OQFoNCis7IGNsYXNzIENSUG9pbnQyICogX19zdGRjYWxsIENSUG9pbnQyUG9sYXIoY2xhc3MgQ1JOdW1iZXIgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUlBvaW50MlBvbGFyQEBZR1BBVkNSUG9pbnQyQEBQQVZDUk51bWJlckBAMEBaDQorOyBjbGFzcyBDUlBvaW50MyAqIF9fc3RkY2FsbCBDUlBvaW50M1NwaGVyaWNhbChkb3VibGUsZG91YmxlLGRvdWJsZSkNCis/Q1JQb2ludDNTcGhlcmljYWxAQFlHUEFWQ1JQb2ludDNAQE5OTkBaDQorOyBjbGFzcyBDUlBvaW50MyAqIF9fc3RkY2FsbCBDUlBvaW50M1NwaGVyaWNhbChjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JQb2ludDNTcGhlcmljYWxAQFlHUEFWQ1JQb2ludDNAQFBBVkNSTnVtYmVyQEAwMEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSUG9pbnRMaWdodCh2b2lkKQ0KKz9DUlBvaW50TGlnaHRAQFlHUEFWQ1JHZW9tZXRyeUBAWFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSUG9sYXJDb29yZEFuZ2xlKGNsYXNzIENSUG9pbnQyICopDQorP0NSUG9sYXJDb29yZEFuZ2xlQEBZR1BBVkNSTnVtYmVyQEBQQVZDUlBvaW50MkBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSUG9sYXJDb29yZEFuZ2xlKGNsYXNzIENSVmVjdG9yMiAqKQ0KKz9DUlBvbGFyQ29vcmRBbmdsZUBAWUdQQVZDUk51bWJlckBAUEFWQ1JWZWN0b3IyQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JQb2xhckNvb3JkTGVuZ3RoKGNsYXNzIENSUG9pbnQyICopDQorP0NSUG9sYXJDb29yZExlbmd0aEBAWUdQQVZDUk51bWJlckBAUEFWQ1JQb2ludDJAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUlBvbGFyQ29vcmRMZW5ndGgoY2xhc3MgQ1JWZWN0b3IyICopDQorP0NSUG9sYXJDb29yZExlbmd0aEBAWUdQQVZDUk51bWJlckBAUEFWQ1JWZWN0b3IyQEBAWg0KKzsgY2xhc3MgQ1JQYXRoMiAqIF9fc3RkY2FsbCBDUlBvbHlkcmF3UGF0aChkb3VibGUgKix1bnNpZ25lZCBpbnQsZG91YmxlICosdW5zaWduZWQgaW50KQ0KKz9DUlBvbHlkcmF3UGF0aEBAWUdQQVZDUlBhdGgyQEBQQU5JMElAWg0KKzsgY2xhc3MgQ1JQYXRoMiAqIF9fc3RkY2FsbCBDUlBvbHlkcmF3UGF0aChjbGFzcyBDUkFycmF5ICosY2xhc3MgQ1JBcnJheSAqKQ0KKz9DUlBvbHlkcmF3UGF0aEBAWUdQQVZDUlBhdGgyQEBQQVZDUkFycmF5QEAwQFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3N0ZGNhbGwgQ1JQb2x5bGluZShjbGFzcyBDUkFycmF5ICopDQorP0NSUG9seWxpbmVAQFlHUEFWQ1JQYXRoMkBAUEFWQ1JBcnJheUBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSUG93KGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JQb3dAQFlHUEFWQ1JOdW1iZXJAQFBBVjFAMEBaDQorOyBjbGFzcyBDUkV2ZW50ICogX19zdGRjYWxsIENSUHJlZGljYXRlKGNsYXNzIENSQm9vbGVhbiAqKQ0KKz9DUlByZWRpY2F0ZUBAWUdQQVZDUkV2ZW50QEBQQVZDUkJvb2xlYW5AQEBaDQorOyBjbGFzcyBDUlBvaW50MiAqIF9fc3RkY2FsbCBDUlByb2plY3QoY2xhc3MgQ1JQb2ludDMgKixjbGFzcyBDUkNhbWVyYSAqKQ0KKz9DUlByb2plY3RAQFlHUEFWQ1JQb2ludDJAQFBBVkNSUG9pbnQzQEBQQVZDUkNhbWVyYUBAQFoNCis7IGJvb2wgX19zdGRjYWxsIENSUHJvcGFnYXRlKGNsYXNzIENSVmlldyAqKQ0KKz9DUlByb3BhZ2F0ZUBAWUdfTlBBVkNSVmlld0BAQFoNCis7IGNsYXNzIENSQ29sb3IgKiBfX3N0ZGNhbGwgQ1JQdXJwbGUodm9pZCkNCis/Q1JQdXJwbGVAQFlHUEFWQ1JDb2xvckBAWFoNCis7IGJvb2wgX19zdGRjYWxsIENSUHV0UHJlZmVyZW5jZShjbGFzcyBDUlZpZXcgKix1bnNpZ25lZCBzaG9ydCAqLHN0cnVjdCB0YWdWQVJJQU5UKQ0KKz9DUlB1dFByZWZlcmVuY2VAQFlHX05QQVZDUlZpZXdAQFBBR1V0YWdWQVJJQU5UQEBAWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ1JRdWVyeUhpdFBvaW50KGNsYXNzIENSVmlldyAqLHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1JFQ1QgY29uc3QgKixzdHJ1Y3QgdGFnUE9JTlQsbG9uZykNCis/Q1JRdWVyeUhpdFBvaW50QEBZR0tQQVZDUlZpZXdAQEtQQlV0YWdSRUNUQEBVdGFnUE9JTlRAQEpAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgQ1JRdWVyeUhpdFBvaW50RXgoY2xhc3MgQ1JWaWV3ICosbG9uZyx1bnNpZ25lZCBsb25nICosZG91YmxlICosc3RydWN0IHRhZ1JFQ1QgY29uc3QgKixzdHJ1Y3QgdGFnUE9JTlQpDQorP0NSUXVlcnlIaXRQb2ludEV4QEBZR0pQQVZDUlZpZXdAQEpQQUtQQU5QQlV0YWdSRUNUQEBVdGFnUE9JTlRAQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19zdGRjYWxsIENSUmFkaWFsR3JhZGllbnRNdWx0aWNvbG9yKGNsYXNzIENSQXJyYXkgKixjbGFzcyBDUkFycmF5ICopDQorP0NSUmFkaWFsR3JhZGllbnRNdWx0aWNvbG9yQEBZR1BBVkNSSW1hZ2VAQFBBVkNSQXJyYXlAQDBAWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fc3RkY2FsbCBDUlJhZGlhbEdyYWRpZW50UG9seWdvbihjbGFzcyBDUkNvbG9yICosY2xhc3MgQ1JDb2xvciAqLGNsYXNzIENSQXJyYXkgKixkb3VibGUpDQorP0NSUmFkaWFsR3JhZGllbnRQb2x5Z29uQEBZR1BBVkNSSW1hZ2VAQFBBVkNSQ29sb3JAQDBQQVZDUkFycmF5QEBOQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JSYWRpYWxHcmFkaWVudFBvbHlnb24oY2xhc3MgQ1JDb2xvciAqLGNsYXNzIENSQ29sb3IgKixjbGFzcyBDUkFycmF5ICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JSYWRpYWxHcmFkaWVudFBvbHlnb25AQFlHUEFWQ1JJbWFnZUBAUEFWQ1JDb2xvckBAMFBBVkNSQXJyYXlAQFBBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fc3RkY2FsbCBDUlJhZGlhbEdyYWRpZW50UmVndWxhclBvbHkoY2xhc3MgQ1JDb2xvciAqLGNsYXNzIENSQ29sb3IgKixkb3VibGUsZG91YmxlKQ0KKz9DUlJhZGlhbEdyYWRpZW50UmVndWxhclBvbHlAQFlHUEFWQ1JJbWFnZUBAUEFWQ1JDb2xvckBAME5OQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JSYWRpYWxHcmFkaWVudFJlZ3VsYXJQb2x5KGNsYXNzIENSQ29sb3IgKixjbGFzcyBDUkNvbG9yICosY2xhc3MgQ1JOdW1iZXIgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUlJhZGlhbEdyYWRpZW50UmVndWxhclBvbHlAQFlHUEFWQ1JJbWFnZUBAUEFWQ1JDb2xvckBAMFBBVkNSTnVtYmVyQEAxQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JSYWRpYWxHcmFkaWVudFNxdWFyZShjbGFzcyBDUkNvbG9yICosY2xhc3MgQ1JDb2xvciAqLGRvdWJsZSkNCis/Q1JSYWRpYWxHcmFkaWVudFNxdWFyZUBAWUdQQVZDUkltYWdlQEBQQVZDUkNvbG9yQEAwTkBaDQorOyBjbGFzcyBDUkltYWdlICogX19zdGRjYWxsIENSUmFkaWFsR3JhZGllbnRTcXVhcmUoY2xhc3MgQ1JDb2xvciAqLGNsYXNzIENSQ29sb3IgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUlJhZGlhbEdyYWRpZW50U3F1YXJlQEBZR1BBVkNSSW1hZ2VAQFBBVkNSQ29sb3JAQDBQQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSU291bmQgKiBfX3N0ZGNhbGwgQ1JSYXRlKGNsYXNzIENSU291bmQgKixkb3VibGUpDQorP0NSUmF0ZUBAWUdQQVZDUlNvdW5kQEBQQVYxQE5AWg0KKzsgY2xhc3MgQ1JTb3VuZCAqIF9fc3RkY2FsbCBDUlJhdGUoY2xhc3MgQ1JTb3VuZCAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSUmF0ZUBAWUdQQVZDUlNvdW5kQEBQQVYxQFBBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JQYXRoMiAqIF9fc3RkY2FsbCBDUlJheShjbGFzcyBDUlBvaW50MiAqKQ0KKz9DUlJheUBAWUdQQVZDUlBhdGgyQEBQQVZDUlBvaW50MkBAQFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3N0ZGNhbGwgQ1JSZWN0KGRvdWJsZSxkb3VibGUpDQorP0NSUmVjdEBAWUdQQVZDUlBhdGgyQEBOTkBaDQorOyBjbGFzcyBDUlBhdGgyICogX19zdGRjYWxsIENSUmVjdChjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSUmVjdEBAWUdQQVZDUlBhdGgyQEBQQVZDUk51bWJlckBAMEBaDQorOyBjbGFzcyBDUkNvbG9yICogX19zdGRjYWxsIENSUmVkKHZvaWQpDQorP0NSUmVkQEBZR1BBVkNSQ29sb3JAQFhaDQorOyBib29sIF9fc3RkY2FsbCBDUlJlbGVhc2VHQyh2b2lkICopDQorP0NSUmVsZWFzZUdDQEBZR19OUEFYQFoNCis7IGJvb2wgX19zdGRjYWxsIENSUmVsZWFzZUdDTG9jayh2b2lkKQ0KKz9DUlJlbGVhc2VHQ0xvY2tAQFlHX05YWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JSZW1vdmVFbGVtZW50KGNsYXNzIENSQXJyYXkgKixsb25nKQ0KKz9DUlJlbW92ZUVsZW1lbnRAQFlHX05QQVZDUkFycmF5QEBKQFoNCis7IGJvb2wgX19zdGRjYWxsIENSUmVtb3ZlUnVubmluZ0J2cihjbGFzcyBDUlZpZXcgKixsb25nKQ0KKz9DUlJlbW92ZVJ1bm5pbmdCdnJAQFlHX05QQVZDUlZpZXdAQEpAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JSZW1vdmVTaXRlKGNsYXNzIENSU2l0ZSAqKQ0KKz9DUlJlbW92ZVNpdGVAQFlHX05QQVZDUlNpdGVAQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19zdGRjYWxsIENSUmVuZGVyKGNsYXNzIENSR2VvbWV0cnkgKixjbGFzcyBDUkNhbWVyYSAqKQ0KKz9DUlJlbmRlckBAWUdQQVZDUkltYWdlQEBQQVZDUkdlb21ldHJ5QEBQQVZDUkNhbWVyYUBAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JSZW5kZXIoY2xhc3MgQ1JNb250YWdlICopDQorP0NSUmVuZGVyQEBZR1BBVkNSSW1hZ2VAQFBBVkNSTW9udGFnZUBAQFoNCis7IGJvb2wgX19zdGRjYWxsIENSUmVuZGVyKGNsYXNzIENSVmlldyAqKQ0KKz9DUlJlbmRlckBAWUdfTlBBVkNSVmlld0BAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JSZW5kZXJSZXNvbHV0aW9uKGNsYXNzIENSSW1hZ2UgKixsb25nLGxvbmcpDQorP0NSUmVuZGVyUmVzb2x1dGlvbkBAWUdQQVZDUkltYWdlQEBQQVYxQEpKQFoNCis7IGNsYXNzIENSU291bmQgKiBfX3N0ZGNhbGwgQ1JSZW5kZXJTb3VuZChjbGFzcyBDUkdlb21ldHJ5ICosY2xhc3MgQ1JNaWNyb3Bob25lICopDQorP0NSUmVuZGVyU291bmRAQFlHUEFWQ1JTb3VuZEBAUEFWQ1JHZW9tZXRyeUBAUEFWQ1JNaWNyb3Bob25lQEBAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JSZXBhaW50KGNsYXNzIENSVmlldyAqLGxvbmcsbG9uZyxsb25nLGxvbmcpDQorP0NSUmVwYWludEBAWUdfTlBBVkNSVmlld0BASkpKSkBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fc3RkY2FsbCBDUlJlcGVhdChjbGFzcyBDUkJ2ciAqLGxvbmcpDQorP0NSUmVwZWF0QEBZR1BBVkNSQnZyQEBQQVYxQEpAWg0KKzsgY2xhc3MgQ1JCdnIgKiBfX3N0ZGNhbGwgQ1JSZXBlYXRGb3JldmVyKGNsYXNzIENSQnZyICopDQorP0NSUmVwZWF0Rm9yZXZlckBAWUdQQVZDUkJ2ckBAUEFWMUBAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JSZXN1bWVNb2RlbChjbGFzcyBDUlZpZXcgKikNCis/Q1JSZXN1bWVNb2RlbEBAWUdfTlBBVkNSVmlld0BAQFoNCis7IGNsYXNzIENSRXZlbnQgKiBfX3N0ZGNhbGwgQ1JSaWdodEJ1dHRvbkRvd24odm9pZCkNCis/Q1JSaWdodEJ1dHRvbkRvd25AQFlHUEFWQ1JFdmVudEBAWFoNCis7IGNsYXNzIENSQm9vbGVhbiAqIF9fc3RkY2FsbCBDUlJpZ2h0QnV0dG9uU3RhdGUodm9pZCkNCis/Q1JSaWdodEJ1dHRvblN0YXRlQEBZR1BBVkNSQm9vbGVhbkBAWFoNCis7IGNsYXNzIENSRXZlbnQgKiBfX3N0ZGNhbGwgQ1JSaWdodEJ1dHRvblVwKHZvaWQpDQorP0NSUmlnaHRCdXR0b25VcEBAWUdQQVZDUkV2ZW50QEBYWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19zdGRjYWxsIENSUm90YXRlMihkb3VibGUpDQorP0NSUm90YXRlMkBAWUdQQVZDUlRyYW5zZm9ybTJAQE5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19zdGRjYWxsIENSUm90YXRlMihjbGFzcyBDUk51bWJlciAqKQ0KKz9DUlJvdGF0ZTJAQFlHUEFWQ1JUcmFuc2Zvcm0yQEBQQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fc3RkY2FsbCBDUlJvdGF0ZTJEZWdyZWVzKGRvdWJsZSkNCis/Q1JSb3RhdGUyRGVncmVlc0BAWUdQQVZDUlRyYW5zZm9ybTJAQE5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0zICogX19zdGRjYWxsIENSUm90YXRlMyhjbGFzcyBDUlZlY3RvcjMgKixkb3VibGUpDQorP0NSUm90YXRlM0BAWUdQQVZDUlRyYW5zZm9ybTNAQFBBVkNSVmVjdG9yM0BATkBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3N0ZGNhbGwgQ1JSb3RhdGUzKGNsYXNzIENSVmVjdG9yMyAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSUm90YXRlM0BAWUdQQVZDUlRyYW5zZm9ybTNAQFBBVkNSVmVjdG9yM0BAUEFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUlJvdW5kKGNsYXNzIENSTnVtYmVyICopDQorP0NSUm91bmRAQFlHUEFWQ1JOdW1iZXJAQFBBVjFAQFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3N0ZGNhbGwgQ1JSb3VuZFJlY3QoZG91YmxlLGRvdWJsZSxkb3VibGUsZG91YmxlKQ0KKz9DUlJvdW5kUmVjdEBAWUdQQVZDUlBhdGgyQEBOTk5OQFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3N0ZGNhbGwgQ1JSb3VuZFJlY3QoY2xhc3MgQ1JOdW1iZXIgKixjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JSb3VuZFJlY3RAQFlHUEFWQ1JQYXRoMkBAUEFWQ1JOdW1iZXJAQDAwMEBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fc3RkY2FsbCBDUlJ1bk9uY2UoY2xhc3MgQ1JCdnIgKikNCis/Q1JSdW5PbmNlQEBZR1BBVkNSQnZyQEBQQVYxQEBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fc3RkY2FsbCBDUlNhbXBsZUF0TG9jYWxUaW1lKGNsYXNzIENSQnZyICosZG91YmxlKQ0KKz9DUlNhbXBsZUF0TG9jYWxUaW1lQEBZR1BBVkNSQnZyQEBQQVYxQE5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19zdGRjYWxsIENSU2NhbGUyKGRvdWJsZSxkb3VibGUpDQorP0NSU2NhbGUyQEBZR1BBVkNSVHJhbnNmb3JtMkBATk5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19zdGRjYWxsIENSU2NhbGUyKGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JTY2FsZTJAQFlHUEFWQ1JUcmFuc2Zvcm0yQEBQQVZDUk51bWJlckBAMEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3N0ZGNhbGwgQ1JTY2FsZTIoY2xhc3MgQ1JWZWN0b3IyICopDQorP0NSU2NhbGUyQEBZR1BBVkNSVHJhbnNmb3JtMkBAUEFWQ1JWZWN0b3IyQEBAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19zdGRjYWxsIENSU2NhbGUyVW5pZm9ybShkb3VibGUpDQorP0NSU2NhbGUyVW5pZm9ybUBAWUdQQVZDUlRyYW5zZm9ybTJAQE5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19zdGRjYWxsIENSU2NhbGUyVW5pZm9ybShjbGFzcyBDUk51bWJlciAqKQ0KKz9DUlNjYWxlMlVuaWZvcm1AQFlHUEFWQ1JUcmFuc2Zvcm0yQEBQQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMyAqIF9fc3RkY2FsbCBDUlNjYWxlMyhkb3VibGUsZG91YmxlLGRvdWJsZSkNCis/Q1JTY2FsZTNAQFlHUEFWQ1JUcmFuc2Zvcm0zQEBOTk5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0zICogX19zdGRjYWxsIENSU2NhbGUzKGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUlNjYWxlM0BAWUdQQVZDUlRyYW5zZm9ybTNAQFBBVkNSTnVtYmVyQEAwMEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3N0ZGNhbGwgQ1JTY2FsZTMoY2xhc3MgQ1JWZWN0b3IzICopDQorP0NSU2NhbGUzQEBZR1BBVkNSVHJhbnNmb3JtM0BAUEFWQ1JWZWN0b3IzQEBAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0zICogX19zdGRjYWxsIENSU2NhbGUzVW5pZm9ybShkb3VibGUpDQorP0NSU2NhbGUzVW5pZm9ybUBAWUdQQVZDUlRyYW5zZm9ybTNAQE5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0zICogX19zdGRjYWxsIENSU2NhbGUzVW5pZm9ybShjbGFzcyBDUk51bWJlciAqKQ0KKz9DUlNjYWxlM1VuaWZvcm1AQFlHUEFWQ1JUcmFuc2Zvcm0zQEBQQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSQnZyICogX19zdGRjYWxsIENSU2Vjb25kKGNsYXNzIENSUGFpciAqKQ0KKz9DUlNlY29uZEBAWUdQQVZDUkJ2ckBAUEFWQ1JQYWlyQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JTZWVkZWRSYW5kb20oZG91YmxlKQ0KKz9DUlNlZWRlZFJhbmRvbUBAWUdQQVZDUk51bWJlckBATkBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fc3RkY2FsbCBDUlNlcXVlbmNlKGNsYXNzIENSQnZyICosY2xhc3MgQ1JCdnIgKikNCis/Q1JTZXF1ZW5jZUBAWUdQQVZDUkJ2ckBAUEFWMUAwQFoNCis7IGNsYXNzIENSQnZyICogX19zdGRjYWxsIENSU2VxdWVuY2VBcnJheShsb25nLGNsYXNzIENSQnZyICogKiBjb25zdCkNCis/Q1JTZXF1ZW5jZUFycmF5QEBZR1BBVkNSQnZyQEBKUUFQQVYxQEBaDQorOyBib29sIF9fc3RkY2FsbCBDUlNldEJ2ckFzUHJvcGVydHkoY2xhc3MgQ1JEWFRyYW5zZm9ybVJlc3VsdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1JCdnIgKikNCis/Q1JTZXRCdnJBc1Byb3BlcnR5QEBZR19OUEFWQ1JEWFRyYW5zZm9ybVJlc3VsdEBAUEJHUEFWQ1JCdnJAQEBaDQorOyBib29sIF9fc3RkY2FsbCBDUlNldENsaXBSZWN0KGNsYXNzIENSVmlldyAqLGxvbmcsbG9uZyxsb25nLGxvbmcpDQorP0NSU2V0Q2xpcFJlY3RAQFlHX05QQVZDUlZpZXdAQEpKSkpAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JTZXRDb21wb3NpdGVEaXJlY3RseVRvVGFyZ2V0KGNsYXNzIENSVmlldyAqLGJvb2wpDQorP0NSU2V0Q29tcG9zaXRlRGlyZWN0bHlUb1RhcmdldEBAWUdfTlBBVkNSVmlld0BAX05AWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JTZXREQyhjbGFzcyBDUlZpZXcgKixzdHJ1Y3QgSERDX18gKikNCis/Q1JTZXREQ0BAWUdfTlBBVkNSVmlld0BAUEFVSERDX19AQEBaDQorOyBib29sIF9fc3RkY2FsbCBDUlNldERpcmVjdERyYXdTdXJmYWNlKGNsYXNzIENSVmlldyAqLHN0cnVjdCBJVW5rbm93biAqKQ0KKz9DUlNldERpcmVjdERyYXdTdXJmYWNlQEBZR19OUEFWQ1JWaWV3QEBQQVVJVW5rbm93bkBAQFoNCis7IGJvb2wgX19zdGRjYWxsIENSU2V0RWxlbWVudChjbGFzcyBDUkFycmF5ICosbG9uZyxjbGFzcyBDUkJ2ciAqLGxvbmcpDQorP0NSU2V0RWxlbWVudEBAWUdfTlBBVkNSQXJyYXlAQEpQQVZDUkJ2ckBASkBaDQorOyBib29sIF9fc3RkY2FsbCBDUlNldEltcG9ydFByaW9yaXR5KGNsYXNzIENSQnZyICosZmxvYXQpDQorP0NSU2V0SW1wb3J0UHJpb3JpdHlAQFlHX05QQVZDUkJ2ckBATUBaDQorOyB2b2lkIF9fc3RkY2FsbCBDUlNldExhc3RFcnJvcihsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NSU2V0TGFzdEVycm9yQEBZR1hKUEJHQFoNCis7IGJvb2wgX19zdGRjYWxsIENSU2V0U2VydmljZVByb3ZpZGVyKGNsYXNzIENSVmlldyAqLHN0cnVjdCBJU2VydmljZVByb3ZpZGVyICopDQorP0NSU2V0U2VydmljZVByb3ZpZGVyQEBZR19OUEFWQ1JWaWV3QEBQQVVJU2VydmljZVByb3ZpZGVyQEBAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JTZXRTaXRlKGNsYXNzIENSVmlldyAqLGNsYXNzIENSVmlld1NpdGUgKikNCis/Q1JTZXRTaXRlQEBZR19OUEFWQ1JWaWV3QEBQQVZDUlZpZXdTaXRlQEBAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JTZXRWaWV3cG9ydChjbGFzcyBDUlZpZXcgKixsb25nLGxvbmcsbG9uZyxsb25nKQ0KKz9DUlNldFZpZXdwb3J0QEBZR19OUEFWQ1JWaWV3QEBKSkpKQFoNCis7IGJvb2wgX19zdGRjYWxsIENSU2V0V2luZG93KGNsYXNzIENSVmlldyAqLHN0cnVjdCBIV05EX18gKikNCis/Q1JTZXRXaW5kb3dAQFlHX05QQVZDUlZpZXdAQFBBVUhXTkRfX0BAQFoNCis7IGNsYXNzIENSR2VvbWV0cnkgKiBfX3N0ZGNhbGwgQ1JTaGFkb3coY2xhc3MgQ1JHZW9tZXRyeSAqLGNsYXNzIENSR2VvbWV0cnkgKixjbGFzcyBDUlBvaW50MyAqLGNsYXNzIENSVmVjdG9yMyAqKQ0KKz9DUlNoYWRvd0BAWUdQQVZDUkdlb21ldHJ5QEBQQVYxQDBQQVZDUlBvaW50M0BAUEFWQ1JWZWN0b3IzQEBAWg0KKzsgY2xhc3MgQ1JTb3VuZCAqIF9fc3RkY2FsbCBDUlNpbGVuY2Uodm9pZCkNCis/Q1JTaWxlbmNlQEBZR1BBVkNSU291bmRAQFhaDQorOyBjbGFzcyBDUkNvbG9yICogX19zdGRjYWxsIENSU2lsdmVyKHZvaWQpDQorP0NSU2lsdmVyQEBZR1BBVkNSQ29sb3JAQFhaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUlNpbihjbGFzcyBDUk51bWJlciAqKQ0KKz9DUlNpbkBAWUdQQVZDUk51bWJlckBAUEFWMUBAWg0KKzsgY2xhc3MgQ1JTb3VuZCAqIF9fc3RkY2FsbCBDUlNpblN5bnRoKHZvaWQpDQorP0NSU2luU3ludGhAQFlHUEFWQ1JTb3VuZEBAWFoNCis7IGNsYXNzIENSRm9udFN0eWxlICogX19zdGRjYWxsIENSU2l6ZShjbGFzcyBDUkZvbnRTdHlsZSAqLGRvdWJsZSkNCis/Q1JTaXplQEBZR1BBVkNSRm9udFN0eWxlQEBQQVYxQE5AWg0KKzsgY2xhc3MgQ1JGb250U3R5bGUgKiBfX3N0ZGNhbGwgQ1JTaXplKGNsYXNzIENSRm9udFN0eWxlICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JTaXplQEBZR1BBVkNSRm9udFN0eWxlQEBQQVYxQFBBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JTbG93SW5TbG93T3V0KGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSkNCis/Q1JTbG93SW5TbG93T3V0QEBZR1BBVkNSTnVtYmVyQEBOTk5OQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSU2xvd0luU2xvd091dChjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUlNsb3dJblNsb3dPdXRAQFlHUEFWQ1JOdW1iZXJAQFBBVjFAMDAwQFoNCis7IGNsYXNzIENSRXZlbnQgKiBfX3N0ZGNhbGwgQ1JTbmFwc2hvdChjbGFzcyBDUkV2ZW50ICosY2xhc3MgQ1JCdnIgKikNCis/Q1JTbmFwc2hvdEBAWUdQQVZDUkV2ZW50QEBQQVYxQFBBVkNSQnZyQEBAWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fc3RkY2FsbCBDUlNvbGlkQ29sb3JJbWFnZShjbGFzcyBDUkNvbG9yICopDQorP0NSU29saWRDb2xvckltYWdlQEBZR1BBVkNSSW1hZ2VAQFBBVkNSQ29sb3JAQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSU291bmRTb3VyY2UoY2xhc3MgQ1JTb3VuZCAqKQ0KKz9DUlNvdW5kU291cmNlQEBZR1BBVkNSR2VvbWV0cnlAQFBBVkNSU291bmRAQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSU3BlY3VsYXJDb2xvcihjbGFzcyBDUkdlb21ldHJ5ICosY2xhc3MgQ1JDb2xvciAqKQ0KKz9DUlNwZWN1bGFyQ29sb3JAQFlHUEFWQ1JHZW9tZXRyeUBAUEFWMUBQQVZDUkNvbG9yQEBAWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fc3RkY2FsbCBDUlNwZWN1bGFyRXhwb25lbnQoY2xhc3MgQ1JHZW9tZXRyeSAqLGRvdWJsZSkNCis/Q1JTcGVjdWxhckV4cG9uZW50QEBZR1BBVkNSR2VvbWV0cnlAQFBBVjFATkBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSU3BlY3VsYXJFeHBvbmVudEFuaW0oY2xhc3MgQ1JHZW9tZXRyeSAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSU3BlY3VsYXJFeHBvbmVudEFuaW1AQFlHUEFWQ1JHZW9tZXRyeUBAUEFWMUBQQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSU3BoZXJpY2FsQ29vcmRMZW5ndGgoY2xhc3MgQ1JQb2ludDMgKikNCis/Q1JTcGhlcmljYWxDb29yZExlbmd0aEBAWUdQQVZDUk51bWJlckBAUEFWQ1JQb2ludDNAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUlNwaGVyaWNhbENvb3JkTGVuZ3RoKGNsYXNzIENSVmVjdG9yMyAqKQ0KKz9DUlNwaGVyaWNhbENvb3JkTGVuZ3RoQEBZR1BBVkNSTnVtYmVyQEBQQVZDUlZlY3RvcjNAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUlNwaGVyaWNhbENvb3JkWFlBbmdsZShjbGFzcyBDUlBvaW50MyAqKQ0KKz9DUlNwaGVyaWNhbENvb3JkWFlBbmdsZUBAWUdQQVZDUk51bWJlckBAUEFWQ1JQb2ludDNAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUlNwaGVyaWNhbENvb3JkWFlBbmdsZShjbGFzcyBDUlZlY3RvcjMgKikNCis/Q1JTcGhlcmljYWxDb29yZFhZQW5nbGVAQFlHUEFWQ1JOdW1iZXJAQFBBVkNSVmVjdG9yM0BAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSU3BoZXJpY2FsQ29vcmRZWkFuZ2xlKGNsYXNzIENSUG9pbnQzICopDQorP0NSU3BoZXJpY2FsQ29vcmRZWkFuZ2xlQEBZR1BBVkNSTnVtYmVyQEBQQVZDUlBvaW50M0BAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSU3BoZXJpY2FsQ29vcmRZWkFuZ2xlKGNsYXNzIENSVmVjdG9yMyAqKQ0KKz9DUlNwaGVyaWNhbENvb3JkWVpBbmdsZUBAWUdQQVZDUk51bWJlckBAUEFWQ1JWZWN0b3IzQEBAWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fc3RkY2FsbCBDUlNwb3RMaWdodChjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSU3BvdExpZ2h0QEBZR1BBVkNSR2VvbWV0cnlAQFBBVkNSTnVtYmVyQEAwQFoNCis7IGNsYXNzIENSR2VvbWV0cnkgKiBfX3N0ZGNhbGwgQ1JTcG90TGlnaHQoY2xhc3MgQ1JOdW1iZXIgKixkb3VibGUpDQorP0NSU3BvdExpZ2h0QEBZR1BBVkNSR2VvbWV0cnlAQFBBVkNSTnVtYmVyQEBOQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSU3FydChjbGFzcyBDUk51bWJlciAqKQ0KKz9DUlNxcnRAQFlHUEFWQ1JOdW1iZXJAQFBBVjFAQFoNCis7IGJvb2wgX19zdGRjYWxsIENSU3RhcnRNb2RlbChjbGFzcyBDUlZpZXcgKixjbGFzcyBDUkltYWdlICosY2xhc3MgQ1JTb3VuZCAqLGRvdWJsZSx1bnNpZ25lZCBsb25nLGJvb2wgKikNCis/Q1JTdGFydE1vZGVsQEBZR19OUEFWQ1JWaWV3QEBQQVZDUkltYWdlQEBQQVZDUlNvdW5kQEBOS1BBX05AWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JTdG9wTW9kZWwoY2xhc3MgQ1JWaWV3ICopDQorP0NSU3RvcE1vZGVsQEBZR19OUEFWQ1JWaWV3QEBAWg0KKzsgY2xhc3MgQ1JGb250U3R5bGUgKiBfX3N0ZGNhbGwgQ1JTdHJpa2V0aHJvdWdoKGNsYXNzIENSRm9udFN0eWxlICopDQorP0NSU3RyaWtldGhyb3VnaEBAWUdQQVZDUkZvbnRTdHlsZUBAUEFWMUBAWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fc3RkY2FsbCBDUlN0cmluZ0ltYWdlKHVuc2lnbmVkIHNob3J0ICosY2xhc3MgQ1JGb250U3R5bGUgKikNCis/Q1JTdHJpbmdJbWFnZUBAWUdQQVZDUkltYWdlQEBQQUdQQVZDUkZvbnRTdHlsZUBAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JTdHJpbmdJbWFnZShjbGFzcyBDUlN0cmluZyAqLGNsYXNzIENSRm9udFN0eWxlICopDQorP0NSU3RyaW5nSW1hZ2VAQFlHUEFWQ1JJbWFnZUBAUEFWQ1JTdHJpbmdAQFBBVkNSRm9udFN0eWxlQEBAWg0KKzsgY2xhc3MgQ1JQYXRoMiAqIF9fc3RkY2FsbCBDUlN0cmluZ1BhdGgodW5zaWduZWQgc2hvcnQgKixjbGFzcyBDUkZvbnRTdHlsZSAqKQ0KKz9DUlN0cmluZ1BhdGhAQFlHUEFWQ1JQYXRoMkBAUEFHUEFWQ1JGb250U3R5bGVAQEBaDQorOyBjbGFzcyBDUlBhdGgyICogX19zdGRjYWxsIENSU3RyaW5nUGF0aChjbGFzcyBDUlN0cmluZyAqLGNsYXNzIENSRm9udFN0eWxlICopDQorP0NSU3RyaW5nUGF0aEBAWUdQQVZDUlBhdGgyQEBQQVZDUlN0cmluZ0BAUEFWQ1JGb250U3R5bGVAQEBaDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUlN1YihjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSU3ViQEBZR1BBVkNSTnVtYmVyQEBQQVYxQDBAWg0KKzsgY2xhc3MgQ1JQb2ludDIgKiBfX3N0ZGNhbGwgQ1JTdWIoY2xhc3MgQ1JQb2ludDIgKixjbGFzcyBDUlZlY3RvcjIgKikNCis/Q1JTdWJAQFlHUEFWQ1JQb2ludDJAQFBBVjFAUEFWQ1JWZWN0b3IyQEBAWg0KKzsgY2xhc3MgQ1JQb2ludDMgKiBfX3N0ZGNhbGwgQ1JTdWIoY2xhc3MgQ1JQb2ludDMgKixjbGFzcyBDUlZlY3RvcjMgKikNCis/Q1JTdWJAQFlHUEFWQ1JQb2ludDNAQFBBVjFAUEFWQ1JWZWN0b3IzQEBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IyICogX19zdGRjYWxsIENSU3ViKGNsYXNzIENSVmVjdG9yMiAqLGNsYXNzIENSVmVjdG9yMiAqKQ0KKz9DUlN1YkBAWUdQQVZDUlZlY3RvcjJAQFBBVjFAMEBaDQorOyBjbGFzcyBDUlZlY3RvcjIgKiBfX3N0ZGNhbGwgQ1JTdWIoY2xhc3MgQ1JQb2ludDIgKixjbGFzcyBDUlBvaW50MiAqKQ0KKz9DUlN1YkBAWUdQQVZDUlZlY3RvcjJAQFBBVkNSUG9pbnQyQEAwQFoNCis7IGNsYXNzIENSVmVjdG9yMyAqIF9fc3RkY2FsbCBDUlN1YihjbGFzcyBDUlZlY3RvcjMgKixjbGFzcyBDUlZlY3RvcjMgKikNCis/Q1JTdWJAQFlHUEFWQ1JWZWN0b3IzQEBQQVYxQDBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19zdGRjYWxsIENSU3ViKGNsYXNzIENSUG9pbnQzICosY2xhc3MgQ1JQb2ludDMgKikNCis/Q1JTdWJAQFlHUEFWQ1JWZWN0b3IzQEBQQVZDUlBvaW50M0BAMEBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fc3RkY2FsbCBDUlN1YnN0aXR1dGVUaW1lKGNsYXNzIENSQnZyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JTdWJzdGl0dXRlVGltZUBAWUdQQVZDUkJ2ckBAUEFWMUBQQVZDUk51bWJlckBAQFoNCis7IGJvb2wgX19zdGRjYWxsIENSU3dpdGNoVG8oY2xhc3MgQ1JCdnIgKixjbGFzcyBDUkJ2ciAqLGJvb2wsdW5zaWduZWQgbG9uZyxkb3VibGUpDQorP0NSU3dpdGNoVG9AQFlHX05QQVZDUkJ2ckBAMF9OS05AWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JTd2l0Y2hUb0Jvb2woY2xhc3MgQ1JCb29sZWFuICosYm9vbCkNCis/Q1JTd2l0Y2hUb0Jvb2xAQFlHX05QQVZDUkJvb2xlYW5AQF9OQFoNCis7IGJvb2wgX19zdGRjYWxsIENSU3dpdGNoVG9OdW1iZXIoY2xhc3MgQ1JOdW1iZXIgKixkb3VibGUpDQorP0NSU3dpdGNoVG9OdW1iZXJAQFlHX05QQVZDUk51bWJlckBATkBaDQorOyBib29sIF9fc3RkY2FsbCBDUlN3aXRjaFRvU3RyaW5nKGNsYXNzIENSU3RyaW5nICosdW5zaWduZWQgc2hvcnQgKikNCis/Q1JTd2l0Y2hUb1N0cmluZ0BAWUdfTlBBVkNSU3RyaW5nQEBQQUdAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JUYW4oY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JUYW5AQFlHUEFWQ1JOdW1iZXJAQFBBVjFAQFoNCis7IGNsYXNzIENSQ29sb3IgKiBfX3N0ZGNhbGwgQ1JUZWFsKHZvaWQpDQorP0NSVGVhbEBAWUdQQVZDUkNvbG9yQEBYWg0KKzsgY2xhc3MgQ1JGb250U3R5bGUgKiBfX3N0ZGNhbGwgQ1JUZXh0Q29sb3IoY2xhc3MgQ1JGb250U3R5bGUgKixjbGFzcyBDUkNvbG9yICopDQorP0NSVGV4dENvbG9yQEBZR1BBVkNSRm9udFN0eWxlQEBQQVYxQFBBVkNSQ29sb3JAQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19zdGRjYWxsIENSVGV4dEltYWdlKHVuc2lnbmVkIHNob3J0ICosY2xhc3MgQ1JGb250U3R5bGUgKikNCis/Q1JUZXh0SW1hZ2VAQFlHUEFWQ1JJbWFnZUBAUEFHUEFWQ1JGb250U3R5bGVAQEBaDQorOyBjbGFzcyBDUkltYWdlICogX19zdGRjYWxsIENSVGV4dEltYWdlKGNsYXNzIENSU3RyaW5nICosY2xhc3MgQ1JGb250U3R5bGUgKikNCis/Q1JUZXh0SW1hZ2VAQFlHUEFWQ1JJbWFnZUBAUEFWQ1JTdHJpbmdAQFBBVkNSRm9udFN0eWxlQEBAWg0KKzsgY2xhc3MgQ1JNYXR0ZSAqIF9fc3RkY2FsbCBDUlRleHRNYXR0ZShjbGFzcyBDUlN0cmluZyAqLGNsYXNzIENSRm9udFN0eWxlICopDQorP0NSVGV4dE1hdHRlQEBZR1BBVkNSTWF0dGVAQFBBVkNSU3RyaW5nQEBQQVZDUkZvbnRTdHlsZUBAQFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3N0ZGNhbGwgQ1JUZXh0UGF0aChjbGFzcyBDUlN0cmluZyAqLGNsYXNzIENSRm9udFN0eWxlICopDQorP0NSVGV4dFBhdGhAQFlHUEFWQ1JQYXRoMkBAUEFWQ1JTdHJpbmdAQFBBVkNSRm9udFN0eWxlQEBAWg0KKzsgY2xhc3MgQ1JHZW9tZXRyeSAqIF9fc3RkY2FsbCBDUlRleHR1cmUoY2xhc3MgQ1JHZW9tZXRyeSAqLGNsYXNzIENSSW1hZ2UgKikNCis/Q1JUZXh0dXJlQEBZR1BBVkNSR2VvbWV0cnlAQFBBVjFAUEFWQ1JJbWFnZUBAQFoNCis7IGNsYXNzIENSR2VvbWV0cnkgKiBfX3N0ZGNhbGwgQ1JUZXh0dXJlSW1hZ2UoY2xhc3MgQ1JHZW9tZXRyeSAqLGNsYXNzIENSSW1hZ2UgKikNCis/Q1JUZXh0dXJlSW1hZ2VAQFlHUEFWQ1JHZW9tZXRyeUBAUEFWMUBQQVZDUkltYWdlQEBAWg0KKzsgY2xhc3MgQ1JFdmVudCAqIF9fc3RkY2FsbCBDUlRoZW5FdmVudChjbGFzcyBDUkV2ZW50ICosY2xhc3MgQ1JFdmVudCAqKQ0KKz9DUlRoZW5FdmVudEBAWUdQQVZDUkV2ZW50QEBQQVYxQDBAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgQ1JUaWNrKGNsYXNzIENSVmlldyAqLGRvdWJsZSxib29sICopDQorP0NSVGlja0BAWUdfTlBBVkNSVmlld0BATlBBX05AWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fc3RkY2FsbCBDUlRpbGUoY2xhc3MgQ1JJbWFnZSAqKQ0KKz9DUlRpbGVAQFlHUEFWQ1JJbWFnZUBAUEFWMUBAWg0KKzsgY2xhc3MgQ1JFdmVudCAqIF9fc3RkY2FsbCBDUlRpbWVyKGRvdWJsZSkNCis/Q1JUaW1lckBAWUdQQVZDUkV2ZW50QEBOQFoNCis7IGNsYXNzIENSRXZlbnQgKiBfX3N0ZGNhbGwgQ1JUaW1lcihjbGFzcyBDUk51bWJlciAqKQ0KKz9DUlRpbWVyQEBZR1BBVkNSRXZlbnRAQFBBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JUb0RlZ3JlZXMoY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JUb0RlZ3JlZXNAQFlHUEFWQ1JOdW1iZXJAQFBBVjFAQFoNCis7IGNsYXNzIENSTnVtYmVyICogX19zdGRjYWxsIENSVG9SYWRpYW5zKGNsYXNzIENSTnVtYmVyICopDQorP0NSVG9SYWRpYW5zQEBZR1BBVkNSTnVtYmVyQEBQQVYxQEBaDQorOyBjbGFzcyBDUlN0cmluZyAqIF9fc3RkY2FsbCBDUlRvU3RyaW5nKGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JUb1N0cmluZ0BAWUdQQVZDUlN0cmluZ0BAUEFWQ1JOdW1iZXJAQDBAWg0KKzsgY2xhc3MgQ1JTdHJpbmcgKiBfX3N0ZGNhbGwgQ1JUb1N0cmluZyhjbGFzcyBDUk51bWJlciAqLGRvdWJsZSkNCis/Q1JUb1N0cmluZ0BAWUdQQVZDUlN0cmluZ0BAUEFWQ1JOdW1iZXJAQE5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19zdGRjYWxsIENSVHJhbnNmb3JtM3gyKGRvdWJsZSAqLHVuc2lnbmVkIGludCkNCis/Q1JUcmFuc2Zvcm0zeDJAQFlHUEFWQ1JUcmFuc2Zvcm0yQEBQQU5JQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fc3RkY2FsbCBDUlRyYW5zZm9ybTN4MihjbGFzcyBDUkFycmF5ICopDQorP0NSVHJhbnNmb3JtM3gyQEBZR1BBVkNSVHJhbnNmb3JtMkBAUEFWQ1JBcnJheUBAQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMyAqIF9fc3RkY2FsbCBDUlRyYW5zZm9ybTR4NChjbGFzcyBDUkFycmF5ICopDQorP0NSVHJhbnNmb3JtNHg0QEBZR1BBVkNSVHJhbnNmb3JtM0BAUEFWQ1JBcnJheUBAQFoNCis7IGNsYXNzIENSQ2FtZXJhICogX19zdGRjYWxsIENSVHJhbnNmb3JtKGNsYXNzIENSQ2FtZXJhICosY2xhc3MgQ1JUcmFuc2Zvcm0zICopDQorP0NSVHJhbnNmb3JtQEBZR1BBVkNSQ2FtZXJhQEBQQVYxQFBBVkNSVHJhbnNmb3JtM0BAQFoNCis7IGNsYXNzIENSR2VvbWV0cnkgKiBfX3N0ZGNhbGwgQ1JUcmFuc2Zvcm0oY2xhc3MgQ1JHZW9tZXRyeSAqLGNsYXNzIENSVHJhbnNmb3JtMyAqKQ0KKz9DUlRyYW5zZm9ybUBAWUdQQVZDUkdlb21ldHJ5QEBQQVYxQFBBVkNSVHJhbnNmb3JtM0BAQFoNCis7IGNsYXNzIENSSW1hZ2UgKiBfX3N0ZGNhbGwgQ1JUcmFuc2Zvcm0oY2xhc3MgQ1JJbWFnZSAqLGNsYXNzIENSVHJhbnNmb3JtMiAqKQ0KKz9DUlRyYW5zZm9ybUBAWUdQQVZDUkltYWdlQEBQQVYxQFBBVkNSVHJhbnNmb3JtMkBAQFoNCis7IGNsYXNzIENSTWF0dGUgKiBfX3N0ZGNhbGwgQ1JUcmFuc2Zvcm0oY2xhc3MgQ1JNYXR0ZSAqLGNsYXNzIENSVHJhbnNmb3JtMiAqKQ0KKz9DUlRyYW5zZm9ybUBAWUdQQVZDUk1hdHRlQEBQQVYxQFBBVkNSVHJhbnNmb3JtMkBAQFoNCis7IGNsYXNzIENSTWljcm9waG9uZSAqIF9fc3RkY2FsbCBDUlRyYW5zZm9ybShjbGFzcyBDUk1pY3JvcGhvbmUgKixjbGFzcyBDUlRyYW5zZm9ybTMgKikNCis/Q1JUcmFuc2Zvcm1AQFlHUEFWQ1JNaWNyb3Bob25lQEBQQVYxQFBBVkNSVHJhbnNmb3JtM0BAQFoNCis7IGNsYXNzIENSUGF0aDIgKiBfX3N0ZGNhbGwgQ1JUcmFuc2Zvcm0oY2xhc3MgQ1JQYXRoMiAqLGNsYXNzIENSVHJhbnNmb3JtMiAqKQ0KKz9DUlRyYW5zZm9ybUBAWUdQQVZDUlBhdGgyQEBQQVYxQFBBVkNSVHJhbnNmb3JtMkBAQFoNCis7IGNsYXNzIENSUG9pbnQyICogX19zdGRjYWxsIENSVHJhbnNmb3JtKGNsYXNzIENSUG9pbnQyICosY2xhc3MgQ1JUcmFuc2Zvcm0yICopDQorP0NSVHJhbnNmb3JtQEBZR1BBVkNSUG9pbnQyQEBQQVYxQFBBVkNSVHJhbnNmb3JtMkBAQFoNCis7IGNsYXNzIENSUG9pbnQzICogX19zdGRjYWxsIENSVHJhbnNmb3JtKGNsYXNzIENSUG9pbnQzICosY2xhc3MgQ1JUcmFuc2Zvcm0zICopDQorP0NSVHJhbnNmb3JtQEBZR1BBVkNSUG9pbnQzQEBQQVYxQFBBVkNSVHJhbnNmb3JtM0BAQFoNCis7IGNsYXNzIENSVmVjdG9yMiAqIF9fc3RkY2FsbCBDUlRyYW5zZm9ybShjbGFzcyBDUlZlY3RvcjIgKixjbGFzcyBDUlRyYW5zZm9ybTIgKikNCis/Q1JUcmFuc2Zvcm1AQFlHUEFWQ1JWZWN0b3IyQEBQQVYxQFBBVkNSVHJhbnNmb3JtMkBAQFoNCis7IGNsYXNzIENSVmVjdG9yMyAqIF9fc3RkY2FsbCBDUlRyYW5zZm9ybShjbGFzcyBDUlZlY3RvcjMgKixjbGFzcyBDUlRyYW5zZm9ybTMgKikNCis/Q1JUcmFuc2Zvcm1AQFlHUEFWQ1JWZWN0b3IzQEBQQVYxQFBBVkNSVHJhbnNmb3JtM0BAQFoNCis7IGNsYXNzIENSRm9udFN0eWxlICogX19zdGRjYWxsIENSVHJhbnNmb3JtQ2hhcmFjdGVycyhjbGFzcyBDUkZvbnRTdHlsZSAqLGNsYXNzIENSVHJhbnNmb3JtMiAqKQ0KKz9DUlRyYW5zZm9ybUNoYXJhY3RlcnNAQFlHUEFWQ1JGb250U3R5bGVAQFBBVjFAUEFWQ1JUcmFuc2Zvcm0yQEBAWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fc3RkY2FsbCBDUlRyYW5zZm9ybUNvbG9yUkdCKGNsYXNzIENSSW1hZ2UgKixjbGFzcyBDUlRyYW5zZm9ybTMgKikNCis/Q1JUcmFuc2Zvcm1Db2xvclJHQkBAWUdQQVZDUkltYWdlQEBQQVYxQFBBVkNSVHJhbnNmb3JtM0BAQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fc3RkY2FsbCBDUlRyYW5zbGF0ZTIoZG91YmxlLGRvdWJsZSkNCis/Q1JUcmFuc2xhdGUyQEBZR1BBVkNSVHJhbnNmb3JtMkBATk5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19zdGRjYWxsIENSVHJhbnNsYXRlMihjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSVHJhbnNsYXRlMkBAWUdQQVZDUlRyYW5zZm9ybTJAQFBBVkNSTnVtYmVyQEAwQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMiAqIF9fc3RkY2FsbCBDUlRyYW5zbGF0ZTIoY2xhc3MgQ1JQb2ludDIgKikNCis/Q1JUcmFuc2xhdGUyQEBZR1BBVkNSVHJhbnNmb3JtMkBAUEFWQ1JQb2ludDJAQEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3N0ZGNhbGwgQ1JUcmFuc2xhdGUyKGNsYXNzIENSVmVjdG9yMiAqKQ0KKz9DUlRyYW5zbGF0ZTJAQFlHUEFWQ1JUcmFuc2Zvcm0yQEBQQVZDUlZlY3RvcjJAQEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3N0ZGNhbGwgQ1JUcmFuc2xhdGUzKGRvdWJsZSxkb3VibGUsZG91YmxlKQ0KKz9DUlRyYW5zbGF0ZTNAQFlHUEFWQ1JUcmFuc2Zvcm0zQEBOTk5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0zICogX19zdGRjYWxsIENSVHJhbnNsYXRlMyhjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JUcmFuc2xhdGUzQEBZR1BBVkNSVHJhbnNmb3JtM0BAUEFWQ1JOdW1iZXJAQDAwQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMyAqIF9fc3RkY2FsbCBDUlRyYW5zbGF0ZTMoY2xhc3MgQ1JQb2ludDMgKikNCis/Q1JUcmFuc2xhdGUzQEBZR1BBVkNSVHJhbnNmb3JtM0BAUEFWQ1JQb2ludDNAQEBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3N0ZGNhbGwgQ1JUcmFuc2xhdGUzKGNsYXNzIENSVmVjdG9yMyAqKQ0KKz9DUlRyYW5zbGF0ZTNAQFlHUEFWQ1JUcmFuc2Zvcm0zQEBQQVZDUlZlY3RvcjNAQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSVHJpTWVzaChjbGFzcyBUcmlNZXNoRGF0YSAmKQ0KKz9DUlRyaU1lc2hAQFlHUEFWQ1JHZW9tZXRyeUBAQUFWVHJpTWVzaERhdGFAQEBaDQorOyBib29sIF9fc3RkY2FsbCBDUlRyaWdnZXJFdmVudChjbGFzcyBDUkV2ZW50ICosY2xhc3MgQ1JCdnIgKikNCis/Q1JUcmlnZ2VyRXZlbnRAQFlHX05QQVZDUkV2ZW50QEBQQVZDUkJ2ckBAQFoNCis7IGNsYXNzIENSQm9vbGVhbiAqIF9fc3RkY2FsbCBDUlRydWUodm9pZCkNCis/Q1JUcnVlQEBZR1BBVkNSQm9vbGVhbkBAWFoNCis7IGNsYXNzIENSRm9udFN0eWxlICogX19zdGRjYWxsIENSVW5kZXJsaW5lKGNsYXNzIENSRm9udFN0eWxlICopDQorP0NSVW5kZXJsaW5lQEBZR1BBVkNSRm9udFN0eWxlQEBQQVYxQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSVW5kZXRlY3RhYmxlKGNsYXNzIENSR2VvbWV0cnkgKikNCis/Q1JVbmRldGVjdGFibGVAQFlHUEFWQ1JHZW9tZXRyeUBAUEFWMUBAWg0KKzsgY2xhc3MgQ1JJbWFnZSAqIF9fc3RkY2FsbCBDUlVuZGV0ZWN0YWJsZShjbGFzcyBDUkltYWdlICopDQorP0NSVW5kZXRlY3RhYmxlQEBZR1BBVkNSSW1hZ2VAQFBBVjFAQFoNCis7IGNsYXNzIENSQXJyYXkgKiBfX3N0ZGNhbGwgQ1JVbmluaXRpYWxpemVkQXJyYXkoY2xhc3MgQ1JBcnJheSAqKQ0KKz9DUlVuaW5pdGlhbGl6ZWRBcnJheUBAWUdQQVZDUkFycmF5QEBQQVYxQEBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fc3RkY2FsbCBDUlVuaW5pdGlhbGl6ZWRCdnIoZW51bSBDUl9CVlJfVFlQRUlEKQ0KKz9DUlVuaW5pdGlhbGl6ZWRCdnJAQFlHUEFWQ1JCdnJAQFc0Q1JfQlZSX1RZUEVJREBAQFoNCis7IGNsYXNzIENSVHVwbGUgKiBfX3N0ZGNhbGwgQ1JVbmluaXRpYWxpemVkVHVwbGUoY2xhc3MgQ1JUdXBsZSAqKQ0KKz9DUlVuaW5pdGlhbGl6ZWRUdXBsZUBAWUdQQVZDUlR1cGxlQEBQQVYxQEBaDQorOyBjbGFzcyBDUkdlb21ldHJ5ICogX19zdGRjYWxsIENSVW5pb25HZW9tZXRyeShjbGFzcyBDUkdlb21ldHJ5ICosY2xhc3MgQ1JHZW9tZXRyeSAqKQ0KKz9DUlVuaW9uR2VvbWV0cnlAQFlHUEFWQ1JHZW9tZXRyeUBAUEFWMUAwQFoNCis7IGNsYXNzIENSR2VvbWV0cnkgKiBfX3N0ZGNhbGwgQ1JVbmlvbkdlb21ldHJ5KGNsYXNzIENSQXJyYXkgKikNCis/Q1JVbmlvbkdlb21ldHJ5QEBZR1BBVkNSR2VvbWV0cnlAQFBBVkNSQXJyYXlAQEBaDQorOyBjbGFzcyBDUk1hdHRlICogX19zdGRjYWxsIENSVW5pb25NYXR0ZShjbGFzcyBDUk1hdHRlICosY2xhc3MgQ1JNYXR0ZSAqKQ0KKz9DUlVuaW9uTWF0dGVAQFlHUEFWQ1JNYXR0ZUBAUEFWMUAwQFoNCis7IGNsYXNzIENSTW9udGFnZSAqIF9fc3RkY2FsbCBDUlVuaW9uTW9udGFnZShjbGFzcyBDUk1vbnRhZ2UgKixjbGFzcyBDUk1vbnRhZ2UgKikNCis/Q1JVbmlvbk1vbnRhZ2VAQFlHUEFWQ1JNb250YWdlQEBQQVYxQDBAWg0KKzsgY2xhc3MgQ1JNb250YWdlICogX19zdGRjYWxsIENSVW5pb25Nb250YWdlQXJyYXkoY2xhc3MgQ1JBcnJheSAqKQ0KKz9DUlVuaW9uTW9udGFnZUFycmF5QEBZR1BBVkNSTW9udGFnZUBAUEFWQ1JBcnJheUBAQFoNCis7IGNsYXNzIENSQnZyICogX19zdGRjYWxsIENSVW50aWwoY2xhc3MgQ1JCdnIgKixjbGFzcyBDUkV2ZW50ICosY2xhc3MgQ1JCdnIgKikNCis/Q1JVbnRpbEBAWUdQQVZDUkJ2ckBAUEFWMUBQQVZDUkV2ZW50QEAwQFoNCis7IGNsYXNzIENSQnZyICogX19zdGRjYWxsIENSVW50aWxFeChjbGFzcyBDUkJ2ciAqLGNsYXNzIENSRXZlbnQgKikNCis/Q1JVbnRpbEV4QEBZR1BBVkNSQnZyQEBQQVYxQFBBVkNSRXZlbnRAQEBaDQorOyBjbGFzcyBDUkJ2ciAqIF9fc3RkY2FsbCBDUlVudGlsTm90aWZ5KGNsYXNzIENSQnZyICosY2xhc3MgQ1JFdmVudCAqLGNsYXNzIENSVW50aWxOb3RpZmllciAqKQ0KKz9DUlVudGlsTm90aWZ5QEBZR1BBVkNSQnZyQEBQQVYxQFBBVkNSRXZlbnRAQFBBVkNSVW50aWxOb3RpZmllckBAQFoNCis7IGNsYXNzIENSVmVjdG9yMiAqIF9fc3RkY2FsbCBDUlZlY3RvcjJQb2xhcihkb3VibGUsZG91YmxlKQ0KKz9DUlZlY3RvcjJQb2xhckBAWUdQQVZDUlZlY3RvcjJAQE5OQFoNCis7IGNsYXNzIENSVmVjdG9yMiAqIF9fc3RkY2FsbCBDUlZlY3RvcjJQb2xhcihjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSVmVjdG9yMlBvbGFyQEBZR1BBVkNSVmVjdG9yMkBAUEFWQ1JOdW1iZXJAQDBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19zdGRjYWxsIENSVmVjdG9yM1NwaGVyaWNhbChkb3VibGUsZG91YmxlLGRvdWJsZSkNCis/Q1JWZWN0b3IzU3BoZXJpY2FsQEBZR1BBVkNSVmVjdG9yM0BATk5OQFoNCis7IGNsYXNzIENSVmVjdG9yMyAqIF9fc3RkY2FsbCBDUlZlY3RvcjNTcGhlcmljYWwoY2xhc3MgQ1JOdW1iZXIgKixjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSVmVjdG9yM1NwaGVyaWNhbEBAWUdQQVZDUlZlY3RvcjNAQFBBVkNSTnVtYmVyQEAwMEBaDQorOyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDUlZlcnNpb25TdHJpbmcodm9pZCkNCis/Q1JWZXJzaW9uU3RyaW5nQEBZR1BCR1haDQorOyBjbGFzcyBDUk51bWJlciAqIF9fc3RkY2FsbCBDUlZpZXdGcmFtZVJhdGUodm9pZCkNCis/Q1JWaWV3RnJhbWVSYXRlQEBZR1BBVkNSTnVtYmVyQEBYWg0KKzsgY2xhc3MgQ1JOdW1iZXIgKiBfX3N0ZGNhbGwgQ1JWaWV3VGltZURlbHRhKHZvaWQpDQorP0NSVmlld1RpbWVEZWx0YUBAWUdQQVZDUk51bWJlckBAWFoNCis7IGNsYXNzIENSRm9udFN0eWxlICogX19zdGRjYWxsIENSV2VpZ2h0KGNsYXNzIENSRm9udFN0eWxlICosZG91YmxlKQ0KKz9DUldlaWdodEBAWUdQQVZDUkZvbnRTdHlsZUBAUEFWMUBOQFoNCis7IGNsYXNzIENSRm9udFN0eWxlICogX19zdGRjYWxsIENSV2VpZ2h0KGNsYXNzIENSRm9udFN0eWxlICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JXZWlnaHRAQFlHUEFWQ1JGb250U3R5bGVAQFBBVjFAUEFWQ1JOdW1iZXJAQEBaDQorOyBjbGFzcyBDUkNvbG9yICogX19zdGRjYWxsIENSV2hpdGUodm9pZCkNCis/Q1JXaGl0ZUBAWUdQQVZDUkNvbG9yQEBYWg0KKzsgY2xhc3MgQ1JMaW5lU3R5bGUgKiBfX3N0ZGNhbGwgQ1JXaWR0aChjbGFzcyBDUkxpbmVTdHlsZSAqLGRvdWJsZSkNCis/Q1JXaWR0aEBAWUdQQVZDUkxpbmVTdHlsZUBAUEFWMUBOQFoNCis7IGNsYXNzIENSTGluZVN0eWxlICogX19zdGRjYWxsIENSV2lkdGgoY2xhc3MgQ1JMaW5lU3R5bGUgKixjbGFzcyBDUk51bWJlciAqKQ0KKz9DUldpZHRoQEBZR1BBVkNSTGluZVN0eWxlQEBQQVYxQFBBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19zdGRjYWxsIENSWFNoZWFyMihkb3VibGUpDQorP0NSWFNoZWFyMkBAWUdQQVZDUlRyYW5zZm9ybTJAQE5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0yICogX19zdGRjYWxsIENSWFNoZWFyMihjbGFzcyBDUk51bWJlciAqKQ0KKz9DUlhTaGVhcjJAQFlHUEFWQ1JUcmFuc2Zvcm0yQEBQQVZDUk51bWJlckBAQFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMyAqIF9fc3RkY2FsbCBDUlhTaGVhcjMoZG91YmxlLGRvdWJsZSkNCis/Q1JYU2hlYXIzQEBZR1BBVkNSVHJhbnNmb3JtM0BATk5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0zICogX19zdGRjYWxsIENSWFNoZWFyMyhjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSWFNoZWFyM0BAWUdQQVZDUlRyYW5zZm9ybTNAQFBBVkNSTnVtYmVyQEAwQFoNCis7IGNsYXNzIENSVmVjdG9yMiAqIF9fc3RkY2FsbCBDUlhWZWN0b3IyKHZvaWQpDQorP0NSWFZlY3RvcjJAQFlHUEFWQ1JWZWN0b3IyQEBYWg0KKzsgY2xhc3MgQ1JWZWN0b3IzICogX19zdGRjYWxsIENSWFZlY3RvcjModm9pZCkNCis/Q1JYVmVjdG9yM0BAWUdQQVZDUlZlY3RvcjNAQFhaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3N0ZGNhbGwgQ1JZU2hlYXIyKGRvdWJsZSkNCis/Q1JZU2hlYXIyQEBZR1BBVkNSVHJhbnNmb3JtMkBATkBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTIgKiBfX3N0ZGNhbGwgQ1JZU2hlYXIyKGNsYXNzIENSTnVtYmVyICopDQorP0NSWVNoZWFyMkBAWUdQQVZDUlRyYW5zZm9ybTJAQFBBVkNSTnVtYmVyQEBAWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0zICogX19zdGRjYWxsIENSWVNoZWFyMyhkb3VibGUsZG91YmxlKQ0KKz9DUllTaGVhcjNAQFlHUEFWQ1JUcmFuc2Zvcm0zQEBOTkBaDQorOyBjbGFzcyBDUlRyYW5zZm9ybTMgKiBfX3N0ZGNhbGwgQ1JZU2hlYXIzKGNsYXNzIENSTnVtYmVyICosY2xhc3MgQ1JOdW1iZXIgKikNCis/Q1JZU2hlYXIzQEBZR1BBVkNSVHJhbnNmb3JtM0BAUEFWQ1JOdW1iZXJAQDBAWg0KKzsgY2xhc3MgQ1JWZWN0b3IyICogX19zdGRjYWxsIENSWVZlY3RvcjIodm9pZCkNCis/Q1JZVmVjdG9yMkBAWUdQQVZDUlZlY3RvcjJAQFhaDQorOyBjbGFzcyBDUlZlY3RvcjMgKiBfX3N0ZGNhbGwgQ1JZVmVjdG9yMyh2b2lkKQ0KKz9DUllWZWN0b3IzQEBZR1BBVkNSVmVjdG9yM0BAWFoNCis7IGNsYXNzIENSQ29sb3IgKiBfX3N0ZGNhbGwgQ1JZZWxsb3codm9pZCkNCis/Q1JZZWxsb3dAQFlHUEFWQ1JDb2xvckBAWFoNCis7IGNsYXNzIENSVHJhbnNmb3JtMyAqIF9fc3RkY2FsbCBDUlpTaGVhcjMoZG91YmxlLGRvdWJsZSkNCis/Q1JaU2hlYXIzQEBZR1BBVkNSVHJhbnNmb3JtM0BATk5AWg0KKzsgY2xhc3MgQ1JUcmFuc2Zvcm0zICogX19zdGRjYWxsIENSWlNoZWFyMyhjbGFzcyBDUk51bWJlciAqLGNsYXNzIENSTnVtYmVyICopDQorP0NSWlNoZWFyM0BAWUdQQVZDUlRyYW5zZm9ybTNAQFBBVkNSTnVtYmVyQEAwQFoNCis7IGNsYXNzIENSVmVjdG9yMyAqIF9fc3RkY2FsbCBDUlpWZWN0b3IzKHZvaWQpDQorP0NSWlZlY3RvcjNAQFlHUEFWQ1JWZWN0b3IzQEBYWg0KKzsgY2xhc3MgQ1JWZWN0b3IyICogX19zdGRjYWxsIENSWmVyb1ZlY3RvcjIodm9pZCkNCis/Q1JaZXJvVmVjdG9yMkBAWUdQQVZDUlZlY3RvcjJAQFhaDQorOyBjbGFzcyBDUlZlY3RvcjMgKiBfX3N0ZGNhbGwgQ1JaZXJvVmVjdG9yMyh2b2lkKQ0KKz9DUlplcm9WZWN0b3IzQEBZR1BBVkNSVmVjdG9yM0BAWFoNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkYW8zNjAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RhbzM2MC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzU3YTM0OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkYW8zNjAuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgREFPMzYwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEQU8zNjAuZGxsDQorRVhQT1JUUw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsQ2FuVW5sb2FkTm93DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorRGxsUmVnaXN0ZXJTZXJ2ZXJFeA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkYXRhY2xlbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZGF0YWNsZW4uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMyNDQ5ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZGF0YWNsZW4uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgREFUQUNMRU4uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERBVEFDTEVOLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkYXRpbWUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RhdGltZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTBkMTg3YgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkYXRpbWUuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgREFUSU1FLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEQVRJTUUuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2RhdmNsbnQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RhdmNsbnQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAxNTVkOGQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZGF2Y2xudC5kZWYKQEAgLTAsMCArMSwyNyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBkYXZjbG50LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkYXZjbG50LmRsbA0KK0VYUE9SVFMNCitEYXZGcmVlVXNlZERpc2tTcGFjZQ0KK0RhdkdldERpc2tTcGFjZVVzYWdlDQorRGF2R2V0VGhlTG9ja093bmVyT2ZUaGVGaWxlDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxNYWluDQorTlBBZGRDb25uZWN0aW9uMw0KK05QQWRkQ29ubmVjdGlvbg0KK05QQ2FuY2VsQ29ubmVjdGlvbg0KK05QQ2xvc2VFbnVtDQorTlBFbnVtUmVzb3VyY2UNCitOUEZvcm1hdE5ldHdvcmtOYW1lDQorTlBHZXRDYXBzDQorTlBHZXRDb25uZWN0aW9uDQorTlBHZXRSZXNvdXJjZUluZm9ybWF0aW9uDQorTlBHZXRSZXNvdXJjZVBhcmVudA0KK05QR2V0VW5pdmVyc2FsTmFtZQ0KK05QR2V0VXNlcg0KK05QT3BlbkVudW0NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZGF2Y3Byb3guZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RhdmNwcm94LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MTNmZmY0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2RhdmNwcm94LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERBVkNQUk9YLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEQVZDUFJPWC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZGJnZW5nLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkYmdlbmcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNkYTg0MjIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZGJnZW5nLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGRiZ2VuZy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZGJnZW5nLmRsbA0KK0VYUE9SVFMNCitEZWJ1Z0Nvbm5lY3QNCitEZWJ1Z0NyZWF0ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkYmdoZWxwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkYmdoZWxwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZDk1MzY5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2RiZ2hlbHAuZGVmCkBAIC0wLDAgKzEsMTE3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGRiZ2hlbHAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGRiZ2hlbHAuZGxsDQorRVhQT1JUUw0KK0RiZ0hlbHBDcmVhdGVVc2VyRHVtcA0KK0RiZ0hlbHBDcmVhdGVVc2VyRHVtcFcNCitFbnVtRGlyVHJlZQ0KK0VudW1lcmF0ZUxvYWRlZE1vZHVsZXM2NA0KK0VudW1lcmF0ZUxvYWRlZE1vZHVsZXMNCitFeHRlbnNpb25BcGlWZXJzaW9uDQorRmluZERlYnVnSW5mb0ZpbGUNCitGaW5kRGVidWdJbmZvRmlsZUV4DQorRmluZEV4ZWN1dGFibGVJbWFnZQ0KK0ZpbmRFeGVjdXRhYmxlSW1hZ2VFeA0KK0ZpbmRGaWxlSW5QYXRoDQorRmluZEZpbGVJblNlYXJjaFBhdGgNCitHZXRUaW1lc3RhbXBGb3JMb2FkZWRMaWJyYXJ5DQorSW1hZ2VEaXJlY3RvcnlFbnRyeVRvRGF0YQ0KK0ltYWdlRGlyZWN0b3J5RW50cnlUb0RhdGFFeA0KK0ltYWdlTnRIZWFkZXINCitJbWFnZVJ2YVRvU2VjdGlvbg0KK0ltYWdlUnZhVG9WYQ0KK0ltYWdlaGxwQXBpVmVyc2lvbg0KK0ltYWdlaGxwQXBpVmVyc2lvbkV4DQorTWFrZVN1cmVEaXJlY3RvcnlQYXRoRXhpc3RzDQorTWFwRGVidWdJbmZvcm1hdGlvbg0KK01pbmlEdW1wUmVhZER1bXBTdHJlYW0NCitNaW5pRHVtcFdyaXRlRHVtcA0KK1NlYXJjaFRyZWVGb3JGaWxlDQorU3RhY2tXYWxrNjQNCitTdGFja1dhbGsNCitTeW1BZGRTeW1ib2wNCitTeW1DbGVhbnVwDQorU3ltRGVsZXRlU3ltYm9sDQorU3ltRW51bUxpbmVzDQorU3ltRW51bVNvdXJjZUZpbGVzDQorU3ltRW51bVN5bQ0KK1N5bUVudW1TeW1ib2xzDQorU3ltRW51bVN5bWJvbHNGb3JBZGRyDQorU3ltRW51bVR5cGVzDQorU3ltRW51bWVyYXRlTW9kdWxlczY0DQorU3ltRW51bWVyYXRlTW9kdWxlcw0KK1N5bUVudW1lcmF0ZVN5bWJvbHM2NA0KK1N5bUVudW1lcmF0ZVN5bWJvbHMNCitTeW1FbnVtZXJhdGVTeW1ib2xzVzY0DQorU3ltRW51bWVyYXRlU3ltYm9sc1cNCitTeW1GaW5kRmlsZUluUGF0aA0KK1N5bUZyb21BZGRyDQorU3ltRnJvbU5hbWUNCitTeW1Gcm9tVG9rZW4NCitTeW1GdW5jdGlvblRhYmxlQWNjZXNzNjQNCitTeW1GdW5jdGlvblRhYmxlQWNjZXNzDQorU3ltR2V0RmlsZUxpbmVPZmZzZXRzNjQNCitTeW1HZXRIb21lRGlyZWN0b3J5DQorU3ltR2V0TGluZUZyb21BZGRyNjQNCitTeW1HZXRMaW5lRnJvbUFkZHINCitTeW1HZXRMaW5lRnJvbU5hbWU2NA0KK1N5bUdldExpbmVGcm9tTmFtZQ0KK1N5bUdldExpbmVOZXh0NjQNCitTeW1HZXRMaW5lTmV4dA0KK1N5bUdldExpbmVQcmV2NjQNCitTeW1HZXRMaW5lUHJldg0KK1N5bUdldE1vZHVsZUJhc2U2NA0KK1N5bUdldE1vZHVsZUJhc2UNCitTeW1HZXRNb2R1bGVJbmZvNjQNCitTeW1HZXRNb2R1bGVJbmZvDQorU3ltR2V0TW9kdWxlSW5mb1c2NA0KK1N5bUdldE1vZHVsZUluZm9XDQorU3ltR2V0T3B0aW9ucw0KK1N5bUdldFNlYXJjaFBhdGgNCitTeW1HZXRTeW1Gcm9tQWRkcjY0DQorU3ltR2V0U3ltRnJvbUFkZHINCitTeW1HZXRTeW1Gcm9tTmFtZTY0DQorU3ltR2V0U3ltRnJvbU5hbWUNCitTeW1HZXRTeW1OZXh0NjQNCitTeW1HZXRTeW1OZXh0DQorU3ltR2V0U3ltUHJldjY0DQorU3ltR2V0U3ltUHJldg0KK1N5bUdldFR5cGVGcm9tTmFtZQ0KK1N5bUdldFR5cGVJbmZvDQorU3ltSW5pdGlhbGl6ZQ0KK1N5bUxvYWRNb2R1bGU2NA0KK1N5bUxvYWRNb2R1bGUNCitTeW1Mb2FkTW9kdWxlRXgNCitTeW1NYXRjaEZpbGVOYW1lDQorU3ltTWF0Y2hTdHJpbmcNCitTeW1SZWdpc3RlckNhbGxiYWNrNjQNCitTeW1SZWdpc3RlckNhbGxiYWNrDQorU3ltUmVnaXN0ZXJGdW5jdGlvbkVudHJ5Q2FsbGJhY2s2NA0KK1N5bVJlZ2lzdGVyRnVuY3Rpb25FbnRyeUNhbGxiYWNrDQorU3ltU2V0Q29udGV4dA0KK1N5bVNldEhvbWVEaXJlY3RvcnkNCitTeW1TZXRPcHRpb25zDQorU3ltU2V0UGFyZW50V2luZG93DQorU3ltU2V0U2VhcmNoUGF0aA0KK1N5bVVuRE5hbWU2NA0KK1N5bVVuRE5hbWUNCitTeW1VbmxvYWRNb2R1bGU2NA0KK1N5bVVubG9hZE1vZHVsZQ0KK1VuRGVjb3JhdGVTeW1ib2xOYW1lDQorVW5tYXBEZWJ1Z0luZm9ybWF0aW9uDQorV2luRGJnRXh0ZW5zaW9uRGxsSW5pdA0KK2RiZ2hlbHANCitkaA0KK2ZwdHINCitsbQ0KK2xtaQ0KK29tYXANCitzcmNmaWxlcw0KK3N0YWNrZGJnDQorc3ltDQorc3ltc3J2DQordmM3ZnBvDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2RibmV0bGliLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkYm5ldGxpYi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGQyMTgwNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkYm5ldGxpYi5kZWYKQEAgLTAsMCArMSwzNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEQm5ldGxpYi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgREJuZXRsaWIuZGxsDQorRVhQT1JUUw0KK0Nvbm5lY3Rpb25PYmplY3RTaXplDQorQ29ubmVjdGlvblJlYWQNCitDb25uZWN0aW9uV3JpdGUNCitDb25uZWN0aW9uVHJhbnNhY3QNCitDb25uZWN0aW9uV3JpdGVPT0INCitDb25uZWN0aW9uTW9kZQ0KK0Nvbm5lY3Rpb25TdGF0dXMNCitDb25uZWN0aW9uT3Blbg0KK0Nvbm5lY3Rpb25DbG9zZQ0KK0Nvbm5lY3Rpb25DaGVja0ZvckRhdGENCitDb25uZWN0aW9uRXJyb3INCitDb25uZWN0aW9uVmVyDQorQ29ubmVjdGlvblNxbFZlcg0KK0Nvbm5lY3Rpb25TZXJ2ZXJFbnVtDQorQ29ubmVjdGlvblNlcnZlckVudW1XDQorQ29ubmVjdGlvbk9wZW5XDQorQ29ubmVjdGlvbkVycm9yVw0KK0Nvbm5lY3Rpb25PcHRpb24NCitDb25uZWN0aW9uR2V0U3ZyVXNlcg0KK0luaXRFbnVtU2VydmVycw0KK0dldE5leHRFbnVtZXJhdGlvbg0KK0Nsb3NlRW51bVNlcnZlcnMNCitJbml0U1NQSVBhY2thZ2UNCitUZXJtU1NQSVBhY2thZ2UNCitJbml0U2Vzc2lvbg0KK1Rlcm1TZXNzaW9uDQorR2VuQ2xpZW50Q29udGV4dA0KK0Nvbm5lY3Rpb25GbHVzaENhY2hlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2RjaW1hbjMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkY2ltYW4zMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjkxYzU3OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkY2ltYW4zMi5kZWYKQEAgLTAsMCArMSwyOCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEQ0lNQU4zMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRENJTUFOMzIuZGxsDQorRVhQT1JUUw0KK0RDSUJlZ2luQWNjZXNzDQorRENJQ2xvc2VQcm92aWRlcg0KK0RDSUNyZWF0ZU9mZnNjcmVlbg0KK0RDSUNyZWF0ZU92ZXJsYXkNCitEQ0lDcmVhdGVQcmltYXJ5DQorRENJRGVzdHJveQ0KK0RDSURyYXcNCitEQ0lFbmRBY2Nlc3MNCitEQ0lFbnVtDQorRENJT3BlblByb3ZpZGVyDQorRENJU2V0Q2xpcExpc3QNCitEQ0lTZXREZXN0aW5hdGlvbg0KK0RDSVNldFNyY0Rlc3RDbGlwDQorR2V0RENSZWdpb25EYXRhDQorR2V0V2luZG93UmVnaW9uRGF0YQ0KK1dpbldhdGNoQ2xvc2UNCitXaW5XYXRjaERpZFN0YXR1c0NoYW5nZQ0KK1dpbldhdGNoR2V0Q2xpcExpc3QNCitXaW5XYXRjaE5vdGlmeQ0KK1dpbldhdGNoT3Blbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkZHJhdy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZGRyYXcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI5MmI1MTQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZGRyYXcuZGVmCkBAIC0wLDAgKzEsMzAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRERSQVcuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEREUkFXLmRsbA0KK0VYUE9SVFMNCitBY3F1aXJlRERUaHJlYWRMb2NrDQorQ2hlY2tGdWxsc2NyZWVuDQorQ29tcGxldGVDcmVhdGVTeXNtZW1TdXJmYWNlDQorRDNEUGFyc2VVbmtub3duQ29tbWFuZA0KK0RER2V0QXR0YWNoZWRTdXJmYWNlTGNsDQorRERJbnRlcm5hbExvY2sNCitEREludGVybmFsVW5sb2NrDQorRFNvdW5kSGVscA0KK0RpcmVjdERyYXdDcmVhdGUNCitEaXJlY3REcmF3Q3JlYXRlQ2xpcHBlcg0KK0RpcmVjdERyYXdDcmVhdGVFeA0KK0RpcmVjdERyYXdFbnVtZXJhdGVBDQorRGlyZWN0RHJhd0VudW1lcmF0ZUV4QQ0KK0RpcmVjdERyYXdFbnVtZXJhdGVFeFcNCitEaXJlY3REcmF3RW51bWVyYXRlVw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorR2V0RERTdXJmYWNlTG9jYWwNCitHZXRPTEVUaHVua0RhdGENCitHZXRTdXJmYWNlRnJvbURDDQorUmVnaXN0ZXJTcGVjaWFsQ2FzZQ0KK1JlbGVhc2VERFRocmVhZExvY2sNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZGRyYXdleC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZGRyYXdleC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjVmNjY3YQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkZHJhd2V4LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEREUkFXRVguRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEREUkFXRVguRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2Rlc2thZHAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rlc2thZHAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUyM2MwMjUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZGVza2FkcC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBkZXNrYWRwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkZXNrYWRwLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkZXNrbW9uLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkZXNrbW9uLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MjQ0NzVlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rlc2ttb24uZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZGVza21vbi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZGVza21vbi5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZGVza3BlcmYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rlc2twZXJmLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lYjM2NzE3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rlc2twZXJmLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGRlc2twZXJmLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkZXNrcGVyZi5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZGV2ZW51bS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZGV2ZW51bS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGVhNTA0MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkZXZlbnVtLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERFVkVOVU0uRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERFVkVOVU0uRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2Rmc3NobGV4LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkZnNzaGxleC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzNjMzlhNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkZnNzaGxleC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEZnNTaGxFeC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRGZzU2hsRXguRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2RnY29uZmlnLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkZ2NvbmZpZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzk0MTRmMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkZ2NvbmZpZy5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBER0NPTkZJRy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgREdDT05GSUcuZGxsDQorRVhQT1JUUw0KK0RpZ2lQb3J0Q29JbnN0YWxsZXINCitER0NvbmZpZ0VudHJ5UG9pbnQNCitEaWdpQXN5bmNDb0luc3RhbGxlcg0KK0RpZ2lBc3luY1Byb3BQYWdlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2RnbmV0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkZ25ldC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWRkMGE2YgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkZ25ldC5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEZ25ldC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRGduZXQuRExMDQorRVhQT1JUUw0KK0luaXRIZWxwZXJEbGwNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkZ3NldHVwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkZ3NldHVwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZGQwNTJkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rnc2V0dXAuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBER1NFVFVQLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBER1NFVFVQLmRsbA0KK0VYUE9SVFMNCitEaWdpTXVsdGlQb3J0Q29JbnN0YWxsZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZGhjcGNzdmMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RoY3Bjc3ZjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZmQ0Zjc0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2RoY3Bjc3ZjLmRlZgpAQCAtMCwwICsxLDQ1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERIQ1BDU1ZDLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBESENQQ1NWQy5ETEwNCitFWFBPUlRTDQorRGhjcEFjcXVpcmVQYXJhbWV0ZXJzDQorRGhjcEFjcXVpcmVQYXJhbWV0ZXJzQnlCcm9hZGNhc3QNCitEaGNwQ0FwaUNsZWFudXANCitEaGNwQ0FwaUluaXRpYWxpemUNCitEaGNwRGVSZWdpc3Rlck9wdGlvbnMNCitEaGNwRGVSZWdpc3RlclBhcmFtQ2hhbmdlDQorRGhjcERlbFBlcnNpc3RlbnRSZXF1ZXN0UGFyYW1zDQorRGhjcEVudW1DbGFzc2VzDQorRGhjcEZhbGxiYWNrUmVmcmVzaFBhcmFtcw0KK0RoY3BIYW5kbGVQblBFdmVudA0KK0RoY3BMZWFzZUlwQWRkcmVzcw0KK0RoY3BMZWFzZUlwQWRkcmVzc0V4DQorRGhjcE5vdGlmeUNvbmZpZ0NoYW5nZQ0KK0RoY3BOb3RpZnlDb25maWdDaGFuZ2VFeA0KK0RoY3BOb3RpZnlNZWRpYVJlY29ubmVjdGVkDQorRGhjcE9wZW5HbG9iYWxFdmVudA0KK0RoY3BQZXJzaXN0ZW50UmVxdWVzdFBhcmFtcw0KK0RoY3BSZWdpc3Rlck9wdGlvbnMNCitEaGNwUmVnaXN0ZXJQYXJhbUNoYW5nZQ0KK0RoY3BSZWxlYXNlSXBBZGRyZXNzTGVhc2UNCitEaGNwUmVsZWFzZUlwQWRkcmVzc0xlYXNlRXgNCitEaGNwUmVsZWFzZVBhcmFtZXRlcnMNCitEaGNwUmVtb3ZlRE5TUmVnaXN0cmF0aW9ucw0KK0RoY3BSZW5ld0lwQWRkcmVzc0xlYXNlDQorRGhjcFJlbmV3SXBBZGRyZXNzTGVhc2VFeA0KK0RoY3BSZXF1ZXN0T3B0aW9ucw0KK0RoY3BSZXF1ZXN0UGFyYW1zDQorRGhjcFN0YXRpY1JlZnJlc2hQYXJhbXMNCitEaGNwVW5kb1JlcXVlc3RQYXJhbXMNCitNY2FzdEFwaUNsZWFudXANCitNY2FzdEFwaVN0YXJ0dXANCitNY2FzdEVudW1lcmF0ZVNjb3Blcw0KK01jYXN0R2VuVUlEDQorTWNhc3RSZWxlYXNlQWRkcmVzcw0KK01jYXN0UmVuZXdBZGRyZXNzDQorTWNhc3RSZXF1ZXN0QWRkcmVzcw0KK1NlcnZpY2VNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2RoY3Btb24uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RoY3Btb24uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc0MDJjN2YKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZGhjcG1vbi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERIQ1BNT04uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERIQ1BNT04uZGxsDQorRVhQT1JUUw0KK0luaXRIZWxwZXJEbGwNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZGhjcHNhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RoY3BzYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ZTBjMjY5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2RoY3BzYXBpLmRlZgpAQCAtMCwwICsxLDEwMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBESENQU0FQSS5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgREhDUFNBUEkuRExMDQorRVhQT1JUUw0KK0RoY3BBZGRNU2NvcGVFbGVtZW50DQorRGhjcEFkZFNlcnZlcg0KK0RoY3BBZGRTdWJuZXRFbGVtZW50DQorRGhjcEFkZFN1Ym5ldEVsZW1lbnRWNA0KK0RoY3BBZGRTdWJuZXRFbGVtZW50VjUNCitEaGNwQXVkaXRMb2dHZXRQYXJhbXMNCitEaGNwQXVkaXRMb2dTZXRQYXJhbXMNCitEaGNwQ3JlYXRlQ2xhc3MNCitEaGNwQ3JlYXRlQ2xpZW50SW5mbw0KK0RoY3BDcmVhdGVDbGllbnRJbmZvVjQNCitEaGNwQ3JlYXRlT3B0aW9uDQorRGhjcENyZWF0ZU9wdGlvblY1DQorRGhjcENyZWF0ZVN1Ym5ldA0KK0RoY3BEZWxldGVDbGFzcw0KK0RoY3BEZWxldGVDbGllbnRJbmZvDQorRGhjcERlbGV0ZU1DbGllbnRJbmZvDQorRGhjcERlbGV0ZU1TY29wZQ0KK0RoY3BEZWxldGVTZXJ2ZXINCitEaGNwRGVsZXRlU3VibmV0DQorRGhjcERlbGV0ZVN1cGVyU2NvcGVWNA0KK0RoY3BEc0NsZWFudXANCitEaGNwRHNDbGVhckhvc3RTZXJ2ZXJFbnRyaWVzDQorRGhjcERzSW5pdA0KK0RoY3BFbnVtQ2xhc3Nlcw0KK0RoY3BFbnVtTVNjb3BlQ2xpZW50cw0KK0RoY3BFbnVtTVNjb3BlRWxlbWVudHMNCitEaGNwRW51bU1TY29wZXMNCitEaGNwRW51bU9wdGlvblZhbHVlcw0KK0RoY3BFbnVtT3B0aW9uVmFsdWVzVjUNCitEaGNwRW51bU9wdGlvbnMNCitEaGNwRW51bU9wdGlvbnNWNQ0KK0RoY3BFbnVtU2VydmVycw0KK0RoY3BFbnVtU3VibmV0Q2xpZW50cw0KK0RoY3BFbnVtU3VibmV0Q2xpZW50c1Y0DQorRGhjcEVudW1TdWJuZXRDbGllbnRzVjUNCitEaGNwRW51bVN1Ym5ldEVsZW1lbnRzDQorRGhjcEVudW1TdWJuZXRFbGVtZW50c1Y0DQorRGhjcEVudW1TdWJuZXRFbGVtZW50c1Y1DQorRGhjcEVudW1TdWJuZXRzDQorRGhjcEdldEFsbE9wdGlvblZhbHVlcw0KK0RoY3BHZXRBbGxPcHRpb25zDQorRGhjcEdldENsYXNzSW5mbw0KK0RoY3BHZXRDbGllbnRJbmZvDQorRGhjcEdldENsaWVudEluZm9WNA0KK0RoY3BHZXRDbGllbnRPcHRpb25zDQorRGhjcEdldE1DYXN0TWliSW5mbw0KK0RoY3BHZXRNU2NvcGVJbmZvDQorRGhjcEdldE1pYkluZm8NCitEaGNwR2V0T3B0aW9uSW5mbw0KK0RoY3BHZXRPcHRpb25JbmZvVjUNCitEaGNwR2V0T3B0aW9uVmFsdWUNCitEaGNwR2V0T3B0aW9uVmFsdWVWNQ0KK0RoY3BHZXRTZXJ2ZXJCaW5kaW5nSW5mbw0KK0RoY3BHZXRTdWJuZXRJbmZvDQorRGhjcEdldFN1cGVyU2NvcGVJbmZvVjQNCitEaGNwR2V0VGhyZWFkT3B0aW9ucw0KK0RoY3BHZXRWZXJzaW9uDQorRGhjcE1vZGlmeUNsYXNzDQorRGhjcFJlbW92ZU1TY29wZUVsZW1lbnQNCitEaGNwUmVtb3ZlT3B0aW9uDQorRGhjcFJlbW92ZU9wdGlvblY1DQorRGhjcFJlbW92ZU9wdGlvblZhbHVlDQorRGhjcFJlbW92ZU9wdGlvblZhbHVlVjUNCitEaGNwUmVtb3ZlU3VibmV0RWxlbWVudA0KK0RoY3BSZW1vdmVTdWJuZXRFbGVtZW50VjQNCitEaGNwUmVtb3ZlU3VibmV0RWxlbWVudFY1DQorRGhjcFJwY0ZyZWVNZW1vcnkNCitEaGNwU2NhbkRhdGFiYXNlDQorRGhjcFNjYW5NRGF0YWJhc2UNCitEaGNwU2VydmVyQmFja3VwRGF0YWJhc2UNCitEaGNwU2VydmVyR2V0Q29uZmlnDQorRGhjcFNlcnZlckdldENvbmZpZ1Y0DQorRGhjcFNlcnZlclF1ZXJ5QXR0cmlidXRlDQorRGhjcFNlcnZlclF1ZXJ5QXR0cmlidXRlcw0KK0RoY3BTZXJ2ZXJRdWVyeURuc1JlZ0NyZWRlbnRpYWxzDQorRGhjcFNlcnZlclJlZG9BdXRob3JpemF0aW9uDQorRGhjcFNlcnZlclJlc3RvcmVEYXRhYmFzZQ0KK0RoY3BTZXJ2ZXJTZXRDb25maWcNCitEaGNwU2VydmVyU2V0Q29uZmlnVjQNCitEaGNwU2VydmVyU2V0RG5zUmVnQ3JlZGVudGlhbHMNCitEaGNwU2V0Q2xpZW50SW5mbw0KK0RoY3BTZXRDbGllbnRJbmZvVjQNCitEaGNwU2V0TVNjb3BlSW5mbw0KK0RoY3BTZXRPcHRpb25JbmZvDQorRGhjcFNldE9wdGlvbkluZm9WNQ0KK0RoY3BTZXRPcHRpb25WYWx1ZQ0KK0RoY3BTZXRPcHRpb25WYWx1ZVY1DQorRGhjcFNldE9wdGlvblZhbHVlcw0KK0RoY3BTZXRPcHRpb25WYWx1ZXNWNQ0KK0RoY3BTZXRTZXJ2ZXJCaW5kaW5nSW5mbw0KK0RoY3BTZXRTdWJuZXRJbmZvDQorRGhjcFNldFN1cGVyU2NvcGVWNA0KK0RoY3BTZXRUaHJlYWRPcHRpb25zDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2RpYWN0ZnJtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkaWFjdGZybS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzdmZDQ3OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkaWFjdGZybS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBkaWFjdGZybS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZGlhY3Rmcm0uZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2RpZ2VzdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZGlnZXN0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNjRkOTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2RpZ2VzdC5kZWYKQEAgLTAsMCArMSwxNyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB3ZGlnZXN0LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSB3ZGlnZXN0LmRsbA0KK0VYUE9SVFMNCitTcEluaXRpYWxpemUNCitDcmVkZW50aWFsVXBkYXRlUmVnaXN0ZXINCitTc2lDcmVkZW50aWFsc1VwZGF0ZU5vdGlmeQ0KK0NyZWRlbnRpYWxVcGRhdGVGcmVlDQorQ3JlZGVudGlhbFVwZGF0ZU5vdGlmeQ0KK1NwTHNhTW9kZUluaXRpYWxpemUNCitTcFVzZXJNb2RlSW5pdGlhbGl6ZQ0KK1NzaUNyZWRlbnRpYWxzVXBkYXRlRnJlZQ0KK1NwSW5zdGFuY2VJbml0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2RpZ2lpbmYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RpZ2lpbmYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIxYmIyODkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZGlnaWluZi5kZWYKQEAgLTAsMCArMSwxNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEaWdpSW5mLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEaWdpSW5mLmRsbA0KK0VYUE9SVFMNCitJTkZFbnRyeVBvaW50DQorQ29uZmlndXJlDQorUmVtb3ZlDQorVXBkYXRlDQorQWRkTW9kZW1TZXR0aW5nc1RvUkFTDQorRGlnaUR4YkNvSW5zdGFsbGVyDQorRGlnaUR4YkNsaWVudENvSW5zdGFsbGVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2RpZ2lybHB0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkaWdpcmxwdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGRlNjk4YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkaWdpcmxwdC5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEaWdpUmxQdC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRGlnaVJsUHQuZGxsDQorRVhQT1JUUw0KK0RpZ2lQb3J0Q29JbnN0YWxsZXINCitEaWdpUmVhbFBvcnRQcm9wUGFnZVByb3ZpZGVyDQorUmVhbFBvcnRDb0luc3RhbGxlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkaW1hcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZGltYXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhjYTEyNDUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZGltYXAuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRElNQVAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERJTUFQLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkaW1zbnRmeS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZGltc250ZnkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIxNGVkZjQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZGltc250ZnkuZGVmCkBAIC0wLDAgKzEsMTUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZGltc250ZnkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGRpbXNudGZ5LmRsbA0KK0VYUE9SVFMNCitXbERpbXNMb2NrDQorV2xEaW1zTG9nb2ZmDQorV2xEaW1zTG9nb24NCitXbERpbXNTaHV0ZG93bg0KK1dsRGltc1N0YXJ0U2hlbGwNCitXbERpbXNTdGFydHVwDQorV2xEaW1zVW5sb2NrDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2RpbXNyb2FtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkaW1zcm9hbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWNiZWQ1ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkaW1zcm9hbS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGRpbXNyb2FtLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkaW1zcm9hbS5kbGwNCitFWFBPUlRTDQorRGltc1JvYW1FbnRyeQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkaW5wdXQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RpbnB1dC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzhmMTIyYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkaW5wdXQuZGVmCkBAIC0wLDAgKzEsMTUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRElOUFVULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBESU5QVVQuZGxsDQorRVhQT1JUUw0KK0RpcmVjdElucHV0Q3JlYXRlQQ0KK0RpcmVjdElucHV0Q3JlYXRlRXgNCitEaXJlY3RJbnB1dENyZWF0ZVcNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkaW5wdXQ4LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkaW5wdXQ4LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYzhlZGM0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2RpbnB1dDguZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRElOUFVUOC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRElOUFVUOC5kbGwNCitFWFBPUlRTDQorRGlyZWN0SW5wdXQ4Q3JlYXRlDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZGlyZWN0ZGIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RpcmVjdGRiLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZWQ1ZGU2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2RpcmVjdGRiLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERJUkVDVERCLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBESVJFQ1REQi5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZGlza2NvcHkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rpc2tjb3B5LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNmJhZDAxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rpc2tjb3B5LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERJU0tDT1BZLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBESVNLQ09QWS5kbGwNCitFWFBPUlRTDQorRGlza0NvcHlSdW5EbGwNCitEaXNrQ29weVJ1bkRsbFcNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkaXNwZXguZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rpc3BleC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTEyZWEzMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkaXNwZXguZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRGlzcEV4LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEaXNwRXguZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorR2V0UHJveHlEbGxJbmZvDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2Rpc3J2Y2kuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rpc3J2Y2kuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgyNDBhNjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZGlzcnZjaS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERJU1JWQ0kuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERJU1JWQ0kuZGxsDQorRVhQT1JUUw0KK0NvRGV2aWNlSW5zdGFsbA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkbWF1ZC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZG1hdWQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJiOWM3NzYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZG1hdWQuZGVmCkBAIC0wLDAgKzEsMTUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgV0RNQVVELkRSVg0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXRE1BVUQuRFJWDQorRVhQT1JUUw0KK0RyaXZlclByb2MNCithdXhNZXNzYWdlDQorbWlkTWVzc2FnZQ0KK21vZE1lc3NhZ2UNCitteGRNZXNzYWdlDQord2lkTWVzc2FnZQ0KK3dvZE1lc3NhZ2UNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZG1iYW5kLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkbWJhbmQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI4Y2ExMmQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZG1iYW5kLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGRtYmFuZC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZG1iYW5kLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkbWNvbXBvcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZG1jb21wb3MuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVhNTZhNjUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZG1jb21wb3MuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZG1jb21wb3MuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGRtY29tcG9zLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkbWltZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZG1pbWUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ2MDM0ODMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZG1pbWUuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZG1pbWUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGRtaW1lLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkbWxvYWRlci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZG1sb2FkZXIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIwOGJjODcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZG1sb2FkZXIuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZG1sb2FkZXIuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGRtbG9hZGVyLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkbW9jeC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZG1vY3guZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJjZDlhYjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZG1vY3guZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRE1PQ1guRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERNT0NYLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkbXNjcmlwdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZG1zY3JpcHQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIyNjNhMDEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZG1zY3JpcHQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZG1zY3JpcHQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGRtc2NyaXB0LmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkbXN0eWxlLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkbXN0eWxlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNTBhYjQzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rtc3R5bGUuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZG1zdHlsZS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZG1zdHlsZS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZG1zeW50aC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZG1zeW50aC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTE1MWYwOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkbXN5bnRoLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGRtc3ludGguRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGRtc3ludGguRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2RtdXNpYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZG11c2ljLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41ZjYwOTNjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2RtdXNpYy5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBkbXVzaWMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGRtdXNpYy5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZG5zYXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkbnNhcGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ2NmNkZmEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZG5zYXBpLmRlZgpAQCAtMCwwICsxLDE3NiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBETlNBUEkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEROU0FQSS5kbGwNCitFWFBPUlRTDQorRG5zR2V0RG9tYWluTmFtZQ0KK0Ruc0lzQU1haWxib3hUeXBlDQorRG5zSXNTdGF0dXNSY29kZQ0KK0Ruc01hcFJjb2RlVG9TdGF0dXMNCitEbnNTdGF0dXNTdHJpbmcNCitEbnNVbmljb2RlVG9VdGY4DQorRG5zVXRmOFRvVW5pY29kZQ0KK0Ruc19SZWFkUGFja2V0TmFtZQ0KK0Ruc19SZWFkUGFja2V0TmFtZUFsbG9jYXRlDQorRG5zX1NraXBQYWNrZXROYW1lDQorRG5zX1dyaXRlRG90dGVkTmFtZVRvUGFja2V0DQorQnJlYWtSZWNvcmRzSW50b0Jsb2INCitDb21iaW5lUmVjb3Jkc0luQmxvYg0KK0Ruc0FjcXVpcmVDb250ZXh0SGFuZGxlX0ENCitEbnNBY3F1aXJlQ29udGV4dEhhbmRsZV9XDQorRG5zQWxsb2NhdGVSZWNvcmQNCitEbnNBcGlBbGxvYw0KK0Ruc0FwaUFsbG9jWmVybw0KK0Ruc0FwaUZyZWUNCitEbnNBcGlIZWFwUmVzZXQNCitEbnNBcGlSZWFsbG9jDQorRG5zQXBpU2V0RGVidWdHbG9iYWxzDQorRG5zQXN5bmNSZWdpc3Rlckhvc3RBZGRycw0KK0Ruc0FzeW5jUmVnaXN0ZXJJbml0DQorRG5zQXN5bmNSZWdpc3RlclRlcm0NCitEbnNDb3B5U3RyaW5nRXgNCitEbnNDcmVhdGVSZXZlcnNlTmFtZVN0cmluZ0ZvcklwQWRkcmVzcw0KK0Ruc0NyZWF0ZVN0YW5kYXJkRG5zTmFtZUNvcHkNCitEbnNDcmVhdGVTdHJpbmdDb3B5DQorRG5zRGhjcFJlZ2lzdGVySG9zdEFkZHJzDQorRG5zRGhjcFJlZ2lzdGVySW5pdA0KK0Ruc0RoY3BSZWdpc3RlclRlcm0NCitEbnNEaGNwUmVtb3ZlUmVnaXN0cmF0aW9ucw0KK0Ruc0RoY3BTcnZSZWdpc3Rlckhvc3ROYW1lDQorRG5zRGhjcFNydlJlZ2lzdGVySW5pdA0KK0Ruc0RoY3BTcnZSZWdpc3RlckluaXRpYWxpemUNCitEbnNEaGNwU3J2UmVnaXN0ZXJUZXJtDQorRG5zRG93bmNhc2VEbnNOYW1lTGFiZWwNCitEbnNFeHRyYWN0UmVjb3Jkc0Zyb21NZXNzYWdlX1VURjgNCitEbnNFeHRyYWN0UmVjb3Jkc0Zyb21NZXNzYWdlX1cNCitEbnNGaW5kQXV0aG9yaXRhdGl2ZVpvbmUNCitEbnNGbHVzaFJlc29sdmVyQ2FjaGUNCitEbnNGbHVzaFJlc29sdmVyQ2FjaGVFbnRyeV9BDQorRG5zRmx1c2hSZXNvbHZlckNhY2hlRW50cnlfVVRGOA0KK0Ruc0ZsdXNoUmVzb2x2ZXJDYWNoZUVudHJ5X1cNCitEbnNGcmVlDQorRG5zRnJlZUNvbmZpZ1N0cnVjdHVyZQ0KK0Ruc0dldEJ1ZmZlckxlbmd0aEZvclN0cmluZ0NvcHkNCitEbnNHZXRDYWNoZURhdGFUYWJsZQ0KK0Ruc0dldERuc1NlcnZlckxpc3QNCitEbnNHZXRMYXN0RmFpbGVkVXBkYXRlSW5mbw0KK0Ruc0dldFByaW1hcnlEb21haW5OYW1lX0ENCitEbnNHbG9iYWxzIERBVEENCitEbnNJcHY2QWRkcmVzc1RvU3RyaW5nDQorRG5zSXB2NlN0cmluZ1RvQWRkcmVzcw0KK0Ruc0lzU3RyaW5nQ291bnRWYWxpZEZvclRleHRUeXBlDQorRG5zTW9kaWZ5UmVjb3Jkc0luU2V0X0ENCitEbnNNb2RpZnlSZWNvcmRzSW5TZXRfVVRGOA0KK0Ruc01vZGlmeVJlY29yZHNJblNldF9XDQorRG5zTmFtZUNvbXBhcmVFeF9BDQorRG5zTmFtZUNvbXBhcmVFeF9VVEY4DQorRG5zTmFtZUNvbXBhcmVFeF9XDQorRG5zTmFtZUNvbXBhcmVfQQ0KK0Ruc05hbWVDb21wYXJlX1VURjgNCitEbnNOYW1lQ29tcGFyZV9XDQorRG5zTmFtZUNvcHkNCitEbnNOYW1lQ29weUFsbG9jYXRlDQorRG5zTmV0d29ya0luZm9fQ3JlYXRlRnJvbUZBWg0KK0Ruc05ldHdvcmtJbmZvcm1hdGlvbl9DcmVhdGVGcm9tRkFaDQorRG5zTm90aWZ5UmVzb2x2ZXINCitEbnNOb3RpZnlSZXNvbHZlckNsdXN0ZXJJcA0KK0Ruc05vdGlmeVJlc29sdmVyRXgNCitEbnNRdWVyeUNvbmZpZw0KK0Ruc1F1ZXJ5Q29uZmlnQWxsb2NFeA0KK0Ruc1F1ZXJ5Q29uZmlnRHdvcmQNCitEbnNRdWVyeUV4QQ0KK0Ruc1F1ZXJ5RXhVVEY4DQorRG5zUXVlcnlFeFcNCitEbnNRdWVyeV9BDQorRG5zUXVlcnlfVVRGOA0KK0Ruc1F1ZXJ5X1cNCitEbnNSZWNvcmRCdWlsZF9VVEY4DQorRG5zUmVjb3JkQnVpbGRfVw0KK0Ruc1JlY29yZENvbXBhcmUNCitEbnNSZWNvcmRDb3B5RXgNCitEbnNSZWNvcmRMaXN0RnJlZQ0KK0Ruc1JlY29yZFNldENvbXBhcmUNCitEbnNSZWNvcmRTZXRDb3B5RXgNCitEbnNSZWNvcmRTZXREZXRhY2gNCitEbnNSZWNvcmRTdHJpbmdGb3JUeXBlDQorRG5zUmVjb3JkU3RyaW5nRm9yV3JpdGFibGVUeXBlDQorRG5zUmVjb3JkVHlwZUZvck5hbWUNCitEbnNSZWdpc3RlckNsdXN0ZXJBZGRyZXNzDQorRG5zUmVsZWFzZUNvbnRleHRIYW5kbGUNCitEbnNSZW1vdmVSZWdpc3RyYXRpb25zDQorRG5zUmVwbGFjZVJlY29yZFNldEENCitEbnNSZXBsYWNlUmVjb3JkU2V0VVRGOA0KK0Ruc1JlcGxhY2VSZWNvcmRTZXRXDQorRG5zU2NyZWVuTG9jYWxBZGRyc0ZvclJlZ2lzdHJhdGlvbg0KK0Ruc1NldENvbmZpZ0R3b3JkDQorRG5zU3RyaW5nQ29weUFsbG9jYXRlRXgNCitEbnNVcGRhdGUNCitEbnNVcGRhdGVUZXN0X0ENCitEbnNVcGRhdGVUZXN0X1VURjgNCitEbnNVcGRhdGVUZXN0X1cNCitEbnNWYWxpZGF0ZU5hbWVfQQ0KK0Ruc1ZhbGlkYXRlTmFtZV9VVEY4DQorRG5zVmFsaWRhdGVOYW1lX1cNCitEbnNWYWxpZGF0ZVV0ZjhCeXRlDQorRG5zV3JpdGVRdWVzdGlvblRvQnVmZmVyX1VURjgNCitEbnNXcml0ZVF1ZXN0aW9uVG9CdWZmZXJfVw0KK0Ruc1dyaXRlUmV2ZXJzZU5hbWVTdHJpbmdGb3JJcEFkZHJlc3MNCitEbnNfQWRkUmVjb3Jkc1RvTWVzc2FnZQ0KK0Ruc19BbGxvY2F0ZU1zZ0J1Zg0KK0Ruc19CdWlsZFBhY2tldA0KK0Ruc19DbGVhbnVwV2luc29jaw0KK0Ruc19DbG9zZUNvbm5lY3Rpb24NCitEbnNfQ2xvc2VTb2NrZXQNCitEbnNfQ3JlYXRlTXVsdGljYXN0U29ja2V0DQorRG5zX0NyZWF0ZVNvY2tldA0KK0Ruc19DcmVhdGVTb2NrZXRFeA0KK0Ruc19GaW5kQXV0aG9yaXRhdGl2ZVpvbmVMaWINCitEbnNfR2V0UmFuZG9tWGlkDQorRG5zX0luaXRpYWxpemVNc2dSZW1vdGVTb2NrYWRkcg0KK0Ruc19Jbml0aWFsaXplV2luc29jaw0KK0Ruc19PcGVuVGNwQ29ubmVjdGlvbkFuZFNlbmQNCitEbnNfUGFyc2VNZXNzYWdlDQorRG5zX1BhcnNlUGFja2V0UmVjb3JkDQorRG5zX1BpbmdBZGFwdGVyU2VydmVycw0KK0Ruc19SZWFkUmVjb3JkU3RydWN0dXJlRnJvbVBhY2tldA0KK0Ruc19SZWN2VGNwDQorRG5zX1Jlc2V0TmV0d29ya0luZm8NCitEbnNfU2VuZEFuZFJlY3ZVZHANCitEbnNfU2VuZEV4DQorRG5zX1NldFJlY29yZERhdGFsZW5ndGgNCitEbnNfU2tpcFRvUmVjb3JkDQorRG5zX1VwZGF0ZUxpYg0KK0Ruc19VcGRhdGVMaWJFeA0KK0Ruc19Xcml0ZVF1ZXN0aW9uVG9NZXNzYWdlDQorRG5zX1dyaXRlUmVjb3JkU3RydWN0dXJlVG9QYWNrZXRFeA0KK0dldEN1cnJlbnRUaW1lSW5TZWNvbmRzDQorSG9zdHNGaWxlX0Nsb3NlDQorSG9zdHNGaWxlX09wZW4NCitIb3N0c0ZpbGVfUmVhZExpbmUNCitMb2NhbF9HZXRSZWNvcmRzRm9yTG9jYWxOYW1lDQorTmV0SW5mb19CdWlsZA0KK05ldEluZm9fQ2xlYW4NCitOZXRJbmZvX0NvcHkNCitOZXRJbmZvX0ZyZWUNCitOZXRJbmZvX0lzRm9yVXBkYXRlDQorTmV0SW5mb19SZXNldFNlcnZlclByaW9yaXRpZXMNCitRdWVyeURpcmVjdEV4DQorUXVlcnlfTWFpbg0KK1JlZ19HZXRWYWx1ZUV4DQorUmVnX1JlYWRHbG9iYWxzRXgNCitTZW5kX0FuZFJlY3ZVZHBXaXRoUGFyYW0NCitTZW5kX01lc3NhZ2VQcml2YXRlDQorU2VuZF9PcGVuVGNwQ29ubmVjdGlvbkFuZFNlbmQNCitTb2NrZXRfQ2FjaGVDbGVhbnVwDQorU29ja2V0X0NhY2hlSW5pdA0KK1NvY2tldF9DbGVhbnVwV2luc29jaw0KK1NvY2tldF9DbGVhck1lc3NhZ2VTb2NrZXRzDQorU29ja2V0X0Nsb3NlRXgNCitTb2NrZXRfQ2xvc2VNZXNzYWdlU29ja2V0cw0KK1NvY2tldF9DcmVhdGUNCitTb2NrZXRfQ3JlYXRlTXVsdGljYXN0DQorU29ja2V0X0luaXRXaW5zb2NrDQorVXRpbF9Jc0lwNlJ1bm5pbmcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZG5zcnNsdnIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Ruc3JzbHZyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iZDkxZDdjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2Ruc3JzbHZyLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGRuc3JzbHZyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkbnNyc2x2ci5kbGwNCitFWFBPUlRTDQorU2VydmljZU1haW4NCitTdmNob3N0UHVzaFNlcnZpY2VHbG9iYWxzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2RvY3Byb3AuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RvY3Byb3AuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ0NjZhM2MKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZG9jcHJvcC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBET0NQUk9QLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBET0NQUk9QLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkb2Nwcm9wMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZG9jcHJvcDIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU2Y2QwYWEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZG9jcHJvcDIuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRE9DUFJPUDIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERPQ1BST1AyLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkcGxheS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZHBsYXkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhkMGYwY2EKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZHBsYXkuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFBMQVkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERQTEFZLmRsbA0KK0VYUE9SVFMNCitEaXJlY3RQbGF5Q3JlYXRlDQorRGlyZWN0UGxheUVudW1lcmF0ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkcGxheXguZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RwbGF5eC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTM1YmIxYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkcGxheXguZGVmCkBAIC0wLDAgKzEsMTkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFBMQVlYLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEUExBWVguZGxsDQorRVhQT1JUUw0KK0RpcmVjdFBsYXlDcmVhdGUNCitEaXJlY3RQbGF5RW51bWVyYXRlQQ0KK0RpcmVjdFBsYXlFbnVtZXJhdGVXDQorRGlyZWN0UGxheUxvYmJ5Q3JlYXRlQQ0KK0RpcmVjdFBsYXlMb2JieUNyZWF0ZVcNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGlyZWN0UGxheUVudW1lcmF0ZQ0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitnZHdEUGxheVNQUmVmQ291bnQgREFUQQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkcG1vZGVteC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZHBtb2RlbXguZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFmMTgxNWMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZHBtb2RlbXguZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEUE1PREVNWC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRFBNT0RFTVguZGxsDQorRVhQT1JUUw0KK1NQSW5pdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkcG5hZGRyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkcG5hZGRyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMmM4NTNkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2RwbmFkZHIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBkcG5hZGRyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkcG5hZGRyLmRsbA0KK0VYUE9SVFMNCitEaXJlY3RQbGF5OEFkZHJlc3NDcmVhdGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZHBuZXQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RwbmV0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MzRlYTFjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2RwbmV0LmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERQTmV0LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEUE5ldC5kbGwNCitFWFBPUlRTDQorRGlyZWN0UGxheThDcmVhdGUNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkcG5ocGFzdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZHBuaHBhc3QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFhMDlkODUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZHBuaHBhc3QuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFBOSFBBU1QuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERQTkhQQVNULmRsbA0KK0VYUE9SVFMNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkcG5odXBucC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZHBuaHVwbnAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVlN2I0N2EKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZHBuaHVwbnAuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFBOSFVQTlAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERQTkhVUE5QLmRsbA0KK0VYUE9SVFMNCitEaXJlY3RQbGF5TkFUSGVscENyZWF0ZQ0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2RwbmxvYmJ5LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkcG5sb2JieS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWU3ZTA1YgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkcG5sb2JieS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERQTkxvYmJ5LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEUE5Mb2JieS5kbGwNCitFWFBPUlRTDQorRGlyZWN0UGxheThMb2JieUNyZWF0ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkcHZhY20uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RwdmFjbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWY0OGVkMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkcHZhY20uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFBWQUNNLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEUFZBQ00uZGxsDQorRVhQT1JUUw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2Rwdm9pY2UuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rwdm9pY2UuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQwYjgzZTAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZHB2b2ljZS5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEUFZPSUNFLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEUFZPSUNFLmRsbA0KK0VYUE9SVFMNCitEaXJlY3RQbGF5Vm9pY2VDcmVhdGUNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkcHZ2b3guZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RwdnZveC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTVmMGRkNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkcHZ2b3guZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFBWVk9YLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEUFZWT1guZGxsDQorRVhQT1JUUw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2Rwd3NvY2t4LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkcHdzb2NreC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzEyNGRmMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkcHdzb2NreC5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEUFdTT0NLWC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRFBXU09DS1guZGxsDQorRVhQT1JUUw0KK1NQSW5pdA0KK0RQV1NfR2V0RW51bVBvcnQNCitEUFdTX0J1aWxkSVBNZXNzYWdlSGVhZGVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2RybWNsaWVuLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkcm1jbGllbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWU0NjA4ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkcm1jbGllbi5kZWYKQEAgLTAsMCArMSw1MyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEUk1DbGllbi5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRFJNQ2xpZW4uRExMDQorRVhQT1JUUw0KK0RsbE1haW4NCitDYW5EZWNyeXB0DQorRGVjcnlwdA0KK1JlcXVlc3RMaWNlbnNlDQorUHJvY2Vzc1Jlc3BvbnNlDQorQmluZA0KK0tleUV4Y2hhbmdlDQorR2V0VmVyc2lvbg0KK0NhbkRlY3J5cHRFeA0KK0JpbmRFeA0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEUk1MaXRlQ3J5cHRvOjpDRFJNTGl0ZUNyeXB0byh2b2lkKQ0KKz8/MENEUk1MaXRlQ3J5cHRvQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRFJNTGl0ZUNyeXB0bzo6fkNEUk1MaXRlQ3J5cHRvKHZvaWQpDQorPz8xQ0RSTUxpdGVDcnlwdG9AQFFBRUBYWg0KK1NldEFwcFNlYw0KK1NldExpY2Vuc2VTdG9yZQ0KK0dldFBNTGljZW5zZUZpbGVOYW1lDQorR2V0UE1MaWNlbnNlU2l6ZQ0KK0NyZWF0ZVBNTGljZW5zZQ0KK0dlbmVyYXRlTmV3TGljZW5zZQ0KK0VuY3J5cHQNCitJbml0QXBwQ2VydHMNCitRdWVyeVhmZXJUb1BNDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRFJNTGl0ZUNyeXB0bzo6QmFja3VwTGljZW5zZXModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCAqLHN0cnVjdCBJVW5rbm93biAqLGludCAqLHZvaWQgKikNCis/QmFja3VwTGljZW5zZXNAQ0RSTUxpdGVDcnlwdG9AQFFBRUpLUEFHUEFVSVVua25vd25AQFBBSFBBWEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRFJNTGl0ZUNyeXB0bzo6Q3JlYXRlUE1MaWNlbnNlRm9ySkQoY2hhciBjb25zdCAqLHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nLHN0cnVjdCBQTUxJQ0VOU0UgKix1bnNpZ25lZCBjaGFyICopDQorP0NyZWF0ZVBNTGljZW5zZUZvckpEQENEUk1MaXRlQ3J5cHRvQEBRQUVKUEJEUEFFS1BBVVBNTElDRU5TRUBAMUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRFJNTGl0ZUNyeXB0bzo6RW5jcnlwdEZhc3QoY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGNoYXIgKikNCis/RW5jcnlwdEZhc3RAQ0RSTUxpdGVDcnlwdG9AQFFBRUpQQkRLUEFFMUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRFJNTGl0ZUNyeXB0bzo6RW5jcnlwdEluZGlyZWN0RmFzdChjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgY2hhciAqKQ0KKz9FbmNyeXB0SW5kaXJlY3RGYXN0QENEUk1MaXRlQ3J5cHRvQEBRQUVKUEJES1BBRTFAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0RSTUxpdGVDcnlwdG86OkdlbmVyYXRlTmV3TGljZW5zZUV4KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBjaGFyICosY2hhciAqICosY2hhciAqICosdW5zaWduZWQgY2hhciAqKQ0KKz9HZW5lcmF0ZU5ld0xpY2Vuc2VFeEBDRFJNTGl0ZUNyeXB0b0BAUUFFSktQQUUwMFBBUEFEMTBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0RSTUxpdGVDcnlwdG86OkdldExpY2Vuc2VzKGNoYXIgY29uc3QgKixzdHJ1Y3QgUE1MSUNFTlNFICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcsdm9pZCAqLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBjaGFyICopDQorP0dldExpY2Vuc2VzQENEUk1MaXRlQ3J5cHRvQEBRQUVKUEJEUEFVUE1MSUNFTlNFQEBQQUtLUEFYMlBBRUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRFJNTGl0ZUNyeXB0bzo6R2V0UHVibGljS2V5KHN0cnVjdCBQS0NFUlQgKikNCis/R2V0UHVibGljS2V5QENEUk1MaXRlQ3J5cHRvQEBRQUVKUEFVUEtDRVJUQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0RSTUxpdGVDcnlwdG86OlF1ZXJ5WGZlclRvSkQoY2hhciBjb25zdCAqLHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgKikNCis/UXVlcnlYZmVyVG9KREBDRFJNTGl0ZUNyeXB0b0BAUUFFSlBCRFBBRUsxQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENEUk1MaXRlQ3J5cHRvOjpRdWVyeVhmZXJUb1BNRXgoY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBjaGFyICopDQorP1F1ZXJ5WGZlclRvUE1FeEBDRFJNTGl0ZUNyeXB0b0BAUUFFSlBCREtQQUtQQUVLMksxMkBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRFJNTGl0ZUNyeXB0bzo6UmVzdG9yZUxpY2Vuc2VzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIHNob3J0ICosc3RydWN0IElVbmtub3duICosaW50ICosdm9pZCAqKQ0KKz9SZXN0b3JlTGljZW5zZXNAQ0RSTUxpdGVDcnlwdG9AQFFBRUpLUEFFUEFHUEFVSVVua25vd25AQFBBSFBBWEBaDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2RybXN0b3IuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RybXN0b3IuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg0NmQ5NzgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZHJtc3Rvci5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBkcm1zdG9yLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkcm1zdG9yLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkcm12MmNsdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZHJtdjJjbHQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVkNGUxZTAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZHJtdjJjbHQuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZHJtdjJjbHRfbm9pbnQzLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkcm12MmNsdF9ub2ludDMuRExMDQorRVhQT1JUUw0KK0NyZWF0ZURSTVJpZ2h0c01hbmFnZXINCitMYXVuY2hVUkwNCitNYWtlRXNjYXBlZFVSTA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkcnByb3YuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RycHJvdi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDgyYWYyMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkcnByb3YuZGVmCkBAIC0wLDAgKzEsMTkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZHJwcm92LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkcnByb3YuZGxsDQorRVhQT1JUUw0KK05QQWRkQ29ubmVjdGlvbg0KK05QQWRkQ29ubmVjdGlvbjMNCitOUENhbmNlbENvbm5lY3Rpb24NCitOUENsb3NlRW51bQ0KK05QRW51bVJlc291cmNlDQorTlBHZXRDYXBzDQorTlBHZXRDb25uZWN0aW9uDQorTlBHZXRSZXNvdXJjZUluZm9ybWF0aW9uDQorTlBHZXRSZXNvdXJjZVBhcmVudA0KK05QR2V0VW5pdmVyc2FsTmFtZQ0KK05QT3BlbkVudW0NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZHMzMmd0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkczMyZ3QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZhMGM3MGIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZHMzMmd0LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFMzMkdULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEUzMyR1QuZGxsDQorRVhQT1JUUw0KK0Rpc3BhdGNoDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2RzYXV0aC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZHNhdXRoLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNGU1NTlhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2RzYXV0aC5kZWYKQEAgLTAsMCArMSwzMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEU0FVVEguZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERTQVVUSC5kbGwNCitFWFBPUlRTDQorRGhjcEFkZFNlcnZlckRTDQorRGhjcERlbGV0ZVNlcnZlckRTDQorRGhjcERzQWRkU2VydmVyDQorRGhjcERzQ2xlYW51cERTDQorRGhjcERzRGVsU2VydmVyDQorRGhjcERzRW51bVNlcnZlcnMNCitEaGNwRHNHZXRBdHRyaWJzDQorRGhjcERzR2V0TGlzdHMNCitEaGNwRHNHZXRSb290DQorRGhjcERzSW5pdERTDQorRGhjcERzU2V0TGlzdHMNCitEaGNwRHNWYWxpZGF0ZVNlcnZpY2UNCitEaGNwRW51bVNlcnZlcnNEUw0KK1N0b3JlQmVnaW5TZWFyY2gNCitTdG9yZUNsZWFudXBIYW5kbGUNCitTdG9yZUNvbGxlY3RBdHRyaWJ1dGVzDQorU3RvcmVDcmVhdGVPYmplY3RWQQ0KK1N0b3JlRGVsZXRlT2JqZWN0DQorU3RvcmVFbmRTZWFyY2gNCitTdG9yZUdldEhhbmRsZQ0KK1N0b3JlSW5pdEhhbmRsZQ0KK1N0b3JlU2VhcmNoR2V0TmV4dA0KK1N0b3JlU2V0U2VhcmNoT25lTGV2ZWwNCitTdG9yZVNldFNlYXJjaFN1YlRyZWUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZHNkbW8uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RzZG1vLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43YzIxYzkyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2RzZG1vLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGRzZG1vLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkc2Rtby5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZHNkbW9wcnAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2RzZG1vcHJwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hOTQ2MWQwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2RzZG1vcHJwLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGRzZG1vcHJwLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkc2Rtb3BycC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZHNrcXVvdGEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rza3F1b3RhLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZTUzMmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rza3F1b3RhLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERTS1FVT1RBLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEU0tRVU9UQS5kbGwNCitFWFBPUlRTDQorUHJvY2Vzc0dyb3VwUG9saWN5DQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZHNrcXVvdWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rza3F1b3VpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZjhiZWFlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rza3F1b3VpLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERTS1FVT1VJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEU0tRVU9VSS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZHNvdW5kLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkc291bmQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNiYTA0MWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZHNvdW5kLmRlZgpAQCAtMCwwICsxLDIwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIERTT1VORC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRFNPVU5ELmRsbA0KK0VYUE9SVFMNCitEaXJlY3RTb3VuZENyZWF0ZQ0KK0RpcmVjdFNvdW5kRW51bWVyYXRlQQ0KK0RpcmVjdFNvdW5kRW51bWVyYXRlVw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGlyZWN0U291bmRDYXB0dXJlQ3JlYXRlDQorRGlyZWN0U291bmRDYXB0dXJlRW51bWVyYXRlQQ0KK0RpcmVjdFNvdW5kQ2FwdHVyZUVudW1lcmF0ZVcNCitHZXREZXZpY2VJRA0KK0RpcmVjdFNvdW5kRnVsbER1cGxleENyZWF0ZQ0KK0RpcmVjdFNvdW5kQ3JlYXRlOA0KK0RpcmVjdFNvdW5kQ2FwdHVyZUNyZWF0ZTgNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZHNvdW5kM2QuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rzb3VuZDNkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMmI1MDliCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rzb3VuZDNkLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFNPVU5EM0QuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERTT1VORDNELmRsbA0KK0VYUE9SVFMNCitDYWZCaXF1YWRDb2VmZnMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZHNwcm9wLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkc3Byb3AuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEyZmRjYzMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZHNwcm9wLmRlZgpAQCAtMCwwICsxLDMxIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGRzcHJvcC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZHNwcm9wLmRsbA0KK0VYUE9SVFMNCitDaGVja0FEc0Vycm9yDQorQ3JhY2tOYW1lDQorRFNQUk9QX0dldEdDU2VhcmNoT25Eb21haW4NCitFcnJNc2cNCitFcnJNc2dQYXJhbQ0KK0ZpbmRTaGVldA0KK01zZ0JveA0KK1JlcG9ydEVycm9yDQorU21hcnRfUEFEU19BVFRSX0lORk9fX0VtcHR5DQorQURzUHJvcENoZWNrSWZXcml0YWJsZQ0KK0FEc1Byb3BDcmVhdGVOb3RpZnlPYmoNCitBRHNQcm9wR2V0SW5pdEluZm8NCitBRHNQcm9wU2VuZEVycm9yTWVzc2FnZQ0KK0FEc1Byb3BTZXRId25kDQorQURzUHJvcFNldEh3bmRXaXRoVGl0bGUNCitBRHNQcm9wU2hvd0Vycm9yRGlhbG9nDQorQnJpbmdTaGVldFRvRm9yZWdyb3VuZA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorSXNTaGVldEFscmVhZHlVcA0KK1Bvc3RBRHNQcm9wU2hlZXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZHNxdWVyeS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZHNxdWVyeS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzk2YzA3ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkc3F1ZXJ5LmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGRzcXVlcnkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGRzcXVlcnkuZGxsDQorRVhQT1JUUw0KK09wZW5TYXZlZERzUXVlcnkNCitPcGVuU2F2ZWREc1F1ZXJ5Vw0KK09wZW5RdWVyeVdpbmRvdw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkc3NlYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZHNzZWMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFkOTM4MWMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZHNzZWMuZGVmCkBAIC0wLDAgKzEsMTQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFNTRUMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERTU0VDLmRsbA0KK0VYUE9SVFMNCitEU0NyZWF0ZUlTZWN1cml0eUluZm9PYmplY3QNCitEU0NyZWF0ZVNlY3VyaXR5UGFnZQ0KK0RTRWRpdFNlY3VyaXR5DQorRFNDcmVhdGVJU2VjdXJpdHlJbmZvT2JqZWN0RXgNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkc3NlbmguZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rzc2VuaC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmU5MmY1NAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkc3NlbmguZGVmCkBAIC0wLDAgKzEsMzUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFNTRU5ILmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEU1NFTkguZGxsDQorRVhQT1JUUw0KK0NQQWNxdWlyZUNvbnRleHQNCitDUENyZWF0ZUhhc2gNCitDUERlY3J5cHQNCitDUERlcml2ZUtleQ0KK0NQRGVzdHJveUhhc2gNCitDUERlc3Ryb3lLZXkNCitDUER1cGxpY2F0ZUhhc2gNCitDUER1cGxpY2F0ZUtleQ0KK0NQRW5jcnlwdA0KK0NQRXhwb3J0S2V5DQorQ1BHZW5LZXkNCitDUEdlblJhbmRvbQ0KK0NQR2V0SGFzaFBhcmFtDQorQ1BHZXRLZXlQYXJhbQ0KK0NQR2V0UHJvdlBhcmFtDQorQ1BHZXRVc2VyS2V5DQorQ1BIYXNoRGF0YQ0KK0NQSGFzaFNlc3Npb25LZXkNCitDUEltcG9ydEtleQ0KK0NQUmVsZWFzZUNvbnRleHQNCitDUFNldEhhc2hQYXJhbQ0KK0NQU2V0S2V5UGFyYW0NCitDUFNldFByb3ZQYXJhbQ0KK0NQU2lnbkhhc2gNCitDUFZlcmlmeVNpZ25hdHVyZQ0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkc3VpZXh0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkc3VpZXh0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNjRkZWY0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2RzdWlleHQuZGVmCkBAIC0wLDAgKzEsMTcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZHN1aWV4dC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZHN1aWV4dC5kbGwNCitFWFBPUlRTDQorRHNCcm93c2VGb3JDb250YWluZXJBDQorRHNCcm93c2VGb3JDb250YWluZXJXDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxJbnN0YWxsDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorRHNHZXRJY29uDQorRHNHZXRGcmllbmRseUNsYXNzTmFtZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkc3dhdmUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Rzd2F2ZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmFhMWRjYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkc3dhdmUuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZHN3YXZlLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkc3dhdmUuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2R1c2VyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkdXNlci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2JmZDQyZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkdXNlci5kZWYKQEAgLTAsMCArMSwxMjAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFVTRVIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERVU0VSLmRsbA0KK0VYUE9SVFMNCitEVXNlckNhc3RIYW5kbGUNCitEVXNlckRlbGV0ZUdhZGdldA0KK0dldFN0ZENvbG9yQnJ1c2hGDQorR2V0U3RkQ29sb3JGDQorR2V0U3RkQ29sb3JQZW5GDQorVXRpbERyYXdPdXRsaW5lUmVjdA0KK0FkZEdhZGdldE1lc3NhZ2VIYW5kbGVyDQorQXR0YWNoV25kUHJvY0ENCitBdHRhY2hXbmRQcm9jVw0KK0F1dG9UcmFjZQ0KK0JlZ2luVHJhbnNpdGlvbg0KK0J1aWxkQW5pbWF0aW9uDQorQnVpbGREcm9wVGFyZ2V0DQorQnVpbGRJbnRlcnBvbGF0aW9uDQorQ3JlYXRlQWN0aW9uDQorQ3JlYXRlR2FkZ2V0DQorQ3JlYXRlVHJhbnNpdGlvbg0KK0RVc2VyQnVpbGRHYWRnZXQNCitEVXNlckNhc3RDbGFzcw0KK0RVc2VyQ2FzdERpcmVjdA0KK0RVc2VyRmluZENsYXNzDQorRFVzZXJHZXRBbHBoYVBSSUQNCitEVXNlckdldEd1dHNEYXRhDQorRFVzZXJHZXRSZWN0UFJJRA0KK0RVc2VyR2V0Um90YXRlUFJJRA0KK0RVc2VyR2V0U2NhbGVQUklEDQorRFVzZXJJbnN0YW5jZU9mDQorRFVzZXJQb3N0RXZlbnQNCitEVXNlclBvc3RNZXRob2QNCitEVXNlclJlZ2lzdGVyR3V0cw0KK0RVc2VyUmVnaXN0ZXJTdHViDQorRFVzZXJSZWdpc3RlclN1cGVyDQorRFVzZXJTZW5kRXZlbnQNCitEVXNlclNlbmRNZXRob2QNCitEVXNlclN0b3BBbmltYXRpb24NCitEZWxldGVIYW5kbGUNCitEZXRhY2hXbmRQcm9jDQorRGxsTWFpbg0KK0RyYXdHYWRnZXRUcmVlDQorRW5kVHJhbnNpdGlvbg0KK0VudW1HYWRnZXRzDQorRmluZEdhZGdldEZyb21Qb2ludA0KK0ZpbmRHYWRnZXRNZXNzYWdlcw0KK0ZpbmRTdGRDb2xvcg0KK0ZpcmVHYWRnZXRNZXNzYWdlcw0KK0ZvcndhcmRHYWRnZXRNZXNzYWdlDQorR2V0QWN0aW9uVGltZXNsaWNlDQorR2V0RGVidWcNCitHZXRHYWRnZXQNCitHZXRHYWRnZXRBbmltYXRpb24NCitHZXRHYWRnZXRCdWZmZXJJbmZvDQorR2V0R2FkZ2V0Q2VudGVyUG9pbnQNCitHZXRHYWRnZXRGb2N1cw0KK0dldEdhZGdldE1lc3NhZ2VGaWx0ZXINCitHZXRHYWRnZXRQcm9wZXJ0eQ0KK0dldEdhZGdldFJlY3QNCitHZXRHYWRnZXRSZ24NCitHZXRHYWRnZXRSb290SW5mbw0KK0dldEdhZGdldFJvdGF0aW9uDQorR2V0R2FkZ2V0U2NhbGUNCitHZXRHYWRnZXRTaXplDQorR2V0R2FkZ2V0U3R5bGUNCitHZXRHYWRnZXRUaWNrZXQNCitHZXRNZXNzYWdlRXhBDQorR2V0TWVzc2FnZUV4Vw0KK0dldFN0ZENvbG9yQnJ1c2hJDQorR2V0U3RkQ29sb3JJDQorR2V0U3RkQ29sb3JOYW1lDQorR2V0U3RkQ29sb3JQZW5JDQorR2V0U3RkUGFsZXR0ZQ0KK0dldFRyYW5zaXRpb25JbnRlcmZhY2UNCitJbml0R2FkZ2V0Q29tcG9uZW50DQorSW5pdEdhZGdldHMNCitJbnZhbGlkYXRlR2FkZ2V0DQorSXNHYWRnZXRQYXJlbnRDaGFpblN0eWxlDQorSXNJbnNpZGVDb250ZXh0DQorSXNTdGFydERlbGV0ZQ0KK0xvb2t1cEdhZGdldFRpY2tldA0KK01hcEdhZGdldFBvaW50cw0KK1BlZWtNZXNzYWdlRXhBDQorUGVla01lc3NhZ2VFeFcNCitQbGF5VHJhbnNpdGlvbg0KK1ByaW50VHJhbnNpdGlvbg0KK1JlZ2lzdGVyR2FkZ2V0TWVzc2FnZQ0KK1JlZ2lzdGVyR2FkZ2V0TWVzc2FnZVN0cmluZw0KK1JlZ2lzdGVyR2FkZ2V0UHJvcGVydHkNCitSZW1vdmVHYWRnZXRNZXNzYWdlSGFuZGxlcg0KK1JlbW92ZUdhZGdldFByb3BlcnR5DQorU2V0QWN0aW9uVGltZXNsaWNlDQorU2V0R2FkZ2V0QnVmZmVySW5mbw0KK1NldEdhZGdldENlbnRlclBvaW50DQorU2V0R2FkZ2V0RmlsbEYNCitTZXRHYWRnZXRGaWxsSQ0KK1NldEdhZGdldEZvY3VzDQorU2V0R2FkZ2V0TWVzc2FnZUZpbHRlcg0KK1NldEdhZGdldE9yZGVyDQorU2V0R2FkZ2V0UGFyZW50DQorU2V0R2FkZ2V0UHJvcGVydHkNCitTZXRHYWRnZXRSZWN0DQorU2V0R2FkZ2V0Um9vdEluZm8NCitTZXRHYWRnZXRSb3RhdGlvbg0KK1NldEdhZGdldFNjYWxlDQorU2V0R2FkZ2V0U3R5bGUNCitVbmluaXRHYWRnZXRDb21wb25lbnQNCitVbnJlZ2lzdGVyR2FkZ2V0TWVzc2FnZQ0KK1VucmVnaXN0ZXJHYWRnZXRNZXNzYWdlU3RyaW5nDQorVW5yZWdpc3RlckdhZGdldFByb3BlcnR5DQorVXRpbEJ1aWxkRm9udA0KK1V0aWxEcmF3QmxlbmRSZWN0DQorVXRpbEdldENvbG9yDQorVXRpbFNldEJhY2tncm91bmQNCitXYWl0TWVzc2FnZUV4DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2R4N3ZiLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkeDd2Yi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTgzMWY2MgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkeDd2Yi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEWDdWQi5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRFg3VkIuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2R4OHZiLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkeDh2Yi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWVmM2RjMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkeDh2Yi5kZWYKQEAgLTAsMCArMSwxNDcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRFg4VkIuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIERYOFZCLkRMTA0KK0VYUE9SVFMNCitWQl9EM0RYVmVjMkRvdA0KK1ZCX0QzRFhWZWMyQ0NXDQorVkJfRDNEWFZlYzJBZGQNCitWQl9EM0RYVmVjMlN1YnRyYWN0DQorVkJfRDNEWFZlYzJNaW5pbWl6ZQ0KK1ZCX0QzRFhWZWMyTWF4aW1pemUNCitWQl9EM0RYVmVjMlNjYWxlDQorVkJfRDNEWFZlYzJMZXJwDQorVkJfRDNEWFZlYzJOb3JtYWxpemUNCitWQl9EM0RYVmVjMkhlcm1pdGUNCitWQl9EM0RYVmVjMkJhcnlDZW50cmljDQorVkJfRDNEWFZlYzJUcmFuc2Zvcm0NCitWQl9EM0RYVmVjMlRyYW5zZm9ybUNvb3JkDQorVkJfRDNEWFZlYzJUcmFuc2Zvcm1Ob3JtYWwNCitWQl9EM0RYVmVjM0xlbmd0aA0KK1ZCX0QzRFhWZWMzTGVuZ3RoU3ENCitWQl9EM0RYVmVjM0RvdA0KK1ZCX0QzRFhWZWMzQ3Jvc3MNCitWQl9EM0RYVmVjM0FkZA0KK1ZCX0QzRFhWZWMzU3VidHJhY3QNCitWQl9EM0RYVmVjM01pbmltaXplDQorVkJfRDNEWFZlYzNNYXhpbWl6ZQ0KK1ZCX0QzRFhWZWMzU2NhbGUNCitWQl9EM0RYVmVjM0xlcnANCitWQl9EM0RYVmVjM05vcm1hbGl6ZQ0KK1ZCX0QzRFhWZWMzSGVybWl0ZQ0KK1ZCX0QzRFhWZWMzQmFyeUNlbnRyaWMNCitWQl9EM0RYVmVjM1RyYW5zZm9ybQ0KK1ZCX0QzRFhWZWMzVHJhbnNmb3JtQ29vcmQNCitWQl9EM0RYVmVjM1RyYW5zZm9ybU5vcm1hbA0KK1ZCX0QzRFhWZWM0TGVuZ3RoDQorVkJfRDNEWFZlYzRMZW5ndGhTcQ0KK1ZCX0QzRFhWZWM0RG90DQorVkJfRDNEWFZlYzRBZGQNCitWQl9EM0RYVmVjNFN1YnRyYWN0DQorVkJfRDNEWFZlYzRNaW5pbWl6ZQ0KK1ZCX0QzRFhWZWM0TWF4aW1pemUNCitWQl9EM0RYVmVjNFNjYWxlDQorVkJfRDNEWFZlYzRMZXJwDQorVkJfRDNEWFZlYzRDcm9zcw0KK1ZCX0QzRFhWZWM0Tm9ybWFsaXplDQorVkJfRDNEWFZlYzRIZXJtaXRlDQorVkJfRDNEWFZlYzRCYXJ5Q2VudHJpYw0KK1ZCX0QzRFhWZWM0VHJhbnNmb3JtDQorVkJfRDNEWE1hdHJpeElkZW50aXR5DQorVkJfRDNEWE1hdHJpeElzSWRlbnRpdHkNCitWQl9EM0RYTWF0cml4ZkRldGVybWluYW50DQorVkJfRDNEWE1hdHJpeE11bHRpcGx5DQorVkJfRDNEWE1hdHJpeFRyYW5zcG9zZQ0KK1ZCX0QzRFhNYXRyaXhJbnZlcnNlDQorVkJfRDNEWE1hdHJpeFNjYWxpbmcNCitWQl9EM0RYTWF0cml4VHJhbnNsYXRpb24NCitWQl9EM0RYTWF0cml4Um90YXRpb25YDQorVkJfRDNEWE1hdHJpeFJvdGF0aW9uWQ0KK1ZCX0QzRFhNYXRyaXhSb3RhdGlvbloNCitWQl9EM0RYTWF0cml4Um90YXRpb25BeGlzDQorVkJfRDNEWE1hdHJpeFJvdGF0aW9uUXVhdGVybmlvbg0KK1ZCX0QzRFhNYXRyaXhSb3RhdGlvbllhd1BpdGNoUm9sbA0KK1ZCX0QzRFhNYXRyaXhUcmFuc2Zvcm1hdGlvbg0KK1ZCX0QzRFhNYXRyaXhBZmZpbmVUcmFuc2Zvcm1hdGlvbg0KK1ZCX0QzRFhNYXRyaXhMb29rQXRSSA0KK1ZCX0QzRFhNYXRyaXhMb29rQXRMSA0KK1ZCX0QzRFhNYXRyaXhQZXJzcGVjdGl2ZVJIDQorVkJfRDNEWE1hdHJpeFBlcnNwZWN0aXZlTEgNCitWQl9EM0RYTWF0cml4UGVyc3BlY3RpdmVGb3ZSSA0KK1ZCX0QzRFhNYXRyaXhQZXJzcGVjdGl2ZUZvdkxIDQorVkJfRDNEWE1hdHJpeFBlcnNwZWN0aXZlT2ZmQ2VudGVyUkgNCitWQl9EM0RYTWF0cml4UGVyc3BlY3RpdmVPZmZDZW50ZXJMSA0KK1ZCX0QzRFhNYXRyaXhPcnRob1JIDQorVkJfRDNEWE1hdHJpeE9ydGhvTEgNCitWQl9EM0RYTWF0cml4T3J0aG9PZmZDZW50ZXJSSA0KK1ZCX0QzRFhNYXRyaXhPcnRob09mZkNlbnRlckxIDQorVkJfRDNEWE1hdHJpeFNoYWRvdw0KK1ZCX0QzRFhNYXRyaXhSZWZsZWN0DQorVkJfRDNEWFF1YXRlcm5pb25MZW5ndGgNCitWQl9EM0RYUXVhdGVybmlvbkxlbmd0aFNxDQorVkJfRDNEWFF1YXRlcm5pb25JZGVudGl0eQ0KK1ZCX0QzRFhRdWF0ZXJuaW9uSXNJZGVudGl0eQ0KK1ZCX0QzRFhRdWF0ZXJuaW9uQ29uanVnYXRlDQorVkJfRDNEWFF1YXRlcm5pb25Ub0F4aXNBbmdsZQ0KK1ZCX0QzRFhRdWF0ZXJuaW9uUm90YXRpb25NYXRyaXgNCitWQl9EM0RYUXVhdGVybmlvblJvdGF0aW9uQXhpcw0KK1ZCX0QzRFhRdWF0ZXJuaW9uUm90YXRpb25ZYXdQaXRjaFJvbGwNCitWQl9EM0RYUXVhdGVybmlvbk11bHRpcGx5DQorVkJfRDNEWFF1YXRlcm5pb25Ob3JtYWxpemUNCitWQl9EM0RYUXVhdGVybmlvbkludmVyc2UNCitWQl9EM0RYUXVhdGVybmlvbkxuDQorVkJfRDNEWFF1YXRlcm5pb25FeHANCitWQl9EM0RYUXVhdGVybmlvblNsZXJwDQorVkJfRDNEWFF1YXRlcm5pb25TcXVhZA0KK1ZCX0QzRFhRdWF0ZXJuaW9uQmFyeUNlbnRyaWMNCitWQl9EM0RYUGxhbmVEb3QNCitWQl9EM0RYUGxhbmVEb3RDb29yZA0KK1ZCX0QzRFhQbGFuZURvdE5vcm1hbA0KK1ZCX0QzRFhQbGFuZU5vcm1hbGl6ZQ0KK1ZCX0QzRFhQbGFuZUludGVyc2VjdExpbmUNCitWQl9EM0RYUGxhbmVGcm9tUG9pbnROb3JtYWwNCitWQl9EM0RYUGxhbmVGcm9tUG9pbnRzDQorVkJfRDNEWFBsYW5lVHJhbnNmb3JtDQorVkJfRDNEWENvbG9yTmVnYXRpdmUNCitWQl9EM0RYQ29sb3JBZGQNCitWQl9EM0RYQ29sb3JTdWJ0cmFjdA0KK1ZCX0QzRFhDb2xvclNjYWxlDQorVkJfRDNEWENvbG9yTW9kdWxhdGUNCitWQl9EM0RYQ29sb3JMZXJwDQorVkJfRDNEWENvbG9yQWRqdXN0U2F0dXJhdGlvbg0KK1ZCX0QzRFhDb2xvckFkanVzdENvbnRyYXN0DQorVkJfRDNEWFZlYzJMZW5ndGgNCitWQl9EM0RYVmVjMkxlbmd0aFNxDQorRDNEVmVydGV4QnVmZmVyOFNldERhdGENCitEM0RWZXJ0ZXhCdWZmZXI4R2V0RGF0YQ0KK0QzREluZGV4QnVmZmVyOFNldERhdGENCitEM0RJbmRleEJ1ZmZlcjhHZXREYXRhDQorRFhMb2NrQXJyYXk4DQorRFhVbmxvY2tBcnJheTgNCitWQl9OZXdCdWZmZXINCitWQl9BZGREYXRhVG9CdWZmZXINCitWQl9BZGRTdHJpbmdUb0J1ZmZlcg0KK1ZCX0dldERhdGFGcm9tQnVmZmVyDQorVkJfR2V0U3RyaW5nRnJvbUJ1ZmZlcg0KK1ZCX0QzRFhWZWMyQ2F0bXVsbFJvbQ0KK1ZCX0QzRFhWZWMzQ2F0bXVsbFJvbQ0KK1ZCX0QzRFhWZWM0Q2F0bXVsbFJvbQ0KK1ZCX0QzRFhWZWMzUHJvamVjdA0KK1ZCX0QzRFhWZWMzVW5wcm9qZWN0DQorVkJfRDNEQ29sb3JSR0JBDQorVkJfRDNEQ29sb3JBUkdCDQorVkJfRDNEQ29sb3JYUkdCDQorVkJfRDNEQ29sb3JNYWtlDQorVkJfRDNEWFF1YXRlcm5pb25Eb3QNCitEM0RYTWVzaFZlcnRleEJ1ZmZlcjhTZXREYXRhDQorRDNEWE1lc2hWZXJ0ZXhCdWZmZXI4R2V0RGF0YQ0KK0QzRFhNZXNoSW5kZXhCdWZmZXI4U2V0RGF0YQ0KK0QzRFhNZXNoSW5kZXhCdWZmZXI4R2V0RGF0YQ0KK0RYQ29weU1lbW9yeQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2R4ZGlhZ24uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2R4ZGlhZ24uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFhMmE3NzgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZHhkaWFnbi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBEeERpYWduLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBEeERpYWduLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkeG1hc2YuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2R4bWFzZi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDM0YzA3OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkeG1hc2YuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTlNETEwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5TRExMLmRsbA0KK0VYUE9SVFMNCitVdGlsTG9hZEltYWdlDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZHh0bXNmdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZHh0bXNmdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmYxZjAwMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dkeHRtc2Z0LmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGR4dG1zZnQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGR4dG1zZnQuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEVudW1DbGFzc09iamVjdHMNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dkeHRyYW5zLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dkeHRyYW5zLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iN2JkMjQxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2R4dHJhbnMuZGVmCkBAIC0wLDAgKzEsMjUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZHh0cmFucy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZHh0cmFucy5kbGwNCitFWFBPUlRTDQorOyB2b2lkIF9fc3RkY2FsbCBEWENvbnN0T3ZlckFycmF5KGNsYXNzIERYUE1TQU1QTEUgKixjbGFzcyBEWFBNU0FNUExFIGNvbnN0ICYsdW5zaWduZWQgbG9uZykNCis/RFhDb25zdE92ZXJBcnJheUBAWUdYUEFWRFhQTVNBTVBMRUBAQUJWMUBLQFoNCis7IHZvaWQgX19zdGRjYWxsIERYQ29uc3RVbmRlckFycmF5KGNsYXNzIERYUE1TQU1QTEUgKixjbGFzcyBEWFBNU0FNUExFIGNvbnN0ICYsdW5zaWduZWQgbG9uZykNCis/RFhDb25zdFVuZGVyQXJyYXlAQFlHWFBBVkRYUE1TQU1QTEVAQEFCVjFAS0BaDQorOyB2b2lkIF9fc3RkY2FsbCBEWERpdGhlckFycmF5KHN0cnVjdCBEWERJVEhFUkRFU0MgY29uc3QgKikNCis/RFhEaXRoZXJBcnJheUBAWUdYUEJVRFhESVRIRVJERVNDQEBAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgRFhMaW5lYXJJbnRlcnBvbGF0ZUFycmF5KGNsYXNzIERYQkFTRVNBTVBMRSBjb25zdCAqLHN0cnVjdCBEWExJTUFQSU5GTyAqLGNsYXNzIERYQkFTRVNBTVBMRSAqLHVuc2lnbmVkIGxvbmcpDQorP0RYTGluZWFySW50ZXJwb2xhdGVBcnJheUBAWUdYUEJWRFhCQVNFU0FNUExFQEBQQVVEWExJTUFQSU5GT0BAUEFWMUBLQFoNCis7IHZvaWQgX19zdGRjYWxsIERYT3ZlckFycmF5KGNsYXNzIERYUE1TQU1QTEUgKixjbGFzcyBEWFBNU0FNUExFIGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/RFhPdmVyQXJyYXlAQFlHWFBBVkRYUE1TQU1QTEVAQFBCVjFAS0BaDQorOyB2b2lkIF9fc3RkY2FsbCBEWE92ZXJBcnJheU1NWChjbGFzcyBEWFBNU0FNUExFICosY2xhc3MgRFhQTVNBTVBMRSBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0RYT3ZlckFycmF5TU1YQEBZR1hQQVZEWFBNU0FNUExFQEBQQlYxQEtAWg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEVudW1DbGFzc09iamVjdHMNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dlYmNoZWNrLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dlYmNoZWNrLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNzdiNDhlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2ViY2hlY2suZGVmCkBAIC0wLDAgKzEsMTQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgV2ViQ2hlY2suZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFdlYkNoZWNrLmRsbA0KK0VYUE9SVFMNCitYTUxTY2hlZHVsZUVsZW1lbnRUb1Rhc2tUcmlnZ2VyDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxJbnN0YWxsDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2ViY2xudC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZWJjbG50LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44N2RmNTc1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2ViY2xudC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB3ZWJjbG50LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSB3ZWJjbG50LmRsbA0KK0VYUE9SVFMNCitEYXZDbG9zZQ0KK0RhdkluaXQNCitTZXJ2aWNlTWFpbg0KK1N2Y2hvc3RQdXNoU2VydmljZUdsb2JhbHMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZWJoaXRzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dlYmhpdHMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc4NTNlYzcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZWJoaXRzLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdFQkhJVFMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFdFQkhJVFMuZGxsDQorRVhQT1JUUw0KK0dldEV4dGVuc2lvblZlcnNpb24NCitIdHRwRXh0ZW5zaW9uUHJvYw0KK1Rlcm1pbmF0ZUV4dGVuc2lvbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dlYnZ3LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dlYnZ3LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MjJjYjQwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2VidncuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgd2VidncuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHdlYnZ3LmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbEluc3RhbGwNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZWRiNTAwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dlZGI1MDAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM2YmFmM2EKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZWRiNTAwLmRlZgpAQCAtMCwwICsxLDg3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEVEQi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRURCLmRsbA0KK0VYUE9SVFMNCitKZXRBZGRDb2x1bW5AMjgNCitKZXRBdHRhY2hEYXRhYmFzZUAxMg0KK0pldEJhY2t1cEAxMg0KK0pldEJlZ2luRXh0ZXJuYWxCYWNrdXBANA0KK0pldEJlZ2luU2Vzc2lvbkAxNg0KK0pldEJlZ2luVHJhbnNhY3Rpb25ANA0KK0pldENsb3NlRGF0YWJhc2VAMTINCitKZXRDbG9zZUZpbGVANA0KK0pldENsb3NlVGFibGVAOA0KK0pldENvbW1pdFRyYW5zYWN0aW9uQDgNCitKZXRDb21wYWN0QDI0DQorSmV0Q29tcHV0ZVN0YXRzQDgNCitKZXRDcmVhdGVEYXRhYmFzZUAyMA0KK0pldENyZWF0ZUluZGV4QDI4DQorSmV0Q3JlYXRlVGFibGVAMjQNCitKZXRDcmVhdGVUYWJsZUNvbHVtbkluZGV4QDEyDQorSmV0REJVdGlsaXRpZXNANA0KK0pldERlbGV0ZUA4DQorSmV0RGVsZXRlQ29sdW1uQDEyDQorSmV0RGVsZXRlSW5kZXhAMTINCitKZXREZWxldGVUYWJsZUAxMg0KK0pldERldGFjaERhdGFiYXNlQDgNCitKZXREdXBDdXJzb3JAMTYNCitKZXREdXBTZXNzaW9uQDgNCitKZXRFbmRFeHRlcm5hbEJhY2t1cEAwDQorSmV0RW5kU2Vzc2lvbkA4DQorSmV0RXNjcm93VXBkYXRlQDM2DQorSmV0RXh0ZXJuYWxSZXN0b3JlQDMyDQorSmV0R2V0QXR0YWNoSW5mb0AxMg0KK0pldEdldEJvb2ttYXJrQDIwDQorSmV0R2V0Q2hlY2tzdW1AMTINCitKZXRHZXRDb2x1bW5JbmZvQDI4DQorSmV0R2V0Q291bnRlckAxMg0KK0pldEdldEN1cnJlbnRJbmRleEAxNg0KK0pldEdldEN1cnNvckluZm9AMjANCitKZXRHZXREYXRhYmFzZUluZm9AMjANCitKZXRHZXRJbmRleEluZm9AMjgNCitKZXRHZXRMb2dJbmZvQDEyDQorSmV0R2V0T2JqZWN0SW5mb0AzMg0KK0pldEdldE9iamlkRnJvbU5hbWVAMjANCitKZXRHZXRSZWNvcmRQb3NpdGlvbkAxNg0KK0pldEdldFN5c3RlbVBhcmFtZXRlckAyNA0KK0pldEdldFRhYmxlQ29sdW1uSW5mb0AyNA0KK0pldEdldFRhYmxlSW5kZXhJbmZvQDI0DQorSmV0R2V0VGFibGVJbmZvQDIwDQorSmV0R2V0VmVyc2lvbkA4DQorSmV0R290b0Jvb2ttYXJrQDE2DQorSmV0R290b1Bvc2l0aW9uQDEyDQorSmV0SWRsZUA4DQorSmV0SW5kZXhSZWNvcmRDb3VudEAxNg0KK0pldEluaXRANA0KK0pldE1ha2VLZXlAMjANCitKZXRNb3ZlQDE2DQorSmV0T3BlbkRhdGFiYXNlQDIwDQorSmV0T3BlbkZpbGVAMTYNCitKZXRPcGVuVGFibGVAMjgNCitKZXRPcGVuVGVtcFRhYmxlMkAyOA0KK0pldE9wZW5UZW1wVGFibGVAMjQNCitKZXRQcmVwYXJlVXBkYXRlQDEyDQorSmV0UmVhZEZpbGVAMTYNCitKZXRSZXNldENvdW50ZXJAOA0KK0pldFJlc3RvcmUyQDEyDQorSmV0UmVzdG9yZUA4DQorSmV0UmV0cmlldmVDb2x1bW5AMzINCitKZXRSZXRyaWV2ZUNvbHVtbnNAMTYNCitKZXRSZXRyaWV2ZUtleUAyNA0KK0pldFJvbGxiYWNrQDgNCitKZXRTZWVrQDEyDQorSmV0U2V0Q29sdW1uQDI4DQorSmV0U2V0Q29sdW1uc0AxNg0KK0pldFNldEN1cnJlbnRJbmRleDJAMTYNCitKZXRTZXRDdXJyZW50SW5kZXgzQDIwDQorSmV0U2V0Q3VycmVudEluZGV4QDEyDQorSmV0U2V0SW5kZXhSYW5nZUAxMg0KK0pldFNldFN5c3RlbVBhcmFtZXRlckAyMA0KK0pldFRlcm0yQDgNCitKZXRUZXJtQDQNCitKZXRUcnVuY2F0ZUxvZ0AwDQorSmV0VXBkYXRlQDIwDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2Vmc2FkdS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZWZzYWR1LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZDBiMDVkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2Vmc2FkdS5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBFRlNBRFUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEVGU0FEVS5kbGwNCitFWFBPUlRTDQorQWRkVXNlclRvT2JqZWN0Vw0KK0JhY2tDdXJyZW50RWZzQ2VydA0KK0Vmc0RldGFpbA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dlbHMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Vscy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmRhZDg5MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dlbHMuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZWxzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBlbHMuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2VuY2FwaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZW5jYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NDNiOTljCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2VuY2FwaS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBlbmNhcGkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGVuY2FwaS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZW5jZGVjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dlbmNkZWMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVjZmVhOTQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZW5jZGVjLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGVuY2RlYy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZW5jZGVjLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dlcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZXMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJhMTdkNzkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZXMuZGVmCkBAIC0wLDAgKzEsMTggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRVMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEVTLmRsbA0KK0VYUE9SVFMNCitOb3RpZnlMb2dvZmZVc2VyDQorTm90aWZ5TG9nb25Vc2VyDQorU2VydmljZU1haW4NCitMQ0VDb250cm9sU2VydmVyDQorUmVnaXN0ZXJUaGVFdmVudFNlcnZpY2VEdXJpbmdTZXR1cA0KK1JlZ2lzdGVyVGhlRXZlbnRTZXJ2aWNlQWZ0ZXJTZXR1cA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2VzZW50LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dlc2VudC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWUzNTdiZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dlc2VudC5kZWYKQEAgLTAsMCArMSwzMDAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRVNFTlQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEVTRU5ULmRsbA0KK0VYUE9SVFMNCitKZXRBZGRDb2x1bW5AMjgNCitKZXRBdHRhY2hEYXRhYmFzZTJAMTYNCitKZXRBdHRhY2hEYXRhYmFzZUAxMg0KK0pldEF0dGFjaERhdGFiYXNlV2l0aFN0cmVhbWluZ0AyNA0KK0pldEJhY2t1cEAxMg0KK0pldEJhY2t1cEluc3RhbmNlQDE2DQorSmV0QmVnaW5FeHRlcm5hbEJhY2t1cEA0DQorSmV0QmVnaW5FeHRlcm5hbEJhY2t1cEluc3RhbmNlQDgNCitKZXRCZWdpblNlc3Npb25AMTYNCitKZXRCZWdpblRyYW5zYWN0aW9uMkA4DQorSmV0QmVnaW5UcmFuc2FjdGlvbkA0DQorSmV0Q2xvc2VEYXRhYmFzZUAxMg0KK0pldENsb3NlRmlsZUA0DQorSmV0Q2xvc2VGaWxlSW5zdGFuY2VAOA0KK0pldENsb3NlVGFibGVAOA0KK0pldENvbW1pdFRyYW5zYWN0aW9uQDgNCitKZXRDb21wYWN0QDI0DQorSmV0Q29tcHV0ZVN0YXRzQDgNCitKZXRDb252ZXJ0RERMQDIwDQorSmV0Q3JlYXRlRGF0YWJhc2UyQDIwDQorSmV0Q3JlYXRlRGF0YWJhc2VAMjANCitKZXRDcmVhdGVEYXRhYmFzZVdpdGhTdHJlYW1pbmdAMjgNCitKZXRDcmVhdGVJbmRleDJAMTYNCitKZXRDcmVhdGVJbmRleEAyOA0KK0pldENyZWF0ZUluc3RhbmNlMkAxNg0KK0pldENyZWF0ZUluc3RhbmNlQDgNCitKZXRDcmVhdGVUYWJsZUAyNA0KK0pldENyZWF0ZVRhYmxlQ29sdW1uSW5kZXgyQDEyDQorSmV0Q3JlYXRlVGFibGVDb2x1bW5JbmRleEAxMg0KK0pldERCVXRpbGl0aWVzQDQNCitKZXREZWZyYWdtZW50MkAyOA0KK0pldERlZnJhZ21lbnRAMjQNCitKZXREZWxldGVAOA0KK0pldERlbGV0ZUNvbHVtbjJAMTYNCitKZXREZWxldGVDb2x1bW5AMTINCitKZXREZWxldGVJbmRleEAxMg0KK0pldERlbGV0ZVRhYmxlQDEyDQorSmV0RGV0YWNoRGF0YWJhc2UyQDEyDQorSmV0RGV0YWNoRGF0YWJhc2VAOA0KK0pldER1cEN1cnNvckAxNg0KK0pldER1cFNlc3Npb25AOA0KK0pldEVuYWJsZU11bHRpSW5zdGFuY2VAMTINCitKZXRFbmRFeHRlcm5hbEJhY2t1cEAwDQorSmV0RW5kRXh0ZXJuYWxCYWNrdXBJbnN0YW5jZTJAOA0KK0pldEVuZEV4dGVybmFsQmFja3VwSW5zdGFuY2VANA0KK0pldEVuZFNlc3Npb25AOA0KK0pldEVudW1lcmF0ZUNvbHVtbnNANDANCitKZXRFc2Nyb3dVcGRhdGVAMzYNCitKZXRFeHRlcm5hbFJlc3RvcmUyQDQwDQorSmV0RXh0ZXJuYWxSZXN0b3JlQDMyDQorSmV0RnJlZUJ1ZmZlckA0DQorSmV0R2V0QXR0YWNoSW5mb0AxMg0KK0pldEdldEF0dGFjaEluZm9JbnN0YW5jZUAxNg0KK0pldEdldEJvb2ttYXJrQDIwDQorSmV0R2V0Q29sdW1uSW5mb0AyOA0KK0pldEdldENvdW50ZXJAMTINCitKZXRHZXRDdXJyZW50SW5kZXhAMTYNCitKZXRHZXRDdXJzb3JJbmZvQDIwDQorSmV0R2V0RGF0YWJhc2VGaWxlSW5mb0AxNg0KK0pldEdldERhdGFiYXNlSW5mb0AyMA0KK0pldEdldEluZGV4SW5mb0AyOA0KK0pldEdldEluc3RhbmNlSW5mb0A4DQorSmV0R2V0TFNAMTYNCitKZXRHZXRMb2NrQDEyDQorSmV0R2V0TG9nSW5mb0AxMg0KK0pldEdldExvZ0luZm9JbnN0YW5jZTJAMjANCitKZXRHZXRMb2dJbmZvSW5zdGFuY2VAMTYNCitKZXRHZXRPYmplY3RJbmZvQDMyDQorSmV0R2V0UmVjb3JkUG9zaXRpb25AMTYNCitKZXRHZXRTZWNvbmRhcnlJbmRleEJvb2ttYXJrQDM2DQorSmV0R2V0U3lzdGVtUGFyYW1ldGVyQDI0DQorSmV0R2V0VGFibGVDb2x1bW5JbmZvQDI0DQorSmV0R2V0VGFibGVJbmRleEluZm9AMjQNCitKZXRHZXRUYWJsZUluZm9AMjANCitKZXRHZXRUcnVuY2F0ZUxvZ0luZm9JbnN0YW5jZUAxNg0KK0pldEdldFZlcnNpb25AOA0KK0pldEdvdG9Cb29rbWFya0AxNg0KK0pldEdvdG9Qb3NpdGlvbkAxMg0KK0pldEdvdG9TZWNvbmRhcnlJbmRleEJvb2ttYXJrQDI4DQorSmV0R3Jvd0RhdGFiYXNlQDE2DQorSmV0SWRsZUA4DQorSmV0SW5kZXhSZWNvcmRDb3VudEAxNg0KK0pldEluaXQyQDgNCitKZXRJbml0M0AxNg0KK0pldEluaXRANA0KK0pldEludGVyc2VjdEluZGV4ZXNAMjANCitKZXRNYWtlS2V5QDIwDQorSmV0TW92ZUAxNg0KK0pldE9TU25hcHNob3RBYm9ydEA4DQorSmV0T1NTbmFwc2hvdEZyZWV6ZUAxNg0KK0pldE9TU25hcHNob3RQcmVwYXJlQDgNCitKZXRPU1NuYXBzaG90VGhhd0A4DQorSmV0T3BlbkRhdGFiYXNlQDIwDQorSmV0T3BlbkZpbGVAMTYNCitKZXRPcGVuRmlsZUluc3RhbmNlQDIwDQorSmV0T3BlbkZpbGVTZWN0aW9uSW5zdGFuY2VAMjgNCitKZXRPcGVuVGFibGVAMjgNCitKZXRPcGVuVGVtcFRhYmxlMkAyOA0KK0pldE9wZW5UZW1wVGFibGUzQDI4DQorSmV0T3BlblRlbXBUYWJsZUAyNA0KK0pldFByZXBhcmVUb0NvbW1pdFRyYW5zYWN0aW9uQDE2DQorSmV0UHJlcGFyZVVwZGF0ZUAxMg0KK0pldFJlYWRGaWxlQDE2DQorSmV0UmVhZEZpbGVJbnN0YW5jZUAyMA0KK0pldFJlZ2lzdGVyQ2FsbGJhY2tAMjQNCitKZXRSZW5hbWVDb2x1bW5AMjANCitKZXRSZW5hbWVUYWJsZUAxNg0KK0pldFJlc2V0Q291bnRlckA4DQorSmV0UmVzZXRTZXNzaW9uQ29udGV4dEA0DQorSmV0UmVzZXRUYWJsZVNlcXVlbnRpYWxAMTINCitKZXRSZXN0b3JlMkAxMg0KK0pldFJlc3RvcmVAOA0KK0pldFJlc3RvcmVJbnN0YW5jZUAxNg0KK0pldFJldHJpZXZlQ29sdW1uQDMyDQorSmV0UmV0cmlldmVDb2x1bW5zQDE2DQorSmV0UmV0cmlldmVLZXlAMjQNCitKZXRSZXRyaWV2ZVRhZ2dlZENvbHVtbkxpc3RAMjgNCitKZXRSb2xsYmFja0A4DQorSmV0U2Vla0AxMg0KK0pldFNldENvbHVtbkAyOA0KK0pldFNldENvbHVtbkRlZmF1bHRWYWx1ZUAyOA0KK0pldFNldENvbHVtbnNAMTYNCitKZXRTZXRDdXJyZW50SW5kZXgyQDE2DQorSmV0U2V0Q3VycmVudEluZGV4QDEyDQorSmV0U2V0RGF0YWJhc2VTaXplQDE2DQorSmV0U2V0SW5kZXhSYW5nZUAxMg0KK0pldFNldExTQDE2DQorSmV0U2V0U2Vzc2lvbkNvbnRleHRAOA0KK0pldFNldFN5c3RlbVBhcmFtZXRlckAyMA0KK0pldFNldFRhYmxlU2VxdWVudGlhbEAxMg0KK0pldFNuYXBzaG90U3RhcnRAMTINCitKZXRTbmFwc2hvdFN0b3BAOA0KK0pldFN0b3BCYWNrdXBAMA0KK0pldFN0b3BCYWNrdXBJbnN0YW5jZUA0DQorSmV0U3RvcFNlcnZpY2VAMA0KK0pldFN0b3BTZXJ2aWNlSW5zdGFuY2VANA0KK0pldFRlcm0yQDgNCitKZXRUZXJtQDQNCitKZXRUcnVuY2F0ZUxvZ0AwDQorSmV0VHJ1bmNhdGVMb2dJbnN0YW5jZUA0DQorSmV0VW5yZWdpc3RlckNhbGxiYWNrQDE2DQorSmV0VXBkYXRlMkAyNA0KK0pldFVwZGF0ZUAyMA0KK0pldFVwZ3JhZGVEYXRhYmFzZUAxNg0KK0pldEFkZENvbHVtbg0KK0pldEF0dGFjaERhdGFiYXNlMg0KK0pldEF0dGFjaERhdGFiYXNlDQorSmV0QXR0YWNoRGF0YWJhc2VXaXRoU3RyZWFtaW5nDQorSmV0QmFja3VwDQorSmV0QmFja3VwSW5zdGFuY2UNCitKZXRCZWdpbkV4dGVybmFsQmFja3VwDQorSmV0QmVnaW5FeHRlcm5hbEJhY2t1cEluc3RhbmNlDQorSmV0QmVnaW5TZXNzaW9uDQorSmV0QmVnaW5UcmFuc2FjdGlvbjINCitKZXRCZWdpblRyYW5zYWN0aW9uDQorSmV0Q2xvc2VEYXRhYmFzZQ0KK0pldENsb3NlRmlsZQ0KK0pldENsb3NlRmlsZUluc3RhbmNlDQorSmV0Q2xvc2VUYWJsZQ0KK0pldENvbW1pdFRyYW5zYWN0aW9uDQorSmV0Q29tcGFjdA0KK0pldENvbXB1dGVTdGF0cw0KK0pldENvbnZlcnREREwNCitKZXRDcmVhdGVEYXRhYmFzZTINCitKZXRDcmVhdGVEYXRhYmFzZQ0KK0pldENyZWF0ZURhdGFiYXNlV2l0aFN0cmVhbWluZw0KK0pldENyZWF0ZUluZGV4Mg0KK0pldENyZWF0ZUluZGV4DQorSmV0Q3JlYXRlSW5zdGFuY2UyDQorSmV0Q3JlYXRlSW5zdGFuY2UNCitKZXRDcmVhdGVUYWJsZQ0KK0pldENyZWF0ZVRhYmxlQ29sdW1uSW5kZXgyDQorSmV0Q3JlYXRlVGFibGVDb2x1bW5JbmRleA0KK0pldERCVXRpbGl0aWVzDQorSmV0RGVmcmFnbWVudDINCitKZXREZWZyYWdtZW50DQorSmV0RGVsZXRlDQorSmV0RGVsZXRlQ29sdW1uMg0KK0pldERlbGV0ZUNvbHVtbg0KK0pldERlbGV0ZUluZGV4DQorSmV0RGVsZXRlVGFibGUNCitKZXREZXRhY2hEYXRhYmFzZTINCitKZXREZXRhY2hEYXRhYmFzZQ0KK0pldER1cEN1cnNvcg0KK0pldER1cFNlc3Npb24NCitKZXRFbmFibGVNdWx0aUluc3RhbmNlDQorSmV0RW5kRXh0ZXJuYWxCYWNrdXANCitKZXRFbmRFeHRlcm5hbEJhY2t1cEluc3RhbmNlMg0KK0pldEVuZEV4dGVybmFsQmFja3VwSW5zdGFuY2UNCitKZXRFbmRTZXNzaW9uDQorSmV0RW51bWVyYXRlQ29sdW1ucw0KK0pldEVzY3Jvd1VwZGF0ZQ0KK0pldEV4dGVybmFsUmVzdG9yZTINCitKZXRFeHRlcm5hbFJlc3RvcmUNCitKZXRGcmVlQnVmZmVyDQorSmV0R2V0QXR0YWNoSW5mbw0KK0pldEdldEF0dGFjaEluZm9JbnN0YW5jZQ0KK0pldEdldEJvb2ttYXJrDQorSmV0R2V0Q29sdW1uSW5mbw0KK0pldEdldENvdW50ZXINCitKZXRHZXRDdXJyZW50SW5kZXgNCitKZXRHZXRDdXJzb3JJbmZvDQorSmV0R2V0RGF0YWJhc2VGaWxlSW5mbw0KK0pldEdldERhdGFiYXNlSW5mbw0KK0pldEdldEluZGV4SW5mbw0KK0pldEdldEluc3RhbmNlSW5mbw0KK0pldEdldExTDQorSmV0R2V0TG9jaw0KK0pldEdldExvZ0luZm8NCitKZXRHZXRMb2dJbmZvSW5zdGFuY2UyDQorSmV0R2V0TG9nSW5mb0luc3RhbmNlDQorSmV0R2V0T2JqZWN0SW5mbw0KK0pldEdldFJlY29yZFBvc2l0aW9uDQorSmV0R2V0U2Vjb25kYXJ5SW5kZXhCb29rbWFyaw0KK0pldEdldFN5c3RlbVBhcmFtZXRlcg0KK0pldEdldFRhYmxlQ29sdW1uSW5mbw0KK0pldEdldFRhYmxlSW5kZXhJbmZvDQorSmV0R2V0VGFibGVJbmZvDQorSmV0R2V0VHJ1bmNhdGVMb2dJbmZvSW5zdGFuY2UNCitKZXRHZXRWZXJzaW9uDQorSmV0R290b0Jvb2ttYXJrDQorSmV0R290b1Bvc2l0aW9uDQorSmV0R290b1NlY29uZGFyeUluZGV4Qm9va21hcmsNCitKZXRHcm93RGF0YWJhc2UNCitKZXRJZGxlDQorSmV0SW5kZXhSZWNvcmRDb3VudA0KK0pldEluaXQyDQorSmV0SW5pdDMNCitKZXRJbml0DQorSmV0SW50ZXJzZWN0SW5kZXhlcw0KK0pldE1ha2VLZXkNCitKZXRNb3ZlDQorSmV0T1NTbmFwc2hvdEFib3J0DQorSmV0T1NTbmFwc2hvdEZyZWV6ZQ0KK0pldE9TU25hcHNob3RQcmVwYXJlDQorSmV0T1NTbmFwc2hvdFRoYXcNCitKZXRPcGVuRGF0YWJhc2UNCitKZXRPcGVuRmlsZQ0KK0pldE9wZW5GaWxlSW5zdGFuY2UNCitKZXRPcGVuRmlsZVNlY3Rpb25JbnN0YW5jZQ0KK0pldE9wZW5UYWJsZQ0KK0pldE9wZW5UZW1wVGFibGUyDQorSmV0T3BlblRlbXBUYWJsZTMNCitKZXRPcGVuVGVtcFRhYmxlDQorSmV0UHJlcGFyZVRvQ29tbWl0VHJhbnNhY3Rpb24NCitKZXRQcmVwYXJlVXBkYXRlDQorSmV0UmVhZEZpbGUNCitKZXRSZWFkRmlsZUluc3RhbmNlDQorSmV0UmVnaXN0ZXJDYWxsYmFjaw0KK0pldFJlbmFtZUNvbHVtbg0KK0pldFJlbmFtZVRhYmxlDQorSmV0UmVzZXRDb3VudGVyDQorSmV0UmVzZXRTZXNzaW9uQ29udGV4dA0KK0pldFJlc2V0VGFibGVTZXF1ZW50aWFsDQorSmV0UmVzdG9yZTINCitKZXRSZXN0b3JlDQorSmV0UmVzdG9yZUluc3RhbmNlDQorSmV0UmV0cmlldmVDb2x1bW4NCitKZXRSZXRyaWV2ZUNvbHVtbnMNCitKZXRSZXRyaWV2ZUtleQ0KK0pldFJldHJpZXZlVGFnZ2VkQ29sdW1uTGlzdA0KK0pldFJvbGxiYWNrDQorSmV0U2Vlaw0KK0pldFNldENvbHVtbg0KK0pldFNldENvbHVtbkRlZmF1bHRWYWx1ZQ0KK0pldFNldENvbHVtbnMNCitKZXRTZXRDdXJyZW50SW5kZXgyDQorSmV0U2V0Q3VycmVudEluZGV4Mw0KK0pldFNldEN1cnJlbnRJbmRleDQNCitKZXRTZXRDdXJyZW50SW5kZXgNCitKZXRTZXREYXRhYmFzZVNpemUNCitKZXRTZXRJbmRleFJhbmdlDQorSmV0U2V0TFMNCitKZXRTZXRTZXNzaW9uQ29udGV4dA0KK0pldFNldFN5c3RlbVBhcmFtZXRlcg0KK0pldFNldFRhYmxlU2VxdWVudGlhbA0KK0pldFNuYXBzaG90U3RhcnQNCitKZXRTbmFwc2hvdFN0b3ANCitKZXRTdG9wQmFja3VwDQorSmV0U3RvcEJhY2t1cEluc3RhbmNlDQorSmV0U3RvcFNlcnZpY2UNCitKZXRTdG9wU2VydmljZUluc3RhbmNlDQorSmV0VGVybTINCitKZXRUZXJtDQorSmV0VHJ1bmNhdGVMb2cNCitKZXRUcnVuY2F0ZUxvZ0luc3RhbmNlDQorSmV0VW5yZWdpc3RlckNhbGxiYWNrDQorSmV0VXBkYXRlMg0KK0pldFVwZGF0ZQ0KK0pldFVwZ3JhZGVEYXRhYmFzZQ0KK2VzZQ0KK2VzZW50DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2VzZW50OTcuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2VzZW50OTcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjllODVhNmIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZXNlbnQ5Ny5kZWYKQEAgLTAsMCArMSwyMDYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRVNFTlQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEVTRU5ULmRsbA0KK0VYUE9SVFMNCitKZXRBZGRDb2x1bW4NCitKZXRBZGRDb2x1bW5AMjgNCitKZXRBdHRhY2hEYXRhYmFzZQ0KK0pldEF0dGFjaERhdGFiYXNlMg0KK0pldEF0dGFjaERhdGFiYXNlMkAxNg0KK0pldEF0dGFjaERhdGFiYXNlQDEyDQorSmV0QmFja3VwDQorSmV0QmFja3VwQDEyDQorSmV0QmVnaW5FeHRlcm5hbEJhY2t1cA0KK0pldEJlZ2luRXh0ZXJuYWxCYWNrdXBANA0KK0pldEJlZ2luU2Vzc2lvbg0KK0pldEJlZ2luU2Vzc2lvbkAxNg0KK0pldEJlZ2luVHJhbnNhY3Rpb24NCitKZXRCZWdpblRyYW5zYWN0aW9uQDQNCitKZXRDbG9zZURhdGFiYXNlDQorSmV0Q2xvc2VEYXRhYmFzZUAxMg0KK0pldENsb3NlRmlsZQ0KK0pldENsb3NlRmlsZUA0DQorSmV0Q2xvc2VUYWJsZQ0KK0pldENsb3NlVGFibGVAOA0KK0pldENvbW1pdFRyYW5zYWN0aW9uDQorSmV0Q29tbWl0VHJhbnNhY3Rpb25AOA0KK0pldENvbXBhY3QNCitKZXRDb21wYWN0QDI0DQorSmV0Q29tcHV0ZVN0YXRzDQorSmV0Q29tcHV0ZVN0YXRzQDgNCitKZXRDb252ZXJ0RERMDQorSmV0Q29udmVydERETEAyMA0KK0pldENyZWF0ZURhdGFiYXNlDQorSmV0Q3JlYXRlRGF0YWJhc2UyDQorSmV0Q3JlYXRlRGF0YWJhc2UyQDIwDQorSmV0Q3JlYXRlRGF0YWJhc2VAMjANCitKZXRDcmVhdGVJbmRleA0KK0pldENyZWF0ZUluZGV4Mg0KK0pldENyZWF0ZUluZGV4MkAxNg0KK0pldENyZWF0ZUluZGV4QDI4DQorSmV0Q3JlYXRlVGFibGUNCitKZXRDcmVhdGVUYWJsZUAyNA0KK0pldENyZWF0ZVRhYmxlQ29sdW1uSW5kZXgNCitKZXRDcmVhdGVUYWJsZUNvbHVtbkluZGV4QDEyDQorSmV0REJVdGlsaXRpZXMNCitKZXREQlV0aWxpdGllc0A0DQorSmV0RGVmcmFnbWVudA0KK0pldERlZnJhZ21lbnRAMjQNCitKZXREZWxldGUNCitKZXREZWxldGVAOA0KK0pldERlbGV0ZUNvbHVtbg0KK0pldERlbGV0ZUNvbHVtbkAxMg0KK0pldERlbGV0ZUluZGV4DQorSmV0RGVsZXRlSW5kZXhAMTINCitKZXREZWxldGVUYWJsZQ0KK0pldERlbGV0ZVRhYmxlQDEyDQorSmV0RGV0YWNoRGF0YWJhc2UNCitKZXREZXRhY2hEYXRhYmFzZUA4DQorSmV0RHVwQ3Vyc29yDQorSmV0RHVwQ3Vyc29yQDE2DQorSmV0RHVwU2Vzc2lvbg0KK0pldER1cFNlc3Npb25AOA0KK0pldEVuZEV4dGVybmFsQmFja3VwDQorSmV0RW5kRXh0ZXJuYWxCYWNrdXBAMA0KK0pldEVuZFNlc3Npb24NCitKZXRFbmRTZXNzaW9uQDgNCitKZXRFc2Nyb3dVcGRhdGUNCitKZXRFc2Nyb3dVcGRhdGVAMzYNCitKZXRFeHRlcm5hbFJlc3RvcmUNCitKZXRFeHRlcm5hbFJlc3RvcmVAMzINCitKZXRHZXRBdHRhY2hJbmZvDQorSmV0R2V0QXR0YWNoSW5mb0AxMg0KK0pldEdldEJvb2ttYXJrDQorSmV0R2V0Qm9va21hcmtAMjANCitKZXRHZXRDaGVja3N1bQ0KK0pldEdldENoZWNrc3VtQDEyDQorSmV0R2V0Q29sdW1uSW5mbw0KK0pldEdldENvbHVtbkluZm9AMjgNCitKZXRHZXRDb3VudGVyDQorSmV0R2V0Q291bnRlckAxMg0KK0pldEdldEN1cnJlbnRJbmRleA0KK0pldEdldEN1cnJlbnRJbmRleEAxNg0KK0pldEdldEN1cnNvckluZm8NCitKZXRHZXRDdXJzb3JJbmZvQDIwDQorSmV0R2V0RGF0YWJhc2VGaWxlSW5mbw0KK0pldEdldERhdGFiYXNlRmlsZUluZm9AMTYNCitKZXRHZXREYXRhYmFzZUluZm8NCitKZXRHZXREYXRhYmFzZUluZm9AMjANCitKZXRHZXRJbmRleEluZm8NCitKZXRHZXRJbmRleEluZm9AMjgNCitKZXRHZXRMb2NrDQorSmV0R2V0TG9ja0AxMg0KK0pldEdldExvZ0luZm8NCitKZXRHZXRMb2dJbmZvQDEyDQorSmV0R2V0T2JqZWN0SW5mbw0KK0pldEdldE9iamVjdEluZm9AMzINCitKZXRHZXRPYmppZEZyb21OYW1lDQorSmV0R2V0T2JqaWRGcm9tTmFtZUAyMA0KK0pldEdldFJlY29yZFBvc2l0aW9uDQorSmV0R2V0UmVjb3JkUG9zaXRpb25AMTYNCitKZXRHZXRTeXN0ZW1QYXJhbWV0ZXINCitKZXRHZXRTeXN0ZW1QYXJhbWV0ZXJAMjQNCitKZXRHZXRUYWJsZUNvbHVtbkluZm8NCitKZXRHZXRUYWJsZUNvbHVtbkluZm9AMjQNCitKZXRHZXRUYWJsZUluZGV4SW5mbw0KK0pldEdldFRhYmxlSW5kZXhJbmZvQDI0DQorSmV0R2V0VGFibGVJbmZvDQorSmV0R2V0VGFibGVJbmZvQDIwDQorSmV0R2V0VmVyc2lvbg0KK0pldEdldFZlcnNpb25AOA0KK0pldEdvdG9Cb29rbWFyaw0KK0pldEdvdG9Cb29rbWFya0AxNg0KK0pldEdvdG9Qb3NpdGlvbg0KK0pldEdvdG9Qb3NpdGlvbkAxMg0KK0pldEdyb3dEYXRhYmFzZQ0KK0pldEdyb3dEYXRhYmFzZUAxNg0KK0pldElkbGUNCitKZXRJZGxlQDgNCitKZXRJbmRleFJlY29yZENvdW50DQorSmV0SW5kZXhSZWNvcmRDb3VudEAxNg0KK0pldEluaXQNCitKZXRJbml0QDQNCitKZXRJbnRlcnNlY3RJbmRleGVzDQorSmV0SW50ZXJzZWN0SW5kZXhlc0AyMA0KK0pldE1ha2VLZXkNCitKZXRNYWtlS2V5QDIwDQorSmV0TW92ZQ0KK0pldE1vdmVAMTYNCitKZXRPcGVuRGF0YWJhc2UNCitKZXRPcGVuRGF0YWJhc2VAMjANCitKZXRPcGVuRmlsZQ0KK0pldE9wZW5GaWxlQDE2DQorSmV0T3BlblRhYmxlDQorSmV0T3BlblRhYmxlQDI4DQorSmV0T3BlblRlbXBUYWJsZQ0KK0pldE9wZW5UZW1wVGFibGUyDQorSmV0T3BlblRlbXBUYWJsZTJAMjgNCitKZXRPcGVuVGVtcFRhYmxlMw0KK0pldE9wZW5UZW1wVGFibGUzQDI4DQorSmV0T3BlblRlbXBUYWJsZUAyNA0KK0pldFByZXBhcmVVcGRhdGUNCitKZXRQcmVwYXJlVXBkYXRlQDEyDQorSmV0UmVhZEZpbGUNCitKZXRSZWFkRmlsZUAxNg0KK0pldFJlbmFtZVRhYmxlDQorSmV0UmVuYW1lVGFibGVAMTYNCitKZXRSZXNldENvdW50ZXINCitKZXRSZXNldENvdW50ZXJAOA0KK0pldFJlc2V0U2Vzc2lvbkNvbnRleHQNCitKZXRSZXNldFNlc3Npb25Db250ZXh0QDQNCitKZXRSZXN0b3JlDQorSmV0UmVzdG9yZTINCitKZXRSZXN0b3JlMkAxMg0KK0pldFJlc3RvcmVAOA0KK0pldFJldHJpZXZlQ29sdW1uDQorSmV0UmV0cmlldmVDb2x1bW5AMzINCitKZXRSZXRyaWV2ZUNvbHVtbnMNCitKZXRSZXRyaWV2ZUNvbHVtbnNAMTYNCitKZXRSZXRyaWV2ZUtleQ0KK0pldFJldHJpZXZlS2V5QDI0DQorSmV0UmV0cmlldmVUYWdnZWRDb2x1bW5MaXN0DQorSmV0UmV0cmlldmVUYWdnZWRDb2x1bW5MaXN0QDI4DQorSmV0Um9sbGJhY2sNCitKZXRSb2xsYmFja0A4DQorSmV0U2Vlaw0KK0pldFNlZWtAMTINCitKZXRTZXRDb2x1bW4NCitKZXRTZXRDb2x1bW5AMjgNCitKZXRTZXRDb2x1bW5EZWZhdWx0VmFsdWUNCitKZXRTZXRDb2x1bW5EZWZhdWx0VmFsdWVAMjgNCitKZXRTZXRDb2x1bW5zDQorSmV0U2V0Q29sdW1uc0AxNg0KK0pldFNldEN1cnJlbnRJbmRleA0KK0pldFNldEN1cnJlbnRJbmRleDINCitKZXRTZXRDdXJyZW50SW5kZXgyQDE2DQorSmV0U2V0Q3VycmVudEluZGV4Mw0KK0pldFNldEN1cnJlbnRJbmRleDNAMjANCitKZXRTZXRDdXJyZW50SW5kZXg0DQorSmV0U2V0Q3VycmVudEluZGV4NEAyNA0KK0pldFNldEN1cnJlbnRJbmRleEAxMg0KK0pldFNldERhdGFiYXNlU2l6ZQ0KK0pldFNldERhdGFiYXNlU2l6ZUAxNg0KK0pldFNldEluZGV4UmFuZ2UNCitKZXRTZXRJbmRleFJhbmdlQDEyDQorSmV0U2V0U2Vzc2lvbkNvbnRleHQNCitKZXRTZXRTZXNzaW9uQ29udGV4dEA4DQorSmV0U2V0U3lzdGVtUGFyYW1ldGVyDQorSmV0U2V0U3lzdGVtUGFyYW1ldGVyQDIwDQorSmV0U3RvcEJhY2t1cA0KK0pldFN0b3BCYWNrdXBAMA0KK0pldFN0b3BTZXJ2aWNlDQorSmV0U3RvcFNlcnZpY2VAMA0KK0pldFRlcm0NCitKZXRUZXJtMg0KK0pldFRlcm0yQDgNCitKZXRUZXJtQDQNCitKZXRUcnVuY2F0ZUxvZw0KK0pldFRydW5jYXRlTG9nQDANCitKZXRVcGRhdGUNCitKZXRVcGRhdGVAMjANCitlc2UNCitlc2VAMjANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZXNlbnRwcmYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2VzZW50cHJmLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZTI3M2FlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2VzZW50cHJmLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEVTRU5UUFJGLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBFU0VOVFBSRi5kbGwNCitFWFBPUlRTDQorQ2xvc2VQZXJmb3JtYW5jZURhdGENCitDb2xsZWN0UGVyZm9ybWFuY2VEYXRhDQorT3BlblBlcmZvcm1hbmNlRGF0YQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dlc3NjbGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Vzc2NsaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmRlZjM5ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dlc3NjbGkuZGVmCkBAIC0wLDAgKzEsMzM4IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGVzc2NsaS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZXNzY2xpLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ2xhc3NJbmZvQXJyYXk6OkNDbGFzc0luZm9BcnJheSh2b2lkKQ0KKz8/MENDbGFzc0luZm9BcnJheUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NsYXNzSW5mb3JtYXRpb246OkNDbGFzc0luZm9ybWF0aW9uKHN0cnVjdCBDQ2xhc3NJbmZvcm1hdGlvbiBjb25zdCAmKQ0KKz8/MENDbGFzc0luZm9ybWF0aW9uQEBRQUVAQUJVMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDbGFzc0luZm9ybWF0aW9uOjpDQ2xhc3NJbmZvcm1hdGlvbih2b2lkKQ0KKz8/MENDbGFzc0luZm9ybWF0aW9uQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ29udGV4dE1ldGFEYXRhOjpDQ29udGV4dE1ldGFEYXRhKGNsYXNzIENNZXRhRGF0YSAqLHN0cnVjdCBJV2JlbUNvbnRleHQgKikNCis/PzBDQ29udGV4dE1ldGFEYXRhQEBRQUVAUEFWQ01ldGFEYXRhQEBQQVVJV2JlbUNvbnRleHRAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0V2YWxOb2RlOjpDRXZhbE5vZGUoY2xhc3MgQ0V2YWxOb2RlIGNvbnN0ICYpDQorPz8wQ0V2YWxOb2RlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFdmFsTm9kZTo6Q0V2YWxOb2RlKHZvaWQpDQorPz8wQ0V2YWxOb2RlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRXZhbFRyZWU6OkNFdmFsVHJlZShjbGFzcyBDRXZhbFRyZWUgY29uc3QgJikNCis/PzBDRXZhbFRyZWVAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0V2YWxUcmVlOjpDRXZhbFRyZWUodm9pZCkNCis/PzBDRXZhbFRyZWVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENNZXRhRGF0YTo6Q01ldGFEYXRhKGNsYXNzIENNZXRhRGF0YSBjb25zdCAmKQ0KKz8/MENNZXRhRGF0YUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0YURhdGE6OkNNZXRhRGF0YSh2b2lkKQ0KKz8/MENNZXRhRGF0YUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ09iamVjdEluZm86OkNPYmplY3RJbmZvKHZvaWQpDQorPz8wQ09iamVjdEluZm9AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXI6OkNQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXIoY2xhc3MgQ1Byb3BlcnR5UHJvamVjdGlvbkZpbHRlciBjb25zdCAmKQ0KKz8/MENQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXJAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1Byb3BlcnR5UHJvamVjdGlvbkZpbHRlcjo6Q1Byb3BlcnR5UHJvamVjdGlvbkZpbHRlcih2b2lkKQ0KKz8/MENQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENSZXVzZU1lbW9yeU1hbmFnZXI6OkNSZXVzZU1lbW9yeU1hbmFnZXIodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/PzBDUmV1c2VNZW1vcnlNYW5hZ2VyQEBRQUVASUlAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTb3J0ZWRBcnJheTo6Q1NvcnRlZEFycmF5KGNsYXNzIENTb3J0ZWRBcnJheSAmKQ0KKz8/MENTb3J0ZWRBcnJheUBAUUFFQEFBVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU29ydGVkQXJyYXk6OkNTb3J0ZWRBcnJheShpbnQsaW50KQ0KKz8/MENTb3J0ZWRBcnJheUBAUUFFQEhIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU29ydGVkQXJyYXk6OkNTb3J0ZWRBcnJheSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgbG9uZyAqKQ0KKz8/MENTb3J0ZWRBcnJheUBAUUFFQElQQUtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTdGFuZGFyZE1ldGFEYXRhOjpDU3RhbmRhcmRNZXRhRGF0YShjbGFzcyBDU3RhbmRhcmRNZXRhRGF0YSBjb25zdCAmKQ0KKz8/MENTdGFuZGFyZE1ldGFEYXRhQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTdGFuZGFyZE1ldGFEYXRhOjpDU3RhbmRhcmRNZXRhRGF0YShzdHJ1Y3QgSVdiZW1TZXJ2aWNlcyAqKQ0KKz8/MENTdGFuZGFyZE1ldGFEYXRhQEBRQUVAUEFVSVdiZW1TZXJ2aWNlc0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDVGVtcE1lbW9yeU1hbmFnZXI6OkNUZW1wTWVtb3J5TWFuYWdlcih2b2lkKQ0KKz8/MENUZW1wTWVtb3J5TWFuYWdlckBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1RpbWVLZWVwZXI6OkNUaW1lS2VlcGVyKHZvaWQpDQorPz8wQ1RpbWVLZWVwZXJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDbGFzc0luZm9BcnJheTo6fkNDbGFzc0luZm9BcnJheSh2b2lkKQ0KKz8/MUNDbGFzc0luZm9BcnJheUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NsYXNzSW5mb3JtYXRpb246On5DQ2xhc3NJbmZvcm1hdGlvbih2b2lkKQ0KKz8/MUNDbGFzc0luZm9ybWF0aW9uQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ29udGV4dE1ldGFEYXRhOjp+Q0NvbnRleHRNZXRhRGF0YSh2b2lkKQ0KKz8/MUNDb250ZXh0TWV0YURhdGFAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ0V2YWxOb2RlOjp+Q0V2YWxOb2RlKHZvaWQpDQorPz8xQ0V2YWxOb2RlQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRXZhbFRyZWU6On5DRXZhbFRyZWUodm9pZCkNCis/PzFDRXZhbFRyZWVAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ01ldGFEYXRhOjp+Q01ldGFEYXRhKHZvaWQpDQorPz8xQ01ldGFEYXRhQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDT2JqZWN0SW5mbzo6fkNPYmplY3RJbmZvKHZvaWQpDQorPz8xQ09iamVjdEluZm9AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXI6On5DUHJvcGVydHlQcm9qZWN0aW9uRmlsdGVyKHZvaWQpDQorPz8xQ1Byb3BlcnR5UHJvamVjdGlvbkZpbHRlckBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1JldXNlTWVtb3J5TWFuYWdlcjo6fkNSZXVzZU1lbW9yeU1hbmFnZXIodm9pZCkNCis/PzFDUmV1c2VNZW1vcnlNYW5hZ2VyQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU29ydGVkQXJyYXk6On5DU29ydGVkQXJyYXkodm9pZCkNCis/PzFDU29ydGVkQXJyYXlAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ1N0YW5kYXJkTWV0YURhdGE6On5DU3RhbmRhcmRNZXRhRGF0YSh2b2lkKQ0KKz8/MUNTdGFuZGFyZE1ldGFEYXRhQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDVGVtcE1lbW9yeU1hbmFnZXI6On5DVGVtcE1lbW9yeU1hbmFnZXIodm9pZCkNCis/PzFDVGVtcE1lbW9yeU1hbmFnZXJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENUaW1lS2VlcGVyOjp+Q1RpbWVLZWVwZXIodm9pZCkNCis/PzFDVGltZUtlZXBlckBAUUFFQFhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDQ2xhc3NJbmZvQXJyYXk6Om9wZXJhdG9yPShjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgJikNCis/PzRDQ2xhc3NJbmZvQXJyYXlAQFFBRV9OQUFWMEBAWg0KKzsgcHVibGljOiBzdHJ1Y3QgQ0NsYXNzSW5mb3JtYXRpb24gJiBfX3RoaXNjYWxsIENDbGFzc0luZm9ybWF0aW9uOjpvcGVyYXRvcj0oc3RydWN0IENDbGFzc0luZm9ybWF0aW9uIGNvbnN0ICYpDQorPz80Q0NsYXNzSW5mb3JtYXRpb25AQFFBRUFBVTBAQUJVMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29udGV4dE1ldGFEYXRhICYgX190aGlzY2FsbCBDQ29udGV4dE1ldGFEYXRhOjpvcGVyYXRvcj0oY2xhc3MgQ0NvbnRleHRNZXRhRGF0YSBjb25zdCAmKQ0KKz8/NENDb250ZXh0TWV0YURhdGFAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0V2YWxUcmVlOjpvcGVyYXRvcj0oY2xhc3MgQ0V2YWxUcmVlIGNvbnN0ICYpDQorPz80Q0V2YWxUcmVlQEBRQUVYQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTWV0YURhdGEgJiBfX3RoaXNjYWxsIENNZXRhRGF0YTo6b3BlcmF0b3I9KGNsYXNzIENNZXRhRGF0YSBjb25zdCAmKQ0KKz8/NENNZXRhRGF0YUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENPYmplY3RJbmZvICYgX190aGlzY2FsbCBDT2JqZWN0SW5mbzo6b3BlcmF0b3I9KGNsYXNzIENPYmplY3RJbmZvIGNvbnN0ICYpDQorPz80Q09iamVjdEluZm9AQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUHJvcGVydHlQcm9qZWN0aW9uRmlsdGVyICYgX190aGlzY2FsbCBDUHJvcGVydHlQcm9qZWN0aW9uRmlsdGVyOjpvcGVyYXRvcj0oY2xhc3MgQ1Byb3BlcnR5UHJvamVjdGlvbkZpbHRlciBjb25zdCAmKQ0KKz8/NENQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUXVlcnlBbmFseXNlciAmIF9fdGhpc2NhbGwgQ1F1ZXJ5QW5hbHlzZXI6Om9wZXJhdG9yPShjbGFzcyBDUXVlcnlBbmFseXNlciBjb25zdCAmKQ0KKz8/NENRdWVyeUFuYWx5c2VyQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1JldXNlTWVtb3J5TWFuYWdlciAmIF9fdGhpc2NhbGwgQ1JldXNlTWVtb3J5TWFuYWdlcjo6b3BlcmF0b3I9KGNsYXNzIENSZXVzZU1lbW9yeU1hbmFnZXIgY29uc3QgJikNCis/PzRDUmV1c2VNZW1vcnlNYW5hZ2VyQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTb3J0ZWRBcnJheTo6b3BlcmF0b3I9KGNsYXNzIENTb3J0ZWRBcnJheSBjb25zdCAmKQ0KKz8/NENTb3J0ZWRBcnJheUBAUUFFWEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0YW5kYXJkTWV0YURhdGEgJiBfX3RoaXNjYWxsIENTdGFuZGFyZE1ldGFEYXRhOjpvcGVyYXRvcj0oY2xhc3MgQ1N0YW5kYXJkTWV0YURhdGEgY29uc3QgJikNCis/PzRDU3RhbmRhcmRNZXRhRGF0YUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENUZW1wTWVtb3J5TWFuYWdlciAmIF9fdGhpc2NhbGwgQ1RlbXBNZW1vcnlNYW5hZ2VyOjpvcGVyYXRvcj0oY2xhc3MgQ1RlbXBNZW1vcnlNYW5hZ2VyIGNvbnN0ICYpDQorPz80Q1RlbXBNZW1vcnlNYW5hZ2VyQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1RpbWVLZWVwZXIgJiBfX3RoaXNjYWxsIENUaW1lS2VlcGVyOjpvcGVyYXRvcj0oY2xhc3MgQ1RpbWVLZWVwZXIgY29uc3QgJikNCis/PzRDVGltZUtlZXBlckBAUUFFQUFWMEBBQlYwQEBaDQorOyBjb25zdCAgQ0V2YWxOb2RlOjpgdmZ0YWJsZScNCis/P183Q0V2YWxOb2RlQEA2QkANCis7IGNvbnN0ICBDTWV0YURhdGE6OmB2ZnRhYmxlJw0KKz8/XzdDTWV0YURhdGFAQDZCQA0KKzsgY29uc3QgIENQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXI6OmB2ZnRhYmxlJw0KKz8/XzdDUHJvcGVydHlQcm9qZWN0aW9uRmlsdGVyQEA2QkANCis7IGNvbnN0ICBDU3RhbmRhcmRNZXRhRGF0YTo6YHZmdGFibGUnDQorPz9fN0NTdGFuZGFyZE1ldGFEYXRhQEA2QkANCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTb3J0ZWRBcnJheTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GQ1NvcnRlZEFycmF5QEBRQUVYWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1NvcnRlZEFycmF5OjpBZGQodW5zaWduZWQgbG9uZykNCis/QWRkQENTb3J0ZWRBcnJheUBAUUFFSEtAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0NsYXNzSW5mb0FycmF5OjpBZGRDbGFzcyhzdHJ1Y3QgQ0NsYXNzSW5mb3JtYXRpb24gKikNCis/QWRkQ2xhc3NAQ0NsYXNzSW5mb0FycmF5QEBRQUVfTlBBVUNDbGFzc0luZm9ybWF0aW9uQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDU29ydGVkQXJyYXk6OkFkZERhdGFGcm9tKGNsYXNzIENTb3J0ZWRBcnJheSBjb25zdCAmKQ0KKz9BZGREYXRhRnJvbUBDU29ydGVkQXJyYXlAQFFBRUhBQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTb3J0ZWRBcnJheTo6QWRkRGF0YUZyb20odW5zaWduZWQgbG9uZyBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/QWRkRGF0YUZyb21AQ1NvcnRlZEFycmF5QEBRQUVIUEJLSUBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUHJvcGVydHlQcm9qZWN0aW9uRmlsdGVyOjpBZGRQcm9wZXJ0eShjbGFzcyBDUHJvcGVydHlOYW1lIGNvbnN0ICYpDQorP0FkZFByb3BlcnR5QENQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXJAQFFBRV9OQUJWQ1Byb3BlcnR5TmFtZUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDTWV0YURhdGE6OkFkZFJlZih2b2lkKQ0KKz9BZGRSZWZAQ01ldGFEYXRhQEBVQUdLWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgQ1JldXNlTWVtb3J5TWFuYWdlcjo6QWxsb2NhdGUodm9pZCkNCis/QWxsb2NhdGVAQ1JldXNlTWVtb3J5TWFuYWdlckBAUUFFUEFYWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgQ1RlbXBNZW1vcnlNYW5hZ2VyOjpBbGxvY2F0ZSh1bnNpZ25lZCBpbnQpDQorP0FsbG9jYXRlQENUZW1wTWVtb3J5TWFuYWdlckBAUUFFUEFYSUBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDUXVlcnlBbmFseXNlcjo6QW5kRGVmaW5pdGVDbGFzc0FycmF5cyhjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKixjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKixjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKikNCis/QW5kRGVmaW5pdGVDbGFzc0FycmF5c0BDUXVlcnlBbmFseXNlckBAS0dKUEFWQ0NsYXNzSW5mb0FycmF5QEAwMEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDUXVlcnlBbmFseXNlcjo6QW5kUG9zc2libGVDbGFzc0FycmF5cyhjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKixjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKixjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKikNCis/QW5kUG9zc2libGVDbGFzc0FycmF5c0BDUXVlcnlBbmFseXNlckBAS0dKUEFWQ0NsYXNzSW5mb0FycmF5QEAwMEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDUXVlcnlBbmFseXNlcjo6QW5kUXVlcnlFeHByZXNzaW9ucyhzdHJ1Y3QgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAqLHN0cnVjdCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OICosc3RydWN0IFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gKikNCis/QW5kUXVlcnlFeHByZXNzaW9uc0BDUXVlcnlBbmFseXNlckBAS0dKUEFVUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTkBAMDBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1F1ZXJ5QW5hbHlzZXI6OkFwcGVuZFF1ZXJ5RXhwcmVzc2lvbihzdHJ1Y3QgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAqLHN0cnVjdCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OICopDQorP0FwcGVuZFF1ZXJ5RXhwcmVzc2lvbkBDUXVlcnlBbmFseXNlckBAS0dYUEFVUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTkBAMEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRXZhbFRyZWU6OkFwcGx5UHJlZGljYXRlKGNsYXNzIENMZWFmUHJlZGljYXRlICopDQorP0FwcGx5UHJlZGljYXRlQENFdmFsVHJlZUBAUUFFSlBBVkNMZWFmUHJlZGljYXRlQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ0V2YWxUcmVlOjpCdWlsZEZyb21Ub2tlbihjbGFzcyBDQ29udGV4dE1ldGFEYXRhICosY2xhc3MgQ0ltcGxpY2F0aW9uTGlzdCAmLHN0cnVjdCBRTF9MRVZFTF8xX1RPS0VOICYsY2xhc3MgQ0V2YWxOb2RlICogKikNCis/QnVpbGRGcm9tVG9rZW5AQ0V2YWxUcmVlQEBTR0pQQVZDQ29udGV4dE1ldGFEYXRhQEBBQVZDSW1wbGljYXRpb25MaXN0QEBBQVVRTF9MRVZFTF8xX1RPS0VOQEBQQVBBVkNFdmFsTm9kZUBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENFdmFsVHJlZTo6QnVpbGRUd29Qcm9wRnJvbVRva2VuKGNsYXNzIENDb250ZXh0TWV0YURhdGEgKixjbGFzcyBDSW1wbGljYXRpb25MaXN0ICYsc3RydWN0IFFMX0xFVkVMXzFfVE9LRU4gJixjbGFzcyBDRXZhbE5vZGUgKiAqKQ0KKz9CdWlsZFR3b1Byb3BGcm9tVG9rZW5AQ0V2YWxUcmVlQEBTR0pQQVZDQ29udGV4dE1ldGFEYXRhQEBBQVZDSW1wbGljYXRpb25MaXN0QEBBQVVRTF9MRVZFTF8xX1RPS0VOQEBQQVBBVkNFdmFsTm9kZUBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENRdWVyeUFuYWx5c2VyOjpDYW5Qb2ludFRvQ2xhc3Moc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ0NvbnRleHRNZXRhRGF0YSAqKQ0KKz9DYW5Qb2ludFRvQ2xhc3NAQ1F1ZXJ5QW5hbHlzZXJAQFNHSlBBVUlXYmVtQ2xhc3NPYmplY3RAQFBCRzFQQVZDQ29udGV4dE1ldGFEYXRhQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NsYXNzSW5mb0FycmF5OjpDbGVhcih2b2lkKQ0KKz9DbGVhckBDQ2xhc3NJbmZvQXJyYXlAQFFBRVhYWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0V2YWxUcmVlOjpDbGVhcih2b2lkKQ0KKz9DbGVhckBDRXZhbFRyZWVAQFFBRV9OWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENPYmplY3RJbmZvOjpDbGVhcih2b2lkKQ0KKz9DbGVhckBDT2JqZWN0SW5mb0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmV1c2VNZW1vcnlNYW5hZ2VyOjpDbGVhcih2b2lkKQ0KKz9DbGVhckBDUmV1c2VNZW1vcnlNYW5hZ2VyQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTdGFuZGFyZE1ldGFEYXRhOjpDbGVhcih2b2lkKQ0KKz9DbGVhckBDU3RhbmRhcmRNZXRhRGF0YUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDVGVtcE1lbW9yeU1hbmFnZXI6OkNsZWFyKHZvaWQpDQorP0NsZWFyQENUZW1wTWVtb3J5TWFuYWdlckBAUUFFWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBDRXZhbE5vZGUgKiBfX3N0ZGNhbGwgQ0V2YWxOb2RlOjpDbG9uZU5vZGUoY2xhc3MgQ0V2YWxOb2RlIGNvbnN0ICopDQorP0Nsb25lTm9kZUBDRXZhbE5vZGVAQFNHUEFWMUBQQlYxQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDRXZhbFRyZWU6OkNvbWJpbmUoY2xhc3MgQ0V2YWxOb2RlICosY2xhc3MgQ0V2YWxOb2RlICosaW50LGNsYXNzIENDb250ZXh0TWV0YURhdGEgKixjbGFzcyBDSW1wbGljYXRpb25MaXN0ICYsYm9vbCxib29sLGNsYXNzIENFdmFsTm9kZSAqICopDQorP0NvbWJpbmVAQ0V2YWxUcmVlQEBTR0pQQVZDRXZhbE5vZGVAQDBIUEFWQ0NvbnRleHRNZXRhRGF0YUBAQUFWQ0ltcGxpY2F0aW9uTGlzdEBAX04zUEFQQVYyQEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDRXZhbFRyZWU6OkNvbWJpbmVMZWFmV2l0aEJyYW5jaChjbGFzcyBDVmFsdWVOb2RlICosY2xhc3MgQ0JyYW5jaGluZ05vZGUgKixpbnQsY2xhc3MgQ0NvbnRleHRNZXRhRGF0YSAqLGNsYXNzIENJbXBsaWNhdGlvbkxpc3QgJixib29sLGJvb2wsY2xhc3MgQ0V2YWxOb2RlICogKikNCis/Q29tYmluZUxlYWZXaXRoQnJhbmNoQENFdmFsVHJlZUBAS0dKUEFWQ1ZhbHVlTm9kZUBAUEFWQ0JyYW5jaGluZ05vZGVAQEhQQVZDQ29udGV4dE1ldGFEYXRhQEBBQVZDSW1wbGljYXRpb25MaXN0QEBfTjRQQVBBVkNFdmFsTm9kZUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENFdmFsVHJlZTo6Q29tYmluZVdpdGgoY2xhc3MgQ0V2YWxUcmVlICYsY2xhc3MgQ0NvbnRleHRNZXRhRGF0YSAqLGludCxsb25nKQ0KKz9Db21iaW5lV2l0aEBDRXZhbFRyZWVAQFFBRUpBQVYxQFBBVkNDb250ZXh0TWV0YURhdGFAQEhKQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0V2YWxUcmVlOjpDb21wYXJlKGNsYXNzIENFdmFsTm9kZSAqLGNsYXNzIENFdmFsTm9kZSAqKQ0KKz9Db21wYXJlQENFdmFsVHJlZUBAU0dIUEFWQ0V2YWxOb2RlQEAwQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1NvcnRlZEFycmF5OjpDb21wYXJlKGNsYXNzIENTb3J0ZWRBcnJheSAmKQ0KKz9Db21wYXJlQENTb3J0ZWRBcnJheUBAUUFFSEFBVjFAQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ1F1ZXJ5QW5hbHlzZXI6OkNvbXBhcmVSZXF1ZXN0ZWRUb1Byb3ZpZGVkKGNsYXNzIENDbGFzc0luZm9BcnJheSAmLGNsYXNzIENDbGFzc0luZm9BcnJheSAmKQ0KKz9Db21wYXJlUmVxdWVzdGVkVG9Qcm92aWRlZEBDUXVlcnlBbmFseXNlckBAU0dIQUFWQ0NsYXNzSW5mb0FycmF5QEAwQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1NvcnRlZEFycmF5OjpDb3B5RGF0YUZyb20oY2xhc3MgQ1NvcnRlZEFycmF5IGNvbnN0ICYpDQorP0NvcHlEYXRhRnJvbUBDU29ydGVkQXJyYXlAQFFBRUhBQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTb3J0ZWRBcnJheTo6Q29weURhdGFGcm9tKHVuc2lnbmVkIGxvbmcgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP0NvcHlEYXRhRnJvbUBDU29ydGVkQXJyYXlAQFFBRUhQQktJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgQ1NvcnRlZEFycmF5OjpDb3B5VG8odW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGludCkNCis/Q29weVRvQENTb3J0ZWRBcnJheUBAUUFFSVBBS0lAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ0V2YWxUcmVlOjpDcmVhdGVGcm9tQ29uanVuY3Rpb24oY2xhc3MgQ0NvbnRleHRNZXRhRGF0YSAqLGNsYXNzIENJbXBsaWNhdGlvbkxpc3QgJixjbGFzcyBDQ29uanVuY3Rpb24gKixjbGFzcyBDRXZhbE5vZGUgKiAqKQ0KKz9DcmVhdGVGcm9tQ29uanVuY3Rpb25AQ0V2YWxUcmVlQEBTR0pQQVZDQ29udGV4dE1ldGFEYXRhQEBBQVZDSW1wbGljYXRpb25MaXN0QEBQQVZDQ29uanVuY3Rpb25AQFBBUEFWQ0V2YWxOb2RlQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0V2YWxUcmVlOjpDcmVhdGVGcm9tRE5GKGNsYXNzIENDb250ZXh0TWV0YURhdGEgKixjbGFzcyBDSW1wbGljYXRpb25MaXN0ICYsY2xhc3MgQ0RORkV4cHJlc3Npb24gKixjbGFzcyBDRXZhbE5vZGUgKiAqKQ0KKz9DcmVhdGVGcm9tRE5GQENFdmFsVHJlZUBAUUFFSlBBVkNDb250ZXh0TWV0YURhdGFAQEFBVkNJbXBsaWNhdGlvbkxpc3RAQFBBVkNETkZFeHByZXNzaW9uQEBQQVBBVkNFdmFsTm9kZUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENFdmFsVHJlZTo6Q3JlYXRlRnJvbVF1ZXJ5KGNsYXNzIENDb250ZXh0TWV0YURhdGEgKixzdHJ1Y3QgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAqLGxvbmcsbG9uZykNCis/Q3JlYXRlRnJvbVF1ZXJ5QENFdmFsVHJlZUBAUUFFSlBBVkNDb250ZXh0TWV0YURhdGFAQFBBVVFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT05AQEpKQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENFdmFsVHJlZTo6Q3JlYXRlRnJvbVF1ZXJ5KGNsYXNzIENDb250ZXh0TWV0YURhdGEgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCxzdHJ1Y3QgUUxfTEVWRUxfMV9UT0tFTiAqLGxvbmcsbG9uZykNCis/Q3JlYXRlRnJvbVF1ZXJ5QENFdmFsVHJlZUBAUUFFSlBBVkNDb250ZXh0TWV0YURhdGFAQFBCR0hQQVVRTF9MRVZFTF8xX1RPS0VOQEBKSkBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRXZhbFRyZWU6OkNyZWF0ZUZyb21RdWVyeShjbGFzcyBDQ29udGV4dE1ldGFEYXRhICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nLGxvbmcpDQorP0NyZWF0ZUZyb21RdWVyeUBDRXZhbFRyZWVAQFFBRUpQQVZDQ29udGV4dE1ldGFEYXRhQEBQQkdKSkBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRXZhbFRyZWU6OkNyZWF0ZVByb2plY3Rpb24oY2xhc3MgQ0V2YWxUcmVlICYsY2xhc3MgQ0NvbnRleHRNZXRhRGF0YSAqLGNsYXNzIENQcm9qZWN0aW9uRmlsdGVyICosZW51bSBFUHJvamVjdGlvblR5cGUsYm9vbCkNCis/Q3JlYXRlUHJvamVjdGlvbkBDRXZhbFRyZWVAQFFBRUpBQVYxQFBBVkNDb250ZXh0TWV0YURhdGFAQFBBVkNQcm9qZWN0aW9uRmlsdGVyQEBXNEVQcm9qZWN0aW9uVHlwZUBAX05AWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1RpbWVLZWVwZXI6OkRlY29yYXRlT2JqZWN0KHN0cnVjdCBfSVdtaU9iamVjdCAqKQ0KKz9EZWNvcmF0ZU9iamVjdEBDVGltZUtlZXBlckBAUUFFX05QQVVfSVdtaU9iamVjdEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTb3J0ZWRBcnJheTo6RW1wdHkodm9pZCkNCis/RW1wdHlAQ1NvcnRlZEFycmF5QEBRQUVYWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENFdmFsVHJlZTo6RXZhbHVhdGUoc3RydWN0IElXYmVtT2JqZWN0QWNjZXNzICosY2xhc3MgQ1NvcnRlZEFycmF5ICYpDQorP0V2YWx1YXRlQENFdmFsVHJlZUBAUUFFSlBBVUlXYmVtT2JqZWN0QWNjZXNzQEBBQVZDU29ydGVkQXJyYXlAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDRXZhbFRyZWU6OkV2YWx1YXRlKGNsYXNzIENPYmplY3RJbmZvICYsY2xhc3MgQ0V2YWxOb2RlICosY2xhc3MgQ1NvcnRlZEFycmF5ICYpDQorP0V2YWx1YXRlQENFdmFsVHJlZUBAU0dKQUFWQ09iamVjdEluZm9AQFBBVkNFdmFsTm9kZUBAQUFWQ1NvcnRlZEFycmF5QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBDU29ydGVkQXJyYXk6OkZpbmQodW5zaWduZWQgbG9uZykNCis/RmluZEBDU29ydGVkQXJyYXlAQFFBRUlLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZXVzZU1lbW9yeU1hbmFnZXI6OkZyZWUodm9pZCAqKQ0KKz9GcmVlQENSZXVzZU1lbW9yeU1hbmFnZXJAQFFBRVhQQVhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1RlbXBNZW1vcnlNYW5hZ2VyOjpGcmVlKHZvaWQgKix1bnNpZ25lZCBpbnQpDQorP0ZyZWVAQ1RlbXBNZW1vcnlNYW5hZ2VyQEBRQUVYUEFYSUBaDQorOyBsb25nIF9fc3RkY2FsbCBHZXRBY2Nlc3NNYXNrKHZvaWQgKixzdHJ1Y3QgX0FDTCAqLHVuc2lnbmVkIGxvbmcgKikNCis/R2V0QWNjZXNzTWFza0BAWUdKUEFYUEFVX0FDTEBAUEFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyAqIF9fdGhpc2NhbGwgQ1NvcnRlZEFycmF5OjpHZXRBcnJheVB0cih2b2lkKQ0KKz9HZXRBcnJheVB0ckBDU29ydGVkQXJyYXlAQFFBRVBBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDU29ydGVkQXJyYXk6OkdldEF0KGludCkNCis/R2V0QXRAQ1NvcnRlZEFycmF5QEBRQUVLSEBaDQorOyBwdWJsaWM6IHN0cnVjdCBDQ2xhc3NJbmZvcm1hdGlvbiAqIF9fdGhpc2NhbGwgQ0NsYXNzSW5mb0FycmF5OjpHZXRDbGFzcyhpbnQpDQorP0dldENsYXNzQENDbGFzc0luZm9BcnJheUBAUUFFUEFVQ0NsYXNzSW5mb3JtYXRpb25AQEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0NvbnRleHRNZXRhRGF0YTo6R2V0Q2xhc3ModW5zaWduZWQgc2hvcnQgY29uc3QgKixzdHJ1Y3QgX0lXbWlPYmplY3QgKiAqKQ0KKz9HZXRDbGFzc0BDQ29udGV4dE1ldGFEYXRhQEBRQUVKUEJHUEFQQVVfSVdtaU9iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDTWV0YURhdGE6OkdldENsYXNzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IElXYmVtQ29udGV4dCAqLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogKikNCis/R2V0Q2xhc3NAQ01ldGFEYXRhQEBVQUdKUEJHUEFVSVdiZW1Db250ZXh0QEBQQVBBVUlXYmVtQ2xhc3NPYmplY3RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENTdGFuZGFyZE1ldGFEYXRhOjpHZXRDbGFzcyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHN0cnVjdCBJV2JlbUNvbnRleHQgKixzdHJ1Y3QgX0lXbWlPYmplY3QgKiAqKQ0KKz9HZXRDbGFzc0BDU3RhbmRhcmRNZXRhRGF0YUBAVUFFSlBCR1BBVUlXYmVtQ29udGV4dEBAUEFQQVVfSVdtaU9iamVjdEBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENRdWVyeUFuYWx5c2VyOjpHZXREZWZpbml0ZUluc3RhbmNlQ2xhc3NlcyhzdHJ1Y3QgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAqLGNsYXNzIENDbGFzc0luZm9BcnJheSAqICYpDQorP0dldERlZmluaXRlSW5zdGFuY2VDbGFzc2VzQENRdWVyeUFuYWx5c2VyQEBTR0pQQVVRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBBQVBBVkNDbGFzc0luZm9BcnJheUBAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgX19zdGRjYWxsIENRdWVyeUFuYWx5c2VyOjpHZXRJbnN0YW5jZUNsYXNzZXMoc3RydWN0IFFMX0xFVkVMXzFfVE9LRU4gJixjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgJikNCis/R2V0SW5zdGFuY2VDbGFzc2VzQENRdWVyeUFuYWx5c2VyQEBLR0pBQVVRTF9MRVZFTF8xX1RPS0VOQEBBQVZDQ2xhc3NJbmZvQXJyYXlAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDT2JqZWN0SW5mbzo6R2V0TGVuZ3RoKHZvaWQpDQorP0dldExlbmd0aEBDT2JqZWN0SW5mb0BAUUFFSlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDUXVlcnlBbmFseXNlcjo6R2V0TGltaXRpbmdRdWVyeUZvckluc3RhbmNlQ2xhc3Moc3RydWN0IFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gKixzdHJ1Y3QgQ0NsYXNzSW5mb3JtYXRpb24gJix1bnNpZ25lZCBzaG9ydCAqICYpDQorP0dldExpbWl0aW5nUXVlcnlGb3JJbnN0YW5jZUNsYXNzQENRdWVyeUFuYWx5c2VyQEBTR0pQQVVRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBBQVVDQ2xhc3NJbmZvcm1hdGlvbkBAQUFQQUdAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1F1ZXJ5QW5hbHlzZXI6OkdldE5lY2Vzc2FyeVF1ZXJ5Rm9yQ2xhc3Moc3RydWN0IFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gKixzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqLGNsYXNzIENXU3RyaW5nQXJyYXkgJixzdHJ1Y3QgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAqICYpDQorP0dldE5lY2Vzc2FyeVF1ZXJ5Rm9yQ2xhc3NAQ1F1ZXJ5QW5hbHlzZXJAQFNHSlBBVVFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT05AQFBBVUlXYmVtQ2xhc3NPYmplY3RAQEFBVkNXU3RyaW5nQXJyYXlAQEFBUEFVMkBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1F1ZXJ5QW5hbHlzZXI6OkdldE5lY2Vzc2FyeVF1ZXJ5Rm9yUHJvcGVydHkoc3RydWN0IFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gKixjbGFzcyBDUHJvcGVydHlOYW1lICYsc3RydWN0IFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gKiAmKQ0KKz9HZXROZWNlc3NhcnlRdWVyeUZvclByb3BlcnR5QENRdWVyeUFuYWx5c2VyQEBTR0pQQVVRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBBQVZDUHJvcGVydHlOYW1lQEBBQVBBVTJAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NsYXNzSW5mb0FycmF5OjpHZXROdW1DbGFzc2VzKHZvaWQpDQorP0dldE51bUNsYXNzZXNAQ0NsYXNzSW5mb0FycmF5QEBRQUVIWFoNCis7IHB1YmxpYzogc3RydWN0IF9JV21pT2JqZWN0ICogX190aGlzY2FsbCBDT2JqZWN0SW5mbzo6R2V0T2JqZWN0QXQobG9uZykNCis/R2V0T2JqZWN0QXRAQ09iamVjdEluZm9AQFFBRVBBVV9JV21pT2JqZWN0QEBKQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENRdWVyeUFuYWx5c2VyOjpHZXRQb3NzaWJsZUluc3RhbmNlQ2xhc3NlcyhzdHJ1Y3QgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAqLGNsYXNzIENDbGFzc0luZm9BcnJheSAqICYpDQorP0dldFBvc3NpYmxlSW5zdGFuY2VDbGFzc2VzQENRdWVyeUFuYWx5c2VyQEBTR0pQQVVRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBBQVBBVkNDbGFzc0luZm9BcnJheUBAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgX19zdGRjYWxsIENRdWVyeUFuYWx5c2VyOjpHZXRQcm9wZXJ0aWVzVGhhdE11c3REaWZmZXIoc3RydWN0IFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gKixzdHJ1Y3QgQ0NsYXNzSW5mb3JtYXRpb24gJixjbGFzcyBDV1N0cmluZ0FycmF5ICYpDQorP0dldFByb3BlcnRpZXNUaGF0TXVzdERpZmZlckBDUXVlcnlBbmFseXNlckBAS0dKUEFVUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTkBAQUFVQ0NsYXNzSW5mb3JtYXRpb25AQEFBVkNXU3RyaW5nQXJyYXlAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENFdmFsTm9kZTo6R2V0VHlwZShjbGFzcyBDRXZhbE5vZGUgKikNCis/R2V0VHlwZUBDRXZhbE5vZGVAQFNHSFBBVjFAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgX19zdGRjYWxsIENFdmFsVHJlZTo6SW5uZXJDb21iaW5lKGNsYXNzIENFdmFsTm9kZSAqLGNsYXNzIENFdmFsTm9kZSAqLGludCxjbGFzcyBDQ29udGV4dE1ldGFEYXRhICosY2xhc3MgQ0ltcGxpY2F0aW9uTGlzdCAmLGJvb2wsYm9vbCxjbGFzcyBDRXZhbE5vZGUgKiAqKQ0KKz9Jbm5lckNvbWJpbmVAQ0V2YWxUcmVlQEBLR0pQQVZDRXZhbE5vZGVAQDBIUEFWQ0NvbnRleHRNZXRhRGF0YUBAQUFWQ0ltcGxpY2F0aW9uTGlzdEBAX04zUEFQQVYyQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU29ydGVkQXJyYXk6Okluc2VydCh1bnNpZ25lZCBsb25nKQ0KKz9JbnNlcnRAQ1NvcnRlZEFycmF5QEBRQUVYS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fc3RkY2FsbCBDRXZhbE5vZGU6OklzQWxsRmFsc2UoY2xhc3MgQ0V2YWxOb2RlICopDQorP0lzQWxsRmFsc2VAQ0V2YWxOb2RlQEBTR19OUEFWMUBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGJvb2wgX190aGlzY2FsbCBDRXZhbE5vZGU6OklzQWxsRmFsc2Uodm9pZCkNCis/SXNBbGxGYWxzZUBDRXZhbE5vZGVAQFVBRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENFdmFsVHJlZTo6SXNGYWxzZSh2b2lkKQ0KKz9Jc0ZhbHNlQENFdmFsVHJlZUBAUUFFX05YWg0KKzsgcHVibGljOiB2aXJ0dWFsIGJvb2wgX190aGlzY2FsbCBDUHJvcGVydHlQcm9qZWN0aW9uRmlsdGVyOjpJc0luU2V0KGNsYXNzIENFdmFsTm9kZSAqKQ0KKz9Jc0luU2V0QENQcm9wZXJ0eVByb2plY3Rpb25GaWx0ZXJAQFVBRV9OUEFWQ0V2YWxOb2RlQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX3N0ZGNhbGwgQ0V2YWxOb2RlOjpJc0ludmFsaWQoY2xhc3MgQ0V2YWxOb2RlICopDQorP0lzSW52YWxpZEBDRXZhbE5vZGVAQFNHX05QQVYxQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgYm9vbCBfX3RoaXNjYWxsIENFdmFsTm9kZTo6SXNJbnZhbGlkKHZvaWQpDQorP0lzSW52YWxpZEBDRXZhbE5vZGVAQFVBRV9OWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NsYXNzSW5mb0FycmF5OjpJc0xpbWl0ZWQodm9pZCkNCis/SXNMaW1pdGVkQENDbGFzc0luZm9BcnJheUBAUUFFSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDRXZhbFRyZWU6OklzTWVyZ2VBZHZpc2FibGUoY2xhc3MgQ0V2YWxOb2RlICosY2xhc3MgQ0V2YWxOb2RlICosY2xhc3MgQ0ltcGxpY2F0aW9uTGlzdCAmKQ0KKz9Jc01lcmdlQWR2aXNhYmxlQENFdmFsVHJlZUBAU0dKUEFWQ0V2YWxOb2RlQEAwQUFWQ0ltcGxpY2F0aW9uTGlzdEBAQFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19zdGRjYWxsIENFdmFsTm9kZTo6SXNOb29wKGNsYXNzIENFdmFsTm9kZSAqLGludCkNCis/SXNOb29wQENFdmFsTm9kZUBAU0dfTlBBVjFASEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgYm9vbCBfX3RoaXNjYWxsIENFdmFsTm9kZTo6SXNOb29wKGludCkNCis/SXNOb29wQENFdmFsTm9kZUBAVUFFX05IQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX3N0ZGNhbGwgQ1F1ZXJ5QW5hbHlzZXI6OklzUHJvcGVydHlJbkNsYXNzKGNsYXNzIENQcm9wZXJ0eU5hbWUgJixzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqLGNsYXNzIENXU3RyaW5nQXJyYXkgJikNCis/SXNQcm9wZXJ0eUluQ2xhc3NAQ1F1ZXJ5QW5hbHlzZXJAQEtHSEFBVkNQcm9wZXJ0eU5hbWVAQFBBVUlXYmVtQ2xhc3NPYmplY3RAQEFBVkNXU3RyaW5nQXJyYXlAQEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENRdWVyeUFuYWx5c2VyOjpJc1Rva2VuQWJvdXRDbGFzcyhzdHJ1Y3QgUUxfTEVWRUxfMV9UT0tFTiAmLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICosY2xhc3MgQ1dTdHJpbmdBcnJheSAmKQ0KKz9Jc1Rva2VuQWJvdXRDbGFzc0BDUXVlcnlBbmFseXNlckBAS0dIQUFVUUxfTEVWRUxfMV9UT0tFTkBAUEFVSVdiZW1DbGFzc09iamVjdEBAQUFWQ1dTdHJpbmdBcnJheUBAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX3N0ZGNhbGwgQ1F1ZXJ5QW5hbHlzZXI6OklzVG9rZW5BYm91dFByb3BlcnR5KHN0cnVjdCBRTF9MRVZFTF8xX1RPS0VOICYsY2xhc3MgQ1Byb3BlcnR5TmFtZSAmKQ0KKz9Jc1Rva2VuQWJvdXRQcm9wZXJ0eUBDUXVlcnlBbmFseXNlckBAS0dIQUFVUUxfTEVWRUxfMV9UT0tFTkBAQUFWQ1Byb3BlcnR5TmFtZUBAQFoNCis7IGxvbmcgX19zdGRjYWxsIElzVXNlckFkbWluaXN0cmF0b3Iodm9pZCAqKQ0KKz9Jc1VzZXJBZG1pbmlzdHJhdG9yQEBZR0pQQVhAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgSXNVc2VySW5Hcm91cCh2b2lkICosdm9pZCAqKQ0KKz9Jc1VzZXJJbkdyb3VwQEBZR0pQQVgwQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENFdmFsVHJlZTo6SXNWYWxpZCh2b2lkKQ0KKz9Jc1ZhbGlkQENFdmFsVHJlZUBAUUFFX05YWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1F1ZXJ5QW5hbHlzZXI6Ok5lZ2F0ZURlZmluaXRlQ2xhc3NBcnJheShjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKixjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKikNCis/TmVnYXRlRGVmaW5pdGVDbGFzc0FycmF5QENRdWVyeUFuYWx5c2VyQEBLR0pQQVZDQ2xhc3NJbmZvQXJyYXlAQDBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1F1ZXJ5QW5hbHlzZXI6Ok5lZ2F0ZVBvc3NpYmxlQ2xhc3NBcnJheShjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKixjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKikNCis/TmVnYXRlUG9zc2libGVDbGFzc0FycmF5QENRdWVyeUFuYWx5c2VyQEBLR0pQQVZDQ2xhc3NJbmZvQXJyYXlAQDBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1F1ZXJ5QW5hbHlzZXI6Ok5lZ2F0ZVF1ZXJ5RXhwcmVzc2lvbihzdHJ1Y3QgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAqLHN0cnVjdCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OICopDQorP05lZ2F0ZVF1ZXJ5RXhwcmVzc2lvbkBDUXVlcnlBbmFseXNlckBAS0dKUEFVUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTkBAMEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENFdmFsTm9kZTo6T3B0aW1pemUoY2xhc3MgQ0NvbnRleHRNZXRhRGF0YSAqLGNsYXNzIENFdmFsTm9kZSAqICopDQorP09wdGltaXplQENFdmFsTm9kZUBAVUFFSlBBVkNDb250ZXh0TWV0YURhdGFAQFBBUEFWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0V2YWxUcmVlOjpPcHRpbWl6ZShjbGFzcyBDQ29udGV4dE1ldGFEYXRhICopDQorP09wdGltaXplQENFdmFsVHJlZUBAUUFFSlBBVkNDb250ZXh0TWV0YURhdGFAQEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDUXVlcnlBbmFseXNlcjo6T3JEZWZpbml0ZUNsYXNzQXJyYXlzKGNsYXNzIENDbGFzc0luZm9BcnJheSAqLGNsYXNzIENDbGFzc0luZm9BcnJheSAqLGNsYXNzIENDbGFzc0luZm9BcnJheSAqKQ0KKz9PckRlZmluaXRlQ2xhc3NBcnJheXNAQ1F1ZXJ5QW5hbHlzZXJAQEtHSlBBVkNDbGFzc0luZm9BcnJheUBAMDBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1F1ZXJ5QW5hbHlzZXI6Ok9yUG9zc2libGVDbGFzc0FycmF5cyhjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKixjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKixjbGFzcyBDQ2xhc3NJbmZvQXJyYXkgKikNCis/T3JQb3NzaWJsZUNsYXNzQXJyYXlzQENRdWVyeUFuYWx5c2VyQEBLR0pQQVZDQ2xhc3NJbmZvQXJyYXlAQDAwQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgX19zdGRjYWxsIENRdWVyeUFuYWx5c2VyOjpPclF1ZXJ5RXhwcmVzc2lvbnMoc3RydWN0IFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gKixzdHJ1Y3QgUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTiAqLHN0cnVjdCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OICopDQorP09yUXVlcnlFeHByZXNzaW9uc0BDUXVlcnlBbmFseXNlckBAS0dKUEFVUUxfTEVWRUxfMV9SUE5fRVhQUkVTU0lPTkBAMDBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ0V2YWxOb2RlOjpQcmludE9mZnNldChzdHJ1Y3QgX2lvYnVmICosaW50KQ0KKz9QcmludE9mZnNldEBDRXZhbE5vZGVAQFNHWFBBVV9pb2J1ZkBASEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDRXZhbFRyZWU6OlByb2plY3QoY2xhc3MgQ0NvbnRleHRNZXRhRGF0YSAqLGNsYXNzIENJbXBsaWNhdGlvbkxpc3QgJixjbGFzcyBDRXZhbE5vZGUgKixjbGFzcyBDUHJvamVjdGlvbkZpbHRlciAqLGVudW0gRVByb2plY3Rpb25UeXBlLGJvb2wsY2xhc3MgQ0V2YWxOb2RlICogKikNCis/UHJvamVjdEBDRXZhbFRyZWVAQFNHSlBBVkNDb250ZXh0TWV0YURhdGFAQEFBVkNJbXBsaWNhdGlvbkxpc3RAQFBBVkNFdmFsTm9kZUBAUEFWQ1Byb2plY3Rpb25GaWx0ZXJAQFc0RVByb2plY3Rpb25UeXBlQEBfTlBBUEFWNEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENNZXRhRGF0YTo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYsdm9pZCAqICopDQorP1F1ZXJ5SW50ZXJmYWNlQENNZXRhRGF0YUBAVUFHSkFCVV9HVUlEQEBQQVBBWEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRXZhbFRyZWU6OlJlYmFzZSh1bnNpZ25lZCBsb25nKQ0KKz9SZWJhc2VAQ0V2YWxUcmVlQEBRQUVYS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU29ydGVkQXJyYXk6OlJlYmFzZSh1bnNpZ25lZCBsb25nKQ0KKz9SZWJhc2VAQ1NvcnRlZEFycmF5QEBRQUVYS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ01ldGFEYXRhOjpSZWxlYXNlKHZvaWQpDQorP1JlbGVhc2VAQ01ldGFEYXRhQEBVQUdLWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTb3J0ZWRBcnJheTo6UmVtb3ZlKHVuc2lnbmVkIGxvbmcpDQorP1JlbW92ZUBDU29ydGVkQXJyYXlAQFFBRV9OS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ2xhc3NJbmZvQXJyYXk6OlJlbW92ZUNsYXNzKGludCkNCis/UmVtb3ZlQ2xhc3NAQ0NsYXNzSW5mb0FycmF5QEBRQUVYSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRXZhbFRyZWU6OlJlbW92ZUluZGV4KGludCkNCis/UmVtb3ZlSW5kZXhAQ0V2YWxUcmVlQEBRQUVKSEBaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIENUZW1wTWVtb3J5TWFuYWdlcjo6Um91bmRVcCh1bnNpZ25lZCBpbnQpDQorP1JvdW5kVXBAQ1RlbXBNZW1vcnlNYW5hZ2VyQEBJQUVJSUBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDRXZhbFRyZWU6OlNldEJvb2woaW50KQ0KKz9TZXRCb29sQENFdmFsVHJlZUBAUUFFX05IQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENPYmplY3RJbmZvOjpTZXRMZW5ndGgobG9uZykNCis/U2V0TGVuZ3RoQENPYmplY3RJbmZvQEBRQUVfTkpAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NsYXNzSW5mb0FycmF5OjpTZXRMaW1pdGVkKGludCkNCis/U2V0TGltaXRlZEBDQ2xhc3NJbmZvQXJyYXlAQFFBRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENPYmplY3RJbmZvOjpTZXRPYmplY3RBdChsb25nLHN0cnVjdCBfSVdtaU9iamVjdCAqKQ0KKz9TZXRPYmplY3RBdEBDT2JqZWN0SW5mb0BAUUFFWEpQQVVfSVdtaU9iamVjdEBAQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENDbGFzc0luZm9BcnJheTo6U2V0T25lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz9TZXRPbmVAQ0NsYXNzSW5mb0FycmF5QEBRQUVfTlBCR0hAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NvcnRlZEFycmF5OjpTZXRTaXplKGludCkNCis/U2V0U2l6ZUBDU29ydGVkQXJyYXlAQFFBRVhIQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENRdWVyeUFuYWx5c2VyOjpTaW1wbGlmeVF1ZXJ5Rm9yQ2hpbGQoc3RydWN0IFFMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICosY2xhc3MgQ0NvbnRleHRNZXRhRGF0YSAqLHN0cnVjdCBRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OICogJikNCis/U2ltcGxpZnlRdWVyeUZvckNoaWxkQENRdWVyeUFuYWx5c2VyQEBTR0pQQVVRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBQQkdQQVVJV2JlbUNsYXNzT2JqZWN0QEBQQVZDQ29udGV4dE1ldGFEYXRhQEBBQVBBVTJAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX3N0ZGNhbGwgQ1F1ZXJ5QW5hbHlzZXI6OlNpbXBsaWZ5VG9rZW5Gb3JDaGlsZChzdHJ1Y3QgUUxfTEVWRUxfMV9UT0tFTiAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKixjbGFzcyBDQ29udGV4dE1ldGFEYXRhICopDQorP1NpbXBsaWZ5VG9rZW5Gb3JDaGlsZEBDUXVlcnlBbmFseXNlckBAS0dIQUFVUUxfTEVWRUxfMV9UT0tFTkBAUEJHUEFVSVdiZW1DbGFzc09iamVjdEBAUEFWQ0NvbnRleHRNZXRhRGF0YUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1NvcnRlZEFycmF5OjpTaXplKHZvaWQpY29uc3QgDQorP1NpemVAQ1NvcnRlZEFycmF5QEBRQkVIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyAqIF9fdGhpc2NhbGwgQ1NvcnRlZEFycmF5OjpVbmJpbmRQdHIodm9pZCkNCis/VW5iaW5kUHRyQENTb3J0ZWRBcnJheUBAUUFFUEFLWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENFdmFsVHJlZTo6VXRpbGl6ZUd1YXJhbnRlZShjbGFzcyBDRXZhbFRyZWUgJixjbGFzcyBDQ29udGV4dE1ldGFEYXRhICopDQorP1V0aWxpemVHdWFyYW50ZWVAQ0V2YWxUcmVlQEBRQUVKQUFWMUBQQVZDQ29udGV4dE1ldGFEYXRhQEBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDUXVlcnlBbmFseXNlcjo6VmFsaWRhdGVTUUxEYXRlVGltZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9WYWxpZGF0ZVNRTERhdGVUaW1lQENRdWVyeUFuYWx5c2VyQEBLR0hQQkdAWg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2V2bnRycHJ2LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dldm50cnBydi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDhkMmNhNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dldm50cnBydi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBldm50cnBydi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZXZudHJwcnYuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2V2dGdwcm92LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dldnRncHJvdi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzdiMTQxMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dldnRncHJvdi5kZWYKQEAgLTAsMCArMSwxNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBFdlRnUHJvdi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRXZUZ1Byb3YuZGxsDQorRVhQT1JUUw0KKzsgdW5zaWduZWQgbG9uZyAgbV9kd05leHRUcmlnZ2VySUQNCis/bV9kd05leHRUcmlnZ2VySURAQDNLQSBEQVRBDQorOyB1bnNpZ25lZCBsb25nICBtX2R3VG90YWxUcmlnZ2Vycw0KKz9tX2R3VG90YWxUcmlnZ2Vyc0BAM0tBIERBVEENCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dleHBzcnYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2V4cHNydi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzc4YTBkMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dleHBzcnYuZGVmCkBAIC0wLDAgKzEsNjMxIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEVYUFNSVi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRVhQU1JWLmRsbA0KK0VYUE9SVFMNCitQcm9jQ2FsbEVuZ2luZQ0KK0RsbEZ1bmN0aW9uQ2FsbA0KK19fdmJhQXJ5TG9jaw0KK19fdmJhQm9vbEVyclZhcg0KK0NvcHlSZWNvcmQNCitfX3ZiYVJlZGltVmFyMg0KK19fdmJhU3RyRXJyVmFyQ29weQ0KK19fdmJhVmFyTGF0ZU1lbUNhbGxMZA0KK19fdmJhVmFyTGF0ZU1lbUNhbGxMZFJmDQorVGlwR2V0QWRkcmVzc09mUHJlZGVjbGFyZWRJbnN0YW5jZQ0KK19fdmJhVmFyTGF0ZU1lbUNhbGxTdA0KK19fdmJhVmFyTGF0ZU1lbVN0DQorX192YmFWYXJMYXRlTWVtU3RBZA0KK01ldGhDYWxsRW5naW5lDQorX192YmFBcnlWYXJWYXJnDQorX192YmFGcENEYmxSNA0KK19fdmJhRnBDRGJsUjgNCitfX3ZiYUZwQ1NuZ1I0DQorX192YmFGcENTbmdSOA0KK19fdmJhRnBDbXBDeQ0KK19fdmJhRnBDeQ0KK19fdmJhRnBJMg0KK19fdmJhRnBJNA0KK19fdmJhRnBSNA0KK19fdmJhRnBSOA0KK19fdmJhRnBVSTENCitfX3ZiYUZyZWVPYmoNCitfX3ZiYUZyZWVTdHINCitfX3ZiYUZyZWVWYXINCitfX3ZiYUZyZWVWYXJnDQorX192YmFJMkFicw0KK19fdmJhSTJJNA0KK19fdmJhSTJTZ24NCitfX3ZiYUk0QWJzDQorVGlwU2V0T3B0aW9uDQorX192YmFJNFNnbg0KK19fdmJhU3RyQ29weQ0KK19fdmJhU3RyTW92ZQ0KK19fdmJhVUkxSTINCitfX3ZiYVVJMUk0DQorX192YmFVSTFTZ24NCitUaXBVbmxvYWRQcm9qZWN0DQorX192YmFWYXJDb3B5DQorX192YmFWYXJEdXANCitUaXBDcmVhdGVJbnN0YW5jZVByb2plY3QyDQorRWJSZXNldFByb2plY3QNCitFYkdldEhhbmRsZU9mRXhlY3V0aW5nUHJvamVjdA0KK19fdmJhVmFyTW92ZQ0KK19fdmJhVmFyVmFyZ05vZnJlZQ0KK19fdmJhVmFyWmVybw0KK19fdmJhVmFyZ1Bhcm1SZWYNCitfX3ZiYVZhcmdWYXINCitfX3ZiYVZhcmdWYXJDb3B5DQorX192YmFWYXJnVmFyTW92ZQ0KK19fdmJhVmFyZ1ZhclJlZg0KK19DSWF0YW4NCitfQ0ljb3MNCitfQ0lleHANCitfQ0lsb2cNCitfQ0lzaW4NCitfQ0lzcXJ0DQorX0NJdGFuDQorX192YmFBcnlDb25zdHJ1Y3QyDQorX192YmFBcnlDb25zdHJ1Y3QNCitfX3ZiYUFyeUNvcHkNCitfX3ZiYUFyeURlc3RydWN0DQorX192YmFBcnlNb3ZlDQorX192YmFBcnlSZWJhc2UxVmFyDQorX192YmFBcnlSZWNDb3B5DQorX192YmFBcnlSZWNNb3ZlDQorX192YmFBcnlVbmxvY2sNCitfX3ZiYUFyeVZhcg0KK19fdmJhQm9vbFN0cg0KK19fdmJhQm9vbFZhcg0KK19fdmJhQm9vbFZhck51bGwNCitfX3ZiYUNWYXJBcnlVZHQNCitfX3ZiYUNhc3RPYmoNCitfX3ZiYUNhc3RPYmpWYXINCitfX3ZiYUNoZWNrVHlwZQ0KK0ViUmVzZXRQcm9qZWN0Tm9ybWFsDQorVGlwVW5sb2FkSW5zdGFuY2UNCitfX3ZiYUNoZWNrVHlwZVZhcg0KK0ViTGlicmFyeUxvYWQNCitFYkxpYnJhcnlVbmxvYWQNCitfX3ZiYUNoa3N0aw0KK0ViTG9hZFJ1blRpbWUNCitfX3ZiYUNvcHlCeXRlcw0KK19fdmJhQ29weUJ5dGVzWmVybw0KK0ViQ3JlYXRlQ29udGV4dA0KK0ViRGVzdHJveUNvbnRleHQNCitFYlNldENvbnRleHRXb3JrZXJUaHJlYWQNCitfX3ZiYUN5QWJzDQorX192YmFDeUFkZA0KK19fdmJhQ3lFcnJWYXINCitfX3ZiYUN5Rml4DQorX192YmFDeUZvckluaXQNCitfX3ZiYUN5Rm9yTmV4dA0KK19fdmJhQ3lJMg0KK0ViR2V0RXJyb3JJbmZvDQorX192YmFDeUk0DQorX192YmFDeUludA0KK19fdmJhQ3lNdWwNCitfX3ZiYUN5TXVsSTINCitfX3ZiYUN5U2duDQorX192YmFDeVN0cg0KK19fdmJhQ3lTdWINCitfX3ZiYUN5VUkxDQorX192YmFDeVZhcg0KK19fdmJhRGF0ZVI0DQorX192YmFEYXRlUjgNCitfX3ZiYURhdGVTdHINCitfX3ZiYURhdGVWYXINCitFYklzUHJvamVjdE9uU3RhY2sNCitUaXBDcmVhdGVJbnN0YW5jZUV4DQorR2V0TWVtMg0KK0dldE1lbTQNCitHZXRNZW04DQorR2V0TWVtU3RyDQorR2V0TWVtVmFyDQorR2V0TWVtT2JqDQorUHV0TWVtMg0KK1B1dE1lbTQNCitQdXRNZW04DQorUHV0TWVtU3RyDQorUHV0TWVtVmFyDQorUHV0TWVtT2JqDQorU2V0TWVtVmFyDQorU2V0TWVtT2JqDQorR2V0TWVtTmV3T2JqDQorUHV0TWVtTmV3T2JqDQorU2V0TWVtTmV3T2JqDQorR2V0TWVtMQ0KK1B1dE1lbTENCitHZXRNZW1FdmVudA0KK1B1dE1lbUV2ZW50DQorU2V0TWVtRXZlbnQNCitfX3ZiYURlcmVmQXJ5DQorX192YmFEZXJlZkFyeTENCitfX3ZiYUVuZA0KK19fdmJhRXJhc2UNCitfX3ZiYUVyYXNlS2VlcERhdGENCitfX3ZiYUVyYXNlTm9Qb3ANCitfX3ZiYUVycm9yDQorX192YmFFcnJvck92ZXJmbG93DQorX192YmFFeGNlcHRIYW5kbGVyDQorX192YmFFeGl0RWFjaEFyeQ0KK19fdmJhRXhpdEVhY2hDb2xsDQorX192YmFFeGl0RWFjaFZhcg0KK19fdmJhRXhpdFByb2MNCitfX3ZiYUZQRXhjZXB0aW9uDQorX192YmFGUEZpeA0KK19fdmJhRlBJbnQNCitfX3ZiYUZhaWxlZEZyaWVuZA0KK19fdmJhRmlsZUNsb3NlDQorX192YmFGaWxlQ2xvc2VBbGwNCitfX3ZiYUZpbGVMb2NrDQorX192YmFGaWxlT3Blbg0KK19fdmJhRmlsZVNlZWsNCitfX3ZiYUZpeHN0ckNvbnN0cnVjdA0KK19fdmJhRm9yRWFjaEFyeQ0KK19fdmJhRm9yRWFjaENvbGxBZA0KK19fdmJhRm9yRWFjaENvbGxPYmoNCitfX3ZiYUZvckVhY2hDb2xsVmFyDQorX192YmFGb3JFYWNoVmFyDQorX192YmFGcmVlT2JqTGlzdA0KK19fdmJhRnJlZVN0ckxpc3QNCitfX3ZiYUZyZWVWYXJMaXN0DQorX192YmFHZW5lcmF0ZUJvdW5kc0Vycm9yDQorX192YmFHZXQzDQorX192YmFHZXQ0DQorX192YmFHZXRGeFN0cjMNCitfX3ZiYUdldEZ4U3RyNA0KK19fdmJhR2V0T3duZXIzDQorX192YmFHZXRPd25lcjQNCitfX3ZiYUdvc3ViDQorX192YmFHb3N1YkZyZWUNCitfX3ZiYUdvc3ViUmV0dXJuDQorX192YmFIcmVzdWx0Q2hlY2sNCitfX3ZiYUhyZXN1bHRDaGVja05vbnZpcnQNCitfX3ZiYUhyZXN1bHRDaGVja09iag0KK19fdmJhSTJDeQ0KK19fdmJhSTJFcnJWYXINCitfX3ZiYUkyRm9yTmV4dENoZWNrDQorX192YmFJMlN0cg0KK19fdmJhSTJWYXINCitfX3ZiYUk0Q3kNCitfX3ZiYUk0RXJyVmFyDQorX192YmFJNEZvck5leHRDaGVjaw0KK19fdmJhSTRTdHINCitfX3ZiYUk0VmFyDQorX192YmFJblN0cg0KK19fdmJhSW5TdHJCDQorX192YmFJblN0clZhcg0KK19fdmJhSW5TdHJWYXJCDQorX192YmFJbnB1dEZpbGUNCitfX3ZiYUxhdGVJZENhbGwNCitfX3ZiYUxhdGVJZENhbGxMZA0KK19fdmJhTGF0ZUlkQ2FsbFN0DQorX192YmFMYXRlSWROYW1lZENhbGwNCitfX3ZiYUxhdGVJZE5hbWVkQ2FsbExkDQorX192YmFMYXRlSWROYW1lZENhbGxTdA0KK19fdmJhTGF0ZUlkTmFtZWRTdEFkDQorX192YmFMYXRlSWRTdA0KK19fdmJhTGF0ZUlkU3RBZA0KK19fdmJhTGF0ZU1lbUNhbGwNCitfX3ZiYUxhdGVNZW1DYWxsTGQNCitfX3ZiYUxhdGVNZW1DYWxsU3QNCitfX3ZiYUxhdGVNZW1OYW1lZENhbGwNCitfX3ZiYUxhdGVNZW1OYW1lZENhbGxMZA0KK19fdmJhTGF0ZU1lbU5hbWVkQ2FsbFN0DQorX192YmFMYXRlTWVtTmFtZWRTdEFkDQorX192YmFMYXRlTWVtU3QNCitfX3ZiYUxhdGVNZW1TdEFkDQorX192YmFMYm91bmQNCitFVkVOVF9TSU5LX1F1ZXJ5SW50ZXJmYWNlDQorRVZFTlRfU0lOS19BZGRSZWYNCitFVkVOVF9TSU5LX1JlbGVhc2UNCitFVkVOVF9TSU5LX0dldElEc09mTmFtZXMNCitFVkVOVF9TSU5LX0ludm9rZQ0KK19fdmJhTGRaZXJvQXJ5DQorX192YmFMZW5Cc3RyDQorX192YmFMZW5Cc3RyQg0KK19fdmJhTGVuVmFyDQorX192YmFMZW5WYXJCDQorQkFTSUNfQ0xBU1NfUXVlcnlJbnRlcmZhY2UNCitCQVNJQ19DTEFTU19BZGRSZWYNCitCQVNJQ19DTEFTU19SZWxlYXNlDQorQkFTSUNfQ0xBU1NfR2V0SURzT2ZOYW1lcw0KK0JBU0lDX0NMQVNTX0ludm9rZQ0KK19fdmJhTGluZUlucHV0U3RyDQorX192YmFMaW5lSW5wdXRWYXINCitfX3ZiYUxzZXRGaXhzdHINCitfX3ZiYUxzZXRGaXhzdHJGcmVlDQorX192YmFNaWRTdG10QnN0cg0KK0JBU0lDX0RJU1BJTlRFUkZBQ0VfR2V0VElDb3VudA0KK0JBU0lDX0RJU1BJTlRFUkZBQ0VfR2V0VHlwZUluZm8NCitfX3ZiYU1pZFN0bXRCc3RyQg0KK19fdmJhTWlkU3RtdFZhcg0KK19fdmJhTWlkU3RtdFZhckINCitfX3ZiYU5hbWVGaWxlDQorX192YmFOZXcyDQorX192YmFOZXcNCitfX3ZiYU5leHRFYWNoQXJ5DQorX192YmFOZXh0RWFjaENvbGxBZA0KK1pvbWJpZV9RdWVyeUludGVyZmFjZQ0KK1pvbWJpZV9BZGRSZWYNCitab21iaWVfUmVsZWFzZQ0KK1pvbWJpZV9HZXRUeXBlSW5mb0NvdW50DQorWm9tYmllX0dldFR5cGVJbmZvDQorWm9tYmllX0dldElEc09mTmFtZXMNCitab21iaWVfSW52b2tlDQorX192YmFOZXh0RWFjaENvbGxPYmoNCitfX3ZiYU5leHRFYWNoQ29sbFZhcg0KK19fdmJhTmV4dEVhY2hWYXINCitFVkVOVF9TSU5LMl9BZGRSZWYNCitFVkVOVF9TSU5LMl9SZWxlYXNlDQorX192YmFPYmpBZGRyZWYNCitfX3ZiYU9iaklzDQorX192YmFPYmpTZXQNCitfX3ZiYU9ialNldEFkZHJlZg0KK19fdmJhT2JqVmFyDQorX192YmFPbkVycm9yDQorX192YmFPbkdvQ2hlY2sNCitfX3ZiYVBvd2VyUjgNCitfX3ZiYVByaW50RmlsZQ0KK19fdmJhUHJpbnRPYmoNCitfX3ZiYVB1dDMNCitfX3ZiYVB1dDQNCitfX3ZiYVB1dEZ4U3RyMw0KK19fdmJhUHV0RnhTdHI0DQorX192YmFQdXRPd25lcjMNCitfX3ZiYVB1dE93bmVyNA0KK19fdmJhUjRDeQ0KK19fdmJhUjRFcnJWYXINCitfX3ZiYVI0Rm9yTmV4dENoZWNrDQorX192YmFSNFNnbg0KK19fdmJhUjRTdHINCitfX3ZiYVI0VmFyDQorX192YmFSOEN5DQorX192YmFSOEVyclZhcg0KK19fdmJhUjhGaXhJMg0KK19fdmJhUjhGaXhJNA0KK19fdmJhUjhGb3JOZXh0Q2hlY2sNCitfX3ZiYVI4SW50STINCitfX3ZiYVI4SW50STQNCitfX3ZiYVI4U2duDQorX192YmFSOFN0cg0KK19fdmJhUjhWYXINCitfX3ZiYVJhaXNlRXZlbnQNCitfX3ZiYVJlY0Fuc2lUb1VuaQ0KK19fdmJhUmVjQXNzaWduDQorX192YmFSZWNEZXN0cnVjdA0KK19fdmJhUmVjRGVzdHJ1Y3RBbnNpDQorX192YmFSZWNVbmlUb0Fuc2kNCitfX3ZiYVJlZGltDQorX192YmFSZWRpbVByZXNlcnZlDQorX192YmFSZWRpbVByZXNlcnZlVmFyDQorX192YmFSZWRpbVByZXNlcnZlVmFyMg0KK19fdmJhUmVkaW1WYXINCitfX3ZiYVJlZlZhckFyeQ0KK19fdmJhUmVzdW1lDQorX192YmFSc2V0Rml4c3RyDQorX192YmFSc2V0Rml4c3RyRnJlZQ0KK19fdmJhU2V0U3lzdGVtRXJyb3INCitfX3ZiYVN0b3BFeGUNCitfX3ZiYVN0cjJWZWMNCitfX3ZiYVN0ckFyeVRvQW5zaQ0KK19fdmJhU3RyQXJ5VG9Vbmljb2RlDQorX192YmFTdHJCb29sDQorX192YmFTdHJDYXQNCitfX3ZiYVN0ckNtcA0KK19fdmJhU3RyQ29tcA0KK19fdmJhU3RyQ29tcFZhcg0KK19fdmJhU3RyQ3kNCitfX3ZiYVN0ckRhdGUNCitfX3ZiYVN0ckZpeHN0cg0KK19fdmJhU3RySTINCitfX3ZiYVN0ckk0DQorX192YmFTdHJMaWtlDQorX192YmFTdHJSNA0KK19fdmJhU3RyUjgNCitfX3ZiYVN0clRleHRDbXANCitfX3ZiYVN0clRleHRMaWtlDQorX192YmFTdHJUb0Fuc2kNCitfX3ZiYVN0clRvVW5pY29kZQ0KK19fdmJhU3RyVUkxDQorcnRjTGVmdEJzdHINCitydGNMZWZ0VmFyDQorcnRjUmlnaHRCc3RyDQorcnRjUmlnaHRWYXINCitydGNBbnNpVmFsdWVCc3RyDQorcnRjTG93ZXJDYXNlQnN0cg0KK3J0Y0xvd2VyQ2FzZVZhcg0KK3J0Y1RyaW1Cc3RyDQorcnRjVHJpbVZhcg0KK3J0Y0xlZnRUcmltQnN0cg0KK3J0Y0xlZnRUcmltVmFyDQorcnRjUmlnaHRUcmltQnN0cg0KK3J0Y1JpZ2h0VHJpbVZhcg0KK3J0Y1NwYWNlQnN0cg0KK3J0Y1NwYWNlVmFyDQorcnRjVXBwZXJDYXNlQnN0cg0KK3J0Y1VwcGVyQ2FzZVZhcg0KK3J0Y0tpbGxGaWxlcw0KK3J0Y0NoYW5nZURpcg0KK3J0Y01ha2VEaXINCitydGNSZW1vdmVEaXINCitydGNDaGFuZ2VEcml2ZQ0KK3J0Y0JlZXANCitydGNHZXRUaW1lcg0KK3J0Y1N0ckZyb21WYXINCitydGNCc3RyRnJvbUFuc2kNCitydGNQYWNrRGF0ZQ0KK3J0Y1BhY2tUaW1lDQorcnRjR2V0RGF0ZVZhbHVlDQorcnRjR2V0VGltZVZhbHVlDQorcnRjR2V0RGF5T2ZNb250aA0KK3J0Y0dldEhvdXJPZkRheQ0KK3J0Y0dldE1pbnV0ZU9mSG91cg0KK3J0Y0dldE1vbnRoT2ZZZWFyDQorcnRjR2V0UHJlc2VudERhdGUNCitydGNHZXRTZWNvbmRPZk1pbnV0ZQ0KK3J0Y1NldERhdGVWYXINCitydGNTZXREYXRlQnN0cg0KK3J0Y1NldFRpbWVWYXINCitydGNTZXRUaW1lQnN0cg0KK3J0Y0dldERheU9mV2Vlaw0KK3J0Y0dldFllYXINCitydGNGaWxlUmVzZXQNCitydGNGaWxlQXR0cmlidXRlcw0KK3J0Y0lzQXJyYXkNCitydGNJc0RhdGUNCitydGNJc0VtcHR5DQorcnRjSXNFcnJvcg0KK3J0Y0lzTnVsbA0KK3J0Y0lzTnVtZXJpYw0KK3J0Y0lzT2JqZWN0DQorcnRjVmFyVHlwZQ0KK3J0RGVjRnJvbVZhcg0KK3J0Y0ZpbGVXaWR0aA0KK3J0Y0lucHV0Q291bnQNCitydGNJbnB1dENvdW50VmFyDQorcnRjRmlsZVNlZWsNCitydGNGaWxlTG9jYXRpb24NCitydGNGaWxlTGVuZ3RoDQorcnRjRW5kT2ZGaWxlDQorcnRjSGV4QnN0ckZyb21WYXINCitydGNIZXhWYXJGcm9tVmFyDQorcnRjT2N0QnN0ckZyb21WYXINCitydGNPY3RWYXJGcm9tVmFyDQorcnRjRmlsZUNvcHkNCitydGNGaWxlRGF0ZVRpbWUNCitydGNGaWxlTGVuDQorcnRjR2V0RmlsZUF0dHINCitydGNTZXRGaWxlQXR0cg0KK3J0Y1I4VmFsRnJvbUJzdHINCitydGNTaW4NCitydGNDb3MNCitydGNUYW4NCitydGNBdG4NCitydGNFeHANCitydGNMb2cNCitydGNSZ2INCitydGNRQkNvbG9yDQorcnRjTWFjSWQNCitydGNUeXBlTmFtZQ0KK3J0Y0lzTWlzc2luZw0KK3J0Y1JhbmRvbU5leHQNCitydGNSYW5kb21pemUNCitydGNNc2dCb3gNCitydGNJbnB1dEJveA0KK3J0Y0FwcEFjdGl2YXRlDQorcnRjRG9FdmVudHMNCitydGNTZW5kS2V5cw0KK3J0Y1NoZWxsDQorcnRjQXJyYXkNCitfX3ZiYVN0clZhckNvcHkNCitfX3ZiYVN0clZhck1vdmUNCitfX3ZiYVN0clZhclZhbA0KK3J0Y0dldEVybA0KK3J0Y1N0cmluZ0JzdHINCitydGNTdHJpbmdWYXINCitydGNWYXJCc3RyRnJvbUFuc2kNCitydGNHZXREYXRlQnN0cg0KK3J0Y0dldERhdGVWYXINCitydGNHZXRUaW1lQnN0cg0KK3J0Y0dldFRpbWVWYXINCitydGNWYXJTdHJGcm9tVmFyDQorcnRjU3FyDQorcnRjSU1FU3RhdHVzDQorcnRjTGVmdENoYXJCc3RyDQorcnRjTGVmdENoYXJWYXINCitydGNSaWdodENoYXJCc3RyDQorcnRjUmlnaHRDaGFyVmFyDQorcnRjSW5wdXRDaGFyQ291bnQNCitydGNJbnB1dENoYXJDb3VudFZhcg0KK3J0Y1N0ckNvbnZWYXINCitfX3ZiYVVJMUN5DQorcnRjR2V0SG9zdExDSUQNCitydGNDcmVhdGVPYmplY3QNCitydGNHZXRPYmplY3QNCitydGNBcHBsZVNjcmlwdA0KK3J0Y01pZEJzdHINCitydGNNaWRWYXINCitydGNJblN0cg0KK3J0Y01pZENoYXJCc3RyDQorcnRjTWlkQ2hhclZhcg0KK3J0Y0luU3RyQ2hhcg0KK3J0QnN0ckZyb21FcnJWYXINCitydEJvb2xGcm9tRXJyVmFyDQorcnRDeUZyb21FcnJWYXINCitydEkyRnJvbUVyclZhcg0KK3J0STRGcm9tRXJyVmFyDQorcnRSNEZyb21FcnJWYXINCitydFI4RnJvbUVyclZhcg0KK3J0Y0RhdGVGcm9tVmFyDQorcnRjVmFyRnJvbVZhcg0KK3J0Y0NWRXJyRnJvbVZhcg0KK1ZhclB0cg0KK3J0Y0Rpcg0KK3J0Y0N1cnJlbnREaXJCc3RyDQorcnRjQ3VycmVudERpcg0KK3J0Y0ZyZWVGaWxlDQorcnRjQ29tcGFyZUJzdHINCitydGNCc3RyRnJvbUZvcm1hdFZhcg0KK3J0Y0JzdHJGcm9tRXJyb3INCitydGNWYXJGcm9tRXJyb3INCitydGNMZW5DaGFyVmFyDQorcnRjTGVuVmFyDQorcnRjRml4VmFyDQorcnRjQWJzVmFyDQorcnRjSW50VmFyDQorcnRjU2duVmFyDQorX192YmFVSTFFcnJWYXINCitydGNWYXJGcm9tRm9ybWF0VmFyDQorcnRjRGF0ZUFkZA0KK3J0Y0RhdGVEaWZmDQorcnRjRGF0ZVBhcnQNCitydGNQYXJ0aXRpb24NCitydGNDaG9vc2UNCitydGNFbnZpcm9uVmFyDQorcnRjRW52aXJvbkJzdHINCitydGNTd2l0Y2gNCitydGNDb21tYW5kQnN0cg0KK3J0Y0NvbW1hbmRWYXINCitydGNTTE4NCitydGNTWUQNCitydGNEREINCitydGNJUE1UDQorcnRjUFBNVA0KK3J0Y1BNVA0KK3J0Y1BWDQorcnRjRlYNCitydGNOUGVyDQorcnRjUmF0ZQ0KK3J0Y0ltbWVkaWF0ZUlmDQorcnRjSVJSDQorcnRjTUlSUg0KK3J0Y05QVg0KK3J0Y0Vyck9iag0KK3J0VUkxRnJvbUVyclZhcg0KK3J0Y1ZhckRhdGVGcm9tVmFyDQorX192YmFVSTFTdHINCitydGNHZXRTZXR0aW5nDQorcnRjU2F2ZVNldHRpbmcNCitydGNEZWxldGVTZXR0aW5nDQorcnRjR2V0QWxsU2V0dGluZ3MNCitydGNCeXRlVmFsdWVCc3RyDQorcnRjQnN0ckZyb21CeXRlDQorcnRjVmFyQnN0ckZyb21CeXRlDQorcnRjQ2hhclZhbHVlQnN0cg0KK3J0Y0JzdHJGcm9tQ2hhcg0KK3J0Y1ZhckJzdHJGcm9tQ2hhcg0KK3J0Y1NldEN1cnJlbnRDYWxlbmRhcg0KK3J0Y0dldEN1cnJlbnRDYWxlbmRhcg0KK19fdmJhVUkxVmFyDQorcnRjRm9ybWF0TnVtYmVyDQorcnRjRm9ybWF0Q3VycmVuY3kNCitydGNGb3JtYXRQZXJjZW50DQorcnRjRm9ybWF0RGF0ZVRpbWUNCitydGNXZWVrZGF5TmFtZQ0KK3J0Y01vbnRoTmFtZQ0KK3J0Y0ZpbHRlcg0KK3J0Y0luU3RyUmV2DQorcnRjSm9pbg0KK3J0Y1NwbGl0DQorcnRjUmVwbGFjZQ0KK3J0Y1N0clJldmVyc2UNCitydGNSb3VuZA0KK3J0Y0NhbGxCeU5hbWUNCitydGNDcmVhdGVPYmplY3QyDQorcnRjU3RyQ29udlZhcjINCitfX3ZiYVVib3VuZA0KK19fdmJhVWR0VmFyDQorX192YmFVbmtWYXINCitfX3ZiYVZhcjJWZWMNCitfX3ZiYVZhckFicw0KK19fdmJhVmFyQWRkDQorX192YmFWYXJBbmQNCitfX3ZiYVZhckNhdA0KK19fdmJhVmFyQ21wRXENCitfX3ZiYVZhckNtcEdlDQorX192YmFWYXJDbXBHdA0KK19fdmJhVmFyQ21wTGUNCitfX3ZiYVZhckNtcEx0DQorX192YmFWYXJDbXBOZQ0KK19fdmJhVmFyRGF0ZVZhcg0KK19fdmJhVmFyRGl2DQorX192YmFWYXJFcXYNCitfX3ZiYVZhckVyckk0DQorX192YmFWYXJGaXgNCitfX3ZiYVZhckZvckluaXQNCitfX3ZiYVZhckZvck5leHQNCitfX3ZiYVZhcklkaXYNCitfX3ZiYVZhckltcA0KK19fdmJhVmFySW5kZXhMb2FkDQorX192YmFWYXJJbmRleExvYWRSZWYNCitfX3ZiYVZhckluZGV4TG9hZFJlZkxvY2sNCitfX3ZiYVZhckluZGV4U3RvcmUNCitfX3ZiYVZhckluZGV4U3RvcmVPYmoNCitfX3ZiYVZhckludA0KK19fdmJhVmFyTGlrZQ0KK19fdmJhVmFyTGlrZVZhcg0KK19fdmJhVmFyTW9kDQorX192YmFWYXJNdWwNCitfX3ZiYVZhck5lZw0KK19fdmJhVmFyTm90DQorX192YmFWYXJPcg0KK19fdmJhVmFyUG93DQorX192YmFWYXJTZXRPYmoNCitfX3ZiYVZhclNldE9iakFkZHJlZg0KK19fdmJhVmFyU2V0VW5rDQorX192YmFWYXJTZXRVbmtBZGRyZWYNCitfX3ZiYVZhclNldFZhcg0KK19fdmJhVmFyU2V0VmFyQWRkcmVmDQorX192YmFWYXJTdWINCitfX3ZiYVZhclRleHRDbXBFcQ0KK19fdmJhVmFyVGV4dENtcEdlDQorX192YmFWYXJUZXh0Q21wR3QNCitfX3ZiYVZhclRleHRDbXBMZQ0KK19fdmJhVmFyVGV4dENtcEx0DQorX192YmFWYXJUZXh0Q21wTmUNCitfX3ZiYVZhclRleHRMaWtlDQorX192YmFWYXJUZXh0TGlrZVZhcg0KK19fdmJhVmFyVGV4dFRzdEVxDQorX192YmFWYXJUZXh0VHN0R2UNCitfX3ZiYVZhclRleHRUc3RHdA0KK19fdmJhVmFyVGV4dFRzdExlDQorX192YmFWYXJUZXh0VHN0THQNCitfX3ZiYVZhclRleHRUc3ROZQ0KK19fdmJhVmFyVHN0RXENCitfX3ZiYVZhclRzdEdlDQorX192YmFWYXJUc3RHdA0KK19fdmJhVmFyVHN0TGUNCitfX3ZiYVZhclRzdEx0DQorX192YmFWYXJUc3ROZQ0KK19fdmJhVmFyWG9yDQorX192YmFWYXJnT2JqDQorX192YmFWYXJnT2JqQWRkcmVmDQorX192YmFWYXJnVW5rDQorX192YmFWYXJnVW5rQWRkcmVmDQorX192YmFWZXJpZnlWYXJPYmoNCitfX3ZiYVdyaXRlRmlsZQ0KK19hZGpfZmRpdl9tMTZpDQorX2Fkal9mZGl2X20zMg0KK19hZGpfZmRpdl9tMzJpDQorX2Fkal9mZGl2X202NA0KK19hZGpfZmRpdl9yDQorX2Fkal9mZGl2cl9tMTZpDQorX2Fkal9mZGl2cl9tMzINCitfYWRqX2ZkaXZyX20zMmkNCitfYWRqX2ZkaXZyX202NA0KK19hZGpfZnBhdGFuDQorX2Fkal9mcHJlbQ0KK19hZGpfZnByZW0xDQorX2Fkal9mcHRhbg0KK19hbGxtdWwNCitUaXBJbnZva2VNZXRob2QyDQorVGlwSW52b2tlTWV0aG9kDQorSUlEX0lWYmFIb3N0IERBVEENCitFYkdldE9iakNvbm5lY3Rpb25Db3VudHMNCitDcmVhdGVJRXhwclNydk9iag0KK0ViR2V0VkJBT2JqZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2V4c3RyYWNlLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dleHN0cmFjZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTY1N2YyOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dleHN0cmFjZS5kZWYKQEAgLTAsMCArMSwyMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBleHN0cmFjZS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgZXhzdHJhY2UuZGxsDQorRVhQT1JUUw0KK19Bc3luY0JpbmFyeVRyYWNlQDE2DQorX0FzeW5jU3RyaW5nVHJhY2VAMTINCitfRGVidWdBc3NlcnRAMTINCitfRGxsTWFpbkAxMg0KK19GbHVzaEFzeW5jVHJhY2VAMA0KK19Jbml0QXN5bmNUcmFjZUAwDQorX1NldEFzeW5jVHJhY2VQYXJhbXNAMTYNCitfU2V0QXN5bmNUcmFjZVBhcmFtc0V4QDIwDQorX1Rlcm1Bc3luY1RyYWNlQDANCitfX2R3RW5hYmxlZFRyYWNlcyBEQVRBDQorX2dfVGVzdFRyYWNlQDANCitfZ19UZXN0VHJhY2VEaXNhYmxlQDANCitfZ19UZXN0VHJhY2VFbmFibGVAMA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dleHRtZ3IuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2V4dG1nci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzk4NmI5MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dleHRtZ3IuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZXh0bWdyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBleHRtZ3IuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2YzYWh2b2FzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dmM2Fodm9hcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmFiNmY1NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dmM2Fodm9hcy5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGM0FIVk9BUy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRjNBSFZPQVMuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KK0tiZE5sc0xheWVyRGVzY3JpcHRvcg0KK0Z1aml0c3VPeWF5dWJpQ29udHJvbA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dmYXN0cHJveC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZmFzdHByb3guZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJkMjAxNDEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZmFzdHByb3guZGVmCkBAIC0wLDAgKzEsMzExMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGYXN0UHJveC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRmFzdFByb3guZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbXBsPHN0cnVjdCBJV2JlbU9iamVjdFRleHRTcmMsY2xhc3MgQ1dtaU9iamVjdFRleHRTcmM+OjpDSW1wbDxzdHJ1Y3QgSVdiZW1PYmplY3RUZXh0U3JjLGNsYXNzIENXbWlPYmplY3RUZXh0U3JjPihjbGFzcyBDSW1wbDxzdHJ1Y3QgSVdiZW1PYmplY3RUZXh0U3JjLGNsYXNzIENXbWlPYmplY3RUZXh0U3JjPiBjb25zdCAmKQ0KKz8/MD8kQ0ltcGxAVUlXYmVtT2JqZWN0VGV4dFNyY0BAVkNXbWlPYmplY3RUZXh0U3JjQEBAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0ltcGw8c3RydWN0IElXYmVtT2JqZWN0VGV4dFNyYyxjbGFzcyBDV21pT2JqZWN0VGV4dFNyYz46OkNJbXBsPHN0cnVjdCBJV2JlbU9iamVjdFRleHRTcmMsY2xhc3MgQ1dtaU9iamVjdFRleHRTcmM+KGNsYXNzIENXbWlPYmplY3RUZXh0U3JjICopDQorPz8wPyRDSW1wbEBVSVdiZW1PYmplY3RUZXh0U3JjQEBWQ1dtaU9iamVjdFRleHRTcmNAQEBAUUFFQFBBVkNXbWlPYmplY3RUZXh0U3JjQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbXBsPHN0cnVjdCBJV2JlbVJlZnJlc2hpbmdTZXJ2aWNlcyxjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM+OjpDSW1wbDxzdHJ1Y3QgSVdiZW1SZWZyZXNoaW5nU2VydmljZXMsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPihjbGFzcyBDSW1wbDxzdHJ1Y3QgSVdiZW1SZWZyZXNoaW5nU2VydmljZXMsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPiBjb25zdCAmKQ0KKz8/MD8kQ0ltcGxAVUlXYmVtUmVmcmVzaGluZ1NlcnZpY2VzQEBWQ1diZW1SZWZyZXNoaW5nU3ZjQEBAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0ltcGw8c3RydWN0IElXYmVtUmVmcmVzaGluZ1NlcnZpY2VzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz46OkNJbXBsPHN0cnVjdCBJV2JlbVJlZnJlc2hpbmdTZXJ2aWNlcyxjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM+KGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2YyAqKQ0KKz8/MD8kQ0ltcGxAVUlXYmVtUmVmcmVzaGluZ1NlcnZpY2VzQEBWQ1diZW1SZWZyZXNoaW5nU3ZjQEBAQFFBRUBQQVZDV2JlbVJlZnJlc2hpbmdTdmNAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0ltcGw8c3RydWN0IElXYmVtUmVtb3RlUmVmcmVzaGVyLGNsYXNzIENXYmVtUmVtb3RlUmVmcmVzaGVyPjo6Q0ltcGw8c3RydWN0IElXYmVtUmVtb3RlUmVmcmVzaGVyLGNsYXNzIENXYmVtUmVtb3RlUmVmcmVzaGVyPihjbGFzcyBDSW1wbDxzdHJ1Y3QgSVdiZW1SZW1vdGVSZWZyZXNoZXIsY2xhc3MgQ1diZW1SZW1vdGVSZWZyZXNoZXI+IGNvbnN0ICYpDQorPz8wPyRDSW1wbEBVSVdiZW1SZW1vdGVSZWZyZXNoZXJAQFZDV2JlbVJlbW90ZVJlZnJlc2hlckBAQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbXBsPHN0cnVjdCBJV2JlbVJlbW90ZVJlZnJlc2hlcixjbGFzcyBDV2JlbVJlbW90ZVJlZnJlc2hlcj46OkNJbXBsPHN0cnVjdCBJV2JlbVJlbW90ZVJlZnJlc2hlcixjbGFzcyBDV2JlbVJlbW90ZVJlZnJlc2hlcj4oY2xhc3MgQ1diZW1SZW1vdGVSZWZyZXNoZXIgKikNCis/PzA/JENJbXBsQFVJV2JlbVJlbW90ZVJlZnJlc2hlckBAVkNXYmVtUmVtb3RlUmVmcmVzaGVyQEBAQFFBRUBQQVZDV2JlbVJlbW90ZVJlZnJlc2hlckBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSW1wbDxzdHJ1Y3QgX0lXYmVtQ29uZmlndXJlUmVmcmVzaGluZ1N2Y3MsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPjo6Q0ltcGw8c3RydWN0IF9JV2JlbUNvbmZpZ3VyZVJlZnJlc2hpbmdTdmNzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz4oY2xhc3MgQ0ltcGw8c3RydWN0IF9JV2JlbUNvbmZpZ3VyZVJlZnJlc2hpbmdTdmNzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz4gY29uc3QgJikNCis/PzA/JENJbXBsQFVfSVdiZW1Db25maWd1cmVSZWZyZXNoaW5nU3Zjc0BAVkNXYmVtUmVmcmVzaGluZ1N2Y0BAQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbXBsPHN0cnVjdCBfSVdiZW1Db25maWd1cmVSZWZyZXNoaW5nU3ZjcyxjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM+OjpDSW1wbDxzdHJ1Y3QgX0lXYmVtQ29uZmlndXJlUmVmcmVzaGluZ1N2Y3MsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPihjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmMgKikNCis/PzA/JENJbXBsQFVfSVdiZW1Db25maWd1cmVSZWZyZXNoaW5nU3Zjc0BAVkNXYmVtUmVmcmVzaGluZ1N2Y0BAQEBRQUVAUEFWQ1diZW1SZWZyZXNoaW5nU3ZjQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbXBsPHN0cnVjdCBfSVdiZW1FbnVtTWFyc2hhbGluZyxjbGFzcyBDV2JlbUVudW1NYXJzaGFsaW5nPjo6Q0ltcGw8c3RydWN0IF9JV2JlbUVudW1NYXJzaGFsaW5nLGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmc+KGNsYXNzIENJbXBsPHN0cnVjdCBfSVdiZW1FbnVtTWFyc2hhbGluZyxjbGFzcyBDV2JlbUVudW1NYXJzaGFsaW5nPiBjb25zdCAmKQ0KKz8/MD8kQ0ltcGxAVV9JV2JlbUVudW1NYXJzaGFsaW5nQEBWQ1diZW1FbnVtTWFyc2hhbGluZ0BAQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbXBsPHN0cnVjdCBfSVdiZW1FbnVtTWFyc2hhbGluZyxjbGFzcyBDV2JlbUVudW1NYXJzaGFsaW5nPjo6Q0ltcGw8c3RydWN0IF9JV2JlbUVudW1NYXJzaGFsaW5nLGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmc+KGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmcgKikNCis/PzA/JENJbXBsQFVfSVdiZW1FbnVtTWFyc2hhbGluZ0BAVkNXYmVtRW51bU1hcnNoYWxpbmdAQEBAUUFFQFBBVkNXYmVtRW51bU1hcnNoYWxpbmdAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0ltcGw8c3RydWN0IF9JV2JlbUZldGNoUmVmcmVzaGVyTWdyLGNsYXNzIENXYmVtRmV0Y2hSZWZyTWdyPjo6Q0ltcGw8c3RydWN0IF9JV2JlbUZldGNoUmVmcmVzaGVyTWdyLGNsYXNzIENXYmVtRmV0Y2hSZWZyTWdyPihjbGFzcyBDSW1wbDxzdHJ1Y3QgX0lXYmVtRmV0Y2hSZWZyZXNoZXJNZ3IsY2xhc3MgQ1diZW1GZXRjaFJlZnJNZ3I+IGNvbnN0ICYpDQorPz8wPyRDSW1wbEBVX0lXYmVtRmV0Y2hSZWZyZXNoZXJNZ3JAQFZDV2JlbUZldGNoUmVmck1nckBAQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbXBsPHN0cnVjdCBfSVdiZW1GZXRjaFJlZnJlc2hlck1ncixjbGFzcyBDV2JlbUZldGNoUmVmck1ncj46OkNJbXBsPHN0cnVjdCBfSVdiZW1GZXRjaFJlZnJlc2hlck1ncixjbGFzcyBDV2JlbUZldGNoUmVmck1ncj4oY2xhc3MgQ1diZW1GZXRjaFJlZnJNZ3IgKikNCis/PzA/JENJbXBsQFVfSVdiZW1GZXRjaFJlZnJlc2hlck1nckBAVkNXYmVtRmV0Y2hSZWZyTWdyQEBAQFFBRUBQQVZDV2JlbUZldGNoUmVmck1nckBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSW1wbDxzdHJ1Y3QgX0lXbWlPYmplY3RGYWN0b3J5LGNsYXNzIENXbWlPYmplY3RGYWN0b3J5Pjo6Q0ltcGw8c3RydWN0IF9JV21pT2JqZWN0RmFjdG9yeSxjbGFzcyBDV21pT2JqZWN0RmFjdG9yeT4oY2xhc3MgQ0ltcGw8c3RydWN0IF9JV21pT2JqZWN0RmFjdG9yeSxjbGFzcyBDV21pT2JqZWN0RmFjdG9yeT4gY29uc3QgJikNCis/PzA/JENJbXBsQFVfSVdtaU9iamVjdEZhY3RvcnlAQFZDV21pT2JqZWN0RmFjdG9yeUBAQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbXBsPHN0cnVjdCBfSVdtaU9iamVjdEZhY3RvcnksY2xhc3MgQ1dtaU9iamVjdEZhY3Rvcnk+OjpDSW1wbDxzdHJ1Y3QgX0lXbWlPYmplY3RGYWN0b3J5LGNsYXNzIENXbWlPYmplY3RGYWN0b3J5PihjbGFzcyBDV21pT2JqZWN0RmFjdG9yeSAqKQ0KKz8/MD8kQ0ltcGxAVV9JV21pT2JqZWN0RmFjdG9yeUBAVkNXbWlPYmplY3RGYWN0b3J5QEBAQFFBRUBQQVZDV21pT2JqZWN0RmFjdG9yeUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5Pjo6Q1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT4oY2xhc3MgQ1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT4gJikNCis/PzA/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBAUUFFQEFBVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5Pjo6Q1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT4oY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+IGNvbnN0ICYpDQorPz8wPyRDUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFZDRmxleEFycmF5QEBAQFFBRUBBQlY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+OjpDUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENXbWlUZXh0U291cmNlPixjbGFzcyBDRmxleEFycmF5PihjbGFzcyBDUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENXbWlUZXh0U291cmNlPixjbGFzcyBDRmxleEFycmF5PiAmKQ0KKz8/MD8kQ1BvaW50ZXJBcnJheUBWQ1dtaVRleHRTb3VyY2VAQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDV21pVGV4dFNvdXJjZUBAQEBWQ0ZsZXhBcnJheUBAQEBRQUVAQUFWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+OjpDUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENXbWlUZXh0U291cmNlPixjbGFzcyBDRmxleEFycmF5PihjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4gY29uc3QgJikNCis/PzA/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBAUUFFQEFCVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNXbWlUZXh0U291cmNlQEBAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1JlZmVkUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPjo6Q1JlZmVkUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPihjbGFzcyBDUmVmZWRQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+ICYpDQorPz8wPyRDUmVmZWRQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFFBRUBBQVYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1JlZmVkUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPjo6Q1JlZmVkUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPih2b2lkKQ0KKz8/MD8kQ1JlZmVkUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUmVmZWRQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+OjpDUmVmZWRQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+KGNsYXNzIENSZWZlZFBvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZT4gJikNCis/PzA/JENSZWZlZFBvaW50ZXJBcnJheUBWQ1dtaVRleHRTb3VyY2VAQEBAUUFFQEFBVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUmVmZWRQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+OjpDUmVmZWRQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+KHZvaWQpDQorPz8wPyRDUmVmZWRQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENCYXNpY1F1YWxpZmllclNldDo6Q0Jhc2ljUXVhbGlmaWVyU2V0KHZvaWQpDQorPz8wQ0Jhc2ljUXVhbGlmaWVyU2V0QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ2xhc3NBbmRNZXRob2RzOjpDQ2xhc3NBbmRNZXRob2RzKGNsYXNzIENDbGFzc0FuZE1ldGhvZHMgY29uc3QgJikNCis/PzBDQ2xhc3NBbmRNZXRob2RzQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDbGFzc0FuZE1ldGhvZHM6OkNDbGFzc0FuZE1ldGhvZHModm9pZCkNCis/PzBDQ2xhc3NBbmRNZXRob2RzQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpDQ2xhc3NQYXJ0KGNsYXNzIENDbGFzc1BhcnQgY29uc3QgJikNCis/PzBDQ2xhc3NQYXJ0QEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkNDbGFzc1BhcnQodm9pZCkNCis/PzBDQ2xhc3NQYXJ0QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ2xhc3NQYXJ0Q29udGFpbmVyOjpDQ2xhc3NQYXJ0Q29udGFpbmVyKGNsYXNzIENDbGFzc1BhcnRDb250YWluZXIgY29uc3QgJikNCis/PzBDQ2xhc3NQYXJ0Q29udGFpbmVyQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDbGFzc1BhcnRDb250YWluZXI6OkNDbGFzc1BhcnRDb250YWluZXIodm9pZCkNCis/PzBDQ2xhc3NQYXJ0Q29udGFpbmVyQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ2xhc3NRdWFsaWZpZXJTZXQ6OkNDbGFzc1F1YWxpZmllclNldChjbGFzcyBDQ2xhc3NRdWFsaWZpZXJTZXQgY29uc3QgJikNCis/PzBDQ2xhc3NRdWFsaWZpZXJTZXRAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NsYXNzUXVhbGlmaWVyU2V0OjpDQ2xhc3NRdWFsaWZpZXJTZXQoaW50KQ0KKz8/MENDbGFzc1F1YWxpZmllclNldEBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEZWNvcmF0aW9uUGFydDo6Q0RlY29yYXRpb25QYXJ0KHZvaWQpDQorPz8wQ0RlY29yYXRpb25QYXJ0QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRmFzdFByb3BlcnR5QmFnOjpDRmFzdFByb3BlcnR5QmFnKGNsYXNzIENGYXN0UHJvcGVydHlCYWcgJikNCis/PzBDRmFzdFByb3BlcnR5QmFnQEBRQUVAQUFWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENGYXN0UHJvcGVydHlCYWc6OkNGYXN0UHJvcGVydHlCYWcodm9pZCkNCis/PzBDRmFzdFByb3BlcnR5QmFnQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRml4ZWRCU1RSQXJyYXk6OkNGaXhlZEJTVFJBcnJheSh2b2lkKQ0KKz8/MENGaXhlZEJTVFJBcnJheUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0hpUGVyZkxvY2s6OkNIaVBlcmZMb2NrKHZvaWQpDQorPz8wQ0hpUGVyZkxvY2tAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbnN0YW5jZVBRU0NvbnRhaW5lcjo6Q0luc3RhbmNlUFFTQ29udGFpbmVyKGNsYXNzIENJbnN0YW5jZVBRU0NvbnRhaW5lciBjb25zdCAmKQ0KKz8/MENJbnN0YW5jZVBRU0NvbnRhaW5lckBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSW5zdGFuY2VQUVNDb250YWluZXI6OkNJbnN0YW5jZVBRU0NvbnRhaW5lcih2b2lkKQ0KKz8/MENJbnN0YW5jZVBRU0NvbnRhaW5lckBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0luc3RhbmNlUGFydDo6Q0luc3RhbmNlUGFydChjbGFzcyBDSW5zdGFuY2VQYXJ0IGNvbnN0ICYpDQorPz8wQ0luc3RhbmNlUGFydEBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0OjpDSW5zdGFuY2VQYXJ0KHZvaWQpDQorPz8wQ0luc3RhbmNlUGFydEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0luc3RhbmNlUGFydENvbnRhaW5lcjo6Q0luc3RhbmNlUGFydENvbnRhaW5lcihjbGFzcyBDSW5zdGFuY2VQYXJ0Q29udGFpbmVyIGNvbnN0ICYpDQorPz8wQ0luc3RhbmNlUGFydENvbnRhaW5lckBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0Q29udGFpbmVyOjpDSW5zdGFuY2VQYXJ0Q29udGFpbmVyKHZvaWQpDQorPz8wQ0luc3RhbmNlUGFydENvbnRhaW5lckBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0luc3RhbmNlUXVhbGlmaWVyU2V0OjpDSW5zdGFuY2VRdWFsaWZpZXJTZXQoY2xhc3MgQ0luc3RhbmNlUXVhbGlmaWVyU2V0IGNvbnN0ICYpDQorPz8wQ0luc3RhbmNlUXVhbGlmaWVyU2V0QEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbnN0YW5jZVF1YWxpZmllclNldDo6Q0luc3RhbmNlUXVhbGlmaWVyU2V0KGludCkNCis/PzBDSW5zdGFuY2VRdWFsaWZpZXJTZXRAQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSW50ZXJuYWxTdHJpbmc6OkNJbnRlcm5hbFN0cmluZyhjbGFzcyBDSW50ZXJuYWxTdHJpbmcgY29uc3QgJikNCis/PzBDSW50ZXJuYWxTdHJpbmdAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0ludGVybmFsU3RyaW5nOjpDSW50ZXJuYWxTdHJpbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBDSW50ZXJuYWxTdHJpbmdAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbnRlcm5hbFN0cmluZzo6Q0ludGVybmFsU3RyaW5nKHZvaWQpDQorPz8wQ0ludGVybmFsU3RyaW5nQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTGltaXRhdGlvbk1hcHBpbmc6OkNMaW1pdGF0aW9uTWFwcGluZyhjbGFzcyBDTGltaXRhdGlvbk1hcHBpbmcgJikNCis/PzBDTGltaXRhdGlvbk1hcHBpbmdAQFFBRUBBQVYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0xpbWl0YXRpb25NYXBwaW5nOjpDTGltaXRhdGlvbk1hcHBpbmcodm9pZCkNCis/PzBDTGltaXRhdGlvbk1hcHBpbmdAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENNZXRob2RQYXJ0OjpDTWV0aG9kUGFydChjbGFzcyBDTWV0aG9kUGFydCBjb25zdCAmKQ0KKz8/MENNZXRob2RQYXJ0QEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENNZXRob2RQYXJ0OjpDTWV0aG9kUGFydCh2b2lkKQ0KKz8/MENNZXRob2RQYXJ0QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0aG9kUGFydENvbnRhaW5lcjo6Q01ldGhvZFBhcnRDb250YWluZXIoY2xhc3MgQ01ldGhvZFBhcnRDb250YWluZXIgY29uc3QgJikNCis/PzBDTWV0aG9kUGFydENvbnRhaW5lckBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0aG9kUGFydENvbnRhaW5lcjo6Q01ldGhvZFBhcnRDb250YWluZXIodm9pZCkNCis/PzBDTWV0aG9kUGFydENvbnRhaW5lckBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ01ldGhvZFF1YWxpZmllclNldDo6Q01ldGhvZFF1YWxpZmllclNldChjbGFzcyBDTWV0aG9kUXVhbGlmaWVyU2V0IGNvbnN0ICYpDQorPz8wQ01ldGhvZFF1YWxpZmllclNldEBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0aG9kUXVhbGlmaWVyU2V0OjpDTWV0aG9kUXVhbGlmaWVyU2V0KHZvaWQpDQorPz8wQ01ldGhvZFF1YWxpZmllclNldEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lcjo6Q01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lcihjbGFzcyBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyIGNvbnN0ICYpDQorPz8wQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lckBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyOjpDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyKHZvaWQpDQorPz8wQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lckBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1Byb3BlcnR5QmFnSXRlbUFycmF5OjpDUHJvcGVydHlCYWdJdGVtQXJyYXkoY2xhc3MgQ1Byb3BlcnR5QmFnSXRlbUFycmF5ICYpDQorPz8wQ1Byb3BlcnR5QmFnSXRlbUFycmF5QEBRQUVAQUFWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENQcm9wZXJ0eUJhZ0l0ZW1BcnJheTo6Q1Byb3BlcnR5QmFnSXRlbUFycmF5KHZvaWQpDQorPz8wQ1Byb3BlcnR5QmFnSXRlbUFycmF5QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUXVhbGlmaWVyU2V0OjpDUXVhbGlmaWVyU2V0KGNsYXNzIENRdWFsaWZpZXJTZXQgY29uc3QgJikNCis/PzBDUXVhbGlmaWVyU2V0QEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXQ6OkNRdWFsaWZpZXJTZXQoaW50LGludCkNCis/PzBDUXVhbGlmaWVyU2V0QEBRQUVASEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXRMaXN0Q29udGFpbmVyOjpDUXVhbGlmaWVyU2V0TGlzdENvbnRhaW5lcihjbGFzcyBDUXVhbGlmaWVyU2V0TGlzdENvbnRhaW5lciBjb25zdCAmKQ0KKz8/MENRdWFsaWZpZXJTZXRMaXN0Q29udGFpbmVyQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXRMaXN0Q29udGFpbmVyOjpDUXVhbGlmaWVyU2V0TGlzdENvbnRhaW5lcih2b2lkKQ0KKz8/MENRdWFsaWZpZXJTZXRMaXN0Q29udGFpbmVyQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDVHlwZTo6Q1R5cGUodW5zaWduZWQgbG9uZykNCis/PzBDVHlwZUBAUUFFQEtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENUeXBlOjpDVHlwZSh2b2lkKQ0KKz8/MENUeXBlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV2JlbUNhbGxTZWN1cml0eTo6Q1diZW1DYWxsU2VjdXJpdHkoY2xhc3MgQ1diZW1DYWxsU2VjdXJpdHkgY29uc3QgJikNCis/PzBDV2JlbUNhbGxTZWN1cml0eUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV2JlbUNhbGxTZWN1cml0eTo6Q1diZW1DYWxsU2VjdXJpdHkoY2xhc3MgQ0xpZmVDb250cm9sICopDQorPz8wQ1diZW1DYWxsU2VjdXJpdHlAQFFBRUBQQVZDTGlmZUNvbnRyb2xAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6Q1diZW1DbGFzcyhjbGFzcyBDV2JlbUNsYXNzIGNvbnN0ICYpDQorPz8wQ1diZW1DbGFzc0BAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV2JlbUNsYXNzOjpDV2JlbUNsYXNzKHZvaWQpDQorPz8wQ1diZW1DbGFzc0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1DbGFzc0NhY2hlOjpDV2JlbUNsYXNzQ2FjaGUoY2xhc3MgQ1diZW1DbGFzc0NhY2hlIGNvbnN0ICYpDQorPz8wQ1diZW1DbGFzc0NhY2hlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYmVtQ2xhc3NDYWNoZTo6Q1diZW1DbGFzc0NhY2hlKHVuc2lnbmVkIGxvbmcpDQorPz8wQ1diZW1DbGFzc0NhY2hlQEBRQUVAS0BaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQ1diZW1EYXRhUGFja2V0OjpDV2JlbURhdGFQYWNrZXQodm9pZCkNCis/PzBDV2JlbURhdGFQYWNrZXRAQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYmVtRGF0YVBhY2tldDo6Q1diZW1EYXRhUGFja2V0KHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nLGJvb2wpDQorPz8wQ1diZW1EYXRhUGFja2V0QEBRQUVAUEFFS19OQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV2JlbUVudW1NYXJzaGFsaW5nOjpDV2JlbUVudW1NYXJzaGFsaW5nKGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmcgY29uc3QgJikNCis/PzBDV2JlbUVudW1NYXJzaGFsaW5nQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYmVtRW51bU1hcnNoYWxpbmc6OkNXYmVtRW51bU1hcnNoYWxpbmcoY2xhc3MgQ0xpZmVDb250cm9sICosc3RydWN0IElVbmtub3duICopDQorPz8wQ1diZW1FbnVtTWFyc2hhbGluZ0BAUUFFQFBBVkNMaWZlQ29udHJvbEBAUEFVSVVua25vd25AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1GZXRjaFJlZnJNZ3I6OkNXYmVtRmV0Y2hSZWZyTWdyKGNsYXNzIENXYmVtRmV0Y2hSZWZyTWdyIGNvbnN0ICYpDQorPz8wQ1diZW1GZXRjaFJlZnJNZ3JAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1GZXRjaFJlZnJNZ3I6OkNXYmVtRmV0Y2hSZWZyTWdyKGNsYXNzIENMaWZlQ29udHJvbCAqLHN0cnVjdCBJVW5rbm93biAqKQ0KKz8/MENXYmVtRmV0Y2hSZWZyTWdyQEBRQUVAUEFWQ0xpZmVDb250cm9sQEBQQVVJVW5rbm93bkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV2JlbUd1aWRUb0NsYXNzTWFwOjpDV2JlbUd1aWRUb0NsYXNzTWFwKGNsYXNzIENXYmVtR3VpZFRvQ2xhc3NNYXAgY29uc3QgJikNCis/PzBDV2JlbUd1aWRUb0NsYXNzTWFwQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYmVtR3VpZFRvQ2xhc3NNYXA6OkNXYmVtR3VpZFRvQ2xhc3NNYXAodm9pZCkNCis/PzBDV2JlbUd1aWRUb0NsYXNzTWFwQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpDV2JlbUluc3RhbmNlKGNsYXNzIENXYmVtSW5zdGFuY2UgY29uc3QgJikNCis/PzBDV2JlbUluc3RhbmNlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkNXYmVtSW5zdGFuY2Uodm9pZCkNCis/PzBDV2JlbUluc3RhbmNlQEBRQUVAWFoNCis7IHByaXZhdGU6IF9fdGhpc2NhbGwgQ1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0OjpDV2JlbU10Z3REZWxpdmVyRXZlbnRQYWNrZXQodm9pZCkNCis/PzBDV2JlbU10Z3REZWxpdmVyRXZlbnRQYWNrZXRAQEFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYmVtTXRndERlbGl2ZXJFdmVudFBhY2tldDo6Q1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0KHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nLGJvb2wpDQorPz8wQ1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0QEBRQUVAUEFFS19OQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBDV2JlbU9iamVjdDo6Q1diZW1PYmplY3QoY2xhc3MgQ0RhdGFUYWJsZSAmLGNsYXNzIENGYXN0SGVhcCAmLGNsYXNzIENEZXJpdmF0aW9uTGlzdCAmKQ0KKz8/MENXYmVtT2JqZWN0QEBJQUVAQUFWQ0RhdGFUYWJsZUBAQUFWQ0Zhc3RIZWFwQEBBQVZDRGVyaXZhdGlvbkxpc3RAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OkNXYmVtT2JqZWN0KGNsYXNzIENXYmVtT2JqZWN0IGNvbnN0ICYpDQorPz8wQ1diZW1PYmplY3RAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1PYmplY3RBcnJheVBhY2tldDo6Q1diZW1PYmplY3RBcnJheVBhY2tldCh1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyxib29sKQ0KKz8/MENXYmVtT2JqZWN0QXJyYXlQYWNrZXRAQFFBRUBQQUVLX05AWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYmVtUmVmcmVzaGluZ1N2Yzo6Q1diZW1SZWZyZXNoaW5nU3ZjKGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2YyBjb25zdCAmKQ0KKz8/MENXYmVtUmVmcmVzaGluZ1N2Y0BAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV2JlbVJlZnJlc2hpbmdTdmM6OkNXYmVtUmVmcmVzaGluZ1N2YyhjbGFzcyBDTGlmZUNvbnRyb2wgKixzdHJ1Y3QgSVVua25vd24gKikNCis/PzBDV2JlbVJlZnJlc2hpbmdTdmNAQFFBRUBQQVZDTGlmZUNvbnRyb2xAQFBBVUlVbmtub3duQEBAWg0KKzsgcHJpdmF0ZTogX190aGlzY2FsbCBDV2JlbVNtYXJ0RW51bU5leHRQYWNrZXQ6OkNXYmVtU21hcnRFbnVtTmV4dFBhY2tldCh2b2lkKQ0KKz8/MENXYmVtU21hcnRFbnVtTmV4dFBhY2tldEBAQUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1TbWFydEVudW1OZXh0UGFja2V0OjpDV2JlbVNtYXJ0RW51bU5leHRQYWNrZXQodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcsYm9vbCkNCis/PzBDV2JlbVNtYXJ0RW51bU5leHRQYWNrZXRAQFFBRUBQQUVLX05AWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGU6OkNXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGUoY2xhc3MgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZSBjb25zdCAmKQ0KKz8/MENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6Q1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZShjbGFzcyBDTGlmZUNvbnRyb2wgKikNCis/PzBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlQEBRQUVAUEFWQ0xpZmVDb250cm9sQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXbWlPYmplY3RGYWN0b3J5OjpDV21pT2JqZWN0RmFjdG9yeShjbGFzcyBDV21pT2JqZWN0RmFjdG9yeSBjb25zdCAmKQ0KKz8/MENXbWlPYmplY3RGYWN0b3J5QEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXbWlPYmplY3RGYWN0b3J5OjpDV21pT2JqZWN0RmFjdG9yeShjbGFzcyBDTGlmZUNvbnRyb2wgKixzdHJ1Y3QgSVVua25vd24gKikNCis/PzBDV21pT2JqZWN0RmFjdG9yeUBAUUFFQFBBVkNMaWZlQ29udHJvbEBAUEFVSVVua25vd25AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1dtaVRleHRTb3VyY2VBcnJheTo6Q1dtaVRleHRTb3VyY2VBcnJheShjbGFzcyBDV21pVGV4dFNvdXJjZUFycmF5ICYpDQorPz8wQ1dtaVRleHRTb3VyY2VBcnJheUBAUUFFQEFBVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV21pVGV4dFNvdXJjZUFycmF5OjpDV21pVGV4dFNvdXJjZUFycmF5KHZvaWQpDQorPz8wQ1dtaVRleHRTb3VyY2VBcnJheUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0hBUkVEX0xPQ0tfREFUQTo6U0hBUkVEX0xPQ0tfREFUQSh2b2lkKQ0KKz8/MFNIQVJFRF9MT0NLX0RBVEFAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYmVtUmVmcmVzaGluZ1N2Yzo6WENmZ1JlZnJTcnZjOjpYQ2ZnUmVmclNydmMoY2xhc3MgWENmZ1JlZnJTcnZjOjpYQ2ZnUmVmclNydmMgY29uc3QgJikNCis/PzBYQ2ZnUmVmclNydmNAQ1diZW1SZWZyZXNoaW5nU3ZjQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV2JlbVJlZnJlc2hpbmdTdmM6OlhDZmdSZWZyU3J2Yzo6WENmZ1JlZnJTcnZjKGNsYXNzIFhDZmdSZWZyU3J2YyAqKQ0KKz8/MFhDZmdSZWZyU3J2Y0BDV2JlbVJlZnJlc2hpbmdTdmNAQFFBRUBQQVYxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1FbnVtTWFyc2hhbGluZzo6WEVudW1NYXJzaGFsaW5nOjpYRW51bU1hcnNoYWxpbmcoY2xhc3MgWEVudW1NYXJzaGFsaW5nOjpYRW51bU1hcnNoYWxpbmcgY29uc3QgJikNCis/PzBYRW51bU1hcnNoYWxpbmdAQ1diZW1FbnVtTWFyc2hhbGluZ0BAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1FbnVtTWFyc2hhbGluZzo6WEVudW1NYXJzaGFsaW5nOjpYRW51bU1hcnNoYWxpbmcoY2xhc3MgWEVudW1NYXJzaGFsaW5nICopDQorPz8wWEVudW1NYXJzaGFsaW5nQENXYmVtRW51bU1hcnNoYWxpbmdAQFFBRUBQQVYxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1GZXRjaFJlZnJNZ3I6OlhGZXRjaFJlZnJNZ3I6OlhGZXRjaFJlZnJNZ3IoY2xhc3MgWEZldGNoUmVmck1ncjo6WEZldGNoUmVmck1nciBjb25zdCAmKQ0KKz8/MFhGZXRjaFJlZnJNZ3JAQ1diZW1GZXRjaFJlZnJNZ3JAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYmVtRmV0Y2hSZWZyTWdyOjpYRmV0Y2hSZWZyTWdyOjpYRmV0Y2hSZWZyTWdyKGNsYXNzIFhGZXRjaFJlZnJNZ3IgKikNCis/PzBYRmV0Y2hSZWZyTWdyQENXYmVtRmV0Y2hSZWZyTWdyQEBRQUVAUEFWMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXbWlPYmplY3RGYWN0b3J5OjpYT2JqZWN0RmFjdG9yeTo6WE9iamVjdEZhY3RvcnkoY2xhc3MgWE9iamVjdEZhY3Rvcnk6OlhPYmplY3RGYWN0b3J5IGNvbnN0ICYpDQorPz8wWE9iamVjdEZhY3RvcnlAQ1dtaU9iamVjdEZhY3RvcnlAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXbWlPYmplY3RGYWN0b3J5OjpYT2JqZWN0RmFjdG9yeTo6WE9iamVjdEZhY3RvcnkoY2xhc3MgWE9iamVjdEZhY3RvcnkgKikNCis/PzBYT2JqZWN0RmFjdG9yeUBDV21pT2JqZWN0RmFjdG9yeUBAUUFFQFBBVjFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV21pT2JqZWN0VGV4dFNyYzo6WE9iamVjdFRleHRTcmM6OlhPYmplY3RUZXh0U3JjKGNsYXNzIFhPYmplY3RUZXh0U3JjOjpYT2JqZWN0VGV4dFNyYyBjb25zdCAmKQ0KKz8/MFhPYmplY3RUZXh0U3JjQENXbWlPYmplY3RUZXh0U3JjQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV21pT2JqZWN0VGV4dFNyYzo6WE9iamVjdFRleHRTcmM6OlhPYmplY3RUZXh0U3JjKGNsYXNzIFhPYmplY3RUZXh0U3JjICopDQorPz8wWE9iamVjdFRleHRTcmNAQ1dtaU9iamVjdFRleHRTcmNAQFFBRUBQQVYxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1SZWZyZXNoaW5nU3ZjOjpYV2JlbVJlZnJTdmM6OlhXYmVtUmVmclN2YyhjbGFzcyBYV2JlbVJlZnJTdmM6OlhXYmVtUmVmclN2YyBjb25zdCAmKQ0KKz8/MFhXYmVtUmVmclN2Y0BDV2JlbVJlZnJlc2hpbmdTdmNAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYmVtUmVmcmVzaGluZ1N2Yzo6WFdiZW1SZWZyU3ZjOjpYV2JlbVJlZnJTdmMoY2xhc3MgWFdiZW1SZWZyU3ZjICopDQorPz8wWFdiZW1SZWZyU3ZjQENXYmVtUmVmcmVzaGluZ1N2Y0BAUUFFQFBBVjFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV2JlbVJlbW90ZVJlZnJlc2hlcjo6WFdiZW1SZW1vdGVSZWZyOjpYV2JlbVJlbW90ZVJlZnIoY2xhc3MgWFdiZW1SZW1vdGVSZWZyOjpYV2JlbVJlbW90ZVJlZnIgY29uc3QgJikNCis/PzBYV2JlbVJlbW90ZVJlZnJAQ1diZW1SZW1vdGVSZWZyZXNoZXJAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYmVtUmVtb3RlUmVmcmVzaGVyOjpYV2JlbVJlbW90ZVJlZnI6OlhXYmVtUmVtb3RlUmVmcihjbGFzcyBYV2JlbVJlbW90ZVJlZnIgKikNCis/PzBYV2JlbVJlbW90ZVJlZnJAQ1diZW1SZW1vdGVSZWZyZXNoZXJAQFFBRUBQQVYxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0ltcGw8c3RydWN0IElXYmVtT2JqZWN0VGV4dFNyYyxjbGFzcyBDV21pT2JqZWN0VGV4dFNyYz46On5DSW1wbDxzdHJ1Y3QgSVdiZW1PYmplY3RUZXh0U3JjLGNsYXNzIENXbWlPYmplY3RUZXh0U3JjPih2b2lkKQ0KKz8/MT8kQ0ltcGxAVUlXYmVtT2JqZWN0VGV4dFNyY0BAVkNXbWlPYmplY3RUZXh0U3JjQEBAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbXBsPHN0cnVjdCBJV2JlbVJlZnJlc2hpbmdTZXJ2aWNlcyxjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM+Ojp+Q0ltcGw8c3RydWN0IElXYmVtUmVmcmVzaGluZ1NlcnZpY2VzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz4odm9pZCkNCis/PzE/JENJbXBsQFVJV2JlbVJlZnJlc2hpbmdTZXJ2aWNlc0BAVkNXYmVtUmVmcmVzaGluZ1N2Y0BAQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSW1wbDxzdHJ1Y3QgSVdiZW1SZW1vdGVSZWZyZXNoZXIsY2xhc3MgQ1diZW1SZW1vdGVSZWZyZXNoZXI+Ojp+Q0ltcGw8c3RydWN0IElXYmVtUmVtb3RlUmVmcmVzaGVyLGNsYXNzIENXYmVtUmVtb3RlUmVmcmVzaGVyPih2b2lkKQ0KKz8/MT8kQ0ltcGxAVUlXYmVtUmVtb3RlUmVmcmVzaGVyQEBWQ1diZW1SZW1vdGVSZWZyZXNoZXJAQEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0ltcGw8c3RydWN0IF9JV2JlbUNvbmZpZ3VyZVJlZnJlc2hpbmdTdmNzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz46On5DSW1wbDxzdHJ1Y3QgX0lXYmVtQ29uZmlndXJlUmVmcmVzaGluZ1N2Y3MsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPih2b2lkKQ0KKz8/MT8kQ0ltcGxAVV9JV2JlbUNvbmZpZ3VyZVJlZnJlc2hpbmdTdmNzQEBWQ1diZW1SZWZyZXNoaW5nU3ZjQEBAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbXBsPHN0cnVjdCBfSVdiZW1FbnVtTWFyc2hhbGluZyxjbGFzcyBDV2JlbUVudW1NYXJzaGFsaW5nPjo6fkNJbXBsPHN0cnVjdCBfSVdiZW1FbnVtTWFyc2hhbGluZyxjbGFzcyBDV2JlbUVudW1NYXJzaGFsaW5nPih2b2lkKQ0KKz8/MT8kQ0ltcGxAVV9JV2JlbUVudW1NYXJzaGFsaW5nQEBWQ1diZW1FbnVtTWFyc2hhbGluZ0BAQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSW1wbDxzdHJ1Y3QgX0lXYmVtRmV0Y2hSZWZyZXNoZXJNZ3IsY2xhc3MgQ1diZW1GZXRjaFJlZnJNZ3I+Ojp+Q0ltcGw8c3RydWN0IF9JV2JlbUZldGNoUmVmcmVzaGVyTWdyLGNsYXNzIENXYmVtRmV0Y2hSZWZyTWdyPih2b2lkKQ0KKz8/MT8kQ0ltcGxAVV9JV2JlbUZldGNoUmVmcmVzaGVyTWdyQEBWQ1diZW1GZXRjaFJlZnJNZ3JAQEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0ltcGw8c3RydWN0IF9JV21pT2JqZWN0RmFjdG9yeSxjbGFzcyBDV21pT2JqZWN0RmFjdG9yeT46On5DSW1wbDxzdHJ1Y3QgX0lXbWlPYmplY3RGYWN0b3J5LGNsYXNzIENXbWlPYmplY3RGYWN0b3J5Pih2b2lkKQ0KKz8/MT8kQ0ltcGxAVV9JV21pT2JqZWN0RmFjdG9yeUBAVkNXbWlPYmplY3RGYWN0b3J5QEBAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0sY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+LGNsYXNzIENGbGV4QXJyYXk+Ojp+Q1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT4odm9pZCkNCis/PzE/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT46On5DUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENXbWlUZXh0U291cmNlPixjbGFzcyBDRmxleEFycmF5Pih2b2lkKQ0KKz8/MT8kQ1BvaW50ZXJBcnJheUBWQ1dtaVRleHRTb3VyY2VAQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDV21pVGV4dFNvdXJjZUBAQEBWQ0ZsZXhBcnJheUBAQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUmVmZWRQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+Ojp+Q1JlZmVkUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPih2b2lkKQ0KKz8/MT8kQ1JlZmVkUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUmVmZWRQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+Ojp+Q1JlZmVkUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlPih2b2lkKQ0KKz8/MT8kQ1JlZmVkUG9pbnRlckFycmF5QFZDV21pVGV4dFNvdXJjZUBAQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQmFzaWNRdWFsaWZpZXJTZXQ6On5DQmFzaWNRdWFsaWZpZXJTZXQodm9pZCkNCis/PzFDQmFzaWNRdWFsaWZpZXJTZXRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDbGFzc0FuZE1ldGhvZHM6On5DQ2xhc3NBbmRNZXRob2RzKHZvaWQpDQorPz8xQ0NsYXNzQW5kTWV0aG9kc0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6fkNDbGFzc1BhcnQodm9pZCkNCis/PzFDQ2xhc3NQYXJ0QEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENDbGFzc1F1YWxpZmllclNldDo6fkNDbGFzc1F1YWxpZmllclNldCh2b2lkKQ0KKz8/MUNDbGFzc1F1YWxpZmllclNldEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDRmFzdFByb3BlcnR5QmFnOjp+Q0Zhc3RQcm9wZXJ0eUJhZyh2b2lkKQ0KKz8/MUNGYXN0UHJvcGVydHlCYWdAQFVBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENGaXhlZEJTVFJBcnJheTo6fkNGaXhlZEJTVFJBcnJheSh2b2lkKQ0KKz8/MUNGaXhlZEJTVFJBcnJheUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0luc3RhbmNlUFFTQ29udGFpbmVyOjp+Q0luc3RhbmNlUFFTQ29udGFpbmVyKHZvaWQpDQorPz8xQ0luc3RhbmNlUFFTQ29udGFpbmVyQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0Ojp+Q0luc3RhbmNlUGFydCh2b2lkKQ0KKz8/MUNJbnN0YW5jZVBhcnRAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ0luc3RhbmNlUXVhbGlmaWVyU2V0Ojp+Q0luc3RhbmNlUXVhbGlmaWVyU2V0KHZvaWQpDQorPz8xQ0luc3RhbmNlUXVhbGlmaWVyU2V0QEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSW50ZXJuYWxTdHJpbmc6On5DSW50ZXJuYWxTdHJpbmcodm9pZCkNCis/PzFDSW50ZXJuYWxTdHJpbmdAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMaW1pdGF0aW9uTWFwcGluZzo6fkNMaW1pdGF0aW9uTWFwcGluZyh2b2lkKQ0KKz8/MUNMaW1pdGF0aW9uTWFwcGluZ0BAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDTWV0aG9kUXVhbGlmaWVyU2V0Ojp+Q01ldGhvZFF1YWxpZmllclNldCh2b2lkKQ0KKz8/MUNNZXRob2RRdWFsaWZpZXJTZXRAQFVBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXI6On5DTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyKHZvaWQpDQorPz8xQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lckBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1Byb3BlcnR5QmFnSXRlbUFycmF5Ojp+Q1Byb3BlcnR5QmFnSXRlbUFycmF5KHZvaWQpDQorPz8xQ1Byb3BlcnR5QmFnSXRlbUFycmF5QEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXQ6On5DUXVhbGlmaWVyU2V0KHZvaWQpDQorPz8xQ1F1YWxpZmllclNldEBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1DYWxsU2VjdXJpdHk6On5DV2JlbUNhbGxTZWN1cml0eSh2b2lkKQ0KKz8/MUNXYmVtQ2FsbFNlY3VyaXR5QEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6On5DV2JlbUNsYXNzKHZvaWQpDQorPz8xQ1diZW1DbGFzc0BAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1DbGFzc0NhY2hlOjp+Q1diZW1DbGFzc0NhY2hlKHZvaWQpDQorPz8xQ1diZW1DbGFzc0NhY2hlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV2JlbURhdGFQYWNrZXQ6On5DV2JlbURhdGFQYWNrZXQodm9pZCkNCis/PzFDV2JlbURhdGFQYWNrZXRAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ1diZW1FbnVtTWFyc2hhbGluZzo6fkNXYmVtRW51bU1hcnNoYWxpbmcodm9pZCkNCis/PzFDV2JlbUVudW1NYXJzaGFsaW5nQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENXYmVtRmV0Y2hSZWZyTWdyOjp+Q1diZW1GZXRjaFJlZnJNZ3Iodm9pZCkNCis/PzFDV2JlbUZldGNoUmVmck1nckBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1HdWlkVG9DbGFzc01hcDo6fkNXYmVtR3VpZFRvQ2xhc3NNYXAodm9pZCkNCis/PzFDV2JlbUd1aWRUb0NsYXNzTWFwQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6On5DV2JlbUluc3RhbmNlKHZvaWQpDQorPz8xQ1diZW1JbnN0YW5jZUBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0Ojp+Q1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0KHZvaWQpDQorPz8xQ1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0QEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENXYmVtT2JqZWN0Ojp+Q1diZW1PYmplY3Qodm9pZCkNCis/PzFDV2JlbU9iamVjdEBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1PYmplY3RBcnJheVBhY2tldDo6fkNXYmVtT2JqZWN0QXJyYXlQYWNrZXQodm9pZCkNCis/PzFDV2JlbU9iamVjdEFycmF5UGFja2V0QEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENXYmVtUmVmcmVzaGluZ1N2Yzo6fkNXYmVtUmVmcmVzaGluZ1N2Yyh2b2lkKQ0KKz8/MUNXYmVtUmVmcmVzaGluZ1N2Y0BAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1TbWFydEVudW1OZXh0UGFja2V0Ojp+Q1diZW1TbWFydEVudW1OZXh0UGFja2V0KHZvaWQpDQorPz8xQ1diZW1TbWFydEVudW1OZXh0UGFja2V0QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjp+Q1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZSh2b2lkKQ0KKz8/MUNXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ1dtaU9iamVjdEZhY3Rvcnk6On5DV21pT2JqZWN0RmFjdG9yeSh2b2lkKQ0KKz8/MUNXbWlPYmplY3RGYWN0b3J5QEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV21pVGV4dFNvdXJjZUFycmF5Ojp+Q1dtaVRleHRTb3VyY2VBcnJheSh2b2lkKQ0KKz8/MUNXbWlUZXh0U291cmNlQXJyYXlAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYmVtUmVmcmVzaGluZ1N2Yzo6WENmZ1JlZnJTcnZjOjp+WENmZ1JlZnJTcnZjKHZvaWQpDQorPz8xWENmZ1JlZnJTcnZjQENXYmVtUmVmcmVzaGluZ1N2Y0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1FbnVtTWFyc2hhbGluZzo6WEVudW1NYXJzaGFsaW5nOjp+WEVudW1NYXJzaGFsaW5nKHZvaWQpDQorPz8xWEVudW1NYXJzaGFsaW5nQENXYmVtRW51bU1hcnNoYWxpbmdAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYmVtRmV0Y2hSZWZyTWdyOjpYRmV0Y2hSZWZyTWdyOjp+WEZldGNoUmVmck1ncih2b2lkKQ0KKz8/MVhGZXRjaFJlZnJNZ3JAQ1diZW1GZXRjaFJlZnJNZ3JAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXbWlPYmplY3RGYWN0b3J5OjpYT2JqZWN0RmFjdG9yeTo6flhPYmplY3RGYWN0b3J5KHZvaWQpDQorPz8xWE9iamVjdEZhY3RvcnlAQ1dtaU9iamVjdEZhY3RvcnlAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXbWlPYmplY3RUZXh0U3JjOjpYT2JqZWN0VGV4dFNyYzo6flhPYmplY3RUZXh0U3JjKHZvaWQpDQorPz8xWE9iamVjdFRleHRTcmNAQ1dtaU9iamVjdFRleHRTcmNAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYmVtUmVmcmVzaGluZ1N2Yzo6WFdiZW1SZWZyU3ZjOjp+WFdiZW1SZWZyU3ZjKHZvaWQpDQorPz8xWFdiZW1SZWZyU3ZjQENXYmVtUmVmcmVzaGluZ1N2Y0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1diZW1SZW1vdGVSZWZyZXNoZXI6OlhXYmVtUmVtb3RlUmVmcjo6flhXYmVtUmVtb3RlUmVmcih2b2lkKQ0KKz8/MVhXYmVtUmVtb3RlUmVmckBDV2JlbVJlbW90ZVJlZnJlc2hlckBAUUFFQFhaDQorOyBwdWJsaWM6IGNsYXNzIENJbXBsPHN0cnVjdCBJV2JlbU9iamVjdFRleHRTcmMsY2xhc3MgQ1dtaU9iamVjdFRleHRTcmM+ICYgX190aGlzY2FsbCBDSW1wbDxzdHJ1Y3QgSVdiZW1PYmplY3RUZXh0U3JjLGNsYXNzIENXbWlPYmplY3RUZXh0U3JjPjo6b3BlcmF0b3I9KGNsYXNzIENJbXBsPHN0cnVjdCBJV2JlbU9iamVjdFRleHRTcmMsY2xhc3MgQ1dtaU9iamVjdFRleHRTcmM+IGNvbnN0ICYpDQorPz80PyRDSW1wbEBVSVdiZW1PYmplY3RUZXh0U3JjQEBWQ1dtaU9iamVjdFRleHRTcmNAQEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJbXBsPHN0cnVjdCBJV2JlbVJlZnJlc2hpbmdTZXJ2aWNlcyxjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM+ICYgX190aGlzY2FsbCBDSW1wbDxzdHJ1Y3QgSVdiZW1SZWZyZXNoaW5nU2VydmljZXMsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPjo6b3BlcmF0b3I9KGNsYXNzIENJbXBsPHN0cnVjdCBJV2JlbVJlZnJlc2hpbmdTZXJ2aWNlcyxjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM+IGNvbnN0ICYpDQorPz80PyRDSW1wbEBVSVdiZW1SZWZyZXNoaW5nU2VydmljZXNAQFZDV2JlbVJlZnJlc2hpbmdTdmNAQEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJbXBsPHN0cnVjdCBJV2JlbVJlbW90ZVJlZnJlc2hlcixjbGFzcyBDV2JlbVJlbW90ZVJlZnJlc2hlcj4gJiBfX3RoaXNjYWxsIENJbXBsPHN0cnVjdCBJV2JlbVJlbW90ZVJlZnJlc2hlcixjbGFzcyBDV2JlbVJlbW90ZVJlZnJlc2hlcj46Om9wZXJhdG9yPShjbGFzcyBDSW1wbDxzdHJ1Y3QgSVdiZW1SZW1vdGVSZWZyZXNoZXIsY2xhc3MgQ1diZW1SZW1vdGVSZWZyZXNoZXI+IGNvbnN0ICYpDQorPz80PyRDSW1wbEBVSVdiZW1SZW1vdGVSZWZyZXNoZXJAQFZDV2JlbVJlbW90ZVJlZnJlc2hlckBAQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0ltcGw8c3RydWN0IF9JV2JlbUNvbmZpZ3VyZVJlZnJlc2hpbmdTdmNzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz4gJiBfX3RoaXNjYWxsIENJbXBsPHN0cnVjdCBfSVdiZW1Db25maWd1cmVSZWZyZXNoaW5nU3ZjcyxjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM+OjpvcGVyYXRvcj0oY2xhc3MgQ0ltcGw8c3RydWN0IF9JV2JlbUNvbmZpZ3VyZVJlZnJlc2hpbmdTdmNzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz4gY29uc3QgJikNCis/PzQ/JENJbXBsQFVfSVdiZW1Db25maWd1cmVSZWZyZXNoaW5nU3Zjc0BAVkNXYmVtUmVmcmVzaGluZ1N2Y0BAQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0ltcGw8c3RydWN0IF9JV2JlbUVudW1NYXJzaGFsaW5nLGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmc+ICYgX190aGlzY2FsbCBDSW1wbDxzdHJ1Y3QgX0lXYmVtRW51bU1hcnNoYWxpbmcsY2xhc3MgQ1diZW1FbnVtTWFyc2hhbGluZz46Om9wZXJhdG9yPShjbGFzcyBDSW1wbDxzdHJ1Y3QgX0lXYmVtRW51bU1hcnNoYWxpbmcsY2xhc3MgQ1diZW1FbnVtTWFyc2hhbGluZz4gY29uc3QgJikNCis/PzQ/JENJbXBsQFVfSVdiZW1FbnVtTWFyc2hhbGluZ0BAVkNXYmVtRW51bU1hcnNoYWxpbmdAQEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJbXBsPHN0cnVjdCBfSVdiZW1GZXRjaFJlZnJlc2hlck1ncixjbGFzcyBDV2JlbUZldGNoUmVmck1ncj4gJiBfX3RoaXNjYWxsIENJbXBsPHN0cnVjdCBfSVdiZW1GZXRjaFJlZnJlc2hlck1ncixjbGFzcyBDV2JlbUZldGNoUmVmck1ncj46Om9wZXJhdG9yPShjbGFzcyBDSW1wbDxzdHJ1Y3QgX0lXYmVtRmV0Y2hSZWZyZXNoZXJNZ3IsY2xhc3MgQ1diZW1GZXRjaFJlZnJNZ3I+IGNvbnN0ICYpDQorPz80PyRDSW1wbEBVX0lXYmVtRmV0Y2hSZWZyZXNoZXJNZ3JAQFZDV2JlbUZldGNoUmVmck1nckBAQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0ltcGw8c3RydWN0IF9JV21pT2JqZWN0RmFjdG9yeSxjbGFzcyBDV21pT2JqZWN0RmFjdG9yeT4gJiBfX3RoaXNjYWxsIENJbXBsPHN0cnVjdCBfSVdtaU9iamVjdEZhY3RvcnksY2xhc3MgQ1dtaU9iamVjdEZhY3Rvcnk+OjpvcGVyYXRvcj0oY2xhc3MgQ0ltcGw8c3RydWN0IF9JV21pT2JqZWN0RmFjdG9yeSxjbGFzcyBDV21pT2JqZWN0RmFjdG9yeT4gY29uc3QgJikNCis/PzQ/JENJbXBsQFVfSVdtaU9iamVjdEZhY3RvcnlAQFZDV21pT2JqZWN0RmFjdG9yeUBAQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT4gJiBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0sY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+LGNsYXNzIENGbGV4QXJyYXk+OjpvcGVyYXRvcj0oY2xhc3MgQ1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT4gJikNCis/PzQ/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBAUUFFQUFWMEBBQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+ICYgX190aGlzY2FsbCBDUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENXbWlUZXh0U291cmNlPixjbGFzcyBDRmxleEFycmF5Pjo6b3BlcmF0b3I9KGNsYXNzIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+ICYpDQorPz80PyRDUG9pbnRlckFycmF5QFZDV21pVGV4dFNvdXJjZUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNXbWlUZXh0U291cmNlQEBAQFZDRmxleEFycmF5QEBAQFFBRUFBVjBAQUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUmVmZWRQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+ICYgX190aGlzY2FsbCBDUmVmZWRQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+OjpvcGVyYXRvcj0oY2xhc3MgQ1JlZmVkUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPiAmKQ0KKz8/ND8kQ1JlZmVkUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQEBRQUVBQVYwQEFBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1JlZmVkUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlPiAmIF9fdGhpc2NhbGwgQ1JlZmVkUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlPjo6b3BlcmF0b3I9KGNsYXNzIENSZWZlZFBvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZT4gJikNCis/PzQ/JENSZWZlZFBvaW50ZXJBcnJheUBWQ1dtaVRleHRTb3VyY2VAQEBAUUFFQUFWMEBBQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENCYXNpY1F1YWxpZmllclNldCAmIF9fdGhpc2NhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpvcGVyYXRvcj0oY2xhc3MgQ0Jhc2ljUXVhbGlmaWVyU2V0IGNvbnN0ICYpDQorPz80Q0Jhc2ljUXVhbGlmaWVyU2V0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NsYXNzQW5kTWV0aG9kcyAmIF9fdGhpc2NhbGwgQ0NsYXNzQW5kTWV0aG9kczo6b3BlcmF0b3I9KGNsYXNzIENDbGFzc0FuZE1ldGhvZHMgY29uc3QgJikNCis/PzRDQ2xhc3NBbmRNZXRob2RzQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NsYXNzUGFydCAmIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6b3BlcmF0b3I9KGNsYXNzIENDbGFzc1BhcnQgY29uc3QgJikNCis/PzRDQ2xhc3NQYXJ0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NsYXNzUGFydENvbnRhaW5lciAmIF9fdGhpc2NhbGwgQ0NsYXNzUGFydENvbnRhaW5lcjo6b3BlcmF0b3I9KGNsYXNzIENDbGFzc1BhcnRDb250YWluZXIgY29uc3QgJikNCis/PzRDQ2xhc3NQYXJ0Q29udGFpbmVyQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NsYXNzUXVhbGlmaWVyU2V0ICYgX190aGlzY2FsbCBDQ2xhc3NRdWFsaWZpZXJTZXQ6Om9wZXJhdG9yPShjbGFzcyBDQ2xhc3NRdWFsaWZpZXJTZXQgY29uc3QgJikNCis/PzRDQ2xhc3NRdWFsaWZpZXJTZXRAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAmIF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmc6Om9wZXJhdG9yPShjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyBjb25zdCAmKQ0KKz8/NENDb21wcmVzc2VkU3RyaW5nQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmdMaXN0ICYgX190aGlzY2FsbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6Om9wZXJhdG9yPShjbGFzcyBDQ29tcHJlc3NlZFN0cmluZ0xpc3QgY29uc3QgJikNCis/PzRDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRGF0YVRhYmxlICYgX190aGlzY2FsbCBDRGF0YVRhYmxlOjpvcGVyYXRvcj0oY2xhc3MgQ0RhdGFUYWJsZSBjb25zdCAmKQ0KKz8/NENEYXRhVGFibGVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRGVjb3JhdGlvblBhcnQgJiBfX3RoaXNjYWxsIENEZWNvcmF0aW9uUGFydDo6b3BlcmF0b3I9KGNsYXNzIENEZWNvcmF0aW9uUGFydCBjb25zdCAmKQ0KKz8/NENEZWNvcmF0aW9uUGFydEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENEZXJpdmF0aW9uTGlzdCAmIF9fdGhpc2NhbGwgQ0Rlcml2YXRpb25MaXN0OjpvcGVyYXRvcj0oY2xhc3MgQ0Rlcml2YXRpb25MaXN0IGNvbnN0ICYpDQorPz80Q0Rlcml2YXRpb25MaXN0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0VtYmVkZGVkT2JqZWN0ICYgX190aGlzY2FsbCBDRW1iZWRkZWRPYmplY3Q6Om9wZXJhdG9yPShjbGFzcyBDRW1iZWRkZWRPYmplY3QgY29uc3QgJikNCis/PzRDRW1iZWRkZWRPYmplY3RAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRmFzdEhlYXAgJiBfX3RoaXNjYWxsIENGYXN0SGVhcDo6b3BlcmF0b3I9KGNsYXNzIENGYXN0SGVhcCBjb25zdCAmKQ0KKz8/NENGYXN0SGVhcEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENGYXN0UHJvcGVydHlCYWcgJiBfX3RoaXNjYWxsIENGYXN0UHJvcGVydHlCYWc6Om9wZXJhdG9yPShjbGFzcyBDRmFzdFByb3BlcnR5QmFnICYpDQorPz80Q0Zhc3RQcm9wZXJ0eUJhZ0BAUUFFQUFWMEBBQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENGaXhlZEJTVFJBcnJheSAmIF9fdGhpc2NhbGwgQ0ZpeGVkQlNUUkFycmF5OjpvcGVyYXRvcj0oY2xhc3MgQ0ZpeGVkQlNUUkFycmF5IGNvbnN0ICYpDQorPz80Q0ZpeGVkQlNUUkFycmF5QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0hpUGVyZkxvY2sgJiBfX3RoaXNjYWxsIENIaVBlcmZMb2NrOjpvcGVyYXRvcj0oY2xhc3MgQ0hpUGVyZkxvY2sgY29uc3QgJikNCis/PzRDSGlQZXJmTG9ja0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJbnN0YW5jZVBRU0NvbnRhaW5lciAmIF9fdGhpc2NhbGwgQ0luc3RhbmNlUFFTQ29udGFpbmVyOjpvcGVyYXRvcj0oY2xhc3MgQ0luc3RhbmNlUFFTQ29udGFpbmVyIGNvbnN0ICYpDQorPz80Q0luc3RhbmNlUFFTQ29udGFpbmVyQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0luc3RhbmNlUGFydCAmIF9fdGhpc2NhbGwgQ0luc3RhbmNlUGFydDo6b3BlcmF0b3I9KGNsYXNzIENJbnN0YW5jZVBhcnQgY29uc3QgJikNCis/PzRDSW5zdGFuY2VQYXJ0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0luc3RhbmNlUGFydENvbnRhaW5lciAmIF9fdGhpc2NhbGwgQ0luc3RhbmNlUGFydENvbnRhaW5lcjo6b3BlcmF0b3I9KGNsYXNzIENJbnN0YW5jZVBhcnRDb250YWluZXIgY29uc3QgJikNCis/PzRDSW5zdGFuY2VQYXJ0Q29udGFpbmVyQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0luc3RhbmNlUXVhbGlmaWVyU2V0ICYgX190aGlzY2FsbCBDSW5zdGFuY2VRdWFsaWZpZXJTZXQ6Om9wZXJhdG9yPShjbGFzcyBDSW5zdGFuY2VRdWFsaWZpZXJTZXQgY29uc3QgJikNCis/PzRDSW5zdGFuY2VRdWFsaWZpZXJTZXRAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSW50ZXJuYWxTdHJpbmcgJiBfX3RoaXNjYWxsIENJbnRlcm5hbFN0cmluZzo6b3BlcmF0b3I9KGNsYXNzIENJbnRlcm5hbFN0cmluZyBjb25zdCAmKQ0KKz8/NENJbnRlcm5hbFN0cmluZ0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJbnRlcm5hbFN0cmluZzo6b3BlcmF0b3I9KGNsYXNzIENDb21wcmVzc2VkU3RyaW5nICopDQorPz80Q0ludGVybmFsU3RyaW5nQEBRQUVIUEFWQ0NvbXByZXNzZWRTdHJpbmdAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJbnRlcm5hbFN0cmluZzo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz80Q0ludGVybmFsU3RyaW5nQEBRQUVIUEJHQFoNCis7IHB1YmxpYzogY2xhc3MgQ0tub3duU3RyaW5nVGFibGUgJiBfX3RoaXNjYWxsIENLbm93blN0cmluZ1RhYmxlOjpvcGVyYXRvcj0oY2xhc3MgQ0tub3duU3RyaW5nVGFibGUgY29uc3QgJikNCis/PzRDS25vd25TdHJpbmdUYWJsZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMaW1pdGF0aW9uTWFwcGluZyAmIF9fdGhpc2NhbGwgQ0xpbWl0YXRpb25NYXBwaW5nOjpvcGVyYXRvcj0oY2xhc3MgQ0xpbWl0YXRpb25NYXBwaW5nICYpDQorPz80Q0xpbWl0YXRpb25NYXBwaW5nQEBRQUVBQVYwQEFBVjBAQFoNCis7IHB1YmxpYzogc3RydWN0IENNZXRob2REZXNjcmlwdGlvbiAmIF9fdGhpc2NhbGwgQ01ldGhvZERlc2NyaXB0aW9uOjpvcGVyYXRvcj0oc3RydWN0IENNZXRob2REZXNjcmlwdGlvbiBjb25zdCAmKQ0KKz8/NENNZXRob2REZXNjcmlwdGlvbkBAUUFFQUFVMEBBQlUwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENNZXRob2RQYXJ0ICYgX190aGlzY2FsbCBDTWV0aG9kUGFydDo6b3BlcmF0b3I9KGNsYXNzIENNZXRob2RQYXJ0IGNvbnN0ICYpDQorPz80Q01ldGhvZFBhcnRAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTWV0aG9kUGFydENvbnRhaW5lciAmIF9fdGhpc2NhbGwgQ01ldGhvZFBhcnRDb250YWluZXI6Om9wZXJhdG9yPShjbGFzcyBDTWV0aG9kUGFydENvbnRhaW5lciBjb25zdCAmKQ0KKz8/NENNZXRob2RQYXJ0Q29udGFpbmVyQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ01ldGhvZFF1YWxpZmllclNldCAmIF9fdGhpc2NhbGwgQ01ldGhvZFF1YWxpZmllclNldDo6b3BlcmF0b3I9KGNsYXNzIENNZXRob2RRdWFsaWZpZXJTZXQgY29uc3QgJikNCis/PzRDTWV0aG9kUXVhbGlmaWVyU2V0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lciAmIF9fdGhpc2NhbGwgQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lcjo6b3BlcmF0b3I9KGNsYXNzIENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXIgY29uc3QgJikNCis/PzRDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1Byb3BlcnR5QmFnSXRlbUFycmF5ICYgX190aGlzY2FsbCBDUHJvcGVydHlCYWdJdGVtQXJyYXk6Om9wZXJhdG9yPShjbGFzcyBDUHJvcGVydHlCYWdJdGVtQXJyYXkgJikNCis/PzRDUHJvcGVydHlCYWdJdGVtQXJyYXlAQFFBRUFBVjBAQUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUHJvcGVydHlMb29rdXBUYWJsZSAmIF9fdGhpc2NhbGwgQ1Byb3BlcnR5TG9va3VwVGFibGU6Om9wZXJhdG9yPShjbGFzcyBDUHJvcGVydHlMb29rdXBUYWJsZSBjb25zdCAmKQ0KKz8/NENQcm9wZXJ0eUxvb2t1cFRhYmxlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1F1YWxpZmllclNldCAmIF9fdGhpc2NhbGwgQ1F1YWxpZmllclNldDo6b3BlcmF0b3I9KGNsYXNzIENRdWFsaWZpZXJTZXQgY29uc3QgJikNCis/PzRDUXVhbGlmaWVyU2V0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1F1YWxpZmllclNldExpc3QgJiBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXRMaXN0OjpvcGVyYXRvcj0oY2xhc3MgQ1F1YWxpZmllclNldExpc3QgY29uc3QgJikNCis/PzRDUXVhbGlmaWVyU2V0TGlzdEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENRdWFsaWZpZXJTZXRMaXN0Q29udGFpbmVyICYgX190aGlzY2FsbCBDUXVhbGlmaWVyU2V0TGlzdENvbnRhaW5lcjo6b3BlcmF0b3I9KGNsYXNzIENRdWFsaWZpZXJTZXRMaXN0Q29udGFpbmVyIGNvbnN0ICYpDQorPz80Q1F1YWxpZmllclNldExpc3RDb250YWluZXJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUmVzZXJ2ZWRXb3JkVGFibGUgJiBfX3RoaXNjYWxsIENSZXNlcnZlZFdvcmRUYWJsZTo6b3BlcmF0b3I9KGNsYXNzIENSZXNlcnZlZFdvcmRUYWJsZSBjb25zdCAmKQ0KKz8/NENSZXNlcnZlZFdvcmRUYWJsZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTaGFyZWRMb2NrICYgX190aGlzY2FsbCBDU2hhcmVkTG9jazo6b3BlcmF0b3I9KGNsYXNzIENTaGFyZWRMb2NrIGNvbnN0ICYpDQorPz80Q1NoYXJlZExvY2tAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU3lzdGVtUHJvcGVydGllcyAmIF9fdGhpc2NhbGwgQ1N5c3RlbVByb3BlcnRpZXM6Om9wZXJhdG9yPShjbGFzcyBDU3lzdGVtUHJvcGVydGllcyBjb25zdCAmKQ0KKz8/NENTeXN0ZW1Qcm9wZXJ0aWVzQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1R5cGUgJiBfX3RoaXNjYWxsIENUeXBlOjpvcGVyYXRvcj0oY2xhc3MgQ1R5cGUgY29uc3QgJikNCis/PzRDVHlwZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENVbnR5cGVkQXJyYXkgJiBfX3RoaXNjYWxsIENVbnR5cGVkQXJyYXk6Om9wZXJhdG9yPShjbGFzcyBDVW50eXBlZEFycmF5IGNvbnN0ICYpDQorPz80Q1VudHlwZWRBcnJheUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXYmVtQ2FsbFNlY3VyaXR5ICYgX190aGlzY2FsbCBDV2JlbUNhbGxTZWN1cml0eTo6b3BlcmF0b3I9KGNsYXNzIENXYmVtQ2FsbFNlY3VyaXR5IGNvbnN0ICYpDQorPz80Q1diZW1DYWxsU2VjdXJpdHlAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbUNsYXNzQ2FjaGUgJiBfX3RoaXNjYWxsIENXYmVtQ2xhc3NDYWNoZTo6b3BlcmF0b3I9KGNsYXNzIENXYmVtQ2xhc3NDYWNoZSBjb25zdCAmKQ0KKz8/NENXYmVtQ2xhc3NDYWNoZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXYmVtRGF0YVBhY2tldCAmIF9fdGhpc2NhbGwgQ1diZW1EYXRhUGFja2V0OjpvcGVyYXRvcj0oY2xhc3MgQ1diZW1EYXRhUGFja2V0IGNvbnN0ICYpDQorPz80Q1diZW1EYXRhUGFja2V0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1diZW1FbnVtTWFyc2hhbGluZyAmIF9fdGhpc2NhbGwgQ1diZW1FbnVtTWFyc2hhbGluZzo6b3BlcmF0b3I9KGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmcgY29uc3QgJikNCis/PzRDV2JlbUVudW1NYXJzaGFsaW5nQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1diZW1GZXRjaFJlZnJNZ3IgJiBfX3RoaXNjYWxsIENXYmVtRmV0Y2hSZWZyTWdyOjpvcGVyYXRvcj0oY2xhc3MgQ1diZW1GZXRjaFJlZnJNZ3IgY29uc3QgJikNCis/PzRDV2JlbUZldGNoUmVmck1nckBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXYmVtR3VpZFRvQ2xhc3NNYXAgJiBfX3RoaXNjYWxsIENXYmVtR3VpZFRvQ2xhc3NNYXA6Om9wZXJhdG9yPShjbGFzcyBDV2JlbUd1aWRUb0NsYXNzTWFwIGNvbnN0ICYpDQorPz80Q1diZW1HdWlkVG9DbGFzc01hcEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXYmVtTXRndERlbGl2ZXJFdmVudFBhY2tldCAmIF9fdGhpc2NhbGwgQ1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0OjpvcGVyYXRvcj0oY2xhc3MgQ1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0IGNvbnN0ICYpDQorPz80Q1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1diZW1PYmplY3RBcnJheVBhY2tldCAmIF9fdGhpc2NhbGwgQ1diZW1PYmplY3RBcnJheVBhY2tldDo6b3BlcmF0b3I9KGNsYXNzIENXYmVtT2JqZWN0QXJyYXlQYWNrZXQgY29uc3QgJikNCis/PzRDV2JlbU9iamVjdEFycmF5UGFja2V0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjICYgX190aGlzY2FsbCBDV2JlbVJlZnJlc2hpbmdTdmM6Om9wZXJhdG9yPShjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmMgY29uc3QgJikNCis/PzRDV2JlbVJlZnJlc2hpbmdTdmNAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbVNtYXJ0RW51bU5leHRQYWNrZXQgJiBfX3RoaXNjYWxsIENXYmVtU21hcnRFbnVtTmV4dFBhY2tldDo6b3BlcmF0b3I9KGNsYXNzIENXYmVtU21hcnRFbnVtTmV4dFBhY2tldCBjb25zdCAmKQ0KKz8/NENXYmVtU21hcnRFbnVtTmV4dFBhY2tldEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGUgJiBfX3RoaXNjYWxsIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGU6Om9wZXJhdG9yPShjbGFzcyBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlIGNvbnN0ICYpDQorPz80Q1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXbWlPYmplY3RGYWN0b3J5ICYgX190aGlzY2FsbCBDV21pT2JqZWN0RmFjdG9yeTo6b3BlcmF0b3I9KGNsYXNzIENXbWlPYmplY3RGYWN0b3J5IGNvbnN0ICYpDQorPz80Q1dtaU9iamVjdEZhY3RvcnlAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV21pVGV4dFNvdXJjZUFycmF5ICYgX190aGlzY2FsbCBDV21pVGV4dFNvdXJjZUFycmF5OjpvcGVyYXRvcj0oY2xhc3MgQ1dtaVRleHRTb3VyY2VBcnJheSAmKQ0KKz8/NENXbWlUZXh0U291cmNlQXJyYXlAQFFBRUFBVjBAQUFWMEBAWg0KKzsgcHVibGljOiBzdHJ1Y3QgU0hBUkVEX0xPQ0tfREFUQSAmIF9fdGhpc2NhbGwgU0hBUkVEX0xPQ0tfREFUQTo6b3BlcmF0b3I9KHN0cnVjdCBTSEFSRURfTE9DS19EQVRBIGNvbnN0ICYpDQorPz80U0hBUkVEX0xPQ0tfREFUQUBAUUFFQUFVMEBBQlUwQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBTSE1FTV9IQU5ETEUgJiBfX3RoaXNjYWxsIFNITUVNX0hBTkRMRTo6b3BlcmF0b3I9KHN0cnVjdCBTSE1FTV9IQU5ETEUgY29uc3QgJikNCis/PzRTSE1FTV9IQU5ETEVAQFFBRUFBVTBAQUJVMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM6OlhDZmdSZWZyU3J2YyAmIF9fdGhpc2NhbGwgQ1diZW1SZWZyZXNoaW5nU3ZjOjpYQ2ZnUmVmclNydmM6Om9wZXJhdG9yPShjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM6OlhDZmdSZWZyU3J2YyBjb25zdCAmKQ0KKz8/NFhDZmdSZWZyU3J2Y0BDV2JlbVJlZnJlc2hpbmdTdmNAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmc6OlhFbnVtTWFyc2hhbGluZyAmIF9fdGhpc2NhbGwgQ1diZW1FbnVtTWFyc2hhbGluZzo6WEVudW1NYXJzaGFsaW5nOjpvcGVyYXRvcj0oY2xhc3MgQ1diZW1FbnVtTWFyc2hhbGluZzo6WEVudW1NYXJzaGFsaW5nIGNvbnN0ICYpDQorPz80WEVudW1NYXJzaGFsaW5nQENXYmVtRW51bU1hcnNoYWxpbmdAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXYmVtRmV0Y2hSZWZyTWdyOjpYRmV0Y2hSZWZyTWdyICYgX190aGlzY2FsbCBDV2JlbUZldGNoUmVmck1ncjo6WEZldGNoUmVmck1ncjo6b3BlcmF0b3I9KGNsYXNzIENXYmVtRmV0Y2hSZWZyTWdyOjpYRmV0Y2hSZWZyTWdyIGNvbnN0ICYpDQorPz80WEZldGNoUmVmck1nckBDV2JlbUZldGNoUmVmck1nckBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1dtaU9iamVjdEZhY3Rvcnk6OlhPYmplY3RGYWN0b3J5ICYgX190aGlzY2FsbCBDV21pT2JqZWN0RmFjdG9yeTo6WE9iamVjdEZhY3Rvcnk6Om9wZXJhdG9yPShjbGFzcyBDV21pT2JqZWN0RmFjdG9yeTo6WE9iamVjdEZhY3RvcnkgY29uc3QgJikNCis/PzRYT2JqZWN0RmFjdG9yeUBDV21pT2JqZWN0RmFjdG9yeUBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1dtaU9iamVjdFRleHRTcmM6OlhPYmplY3RUZXh0U3JjICYgX190aGlzY2FsbCBDV21pT2JqZWN0VGV4dFNyYzo6WE9iamVjdFRleHRTcmM6Om9wZXJhdG9yPShjbGFzcyBDV21pT2JqZWN0VGV4dFNyYzo6WE9iamVjdFRleHRTcmMgY29uc3QgJikNCis/PzRYT2JqZWN0VGV4dFNyY0BDV21pT2JqZWN0VGV4dFNyY0BAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjOjpYV2JlbVJlZnJTdmMgJiBfX3RoaXNjYWxsIENXYmVtUmVmcmVzaGluZ1N2Yzo6WFdiZW1SZWZyU3ZjOjpvcGVyYXRvcj0oY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjOjpYV2JlbVJlZnJTdmMgY29uc3QgJikNCis/PzRYV2JlbVJlZnJTdmNAQ1diZW1SZWZyZXNoaW5nU3ZjQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbVJlbW90ZVJlZnJlc2hlcjo6WFdiZW1SZW1vdGVSZWZyICYgX190aGlzY2FsbCBDV2JlbVJlbW90ZVJlZnJlc2hlcjo6WFdiZW1SZW1vdGVSZWZyOjpvcGVyYXRvcj0oY2xhc3MgQ1diZW1SZW1vdGVSZWZyZXNoZXI6OlhXYmVtUmVtb3RlUmVmciBjb25zdCAmKQ0KKz8/NFhXYmVtUmVtb3RlUmVmckBDV2JlbVJlbW90ZVJlZnJlc2hlckBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENJbnRlcm5hbFN0cmluZzo6b3BlcmF0b3I9PShjbGFzcyBDSW50ZXJuYWxTdHJpbmcgY29uc3QgJiljb25zdCANCis/PzhDSW50ZXJuYWxTdHJpbmdAQFFCRV9OQUJWMEBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0ludGVybmFsU3RyaW5nOjpvcGVyYXRvcj09KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorPz84Q0ludGVybmFsU3RyaW5nQEBRQkVfTlBCR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXQ6Om9wZXJhdG9yPT0oY2xhc3MgQ1F1YWxpZmllclNldCAmKQ0KKz8/OENRdWFsaWZpZXJTZXRAQFFBRUhBQVYwQEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDSW50ZXJuYWxTdHJpbmc6Om9wZXJhdG9yIT0oY2xhc3MgQ0ludGVybmFsU3RyaW5nIGNvbnN0ICYpY29uc3QgDQorPz85Q0ludGVybmFsU3RyaW5nQEBRQkVfTkFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0gKiBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0sY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+LGNsYXNzIENGbGV4QXJyYXk+OjpvcGVyYXRvcltdKGludCkNCis/P0E/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBAUUFFUEFWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEhAWg0KKzsgcHVibGljOiBjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSBjb25zdCAqIF9fdGhpc2NhbGwgQ1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT46Om9wZXJhdG9yW10oaW50KWNvbnN0IA0KKz8/QT8kQ1BvaW50ZXJBcnJheUBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQEBWQ0ZsZXhBcnJheUBAQEBRQkVQQlZDRmFzdFByb3BlcnR5QmFnSXRlbUBASEBaDQorOyBwdWJsaWM6IGNsYXNzIENXbWlUZXh0U291cmNlICogX190aGlzY2FsbCBDUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENXbWlUZXh0U291cmNlPixjbGFzcyBDRmxleEFycmF5Pjo6b3BlcmF0b3JbXShpbnQpDQorPz9BPyRDUG9pbnRlckFycmF5QFZDV21pVGV4dFNvdXJjZUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNXbWlUZXh0U291cmNlQEBAQFZDRmxleEFycmF5QEBAQFFBRVBBVkNXbWlUZXh0U291cmNlQEBIQFoNCis7IHB1YmxpYzogY2xhc3MgQ1dtaVRleHRTb3VyY2UgY29uc3QgKiBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+OjpvcGVyYXRvcltdKGludCljb25zdCANCis/P0E/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBAUUJFUEJWQ1dtaVRleHRTb3VyY2VAQEhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqICYgX190aGlzY2FsbCBDRml4ZWRCU1RSQXJyYXk6Om9wZXJhdG9yW10oaW50KQ0KKz8/QUNGaXhlZEJTVFJBcnJheUBAUUFFQUFQQUdIQFoNCis7IHByaXZhdGU6IF9fdGhpc2NhbGwgQ0ludGVybmFsU3RyaW5nOjpvcGVyYXRvciBjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqKHZvaWQpDQorPz9CQ0ludGVybmFsU3RyaW5nQEBBQUVQQVZDQ29tcHJlc3NlZFN0cmluZ0BAWFoNCis7IHByaXZhdGU6IF9fdGhpc2NhbGwgQ0ludGVybmFsU3RyaW5nOjpvcGVyYXRvciBjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqKHZvaWQpY29uc3QgDQorPz9CQ0ludGVybmFsU3RyaW5nQEBBQkVQQVZDQ29tcHJlc3NlZFN0cmluZ0BAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSW50ZXJuYWxTdHJpbmc6Om9wZXJhdG9yIGNsYXNzIFdTdHJpbmcodm9pZCljb25zdCANCis/P0JDSW50ZXJuYWxTdHJpbmdAQFFCRT9BVldTdHJpbmdAQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1R5cGU6Om9wZXJhdG9yIHVuc2lnbmVkIGxvbmcodm9pZCkNCis/P0JDVHlwZUBAUUFFS1haDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDSW50ZXJuYWxTdHJpbmc6Om9wZXJhdG9yPChjbGFzcyBDSW50ZXJuYWxTdHJpbmcgY29uc3QgJiljb25zdCANCis/P01DSW50ZXJuYWxTdHJpbmdAQFFCRV9OQUJWMEBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0ludGVybmFsU3RyaW5nOjpvcGVyYXRvcj4oY2xhc3MgQ0ludGVybmFsU3RyaW5nIGNvbnN0ICYpY29uc3QgDQorPz9PQ0ludGVybmFsU3RyaW5nQEBRQkVfTkFCVjBAQFoNCis7IGNvbnN0ICBDSW1wbDxzdHJ1Y3QgSVdiZW1PYmplY3RUZXh0U3JjLGNsYXNzIENXbWlPYmplY3RUZXh0U3JjPjo6YHZmdGFibGUnDQorPz9fNz8kQ0ltcGxAVUlXYmVtT2JqZWN0VGV4dFNyY0BAVkNXbWlPYmplY3RUZXh0U3JjQEBAQDZCQA0KKzsgY29uc3QgIENJbXBsPHN0cnVjdCBJV2JlbVJlZnJlc2hpbmdTZXJ2aWNlcyxjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM+OjpgdmZ0YWJsZScNCis/P183PyRDSW1wbEBVSVdiZW1SZWZyZXNoaW5nU2VydmljZXNAQFZDV2JlbVJlZnJlc2hpbmdTdmNAQEBANkJADQorOyBjb25zdCAgQ0ltcGw8c3RydWN0IElXYmVtUmVtb3RlUmVmcmVzaGVyLGNsYXNzIENXYmVtUmVtb3RlUmVmcmVzaGVyPjo6YHZmdGFibGUnDQorPz9fNz8kQ0ltcGxAVUlXYmVtUmVtb3RlUmVmcmVzaGVyQEBWQ1diZW1SZW1vdGVSZWZyZXNoZXJAQEBANkJADQorOyBjb25zdCAgQ0ltcGw8c3RydWN0IF9JV2JlbUNvbmZpZ3VyZVJlZnJlc2hpbmdTdmNzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz46OmB2ZnRhYmxlJw0KKz8/Xzc/JENJbXBsQFVfSVdiZW1Db25maWd1cmVSZWZyZXNoaW5nU3Zjc0BAVkNXYmVtUmVmcmVzaGluZ1N2Y0BAQEA2QkANCis7IGNvbnN0ICBDSW1wbDxzdHJ1Y3QgX0lXYmVtRW51bU1hcnNoYWxpbmcsY2xhc3MgQ1diZW1FbnVtTWFyc2hhbGluZz46OmB2ZnRhYmxlJw0KKz8/Xzc/JENJbXBsQFVfSVdiZW1FbnVtTWFyc2hhbGluZ0BAVkNXYmVtRW51bU1hcnNoYWxpbmdAQEBANkJADQorOyBjb25zdCAgQ0ltcGw8c3RydWN0IF9JV2JlbUZldGNoUmVmcmVzaGVyTWdyLGNsYXNzIENXYmVtRmV0Y2hSZWZyTWdyPjo6YHZmdGFibGUnDQorPz9fNz8kQ0ltcGxAVV9JV2JlbUZldGNoUmVmcmVzaGVyTWdyQEBWQ1diZW1GZXRjaFJlZnJNZ3JAQEBANkJADQorOyBjb25zdCAgQ0ltcGw8c3RydWN0IF9JV21pT2JqZWN0RmFjdG9yeSxjbGFzcyBDV21pT2JqZWN0RmFjdG9yeT46OmB2ZnRhYmxlJw0KKz8/Xzc/JENJbXBsQFVfSVdtaU9iamVjdEZhY3RvcnlAQFZDV21pT2JqZWN0RmFjdG9yeUBAQEA2QkANCis7IGNvbnN0ICBDQ2xhc3NBbmRNZXRob2RzOjpgdmZ0YWJsZSd7Zm9yIGBDQ2xhc3NQYXJ0Q29udGFpbmVyJ30NCis/P183Q0NsYXNzQW5kTWV0aG9kc0BANkJDQ2xhc3NQYXJ0Q29udGFpbmVyQEBADQorOyBjb25zdCAgQ0NsYXNzQW5kTWV0aG9kczo6YHZmdGFibGUne2ZvciBgQ01ldGhvZFBhcnRDb250YWluZXInfQ0KKz8/XzdDQ2xhc3NBbmRNZXRob2RzQEA2QkNNZXRob2RQYXJ0Q29udGFpbmVyQEBADQorOyBjb25zdCAgQ0NsYXNzUGFydDo6YHZmdGFibGUne2ZvciBgQ0RhdGFUYWJsZUNvbnRhaW5lcid9DQorPz9fN0NDbGFzc1BhcnRAQDZCQ0RhdGFUYWJsZUNvbnRhaW5lckBAQA0KKzsgY29uc3QgIENDbGFzc1BhcnQ6OmB2ZnRhYmxlJ3tmb3IgYENIZWFwQ29udGFpbmVyJ30NCis/P183Q0NsYXNzUGFydEBANkJDSGVhcENvbnRhaW5lckBAQA0KKzsgY29uc3QgIENDbGFzc1BhcnQ6OmB2ZnRhYmxlJ3tmb3IgYENQcm9wZXJ0eVRhYmxlQ29udGFpbmVyJ30NCis/P183Q0NsYXNzUGFydEBANkJDUHJvcGVydHlUYWJsZUNvbnRhaW5lckBAQA0KKzsgY29uc3QgIENDbGFzc1BhcnQ6OmB2ZnRhYmxlJ3tmb3IgYENRdWFsaWZpZXJTZXRDb250YWluZXInfQ0KKz8/XzdDQ2xhc3NQYXJ0QEA2QkNRdWFsaWZpZXJTZXRDb250YWluZXJAQEANCis7IGNvbnN0ICBDQ2xhc3NQYXJ0Q29udGFpbmVyOjpgdmZ0YWJsZScNCis/P183Q0NsYXNzUGFydENvbnRhaW5lckBANkJADQorOyBjb25zdCAgQ0NsYXNzUXVhbGlmaWVyU2V0OjpgdmZ0YWJsZScNCis/P183Q0NsYXNzUXVhbGlmaWVyU2V0QEA2QkANCis7IGNvbnN0ICBDRmFzdFByb3BlcnR5QmFnOjpgdmZ0YWJsZScNCis/P183Q0Zhc3RQcm9wZXJ0eUJhZ0BANkJADQorOyBjb25zdCAgQ0luc3RhbmNlUFFTQ29udGFpbmVyOjpgdmZ0YWJsZScNCis/P183Q0luc3RhbmNlUFFTQ29udGFpbmVyQEA2QkANCis7IGNvbnN0ICBDSW5zdGFuY2VQYXJ0OjpgdmZ0YWJsZSd7Zm9yIGBDRGF0YVRhYmxlQ29udGFpbmVyJ30NCis/P183Q0luc3RhbmNlUGFydEBANkJDRGF0YVRhYmxlQ29udGFpbmVyQEBADQorOyBjb25zdCAgQ0luc3RhbmNlUGFydDo6YHZmdGFibGUne2ZvciBgQ0hlYXBDb250YWluZXInfQ0KKz8/XzdDSW5zdGFuY2VQYXJ0QEA2QkNIZWFwQ29udGFpbmVyQEBADQorOyBjb25zdCAgQ0luc3RhbmNlUGFydDo6YHZmdGFibGUne2ZvciBgQ1F1YWxpZmllclNldENvbnRhaW5lcid9DQorPz9fN0NJbnN0YW5jZVBhcnRAQDZCQ1F1YWxpZmllclNldENvbnRhaW5lckBAQA0KKzsgY29uc3QgIENJbnN0YW5jZVBhcnQ6OmB2ZnRhYmxlJ3tmb3IgYENRdWFsaWZpZXJTZXRMaXN0Q29udGFpbmVyJ30NCis/P183Q0luc3RhbmNlUGFydEBANkJDUXVhbGlmaWVyU2V0TGlzdENvbnRhaW5lckBAQA0KKzsgY29uc3QgIENJbnN0YW5jZVBhcnRDb250YWluZXI6OmB2ZnRhYmxlJw0KKz8/XzdDSW5zdGFuY2VQYXJ0Q29udGFpbmVyQEA2QkANCis7IGNvbnN0ICBDSW5zdGFuY2VRdWFsaWZpZXJTZXQ6OmB2ZnRhYmxlJw0KKz8/XzdDSW5zdGFuY2VRdWFsaWZpZXJTZXRAQDZCQA0KKzsgY29uc3QgIENNZXRob2RQYXJ0OjpgdmZ0YWJsZScNCis/P183Q01ldGhvZFBhcnRAQDZCQA0KKzsgY29uc3QgIENNZXRob2RQYXJ0Q29udGFpbmVyOjpgdmZ0YWJsZScNCis/P183Q01ldGhvZFBhcnRDb250YWluZXJAQDZCQA0KKzsgY29uc3QgIENNZXRob2RRdWFsaWZpZXJTZXQ6OmB2ZnRhYmxlJw0KKz8/XzdDTWV0aG9kUXVhbGlmaWVyU2V0QEA2QkANCis7IGNvbnN0ICBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyOjpgdmZ0YWJsZScNCis/P183Q01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lckBANkJADQorOyBjb25zdCAgQ1F1YWxpZmllclNldDo6YHZmdGFibGUnDQorPz9fN0NRdWFsaWZpZXJTZXRAQDZCQA0KKzsgY29uc3QgIENRdWFsaWZpZXJTZXRMaXN0Q29udGFpbmVyOjpgdmZ0YWJsZScNCis/P183Q1F1YWxpZmllclNldExpc3RDb250YWluZXJAQDZCQA0KKzsgY29uc3QgIENXYmVtQ2FsbFNlY3VyaXR5OjpgdmZ0YWJsZSd7Zm9yIGBJU2VydmVyU2VjdXJpdHknfQ0KKz8/XzdDV2JlbUNhbGxTZWN1cml0eUBANkJJU2VydmVyU2VjdXJpdHlAQEANCis7IGNvbnN0ICBDV2JlbUNhbGxTZWN1cml0eTo6YHZmdGFibGUne2ZvciBgX0lXbWlDYWxsU2VjJ30NCis/P183Q1diZW1DYWxsU2VjdXJpdHlAQDZCX0lXbWlDYWxsU2VjQEBADQorOyBjb25zdCAgQ1diZW1DbGFzczo6YHZmdGFibGUne2ZvciBgSUVycm9ySW5mbyd9DQorPz9fN0NXYmVtQ2xhc3NAQDZCSUVycm9ySW5mb0BAQA0KKzsgY29uc3QgIENXYmVtQ2xhc3M6OmB2ZnRhYmxlJ3tmb3IgYElNYXJzaGFsJ30NCis/P183Q1diZW1DbGFzc0BANkJJTWFyc2hhbEBAQA0KKzsgY29uc3QgIENXYmVtQ2xhc3M6OmB2ZnRhYmxlJ3tmb3IgYElXYmVtQ29uc3RydWN0Q2xhc3NPYmplY3QnfQ0KKz8/XzdDV2JlbUNsYXNzQEA2QklXYmVtQ29uc3RydWN0Q2xhc3NPYmplY3RAQEANCis7IGNvbnN0ICBDV2JlbUNsYXNzOjpgdmZ0YWJsZSd7Zm9yIGBJV2JlbVByb3BlcnR5U291cmNlJ30NCis/P183Q1diZW1DbGFzc0BANkJJV2JlbVByb3BlcnR5U291cmNlQEBADQorOyBjb25zdCAgQ1diZW1DbGFzczo6YHZmdGFibGUne2ZvciBgX0lXbWlPYmplY3QnfQ0KKz8/XzdDV2JlbUNsYXNzQEA2Ql9JV21pT2JqZWN0QEBADQorOyBjb25zdCAgQ1diZW1FbnVtTWFyc2hhbGluZzo6YHZmdGFibGUnDQorPz9fN0NXYmVtRW51bU1hcnNoYWxpbmdAQDZCQA0KKzsgY29uc3QgIENXYmVtRmV0Y2hSZWZyTWdyOjpgdmZ0YWJsZScNCis/P183Q1diZW1GZXRjaFJlZnJNZ3JAQDZCQA0KKzsgY29uc3QgIENXYmVtSW5zdGFuY2U6OmB2ZnRhYmxlJ3tmb3IgYENDbGFzc1BhcnRDb250YWluZXInfQ0KKz8/XzdDV2JlbUluc3RhbmNlQEA2QkNDbGFzc1BhcnRDb250YWluZXJAQEANCis7IGNvbnN0ICBDV2JlbUluc3RhbmNlOjpgdmZ0YWJsZSd7Zm9yIGBDSW5zdGFuY2VQYXJ0Q29udGFpbmVyJ30NCis/P183Q1diZW1JbnN0YW5jZUBANkJDSW5zdGFuY2VQYXJ0Q29udGFpbmVyQEBADQorOyBjb25zdCAgQ1diZW1JbnN0YW5jZTo6YHZmdGFibGUne2ZvciBgSUVycm9ySW5mbyd9DQorPz9fN0NXYmVtSW5zdGFuY2VAQDZCSUVycm9ySW5mb0BAQA0KKzsgY29uc3QgIENXYmVtSW5zdGFuY2U6OmB2ZnRhYmxlJ3tmb3IgYElNYXJzaGFsJ30NCis/P183Q1diZW1JbnN0YW5jZUBANkJJTWFyc2hhbEBAQA0KKzsgY29uc3QgIENXYmVtSW5zdGFuY2U6OmB2ZnRhYmxlJ3tmb3IgYElXYmVtQ29uc3RydWN0Q2xhc3NPYmplY3QnfQ0KKz8/XzdDV2JlbUluc3RhbmNlQEA2QklXYmVtQ29uc3RydWN0Q2xhc3NPYmplY3RAQEANCis7IGNvbnN0ICBDV2JlbUluc3RhbmNlOjpgdmZ0YWJsZSd7Zm9yIGBJV2JlbVByb3BlcnR5U291cmNlJ30NCis/P183Q1diZW1JbnN0YW5jZUBANkJJV2JlbVByb3BlcnR5U291cmNlQEBADQorOyBjb25zdCAgQ1diZW1JbnN0YW5jZTo6YHZmdGFibGUne2ZvciBgX0lXbWlPYmplY3QnfQ0KKz8/XzdDV2JlbUluc3RhbmNlQEA2Ql9JV21pT2JqZWN0QEBADQorOyBjb25zdCAgQ1diZW1PYmplY3Q6OmB2ZnRhYmxlJ3tmb3IgYElFcnJvckluZm8nfQ0KKz8/XzdDV2JlbU9iamVjdEBANkJJRXJyb3JJbmZvQEBADQorOyBjb25zdCAgQ1diZW1PYmplY3Q6OmB2ZnRhYmxlJ3tmb3IgYElNYXJzaGFsJ30NCis/P183Q1diZW1PYmplY3RAQDZCSU1hcnNoYWxAQEANCis7IGNvbnN0ICBDV2JlbU9iamVjdDo6YHZmdGFibGUne2ZvciBgSVdiZW1Db25zdHJ1Y3RDbGFzc09iamVjdCd9DQorPz9fN0NXYmVtT2JqZWN0QEA2QklXYmVtQ29uc3RydWN0Q2xhc3NPYmplY3RAQEANCis7IGNvbnN0ICBDV2JlbU9iamVjdDo6YHZmdGFibGUne2ZvciBgSVdiZW1Qcm9wZXJ0eVNvdXJjZSd9DQorPz9fN0NXYmVtT2JqZWN0QEA2QklXYmVtUHJvcGVydHlTb3VyY2VAQEANCis7IGNvbnN0ICBDV2JlbU9iamVjdDo6YHZmdGFibGUne2ZvciBgX0lXbWlPYmplY3QnfQ0KKz8/XzdDV2JlbU9iamVjdEBANkJfSVdtaU9iamVjdEBAQA0KKzsgY29uc3QgIENXYmVtUmVmcmVzaGluZ1N2Yzo6YHZmdGFibGUnDQorPz9fN0NXYmVtUmVmcmVzaGluZ1N2Y0BANkJADQorOyBjb25zdCAgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6YHZmdGFibGUnDQorPz9fN0NXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQDZCQA0KKzsgY29uc3QgIENXbWlPYmplY3RGYWN0b3J5OjpgdmZ0YWJsZScNCis/P183Q1dtaU9iamVjdEZhY3RvcnlAQDZCQA0KKzsgY29uc3QgIENXYmVtUmVmcmVzaGluZ1N2Yzo6WENmZ1JlZnJTcnZjOjpgdmZ0YWJsZScNCis/P183WENmZ1JlZnJTcnZjQENXYmVtUmVmcmVzaGluZ1N2Y0BANkJADQorOyBjb25zdCAgQ1diZW1FbnVtTWFyc2hhbGluZzo6WEVudW1NYXJzaGFsaW5nOjpgdmZ0YWJsZScNCis/P183WEVudW1NYXJzaGFsaW5nQENXYmVtRW51bU1hcnNoYWxpbmdAQDZCQA0KKzsgY29uc3QgIENXYmVtRmV0Y2hSZWZyTWdyOjpYRmV0Y2hSZWZyTWdyOjpgdmZ0YWJsZScNCis/P183WEZldGNoUmVmck1nckBDV2JlbUZldGNoUmVmck1nckBANkJADQorOyBjb25zdCAgQ1dtaU9iamVjdEZhY3Rvcnk6OlhPYmplY3RGYWN0b3J5OjpgdmZ0YWJsZScNCis/P183WE9iamVjdEZhY3RvcnlAQ1dtaU9iamVjdEZhY3RvcnlAQDZCQA0KKzsgY29uc3QgIENXbWlPYmplY3RUZXh0U3JjOjpYT2JqZWN0VGV4dFNyYzo6YHZmdGFibGUnDQorPz9fN1hPYmplY3RUZXh0U3JjQENXbWlPYmplY3RUZXh0U3JjQEA2QkANCis7IGNvbnN0ICBDV2JlbVJlZnJlc2hpbmdTdmM6OlhXYmVtUmVmclN2Yzo6YHZmdGFibGUnDQorPz9fN1hXYmVtUmVmclN2Y0BDV2JlbVJlZnJlc2hpbmdTdmNAQDZCQA0KKzsgY29uc3QgIENXYmVtUmVtb3RlUmVmcmVzaGVyOjpYV2JlbVJlbW90ZVJlZnI6OmB2ZnRhYmxlJw0KKz8/XzdYV2JlbVJlbW90ZVJlZnJAQ1diZW1SZW1vdGVSZWZyZXNoZXJAQDZCQA0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kQ1BvaW50ZXJBcnJheUBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQEBWQ0ZsZXhBcnJheUBAQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ2xhc3NRdWFsaWZpZXJTZXQ6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRkNDbGFzc1F1YWxpZmllclNldEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5zdGFuY2VRdWFsaWZpZXJTZXQ6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRkNJbnN0YW5jZVF1YWxpZmllclNldEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDV2JlbUNsYXNzQ2FjaGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRkNXYmVtQ2xhc3NDYWNoZUBAUUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDRmFzdEhlYXA6OkFic29sdXRlVG9IZWFwKHVuc2lnbmVkIGNoYXIgKikNCis/QWJzb2x1dGVUb0hlYXBAQ0Zhc3RIZWFwQEBJQUVLUEFFQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENJbnRlcm5hbFN0cmluZzo6QWNxdWlyZUNvbXByZXNzZWRTdHJpbmcoY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgKikNCis/QWNxdWlyZUNvbXByZXNzZWRTdHJpbmdAQ0ludGVybmFsU3RyaW5nQEBRQUVYUEFWQ0NvbXByZXNzZWRTdHJpbmdAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0sY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+LGNsYXNzIENGbGV4QXJyYXk+OjpBZGQoY2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0gKikNCis/QWRkQD8kQ1BvaW50ZXJBcnJheUBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQEBWQ0ZsZXhBcnJheUBAQEBRQUVIUEFWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+OjpBZGQoY2xhc3MgQ1dtaVRleHRTb3VyY2UgKikNCis/QWRkQD8kQ1BvaW50ZXJBcnJheUBWQ1dtaVRleHRTb3VyY2VAQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDV21pVGV4dFNvdXJjZUBAQEBWQ0ZsZXhBcnJheUBAQEBRQUVIUEFWQ1dtaVRleHRTb3VyY2VAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRmFzdFByb3BlcnR5QmFnOjpBZGQodW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICopDQorP0FkZEBDRmFzdFByb3BlcnR5QmFnQEBRQUVKUEJHSktLUEFYQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1SZWZyZXNoaW5nU3ZjOjpBZGRFbnVtVG9SZWZyZXNoZXIoc3RydWN0IF9XQkVNX1JFRlJFU0hFUl9JRCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyxzdHJ1Y3QgSVdiZW1Db250ZXh0ICosdW5zaWduZWQgbG9uZyxzdHJ1Y3QgX1dCRU1fUkVGUkVTSF9JTkZPICosdW5zaWduZWQgbG9uZyAqKQ0KKz9BZGRFbnVtVG9SZWZyZXNoZXJAQ1diZW1SZWZyZXNoaW5nU3ZjQEBNQUVKUEFVX1dCRU1fUkVGUkVTSEVSX0lEQEBQQkdKUEFVSVdiZW1Db250ZXh0QEBLUEFVX1dCRU1fUkVGUkVTSF9JTkZPQEBQQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtUmVmcmVzaGluZ1N2Yzo6WFdiZW1SZWZyU3ZjOjpBZGRFbnVtVG9SZWZyZXNoZXIoc3RydWN0IF9XQkVNX1JFRlJFU0hFUl9JRCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyxzdHJ1Y3QgSVdiZW1Db250ZXh0ICosdW5zaWduZWQgbG9uZyxzdHJ1Y3QgX1dCRU1fUkVGUkVTSF9JTkZPICosdW5zaWduZWQgbG9uZyAqKQ0KKz9BZGRFbnVtVG9SZWZyZXNoZXJAWFdiZW1SZWZyU3ZjQENXYmVtUmVmcmVzaGluZ1N2Y0BAVUFHSlBBVV9XQkVNX1JFRlJFU0hFUl9JREBAUEJHSlBBVUlXYmVtQ29udGV4dEBAS1BBVV9XQkVNX1JFRlJFU0hfSU5GT0BAUEFLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENXYmVtUmVmcmVzaGluZ1N2Yzo6QWRkRW51bVRvUmVmcmVzaGVyXyhpbnQsc3RydWN0IF9XQkVNX1JFRlJFU0hFUl9JRCAqLGNsYXNzIENXYmVtT2JqZWN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKixzdHJ1Y3QgX1dCRU1fUkVGUkVTSF9JTkZPICopDQorP0FkZEVudW1Ub1JlZnJlc2hlcl9AQ1diZW1SZWZyZXNoaW5nU3ZjQEBJQUVKSFBBVV9XQkVNX1JFRlJFU0hFUl9JREBAUEFWQ1diZW1PYmplY3RAQFBCR0pQQVVJV2JlbUNvbnRleHRAQFBBVV9XQkVNX1JFRlJFU0hfSU5GT0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtR3VpZFRvQ2xhc3NNYXA6OkFkZE1hcChjbGFzcyBDR1VJRCAmLGNsYXNzIENXYmVtQ2xhc3NUb0lkTWFwICogKikNCis/QWRkTWFwQENXYmVtR3VpZFRvQ2xhc3NNYXBAQFFBRUpBQVZDR1VJREBAUEFQQVZDV2JlbUNsYXNzVG9JZE1hcEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3NDYWNoZTo6QWRkT2JqZWN0KHN0cnVjdCBfR1VJRCAmLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICopDQorP0FkZE9iamVjdEBDV2JlbUNsYXNzQ2FjaGVAQFFBRUpBQVVfR1VJREBAUEFVSVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1SZWZyZXNoaW5nU3ZjOjpBZGRPYmplY3RUb1JlZnJlc2hlcihzdHJ1Y3QgX1dCRU1fUkVGUkVTSEVSX0lEICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKix1bnNpZ25lZCBsb25nLHN0cnVjdCBfV0JFTV9SRUZSRVNIX0lORk8gKix1bnNpZ25lZCBsb25nICopDQorP0FkZE9iamVjdFRvUmVmcmVzaGVyQENXYmVtUmVmcmVzaGluZ1N2Y0BATUFFSlBBVV9XQkVNX1JFRlJFU0hFUl9JREBAUEJHSlBBVUlXYmVtQ29udGV4dEBAS1BBVV9XQkVNX1JFRlJFU0hfSU5GT0BAUEFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbVJlZnJlc2hpbmdTdmM6OlhXYmVtUmVmclN2Yzo6QWRkT2JqZWN0VG9SZWZyZXNoZXIoc3RydWN0IF9XQkVNX1JFRlJFU0hFUl9JRCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyxzdHJ1Y3QgSVdiZW1Db250ZXh0ICosdW5zaWduZWQgbG9uZyxzdHJ1Y3QgX1dCRU1fUkVGUkVTSF9JTkZPICosdW5zaWduZWQgbG9uZyAqKQ0KKz9BZGRPYmplY3RUb1JlZnJlc2hlckBYV2JlbVJlZnJTdmNAQ1diZW1SZWZyZXNoaW5nU3ZjQEBVQUdKUEFVX1dCRU1fUkVGUkVTSEVSX0lEQEBQQkdKUEFVSVdiZW1Db250ZXh0QEBLUEFVX1dCRU1fUkVGUkVTSF9JTkZPQEBQQUtAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbVJlZnJlc2hpbmdTdmM6OkFkZE9iamVjdFRvUmVmcmVzaGVyQnlUZW1wbGF0ZShzdHJ1Y3QgX1dCRU1fUkVGUkVTSEVSX0lEICosc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKixsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKix1bnNpZ25lZCBsb25nLHN0cnVjdCBfV0JFTV9SRUZSRVNIX0lORk8gKix1bnNpZ25lZCBsb25nICopDQorP0FkZE9iamVjdFRvUmVmcmVzaGVyQnlUZW1wbGF0ZUBDV2JlbVJlZnJlc2hpbmdTdmNAQE1BRUpQQVVfV0JFTV9SRUZSRVNIRVJfSURAQFBBVUlXYmVtQ2xhc3NPYmplY3RAQEpQQVVJV2JlbUNvbnRleHRAQEtQQVVfV0JFTV9SRUZSRVNIX0lORk9AQFBBS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1SZWZyZXNoaW5nU3ZjOjpYV2JlbVJlZnJTdmM6OkFkZE9iamVjdFRvUmVmcmVzaGVyQnlUZW1wbGF0ZShzdHJ1Y3QgX1dCRU1fUkVGUkVTSEVSX0lEICosc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKixsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKix1bnNpZ25lZCBsb25nLHN0cnVjdCBfV0JFTV9SRUZSRVNIX0lORk8gKix1bnNpZ25lZCBsb25nICopDQorP0FkZE9iamVjdFRvUmVmcmVzaGVyQnlUZW1wbGF0ZUBYV2JlbVJlZnJTdmNAQ1diZW1SZWZyZXNoaW5nU3ZjQEBVQUdKUEFVX1dCRU1fUkVGUkVTSEVSX0lEQEBQQVVJV2JlbUNsYXNzT2JqZWN0QEBKUEFVSVdiZW1Db250ZXh0QEBLUEFVX1dCRU1fUkVGUkVTSF9JTkZPQEBQQUtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1SZWZyZXNoaW5nU3ZjOjpBZGRPYmplY3RUb1JlZnJlc2hlcl8oaW50LHN0cnVjdCBfV0JFTV9SRUZSRVNIRVJfSUQgKixjbGFzcyBDV2JlbU9iamVjdCAqLGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqLHN0cnVjdCBfV0JFTV9SRUZSRVNIX0lORk8gKikNCis/QWRkT2JqZWN0VG9SZWZyZXNoZXJfQENXYmVtUmVmcmVzaGluZ1N2Y0BASUFFSkhQQVVfV0JFTV9SRUZSRVNIRVJfSURAQFBBVkNXYmVtT2JqZWN0QEBKUEFVSVdiZW1Db250ZXh0QEBQQVVfV0JFTV9SRUZSRVNIX0lORk9AQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpBZGRQcm9wZXJ0eVRleHQoY2xhc3MgV1N0cmluZyAmLHN0cnVjdCBDUHJvcGVydHlMb29rdXAgKixjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqLGxvbmcpDQorP0FkZFByb3BlcnR5VGV4dEBDV2JlbUNsYXNzQEBRQUVKQUFWV1N0cmluZ0BAUEFVQ1Byb3BlcnR5TG9va3VwQEBQQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBASkBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDVHlwZTo6QWRkUHJvcGVydHlUeXBlKGNsYXNzIFdTdHJpbmcgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9BZGRQcm9wZXJ0eVR5cGVAQ1R5cGVAQFNHWEFBVldTdHJpbmdAQFBCR0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDUXVhbGlmaWVyU2V0OjpBZGRRdWFsaWZpZXJDb25mbGljdHMoY2xhc3MgQ1ZhclZlY3RvciAmKQ0KKz9BZGRRdWFsaWZpZXJDb25mbGljdHNAQ1F1YWxpZmllclNldEBASUFFSkFBVkNWYXJWZWN0b3JAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0ltcGw8c3RydWN0IElXYmVtT2JqZWN0VGV4dFNyYyxjbGFzcyBDV21pT2JqZWN0VGV4dFNyYz46OkFkZFJlZih2b2lkKQ0KKz9BZGRSZWZAPyRDSW1wbEBVSVdiZW1PYmplY3RUZXh0U3JjQEBWQ1dtaU9iamVjdFRleHRTcmNAQEBAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0ltcGw8c3RydWN0IElXYmVtUmVmcmVzaGluZ1NlcnZpY2VzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz46OkFkZFJlZih2b2lkKQ0KKz9BZGRSZWZAPyRDSW1wbEBVSVdiZW1SZWZyZXNoaW5nU2VydmljZXNAQFZDV2JlbVJlZnJlc2hpbmdTdmNAQEBAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0ltcGw8c3RydWN0IElXYmVtUmVtb3RlUmVmcmVzaGVyLGNsYXNzIENXYmVtUmVtb3RlUmVmcmVzaGVyPjo6QWRkUmVmKHZvaWQpDQorP0FkZFJlZkA/JENJbXBsQFVJV2JlbVJlbW90ZVJlZnJlc2hlckBAVkNXYmVtUmVtb3RlUmVmcmVzaGVyQEBAQFVBR0tYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENJbXBsPHN0cnVjdCBfSVdiZW1Db25maWd1cmVSZWZyZXNoaW5nU3ZjcyxjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM+OjpBZGRSZWYodm9pZCkNCis/QWRkUmVmQD8kQ0ltcGxAVV9JV2JlbUNvbmZpZ3VyZVJlZnJlc2hpbmdTdmNzQEBWQ1diZW1SZWZyZXNoaW5nU3ZjQEBAQFVBR0tYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENJbXBsPHN0cnVjdCBfSVdiZW1FbnVtTWFyc2hhbGluZyxjbGFzcyBDV2JlbUVudW1NYXJzaGFsaW5nPjo6QWRkUmVmKHZvaWQpDQorP0FkZFJlZkA/JENJbXBsQFVfSVdiZW1FbnVtTWFyc2hhbGluZ0BAVkNXYmVtRW51bU1hcnNoYWxpbmdAQEBAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0ltcGw8c3RydWN0IF9JV2JlbUZldGNoUmVmcmVzaGVyTWdyLGNsYXNzIENXYmVtRmV0Y2hSZWZyTWdyPjo6QWRkUmVmKHZvaWQpDQorP0FkZFJlZkA/JENJbXBsQFVfSVdiZW1GZXRjaFJlZnJlc2hlck1nckBAVkNXYmVtRmV0Y2hSZWZyTWdyQEBAQFVBR0tYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENJbXBsPHN0cnVjdCBfSVdtaU9iamVjdEZhY3RvcnksY2xhc3MgQ1dtaU9iamVjdEZhY3Rvcnk+OjpBZGRSZWYodm9pZCkNCis/QWRkUmVmQD8kQ0ltcGxAVV9JV21pT2JqZWN0RmFjdG9yeUBAVkNXbWlPYmplY3RGYWN0b3J5QEBAQFVBR0tYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENRdWFsaWZpZXJTZXQ6OkFkZFJlZih2b2lkKQ0KKz9BZGRSZWZAQ1F1YWxpZmllclNldEBAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ1diZW1DYWxsU2VjdXJpdHk6OkFkZFJlZih2b2lkKQ0KKz9BZGRSZWZAQ1diZW1DYWxsU2VjdXJpdHlAQFVBR0tYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpBZGRSZWYodm9pZCkNCis/QWRkUmVmQENXYmVtT2JqZWN0QEBVQUdLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjpBZGRSZWYodm9pZCkNCis/QWRkUmVmQENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFVBR0tYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT46OkFkZFJlZkVsZW1lbnQoY2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0gKikNCis/QWRkUmVmRWxlbWVudEA/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBASUFFWFBBVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT46OkFkZFJlZkVsZW1lbnQoY2xhc3MgQ1dtaVRleHRTb3VyY2UgKikNCis/QWRkUmVmRWxlbWVudEA/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBASUFFWFBBVkNXbWlUZXh0U291cmNlQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmdMaXN0OjpBZGRTdHJpbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/QWRkU3RyaW5nQENDb21wcmVzc2VkU3RyaW5nTGlzdEBAUUFFWFBCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDTWV0aG9kRGVzY3JpcHRpb246OkFkZFRleHQoc3RydWN0IENNZXRob2REZXNjcmlwdGlvbiAqLGNsYXNzIFdTdHJpbmcgJixjbGFzcyBDRmFzdEhlYXAgKixsb25nKQ0KKz9BZGRUZXh0QENNZXRob2REZXNjcmlwdGlvbkBAU0dKUEFVMUBBQVZXU3RyaW5nQEBQQVZDRmFzdEhlYXBAQEpAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGhvZFBhcnQ6OkFkZFRleHQoY2xhc3MgV1N0cmluZyAmLGxvbmcpDQorP0FkZFRleHRAQ01ldGhvZFBhcnRAQFFBRUpBQVZXU3RyaW5nQEBKQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0Zhc3RIZWFwOjpBbGxvY2F0ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgJikNCis/QWxsb2NhdGVAQ0Zhc3RIZWFwQEBRQUVIS0FBS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENGYXN0SGVhcDo6QWxsb2NhdGVTdHJpbmcoY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcgJikNCis/QWxsb2NhdGVTdHJpbmdAQ0Zhc3RIZWFwQEBRQUVIUEJEQUFLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0Zhc3RIZWFwOjpBbGxvY2F0ZVN0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcgJikNCis/QWxsb2NhdGVTdHJpbmdAQ0Zhc3RIZWFwQEBRQUVIUEJHQUFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6QXBwZW5kQXJyYXlQcm9wUmFuZ2VCeUhhbmRsZShsb25nLGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKikNCis/QXBwZW5kQXJyYXlQcm9wUmFuZ2VCeUhhbmRsZUBDV2JlbU9iamVjdEBAVUFHSkpKS0tQQVhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OkFwcGVuZFF1YWxpZmllckFycmF5UmFuZ2UodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCxsb25nLGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKikNCis/QXBwZW5kUXVhbGlmaWVyQXJyYXlSYW5nZUBDV2JlbU9iamVjdEBAUUFFSlBCRzBISkpLS1BBWEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDVW50eXBlZEFycmF5OjpBcHBlbmRSYW5nZShjbGFzcyBDUHRyU291cmNlICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIENGYXN0SGVhcCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICopDQorP0FwcGVuZFJhbmdlQENVbnR5cGVkQXJyYXlAQFNHSlBBVkNQdHJTb3VyY2VAQEtLUEFWQ0Zhc3RIZWFwQEBLS1BBWEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpBcmVFcXVhbChjbGFzcyBDV2JlbU9iamVjdCAqLGNsYXNzIENXYmVtT2JqZWN0ICosbG9uZykNCis/QXJlRXF1YWxAQ1diZW1PYmplY3RAQFNHSFBBVjFAMEpAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRGVjb3JhdGlvblBhcnQ6OkFyZUtleXNSZW1vdmVkKHZvaWQpDQorP0FyZUtleXNSZW1vdmVkQENEZWNvcmF0aW9uUGFydEBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENMaW1pdGF0aW9uTWFwcGluZzo6QXJlUHJvcGVydGllc0xpbWl0ZWQodm9pZCkNCis/QXJlUHJvcGVydGllc0xpbWl0ZWRAQ0xpbWl0YXRpb25NYXBwaW5nQEBRQUVIWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OkFzeW1tZXRyaWNNZXJnZShjbGFzcyBDV2JlbUluc3RhbmNlICosY2xhc3MgQ1diZW1JbnN0YW5jZSAqKQ0KKz9Bc3ltbWV0cmljTWVyZ2VAQ1diZW1JbnN0YW5jZUBAU0dKUEFWMUAwQFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENGYXN0SGVhcDo6QXVnbWVudFJlcXVlc3QodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9BdWdtZW50UmVxdWVzdEBDRmFzdEhlYXBAQElBRUtLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1F1YWxpZmllclNldDo6QmVnaW5FbnVtZXJhdGlvbihsb25nKQ0KKz9CZWdpbkVudW1lcmF0aW9uQENRdWFsaWZpZXJTZXRAQFVBR0pKQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6QmVnaW5FbnVtZXJhdGlvbihsb25nKQ0KKz9CZWdpbkVudW1lcmF0aW9uQENXYmVtT2JqZWN0QEBVQUdKSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OkJlZ2luRW51bWVyYXRpb25FeChsb25nLGxvbmcpDQorP0JlZ2luRW51bWVyYXRpb25FeEBDV2JlbU9iamVjdEBAVUFHSkpKQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUNsYXNzOjpCZWdpbk1ldGhvZEVudW1lcmF0aW9uKGxvbmcpDQorP0JlZ2luTWV0aG9kRW51bWVyYXRpb25AQ1diZW1DbGFzc0BAVUFHSkpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OkJlZ2luTWV0aG9kRW51bWVyYXRpb24obG9uZykNCis/QmVnaW5NZXRob2RFbnVtZXJhdGlvbkBDV2JlbUluc3RhbmNlQEBVQUdKSkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTGltaXRhdGlvbk1hcHBpbmc6OkJ1aWxkKGludCkNCis/QnVpbGRAQ0xpbWl0YXRpb25NYXBwaW5nQEBRQUVYSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OkNJTVRZUEVUb1ZBUlRZUEUobG9uZyx1bnNpZ25lZCBzaG9ydCAqKQ0KKz9DSU1UWVBFVG9WQVJUWVBFQENXYmVtT2JqZWN0QEBVQUdKSlBBR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBDVHlwZSAgX19zdGRjYWxsIENUeXBlOjpDVmFyVG9UeXBlKGNsYXNzIENWYXIgJikNCis/Q1ZhclRvVHlwZUBDVHlwZUBAU0c/QVYxQEFBVkNWYXJAQEBaDQorOyBwdWJsaWM6IGNsYXNzIENWYXIgKiBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkNhbGN1bGF0ZUNhY2hlZEtleSh2b2lkKQ0KKz9DYWxjdWxhdGVDYWNoZWRLZXlAQ1diZW1JbnN0YW5jZUBAUUFFUEFWQ1ZhckBAWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtTXRndERlbGl2ZXJFdmVudFBhY2tldDo6Q2FsY3VsYXRlTGVuZ3RoKGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiAqLHVuc2lnbmVkIGxvbmcgKixjbGFzcyBDV2JlbUNsYXNzVG9JZE1hcCAmLHN0cnVjdCBfR1VJRCAqLGludCAqKQ0KKz9DYWxjdWxhdGVMZW5ndGhAQ1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0QEBRQUVKSlBBUEFVSVdiZW1DbGFzc09iamVjdEBAUEFLQUFWQ1diZW1DbGFzc1RvSWRNYXBAQFBBVV9HVUlEQEBQQUhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1PYmplY3RBcnJheVBhY2tldDo6Q2FsY3VsYXRlTGVuZ3RoKGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiAqLHVuc2lnbmVkIGxvbmcgKixjbGFzcyBDV2JlbUNsYXNzVG9JZE1hcCAmLHN0cnVjdCBfR1VJRCAqLGludCAqKQ0KKz9DYWxjdWxhdGVMZW5ndGhAQ1diZW1PYmplY3RBcnJheVBhY2tldEBAUUFFSkpQQVBBVUlXYmVtQ2xhc3NPYmplY3RAQFBBS0FBVkNXYmVtQ2xhc3NUb0lkTWFwQEBQQVVfR1VJREBAUEFIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtU21hcnRFbnVtTmV4dFBhY2tldDo6Q2FsY3VsYXRlTGVuZ3RoKGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiAqLHVuc2lnbmVkIGxvbmcgKixjbGFzcyBDV2JlbUNsYXNzVG9JZE1hcCAmLHN0cnVjdCBfR1VJRCAqLGludCAqKQ0KKz9DYWxjdWxhdGVMZW5ndGhAQ1diZW1TbWFydEVudW1OZXh0UGFja2V0QEBRQUVKSlBBUEFVSVdiZW1DbGFzc09iamVjdEBAUEFLQUFWQ1diZW1DbGFzc1RvSWRNYXBAQFBBVV9HVUlEQEBQQUhAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ1VudHlwZWRBcnJheTo6Q2FsY3VsYXRlTmVjZXNzYXJ5U3BhY2VCeUxlbmd0aChpbnQsaW50KQ0KKz9DYWxjdWxhdGVOZWNlc3NhcnlTcGFjZUJ5TGVuZ3RoQENVbnR5cGVkQXJyYXlAQFNHS0hIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENVbnR5cGVkQXJyYXk6OkNhbGN1bGF0ZU5lY2Vzc2FyeVNwYWNlQnlUeXBlKGNsYXNzIENUeXBlLGludCkNCis/Q2FsY3VsYXRlTmVjZXNzYXJ5U3BhY2VCeVR5cGVAQ1VudHlwZWRBcnJheUBAU0dLVkNUeXBlQEBIQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ1R5cGU6OkNhbkJlS2V5KHVuc2lnbmVkIGxvbmcpDQorP0NhbkJlS2V5QENUeXBlQEBTR0hLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpDYW5CZVJlY29uY2lsZWRXaXRoKGNsYXNzIENCYXNpY1F1YWxpZmllclNldCAmKQ0KKz9DYW5CZVJlY29uY2lsZWRXaXRoQENCYXNpY1F1YWxpZmllclNldEBAUUFFSEFBVjFAQFoNCis7IHB1YmxpYzogZW51bSBFUmVjb25jaWxpYXRpb24gIF9fdGhpc2NhbGwgQ0NsYXNzQW5kTWV0aG9kczo6Q2FuQmVSZWNvbmNpbGVkV2l0aChjbGFzcyBDQ2xhc3NBbmRNZXRob2RzICYpDQorP0NhbkJlUmVjb25jaWxlZFdpdGhAQ0NsYXNzQW5kTWV0aG9kc0BAUUFFP0FXNEVSZWNvbmNpbGlhdGlvbkBAQUFWMUBAWg0KKzsgcHVibGljOiBlbnVtIEVSZWNvbmNpbGlhdGlvbiAgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpDYW5CZVJlY29uY2lsZWRXaXRoKGNsYXNzIENDbGFzc1BhcnQgJikNCis/Q2FuQmVSZWNvbmNpbGVkV2l0aEBDQ2xhc3NQYXJ0QEBRQUU/QVc0RVJlY29uY2lsaWF0aW9uQEBBQVYxQEBaDQorOyBwdWJsaWM6IGVudW0gRVJlY29uY2lsaWF0aW9uICBfX3RoaXNjYWxsIENNZXRob2RQYXJ0OjpDYW5CZVJlY29uY2lsZWRXaXRoKGNsYXNzIENNZXRob2RQYXJ0ICYpDQorP0NhbkJlUmVjb25jaWxlZFdpdGhAQ01ldGhvZFBhcnRAQFFBRT9BVzRFUmVjb25jaWxpYXRpb25AQEFBVjFAQFoNCis7IHB1YmxpYzogZW51bSBFUmVjb25jaWxpYXRpb24gIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6Q2FuQmVSZWNvbmNpbGVkV2l0aChjbGFzcyBDV2JlbUNsYXNzICopDQorP0NhbkJlUmVjb25jaWxlZFdpdGhAQ1diZW1DbGFzc0BAUUFFP0FXNEVSZWNvbmNpbGlhdGlvbkBAUEFWMUBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpDYW5Db250YWluQWJzdHJhY3QoaW50KQ0KKz9DYW5Db250YWluQWJzdHJhY3RAQ0NsYXNzUGFydEBAVUFFSkhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDSW5zdGFuY2VQUVNDb250YWluZXI6OkNhbkNvbnRhaW5BYnN0cmFjdChpbnQpDQorP0NhbkNvbnRhaW5BYnN0cmFjdEBDSW5zdGFuY2VQUVNDb250YWluZXJAQFVBRUpIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ0luc3RhbmNlUGFydDo6Q2FuQ29udGFpbkFic3RyYWN0KGludCkNCis/Q2FuQ29udGFpbkFic3RyYWN0QENJbnN0YW5jZVBhcnRAQFVBRUpIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lcjo6Q2FuQ29udGFpbkFic3RyYWN0KGludCkNCis/Q2FuQ29udGFpbkFic3RyYWN0QENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXJAQFVBRUpIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6Q2FuQ29udGFpbkR5bmFtaWModm9pZCkNCis/Q2FuQ29udGFpbkR5bmFtaWNAQ0NsYXNzUGFydEBAVUFFSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENJbnN0YW5jZVBRU0NvbnRhaW5lcjo6Q2FuQ29udGFpbkR5bmFtaWModm9pZCkNCis/Q2FuQ29udGFpbkR5bmFtaWNAQ0luc3RhbmNlUFFTQ29udGFpbmVyQEBVQUVKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ0luc3RhbmNlUGFydDo6Q2FuQ29udGFpbkR5bmFtaWModm9pZCkNCis/Q2FuQ29udGFpbkR5bmFtaWNAQ0luc3RhbmNlUGFydEBAVUFFSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXI6OkNhbkNvbnRhaW5EeW5hbWljKHZvaWQpDQorP0NhbkNvbnRhaW5EeW5hbWljQENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXJAQFVBRUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpDYW5Db250YWluS2V5KHZvaWQpDQorP0NhbkNvbnRhaW5LZXlAQ0NsYXNzUGFydEBAVUFFSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENJbnN0YW5jZVBRU0NvbnRhaW5lcjo6Q2FuQ29udGFpbktleSh2b2lkKQ0KKz9DYW5Db250YWluS2V5QENJbnN0YW5jZVBRU0NvbnRhaW5lckBAVUFFSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENJbnN0YW5jZVBhcnQ6OkNhbkNvbnRhaW5LZXkodm9pZCkNCis/Q2FuQ29udGFpbktleUBDSW5zdGFuY2VQYXJ0QEBVQUVKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lcjo6Q2FuQ29udGFpbktleSh2b2lkKQ0KKz9DYW5Db250YWluS2V5QENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXJAQFVBRUpYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpDYW5Db250YWluS2V5ZWRQcm9wcyh2b2lkKQ0KKz9DYW5Db250YWluS2V5ZWRQcm9wc0BDQ2xhc3NQYXJ0QEBRQUVIWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6Q2FuQ29udGFpblNpbmdsZXRvbih2b2lkKQ0KKz9DYW5Db250YWluU2luZ2xldG9uQENDbGFzc1BhcnRAQFVBRUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDSW5zdGFuY2VQUVNDb250YWluZXI6OkNhbkNvbnRhaW5TaW5nbGV0b24odm9pZCkNCis/Q2FuQ29udGFpblNpbmdsZXRvbkBDSW5zdGFuY2VQUVNDb250YWluZXJAQFVBRUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0OjpDYW5Db250YWluU2luZ2xldG9uKHZvaWQpDQorP0NhbkNvbnRhaW5TaW5nbGV0b25AQ0luc3RhbmNlUGFydEBAVUFFSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXI6OkNhbkNvbnRhaW5TaW5nbGV0b24odm9pZCkNCis/Q2FuQ29udGFpblNpbmdsZXRvbkBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyQEBVQUVKWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpDYW5IYXZlQ2ltdHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9DYW5IYXZlQ2ltdHlwZUBDQ2xhc3NQYXJ0QEBVQUVIUEJHQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDSW5zdGFuY2VQUVNDb250YWluZXI6OkNhbkhhdmVDaW10eXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NhbkhhdmVDaW10eXBlQENJbnN0YW5jZVBRU0NvbnRhaW5lckBAVUFFSFBCR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0luc3RhbmNlUGFydDo6Q2FuSGF2ZUNpbXR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/Q2FuSGF2ZUNpbXR5cGVAQ0luc3RhbmNlUGFydEBAVUFFSFBCR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lcjo6Q2FuSGF2ZUNpbXR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/Q2FuSGF2ZUNpbXR5cGVAQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lckBAVUFFSFBCR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDb21wcmVzc2VkU3RyaW5nOjpDaGVhcENvbXBhcmUoY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgY29uc3QgJiljb25zdCANCis/Q2hlYXBDb21wYXJlQENDb21wcmVzc2VkU3RyaW5nQEBRQkVIQUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpDaGVja0Jvb2xRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/Q2hlY2tCb29sUXVhbGlmaWVyQENDbGFzc1BhcnRAQFFBRUhQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDV2JlbU9iamVjdDo6Q2hlY2tCb29sZWFuUHJvcFF1YWwodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9DaGVja0Jvb2xlYW5Qcm9wUXVhbEBDV2JlbU9iamVjdEBAUUFFSFBCRzBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDVW50eXBlZEFycmF5OjpDaGVja0NWYXJWZWN0b3IoY2xhc3MgQ1ZhclZlY3RvciAmLHVuc2lnbmVkIGxvbmcpDQorP0NoZWNrQ1ZhclZlY3RvckBDVW50eXBlZEFycmF5QEBTR0hBQVZDVmFyVmVjdG9yQEBLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRob2RQYXJ0OjpDaGVja0R1cGxpY2F0ZVBhcmFtZXRlcnMoY2xhc3MgQ1diZW1PYmplY3QgKixjbGFzcyBDV2JlbU9iamVjdCAqKQ0KKz9DaGVja0R1cGxpY2F0ZVBhcmFtZXRlcnNAQ01ldGhvZFBhcnRAQElBRUpQQVZDV2JlbU9iamVjdEBAMEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDTWV0aG9kUGFydDo6Q2hlY2tJZHMoY2xhc3MgQ1diZW1DbGFzcyAqLGNsYXNzIENXYmVtQ2xhc3MgKikNCis/Q2hlY2tJZHNAQ01ldGhvZFBhcnRAQElBRUpQQVZDV2JlbUNsYXNzQEAwQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ1VudHlwZWRBcnJheTo6Q2hlY2tJbnRlcnZhbERhdGVUaW1lKGNsYXNzIENWYXJWZWN0b3IgJikNCis/Q2hlY2tJbnRlcnZhbERhdGVUaW1lQENVbnR5cGVkQXJyYXlAQFNHSEFBVkNWYXJWZWN0b3JAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkNoZWNrTG9jYWxCb29sUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NoZWNrTG9jYWxCb29sUXVhbGlmaWVyQENDbGFzc1BhcnRAQFFBRUhQQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1VudHlwZWRBcnJheTo6Q2hlY2tSYW5nZVNpemUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICopDQorP0NoZWNrUmFuZ2VTaXplQENVbnR5cGVkQXJyYXlAQFNHSktLS0tQQVhAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1VudHlwZWRBcnJheTo6Q2hlY2tSYW5nZVNpemVGb3JHZXQodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICopDQorP0NoZWNrUmFuZ2VTaXplRm9yR2V0QENVbnR5cGVkQXJyYXlAQEtHSktLS0tQQUtAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENXYmVtQ2xhc3NDYWNoZTo6Q2xlYXIodm9pZCkNCis/Q2xlYXJAQ1diZW1DbGFzc0NhY2hlQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDV2JlbUd1aWRUb0NsYXNzTWFwOjpDbGVhcih2b2lkKQ0KKz9DbGVhckBDV2JlbUd1aWRUb0NsYXNzTWFwQEBBQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkNsZWFyQ2FjaGVkS2V5KHZvaWQpDQorP0NsZWFyQ2FjaGVkS2V5QENXYmVtSW5zdGFuY2VAQFFBRVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpDbGVhckNhY2hlZEtleVZhbHVlKHZvaWQpDQorP0NsZWFyQ2FjaGVkS2V5VmFsdWVAQ1diZW1JbnN0YW5jZUBAVUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1DbGFzczo6Q2xlYXJXcml0ZU9ubHlQcm9wZXJ0aWVzKHZvaWQpDQorP0NsZWFyV3JpdGVPbmx5UHJvcGVydGllc0BDV2JlbUNsYXNzQEBVQUdKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUluc3RhbmNlOjpDbGVhcldyaXRlT25seVByb3BlcnRpZXModm9pZCkNCis/Q2xlYXJXcml0ZU9ubHlQcm9wZXJ0aWVzQENXYmVtSW5zdGFuY2VAQFVBR0pYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtQ2xhc3M6OkNsb25lKHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogKikNCis/Q2xvbmVAQ1diZW1DbGFzc0BAVUFHSlBBUEFVSVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUluc3RhbmNlOjpDbG9uZShzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqICopDQorP0Nsb25lQENXYmVtSW5zdGFuY2VAQFVBR0pQQVBBVUlXYmVtQ2xhc3NPYmplY3RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1DbGFzczo6Q2xvbmVBbmREZWNvcmF0ZShsb25nLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKixzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqICopDQorP0Nsb25lQW5kRGVjb3JhdGVAQ1diZW1DbGFzc0BAVUFHSkpQQUcwUEFQQVVJV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OkNsb25lQW5kRGVjb3JhdGUobG9uZyx1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICosc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiAqKQ0KKz9DbG9uZUFuZERlY29yYXRlQENXYmVtSW5zdGFuY2VAQFVBR0pKUEFHMFBBUEFVSVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUNsYXNzOjpDbG9uZUV4KGxvbmcsc3RydWN0IF9JV21pT2JqZWN0ICopDQorP0Nsb25lRXhAQ1diZW1DbGFzc0BAVUFHSkpQQVVfSVdtaU9iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUluc3RhbmNlOjpDbG9uZUV4KGxvbmcsc3RydWN0IF9JV21pT2JqZWN0ICopDQorP0Nsb25lRXhAQ1diZW1JbnN0YW5jZUBAVUFHSkpQQVVfSVdtaU9iamVjdEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGU6OkNsb25lUHJvY2Vzc0NvbnRleHQodm9pZCkNCis/Q2xvbmVQcm9jZXNzQ29udGV4dEBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlQEBRQUVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGU6OkNsb25lUnBjQ29udGV4dChzdHJ1Y3QgSVNlcnZlclNlY3VyaXR5ICopDQorP0Nsb25lUnBjQ29udGV4dEBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlQEBRQUVKUEFVSVNlcnZlclNlY3VyaXR5QEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6Q2xvbmVUaHJlYWRDb250ZXh0KHVuc2lnbmVkIGxvbmcpDQorP0Nsb25lVGhyZWFkQ29udGV4dEBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlQEBRQUVKS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ2xhc3NBbmRNZXRob2RzOjpDb21wYWN0KHZvaWQpDQorP0NvbXBhY3RAQ0NsYXNzQW5kTWV0aG9kc0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpDb21wYWN0KHZvaWQpDQorP0NvbXBhY3RAQ0NsYXNzUGFydEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0OjpDb21wYWN0KGJvb2wpDQorP0NvbXBhY3RAQ0luc3RhbmNlUGFydEBAUUFFWF9OQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENNZXRob2RQYXJ0OjpDb21wYWN0KHZvaWQpDQorP0NvbXBhY3RAQ01ldGhvZFBhcnRAQFFBRVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpDb21wYWN0QWxsKHZvaWQpDQorP0NvbXBhY3RBbGxAQ1diZW1DbGFzc0BAVUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkNvbXBhY3RBbGwodm9pZCkNCis/Q29tcGFjdEFsbEBDV2JlbUluc3RhbmNlQEBVQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkNvbXBhY3RDbGFzcyh2b2lkKQ0KKz9Db21wYWN0Q2xhc3NAQ1diZW1JbnN0YW5jZUBAUUFFWFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENCYXNpY1F1YWxpZmllclNldDo6Q29tcGFyZShjbGFzcyBDQmFzaWNRdWFsaWZpZXJTZXQgJix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogKix1bnNpZ25lZCBsb25nKQ0KKz9Db21wYXJlQENCYXNpY1F1YWxpZmllclNldEBAUUFFSEFBVjFARVBBUEJHS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDb21wcmVzc2VkU3RyaW5nOjpDb21wYXJlKGNsYXNzIENDb21wcmVzc2VkU3RyaW5nIGNvbnN0ICYpY29uc3QgDQorP0NvbXBhcmVAQ0NvbXByZXNzZWRTdHJpbmdAQFFCRUhBQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDb21wcmVzc2VkU3RyaW5nOjpDb21wYXJlKGNoYXIgY29uc3QgKiljb25zdCANCis/Q29tcGFyZUBDQ29tcHJlc3NlZFN0cmluZ0BAUUJFSFBCREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDb21wcmVzc2VkU3RyaW5nOjpDb21wYXJlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP0NvbXBhcmVAQ0NvbXByZXNzZWRTdHJpbmdAQFFCRUhQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSW50ZXJuYWxTdHJpbmc6OkNvbXBhcmUoY2xhc3MgQ0ludGVybmFsU3RyaW5nIGNvbnN0ICYpY29uc3QgDQorP0NvbXBhcmVAQ0ludGVybmFsU3RyaW5nQEBRQkVIQUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSW50ZXJuYWxTdHJpbmc6OkNvbXBhcmUodW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/Q29tcGFyZUBDSW50ZXJuYWxTdHJpbmdAQFFCRUhQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUXVhbGlmaWVyU2V0OjpDb21wYXJlKGNsYXNzIENRdWFsaWZpZXJTZXQgJixjbGFzcyBDRml4ZWRCU1RSQXJyYXkgKixpbnQpDQorP0NvbXBhcmVAQ1F1YWxpZmllclNldEBAUUFFSEFBVjFAUEFWQ0ZpeGVkQlNUUkFycmF5QEBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6Q29tcGFyZUNsYXNzUGFydHMoc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKixsb25nKQ0KKz9Db21wYXJlQ2xhc3NQYXJ0c0BDV2JlbU9iamVjdEBAVUFHSlBBVUlXYmVtQ2xhc3NPYmplY3RAQEpAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpDb21wYXJlRGVmcyhjbGFzcyBDQ2xhc3NQYXJ0ICYpDQorP0NvbXBhcmVEZWZzQENDbGFzc1BhcnRAQFFBRUhBQVYxQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1DbGFzczo6Q29tcGFyZURlcml2ZWRNb3N0Q2xhc3MobG9uZyxzdHJ1Y3QgX0lXbWlPYmplY3QgKikNCis/Q29tcGFyZURlcml2ZWRNb3N0Q2xhc3NAQ1diZW1DbGFzc0BAVUFHSkpQQVVfSVdtaU9iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUluc3RhbmNlOjpDb21wYXJlRGVyaXZlZE1vc3RDbGFzcyhsb25nLHN0cnVjdCBfSVdtaU9iamVjdCAqKQ0KKz9Db21wYXJlRGVyaXZlZE1vc3RDbGFzc0BDV2JlbUluc3RhbmNlQEBVQUdKSlBBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHVibGljOiBlbnVtIEVSZWNvbmNpbGlhdGlvbiAgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpDb21wYXJlRXhhY3RNYXRjaChjbGFzcyBDQ2xhc3NQYXJ0ICYsaW50KQ0KKz9Db21wYXJlRXhhY3RNYXRjaEBDQ2xhc3NQYXJ0QEBRQUU/QVc0RVJlY29uY2lsaWF0aW9uQEBBQVYxQEhAWg0KKzsgcHVibGljOiBlbnVtIEVSZWNvbmNpbGlhdGlvbiAgX190aGlzY2FsbCBDTWV0aG9kUGFydDo6Q29tcGFyZUV4YWN0TWF0Y2goY2xhc3MgQ01ldGhvZFBhcnQgJikNCis/Q29tcGFyZUV4YWN0TWF0Y2hAQ01ldGhvZFBhcnRAQFFBRT9BVzRFUmVjb25jaWxpYXRpb25AQEFBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpDb21wYXJlTG9jYWxpemVkU2V0KGNsYXNzIENCYXNpY1F1YWxpZmllclNldCAmKQ0KKz9Db21wYXJlTG9jYWxpemVkU2V0QENCYXNpY1F1YWxpZmllclNldEBAUUFFSEFBVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OkNvbXBhcmVNb3N0RGVyaXZlZENsYXNzKGNsYXNzIENXYmVtQ2xhc3MgKikNCis/Q29tcGFyZU1vc3REZXJpdmVkQ2xhc3NAQ1diZW1DbGFzc0BAUUFFSlBBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmc6OkNvbXBhcmVOb0Nhc2UoY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgY29uc3QgJiljb25zdCANCis/Q29tcGFyZU5vQ2FzZUBDQ29tcHJlc3NlZFN0cmluZ0BAUUJFSEFCVjFAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmc6OkNvbXBhcmVOb0Nhc2UoY2hhciBjb25zdCAqKWNvbnN0IA0KKz9Db21wYXJlTm9DYXNlQENDb21wcmVzc2VkU3RyaW5nQEBRQkVIUEJEQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmc6OkNvbXBhcmVOb0Nhc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/Q29tcGFyZU5vQ2FzZUBDQ29tcHJlc3NlZFN0cmluZ0BAUUJFSFBCR0BaDQorOyBwdWJsaWM6IGVudW0gRVJlY29uY2lsaWF0aW9uICBfX3RoaXNjYWxsIENDbGFzc0FuZE1ldGhvZHM6OkNvbXBhcmVUbyhjbGFzcyBDQ2xhc3NBbmRNZXRob2RzICYpDQorP0NvbXBhcmVUb0BDQ2xhc3NBbmRNZXRob2RzQEBRQUU/QVc0RVJlY29uY2lsaWF0aW9uQEBBQVYxQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENEZWNvcmF0aW9uUGFydDo6Q29tcGFyZVRvKGNsYXNzIENEZWNvcmF0aW9uUGFydCAmKQ0KKz9Db21wYXJlVG9AQ0RlY29yYXRpb25QYXJ0QEBRQUVIQUFWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGhvZFBhcnQ6OkNvbXBhcmVUbyhsb25nLGNsYXNzIENNZXRob2RQYXJ0ICYpDQorP0NvbXBhcmVUb0BDTWV0aG9kUGFydEBAUUFFSkpBQVYxQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1F1YWxpZmllclNldDo6Q29tcGFyZVRvKGxvbmcsc3RydWN0IElXYmVtUXVhbGlmaWVyU2V0ICopDQorP0NvbXBhcmVUb0BDUXVhbGlmaWVyU2V0QEBVQUdKSlBBVUlXYmVtUXVhbGlmaWVyU2V0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtQ2xhc3M6OkNvbXBhcmVUbyhsb25nLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICopDQorP0NvbXBhcmVUb0BDV2JlbUNsYXNzQEBVQUdKSlBBVUlXYmVtQ2xhc3NPYmplY3RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OkNvbXBhcmVUbyhsb25nLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICopDQorP0NvbXBhcmVUb0BDV2JlbU9iamVjdEBAVUFHSkpQQVVJV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDQ29tcHJlc3NlZFN0cmluZzo6Q29tcGFyZVVuaWNvZGVUb0FzY2lpKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2hhciBjb25zdCAqKQ0KKz9Db21wYXJlVW5pY29kZVRvQXNjaWlAQ0NvbXByZXNzZWRTdHJpbmdAQEtHSFBCR1BCREBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENDb21wcmVzc2VkU3RyaW5nOjpDb21wYXJlVW5pY29kZVRvQXNjaWlOb0Nhc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKixjaGFyIGNvbnN0ICosaW50KQ0KKz9Db21wYXJlVW5pY29kZVRvQXNjaWlOb0Nhc2VAQ0NvbXByZXNzZWRTdHJpbmdAQEtHSFBCR1BCREhAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpDb21wdXRlTWVyZ2VTcGFjZSh1bnNpZ25lZCBjaGFyICosY2xhc3MgQ0Zhc3RIZWFwICosdW5zaWduZWQgY2hhciAqLGNsYXNzIENGYXN0SGVhcCAqLGludCkNCis/Q29tcHV0ZU1lcmdlU3BhY2VAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBTR0tQQUVQQVZDRmFzdEhlYXBAQDAxSEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENDb21wcmVzc2VkU3RyaW5nOjpDb21wdXRlTmVjZXNzYXJ5U3BhY2UoY2hhciBjb25zdCAqKQ0KKz9Db21wdXRlTmVjZXNzYXJ5U3BhY2VAQ0NvbXByZXNzZWRTdHJpbmdAQFNHSFBCREBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENDb21wcmVzc2VkU3RyaW5nOjpDb21wdXRlTmVjZXNzYXJ5U3BhY2UodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/Q29tcHV0ZU5lY2Vzc2FyeVNwYWNlQENDb21wcmVzc2VkU3RyaW5nQEBTR0hQQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDQ29tcHJlc3NlZFN0cmluZzo6Q29tcHV0ZU5lY2Vzc2FyeVNwYWNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50ICYpDQorP0NvbXB1dGVOZWNlc3NhcnlTcGFjZUBDQ29tcHJlc3NlZFN0cmluZ0BAU0dIUEJHQUFIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENDb21wcmVzc2VkU3RyaW5nTGlzdDo6Q29tcHV0ZU5lY2Vzc2FyeVNwYWNlKGNsYXNzIENDb21wcmVzc2VkU3RyaW5nICopDQorP0NvbXB1dGVOZWNlc3NhcnlTcGFjZUBDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQFFBRUtQQVZDQ29tcHJlc3NlZFN0cmluZ0BAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENEYXRhVGFibGU6OkNvbXB1dGVOZWNlc3NhcnlTcGFjZShpbnQsaW50KQ0KKz9Db21wdXRlTmVjZXNzYXJ5U3BhY2VAQ0RhdGFUYWJsZUBAU0dLSEhAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0RlY29yYXRpb25QYXJ0OjpDb21wdXRlTmVjZXNzYXJ5U3BhY2UodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Db21wdXRlTmVjZXNzYXJ5U3BhY2VAQ0RlY29yYXRpb25QYXJ0QEBTR0tQQkcwQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENJbnN0YW5jZVBhcnQ6OkNvbXB1dGVOZWNlc3NhcnlTcGFjZShjbGFzcyBDQ2xhc3NQYXJ0ICopDQorP0NvbXB1dGVOZWNlc3NhcnlTcGFjZUBDSW5zdGFuY2VQYXJ0QEBTR0tQQVZDQ2xhc3NQYXJ0QEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ1F1YWxpZmllclNldExpc3Q6OkNvbXB1dGVOZWNlc3NhcnlTcGFjZShpbnQpDQorP0NvbXB1dGVOZWNlc3NhcnlTcGFjZUBDUXVhbGlmaWVyU2V0TGlzdEBAU0dLSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OkNvbXB1dGVOZWNlc3NhcnlTcGFjZUZvclByb3BhZ2F0aW9uKHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBjaGFyKQ0KKz9Db21wdXRlTmVjZXNzYXJ5U3BhY2VGb3JQcm9wYWdhdGlvbkBDQmFzaWNRdWFsaWZpZXJTZXRAQFNHS1BBRUVAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ1F1YWxpZmllclNldExpc3Q6OkNvbXB1dGVSZWFsU3BhY2UoaW50KQ0KKz9Db21wdXRlUmVhbFNwYWNlQENRdWFsaWZpZXJTZXRMaXN0QEBTR0tIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENCYXNpY1F1YWxpZmllclNldDo6Q29tcHV0ZVVubWVyZ2VkU3BhY2UodW5zaWduZWQgY2hhciAqKQ0KKz9Db21wdXRlVW5tZXJnZWRTcGFjZUBDQmFzaWNRdWFsaWZpZXJTZXRAQFNHS1BBRUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENJbnN0YW5jZVBhcnQ6OkNvbnZlcnRUb0NsYXNzKGNsYXNzIENDbGFzc1BhcnQgJix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgKikNCis/Q29udmVydFRvQ2xhc3NAQ0luc3RhbmNlUGFydEBAUUFFUEFFQUFWQ0NsYXNzUGFydEBAS1BBRUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpDb252ZXJ0VG9DbGFzcyhjbGFzcyBDV2JlbUNsYXNzICosY2xhc3MgQ1diZW1JbnN0YW5jZSAqICopDQorP0NvbnZlcnRUb0NsYXNzQENXYmVtSW5zdGFuY2VAQFFBRUpQQVZDV2JlbUNsYXNzQEBQQVBBVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkNvbnZlcnRUb01lcmdlZEluc3RhbmNlKHZvaWQpDQorP0NvbnZlcnRUb01lcmdlZEluc3RhbmNlQENXYmVtSW5zdGFuY2VAQFFBRUpYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmc6OkNvbnZlcnRUb1VuaWNvZGUodW5zaWduZWQgc2hvcnQgKiljb25zdCANCis/Q29udmVydFRvVW5pY29kZUBDQ29tcHJlc3NlZFN0cmluZ0BAUUJFWFBBR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRmFzdEhlYXA6OkNvcHkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0NvcHlAQ0Zhc3RIZWFwQEBRQUVYS0tLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENGYXN0UHJvcGVydHlCYWc6OkNvcHkoY2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZyBjb25zdCAmKQ0KKz9Db3B5QENGYXN0UHJvcGVydHlCYWdAQFFBRUpBQlYxQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpDb3B5QWN0dWFsVHJhbnNmZXJCbG9iKGxvbmcsdW5zaWduZWQgY2hhciAqKQ0KKz9Db3B5QWN0dWFsVHJhbnNmZXJCbG9iQENXYmVtSW5zdGFuY2VAQFFBRUpKUEFFQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkNvcHlCbG9iKHVuc2lnbmVkIGNoYXIgKixpbnQpDQorP0NvcHlCbG9iQENXYmVtSW5zdGFuY2VAQFFBRUpQQUVIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6Q29weUJsb2JPZihjbGFzcyBDV2JlbU9iamVjdCAqKQ0KKz9Db3B5QmxvYk9mQENXYmVtQ2xhc3NAQFVBRUpQQVZDV2JlbU9iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6Q29weUJsb2JPZihjbGFzcyBDV2JlbU9iamVjdCAqKQ0KKz9Db3B5QmxvYk9mQENXYmVtSW5zdGFuY2VAQFVBRUpQQVZDV2JlbU9iamVjdEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmdMaXN0OjpDb3B5RGF0YSh1bnNpZ25lZCBjaGFyICopDQorP0NvcHlEYXRhQENDb21wcmVzc2VkU3RyaW5nTGlzdEBAUUFFUEFFUEFFQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENMaW1pdGF0aW9uTWFwcGluZzo6Q29weUluZm8oY2xhc3MgQ1Byb3BlcnR5SW5mb3JtYXRpb24gJixjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiBjb25zdCAmKQ0KKz9Db3B5SW5mb0BDTGltaXRhdGlvbk1hcHBpbmdAQElBRVhBQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBAQUJWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtQ2xhc3M6OkNvcHlJbnN0YW5jZURhdGEobG9uZyxzdHJ1Y3QgX0lXbWlPYmplY3QgKikNCis/Q29weUluc3RhbmNlRGF0YUBDV2JlbUNsYXNzQEBVQUdKSlBBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OkNvcHlJbnN0YW5jZURhdGEobG9uZyxzdHJ1Y3QgX0lXbWlPYmplY3QgKikNCis/Q29weUluc3RhbmNlRGF0YUBDV2JlbUluc3RhbmNlQEBVQUdKSlBBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1F1YWxpZmllclNldDo6Q29weUxvY2FsUXVhbGlmaWVycyhjbGFzcyBDUXVhbGlmaWVyU2V0ICYpDQorP0NvcHlMb2NhbFF1YWxpZmllcnNAQ1F1YWxpZmllclNldEBAUUFFSkFBVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENEYXRhVGFibGU6OkNvcHlOdWxsbmVzcyhjbGFzcyBDRGF0YVRhYmxlICopDQorP0NvcHlOdWxsbmVzc0BDRGF0YVRhYmxlQEBRQUVYUEFWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6Q29weVBhcmVudFByb3BlcnR5KGNsYXNzIENDbGFzc1BhcnQgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Db3B5UGFyZW50UHJvcGVydHlAQ0NsYXNzUGFydEBAUUFFSkFBVjFAUEJHQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0NvbXByZXNzZWRTdHJpbmc6OkNvcHlUb05ld0hlYXAodW5zaWduZWQgbG9uZyxjbGFzcyBDRmFzdEhlYXAgKixjbGFzcyBDRmFzdEhlYXAgKix1bnNpZ25lZCBsb25nICYpDQorP0NvcHlUb05ld0hlYXBAQ0NvbXByZXNzZWRTdHJpbmdAQFNHSEtQQVZDRmFzdEhlYXBAQDBBQUtAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDRW1iZWRkZWRPYmplY3Q6OkNvcHlUb05ld0hlYXAodW5zaWduZWQgbG9uZyxjbGFzcyBDRmFzdEhlYXAgKixjbGFzcyBDRmFzdEhlYXAgKix1bnNpZ25lZCBsb25nICYpDQorP0NvcHlUb05ld0hlYXBAQ0VtYmVkZGVkT2JqZWN0QEBTR0hLUEFWQ0Zhc3RIZWFwQEAwQUFLQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ1VudHlwZWRBcnJheTo6Q29weVRvTmV3SGVhcCh1bnNpZ25lZCBsb25nLGNsYXNzIENUeXBlLGNsYXNzIENGYXN0SGVhcCAqLGNsYXNzIENGYXN0SGVhcCAqLHVuc2lnbmVkIGxvbmcgJikNCis/Q29weVRvTmV3SGVhcEBDVW50eXBlZEFycmF5QEBTR0hLVkNUeXBlQEBQQVZDRmFzdEhlYXBAQDFBQUtAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1diZW1JbnN0YW5jZTo6Q29weVRyYW5zZmVyQXJyYXlCbG9iKGNsYXNzIENXYmVtSW5zdGFuY2UgKixsb25nLGxvbmcsdW5zaWduZWQgY2hhciAqLGNsYXNzIENGbGV4QXJyYXkgJixsb25nICopDQorP0NvcHlUcmFuc2ZlckFycmF5QmxvYkBDV2JlbUluc3RhbmNlQEBTR0pQQVYxQEpKUEFFQUFWQ0ZsZXhBcnJheUBAUEFKQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkNvcHlUcmFuc2ZlckJsb2IobG9uZyxsb25nLHVuc2lnbmVkIGNoYXIgKikNCis/Q29weVRyYW5zZmVyQmxvYkBDV2JlbUluc3RhbmNlQEBRQUVKSkpQQUVAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0RlY29yYXRpb25QYXJ0OjpDcmVhdGUodW5zaWduZWQgY2hhcix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgY2hhciAqKQ0KKz9DcmVhdGVAQ0RlY29yYXRpb25QYXJ0QEBRQUVYRVBCRzBQQUVAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0ZpeGVkQlNUUkFycmF5OjpDcmVhdGUoaW50KQ0KKz9DcmVhdGVAQ0ZpeGVkQlNUUkFycmF5QEBRQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5zdGFuY2VQUVNDb250YWluZXI6OkNyZWF0ZShjbGFzcyBDUXVhbGlmaWVyU2V0TGlzdCAqLGludCxjbGFzcyBDQ2xhc3NQYXJ0ICosdW5zaWduZWQgbG9uZykNCis/Q3JlYXRlQENJbnN0YW5jZVBRU0NvbnRhaW5lckBAUUFFWFBBVkNRdWFsaWZpZXJTZXRMaXN0QEBIUEFWQ0NsYXNzUGFydEBAS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENJbnN0YW5jZVBhcnQ6OkNyZWF0ZSh1bnNpZ25lZCBjaGFyICosY2xhc3MgQ0NsYXNzUGFydCAqLGNsYXNzIENJbnN0YW5jZVBhcnRDb250YWluZXIgKikNCis/Q3JlYXRlQENJbnN0YW5jZVBhcnRAQFFBRVBBRVBBRVBBVkNDbGFzc1BhcnRAQFBBVkNJbnN0YW5jZVBhcnRDb250YWluZXJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV21pT2JqZWN0RmFjdG9yeTo6Q3JlYXRlKHN0cnVjdCBJVW5rbm93biAqLHVuc2lnbmVkIGxvbmcsc3RydWN0IF9HVUlEIGNvbnN0ICYsc3RydWN0IF9HVUlEIGNvbnN0ICYsdm9pZCAqICopDQorP0NyZWF0ZUBDV21pT2JqZWN0RmFjdG9yeUBAUUFFSlBBVUlVbmtub3duQEBLQUJVX0dVSURAQDFQQVBBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1dtaU9iamVjdEZhY3Rvcnk6OlhPYmplY3RGYWN0b3J5OjpDcmVhdGUoc3RydWN0IElVbmtub3duICosdW5zaWduZWQgbG9uZyxzdHJ1Y3QgX0dVSUQgY29uc3QgJixzdHJ1Y3QgX0dVSUQgY29uc3QgJix2b2lkICogKikNCis/Q3JlYXRlQFhPYmplY3RGYWN0b3J5QENXbWlPYmplY3RGYWN0b3J5QEBVQUdKUEFVSVVua25vd25AQEtBQlVfR1VJREBAMVBBUEFYQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIENDb21wcmVzc2VkU3RyaW5nOjpDcmVhdGVCU1RSQ29weSh2b2lkKWNvbnN0IA0KKz9DcmVhdGVCU1RSQ29weUBDQ29tcHJlc3NlZFN0cmluZ0BAUUJFUEFHWFoNCis7IHB1YmxpYzogY2xhc3MgQ1ZhclZlY3RvciAqIF9fdGhpc2NhbGwgQ1VudHlwZWRBcnJheTo6Q3JlYXRlQ1ZhclZlY3RvcihjbGFzcyBDVHlwZSxjbGFzcyBDRmFzdEhlYXAgKikNCis/Q3JlYXRlQ1ZhclZlY3RvckBDVW50eXBlZEFycmF5QEBRQUVQQVZDVmFyVmVjdG9yQEBWQ1R5cGVAQFBBVkNGYXN0SGVhcEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OkNyZWF0ZURlcml2ZWRDbGFzcyhjbGFzcyBDV2JlbUNsYXNzICogKikNCis/Q3JlYXRlRGVyaXZlZENsYXNzQENXYmVtQ2xhc3NAQFFBRUpQQVBBVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OkNyZWF0ZURlcml2ZWRDbGFzcyhjbGFzcyBDV2JlbUNsYXNzICosaW50LGNsYXNzIENEZWNvcmF0aW9uUGFydCAqKQ0KKz9DcmVhdGVEZXJpdmVkQ2xhc3NAQ1diZW1DbGFzc0BAUUFFSlBBVjFASFBBVkNEZWNvcmF0aW9uUGFydEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ0NsYXNzQW5kTWV0aG9kczo6Q3JlYXRlRGVyaXZlZFBhcnQodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcpDQorP0NyZWF0ZURlcml2ZWRQYXJ0QENDbGFzc0FuZE1ldGhvZHNAQFFBRVBBRVBBRUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpDcmVhdGVEZXJpdmVkUGFydCh1bnNpZ25lZCBjaGFyICosaW50KQ0KKz9DcmVhdGVEZXJpdmVkUGFydEBDQ2xhc3NQYXJ0QEBRQUVQQUVQQUVIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ01ldGhvZFBhcnQ6OkNyZWF0ZURlcml2ZWRQYXJ0KHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nKQ0KKz9DcmVhdGVEZXJpdmVkUGFydEBDTWV0aG9kUGFydEBAUUFFUEFFUEFFS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENNZXRob2REZXNjcmlwdGlvbjo6Q3JlYXRlRGVyaXZlZFZlcnNpb24oc3RydWN0IENNZXRob2REZXNjcmlwdGlvbiAqLHN0cnVjdCBDTWV0aG9kRGVzY3JpcHRpb24gKixjbGFzcyBDRmFzdEhlYXAgKixjbGFzcyBDRmFzdEhlYXAgKikNCis/Q3JlYXRlRGVyaXZlZFZlcnNpb25AQ01ldGhvZERlc2NyaXB0aW9uQEBTR0hQQVUxQDBQQVZDRmFzdEhlYXBAQDFAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciAqIF9fc3RkY2FsbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OkNyZWF0ZUVtcHR5KHVuc2lnbmVkIGNoYXIgKikNCis/Q3JlYXRlRW1wdHlAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBTR1BBRVBBRUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyICogX19zdGRjYWxsIENDbGFzc0FuZE1ldGhvZHM6OkNyZWF0ZUVtcHR5KHVuc2lnbmVkIGNoYXIgKikNCis/Q3JlYXRlRW1wdHlAQ0NsYXNzQW5kTWV0aG9kc0BAU0dQQUVQQUVAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciAqIF9fc3RkY2FsbCBDQ2xhc3NQYXJ0OjpDcmVhdGVFbXB0eSh1bnNpZ25lZCBjaGFyICopDQorP0NyZWF0ZUVtcHR5QENDbGFzc1BhcnRAQFNHUEFFUEFFQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgKiBfX3N0ZGNhbGwgQ0NvbXByZXNzZWRTdHJpbmc6OkNyZWF0ZUVtcHR5KHVuc2lnbmVkIGNoYXIgKikNCis/Q3JlYXRlRW1wdHlAQ0NvbXByZXNzZWRTdHJpbmdAQFNHUEFFUEFFQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgKiBfX3N0ZGNhbGwgQ0NvbXByZXNzZWRTdHJpbmdMaXN0OjpDcmVhdGVFbXB0eSh1bnNpZ25lZCBjaGFyICopDQorP0NyZWF0ZUVtcHR5QENDb21wcmVzc2VkU3RyaW5nTGlzdEBAU0dQQUVQQUVAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciAqIF9fc3RkY2FsbCBDRGF0YVRhYmxlOjpDcmVhdGVFbXB0eSh1bnNpZ25lZCBjaGFyICopDQorP0NyZWF0ZUVtcHR5QENEYXRhVGFibGVAQFNHUEFFUEFFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ0RlY29yYXRpb25QYXJ0OjpDcmVhdGVFbXB0eSh1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIgKikNCis/Q3JlYXRlRW1wdHlAQ0RlY29yYXRpb25QYXJ0QEBRQUVQQUVFUEFFQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgKiBfX3N0ZGNhbGwgQ0Zhc3RIZWFwOjpDcmVhdGVFbXB0eSh1bnNpZ25lZCBjaGFyICopDQorP0NyZWF0ZUVtcHR5QENGYXN0SGVhcEBAU0dQQUVQQUVAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciAqIF9fc3RkY2FsbCBDTWV0aG9kUGFydDo6Q3JlYXRlRW1wdHkodW5zaWduZWQgY2hhciAqKQ0KKz9DcmVhdGVFbXB0eUBDTWV0aG9kUGFydEBAU0dQQUVQQUVAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciAqIF9fc3RkY2FsbCBDUHJvcGVydHlMb29rdXBUYWJsZTo6Q3JlYXRlRW1wdHkodW5zaWduZWQgY2hhciAqKQ0KKz9DcmVhdGVFbXB0eUBDUHJvcGVydHlMb29rdXBUYWJsZUBAU0dQQUVQQUVAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciAqIF9fc3RkY2FsbCBDV2JlbUNsYXNzOjpDcmVhdGVFbXB0eSh1bnNpZ25lZCBjaGFyICopDQorP0NyZWF0ZUVtcHR5QENXYmVtQ2xhc3NAQFNHUEFFUEFFQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIENXYmVtQ2xhc3MgKiBfX3N0ZGNhbGwgQ1diZW1DbGFzczo6Q3JlYXRlRnJvbUJsb2IyKGNsYXNzIENXYmVtQ2xhc3MgKix1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqKQ0KKz9DcmVhdGVGcm9tQmxvYjJAQ1diZW1DbGFzc0BAU0dQQVYxQFBBVjFAUEFFUEFHMkBaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBDV2JlbUluc3RhbmNlICogX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OkNyZWF0ZUZyb21CbG9iMihjbGFzcyBDV2JlbUNsYXNzICosdW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKikNCis/Q3JlYXRlRnJvbUJsb2IyQENXYmVtSW5zdGFuY2VAQFNHUEFWMUBQQVZDV2JlbUNsYXNzQEBQQUVQQUcyQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIENXYmVtQ2xhc3MgKiBfX3N0ZGNhbGwgQ1diZW1DbGFzczo6Q3JlYXRlRnJvbUJsb2IoY2xhc3MgQ1diZW1DbGFzcyAqLHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBpbnQpDQorP0NyZWF0ZUZyb21CbG9iQENXYmVtQ2xhc3NAQFNHUEFWMUBQQVYxQFBBRUlAWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ1diZW1JbnN0YW5jZSAqIF9fc3RkY2FsbCBDV2JlbUluc3RhbmNlOjpDcmVhdGVGcm9tQmxvYihjbGFzcyBDV2JlbUNsYXNzICosdW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGludCkNCis/Q3JlYXRlRnJvbUJsb2JAQ1diZW1JbnN0YW5jZUBAU0dQQVYxQFBBVkNXYmVtQ2xhc3NAQFBBRUlAWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ1diZW1PYmplY3QgKiBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OkNyZWF0ZUZyb21NZW1vcnkodW5zaWduZWQgY2hhciAqLGludCxpbnQsY2xhc3MgQ0Jsb2JDb250cm9sICYpDQorP0NyZWF0ZUZyb21NZW1vcnlAQ1diZW1PYmplY3RAQFNHUEFWMUBQQUVISEFBVkNCbG9iQ29udHJvbEBAQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIENXYmVtT2JqZWN0ICogX19zdGRjYWxsIENXYmVtT2JqZWN0OjpDcmVhdGVGcm9tU3RyZWFtKHN0cnVjdCBJU3RyZWFtICopDQorP0NyZWF0ZUZyb21TdHJlYW1AQ1diZW1PYmplY3RAQFNHUEFWMUBQQVVJU3RyZWFtQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXbWlPYmplY3RUZXh0U3JjOjpYT2JqZWN0VGV4dFNyYzo6Q3JlYXRlRnJvbVRleHQobG9uZyx1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogKikNCis/Q3JlYXRlRnJvbVRleHRAWE9iamVjdFRleHRTcmNAQ1dtaU9iamVjdFRleHRTcmNAQFVBR0pKUEFHS1BBVUlXYmVtQ29udGV4dEBAUEFQQVVJV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ0ludGVybmFsU3RyaW5nOjpDcmVhdGVMUFdTVFJDb3B5KHZvaWQpY29uc3QgDQorP0NyZWF0ZUxQV1NUUkNvcHlAQ0ludGVybmFsU3RyaW5nQEBRQkVQQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDQ2xhc3NBbmRNZXRob2RzOjpDcmVhdGVMaW1pdGVkUmVwcmVzZW50YXRpb24oY2xhc3MgQ0xpbWl0YXRpb25NYXBwaW5nICosaW50LHVuc2lnbmVkIGNoYXIgKixpbnQgJikNCis/Q3JlYXRlTGltaXRlZFJlcHJlc2VudGF0aW9uQENDbGFzc0FuZE1ldGhvZHNAQFFBRVBBRVBBVkNMaW1pdGF0aW9uTWFwcGluZ0BASFBBRUFBSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkNyZWF0ZUxpbWl0ZWRSZXByZXNlbnRhdGlvbihjbGFzcyBDTGltaXRhdGlvbk1hcHBpbmcgKixpbnQsdW5zaWduZWQgY2hhciAqLGludCAmKQ0KKz9DcmVhdGVMaW1pdGVkUmVwcmVzZW50YXRpb25AQ0NsYXNzUGFydEBAUUFFUEFFUEFWQ0xpbWl0YXRpb25NYXBwaW5nQEBIUEFFQUFIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ0RhdGFUYWJsZTo6Q3JlYXRlTGltaXRlZFJlcHJlc2VudGF0aW9uKGNsYXNzIENMaW1pdGF0aW9uTWFwcGluZyAqLGludCxjbGFzcyBDRmFzdEhlYXAgKixjbGFzcyBDRmFzdEhlYXAgKix1bnNpZ25lZCBjaGFyICopDQorP0NyZWF0ZUxpbWl0ZWRSZXByZXNlbnRhdGlvbkBDRGF0YVRhYmxlQEBRQUVQQUVQQVZDTGltaXRhdGlvbk1hcHBpbmdAQEhQQVZDRmFzdEhlYXBAQDFQQUVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDRGVjb3JhdGlvblBhcnQ6OkNyZWF0ZUxpbWl0ZWRSZXByZXNlbnRhdGlvbihjbGFzcyBDTGltaXRhdGlvbk1hcHBpbmcgKix1bnNpZ25lZCBjaGFyICopDQorP0NyZWF0ZUxpbWl0ZWRSZXByZXNlbnRhdGlvbkBDRGVjb3JhdGlvblBhcnRAQFFBRVBBRVBBVkNMaW1pdGF0aW9uTWFwcGluZ0BAUEFFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ0Rlcml2YXRpb25MaXN0OjpDcmVhdGVMaW1pdGVkUmVwcmVzZW50YXRpb24oY2xhc3MgQ0xpbWl0YXRpb25NYXBwaW5nICosdW5zaWduZWQgY2hhciAqKQ0KKz9DcmVhdGVMaW1pdGVkUmVwcmVzZW50YXRpb25AQ0Rlcml2YXRpb25MaXN0QEBRQUVQQUVQQVZDTGltaXRhdGlvbk1hcHBpbmdAQFBBRUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENJbnN0YW5jZVBhcnQ6OkNyZWF0ZUxpbWl0ZWRSZXByZXNlbnRhdGlvbihjbGFzcyBDTGltaXRhdGlvbk1hcHBpbmcgKixpbnQsdW5zaWduZWQgY2hhciAqKQ0KKz9DcmVhdGVMaW1pdGVkUmVwcmVzZW50YXRpb25AQ0luc3RhbmNlUGFydEBAUUFFUEFFUEFWQ0xpbWl0YXRpb25NYXBwaW5nQEBIUEFFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ1Byb3BlcnR5TG9va3VwVGFibGU6OkNyZWF0ZUxpbWl0ZWRSZXByZXNlbnRhdGlvbihjbGFzcyBDTGltaXRhdGlvbk1hcHBpbmcgKixjbGFzcyBDRmFzdEhlYXAgKix1bnNpZ25lZCBjaGFyICosaW50ICYpDQorP0NyZWF0ZUxpbWl0ZWRSZXByZXNlbnRhdGlvbkBDUHJvcGVydHlMb29rdXBUYWJsZUBAUUFFUEFFUEFWQ0xpbWl0YXRpb25NYXBwaW5nQEBQQVZDRmFzdEhlYXBAQFBBRUFBSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXRMaXN0OjpDcmVhdGVMaW1pdGVkUmVwcmVzZW50YXRpb24oY2xhc3MgQ0xpbWl0YXRpb25NYXBwaW5nICosY2xhc3MgQ0Zhc3RIZWFwICosY2xhc3MgQ0Zhc3RIZWFwICosdW5zaWduZWQgY2hhciAqKQ0KKz9DcmVhdGVMaW1pdGVkUmVwcmVzZW50YXRpb25AQ1F1YWxpZmllclNldExpc3RAQFFBRVBBRVBBVkNMaW1pdGF0aW9uTWFwcGluZ0BAUEFWQ0Zhc3RIZWFwQEAxUEFFQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgKiBfX3N0ZGNhbGwgQ1F1YWxpZmllclNldExpc3Q6OkNyZWF0ZUxpc3RPZkVtcHRpZXModW5zaWduZWQgY2hhciAqLGludCkNCis/Q3JlYXRlTGlzdE9mRW1wdGllc0BDUXVhbGlmaWVyU2V0TGlzdEBAU0dQQUVQQUVIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRob2RQYXJ0OjpDcmVhdGVNZXRob2QodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDV2JlbU9iamVjdCAqLGNsYXNzIENXYmVtT2JqZWN0ICopDQorP0NyZWF0ZU1ldGhvZEBDTWV0aG9kUGFydEBASUFFSlBCR1BBVkNXYmVtT2JqZWN0QEAxQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0Zhc3RIZWFwOjpDcmVhdGVOb0Nhc2VTdHJpbmdIZWFwUHRyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyAmKQ0KKz9DcmVhdGVOb0Nhc2VTdHJpbmdIZWFwUHRyQENGYXN0SGVhcEBAUUFFSFBCR0FBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENGYXN0SGVhcDo6Q3JlYXRlT3V0T2ZMaW5lKHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nKQ0KKz9DcmVhdGVPdXRPZkxpbmVAQ0Zhc3RIZWFwQEBRQUVQQUVQQUVLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENXYmVtUmVmcmVzaGluZ1N2Yzo6Q3JlYXRlUmVmcmVzaGFibGVPYmplY3RUZW1wbGF0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiAqKQ0KKz9DcmVhdGVSZWZyZXNoYWJsZU9iamVjdFRlbXBsYXRlQENXYmVtUmVmcmVzaGluZ1N2Y0BASUFFSlBCR0pQQVBBVUlXYmVtQ2xhc3NPYmplY3RAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENNZXRob2REZXNjcmlwdGlvbjo6Q3JlYXRlVW5tZXJnZWRWZXJzaW9uKHN0cnVjdCBDTWV0aG9kRGVzY3JpcHRpb24gKixzdHJ1Y3QgQ01ldGhvZERlc2NyaXB0aW9uICosY2xhc3MgQ0Zhc3RIZWFwICosY2xhc3MgQ0Zhc3RIZWFwICopDQorP0NyZWF0ZVVubWVyZ2VkVmVyc2lvbkBDTWV0aG9kRGVzY3JpcHRpb25AQFNHSFBBVTFAMFBBVkNGYXN0SGVhcEBAMUBaDQorOyBwdWJsaWM6IGNsYXNzIFdTdHJpbmcgIF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmc6OkNyZWF0ZVdTdHJpbmdDb3B5KHZvaWQpY29uc3QgDQorP0NyZWF0ZVdTdHJpbmdDb3B5QENDb21wcmVzc2VkU3RyaW5nQEBRQkU/QVZXU3RyaW5nQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6OkNyZWF0ZVdpdGhFeHRyYSh1bnNpZ25lZCBjaGFyICosY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgKikNCis/Q3JlYXRlV2l0aEV4dHJhQENDb21wcmVzc2VkU3RyaW5nTGlzdEBAUUFFUEFFUEFFUEFWQ0NvbXByZXNzZWRTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OkRlY29yYXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/RGVjb3JhdGVAQ1diZW1DbGFzc0BAVUFFSlBCRzBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpEZWNvcmF0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0RlY29yYXRlQENXYmVtSW5zdGFuY2VAQFVBRUpQQkcwQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENCYXNpY1F1YWxpZmllclNldDo6RGVsZXRlKHVuc2lnbmVkIGNoYXIgKixjbGFzcyBDRmFzdEhlYXAgKikNCis/RGVsZXRlQENCYXNpY1F1YWxpZmllclNldEBAU0dYUEFFUEFWQ0Zhc3RIZWFwQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENRdWFsaWZpZXJTZXQ6OkRlbGV0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9EZWxldGVAQ1F1YWxpZmllclNldEBAVUFHSlBCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDVW50eXBlZEFycmF5OjpEZWxldGUoY2xhc3MgQ1R5cGUsY2xhc3MgQ0Zhc3RIZWFwICopDQorP0RlbGV0ZUBDVW50eXBlZEFycmF5QEBRQUVYVkNUeXBlQEBQQVZDRmFzdEhlYXBAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1DbGFzczo6RGVsZXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0RlbGV0ZUBDV2JlbUNsYXNzQEBVQUdKUEJHQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUluc3RhbmNlOjpEZWxldGUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/RGVsZXRlQENXYmVtSW5zdGFuY2VAQFVBR0pQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGhvZFBhcnQ6OkRlbGV0ZU1ldGhvZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9EZWxldGVNZXRob2RAQ01ldGhvZFBhcnRAQFFBRUpQQkdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtQ2xhc3M6OkRlbGV0ZU1ldGhvZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9EZWxldGVNZXRob2RAQ1diZW1DbGFzc0BAVUFHSlBCR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1JbnN0YW5jZTo6RGVsZXRlTWV0aG9kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0RlbGV0ZU1ldGhvZEBDV2JlbUluc3RhbmNlQEBVQUdKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkRlbGV0ZVByb3BlcnR5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0RlbGV0ZVByb3BlcnR5QENDbGFzc1BhcnRAQFFBRUpQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6RGVsZXRlUHJvcGVydHkoaW50KQ0KKz9EZWxldGVQcm9wZXJ0eUBDQ2xhc3NQYXJ0QEBRQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0OjpEZWxldGVQcm9wZXJ0eShjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqKQ0KKz9EZWxldGVQcm9wZXJ0eUBDSW5zdGFuY2VQYXJ0QEBRQUVYUEFWQ1Byb3BlcnR5SW5mb3JtYXRpb25AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUHJvcGVydHlMb29rdXBUYWJsZTo6RGVsZXRlUHJvcGVydHkoc3RydWN0IENQcm9wZXJ0eUxvb2t1cCAqLGludCkNCis/RGVsZXRlUHJvcGVydHlAQ1Byb3BlcnR5TG9va3VwVGFibGVAQFFBRVhQQVVDUHJvcGVydHlMb29rdXBAQEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6RGVsZXRlUHJvcGVydHkoaW50KQ0KKz9EZWxldGVQcm9wZXJ0eUBDV2JlbUluc3RhbmNlQEBRQUVKSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDUXVhbGlmaWVyU2V0OjpEZWxldGVRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpDQorP0RlbGV0ZVF1YWxpZmllckBDUXVhbGlmaWVyU2V0QEBRQUVKUEJHSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUXVhbGlmaWVyU2V0TGlzdDo6RGVsZXRlUXVhbGlmaWVyU2V0KGludCkNCis/RGVsZXRlUXVhbGlmaWVyU2V0QENRdWFsaWZpZXJTZXRMaXN0QEBRQUVYSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDTWV0aG9kUGFydDo6RGVsZXRlU2lnbmF0dXJlKGludCxpbnQpDQorP0RlbGV0ZVNpZ25hdHVyZUBDTWV0aG9kUGFydEBASUFFWEhIQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpEaXNhYmxlZFZhbGlkYXRlT2JqZWN0KGNsYXNzIENXYmVtT2JqZWN0ICopDQorP0Rpc2FibGVkVmFsaWRhdGVPYmplY3RAQ1diZW1PYmplY3RAQEtHSlBBVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0sY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+LGNsYXNzIENGbGV4QXJyYXk+OjpEaXNjYXJkKGludCkNCis/RGlzY2FyZEA/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBAUUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT46OkRpc2NhcmQoaW50KQ0KKz9EaXNjYXJkQD8kQ1BvaW50ZXJBcnJheUBWQ1dtaVRleHRTb3VyY2VAQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDV21pVGV4dFNvdXJjZUBAQEBWQ0ZsZXhBcnJheUBAQEBRQUVYSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OkRpc2Nvbm5lY3RPYmplY3QodW5zaWduZWQgbG9uZykNCis/RGlzY29ubmVjdE9iamVjdEBDV2JlbU9iamVjdEBAVUFHSktAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDTWV0aG9kUGFydDo6RG9TaWduYXR1cmVzTWF0Y2goaW50LGVudW0gTUVUSE9EX1NJR05BVFVSRV9UWVBFLGNsYXNzIENXYmVtT2JqZWN0ICopDQorP0RvU2lnbmF0dXJlc01hdGNoQENNZXRob2RQYXJ0QEBJQUVISFc0TUVUSE9EX1NJR05BVFVSRV9UWVBFQEBQQVZDV2JlbU9iamVjdEBAQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ1R5cGU6OkRvZXNDSU1UWVBFTWF0Y2hWQVJUWVBFKGxvbmcsdW5zaWduZWQgc2hvcnQpDQorP0RvZXNDSU1UWVBFTWF0Y2hWQVJUWVBFQENUeXBlQEBTR0hKR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIENNZXRob2RQYXJ0OjpEb2VzU2lnbmF0dXJlTWF0Y2hPdGhlcihjbGFzcyBDTWV0aG9kUGFydCAmLGludCxlbnVtIE1FVEhPRF9TSUdOQVRVUkVfVFlQRSkNCis/RG9lc1NpZ25hdHVyZU1hdGNoT3RoZXJAQ01ldGhvZFBhcnRAQElBRUhBQVYxQEhXNE1FVEhPRF9TSUdOQVRVUkVfVFlQRUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0Zhc3RIZWFwOjpFbGVtZW50TWF4U2l6ZSh1bnNpZ25lZCBsb25nKQ0KKz9FbGVtZW50TWF4U2l6ZUBDRmFzdEhlYXBAQFFBRUhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGYXN0SGVhcDo6RW1wdHkodm9pZCkNCis/RW1wdHlAQ0Zhc3RIZWFwQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENJbnRlcm5hbFN0cmluZzo6RW1wdHkodm9pZCkNCis/RW1wdHlAQ0ludGVybmFsU3RyaW5nQEBRQUVYWFoNCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpFbmFibGVkVmFsaWRhdGVPYmplY3QoY2xhc3MgQ1diZW1PYmplY3QgKikNCis/RW5hYmxlZFZhbGlkYXRlT2JqZWN0QENXYmVtT2JqZWN0QEBLR0pQQVYxQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1F1YWxpZmllclNldDo6RW5kRW51bWVyYXRpb24odm9pZCkNCis/RW5kRW51bWVyYXRpb25AQ1F1YWxpZmllclNldEBAVUFHSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OkVuZEVudW1lcmF0aW9uKHZvaWQpDQorP0VuZEVudW1lcmF0aW9uQENXYmVtT2JqZWN0QEBVQUdKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUNsYXNzOjpFbmRNZXRob2RFbnVtZXJhdGlvbih2b2lkKQ0KKz9FbmRNZXRob2RFbnVtZXJhdGlvbkBDV2JlbUNsYXNzQEBVQUdKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUluc3RhbmNlOjpFbmRNZXRob2RFbnVtZXJhdGlvbih2b2lkKQ0KKz9FbmRNZXRob2RFbnVtZXJhdGlvbkBDV2JlbUluc3RhbmNlQEBVQUdKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkVuc3VyZVByb3BlcnR5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQsbG9uZyxpbnQpDQorP0Vuc3VyZVByb3BlcnR5QENDbGFzc1BhcnRAQFFBRUpQQkdHSkhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGhvZFBhcnQ6OkVuc3VyZVF1YWxpZmllcihjbGFzcyBDV2JlbU9iamVjdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1diZW1PYmplY3QgKiAqKQ0KKz9FbnN1cmVRdWFsaWZpZXJAQ01ldGhvZFBhcnRAQFFBRUpQQVZDV2JlbU9iamVjdEBAUEJHUEFQQVYyQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpFbnN1cmVRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/RW5zdXJlUXVhbGlmaWVyQENXYmVtQ2xhc3NAQFFBRUpQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUXVhbGlmaWVyU2V0TGlzdDo6RW5zdXJlUmVhbCh2b2lkKQ0KKz9FbnN1cmVSZWFsQENRdWFsaWZpZXJTZXRMaXN0QEBRQUVIWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENCYXNpY1F1YWxpZmllclNldDo6RW51bVByaW1hcnlRdWFsaWZpZXJzKHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhcixjbGFzcyBDRml4ZWRCU1RSQXJyYXkgJixjbGFzcyBDRml4ZWRCU1RSQXJyYXkgJikNCis/RW51bVByaW1hcnlRdWFsaWZpZXJzQENCYXNpY1F1YWxpZmllclNldEBAUUFFSkVFQUFWQ0ZpeGVkQlNUUkFycmF5QEAwQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXQ6OkVudW1RdWFsaWZpZXJzKHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhcixjbGFzcyBDRml4ZWRCU1RSQXJyYXkgJikNCis/RW51bVF1YWxpZmllcnNAQ1F1YWxpZmllclNldEBAUUFFSkVFQUFWQ0ZpeGVkQlNUUkFycmF5QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6RXN0aW1hdGVEZXJpdmVkQ2xhc3NTcGFjZShjbGFzcyBDRGVjb3JhdGlvblBhcnQgKikNCis/RXN0aW1hdGVEZXJpdmVkQ2xhc3NTcGFjZUBDV2JlbUNsYXNzQEBRQUVLUEFWQ0RlY29yYXRpb25QYXJ0QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzQW5kTWV0aG9kczo6RXN0aW1hdGVEZXJpdmVkUGFydFNwYWNlKHZvaWQpDQorP0VzdGltYXRlRGVyaXZlZFBhcnRTcGFjZUBDQ2xhc3NBbmRNZXRob2RzQEBRQUVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkVzdGltYXRlRGVyaXZlZFBhcnRTcGFjZSh2b2lkKQ0KKz9Fc3RpbWF0ZURlcml2ZWRQYXJ0U3BhY2VAQ0NsYXNzUGFydEBAUUFFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTWV0aG9kUGFydDo6RXN0aW1hdGVEZXJpdmVkUGFydFNwYWNlKHZvaWQpDQorP0VzdGltYXRlRGVyaXZlZFBhcnRTcGFjZUBDTWV0aG9kUGFydEBAUUFFS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6OkVzdGltYXRlRXh0cmFTcGFjZShjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqKQ0KKz9Fc3RpbWF0ZUV4dHJhU3BhY2VAQ0NvbXByZXNzZWRTdHJpbmdMaXN0QEBTR0tQQVZDQ29tcHJlc3NlZFN0cmluZ0BAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENDb21wcmVzc2VkU3RyaW5nTGlzdDo6RXN0aW1hdGVFeHRyYVNwYWNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0VzdGltYXRlRXh0cmFTcGFjZUBDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQFNHS1BCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDV2JlbUluc3RhbmNlOjpFc3RpbWF0ZUluc3RhbmNlU3BhY2UoY2xhc3MgQ0NsYXNzUGFydCAmLGNsYXNzIENEZWNvcmF0aW9uUGFydCAqKQ0KKz9Fc3RpbWF0ZUluc3RhbmNlU3BhY2VAQ1diZW1JbnN0YW5jZUBAU0dLQUFWQ0NsYXNzUGFydEBAUEFWQ0RlY29yYXRpb25QYXJ0QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OkVzdGltYXRlTGltaXRlZFJlcHJlc2VudGF0aW9uU3BhY2UobG9uZyxjbGFzcyBDV1N0cmluZ0FycmF5ICopDQorP0VzdGltYXRlTGltaXRlZFJlcHJlc2VudGF0aW9uU3BhY2VAQ1diZW1PYmplY3RAQFFBRUtKUEFWQ1dTdHJpbmdBcnJheUBAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENDbGFzc0FuZE1ldGhvZHM6OkVzdGltYXRlTWVyZ2VTcGFjZShjbGFzcyBDQ2xhc3NBbmRNZXRob2RzICYsY2xhc3MgQ0NsYXNzQW5kTWV0aG9kcyAmKQ0KKz9Fc3RpbWF0ZU1lcmdlU3BhY2VAQ0NsYXNzQW5kTWV0aG9kc0BAU0dLQUFWMUAwQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENDbGFzc1BhcnQ6OkVzdGltYXRlTWVyZ2VTcGFjZShjbGFzcyBDQ2xhc3NQYXJ0ICYsY2xhc3MgQ0NsYXNzUGFydCAmKQ0KKz9Fc3RpbWF0ZU1lcmdlU3BhY2VAQ0NsYXNzUGFydEBAU0dLQUFWMUAwQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENNZXRob2RQYXJ0OjpFc3RpbWF0ZU1lcmdlU3BhY2UoY2xhc3MgQ01ldGhvZFBhcnQgJixjbGFzcyBDTWV0aG9kUGFydCAmKQ0KKz9Fc3RpbWF0ZU1lcmdlU3BhY2VAQ01ldGhvZFBhcnRAQFNHS0FBVjFAMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpFc3RpbWF0ZU1lcmdlU3BhY2UodW5zaWduZWQgY2hhciAqLGxvbmcpDQorP0VzdGltYXRlTWVyZ2VTcGFjZUBDV2JlbUNsYXNzQEBRQUVLUEFFSkBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDRW1iZWRkZWRPYmplY3Q6OkVzdGltYXRlTmVjZXNzYXJ5U3BhY2UoY2xhc3MgQ1ZhciAmKQ0KKz9Fc3RpbWF0ZU5lY2Vzc2FyeVNwYWNlQENFbWJlZGRlZE9iamVjdEBAU0dLQUFWQ1ZhckBAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENFbWJlZGRlZE9iamVjdDo6RXN0aW1hdGVOZWNlc3NhcnlTcGFjZShjbGFzcyBDV2JlbU9iamVjdCAqKQ0KKz9Fc3RpbWF0ZU5lY2Vzc2FyeVNwYWNlQENFbWJlZGRlZE9iamVjdEBAU0dLUEFWQ1diZW1PYmplY3RAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDQ2xhc3NBbmRNZXRob2RzOjpFc3RpbWF0ZVVubWVyZ2VTcGFjZSh2b2lkKQ0KKz9Fc3RpbWF0ZVVubWVyZ2VTcGFjZUBDQ2xhc3NBbmRNZXRob2RzQEBRQUVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkVzdGltYXRlVW5tZXJnZVNwYWNlKHZvaWQpDQorP0VzdGltYXRlVW5tZXJnZVNwYWNlQENDbGFzc1BhcnRAQFFBRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ01ldGhvZFBhcnQ6OkVzdGltYXRlVW5tZXJnZVNwYWNlKHZvaWQpDQorP0VzdGltYXRlVW5tZXJnZVNwYWNlQENNZXRob2RQYXJ0QEBRQUVLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6RXN0aW1hdGVVbm1lcmdlU3BhY2Uodm9pZCkNCis/RXN0aW1hdGVVbm1lcmdlU3BhY2VAQ1diZW1DbGFzc0BAVUFFS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkVzdGltYXRlVW5tZXJnZVNwYWNlKHZvaWQpDQorP0VzdGltYXRlVW5tZXJnZVNwYWNlQENXYmVtSW5zdGFuY2VAQFVBRUtYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRmFzdEhlYXA6OkV4dGVuZCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/RXh0ZW5kQENGYXN0SGVhcEBAUUFFSEtLS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OkV4dGVuZENsYXNzQW5kTWV0aG9kc1NwYWNlKHVuc2lnbmVkIGxvbmcpDQorP0V4dGVuZENsYXNzQW5kTWV0aG9kc1NwYWNlQENXYmVtQ2xhc3NAQFFBRUhLQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDQ2xhc3NBbmRNZXRob2RzOjpFeHRlbmRDbGFzc1BhcnRTcGFjZShjbGFzcyBDQ2xhc3NQYXJ0ICosdW5zaWduZWQgbG9uZykNCis/RXh0ZW5kQ2xhc3NQYXJ0U3BhY2VAQ0NsYXNzQW5kTWV0aG9kc0BAVUFFSFBBVkNDbGFzc1BhcnRAQEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkV4dGVuZENsYXNzUGFydFNwYWNlKGNsYXNzIENDbGFzc1BhcnQgKix1bnNpZ25lZCBsb25nKQ0KKz9FeHRlbmRDbGFzc1BhcnRTcGFjZUBDV2JlbUluc3RhbmNlQEBVQUVIUEFWQ0NsYXNzUGFydEBAS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6RXh0ZW5kRGF0YVRhYmxlU3BhY2UodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/RXh0ZW5kRGF0YVRhYmxlU3BhY2VAQ0NsYXNzUGFydEBAVUFFSFBBRUtLQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0OjpFeHRlbmREYXRhVGFibGVTcGFjZSh1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9FeHRlbmREYXRhVGFibGVTcGFjZUBDSW5zdGFuY2VQYXJ0QEBVQUVIUEFFS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkV4dGVuZEhlYXBTaXplKHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0V4dGVuZEhlYXBTaXplQENDbGFzc1BhcnRAQFVBRUhQQUVLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0luc3RhbmNlUGFydDo6RXh0ZW5kSGVhcFNpemUodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/RXh0ZW5kSGVhcFNpemVAQ0luc3RhbmNlUGFydEBAVUFFSFBBRUtLQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDTWV0aG9kUGFydDo6RXh0ZW5kSGVhcFNpemUodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/RXh0ZW5kSGVhcFNpemVAQ01ldGhvZFBhcnRAQFVBRUhQQUVLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6RXh0ZW5kSW5zdGFuY2VQYXJ0U3BhY2UoY2xhc3MgQ0luc3RhbmNlUGFydCAqLHVuc2lnbmVkIGxvbmcpDQorP0V4dGVuZEluc3RhbmNlUGFydFNwYWNlQENXYmVtSW5zdGFuY2VAQFVBRUhQQVZDSW5zdGFuY2VQYXJ0QEBLQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDQ2xhc3NBbmRNZXRob2RzOjpFeHRlbmRNZXRob2RQYXJ0U3BhY2UoY2xhc3MgQ01ldGhvZFBhcnQgKix1bnNpZ25lZCBsb25nKQ0KKz9FeHRlbmRNZXRob2RQYXJ0U3BhY2VAQ0NsYXNzQW5kTWV0aG9kc0BAVUFFSFBBVkNNZXRob2RQYXJ0QEBLQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpFeHRlbmRQcm9wZXJ0eVRhYmxlU3BhY2UodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/RXh0ZW5kUHJvcGVydHlUYWJsZVNwYWNlQENDbGFzc1BhcnRAQFVBRUhQQUVLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0luc3RhbmNlUGFydDo6RXh0ZW5kUXVhbGlmaWVyU2V0TGlzdFNwYWNlKHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0V4dGVuZFF1YWxpZmllclNldExpc3RTcGFjZUBDSW5zdGFuY2VQYXJ0QEBVQUVIUEFFS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkV4dGVuZFF1YWxpZmllclNldFNwYWNlKGNsYXNzIENCYXNpY1F1YWxpZmllclNldCAqLHVuc2lnbmVkIGxvbmcpDQorP0V4dGVuZFF1YWxpZmllclNldFNwYWNlQENDbGFzc1BhcnRAQFVBRUhQQVZDQmFzaWNRdWFsaWZpZXJTZXRAQEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENJbnN0YW5jZVBRU0NvbnRhaW5lcjo6RXh0ZW5kUXVhbGlmaWVyU2V0U3BhY2UoY2xhc3MgQ0Jhc2ljUXVhbGlmaWVyU2V0ICosdW5zaWduZWQgbG9uZykNCis/RXh0ZW5kUXVhbGlmaWVyU2V0U3BhY2VAQ0luc3RhbmNlUFFTQ29udGFpbmVyQEBVQUVIUEFWQ0Jhc2ljUXVhbGlmaWVyU2V0QEBLQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0OjpFeHRlbmRRdWFsaWZpZXJTZXRTcGFjZShjbGFzcyBDQmFzaWNRdWFsaWZpZXJTZXQgKix1bnNpZ25lZCBsb25nKQ0KKz9FeHRlbmRRdWFsaWZpZXJTZXRTcGFjZUBDSW5zdGFuY2VQYXJ0QEBVQUVIUEFWQ0Jhc2ljUXVhbGlmaWVyU2V0QEBLQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyOjpFeHRlbmRRdWFsaWZpZXJTZXRTcGFjZShjbGFzcyBDQmFzaWNRdWFsaWZpZXJTZXQgKix1bnNpZ25lZCBsb25nKQ0KKz9FeHRlbmRRdWFsaWZpZXJTZXRTcGFjZUBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyQEBVQUVIUEFWQ0Jhc2ljUXVhbGlmaWVyU2V0QEBLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1F1YWxpZmllclNldExpc3Q6OkV4dGVuZFF1YWxpZmllclNldFNwYWNlKGNsYXNzIENCYXNpY1F1YWxpZmllclNldCAqLHVuc2lnbmVkIGxvbmcpDQorP0V4dGVuZFF1YWxpZmllclNldFNwYWNlQENRdWFsaWZpZXJTZXRMaXN0QEBRQUVIUEFWQ0Jhc2ljUXVhbGlmaWVyU2V0QEBLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RhdGFUYWJsZTo6RXh0ZW5kVG8odW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZykNCis/RXh0ZW5kVG9AQ0RhdGFUYWJsZUBAUUFFSEdLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkZhc3RDbG9uZShjbGFzcyBDV2JlbUluc3RhbmNlICopDQorP0Zhc3RDbG9uZUBDV2JlbUluc3RhbmNlQEBRQUVKUEFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0ZpeGVkQlNUUkFycmF5OjpGaWx0ZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpDQorP0ZpbHRlckBDRml4ZWRCU1RSQXJyYXlAQFFBRVhQQkdIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmdMaXN0OjpGaW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0ZpbmRAQ0NvbXByZXNzZWRTdHJpbmdMaXN0QEBRQUVIUEJHQFoNCis7IHB1YmxpYzogY2xhc3MgV1N0cmluZyAgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpGaW5kTGltaXRhdGlvbkVycm9yKGxvbmcsY2xhc3MgQ1dTdHJpbmdBcnJheSAqKQ0KKz9GaW5kTGltaXRhdGlvbkVycm9yQENXYmVtQ2xhc3NAQFFBRT9BVldTdHJpbmdAQEpQQVZDV1N0cmluZ0FycmF5QEBAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDTWV0aG9kUGFydDo6RmluZE1ldGhvZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9GaW5kTWV0aG9kQENNZXRob2RQYXJ0QEBJQUVIUEJHQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6RmluZE1ldGhvZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9GaW5kTWV0aG9kQENXYmVtQ2xhc3NAQFVBRUpQQkdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbU9iamVjdDo6RmluZE1ldGhvZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9GaW5kTWV0aG9kQENXYmVtT2JqZWN0QEBVQUVKUEJHQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ1N5c3RlbVByb3BlcnRpZXM6OkZpbmROYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0ZpbmROYW1lQENTeXN0ZW1Qcm9wZXJ0aWVzQEBTR0hQQkdAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSAqIF9fdGhpc2NhbGwgQ0Zhc3RQcm9wZXJ0eUJhZzo6RmluZFByb3BlcnR5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0ZpbmRQcm9wZXJ0eUBDRmFzdFByb3BlcnR5QmFnQEBJQUVQQVZDRmFzdFByb3BlcnR5QmFnSXRlbUBAUEJHQFoNCis7IHB1YmxpYzogc3RydWN0IENQcm9wZXJ0eUxvb2t1cCAqIF9fdGhpc2NhbGwgQ1Byb3BlcnR5TG9va3VwVGFibGU6OkZpbmRQcm9wZXJ0eSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9GaW5kUHJvcGVydHlAQ1Byb3BlcnR5TG9va3VwVGFibGVAQFFBRVBBVUNQcm9wZXJ0eUxvb2t1cEBAUEJHQFoNCis7IHB1YmxpYzogc3RydWN0IENQcm9wZXJ0eUxvb2t1cCAqIF9fdGhpc2NhbGwgQ1Byb3BlcnR5TG9va3VwVGFibGU6OkZpbmRQcm9wZXJ0eUJ5TmFtZShjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqKQ0KKz9GaW5kUHJvcGVydHlCeU5hbWVAQ1Byb3BlcnR5TG9va3VwVGFibGVAQFFBRVBBVUNQcm9wZXJ0eUxvb2t1cEBAUEFWQ0NvbXByZXNzZWRTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBDUHJvcGVydHlMb29rdXAgKiBfX3RoaXNjYWxsIENQcm9wZXJ0eUxvb2t1cFRhYmxlOjpGaW5kUHJvcGVydHlCeU9mZnNldCh1bnNpZ25lZCBsb25nKQ0KKz9GaW5kUHJvcGVydHlCeU9mZnNldEBDUHJvcGVydHlMb29rdXBUYWJsZUBAUUFFUEFVQ1Byb3BlcnR5TG9va3VwQEBLQFoNCis7IHB1YmxpYzogc3RydWN0IENQcm9wZXJ0eUxvb2t1cCAqIF9fdGhpc2NhbGwgQ1Byb3BlcnR5TG9va3VwVGFibGU6OkZpbmRQcm9wZXJ0eUJ5UHRyKHVuc2lnbmVkIGxvbmcpDQorP0ZpbmRQcm9wZXJ0eUJ5UHRyQENQcm9wZXJ0eUxvb2t1cFRhYmxlQEBRQUVQQVVDUHJvcGVydHlMb29rdXBAQEtAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDRmFzdFByb3BlcnR5QmFnOjpGaW5kUHJvcGVydHlJbmRleCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9GaW5kUHJvcGVydHlJbmRleEBDRmFzdFByb3BlcnR5QmFnQEBJQUVIUEJHQFoNCis7IHB1YmxpYzogY2xhc3MgQ1Byb3BlcnR5SW5mb3JtYXRpb24gKiBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkZpbmRQcm9wZXJ0eUluZm8odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/RmluZFByb3BlcnR5SW5mb0BDQ2xhc3NQYXJ0QEBRQUVQQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBAUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OkZvcmNlUHJvcFZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1ZhciAqLGxvbmcpDQorP0ZvcmNlUHJvcFZhbHVlQENXYmVtQ2xhc3NAQFFBRUpQQkdQQVZDVmFyQEBKQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OkZvcmNlUHV0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyxzdHJ1Y3QgdGFnVkFSSUFOVCAqLGxvbmcpDQorP0ZvcmNlUHV0QENXYmVtQ2xhc3NAQFFBRUpQQkdKUEFVdGFnVkFSSUFOVEBASkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRmFzdEhlYXA6OkZyZWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9GcmVlQENGYXN0SGVhcEBAUUFFWEtLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGaXhlZEJTVFJBcnJheTo6RnJlZSh2b2lkKQ0KKz9GcmVlQENGaXhlZEJTVFJBcnJheUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRmFzdEhlYXA6OkZyZWVTdHJpbmcodW5zaWduZWQgbG9uZykNCis/RnJlZVN0cmluZ0BDRmFzdEhlYXBAQFFBRVhLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENGYXN0UHJvcGVydHlCYWc6OkdldChpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiAqLGxvbmcgKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyAqLHZvaWQgKiAqKQ0KKz9HZXRAQ0Zhc3RQcm9wZXJ0eUJhZ0BAUUFFSkhQQVBCR1BBSlBBSzJQQVBBWEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRmFzdFByb3BlcnR5QmFnOjpHZXQodW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcgKix2b2lkICogKikNCis/R2V0QENGYXN0UHJvcGVydHlCYWdAQFFBRUpQQkdQQUpQQUsyUEFQQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENRdWFsaWZpZXJTZXQ6OkdldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcsc3RydWN0IHRhZ1ZBUklBTlQgKixsb25nICopDQorP0dldEBDUXVhbGlmaWVyU2V0QEBVQUdKUEJHSlBBVXRhZ1ZBUklBTlRAQFBBSkBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbUZldGNoUmVmck1ncjo6R2V0KHN0cnVjdCBfSVdiZW1SZWZyZXNoZXJNZ3IgKiAqKQ0KKz9HZXRAQ1diZW1GZXRjaFJlZnJNZ3JAQFFBRUpQQVBBVV9JV2JlbVJlZnJlc2hlck1nckBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6R2V0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyxzdHJ1Y3QgdGFnVkFSSUFOVCAqLGxvbmcgKixsb25nICopDQorP0dldEBDV2JlbU9iamVjdEBAVUFHSlBCR0pQQVV0YWdWQVJJQU5UQEBQQUoyQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUZldGNoUmVmck1ncjo6WEZldGNoUmVmck1ncjo6R2V0KHN0cnVjdCBfSVdiZW1SZWZyZXNoZXJNZ3IgKiAqKQ0KKz9HZXRAWEZldGNoUmVmck1nckBDV2JlbUZldGNoUmVmck1nckBAVUFHSlBBUEFVX0lXYmVtUmVmcmVzaGVyTWdyQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6R2V0QWJzdHJhY3RGbGF2b3Iodm9pZCkNCis/R2V0QWJzdHJhY3RGbGF2b3JAQ0NsYXNzUGFydEBAUUFFRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpHZXRBYnN0cmFjdEZsYXZvcih2b2lkKQ0KKz9HZXRBYnN0cmFjdEZsYXZvckBDV2JlbUNsYXNzQEBRQUVFWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkdldEFjdHVhbFRyYW5zZmVyQmxvYih1bnNpZ25lZCBjaGFyICopDQorP0dldEFjdHVhbFRyYW5zZmVyQmxvYkBDV2JlbUluc3RhbmNlQEBRQUVYUEFFQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkdldEFjdHVhbFRyYW5zZmVyQmxvYlNpemUodm9pZCkNCis/R2V0QWN0dWFsVHJhbnNmZXJCbG9iU2l6ZUBDV2JlbUluc3RhbmNlQEBRQUVKWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENUeXBlOjpHZXRBY3R1YWxUeXBlKHZvaWQpDQorP0dldEFjdHVhbFR5cGVAQ1R5cGVAQFFBRUtYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ1R5cGU6OkdldEFjdHVhbFR5cGUodW5zaWduZWQgbG9uZykNCis/R2V0QWN0dWFsVHlwZUBDVHlwZUBAU0dLS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0OjpHZXRBY3R1YWxWYWx1ZShjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqLGNsYXNzIENWYXIgKikNCis/R2V0QWN0dWFsVmFsdWVAQ0luc3RhbmNlUGFydEBAUUFFSlBBVkNQcm9wZXJ0eUluZm9ybWF0aW9uQEBQQVZDVmFyQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0Zhc3RIZWFwOjpHZXRBbGxvY2F0ZWREYXRhTGVuZ3RoKHZvaWQpDQorP0dldEFsbG9jYXRlZERhdGFMZW5ndGhAQ0Zhc3RIZWFwQEBRQUVLWFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZsZXhBcnJheSAmIF9fdGhpc2NhbGwgQ1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT46OkdldEFycmF5KHZvaWQpDQorP0dldEFycmF5QD8kQ1BvaW50ZXJBcnJheUBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQEBWQ0ZsZXhBcnJheUBAQEBRQUVBQVZDRmxleEFycmF5QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDRmxleEFycmF5ICYgX190aGlzY2FsbCBDUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENXbWlUZXh0U291cmNlPixjbGFzcyBDRmxleEFycmF5Pjo6R2V0QXJyYXkodm9pZCkNCis/R2V0QXJyYXlAPyRDUG9pbnRlckFycmF5QFZDV21pVGV4dFNvdXJjZUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNXbWlUZXh0U291cmNlQEBAQFZDRmxleEFycmF5QEBAQFFBRUFBVkNGbGV4QXJyYXlAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENVbnR5cGVkQXJyYXkgKiBfX3RoaXNjYWxsIENXYmVtT2JqZWN0OjpHZXRBcnJheUJ5SGFuZGxlKGxvbmcpDQorP0dldEFycmF5QnlIYW5kbGVAQ1diZW1PYmplY3RAQFFBRVBBVkNVbnR5cGVkQXJyYXlAQEpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpHZXRBcnJheVByb3BBZGRyQnlIYW5kbGUobG9uZyxsb25nLHVuc2lnbmVkIGxvbmcgKix2b2lkICogKikNCis/R2V0QXJyYXlQcm9wQWRkckJ5SGFuZGxlQENXYmVtT2JqZWN0QEBVQUdKSkpQQUtQQVBBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OkdldEFycmF5UHJvcEVsZW1lbnRCeUhhbmRsZShsb25nLGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyAqLHZvaWQgKiAqKQ0KKz9HZXRBcnJheVByb3BFbGVtZW50QnlIYW5kbGVAQ1diZW1PYmplY3RAQFVBR0pKSktQQUswUEFQQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpHZXRBcnJheVByb3BJbmZvQnlIYW5kbGUobG9uZyxsb25nLHVuc2lnbmVkIHNob3J0ICogKixsb25nICosdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRBcnJheVByb3BJbmZvQnlIYW5kbGVAQ1diZW1PYmplY3RAQFVBR0pKSlBBUEFHUEFKUEFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6R2V0QXJyYXlQcm9wUmFuZ2VCeUhhbmRsZShsb25nLGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcgKix2b2lkICopDQorP0dldEFycmF5UHJvcFJhbmdlQnlIYW5kbGVAQ1diZW1PYmplY3RAQFVBR0pKSktLS1BBSzBQQVhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OkdldEFycmF5UHJvcGVydHlIYW5kbGUodW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nICosbG9uZyAqKQ0KKz9HZXRBcnJheVByb3BlcnR5SGFuZGxlQENXYmVtT2JqZWN0QEBRQUVKUEJHUEFKMUBaDQorOyBwdWJsaWM6IGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtICogKiBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0sY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+LGNsYXNzIENGbGV4QXJyYXk+OjpHZXRBcnJheVB0cih2b2lkKQ0KKz9HZXRBcnJheVB0ckA/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBAUUFFUEFQQVZDRmFzdFByb3BlcnR5QmFnSXRlbUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ1dtaVRleHRTb3VyY2UgKiAqIF9fdGhpc2NhbGwgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT46OkdldEFycmF5UHRyKHZvaWQpDQorP0dldEFycmF5UHRyQD8kQ1BvaW50ZXJBcnJheUBWQ1dtaVRleHRTb3VyY2VAQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDV21pVGV4dFNvdXJjZUBAQEBWQ0ZsZXhBcnJheUBAQEBRQUVQQVBBVkNXbWlUZXh0U291cmNlQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSAqIF9fdGhpc2NhbGwgQ1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT46OkdldEF0KGludCkNCis/R2V0QXRAPyRDUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFZDRmxleEFycmF5QEBAQFFBRVBBVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBIQFoNCis7IHB1YmxpYzogY2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0gY29uc3QgKiBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0sY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+LGNsYXNzIENGbGV4QXJyYXk+OjpHZXRBdChpbnQpY29uc3QgDQorP0dldEF0QD8kQ1BvaW50ZXJBcnJheUBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQEBWQ0ZsZXhBcnJheUBAQEBRQkVQQlZDRmFzdFByb3BlcnR5QmFnSXRlbUBASEBaDQorOyBwdWJsaWM6IGNsYXNzIENXbWlUZXh0U291cmNlICogX190aGlzY2FsbCBDUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENXbWlUZXh0U291cmNlPixjbGFzcyBDRmxleEFycmF5Pjo6R2V0QXQoaW50KQ0KKz9HZXRBdEA/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBAUUFFUEFWQ1dtaVRleHRTb3VyY2VAQEhAWg0KKzsgcHVibGljOiBjbGFzcyBDV21pVGV4dFNvdXJjZSBjb25zdCAqIF9fdGhpc2NhbGwgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT46OkdldEF0KGludCljb25zdCANCis/R2V0QXRAPyRDUG9pbnRlckFycmF5QFZDV21pVGV4dFNvdXJjZUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNXbWlUZXh0U291cmNlQEBAQFZDRmxleEFycmF5QEBAQFFCRVBCVkNXbWlUZXh0U291cmNlQEBIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiAmIF9fdGhpc2NhbGwgQ0ZpeGVkQlNUUkFycmF5OjpHZXRBdChpbnQpDQorP0dldEF0QENGaXhlZEJTVFJBcnJheUBAUUFFQUFQQUdIQFoNCis7IHB1YmxpYzogc3RydWN0IENQcm9wZXJ0eUxvb2t1cCAqIF9fdGhpc2NhbGwgQ1Byb3BlcnR5TG9va3VwVGFibGU6OkdldEF0KGludCkNCis/R2V0QXRAQ1Byb3BlcnR5TG9va3VwVGFibGVAQFFBRVBBVUNQcm9wZXJ0eUxvb2t1cEBASEBaDQorOyBwdWJsaWM6IGNsYXNzIENDb21wcmVzc2VkU3RyaW5nICogX190aGlzY2FsbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6OkdldEF0RnJvbUxhc3QoaW50KQ0KKz9HZXRBdEZyb21MYXN0QENDb21wcmVzc2VkU3RyaW5nTGlzdEBAUUFFUEFWQ0NvbXByZXNzZWRTdHJpbmdAQEhAWg0KKzsgcHVibGljOiBsb25nIF9fc3RkY2FsbCBDV2JlbUNhbGxTZWN1cml0eTo6R2V0QXV0aGVudGljYXRpb24odW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRBdXRoZW50aWNhdGlvbkBDV2JlbUNhbGxTZWN1cml0eUBAUUFHSlBBS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6R2V0QXV0aGVudGljYXRpb24odW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRBdXRoZW50aWNhdGlvbkBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlQEBVQUdKUEFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGU6OkdldEF1dGhlbnRpY2F0aW9uTGV2ZWwodm9pZCkNCis/R2V0QXV0aGVudGljYXRpb25MZXZlbEBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlQEBRQUVLWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUNhbGxTZWN1cml0eTo6R2V0QXV0aGVudGljYXRpb25MdWlkKHZvaWQgKikNCis/R2V0QXV0aGVudGljYXRpb25MdWlkQENXYmVtQ2FsbFNlY3VyaXR5QEBVQUdKUEFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjpHZXRBdXRoZW50aWNhdGlvbkx1aWQodm9pZCAqKQ0KKz9HZXRBdXRoZW50aWNhdGlvbkx1aWRAQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZUBAVUFHSlBBWEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjpHZXRBdXRoZW50aWNhdGlvblNlcnZpY2Uodm9pZCkNCis/R2V0QXV0aGVudGljYXRpb25TZXJ2aWNlQENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFFBRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6R2V0QXV0aG9yaXphdGlvblNlcnZpY2Uodm9pZCkNCis/R2V0QXV0aG9yaXphdGlvblNlcnZpY2VAQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZUBAUUFFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDVHlwZTo6R2V0QmFzaWModm9pZCkNCis/R2V0QmFzaWNAQ1R5cGVAQFFBRUtYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ1R5cGU6OkdldEJhc2ljKHVuc2lnbmVkIGxvbmcpDQorP0dldEJhc2ljQENUeXBlQEBTR0tLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6R2V0QmxvY2tMZW5ndGgodm9pZCkNCis/R2V0QmxvY2tMZW5ndGhAQ1diZW1DbGFzc0BATUFFS1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkdldEJsb2NrTGVuZ3RoKHZvaWQpDQorP0dldEJsb2NrTGVuZ3RoQENXYmVtSW5zdGFuY2VAQE1BRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6R2V0Q2xhc3NJbmRleCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9HZXRDbGFzc0luZGV4QENDbGFzc1BhcnRAQFFBRUtQQkdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OkdldENsYXNzSW5kZXgodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/R2V0Q2xhc3NJbmRleEBDV2JlbU9iamVjdEBAUUFFS1BCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENDb21wcmVzc2VkU3RyaW5nICogX190aGlzY2FsbCBDV2JlbU9iamVjdDo6R2V0Q2xhc3NJbnRlcm5hbCh2b2lkKQ0KKz9HZXRDbGFzc0ludGVybmFsQENXYmVtT2JqZWN0QEBRQUVQQVZDQ29tcHJlc3NlZFN0cmluZ0BAWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENDbGFzc0FuZE1ldGhvZHM6OkdldENsYXNzTmFtZVcoY2xhc3MgV1N0cmluZyAmLHVuc2lnbmVkIGNoYXIgKikNCis/R2V0Q2xhc3NOYW1lV0BDQ2xhc3NBbmRNZXRob2RzQEBTR0pBQVZXU3RyaW5nQEBQQUVAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6R2V0Q2xhc3NOYW1lVyhjbGFzcyBDVmFyICopDQorP0dldENsYXNzTmFtZVdAQ0NsYXNzUGFydEBAUUFFSlBBVkNWYXJAQEBaDQorOyBwdWJsaWM6IGNsYXNzIENDb21wcmVzc2VkU3RyaW5nICogX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpHZXRDbGFzc05hbWVXKHZvaWQpDQorP0dldENsYXNzTmFtZVdAQ0NsYXNzUGFydEBAUUFFUEFWQ0NvbXByZXNzZWRTdHJpbmdAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OkdldENsYXNzTmFtZVcoY2xhc3MgQ1ZhciAqKQ0KKz9HZXRDbGFzc05hbWVXQENXYmVtQ2xhc3NAQFVBRUpQQVZDVmFyQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpHZXRDbGFzc05hbWVXKGNsYXNzIENWYXIgKikNCis/R2V0Q2xhc3NOYW1lV0BDV2JlbUluc3RhbmNlQEBVQUVKUEFWQ1ZhckBAQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBDV2JlbU9iamVjdEFycmF5UGFja2V0OjpHZXRDbGFzc09iamVjdChjbGFzcyBDV2JlbU9iamVjdFBhY2tldCAmLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogKikNCis/R2V0Q2xhc3NPYmplY3RAQ1diZW1PYmplY3RBcnJheVBhY2tldEBAQUFFSkFBVkNXYmVtT2JqZWN0UGFja2V0QEBQQVBBVUlXYmVtQ2xhc3NPYmplY3RAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3MgQ0NsYXNzUGFydCAqIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6R2V0Q2xhc3NQYXJ0KHZvaWQpDQorP0dldENsYXNzUGFydEBDV2JlbUNsYXNzQEBNQUVQQVZDQ2xhc3NQYXJ0QEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtQ2xhc3M6OkdldENsYXNzUGFydCh2b2lkICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICopDQorP0dldENsYXNzUGFydEBDV2JlbUNsYXNzQEBVQUdKUEFYS1BBS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3MgQ0NsYXNzUGFydCAqIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6R2V0Q2xhc3NQYXJ0KHZvaWQpDQorP0dldENsYXNzUGFydEBDV2JlbUluc3RhbmNlQEBNQUVQQVZDQ2xhc3NQYXJ0QEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OkdldENsYXNzUGFydCh2b2lkICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICopDQorP0dldENsYXNzUGFydEBDV2JlbUluc3RhbmNlQEBVQUdKUEFYS1BBS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpHZXRDbGFzc1F1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcgKixjbGFzcyBDVHlwZWRWYWx1ZSAqLGNsYXNzIENGYXN0SGVhcCAqICosaW50KQ0KKz9HZXRDbGFzc1F1YWxpZmllckBDQ2xhc3NQYXJ0QEBRQUVKUEJHUEFKUEFWQ1R5cGVkVmFsdWVAQFBBUEFWQ0Zhc3RIZWFwQEBIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkdldENsYXNzUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1ZhciAqLGxvbmcgKixsb25nICopDQorP0dldENsYXNzUXVhbGlmaWVyQENDbGFzc1BhcnRAQFFBRUpQQkdQQVZDVmFyQEBQQUoyQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUNsYXNzOjpHZXRDbGFzc1N1YnNldCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogKixzdHJ1Y3QgX0lXbWlPYmplY3QgKiAqKQ0KKz9HZXRDbGFzc1N1YnNldEBDV2JlbUNsYXNzQEBVQUdKS1BBUEJHUEFQQVVfSVdtaU9iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUluc3RhbmNlOjpHZXRDbGFzc1N1YnNldCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogKixzdHJ1Y3QgX0lXbWlPYmplY3QgKiAqKQ0KKz9HZXRDbGFzc1N1YnNldEBDV2JlbUluc3RhbmNlQEBVQUdKS1BBUEJHUEFQQVVfSVdtaU9iamVjdEBAQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBDV2JlbU9iamVjdEFycmF5UGFja2V0OjpHZXRDbGFzc2xlc3NJbnN0YW5jZU9iamVjdChjbGFzcyBDV2JlbU9iamVjdFBhY2tldCAmLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogKixjbGFzcyBDV2JlbUNsYXNzQ2FjaGUgJikNCis/R2V0Q2xhc3NsZXNzSW5zdGFuY2VPYmplY3RAQ1diZW1PYmplY3RBcnJheVBhY2tldEBAQUFFSkFBVkNXYmVtT2JqZWN0UGFja2V0QEBQQVBBVUlXYmVtQ2xhc3NPYmplY3RAQEFBVkNXYmVtQ2xhc3NDYWNoZUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzQW5kTWV0aG9kczo6R2V0Q3VycmVudE9yaWdpbih2b2lkKQ0KKz9HZXRDdXJyZW50T3JpZ2luQENDbGFzc0FuZE1ldGhvZHNAQFVBRUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpHZXRDdXJyZW50T3JpZ2luKHZvaWQpDQorP0dldEN1cnJlbnRPcmlnaW5AQ0NsYXNzUGFydEBAVUFFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpHZXRDdXJyZW50T3JpZ2luKHZvaWQpDQorP0dldEN1cnJlbnRPcmlnaW5AQ1diZW1DbGFzc0BAUUFFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDRGF0YVRhYmxlOjpHZXREYXRhTGVuZ3RoKHZvaWQpDQorP0dldERhdGFMZW5ndGhAQ0RhdGFUYWJsZUBAUUFFS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgQ0RhdGFUYWJsZSAqIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6R2V0RGF0YVRhYmxlKHZvaWQpDQorP0dldERhdGFUYWJsZUBDQ2xhc3NQYXJ0QEBVQUVQQVZDRGF0YVRhYmxlQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDRGF0YVRhYmxlICogX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0OjpHZXREYXRhVGFibGUodm9pZCkNCis/R2V0RGF0YVRhYmxlQENJbnN0YW5jZVBhcnRAQFFBRVBBVkNEYXRhVGFibGVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyICogX19zdGRjYWxsIENJbnN0YW5jZVBhcnQ6OkdldERhdGFUYWJsZURhdGEodW5zaWduZWQgY2hhciAqKQ0KKz9HZXREYXRhVGFibGVEYXRhQENJbnN0YW5jZVBhcnRAQFNHUEFFUEFFQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkdldERlZmF1bHRCeUhhbmRsZShsb25nLGxvbmcsbG9uZyAqLHVuc2lnbmVkIGNoYXIgKikNCis/R2V0RGVmYXVsdEJ5SGFuZGxlQENDbGFzc1BhcnRAQFFBRUpKSlBBSlBBRUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpHZXREZWZhdWx0UHRyQnlIYW5kbGUobG9uZyx2b2lkICogKikNCis/R2V0RGVmYXVsdFB0ckJ5SGFuZGxlQENDbGFzc1BhcnRAQFFBRUpKUEFQQVhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6R2V0RGVmYXVsdFZhbHVlKGNsYXNzIENQcm9wZXJ0eUluZm9ybWF0aW9uICosY2xhc3MgQ1ZhciAqKQ0KKz9HZXREZWZhdWx0VmFsdWVAQ0NsYXNzUGFydEBAUUFFSlBBVkNQcm9wZXJ0eUluZm9ybWF0aW9uQEBQQVZDVmFyQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6R2V0RGVmYXVsdFZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1ZhciAqKQ0KKz9HZXREZWZhdWx0VmFsdWVAQ0NsYXNzUGFydEBAUUFFSlBCR1BBVkNWYXJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpHZXREZXJpdmF0aW9uKGNsYXNzIENWYXIgKikNCis/R2V0RGVyaXZhdGlvbkBDQ2xhc3NQYXJ0QEBRQUVKUEFWQ1ZhckBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtT2JqZWN0OjpHZXREZXJpdmF0aW9uKGNsYXNzIENWYXIgKikNCis/R2V0RGVyaXZhdGlvbkBDV2JlbU9iamVjdEBAUUFFSlBBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OkdldERlcml2YXRpb24obG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgc2hvcnQgKikNCis/R2V0RGVyaXZhdGlvbkBDV2JlbU9iamVjdEBAVUFHSkpLUEFLMFBBR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OkdldERlc2NyaXB0aW9uKHVuc2lnbmVkIHNob3J0ICogKikNCis/R2V0RGVzY3JpcHRpb25AQ1diZW1PYmplY3RAQFVBR0pQQVBBR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpHZXREeW5hc3R5KGNsYXNzIENWYXIgKikNCis/R2V0RHluYXN0eUBDQ2xhc3NQYXJ0QEBRQUVKUEFWQ1ZhckBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgKiBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkdldER5bmFzdHkodm9pZCkNCis/R2V0RHluYXN0eUBDQ2xhc3NQYXJ0QEBRQUVQQVZDQ29tcHJlc3NlZFN0cmluZ0BAWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6R2V0RHluYXN0eShjbGFzcyBDVmFyICopDQorP0dldER5bmFzdHlAQ1diZW1DbGFzc0BAVUFFSlBBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkdldER5bmFzdHkoY2xhc3MgQ1ZhciAqKQ0KKz9HZXREeW5hc3R5QENXYmVtSW5zdGFuY2VAQFVBRUpQQVZDVmFyQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDVW50eXBlZEFycmF5OjpHZXRFbGVtZW50KGludCxpbnQpDQorP0dldEVsZW1lbnRAQ1VudHlwZWRBcnJheUBAUUFFUEFFSEhAWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbU9iamVjdCAqIF9fdGhpc2NhbGwgQ0VtYmVkZGVkT2JqZWN0OjpHZXRFbWJlZGRlZCh2b2lkKQ0KKz9HZXRFbWJlZGRlZEBDRW1iZWRkZWRPYmplY3RAQFFBRVBBVkNXYmVtT2JqZWN0QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbU9iamVjdCAqIF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OkdldEVtYmVkZGVkT2JqKGxvbmcpDQorP0dldEVtYmVkZGVkT2JqQENXYmVtT2JqZWN0QEBRQUVQQVYxQEpAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqIF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmdMaXN0OjpHZXRGaXJzdCh2b2lkKQ0KKz9HZXRGaXJzdEBDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQFFBRVBBVkNDb21wcmVzc2VkU3RyaW5nQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgQ1F1YWxpZmllciAqIF9fdGhpc2NhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpHZXRGaXJzdFF1YWxpZmllcih2b2lkKQ0KKz9HZXRGaXJzdFF1YWxpZmllckBDQmFzaWNRdWFsaWZpZXJTZXRAQFFBRVBBVUNRdWFsaWZpZXJAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgQ1F1YWxpZmllciAqIF9fc3RkY2FsbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OkdldEZpcnN0UXVhbGlmaWVyRnJvbURhdGEodW5zaWduZWQgY2hhciAqKQ0KKz9HZXRGaXJzdFF1YWxpZmllckZyb21EYXRhQENCYXNpY1F1YWxpZmllclNldEBAU0dQQVVDUXVhbGlmaWVyQEBQQUVAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0xpbWl0YXRpb25NYXBwaW5nOjpHZXRGbGFncyh2b2lkKQ0KKz9HZXRGbGFnc0BDTGltaXRhdGlvbk1hcHBpbmdAQFFBRUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OkdldEZ1bGxQYXRoKHZvaWQpDQorP0dldEZ1bGxQYXRoQENXYmVtT2JqZWN0QEBRQUVQQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpHZXRHVUlEKHN0cnVjdCBfR1VJRCAqKQ0KKz9HZXRHVUlEQENXYmVtT2JqZWN0QEBVQUdKUEFVX0dVSURAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OkdldEdlbnVzKGNsYXNzIENWYXIgKikNCis/R2V0R2VudXNAQ1diZW1DbGFzc0BAVUFFSlBBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkdldEdlbnVzKGNsYXNzIENWYXIgKikNCis/R2V0R2VudXNAQ1diZW1JbnN0YW5jZUBAVUFFSlBBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1SZW1vdGVSZWZyZXNoZXI6OlhXYmVtUmVtb3RlUmVmcjo6R2V0R3VpZChsb25nLHN0cnVjdCBfR1VJRCAqKQ0KKz9HZXRHdWlkQFhXYmVtUmVtb3RlUmVmckBDV2JlbVJlbW90ZVJlZnJlc2hlckBAVUFHSkpQQVVfR1VJREBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjpHZXRIYW5kbGVUeXBlKHVuc2lnbmVkIGxvbmcgKikNCis/R2V0SGFuZGxlVHlwZUBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlQEBVQUdKUEFLQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENDb21wcmVzc2VkU3RyaW5nTGlzdDo6R2V0SGVhZGVyTGVuZ3RoKHZvaWQpDQorP0dldEhlYWRlckxlbmd0aEBDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQFNHS1haDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDRmFzdEhlYXA6OkdldEhlYWRlckxlbmd0aCh2b2lkKQ0KKz9HZXRIZWFkZXJMZW5ndGhAQ0Zhc3RIZWFwQEBJQUVLWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ1F1YWxpZmllclNldExpc3Q6OkdldEhlYWRlckxlbmd0aCh2b2lkKQ0KKz9HZXRIZWFkZXJMZW5ndGhAQ1F1YWxpZmllclNldExpc3RAQFNHSFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDVW50eXBlZEFycmF5OjpHZXRIZWFkZXJMZW5ndGgodm9pZCkNCis/R2V0SGVhZGVyTGVuZ3RoQENVbnR5cGVkQXJyYXlAQFNHS1haDQorOyBwdWJsaWM6IGNsYXNzIENGYXN0SGVhcCAqIF9fdGhpc2NhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpHZXRIZWFwKHZvaWQpDQorP0dldEhlYXBAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBRQUVQQVZDRmFzdEhlYXBAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgQ0Zhc3RIZWFwICogX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpHZXRIZWFwKHZvaWQpDQorP0dldEhlYXBAQ0NsYXNzUGFydEBAVUFFUEFWQ0Zhc3RIZWFwQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIENGYXN0SGVhcCAqIF9fdGhpc2NhbGwgQ0luc3RhbmNlUFFTQ29udGFpbmVyOjpHZXRIZWFwKHZvaWQpDQorP0dldEhlYXBAQ0luc3RhbmNlUFFTQ29udGFpbmVyQEBVQUVQQVZDRmFzdEhlYXBAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgQ0Zhc3RIZWFwICogX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0OjpHZXRIZWFwKHZvaWQpDQorP0dldEhlYXBAQ0luc3RhbmNlUGFydEBAVUFFUEFWQ0Zhc3RIZWFwQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDRmFzdEhlYXAgKiBfX3RoaXNjYWxsIENNZXRob2RQYXJ0OjpHZXRIZWFwKHZvaWQpDQorP0dldEhlYXBAQ01ldGhvZFBhcnRAQFFBRVBBVkNGYXN0SGVhcEBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBDRmFzdEhlYXAgKiBfX3RoaXNjYWxsIENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXI6OkdldEhlYXAodm9pZCkNCis/R2V0SGVhcEBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyQEBVQUVQQVZDRmFzdEhlYXBAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENGYXN0SGVhcCAqIF9fdGhpc2NhbGwgQ1Byb3BlcnR5TG9va3VwVGFibGU6OkdldEhlYXAodm9pZCkNCis/R2V0SGVhcEBDUHJvcGVydHlMb29rdXBUYWJsZUBAUUFFUEFWQ0Zhc3RIZWFwQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDRmFzdEhlYXAgKiBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXRMaXN0OjpHZXRIZWFwKHZvaWQpDQorP0dldEhlYXBAQ1F1YWxpZmllclNldExpc3RAQFFBRVBBVkNGYXN0SGVhcEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ0Zhc3RIZWFwOjpHZXRIZWFwRGF0YSh2b2lkKQ0KKz9HZXRIZWFwRGF0YUBDRmFzdEhlYXBAQFFBRVBBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpHZXRIZWFwUHRyQnlIYW5kbGUobG9uZykNCis/R2V0SGVhcFB0ckJ5SGFuZGxlQENDbGFzc1BhcnRAQFFBRUtKQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENXYmVtT2JqZWN0OjpHZXRIZWFwUHRyQnlIYW5kbGUobG9uZykNCis/R2V0SGVhcFB0ckJ5SGFuZGxlQENXYmVtT2JqZWN0QEBRQUVLSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OkdldEhlbHBDb250ZXh0KHVuc2lnbmVkIGxvbmcgKikNCis/R2V0SGVscENvbnRleHRAQ1diZW1PYmplY3RAQFVBR0pQQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpHZXRIZWxwRmlsZSh1bnNpZ25lZCBzaG9ydCAqICopDQorP0dldEhlbHBGaWxlQENXYmVtT2JqZWN0QEBVQUdKUEFQQUdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6R2V0SWRlbnRpdHkodm9pZCkNCis/R2V0SWRlbnRpdHlAQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZUBAUUFFUEFHWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OkdldElkcyhjbGFzcyBDRmxleEFycmF5ICYsY2xhc3MgQ1diZW1DbGFzcyAqKQ0KKz9HZXRJZHNAQ1diZW1DbGFzc0BAUUFFSkFBVkNGbGV4QXJyYXlAQFBBVjFAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUNhbGxTZWN1cml0eTo6R2V0SW1wZXJzb25hdGlvbih1bnNpZ25lZCBsb25nICopDQorP0dldEltcGVyc29uYXRpb25AQ1diZW1DYWxsU2VjdXJpdHlAQFVBR0pQQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGU6OkdldEltcGVyc29uYXRpb24odW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRJbXBlcnNvbmF0aW9uQENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFVBR0pQQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6R2V0SW1wZXJzb25hdGlvbkxldmVsKHZvaWQpDQorP0dldEltcGVyc29uYXRpb25MZXZlbEBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlQEBRQUVLWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgbG9uZyAqIF9fdGhpc2NhbGwgQ0Zhc3RIZWFwOjpHZXRJbkxpbmVMZW5ndGgodm9pZCkNCis/R2V0SW5MaW5lTGVuZ3RoQENGYXN0SGVhcEBASUFFUEFLWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0Zhc3RIZWFwOjpHZXRJbmRleEZyb21GYWtlKHVuc2lnbmVkIGxvbmcpDQorP0dldEluZGV4RnJvbUZha2VAQ0Zhc3RIZWFwQEBTR0hLQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0tub3duU3RyaW5nVGFibGU6OkdldEluZGV4T2ZLZXkodm9pZCkNCis/R2V0SW5kZXhPZktleUBDS25vd25TdHJpbmdUYWJsZUBAU0dIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0NsYXNzQW5kTWV0aG9kczo6R2V0SW5kZXhlZFByb3BzKGNsYXNzIENXU3RyaW5nQXJyYXkgJix1bnNpZ25lZCBjaGFyICopDQorP0dldEluZGV4ZWRQcm9wc0BDQ2xhc3NBbmRNZXRob2RzQEBTR0hBQVZDV1N0cmluZ0FycmF5QEBQQUVAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpHZXRJbmRleGVkUHJvcHMoY2xhc3MgQ1dTdHJpbmdBcnJheSAmKQ0KKz9HZXRJbmRleGVkUHJvcHNAQ0NsYXNzUGFydEBAUUFFSEFBVkNXU3RyaW5nQXJyYXlAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6R2V0SW5kZXhlZFByb3BzKGNsYXNzIENXU3RyaW5nQXJyYXkgJikNCis/R2V0SW5kZXhlZFByb3BzQENXYmVtQ2xhc3NAQFVBRUhBQVZDV1N0cmluZ0FycmF5QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkdldEluZGV4ZWRQcm9wcyhjbGFzcyBDV1N0cmluZ0FycmF5ICYpDQorP0dldEluZGV4ZWRQcm9wc0BDV2JlbUluc3RhbmNlQEBVQUVIQUFWQ1dTdHJpbmdBcnJheUBAQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBDV2JlbU9iamVjdEFycmF5UGFja2V0OjpHZXRJbnN0YW5jZU9iamVjdChjbGFzcyBDV2JlbU9iamVjdFBhY2tldCAmLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogKixjbGFzcyBDV2JlbUNsYXNzQ2FjaGUgJikNCis/R2V0SW5zdGFuY2VPYmplY3RAQ1diZW1PYmplY3RBcnJheVBhY2tldEBAQUFFSkFBVkNXYmVtT2JqZWN0UGFja2V0QEBQQVBBVUlXYmVtQ2xhc3NPYmplY3RAQEFBVkNXYmVtQ2xhc3NDYWNoZUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBzdHJ1Y3QgSVVua25vd24gKiBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkdldEluc3RhbmNlT2JqZWN0VW5rbm93bih2b2lkKQ0KKz9HZXRJbnN0YW5jZU9iamVjdFVua25vd25AQ1diZW1JbnN0YW5jZUBAVUFFUEFVSVVua25vd25AQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgQ1diZW1FbnVtTWFyc2hhbGluZzo6R2V0SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmKQ0KKz9HZXRJbnRlcmZhY2VAQ1diZW1FbnVtTWFyc2hhbGluZ0BATUFFUEFYQUJVX0dVSURAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgQ1diZW1GZXRjaFJlZnJNZ3I6OkdldEludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJikNCis/R2V0SW50ZXJmYWNlQENXYmVtRmV0Y2hSZWZyTWdyQEBNQUVQQVhBQlVfR1VJREBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBDV2JlbVJlZnJlc2hpbmdTdmM6OkdldEludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJikNCis/R2V0SW50ZXJmYWNlQENXYmVtUmVmcmVzaGluZ1N2Y0BATUFFUEFYQUJVX0dVSURAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgQ1dtaU9iamVjdEZhY3Rvcnk6OkdldEludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJikNCis/R2V0SW50ZXJmYWNlQENXbWlPYmplY3RGYWN0b3J5QEBNQUVQQVhBQlVfR1VJREBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1ZhciAqIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6R2V0S2V5KHZvaWQpDQorP0dldEtleUBDV2JlbUluc3RhbmNlQEBRQUVQQVZDVmFyQEBYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6R2V0S2V5T3JpZ2luKGNsYXNzIFdTdHJpbmcgJikNCis/R2V0S2V5T3JpZ2luQENDbGFzc1BhcnRAQFFBRUpBQVZXU3RyaW5nQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpHZXRLZXlPcmlnaW4oY2xhc3MgV1N0cmluZyAmKQ0KKz9HZXRLZXlPcmlnaW5AQ1diZW1DbGFzc0BAVUFFSkFBVldTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkdldEtleU9yaWdpbihjbGFzcyBXU3RyaW5nICYpDQorP0dldEtleU9yaWdpbkBDV2JlbUluc3RhbmNlQEBVQUVKQUFWV1N0cmluZ0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6R2V0S2V5T3JpZ2luKGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICosdW5zaWduZWQgc2hvcnQgKikNCis/R2V0S2V5T3JpZ2luQENXYmVtT2JqZWN0QEBVQUdKSktQQUtQQUdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpHZXRLZXlQcm9wcyhjbGFzcyBDV1N0cmluZ0FycmF5ICYpDQorP0dldEtleVByb3BzQENDbGFzc1BhcnRAQFFBRUhBQVZDV1N0cmluZ0FycmF5QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OkdldEtleVByb3BzKGNsYXNzIENXU3RyaW5nQXJyYXkgJikNCis/R2V0S2V5UHJvcHNAQ1diZW1DbGFzc0BAVUFFSEFBVkNXU3RyaW5nQXJyYXlAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6R2V0S2V5UHJvcHMoY2xhc3MgQ1dTdHJpbmdBcnJheSAmKQ0KKz9HZXRLZXlQcm9wc0BDV2JlbUluc3RhbmNlQEBVQUVIQUFWQ1dTdHJpbmdBcnJheUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkdldEtleVN0cih2b2lkKQ0KKz9HZXRLZXlTdHJAQ1diZW1JbnN0YW5jZUBAUUFFUEFHWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6R2V0S2V5U3RyaW5nKGxvbmcsdW5zaWduZWQgc2hvcnQgKiAqKQ0KKz9HZXRLZXlTdHJpbmdAQ1diZW1PYmplY3RAQFVBR0pKUEFQQUdAWg0KKzsgcHVibGljOiBzdHJ1Y3QgQ1F1YWxpZmllciAqIF9fdGhpc2NhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpHZXRLbm93blF1YWxpZmllckxvY2FsbHkoaW50KQ0KKz9HZXRLbm93blF1YWxpZmllckxvY2FsbHlAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBRQUVQQVVDUXVhbGlmaWVyQEBIQFoNCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBDUXVhbGlmaWVyICogX19zdGRjYWxsIENCYXNpY1F1YWxpZmllclNldDo6R2V0S25vd25RdWFsaWZpZXJMb2NhbGx5KHVuc2lnbmVkIGNoYXIgKixpbnQpDQorP0dldEtub3duUXVhbGlmaWVyTG9jYWxseUBDQmFzaWNRdWFsaWZpZXJTZXRAQFNHUEFVQ1F1YWxpZmllckBAUEFFSEBaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAmIF9fc3RkY2FsbCBDS25vd25TdHJpbmdUYWJsZTo6R2V0S25vd25TdHJpbmcoaW50KQ0KKz9HZXRLbm93blN0cmluZ0BDS25vd25TdHJpbmdUYWJsZUBAU0dBQVZDQ29tcHJlc3NlZFN0cmluZ0BASEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENLbm93blN0cmluZ1RhYmxlOjpHZXRLbm93blN0cmluZ0luZGV4KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0dldEtub3duU3RyaW5nSW5kZXhAQ0tub3duU3RyaW5nVGFibGVAQFNHSFBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENDb21wcmVzc2VkU3RyaW5nICogX190aGlzY2FsbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6OkdldExhc3Qodm9pZCkNCis/R2V0TGFzdEBDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQFFBRVBBVkNDb21wcmVzc2VkU3RyaW5nQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpHZXRMZW5ndGgodm9pZCkNCis/R2V0TGVuZ3RoQENCYXNpY1F1YWxpZmllclNldEBAUUFFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDQ2xhc3NBbmRNZXRob2RzOjpHZXRMZW5ndGgodm9pZCkNCis/R2V0TGVuZ3RoQENDbGFzc0FuZE1ldGhvZHNAQFFBRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6R2V0TGVuZ3RoKHZvaWQpDQorP0dldExlbmd0aEBDQ2xhc3NQYXJ0QEBRQUVLWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmc6OkdldExlbmd0aCh2b2lkKWNvbnN0IA0KKz9HZXRMZW5ndGhAQ0NvbXByZXNzZWRTdHJpbmdAQFFCRUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmdMaXN0OjpHZXRMZW5ndGgodm9pZCkNCis/R2V0TGVuZ3RoQENDb21wcmVzc2VkU3RyaW5nTGlzdEBAUUFFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDRGF0YVRhYmxlOjpHZXRMZW5ndGgodm9pZCkNCis/R2V0TGVuZ3RoQENEYXRhVGFibGVAQFFBRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0RlY29yYXRpb25QYXJ0OjpHZXRMZW5ndGgodm9pZCkNCis/R2V0TGVuZ3RoQENEZWNvcmF0aW9uUGFydEBAUUFFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDRW1iZWRkZWRPYmplY3Q6OkdldExlbmd0aCh2b2lkKQ0KKz9HZXRMZW5ndGhAQ0VtYmVkZGVkT2JqZWN0QEBRQUVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENGYXN0SGVhcDo6R2V0TGVuZ3RoKHZvaWQpDQorP0dldExlbmd0aEBDRmFzdEhlYXBAQFFBRUtYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRml4ZWRCU1RSQXJyYXk6OkdldExlbmd0aCh2b2lkKQ0KKz9HZXRMZW5ndGhAQ0ZpeGVkQlNUUkFycmF5QEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0luc3RhbmNlUGFydDo6R2V0TGVuZ3RoKHZvaWQpDQorP0dldExlbmd0aEBDSW5zdGFuY2VQYXJ0QEBRQUVIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0luc3RhbmNlUGFydDo6R2V0TGVuZ3RoKHVuc2lnbmVkIGNoYXIgKikNCis/R2V0TGVuZ3RoQENJbnN0YW5jZVBhcnRAQFNHSFBBRUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJbnRlcm5hbFN0cmluZzo6R2V0TGVuZ3RoKHZvaWQpY29uc3QgDQorP0dldExlbmd0aEBDSW50ZXJuYWxTdHJpbmdAQFFCRUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ01ldGhvZFBhcnQ6OkdldExlbmd0aCh2b2lkKQ0KKz9HZXRMZW5ndGhAQ01ldGhvZFBhcnRAQFFBRUtYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUHJvcGVydHlMb29rdXBUYWJsZTo6R2V0TGVuZ3RoKHZvaWQpDQorP0dldExlbmd0aEBDUHJvcGVydHlMb29rdXBUYWJsZUBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXRMaXN0OjpHZXRMZW5ndGgodm9pZCkNCis/R2V0TGVuZ3RoQENRdWFsaWZpZXJTZXRMaXN0QEBRQUVIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ1F1YWxpZmllclNldExpc3Q6OkdldExlbmd0aCh1bnNpZ25lZCBjaGFyICosaW50KQ0KKz9HZXRMZW5ndGhAQ1F1YWxpZmllclNldExpc3RAQFNHSFBBRUhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1R5cGU6OkdldExlbmd0aCh2b2lkKQ0KKz9HZXRMZW5ndGhAQ1R5cGVAQFFBRUtYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ1R5cGU6OkdldExlbmd0aCh1bnNpZ25lZCBsb25nKQ0KKz9HZXRMZW5ndGhAQ1R5cGVAQFNHS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6R2V0TGVuZ3RoKHZvaWQpDQorP0dldExlbmd0aEBDV2JlbUNsYXNzQEBRQUVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkdldExlbmd0aCh2b2lkKQ0KKz9HZXRMZW5ndGhAQ1diZW1JbnN0YW5jZUBAUUFFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDVW50eXBlZEFycmF5OjpHZXRMZW5ndGhCeUFjdHVhbExlbmd0aChpbnQpDQorP0dldExlbmd0aEJ5QWN0dWFsTGVuZ3RoQENVbnR5cGVkQXJyYXlAQFFBRUtIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENVbnR5cGVkQXJyYXk6OkdldExlbmd0aEJ5VHlwZShjbGFzcyBDVHlwZSkNCis/R2V0TGVuZ3RoQnlUeXBlQENVbnR5cGVkQXJyYXlAQFFBRUtWQ1R5cGVAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OkdldExlbmd0aEZyb21EYXRhKHVuc2lnbmVkIGNoYXIgKikNCis/R2V0TGVuZ3RoRnJvbURhdGFAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBTR0tQQUVAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6R2V0TGltaXRlZFZlcnNpb24oY2xhc3MgQ0xpbWl0YXRpb25NYXBwaW5nICosY2xhc3MgQ1diZW1DbGFzcyAqICopDQorP0dldExpbWl0ZWRWZXJzaW9uQENXYmVtQ2xhc3NAQFFBRUpQQVZDTGltaXRhdGlvbk1hcHBpbmdAQFBBUEFWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6R2V0TGltaXRlZFZlcnNpb24oY2xhc3MgQ0xpbWl0YXRpb25NYXBwaW5nICosY2xhc3MgQ1diZW1JbnN0YW5jZSAqICopDQorP0dldExpbWl0ZWRWZXJzaW9uQENXYmVtSW5zdGFuY2VAQFFBRUpQQVZDTGltaXRhdGlvbk1hcHBpbmdAQFBBUEFWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1HdWlkVG9DbGFzc01hcDo6R2V0TWFwKGNsYXNzIENHVUlEICYsY2xhc3MgQ1diZW1DbGFzc1RvSWRNYXAgKiAqKQ0KKz9HZXRNYXBAQ1diZW1HdWlkVG9DbGFzc01hcEBAUUFFSkFBVkNHVUlEQEBQQVBBVkNXYmVtQ2xhc3NUb0lkTWFwQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENMaW1pdGF0aW9uTWFwcGluZzo6R2V0TWFwcGVkKHVuc2lnbmVkIHNob3J0KQ0KKz9HZXRNYXBwZWRAQ0xpbWl0YXRpb25NYXBwaW5nQEBRQUVHR0BaDQorOyBwdWJsaWM6IGNsYXNzIENQcm9wZXJ0eUluZm9ybWF0aW9uICogX190aGlzY2FsbCBDTGltaXRhdGlvbk1hcHBpbmc6OkdldE1hcHBlZChjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqKQ0KKz9HZXRNYXBwZWRAQ0xpbWl0YXRpb25NYXBwaW5nQEBRQUVQQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBAUEFWMkBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1FbnVtTWFyc2hhbGluZzo6R2V0TWFyc2hhbFBhY2tldChzdHJ1Y3QgX0dVSUQgY29uc3QgJix1bnNpZ25lZCBsb25nLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgY2hhciAqICopDQorP0dldE1hcnNoYWxQYWNrZXRAQ1diZW1FbnVtTWFyc2hhbGluZ0BAUUFFSkFCVV9HVUlEQEBLUEFQQVVJV2JlbUNsYXNzT2JqZWN0QEBQQUtQQVBBRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1FbnVtTWFyc2hhbGluZzo6WEVudW1NYXJzaGFsaW5nOjpHZXRNYXJzaGFsUGFja2V0KHN0cnVjdCBfR1VJRCBjb25zdCAmLHVuc2lnbmVkIGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiAqLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBjaGFyICogKikNCis/R2V0TWFyc2hhbFBhY2tldEBYRW51bU1hcnNoYWxpbmdAQ1diZW1FbnVtTWFyc2hhbGluZ0BAVUFHSkFCVV9HVUlEQEBLUEFQQVVJV2JlbUNsYXNzT2JqZWN0QEBQQUtQQVBBRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OkdldE1hcnNoYWxTaXplTWF4KHN0cnVjdCBfR1VJRCBjb25zdCAmLHZvaWQgKix1bnNpZ25lZCBsb25nLHZvaWQgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKikNCis/R2V0TWFyc2hhbFNpemVNYXhAQ1diZW1PYmplY3RAQFVBR0pBQlVfR1VJREBAUEFYSzFLUEFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6R2V0TWF4TWFyc2hhbFN0cmVhbVNpemUodW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRNYXhNYXJzaGFsU3RyZWFtU2l6ZUBDV2JlbUluc3RhbmNlQEBVQUVKUEFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OkdldE1heE1hcnNoYWxTdHJlYW1TaXplKHVuc2lnbmVkIGxvbmcgKikNCis/R2V0TWF4TWFyc2hhbFN0cmVhbVNpemVAQ1diZW1PYmplY3RAQFVBRUpQQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkdldE1lbW9yeUxpbWl0KHZvaWQpDQorP0dldE1lbW9yeUxpbWl0QENDbGFzc1BhcnRAQFVBRVBBRVhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ0luc3RhbmNlUGFydDo6R2V0TWVtb3J5TGltaXQodm9pZCkNCis/R2V0TWVtb3J5TGltaXRAQ0luc3RhbmNlUGFydEBAVUFFUEFFWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDTWV0aG9kUGFydDo6R2V0TWVtb3J5TGltaXQodm9pZCkNCis/R2V0TWVtb3J5TGltaXRAQ01ldGhvZFBhcnRAQFVBRVBBRVhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0aG9kUGFydDo6R2V0TWV0aG9kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyxjbGFzcyBDV2JlbU9iamVjdCAqICosY2xhc3MgQ1diZW1PYmplY3QgKiAqKQ0KKz9HZXRNZXRob2RAQ01ldGhvZFBhcnRAQFFBRUpQQkdKUEFQQVZDV2JlbU9iamVjdEBAMUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1DbGFzczo6R2V0TWV0aG9kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqICosc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiAqKQ0KKz9HZXRNZXRob2RAQ1diZW1DbGFzc0BAVUFHSlBCR0pQQVBBVUlXYmVtQ2xhc3NPYmplY3RAQDFAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OkdldE1ldGhvZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiAqLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogKikNCis/R2V0TWV0aG9kQENXYmVtSW5zdGFuY2VAQFVBR0pQQkdKUEFQQVVJV2JlbUNsYXNzT2JqZWN0QEAxQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRob2RQYXJ0OjpHZXRNZXRob2RBdChpbnQsdW5zaWduZWQgc2hvcnQgKiAqLGNsYXNzIENXYmVtT2JqZWN0ICogKixjbGFzcyBDV2JlbU9iamVjdCAqICopDQorP0dldE1ldGhvZEF0QENNZXRob2RQYXJ0QEBRQUVKSFBBUEFHUEFQQVZDV2JlbU9iamVjdEBAMUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0aG9kUGFydDo6R2V0TWV0aG9kT3JpZ2luKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRNZXRob2RPcmlnaW5AQ01ldGhvZFBhcnRAQFFBRUpQQkdQQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtQ2xhc3M6OkdldE1ldGhvZE9yaWdpbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0ICogKikNCis/R2V0TWV0aG9kT3JpZ2luQENXYmVtQ2xhc3NAQFVBR0pQQkdQQVBBR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1JbnN0YW5jZTo6R2V0TWV0aG9kT3JpZ2luKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgKiAqKQ0KKz9HZXRNZXRob2RPcmlnaW5AQ1diZW1JbnN0YW5jZUBAVUFHSlBCR1BBUEFHQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6R2V0TWV0aG9kUXVhbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyx1bnNpZ25lZCBsb25nLGxvbmcgKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyAqLHZvaWQgKikNCis/R2V0TWV0aG9kUXVhbEBDV2JlbU9iamVjdEBAVUFHSlBCRzBKS1BBSlBBSzJQQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpHZXRNZXRob2RRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcgKixjbGFzcyBDVHlwZWRWYWx1ZSAqLGNsYXNzIENGYXN0SGVhcCAqICosaW50KQ0KKz9HZXRNZXRob2RRdWFsaWZpZXJAQ1diZW1DbGFzc0BAVUFFSlBCRzBQQUpQQVZDVHlwZWRWYWx1ZUBAUEFQQVZDRmFzdEhlYXBAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpHZXRNZXRob2RRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENWYXIgKixsb25nICosbG9uZyAqKQ0KKz9HZXRNZXRob2RRdWFsaWZpZXJAQ1diZW1DbGFzc0BAVUFFSlBCRzBQQVZDVmFyQEBQQUoyQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6R2V0TWV0aG9kUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nICosY2xhc3MgQ1R5cGVkVmFsdWUgKixjbGFzcyBDRmFzdEhlYXAgKiAqLGludCkNCis/R2V0TWV0aG9kUXVhbGlmaWVyQENXYmVtSW5zdGFuY2VAQFVBRUpQQkcwUEFKUEFWQ1R5cGVkVmFsdWVAQFBBUEFWQ0Zhc3RIZWFwQEBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6R2V0TWV0aG9kUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDVmFyICosbG9uZyAqLGxvbmcgKikNCis/R2V0TWV0aG9kUXVhbGlmaWVyQENXYmVtSW5zdGFuY2VAQFVBRUpQQkcwUEFWQ1ZhckBAUEFKMkBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0aG9kUGFydDo6R2V0TWV0aG9kUXVhbGlmaWVyU2V0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IElXYmVtUXVhbGlmaWVyU2V0ICogKikNCis/R2V0TWV0aG9kUXVhbGlmaWVyU2V0QENNZXRob2RQYXJ0QEBRQUVKUEJHUEFQQVVJV2JlbVF1YWxpZmllclNldEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUNsYXNzOjpHZXRNZXRob2RRdWFsaWZpZXJTZXQodW5zaWduZWQgc2hvcnQgY29uc3QgKixzdHJ1Y3QgSVdiZW1RdWFsaWZpZXJTZXQgKiAqKQ0KKz9HZXRNZXRob2RRdWFsaWZpZXJTZXRAQ1diZW1DbGFzc0BAVUFHSlBCR1BBUEFVSVdiZW1RdWFsaWZpZXJTZXRAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1JbnN0YW5jZTo6R2V0TWV0aG9kUXVhbGlmaWVyU2V0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IElXYmVtUXVhbGlmaWVyU2V0ICogKikNCis/R2V0TWV0aG9kUXVhbGlmaWVyU2V0QENXYmVtSW5zdGFuY2VAQFVBR0pQQkdQQVBBVUlXYmVtUXVhbGlmaWVyU2V0QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1diZW1EYXRhUGFja2V0OjpHZXRNaW5IZWFkZXJTaXplKHZvaWQpDQorP0dldE1pbkhlYWRlclNpemVAQ1diZW1EYXRhUGFja2V0QEBRQUVLWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENCYXNpY1F1YWxpZmllclNldDo6R2V0TWluTGVuZ3RoKHZvaWQpDQorP0dldE1pbkxlbmd0aEBDQmFzaWNRdWFsaWZpZXJTZXRAQFNHS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDQ2xhc3NBbmRNZXRob2RzOjpHZXRNaW5MZW5ndGgodm9pZCkNCis/R2V0TWluTGVuZ3RoQENDbGFzc0FuZE1ldGhvZHNAQFNHS1haDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENDbGFzc1BhcnQ6OkdldE1pbkxlbmd0aCh2b2lkKQ0KKz9HZXRNaW5MZW5ndGhAQ0NsYXNzUGFydEBAU0dIWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENEYXRhVGFibGU6OkdldE1pbkxlbmd0aCh2b2lkKQ0KKz9HZXRNaW5MZW5ndGhAQ0RhdGFUYWJsZUBAU0dLWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENEZWNvcmF0aW9uUGFydDo6R2V0TWluTGVuZ3RoKHZvaWQpDQorP0dldE1pbkxlbmd0aEBDRGVjb3JhdGlvblBhcnRAQFNHS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDRmFzdEhlYXA6OkdldE1pbkxlbmd0aCh2b2lkKQ0KKz9HZXRNaW5MZW5ndGhAQ0Zhc3RIZWFwQEBTR0tYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ01ldGhvZFBhcnQ6OkdldE1pbkxlbmd0aCh2b2lkKQ0KKz9HZXRNaW5MZW5ndGhAQ01ldGhvZFBhcnRAQFNHS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDUHJvcGVydHlMb29rdXBUYWJsZTo6R2V0TWluTGVuZ3RoKHZvaWQpDQorP0dldE1pbkxlbmd0aEBDUHJvcGVydHlMb29rdXBUYWJsZUBAU0dLWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENXYmVtQ2xhc3M6OkdldE1pbkxlbmd0aCh2b2lkKQ0KKz9HZXRNaW5MZW5ndGhAQ1diZW1DbGFzc0BAU0dLWFoNCis7IHByb3RlY3RlZDogY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgKiBfX3RoaXNjYWxsIENNZXRob2RQYXJ0OjpHZXROYW1lKGludCkNCis/R2V0TmFtZUBDTWV0aG9kUGFydEBASUFFUEFWQ0NvbXByZXNzZWRTdHJpbmdAQEhAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgKiBfX3N0ZGNhbGwgQ1N5c3RlbVByb3BlcnRpZXM6OkdldE5hbWVBc0JTVFIoaW50KQ0KKz9HZXROYW1lQXNCU1RSQENTeXN0ZW1Qcm9wZXJ0aWVzQEBTR1BBR0hAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENRdWFsaWZpZXJTZXQ6OkdldE5hbWVzKGxvbmcsc3RydWN0IHRhZ1NBRkVBUlJBWSAqICopDQorP0dldE5hbWVzQENRdWFsaWZpZXJTZXRAQFVBR0pKUEFQQVV0YWdTQUZFQVJSQVlAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OkdldE5hbWVzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyxzdHJ1Y3QgdGFnVkFSSUFOVCAqLHN0cnVjdCB0YWdTQUZFQVJSQVkgKiAqKQ0KKz9HZXROYW1lc0BDV2JlbU9iamVjdEBAVUFHSlBCR0pQQVV0YWdWQVJJQU5UQEBQQVBBVXRhZ1NBRkVBUlJBWUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtT2JqZWN0OjpHZXROYW1lc3BhY2UoY2xhc3MgQ1ZhciAqKQ0KKz9HZXROYW1lc3BhY2VAQ1diZW1PYmplY3RAQFFBRUpQQVZDVmFyQEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqIF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmdMaXN0OjpHZXROZXh0KGNsYXNzIENDb21wcmVzc2VkU3RyaW5nICopDQorP0dldE5leHRAQ0NvbXByZXNzZWRTdHJpbmdMaXN0QEBRQUVQQVZDQ29tcHJlc3NlZFN0cmluZ0BAUEFWMkBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6R2V0Tm9uc3lzdGVtUHJvcGVydHlWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENWYXIgKikNCis/R2V0Tm9uc3lzdGVtUHJvcGVydHlWYWx1ZUBDV2JlbUluc3RhbmNlQEBRQUVKUEJHUEFWQ1ZhckBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6R2V0Tm9ybWFsaXplZFBhdGgobG9uZyx1bnNpZ25lZCBzaG9ydCAqICopDQorP0dldE5vcm1hbGl6ZWRQYXRoQENXYmVtT2JqZWN0QEBVQUdKSlBBUEFHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENEYXRhVGFibGU6OkdldE51bGxuZXNzTGVuZ3RoKHZvaWQpDQorP0dldE51bGxuZXNzTGVuZ3RoQENEYXRhVGFibGVAQFFBRUtYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDU3lzdGVtUHJvcGVydGllczo6R2V0TnVtRGVjb3JhdGlvbkluZGVwZW5kZW50UHJvcGVydGllcyh2b2lkKQ0KKz9HZXROdW1EZWNvcmF0aW9uSW5kZXBlbmRlbnRQcm9wZXJ0aWVzQENTeXN0ZW1Qcm9wZXJ0aWVzQEBTR0hYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDVW50eXBlZEFycmF5OjpHZXROdW1FbGVtZW50cyh2b2lkKQ0KKz9HZXROdW1FbGVtZW50c0BDVW50eXBlZEFycmF5QEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0xpbWl0YXRpb25NYXBwaW5nOjpHZXROdW1NYXBwaW5ncyh2b2lkKQ0KKz9HZXROdW1NYXBwaW5nc0BDTGltaXRhdGlvbk1hcHBpbmdAQFFBRUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDTWV0aG9kUGFydDo6R2V0TnVtTWV0aG9kcyh2b2lkKQ0KKz9HZXROdW1NZXRob2RzQENNZXRob2RQYXJ0QEBJQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OkdldE51bVBhcmVudHModm9pZCkNCis/R2V0TnVtUGFyZW50c0BDV2JlbU9iamVjdEBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENQcm9wZXJ0eUxvb2t1cFRhYmxlOjpHZXROdW1Qcm9wZXJ0aWVzKHZvaWQpDQorP0dldE51bVByb3BlcnRpZXNAQ1Byb3BlcnR5TG9va3VwVGFibGVAQFFBRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OkdldE51bVByb3BlcnRpZXModm9pZCkNCis/R2V0TnVtUHJvcGVydGllc0BDV2JlbUNsYXNzQEBVQUVIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpHZXROdW1Qcm9wZXJ0aWVzKHZvaWQpDQorP0dldE51bVByb3BlcnRpZXNAQ1diZW1JbnN0YW5jZUBAVUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXRMaXN0OjpHZXROdW1TZXRzKHZvaWQpDQorP0dldE51bVNldHNAQ1F1YWxpZmllclNldExpc3RAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6OkdldE51bVN0cmluZ3Modm9pZCkNCis/R2V0TnVtU3RyaW5nc0BDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQFFBRUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDU3lzdGVtUHJvcGVydGllczo6R2V0TnVtU3lzdGVtUHJvcGVydGllcyh2b2lkKQ0KKz9HZXROdW1TeXN0ZW1Qcm9wZXJ0aWVzQENTeXN0ZW1Qcm9wZXJ0aWVzQEBTR0hYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OkdldE51bVVwcGVyQm91bmQodm9pZCkNCis/R2V0TnVtVXBwZXJCb3VuZEBDQmFzaWNRdWFsaWZpZXJTZXRAQFFBRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpHZXRPYmpRdWFsKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyx1bnNpZ25lZCBsb25nLGxvbmcgKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyAqLHZvaWQgKikNCis/R2V0T2JqUXVhbEBDV2JlbU9iamVjdEBAVUFHSlBCR0pLUEFKUEFLMlBBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OkdldE9iamVjdE1lbW9yeSh2b2lkICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICopDQorP0dldE9iamVjdE1lbW9yeUBDV2JlbU9iamVjdEBAVUFHSlBBWEtQQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtQ2xhc3M6OkdldE9iamVjdFBhcnRzKHZvaWQgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRPYmplY3RQYXJ0c0BDV2JlbUNsYXNzQEBVQUdKUEFYS0tQQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OkdldE9iamVjdFBhcnRzKHZvaWQgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRPYmplY3RQYXJ0c0BDV2JlbUluc3RhbmNlQEBVQUdKUEFYS0tQQUtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0luc3RhbmNlUGFydDo6R2V0T2JqZWN0UXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1ZhciAqLGxvbmcgKikNCis/R2V0T2JqZWN0UXVhbGlmaWVyQENJbnN0YW5jZVBhcnRAQFFBRUpQQkdQQVZDVmFyQEBQQUpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtQ2xhc3M6OkdldE9iamVjdFRleHQobG9uZyx1bnNpZ25lZCBzaG9ydCAqICopDQorP0dldE9iamVjdFRleHRAQ1diZW1DbGFzc0BAVUFHSkpQQVBBR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1JbnN0YW5jZTo6R2V0T2JqZWN0VGV4dChsb25nLHVuc2lnbmVkIHNob3J0ICogKikNCis/R2V0T2JqZWN0VGV4dEBDV2JlbUluc3RhbmNlQEBVQUdKSlBBUEFHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3NDYWNoZTo6R2V0T2JqZWN0VyhzdHJ1Y3QgX0dVSUQgJixzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqICopDQorP0dldE9iamVjdFdAQ1diZW1DbGFzc0NhY2hlQEBRQUVKQUFVX0dVSURAQFBBUEFVSVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1VudHlwZWRWYWx1ZSAqIF9fdGhpc2NhbGwgQ0RhdGFUYWJsZTo6R2V0T2Zmc2V0KHVuc2lnbmVkIGxvbmcpDQorP0dldE9mZnNldEBDRGF0YVRhYmxlQEBRQUVQQVZDVW50eXBlZFZhbHVlQEBLQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgKiBfX3RoaXNjYWxsIENXYmVtT2JqZWN0OjpHZXRQYXJlbnRBdEluZGV4KGludCkNCis/R2V0UGFyZW50QXRJbmRleEBDV2JlbU9iamVjdEBAUUFFUEFWQ0NvbXByZXNzZWRTdHJpbmdAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtQ2xhc3M6OkdldFBhcmVudENsYXNzRnJvbUJsb2IobG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKix1bnNpZ25lZCBzaG9ydCAqICopDQorP0dldFBhcmVudENsYXNzRnJvbUJsb2JAQ1diZW1DbGFzc0BAVUFHSkpLUEFYUEFQQUdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpHZXRQYXJlbnRDbGFzc0Zyb21CbG9iKGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICosdW5zaWduZWQgc2hvcnQgKiAqKQ0KKz9HZXRQYXJlbnRDbGFzc0Zyb21CbG9iQENXYmVtT2JqZWN0QEBVQUdKSktQQVhQQVBBR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbU9iamVjdDo6R2V0UGF0aChjbGFzcyBDVmFyICopDQorP0dldFBhdGhAQ1diZW1PYmplY3RAQFFBRUpQQVZDVmFyQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ1VudHlwZWRBcnJheSAqIF9fc3RkY2FsbCBDVW50eXBlZEFycmF5OjpHZXRQb2ludGVyKGNsYXNzIENQdHJTb3VyY2UgKikNCis/R2V0UG9pbnRlckBDVW50eXBlZEFycmF5QEBTR1BBVjFAUEFWQ1B0clNvdXJjZUBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgKiBfX3RoaXNjYWxsIENDb21wcmVzc2VkU3RyaW5nTGlzdDo6R2V0UHJldmlvdXMoY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgKikNCis/R2V0UHJldmlvdXNAQ0NvbXByZXNzZWRTdHJpbmdMaXN0QEBRQUVQQVZDQ29tcHJlc3NlZFN0cmluZ0BAUEFWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpHZXRQcm9wQWRkckJ5SGFuZGxlKGxvbmcsbG9uZyx1bnNpZ25lZCBsb25nICosdm9pZCAqICopDQorP0dldFByb3BBZGRyQnlIYW5kbGVAQ1diZW1PYmplY3RAQFVBR0pKSlBBS1BBUEFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6R2V0UHJvcE5hbWUoaW50LGNsYXNzIENWYXIgKikNCis/R2V0UHJvcE5hbWVAQ1diZW1DbGFzc0BAVUFFSkhQQVZDVmFyQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpHZXRQcm9wTmFtZShpbnQsY2xhc3MgQ1ZhciAqKQ0KKz9HZXRQcm9wTmFtZUBDV2JlbUluc3RhbmNlQEBVQUVKSFBBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OkdldFByb3BRdWFsKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nLHVuc2lnbmVkIGxvbmcsbG9uZyAqLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICosdm9pZCAqKQ0KKz9HZXRQcm9wUXVhbEBDV2JlbU9iamVjdEBAVUFHSlBCRzBKS1BBSlBBSzJQQVhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6R2V0UHJvcFF1YWxpZmllcihjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1ZhciAqLGxvbmcgKixsb25nICopDQorP0dldFByb3BRdWFsaWZpZXJAQ0NsYXNzUGFydEBAUUFFSlBBVkNQcm9wZXJ0eUluZm9ybWF0aW9uQEBQQkdQQVZDVmFyQEBQQUozQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkdldFByb3BRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcgKixjbGFzcyBDVHlwZWRWYWx1ZSAqLGNsYXNzIENGYXN0SGVhcCAqICosaW50KQ0KKz9HZXRQcm9wUXVhbGlmaWVyQENDbGFzc1BhcnRAQFFBRUpQQkcwUEFKUEFWQ1R5cGVkVmFsdWVAQFBBUEFWQ0Zhc3RIZWFwQEBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6R2V0UHJvcFF1YWxpZmllcihjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyAqLGNsYXNzIENUeXBlZFZhbHVlICosY2xhc3MgQ0Zhc3RIZWFwICogKixpbnQpDQorP0dldFByb3BRdWFsaWZpZXJAQ1diZW1DbGFzc0BAVUFFSlBBVkNQcm9wZXJ0eUluZm9ybWF0aW9uQEBQQkdQQUpQQVZDVHlwZWRWYWx1ZUBAUEFQQVZDRmFzdEhlYXBAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpHZXRQcm9wUXVhbGlmaWVyKGNsYXNzIENQcm9wZXJ0eUluZm9ybWF0aW9uICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDVmFyICosbG9uZyAqLGxvbmcgKikNCis/R2V0UHJvcFF1YWxpZmllckBDV2JlbUNsYXNzQEBVQUVKUEFWQ1Byb3BlcnR5SW5mb3JtYXRpb25AQFBCR1BBVkNWYXJAQFBBSjNAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpHZXRQcm9wUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nICosY2xhc3MgQ1R5cGVkVmFsdWUgKixjbGFzcyBDRmFzdEhlYXAgKiAqLGludCkNCis/R2V0UHJvcFF1YWxpZmllckBDV2JlbUNsYXNzQEBVQUVKUEJHMFBBSlBBVkNUeXBlZFZhbHVlQEBQQVBBVkNGYXN0SGVhcEBASEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OkdldFByb3BRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENWYXIgKixsb25nICosbG9uZyAqKQ0KKz9HZXRQcm9wUXVhbGlmaWVyQENXYmVtQ2xhc3NAQFVBRUpQQkcwUEFWQ1ZhckBAUEFKMkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkdldFByb3BRdWFsaWZpZXIoY2xhc3MgQ1Byb3BlcnR5SW5mb3JtYXRpb24gKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcgKixjbGFzcyBDVHlwZWRWYWx1ZSAqLGNsYXNzIENGYXN0SGVhcCAqICosaW50KQ0KKz9HZXRQcm9wUXVhbGlmaWVyQENXYmVtSW5zdGFuY2VAQFVBRUpQQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBAUEJHUEFKUEFWQ1R5cGVkVmFsdWVAQFBBUEFWQ0Zhc3RIZWFwQEBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6R2V0UHJvcFF1YWxpZmllcihjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1ZhciAqLGxvbmcgKixsb25nICopDQorP0dldFByb3BRdWFsaWZpZXJAQ1diZW1JbnN0YW5jZUBAVUFFSlBBVkNQcm9wZXJ0eUluZm9ybWF0aW9uQEBQQkdQQVZDVmFyQEBQQUozQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6R2V0UHJvcFF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyAqLGNsYXNzIENUeXBlZFZhbHVlICosY2xhc3MgQ0Zhc3RIZWFwICogKixpbnQpDQorP0dldFByb3BRdWFsaWZpZXJAQ1diZW1JbnN0YW5jZUBAVUFFSlBCRzBQQUpQQVZDVHlwZWRWYWx1ZUBAUEFQQVZDRmFzdEhlYXBAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpHZXRQcm9wUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDVmFyICosbG9uZyAqLGxvbmcgKikNCis/R2V0UHJvcFF1YWxpZmllckBDV2JlbUluc3RhbmNlQEBVQUVKUEJHMFBBVkNWYXJAQFBBSjJAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpHZXRQcm9wZXJ0eShjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqLGNsYXNzIENWYXIgKikNCis/R2V0UHJvcGVydHlAQ1diZW1DbGFzc0BATUFFSlBBVkNQcm9wZXJ0eUluZm9ybWF0aW9uQEBQQVZDVmFyQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpHZXRQcm9wZXJ0eSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENWYXIgKikNCis/R2V0UHJvcGVydHlAQ1diZW1DbGFzc0BAVUFFSlBCR1BBVkNWYXJAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkdldFByb3BlcnR5KGNsYXNzIENQcm9wZXJ0eUluZm9ybWF0aW9uICosY2xhc3MgQ1ZhciAqKQ0KKz9HZXRQcm9wZXJ0eUBDV2JlbUluc3RhbmNlQEBNQUVKUEFWQ1Byb3BlcnR5SW5mb3JtYXRpb25AQFBBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkdldFByb3BlcnR5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1ZhciAqKQ0KKz9HZXRQcm9wZXJ0eUBDV2JlbUluc3RhbmNlQEBVQUVKUEJHUEFWQ1ZhckBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkdldFByb3BlcnR5Q291bnQoY2xhc3MgQ1ZhciAqKQ0KKz9HZXRQcm9wZXJ0eUNvdW50QENDbGFzc1BhcnRAQFFBRUpQQVZDVmFyQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpHZXRQcm9wZXJ0eUNvdW50KGNsYXNzIENWYXIgKikNCis/R2V0UHJvcGVydHlDb3VudEBDV2JlbUNsYXNzQEBVQUVKUEFWQ1ZhckBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6R2V0UHJvcGVydHlDb3VudChjbGFzcyBDVmFyICopDQorP0dldFByb3BlcnR5Q291bnRAQ1diZW1JbnN0YW5jZUBAVUFFSlBBVkNWYXJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpHZXRQcm9wZXJ0eUhhbmRsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcgKixsb25nICopDQorP0dldFByb3BlcnR5SGFuZGxlQENDbGFzc1BhcnRAQFFBRUpQQkdQQUoxQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6R2V0UHJvcGVydHlIYW5kbGUodW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nICosbG9uZyAqKQ0KKz9HZXRQcm9wZXJ0eUhhbmRsZUBDV2JlbU9iamVjdEBAVUFHSlBCR1BBSjFAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6R2V0UHJvcGVydHlIYW5kbGVFeCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcgKixsb25nICopDQorP0dldFByb3BlcnR5SGFuZGxlRXhAQ0NsYXNzUGFydEBAUUFFSlBCR1BBSjFAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpHZXRQcm9wZXJ0eUhhbmRsZUV4KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyxsb25nICosbG9uZyAqKQ0KKz9HZXRQcm9wZXJ0eUhhbmRsZUV4QENXYmVtT2JqZWN0QEBVQUdKUEJHSlBBSjFAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OkdldFByb3BlcnR5SW5kZXgodW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQgKikNCis/R2V0UHJvcGVydHlJbmRleEBDV2JlbU9iamVjdEBAUUFFSlBCR1BBSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpHZXRQcm9wZXJ0eUluZm9CeUhhbmRsZShsb25nLHVuc2lnbmVkIHNob3J0ICogKixsb25nICopDQorP0dldFByb3BlcnR5SW5mb0J5SGFuZGxlQENDbGFzc1BhcnRAQFFBRUpKUEFQQUdQQUpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpHZXRQcm9wZXJ0eUluZm9CeUhhbmRsZShsb25nLHVuc2lnbmVkIHNob3J0ICogKixsb25nICopDQorP0dldFByb3BlcnR5SW5mb0J5SGFuZGxlQENXYmVtT2JqZWN0QEBVQUdKSlBBUEFHUEFKQFoNCis7IHB1YmxpYzogc3RydWN0IENQcm9wZXJ0eUxvb2t1cCAqIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6R2V0UHJvcGVydHlMb29rdXAoaW50KQ0KKz9HZXRQcm9wZXJ0eUxvb2t1cEBDQ2xhc3NQYXJ0QEBRQUVQQVVDUHJvcGVydHlMb29rdXBAQEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OkdldFByb3BlcnR5TmFtZUZyb21JbmRleChpbnQsdW5zaWduZWQgc2hvcnQgKiAqKQ0KKz9HZXRQcm9wZXJ0eU5hbWVGcm9tSW5kZXhAQ1diZW1PYmplY3RAQFFBRUpIUEFQQUdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6R2V0UHJvcGVydHlPcmlnaW4odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCAqICopDQorP0dldFByb3BlcnR5T3JpZ2luQENDbGFzc1BhcnRAQFFBRUpQQkdQQVBBR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OkdldFByb3BlcnR5T3JpZ2luKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgKiAqKQ0KKz9HZXRQcm9wZXJ0eU9yaWdpbkBDV2JlbU9iamVjdEBAVUFHSlBCR1BBUEFHQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUNsYXNzOjpHZXRQcm9wZXJ0eVF1YWxpZmllclNldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHN0cnVjdCBJV2JlbVF1YWxpZmllclNldCAqICopDQorP0dldFByb3BlcnR5UXVhbGlmaWVyU2V0QENXYmVtQ2xhc3NAQFVBR0pQQkdQQVBBVUlXYmVtUXVhbGlmaWVyU2V0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OkdldFByb3BlcnR5UXVhbGlmaWVyU2V0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IElXYmVtUXVhbGlmaWVyU2V0ICogKikNCis/R2V0UHJvcGVydHlRdWFsaWZpZXJTZXRAQ1diZW1JbnN0YW5jZUBAVUFHSlBCR1BBUEFVSVdiZW1RdWFsaWZpZXJTZXRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkdldFByb3BlcnR5UXVhbGlmaWVyU2V0RGF0YSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9HZXRQcm9wZXJ0eVF1YWxpZmllclNldERhdGFAQ0NsYXNzUGFydEBAUUFFUEFFUEJHQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgKiBfX3RoaXNjYWxsIENXYmVtT2JqZWN0OjpHZXRQcm9wZXJ0eVN0cmluZyhsb25nKQ0KKz9HZXRQcm9wZXJ0eVN0cmluZ0BDV2JlbU9iamVjdEBAUUFFUEFWQ0NvbXByZXNzZWRTdHJpbmdAQEpAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6R2V0UHJvcGVydHlUeXBlKGNsYXNzIENQcm9wZXJ0eUluZm9ybWF0aW9uICosbG9uZyAqLGxvbmcgKikNCis/R2V0UHJvcGVydHlUeXBlQENDbGFzc1BhcnRAQFFBRUpQQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBAUEFKMUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpHZXRQcm9wZXJ0eVR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nICosbG9uZyAqKQ0KKz9HZXRQcm9wZXJ0eVR5cGVAQ0NsYXNzUGFydEBAUUFFSlBCR1BBSjFAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1N5c3RlbVByb3BlcnRpZXM6OkdldFByb3BlcnR5VHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcgKixsb25nICopDQorP0dldFByb3BlcnR5VHlwZUBDU3lzdGVtUHJvcGVydGllc0BAU0dKUEJHUEFKMUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OkdldFByb3BlcnR5VHlwZShjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqLGxvbmcgKixsb25nICopDQorP0dldFByb3BlcnR5VHlwZUBDV2JlbUNsYXNzQEBVQUVKUEFWQ1Byb3BlcnR5SW5mb3JtYXRpb25AQFBBSjFAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpHZXRQcm9wZXJ0eVR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nICosbG9uZyAqKQ0KKz9HZXRQcm9wZXJ0eVR5cGVAQ1diZW1DbGFzc0BAVUFFSlBCR1BBSjFAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpHZXRQcm9wZXJ0eVR5cGUoY2xhc3MgQ1Byb3BlcnR5SW5mb3JtYXRpb24gKixsb25nICosbG9uZyAqKQ0KKz9HZXRQcm9wZXJ0eVR5cGVAQ1diZW1JbnN0YW5jZUBAVUFFSlBBVkNQcm9wZXJ0eUluZm9ybWF0aW9uQEBQQUoxQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6R2V0UHJvcGVydHlUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyAqLGxvbmcgKikNCis/R2V0UHJvcGVydHlUeXBlQENXYmVtSW5zdGFuY2VAQFVBRUpQQkdQQUoxQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6R2V0UHJvcGVydHlWYWx1ZShzdHJ1Y3QgX3RhZ19XYmVtUHJvcGVydHlOYW1lICosbG9uZyx1bnNpZ25lZCBzaG9ydCAqICosc3RydWN0IHRhZ1ZBUklBTlQgKikNCis/R2V0UHJvcGVydHlWYWx1ZUBDV2JlbU9iamVjdEBAVUFHSlBBVV90YWdfV2JlbVByb3BlcnR5TmFtZUBASlBBUEFHUEFVdGFnVkFSSUFOVEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkdldFF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENWYXIgKixsb25nICosbG9uZyAqKQ0KKz9HZXRRdWFsaWZpZXJAQ0NsYXNzUGFydEBAUUFFSlBCR1BBVkNWYXJAQFBBSjJAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0luc3RhbmNlUGFydDo6R2V0UXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyAqLGNsYXNzIENUeXBlZFZhbHVlICosY2xhc3MgQ0Zhc3RIZWFwICogKixpbnQpDQorP0dldFF1YWxpZmllckBDSW5zdGFuY2VQYXJ0QEBRQUVKUEJHUEFKUEFWQ1R5cGVkVmFsdWVAQFBBUEFWQ0Zhc3RIZWFwQEBIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENJbnN0YW5jZVBhcnQ6OkdldFF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENWYXIgKixsb25nICosbG9uZyAqKQ0KKz9HZXRRdWFsaWZpZXJAQ0luc3RhbmNlUGFydEBAUUFFSlBCR1BBVkNWYXJAQFBBSjJAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1F1YWxpZmllclNldDo6R2V0UXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyAqLGNsYXNzIENUeXBlZFZhbHVlICosY2xhc3MgQ0Zhc3RIZWFwICogKixpbnQpDQorP0dldFF1YWxpZmllckBDUXVhbGlmaWVyU2V0QEBRQUVKUEJHUEFKUEFWQ1R5cGVkVmFsdWVAQFBBUEFWQ0Zhc3RIZWFwQEBIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXQ6OkdldFF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENWYXIgKixsb25nICosbG9uZyAqKQ0KKz9HZXRRdWFsaWZpZXJAQ1F1YWxpZmllclNldEBAUUFFSlBCR1BBVkNWYXJAQFBBSjJAWg0KKzsgcHVibGljOiBzdHJ1Y3QgQ1F1YWxpZmllciAqIF9fdGhpc2NhbGwgQ1F1YWxpZmllclNldDo6R2V0UXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0dldFF1YWxpZmllckBDUXVhbGlmaWVyU2V0QEBRQUVQQVVDUXVhbGlmaWVyQEBQQkdAWg0KKzsgcHVibGljOiBzdHJ1Y3QgQ1F1YWxpZmllciAqIF9fdGhpc2NhbGwgQ1F1YWxpZmllclNldDo6R2V0UXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50ICYpDQorP0dldFF1YWxpZmllckBDUXVhbGlmaWVyU2V0QEBRQUVQQVVDUXVhbGlmaWVyQEBQQkdBQUhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpHZXRRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nICosY2xhc3MgQ1R5cGVkVmFsdWUgKixjbGFzcyBDRmFzdEhlYXAgKiAqLGludCkNCis/R2V0UXVhbGlmaWVyQENXYmVtQ2xhc3NAQFVBRUpQQkdQQUpQQVZDVHlwZWRWYWx1ZUBAUEFQQVZDRmFzdEhlYXBAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpHZXRRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDVmFyICosbG9uZyAqLGxvbmcgKikNCis/R2V0UXVhbGlmaWVyQENXYmVtQ2xhc3NAQFVBRUpQQkdQQVZDVmFyQEBQQUoyQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6R2V0UXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyAqLGNsYXNzIENUeXBlZFZhbHVlICosY2xhc3MgQ0Zhc3RIZWFwICogKixpbnQpDQorP0dldFF1YWxpZmllckBDV2JlbUluc3RhbmNlQEBVQUVKUEJHUEFKUEFWQ1R5cGVkVmFsdWVAQFBBUEFWQ0Zhc3RIZWFwQEBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6R2V0UXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1ZhciAqLGxvbmcgKixsb25nICopDQorP0dldFF1YWxpZmllckBDV2JlbUluc3RhbmNlQEBVQUVKUEJHUEFWQ1ZhckBAUEFKMkBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbU9iamVjdDo6R2V0UXVhbGlmaWVyQXJyYXlJbmZvKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQsbG9uZyxsb25nICosdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRRdWFsaWZpZXJBcnJheUluZm9AQ1diZW1PYmplY3RAQFFBRUpQQkcwSEpQQUpQQUtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OkdldFF1YWxpZmllckFycmF5UmFuZ2UodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCxsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICosdm9pZCAqKQ0KKz9HZXRRdWFsaWZpZXJBcnJheVJhbmdlQENXYmVtT2JqZWN0QEBRQUVKUEJHMEhKS0tLUEFLMVBBWEBaDQorOyBwdWJsaWM6IHN0cnVjdCBDUXVhbGlmaWVyICogX190aGlzY2FsbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OkdldFF1YWxpZmllckxvY2FsbHkoY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmcgKikNCis/R2V0UXVhbGlmaWVyTG9jYWxseUBDQmFzaWNRdWFsaWZpZXJTZXRAQFFBRVBBVUNRdWFsaWZpZXJAQFBBVkNDb21wcmVzc2VkU3RyaW5nQEBAWg0KKzsgcHVibGljOiBzdHJ1Y3QgQ1F1YWxpZmllciAqIF9fdGhpc2NhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpHZXRRdWFsaWZpZXJMb2NhbGx5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0dldFF1YWxpZmllckxvY2FsbHlAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBRQUVQQVVDUXVhbGlmaWVyQEBQQkdAWg0KKzsgcHVibGljOiBzdHJ1Y3QgQ1F1YWxpZmllciAqIF9fdGhpc2NhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpHZXRRdWFsaWZpZXJMb2NhbGx5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50ICYpDQorP0dldFF1YWxpZmllckxvY2FsbHlAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBRQUVQQVVDUXVhbGlmaWVyQEBQQkdBQUhAWg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IENRdWFsaWZpZXIgKiBfX3N0ZGNhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpHZXRRdWFsaWZpZXJMb2NhbGx5KHVuc2lnbmVkIGNoYXIgKixjbGFzcyBDRmFzdEhlYXAgKixjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqKQ0KKz9HZXRRdWFsaWZpZXJMb2NhbGx5QENCYXNpY1F1YWxpZmllclNldEBAU0dQQVVDUXVhbGlmaWVyQEBQQUVQQVZDRmFzdEhlYXBAQFBBVkNDb21wcmVzc2VkU3RyaW5nQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IENRdWFsaWZpZXIgKiBfX3N0ZGNhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpHZXRRdWFsaWZpZXJMb2NhbGx5KHVuc2lnbmVkIGNoYXIgKixjbGFzcyBDRmFzdEhlYXAgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9HZXRRdWFsaWZpZXJMb2NhbGx5QENCYXNpY1F1YWxpZmllclNldEBAU0dQQVVDUXVhbGlmaWVyQEBQQUVQQVZDRmFzdEhlYXBAQFBCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgQ1F1YWxpZmllciAqIF9fc3RkY2FsbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OkdldFF1YWxpZmllckxvY2FsbHkodW5zaWduZWQgY2hhciAqLGNsYXNzIENGYXN0SGVhcCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50ICYpDQorP0dldFF1YWxpZmllckxvY2FsbHlAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBTR1BBVUNRdWFsaWZpZXJAQFBBRVBBVkNGYXN0SGVhcEBAUEJHQUFIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUNsYXNzOjpHZXRRdWFsaWZpZXJTZXQoc3RydWN0IElXYmVtUXVhbGlmaWVyU2V0ICogKikNCis/R2V0UXVhbGlmaWVyU2V0QENXYmVtQ2xhc3NAQFVBR0pQQVBBVUlXYmVtUXVhbGlmaWVyU2V0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OkdldFF1YWxpZmllclNldChzdHJ1Y3QgSVdiZW1RdWFsaWZpZXJTZXQgKiAqKQ0KKz9HZXRRdWFsaWZpZXJTZXRAQ1diZW1JbnN0YW5jZUBAVUFHSlBBUEFVSVdiZW1RdWFsaWZpZXJTZXRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXRMaXN0OjpHZXRRdWFsaWZpZXJTZXREYXRhKGludCkNCis/R2V0UXVhbGlmaWVyU2V0RGF0YUBDUXVhbGlmaWVyU2V0TGlzdEBAUUFFUEFFSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyICogX19zdGRjYWxsIENRdWFsaWZpZXJTZXRMaXN0OjpHZXRRdWFsaWZpZXJTZXREYXRhKHVuc2lnbmVkIGNoYXIgKixpbnQpDQorP0dldFF1YWxpZmllclNldERhdGFAQ1F1YWxpZmllclNldExpc3RAQFNHUEFFUEFFSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ0luc3RhbmNlUGFydDo6R2V0UXVhbGlmaWVyU2V0TGlzdFN0YXJ0KHZvaWQpDQorP0dldFF1YWxpZmllclNldExpc3RTdGFydEBDSW5zdGFuY2VQYXJ0QEBVQUVQQUVYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkdldFF1YWxpZmllclNldFN0YXJ0KHZvaWQpDQorP0dldFF1YWxpZmllclNldFN0YXJ0QENDbGFzc1BhcnRAQFVBRVBBRVhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ0luc3RhbmNlUFFTQ29udGFpbmVyOjpHZXRRdWFsaWZpZXJTZXRTdGFydCh2b2lkKQ0KKz9HZXRRdWFsaWZpZXJTZXRTdGFydEBDSW5zdGFuY2VQUVNDb250YWluZXJAQFVBRVBBRVhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ0luc3RhbmNlUGFydDo6R2V0UXVhbGlmaWVyU2V0U3RhcnQodm9pZCkNCis/R2V0UXVhbGlmaWVyU2V0U3RhcnRAQ0luc3RhbmNlUGFydEBAVUFFUEFFWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyOjpHZXRRdWFsaWZpZXJTZXRTdGFydCh2b2lkKQ0KKz9HZXRRdWFsaWZpZXJTZXRTdGFydEBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyQEBVQUVQQUVYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1VudHlwZWRBcnJheTo6R2V0UmFuZ2UoY2xhc3MgQ1B0clNvdXJjZSAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBDRmFzdEhlYXAgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICosdm9pZCAqKQ0KKz9HZXRSYW5nZUBDVW50eXBlZEFycmF5QEBTR0pQQVZDUHRyU291cmNlQEBLS1BBVkNGYXN0SGVhcEBAS0tLUEFLUEFYQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmc6OkdldFJhd0RhdGEodm9pZCljb25zdCANCis/R2V0UmF3RGF0YUBDQ29tcHJlc3NlZFN0cmluZ0BAUUJFUEFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENGYXN0SGVhcDo6R2V0UmVhbExlbmd0aCh2b2lkKQ0KKz9HZXRSZWFsTGVuZ3RoQENGYXN0SGVhcEBAUUFFS1haDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDV2JlbVJlZnJlc2hpbmdTdmM6OkdldFJlZnJNZ3Ioc3RydWN0IF9JV2JlbVJlZnJlc2hlck1nciAqICopDQorP0dldFJlZnJNZ3JAQ1diZW1SZWZyZXNoaW5nU3ZjQEBJQUVKUEFQQVVfSVdiZW1SZWZyZXNoZXJNZ3JAQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBDUXVhbGlmaWVyICogX190aGlzY2FsbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OkdldFJlZ3VsYXJRdWFsaWZpZXJMb2NhbGx5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0dldFJlZ3VsYXJRdWFsaWZpZXJMb2NhbGx5QENCYXNpY1F1YWxpZmllclNldEBAUUFFUEFVQ1F1YWxpZmllckBAUEJHQFoNCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBDUXVhbGlmaWVyICogX19zdGRjYWxsIENCYXNpY1F1YWxpZmllclNldDo6R2V0UmVndWxhclF1YWxpZmllckxvY2FsbHkodW5zaWduZWQgY2hhciAqLGNsYXNzIENGYXN0SGVhcCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0dldFJlZ3VsYXJRdWFsaWZpZXJMb2NhbGx5QENCYXNpY1F1YWxpZmllclNldEBAU0dQQVVDUXVhbGlmaWVyQEBQQUVQQVZDRmFzdEhlYXBAQFBCR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OkdldFJlbFBhdGgoaW50KQ0KKz9HZXRSZWxQYXRoQENXYmVtQ2xhc3NAQFVBRVBBR0hAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpHZXRSZWxQYXRoKGludCkNCis/R2V0UmVsUGF0aEBDV2JlbUluc3RhbmNlQEBVQUVQQUdIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtT2JqZWN0OjpHZXRSZWxQYXRoKGNsYXNzIENWYXIgKikNCis/R2V0UmVsUGF0aEBDV2JlbU9iamVjdEBAUUFFSlBBVkNWYXJAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtUmVmcmVzaGluZ1N2Yzo6R2V0UmVtb3RlUmVmcmVzaGVyKHN0cnVjdCBfV0JFTV9SRUZSRVNIRVJfSUQgKixsb25nLHVuc2lnbmVkIGxvbmcsc3RydWN0IElXYmVtUmVtb3RlUmVmcmVzaGVyICogKixzdHJ1Y3QgX0dVSUQgKix1bnNpZ25lZCBsb25nICopDQorP0dldFJlbW90ZVJlZnJlc2hlckBDV2JlbVJlZnJlc2hpbmdTdmNAQE1BRUpQQVVfV0JFTV9SRUZSRVNIRVJfSURAQEpLUEFQQVVJV2JlbVJlbW90ZVJlZnJlc2hlckBAUEFVX0dVSURAQFBBS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1SZWZyZXNoaW5nU3ZjOjpYV2JlbVJlZnJTdmM6OkdldFJlbW90ZVJlZnJlc2hlcihzdHJ1Y3QgX1dCRU1fUkVGUkVTSEVSX0lEICosbG9uZyx1bnNpZ25lZCBsb25nLHN0cnVjdCBJV2JlbVJlbW90ZVJlZnJlc2hlciAqICosc3RydWN0IF9HVUlEICosdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRSZW1vdGVSZWZyZXNoZXJAWFdiZW1SZWZyU3ZjQENXYmVtUmVmcmVzaGluZ1N2Y0BAVUFHSlBBVV9XQkVNX1JFRlJFU0hFUl9JREBASktQQVBBVUlXYmVtUmVtb3RlUmVmcmVzaGVyQEBQQVVfR1VJREBAUEFLQFoNCis7IHB1YmxpYzogY2xhc3MgQ0Jhc2ljUXVhbGlmaWVyU2V0ICogX190aGlzY2FsbCBDTWV0aG9kUXVhbGlmaWVyU2V0Q29udGFpbmVyOjpHZXRTZWNvbmRhcnlTZXQodm9pZCkNCis/R2V0U2Vjb25kYXJ5U2V0QENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXJAQFFBRVBBVkNCYXNpY1F1YWxpZmllclNldEBAWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENDb21wcmVzc2VkU3RyaW5nTGlzdDo6R2V0U2VwYXJhdG9yTGVuZ3RoKHZvaWQpDQorP0dldFNlcGFyYXRvckxlbmd0aEBDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQEtHS1haDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbU9iamVjdDo6R2V0U2VydmVyKGNsYXNzIENWYXIgKikNCis/R2V0U2VydmVyQENXYmVtT2JqZWN0QEBRQUVKUEFWQ1ZhckBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtT2JqZWN0OjpHZXRTZXJ2ZXJBbmROYW1lc3BhY2UoY2xhc3MgQ1ZhciAqKQ0KKz9HZXRTZXJ2ZXJBbmROYW1lc3BhY2VAQ1diZW1PYmplY3RAQFFBRUpQQVZDVmFyQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6R2V0U2VydmVyUHJpbmNpcGFsTmFtZSh2b2lkKQ0KKz9HZXRTZXJ2ZXJQcmluY2lwYWxOYW1lQENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFFBRVBBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTWV0aG9kRGVzY3JpcHRpb246OkdldFNpZyhpbnQpDQorP0dldFNpZ0BDTWV0aG9kRGVzY3JpcHRpb25AQFFBRUtIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENNZXRob2RQYXJ0OjpHZXRTaWduYXR1cmUoaW50LGludCxjbGFzcyBDV2JlbU9iamVjdCAqICopDQorP0dldFNpZ25hdHVyZUBDTWV0aG9kUGFydEBASUFFWEhIUEFQQVZDV2JlbU9iamVjdEBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT46OkdldFNpemUodm9pZCljb25zdCANCis/R2V0U2l6ZUA/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+OjpHZXRTaXplKHZvaWQpY29uc3QgDQorP0dldFNpemVAPyRDUG9pbnRlckFycmF5QFZDV21pVGV4dFNvdXJjZUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNXbWlUZXh0U291cmNlQEBAQFZDRmxleEFycmF5QEBAQFFCRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpHZXRTb3VyY2UodW5zaWduZWQgc2hvcnQgKiAqKQ0KKz9HZXRTb3VyY2VAQ1diZW1PYmplY3RAQFVBR0pQQVBBR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENCYXNpY1F1YWxpZmllclNldDo6R2V0U3RhcnQodm9pZCkNCis/R2V0U3RhcnRAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBRQUVQQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDQ2xhc3NBbmRNZXRob2RzOjpHZXRTdGFydCh2b2lkKQ0KKz9HZXRTdGFydEBDQ2xhc3NBbmRNZXRob2RzQEBRQUVQQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpHZXRTdGFydCh2b2lkKQ0KKz9HZXRTdGFydEBDQ2xhc3NQYXJ0QEBRQUVQQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDQ29tcHJlc3NlZFN0cmluZzo6R2V0U3RhcnQodm9pZCkNCis/R2V0U3RhcnRAQ0NvbXByZXNzZWRTdHJpbmdAQFFBRVBBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENDb21wcmVzc2VkU3RyaW5nTGlzdDo6R2V0U3RhcnQodm9pZCkNCis/R2V0U3RhcnRAQ0NvbXByZXNzZWRTdHJpbmdMaXN0QEBRQUVQQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDRGF0YVRhYmxlOjpHZXRTdGFydCh2b2lkKQ0KKz9HZXRTdGFydEBDRGF0YVRhYmxlQEBRQUVQQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDRGVjb3JhdGlvblBhcnQ6OkdldFN0YXJ0KHZvaWQpDQorP0dldFN0YXJ0QENEZWNvcmF0aW9uUGFydEBAUUFFUEFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ0VtYmVkZGVkT2JqZWN0OjpHZXRTdGFydCh2b2lkKQ0KKz9HZXRTdGFydEBDRW1iZWRkZWRPYmplY3RAQFFBRVBBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENGYXN0SGVhcDo6R2V0U3RhcnQodm9pZCkNCis/R2V0U3RhcnRAQ0Zhc3RIZWFwQEBRQUVQQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0OjpHZXRTdGFydCh2b2lkKQ0KKz9HZXRTdGFydEBDSW5zdGFuY2VQYXJ0QEBRQUVQQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDTWV0aG9kUGFydDo6R2V0U3RhcnQodm9pZCkNCis/R2V0U3RhcnRAQ01ldGhvZFBhcnRAQFFBRVBBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENQcm9wZXJ0eUxvb2t1cFRhYmxlOjpHZXRTdGFydCh2b2lkKQ0KKz9HZXRTdGFydEBDUHJvcGVydHlMb29rdXBUYWJsZUBAUUFFUEFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ1F1YWxpZmllclNldExpc3Q6OkdldFN0YXJ0KHZvaWQpDQorP0dldFN0YXJ0QENRdWFsaWZpZXJTZXRMaXN0QEBRQUVQQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpHZXRTdGFydCh2b2lkKQ0KKz9HZXRTdGFydEBDV2JlbUluc3RhbmNlQEBRQUVQQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDV2JlbU9iamVjdDo6R2V0U3RhcnQodm9pZCkNCis/R2V0U3RhcnRAQ1diZW1PYmplY3RAQFFBRVBBRVhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDb21wcmVzc2VkU3RyaW5nOjpHZXRTdHJpbmdMZW5ndGgodm9pZCljb25zdCANCis/R2V0U3RyaW5nTGVuZ3RoQENDb21wcmVzc2VkU3RyaW5nQEBRQkVIWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENDbGFzc0FuZE1ldGhvZHM6OkdldFN1cGVyY2xhc3NOYW1lKGNsYXNzIFdTdHJpbmcgJix1bnNpZ25lZCBjaGFyICopDQorP0dldFN1cGVyY2xhc3NOYW1lQENDbGFzc0FuZE1ldGhvZHNAQFNHSkFBVldTdHJpbmdAQFBBRUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpHZXRTdXBlcmNsYXNzTmFtZShjbGFzcyBDVmFyICopDQorP0dldFN1cGVyY2xhc3NOYW1lQENDbGFzc1BhcnRAQFFBRUpQQVZDVmFyQEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tcHJlc3NlZFN0cmluZyAqIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6R2V0U3VwZXJjbGFzc05hbWUodm9pZCkNCis/R2V0U3VwZXJjbGFzc05hbWVAQ0NsYXNzUGFydEBAUUFFUEFWQ0NvbXByZXNzZWRTdHJpbmdAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OkdldFN1cGVyY2xhc3NOYW1lKGNsYXNzIENWYXIgKikNCis/R2V0U3VwZXJjbGFzc05hbWVAQ1diZW1DbGFzc0BAVUFFSlBBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkdldFN1cGVyY2xhc3NOYW1lKGNsYXNzIENWYXIgKikNCis/R2V0U3VwZXJjbGFzc05hbWVAQ1diZW1JbnN0YW5jZUBAVUFFSlBBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBDVHlwZTo6R2V0U3ludGF4KHZvaWQpDQorP0dldFN5bnRheEBDVHlwZUBAUUFFUEFHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0ICogX19zdGRjYWxsIENUeXBlOjpHZXRTeW50YXgodW5zaWduZWQgbG9uZykNCis/R2V0U3ludGF4QENUeXBlQEBTR1BBR0tAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OkdldFN5c3RlbVByb3BlcnR5KGludCxjbGFzcyBDVmFyICopDQorP0dldFN5c3RlbVByb3BlcnR5QENXYmVtT2JqZWN0QEBRQUVKSFBBVkNWYXJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbU9iamVjdDo6R2V0U3lzdGVtUHJvcGVydHlCeU5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDVmFyICopDQorP0dldFN5c3RlbVByb3BlcnR5QnlOYW1lQENXYmVtT2JqZWN0QEBRQUVKUEJHUEFWQ1ZhckBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENCYXNpY1F1YWxpZmllclNldDo6R2V0VGV4dChsb25nLGNsYXNzIFdTdHJpbmcgJikNCis/R2V0VGV4dEBDQmFzaWNRdWFsaWZpZXJTZXRAQFFBRUpKQUFWV1N0cmluZ0BAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENCYXNpY1F1YWxpZmllclNldDo6R2V0VGV4dCh1bnNpZ25lZCBjaGFyICosY2xhc3MgQ0Zhc3RIZWFwICosbG9uZyxjbGFzcyBXU3RyaW5nICYpDQorP0dldFRleHRAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBTR0pQQUVQQVZDRmFzdEhlYXBAQEpBQVZXU3RyaW5nQEBAWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBDSW50ZXJuYWxTdHJpbmc6OkdldFRleHQodm9pZCljb25zdCANCis/R2V0VGV4dEBDSW50ZXJuYWxTdHJpbmdAQFFCRVBCRFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1dtaU9iamVjdFRleHRTcmM6OlhPYmplY3RUZXh0U3JjOjpHZXRUZXh0KGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKix1bnNpZ25lZCBsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKix1bnNpZ25lZCBzaG9ydCAqICopDQorP0dldFRleHRAWE9iamVjdFRleHRTcmNAQ1dtaU9iamVjdFRleHRTcmNAQFVBR0pKUEFVSVdiZW1DbGFzc09iamVjdEBAS1BBVUlXYmVtQ29udGV4dEBAUEFQQUdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtQ2FsbFNlY3VyaXR5OjpHZXRUaHJlYWRTZWN1cml0eShlbnVtIHRhZ19XTUlfVEhSRUFEX1NFQ1VSSVRZX09SSUdJTixzdHJ1Y3QgX0lXbWlUaHJlYWRTZWNIYW5kbGUgKiAqKQ0KKz9HZXRUaHJlYWRTZWN1cml0eUBDV2JlbUNhbGxTZWN1cml0eUBAVUFHSlc0dGFnX1dNSV9USFJFQURfU0VDVVJJVFlfT1JJR0lOQEBQQVBBVV9JV21pVGhyZWFkU2VjSGFuZGxlQEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlICogX190aGlzY2FsbCBDV2JlbUNhbGxTZWN1cml0eTo6R2V0VGhyZWFkU2VjdXJpdHlIYW5kbGUodm9pZCkNCis/R2V0VGhyZWFkU2VjdXJpdHlIYW5kbGVAQ1diZW1DYWxsU2VjdXJpdHlAQFFBRVBBVkNXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3RoaXNjYWxsIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGU6OkdldFRocmVhZFRva2VuKHZvaWQpDQorP0dldFRocmVhZFRva2VuQENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFFBRVBBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6R2V0VG9rZW4odm9pZCAqICopDQorP0dldFRva2VuQENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFVBR0pQQVBBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6R2V0VG9rZW5PcmlnaW4oZW51bSB0YWdfV01JX1RIUkVBRF9TRUNVUklUWV9PUklHSU4gKikNCis/R2V0VG9rZW5PcmlnaW5AQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZUBAVUFHSlBBVzR0YWdfV01JX1RIUkVBRF9TRUNVUklUWV9PUklHSU5AQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpHZXRUb3RhbFJlYWxMZW5ndGgodm9pZCkNCis/R2V0VG90YWxSZWFsTGVuZ3RoQENDbGFzc1BhcnRAQFFBRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0luc3RhbmNlUGFydDo6R2V0VG90YWxSZWFsTGVuZ3RoKHZvaWQpDQorP0dldFRvdGFsUmVhbExlbmd0aEBDSW5zdGFuY2VQYXJ0QEBRQUVLWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkdldFRyYW5zZmVyQXJyYXlCbG9iKGxvbmcsdW5zaWduZWQgY2hhciAqICosbG9uZyAqKQ0KKz9HZXRUcmFuc2ZlckFycmF5QmxvYkBDV2JlbUluc3RhbmNlQEBRQUVKSlBBUEFFUEFKQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkdldFRyYW5zZmVyQXJyYXlCbG9iU2l6ZSh2b2lkKQ0KKz9HZXRUcmFuc2ZlckFycmF5QmxvYlNpemVAQ1diZW1JbnN0YW5jZUBAUUFFSlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDV2JlbUluc3RhbmNlOjpHZXRUcmFuc2ZlckFycmF5SGVhZGVyU2l6ZSh2b2lkKQ0KKz9HZXRUcmFuc2ZlckFycmF5SGVhZGVyU2l6ZUBDV2JlbUluc3RhbmNlQEBTR0pYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6R2V0VHJhbnNmZXJCbG9iKGxvbmcgKixsb25nICosdW5zaWduZWQgY2hhciAqICopDQorP0dldFRyYW5zZmVyQmxvYkBDV2JlbUluc3RhbmNlQEBRQUVKUEFKMFBBUEFFQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkdldFRyYW5zZmVyQmxvYlNpemUodm9pZCkNCis/R2V0VHJhbnNmZXJCbG9iU2l6ZUBDV2JlbUluc3RhbmNlQEBRQUVKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6R2V0VW5tYXJzaGFsQ2xhc3Moc3RydWN0IF9HVUlEIGNvbnN0ICYsdm9pZCAqLHVuc2lnbmVkIGxvbmcsdm9pZCAqLHVuc2lnbmVkIGxvbmcsc3RydWN0IF9HVUlEICopDQorP0dldFVubWFyc2hhbENsYXNzQENXYmVtT2JqZWN0QEBVQUdKQUJVX0dVSURAQFBBWEsxS1BBVTJAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENGYXN0SGVhcDo6R2V0VXNlZExlbmd0aCh2b2lkKQ0KKz9HZXRVc2VkTGVuZ3RoQENGYXN0SGVhcEBAUUFFS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1DYWxsU2VjdXJpdHk6OkdldFVzZXIodW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIHNob3J0ICopDQorP0dldFVzZXJAQ1diZW1DYWxsU2VjdXJpdHlAQFVBR0pQQUtQQUdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGU6OkdldFVzZXIodW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIHNob3J0ICopDQorP0dldFVzZXJAQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZUBAVUFHSlBBS1BBR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1DYWxsU2VjdXJpdHk6OkdldFVzZXJTaWQodW5zaWduZWQgbG9uZyAqLHZvaWQgKikNCis/R2V0VXNlclNpZEBDV2JlbUNhbGxTZWN1cml0eUBAVUFHSlBBS1BBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZTo6R2V0VXNlclNpZCh1bnNpZ25lZCBsb25nICosdm9pZCAqKQ0KKz9HZXRVc2VyU2lkQENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFVBR0pQQUtQQVhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENUeXBlOjpHZXRWQVJUWVBFKHZvaWQpDQorP0dldFZBUlRZUEVAQ1R5cGVAQFFBRUdYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19zdGRjYWxsIENUeXBlOjpHZXRWQVJUWVBFKHVuc2lnbmVkIGxvbmcpDQorP0dldFZBUlRZUEVAQ1R5cGVAQFNHR0tAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgKiBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OkdldFZhbHVlVGV4dChsb25nLGNsYXNzIENWYXIgJix1bnNpZ25lZCBsb25nKQ0KKz9HZXRWYWx1ZVRleHRAQ1diZW1PYmplY3RAQFNHUEFHSkFBVkNWYXJAQEtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0xpbWl0YXRpb25NYXBwaW5nOjpHZXRWdGFibGVMZW5ndGgodm9pZCkNCis/R2V0VnRhYmxlTGVuZ3RoQENMaW1pdGF0aW9uTWFwcGluZ0BAUUFFS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgc3RydWN0IElVbmtub3duICogX190aGlzY2FsbCBDQ2xhc3NBbmRNZXRob2RzOjpHZXRXYmVtT2JqZWN0VW5rbm93bih2b2lkKQ0KKz9HZXRXYmVtT2JqZWN0VW5rbm93bkBDQ2xhc3NBbmRNZXRob2RzQEBVQUVQQVVJVW5rbm93bkBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBzdHJ1Y3QgSVVua25vd24gKiBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkdldFdiZW1PYmplY3RVbmtub3duKHZvaWQpDQorP0dldFdiZW1PYmplY3RVbmtub3duQENDbGFzc1BhcnRAQFVBRVBBVUlVbmtub3duQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCBJVW5rbm93biAqIF9fdGhpc2NhbGwgQ0luc3RhbmNlUFFTQ29udGFpbmVyOjpHZXRXYmVtT2JqZWN0VW5rbm93bih2b2lkKQ0KKz9HZXRXYmVtT2JqZWN0VW5rbm93bkBDSW5zdGFuY2VQUVNDb250YWluZXJAQFVBRVBBVUlVbmtub3duQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCBJVW5rbm93biAqIF9fdGhpc2NhbGwgQ0luc3RhbmNlUGFydDo6R2V0V2JlbU9iamVjdFVua25vd24odm9pZCkNCis/R2V0V2JlbU9iamVjdFVua25vd25AQ0luc3RhbmNlUGFydEBAVUFFUEFVSVVua25vd25AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBJVW5rbm93biAqIF9fdGhpc2NhbGwgQ01ldGhvZFBhcnQ6OkdldFdiZW1PYmplY3RVbmtub3duKHZvaWQpDQorP0dldFdiZW1PYmplY3RVbmtub3duQENNZXRob2RQYXJ0QEBRQUVQQVVJVW5rbm93bkBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBzdHJ1Y3QgSVVua25vd24gKiBfX3RoaXNjYWxsIENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXI6OkdldFdiZW1PYmplY3RVbmtub3duKHZvaWQpDQorP0dldFdiZW1PYmplY3RVbmtub3duQENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXJAQFVBRVBBVUlVbmtub3duQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSVVua25vd24gKiBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXRMaXN0OjpHZXRXYmVtT2JqZWN0VW5rbm93bih2b2lkKQ0KKz9HZXRXYmVtT2JqZWN0VW5rbm93bkBDUXVhbGlmaWVyU2V0TGlzdEBAUUFFUEFVSVVua25vd25AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBJVW5rbm93biAqIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6R2V0V2JlbU9iamVjdFVua25vd24odm9pZCkNCis/R2V0V2JlbU9iamVjdFVua25vd25AQ1diZW1DbGFzc0BAUUFFUEFVSVVua25vd25AQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgc3RydWN0IElVbmtub3duICogX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpHZXRXYmVtT2JqZWN0VW5rbm93bih2b2lkKQ0KKz9HZXRXYmVtT2JqZWN0VW5rbm93bkBDV2JlbUluc3RhbmNlQEBVQUVQQVVJVW5rbm93bkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpIYXNMb2NhbFF1YWxpZmllcnModW5zaWduZWQgY2hhciAqKQ0KKz9IYXNMb2NhbFF1YWxpZmllcnNAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBTR0hQQUVAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDV2JlbU9iamVjdDo6SGFzUmVmcyh2b2lkKQ0KKz9IYXNSZWZzQENXYmVtT2JqZWN0QEBRQUVIWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUNhbGxTZWN1cml0eTo6SW1wZXJzb25hdGVDbGllbnQodm9pZCkNCis/SW1wZXJzb25hdGVDbGllbnRAQ1diZW1DYWxsU2VjdXJpdHlAQFVBR0pYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpJbmNyZW1lbnRMZW5ndGgodW5zaWduZWQgbG9uZykNCis/SW5jcmVtZW50TGVuZ3RoQENCYXNpY1F1YWxpZmllclNldEBAUUFFWEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpJbmhlcml0c0Zyb20odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/SW5oZXJpdHNGcm9tQENDbGFzc1BhcnRAQFFBRUhQQkdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpJbmhlcml0c0Zyb20odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/SW5oZXJpdHNGcm9tQENXYmVtT2JqZWN0QEBVQUdKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtRmV0Y2hSZWZyTWdyOjpJbml0KHN0cnVjdCBfSVdtaVByb3ZTUyAqLHN0cnVjdCBJV2JlbVNlcnZpY2VzICopDQorP0luaXRAQ1diZW1GZXRjaFJlZnJNZ3JAQFFBRUpQQVVfSVdtaVByb3ZTU0BAUEFVSVdiZW1TZXJ2aWNlc0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUZldGNoUmVmck1ncjo6WEZldGNoUmVmck1ncjo6SW5pdChzdHJ1Y3QgX0lXbWlQcm92U1MgKixzdHJ1Y3QgSVdiZW1TZXJ2aWNlcyAqKQ0KKz9Jbml0QFhGZXRjaFJlZnJNZ3JAQ1diZW1GZXRjaFJlZnJNZ3JAQFVBR0pQQVVfSVdtaVByb3ZTU0BAUEFVSVdiZW1TZXJ2aWNlc0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OkluaXRFbXB0eShpbnQsaW50KQ0KKz9Jbml0RW1wdHlAQ1diZW1DbGFzc0BAUUFFSkhIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkluaXRFbXB0eUluc3RhbmNlKGNsYXNzIENDbGFzc1BhcnQgJix1bnNpZ25lZCBjaGFyICosaW50LGNsYXNzIENEZWNvcmF0aW9uUGFydCAqKQ0KKz9Jbml0RW1wdHlJbnN0YW5jZUBDV2JlbUluc3RhbmNlQEBRQUVKQUFWQ0NsYXNzUGFydEBAUEFFSFBBVkNEZWNvcmF0aW9uUGFydEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OkluaXROZXcoY2xhc3MgQ1diZW1DbGFzcyAqLGludCxjbGFzcyBDRGVjb3JhdGlvblBhcnQgKikNCis/SW5pdE5ld0BDV2JlbUluc3RhbmNlQEBRQUVKUEFWQ1diZW1DbGFzc0BASFBBVkNEZWNvcmF0aW9uUGFydEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OkluaXRQcm9wZXJ0eVF1YWxpZmllclNldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENDbGFzc1Byb3BlcnR5UXVhbGlmaWVyU2V0ICopDQorP0luaXRQcm9wZXJ0eVF1YWxpZmllclNldEBDQ2xhc3NQYXJ0QEBRQUVKUEJHUEFWQ0NsYXNzUHJvcGVydHlRdWFsaWZpZXJTZXRAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDS25vd25TdHJpbmdUYWJsZTo6SW5pdGlhbGl6ZSh2b2lkKQ0KKz9Jbml0aWFsaXplQENLbm93blN0cmluZ1RhYmxlQEBTR1hYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENXYmVtUmVmcmVzaGluZ1N2Yzo6SW5pdGlhbGl6ZSh2b2lkKQ0KKz9Jbml0aWFsaXplQENXYmVtUmVmcmVzaGluZ1N2Y0BAVUFFSFhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpJbml0aWFsaXplUHJvcFF1YWxpZmllclNldChjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqLGNsYXNzIENJbnN0YW5jZVByb3BlcnR5UXVhbGlmaWVyU2V0ICYpDQorP0luaXRpYWxpemVQcm9wUXVhbGlmaWVyU2V0QENXYmVtSW5zdGFuY2VAQElBRUpQQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBAQUFWQ0luc3RhbmNlUHJvcGVydHlRdWFsaWZpZXJTZXRAQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpJbml0aWFsaXplUHJvcFF1YWxpZmllclNldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENJbnN0YW5jZVByb3BlcnR5UXVhbGlmaWVyU2V0ICYpDQorP0luaXRpYWxpemVQcm9wUXVhbGlmaWVyU2V0QENXYmVtSW5zdGFuY2VAQElBRUpQQkdBQVZDSW5zdGFuY2VQcm9wZXJ0eVF1YWxpZmllclNldEBAQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0sY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+LGNsYXNzIENGbGV4QXJyYXk+OjpJbnNlcnRBdChpbnQsY2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0gKikNCis/SW5zZXJ0QXRAPyRDUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFZDRmxleEFycmF5QEBAQFFBRV9OSFBBVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT46Okluc2VydEF0KGludCxjbGFzcyBDV21pVGV4dFNvdXJjZSAqKQ0KKz9JbnNlcnRBdEA/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBAUUFFX05IUEFWQ1dtaVRleHRTb3VyY2VAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDUHJvcGVydHlMb29rdXBUYWJsZTo6SW5zZXJ0UHJvcGVydHkoc3RydWN0IENQcm9wZXJ0eUxvb2t1cCBjb25zdCAmLGludCAmKQ0KKz9JbnNlcnRQcm9wZXJ0eUBDUHJvcGVydHlMb29rdXBUYWJsZUBAUUFFSkFCVUNQcm9wZXJ0eUxvb2t1cEBAQUFIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENQcm9wZXJ0eUxvb2t1cFRhYmxlOjpJbnNlcnRQcm9wZXJ0eSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsaW50ICYpDQorP0luc2VydFByb3BlcnR5QENQcm9wZXJ0eUxvb2t1cFRhYmxlQEBRQUVKUEJHS0FBSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDUXVhbGlmaWVyU2V0TGlzdDo6SW5zZXJ0UXVhbGlmaWVyU2V0KGludCkNCis/SW5zZXJ0UXVhbGlmaWVyU2V0QENRdWFsaWZpZXJTZXRMaXN0QEBRQUVKSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OklzQWJzdHJhY3Qodm9pZCkNCis/SXNBYnN0cmFjdEBDQ2xhc3NQYXJ0QEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6SXNBYnN0cmFjdCh2b2lkKQ0KKz9Jc0Fic3RyYWN0QENXYmVtQ2xhc3NAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpJc0FtZW5kbWVudCh2b2lkKQ0KKz9Jc0FtZW5kbWVudEBDQ2xhc3NQYXJ0QEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6SXNBbWVuZG1lbnQodm9pZCkNCis/SXNBbWVuZG1lbnRAQ1diZW1DbGFzc0BAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENUeXBlOjpJc0FycmF5KHZvaWQpDQorP0lzQXJyYXlAQ1R5cGVAQFFBRUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDVHlwZTo6SXNBcnJheSh1bnNpZ25lZCBsb25nKQ0KKz9Jc0FycmF5QENUeXBlQEBTR0hLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtT2JqZWN0OjpJc0FycmF5UHJvcGVydHlIYW5kbGUobG9uZyxsb25nICosdW5zaWduZWQgbG9uZyAqKQ0KKz9Jc0FycmF5UHJvcGVydHlIYW5kbGVAQ1diZW1PYmplY3RAQFFBRUpKUEFKUEFLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENVbnR5cGVkQXJyYXk6OklzQXJyYXlWYWxpZChjbGFzcyBDVHlwZSxjbGFzcyBDRmFzdEhlYXAgKikNCis/SXNBcnJheVZhbGlkQENVbnR5cGVkQXJyYXlAQFFBRUpWQ1R5cGVAQFBBVkNGYXN0SGVhcEBAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0NvbXByZXNzZWRTdHJpbmc6OklzQXNjaWlhYmxlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0lzQXNjaWlhYmxlQENDb21wcmVzc2VkU3RyaW5nQEBLR0hQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpJc0Fzc29jaWF0aW9uKHZvaWQpDQorP0lzQXNzb2NpYXRpb25AQ0NsYXNzUGFydEBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OklzQXV0b2Nvb2sodm9pZCkNCis/SXNBdXRvY29va0BDQ2xhc3NQYXJ0QEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6SXNDaGlsZE9mKGNsYXNzIENXYmVtQ2xhc3MgKikNCis/SXNDaGlsZE9mQENXYmVtQ2xhc3NAQFFBRUhQQVYxQEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OklzQ2xhc3NQYXJ0QXZhaWxhYmxlKHZvaWQpDQorP0lzQ2xhc3NQYXJ0QXZhaWxhYmxlQENXYmVtSW5zdGFuY2VAQElBRUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpJc0NsYXNzUGFydEludGVybmFsKHZvaWQpDQorP0lzQ2xhc3NQYXJ0SW50ZXJuYWxAQ1diZW1JbnN0YW5jZUBASUFFSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OklzQ2xhc3NQYXJ0U2hhcmVkKHZvaWQpDQorP0lzQ2xhc3NQYXJ0U2hhcmVkQENXYmVtSW5zdGFuY2VAQElBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRGVjb3JhdGlvblBhcnQ6OklzQ2xpZW50T25seSh2b2lkKQ0KKz9Jc0NsaWVudE9ubHlAQ0RlY29yYXRpb25QYXJ0QEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OklzQ2xpZW50T25seSh2b2lkKQ0KKz9Jc0NsaWVudE9ubHlAQ1diZW1PYmplY3RAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUXVhbGlmaWVyU2V0OjpJc0NvbXBsZXRlKHZvaWQpDQorP0lzQ29tcGxldGVAQ1F1YWxpZmllclNldEBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OklzQ29tcHJlc3NlZCh2b2lkKQ0KKz9Jc0NvbXByZXNzZWRAQ0NsYXNzUGFydEBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OklzQ29tcHJlc3NlZCh2b2lkKQ0KKz9Jc0NvbXByZXNzZWRAQ1diZW1DbGFzc0BAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENEZWNvcmF0aW9uUGFydDo6SXNEZWNvcmF0ZWQodm9pZCkNCis/SXNEZWNvcmF0ZWRAQ0RlY29yYXRpb25QYXJ0QEBRQUVIWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6SXNEZWNvcmF0aW9uUGFydEF2YWlsYWJsZSh2b2lkKQ0KKz9Jc0RlY29yYXRpb25QYXJ0QXZhaWxhYmxlQENXYmVtSW5zdGFuY2VAQElBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRGF0YVRhYmxlOjpJc0RlZmF1bHQoaW50KQ0KKz9Jc0RlZmF1bHRAQ0RhdGFUYWJsZUBAUUFFSEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpJc0R5bmFtaWModm9pZCkNCis/SXNEeW5hbWljQENDbGFzc1BhcnRAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpJc0R5bmFtaWModm9pZCkNCis/SXNEeW5hbWljQENXYmVtQ2xhc3NAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OklzRW1wdHkodm9pZCkNCis/SXNFbXB0eUBDQmFzaWNRdWFsaWZpZXJTZXRAQFFBRUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OklzRW1wdHkodW5zaWduZWQgY2hhciAqKQ0KKz9Jc0VtcHR5QENCYXNpY1F1YWxpZmllclNldEBAU0dIUEFFQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmdMaXN0OjpJc0VtcHR5KHZvaWQpDQorP0lzRW1wdHlAQ0NvbXByZXNzZWRTdHJpbmdMaXN0QEBRQUVIWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENJbnRlcm5hbFN0cmluZzo6SXNFbXB0eSh2b2lkKQ0KKz9Jc0VtcHR5QENJbnRlcm5hbFN0cmluZ0BAUUFFX05YWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUXVhbGlmaWVyU2V0TGlzdDo6SXNFbXB0eSh2b2lkKQ0KKz9Jc0VtcHR5QENRdWFsaWZpZXJTZXRMaXN0QEBRQUVIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0Zhc3RIZWFwOjpJc0Zha2VBZGRyZXNzKHVuc2lnbmVkIGxvbmcpDQorP0lzRmFrZUFkZHJlc3NAQ0Zhc3RIZWFwQEBTR0hLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6SXNIaVBlcmYodm9pZCkNCis/SXNIaVBlcmZAQ0NsYXNzUGFydEBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OklzSWRlbnRpY2FsV2l0aChjbGFzcyBDQ2xhc3NQYXJ0ICYpDQorP0lzSWRlbnRpY2FsV2l0aEBDQ2xhc3NQYXJ0QEBRQUVIQUFWMUBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDU3lzdGVtUHJvcGVydGllczo6SXNJbGxlZ2FsRGVyaXZlZENsYXNzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0lzSWxsZWdhbERlcml2ZWRDbGFzc0BDU3lzdGVtUHJvcGVydGllc0BAU0dIUEJHQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19zdGRjYWxsIENXYmVtQ2FsbFNlY3VyaXR5OjpJc0ltcGVyc29uYXRpbmcodm9pZCkNCis/SXNJbXBlcnNvbmF0aW5nQENXYmVtQ2FsbFNlY3VyaXR5QEBVQUdIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6SXNJbmRleExvY2FsKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0lzSW5kZXhMb2NhbEBDV2JlbUNsYXNzQEBRQUVIUEJHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RlY29yYXRpb25QYXJ0OjpJc0luc3RhbmNlKHZvaWQpDQorP0lzSW5zdGFuY2VAQ0RlY29yYXRpb25QYXJ0QEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OklzSW5zdGFuY2Uodm9pZCkNCis/SXNJbnN0YW5jZUBDV2JlbU9iamVjdEBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OklzSW5zdGFuY2VPZihjbGFzcyBDV2JlbUNsYXNzICopDQorP0lzSW5zdGFuY2VPZkBDV2JlbUluc3RhbmNlQEBRQUVIUEFWQ1diZW1DbGFzc0BAQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6SXNJbnN0YW5jZVBhcnRBdmFpbGFibGUodm9pZCkNCis/SXNJbnN0YW5jZVBhcnRBdmFpbGFibGVAQ1diZW1JbnN0YW5jZUBASUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OklzS2V5TG9jYWwodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/SXNLZXlMb2NhbEBDV2JlbUNsYXNzQEBRQUVIUEJHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6SXNLZXllZCh2b2lkKQ0KKz9Jc0tleWVkQENDbGFzc1BhcnRAQFFBRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OklzS2V5ZWQodm9pZCkNCis/SXNLZXllZEBDV2JlbUNsYXNzQEBVQUVIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpJc0tleWVkKHZvaWQpDQorP0lzS2V5ZWRAQ1diZW1JbnN0YW5jZUBAVUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENEZWNvcmF0aW9uUGFydDo6SXNMaW1pdGVkKHZvaWQpDQorP0lzTGltaXRlZEBDRGVjb3JhdGlvblBhcnRAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDV2JlbU9iamVjdDo6SXNMaW1pdGVkKHZvaWQpDQorP0lzTGltaXRlZEBDV2JlbU9iamVjdEBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OklzTG9jYWxpemVkKHZvaWQpDQorP0lzTG9jYWxpemVkQENDbGFzc1BhcnRAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0OjpJc0xvY2FsaXplZCh2b2lkKQ0KKz9Jc0xvY2FsaXplZEBDSW5zdGFuY2VQYXJ0QEBRQUVIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpJc0xvY2FsaXplZCh2b2lkKQ0KKz9Jc0xvY2FsaXplZEBDV2JlbUNsYXNzQEBVQUVIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpJc0xvY2FsaXplZCh2b2lkKQ0KKz9Jc0xvY2FsaXplZEBDV2JlbUluc3RhbmNlQEBVQUVIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ1R5cGU6OklzTWVtQ29weUFibGUodW5zaWduZWQgc2hvcnQsbG9uZykNCis/SXNNZW1Db3B5QWJsZUBDVHlwZUBAU0dIR0pAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDVHlwZTo6SXNOb25BcnJheVBvaW50ZXJUeXBlKHZvaWQpDQorP0lzTm9uQXJyYXlQb2ludGVyVHlwZUBDVHlwZUBAUUFFSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENUeXBlOjpJc05vbkFycmF5UG9pbnRlclR5cGUodW5zaWduZWQgbG9uZykNCis/SXNOb25BcnJheVBvaW50ZXJUeXBlQENUeXBlQEBTR0hLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RhdGFUYWJsZTo6SXNOdWxsKGludCkNCis/SXNOdWxsQENEYXRhVGFibGVAQFFBRUhIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6SXNPYmplY3RJbnN0YW5jZSh2b2lkKQ0KKz9Jc09iamVjdEluc3RhbmNlQENXYmVtT2JqZWN0QEBVQUdKWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgQ0Zhc3RIZWFwOjpJc091dE9mTGluZSh2b2lkKQ0KKz9Jc091dE9mTGluZUBDRmFzdEhlYXBAQElBRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtQ2xhc3M6OklzUGFyZW50Q2xhc3MobG9uZyxzdHJ1Y3QgX0lXbWlPYmplY3QgKikNCis/SXNQYXJlbnRDbGFzc0BDV2JlbUNsYXNzQEBVQUdKSlBBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OklzUGFyZW50Q2xhc3MobG9uZyxzdHJ1Y3QgX0lXbWlPYmplY3QgKikNCis/SXNQYXJlbnRDbGFzc0BDV2JlbUluc3RhbmNlQEBVQUdKSlBBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDVHlwZTo6SXNQYXJlbnRzKHZvaWQpDQorP0lzUGFyZW50c0BDVHlwZUBAUUFFSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENUeXBlOjpJc1BhcmVudHModW5zaWduZWQgbG9uZykNCis/SXNQYXJlbnRzQENUeXBlQEBTR0hLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1R5cGU6OklzUG9pbnRlclR5cGUodm9pZCkNCis/SXNQb2ludGVyVHlwZUBDVHlwZUBAUUFFSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENUeXBlOjpJc1BvaW50ZXJUeXBlKHVuc2lnbmVkIGxvbmcpDQorP0lzUG9pbnRlclR5cGVAQ1R5cGVAQFNHSEtAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDU3lzdGVtUHJvcGVydGllczo6SXNQb3NzaWJsZVN5c3RlbVByb3BlcnR5TmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Jc1Bvc3NpYmxlU3lzdGVtUHJvcGVydHlOYW1lQENTeXN0ZW1Qcm9wZXJ0aWVzQEBTR0hQQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDTWV0aG9kUGFydDo6SXNQcm9wYWdhdGVkKGludCkNCis/SXNQcm9wYWdhdGVkQENNZXRob2RQYXJ0QEBJQUVISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OklzUHJvcGVydHlJbmRleGVkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0lzUHJvcGVydHlJbmRleGVkQENDbGFzc1BhcnRAQFFBRUhQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpJc1Byb3BlcnR5S2V5ZWQodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/SXNQcm9wZXJ0eUtleWVkQENDbGFzc1BhcnRAQFFBRUhQQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDUmVzZXJ2ZWRXb3JkVGFibGU6OklzUmVzZXJ2ZWRXb3JkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0lzUmVzZXJ2ZWRXb3JkQENSZXNlcnZlZFdvcmRUYWJsZUBAU0dIUEJHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OklzU2FtZUNsYXNzKGNsYXNzIENXYmVtT2JqZWN0ICopDQorP0lzU2FtZUNsYXNzQENXYmVtT2JqZWN0QEBRQUVIUEFWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpJc1NpbmdsZXRvbih2b2lkKQ0KKz9Jc1NpbmdsZXRvbkBDQ2xhc3NQYXJ0QEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6SXNTaW5nbGV0b24odm9pZCkNCis/SXNTaW5nbGV0b25AQ1diZW1DbGFzc0BAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENUeXBlOjpJc1N0cmluZ1R5cGUodm9pZCkNCis/SXNTdHJpbmdUeXBlQENUeXBlQEBRQUVIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ1R5cGU6OklzU3RyaW5nVHlwZSh1bnNpZ25lZCBsb25nKQ0KKz9Jc1N0cmluZ1R5cGVAQ1R5cGVAQFNHSEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpJc1RvcExldmVsKHZvaWQpDQorP0lzVG9wTGV2ZWxAQ0NsYXNzUGFydEBAUUFFSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENNZXRob2REZXNjcmlwdGlvbjo6SXNUb3VjaGVkKHN0cnVjdCBDTWV0aG9kRGVzY3JpcHRpb24gKixjbGFzcyBDRmFzdEhlYXAgKikNCis/SXNUb3VjaGVkQENNZXRob2REZXNjcmlwdGlvbkBAU0dIUEFVMUBQQVZDRmFzdEhlYXBAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENNZXRob2RQYXJ0OjpJc1RvdWNoZWQoaW50LGludCAqKQ0KKz9Jc1RvdWNoZWRAQ01ldGhvZFBhcnRAQFFBRUhIUEFIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ01ldGhvZFBhcnQ6OklzVG91Y2hlZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCAqKQ0KKz9Jc1RvdWNoZWRAQ01ldGhvZFBhcnRAQFFBRUhQQkdQQUhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ29tcHJlc3NlZFN0cmluZzo6SXNVbmljb2RlKHZvaWQpY29uc3QgDQorP0lzVW5pY29kZUBDQ29tcHJlc3NlZFN0cmluZ0BAUUJFSFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbURhdGFQYWNrZXQ6OklzVmFsaWQodm9pZCkNCis/SXNWYWxpZEBDV2JlbURhdGFQYWNrZXRAQFFBRUpYWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1diZW1PYmplY3RBcnJheVBhY2tldDo6SXNWYWxpZChjbGFzcyBDV2JlbUNsYXNzQ2FjaGUgKikNCis/SXNWYWxpZEBDV2JlbU9iamVjdEFycmF5UGFja2V0QEBRQUVfTlBBVkNXYmVtQ2xhc3NDYWNoZUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OklzVmFsaWRDbGFzc1BhcnQodm9pZCkNCis/SXNWYWxpZENsYXNzUGFydEBDQ2xhc3NQYXJ0QEBRQUVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENJbnN0YW5jZVBhcnQ6OklzVmFsaWRJbnN0YW5jZVBhcnQoY2xhc3MgQ0NsYXNzUGFydCAqLGNsYXNzIHN0ZDo6dmVjdG9yPHN0cnVjdCBFbWJlZGRlZE9iaixjbGFzcyB3YmVtX2FsbG9jYXRvcjxzdHJ1Y3QgRW1iZWRkZWRPYmo+ID4gJikNCis/SXNWYWxpZEluc3RhbmNlUGFydEBDSW5zdGFuY2VQYXJ0QEBRQUVKUEFWQ0NsYXNzUGFydEBAQUFWPyR2ZWN0b3JAVUVtYmVkZGVkT2JqQEBWPyR3YmVtX2FsbG9jYXRvckBVRW1iZWRkZWRPYmpAQEBAQHN0ZEBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6SXNWYWxpZEtleSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Jc1ZhbGlkS2V5QENXYmVtSW5zdGFuY2VAQFFBRUhQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGhvZFBhcnQ6OklzVmFsaWRNZXRob2RQYXJ0KHZvaWQpDQorP0lzVmFsaWRNZXRob2RQYXJ0QENNZXRob2RQYXJ0QEBRQUVKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6SXNWYWxpZE9iaih2b2lkKQ0KKz9Jc1ZhbGlkT2JqQENXYmVtQ2xhc3NAQFVBRUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpJc1ZhbGlkT2JqKHZvaWQpDQorP0lzVmFsaWRPYmpAQ1diZW1JbnN0YW5jZUBAVUFFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpJc1ZhbGlkUHJvcGVydHlIYW5kbGUobG9uZykNCis/SXNWYWxpZFByb3BlcnR5SGFuZGxlQENDbGFzc1BhcnRAQFFBRUpKQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtT2JqZWN0OjpJc1ZhbGlkUHJvcGVydHlIYW5kbGUobG9uZykNCis/SXNWYWxpZFByb3BlcnR5SGFuZGxlQENXYmVtT2JqZWN0QEBRQUVKSkBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDRmFzdEhlYXA6OklzVmFsaWRQdHIodW5zaWduZWQgbG9uZykNCis/SXNWYWxpZFB0ckBDRmFzdEhlYXBAQFFBRV9OS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OklzVmFsaWRRdWFsaWZpZXJTZXQodm9pZCkNCis/SXNWYWxpZFF1YWxpZmllclNldEBDQmFzaWNRdWFsaWZpZXJTZXRAQFFBRUpYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OklzVmFsaWRRdWFsaWZpZXJUeXBlKHVuc2lnbmVkIHNob3J0KQ0KKz9Jc1ZhbGlkUXVhbGlmaWVyVHlwZUBDQmFzaWNRdWFsaWZpZXJTZXRAQFNHSEdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDV2JlbVJlZnJlc2hpbmdTdmM6OklzV2lubWdtdChzdHJ1Y3QgX1dCRU1fUkVGUkVTSEVSX0lEICopDQorP0lzV2lubWdtdEBDV2JlbVJlZnJlc2hpbmdTdmNAQElBRUhQQVVfV0JFTV9SRUZSRVNIRVJfSURAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDVW50eXBlZEFycmF5OjpMb2FkRnJvbUNWYXJWZWN0b3IoY2xhc3MgQ1B0clNvdXJjZSAqLGNsYXNzIENWYXJWZWN0b3IgJix1bnNpZ25lZCBsb25nLGNsYXNzIENGYXN0SGVhcCAqLHVuc2lnbmVkIGxvbmcgJixpbnQpDQorP0xvYWRGcm9tQ1ZhclZlY3RvckBDVW50eXBlZEFycmF5QEBTR0pQQVZDUHRyU291cmNlQEBBQVZDVmFyVmVjdG9yQEBLUEFWQ0Zhc3RIZWFwQEBBQUtIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENXYmVtT2JqZWN0OjpMb2NhbGl6ZVByb3BlcnRpZXMoaW50LGJvb2wsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKixzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqLGJvb2wgJikNCis/TG9jYWxpemVQcm9wZXJ0aWVzQENXYmVtT2JqZWN0QEBJQUVKSF9OUEFVSVdiZW1DbGFzc09iamVjdEBAMUFBX05AWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OkxvY2FsaXplUXVhbGlmaWVycyhpbnQsYm9vbCxzdHJ1Y3QgSVdiZW1RdWFsaWZpZXJTZXQgKixzdHJ1Y3QgSVdiZW1RdWFsaWZpZXJTZXQgKixib29sICYpDQorP0xvY2FsaXplUXVhbGlmaWVyc0BDV2JlbU9iamVjdEBASUFFSkhfTlBBVUlXYmVtUXVhbGlmaWVyU2V0QEAxQUFfTkBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENIaVBlcmZMb2NrOjpMb2NrKHVuc2lnbmVkIGxvbmcpDQorP0xvY2tAQ0hpUGVyZkxvY2tAQFFBRUhLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1NoYXJlZExvY2s6OkxvY2sodW5zaWduZWQgbG9uZykNCis/TG9ja0BDU2hhcmVkTG9ja0BAUUFFSEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpMb2NrKGxvbmcpDQorP0xvY2tAQ1diZW1PYmplY3RAQFVBR0pKQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNoYXIgX19zdGRjYWxsIENDb21wcmVzc2VkU3RyaW5nOjpMb3dlckJ5dGUodW5zaWduZWQgc2hvcnQpDQorP0xvd2VyQnl0ZUBDQ29tcHJlc3NlZFN0cmluZ0BAS0dER0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDVHlwZTo6TWFrZUFycmF5KHVuc2lnbmVkIGxvbmcpDQorP01ha2VBcnJheUBDVHlwZUBAU0dLS0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDRmFzdEhlYXA6Ok1ha2VGYWtlRnJvbUluZGV4KGludCkNCis/TWFrZUZha2VGcm9tSW5kZXhAQ0Zhc3RIZWFwQEBTR0tIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENUeXBlOjpNYWtlTG9jYWwodW5zaWduZWQgbG9uZykNCis/TWFrZUxvY2FsQENUeXBlQEBTR0tLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDb21wcmVzc2VkU3RyaW5nOjpNYWtlTG93ZXJjYXNlKHZvaWQpDQorP01ha2VMb3dlcmNhc2VAQ0NvbXByZXNzZWRTdHJpbmdAQFFBRVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ1R5cGU6Ok1ha2VOb3RBcnJheSh1bnNpZ25lZCBsb25nKQ0KKz9NYWtlTm90QXJyYXlAQ1R5cGVAQFNHS0tAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ1R5cGU6Ok1ha2VQYXJlbnRzKHVuc2lnbmVkIGxvbmcpDQorP01ha2VQYXJlbnRzQENUeXBlQEBTR0tLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUNsYXNzOjpNYWtlU3Vic2V0SW5zdChzdHJ1Y3QgX0lXbWlPYmplY3QgKixzdHJ1Y3QgX0lXbWlPYmplY3QgKiAqKQ0KKz9NYWtlU3Vic2V0SW5zdEBDV2JlbUNsYXNzQEBVQUdKUEFVX0lXbWlPYmplY3RAQFBBUEFVMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6Ok1ha2VTdWJzZXRJbnN0KHN0cnVjdCBfSVdtaU9iamVjdCAqLHN0cnVjdCBfSVdtaU9iamVjdCAqICopDQorP01ha2VTdWJzZXRJbnN0QENXYmVtSW5zdGFuY2VAQFVBR0pQQVVfSVdtaU9iamVjdEBAUEFQQVUyQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTGltaXRhdGlvbk1hcHBpbmc6Ok1hcChjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqLGNsYXNzIENQcm9wZXJ0eUluZm9ybWF0aW9uICosaW50KQ0KKz9NYXBAQ0xpbWl0YXRpb25NYXBwaW5nQEBRQUVYUEFWQ1Byb3BlcnR5SW5mb3JtYXRpb25AQDBIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6TWFwTGltaXRhdGlvbihsb25nLGNsYXNzIENXU3RyaW5nQXJyYXkgKixjbGFzcyBDTGltaXRhdGlvbk1hcHBpbmcgKikNCis/TWFwTGltaXRhdGlvbkBDQ2xhc3NQYXJ0QEBRQUVISlBBVkNXU3RyaW5nQXJyYXlAQFBBVkNMaW1pdGF0aW9uTWFwcGluZ0BAQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0RlY29yYXRpb25QYXJ0OjpNYXBMaW1pdGF0aW9uKGNsYXNzIENXU3RyaW5nQXJyYXkgKixjbGFzcyBDTGltaXRhdGlvbk1hcHBpbmcgKikNCis/TWFwTGltaXRhdGlvbkBDRGVjb3JhdGlvblBhcnRAQFNHSFBBVkNXU3RyaW5nQXJyYXlAQFBBVkNMaW1pdGF0aW9uTWFwcGluZ0BAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1Byb3BlcnR5TG9va3VwVGFibGU6Ok1hcExpbWl0YXRpb24obG9uZyxjbGFzcyBDV1N0cmluZ0FycmF5ICosY2xhc3MgQ0xpbWl0YXRpb25NYXBwaW5nICopDQorP01hcExpbWl0YXRpb25AQ1Byb3BlcnR5TG9va3VwVGFibGVAQFFBRUhKUEFWQ1dTdHJpbmdBcnJheUBAUEFWQ0xpbWl0YXRpb25NYXBwaW5nQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpNYXBMaW1pdGF0aW9uKGxvbmcsY2xhc3MgQ1dTdHJpbmdBcnJheSAqLGNsYXNzIENMaW1pdGF0aW9uTWFwcGluZyAqKQ0KKz9NYXBMaW1pdGF0aW9uQENXYmVtQ2xhc3NAQFFBRUhKUEFWQ1dTdHJpbmdBcnJheUBAUEFWQ0xpbWl0YXRpb25NYXBwaW5nQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ0RlY29yYXRpb25QYXJ0OjpNYXJrS2V5UmVtb3ZhbCh1bnNpZ25lZCBjaGFyICopDQorP01hcmtLZXlSZW1vdmFsQENEZWNvcmF0aW9uUGFydEBAU0dYUEFFQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6TWFyc2hhbEludGVyZmFjZShzdHJ1Y3QgSVN0cmVhbSAqLHN0cnVjdCBfR1VJRCBjb25zdCAmLHZvaWQgKix1bnNpZ25lZCBsb25nLHZvaWQgKix1bnNpZ25lZCBsb25nKQ0KKz9NYXJzaGFsSW50ZXJmYWNlQENXYmVtT2JqZWN0QEBVQUdKUEFVSVN0cmVhbUBAQUJVX0dVSURAQFBBWEsyS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbU10Z3REZWxpdmVyRXZlbnRQYWNrZXQ6Ok1hcnNoYWxQYWNrZXQobG9uZyxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqICosc3RydWN0IF9HVUlEICosaW50ICopDQorP01hcnNoYWxQYWNrZXRAQ1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0QEBRQUVKSlBBUEFVSVdiZW1DbGFzc09iamVjdEBAUEFVX0dVSURAQFBBSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbU10Z3REZWxpdmVyRXZlbnRQYWNrZXQ6Ok1hcnNoYWxQYWNrZXQodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcsbG9uZyxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqICosc3RydWN0IF9HVUlEICosaW50ICopDQorP01hcnNoYWxQYWNrZXRAQ1diZW1NdGd0RGVsaXZlckV2ZW50UGFja2V0QEBRQUVKUEFFS0pQQVBBVUlXYmVtQ2xhc3NPYmplY3RAQFBBVV9HVUlEQEBQQUhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1PYmplY3RBcnJheVBhY2tldDo6TWFyc2hhbFBhY2tldChsb25nLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogKixzdHJ1Y3QgX0dVSUQgKixpbnQgKikNCis/TWFyc2hhbFBhY2tldEBDV2JlbU9iamVjdEFycmF5UGFja2V0QEBRQUVKSlBBUEFVSVdiZW1DbGFzc09iamVjdEBAUEFVX0dVSURAQFBBSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbU9iamVjdEFycmF5UGFja2V0OjpNYXJzaGFsUGFja2V0KHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nLGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiAqLHN0cnVjdCBfR1VJRCAqLGludCAqKQ0KKz9NYXJzaGFsUGFja2V0QENXYmVtT2JqZWN0QXJyYXlQYWNrZXRAQFFBRUpQQUVLSlBBUEFVSVdiZW1DbGFzc09iamVjdEBAUEFVX0dVSURAQFBBSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbVNtYXJ0RW51bU5leHRQYWNrZXQ6Ok1hcnNoYWxQYWNrZXQobG9uZyxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqICosc3RydWN0IF9HVUlEICosaW50ICopDQorP01hcnNoYWxQYWNrZXRAQ1diZW1TbWFydEVudW1OZXh0UGFja2V0QEBRQUVKSlBBUEFVSVdiZW1DbGFzc09iamVjdEBAUEFVX0dVSURAQFBBSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbVNtYXJ0RW51bU5leHRQYWNrZXQ6Ok1hcnNoYWxQYWNrZXQodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcsbG9uZyxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqICosc3RydWN0IF9HVUlEICosaW50ICopDQorP01hcnNoYWxQYWNrZXRAQ1diZW1TbWFydEVudW1OZXh0UGFja2V0QEBRQUVKUEFFS0pQQVBBVUlXYmVtQ2xhc3NPYmplY3RAQFBBVV9HVUlEQEBQQUhAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDU3lzdGVtUHJvcGVydGllczo6TWF4TnVtUHJvcGVydGllcyh2b2lkKQ0KKz9NYXhOdW1Qcm9wZXJ0aWVzQENTeXN0ZW1Qcm9wZXJ0aWVzQEBTR0hYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciAqIF9fc3RkY2FsbCBDQmFzaWNRdWFsaWZpZXJTZXQ6Ok1lcmdlKHVuc2lnbmVkIGNoYXIgKixjbGFzcyBDRmFzdEhlYXAgKix1bnNpZ25lZCBjaGFyICosY2xhc3MgQ0Zhc3RIZWFwICosdW5zaWduZWQgY2hhciAqLGNsYXNzIENGYXN0SGVhcCAqLGludCkNCis/TWVyZ2VAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBTR1BBRVBBRVBBVkNGYXN0SGVhcEBAMDEwMUhAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciAqIF9fc3RkY2FsbCBDQ2xhc3NBbmRNZXRob2RzOjpNZXJnZShjbGFzcyBDQ2xhc3NBbmRNZXRob2RzICYsY2xhc3MgQ0NsYXNzQW5kTWV0aG9kcyAmLHVuc2lnbmVkIGNoYXIgKixpbnQpDQorP01lcmdlQENDbGFzc0FuZE1ldGhvZHNAQFNHUEFFQUFWMUAwUEFFSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyICogX19zdGRjYWxsIENDbGFzc1BhcnQ6Ok1lcmdlKGNsYXNzIENDbGFzc1BhcnQgJixjbGFzcyBDQ2xhc3NQYXJ0ICYsdW5zaWduZWQgY2hhciAqLGludCkNCis/TWVyZ2VAQ0NsYXNzUGFydEBAU0dQQUVBQVYxQDBQQUVIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgKiBfX3N0ZGNhbGwgQ0RhdGFUYWJsZTo6TWVyZ2UoY2xhc3MgQ0RhdGFUYWJsZSAqLGNsYXNzIENGYXN0SGVhcCAqLGNsYXNzIENEYXRhVGFibGUgKixjbGFzcyBDRmFzdEhlYXAgKixjbGFzcyBDUHJvcGVydHlMb29rdXBUYWJsZSAqLHVuc2lnbmVkIGNoYXIgKixjbGFzcyBDRmFzdEhlYXAgKikNCis/TWVyZ2VAQ0RhdGFUYWJsZUBAU0dQQUVQQVYxQFBBVkNGYXN0SGVhcEBAMDFQQVZDUHJvcGVydHlMb29rdXBUYWJsZUBAUEFFMUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyICogX19zdGRjYWxsIENEZXJpdmF0aW9uTGlzdDo6TWVyZ2UoY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmdMaXN0ICYsY2xhc3MgQ0NvbXByZXNzZWRTdHJpbmdMaXN0ICYsdW5zaWduZWQgY2hhciAqKQ0KKz9NZXJnZUBDRGVyaXZhdGlvbkxpc3RAQFNHUEFFQUFWQ0NvbXByZXNzZWRTdHJpbmdMaXN0QEAwUEFFQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgKiBfX3N0ZGNhbGwgQ01ldGhvZFBhcnQ6Ok1lcmdlKGNsYXNzIENNZXRob2RQYXJ0ICYsY2xhc3MgQ01ldGhvZFBhcnQgJix1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZykNCis/TWVyZ2VAQ01ldGhvZFBhcnRAQFNHUEFFQUFWMUAwUEFFS0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyICogX19zdGRjYWxsIENQcm9wZXJ0eUxvb2t1cFRhYmxlOjpNZXJnZShjbGFzcyBDUHJvcGVydHlMb29rdXBUYWJsZSAqLGNsYXNzIENGYXN0SGVhcCAqLGNsYXNzIENQcm9wZXJ0eUxvb2t1cFRhYmxlICosY2xhc3MgQ0Zhc3RIZWFwICosdW5zaWduZWQgY2hhciAqLGNsYXNzIENGYXN0SGVhcCAqLGludCkNCis/TWVyZ2VAQ1Byb3BlcnR5TG9va3VwVGFibGVAQFNHUEFFUEFWMUBQQVZDRmFzdEhlYXBAQDAxUEFFMUhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDV2JlbUNsYXNzOjpNZXJnZSh1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgY2hhciAqLGludCxpbnQpDQorP01lcmdlQENXYmVtQ2xhc3NAQFFBRVBBRVBBRTBISEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1DbGFzczo6TWVyZ2UobG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKixzdHJ1Y3QgX0lXbWlPYmplY3QgKiAqKQ0KKz9NZXJnZUBDV2JlbUNsYXNzQEBVQUdKSktQQVhQQVBBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6Ok1lcmdlKGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICosc3RydWN0IF9JV21pT2JqZWN0ICogKikNCis/TWVyZ2VAQ1diZW1JbnN0YW5jZUBAVUFHSkpLUEFYUEFQQVVfSVdtaU9iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6TWVyZ2VBbWVuZGVkKGxvbmcsc3RydWN0IF9JV21pT2JqZWN0ICopDQorP01lcmdlQW1lbmRlZEBDV2JlbU9iamVjdEBAVUFHSkpQQVVfSVdtaU9iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUNsYXNzOjpNZXJnZUFuZERlY29yYXRlKGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICosdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqLHN0cnVjdCBfSVdtaU9iamVjdCAqICopDQorP01lcmdlQW5kRGVjb3JhdGVAQ1diZW1DbGFzc0BAVUFHSkpLUEFYUEFHMVBBUEFVX0lXbWlPYmplY3RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1JbnN0YW5jZTo6TWVyZ2VBbmREZWNvcmF0ZShsb25nLHVuc2lnbmVkIGxvbmcsdm9pZCAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKixzdHJ1Y3QgX0lXbWlPYmplY3QgKiAqKQ0KKz9NZXJnZUFuZERlY29yYXRlQENXYmVtSW5zdGFuY2VAQFVBR0pKS1BBWFBBRzFQQVBBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtQ2xhc3M6Ok1lcmdlQ2xhc3NQYXJ0KHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICopDQorP01lcmdlQ2xhc3NQYXJ0QENXYmVtQ2xhc3NAQFVBR0pQQVVJV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6Ok1lcmdlQ2xhc3NQYXJ0KHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICopDQorP01lcmdlQ2xhc3NQYXJ0QENXYmVtSW5zdGFuY2VAQFVBR0pQQVVJV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmc6Ok5WYWxpZGF0ZVNpemUoaW50KWNvbnN0IA0KKz9OVmFsaWRhdGVTaXplQENDb21wcmVzc2VkU3RyaW5nQEBRQkVfTkhAWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ1diZW1DYWxsU2VjdXJpdHkgKiBfX3N0ZGNhbGwgQ1diZW1DYWxsU2VjdXJpdHk6Ok5ldyh2b2lkKQ0KKz9OZXdAQ1diZW1DYWxsU2VjdXJpdHlAQFNHUEFWMUBYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZSAqIF9fc3RkY2FsbCBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjpOZXcodm9pZCkNCis/TmV3QENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGVAQFNHUEFWMUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENRdWFsaWZpZXJTZXQ6Ok5leHQobG9uZyx1bnNpZ25lZCBzaG9ydCAqICosc3RydWN0IHRhZ1ZBUklBTlQgKixsb25nICopDQorP05leHRAQ1F1YWxpZmllclNldEBAVUFHSkpQQVBBR1BBVXRhZ1ZBUklBTlRAQFBBSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6Ok5leHQobG9uZyx1bnNpZ25lZCBzaG9ydCAqICosc3RydWN0IHRhZ1ZBUklBTlQgKixsb25nICosbG9uZyAqKQ0KKz9OZXh0QENXYmVtT2JqZWN0QEBVQUdKSlBBUEFHUEFVdGFnVkFSSUFOVEBAUEFKMkBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENMaW1pdGF0aW9uTWFwcGluZzo6TmV4dE1hcHBpbmcoY2xhc3MgQ1Byb3BlcnR5SW5mb3JtYXRpb24gKixjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqKQ0KKz9OZXh0TWFwcGluZ0BDTGltaXRhdGlvbk1hcHBpbmdAQFFBRUhQQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBAMEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1DbGFzczo6TmV4dE1ldGhvZChsb25nLHVuc2lnbmVkIHNob3J0ICogKixzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqICosc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiAqKQ0KKz9OZXh0TWV0aG9kQENXYmVtQ2xhc3NAQFVBR0pKUEFQQUdQQVBBVUlXYmVtQ2xhc3NPYmplY3RAQDFAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6Ok5leHRNZXRob2QobG9uZyx1bnNpZ25lZCBzaG9ydCAqICosc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiAqLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogKikNCis/TmV4dE1ldGhvZEBDV2JlbUluc3RhbmNlQEBVQUdKSlBBUEFHUEFQQVVJV2JlbUNsYXNzT2JqZWN0QEAxQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OlBsdWdLZXlIb2xlcyh2b2lkKQ0KKz9QbHVnS2V5SG9sZXNAQ1diZW1JbnN0YW5jZUBAUUFFSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1F1YWxpZmllclNldDo6UHV0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IHRhZ1ZBUklBTlQgKixsb25nKQ0KKz9QdXRAQ1F1YWxpZmllclNldEBAVUFHSlBCR1BBVXRhZ1ZBUklBTlRAQEpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtQ2xhc3M6OlB1dCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcsc3RydWN0IHRhZ1ZBUklBTlQgKixsb25nKQ0KKz9QdXRAQ1diZW1DbGFzc0BAVUFHSlBCR0pQQVV0YWdWQVJJQU5UQEBKQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUluc3RhbmNlOjpQdXQodW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nLHN0cnVjdCB0YWdWQVJJQU5UICosbG9uZykNCis/UHV0QENXYmVtSW5zdGFuY2VAQFVBR0pQQkdKUEFVdGFnVkFSSUFOVEBASkBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0aG9kUGFydDo6UHV0TWV0aG9kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyxjbGFzcyBDV2JlbU9iamVjdCAqLGNsYXNzIENXYmVtT2JqZWN0ICopDQorP1B1dE1ldGhvZEBDTWV0aG9kUGFydEBAUUFFSlBCR0pQQVZDV2JlbU9iamVjdEBAMUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1DbGFzczo6UHV0TWV0aG9kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICopDQorP1B1dE1ldGhvZEBDV2JlbUNsYXNzQEBVQUdKUEJHSlBBVUlXYmVtQ2xhc3NPYmplY3RAQDFAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OlB1dE1ldGhvZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKixzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqKQ0KKz9QdXRNZXRob2RAQ1diZW1JbnN0YW5jZUBAVUFHSlBCR0pQQVVJV2JlbUNsYXNzT2JqZWN0QEAxQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUNhbGxTZWN1cml0eTo6UXVlcnlCbGFua2V0KHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgc2hvcnQgKiAqLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICosdm9pZCAqICosdW5zaWduZWQgbG9uZyAqKQ0KKz9RdWVyeUJsYW5rZXRAQ1diZW1DYWxsU2VjdXJpdHlAQFVBR0pQQUswUEFQQUcwMFBBUEFYMEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ0ltcGw8c3RydWN0IElXYmVtT2JqZWN0VGV4dFNyYyxjbGFzcyBDV21pT2JqZWN0VGV4dFNyYz46OlF1ZXJ5SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmLHZvaWQgKiAqKQ0KKz9RdWVyeUludGVyZmFjZUA/JENJbXBsQFVJV2JlbU9iamVjdFRleHRTcmNAQFZDV21pT2JqZWN0VGV4dFNyY0BAQEBVQUdKQUJVX0dVSURAQFBBUEFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDSW1wbDxzdHJ1Y3QgSVdiZW1SZWZyZXNoaW5nU2VydmljZXMsY2xhc3MgQ1diZW1SZWZyZXNoaW5nU3ZjPjo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYsdm9pZCAqICopDQorP1F1ZXJ5SW50ZXJmYWNlQD8kQ0ltcGxAVUlXYmVtUmVmcmVzaGluZ1NlcnZpY2VzQEBWQ1diZW1SZWZyZXNoaW5nU3ZjQEBAQFVBR0pBQlVfR1VJREBAUEFQQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENJbXBsPHN0cnVjdCBJV2JlbVJlbW90ZVJlZnJlc2hlcixjbGFzcyBDV2JlbVJlbW90ZVJlZnJlc2hlcj46OlF1ZXJ5SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmLHZvaWQgKiAqKQ0KKz9RdWVyeUludGVyZmFjZUA/JENJbXBsQFVJV2JlbVJlbW90ZVJlZnJlc2hlckBAVkNXYmVtUmVtb3RlUmVmcmVzaGVyQEBAQFVBR0pBQlVfR1VJREBAUEFQQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENJbXBsPHN0cnVjdCBfSVdiZW1Db25maWd1cmVSZWZyZXNoaW5nU3ZjcyxjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM+OjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJix2b2lkICogKikNCis/UXVlcnlJbnRlcmZhY2VAPyRDSW1wbEBVX0lXYmVtQ29uZmlndXJlUmVmcmVzaGluZ1N2Y3NAQFZDV2JlbVJlZnJlc2hpbmdTdmNAQEBAVUFHSkFCVV9HVUlEQEBQQVBBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ0ltcGw8c3RydWN0IF9JV2JlbUVudW1NYXJzaGFsaW5nLGNsYXNzIENXYmVtRW51bU1hcnNoYWxpbmc+OjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJix2b2lkICogKikNCis/UXVlcnlJbnRlcmZhY2VAPyRDSW1wbEBVX0lXYmVtRW51bU1hcnNoYWxpbmdAQFZDV2JlbUVudW1NYXJzaGFsaW5nQEBAQFVBR0pBQlVfR1VJREBAUEFQQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENJbXBsPHN0cnVjdCBfSVdiZW1GZXRjaFJlZnJlc2hlck1ncixjbGFzcyBDV2JlbUZldGNoUmVmck1ncj46OlF1ZXJ5SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmLHZvaWQgKiAqKQ0KKz9RdWVyeUludGVyZmFjZUA/JENJbXBsQFVfSVdiZW1GZXRjaFJlZnJlc2hlck1nckBAVkNXYmVtRmV0Y2hSZWZyTWdyQEBAQFVBR0pBQlVfR1VJREBAUEFQQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENJbXBsPHN0cnVjdCBfSVdtaU9iamVjdEZhY3RvcnksY2xhc3MgQ1dtaU9iamVjdEZhY3Rvcnk+OjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJix2b2lkICogKikNCis/UXVlcnlJbnRlcmZhY2VAPyRDSW1wbEBVX0lXbWlPYmplY3RGYWN0b3J5QEBWQ1dtaU9iamVjdEZhY3RvcnlAQEBAVUFHSkFCVV9HVUlEQEBQQVBBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1F1YWxpZmllclNldDo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYsdm9pZCAqICopDQorP1F1ZXJ5SW50ZXJmYWNlQENRdWFsaWZpZXJTZXRAQFVBR0pBQlVfR1VJREBAUEFQQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtQ2FsbFNlY3VyaXR5OjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJix2b2lkICogKikNCis/UXVlcnlJbnRlcmZhY2VAQ1diZW1DYWxsU2VjdXJpdHlAQFVBR0pBQlVfR1VJREBAUEFQQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJix2b2lkICogKikNCis/UXVlcnlJbnRlcmZhY2VAQ1diZW1PYmplY3RAQFVBR0pBQlVfR1VJREBAUEFQQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtVGhyZWFkU2VjdXJpdHlIYW5kbGU6OlF1ZXJ5SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmLHZvaWQgKiAqKQ0KKz9RdWVyeUludGVyZmFjZUBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlQEBVQUdKQUJVX0dVSURAQFBBUEFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6UXVlcnlPYmplY3RGbGFncyhsb25nLHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCAqKQ0KKz9RdWVyeU9iamVjdEZsYWdzQENXYmVtT2JqZWN0QEBVQUdKSl9LUEFfS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OlF1ZXJ5UGFydEluZm8odW5zaWduZWQgbG9uZyAqKQ0KKz9RdWVyeVBhcnRJbmZvQENXYmVtT2JqZWN0QEBVQUdKUEFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6UXVlcnlQcm9wZXJ0eUZsYWdzKGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBfX2ludDY0LHVuc2lnbmVkIF9faW50NjQgKikNCis/UXVlcnlQcm9wZXJ0eUZsYWdzQENXYmVtT2JqZWN0QEBVQUdKSlBCR19LUEFfS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OlJlYWREV09SRChsb25nLHVuc2lnbmVkIGxvbmcgKikNCis/UmVhZERXT1JEQENXYmVtT2JqZWN0QEBVQUdKSlBBS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OlJlYWRQcm9wKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyx1bnNpZ25lZCBsb25nLGxvbmcgKixsb25nICosaW50ICosdW5zaWduZWQgbG9uZyAqLHZvaWQgKikNCis/UmVhZFByb3BAQ1diZW1PYmplY3RAQFVBR0pQQkdKS1BBSjFQQUhQQUtQQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpSZWFkUHJvcGVydHlWYWx1ZShsb25nLGxvbmcsbG9uZyAqLHVuc2lnbmVkIGNoYXIgKikNCis/UmVhZFByb3BlcnR5VmFsdWVAQ1diZW1PYmplY3RAQFVBR0pKSlBBSlBBRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OlJlYWRRV09SRChsb25nLHVuc2lnbmVkIF9faW50NjQgKikNCis/UmVhZFFXT1JEQENXYmVtT2JqZWN0QEBVQUdKSlBBX0tAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpSZWFsbG9jQW5kQ29tcGFjdCh1bnNpZ25lZCBsb25nKQ0KKz9SZWFsbG9jQW5kQ29tcGFjdEBDQ2xhc3NQYXJ0QEBRQUVIS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJbnN0YW5jZVBhcnQ6OlJlYWxsb2NBbmRDb21wYWN0KHVuc2lnbmVkIGxvbmcpDQorP1JlYWxsb2NBbmRDb21wYWN0QENJbnN0YW5jZVBhcnRAQFFBRUhLQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgX19zdGRjYWxsIENVbnR5cGVkQXJyYXk6OlJlYWxsb2NBcnJheShjbGFzcyBDUHRyU291cmNlICosdW5zaWduZWQgbG9uZyxjbGFzcyBDRmFzdEhlYXAgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyAqKQ0KKz9SZWFsbG9jQXJyYXlAQ1VudHlwZWRBcnJheUBAS0dKUEFWQ1B0clNvdXJjZUBAS1BBVkNGYXN0SGVhcEBAS1BBSzIyQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0Zhc3RIZWFwOjpSZWFsbG9jYXRlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgJikNCis/UmVhbGxvY2F0ZUBDRmFzdEhlYXBAQFFBRUhLS0tBQUtAWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDV2JlbU9iamVjdDo6UmVhbGxvY2F0ZSh1bnNpZ25lZCBsb25nKQ0KKz9SZWFsbG9jYXRlQENXYmVtT2JqZWN0QEBJQUVQQUVLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENCYXNpY1F1YWxpZmllclNldDo6UmViYXNlKHVuc2lnbmVkIGNoYXIgKikNCis/UmViYXNlQENCYXNpY1F1YWxpZmllclNldEBAUUFFWFBBRUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ2xhc3NBbmRNZXRob2RzOjpSZWJhc2UodW5zaWduZWQgY2hhciAqKQ0KKz9SZWJhc2VAQ0NsYXNzQW5kTWV0aG9kc0BAUUFFWFBBRUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpSZWJhc2UodW5zaWduZWQgY2hhciAqKQ0KKz9SZWJhc2VAQ0NsYXNzUGFydEBAUUFFWFBBRUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6OlJlYmFzZSh1bnNpZ25lZCBjaGFyICopDQorP1JlYmFzZUBDQ29tcHJlc3NlZFN0cmluZ0xpc3RAQFFBRVhQQUVAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0RhdGFUYWJsZTo6UmViYXNlKHVuc2lnbmVkIGNoYXIgKikNCis/UmViYXNlQENEYXRhVGFibGVAQFFBRVhQQUVAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0RlY29yYXRpb25QYXJ0OjpSZWJhc2UodW5zaWduZWQgY2hhciAqKQ0KKz9SZWJhc2VAQ0RlY29yYXRpb25QYXJ0QEBRQUVYUEFFQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGYXN0SGVhcDo6UmViYXNlKHVuc2lnbmVkIGNoYXIgKikNCis/UmViYXNlQENGYXN0SGVhcEBAUUFFWFBBRUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0OjpSZWJhc2UodW5zaWduZWQgY2hhciAqKQ0KKz9SZWJhc2VAQ0luc3RhbmNlUGFydEBAUUFFWFBBRUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTWV0aG9kUGFydDo6UmViYXNlKHVuc2lnbmVkIGNoYXIgKikNCis/UmViYXNlQENNZXRob2RQYXJ0QEBRQUVYUEFFQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENQcm9wZXJ0eUxvb2t1cFRhYmxlOjpSZWJhc2UodW5zaWduZWQgY2hhciAqKQ0KKz9SZWJhc2VAQ1Byb3BlcnR5TG9va3VwVGFibGVAQFFBRVhQQUVAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1F1YWxpZmllclNldExpc3Q6OlJlYmFzZSh1bnNpZ25lZCBjaGFyICopDQorP1JlYmFzZUBDUXVhbGlmaWVyU2V0TGlzdEBAUUFFWFBBRUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUXVhbGlmaWVyU2V0TGlzdDo6UmViYXNlKHZvaWQpDQorP1JlYmFzZUBDUXVhbGlmaWVyU2V0TGlzdEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpSZWJhc2UodW5zaWduZWQgY2hhciAqKQ0KKz9SZWJhc2VAQ1diZW1DbGFzc0BAUUFFWFBBRUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpSZWJhc2UodW5zaWduZWQgY2hhciAqKQ0KKz9SZWJhc2VAQ1diZW1JbnN0YW5jZUBAUUFFWFBBRUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5zdGFuY2VQUVNDb250YWluZXI6OlJlYmFzZVNlY29uZGFyeVNldCh2b2lkKQ0KKz9SZWJhc2VTZWNvbmRhcnlTZXRAQ0luc3RhbmNlUFFTQ29udGFpbmVyQEBRQUVYWFoNCis7IHB1YmxpYzogZW51bSBFUmVjb25jaWxpYXRpb24gIF9fdGhpc2NhbGwgQ0NsYXNzQW5kTWV0aG9kczo6UmVjb25jaWxlV2l0aChjbGFzcyBDQ2xhc3NBbmRNZXRob2RzICYpDQorP1JlY29uY2lsZVdpdGhAQ0NsYXNzQW5kTWV0aG9kc0BAUUFFP0FXNEVSZWNvbmNpbGlhdGlvbkBAQUFWMUBAWg0KKzsgcHVibGljOiBlbnVtIEVSZWNvbmNpbGlhdGlvbiAgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpSZWNvbmNpbGVXaXRoKGNsYXNzIENDbGFzc1BhcnQgJikNCis/UmVjb25jaWxlV2l0aEBDQ2xhc3NQYXJ0QEBRQUU/QVc0RVJlY29uY2lsaWF0aW9uQEBBQVYxQEBaDQorOyBwdWJsaWM6IGVudW0gRVJlY29uY2lsaWF0aW9uICBfX3RoaXNjYWxsIENNZXRob2RQYXJ0OjpSZWNvbmNpbGVXaXRoKGNsYXNzIENNZXRob2RQYXJ0ICYpDQorP1JlY29uY2lsZVdpdGhAQ01ldGhvZFBhcnRAQFFBRT9BVzRFUmVjb25jaWxpYXRpb25AQEFBVjFAQFoNCis7IHB1YmxpYzogZW51bSBFUmVjb25jaWxpYXRpb24gIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6UmVjb25jaWxlV2l0aChjbGFzcyBDV2JlbUNsYXNzICopDQorP1JlY29uY2lsZVdpdGhAQ1diZW1DbGFzc0BAUUFFP0FXNEVSZWNvbmNpbGlhdGlvbkBAUEFWMUBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtQ2xhc3M6OlJlY29uY2lsZVdpdGgobG9uZyxzdHJ1Y3QgX0lXbWlPYmplY3QgKikNCis/UmVjb25jaWxlV2l0aEBDV2JlbUNsYXNzQEBVQUdKSlBBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OlJlY29uY2lsZVdpdGgobG9uZyxzdHJ1Y3QgX0lXbWlPYmplY3QgKikNCis/UmVjb25jaWxlV2l0aEBDV2JlbUluc3RhbmNlQEBVQUdKSlBBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbVJlZnJlc2hpbmdTdmM6OlJlY29ubmVjdFJlbW90ZVJlZnJlc2hlcihzdHJ1Y3QgX1dCRU1fUkVGUkVTSEVSX0lEICosbG9uZyxsb25nLHVuc2lnbmVkIGxvbmcsc3RydWN0IF9XQkVNX1JFQ09OTkVDVF9JTkZPICosc3RydWN0IF9XQkVNX1JFQ09OTkVDVF9SRVNVTFRTICosdW5zaWduZWQgbG9uZyAqKQ0KKz9SZWNvbm5lY3RSZW1vdGVSZWZyZXNoZXJAQ1diZW1SZWZyZXNoaW5nU3ZjQEBNQUVKUEFVX1dCRU1fUkVGUkVTSEVSX0lEQEBKSktQQVVfV0JFTV9SRUNPTk5FQ1RfSU5GT0BAUEFVX1dCRU1fUkVDT05ORUNUX1JFU1VMVFNAQFBBS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1SZWZyZXNoaW5nU3ZjOjpYV2JlbVJlZnJTdmM6OlJlY29ubmVjdFJlbW90ZVJlZnJlc2hlcihzdHJ1Y3QgX1dCRU1fUkVGUkVTSEVSX0lEICosbG9uZyxsb25nLHVuc2lnbmVkIGxvbmcsc3RydWN0IF9XQkVNX1JFQ09OTkVDVF9JTkZPICosc3RydWN0IF9XQkVNX1JFQ09OTkVDVF9SRVNVTFRTICosdW5zaWduZWQgbG9uZyAqKQ0KKz9SZWNvbm5lY3RSZW1vdGVSZWZyZXNoZXJAWFdiZW1SZWZyU3ZjQENXYmVtUmVmcmVzaGluZ1N2Y0BAVUFHSlBBVV9XQkVNX1JFRlJFU0hFUl9JREBASkpLUEFVX1dCRU1fUkVDT05ORUNUX0lORk9AQFBBVV9XQkVNX1JFQ09OTkVDVF9SRVNVTFRTQEBQQUtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Zhc3RIZWFwOjpSZWR1Y2UodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP1JlZHVjZUBDRmFzdEhlYXBAQFFBRVhLS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6UmVkdWNlQ2xhc3NBbmRNZXRob2RzU3BhY2UodW5zaWduZWQgbG9uZykNCis/UmVkdWNlQ2xhc3NBbmRNZXRob2RzU3BhY2VAQ1diZW1DbGFzc0BAUUFFWEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDQ2xhc3NBbmRNZXRob2RzOjpSZWR1Y2VDbGFzc1BhcnRTcGFjZShjbGFzcyBDQ2xhc3NQYXJ0ICosdW5zaWduZWQgbG9uZykNCis/UmVkdWNlQ2xhc3NQYXJ0U3BhY2VAQ0NsYXNzQW5kTWV0aG9kc0BAVUFFWFBBVkNDbGFzc1BhcnRAQEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpSZWR1Y2VDbGFzc1BhcnRTcGFjZShjbGFzcyBDQ2xhc3NQYXJ0ICosdW5zaWduZWQgbG9uZykNCis/UmVkdWNlQ2xhc3NQYXJ0U3BhY2VAQ1diZW1JbnN0YW5jZUBAVUFFWFBBVkNDbGFzc1BhcnRAQEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpSZWR1Y2VEYXRhVGFibGVTcGFjZSh1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9SZWR1Y2VEYXRhVGFibGVTcGFjZUBDQ2xhc3NQYXJ0QEBVQUVYUEFFS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0OjpSZWR1Y2VEYXRhVGFibGVTcGFjZSh1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9SZWR1Y2VEYXRhVGFibGVTcGFjZUBDSW5zdGFuY2VQYXJ0QEBVQUVYUEFFS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpSZWR1Y2VIZWFwU2l6ZSh1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9SZWR1Y2VIZWFwU2l6ZUBDQ2xhc3NQYXJ0QEBVQUVYUEFFS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0OjpSZWR1Y2VIZWFwU2l6ZSh1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9SZWR1Y2VIZWFwU2l6ZUBDSW5zdGFuY2VQYXJ0QEBVQUVYUEFFS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDTWV0aG9kUGFydDo6UmVkdWNlSGVhcFNpemUodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/UmVkdWNlSGVhcFNpemVAQ01ldGhvZFBhcnRAQFVBRVhQQUVLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OlJlZHVjZUluc3RhbmNlUGFydFNwYWNlKGNsYXNzIENJbnN0YW5jZVBhcnQgKix1bnNpZ25lZCBsb25nKQ0KKz9SZWR1Y2VJbnN0YW5jZVBhcnRTcGFjZUBDV2JlbUluc3RhbmNlQEBVQUVYUEFWQ0luc3RhbmNlUGFydEBAS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENDbGFzc0FuZE1ldGhvZHM6OlJlZHVjZU1ldGhvZFBhcnRTcGFjZShjbGFzcyBDTWV0aG9kUGFydCAqLHVuc2lnbmVkIGxvbmcpDQorP1JlZHVjZU1ldGhvZFBhcnRTcGFjZUBDQ2xhc3NBbmRNZXRob2RzQEBVQUVYUEFWQ01ldGhvZFBhcnRAQEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpSZWR1Y2VQcm9wZXJ0eVRhYmxlU3BhY2UodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/UmVkdWNlUHJvcGVydHlUYWJsZVNwYWNlQENDbGFzc1BhcnRAQFVBRVhQQUVLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENJbnN0YW5jZVBhcnQ6OlJlZHVjZVF1YWxpZmllclNldExpc3RTcGFjZSh1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9SZWR1Y2VRdWFsaWZpZXJTZXRMaXN0U3BhY2VAQ0luc3RhbmNlUGFydEBAVUFFWFBBRUtLQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6UmVkdWNlUXVhbGlmaWVyU2V0U3BhY2UoY2xhc3MgQ0Jhc2ljUXVhbGlmaWVyU2V0ICosdW5zaWduZWQgbG9uZykNCis/UmVkdWNlUXVhbGlmaWVyU2V0U3BhY2VAQ0NsYXNzUGFydEBAVUFFWFBBVkNCYXNpY1F1YWxpZmllclNldEBAS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENJbnN0YW5jZVBRU0NvbnRhaW5lcjo6UmVkdWNlUXVhbGlmaWVyU2V0U3BhY2UoY2xhc3MgQ0Jhc2ljUXVhbGlmaWVyU2V0ICosdW5zaWduZWQgbG9uZykNCis/UmVkdWNlUXVhbGlmaWVyU2V0U3BhY2VAQ0luc3RhbmNlUFFTQ29udGFpbmVyQEBVQUVYUEFWQ0Jhc2ljUXVhbGlmaWVyU2V0QEBLQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQ0luc3RhbmNlUGFydDo6UmVkdWNlUXVhbGlmaWVyU2V0U3BhY2UoY2xhc3MgQ0Jhc2ljUXVhbGlmaWVyU2V0ICosdW5zaWduZWQgbG9uZykNCis/UmVkdWNlUXVhbGlmaWVyU2V0U3BhY2VAQ0luc3RhbmNlUGFydEBAVUFFWFBBVkNCYXNpY1F1YWxpZmllclNldEBAS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXI6OlJlZHVjZVF1YWxpZmllclNldFNwYWNlKGNsYXNzIENCYXNpY1F1YWxpZmllclNldCAqLHVuc2lnbmVkIGxvbmcpDQorP1JlZHVjZVF1YWxpZmllclNldFNwYWNlQENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXJAQFVBRVhQQVZDQmFzaWNRdWFsaWZpZXJTZXRAQEtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1F1YWxpZmllclNldExpc3Q6OlJlZHVjZVF1YWxpZmllclNldFNwYWNlKGNsYXNzIENCYXNpY1F1YWxpZmllclNldCAqLHVuc2lnbmVkIGxvbmcpDQorP1JlZHVjZVF1YWxpZmllclNldFNwYWNlQENRdWFsaWZpZXJTZXRMaXN0QEBRQUVYUEFWQ0Jhc2ljUXVhbGlmaWVyU2V0QEBLQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDSW1wbDxzdHJ1Y3QgSVdiZW1PYmplY3RUZXh0U3JjLGNsYXNzIENXbWlPYmplY3RUZXh0U3JjPjo6UmVsZWFzZSh2b2lkKQ0KKz9SZWxlYXNlQD8kQ0ltcGxAVUlXYmVtT2JqZWN0VGV4dFNyY0BAVkNXbWlPYmplY3RUZXh0U3JjQEBAQFVBR0tYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENJbXBsPHN0cnVjdCBJV2JlbVJlZnJlc2hpbmdTZXJ2aWNlcyxjbGFzcyBDV2JlbVJlZnJlc2hpbmdTdmM+OjpSZWxlYXNlKHZvaWQpDQorP1JlbGVhc2VAPyRDSW1wbEBVSVdiZW1SZWZyZXNoaW5nU2VydmljZXNAQFZDV2JlbVJlZnJlc2hpbmdTdmNAQEBAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0ltcGw8c3RydWN0IElXYmVtUmVtb3RlUmVmcmVzaGVyLGNsYXNzIENXYmVtUmVtb3RlUmVmcmVzaGVyPjo6UmVsZWFzZSh2b2lkKQ0KKz9SZWxlYXNlQD8kQ0ltcGxAVUlXYmVtUmVtb3RlUmVmcmVzaGVyQEBWQ1diZW1SZW1vdGVSZWZyZXNoZXJAQEBAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0ltcGw8c3RydWN0IF9JV2JlbUNvbmZpZ3VyZVJlZnJlc2hpbmdTdmNzLGNsYXNzIENXYmVtUmVmcmVzaGluZ1N2Yz46OlJlbGVhc2Uodm9pZCkNCis/UmVsZWFzZUA/JENJbXBsQFVfSVdiZW1Db25maWd1cmVSZWZyZXNoaW5nU3Zjc0BAVkNXYmVtUmVmcmVzaGluZ1N2Y0BAQEBVQUdLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDSW1wbDxzdHJ1Y3QgX0lXYmVtRW51bU1hcnNoYWxpbmcsY2xhc3MgQ1diZW1FbnVtTWFyc2hhbGluZz46OlJlbGVhc2Uodm9pZCkNCis/UmVsZWFzZUA/JENJbXBsQFVfSVdiZW1FbnVtTWFyc2hhbGluZ0BAVkNXYmVtRW51bU1hcnNoYWxpbmdAQEBAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0ltcGw8c3RydWN0IF9JV2JlbUZldGNoUmVmcmVzaGVyTWdyLGNsYXNzIENXYmVtRmV0Y2hSZWZyTWdyPjo6UmVsZWFzZSh2b2lkKQ0KKz9SZWxlYXNlQD8kQ0ltcGxAVV9JV2JlbUZldGNoUmVmcmVzaGVyTWdyQEBWQ1diZW1GZXRjaFJlZnJNZ3JAQEBAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0ltcGw8c3RydWN0IF9JV21pT2JqZWN0RmFjdG9yeSxjbGFzcyBDV21pT2JqZWN0RmFjdG9yeT46OlJlbGVhc2Uodm9pZCkNCis/UmVsZWFzZUA/JENJbXBsQFVfSVdtaU9iamVjdEZhY3RvcnlAQFZDV21pT2JqZWN0RmFjdG9yeUBAQEBVQUdLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDQ2xhc3NRdWFsaWZpZXJTZXQ6OlJlbGVhc2Uodm9pZCkNCis/UmVsZWFzZUBDQ2xhc3NRdWFsaWZpZXJTZXRAQFVBR0tYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENJbnN0YW5jZVF1YWxpZmllclNldDo6UmVsZWFzZSh2b2lkKQ0KKz9SZWxlYXNlQENJbnN0YW5jZVF1YWxpZmllclNldEBAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ01ldGhvZFF1YWxpZmllclNldDo6UmVsZWFzZSh2b2lkKQ0KKz9SZWxlYXNlQENNZXRob2RRdWFsaWZpZXJTZXRAQFVBR0tYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENRdWFsaWZpZXJTZXQ6OlJlbGVhc2Uodm9pZCkNCis/UmVsZWFzZUBDUXVhbGlmaWVyU2V0QEBVQUdLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDV2JlbUNhbGxTZWN1cml0eTo6UmVsZWFzZSh2b2lkKQ0KKz9SZWxlYXNlQENXYmVtQ2FsbFNlY3VyaXR5QEBVQUdLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6UmVsZWFzZSh2b2lkKQ0KKz9SZWxlYXNlQENXYmVtT2JqZWN0QEBVQUdLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjpSZWxlYXNlKHZvaWQpDQorP1JlbGVhc2VAQ1diZW1UaHJlYWRTZWN1cml0eUhhbmRsZUBAVUFHS1haDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5Pjo6UmVsZWFzZUVsZW1lbnQoY2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0gKikNCis/UmVsZWFzZUVsZW1lbnRAPyRDUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFZDRmxleEFycmF5QEBAQElBRVhQQVZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+OjpSZWxlYXNlRWxlbWVudChjbGFzcyBDV21pVGV4dFNvdXJjZSAqKQ0KKz9SZWxlYXNlRWxlbWVudEA/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBASUFFWFBBVkNXbWlUZXh0U291cmNlQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpSZWxlYXNlTWFyc2hhbERhdGEoc3RydWN0IElTdHJlYW0gKikNCis/UmVsZWFzZU1hcnNoYWxEYXRhQENXYmVtT2JqZWN0QEBVQUdKUEFVSVN0cmVhbUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbVJlbW90ZVJlZnJlc2hlcjo6WFdiZW1SZW1vdGVSZWZyOjpSZW1vdGVSZWZyZXNoKGxvbmcsbG9uZyAqLHN0cnVjdCBfV0JFTV9SRUZSRVNIRURfT0JKRUNUICogKikNCis/UmVtb3RlUmVmcmVzaEBYV2JlbVJlbW90ZVJlZnJAQ1diZW1SZW1vdGVSZWZyZXNoZXJAQFVBR0pKUEFKUEFQQVVfV0JFTV9SRUZSRVNIRURfT0JKRUNUQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0Zhc3RQcm9wZXJ0eUJhZzo6UmVtb3ZlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1JlbW92ZUBDRmFzdFByb3BlcnR5QmFnQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0sY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW0+LGNsYXNzIENGbGV4QXJyYXk+OjpSZW1vdmVBbGwodm9pZCkNCis/UmVtb3ZlQWxsQD8kQ1BvaW50ZXJBcnJheUBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQEBWQ0ZsZXhBcnJheUBAQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+OjpSZW1vdmVBbGwodm9pZCkNCis/UmVtb3ZlQWxsQD8kQ1BvaW50ZXJBcnJheUBWQ1dtaVRleHRTb3VyY2VAQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDV21pVGV4dFNvdXJjZUBAQEBWQ0ZsZXhBcnJheUBAQEBRQUVYWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENGYXN0UHJvcGVydHlCYWc6OlJlbW92ZUFsbCh2b2lkKQ0KKz9SZW1vdmVBbGxAQ0Zhc3RQcm9wZXJ0eUJhZ0BAUUFFSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OlJlbW92ZUFycmF5UHJvcEVsZW1lbnRCeUhhbmRsZShsb25nLGxvbmcsdW5zaWduZWQgbG9uZykNCis/UmVtb3ZlQXJyYXlQcm9wRWxlbWVudEJ5SGFuZGxlQENXYmVtT2JqZWN0QEBVQUdKSkpLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6UmVtb3ZlQXJyYXlQcm9wUmFuZ2VCeUhhbmRsZShsb25nLGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9SZW1vdmVBcnJheVByb3BSYW5nZUJ5SGFuZGxlQENXYmVtT2JqZWN0QEBVQUdKSkpLS0BaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5Pjo6UmVtb3ZlQXQoaW50LGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtICogKikNCis/UmVtb3ZlQXRAPyRDUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFZDRmxleEFycmF5QEBAQFFBRV9OSFBBUEFWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUG9pbnRlckFycmF5PGNsYXNzIENXbWlUZXh0U291cmNlLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENXbWlUZXh0U291cmNlPixjbGFzcyBDRmxleEFycmF5Pjo6UmVtb3ZlQXQoaW50LGNsYXNzIENXbWlUZXh0U291cmNlICogKikNCis/UmVtb3ZlQXRAPyRDUG9pbnRlckFycmF5QFZDV21pVGV4dFNvdXJjZUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNXbWlUZXh0U291cmNlQEBAQFZDRmxleEFycmF5QEBAQFFBRV9OSFBBUEFWQ1dtaVRleHRTb3VyY2VAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OlJlbW92ZURlY29yYXRpb24odm9pZCkNCis/UmVtb3ZlRGVjb3JhdGlvbkBDV2JlbU9iamVjdEBAVUFHSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtUmVmcmVzaGluZ1N2Yzo6UmVtb3ZlT2JqZWN0RnJvbVJlZnJlc2hlcihzdHJ1Y3QgX1dCRU1fUkVGUkVTSEVSX0lEICosbG9uZyxsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqKQ0KKz9SZW1vdmVPYmplY3RGcm9tUmVmcmVzaGVyQENXYmVtUmVmcmVzaGluZ1N2Y0BATUFFSlBBVV9XQkVNX1JFRlJFU0hFUl9JREBASkpLUEFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbVJlZnJlc2hpbmdTdmM6OlhXYmVtUmVmclN2Yzo6UmVtb3ZlT2JqZWN0RnJvbVJlZnJlc2hlcihzdHJ1Y3QgX1dCRU1fUkVGUkVTSEVSX0lEICosbG9uZyxsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqKQ0KKz9SZW1vdmVPYmplY3RGcm9tUmVmcmVzaGVyQFhXYmVtUmVmclN2Y0BDV2JlbVJlZnJlc2hpbmdTdmNAQFVBR0pQQVVfV0JFTV9SRUZSRVNIRVJfSURAQEpKS1BBS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRGF0YVRhYmxlOjpSZW1vdmVQcm9wZXJ0eSh1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP1JlbW92ZVByb3BlcnR5QENEYXRhVGFibGVAQFFBRVhHS0tAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OlJlbW92ZVF1YWxpZmllckFycmF5UmFuZ2UodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCxsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/UmVtb3ZlUXVhbGlmaWVyQXJyYXlSYW5nZUBDV2JlbU9iamVjdEBAUUFFSlBCRzBISktLQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENVbnR5cGVkQXJyYXk6OlJlbW92ZVJhbmdlKGNsYXNzIENQdHJTb3VyY2UgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0Zhc3RIZWFwICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9SZW1vdmVSYW5nZUBDVW50eXBlZEFycmF5QEBTR0pQQVZDUHRyU291cmNlQEBLS1BBVkNGYXN0SGVhcEBAS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xpbWl0YXRpb25NYXBwaW5nOjpSZW1vdmVTcGVjaWZpYyh2b2lkKQ0KKz9SZW1vdmVTcGVjaWZpY0BDTGltaXRhdGlvbk1hcHBpbmdAQFFBRVhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6UmVwYXJlbnQoY2xhc3MgQ1diZW1DbGFzcyAqLGNsYXNzIENXYmVtSW5zdGFuY2UgKiAqKQ0KKz9SZXBhcmVudEBDV2JlbUluc3RhbmNlQEBRQUVKUEFWQ1diZW1DbGFzc0BAUEFQQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6OlJlc2V0KHZvaWQpDQorP1Jlc2V0QENDb21wcmVzc2VkU3RyaW5nTGlzdEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTGltaXRhdGlvbk1hcHBpbmc6OlJlc2V0KHZvaWQpDQorP1Jlc2V0QENMaW1pdGF0aW9uTWFwcGluZ0BAUUFFWFhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDV2JlbVJlZnJlc2hpbmdTdmM6OlJlc2V0UmVmcmVzaEluZm8oc3RydWN0IF9XQkVNX1JFRlJFU0hfSU5GTyAqKQ0KKz9SZXNldFJlZnJlc2hJbmZvQENXYmVtUmVmcmVzaGluZ1N2Y0BASUFFSlBBVV9XQkVNX1JFRlJFU0hfSU5GT0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6UmVzb2x2ZUhlYXBQb2ludGVyKHVuc2lnbmVkIGxvbmcpDQorP1Jlc29sdmVIZWFwUG9pbnRlckBDQ2xhc3NQYXJ0QEBRQUVQQUVLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ0Zhc3RIZWFwOjpSZXNvbHZlSGVhcFBvaW50ZXIodW5zaWduZWQgbG9uZykNCis/UmVzb2x2ZUhlYXBQb2ludGVyQENGYXN0SGVhcEBAUUFFUEFFS0BaDQorOyBwdWJsaWM6IGNsYXNzIENDb21wcmVzc2VkU3RyaW5nICogX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpSZXNvbHZlSGVhcFN0cmluZyh1bnNpZ25lZCBsb25nKQ0KKz9SZXNvbHZlSGVhcFN0cmluZ0BDQ2xhc3NQYXJ0QEBRQUVQQVZDQ29tcHJlc3NlZFN0cmluZ0BAS0BaDQorOyBwdWJsaWM6IGNsYXNzIENDb21wcmVzc2VkU3RyaW5nICogX190aGlzY2FsbCBDRmFzdEhlYXA6OlJlc29sdmVTdHJpbmcodW5zaWduZWQgbG9uZykNCis/UmVzb2x2ZVN0cmluZ0BDRmFzdEhlYXBAQFFBRVBBVkNDb21wcmVzc2VkU3RyaW5nQEBLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUNhbGxTZWN1cml0eTo6UmV2ZXJ0VG9TZWxmKHZvaWQpDQorP1JldmVydFRvU2VsZkBDV2JlbUNhbGxTZWN1cml0eUBAVUFHSlhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXQ6OlNlbGZSZWJhc2Uodm9pZCkNCis/U2VsZlJlYmFzZUBDUXVhbGlmaWVyU2V0QEBRQUVIWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENJbnN0YW5jZVBhcnQ6OlNldEFjdHVhbFZhbHVlKGNsYXNzIENQcm9wZXJ0eUluZm9ybWF0aW9uICosY2xhc3MgQ1ZhciAqKQ0KKz9TZXRBY3R1YWxWYWx1ZUBDSW5zdGFuY2VQYXJ0QEBRQUVKUEFWQ1Byb3BlcnR5SW5mb3JtYXRpb25AQFBBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTGltaXRhdGlvbk1hcHBpbmc6OlNldEFkZENoaWxkS2V5cyhpbnQpDQorP1NldEFkZENoaWxkS2V5c0BDTGltaXRhdGlvbk1hcHBpbmdAQFFBRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENEYXRhVGFibGU6OlNldEFsbFRvRGVmYXVsdCh2b2lkKQ0KKz9TZXRBbGxUb0RlZmF1bHRAQ0RhdGFUYWJsZUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRmFzdEhlYXA6OlNldEFsbG9jYXRlZERhdGFMZW5ndGgodW5zaWduZWQgbG9uZykNCis/U2V0QWxsb2NhdGVkRGF0YUxlbmd0aEBDRmFzdEhlYXBAQFFBRVhLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6U2V0QXJyYXlQcm9wRWxlbWVudEJ5SGFuZGxlKGxvbmcsbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdm9pZCAqKQ0KKz9TZXRBcnJheVByb3BFbGVtZW50QnlIYW5kbGVAQ1diZW1PYmplY3RAQFVBR0pKSktLUEFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6U2V0QXJyYXlQcm9wUmFuZ2VCeUhhbmRsZShsb25nLGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdm9pZCAqKQ0KKz9TZXRBcnJheVByb3BSYW5nZUJ5SGFuZGxlQENXYmVtT2JqZWN0QEBVQUdKSkpLS0tQQVhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1BvaW50ZXJBcnJheTxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbT4sY2xhc3MgQ0ZsZXhBcnJheT46OlNldEF0KGludCxjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSAqLGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtICogKikNCis/U2V0QXRAPyRDUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFZDRmxleEFycmF5QEBAQFFBRVhIUEFWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQFBBUEFWMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT46OlNldEF0KGludCxjbGFzcyBDV21pVGV4dFNvdXJjZSAqLGNsYXNzIENXbWlUZXh0U291cmNlICogKikNCis/U2V0QXRAPyRDUG9pbnRlckFycmF5QFZDV21pVGV4dFNvdXJjZUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNXbWlUZXh0U291cmNlQEBAQFZDRmxleEFycmF5QEBAQFFBRVhIUEFWQ1dtaVRleHRTb3VyY2VAQFBBUEFWMkBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6U2V0Q2xhc3NOYW1lKGNsYXNzIENWYXIgKikNCis/U2V0Q2xhc3NOYW1lQENDbGFzc1BhcnRAQFFBRUpQQVZDVmFyQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xpbWl0YXRpb25NYXBwaW5nOjpTZXRDbGFzc09iamVjdChjbGFzcyBDV2JlbUNsYXNzICopDQorP1NldENsYXNzT2JqZWN0QENMaW1pdGF0aW9uTWFwcGluZ0BAUUFFWFBBVkNXYmVtQ2xhc3NAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1DbGFzczo6U2V0Q2xhc3NQYXJ0KHZvaWQgKix1bnNpZ25lZCBsb25nKQ0KKz9TZXRDbGFzc1BhcnRAQ1diZW1DbGFzc0BAVUFHSlBBWEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OlNldENsYXNzUGFydCh2b2lkICosdW5zaWduZWQgbG9uZykNCis/U2V0Q2xhc3NQYXJ0QENXYmVtSW5zdGFuY2VAQFVBR0pQQVhLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OlNldENsYXNzUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyxjbGFzcyBDVHlwZWRWYWx1ZSAqKQ0KKz9TZXRDbGFzc1F1YWxpZmllckBDQ2xhc3NQYXJ0QEBRQUVKUEJHSlBBVkNUeXBlZFZhbHVlQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6U2V0Q2xhc3NRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDVmFyICosbG9uZykNCis/U2V0Q2xhc3NRdWFsaWZpZXJAQ0NsYXNzUGFydEBAUUFFSlBCR1BBVkNWYXJAQEpAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0RlY29yYXRpb25QYXJ0OjpTZXRDbGllbnRPbmx5KHZvaWQpDQorP1NldENsaWVudE9ubHlAQ0RlY29yYXRpb25QYXJ0QEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENXYmVtT2JqZWN0OjpTZXRDbGllbnRPbmx5KHZvaWQpDQorP1NldENsaWVudE9ubHlAQ1diZW1PYmplY3RAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Zhc3RIZWFwOjpTZXRDb250YWluZXIoY2xhc3MgQ0hlYXBDb250YWluZXIgKikNCis/U2V0Q29udGFpbmVyQENGYXN0SGVhcEBAUUFFWFBBVkNIZWFwQ29udGFpbmVyQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKixjbGFzcyBDRmFzdEhlYXAgKikNCis/U2V0RGF0YUBDQmFzaWNRdWFsaWZpZXJTZXRAQFFBRVhQQUVQQVZDRmFzdEhlYXBAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ2xhc3NBbmRNZXRob2RzOjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKixjbGFzcyBDV2JlbUNsYXNzICosY2xhc3MgQ0NsYXNzQW5kTWV0aG9kcyAqKQ0KKz9TZXREYXRhQENDbGFzc0FuZE1ldGhvZHNAQFFBRVhQQUVQQVZDV2JlbUNsYXNzQEBQQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKixjbGFzcyBDQ2xhc3NQYXJ0Q29udGFpbmVyICosY2xhc3MgQ0NsYXNzUGFydCAqKQ0KKz9TZXREYXRhQENDbGFzc1BhcnRAQFFBRVhQQUVQQVZDQ2xhc3NQYXJ0Q29udGFpbmVyQEBQQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ29tcHJlc3NlZFN0cmluZ0xpc3Q6OlNldERhdGEodW5zaWduZWQgY2hhciAqKQ0KKz9TZXREYXRhQENDb21wcmVzc2VkU3RyaW5nTGlzdEBAUUFFWFBBRUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRGF0YVRhYmxlOjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKixpbnQsaW50LGNsYXNzIENEYXRhVGFibGVDb250YWluZXIgKikNCis/U2V0RGF0YUBDRGF0YVRhYmxlQEBRQUVYUEFFSEhQQVZDRGF0YVRhYmxlQ29udGFpbmVyQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0RlY29yYXRpb25QYXJ0OjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKikNCis/U2V0RGF0YUBDRGVjb3JhdGlvblBhcnRAQFFBRVhQQUVAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRmFzdEhlYXA6OlNldERhdGEodW5zaWduZWQgY2hhciAqLGNsYXNzIENIZWFwQ29udGFpbmVyICopDQorP1NldERhdGFAQ0Zhc3RIZWFwQEBRQUVIUEFFUEFWQ0hlYXBDb250YWluZXJAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0OjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKixjbGFzcyBDSW5zdGFuY2VQYXJ0Q29udGFpbmVyICosY2xhc3MgQ0NsYXNzUGFydCAmLHVuc2lnbmVkIGludCkNCis/U2V0RGF0YUBDSW5zdGFuY2VQYXJ0QEBRQUVYUEFFUEFWQ0luc3RhbmNlUGFydENvbnRhaW5lckBAQUFWQ0NsYXNzUGFydEBASUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTWV0aG9kUGFydDo6U2V0RGF0YSh1bnNpZ25lZCBjaGFyICosY2xhc3MgQ01ldGhvZFBhcnRDb250YWluZXIgKixjbGFzcyBDTWV0aG9kUGFydCAqKQ0KKz9TZXREYXRhQENNZXRob2RQYXJ0QEBRQUVYUEFFUEFWQ01ldGhvZFBhcnRDb250YWluZXJAQFBBVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENNZXRob2RRdWFsaWZpZXJTZXQ6OlNldERhdGEoY2xhc3MgQ01ldGhvZFBhcnQgKixjbGFzcyBDTWV0aG9kUGFydCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldERhdGFAQ01ldGhvZFF1YWxpZmllclNldEBAUUFFWFBBVkNNZXRob2RQYXJ0QEAwUEJHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENNZXRob2RRdWFsaWZpZXJTZXRDb250YWluZXI6OlNldERhdGEoY2xhc3MgQ01ldGhvZFBhcnQgKixjbGFzcyBDTWV0aG9kUGFydCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldERhdGFAQ01ldGhvZFF1YWxpZmllclNldENvbnRhaW5lckBAUUFFWFBBVkNNZXRob2RQYXJ0QEAwUEJHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENQcm9wZXJ0eUxvb2t1cFRhYmxlOjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKixjbGFzcyBDUHJvcGVydHlUYWJsZUNvbnRhaW5lciAqKQ0KKz9TZXREYXRhQENQcm9wZXJ0eUxvb2t1cFRhYmxlQEBRQUVYUEFFUEFWQ1Byb3BlcnR5VGFibGVDb250YWluZXJAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUXVhbGlmaWVyU2V0OjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKixjbGFzcyBDUXVhbGlmaWVyU2V0Q29udGFpbmVyICosY2xhc3MgQ0Jhc2ljUXVhbGlmaWVyU2V0ICopDQorP1NldERhdGFAQ1F1YWxpZmllclNldEBAUUFFWFBBRVBBVkNRdWFsaWZpZXJTZXRDb250YWluZXJAQFBBVkNCYXNpY1F1YWxpZmllclNldEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXRMaXN0OjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKixpbnQsY2xhc3MgQ1F1YWxpZmllclNldExpc3RDb250YWluZXIgKikNCis/U2V0RGF0YUBDUXVhbGlmaWVyU2V0TGlzdEBAUUFFWFBBRUhQQVZDUXVhbGlmaWVyU2V0TGlzdENvbnRhaW5lckBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTaGFyZWRMb2NrOjpTZXREYXRhKHN0cnVjdCBTSEFSRURfTE9DS19EQVRBICopDQorP1NldERhdGFAQ1NoYXJlZExvY2tAQFFBRVhQQVVTSEFSRURfTE9DS19EQVRBQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKixpbnQpDQorP1NldERhdGFAQ1diZW1DbGFzc0BAVUFFWFBBRUhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1diZW1EYXRhUGFja2V0OjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nLGJvb2wpDQorP1NldERhdGFAQ1diZW1EYXRhUGFja2V0QEBRQUVYUEFFS19OQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OlNldERhdGEodW5zaWduZWQgY2hhciAqLGludCx1bnNpZ25lZCBsb25nKQ0KKz9TZXREYXRhQENXYmVtSW5zdGFuY2VAQFFBRVhQQUVIS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OlNldERhdGEodW5zaWduZWQgY2hhciAqLGludCkNCis/U2V0RGF0YUBDV2JlbUluc3RhbmNlQEBVQUVYUEFFSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDV2JlbU10Z3REZWxpdmVyRXZlbnRQYWNrZXQ6OlNldERhdGEodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcsYm9vbCkNCis/U2V0RGF0YUBDV2JlbU10Z3REZWxpdmVyRXZlbnRQYWNrZXRAQFFBRVhQQUVLX05AWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1diZW1PYmplY3RBcnJheVBhY2tldDo6U2V0RGF0YSh1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyxib29sKQ0KKz9TZXREYXRhQENXYmVtT2JqZWN0QXJyYXlQYWNrZXRAQFFBRVhQQUVLX05AWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1diZW1TbWFydEVudW1OZXh0UGFja2V0OjpTZXREYXRhKHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nLGJvb2wpDQorP1NldERhdGFAQ1diZW1TbWFydEVudW1OZXh0UGFja2V0QEBRQUVYUEFFS19OQFoNCis7IHByb3RlY3RlZDogc3RhdGljIHZvaWQgX19zdGRjYWxsIENCYXNpY1F1YWxpZmllclNldDo6U2V0RGF0YUxlbmd0aCh1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZykNCis/U2V0RGF0YUxlbmd0aEBDQmFzaWNRdWFsaWZpZXJTZXRAQEtHWFBBRUtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6U2V0RGF0YUxlbmd0aCh1bnNpZ25lZCBsb25nKQ0KKz9TZXREYXRhTGVuZ3RoQENDbGFzc1BhcnRAQFFBRVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENJbnN0YW5jZVBhcnQ6OlNldERhdGFMZW5ndGgodW5zaWduZWQgbG9uZykNCis/U2V0RGF0YUxlbmd0aEBDSW5zdGFuY2VQYXJ0QEBRQUVYS0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OlNldERhdGFUb05vbmUodW5zaWduZWQgY2hhciAqKQ0KKz9TZXREYXRhVG9Ob25lQENCYXNpY1F1YWxpZmllclNldEBAU0dYUEFFQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDbGFzc0FuZE1ldGhvZHM6OlNldERhdGFXaXRoTnVtUHJvcHModW5zaWduZWQgY2hhciAqLGNsYXNzIENXYmVtQ2xhc3MgKix1bnNpZ25lZCBsb25nLGNsYXNzIENDbGFzc0FuZE1ldGhvZHMgKikNCis/U2V0RGF0YVdpdGhOdW1Qcm9wc0BDQ2xhc3NBbmRNZXRob2RzQEBRQUVYUEFFUEFWQ1diZW1DbGFzc0BAS1BBVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OlNldERhdGFXaXRoTnVtUHJvcHModW5zaWduZWQgY2hhciAqLGNsYXNzIENDbGFzc1BhcnRDb250YWluZXIgKix1bnNpZ25lZCBsb25nLGNsYXNzIENDbGFzc1BhcnQgKikNCis/U2V0RGF0YVdpdGhOdW1Qcm9wc0BDQ2xhc3NQYXJ0QEBRQUVYUEFFUEFWQ0NsYXNzUGFydENvbnRhaW5lckBAS1BBVjFAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6U2V0RGVjb3JhdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldERlY29yYXRpb25AQ1diZW1PYmplY3RAQFVBR0pQQkcwQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OlNldERlZmF1bHRWYWx1ZShjbGFzcyBDUHJvcGVydHlJbmZvcm1hdGlvbiAqLGNsYXNzIENWYXIgKikNCis/U2V0RGVmYXVsdFZhbHVlQENDbGFzc1BhcnRAQElBRUpQQVZDUHJvcGVydHlJbmZvcm1hdGlvbkBAUEFWQ1ZhckBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OlNldERlZmF1bHRWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENWYXIgKikNCis/U2V0RGVmYXVsdFZhbHVlQENDbGFzc1BhcnRAQFFBRUpQQkdQQVZDVmFyQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0RhdGFUYWJsZTo6U2V0RGVmYXVsdG5lc3MoaW50LGludCkNCis/U2V0RGVmYXVsdG5lc3NAQ0RhdGFUYWJsZUBAUUFFWEhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMaW1pdGF0aW9uTWFwcGluZzo6U2V0RmxhZ3MobG9uZykNCis/U2V0RmxhZ3NAQ0xpbWl0YXRpb25NYXBwaW5nQEBRQUVYSkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ29tcHJlc3NlZFN0cmluZzo6U2V0RnJvbUFzY2lpKGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP1NldEZyb21Bc2NpaUBDQ29tcHJlc3NlZFN0cmluZ0BAUUFFWFBCRElAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmc6OlNldEZyb21Vbmljb2RlKGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRGcm9tVW5pY29kZUBDQ29tcHJlc3NlZFN0cmluZ0BAUUFFWEhQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmc6OlNldEZyb21Vbmljb2RlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldEZyb21Vbmljb2RlQENDb21wcmVzc2VkU3RyaW5nQEBRQUVYUEJHQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENGYXN0SGVhcDo6U2V0SW5MaW5lTGVuZ3RoKHVuc2lnbmVkIGxvbmcpDQorP1NldEluTGluZUxlbmd0aEBDRmFzdEhlYXBAQElBRVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMaW1pdGF0aW9uTWFwcGluZzo6U2V0SW5jbHVkZURlcml2YXRpb24oaW50KQ0KKz9TZXRJbmNsdWRlRGVyaXZhdGlvbkBDTGltaXRhdGlvbk1hcHBpbmdAQFFBRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMaW1pdGF0aW9uTWFwcGluZzo6U2V0SW5jbHVkZU5hbWVzcGFjZShpbnQpDQorP1NldEluY2x1ZGVOYW1lc3BhY2VAQ0xpbWl0YXRpb25NYXBwaW5nQEBRQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTGltaXRhdGlvbk1hcHBpbmc6OlNldEluY2x1ZGVTZXJ2ZXIoaW50KQ0KKz9TZXRJbmNsdWRlU2VydmVyQENMaW1pdGF0aW9uTWFwcGluZ0BAUUFFWEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6U2V0SW5oZXJpdGFuY2VDaGFpbihsb25nLHVuc2lnbmVkIHNob3J0ICogKikNCis/U2V0SW5oZXJpdGFuY2VDaGFpbkBDQ2xhc3NQYXJ0QEBRQUVKSlBBUEFHQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUNsYXNzOjpTZXRJbmhlcml0YW5jZUNoYWluKGxvbmcsdW5zaWduZWQgc2hvcnQgKiAqKQ0KKz9TZXRJbmhlcml0YW5jZUNoYWluQENXYmVtQ2xhc3NAQFVBR0pKUEFQQUdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OlNldEluaGVyaXRhbmNlQ2hhaW4obG9uZyx1bnNpZ25lZCBzaG9ydCAqICopDQorP1NldEluaGVyaXRhbmNlQ2hhaW5AQ1diZW1JbnN0YW5jZUBAVUFHSkpQQVBBR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0OjpTZXRJbnN0YW5jZVF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcsY2xhc3MgQ1R5cGVkVmFsdWUgKikNCis/U2V0SW5zdGFuY2VRdWFsaWZpZXJAQ0luc3RhbmNlUGFydEBAUUFFSlBCR0pQQVZDVHlwZWRWYWx1ZUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENJbnN0YW5jZVBhcnQ6OlNldEluc3RhbmNlUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1ZhciAqLGxvbmcpDQorP1NldEluc3RhbmNlUXVhbGlmaWVyQENJbnN0YW5jZVBhcnRAQFFBRUpQQkdQQVZDVmFyQEBKQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGaXhlZEJTVFJBcnJheTo6U2V0TGVuZ3RoKGludCkNCis/U2V0TGVuZ3RoQENGaXhlZEJTVFJBcnJheUBAUUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0RlY29yYXRpb25QYXJ0OjpTZXRMaW1pdGVkKHZvaWQpDQorP1NldExpbWl0ZWRAQ0RlY29yYXRpb25QYXJ0QEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OlNldExvY2FsaXplZChpbnQpDQorP1NldExvY2FsaXplZEBDQ2xhc3NQYXJ0QEBRQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0OjpTZXRMb2NhbGl6ZWQoaW50KQ0KKz9TZXRMb2NhbGl6ZWRAQ0luc3RhbmNlUGFydEBAUUFFWEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpTZXRMb2NhbGl6ZWQoaW50KQ0KKz9TZXRMb2NhbGl6ZWRAQ1diZW1DbGFzc0BAVUFFWEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpTZXRMb2NhbGl6ZWQoaW50KQ0KKz9TZXRMb2NhbGl6ZWRAQ1diZW1JbnN0YW5jZUBAVUFFWEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGhvZFBhcnQ6OlNldE1ldGhvZE9yaWdpbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcpDQorP1NldE1ldGhvZE9yaWdpbkBDTWV0aG9kUGFydEBAUUFFSlBCR0pAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtQ2xhc3M6OlNldE1ldGhvZE9yaWdpbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcpDQorP1NldE1ldGhvZE9yaWdpbkBDV2JlbUNsYXNzQEBVQUdKUEJHSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1JbnN0YW5jZTo6U2V0TWV0aG9kT3JpZ2luKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZykNCis/U2V0TWV0aG9kT3JpZ2luQENXYmVtSW5zdGFuY2VAQFVBR0pQQkdKQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6U2V0TWV0aG9kUXVhbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsbG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKikNCis/U2V0TWV0aG9kUXVhbEBDV2JlbU9iamVjdEBAVUFHSlBCRzBKS0tKS1BBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OlNldE1ldGhvZFF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyxjbGFzcyBDVHlwZWRWYWx1ZSAqKQ0KKz9TZXRNZXRob2RRdWFsaWZpZXJAQ1diZW1DbGFzc0BAVUFFSlBCRzBKUEFWQ1R5cGVkVmFsdWVAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OlNldE1ldGhvZFF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyxjbGFzcyBDVmFyICopDQorP1NldE1ldGhvZFF1YWxpZmllckBDV2JlbUNsYXNzQEBVQUVKUEJHMEpQQVZDVmFyQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpTZXRNZXRob2RRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcsY2xhc3MgQ1R5cGVkVmFsdWUgKikNCis/U2V0TWV0aG9kUXVhbGlmaWVyQENXYmVtSW5zdGFuY2VAQFVBRUpQQkcwSlBBVkNUeXBlZFZhbHVlQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpTZXRNZXRob2RRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcsY2xhc3MgQ1ZhciAqKQ0KKz9TZXRNZXRob2RRdWFsaWZpZXJAQ1diZW1JbnN0YW5jZUBAVUFFSlBCRzBKUEFWQ1ZhckBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENEYXRhVGFibGU6OlNldE51bGxuZXNzKGludCxpbnQpDQorP1NldE51bGxuZXNzQENEYXRhVGFibGVAQFFBRVhISEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OlNldE9ialF1YWwodW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxsb25nLHVuc2lnbmVkIGxvbmcsdm9pZCAqKQ0KKz9TZXRPYmpRdWFsQENXYmVtT2JqZWN0QEBVQUdKUEJHSktLSktQQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpTZXRPYmplY3RGbGFncyhsb25nLHVuc2lnbmVkIF9faW50NjQsdW5zaWduZWQgX19pbnQ2NCkNCis/U2V0T2JqZWN0RmxhZ3NAQ1diZW1PYmplY3RAQFVBR0pKX0swQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6U2V0T2JqZWN0TWVtb3J5KHZvaWQgKix1bnNpZ25lZCBsb25nKQ0KKz9TZXRPYmplY3RNZW1vcnlAQ1diZW1PYmplY3RAQFVBR0pQQVhLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUNsYXNzOjpTZXRPYmplY3RQYXJ0cyh2b2lkICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9TZXRPYmplY3RQYXJ0c0BDV2JlbUNsYXNzQEBVQUdKUEFYS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OlNldE9iamVjdFBhcnRzKHZvaWQgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP1NldE9iamVjdFBhcnRzQENXYmVtSW5zdGFuY2VAQFVBR0pQQVhLS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlOjpTZXRPcmlnaW4oZW51bSB0YWdfV01JX1RIUkVBRF9TRUNVUklUWV9PUklHSU4pDQorP1NldE9yaWdpbkBDV2JlbVRocmVhZFNlY3VyaXR5SGFuZGxlQEBRQUVYVzR0YWdfV01JX1RIUkVBRF9TRUNVUklUWV9PUklHSU5AQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OlNldFByb3BCeUhhbmRsZShsb25nLGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICopDQorP1NldFByb3BCeUhhbmRsZUBDV2JlbU9iamVjdEBAVUFHSkpKS1BBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OlNldFByb3BRdWFsKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxsb25nLHVuc2lnbmVkIGxvbmcsdm9pZCAqKQ0KKz9TZXRQcm9wUXVhbEBDV2JlbU9iamVjdEBAVUFHSlBCRzBKS0tKS1BBWEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpTZXRQcm9wUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nLGNsYXNzIENUeXBlZFZhbHVlICopDQorP1NldFByb3BRdWFsaWZpZXJAQ0NsYXNzUGFydEBAUUFFSlBCRzBKUEFWQ1R5cGVkVmFsdWVAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDQ2xhc3NQYXJ0OjpTZXRQcm9wUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nLGNsYXNzIENWYXIgKikNCis/U2V0UHJvcFF1YWxpZmllckBDQ2xhc3NQYXJ0QEBRQUVKUEJHMEpQQVZDVmFyQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpTZXRQcm9wUXVhbGlmaWVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nLGNsYXNzIENUeXBlZFZhbHVlICopDQorP1NldFByb3BRdWFsaWZpZXJAQ1diZW1DbGFzc0BAVUFFSlBCRzBKUEFWQ1R5cGVkVmFsdWVAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OlNldFByb3BRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcsY2xhc3MgQ1ZhciAqKQ0KKz9TZXRQcm9wUXVhbGlmaWVyQENXYmVtQ2xhc3NAQFVBRUpQQkcwSlBBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OlNldFByb3BRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcsY2xhc3MgQ1R5cGVkVmFsdWUgKikNCis/U2V0UHJvcFF1YWxpZmllckBDV2JlbUluc3RhbmNlQEBVQUVKUEJHMEpQQVZDVHlwZWRWYWx1ZUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6U2V0UHJvcFF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyxjbGFzcyBDVmFyICopDQorP1NldFByb3BRdWFsaWZpZXJAQ1diZW1JbnN0YW5jZUBAVUFFSlBCRzBKUEFWQ1ZhckBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6U2V0UHJvcFZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1ZhciAqLGxvbmcpDQorP1NldFByb3BWYWx1ZUBDV2JlbUNsYXNzQEBVQUVKUEJHUEFWQ1ZhckBASkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OlNldFByb3BWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENWYXIgKixsb25nKQ0KKz9TZXRQcm9wVmFsdWVAQ1diZW1JbnN0YW5jZUBAVUFFSlBCR1BBVkNWYXJAQEpAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0NsYXNzUGFydDo6U2V0UHJvcGVydHlPcmlnaW4odW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nKQ0KKz9TZXRQcm9wZXJ0eU9yaWdpbkBDQ2xhc3NQYXJ0QEBRQUVKUEJHSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1DbGFzczo6U2V0UHJvcGVydHlPcmlnaW4odW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nKQ0KKz9TZXRQcm9wZXJ0eU9yaWdpbkBDV2JlbUNsYXNzQEBVQUdKUEJHSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1JbnN0YW5jZTo6U2V0UHJvcGVydHlPcmlnaW4odW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nKQ0KKz9TZXRQcm9wZXJ0eU9yaWdpbkBDV2JlbUluc3RhbmNlQEBVQUdKUEJHSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OlNldFF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcsY2xhc3MgQ1R5cGVkVmFsdWUgKikNCis/U2V0UXVhbGlmaWVyQENXYmVtQ2xhc3NAQFVBRUpQQkdKUEFWQ1R5cGVkVmFsdWVAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OlNldFF1YWxpZmllcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENWYXIgKixsb25nKQ0KKz9TZXRRdWFsaWZpZXJAQ1diZW1DbGFzc0BAVUFFSlBCR1BBVkNWYXJAQEpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpTZXRRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nLGNsYXNzIENUeXBlZFZhbHVlICopDQorP1NldFF1YWxpZmllckBDV2JlbUluc3RhbmNlQEBVQUVKUEJHSlBBVkNUeXBlZFZhbHVlQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpTZXRRdWFsaWZpZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDVmFyICosbG9uZykNCis/U2V0UXVhbGlmaWVyQENXYmVtSW5zdGFuY2VAQFVBRUpQQkdQQVZDVmFyQEBKQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtT2JqZWN0OjpTZXRRdWFsaWZpZXJBcnJheVJhbmdlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQsbG9uZyx1bnNpZ25lZCBsb25nLGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdm9pZCAqKQ0KKz9TZXRRdWFsaWZpZXJBcnJheVJhbmdlQENXYmVtT2JqZWN0QEBRQUVKUEJHMEhKS0pLS0tQQVhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1F1YWxpZmllclNldDo6U2V0UXVhbGlmaWVyVmFsdWUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBjaGFyLGNsYXNzIENUeXBlZFZhbHVlICosaW50LGludCkNCis/U2V0UXVhbGlmaWVyVmFsdWVAQ1F1YWxpZmllclNldEBAUUFFSlBCR0VQQVZDVHlwZWRWYWx1ZUBASEhAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1VudHlwZWRBcnJheTo6U2V0UmFuZ2UoY2xhc3MgQ1B0clNvdXJjZSAqLGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIENGYXN0SGVhcCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKikNCis/U2V0UmFuZ2VAQ1VudHlwZWRBcnJheUBAU0dKUEFWQ1B0clNvdXJjZUBASktLUEFWQ0Zhc3RIZWFwQEBLS0tQQVhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0luc3RhbmNlUFFTQ29udGFpbmVyOjpTZXRTZWNvbmRhcnlTZXREYXRhKHZvaWQpDQorP1NldFNlY29uZGFyeVNldERhdGFAQ0luc3RhbmNlUFFTQ29udGFpbmVyQEBRQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6U2V0U2VydmVyTmFtZXNwYWNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0U2VydmVyTmFtZXNwYWNlQENXYmVtT2JqZWN0QEBVQUdKUEJHMEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtUmVmcmVzaGluZ1N2Yzo6U2V0U2VydmljZURhdGEodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqKQ0KKz9TZXRTZXJ2aWNlRGF0YUBDV2JlbVJlZnJlc2hpbmdTdmNAQE1BRUpQQUcwQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbVJlZnJlc2hpbmdTdmM6OlhDZmdSZWZyU3J2Yzo6U2V0U2VydmljZURhdGEodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqKQ0KKz9TZXRTZXJ2aWNlRGF0YUBYQ2ZnUmVmclNydmNAQ1diZW1SZWZyZXNoaW5nU3ZjQEBVQUdKUEFHMEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTWV0aG9kRGVzY3JpcHRpb246OlNldFNpZyhpbnQsdW5zaWduZWQgbG9uZykNCis/U2V0U2lnQENNZXRob2REZXNjcmlwdGlvbkBAUUFFWEhLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRob2RQYXJ0OjpTZXRTaWduYXR1cmUoaW50LGVudW0gTUVUSE9EX1NJR05BVFVSRV9UWVBFLGNsYXNzIENXYmVtT2JqZWN0ICopDQorP1NldFNpZ25hdHVyZUBDTWV0aG9kUGFydEBASUFFSkhXNE1FVEhPRF9TSUdOQVRVUkVfVFlQRUBAUEFWQ1diZW1PYmplY3RAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5Pjo6U2V0U2l6ZShpbnQpDQorP1NldFNpemVAPyRDUG9pbnRlckFycmF5QFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBAQFZDRmxleEFycmF5QEBAQFFBRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+OjpTZXRTaXplKGludCkNCis/U2V0U2l6ZUA/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBAUUFFWEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtQ2FsbFNlY3VyaXR5OjpTZXRUaHJlYWRTZWN1cml0eShzdHJ1Y3QgX0lXbWlUaHJlYWRTZWNIYW5kbGUgKikNCis/U2V0VGhyZWFkU2VjdXJpdHlAQ1diZW1DYWxsU2VjdXJpdHlAQFVBR0pQQVVfSVdtaVRocmVhZFNlY0hhbmRsZUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGYXN0SGVhcDo6U2V0VXNlZExlbmd0aCh1bnNpZ25lZCBsb25nKQ0KKz9TZXRVc2VkTGVuZ3RoQENGYXN0SGVhcEBAUUFFWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xpbWl0YXRpb25NYXBwaW5nOjpTZXRWdGFibGVMZW5ndGgodW5zaWduZWQgbG9uZyxpbnQpDQorP1NldFZ0YWJsZUxlbmd0aEBDTGltaXRhdGlvbk1hcHBpbmdAQFFBRVhLSEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDV2JlbURhdGFQYWNrZXQ6OlNldHVwRGF0YVBhY2tldEhlYWRlcih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9TZXR1cERhdGFQYWNrZXRIZWFkZXJAQ1diZW1EYXRhUGFja2V0QEBJQUVKS0VLS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENMaW1pdGF0aW9uTWFwcGluZzo6U2hvdWxkQWRkQ2hpbGRLZXlzKHZvaWQpDQorP1Nob3VsZEFkZENoaWxkS2V5c0BDTGltaXRhdGlvbk1hcHBpbmdAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDTGltaXRhdGlvbk1hcHBpbmc6OlNob3VsZEluY2x1ZGVEZXJpdmF0aW9uKHZvaWQpDQorP1Nob3VsZEluY2x1ZGVEZXJpdmF0aW9uQENMaW1pdGF0aW9uTWFwcGluZ0BAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENMaW1pdGF0aW9uTWFwcGluZzo6U2hvdWxkSW5jbHVkZU5hbWVzcGFjZSh2b2lkKQ0KKz9TaG91bGRJbmNsdWRlTmFtZXNwYWNlQENMaW1pdGF0aW9uTWFwcGluZ0BAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENMaW1pdGF0aW9uTWFwcGluZzo6U2hvdWxkSW5jbHVkZVNlcnZlcih2b2lkKQ0KKz9TaG91bGRJbmNsdWRlU2VydmVyQENMaW1pdGF0aW9uTWFwcGluZ0BAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENGYXN0UHJvcGVydHlCYWc6OlNpemUodm9pZCkNCis/U2l6ZUBDRmFzdFByb3BlcnR5QmFnQEBRQUVIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpTa2lwKHZvaWQpDQorP1NraXBAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBRQUVQQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDRmFzdEhlYXA6OlNraXAodm9pZCkNCis/U2tpcEBDRmFzdEhlYXBAQFFBRVBBRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENQcm9wZXJ0eUxvb2t1cFRhYmxlOjpTa2lwKHZvaWQpDQorP1NraXBAQ1Byb3BlcnR5TG9va3VwVGFibGVAQFFBRVBBRVhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRml4ZWRCU1RSQXJyYXk6OlNvcnRJblBsYWNlKHZvaWQpDQorP1NvcnRJblBsYWNlQENGaXhlZEJTVFJBcnJheUBAUUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1DbGFzczo6U3Bhd25EZXJpdmVkQ2xhc3MobG9uZyxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqICopDQorP1NwYXduRGVyaXZlZENsYXNzQENXYmVtQ2xhc3NAQFVBR0pKUEFQQVVJV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OlNwYXduRGVyaXZlZENsYXNzKGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiAqKQ0KKz9TcGF3bkRlcml2ZWRDbGFzc0BDV2JlbUluc3RhbmNlQEBVQUdKSlBBUEFVSVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUNsYXNzOjpTcGF3bkluc3RhbmNlKGxvbmcsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiAqKQ0KKz9TcGF3bkluc3RhbmNlQENXYmVtQ2xhc3NAQFVBR0pKUEFQQVVJV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OlNwYXduSW5zdGFuY2UobG9uZyxzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqICopDQorP1NwYXduSW5zdGFuY2VAQ1diZW1JbnN0YW5jZUBAVUFHSkpQQVBBVUlXYmVtQ2xhc3NPYmplY3RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1DbGFzczo6U3Bhd25LZXllZEluc3RhbmNlKGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKixzdHJ1Y3QgX0lXbWlPYmplY3QgKiAqKQ0KKz9TcGF3bktleWVkSW5zdGFuY2VAQ1diZW1DbGFzc0BAVUFHSkpQQkdQQVBBVV9JV21pT2JqZWN0QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OlNwYXduS2V5ZWRJbnN0YW5jZShsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IF9JV21pT2JqZWN0ICogKikNCis/U3Bhd25LZXllZEluc3RhbmNlQENXYmVtSW5zdGFuY2VAQFVBR0pKUEJHUEFQQVVfSVdtaU9iamVjdEBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmc6OlN0YXJ0c1dpdGhOb0Nhc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/U3RhcnRzV2l0aE5vQ2FzZUBDQ29tcHJlc3NlZFN0cmluZ0BAUUJFSFBCR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1SZW1vdGVSZWZyZXNoZXI6OlhXYmVtUmVtb3RlUmVmcjo6U3RvcFJlZnJlc2hpbmcobG9uZyxsb25nICosbG9uZykNCis/U3RvcFJlZnJlc2hpbmdAWFdiZW1SZW1vdGVSZWZyQENXYmVtUmVtb3RlUmVmcmVzaGVyQEBVQUdKSlBBSkpAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0VtYmVkZGVkT2JqZWN0OjpTdG9yZUVtYmVkZGVkKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ1ZhciAmKQ0KKz9TdG9yZUVtYmVkZGVkQENFbWJlZGRlZE9iamVjdEBAUUFFWEtBQVZDVmFyQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0VtYmVkZGVkT2JqZWN0OjpTdG9yZUVtYmVkZGVkKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ1diZW1PYmplY3QgKikNCis/U3RvcmVFbWJlZGRlZEBDRW1iZWRkZWRPYmplY3RAQFFBRVhLUEFWQ1diZW1PYmplY3RAQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDUXVhbGlmaWVyU2V0OjpTdG9yZVF1YWxpZmllckNvbmZsaWN0cyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENWYXIgJixjbGFzcyBDUXVhbGlmaWVyRmxhdm9yICYsY2xhc3MgQ1ZhclZlY3RvciAmKQ0KKz9TdG9yZVF1YWxpZmllckNvbmZsaWN0c0BDUXVhbGlmaWVyU2V0QEBJQUVKUEJHQUFWQ1ZhckBAQUFWQ1F1YWxpZmllckZsYXZvckBAQUFWQ1ZhclZlY3RvckBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmc6OlN0b3JlVG9DVmFyKGNsYXNzIENWYXIgJiljb25zdCANCis/U3RvcmVUb0NWYXJAQ0NvbXByZXNzZWRTdHJpbmdAQFFCRUhBQVZDVmFyQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0VtYmVkZGVkT2JqZWN0OjpTdG9yZVRvQ1ZhcihjbGFzcyBDVmFyICYpDQorP1N0b3JlVG9DVmFyQENFbWJlZGRlZE9iamVjdEBAUUFFWEFBVkNWYXJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1DbGFzczo6U3RyaXBDbGFzc1BhcnQodm9pZCkNCis/U3RyaXBDbGFzc1BhcnRAQ1diZW1DbGFzc0BAVUFHSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1JbnN0YW5jZTo6U3RyaXBDbGFzc1BhcnQodm9pZCkNCis/U3RyaXBDbGFzc1BhcnRAQ1diZW1JbnN0YW5jZUBAVUFHSlhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5Pjo6U3dhcChpbnQsaW50KQ0KKz9Td2FwQD8kQ1BvaW50ZXJBcnJheUBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQEBWQ0ZsZXhBcnJheUBAQEBRQUVYSEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT46OlN3YXAoaW50LGludCkNCis/U3dhcEA/JENQb2ludGVyQXJyYXlAVkNXbWlUZXh0U291cmNlQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ1dtaVRleHRTb3VyY2VAQEBAVkNGbGV4QXJyYXlAQEBAUUFFWEhIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OlRlc3RDaXJjdWxhclJlZmVyZW5jZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9UZXN0Q2lyY3VsYXJSZWZlcmVuY2VAQ0NsYXNzUGFydEBAUUFFSlBCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRml4ZWRCU1RSQXJyYXk6OlRocmVlV2F5TWVyZ2VPcmRlcmVkKGNsYXNzIENGaXhlZEJTVFJBcnJheSAmLGNsYXNzIENGaXhlZEJTVFJBcnJheSAmLGNsYXNzIENGaXhlZEJTVFJBcnJheSAmKQ0KKz9UaHJlZVdheU1lcmdlT3JkZXJlZEBDRml4ZWRCU1RSQXJyYXlAQFFBRVhBQVYxQDAwQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpUcmFuc2xhdGVUb05ld0hlYXAoY2xhc3MgQ1B0clNvdXJjZSAqLGNsYXNzIENGYXN0SGVhcCAqLGNsYXNzIENGYXN0SGVhcCAqKQ0KKz9UcmFuc2xhdGVUb05ld0hlYXBAQ0Jhc2ljUXVhbGlmaWVyU2V0QEBTR0hQQVZDUHRyU291cmNlQEBQQVZDRmFzdEhlYXBAQDFAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ29tcHJlc3NlZFN0cmluZzo6VHJhbnNsYXRlVG9OZXdIZWFwKGNsYXNzIENGYXN0SGVhcCAqLGNsYXNzIENGYXN0SGVhcCAqKQ0KKz9UcmFuc2xhdGVUb05ld0hlYXBAQ0NvbXByZXNzZWRTdHJpbmdAQFFBRUhQQVZDRmFzdEhlYXBAQDBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRGF0YVRhYmxlOjpUcmFuc2xhdGVUb05ld0hlYXAoY2xhc3MgQ1Byb3BlcnR5TG9va3VwVGFibGUgKixpbnQsY2xhc3MgQ0Zhc3RIZWFwICosY2xhc3MgQ0Zhc3RIZWFwICopDQorP1RyYW5zbGF0ZVRvTmV3SGVhcEBDRGF0YVRhYmxlQEBRQUVIUEFWQ1Byb3BlcnR5TG9va3VwVGFibGVAQEhQQVZDRmFzdEhlYXBAQDFAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSW5zdGFuY2VQYXJ0OjpUcmFuc2xhdGVUb05ld0hlYXAoY2xhc3MgQ0NsYXNzUGFydCAmLGNsYXNzIENGYXN0SGVhcCAqLGNsYXNzIENGYXN0SGVhcCAqKQ0KKz9UcmFuc2xhdGVUb05ld0hlYXBAQ0luc3RhbmNlUGFydEBAUUFFSEFBVkNDbGFzc1BhcnRAQFBBVkNGYXN0SGVhcEBAMUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXRMaXN0OjpUcmFuc2xhdGVUb05ld0hlYXAoY2xhc3MgQ0Zhc3RIZWFwICosY2xhc3MgQ0Zhc3RIZWFwICopDQorP1RyYW5zbGF0ZVRvTmV3SGVhcEBDUXVhbGlmaWVyU2V0TGlzdEBAUUFFSFBBVkNGYXN0SGVhcEBAMEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENVbnR5cGVkQXJyYXk6OlRyYW5zbGF0ZVRvTmV3SGVhcChjbGFzcyBDUHRyU291cmNlICosY2xhc3MgQ1R5cGUsY2xhc3MgQ0Zhc3RIZWFwICosY2xhc3MgQ0Zhc3RIZWFwICopDQorP1RyYW5zbGF0ZVRvTmV3SGVhcEBDVW50eXBlZEFycmF5QEBTR0hQQVZDUHRyU291cmNlQEBWQ1R5cGVAQFBBVkNGYXN0SGVhcEBAMkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5Pjo6VHJpbSh2b2lkKQ0KKz9UcmltQD8kQ1BvaW50ZXJBcnJheUBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQFY/JENSZWZlcmVuY2VNYW5hZ2VyQFZDRmFzdFByb3BlcnR5QmFnSXRlbUBAQEBWQ0ZsZXhBcnJheUBAQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENQb2ludGVyQXJyYXk8Y2xhc3MgQ1dtaVRleHRTb3VyY2UsY2xhc3MgQ1JlZmVyZW5jZU1hbmFnZXI8Y2xhc3MgQ1dtaVRleHRTb3VyY2U+LGNsYXNzIENGbGV4QXJyYXk+OjpUcmltKHZvaWQpDQorP1RyaW1APyRDUG9pbnRlckFycmF5QFZDV21pVGV4dFNvdXJjZUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNXbWlUZXh0U291cmNlQEBAQFZDRmxleEFycmF5QEBAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Zhc3RIZWFwOjpUcmltKHZvaWQpDQorP1RyaW1AQ0Zhc3RIZWFwQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENJbnRlcm5hbFN0cmluZzo6VW5iaW5kKHZvaWQpDQorP1VuYmluZEBDSW50ZXJuYWxTdHJpbmdAQFFBRVhYWg0KKzsgcHVibGljOiBjbGFzcyBDRmFzdFByb3BlcnR5QmFnSXRlbSAqICogX190aGlzY2FsbCBDUG9pbnRlckFycmF5PGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtLGNsYXNzIENSZWZlcmVuY2VNYW5hZ2VyPGNsYXNzIENGYXN0UHJvcGVydHlCYWdJdGVtPixjbGFzcyBDRmxleEFycmF5Pjo6VW5iaW5kUHRyKHZvaWQpDQorP1VuYmluZFB0ckA/JENQb2ludGVyQXJyYXlAVkNGYXN0UHJvcGVydHlCYWdJdGVtQEBWPyRDUmVmZXJlbmNlTWFuYWdlckBWQ0Zhc3RQcm9wZXJ0eUJhZ0l0ZW1AQEBAVkNGbGV4QXJyYXlAQEBAUUFFUEFQQVZDRmFzdFByb3BlcnR5QmFnSXRlbUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ1dtaVRleHRTb3VyY2UgKiAqIF9fdGhpc2NhbGwgQ1BvaW50ZXJBcnJheTxjbGFzcyBDV21pVGV4dFNvdXJjZSxjbGFzcyBDUmVmZXJlbmNlTWFuYWdlcjxjbGFzcyBDV21pVGV4dFNvdXJjZT4sY2xhc3MgQ0ZsZXhBcnJheT46OlVuYmluZFB0cih2b2lkKQ0KKz9VbmJpbmRQdHJAPyRDUG9pbnRlckFycmF5QFZDV21pVGV4dFNvdXJjZUBAVj8kQ1JlZmVyZW5jZU1hbmFnZXJAVkNXbWlUZXh0U291cmNlQEBAQFZDRmxleEFycmF5QEBAQFFBRVBBUEFWQ1dtaVRleHRTb3VyY2VAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENXYmVtQ2xhc3M6OlVuZGVjb3JhdGUodm9pZCkNCis/VW5kZWNvcmF0ZUBDV2JlbUNsYXNzQEBVQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQ1diZW1JbnN0YW5jZTo6VW5kZWNvcmF0ZSh2b2lkKQ0KKz9VbmRlY29yYXRlQENXYmVtSW5zdGFuY2VAQFVBRVhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1GZXRjaFJlZnJNZ3I6OlVuaW5pdCh2b2lkKQ0KKz9VbmluaXRAQ1diZW1GZXRjaFJlZnJNZ3JAQFFBRUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtRmV0Y2hSZWZyTWdyOjpYRmV0Y2hSZWZyTWdyOjpVbmluaXQodm9pZCkNCis/VW5pbml0QFhGZXRjaFJlZnJNZ3JAQ1diZW1GZXRjaFJlZnJNZ3JAQFVBR0pYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSGlQZXJmTG9jazo6VW5sb2NrKHZvaWQpDQorP1VubG9ja0BDSGlQZXJmTG9ja0BAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTaGFyZWRMb2NrOjpVbmxvY2sodm9pZCkNCis/VW5sb2NrQENTaGFyZWRMb2NrQEBRQUVIWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6VW5sb2NrKGxvbmcpDQorP1VubG9ja0BDV2JlbU9iamVjdEBAVUFHSkpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpVbm1hcnNoYWxJbnRlcmZhY2Uoc3RydWN0IElTdHJlYW0gKixzdHJ1Y3QgX0dVSUQgY29uc3QgJix2b2lkICogKikNCis/VW5tYXJzaGFsSW50ZXJmYWNlQENXYmVtT2JqZWN0QEBVQUdKUEFVSVN0cmVhbUBAQUJVX0dVSURAQFBBUEFYQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENXYmVtTXRndERlbGl2ZXJFdmVudFBhY2tldDo6VW5tYXJzaGFsUGFja2V0KGxvbmcgJixzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqICogJixjbGFzcyBDV2JlbUNsYXNzQ2FjaGUgJikNCis/VW5tYXJzaGFsUGFja2V0QENXYmVtTXRndERlbGl2ZXJFdmVudFBhY2tldEBAUUFFSkFBSkFBUEFQQVVJV2JlbUNsYXNzT2JqZWN0QEBBQVZDV2JlbUNsYXNzQ2FjaGVAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbU9iamVjdEFycmF5UGFja2V0OjpVbm1hcnNoYWxQYWNrZXQobG9uZyAmLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogKiAmLGNsYXNzIENXYmVtQ2xhc3NDYWNoZSAmKQ0KKz9Vbm1hcnNoYWxQYWNrZXRAQ1diZW1PYmplY3RBcnJheVBhY2tldEBAUUFFSkFBSkFBUEFQQVVJV2JlbUNsYXNzT2JqZWN0QEBBQVZDV2JlbUNsYXNzQ2FjaGVAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbVNtYXJ0RW51bU5leHRQYWNrZXQ6OlVubWFyc2hhbFBhY2tldChsb25nICYsc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiAqICYsY2xhc3MgQ1diZW1DbGFzc0NhY2hlICYpDQorP1VubWFyc2hhbFBhY2tldEBDV2JlbVNtYXJ0RW51bU5leHRQYWNrZXRAQFFBRUpBQUpBQVBBUEFVSVdiZW1DbGFzc09iamVjdEBAQUFWQ1diZW1DbGFzc0NhY2hlQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciAqIF9fc3RkY2FsbCBDQmFzaWNRdWFsaWZpZXJTZXQ6OlVubWVyZ2UodW5zaWduZWQgY2hhciAqLGNsYXNzIENGYXN0SGVhcCAqLHVuc2lnbmVkIGNoYXIgKixjbGFzcyBDRmFzdEhlYXAgKikNCis/VW5tZXJnZUBDQmFzaWNRdWFsaWZpZXJTZXRAQFNHUEFFUEFFUEFWQ0Zhc3RIZWFwQEAwMUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENDbGFzc0FuZE1ldGhvZHM6OlVubWVyZ2UodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcpDQorP1VubWVyZ2VAQ0NsYXNzQW5kTWV0aG9kc0BAUUFFUEFFUEFFS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENDbGFzc1BhcnQ6OlVubWVyZ2UodW5zaWduZWQgY2hhciAqLGludCkNCis/VW5tZXJnZUBDQ2xhc3NQYXJ0QEBRQUVQQUVQQUVIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ0RhdGFUYWJsZTo6VW5tZXJnZShjbGFzcyBDUHJvcGVydHlMb29rdXBUYWJsZSAqLGNsYXNzIENGYXN0SGVhcCAqLHVuc2lnbmVkIGNoYXIgKixjbGFzcyBDRmFzdEhlYXAgKikNCis/VW5tZXJnZUBDRGF0YVRhYmxlQEBRQUVQQUVQQVZDUHJvcGVydHlMb29rdXBUYWJsZUBAUEFWQ0Zhc3RIZWFwQEBQQUUxQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ0Rlcml2YXRpb25MaXN0OjpVbm1lcmdlKHVuc2lnbmVkIGNoYXIgKikNCis/VW5tZXJnZUBDRGVyaXZhdGlvbkxpc3RAQFFBRVBBRVBBRUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENNZXRob2RQYXJ0OjpVbm1lcmdlKHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nKQ0KKz9Vbm1lcmdlQENNZXRob2RQYXJ0QEBRQUVQQUVQQUVLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ1Byb3BlcnR5TG9va3VwVGFibGU6OlVubWVyZ2UoY2xhc3MgQ0RhdGFUYWJsZSAqLGNsYXNzIENGYXN0SGVhcCAqLHVuc2lnbmVkIGNoYXIgKixjbGFzcyBDRmFzdEhlYXAgKikNCis/VW5tZXJnZUBDUHJvcGVydHlMb29rdXBUYWJsZUBAUUFFUEFFUEFWQ0RhdGFUYWJsZUBAUEFWQ0Zhc3RIZWFwQEBQQUUxQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6VW5tZXJnZSh1bnNpZ25lZCBjaGFyICosaW50LHVuc2lnbmVkIGxvbmcgKikNCis/VW5tZXJnZUBDV2JlbUNsYXNzQEBVQUVKUEFFSFBBS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtSW5zdGFuY2U6OlVubWVyZ2UodW5zaWduZWQgY2hhciAqLGludCx1bnNpZ25lZCBsb25nICopDQorP1VubWVyZ2VAQ1diZW1JbnN0YW5jZUBAVUFFSlBBRUhQQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1diZW1PYmplY3Q6OlVubWVyZ2UodW5zaWduZWQgY2hhciAqICopDQorP1VubWVyZ2VAQ1diZW1PYmplY3RAQFFBRUtQQVBBRUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OlVubWVyZ2UobG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKix2b2lkICopDQorP1VubWVyZ2VAQ1diZW1PYmplY3RAQFVBR0pKS1BBS1BBWEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDQ2xhc3NBbmRNZXRob2RzOjpVcGRhdGUoY2xhc3MgQ0NsYXNzQW5kTWV0aG9kcyAmLGNsYXNzIENDbGFzc0FuZE1ldGhvZHMgJixsb25nKQ0KKz9VcGRhdGVAQ0NsYXNzQW5kTWV0aG9kc0BAU0dKQUFWMUAwSkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDQ2xhc3NQYXJ0OjpVcGRhdGUoY2xhc3MgQ0NsYXNzUGFydCAmLGNsYXNzIENDbGFzc1BhcnQgJixsb25nKQ0KKz9VcGRhdGVAQ0NsYXNzUGFydEBAU0dKQUFWMUAwSkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDTWV0aG9kUGFydDo6VXBkYXRlKGNsYXNzIENNZXRob2RQYXJ0ICYsY2xhc3MgQ01ldGhvZFBhcnQgJixsb25nKQ0KKz9VcGRhdGVAQ01ldGhvZFBhcnRAQFNHSkFBVjFAMEpAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1F1YWxpZmllclNldDo6VXBkYXRlKGNsYXNzIENCYXNpY1F1YWxpZmllclNldCAmLGxvbmcsY2xhc3MgQ0ZpeGVkQlNUUkFycmF5ICopDQorP1VwZGF0ZUBDUXVhbGlmaWVyU2V0QEBRQUVKQUFWQ0Jhc2ljUXVhbGlmaWVyU2V0QEBKUEFWQ0ZpeGVkQlNUUkFycmF5QEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6VXBkYXRlKGNsYXNzIENXYmVtQ2xhc3MgKixsb25nLGNsYXNzIENXYmVtQ2xhc3MgKiAqKQ0KKz9VcGRhdGVAQ1diZW1DbGFzc0BAUUFFSlBBVjFASlBBUEFWMUBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtQ2xhc3M6OlVwZGF0ZShzdHJ1Y3QgX0lXbWlPYmplY3QgKixsb25nLHN0cnVjdCBfSVdtaU9iamVjdCAqICopDQorP1VwZGF0ZUBDV2JlbUNsYXNzQEBVQUdKUEFVX0lXbWlPYmplY3RAQEpQQVBBVTJAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUluc3RhbmNlOjpVcGRhdGUoc3RydWN0IF9JV21pT2JqZWN0ICosbG9uZyxzdHJ1Y3QgX0lXbWlPYmplY3QgKiAqKQ0KKz9VcGRhdGVAQ1diZW1JbnN0YW5jZUBAVUFHSlBBVV9JV21pT2JqZWN0QEBKUEFQQVUyQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDQ2xhc3NQYXJ0OjpVcGRhdGVQcm9wZXJ0aWVzKGNsYXNzIENDbGFzc1BhcnQgJixjbGFzcyBDQ2xhc3NQYXJ0ICYsbG9uZykNCis/VXBkYXRlUHJvcGVydGllc0BDQ2xhc3NQYXJ0QEBTR0pBQVYxQDBKQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUNsYXNzOjpVcGdyYWRlKHN0cnVjdCBfSVdtaU9iamVjdCAqLGxvbmcsc3RydWN0IF9JV21pT2JqZWN0ICogKikNCis/VXBncmFkZUBDV2JlbUNsYXNzQEBVQUdKUEFVX0lXbWlPYmplY3RAQEpQQVBBVTJAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUluc3RhbmNlOjpVcGdyYWRlKHN0cnVjdCBfSVdtaU9iamVjdCAqLGxvbmcsc3RydWN0IF9JV21pT2JqZWN0ICogKikNCis/VXBncmFkZUBDV2JlbUluc3RhbmNlQEBVQUdKUEFVX0lXbWlPYmplY3RAQEpQQVBBVTJAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNoYXIgX19zdGRjYWxsIENDb21wcmVzc2VkU3RyaW5nOjpVcHBlckJ5dGUodW5zaWduZWQgc2hvcnQpDQorP1VwcGVyQnl0ZUBDQ29tcHJlc3NlZFN0cmluZ0BAS0dER0BaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBDVHlwZSAgX19zdGRjYWxsIENUeXBlOjpWQVJUWVBFVG9UeXBlKHVuc2lnbmVkIHNob3J0KQ0KKz9WQVJUWVBFVG9UeXBlQENUeXBlQEBTRz9BVjFAR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpWYWxpZGF0ZSh2b2lkKQ0KKz9WYWxpZGF0ZUBDV2JlbUluc3RhbmNlQEBRQUVKWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX3N0ZGNhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpWYWxpZGF0ZUJ1ZmZlcih1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgaW50KQ0KKz9WYWxpZGF0ZUJ1ZmZlckBDQmFzaWNRdWFsaWZpZXJTZXRAQFNHSVBBRUlAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fc3RkY2FsbCBDQ2xhc3NBbmRNZXRob2RzOjpWYWxpZGF0ZUJ1ZmZlcih1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgaW50KQ0KKz9WYWxpZGF0ZUJ1ZmZlckBDQ2xhc3NBbmRNZXRob2RzQEBTR0lQQUVJQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX3N0ZGNhbGwgQ0NsYXNzUGFydDo6VmFsaWRhdGVCdWZmZXIodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGludCkNCis/VmFsaWRhdGVCdWZmZXJAQ0NsYXNzUGFydEBAU0dJUEFFSUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19zdGRjYWxsIENDb21wcmVzc2VkU3RyaW5nTGlzdDo6VmFsaWRhdGVCdWZmZXIodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGludCkNCis/VmFsaWRhdGVCdWZmZXJAQ0NvbXByZXNzZWRTdHJpbmdMaXN0QEBTR0lQQUVJQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX3N0ZGNhbGwgQ0RhdGFUYWJsZTo6VmFsaWRhdGVCdWZmZXIodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGludCxpbnQpDQorP1ZhbGlkYXRlQnVmZmVyQENEYXRhVGFibGVAQFNHSVBBRUlIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX3N0ZGNhbGwgQ0RlY29yYXRpb25QYXJ0OjpWYWxpZGF0ZUJ1ZmZlcih1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgaW50KQ0KKz9WYWxpZGF0ZUJ1ZmZlckBDRGVjb3JhdGlvblBhcnRAQFNHSVBBRUlAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ0VtYmVkZGVkT2JqZWN0OjpWYWxpZGF0ZUJ1ZmZlcih1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgaW50LGNsYXNzIHN0ZDo6dmVjdG9yPHN0cnVjdCBFbWJlZGRlZE9iaixjbGFzcyB3YmVtX2FsbG9jYXRvcjxzdHJ1Y3QgRW1iZWRkZWRPYmo+ID4gJikNCis/VmFsaWRhdGVCdWZmZXJAQ0VtYmVkZGVkT2JqZWN0QEBTR1hQQUVJQUFWPyR2ZWN0b3JAVUVtYmVkZGVkT2JqQEBWPyR3YmVtX2FsbG9jYXRvckBVRW1iZWRkZWRPYmpAQEBAQHN0ZEBAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX3N0ZGNhbGwgQ0Zhc3RIZWFwOjpWYWxpZGF0ZUJ1ZmZlcih1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgaW50KQ0KKz9WYWxpZGF0ZUJ1ZmZlckBDRmFzdEhlYXBAQFNHSVBBRUlAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fc3RkY2FsbCBDSW5zdGFuY2VQYXJ0OjpWYWxpZGF0ZUJ1ZmZlcih1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgaW50LGNsYXNzIENDbGFzc1BhcnQgJixjbGFzcyBzdGQ6OnZlY3RvcjxzdHJ1Y3QgRW1iZWRkZWRPYmosY2xhc3Mgd2JlbV9hbGxvY2F0b3I8c3RydWN0IEVtYmVkZGVkT2JqPiA+ICYpDQorP1ZhbGlkYXRlQnVmZmVyQENJbnN0YW5jZVBhcnRAQFNHSVBBRUlBQVZDQ2xhc3NQYXJ0QEBBQVY/JHZlY3RvckBVRW1iZWRkZWRPYmpAQFY/JHdiZW1fYWxsb2NhdG9yQFVFbWJlZGRlZE9iakBAQEBAc3RkQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fc3RkY2FsbCBDTWV0aG9kUGFydDo6VmFsaWRhdGVCdWZmZXIodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGludCkNCis/VmFsaWRhdGVCdWZmZXJAQ01ldGhvZFBhcnRAQFNHSVBBRUlAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fc3RkY2FsbCBDUHJvcGVydHlMb29rdXBUYWJsZTo6VmFsaWRhdGVCdWZmZXIodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGludCkNCis/VmFsaWRhdGVCdWZmZXJAQ1Byb3BlcnR5TG9va3VwVGFibGVAQFNHSVBBRUlAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fc3RkY2FsbCBDUXVhbGlmaWVyU2V0TGlzdDo6VmFsaWRhdGVCdWZmZXIodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGludCxpbnQpDQorP1ZhbGlkYXRlQnVmZmVyQENRdWFsaWZpZXJTZXRMaXN0QEBTR0lQQUVJSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19zdGRjYWxsIENXYmVtQ2xhc3M6OlZhbGlkYXRlQnVmZmVyKHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBpbnQpDQorP1ZhbGlkYXRlQnVmZmVyQENXYmVtQ2xhc3NAQFNHSVBBRUlAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fc3RkY2FsbCBDV2JlbUluc3RhbmNlOjpWYWxpZGF0ZUJ1ZmZlcih1bnNpZ25lZCBjaGFyICosaW50LHVuc2lnbmVkIGxvbmcsY2xhc3Mgc3RkOjp2ZWN0b3I8c3RydWN0IEVtYmVkZGVkT2JqLGNsYXNzIHdiZW1fYWxsb2NhdG9yPHN0cnVjdCBFbWJlZGRlZE9iaj4gPiAmKQ0KKz9WYWxpZGF0ZUJ1ZmZlckBDV2JlbUluc3RhbmNlQEBTR0lQQUVIS0FBVj8kdmVjdG9yQFVFbWJlZGRlZE9iakBAVj8kd2JlbV9hbGxvY2F0b3JAVUVtYmVkZGVkT2JqQEBAQEBzdGRAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19zdGRjYWxsIENXYmVtSW5zdGFuY2U6OlZhbGlkYXRlQnVmZmVyKHVuc2lnbmVkIGNoYXIgKixpbnQsY2xhc3MgQ1diZW1JbnN0YW5jZSAqLGNsYXNzIHN0ZDo6dmVjdG9yPHN0cnVjdCBFbWJlZGRlZE9iaixjbGFzcyB3YmVtX2FsbG9jYXRvcjxzdHJ1Y3QgRW1iZWRkZWRPYmo+ID4gJikNCis/VmFsaWRhdGVCdWZmZXJAQ1diZW1JbnN0YW5jZUBAU0dJUEFFSFBBVjFAQUFWPyR2ZWN0b3JAVUVtYmVkZGVkT2JqQEBWPyR3YmVtX2FsbG9jYXRvckBVRW1iZWRkZWRPYmpAQEBAQHN0ZEBAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX3N0ZGNhbGwgQ1diZW1JbnN0YW5jZTo6VmFsaWRhdGVCdWZmZXIodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGludCxjbGFzcyBzdGQ6OnZlY3RvcjxzdHJ1Y3QgRW1iZWRkZWRPYmosY2xhc3Mgd2JlbV9hbGxvY2F0b3I8c3RydWN0IEVtYmVkZGVkT2JqPiA+ICYpDQorP1ZhbGlkYXRlQnVmZmVyQENXYmVtSW5zdGFuY2VAQFNHSVBBRUlBQVY/JHZlY3RvckBVRW1iZWRkZWRPYmpAQFY/JHdiZW1fYWxsb2NhdG9yQFVFbWJlZGRlZE9iakBAQEBAc3RkQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0xpbWl0YXRpb25NYXBwaW5nOjpWYWxpZGF0ZUluc3RhbmNlKGNsYXNzIENXYmVtSW5zdGFuY2UgKikNCis/VmFsaWRhdGVJbnN0YW5jZUBDTGltaXRhdGlvbk1hcHBpbmdAQFFBRUpQQVZDV2JlbUluc3RhbmNlQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpWYWxpZGF0ZU9iamVjdChsb25nKQ0KKz9WYWxpZGF0ZU9iamVjdEBDV2JlbU9iamVjdEBAVUFHSkpAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGhvZFBhcnQ6OlZhbGlkYXRlT3V0UGFyYW1zKGNsYXNzIENXYmVtT2JqZWN0ICopDQorP1ZhbGlkYXRlT3V0UGFyYW1zQENNZXRob2RQYXJ0QEBJQUVKUEFWQ1diZW1PYmplY3RAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbU9iamVjdDo6VmFsaWRhdGVQYXRoKHN0cnVjdCBQYXJzZWRPYmplY3RQYXRoICopDQorP1ZhbGlkYXRlUGF0aEBDV2JlbU9iamVjdEBAUUFFSlBBVVBhcnNlZE9iamVjdFBhdGhAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDUHJvcGVydHlMb29rdXBUYWJsZTo6VmFsaWRhdGVSYW5nZSh1bnNpZ25lZCBzaG9ydCAqICosY2xhc3MgQ0RhdGFUYWJsZSAqLGNsYXNzIENGYXN0SGVhcCAqKQ0KKz9WYWxpZGF0ZVJhbmdlQENQcm9wZXJ0eUxvb2t1cFRhYmxlQEBRQUVKUEFQQUdQQVZDRGF0YVRhYmxlQEBQQVZDRmFzdEhlYXBAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENXYmVtT2JqZWN0OjpWYWxpZGF0ZVJhbmdlKHVuc2lnbmVkIHNob3J0ICogKikNCis/VmFsaWRhdGVSYW5nZUBDV2JlbU9iamVjdEBAUUFFSFBBUEFHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXQ6OlZhbGlkYXRlU2V0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgY2hhcixjbGFzcyBDVHlwZWRWYWx1ZSAqLGludCxpbnQpDQorP1ZhbGlkYXRlU2V0QENRdWFsaWZpZXJTZXRAQFFBRUpQQkdFUEFWQ1R5cGVkVmFsdWVAQEhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NvbXByZXNzZWRTdHJpbmc6OlZhbGlkYXRlU2l6ZShpbnQpY29uc3QgDQorP1ZhbGlkYXRlU2l6ZUBDQ29tcHJlc3NlZFN0cmluZ0BAUUJFSEhAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OldiZW1PYmplY3RGcm9tQ09NUHRyKHN0cnVjdCBJVW5rbm93biAqLGNsYXNzIENXYmVtT2JqZWN0ICogKikNCis/V2JlbU9iamVjdEZyb21DT01QdHJAQ1diZW1PYmplY3RAQFNHSlBBVUlVbmtub3duQEBQQVBBVjFAQFoNCis7IHVuc2lnbmVkIHNob3J0ICogX19zdGRjYWxsIFdiZW1TdHJpbmdDb3B5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1diZW1TdHJpbmdDb3B5QEBZR1BBR1BCR0BaDQorOyB2b2lkIF9fc3RkY2FsbCBXYmVtU3RyaW5nRnJlZSh1bnNpZ25lZCBzaG9ydCAqKQ0KKz9XYmVtU3RyaW5nRnJlZUBAWUdYUEFHQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENXYmVtUmVmcmVzaGluZ1N2Yzo6V3JhcFJlbW90ZVJlZnJlc2hlcihzdHJ1Y3QgSVdiZW1SZW1vdGVSZWZyZXNoZXIgKiAqKQ0KKz9XcmFwUmVtb3RlUmVmcmVzaGVyQENXYmVtUmVmcmVzaGluZ1N2Y0BASUFFSlBBUEFVSVdiZW1SZW1vdGVSZWZyZXNoZXJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OldyaXRlRFdPUkQobG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9Xcml0ZURXT1JEQENXYmVtT2JqZWN0QEBVQUdKSktAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1diZW1DbGFzczo6V3JpdGVEZXJpdmVkQ2xhc3ModW5zaWduZWQgY2hhciAqLGludCxjbGFzcyBDRGVjb3JhdGlvblBhcnQgKikNCis/V3JpdGVEZXJpdmVkQ2xhc3NAQ1diZW1DbGFzc0BAUUFFSlBBRUhQQVZDRGVjb3JhdGlvblBhcnRAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1PYmplY3Q6OldyaXRlUHJvcCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGxvbmcsdm9pZCAqKQ0KKz9Xcml0ZVByb3BAQ1diZW1PYmplY3RAQFVBR0pQQkdKS0tKUEFYQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgKiBfX3N0ZGNhbGwgQ0Jhc2ljUXVhbGlmaWVyU2V0OjpXcml0ZVByb3BhZ2F0ZWRWZXJzaW9uKGNsYXNzIENQdHJTb3VyY2UgKix1bnNpZ25lZCBjaGFyLGNsYXNzIENQdHJTb3VyY2UgKixjbGFzcyBDRmFzdEhlYXAgKixjbGFzcyBDRmFzdEhlYXAgKikNCis/V3JpdGVQcm9wYWdhdGVkVmVyc2lvbkBDQmFzaWNRdWFsaWZpZXJTZXRAQFNHUEFFUEFWQ1B0clNvdXJjZUBARTBQQVZDRmFzdEhlYXBAQDFAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDRGF0YVRhYmxlOjpXcml0ZVByb3BhZ2F0ZWRWZXJzaW9uKGNsYXNzIENQcm9wZXJ0eUxvb2t1cFRhYmxlICosY2xhc3MgQ0Zhc3RIZWFwICosdW5zaWduZWQgY2hhciAqLGNsYXNzIENGYXN0SGVhcCAqKQ0KKz9Xcml0ZVByb3BhZ2F0ZWRWZXJzaW9uQENEYXRhVGFibGVAQFFBRVBBRVBBVkNQcm9wZXJ0eUxvb2t1cFRhYmxlQEBQQVZDRmFzdEhlYXBAQFBBRTFAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDUHJvcGVydHlMb29rdXBUYWJsZTo6V3JpdGVQcm9wYWdhdGVkVmVyc2lvbihjbGFzcyBDRmFzdEhlYXAgKix1bnNpZ25lZCBjaGFyICosY2xhc3MgQ0Zhc3RIZWFwICopDQorP1dyaXRlUHJvcGFnYXRlZFZlcnNpb25AQ1Byb3BlcnR5TG9va3VwVGFibGVAQFFBRVBBRVBBVkNGYXN0SGVhcEBAUEFFMEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDV2JlbUNsYXNzOjpXcml0ZVByb3BlcnR5QXNNZXRob2RQYXJhbShjbGFzcyBXU3RyaW5nICYsaW50LGxvbmcsY2xhc3MgQ1diZW1DbGFzcyAqLGludCkNCis/V3JpdGVQcm9wZXJ0eUFzTWV0aG9kUGFyYW1AQ1diZW1DbGFzc0BAUUFFSkFBVldTdHJpbmdAQEhKUEFWMUBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6V3JpdGVQcm9wZXJ0eVZhbHVlKGxvbmcsbG9uZyx1bnNpZ25lZCBjaGFyIGNvbnN0ICopDQorP1dyaXRlUHJvcGVydHlWYWx1ZUBDV2JlbU9iamVjdEBAVUFHSkpKUEJFQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbU9iamVjdDo6V3JpdGVRV09SRChsb25nLHVuc2lnbmVkIF9faW50NjQpDQorP1dyaXRlUVdPUkRAQ1diZW1PYmplY3RAQFVBR0pKX0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDRGF0YVRhYmxlOjpXcml0ZVNtYWxsZXJWZXJzaW9uKGludCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgKikNCis/V3JpdGVTbWFsbGVyVmVyc2lvbkBDRGF0YVRhYmxlQEBRQUVQQUVIS1BBRUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENRdWFsaWZpZXJTZXRMaXN0OjpXcml0ZVNtYWxsZXJWZXJzaW9uKGludCx1bnNpZ25lZCBjaGFyICopDQorP1dyaXRlU21hbGxlclZlcnNpb25AQ1F1YWxpZmllclNldExpc3RAQFFBRVBBRUhQQUVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2JlbUluc3RhbmNlOjpXcml0ZVRvU3RyZWFtKHN0cnVjdCBJU3RyZWFtICopDQorP1dyaXRlVG9TdHJlYW1AQ1diZW1JbnN0YW5jZUBAVUFFSlBBVUlTdHJlYW1AQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENXYmVtT2JqZWN0OjpXcml0ZVRvU3RyZWFtKHN0cnVjdCBJU3RyZWFtICopDQorP1dyaXRlVG9TdHJlYW1AQ1diZW1PYmplY3RAQFVBRUpQQVVJU3RyZWFtQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1diZW1JbnN0YW5jZTo6V3JpdGVUcmFuc2ZlckFycmF5SGVhZGVyKGxvbmcsdW5zaWduZWQgY2hhciAqICopDQorP1dyaXRlVHJhbnNmZXJBcnJheUhlYWRlckBDV2JlbUluc3RhbmNlQEBTR1hKUEFQQUVAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtT2JqZWN0OjpfR2V0Q29yZUluZm8obG9uZyx2b2lkICogKikNCis/X0dldENvcmVJbmZvQENXYmVtT2JqZWN0QEBVQUdKSlBBUEFYQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0ICogX19zdGRjYWxsIENDb21wcmVzc2VkU3RyaW5nOjpmYXN0X3djc2NweSh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP2Zhc3Rfd2NzY3B5QENDb21wcmVzc2VkU3RyaW5nQEBTR1BBR1BBR1BCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENDb21wcmVzc2VkU3RyaW5nOjpmYXN0X3djc2xlbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9mYXN0X3djc2xlbkBDQ29tcHJlc3NlZFN0cmluZ0BAU0dIUEJHQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0ICogX19zdGRjYWxsIENDb21wcmVzc2VkU3RyaW5nOjpmYXN0X3djc25jcHkodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/ZmFzdF93Y3NuY3B5QENDb21wcmVzc2VkU3RyaW5nQEBTR1BBR1BBR1BCR0hAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgY2hhciAqICBDV2JlbURhdGFQYWNrZXQ6OnNfYWJTaWduYXR1cmUNCis/c19hYlNpZ25hdHVyZUBDV2JlbURhdGFQYWNrZXRAQDFQQUVBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqICogIENSZXNlcnZlZFdvcmRUYWJsZTo6c19hcHdzelJlc2VydmVkV29yZHMNCis/c19hcHdzelJlc2VydmVkV29yZHNAQ1Jlc2VydmVkV29yZFRhYmxlQEAwUEFQQkdBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIENTdGF0aWNDcml0U2VjICBDV2JlbUZldGNoUmVmck1ncjo6c19jcw0KKz9zX2NzQENXYmVtRmV0Y2hSZWZyTWdyQEAxVkNTdGF0aWNDcml0U2VjQEBBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBfSVdiZW1SZWZyZXNoZXJNZ3IgKiAgQ1diZW1GZXRjaFJlZnJNZ3I6OnNfcFJlZnJNZ3INCis/c19wUmVmck1nckBDV2JlbUZldGNoUmVmck1nckBAMVBBVV9JV2JlbVJlZnJlc2hlck1nckBAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBjb25zdCAgQ1Jlc2VydmVkV29yZFRhYmxlOjpzX3BzelN0YXJ0aW5nQ2hhcnNMQ2FzZQ0KKz9zX3BzelN0YXJ0aW5nQ2hhcnNMQ2FzZUBDUmVzZXJ2ZWRXb3JkVGFibGVAQDBQQkdCIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIGNvbnN0ICBDUmVzZXJ2ZWRXb3JkVGFibGU6OnNfcHN6U3RhcnRpbmdDaGFyc1VDYXNlDQorP3NfcHN6U3RhcnRpbmdDaGFyc1VDYXNlQENSZXNlcnZlZFdvcmRUYWJsZUBAMFBCR0IgREFUQQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorX0dldE9iamVjdENvdW50QDANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZmF1bHRyZXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2ZhdWx0cmVwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MzRlNzRjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2ZhdWx0cmVwLmRlZgpAQCAtMCwwICsxLDE5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGZhdWx0cmVwLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBmYXVsdHJlcC5ETEwNCitFWFBPUlRTDQorQWRkRVJFeGNsdWRlZEFwcGxpY2F0aW9uQQ0KK0FkZEVSRXhjbHVkZWRBcHBsaWNhdGlvblcNCitDcmVhdGVNaW5pZHVtcFcNCitSZXBvcnRFUkV2ZW50DQorUmVwb3J0RVJFdmVudERXDQorUmVwb3J0RmF1bHQNCitSZXBvcnRGYXVsdERXTQ0KK1JlcG9ydEZhdWx0RnJvbVF1ZXVlDQorUmVwb3J0RmF1bHRUb1F1ZXVlDQorUmVwb3J0SGFuZw0KK1JlcG9ydEtlcm5lbEZhdWx0RFdXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2ZkZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZmRlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZTlhZWE3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2ZkZS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGREUuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEZERS5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZmRlcGxveS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZmRlcGxveS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2NkMjZmMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dmZGVwbG95LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEZERVBMT1kuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEZERVBMT1kuZGxsDQorRVhQT1JUUw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0dlbmVyYXRlR3JvdXBQb2xpY3kNCitQcm9jZXNzR3JvdXBQb2xpY3lFeA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dmZWNsaWVudC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZmVjbGllbnQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNjMTI4MjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZmVjbGllbnQuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGZUNsaWVudC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRmVDbGllbnQuZGxsDQorRVhQT1JUUw0KK0ZlQ2xpZW50SW5pdGlhbGl6ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dmaWxlbWdtdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZmlsZW1nbXQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ5NzAzZjkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZmlsZW1nbXQuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRklMRU1HTVQuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEZJTEVNR01ULkRMTA0KK0VYUE9SVFMNCitDYWNoZVNldHRpbmdzRGxnDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZmxkcmNsbnIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2ZsZHJjbG5yLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43OWQ4ZjRlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2ZsZHJjbG5yLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEZsZHJDbG5yLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBGbGRyQ2xuci5kbGwNCitFWFBPUlRTDQorRGxsSW5zdGFsbA0KK0RsbE1haW4NCitEbGxSZWdpc3RlclNlcnZlcg0KK1dpemFyZF9SdW5ETEwNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Zmx0bGliLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dmbHRsaWIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE3YmM4ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Zmx0bGliLmRlZgpAQCAtMCwwICsxLDM3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEZMVExJQi5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRkxUTElCLkRMTA0KK0VYUE9SVFMNCitGaWx0ZXJBdHRhY2gNCitGaWx0ZXJBdHRhY2hBdEFsdGl0dWRlDQorRmlsdGVyQ2xvc2UNCitGaWx0ZXJDb25uZWN0Q29tbXVuaWNhdGlvblBvcnQNCitGaWx0ZXJDcmVhdGUNCitGaWx0ZXJEZXRhY2gNCitGaWx0ZXJGaW5kQ2xvc2UNCitGaWx0ZXJGaW5kRmlyc3QNCitGaWx0ZXJGaW5kTmV4dA0KK0ZpbHRlckdldERvc05hbWUNCitGaWx0ZXJHZXRJbmZvcm1hdGlvbg0KK0ZpbHRlckdldE1lc3NhZ2UNCitGaWx0ZXJJbnN0YW5jZUNsb3NlDQorRmlsdGVySW5zdGFuY2VDcmVhdGUNCitGaWx0ZXJJbnN0YW5jZUZpbmRDbG9zZQ0KK0ZpbHRlckluc3RhbmNlRmluZEZpcnN0DQorRmlsdGVySW5zdGFuY2VGaW5kTmV4dA0KK0ZpbHRlckluc3RhbmNlR2V0SW5mb3JtYXRpb24NCitGaWx0ZXJMb2FkDQorRmlsdGVyUmVwbHlNZXNzYWdlDQorRmlsdGVyU2VuZE1lc3NhZ2UNCitGaWx0ZXJVbmxvYWQNCitGaWx0ZXJWb2x1bWVDbG9zZQ0KK0ZpbHRlclZvbHVtZUZpbmRDbG9zZQ0KK0ZpbHRlclZvbHVtZUZpbmRGaXJzdA0KK0ZpbHRlclZvbHVtZUZpbmROZXh0DQorRmlsdGVyVm9sdW1lSW5zdGFuY2VGaW5kQ2xvc2UNCitGaWx0ZXJWb2x1bWVJbnN0YW5jZUZpbmRGaXJzdA0KK0ZpbHRlclZvbHVtZUluc3RhbmNlRmluZE5leHQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Zm1pZnMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2ZtaWZzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40YzM2ZTUzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2ZtaWZzLmRlZgpAQCAtMCwwICsxLDI0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEZNSUZTLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBGTUlGUy5kbGwNCitFWFBPUlRTDQorQ2hrZHNrDQorQ2hrZHNrRXgNCitDb21wdXRlRm1NZWRpYVR5cGUNCitEaXNrQ29weQ0KK0VuYWJsZVZvbHVtZUNvbXByZXNzaW9uDQorRXh0ZW5kDQorRm9ybWF0DQorRm9ybWF0RXgyDQorRm9ybWF0RXgNCitRdWVyeUF2YWlsYWJsZUZpbGVTeXN0ZW1Gb3JtYXQNCitRdWVyeURldmljZUluZm9ybWF0aW9uDQorUXVlcnlEZXZpY2VJbmZvcm1hdGlvbkJ5SGFuZGxlDQorUXVlcnlGaWxlU3lzdGVtTmFtZQ0KK1F1ZXJ5TGF0ZXN0RmlsZVN5c3RlbVZlcnNpb24NCitRdWVyeVN1cHBvcnRlZE1lZGlhDQorU2V0TGFiZWwNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Zm9udGV4dC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Zm9udGV4dC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjQ4NGEwOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dmb250ZXh0LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGZvbnRleHQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGZvbnRleHQuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2ZvbnRzdWIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2ZvbnRzdWIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg0OTAxMWYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Zm9udHN1Yi5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGT05UU1VCLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBGT05UU1VCLmRsbA0KK0VYUE9SVFMNCitDcmVhdGVGb250UGFja2FnZQ0KK01lcmdlRm9udFBhY2thZ2UNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZnJhbWVkeW4uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2ZyYW1lZHluLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZDE0YjBjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2ZyYW1lZHluLmRlZgpAQCAtMCwwICsxLDEyMTkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgZnJhbWVkeW4uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGZyYW1lZHluLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQXV0b0V2ZW50OjpDQXV0b0V2ZW50KHZvaWQpDQorPz8wQ0F1dG9FdmVudEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0ZyYW1ld29ya1F1ZXJ5OjpDRnJhbWV3b3JrUXVlcnkoY2xhc3MgQ0ZyYW1ld29ya1F1ZXJ5IGNvbnN0ICYpDQorPz8wQ0ZyYW1ld29ya1F1ZXJ5QEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENGcmFtZXdvcmtRdWVyeTo6Q0ZyYW1ld29ya1F1ZXJ5KHZvaWQpDQorPz8wQ0ZyYW1ld29ya1F1ZXJ5QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRnJhbWV3b3JrUXVlcnlFeDo6Q0ZyYW1ld29ya1F1ZXJ5RXgoY2xhc3MgQ0ZyYW1ld29ya1F1ZXJ5RXggY29uc3QgJikNCis/PzBDRnJhbWV3b3JrUXVlcnlFeEBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRnJhbWV3b3JrUXVlcnlFeDo6Q0ZyYW1ld29ya1F1ZXJ5RXgodm9pZCkNCis/PzBDRnJhbWV3b3JrUXVlcnlFeEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0hQdHJBcnJheTo6Q0hQdHJBcnJheSh2b2lkKQ0KKz8/MENIUHRyQXJyYXlAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENIU3RyaW5nOjpDSFN0cmluZyhjbGFzcyBDSFN0cmluZyBjb25zdCAmKQ0KKz8/MENIU3RyaW5nQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENIU3RyaW5nOjpDSFN0cmluZyh1bnNpZ25lZCBzaG9ydCxpbnQpDQorPz8wQ0hTdHJpbmdAQFFBRUBHSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0hTdHJpbmc6OkNIU3RyaW5nKGNoYXIgY29uc3QgKikNCis/PzBDSFN0cmluZ0BAUUFFQFBCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0hTdHJpbmc6OkNIU3RyaW5nKHVuc2lnbmVkIGNoYXIgY29uc3QgKikNCis/PzBDSFN0cmluZ0BAUUFFQFBCRUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0hTdHJpbmc6OkNIU3RyaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wQ0hTdHJpbmdAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENIU3RyaW5nOjpDSFN0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/PzBDSFN0cmluZ0BAUUFFQFBCR0hAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENIU3RyaW5nOjpDSFN0cmluZyh2b2lkKQ0KKz8/MENIU3RyaW5nQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSFN0cmluZ0FycmF5OjpDSFN0cmluZ0FycmF5KHZvaWQpDQorPz8wQ0hTdHJpbmdBcnJheUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpDSW5zdGFuY2UoY2xhc3MgQ0luc3RhbmNlIGNvbnN0ICYpDQorPz8wQ0luc3RhbmNlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbnN0YW5jZTo6Q0luc3RhbmNlKHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICosY2xhc3MgTWV0aG9kQ29udGV4dCAqKQ0KKz8/MENJbnN0YW5jZUBAUUFFQFBBVUlXYmVtQ2xhc3NPYmplY3RAQFBBVk1ldGhvZENvbnRleHRAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ09iamVjdFBhdGhQYXJzZXI6OkNPYmplY3RQYXRoUGFyc2VyKGVudW0gT2JqZWN0UGFyc2VyRmxhZ3MpDQorPz8wQ09iamVjdFBhdGhQYXJzZXJAQFFBRUBXNE9iamVjdFBhcnNlckZsYWdzQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENSZWdpc3RyeTo6Q1JlZ2lzdHJ5KGNsYXNzIENSZWdpc3RyeSBjb25zdCAmKQ0KKz8/MENSZWdpc3RyeUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUmVnaXN0cnk6OkNSZWdpc3RyeSh2b2lkKQ0KKz8/MENSZWdpc3RyeUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5U2VhcmNoOjpDUmVnaXN0cnlTZWFyY2goY2xhc3MgQ1JlZ2lzdHJ5U2VhcmNoIGNvbnN0ICYpDQorPz8wQ1JlZ2lzdHJ5U2VhcmNoQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENSZWdpc3RyeVNlYXJjaDo6Q1JlZ2lzdHJ5U2VhcmNoKHZvaWQpDQorPz8wQ1JlZ2lzdHJ5U2VhcmNoQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDVGhyZWFkQmFzZTo6Q1RocmVhZEJhc2UoY2xhc3MgQ1RocmVhZEJhc2UgY29uc3QgJikNCis/PzBDVGhyZWFkQmFzZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDVGhyZWFkQmFzZTo6Q1RocmVhZEJhc2UoZW51bSBDVGhyZWFkQmFzZTo6VEhSRUFEX1NBRkVUWV9NRUNIQU5JU00pDQorPz8wQ1RocmVhZEJhc2VAQFFBRUBXNFRIUkVBRF9TQUZFVFlfTUVDSEFOSVNNQDBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV2JlbUdsdWVGYWN0b3J5OjpDV2JlbUdsdWVGYWN0b3J5KGNsYXNzIENXYmVtR2x1ZUZhY3RvcnkgY29uc3QgJikNCis/PzBDV2JlbUdsdWVGYWN0b3J5QEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYmVtR2x1ZUZhY3Rvcnk6OkNXYmVtR2x1ZUZhY3RvcnkobG9uZyAqKQ0KKz8/MENXYmVtR2x1ZUZhY3RvcnlAQFFBRUBQQUpAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYmVtR2x1ZUZhY3Rvcnk6OkNXYmVtR2x1ZUZhY3Rvcnkodm9pZCkNCis/PzBDV2JlbUdsdWVGYWN0b3J5QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6Q1diZW1Qcm92aWRlckdsdWUoY2xhc3MgQ1diZW1Qcm92aWRlckdsdWUgY29uc3QgJikNCis/PzBDV2JlbVByb3ZpZGVyR2x1ZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6Q1diZW1Qcm92aWRlckdsdWUobG9uZyAqKQ0KKz8/MENXYmVtUHJvdmlkZXJHbHVlQEBRQUVAUEFKQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6Q1diZW1Qcm92aWRlckdsdWUodm9pZCkNCis/PzBDV2JlbVByb3ZpZGVyR2x1ZUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1dpbk1zZ0V2ZW50OjpDV2luTXNnRXZlbnQoY2xhc3MgQ1dpbk1zZ0V2ZW50IGNvbnN0ICYpDQorPz8wQ1dpbk1zZ0V2ZW50QEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXaW5Nc2dFdmVudDo6Q1dpbk1zZ0V2ZW50KHZvaWQpDQorPz8wQ1dpbk1zZ0V2ZW50QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDcmVhdGVNdXRleEFzUHJvY2Vzczo6Q3JlYXRlTXV0ZXhBc1Byb2Nlc3ModW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBDcmVhdGVNdXRleEFzUHJvY2Vzc0BAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgS2V5UmVmOjpLZXlSZWYodW5zaWduZWQgc2hvcnQgY29uc3QgKixzdHJ1Y3QgdGFnVkFSSUFOVCBjb25zdCAqKQ0KKz8/MEtleVJlZkBAUUFFQFBCR1BCVXRhZ1ZBUklBTlRAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgS2V5UmVmOjpLZXlSZWYodm9pZCkNCis/PzBLZXlSZWZAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE1ldGhvZENvbnRleHQ6Ok1ldGhvZENvbnRleHQoY2xhc3MgTWV0aG9kQ29udGV4dCBjb25zdCAmKQ0KKz8/ME1ldGhvZENvbnRleHRAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTWV0aG9kQ29udGV4dDo6TWV0aG9kQ29udGV4dChzdHJ1Y3QgSVdiZW1Db250ZXh0ICosY2xhc3MgQ1diZW1Qcm92aWRlckdsdWUgKikNCis/PzBNZXRob2RDb250ZXh0QEBRQUVAUEFVSVdiZW1Db250ZXh0QEBQQVZDV2JlbVByb3ZpZGVyR2x1ZUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQYXJzZWRPYmplY3RQYXRoOjpQYXJzZWRPYmplY3RQYXRoKHZvaWQpDQorPz8wUGFyc2VkT2JqZWN0UGF0aEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdmlkZXI6OlByb3ZpZGVyKGNsYXNzIFByb3ZpZGVyIGNvbnN0ICYpDQorPz8wUHJvdmlkZXJAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdmlkZXI6OlByb3ZpZGVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBQcm92aWRlckBAUUFFQFBCRzBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZpZGVyTG9nOjpQcm92aWRlckxvZyhjbGFzcyBQcm92aWRlckxvZyBjb25zdCAmKQ0KKz8/MFByb3ZpZGVyTG9nQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZpZGVyTG9nOjpQcm92aWRlckxvZyh2b2lkKQ0KKz8/MFByb3ZpZGVyTG9nQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXQkVNVGltZTo6V0JFTVRpbWUobG9uZyBjb25zdCAmKQ0KKz8/MFdCRU1UaW1lQEBRQUVAQUJKQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXQkVNVGltZTo6V0JFTVRpbWUoc3RydWN0IF9GSUxFVElNRSBjb25zdCAmKQ0KKz8/MFdCRU1UaW1lQEBRQUVAQUJVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdCRU1UaW1lOjpXQkVNVGltZShzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgJikNCis/PzBXQkVNVGltZUBAUUFFQEFCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdCRU1UaW1lOjpXQkVNVGltZShzdHJ1Y3QgdG0gY29uc3QgJikNCis/PzBXQkVNVGltZUBAUUFFQEFCVXRtQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdCRU1UaW1lOjpXQkVNVGltZSh1bnNpZ25lZCBzaG9ydCAqIGNvbnN0KQ0KKz8/MFdCRU1UaW1lQEBRQUVAUUFHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXQkVNVGltZTo6V0JFTVRpbWUodm9pZCkNCis/PzBXQkVNVGltZUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV0JFTVRpbWVTcGFuOjpXQkVNVGltZVNwYW4obG9uZyBjb25zdCAmKQ0KKz8/MFdCRU1UaW1lU3BhbkBAUUFFQEFCSkBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV0JFTVRpbWVTcGFuOjpXQkVNVGltZVNwYW4oc3RydWN0IF9GSUxFVElNRSBjb25zdCAmKQ0KKz8/MFdCRU1UaW1lU3BhbkBAUUFFQEFCVV9GSUxFVElNRUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXQkVNVGltZVNwYW46OldCRU1UaW1lU3BhbihpbnQsaW50LGludCxpbnQsaW50LGludCxpbnQpDQorPz8wV0JFTVRpbWVTcGFuQEBRQUVASEhISEhISEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV0JFTVRpbWVTcGFuOjpXQkVNVGltZVNwYW4odW5zaWduZWQgc2hvcnQgKiBjb25zdCkNCis/PzBXQkVNVGltZVNwYW5AQFFBRUBRQUdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdCRU1UaW1lU3Bhbjo6V0JFTVRpbWVTcGFuKHZvaWQpDQorPz8wV0JFTVRpbWVTcGFuQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Ol9Mb2NraXQ6Ol9Mb2NraXQodm9pZCkNCis/PzBfTG9ja2l0QHN0ZEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0F1dG9FdmVudDo6fkNBdXRvRXZlbnQodm9pZCkNCis/PzFDQXV0b0V2ZW50QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRnJhbWV3b3JrUXVlcnk6On5DRnJhbWV3b3JrUXVlcnkodm9pZCkNCis/PzFDRnJhbWV3b3JrUXVlcnlAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENGcmFtZXdvcmtRdWVyeUV4Ojp+Q0ZyYW1ld29ya1F1ZXJ5RXgodm9pZCkNCis/PzFDRnJhbWV3b3JrUXVlcnlFeEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0hQdHJBcnJheTo6fkNIUHRyQXJyYXkodm9pZCkNCis/PzFDSFB0ckFycmF5QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSFN0cmluZzo6fkNIU3RyaW5nKHZvaWQpDQorPz8xQ0hTdHJpbmdAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENIU3RyaW5nQXJyYXk6On5DSFN0cmluZ0FycmF5KHZvaWQpDQorPz8xQ0hTdHJpbmdBcnJheUBAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDSW5zdGFuY2U6On5DSW5zdGFuY2Uodm9pZCkNCis/PzFDSW5zdGFuY2VAQFVBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENPYmplY3RQYXRoUGFyc2VyOjp+Q09iamVjdFBhdGhQYXJzZXIodm9pZCkNCis/PzFDT2JqZWN0UGF0aFBhcnNlckBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5Ojp+Q1JlZ2lzdHJ5KHZvaWQpDQorPz8xQ1JlZ2lzdHJ5QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUmVnaXN0cnlTZWFyY2g6On5DUmVnaXN0cnlTZWFyY2godm9pZCkNCis/PzFDUmVnaXN0cnlTZWFyY2hAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ1RocmVhZEJhc2U6On5DVGhyZWFkQmFzZSh2b2lkKQ0KKz8/MUNUaHJlYWRCYXNlQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV2JlbUdsdWVGYWN0b3J5Ojp+Q1diZW1HbHVlRmFjdG9yeSh2b2lkKQ0KKz8/MUNXYmVtR2x1ZUZhY3RvcnlAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjp+Q1diZW1Qcm92aWRlckdsdWUodm9pZCkNCis/PzFDV2JlbVByb3ZpZGVyR2x1ZUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1dpbk1zZ0V2ZW50Ojp+Q1dpbk1zZ0V2ZW50KHZvaWQpDQorPz8xQ1dpbk1zZ0V2ZW50QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDcmVhdGVNdXRleEFzUHJvY2Vzczo6fkNyZWF0ZU11dGV4QXNQcm9jZXNzKHZvaWQpDQorPz8xQ3JlYXRlTXV0ZXhBc1Byb2Nlc3NAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEtleVJlZjo6fktleVJlZih2b2lkKQ0KKz8/MUtleVJlZkBAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBNZXRob2RDb250ZXh0Ojp+TWV0aG9kQ29udGV4dCh2b2lkKQ0KKz8/MU1ldGhvZENvbnRleHRAQFVBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFBhcnNlZE9iamVjdFBhdGg6On5QYXJzZWRPYmplY3RQYXRoKHZvaWQpDQorPz8xUGFyc2VkT2JqZWN0UGF0aEBAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBQcm92aWRlcjo6flByb3ZpZGVyKHZvaWQpDQorPz8xUHJvdmlkZXJAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgUHJvdmlkZXJMb2c6On5Qcm92aWRlckxvZyh2b2lkKQ0KKz8/MVByb3ZpZGVyTG9nQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Ol9Mb2NraXQ6On5fTG9ja2l0KHZvaWQpDQorPz8xX0xvY2tpdEBzdGRAQFFBRUBYWg0KKzsgcHVibGljOiBjbGFzcyBDQXV0b0V2ZW50ICYgX190aGlzY2FsbCBDQXV0b0V2ZW50OjpvcGVyYXRvcj0oY2xhc3MgQ0F1dG9FdmVudCBjb25zdCAmKQ0KKz8/NENBdXRvRXZlbnRAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRnJhbWV3b3JrUXVlcnkgJiBfX3RoaXNjYWxsIENGcmFtZXdvcmtRdWVyeTo6b3BlcmF0b3I9KGNsYXNzIENGcmFtZXdvcmtRdWVyeSBjb25zdCAmKQ0KKz8/NENGcmFtZXdvcmtRdWVyeUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENGcmFtZXdvcmtRdWVyeUV4ICYgX190aGlzY2FsbCBDRnJhbWV3b3JrUXVlcnlFeDo6b3BlcmF0b3I9KGNsYXNzIENGcmFtZXdvcmtRdWVyeUV4IGNvbnN0ICYpDQorPz80Q0ZyYW1ld29ya1F1ZXJ5RXhAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSFB0ckFycmF5ICYgX190aGlzY2FsbCBDSFB0ckFycmF5OjpvcGVyYXRvcj0oY2xhc3MgQ0hQdHJBcnJheSBjb25zdCAmKQ0KKz8/NENIUHRyQXJyYXlAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fdGhpc2NhbGwgQ0hTdHJpbmc6Om9wZXJhdG9yPShjbGFzcyBDSFN0cmluZyBjb25zdCAmKQ0KKz8/NENIU3RyaW5nQEBRQUVBQlYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0hTdHJpbmcgY29uc3QgJiBfX3RoaXNjYWxsIENIU3RyaW5nOjpvcGVyYXRvcj0oY2hhcikNCis/PzRDSFN0cmluZ0BAUUFFQUJWMEBEQFoNCis7IHB1YmxpYzogY2xhc3MgQ0hTdHJpbmcgY29uc3QgJiBfX3RoaXNjYWxsIENIU3RyaW5nOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQpDQorPz80Q0hTdHJpbmdAQFFBRUFCVjBAR0BaDQorOyBwdWJsaWM6IGNsYXNzIENIU3RyaW5nIGNvbnN0ICYgX190aGlzY2FsbCBDSFN0cmluZzo6b3BlcmF0b3I9KGNsYXNzIENIU3RyaW5nICopDQorPz80Q0hTdHJpbmdAQFFBRUFCVjBAUEFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fdGhpc2NhbGwgQ0hTdHJpbmc6Om9wZXJhdG9yPShjaGFyIGNvbnN0ICopDQorPz80Q0hTdHJpbmdAQFFBRUFCVjBAUEJEQFoNCis7IHB1YmxpYzogY2xhc3MgQ0hTdHJpbmcgY29uc3QgJiBfX3RoaXNjYWxsIENIU3RyaW5nOjpvcGVyYXRvcj0odW5zaWduZWQgY2hhciBjb25zdCAqKQ0KKz8/NENIU3RyaW5nQEBRQUVBQlYwQFBCRUBaDQorOyBwdWJsaWM6IGNsYXNzIENIU3RyaW5nIGNvbnN0ICYgX190aGlzY2FsbCBDSFN0cmluZzo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz80Q0hTdHJpbmdAQFFBRUFCVjBAUEJHQFoNCis7IHB1YmxpYzogY2xhc3MgQ0hTdHJpbmdBcnJheSAmIF9fdGhpc2NhbGwgQ0hTdHJpbmdBcnJheTo6b3BlcmF0b3I9KGNsYXNzIENIU3RyaW5nQXJyYXkgY29uc3QgJikNCis/PzRDSFN0cmluZ0FycmF5QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0luc3RhbmNlICYgX190aGlzY2FsbCBDSW5zdGFuY2U6Om9wZXJhdG9yPShjbGFzcyBDSW5zdGFuY2UgY29uc3QgJikNCis/PzRDSW5zdGFuY2VAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDT2JqZWN0UGF0aFBhcnNlciAmIF9fdGhpc2NhbGwgQ09iamVjdFBhdGhQYXJzZXI6Om9wZXJhdG9yPShjbGFzcyBDT2JqZWN0UGF0aFBhcnNlciBjb25zdCAmKQ0KKz8/NENPYmplY3RQYXRoUGFyc2VyQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1JlZ2lzdHJ5ICYgX190aGlzY2FsbCBDUmVnaXN0cnk6Om9wZXJhdG9yPShjbGFzcyBDUmVnaXN0cnkgY29uc3QgJikNCis/PzRDUmVnaXN0cnlAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUmVnaXN0cnlTZWFyY2ggJiBfX3RoaXNjYWxsIENSZWdpc3RyeVNlYXJjaDo6b3BlcmF0b3I9KGNsYXNzIENSZWdpc3RyeVNlYXJjaCBjb25zdCAmKQ0KKz8/NENSZWdpc3RyeVNlYXJjaEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENUaHJlYWRCYXNlICYgX190aGlzY2FsbCBDVGhyZWFkQmFzZTo6b3BlcmF0b3I9KGNsYXNzIENUaHJlYWRCYXNlIGNvbnN0ICYpDQorPz80Q1RocmVhZEJhc2VAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbUdsdWVGYWN0b3J5ICYgX190aGlzY2FsbCBDV2JlbUdsdWVGYWN0b3J5OjpvcGVyYXRvcj0oY2xhc3MgQ1diZW1HbHVlRmFjdG9yeSBjb25zdCAmKQ0KKz8/NENXYmVtR2x1ZUZhY3RvcnlAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbVByb3ZpZGVyR2x1ZSAmIF9fdGhpc2NhbGwgQ1diZW1Qcm92aWRlckdsdWU6Om9wZXJhdG9yPShjbGFzcyBDV2JlbVByb3ZpZGVyR2x1ZSBjb25zdCAmKQ0KKz8/NENXYmVtUHJvdmlkZXJHbHVlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1dpbk1zZ0V2ZW50ICYgX190aGlzY2FsbCBDV2luTXNnRXZlbnQ6Om9wZXJhdG9yPShjbGFzcyBDV2luTXNnRXZlbnQgY29uc3QgJikNCis/PzRDV2luTXNnRXZlbnRAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDcmVhdGVNdXRleEFzUHJvY2VzcyAmIF9fdGhpc2NhbGwgQ3JlYXRlTXV0ZXhBc1Byb2Nlc3M6Om9wZXJhdG9yPShjbGFzcyBDcmVhdGVNdXRleEFzUHJvY2VzcyBjb25zdCAmKQ0KKz8/NENyZWF0ZU11dGV4QXNQcm9jZXNzQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogc3RydWN0IEtleVJlZiAmIF9fdGhpc2NhbGwgS2V5UmVmOjpvcGVyYXRvcj0oc3RydWN0IEtleVJlZiBjb25zdCAmKQ0KKz8/NEtleVJlZkBAUUFFQUFVMEBBQlUwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE1ldGhvZENvbnRleHQgJiBfX3RoaXNjYWxsIE1ldGhvZENvbnRleHQ6Om9wZXJhdG9yPShjbGFzcyBNZXRob2RDb250ZXh0IGNvbnN0ICYpDQorPz80TWV0aG9kQ29udGV4dEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBQYXJzZWRPYmplY3RQYXRoICYgX190aGlzY2FsbCBQYXJzZWRPYmplY3RQYXRoOjpvcGVyYXRvcj0oc3RydWN0IFBhcnNlZE9iamVjdFBhdGggY29uc3QgJikNCis/PzRQYXJzZWRPYmplY3RQYXRoQEBRQUVBQVUwQEFCVTBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdmlkZXIgJiBfX3RoaXNjYWxsIFByb3ZpZGVyOjpvcGVyYXRvcj0oY2xhc3MgUHJvdmlkZXIgY29uc3QgJikNCis/PzRQcm92aWRlckBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZpZGVyTG9nICYgX190aGlzY2FsbCBQcm92aWRlckxvZzo6b3BlcmF0b3I9KGNsYXNzIFByb3ZpZGVyTG9nIGNvbnN0ICYpDQorPz80UHJvdmlkZXJMb2dAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXQkVNVGltZSAmIF9fdGhpc2NhbGwgV0JFTVRpbWU6Om9wZXJhdG9yPShjbGFzcyBXQkVNVGltZSBjb25zdCAmKQ0KKz8/NFdCRU1UaW1lQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV0JFTVRpbWUgY29uc3QgJiBfX3RoaXNjYWxsIFdCRU1UaW1lOjpvcGVyYXRvcj0obG9uZyBjb25zdCAmKQ0KKz8/NFdCRU1UaW1lQEBRQUVBQlYwQEFCSkBaDQorOyBwdWJsaWM6IGNsYXNzIFdCRU1UaW1lIGNvbnN0ICYgX190aGlzY2FsbCBXQkVNVGltZTo6b3BlcmF0b3I9KHN0cnVjdCBfRklMRVRJTUUgY29uc3QgJikNCis/PzRXQkVNVGltZUBAUUFFQUJWMEBBQlVfRklMRVRJTUVAQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdCRU1UaW1lIGNvbnN0ICYgX190aGlzY2FsbCBXQkVNVGltZTo6b3BlcmF0b3I9KHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAmKQ0KKz8/NFdCRU1UaW1lQEBRQUVBQlYwQEFCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiBjbGFzcyBXQkVNVGltZSBjb25zdCAmIF9fdGhpc2NhbGwgV0JFTVRpbWU6Om9wZXJhdG9yPShzdHJ1Y3QgdG0gY29uc3QgJikNCis/PzRXQkVNVGltZUBAUUFFQUJWMEBBQlV0bUBAQFoNCis7IHB1YmxpYzogY2xhc3MgV0JFTVRpbWUgY29uc3QgJiBfX3RoaXNjYWxsIFdCRU1UaW1lOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgKiBjb25zdCkNCis/PzRXQkVNVGltZUBAUUFFQUJWMEBRQUdAWg0KKzsgcHVibGljOiBjbGFzcyBXQkVNVGltZVNwYW4gJiBfX3RoaXNjYWxsIFdCRU1UaW1lU3Bhbjo6b3BlcmF0b3I9KGNsYXNzIFdCRU1UaW1lU3BhbiBjb25zdCAmKQ0KKz8/NFdCRU1UaW1lU3BhbkBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdCRU1UaW1lU3BhbiBjb25zdCAmIF9fdGhpc2NhbGwgV0JFTVRpbWVTcGFuOjpvcGVyYXRvcj0obG9uZyBjb25zdCAmKQ0KKz8/NFdCRU1UaW1lU3BhbkBAUUFFQUJWMEBBQkpAWg0KKzsgcHVibGljOiBjbGFzcyBXQkVNVGltZVNwYW4gY29uc3QgJiBfX3RoaXNjYWxsIFdCRU1UaW1lU3Bhbjo6b3BlcmF0b3I9KHN0cnVjdCBfRklMRVRJTUUgY29uc3QgJikNCis/PzRXQkVNVGltZVNwYW5AQFFBRUFCVjBAQUJVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiBjbGFzcyBXQkVNVGltZVNwYW4gY29uc3QgJiBfX3RoaXNjYWxsIFdCRU1UaW1lU3Bhbjo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0ICogY29uc3QpDQorPz80V0JFTVRpbWVTcGFuQEBRQUVBQlYwQFFBR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFdCRU1UaW1lOjpvcGVyYXRvcj09KGNsYXNzIFdCRU1UaW1lIGNvbnN0ICYpY29uc3QgDQorPz84V0JFTVRpbWVAQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFdCRU1UaW1lU3Bhbjo6b3BlcmF0b3I9PShjbGFzcyBXQkVNVGltZVNwYW4gY29uc3QgJiljb25zdCANCis/PzhXQkVNVGltZVNwYW5AQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFdCRU1UaW1lOjpvcGVyYXRvciE9KGNsYXNzIFdCRU1UaW1lIGNvbnN0ICYpY29uc3QgDQorPz85V0JFTVRpbWVAQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFdCRU1UaW1lU3Bhbjo6b3BlcmF0b3IhPShjbGFzcyBXQkVNVGltZVNwYW4gY29uc3QgJiljb25zdCANCis/PzlXQkVNVGltZVNwYW5AQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IHZvaWQgKiAmIF9fdGhpc2NhbGwgQ0hQdHJBcnJheTo6b3BlcmF0b3JbXShpbnQpDQorPz9BQ0hQdHJBcnJheUBAUUFFQUFQQVhIQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgQ0hQdHJBcnJheTo6b3BlcmF0b3JbXShpbnQpY29uc3QgDQorPz9BQ0hQdHJBcnJheUBAUUJFUEFYSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgQ0hTdHJpbmc6Om9wZXJhdG9yW10oaW50KWNvbnN0IA0KKz8/QUNIU3RyaW5nQEBRQkVHSEBaDQorOyBwdWJsaWM6IGNsYXNzIENIU3RyaW5nICYgX190aGlzY2FsbCBDSFN0cmluZ0FycmF5OjpvcGVyYXRvcltdKGludCkNCis/P0FDSFN0cmluZ0FycmF5QEBRQUVBQVZDSFN0cmluZ0BASEBaDQorOyBwdWJsaWM6IGNsYXNzIENIU3RyaW5nICBfX3RoaXNjYWxsIENIU3RyaW5nQXJyYXk6Om9wZXJhdG9yW10oaW50KWNvbnN0IA0KKz8/QUNIU3RyaW5nQXJyYXlAQFFCRT9BVkNIU3RyaW5nQEBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSFN0cmluZzo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgY29uc3QgKih2b2lkKWNvbnN0IA0KKz8/QkNIU3RyaW5nQEBRQkVQQkdYWg0KKzsgcHVibGljOiBjbGFzcyBXQkVNVGltZVNwYW4gIF9fdGhpc2NhbGwgV0JFTVRpbWU6Om9wZXJhdG9yLShjbGFzcyBXQkVNVGltZSBjb25zdCAmKQ0KKz8/R1dCRU1UaW1lQEBRQUU/QVZXQkVNVGltZVNwYW5AQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV0JFTVRpbWUgIF9fdGhpc2NhbGwgV0JFTVRpbWU6Om9wZXJhdG9yLShjbGFzcyBXQkVNVGltZVNwYW4gY29uc3QgJiljb25zdCANCis/P0dXQkVNVGltZUBAUUJFP0FWMEBBQlZXQkVNVGltZVNwYW5AQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdCRU1UaW1lU3BhbiAgX190aGlzY2FsbCBXQkVNVGltZVNwYW46Om9wZXJhdG9yLShjbGFzcyBXQkVNVGltZVNwYW4gY29uc3QgJiljb25zdCANCis/P0dXQkVNVGltZVNwYW5AQFFCRT9BVjBAQUJWMEBAWg0KKzsgY2xhc3MgQ0hTdHJpbmcgIF9fc3RkY2FsbCBvcGVyYXRvcisoY2xhc3MgQ0hTdHJpbmcgY29uc3QgJixjbGFzcyBDSFN0cmluZyBjb25zdCAmKQ0KKz8/SEBZRz9BVkNIU3RyaW5nQEBBQlYwQDBAWg0KKzsgY2xhc3MgQ0hTdHJpbmcgIF9fc3RkY2FsbCBvcGVyYXRvcisoY2xhc3MgQ0hTdHJpbmcgY29uc3QgJix1bnNpZ25lZCBzaG9ydCkNCis/P0hAWUc/QVZDSFN0cmluZ0BAQUJWMEBHQFoNCis7IGNsYXNzIENIU3RyaW5nICBfX3N0ZGNhbGwgb3BlcmF0b3IrKGNsYXNzIENIU3RyaW5nIGNvbnN0ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/P0hAWUc/QVZDSFN0cmluZ0BAQUJWMEBQQkdAWg0KKzsgY2xhc3MgQ0hTdHJpbmcgIF9fc3RkY2FsbCBvcGVyYXRvcisodW5zaWduZWQgc2hvcnQsY2xhc3MgQ0hTdHJpbmcgY29uc3QgJikNCis/P0hAWUc/QVZDSFN0cmluZ0BAR0FCVjBAQFoNCis7IGNsYXNzIENIU3RyaW5nICBfX3N0ZGNhbGwgb3BlcmF0b3IrKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ0hTdHJpbmcgY29uc3QgJikNCis/P0hAWUc/QVZDSFN0cmluZ0BAUEJHQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXQkVNVGltZSAgX190aGlzY2FsbCBXQkVNVGltZTo6b3BlcmF0b3IrKGNsYXNzIFdCRU1UaW1lU3BhbiBjb25zdCAmKWNvbnN0IA0KKz8/SFdCRU1UaW1lQEBRQkU/QVYwQEFCVldCRU1UaW1lU3BhbkBAQFoNCis7IHB1YmxpYzogY2xhc3MgV0JFTVRpbWVTcGFuICBfX3RoaXNjYWxsIFdCRU1UaW1lU3Bhbjo6b3BlcmF0b3IrKGNsYXNzIFdCRU1UaW1lU3BhbiBjb25zdCAmKWNvbnN0IA0KKz8/SFdCRU1UaW1lU3BhbkBAUUJFP0FWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFdCRU1UaW1lOjpvcGVyYXRvcjwoY2xhc3MgV0JFTVRpbWUgY29uc3QgJiljb25zdCANCis/P01XQkVNVGltZUBAUUJFSEFCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV0JFTVRpbWVTcGFuOjpvcGVyYXRvcjwoY2xhc3MgV0JFTVRpbWVTcGFuIGNvbnN0ICYpY29uc3QgDQorPz9NV0JFTVRpbWVTcGFuQEBRQkVIQUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBXQkVNVGltZTo6b3BlcmF0b3I8PShjbGFzcyBXQkVNVGltZSBjb25zdCAmKWNvbnN0IA0KKz8/TldCRU1UaW1lQEBRQkVIQUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBXQkVNVGltZVNwYW46Om9wZXJhdG9yPD0oY2xhc3MgV0JFTVRpbWVTcGFuIGNvbnN0ICYpY29uc3QgDQorPz9OV0JFTVRpbWVTcGFuQEBRQkVIQUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBXQkVNVGltZTo6b3BlcmF0b3I+KGNsYXNzIFdCRU1UaW1lIGNvbnN0ICYpY29uc3QgDQorPz9PV0JFTVRpbWVAQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFdCRU1UaW1lU3Bhbjo6b3BlcmF0b3I+KGNsYXNzIFdCRU1UaW1lU3BhbiBjb25zdCAmKWNvbnN0IA0KKz8/T1dCRU1UaW1lU3BhbkBAUUJFSEFCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV0JFTVRpbWU6Om9wZXJhdG9yPj0oY2xhc3MgV0JFTVRpbWUgY29uc3QgJiljb25zdCANCis/P1BXQkVNVGltZUBAUUJFSEFCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV0JFTVRpbWVTcGFuOjpvcGVyYXRvcj49KGNsYXNzIFdCRU1UaW1lU3BhbiBjb25zdCAmKWNvbnN0IA0KKz8/UFdCRU1UaW1lU3BhbkBAUUJFSEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0hTdHJpbmcgY29uc3QgJiBfX3RoaXNjYWxsIENIU3RyaW5nOjpvcGVyYXRvcis9KGNsYXNzIENIU3RyaW5nIGNvbnN0ICYpDQorPz9ZQ0hTdHJpbmdAQFFBRUFCVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fdGhpc2NhbGwgQ0hTdHJpbmc6Om9wZXJhdG9yKz0oY2hhcikNCis/P1lDSFN0cmluZ0BAUUFFQUJWMEBEQFoNCis7IHB1YmxpYzogY2xhc3MgQ0hTdHJpbmcgY29uc3QgJiBfX3RoaXNjYWxsIENIU3RyaW5nOjpvcGVyYXRvcis9KHVuc2lnbmVkIHNob3J0KQ0KKz8/WUNIU3RyaW5nQEBRQUVBQlYwQEdAWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fdGhpc2NhbGwgQ0hTdHJpbmc6Om9wZXJhdG9yKz0odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/P1lDSFN0cmluZ0BAUUFFQUJWMEBQQkdAWg0KKzsgcHVibGljOiBjbGFzcyBXQkVNVGltZSBjb25zdCAmIF9fdGhpc2NhbGwgV0JFTVRpbWU6Om9wZXJhdG9yKz0oY2xhc3MgV0JFTVRpbWVTcGFuIGNvbnN0ICYpDQorPz9ZV0JFTVRpbWVAQFFBRUFCVjBAQUJWV0JFTVRpbWVTcGFuQEBAWg0KKzsgcHVibGljOiBjbGFzcyBXQkVNVGltZVNwYW4gY29uc3QgJiBfX3RoaXNjYWxsIFdCRU1UaW1lU3Bhbjo6b3BlcmF0b3IrPShjbGFzcyBXQkVNVGltZVNwYW4gY29uc3QgJikNCis/P1lXQkVNVGltZVNwYW5AQFFBRUFCVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXQkVNVGltZSBjb25zdCAmIF9fdGhpc2NhbGwgV0JFTVRpbWU6Om9wZXJhdG9yLT0oY2xhc3MgV0JFTVRpbWVTcGFuIGNvbnN0ICYpDQorPz9aV0JFTVRpbWVAQFFBRUFCVjBAQUJWV0JFTVRpbWVTcGFuQEBAWg0KKzsgcHVibGljOiBjbGFzcyBXQkVNVGltZVNwYW4gY29uc3QgJiBfX3RoaXNjYWxsIFdCRU1UaW1lU3Bhbjo6b3BlcmF0b3ItPShjbGFzcyBXQkVNVGltZVNwYW4gY29uc3QgJikNCis/P1pXQkVNVGltZVNwYW5AQFFBRUFCVjBAQUJWMEBAWg0KKzsgY29uc3QgIENGcmFtZXdvcmtRdWVyeUV4OjpgdmZ0YWJsZScNCis/P183Q0ZyYW1ld29ya1F1ZXJ5RXhAQDZCQA0KKzsgY29uc3QgIENJbnN0YW5jZTo6YHZmdGFibGUnDQorPz9fN0NJbnN0YW5jZUBANkJADQorOyBjb25zdCAgQ1RocmVhZEJhc2U6OmB2ZnRhYmxlJw0KKz8/XzdDVGhyZWFkQmFzZUBANkJADQorOyBjb25zdCAgQ1diZW1HbHVlRmFjdG9yeTo6YHZmdGFibGUnDQorPz9fN0NXYmVtR2x1ZUZhY3RvcnlAQDZCQA0KKzsgY29uc3QgIENXYmVtUHJvdmlkZXJHbHVlOjpgdmZ0YWJsZSd7Zm9yIGBJV2JlbVByb3ZpZGVySW5pdCd9DQorPz9fN0NXYmVtUHJvdmlkZXJHbHVlQEA2QklXYmVtUHJvdmlkZXJJbml0QEBADQorOyBjb25zdCAgQ1diZW1Qcm92aWRlckdsdWU6OmB2ZnRhYmxlJ3tmb3IgYElXYmVtU2VydmljZXMnfQ0KKz8/XzdDV2JlbVByb3ZpZGVyR2x1ZUBANkJJV2JlbVNlcnZpY2VzQEBADQorOyBjb25zdCAgQ1dpbk1zZ0V2ZW50OjpgdmZ0YWJsZScNCis/P183Q1dpbk1zZ0V2ZW50QEA2QkANCis7IGNvbnN0ICBNZXRob2RDb250ZXh0OjpgdmZ0YWJsZScNCis/P183TWV0aG9kQ29udGV4dEBANkJADQorOyBjb25zdCAgUHJvdmlkZXI6OmB2ZnRhYmxlJw0KKz8/XzdQcm92aWRlckBANkJADQorOyBjb25zdCAgUHJvdmlkZXJMb2c6OmB2ZnRhYmxlJw0KKz8/XzdQcm92aWRlckxvZ0BANkJADQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDT2JqZWN0UGF0aFBhcnNlcjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GQ09iamVjdFBhdGhQYXJzZXJAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1RocmVhZEJhc2U6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRkNUaHJlYWRCYXNlQEBRQUVYWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0hQdHJBcnJheTo6QWRkKHZvaWQgKikNCis/QWRkQENIUHRyQXJyYXlAQFFBRUhQQVhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSFN0cmluZ0FycmF5OjpBZGQodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/QWRkQENIU3RyaW5nQXJyYXlAQFFBRUhQQkdAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpBZGRGbHVzaFB0cih2b2lkICopDQorP0FkZEZsdXNoUHRyQENXYmVtUHJvdmlkZXJHbHVlQEBBQUVYUEFYQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgUGFyc2VkT2JqZWN0UGF0aDo6QWRkS2V5UmVmKHN0cnVjdCBLZXlSZWYgKikNCis/QWRkS2V5UmVmQFBhcnNlZE9iamVjdFBhdGhAQFFBRUhQQVVLZXlSZWZAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFBhcnNlZE9iamVjdFBhdGg6OkFkZEtleVJlZih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHN0cnVjdCB0YWdWQVJJQU5UIGNvbnN0ICopDQorP0FkZEtleVJlZkBQYXJzZWRPYmplY3RQYXRoQEBRQUVIUEJHUEJVdGFnVkFSSUFOVEBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgUGFyc2VkT2JqZWN0UGF0aDo6QWRkS2V5UmVmRXgodW5zaWduZWQgc2hvcnQgY29uc3QgKixzdHJ1Y3QgdGFnVkFSSUFOVCBjb25zdCAqKQ0KKz9BZGRLZXlSZWZFeEBQYXJzZWRPYmplY3RQYXRoQEBRQUVIUEJHUEJVdGFnVkFSSUFOVEBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgUGFyc2VkT2JqZWN0UGF0aDo6QWRkTmFtZXNwYWNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0FkZE5hbWVzcGFjZUBQYXJzZWRPYmplY3RQYXRoQEBRQUVIUEJHQFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBQcm92aWRlciAqIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6QWRkUHJvdmlkZXJUb01hcCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgUHJvdmlkZXIgKikNCis/QWRkUHJvdmlkZXJUb01hcEBDV2JlbVByb3ZpZGVyR2x1ZUBAQ0dQQVZQcm92aWRlckBAUEJHMFBBVjJAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENJbnN0YW5jZTo6QWRkUmVmKHZvaWQpDQorP0FkZFJlZkBDSW5zdGFuY2VAQFFBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1RocmVhZEJhc2U6OkFkZFJlZih2b2lkKQ0KKz9BZGRSZWZAQ1RocmVhZEJhc2VAQFFBRUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENXYmVtR2x1ZUZhY3Rvcnk6OkFkZFJlZih2b2lkKQ0KKz9BZGRSZWZAQ1diZW1HbHVlRmFjdG9yeUBAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkFkZFJlZih2b2lkKQ0KKz9BZGRSZWZAQ1diZW1Qcm92aWRlckdsdWVAQFVBR0tYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTWV0aG9kQ29udGV4dDo6QWRkUmVmKHZvaWQpDQorP0FkZFJlZkBNZXRob2RDb250ZXh0QEBRQUVKWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHZvaWQgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpBZGRUb0ZhY3RvcnlNYXAoY2xhc3MgQ1diZW1HbHVlRmFjdG9yeSBjb25zdCAqLGxvbmcgKikNCis/QWRkVG9GYWN0b3J5TWFwQENXYmVtUHJvdmlkZXJHbHVlQEBLR1hQQlZDV2JlbUdsdWVGYWN0b3J5QEBQQUpAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0ZyYW1ld29ya1F1ZXJ5OjpBbGxQcm9wZXJ0aWVzQXJlUmVxdWlyZWQodm9pZCkNCis/QWxsUHJvcGVydGllc0FyZVJlcXVpcmVkQENGcmFtZXdvcmtRdWVyeUBAUUFFX05YWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ0hTdHJpbmc6OkFsbG9jQmVmb3JlV3JpdGUoaW50KQ0KKz9BbGxvY0JlZm9yZVdyaXRlQENIU3RyaW5nQEBJQUVYSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDSFN0cmluZzo6QWxsb2NCdWZmZXIoaW50KQ0KKz9BbGxvY0J1ZmZlckBDSFN0cmluZ0BASUFFWEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ0hTdHJpbmc6OkFsbG9jQ29weShjbGFzcyBDSFN0cmluZyAmLGludCxpbnQsaW50KWNvbnN0IA0KKz9BbGxvY0NvcHlAQ0hTdHJpbmdAQElCRVhBQVYxQEhISEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBDSFN0cmluZzo6QWxsb2NTeXNTdHJpbmcodm9pZCljb25zdCANCis/QWxsb2NTeXNTdHJpbmdAQ0hTdHJpbmdAQFFCRVBBR1haDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENIUHRyQXJyYXk6OkFwcGVuZChjbGFzcyBDSFB0ckFycmF5IGNvbnN0ICYpDQorP0FwcGVuZEBDSFB0ckFycmF5QEBRQUVIQUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSFN0cmluZ0FycmF5OjpBcHBlbmQoY2xhc3MgQ0hTdHJpbmdBcnJheSBjb25zdCAmKQ0KKz9BcHBlbmRAQ0hTdHJpbmdBcnJheUBAUUFFSEFCVjFAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENIU3RyaW5nOjpBc3NpZ25Db3B5KGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Bc3NpZ25Db3B5QENIU3RyaW5nQEBJQUVYSFBCR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENUaHJlYWRCYXNlOjpCZWdpblJlYWQodW5zaWduZWQgbG9uZykNCis/QmVnaW5SZWFkQENUaHJlYWRCYXNlQEBRQUVIS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENUaHJlYWRCYXNlOjpCZWdpbldyaXRlKHVuc2lnbmVkIGxvbmcpDQorP0JlZ2luV3JpdGVAQ1RocmVhZEJhc2VAQFFBRUhLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6Q2FuY2VsQXN5bmNDYWxsKHN0cnVjdCBJV2JlbU9iamVjdFNpbmsgKikNCis/Q2FuY2VsQXN5bmNDYWxsQENXYmVtUHJvdmlkZXJHbHVlQEBVQUdKUEFVSVdiZW1PYmplY3RTaW5rQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpDYW5jZWxBc3luY1JlcXVlc3QobG9uZykNCis/Q2FuY2VsQXN5bmNSZXF1ZXN0QENXYmVtUHJvdmlkZXJHbHVlQEBVQUdKSkBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5U2VhcmNoOjpDaGVja0FuZEFkZFRvTGlzdChjbGFzcyBDUmVnaXN0cnkgKixjbGFzcyBDSFN0cmluZyxjbGFzcyBDSFN0cmluZyxjbGFzcyBDSFB0ckFycmF5ICYsY2xhc3MgQ0hTdHJpbmcsY2xhc3MgQ0hTdHJpbmcsaW50KQ0KKz9DaGVja0FuZEFkZFRvTGlzdEBDUmVnaXN0cnlTZWFyY2hAQEFBRVhQQVZDUmVnaXN0cnlAQFZDSFN0cmluZ0BAMUFBVkNIUHRyQXJyYXlAQDExSEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgUHJvdmlkZXJMb2c6OkNoZWNrRmlsZVNpemUodW5pb24gX0xBUkdFX0lOVEVHRVIgJixjbGFzcyBDSFN0cmluZyBjb25zdCAmKQ0KKz9DaGVja0ZpbGVTaXplQFByb3ZpZGVyTG9nQEBBQUVYQUFUX0xBUkdFX0lOVEVHRVJAQEFCVkNIU3RyaW5nQEBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGxvbmcgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpDaGVja0ltcGVyc29uYXRpb25MZXZlbCh2b2lkKQ0KKz9DaGVja0ltcGVyc29uYXRpb25MZXZlbEBDV2JlbVByb3ZpZGVyR2x1ZUBAQ0dKWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFdCRU1UaW1lOjpDbGVhcih2b2lkKQ0KKz9DbGVhckBXQkVNVGltZUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBXQkVNVGltZVNwYW46OkNsZWFyKHZvaWQpDQorP0NsZWFyQFdCRU1UaW1lU3BhbkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBQYXJzZWRPYmplY3RQYXRoOjpDbGVhcktleXModm9pZCkNCis/Q2xlYXJLZXlzQFBhcnNlZE9iamVjdFBhdGhAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5OjpDbG9zZSh2b2lkKQ0KKz9DbG9zZUBDUmVnaXN0cnlAQFFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENSZWdpc3RyeTo6Q2xvc2VTdWJLZXkodm9pZCkNCis/Q2xvc2VTdWJLZXlAQ1JlZ2lzdHJ5QEBBQUVYWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0hTdHJpbmc6OkNvbGxhdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/Q29sbGF0ZUBDSFN0cmluZ0BAUUJFSFBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDSW5zdGFuY2U6OkNvbW1pdCh2b2lkKQ0KKz9Db21taXRAQ0luc3RhbmNlQEBRQUVKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIFByb3ZpZGVyOjpDb21taXQoY2xhc3MgQ0luc3RhbmNlICosYm9vbCkNCis/Q29tbWl0QFByb3ZpZGVyQEBJQUVKUEFWQ0luc3RhbmNlQEBfTkBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENIU3RyaW5nOjpDb21wYXJlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP0NvbXBhcmVAQ0hTdHJpbmdAQFFCRUhQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSFN0cmluZzo6Q29tcGFyZU5vQ2FzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9Db21wYXJlTm9DYXNlQENIU3RyaW5nQEBRQkVIUEJHQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENIU3RyaW5nOjpDb25jYXRDb3B5KGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Db25jYXRDb3B5QENIU3RyaW5nQEBJQUVYSFBCR0gwQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENIU3RyaW5nOjpDb25jYXRJblBsYWNlKGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Db25jYXRJblBsYWNlQENIU3RyaW5nQEBJQUVYSFBCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSFB0ckFycmF5OjpDb3B5KGNsYXNzIENIUHRyQXJyYXkgY29uc3QgJikNCis/Q29weUBDSFB0ckFycmF5QEBRQUVYQUJWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0hTdHJpbmdBcnJheTo6Q29weShjbGFzcyBDSFN0cmluZ0FycmF5IGNvbnN0ICYpDQorP0NvcHlAQ0hTdHJpbmdBcnJheUBAUUFFWEFCVjFAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENIU3RyaW5nOjpDb3B5QmVmb3JlV3JpdGUodm9pZCkNCis/Q29weUJlZm9yZVdyaXRlQENIU3RyaW5nQEBJQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6Q3JlYXRlQ2xhc3NFbnVtKHVuc2lnbmVkIHNob3J0ICogY29uc3QsbG9uZyxzdHJ1Y3QgSVdiZW1Db250ZXh0ICosc3RydWN0IElFbnVtV2JlbUNsYXNzT2JqZWN0ICogKikNCis/Q3JlYXRlQ2xhc3NFbnVtQENXYmVtUHJvdmlkZXJHbHVlQEBVQUdKUUFHSlBBVUlXYmVtQ29udGV4dEBAUEFQQVVJRW51bVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6Q3JlYXRlQ2xhc3NFbnVtQXN5bmModW5zaWduZWQgc2hvcnQgKiBjb25zdCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKixzdHJ1Y3QgSVdiZW1PYmplY3RTaW5rICopDQorP0NyZWF0ZUNsYXNzRW51bUFzeW5jQENXYmVtUHJvdmlkZXJHbHVlQEBVQUdKUUFHSlBBVUlXYmVtQ29udGV4dEBAUEFVSVdiZW1PYmplY3RTaW5rQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtR2x1ZUZhY3Rvcnk6OkNyZWF0ZUluc3RhbmNlKHN0cnVjdCBJVW5rbm93biAqLHN0cnVjdCBfR1VJRCBjb25zdCAmLHZvaWQgKiAqKQ0KKz9DcmVhdGVJbnN0YW5jZUBDV2JlbUdsdWVGYWN0b3J5QEBVQUdKUEFVSVVua25vd25AQEFCVV9HVUlEQEBQQVBBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkNyZWF0ZUluc3RhbmNlRW51bSh1bnNpZ25lZCBzaG9ydCAqIGNvbnN0LGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqLHN0cnVjdCBJRW51bVdiZW1DbGFzc09iamVjdCAqICopDQorP0NyZWF0ZUluc3RhbmNlRW51bUBDV2JlbVByb3ZpZGVyR2x1ZUBAVUFHSlFBR0pQQVVJV2JlbUNvbnRleHRAQFBBUEFVSUVudW1XYmVtQ2xhc3NPYmplY3RAQEBaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgUHJvdmlkZXI6OkNyZWF0ZUluc3RhbmNlRW51bShjbGFzcyBNZXRob2RDb250ZXh0ICosbG9uZykNCis/Q3JlYXRlSW5zdGFuY2VFbnVtQFByb3ZpZGVyQEBBQUVKUEFWTWV0aG9kQ29udGV4dEBASkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkNyZWF0ZUluc3RhbmNlRW51bUFzeW5jKHVuc2lnbmVkIHNob3J0ICogY29uc3QsbG9uZyxzdHJ1Y3QgSVdiZW1Db250ZXh0ICosc3RydWN0IElXYmVtT2JqZWN0U2luayAqKQ0KKz9DcmVhdGVJbnN0YW5jZUVudW1Bc3luY0BDV2JlbVByb3ZpZGVyR2x1ZUBAVUFHSlFBR0pQQVVJV2JlbUNvbnRleHRAQFBBVUlXYmVtT2JqZWN0U2lua0BAQFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDV2luTXNnRXZlbnQ6OkNyZWF0ZU1zZ1Byb3ZpZGVyKHZvaWQpDQorP0NyZWF0ZU1zZ1Byb3ZpZGVyQENXaW5Nc2dFdmVudEBAQ0dYWFoNCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgSFdORF9fICogX19zdGRjYWxsIENXaW5Nc2dFdmVudDo6Q3JlYXRlTXNnV2luZG93KHZvaWQpDQorP0NyZWF0ZU1zZ1dpbmRvd0BDV2luTXNnRXZlbnRAQENHUEFVSFdORF9fQEBYWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDSW5zdGFuY2UgKiBfX3RoaXNjYWxsIFByb3ZpZGVyOjpDcmVhdGVOZXdJbnN0YW5jZShjbGFzcyBNZXRob2RDb250ZXh0ICopDQorP0NyZWF0ZU5ld0luc3RhbmNlQFByb3ZpZGVyQEBJQUVQQVZDSW5zdGFuY2VAQFBBVk1ldGhvZENvbnRleHRAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDUmVnaXN0cnk6OkNyZWF0ZU9wZW4oc3RydWN0IEhLRVlfXyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsc3RydWN0IF9TRUNVUklUWV9BVFRSSUJVVEVTICosdW5zaWduZWQgbG9uZyAqKQ0KKz9DcmVhdGVPcGVuQENSZWdpc3RyeUBAUUFFSlBBVUhLRVlfX0BAUEJHUEFHS0tQQVVfU0VDVVJJVFlfQVRUUklCVVRFU0BAUEFLQFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENXaW5Nc2dFdmVudDo6Q3RybEhhbmRsZXJSb3V0aW5lKHVuc2lnbmVkIGxvbmcpDQorP0N0cmxIYW5kbGVyUm91dGluZUBDV2luTXNnRXZlbnRAQENHSEtAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkRlY3JlbWVudE1hcENvdW50KGxvbmcgKikNCis/RGVjcmVtZW50TWFwQ291bnRAQ1diZW1Qcm92aWRlckdsdWVAQEtHSlBBSkBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6RGVjcmVtZW50TWFwQ291bnQoY2xhc3MgQ1diZW1HbHVlRmFjdG9yeSBjb25zdCAqKQ0KKz9EZWNyZW1lbnRNYXBDb3VudEBDV2JlbVByb3ZpZGVyR2x1ZUBAS0dKUEJWQ1diZW1HbHVlRmFjdG9yeUBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpEZWNyZW1lbnRPYmplY3RDb3VudCh2b2lkKQ0KKz9EZWNyZW1lbnRPYmplY3RDb3VudEBDV2JlbVByb3ZpZGVyR2x1ZUBAU0dKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6RGVsZXRlQ2xhc3ModW5zaWduZWQgc2hvcnQgKiBjb25zdCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKixzdHJ1Y3QgSVdiZW1DYWxsUmVzdWx0ICogKikNCis/RGVsZXRlQ2xhc3NAQ1diZW1Qcm92aWRlckdsdWVAQFVBR0pRQUdKUEFVSVdiZW1Db250ZXh0QEBQQVBBVUlXYmVtQ2FsbFJlc3VsdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6RGVsZXRlQ2xhc3NBc3luYyh1bnNpZ25lZCBzaG9ydCAqIGNvbnN0LGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqLHN0cnVjdCBJV2JlbU9iamVjdFNpbmsgKikNCis/RGVsZXRlQ2xhc3NBc3luY0BDV2JlbVByb3ZpZGVyR2x1ZUBAVUFHSlFBR0pQQVVJV2JlbUNvbnRleHRAQFBBVUlXYmVtT2JqZWN0U2lua0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENSZWdpc3RyeTo6RGVsZXRlQ3VycmVudEtleVZhbHVlKHN0cnVjdCBIS0VZX18gKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9EZWxldGVDdXJyZW50S2V5VmFsdWVAQ1JlZ2lzdHJ5QEBRQUVLUEFVSEtFWV9fQEBQQkdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5OjpEZWxldGVDdXJyZW50S2V5VmFsdWUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/RGVsZXRlQ3VycmVudEtleVZhbHVlQENSZWdpc3RyeUBAUUFFS1BCR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkRlbGV0ZUluc3RhbmNlKHVuc2lnbmVkIHNob3J0ICogY29uc3QsbG9uZyxzdHJ1Y3QgSVdiZW1Db250ZXh0ICosc3RydWN0IElXYmVtQ2FsbFJlc3VsdCAqICopDQorP0RlbGV0ZUluc3RhbmNlQENXYmVtUHJvdmlkZXJHbHVlQEBVQUdKUUFHSlBBVUlXYmVtQ29udGV4dEBAUEFQQVVJV2JlbUNhbGxSZXN1bHRAQEBaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgUHJvdmlkZXI6OkRlbGV0ZUluc3RhbmNlKHN0cnVjdCBQYXJzZWRPYmplY3RQYXRoICosbG9uZyxjbGFzcyBNZXRob2RDb250ZXh0ICopDQorP0RlbGV0ZUluc3RhbmNlQFByb3ZpZGVyQEBBQUVKUEFVUGFyc2VkT2JqZWN0UGF0aEBASlBBVk1ldGhvZENvbnRleHRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFByb3ZpZGVyOjpEZWxldGVJbnN0YW5jZShjbGFzcyBDSW5zdGFuY2UgY29uc3QgJixsb25nKQ0KKz9EZWxldGVJbnN0YW5jZUBQcm92aWRlckBATUFFSkFCVkNJbnN0YW5jZUBASkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkRlbGV0ZUluc3RhbmNlQXN5bmModW5zaWduZWQgc2hvcnQgKiBjb25zdCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKixzdHJ1Y3QgSVdiZW1PYmplY3RTaW5rICopDQorP0RlbGV0ZUluc3RhbmNlQXN5bmNAQ1diZW1Qcm92aWRlckdsdWVAQFVBR0pRQUdKUEFVSVdiZW1Db250ZXh0QEBQQVVJV2JlbU9iamVjdFNpbmtAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDUmVnaXN0cnk6OkRlbGV0ZUtleShjbGFzcyBDSFN0cmluZyAqKQ0KKz9EZWxldGVLZXlAQ1JlZ2lzdHJ5QEBRQUVKUEFWQ0hTdHJpbmdAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDUmVnaXN0cnk6OkRlbGV0ZVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0RlbGV0ZVZhbHVlQENSZWdpc3RyeUBAUUFFSlBCR0BaDQorOyBwcml2YXRlOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1dpbk1zZ0V2ZW50OjpEZXN0cm95TXNnV2luZG93KHZvaWQpDQorP0Rlc3Ryb3lNc2dXaW5kb3dAQ1dpbk1zZ0V2ZW50QEBDR1hYWg0KKzsgcHVibGljOiB2b2lkICogJiBfX3RoaXNjYWxsIENIUHRyQXJyYXk6OkVsZW1lbnRBdChpbnQpDQorP0VsZW1lbnRBdEBDSFB0ckFycmF5QEBRQUVBQVBBWEhAWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyAmIF9fdGhpc2NhbGwgQ0hTdHJpbmdBcnJheTo6RWxlbWVudEF0KGludCkNCis/RWxlbWVudEF0QENIU3RyaW5nQXJyYXlAQFFBRUFBVkNIU3RyaW5nQEBIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENIU3RyaW5nOjpFbXB0eSh2b2lkKQ0KKz9FbXB0eUBDSFN0cmluZ0BAUUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ09iamVjdFBhdGhQYXJzZXI6OkVtcHR5KHZvaWQpDQorP0VtcHR5QENPYmplY3RQYXRoUGFyc2VyQEBBQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENUaHJlYWRCYXNlOjpFbmRSZWFkKHZvaWQpDQorP0VuZFJlYWRAQ1RocmVhZEJhc2VAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1RocmVhZEJhc2U6OkVuZFdyaXRlKHZvaWQpDQorP0VuZFdyaXRlQENUaHJlYWRCYXNlQEBRQUVYWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENSZWdpc3RyeTo6RW51bWVyYXRlQW5kR2V0VmFsdWVzKHVuc2lnbmVkIGxvbmcgJix1bnNpZ25lZCBzaG9ydCAqICYsdW5zaWduZWQgY2hhciAqICYpDQorP0VudW1lcmF0ZUFuZEdldFZhbHVlc0BDUmVnaXN0cnlAQFFBRUpBQUtBQVBBR0FBUEFFQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgUHJvdmlkZXI6OkVudW1lcmF0ZUluc3RhbmNlcyhjbGFzcyBNZXRob2RDb250ZXh0ICosbG9uZykNCis/RW51bWVyYXRlSW5zdGFuY2VzQFByb3ZpZGVyQEBNQUVKUEFWTWV0aG9kQ29udGV4dEBASkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkV4ZWNNZXRob2QodW5zaWduZWQgc2hvcnQgKiBjb25zdCx1bnNpZ25lZCBzaG9ydCAqIGNvbnN0LGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICosc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiAqLHN0cnVjdCBJV2JlbUNhbGxSZXN1bHQgKiAqKQ0KKz9FeGVjTWV0aG9kQENXYmVtUHJvdmlkZXJHbHVlQEBVQUdKUUFHMEpQQVVJV2JlbUNvbnRleHRAQFBBVUlXYmVtQ2xhc3NPYmplY3RAQFBBUEFVM0BQQVBBVUlXYmVtQ2FsbFJlc3VsdEBAQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBQcm92aWRlcjo6RXhlY01ldGhvZChzdHJ1Y3QgUGFyc2VkT2JqZWN0UGF0aCAqLHVuc2lnbmVkIHNob3J0ICosbG9uZyxjbGFzcyBDSW5zdGFuY2UgKixjbGFzcyBDSW5zdGFuY2UgKixjbGFzcyBNZXRob2RDb250ZXh0ICopDQorP0V4ZWNNZXRob2RAUHJvdmlkZXJAQEFBRUpQQVVQYXJzZWRPYmplY3RQYXRoQEBQQUdKUEFWQ0luc3RhbmNlQEAyUEFWTWV0aG9kQ29udGV4dEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgUHJvdmlkZXI6OkV4ZWNNZXRob2QoY2xhc3MgQ0luc3RhbmNlIGNvbnN0ICYsdW5zaWduZWQgc2hvcnQgKiBjb25zdCxjbGFzcyBDSW5zdGFuY2UgKixjbGFzcyBDSW5zdGFuY2UgKixsb25nKQ0KKz9FeGVjTWV0aG9kQFByb3ZpZGVyQEBNQUVKQUJWQ0luc3RhbmNlQEBRQUdQQVYyQDJKQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6RXhlY01ldGhvZEFzeW5jKHVuc2lnbmVkIHNob3J0ICogY29uc3QsdW5zaWduZWQgc2hvcnQgKiBjb25zdCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKixzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqLHN0cnVjdCBJV2JlbU9iamVjdFNpbmsgKikNCis/RXhlY01ldGhvZEFzeW5jQENXYmVtUHJvdmlkZXJHbHVlQEBVQUdKUUFHMEpQQVVJV2JlbUNvbnRleHRAQFBBVUlXYmVtQ2xhc3NPYmplY3RAQFBBVUlXYmVtT2JqZWN0U2lua0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6RXhlY05vdGlmaWNhdGlvblF1ZXJ5KHVuc2lnbmVkIHNob3J0ICogY29uc3QsdW5zaWduZWQgc2hvcnQgKiBjb25zdCxsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKixzdHJ1Y3QgSUVudW1XYmVtQ2xhc3NPYmplY3QgKiAqKQ0KKz9FeGVjTm90aWZpY2F0aW9uUXVlcnlAQ1diZW1Qcm92aWRlckdsdWVAQFVBR0pRQUcwSlBBVUlXYmVtQ29udGV4dEBAUEFQQVVJRW51bVdiZW1DbGFzc09iamVjdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6RXhlY05vdGlmaWNhdGlvblF1ZXJ5QXN5bmModW5zaWduZWQgc2hvcnQgKiBjb25zdCx1bnNpZ25lZCBzaG9ydCAqIGNvbnN0LGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqLHN0cnVjdCBJV2JlbU9iamVjdFNpbmsgKikNCis/RXhlY05vdGlmaWNhdGlvblF1ZXJ5QXN5bmNAQ1diZW1Qcm92aWRlckdsdWVAQFVBR0pRQUcwSlBBVUlXYmVtQ29udGV4dEBAUEFVSVdiZW1PYmplY3RTaW5rQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpFeGVjUXVlcnkodW5zaWduZWQgc2hvcnQgKiBjb25zdCx1bnNpZ25lZCBzaG9ydCAqIGNvbnN0LGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqLHN0cnVjdCBJRW51bVdiZW1DbGFzc09iamVjdCAqICopDQorP0V4ZWNRdWVyeUBDV2JlbVByb3ZpZGVyR2x1ZUBAVUFHSlFBRzBKUEFVSVdiZW1Db250ZXh0QEBQQVBBVUlFbnVtV2JlbUNsYXNzT2JqZWN0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBQcm92aWRlcjo6RXhlY1F1ZXJ5KGNsYXNzIE1ldGhvZENvbnRleHQgKixjbGFzcyBDRnJhbWV3b3JrUXVlcnkgJixsb25nKQ0KKz9FeGVjUXVlcnlAUHJvdmlkZXJAQE1BRUpQQVZNZXRob2RDb250ZXh0QEBBQVZDRnJhbWV3b3JrUXVlcnlAQEpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpFeGVjUXVlcnlBc3luYyh1bnNpZ25lZCBzaG9ydCAqIGNvbnN0LHVuc2lnbmVkIHNob3J0ICogY29uc3QsbG9uZyxzdHJ1Y3QgSVdiZW1Db250ZXh0ICosc3RydWN0IElXYmVtT2JqZWN0U2luayAqKQ0KKz9FeGVjUXVlcnlBc3luY0BDV2JlbVByb3ZpZGVyR2x1ZUBAVUFHSlFBRzBKUEFVSVdiZW1Db250ZXh0QEBQQVVJV2JlbU9iamVjdFNpbmtAQEBaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgUHJvdmlkZXI6OkV4ZWN1dGVRdWVyeShjbGFzcyBNZXRob2RDb250ZXh0ICosY2xhc3MgQ0ZyYW1ld29ya1F1ZXJ5ICYsbG9uZykNCis/RXhlY3V0ZVF1ZXJ5QFByb3ZpZGVyQEBBQUVKUEFWTWV0aG9kQ29udGV4dEBAQUFWQ0ZyYW1ld29ya1F1ZXJ5QEBKQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpGaWxsSW5zdGFuY2UoY2xhc3MgQ0luc3RhbmNlICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/RmlsbEluc3RhbmNlQENXYmVtUHJvdmlkZXJHbHVlQEBTR0pQQVZDSW5zdGFuY2VAQFBCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6RmlsbEluc3RhbmNlKGNsYXNzIE1ldGhvZENvbnRleHQgKixjbGFzcyBDSW5zdGFuY2UgKikNCis/RmlsbEluc3RhbmNlQENXYmVtUHJvdmlkZXJHbHVlQEBTR0pQQVZNZXRob2RDb250ZXh0QEBQQVZDSW5zdGFuY2VAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENIU3RyaW5nOjpGaW5kKHVuc2lnbmVkIHNob3J0KWNvbnN0IA0KKz9GaW5kQENIU3RyaW5nQEBRQkVIR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENIU3RyaW5nOjpGaW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP0ZpbmRAQ0hTdHJpbmdAQFFCRUhQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSFN0cmluZzo6RmluZE9uZU9mKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP0ZpbmRPbmVPZkBDSFN0cmluZ0BAUUJFSFBCR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFByb3ZpZGVyOjpGbHVzaCh2b2lkKQ0KKz9GbHVzaEBQcm92aWRlckBATUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkZsdXNoQWxsKHZvaWQpDQorP0ZsdXNoQWxsQENXYmVtUHJvdmlkZXJHbHVlQEBBQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENIU3RyaW5nOjpGb3JtYXQodW5zaWduZWQgaW50LC4uLikNCis/Rm9ybWF0QENIU3RyaW5nQEBRQUFYSVpaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSFN0cmluZzo6Rm9ybWF0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosLi4uKQ0KKz9Gb3JtYXRAQ0hTdHJpbmdAQFFBQVhQQkdaWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0hTdHJpbmc6OkZvcm1hdE1lc3NhZ2VXKHVuc2lnbmVkIGludCwuLi4pDQorP0Zvcm1hdE1lc3NhZ2VXQENIU3RyaW5nQEBRQUFYSVpaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDSFN0cmluZzo6Rm9ybWF0TWVzc2FnZVcodW5zaWduZWQgc2hvcnQgY29uc3QgKiwuLi4pDQorP0Zvcm1hdE1lc3NhZ2VXQENIU3RyaW5nQEBRQUFYUEJHWloNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENIU3RyaW5nOjpGb3JtYXRWKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2hhciAqKQ0KKz9Gb3JtYXRWQENIU3RyaW5nQEBRQUVYUEJHUEFEQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpGcmFtZXdvcmtMb2dpbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIFByb3ZpZGVyICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/RnJhbWV3b3JrTG9naW5AQ1diZW1Qcm92aWRlckdsdWVAQFNHWFBCR1BBVlByb3ZpZGVyQEAwQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkZyYW1ld29ya0xvZ2luRExMKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0ZyYW1ld29ya0xvZ2luRExMQENXYmVtUHJvdmlkZXJHbHVlQEBTR0hQQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6RnJhbWV3b3JrTG9naW5ETEwodW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nICopDQorP0ZyYW1ld29ya0xvZ2luRExMQENXYmVtUHJvdmlkZXJHbHVlQEBTR0hQQkdQQUpAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkZyYW1ld29ya0xvZ29mZih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0ZyYW1ld29ya0xvZ29mZkBDV2JlbVByb3ZpZGVyR2x1ZUBAU0dYUEJHMEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpGcmFtZXdvcmtMb2dvZmZETEwodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/RnJhbWV3b3JrTG9nb2ZmRExMQENXYmVtUHJvdmlkZXJHbHVlQEBTR0hQQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6RnJhbWV3b3JrTG9nb2ZmRExMKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosbG9uZyAqKQ0KKz9GcmFtZXdvcmtMb2dvZmZETExAQ1diZW1Qcm92aWRlckdsdWVAQFNHSFBCR1BBSkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDT2JqZWN0UGF0aFBhcnNlcjo6RnJlZShzdHJ1Y3QgUGFyc2VkT2JqZWN0UGF0aCAqKQ0KKz9GcmVlQENPYmplY3RQYXRoUGFyc2VyQEBRQUVYUEFVUGFyc2VkT2JqZWN0UGF0aEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENIUHRyQXJyYXk6OkZyZWVFeHRyYSh2b2lkKQ0KKz9GcmVlRXh0cmFAQ0hQdHJBcnJheUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSFN0cmluZzo6RnJlZUV4dHJhKHZvaWQpDQorP0ZyZWVFeHRyYUBDSFN0cmluZ0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSFN0cmluZ0FycmF5OjpGcmVlRXh0cmEodm9pZCkNCis/RnJlZUV4dHJhQENIU3RyaW5nQXJyYXlAQFFBRVhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUmVnaXN0cnlTZWFyY2g6OkZyZWVTZWFyY2hMaXN0KGludCxjbGFzcyBDSFB0ckFycmF5ICYpDQorP0ZyZWVTZWFyY2hMaXN0QENSZWdpc3RyeVNlYXJjaEBAUUFFSEhBQVZDSFB0ckFycmF5QEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkdldEFsbERlcml2ZWRJbnN0YW5jZXModW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBUUmVmUG9pbnRlckNvbGxlY3Rpb248Y2xhc3MgQ0luc3RhbmNlPiAqLGNsYXNzIE1ldGhvZENvbnRleHQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9HZXRBbGxEZXJpdmVkSW5zdGFuY2VzQENXYmVtUHJvdmlkZXJHbHVlQEBTR0pQQkdQQVY/JFRSZWZQb2ludGVyQ29sbGVjdGlvbkBWQ0luc3RhbmNlQEBAQFBBVk1ldGhvZENvbnRleHRAQDBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkdldEFsbERlcml2ZWRJbnN0YW5jZXNBc3luY2godW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBQcm92aWRlciAqLGxvbmcgKF9fc3RkY2FsbCopKGNsYXNzIFByb3ZpZGVyICosY2xhc3MgQ0luc3RhbmNlICosY2xhc3MgTWV0aG9kQ29udGV4dCAqLHZvaWQgKiksdW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBNZXRob2RDb250ZXh0ICosdm9pZCAqKQ0KKz9HZXRBbGxEZXJpdmVkSW5zdGFuY2VzQXN5bmNoQENXYmVtUHJvdmlkZXJHbHVlQEBTR0pQQkdQQVZQcm92aWRlckBAUDZHSjFQQVZDSW5zdGFuY2VAQFBBVk1ldGhvZENvbnRleHRAQFBBWEBaMDM0QFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpHZXRBbGxJbnN0YW5jZXModW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBUUmVmUG9pbnRlckNvbGxlY3Rpb248Y2xhc3MgQ0luc3RhbmNlPiAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgTWV0aG9kQ29udGV4dCAqKQ0KKz9HZXRBbGxJbnN0YW5jZXNAQ1diZW1Qcm92aWRlckdsdWVAQFNHSlBCR1BBVj8kVFJlZlBvaW50ZXJDb2xsZWN0aW9uQFZDSW5zdGFuY2VAQEBAMFBBVk1ldGhvZENvbnRleHRAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6R2V0QWxsSW5zdGFuY2VzQXN5bmNoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgUHJvdmlkZXIgKixsb25nIChfX3N0ZGNhbGwqKShjbGFzcyBQcm92aWRlciAqLGNsYXNzIENJbnN0YW5jZSAqLGNsYXNzIE1ldGhvZENvbnRleHQgKix2b2lkICopLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgTWV0aG9kQ29udGV4dCAqLHZvaWQgKikNCis/R2V0QWxsSW5zdGFuY2VzQXN5bmNoQENXYmVtUHJvdmlkZXJHbHVlQEBTR0pQQkdQQVZQcm92aWRlckBAUDZHSjFQQVZDSW5zdGFuY2VAQFBBVk1ldGhvZENvbnRleHRAQFBBWEBaMDM0QFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0hTdHJpbmc6OkdldEFsbG9jTGVuZ3RoKHZvaWQpY29uc3QgDQorP0dldEFsbG9jTGVuZ3RoQENIU3RyaW5nQEBRQkVIWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgQ0hQdHJBcnJheTo6R2V0QXQoaW50KWNvbnN0IA0KKz9HZXRBdEBDSFB0ckFycmF5QEBRQkVQQVhIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDSFN0cmluZzo6R2V0QXQoaW50KWNvbnN0IA0KKz9HZXRBdEBDSFN0cmluZ0BAUUJFR0hAWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyAgX190aGlzY2FsbCBDSFN0cmluZ0FycmF5OjpHZXRBdChpbnQpY29uc3QgDQorP0dldEF0QENIU3RyaW5nQXJyYXlAQFFCRT9BVkNIU3RyaW5nQEBIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIFdCRU1UaW1lOjpHZXRCU1RSKHZvaWQpY29uc3QgDQorP0dldEJTVFJAV0JFTVRpbWVAQFFCRVBBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBXQkVNVGltZVNwYW46OkdldEJTVFIodm9pZCljb25zdCANCis/R2V0QlNUUkBXQkVNVGltZVNwYW5AQFFCRVBBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBDSFN0cmluZzo6R2V0QnVmZmVyKGludCkNCis/R2V0QnVmZmVyQENIU3RyaW5nQEBRQUVQQUdIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIENIU3RyaW5nOjpHZXRCdWZmZXJTZXRMZW5ndGgoaW50KQ0KKz9HZXRCdWZmZXJTZXRMZW5ndGhAQ0hTdHJpbmdAQFFBRVBBR0hAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpHZXRCeXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgY2hhciAmKWNvbnN0IA0KKz9HZXRCeXRlQENJbnN0YW5jZUBAUUJFX05QQkdBQUVAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpHZXRDSFN0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENIU3RyaW5nICYpY29uc3QgDQorP0dldENIU3RyaW5nQENJbnN0YW5jZUBAUUJFX05QQkdBQVZDSFN0cmluZ0BAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpHZXRDU0RWZXJzaW9uKHZvaWQpDQorP0dldENTRFZlcnNpb25AQ1diZW1Qcm92aWRlckdsdWVAQFNHUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIENSZWdpc3RyeTo6R2V0Q2xhc3NOYW1lVyh2b2lkKQ0KKz9HZXRDbGFzc05hbWVXQENSZWdpc3RyeUBAUUFFUEFHWFoNCis7IHB1YmxpYzogc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3RoaXNjYWxsIENJbnN0YW5jZTo6R2V0Q2xhc3NPYmplY3RJbnRlcmZhY2Uodm9pZCkNCis/R2V0Q2xhc3NPYmplY3RJbnRlcmZhY2VAQ0luc3RhbmNlQEBRQUVQQVVJV2JlbUNsYXNzT2JqZWN0QEBYWg0KKzsgcHJpdmF0ZTogc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiBfX3RoaXNjYWxsIFByb3ZpZGVyOjpHZXRDbGFzc09iamVjdEludGVyZmFjZShjbGFzcyBNZXRob2RDb250ZXh0ICopDQorP0dldENsYXNzT2JqZWN0SW50ZXJmYWNlQFByb3ZpZGVyQEBBQUVQQVVJV2JlbUNsYXNzT2JqZWN0QEBQQVZNZXRob2RDb250ZXh0QEBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHZvaWQgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpHZXRDb21wdXRlck5hbWVXKGNsYXNzIENIU3RyaW5nICYpDQorP0dldENvbXB1dGVyTmFtZVdAQ1diZW1Qcm92aWRlckdsdWVAQENHWEFBVkNIU3RyaW5nQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5OjpHZXRDdXJyZW50QmluYXJ5S2V5VmFsdWUoc3RydWN0IEhLRVlfXyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcgKikNCis/R2V0Q3VycmVudEJpbmFyeUtleVZhbHVlQENSZWdpc3RyeUBAUUFFS1BBVUhLRVlfX0BAUEJHUEFFUEFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENSZWdpc3RyeTo6R2V0Q3VycmVudEJpbmFyeUtleVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ0hTdHJpbmcgJikNCis/R2V0Q3VycmVudEJpbmFyeUtleVZhbHVlQENSZWdpc3RyeUBAUUFFS1BCR0FBVkNIU3RyaW5nQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5OjpHZXRDdXJyZW50QmluYXJ5S2V5VmFsdWUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRDdXJyZW50QmluYXJ5S2V5VmFsdWVAQ1JlZ2lzdHJ5QEBRQUVLUEJHUEFFUEFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENSZWdpc3RyeTo6R2V0Q3VycmVudEtleVZhbHVlKHN0cnVjdCBIS0VZX18gKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcgJikNCis/R2V0Q3VycmVudEtleVZhbHVlQENSZWdpc3RyeUBAUUFFS1BBVUhLRVlfX0BAUEJHQUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENSZWdpc3RyeTo6R2V0Q3VycmVudEtleVZhbHVlKHN0cnVjdCBIS0VZX18gKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENIU3RyaW5nICYpDQorP0dldEN1cnJlbnRLZXlWYWx1ZUBDUmVnaXN0cnlAQFFBRUtQQVVIS0VZX19AQFBCR0FBVkNIU3RyaW5nQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5OjpHZXRDdXJyZW50S2V5VmFsdWUoc3RydWN0IEhLRVlfXyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ0hTdHJpbmdBcnJheSAmKQ0KKz9HZXRDdXJyZW50S2V5VmFsdWVAQ1JlZ2lzdHJ5QEBRQUVLUEFVSEtFWV9fQEBQQkdBQVZDSFN0cmluZ0FycmF5QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5OjpHZXRDdXJyZW50S2V5VmFsdWUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nICYpDQorP0dldEN1cnJlbnRLZXlWYWx1ZUBDUmVnaXN0cnlAQFFBRUtQQkdBQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5OjpHZXRDdXJyZW50S2V5VmFsdWUodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDSFN0cmluZyAmKQ0KKz9HZXRDdXJyZW50S2V5VmFsdWVAQ1JlZ2lzdHJ5QEBRQUVLUEJHQUFWQ0hTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDUmVnaXN0cnk6OkdldEN1cnJlbnRLZXlWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENIU3RyaW5nQXJyYXkgJikNCis/R2V0Q3VycmVudEtleVZhbHVlQENSZWdpc3RyeUBAUUFFS1BCR0FBVkNIU3RyaW5nQXJyYXlAQEBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5OjpHZXRDdXJyZW50UmF3S2V5VmFsdWUoc3RydWN0IEhLRVlfXyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdm9pZCAqLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICopDQorP0dldEN1cnJlbnRSYXdLZXlWYWx1ZUBDUmVnaXN0cnlAQEFBRUtQQVVIS0VZX19AQFBCR1BBWFBBSzNAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENSZWdpc3RyeTo6R2V0Q3VycmVudFJhd1N1YktleVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdm9pZCAqLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICopDQorP0dldEN1cnJlbnRSYXdTdWJLZXlWYWx1ZUBDUmVnaXN0cnlAQEFBRUtQQkdQQVhQQUsyQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENSZWdpc3RyeTo6R2V0Q3VycmVudFN1YktleUNvdW50KHZvaWQpDQorP0dldEN1cnJlbnRTdWJLZXlDb3VudEBDUmVnaXN0cnlAQFFBRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5OjpHZXRDdXJyZW50U3ViS2V5TmFtZShjbGFzcyBDSFN0cmluZyAmKQ0KKz9HZXRDdXJyZW50U3ViS2V5TmFtZUBDUmVnaXN0cnlAQFFBRUtBQVZDSFN0cmluZ0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENSZWdpc3RyeTo6R2V0Q3VycmVudFN1YktleVBhdGgoY2xhc3MgQ0hTdHJpbmcgJikNCis/R2V0Q3VycmVudFN1YktleVBhdGhAQ1JlZ2lzdHJ5QEBRQUVLQUFWQ0hTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDUmVnaXN0cnk6OkdldEN1cnJlbnRTdWJLZXlWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcgJikNCis/R2V0Q3VycmVudFN1YktleVZhbHVlQENSZWdpc3RyeUBAUUFFS1BCR0FBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDUmVnaXN0cnk6OkdldEN1cnJlbnRTdWJLZXlWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENIU3RyaW5nICYpDQorP0dldEN1cnJlbnRTdWJLZXlWYWx1ZUBDUmVnaXN0cnlAQFFBRUtQQkdBQVZDSFN0cmluZ0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENSZWdpc3RyeTo6R2V0Q3VycmVudFN1YktleVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdm9pZCAqLHVuc2lnbmVkIGxvbmcgKikNCis/R2V0Q3VycmVudFN1YktleVZhbHVlQENSZWdpc3RyeUBAUUFFS1BCR1BBWFBBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBXQkVNVGltZTo6R2V0RE1URihpbnQpY29uc3QgDQorP0dldERNVEZAV0JFTVRpbWVAQFFCRVBBR0hAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgV0JFTVRpbWU6OkdldERNVEZOb25OdGZzKHZvaWQpY29uc3QgDQorP0dldERNVEZOb25OdGZzQFdCRU1UaW1lQEBRQkVQQUdYWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpHZXRET1VCTEUodW5zaWduZWQgc2hvcnQgY29uc3QgKixkb3VibGUgJiljb25zdCANCis/R2V0RE9VQkxFQENJbnN0YW5jZUBAUUJFX05QQkdBQU5AWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpHZXREV09SRCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcgJiljb25zdCANCis/R2V0RFdPUkRAQ0luc3RhbmNlQEBRQkVfTlBCR0FBS0BaDQorOyBwdWJsaWM6IHZvaWQgKiAqIF9fdGhpc2NhbGwgQ0hQdHJBcnJheTo6R2V0RGF0YSh2b2lkKQ0KKz9HZXREYXRhQENIUHRyQXJyYXlAQFFBRVBBUEFYWFoNCis7IHB1YmxpYzogdm9pZCBjb25zdCAqICogX190aGlzY2FsbCBDSFB0ckFycmF5OjpHZXREYXRhKHZvaWQpY29uc3QgDQorP0dldERhdGFAQ0hQdHJBcnJheUBAUUJFUEFQQlhYWg0KKzsgcHJvdGVjdGVkOiBzdHJ1Y3QgQ0hTdHJpbmdEYXRhICogX190aGlzY2FsbCBDSFN0cmluZzo6R2V0RGF0YSh2b2lkKWNvbnN0IA0KKz9HZXREYXRhQENIU3RyaW5nQEBJQkVQQVVDSFN0cmluZ0RhdGFAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENIU3RyaW5nICogX190aGlzY2FsbCBDSFN0cmluZ0FycmF5OjpHZXREYXRhKHZvaWQpDQorP0dldERhdGFAQ0hTdHJpbmdBcnJheUBAUUFFUEFWQ0hTdHJpbmdAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENIU3RyaW5nIGNvbnN0ICogX190aGlzY2FsbCBDSFN0cmluZ0FycmF5OjpHZXREYXRhKHZvaWQpY29uc3QgDQorP0dldERhdGFAQ0hTdHJpbmdBcnJheUBAUUJFUEJWQ0hTdHJpbmdAQFhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDSW5zdGFuY2U6OkdldERhdGVUaW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgV0JFTVRpbWUgJiljb25zdCANCis/R2V0RGF0ZVRpbWVAQ0luc3RhbmNlQEBRQkVfTlBCR0FBVldCRU1UaW1lQEBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpHZXRFbWJlZGRlZE9iamVjdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENJbnN0YW5jZSAqICosY2xhc3MgTWV0aG9kQ29udGV4dCAqKWNvbnN0IA0KKz9HZXRFbWJlZGRlZE9iamVjdEBDSW5zdGFuY2VAQFFCRV9OUEJHUEFQQVYxQFBBVk1ldGhvZENvbnRleHRAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6R2V0RW1wdHlJbnN0YW5jZShjbGFzcyBNZXRob2RDb250ZXh0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDSW5zdGFuY2UgKiAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0dldEVtcHR5SW5zdGFuY2VAQ1diZW1Qcm92aWRlckdsdWVAQFNHSlBBVk1ldGhvZENvbnRleHRAQFBCR1BBUEFWQ0luc3RhbmNlQEAxQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpHZXRFbXB0eUluc3RhbmNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ0luc3RhbmNlICogKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9HZXRFbXB0eUluc3RhbmNlQENXYmVtUHJvdmlkZXJHbHVlQEBTR0pQQkdQQVBBVkNJbnN0YW5jZUBAMEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFdCRU1UaW1lOjpHZXRGSUxFVElNRShzdHJ1Y3QgX0ZJTEVUSU1FICopY29uc3QgDQorP0dldEZJTEVUSU1FQFdCRU1UaW1lQEBRQkVIUEFVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBXQkVNVGltZVNwYW46OkdldEZJTEVUSU1FKHN0cnVjdCBfRklMRVRJTUUgKiljb25zdCANCis/R2V0RklMRVRJTUVAV0JFTVRpbWVTcGFuQEBRQkVIUEFVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCBJV2JlbUNvbnRleHQgKiBfX3RoaXNjYWxsIE1ldGhvZENvbnRleHQ6OkdldElXQkVNQ29udGV4dCh2b2lkKQ0KKz9HZXRJV0JFTUNvbnRleHRATWV0aG9kQ29udGV4dEBAVUFFUEFVSVdiZW1Db250ZXh0QEBYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkdldEluc3RhbmNlQnlQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ0luc3RhbmNlICogKixjbGFzcyBNZXRob2RDb250ZXh0ICopDQorP0dldEluc3RhbmNlQnlQYXRoQENXYmVtUHJvdmlkZXJHbHVlQEBTR0pQQkdQQVBBVkNJbnN0YW5jZUBAUEFWTWV0aG9kQ29udGV4dEBAQFoNCis7IHByaXZhdGU6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6R2V0SW5zdGFuY2VGcm9tQ0lNT00odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIE1ldGhvZENvbnRleHQgKixjbGFzcyBDSW5zdGFuY2UgKiAqKQ0KKz9HZXRJbnN0YW5jZUZyb21DSU1PTUBDV2JlbVByb3ZpZGVyR2x1ZUBAQ0dKUEJHMFBBVk1ldGhvZENvbnRleHRAQFBBUEFWQ0luc3RhbmNlQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkdldEluc3RhbmNlS2V5c0J5UGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENJbnN0YW5jZSAqICosY2xhc3MgTWV0aG9kQ29udGV4dCAqKQ0KKz9HZXRJbnN0YW5jZUtleXNCeVBhdGhAQ1diZW1Qcm92aWRlckdsdWVAQFNHSlBCR1BBUEFWQ0luc3RhbmNlQEBQQVZNZXRob2RDb250ZXh0QEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkdldEluc3RhbmNlUHJvcGVydGllc0J5UGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENJbnN0YW5jZSAqICosY2xhc3MgTWV0aG9kQ29udGV4dCAqLGNsYXNzIENIU3RyaW5nQXJyYXkgJikNCis/R2V0SW5zdGFuY2VQcm9wZXJ0aWVzQnlQYXRoQENXYmVtUHJvdmlkZXJHbHVlQEBTR0pQQkdQQVBBVkNJbnN0YW5jZUBAUEFWTWV0aG9kQ29udGV4dEBAQUFWQ0hTdHJpbmdBcnJheUBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpHZXRJbnN0YW5jZXNCeVF1ZXJ5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgVFJlZlBvaW50ZXJDb2xsZWN0aW9uPGNsYXNzIENJbnN0YW5jZT4gKixjbGFzcyBNZXRob2RDb250ZXh0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/R2V0SW5zdGFuY2VzQnlRdWVyeUBDV2JlbVByb3ZpZGVyR2x1ZUBAU0dKUEJHUEFWPyRUUmVmUG9pbnRlckNvbGxlY3Rpb25AVkNJbnN0YW5jZUBAQEBQQVZNZXRob2RDb250ZXh0QEAwQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpHZXRJbnN0YW5jZXNCeVF1ZXJ5QXN5bmNoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgUHJvdmlkZXIgKixsb25nIChfX3N0ZGNhbGwqKShjbGFzcyBQcm92aWRlciAqLGNsYXNzIENJbnN0YW5jZSAqLGNsYXNzIE1ldGhvZENvbnRleHQgKix2b2lkICopLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgTWV0aG9kQ29udGV4dCAqLHZvaWQgKikNCis/R2V0SW5zdGFuY2VzQnlRdWVyeUFzeW5jaEBDV2JlbVByb3ZpZGVyR2x1ZUBAU0dKUEJHUEFWUHJvdmlkZXJAQFA2R0oxUEFWQ0luc3RhbmNlQEBQQVZNZXRob2RDb250ZXh0QEBQQVhAWjAzNEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBQYXJzZWRPYmplY3RQYXRoOjpHZXRLZXlTdHJpbmcodm9pZCkNCis/R2V0S2V5U3RyaW5nQFBhcnNlZE9iamVjdFBhdGhAQFFBRVBBR1haDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENIU3RyaW5nOjpHZXRMZW5ndGgodm9pZCljb25zdCANCis/R2V0TGVuZ3RoQENIU3RyaW5nQEBRQkVIWFoNCis7IHByb3RlY3RlZDogY2xhc3MgQ0hTdHJpbmcgY29uc3QgJiBfX3RoaXNjYWxsIFByb3ZpZGVyOjpHZXRMb2NhbENvbXB1dGVyTmFtZSh2b2lkKQ0KKz9HZXRMb2NhbENvbXB1dGVyTmFtZUBQcm92aWRlckBASUFFQUJWQ0hTdHJpbmdAQFhaDQorOyBwcm90ZWN0ZWQ6IGJvb2wgX190aGlzY2FsbCBQcm92aWRlcjo6R2V0TG9jYWxJbnN0YW5jZVBhdGgoY2xhc3MgQ0luc3RhbmNlIGNvbnN0ICosY2xhc3MgQ0hTdHJpbmcgJikNCis/R2V0TG9jYWxJbnN0YW5jZVBhdGhAUHJvdmlkZXJAQElBRV9OUEJWQ0luc3RhbmNlQEBBQVZDSFN0cmluZ0BAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIFdCRU1UaW1lOjpHZXRMb2NhbE9mZnNldEZvckRhdGUobG9uZyBjb25zdCAmKQ0KKz9HZXRMb2NhbE9mZnNldEZvckRhdGVAV0JFTVRpbWVAQFNHSkFCSkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBXQkVNVGltZTo6R2V0TG9jYWxPZmZzZXRGb3JEYXRlKHN0cnVjdCBfRklMRVRJTUUgY29uc3QgKikNCis/R2V0TG9jYWxPZmZzZXRGb3JEYXRlQFdCRU1UaW1lQEBTR0pQQlVfRklMRVRJTUVAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBXQkVNVGltZTo6R2V0TG9jYWxPZmZzZXRGb3JEYXRlKHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAqKQ0KKz9HZXRMb2NhbE9mZnNldEZvckRhdGVAV0JFTVRpbWVAQFNHSlBCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgV0JFTVRpbWU6OkdldExvY2FsT2Zmc2V0Rm9yRGF0ZShzdHJ1Y3QgdG0gY29uc3QgKikNCis/R2V0TG9jYWxPZmZzZXRGb3JEYXRlQFdCRU1UaW1lQEBTR0pQQlV0bUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENSZWdpc3RyeTo6R2V0TG9uZ2VzdENsYXNzU3RyaW5nU2l6ZSh2b2lkKQ0KKz9HZXRMb25nZXN0Q2xhc3NTdHJpbmdTaXplQENSZWdpc3RyeUBAUUFFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDUmVnaXN0cnk6OkdldExvbmdlc3RTdWJLZXlTaXplKHZvaWQpDQorP0dldExvbmdlc3RTdWJLZXlTaXplQENSZWdpc3RyeUBAUUFFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDUmVnaXN0cnk6OkdldExvbmdlc3RWYWx1ZURhdGEodm9pZCkNCis/R2V0TG9uZ2VzdFZhbHVlRGF0YUBDUmVnaXN0cnlAQFFBRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5OjpHZXRMb25nZXN0VmFsdWVOYW1lKHZvaWQpDQorP0dldExvbmdlc3RWYWx1ZU5hbWVAQ1JlZ2lzdHJ5QEBRQUVLWFoNCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgKiBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkdldE1hcENvdW50UHRyKGNsYXNzIENXYmVtR2x1ZUZhY3RvcnkgY29uc3QgKikNCis/R2V0TWFwQ291bnRQdHJAQ1diZW1Qcm92aWRlckdsdWVAQEtHUEFKUEJWQ1diZW1HbHVlRmFjdG9yeUBAQFoNCis7IHB1YmxpYzogY2xhc3MgTWV0aG9kQ29udGV4dCAqIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpHZXRNZXRob2RDb250ZXh0KHZvaWQpY29uc3QgDQorP0dldE1ldGhvZENvbnRleHRAQ0luc3RhbmNlQEBRQkVQQVZNZXRob2RDb250ZXh0QEBYWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fdGhpc2NhbGwgQ0ZyYW1ld29ya1F1ZXJ5OjpHZXROYW1lc3BhY2Uodm9pZCkNCis/R2V0TmFtZXNwYWNlQENGcmFtZXdvcmtRdWVyeUBASUFFQUJWQ0hTdHJpbmdAQFhaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIENIU3RyaW5nIGNvbnN0ICYgX190aGlzY2FsbCBQcm92aWRlcjo6R2V0TmFtZXNwYWNlKHZvaWQpDQorP0dldE5hbWVzcGFjZUBQcm92aWRlckBASUFFQUJWQ0hTdHJpbmdAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgSVdiZW1TZXJ2aWNlcyAqIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6R2V0TmFtZXNwYWNlQ29ubmVjdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9HZXROYW1lc3BhY2VDb25uZWN0aW9uQENXYmVtUHJvdmlkZXJHbHVlQEBTR1BBVUlXYmVtU2VydmljZXNAQFBCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgSVdiZW1TZXJ2aWNlcyAqIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6R2V0TmFtZXNwYWNlQ29ubmVjdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIE1ldGhvZENvbnRleHQgKikNCis/R2V0TmFtZXNwYWNlQ29ubmVjdGlvbkBDV2JlbVByb3ZpZGVyR2x1ZUBAU0dQQVVJV2JlbVNlcnZpY2VzQEBQQkdQQVZNZXRob2RDb250ZXh0QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgUGFyc2VkT2JqZWN0UGF0aDo6R2V0TmFtZXNwYWNlUGFydCh2b2lkKQ0KKz9HZXROYW1lc3BhY2VQYXJ0QFBhcnNlZE9iamVjdFBhdGhAQFFBRVBBR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6R2V0T1NNYWpvclZlcnNpb24odm9pZCkNCis/R2V0T1NNYWpvclZlcnNpb25AQ1diZW1Qcm92aWRlckdsdWVAQFNHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkdldE9iamVjdCh1bnNpZ25lZCBzaG9ydCAqIGNvbnN0LGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogKixzdHJ1Y3QgSVdiZW1DYWxsUmVzdWx0ICogKikNCis/R2V0T2JqZWN0QENXYmVtUHJvdmlkZXJHbHVlQEBVQUdKUUFHSlBBVUlXYmVtQ29udGV4dEBAUEFQQVVJV2JlbUNsYXNzT2JqZWN0QEBQQVBBVUlXYmVtQ2FsbFJlc3VsdEBAQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBQcm92aWRlcjo6R2V0T2JqZWN0KHN0cnVjdCBQYXJzZWRPYmplY3RQYXRoICosY2xhc3MgTWV0aG9kQ29udGV4dCAqLGxvbmcpDQorP0dldE9iamVjdEBQcm92aWRlckBAQUFFSlBBVVBhcnNlZE9iamVjdFBhdGhAQFBBVk1ldGhvZENvbnRleHRAQEpAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBQcm92aWRlcjo6R2V0T2JqZWN0KGNsYXNzIENJbnN0YW5jZSAqLGxvbmcpDQorP0dldE9iamVjdEBQcm92aWRlckBATUFFSlBBVkNJbnN0YW5jZUBASkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFByb3ZpZGVyOjpHZXRPYmplY3QoY2xhc3MgQ0luc3RhbmNlICosbG9uZyxjbGFzcyBDRnJhbWV3b3JrUXVlcnkgJikNCis/R2V0T2JqZWN0QFByb3ZpZGVyQEBNQUVKUEFWQ0luc3RhbmNlQEBKQUFWQ0ZyYW1ld29ya1F1ZXJ5QEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpHZXRPYmplY3RBc3luYyh1bnNpZ25lZCBzaG9ydCAqIGNvbnN0LGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqLHN0cnVjdCBJV2JlbU9iamVjdFNpbmsgKikNCis/R2V0T2JqZWN0QXN5bmNAQ1diZW1Qcm92aWRlckdsdWVAQFVBR0pRQUdKUEFVSVdiZW1Db250ZXh0QEBQQVVJV2JlbU9iamVjdFNpbmtAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBQYXJzZWRPYmplY3RQYXRoOjpHZXRQYXJlbnROYW1lc3BhY2VQYXJ0KHZvaWQpDQorP0dldFBhcmVudE5hbWVzcGFjZVBhcnRAUGFyc2VkT2JqZWN0UGF0aEBAUUFFUEFHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpHZXRQbGF0Zm9ybSh2b2lkKQ0KKz9HZXRQbGF0Zm9ybUBDV2JlbVByb3ZpZGVyR2x1ZUBAU0dLWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGcmFtZXdvcmtRdWVyeUV4OjpHZXRQcm9wZXJ0eUJpdE1hc2soY2xhc3MgQ0hQdHJBcnJheSBjb25zdCAmLHZvaWQgKikNCis/R2V0UHJvcGVydHlCaXRNYXNrQENGcmFtZXdvcmtRdWVyeUV4QEBRQUVYQUJWQ0hQdHJBcnJheUBAUEFYQFoNCis7IHByaXZhdGU6IGNsYXNzIENXYmVtUHJvdmlkZXJHbHVlICogX190aGlzY2FsbCBNZXRob2RDb250ZXh0OjpHZXRQcm92aWRlckdsdWUodm9pZCkNCis/R2V0UHJvdmlkZXJHbHVlQE1ldGhvZENvbnRleHRAQEFBRVBBVkNXYmVtUHJvdmlkZXJHbHVlQEBYWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fdGhpc2NhbGwgUHJvdmlkZXI6OkdldFByb3ZpZGVyTmFtZSh2b2lkKQ0KKz9HZXRQcm92aWRlck5hbWVAUHJvdmlkZXJAQElBRUFCVkNIU3RyaW5nQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyBjb25zdCAmIF9fdGhpc2NhbGwgQ0ZyYW1ld29ya1F1ZXJ5OjpHZXRRdWVyeSh2b2lkKQ0KKz9HZXRRdWVyeUBDRnJhbWV3b3JrUXVlcnlAQFFBRUFCVkNIU3RyaW5nQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ0ZyYW1ld29ya1F1ZXJ5OjpHZXRRdWVyeUNsYXNzTmFtZSh2b2lkKQ0KKz9HZXRRdWVyeUNsYXNzTmFtZUBDRnJhbWV3b3JrUXVlcnlAQFFBRVBBR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAqIF9fc3RkY2FsbCBDT2JqZWN0UGF0aFBhcnNlcjo6R2V0UmVsYXRpdmVQYXRoKHVuc2lnbmVkIHNob3J0ICopDQorP0dldFJlbGF0aXZlUGF0aEBDT2JqZWN0UGF0aFBhcnNlckBAU0dQQUdQQUdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0ZyYW1ld29ya1F1ZXJ5OjpHZXRSZXF1aXJlZFByb3BlcnRpZXMoY2xhc3MgQ0hTdHJpbmdBcnJheSAmKQ0KKz9HZXRSZXF1aXJlZFByb3BlcnRpZXNAQ0ZyYW1ld29ya1F1ZXJ5QEBRQUVYQUFWQ0hTdHJpbmdBcnJheUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV0JFTVRpbWU6OkdldFNZU1RFTVRJTUUoc3RydWN0IF9TWVNURU1USU1FICopY29uc3QgDQorP0dldFNZU1RFTVRJTUVAV0JFTVRpbWVAQFFCRUhQQVVfU1lTVEVNVElNRUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0hQdHJBcnJheTo6R2V0U2l6ZSh2b2lkKWNvbnN0IA0KKz9HZXRTaXplQENIUHRyQXJyYXlAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSFN0cmluZ0FycmF5OjpHZXRTaXplKHZvaWQpY29uc3QgDQorP0dldFNpemVAQ0hTdHJpbmdBcnJheUBAUUJFSFhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDSW5zdGFuY2U6OkdldFN0YXR1cyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGJvb2wgJix1bnNpZ25lZCBzaG9ydCAmKWNvbnN0IA0KKz9HZXRTdGF0dXNAQ0luc3RhbmNlQEBRQkVfTlBCR0FBX05BQUdAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpHZXRTdGF0dXNPYmplY3QoY2xhc3MgTWV0aG9kQ29udGV4dCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0dldFN0YXR1c09iamVjdEBDV2JlbVByb3ZpZGVyR2x1ZUBAQ0dQQVVJV2JlbUNsYXNzT2JqZWN0QEBQQVZNZXRob2RDb250ZXh0QEBQQkdAWg0KKzsgcHVibGljOiBzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqIF9fdGhpc2NhbGwgTWV0aG9kQ29udGV4dDo6R2V0U3RhdHVzT2JqZWN0KHZvaWQpDQorP0dldFN0YXR1c09iamVjdEBNZXRob2RDb250ZXh0QEBRQUVQQVVJV2JlbUNsYXNzT2JqZWN0QEBYWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpHZXRTdHJpbmdBcnJheSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHN0cnVjdCB0YWdTQUZFQVJSQVkgKiAmKWNvbnN0IA0KKz9HZXRTdHJpbmdBcnJheUBDSW5zdGFuY2VAQFFCRV9OUEJHQUFQQVV0YWdTQUZFQVJSQVlAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFdCRU1UaW1lOjpHZXRTdHJ1Y3R0bShzdHJ1Y3QgdG0gKiljb25zdCANCis/R2V0U3RydWN0dG1AV0JFTVRpbWVAQFFCRUhQQVV0bUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX3RoaXNjYWxsIFdCRU1UaW1lOjpHZXRUaW1lKHZvaWQpY29uc3QgDQorP0dldFRpbWVAV0JFTVRpbWVAQFFCRV9LWFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX3RoaXNjYWxsIFdCRU1UaW1lU3Bhbjo6R2V0VGltZSh2b2lkKWNvbnN0IA0KKz9HZXRUaW1lQFdCRU1UaW1lU3BhbkBAUUJFX0tYWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpHZXRUaW1lU3Bhbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIFdCRU1UaW1lU3BhbiAmKWNvbnN0IA0KKz9HZXRUaW1lU3BhbkBDSW5zdGFuY2VAQFFCRV9OUEJHQUFWV0JFTVRpbWVTcGFuQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSFB0ckFycmF5OjpHZXRVcHBlckJvdW5kKHZvaWQpY29uc3QgDQorP0dldFVwcGVyQm91bmRAQ0hQdHJBcnJheUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENIU3RyaW5nQXJyYXk6OkdldFVwcGVyQm91bmQodm9pZCljb25zdCANCis/R2V0VXBwZXJCb3VuZEBDSFN0cmluZ0FycmF5QEBRQkVIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENSZWdpc3RyeTo6R2V0VmFsdWVDb3VudCh2b2lkKQ0KKz9HZXRWYWx1ZUNvdW50QENSZWdpc3RyeUBAUUFFS1haDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRnJhbWV3b3JrUXVlcnk6OkdldFZhbHVlc0ZvclByb3AodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBzdGQ6OnZlY3RvcjxjbGFzcyBfYnN0cl90LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIF9ic3RyX3Q+ID4gJikNCis/R2V0VmFsdWVzRm9yUHJvcEBDRnJhbWV3b3JrUXVlcnlAQFFBRUpQQkdBQVY/JHZlY3RvckBWX2JzdHJfdEBAVj8kYWxsb2NhdG9yQFZfYnN0cl90QEBAc3RkQEBAc3RkQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0ZyYW1ld29ya1F1ZXJ5OjpHZXRWYWx1ZXNGb3JQcm9wKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ0hTdHJpbmdBcnJheSAmKQ0KKz9HZXRWYWx1ZXNGb3JQcm9wQENGcmFtZXdvcmtRdWVyeUBAUUFFSlBCR0FBVkNIU3RyaW5nQXJyYXlAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRnJhbWV3b3JrUXVlcnlFeDo6R2V0VmFsdWVzRm9yUHJvcCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIHN0ZDo6dmVjdG9yPGludCxjbGFzcyBzdGQ6OmFsbG9jYXRvcjxpbnQ+ID4gJikNCis/R2V0VmFsdWVzRm9yUHJvcEBDRnJhbWV3b3JrUXVlcnlFeEBAUUFFSlBCR0FBVj8kdmVjdG9yQEhWPyRhbGxvY2F0b3JASEBzdGRAQEBzdGRAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRnJhbWV3b3JrUXVlcnlFeDo6R2V0VmFsdWVzRm9yUHJvcCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIHN0ZDo6dmVjdG9yPGNsYXNzIF92YXJpYW50X3QsY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2xhc3MgX3ZhcmlhbnRfdD4gPiAmKQ0KKz9HZXRWYWx1ZXNGb3JQcm9wQENGcmFtZXdvcmtRdWVyeUV4QEBRQUVKUEJHQUFWPyR2ZWN0b3JAVl92YXJpYW50X3RAQFY/JGFsbG9jYXRvckBWX3ZhcmlhbnRfdEBAQHN0ZEBAQHN0ZEBAQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENJbnN0YW5jZTo6R2V0VmFyaWFudCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHN0cnVjdCB0YWdWQVJJQU5UICYpY29uc3QgDQorP0dldFZhcmlhbnRAQ0luc3RhbmNlQEBRQkVfTlBCR0FBVXRhZ1ZBUklBTlRAQEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDSW5zdGFuY2U6OkdldFdCRU1JTlQxNih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHNob3J0ICYpY29uc3QgDQorP0dldFdCRU1JTlQxNkBDSW5zdGFuY2VAQFFCRV9OUEJHQUFGQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENJbnN0YW5jZTo6R2V0V0JFTUlOVDY0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ0hTdHJpbmcgJiljb25zdCANCis/R2V0V0JFTUlOVDY0QENJbnN0YW5jZUBAUUJFX05QQkdBQVZDSFN0cmluZ0BAQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENJbnN0YW5jZTo6R2V0V0JFTUlOVDY0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosX19pbnQ2NCAmKWNvbnN0IA0KKz9HZXRXQkVNSU5UNjRAQ0luc3RhbmNlQEBRQkVfTlBCR0FBX0pAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpHZXRXQkVNSU5UNjQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBfX2ludDY0ICYpY29uc3QgDQorP0dldFdCRU1JTlQ2NEBDSW5zdGFuY2VAQFFCRV9OUEJHQUFfS0BaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDSW5zdGFuY2U6OkdldFdDSEFSKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgKiAqKWNvbnN0IA0KKz9HZXRXQ0hBUkBDSW5zdGFuY2VAQFFCRV9OUEJHUEFQQUdAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpHZXRXT1JEKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgJiljb25zdCANCis/R2V0V09SREBDSW5zdGFuY2VAQFFCRV9OUEJHQUFHQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENJbnN0YW5jZTo6R2V0Ym9vbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGJvb2wgJiljb25zdCANCis/R2V0Ym9vbEBDSW5zdGFuY2VAQFFCRV9OUEJHQUFfTkBaDQorOyBwdWJsaWM6IHN0cnVjdCBIS0VZX18gKiBfX3RoaXNjYWxsIENSZWdpc3RyeTo6R2V0aEtleSh2b2lkKQ0KKz9HZXRoS2V5QENSZWdpc3RyeUBAUUFFUEFVSEtFWV9fQEBYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBXQkVNVGltZTo6R2V0dGltZV90KGxvbmcgKiljb25zdCANCis/R2V0dGltZV90QFdCRU1UaW1lQEBRQkVIUEFKQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV0JFTVRpbWVTcGFuOjpHZXR0aW1lX3QobG9uZyAqKWNvbnN0IA0KKz9HZXR0aW1lX3RAV0JFTVRpbWVTcGFuQEBRQkVIUEFKQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpJbmNyZW1lbnRNYXBDb3VudChsb25nICopDQorP0luY3JlbWVudE1hcENvdW50QENXYmVtUHJvdmlkZXJHbHVlQEBLR0pQQUpAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkluY3JlbWVudE1hcENvdW50KGNsYXNzIENXYmVtR2x1ZUZhY3RvcnkgY29uc3QgKikNCis/SW5jcmVtZW50TWFwQ291bnRAQ1diZW1Qcm92aWRlckdsdWVAQEtHSlBCVkNXYmVtR2x1ZUZhY3RvcnlAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6SW5jcmVtZW50T2JqZWN0Q291bnQodm9pZCkNCis/SW5jcmVtZW50T2JqZWN0Q291bnRAQ1diZW1Qcm92aWRlckdsdWVAQFNHWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRnJhbWV3b3JrUXVlcnk6OkluaXQyKHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICopDQorP0luaXQyQENGcmFtZXdvcmtRdWVyeUBAUUFFWFBBVUlXYmVtQ2xhc3NPYmplY3RAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRnJhbWV3b3JrUXVlcnk6OkluaXQoc3RydWN0IFBhcnNlZE9iamVjdFBhdGggKixzdHJ1Y3QgSVdiZW1Db250ZXh0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDSFN0cmluZyAmKQ0KKz9Jbml0QENGcmFtZXdvcmtRdWVyeUBAUUFFSlBBVVBhcnNlZE9iamVjdFBhdGhAQFBBVUlXYmVtQ29udGV4dEBAUEJHQUFWQ0hTdHJpbmdAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRnJhbWV3b3JrUXVlcnk6OkluaXQodW5zaWduZWQgc2hvcnQgKiBjb25zdCx1bnNpZ25lZCBzaG9ydCAqIGNvbnN0LGxvbmcsY2xhc3MgQ0hTdHJpbmcgJikNCis/SW5pdEBDRnJhbWV3b3JrUXVlcnlAQFFBRUpRQUcwSkFBVkNIU3RyaW5nQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ0hTdHJpbmc6OkluaXQodm9pZCkNCis/SW5pdEBDSFN0cmluZ0BASUFFWFhaDQorOyBwcml2YXRlOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkluaXQodm9pZCkNCis/SW5pdEBDV2JlbVByb3ZpZGVyR2x1ZUBAQ0dYWFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBQcm92aWRlcjo6SW5pdENvbXB1dGVyTmFtZSh2b2lkKQ0KKz9Jbml0Q29tcHV0ZXJOYW1lQFByb3ZpZGVyQEBDR1hYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDRnJhbWV3b3JrUXVlcnlFeDo6SW5pdEV4KHVuc2lnbmVkIHNob3J0ICogY29uc3QsdW5zaWduZWQgc2hvcnQgKiBjb25zdCxsb25nLGNsYXNzIENIU3RyaW5nICYpDQorP0luaXRFeEBDRnJhbWV3b3JrUXVlcnlFeEBAVUFFSlFBRzBKQUFWQ0hTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkluaXRpYWxpemUodW5zaWduZWQgc2hvcnQgKixsb25nLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKixzdHJ1Y3QgSVdiZW1TZXJ2aWNlcyAqLHN0cnVjdCBJV2JlbUNvbnRleHQgKixzdHJ1Y3QgSVdiZW1Qcm92aWRlckluaXRTaW5rICopDQorP0luaXRpYWxpemVAQ1diZW1Qcm92aWRlckdsdWVAQFVBR0pQQUdKMDBQQVVJV2JlbVNlcnZpY2VzQEBQQVVJV2JlbUNvbnRleHRAQFBBVUlXYmVtUHJvdmlkZXJJbml0U2lua0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENIUHRyQXJyYXk6Okluc2VydEF0KGludCxjbGFzcyBDSFB0ckFycmF5ICopDQorP0luc2VydEF0QENIUHRyQXJyYXlAQFFBRVhIUEFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0hQdHJBcnJheTo6SW5zZXJ0QXQoaW50LHZvaWQgKixpbnQpDQorP0luc2VydEF0QENIUHRyQXJyYXlAQFFBRVhIUEFYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSFN0cmluZ0FycmF5OjpJbnNlcnRBdChpbnQsY2xhc3MgQ0hTdHJpbmdBcnJheSAqKQ0KKz9JbnNlcnRBdEBDSFN0cmluZ0FycmF5QEBRQUVYSFBBVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENIU3RyaW5nQXJyYXk6Okluc2VydEF0KGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/SW5zZXJ0QXRAQ0hTdHJpbmdBcnJheUBAUUFFWEhQQkdIQFoNCis7IHByaXZhdGU6IHN0cnVjdCBJV2JlbVNlcnZpY2VzICogX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpJbnRlcm5hbEdldE5hbWVzcGFjZUNvbm5lY3Rpb24odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/SW50ZXJuYWxHZXROYW1lc3BhY2VDb25uZWN0aW9uQENXYmVtUHJvdmlkZXJHbHVlQEBBQUdQQVVJV2JlbVNlcnZpY2VzQEBQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRnJhbWV3b3JrUXVlcnlFeDo6SXMzVG9rZW5PUih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IHRhZ1ZBUklBTlQgJixzdHJ1Y3QgdGFnVkFSSUFOVCAmKQ0KKz9JczNUb2tlbk9SQENGcmFtZXdvcmtRdWVyeUV4QEBRQUVIUEJHMEFBVXRhZ1ZBUklBTlRAQDFAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBQYXJzZWRPYmplY3RQYXRoOjpJc0NsYXNzKHZvaWQpDQorP0lzQ2xhc3NAUGFyc2VkT2JqZWN0UGF0aEBAUUFFSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6SXNEZXJpdmVkRnJvbSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgTWV0aG9kQ29udGV4dCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0lzRGVyaXZlZEZyb21AQ1diZW1Qcm92aWRlckdsdWVAQFNHX05QQkcwUEFWTWV0aG9kQ29udGV4dEBAMEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENIU3RyaW5nOjpJc0VtcHR5KHZvaWQpY29uc3QgDQorP0lzRW1wdHlAQ0hTdHJpbmdAQFFCRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGJvb2wgX190aGlzY2FsbCBDRnJhbWV3b3JrUXVlcnlFeDo6SXNFeHRlbmRlZCh2b2lkKQ0KKz9Jc0V4dGVuZGVkQENGcmFtZXdvcmtRdWVyeUV4QEBVQUVfTlhaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDRnJhbWV3b3JrUXVlcnk6OklzSW5MaXN0KGNsYXNzIENIU3RyaW5nQXJyYXkgY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Jc0luTGlzdEBDRnJhbWV3b3JrUXVlcnlAQElBRUtBQlZDSFN0cmluZ0FycmF5QEBQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBQYXJzZWRPYmplY3RQYXRoOjpJc0luc3RhbmNlKHZvaWQpDQorP0lzSW5zdGFuY2VAUGFyc2VkT2JqZWN0UGF0aEBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFBhcnNlZE9iamVjdFBhdGg6OklzTG9jYWwodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/SXNMb2NhbEBQYXJzZWRPYmplY3RQYXRoQEBRQUVIUEJHQFoNCis7IHB1YmxpYzogZW51bSBQcm92aWRlckxvZzo6TG9nTGV2ZWwgIF9fdGhpc2NhbGwgUHJvdmlkZXJMb2c6OklzTG9nZ2luZ09uKGNsYXNzIENIU3RyaW5nICopDQorP0lzTG9nZ2luZ09uQFByb3ZpZGVyTG9nQEBRQUU/QVc0TG9nTGV2ZWxAMUBQQVZDSFN0cmluZ0BAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0ZyYW1ld29ya1F1ZXJ5RXg6OklzTlRva2VuQW5kKGNsYXNzIENIU3RyaW5nQXJyYXkgJixjbGFzcyBDSFB0ckFycmF5ICYpDQorP0lzTlRva2VuQW5kQENGcmFtZXdvcmtRdWVyeUV4QEBRQUVIQUFWQ0hTdHJpbmdBcnJheUBAQUFWQ0hQdHJBcnJheUBAQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENJbnN0YW5jZTo6SXNOdWxsKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP0lzTnVsbEBDSW5zdGFuY2VAQFFCRV9OUEJHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgUGFyc2VkT2JqZWN0UGF0aDo6SXNPYmplY3Qodm9pZCkNCis/SXNPYmplY3RAUGFyc2VkT2JqZWN0UGF0aEBAUUFFSFhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBXQkVNVGltZTo6SXNPayh2b2lkKWNvbnN0IA0KKz9Jc09rQFdCRU1UaW1lQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBXQkVNVGltZVNwYW46OklzT2sodm9pZCljb25zdCANCis/SXNPa0BXQkVNVGltZVNwYW5AQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENGcmFtZXdvcmtRdWVyeTo6SXNQcm9wZXJ0eVJlcXVpcmVkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0lzUHJvcGVydHlSZXF1aXJlZEBDRnJhbWV3b3JrUXVlcnlAQFFBRV9OUEJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgQ0ZyYW1ld29ya1F1ZXJ5OjpJc1JlZmVyZW5jZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Jc1JlZmVyZW5jZUBDRnJhbWV3b3JrUXVlcnlAQElBRUhQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBQYXJzZWRPYmplY3RQYXRoOjpJc1JlbGF0aXZlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/SXNSZWxhdGl2ZUBQYXJzZWRPYmplY3RQYXRoQEBRQUVIUEJHMEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDRnJhbWV3b3JrUXVlcnk6OktleXNPbmx5KHZvaWQpDQorP0tleXNPbmx5QENGcmFtZXdvcmtRdWVyeUBAUUFFX05YWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyAgX190aGlzY2FsbCBDSFN0cmluZzo6TGVmdChpbnQpY29uc3QgDQorP0xlZnRAQ0hTdHJpbmdAQFFCRT9BVjFASEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIENIU3RyaW5nOjpMb2FkU3RyaW5nVyh1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBpbnQpDQorP0xvYWRTdHJpbmdXQENIU3RyaW5nQEBJQUVISVBBR0lAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSFN0cmluZzo6TG9hZFN0cmluZ1codW5zaWduZWQgaW50KQ0KKz9Mb2FkU3RyaW5nV0BDSFN0cmluZ0BAUUFFSElAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUHJvdmlkZXJMb2c6OkxvY2FsTG9nTWVzc2FnZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCxlbnVtIFByb3ZpZGVyTG9nOjpMb2dMZXZlbCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLC4uLikNCis/TG9jYWxMb2dNZXNzYWdlQFByb3ZpZGVyTG9nQEBRQUFYUEJHSFc0TG9nTGV2ZWxAMUAwWloNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFByb3ZpZGVyTG9nOjpMb2NhbExvZ01lc3NhZ2UodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCxlbnVtIFByb3ZpZGVyTG9nOjpMb2dMZXZlbCkNCis/TG9jYWxMb2dNZXNzYWdlQFByb3ZpZGVyTG9nQEBRQUVYUEJHMEhXNExvZ0xldmVsQDFAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5U2VhcmNoOjpMb2NhdGVLZXlCeU5hbWVPclZhbHVlTmFtZShzdHJ1Y3QgSEtFWV9fICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogKix1bnNpZ25lZCBsb25nLGNsYXNzIENIU3RyaW5nICYsY2xhc3MgQ0hTdHJpbmcgJikNCis/TG9jYXRlS2V5QnlOYW1lT3JWYWx1ZU5hbWVAQ1JlZ2lzdHJ5U2VhcmNoQEBRQUVIUEFVSEtFWV9fQEBQQkcxUEFQQkdLQUFWQ0hTdHJpbmdAQDNAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENUaHJlYWRCYXNlOjpMb2NrKHZvaWQpDQorP0xvY2tAQ1RocmVhZEJhc2VAQEFBRVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ0hTdHJpbmc6OkxvY2tCdWZmZXIodm9pZCkNCis/TG9ja0J1ZmZlckBDSFN0cmluZ0BAUUFFUEFHWFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6TG9ja0ZhY3RvcnlNYXAodm9pZCkNCis/TG9ja0ZhY3RvcnlNYXBAQ1diZW1Qcm92aWRlckdsdWVAQENHWFhaDQorOyBwcml2YXRlOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OkxvY2tQcm92aWRlck1hcCh2b2lkKQ0KKz9Mb2NrUHJvdmlkZXJNYXBAQ1diZW1Qcm92aWRlckdsdWVAQENHWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1HbHVlRmFjdG9yeTo6TG9ja1NlcnZlcihpbnQpDQorP0xvY2tTZXJ2ZXJAQ1diZW1HbHVlRmFjdG9yeUBAVUFHSkhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpMb2dFcnJvcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nKWNvbnN0IA0KKz9Mb2dFcnJvckBDSW5zdGFuY2VAQElCRVhQQkcwMEpAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDSFN0cmluZyAgX190aGlzY2FsbCBQcm92aWRlcjo6TWFrZUxvY2FsUGF0aChjbGFzcyBDSFN0cmluZyBjb25zdCAmKQ0KKz9NYWtlTG9jYWxQYXRoQFByb3ZpZGVyQEBJQUU/QVZDSFN0cmluZ0BAQUJWMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0hTdHJpbmc6Ok1ha2VMb3dlcih2b2lkKQ0KKz9NYWtlTG93ZXJAQ0hTdHJpbmdAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0hTdHJpbmc6Ok1ha2VSZXZlcnNlKHZvaWQpDQorP01ha2VSZXZlcnNlQENIU3RyaW5nQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENIU3RyaW5nOjpNYWtlVXBwZXIodm9pZCkNCis/TWFrZVVwcGVyQENIU3RyaW5nQEBRQUVYWFoNCis7IHB1YmxpYzogY2xhc3MgQ0hTdHJpbmcgIF9fdGhpc2NhbGwgQ0hTdHJpbmc6Ok1pZChpbnQpY29uc3QgDQorP01pZEBDSFN0cmluZ0BAUUJFP0FWMUBIQFoNCis7IHB1YmxpYzogY2xhc3MgQ0hTdHJpbmcgIF9fdGhpc2NhbGwgQ0hTdHJpbmc6Ok1pZChpbnQsaW50KWNvbnN0IA0KKz9NaWRAQ0hTdHJpbmdAQFFCRT9BVjFASEhAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGxvbmcgX19zdGRjYWxsIENXaW5Nc2dFdmVudDo6TXNnV25kUHJvYyhzdHJ1Y3QgSFdORF9fICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxsb25nKQ0KKz9Nc2dXbmRQcm9jQENXaW5Nc2dFdmVudEBAQ0dKUEFVSFdORF9fQEBJSUpAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5OjpOZXh0U3ViS2V5KHZvaWQpDQorP05leHRTdWJLZXlAQ1JlZ2lzdHJ5QEBRQUVLWFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIENPYmplY3RQYXRoUGFyc2VyOjpOZXh0VG9rZW4odm9pZCkNCis/TmV4dFRva2VuQENPYmplY3RQYXRoUGFyc2VyQEBBQUVIWFoNCis7IHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIE5vcm1hbGl6ZVBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyxjbGFzcyBDSFN0cmluZyAmKQ0KKz9Ob3JtYWxpemVQYXRoQEBZR0tQQkcwMEtBQVZDSFN0cmluZ0BAQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6TnVsbE91dFVuc2V0UHJvcGVydGllcyhzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogKixzdHJ1Y3QgdGFnVkFSSUFOVCBjb25zdCAmKQ0KKz9OdWxsT3V0VW5zZXRQcm9wZXJ0aWVzQENXYmVtUHJvdmlkZXJHbHVlQEBBQUVKUEFVSVdiZW1DbGFzc09iamVjdEBAUEFQQVUyQEFCVXRhZ1ZBUklBTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENUaHJlYWRCYXNlOjpPbkZpbmFsUmVsZWFzZSh2b2lkKQ0KKz9PbkZpbmFsUmVsZWFzZUBDVGhyZWFkQmFzZUBATUFFWFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDUmVnaXN0cnk6Ok9wZW4oc3RydWN0IEhLRVlfXyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/T3BlbkBDUmVnaXN0cnlAQFFBRUpQQVVIS0VZX19AQFBCR0tAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5OjpPcGVuQW5kRW51bWVyYXRlU3ViS2V5cyhzdHJ1Y3QgSEtFWV9fICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9PcGVuQW5kRW51bWVyYXRlU3ViS2V5c0BDUmVnaXN0cnlAQFFBRUpQQVVIS0VZX19AQFBCR0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5OjpPcGVuQ3VycmVudFVzZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9PcGVuQ3VycmVudFVzZXJAQ1JlZ2lzdHJ5QEBRQUVLUEJHS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDUmVnaXN0cnk6Ok9wZW5Mb2NhbE1hY2hpbmVLZXlBbmRSZWFkVmFsdWUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENIU3RyaW5nICYpDQorP09wZW5Mb2NhbE1hY2hpbmVLZXlBbmRSZWFkVmFsdWVAQ1JlZ2lzdHJ5QEBRQUVKUEJHMEFBVkNIU3RyaW5nQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpPcGVuTmFtZXNwYWNlKHVuc2lnbmVkIHNob3J0ICogY29uc3QsbG9uZyxzdHJ1Y3QgSVdiZW1Db250ZXh0ICosc3RydWN0IElXYmVtU2VydmljZXMgKiAqLHN0cnVjdCBJV2JlbUNhbGxSZXN1bHQgKiAqKQ0KKz9PcGVuTmFtZXNwYWNlQENXYmVtUHJvdmlkZXJHbHVlQEBVQUdKUUFHSlBBVUlXYmVtQ29udGV4dEBAUEFQQVVJV2JlbVNlcnZpY2VzQEBQQVBBVUlXYmVtQ2FsbFJlc3VsdEBAQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDUmVnaXN0cnk6Ok9wZW5TdWJLZXkodm9pZCkNCis/T3BlblN1YktleUBDUmVnaXN0cnlAQEFBRUtYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDT2JqZWN0UGF0aFBhcnNlcjo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKixzdHJ1Y3QgUGFyc2VkT2JqZWN0UGF0aCAqICopDQorP1BhcnNlQENPYmplY3RQYXRoUGFyc2VyQEBRQUVIUEJHUEFQQVVQYXJzZWRPYmplY3RQYXRoQEBAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpQcmVQcm9jZXNzUHV0SW5zdGFuY2VQYXJtcyhzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqLHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICogKixzdHJ1Y3QgSVdiZW1Db250ZXh0ICopDQorP1ByZVByb2Nlc3NQdXRJbnN0YW5jZVBhcm1zQENXYmVtUHJvdmlkZXJHbHVlQEBBQUVKUEFVSVdiZW1DbGFzc09iamVjdEBAUEFQQVUyQFBBVUlXYmVtQ29udGV4dEBAQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDUmVnaXN0cnk6OlByZXBhcmVUb1JlT3Blbih2b2lkKQ0KKz9QcmVwYXJlVG9SZU9wZW5AQ1JlZ2lzdHJ5QEBBQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6UHV0Q2xhc3Moc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKixsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKixzdHJ1Y3QgSVdiZW1DYWxsUmVzdWx0ICogKikNCis/UHV0Q2xhc3NAQ1diZW1Qcm92aWRlckdsdWVAQFVBR0pQQVVJV2JlbUNsYXNzT2JqZWN0QEBKUEFVSVdiZW1Db250ZXh0QEBQQVBBVUlXYmVtQ2FsbFJlc3VsdEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6UHV0Q2xhc3NBc3luYyhzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqLGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqLHN0cnVjdCBJV2JlbU9iamVjdFNpbmsgKikNCis/UHV0Q2xhc3NBc3luY0BDV2JlbVByb3ZpZGVyR2x1ZUBAVUFHSlBBVUlXYmVtQ2xhc3NPYmplY3RAQEpQQVVJV2JlbUNvbnRleHRAQFBBVUlXYmVtT2JqZWN0U2lua0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6UHV0SW5zdGFuY2Uoc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKixsb25nLHN0cnVjdCBJV2JlbUNvbnRleHQgKixzdHJ1Y3QgSVdiZW1DYWxsUmVzdWx0ICogKikNCis/UHV0SW5zdGFuY2VAQ1diZW1Qcm92aWRlckdsdWVAQFVBR0pQQVVJV2JlbUNsYXNzT2JqZWN0QEBKUEFVSVdiZW1Db250ZXh0QEBQQVBBVUlXYmVtQ2FsbFJlc3VsdEBAQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBQcm92aWRlcjo6UHV0SW5zdGFuY2Uoc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKixsb25nLGNsYXNzIE1ldGhvZENvbnRleHQgKikNCis/UHV0SW5zdGFuY2VAUHJvdmlkZXJAQEFBRUpQQVVJV2JlbUNsYXNzT2JqZWN0QEBKUEFWTWV0aG9kQ29udGV4dEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgUHJvdmlkZXI6OlB1dEluc3RhbmNlKGNsYXNzIENJbnN0YW5jZSBjb25zdCAmLGxvbmcpDQorP1B1dEluc3RhbmNlQFByb3ZpZGVyQEBNQUVKQUJWQ0luc3RhbmNlQEBKQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6UHV0SW5zdGFuY2VBc3luYyhzdHJ1Y3QgSVdiZW1DbGFzc09iamVjdCAqLGxvbmcsc3RydWN0IElXYmVtQ29udGV4dCAqLHN0cnVjdCBJV2JlbU9iamVjdFNpbmsgKikNCis/UHV0SW5zdGFuY2VBc3luY0BDV2JlbVByb3ZpZGVyR2x1ZUBAVUFHSlBBVUlXYmVtQ2xhc3NPYmplY3RAQEpQQVVJV2JlbUNvbnRleHRAQFBBVUlXYmVtT2JqZWN0U2lua0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDV2JlbUdsdWVGYWN0b3J5OjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJix2b2lkICogKikNCis/UXVlcnlJbnRlcmZhY2VAQ1diZW1HbHVlRmFjdG9yeUBAVUFHSkFCVV9HVUlEQEBQQVBBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OlF1ZXJ5SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmLHZvaWQgKiAqKQ0KKz9RdWVyeUludGVyZmFjZUBDV2JlbVByb3ZpZGVyR2x1ZUBAVUFHSkFCVV9HVUlEQEBQQVBBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OlF1ZXJ5T2JqZWN0U2luayhsb25nLHN0cnVjdCBJV2JlbU9iamVjdFNpbmsgKiAqKQ0KKz9RdWVyeU9iamVjdFNpbmtAQ1diZW1Qcm92aWRlckdsdWVAQFVBR0pKUEFQQVVJV2JlbU9iamVjdFNpbmtAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIE1ldGhvZENvbnRleHQ6OlF1ZXJ5UG9zdFByb2Nlc3Modm9pZCkNCis/UXVlcnlQb3N0UHJvY2Vzc0BNZXRob2RDb250ZXh0QEBVQUVYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENXaW5Nc2dFdmVudDo6UmVnaXN0ZXJGb3JNZXNzYWdlKHVuc2lnbmVkIGludCkNCis/UmVnaXN0ZXJGb3JNZXNzYWdlQENXaW5Nc2dFdmVudEBASUFFWElAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ0hTdHJpbmc6OlJlbGVhc2Uodm9pZCkNCis/UmVsZWFzZUBDSFN0cmluZ0BASUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDSFN0cmluZzo6UmVsZWFzZShzdHJ1Y3QgQ0hTdHJpbmdEYXRhICopDQorP1JlbGVhc2VAQ0hTdHJpbmdAQEtHWFBBVUNIU3RyaW5nRGF0YUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENJbnN0YW5jZTo6UmVsZWFzZSh2b2lkKQ0KKz9SZWxlYXNlQENJbnN0YW5jZUBAUUFFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDVGhyZWFkQmFzZTo6UmVsZWFzZSh2b2lkKQ0KKz9SZWxlYXNlQENUaHJlYWRCYXNlQEBRQUVKWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDV2JlbUdsdWVGYWN0b3J5OjpSZWxlYXNlKHZvaWQpDQorP1JlbGVhc2VAQ1diZW1HbHVlRmFjdG9yeUBAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OlJlbGVhc2Uodm9pZCkNCis/UmVsZWFzZUBDV2JlbVByb3ZpZGVyR2x1ZUBAVUFHS1haDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBNZXRob2RDb250ZXh0OjpSZWxlYXNlKHZvaWQpDQorP1JlbGVhc2VATWV0aG9kQ29udGV4dEBAUUFFSlhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSFN0cmluZzo6UmVsZWFzZUJ1ZmZlcihpbnQpDQorP1JlbGVhc2VCdWZmZXJAQ0hTdHJpbmdAQFFBRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENIUHRyQXJyYXk6OlJlbW92ZUFsbCh2b2lkKQ0KKz9SZW1vdmVBbGxAQ0hQdHJBcnJheUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSFN0cmluZ0FycmF5OjpSZW1vdmVBbGwodm9pZCkNCis/UmVtb3ZlQWxsQENIU3RyaW5nQXJyYXlAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0hQdHJBcnJheTo6UmVtb3ZlQXQoaW50LGludCkNCis/UmVtb3ZlQXRAQ0hQdHJBcnJheUBAUUFFWEhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENIU3RyaW5nQXJyYXk6OlJlbW92ZUF0KGludCxpbnQpDQorP1JlbW92ZUF0QENIU3RyaW5nQXJyYXlAQFFBRVhISEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6UmVtb3ZlRnJvbUZhY3RvcnlNYXAoY2xhc3MgQ1diZW1HbHVlRmFjdG9yeSBjb25zdCAqKQ0KKz9SZW1vdmVGcm9tRmFjdG9yeU1hcEBDV2JlbVByb3ZpZGVyR2x1ZUBAS0dYUEJWQ1diZW1HbHVlRmFjdG9yeUBAQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDRnJhbWV3b3JrUXVlcnk6OlJlc2V0KHZvaWQpDQorP1Jlc2V0QENGcmFtZXdvcmtRdWVyeUBAQUFFWFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENIU3RyaW5nOjpSZXZlcnNlRmluZCh1bnNpZ25lZCBzaG9ydCljb25zdCANCis/UmV2ZXJzZUZpbmRAQ0hTdHJpbmdAQFFCRUhHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZWdpc3RyeTo6UmV3aW5kU3ViS2V5cyh2b2lkKQ0KKz9SZXdpbmRTdWJLZXlzQENSZWdpc3RyeUBAUUFFWFhaDQorOyBwdWJsaWM6IGNsYXNzIENIU3RyaW5nICBfX3RoaXNjYWxsIENIU3RyaW5nOjpSaWdodChpbnQpY29uc3QgDQorP1JpZ2h0QENIU3RyaW5nQEBRQkU/QVYxQEhAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDSFN0cmluZzo6U2FmZVN0cmxlbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TYWZlU3RybGVuQENIU3RyaW5nQEBLR0hQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUmVnaXN0cnlTZWFyY2g6OlNlYXJjaEFuZEJ1aWxkTGlzdChjbGFzcyBDSFN0cmluZyxjbGFzcyBDSFB0ckFycmF5ICYsY2xhc3MgQ0hTdHJpbmcsY2xhc3MgQ0hTdHJpbmcsaW50LHN0cnVjdCBIS0VZX18gKikNCis/U2VhcmNoQW5kQnVpbGRMaXN0QENSZWdpc3RyeVNlYXJjaEBAUUFFSFZDSFN0cmluZ0BAQUFWQ0hQdHJBcnJheUBAMDBIUEFVSEtFWV9fQEBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIFByb3ZpZGVyICogX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpTZWFyY2hNYXBGb3JQcm92aWRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NlYXJjaE1hcEZvclByb3ZpZGVyQENXYmVtUHJvdmlkZXJHbHVlQEBDR1BBVlByb3ZpZGVyQEBQQkcwQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENIUHRyQXJyYXk6OlNldEF0KGludCx2b2lkICopDQorP1NldEF0QENIUHRyQXJyYXlAQFFBRVhIUEFYQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENIU3RyaW5nOjpTZXRBdChpbnQsdW5zaWduZWQgc2hvcnQpDQorP1NldEF0QENIU3RyaW5nQEBRQUVYSEdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0hTdHJpbmdBcnJheTo6U2V0QXQoaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldEF0QENIU3RyaW5nQXJyYXlAQFFBRVhIUEJHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENIUHRyQXJyYXk6OlNldEF0R3JvdyhpbnQsdm9pZCAqKQ0KKz9TZXRBdEdyb3dAQ0hQdHJBcnJheUBAUUFFWEhQQVhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0hTdHJpbmdBcnJheTo6U2V0QXRHcm93KGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRBdEdyb3dAQ0hTdHJpbmdBcnJheUBAUUFFWEhQQkdAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpTZXRCeXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgY2hhcikNCis/U2V0Qnl0ZUBDSW5zdGFuY2VAQFFBRV9OUEJHRUBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDSW5zdGFuY2U6OlNldENIU3RyaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0Q0hTdHJpbmdAQ0luc3RhbmNlQEBRQUVfTlBCRzBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpTZXRDSFN0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENIU3RyaW5nIGNvbnN0ICYpDQorP1NldENIU3RyaW5nQENJbnN0YW5jZUBAUUFFX05QQkdBQlZDSFN0cmluZ0BAQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENJbnN0YW5jZTo6U2V0Q0hTdHJpbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKixjaGFyIGNvbnN0ICopDQorP1NldENIU3RyaW5nQENJbnN0YW5jZUBAUUFFX05QQkdQQkRAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgU2V0Q0hTdHJpbmdSZXNvdXJjZUhhbmRsZShzdHJ1Y3QgSElOU1RBTkNFX18gKikNCis/U2V0Q0hTdHJpbmdSZXNvdXJjZUhhbmRsZUBAWUdYUEFVSElOU1RBTkNFX19AQEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDSW5zdGFuY2U6OlNldENoYXJTcGxhdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldENoYXJTcGxhdEBDSW5zdGFuY2VAQFFBRV9OUEJHMEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDSW5zdGFuY2U6OlNldENoYXJTcGxhdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP1NldENoYXJTcGxhdEBDSW5zdGFuY2VAQFFBRV9OUEJHS0BaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDSW5zdGFuY2U6OlNldENoYXJTcGxhdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNoYXIgY29uc3QgKikNCis/U2V0Q2hhclNwbGF0QENJbnN0YW5jZUBAUUFFX05QQkdQQkRAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBQYXJzZWRPYmplY3RQYXRoOjpTZXRDbGFzc05hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0Q2xhc3NOYW1lQFBhcnNlZE9iamVjdFBhdGhAQFFBRUhQQkdAWg0KKzsgcHJvdGVjdGVkOiBib29sIF9fdGhpc2NhbGwgUHJvdmlkZXI6OlNldENyZWF0aW9uQ2xhc3NOYW1lKGNsYXNzIENJbnN0YW5jZSAqKQ0KKz9TZXRDcmVhdGlvbkNsYXNzTmFtZUBQcm92aWRlckBASUFFX05QQVZDSW5zdGFuY2VAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDUmVnaXN0cnk6OlNldEN1cnJlbnRLZXlWYWx1ZShzdHJ1Y3QgSEtFWV9fICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nICYpDQorP1NldEN1cnJlbnRLZXlWYWx1ZUBDUmVnaXN0cnlAQFFBRUtQQVVIS0VZX19AQFBCR0FBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDUmVnaXN0cnk6OlNldEN1cnJlbnRLZXlWYWx1ZShzdHJ1Y3QgSEtFWV9fICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDSFN0cmluZyAmKQ0KKz9TZXRDdXJyZW50S2V5VmFsdWVAQ1JlZ2lzdHJ5QEBRQUVLUEFVSEtFWV9fQEBQQkdBQVZDSFN0cmluZ0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENSZWdpc3RyeTo6U2V0Q3VycmVudEtleVZhbHVlKHN0cnVjdCBIS0VZX18gKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENIU3RyaW5nQXJyYXkgJikNCis/U2V0Q3VycmVudEtleVZhbHVlQENSZWdpc3RyeUBAUUFFS1BBVUhLRVlfX0BAUEJHQUFWQ0hTdHJpbmdBcnJheUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENSZWdpc3RyeTo6U2V0Q3VycmVudEtleVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyAmKQ0KKz9TZXRDdXJyZW50S2V5VmFsdWVAQ1JlZ2lzdHJ5QEBRQUVLUEJHQUFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENSZWdpc3RyeTo6U2V0Q3VycmVudEtleVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ0hTdHJpbmcgJikNCis/U2V0Q3VycmVudEtleVZhbHVlQENSZWdpc3RyeUBAUUFFS1BCR0FBVkNIU3RyaW5nQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5OjpTZXRDdXJyZW50S2V5VmFsdWUodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDSFN0cmluZ0FycmF5ICYpDQorP1NldEN1cnJlbnRLZXlWYWx1ZUBDUmVnaXN0cnlAQFFBRUtQQkdBQVZDSFN0cmluZ0FycmF5QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5OjpTZXRDdXJyZW50S2V5VmFsdWVFeHBhbmQoc3RydWN0IEhLRVlfXyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ0hTdHJpbmcgJikNCis/U2V0Q3VycmVudEtleVZhbHVlRXhwYW5kQENSZWdpc3RyeUBAUUFFS1BBVUhLRVlfX0BAUEJHQUFWQ0hTdHJpbmdAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFdCRU1UaW1lOjpTZXRETVRGKHVuc2lnbmVkIHNob3J0ICogY29uc3QpDQorP1NldERNVEZAV0JFTVRpbWVAQFFBRUhRQUdAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpTZXRET1VCTEUodW5zaWduZWQgc2hvcnQgY29uc3QgKixkb3VibGUpDQorP1NldERPVUJMRUBDSW5zdGFuY2VAQFFBRV9OUEJHTkBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDSW5zdGFuY2U6OlNldERXT1JEKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/U2V0RFdPUkRAQ0luc3RhbmNlQEBRQUVfTlBCR0tAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpTZXREYXRlVGltZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIFdCRU1UaW1lIGNvbnN0ICYpDQorP1NldERhdGVUaW1lQENJbnN0YW5jZUBAUUFFX05QQkdBQlZXQkVNVGltZUBAQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDUmVnaXN0cnk6OlNldERlZmF1bHRWYWx1ZXModm9pZCkNCis/U2V0RGVmYXVsdFZhbHVlc0BDUmVnaXN0cnlAQEFBRVhYWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpTZXRFbWJlZGRlZE9iamVjdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENJbnN0YW5jZSAmKQ0KKz9TZXRFbWJlZGRlZE9iamVjdEBDSW5zdGFuY2VAQFFBRV9OUEJHQUFWMUBAWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgUHJvdmlkZXI6OlNldEtleUZyb21QYXJzZWRPYmplY3RQYXRoKGNsYXNzIENJbnN0YW5jZSAqLHN0cnVjdCBQYXJzZWRPYmplY3RQYXRoICopDQorP1NldEtleUZyb21QYXJzZWRPYmplY3RQYXRoQFByb3ZpZGVyQEBBQUVIUEFWQ0luc3RhbmNlQEBQQVVQYXJzZWRPYmplY3RQYXRoQEBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpTZXROdWxsKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldE51bGxAQ0luc3RhbmNlQEBRQUVfTlBCR0BaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDUmVnaXN0cnk6OlNldFBsYXRmb3JtSUQodm9pZCkNCis/U2V0UGxhdGZvcm1JREBDUmVnaXN0cnlAQENHSFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSFB0ckFycmF5OjpTZXRTaXplKGludCxpbnQpDQorP1NldFNpemVAQ0hQdHJBcnJheUBAUUFFWEhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENIU3RyaW5nQXJyYXk6OlNldFNpemUoaW50LGludCkNCis/U2V0U2l6ZUBDSFN0cmluZ0FycmF5QEBRQUVYSEhAWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX3N0ZGNhbGwgQ1diZW1Qcm92aWRlckdsdWU6OlNldFN0YXR1c09iamVjdChjbGFzcyBNZXRob2RDb250ZXh0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcsc3RydWN0IHRhZ1NBRkVBUlJBWSBjb25zdCAqLHN0cnVjdCB0YWdTQUZFQVJSQVkgY29uc3QgKikNCis/U2V0U3RhdHVzT2JqZWN0QENXYmVtUHJvdmlkZXJHbHVlQEBTR19OUEFWTWV0aG9kQ29udGV4dEBAUEJHMUpQQlV0YWdTQUZFQVJSQVlAQDJAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgTWV0aG9kQ29udGV4dDo6U2V0U3RhdHVzT2JqZWN0KHN0cnVjdCBJV2JlbUNsYXNzT2JqZWN0ICopDQorP1NldFN0YXR1c09iamVjdEBNZXRob2RDb250ZXh0QEBRQUVfTlBBVUlXYmVtQ2xhc3NPYmplY3RAQEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDSW5zdGFuY2U6OlNldFN0cmluZ0FycmF5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IHRhZ1NBRkVBUlJBWSBjb25zdCAmKQ0KKz9TZXRTdHJpbmdBcnJheUBDSW5zdGFuY2VAQFFBRV9OUEJHQUJVdGFnU0FGRUFSUkFZQEBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpTZXRUaW1lU3Bhbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIFdCRU1UaW1lU3BhbiBjb25zdCAmKQ0KKz9TZXRUaW1lU3BhbkBDSW5zdGFuY2VAQFFBRV9OUEJHQUJWV0JFTVRpbWVTcGFuQEBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpTZXRWYXJpYW50KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IHRhZ1ZBUklBTlQgY29uc3QgJikNCis/U2V0VmFyaWFudEBDSW5zdGFuY2VAQFFBRV9OUEJHQUJVdGFnVkFSSUFOVEBAQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENJbnN0YW5jZTo6U2V0V0JFTUlOVDE2KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc2hvcnQgY29uc3QgJikNCis/U2V0V0JFTUlOVDE2QENJbnN0YW5jZUBAUUFFX05QQkdBQkZAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpTZXRXQkVNSU5UNjQodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDSFN0cmluZyBjb25zdCAmKQ0KKz9TZXRXQkVNSU5UNjRAQ0luc3RhbmNlQEBRQUVfTlBCR0FCVkNIU3RyaW5nQEBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0luc3RhbmNlOjpTZXRXQkVNSU5UNjQodW5zaWduZWQgc2hvcnQgY29uc3QgKixfX2ludDY0KQ0KKz9TZXRXQkVNSU5UNjRAQ0luc3RhbmNlQEBRQUVfTlBCR19KQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENJbnN0YW5jZTo6U2V0V0JFTUlOVDY0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgX19pbnQ2NCkNCis/U2V0V0JFTUlOVDY0QENJbnN0YW5jZUBAUUFFX05QQkdfS0BaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDSW5zdGFuY2U6OlNldFdDSEFSU3BsYXQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRXQ0hBUlNwbGF0QENJbnN0YW5jZUBAUUFFX05QQkcwQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENJbnN0YW5jZTo6U2V0V09SRCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0KQ0KKz9TZXRXT1JEQENJbnN0YW5jZUBAUUFFX05QQkdHQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENJbnN0YW5jZTo6U2V0Ym9vbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGJvb2wpDQorP1NldGJvb2xAQ0luc3RhbmNlQEBRQUVfTlBCR19OQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0F1dG9FdmVudDo6U2lnbmFsKHZvaWQpDQorP1NpZ25hbEBDQXV0b0V2ZW50QEBRQUVIWFoNCis7IHB1YmxpYzogY2xhc3MgQ0hTdHJpbmcgIF9fdGhpc2NhbGwgQ0hTdHJpbmc6OlNwYW5FeGNsdWRpbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/U3BhbkV4Y2x1ZGluZ0BDSFN0cmluZ0BAUUJFP0FWMUBQQkdAWg0KKzsgcHVibGljOiBjbGFzcyBDSFN0cmluZyAgX190aGlzY2FsbCBDSFN0cmluZzo6U3BhbkluY2x1ZGluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9TcGFuSW5jbHVkaW5nQENIU3RyaW5nQEBRQkU/QVYxQFBCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSFN0cmluZzo6VHJpbUxlZnQodm9pZCkNCis/VHJpbUxlZnRAQ0hTdHJpbmdAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0hTdHJpbmc6OlRyaW1SaWdodCh2b2lkKQ0KKz9UcmltUmlnaHRAQ0hTdHJpbmdAQFFBRVhYWg0KKzsgcHJpdmF0ZTogc3RhdGljIHZvaWQgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpVbkluaXQodm9pZCkNCis/VW5Jbml0QENXYmVtUHJvdmlkZXJHbHVlQEBDR1hYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ1dpbk1zZ0V2ZW50OjpVblJlZ2lzdGVyQWxsTWVzc2FnZXModm9pZCkNCis/VW5SZWdpc3RlckFsbE1lc3NhZ2VzQENXaW5Nc2dFdmVudEBASUFFWFhaDQorOyBwcm90ZWN0ZWQ6IGJvb2wgX190aGlzY2FsbCBDV2luTXNnRXZlbnQ6OlVuUmVnaXN0ZXJNZXNzYWdlKHVuc2lnbmVkIGludCkNCis/VW5SZWdpc3Rlck1lc3NhZ2VAQ1dpbk1zZ0V2ZW50QEBJQUVfTklAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENUaHJlYWRCYXNlOjpVbmxvY2sodm9pZCkNCis/VW5sb2NrQENUaHJlYWRCYXNlQEBBQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENIU3RyaW5nOjpVbmxvY2tCdWZmZXIodm9pZCkNCis/VW5sb2NrQnVmZmVyQENIU3RyaW5nQEBRQUVYWFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDV2JlbVByb3ZpZGVyR2x1ZTo6VW5sb2NrRmFjdG9yeU1hcCh2b2lkKQ0KKz9VbmxvY2tGYWN0b3J5TWFwQENXYmVtUHJvdmlkZXJHbHVlQEBDR1hYWg0KKzsgcHJpdmF0ZTogc3RhdGljIHZvaWQgX19zdGRjYWxsIENXYmVtUHJvdmlkZXJHbHVlOjpVbmxvY2tQcm92aWRlck1hcCh2b2lkKQ0KKz9VbmxvY2tQcm92aWRlck1hcEBDV2JlbVByb3ZpZGVyR2x1ZUBAQ0dYWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ09iamVjdFBhdGhQYXJzZXI6OlVucGFyc2Uoc3RydWN0IFBhcnNlZE9iamVjdFBhdGggKix1bnNpZ25lZCBzaG9ydCAqICopDQorP1VucGFyc2VAQ09iamVjdFBhdGhQYXJzZXJAQFNHSFBBVVBhcnNlZE9iamVjdFBhdGhAQFBBUEFHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgUHJvdmlkZXI6OlZhbGlkYXRlRGVsZXRpb25GbGFncyhsb25nKQ0KKz9WYWxpZGF0ZURlbGV0aW9uRmxhZ3NAUHJvdmlkZXJAQE1BRUpKQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgUHJvdmlkZXI6OlZhbGlkYXRlRW51bWVyYXRpb25GbGFncyhsb25nKQ0KKz9WYWxpZGF0ZUVudW1lcmF0aW9uRmxhZ3NAUHJvdmlkZXJAQE1BRUpKQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIFByb3ZpZGVyOjpWYWxpZGF0ZUZsYWdzKGxvbmcsZW51bSBQcm92aWRlcjo6RmxhZ0RlZnMpDQorP1ZhbGlkYXRlRmxhZ3NAUHJvdmlkZXJAQElBRUpKVzRGbGFnRGVmc0AxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFByb3ZpZGVyOjpWYWxpZGF0ZUdldE9iakZsYWdzKGxvbmcpDQorP1ZhbGlkYXRlR2V0T2JqRmxhZ3NAUHJvdmlkZXJAQE1BRUpKQFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIFByb3ZpZGVyOjpWYWxpZGF0ZUlNT1NQb2ludGVyKHZvaWQpDQorP1ZhbGlkYXRlSU1PU1BvaW50ZXJAUHJvdmlkZXJAQEFBRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBQcm92aWRlcjo6VmFsaWRhdGVNZXRob2RGbGFncyhsb25nKQ0KKz9WYWxpZGF0ZU1ldGhvZEZsYWdzQFByb3ZpZGVyQEBNQUVKSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFByb3ZpZGVyOjpWYWxpZGF0ZVB1dEluc3RhbmNlRmxhZ3MobG9uZykNCis/VmFsaWRhdGVQdXRJbnN0YW5jZUZsYWdzQFByb3ZpZGVyQEBNQUVKSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFByb3ZpZGVyOjpWYWxpZGF0ZVF1ZXJ5RmxhZ3MobG9uZykNCis/VmFsaWRhdGVRdWVyeUZsYWdzQFByb3ZpZGVyQEBNQUVKSkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDQXV0b0V2ZW50OjpXYWl0KHVuc2lnbmVkIGxvbmcpDQorP1dhaXRAQ0F1dG9FdmVudEBAUUFFS0tAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHZvaWQgX19zdGRjYWxsIENXaW5Nc2dFdmVudDo6V2luZG93c0Rpc3BhdGNoKHZvaWQpDQorP1dpbmRvd3NEaXNwYXRjaEBDV2luTXNnRXZlbnRAQENHWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ09iamVjdFBhdGhQYXJzZXI6Olplcm8odm9pZCkNCis/WmVyb0BDT2JqZWN0UGF0aFBhcnNlckBAQUFFWFhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBDT2JqZWN0UGF0aFBhcnNlcjo6YmVnaW5fcGFyc2Uodm9pZCkNCis/YmVnaW5fcGFyc2VAQ09iamVjdFBhdGhQYXJzZXJAQEFBRUhYWg0KKzsgY2xhc3MgUHJvdmlkZXJMb2cgIGNhcHRhaW5zTG9nDQorP2NhcHRhaW5zTG9nQEAzVlByb3ZpZGVyTG9nQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDV2luTXNnRXZlbnQ6OmR3VGhyZWFkUHJvYyh2b2lkICopDQorP2R3VGhyZWFkUHJvY0BDV2luTXNnRXZlbnRAQENHS1BBWEBaDQorOyBjbGFzcyBDQ3JpdFNlYyAgZ19jcw0KKz9nX2NzQEAzVkNDcml0U2VjQEBBIERBVEENCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIENPYmplY3RQYXRoUGFyc2VyOjppZGVudF9iZWNvbWVzX2NsYXNzKHZvaWQpDQorP2lkZW50X2JlY29tZXNfY2xhc3NAQ09iamVjdFBhdGhQYXJzZXJAQEFBRUhYWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgQ09iamVjdFBhdGhQYXJzZXI6OmlkZW50X2JlY29tZXNfbnModm9pZCkNCis/aWRlbnRfYmVjb21lc19uc0BDT2JqZWN0UGF0aFBhcnNlckBAQUFFSFhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBDT2JqZWN0UGF0aFBhcnNlcjo6a2V5X2NvbnN0KHZvaWQpDQorP2tleV9jb25zdEBDT2JqZWN0UGF0aFBhcnNlckBAQUFFSFhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBDT2JqZWN0UGF0aFBhcnNlcjo6a2V5cmVmKHZvaWQpDQorP2tleXJlZkBDT2JqZWN0UGF0aFBhcnNlckBAQUFFSFhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBDT2JqZWN0UGF0aFBhcnNlcjo6a2V5cmVmX2xpc3Qodm9pZCkNCis/a2V5cmVmX2xpc3RAQ09iamVjdFBhdGhQYXJzZXJAQEFBRUhYWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgQ09iamVjdFBhdGhQYXJzZXI6OmtleXJlZl90ZXJtKHZvaWQpDQorP2tleXJlZl90ZXJtQENPYmplY3RQYXRoUGFyc2VyQEBBQUVIWFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBzdGQ6OnNldDx2b2lkICosc3RydWN0IHN0ZDo6bGVzczx2b2lkICo+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHZvaWQgKj4gPiAgQ1diZW1Qcm92aWRlckdsdWU6Om1fRmx1c2hQdHJzDQorP21fRmx1c2hQdHJzQENXYmVtUHJvdmlkZXJHbHVlQEAwVj8kc2V0QFBBWFU/JGxlc3NAUEFYQHN0ZEBAVj8kYWxsb2NhdG9yQFBBWEAyQEBzdGRAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENDcml0U2VjICBDV2JlbVByb3ZpZGVyR2x1ZTo6bV9jc0ZsdXNoUHRycw0KKz9tX2NzRmx1c2hQdHJzQENXYmVtUHJvdmlkZXJHbHVlQEAwVkNDcml0U2VjQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDQ3JpdFNlYyAgQ1diZW1Qcm92aWRlckdsdWU6Om1fY3NTdGF0dXNPYmplY3QNCis/bV9jc1N0YXR1c09iamVjdEBDV2JlbVByb3ZpZGVyR2x1ZUBAMFZDQ3JpdFNlY0BAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IElXYmVtQ2xhc3NPYmplY3QgKiAgQ1diZW1Qcm92aWRlckdsdWU6Om1fcFN0YXR1c09iamVjdA0KKz9tX3BTdGF0dXNPYmplY3RAQ1diZW1Qcm92aWRlckdsdWVAQDBQQVVJV2JlbUNsYXNzT2JqZWN0QEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDQXV0b0V2ZW50ICBDV2luTXNnRXZlbnQ6Om1nX2FlQ3JlYXRlV2luZG93DQorP21nX2FlQ3JlYXRlV2luZG93QENXaW5Nc2dFdmVudEBAMFZDQXV0b0V2ZW50QEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDQ3JpdFNlYyAgQ1dpbk1zZ0V2ZW50OjptZ19jc01hcExvY2sNCis/bWdfY3NNYXBMb2NrQENXaW5Nc2dFdmVudEBAMFZDQ3JpdFNlY0BAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ0NyaXRTZWMgIENXaW5Nc2dFdmVudDo6bWdfY3NXaW5kb3dMb2NrDQorP21nX2NzV2luZG93TG9ja0BDV2luTXNnRXZlbnRAQDBWQ0NyaXRTZWNAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIHZvaWQgKiAgQ1dpbk1zZ0V2ZW50OjptZ19oVGhyZWFkUHVtcEhhbmRsZQ0KKz9tZ19oVGhyZWFkUHVtcEhhbmRsZUBDV2luTXNnRXZlbnRAQDBQQVhBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgSFdORF9fICogIENXaW5Nc2dFdmVudDo6bWdfaFduZA0KKz9tZ19oV25kQENXaW5Nc2dFdmVudEBAMFBBVUhXTkRfX0BAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3Mgc3RkOjptdWx0aW1hcDx1bnNpZ25lZCBpbnQsY2xhc3MgQ1dpbk1zZ0V2ZW50ICosc3RydWN0IHN0ZDo6bGVzczx1bnNpZ25lZCBpbnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNsYXNzIENXaW5Nc2dFdmVudCAqPiA+ICBDV2luTXNnRXZlbnQ6Om1nX29TaW5rTWFwDQorP21nX29TaW5rTWFwQENXaW5Nc2dFdmVudEBAMFY/JG11bHRpbWFwQElQQVZDV2luTXNnRXZlbnRAQFU/JGxlc3NASUBzdGRAQFY/JGFsbG9jYXRvckBQQVZDV2luTXNnRXZlbnRAQEAzQEBzdGRAQEEgREFUQQ0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIENSZWdpc3RyeTo6bXlSZWdDcmVhdGVLZXlFeChzdHJ1Y3QgSEtFWV9fICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHN0cnVjdCBfU0VDVVJJVFlfQVRUUklCVVRFUyAqLHN0cnVjdCBIS0VZX18gKiAqLHVuc2lnbmVkIGxvbmcgKikNCis/bXlSZWdDcmVhdGVLZXlFeEBDUmVnaXN0cnlAQEFBRUpQQVVIS0VZX19AQFBCR0tQQUdLS1BBVV9TRUNVUklUWV9BVFRSSUJVVEVTQEBQQVBBVTJAUEFLQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBDUmVnaXN0cnk6Om15UmVnRGVsZXRlS2V5KHN0cnVjdCBIS0VZX18gKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9teVJlZ0RlbGV0ZUtleUBDUmVnaXN0cnlAQEFBRUpQQVVIS0VZX19AQFBCR0BaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgQ1JlZ2lzdHJ5OjpteVJlZ0RlbGV0ZVZhbHVlKHN0cnVjdCBIS0VZX18gKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9teVJlZ0RlbGV0ZVZhbHVlQENSZWdpc3RyeUBAQUFFSlBBVUhLRVlfX0BAUEJHQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBDUmVnaXN0cnk6Om15UmVnRW51bUtleShzdHJ1Y3QgSEtFWV9fICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGxvbmcpDQorP215UmVnRW51bUtleUBDUmVnaXN0cnlAQEFBRUpQQVVIS0VZX19AQEtQQUdLQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBDUmVnaXN0cnk6Om15UmVnRW51bVZhbHVlKHN0cnVjdCBIS0VZX18gKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcgKikNCis/bXlSZWdFbnVtVmFsdWVAQ1JlZ2lzdHJ5QEBBQUVKUEFVSEtFWV9fQEBLUEFHUEFLMjJQQUUyQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBDUmVnaXN0cnk6Om15UmVnT3BlbktleUV4KHN0cnVjdCBIS0VZX18gKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgSEtFWV9fICogKikNCis/bXlSZWdPcGVuS2V5RXhAQ1JlZ2lzdHJ5QEBBQUVKUEFVSEtFWV9fQEBQQkdLS1BBUEFVMkBAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIENSZWdpc3RyeTo6bXlSZWdRdWVyeUluZm9LZXkoc3RydWN0IEhLRVlfXyAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICosc3RydWN0IF9GSUxFVElNRSAqKQ0KKz9teVJlZ1F1ZXJ5SW5mb0tleUBDUmVnaXN0cnlAQEFBRUpQQVVIS0VZX19AQFBBR1BBSzIyMjIyMjIyUEFVX0ZJTEVUSU1FQEBAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIENSZWdpc3RyeTo6bXlSZWdRdWVyeVZhbHVlRXgoc3RydWN0IEhLRVlfXyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyAqKQ0KKz9teVJlZ1F1ZXJ5VmFsdWVFeEBDUmVnaXN0cnlAQEFBRUpQQVVIS0VZX19AQFBCR1BBSzJQQUUyQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBDUmVnaXN0cnk6Om15UmVnU2V0VmFsdWVFeChzdHJ1Y3QgSEtFWV9fICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP215UmVnU2V0VmFsdWVFeEBDUmVnaXN0cnlAQEFBRUpQQVVIS0VZX19AQFBCR0tLUEJFS0BaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBDT2JqZWN0UGF0aFBhcnNlcjo6bnNfbGlzdCh2b2lkKQ0KKz9uc19saXN0QENPYmplY3RQYXRoUGFyc2VyQEBBQUVIWFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIENPYmplY3RQYXRoUGFyc2VyOjpuc19saXN0X3Jlc3Qodm9pZCkNCis/bnNfbGlzdF9yZXN0QENPYmplY3RQYXRoUGFyc2VyQEBBQUVIWFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIENPYmplY3RQYXRoUGFyc2VyOjpuc19vcl9jbGFzcyh2b2lkKQ0KKz9uc19vcl9jbGFzc0BDT2JqZWN0UGF0aFBhcnNlckBAQUFFSFhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBDT2JqZWN0UGF0aFBhcnNlcjo6bnNfb3Jfc2VydmVyKHZvaWQpDQorP25zX29yX3NlcnZlckBDT2JqZWN0UGF0aFBhcnNlckBAQUFFSFhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBDT2JqZWN0UGF0aFBhcnNlcjo6b2JqcmVmKHZvaWQpDQorP29ianJlZkBDT2JqZWN0UGF0aFBhcnNlckBAQUFFSFhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBDT2JqZWN0UGF0aFBhcnNlcjo6b2JqcmVmX3Jlc3Qodm9pZCkNCis/b2JqcmVmX3Jlc3RAQ09iamVjdFBhdGhQYXJzZXJAQEFBRUhYWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgQ09iamVjdFBhdGhQYXJzZXI6Om9wdGlvbmFsX29ianJlZih2b2lkKQ0KKz9vcHRpb25hbF9vYmpyZWZAQ09iamVjdFBhdGhQYXJzZXJAQEFBRUhYWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgQ09iamVjdFBhdGhQYXJzZXI6OnByb3BuYW1lKHZvaWQpDQorP3Byb3BuYW1lQENPYmplY3RQYXRoUGFyc2VyQEBBQUVIWFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgIENXYmVtUHJvdmlkZXJHbHVlOjpzX2JJbml0dGVkDQorP3NfYkluaXR0ZWRAQ1diZW1Qcm92aWRlckdsdWVAQDBIQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ0NyaXRTZWMgIENXYmVtUHJvdmlkZXJHbHVlOjpzX2NzRmFjdG9yeU1hcA0KKz9zX2NzRmFjdG9yeU1hcEBDV2JlbVByb3ZpZGVyR2x1ZUBAMFZDQ3JpdFNlY0BAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ0NyaXRTZWMgIENXYmVtUHJvdmlkZXJHbHVlOjpzX2NzUHJvdmlkZXJNYXANCis/c19jc1Byb3ZpZGVyTWFwQENXYmVtUHJvdmlkZXJHbHVlQEAwVkNDcml0U2VjQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBsb25nICBDV2JlbVByb3ZpZGVyR2x1ZTo6c19kd01ham9yVmVyc2lvbg0KKz9zX2R3TWFqb3JWZXJzaW9uQENXYmVtUHJvdmlkZXJHbHVlQEAwS0EgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGxvbmcgIENSZWdpc3RyeTo6c19kd1BsYXRmb3JtDQorP3NfZHdQbGF0Zm9ybUBDUmVnaXN0cnlAQDBLQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgbG9uZyAgQ1diZW1Qcm92aWRlckdsdWU6OnNfZHdQbGF0Zm9ybQ0KKz9zX2R3UGxhdGZvcm1AQ1diZW1Qcm92aWRlckdsdWVAQDBLQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgaW50ICBDUmVnaXN0cnk6OnNfZlBsYXRmb3JtU2V0DQorP3NfZlBsYXRmb3JtU2V0QENSZWdpc3RyeUBAMEhBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBzdGQ6Om1hcDx2b2lkIGNvbnN0ICosbG9uZyAqLHN0cnVjdCBzdGQ6Omxlc3M8dm9pZCBjb25zdCAqPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxsb25nICo+ID4gIENXYmVtUHJvdmlkZXJHbHVlOjpzX2ZhY3RvcnltYXANCis/c19mYWN0b3J5bWFwQENXYmVtUHJvdmlkZXJHbHVlQEAwVj8kbWFwQFBCWFBBSlU/JGxlc3NAUEJYQHN0ZEBAVj8kYWxsb2NhdG9yQFBBSkAyQEBzdGRAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGxvbmcgIENXYmVtUHJvdmlkZXJHbHVlOjpzX2xPYmplY3RzDQorP3NfbE9iamVjdHNAQ1diZW1Qcm92aWRlckdsdWVAQDBKQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3Mgc3RkOjptYXA8Y2xhc3MgQ0hTdHJpbmcsdm9pZCAqLHN0cnVjdCBzdGQ6Omxlc3M8Y2xhc3MgQ0hTdHJpbmc+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHZvaWQgKj4gPiAgQ1diZW1Qcm92aWRlckdsdWU6OnNfcHJvdmlkZXJzbWFwDQorP3NfcHJvdmlkZXJzbWFwQENXYmVtUHJvdmlkZXJHbHVlQEAwVj8kbWFwQFZDSFN0cmluZ0BAUEFYVT8kbGVzc0BWQ0hTdHJpbmdAQEBzdGRAQFY/JGFsbG9jYXRvckBQQVhAM0BAc3RkQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDSFN0cmluZyAgUHJvdmlkZXI6OnNfc3RyQ29tcHV0ZXJOYW1lDQorP3Nfc3RyQ29tcHV0ZXJOYW1lQFByb3ZpZGVyQEAwVkNIU3RyaW5nQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAqICBDV2JlbVByb3ZpZGVyR2x1ZTo6c193c3RyQ1NEVmVyc2lvbg0KKz9zX3dzdHJDU0RWZXJzaW9uQENXYmVtUHJvdmlkZXJHbHVlQEAwUEFHQSBEQVRBDQorX0RvQ21kQDE2DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2ZzdXNkLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dmc3VzZC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDhmOGJiYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dmc3VzZC5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGU1VTRC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRlNVU0QuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK19EbGxFbnRyeVBvaW50QDEyDQorRGxsR2V0Q2xhc3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZnRseDA0MWUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Z0bHgwNDFlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYjVhNWIxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2Z0bHgwNDFlLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEZUTFgwNDFFLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBGVExYMDQxRS5kbGwNCitFWFBPUlRTDQorRmluZFRoYWlXb3JkQnJlYWsNCitGaW5kVGhhaVdvcmRCcmVha1cNCitGVFNXb3JkQnJlYWtBDQorRlRTV29yZEJyZWFrVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dmdHBjdHJzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZnRwY3RyczIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE1MGZkMTQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZnRwY3RyczIuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRlRQQ1RSUzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEZUUENUUlMyLmRsbA0KK0VYUE9SVFMNCitPcGVuRnRwUGVyZm9ybWFuY2VEYXRhDQorQ29sbGVjdEZ0cFBlcmZvcm1hbmNlRGF0YQ0KK0Nsb3NlRnRwUGVyZm9ybWFuY2VEYXRhDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2Z0c3JjaC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZnRzcmNoLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lYjUxNmY1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2Z0c3JjaC5kZWYKQEAgLTAsMCArMSw0MCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGVFNSQ0guZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEZUU1JDSC5kbGwNCitFWFBPUlRTDQorQ2xlYXJEaXNwbGF5VGV4dA0KK0NvbXByZXNzVGV4dA0KK0NvdW50SGlsaXRlcw0KK0RlY29tcHJlc3NUZXh0DQorRGVsZXRlQ29tcHJlc3Nvcg0KK0RlbGV0ZUhpbGl0ZXINCitEZWxldGVJbmRleA0KK0RlbGV0ZVNlYXJjaGVyDQorRGlzY2FyZEluZGV4DQorRGxsTWFpbg0KK0dldFBocmFzZVRhYmxlDQorSXNWYWxpZEluZGV4DQorTG9hZEdyb3VwDQorTmV3Q29tcHJlc3Nvcg0KK05ld0hpbGl0ZXINCitOZXdJbmRleA0KK05ld1NlYXJjaGVyDQorT3BlbkJpRGlUYWJEaWFsb2cNCitPcGVuRGlhbG9nDQorT3BlbkluZGV4DQorT3BlblRhYkRpYWxvZw0KK1F1ZXJ5SGlsaXRlcw0KK1F1ZXJ5T3B0aW9ucw0KK1JlZ2lzdGVyQW5pbWF0b3INCitTYXZlR3JvdXANCitTYXZlSW5kZXgNCitTY2FuRGlzcGxheVRleHQNCitTY2FuVGV4dA0KK1NjYW5Ub3BpY1RleHQNCitTY2FuVG9waWNUaXRsZQ0KK1NldERpcmVjdG9yeUxvY2F0b3INCitTZXRQaHJhc2VUYWJsZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dmd2NmZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZndjZmcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE0MjM4MDUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZndjZmcuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRldDRkcuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEZXQ0ZHLkRMTA0KK0VYUE9SVFMNCitHZXRSZXNvdXJjZVN0cmluZw0KK0luaXRIZWxwZXJEbGwNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZnhzYXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dmeHNhcGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJjYTcxYWEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93ZnhzYXBpLmRlZgpAQCAtMCwwICsxLDE2NCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGWFNBUEkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEZYU0FQSS5kbGwNCitFWFBPUlRTDQorRlhTQVBJRnJlZQ0KK0ZYU0FQSUluaXRpYWxpemUNCitGYXhBYm9ydA0KK0ZheEFjY2Vzc0NoZWNrDQorRmF4QWNjZXNzQ2hlY2tFeA0KK0ZheEFkZE91dGJvdW5kR3JvdXBBDQorRmF4QWRkT3V0Ym91bmRHcm91cFcNCitGYXhBZGRPdXRib3VuZFJ1bGVBDQorRmF4QWRkT3V0Ym91bmRSdWxlVw0KK0ZheEFuc3dlckNhbGwNCitGYXhDaGVja1ZhbGlkRmF4Rm9sZGVyDQorRmF4Q2xvc2UNCitGYXhDb21wbGV0ZUpvYlBhcmFtc0ENCitGYXhDb21wbGV0ZUpvYlBhcmFtc1cNCitGYXhDb25uZWN0RmF4U2VydmVyQQ0KK0ZheENvbm5lY3RGYXhTZXJ2ZXJXDQorRmF4RW5hYmxlUm91dGluZ01ldGhvZEENCitGYXhFbmFibGVSb3V0aW5nTWV0aG9kVw0KK0ZheEVuZE1lc3NhZ2VzRW51bQ0KK0ZheEVudW1HbG9iYWxSb3V0aW5nSW5mb0ENCitGYXhFbnVtR2xvYmFsUm91dGluZ0luZm9XDQorRmF4RW51bUpvYnNBDQorRmF4RW51bUpvYnNFeEENCitGYXhFbnVtSm9ic0V4Vw0KK0ZheEVudW1Kb2JzVw0KK0ZheEVudW1NZXNzYWdlc0ENCitGYXhFbnVtTWVzc2FnZXNXDQorRmF4RW51bU91dGJvdW5kR3JvdXBzQQ0KK0ZheEVudW1PdXRib3VuZEdyb3Vwc1cNCitGYXhFbnVtT3V0Ym91bmRSdWxlc0ENCitGYXhFbnVtT3V0Ym91bmRSdWxlc1cNCitGYXhFbnVtUG9ydHNBDQorRmF4RW51bVBvcnRzRXhBDQorRmF4RW51bVBvcnRzRXhXDQorRmF4RW51bVBvcnRzVw0KK0ZheEVudW1Sb3V0aW5nRXh0ZW5zaW9uc0ENCitGYXhFbnVtUm91dGluZ0V4dGVuc2lvbnNXDQorRmF4RW51bVJvdXRpbmdNZXRob2RzQQ0KK0ZheEVudW1Sb3V0aW5nTWV0aG9kc1cNCitGYXhFbnVtZXJhdGVQcm92aWRlcnNBDQorRmF4RW51bWVyYXRlUHJvdmlkZXJzVw0KK0ZheEZyZWVCdWZmZXINCitGYXhGcmVlU2VuZGVySW5mb3JtYXRpb24NCitGYXhHZXRBY3Rpdml0eUxvZ2dpbmdDb25maWd1cmF0aW9uQQ0KK0ZheEdldEFjdGl2aXR5TG9nZ2luZ0NvbmZpZ3VyYXRpb25XDQorRmF4R2V0QXJjaGl2ZUNvbmZpZ3VyYXRpb25BDQorRmF4R2V0QXJjaGl2ZUNvbmZpZ3VyYXRpb25XDQorRmF4R2V0Q29uZmlnV2l6YXJkVXNlZA0KK0ZheEdldENvbmZpZ3VyYXRpb25BDQorRmF4R2V0Q29uZmlndXJhdGlvblcNCitGYXhHZXRDb3VudHJ5TGlzdEENCitGYXhHZXRDb3VudHJ5TGlzdFcNCitGYXhHZXREZXZpY2VTdGF0dXNBDQorRmF4R2V0RGV2aWNlU3RhdHVzVw0KK0ZheEdldEV4dGVuc2lvbkRhdGFBDQorRmF4R2V0RXh0ZW5zaW9uRGF0YVcNCitGYXhHZXRKb2JBDQorRmF4R2V0Sm9iRXhBDQorRmF4R2V0Sm9iRXhXDQorRmF4R2V0Sm9iVw0KK0ZheEdldExvZ2dpbmdDYXRlZ29yaWVzQQ0KK0ZheEdldExvZ2dpbmdDYXRlZ29yaWVzVw0KK0ZheEdldE1lc3NhZ2VBDQorRmF4R2V0TWVzc2FnZVRpZmZBDQorRmF4R2V0TWVzc2FnZVRpZmZXDQorRmF4R2V0TWVzc2FnZVcNCitGYXhHZXRPdXRib3hDb25maWd1cmF0aW9uDQorRmF4R2V0UGFnZURhdGENCitGYXhHZXRQZXJzb25hbENvdmVyUGFnZXNPcHRpb24NCitGYXhHZXRQb3J0QQ0KK0ZheEdldFBvcnRFeEENCitGYXhHZXRQb3J0RXhXDQorRmF4R2V0UG9ydFcNCitGYXhHZXRRdWV1ZVN0YXRlcw0KK0ZheEdldFJlY2VpcHRzQ29uZmlndXJhdGlvbkENCitGYXhHZXRSZWNlaXB0c0NvbmZpZ3VyYXRpb25XDQorRmF4R2V0UmVjZWlwdHNPcHRpb25zDQorRmF4R2V0UmVjaXBpZW50SW5mb0ENCitGYXhHZXRSZWNpcGllbnRJbmZvVw0KK0ZheEdldFJlY2lwaWVudHNMaW1pdA0KK0ZheEdldFJlcG9ydGVkU2VydmVyQVBJVmVyc2lvbg0KK0ZheEdldFJvdXRpbmdJbmZvQQ0KK0ZheEdldFJvdXRpbmdJbmZvVw0KK0ZheEdldFNlY3VyaXR5DQorRmF4R2V0U2VjdXJpdHlFeA0KK0ZheEdldFNlbmRlckluZm9BDQorRmF4R2V0U2VuZGVySW5mb1cNCitGYXhHZXRTZW5kZXJJbmZvcm1hdGlvbg0KK0ZheEdldFNlcnZlckFjdGl2aXR5DQorRmF4R2V0U2VydmVyU0tVDQorRmF4R2V0U2VydmljZVByaW50ZXJzQQ0KK0ZheEdldFNlcnZpY2VQcmludGVyc1cNCitGYXhHZXRWZXJzaW9uDQorRmF4SW5pdGlhbGl6ZUV2ZW50UXVldWUNCitGYXhPcGVuUG9ydA0KK0ZheFByaW50Q292ZXJQYWdlQQ0KK0ZheFByaW50Q292ZXJQYWdlVw0KK0ZheFJlZnJlc2hBcmNoaXZlDQorRmF4UmVnaXN0ZXJGb3JTZXJ2ZXJFdmVudHMNCitGYXhSZWdpc3RlclJvdXRpbmdFeHRlbnNpb25XDQorRmF4UmVnaXN0ZXJTZXJ2aWNlUHJvdmlkZXJFeEENCitGYXhSZWdpc3RlclNlcnZpY2VQcm92aWRlckV4Vw0KK0ZheFJlbGVhc2UNCitGYXhSZW1vdmVNZXNzYWdlDQorRmF4UmVtb3ZlT3V0Ym91bmRHcm91cEENCitGYXhSZW1vdmVPdXRib3VuZEdyb3VwVw0KK0ZheFJlbW92ZU91dGJvdW5kUnVsZQ0KK0ZheFNlbmREb2N1bWVudEENCitGYXhTZW5kRG9jdW1lbnRFeEENCitGYXhTZW5kRG9jdW1lbnRFeFcNCitGYXhTZW5kRG9jdW1lbnRGb3JCcm9hZGNhc3RBDQorRmF4U2VuZERvY3VtZW50Rm9yQnJvYWRjYXN0Vw0KK0ZheFNlbmREb2N1bWVudFcNCitGYXhTZXRBY3Rpdml0eUxvZ2dpbmdDb25maWd1cmF0aW9uQQ0KK0ZheFNldEFjdGl2aXR5TG9nZ2luZ0NvbmZpZ3VyYXRpb25XDQorRmF4U2V0QXJjaGl2ZUNvbmZpZ3VyYXRpb25BDQorRmF4U2V0QXJjaGl2ZUNvbmZpZ3VyYXRpb25XDQorRmF4U2V0Q29uZmlnV2l6YXJkVXNlZA0KK0ZheFNldENvbmZpZ3VyYXRpb25BDQorRmF4U2V0Q29uZmlndXJhdGlvblcNCitGYXhTZXREZXZpY2VPcmRlckluR3JvdXBBDQorRmF4U2V0RGV2aWNlT3JkZXJJbkdyb3VwVw0KK0ZheFNldEV4dGVuc2lvbkRhdGFBDQorRmF4U2V0RXh0ZW5zaW9uRGF0YVcNCitGYXhTZXRHbG9iYWxSb3V0aW5nSW5mb0ENCitGYXhTZXRHbG9iYWxSb3V0aW5nSW5mb1cNCitGYXhTZXRKb2JBDQorRmF4U2V0Sm9iVw0KK0ZheFNldExvZ2dpbmdDYXRlZ29yaWVzQQ0KK0ZheFNldExvZ2dpbmdDYXRlZ29yaWVzVw0KK0ZheFNldE91dGJvdW5kR3JvdXBBDQorRmF4U2V0T3V0Ym91bmRHcm91cFcNCitGYXhTZXRPdXRib3VuZFJ1bGVBDQorRmF4U2V0T3V0Ym91bmRSdWxlVw0KK0ZheFNldE91dGJveENvbmZpZ3VyYXRpb24NCitGYXhTZXRQb3J0QQ0KK0ZheFNldFBvcnRFeEENCitGYXhTZXRQb3J0RXhXDQorRmF4U2V0UG9ydFcNCitGYXhTZXRRdWV1ZQ0KK0ZheFNldFJlY2VpcHRzQ29uZmlndXJhdGlvbkENCitGYXhTZXRSZWNlaXB0c0NvbmZpZ3VyYXRpb25XDQorRmF4U2V0Um91dGluZ0luZm9BDQorRmF4U2V0Um91dGluZ0luZm9XDQorRmF4U2V0U2VjdXJpdHkNCitGYXhTZXRTZW5kZXJJbmZvcm1hdGlvbg0KK0ZheFN0YXJ0TWVzc2FnZXNFbnVtDQorRmF4U3RhcnRQcmludEpvYjJXDQorRmF4U3RhcnRQcmludEpvYkENCitGYXhTdGFydFByaW50Sm9iVw0KK0ZheFVucmVnaXN0ZXJGb3JTZXJ2ZXJFdmVudHMNCitGYXhVbnJlZ2lzdGVyUm91dGluZ0V4dGVuc2lvbkENCitGYXhVbnJlZ2lzdGVyUm91dGluZ0V4dGVuc2lvblcNCitGYXhVbnJlZ2lzdGVyU2VydmljZVByb3ZpZGVyRXhBDQorRmF4VW5yZWdpc3RlclNlcnZpY2VQcm92aWRlckV4Vw0KK0lzRGV2aWNlVmlydHVhbA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dmeHNjb20uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2Z4c2NvbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2U0YjU3OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dmeHNjb20uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgRnhzQ29tLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBGeHNDb20uZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2Z4c2NvbWV4LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dmeHNjb21leC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmNiZmRmNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dmeHNjb21leC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBGeHNDb21FeC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgRnhzQ29tRXguZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2Z4c2V4dDMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dmeHNleHQzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDQ1MmQyZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dmeHNleHQzMi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGZ4c2V4dDMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBmeHNleHQzMi5kbGwNCitFWFBPUlRTDQorRXhjaEVudHJ5UG9pbnQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZnhzcGVyZi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZnhzcGVyZi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWJjMmYzMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dmeHNwZXJmLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEZYU1BFUkYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEZYU1BFUkYuZGxsDQorRVhQT1JUUw0KK09wZW5GYXhQZXJmb3JtYW5jZURhdGENCitDb2xsZWN0RmF4UGVyZm9ybWFuY2VEYXRhDQorQ2xvc2VGYXhQZXJmb3JtYW5jZURhdGENCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93ZnhzeHAzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93ZnhzeHAzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGQ3MDIzOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dmeHN4cDMyLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEZYU1hQMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEZYU1hQMzIuZGxsDQorRVhQT1JUUw0KK1NlcnZpY2VFbnRyeQ0KK1hQUHJvdmlkZXJJbml0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2djZGVmLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dnY2RlZi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmQxN2Q2ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dnY2RlZi5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBHQ0RFRi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgR0NERUYuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2dkaTMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dnZGkzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTc4YTY3ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dnZGkzMi5kZWYKQEAgLTAsMCArMSw2MTcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgR0RJMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEdESTMyLmRsbA0KK0VYUE9SVFMNCitBYm9ydERvYw0KK0Fib3J0UGF0aA0KK0FkZEZvbnRNZW1SZXNvdXJjZUV4DQorQWRkRm9udFJlc291cmNlQQ0KK0FkZEZvbnRSZXNvdXJjZUV4QQ0KK0FkZEZvbnRSZXNvdXJjZUV4Vw0KK0FkZEZvbnRSZXNvdXJjZVRyYWNraW5nDQorQWRkRm9udFJlc291cmNlVw0KK0FuZ2xlQXJjDQorQW5pbWF0ZVBhbGV0dGUNCitBbnlMaW5rZWRGb250cw0KK0FyYw0KK0FyY1RvDQorQlJVU0hPQkpfaEdldENvbG9yVHJhbnNmb3JtDQorQlJVU0hPQkpfcHZBbGxvY1JicnVzaA0KK0JSVVNIT0JKX3B2R2V0UmJydXNoDQorQlJVU0hPQkpfdWxHZXRCcnVzaENvbG9yDQorQmVnaW5QYXRoDQorQml0Qmx0DQorQ0xJUE9CSl9iRW51bQ0KK0NMSVBPQkpfY0VudW1TdGFydA0KK0NMSVBPQkpfcHBvR2V0UGF0aA0KK0NhbmNlbERDDQorQ2hlY2tDb2xvcnNJbkdhbXV0DQorQ2hvb3NlUGl4ZWxGb3JtYXQNCitDaG9yZA0KK0NsZWFyQml0bWFwQXR0cmlidXRlcw0KK0NsZWFyQnJ1c2hBdHRyaWJ1dGVzDQorQ2xvc2VFbmhNZXRhRmlsZQ0KK0Nsb3NlRmlndXJlDQorQ2xvc2VNZXRhRmlsZQ0KK0NvbG9yQ29ycmVjdFBhbGV0dGUNCitDb2xvck1hdGNoVG9UYXJnZXQNCitDb21iaW5lUmduDQorQ29tYmluZVRyYW5zZm9ybQ0KK0NvcHlFbmhNZXRhRmlsZUENCitDb3B5RW5oTWV0YUZpbGVXDQorQ29weU1ldGFGaWxlQQ0KK0NvcHlNZXRhRmlsZVcNCitDcmVhdGVCaXRtYXANCitDcmVhdGVCaXRtYXBJbmRpcmVjdA0KK0NyZWF0ZUJydXNoSW5kaXJlY3QNCitDcmVhdGVDb2xvclNwYWNlQQ0KK0NyZWF0ZUNvbG9yU3BhY2VXDQorQ3JlYXRlQ29tcGF0aWJsZUJpdG1hcA0KK0NyZWF0ZUNvbXBhdGlibGVEQw0KK0NyZWF0ZURDQQ0KK0NyZWF0ZURDVw0KK0NyZWF0ZURJQlBhdHRlcm5CcnVzaA0KK0NyZWF0ZURJQlBhdHRlcm5CcnVzaFB0DQorQ3JlYXRlRElCU2VjdGlvbg0KK0NyZWF0ZURJQml0bWFwDQorQ3JlYXRlRGlzY2FyZGFibGVCaXRtYXANCitDcmVhdGVFbGxpcHRpY1Jnbg0KK0NyZWF0ZUVsbGlwdGljUmduSW5kaXJlY3QNCitDcmVhdGVFbmhNZXRhRmlsZUENCitDcmVhdGVFbmhNZXRhRmlsZVcNCitDcmVhdGVGb250QQ0KK0NyZWF0ZUZvbnRJbmRpcmVjdEENCitDcmVhdGVGb250SW5kaXJlY3RFeEENCitDcmVhdGVGb250SW5kaXJlY3RFeFcNCitDcmVhdGVGb250SW5kaXJlY3RXDQorQ3JlYXRlRm9udFcNCitDcmVhdGVIYWxmdG9uZVBhbGV0dGUNCitDcmVhdGVIYXRjaEJydXNoDQorQ3JlYXRlSUNBDQorQ3JlYXRlSUNXDQorQ3JlYXRlTWV0YUZpbGVBDQorQ3JlYXRlTWV0YUZpbGVXDQorQ3JlYXRlUGFsZXR0ZQ0KK0NyZWF0ZVBhdHRlcm5CcnVzaA0KK0NyZWF0ZVBlbg0KK0NyZWF0ZVBlbkluZGlyZWN0DQorQ3JlYXRlUG9seVBvbHlnb25SZ24NCitDcmVhdGVQb2x5Z29uUmduDQorQ3JlYXRlUmVjdFJnbg0KK0NyZWF0ZVJlY3RSZ25JbmRpcmVjdA0KK0NyZWF0ZVJvdW5kUmVjdFJnbg0KK0NyZWF0ZVNjYWxhYmxlRm9udFJlc291cmNlQQ0KK0NyZWF0ZVNjYWxhYmxlRm9udFJlc291cmNlVw0KK0NyZWF0ZVNvbGlkQnJ1c2gNCitEUHRvTFANCitEZEVudHJ5MA0KK0RkRW50cnkxMA0KK0RkRW50cnkxMQ0KK0RkRW50cnkxMg0KK0RkRW50cnkxMw0KK0RkRW50cnkxNA0KK0RkRW50cnkxNQ0KK0RkRW50cnkxNg0KK0RkRW50cnkxNw0KK0RkRW50cnkxOA0KK0RkRW50cnkxOQ0KK0RkRW50cnkxDQorRGRFbnRyeTIwDQorRGRFbnRyeTIxDQorRGRFbnRyeTIyDQorRGRFbnRyeTIzDQorRGRFbnRyeTI0DQorRGRFbnRyeTI1DQorRGRFbnRyeTI2DQorRGRFbnRyeTI3DQorRGRFbnRyeTI4DQorRGRFbnRyeTI5DQorRGRFbnRyeTINCitEZEVudHJ5MzANCitEZEVudHJ5MzENCitEZEVudHJ5MzINCitEZEVudHJ5MzMNCitEZEVudHJ5MzQNCitEZEVudHJ5MzUNCitEZEVudHJ5MzYNCitEZEVudHJ5MzcNCitEZEVudHJ5MzgNCitEZEVudHJ5MzkNCitEZEVudHJ5Mw0KK0RkRW50cnk0MA0KK0RkRW50cnk0MQ0KK0RkRW50cnk0Mg0KK0RkRW50cnk0Mw0KK0RkRW50cnk0NA0KK0RkRW50cnk0NQ0KK0RkRW50cnk0Ng0KK0RkRW50cnk0Nw0KK0RkRW50cnk0OA0KK0RkRW50cnk0OQ0KK0RkRW50cnk0DQorRGRFbnRyeTUwDQorRGRFbnRyeTUxDQorRGRFbnRyeTUyDQorRGRFbnRyeTUzDQorRGRFbnRyeTU0DQorRGRFbnRyeTU1DQorRGRFbnRyeTU2DQorRGRFbnRyeTUNCitEZEVudHJ5Ng0KK0RkRW50cnk3DQorRGRFbnRyeTgNCitEZEVudHJ5OQ0KK0RlbGV0ZUNvbG9yU3BhY2UNCitEZWxldGVEQw0KK0RlbGV0ZUVuaE1ldGFGaWxlDQorRGVsZXRlTWV0YUZpbGUNCitEZWxldGVPYmplY3QNCitEZXNjcmliZVBpeGVsRm9ybWF0DQorRGV2aWNlQ2FwYWJpbGl0aWVzRXhBDQorRGV2aWNlQ2FwYWJpbGl0aWVzRXhXDQorRHJhd0VzY2FwZQ0KK0VsbGlwc2UNCitFbmFibGVFVURDDQorRW5kRG9jDQorRW5kRm9ybVBhZ2UNCitFbmRQYWdlDQorRW5kUGF0aA0KK0VuZ0FjcXVpcmVTZW1hcGhvcmUNCitFbmdBbHBoYUJsZW5kDQorRW5nQXNzb2NpYXRlU3VyZmFjZQ0KK0VuZ0JpdEJsdA0KK0VuZ0NoZWNrQWJvcnQNCitFbmdDb21wdXRlR2x5cGhTZXQNCitFbmdDb3B5Qml0cw0KK0VuZ0NyZWF0ZUJpdG1hcA0KK0VuZ0NyZWF0ZUNsaXANCitFbmdDcmVhdGVEZXZpY2VCaXRtYXANCitFbmdDcmVhdGVEZXZpY2VTdXJmYWNlDQorRW5nQ3JlYXRlUGFsZXR0ZQ0KK0VuZ0NyZWF0ZVNlbWFwaG9yZQ0KK0VuZ0RlbGV0ZUNsaXANCitFbmdEZWxldGVQYWxldHRlDQorRW5nRGVsZXRlUGF0aA0KK0VuZ0RlbGV0ZVNlbWFwaG9yZQ0KK0VuZ0RlbGV0ZVN1cmZhY2UNCitFbmdFcmFzZVN1cmZhY2UNCitFbmdGaWxsUGF0aA0KK0VuZ0ZpbmRSZXNvdXJjZQ0KK0VuZ0ZyZWVNb2R1bGUNCitFbmdHZXRDdXJyZW50Q29kZVBhZ2UNCitFbmdHZXREcml2ZXJOYW1lDQorRW5nR2V0UHJpbnRlckRhdGFGaWxlTmFtZQ0KK0VuZ0dyYWRpZW50RmlsbA0KK0VuZ0xpbmVUbw0KK0VuZ0xvYWRNb2R1bGUNCitFbmdMb2NrU3VyZmFjZQ0KK0VuZ01hcmtCYW5kaW5nU3VyZmFjZQ0KK0VuZ011bHRpQnl0ZVRvVW5pY29kZU4NCitFbmdNdWx0aUJ5dGVUb1dpZGVDaGFyDQorRW5nUGFpbnQNCitFbmdQbGdCbHQNCitFbmdRdWVyeUVNRkluZm8NCitFbmdRdWVyeUxvY2FsVGltZQ0KK0VuZ1JlbGVhc2VTZW1hcGhvcmUNCitFbmdTdHJldGNoQmx0DQorRW5nU3RyZXRjaEJsdFJPUA0KK0VuZ1N0cm9rZUFuZEZpbGxQYXRoDQorRW5nU3Ryb2tlUGF0aA0KK0VuZ1RleHRPdXQNCitFbmdUcmFuc3BhcmVudEJsdA0KK0VuZ1VuaWNvZGVUb011bHRpQnl0ZU4NCitFbmdVbmxvY2tTdXJmYWNlDQorRW5nV2lkZUNoYXJUb011bHRpQnl0ZQ0KK0VudW1FbmhNZXRhRmlsZQ0KK0VudW1Gb250RmFtaWxpZXNBDQorRW51bUZvbnRGYW1pbGllc0V4QQ0KK0VudW1Gb250RmFtaWxpZXNFeFcNCitFbnVtRm9udEZhbWlsaWVzVw0KK0VudW1Gb250c0ENCitFbnVtRm9udHNXDQorRW51bUlDTVByb2ZpbGVzQQ0KK0VudW1JQ01Qcm9maWxlc1cNCitFbnVtTWV0YUZpbGUNCitFbnVtT2JqZWN0cw0KK0VxdWFsUmduDQorRXNjYXBlDQorRXVkY0xvYWRMaW5rVw0KK0V1ZGNVbmxvYWRMaW5rVw0KK0V4Y2x1ZGVDbGlwUmVjdA0KK0V4dENyZWF0ZVBlbg0KK0V4dENyZWF0ZVJlZ2lvbg0KK0V4dEVzY2FwZQ0KK0V4dEZsb29kRmlsbA0KK0V4dFNlbGVjdENsaXBSZ24NCitFeHRUZXh0T3V0QQ0KK0V4dFRleHRPdXRXDQorRk9OVE9CSl9jR2V0QWxsR2x5cGhIYW5kbGVzDQorRk9OVE9CSl9jR2V0R2x5cGhzDQorRk9OVE9CSl9wUXVlcnlHbHlwaEF0dHJzDQorRk9OVE9CSl9wZmRnDQorRk9OVE9CSl9waWZpDQorRk9OVE9CSl9wdlRydWVUeXBlRm9udEZpbGUNCitGT05UT0JKX3B4b0dldFhmb3JtDQorRk9OVE9CSl92R2V0SW5mbw0KK0ZpbGxQYXRoDQorRmlsbFJnbg0KK0ZpeEJydXNoT3JnRXgNCitGbGF0dGVuUGF0aA0KK0Zsb29kRmlsbA0KK0ZvbnRJc0xpbmtlZA0KK0ZyYW1lUmduDQorR2RpQWRkRm9udFJlc291cmNlVw0KK0dkaUFkZEdsc0JvdW5kcw0KK0dkaUFkZEdsc1JlY29yZA0KK0dkaUFscGhhQmxlbmQNCitHZGlBcnRpZmljaWFsRGVjcmVtZW50RHJpdmVyDQorR2RpQ2xlYW5DYWNoZURDDQorR2RpQ29tbWVudA0KK0dkaUNvbnNvbGVUZXh0T3V0DQorR2RpQ29udmVydEFuZENoZWNrREMNCitHZGlDb252ZXJ0Qml0bWFwDQorR2RpQ29udmVydEJpdG1hcFY1DQorR2RpQ29udmVydEJydXNoDQorR2RpQ29udmVydERDDQorR2RpQ29udmVydEVuaE1ldGFGaWxlDQorR2RpQ29udmVydEZvbnQNCitHZGlDb252ZXJ0TWV0YUZpbGVQaWN0DQorR2RpQ29udmVydFBhbGV0dGUNCitHZGlDb252ZXJ0UmVnaW9uDQorR2RpQ29udmVydFRvRGV2bW9kZVcNCitHZGlDcmVhdGVMb2NhbEVuaE1ldGFGaWxlDQorR2RpQ3JlYXRlTG9jYWxNZXRhRmlsZVBpY3QNCitHZGlEZWxldGVMb2NhbERDDQorR2RpRGVsZXRlU3Bvb2xGaWxlSGFuZGxlDQorR2RpRGVzY3JpYmVQaXhlbEZvcm1hdA0KK0dkaURsbEluaXRpYWxpemUNCitHZGlEcmF3U3RyZWFtDQorR2RpRW5kRG9jRU1GDQorR2RpRW5kUGFnZUVNRg0KK0dkaUVudHJ5MTANCitHZGlFbnRyeTExDQorR2RpRW50cnkxMg0KK0dkaUVudHJ5MTMNCitHZGlFbnRyeTE0DQorR2RpRW50cnkxNQ0KK0dkaUVudHJ5MTYNCitHZGlFbnRyeTENCitHZGlFbnRyeTINCitHZGlFbnRyeTMNCitHZGlFbnRyeTQNCitHZGlFbnRyeTUNCitHZGlFbnRyeTYNCitHZGlFbnRyeTcNCitHZGlFbnRyeTgNCitHZGlFbnRyeTkNCitHZGlGaXhVcEhhbmRsZQ0KK0dkaUZsdXNoDQorR2RpRnVsbHNjcmVlbkNvbnRyb2wNCitHZGlHZXRCYXRjaExpbWl0DQorR2RpR2V0Q2hhckRpbWVuc2lvbnMNCitHZGlHZXRDb2RlUGFnZQ0KK0dkaUdldERDDQorR2RpR2V0RGV2bW9kZUZvclBhZ2UNCitHZGlHZXRMb2NhbEJydXNoDQorR2RpR2V0TG9jYWxEQw0KK0dkaUdldExvY2FsRm9udA0KK0dkaUdldFBhZ2VDb3VudA0KK0dkaUdldFBhZ2VIYW5kbGUNCitHZGlHZXRTcG9vbEZpbGVIYW5kbGUNCitHZGlHZXRTcG9vbE1lc3NhZ2UNCitHZGlHcmFkaWVudEZpbGwNCitHZGlJbml0U3Bvb2wNCitHZGlJbml0aWFsaXplTGFuZ3VhZ2VQYWNrDQorR2RpSXNNZXRhRmlsZURDDQorR2RpSXNNZXRhUHJpbnREQw0KK0dkaUlzUGxheU1ldGFmaWxlREMNCitHZGlQbGF5RENTY3JpcHQNCitHZGlQbGF5RU1GDQorR2RpUGxheUpvdXJuYWwNCitHZGlQbGF5UGFnZUVNRg0KK0dkaVBsYXlQcml2YXRlUGFnZUVNRg0KK0dkaVBsYXlTY3JpcHQNCitHZGlQcmludGVyVGh1bmsNCitHZGlQcm9jZXNzU2V0dXANCitHZGlRdWVyeUZvbnRzDQorR2RpUXVlcnlUYWJsZQ0KK0dkaVJlYWxpemF0aW9uSW5mbw0KK0dkaVJlbGVhc2VEQw0KK0dkaVJlbGVhc2VMb2NhbERDDQorR2RpUmVzZXREQ0VNRg0KK0dkaVNldEF0dHJzDQorR2RpU2V0QmF0Y2hMaW1pdA0KK0dkaVNldExhc3RFcnJvcg0KK0dkaVNldFBpeGVsRm9ybWF0DQorR2RpU2V0U2VydmVyQXR0cg0KK0dkaVN0YXJ0RG9jRU1GDQorR2RpU3RhcnRQYWdlRU1GDQorR2RpU3dhcEJ1ZmZlcnMNCitHZGlUcmFuc3BhcmVudEJsdA0KK0dkaVZhbGlkYXRlSGFuZGxlDQorR2V0QXJjRGlyZWN0aW9uDQorR2V0QXNwZWN0UmF0aW9GaWx0ZXJFeA0KK0dldEJpdG1hcEF0dHJpYnV0ZXMNCitHZXRCaXRtYXBCaXRzDQorR2V0Qml0bWFwRGltZW5zaW9uRXgNCitHZXRCa0NvbG9yDQorR2V0QmtNb2RlDQorR2V0Qm91bmRzUmVjdA0KK0dldEJydXNoQXR0cmlidXRlcw0KK0dldEJydXNoT3JnRXgNCitHZXRDaGFyQUJDV2lkdGhzQQ0KK0dldENoYXJBQkNXaWR0aHNGbG9hdEENCitHZXRDaGFyQUJDV2lkdGhzRmxvYXRXDQorR2V0Q2hhckFCQ1dpZHRoc0kNCitHZXRDaGFyQUJDV2lkdGhzVw0KK0dldENoYXJXaWR0aDMyQQ0KK0dldENoYXJXaWR0aDMyVw0KK0dldENoYXJXaWR0aEENCitHZXRDaGFyV2lkdGhGbG9hdEENCitHZXRDaGFyV2lkdGhGbG9hdFcNCitHZXRDaGFyV2lkdGhJDQorR2V0Q2hhcldpZHRoSW5mbw0KK0dldENoYXJXaWR0aFcNCitHZXRDaGFyYWN0ZXJQbGFjZW1lbnRBDQorR2V0Q2hhcmFjdGVyUGxhY2VtZW50Vw0KK0dldENsaXBCb3gNCitHZXRDbGlwUmduDQorR2V0Q29sb3JBZGp1c3RtZW50DQorR2V0Q29sb3JTcGFjZQ0KK0dldEN1cnJlbnRPYmplY3QNCitHZXRDdXJyZW50UG9zaXRpb25FeA0KK0dldERDQnJ1c2hDb2xvcg0KK0dldERDT3JnRXgNCitHZXREQ1BlbkNvbG9yDQorR2V0RElCQ29sb3JUYWJsZQ0KK0dldERJQml0cw0KK0dldERldmljZUNhcHMNCitHZXREZXZpY2VHYW1tYVJhbXANCitHZXRFVE0NCitHZXRFVURDVGltZVN0YW1wDQorR2V0RVVEQ1RpbWVTdGFtcEV4Vw0KK0dldEVuaE1ldGFGaWxlQQ0KK0dldEVuaE1ldGFGaWxlQml0cw0KK0dldEVuaE1ldGFGaWxlRGVzY3JpcHRpb25BDQorR2V0RW5oTWV0YUZpbGVEZXNjcmlwdGlvblcNCitHZXRFbmhNZXRhRmlsZUhlYWRlcg0KK0dldEVuaE1ldGFGaWxlUGFsZXR0ZUVudHJpZXMNCitHZXRFbmhNZXRhRmlsZVBpeGVsRm9ybWF0DQorR2V0RW5oTWV0YUZpbGVXDQorR2V0Rm9udEFzc29jU3RhdHVzDQorR2V0Rm9udERhdGENCitHZXRGb250TGFuZ3VhZ2VJbmZvDQorR2V0Rm9udFJlc291cmNlSW5mb1cNCitHZXRGb250VW5pY29kZVJhbmdlcw0KK0dldEdseXBoSW5kaWNlc0ENCitHZXRHbHlwaEluZGljZXNXDQorR2V0R2x5cGhPdXRsaW5lDQorR2V0R2x5cGhPdXRsaW5lQQ0KK0dldEdseXBoT3V0bGluZVcNCitHZXRHbHlwaE91dGxpbmVXb3cNCitHZXRHcmFwaGljc01vZGUNCitHZXRIRk9OVA0KK0dldElDTVByb2ZpbGVBDQorR2V0SUNNUHJvZmlsZVcNCitHZXRLZXJuaW5nUGFpcnMNCitHZXRLZXJuaW5nUGFpcnNBDQorR2V0S2VybmluZ1BhaXJzVw0KK0dldExheW91dA0KK0dldExvZ0NvbG9yU3BhY2VBDQorR2V0TG9nQ29sb3JTcGFjZVcNCitHZXRNYXBNb2RlDQorR2V0TWV0YUZpbGVBDQorR2V0TWV0YUZpbGVCaXRzRXgNCitHZXRNZXRhRmlsZVcNCitHZXRNZXRhUmduDQorR2V0TWl0ZXJMaW1pdA0KK0dldE5lYXJlc3RDb2xvcg0KK0dldE5lYXJlc3RQYWxldHRlSW5kZXgNCitHZXRPYmplY3RBDQorR2V0T2JqZWN0VHlwZQ0KK0dldE9iamVjdFcNCitHZXRPdXRsaW5lVGV4dE1ldHJpY3NBDQorR2V0T3V0bGluZVRleHRNZXRyaWNzVw0KK0dldFBhbGV0dGVFbnRyaWVzDQorR2V0UGF0aA0KK0dldFBpeGVsDQorR2V0UGl4ZWxGb3JtYXQNCitHZXRQb2x5RmlsbE1vZGUNCitHZXRST1AyDQorR2V0UmFuZG9tUmduDQorR2V0UmFzdGVyaXplckNhcHMNCitHZXRSZWdpb25EYXRhDQorR2V0UmVsQWJzDQorR2V0UmduQm94DQorR2V0U3RvY2tPYmplY3QNCitHZXRTdHJldGNoQmx0TW9kZQ0KK0dldFN0cmluZ0JpdG1hcEENCitHZXRTdHJpbmdCaXRtYXBXDQorR2V0U3lzdGVtUGFsZXR0ZUVudHJpZXMNCitHZXRTeXN0ZW1QYWxldHRlVXNlDQorR2V0VGV4dEFsaWduDQorR2V0VGV4dENoYXJhY3RlckV4dHJhDQorR2V0VGV4dENoYXJzZXQNCitHZXRUZXh0Q2hhcnNldEluZm8NCitHZXRUZXh0Q29sb3INCitHZXRUZXh0RXh0ZW50RXhQb2ludEENCitHZXRUZXh0RXh0ZW50RXhQb2ludEkNCitHZXRUZXh0RXh0ZW50RXhQb2ludFcNCitHZXRUZXh0RXh0ZW50RXhQb2ludFdQcmkNCitHZXRUZXh0RXh0ZW50UG9pbnQzMkENCitHZXRUZXh0RXh0ZW50UG9pbnQzMlcNCitHZXRUZXh0RXh0ZW50UG9pbnRBDQorR2V0VGV4dEV4dGVudFBvaW50SQ0KK0dldFRleHRFeHRlbnRQb2ludFcNCitHZXRUZXh0RmFjZUENCitHZXRUZXh0RmFjZUFsaWFzVw0KK0dldFRleHRGYWNlVw0KK0dldFRleHRNZXRyaWNzQQ0KK0dldFRleHRNZXRyaWNzVw0KK0dldFRyYW5zZm9ybQ0KK0dldFZpZXdwb3J0RXh0RXgNCitHZXRWaWV3cG9ydE9yZ0V4DQorR2V0V2luTWV0YUZpbGVCaXRzDQorR2V0V2luZG93RXh0RXgNCitHZXRXaW5kb3dPcmdFeA0KK0dldFdvcmxkVHJhbnNmb3JtDQorSFRfR2V0OEJQUEZvcm1hdFBhbGV0dGUNCitIVF9HZXQ4QlBQTWFza1BhbGV0dGUNCitJbnRlcnNlY3RDbGlwUmVjdA0KK0ludmVydFJnbg0KK0lzVmFsaWRFbmhNZXRhUmVjb3JkDQorSXNWYWxpZEVuaE1ldGFSZWNvcmRPZmZFeHQNCitMUHRvRFANCitMaW5lRERBDQorTGluZVRvDQorTWFza0JsdA0KK01pcnJvclJnbg0KK01vZGlmeVdvcmxkVHJhbnNmb3JtDQorTW92ZVRvRXgNCitOYW1lZEVzY2FwZQ0KK09mZnNldENsaXBSZ24NCitPZmZzZXRSZ24NCitPZmZzZXRWaWV3cG9ydE9yZ0V4DQorT2Zmc2V0V2luZG93T3JnRXgNCitQQVRIT0JKX2JFbnVtDQorUEFUSE9CSl9iRW51bUNsaXBMaW5lcw0KK1BBVEhPQkpfdkVudW1TdGFydA0KK1BBVEhPQkpfdkVudW1TdGFydENsaXBMaW5lcw0KK1BBVEhPQkpfdkdldEJvdW5kcw0KK1BhaW50UmduDQorUGF0Qmx0DQorUGF0aFRvUmVnaW9uDQorUGllDQorUGxheUVuaE1ldGFGaWxlDQorUGxheUVuaE1ldGFGaWxlUmVjb3JkDQorUGxheU1ldGFGaWxlDQorUGxheU1ldGFGaWxlUmVjb3JkDQorUGxnQmx0DQorUG9seUJlemllcg0KK1BvbHlCZXppZXJUbw0KK1BvbHlEcmF3DQorUG9seVBhdEJsdA0KK1BvbHlQb2x5Z29uDQorUG9seVBvbHlsaW5lDQorUG9seVRleHRPdXRBDQorUG9seVRleHRPdXRXDQorUG9seWdvbg0KK1BvbHlsaW5lDQorUG9seWxpbmVUbw0KK1B0SW5SZWdpb24NCitQdFZpc2libGUNCitRdWVyeUZvbnRBc3NvY1N0YXR1cw0KK1JlYWxpemVQYWxldHRlDQorUmVjdEluUmVnaW9uDQorUmVjdFZpc2libGUNCitSZWN0YW5nbGUNCitSZW1vdmVGb250TWVtUmVzb3VyY2VFeA0KK1JlbW92ZUZvbnRSZXNvdXJjZUENCitSZW1vdmVGb250UmVzb3VyY2VFeEENCitSZW1vdmVGb250UmVzb3VyY2VFeFcNCitSZW1vdmVGb250UmVzb3VyY2VUcmFja2luZw0KK1JlbW92ZUZvbnRSZXNvdXJjZVcNCitSZXNldERDQQ0KK1Jlc2V0RENXDQorUmVzaXplUGFsZXR0ZQ0KK1Jlc3RvcmVEQw0KK1JvdW5kUmVjdA0KK1NUUk9CSl9iRW51bQ0KK1NUUk9CSl9iRW51bVBvc2l0aW9uc09ubHkNCitTVFJPQkpfYkdldEFkdmFuY2VXaWR0aHMNCitTVFJPQkpfZHdHZXRDb2RlUGFnZQ0KK1NUUk9CSl92RW51bVN0YXJ0DQorU2F2ZURDDQorU2NhbGVWaWV3cG9ydEV4dEV4DQorU2NhbGVXaW5kb3dFeHRFeA0KK1NlbGVjdEJydXNoTG9jYWwNCitTZWxlY3RDbGlwUGF0aA0KK1NlbGVjdENsaXBSZ24NCitTZWxlY3RGb250TG9jYWwNCitTZWxlY3RPYmplY3QNCitTZWxlY3RQYWxldHRlDQorU2V0QWJvcnRQcm9jDQorU2V0QXJjRGlyZWN0aW9uDQorU2V0Qml0bWFwQXR0cmlidXRlcw0KK1NldEJpdG1hcEJpdHMNCitTZXRCaXRtYXBEaW1lbnNpb25FeA0KK1NldEJrQ29sb3INCitTZXRCa01vZGUNCitTZXRCb3VuZHNSZWN0DQorU2V0QnJ1c2hBdHRyaWJ1dGVzDQorU2V0QnJ1c2hPcmdFeA0KK1NldENvbG9yQWRqdXN0bWVudA0KK1NldENvbG9yU3BhY2UNCitTZXREQ0JydXNoQ29sb3INCitTZXREQ1BlbkNvbG9yDQorU2V0RElCQ29sb3JUYWJsZQ0KK1NldERJQml0cw0KK1NldERJQml0c1RvRGV2aWNlDQorU2V0RGV2aWNlR2FtbWFSYW1wDQorU2V0RW5oTWV0YUZpbGVCaXRzDQorU2V0Rm9udEVudW1lcmF0aW9uDQorU2V0R3JhcGhpY3NNb2RlDQorU2V0SUNNTW9kZQ0KK1NldElDTVByb2ZpbGVBDQorU2V0SUNNUHJvZmlsZVcNCitTZXRMYXlvdXQNCitTZXRMYXlvdXRXaWR0aA0KK1NldE1hZ2ljQ29sb3JzDQorU2V0TWFwTW9kZQ0KK1NldE1hcHBlckZsYWdzDQorU2V0TWV0YUZpbGVCaXRzRXgNCitTZXRNZXRhUmduDQorU2V0TWl0ZXJMaW1pdA0KK1NldFBhbGV0dGVFbnRyaWVzDQorU2V0UGl4ZWwNCitTZXRQaXhlbEZvcm1hdA0KK1NldFBpeGVsVg0KK1NldFBvbHlGaWxsTW9kZQ0KK1NldFJPUDINCitTZXRSZWN0UmduDQorU2V0UmVsQWJzDQorU2V0U3RyZXRjaEJsdE1vZGUNCitTZXRTeXN0ZW1QYWxldHRlVXNlDQorU2V0VGV4dEFsaWduDQorU2V0VGV4dENoYXJhY3RlckV4dHJhDQorU2V0VGV4dENvbG9yDQorU2V0VGV4dEp1c3RpZmljYXRpb24NCitTZXRWaWV3cG9ydEV4dEV4DQorU2V0Vmlld3BvcnRPcmdFeA0KK1NldFZpcnR1YWxSZXNvbHV0aW9uDQorU2V0V2luTWV0YUZpbGVCaXRzDQorU2V0V2luZG93RXh0RXgNCitTZXRXaW5kb3dPcmdFeA0KK1NldFdvcmxkVHJhbnNmb3JtDQorU3RhcnREb2NBDQorU3RhcnREb2NXDQorU3RhcnRGb3JtUGFnZQ0KK1N0YXJ0UGFnZQ0KK1N0cmV0Y2hCbHQNCitTdHJldGNoRElCaXRzDQorU3Ryb2tlQW5kRmlsbFBhdGgNCitTdHJva2VQYXRoDQorU3dhcEJ1ZmZlcnMNCitUZXh0T3V0QQ0KK1RleHRPdXRXDQorVHJhbnNsYXRlQ2hhcnNldEluZm8NCitVbmxvYWROZXR3b3JrRm9udHMNCitVbnJlYWxpemVPYmplY3QNCitVcGRhdGVDb2xvcnMNCitVcGRhdGVJQ01SZWdLZXlBDQorVXBkYXRlSUNNUmVnS2V5Vw0KK1dpZGVuUGF0aA0KK1hGT1JNT0JKX2JBcHBseVhmb3JtDQorWEZPUk1PQkpfaUdldFhmb3JtDQorWExBVEVPQkpfY0dldFBhbGV0dGUNCitYTEFURU9CSl9oR2V0Q29sb3JUcmFuc2Zvcm0NCitYTEFURU9CSl9pWGxhdGUNCitYTEFURU9CSl9waVZlY3Rvcg0KK2JJbml0U3lzdGVtQW5kRm9udHNEaXJlY3Rvcmllc1cNCitiTWFrZVBhdGhOYW1lVw0KK2NHZXRUVEZGcm9tRk9UDQorZ2RpUGxheVNwb29sU3RyZWFtDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2dldHVuYW1lLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dnZXR1bmFtZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjc0MTliYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dnZXR1bmFtZS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEdldFVOYW1lLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBHZXRVTmFtZS5kbGwNCitFWFBPUlRTDQorR2V0VU5hbWUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Z2xtZjMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dnbG1mMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg4MTBjZjAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Z2xtZjMyLmRlZgpAQCAtMCwwICsxLDE0MiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBHTE1GMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEdMTUYzMi5kbGwNCitFWFBPUlRTDQorX19nbHNQYXJzZXJfY3JlYXRlDQorX19nbHNQYXJzZXJfcHJpbnQNCitfX2dsc1N0cmluZ19hcHBlbmRDaGFyDQorX19nbHNTdHJpbmdfYXNzaWduDQorX19nbHNTdHJpbmdfaW5pdA0KK2dsc0Fib3J0Q2FsbA0KK2dsc0FwcFJlZg0KK2dsc0JlZ2luQ2FwdHVyZQ0KK2dsc0JlZ2luR0xTDQorZ2xzQmVnaW5PYmoNCitnbHNCaW5hcnkNCitnbHNCbG9jaw0KK2dsc0NhbGxBcnJheQ0KK2dsc0NhbGxBcnJheUluQ29udGV4dA0KK2dsc0NhbGxTdHJlYW0NCitnbHNDYXB0dXJlRmxhZ3MNCitnbHNDYXB0dXJlRnVuYw0KK2dsc0NoYW5uZWwNCitnbHNDaGFydWJ6DQorZ2xzQ29tbWFuZEFQSQ0KK2dsc0NvbW1hbmRGdW5jDQorZ2xzQ29tbWFuZFN0cmluZw0KK2dsc0NvbW1lbnQNCitnbHNDb250ZXh0DQorZ2xzQ29weVN0cmVhbQ0KK2dsc0RhdGFQb2ludGVyDQorZ2xzRGVsZXRlQ29udGV4dA0KK2dsc0RlbGV0ZVJlYWRQcmVmaXgNCitnbHNEZWxldGVTdHJlYW0NCitnbHNEaXNwbGF5TWFwZnYNCitnbHNFbmRDYXB0dXJlDQorZ2xzRW5kR0xTDQorZ2xzRW5kT2JqDQorZ2xzRW51bVN0cmluZw0KK2dsc0Vycm9yDQorZ2xzRmx1c2gNCitnbHNHTFJDDQorZ2xzR0xSQ0xheWVyDQorZ2xzR2VuQ29udGV4dA0KK2dsc0dldEFsbENvbnRleHRzDQorZ2xzR2V0Q2FwdHVyZURpc3BhdGNoVGFibGUNCitnbHNHZXRDYXB0dXJlRXhlY1RhYmxlDQorZ2xzR2V0Q2FwdHVyZUZsYWdzDQorZ2xzR2V0Q29tbWFuZEFsaWdubWVudA0KK2dsc0dldENvbW1hbmRBdHRyaWINCitnbHNHZXRDb21tYW5kRnVuYw0KK2dsc0dldENvbnN0aQ0KK2dsc0dldENvbnN0aXYNCitnbHNHZXRDb25zdHVieg0KK2dsc0dldENvbnRleHRGdW5jDQorZ2xzR2V0Q29udGV4dExpc3RsDQorZ2xzR2V0Q29udGV4dExpc3R1YnoNCitnbHNHZXRDb250ZXh0UG9pbnRlcg0KK2dsc0dldENvbnRleHRpDQorZ2xzR2V0Q29udGV4dHVieg0KK2dsc0dldEN1cnJlbnRDb250ZXh0DQorZ2xzR2V0Q3VycmVudFRpbWUNCitnbHNHZXRFcnJvcg0KK2dsc0dldEdMUkNpDQorZ2xzR2V0SGVhZGVyZg0KK2dsc0dldEhlYWRlcmZ2DQorZ2xzR2V0SGVhZGVyaQ0KK2dsc0dldEhlYWRlcml2DQorZ2xzR2V0SGVhZGVydWJ6DQorZ2xzR2V0TGF5ZXJmDQorZ2xzR2V0TGF5ZXJpDQorZ2xzR2V0T3Bjb2RlQ291bnQNCitnbHNHZXRPcGNvZGVzDQorZ2xzR2V0U3RyZWFtQXR0cmliDQorZ2xzR2V0U3RyZWFtQ1JDMzINCitnbHNHZXRTdHJlYW1SZWFkTmFtZQ0KK2dsc0dldFN0cmVhbVNpemUNCitnbHNHZXRTdHJlYW1UeXBlDQorZ2xzSGVhZGVyR0xSQ2kNCitnbHNIZWFkZXJMYXllcmYNCitnbHNIZWFkZXJMYXllcmkNCitnbHNIZWFkZXJmDQorZ2xzSGVhZGVyZnYNCitnbHNIZWFkZXJpDQorZ2xzSGVhZGVyaXYNCitnbHNIZWFkZXJ1YnoNCitnbHNJc0NvbnRleHQNCitnbHNJc0NvbnRleHRTdHJlYW0NCitnbHNJc0V4dGVuc2lvblN1cHBvcnRlZA0KK2dsc0lzVVRGOFN0cmluZw0KK2dsc0xvbmcNCitnbHNMb25nSGlnaA0KK2dsc0xvbmdMb3cNCitnbHNOdWxsQ29tbWFuZEZ1bmMNCitnbHNOdW1iDQorZ2xzTnVtYnYNCitnbHNOdW1kDQorZ2xzTnVtZHYNCitnbHNOdW1mDQorZ2xzTnVtZnYNCitnbHNOdW1pDQorZ2xzTnVtaXYNCitnbHNOdW1sDQorZ2xzTnVtbHYNCitnbHNOdW1zDQorZ2xzTnVtc3YNCitnbHNOdW11Yg0KK2dsc051bXVidg0KK2dsc051bXVpDQorZ2xzTnVtdWl2DQorZ2xzTnVtdWwNCitnbHNOdW11bHYNCitnbHNOdW11cw0KK2dsc051bXVzdg0KK2dsc1BhZA0KK2dsc1BpeGVsU2V0dXANCitnbHNQaXhlbFNldHVwR2VuDQorZ2xzUmVhZEZ1bmMNCitnbHNSZWFkUHJlZml4DQorZ2xzUmVxdWlyZUV4dGVuc2lvbg0KK2dsc1N3YXBCdWZmZXJzDQorZ2xzVUNTMXRvVVRGOHoNCitnbHNVQ1MydG9VVEY4eg0KK2dsc1VDUzR0b1VURjgNCitnbHNVQ1M0dG9VVEY4eg0KK2dsc1VDU3RvVVRGOHoNCitnbHNVTG9uZw0KK2dsc1VMb25nSGlnaA0KK2dsc1VMb25nTG93DQorZ2xzVVRGOHRvVUNTMXoNCitnbHNVVEY4dG9VQ1Myeg0KK2dsc1VURjh0b1VDUzQNCitnbHNVVEY4dG9VQ1M0eg0KK2dsc1VURjh0b1VDU3oNCitnbHNVbnJlYWRGdW5jDQorZ2xzVW5zdXBwb3J0ZWRDb21tYW5kDQorZ2xzVXBkYXRlQ2FwdHVyZUV4ZWNUYWJsZQ0KK2dsc1dyaXRlRnVuYw0KK2dsc1dyaXRlUHJlZml4DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2dsdTMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dnbHUzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDdmNTg5YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dnbHUzMi5kZWYKQEAgLTAsMCArMSw2MCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBHTFUzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgR0xVMzIuZGxsDQorRVhQT1JUUw0KK2dsdUJlZ2luQ3VydmUNCitnbHVCZWdpblBvbHlnb24NCitnbHVCZWdpblN1cmZhY2UNCitnbHVCZWdpblRyaW0NCitnbHVCdWlsZDFETWlwbWFwcw0KK2dsdUJ1aWxkMkRNaXBtYXBzDQorZ2x1Q3lsaW5kZXINCitnbHVEZWxldGVOdXJic1JlbmRlcmVyDQorZ2x1RGVsZXRlUXVhZHJpYw0KK2dsdURlbGV0ZVRlc3MNCitnbHVEaXNrDQorZ2x1RW5kQ3VydmUNCitnbHVFbmRQb2x5Z29uDQorZ2x1RW5kU3VyZmFjZQ0KK2dsdUVuZFRyaW0NCitnbHVFcnJvclN0cmluZw0KK2dsdUVycm9yVW5pY29kZVN0cmluZ0VYVA0KK2dsdUdldE51cmJzUHJvcGVydHkNCitnbHVHZXRTdHJpbmcNCitnbHVHZXRUZXNzUHJvcGVydHkNCitnbHVMb2FkU2FtcGxpbmdNYXRyaWNlcw0KK2dsdUxvb2tBdA0KK2dsdU5ld051cmJzUmVuZGVyZXINCitnbHVOZXdRdWFkcmljDQorZ2x1TmV3VGVzcw0KK2dsdU5leHRDb250b3VyDQorZ2x1TnVyYnNDYWxsYmFjaw0KK2dsdU51cmJzQ3VydmUNCitnbHVOdXJic1Byb3BlcnR5DQorZ2x1TnVyYnNTdXJmYWNlDQorZ2x1T3J0aG8yRA0KK2dsdVBhcnRpYWxEaXNrDQorZ2x1UGVyc3BlY3RpdmUNCitnbHVQaWNrTWF0cml4DQorZ2x1UHJvamVjdA0KK2dsdVB3bEN1cnZlDQorZ2x1UXVhZHJpY0NhbGxiYWNrDQorZ2x1UXVhZHJpY0RyYXdTdHlsZQ0KK2dsdVF1YWRyaWNOb3JtYWxzDQorZ2x1UXVhZHJpY09yaWVudGF0aW9uDQorZ2x1UXVhZHJpY1RleHR1cmUNCitnbHVTY2FsZUltYWdlDQorZ2x1U3BoZXJlDQorZ2x1VGVzc0JlZ2luQ29udG91cg0KK2dsdVRlc3NCZWdpblBvbHlnb24NCitnbHVUZXNzQ2FsbGJhY2sNCitnbHVUZXNzRW5kQ29udG91cg0KK2dsdVRlc3NFbmRQb2x5Z29uDQorZ2x1VGVzc05vcm1hbA0KK2dsdVRlc3NQcm9wZXJ0eQ0KK2dsdVRlc3NWZXJ0ZXgNCitnbHVVblByb2plY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Z3BlZGl0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dncGVkaXQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMxMDUzYTMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Z3BlZGl0LmRlZgpAQCAtMCwwICsxLDE4IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEdQRURJVC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgR1BFRElULkRMTA0KK0VYUE9SVFMNCitCcm93c2VGb3JHUE8NCitDcmVhdGVHUE9MaW5rDQorRGVsZXRlQWxsR1BPTGlua3MNCitEZWxldGVHUE9MaW5rDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitFeHBvcnRSU29QRGF0YQ0KK0ltcG9ydFJTb1BEYXRhDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2dwa2NzcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Z3BrY3NwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hZTdlYTQyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2dwa2NzcC5kZWYKQEAgLTAsMCArMSwzNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBHUEtDU1AuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEdQS0NTUC5kbGwNCitFWFBPUlRTDQorQ1BBY3F1aXJlQ29udGV4dA0KK0NQQ3JlYXRlSGFzaA0KK0NQRGVjcnlwdA0KK0NQRGVyaXZlS2V5DQorQ1BEZXN0cm95SGFzaA0KK0NQRGVzdHJveUtleQ0KK0NQRW5jcnlwdA0KK0NQRXhwb3J0S2V5DQorQ1BHZW5LZXkNCitDUEdlblJhbmRvbQ0KK0NQR2V0SGFzaFBhcmFtDQorQ1BHZXRLZXlQYXJhbQ0KK0NQR2V0UHJvdlBhcmFtDQorQ1BHZXRVc2VyS2V5DQorQ1BIYXNoRGF0YQ0KK0NQSGFzaFNlc3Npb25LZXkNCitDUEltcG9ydEtleQ0KK0NQUmVsZWFzZUNvbnRleHQNCitDUFNldEhhc2hQYXJhbQ0KK0NQU2V0S2V5UGFyYW0NCitDUFNldFByb3ZQYXJhbQ0KK0NQU2lnbkhhc2gNCitDUFZlcmlmeVNpZ25hdHVyZQ0KK0RsbE1haW4NCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Z3B0ZXh0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dncHRleHQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUwYTMxZTAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Z3B0ZXh0LmRlZgpAQCAtMCwwICsxLDIxIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEdQVEVYVC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgR1BURVhULkRMTA0KK0VYUE9SVFMNCitHZW5lcmF0ZUlQU0VDUG9saWN5DQorR2VuZXJhdGVTY3JpcHRzR3JvdXBQb2xpY3kNCitHZW5lcmF0ZVdJUkVMRVNTUG9saWN5DQorUHJvY2Vzc0lQU0VDUG9saWN5RXgNCitQcm9jZXNzUFNDSEVEUG9saWN5DQorUHJvY2Vzc1NjcmlwdHNHcm91cFBvbGljeQ0KK1Byb2Nlc3NTY3JpcHRzR3JvdXBQb2xpY3lFeA0KK1Byb2Nlc3NXSVJFTEVTU1BvbGljeUV4DQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitTY3JSZWdHUE9MaXN0VG9XYmVtDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2d1aXRybi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Z3VpdHJuLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wOGE1NTMyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2d1aXRybi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBHVUlUUk4uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEdVSVRSTi5kbGwNCitFWFBPUlRTDQorRGxsTWFpbg0KK01vZHVsZUluaXRpYWxpemUNCitNb2R1bGVUZXJtaW5hdGUNCitUcmFuc3BvcnRNb2R1bGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93Z3VpdHJuYS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93Z3VpdHJuYS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2Y4ODRlMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dndWl0cm5hLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEdVSVRSTkEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEdVSVRSTkEuZGxsDQorRVhQT1JUUw0KK0RsbE1haW4NCitNb2R1bGVJbml0aWFsaXplDQorTW9kdWxlVGVybWluYXRlDQorVHJhbnNwb3J0TW9kdWxlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2d6aXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2d6aXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk1YWFhNTcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93Z3ppcC5kZWYKQEAgLTAsMCArMSwxNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBnemlwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBnemlwLmRsbA0KK0VYUE9SVFMNCitDb21wcmVzcw0KK0NyZWF0ZUNvbXByZXNzaW9uDQorRGVJbml0Q29tcHJlc3Npb24NCitEZXN0cm95Q29tcHJlc3Npb24NCitJbml0Q29tcHJlc3Npb24NCitSZXNldENvbXByZXNzaW9uDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2gzMjNtc3AuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2gzMjNtc3AuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkyMTE3ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aDMyM21zcC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBoMzIzbXNwLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBoMzIzbXNwLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3doYmFhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2hiYWFwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTkzZWQ2MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3doYmFhcGkuZGVmCkBAIC0wLDAgKzEsNjUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSEJBQVBJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBIQkFBUEkuZGxsDQorRVhQT1JUUw0KK0hCQV9DbG9zZUFkYXB0ZXINCitIQkFfRnJlZUxpYnJhcnkNCitIQkFfR2V0QWRhcHRlckF0dHJpYnV0ZXMNCitIQkFfR2V0QWRhcHRlck5hbWUNCitIQkFfR2V0QWRhcHRlclBvcnRBdHRyaWJ1dGVzDQorSEJBX0dldEJpbmRpbmdDYXBhYmlsaXR5DQorSEJBX0dldEJpbmRpbmdTdXBwb3J0DQorSEJBX0dldERpc2NvdmVyZWRQb3J0QXR0cmlidXRlcw0KK0hCQV9HZXRFdmVudEJ1ZmZlcg0KK0hCQV9HZXRGQzRTdGF0aXN0aWNzDQorSEJBX0dldEZDUFN0YXRpc3RpY3MNCitIQkFfR2V0RmNwUGVyc2lzdGVudEJpbmRpbmcNCitIQkFfR2V0RmNwVGFyZ2V0TWFwcGluZw0KK0hCQV9HZXRGY3BUYXJnZXRNYXBwaW5nVjINCitIQkFfR2V0TnVtYmVyT2ZBZGFwdGVycw0KK0hCQV9HZXRQZXJzaXN0ZW50QmluZGluZ1YyDQorSEJBX0dldFBvcnRBdHRyaWJ1dGVzQnlXV04NCitIQkFfR2V0UG9ydFN0YXRpc3RpY3MNCitIQkFfR2V0Uk5JRE1nbXRJbmZvDQorSEJBX0dldFZlbmRvckxpYnJhcnlBdHRyaWJ1dGVzDQorSEJBX0dldFZlcnNpb24NCitIQkFfR2V0V3JhcHBlckxpYnJhcnlBdHRyaWJ1dGVzDQorSEJBX0xvYWRMaWJyYXJ5DQorSEJBX09wZW5BZGFwdGVyDQorSEJBX09wZW5BZGFwdGVyQnlXV04NCitIQkFfUmVmcmVzaEFkYXB0ZXJDb25maWd1cmF0aW9uDQorSEJBX1JlZnJlc2hJbmZvcm1hdGlvbg0KK0hCQV9SZWdpc3RlckZvckFkYXB0ZXJBZGRFdmVudHMNCitIQkFfUmVnaXN0ZXJGb3JBZGFwdGVyRXZlbnRzDQorSEJBX1JlZ2lzdGVyRm9yQWRhcHRlclBvcnRFdmVudHMNCitIQkFfUmVnaXN0ZXJGb3JBZGFwdGVyUG9ydFN0YXRFdmVudHMNCitIQkFfUmVnaXN0ZXJGb3JMaW5rRXZlbnRzDQorSEJBX1JlZ2lzdGVyRm9yVGFyZ2V0RXZlbnRzDQorSEJBX1JlZ2lzdGVyTGlicmFyeQ0KK0hCQV9SZWdpc3RlckxpYnJhcnlWMg0KK0hCQV9SZW1vdmVBbGxQZXJzaXN0ZW50QmluZGluZ3MNCitIQkFfUmVtb3ZlQ2FsbGJhY2sNCitIQkFfUmVtb3ZlUGVyc2lzdGVudEJpbmRpbmcNCitIQkFfUmVzZXRTdGF0aXN0aWNzDQorSEJBX1Njc2lJbnF1aXJ5VjINCitIQkFfU2NzaVJlYWRDYXBhY2l0eVYyDQorSEJBX1Njc2lSZXBvcnRMVU5zVjINCitIQkFfU2VuZENUUGFzc1RocnUNCitIQkFfU2VuZENUUGFzc1RocnVWMg0KK0hCQV9TZW5kTElSUg0KK0hCQV9TZW5kUkxTDQorSEJBX1NlbmRSTklEDQorSEJBX1NlbmRSTklEVjINCitIQkFfU2VuZFJQTA0KK0hCQV9TZW5kUlBTDQorSEJBX1NlbmRSZWFkQ2FwYWNpdHkNCitIQkFfU2VuZFJlcG9ydExVTnMNCitIQkFfU2VuZFNSTA0KK0hCQV9TZW5kU2NzaUlucXVpcnkNCitIQkFfU2V0QmluZGluZ1N1cHBvcnQNCitIQkFfU2V0UGVyc2lzdGVudEJpbmRpbmdWMg0KK0hCQV9TZXRSTklETWdtdEluZm8NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aGNjb2luLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3doY2NvaW4uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE5YzQ1NTEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aGNjb2luLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSENDT0lOLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBIQ0NPSU4uRExMDQorRVhQT1JUUw0KK0hDQ09JTl9FbnRyeQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3doaHNldHVwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3doaHNldHVwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNzM5M2QwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2hoc2V0dXAuZGVmCkBAIC0wLDAgKzEsMjk4IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGhoc2V0dXAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGhoc2V0dXAuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpDQ29sbGVjdGlvbih2b2lkKQ0KKz8/MENDb2xsZWN0aW9uQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRklGT1N0cmluZzo6Q0ZJRk9TdHJpbmcodm9pZCkNCis/PzBDRklGT1N0cmluZ0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0ZvbGRlcjo6Q0ZvbGRlcih2b2lkKQ0KKz8/MENGb2xkZXJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMb2NhdGlvbjo6Q0xvY2F0aW9uKHZvaWQpDQorPz8wQ0xvY2F0aW9uQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUG9pbnRlckxpc3Q6OkNQb2ludGVyTGlzdCh2b2lkKQ0KKz8/MENQb2ludGVyTGlzdEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1RpdGxlOjpDVGl0bGUodm9pZCkNCis/PzBDVGl0bGVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjp+Q0NvbGxlY3Rpb24odm9pZCkNCis/PzFDQ29sbGVjdGlvbkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0ZJRk9TdHJpbmc6On5DRklGT1N0cmluZyh2b2lkKQ0KKz8/MUNGSUZPU3RyaW5nQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRm9sZGVyOjp+Q0ZvbGRlcih2b2lkKQ0KKz8/MUNGb2xkZXJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMb2NhdGlvbjo6fkNMb2NhdGlvbih2b2lkKQ0KKz8/MUNMb2NhdGlvbkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1BvaW50ZXJMaXN0Ojp+Q1BvaW50ZXJMaXN0KHZvaWQpDQorPz8xQ1BvaW50ZXJMaXN0QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDVGl0bGU6On5DVGl0bGUodm9pZCkNCis/PzFDVGl0bGVAQFFBRUBYWg0KKzsgcHVibGljOiBjbGFzcyBDQ29sbGVjdGlvbiAmIF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246Om9wZXJhdG9yPShjbGFzcyBDQ29sbGVjdGlvbiBjb25zdCAmKQ0KKz8/NENDb2xsZWN0aW9uQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZJRk9TdHJpbmcgJiBfX3RoaXNjYWxsIENGSUZPU3RyaW5nOjpvcGVyYXRvcj0oY2xhc3MgQ0ZJRk9TdHJpbmcgY29uc3QgJikNCis/PzRDRklGT1N0cmluZ0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENGb2xkZXIgJiBfX3RoaXNjYWxsIENGb2xkZXI6Om9wZXJhdG9yPShjbGFzcyBDRm9sZGVyIGNvbnN0ICYpDQorPz80Q0ZvbGRlckBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NhdGlvbiAmIF9fdGhpc2NhbGwgQ0xvY2F0aW9uOjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2F0aW9uIGNvbnN0ICYpDQorPz80Q0xvY2F0aW9uQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1BvaW50ZXJMaXN0ICYgX190aGlzY2FsbCBDUG9pbnRlckxpc3Q6Om9wZXJhdG9yPShjbGFzcyBDUG9pbnRlckxpc3QgY29uc3QgJikNCis/PzRDUG9pbnRlckxpc3RAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDVGl0bGUgJiBfX3RoaXNjYWxsIENUaXRsZTo6b3BlcmF0b3I9KGNsYXNzIENUaXRsZSBjb25zdCAmKQ0KKz8/NENUaXRsZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBMaXN0SXRlbSAqIF9fdGhpc2NhbGwgQ1BvaW50ZXJMaXN0OjpBZGQodm9pZCAqKQ0KKz9BZGRAQ1BvaW50ZXJMaXN0QEBRQUVQQVVMaXN0SXRlbUBAUEFYQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENGb2xkZXI6OkFkZENoaWxkRm9sZGVyKGNsYXNzIENGb2xkZXIgKikNCis/QWRkQ2hpbGRGb2xkZXJAQ0ZvbGRlckBAUUFFS1BBVjFAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZvbGRlciAqIF9fdGhpc2NhbGwgQ0ZvbGRlcjo6QWRkQ2hpbGRGb2xkZXIoY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIHNob3J0KQ0KKz9BZGRDaGlsZEZvbGRlckBDRm9sZGVyQEBRQUVQQVYxQFBCREtQQUtHQFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZvbGRlciAqIF9fdGhpc2NhbGwgQ0ZvbGRlcjo6QWRkQ2hpbGRGb2xkZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBzaG9ydCkNCis/QWRkQ2hpbGRGb2xkZXJAQ0ZvbGRlckBAUUFFUEFWMUBQQkdLUEFLR0BaDQorOyBwdWJsaWM6IGNsYXNzIENDb2xMaXN0ICogX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6QWRkQ29sbGVjdGlvbih2b2lkKQ0KKz9BZGRDb2xsZWN0aW9uQENDb2xsZWN0aW9uQEBRQUVQQVZDQ29sTGlzdEBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZvbGRlciAqIF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246OkFkZEZvbGRlcihjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICosdW5zaWduZWQgc2hvcnQpDQorP0FkZEZvbGRlckBDQ29sbGVjdGlvbkBAUUFFUEFWQ0ZvbGRlckBAUEJES1BBS0dAWg0KKzsgcHVibGljOiBjbGFzcyBDRm9sZGVyICogX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6QWRkRm9sZGVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICosdW5zaWduZWQgc2hvcnQpDQorP0FkZEZvbGRlckBDQ29sbGVjdGlvbkBAUUFFUEFWQ0ZvbGRlckBAUEJHS1BBS0dAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9jYXRpb24gKiBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpBZGRMb2NhdGlvbihjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZyAqKQ0KKz9BZGRMb2NhdGlvbkBDQ29sbGVjdGlvbkBAUUFFUEFWQ0xvY2F0aW9uQEBQQkQwMDBQQUtAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9jYXRpb24gKiBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpBZGRMb2NhdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcgKikNCis/QWRkTG9jYXRpb25AQ0NvbGxlY3Rpb25AQFFBRVBBVkNMb2NhdGlvbkBAUEJHMDAwUEFLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENUaXRsZTo6QWRkTG9jYXRpb25IaXN0b3J5KHVuc2lnbmVkIGxvbmcsY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosY2xhc3MgQ0xvY2F0aW9uIGNvbnN0ICosY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixpbnQpDQorP0FkZExvY2F0aW9uSGlzdG9yeUBDVGl0bGVAQFFBRUtLUEJEMDBQQlZDTG9jYXRpb25AQDAwSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDVGl0bGU6OkFkZExvY2F0aW9uSGlzdG9yeSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENMb2NhdGlvbiBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpDQorP0FkZExvY2F0aW9uSGlzdG9yeUBDVGl0bGVAQFFBRUtLUEJHMDBQQlZDTG9jYXRpb25AQDAwSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6QWRkUmVmKHZvaWQpDQorP0FkZFJlZkBDQ29sbGVjdGlvbkBAUUFFWFhaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246OkFkZFJlZmVkVGl0bGUoY2xhc3MgQ0ZvbGRlciAqKQ0KKz9BZGRSZWZlZFRpdGxlQENDb2xsZWN0aW9uQEBBQUVLUEFWQ0ZvbGRlckBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENGSUZPU3RyaW5nOjpBZGRUYWlsKGNoYXIgKikNCis/QWRkVGFpbEBDRklGT1N0cmluZ0BAUUFFS1BBREBaDQorOyBwdWJsaWM6IGNsYXNzIENUaXRsZSAqIF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246OkFkZFRpdGxlKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgaW50LGNsYXNzIENMb2NhdGlvbiAqLHVuc2lnbmVkIGxvbmcgKixpbnQsY2hhciBjb25zdCAqKQ0KKz9BZGRUaXRsZUBDQ29sbGVjdGlvbkBAUUFFUEFWQ1RpdGxlQEBQQkQwMDAwR0lQQVZDTG9jYXRpb25AQFBBS0gwQFoNCis7IHB1YmxpYzogY2xhc3MgQ1RpdGxlICogX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6QWRkVGl0bGUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGludCxjbGFzcyBDTG9jYXRpb24gKix1bnNpZ25lZCBsb25nICosaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0FkZFRpdGxlQENDb2xsZWN0aW9uQEBRQUVQQVZDVGl0bGVAQFBCRzAwMDBHSVBBVkNMb2NhdGlvbkBAUEFLSDBAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpBbGxvY0NvcHlWYWx1ZShjbGFzcyBDUGFyc2VYTUwgKixjaGFyICosY2hhciAqICopDQorP0FsbG9jQ29weVZhbHVlQENDb2xsZWN0aW9uQEBBQUVLUEFWQ1BhcnNlWE1MQEBQQURQQVBBREBaDQorOyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBBbGxvY1NldFZhbHVlKGNoYXIgY29uc3QgKixjaGFyICogKikNCis/QWxsb2NTZXRWYWx1ZUBAWUdLUEJEUEFQQURAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpDaGVja1RpdGxlUmVmKGNoYXIgY29uc3QgKix1bnNpZ25lZCBzaG9ydCkNCis/Q2hlY2tUaXRsZVJlZkBDQ29sbGVjdGlvbkBAQUFFS1BCREdAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpDaGVja1RpdGxlUmVmKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQpDQorP0NoZWNrVGl0bGVSZWZAQ0NvbGxlY3Rpb25AQEFBRUtQQkdHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpDbG9zZSh2b2lkKQ0KKz9DbG9zZUBDQ29sbGVjdGlvbkBAUUFFS1haDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6Q29uZmlybVRpdGxlcyh2b2lkKQ0KKz9Db25maXJtVGl0bGVzQENDb2xsZWN0aW9uQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpEZWNyZW1lbnRSZWZUaXRsZUNvdW50KHZvaWQpDQorP0RlY3JlbWVudFJlZlRpdGxlQ291bnRAQ0NvbGxlY3Rpb25AQFFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpEZWxldGVDaGlsZHJlbihjbGFzcyBDRm9sZGVyICogKikNCis/RGVsZXRlQ2hpbGRyZW5AQ0NvbGxlY3Rpb25AQEFBRVhQQVBBVkNGb2xkZXJAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6RGVsZXRlRm9sZGVyKGNsYXNzIENGb2xkZXIgKikNCis/RGVsZXRlRm9sZGVyQENDb2xsZWN0aW9uQEBRQUVLUEFWQ0ZvbGRlckBAQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6RGVsZXRlRm9sZGVycyhjbGFzcyBDRm9sZGVyICogKikNCis/RGVsZXRlRm9sZGVyc0BDQ29sbGVjdGlvbkBAQUFFWFBBUEFWQ0ZvbGRlckBAQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6RGVsZXRlTG9jYWxGaWxlcyhzdHJ1Y3QgTG9jYXRpb25IaXN0b3J5ICosY2xhc3MgQ1RpdGxlICopDQorP0RlbGV0ZUxvY2FsRmlsZXNAQ0NvbGxlY3Rpb25AQEFBRVhQQVVMb2NhdGlvbkhpc3RvcnlAQFBBVkNUaXRsZUBAQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6RGVsZXRlTG9jYXRpb24oY2xhc3MgQ0xvY2F0aW9uICopDQorP0RlbGV0ZUxvY2F0aW9uQENDb2xsZWN0aW9uQEBBQUVLUEFWQ0xvY2F0aW9uQEBAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpEZWxldGVUaXRsZShjbGFzcyBDVGl0bGUgKikNCis/RGVsZXRlVGl0bGVAQ0NvbGxlY3Rpb25AQEFBRUtQQVZDVGl0bGVAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6RGlydHkodm9pZCkNCis/RGlydHlAQ0NvbGxlY3Rpb25AQFFBRVhYWg0KKzsgcHVibGljOiBjbGFzcyBDQ29sTGlzdCAqIF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246OkZpbmRDb2xsZWN0aW9uKGNoYXIgKikNCis/RmluZENvbGxlY3Rpb25AQ0NvbGxlY3Rpb25AQFFBRVBBVkNDb2xMaXN0QEBQQURAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9jYXRpb24gKiBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpGaW5kTG9jYXRpb24oY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCAqKQ0KKz9GaW5kTG9jYXRpb25AQ0NvbGxlY3Rpb25AQFFBRVBBVkNMb2NhdGlvbkBAUEJEUEFJQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2F0aW9uICogX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6RmluZExvY2F0aW9uKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50ICopDQorP0ZpbmRMb2NhdGlvbkBDQ29sbGVjdGlvbkBAUUFFUEFWQ0xvY2F0aW9uQEBQQkdQQUlAWg0KKzsgcHVibGljOiBjbGFzcyBDVGl0bGUgKiBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpGaW5kVGl0bGUoY2hhciBjb25zdCAqLHVuc2lnbmVkIHNob3J0KQ0KKz9GaW5kVGl0bGVAQ0NvbGxlY3Rpb25AQFFBRVBBVkNUaXRsZUBAUEJER0BaDQorOyBwdWJsaWM6IGNsYXNzIENUaXRsZSAqIF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246OkZpbmRUaXRsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0KQ0KKz9GaW5kVGl0bGVAQ0NvbGxlY3Rpb25AQFFBRVBBVkNUaXRsZUBAUEJHR0BaDQorOyBwdWJsaWM6IHN0cnVjdCBMaXN0SXRlbSAqIF9fdGhpc2NhbGwgQ1BvaW50ZXJMaXN0OjpGaXJzdCh2b2lkKQ0KKz9GaXJzdEBDUG9pbnRlckxpc3RAQFFBRVBBVUxpc3RJdGVtQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDTG9jYXRpb24gKiBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpGaXJzdExvY2F0aW9uKHZvaWQpDQorP0ZpcnN0TG9jYXRpb25AQ0NvbGxlY3Rpb25AQFFBRVBBVkNMb2NhdGlvbkBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpHZXRDb2xObyh2b2lkKQ0KKz9HZXRDb2xOb0BDQ29sbGVjdGlvbkBAUUFFS1haDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpHZXRDb2xsZWN0aW9uRmlsZU5hbWUodm9pZCkNCis/R2V0Q29sbGVjdGlvbkZpbGVOYW1lQENDb2xsZWN0aW9uQEBRQUVQQkRYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246OkdldENvbGxlY3Rpb25GaWxlTmFtZVcodm9pZCkNCis/R2V0Q29sbGVjdGlvbkZpbGVOYW1lV0BDQ29sbGVjdGlvbkBAUUFFUEJHWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246OkdldEZpbmRNZXJnZWRDSE1TKHZvaWQpDQorP0dldEZpbmRNZXJnZWRDSE1TQENDb2xsZWN0aW9uQEBRQUVIWFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZvbGRlciAqIF9fdGhpc2NhbGwgQ0ZvbGRlcjo6R2V0Rmlyc3RDaGlsZEZvbGRlcih2b2lkKQ0KKz9HZXRGaXJzdENoaWxkRm9sZGVyQENGb2xkZXJAQFFBRVBBVjFAWFoNCis7IHB1YmxpYzogY2xhc3MgQ1RpdGxlICogX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6R2V0Rmlyc3RUaXRsZSh2b2lkKQ0KKz9HZXRGaXJzdFRpdGxlQENDb2xsZWN0aW9uQEBRQUVQQVZDVGl0bGVAQFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIENMb2NhdGlvbjo6R2V0SWQodm9pZCljb25zdCANCis/R2V0SWRAQ0xvY2F0aW9uQEBRQkVQQURYWg0KKzsgcHVibGljOiBjaGFyICogX190aGlzY2FsbCBDVGl0bGU6OkdldElkKHZvaWQpDQorP0dldElkQENUaXRsZUBAUUFFUEFEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIENMb2NhdGlvbjo6R2V0SWRXKHZvaWQpDQorP0dldElkV0BDTG9jYXRpb25AQFFBRVBCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBDVGl0bGU6OkdldElkVyh2b2lkKQ0KKz9HZXRJZFdAQ1RpdGxlQEBRQUVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpHZXRMYW5nSWQoY2hhciBjb25zdCAqKQ0KKz9HZXRMYW5nSWRAQ0NvbGxlY3Rpb25AQFFBRUdQQkRAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpHZXRMYW5nSWQodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/R2V0TGFuZ0lkQENDb2xsZWN0aW9uQEBRQUVHUEJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDRm9sZGVyOjpHZXRMYW5ndWFnZSh2b2lkKQ0KKz9HZXRMYW5ndWFnZUBDRm9sZGVyQEBRQUVHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDVGl0bGU6OkdldExhbmd1YWdlKHZvaWQpDQorP0dldExhbmd1YWdlQENUaXRsZUBAUUFFR1haDQorOyBwdWJsaWM6IHN0cnVjdCBMb2NhdGlvbkhpc3RvcnkgKiBfX3RoaXNjYWxsIENUaXRsZTo6R2V0TG9jYXRpb24odW5zaWduZWQgbG9uZykNCis/R2V0TG9jYXRpb25AQ1RpdGxlQEBRQUVQQVVMb2NhdGlvbkhpc3RvcnlAQEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6R2V0TWFzdGVyQ0hNKGNoYXIgKiAqLHVuc2lnbmVkIHNob3J0ICopDQorP0dldE1hc3RlckNITUBDQ29sbGVjdGlvbkBAUUFFSFBBUEFEUEFHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246OkdldE1hc3RlckNITSh1bnNpZ25lZCBzaG9ydCAqICosdW5zaWduZWQgc2hvcnQgKikNCis/R2V0TWFzdGVyQ0hNQENDb2xsZWN0aW9uQEBRQUVIUEFQQUdQQUdAWg0KKzsgcHVibGljOiBjbGFzcyBDRm9sZGVyICogX190aGlzY2FsbCBDRm9sZGVyOjpHZXROZXh0Rm9sZGVyKHZvaWQpDQorP0dldE5leHRGb2xkZXJAQ0ZvbGRlckBAUUFFUEFWMUBYWg0KKzsgcHVibGljOiBjbGFzcyBDTG9jYXRpb24gKiBfX3RoaXNjYWxsIENMb2NhdGlvbjo6R2V0TmV4dExvY2F0aW9uKHZvaWQpDQorP0dldE5leHRMb2NhdGlvbkBDTG9jYXRpb25AQFFBRVBBVjFAWFoNCis7IHB1YmxpYzogY2xhc3MgQ1RpdGxlICogX190aGlzY2FsbCBDVGl0bGU6OkdldE5leHRUaXRsZSh2b2lkKQ0KKz9HZXROZXh0VGl0bGVAQ1RpdGxlQEBRQUVQQVYxQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDRm9sZGVyOjpHZXRPcmRlcih2b2lkKQ0KKz9HZXRPcmRlckBDRm9sZGVyQEBRQUVLWFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZvbGRlciAqIF9fdGhpc2NhbGwgQ0ZvbGRlcjo6R2V0UGFyZW50KHZvaWQpDQorP0dldFBhcmVudEBDRm9sZGVyQEBRQUVQQVYxQFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIENMb2NhdGlvbjo6R2V0UGF0aCh2b2lkKQ0KKz9HZXRQYXRoQENMb2NhdGlvbkBAUUFFUEFEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIENMb2NhdGlvbjo6R2V0UGF0aFcodm9pZCkNCis/R2V0UGF0aFdAQ0xvY2F0aW9uQEBRQUVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246OkdldFJlZlRpdGxlQ291bnQodm9pZCkNCis/R2V0UmVmVGl0bGVDb3VudEBDQ29sbGVjdGlvbkBAUUFFS1haDQorOyBwdWJsaWM6IGNsYXNzIENGb2xkZXIgKiBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpHZXRSb290Rm9sZGVyKHZvaWQpDQorP0dldFJvb3RGb2xkZXJAQ0NvbGxlY3Rpb25AQFFBRVBBVkNGb2xkZXJAQFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpHZXRTYW1wbGVMb2NhdGlvbih2b2lkKQ0KKz9HZXRTYW1wbGVMb2NhdGlvbkBDQ29sbGVjdGlvbkBAUUFFUEFEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpHZXRTYW1wbGVMb2NhdGlvblcodm9pZCkNCis/R2V0U2FtcGxlTG9jYXRpb25XQENDb2xsZWN0aW9uQEBRQUVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0ZJRk9TdHJpbmc6OkdldFRhaWwoY2hhciAqICopDQorP0dldFRhaWxAQ0ZJRk9TdHJpbmdAQFFBRUtQQVBBREBaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIENGb2xkZXI6OkdldFRpdGxlKHZvaWQpDQorP0dldFRpdGxlQENGb2xkZXJAQFFBRVBBRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIENMb2NhdGlvbjo6R2V0VGl0bGUodm9pZCkNCis/R2V0VGl0bGVAQ0xvY2F0aW9uQEBRQUVQQURYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgQ0ZvbGRlcjo6R2V0VGl0bGVXKHZvaWQpDQorP0dldFRpdGxlV0BDRm9sZGVyQEBRQUVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgQ0xvY2F0aW9uOjpHZXRUaXRsZVcodm9pZCkNCis/R2V0VGl0bGVXQENMb2NhdGlvbkBAUUFFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpHZXRWZXJzaW9uKHZvaWQpDQorP0dldFZlcnNpb25AQ0NvbGxlY3Rpb25AQFFBRUtYWg0KKzsgcHVibGljOiBjbGFzcyBDRm9sZGVyICogX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6R2V0VmlzYWJsZVJvb3RGb2xkZXIodm9pZCkNCis/R2V0VmlzYWJsZVJvb3RGb2xkZXJAQ0NvbGxlY3Rpb25AQFFBRVBBVkNGb2xkZXJAQFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIENMb2NhdGlvbjo6R2V0Vm9sdW1lKHZvaWQpDQorP0dldFZvbHVtZUBDTG9jYXRpb25AQFFBRVBBRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBDTG9jYXRpb246OkdldFZvbHVtZVcodm9pZCkNCis/R2V0Vm9sdW1lV0BDTG9jYXRpb25AQFFBRVBCR1haDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246OkhhbmRsZUNvbGxlY3Rpb24oY2xhc3MgQ1BhcnNlWE1MICosY2hhciAqKQ0KKz9IYW5kbGVDb2xsZWN0aW9uQENDb2xsZWN0aW9uQEBBQUVLUEFWQ1BhcnNlWE1MQEBQQURAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpIYW5kbGVDb2xsZWN0aW9uRW50cnkoY2xhc3MgQ1BhcnNlWE1MICosY2hhciAqKQ0KKz9IYW5kbGVDb2xsZWN0aW9uRW50cnlAQ0NvbGxlY3Rpb25AQEFBRUtQQVZDUGFyc2VYTUxAQFBBREBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246OkhhbmRsZUZvbGRlcihjbGFzcyBDUGFyc2VYTUwgKixjaGFyICopDQorP0hhbmRsZUZvbGRlckBDQ29sbGVjdGlvbkBAQUFFS1BBVkNQYXJzZVhNTEBAUEFEQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6SGFuZGxlTG9jYXRpb24oY2xhc3MgQ1BhcnNlWE1MICosY2hhciAqKQ0KKz9IYW5kbGVMb2NhdGlvbkBDQ29sbGVjdGlvbkBAQUFFS1BBVkNQYXJzZVhNTEBAUEFEQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6SGFuZGxlVGl0bGUoY2xhc3MgQ1BhcnNlWE1MICosY2hhciAqKQ0KKz9IYW5kbGVUaXRsZUBDQ29sbGVjdGlvbkBAQUFFS1BBVkNQYXJzZVhNTEBAUEFEQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpJbmNyZW1lbnRSZWZUaXRsZUNvdW50KHZvaWQpDQorP0luY3JlbWVudFJlZlRpdGxlQ291bnRAQ0NvbGxlY3Rpb25AQFFBRVhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6SXNEaXJ0eSh2b2lkKQ0KKz9Jc0RpcnR5QENDb2xsZWN0aW9uQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246Ok1lcmdlS2V5d29yZHMoY2hhciAqKQ0KKz9NZXJnZUtleXdvcmRzQENDb2xsZWN0aW9uQEBRQUVIUEFEQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246Ok1lcmdlS2V5d29yZHModW5zaWduZWQgc2hvcnQgKikNCis/TWVyZ2VLZXl3b3Jkc0BDQ29sbGVjdGlvbkBAUUFFSFBBR0BaDQorOyBwcml2YXRlOiBjbGFzcyBDTG9jYXRpb24gKiBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpOZXdMb2NhdGlvbih2b2lkKQ0KKz9OZXdMb2NhdGlvbkBDQ29sbGVjdGlvbkBAQUFFUEFWQ0xvY2F0aW9uQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgTG9jYXRpb25IaXN0b3J5ICogX190aGlzY2FsbCBDVGl0bGU6Ok5ld0xvY2F0aW9uSGlzdG9yeSh2b2lkKQ0KKz9OZXdMb2NhdGlvbkhpc3RvcnlAQ1RpdGxlQEBRQUVQQVVMb2NhdGlvbkhpc3RvcnlAQFhaDQorOyBwcml2YXRlOiBjbGFzcyBDVGl0bGUgKiBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpOZXdUaXRsZSh2b2lkKQ0KKz9OZXdUaXRsZUBDQ29sbGVjdGlvbkBAQUFFUEFWQ1RpdGxlQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgTGlzdEl0ZW0gKiBfX3RoaXNjYWxsIENQb2ludGVyTGlzdDo6TmV4dChzdHJ1Y3QgTGlzdEl0ZW0gKikNCis/TmV4dEBDUG9pbnRlckxpc3RAQFFBRVBBVUxpc3RJdGVtQEBQQVUyQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6T3BlbihjaGFyIGNvbnN0ICopDQorP09wZW5AQ0NvbGxlY3Rpb25AQFFBRUtQQkRAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246Ok9wZW4odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/T3BlbkBDQ29sbGVjdGlvbkBAUUFFS1BCR0BaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246OlBhcnNlRmlsZShjaGFyIGNvbnN0ICopDQorP1BhcnNlRmlsZUBDQ29sbGVjdGlvbkBAQUFFS1BCREBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246OlJlbGVhc2Uodm9pZCkNCis/UmVsZWFzZUBDQ29sbGVjdGlvbkBAQUFFS1haDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRklGT1N0cmluZzo6UmVtb3ZlQWxsKHZvaWQpDQorP1JlbW92ZUFsbEBDRklGT1N0cmluZ0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUG9pbnRlckxpc3Q6OlJlbW92ZUFsbCh2b2lkKQ0KKz9SZW1vdmVBbGxAQ1BvaW50ZXJMaXN0QEBRQUVYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENDb2xsZWN0aW9uOjpSZW1vdmVDb2xsZWN0aW9uKGludCkNCis/UmVtb3ZlQ29sbGVjdGlvbkBDQ29sbGVjdGlvbkBAUUFFS0hAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246OlJlbW92ZUNvbGxlY3Rpb25FbnRyeShjaGFyICopDQorP1JlbW92ZUNvbGxlY3Rpb25FbnRyeUBDQ29sbGVjdGlvbkBAUUFFWFBBREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6U2F2ZSh2b2lkKQ0KKz9TYXZlQENDb2xsZWN0aW9uQEBRQUVLWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGb2xkZXI6OlNldEV4VGl0bGVQdHIoY2xhc3MgQ0V4VGl0bGUgKikNCis/U2V0RXhUaXRsZVB0ckBDRm9sZGVyQEBRQUVYUEFWQ0V4VGl0bGVAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6U2V0RmluZE1lcmdlZENITVMoaW50KQ0KKz9TZXRGaW5kTWVyZ2VkQ0hNU0BDQ29sbGVjdGlvbkBAUUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0ZvbGRlcjo6U2V0Rmlyc3RDaGlsZEZvbGRlcihjbGFzcyBDRm9sZGVyICopDQorP1NldEZpcnN0Q2hpbGRGb2xkZXJAQ0ZvbGRlckBAUUFFWFBBVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMb2NhdGlvbjo6U2V0SWQoY2hhciBjb25zdCAqKQ0KKz9TZXRJZEBDTG9jYXRpb25AQFFBRVhQQkRAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xvY2F0aW9uOjpTZXRJZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRJZEBDTG9jYXRpb25AQFFBRVhQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1RpdGxlOjpTZXRJZChjaGFyIGNvbnN0ICopDQorP1NldElkQENUaXRsZUBAUUFFWFBCREBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDVGl0bGU6OlNldElkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldElkQENUaXRsZUBAUUFFWFBCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRm9sZGVyOjpTZXRMYW5ndWFnZSh1bnNpZ25lZCBzaG9ydCkNCis/U2V0TGFuZ3VhZ2VAQ0ZvbGRlckBAUUFFWEdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1RpdGxlOjpTZXRMYW5ndWFnZSh1bnNpZ25lZCBzaG9ydCkNCis/U2V0TGFuZ3VhZ2VAQ1RpdGxlQEBRQUVYR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6U2V0TWFzdGVyQ0hNKGNoYXIgY29uc3QgKix1bnNpZ25lZCBzaG9ydCkNCis/U2V0TWFzdGVyQ0hNQENDb2xsZWN0aW9uQEBRQUVYUEJER0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6U2V0TWFzdGVyQ0hNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQpDQorP1NldE1hc3RlckNITUBDQ29sbGVjdGlvbkBAUUFFWFBCR0dAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0ZvbGRlcjo6U2V0TmV4dEZvbGRlcihjbGFzcyBDRm9sZGVyICopDQorP1NldE5leHRGb2xkZXJAQ0ZvbGRlckBAUUFFWFBBVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMb2NhdGlvbjo6U2V0TmV4dExvY2F0aW9uKGNsYXNzIENMb2NhdGlvbiAqKQ0KKz9TZXROZXh0TG9jYXRpb25AQ0xvY2F0aW9uQEBRQUVYUEFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1RpdGxlOjpTZXROZXh0VGl0bGUoY2xhc3MgQ1RpdGxlICopDQorP1NldE5leHRUaXRsZUBDVGl0bGVAQFFBRVhQQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRm9sZGVyOjpTZXRPcmRlcih1bnNpZ25lZCBsb25nKQ0KKz9TZXRPcmRlckBDRm9sZGVyQEBRQUVYS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRm9sZGVyOjpTZXRQYXJlbnQoY2xhc3MgQ0ZvbGRlciAqKQ0KKz9TZXRQYXJlbnRAQ0ZvbGRlckBAUUFFWFBBVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMb2NhdGlvbjo6U2V0UGF0aChjaGFyIGNvbnN0ICopDQorP1NldFBhdGhAQ0xvY2F0aW9uQEBRQUVYUEJEQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMb2NhdGlvbjo6U2V0UGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRQYXRoQENMb2NhdGlvbkBAUUFFWFBCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6U2V0U2FtcGxlTG9jYXRpb24oY2hhciBjb25zdCAqKQ0KKz9TZXRTYW1wbGVMb2NhdGlvbkBDQ29sbGVjdGlvbkBAUUFFWFBCREBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6U2V0U2FtcGxlTG9jYXRpb24odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0U2FtcGxlTG9jYXRpb25AQ0NvbGxlY3Rpb25AQFFBRVhQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0ZvbGRlcjo6U2V0VGl0bGUoY2hhciBjb25zdCAqKQ0KKz9TZXRUaXRsZUBDRm9sZGVyQEBRQUVYUEJEQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGb2xkZXI6OlNldFRpdGxlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldFRpdGxlQENGb2xkZXJAQFFBRVhQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xvY2F0aW9uOjpTZXRUaXRsZShjaGFyIGNvbnN0ICopDQorP1NldFRpdGxlQENMb2NhdGlvbkBAUUFFWFBCREBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTG9jYXRpb246OlNldFRpdGxlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldFRpdGxlQENMb2NhdGlvbkBAUUFFWFBCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6U2V0VmVyc2lvbih1bnNpZ25lZCBsb25nKQ0KKz9TZXRWZXJzaW9uQENDb2xsZWN0aW9uQEBRQUVYS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTG9jYXRpb246OlNldFZvbHVtZShjaGFyIGNvbnN0ICopDQorP1NldFZvbHVtZUBDTG9jYXRpb25AQFFBRVhQQkRAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xvY2F0aW9uOjpTZXRWb2x1bWUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0Vm9sdW1lQENMb2NhdGlvbkBAUUFFWFBCR0BaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBDQ29sbGVjdGlvbjo6V3JpdGVGb2xkZXIoY2xhc3MgQ0ZvbGRlciAqICopDQorP1dyaXRlRm9sZGVyQENDb2xsZWN0aW9uQEBBQUVIUEFQQVZDRm9sZGVyQEBAWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246OldyaXRlRm9sZGVycyhjbGFzcyBDRm9sZGVyICogKikNCis/V3JpdGVGb2xkZXJzQENDb2xsZWN0aW9uQEBBQUVIUEFQQVZDRm9sZGVyQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRm9sZGVyOjpiSXNWaXNhYmxlKHZvaWQpDQorP2JJc1Zpc2FibGVAQ0ZvbGRlckBAUUFFSFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ0NvbGxlY3Rpb246Ondzc1Jlc2V0TmV4dENvbE51bSh2b2lkKQ0KKz93c3NSZXNldE5leHRDb2xOdW1AQ0NvbGxlY3Rpb25AQEFBRVhYWg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3doaWQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2hpZC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTJmZGI0YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3doaWQuZGVmCkBAIC0wLDAgKzEsNTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSElELkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBISUQuRExMDQorRVhQT1JUUw0KK0hpZERfRmx1c2hRdWV1ZQ0KK0hpZERfRnJlZVByZXBhcnNlZERhdGENCitIaWREX0dldEF0dHJpYnV0ZXMNCitIaWREX0dldENvbmZpZ3VyYXRpb24NCitIaWREX0dldEZlYXR1cmUNCitIaWREX0dldEhpZEd1aWQNCitIaWREX0dldEluZGV4ZWRTdHJpbmcNCitIaWREX0dldElucHV0UmVwb3J0DQorSGlkRF9HZXRNYW51ZmFjdHVyZXJTdHJpbmcNCitIaWREX0dldE1zR2VucmVEZXNjcmlwdG9yDQorSGlkRF9HZXROdW1JbnB1dEJ1ZmZlcnMNCitIaWREX0dldFBoeXNpY2FsRGVzY3JpcHRvcg0KK0hpZERfR2V0UHJlcGFyc2VkRGF0YQ0KK0hpZERfR2V0UHJvZHVjdFN0cmluZw0KK0hpZERfR2V0U2VyaWFsTnVtYmVyU3RyaW5nDQorSGlkRF9IZWxsbw0KK0hpZERfU2V0Q29uZmlndXJhdGlvbg0KK0hpZERfU2V0RmVhdHVyZQ0KK0hpZERfU2V0TnVtSW5wdXRCdWZmZXJzDQorSGlkRF9TZXRPdXRwdXRSZXBvcnQNCitIaWRQX0dldEJ1dHRvbkNhcHMNCitIaWRQX0dldENhcHMNCitIaWRQX0dldERhdGENCitIaWRQX0dldEV4dGVuZGVkQXR0cmlidXRlcw0KK0hpZFBfR2V0TGlua0NvbGxlY3Rpb25Ob2Rlcw0KK0hpZFBfR2V0U2NhbGVkVXNhZ2VWYWx1ZQ0KK0hpZFBfR2V0U3BlY2lmaWNCdXR0b25DYXBzDQorSGlkUF9HZXRTcGVjaWZpY1ZhbHVlQ2Fwcw0KK0hpZFBfR2V0VXNhZ2VWYWx1ZQ0KK0hpZFBfR2V0VXNhZ2VWYWx1ZUFycmF5DQorSGlkUF9HZXRVc2FnZXMNCitIaWRQX0dldFVzYWdlc0V4DQorSGlkUF9HZXRWYWx1ZUNhcHMNCitIaWRQX0luaXRpYWxpemVSZXBvcnRGb3JJRA0KK0hpZFBfTWF4RGF0YUxpc3RMZW5ndGgNCitIaWRQX01heFVzYWdlTGlzdExlbmd0aA0KK0hpZFBfU2V0RGF0YQ0KK0hpZFBfU2V0U2NhbGVkVXNhZ2VWYWx1ZQ0KK0hpZFBfU2V0VXNhZ2VWYWx1ZQ0KK0hpZFBfU2V0VXNhZ2VWYWx1ZUFycmF5DQorSGlkUF9TZXRVc2FnZXMNCitIaWRQX1RyYW5zbGF0ZVVzYWdlc1RvSTgwNDJTY2FuQ29kZXMNCitIaWRQX1Vuc2V0VXNhZ2VzDQorSGlkUF9Vc2FnZUxpc3REaWZmZXJlbmNlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2hpZHNlcnYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2hpZHNlcnYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY3YmZhMzMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aGlkc2Vydi5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBISURTRVJWLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBISURTRVJWLmRsbA0KK0VYUE9SVFMNCitJbnN0YWxsSGlkc2Vydg0KK1NlcnZpY2VNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2hsaW5rLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dobGluay5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2YzMDEzMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dobGluay5kZWYKQEAgLTAsMCArMSw0MCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBobGluay5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaGxpbmsuZGxsDQorRVhQT1JUUw0KK0hsaW5rQ3JlYXRlRnJvbU1vbmlrZXINCitIbGlua0NyZWF0ZUZyb21TdHJpbmcNCitIbGlua0NyZWF0ZUZyb21EYXRhDQorSGxpbmtDcmVhdGVCcm93c2VDb250ZXh0DQorSGxpbmtDbG9uZQ0KK0hsaW5rTmF2aWdhdGVUb1N0cmluZ1JlZmVyZW5jZQ0KK0hsaW5rT25OYXZpZ2F0ZQ0KK0hsaW5rTmF2aWdhdGUNCitIbGlua1VwZGF0ZVN0YWNrSXRlbQ0KK0hsaW5rT25SZW5hbWVEb2N1bWVudA0KK0RsbENhblVubG9hZE5vdw0KK0hsaW5rUmVzb2x2ZU1vbmlrZXJGb3JEYXRhDQorSGxpbmtSZXNvbHZlU3RyaW5nRm9yRGF0YQ0KK09sZVNhdmVUb1N0cmVhbUV4DQorRGxsR2V0Q2xhc3NPYmplY3QNCitIbGlua1BhcnNlRGlzcGxheU5hbWUNCitEbGxSZWdpc3RlclNlcnZlcg0KK0hsaW5rUXVlcnlDcmVhdGVGcm9tRGF0YQ0KK0hsaW5rU2V0U3BlY2lhbFJlZmVyZW5jZQ0KK0hsaW5rR2V0U3BlY2lhbFJlZmVyZW5jZQ0KK0hsaW5rQ3JlYXRlU2hvcnRjdXQNCitIbGlua1Jlc29sdmVTaG9ydGN1dA0KK0hsaW5rSXNTaG9ydGN1dA0KK0hsaW5rUmVzb2x2ZVNob3J0Y3V0VG9TdHJpbmcNCitIbGlua0NyZWF0ZVNob3J0Y3V0RnJvbVN0cmluZw0KK0hsaW5rR2V0VmFsdWVGcm9tUGFyYW1zDQorSGxpbmtDcmVhdGVTaG9ydGN1dEZyb21Nb25pa2VyDQorSGxpbmtSZXNvbHZlU2hvcnRjdXRUb01vbmlrZXINCitIbGlua1RyYW5zbGF0ZVVSTA0KK0hsaW5rQ3JlYXRlRXh0ZW5zaW9uU2VydmljZXMNCitIbGlua1ByZXByb2Nlc3NNb25pa2VyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dobmV0Y2ZnLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dobmV0Y2ZnLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YjgyNDA3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2huZXRjZmcuZGVmCkBAIC0wLDAgKzEsNTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSE5ldENmZy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSE5ldENmZy5kbGwNCitFWFBPUlRTDQorSE5ldERlbGV0ZVJhc0Nvbm5lY3Rpb24NCitITmV0RnJlZVNoYXJpbmdTZXJ2aWNlc1BhZ2UNCitITmV0R2V0U2hhcmluZ1NlcnZpY2VzUGFnZQ0KK1dpbkJvbUNvbmZpZ3VyZVdpbmRvd3NGaXJld2FsbA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorSE5ldEZyZWVGaXJld2FsbExvZ2dpbmdTZXR0aW5ncw0KK0hOZXRHZXRGaXJld2FsbFNldHRpbmdzUGFnZQ0KK0hOZXRHZXRTaGFyZUFuZEJyaWRnZVNldHRpbmdzDQorSE5ldFNldFNoYXJlQW5kQnJpZGdlU2V0dGluZ3MNCitITmV0U2hhcmVkQWNjZXNzU2V0dGluZ3NEbGcNCitITmV0U2hhcmluZ0FuZEZpcmV3YWxsU2V0dGluZ3NEbGcNCitJY2ZDaGFuZ2VOb3RpZmljYXRpb25DcmVhdGUNCitJY2ZDaGFuZ2VOb3RpZmljYXRpb25EZXN0cm95DQorSWNmQ2hlY2tBcHBBdXRob3JpemF0aW9uDQorSWNmQ2xvc2VEeW5hbWljRndQb3J0DQorSWNmQ29ubmVjdA0KK0ljZkRpc2Nvbm5lY3QNCitJY2ZGcmVlQWRhcHRlcnMNCitJY2ZGcmVlRHluYW1pY0Z3UG9ydHMNCitJY2ZGcmVlUHJvZmlsZQ0KK0ljZkZyZWVTdHJpbmcNCitJY2ZGcmVlVGlja2V0cw0KK0ljZkdldEFkYXB0ZXJzDQorSWNmR2V0Q3VycmVudFByb2ZpbGVUeXBlDQorSWNmR2V0RHluYW1pY0Z3UG9ydHMNCitJY2ZHZXRPcGVyYXRpb25hbE1vZGUNCitJY2ZHZXRQcm9maWxlDQorSWNmR2V0VGlja2V0cw0KK0ljZklzSWNtcFR5cGVBbGxvd2VkDQorSWNmSXNQb3J0QWxsb3dlZA0KK0ljZk9wZW5EeW5hbWljRndQb3J0DQorSWNmT3BlbkR5bmFtaWNGd1BvcnRXaXRob3V0U29ja2V0DQorSWNmT3BlbkZpbGVTaGFyaW5nUG9ydHMNCitJY2ZSZWZyZXNoUG9saWN5DQorSWNmUmVtb3ZlRGlzYWJsZWRBdXRob3JpemVkQXBwDQorSWNmU2V0UHJvZmlsZQ0KK0ljZlNldFNlcnZpY2VQZXJtaXNzaW9uDQorSWNmU3ViTmV0c0dldFNjb3BlDQorSWNmU3ViTmV0c0lzU3RyaW5nVmFsaWQNCitJY2ZTdWJOZXRzVG9TdHJpbmcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aG5ldG1vbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aG5ldG1vbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzIxZmQ3NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dobmV0bW9uLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaG5ldG1vbi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaG5ldG1vbi5kbGwNCitFWFBPUlRTDQorSW5pdEhlbHBlckRsbA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3docnR6LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3docnR6LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMjlhZmQzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2hydHouZGVmCkBAIC0wLDAgKzEsMjEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSGVhcnRzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBIZWFydHMuZGxsDQorRVhQT1JUUw0KK1pvbmVDbGllbnRNYWluDQorWm9uZUNsaWVudEV4aXQNCitab25lQ2xpZW50R2FtZUFkZEtpYml0emVyDQorWm9uZUNsaWVudEdhbWVEZWxldGUNCitab25lQ2xpZW50R2FtZU5ldw0KK1pvbmVDbGllbnRHYW1lUHJvY2Vzc01lc3NhZ2UNCitab25lQ2xpZW50R2FtZVJlbW92ZUtpYml0emVyDQorWm9uZUNsaWVudEludGVybmFsTmFtZQ0KK1pvbmVDbGllbnRNZXNzYWdlSGFuZGxlcg0KK1pvbmVDbGllbnROYW1lDQorWm9uZUNsaWVudFZlcnNpb24NCitab25lR2FtZURsbERlbGV0ZQ0KK1pvbmVHYW1lRGxsSW5pdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3doc2ZfaW5zdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aHNmX2luc3QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI1MTkyYWIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aHNmX2luc3QuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSFNGX0lOU1QuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEhTRl9JTlNULmRsbA0KK0VYUE9SVFMNCitIU0ZDb0luc3RhbGxlcg0KK1BEQ0NvSW5zdGFsbGVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2h0dHBhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2h0dHBhcGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI2ZTM5N2MKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aHR0cGFwaS5kZWYKQEAgLTAsMCArMSw1MyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBIVFRQQVBJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBIVFRQQVBJLmRsbA0KK0VYUE9SVFMNCitIdHRwQWRkRnJhZ21lbnRUb0NhY2hlDQorSHR0cEFkZFVybA0KK0h0dHBBZGRVcmxUb0NvbmZpZ0dyb3VwDQorSHR0cENyZWF0ZUFwcFBvb2wNCitIdHRwQ3JlYXRlQ29uZmlnR3JvdXANCitIdHRwQ3JlYXRlRmlsdGVyDQorSHR0cENyZWF0ZUh0dHBIYW5kbGUNCitIdHRwRGVsZXRlQ29uZmlnR3JvdXANCitIdHRwRGVsZXRlU2VydmljZUNvbmZpZ3VyYXRpb24NCitIdHRwRmlsdGVyQWNjZXB0DQorSHR0cEZpbHRlckFwcFJlYWQNCitIdHRwRmlsdGVyQXBwV3JpdGUNCitIdHRwRmlsdGVyQXBwV3JpdGVBbmRSYXdSZWFkDQorSHR0cEZpbHRlckNsb3NlDQorSHR0cEZpbHRlclJhd1JlYWQNCitIdHRwRmlsdGVyUmF3V3JpdGUNCitIdHRwRmlsdGVyUmF3V3JpdGVBbmRBcHBSZWFkDQorSHR0cEZsdXNoUmVzcG9uc2VDYWNoZQ0KK0h0dHBHZXRDb3VudGVycw0KK0h0dHBJbml0aWFsaXplDQorSHR0cE9wZW5BcHBQb29sDQorSHR0cE9wZW5Db250cm9sQ2hhbm5lbA0KK0h0dHBPcGVuRmlsdGVyDQorSHR0cFF1ZXJ5QXBwUG9vbEluZm9ybWF0aW9uDQorSHR0cFF1ZXJ5Q29uZmlnR3JvdXBJbmZvcm1hdGlvbg0KK0h0dHBRdWVyeUNvbnRyb2xDaGFubmVsSW5mb3JtYXRpb24NCitIdHRwUXVlcnlTZXJ2aWNlQ29uZmlndXJhdGlvbg0KK0h0dHBSZWFkRnJhZ21lbnRGcm9tQ2FjaGUNCitIdHRwUmVjZWl2ZUNsaWVudENlcnRpZmljYXRlDQorSHR0cFJlY2VpdmVIdHRwUmVxdWVzdA0KK0h0dHBSZWNlaXZlUmVxdWVzdEVudGl0eUJvZHkNCitIdHRwUmVtb3ZlQWxsVXJsc0Zyb21Db25maWdHcm91cA0KK0h0dHBSZW1vdmVVcmwNCitIdHRwUmVtb3ZlVXJsRnJvbUNvbmZpZ0dyb3VwDQorSHR0cFNlbmRIdHRwUmVzcG9uc2UNCitIdHRwU2VuZFJlc3BvbnNlRW50aXR5Qm9keQ0KK0h0dHBTZXRBcHBQb29sSW5mb3JtYXRpb24NCitIdHRwU2V0Q29uZmlnR3JvdXBJbmZvcm1hdGlvbg0KK0h0dHBTZXRDb250cm9sQ2hhbm5lbEluZm9ybWF0aW9uDQorSHR0cFNldFNlcnZpY2VDb25maWd1cmF0aW9uDQorSHR0cFNodXRkb3duQXBwUG9vbA0KK0h0dHBTaHV0ZG93bkZpbHRlcg0KK0h0dHBUZXJtaW5hdGUNCitIdHRwV2FpdEZvckRlbWFuZFN0YXJ0DQorSHR0cFdhaXRGb3JEaXNjb25uZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2h0dHBleHQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2h0dHBleHQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdjZjJkOTYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aHR0cGV4dC5kZWYKQEAgLTAsMCArMSwxNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBIVFRQRVhULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBIVFRQRVhULmRsbA0KK0VYUE9SVFMNCitHZXRFeHRlbnNpb25WZXJzaW9uDQorSHR0cEV4dGVuc2lvblByb2MNCitUZXJtaW5hdGVFeHRlbnNpb24NCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dodHRwbWliLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dodHRwbWliLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wOGMwODczCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2h0dHBtaWIuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSFRUUE1JQi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSFRUUE1JQi5kbGwNCitFWFBPUlRTDQorRGxsTGliTWFpbg0KK1NubXBFeHRlbnNpb25Jbml0DQorU25tcEV4dGVuc2lvblF1ZXJ5DQorU25tcEV4dGVuc2lvblRyYXANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aHR0cG9kYmMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2h0dHBvZGJjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMThkNmYxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2h0dHBvZGJjLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEhUVFBPREJDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBIVFRQT0RCQy5kbGwNCitFWFBPUlRTDQorR2V0RXh0ZW5zaW9uVmVyc2lvbg0KK0h0dHBFeHRlbnNpb25Qcm9jDQorVGVybWluYXRlRXh0ZW5zaW9uDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2h0dWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2h0dWkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQwNTI3ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aHR1aS5kZWYKQEAgLTAsMCArMSwxNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBodFVJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBodFVJLmRsbA0KK0VYUE9SVFMNCitEbGxNYWluDQorSFRVSV9Db2xvckFkanVzdG1lbnQNCitIVFVJX0NvbG9yQWRqdXN0bWVudEENCitIVFVJX0NvbG9yQWRqdXN0bWVudFcNCitIVFVJX0RldmljZUNvbG9yQWRqdXN0bWVudA0KK0hUVUlfRGV2aWNlQ29sb3JBZGp1c3RtZW50QQ0KK0hUVUlfRGV2aWNlQ29sb3JBZGp1c3RtZW50Vw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpYWRlZnVpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpYWRlZnVpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wODY3YjE1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lhZGVmdWkuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgd2lhZGVmdWkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHdpYWRlZnVpLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpYWRzcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWFkc3MuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRiOWFmMTMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aWFkc3MuZGVmCkBAIC0wLDAgKzEsMzkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgV0lBRFNTLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXSUFEU1MuRExMDQorRVhQT1JUUw0KK0ZpbmRGaXJzdEltcG9ydERTDQorRmluZE5leHRJbXBvcnREUw0KK0Nsb3NlRmluZENvbnRleHQNCitMb2FkSW1wb3J0RFMNCitVbmxvYWRJbXBvcnREUw0KK0dldExvYWRlclN0YXR1cw0KK0ZpbmRJbXBvcnREU0J5RGV2aWNlTmFtZQ0KKzsgcHVibGljOiBfX2NkZWNsIEJVRkZFUjo6QlVGRkVSKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MEJVRkZFUkBAUUVBQUBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBCVUZGRVJfQ0hBSU46OkJVRkZFUl9DSEFJTih2b2lkKSBfX3B0cjY0DQorPz8wQlVGRkVSX0NIQUlOQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlVGRkVSX0NIQUlOX0lURU06OkJVRkZFUl9DSEFJTl9JVEVNKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MEJVRkZFUl9DSEFJTl9JVEVNQEBRRUFBQElAWg0KKzsgcHVibGljOiBfX2NkZWNsIEJVRkZFUjo6fkJVRkZFUih2b2lkKSBfX3B0cjY0DQorPz8xQlVGRkVSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlVGRkVSX0NIQUlOOjp+QlVGRkVSX0NIQUlOKHZvaWQpIF9fcHRyNjQNCis/PzFCVUZGRVJfQ0hBSU5AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCVUZGRVJfQ0hBSU5fSVRFTTo6fkJVRkZFUl9DSEFJTl9JVEVNKHZvaWQpIF9fcHRyNjQNCis/PzFCVUZGRVJfQ0hBSU5fSVRFTUBAUUVBQUBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQlVGRkVSOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkJVRkZFUkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQlVGRkVSX0NIQUlOX0lURU06OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GQlVGRkVSX0NIQUlOX0lURU1AQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBCVUZGRVI6OlF1ZXJ5UHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQdHJAQlVGRkVSQEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIEJVRkZFUjo6UXVlcnlTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTaXplQEJVRkZFUkBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQlVGRkVSX0NIQUlOX0lURU06OlF1ZXJ5VXNlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VXNlZEBCVUZGRVJfQ0hBSU5fSVRFTUBAUUVCQUtYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQlVGRkVSX0NIQUlOX0lURU06OlNldFVzZWQodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRVc2VkQEJVRkZFUl9DSEFJTl9JVEVNQEBRRUFBWEtAWg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpYXJwYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWFycGMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMyM2ZiMjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aWFycGMuZGVmCkBAIC0wLDAgKzEsMzQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgd2lhcnBjLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSB3aWFycGMuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIEJVRkZFUjo6QlVGRkVSKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MEJVRkZFUkBAUUVBQUBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBCVUZGRVJfQ0hBSU46OkJVRkZFUl9DSEFJTih2b2lkKSBfX3B0cjY0DQorPz8wQlVGRkVSX0NIQUlOQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlVGRkVSX0NIQUlOX0lURU06OkJVRkZFUl9DSEFJTl9JVEVNKHVuc2lnbmVkIGludCkgX19wdHI2NA0KKz8/MEJVRkZFUl9DSEFJTl9JVEVNQEBRRUFBQElAWg0KKzsgcHVibGljOiBfX2NkZWNsIEJVRkZFUjo6fkJVRkZFUih2b2lkKSBfX3B0cjY0DQorPz8xQlVGRkVSQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlVGRkVSX0NIQUlOOjp+QlVGRkVSX0NIQUlOKHZvaWQpIF9fcHRyNjQNCis/PzFCVUZGRVJfQ0hBSU5AQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBCVUZGRVJfQ0hBSU5fSVRFTTo6fkJVRkZFUl9DSEFJTl9JVEVNKHZvaWQpIF9fcHRyNjQNCis/PzFCVUZGRVJfQ0hBSU5fSVRFTUBAUUVBQUBYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQlVGRkVSOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkJVRkZFUkBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQlVGRkVSX0NIQUlOX0lURU06OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GQlVGRkVSX0NIQUlOX0lURU1AQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBCVUZGRVI6OlF1ZXJ5UHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlQdHJAQlVGRkVSQEBRRUJBUEVBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX2NkZWNsIEJVRkZFUjo6UXVlcnlTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/UXVlcnlTaXplQEJVRkZFUkBAUUVCQUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQlVGRkVSX0NIQUlOX0lURU06OlF1ZXJ5VXNlZCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5VXNlZEBCVUZGRVJfQ0hBSU5fSVRFTUBAUUVCQUtYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQlVGRkVSX0NIQUlOX0lURU06OlNldFVzZWQodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRVc2VkQEJVRkZFUl9DSEFJTl9JVEVNQEBRRUFBWEtAWg0KK1dpYUV2ZW50c0luaXRpYWxpemUNCitXaWFFdmVudHNUZXJtaW5hdGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aWFzYWNjdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWFzYWNjdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGRkZTcyMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpYXNhY2N0LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGlhc2FjY3QuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlhc2FjY3QuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lhc2Fkcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWFzYWRzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMTQ5ZDE1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lhc2Fkcy5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpYXNhZHMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlhc2Fkcy5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aWFzY3IuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lhc2NyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNjVlZDZhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lhc2NyLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHdpYXNjci5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgd2lhc2NyLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpYXNlcnZjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpYXNlcnZjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNDM0MTdmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lhc2VydmMuZGVmCkBAIC0wLDAgKzEsOTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgd2lhc2VydmMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHdpYXNlcnZjLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX19jZGVjbCBCVUZGRVI6OkJVRkZFUih1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBCVUZGRVJAQFFFQUFASUBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlVGRkVSX0NIQUlOOjpCVUZGRVJfQ0hBSU4odm9pZCkgX19wdHI2NA0KKz8/MEJVRkZFUl9DSEFJTkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEJVRkZFUl9DSEFJTl9JVEVNOjpCVUZGRVJfQ0hBSU5fSVRFTSh1bnNpZ25lZCBpbnQpIF9fcHRyNjQNCis/PzBCVUZGRVJfQ0hBSU5fSVRFTUBAUUVBQUBJQFoNCis7IHB1YmxpYzogX19jZGVjbCBCVUZGRVI6On5CVUZGRVIodm9pZCkgX19wdHI2NA0KKz8/MUJVRkZFUkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIEJVRkZFUl9DSEFJTjo6fkJVRkZFUl9DSEFJTih2b2lkKSBfX3B0cjY0DQorPz8xQlVGRkVSX0NIQUlOQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQlVGRkVSX0NIQUlOX0lURU06On5CVUZGRVJfQ0hBSU5fSVRFTSh2b2lkKSBfX3B0cjY0DQorPz8xQlVGRkVSX0NIQUlOX0lURU1AQFFFQUFAWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEJVRkZFUjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZCVUZGRVJAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIEJVRkZFUl9DSEFJTl9JVEVNOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkJVRkZFUl9DSEFJTl9JVEVNQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQlVGRkVSOjpRdWVyeVB0cih2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5UHRyQEJVRkZFUkBAUUVCQVBFQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX19jZGVjbCBCVUZGRVI6OlF1ZXJ5U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1F1ZXJ5U2l6ZUBCVUZGRVJAQFFFQkFJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIEJVRkZFUl9DSEFJTl9JVEVNOjpRdWVyeVVzZWQodm9pZCljb25zdCAgX19wdHI2NA0KKz9RdWVyeVVzZWRAQlVGRkVSX0NIQUlOX0lURU1AQFFFQkFLWFoNCitTZXJ2aWNlTWFpbg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQlVGRkVSX0NIQUlOX0lURU06OlNldFVzZWQodW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz9TZXRVc2VkQEJVRkZFUl9DSEFJTl9JVEVNQEBRRUFBWEtAWg0KK1N2Y2hvc3RQdXNoU2VydmljZUdsb2JhbHMNCitEbGxFbnRyeVBvaW50DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQord2lhc0NyZWF0ZUNoaWxkQXBwSXRlbQ0KK3dpYXNDcmVhdGVEcnZJdGVtDQord2lhc0NyZWF0ZUxvZ0luc3RhbmNlDQord2lhc0NyZWF0ZVByb3BDb250ZXh0DQord2lhc0RlYnVnRXJyb3INCit3aWFzRGVidWdUcmFjZQ0KK3dpYXNEb3duU2FtcGxlQnVmZmVyDQord2lhc0Zvcm1hdEFyZ3MNCit3aWFzRnJlZVByb3BDb250ZXh0DQord2lhc0dldENoYW5nZWRWYWx1ZUZsb2F0DQord2lhc0dldENoYW5nZWRWYWx1ZUd1aWQNCit3aWFzR2V0Q2hhbmdlZFZhbHVlTG9uZw0KK3dpYXNHZXRDaGFuZ2VkVmFsdWVTdHINCit3aWFzR2V0Q2hpbGRyZW5Db250ZXh0cw0KK3dpYXNHZXRDb250ZXh0RnJvbU5hbWUNCit3aWFzR2V0RHJ2SXRlbQ0KK3dpYXNHZXRJbWFnZUluZm9ybWF0aW9uDQord2lhc0dldEl0ZW1UeXBlDQord2lhc0dldFByb3BlcnR5QXR0cmlidXRlcw0KK3dpYXNHZXRSb290SXRlbQ0KK3dpYXNJc1Byb3BDaGFuZ2VkDQord2lhc1BhcnNlRW5kb3JzZXJTdHJpbmcNCit3aWFzUHJpbnREZWJ1Z0hSZXN1bHQNCit3aWFzUXVldWVFdmVudA0KK3dpYXNSZWFkTXVsdGlwbGUNCit3aWFzUmVhZFByb3BCaW4NCit3aWFzUmVhZFByb3BGbG9hdA0KK3dpYXNSZWFkUHJvcEd1aWQNCit3aWFzUmVhZFByb3BMb25nDQord2lhc1JlYWRQcm9wU3RyDQord2lhc1NlbmRFbmRPZlBhZ2UNCit3aWFzU2V0SXRlbVByb3BBdHRyaWJzDQord2lhc1NldEl0ZW1Qcm9wTmFtZXMNCit3aWFzU2V0UHJvcENoYW5nZWQNCit3aWFzU2V0UHJvcGVydHlBdHRyaWJ1dGVzDQord2lhc1NldFZhbGlkRmxhZw0KK3dpYXNTZXRWYWxpZExpc3RGbG9hdA0KK3dpYXNTZXRWYWxpZExpc3RHdWlkDQord2lhc1NldFZhbGlkTGlzdExvbmcNCit3aWFzU2V0VmFsaWRMaXN0U3RyDQord2lhc1NldFZhbGlkUmFuZ2VGbG9hdA0KK3dpYXNTZXRWYWxpZFJhbmdlTG9uZw0KK3dpYXNVcGRhdGVTY2FuUmVjdA0KK3dpYXNVcGRhdGVWYWxpZEZvcm1hdA0KK3dpYXNWYWxpZGF0ZUl0ZW1Qcm9wZXJ0aWVzDQord2lhc1dyaXRlQnVmVG9GaWxlDQord2lhc1dyaXRlTXVsdGlwbGUNCit3aWFzV3JpdGVQYWdlQnVmVG9GaWxlDQord2lhc1dyaXRlUHJvcEJpbg0KK3dpYXNXcml0ZVByb3BGbG9hdA0KK3dpYXNXcml0ZVByb3BHdWlkDQord2lhc1dyaXRlUHJvcExvbmcNCit3aWFzV3JpdGVQcm9wU3RyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lhc2hleHQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lhc2hleHQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYwZjZmZDYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aWFzaGV4dC5kZWYKQEAgLTAsMCArMSwxNyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB3aWFzaGV4dC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgd2lhc2hleHQuZGxsDQorRVhQT1JUUw0KK0FkZERldmljZVdhc0Nob3Nlbg0KK0FkZERldmljZVdhc0Nob3NlbkENCitBZGREZXZpY2VXYXNDaG9zZW5XDQorTWFrZUZ1bGxQaWRsRm9yRGV2aWNlDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitEb0RlbGV0ZUFsbEl0ZW1zDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lhc2hscHIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lhc2hscHIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgyZjZlMDIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aWFzaGxwci5kZWYKQEAgLTAsMCArMSwyMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpYXNobHByLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpYXNobHByLmRsbA0KK0VYUE9SVFMNCitBbGxvY2F0ZUF0dHJpYnV0ZXMNCitDb25maWd1cmVJYXMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0RvUmVxdWVzdA0KK0ZyZWVBdHRyaWJ1dGVzDQorSW5pdGlhbGl6ZUlhcw0KK01lbUFsbG9jSWFzDQorTWVtRnJlZUlhcw0KK01lbVJlYWxsb2NJYXMNCitTaHV0ZG93bklhcw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpYXNuYXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lhc25hcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzExNDg5YgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpYXNuYXAuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaWFzbmFwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpYXNuYXAuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lhc3BvbGN5LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpYXNwb2xjeS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmVjOWJmNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpYXNwb2xjeS5kZWYKQEAgLTAsMCArMSwxNyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpYXNwb2xjeS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaWFzcG9sY3kuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorSUFTQXR0cmlidXRlQWRkUmVmDQorSUFTQXR0cmlidXRlQWxsb2MNCitJQVNBdHRyaWJ1dGVBbnNpQWxsb2MNCitJQVNBdHRyaWJ1dGVSZWxlYXNlDQorSUFTQXR0cmlidXRlVW5pY29kZUFsbG9jDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lhc3JhZC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWFzcmFkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZmRhMDE0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lhc3JhZC5kZWYKQEAgLTAsMCArMSwyMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpYXNyYWQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlhc3JhZC5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBWU0FGaWx0ZXI6OmluaXRpYWxpemUodm9pZCkNCis/aW5pdGlhbGl6ZUBWU0FGaWx0ZXJAQFFBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVlNBRmlsdGVyOjpyYWRpdXNGcm9tSUFTKHN0cnVjdCBJQXR0cmlidXRlc1JhdyAqKWNvbnN0IA0KKz9yYWRpdXNGcm9tSUFTQFZTQUZpbHRlckBAUUJFSlBBVUlBdHRyaWJ1dGVzUmF3QEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVlNBRmlsdGVyOjpyYWRpdXNUb0lBUyh1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyxjbGFzcyBJQVNUTDo6SUFTQXR0cmlidXRlVmVjdG9yICYpY29uc3QgDQorP3JhZGl1c1RvSUFTQFZTQUZpbHRlckBAUUJFSlBBRUtBQVZJQVNBdHRyaWJ1dGVWZWN0b3JASUFTVExAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBWU0FGaWx0ZXI6OnJhZGl1c1RvSUFTKHN0cnVjdCBJQXR0cmlidXRlc1JhdyAqKWNvbnN0IA0KKz9yYWRpdXNUb0lBU0BWU0FGaWx0ZXJAQFFCRUpQQVVJQXR0cmlidXRlc1Jhd0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFZTQUZpbHRlcjo6c2h1dGRvd24odm9pZCkNCis/c2h1dGRvd25AVlNBRmlsdGVyQEBRQUVKWFoNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpYXNyZWNzdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWFzcmVjc3QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNlNDcyMjUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aWFzcmVjc3QuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaWFzcmVjc3QuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlhc3JlY3N0LmRsbA0KK0VYUE9SVFMNCitTZXJ2aWNlTWFpbg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lhc3NhbS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWFzc2FtLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41M2YxNGQzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lhc3NhbS5kZWYKQEAgLTAsMCArMSwxNyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpYXNzYW0uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlhc3NhbS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitJQVNQYXJtc0ZyZWVVc2VyUGFybXMNCitJQVNQYXJtc1F1ZXJ5UmFzVXNlcjANCitJQVNQYXJtc1F1ZXJ5VXNlclByb3BlcnR5DQorSUFTUGFybXNTZXRSYXNVc2VyMA0KK0lBU1Bhcm1zU2V0VXNlclByb3BlcnR5DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lhc3Nkby5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWFzc2RvLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YmY3MDgyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lhc3Nkby5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpYXNzZG8uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlhc3Nkby5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aWFzc3Zjcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWFzc3Zjcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTA2MDZmMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpYXNzdmNzLmRlZgpAQCAtMCwwICsxLDMwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGlhc3N2Y3MuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlhc3N2Y3MuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorSUFTQWRsZXIzMg0KK0lBU0FsbG9jYXRlVW5pcXVlSUQNCitJQVNHZXREaWN0aW9uYXJ5DQorSUFTR2V0SG9zdEJ5TmFtZQ0KK0lBU0dldExvY2FsRGljdGlvbmFyeQ0KK0lBU0dldFByb2R1Y3RMaW1pdHMNCitJQVNHbG9iYWxMb2NrDQorSUFTR2xvYmFsVW5sb2NrDQorSUFTSW5pdGlhbGl6ZQ0KK0lBU1JhZGl1c0NyeXB0DQorSUFTUmVnaXN0ZXJDb21wb25lbnQNCitJQVNSZXBvcnRFdmVudA0KK0lBU1JlcG9ydExpY2Vuc2VWaW9sYXRpb24NCitJQVNSZXF1ZXN0VGhyZWFkDQorSUFTU2V0TWF4TnVtYmVyT2ZUaHJlYWRzDQorSUFTU2V0TWF4VGhyZWFkSWRsZQ0KK0lBU1VuaW5pdGlhbGl6ZQ0KK0lBU1ZhcmlhbnRDaGFuZ2VUeXBlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lhdmlkZW8uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lhdmlkZW8uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ0NTIzOWIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aWF2aWRlby5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBXaWFWaWRlby5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgV2lhVmlkZW8uRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lhdnVzZC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWF2dXNkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NmM2ZWJhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lhdnVzZC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB3aWF2dXNkLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSB3aWF2dXNkLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpY2ZnbnQ1LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpY2ZnbnQ1LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41ZWI5ZGJmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2ljZmdudDUuZGVmCkBAIC0wLDAgKzEsMjMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSUNGR05ULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJQ0ZHTlQuZGxsDQorRVhQT1JUUw0KK0ljZmdJbnN0YWxsTW9kZW0NCitJY2ZnTmVlZE1vZGVtDQorSWNmZ1NldEluc3RhbGxTb3VyY2VQYXRoDQorSW5ldFNldEF1dG9kaWFsDQorSW5ldFNldEF1dG9kaWFsQWRkcmVzcw0KK0ljZmdHZXRMYXN0SW5zdGFsbEVycm9yVGV4dA0KK0ljZmdJbnN0YWxsSW5ldENvbXBvbmVudHMNCitJY2ZnSXNGaWxlU2hhcmluZ1R1cm5lZE9uDQorSWNmZ0lzR2xvYmFsRE5TDQorSWNmZ05lZWRJbmV0Q29tcG9uZW50cw0KK0ljZmdSZW1vdmVHbG9iYWxETlMNCitJY2ZnU3RhcnRTZXJ2aWNlcw0KK0ljZmdUdXJuT2ZmRmlsZVNoYXJpbmcNCitJbmV0R2V0QXV0b2RpYWwNCitJbmV0R2V0U3VwcG9ydGVkUGxhdGZvcm0NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aWNtMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2ljbTMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42OWRhYjA2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2ljbTMyLmRlZgpAQCAtMCwwICsxLDI5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElDTTMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJQ00zMi5kbGwNCitFWFBPUlRTDQorQ01DaGVja0NvbG9ycw0KK0NNQ2hlY2tDb2xvcnNJbkdhbXV0DQorQ01DaGVja1JHQnMNCitDTUNyZWF0ZURldmljZUxpbmtQcm9maWxlDQorQ01DcmVhdGVNdWx0aVByb2ZpbGVUcmFuc2Zvcm0NCitDTUNyZWF0ZVByb2ZpbGUNCitDTUNyZWF0ZVByb2ZpbGVXDQorQ01DcmVhdGVUcmFuc2Zvcm0NCitDTUNyZWF0ZVRyYW5zZm9ybUV4dA0KK0NNQ3JlYXRlVHJhbnNmb3JtRXh0Vw0KK0NNQ3JlYXRlVHJhbnNmb3JtVw0KK0NNRGVsZXRlVHJhbnNmb3JtDQorQ01HZXRJbmZvDQorQ01Jc1Byb2ZpbGVWYWxpZA0KK0NNVHJhbnNsYXRlQ29sb3JzDQorQ01UcmFuc2xhdGVSR0INCitDTVRyYW5zbGF0ZVJHQnMNCitDTVRyYW5zbGF0ZVJHQnNFeHQNCitDTUNvbnZlcnRDb2xvck5hbWVUb0luZGV4DQorQ01Db252ZXJ0SW5kZXhUb0NvbG9yTmFtZQ0KK0NNR2V0TmFtZWRQcm9maWxlSW5mbw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpY21wLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpY21wLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yZjQwNzYwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2ljbXAuZGVmCkBAIC0wLDAgKzEsMTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaWNtcC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaWNtcC5kbGwNCitFWFBPUlRTDQorSWNtcENsb3NlSGFuZGxlDQorSWNtcENyZWF0ZUZpbGUNCitJY21wUGFyc2VSZXBsaWVzDQorSWNtcFNlbmRFY2hvMg0KK0ljbXBTZW5kRWNobw0KK2RvX2VjaG9fcmVwDQorZG9fZWNob19yZXENCityZWdpc3Rlcl9pY21wDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2ljbXVpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpY211aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWMzZWFiYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpY211aS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJQ01VSS5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSUNNVUkuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorU2V0dXBDb2xvck1hdGNoaW5nQQ0KK1NldHVwQ29sb3JNYXRjaGluZ1cNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aWNvbmYzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWNvbmYzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDI2Zjg5MgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpY29uZjMyLmRlZgpAQCAtMCwwICsxLDE4IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGlDb25mMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlDb25mMzIuZGxsDQorRVhQT1JUUw0KK0NvRGV2aWNlSW5zdGFsbA0KK0RlY1JlZkNvdW50DQorSUNvbmZEbGdEb01vZGFsDQorSUNvbmZEbGdFbmQNCitJQ29uZkRsZ0luaXQNCitJQ29uZkRsZ1dyaXRlUmVnaXN0cnlEYXRhDQorSW5jUmVmQ291bnQNCitTcGlkQ2ZnRnVuYw0KK1dBTk1pbmlwb3J0Q29EZXZpY2VJbnN0YWxsDQoraUNvbmZOVEFkYXB0ZXJQcm9wUGFnZVByb3ZpZGVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2ljd2Nvbm4uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2ljd2Nvbm4uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNhMWViNmMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aWN3Y29ubi5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJQ1dDT05OLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJQ1dDT05OLmRsbA0KK0VYUE9SVFMNCitHZXRJQ1dDT05OVmVyc2lvbg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2ljd2RpYWwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2ljd2RpYWwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjliZDg4NTAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aWN3ZGlhbC5kZWYKQEAgLTAsMCArMSwxNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBBVVRPRElBTC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgQVVUT0RJQUwuZGxsDQorRVhQT1JUUw0KK0F1dG9EaWFsSGFuZGxlcg0KK0F1dG9EaWFsSW5pdA0KK1Jhc1NldEVudHJ5UHJvcGVydGllc1NjcmlwdFBhdGNoDQorRGlhbGluZ0Rvd25sb2FkRGlhbG9nDQorRGlhbGluZ0Vycm9yRGlhbG9nDQorSUNXR2V0UmFzRW50cnkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aWN3ZGwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2ljd2RsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ODc0Y2M2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2ljd2RsLmRlZgpAQCAtMCwwICsxLDE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGljd2RsLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpY3dkbC5kbGwNCitFWFBPUlRTDQorRG93bkxvYWRDYW5jZWwNCitEb3duTG9hZENsb3NlDQorRG93bkxvYWRFeGVjdXRlDQorRG93bkxvYWRJbml0DQorRG93bkxvYWRQcm9jZXNzDQorRG93bkxvYWRTZXRTdGF0dXNDYWxsYmFjaw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpY3doZWxwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpY3doZWxwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yODlkZWMzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2ljd2hlbHAuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaWN3aGVscC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaWN3aGVscC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aWN3cGhiay5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWN3cGhiay5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzJhYmZmMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpY3dwaGJrLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGljd3BoYmsuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGljd3BoYmsuZGxsDQorRVhQT1JUUw0KK0dldFN1cHBvcnROdW1iZXJzDQorX1BoYmtHZW5lcmljRGxnUHJvY0AxNg0KK1Bob25lQm9va0Rpc3BsYXlTaWduVXBOdW1iZXJzDQorUGhvbmVCb29rR2V0Q2Fub25pY2FsDQorUGhvbmVCb29rTG9hZA0KK1Bob25lQm9va01lcmdlQ2hhbmdlcw0KK1Bob25lQm9va1N1Z2dlc3ROdW1iZXJzDQorUGhvbmVCb29rVW5sb2FkDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2ljd3V0aWwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2ljd3V0aWwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYwYzNjMGMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aWN3dXRpbC5kZWYKQEAgLTAsMCArMSwxNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJQ1dVVElMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJQ1dVVElMLmRsbA0KK0VYUE9SVFMNCitSZWdpc3RlclNlcnZlcg0KK1VSTEFwcGVuZFF1ZXJ5UGFpcg0KK1VSTEVuY29kZQ0KK1VucmVnaXN0ZXJTZXJ2ZXINCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpZHEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lkcS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTBlN2RhYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpZHEuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSURRLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJRFEuZGxsDQorRVhQT1JUUw0KK0dldEV4dGVuc2lvblZlcnNpb24NCitIdHRwRXh0ZW5zaW9uUHJvYw0KK1Rlcm1pbmF0ZUV4dGVuc2lvbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpZWFrZW5nLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpZWFrZW5nLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YjFmNjk1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2llYWtlbmcuZGVmCkBAIC0wLDAgKzEsMTUyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElFQUtFTkcuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElFQUtFTkcuZGxsDQorRVhQT1JUUw0KK0FkZEFETUl0ZW1BDQorQWRkQURNSXRlbVcNCitCVG9vbGJhcl9FZGl0DQorQlRvb2xiYXJfSW5pdEENCitCVG9vbGJhcl9Jbml0Vw0KK0JUb29sYmFyX1JlbW92ZQ0KK0JUb29sYmFyX1NhdmVBDQorQlRvb2xiYXJfU2F2ZVcNCitCcm93c2VGb3JGaWxlQQ0KK0Jyb3dzZUZvckZpbGVXDQorQnJvd3NlRm9yRm9sZGVyQQ0KK0Jyb3dzZUZvckZvbGRlclcNCitCdWlsZFBhbGV0dGUNCitDYW5EZWxldGVBRE0NCitDaGVja0ZpZWxkDQorQ2hlY2tGb3JEdXBLZXlzDQorQ2hlY2tWZXJBDQorQ2hlY2tWZXJXDQorQ29weUFuaW1CbXBBDQorQ29weUFuaW1CbXBXDQorQ29weUh0dEZpbGVBDQorQ29weUh0dEZpbGVXDQorQ29weUxvZ29CbXBBDQorQ29weUxvZ29CbXBXDQorQ29weVdhbGxQYXBlckENCitDb3B5V2FsbFBhcGVyVw0KK0NyZWF0ZUFETVdpbmRvdw0KK0RlbGV0ZUFETUl0ZW1BDQorRGVsZXRlQURNSXRlbVcNCitEZWxldGVBRE1JdGVtc0ENCitEZWxldGVBRE1JdGVtc1cNCitEZWxldGVGYXZvcml0ZUENCitEZWxldGVGYXZvcml0ZVcNCitEZXN0cm95QURNV2luZG93DQorRGlzcGxheUFETUl0ZW0NCitEb1JlYm9vdA0KK0VuY29kZVNpZ25hdHVyZUENCitFbmNvZGVTaWduYXR1cmVXDQorRXJyb3JNZXNzYWdlQm94DQorRXhwb3J0RmF2b3JpdGVzQQ0KK0V4cG9ydEZhdm9yaXRlc1cNCitFeHBvcnRRdWlja0xpbmtzQQ0KK0V4cG9ydFF1aWNrTGlua3NXDQorRXhwb3J0UmVnS2V5MkluZkENCitFeHBvcnRSZWdLZXkySW5mVw0KK0V4cG9ydFJlZ1RyZWUySW5mQQ0KK0V4cG9ydFJlZ1RyZWUySW5mVw0KK0V4cG9ydFJlZ1ZhbHVlMkluZkENCitFeHBvcnRSZWdWYWx1ZTJJbmZXDQorR2VuZXJhdGVOZXdWZXJzaW9uU3RyQQ0KK0dlbmVyYXRlTmV3VmVyc2lvblN0clcNCitHZXRBZG1GaWxlTGlzdEENCitHZXRBZG1GaWxlTGlzdFcNCitHZXRBZG1XaW5kb3dIYW5kbGUNCitHZXRCYXNlRmlsZU5hbWVBDQorR2V0QmFzZUZpbGVOYW1lVw0KK0dldEZhdm9yaXRlVXJsQQ0KK0dldEZhdm9yaXRlVXJsVw0KK0dldEZhdm9yaXRlc0luZm9UaXBBDQorR2V0RmF2b3JpdGVzSW5mb1RpcFcNCitHZXRGYXZvcml0ZXNNYXhOdW1iZXINCitHZXRGYXZvcml0ZXNOdW1iZXINCitHZXRQcm94eURsZ0ENCitHZXRQcm94eURsZ1cNCitJbXBvcnRBRE1GaWxlQQ0KK0ltcG9ydEFETUZpbGVXDQorSW1wb3J0QURUSW5mb0ENCitJbXBvcnRBRFRJbmZvVw0KK0ltcG9ydEF1dGhDb2RlQQ0KK0ltcG9ydEF1dGhDb2RlVw0KK0ltcG9ydENvbm5lY3RTZXRBDQorSW1wb3J0Q29ubmVjdFNldFcNCitJbXBvcnRGYXZvcml0ZXNBDQorSW1wb3J0RmF2b3JpdGVzQ21kQQ0KK0ltcG9ydEZhdm9yaXRlc0NtZFcNCitJbXBvcnRGYXZvcml0ZXNXDQorSW1wb3J0TERBUEJpdG1hcEENCitJbXBvcnRMREFQQml0bWFwVw0KK0ltcG9ydE9FSW5mb0ENCitJbXBvcnRPRUluZm9XDQorSW1wb3J0UHJvZ3JhbXNBDQorSW1wb3J0UHJvZ3JhbXNXDQorSW1wb3J0UXVpY2tMaW5rc0ENCitJbXBvcnRRdWlja0xpbmtzVw0KK0ltcG9ydFJhdGluZ3NBDQorSW1wb3J0UmF0aW5nc1cNCitJbXBvcnRTaXRlQ2VydEENCitJbXBvcnRTaXRlQ2VydFcNCitJbXBvcnRUb29sYmFySW5mb0ENCitJbXBvcnRUb29sYmFySW5mb1cNCitJbXBvcnRab25lc0ENCitJbXBvcnRab25lc1cNCitJbml0aWFsaXplU3RhcnRTZWFyY2hBDQorSW5pdGlhbGl6ZVN0YXJ0U2VhcmNoVw0KK0lzQURNRmlsZVZpc2libGVBDQorSXNBRE1GaWxlVmlzaWJsZVcNCitJc0FuaW1CaXRtYXBGaWxlVmFsaWRBDQorSXNBbmltQml0bWFwRmlsZVZhbGlkVw0KK0lzQml0bWFwRmlsZVZhbGlkQQ0KK0lzQml0bWFwRmlsZVZhbGlkVw0KK0lzRmF2b3JpdGVJdGVtDQorTG9hZEFETUZpbGVzQQ0KK0xvYWRBRE1GaWxlc1cNCitNaWdyYXRlRmF2b3JpdGVzQQ0KK01pZ3JhdGVGYXZvcml0ZXNXDQorTWlncmF0ZVRvT2xkRmF2b3JpdGVzQQ0KK01pZ3JhdGVUb09sZEZhdm9yaXRlc1cNCitNb2RpZnlBdXRoQ29kZQ0KK01vZGlmeUZhdm9yaXRlQQ0KK01vZGlmeUZhdm9yaXRlVw0KK01vZGlmeVJhdGluZ3MNCitNb2RpZnlTaXRlQ2VydA0KK01vZGlmeVpvbmVzDQorTW92ZUFETVdpbmRvdw0KK01vdmVEb3duRmF2b3JpdGUNCitNb3ZlVXBGYXZvcml0ZQ0KK05ld0ZvbGRlcg0KK05ld1VybEENCitOZXdVcmxXDQorUHJvY2Vzc0ZhdlNlbENoYW5nZQ0KK1Jlc2V0QWRtRmlsZXNBDQorUmVzZXRBZG1GaWxlc1cNCitTYXZlQURNSXRlbQ0KK1NhdmVBZG1GaWxlc0ENCitTYXZlQWRtRmlsZXNXDQorU2F2ZVN0YXJ0U2VhcmNoQQ0KK1NhdmVTdGFydFNlYXJjaFcNCitTZWxlY3RBRE1JdGVtDQorU2V0QURNV2luZG93VGV4dEENCitTZXRBRE1XaW5kb3dUZXh0Vw0KK1NldExCV2lkdGgNCitTZXRPckNsZWFyVmVyc2lvbkluZm9BDQorU2V0T3JDbGVhclZlcnNpb25JbmZvVw0KK1NldFByb3h5RGxnQQ0KK1NldFByb3h5RGxnVw0KK1Nob3dBRE1XaW5kb3cNCitTaG93Qml0bWFwQQ0KK1Nob3dCaXRtYXBXDQorU2hvd0Rlc2tDcGwNCitTaG93SW5ldGNwbA0KK1NpZ25GaWxlQQ0KK1NpZ25GaWxlVw0KK1Rlc3RVUkxBDQorVGVzdFVSTFcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aWVha3NpZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWVha3NpZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjZhYmRkZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpZWFrc2llLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElFQUtTSUUuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElFQUtTSUUuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2llZGtjczMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpZWRrY3MzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjM5ODBlZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpZWRrY3MzMi5kZWYKQEAgLTAsMCArMSwyNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpZWRrY3MzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaWVka2NzMzIuZGxsDQorRVhQT1JUUw0KK0JyYW5kRXh0ZXJuYWwNCitDbG9zZVJBU0Nvbm5lY3Rpb25zDQorR2VuZXJhdGVHcm91cFBvbGljeQ0KK1Byb2Nlc3NHcm91cFBvbGljeQ0KK1Byb2Nlc3NHcm91cFBvbGljeUV4DQorUHJvY2Vzc0dyb3VwUG9saWN5Rm9yWm9uZU1hcA0KK0JyYW5kQ2xlYW5JbnN0YWxsU3R1YnMNCitCcmFuZElDVzINCitCcmFuZElDVw0KK0JyYW5kSUU0DQorQnJhbmRJbmZBbmRPdXRsb29rRXhwcmVzcw0KK0JyYW5kSW50ZXJuZXRFeHBsb3Jlcg0KK0JyYW5kSW50cmENCitCcmFuZE1lDQorQ2xlYXINCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitJbnRlcm5ldEluaXRpYWxpemVBdXRvUHJveHlEbGwNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aWVlbmNvZGUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2llZW5jb2RlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYmMyNGEwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2llZW5jb2RlLmRlZgpAQCAtMCwwICsxLDE3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGV4cG9ydHMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGV4cG9ydHMuZGxsDQorRVhQT1JUUw0KK0NjZURldGVjdElucHV0Q29kZQ0KK0NjZUdldEF2YWlsYWJsZUVuY29kaW5ncw0KK0NjZUlzQXZhaWxhYmxlRW5jb2RpbmcNCitDY2VTdHJlYW1NdWx0aUJ5dGVUb1VuaWNvZGUNCitDY2VTdHJlYW1Vbmljb2RlVG9NdWx0aUJ5dGUNCitDY2VTdHJpbmdNdWx0aUJ5dGVUb1VuaWNvZGUNCitDY2VTdHJpbmdVbmljb2RlVG9NdWx0aUJ5dGUNCitEbGxNYWluDQorRmV0Y2hNc0VuY29kZURsbFZlcnNpb24NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aWVwZWVycy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWVwZWVycy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODI4ZDU4ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpZXBlZXJzLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGllcGVlcnMuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGllcGVlcnMuRExMDQorRVhQT1JUUw0KK0RsbEVudW1DbGFzc09iamVjdHMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpZXJub25jZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWVybm9uY2UuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJjMjE3MGEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aWVybm9uY2UuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSUVSTk9OQ0UuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElFUk5PTkNFLmRsbA0KK0VYUE9SVFMNCitJbml0Q2FsbGJhY2sNCitSdW5PbmNlRXhQcm9jZXNzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2llc2V0dXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2llc2V0dXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFjNzRlMGQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aWVzZXR1cC5kZWYKQEAgLTAsMCArMSwxNyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpZXNldHVwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpZXNldHVwLmRsbA0KK0VYUE9SVFMNCitJRUhhcmRlbkFkbWluDQorSUVIYXJkZW5BZG1pbk5vdw0KK0lFSGFyZGVuTWFjaGluZU5vdw0KK0lFSGFyZGVuVXNlcg0KK1NldEZpcnN0SG9tZXBhZ2UNCitEbGxJbnN0YWxsDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorRml4SUUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aWZtb24uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lmbW9uLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZGQxMWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lmbW9uLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElGTU9OLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJRk1PTi5kbGwNCitFWFBPUlRTDQorR2V0UmVzb3VyY2VTdHJpbmcNCitJbml0SGVscGVyRGxsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lmc3V0aWwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lmc3V0aWwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg0ZjhmZTQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aWZzdXRpbC5kZWYKQEAgLTAsMCArMSwzNjAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaWZzdXRpbC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaWZzdXRpbC5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0FOTkVEX1NFQ1VSSVRZOjpDQU5ORURfU0VDVVJJVFkodm9pZCkNCis/PzBDQU5ORURfU0VDVVJJVFlAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERJR1JBUEg6OkRJR1JBUEgodm9pZCkNCis/PzBESUdSQVBIQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBESUdSQVBIX0VER0U6OkRJR1JBUEhfRURHRSh2b2lkKQ0KKz8/MERJR1JBUEhfRURHRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRFBfRFJJVkU6OkRQX0RSSVZFKHZvaWQpDQorPz8wRFBfRFJJVkVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElOVFNUQUNLOjpJTlRTVEFDSyh2b2lkKQ0KKz8/MElOVFNUQUNLQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMT0dfSU9fRFBfRFJJVkU6OkxPR19JT19EUF9EUklWRSh2b2lkKQ0KKz8/MExPR19JT19EUF9EUklWRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTU9VTlRfUE9JTlRfTUFQOjpNT1VOVF9QT0lOVF9NQVAodm9pZCkNCis/PzBNT1VOVF9QT0lOVF9NQVBAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE1PVU5UX1BPSU5UX1RVUExFOjpNT1VOVF9QT0lOVF9UVVBMRSh2b2lkKQ0KKz8/ME1PVU5UX1BPSU5UX1RVUExFQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOVU1CRVJfU0VUOjpOVU1CRVJfU0VUKHZvaWQpDQorPz8wTlVNQkVSX1NFVEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUkVBRF9DQUNIRTo6UkVBRF9DQUNIRSh2b2lkKQ0KKz8/MFJFQURfQ0FDSEVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFJFQURfV1JJVEVfQ0FDSEU6OlJFQURfV1JJVEVfQ0FDSEUodm9pZCkNCis/PzBSRUFEX1dSSVRFX0NBQ0hFQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTRUNSVU46OlNFQ1JVTih2b2lkKQ0KKz8/MFNFQ1JVTkBAUUFFQFhaDQorOyBwcml2YXRlOiBfX3RoaXNjYWxsIFNOQVBTSE9UOjpTTkFQU0hPVCh2b2lkKQ0KKz8/MFNOQVBTSE9UQEBBQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTUEFSU0VfU0VUOjpTUEFSU0VfU0VUKHZvaWQpDQorPz8wU1BBUlNFX1NFVEBAUUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgU1VQRVJBUkVBOjpTVVBFUkFSRUEodm9pZCkNCis/PzBTVVBFUkFSRUFAQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFRMSU5LOjpUTElOSyh2b2lkKQ0KKz8/MFRMSU5LQEBRQUVAWFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBWT0xfTElPRFBEUlY6OlZPTF9MSU9EUERSVih2b2lkKQ0KKz8/MFZPTF9MSU9EUERSVkBASUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDQU5ORURfU0VDVVJJVFk6On5DQU5ORURfU0VDVVJJVFkodm9pZCkNCis/PzFDQU5ORURfU0VDVVJJVFlAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgRElHUkFQSDo6fkRJR1JBUEgodm9pZCkNCis/PzFESUdSQVBIQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIERQX0RSSVZFOjp+RFBfRFJJVkUodm9pZCkNCis/PzFEUF9EUklWRUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBJTlRTVEFDSzo6fklOVFNUQUNLKHZvaWQpDQorPz8xSU5UU1RBQ0tAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgTE9HX0lPX0RQX0RSSVZFOjp+TE9HX0lPX0RQX0RSSVZFKHZvaWQpDQorPz8xTE9HX0lPX0RQX0RSSVZFQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIE1PVU5UX1BPSU5UX01BUDo6fk1PVU5UX1BPSU5UX01BUCh2b2lkKQ0KKz8/MU1PVU5UX1BPSU5UX01BUEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBOVU1CRVJfU0VUOjp+TlVNQkVSX1NFVCh2b2lkKQ0KKz8/MU5VTUJFUl9TRVRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgU0VDUlVOOjp+U0VDUlVOKHZvaWQpDQorPz8xU0VDUlVOQEBVQUVAWFoNCis7IHByaXZhdGU6IHZpcnR1YWwgX190aGlzY2FsbCBTTkFQU0hPVDo6flNOQVBTSE9UKHZvaWQpDQorPz8xU05BUFNIT1RAQEVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgU1BBUlNFX1NFVDo6flNQQVJTRV9TRVQodm9pZCkNCis/PzFTUEFSU0VfU0VUQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFNVUEVSQVJFQTo6flNVUEVSQVJFQSh2b2lkKQ0KKz8/MVNVUEVSQVJFQUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBUTElOSzo6flRMSU5LKHZvaWQpDQorPz8xVExJTktAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgVk9MX0xJT0RQRFJWOjp+Vk9MX0xJT0RQRFJWKHZvaWQpDQorPz8xVk9MX0xJT0RQRFJWQEBVQUVAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIE5VTUJFUl9TRVQ6OkFkZChjbGFzcyBOVU1CRVJfU0VUIGNvbnN0ICopDQorP0FkZEBOVU1CRVJfU0VUQEBRQUVFUEJWMUBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgTlVNQkVSX1NFVDo6QWRkKGNsYXNzIEJJR19JTlQsY2xhc3MgQklHX0lOVCkNCis/QWRkQE5VTUJFUl9TRVRAQFFBRUVWQklHX0lOVEBAMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBOVU1CRVJfU0VUOjpBZGQoY2xhc3MgQklHX0lOVCkNCis/QWRkQE5VTUJFUl9TRVRAQFFBRUVWQklHX0lOVEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIE1PVU5UX1BPSU5UX01BUDo6QWRkRHJpdmVOYW1lKGNsYXNzIFdTVFJJTkcgKixjbGFzcyBXU1RSSU5HICopDQorP0FkZERyaXZlTmFtZUBNT1VOVF9QT0lOVF9NQVBAQFFBRUVQQVZXU1RSSU5HQEAwQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIERJR1JBUEg6OkFkZEVkZ2UodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9BZGRFZGdlQERJR1JBUEhAQFFBRUVLS0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fc3RkY2FsbCBBVVRPUkVHOjpBZGRFbnRyeShjbGFzcyBXU1RSSU5HIGNvbnN0ICopDQorP0FkZEVudHJ5QEFVVE9SRUdAQFNHRVBCVldTVFJJTkdAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBOVU1CRVJfU0VUOjpBZGROZXh0KGNsYXNzIEJJR19JTlQpDQorP0FkZE5leHRATlVNQkVSX1NFVEBAUUFFRVZCSUdfSU5UQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgTlVNQkVSX1NFVDo6QWRkU3RhcnQoY2xhc3MgQklHX0lOVCkNCis/QWRkU3RhcnRATlVNQkVSX1NFVEBAUUFFRVZCSUdfSU5UQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgTU9VTlRfUE9JTlRfTUFQOjpBZGRWb2x1bWVOYW1lKGNsYXNzIFdTVFJJTkcgKixjbGFzcyBXU1RSSU5HICopDQorP0FkZFZvbHVtZU5hbWVATU9VTlRfUE9JTlRfTUFQQEBRQUVFUEFWV1NUUklOR0BAMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBOVU1CRVJfU0VUOjpDaGVja0FuZEFkZChjbGFzcyBCSUdfSU5ULHVuc2lnbmVkIGNoYXIgKikNCis/Q2hlY2tBbmRBZGRATlVNQkVSX1NFVEBAUUFFRVZCSUdfSU5UQEBQQUVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgU1BBUlNFX1NFVDo6Q2hlY2tBbmRBZGQoY2xhc3MgQklHX0lOVCx1bnNpZ25lZCBjaGFyICopDQorP0NoZWNrQW5kQWRkQFNQQVJTRV9TRVRAQFFBRUVWQklHX0lOVEBAUEFFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIE5VTUJFUl9TRVQ6OkNoZWNrQW5kUmVtb3ZlKGNsYXNzIEJJR19JTlQsdW5zaWduZWQgY2hhciAqKQ0KKz9DaGVja0FuZFJlbW92ZUBOVU1CRVJfU0VUQEBRQUVFVkJJR19JTlRAQFBBRUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBTUEFSU0VfU0VUOjpDaGVja0FuZFJlbW92ZShjbGFzcyBCSUdfSU5ULHVuc2lnbmVkIGNoYXIgKikNCis/Q2hlY2tBbmRSZW1vdmVAU1BBUlNFX1NFVEBAUUFFRVZCSUdfSU5UQEBQQUVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgU05BUFNIT1Q6OkNoZWNrU25hcHNob3RQcmVzZW5jZSh2b2lkKQ0KKz9DaGVja1NuYXBzaG90UHJlc2VuY2VAU05BUFNIT1RAQFFBRUVYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX3N0ZGNhbGwgSUZTX1NZU1RFTTo6Q2hlY2tWYWxpZFNlY3VyaXR5RGVzY3JpcHRvcih1bnNpZ25lZCBsb25nLHN0cnVjdCBfU0VDVVJJVFlfREVTQ1JJUFRPUiAqKQ0KKz9DaGVja1ZhbGlkU2VjdXJpdHlEZXNjcmlwdG9yQElGU19TWVNURU1AQFNHRUtQQVVfU0VDVVJJVFlfREVTQ1JJUFRPUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIFZPTF9MSU9EUERSVjo6Q2hrRHNrKGVudW0gRklYX0xFVkVMLGNsYXNzIE1FU1NBR0UgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyAqLGNsYXNzIFdTVFJJTkcgY29uc3QgKikNCis/Q2hrRHNrQFZPTF9MSU9EUERSVkBAUUFFRVc0RklYX0xFVkVMQEBQQVZNRVNTQUdFQEBLS0dQQUtQQlZXU1RSSU5HQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgRFBfRFJJVkU6OkNsb3NlRHJpdmVIYW5kbGUodm9pZCkNCis/Q2xvc2VEcml2ZUhhbmRsZUBEUF9EUklWRUBAUUFFWFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBTVVBFUkFSRUE6OkNvbXB1dGVWb2xJZCh1bnNpZ25lZCBsb25nKQ0KKz9Db21wdXRlVm9sSWRAU1VQRVJBUkVBQEBTR0tLQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19zdGRjYWxsIEFVVE9SRUc6OkRlbGV0ZUVudHJ5KGNsYXNzIFdTVFJJTkcgY29uc3QgKixjbGFzcyBXU1RSSU5HIGNvbnN0ICopDQorP0RlbGV0ZUVudHJ5QEFVVE9SRUdAQFNHRVBCVldTVFJJTkdAQDBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX3N0ZGNhbGwgQVVUT1JFRzo6RGVsZXRlRW50cnkoY2xhc3MgV1NUUklORyBjb25zdCAqLHVuc2lnbmVkIGNoYXIpDQorP0RlbGV0ZUVudHJ5QEFVVE9SRUdAQFNHRVBCVldTVFJJTkdAQEVAWg0KKzsgaW50IF9fc3RkY2FsbCBEaXNrQ29weU1haW5Mb29wKGNsYXNzIFdTVFJJTkcgY29uc3QgKixjbGFzcyBXU1RSSU5HIGNvbnN0ICosY2xhc3MgV1NUUklORyBjb25zdCAqLGNsYXNzIFdTVFJJTkcgY29uc3QgKix1bnNpZ25lZCBjaGFyLGNsYXNzIE1FU1NBR0UgKixjbGFzcyBNRVNTQUdFICopDQorP0Rpc2tDb3B5TWFpbkxvb3BAQFlHSFBCVldTVFJJTkdAQDAwMEVQQVZNRVNTQUdFQEAxQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIElPX0RQX0RSSVZFOjpEaXNtb3VudEFuZExvY2sodm9pZCkNCis/RGlzbW91bnRBbmRMb2NrQElPX0RQX0RSSVZFQEBRQUVFWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19zdGRjYWxsIElGU19TWVNURU06OkRpc21vdW50Vm9sdW1lKGNsYXNzIFdTVFJJTkcgY29uc3QgKikNCis/RGlzbW91bnRWb2x1bWVASUZTX1NZU1RFTUBAU0dFUEJWV1NUUklOR0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIE5VTUJFUl9TRVQ6OkRvZXNJbnRlcnNlY3RTZXQoY2xhc3MgQklHX0lOVCxjbGFzcyBCSUdfSU5UKWNvbnN0IA0KKz9Eb2VzSW50ZXJzZWN0U2V0QE5VTUJFUl9TRVRAQFFCRUVWQklHX0lOVEBAMEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fc3RkY2FsbCBJRlNfU1lTVEVNOjpEb3NEcml2ZU5hbWVUb050RHJpdmVOYW1lKGNsYXNzIFdTVFJJTkcgY29uc3QgKixjbGFzcyBXU1RSSU5HICopDQorP0Rvc0RyaXZlTmFtZVRvTnREcml2ZU5hbWVASUZTX1NZU1RFTUBAU0dFUEJWV1NUUklOR0BAUEFWMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU1BBUlNFX1NFVDo6RHVtcEhhc2hUYWJsZSh2b2lkKQ0KKz9EdW1wSGFzaFRhYmxlQFNQQVJTRV9TRVRAQFFBRVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgRElHUkFQSDo6RWxpbWluYXRlQ3ljbGVzKGNsYXNzIENPTlRBSU5FUiAqLHVuc2lnbmVkIGNoYXIgKikNCis/RWxpbWluYXRlQ3ljbGVzQERJR1JBUEhAQFFBRUVQQVZDT05UQUlORVJAQFBBRUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fc3RkY2FsbCBJRlNfU1lTVEVNOjpFbmFibGVGaWxlU3lzdGVtKGNsYXNzIFdTVFJJTkcgY29uc3QgKikNCis/RW5hYmxlRmlsZVN5c3RlbUBJRlNfU1lTVEVNQEBTR0VQQlZXU1RSSU5HQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX3N0ZGNhbGwgSUZTX1NZU1RFTTo6RW5hYmxlVm9sdW1lQ29tcHJlc3Npb24oY2xhc3MgV1NUUklORyBjb25zdCAqKQ0KKz9FbmFibGVWb2x1bWVDb21wcmVzc2lvbkBJRlNfU1lTVEVNQEBTR0VQQlZXU1RSSU5HQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX3N0ZGNhbGwgSUZTX1NZU1RFTTo6RW5hYmxlVm9sdW1lVXBncmFkZShjbGFzcyBXU1RSSU5HIGNvbnN0ICopDQorP0VuYWJsZVZvbHVtZVVwZ3JhZGVASUZTX1NZU1RFTUBAU0dFUEJWV1NUUklOR0BAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19zdGRjYWxsIElGU19TWVNURU06OkZpbGVTZXRBdHRyaWJ1dGVzKGNsYXNzIFdTVFJJTkcgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKikNCis/RmlsZVNldEF0dHJpYnV0ZXNASUZTX1NZU1RFTUBAU0dFUEJWV1NUUklOR0BAS1BBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBJT19EUF9EUklWRTo6Rmx1c2hDYWNoZSh2b2lkKQ0KKz9GbHVzaENhY2hlQElPX0RQX0RSSVZFQEBRQUVFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIFZPTF9MSU9EUERSVjo6Rm9yY2VBdXRvY2hrKHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0LGNsYXNzIFdTVFJJTkcgY29uc3QgKikNCis/Rm9yY2VBdXRvY2hrQFZPTF9MSU9EUERSVkBAUUFFRUVLS0dQQlZXU1RSSU5HQEBAWg0KKzsgcHVibGljOiBlbnVtIEZPUk1BVF9FUlJPUl9DT0RFICBfX3RoaXNjYWxsIFZPTF9MSU9EUERSVjo6Rm9ybWF0KGNsYXNzIFdTVFJJTkcgY29uc3QgKixjbGFzcyBNRVNTQUdFICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0Zvcm1hdEBWT0xfTElPRFBEUlZAQFFBRT9BVzRGT1JNQVRfRVJST1JfQ09ERUBAUEJWV1NUUklOR0BAUEFWTUVTU0FHRUBAS0tLQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIFNVUEVSQVJFQTo6R2VuZXJhdGVMYWJlbE5vdGlmaWNhdGlvbihjbGFzcyBXU1RSSU5HIGNvbnN0ICosY2xhc3MgV1NUUklORyAqLHN0cnVjdCBfRklMRV9GU19TSVpFX0lORk9STUFUSU9OICosc3RydWN0IF9GSUxFX0ZTX1ZPTFVNRV9JTkZPUk1BVElPTiAqKQ0KKz9HZW5lcmF0ZUxhYmVsTm90aWZpY2F0aW9uQFNVUEVSQVJFQUBAU0dKUEJWV1NUUklOR0BAUEFWMkBQQVVfRklMRV9GU19TSVpFX0lORk9STUFUSU9OQEBQQVVfRklMRV9GU19WT0xVTUVfSU5GT1JNQVRJT05AQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBNT1VOVF9QT0lOVF9NQVA6OkdldEF0KHVuc2lnbmVkIGxvbmcsY2xhc3MgV1NUUklORyAqLGNsYXNzIFdTVFJJTkcgKikNCis/R2V0QXRATU9VTlRfUE9JTlRfTUFQQEBRQUVFS1BBVldTVFJJTkdAQDBAWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBUTElOSzo6R2V0QnVmZmVyKHZvaWQgKikNCis/R2V0QnVmZmVyQFRMSU5LQEBRQUVQQVhQQVhAWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ0FOTkVEX1NFQ1VSSVRZICogX19zdGRjYWxsIElGU19TWVNURU06OkdldENhbm5lZFNlY3VyaXR5KHZvaWQpDQorP0dldENhbm5lZFNlY3VyaXR5QElGU19TWVNURU1AQFNHUEFWQ0FOTkVEX1NFQ1VSSVRZQEBYWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBDQU5ORURfU0VDVVJJVFk6OkdldENhbm5lZFNlY3VyaXR5RGVzY3JpcHRvcihlbnVtIF9DQU5ORURfU0VDVVJJVFlfVFlQRSx1bnNpZ25lZCBsb25nICopDQorP0dldENhbm5lZFNlY3VyaXR5RGVzY3JpcHRvckBDQU5ORURfU0VDVVJJVFlAQFFBRVBBWFc0X0NBTk5FRF9TRUNVUklUWV9UWVBFQEBQQUtAWg0KKzsgcHVibGljOiBjbGFzcyBCSUdfSU5UICYgX190aGlzY2FsbCBUTElOSzo6R2V0RGF0YSh1bnNpZ25lZCBzaG9ydCkNCis/R2V0RGF0YUBUTElOS0BAUUFFQUFWQklHX0lOVEBAR0BaDQorOyBwdWJsaWM6IGNsYXNzIEJJR19JTlQgJiBfX3RoaXNjYWxsIFRMSU5LOjpHZXREYXRhKHZvaWQgKikNCis/R2V0RGF0YUBUTElOS0BAUUFFQUFWQklHX0lOVEBAUEFYQFoNCis7IHB1YmxpYzogY2xhc3MgSU9fRFBfRFJJVkUgKiBfX3RoaXNjYWxsIFNFQ1JVTjo6R2V0RHJpdmUodm9pZCkNCis/R2V0RHJpdmVAU0VDUlVOQEBRQUVQQVZJT19EUF9EUklWRUBAWFoNCis7IHB1YmxpYzogY2xhc3MgSU9fRFBfRFJJVkUgKiBfX3RoaXNjYWxsIFNVUEVSQVJFQTo6R2V0RHJpdmUodm9pZCkNCis/R2V0RHJpdmVAU1VQRVJBUkVBQEBRQUVQQVZJT19EUF9EUklWRUBAWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgVExJTks6OkdldEZpcnN0KHZvaWQpDQorP0dldEZpcnN0QFRMSU5LQEBRQUVQQVhYWg0KKzsgcHVibGljOiBjbGFzcyBNRVNTQUdFICogX190aGlzY2FsbCBJT19EUF9EUklWRTo6R2V0TWVzc2FnZVcodm9pZCkNCis/R2V0TWVzc2FnZVdASU9fRFBfRFJJVkVAQFFBRVBBVk1FU1NBR0VAQFhaDQorOyBwdWJsaWM6IGNsYXNzIE1FU1NBR0UgKiBfX3RoaXNjYWxsIFNVUEVSQVJFQTo6R2V0TWVzc2FnZVcodm9pZCkNCis/R2V0TWVzc2FnZVdAU1VQRVJBUkVBQEBRQUVQQVZNRVNTQUdFQEBYWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBUTElOSzo6R2V0TmV4dCh2b2lkICopDQorP0dldE5leHRAVExJTktAQFFBRVBBWFBBWEBaDQorOyBwdWJsaWM6IGNsYXNzIEJJR19JTlQgJiBfX3RoaXNjYWxsIFRMSU5LOjpHZXROZXh0RGF0YVNsb3Qodm9pZCkNCis/R2V0TmV4dERhdGFTbG90QFRMSU5LQEBRQUVBQVZCSUdfSU5UQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgU05BUFNIT1Q6OkdldFNuYXBzaG90R2xvYmFsRGV2aWNlTmFtZSh2b2lkKQ0KKz9HZXRTbmFwc2hvdEdsb2JhbERldmljZU5hbWVAU05BUFNIT1RAQFFBRVBBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBTTkFQU0hPVDo6R2V0U25hcHNob3ROdERldmljZU5hbWUodm9pZCkNCis/R2V0U25hcHNob3ROdERldmljZU5hbWVAU05BUFNIT1RAQFFBRVBBR1haDQorOyBwdWJsaWM6IHZvaWQgKiBfX3RoaXNjYWxsIFRMSU5LOjpHZXRTb3J0ZWRGaXJzdCh2b2lkKQ0KKz9HZXRTb3J0ZWRGaXJzdEBUTElOS0BAUUFFUEFYWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgVExJTks6OkdldFNvcnRlZE5leHQodm9pZCAqKQ0KKz9HZXRTb3J0ZWROZXh0QFRMSU5LQEBRQUVQQVhQQVhAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX3N0ZGNhbGwgU05BUFNIT1Q6OkdldFZvbHVtZVNuYXBzaG90KGNsYXNzIFdTVFJJTkcgKixjbGFzcyBTTkFQU0hPVCAqICopDQorP0dldFZvbHVtZVNuYXBzaG90QFNOQVBTSE9UQEBTR0VQQVZXU1RSSU5HQEBQQVBBVjFAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIENBTk5FRF9TRUNVUklUWTo6SW5pdGlhbGl6ZSh2b2lkKQ0KKz9Jbml0aWFsaXplQENBTk5FRF9TRUNVUklUWUBAUUFFRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBESUdSQVBIOjpJbml0aWFsaXplKHVuc2lnbmVkIGxvbmcpDQorP0luaXRpYWxpemVARElHUkFQSEBAUUFFRUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgRFBfRFJJVkU6OkluaXRpYWxpemUoY2xhc3MgV1NUUklORyBjb25zdCAqLGNsYXNzIFdTVFJJTkcgY29uc3QgKixjbGFzcyBNRVNTQUdFICosdW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyKQ0KKz9Jbml0aWFsaXplQERQX0RSSVZFQEBRQUVFUEJWV1NUUklOR0BAMFBBVk1FU1NBR0VAQEVFQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIERQX0RSSVZFOjpJbml0aWFsaXplKGNsYXNzIFdTVFJJTkcgY29uc3QgKixjbGFzcyBNRVNTQUdFICosdW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIHNob3J0KQ0KKz9Jbml0aWFsaXplQERQX0RSSVZFQEBRQUVFUEJWV1NUUklOR0BAUEFWTUVTU0FHRUBARUVHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIElOVFNUQUNLOjpJbml0aWFsaXplKHZvaWQpDQorP0luaXRpYWxpemVASU5UU1RBQ0tAQFFBRUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgTE9HX0lPX0RQX0RSSVZFOjpJbml0aWFsaXplKGNsYXNzIFdTVFJJTkcgY29uc3QgKixjbGFzcyBXU1RSSU5HIGNvbnN0ICosY2xhc3MgTUVTU0FHRSAqLHVuc2lnbmVkIGNoYXIpDQorP0luaXRpYWxpemVATE9HX0lPX0RQX0RSSVZFQEBRQUVFUEJWV1NUUklOR0BAMFBBVk1FU1NBR0VAQEVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgTE9HX0lPX0RQX0RSSVZFOjpJbml0aWFsaXplKGNsYXNzIFdTVFJJTkcgY29uc3QgKixjbGFzcyBNRVNTQUdFICosdW5zaWduZWQgY2hhcix1bnNpZ25lZCBzaG9ydCkNCis/SW5pdGlhbGl6ZUBMT0dfSU9fRFBfRFJJVkVAQFFBRUVQQlZXU1RSSU5HQEBQQVZNRVNTQUdFQEBFR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBNT1VOVF9QT0lOVF9NQVA6OkluaXRpYWxpemUodm9pZCkNCis/SW5pdGlhbGl6ZUBNT1VOVF9QT0lOVF9NQVBAQFFBRUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgTlVNQkVSX1NFVDo6SW5pdGlhbGl6ZSh2b2lkKQ0KKz9Jbml0aWFsaXplQE5VTUJFUl9TRVRAQFFBRUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgUkVBRF9DQUNIRTo6SW5pdGlhbGl6ZShjbGFzcyBJT19EUF9EUklWRSAqLHVuc2lnbmVkIGxvbmcpDQorP0luaXRpYWxpemVAUkVBRF9DQUNIRUBAUUFFRVBBVklPX0RQX0RSSVZFQEBLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIFJFQURfV1JJVEVfQ0FDSEU6OkluaXRpYWxpemUoY2xhc3MgSU9fRFBfRFJJVkUgKix1bnNpZ25lZCBsb25nKQ0KKz9Jbml0aWFsaXplQFJFQURfV1JJVEVfQ0FDSEVAQFFBRUVQQVZJT19EUF9EUklWRUBAS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBTRUNSVU46OkluaXRpYWxpemUoY2xhc3MgTUVNICosY2xhc3MgSU9fRFBfRFJJVkUgKixjbGFzcyBCSUdfSU5ULHVuc2lnbmVkIGxvbmcpDQorP0luaXRpYWxpemVAU0VDUlVOQEBRQUVFUEFWTUVNQEBQQVZJT19EUF9EUklWRUBAVkJJR19JTlRAQEtAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIFNOQVBTSE9UOjpJbml0aWFsaXplKHVuc2lnbmVkIHNob3J0ICopDQorP0luaXRpYWxpemVAU05BUFNIT1RAQEFBRUpQQUdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgU1BBUlNFX1NFVDo6SW5pdGlhbGl6ZSh2b2lkKQ0KKz9Jbml0aWFsaXplQFNQQVJTRV9TRVRAQFFBRUVYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgU1VQRVJBUkVBOjpJbml0aWFsaXplKGNsYXNzIE1FTSAqLGNsYXNzIExPR19JT19EUF9EUklWRSAqLHVuc2lnbmVkIGxvbmcsY2xhc3MgTUVTU0FHRSAqKQ0KKz9Jbml0aWFsaXplQFNVUEVSQVJFQUBASUFFRVBBVk1FTUBAUEFWTE9HX0lPX0RQX0RSSVZFQEBLUEFWTUVTU0FHRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIFRMSU5LOjpJbml0aWFsaXplKHVuc2lnbmVkIHNob3J0KQ0KKz9Jbml0aWFsaXplQFRMSU5LQEBRQUVFR0BaDQorOyBwcm90ZWN0ZWQ6IGVudW0gRk9STUFUX0VSUk9SX0NPREUgIF9fdGhpc2NhbGwgVk9MX0xJT0RQRFJWOjpJbml0aWFsaXplKGNsYXNzIFdTVFJJTkcgY29uc3QgKixjbGFzcyBTVVBFUkFSRUEgKixjbGFzcyBNRVNTQUdFICosdW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLGVudW0gX01FRElBX1RZUEUsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgY2hhcikNCis/SW5pdGlhbGl6ZUBWT0xfTElPRFBEUlZAQElBRT9BVzRGT1JNQVRfRVJST1JfQ09ERUBAUEJWV1NUUklOR0BAUEFWU1VQRVJBUkVBQEBQQVZNRVNTQUdFQEBFRVc0X01FRElBX1RZUEVAQEdFQFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIFZPTF9MSU9EUERSVjo6SW5pdGlhbGl6ZShjbGFzcyBXU1RSSU5HIGNvbnN0ICosY2xhc3MgV1NUUklORyBjb25zdCAqLGNsYXNzIFNVUEVSQVJFQSAqLGNsYXNzIE1FU1NBR0UgKix1bnNpZ25lZCBjaGFyKQ0KKz9Jbml0aWFsaXplQFZPTF9MSU9EUERSVkBASUFFRVBCVldTVFJJTkdAQDBQQVZTVVBFUkFSRUFAQFBBVk1FU1NBR0VAQEVAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgSU9fRFBfRFJJVkU6OkludmFsaWRhdGVWb2x1bWUodm9pZCkNCis/SW52YWxpZGF0ZVZvbHVtZUBJT19EUF9EUklWRUBAUUFFRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBEUF9EUklWRTo6SXNBVGZvcm1hdCh2b2lkKWNvbnN0IA0KKz9Jc0FUZm9ybWF0QERQX0RSSVZFQEBRQkVFWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19zdGRjYWxsIElGU19TWVNURU06OklzQXJjU3lzdGVtUGFydGl0aW9uKGNsYXNzIFdTVFJJTkcgY29uc3QgKix1bnNpZ25lZCBjaGFyICopDQorP0lzQXJjU3lzdGVtUGFydGl0aW9uQElGU19TWVNURU1AQFNHRVBCVldTVFJJTkdAQFBBRUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fc3RkY2FsbCBBVVRPUkVHOjpJc0VudHJ5UHJlc2VudChjbGFzcyBXU1RSSU5HIGNvbnN0ICosY2xhc3MgV1NUUklORyBjb25zdCAqKQ0KKz9Jc0VudHJ5UHJlc2VudEBBVVRPUkVHQEBTR0VQQlZXU1RSSU5HQEAwQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19zdGRjYWxsIEFVVE9SRUc6OklzRW50cnlQcmVzZW50KGNsYXNzIFdTVFJJTkcgY29uc3QgKikNCis/SXNFbnRyeVByZXNlbnRAQVVUT1JFR0BAU0dFUEJWV1NUUklOR0BAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19zdGRjYWxsIElGU19TWVNURU06OklzRmlsZVN5c3RlbUVuYWJsZWQoY2xhc3MgV1NUUklORyBjb25zdCAqLHVuc2lnbmVkIGNoYXIgKikNCis/SXNGaWxlU3lzdGVtRW5hYmxlZEBJRlNfU1lTVEVNQEBTR0VQQlZXU1RSSU5HQEBQQUVAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX3N0ZGNhbGwgQVVUT1JFRzo6SXNGcm9udEVuZFByZXNlbnQoY2xhc3MgV1NUUklORyBjb25zdCAqLGNsYXNzIFdTVFJJTkcgY29uc3QgKikNCis/SXNGcm9udEVuZFByZXNlbnRAQVVUT1JFR0BAU0dFUEJWV1NUUklOR0BAMEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fc3RkY2FsbCBJRlNfU1lTVEVNOjpJc1RoaXNOdGZzKGNsYXNzIEJJR19JTlQsdW5zaWduZWQgbG9uZyx2b2lkICopDQorP0lzVGhpc050ZnNASUZTX1NZU1RFTUBAU0dFVkJJR19JTlRAQEtQQVhAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX3N0ZGNhbGwgSUZTX1NZU1RFTTo6SXNWb2x1bWVEaXJ0eShjbGFzcyBXU1RSSU5HICosdW5zaWduZWQgY2hhciAqKQ0KKz9Jc1ZvbHVtZURpcnR5QElGU19TWVNURU1AQFNHRVBBVldTVFJJTkdAQFBBRUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBJT19EUF9EUklWRTo6TG9jayh2b2lkKQ0KKz9Mb2NrQElPX0RQX0RSSVZFQEBRQUVFWFoNCis7IHB1YmxpYzogY2xhc3MgQklHX0lOVCAgX190aGlzY2FsbCBJTlRTVEFDSzo6TG9vayh1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9Mb29rQElOVFNUQUNLQEBRQkU/QVZCSUdfSU5UQEBLQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19zdGRjYWxsIElGU19TWVNURU06Ok50RHJpdmVOYW1lVG9Eb3NEcml2ZU5hbWUoY2xhc3MgV1NUUklORyBjb25zdCAqLGNsYXNzIFdTVFJJTkcgKikNCis/TnREcml2ZU5hbWVUb0Rvc0RyaXZlTmFtZUBJRlNfU1lTVEVNQEBTR0VQQlZXU1RSSU5HQEBQQVYyQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBJTlRTVEFDSzo6UG9wKHVuc2lnbmVkIGxvbmcpDQorP1BvcEBJTlRTVEFDS0BAUUFFWEtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgSU5UU1RBQ0s6OlB1c2goY2xhc3MgQklHX0lOVCkNCis/UHVzaEBJTlRTVEFDS0BAUUFFRVZCSUdfSU5UQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX3N0ZGNhbGwgQVVUT1JFRzo6UHVzaEVudHJ5KGNsYXNzIFdTVFJJTkcgY29uc3QgKikNCis/UHVzaEVudHJ5QEFVVE9SRUdAQFNHRVBCVldTVFJJTkdAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fc3RkY2FsbCBWT0xfTElPRFBEUlY6OlF1ZXJ5QXV0b2Noa1RpbWVPdXQodW5zaWduZWQgbG9uZyAqKQ0KKz9RdWVyeUF1dG9jaGtUaW1lT3V0QFZPTF9MSU9EUERSVkBAU0dFUEFLQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19zdGRjYWxsIElGU19TWVNURU06OlF1ZXJ5Q2Fub25pY2FsTnREcml2ZU5hbWUoY2xhc3MgV1NUUklORyBjb25zdCAqLGNsYXNzIFdTVFJJTkcgKikNCis/UXVlcnlDYW5vbmljYWxOdERyaXZlTmFtZUBJRlNfU1lTVEVNQEBTR0VQQlZXU1RSSU5HQEBQQVYyQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBESUdSQVBIOjpRdWVyeUNoaWxkcmVuKHVuc2lnbmVkIGxvbmcsY2xhc3MgTlVNQkVSX1NFVCAqKWNvbnN0IA0KKz9RdWVyeUNoaWxkcmVuQERJR1JBUEhAQFFCRUVLUEFWTlVNQkVSX1NFVEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEJJR19JTlQ6OlF1ZXJ5Q29tcHJlc3NlZEludGVnZXIodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGNoYXIgKiljb25zdCANCis/UXVlcnlDb21wcmVzc2VkSW50ZWdlckBCSUdfSU5UQEBRQkVYUEFFMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBOVU1CRVJfU0VUOjpRdWVyeUNvbnRhaW5pbmdSYW5nZShjbGFzcyBCSUdfSU5ULGNsYXNzIEJJR19JTlQgKixjbGFzcyBCSUdfSU5UICopY29uc3QgDQorP1F1ZXJ5Q29udGFpbmluZ1JhbmdlQE5VTUJFUl9TRVRAQFFCRUVWQklHX0lOVEBAUEFWMkAxQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIE5VTUJFUl9TRVQ6OlF1ZXJ5RGlzam9pbnRSYW5nZSh1bnNpZ25lZCBsb25nLGNsYXNzIEJJR19JTlQgKixjbGFzcyBCSUdfSU5UICopY29uc3QgDQorP1F1ZXJ5RGlzam9pbnRSYW5nZUBOVU1CRVJfU0VUQEBRQkVYS1BBVkJJR19JTlRAQDBAWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBUTElOSzo6UXVlcnlEaXNqb2ludFJhbmdlQW5kQXNzaWduQnVmZmVyKGNsYXNzIEJJR19JTlQgKix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICosdm9pZCAqLHVuc2lnbmVkIGxvbmcsdm9pZCAqKQ0KKz9RdWVyeURpc2pvaW50UmFuZ2VBbmRBc3NpZ25CdWZmZXJAVExJTktAQFFBRVBBWFBBVkJJR19JTlRAQFBBRzFQQVhLMkBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3RoaXNjYWxsIERQX0RSSVZFOjpRdWVyeURyaXZlSGFuZGxlKHZvaWQpY29uc3QgDQorP1F1ZXJ5RHJpdmVIYW5kbGVARFBfRFJJVkVAQFFCRVBBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBNT1VOVF9QT0lOVF9NQVA6OlF1ZXJ5RHJpdmVOYW1lKGNsYXNzIFdTVFJJTkcgKixjbGFzcyBXU1RSSU5HICopDQorP1F1ZXJ5RHJpdmVOYW1lQE1PVU5UX1BPSU5UX01BUEBAUUFFRVBBVldTVFJJTkdAQDBAWg0KKzsgcHVibGljOiBlbnVtIERSSVZFX1RZUEUgIF9fdGhpc2NhbGwgRFBfRFJJVkU6OlF1ZXJ5RHJpdmVUeXBlKHZvaWQpY29uc3QgDQorP1F1ZXJ5RHJpdmVUeXBlQERQX0RSSVZFQEBRQkU/QVc0RFJJVkVfVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19zdGRjYWxsIElGU19TWVNURU06OlF1ZXJ5RmlsZVN5c3RlbU5hbWUoY2xhc3MgV1NUUklORyBjb25zdCAqLGNsYXNzIFdTVFJJTkcgKixsb25nICosY2xhc3MgV1NUUklORyAqKQ0KKz9RdWVyeUZpbGVTeXN0ZW1OYW1lQElGU19TWVNURU1AQFNHRVBCVldTVFJJTkdAQFBBVjJAUEFKMUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fc3RkY2FsbCBJRlNfU1lTVEVNOjpRdWVyeUZyZWVEaXNrU3BhY2UoY2xhc3MgV1NUUklORyBjb25zdCAqLGNsYXNzIEJJR19JTlQgKikNCis/UXVlcnlGcmVlRGlza1NwYWNlQElGU19TWVNURU1AQFNHRVBCVldTVFJJTkdAQFBBVkJJR19JTlRAQEBaDQorOyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBRdWVyeU1hY2hpbmVVbmlxdWVUb2tlbih2b2lkKQ0KKz9RdWVyeU1hY2hpbmVVbmlxdWVUb2tlbkBAWUdLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIERQX0RSSVZFOjpRdWVyeU1lZGlhQnl0ZSh2b2lkKWNvbnN0IA0KKz9RdWVyeU1lZGlhQnl0ZUBEUF9EUklWRUBAUUJFRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgVExJTks6OlF1ZXJ5TWVtYmVyQ291bnQodm9pZCljb25zdCANCis/UXVlcnlNZW1iZXJDb3VudEBUTElOS0BAUUJFR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fc3RkY2FsbCBEUF9EUklWRTo6UXVlcnlNcndTdXBwb3J0KHZvaWQgKikNCis/UXVlcnlNcndTdXBwb3J0QERQX0RSSVZFQEBTR0VQQVhAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgRFBfRFJJVkU6OlF1ZXJ5TnRmc1N1cHBvcnRJbmZvKHZvaWQgKix1bnNpZ25lZCBjaGFyICopDQorP1F1ZXJ5TnRmc1N1cHBvcnRJbmZvQERQX0RSSVZFQEBTR0pQQVhQQUVAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgSUZTX1NZU1RFTTo6UXVlcnlOdGZzVGltZSh1bmlvbiBfTEFSR0VfSU5URUdFUiAqKQ0KKz9RdWVyeU50ZnNUaW1lQElGU19TWVNURU1AQFNHWFBBVF9MQVJHRV9JTlRFR0VSQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX3N0ZGNhbGwgSUZTX1NZU1RFTTo6UXVlcnlOdGZzVmVyc2lvbih1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgY2hhciAqLGNsYXNzIExPR19JT19EUF9EUklWRSAqLHZvaWQgKikNCis/UXVlcnlOdGZzVmVyc2lvbkBJRlNfU1lTVEVNQEBTR0VQQUUwUEFWTE9HX0lPX0RQX0RSSVZFQEBQQVhAWg0KKzsgcHVibGljOiBjbGFzcyBCSUdfSU5UICBfX3RoaXNjYWxsIE5VTUJFUl9TRVQ6OlF1ZXJ5TnVtYmVyKGNsYXNzIEJJR19JTlQpY29uc3QgDQorP1F1ZXJ5TnVtYmVyQE5VTUJFUl9TRVRAQFFCRT9BVkJJR19JTlRAQFYyQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBJRlNfU1lTVEVNOjpRdWVyeVBhZ2VTaXplKHZvaWQpDQorP1F1ZXJ5UGFnZVNpemVASUZTX1NZU1RFTUBAU0dLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIERJR1JBUEg6OlF1ZXJ5UGFyZW50cyh1bnNpZ25lZCBsb25nLGNsYXNzIE5VTUJFUl9TRVQgKiljb25zdCANCis/UXVlcnlQYXJlbnRzQERJR1JBUEhAQFFCRUVLUEFWTlVNQkVSX1NFVEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIERJR1JBUEg6OlF1ZXJ5UGFyZW50c1dpdGhDaGlsZHJlbihjbGFzcyBOVU1CRVJfU0VUICosdW5zaWduZWQgbG9uZyljb25zdCANCis/UXVlcnlQYXJlbnRzV2l0aENoaWxkcmVuQERJR1JBUEhAQFFCRUVQQVZOVU1CRVJfU0VUQEBLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIERQX0RSSVZFOjpRdWVyeVBoeXNpY2FsU2VjdG9yU2l6ZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVBoeXNpY2FsU2VjdG9yU2l6ZUBEUF9EUklWRUBAUUJFS1haDQorOyBwdWJsaWM6IGVudW0gX01FRElBX1RZUEUgIF9fdGhpc2NhbGwgRFBfRFJJVkU6OlF1ZXJ5UmVjb21tZW5kZWRNZWRpYVR5cGUodm9pZCljb25zdCANCis/UXVlcnlSZWNvbW1lbmRlZE1lZGlhVHlwZUBEUF9EUklWRUBAUUJFP0FXNF9NRURJQV9UWVBFQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBEUF9EUklWRTo6UXVlcnlTZWN0b3JTaXplKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2VjdG9yU2l6ZUBEUF9EUklWRUBAVUJFS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgQklHX0lOVCAgX190aGlzY2FsbCBEUF9EUklWRTo6UXVlcnlTZWN0b3JzKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2VjdG9yc0BEUF9EUklWRUBAVUJFP0FWQklHX0lOVEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBUTElOSzo6UXVlcnlTaXplKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2l6ZUBUTElOS0BAUUJFR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBNT1VOVF9QT0lOVF9NQVA6OlF1ZXJ5Vm9sdW1lTmFtZShjbGFzcyBXU1RSSU5HICosY2xhc3MgV1NUUklORyAqKQ0KKz9RdWVyeVZvbHVtZU5hbWVATU9VTlRfUE9JTlRfTUFQQEBRQUVFUEFWV1NUUklOR0BAMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBJT19EUF9EUklWRTo6UmVhZChjbGFzcyBCSUdfSU5ULHVuc2lnbmVkIGxvbmcsdm9pZCAqKQ0KKz9SZWFkQElPX0RQX0RSSVZFQEBRQUVFVkJJR19JTlRAQEtQQVhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgTE9HX0lPX0RQX0RSSVZFOjpSZWFkKGNsYXNzIEJJR19JTlQsdW5zaWduZWQgbG9uZyx2b2lkICopDQorP1JlYWRATE9HX0lPX0RQX0RSSVZFQEBRQUVFVkJJR19JTlRAQEtQQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBTRUNSVU46OlJlYWQodm9pZCkNCis/UmVhZEBTRUNSVU5AQFVBRUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgVk9MX0xJT0RQRFJWOjpSZWNvdmVyKGNsYXNzIFdTVFJJTkcgY29uc3QgKixjbGFzcyBNRVNTQUdFICopDQorP1JlY292ZXJAVk9MX0xJT0RQRFJWQEBRQUVFUEJWV1NUUklOR0BAUEFWTUVTU0FHRUBAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19zdGRjYWxsIFNOQVBTSE9UOjpSZWxlYXNlVm9sdW1lU25hcHNob3QoY2xhc3MgU05BUFNIT1QgKikNCis/UmVsZWFzZVZvbHVtZVNuYXBzaG90QFNOQVBTSE9UQEBTR0VQQVYxQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBOVU1CRVJfU0VUOjpSZW1vdmUoY2xhc3MgTlVNQkVSX1NFVCBjb25zdCAqKQ0KKz9SZW1vdmVATlVNQkVSX1NFVEBAUUFFRVBCVjFAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIE5VTUJFUl9TRVQ6OlJlbW92ZShjbGFzcyBCSUdfSU5ULGNsYXNzIEJJR19JTlQpDQorP1JlbW92ZUBOVU1CRVJfU0VUQEBRQUVFVkJJR19JTlRAQDBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgTlVNQkVSX1NFVDo6UmVtb3ZlKGNsYXNzIEJJR19JTlQpDQorP1JlbW92ZUBOVU1CRVJfU0VUQEBRQUVFVkJJR19JTlRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBOVU1CRVJfU0VUOjpSZW1vdmVBbGwodm9pZCkNCis/UmVtb3ZlQWxsQE5VTUJFUl9TRVRAQFFBRUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgU1BBUlNFX1NFVDo6UmVtb3ZlQWxsKHZvaWQpDQorP1JlbW92ZUFsbEBTUEFSU0VfU0VUQEBRQUVFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIERJR1JBUEg6OlJlbW92ZUVkZ2UodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9SZW1vdmVFZGdlQERJR1JBUEhAQFFBRUVLS0BaDQorOyB2b2lkIF9fc3RkY2FsbCBSZXN0b3JlVGhyZWFkRXhlY3V0aW9uU3RhdGUobG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9SZXN0b3JlVGhyZWFkRXhlY3V0aW9uU3RhdGVAQFlHWEpLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIElOVFNUQUNLOjpSZXZlcnNlQ29weShjbGFzcyBJTlRTVEFDSyAqKQ0KKz9SZXZlcnNlQ29weUBJTlRTVEFDS0BAUUFFRVBBVjFAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIERQX0RSSVZFOjpTZW5kU29ueU1TRm9ybWF0Q21kKHZvaWQpDQorP1NlbmRTb255TVNGb3JtYXRDbWRARFBfRFJJVkVAQFFBRUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgRFBfRFJJVkU6OlNlbmRTb255TVNJbnF1aXJ5Q21kKHN0cnVjdCBTT05ZX01TX0lOUVVJUllfREFUQSAqKQ0KKz9TZW5kU29ueU1TSW5xdWlyeUNtZEBEUF9EUklWRUBAUUFFRVBBVVNPTllfTVNfSU5RVUlSWV9EQVRBQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgRFBfRFJJVkU6OlNlbmRTb255TVNNb2RlU2Vuc2VDbWQoc3RydWN0IFNPTllfTVNfTU9ERV9TRU5TRV9EQVRBICopDQorP1NlbmRTb255TVNNb2RlU2Vuc2VDbWRARFBfRFJJVkVAQFFBRUVQQVVTT05ZX01TX01PREVfU0VOU0VfREFUQUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIERQX0RSSVZFOjpTZW5kU29ueU1TUmVxdWVzdFNlbnNlQ21kKHN0cnVjdCBfU0VOU0VfREFUQSAqKQ0KKz9TZW5kU29ueU1TUmVxdWVzdFNlbnNlQ21kQERQX0RSSVZFQEBRQUVFUEFVX1NFTlNFX0RBVEFAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBEUF9EUklWRTo6U2VuZFNvbnlNU1Rlc3RVbml0UmVhZHlDbWQoc3RydWN0IF9TRU5TRV9EQVRBICopDQorP1NlbmRTb255TVNUZXN0VW5pdFJlYWR5Q21kQERQX0RSSVZFQEBRQUVFUEFVX1NFTlNFX0RBVEFAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBCSUdfSU5UOjpTZXQodW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyIGNvbnN0ICopDQorP1NldEBCSUdfSU5UQEBRQUVYRVBCRUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fc3RkY2FsbCBWT0xfTElPRFBEUlY6OlNldEF1dG9jaGtUaW1lT3V0KHVuc2lnbmVkIGxvbmcpDQorP1NldEF1dG9jaGtUaW1lT3V0QFZPTF9MSU9EUERSVkBAU0dFS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBJT19EUF9EUklWRTo6U2V0Q2FjaGUoY2xhc3MgRFJJVkVfQ0FDSEUgKikNCis/U2V0Q2FjaGVASU9fRFBfRFJJVkVAQFFBRVhQQVZEUklWRV9DQUNIRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIExPR19JT19EUF9EUklWRTo6U2V0U3lzdGVtSWQodW5zaWduZWQgY2hhcikNCis/U2V0U3lzdGVtSWRATE9HX0lPX0RQX0RSSVZFQEBRQUVFRUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBWT0xfTElPRFBEUlY6OlNldFZvbHVtZUxhYmVsQW5kUHJpbnRGb3JtYXRSZXBvcnQoY2xhc3MgV1NUUklORyBjb25zdCAqLGNsYXNzIE1FU1NBR0UgKikNCis/U2V0Vm9sdW1lTGFiZWxBbmRQcmludEZvcm1hdFJlcG9ydEBWT0xfTElPRFBEUlZAQFFBRUVQQlZXU1RSSU5HQEBQQVZNRVNTQUdFQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgVExJTks6OlNoZWxsU29ydCh2b2lkKQ0KKz9TaGVsbFNvcnRAVExJTktAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgVExJTks6OlNvcnQodm9pZCkNCis/U29ydEBUTElOS0BAUUFFWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBJT19EUF9EUklWRTo6VmVyaWZ5KGNsYXNzIEJJR19JTlQsY2xhc3MgQklHX0lOVCkNCis/VmVyaWZ5QElPX0RQX0RSSVZFQEBRQUVFVkJJR19JTlRAQDBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgSU9fRFBfRFJJVkU6OlZlcmlmeShjbGFzcyBCSUdfSU5ULGNsYXNzIEJJR19JTlQsY2xhc3MgTlVNQkVSX1NFVCAqKQ0KKz9WZXJpZnlASU9fRFBfRFJJVkVAQFFBRUVWQklHX0lOVEBAMFBBVk5VTUJFUl9TRVRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBJT19EUF9EUklWRTo6V3JpdGUoY2xhc3MgQklHX0lOVCx1bnNpZ25lZCBsb25nLHZvaWQgKikNCis/V3JpdGVASU9fRFBfRFJJVkVAQFFBRUVWQklHX0lOVEBAS1BBWEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBMT0dfSU9fRFBfRFJJVkU6OldyaXRlKGNsYXNzIEJJR19JTlQsdW5zaWduZWQgbG9uZyx2b2lkICopDQorP1dyaXRlQExPR19JT19EUF9EUklWRUBAUUFFRVZCSUdfSU5UQEBLUEFYQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgU0VDUlVOOjpXcml0ZSh2b2lkKQ0KKz9Xcml0ZUBTRUNSVU5AQFVBRUVYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX3N0ZGNhbGwgSUZTX1NZU1RFTTo6V3JpdGVUb0ZpbGUoY2xhc3MgV1NUUklORyBjb25zdCAqLHZvaWQgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIpDQorP1dyaXRlVG9GaWxlQElGU19TWVNURU1AQFNHRVBCVldTVFJJTkdAQFBBWEtFQFoNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aWdtcGFnbnQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lnbXBhZ250LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMzk4YmRiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lnbXBhZ250LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElHTVBBR05ULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJR01QQUdOVC5kbGwNCitFWFBPUlRTDQorU25tcEV4dGVuc2lvbkNsb3NlDQorU25tcEV4dGVuc2lvbkluaXQNCitTbm1wRXh0ZW5zaW9uUXVlcnkNCitTbm1wRXh0ZW5zaW9uVHJhcA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpaXNleHQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lpc2V4dC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2U0MTdiMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpaXNleHQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSUlTRVhULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJSVNFWFQuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lpc2xvZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWlzbG9nLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZGVlMWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lpc2xvZy5kZWYKQEAgLTAsMCArMSwxMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSUlTTE9HLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJSVNMT0cuRExMDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExPR0dJTkc6OkxPR0dJTkcoY2xhc3MgTE9HR0lORyBjb25zdCAmKQ0KKz8/MExPR0dJTkdAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgT0RCQ19DT05ORUNUSU9OOjpPREJDX0NPTk5FQ1RJT04odm9pZCkNCis/PzBPREJDX0NPTk5FQ1RJT05AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE9EQkNfUEFSQU1FVEVSOjpPREJDX1BBUkFNRVRFUih1bnNpZ25lZCBzaG9ydCxzaG9ydCxzaG9ydCxzaG9ydCx1bnNpZ25lZCBsb25nKQ0KKz8/ME9EQkNfUEFSQU1FVEVSQEBRQUVAR0ZGRktAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE9EQkNfQ09OTkVDVElPTjo6fk9EQkNfQ09OTkVDVElPTih2b2lkKQ0KKz8/MU9EQkNfQ09OTkVDVElPTkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgT0RCQ19QQVJBTUVURVI6On5PREJDX1BBUkFNRVRFUih2b2lkKQ0KKz8/MU9EQkNfUEFSQU1FVEVSQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBPREJDX1NUQVRFTUVOVDo6fk9EQkNfU1RBVEVNRU5UKHZvaWQpDQorPz8xT0RCQ19TVEFURU1FTlRAQFFBRUBYWg0KKzsgcHVibGljOiBjbGFzcyBMT0dHSU5HICYgX190aGlzY2FsbCBMT0dHSU5HOjpvcGVyYXRvcj0oY2xhc3MgTE9HR0lORyBjb25zdCAmKQ0KKz8/NExPR0dJTkdAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBPREJDX1NUQVRFTUVOVCAqIF9fdGhpc2NhbGwgT0RCQ19DT05ORUNUSU9OOjpBbGxvY1N0YXRlbWVudCh2b2lkKQ0KKz9BbGxvY1N0YXRlbWVudEBPREJDX0NPTk5FQ1RJT05AQFFBRVBBVk9EQkNfU1RBVEVNRU5UQEBYWg0KKzsgcHVibGljOiBzaG9ydCBfX3RoaXNjYWxsIE9EQkNfUEFSQU1FVEVSOjpCaW5kKHZvaWQgKikNCis/QmluZEBPREJDX1BBUkFNRVRFUkBAUUFFRlBBWEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9EQkNfU1RBVEVNRU5UOjpCaW5kUGFyYW1ldGVyKGNsYXNzIE9EQkNfUEFSQU1FVEVSICopDQorP0JpbmRQYXJhbWV0ZXJAT0RCQ19TVEFURU1FTlRAQFFBRUhQQVZPREJDX1BBUkFNRVRFUkBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT0RCQ19DT05ORUNUSU9OOjpDbG9zZSh2b2lkKQ0KKz9DbG9zZUBPREJDX0NPTk5FQ1RJT05AQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPREJDX1BBUkFNRVRFUjo6Q29weVZhbHVlKHVuc2lnbmVkIGxvbmcpDQorP0NvcHlWYWx1ZUBPREJDX1BBUkFNRVRFUkBAUUFFSEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPREJDX1BBUkFNRVRFUjo6Q29weVZhbHVlKHN0cnVjdCBfU1lTVEVNVElNRSAqKQ0KKz9Db3B5VmFsdWVAT0RCQ19QQVJBTUVURVJAQFFBRUhQQVVfU1lTVEVNVElNRUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT0RCQ19QQVJBTUVURVI6OkNvcHlWYWx1ZSh2b2lkICosbG9uZykNCis/Q29weVZhbHVlQE9EQkNfUEFSQU1FVEVSQEBRQUVIUEFYSkBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9EQkNfUEFSQU1FVEVSOjpDb3B5VmFsdWUoY2hhciBjb25zdCAqKQ0KKz9Db3B5VmFsdWVAT0RCQ19QQVJBTUVURVJAQFFBRUhQQkRAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPREJDX1BBUkFNRVRFUjo6Q29weVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NvcHlWYWx1ZUBPREJDX1BBUkFNRVRFUkBAUUFFSFBCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBPREJDX0NPTk5FQ1RJT046OkRpc3BsYXlTaXplKHNob3J0LHVuc2lnbmVkIGxvbmcpDQorP0Rpc3BsYXlTaXplQE9EQkNfQ09OTkVDVElPTkBAU0dLRktAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPREJDX1NUQVRFTUVOVDo6RXhlY0RpcmVjdChjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/RXhlY0RpcmVjdEBPREJDX1NUQVRFTUVOVEBAUUFFSFBCREtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPREJDX1NUQVRFTUVOVDo6RXhlY3V0ZVN0YXRlbWVudCh2b2lkKQ0KKz9FeGVjdXRlU3RhdGVtZW50QE9EQkNfU1RBVEVNRU5UQEBRQUVIWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIE9EQkNfU1RBVEVNRU5UOjpGcmVlQ29sdW1uTWVtb3J5KHZvaWQpDQorP0ZyZWVDb2x1bW5NZW1vcnlAT0RCQ19TVEFURU1FTlRAQFFBRVhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPREJDX0NPTk5FQ1RJT046OkdldEluZm8odW5zaWduZWQgbG9uZyx2b2lkICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICopDQorP0dldEluZm9AT0RCQ19DT05ORUNUSU9OQEBRQUVIS1BBWEtQQUtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPREJDX0NPTk5FQ1RJT046OkdldExhc3RFcnJvclRleHQoY2xhc3MgU1RSICosdm9pZCAqLHNob3J0KWNvbnN0IA0KKz9HZXRMYXN0RXJyb3JUZXh0QE9EQkNfQ09OTkVDVElPTkBAUUJFSFBBVlNUUkBAUEFYRkBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9EQkNfQ09OTkVDVElPTjo6R2V0TGFzdEVycm9yVGV4dEFzSHRtbChjbGFzcyBTVFIgKix2b2lkICosc2hvcnQpY29uc3QgDQorP0dldExhc3RFcnJvclRleHRBc0h0bWxAT0RCQ19DT05ORUNUSU9OQEBRQkVIUEFWU1RSQEBQQVhGQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT0RCQ19DT05ORUNUSU9OOjpJc1ZhbGlkKHZvaWQpY29uc3QgDQorP0lzVmFsaWRAT0RCQ19DT05ORUNUSU9OQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT0RCQ19TVEFURU1FTlQ6OklzVmFsaWQodm9pZCljb25zdCANCis/SXNWYWxpZEBPREJDX1NUQVRFTUVOVEBAUUJFSFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTE9HR0lORzo6TG9ja0V4Y2x1c2l2ZSh2b2lkKQ0KKz9Mb2NrRXhjbHVzaXZlQExPR0dJTkdAQEFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExPR0dJTkc6OkxvY2tTaGFyZWQodm9pZCkNCis/TG9ja1NoYXJlZEBMT0dHSU5HQEBBQUVYWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT0RCQ19TVEFURU1FTlQ6Ok1vcmVSZXN1bHRzKGludCAqKQ0KKz9Nb3JlUmVzdWx0c0BPREJDX1NUQVRFTUVOVEBAUUFFSFBBSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9EQkNfQ09OTkVDVElPTjo6T3BlbihjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixpbnQpDQorP09wZW5AT0RCQ19DT05ORUNUSU9OQEBRQUVIUEJEMDBIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT0RCQ19TVEFURU1FTlQ6OlByZXBhcmVTdGF0ZW1lbnQoY2hhciBjb25zdCAqKQ0KKz9QcmVwYXJlU3RhdGVtZW50QE9EQkNfU1RBVEVNRU5UQEBRQUVIUEJEQFoNCis7IHB1YmxpYzogc2hvcnQgX190aGlzY2FsbCBPREJDX1BBUkFNRVRFUjo6UXVlcnlDVHlwZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUNUeXBlQE9EQkNfUEFSQU1FVEVSQEBRQkVGWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE9EQkNfUEFSQU1FVEVSOjpRdWVyeUNiVmFsdWUodm9pZCljb25zdCANCis/UXVlcnlDYlZhbHVlQE9EQkNfUEFSQU1FVEVSQEBRQkVKWFoNCis7IHB1YmxpYzogbG9uZyAmIF9fdGhpc2NhbGwgT0RCQ19QQVJBTUVURVI6OlF1ZXJ5Q2JWYWx1ZVJlZih2b2lkKQ0KKz9RdWVyeUNiVmFsdWVSZWZAT0RCQ19QQVJBTUVURVJAQFFBRUFBSlhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9EQkNfU1RBVEVNRU5UOjpRdWVyeUNvbE5hbWVzKGNsYXNzIFNUUiAqICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcsaW50ICopDQorP1F1ZXJ5Q29sTmFtZXNAT0RCQ19TVEFURU1FTlRAQFFBRUhQQVBBVlNUUkBAUEFLS1BBSEBaDQorOyBwdWJsaWM6IHNob3J0IF9fdGhpc2NhbGwgT0RCQ19DT05ORUNUSU9OOjpRdWVyeUVycm9yQ29kZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUVycm9yQ29kZUBPREJDX0NPTk5FQ1RJT05AQFFCRUZYWg0KKzsgcHVibGljOiBzaG9ydCBfX3RoaXNjYWxsIE9EQkNfU1RBVEVNRU5UOjpRdWVyeUVycm9yQ29kZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUVycm9yQ29kZUBPREJDX1NUQVRFTUVOVEBAUUJFRlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBPREJDX1BBUkFNRVRFUjo6UXVlcnlNYXhDYlZhbHVlKHZvaWQpY29uc3QgDQorP1F1ZXJ5TWF4Q2JWYWx1ZUBPREJDX1BBUkFNRVRFUkBAUUJFSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgT0RCQ19QQVJBTUVURVI6OlF1ZXJ5UGFyYW1OdW1iZXIodm9pZCljb25zdCANCis/UXVlcnlQYXJhbU51bWJlckBPREJDX1BBUkFNRVRFUkBAUUJFR1haDQorOyBwdWJsaWM6IHNob3J0IF9fdGhpc2NhbGwgT0RCQ19QQVJBTUVURVI6OlF1ZXJ5UGFyYW1UeXBlKHZvaWQpY29uc3QgDQorP1F1ZXJ5UGFyYW1UeXBlQE9EQkNfUEFSQU1FVEVSQEBRQkVGWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIE9EQkNfUEFSQU1FVEVSOjpRdWVyeVByZWNpc2lvbih2b2lkKWNvbnN0IA0KKz9RdWVyeVByZWNpc2lvbkBPREJDX1BBUkFNRVRFUkBAUUJFS1haDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9EQkNfU1RBVEVNRU5UOjpRdWVyeVJvd0NvdW50KGxvbmcgKikNCis/UXVlcnlSb3dDb3VudEBPREJDX1NUQVRFTUVOVEBAUUFFSFBBSkBaDQorOyBwdWJsaWM6IHNob3J0IF9fdGhpc2NhbGwgT0RCQ19QQVJBTUVURVI6OlF1ZXJ5U2NhbGUodm9pZCljb25zdCANCis/UXVlcnlTY2FsZUBPREJDX1BBUkFNRVRFUkBAUUJFRlhaDQorOyBwdWJsaWM6IHNob3J0IF9fdGhpc2NhbGwgT0RCQ19QQVJBTUVURVI6OlF1ZXJ5U3FsVHlwZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVNxbFR5cGVAT0RCQ19QQVJBTUVURVJAQFFCRUZYWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBPREJDX1BBUkFNRVRFUjo6UXVlcnlWYWx1ZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVZhbHVlQE9EQkNfUEFSQU1FVEVSQEBRQkVQQVhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPREJDX1NUQVRFTUVOVDo6UXVlcnlWYWx1ZXNBc1N0cihjbGFzcyBTVFIgKiAqLGludCAqKQ0KKz9RdWVyeVZhbHVlc0FzU3RyQE9EQkNfU1RBVEVNRU5UQEBRQUVIUEFQQVZTVFJAQFBBSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9EQkNfQ09OTkVDVElPTjo6U2V0Q29ubmVjdE9wdGlvbih1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBsb25nKQ0KKz9TZXRDb25uZWN0T3B0aW9uQE9EQkNfQ09OTkVDVElPTkBAUUFFSEdLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT0RCQ19QQVJBTUVURVI6OlNldFZhbHVlQnVmZmVyKGxvbmcsbG9uZykNCis/U2V0VmFsdWVCdWZmZXJAT0RCQ19QQVJBTUVURVJAQFFBRUhKSkBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIE9EQkNfQ09OTkVDVElPTjo6U3VjY2VzcyhzaG9ydCkNCis/U3VjY2Vzc0BPREJDX0NPTk5FQ1RJT05AQFNHSEZAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExPR0dJTkc6OlVubG9jayh2b2lkKQ0KKz9VbmxvY2tATE9HR0lOR0BAQUFFWFhaDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aWlzbWFwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpaXNtYXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM2OWI1ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aWlzbWFwLmRlZgpAQCAtMCwwICsxLDQxOCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJSVNNQVAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElJU01BUC5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0FsbG9jU3RyaW5nOjpDQWxsb2NTdHJpbmcodm9pZCkNCis/PzBDQWxsb2NTdHJpbmdAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENCbG9iOjpDQmxvYih2b2lkKQ0KKz8/MENCbG9iQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQmxvYlhCRjo6Q0Jsb2JYQkYodm9pZCkNCis/PzBDQmxvYlhCRkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NlcnQxMU1hcHBpbmc6OkNDZXJ0MTFNYXBwaW5nKGNsYXNzIENJaXNBY2N0TWFwcGVyICopDQorPz8wQ0NlcnQxMU1hcHBpbmdAQFFBRUBQQVZDSWlzQWNjdE1hcHBlckBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ2VydEdsb2JhbFJ1bGVJbmZvOjpDQ2VydEdsb2JhbFJ1bGVJbmZvKHZvaWQpDQorPz8wQ0NlcnRHbG9iYWxSdWxlSW5mb0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NlcnRNYXBSdWxlOjpDQ2VydE1hcFJ1bGUodm9pZCkNCis/PzBDQ2VydE1hcFJ1bGVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEZWNvZGVkQ2VydDo6Q0RlY29kZWRDZXJ0KHN0cnVjdCBfQ0VSVF9DT05URVhUICopDQorPz8wQ0RlY29kZWRDZXJ0QEBRQUVAUEFVX0NFUlRfQ09OVEVYVEBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSWlzQWNjdE1hcHBlcjo6Q0lpc0FjY3RNYXBwZXIodm9pZCkNCis/PzBDSWlzQWNjdE1hcHBlckBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0lpc0NlcnQxMU1hcHBlcjo6Q0lpc0NlcnQxMU1hcHBlcih2b2lkKQ0KKz8/MENJaXNDZXJ0MTFNYXBwZXJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJaXNSdWxlTWFwcGVyOjpDSWlzUnVsZU1hcHBlcih2b2lkKQ0KKz8/MENJaXNSdWxlTWFwcGVyQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSXNzdWVyU3RvcmU6OkNJc3N1ZXJTdG9yZSh2b2lkKQ0KKz8/MENJc3N1ZXJTdG9yZUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1B0ckR3b3JkWEJGOjpDUHRyRHdvcmRYQkYodm9pZCkNCis/PzBDUHRyRHdvcmRYQkZAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENQdHJYQkY6OkNQdHJYQkYodm9pZCkNCis/PzBDUHRyWEJGQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU3RvcmVYQkY6OkNTdG9yZVhCRih1bnNpZ25lZCBpbnQpDQorPz8wQ1N0b3JlWEJGQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0FsbG9jU3RyaW5nOjp+Q0FsbG9jU3RyaW5nKHZvaWQpDQorPz8xQ0FsbG9jU3RyaW5nQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQmxvYjo6fkNCbG9iKHZvaWQpDQorPz8xQ0Jsb2JAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENCbG9iWEJGOjp+Q0Jsb2JYQkYodm9pZCkNCis/PzFDQmxvYlhCRkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NlcnQxMU1hcHBpbmc6On5DQ2VydDExTWFwcGluZyh2b2lkKQ0KKz8/MUNDZXJ0MTFNYXBwaW5nQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ2VydEdsb2JhbFJ1bGVJbmZvOjp+Q0NlcnRHbG9iYWxSdWxlSW5mbyh2b2lkKQ0KKz8/MUNDZXJ0R2xvYmFsUnVsZUluZm9AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDZXJ0TWFwUnVsZTo6fkNDZXJ0TWFwUnVsZSh2b2lkKQ0KKz8/MUNDZXJ0TWFwUnVsZUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0RlY29kZWRDZXJ0Ojp+Q0RlY29kZWRDZXJ0KHZvaWQpDQorPz8xQ0RlY29kZWRDZXJ0QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSWlzQWNjdE1hcHBlcjo6fkNJaXNBY2N0TWFwcGVyKHZvaWQpDQorPz8xQ0lpc0FjY3RNYXBwZXJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJaXNDZXJ0MTFNYXBwZXI6On5DSWlzQ2VydDExTWFwcGVyKHZvaWQpDQorPz8xQ0lpc0NlcnQxMU1hcHBlckBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0lpc1J1bGVNYXBwZXI6On5DSWlzUnVsZU1hcHBlcih2b2lkKQ0KKz8/MUNJaXNSdWxlTWFwcGVyQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSXNzdWVyU3RvcmU6On5DSXNzdWVyU3RvcmUodm9pZCkNCis/PzFDSXNzdWVyU3RvcmVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTdG9yZVhCRjo6fkNTdG9yZVhCRih2b2lkKQ0KKz8/MUNTdG9yZVhCRkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1N0clB0clhCRjo6fkNTdHJQdHJYQkYodm9pZCkNCis/PzFDU3RyUHRyWEJGQEBRQUVAWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTdG9yZVhCRjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GQ1N0b3JlWEJGQEBRQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDSWlzQWNjdE1hcHBlcjo6QWRkKGNsYXNzIENJaXNNYXBwaW5nICosaW50KQ0KKz9BZGRAQ0lpc0FjY3RNYXBwZXJAQFVBRUhQQVZDSWlzTWFwcGluZ0BASEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDQmxvYlhCRjo6QWRkRW50cnkodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcpDQorP0FkZEVudHJ5QENCbG9iWEJGQEBRQUVLUEFFS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDU3RyUHRyWEJGOjpBZGRFbnRyeShjaGFyICopDQorP0FkZEVudHJ5QENTdHJQdHJYQkZAQFFBRUtQQURAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDSWlzQWNjdE1hcHBlcjo6QWRkRXgoY2xhc3MgQ0lpc01hcHBpbmcgKikNCis/QWRkRXhAQ0lpc0FjY3RNYXBwZXJAQFVBRUtQQVZDSWlzTWFwcGluZ0BAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NlcnRNYXBSdWxlOjpBZGRJc3N1ZXJFbnRyeShjaGFyICosaW50KQ0KKz9BZGRJc3N1ZXJFbnRyeUBDQ2VydE1hcFJ1bGVAQFFBRUhQQURIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENQdHJEd29yZFhCRjo6QWRkUHRyKHVuc2lnbmVkIGxvbmcpDQorP0FkZFB0ckBDUHRyRHdvcmRYQkZAQFFBRUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENQdHJYQkY6OkFkZFB0cih2b2lkICopDQorP0FkZFB0ckBDUHRyWEJGQEBRQUVLUEFYQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENJaXNSdWxlTWFwcGVyOjpBZGRSdWxlKGNsYXNzIENDZXJ0TWFwUnVsZSAqKQ0KKz9BZGRSdWxlQENJaXNSdWxlTWFwcGVyQEBRQUVLUEFWQ0NlcnRNYXBSdWxlQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0lpc1J1bGVNYXBwZXI6OkFkZFJ1bGUodm9pZCkNCis/QWRkUnVsZUBDSWlzUnVsZU1hcHBlckBAUUFFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDQ2VydE1hcFJ1bGU6OkFkZFJ1bGVFbGVtKHVuc2lnbmVkIGxvbmcsZW51bSBDRVJUX0ZJRUxEX0lELGNoYXIgKix1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9BZGRSdWxlRWxlbUBDQ2VydE1hcFJ1bGVAQFFBRUtLVzRDRVJUX0ZJRUxEX0lEQEBQQURQQUVLS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDZXJ0R2xvYmFsUnVsZUluZm86OkFkZFJ1bGVPcmRlcih2b2lkKQ0KKz9BZGRSdWxlT3JkZXJAQ0NlcnRHbG9iYWxSdWxlSW5mb0BAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENBbGxvY1N0cmluZzo6QXBwZW5kKGNoYXIgKikNCis/QXBwZW5kQENBbGxvY1N0cmluZ0BAUUFFSFBBREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTdG9yZVhCRjo6QXBwZW5kKHVuc2lnbmVkIGxvbmcpDQorP0FwcGVuZEBDU3RvcmVYQkZAQFFBRUhLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1N0b3JlWEJGOjpBcHBlbmQoY2hhciAqKQ0KKz9BcHBlbmRAQ1N0b3JlWEJGQEBRQUVIUEFEQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1N0b3JlWEJGOjpBcHBlbmQodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcpDQorP0FwcGVuZEBDU3RvcmVYQkZAQFFBRUhQQUVLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1N0b3JlWEJGOjpBcHBlbmRaKGNoYXIgKikNCis/QXBwZW5kWkBDU3RvcmVYQkZAQFFBRUhQQURAWg0KKzsgaW50IF9fc3RkY2FsbCBCaW5hcnlUb01hdGNoUmVxdWVzdCh1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyxjaGFyICogKikNCis/QmluYXJ5VG9NYXRjaFJlcXVlc3RAQFlHSFBBRUtQQVBBREBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RvcmVYQkY6OkNsZWFyKHZvaWQpDQorP0NsZWFyQENTdG9yZVhCRkBAUUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0lpc01hcHBpbmc6OkNsb25lKGNsYXNzIENJaXNNYXBwaW5nICogKikNCis/Q2xvbmVAQ0lpc01hcHBpbmdAQFVBRUhQQVBBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lpc01hcHBpbmc6OkNsb25lRXgoY2xhc3MgQ0lpc01hcHBpbmcgKiAqLGNoYXIgKiAqLGNoYXIgKiAqLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgaW50KQ0KKz9DbG9uZUV4QENJaXNNYXBwaW5nQEBRQUVIUEFQQVYxQFBBUEFEMVBBSzJJQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lpc01hcHBpbmc6OkNvcHkoY2xhc3MgQ0lpc01hcHBpbmcgKikNCis/Q29weUBDSWlzTWFwcGluZ0BAUUFFSFBBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lpc0FjY3RNYXBwZXI6OkNyZWF0ZSh2b2lkKQ0KKz9DcmVhdGVAQ0lpc0FjY3RNYXBwZXJAQFFBRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIENJaXNNYXBwaW5nICogX190aGlzY2FsbCBDSWlzQWNjdE1hcHBlcjo6Q3JlYXRlTmV3TWFwcGluZyh2b2lkKQ0KKz9DcmVhdGVOZXdNYXBwaW5nQENJaXNBY2N0TWFwcGVyQEBVQUVQQVZDSWlzTWFwcGluZ0BAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0lpc01hcHBpbmcgKiBfX3RoaXNjYWxsIENJaXNDZXJ0MTFNYXBwZXI6OkNyZWF0ZU5ld01hcHBpbmcodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcpDQorP0NyZWF0ZU5ld01hcHBpbmdAQ0lpc0NlcnQxMU1hcHBlckBAUUFFUEFWQ0lpc01hcHBpbmdAQFBBRUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIENJaXNNYXBwaW5nICogX190aGlzY2FsbCBDSWlzQ2VydDExTWFwcGVyOjpDcmVhdGVOZXdNYXBwaW5nKHZvaWQpDQorP0NyZWF0ZU5ld01hcHBpbmdAQ0lpc0NlcnQxMU1hcHBlckBAVUFFUEFWQ0lpc01hcHBpbmdAQFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTdG9yZVhCRjo6RGVjcmVhc2VVc2UodW5zaWduZWQgbG9uZykNCis/RGVjcmVhc2VVc2VAQ1N0b3JlWEJGQEBRQUVIS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJaXNBY2N0TWFwcGVyOjpEZWxldGUodW5zaWduZWQgbG9uZyxpbnQpDQorP0RlbGV0ZUBDSWlzQWNjdE1hcHBlckBAUUFFSEtIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lpc0FjY3RNYXBwZXI6OkRlbGV0ZSh2b2lkKQ0KKz9EZWxldGVAQ0lpc0FjY3RNYXBwZXJAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQmxvYlhCRjo6RGVsZXRlRW50cnkodW5zaWduZWQgbG9uZykNCis/RGVsZXRlRW50cnlAQ0Jsb2JYQkZAQFFBRUhLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1N0clB0clhCRjo6RGVsZXRlRW50cnkodW5zaWduZWQgbG9uZykNCis/RGVsZXRlRW50cnlAQ1N0clB0clhCRkBAUUFFSEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2VydE1hcFJ1bGU6OkRlbGV0ZUlzc3VlckVudHJ5KHVuc2lnbmVkIGxvbmcpDQorP0RlbGV0ZUlzc3VlckVudHJ5QENDZXJ0TWFwUnVsZUBAUUFFSEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUHRyRHdvcmRYQkY6OkRlbGV0ZVB0cih1bnNpZ25lZCBsb25nKQ0KKz9EZWxldGVQdHJAQ1B0ckR3b3JkWEJGQEBRQUVIS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENQdHJYQkY6OkRlbGV0ZVB0cih1bnNpZ25lZCBsb25nKQ0KKz9EZWxldGVQdHJAQ1B0clhCRkBAUUFFSEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSWlzUnVsZU1hcHBlcjo6RGVsZXRlUnVsZSh1bnNpZ25lZCBsb25nKQ0KKz9EZWxldGVSdWxlQENJaXNSdWxlTWFwcGVyQEBRQUVIS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDZXJ0R2xvYmFsUnVsZUluZm86OkRlbGV0ZVJ1bGVCeUlkKHVuc2lnbmVkIGxvbmcsaW50KQ0KKz9EZWxldGVSdWxlQnlJZEBDQ2VydEdsb2JhbFJ1bGVJbmZvQEBRQUVIS0hAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2VydE1hcFJ1bGU6OkRlbGV0ZVJ1bGVFbGVtKHVuc2lnbmVkIGxvbmcpDQorP0RlbGV0ZVJ1bGVFbGVtQENDZXJ0TWFwUnVsZUBAUUFFSEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2VydE1hcFJ1bGU6OkRlbGV0ZVJ1bGVFbGVtc0J5RmllbGQoZW51bSBDRVJUX0ZJRUxEX0lEKQ0KKz9EZWxldGVSdWxlRWxlbXNCeUZpZWxkQENDZXJ0TWFwUnVsZUBAUUFFSFc0Q0VSVF9GSUVMRF9JREBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDSWlzTWFwcGluZzo6RGVzZXJpYWxpemUoc3RydWN0IF9pb2J1ZiAqLHZvaWQgKix2b2lkICopDQorP0Rlc2VyaWFsaXplQENJaXNNYXBwaW5nQEBVQUVIUEFVX2lvYnVmQEBQQVgxQFoNCis7IGNoYXIgKiBfX3N0ZGNhbGwgRW51bWVyYXRlS25vd25TdWJGaWVsZHModW5zaWduZWQgbG9uZykNCis/RW51bWVyYXRlS25vd25TdWJGaWVsZHNAQFlHUEFES0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJaXNBY2N0TWFwcGVyOjpGaW5kTWF0Y2goY2xhc3MgQ0lpc01hcHBpbmcgKixjbGFzcyBDSWlzTWFwcGluZyAqICosdW5zaWduZWQgbG9uZyAqKQ0KKz9GaW5kTWF0Y2hAQ0lpc0FjY3RNYXBwZXJAQFFBRUhQQVZDSWlzTWFwcGluZ0BAUEFQQVYyQFBBS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJaXNBY2N0TWFwcGVyOjpGbHVzaEFsdGVybmF0ZShpbnQpDQorP0ZsdXNoQWx0ZXJuYXRlQENJaXNBY2N0TWFwcGVyQEBRQUVISEBaDQorOyB2b2lkIF9fc3RkY2FsbCBGcmVlTWF0Y2hDb252ZXJzaW9uKHZvaWQgKikNCis/RnJlZU1hdGNoQ29udmVyc2lvbkBAWUdYUEFYQFoNCis7IHB1YmxpYzogY2hhciAqIF9fdGhpc2NhbGwgQ0FsbG9jU3RyaW5nOjpHZXQodm9pZCkNCis/R2V0QENBbGxvY1N0cmluZ0BAUUFFUEFEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ0Jsb2I6OkdldCh1bnNpZ25lZCBsb25nICopDQorP0dldEBDQmxvYkBAUUFFUEFFUEFLQFoNCis7IHB1YmxpYzogY2xhc3MgQ0Jsb2IgKiBfX3RoaXNjYWxsIENCbG9iWEJGOjpHZXRCbG9iKHVuc2lnbmVkIGxvbmcpDQorP0dldEJsb2JAQ0Jsb2JYQkZAQFFBRVBBVkNCbG9iQEBLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQ1N0b3JlWEJGOjpHZXRCdWZmKHZvaWQpDQorP0dldEJ1ZmZAQ1N0b3JlWEJGQEBRQUVQQUVYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQmxvYlhCRjo6R2V0RW50cnkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICogKix1bnNpZ25lZCBsb25nICopDQorP0dldEVudHJ5QENCbG9iWEJGQEBRQUVIS1BBUEFFUEFLQFoNCis7IHB1YmxpYzogY2hhciAqIF9fdGhpc2NhbGwgQ1N0clB0clhCRjo6R2V0RW50cnkodW5zaWduZWQgbG9uZykNCis/R2V0RW50cnlAQ1N0clB0clhCRkBAUUFFUEFES0BaDQorOyBwdWJsaWM6IGNsYXNzIENDZXJ0R2xvYmFsUnVsZUluZm8gKiBfX3RoaXNjYWxsIENJaXNSdWxlTWFwcGVyOjpHZXRHbG9iYWxSdWxlc0luZm8odm9pZCkNCis/R2V0R2xvYmFsUnVsZXNJbmZvQENJaXNSdWxlTWFwcGVyQEBRQUVQQVZDQ2VydEdsb2JhbFJ1bGVJbmZvQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0lJU01EQl9IRW50cnkgKiBfX3RoaXNjYWxsIENJaXNBY2N0TWFwcGVyOjpHZXRIaWVyYXJjaHkodW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRIaWVyYXJjaHlAQ0lpc0FjY3RNYXBwZXJAQFFBRVBBVV9JSVNNREJfSEVudHJ5QEBQQUtAWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgR2V0SWRGbGFncyhlbnVtIENFUlRfRklFTERfSUQpDQorP0dldElkRmxhZ3NAQFlHS1c0Q0VSVF9GSUVMRF9JREBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RlY29kZWRDZXJ0OjpHZXRJc3N1ZXIodm9pZCAqICosdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRJc3N1ZXJAQ0RlY29kZWRDZXJ0QEBRQUVIUEFQQVhQQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0NlcnRNYXBSdWxlOjpHZXRJc3N1ZXJDb3VudCh2b2lkKQ0KKz9HZXRJc3N1ZXJDb3VudEBDQ2VydE1hcFJ1bGVAQFFBRUtYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2VydE1hcFJ1bGU6OkdldElzc3VlckVudHJ5KHVuc2lnbmVkIGxvbmcsaW50ICosY2hhciAqICopDQorP0dldElzc3VlckVudHJ5QENDZXJ0TWFwUnVsZUBAUUFFSEtQQUhQQVBBREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDZXJ0TWFwUnVsZTo6R2V0SXNzdWVyRW50cnlCeU5hbWUoY2hhciAqLGludCAqKQ0KKz9HZXRJc3N1ZXJFbnRyeUJ5TmFtZUBDQ2VydE1hcFJ1bGVAQFFBRUhQQURQQUhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSWlzQWNjdE1hcHBlcjo6R2V0TWFwcGluZyh1bnNpZ25lZCBsb25nLGNsYXNzIENJaXNNYXBwaW5nICogKixpbnQsaW50KQ0KKz9HZXRNYXBwaW5nQENJaXNBY2N0TWFwcGVyQEBRQUVIS1BBUEFWQ0lpc01hcHBpbmdAQEhIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENJaXNBY2N0TWFwcGVyOjpHZXRNYXBwaW5nQ291bnQodm9pZCkNCis/R2V0TWFwcGluZ0NvdW50QENJaXNBY2N0TWFwcGVyQEBRQUVLWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NlcnRNYXBSdWxlOjpHZXRNYXRjaEFsbElzc3Vlcih2b2lkKQ0KKz9HZXRNYXRjaEFsbElzc3VlckBDQ2VydE1hcFJ1bGVAQFFBRUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0Jsb2JYQkY6OkdldE5iRW50cnkodm9pZCkNCis/R2V0TmJFbnRyeUBDQmxvYlhCRkBAUUFFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDU3RyUHRyWEJGOjpHZXROYkVudHJ5KHZvaWQpDQorP0dldE5iRW50cnlAQ1N0clB0clhCRkBAUUFFS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgQ0lpc01hcHBpbmc6OkdldE5iRmllbGQoY2hhciAqICogKikNCis/R2V0TmJGaWVsZEBDSWlzTWFwcGluZ0BAVUFFSVBBUEFQQURAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIENJaXNNYXBwaW5nOjpHZXROYkZpZWxkKGNoYXIgKiAqICosdW5zaWduZWQgbG9uZyAqICopDQorP0dldE5iRmllbGRAQ0lpc01hcHBpbmdAQFVBRUlQQVBBUEFEUEFQQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0lzc3VlclN0b3JlOjpHZXROYklzc3VlcnModm9pZCkNCis/R2V0TmJJc3N1ZXJzQENJc3N1ZXJTdG9yZUBAUUFFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDSWlzQWNjdE1hcHBlcjo6R2V0TmJNYXBwaW5nKGludCkNCis/R2V0TmJNYXBwaW5nQENJaXNBY2N0TWFwcGVyQEBRQUVLSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDUHRyRHdvcmRYQkY6OkdldE5iUHRyKHZvaWQpDQorP0dldE5iUHRyQENQdHJEd29yZFhCRkBAUUFFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDUHRyWEJGOjpHZXROYlB0cih2b2lkKQ0KKz9HZXROYlB0ckBDUHRyWEJGQEBRQUVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENJaXNBY2N0TWFwcGVyOjpHZXRPcHRpb25zKHZvaWQpDQorP0dldE9wdGlvbnNAQ0lpc0FjY3RNYXBwZXJAQFFBRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nICogX190aGlzY2FsbCBDUHRyRHdvcmRYQkY6OkdldFB0cih1bnNpZ25lZCBsb25nKQ0KKz9HZXRQdHJAQ1B0ckR3b3JkWEJGQEBRQUVQQUtLQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgQ1B0clhCRjo6R2V0UHRyKHVuc2lnbmVkIGxvbmcpDQorP0dldFB0ckBDUHRyWEJGQEBRQUVQQVhLQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgQ1B0clhCRjo6R2V0UHRyQWRkcih1bnNpZ25lZCBsb25nKQ0KKz9HZXRQdHJBZGRyQENQdHJYQkZAQFFBRVBBWEtAWg0KKzsgcHVibGljOiBjbGFzcyBDQ2VydE1hcFJ1bGUgKiBfX3RoaXNjYWxsIENJaXNSdWxlTWFwcGVyOjpHZXRSdWxlKHVuc2lnbmVkIGxvbmcpDQorP0dldFJ1bGVAQ0lpc1J1bGVNYXBwZXJAQFFBRVBBVkNDZXJ0TWFwUnVsZUBAS0BaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIENDZXJ0TWFwUnVsZTo6R2V0UnVsZUFjY291bnQodm9pZCkNCis/R2V0UnVsZUFjY291bnRAQ0NlcnRNYXBSdWxlQEBRQUVQQURYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0lpc1J1bGVNYXBwZXI6OkdldFJ1bGVDb3VudCh2b2lkKQ0KKz9HZXRSdWxlQ291bnRAQ0lpc1J1bGVNYXBwZXJAQFFBRUtYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2VydE1hcFJ1bGU6OkdldFJ1bGVEZW55QWNjZXNzKHZvaWQpDQorP0dldFJ1bGVEZW55QWNjZXNzQENDZXJ0TWFwUnVsZUBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDZXJ0TWFwUnVsZTo6R2V0UnVsZUVsZW0odW5zaWduZWQgbG9uZyxlbnVtIENFUlRfRklFTERfSUQgKixjaGFyICogKix1bnNpZ25lZCBsb25nICosY2hhciAqICosdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRSdWxlRWxlbUBDQ2VydE1hcFJ1bGVAQFFBRUhLUEFXNENFUlRfRklFTERfSURAQFBBUEFEUEFLMTJAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0NlcnRNYXBSdWxlOjpHZXRSdWxlRWxlbUNvdW50KHZvaWQpDQorP0dldFJ1bGVFbGVtQ291bnRAQ0NlcnRNYXBSdWxlQEBRQUVLWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NlcnRNYXBSdWxlOjpHZXRSdWxlRW5hYmxlZCh2b2lkKQ0KKz9HZXRSdWxlRW5hYmxlZEBDQ2VydE1hcFJ1bGVAQFFBRUhYWg0KKzsgcHVibGljOiBjaGFyICogX190aGlzY2FsbCBDQ2VydE1hcFJ1bGU6OkdldFJ1bGVOYW1lKHZvaWQpDQorP0dldFJ1bGVOYW1lQENDZXJ0TWFwUnVsZUBAUUFFUEFEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyAqIF9fdGhpc2NhbGwgQ0NlcnRHbG9iYWxSdWxlSW5mbzo6R2V0UnVsZU9yZGVyQXJyYXkodm9pZCkNCis/R2V0UnVsZU9yZGVyQXJyYXlAQ0NlcnRHbG9iYWxSdWxlSW5mb0BAUUFFUEFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENDZXJ0R2xvYmFsUnVsZUluZm86OkdldFJ1bGVPcmRlckNvdW50KHZvaWQpDQorP0dldFJ1bGVPcmRlckNvdW50QENDZXJ0R2xvYmFsUnVsZUluZm9AQFFBRUtYWg0KKzsgcHVibGljOiBjaGFyICogX190aGlzY2FsbCBDQ2VydE1hcFJ1bGU6OkdldFJ1bGVQYXNzd29yZCh2b2lkKQ0KKz9HZXRSdWxlUGFzc3dvcmRAQ0NlcnRNYXBSdWxlQEBRQUVQQURYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2VydEdsb2JhbFJ1bGVJbmZvOjpHZXRSdWxlc0VuYWJsZWQodm9pZCkNCis/R2V0UnVsZXNFbmFibGVkQENDZXJ0R2xvYmFsUnVsZUluZm9AQFFBRUhYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0NFUlRfUkROX0FUVFIgKiAqIF9fdGhpc2NhbGwgQ0RlY29kZWRDZXJ0OjpHZXRTdWJGaWVsZChlbnVtIENFUlRfRklFTERfSUQsY2hhciAqLHVuc2lnbmVkIGxvbmcgKikNCis/R2V0U3ViRmllbGRAQ0RlY29kZWRDZXJ0QEBRQUVQQVBBVV9DRVJUX1JETl9BVFRSQEBXNENFUlRfRklFTERfSURAQFBBRFBBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDU3RvcmVYQkY6OkdldFVzZWQodm9pZCkNCis/R2V0VXNlZEBDU3RvcmVYQkZAQFFBRUtYWg0KKzsgaW50IF9fc3RkY2FsbCBJSVN1dWRlY29kZShjaGFyICosdW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcgKixpbnQpDQorP0lJU3V1ZGVjb2RlQEBZR0hQQURQQUVQQUtIQFoNCis7IGludCBfX3N0ZGNhbGwgSUlTdXVlbmNvZGUodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqLGludCkNCis/SUlTdXVlbmNvZGVAQFlHSFBBRUswSEBaDQorOyB2b2lkIF9fc3RkY2FsbCBJbXBvcnRJSVNDZXJ0TWFwcGluZ3NUb0lJUzYodm9pZCkNCis/SW1wb3J0SUlTQ2VydE1hcHBpbmdzVG9JSVM2QEBZR1hYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQmxvYjo6SW5pdFNldCh1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZykNCis/SW5pdFNldEBDQmxvYkBAUUFFSFBBRUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0Jsb2JYQkY6Okluc2VydEVudHJ5KHVuc2lnbmVkIGxvbmcsY2hhciAqLHVuc2lnbmVkIGxvbmcpDQorP0luc2VydEVudHJ5QENCbG9iWEJGQEBRQUVLS1BBREtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1N0clB0clhCRjo6SW5zZXJ0RW50cnkodW5zaWduZWQgbG9uZyxjaGFyICopDQorP0luc2VydEVudHJ5QENTdHJQdHJYQkZAQFFBRUtLUEFEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENQdHJEd29yZFhCRjo6SW5zZXJ0UHRyKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/SW5zZXJ0UHRyQENQdHJEd29yZFhCRkBAUUFFS0tLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENQdHJYQkY6Okluc2VydFB0cih1bnNpZ25lZCBsb25nLHZvaWQgKikNCis/SW5zZXJ0UHRyQENQdHJYQkZAQFFBRUtLUEFYQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NlcnRHbG9iYWxSdWxlSW5mbzo6SXNWYWxpZCh2b2lkKQ0KKz9Jc1ZhbGlkQENDZXJ0R2xvYmFsUnVsZUluZm9AQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2VydE1hcFJ1bGU6OklzVmFsaWQodm9pZCkNCis/SXNWYWxpZEBDQ2VydE1hcFJ1bGVAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSWlzUnVsZU1hcHBlcjo6SXNWYWxpZCh2b2lkKQ0KKz9Jc1ZhbGlkQENJaXNSdWxlTWFwcGVyQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lpc0FjY3RNYXBwZXI6OkxvYWQodm9pZCkNCis/TG9hZEBDSWlzQWNjdE1hcHBlckBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTdG9yZVhCRjo6TG9hZCh2b2lkICopDQorP0xvYWRAQ1N0b3JlWEJGQEBRQUVIUEFYQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENJaXNBY2N0TWFwcGVyOjpMb2NrKHZvaWQpDQorP0xvY2tAQ0lpc0FjY3RNYXBwZXJAQFFBRVhYWg0KKzsgY2hhciAqIF9fc3RkY2FsbCBNYXBBc24xVG9TdWJGaWVsZChjaGFyICopDQorP01hcEFzbjFUb1N1YkZpZWxkQEBZR1BBRFBBREBaDQorOyBlbnVtIENFUlRfRklFTERfSUQgIF9fc3RkY2FsbCBNYXBGaWVsZFRvSWQoY2hhciAqKQ0KKz9NYXBGaWVsZFRvSWRAQFlHP0FXNENFUlRfRklFTERfSURAQFBBREBaDQorOyBjaGFyICogX19zdGRjYWxsIE1hcElkVG9GaWVsZChlbnVtIENFUlRfRklFTERfSUQpDQorP01hcElkVG9GaWVsZEBAWUdQQURXNENFUlRfRklFTERfSURAQEBaDQorOyBjaGFyICogX19zdGRjYWxsIE1hcFN1YkZpZWxkVG9Bc24xKGNoYXIgKikNCis/TWFwU3ViRmllbGRUb0FzbjFAQFlHUEFEUEFEQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDSWlzTWFwcGluZzo6TWFwcGluZ0dldEZpZWxkKHVuc2lnbmVkIGxvbmcsY2hhciAqICopDQorP01hcHBpbmdHZXRGaWVsZEBDSWlzTWFwcGluZ0BAVUFFSEtQQVBBREBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0lpc01hcHBpbmc6Ok1hcHBpbmdHZXRGaWVsZCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgKiAqLHVuc2lnbmVkIGxvbmcgKixpbnQpDQorP01hcHBpbmdHZXRGaWVsZEBDSWlzTWFwcGluZ0BAVUFFSEtQQVBBRVBBS0hAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSWlzQWNjdE1hcHBlcjo6TWFwcGluZ0dldEZpZWxkTGlzdChzdHJ1Y3QgX0lJU01EQl9GaWVsZHMgKiAqLHVuc2lnbmVkIGxvbmcgKikNCis/TWFwcGluZ0dldEZpZWxkTGlzdEBDSWlzQWNjdE1hcHBlckBAUUFFSFBBUEFVX0lJU01EQl9GaWVsZHNAQFBBS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0lpc01hcHBpbmc6Ok1hcHBpbmdTZXRGaWVsZCh1bnNpZ25lZCBsb25nLGNoYXIgKikNCis/TWFwcGluZ1NldEZpZWxkQENJaXNNYXBwaW5nQEBVQUVIS1BBREBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0lpc01hcHBpbmc6Ok1hcHBpbmdTZXRGaWVsZCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nLGludCkNCis/TWFwcGluZ1NldEZpZWxkQENJaXNNYXBwaW5nQEBVQUVIS1BBRUtIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NlcnRNYXBSdWxlOjpNYXRjaChjbGFzcyBDRGVjb2RlZENlcnQgKixjbGFzcyBDRGVjb2RlZENlcnQgKixjaGFyICosY2hhciAqLGludCAqKQ0KKz9NYXRjaEBDQ2VydE1hcFJ1bGVAQFFBRUhQQVZDRGVjb2RlZENlcnRAQDBQQUQxUEFIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lpc1J1bGVNYXBwZXI6Ok1hdGNoKHN0cnVjdCBfQ0VSVF9DT05URVhUICosc3RydWN0IF9DRVJUX0NPTlRFWFQgKix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICopDQorP01hdGNoQENJaXNSdWxlTWFwcGVyQEBRQUVIUEFVX0NFUlRfQ09OVEVYVEBAMFBBRzFAWg0KKzsgaW50IF9fc3RkY2FsbCBNYXRjaFJlcXVlc3RUb0JpbmFyeShjaGFyICosdW5zaWduZWQgY2hhciAqICosdW5zaWduZWQgbG9uZyAqKQ0KKz9NYXRjaFJlcXVlc3RUb0JpbmFyeUBAWUdIUEFEUEFQQUVQQUtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDU3RvcmVYQkY6Ok5lZWQodW5zaWduZWQgbG9uZykNCis/TmVlZEBDU3RvcmVYQkZAQFFBRUhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENJaXNSdWxlTWFwcGVyOjpSZWFkTG9ja1J1bGVzKHZvaWQpDQorP1JlYWRMb2NrUnVsZXNAQ0lpc1J1bGVNYXBwZXJAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0lpc1J1bGVNYXBwZXI6OlJlYWRVbmxvY2tSdWxlcyh2b2lkKQ0KKz9SZWFkVW5sb2NrUnVsZXNAQ0lpc1J1bGVNYXBwZXJAQFFBRVhYWg0KKzsgaW50IF9fc3RkY2FsbCBSZXBvcnRJaXNNYXBFdmVudCh1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0LGNoYXIgY29uc3QgKiAqKQ0KKz9SZXBvcnRJaXNNYXBFdmVudEBAWUdIR0tHUEFQQkRAWg0KKzsgaW50IF9fc3RkY2FsbCBSZXBvcnRJaXNNYXBFdmVudFcodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqICopDQorP1JlcG9ydElpc01hcEV2ZW50V0BAWUdIR0tHUEFQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0FsbG9jU3RyaW5nOjpSZXNldCh2b2lkKQ0KKz9SZXNldEBDQWxsb2NTdHJpbmdAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Jsb2I6OlJlc2V0KHZvaWQpDQorP1Jlc2V0QENCbG9iQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENCbG9iWEJGOjpSZXNldCh2b2lkKQ0KKz9SZXNldEBDQmxvYlhCRkBAUUFFWFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDZXJ0R2xvYmFsUnVsZUluZm86OlJlc2V0KHZvaWQpDQorP1Jlc2V0QENDZXJ0R2xvYmFsUnVsZUluZm9AQFFBRUhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NlcnRNYXBSdWxlOjpSZXNldCh2b2lkKQ0KKz9SZXNldEBDQ2VydE1hcFJ1bGVAQFFBRVhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSWlzQWNjdE1hcHBlcjo6UmVzZXQodm9pZCkNCis/UmVzZXRAQ0lpc0FjY3RNYXBwZXJAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSWlzUnVsZU1hcHBlcjo6UmVzZXQodm9pZCkNCis/UmVzZXRAQ0lpc1J1bGVNYXBwZXJAQFFBRUhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0lzc3VlclN0b3JlOjpSZXNldCh2b2lkKQ0KKz9SZXNldEBDSXNzdWVyU3RvcmVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1N0b3JlWEJGOjpSZXNldCh2b2lkKQ0KKz9SZXNldEBDU3RvcmVYQkZAQFFBRVhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSWlzQWNjdE1hcHBlcjo6U2F2ZSh2b2lkKQ0KKz9TYXZlQENJaXNBY2N0TWFwcGVyQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1N0b3JlWEJGOjpTYXZlKHZvaWQgKikNCis/U2F2ZUBDU3RvcmVYQkZAQFFBRUhQQVhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQWxsb2NTdHJpbmc6OlNlcmlhbGl6ZShjbGFzcyBDU3RvcmVYQkYgKikNCis/U2VyaWFsaXplQENBbGxvY1N0cmluZ0BAUUFFSFBBVkNTdG9yZVhCRkBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0Jsb2I6OlNlcmlhbGl6ZShjbGFzcyBDU3RvcmVYQkYgKikNCis/U2VyaWFsaXplQENCbG9iQEBRQUVIUEFWQ1N0b3JlWEJGQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQmxvYlhCRjo6U2VyaWFsaXplKGNsYXNzIENTdG9yZVhCRiAqKQ0KKz9TZXJpYWxpemVAQ0Jsb2JYQkZAQFFBRUhQQVZDU3RvcmVYQkZAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDZXJ0TWFwUnVsZTo6U2VyaWFsaXplKGNsYXNzIENTdG9yZVhCRiAqKQ0KKz9TZXJpYWxpemVAQ0NlcnRNYXBSdWxlQEBRQUVIUEFWQ1N0b3JlWEJGQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSWlzQWNjdE1hcHBlcjo6U2VyaWFsaXplKGNsYXNzIENTdG9yZVhCRiAqKQ0KKz9TZXJpYWxpemVAQ0lpc0FjY3RNYXBwZXJAQFFBRUhQQVZDU3RvcmVYQkZAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJaXNBY2N0TWFwcGVyOjpTZXJpYWxpemUodm9pZCkNCis/U2VyaWFsaXplQENJaXNBY2N0TWFwcGVyQEBRQUVIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDSWlzTWFwcGluZzo6U2VyaWFsaXplKHN0cnVjdCBfaW9idWYgKix2b2lkICosdm9pZCAqKQ0KKz9TZXJpYWxpemVAQ0lpc01hcHBpbmdAQFVBRUhQQVVfaW9idWZAQFBBWDFAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSWlzUnVsZU1hcHBlcjo6U2VyaWFsaXplKGNsYXNzIENTdG9yZVhCRiAqKQ0KKz9TZXJpYWxpemVAQ0lpc1J1bGVNYXBwZXJAQFFBRUhQQVZDU3RvcmVYQkZAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJc3N1ZXJTdG9yZTo6U2VyaWFsaXplKGNsYXNzIENTdG9yZVhCRiAqKQ0KKz9TZXJpYWxpemVAQ0lzc3VlclN0b3JlQEBRQUVIUEFWQ1N0b3JlWEJGQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUHRyRHdvcmRYQkY6OlNlcmlhbGl6ZShjbGFzcyBDU3RvcmVYQkYgKikNCis/U2VyaWFsaXplQENQdHJEd29yZFhCRkBAUUFFSFBBVkNTdG9yZVhCRkBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1B0clhCRjo6U2VyaWFsaXplKGNsYXNzIENTdG9yZVhCRiAqKQ0KKz9TZXJpYWxpemVAQ1B0clhCRkBAUUFFSFBBVkNTdG9yZVhCRkBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1N0clB0clhCRjo6U2VyaWFsaXplKGNsYXNzIENTdG9yZVhCRiAqKQ0KKz9TZXJpYWxpemVAQ1N0clB0clhCRkBAUUFFSFBBVkNTdG9yZVhCRkBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NlcnRHbG9iYWxSdWxlSW5mbzo6U2VyaWFsaXplR2xvYmFsUnVsZUluZm8oY2xhc3MgQ1N0b3JlWEJGICopDQorP1NlcmlhbGl6ZUdsb2JhbFJ1bGVJbmZvQENDZXJ0R2xvYmFsUnVsZUluZm9AQFFBRUhQQVZDU3RvcmVYQkZAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENBbGxvY1N0cmluZzo6U2V0KGNoYXIgKikNCis/U2V0QENBbGxvY1N0cmluZ0BAUUFFSFBBREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENCbG9iOjpTZXQodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcpDQorP1NldEBDQmxvYkBAUUFFSFBBRUtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQmxvYlhCRjo6U2V0RW50cnkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZykNCis/U2V0RW50cnlAQ0Jsb2JYQkZAQFFBRUhLUEFFS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTdHJQdHJYQkY6OlNldEVudHJ5KHVuc2lnbmVkIGxvbmcsY2hhciAqKQ0KKz9TZXRFbnRyeUBDU3RyUHRyWEJGQEBRQUVIS1BBREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDZXJ0TWFwUnVsZTo6U2V0SXNzdWVyRW50cnlBY2NlcHRTdGF0dXModW5zaWduZWQgbG9uZyxpbnQpDQorP1NldElzc3VlckVudHJ5QWNjZXB0U3RhdHVzQENDZXJ0TWFwUnVsZUBAUUFFSEtIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDZXJ0TWFwUnVsZTo6U2V0TWF0Y2hBbGxJc3N1ZXIoaW50KQ0KKz9TZXRNYXRjaEFsbElzc3VlckBDQ2VydE1hcFJ1bGVAQFFBRVhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1B0ckR3b3JkWEJGOjpTZXRQdHIodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9TZXRQdHJAQ1B0ckR3b3JkWEJGQEBRQUVIS0tAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUHRyWEJGOjpTZXRQdHIodW5zaWduZWQgbG9uZyx2b2lkICopDQorP1NldFB0ckBDUHRyWEJGQEBRQUVIS1BBWEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDZXJ0TWFwUnVsZTo6U2V0UnVsZUFjY291bnQoY2hhciAqKQ0KKz9TZXRSdWxlQWNjb3VudEBDQ2VydE1hcFJ1bGVAQFFBRUhQQURAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NlcnRNYXBSdWxlOjpTZXRSdWxlRGVueUFjY2VzcyhpbnQpDQorP1NldFJ1bGVEZW55QWNjZXNzQENDZXJ0TWFwUnVsZUBAUUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NlcnRNYXBSdWxlOjpTZXRSdWxlRW5hYmxlZChpbnQpDQorP1NldFJ1bGVFbmFibGVkQENDZXJ0TWFwUnVsZUBAUUFFWEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2VydE1hcFJ1bGU6OlNldFJ1bGVOYW1lKGNoYXIgKikNCis/U2V0UnVsZU5hbWVAQ0NlcnRNYXBSdWxlQEBRQUVIUEFEQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NlcnRNYXBSdWxlOjpTZXRSdWxlUGFzc3dvcmQoY2hhciAqKQ0KKz9TZXRSdWxlUGFzc3dvcmRAQ0NlcnRNYXBSdWxlQEBRQUVIUEFEQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDZXJ0R2xvYmFsUnVsZUluZm86OlNldFJ1bGVzRW5hYmxlZChpbnQpDQorP1NldFJ1bGVzRW5hYmxlZEBDQ2VydEdsb2JhbFJ1bGVJbmZvQEBRQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSWlzQWNjdE1hcHBlcjo6VW5sb2NrKHZvaWQpDQorP1VubG9ja0BDSWlzQWNjdE1hcHBlckBAUUFFWFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENBbGxvY1N0cmluZzo6VW5zZXJpYWxpemUodW5zaWduZWQgY2hhciAqICosdW5zaWduZWQgbG9uZyAqKQ0KKz9VbnNlcmlhbGl6ZUBDQWxsb2NTdHJpbmdAQFFBRUhQQVBBRVBBS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENCbG9iOjpVbnNlcmlhbGl6ZSh1bnNpZ25lZCBjaGFyICogKix1bnNpZ25lZCBsb25nICopDQorP1Vuc2VyaWFsaXplQENCbG9iQEBRQUVIUEFQQUVQQUtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQmxvYlhCRjo6VW5zZXJpYWxpemUodW5zaWduZWQgY2hhciAqICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcpDQorP1Vuc2VyaWFsaXplQENCbG9iWEJGQEBRQUVIUEFQQUVQQUtLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NlcnRNYXBSdWxlOjpVbnNlcmlhbGl6ZSh1bnNpZ25lZCBjaGFyICogKix1bnNpZ25lZCBsb25nICopDQorP1Vuc2VyaWFsaXplQENDZXJ0TWFwUnVsZUBAUUFFSFBBUEFFUEFLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NlcnRNYXBSdWxlOjpVbnNlcmlhbGl6ZShjbGFzcyBDU3RvcmVYQkYgKikNCis/VW5zZXJpYWxpemVAQ0NlcnRNYXBSdWxlQEBRQUVIUEFWQ1N0b3JlWEJGQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSWlzQWNjdE1hcHBlcjo6VW5zZXJpYWxpemUodW5zaWduZWQgY2hhciAqICosdW5zaWduZWQgbG9uZyAqKQ0KKz9VbnNlcmlhbGl6ZUBDSWlzQWNjdE1hcHBlckBAUUFFSFBBUEFFUEFLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lpc0FjY3RNYXBwZXI6OlVuc2VyaWFsaXplKGNsYXNzIENTdG9yZVhCRiAqKQ0KKz9VbnNlcmlhbGl6ZUBDSWlzQWNjdE1hcHBlckBAUUFFSFBBVkNTdG9yZVhCRkBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lpc0FjY3RNYXBwZXI6OlVuc2VyaWFsaXplKHZvaWQpDQorP1Vuc2VyaWFsaXplQENJaXNBY2N0TWFwcGVyQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lpc1J1bGVNYXBwZXI6OlVuc2VyaWFsaXplKHVuc2lnbmVkIGNoYXIgKiAqLHVuc2lnbmVkIGxvbmcgKikNCis/VW5zZXJpYWxpemVAQ0lpc1J1bGVNYXBwZXJAQFFBRUhQQVBBRVBBS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJaXNSdWxlTWFwcGVyOjpVbnNlcmlhbGl6ZShjbGFzcyBDU3RvcmVYQkYgKikNCis/VW5zZXJpYWxpemVAQ0lpc1J1bGVNYXBwZXJAQFFBRUhQQVZDU3RvcmVYQkZAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJc3N1ZXJTdG9yZTo6VW5zZXJpYWxpemUodW5zaWduZWQgY2hhciAqICosdW5zaWduZWQgbG9uZyAqKQ0KKz9VbnNlcmlhbGl6ZUBDSXNzdWVyU3RvcmVAQFFBRUhQQVBBRVBBS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJc3N1ZXJTdG9yZTo6VW5zZXJpYWxpemUoY2xhc3MgQ1N0b3JlWEJGICopDQorP1Vuc2VyaWFsaXplQENJc3N1ZXJTdG9yZUBAUUFFSFBBVkNTdG9yZVhCRkBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1B0ckR3b3JkWEJGOjpVbnNlcmlhbGl6ZSh1bnNpZ25lZCBjaGFyICogKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZykNCis/VW5zZXJpYWxpemVAQ1B0ckR3b3JkWEJGQEBRQUVIUEFQQUVQQUtLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1B0clhCRjo6VW5zZXJpYWxpemUodW5zaWduZWQgY2hhciAqICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcpDQorP1Vuc2VyaWFsaXplQENQdHJYQkZAQFFBRUhQQVBBRVBBS0tAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDU3RyUHRyWEJGOjpVbnNlcmlhbGl6ZSh1bnNpZ25lZCBjaGFyICogKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZykNCis/VW5zZXJpYWxpemVAQ1N0clB0clhCRkBAUUFFSFBBUEFFUEFLS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDZXJ0R2xvYmFsUnVsZUluZm86OlVuc2VyaWFsaXplR2xvYmFsUnVsZUluZm8odW5zaWduZWQgY2hhciAqICosdW5zaWduZWQgbG9uZyAqKQ0KKz9VbnNlcmlhbGl6ZUdsb2JhbFJ1bGVJbmZvQENDZXJ0R2xvYmFsUnVsZUluZm9AQFFBRUhQQVBBRVBBS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJaXNBY2N0TWFwcGVyOjpVcGRhdGUodW5zaWduZWQgbG9uZykNCis/VXBkYXRlQENJaXNBY2N0TWFwcGVyQEBRQUVIS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJaXNBY2N0TWFwcGVyOjpVcGRhdGUodW5zaWduZWQgbG9uZyxjbGFzcyBDSWlzTWFwcGluZyAqKQ0KKz9VcGRhdGVAQ0lpc0FjY3RNYXBwZXJAQFFBRUhLUEFWQ0lpc01hcHBpbmdAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJaXNBY2N0TWFwcGVyOjpVcGRhdGVDbGFzc2VzKGludCkNCis/VXBkYXRlQ2xhc3Nlc0BDSWlzQWNjdE1hcHBlckBAUUFFSEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSWlzQWNjdE1hcHBlcjo6VXBkYXRlSGllcmFyY2h5KHZvaWQpDQorP1VwZGF0ZUhpZXJhcmNoeUBDSWlzQWNjdE1hcHBlckBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJaXNNYXBwaW5nOjpVcGRhdGVNYXNrKHN0cnVjdCBfSUlTTURCX0hFbnRyeSAqLHVuc2lnbmVkIGxvbmcpDQorP1VwZGF0ZU1hc2tAQ0lpc01hcHBpbmdAQFFBRUhQQVVfSUlTTURCX0hFbnRyeUBAS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSWlzUnVsZU1hcHBlcjo6V3JpdGVMb2NrUnVsZXModm9pZCkNCis/V3JpdGVMb2NrUnVsZXNAQ0lpc1J1bGVNYXBwZXJAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0lpc1J1bGVNYXBwZXI6OldyaXRlVW5sb2NrUnVsZXModm9pZCkNCis/V3JpdGVVbmxvY2tSdWxlc0BDSWlzUnVsZU1hcHBlckBAUUFFWFhaDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lpc3B3Y2hnLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpaXNwd2NoZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjQ5ZDZjYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpaXNwd2NoZy5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpaXNwd2NoZy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaWlzcHdjaGcuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lpc3JzdGFwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpaXNyc3RhcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2RjMWZmOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpaXNyc3RhcC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJSVNSU1RBUC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSUlTUlNUQVAuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lpc3J0bC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWlzcnRsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41Zjk2YzFlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lpc3J0bC5kZWYKQEAgLTAsMCArMSwyMDQ0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElpc1JUTC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSWlzUlRMLkRMTA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRGF0YUNhY2hlPHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlk+OjpDRGF0YUNhY2hlPHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlk+KHZvaWQpDQorPz8wPyRDRGF0YUNhY2hlQFVEQVRFVElNRV9GT1JNQVRfRU5UUllAQEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0RhdGFDYWNoZTxjbGFzcyBDRGF0ZVRpbWU+OjpDRGF0YUNhY2hlPGNsYXNzIENEYXRlVGltZT4odm9pZCkNCis/PzA/JENEYXRhQ2FjaGVAVkNEYXRlVGltZUBAQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpBTExPQ19DQUNIRV9IQU5ETEVSKGNoYXIgY29uc3QgKixzdHJ1Y3QgX0FMTE9DX0NBQ0hFX0NPTkZJR1VSQVRJT04gY29uc3QgKixpbnQpDQorPz8wQUxMT0NfQ0FDSEVfSEFORExFUkBAUUFFQFBCRFBCVV9BTExPQ19DQUNIRV9DT05GSUdVUkFUSU9OQEBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBU0NMT0dfREFURVRJTUVfQ0FDSEU6OkFTQ0xPR19EQVRFVElNRV9DQUNIRSh2b2lkKQ0KKz8/MEFTQ0xPR19EQVRFVElNRV9DQUNIRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQlVGRkVSOjpCVUZGRVIodW5zaWduZWQgaW50KQ0KKz8/MEJVRkZFUkBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJVRkZFUjo6QlVGRkVSKHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBpbnQpDQorPz8wQlVGRkVSQEBRQUVAUEFFSUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQlVGRkVSX0NIQUlOOjpCVUZGRVJfQ0hBSU4odm9pZCkNCis/PzBCVUZGRVJfQ0hBSU5AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJVRkZFUl9DSEFJTl9JVEVNOjpCVUZGRVJfQ0hBSU5fSVRFTSh1bnNpZ25lZCBpbnQpDQorPz8wQlVGRkVSX0NIQUlOX0lURU1AQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQUNIRURfREFURVRJTUVfRk9STUFUUzo6Q0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFModm9pZCkNCis/PzBDQUNIRURfREFURVRJTUVfRk9STUFUU0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NyaXRTZWM6OkNDcml0U2VjKHZvaWQpDQorPz8wQ0NyaXRTZWNAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENERlRDYWNoZTo6Q0RGVENhY2hlKHZvaWQpDQorPz8wQ0RGVENhY2hlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRGF0ZVRpbWU6OkNEYXRlVGltZShzdHJ1Y3QgX0ZJTEVUSU1FIGNvbnN0ICYpDQorPz8wQ0RhdGVUaW1lQEBRQUVAQUJVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEYXRlVGltZTo6Q0RhdGVUaW1lKHN0cnVjdCBfRklMRVRJTUUgY29uc3QgJixzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgJikNCis/PzBDRGF0ZVRpbWVAQFFBRUBBQlVfRklMRVRJTUVAQEFCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEYXRlVGltZTo6Q0RhdGVUaW1lKHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAmKQ0KKz8/MENEYXRlVGltZUBAUUFFQEFCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEYXRlVGltZTo6Q0RhdGVUaW1lKHZvaWQpDQorPz8wQ0RhdGVUaW1lQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRG91YmxlTGlzdDo6Q0RvdWJsZUxpc3Qodm9pZCkNCis/PzBDRG91YmxlTGlzdEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0V0d1RyYWNlcjo6Q0V0d1RyYWNlcih2b2lkKQ0KKz8/MENFdHdUcmFjZXJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENGYWtlTG9jazo6Q0Zha2VMb2NrKHZvaWQpDQorPz8wQ0Zha2VMb2NrQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpDTEtSSGFzaFRhYmxlKGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nIGNvbnN0ICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqKSx1bnNpZ25lZCBsb25nIChfX3N0ZGNhbGwqKSh1bnNpZ25lZCBsb25nKSxib29sIChfX3N0ZGNhbGwqKSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpLHZvaWQgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKixpbnQpLGRvdWJsZSx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsYm9vbCkNCis/PzBDTEtSSGFzaFRhYmxlQEBRQUVAUEJEUDZHP0JLUEJYQFpQNkdLS0BaUDZHX05LS0BaUDZHWDFIQFpOS0tfTkBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZVN0YXRzOjpDTEtSSGFzaFRhYmxlU3RhdHModm9pZCkNCis/PzBDTEtSSGFzaFRhYmxlU3RhdHNAQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGVfSXRlcmF0b3I6OkNMS1JIYXNoVGFibGVfSXRlcmF0b3IoY2xhc3MgQ0xLUkhhc2hUYWJsZSAqLHNob3J0KQ0KKz8/MENMS1JIYXNoVGFibGVfSXRlcmF0b3JAQElBRUBQQVZDTEtSSGFzaFRhYmxlQEBGQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yOjpDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yKGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJikNCis/PzBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGVfSXRlcmF0b3I6OkNMS1JIYXNoVGFibGVfSXRlcmF0b3Iodm9pZCkNCis/PzBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBRQUVAWFoNCis7IHByaXZhdGU6IF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q0xLUkxpbmVhckhhc2hUYWJsZShjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZyBjb25zdCAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKiksdW5zaWduZWQgbG9uZyAoX19zdGRjYWxsKikodW5zaWduZWQgbG9uZyksYm9vbCAoX19zdGRjYWxsKikodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSx2b2lkIChfX3N0ZGNhbGwqKSh2b2lkIGNvbnN0ICosaW50KSxkb3VibGUsdW5zaWduZWQgbG9uZyxjbGFzcyBDTEtSSGFzaFRhYmxlICosYm9vbCkNCis/PzBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUVAUEJEUDZHP0JLUEJYQFpQNkdLS0BaUDZHX05LS0BaUDZHWDFIQFpOS1BBVkNMS1JIYXNoVGFibGVAQF9OQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpDTEtSTGluZWFySGFzaFRhYmxlKGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nIGNvbnN0ICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqKSx1bnNpZ25lZCBsb25nIChfX3N0ZGNhbGwqKSh1bnNpZ25lZCBsb25nKSxib29sIChfX3N0ZGNhbGwqKSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpLHZvaWQgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKixpbnQpLGRvdWJsZSx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsYm9vbCkNCis/PzBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUVAUEJEUDZHP0JLUEJYQFpQNkdLS0BaUDZHX05LS0BaUDZHWDFIQFpOS0tfTkBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcjo6Q0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcihjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlICosY2xhc3MgQ05vZGVDbHVtcCAqLHVuc2lnbmVkIGxvbmcsc2hvcnQpDQorPz8wQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBASUFFQFBBVkNMS1JMaW5lYXJIYXNoVGFibGVAQFBBVkNOb2RlQ2x1bXBAQEtGQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjpDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJikNCis/PzBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3I6OkNMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3Iodm9pZCkNCis/PzBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTG9ja2VkRG91YmxlTGlzdDo6Q0xvY2tlZERvdWJsZUxpc3Qodm9pZCkNCis/PzBDTG9ja2VkRG91YmxlTGlzdEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0xvY2tlZFNpbmdsZUxpc3Q6OkNMb2NrZWRTaW5nbGVMaXN0KHZvaWQpDQorPz8wQ0xvY2tlZFNpbmdsZUxpc3RAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6Q1JlYWRlcldyaXRlckxvY2syKHZvaWQpDQorPz8wQ1JlYWRlcldyaXRlckxvY2syQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OkNSZWFkZXJXcml0ZXJMb2NrMyh2b2lkKQ0KKz8/MENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6OkNSZWFkZXJXcml0ZXJMb2NrKHZvaWQpDQorPz8wQ1JlYWRlcldyaXRlckxvY2tAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENSdGxSZXNvdXJjZTo6Q1J0bFJlc291cmNlKHZvaWQpDQorPz8wQ1J0bFJlc291cmNlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU2hhcmVMb2NrOjpDU2hhcmVMb2NrKHZvaWQpDQorPz8wQ1NoYXJlTG9ja0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1NoYXJlbG9jazo6Q1NoYXJlbG9jayhpbnQsaW50KQ0KKz8/MENTaGFyZWxvY2tAQFFBRUBISEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1NpbmdsZUxpc3Q6OkNTaW5nbGVMaXN0KHZvaWQpDQorPz8wQ1NpbmdsZUxpc3RAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTbWFsbFNwaW5Mb2NrOjpDU21hbGxTcGluTG9jayh2b2lkKQ0KKz8/MENTbWFsbFNwaW5Mb2NrQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU3BpbkxvY2s6OkNTcGluTG9jayh2b2lkKQ0KKz8/MENTcGluTG9ja0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRVZFTlRfTE9HOjpFVkVOVF9MT0coY2hhciBjb25zdCAqKQ0KKz8/MEVWRU5UX0xPR0BAUUFFQFBCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRVhUTE9HX0RBVEVUSU1FX0NBQ0hFOjpFWFRMT0dfREFURVRJTUVfQ0FDSEUodm9pZCkNCis/PzBFWFRMT0dfREFURVRJTUVfQ0FDSEVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEhBU0hfVEFCTEU6OkhBU0hfVEFCTEUoY2xhc3MgSEFTSF9UQUJMRSBjb25zdCAmKQ0KKz8/MEhBU0hfVEFCTEVAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSEFTSF9UQUJMRTo6SEFTSF9UQUJMRSh1bnNpZ25lZCBsb25nLGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz8/MEhBU0hfVEFCTEVAQFFBRUBLUEJES0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSEFTSF9UQUJMRV9CVUNLRVQ6OkhBU0hfVEFCTEVfQlVDS0VUKHZvaWQpDQorPz8wSEFTSF9UQUJMRV9CVUNLRVRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEhUQl9FTEVNRU5UOjpIVEJfRUxFTUVOVCh2b2lkKQ0KKz8/MEhUQl9FTEVNRU5UQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBIVF9FTEVNRU5UOjpIVF9FTEVNRU5UKGNsYXNzIEhUX0VMRU1FTlQgY29uc3QgJikNCis/PzBIVF9FTEVNRU5UQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEhUX0VMRU1FTlQ6OkhUX0VMRU1FTlQodm9pZCkNCis/PzBIVF9FTEVNRU5UQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNTFNaQVU6Ok1MU1pBVShjbGFzcyBNTFNaQVUgJikNCis/PzBNTFNaQVVAQFFBRUBBQVYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTUxTWkFVOjpNTFNaQVUoY2hhciAqIGNvbnN0LGludCx1bnNpZ25lZCBsb25nKQ0KKz8/ME1MU1pBVUBAUUFFQFFBREhLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNTFNaQVU6Ok1MU1pBVShjaGFyICogY29uc3QsdW5zaWduZWQgbG9uZykNCis/PzBNTFNaQVVAQFFBRUBRQURLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNTFNaQVU6Ok1MU1pBVSh1bnNpZ25lZCBzaG9ydCAqIGNvbnN0LHVuc2lnbmVkIGxvbmcpDQorPz8wTUxTWkFVQEBRQUVAUUFHS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTUxTWkFVOjpNTFNaQVUodm9pZCkNCis/PzBNTFNaQVVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE1VTFRJU1o6Ok1VTFRJU1ooY2xhc3MgTVVMVElTWiBjb25zdCAmKQ0KKz8/ME1VTFRJU1pAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTVVMVElTWjo6TVVMVElTWihjaGFyICosdW5zaWduZWQgbG9uZykNCis/PzBNVUxUSVNaQEBRQUVAUEFES0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTVVMVElTWjo6TVVMVElTWihjaGFyIGNvbnN0ICopDQorPz8wTVVMVElTWkBAUUFFQFBCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTVVMVElTWjo6TVVMVElTWih2b2lkKQ0KKz8/ME1VTFRJU1pAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNUUjo6U1RSKGNsYXNzIFNUUiBjb25zdCAmKQ0KKz8/MFNUUkBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTVFI6OlNUUih1bnNpZ25lZCBsb25nKQ0KKz8/MFNUUkBAUUFFQEtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNUUjo6U1RSKGNoYXIgKix1bnNpZ25lZCBsb25nLGludCkNCis/PzBTVFJAQFFBRUBQQURLSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RSOjpTVFIoY2hhciBjb25zdCAqKQ0KKz8/MFNUUkBAUUFFQFBCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RSOjpTVFIodm9pZCkNCis/PzBTVFJAQFFBRUBYWg0KKzsgcHJpdmF0ZTogX190aGlzY2FsbCBTVFJBOjpTVFJBKGNsYXNzIFNUUkEgY29uc3QgJikNCis/PzBTVFJBQEBBQUVAQUJWMEBAWg0KKzsgcHJpdmF0ZTogX190aGlzY2FsbCBTVFJBOjpTVFJBKGNoYXIgKikNCis/PzBTVFJBQEBBQUVAUEFEQFoNCis7IHByaXZhdGU6IF9fdGhpc2NhbGwgU1RSQTo6U1RSQShjaGFyIGNvbnN0ICopDQorPz8wU1RSQUBAQUFFQFBCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RSQTo6U1RSQShjaGFyICosdW5zaWduZWQgbG9uZykNCis/PzBTVFJBQEBRQUVAUEFES0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RSQTo6U1RSQSh2b2lkKQ0KKz8/MFNUUkFAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNUUkFVOjpTVFJBVShjbGFzcyBTVFJBVSAmKQ0KKz8/MFNUUkFVQEBRQUVAQUFWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNUUkFVOjpTVFJBVShjaGFyIGNvbnN0ICopDQorPz8wU1RSQVVAQFFBRUBQQkRAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNUUkFVOjpTVFJBVShjaGFyIGNvbnN0ICosaW50KQ0KKz8/MFNUUkFVQEBRQUVAUEJESEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RSQVU6OlNUUkFVKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wU1RSQVVAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNUUkFVOjpTVFJBVSh2b2lkKQ0KKz8/MFNUUkFVQEBRQUVAWFoNCis7IHByaXZhdGU6IF9fdGhpc2NhbGwgU1RSVTo6U1RSVShjbGFzcyBTVFJVIGNvbnN0ICYpDQorPz8wU1RSVUBAQUFFQEFCVjBAQFoNCis7IHByaXZhdGU6IF9fdGhpc2NhbGwgU1RSVTo6U1RSVSh1bnNpZ25lZCBzaG9ydCAqKQ0KKz8/MFNUUlVAQEFBRUBQQUdAWg0KKzsgcHJpdmF0ZTogX190aGlzY2FsbCBTVFJVOjpTVFJVKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wU1RSVUBAQUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RSVTo6U1RSVSh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGxvbmcpDQorPz8wU1RSVUBAUUFFQFBBR0tAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNUUlU6OlNUUlUodm9pZCkNCis/PzBTVFJVQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBUU19SRVNPVVJDRTo6VFNfUkVTT1VSQ0Uodm9pZCkNCis/PzBUU19SRVNPVVJDRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVzNfREFURVRJTUVfQ0FDSEU6OlczX0RBVEVUSU1FX0NBQ0hFKHZvaWQpDQorPz8wVzNfREFURVRJTUVfQ0FDSEVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6On5BTExPQ19DQUNIRV9IQU5ETEVSKHZvaWQpDQorPz8xQUxMT0NfQ0FDSEVfSEFORExFUkBAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBBU0NMT0dfREFURVRJTUVfQ0FDSEU6On5BU0NMT0dfREFURVRJTUVfQ0FDSEUodm9pZCkNCis/PzFBU0NMT0dfREFURVRJTUVfQ0FDSEVAQFVBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJVRkZFUjo6fkJVRkZFUih2b2lkKQ0KKz8/MUJVRkZFUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQlVGRkVSX0NIQUlOOjp+QlVGRkVSX0NIQUlOKHZvaWQpDQorPz8xQlVGRkVSX0NIQUlOQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCVUZGRVJfQ0hBSU5fSVRFTTo6fkJVRkZFUl9DSEFJTl9JVEVNKHZvaWQpDQorPz8xQlVGRkVSX0NIQUlOX0lURU1AQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFM6On5DQUNIRURfREFURVRJTUVfRk9STUFUUyh2b2lkKQ0KKz8/MUNBQ0hFRF9EQVRFVElNRV9GT1JNQVRTQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ3JpdFNlYzo6fkNDcml0U2VjKHZvaWQpDQorPz8xQ0NyaXRTZWNAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEb3VibGVMaXN0Ojp+Q0RvdWJsZUxpc3Qodm9pZCkNCis/PzFDRG91YmxlTGlzdEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0V0d1RyYWNlcjo6fkNFdHdUcmFjZXIodm9pZCkNCis/PzFDRXR3VHJhY2VyQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRmFrZUxvY2s6On5DRmFrZUxvY2sodm9pZCkNCis/PzFDRmFrZUxvY2tAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6On5DTEtSSGFzaFRhYmxlKHZvaWQpDQorPz8xQ0xLUkhhc2hUYWJsZUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6fkNMS1JIYXNoVGFibGVfSXRlcmF0b3Iodm9pZCkNCis/PzFDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjp+Q0xLUkxpbmVhckhhc2hUYWJsZSh2b2lkKQ0KKz8/MUNMS1JMaW5lYXJIYXNoVGFibGVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3I6On5DTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yKHZvaWQpDQorPz8xQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0xvY2tlZERvdWJsZUxpc3Q6On5DTG9ja2VkRG91YmxlTGlzdCh2b2lkKQ0KKz8/MUNMb2NrZWREb3VibGVMaXN0QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTG9ja2VkU2luZ2xlTGlzdDo6fkNMb2NrZWRTaW5nbGVMaXN0KHZvaWQpDQorPz8xQ0xvY2tlZFNpbmdsZUxpc3RAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENSdGxSZXNvdXJjZTo6fkNSdGxSZXNvdXJjZSh2b2lkKQ0KKz8/MUNSdGxSZXNvdXJjZUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1NoYXJlTG9jazo6fkNTaGFyZUxvY2sodm9pZCkNCis/PzFDU2hhcmVMb2NrQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU2hhcmVsb2NrOjp+Q1NoYXJlbG9jayh2b2lkKQ0KKz8/MUNTaGFyZWxvY2tAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTaW5nbGVMaXN0Ojp+Q1NpbmdsZUxpc3Qodm9pZCkNCis/PzFDU2luZ2xlTGlzdEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRVZFTlRfTE9HOjp+RVZFTlRfTE9HKHZvaWQpDQorPz8xRVZFTlRfTE9HQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIEVYVExPR19EQVRFVElNRV9DQUNIRTo6fkVYVExPR19EQVRFVElNRV9DQUNIRSh2b2lkKQ0KKz8/MUVYVExPR19EQVRFVElNRV9DQUNIRUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBIQVNIX1RBQkxFOjp+SEFTSF9UQUJMRSh2b2lkKQ0KKz8/MUhBU0hfVEFCTEVAQFVBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEhBU0hfVEFCTEVfQlVDS0VUOjp+SEFTSF9UQUJMRV9CVUNLRVQodm9pZCkNCis/PzFIQVNIX1RBQkxFX0JVQ0tFVEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSFRCX0VMRU1FTlQ6On5IVEJfRUxFTUVOVCh2b2lkKQ0KKz8/MUhUQl9FTEVNRU5UQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIEhUX0VMRU1FTlQ6On5IVF9FTEVNRU5UKHZvaWQpDQorPz8xSFRfRUxFTUVOVEBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTUxTWkFVOjp+TUxTWkFVKHZvaWQpDQorPz8xTUxTWkFVQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNVUxUSVNaOjp+TVVMVElTWih2b2lkKQ0KKz8/MU1VTFRJU1pAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNUUjo6flNUUih2b2lkKQ0KKz8/MVNUUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RSQTo6flNUUkEodm9pZCkNCis/PzFTVFJBQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTVFJBVTo6flNUUkFVKHZvaWQpDQorPz8xU1RSQVVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNUUlU6On5TVFJVKHZvaWQpDQorPz8xU1RSVUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVFNfUkVTT1VSQ0U6On5UU19SRVNPVVJDRSh2b2lkKQ0KKz8/MVRTX1JFU09VUkNFQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFczX0RBVEVUSU1FX0NBQ0hFOjp+VzNfREFURVRJTUVfQ0FDSEUodm9pZCkNCis/PzFXM19EQVRFVElNRV9DQUNIRUBAVUFFQFhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkICogX19zdGRjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Om9wZXJhdG9yIG5ldyh1bnNpZ25lZCBpbnQpDQorPz8yQ0xLUkxpbmVhckhhc2hUYWJsZUBAU0dQQVhJQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Om9wZXJhdG9yIGRlbGV0ZSh2b2lkICopDQorPz8zQ0xLUkxpbmVhckhhc2hUYWJsZUBAU0dYUEFYQFoNCis7IHB1YmxpYzogY2xhc3MgQ0RhdGFDYWNoZTxzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZPiAmIF9fdGhpc2NhbGwgQ0RhdGFDYWNoZTxzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZPjo6b3BlcmF0b3I9KGNsYXNzIENEYXRhQ2FjaGU8c3RydWN0IERBVEVUSU1FX0ZPUk1BVF9FTlRSWT4gY29uc3QgJikNCis/PzQ/JENEYXRhQ2FjaGVAVURBVEVUSU1FX0ZPUk1BVF9FTlRSWUBAQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0RhdGFDYWNoZTxjbGFzcyBDRGF0ZVRpbWU+ICYgX190aGlzY2FsbCBDRGF0YUNhY2hlPGNsYXNzIENEYXRlVGltZT46Om9wZXJhdG9yPShjbGFzcyBDRGF0YUNhY2hlPGNsYXNzIENEYXRlVGltZT4gY29uc3QgJikNCis/PzQ/JENEYXRhQ2FjaGVAVkNEYXRlVGltZUBAQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tCYXNlPDEsMSwzLDEsMywyPiAmIF9fdGhpc2NhbGwgQ0xvY2tCYXNlPDEsMSwzLDEsMywyPjo6b3BlcmF0b3I9KGNsYXNzIENMb2NrQmFzZTwxLDEsMywxLDMsMj4gY29uc3QgJikNCis/PzQ/JENMb2NrQmFzZUAkMDAkMDAkMDIkMDAkMDIkMDFAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja0Jhc2U8MiwxLDEsMSwzLDI+ICYgX190aGlzY2FsbCBDTG9ja0Jhc2U8MiwxLDEsMSwzLDI+OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tCYXNlPDIsMSwxLDEsMywyPiBjb25zdCAmKQ0KKz8/ND8kQ0xvY2tCYXNlQCQwMSQwMCQwMCQwMCQwMiQwMUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrQmFzZTwzLDEsMSwxLDEsMT4gJiBfX3RoaXNjYWxsIENMb2NrQmFzZTwzLDEsMSwxLDEsMT46Om9wZXJhdG9yPShjbGFzcyBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+IGNvbnN0ICYpDQorPz80PyRDTG9ja0Jhc2VAJDAyJDAwJDAwJDAwJDAwJDAwQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tCYXNlPDQsMSwxLDIsMywzPiAmIF9fdGhpc2NhbGwgQ0xvY2tCYXNlPDQsMSwxLDIsMywzPjo6b3BlcmF0b3I9KGNsYXNzIENMb2NrQmFzZTw0LDEsMSwyLDMsMz4gY29uc3QgJikNCis/PzQ/JENMb2NrQmFzZUAkMDMkMDAkMDAkMDEkMDIkMDJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja0Jhc2U8NSwyLDEsMiwzLDM+ICYgX190aGlzY2FsbCBDTG9ja0Jhc2U8NSwyLDEsMiwzLDM+OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tCYXNlPDUsMiwxLDIsMywzPiBjb25zdCAmKQ0KKz8/ND8kQ0xvY2tCYXNlQCQwNCQwMSQwMCQwMSQwMiQwMkBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrQmFzZTw2LDIsMSwyLDMsMz4gJiBfX3RoaXNjYWxsIENMb2NrQmFzZTw2LDIsMSwyLDMsMz46Om9wZXJhdG9yPShjbGFzcyBDTG9ja0Jhc2U8NiwyLDEsMiwzLDM+IGNvbnN0ICYpDQorPz80PyRDTG9ja0Jhc2VAJDA1JDAxJDAwJDAxJDAyJDAyQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tCYXNlPDcsMiwyLDEsMywyPiAmIF9fdGhpc2NhbGwgQ0xvY2tCYXNlPDcsMiwyLDEsMywyPjo6b3BlcmF0b3I9KGNsYXNzIENMb2NrQmFzZTw3LDIsMiwxLDMsMj4gY29uc3QgJikNCis/PzQ/JENMb2NrQmFzZUAkMDYkMDEkMDEkMDAkMDIkMDFAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja0Jhc2U8OCwyLDIsMSwzLDI+ICYgX190aGlzY2FsbCBDTG9ja0Jhc2U8OCwyLDIsMSwzLDI+OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tCYXNlPDgsMiwyLDEsMywyPiBjb25zdCAmKQ0KKz8/ND8kQ0xvY2tCYXNlQCQwNyQwMSQwMSQwMCQwMiQwMUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrQmFzZTw5LDIsMSwxLDMsMj4gJiBfX3RoaXNjYWxsIENMb2NrQmFzZTw5LDIsMSwxLDMsMj46Om9wZXJhdG9yPShjbGFzcyBDTG9ja0Jhc2U8OSwyLDEsMSwzLDI+IGNvbnN0ICYpDQorPz80PyRDTG9ja0Jhc2VAJDA4JDAxJDAwJDAwJDAyJDAxQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQUxMT0NfQ0FDSEVfSEFORExFUiAmIF9fdGhpc2NhbGwgQUxMT0NfQ0FDSEVfSEFORExFUjo6b3BlcmF0b3I9KGNsYXNzIEFMTE9DX0NBQ0hFX0hBTkRMRVIgY29uc3QgJikNCis/PzRBTExPQ19DQUNIRV9IQU5ETEVSQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQlVGRkVSICYgX190aGlzY2FsbCBCVUZGRVI6Om9wZXJhdG9yPShjbGFzcyBCVUZGRVIgY29uc3QgJikNCis/PzRCVUZGRVJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBCVUZGRVJfQ0hBSU4gJiBfX3RoaXNjYWxsIEJVRkZFUl9DSEFJTjo6b3BlcmF0b3I9KGNsYXNzIEJVRkZFUl9DSEFJTiBjb25zdCAmKQ0KKz8/NEJVRkZFUl9DSEFJTkBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIEJVRkZFUl9DSEFJTl9JVEVNICYgX190aGlzY2FsbCBCVUZGRVJfQ0hBSU5fSVRFTTo6b3BlcmF0b3I9KGNsYXNzIEJVRkZFUl9DSEFJTl9JVEVNIGNvbnN0ICYpDQorPz80QlVGRkVSX0NIQUlOX0lURU1AQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ3JpdFNlYyAmIF9fdGhpc2NhbGwgQ0NyaXRTZWM6Om9wZXJhdG9yPShjbGFzcyBDQ3JpdFNlYyBjb25zdCAmKQ0KKz8/NENDcml0U2VjQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0RGVENhY2hlICYgX190aGlzY2FsbCBDREZUQ2FjaGU6Om9wZXJhdG9yPShjbGFzcyBDREZUQ2FjaGUgY29uc3QgJikNCis/PzRDREZUQ2FjaGVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRGF0ZVRpbWUgJiBfX3RoaXNjYWxsIENEYXRlVGltZTo6b3BlcmF0b3I9KGNsYXNzIENEYXRlVGltZSBjb25zdCAmKQ0KKz8/NENEYXRlVGltZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENEb3VibGVMaXN0ICYgX190aGlzY2FsbCBDRG91YmxlTGlzdDo6b3BlcmF0b3I9KGNsYXNzIENEb3VibGVMaXN0IGNvbnN0ICYpDQorPz80Q0RvdWJsZUxpc3RAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRmFrZUxvY2sgJiBfX3RoaXNjYWxsIENGYWtlTG9jazo6b3BlcmF0b3I9KGNsYXNzIENGYWtlTG9jayBjb25zdCAmKQ0KKz8/NENGYWtlTG9ja0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMS1JIYXNoVGFibGVTdGF0cyAmIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZVN0YXRzOjpvcGVyYXRvcj0oY2xhc3MgQ0xLUkhhc2hUYWJsZVN0YXRzIGNvbnN0ICYpDQorPz80Q0xLUkhhc2hUYWJsZVN0YXRzQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvciAmIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6b3BlcmF0b3I9KGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJikNCis/PzRDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciAmIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcjo6b3BlcmF0b3I9KGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJikNCis/PzRDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tlZERvdWJsZUxpc3QgJiBfX3RoaXNjYWxsIENMb2NrZWREb3VibGVMaXN0OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tlZERvdWJsZUxpc3QgY29uc3QgJikNCis/PzRDTG9ja2VkRG91YmxlTGlzdEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrZWRTaW5nbGVMaXN0ICYgX190aGlzY2FsbCBDTG9ja2VkU2luZ2xlTGlzdDo6b3BlcmF0b3I9KGNsYXNzIENMb2NrZWRTaW5nbGVMaXN0IGNvbnN0ICYpDQorPz80Q0xvY2tlZFNpbmdsZUxpc3RAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUmVhZGVyV3JpdGVyTG9jazIgJiBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6b3BlcmF0b3I9KGNsYXNzIENSZWFkZXJXcml0ZXJMb2NrMiBjb25zdCAmKQ0KKz8/NENSZWFkZXJXcml0ZXJMb2NrMkBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENSZWFkZXJXcml0ZXJMb2NrMyAmIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpvcGVyYXRvcj0oY2xhc3MgQ1JlYWRlcldyaXRlckxvY2szIGNvbnN0ICYpDQorPz80Q1JlYWRlcldyaXRlckxvY2szQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1JlYWRlcldyaXRlckxvY2sgJiBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpvcGVyYXRvcj0oY2xhc3MgQ1JlYWRlcldyaXRlckxvY2sgY29uc3QgJikNCis/PzRDUmVhZGVyV3JpdGVyTG9ja0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENSdGxSZXNvdXJjZSAmIF9fdGhpc2NhbGwgQ1J0bFJlc291cmNlOjpvcGVyYXRvcj0oY2xhc3MgQ1J0bFJlc291cmNlIGNvbnN0ICYpDQorPz80Q1J0bFJlc291cmNlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1NpbmdsZUxpc3QgJiBfX3RoaXNjYWxsIENTaW5nbGVMaXN0OjpvcGVyYXRvcj0oY2xhc3MgQ1NpbmdsZUxpc3QgY29uc3QgJikNCis/PzRDU2luZ2xlTGlzdEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTbWFsbFNwaW5Mb2NrICYgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6b3BlcmF0b3I9KGNsYXNzIENTbWFsbFNwaW5Mb2NrIGNvbnN0ICYpDQorPz80Q1NtYWxsU3BpbkxvY2tAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU3BpbkxvY2sgJiBfX3RoaXNjYWxsIENTcGluTG9jazo6b3BlcmF0b3I9KGNsYXNzIENTcGluTG9jayBjb25zdCAmKQ0KKz8/NENTcGluTG9ja0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlkgJiBfX3RoaXNjYWxsIERBVEVUSU1FX0ZPUk1BVF9FTlRSWTo6b3BlcmF0b3I9KHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlkgY29uc3QgJikNCis/PzREQVRFVElNRV9GT1JNQVRfRU5UUllAQFFBRUFBVTBAQUJVMEBAWg0KKzsgcHVibGljOiBjbGFzcyBFVkVOVF9MT0cgJiBfX3RoaXNjYWxsIEVWRU5UX0xPRzo6b3BlcmF0b3I9KGNsYXNzIEVWRU5UX0xPRyBjb25zdCAmKQ0KKz8/NEVWRU5UX0xPR0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIEhBU0hfVEFCTEUgJiBfX3RoaXNjYWxsIEhBU0hfVEFCTEU6Om9wZXJhdG9yPShjbGFzcyBIQVNIX1RBQkxFIGNvbnN0ICYpDQorPz80SEFTSF9UQUJMRUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIEhBU0hfVEFCTEVfQlVDS0VUICYgX190aGlzY2FsbCBIQVNIX1RBQkxFX0JVQ0tFVDo6b3BlcmF0b3I9KGNsYXNzIEhBU0hfVEFCTEVfQlVDS0VUIGNvbnN0ICYpDQorPz80SEFTSF9UQUJMRV9CVUNLRVRAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBzdHJ1Y3QgSFRCX0VMRU1FTlQgJiBfX3RoaXNjYWxsIEhUQl9FTEVNRU5UOjpvcGVyYXRvcj0oc3RydWN0IEhUQl9FTEVNRU5UIGNvbnN0ICYpDQorPz80SFRCX0VMRU1FTlRAQFFBRUFBVTBAQUJVMEBAWg0KKzsgcHVibGljOiBjbGFzcyBIVF9FTEVNRU5UICYgX190aGlzY2FsbCBIVF9FTEVNRU5UOjpvcGVyYXRvcj0oY2xhc3MgSFRfRUxFTUVOVCBjb25zdCAmKQ0KKz8/NEhUX0VMRU1FTlRAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBNTFNaQVUgJiBfX3RoaXNjYWxsIE1MU1pBVTo6b3BlcmF0b3I9KGNsYXNzIE1MU1pBVSBjb25zdCAmKQ0KKz8/NE1MU1pBVUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE1VTFRJU1ogJiBfX3RoaXNjYWxsIE1VTFRJU1o6Om9wZXJhdG9yPShjbGFzcyBNVUxUSVNaIGNvbnN0ICYpDQorPz80TVVMVElTWkBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNUUiAmIF9fdGhpc2NhbGwgU1RSOjpvcGVyYXRvcj0oY2xhc3MgU1RSIGNvbnN0ICYpDQorPz80U1RSQEBRQUVBQVYwQEFCVjBAQFoNCis7IHByaXZhdGU6IGNsYXNzIFNUUkEgJiBfX3RoaXNjYWxsIFNUUkE6Om9wZXJhdG9yPShjbGFzcyBTVFJBIGNvbnN0ICYpDQorPz80U1RSQUBAQUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNUUkFVICYgX190aGlzY2FsbCBTVFJBVTo6b3BlcmF0b3I9KGNsYXNzIFNUUkFVIGNvbnN0ICYpDQorPz80U1RSQVVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHJpdmF0ZTogY2xhc3MgU1RSVSAmIF9fdGhpc2NhbGwgU1RSVTo6b3BlcmF0b3I9KGNsYXNzIFNUUlUgY29uc3QgJikNCis/PzRTVFJVQEBBQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgVFNfUkVTT1VSQ0UgJiBfX3RoaXNjYWxsIFRTX1JFU09VUkNFOjpvcGVyYXRvcj0oY2xhc3MgVFNfUkVTT1VSQ0UgY29uc3QgJikNCis/PzRUU19SRVNPVVJDRUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yOjpvcGVyYXRvcj09KGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJiljb25zdCANCis/PzhDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBRQkVfTkFCVjBAQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3I6Om9wZXJhdG9yPT0oY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciBjb25zdCAmKWNvbnN0IA0KKz8/OENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQFFCRV9OQUJWMEBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6b3BlcmF0b3IhPShjbGFzcyBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yIGNvbnN0ICYpY29uc3QgDQorPz85Q0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAUUJFX05BQlYwQEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjpvcGVyYXRvciE9KGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJiljb25zdCANCis/PzlDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBRQkVfTkFCVjBAQFoNCis7IGNvbnN0ICBBU0NMT0dfREFURVRJTUVfQ0FDSEU6OmB2ZnRhYmxlJw0KKz8/XzdBU0NMT0dfREFURVRJTUVfQ0FDSEVAQDZCQA0KKzsgY29uc3QgIENBQ0hFRF9EQVRFVElNRV9GT1JNQVRTOjpgdmZ0YWJsZScNCis/P183Q0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFNAQDZCQA0KKzsgY29uc3QgIEVYVExPR19EQVRFVElNRV9DQUNIRTo6YHZmdGFibGUnDQorPz9fN0VYVExPR19EQVRFVElNRV9DQUNIRUBANkJADQorOyBjb25zdCAgSEFTSF9UQUJMRTo6YHZmdGFibGUnDQorPz9fN0hBU0hfVEFCTEVAQDZCQA0KKzsgY29uc3QgIEhUX0VMRU1FTlQ6OmB2ZnRhYmxlJw0KKz8/XzdIVF9FTEVNRU5UQEA2QkANCis7IGNvbnN0ICBXM19EQVRFVElNRV9DQUNIRTo6YHZmdGFibGUnDQorPz9fN1czX0RBVEVUSU1FX0NBQ0hFQEA2QkANCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEJVRkZFUjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GQlVGRkVSQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEJVRkZFUl9DSEFJTl9JVEVNOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZCVUZGRVJfQ0hBSU5fSVRFTUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU2hhcmVsb2NrOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZDU2hhcmVsb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1NoYXJlbG9jazo6QWN0aXZlVXNlcnModm9pZCkNCis/QWN0aXZlVXNlcnNAQ1NoYXJlbG9ja0BAUUFFSFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3RoaXNjYWxsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OkFsbG9jKHZvaWQpDQorP0FsbG9jQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFFBRVBBWFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1VTFRJU1o6OkFwcGVuZChjbGFzcyBTVFIgY29uc3QgJikNCis/QXBwZW5kQE1VTFRJU1pAQFFBRUhBQlZTVFJAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1VTFRJU1o6OkFwcGVuZChjaGFyIGNvbnN0ICopDQorP0FwcGVuZEBNVUxUSVNaQEBRQUVIUEJEQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTVVMVElTWjo6QXBwZW5kKGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9BcHBlbmRATVVMVElTWkBAUUFFSFBCREtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFI6OkFwcGVuZChjbGFzcyBTVFIgY29uc3QgJikNCis/QXBwZW5kQFNUUkBAUUFFSEFCVjFAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSOjpBcHBlbmQoY2hhciBjb25zdCAqKQ0KKz9BcHBlbmRAU1RSQEBRQUVIUEJEQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSOjpBcHBlbmQoY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0FwcGVuZEBTVFJAQFFBRUhQQkRLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNUUjo6QXBwZW5kKGNoYXIpDQorP0FwcGVuZEBTVFJAQFFBRVhEQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNUUjo6QXBwZW5kKGNoYXIsY2hhcikNCis/QXBwZW5kQFNUUkBAUUFFWEREQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkFwcGVuZChjbGFzcyBTVFJBIGNvbnN0ICYpDQorP0FwcGVuZEBTVFJBQEBRQUVKQUJWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6QXBwZW5kKGNoYXIgY29uc3QgKikNCis/QXBwZW5kQFNUUkFAQFFBRUpQQkRAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6QXBwZW5kKGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9BcHBlbmRAU1RSQUBAUUFFSlBCREtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJBVTo6QXBwZW5kKGNsYXNzIFNUUkFVICYpDQorP0FwcGVuZEBTVFJBVUBAUUFFSEFBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSQVU6OkFwcGVuZChjaGFyIGNvbnN0ICopDQorP0FwcGVuZEBTVFJBVUBAUUFFSFBCREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUkFVOjpBcHBlbmQoY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0FwcGVuZEBTVFJBVUBAUUFFSFBCREtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJBVTo6QXBwZW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0FwcGVuZEBTVFJBVUBAUUFFSFBCR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUkFVOjpBcHBlbmQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9BcHBlbmRAU1RSQVVAQFFBRUhQQkdLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUlU6OkFwcGVuZChjbGFzcyBTVFJVIGNvbnN0ICYpDQorP0FwcGVuZEBTVFJVQEBRQUVKQUJWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSVTo6QXBwZW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0FwcGVuZEBTVFJVQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUlU6OkFwcGVuZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0FwcGVuZEBTVFJVQEBRQUVKUEJHS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJVOjpBcHBlbmRBKGNoYXIgY29uc3QgKikNCis/QXBwZW5kQUBTVFJVQEBRQUVKUEJEQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQlVGRkVSX0NIQUlOOjpBcHBlbmRCdWZmZXIoY2xhc3MgQlVGRkVSX0NIQUlOX0lURU0gKikNCis/QXBwZW5kQnVmZmVyQEJVRkZFUl9DSEFJTkBAUUFFSFBBVkJVRkZFUl9DSEFJTl9JVEVNQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU1RSOjpBcHBlbmRDUkxGKHZvaWQpDQorP0FwcGVuZENSTEZAU1RSQEBRQUVYWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkFwcGVuZFcodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/QXBwZW5kV0BTVFJBQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkFwcGVuZFcodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9BcHBlbmRXQFNUUkFAQFFBRUpQQkdLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkFwcGVuZFdUcnVuY2F0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9BcHBlbmRXVHJ1bmNhdGVAU1RSQUBAUUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpBcHBlbmRXVHJ1bmNhdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9BcHBlbmRXVHJ1bmNhdGVAU1RSQUBAUUFFSlBCR0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6QXBwbHkoZW51bSBMS19BQ1RJT04gIChfX3N0ZGNhbGwqKSh2b2lkIGNvbnN0ICosdm9pZCAqKSx2b2lkICosZW51bSBMS19MT0NLVFlQRSkNCis/QXBwbHlAQ0xLUkhhc2hUYWJsZUBAUUFFS1A2Rz9BVzRMS19BQ1RJT05AQFBCWFBBWEBaMVc0TEtfTE9DS1RZUEVAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpBcHBseShlbnVtIExLX0FDVElPTiAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKix2b2lkICopLHZvaWQgKixlbnVtIExLX0xPQ0tUWVBFKQ0KKz9BcHBseUBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUVLUDZHP0FXNExLX0FDVElPTkBAUEJYUEFYQFoxVzRMS19MT0NLVFlQRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkFwcGx5SWYoZW51bSBMS19QUkVESUNBVEUgIChfX3N0ZGNhbGwqKSh2b2lkIGNvbnN0ICosdm9pZCAqKSxlbnVtIExLX0FDVElPTiAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKix2b2lkICopLHZvaWQgKixlbnVtIExLX0xPQ0tUWVBFKQ0KKz9BcHBseUlmQENMS1JIYXNoVGFibGVAQFFBRUtQNkc/QVc0TEtfUFJFRElDQVRFQEBQQlhQQVhAWlA2Rz9BVzRMS19BQ1RJT05AQDAxQFoxVzRMS19MT0NLVFlQRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkFwcGx5SWYoZW51bSBMS19QUkVESUNBVEUgIChfX3N0ZGNhbGwqKSh2b2lkIGNvbnN0ICosdm9pZCAqKSxlbnVtIExLX0FDVElPTiAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKix2b2lkICopLHZvaWQgKixlbnVtIExLX0xPQ0tUWVBFKQ0KKz9BcHBseUlmQENMS1JMaW5lYXJIYXNoVGFibGVAQFFBRUtQNkc/QVc0TEtfUFJFRElDQVRFQEBQQlhQQVhAWlA2Rz9BVzRMS19BQ1RJT05AQDAxQFoxVzRMS19MT0NLVFlQRUBAQFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIE1VTFRJU1o6OkF1eEFwcGVuZCh1bnNpZ25lZCBjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50LGludCkNCis/QXV4QXBwZW5kQE1VTFRJU1pAQEFBRUhQQkVJSEBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBTVFI6OkF1eEFwcGVuZCh1bnNpZ25lZCBjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50LGludCkNCis/QXV4QXBwZW5kQFNUUkBAQUFFSFBCRUlIQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpBdXhBcHBlbmQodW5zaWduZWQgY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQpDQorP0F1eEFwcGVuZEBTVFJBQEBBQUVKUEJFS0tIQFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIFNUUkFVOjpBdXhBcHBlbmQoY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCxpbnQpDQorP0F1eEFwcGVuZEBTVFJBVUBAQUFFSFBCRElIQFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIFNUUkFVOjpBdXhBcHBlbmQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQsaW50KQ0KKz9BdXhBcHBlbmRAU1RSQVVAQEFBRUhQQkdJSEBaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgU1RSVTo6QXV4QXBwZW5kKHVuc2lnbmVkIGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50KQ0KKz9BdXhBcHBlbmRAU1RSVUBAQUFFSlBCRUtLSEBaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgU1RSVTo6QXV4QXBwZW5kQSh1bnNpZ25lZCBjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCkNCis/QXV4QXBwZW5kQUBTVFJVQEBBQUVKUEJFS0tIQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpBdXhBcHBlbmRXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCkNCis/QXV4QXBwZW5kV0BTVFJBQEBBQUVKUEJHS0tIQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpBdXhBcHBlbmRXVHJ1bmNhdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50KQ0KKz9BdXhBcHBlbmRXVHJ1bmNhdGVAU1RSQUBAQUFFSlBCR0tLSEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTUxTWkFVOjpBdXhJbml0KGNoYXIgKiBjb25zdCx1bnNpZ25lZCBsb25nKQ0KKz9BdXhJbml0QE1MU1pBVUBAQUFFWFFBREtAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIE1MU1pBVTo6QXV4SW5pdCh1bnNpZ25lZCBzaG9ydCAqIGNvbnN0LHVuc2lnbmVkIGxvbmcpDQorP0F1eEluaXRATUxTWkFVQEBBQUVYUUFHS0BaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTVVMVElTWjo6QXV4SW5pdCh1bnNpZ25lZCBjaGFyIGNvbnN0ICopDQorP0F1eEluaXRATVVMVElTWkBAQUFFWFBCRUBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgU1RSOjpBdXhJbml0KHVuc2lnbmVkIGNoYXIgY29uc3QgKikNCis/QXV4SW5pdEBTVFJAQEFBRVhQQkVAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIFNUUkFVOjpBdXhJbml0KGNoYXIgY29uc3QgKikNCis/QXV4SW5pdEBTVFJBVUBAQUFFWFBCREBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgU1RSQVU6OkF1eEluaXQodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/QXV4SW5pdEBTVFJBVUBAQUFFWFBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6QmVnaW4odm9pZCkNCis/QmVnaW5AQ0xLUkhhc2hUYWJsZUBAUUFFP0FWQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpCZWdpbih2b2lkKQ0KKz9CZWdpbkBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUU/QVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ0xLUkhhc2hUYWJsZVN0YXRzOjpCdWNrZXRJbmRleChsb25nKQ0KKz9CdWNrZXRJbmRleEBDTEtSSGFzaFRhYmxlU3RhdHNAQFNHSkpAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ0xLUkhhc2hUYWJsZVN0YXRzOjpCdWNrZXRTaXplKGxvbmcpDQorP0J1Y2tldFNpemVAQ0xLUkhhc2hUYWJsZVN0YXRzQEBTR0pKQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgY29uc3QgKiBfX3N0ZGNhbGwgQ0xLUkhhc2hUYWJsZVN0YXRzOjpCdWNrZXRTaXplcyh2b2lkKQ0KKz9CdWNrZXRTaXplc0BDTEtSSGFzaFRhYmxlU3RhdHNAQFNHUEJKWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIE1VTFRJU1o6OkNhbGNMZW5ndGgoY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcgKikNCis/Q2FsY0xlbmd0aEBNVUxUSVNaQEBTR0tQQkRQQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQlVGRkVSX0NIQUlOOjpDYWxjVG90YWxTaXplKGludCljb25zdCANCis/Q2FsY1RvdGFsU2l6ZUBCVUZGRVJfQ0hBSU5AQFFCRUtIQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgSEFTSF9UQUJMRTo6Q2FsY3VsYXRlSGFzaChjaGFyIGNvbnN0ICopY29uc3QgDQorP0NhbGN1bGF0ZUhhc2hASEFTSF9UQUJMRUBAVUJFS1BCREBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIEhBU0hfVEFCTEU6OkNhbGN1bGF0ZUhhc2goY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP0NhbGN1bGF0ZUhhc2hASEFTSF9UQUJMRUBAVUJFS1BCREtAWg0KK0Nhbm9uVVJMDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU2hhcmVsb2NrOjpDaGFuZ2VFeGNsdXNpdmVMb2NrVG9TaGFyZWRMb2NrKHZvaWQpDQorP0NoYW5nZUV4Y2x1c2l2ZUxvY2tUb1NoYXJlZExvY2tAQ1NoYXJlbG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBDU2hhcmVsb2NrOjpDaGFuZ2VTaGFyZWRMb2NrVG9FeGNsdXNpdmVMb2NrKGludCkNCis/Q2hhbmdlU2hhcmVkTG9ja1RvRXhjbHVzaXZlTG9ja0BDU2hhcmVsb2NrQEBRQUVFSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkNoZWNrVGFibGUodm9pZCljb25zdCANCis/Q2hlY2tUYWJsZUBDTEtSSGFzaFRhYmxlQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q2hlY2tUYWJsZSh2b2lkKWNvbnN0IA0KKz9DaGVja1RhYmxlQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgQ1NoYXJlbG9jazo6Q2xhaW1FeGNsdXNpdmVMb2NrKGludCkNCis/Q2xhaW1FeGNsdXNpdmVMb2NrQENTaGFyZWxvY2tAQFFBRUVIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIENTaGFyZWxvY2s6OkNsYWltU2hhcmVMb2NrKGludCkNCis/Q2xhaW1TaGFyZUxvY2tAQ1NoYXJlbG9ja0BAUUFFRUhAWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fc3RkY2FsbCBDQ3JpdFNlYzo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDQ3JpdFNlY0BAU0dQQkRYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgQ0NyaXRTZWM6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ0NyaXRTZWNAQFNHUEJHWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgY29uc3QgKiBfX3N0ZGNhbGwgQ0Zha2VMb2NrOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENGYWtlTG9ja0BAU0dQQkRYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgQ0Zha2VMb2NrOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENGYWtlTG9ja0BAU0dQQkdYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgQ0xLUkhhc2hUYWJsZTo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDTEtSSGFzaFRhYmxlQEBTR1BCR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENMS1JMaW5lYXJIYXNoVGFibGVAQFNHUEJHWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgY29uc3QgKiBfX3N0ZGNhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENSZWFkZXJXcml0ZXJMb2NrMkBAU0dQQkRYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENSZWFkZXJXcml0ZXJMb2NrMkBAU0dQQkdYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fc3RkY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ1JlYWRlcldyaXRlckxvY2szQEBTR1BCRFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ1JlYWRlcldyaXRlckxvY2szQEBTR1BCR1haDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIGNvbnN0ICogX19zdGRjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENSZWFkZXJXcml0ZXJMb2NrQEBTR1BCRFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDUmVhZGVyV3JpdGVyTG9ja0BAU0dQQkdYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fc3RkY2FsbCBDUnRsUmVzb3VyY2U6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ1J0bFJlc291cmNlQEBTR1BCRFhaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIGNvbnN0ICogX19zdGRjYWxsIENTaGFyZUxvY2s6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ1NoYXJlTG9ja0BAU0dQQkRYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fc3RkY2FsbCBDU21hbGxTcGluTG9jazo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDU21hbGxTcGluTG9ja0BAU0dQQkRYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgQ1NtYWxsU3BpbkxvY2s6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ1NtYWxsU3BpbkxvY2tAQFNHUEJHWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgY29uc3QgKiBfX3N0ZGNhbGwgQ1NwaW5Mb2NrOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENTcGluTG9ja0BAU0dQQkRYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgQ1NwaW5Mb2NrOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENTcGluTG9ja0BAU0dQQkdYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpDbGVhbnVwKHZvaWQpDQorP0NsZWFudXBAQUxMT0NfQ0FDSEVfSEFORExFUkBAU0dIWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEhBU0hfVEFCTEU6OkNsZWFudXAodm9pZCkNCis/Q2xlYW51cEBIQVNIX1RBQkxFQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEhUQl9FTEVNRU5UOjpDbGVhbnVwKHZvaWQpDQorP0NsZWFudXBASFRCX0VMRU1FTlRAQFFBRVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQUxMT0NfQ0FDSEVfSEFORExFUjo6Q2xlYW51cEFsbExvb2thc2lkZXModm9pZCAqLHVuc2lnbmVkIGNoYXIpDQorP0NsZWFudXBBbGxMb29rYXNpZGVzQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFNHWFBBWEVAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQUxMT0NfQ0FDSEVfSEFORExFUjo6Q2xlYW51cExvb2thc2lkZShpbnQpDQorP0NsZWFudXBMb29rYXNpZGVAQUxMT0NfQ0FDSEVfSEFORExFUkBAUUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6Q2xlYXIodm9pZCkNCis/Q2xlYXJAQ0xLUkhhc2hUYWJsZUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpDbGVhcih2b2lkKQ0KKz9DbGVhckBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNUUjo6Q2xlYXIodm9pZCkNCis/Q2xlYXJAU1RSQEBRQUVYWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTVVMVElTWjo6Q2xvbmUoY2xhc3MgTVVMVElTWiAqKWNvbnN0IA0KKz9DbG9uZUBNVUxUSVNaQEBRQkVIUEFWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFI6OkNsb25lKGNsYXNzIFNUUiAqKWNvbnN0IA0KKz9DbG9uZUBTVFJAQFFCRUhQQVYxQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpDbG9uZShjbGFzcyBTVFJBICopY29uc3QgDQorP0Nsb25lQFNUUkFAQFFCRUpQQVYxQEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpDbG9zZUl0ZXJhdG9yKGNsYXNzIENMS1JIYXNoVGFibGU6OkNJdGVyYXRvciAqKQ0KKz9DbG9zZUl0ZXJhdG9yQENMS1JIYXNoVGFibGVAQFFBRT9BVzRMS19SRVRDT0RFQEBQQVZDSXRlcmF0b3JAMUBAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6Q2xvc2VJdGVyYXRvcihjbGFzcyBDTEtSSGFzaFRhYmxlOjpDQ29uc3RJdGVyYXRvciAqKWNvbnN0IA0KKz9DbG9zZUl0ZXJhdG9yQENMS1JIYXNoVGFibGVAQFFCRT9BVzRMS19SRVRDT0RFQEBQQVZDQ29uc3RJdGVyYXRvckAxQEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpDbG9zZUl0ZXJhdG9yKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNJdGVyYXRvciAqKQ0KKz9DbG9zZUl0ZXJhdG9yQENMS1JMaW5lYXJIYXNoVGFibGVAQFFBRT9BVzRMS19SRVRDT0RFQEBQQVZDSXRlcmF0b3JAMUBAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q2xvc2VJdGVyYXRvcihjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDQ29uc3RJdGVyYXRvciAqKWNvbnN0IA0KKz9DbG9zZUl0ZXJhdG9yQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRT9BVzRMS19SRVRDT0RFQEBQQVZDQ29uc3RJdGVyYXRvckAxQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBIQVNIX1RBQkxFOjpDbG9zZUl0ZXJhdG9yKHN0cnVjdCBIVF9JVEVSQVRPUiAqKQ0KKz9DbG9zZUl0ZXJhdG9yQEhBU0hfVEFCTEVAQFFBRUtQQVVIVF9JVEVSQVRPUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIEhBU0hfVEFCTEVfQlVDS0VUOjpDbG9zZUl0ZXJhdG9yKHN0cnVjdCBIVF9JVEVSQVRPUiAqKQ0KKz9DbG9zZUl0ZXJhdG9yQEhBU0hfVEFCTEVfQlVDS0VUQEBRQUVLUEFVSFRfSVRFUkFUT1JAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBUU19SRVNPVVJDRTo6Q29udmVydChlbnVtIFRTUkVTX0NPTlZfVFlQRSkNCis/Q29udmVydEBUU19SRVNPVVJDRUBAUUFFWFc0VFNSRVNfQ09OVl9UWVBFQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKQ0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ0NyaXRTZWNAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Zha2VMb2NrOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCkNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENGYWtlTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCljb25zdCANCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENMS1JIYXNoVGFibGVAQFFCRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpY29uc3QgDQorP0NvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZEBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpDQorP0NvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZEBDUmVhZGVyV3JpdGVyTG9jazJAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCkNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpDQorP0NvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZEBDUmVhZGVyV3JpdGVyTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUnRsUmVzb3VyY2U6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKQ0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ1J0bFJlc291cmNlQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTaGFyZUxvY2s6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKQ0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ1NoYXJlTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpDQorP0NvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZEBDU21hbGxTcGluTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3BpbkxvY2s6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKQ0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ1NwaW5Mb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDcml0U2VjOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENDcml0U2VjQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGYWtlTG9jazo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpDQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDRmFrZUxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpY29uc3QgDQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDTEtSSGFzaFRhYmxlQEBRQkVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKWNvbnN0IA0KKz9Db252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKQ0KKz9Db252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ1JlYWRlcldyaXRlckxvY2syQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpDQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDUmVhZGVyV3JpdGVyTG9jazNAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKQ0KKz9Db252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ1JlYWRlcldyaXRlckxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1J0bFJlc291cmNlOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENSdGxSZXNvdXJjZUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU2hhcmVMb2NrOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENTaGFyZUxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NtYWxsU3BpbkxvY2s6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKQ0KKz9Db252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ1NtYWxsU3BpbkxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NwaW5Mb2NrOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENTcGluTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1VTFRJU1o6OkNvcHkoY2xhc3MgTVVMVElTWiBjb25zdCAmKQ0KKz9Db3B5QE1VTFRJU1pAQFFBRUhBQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1VTFRJU1o6OkNvcHkoY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0NvcHlATVVMVElTWkBAUUFFSFBCREtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFI6OkNvcHkoY2xhc3MgU1RSIGNvbnN0ICYpDQorP0NvcHlAU1RSQEBRQUVIQUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFI6OkNvcHkoY2hhciBjb25zdCAqKQ0KKz9Db3B5QFNUUkBAUUFFSFBCREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUjo6Q29weShjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/Q29weUBTVFJAQFFBRUhQQkRLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkNvcHkoY2xhc3MgU1RSQSBjb25zdCAmKQ0KKz9Db3B5QFNUUkFAQFFBRUpBQlYxQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpDb3B5KGNoYXIgY29uc3QgKikNCis/Q29weUBTVFJBQEBRQUVKUEJEQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkNvcHkoY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0NvcHlAU1RSQUBAUUFFSlBCREtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJBVTo6Q29weShjbGFzcyBTVFJBVSAmKQ0KKz9Db3B5QFNUUkFVQEBRQUVIQUFWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJBVTo6Q29weShjaGFyIGNvbnN0ICopDQorP0NvcHlAU1RSQVVAQFFBRUhQQkRAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJBVTo6Q29weShjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/Q29weUBTVFJBVUBAUUFFSFBCREtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJBVTo6Q29weSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Db3B5QFNUUkFVQEBRQUVIUEJHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSQVU6OkNvcHkodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9Db3B5QFNUUkFVQEBRQUVIUEJHS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJVOjpDb3B5KGNsYXNzIFNUUlUgY29uc3QgJikNCis/Q29weUBTVFJVQEBRQUVKQUJWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSVTo6Q29weSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Db3B5QFNUUlVAQFFBRUpQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSVTo6Q29weSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0NvcHlAU1RSVUBAUUFFSlBCR0tAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSVTo6Q29weUEoY2hhciBjb25zdCAqKQ0KKz9Db3B5QUBTVFJVQEBRQUVKUEJEQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUlU6OkNvcHlBKGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9Db3B5QUBTVFJVQEBRQUVKUEJES0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpDb3B5QmluYXJ5KHZvaWQgKix1bnNpZ25lZCBsb25nKQ0KKz9Db3B5QmluYXJ5QFNUUkFAQFFBRUpQQVhLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RGVENhY2hlOjpDb3B5Rm9ybWF0dGVkRGF0YShzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgKixjaGFyICopY29uc3QgDQorP0NvcHlGb3JtYXR0ZWREYXRhQENERlRDYWNoZUBAUUJFSFBCVV9TWVNURU1USU1FQEBQQURAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgREFURVRJTUVfRk9STUFUX0VOVFJZOjpDb3B5Rm9ybWF0dGVkRGF0YShzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgKixjaGFyICopY29uc3QgDQorP0NvcHlGb3JtYXR0ZWREYXRhQERBVEVUSU1FX0ZPUk1BVF9FTlRSWUBAUUJFWFBCVV9TWVNURU1USU1FQEBQQURAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBNVUxUSVNaOjpDb3B5VG9CdWZmZXIoY2hhciAqLHVuc2lnbmVkIGxvbmcgKiljb25zdCANCis/Q29weVRvQnVmZmVyQE1VTFRJU1pAQFFCRUhQQURQQUtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFI6OkNvcHlUb0J1ZmZlcihjaGFyICosdW5zaWduZWQgbG9uZyAqKWNvbnN0IA0KKz9Db3B5VG9CdWZmZXJAU1RSQEBRQkVIUEFEUEFLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSOjpDb3B5VG9CdWZmZXIodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBsb25nICopY29uc3QgDQorP0NvcHlUb0J1ZmZlckBTVFJAQFFCRUhQQUdQQUtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6Q29weVRvQnVmZmVyKGNoYXIgKix1bnNpZ25lZCBsb25nICopY29uc3QgDQorP0NvcHlUb0J1ZmZlckBTVFJBQEBRQkVKUEFEUEFLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUlU6OkNvcHlUb0J1ZmZlcih1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGxvbmcgKiljb25zdCANCis/Q29weVRvQnVmZmVyQFNUUlVAQFFCRUpQQUdQQUtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6Q29weVcodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/Q29weVdAU1RSQUBAUUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpDb3B5Vyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0NvcHlXQFNUUkFAQFFBRUpQQkdLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkNvcHlXVG9VVEY4KGNsYXNzIFNUUlUgY29uc3QgJikNCis/Q29weVdUb1VURjhAU1RSQUBAUUFFSkFCVlNUUlVAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpDb3B5V1RvVVRGOCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Db3B5V1RvVVRGOEBTVFJBQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkNvcHlXVG9VVEY4KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/Q29weVdUb1VURjhAU1RSQUBAUUFFSlBCR0tAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6Q29weVdUb1VURjhVbmVzY2FwZWQoY2xhc3MgU1RSVSBjb25zdCAmKQ0KKz9Db3B5V1RvVVRGOFVuZXNjYXBlZEBTVFJBQEBRQUVKQUJWU1RSVUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkNvcHlXVG9VVEY4VW5lc2NhcGVkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NvcHlXVG9VVEY4VW5lc2NhcGVkQFNUUkFAQFFBRUpQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6Q29weVdUb1VURjhVbmVzY2FwZWQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9Db3B5V1RvVVRGOFVuZXNjYXBlZEBTVFJBQEBRQUVKUEJHS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpDb3B5V1RydW5jYXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NvcHlXVHJ1bmNhdGVAU1RSQUBAUUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpDb3B5V1RydW5jYXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/Q29weVdUcnVuY2F0ZUBTVFJBQEBRQUVKUEJHS0BaDQorQ3JlYXRlS2V5DQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDREZUQ2FjaGU6OkRhdGVUaW1lQ2hhcnModm9pZCljb25zdCANCis/RGF0ZVRpbWVDaGFyc0BDREZUQ2FjaGVAQFFCRUtYWg0KKzsgY2hhciBjb25zdCAqIF9fc3RkY2FsbCBEYXlPZldlZWszQ2hhck5hbWVzKHVuc2lnbmVkIGxvbmcpDQorP0RheU9mV2VlazNDaGFyTmFtZXNAQFlHUEJES0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBIVEJfRUxFTUVOVDo6RGVjcmVtZW50RWxlbWVudHModm9pZCkNCis/RGVjcmVtZW50RWxlbWVudHNASFRCX0VMRU1FTlRAQFFBRVhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBIQVNIX1RBQkxFOjpEZWxldGUoY2xhc3MgSFRfRUxFTUVOVCAqKQ0KKz9EZWxldGVASEFTSF9UQUJMRUBAUUFFSFBBVkhUX0VMRU1FTlRAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEhBU0hfVEFCTEVfQlVDS0VUOjpEZWxldGUoY2xhc3MgSFRfRUxFTUVOVCAqKQ0KKz9EZWxldGVASEFTSF9UQUJMRV9CVUNLRVRAQFFBRUhQQVZIVF9FTEVNRU5UQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBIVEJfRUxFTUVOVDo6RGVsZXRlKGNsYXNzIEhUX0VMRU1FTlQgKikNCis/RGVsZXRlQEhUQl9FTEVNRU5UQEBRQUVIUEFWSFRfRUxFTUVOVEBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIEJVRkZFUl9DSEFJTjo6RGVsZXRlQ2hhaW4odm9pZCkNCis/RGVsZXRlQ2hhaW5AQlVGRkVSX0NIQUlOQEBRQUVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkRlbGV0ZUlmKGVudW0gTEtfUFJFRElDQVRFICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLHZvaWQgKiksdm9pZCAqKQ0KKz9EZWxldGVJZkBDTEtSSGFzaFRhYmxlQEBRQUVLUDZHP0FXNExLX1BSRURJQ0FURUBAUEJYUEFYQFoxQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkRlbGV0ZUlmKGVudW0gTEtfUFJFRElDQVRFICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLHZvaWQgKiksdm9pZCAqKQ0KKz9EZWxldGVJZkBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUVLUDZHP0FXNExLX1BSRURJQ0FURUBAUEJYUEFYQFoxQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkRlbGV0ZUtleSh1bnNpZ25lZCBsb25nKQ0KKz9EZWxldGVLZXlAQ0xLUkhhc2hUYWJsZUBAUUFFP0FXNExLX1JFVENPREVAQEtAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6RGVsZXRlS2V5KHVuc2lnbmVkIGxvbmcpDQorP0RlbGV0ZUtleUBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUU/QVc0TEtfUkVUQ09ERUBAS0BaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpEZWxldGVSZWNvcmQodm9pZCBjb25zdCAqKQ0KKz9EZWxldGVSZWNvcmRAQ0xLUkhhc2hUYWJsZUBAUUFFP0FXNExLX1JFVENPREVAQFBCWEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpEZWxldGVSZWNvcmQodm9pZCBjb25zdCAqKQ0KKz9EZWxldGVSZWNvcmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUFFP0FXNExLX1JFVENPREVAQFBCWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENFdHdUcmFjZXI6OkRpc2FibGVFdmVudHNDYWxsYmFja0N1c3RvbUhhbmRsZXIodm9pZCkNCis/RGlzYWJsZUV2ZW50c0NhbGxiYWNrQ3VzdG9tSGFuZGxlckBDRXR3VHJhY2VyQEBVQUVLWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQUxMT0NfQ0FDSEVfSEFORExFUjo6RHVtcFN0YXRzVG9IdG1sKGNoYXIgKix1bnNpZ25lZCBsb25nICopDQorP0R1bXBTdGF0c1RvSHRtbEBBTExPQ19DQUNIRV9IQU5ETEVSQEBTR0hQQURQQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDRXR3VHJhY2VyOjpFbmFibGVFdmVudHNDYWxsYmFja0N1c3RvbUhhbmRsZXIodm9pZCkNCis/RW5hYmxlRXZlbnRzQ2FsbGJhY2tDdXN0b21IYW5kbGVyQENFdHdUcmFjZXJAQFVBRUtYWg0KKzsgcHVibGljOiBjbGFzcyBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yICBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkVuZCh2b2lkKQ0KKz9FbmRAQ0xLUkhhc2hUYWJsZUBAUUFFP0FWQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpFbmQodm9pZCkNCis/RW5kQENMS1JMaW5lYXJIYXNoVGFibGVAQFFBRT9BVkNMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUjo6RXF1KGNsYXNzIFNUUiBjb25zdCAmKWNvbnN0IA0KKz9FcXVAU1RSQEBRQkVIQUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFI6OkVxdShjaGFyICopY29uc3QgDQorP0VxdUBTVFJAQFFCRUhQQURAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6RXF1YWxSYW5nZSh1bnNpZ25lZCBsb25nLGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgJixjbGFzcyBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yICYpDQorP0VxdWFsUmFuZ2VAQ0xLUkhhc2hUYWJsZUBAUUFFX05LQUFWQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAMEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpFcXVhbFJhbmdlKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciAmLGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgJikNCis/RXF1YWxSYW5nZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUVfTktBQVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEAwQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSQTo6RXF1YWxzKGNsYXNzIFNUUkEgY29uc3QgJiljb25zdCANCis/RXF1YWxzQFNUUkFAQFFCRUhBQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUkE6OkVxdWFscyhjaGFyICogY29uc3QpY29uc3QgDQorP0VxdWFsc0BTVFJBQEBRQkVIUUFEQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSVTo6RXF1YWxzKGNsYXNzIFNUUlUgY29uc3QgJiljb25zdCANCis/RXF1YWxzQFNUUlVAQFFCRUhBQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUlU6OkVxdWFscyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9FcXVhbHNAU1RSVUBAUUJFSFBCR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUkE6OkVxdWFsc05vQ2FzZShjbGFzcyBTVFJBIGNvbnN0ICYpY29uc3QgDQorP0VxdWFsc05vQ2FzZUBTVFJBQEBRQkVIQUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJBOjpFcXVhbHNOb0Nhc2UoY2hhciAqIGNvbnN0KWNvbnN0IA0KKz9FcXVhbHNOb0Nhc2VAU1RSQUBAUUJFSFFBREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUlU6OkVxdWFsc05vQ2FzZShjbGFzcyBTVFJVIGNvbnN0ICYpY29uc3QgDQorP0VxdWFsc05vQ2FzZUBTVFJVQEBRQkVIQUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJVOjpFcXVhbHNOb0Nhc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/RXF1YWxzTm9DYXNlQFNUUlVAQFFCRUhQQkdAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6RXJhc2UoY2xhc3MgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvciAmLGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgJikNCis/RXJhc2VAQ0xLUkhhc2hUYWJsZUBAUUFFX05BQVZDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEAwQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkVyYXNlKGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgJikNCis/RXJhc2VAQ0xLUkhhc2hUYWJsZUBAUUFFX05BQVZDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6RXJhc2UoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciAmLGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgJikNCis/RXJhc2VAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUFFX05BQVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEAwQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkVyYXNlKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgJikNCis/RXJhc2VAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUFFX05BQVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFI6OkVzY2FwZSh2b2lkKQ0KKz9Fc2NhcGVAU1RSQEBRQUVIWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkVzY2FwZShpbnQsaW50KQ0KKz9Fc2NhcGVAU1RSQUBAUUFFSkhIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUlU6OkVzY2FwZSh2b2lkKQ0KKz9Fc2NhcGVAU1RSVUBAUUFFSlhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUjo6RXNjYXBlU3BhY2VzKHZvaWQpDQorP0VzY2FwZVNwYWNlc0BTVFJAQFFBRUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ0V0d1RyYWNlcjo6RXR3VHJhY2VFdmVudChzdHJ1Y3QgX0dVSUQgY29uc3QgKix1bnNpZ25lZCBsb25nLC4uLikNCis/RXR3VHJhY2VFdmVudEBDRXR3VHJhY2VyQEBRQUFLUEJVX0dVSURAQEtaWg0KKzsgaW50IF9fc3RkY2FsbCBGaWxlVGltZVRvR01UKHN0cnVjdCBfRklMRVRJTUUgY29uc3QgJixjaGFyICosdW5zaWduZWQgbG9uZykNCis/RmlsZVRpbWVUb0dNVEBAWUdIQUJVX0ZJTEVUSU1FQEBQQURLQFoNCis7IGludCBfX3N0ZGNhbGwgRmlsZVRpbWVUb0dNVEV4KHN0cnVjdCBfRklMRVRJTUUgY29uc3QgJixjaGFyICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9GaWxlVGltZVRvR01URXhAQFlHSEFCVV9GSUxFVElNRUBAUEFES0tAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6RmluZCh1bnNpZ25lZCBsb25nLGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgJikNCis/RmluZEBDTEtSSGFzaFRhYmxlQEBRQUVfTktBQVZDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6RmluZCh1bnNpZ25lZCBsb25nLGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgJikNCis/RmluZEBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUVfTktBQVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6RmluZEtleSh1bnNpZ25lZCBsb25nLHZvaWQgY29uc3QgKiAqKWNvbnN0IA0KKz9GaW5kS2V5QENMS1JIYXNoVGFibGVAQFFCRT9BVzRMS19SRVRDT0RFQEBLUEFQQlhAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6RmluZEtleSh1bnNpZ25lZCBsb25nLHZvaWQgY29uc3QgKiAqKWNvbnN0IA0KKz9GaW5kS2V5QENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRT9BVzRMS19SRVRDT0RFQEBLUEFQQlhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgSEFTSF9UQUJMRTo6RmluZE5leHRFbGVtZW50KHN0cnVjdCBIVF9JVEVSQVRPUiAqLGNsYXNzIEhUX0VMRU1FTlQgKiAqKQ0KKz9GaW5kTmV4dEVsZW1lbnRASEFTSF9UQUJMRUBAUUFFS1BBVUhUX0lURVJBVE9SQEBQQVBBVkhUX0VMRU1FTlRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBIQVNIX1RBQkxFX0JVQ0tFVDo6RmluZE5leHRFbGVtZW50KHN0cnVjdCBIVF9JVEVSQVRPUiAqLGNsYXNzIEhUX0VMRU1FTlQgKiAqKQ0KKz9GaW5kTmV4dEVsZW1lbnRASEFTSF9UQUJMRV9CVUNLRVRAQFFBRUtQQVVIVF9JVEVSQVRPUkBAUEFQQVZIVF9FTEVNRU5UQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgSFRCX0VMRU1FTlQ6OkZpbmROZXh0RWxlbWVudCh1bnNpZ25lZCBsb25nICosY2xhc3MgSFRfRUxFTUVOVCAqICopDQorP0ZpbmROZXh0RWxlbWVudEBIVEJfRUxFTUVOVEBAUUFFS1BBS1BBUEFWSFRfRUxFTUVOVEBAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkZpbmRSZWNvcmQodm9pZCBjb25zdCAqKWNvbnN0IA0KKz9GaW5kUmVjb3JkQENMS1JIYXNoVGFibGVAQFFCRT9BVzRMS19SRVRDT0RFQEBQQlhAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6RmluZFJlY29yZCh2b2lkIGNvbnN0ICopY29uc3QgDQorP0ZpbmRSZWNvcmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFP0FXNExLX1JFVENPREVAQFBCWEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1VTFRJU1o6OkZpbmRTdHJpbmcoY2xhc3MgU1RSIGNvbnN0ICYpDQorP0ZpbmRTdHJpbmdATVVMVElTWkBAUUFFSEFCVlNUUkBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTVVMVElTWjo6RmluZFN0cmluZyhjaGFyIGNvbnN0ICopDQorP0ZpbmRTdHJpbmdATVVMVElTWkBAUUFFSFBCREBaDQorOyBwdWJsaWM6IGNsYXNzIENMaXN0RW50cnkgKiBfX3RoaXNjYWxsIENEb3VibGVMaXN0OjpGaXJzdCh2b2lkKWNvbnN0IA0KKz9GaXJzdEBDRG91YmxlTGlzdEBAUUJFUUFWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fdGhpc2NhbGwgQ0xvY2tlZERvdWJsZUxpc3Q6OkZpcnN0KHZvaWQpDQorP0ZpcnN0QENMb2NrZWREb3VibGVMaXN0QEBRQUVRQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBNVUxUSVNaOjpGaXJzdCh2b2lkKWNvbnN0IA0KKz9GaXJzdEBNVUxUSVNaQEBRQkVQQkRYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSFRCRV9FTlRSWSAqIF9fdGhpc2NhbGwgSFRCX0VMRU1FTlQ6OkZpcnN0RWxlbWVudCh2b2lkKQ0KKz9GaXJzdEVsZW1lbnRASFRCX0VMRU1FTlRAQFFBRVBBVUhUQkVfRU5UUllAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBIQVNIX1RBQkxFOjpGbHVzaEVsZW1lbnRzKHZvaWQpDQorP0ZsdXNoRWxlbWVudHNASEFTSF9UQUJMRUBAUUFFS1haDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUjo6Rm9ybWF0U3RyaW5nKHVuc2lnbmVkIGxvbmcsY2hhciBjb25zdCAqICogY29uc3QsY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0Zvcm1hdFN0cmluZ0BTVFJAQFFBRUhLUUFQQkRQQkRLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkZvcm1hdFN0cmluZyh1bnNpZ25lZCBsb25nLGNoYXIgY29uc3QgKiAqIGNvbnN0LGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9Gb3JtYXRTdHJpbmdAU1RSQUBAUUFFSktRQVBCRFBCREtAWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBDREZUQ2FjaGU6OkZvcm1hdHRlZEJ1ZmZlcih2b2lkKWNvbnN0IA0KKz9Gb3JtYXR0ZWRCdWZmZXJAQ0RGVENhY2hlQEBRQkVQQkRYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpGcmVlKHZvaWQgKikNCis/RnJlZUBBTExPQ19DQUNIRV9IQU5ETEVSQEBRQUVIUEFYQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEJVRkZFUjo6RnJlZU1lbW9yeSh2b2lkKQ0KKz9GcmVlTWVtb3J5QEJVRkZFUkBAUUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIEFTQ0xPR19EQVRFVElNRV9DQUNIRTo6R2VuZXJhdGVEYXRlVGltZVN0cmluZyhzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZICosc3RydWN0IF9TWVNURU1USU1FIGNvbnN0ICopDQorP0dlbmVyYXRlRGF0ZVRpbWVTdHJpbmdAQVNDTE9HX0RBVEVUSU1FX0NBQ0hFQEBVQUVYUEFVREFURVRJTUVfRk9STUFUX0VOVFJZQEBQQlVfU1lTVEVNVElNRUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgRVhUTE9HX0RBVEVUSU1FX0NBQ0hFOjpHZW5lcmF0ZURhdGVUaW1lU3RyaW5nKHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlkgKixzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgKikNCis/R2VuZXJhdGVEYXRlVGltZVN0cmluZ0BFWFRMT0dfREFURVRJTUVfQ0FDSEVAQFVBRVhQQVVEQVRFVElNRV9GT1JNQVRfRU5UUllAQFBCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBXM19EQVRFVElNRV9DQUNIRTo6R2VuZXJhdGVEYXRlVGltZVN0cmluZyhzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZICosc3RydWN0IF9TWVNURU1USU1FIGNvbnN0ICopDQorP0dlbmVyYXRlRGF0ZVRpbWVTdHJpbmdAVzNfREFURVRJTUVfQ0FDSEVAQFVBRVhQQVVEQVRFVElNRV9GT1JNQVRfRU5UUllAQFBCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkdldEJ1Y2tldExvY2tTcGluQ291bnQodm9pZCljb25zdCANCis/R2V0QnVja2V0TG9ja1NwaW5Db3VudEBDTEtSSGFzaFRhYmxlQEBRQkVHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpHZXRCdWNrZXRMb2NrU3BpbkNvdW50KHZvaWQpY29uc3QgDQorP0dldEJ1Y2tldExvY2tTcGluQ291bnRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFR1haDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19zdGRjYWxsIENDcml0U2VjOjpHZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3Iodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENDcml0U2VjQEBTR05YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fc3RkY2FsbCBDRmFrZUxvY2s6OkdldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcih2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ0Zha2VMb2NrQEBTR05YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fc3RkY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OkdldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcih2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1JlYWRlcldyaXRlckxvY2syQEBTR05YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fc3RkY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OkdldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcih2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1JlYWRlcldyaXRlckxvY2szQEBTR05YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fc3RkY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUmVhZGVyV3JpdGVyTG9ja0BAU0dOWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX3N0ZGNhbGwgQ1J0bFJlc291cmNlOjpHZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3Iodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENSdGxSZXNvdXJjZUBAU0dOWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX3N0ZGNhbGwgQ1NoYXJlTG9jazo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDU2hhcmVMb2NrQEBTR05YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fc3RkY2FsbCBDU21hbGxTcGluTG9jazo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDU21hbGxTcGluTG9ja0BAU0dOWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX3N0ZGNhbGwgQ1NwaW5Mb2NrOjpHZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3Iodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENTcGluTG9ja0BAU0dOWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fc3RkY2FsbCBDQ3JpdFNlYzo6R2V0RGVmYXVsdFNwaW5Db3VudCh2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkNvdW50QENDcml0U2VjQEBTR0dYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19zdGRjYWxsIENGYWtlTG9jazo6R2V0RGVmYXVsdFNwaW5Db3VudCh2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkNvdW50QENGYWtlTG9ja0BAU0dHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fc3RkY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OkdldERlZmF1bHRTcGluQ291bnQodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazJAQFNHR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX3N0ZGNhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2szQEBTR0dYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19zdGRjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2tAQFNHR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX3N0ZGNhbGwgQ1J0bFJlc291cmNlOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ1J0bFJlc291cmNlQEBTR0dYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19zdGRjYWxsIENTaGFyZUxvY2s6OkdldERlZmF1bHRTcGluQ291bnQodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5Db3VudEBDU2hhcmVMb2NrQEBTR0dYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19zdGRjYWxsIENTbWFsbFNwaW5Mb2NrOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ1NtYWxsU3BpbkxvY2tAQFNHR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX3N0ZGNhbGwgQ1NwaW5Mb2NrOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ1NwaW5Mb2NrQEBTR0dYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgRVZFTlRfTE9HOjpHZXRFcnJvckNvZGUodm9pZCljb25zdCANCis/R2V0RXJyb3JDb2RlQEVWRU5UX0xPR0BAUUJFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDQUNIRURfREFURVRJTUVfRk9STUFUUzo6R2V0Rm9ybWF0dGVkQ3VycmVudERhdGVUaW1lKGNoYXIgKikNCis/R2V0Rm9ybWF0dGVkQ3VycmVudERhdGVUaW1lQENBQ0hFRF9EQVRFVElNRV9GT1JNQVRTQEBRQUVLUEFEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENBQ0hFRF9EQVRFVElNRV9GT1JNQVRTOjpHZXRGb3JtYXR0ZWREYXRlVGltZShzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgKixjaGFyICopDQorP0dldEZvcm1hdHRlZERhdGVUaW1lQENBQ0hFRF9EQVRFVElNRV9GT1JNQVRTQEBRQUVLUEJVX1NZU1RFTVRJTUVAQFBBREBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBCVUZGRVI6OkdldE5ld1N0b3JhZ2UodW5zaWduZWQgaW50KQ0KKz9HZXROZXdTdG9yYWdlQEJVRkZFUkBAQUFFSElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENDcml0U2VjOjpHZXRTcGluQ291bnQodm9pZCljb25zdCANCis/R2V0U3BpbkNvdW50QENDcml0U2VjQEBRQkVHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDRmFrZUxvY2s6OkdldFNwaW5Db3VudCh2b2lkKWNvbnN0IA0KKz9HZXRTcGluQ291bnRAQ0Zha2VMb2NrQEBRQkVHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OkdldFNwaW5Db3VudCh2b2lkKWNvbnN0IA0KKz9HZXRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2syQEBRQkVHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OkdldFNwaW5Db3VudCh2b2lkKWNvbnN0IA0KKz9HZXRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2szQEBRQkVHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6R2V0U3BpbkNvdW50KHZvaWQpY29uc3QgDQorP0dldFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9ja0BAUUJFR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgQ1J0bFJlc291cmNlOjpHZXRTcGluQ291bnQodm9pZCljb25zdCANCis/R2V0U3BpbkNvdW50QENSdGxSZXNvdXJjZUBAUUJFR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgQ1NoYXJlTG9jazo6R2V0U3BpbkNvdW50KHZvaWQpY29uc3QgDQorP0dldFNwaW5Db3VudEBDU2hhcmVMb2NrQEBRQkVHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6R2V0U3BpbkNvdW50KHZvaWQpY29uc3QgDQorP0dldFNwaW5Db3VudEBDU21hbGxTcGluTG9ja0BAUUJFR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgQ1NwaW5Mb2NrOjpHZXRTcGluQ291bnQodm9pZCljb25zdCANCis/R2V0U3BpbkNvdW50QENTcGluTG9ja0BAUUJFR1haDQorOyBwdWJsaWM6IGNsYXNzIENMS1JIYXNoVGFibGVTdGF0cyAgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpHZXRTdGF0aXN0aWNzKHZvaWQpY29uc3QgDQorP0dldFN0YXRpc3RpY3NAQ0xLUkhhc2hUYWJsZUBAUUJFP0FWQ0xLUkhhc2hUYWJsZVN0YXRzQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDTEtSSGFzaFRhYmxlU3RhdHMgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6R2V0U3RhdGlzdGljcyh2b2lkKWNvbnN0IA0KKz9HZXRTdGF0aXN0aWNzQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRT9BVkNMS1JIYXNoVGFibGVTdGF0c0BAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpHZXRUYWJsZUxvY2tTcGluQ291bnQodm9pZCljb25zdCANCis/R2V0VGFibGVMb2NrU3BpbkNvdW50QENMS1JIYXNoVGFibGVAQFFCRUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkdldFRhYmxlTG9ja1NwaW5Db3VudCh2b2lkKWNvbnN0IA0KKz9HZXRUYWJsZUxvY2tTcGluQ291bnRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFR1haDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENEYXRlVGltZTo6R2V0VGlja0NvdW50KHZvaWQpDQorP0dldFRpY2tDb3VudEBDRGF0ZVRpbWVAQFFBRUhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6SFRNTEVuY29kZSh2b2lkKQ0KKz9IVE1MRW5jb2RlQFNUUkFAQFFBRUpYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU1RSOjpIYXNoKHZvaWQpDQorP0hhc2hAU1RSQEBRQUVYWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSBjb25zdCAqIF9fdGhpc2NhbGwgQ0RvdWJsZUxpc3Q6OkhlYWROb2RlKHZvaWQpY29uc3QgDQorP0hlYWROb2RlQENEb3VibGVMaXN0QEBRQkVRQlZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5IGNvbnN0ICogX190aGlzY2FsbCBDTG9ja2VkRG91YmxlTGlzdDo6SGVhZE5vZGUodm9pZCljb25zdCANCis/SGVhZE5vZGVAQ0xvY2tlZERvdWJsZUxpc3RAQFFCRVFCVkNMaXN0RW50cnlAQFhaDQorSUlTQ3JlYXRlRGlyZWN0b3J5DQorSUlTc3RyaWNtcA0KK0lJU3N0cmxlbg0KK0lJU3N0cmx3cg0KK0lJU3N0cm5jcHkNCitJSVNzdHJuaWNtcA0KK0lJU3N0cnJjaHINCitJSVNzdHJ1cHINCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGVfSXRlcmF0b3I6OkluY3JlbWVudCh2b2lkKQ0KKz9JbmNyZW1lbnRAQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcjo6SW5jcmVtZW50KHZvaWQpDQorP0luY3JlbWVudEBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBRQUVfTlhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBIVEJfRUxFTUVOVDo6SW5jcmVtZW50RWxlbWVudHModm9pZCkNCis/SW5jcmVtZW50RWxlbWVudHNASFRCX0VMRU1FTlRAQFFBRVhYWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6SW5jcmVtZW50SXRlcmF0b3IoY2xhc3MgQ0xLUkhhc2hUYWJsZTo6Q0l0ZXJhdG9yICopDQorP0luY3JlbWVudEl0ZXJhdG9yQENMS1JIYXNoVGFibGVAQFFBRT9BVzRMS19SRVRDT0RFQEBQQVZDSXRlcmF0b3JAMUBAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6SW5jcmVtZW50SXRlcmF0b3IoY2xhc3MgQ0xLUkhhc2hUYWJsZTo6Q0NvbnN0SXRlcmF0b3IgKiljb25zdCANCis/SW5jcmVtZW50SXRlcmF0b3JAQ0xLUkhhc2hUYWJsZUBAUUJFP0FXNExLX1JFVENPREVAQFBBVkNDb25zdEl0ZXJhdG9yQDFAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkluY3JlbWVudEl0ZXJhdG9yKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNJdGVyYXRvciAqKQ0KKz9JbmNyZW1lbnRJdGVyYXRvckBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUU/QVc0TEtfUkVUQ09ERUBAUEFWQ0l0ZXJhdG9yQDFAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkluY3JlbWVudEl0ZXJhdG9yKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNDb25zdEl0ZXJhdG9yICopY29uc3QgDQorP0luY3JlbWVudEl0ZXJhdG9yQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRT9BVzRMS19SRVRDT0RFQEBQQVZDQ29uc3RJdGVyYXRvckAxQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OkluaXRpYWxpemUodm9pZCkNCis/SW5pdGlhbGl6ZUBBTExPQ19DQUNIRV9IQU5ETEVSQEBTR0hYWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6SW5pdGlhbGl6ZUl0ZXJhdG9yKGNsYXNzIENMS1JIYXNoVGFibGU6OkNJdGVyYXRvciAqKQ0KKz9Jbml0aWFsaXplSXRlcmF0b3JAQ0xLUkhhc2hUYWJsZUBAUUFFP0FXNExLX1JFVENPREVAQFBBVkNJdGVyYXRvckAxQEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpJbml0aWFsaXplSXRlcmF0b3IoY2xhc3MgQ0xLUkhhc2hUYWJsZTo6Q0NvbnN0SXRlcmF0b3IgKiljb25zdCANCis/SW5pdGlhbGl6ZUl0ZXJhdG9yQENMS1JIYXNoVGFibGVAQFFCRT9BVzRMS19SRVRDT0RFQEBQQVZDQ29uc3RJdGVyYXRvckAxQEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpJbml0aWFsaXplSXRlcmF0b3IoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q0l0ZXJhdG9yICopDQorP0luaXRpYWxpemVJdGVyYXRvckBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUU/QVc0TEtfUkVUQ09ERUBAUEFWQ0l0ZXJhdG9yQDFAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkluaXRpYWxpemVJdGVyYXRvcihjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDQ29uc3RJdGVyYXRvciAqKWNvbnN0IA0KKz9Jbml0aWFsaXplSXRlcmF0b3JAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFP0FXNExLX1JFVENPREVAQFBBVkNDb25zdEl0ZXJhdG9yQDFAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIEhBU0hfVEFCTEU6OkluaXRpYWxpemVJdGVyYXRvcihzdHJ1Y3QgSFRfSVRFUkFUT1IgKikNCis/SW5pdGlhbGl6ZUl0ZXJhdG9yQEhBU0hfVEFCTEVAQFFBRUtQQVVIVF9JVEVSQVRPUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIEhBU0hfVEFCTEVfQlVDS0VUOjpJbml0aWFsaXplSXRlcmF0b3Ioc3RydWN0IEhUX0lURVJBVE9SICopDQorP0luaXRpYWxpemVJdGVyYXRvckBIQVNIX1RBQkxFX0JVQ0tFVEBAUUFFS1BBVUhUX0lURVJBVE9SQEBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6SW5zZXJ0KHZvaWQgY29uc3QgKixjbGFzcyBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yICYsYm9vbCkNCis/SW5zZXJ0QENMS1JIYXNoVGFibGVAQFFBRV9OUEJYQUFWQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAX05AWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SW5zZXJ0KHZvaWQgY29uc3QgKixjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yICYsYm9vbCkNCis/SW5zZXJ0QENMS1JMaW5lYXJIYXNoVGFibGVAQFFBRV9OUEJYQUFWQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAX05AWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBIQVNIX1RBQkxFOjpJbnNlcnQoY2xhc3MgSFRfRUxFTUVOVCAqLGludCkNCis/SW5zZXJ0QEhBU0hfVEFCTEVAQFFBRUhQQVZIVF9FTEVNRU5UQEBIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgSEFTSF9UQUJMRV9CVUNLRVQ6Okluc2VydCh1bnNpZ25lZCBsb25nLGNsYXNzIEhUX0VMRU1FTlQgKixpbnQpDQorP0luc2VydEBIQVNIX1RBQkxFX0JVQ0tFVEBAUUFFSEtQQVZIVF9FTEVNRU5UQEBIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgSFRCX0VMRU1FTlQ6Okluc2VydCh1bnNpZ25lZCBsb25nLGNsYXNzIEhUX0VMRU1FTlQgKikNCis/SW5zZXJ0QEhUQl9FTEVNRU5UQEBRQUVIS1BBVkhUX0VMRU1FTlRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRG91YmxlTGlzdDo6SW5zZXJ0SGVhZChjbGFzcyBDTGlzdEVudHJ5ICogY29uc3QpDQorP0luc2VydEhlYWRAQ0RvdWJsZUxpc3RAQFFBRVhRQVZDTGlzdEVudHJ5QEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xvY2tlZERvdWJsZUxpc3Q6Okluc2VydEhlYWQoY2xhc3MgQ0xpc3RFbnRyeSAqIGNvbnN0KQ0KKz9JbnNlcnRIZWFkQENMb2NrZWREb3VibGVMaXN0QEBRQUVYUUFWQ0xpc3RFbnRyeUBAQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6Okluc2VydE5ld0l0ZW0oY2xhc3MgQUxMT0NfQ0FDSEVfSEFORExFUiAqKQ0KKz9JbnNlcnROZXdJdGVtQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFNHWFBBVjFAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6Okluc2VydFJlY29yZCh2b2lkIGNvbnN0ICosYm9vbCkNCis/SW5zZXJ0UmVjb3JkQENMS1JIYXNoVGFibGVAQFFBRT9BVzRMS19SRVRDT0RFQEBQQlhfTkBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpJbnNlcnRSZWNvcmQodm9pZCBjb25zdCAqLGJvb2wpDQorP0luc2VydFJlY29yZEBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUU/QVc0TEtfUkVUQ09ERUBAUEJYX05AWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0RvdWJsZUxpc3Q6Okluc2VydFRhaWwoY2xhc3MgQ0xpc3RFbnRyeSAqIGNvbnN0KQ0KKz9JbnNlcnRUYWlsQENEb3VibGVMaXN0QEBRQUVYUUFWQ0xpc3RFbnRyeUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMb2NrZWREb3VibGVMaXN0OjpJbnNlcnRUYWlsKGNsYXNzIENMaXN0RW50cnkgKiBjb25zdCkNCis/SW5zZXJ0VGFpbEBDTG9ja2VkRG91YmxlTGlzdEBAUUFFWFFBVkNMaXN0RW50cnlAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OklwUHJpbnQoY2hhciAqLHVuc2lnbmVkIGxvbmcgKikNCis/SXBQcmludEBBTExPQ19DQUNIRV9IQU5ETEVSQEBRQUVIUEFEUEFLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTUxTWkFVOjpJc0N1cnJlbnRVbmljb2RlKHZvaWQpDQorP0lzQ3VycmVudFVuaWNvZGVATUxTWkFVQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSQVU6OklzQ3VycmVudFVuaWNvZGUodm9pZCkNCis/SXNDdXJyZW50VW5pY29kZUBTVFJBVUBAUUFFSFhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBCVUZGRVI6OklzRHluQWxsb2NlZCh2b2lkKWNvbnN0IA0KKz9Jc0R5bkFsbG9jZWRAQlVGRkVSQEBBQkVIWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENEb3VibGVMaXN0OjpJc0VtcHR5KHZvaWQpY29uc3QgDQorP0lzRW1wdHlAQ0RvdWJsZUxpc3RAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMb2NrZWREb3VibGVMaXN0OjpJc0VtcHR5KHZvaWQpY29uc3QgDQorP0lzRW1wdHlAQ0xvY2tlZERvdWJsZUxpc3RAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMb2NrZWRTaW5nbGVMaXN0OjpJc0VtcHR5KHZvaWQpY29uc3QgDQorP0lzRW1wdHlAQ0xvY2tlZFNpbmdsZUxpc3RAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTaW5nbGVMaXN0OjpJc0VtcHR5KHZvaWQpY29uc3QgDQorP0lzRW1wdHlAQ1NpbmdsZUxpc3RAQFFCRV9OWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTVVMVElTWjo6SXNFbXB0eSh2b2lkKWNvbnN0IA0KKz9Jc0VtcHR5QE1VTFRJU1pAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFI6OklzRW1wdHkodm9pZCljb25zdCANCis/SXNFbXB0eUBTVFJAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJBOjpJc0VtcHR5KHZvaWQpY29uc3QgDQorP0lzRW1wdHlAU1RSQUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUkFVOjpJc0VtcHR5KHZvaWQpDQorP0lzRW1wdHlAU1RSQVVAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJVOjpJc0VtcHR5KHZvaWQpY29uc3QgDQorP0lzRW1wdHlAU1RSVUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENERlRDYWNoZTo6SXNIaXQoc3RydWN0IF9TWVNURU1USU1FIGNvbnN0ICopY29uc3QgDQorP0lzSGl0QENERlRDYWNoZUBAUUJFSFBCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBEQVRFVElNRV9GT1JNQVRfRU5UUlk6OklzSGl0KHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAqKWNvbnN0IA0KKz9Jc0hpdEBEQVRFVElNRV9GT1JNQVRfRU5UUllAQFFCRUhQQlVfU1lTVEVNVElNRUBAQFoNCitJc0lQQWRkcmVzc0xvY2FsDQorSXNMYXJnZUludGVnZXJUb0RlY2ltYWxDaGFyDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTG9ja2VkRG91YmxlTGlzdDo6SXNMb2NrZWQodm9pZCljb25zdCANCis/SXNMb2NrZWRAQ0xvY2tlZERvdWJsZUxpc3RAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMb2NrZWRTaW5nbGVMaXN0OjpJc0xvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc0xvY2tlZEBDTG9ja2VkU2luZ2xlTGlzdEBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRMb2NrZWRAQ0NyaXRTZWNAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENGYWtlTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZExvY2tlZEBDRmFrZUxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRMb2NrZWRAQ0xLUkhhc2hUYWJsZUBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZExvY2tlZEBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRMb2NrZWRAQ1JlYWRlcldyaXRlckxvY2syQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRMb2NrZWRAQ1JlYWRlcldyaXRlckxvY2szQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZExvY2tlZEBDUmVhZGVyV3JpdGVyTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1J0bFJlc291cmNlOjpJc1JlYWRMb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkTG9ja2VkQENSdGxSZXNvdXJjZUBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1NoYXJlTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZExvY2tlZEBDU2hhcmVMb2NrQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZExvY2tlZEBDU21hbGxTcGluTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1NwaW5Mb2NrOjpJc1JlYWRMb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkTG9ja2VkQENTcGluTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OklzUmVhZFVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZFVubG9ja2VkQENDcml0U2VjQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDRmFrZUxvY2s6OklzUmVhZFVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZFVubG9ja2VkQENGYWtlTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkVW5sb2NrZWRAQ0xLUkhhc2hUYWJsZUBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkVW5sb2NrZWRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpJc1JlYWRVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRVbmxvY2tlZEBDUmVhZGVyV3JpdGVyTG9jazJAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkVW5sb2NrZWRAQ1JlYWRlcldyaXRlckxvY2szQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkVW5sb2NrZWRAQ1JlYWRlcldyaXRlckxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSdGxSZXNvdXJjZTo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkVW5sb2NrZWRAQ1J0bFJlc291cmNlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU2hhcmVMb2NrOjpJc1JlYWRVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRVbmxvY2tlZEBDU2hhcmVMb2NrQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkVW5sb2NrZWRAQ1NtYWxsU3BpbkxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTcGluTG9jazo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkVW5sb2NrZWRAQ1NwaW5Mb2NrQEBRQkVfTlhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEhUQl9FTEVNRU5UOjpJc1NwYWNlQXZhaWxhYmxlKHZvaWQpY29uc3QgDQorP0lzU3BhY2VBdmFpbGFibGVASFRCX0VMRU1FTlRAQFFCRUhYWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xvY2tlZERvdWJsZUxpc3Q6OklzVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNVbmxvY2tlZEBDTG9ja2VkRG91YmxlTGlzdEBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xvY2tlZFNpbmdsZUxpc3Q6OklzVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNVbmxvY2tlZEBDTG9ja2VkU2luZ2xlTGlzdEBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6SXNVc2FibGUodm9pZCljb25zdCANCis/SXNVc2FibGVAQ0xLUkhhc2hUYWJsZUBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SXNVc2FibGUodm9pZCljb25zdCANCis/SXNVc2FibGVAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFX05YWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpJc1ZhbGlkKHZvaWQpY29uc3QgDQorP0lzVmFsaWRAQUxMT0NfQ0FDSEVfSEFORExFUkBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEJVRkZFUjo6SXNWYWxpZCh2b2lkKWNvbnN0IA0KKz9Jc1ZhbGlkQEJVRkZFUkBAUUJFSFhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpJc1ZhbGlkKHZvaWQpY29uc3QgDQorP0lzVmFsaWRAQ0xLUkhhc2hUYWJsZUBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6SXNWYWxpZCh2b2lkKWNvbnN0IA0KKz9Jc1ZhbGlkQENMS1JIYXNoVGFibGVfSXRlcmF0b3JAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OklzVmFsaWQodm9pZCljb25zdCANCis/SXNWYWxpZEBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjpJc1ZhbGlkKHZvaWQpY29uc3QgDQorP0lzVmFsaWRAQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAUUJFX05YWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBIQVNIX1RBQkxFOjpJc1ZhbGlkKHZvaWQpY29uc3QgDQorP0lzVmFsaWRASEFTSF9UQUJMRUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1MU1pBVTo6SXNWYWxpZCh2b2lkKQ0KKz9Jc1ZhbGlkQE1MU1pBVUBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1VTFRJU1o6OklzVmFsaWQodm9pZCljb25zdCANCis/SXNWYWxpZEBNVUxUSVNaQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSOjpJc1ZhbGlkKHZvaWQpY29uc3QgDQorP0lzVmFsaWRAU1RSQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSQTo6SXNWYWxpZCh2b2lkKWNvbnN0IA0KKz9Jc1ZhbGlkQFNUUkFAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJBVTo6SXNWYWxpZCh2b2lkKQ0KKz9Jc1ZhbGlkQFNUUkFVQEBRQUVIWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENDcml0U2VjOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVMb2NrZWRAQ0NyaXRTZWNAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENGYWtlTG9jazo6SXNXcml0ZUxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1dyaXRlTG9ja2VkQENGYWtlTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6SXNXcml0ZUxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1dyaXRlTG9ja2VkQENMS1JIYXNoVGFibGVAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZUxvY2tlZEBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZUxvY2tlZEBDUmVhZGVyV3JpdGVyTG9jazJAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6SXNXcml0ZUxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1dyaXRlTG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrM0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZUxvY2tlZEBDUmVhZGVyV3JpdGVyTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1J0bFJlc291cmNlOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVMb2NrZWRAQ1J0bFJlc291cmNlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU2hhcmVMb2NrOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVMb2NrZWRAQ1NoYXJlTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1NtYWxsU3BpbkxvY2s6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZUxvY2tlZEBDU21hbGxTcGluTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1NwaW5Mb2NrOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVMb2NrZWRAQ1NwaW5Mb2NrQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDQ3JpdFNlYzo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVVbmxvY2tlZEBDQ3JpdFNlY0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0Zha2VMb2NrOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZVVubG9ja2VkQENGYWtlTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVVbmxvY2tlZEBDTEtSSGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZVVubG9ja2VkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVVbmxvY2tlZEBDUmVhZGVyV3JpdGVyTG9jazJAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVVbmxvY2tlZEBDUmVhZGVyV3JpdGVyTG9jazNAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZVVubG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUnRsUmVzb3VyY2U6OklzV3JpdGVVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ1J0bFJlc291cmNlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU2hhcmVMb2NrOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZVVubG9ja2VkQENTaGFyZUxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTbWFsbFNwaW5Mb2NrOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZVVubG9ja2VkQENTbWFsbFNwaW5Mb2NrQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU3BpbkxvY2s6OklzV3JpdGVVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ1NwaW5Mb2NrQEBRQkVfTlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgY29uc3QgIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6S2V5KHZvaWQpY29uc3QgDQorP0tleUBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBRQkU/QktYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3I6OktleSh2b2lkKWNvbnN0IA0KKz9LZXlAQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAUUJFP0JLWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fdGhpc2NhbGwgQ0RvdWJsZUxpc3Q6Okxhc3Qodm9pZCljb25zdCANCis/TGFzdEBDRG91YmxlTGlzdEBAUUJFUUFWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fdGhpc2NhbGwgQ0xvY2tlZERvdWJsZUxpc3Q6Okxhc3Qodm9pZCkNCis/TGFzdEBDTG9ja2VkRG91YmxlTGlzdEBAUUFFUUFWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogc3RydWN0IEhUQkVfRU5UUlkgKiBfX3RoaXNjYWxsIEhUQl9FTEVNRU5UOjpMYXN0RWxlbWVudCh2b2lkKQ0KKz9MYXN0RWxlbWVudEBIVEJfRUxFTUVOVEBAUUFFUEFVSFRCRV9FTlRSWUBAWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSOjpMb2FkU3RyaW5nQSh1bnNpZ25lZCBsb25nLHN0cnVjdCBISU5TVEFOQ0VfXyAqKQ0KKz9Mb2FkU3RyaW5nQUBTVFJAQFFBRUhLUEFVSElOU1RBTkNFX19AQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUjo6TG9hZFN0cmluZ0EodW5zaWduZWQgbG9uZyxjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/TG9hZFN0cmluZ0FAU1RSQEBRQUVIS1BCREtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6TG9hZFN0cmluZ1codW5zaWduZWQgbG9uZyxzdHJ1Y3QgSElOU1RBTkNFX18gKikNCis/TG9hZFN0cmluZ1dAU1RSQUBAUUFFSktQQVVISU5TVEFOQ0VfX0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkxvYWRTdHJpbmdXKHVuc2lnbmVkIGxvbmcsY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0xvYWRTdHJpbmdXQFNUUkFAQFFBRUpLUEJES0BaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQUxMT0NfQ0FDSEVfSEFORExFUjo6TG9jayh2b2lkKQ0KKz9Mb2NrQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQEFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xvY2tlZERvdWJsZUxpc3Q6OkxvY2sodm9pZCkNCis/TG9ja0BDTG9ja2VkRG91YmxlTGlzdEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTG9ja2VkU2luZ2xlTGlzdDo6TG9jayh2b2lkKQ0KKz9Mb2NrQENMb2NrZWRTaW5nbGVMaXN0QEBRQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBIQVNIX1RBQkxFX0JVQ0tFVDo6TG9jayh2b2lkKQ0KKz9Mb2NrQEhBU0hfVEFCTEVfQlVDS0VUQEBBQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFRTX1JFU09VUkNFOjpMb2NrKGVudW0gVFNSRVNfTE9DS19UWVBFKQ0KKz9Mb2NrQFRTX1JFU09VUkNFQEBRQUVYVzRUU1JFU19MT0NLX1RZUEVAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MSwxLDMsMSwzLDI+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDAkMDAkMDIkMDAkMDIkMDFAQFNHP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MiwxLDEsMSwzLDI+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDEkMDAkMDAkMDAkMDIkMDFAQFNHP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDIkMDAkMDAkMDAkMDAkMDBAQFNHP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NCwxLDEsMiwzLDM+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDMkMDAkMDAkMDEkMDIkMDJAQFNHP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NSwyLDEsMiwzLDM+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDQkMDEkMDAkMDEkMDIkMDJAQFNHP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NiwyLDEsMiwzLDM+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDUkMDEkMDAkMDEkMDIkMDJAQFNHP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NywyLDIsMSwzLDI+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDYkMDEkMDEkMDAkMDIkMDFAQFNHP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8OCwyLDIsMSwzLDI+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDckMDEkMDEkMDAkMDIkMDFAQFNHP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8OSwyLDEsMSwzLDI+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDgkMDEkMDAkMDAkMDIkMDFAQFNHP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBFVkVOVF9MT0c6OkxvZ0V2ZW50KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQsY2hhciBjb25zdCAqICogY29uc3QsdW5zaWduZWQgbG9uZykNCis/TG9nRXZlbnRARVZFTlRfTE9HQEBRQUVYS0dRQVBCREtAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIEVWRU5UX0xPRzo6TG9nRXZlbnRQcml2YXRlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQsY2hhciBjb25zdCAqICogY29uc3QsdW5zaWduZWQgbG9uZykNCis/TG9nRXZlbnRQcml2YXRlQEVWRU5UX0xPR0BAQUFFWEtHR1FBUEJES0BaDQorOyBwdWJsaWM6IGNsYXNzIEhUX0VMRU1FTlQgKiBfX3RoaXNjYWxsIEhBU0hfVEFCTEU6Okxvb2t1cChjaGFyIGNvbnN0ICopDQorP0xvb2t1cEBIQVNIX1RBQkxFQEBRQUVQQVZIVF9FTEVNRU5UQEBQQkRAWg0KKzsgcHVibGljOiBjbGFzcyBIVF9FTEVNRU5UICogX190aGlzY2FsbCBIQVNIX1RBQkxFOjpMb29rdXAoY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0xvb2t1cEBIQVNIX1RBQkxFQEBRQUVQQVZIVF9FTEVNRU5UQEBQQkRLQFoNCis7IHB1YmxpYzogY2xhc3MgSFRfRUxFTUVOVCAqIF9fdGhpc2NhbGwgSEFTSF9UQUJMRV9CVUNLRVQ6Okxvb2t1cCh1bnNpZ25lZCBsb25nLGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9Mb29rdXBASEFTSF9UQUJMRV9CVUNLRVRAQFFBRVBBVkhUX0VMRU1FTlRAQEtQQkRLQFoNCis7IHB1YmxpYzogY2xhc3MgSFRfRUxFTUVOVCAqIF9fdGhpc2NhbGwgSFRCX0VMRU1FTlQ6Okxvb2t1cCh1bnNpZ25lZCBsb25nLGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9Mb29rdXBASFRCX0VMRU1FTlRAQFFBRVBBVkhUX0VMRU1FTlRAQEtQQkRLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6Ok1heFNpemUodm9pZCljb25zdCANCis/TWF4U2l6ZUBDTEtSSGFzaFRhYmxlQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ok1heFNpemUodm9pZCljb25zdCANCis/TWF4U2l6ZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVLWFoNCis7IGNoYXIgY29uc3QgKiBfX3N0ZGNhbGwgTW9udGgzQ2hhck5hbWVzKHVuc2lnbmVkIGxvbmcpDQorP01vbnRoM0NoYXJOYW1lc0BAWUdQQkRLQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6Ok11bHRpS2V5cyh2b2lkKWNvbnN0IA0KKz9NdWx0aUtleXNAQ0xLUkhhc2hUYWJsZUBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6TXVsdGlLZXlzKHZvaWQpY29uc3QgDQorP011bHRpS2V5c0BDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MSwxLDMsMSwzLDI+OjpNdXRleFR5cGUodm9pZCkNCis/TXV0ZXhUeXBlQD8kQ0xvY2tCYXNlQCQwMCQwMCQwMiQwMCQwMiQwMUBAU0c/QVc0TE9DS19SV19NVVRFWEBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SV19NVVRFWCAgX19zdGRjYWxsIENMb2NrQmFzZTwyLDEsMSwxLDMsMj46Ok11dGV4VHlwZSh2b2lkKQ0KKz9NdXRleFR5cGVAPyRDTG9ja0Jhc2VAJDAxJDAwJDAwJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1JXX01VVEVYQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JXX01VVEVYICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDMsMSwxLDEsMSwxPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDIkMDAkMDAkMDAkMDAkMDBAQFNHP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NCwxLDEsMiwzLDM+OjpNdXRleFR5cGUodm9pZCkNCis/TXV0ZXhUeXBlQD8kQ0xvY2tCYXNlQCQwMyQwMCQwMCQwMSQwMiQwMkBAU0c/QVc0TE9DS19SV19NVVRFWEBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SV19NVVRFWCAgX19zdGRjYWxsIENMb2NrQmFzZTw1LDIsMSwyLDMsMz46Ok11dGV4VHlwZSh2b2lkKQ0KKz9NdXRleFR5cGVAPyRDTG9ja0Jhc2VAJDA0JDAxJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX1JXX01VVEVYQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JXX01VVEVYICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDYsMiwxLDIsMywzPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDUkMDEkMDAkMDEkMDIkMDJAQFNHP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NywyLDIsMSwzLDI+OjpNdXRleFR5cGUodm9pZCkNCis/TXV0ZXhUeXBlQD8kQ0xvY2tCYXNlQCQwNiQwMSQwMSQwMCQwMiQwMUBAU0c/QVc0TE9DS19SV19NVVRFWEBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SV19NVVRFWCAgX19zdGRjYWxsIENMb2NrQmFzZTw4LDIsMiwxLDMsMj46Ok11dGV4VHlwZSh2b2lkKQ0KKz9NdXRleFR5cGVAPyRDTG9ja0Jhc2VAJDA3JDAxJDAxJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1JXX01VVEVYQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JXX01VVEVYICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDksMiwxLDEsMywyPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDgkMDEkMDAkMDAkMDIkMDFAQFNHP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIE1VTFRJU1o6Ok5leHQoY2hhciBjb25zdCAqKWNvbnN0IA0KKz9OZXh0QE1VTFRJU1pAQFFCRVBCRFBCREBaDQorOyBwdWJsaWM6IGNsYXNzIEJVRkZFUl9DSEFJTl9JVEVNICogX190aGlzY2FsbCBCVUZGRVJfQ0hBSU46Ok5leHRCdWZmZXIoY2xhc3MgQlVGRkVSX0NIQUlOX0lURU0gKikNCis/TmV4dEJ1ZmZlckBCVUZGRVJfQ0hBSU5AQFFBRVBBVkJVRkZFUl9DSEFJTl9JVEVNQEBQQVYyQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBIVEJfRUxFTUVOVDo6TmV4dEVsZW1lbnQoc3RydWN0IEhUQkVfRU5UUlkgKiAmKQ0KKz9OZXh0RWxlbWVudEBIVEJfRUxFTUVOVEBAUUFFWEFBUEFVSFRCRV9FTlRSWUBAQFoNCis7IGxvbmcgX19zdGRjYWxsIE5vcm1hbGl6ZVVybChjaGFyICopDQorP05vcm1hbGl6ZVVybEBAWUdKUEFEQFoNCis7IGxvbmcgX19zdGRjYWxsIE5vcm1hbGl6ZVVybFcodW5zaWduZWQgc2hvcnQgKikNCis/Tm9ybWFsaXplVXJsV0BAWUdKUEFHQFoNCitOdExhcmdlSW50ZWdlclRpbWVUb0xvY2FsU3lzdGVtVGltZQ0KK050TGFyZ2VJbnRlZ2VyVGltZVRvU3lzdGVtVGltZQ0KK050U3lzdGVtVGltZVRvTGFyZ2VJbnRlZ2VyDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBIVEJfRUxFTUVOVDo6TnVtRWxlbWVudHModm9pZCljb25zdCANCis/TnVtRWxlbWVudHNASFRCX0VMRU1FTlRAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgSEFTSF9UQUJMRV9CVUNLRVQ6Ok51bUVudHJpZXModm9pZCkNCis/TnVtRW50cmllc0BIQVNIX1RBQkxFX0JVQ0tFVEBAUUFFS1haDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6Ok51bVN1YlRhYmxlcyh2b2lkKWNvbnN0IA0KKz9OdW1TdWJUYWJsZXNAQ0xLUkhhc2hUYWJsZUBAUUJFSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExLX1RBQkxFU0laRSAgX19zdGRjYWxsIENMS1JIYXNoVGFibGU6Ok51bVN1YlRhYmxlcyh1bnNpZ25lZCBsb25nICYsdW5zaWduZWQgbG9uZyAmKQ0KKz9OdW1TdWJUYWJsZXNAQ0xLUkhhc2hUYWJsZUBAU0c/QVc0TEtfVEFCTEVTSVpFQEBBQUswQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6TnVtU3ViVGFibGVzKHZvaWQpY29uc3QgDQorP051bVN1YlRhYmxlc0BDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVIWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTEtfVEFCTEVTSVpFICBfX3N0ZGNhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6TnVtU3ViVGFibGVzKHVuc2lnbmVkIGxvbmcgJix1bnNpZ25lZCBsb25nICYpDQorP051bVN1YlRhYmxlc0BDTEtSTGluZWFySGFzaFRhYmxlQEBTRz9BVzRMS19UQUJMRVNJWkVAQEFBSzBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDREZUQ2FjaGU6Ok9mZnNldFNlY29uZHModm9pZCljb25zdCANCis/T2Zmc2V0U2Vjb25kc0BDREZUQ2FjaGVAQFFCRUhYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1BFUkxPQ0tfU1BJTiAgX19zdGRjYWxsIENMb2NrQmFzZTwxLDEsMywxLDMsMj46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwMCQwMCQwMiQwMCQwMiQwMUBAU0c/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDIsMSwxLDEsMywyPjo6UGVyTG9ja1NwaW4odm9pZCkNCis/UGVyTG9ja1NwaW5APyRDTG9ja0Jhc2VAJDAxJDAwJDAwJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1BFUkxPQ0tfU1BJTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19QRVJMT0NLX1NQSU4gIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+OjpQZXJMb2NrU3Bpbih2b2lkKQ0KKz9QZXJMb2NrU3BpbkA/JENMb2NrQmFzZUAkMDIkMDAkMDAkMDAkMDAkMDBAQFNHP0FXNExPQ0tfUEVSTE9DS19TUElOQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1BFUkxPQ0tfU1BJTiAgX19zdGRjYWxsIENMb2NrQmFzZTw0LDEsMSwyLDMsMz46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwMyQwMCQwMCQwMSQwMiQwMkBAU0c/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDUsMiwxLDIsMywzPjo6UGVyTG9ja1NwaW4odm9pZCkNCis/UGVyTG9ja1NwaW5APyRDTG9ja0Jhc2VAJDA0JDAxJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX1BFUkxPQ0tfU1BJTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19QRVJMT0NLX1NQSU4gIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NiwyLDEsMiwzLDM+OjpQZXJMb2NrU3Bpbih2b2lkKQ0KKz9QZXJMb2NrU3BpbkA/JENMb2NrQmFzZUAkMDUkMDEkMDAkMDEkMDIkMDJAQFNHP0FXNExPQ0tfUEVSTE9DS19TUElOQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1BFUkxPQ0tfU1BJTiAgX19zdGRjYWxsIENMb2NrQmFzZTw3LDIsMiwxLDMsMj46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwNiQwMSQwMSQwMCQwMiQwMUBAU0c/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDgsMiwyLDEsMywyPjo6UGVyTG9ja1NwaW4odm9pZCkNCis/UGVyTG9ja1NwaW5APyRDTG9ja0Jhc2VAJDA3JDAxJDAxJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1BFUkxPQ0tfU1BJTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19QRVJMT0NLX1NQSU4gIF9fc3RkY2FsbCBDTG9ja0Jhc2U8OSwyLDEsMSwzLDI+OjpQZXJMb2NrU3Bpbih2b2lkKQ0KKz9QZXJMb2NrU3BpbkA/JENMb2NrQmFzZUAkMDgkMDEkMDAkMDAkMDIkMDFAQFNHP0FXNExPQ0tfUEVSTE9DS19TUElOQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDU2luZ2xlTGlzdEVudHJ5ICogX190aGlzY2FsbCBDTG9ja2VkU2luZ2xlTGlzdDo6UG9wKHZvaWQpDQorP1BvcEBDTG9ja2VkU2luZ2xlTGlzdEBAUUFFUUFWQ1NpbmdsZUxpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ1NpbmdsZUxpc3RFbnRyeSAqIF9fdGhpc2NhbGwgQ1NpbmdsZUxpc3Q6OlBvcCh2b2lkKQ0KKz9Qb3BAQ1NpbmdsZUxpc3RAQFFBRVFBVkNTaW5nbGVMaXN0RW50cnlAQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpQcmludCh2b2lkKQ0KKz9QcmludEBBTExPQ19DQUNIRV9IQU5ETEVSQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEhBU0hfVEFCTEU6OlByaW50KHVuc2lnbmVkIGxvbmcpDQorP1ByaW50QEhBU0hfVEFCTEVAQFFBRVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEhBU0hfVEFCTEVfQlVDS0VUOjpQcmludCh1bnNpZ25lZCBsb25nKQ0KKz9QcmludEBIQVNIX1RBQkxFX0JVQ0tFVEBAUUFFWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgSFRCX0VMRU1FTlQ6OlByaW50KHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP1ByaW50QEhUQl9FTEVNRU5UQEBRQkVYS0BaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgU1RSQVU6OlByaXZhdGVRdWVyeVN0cihpbnQpDQorP1ByaXZhdGVRdWVyeVN0ckBTVFJBVUBAQUFFUEFHSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTG9ja2VkU2luZ2xlTGlzdDo6UHVzaChjbGFzcyBDU2luZ2xlTGlzdEVudHJ5ICogY29uc3QpDQorP1B1c2hAQ0xvY2tlZFNpbmdsZUxpc3RAQFFBRVhRQVZDU2luZ2xlTGlzdEVudHJ5QEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NpbmdsZUxpc3Q6OlB1c2goY2xhc3MgQ1NpbmdsZUxpc3RFbnRyeSAqIGNvbnN0KQ0KKz9QdXNoQENTaW5nbGVMaXN0QEBRQUVYUUFWQ1NpbmdsZUxpc3RFbnRyeUBAQFoNCis7IHB1YmxpYzogY2xhc3MgQlVGRkVSICogX190aGlzY2FsbCBTVFJVOjpRdWVyeUJ1ZmZlcih2b2lkKQ0KKz9RdWVyeUJ1ZmZlckBTVFJVQEBRQUVQQVZCVUZGRVJAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIE1MU1pBVTo6UXVlcnlDQihpbnQpDQorP1F1ZXJ5Q0JATUxTWkFVQEBRQUVJSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIE1VTFRJU1o6OlF1ZXJ5Q0Iodm9pZCljb25zdCANCis/UXVlcnlDQkBNVUxUSVNaQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgU1RSOjpRdWVyeUNCKHZvaWQpY29uc3QgDQorP1F1ZXJ5Q0JAU1RSQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgU1RSQTo6UXVlcnlDQih2b2lkKWNvbnN0IA0KKz9RdWVyeUNCQFNUUkFAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBTVFJBVTo6UXVlcnlDQihpbnQpDQorP1F1ZXJ5Q0JAU1RSQVVAQFFBRUlIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgU1RSVTo6UXVlcnlDQih2b2lkKWNvbnN0IA0KKz9RdWVyeUNCQFNUUlVAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBNTFNaQVU6OlF1ZXJ5Q0JBKHZvaWQpDQorP1F1ZXJ5Q0JBQE1MU1pBVUBAUUFFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIFNUUkFVOjpRdWVyeUNCQSh2b2lkKQ0KKz9RdWVyeUNCQUBTVFJBVUBAUUFFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIE1MU1pBVTo6UXVlcnlDQlcodm9pZCkNCis/UXVlcnlDQldATUxTWkFVQEBRQUVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgU1RSQVU6OlF1ZXJ5Q0JXKHZvaWQpDQorP1F1ZXJ5Q0JXQFNUUkFVQEBRQUVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTUxTWkFVOjpRdWVyeUNDSCh2b2lkKQ0KKz9RdWVyeUNDSEBNTFNaQVVAQFFBRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBNVUxUSVNaOjpRdWVyeUNDSCh2b2lkKWNvbnN0IA0KKz9RdWVyeUNDSEBNVUxUSVNaQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgU1RSOjpRdWVyeUNDSCh2b2lkKWNvbnN0IA0KKz9RdWVyeUNDSEBTVFJAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBTVFJBOjpRdWVyeUNDSCh2b2lkKWNvbnN0IA0KKz9RdWVyeUNDSEBTVFJBQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgU1RSQVU6OlF1ZXJ5Q0NIKHZvaWQpDQorP1F1ZXJ5Q0NIQFNUUkFVQEBRQUVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgU1RSVTo6UXVlcnlDQ0godm9pZCljb25zdCANCis/UXVlcnlDQ0hAU1RSVUBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDRXR3VHJhY2VyOjpRdWVyeUVuYWJsZUxldmVsKHZvaWQpDQorP1F1ZXJ5RW5hYmxlTGV2ZWxAQ0V0d1RyYWNlckBAUUFFS1haDQorOyBwdWJsaWM6IGNoYXIgX190aGlzY2FsbCBTVFI6OlF1ZXJ5Rmlyc3RDaGFyKHZvaWQpY29uc3QgDQorP1F1ZXJ5Rmlyc3RDaGFyQFNUUkBAUUJFRFhaDQorOyBwdWJsaWM6IGNoYXIgX190aGlzY2FsbCBTVFI6OlF1ZXJ5TGFzdENoYXIodm9pZCljb25zdCANCis/UXVlcnlMYXN0Q2hhckBTVFJAQFFCRURYWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBCVUZGRVI6OlF1ZXJ5UHRyKHZvaWQpY29uc3QgDQorP1F1ZXJ5UHRyQEJVRkZFUkBAUUJFUEFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgQlVGRkVSOjpRdWVyeVNpemUodm9pZCljb25zdCANCis/UXVlcnlTaXplQEJVRkZFUkBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIFNUUkE6OlF1ZXJ5U2l6ZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVNpemVAU1RSQUBAUUJFSVhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpRdWVyeVN0YXRzKHN0cnVjdCBfQUxMT0NfQ0FDSEVfU1RBVElTVElDUyAqKQ0KKz9RdWVyeVN0YXRzQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFFBRVhQQVVfQUxMT0NfQ0FDSEVfU1RBVElTVElDU0BAQFoNCis7IHB1YmxpYzogY2hhciAqIF9fdGhpc2NhbGwgTUxTWkFVOjpRdWVyeVN0cihpbnQpDQorP1F1ZXJ5U3RyQE1MU1pBVUBAUUFFUEFESEBaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIE1VTFRJU1o6OlF1ZXJ5U3RyKHZvaWQpY29uc3QgDQorP1F1ZXJ5U3RyQE1VTFRJU1pAQFFCRVBBRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIFNUUjo6UXVlcnlTdHIodm9pZCljb25zdCANCis/UXVlcnlTdHJAU1RSQEBRQkVQQURYWg0KKzsgcHVibGljOiBjaGFyICogX190aGlzY2FsbCBTVFJBOjpRdWVyeVN0cih2b2lkKQ0KKz9RdWVyeVN0ckBTVFJBQEBRQUVQQURYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBTVFJBOjpRdWVyeVN0cih2b2lkKWNvbnN0IA0KKz9RdWVyeVN0ckBTVFJBQEBRQkVQQkRYWg0KKzsgcHVibGljOiBjaGFyICogX190aGlzY2FsbCBTVFJBVTo6UXVlcnlTdHIoaW50KQ0KKz9RdWVyeVN0ckBTVFJBVUBAUUFFUEFESEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBTVFJBVTo6UXVlcnlTdHIoaW50KQ0KKz9RdWVyeVN0ckBTVFJBVUBAUUFFUEFHSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBTVFJVOjpRdWVyeVN0cih2b2lkKQ0KKz9RdWVyeVN0ckBTVFJVQEBRQUVQQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgU1RSVTo6UXVlcnlTdHIodm9pZCljb25zdCANCis/UXVlcnlTdHJAU1RSVUBAUUJFUEJHWFoNCis7IHB1YmxpYzogY2hhciAqIF9fdGhpc2NhbGwgTUxTWkFVOjpRdWVyeVN0ckEodm9pZCkNCis/UXVlcnlTdHJBQE1MU1pBVUBAUUFFUEFEWFoNCis7IHB1YmxpYzogY2hhciAqIF9fdGhpc2NhbGwgTVVMVElTWjo6UXVlcnlTdHJBKHZvaWQpY29uc3QgDQorP1F1ZXJ5U3RyQUBNVUxUSVNaQEBRQkVQQURYWg0KKzsgcHVibGljOiBjaGFyICogX190aGlzY2FsbCBTVFI6OlF1ZXJ5U3RyQSh2b2lkKWNvbnN0IA0KKz9RdWVyeVN0ckFAU1RSQEBRQkVQQURYWg0KKzsgcHVibGljOiBjaGFyICogX190aGlzY2FsbCBTVFJBVTo6UXVlcnlTdHJBKHZvaWQpDQorP1F1ZXJ5U3RyQUBTVFJBVUBAUUFFUEFEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIE1MU1pBVTo6UXVlcnlTdHJXKHZvaWQpDQorP1F1ZXJ5U3RyV0BNTFNaQVVAQFFBRVBBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBTVFJBVTo6UXVlcnlTdHJXKHZvaWQpDQorP1F1ZXJ5U3RyV0BTVFJBVUBAUUFFUEFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIE1VTFRJU1o6OlF1ZXJ5U3RyaW5nQ291bnQodm9pZCljb25zdCANCis/UXVlcnlTdHJpbmdDb3VudEBNVUxUSVNaQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX3RoaXNjYWxsIENFdHdUcmFjZXI6OlF1ZXJ5VHJhY2VIYW5kbGUodm9pZCkNCis/UXVlcnlUcmFjZUhhbmRsZUBDRXR3VHJhY2VyQEBRQUVfS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBCVUZGRVJfQ0hBSU5fSVRFTTo6UXVlcnlVc2VkKHZvaWQpY29uc3QgDQorP1F1ZXJ5VXNlZEBCVUZGRVJfQ0hBSU5fSVRFTUBAUUJFS1haDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTwxLDEsMywxLDMsMj46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDAwJDAwJDAyJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTwyLDEsMSwxLDMsMj46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDAxJDAwJDAwJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTwzLDEsMSwxLDEsMT46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDAyJDAwJDAwJDAwJDAwJDAwQEBTRz9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTw0LDEsMSwyLDMsMz46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDAzJDAwJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTw1LDIsMSwyLDMsMz46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDA0JDAxJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTw2LDIsMSwyLDMsMz46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDA1JDAxJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTw3LDIsMiwxLDMsMj46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDA2JDAxJDAxJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTw4LDIsMiwxLDMsMj46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDA3JDAxJDAxJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTw5LDIsMSwxLDMsMj46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDA4JDAxJDAwJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDRGF0YUNhY2hlPGNsYXNzIENEYXRlVGltZT46OlJlYWQoY2xhc3MgQ0RhdGVUaW1lICYpY29uc3QgDQorP1JlYWRAPyRDRGF0YUNhY2hlQFZDRGF0ZVRpbWVAQEBAUUJFX05BQVZDRGF0ZVRpbWVAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ3JpdFNlYzo6UmVhZExvY2sodm9pZCkNCis/UmVhZExvY2tAQ0NyaXRTZWNAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Zha2VMb2NrOjpSZWFkTG9jayh2b2lkKQ0KKz9SZWFkTG9ja0BDRmFrZUxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6UmVhZExvY2sodm9pZCljb25zdCANCis/UmVhZExvY2tAQ0xLUkhhc2hUYWJsZUBAUUJFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpSZWFkTG9jayh2b2lkKWNvbnN0IA0KKz9SZWFkTG9ja0BDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6UmVhZExvY2sodm9pZCkNCis/UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2syQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6UmVhZExvY2sodm9pZCkNCis/UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpSZWFkTG9jayh2b2lkKQ0KKz9SZWFkTG9ja0BDUmVhZGVyV3JpdGVyTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUnRsUmVzb3VyY2U6OlJlYWRMb2NrKHZvaWQpDQorP1JlYWRMb2NrQENSdGxSZXNvdXJjZUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU2hhcmVMb2NrOjpSZWFkTG9jayh2b2lkKQ0KKz9SZWFkTG9ja0BDU2hhcmVMb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTbWFsbFNwaW5Mb2NrOjpSZWFkTG9jayh2b2lkKQ0KKz9SZWFkTG9ja0BDU21hbGxTcGluTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3BpbkxvY2s6OlJlYWRMb2NrKHZvaWQpDQorP1JlYWRMb2NrQENTcGluTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDQ3JpdFNlYzo6UmVhZE9yV3JpdGVMb2NrKHZvaWQpDQorP1JlYWRPcldyaXRlTG9ja0BDQ3JpdFNlY0BAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0Zha2VMb2NrOjpSZWFkT3JXcml0ZUxvY2sodm9pZCkNCis/UmVhZE9yV3JpdGVMb2NrQENGYWtlTG9ja0BAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpSZWFkT3JXcml0ZUxvY2sodm9pZCkNCis/UmVhZE9yV3JpdGVMb2NrQENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1NwaW5Mb2NrOjpSZWFkT3JXcml0ZUxvY2sodm9pZCkNCis/UmVhZE9yV3JpdGVMb2NrQENTcGluTG9ja0BAUUFFX05YWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OlJlYWRPcldyaXRlVW5sb2NrKGJvb2wpDQorP1JlYWRPcldyaXRlVW5sb2NrQENDcml0U2VjQEBRQUVYX05AWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Zha2VMb2NrOjpSZWFkT3JXcml0ZVVubG9jayhib29sKQ0KKz9SZWFkT3JXcml0ZVVubG9ja0BDRmFrZUxvY2tAQFFBRVhfTkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OlJlYWRPcldyaXRlVW5sb2NrKGJvb2wpDQorP1JlYWRPcldyaXRlVW5sb2NrQENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFWF9OQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTcGluTG9jazo6UmVhZE9yV3JpdGVVbmxvY2soYm9vbCkNCis/UmVhZE9yV3JpdGVVbmxvY2tAQ1NwaW5Mb2NrQEBRQUVYX05AWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OlJlYWRVbmxvY2sodm9pZCkNCis/UmVhZFVubG9ja0BDQ3JpdFNlY0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRmFrZUxvY2s6OlJlYWRVbmxvY2sodm9pZCkNCis/UmVhZFVubG9ja0BDRmFrZUxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6UmVhZFVubG9jayh2b2lkKWNvbnN0IA0KKz9SZWFkVW5sb2NrQENMS1JIYXNoVGFibGVAQFFCRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6UmVhZFVubG9jayh2b2lkKWNvbnN0IA0KKz9SZWFkVW5sb2NrQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpSZWFkVW5sb2NrKHZvaWQpDQorP1JlYWRVbmxvY2tAQ1JlYWRlcldyaXRlckxvY2syQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6UmVhZFVubG9jayh2b2lkKQ0KKz9SZWFkVW5sb2NrQENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6UmVhZFVubG9jayh2b2lkKQ0KKz9SZWFkVW5sb2NrQENSZWFkZXJXcml0ZXJMb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSdGxSZXNvdXJjZTo6UmVhZFVubG9jayh2b2lkKQ0KKz9SZWFkVW5sb2NrQENSdGxSZXNvdXJjZUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU2hhcmVMb2NrOjpSZWFkVW5sb2NrKHZvaWQpDQorP1JlYWRVbmxvY2tAQ1NoYXJlTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6UmVhZFVubG9jayh2b2lkKQ0KKz9SZWFkVW5sb2NrQENTbWFsbFNwaW5Mb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTcGluTG9jazo6UmVhZFVubG9jayh2b2lkKQ0KKz9SZWFkVW5sb2NrQENTcGluTG9ja0BAUUFFWFhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBCVUZGRVI6OlJlYWxsb2NTdG9yYWdlKHVuc2lnbmVkIGludCkNCis/UmVhbGxvY1N0b3JhZ2VAQlVGRkVSQEBBQUVISUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBNVUxUSVNaOjpSZWNhbGNMZW4odm9pZCkNCis/UmVjYWxjTGVuQE1VTFRJU1pAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIGNvbnN0ICogX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yOjpSZWNvcmQodm9pZCljb25zdCANCis/UmVjb3JkQENMS1JIYXNoVGFibGVfSXRlcmF0b3JAQFFCRVBCWFhaDQorOyBwdWJsaWM6IHZvaWQgY29uc3QgKiBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3I6OlJlY29yZCh2b2lkKWNvbnN0IA0KKz9SZWNvcmRAQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAUUJFUEJYWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SRUNVUlNJT04gIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MSwxLDMsMSwzLDI+OjpSZWN1cnNpb24odm9pZCkNCis/UmVjdXJzaW9uQD8kQ0xvY2tCYXNlQCQwMCQwMCQwMiQwMCQwMiQwMUBAU0c/QVc0TE9DS19SRUNVUlNJT05AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUkVDVVJTSU9OICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDIsMSwxLDEsMywyPjo6UmVjdXJzaW9uKHZvaWQpDQorP1JlY3Vyc2lvbkA/JENMb2NrQmFzZUAkMDEkMDAkMDAkMDAkMDIkMDFAQFNHP0FXNExPQ0tfUkVDVVJTSU9OQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JFQ1VSU0lPTiAgX19zdGRjYWxsIENMb2NrQmFzZTwzLDEsMSwxLDEsMT46OlJlY3Vyc2lvbih2b2lkKQ0KKz9SZWN1cnNpb25APyRDTG9ja0Jhc2VAJDAyJDAwJDAwJDAwJDAwJDAwQEBTRz9BVzRMT0NLX1JFQ1VSU0lPTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SRUNVUlNJT04gIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NCwxLDEsMiwzLDM+OjpSZWN1cnNpb24odm9pZCkNCis/UmVjdXJzaW9uQD8kQ0xvY2tCYXNlQCQwMyQwMCQwMCQwMSQwMiQwMkBAU0c/QVc0TE9DS19SRUNVUlNJT05AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUkVDVVJTSU9OICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDUsMiwxLDIsMywzPjo6UmVjdXJzaW9uKHZvaWQpDQorP1JlY3Vyc2lvbkA/JENMb2NrQmFzZUAkMDQkMDEkMDAkMDEkMDIkMDJAQFNHP0FXNExPQ0tfUkVDVVJTSU9OQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JFQ1VSU0lPTiAgX19zdGRjYWxsIENMb2NrQmFzZTw2LDIsMSwyLDMsMz46OlJlY3Vyc2lvbih2b2lkKQ0KKz9SZWN1cnNpb25APyRDTG9ja0Jhc2VAJDA1JDAxJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX1JFQ1VSU0lPTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SRUNVUlNJT04gIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NywyLDIsMSwzLDI+OjpSZWN1cnNpb24odm9pZCkNCis/UmVjdXJzaW9uQD8kQ0xvY2tCYXNlQCQwNiQwMSQwMSQwMCQwMiQwMUBAU0c/QVc0TE9DS19SRUNVUlNJT05AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUkVDVVJTSU9OICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDgsMiwyLDEsMywyPjo6UmVjdXJzaW9uKHZvaWQpDQorP1JlY3Vyc2lvbkA/JENMb2NrQmFzZUAkMDckMDEkMDEkMDAkMDIkMDFAQFNHP0FXNExPQ0tfUkVDVVJTSU9OQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JFQ1VSU0lPTiAgX19zdGRjYWxsIENMb2NrQmFzZTw5LDIsMSwxLDMsMj46OlJlY3Vyc2lvbih2b2lkKQ0KKz9SZWN1cnNpb25APyRDTG9ja0Jhc2VAJDA4JDAxJDAwJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1JFQ1VSU0lPTkBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENFdHdUcmFjZXI6OlJlZ2lzdGVyKHN0cnVjdCBfR1VJRCBjb25zdCAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKikNCis/UmVnaXN0ZXJAQ0V0d1RyYWNlckBAUUFFS1BCVV9HVUlEQEBQQUcxQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTaGFyZWxvY2s6OlJlbGVhc2VFeGNsdXNpdmVMb2NrKHZvaWQpDQorP1JlbGVhc2VFeGNsdXNpdmVMb2NrQENTaGFyZWxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NoYXJlbG9jazo6UmVsZWFzZVNoYXJlTG9jayh2b2lkKQ0KKz9SZWxlYXNlU2hhcmVMb2NrQENTaGFyZWxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ0RvdWJsZUxpc3Q6OlJlbW92ZUVudHJ5KGNsYXNzIENMaXN0RW50cnkgKiBjb25zdCkNCis/UmVtb3ZlRW50cnlAQ0RvdWJsZUxpc3RAQFNHWFFBVkNMaXN0RW50cnlAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTG9ja2VkRG91YmxlTGlzdDo6UmVtb3ZlRW50cnkoY2xhc3MgQ0xpc3RFbnRyeSAqIGNvbnN0KQ0KKz9SZW1vdmVFbnRyeUBDTG9ja2VkRG91YmxlTGlzdEBAUUFFWFFBVkNMaXN0RW50cnlAQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMaXN0RW50cnkgKiBfX3RoaXNjYWxsIENEb3VibGVMaXN0OjpSZW1vdmVIZWFkKHZvaWQpDQorP1JlbW92ZUhlYWRAQ0RvdWJsZUxpc3RAQFFBRVFBVkNMaXN0RW50cnlAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENMaXN0RW50cnkgKiBfX3RoaXNjYWxsIENMb2NrZWREb3VibGVMaXN0OjpSZW1vdmVIZWFkKHZvaWQpDQorP1JlbW92ZUhlYWRAQ0xvY2tlZERvdWJsZUxpc3RAQFFBRVFBVkNMaXN0RW50cnlAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpSZW1vdmVJdGVtKGNsYXNzIEFMTE9DX0NBQ0hFX0hBTkRMRVIgKikNCis/UmVtb3ZlSXRlbUBBTExPQ19DQUNIRV9IQU5ETEVSQEBTR1hQQVYxQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMaXN0RW50cnkgKiBfX3RoaXNjYWxsIENEb3VibGVMaXN0OjpSZW1vdmVUYWlsKHZvaWQpDQorP1JlbW92ZVRhaWxAQ0RvdWJsZUxpc3RAQFFBRVFBVkNMaXN0RW50cnlAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENMaXN0RW50cnkgKiBfX3RoaXNjYWxsIENMb2NrZWREb3VibGVMaXN0OjpSZW1vdmVUYWlsKHZvaWQpDQorP1JlbW92ZVRhaWxAQ0xvY2tlZERvdWJsZUxpc3RAQFFBRVFBVkNMaXN0RW50cnlAQFhaDQorUmVtb3ZlV29ya0l0ZW0NCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIE1MU1pBVTo6UmVzZXQodm9pZCkNCis/UmVzZXRATUxTWkFVQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIE1VTFRJU1o6OlJlc2V0KHZvaWQpDQorP1Jlc2V0QE1VTFRJU1pAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU1RSOjpSZXNldCh2b2lkKQ0KKz9SZXNldEBTVFJAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU1RSQTo6UmVzZXQodm9pZCkNCis/UmVzZXRAU1RSQUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBTVFJBVTo6UmVzZXQodm9pZCkNCis/UmVzZXRAU1RSQVVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU1RSVTo6UmVzZXQodm9pZCkNCis/UmVzZXRAU1RSVUBAUUFFWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OlJlc2V0TG9va2FzaWRlQ2xlYW51cEludGVydmFsKHZvaWQpDQorP1Jlc2V0TG9va2FzaWRlQ2xlYW51cEludGVydmFsQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFNHSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEJVRkZFUjo6UmVzaXplKHVuc2lnbmVkIGludCkNCis/UmVzaXplQEJVRkZFUkBAUUFFSElAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBCVUZGRVI6OlJlc2l6ZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz9SZXNpemVAQlVGRkVSQEBRQUVISUlAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6UmVzaXplKHVuc2lnbmVkIGxvbmcpDQorP1Jlc2l6ZUBTVFJBQEBRQUVKS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJVOjpSZXNpemUodW5zaWduZWQgbG9uZykNCis/UmVzaXplQFNUUlVAQFFBRUpLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSQVU6OlJlc2l6ZVcodW5zaWduZWQgbG9uZykNCis/UmVzaXplV0BTVFJBVUBAUUFFSEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFI6OlNhZmVDb3B5KGNoYXIgY29uc3QgKikNCis/U2FmZUNvcHlAU1RSQEBRQUVIUEJEQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSQVU6OlNhZmVDb3B5KGNoYXIgY29uc3QgKikNCis/U2FmZUNvcHlAU1RSQVVAQFFBRUhQQkRAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJBVTo6U2FmZUNvcHkodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2FmZUNvcHlAU1RSQVVAQFFBRUhQQkdAWg0KK1NjaGVkdWxlQWRqdXN0VGltZQ0KK1NjaGVkdWxlV29ya0l0ZW0NCitTY2hlZHVsZXJJbml0aWFsaXplDQorU2NoZWR1bGVyVGVybWluYXRlDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgQ0RGVENhY2hlOjpTZWNvbmRzKHZvaWQpY29uc3QgDQorP1NlY29uZHNAQ0RGVENhY2hlQEBRQkVHWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OlNldEJ1Y2tldExvY2tTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldEJ1Y2tldExvY2tTcGluQ291bnRAQ0xLUkhhc2hUYWJsZUBAUUFFWEdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6U2V0QnVja2V0TG9ja1NwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0QnVja2V0TG9ja1NwaW5Db3VudEBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUVYR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDQ3JpdFNlYzo6U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKGRvdWJsZSkNCis/U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENDcml0U2VjQEBTR1hOQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENGYWtlTG9jazo6U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKGRvdWJsZSkNCis/U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENGYWtlTG9ja0BAU0dYTkBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OlNldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcihkb3VibGUpDQorP1NldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUmVhZGVyV3JpdGVyTG9jazJAQFNHWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1JlYWRlcldyaXRlckxvY2szQEBTR1hOQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1JlYWRlcldyaXRlckxvY2tAQFNHWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1J0bFJlc291cmNlOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1J0bFJlc291cmNlQEBTR1hOQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENTaGFyZUxvY2s6OlNldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcihkb3VibGUpDQorP1NldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDU2hhcmVMb2NrQEBTR1hOQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENTbWFsbFNwaW5Mb2NrOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1NtYWxsU3BpbkxvY2tAQFNHWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1NwaW5Mb2NrOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1NwaW5Mb2NrQEBTR1hOQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENDcml0U2VjOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENDcml0U2VjQEBTR1hHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENGYWtlTG9jazo6U2V0RGVmYXVsdFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0RGVmYXVsdFNwaW5Db3VudEBDRmFrZUxvY2tAQFNHWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrMkBAU0dYR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OlNldERlZmF1bHRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldERlZmF1bHRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2szQEBTR1hHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrQEBTR1hHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENSdGxSZXNvdXJjZTo6U2V0RGVmYXVsdFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0RGVmYXVsdFNwaW5Db3VudEBDUnRsUmVzb3VyY2VAQFNHWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1NoYXJlTG9jazo6U2V0RGVmYXVsdFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0RGVmYXVsdFNwaW5Db3VudEBDU2hhcmVMb2NrQEBTR1hHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENTbWFsbFNwaW5Mb2NrOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENTbWFsbFNwaW5Mb2NrQEBTR1hHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENTcGluTG9jazo6U2V0RGVmYXVsdFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0RGVmYXVsdFNwaW5Db3VudEBDU3BpbkxvY2tAQFNHWEdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFI6OlNldExlbih1bnNpZ25lZCBsb25nKQ0KKz9TZXRMZW5AU1RSQEBRQUVIS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUkE6OlNldExlbih1bnNpZ25lZCBsb25nKQ0KKz9TZXRMZW5AU1RSQUBAUUFFSEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJBVTo6U2V0TGVuKHVuc2lnbmVkIGxvbmcpDQorP1NldExlbkBTVFJBVUBAUUFFSEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJVOjpTZXRMZW4odW5zaWduZWQgbG9uZykNCis/U2V0TGVuQFNUUlVAQFFBRUhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEFTQ0xPR19EQVRFVElNRV9DQUNIRTo6U2V0TG9jYWxUaW1lKHN0cnVjdCBfU1lTVEVNVElNRSAqKQ0KKz9TZXRMb2NhbFRpbWVAQVNDTE9HX0RBVEVUSU1FX0NBQ0hFQEBRQUVYUEFVX1NZU1RFTVRJTUVAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OlNldExvb2thc2lkZUNsZWFudXBJbnRlcnZhbCh2b2lkKQ0KKz9TZXRMb29rYXNpZGVDbGVhbnVwSW50ZXJ2YWxAQUxMT0NfQ0FDSEVfSEFORExFUkBAU0dIWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENDcml0U2VjOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldFNwaW5Db3VudEBDQ3JpdFNlY0BAUUFFX05HQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENDcml0U2VjOjpTZXRTcGluQ291bnQoc3RydWN0IF9SVExfQ1JJVElDQUxfU0VDVElPTiAqLHVuc2lnbmVkIGxvbmcpDQorP1NldFNwaW5Db3VudEBDQ3JpdFNlY0BAU0dLUEFVX1JUTF9DUklUSUNBTF9TRUNUSU9OQEBLQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENGYWtlTG9jazo6U2V0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXRTcGluQ291bnRAQ0Zha2VMb2NrQEBRQUVfTkdAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazJAQFFBRV9OR0BaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OlNldFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFX05HQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9ja0BAUUFFX05HQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSdGxSZXNvdXJjZTo6U2V0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXRTcGluQ291bnRAQ1J0bFJlc291cmNlQEBRQUVfTkdAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1NoYXJlTG9jazo6U2V0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXRTcGluQ291bnRAQ1NoYXJlTG9ja0BAUUFFX05HQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTbWFsbFNwaW5Mb2NrOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldFNwaW5Db3VudEBDU21hbGxTcGluTG9ja0BAUUFFX05HQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTcGluTG9jazo6U2V0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXRTcGluQ291bnRAQ1NwaW5Mb2NrQEBRQUVfTkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgRVhUTE9HX0RBVEVUSU1FX0NBQ0hFOjpTZXRTeXN0ZW1UaW1lKHN0cnVjdCBfU1lTVEVNVElNRSAqKQ0KKz9TZXRTeXN0ZW1UaW1lQEVYVExPR19EQVRFVElNRV9DQUNIRUBAUUFFWFBBVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6U2V0VGFibGVMb2NrU3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXRUYWJsZUxvY2tTcGluQ291bnRAQ0xLUkhhc2hUYWJsZUBAUUFFWEdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6U2V0VGFibGVMb2NrU3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXRUYWJsZUxvY2tTcGluQ291bnRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUFFWEdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRGF0ZVRpbWU6OlNldFRpbWUoc3RydWN0IF9GSUxFVElNRSBjb25zdCAmKQ0KKz9TZXRUaW1lQENEYXRlVGltZUBAUUFFSEFCVV9GSUxFVElNRUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RhdGVUaW1lOjpTZXRUaW1lKHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAmKQ0KKz9TZXRUaW1lQENEYXRlVGltZUBAUUFFSEFCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQlVGRkVSX0NIQUlOX0lURU06OlNldFVzZWQodW5zaWduZWQgbG9uZykNCis/U2V0VXNlZEBCVUZGRVJfQ0hBSU5fSVRFTUBAUUFFWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQlVGRkVSOjpTZXRWYWxpZChpbnQpDQorP1NldFZhbGlkQEJVRkZFUkBAUUFFWEhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6U2l6ZSh2b2lkKWNvbnN0IA0KKz9TaXplQENMS1JIYXNoVGFibGVAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6U2l6ZSh2b2lkKWNvbnN0IA0KKz9TaXplQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRUtYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIENTaGFyZWxvY2s6OlNsZWVwV2FpdGluZ0ZvckxvY2soaW50KQ0KKz9TbGVlcFdhaXRpbmdGb3JMb2NrQENTaGFyZWxvY2tAQEFBRUVIQFoNCitTdHJpbmdUaW1lVG9GaWxlVGltZQ0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBFVkVOVF9MT0c6OlN1Y2Nlc3Modm9pZCljb25zdCANCis/U3VjY2Vzc0BFVkVOVF9MT0dAQFFCRUhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU1RSQTo6U3luY1dpdGhCdWZmZXIodm9pZCkNCis/U3luY1dpdGhCdWZmZXJAU1RSQUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBTVFJVOjpTeW5jV2l0aEJ1ZmZlcih2b2lkKQ0KKz9TeW5jV2l0aEJ1ZmZlckBTVFJVQEBRQUVYWFoNCitTeXN0ZW1UaW1lVG9HTVQNCitTeXN0ZW1UaW1lVG9HTVRFeA0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRXR3VHJhY2VyOjpUcmFjZVBlclVybEVuYWJsZWQodm9pZCkNCis/VHJhY2VQZXJVcmxFbmFibGVkQENFdHdUcmFjZXJAQFFBRUhYWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpUcnlDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkNCis/VHJ5Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OlRyeVJlYWRMb2NrKHZvaWQpDQorP1RyeVJlYWRMb2NrQENDcml0U2VjQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDRmFrZUxvY2s6OlRyeVJlYWRMb2NrKHZvaWQpDQorP1RyeVJlYWRMb2NrQENGYWtlTG9ja0BAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpUcnlSZWFkTG9jayh2b2lkKQ0KKz9UcnlSZWFkTG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQFFBRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6VHJ5UmVhZExvY2sodm9pZCkNCis/VHJ5UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6VHJ5UmVhZExvY2sodm9pZCkNCis/VHJ5UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2tAQFFBRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSdGxSZXNvdXJjZTo6VHJ5UmVhZExvY2sodm9pZCkNCis/VHJ5UmVhZExvY2tAQ1J0bFJlc291cmNlQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU2hhcmVMb2NrOjpUcnlSZWFkTG9jayh2b2lkKQ0KKz9UcnlSZWFkTG9ja0BDU2hhcmVMb2NrQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6VHJ5UmVhZExvY2sodm9pZCkNCis/VHJ5UmVhZExvY2tAQ1NtYWxsU3BpbkxvY2tAQFFBRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTcGluTG9jazo6VHJ5UmVhZExvY2sodm9pZCkNCis/VHJ5UmVhZExvY2tAQ1NwaW5Mb2NrQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDQ3JpdFNlYzo6VHJ5V3JpdGVMb2NrKHZvaWQpDQorP1RyeVdyaXRlTG9ja0BDQ3JpdFNlY0BAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0Zha2VMb2NrOjpUcnlXcml0ZUxvY2sodm9pZCkNCis/VHJ5V3JpdGVMb2NrQENGYWtlTG9ja0BAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpUcnlXcml0ZUxvY2sodm9pZCkNCis/VHJ5V3JpdGVMb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpUcnlXcml0ZUxvY2sodm9pZCkNCis/VHJ5V3JpdGVMb2NrQENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6OlRyeVdyaXRlTG9jayh2b2lkKQ0KKz9UcnlXcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2tAQFFBRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSdGxSZXNvdXJjZTo6VHJ5V3JpdGVMb2NrKHZvaWQpDQorP1RyeVdyaXRlTG9ja0BDUnRsUmVzb3VyY2VAQFFBRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTaGFyZUxvY2s6OlRyeVdyaXRlTG9jayh2b2lkKQ0KKz9UcnlXcml0ZUxvY2tAQ1NoYXJlTG9ja0BAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1NtYWxsU3BpbkxvY2s6OlRyeVdyaXRlTG9jayh2b2lkKQ0KKz9UcnlXcml0ZUxvY2tAQ1NtYWxsU3BpbkxvY2tAQFFBRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTcGluTG9jazo6VHJ5V3JpdGVMb2NrKHZvaWQpDQorP1RyeVdyaXRlTG9ja0BDU3BpbkxvY2tAQFFBRV9OWFoNCis7IGxvbmcgX19zdGRjYWxsIFVsQ2xlYW5BbmRDb3B5VXJsKHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICogKikNCis/VWxDbGVhbkFuZENvcHlVcmxAQFlHSlBBRUtQQUtQQUdQQVBBR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDRXR3VHJhY2VyOjpVblJlZ2lzdGVyKHZvaWQpDQorP1VuUmVnaXN0ZXJAQ0V0d1RyYWNlckBAUUFFS1haDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUjo6VW5lc2NhcGUodm9pZCkNCis/VW5lc2NhcGVAU1RSQEBRQUVIWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OlVuZXNjYXBlKHZvaWQpDQorP1VuZXNjYXBlQFNUUkFAQFFBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSVTo6VW5lc2NhcGUodm9pZCkNCis/VW5lc2NhcGVAU1RSVUBAUUFFSlhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBTVFI6OlVuaGFzaCh2b2lkKQ0KKz9Vbmhhc2hAU1RSQEBRQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpVbmxvY2sodm9pZCkNCis/VW5sb2NrQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQEFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xvY2tlZERvdWJsZUxpc3Q6OlVubG9jayh2b2lkKQ0KKz9VbmxvY2tAQ0xvY2tlZERvdWJsZUxpc3RAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xvY2tlZFNpbmdsZUxpc3Q6OlVubG9jayh2b2lkKQ0KKz9VbmxvY2tAQ0xvY2tlZFNpbmdsZUxpc3RAQFFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIEhBU0hfVEFCTEVfQlVDS0VUOjpVbmxvY2sodm9pZCkNCis/VW5sb2NrQEhBU0hfVEFCTEVfQlVDS0VUQEBBQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFRTX1JFU09VUkNFOjpVbmxvY2sodm9pZCkNCis/VW5sb2NrQFRTX1JFU09VUkNFQEBRQUVYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIENTaGFyZWxvY2s6OlVwZGF0ZU1heFNwaW5zKGludCkNCis/VXBkYXRlTWF4U3BpbnNAQ1NoYXJlbG9ja0BAUUFFRUhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgQ1NoYXJlbG9jazo6VXBkYXRlTWF4VXNlcnMoaW50KQ0KKz9VcGRhdGVNYXhVc2Vyc0BDU2hhcmVsb2NrQEBRQUVFSEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpWYWxpZFNpZ25hdHVyZSh2b2lkKWNvbnN0IA0KKz9WYWxpZFNpZ25hdHVyZUBDTEtSSGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpWYWxpZFNpZ25hdHVyZSh2b2lkKWNvbnN0IA0KKz9WYWxpZFNpZ25hdHVyZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQlVGRkVSOjpWZXJpZnlTdGF0ZSh2b2lkKWNvbnN0IA0KKz9WZXJpZnlTdGF0ZUBCVUZGRVJAQEFCRVhYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIENTaGFyZWxvY2s6OldhaXRGb3JFeGNsdXNpdmVMb2NrKGludCkNCis/V2FpdEZvckV4Y2x1c2l2ZUxvY2tAQ1NoYXJlbG9ja0BAQUFFRUhAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIENTaGFyZWxvY2s6OldhaXRGb3JTaGFyZUxvY2soaW50KQ0KKz9XYWl0Rm9yU2hhcmVMb2NrQENTaGFyZWxvY2tAQEFBRUVIQFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19XQUlUX1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MSwxLDMsMSwzLDI+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDAkMDAkMDIkMDAkMDIkMDFAQFNHP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTwyLDEsMSwxLDMsMj46OldhaXRUeXBlKHZvaWQpDQorP1dhaXRUeXBlQD8kQ0xvY2tCYXNlQCQwMSQwMCQwMCQwMCQwMiQwMUBAU0c/QVc0TE9DS19XQUlUX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfV0FJVF9UWVBFICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDMsMSwxLDEsMSwxPjo6V2FpdFR5cGUodm9pZCkNCis/V2FpdFR5cGVAPyRDTG9ja0Jhc2VAJDAyJDAwJDAwJDAwJDAwJDAwQEBTRz9BVzRMT0NLX1dBSVRfVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19XQUlUX1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NCwxLDEsMiwzLDM+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDMkMDAkMDAkMDEkMDIkMDJAQFNHP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTw1LDIsMSwyLDMsMz46OldhaXRUeXBlKHZvaWQpDQorP1dhaXRUeXBlQD8kQ0xvY2tCYXNlQCQwNCQwMSQwMCQwMSQwMiQwMkBAU0c/QVc0TE9DS19XQUlUX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfV0FJVF9UWVBFICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDYsMiwxLDIsMywzPjo6V2FpdFR5cGUodm9pZCkNCis/V2FpdFR5cGVAPyRDTG9ja0Jhc2VAJDA1JDAxJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX1dBSVRfVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19XQUlUX1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NywyLDIsMSwzLDI+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDYkMDEkMDEkMDAkMDIkMDFAQFNHP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTw4LDIsMiwxLDMsMj46OldhaXRUeXBlKHZvaWQpDQorP1dhaXRUeXBlQD8kQ0xvY2tCYXNlQCQwNyQwMSQwMSQwMCQwMiQwMUBAU0c/QVc0TE9DS19XQUlUX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfV0FJVF9UWVBFICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDksMiwxLDEsMywyPjo6V2FpdFR5cGUodm9pZCkNCis/V2FpdFR5cGVAPyRDTG9ja0Jhc2VAJDA4JDAxJDAwJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1dBSVRfVFlQRUBAWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDU2hhcmVsb2NrOjpXYWtlQWxsU2xlZXBlcnModm9pZCkNCis/V2FrZUFsbFNsZWVwZXJzQENTaGFyZWxvY2tAQEFBRVhYWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0RhdGFDYWNoZTxzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZPjo6V3JpdGUoc3RydWN0IERBVEVUSU1FX0ZPUk1BVF9FTlRSWSBjb25zdCAmKQ0KKz9Xcml0ZUA/JENEYXRhQ2FjaGVAVURBVEVUSU1FX0ZPUk1BVF9FTlRSWUBAQEBRQUVfTkFCVURBVEVUSU1FX0ZPUk1BVF9FTlRSWUBAQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENEYXRhQ2FjaGU8Y2xhc3MgQ0RhdGVUaW1lPjo6V3JpdGUoY2xhc3MgQ0RhdGVUaW1lIGNvbnN0ICYpDQorP1dyaXRlQD8kQ0RhdGFDYWNoZUBWQ0RhdGVUaW1lQEBAQFFBRV9OQUJWQ0RhdGVUaW1lQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OldyaXRlTG9jayh2b2lkKQ0KKz9Xcml0ZUxvY2tAQ0NyaXRTZWNAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Zha2VMb2NrOjpXcml0ZUxvY2sodm9pZCkNCis/V3JpdGVMb2NrQENGYWtlTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpXcml0ZUxvY2sodm9pZCkNCis/V3JpdGVMb2NrQENMS1JIYXNoVGFibGVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6V3JpdGVMb2NrKHZvaWQpDQorP1dyaXRlTG9ja0BDTEtSTGluZWFySGFzaFRhYmxlQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6V3JpdGVMb2NrKHZvaWQpDQorP1dyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpXcml0ZUxvY2sodm9pZCkNCis/V3JpdGVMb2NrQENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6V3JpdGVMb2NrKHZvaWQpDQorP1dyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUnRsUmVzb3VyY2U6OldyaXRlTG9jayh2b2lkKQ0KKz9Xcml0ZUxvY2tAQ1J0bFJlc291cmNlQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTaGFyZUxvY2s6OldyaXRlTG9jayh2b2lkKQ0KKz9Xcml0ZUxvY2tAQ1NoYXJlTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6V3JpdGVMb2NrKHZvaWQpDQorP1dyaXRlTG9ja0BDU21hbGxTcGluTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3BpbkxvY2s6OldyaXRlTG9jayh2b2lkKQ0KKz9Xcml0ZUxvY2tAQ1NwaW5Mb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDcml0U2VjOjpXcml0ZVVubG9jayh2b2lkKQ0KKz9Xcml0ZVVubG9ja0BDQ3JpdFNlY0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRmFrZUxvY2s6OldyaXRlVW5sb2NrKHZvaWQpDQorP1dyaXRlVW5sb2NrQENGYWtlTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpXcml0ZVVubG9jayh2b2lkKWNvbnN0IA0KKz9Xcml0ZVVubG9ja0BDTEtSSGFzaFRhYmxlQEBRQkVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OldyaXRlVW5sb2NrKHZvaWQpY29uc3QgDQorP1dyaXRlVW5sb2NrQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpXcml0ZVVubG9jayh2b2lkKQ0KKz9Xcml0ZVVubG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpXcml0ZVVubG9jayh2b2lkKQ0KKz9Xcml0ZVVubG9ja0BDUmVhZGVyV3JpdGVyTG9jazNAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6OldyaXRlVW5sb2NrKHZvaWQpDQorP1dyaXRlVW5sb2NrQENSZWFkZXJXcml0ZXJMb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSdGxSZXNvdXJjZTo6V3JpdGVVbmxvY2sodm9pZCkNCis/V3JpdGVVbmxvY2tAQ1J0bFJlc291cmNlQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTaGFyZUxvY2s6OldyaXRlVW5sb2NrKHZvaWQpDQorP1dyaXRlVW5sb2NrQENTaGFyZUxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NtYWxsU3BpbkxvY2s6OldyaXRlVW5sb2NrKHZvaWQpDQorP1dyaXRlVW5sb2NrQENTbWFsbFNwaW5Mb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTcGluTG9jazo6V3JpdGVVbmxvY2sodm9pZCkNCis/V3JpdGVVbmxvY2tAQ1NwaW5Mb2NrQEBRQUVYWFoNCitaYXBSZWdpc3RyeUtleQ0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcjo6X0FkZFJlZihpbnQpY29uc3QgDQorP19BZGRSZWZAQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBASUJFWEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9BZGRSZWZSZWNvcmQodm9pZCBjb25zdCAqLGludCljb25zdCANCis/X0FkZFJlZlJlY29yZEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQkVYUEJYSEBaDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ05vZGVDbHVtcCAqIF9fc3RkY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQWxsb2NhdGVOb2RlQ2x1bXAodm9pZCkNCis/X0FsbG9jYXRlTm9kZUNsdW1wQENMS1JMaW5lYXJIYXNoVGFibGVAQENHUUFWQ05vZGVDbHVtcEBAWFoNCis7IHByaXZhdGU6IGNsYXNzIENTZWdtZW50ICogX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQWxsb2NhdGVTZWdtZW50KHZvaWQpY29uc3QgDQorP19BbGxvY2F0ZVNlZ21lbnRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUJFUUFWQ1NlZ21lbnRAQFhaDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ0RpckVudHJ5ICogX19zdGRjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9BbGxvY2F0ZVNlZ21lbnREaXJlY3RvcnkodW5zaWduZWQgaW50KQ0KKz9fQWxsb2NhdGVTZWdtZW50RGlyZWN0b3J5QENMS1JMaW5lYXJIYXNoVGFibGVAQENHUUFWQ0RpckVudHJ5QEBJQFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlICogX19zdGRjYWxsIENMS1JIYXNoVGFibGU6Ol9BbGxvY2F0ZVN1YlRhYmxlKGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nIGNvbnN0ICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqKSx1bnNpZ25lZCBsb25nIChfX3N0ZGNhbGwqKSh1bnNpZ25lZCBsb25nKSxib29sIChfX3N0ZGNhbGwqKSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpLHZvaWQgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKixpbnQpLGRvdWJsZSx1bnNpZ25lZCBsb25nLGNsYXNzIENMS1JIYXNoVGFibGUgKixib29sKQ0KKz9fQWxsb2NhdGVTdWJUYWJsZUBDTEtSSGFzaFRhYmxlQEBDR1FBVkNMS1JMaW5lYXJIYXNoVGFibGVAQFBCRFA2Rz9CS1BCWEBaUDZHS0tAWlA2R19OS0tAWlA2R1gxSEBaTktQQVYxQF9OQFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlICogKiBfX3N0ZGNhbGwgQ0xLUkhhc2hUYWJsZTo6X0FsbG9jYXRlU3ViVGFibGVBcnJheSh1bnNpZ25lZCBpbnQpDQorP19BbGxvY2F0ZVN1YlRhYmxlQXJyYXlAQ0xLUkhhc2hUYWJsZUBAQ0dRQVBBVkNMS1JMaW5lYXJIYXNoVGFibGVAQElAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9BcHBseShlbnVtIExLX0FDVElPTiAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKix2b2lkICopLHZvaWQgKixlbnVtIExLX0xPQ0tUWVBFLGVudW0gTEtfUFJFRElDQVRFICYpDQorP19BcHBseUBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUVLUDZHP0FXNExLX0FDVElPTkBAUEJYUEFYQFoxVzRMS19MT0NLVFlQRUBAQUFXNExLX1BSRURJQ0FURUBAQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQXBwbHlJZihlbnVtIExLX1BSRURJQ0FURSAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKix2b2lkICopLGVudW0gTEtfQUNUSU9OICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLHZvaWQgKiksdm9pZCAqLGVudW0gTEtfTE9DS1RZUEUsZW51bSBMS19QUkVESUNBVEUgJikNCis/X0FwcGx5SWZAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFS1A2Rz9BVzRMS19QUkVESUNBVEVAQFBCWFBBWEBaUDZHP0FXNExLX0FDVElPTkBAMDFAWjFXNExLX0xPQ0tUWVBFQEBBQVc0MkBAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0J1Y2tldCAqIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0J1Y2tldCh1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9fQnVja2V0QENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRVBBVkNCdWNrZXRAQEtAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9CdWNrZXRBZGRyZXNzKHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP19CdWNrZXRBZGRyZXNzQENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRUtLQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpfQ2FsY0tleUhhc2godW5zaWduZWQgbG9uZyljb25zdCANCis/X0NhbGNLZXlIYXNoQENMS1JIYXNoVGFibGVAQEFCRUtLQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQ2FsY0tleUhhc2godW5zaWduZWQgbG9uZyljb25zdCANCis/X0NhbGNLZXlIYXNoQENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRUtLQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQ2xlYXIoYm9vbCkNCis/X0NsZWFyQENMS1JMaW5lYXJIYXNoVGFibGVAQEFBRVhfTkBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0Nsb3NlSXRlcmF0b3IoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q0l0ZXJhdG9yICopDQorP19DbG9zZUl0ZXJhdG9yQENMS1JMaW5lYXJIYXNoVGFibGVAQEFBRT9BVzRMS19SRVRDT0RFQEBQQVZDSXRlcmF0b3JAMUBAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6X0NtcEV4Y2gobG9uZyxsb25nKQ0KKz9fQ21wRXhjaEBDUmVhZGVyV3JpdGVyTG9jazJAQEFBRV9OSkpAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6X0NtcEV4Y2gobG9uZyxsb25nKQ0KKz9fQ21wRXhjaEBDUmVhZGVyV3JpdGVyTG9jazNAQEFBRV9OSkpAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpfQ21wRXhjaChsb25nLGxvbmcpDQorP19DbXBFeGNoQENSZWFkZXJXcml0ZXJMb2NrQEBBQUVfTkpKQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQ29udHJhY3Qodm9pZCkNCis/X0NvbnRyYWN0QENMS1JMaW5lYXJIYXNoVGFibGVAQEFBRT9BVzRMS19SRVRDT0RFQEBYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGxvbmcgX19zdGRjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6X0N1cnJlbnRUaHJlYWRJZCh2b2lkKQ0KKz9fQ3VycmVudFRocmVhZElkQENSZWFkZXJXcml0ZXJMb2NrM0BAQ0dKWFoNCis7IHByaXZhdGU6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDU21hbGxTcGluTG9jazo6X0N1cnJlbnRUaHJlYWRJZCh2b2lkKQ0KKz9fQ3VycmVudFRocmVhZElkQENTbWFsbFNwaW5Mb2NrQEBDR0pYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGxvbmcgX19zdGRjYWxsIENTcGluTG9jazo6X0N1cnJlbnRUaHJlYWRJZCh2b2lkKQ0KKz9fQ3VycmVudFRocmVhZElkQENTcGluTG9ja0BAQ0dKWFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRGVsZXRlSWYoZW51bSBMS19QUkVESUNBVEUgIChfX3N0ZGNhbGwqKSh2b2lkIGNvbnN0ICosdm9pZCAqKSx2b2lkICosZW51bSBMS19QUkVESUNBVEUgJikNCis/X0RlbGV0ZUlmQENMS1JMaW5lYXJIYXNoVGFibGVAQEFBRUtQNkc/QVc0TEtfUFJFRElDQVRFQEBQQlhQQVhAWjFBQVc0MkBAWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9EZWxldGVLZXkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9fRGVsZXRlS2V5QENMS1JMaW5lYXJIYXNoVGFibGVAQEFBRT9BVzRMS19SRVRDT0RFQEBLS0BaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0RlbGV0ZU5vZGUoY2xhc3MgQ0J1Y2tldCAqLGNsYXNzIENOb2RlQ2x1bXAgKiAmLGNsYXNzIENOb2RlQ2x1bXAgKiAmLGludCAmKQ0KKz9fRGVsZXRlTm9kZUBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUVfTlBBVkNCdWNrZXRAQEFBUEFWQ05vZGVDbHVtcEBAMUFBSEBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0RlbGV0ZVJlY29yZCh2b2lkIGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/X0RlbGV0ZVJlY29yZEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUU/QVc0TEtfUkVUQ09ERUBAUEJYS0BaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0VxdWFsS2V5cyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP19FcXVhbEtleXNAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUJFX05LS0BaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0VyYXNlKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgJix1bnNpZ25lZCBsb25nKQ0KKz9fRXJhc2VAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFX05BQVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBLQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRXhwYW5kKHZvaWQpDQorP19FeHBhbmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFP0FXNExLX1JFVENPREVAQFhaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6Ol9FeHRyYWN0S2V5KHZvaWQgY29uc3QgKiljb25zdCANCis/X0V4dHJhY3RLZXlAQ0xLUkhhc2hUYWJsZUBAQUJFP0JLUEJYQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgY29uc3QgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0V4dHJhY3RLZXkodm9pZCBjb25zdCAqKWNvbnN0IA0KKz9fRXh0cmFjdEtleUBDTEtSTGluZWFySGFzaFRhYmxlQEBBQkU/QktQQlhAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0J1Y2tldCAqIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0ZpbmRCdWNrZXQodW5zaWduZWQgbG9uZyxib29sKWNvbnN0IA0KKz9fRmluZEJ1Y2tldEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQkVQQVZDQnVja2V0QEBLX05AWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9GaW5kS2V5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkIGNvbnN0ICogKixjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yICopY29uc3QgDQorP19GaW5kS2V5QENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRT9BVzRMS19SRVRDT0RFQEBLS1BBUEJYUEFWQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRmluZFJlY29yZCh2b2lkIGNvbnN0ICosdW5zaWduZWQgbG9uZyljb25zdCANCis/X0ZpbmRSZWNvcmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUJFP0FXNExLX1JFVENPREVAQFBCWEtAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGJvb2wgX19zdGRjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9GcmVlTm9kZUNsdW1wKGNsYXNzIENOb2RlQ2x1bXAgKikNCis/X0ZyZWVOb2RlQ2x1bXBAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQ0dfTlBBVkNOb2RlQ2x1bXBAQEBaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0ZyZWVTZWdtZW50KGNsYXNzIENTZWdtZW50ICopY29uc3QgDQorP19GcmVlU2VnbWVudEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQkVfTlBBVkNTZWdtZW50QEBAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9GcmVlU2VnbWVudERpcmVjdG9yeSh2b2lkKQ0KKz9fRnJlZVNlZ21lbnREaXJlY3RvcnlAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFX05YWg0KKzsgcHJpdmF0ZTogc3RhdGljIGJvb2wgX19zdGRjYWxsIENMS1JIYXNoVGFibGU6Ol9GcmVlU3ViVGFibGUoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSAqKQ0KKz9fRnJlZVN1YlRhYmxlQENMS1JIYXNoVGFibGVAQENHX05QQVZDTEtSTGluZWFySGFzaFRhYmxlQEBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGJvb2wgX19zdGRjYWxsIENMS1JIYXNoVGFibGU6Ol9GcmVlU3ViVGFibGVBcnJheShjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlICogKikNCis/X0ZyZWVTdWJUYWJsZUFycmF5QENMS1JIYXNoVGFibGVAQENHX05QQVBBVkNMS1JMaW5lYXJIYXNoVGFibGVAQEBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0gwKHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP19IMEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQkVLS0BaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0gwKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/X0gwQENMS1JMaW5lYXJIYXNoVGFibGVAQENHS0tLQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSDEodW5zaWduZWQgbG9uZyljb25zdCANCis/X0gxQENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRUtLQFoNCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSDEodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9fSDFAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQ0dLS0tAWg0KKzsgcHJvdGVjdGVkOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6X0luY3JlbWVudChib29sKQ0KKz9fSW5jcmVtZW50QENMS1JIYXNoVGFibGVfSXRlcmF0b3JAQElBRV9OX05AWg0KKzsgcHJvdGVjdGVkOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcjo6X0luY3JlbWVudChib29sKQ0KKz9fSW5jcmVtZW50QENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQElBRV9OX05AWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9Jbml0aWFsaXplKHVuc2lnbmVkIGxvbmcgY29uc3QgIChfX3N0ZGNhbGwqKSh2b2lkIGNvbnN0ICopLHVuc2lnbmVkIGxvbmcgKF9fc3RkY2FsbCopKHVuc2lnbmVkIGxvbmcpLGJvb2wgKF9fc3RkY2FsbCopKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyksdm9pZCAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLGludCksY2hhciBjb25zdCAqLGRvdWJsZSx1bnNpZ25lZCBsb25nKQ0KKz9fSW5pdGlhbGl6ZUBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUU/QVc0TEtfUkVUQ09ERUBAUDZHP0JLUEJYQFpQNkdLS0BaUDZHX05LS0BaUDZHWDBIQFpQQkROS0BaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0luaXRpYWxpemVJdGVyYXRvcihjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDSXRlcmF0b3IgKikNCis/X0luaXRpYWxpemVJdGVyYXRvckBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUU/QVc0TEtfUkVUQ09ERUBAUEFWQ0l0ZXJhdG9yQDFAQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSW5zZXJ0UmVjb3JkKHZvaWQgY29uc3QgKix1bnNpZ25lZCBsb25nLGJvb2wsY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciAqKQ0KKz9fSW5zZXJ0UmVjb3JkQENMS1JMaW5lYXJIYXNoVGFibGVAQEFBRT9BVzRMS19SRVRDT0RFQEBQQlhLX05QQVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6Ol9JbnNlcnRUaGlzSW50b0dsb2JhbExpc3Qodm9pZCkNCis/X0luc2VydFRoaXNJbnRvR2xvYmFsTGlzdEBDTEtSSGFzaFRhYmxlQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSW5zZXJ0VGhpc0ludG9HbG9iYWxMaXN0KHZvaWQpDQorP19JbnNlcnRUaGlzSW50b0dsb2JhbExpc3RAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFWFhaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ1NwaW5Mb2NrOjpfSXNMb2NrZWQodm9pZCljb25zdCANCis/X0lzTG9ja2VkQENTcGluTG9ja0BAQUJFX05YWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0lzTm9kZUNvbXBhY3QoY2xhc3MgQ0J1Y2tldCAqIGNvbnN0KWNvbnN0IA0KKz9fSXNOb2RlQ29tcGFjdEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQkVIUUFWQ0J1Y2tldEBAQFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpfSXNWYWxpZEl0ZXJhdG9yKGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJiljb25zdCANCis/X0lzVmFsaWRJdGVyYXRvckBDTEtSSGFzaFRhYmxlQEBBQkVfTkFCVkNMS1JIYXNoVGFibGVfSXRlcmF0b3JAQEBaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0lzVmFsaWRJdGVyYXRvcihjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yIGNvbnN0ICYpY29uc3QgDQorP19Jc1ZhbGlkSXRlcmF0b3JAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUJFX05BQlZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENTcGluTG9jazo6X0xvY2sodm9pZCkNCis/X0xvY2tAQ1NwaW5Mb2NrQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6Ol9Mb2NrU3Bpbihib29sKQ0KKz9fTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2syQEBBQUVYX05AWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6X0xvY2tTcGluKGVudW0gQ1JlYWRlcldyaXRlckxvY2szOjpTUElOX1RZUEUpDQorP19Mb2NrU3BpbkBDUmVhZGVyV3JpdGVyTG9jazNAQEFBRVhXNFNQSU5fVFlQRUAxQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6Ol9Mb2NrU3Bpbihib29sKQ0KKz9fTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2tAQEFBRVhfTkBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1NtYWxsU3BpbkxvY2s6Ol9Mb2NrU3Bpbih2b2lkKQ0KKz9fTG9ja1NwaW5AQ1NtYWxsU3BpbkxvY2tAQEFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENTcGluTG9jazo6X0xvY2tTcGluKHZvaWQpDQorP19Mb2NrU3BpbkBDU3BpbkxvY2tAQEFBRVhYWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9NZXJnZVJlY29yZFNldHMoY2xhc3MgQ0J1Y2tldCAqLGNsYXNzIENOb2RlQ2x1bXAgKixjbGFzcyBDTm9kZUNsdW1wICopDQorP19NZXJnZVJlY29yZFNldHNAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFP0FXNExLX1JFVENPREVAQFBBVkNCdWNrZXRAQFBBVkNOb2RlQ2x1bXBAQDFAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGVudW0gTEtfUFJFRElDQVRFICBfX3N0ZGNhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X1ByZWRUcnVlKHZvaWQgY29uc3QgKix2b2lkICopDQorP19QcmVkVHJ1ZUBDTEtSTGluZWFySGFzaFRhYmxlQEBDRz9BVzRMS19QUkVESUNBVEVAQFBCWFBBWEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpfUmVhZExvY2tTcGluKHZvaWQpDQorP19SZWFkTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2syQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9SZWFkTG9ja1NwaW4oZW51bSBDUmVhZGVyV3JpdGVyTG9jazM6OlNQSU5fVFlQRSkNCis/X1JlYWRMb2NrU3BpbkBDUmVhZGVyV3JpdGVyTG9jazNAQEFBRVhXNFNQSU5fVFlQRUAxQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6Ol9SZWFkTG9ja1NwaW4odm9pZCkNCis/X1JlYWRMb2NrU3BpbkBDUmVhZGVyV3JpdGVyTG9ja0BAQUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDRGF0YUNhY2hlPHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlk+OjpfUmVhZE1lbW9yeUJhcnJpZXIodm9pZCkNCis/X1JlYWRNZW1vcnlCYXJyaWVyQD8kQ0RhdGFDYWNoZUBVREFURVRJTUVfRk9STUFUX0VOVFJZQEBAQEtHWFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDRGF0YUNhY2hlPGNsYXNzIENEYXRlVGltZT46Ol9SZWFkTWVtb3J5QmFycmllcih2b2lkKQ0KKz9fUmVhZE1lbW9yeUJhcnJpZXJAPyRDRGF0YUNhY2hlQFZDRGF0ZVRpbWVAQEBAS0dYWFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfUmVhZE9yV3JpdGVMb2NrKHZvaWQpY29uc3QgDQorP19SZWFkT3JXcml0ZUxvY2tAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUJFX05YWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9SZWFkT3JXcml0ZVVubG9jayhib29sKWNvbnN0IA0KKz9fUmVhZE9yV3JpdGVVbmxvY2tAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUJFWF9OQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENEYXRhQ2FjaGU8c3RydWN0IERBVEVUSU1FX0ZPUk1BVF9FTlRSWT46Ol9SZWFkU2VxdWVuY2Uodm9pZCljb25zdCANCis/X1JlYWRTZXF1ZW5jZUA/JENEYXRhQ2FjaGVAVURBVEVUSU1FX0ZPUk1BVF9FTlRSWUBAQEBJQkVKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENEYXRhQ2FjaGU8Y2xhc3MgQ0RhdGVUaW1lPjo6X1JlYWRTZXF1ZW5jZSh2b2lkKWNvbnN0IA0KKz9fUmVhZFNlcXVlbmNlQD8kQ0RhdGFDYWNoZUBWQ0RhdGVUaW1lQEBAQElCRUpYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6Ol9SZW1vdmVUaGlzRnJvbUdsb2JhbExpc3Qodm9pZCkNCis/X1JlbW92ZVRoaXNGcm9tR2xvYmFsTGlzdEBDTEtSSGFzaFRhYmxlQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfUmVtb3ZlVGhpc0Zyb21HbG9iYWxMaXN0KHZvaWQpDQorP19SZW1vdmVUaGlzRnJvbUdsb2JhbExpc3RAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFWFhaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X1NlZ0luZGV4KHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP19TZWdJbmRleEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQkVLS0BaDQorOyBwcml2YXRlOiBjbGFzcyBDU2VnbWVudCAqICYgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfU2VnbWVudCh1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9fU2VnbWVudEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQkVBQVBBVkNTZWdtZW50QEBLQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfU2V0U2VnVmFycyhlbnVtIExLX1RBQkxFU0laRSx1bnNpZ25lZCBsb25nKQ0KKz9fU2V0U2VnVmFyc0BDTEtSTGluZWFySGFzaFRhYmxlQEBBQUU/QVc0TEtfUkVUQ09ERUBAVzRMS19UQUJMRVNJWkVAQEtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ0RhdGFDYWNoZTxzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZPjo6X1NldFNlcXVlbmNlKGxvbmcpDQorP19TZXRTZXF1ZW5jZUA/JENEYXRhQ2FjaGVAVURBVEVUSU1FX0ZPUk1BVF9FTlRSWUBAQEBJQUVKSkBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDRGF0YUNhY2hlPGNsYXNzIENEYXRlVGltZT46Ol9TZXRTZXF1ZW5jZShsb25nKQ0KKz9fU2V0U2VxdWVuY2VAPyRDRGF0YUNhY2hlQFZDRGF0ZVRpbWVAQEBASUFFSkpAWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9TcGxpdFJlY29yZFNldChjbGFzcyBDTm9kZUNsdW1wICosY2xhc3MgQ05vZGVDbHVtcCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIENOb2RlQ2x1bXAgKikNCis/X1NwbGl0UmVjb3JkU2V0QENMS1JMaW5lYXJIYXNoVGFibGVAQEFBRT9BVzRMS19SRVRDT0RFQEBQQVZDTm9kZUNsdW1wQEAwS0tLMEBaDQorOyBwcml2YXRlOiBjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlICogX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpfU3ViVGFibGUodW5zaWduZWQgbG9uZyljb25zdCANCis/X1N1YlRhYmxlQENMS1JIYXNoVGFibGVAQEFCRVBBVkNMS1JMaW5lYXJIYXNoVGFibGVAQEtAWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6X1N1YlRhYmxlSW5kZXgoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSAqKWNvbnN0IA0KKz9fU3ViVGFibGVJbmRleEBDTEtSSGFzaFRhYmxlQEBBQkVIUEFWQ0xLUkxpbmVhckhhc2hUYWJsZUBAQFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6X1RyeUxvY2sodm9pZCkNCis/X1RyeUxvY2tAQ1NtYWxsU3BpbkxvY2tAQEFBRV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDU3BpbkxvY2s6Ol9UcnlMb2NrKHZvaWQpDQorP19UcnlMb2NrQENTcGluTG9ja0BAQUFFX05YWg0KKzsgcHJpdmF0ZTogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6X1RyeVJlYWRMb2NrKHZvaWQpDQorP19UcnlSZWFkTG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQEFBRV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9UcnlSZWFkTG9jayh2b2lkKQ0KKz9fVHJ5UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBBQUVfTlhaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6Ol9UcnlSZWFkTG9jayh2b2lkKQ0KKz9fVHJ5UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2tAQEFBRV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9UcnlSZWFkTG9ja1JlY3Vyc2l2ZSh2b2lkKQ0KKz9fVHJ5UmVhZExvY2tSZWN1cnNpdmVAQ1JlYWRlcldyaXRlckxvY2szQEBBQUVfTlhaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpfVHJ5V3JpdGVMb2NrMih2b2lkKQ0KKz9fVHJ5V3JpdGVMb2NrMkBDUmVhZGVyV3JpdGVyTG9jazNAQEFBRV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6Ol9UcnlXcml0ZUxvY2sobG9uZykNCis/X1RyeVdyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQEFBRV9OSkBaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpfVHJ5V3JpdGVMb2NrKGxvbmcpDQorP19UcnlXcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBBQUVfTkpAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpfVHJ5V3JpdGVMb2NrKHZvaWQpDQorP19UcnlXcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2tAQEFBRV9OWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDU3BpbkxvY2s6Ol9VbmxvY2sodm9pZCkNCis/X1VubG9ja0BDU3BpbkxvY2tAQEFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6X1dyaXRlTG9ja1NwaW4odm9pZCkNCis/X1dyaXRlTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2syQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9Xcml0ZUxvY2tTcGluKHZvaWQpDQorP19Xcml0ZUxvY2tTcGluQENSZWFkZXJXcml0ZXJMb2NrM0BAQUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6Ol9Xcml0ZUxvY2tTcGluKHZvaWQpDQorP19Xcml0ZUxvY2tTcGluQENSZWFkZXJXcml0ZXJMb2NrQEBBQUVYWFoNCis7IGxvbmcgY29uc3QgKiBjb25zdCAgYHB1YmxpYzogc3RhdGljIGxvbmcgY29uc3QgKiBfX3N0ZGNhbGwgQ0xLUkhhc2hUYWJsZVN0YXRzOjpCdWNrZXRTaXplcyh2b2lkKSc6OmAyJzo6c19hQnVja2V0U2l6ZXMNCis/c19hQnVja2V0U2l6ZXNAPzE/P0J1Y2tldFNpemVzQENMS1JIYXNoVGFibGVTdGF0c0BAU0dQQkpYWkA0UUJKQg0KKzsgcHJpdmF0ZTogc3RhdGljIHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OnNtX2NzSXRlbXMNCis/c21fY3NJdGVtc0BBTExPQ19DQUNIRV9IQU5ETEVSQEAwVV9SVExfQ1JJVElDQUxfU0VDVElPTkBAQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBkb3VibGUgIENDcml0U2VjOjpzbV9kYmxEZmx0U3BpbkFkakZjdHINCis/c21fZGJsRGZsdFNwaW5BZGpGY3RyQENDcml0U2VjQEAxTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDRmFrZUxvY2s6OnNtX2RibERmbHRTcGluQWRqRmN0cg0KKz9zbV9kYmxEZmx0U3BpbkFkakZjdHJAQ0Zha2VMb2NrQEAxTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDUmVhZGVyV3JpdGVyTG9jazI6OnNtX2RibERmbHRTcGluQWRqRmN0cg0KKz9zbV9kYmxEZmx0U3BpbkFkakZjdHJAQ1JlYWRlcldyaXRlckxvY2syQEAxTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDUmVhZGVyV3JpdGVyTG9jazM6OnNtX2RibERmbHRTcGluQWRqRmN0cg0KKz9zbV9kYmxEZmx0U3BpbkFkakZjdHJAQ1JlYWRlcldyaXRlckxvY2szQEAxTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDUmVhZGVyV3JpdGVyTG9jazo6c21fZGJsRGZsdFNwaW5BZGpGY3RyDQorP3NtX2RibERmbHRTcGluQWRqRmN0ckBDUmVhZGVyV3JpdGVyTG9ja0BAMU5BIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGRvdWJsZSAgQ1J0bFJlc291cmNlOjpzbV9kYmxEZmx0U3BpbkFkakZjdHINCis/c21fZGJsRGZsdFNwaW5BZGpGY3RyQENSdGxSZXNvdXJjZUBAMU5BIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGRvdWJsZSAgQ1NoYXJlTG9jazo6c21fZGJsRGZsdFNwaW5BZGpGY3RyDQorP3NtX2RibERmbHRTcGluQWRqRmN0ckBDU2hhcmVMb2NrQEAxTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDU21hbGxTcGluTG9jazo6c21fZGJsRGZsdFNwaW5BZGpGY3RyDQorP3NtX2RibERmbHRTcGluQWRqRmN0ckBDU21hbGxTcGluTG9ja0BAMU5BIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGRvdWJsZSAgQ1NwaW5Mb2NrOjpzbV9kYmxEZmx0U3BpbkFkakZjdHINCis/c21fZGJsRGZsdFNwaW5BZGpGY3RyQENTcGluTG9ja0BAMU5BIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OnNtX2ZJbml0Q3NJdGVtcw0KKz9zbV9mSW5pdENzSXRlbXNAQUxMT0NfQ0FDSEVfSEFORExFUkBAMEhBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkICogIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OnNtX2hUaW1lcg0KKz9zbV9oVGltZXJAQUxMT0NfQ0FDSEVfSEFORExFUkBAMFBBWEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIHN0cnVjdCBfTElTVF9FTlRSWSAgQUxMT0NfQ0FDSEVfSEFORExFUjo6c21fbEl0ZW1zSGVhZA0KKz9zbV9sSXRlbXNIZWFkQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQDBVX0xJU1RfRU5UUllAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENMb2NrZWREb3VibGVMaXN0ICBDTEtSSGFzaFRhYmxlOjpzbV9sbEdsb2JhbExpc3QNCis/c21fbGxHbG9iYWxMaXN0QENMS1JIYXNoVGFibGVAQDBWQ0xvY2tlZERvdWJsZUxpc3RAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENMb2NrZWREb3VibGVMaXN0ICBDTEtSTGluZWFySGFzaFRhYmxlOjpzbV9sbEdsb2JhbExpc3QNCis/c21fbGxHbG9iYWxMaXN0QENMS1JMaW5lYXJIYXNoVGFibGVAQDBWQ0xvY2tlZERvdWJsZUxpc3RAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGxvbmcgIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OnNtX25GaWxsUGF0dGVybg0KKz9zbV9uRmlsbFBhdHRlcm5AQUxMT0NfQ0FDSEVfSEFORExFUkBAMEpBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIEFMTE9DX0NBQ0hFX0hBTkRMRVIgKiAgQ0xLUkxpbmVhckhhc2hUYWJsZTo6c21fcGFsbG9jDQorP3NtX3BhbGxvY0BDTEtSTGluZWFySGFzaFRhYmxlQEAxUEFWQUxMT0NfQ0FDSEVfSEFORExFUkBAQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgQ0NyaXRTZWM6OnNtX3dEZWZhdWx0U3BpbkNvdW50DQorP3NtX3dEZWZhdWx0U3BpbkNvdW50QENDcml0U2VjQEAxR0EgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgIENGYWtlTG9jazo6c21fd0RlZmF1bHRTcGluQ291bnQNCis/c21fd0RlZmF1bHRTcGluQ291bnRAQ0Zha2VMb2NrQEAxR0EgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgIENSZWFkZXJXcml0ZXJMb2NrMjo6c21fd0RlZmF1bHRTcGluQ291bnQNCis/c21fd0RlZmF1bHRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2syQEAxR0EgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgIENSZWFkZXJXcml0ZXJMb2NrMzo6c21fd0RlZmF1bHRTcGluQ291bnQNCis/c21fd0RlZmF1bHRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2szQEAxR0EgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgIENSZWFkZXJXcml0ZXJMb2NrOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9ja0BAMUdBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0ICBDUnRsUmVzb3VyY2U6OnNtX3dEZWZhdWx0U3BpbkNvdW50DQorP3NtX3dEZWZhdWx0U3BpbkNvdW50QENSdGxSZXNvdXJjZUBAMUdBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0ICBDU2hhcmVMb2NrOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDU2hhcmVMb2NrQEAxR0EgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgIENTbWFsbFNwaW5Mb2NrOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDU21hbGxTcGluTG9ja0BAMUdBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0ICBDU3BpbkxvY2s6OnNtX3dEZWZhdWx0U3BpbkNvdW50DQorP3NtX3dEZWZhdWx0U3BpbkNvdW50QENTcGluTG9ja0BAMUdBIERBVEENCitDcmVhdGVSZWZUcmFjZUxvZw0KK0NyZWF0ZVRyYWNlTG9nDQorRGVzdHJveVJlZlRyYWNlTG9nDQorRGVzdHJveVRyYWNlTG9nDQorRGxsTWFpbg0KK19HZXRBbGxvY0NvdW50ZXJzQDANCitHZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmRzDQorR2V0Q3VycmVudFRpbWVJblNlY29uZHMNCitHZXRRdWVyeVR5cGUNCitJSVNDYXB0dXJlU3RhY2tCYWNrVHJhY2UNCitfSUlTR2V0Q3VycmVudFRpbWVAOA0KK0lJU0dldFBsYXRmb3JtVHlwZQ0KK0lJU0luaXRpYWxpemVDcml0aWNhbFNlY3Rpb24NCitJSVNTZXRDcml0aWNhbFNlY3Rpb25TcGluQ291bnQNCitJaXNDYWxsb2MNCitJaXNGcmVlDQorSWlzSGVhcA0KK0lpc01hbGxvYw0KK0lpc1JlQWxsb2MNCitJbmV0QWNxdWlyZVJlc291cmNlRXhjbHVzaXZlDQorSW5ldEFjcXVpcmVSZXNvdXJjZVNoYXJlZA0KK0luZXRDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQNCitJbmV0Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlDQorSW5ldERlbGV0ZVJlc291cmNlDQorSW5ldEluaXRpYWxpemVSZXNvdXJjZQ0KK0luZXRSZWxlYXNlUmVzb3VyY2UNCitJbml0aWFsaXplSUlTUlRMDQorSW5pdGlhbGl6ZVNlY29uZHNUaW1lcg0KK0lzTnVtYmVySW5Vbmljb2RlTGlzdA0KK0xLUkhhc2hUYWJsZUluaXQNCitMS1JIYXNoVGFibGVVbmluaXQNCitNSURMX3VzZXJfYWxsb2NhdGUNCitNSURMX3VzZXJfZnJlZQ0KK01vbkJ1aWxkSW5zdGFuY2VEZWZpbml0aW9uDQorUHVDbG9zZURiZ1ByaW50RmlsZQ0KK1B1Q3JlYXRlRGVidWdQcmludHNPYmplY3QNCitQdURiZ0Fzc2VydEZhaWxlZA0KK1B1RGJnQ2FwdHVyZUNvbnRleHQNCitQdURiZ0NyZWF0ZUV2ZW50DQorUHVEYmdDcmVhdGVNdXRleA0KK1B1RGJnQ3JlYXRlU2VtYXBob3JlDQorUHVEYmdEdW1wDQorUHVEYmdQcmludA0KK1B1RGJnUHJpbnRXDQorUHVEZWxldGVEZWJ1Z1ByaW50c09iamVjdA0KK1B1TG9hZERlYnVnRmxhZ3NGcm9tUmVnDQorUHVMb2FkRGVidWdGbGFnc0Zyb21SZWdTdHINCitSZXNldFRyYWNlTG9nDQorUnBjQmluZEhhbmRsZUZvclNlcnZlcg0KK1JwY0JpbmRIYW5kbGVGcmVlDQorUnBjQmluZEhhbmRsZU92ZXJMcGMNCitScGNCaW5kSGFuZGxlT3Zlck5hbWVkUGlwZQ0KK1JwY0JpbmRIYW5kbGVPdmVyVGNwSXANCitScGN1RmluZFByb3RvY29sVG9Vc2UNCitUZXJtaW5hdGVJSVNSVEwNCitUZXJtaW5hdGVTZWNvbmRzVGltZXINCitXcml0ZVJlZlRyYWNlTG9nDQorV3JpdGVSZWZUcmFjZUxvZ0V4DQorV3JpdGVUcmFjZUxvZw0KK19zdHJpc3RyQDgNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aWlzdWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lpc3VpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yYzZjNTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lpc3VpLmRlZgpAQCAtMCwwICsxLDE5MDEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaWlzdWkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlpc3VpLmRsbA0KK0VYUE9SVFMNCitJbml0Q29tbW9uRGxsDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0FjY2Vzc0VudHJ5OjpDQWNjZXNzRW50cnkoY2xhc3MgQ0FjY2Vzc0VudHJ5ICYpDQorPz8wQ0FjY2Vzc0VudHJ5QEBRQUVAQUFWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENBY2Nlc3NFbnRyeTo6Q0FjY2Vzc0VudHJ5KHVuc2lnbmVkIGxvbmcsdm9pZCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz8/MENBY2Nlc3NFbnRyeUBAUUFFQEtQQVhQQkdIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQWNjZXNzRW50cnk6OkNBY2Nlc3NFbnRyeSh2b2lkICosaW50KQ0KKz8/MENBY2Nlc3NFbnRyeUBAUUFFQFBBWEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENBY2Nlc3NFbnRyeTo6Q0FjY2Vzc0VudHJ5KHZvaWQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wQ0FjY2Vzc0VudHJ5QEBRQUVAUEFYUEJHMUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0Jsb2I6OkNCbG9iKGNsYXNzIENCbG9iIGNvbnN0ICYpDQorPz8wQ0Jsb2JAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0Jsb2I6OkNCbG9iKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqLGludCkNCis/PzBDQmxvYkBAUUFFQEtQQUVIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQmxvYjo6Q0Jsb2Iodm9pZCkNCis/PzBDQmxvYkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NvbUF1dGhJbmZvOjpDQ29tQXV0aEluZm8oY2xhc3MgQ0NvbUF1dGhJbmZvICYpDQorPz8wQ0NvbUF1dGhJbmZvQEBRQUVAQUFWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDb21BdXRoSW5mbzo6Q0NvbUF1dGhJbmZvKGNsYXNzIENDb21BdXRoSW5mbyAqKQ0KKz8/MENDb21BdXRoSW5mb0BAUUFFQFBBVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ29tQXV0aEluZm86OkNDb21BdXRoSW5mbyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBDQ29tQXV0aEluZm9AQFFBRUBQQkcwMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NvbmZpcm1EbGc6OkNDb25maXJtRGxnKGNsYXNzIENXbmQgKikNCis/PzBDQ29uZmlybURsZ0BAUUFFQFBBVkNXbmRAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0RpckJyb3dzZURsZzo6Q0RpckJyb3dzZURsZyhjbGFzcyBDRGlyQnJvd3NlRGxnIGNvbnN0ICYpDQorPz8wQ0RpckJyb3dzZURsZ0BAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRGlyQnJvd3NlRGxnOjpDRGlyQnJvd3NlRGxnKGNsYXNzIENXbmQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MENEaXJCcm93c2VEbGdAQFFBRUBQQVZDV25kQEBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEb3duQnV0dG9uOjpDRG93bkJ1dHRvbih2b2lkKQ0KKz8/MENEb3duQnV0dG9uQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRW1waGFzaXplZERpYWxvZzo6Q0VtcGhhc2l6ZWREaWFsb2codW5zaWduZWQgaW50LGNsYXNzIENXbmQgKikNCis/PzBDRW1waGFzaXplZERpYWxvZ0BAUUFFQElQQVZDV25kQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFbXBoYXNpemVkRGlhbG9nOjpDRW1waGFzaXplZERpYWxvZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENXbmQgKikNCis/PzBDRW1waGFzaXplZERpYWxvZ0BAUUFFQFBCR1BBVkNXbmRAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0VtcGhhc2l6ZWREaWFsb2c6OkNFbXBoYXNpemVkRGlhbG9nKHZvaWQpDQorPz8wQ0VtcGhhc2l6ZWREaWFsb2dAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFcnJvcjo6Q0Vycm9yKGxvbmcpDQorPz8wQ0Vycm9yQEBRQUVASkBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0Vycm9yOjpDRXJyb3IodW5zaWduZWQgbG9uZykNCis/PzBDRXJyb3JAQFFBRUBLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRXJyb3I6OkNFcnJvcih2b2lkKQ0KKz8/MENFcnJvckBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0dldENvbXB1dGVyOjpDR2V0Q29tcHV0ZXIoY2xhc3MgQ0dldENvbXB1dGVyIGNvbnN0ICYpDQorPz8wQ0dldENvbXB1dGVyQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENHZXRDb21wdXRlcjo6Q0dldENvbXB1dGVyKHZvaWQpDQorPz8wQ0dldENvbXB1dGVyQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDR2V0VXNlcnM6OkNHZXRVc2Vycyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/PzBDR2V0VXNlcnNAQFFBRUBQQkdIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSGVhZGVyTGlzdEJveDo6Q0hlYWRlckxpc3RCb3godW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MENIZWFkZXJMaXN0Qm94QEBRQUVAS1BCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0lJU0FwcFBvb2w6OkNJSVNBcHBQb29sKGNsYXNzIENJSVNBcHBQb29sICYpDQorPz8wQ0lJU0FwcFBvb2xAQFFBRUBBQVYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0lJU0FwcFBvb2w6OkNJSVNBcHBQb29sKGNsYXNzIENDb21BdXRoSW5mbyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wQ0lJU0FwcFBvb2xAQFFBRUBQQVZDQ29tQXV0aEluZm9AQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0lJU0FwcGxpY2F0aW9uOjpDSUlTQXBwbGljYXRpb24oY2xhc3MgQ0lJU0FwcGxpY2F0aW9uICYpDQorPz8wQ0lJU0FwcGxpY2F0aW9uQEBRQUVAQUFWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJSVNBcHBsaWNhdGlvbjo6Q0lJU0FwcGxpY2F0aW9uKGNsYXNzIENDb21BdXRoSW5mbyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wQ0lJU0FwcGxpY2F0aW9uQEBRQUVAUEFWQ0NvbUF1dGhJbmZvQEBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJSVNJbnRlcmZhY2U6OkNJSVNJbnRlcmZhY2UoY2xhc3MgQ0lJU0ludGVyZmFjZSAmKQ0KKz8/MENJSVNJbnRlcmZhY2VAQFFBRUBBQVYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0lJU0ludGVyZmFjZTo6Q0lJU0ludGVyZmFjZShjbGFzcyBDQ29tQXV0aEluZm8gKixsb25nKQ0KKz8/MENJSVNJbnRlcmZhY2VAQFFBRUBQQVZDQ29tQXV0aEluZm9AQEpAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJSVNTdmNDb250cm9sOjpDSUlTU3ZjQ29udHJvbChjbGFzcyBDSUlTU3ZjQ29udHJvbCAmKQ0KKz8/MENJSVNTdmNDb250cm9sQEBRQUVAQUFWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJSVNTdmNDb250cm9sOjpDSUlTU3ZjQ29udHJvbChjbGFzcyBDSUlTU3ZjQ29udHJvbCAqKQ0KKz8/MENJSVNTdmNDb250cm9sQEBRQUVAUEFWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJSVNTdmNDb250cm9sOjpDSUlTU3ZjQ29udHJvbChjbGFzcyBDQ29tQXV0aEluZm8gKikNCis/PzBDSUlTU3ZjQ29udHJvbEBAUUFFQFBBVkNDb21BdXRoSW5mb0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSUlTV2l6YXJkQm9va0VuZDo6Q0lJU1dpemFyZEJvb2tFbmQodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/PzBDSUlTV2l6YXJkQm9va0VuZEBAUUFFQElJSUlJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSUlTV2l6YXJkQm9va0VuZDo6Q0lJU1dpemFyZEJvb2tFbmQobG9uZyAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/PzBDSUlTV2l6YXJkQm9va0VuZEBAUUFFQFBBSklJSUlJSUlAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJSVNXaXphcmRQYWdlOjpDSUlTV2l6YXJkUGFnZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz8/MENJSVNXaXphcmRQYWdlQEBRQUVASUlISUlAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJSVNXaXphcmRTaGVldDo6Q0lJU1dpemFyZFNoZWV0KHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz8/MENJSVNXaXphcmRTaGVldEBAUUFFQElJS0tAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJTG9uZzo6Q0lMb25nKGxvbmcpDQorPz8wQ0lMb25nQEBRQUVASkBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0lMb25nOjpDSUxvbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBDSUxvbmdAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJTG9uZzo6Q0lMb25nKHZvaWQpDQorPz8wQ0lMb25nQEBRQUVAWFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBDSU51bWJlcjo6Q0lOdW1iZXIodm9pZCkNCis/PzBDSU51bWJlckBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6Q0lQQWNjZXNzRGVzY3JpcHRvcihjbGFzcyBDSVBBY2Nlc3NEZXNjcmlwdG9yIGNvbnN0ICYpDQorPz8wQ0lQQWNjZXNzRGVzY3JpcHRvckBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSVBBY2Nlc3NEZXNjcmlwdG9yOjpDSVBBY2Nlc3NEZXNjcmlwdG9yKGludCkNCis/PzBDSVBBY2Nlc3NEZXNjcmlwdG9yQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6Q0lQQWNjZXNzRGVzY3JpcHRvcihpbnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCkNCis/PzBDSVBBY2Nlc3NEZXNjcmlwdG9yQEBRQUVASEtLSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6Q0lQQWNjZXNzRGVzY3JpcHRvcihpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBDSVBBY2Nlc3NEZXNjcmlwdG9yQEBRQUVASFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0lQQWRkcmVzczo6Q0lQQWRkcmVzcyhjbGFzcyBDSVBBZGRyZXNzIGNvbnN0ICYpDQorPz8wQ0lQQWRkcmVzc0BAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSVBBZGRyZXNzOjpDSVBBZGRyZXNzKGNsYXNzIENTdHJpbmcgY29uc3QgJikNCis/PzBDSVBBZGRyZXNzQEBRQUVAQUJWQ1N0cmluZ0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSVBBZGRyZXNzOjpDSVBBZGRyZXNzKHVuc2lnbmVkIGNoYXIsdW5zaWduZWQgY2hhcix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGNoYXIpDQorPz8wQ0lQQWRkcmVzc0BAUUFFQEVFRUVAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJUEFkZHJlc3M6OkNJUEFkZHJlc3ModW5zaWduZWQgbG9uZyxpbnQpDQorPz8wQ0lQQWRkcmVzc0BAUUFFQEtIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSVBBZGRyZXNzOjpDSVBBZGRyZXNzKHVuc2lnbmVkIGNoYXIgKixpbnQpDQorPz8wQ0lQQWRkcmVzc0BAUUFFQFBBRUhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJUEFkZHJlc3M6OkNJUEFkZHJlc3ModW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpDQorPz8wQ0lQQWRkcmVzc0BAUUFFQFBCR0hAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJUEFkZHJlc3M6OkNJUEFkZHJlc3Modm9pZCkNCis/PzBDSVBBZGRyZXNzQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSW5oZXJpdGFuY2VEbGc6OkNJbmhlcml0YW5jZURsZyhpbnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCxjbGFzcyBDQ29tQXV0aEluZm8gKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENXbmQgKikNCis/PzBDSW5oZXJpdGFuY2VEbGdAQFFBRUBIS0tLS1BCR0hQQVZDQ29tQXV0aEluZm9AQDBQQVZDV25kQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbmhlcml0YW5jZURsZzo6Q0luaGVyaXRhbmNlRGxnKHVuc2lnbmVkIGxvbmcsaW50LGNsYXNzIENDb21BdXRoSW5mbyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDV25kICopDQorPz8wQ0luaGVyaXRhbmNlRGxnQEBRQUVAS0hQQVZDQ29tQXV0aEluZm9AQFBCRzFQQVZDV25kQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbmhlcml0YW5jZURsZzo6Q0luaGVyaXRhbmNlRGxnKHVuc2lnbmVkIGxvbmcsaW50LGNsYXNzIENDb21BdXRoSW5mbyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1N0cmluZ0xpc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENXbmQgKikNCis/PzBDSW5oZXJpdGFuY2VEbGdAQFFBRUBLSFBBVkNDb21BdXRoSW5mb0BAUEJHQUFWQ1N0cmluZ0xpc3RAQDFQQVZDV25kQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENNYXBwZWRCaXRtYXBCdXR0b246OkNNYXBwZWRCaXRtYXBCdXR0b24odm9pZCkNCis/PzBDTWFwcGVkQml0bWFwQnV0dG9uQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0YUJhY2s6OkNNZXRhQmFjayhjbGFzcyBDTWV0YUJhY2sgJikNCis/PzBDTWV0YUJhY2tAQFFBRUBBQVYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ01ldGFCYWNrOjpDTWV0YUJhY2soY2xhc3MgQ0NvbUF1dGhJbmZvICopDQorPz8wQ01ldGFCYWNrQEBRQUVAUEFWQ0NvbUF1dGhJbmZvQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENNZXRhRW51bWVyYXRvcjo6Q01ldGFFbnVtZXJhdG9yKGNsYXNzIENNZXRhRW51bWVyYXRvciAmKQ0KKz8/MENNZXRhRW51bWVyYXRvckBAUUFFQEFBVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0YUVudW1lcmF0b3I6OkNNZXRhRW51bWVyYXRvcihpbnQsY2xhc3MgQ01ldGFLZXkgKikNCis/PzBDTWV0YUVudW1lcmF0b3JAQFFBRUBIUEFWQ01ldGFLZXlAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ01ldGFFbnVtZXJhdG9yOjpDTWV0YUVudW1lcmF0b3IoY2xhc3MgQ0NvbUF1dGhJbmZvICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz8/MENNZXRhRW51bWVyYXRvckBAUUFFQFBBVkNDb21BdXRoSW5mb0BAUEJHS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ01ldGFFbnVtZXJhdG9yOjpDTWV0YUVudW1lcmF0b3IoY2xhc3MgQ01ldGFJbnRlcmZhY2UgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorPz8wQ01ldGFFbnVtZXJhdG9yQEBRQUVAUEFWQ01ldGFJbnRlcmZhY2VAQFBCR0tAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpDTWV0YUludGVyZmFjZShjbGFzcyBDTWV0YUludGVyZmFjZSAqKQ0KKz8/MENNZXRhSW50ZXJmYWNlQEBJQUVAUEFWMEBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpDTWV0YUludGVyZmFjZShjbGFzcyBDQ29tQXV0aEluZm8gKikNCis/PzBDTWV0YUludGVyZmFjZUBASUFFQFBBVkNDb21BdXRoSW5mb0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6Q01ldGFJbnRlcmZhY2UoY2xhc3MgQ01ldGFJbnRlcmZhY2UgJikNCis/PzBDTWV0YUludGVyZmFjZUBAUUFFQEFBVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0YUtleTo6Q01ldGFLZXkoY2xhc3MgQ01ldGFLZXkgJikNCis/PzBDTWV0YUtleUBAUUFFQEFBVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0YUtleTo6Q01ldGFLZXkoaW50LGNsYXNzIENNZXRhS2V5ICopDQorPz8wQ01ldGFLZXlAQFFBRUBIUEFWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENNZXRhS2V5OjpDTWV0YUtleShjbGFzcyBDQ29tQXV0aEluZm8gKikNCis/PzBDTWV0YUtleUBAUUFFQFBBVkNDb21BdXRoSW5mb0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0YUtleTo6Q01ldGFLZXkoY2xhc3MgQ0NvbUF1dGhJbmZvICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorPz8wQ01ldGFLZXlAQFFBRUBQQVZDQ29tQXV0aEluZm9AQFBCR0tLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0YUtleTo6Q01ldGFLZXkoY2xhc3MgQ01ldGFJbnRlcmZhY2UgKikNCis/PzBDTWV0YUtleUBAUUFFQFBBVkNNZXRhSW50ZXJmYWNlQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENNZXRhS2V5OjpDTWV0YUtleShjbGFzcyBDTWV0YUludGVyZmFjZSAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz8/MENNZXRhS2V5QEBRQUVAUEFWQ01ldGFJbnRlcmZhY2VAQFBCR0tLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0YWJhc2VQYXRoOjpDTWV0YWJhc2VQYXRoKGNsYXNzIENNZXRhYmFzZVBhdGggY29uc3QgJikNCis/PzBDTWV0YWJhc2VQYXRoQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENNZXRhYmFzZVBhdGg6OkNNZXRhYmFzZVBhdGgoaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wQ01ldGFiYXNlUGF0aEBAUUFFQEhQQkcwMDBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENNZXRhYmFzZVBhdGg6OkNNZXRhYmFzZVBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBDTWV0YWJhc2VQYXRoQEBRQUVAUEJHSzAwQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBDT0RMQm94OjpDT0RMQm94KHZvaWQpDQorPz8wQ09ETEJveEBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ09iTGlzdEl0ZXI6OkNPYkxpc3RJdGVyKGNsYXNzIENPYkxpc3RQbHVzIGNvbnN0ICYpDQorPz8wQ09iTGlzdEl0ZXJAQFFBRUBBQlZDT2JMaXN0UGx1c0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDT2JMaXN0UGx1czo6Q09iTGlzdFBsdXMoaW50KQ0KKz8/MENPYkxpc3RQbHVzQEBRQUVASEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQ09iakhlbHBlcjo6Q09iakhlbHBlcih2b2lkKQ0KKz8/MENPYmpIZWxwZXJAQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENPYmpIZWxwZXI6OkNPYmpIZWxwZXIoY2xhc3MgQ09iakhlbHBlciBjb25zdCAmKQ0KKz8/MENPYmpIZWxwZXJAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ09iamVjdFBsdXM6OkNPYmplY3RQbHVzKHZvaWQpDQorPz8wQ09iamVjdFBsdXNAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENSTUNDb21ib0JveDo6Q1JNQ0NvbWJvQm94KHZvaWQpDQorPz8wQ1JNQ0NvbWJvQm94QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUk1DTGlzdEJveDo6Q1JNQ0xpc3RCb3godm9pZCkNCis/PzBDUk1DTGlzdEJveEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hEcmF3U3RydWN0OjpDUk1DTGlzdEJveERyYXdTdHJ1Y3QoY2xhc3MgQ0RDICosc3RydWN0IHRhZ1JFQ1QgKixpbnQsdW5zaWduZWQgbG9uZyxpbnQsY2xhc3MgQ1JNQ0xpc3RCb3hSZXNvdXJjZXMgY29uc3QgKikNCis/PzBDUk1DTGlzdEJveERyYXdTdHJ1Y3RAQFFBRUBQQVZDRENAQFBBVXRhZ1JFQ1RAQEhLSFBCVkNSTUNMaXN0Qm94UmVzb3VyY2VzQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENSTUNMaXN0Qm94SGVhZGVyOjpDUk1DTGlzdEJveEhlYWRlcih1bnNpZ25lZCBsb25nKQ0KKz8/MENSTUNMaXN0Qm94SGVhZGVyQEBRQUVAS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hSZXNvdXJjZXM6OkNSTUNMaXN0Qm94UmVzb3VyY2VzKGludCxpbnQsdW5zaWduZWQgbG9uZykNCis/PzBDUk1DTGlzdEJveFJlc291cmNlc0BAUUFFQEhIS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1N0clBhc3N3b3JkOjpDU3RyUGFzc3dvcmQoY2xhc3MgQ1N0clBhc3N3b3JkICYpDQorPz8wQ1N0clBhc3N3b3JkQEBRQUVAQUFWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTdHJQYXNzd29yZDo6Q1N0clBhc3N3b3JkKHVuc2lnbmVkIHNob3J0ICopDQorPz8wQ1N0clBhc3N3b3JkQEBRQUVAUEFHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU3RyUGFzc3dvcmQ6OkNTdHJQYXNzd29yZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MENTdHJQYXNzd29yZEBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1N0clBhc3N3b3JkOjpDU3RyUGFzc3dvcmQodm9pZCkNCis/PzBDU3RyUGFzc3dvcmRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTdHJpbmdMaXN0RXg6OkNTdHJpbmdMaXN0RXgoaW50KQ0KKz8/MENTdHJpbmdMaXN0RXhAQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDVXBCdXR0b246OkNVcEJ1dHRvbih2b2lkKQ0KKz8/MENVcEJ1dHRvbkBAUUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQ1dhbUludGVyZmFjZTo6Q1dhbUludGVyZmFjZShjbGFzcyBDV2FtSW50ZXJmYWNlICopDQorPz8wQ1dhbUludGVyZmFjZUBASUFFQFBBVjBAQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBDV2FtSW50ZXJmYWNlOjpDV2FtSW50ZXJmYWNlKGNsYXNzIENDb21BdXRoSW5mbyAqKQ0KKz8/MENXYW1JbnRlcmZhY2VAQElBRUBQQVZDQ29tQXV0aEluZm9AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1dhbUludGVyZmFjZTo6Q1dhbUludGVyZmFjZShjbGFzcyBDV2FtSW50ZXJmYWNlICYpDQorPz8wQ1dhbUludGVyZmFjZUBAUUFFQEFBVjBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENBY2Nlc3NFbnRyeTo6fkNBY2Nlc3NFbnRyeSh2b2lkKQ0KKz8/MUNBY2Nlc3NFbnRyeUBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0Jsb2I6On5DQmxvYih2b2lkKQ0KKz8/MUNCbG9iQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ29tQXV0aEluZm86On5DQ29tQXV0aEluZm8odm9pZCkNCis/PzFDQ29tQXV0aEluZm9AQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ0NvbmZpcm1EbGc6On5DQ29uZmlybURsZyh2b2lkKQ0KKz8/MUNDb25maXJtRGxnQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRGlyQnJvd3NlRGxnOjp+Q0RpckJyb3dzZURsZyh2b2lkKQ0KKz8/MUNEaXJCcm93c2VEbGdAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ0Rvd25CdXR0b246On5DRG93bkJ1dHRvbih2b2lkKQ0KKz8/MUNEb3duQnV0dG9uQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENFbXBoYXNpemVkRGlhbG9nOjp+Q0VtcGhhc2l6ZWREaWFsb2codm9pZCkNCis/PzFDRW1waGFzaXplZERpYWxvZ0BAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0Vycm9yOjp+Q0Vycm9yKHZvaWQpDQorPz8xQ0Vycm9yQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDR2V0Q29tcHV0ZXI6On5DR2V0Q29tcHV0ZXIodm9pZCkNCis/PzFDR2V0Q29tcHV0ZXJAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ0dldFVzZXJzOjp+Q0dldFVzZXJzKHZvaWQpDQorPz8xQ0dldFVzZXJzQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENIZWFkZXJMaXN0Qm94Ojp+Q0hlYWRlckxpc3RCb3godm9pZCkNCis/PzFDSGVhZGVyTGlzdEJveEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDSUlTQXBwUG9vbDo6fkNJSVNBcHBQb29sKHZvaWQpDQorPz8xQ0lJU0FwcFBvb2xAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ0lJU0FwcGxpY2F0aW9uOjp+Q0lJU0FwcGxpY2F0aW9uKHZvaWQpDQorPz8xQ0lJU0FwcGxpY2F0aW9uQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSUlTSW50ZXJmYWNlOjp+Q0lJU0ludGVyZmFjZSh2b2lkKQ0KKz8/MUNJSVNJbnRlcmZhY2VAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ0lJU1N2Y0NvbnRyb2w6On5DSUlTU3ZjQ29udHJvbCh2b2lkKQ0KKz8/MUNJSVNTdmNDb250cm9sQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENJSVNXaXphcmRCb29rRW5kOjp+Q0lJU1dpemFyZEJvb2tFbmQodm9pZCkNCis/PzFDSUlTV2l6YXJkQm9va0VuZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDSUlTV2l6YXJkUGFnZTo6fkNJSVNXaXphcmRQYWdlKHZvaWQpDQorPz8xQ0lJU1dpemFyZFBhZ2VAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ0lJU1dpemFyZFNoZWV0Ojp+Q0lJU1dpemFyZFNoZWV0KHZvaWQpDQorPz8xQ0lJU1dpemFyZFNoZWV0QEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSUxvbmc6On5DSUxvbmcodm9pZCkNCis/PzFDSUxvbmdAQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIENJTnVtYmVyOjp+Q0lOdW1iZXIodm9pZCkNCis/PzFDSU51bWJlckBASUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDSVBBY2Nlc3NEZXNjcmlwdG9yOjp+Q0lQQWNjZXNzRGVzY3JpcHRvcih2b2lkKQ0KKz8/MUNJUEFjY2Vzc0Rlc2NyaXB0b3JAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ0lQQWRkcmVzczo6fkNJUEFkZHJlc3Modm9pZCkNCis/PzFDSVBBZGRyZXNzQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENJbmhlcml0YW5jZURsZzo6fkNJbmhlcml0YW5jZURsZyh2b2lkKQ0KKz8/MUNJbmhlcml0YW5jZURsZ0BAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDTWFwcGVkQml0bWFwQnV0dG9uOjp+Q01hcHBlZEJpdG1hcEJ1dHRvbih2b2lkKQ0KKz8/MUNNYXBwZWRCaXRtYXBCdXR0b25AQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ01ldGFCYWNrOjp+Q01ldGFCYWNrKHZvaWQpDQorPz8xQ01ldGFCYWNrQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENNZXRhRW51bWVyYXRvcjo6fkNNZXRhRW51bWVyYXRvcih2b2lkKQ0KKz8/MUNNZXRhRW51bWVyYXRvckBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6fkNNZXRhSW50ZXJmYWNlKHZvaWQpDQorPz8xQ01ldGFJbnRlcmZhY2VAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ01ldGFLZXk6On5DTWV0YUtleSh2b2lkKQ0KKz8/MUNNZXRhS2V5QEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0YWJhc2VQYXRoOjp+Q01ldGFiYXNlUGF0aCh2b2lkKQ0KKz8/MUNNZXRhYmFzZVBhdGhAQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIENPRExCb3g6On5DT0RMQm94KHZvaWQpDQorPz8xQ09ETEJveEBASUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDT2JMaXN0SXRlcjo6fkNPYkxpc3RJdGVyKHZvaWQpDQorPz8xQ09iTGlzdEl0ZXJAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ09iTGlzdFBsdXM6On5DT2JMaXN0UGx1cyh2b2lkKQ0KKz8/MUNPYkxpc3RQbHVzQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENPYmplY3RQbHVzOjp+Q09iamVjdFBsdXModm9pZCkNCis/PzFDT2JqZWN0UGx1c0BAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDUk1DQ29tYm9Cb3g6On5DUk1DQ29tYm9Cb3godm9pZCkNCis/PzFDUk1DQ29tYm9Cb3hAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3g6On5DUk1DTGlzdEJveCh2b2lkKQ0KKz8/MUNSTUNMaXN0Qm94QEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENSTUNMaXN0Qm94SGVhZGVyOjp+Q1JNQ0xpc3RCb3hIZWFkZXIodm9pZCkNCis/PzFDUk1DTGlzdEJveEhlYWRlckBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hSZXNvdXJjZXM6On5DUk1DTGlzdEJveFJlc291cmNlcyh2b2lkKQ0KKz8/MUNSTUNMaXN0Qm94UmVzb3VyY2VzQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU3RyUGFzc3dvcmQ6On5DU3RyUGFzc3dvcmQodm9pZCkNCis/PzFDU3RyUGFzc3dvcmRAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ1N0cmluZ0xpc3RFeDo6fkNTdHJpbmdMaXN0RXgodm9pZCkNCis/PzFDU3RyaW5nTGlzdEV4QEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENVcEJ1dHRvbjo6fkNVcEJ1dHRvbih2b2lkKQ0KKz8/MUNVcEJ1dHRvbkBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDV2FtSW50ZXJmYWNlOjp+Q1dhbUludGVyZmFjZSh2b2lkKQ0KKz8/MUNXYW1JbnRlcmZhY2VAQFVBRUBYWg0KKzsgcHVibGljOiBjbGFzcyBDQmxvYiAmIF9fdGhpc2NhbGwgQ0Jsb2I6Om9wZXJhdG9yPShjbGFzcyBDQmxvYiBjb25zdCAmKQ0KKz8/NENCbG9iQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbUF1dGhJbmZvICYgX190aGlzY2FsbCBDQ29tQXV0aEluZm86Om9wZXJhdG9yPShjbGFzcyBDQ29tQXV0aEluZm8gJikNCis/PzRDQ29tQXV0aEluZm9AQFFBRUFBVjBAQUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tQXV0aEluZm8gJiBfX3RoaXNjYWxsIENDb21BdXRoSW5mbzo6b3BlcmF0b3I9KGNsYXNzIENDb21BdXRoSW5mbyAqKQ0KKz8/NENDb21BdXRoSW5mb0BAUUFFQUFWMEBQQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENDb21BdXRoSW5mbyAmIF9fdGhpc2NhbGwgQ0NvbUF1dGhJbmZvOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzRDQ29tQXV0aEluZm9AQFFBRUFBVjBAUEJHQFoNCis7IHB1YmxpYzogY2xhc3MgQ0RpckJyb3dzZURsZyAmIF9fdGhpc2NhbGwgQ0RpckJyb3dzZURsZzo6b3BlcmF0b3I9KGNsYXNzIENEaXJCcm93c2VEbGcgY29uc3QgJikNCis/PzRDRGlyQnJvd3NlRGxnQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0Vycm9yIGNvbnN0ICYgX190aGlzY2FsbCBDRXJyb3I6Om9wZXJhdG9yPShjbGFzcyBDRXJyb3IgY29uc3QgJikNCis/PzRDRXJyb3JAQFFBRUFCVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRXJyb3IgY29uc3QgJiBfX3RoaXNjYWxsIENFcnJvcjo6b3BlcmF0b3I9KGxvbmcpDQorPz80Q0Vycm9yQEBRQUVBQlYwQEpAWg0KKzsgcHVibGljOiBjbGFzcyBDR2V0Q29tcHV0ZXIgJiBfX3RoaXNjYWxsIENHZXRDb21wdXRlcjo6b3BlcmF0b3I9KGNsYXNzIENHZXRDb21wdXRlciBjb25zdCAmKQ0KKz8/NENHZXRDb21wdXRlckBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJSVNBcHBQb29sICYgX190aGlzY2FsbCBDSUlTQXBwUG9vbDo6b3BlcmF0b3I9KGNsYXNzIENJSVNBcHBQb29sICYpDQorPz80Q0lJU0FwcFBvb2xAQFFBRUFBVjBAQUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSUlTQXBwbGljYXRpb24gJiBfX3RoaXNjYWxsIENJSVNBcHBsaWNhdGlvbjo6b3BlcmF0b3I9KGNsYXNzIENJSVNBcHBsaWNhdGlvbiAmKQ0KKz8/NENJSVNBcHBsaWNhdGlvbkBAUUFFQUFWMEBBQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJSVNJbnRlcmZhY2UgJiBfX3RoaXNjYWxsIENJSVNJbnRlcmZhY2U6Om9wZXJhdG9yPShjbGFzcyBDSUlTSW50ZXJmYWNlICYpDQorPz80Q0lJU0ludGVyZmFjZUBAUUFFQUFWMEBBQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJSVNTdmNDb250cm9sICYgX190aGlzY2FsbCBDSUlTU3ZjQ29udHJvbDo6b3BlcmF0b3I9KGNsYXNzIENJSVNTdmNDb250cm9sICYpDQorPz80Q0lJU1N2Y0NvbnRyb2xAQFFBRUFBVjBAQUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSUxvbmcgJiBfX3RoaXNjYWxsIENJTG9uZzo6b3BlcmF0b3I9KGNsYXNzIENJTG9uZyBjb25zdCAmKQ0KKz8/NENJTG9uZ0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJTG9uZyAmIF9fdGhpc2NhbGwgQ0lMb25nOjpvcGVyYXRvcj0obG9uZykNCis/PzRDSUxvbmdAQFFBRUFBVjBASkBaDQorOyBwdWJsaWM6IGNsYXNzIENJTG9uZyAmIF9fdGhpc2NhbGwgQ0lMb25nOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzRDSUxvbmdAQFFBRUFBVjBAUEJHQFoNCis7IHB1YmxpYzogY2xhc3MgQ0lOdW1iZXIgJiBfX3RoaXNjYWxsIENJTnVtYmVyOjpvcGVyYXRvcj0oY2xhc3MgQ0lOdW1iZXIgY29uc3QgJikNCis/PzRDSU51bWJlckBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJUEFkZHJlc3MgY29uc3QgJiBfX3RoaXNjYWxsIENJUEFkZHJlc3M6Om9wZXJhdG9yPShjbGFzcyBDSVBBZGRyZXNzIGNvbnN0ICYpDQorPz80Q0lQQWRkcmVzc0BAUUFFQUJWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJUEFkZHJlc3MgY29uc3QgJiBfX3RoaXNjYWxsIENJUEFkZHJlc3M6Om9wZXJhdG9yPShjbGFzcyBDU3RyaW5nIGNvbnN0ICYpDQorPz80Q0lQQWRkcmVzc0BAUUFFQUJWMEBBQlZDU3RyaW5nQEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSVBBZGRyZXNzIGNvbnN0ICYgX190aGlzY2FsbCBDSVBBZGRyZXNzOjpvcGVyYXRvcj0odW5zaWduZWQgbG9uZykNCis/PzRDSVBBZGRyZXNzQEBRQUVBQlYwQEtAWg0KKzsgcHVibGljOiBjbGFzcyBDSVBBZGRyZXNzIGNvbnN0ICYgX190aGlzY2FsbCBDSVBBZGRyZXNzOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzRDSVBBZGRyZXNzQEBRQUVBQlYwQFBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENNZXRhQmFjayAmIF9fdGhpc2NhbGwgQ01ldGFCYWNrOjpvcGVyYXRvcj0oY2xhc3MgQ01ldGFCYWNrICYpDQorPz80Q01ldGFCYWNrQEBRQUVBQVYwQEFBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ01ldGFFbnVtZXJhdG9yICYgX190aGlzY2FsbCBDTWV0YUVudW1lcmF0b3I6Om9wZXJhdG9yPShjbGFzcyBDTWV0YUVudW1lcmF0b3IgJikNCis/PzRDTWV0YUVudW1lcmF0b3JAQFFBRUFBVjBAQUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTWV0YUludGVyZmFjZSAmIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6Om9wZXJhdG9yPShjbGFzcyBDTWV0YUludGVyZmFjZSAmKQ0KKz8/NENNZXRhSW50ZXJmYWNlQEBRQUVBQVYwQEFBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ01ldGFLZXkgJiBfX3RoaXNjYWxsIENNZXRhS2V5OjpvcGVyYXRvcj0oY2xhc3MgQ01ldGFLZXkgJikNCis/PzRDTWV0YUtleUBAUUFFQUFWMEBBQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENNZXRhYmFzZVBhdGggJiBfX3RoaXNjYWxsIENNZXRhYmFzZVBhdGg6Om9wZXJhdG9yPShjbGFzcyBDTWV0YWJhc2VQYXRoIGNvbnN0ICYpDQorPz80Q01ldGFiYXNlUGF0aEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENPYmpIZWxwZXIgJiBfX3RoaXNjYWxsIENPYmpIZWxwZXI6Om9wZXJhdG9yPShjbGFzcyBDT2JqSGVscGVyIGNvbnN0ICYpDQorPz80Q09iakhlbHBlckBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENSTUNMaXN0Qm94RHJhd1N0cnVjdCAmIF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hEcmF3U3RydWN0OjpvcGVyYXRvcj0oY2xhc3MgQ1JNQ0xpc3RCb3hEcmF3U3RydWN0IGNvbnN0ICYpDQorPz80Q1JNQ0xpc3RCb3hEcmF3U3RydWN0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0clBhc3N3b3JkIGNvbnN0ICYgX190aGlzY2FsbCBDU3RyUGFzc3dvcmQ6Om9wZXJhdG9yPShjbGFzcyBDU3RyUGFzc3dvcmQgJikNCis/PzRDU3RyUGFzc3dvcmRAQFFBRUFCVjBAQUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyUGFzc3dvcmQgY29uc3QgJiBfX3RoaXNjYWxsIENTdHJQYXNzd29yZDo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz80Q1N0clBhc3N3b3JkQEBRQUVBQlYwQFBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENTdHJpbmdMaXN0RXggJiBfX3RoaXNjYWxsIENTdHJpbmdMaXN0RXg6Om9wZXJhdG9yPShjbGFzcyBDU3RyaW5nTGlzdEV4IGNvbnN0ICYpDQorPz80Q1N0cmluZ0xpc3RFeEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTdHJpbmdMaXN0RXggJiBfX3RoaXNjYWxsIENTdHJpbmdMaXN0RXg6Om9wZXJhdG9yPShjbGFzcyBDU3RyaW5nTGlzdCBjb25zdCAmKQ0KKz8/NENTdHJpbmdMaXN0RXhAQFFBRUFBVjBAQUJWQ1N0cmluZ0xpc3RAQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXYW1JbnRlcmZhY2UgJiBfX3RoaXNjYWxsIENXYW1JbnRlcmZhY2U6Om9wZXJhdG9yPShjbGFzcyBDV2FtSW50ZXJmYWNlICYpDQorPz80Q1dhbUludGVyZmFjZUBAUUFFQUFWMEBBQVYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENBY2Nlc3NFbnRyeTo6b3BlcmF0b3I9PShjbGFzcyBDQWNjZXNzRW50cnkgY29uc3QgJiljb25zdCANCis/PzhDQWNjZXNzRW50cnlAQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENBY2Nlc3NFbnRyeTo6b3BlcmF0b3I9PSh2b2lkICogY29uc3QpY29uc3QgDQorPz84Q0FjY2Vzc0VudHJ5QEBRQkVIUUFYQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0Jsb2I6Om9wZXJhdG9yPT0oY2xhc3MgQ0Jsb2IgY29uc3QgJiljb25zdCANCis/PzhDQmxvYkBAUUJFSEFCVjBAQFoNCis7IHB1YmxpYzogaW50IGNvbnN0ICBfX3RoaXNjYWxsIENFcnJvcjo6b3BlcmF0b3I9PShjbGFzcyBDRXJyb3IgJikNCis/PzhDRXJyb3JAQFFBRT9CSEFBVjBAQFoNCis7IHB1YmxpYzogaW50IGNvbnN0ICBfX3RoaXNjYWxsIENFcnJvcjo6b3BlcmF0b3I9PShsb25nKQ0KKz8/OENFcnJvckBAUUFFP0JISkBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJTG9uZzo6b3BlcmF0b3I9PShsb25nKQ0KKz8/OENJTG9uZ0BAUUFFSEpAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSVBBY2Nlc3NEZXNjcmlwdG9yOjpvcGVyYXRvcj09KGNsYXNzIENJUEFjY2Vzc0Rlc2NyaXB0b3IgY29uc3QgJiljb25zdCANCis/PzhDSVBBY2Nlc3NEZXNjcmlwdG9yQEBRQkVIQUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSVBBZGRyZXNzOjpvcGVyYXRvcj09KGNsYXNzIENJUEFkZHJlc3MgY29uc3QgJiljb25zdCANCis/PzhDSVBBZGRyZXNzQEBRQkVIQUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSVBBZGRyZXNzOjpvcGVyYXRvcj09KHVuc2lnbmVkIGxvbmcpY29uc3QgDQorPz84Q0lQQWRkcmVzc0BAUUJFSEtAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1N0clBhc3N3b3JkOjpvcGVyYXRvcj09KGNsYXNzIENTdHJQYXNzd29yZCAmKQ0KKz8/OENTdHJQYXNzd29yZEBAUUFFX05BQVYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTdHJpbmdMaXN0RXg6Om9wZXJhdG9yPT0oY2xhc3MgQ1N0cmluZ0xpc3QgY29uc3QgJikNCis/PzhDU3RyaW5nTGlzdEV4QEBRQUVIQUJWQ1N0cmluZ0xpc3RAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENCbG9iOjpvcGVyYXRvciE9KGNsYXNzIENCbG9iIGNvbnN0ICYpY29uc3QgDQorPz85Q0Jsb2JAQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IGludCBjb25zdCAgX190aGlzY2FsbCBDRXJyb3I6Om9wZXJhdG9yIT0oY2xhc3MgQ0Vycm9yICYpDQorPz85Q0Vycm9yQEBRQUU/QkhBQVYwQEBaDQorOyBwdWJsaWM6IGludCBjb25zdCAgX190aGlzY2FsbCBDRXJyb3I6Om9wZXJhdG9yIT0obG9uZykNCis/PzlDRXJyb3JAQFFBRT9CSEpAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSUxvbmc6Om9wZXJhdG9yIT0oY2xhc3MgQ0lMb25nICYpDQorPz85Q0lMb25nQEBRQUVIQUFWMEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSVBBZGRyZXNzOjpvcGVyYXRvciE9KGNsYXNzIENJUEFkZHJlc3MgY29uc3QgJiljb25zdCANCis/PzlDSVBBZGRyZXNzQEBRQkVIQUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSVBBZGRyZXNzOjpvcGVyYXRvciE9KHVuc2lnbmVkIGxvbmcpY29uc3QgDQorPz85Q0lQQWRkcmVzc0BAUUJFSEtAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1N0clBhc3N3b3JkOjpvcGVyYXRvciE9KGNsYXNzIENTdHJQYXNzd29yZCAmKQ0KKz8/OUNTdHJQYXNzd29yZEBAUUFFX05BQVYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTdHJpbmdMaXN0RXg6Om9wZXJhdG9yIT0oY2xhc3MgQ1N0cmluZ0xpc3QgY29uc3QgJikNCis/PzlDU3RyaW5nTGlzdEV4QEBRQUVIQUJWQ1N0cmluZ0xpc3RAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NvbUF1dGhJbmZvOjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCAqKHZvaWQpDQorPz9CQ0NvbUF1dGhJbmZvQEBRQUVQQUdYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDb21BdXRoSW5mbzo6b3BlcmF0b3IgY2xhc3MgQ0NvbUF1dGhJbmZvICoodm9pZCkNCis/P0JDQ29tQXV0aEluZm9AQFFBRVBBVjBAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRXJyb3I6Om9wZXJhdG9yIHVuc2lnbmVkIHNob3J0ICoodm9pZCkNCis/P0JDRXJyb3JAQFFBRVBBR1haDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0Vycm9yOjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCBjb25zdCAqKHZvaWQpDQorPz9CQ0Vycm9yQEBRQUVQQkdYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFcnJvcjo6b3BlcmF0b3IgaW50IGNvbnN0ICh2b2lkKWNvbnN0IA0KKz8/QkNFcnJvckBAUUJFP0JIWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRXJyb3I6Om9wZXJhdG9yIGxvbmcgY29uc3QgKHZvaWQpY29uc3QgDQorPz9CQ0Vycm9yQEBRQkU/QkpYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFcnJvcjo6b3BlcmF0b3IgdW5zaWduZWQgbG9uZyBjb25zdCAodm9pZCljb25zdCANCis/P0JDRXJyb3JAQFFCRT9CS1haDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0lJU0ludGVyZmFjZTo6b3BlcmF0b3IgaW50KHZvaWQpY29uc3QgDQorPz9CQ0lJU0ludGVyZmFjZUBAUUJFSFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0lJU0ludGVyZmFjZTo6b3BlcmF0b3IgbG9uZyh2b2lkKWNvbnN0IA0KKz8/QkNJSVNJbnRlcmZhY2VAQFFCRUpYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJTG9uZzo6b3BlcmF0b3IgbG9uZyBjb25zdCAodm9pZCljb25zdCANCis/P0JDSUxvbmdAQFFCRT9CSlhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0lMb25nOjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCBjb25zdCAqKHZvaWQpY29uc3QgDQorPz9CQ0lMb25nQEBRQkVQQkdYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJUEFkZHJlc3M6Om9wZXJhdG9yIGNsYXNzIENTdHJpbmcodm9pZCljb25zdCANCis/P0JDSVBBZGRyZXNzQEBRQkU/QVZDU3RyaW5nQEBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJUEFkZHJlc3M6Om9wZXJhdG9yIHVuc2lnbmVkIGxvbmcgY29uc3QgKHZvaWQpY29uc3QgDQorPz9CQ0lQQWRkcmVzc0BAUUJFP0JLWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSVBBZGRyZXNzOjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCBjb25zdCAqKHZvaWQpY29uc3QgDQorPz9CQ0lQQWRkcmVzc0BAUUJFUEJHWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWV0YUtleTo6b3BlcmF0b3IgaW50KHZvaWQpY29uc3QgDQorPz9CQ01ldGFLZXlAQFFCRUhYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENNZXRhS2V5OjpvcGVyYXRvciB1bnNpZ25lZCBsb25nKHZvaWQpY29uc3QgDQorPz9CQ01ldGFLZXlAQFFCRUtYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENNZXRhS2V5OjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCBjb25zdCAqKHZvaWQpY29uc3QgDQorPz9CQ01ldGFLZXlAQFFCRVBCR1haDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ01ldGFiYXNlUGF0aDo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgY29uc3QgKih2b2lkKWNvbnN0IA0KKz8/QkNNZXRhYmFzZVBhdGhAQFFCRVBCR1haDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ09iakhlbHBlcjo6b3BlcmF0b3IgaW50KHZvaWQpDQorPz9CQ09iakhlbHBlckBAUUFFSFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1N0clBhc3N3b3JkOjpvcGVyYXRvciBjbGFzcyBDU3RyaW5nKHZvaWQpDQorPz9CQ1N0clBhc3N3b3JkQEBRQUU/QVZDU3RyaW5nQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDSUxvbmcgJiBfX3RoaXNjYWxsIENJTG9uZzo6b3BlcmF0b3IqPShjbGFzcyBDSUxvbmcgY29uc3QgJikNCis/P1hDSUxvbmdAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSUxvbmcgJiBfX3RoaXNjYWxsIENJTG9uZzo6b3BlcmF0b3IqPShsb25nKQ0KKz8/WENJTG9uZ0BAUUFFQUFWMEBKQFoNCis7IHB1YmxpYzogY2xhc3MgQ0lMb25nICYgX190aGlzY2FsbCBDSUxvbmc6Om9wZXJhdG9yKj0odW5zaWduZWQgc2hvcnQgY29uc3QgKiBjb25zdCkNCis/P1hDSUxvbmdAQFFBRUFBVjBAUUJHQFoNCis7IHB1YmxpYzogY2xhc3MgQ0lMb25nICYgX190aGlzY2FsbCBDSUxvbmc6Om9wZXJhdG9yKz0oY2xhc3MgQ0lMb25nIGNvbnN0ICYpDQorPz9ZQ0lMb25nQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0lMb25nICYgX190aGlzY2FsbCBDSUxvbmc6Om9wZXJhdG9yKz0obG9uZykNCis/P1lDSUxvbmdAQFFBRUFBVjBASkBaDQorOyBwdWJsaWM6IGNsYXNzIENJTG9uZyAmIF9fdGhpc2NhbGwgQ0lMb25nOjpvcGVyYXRvcis9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogY29uc3QpDQorPz9ZQ0lMb25nQEBRQUVBQVYwQFFCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENJTG9uZyAmIF9fdGhpc2NhbGwgQ0lMb25nOjpvcGVyYXRvci09KGNsYXNzIENJTG9uZyBjb25zdCAmKQ0KKz8/WkNJTG9uZ0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJTG9uZyAmIF9fdGhpc2NhbGwgQ0lMb25nOjpvcGVyYXRvci09KGxvbmcpDQorPz9aQ0lMb25nQEBRQUVBQVYwQEpAWg0KKzsgcHVibGljOiBjbGFzcyBDSUxvbmcgJiBfX3RoaXNjYWxsIENJTG9uZzo6b3BlcmF0b3ItPSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIGNvbnN0KQ0KKz8/WkNJTG9uZ0BAUUFFQUFWMEBRQkdAWg0KKzsgcHVibGljOiBjbGFzcyBDSUxvbmcgJiBfX3RoaXNjYWxsIENJTG9uZzo6b3BlcmF0b3IvPShjbGFzcyBDSUxvbmcgY29uc3QgJikNCis/P18wQ0lMb25nQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0lMb25nICYgX190aGlzY2FsbCBDSUxvbmc6Om9wZXJhdG9yLz0obG9uZykNCis/P18wQ0lMb25nQEBRQUVBQVYwQEpAWg0KKzsgcHVibGljOiBjbGFzcyBDSUxvbmcgJiBfX3RoaXNjYWxsIENJTG9uZzo6b3BlcmF0b3IvPSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIGNvbnN0KQ0KKz8/XzBDSUxvbmdAQFFBRUFBVjBAUUJHQFoNCis7IGNvbnN0ICBDQWNjZXNzRW50cnk6OmB2ZnRhYmxlJ3tmb3IgYENPYmpIZWxwZXInfQ0KKz8/XzdDQWNjZXNzRW50cnlAQDZCQ09iakhlbHBlckBAQA0KKzsgY29uc3QgIENBY2Nlc3NFbnRyeTo6YHZmdGFibGUne2ZvciBgQ09iamVjdCd9DQorPz9fN0NBY2Nlc3NFbnRyeUBANkJDT2JqZWN0QEBADQorOyBjb25zdCAgQ0NvbmZpcm1EbGc6OmB2ZnRhYmxlJw0KKz8/XzdDQ29uZmlybURsZ0BANkJADQorOyBjb25zdCAgQ0RpckJyb3dzZURsZzo6YHZmdGFibGUnDQorPz9fN0NEaXJCcm93c2VEbGdAQDZCQA0KKzsgY29uc3QgIENEb3duQnV0dG9uOjpgdmZ0YWJsZScNCis/P183Q0Rvd25CdXR0b25AQDZCQA0KKzsgY29uc3QgIENFbXBoYXNpemVkRGlhbG9nOjpgdmZ0YWJsZScNCis/P183Q0VtcGhhc2l6ZWREaWFsb2dAQDZCQA0KKzsgY29uc3QgIENHZXRVc2Vyczo6YHZmdGFibGUnDQorPz9fN0NHZXRVc2Vyc0BANkJADQorOyBjb25zdCAgQ0hlYWRlckxpc3RCb3g6OmB2ZnRhYmxlJ3tmb3IgYENMaXN0Qm94J30NCis/P183Q0hlYWRlckxpc3RCb3hAQDZCQ0xpc3RCb3hAQEANCis7IGNvbnN0ICBDSGVhZGVyTGlzdEJveDo6YHZmdGFibGUne2ZvciBgQ09ETEJveCd9DQorPz9fN0NIZWFkZXJMaXN0Qm94QEA2QkNPRExCb3hAQEANCis7IGNvbnN0ICBDSUlTQXBwUG9vbDo6YHZmdGFibGUne2ZvciBgQ01ldGFLZXknfQ0KKz8/XzdDSUlTQXBwUG9vbEBANkJDTWV0YUtleUBAQA0KKzsgY29uc3QgIENJSVNBcHBQb29sOjpgdmZ0YWJsZSd7Zm9yIGBDV2FtSW50ZXJmYWNlJ30NCis/P183Q0lJU0FwcFBvb2xAQDZCQ1dhbUludGVyZmFjZUBAQA0KKzsgY29uc3QgIENJSVNBcHBsaWNhdGlvbjo6YHZmdGFibGUne2ZvciBgQ01ldGFLZXknfQ0KKz8/XzdDSUlTQXBwbGljYXRpb25AQDZCQ01ldGFLZXlAQEANCis7IGNvbnN0ICBDSUlTQXBwbGljYXRpb246OmB2ZnRhYmxlJ3tmb3IgYENXYW1JbnRlcmZhY2UnfQ0KKz8/XzdDSUlTQXBwbGljYXRpb25AQDZCQ1dhbUludGVyZmFjZUBAQA0KKzsgY29uc3QgIENJSVNJbnRlcmZhY2U6OmB2ZnRhYmxlJw0KKz8/XzdDSUlTSW50ZXJmYWNlQEA2QkANCis7IGNvbnN0ICBDSUlTU3ZjQ29udHJvbDo6YHZmdGFibGUnDQorPz9fN0NJSVNTdmNDb250cm9sQEA2QkANCis7IGNvbnN0ICBDSUlTV2l6YXJkQm9va0VuZDo6YHZmdGFibGUnDQorPz9fN0NJSVNXaXphcmRCb29rRW5kQEA2QkANCis7IGNvbnN0ICBDSUlTV2l6YXJkUGFnZTo6YHZmdGFibGUnDQorPz9fN0NJSVNXaXphcmRQYWdlQEA2QkANCis7IGNvbnN0ICBDSUlTV2l6YXJkU2hlZXQ6OmB2ZnRhYmxlJw0KKz8/XzdDSUlTV2l6YXJkU2hlZXRAQDZCQA0KKzsgY29uc3QgIENJUEFjY2Vzc0Rlc2NyaXB0b3I6OmB2ZnRhYmxlJ3tmb3IgYENPYmpIZWxwZXInfQ0KKz8/XzdDSVBBY2Nlc3NEZXNjcmlwdG9yQEA2QkNPYmpIZWxwZXJAQEANCis7IGNvbnN0ICBDSVBBY2Nlc3NEZXNjcmlwdG9yOjpgdmZ0YWJsZSd7Zm9yIGBDT2JqZWN0J30NCis/P183Q0lQQWNjZXNzRGVzY3JpcHRvckBANkJDT2JqZWN0QEBADQorOyBjb25zdCAgQ0lQQWRkcmVzczo6YHZmdGFibGUne2ZvciBgQ09iakhlbHBlcid9DQorPz9fN0NJUEFkZHJlc3NAQDZCQ09iakhlbHBlckBAQA0KKzsgY29uc3QgIENJUEFkZHJlc3M6OmB2ZnRhYmxlJ3tmb3IgYENPYmplY3QnfQ0KKz8/XzdDSVBBZGRyZXNzQEA2QkNPYmplY3RAQEANCis7IGNvbnN0ICBDSW5oZXJpdGFuY2VEbGc6OmB2ZnRhYmxlJw0KKz8/XzdDSW5oZXJpdGFuY2VEbGdAQDZCQA0KKzsgY29uc3QgIENNYXBwZWRCaXRtYXBCdXR0b246OmB2ZnRhYmxlJw0KKz8/XzdDTWFwcGVkQml0bWFwQnV0dG9uQEA2QkANCis7IGNvbnN0ICBDTWV0YUJhY2s6OmB2ZnRhYmxlJ3tmb3IgYENNZXRhSW50ZXJmYWNlJ30NCis/P183Q01ldGFCYWNrQEA2QkNNZXRhSW50ZXJmYWNlQEBADQorOyBjb25zdCAgQ01ldGFCYWNrOjpgdmZ0YWJsZSd7Zm9yIGBDV2FtSW50ZXJmYWNlJ30NCis/P183Q01ldGFCYWNrQEA2QkNXYW1JbnRlcmZhY2VAQEANCis7IGNvbnN0ICBDTWV0YUVudW1lcmF0b3I6OmB2ZnRhYmxlJw0KKz8/XzdDTWV0YUVudW1lcmF0b3JAQDZCQA0KKzsgY29uc3QgIENNZXRhSW50ZXJmYWNlOjpgdmZ0YWJsZScNCis/P183Q01ldGFJbnRlcmZhY2VAQDZCQA0KKzsgY29uc3QgIENNZXRhS2V5OjpgdmZ0YWJsZScNCis/P183Q01ldGFLZXlAQDZCQA0KKzsgY29uc3QgIENPRExCb3g6OmB2ZnRhYmxlJw0KKz8/XzdDT0RMQm94QEA2QkANCis7IGNvbnN0ICBDT2JMaXN0SXRlcjo6YHZmdGFibGUne2ZvciBgQ09iakhlbHBlcid9DQorPz9fN0NPYkxpc3RJdGVyQEA2QkNPYmpIZWxwZXJAQEANCis7IGNvbnN0ICBDT2JMaXN0SXRlcjo6YHZmdGFibGUne2ZvciBgQ09iamVjdCd9DQorPz9fN0NPYkxpc3RJdGVyQEA2QkNPYmplY3RAQEANCis7IGNvbnN0ICBDT2JMaXN0UGx1czo6YHZmdGFibGUne2ZvciBgQ09iTGlzdCd9DQorPz9fN0NPYkxpc3RQbHVzQEA2QkNPYkxpc3RAQEANCis7IGNvbnN0ICBDT2JMaXN0UGx1czo6YHZmdGFibGUne2ZvciBgQ09iakhlbHBlcid9DQorPz9fN0NPYkxpc3RQbHVzQEA2QkNPYmpIZWxwZXJAQEANCis7IGNvbnN0ICBDT2JqSGVscGVyOjpgdmZ0YWJsZScNCis/P183Q09iakhlbHBlckBANkJADQorOyBjb25zdCAgQ09iamVjdFBsdXM6OmB2ZnRhYmxlJ3tmb3IgYENPYmpIZWxwZXInfQ0KKz8/XzdDT2JqZWN0UGx1c0BANkJDT2JqSGVscGVyQEBADQorOyBjb25zdCAgQ09iamVjdFBsdXM6OmB2ZnRhYmxlJ3tmb3IgYENPYmplY3QnfQ0KKz8/XzdDT2JqZWN0UGx1c0BANkJDT2JqZWN0QEBADQorOyBjb25zdCAgQ1JNQ0NvbWJvQm94OjpgdmZ0YWJsZSd7Zm9yIGBDQ29tYm9Cb3gnfQ0KKz8/XzdDUk1DQ29tYm9Cb3hAQDZCQ0NvbWJvQm94QEBADQorOyBjb25zdCAgQ1JNQ0NvbWJvQm94OjpgdmZ0YWJsZSd7Zm9yIGBDT0RMQm94J30NCis/P183Q1JNQ0NvbWJvQm94QEA2QkNPRExCb3hAQEANCis7IGNvbnN0ICBDUk1DTGlzdEJveDo6YHZmdGFibGUne2ZvciBgQ0xpc3RCb3gnfQ0KKz8/XzdDUk1DTGlzdEJveEBANkJDTGlzdEJveEBAQA0KKzsgY29uc3QgIENSTUNMaXN0Qm94OjpgdmZ0YWJsZSd7Zm9yIGBDT0RMQm94J30NCis/P183Q1JNQ0xpc3RCb3hAQDZCQ09ETEJveEBAQA0KKzsgY29uc3QgIENSTUNMaXN0Qm94SGVhZGVyOjpgdmZ0YWJsZScNCis/P183Q1JNQ0xpc3RCb3hIZWFkZXJAQDZCQA0KKzsgY29uc3QgIENTdHJpbmdMaXN0RXg6OmB2ZnRhYmxlJw0KKz8/XzdDU3RyaW5nTGlzdEV4QEA2QkANCis7IGNvbnN0ICBDVXBCdXR0b246OmB2ZnRhYmxlJw0KKz8/XzdDVXBCdXR0b25AQDZCQA0KKzsgY29uc3QgIENXYW1JbnRlcmZhY2U6OmB2ZnRhYmxlJw0KKz8/XzdDV2FtSW50ZXJmYWNlQEA2QkANCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDb21BdXRoSW5mbzo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GQ0NvbUF1dGhJbmZvQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDb25maXJtRGxnOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZDQ29uZmlybURsZ0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRGlyQnJvd3NlRGxnOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZDRGlyQnJvd3NlRGxnQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENIZWFkZXJMaXN0Qm94OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZDSGVhZGVyTGlzdEJveEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSUlTV2l6YXJkQm9va0VuZDo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GQ0lJU1dpemFyZEJvb2tFbmRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0lJU1dpemFyZFBhZ2U6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRkNJSVNXaXphcmRQYWdlQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENJSVNXaXphcmRTaGVldDo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GQ0lJU1dpemFyZFNoZWV0QEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENJUEFjY2Vzc0Rlc2NyaXB0b3I6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRkNJUEFjY2Vzc0Rlc2NyaXB0b3JAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ01ldGFiYXNlUGF0aDo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GQ01ldGFiYXNlUGF0aEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDT2JMaXN0UGx1czo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GQ09iTGlzdFBsdXNAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hIZWFkZXI6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRkNSTUNMaXN0Qm94SGVhZGVyQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTdHJpbmdMaXN0RXg6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRkNTdHJpbmdMaXN0RXhAQFFBRVhYWg0KKzsgdm9pZCBfX3N0ZGNhbGwgQWN0aXZhdGVDb250cm9sKGNsYXNzIENXbmQgJixpbnQpDQorP0FjdGl2YXRlQ29udHJvbEBAWUdYQUFWQ1duZEBASEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6QWRkS2V5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/QWRkS2V5QENNZXRhSW50ZXJmYWNlQEBJQUVKS1BCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0YUtleTo6QWRkS2V5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0FkZEtleUBDTWV0YUtleUBAUUFFSlBCR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIENFcnJvcjo6QWRkT3ZlcnJpZGUobG9uZyx1bnNpZ25lZCBpbnQpDQorP0FkZE92ZXJyaWRlQENFcnJvckBAUUFFSUpJQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENBY2Nlc3NFbnRyeTo6QWRkUGVybWlzc2lvbnModW5zaWduZWQgbG9uZykNCis/QWRkUGVybWlzc2lvbnNAQ0FjY2Vzc0VudHJ5QEBRQUVYS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENPRExCb3g6OkFkZFRhYih1bnNpZ25lZCBpbnQpDQorP0FkZFRhYkBDT0RMQm94QEBRQUVISUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENPRExCb3g6OkFkZFRhYkZyb21IZWFkZXJzKGNsYXNzIENXbmQgJixjbGFzcyBDV25kICYpDQorP0FkZFRhYkZyb21IZWFkZXJzQENPRExCb3hAQFFBRUhBQVZDV25kQEAwQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ09ETEJveDo6QWRkVGFiRnJvbUhlYWRlcnModW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/QWRkVGFiRnJvbUhlYWRlcnNAQ09ETEJveEBAUUFFSElJQFoNCis7IGNoYXIgKiBfX3N0ZGNhbGwgQWxsb2NBbnNpU3RyaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0FsbG9jQW5zaVN0cmluZ0BAWUdQQURQQkdAWg0KKzsgdW5zaWduZWQgc2hvcnQgKiBfX3N0ZGNhbGwgQWxsb2NTdHJpbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpDQorP0FsbG9jU3RyaW5nQEBZR1BBR1BCR0hAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDSU51bWJlcjo6QWxsb2NhdGUodm9pZCkNCis/QWxsb2NhdGVAQ0lOdW1iZXJAQEtHSFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENFcnJvcjo6QWxsb2NhdGVTdGF0aWNzKHZvaWQpDQorP0FsbG9jYXRlU3RhdGljc0BDRXJyb3JAQEtHSFhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDV2FtSW50ZXJmYWNlOjpBcHBDcmVhdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9BcHBDcmVhdGVAQ1dhbUludGVyZmFjZUBASUFFSlBCR0tAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ1dhbUludGVyZmFjZTo6QXBwRGVsZXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz9BcHBEZWxldGVAQ1dhbUludGVyZmFjZUBASUFFSlBCR0hAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ1dhbUludGVyZmFjZTo6QXBwRGVsZXRlUmVjb3ZlcmFibGUodW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpDQorP0FwcERlbGV0ZVJlY292ZXJhYmxlQENXYW1JbnRlcmZhY2VAQElBRUpQQkdIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENXYW1JbnRlcmZhY2U6OkFwcEdldFN0YXR1cyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcgKikNCis/QXBwR2V0U3RhdHVzQENXYW1JbnRlcmZhY2VAQElBRUpQQkdQQUtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ1dhbUludGVyZmFjZTo6QXBwUmVjb3Zlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/QXBwUmVjb3ZlckBDV2FtSW50ZXJmYWNlQEBJQUVKUEJHSEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDV2FtSW50ZXJmYWNlOjpBcHBVbkxvYWQodW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpDQorP0FwcFVuTG9hZEBDV2FtSW50ZXJmYWNlQEBJQUVKUEJHSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDTWV0YWJhc2VQYXRoOjpBcHBlbmRQYXRoKHVuc2lnbmVkIGxvbmcpDQorP0FwcGVuZFBhdGhAQ01ldGFiYXNlUGF0aEBASUFFWEtAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ01ldGFiYXNlUGF0aDo6QXBwZW5kUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9BcHBlbmRQYXRoQENNZXRhYmFzZVBhdGhAQElBRVhQQkdAWg0KKzsgY2xhc3MgQ1N0cmluZyAgX19zdGRjYWxsIEFwcGVuZFRvRGV2aWNlUGF0aChjbGFzcyBDU3RyaW5nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0FwcGVuZFRvRGV2aWNlUGF0aEBAWUc/QVZDU3RyaW5nQEBWMUBQQkdAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgQXBwbHlGb250VG9Db250cm9scyhjbGFzcyBDV25kICosY2xhc3MgQ0ZvbnQgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz9BcHBseUZvbnRUb0NvbnRyb2xzQEBZR1hQQVZDV25kQEBQQVZDRm9udEBASUlAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0NvbUF1dGhJbmZvOjpBcHBseVByb3h5QmxhbmtldChzdHJ1Y3QgSVVua25vd24gKikNCis/QXBwbHlQcm94eUJsYW5rZXRAQ0NvbUF1dGhJbmZvQEBRQUVKUEFVSVVua25vd25AQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDQ29tQXV0aEluZm86OkFwcGx5UHJveHlCbGFua2V0KHN0cnVjdCBJVW5rbm93biAqLHVuc2lnbmVkIGxvbmcpDQorP0FwcGx5UHJveHlCbGFua2V0QENDb21BdXRoSW5mb0BAUUFFSlBBVUlVbmtub3duQEBLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ0lJU1N2Y0NvbnRyb2w6OkFwcGx5UHJveHlCbGFua2V0KHZvaWQpDQorP0FwcGx5UHJveHlCbGFua2V0QENJSVNTdmNDb250cm9sQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ01ldGFCYWNrOjpBcHBseVByb3h5QmxhbmtldCh2b2lkKQ0KKz9BcHBseVByb3h5QmxhbmtldEBDTWV0YUJhY2tAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6QXBwbHlQcm94eUJsYW5rZXQodm9pZCkNCis/QXBwbHlQcm94eUJsYW5rZXRAQ01ldGFJbnRlcmZhY2VAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDV2FtSW50ZXJmYWNlOjpBcHBseVByb3h5QmxhbmtldCh2b2lkKQ0KKz9BcHBseVByb3h5QmxhbmtldEBDV2FtSW50ZXJmYWNlQEBNQUVKWFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0Vycm9yOjpBcmVTdGF0aWNzQWxsb2NhdGVkKHZvaWQpDQorP0FyZVN0YXRpY3NBbGxvY2F0ZWRAQ0Vycm9yQEBLR0hYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ09ETEJveDo6QXR0YWNoUmVzb3VyY2VzKGNsYXNzIENSTUNMaXN0Qm94UmVzb3VyY2VzIGNvbnN0ICopDQorP0F0dGFjaFJlc291cmNlc0BDT0RMQm94QEBRQUVYUEJWQ1JNQ0xpc3RCb3hSZXNvdXJjZXNAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDT0RMQm94OjpBdHRhY2hXaW5kb3coY2xhc3MgQ1duZCAqKQ0KKz9BdHRhY2hXaW5kb3dAQ09ETEJveEBASUFFWFBBVkNXbmRAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0YUJhY2s6OkJhY2t1cCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9CYWNrdXBAQ01ldGFCYWNrQEBRQUVKUEJHQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpCYWNrdXAodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0JhY2t1cEBDTWV0YUludGVyZmFjZUBASUFFSlBCR0tLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhQmFjazo6QmFja3VwV2l0aFBhc3N3b3JkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/QmFja3VwV2l0aFBhc3N3b3JkQENNZXRhQmFja0BAUUFFSlBCRzBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkJhY2t1cFdpdGhQYXNzd29yZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9CYWNrdXBXaXRoUGFzc3dvcmRAQ01ldGFJbnRlcmZhY2VAQElBRUpQQkdLSzBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUk1DTGlzdEJveFJlc291cmNlczo6Qml0bWFwSGVpZ2h0KHZvaWQpY29uc3QgDQorP0JpdG1hcEhlaWdodEBDUk1DTGlzdEJveFJlc291cmNlc0BAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENSTUNMaXN0Qm94UmVzb3VyY2VzOjpCaXRtYXBXaWR0aCh2b2lkKWNvbnN0IA0KKz9CaXRtYXBXaWR0aEBDUk1DTGlzdEJveFJlc291cmNlc0BAUUJFSFhaDQorOyBpbnQgX19zdGRjYWxsIEJ1aWxkQWNsQmxvYihjbGFzcyBDT2JMaXN0UGx1cyAmLGNsYXNzIENCbG9iICYpDQorP0J1aWxkQWNsQmxvYkBAWUdIQUFWQ09iTGlzdFBsdXNAQEFBVkNCbG9iQEBAWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQnVpbGRBY2xPYmxpc3RGcm9tQmxvYihjbGFzcyBDQmxvYiAmLGNsYXNzIENPYkxpc3RQbHVzICYpDQorP0J1aWxkQWNsT2JsaXN0RnJvbUJsb2JAQFlHS0FBVkNCbG9iQEBBQVZDT2JMaXN0UGx1c0BAQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX3N0ZGNhbGwgQ0lOdW1iZXI6OkJ1aWxkRmxvYXQobG9uZyxsb25nKQ0KKz9CdWlsZEZsb2F0QENJTnVtYmVyQEBTR05KSkBaDQorOyB2b2lkIF9fc3RkY2FsbCBCdWlsZElwbEJsb2IoY2xhc3MgQ09iTGlzdFBsdXMgJixpbnQsY2xhc3MgQ0Jsb2IgJikNCis/QnVpbGRJcGxCbG9iQEBZR1hBQVZDT2JMaXN0UGx1c0BASEFBVkNCbG9iQEBAWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQnVpbGRJcGxPYmxpc3RGcm9tQmxvYihjbGFzcyBDQmxvYiAmLGNsYXNzIENPYkxpc3RQbHVzICYsaW50ICYpDQorP0J1aWxkSXBsT2JsaXN0RnJvbUJsb2JAQFlHS0FBVkNCbG9iQEBBQVZDT2JMaXN0UGx1c0BAQUFIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENNZXRhYmFzZVBhdGg6OkJ1aWxkTWV0YVBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/QnVpbGRNZXRhUGF0aEBDTWV0YWJhc2VQYXRoQEBJQUVYUEJHMDAwQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENNZXRhYmFzZVBhdGg6OkJ1aWxkTWV0YVBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/QnVpbGRNZXRhUGF0aEBDTWV0YWJhc2VQYXRoQEBJQUVYUEJHSzAwQFoNCis7IGludCBfX3N0ZGNhbGwgQ1N0cmluZ0ZpbmROb0Nhc2UoY2xhc3MgQ1N0cmluZyBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NTdHJpbmdGaW5kTm9DYXNlQEBZR0hBQlZDU3RyaW5nQEBQQkdAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ09ETEJveDo6Q2FsY3VsYXRlVGV4dEhlaWdodChjbGFzcyBDRm9udCAqKQ0KKz9DYWxjdWxhdGVUZXh0SGVpZ2h0QENPRExCb3hAQElBRVhQQVZDRm9udEBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ09ETEJveDo6Q2hhbmdlRm9udChjbGFzcyBDRm9udCAqKQ0KKz9DaGFuZ2VGb250QENPRExCb3hAQFFBRUhQQVZDRm9udEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ0lJU0ludGVyZmFjZTo6Q2hhbmdlUHJveHlCbGFua2V0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/Q2hhbmdlUHJveHlCbGFua2V0QENJSVNJbnRlcmZhY2VAQFVBRUpQQkcwQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhS2V5OjpDaGVja0Rlc2NlbmRhbnRzKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0NvbUF1dGhJbmZvICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/Q2hlY2tEZXNjZW5kYW50c0BDTWV0YUtleUBAUUFFSktQQVZDQ29tQXV0aEluZm9AQFBCR0BaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIENTdHJpbmcgJiBfX3RoaXNjYWxsIENJbmhlcml0YW5jZURsZzo6Q2xlYW5EZXNjZW5kYW50UGF0aChjbGFzcyBDU3RyaW5nICYpDQorP0NsZWFuRGVzY2VuZGFudFBhdGhAQ0luaGVyaXRhbmNlRGxnQEBJQUVBQVZDU3RyaW5nQEBBQVYyQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDTWV0YWJhc2VQYXRoOjpDbGVhbk1ldGFQYXRoKGNsYXNzIENTdHJpbmcgJikNCis/Q2xlYW5NZXRhUGF0aEBDTWV0YWJhc2VQYXRoQEBTR1BCR0FBVkNTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQmxvYjo6Q2xlYW5VcCh2b2lkKQ0KKz9DbGVhblVwQENCbG9iQEBRQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDU3RyUGFzc3dvcmQ6OkNsZWFyUGFzc3dvcmRCdWZmZXJzKHZvaWQpDQorP0NsZWFyUGFzc3dvcmRCdWZmZXJzQENTdHJQYXNzd29yZEBAQUFFWFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0YUtleTo6Q2xvc2Uodm9pZCkNCis/Q2xvc2VAQ01ldGFLZXlAQFFBRUpYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkNsb3NlS2V5KHVuc2lnbmVkIGxvbmcpDQorP0Nsb3NlS2V5QENNZXRhSW50ZXJmYWNlQEBJQUVKS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDUk1DTGlzdEJveFJlc291cmNlczo6Q29sb3JIaWdobGlnaHQodm9pZCljb25zdCANCis/Q29sb3JIaWdobGlnaHRAQ1JNQ0xpc3RCb3hSZXNvdXJjZXNAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hSZXNvdXJjZXM6OkNvbG9ySGlnaGxpZ2h0VGV4dCh2b2lkKWNvbnN0IA0KKz9Db2xvckhpZ2hsaWdodFRleHRAQ1JNQ0xpc3RCb3hSZXNvdXJjZXNAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hSZXNvdXJjZXM6OkNvbG9yV2luZG93KHZvaWQpY29uc3QgDQorP0NvbG9yV2luZG93QENSTUNMaXN0Qm94UmVzb3VyY2VzQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENSTUNMaXN0Qm94UmVzb3VyY2VzOjpDb2xvcldpbmRvd1RleHQodm9pZCljb25zdCANCis/Q29sb3JXaW5kb3dUZXh0QENSTUNMaXN0Qm94UmVzb3VyY2VzQEBRQkVLWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgQ09ETEJveDo6Q29sdW1uVGV4dChjbGFzcyBDUk1DTGlzdEJveERyYXdTdHJ1Y3QgJixpbnQsaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NvbHVtblRleHRAQ09ETEJveEBASUFFSEFBVkNSTUNMaXN0Qm94RHJhd1N0cnVjdEBASEhQQkdAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDT0RMQm94OjpDb2x1bW5UZXh0KGNsYXNzIENEQyAqLGludCxpbnQsaW50LGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Db2x1bW5UZXh0QENPRExCb3hAQEtHSFBBVkNEQ0BASEhISFBCR0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDSUlTQXBwbGljYXRpb246OkNvbW1vbkNvbnN0cnVjdCh2b2lkKQ0KKz9Db21tb25Db25zdHJ1Y3RAQ0lJU0FwcGxpY2F0aW9uQEBJQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDT2JqZWN0UGx1czo6Q29tcGFyZShjbGFzcyBDT2JqZWN0UGx1cyBjb25zdCAqKWNvbnN0IA0KKz9Db21wYXJlQENPYmplY3RQbHVzQEBVQkVIUEJWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDU3RyUGFzc3dvcmQ6OkNvbXBhcmUoY2xhc3MgQ1N0clBhc3N3b3JkICYpY29uc3QgDQorP0NvbXBhcmVAQ1N0clBhc3N3b3JkQEBRQkVIQUFWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDU3RyUGFzc3dvcmQ6OkNvbXBhcmUoY2xhc3MgQ1N0cmluZyAmKWNvbnN0IA0KKz9Db21wYXJlQENTdHJQYXNzd29yZEBAUUJFSEFBVkNTdHJpbmdAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTdHJQYXNzd29yZDo6Q29tcGFyZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9Db21wYXJlQENTdHJQYXNzd29yZEBAUUJFSFBCR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJUEFkZHJlc3M6OkNvbXBhcmVJdGVtKGNsYXNzIENJUEFkZHJlc3MgY29uc3QgJiljb25zdCANCis/Q29tcGFyZUl0ZW1AQ0lQQWRkcmVzc0BAUUJFSEFCVjFAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENPRExCb3g6OkNvbXB1dGVNYXJnaW5zKGNsYXNzIENSTUNMaXN0Qm94RHJhd1N0cnVjdCAmLGludCxpbnQgJixpbnQgJikNCis/Q29tcHV0ZU1hcmdpbnNAQ09ETEJveEBASUFFWEFBVkNSTUNMaXN0Qm94RHJhd1N0cnVjdEBASEFBSDFAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDRXJyb3IgY29uc3QgJiBfX3RoaXNjYWxsIENFcnJvcjo6Q29uc3RydWN0KGNsYXNzIENFcnJvciBjb25zdCAmKQ0KKz9Db25zdHJ1Y3RAQ0Vycm9yQEBJQUVBQlYxQEFCVjFAQFoNCis7IHByb3RlY3RlZDogY2xhc3MgQ0Vycm9yIGNvbnN0ICYgX190aGlzY2FsbCBDRXJyb3I6OkNvbnN0cnVjdChsb25nKQ0KKz9Db25zdHJ1Y3RAQ0Vycm9yQEBJQUVBQlYxQEpAWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ29udmVydERvdWJsZU51bGxMaXN0VG9TdHJpbmdMaXN0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1N0cmluZ0xpc3QgJixpbnQpDQorP0NvbnZlcnREb3VibGVOdWxsTGlzdFRvU3RyaW5nTGlzdEBAWUdLUEJHQUFWQ1N0cmluZ0xpc3RAQEhAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgQ0lOdW1iZXI6OkNvbnZlcnRGbG9hdFRvU3RyaW5nKGRvdWJsZSxpbnQsY2xhc3MgQ1N0cmluZyAmKQ0KKz9Db252ZXJ0RmxvYXRUb1N0cmluZ0BDSU51bWJlckBAU0dQQkdOSEFBVkNTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDSU51bWJlcjo6Q29udmVydExvbmdUb1N0cmluZyhsb25nLGNsYXNzIENTdHJpbmcgJikNCis/Q29udmVydExvbmdUb1N0cmluZ0BDSU51bWJlckBAU0dQQkdKQUFWQ1N0cmluZ0BAQFoNCis7IGludCBfX3N0ZGNhbGwgQ29udmVydFNlcExpbmVUb1N0cmluZ0xpc3QodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDU3RyaW5nTGlzdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NvbnZlcnRTZXBMaW5lVG9TdHJpbmdMaXN0QEBZR0hQQkdBQVZDU3RyaW5nTGlzdEBAMEBaDQorOyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDb252ZXJ0U3RyaW5nTGlzdFRvRG91YmxlTnVsbExpc3QoY2xhc3MgQ1N0cmluZ0xpc3QgJix1bnNpZ25lZCBsb25nICYsdW5zaWduZWQgc2hvcnQgKiAmKQ0KKz9Db252ZXJ0U3RyaW5nTGlzdFRvRG91YmxlTnVsbExpc3RAQFlHS0FBVkNTdHJpbmdMaXN0QEBBQUtBQVBBR0BaDQorOyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDb252ZXJ0U3RyaW5nTGlzdFRvU2VwTGluZShjbGFzcyBDU3RyaW5nTGlzdCAmLGNsYXNzIENTdHJpbmcgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Db252ZXJ0U3RyaW5nTGlzdFRvU2VwTGluZUBAWUdQQkdBQVZDU3RyaW5nTGlzdEBAQUFWQ1N0cmluZ0BAUEJHQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0lOdW1iZXI6OkNvbnZlcnRTdHJpbmdUb0Zsb2F0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosZG91YmxlICYpDQorP0NvbnZlcnRTdHJpbmdUb0Zsb2F0QENJTnVtYmVyQEBTR0hQQkdBQU5AWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDSU51bWJlcjo6Q29udmVydFN0cmluZ1RvTG9uZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcgJikNCis/Q29udmVydFN0cmluZ1RvTG9uZ0BDSU51bWJlckBAU0dIUEJHQUFKQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhS2V5OjpDb252ZXJ0VG9QYXJlbnRQYXRoKGludCkNCis/Q29udmVydFRvUGFyZW50UGF0aEBDTWV0YUtleUBAUUFFSkhAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgQ01ldGFiYXNlUGF0aDo6Q29udmVydFRvUGFyZW50UGF0aChjbGFzcyBDU3RyaW5nICYpDQorP0NvbnZlcnRUb1BhcmVudFBhdGhAQ01ldGFiYXNlUGF0aEBAU0dQQkdBQVZDU3RyaW5nQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkNvcHlEYXRhKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50KQ0KKz9Db3B5RGF0YUBDTWV0YUludGVyZmFjZUBASUFFSktQQkdLMEtLS0hAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkNvcHlLZXkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQsaW50KQ0KKz9Db3B5S2V5QENNZXRhSW50ZXJmYWNlQEBJQUVKS1BCR0swSEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1N0clBhc3N3b3JkOjpDb3B5VG8oY2xhc3MgQ1N0clBhc3N3b3JkICYpDQorP0NvcHlUb0BDU3RyUGFzc3dvcmRAQFFBRVhBQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RyUGFzc3dvcmQ6OkNvcHlUbyhjbGFzcyBDU3RyaW5nICYpDQorP0NvcHlUb0BDU3RyUGFzc3dvcmRAQFFBRVhBQVZDU3RyaW5nQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0lJU0FwcFBvb2w6OkNyZWF0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9DcmVhdGVAQ0lJU0FwcFBvb2xAQFFBRUpQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0lJU0FwcGxpY2F0aW9uOjpDcmVhdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9DcmVhdGVAQ0lJU0FwcGxpY2F0aW9uQEBRQUVKUEJHS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDSUlTSW50ZXJmYWNlOjpDcmVhdGUoaW50LHN0cnVjdCBfR1VJRCBjb25zdCAqIGNvbnN0LHN0cnVjdCBfR1VJRCBjb25zdCAqIGNvbnN0LGludCAqLHN0cnVjdCBJVW5rbm93biAqICopDQorP0NyZWF0ZUBDSUlTSW50ZXJmYWNlQEBJQUVKSFFCVV9HVUlEQEAwUEFIUEFQQVVJVW5rbm93bkBAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENJSVNTdmNDb250cm9sOjpDcmVhdGUodm9pZCkNCis/Q3JlYXRlQENJSVNTdmNDb250cm9sQEBJQUVKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpDcmVhdGUodm9pZCkNCis/Q3JlYXRlQENNZXRhSW50ZXJmYWNlQEBJQUVKWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hIZWFkZXI6OkNyZWF0ZSh1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdSRUNUIGNvbnN0ICYsY2xhc3MgQ1duZCAqLGNsYXNzIENIZWFkZXJMaXN0Qm94ICosdW5zaWduZWQgaW50KQ0KKz9DcmVhdGVAQ1JNQ0xpc3RCb3hIZWFkZXJAQFFBRUhLQUJVdGFnUkVDVEBAUEFWQ1duZEBAUEFWQ0hlYWRlckxpc3RCb3hAQElAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ1dhbUludGVyZmFjZTo6Q3JlYXRlKHZvaWQpDQorP0NyZWF0ZUBDV2FtSW50ZXJmYWNlQEBJQUVKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENXYW1JbnRlcmZhY2U6OkNyZWF0ZUFwcGxpY2F0aW9uKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/Q3JlYXRlQXBwbGljYXRpb25AQ1dhbUludGVyZmFjZUBASUFFSlBCR0swSEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDV2FtSW50ZXJmYWNlOjpDcmVhdGVBcHBsaWNhdGlvblBvb2wodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/Q3JlYXRlQXBwbGljYXRpb25Qb29sQENXYW1JbnRlcmZhY2VAQElBRUpQQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ09iamVjdCAqIF9fc3RkY2FsbCBDRW1waGFzaXplZERpYWxvZzo6Q3JlYXRlT2JqZWN0KHZvaWQpDQorP0NyZWF0ZU9iamVjdEBDRW1waGFzaXplZERpYWxvZ0BAU0dQQVZDT2JqZWN0QEBYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ09iamVjdCAqIF9fc3RkY2FsbCBDSUlTV2l6YXJkQm9va0VuZDo6Q3JlYXRlT2JqZWN0KHZvaWQpDQorP0NyZWF0ZU9iamVjdEBDSUlTV2l6YXJkQm9va0VuZEBAU0dQQVZDT2JqZWN0QEBYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ09iamVjdCAqIF9fc3RkY2FsbCBDSUlTV2l6YXJkUGFnZTo6Q3JlYXRlT2JqZWN0KHZvaWQpDQorP0NyZWF0ZU9iamVjdEBDSUlTV2l6YXJkUGFnZUBAU0dQQVZDT2JqZWN0QEBYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ09iamVjdCAqIF9fc3RkY2FsbCBDSUlTV2l6YXJkU2hlZXQ6OkNyZWF0ZU9iamVjdCh2b2lkKQ0KKz9DcmVhdGVPYmplY3RAQ0lJU1dpemFyZFNoZWV0QEBTR1BBVkNPYmplY3RAQFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0YUtleTo6Q3JlYXRlUGF0aEZyb21GYWlsZWRPcGVuKHZvaWQpDQorP0NyZWF0ZVBhdGhGcm9tRmFpbGVkT3BlbkBDTWV0YUtleUBAUUFFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDSUlTQXBwbGljYXRpb246OkNyZWF0ZVBvb2xlZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpDQorP0NyZWF0ZVBvb2xlZEBDSUlTQXBwbGljYXRpb25AQFFBRUpQQkdLMEhAWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0NPU0VSVkVSSU5GTyAqIF9fdGhpc2NhbGwgQ0NvbUF1dGhJbmZvOjpDcmVhdGVTZXJ2ZXJJbmZvU3RydWN0KHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP0NyZWF0ZVNlcnZlckluZm9TdHJ1Y3RAQ0NvbUF1dGhJbmZvQEBRQkVQQVVfQ09TRVJWRVJJTkZPQEBLQFoNCis7IHB1YmxpYzogc3RydWN0IF9DT1NFUlZFUklORk8gKiBfX3RoaXNjYWxsIENDb21BdXRoSW5mbzo6Q3JlYXRlU2VydmVySW5mb1N0cnVjdCh2b2lkKWNvbnN0IA0KKz9DcmVhdGVTZXJ2ZXJJbmZvU3RydWN0QENDb21BdXRoSW5mb0BAUUJFUEFVX0NPU0VSVkVSSU5GT0BAWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpDcmVhdGVTaXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcgKikNCis/Q3JlYXRlU2l0ZUBDTWV0YUludGVyZmFjZUBAUUFFSlBCRzAwMFBBSzFAWg0KKzsgaW50IF9fc3RkY2FsbCBDcmVhdGVTcGVjaWFsRGlhbG9nRm9udChjbGFzcyBDV25kICosY2xhc3MgQ0ZvbnQgKixsb25nLGxvbmcsbG9uZyxpbnQsaW50KQ0KKz9DcmVhdGVTcGVjaWFsRGlhbG9nRm9udEBAWUdIUEFWQ1duZEBAUEFWQ0ZvbnRAQEpKSkhIQFoNCis7IGludCBfX3N0ZGNhbGwgQ3Z0R01UU3RyaW5nVG9JbnRlcm5hbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcgKikNCis/Q3Z0R01UU3RyaW5nVG9JbnRlcm5hbEBAWUdIUEJHUEFKQFoNCis7IHZvaWQgX19zdGRjYWxsIEN2dEludGVybmFsVG9HTVRTdHJpbmcobG9uZyxjbGFzcyBDU3RyaW5nICYpDQorP0N2dEludGVybmFsVG9HTVRTdHJpbmdAQFlHWEpBQVZDU3RyaW5nQEBAWg0KKzsgaW50IF9fc3RkY2FsbCBDdnRTdHJpbmdUb0xvbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nICopDQorP0N2dFN0cmluZ1RvTG9uZ0BAWUdIUEJHUEFLQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgX19zdGRjYWxsIENFcnJvcjo6Q3Z0VG9JbnRlcm5hbEZvcm1hdChsb25nKQ0KKz9DdnRUb0ludGVybmFsRm9ybWF0QENFcnJvckBAS0dKSkBaDQorOyB2b2lkIF9fc3RkY2FsbCBERFZfRmlsZVBhdGgoY2xhc3MgQ0RhdGFFeGNoYW5nZSAqLGNsYXNzIENTdHJpbmcgJixpbnQpDQorP0REVl9GaWxlUGF0aEBAWUdYUEFWQ0RhdGFFeGNoYW5nZUBAQUFWQ1N0cmluZ0BASEBaDQorOyB2b2lkIF9fc3RkY2FsbCBERFZfRm9sZGVyUGF0aChjbGFzcyBDRGF0YUV4Y2hhbmdlICosY2xhc3MgQ1N0cmluZyAmLGludCkNCis/RERWX0ZvbGRlclBhdGhAQFlHWFBBVkNEYXRhRXhjaGFuZ2VAQEFBVkNTdHJpbmdAQEhAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgRERWX01heENoYXJzQmFsbG9vbihjbGFzcyBDRGF0YUV4Y2hhbmdlICosY2xhc3MgQ1N0cmluZyBjb25zdCAmLGludCkNCis/RERWX01heENoYXJzQmFsbG9vbkBAWUdYUEFWQ0RhdGFFeGNoYW5nZUBAQUJWQ1N0cmluZ0BASEBaDQorOyB2b2lkIF9fc3RkY2FsbCBERFZfTWF4Q2hhcnNCYWxsb29uX1NlY3VyZWRTdHJpbmcoY2xhc3MgQ0RhdGFFeGNoYW5nZSAqLGNsYXNzIENTdHJQYXNzd29yZCBjb25zdCAmLGludCkNCis/RERWX01heENoYXJzQmFsbG9vbl9TZWN1cmVkU3RyaW5nQEBZR1hQQVZDRGF0YUV4Y2hhbmdlQEBBQlZDU3RyUGFzc3dvcmRAQEhAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgRERWX01heENoYXJzX1NlY3VyZWRTdHJpbmcoY2xhc3MgQ0RhdGFFeGNoYW5nZSAqLGNsYXNzIENTdHJQYXNzd29yZCBjb25zdCAmLGludCkNCis/RERWX01heENoYXJzX1NlY3VyZWRTdHJpbmdAQFlHWFBBVkNEYXRhRXhjaGFuZ2VAQEFCVkNTdHJQYXNzd29yZEBASEBaDQorOyB2b2lkIF9fc3RkY2FsbCBERFZfTWluQ2hhcnMoY2xhc3MgQ0RhdGFFeGNoYW5nZSAqLGNsYXNzIENTdHJpbmcgY29uc3QgJixpbnQpDQorP0REVl9NaW5DaGFyc0BAWUdYUEFWQ0RhdGFFeGNoYW5nZUBAQUJWQ1N0cmluZ0BASEBaDQorOyB2b2lkIF9fc3RkY2FsbCBERFZfTWluQ2hhcnNfU2VjdXJlZFN0cmluZyhjbGFzcyBDRGF0YUV4Y2hhbmdlICosY2xhc3MgQ1N0clBhc3N3b3JkIGNvbnN0ICYsaW50KQ0KKz9ERFZfTWluQ2hhcnNfU2VjdXJlZFN0cmluZ0BAWUdYUEFWQ0RhdGFFeGNoYW5nZUBAQUJWQ1N0clBhc3N3b3JkQEBIQFoNCis7IHZvaWQgX19zdGRjYWxsIEREVl9NaW5NYXhCYWxsb29uKGNsYXNzIENEYXRhRXhjaGFuZ2UgKixpbnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9ERFZfTWluTWF4QmFsbG9vbkBAWUdYUEFWQ0RhdGFFeGNoYW5nZUBASEtLQFoNCis7IHZvaWQgX19zdGRjYWxsIEREVl9NaW5NYXhDaGFycyhjbGFzcyBDRGF0YUV4Y2hhbmdlICosY2xhc3MgQ1N0cmluZyBjb25zdCAmLGludCxpbnQpDQorP0REVl9NaW5NYXhDaGFyc0BAWUdYUEFWQ0RhdGFFeGNoYW5nZUBAQUJWQ1N0cmluZ0BASEhAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgRERWX01pbk1heENoYXJzX1NlY3VyZWRTdHJpbmcoY2xhc3MgQ0RhdGFFeGNoYW5nZSAqLGNsYXNzIENTdHJQYXNzd29yZCBjb25zdCAmLGludCxpbnQpDQorP0REVl9NaW5NYXhDaGFyc19TZWN1cmVkU3RyaW5nQEBZR1hQQVZDRGF0YUV4Y2hhbmdlQEBBQlZDU3RyUGFzc3dvcmRAQEhIQFoNCis7IHZvaWQgX19zdGRjYWxsIEREVl9NaW5NYXhTcGluKGNsYXNzIENEYXRhRXhjaGFuZ2UgKixzdHJ1Y3QgSFdORF9fICosaW50LGludCkNCis/RERWX01pbk1heFNwaW5AQFlHWFBBVkNEYXRhRXhjaGFuZ2VAQFBBVUhXTkRfX0BASEhAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgRERWX1Nob3dCYWxsb29uQW5kRmFpbChjbGFzcyBDRGF0YUV4Y2hhbmdlICosdW5zaWduZWQgaW50KQ0KKz9ERFZfU2hvd0JhbGxvb25BbmRGYWlsQEBZR1hQQVZDRGF0YUV4Y2hhbmdlQEBJQFoNCis7IHZvaWQgX19zdGRjYWxsIEREVl9TaG93QmFsbG9vbkFuZEZhaWwoY2xhc3MgQ0RhdGFFeGNoYW5nZSAqLGNsYXNzIENTdHJpbmcpDQorP0REVl9TaG93QmFsbG9vbkFuZEZhaWxAQFlHWFBBVkNEYXRhRXhjaGFuZ2VAQFZDU3RyaW5nQEBAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgRERWX1VOQ0ZvbGRlclBhdGgoY2xhc3MgQ0RhdGFFeGNoYW5nZSAqLGNsYXNzIENTdHJpbmcgJixpbnQpDQorP0REVl9VTkNGb2xkZXJQYXRoQEBZR1hQQVZDRGF0YUV4Y2hhbmdlQEBBQVZDU3RyaW5nQEBIQFoNCis7IHZvaWQgX19zdGRjYWxsIEREVl9VcmwoY2xhc3MgQ0RhdGFFeGNoYW5nZSAqLGNsYXNzIENTdHJpbmcgJikNCis/RERWX1VybEBAWUdYUEFWQ0RhdGFFeGNoYW5nZUBAQUFWQ1N0cmluZ0BAQFoNCis7IHZvaWQgX19zdGRjYWxsIEREWF9QYXNzd29yZChjbGFzcyBDRGF0YUV4Y2hhbmdlICosaW50LGNsYXNzIENTdHJpbmcgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9ERFhfUGFzc3dvcmRAQFlHWFBBVkNEYXRhRXhjaGFuZ2VAQEhBQVZDU3RyaW5nQEBQQkdAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgRERYX1Bhc3N3b3JkX1NlY3VyZWRTdHJpbmcoY2xhc3MgQ0RhdGFFeGNoYW5nZSAqLGludCxjbGFzcyBDU3RyUGFzc3dvcmQgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9ERFhfUGFzc3dvcmRfU2VjdXJlZFN0cmluZ0BAWUdYUEFWQ0RhdGFFeGNoYW5nZUBASEFBVkNTdHJQYXNzd29yZEBAUEJHQFoNCis7IHZvaWQgX19zdGRjYWxsIEREWF9TcGluKGNsYXNzIENEYXRhRXhjaGFuZ2UgKixpbnQsaW50ICYpDQorP0REWF9TcGluQEBZR1hQQVZDRGF0YUV4Y2hhbmdlQEBIQUFIQFoNCis7IHZvaWQgX19zdGRjYWxsIEREWF9UZXh0KGNsYXNzIENEYXRhRXhjaGFuZ2UgKixpbnQsY2xhc3MgQ0lMb25nICYpDQorP0REWF9UZXh0QEBZR1hQQVZDRGF0YUV4Y2hhbmdlQEBIQUFWQ0lMb25nQEBAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgRERYX1RleHRCYWxsb29uKGNsYXNzIENEYXRhRXhjaGFuZ2UgKixpbnQsdW5zaWduZWQgY2hhciAmKQ0KKz9ERFhfVGV4dEJhbGxvb25AQFlHWFBBVkNEYXRhRXhjaGFuZ2VAQEhBQUVAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgRERYX1RleHRCYWxsb29uKGNsYXNzIENEYXRhRXhjaGFuZ2UgKixpbnQsc2hvcnQgJikNCis/RERYX1RleHRCYWxsb29uQEBZR1hQQVZDRGF0YUV4Y2hhbmdlQEBIQUFGQFoNCis7IHZvaWQgX19zdGRjYWxsIEREWF9UZXh0QmFsbG9vbihjbGFzcyBDRGF0YUV4Y2hhbmdlICosaW50LGludCAmKQ0KKz9ERFhfVGV4dEJhbGxvb25AQFlHWFBBVkNEYXRhRXhjaGFuZ2VAQEhBQUhAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgRERYX1RleHRCYWxsb29uKGNsYXNzIENEYXRhRXhjaGFuZ2UgKixpbnQsdW5zaWduZWQgaW50ICYpDQorP0REWF9UZXh0QmFsbG9vbkBAWUdYUEFWQ0RhdGFFeGNoYW5nZUBASEFBSUBaDQorOyB2b2lkIF9fc3RkY2FsbCBERFhfVGV4dEJhbGxvb24oY2xhc3MgQ0RhdGFFeGNoYW5nZSAqLGludCxsb25nICYpDQorP0REWF9UZXh0QmFsbG9vbkBAWUdYUEFWQ0RhdGFFeGNoYW5nZUBASEFBSkBaDQorOyB2b2lkIF9fc3RkY2FsbCBERFhfVGV4dEJhbGxvb24oY2xhc3MgQ0RhdGFFeGNoYW5nZSAqLGludCx1bnNpZ25lZCBsb25nICYpDQorP0REWF9UZXh0QmFsbG9vbkBAWUdYUEFWQ0RhdGFFeGNoYW5nZUBASEFBS0BaDQorOyB2b2lkIF9fc3RkY2FsbCBERFhfVGV4dEJhbGxvb24oY2xhc3MgQ0RhdGFFeGNoYW5nZSAqLGludCxfX2ludDY0ICYpDQorP0REWF9UZXh0QmFsbG9vbkBAWUdYUEFWQ0RhdGFFeGNoYW5nZUBASEFBX0pAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgRERYX1RleHRCYWxsb29uKGNsYXNzIENEYXRhRXhjaGFuZ2UgKixpbnQsdW5zaWduZWQgX19pbnQ2NCAmKQ0KKz9ERFhfVGV4dEJhbGxvb25AQFlHWFBBVkNEYXRhRXhjaGFuZ2VAQEhBQV9LQFoNCis7IHZvaWQgX19zdGRjYWxsIEREWF9UZXh0X1NlY3VyZWRTdHJpbmcoY2xhc3MgQ0RhdGFFeGNoYW5nZSAqLGludCxjbGFzcyBDU3RyUGFzc3dvcmQgJikNCis/RERYX1RleHRfU2VjdXJlZFN0cmluZ0BAWUdYUEFWQ0RhdGFFeGNoYW5nZUBASEFBVkNTdHJQYXNzd29yZEBAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgKiBfX3N0ZGNhbGwgQ0lQQWRkcmVzczo6RFdPUkR0b0xQQllURSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgKikNCis/RFdPUkR0b0xQQllURUBDSVBBZGRyZXNzQEBTR1BBRUtQQUVAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ0lOdW1iZXI6OkRlQWxsb2NhdGUodm9pZCkNCis/RGVBbGxvY2F0ZUBDSU51bWJlckBAS0dYWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHZvaWQgX19zdGRjYWxsIENFcnJvcjo6RGVBbGxvY2F0ZVN0YXRpY3Modm9pZCkNCis/RGVBbGxvY2F0ZVN0YXRpY3NAQ0Vycm9yQEBLR1hYWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgRGVmbGF0ZUVudmlyb25tZW50VmFyaWFibGVQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1N0cmluZyAmKQ0KKz9EZWZsYXRlRW52aXJvbm1lbnRWYXJpYWJsZVBhdGhAQFlHS1BCR0FBVkNTdHJpbmdAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDSUlTQXBwUG9vbDo6RGVsZXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0RlbGV0ZUBDSUlTQXBwUG9vbEBAUUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDSUlTQXBwbGljYXRpb246OkRlbGV0ZShpbnQpDQorP0RlbGV0ZUBDSUlTQXBwbGljYXRpb25AQFFBRUpIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhQmFjazo6RGVsZXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/RGVsZXRlQENNZXRhQmFja0BAUUFFSlBCR0tAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkRlbGV0ZUFsbERhdGEodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/RGVsZXRlQWxsRGF0YUBDTWV0YUludGVyZmFjZUBASUFFSktQQkdLS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDV2FtSW50ZXJmYWNlOjpEZWxldGVBcHBsaWNhdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/RGVsZXRlQXBwbGljYXRpb25AQ1dhbUludGVyZmFjZUBASUFFSlBCR0hAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ1dhbUludGVyZmFjZTo6RGVsZXRlQXBwbGljYXRpb25Qb29sKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0RlbGV0ZUFwcGxpY2F0aW9uUG9vbEBDV2FtSW50ZXJmYWNlQEBJQUVKUEJHQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpEZWxldGVCYWNrdXAodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9EZWxldGVCYWNrdXBAQ01ldGFJbnRlcmZhY2VAQElBRUpQQkdLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpEZWxldGVDaGlsZEtleXModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9EZWxldGVDaGlsZEtleXNAQ01ldGFJbnRlcmZhY2VAQElBRUpLUEJHQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpEZWxldGVEYXRhKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0RlbGV0ZURhdGFAQ01ldGFJbnRlcmZhY2VAQElBRUpLUEJHS0tAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDSGVhZGVyTGlzdEJveDo6RGVsZXRlSGVhZGVySXRlbShpbnQpDQorP0RlbGV0ZUhlYWRlckl0ZW1AQ0hlYWRlckxpc3RCb3hAQElBRUhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hIZWFkZXI6OkRlbGV0ZUl0ZW0oaW50KQ0KKz9EZWxldGVJdGVtQENSTUNMaXN0Qm94SGVhZGVyQEBRQUVISEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6RGVsZXRlS2V5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/RGVsZXRlS2V5QENNZXRhSW50ZXJmYWNlQEBJQUVKS1BCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0YUtleTo6RGVsZXRlS2V5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0RlbGV0ZUtleUBDTWV0YUtleUBAUUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDSUlTQXBwbGljYXRpb246OkRlbGV0ZVJlY292ZXJhYmxlKGludCkNCis/RGVsZXRlUmVjb3ZlcmFibGVAQ0lJU0FwcGxpY2F0aW9uQEBRQUVKSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0YUtleTo6RGVsZXRlVmFsdWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9EZWxldGVWYWx1ZUBDTWV0YUtleUBAUUFFSktQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1N0clBhc3N3b3JkOjpEZXN0cm95Q2xlYXJUZXh0UGFzc3dvcmQodW5zaWduZWQgc2hvcnQgKiljb25zdCANCis/RGVzdHJveUNsZWFyVGV4dFBhc3N3b3JkQENTdHJQYXNzd29yZEBAUUJFWFBBR0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDSGVhZGVyTGlzdEJveDo6RGlzdHJpYnV0ZUNvbHVtbnModm9pZCkNCis/RGlzdHJpYnV0ZUNvbHVtbnNAQ0hlYWRlckxpc3RCb3hAQElBRVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDQ29uZmlybURsZzo6RG9EYXRhRXhjaGFuZ2UoY2xhc3MgQ0RhdGFFeGNoYW5nZSAqKQ0KKz9Eb0RhdGFFeGNoYW5nZUBDQ29uZmlybURsZ0BATUFFWFBBVkNEYXRhRXhjaGFuZ2VAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENJbmhlcml0YW5jZURsZzo6RG9EYXRhRXhjaGFuZ2UoY2xhc3MgQ0RhdGFFeGNoYW5nZSAqKQ0KKz9Eb0RhdGFFeGNoYW5nZUBDSW5oZXJpdGFuY2VEbGdAQE1BRVhQQVZDRGF0YUV4Y2hhbmdlQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENEaXJCcm93c2VEbGc6OkRvTW9kYWwodm9pZCkNCis/RG9Nb2RhbEBDRGlyQnJvd3NlRGxnQEBVQUVIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDSW5oZXJpdGFuY2VEbGc6OkRvTW9kYWwodm9pZCkNCis/RG9Nb2RhbEBDSW5oZXJpdGFuY2VEbGdAQFVBRUhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFLZXk6OkRvZXNQYXRoRXhpc3QodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/RG9lc1BhdGhFeGlzdEBDTWV0YUtleUBAUUFFSlBCR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENSTUNMaXN0Qm94SGVhZGVyOjpEb2VzUmVzcG9uZFRvQ29sdW1uV2lkdGhDaGFuZ2VzKHZvaWQpY29uc3QgDQorP0RvZXNSZXNwb25kVG9Db2x1bW5XaWR0aENoYW5nZXNAQ1JNQ0xpc3RCb3hIZWFkZXJAQFFCRUhYWg0KKzsgaW50IF9fc3RkY2FsbCBEb2VzVU5DU2hhcmVFeGlzdChjbGFzcyBDU3RyaW5nICYpDQorP0RvZXNVTkNTaGFyZUV4aXN0QEBZR0hBQVZDU3RyaW5nQEBAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDT0RMQm94OjpEcmF3Qml0bWFwKGNsYXNzIENSTUNMaXN0Qm94RHJhd1N0cnVjdCAmLGludCxpbnQpDQorP0RyYXdCaXRtYXBAQ09ETEJveEBASUFFSEFBVkNSTUNMaXN0Qm94RHJhd1N0cnVjdEBASEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDUk1DQ29tYm9Cb3g6OkRyYXdJdGVtKHN0cnVjdCB0YWdEUkFXSVRFTVNUUlVDVCAqKQ0KKz9EcmF3SXRlbUBDUk1DQ29tYm9Cb3hAQE1BRVhQQVV0YWdEUkFXSVRFTVNUUlVDVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3g6OkRyYXdJdGVtKHN0cnVjdCB0YWdEUkFXSVRFTVNUUlVDVCAqKQ0KKz9EcmF3SXRlbUBDUk1DTGlzdEJveEBATUFFWFBBVXRhZ0RSQVdJVEVNU1RSVUNUQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDUk1DQ29tYm9Cb3g6OkRyYXdJdGVtRXgoY2xhc3MgQ1JNQ0xpc3RCb3hEcmF3U3RydWN0ICYpDQorP0RyYXdJdGVtRXhAQ1JNQ0NvbWJvQm94QEBNQUVYQUFWQ1JNQ0xpc3RCb3hEcmF3U3RydWN0QEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDUk1DTGlzdEJveDo6RHJhd0l0ZW1FeChjbGFzcyBDUk1DTGlzdEJveERyYXdTdHJ1Y3QgJikNCis/RHJhd0l0ZW1FeEBDUk1DTGlzdEJveEBATUFFWEFBVkNSTUNMaXN0Qm94RHJhd1N0cnVjdEBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6RHVwbGljYXRlSW5MaXN0KGNsYXNzIENPYkxpc3RQbHVzICYpDQorP0R1cGxpY2F0ZUluTGlzdEBDSVBBY2Nlc3NEZXNjcmlwdG9yQEBRQUVIQUFWQ09iTGlzdFBsdXNAQEBaDQorOyB2b2lkIF9fc3RkY2FsbCBFZGl0SGlkZUJhbGxvb24odm9pZCkNCis/RWRpdEhpZGVCYWxsb29uQEBZR1hYWg0KKzsgdm9pZCBfX3N0ZGNhbGwgRWRpdFNob3dCYWxsb29uKHN0cnVjdCBIV05EX18gKix1bnNpZ25lZCBpbnQpDQorP0VkaXRTaG93QmFsbG9vbkBAWUdYUEFVSFdORF9fQEBJQFoNCis7IHZvaWQgX19zdGRjYWxsIEVkaXRTaG93QmFsbG9vbihzdHJ1Y3QgSFdORF9fICosY2xhc3MgQ1N0cmluZykNCis/RWRpdFNob3dCYWxsb29uQEBZR1hQQVVIV05EX19AQFZDU3RyaW5nQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1N0clBhc3N3b3JkOjpFbXB0eSh2b2lkKQ0KKz9FbXB0eUBDU3RyUGFzc3dvcmRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0lJU1dpemFyZFNoZWV0OjpFbmFibGVCdXR0b24oaW50LGludCkNCis/RW5hYmxlQnV0dG9uQENJSVNXaXphcmRTaGVldEBAUUFFWEhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENJSVNXaXphcmRQYWdlOjpFbmFibGVTaGVldEJ1dHRvbihpbnQsaW50KQ0KKz9FbmFibGVTaGVldEJ1dHRvbkBDSUlTV2l6YXJkUGFnZUBASUFFWEhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0hlYWRlckxpc3RCb3g6OkVuYWJsZVdpbmRvdyhpbnQpDQorP0VuYWJsZVdpbmRvd0BDSGVhZGVyTGlzdEJveEBAUUFFSEhAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkVudW1CYWNrdXBzKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyAqLHN0cnVjdCBfRklMRVRJTUUgKix1bnNpZ25lZCBsb25nKQ0KKz9FbnVtQmFja3Vwc0BDTWV0YUludGVyZmFjZUBASUFFSlBBR1BBS1BBVV9GSUxFVElNRUBAS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6RW51bURhdGEodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHN0cnVjdCBfTUVUQURBVEFfUkVDT1JEICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICopDQorP0VudW1EYXRhQENNZXRhSW50ZXJmYWNlQEBJQUVKS1BCR1BBVV9NRVRBREFUQV9SRUNPUkRAQEtQQUtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkVudW1IaXN0b3J5KHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcgKixzdHJ1Y3QgX0ZJTEVUSU1FICosdW5zaWduZWQgbG9uZykNCis/RW51bUhpc3RvcnlAQ01ldGFJbnRlcmZhY2VAQElBRUpQQUdQQUsxUEFVX0ZJTEVUSU1FQEBLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpFbnVtS2V5cyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBsb25nKQ0KKz9FbnVtS2V5c0BDTWV0YUludGVyZmFjZUBASUFFSktQQkdQQUdLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENJSVNBcHBQb29sOjpFbnVtZXJhdGVBcHBsaWNhdGlvbnMoY2xhc3MgQ1N0cmluZ0xpc3RFeCAmKQ0KKz9FbnVtZXJhdGVBcHBsaWNhdGlvbnNAQ0lJU0FwcFBvb2xAQFFBRUpBQVZDU3RyaW5nTGlzdEV4QEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ1dhbUludGVyZmFjZTo6RW51bWVyYXRlQXBwbGljYXRpb25zSW5Qb29sKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgKiAqKQ0KKz9FbnVtZXJhdGVBcHBsaWNhdGlvbnNJblBvb2xAQ1dhbUludGVyZmFjZUBASUFFSlBCR1BBUEFHQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgQ0Vycm9yOjpFeHBhbmRFc2NhcGVDb2RlKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCAqICYsY2xhc3MgQ1N0cmluZyAmLGxvbmcgJiljb25zdCANCis/RXhwYW5kRXNjYXBlQ29kZUBDRXJyb3JAQElCRUhQQUdLQUFQQUdBQVZDU3RyaW5nQEBBQUpAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRXJyb3I6OkZhaWxlZCh2b2lkKWNvbnN0IA0KKz9GYWlsZWRAQ0Vycm9yQEBRQkVIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0Vycm9yOjpGYWlsZWQobG9uZykNCis/RmFpbGVkQENFcnJvckBAU0dISkBaDQorOyBpbnQgX19zdGRjYWxsIEZldGNoSXBBZGRyZXNzRnJvbUNvbWJvKGNsYXNzIENDb21ib0JveCAmLGNsYXNzIENPYkxpc3RQbHVzICYsY2xhc3MgQ0lQQWRkcmVzcyAmKQ0KKz9GZXRjaElwQWRkcmVzc0Zyb21Db21ib0BAWUdIQUFWQ0NvbWJvQm94QEBBQVZDT2JMaXN0UGx1c0BAQUFWQ0lQQWRkcmVzc0BAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ09iTGlzdFBsdXM6OkZpbmRFbGVtZW50KGNsYXNzIENPYmplY3QgKiljb25zdCANCis/RmluZEVsZW1lbnRAQ09iTGlzdFBsdXNAQFFCRUhQQVZDT2JqZWN0QEBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgQ0Vycm9yOjpGaW5kRmFjaWxpdHkodW5zaWduZWQgbG9uZykNCis/RmluZEZhY2lsaXR5QENFcnJvckBAS0dQQkdLQFoNCis7IHZvaWQgX19zdGRjYWxsIEZpdFBhdGhUb0NvbnRyb2woY2xhc3MgQ1duZCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz9GaXRQYXRoVG9Db250cm9sQEBZR1hBQVZDV25kQEBQQkdIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENBY2Nlc3NFbnRyeTo6RmxhZ0ZvckRlbGV0aW9uKGludCkNCis/RmxhZ0ZvckRlbGV0aW9uQENBY2Nlc3NFbnRyeUBAUUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NvbUF1dGhJbmZvOjpGcmVlU2VydmVySW5mb1N0cnVjdChzdHJ1Y3QgX0NPU0VSVkVSSU5GTyAqKWNvbnN0IA0KKz9GcmVlU2VydmVySW5mb1N0cnVjdEBDQ29tQXV0aEluZm9AQFFCRVhQQVVfQ09TRVJWRVJJTkZPQEBAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDSW5oZXJpdGFuY2VEbGc6OkZyaWVuZGx5SW5zdGFuY2UoY2xhc3MgQ1N0cmluZyAmLGNsYXNzIENTdHJpbmcgJikNCis/RnJpZW5kbHlJbnN0YW5jZUBDSW5oZXJpdGFuY2VEbGdAQElBRUhBQVZDU3RyaW5nQEAwQFoNCis7IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19zdGRjYWxsIEdVSURUb0NTdHJpbmcoc3RydWN0IF9HVUlEIGNvbnN0ICYsY2xhc3MgQ1N0cmluZyAmKQ0KKz9HVUlEVG9DU3RyaW5nQEBZR1BCR0FCVV9HVUlEQEBBQVZDU3RyaW5nQEBAWg0KKzsgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgR2VuZXJhdGVSZWdpc3RyeUtleShjbGFzcyBDU3RyaW5nICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/R2VuZXJhdGVSZWdpc3RyeUtleUBAWUdQQkdBQVZDU3RyaW5nQEBQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkdldEFkbWluSW50ZXJmYWNlMihzdHJ1Y3QgSU1TQWRtaW5CYXNlMlcgKiAqKQ0KKz9HZXRBZG1pbkludGVyZmFjZTJAQ01ldGFJbnRlcmZhY2VAQFFBRUpQQVBBVUlNU0FkbWluQmFzZTJXQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkdldEFkbWluSW50ZXJmYWNlMyhzdHJ1Y3QgSU1TQWRtaW5CYXNlM1cgKiAqKQ0KKz9HZXRBZG1pbkludGVyZmFjZTNAQ01ldGFJbnRlcmZhY2VAQFFBRUpQQVBBVUlNU0FkbWluQmFzZTNXQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkdldEFsbERhdGEodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRBbGxEYXRhQENNZXRhSW50ZXJmYWNlQEBJQUVKS1BCR0tLS1BBSzFLUEFFMUBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDTWV0YUtleTo6R2V0QWxsRGF0YSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGNoYXIgKiAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0dldEFsbERhdGFAQ01ldGFLZXlAQElBRUpLS0tQQUswUEFQQUVQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1dhbUludGVyZmFjZTo6R2V0QXBwQWRtaW5JbnRlcmZhY2Uoc3RydWN0IElJSVNBcHBsaWNhdGlvbkFkbWluICogKikNCis/R2V0QXBwQWRtaW5JbnRlcmZhY2VAQ1dhbUludGVyZmFjZUBAUUFFSlBBUEFVSUlJU0FwcGxpY2F0aW9uQWRtaW5AQEBaDQorOyBwcm90ZWN0ZWQ6IHN0cnVjdCBIQlJVU0hfXyAqIF9fdGhpc2NhbGwgQ0lJU1dpemFyZFBhZ2U6OkdldEJhY2tncm91bmRCcnVzaCh2b2lkKWNvbnN0IA0KKz9HZXRCYWNrZ3JvdW5kQnJ1c2hAQ0lJU1dpemFyZFBhZ2VAQElCRVBBVUhCUlVTSF9fQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSEJSVVNIX18gKiBfX3RoaXNjYWxsIENJSVNXaXphcmRTaGVldDo6R2V0QmFja2dyb3VuZEJydXNoKHZvaWQpY29uc3QgDQorP0dldEJhY2tncm91bmRCcnVzaEBDSUlTV2l6YXJkU2hlZXRAQFFCRVBBVUhCUlVTSF9fQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ01ldGFLZXk6OkdldEJhc2Uodm9pZCljb25zdCANCis/R2V0QmFzZUBDTWV0YUtleUBAUUJFS1haDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIENGb250ICogX190aGlzY2FsbCBDSUlTV2l6YXJkUGFnZTo6R2V0QmlnRm9udCh2b2lkKQ0KKz9HZXRCaWdGb250QENJSVNXaXphcmRQYWdlQEBJQUVQQVZDRm9udEBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0ZvbnQgKiBfX3RoaXNjYWxsIENJSVNXaXphcmRTaGVldDo6R2V0QmlnRm9udCh2b2lkKQ0KKz9HZXRCaWdGb250QENJSVNXaXphcmRTaGVldEBAUUFFUEFWQ0ZvbnRAQFhaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIENEQyAqIF9fdGhpc2NhbGwgQ0lJU1dpemFyZFBhZ2U6OkdldEJpdG1hcE1lbURDKHZvaWQpDQorP0dldEJpdG1hcE1lbURDQENJSVNXaXphcmRQYWdlQEBJQUVQQVZDRENAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENEQyAqIF9fdGhpc2NhbGwgQ0lJU1dpemFyZFNoZWV0OjpHZXRCaXRtYXBNZW1EQyhpbnQpDQorP0dldEJpdG1hcE1lbURDQENJSVNXaXphcmRTaGVldEBAUUFFUEFWQ0RDQEBIQFoNCis7IHByb3RlY3RlZDogY2xhc3MgQ0ZvbnQgKiBfX3RoaXNjYWxsIENJSVNXaXphcmRQYWdlOjpHZXRCb2xkRm9udCh2b2lkKQ0KKz9HZXRCb2xkRm9udEBDSUlTV2l6YXJkUGFnZUBASUFFUEFWQ0ZvbnRAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENGb250ICogX190aGlzY2FsbCBDSUlTV2l6YXJkU2hlZXQ6OkdldEJvbGRGb250KHZvaWQpDQorP0dldEJvbGRGb250QENJSVNXaXphcmRTaGVldEBAUUFFUEFWQ0ZvbnRAQFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTdHJQYXNzd29yZDo6R2V0Qnl0ZUxlbmd0aCh2b2lkKWNvbnN0IA0KKz9HZXRCeXRlTGVuZ3RoQENTdHJQYXNzd29yZEBAUUJFSFhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6R2V0Q2hpbGRQYXRocyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGxvbmcgKikNCis/R2V0Q2hpbGRQYXRoc0BDTWV0YUludGVyZmFjZUBASUFFSktQQkdLUEFHUEFLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhS2V5OjpHZXRDaGlsZFBhdGhzKGNsYXNzIENTdHJpbmdMaXN0RXggJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9HZXRDaGlsZFBhdGhzQENNZXRhS2V5QEBRQUVKQUFWQ1N0cmluZ0xpc3RFeEBAUEJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIENTdHJQYXNzd29yZDo6R2V0Q2xlYXJUZXh0UGFzc3dvcmQodm9pZCkNCis/R2V0Q2xlYXJUZXh0UGFzc3dvcmRAQ1N0clBhc3N3b3JkQEBRQUVQQUdYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUk1DTGlzdEJveEhlYWRlcjo6R2V0Q29sdW1uV2lkdGgoaW50KWNvbnN0IA0KKz9HZXRDb2x1bW5XaWR0aEBDUk1DTGlzdEJveEhlYWRlckBAUUJFSEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDR2V0Q29tcHV0ZXI6OkdldENvbXB1dGVyKHN0cnVjdCBIV05EX18gKikNCis/R2V0Q29tcHV0ZXJAQ0dldENvbXB1dGVyQEBRQUVIUEFVSFdORF9fQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUk1DTGlzdEJveDo6R2V0Q3VyU2VsKHZvaWQpY29uc3QgDQorP0dldEN1clNlbEBDUk1DTGlzdEJveEBAUUJFSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIENCbG9iOjpHZXREYXRhKHZvaWQpDQorP0dldERhdGFAQ0Jsb2JAQFFBRVBBRVhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6R2V0RGF0YSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IF9NRVRBREFUQV9SRUNPUkQgKix1bnNpZ25lZCBsb25nICopDQorP0dldERhdGFAQ01ldGFJbnRlcmZhY2VAQElBRUpLUEJHUEFVX01FVEFEQVRBX1JFQ09SREBAUEFLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENJbmhlcml0YW5jZURsZzo6R2V0RGF0YVBhdGhzKHZvaWQpDQorP0dldERhdGFQYXRoc0BDSW5oZXJpdGFuY2VEbGdAQElBRUpYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkdldERhdGFQYXRocyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBsb25nICopDQorP0dldERhdGFQYXRoc0BDTWV0YUludGVyZmFjZUBASUFFSktQQkdLS0tQQUdQQUtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFLZXk6OkdldERhdGFQYXRocyhjbGFzcyBDU3RyaW5nTGlzdEV4ICYsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0dldERhdGFQYXRoc0BDTWV0YUtleUBAUUFFSkFBVkNTdHJpbmdMaXN0RXhAQEtLUEJHQFoNCis7IHZvaWQgX19zdGRjYWxsIEdldERsZ0N0bFJlY3Qoc3RydWN0IEhXTkRfXyAqLHN0cnVjdCBIV05EX18gKixzdHJ1Y3QgdGFnUkVDVCAqKQ0KKz9HZXREbGdDdGxSZWN0QEBZR1hQQVVIV05EX19AQDBQQVV0YWdSRUNUQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgQ0RpckJyb3dzZURsZzo6R2V0RnVsbFBhdGgoY2xhc3MgQ1N0cmluZyAmLGludCljb25zdCANCis/R2V0RnVsbFBhdGhAQ0RpckJyb3dzZURsZ0BAUUJFUEJHQUFWQ1N0cmluZ0BASEBaDQorOyB2b2lkIF9fc3RkY2FsbCBHZXRGdWxsUGF0aExvY2FsT3JSZW1vdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENTdHJpbmcgJikNCis/R2V0RnVsbFBhdGhMb2NhbE9yUmVtb3RlQEBZR1hQQkcwQUFWQ1N0cmluZ0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENNZXRhS2V5OjpHZXRIYW5kbGUodm9pZCljb25zdCANCis/R2V0SGFuZGxlQENNZXRhS2V5QEBRQkVLWFoNCis7IHByb3RlY3RlZDogY2xhc3MgQ1JNQ0xpc3RCb3hIZWFkZXIgKiBfX3RoaXNjYWxsIENIZWFkZXJMaXN0Qm94OjpHZXRIZWFkZXIodm9pZCkNCis/R2V0SGVhZGVyQENIZWFkZXJMaXN0Qm94QEBJQUVQQVZDUk1DTGlzdEJveEhlYWRlckBAWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgQ0hlYWRlckxpc3RCb3g6OkdldEhlYWRlckl0ZW0oaW50LHN0cnVjdCBfSERfSVRFTVcgKiljb25zdCANCis/R2V0SGVhZGVySXRlbUBDSGVhZGVyTGlzdEJveEBASUJFSEhQQVVfSERfSVRFTVdAQEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIENIZWFkZXJMaXN0Qm94OjpHZXRIZWFkZXJJdGVtQ291bnQodm9pZCljb25zdCANCis/R2V0SGVhZGVySXRlbUNvdW50QENIZWFkZXJMaXN0Qm94QEBJQkVIWFoNCis7IGludCBfX3N0ZGNhbGwgR2V0SVVzckFjY291bnQodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDV25kICosY2xhc3MgQ1N0cmluZyAmKQ0KKz9HZXRJVXNyQWNjb3VudEBAWUdIUEJHUEFWQ1duZEBAQUFWQ1N0cmluZ0BAQFoNCis7IGludCBfX3N0ZGNhbGwgR2V0SVVzckFjY291bnQodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDV25kICosdW5zaWduZWQgc2hvcnQgKixpbnQpDQorP0dldElVc3JBY2NvdW50QEBZR0hQQkdQQVZDV25kQEBQQUdIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENNZXRhYmFzZVBhdGg6OkdldEluc3RhbmNlTnVtYmVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0dldEluc3RhbmNlTnVtYmVyQENNZXRhYmFzZVBhdGhAQFNHS1BCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDTWV0YWJhc2VQYXRoOjpHZXRJbnN0YW5jZVBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDU3RyaW5nICYsY2xhc3MgQ1N0cmluZyAqKQ0KKz9HZXRJbnN0YW5jZVBhdGhAQ01ldGFiYXNlUGF0aEBAU0dQQkdQQkdBQVZDU3RyaW5nQEBQQVYyQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBJTVNBZG1pbkJhc2VXICogX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6R2V0SW50ZXJmYWNlKHZvaWQpDQorP0dldEludGVyZmFjZUBDTWV0YUludGVyZmFjZUBAUUFFUEFVSU1TQWRtaW5CYXNlV0BAWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hIZWFkZXI6OkdldEl0ZW0oaW50LHN0cnVjdCBfSERfSVRFTVcgKiljb25zdCANCis/R2V0SXRlbUBDUk1DTGlzdEJveEhlYWRlckBAUUJFSEhQQVVfSERfSVRFTVdAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENSTUNMaXN0Qm94SGVhZGVyOjpHZXRJdGVtQ291bnQodm9pZCljb25zdCANCis/R2V0SXRlbUNvdW50QENSTUNMaXN0Qm94SGVhZGVyQEBRQkVIWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpHZXRMYXN0Q2hhbmdlVGltZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IF9GSUxFVElNRSAqLGludCkNCis/R2V0TGFzdENoYW5nZVRpbWVAQ01ldGFJbnRlcmZhY2VAQElBRUpLUEJHUEFVX0ZJTEVUSU1FQEBIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19zdGRjYWxsIENNZXRhYmFzZVBhdGg6OkdldExhc3ROb2RlTmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENTdHJpbmcgJikNCis/R2V0TGFzdE5vZGVOYW1lQENNZXRhYmFzZVBhdGhAQFNHUEJHUEJHQUFWQ1N0cmluZ0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENFcnJvcjo6R2V0TGFzdFdpbkVycm9yKHZvaWQpDQorP0dldExhc3RXaW5FcnJvckBDRXJyb3JAQFFBRVhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDU3RyUGFzc3dvcmQ6OkdldExlbmd0aCh2b2lkKWNvbnN0IA0KKz9HZXRMZW5ndGhAQ1N0clBhc3N3b3JkQEBRQkVIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ01ldGFLZXk6OkdldE1ERmllbGREZWYodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICYsdW5zaWduZWQgbG9uZyAmLHVuc2lnbmVkIGxvbmcgJix1bnNpZ25lZCBsb25nICYpDQorP0dldE1ERmllbGREZWZAQ01ldGFLZXlAQFNHSEtBQUswMDBAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgQ01ldGFiYXNlUGF0aDo6R2V0TWFjaGluZVBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDU3RyaW5nICYsY2xhc3MgQ1N0cmluZyAqKQ0KKz9HZXRNYWNoaW5lUGF0aEBDTWV0YWJhc2VQYXRoQEBTR1BCR1BCR0FBVkNTdHJpbmdAQFBBVjJAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fdGhpc2NhbGwgQ0NvbmZpcm1EbGc6OkdldE1lc3NhZ2VNYXAodm9pZCljb25zdCANCis/R2V0TWVzc2FnZU1hcEBDQ29uZmlybURsZ0BATUJFUEJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fdGhpc2NhbGwgQ0VtcGhhc2l6ZWREaWFsb2c6OkdldE1lc3NhZ2VNYXAodm9pZCljb25zdCANCis/R2V0TWVzc2FnZU1hcEBDRW1waGFzaXplZERpYWxvZ0BATUJFUEJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fdGhpc2NhbGwgQ0hlYWRlckxpc3RCb3g6OkdldE1lc3NhZ2VNYXAodm9pZCljb25zdCANCis/R2V0TWVzc2FnZU1hcEBDSGVhZGVyTGlzdEJveEBATUJFUEJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fdGhpc2NhbGwgQ0lJU1dpemFyZEJvb2tFbmQ6OkdldE1lc3NhZ2VNYXAodm9pZCljb25zdCANCis/R2V0TWVzc2FnZU1hcEBDSUlTV2l6YXJkQm9va0VuZEBATUJFUEJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fdGhpc2NhbGwgQ0lJU1dpemFyZFBhZ2U6OkdldE1lc3NhZ2VNYXAodm9pZCljb25zdCANCis/R2V0TWVzc2FnZU1hcEBDSUlTV2l6YXJkUGFnZUBATUJFUEJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fdGhpc2NhbGwgQ0lJU1dpemFyZFNoZWV0OjpHZXRNZXNzYWdlTWFwKHZvaWQpY29uc3QgDQorP0dldE1lc3NhZ2VNYXBAQ0lJU1dpemFyZFNoZWV0QEBNQkVQQlVBRlhfTVNHTUFQQEBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHN0cnVjdCBBRlhfTVNHTUFQIGNvbnN0ICogX190aGlzY2FsbCBDSW5oZXJpdGFuY2VEbGc6OkdldE1lc3NhZ2VNYXAodm9pZCljb25zdCANCis/R2V0TWVzc2FnZU1hcEBDSW5oZXJpdGFuY2VEbGdAQE1CRVBCVUFGWF9NU0dNQVBAQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgc3RydWN0IEFGWF9NU0dNQVAgY29uc3QgKiBfX3RoaXNjYWxsIENSTUNDb21ib0JveDo6R2V0TWVzc2FnZU1hcCh2b2lkKWNvbnN0IA0KKz9HZXRNZXNzYWdlTWFwQENSTUNDb21ib0JveEBATUJFUEJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3g6OkdldE1lc3NhZ2VNYXAodm9pZCljb25zdCANCis/R2V0TWVzc2FnZU1hcEBDUk1DTGlzdEJveEBATUJFUEJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hIZWFkZXI6OkdldE1lc3NhZ2VNYXAodm9pZCljb25zdCANCis/R2V0TWVzc2FnZU1hcEBDUk1DTGlzdEJveEhlYWRlckBATUJFUEJVQUZYX01TR01BUEBAWFoNCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBDTWV0YUtleTo6dGFnTURGSUVMRERFRiBjb25zdCAqIF9fc3RkY2FsbCBDTWV0YUtleTo6R2V0TWV0YVByb3AodW5zaWduZWQgbG9uZykNCis/R2V0TWV0YVByb3BAQ01ldGFLZXlAQFNHUEJVdGFnTURGSUVMRERFRkAxQEtAWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBDUk1DTGlzdEJveDo6R2V0TmV4dFNlbGVjdGVkSXRlbShpbnQgKikNCis/R2V0TmV4dFNlbGVjdGVkSXRlbUBDUk1DTGlzdEJveEBAUUFFUEFYUEFIQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyAmIF9fdGhpc2NhbGwgQ0NvbmZpcm1EbGc6OkdldFBhc3N3b3JkKHZvaWQpDQorP0dldFBhc3N3b3JkQENDb25maXJtRGxnQEBRQUVBQVZDU3RyaW5nQEBYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0lJU0FwcFBvb2w6OkdldFByb2Nlc3NNb2RlKHVuc2lnbmVkIGxvbmcgKikNCis/R2V0UHJvY2Vzc01vZGVAQ0lJU0FwcFBvb2xAQFFBRUpQQUtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ1dhbUludGVyZmFjZTo6R2V0UHJvY2Vzc01vZGUodW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRQcm9jZXNzTW9kZUBDV2FtSW50ZXJmYWNlQEBJQUVKUEFLQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ01ldGFLZXk6OkdldFByb3BlcnR5RGVzY3JpcHRpb24odW5zaWduZWQgbG9uZyxjbGFzcyBDU3RyaW5nICYpDQorP0dldFByb3BlcnR5RGVzY3JpcHRpb25AQ01ldGFLZXlAQFNHSEtBQVZDU3RyaW5nQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFLZXk6OkdldFByb3BlcnR5VmFsdWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICYsdm9pZCAqICYsdW5zaWduZWQgbG9uZyAqLGludCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRQcm9wZXJ0eVZhbHVlQENNZXRhS2V5QEBJQUVKS0FBS0FBUEFYUEFLUEFIUEJHMkBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENPRExCb3g6OkdldFJlcXVpcmVkV2lkdGgoY2xhc3MgQ0RDICosY2xhc3MgQ1JlY3QgY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/R2V0UmVxdWlyZWRXaWR0aEBDT0RMQm94QEBLR0hQQVZDRENAQEFCVkNSZWN0QEBQQkdIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19zdGRjYWxsIENNZXRhYmFzZVBhdGg6OkdldFJvb3RQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1N0cmluZyAmLGNsYXNzIENTdHJpbmcgKikNCis/R2V0Um9vdFBhdGhAQ01ldGFiYXNlUGF0aEBAU0dQQkdQQkdBQVZDU3RyaW5nQEBQQVYyQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgc3RydWN0IENSdW50aW1lQ2xhc3MgKiBfX3RoaXNjYWxsIENFbXBoYXNpemVkRGlhbG9nOjpHZXRSdW50aW1lQ2xhc3Modm9pZCljb25zdCANCis/R2V0UnVudGltZUNsYXNzQENFbXBoYXNpemVkRGlhbG9nQEBVQkVQQVVDUnVudGltZUNsYXNzQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCBDUnVudGltZUNsYXNzICogX190aGlzY2FsbCBDSGVhZGVyTGlzdEJveDo6R2V0UnVudGltZUNsYXNzKHZvaWQpY29uc3QgDQorP0dldFJ1bnRpbWVDbGFzc0BDSGVhZGVyTGlzdEJveEBAVUJFUEFVQ1J1bnRpbWVDbGFzc0BAWFoNCis7IHB1YmxpYzogdmlydHVhbCBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyAqIF9fdGhpc2NhbGwgQ0lJU1dpemFyZEJvb2tFbmQ6OkdldFJ1bnRpbWVDbGFzcyh2b2lkKWNvbnN0IA0KKz9HZXRSdW50aW1lQ2xhc3NAQ0lJU1dpemFyZEJvb2tFbmRAQFVCRVBBVUNSdW50aW1lQ2xhc3NAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgc3RydWN0IENSdW50aW1lQ2xhc3MgKiBfX3RoaXNjYWxsIENJSVNXaXphcmRQYWdlOjpHZXRSdW50aW1lQ2xhc3Modm9pZCljb25zdCANCis/R2V0UnVudGltZUNsYXNzQENJSVNXaXphcmRQYWdlQEBVQkVQQVVDUnVudGltZUNsYXNzQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCBDUnVudGltZUNsYXNzICogX190aGlzY2FsbCBDSUlTV2l6YXJkU2hlZXQ6OkdldFJ1bnRpbWVDbGFzcyh2b2lkKWNvbnN0IA0KKz9HZXRSdW50aW1lQ2xhc3NAQ0lJU1dpemFyZFNoZWV0QEBVQkVQQVVDUnVudGltZUNsYXNzQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCBDUnVudGltZUNsYXNzICogX190aGlzY2FsbCBDUk1DQ29tYm9Cb3g6OkdldFJ1bnRpbWVDbGFzcyh2b2lkKWNvbnN0IA0KKz9HZXRSdW50aW1lQ2xhc3NAQ1JNQ0NvbWJvQm94QEBVQkVQQVVDUnVudGltZUNsYXNzQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCBDUnVudGltZUNsYXNzICogX190aGlzY2FsbCBDUk1DTGlzdEJveDo6R2V0UnVudGltZUNsYXNzKHZvaWQpY29uc3QgDQorP0dldFJ1bnRpbWVDbGFzc0BDUk1DTGlzdEJveEBAVUJFUEFVQ1J1bnRpbWVDbGFzc0BAWFoNCis7IHB1YmxpYzogdmlydHVhbCBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyAqIF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hIZWFkZXI6OkdldFJ1bnRpbWVDbGFzcyh2b2lkKWNvbnN0IA0KKz9HZXRSdW50aW1lQ2xhc3NAQ1JNQ0xpc3RCb3hIZWFkZXJAQFVCRVBBVUNSdW50aW1lQ2xhc3NAQFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENSTUNMaXN0Qm94OjpHZXRTZWwoaW50KWNvbnN0IA0KKz9HZXRTZWxAQ1JNQ0xpc3RCb3hAQFFCRUhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3g6OkdldFNlbENvdW50KHZvaWQpY29uc3QgDQorP0dldFNlbENvdW50QENSTUNMaXN0Qm94QEBRQkVIWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3g6OkdldFNlbGVjdGVkTGlzdEl0ZW0oaW50ICopDQorP0dldFNlbGVjdGVkTGlzdEl0ZW1AQ1JNQ0xpc3RCb3hAQFFBRVBBWFBBSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDTWV0YWJhc2VQYXRoOjpHZXRTZXJ2aWNlSW5mb1BhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDU3RyaW5nICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/R2V0U2VydmljZUluZm9QYXRoQENNZXRhYmFzZVBhdGhAQFNHUEJHUEJHQUFWQ1N0cmluZ0BAMEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDTWV0YWJhc2VQYXRoOjpHZXRTZXJ2aWNlUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENTdHJpbmcgJixjbGFzcyBDU3RyaW5nICopDQorP0dldFNlcnZpY2VQYXRoQENNZXRhYmFzZVBhdGhAQFNHUEJHUEJHQUFWQ1N0cmluZ0BAUEFWMkBAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDSUlTV2l6YXJkU2hlZXQgKiBfX3RoaXNjYWxsIENJSVNXaXphcmRQYWdlOjpHZXRTaGVldCh2b2lkKWNvbnN0IA0KKz9HZXRTaGVldEBDSUlTV2l6YXJkUGFnZUBASUJFUEFWQ0lJU1dpemFyZFNoZWV0QEBYWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBDQWNjZXNzRW50cnk6OkdldFNpZCh2b2lkKQ0KKz9HZXRTaWRAQ0FjY2Vzc0VudHJ5QEBRQUVQQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0Jsb2I6OkdldFNpemUodm9pZCljb25zdCANCis/R2V0U2l6ZUBDQmxvYkBAUUJFS1haDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIENGb250ICogX190aGlzY2FsbCBDSUlTV2l6YXJkUGFnZTo6R2V0U3BlY2lhbEZvbnQodm9pZCkNCis/R2V0U3BlY2lhbEZvbnRAQ0lJU1dpemFyZFBhZ2VAQElBRVBBVkNGb250QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDRm9udCAqIF9fdGhpc2NhbGwgQ0lJU1dpemFyZFNoZWV0OjpHZXRTcGVjaWFsRm9udChpbnQpDQorP0dldFNwZWNpYWxGb250QENJSVNXaXphcmRTaGVldEBAUUFFUEFWQ0ZvbnRAQEhAWg0KKzsgaW50IF9fc3RkY2FsbCBHZXRTcGVjaWFsUGF0aFJlYWxQYXRoKGludCxjbGFzcyBDU3RyaW5nIGNvbnN0ICYsY2xhc3MgQ1N0cmluZyAmKQ0KKz9HZXRTcGVjaWFsUGF0aFJlYWxQYXRoQEBZR0hIQUJWQ1N0cmluZ0BAQUFWMUBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hSZXNvdXJjZXM6OkdldFN5c0NvbG9ycyh2b2lkKQ0KKz9HZXRTeXNDb2xvcnNAQ1JNQ0xpc3RCb3hSZXNvdXJjZXNAQElBRVhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OkdldFN5c3RlbUNoYW5nZU51bWJlcih1bnNpZ25lZCBsb25nICopDQorP0dldFN5c3RlbUNoYW5nZU51bWJlckBDTWV0YUludGVyZmFjZUBAUUFFSlBBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIENPRExCb3g6OkdldFRhYihpbnQpY29uc3QgDQorP0dldFRhYkBDT0RMQm94QEBRQkVJSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENHZXRVc2Vyczo6R2V0VXNlcnMoc3RydWN0IEhXTkRfXyAqLGludCkNCis/R2V0VXNlcnNAQ0dldFVzZXJzQEBRQUVIUEFVSFdORF9fQEBIQFoNCis7IGludCBfX3N0ZGNhbGwgR2V0Vm9sdW1lSW5mb3JtYXRpb25TeXN0ZW1GbGFncyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcgKikNCis/R2V0Vm9sdW1lSW5mb3JtYXRpb25TeXN0ZW1GbGFnc0BAWUdIUEJHUEFLQFoNCis7IHByb3RlY3RlZDogY2xhc3MgQ0JydXNoICogX190aGlzY2FsbCBDSUlTV2l6YXJkUGFnZTo6R2V0V2luZG93QnJ1c2godm9pZCkNCis/R2V0V2luZG93QnJ1c2hAQ0lJU1dpemFyZFBhZ2VAQElBRVBBVkNCcnVzaEBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0JydXNoICogX190aGlzY2FsbCBDSUlTV2l6YXJkU2hlZXQ6OkdldFdpbmRvd0JydXNoKHZvaWQpDQorP0dldFdpbmRvd0JydXNoQENJSVNXaXphcmRTaGVldEBAUUFFUEFWQ0JydXNoQEBYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6R3JhbnRBY2Nlc3MoaW50KQ0KKz9HcmFudEFjY2Vzc0BDSVBBY2Nlc3NEZXNjcmlwdG9yQEBRQUVYSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRXJyb3I6OkhSZXN1bHQodm9pZCljb25zdCANCis/SFJlc3VsdEBDRXJyb3JAQFFCRUpYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ0Vycm9yOjpIUmVzdWx0KGxvbmcpDQorP0hSZXN1bHRAQ0Vycm9yQEBTR0pKQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6SGFzQWNjZXNzKHZvaWQpY29uc3QgDQorP0hhc0FjY2Vzc0BDSVBBY2Nlc3NEZXNjcmlwdG9yQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0FjY2Vzc0VudHJ5OjpIYXNBcHByb3ByaWF0ZUFjY2Vzcyh1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9IYXNBcHByb3ByaWF0ZUFjY2Vzc0BDQWNjZXNzRW50cnlAQFFCRUhLQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgQ0lJU1N2Y0NvbnRyb2w6Okhhc0ludGVyZmFjZSh2b2lkKWNvbnN0IA0KKz9IYXNJbnRlcmZhY2VAQ0lJU1N2Y0NvbnRyb2xAQElCRUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6SGFzSW50ZXJmYWNlKHZvaWQpY29uc3QgDQorP0hhc0ludGVyZmFjZUBDTWV0YUludGVyZmFjZUBASUJFSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIENXYW1JbnRlcmZhY2U6Okhhc0ludGVyZmFjZSh2b2lkKWNvbnN0IA0KKz9IYXNJbnRlcmZhY2VAQ1dhbUludGVyZmFjZUBASUJFSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIENFcnJvcjo6SGFzT3ZlcnJpZGUodW5zaWduZWQgaW50ICopY29uc3QgDQorP0hhc092ZXJyaWRlQENFcnJvckBASUJFSFBBSUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENBY2Nlc3NFbnRyeTo6SGFzU29tZUFjY2Vzcyh2b2lkKWNvbnN0IA0KKz9IYXNTb21lQWNjZXNzQENBY2Nlc3NFbnRyeUBAUUJFSFhaDQorOyBwdWJsaWM6IGNsYXNzIENPYmplY3QgKiBfX3RoaXNjYWxsIENPYkxpc3RQbHVzOjpJbmRleChpbnQpDQorP0luZGV4QENPYkxpc3RQbHVzQEBRQUVQQVZDT2JqZWN0QEBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDSGVhZGVyTGlzdEJveDo6SW5pdGlhbGl6ZSh2b2lkKQ0KKz9Jbml0aWFsaXplQENIZWFkZXJMaXN0Qm94QEBVQUVIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0lOdW1iZXI6OkluaXRpYWxpemUoaW50KQ0KKz9Jbml0aWFsaXplQENJTnVtYmVyQEBTR0hIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENJbmhlcml0YW5jZURsZzo6SW5pdGlhbGl6ZSh2b2lkKQ0KKz9Jbml0aWFsaXplQENJbmhlcml0YW5jZURsZ0BASUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ09ETEJveDo6SW5pdGlhbGl6ZSh2b2lkKQ0KKz9Jbml0aWFsaXplQENPRExCb3hAQE1BRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENSTUNDb21ib0JveDo6SW5pdGlhbGl6ZSh2b2lkKQ0KKz9Jbml0aWFsaXplQENSTUNDb21ib0JveEBAVUFFSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3g6OkluaXRpYWxpemUodm9pZCkNCis/SW5pdGlhbGl6ZUBDUk1DTGlzdEJveEBAVUFFSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIENIZWFkZXJMaXN0Qm94OjpJbnNlcnRDb2x1bW4oaW50LGludCx1bnNpZ25lZCBpbnQsc3RydWN0IEhJTlNUQU5DRV9fICopDQorP0luc2VydENvbHVtbkBDSGVhZGVyTGlzdEJveEBASUFFSEhISVBBVUhJTlNUQU5DRV9fQEBAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDSGVhZGVyTGlzdEJveDo6SW5zZXJ0SGVhZGVySXRlbShpbnQsc3RydWN0IF9IRF9JVEVNVyAqKQ0KKz9JbnNlcnRIZWFkZXJJdGVtQENIZWFkZXJMaXN0Qm94QEBJQUVISFBBVV9IRF9JVEVNV0BAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hIZWFkZXI6Okluc2VydEl0ZW0oaW50LHN0cnVjdCBfSERfSVRFTVcgKikNCis/SW5zZXJ0SXRlbUBDUk1DTGlzdEJveEhlYWRlckBAUUFFSEhQQVVfSERfSVRFTVdAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDT0RMQm94OjpJbnNlcnRUYWIoaW50LHVuc2lnbmVkIGludCkNCis/SW5zZXJ0VGFiQENPRExCb3hAQFFBRVhISUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUk1DTGlzdEJveDo6SW52YWxpZGF0ZVNlbGVjdGlvbihpbnQpDQorP0ludmFsaWRhdGVTZWxlY3Rpb25AQ1JNQ0xpc3RCb3hAQFFBRVhIQFoNCis7IGxvbmcgX19zdGRjYWxsIElzQWxsTnVtSG9zdEhlYWRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Jc0FsbE51bUhvc3RIZWFkZXJAQFlHSlBCR0BaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENJTnVtYmVyOjpJc0FsbG9jYXRlZCh2b2lkKQ0KKz9Jc0FsbG9jYXRlZEBDSU51bWJlckBAS0dIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lQQWRkcmVzczo6SXNCYWRWYWx1ZSh2b2lkKWNvbnN0IA0KKz9Jc0JhZFZhbHVlQENJUEFkZHJlc3NAQFFCRUhYWg0KKzsgaW50IF9fc3RkY2FsbCBJc0JpRGlMb2NhbGl6ZWRTeXN0ZW0odm9pZCkNCis/SXNCaURpTG9jYWxpemVkU3lzdGVtQEBZR0hYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQWNjZXNzRW50cnk6OklzRGVsZXRhYmxlKHZvaWQpY29uc3QgDQorP0lzRGVsZXRhYmxlQENBY2Nlc3NFbnRyeUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENBY2Nlc3NFbnRyeTo6SXNEZWxldGVkKHZvaWQpY29uc3QgDQorP0lzRGVsZXRlZEBDQWNjZXNzRW50cnlAQFFCRUhYWg0KKzsgaW50IF9fc3RkY2FsbCBJc0RldmljZVBhdGgoY2xhc3MgQ1N0cmluZyBjb25zdCAmKQ0KKz9Jc0RldmljZVBhdGhAQFlHSEFCVkNTdHJpbmdAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENBY2Nlc3NFbnRyeTo6SXNEaXJ0eSh2b2lkKWNvbnN0IA0KKz9Jc0RpcnR5QENBY2Nlc3NFbnRyeUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENPYmpIZWxwZXI6OklzRGlydHkodm9pZCljb25zdCANCis/SXNEaXJ0eUBDT2JqSGVscGVyQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6SXNEb21haW5OYW1lKHZvaWQpY29uc3QgDQorP0lzRG9tYWluTmFtZUBDSVBBY2Nlc3NEZXNjcmlwdG9yQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0Jsb2I6OklzRW1wdHkodm9pZCljb25zdCANCis/SXNFbXB0eUBDQmxvYkBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJbmhlcml0YW5jZURsZzo6SXNFbXB0eSh2b2lkKWNvbnN0IA0KKz9Jc0VtcHR5QENJbmhlcml0YW5jZURsZ0BAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTdHJQYXNzd29yZDo6SXNFbXB0eSh2b2lkKWNvbnN0IA0KKz9Jc0VtcHR5QENTdHJQYXNzd29yZEBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJSVNBcHBsaWNhdGlvbjo6SXNFbmFibGVkQXBwbGljYXRpb24odm9pZCljb25zdCANCis/SXNFbmFibGVkQXBwbGljYXRpb25AQ0lJU0FwcGxpY2F0aW9uQEBRQkVIWFoNCis7IGludCBfX3N0ZGNhbGwgSXNGdWxseVF1YWxpZmllZFBhdGgoY2xhc3MgQ1N0cmluZyBjb25zdCAmKQ0KKz9Jc0Z1bGx5UXVhbGlmaWVkUGF0aEBAWUdIQUJWQ1N0cmluZ0BAQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgQ0lJU1dpemFyZFBhZ2U6OklzSGVhZGVyUGFnZSh2b2lkKWNvbnN0IA0KKz9Jc0hlYWRlclBhZ2VAQ0lJU1dpemFyZFBhZ2VAQElCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDTWV0YUtleTo6SXNIb21lRGlyZWN0b3J5UGF0aCh2b2lkKWNvbnN0IA0KKz9Jc0hvbWVEaXJlY3RvcnlQYXRoQENNZXRhS2V5QEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ01ldGFiYXNlUGF0aDo6SXNIb21lRGlyZWN0b3J5UGF0aCh2b2lkKWNvbnN0IA0KKz9Jc0hvbWVEaXJlY3RvcnlQYXRoQENNZXRhYmFzZVBhdGhAQFFCRUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDTWV0YWJhc2VQYXRoOjpJc0hvbWVEaXJlY3RvcnlQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0lzSG9tZURpcmVjdG9yeVBhdGhAQ01ldGFiYXNlUGF0aEBAU0dIUEJHQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0lOdW1iZXI6OklzSW5pdGlhbGl6ZWQodm9pZCkNCis/SXNJbml0aWFsaXplZEBDSU51bWJlckBAU0dIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lJU0FwcGxpY2F0aW9uOjpJc0lucHJvYyh2b2lkKWNvbnN0IA0KKz9Jc0lucHJvY0BDSUlTQXBwbGljYXRpb25AQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ29tQXV0aEluZm86OklzTG9jYWwodm9pZCljb25zdCANCis/SXNMb2NhbEBDQ29tQXV0aEluZm9AQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSUlTSW50ZXJmYWNlOjpJc0xvY2FsKHZvaWQpY29uc3QgDQorP0lzTG9jYWxAQ0lJU0ludGVyZmFjZUBAUUJFSFhaDQorOyBpbnQgX19zdGRjYWxsIElzTG9jYWxDb21wdXRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Jc0xvY2FsQ29tcHV0ZXJAQFlHSFBCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENNZXRhYmFzZVBhdGg6OklzTWFzdGVySW5zdGFuY2UodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/SXNNYXN0ZXJJbnN0YW5jZUBDTWV0YWJhc2VQYXRoQEBTR0hQQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDUk1DTGlzdEJveDo6SXNNdWx0aVNlbGVjdCh2b2lkKWNvbnN0IA0KKz9Jc011bHRpU2VsZWN0QENSTUNMaXN0Qm94QEBJQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6SXNNdWx0aXBsZSh2b2lkKWNvbnN0IA0KKz9Jc011bHRpcGxlQENJUEFjY2Vzc0Rlc2NyaXB0b3JAQFFCRUhYWg0KKzsgaW50IF9fc3RkY2FsbCBJc05ldHdvcmtQYXRoKGNsYXNzIENTdHJpbmcgY29uc3QgJixjbGFzcyBDU3RyaW5nICosY2xhc3MgQ1N0cmluZyAqKQ0KKz9Jc05ldHdvcmtQYXRoQEBZR0hBQlZDU3RyaW5nQEBQQVYxQDFAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDTWV0YUtleTo6SXNPcGVuKHZvaWQpY29uc3QgDQorP0lzT3BlbkBDTWV0YUtleUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJSVNBcHBsaWNhdGlvbjo6SXNPdXRPZlByb2Modm9pZCljb25zdCANCis/SXNPdXRPZlByb2NAQ0lJU0FwcGxpY2F0aW9uQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lJU0FwcGxpY2F0aW9uOjpJc1Bvb2xlZFByb2Modm9pZCljb25zdCANCis/SXNQb29sZWRQcm9jQENJSVNBcHBsaWNhdGlvbkBAUUJFSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENNZXRhS2V5OjpJc1Byb3BlcnR5SW5oZXJpdGFibGUodW5zaWduZWQgbG9uZykNCis/SXNQcm9wZXJ0eUluaGVyaXRhYmxlQENNZXRhS2V5QEBTR0hLQFoNCis7IGludCBfX3N0ZGNhbGwgSXNSZXN0cmljdGVkRmlsZW5hbWUoY2xhc3MgQ1N0cmluZyBjb25zdCAmKQ0KKz9Jc1Jlc3RyaWN0ZWRGaWxlbmFtZUBAWUdIQUJWQ1N0cmluZ0BAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0FjY2Vzc0VudHJ5OjpJc1NJRFJlc29sdmVkKHZvaWQpY29uc3QgDQorP0lzU0lEUmVzb2x2ZWRAQ0FjY2Vzc0VudHJ5QEBRQkVIWFoNCis7IGludCBfX3N0ZGNhbGwgSXNTZXJ2ZXJMb2NhbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Jc1NlcnZlckxvY2FsQEBZR0hQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSVBBY2Nlc3NEZXNjcmlwdG9yOjpJc1NpbmdsZSh2b2lkKWNvbnN0IA0KKz9Jc1NpbmdsZUBDSVBBY2Nlc3NEZXNjcmlwdG9yQEBRQkVIWFoNCis7IGludCBfX3N0ZGNhbGwgSXNTcGVjaWFsUGF0aChjbGFzcyBDU3RyaW5nIGNvbnN0ICYsaW50LGludCkNCis/SXNTcGVjaWFsUGF0aEBAWUdIQUJWQ1N0cmluZ0BASEhAWg0KKzsgaW50IF9fc3RkY2FsbCBJc1VOQ05hbWUoY2xhc3MgQ1N0cmluZyBjb25zdCAmKQ0KKz9Jc1VOQ05hbWVAQFlHSEFCVkNTdHJpbmdAQEBaDQorOyBpbnQgX19zdGRjYWxsIElzVVJMTmFtZShjbGFzcyBDU3RyaW5nIGNvbnN0ICYpDQorP0lzVVJMTmFtZUBAWUdIQUJWQ1N0cmluZ0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDT2JqSGVscGVyOjpJc1ZhbGlkKHZvaWQpY29uc3QgDQorP0lzVmFsaWRAQ09iakhlbHBlckBAVUJFSFhaDQorOyBsb25nIF9fc3RkY2FsbCBJc1ZhbGlkSG9zdEhlYWRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Jc1ZhbGlkSG9zdEhlYWRlckBAWUdKUEJHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0FjY2Vzc0VudHJ5OjpJc1Zpc2libGUodm9pZCljb25zdCANCis/SXNWaXNpYmxlQENBY2Nlc3NFbnRyeUBAUUJFSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIENJSVNXaXphcmRCb29rRW5kOjpJc1dlbGNvbWVQYWdlKHZvaWQpY29uc3QgDQorP0lzV2VsY29tZVBhZ2VAQ0lJU1dpemFyZEJvb2tFbmRAQElCRUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDSUlTV2l6YXJkUGFnZTo6SXNXaXphcmQ5Nyh2b2lkKWNvbnN0IA0KKz9Jc1dpemFyZDk3QENJSVNXaXphcmRQYWdlQEBJQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lJU1dpemFyZFNoZWV0OjpJc1dpemFyZDk3KHZvaWQpY29uc3QgDQorP0lzV2l6YXJkOTdAQ0lJU1dpemFyZFNoZWV0QEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lQQWRkcmVzczo6SXNaZXJvVmFsdWUodm9pZCljb25zdCANCis/SXNaZXJvVmFsdWVAQ0lQQWRkcmVzc0BAUUJFSFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDSUlTU3ZjQ29udHJvbDo6S2lsbCh2b2lkKQ0KKz9LaWxsQENJSVNTdmNDb250cm9sQEBRQUVKWFoNCis7IGxvbmcgX19zdGRjYWxsIExpbWl0SW5wdXREb21haW5OYW1lKHN0cnVjdCBIV05EX18gKikNCis/TGltaXRJbnB1dERvbWFpbk5hbWVAQFlHSlBBVUhXTkRfX0BAQFoNCis7IGxvbmcgX19zdGRjYWxsIExpbWl0SW5wdXRQYXRoKHN0cnVjdCBIV05EX18gKixpbnQpDQorP0xpbWl0SW5wdXRQYXRoQEBZR0pQQVVIV05EX19AQEhAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDTWFwcGVkQml0bWFwQnV0dG9uOjpMb2FkTWFwcGVkQml0bWFwcyh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP0xvYWRNYXBwZWRCaXRtYXBzQENNYXBwZWRCaXRtYXBCdXR0b25AQElBRUhJSUlJQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0ICogX19zdGRjYWxsIENJUEFkZHJlc3M6OkxvbmdUb1N0cmluZyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICosaW50KQ0KKz9Mb25nVG9TdHJpbmdAQ0lQQWRkcmVzc0BAU0dQQUdLUEFHSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDSVBBZGRyZXNzOjpMb25nVG9TdHJpbmcodW5zaWduZWQgbG9uZyxjbGFzcyBBVEw6OkNDb21CU1RSICYpDQorP0xvbmdUb1N0cmluZ0BDSVBBZGRyZXNzQEBTR1BCR0tBQVZDQ29tQlNUUkBBVExAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDSVBBZGRyZXNzOjpMb25nVG9TdHJpbmcodW5zaWduZWQgbG9uZyxjbGFzcyBDU3RyaW5nICYpDQorP0xvbmdUb1N0cmluZ0BDSVBBZGRyZXNzQEBTR1BCR0tBQVZDU3RyaW5nQEBAWg0KKzsgaW50IF9fc3RkY2FsbCBMb29rc0xpa2VJUEFkZHJlc3ModW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/TG9va3NMaWtlSVBBZGRyZXNzQEBZR0hQQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDQWNjZXNzRW50cnk6Okxvb2t1cEFjY291bnRTaWRXKGNsYXNzIENTdHJpbmcgJixpbnQgJix2b2lkICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/TG9va3VwQWNjb3VudFNpZFdAQ0FjY2Vzc0VudHJ5QEBTR0hBQVZDU3RyaW5nQEBBQUhQQVhQQkdAWg0KKzsgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgTWFrZVVOQ1BhdGgoY2xhc3MgQ1N0cmluZyAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/TWFrZVVOQ1BhdGhAQFlHUEJHQUFWQ1N0cmluZ0BAUEJHMUBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENNZXRhS2V5OjpNYXBNRElEVG9UYWJsZUluZGV4KHVuc2lnbmVkIGxvbmcpDQorP01hcE1ESURUb1RhYmxlSW5kZXhAQ01ldGFLZXlAQFNHSEtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0FjY2Vzc0VudHJ5OjpNYXJrRW50cnlBc0NoYW5nZWQodm9pZCkNCis/TWFya0VudHJ5QXNDaGFuZ2VkQENBY2Nlc3NFbnRyeUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQWNjZXNzRW50cnk6Ok1hcmtFbnRyeUFzQ2xlYW4odm9pZCkNCis/TWFya0VudHJ5QXNDbGVhbkBDQWNjZXNzRW50cnlAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0FjY2Vzc0VudHJ5OjpNYXJrRW50cnlBc05ldyh2b2lkKQ0KKz9NYXJrRW50cnlBc05ld0BDQWNjZXNzRW50cnlAQFFBRVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDUk1DQ29tYm9Cb3g6Ok1lYXN1cmVJdGVtKHN0cnVjdCB0YWdNRUFTVVJFSVRFTVNUUlVDVCAqKQ0KKz9NZWFzdXJlSXRlbUBDUk1DQ29tYm9Cb3hAQE1BRVhQQVV0YWdNRUFTVVJFSVRFTVNUUlVDVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3g6Ok1lYXN1cmVJdGVtKHN0cnVjdCB0YWdNRUFTVVJFSVRFTVNUUlVDVCAqKQ0KKz9NZWFzdXJlSXRlbUBDUk1DTGlzdEJveEBATUFFWFBBVXRhZ01FQVNVUkVJVEVNU1RSVUNUQEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRXJyb3I6Ok1lc3NhZ2VCb3hGb3JtYXQoc3RydWN0IEhXTkRfXyAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LC4uLiljb25zdCANCis/TWVzc2FnZUJveEZvcm1hdEBDRXJyb3JAQFFCQUhQQVVIV05EX19AQElJSVpaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENFcnJvcjo6TWVzc2FnZUJveE9uRmFpbHVyZShzdHJ1Y3QgSFdORF9fICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCANCis/TWVzc2FnZUJveE9uRmFpbHVyZUBDRXJyb3JAQFFCRUhQQVVIV05EX19AQElJQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0Vycm9yOjpNZXNzYWdlQm94VyhzdHJ1Y3QgSFdORF9fICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCANCis/TWVzc2FnZUJveFdAQ0Vycm9yQEBRQkVIUEFVSFdORF9fQEBJSUBaDQorOyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBNeUdldEhvc3ROYW1lKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ1N0cmluZyAmKQ0KKz9NeUdldEhvc3ROYW1lQEBZR0tLQUFWQ1N0cmluZ0BAQFoNCis7IGxvbmcgX19zdGRjYWxsIE15VmFsaWRhdGVQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50LGludCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP015VmFsaWRhdGVQYXRoQEBZR0pQQkdISEtLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhQmFjazo6TmV4dCh1bnNpZ25lZCBsb25nICosdW5zaWduZWQgc2hvcnQgKixzdHJ1Y3QgX0ZJTEVUSU1FICopDQorP05leHRAQ01ldGFCYWNrQEBRQUVKUEFLUEFHUEFVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFFbnVtZXJhdG9yOjpOZXh0KHVuc2lnbmVkIGxvbmcgJixjbGFzcyBDU3RyaW5nICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/TmV4dEBDTWV0YUVudW1lcmF0b3JAQFFBRUpBQUtBQVZDU3RyaW5nQEBQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFFbnVtZXJhdG9yOjpOZXh0KGNsYXNzIENTdHJpbmcgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9OZXh0QENNZXRhRW51bWVyYXRvckBAUUFFSkFBVkNTdHJpbmdAQFBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENPYmplY3QgKiBfX3RoaXNjYWxsIENPYkxpc3RJdGVyOjpOZXh0KHZvaWQpDQorP05leHRAQ09iTGlzdEl0ZXJAQFFBRVBBVkNPYmplY3RAQFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0YUJhY2s6Ok5leHRIaXN0b3J5KHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgc2hvcnQgKixzdHJ1Y3QgX0ZJTEVUSU1FICopDQorP05leHRIaXN0b3J5QENNZXRhQmFja0BAUUFFSlBBSzBQQUdQQVVfRklMRVRJTUVAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENPRExCb3g6Ok51bVRhYnModm9pZCljb25zdCANCis/TnVtVGFic0BDT0RMQm94QEBRQkVIWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENJbmhlcml0YW5jZURsZzo6T25CdXR0b25TZWxlY3RBbGwodm9pZCkNCis/T25CdXR0b25TZWxlY3RBbGxAQ0luaGVyaXRhbmNlRGxnQEBJQUVYWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgQ0hlYWRlckxpc3RCb3g6Ok9uQ3JlYXRlKHN0cnVjdCB0YWdDUkVBVEVTVFJVQ1RXICopDQorP09uQ3JlYXRlQENIZWFkZXJMaXN0Qm94QEBJQUVIUEFVdGFnQ1JFQVRFU1RSVUNUV0BAQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgQ1JNQ0NvbWJvQm94OjpPbkNyZWF0ZShzdHJ1Y3QgdGFnQ1JFQVRFU1RSVUNUVyAqKQ0KKz9PbkNyZWF0ZUBDUk1DQ29tYm9Cb3hAQElBRUhQQVV0YWdDUkVBVEVTVFJVQ1RXQEBAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDUk1DTGlzdEJveDo6T25DcmVhdGUoc3RydWN0IHRhZ0NSRUFURVNUUlVDVFcgKikNCis/T25DcmVhdGVAQ1JNQ0xpc3RCb3hAQElBRUhQQVV0YWdDUkVBVEVTVFJVQ1RXQEBAWg0KKzsgcHJvdGVjdGVkOiBzdHJ1Y3QgSEJSVVNIX18gKiBfX3RoaXNjYWxsIENJSVNXaXphcmRQYWdlOjpPbkN0bENvbG9yKGNsYXNzIENEQyAqLGNsYXNzIENXbmQgKix1bnNpZ25lZCBpbnQpDQorP09uQ3RsQ29sb3JAQ0lJU1dpemFyZFBhZ2VAQElBRVBBVUhCUlVTSF9fQEBQQVZDRENAQFBBVkNXbmRAQElAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ0VtcGhhc2l6ZWREaWFsb2c6Ok9uRGVzdHJveSh2b2lkKQ0KKz9PbkRlc3Ryb3lAQ0VtcGhhc2l6ZWREaWFsb2dAQElBRVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ0hlYWRlckxpc3RCb3g6Ok9uRGVzdHJveSh2b2lkKQ0KKz9PbkRlc3Ryb3lAQ0hlYWRlckxpc3RCb3hAQElBRVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ0lJU1dpemFyZFNoZWV0OjpPbkRlc3Ryb3kodm9pZCkNCis/T25EZXN0cm95QENJSVNXaXphcmRTaGVldEBASUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDUk1DTGlzdEJveEhlYWRlcjo6T25EZXN0cm95KHZvaWQpDQorP09uRGVzdHJveUBDUk1DTGlzdEJveEhlYWRlckBASUFFWFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIENJSVNXaXphcmRQYWdlOjpPbkVyYXNlQmtnbmQoY2xhc3MgQ0RDICopDQorP09uRXJhc2VCa2duZEBDSUlTV2l6YXJkUGFnZUBASUFFSFBBVkNEQ0BAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENSTUNMaXN0Qm94SGVhZGVyOjpPbkhlYWRlckVuZFRyYWNrKHVuc2lnbmVkIGludCxzdHJ1Y3QgdGFnTk1IRFIgKixsb25nICopDQorP09uSGVhZGVyRW5kVHJhY2tAQ1JNQ0xpc3RCb3hIZWFkZXJAQElBRVhJUEFVdGFnTk1IRFJAQFBBSkBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDUk1DTGlzdEJveEhlYWRlcjo6T25IZWFkZXJJdGVtQ2hhbmdlZCh1bnNpZ25lZCBpbnQsc3RydWN0IHRhZ05NSERSICosbG9uZyAqKQ0KKz9PbkhlYWRlckl0ZW1DaGFuZ2VkQENSTUNMaXN0Qm94SGVhZGVyQEBJQUVYSVBBVXRhZ05NSERSQEBQQUpAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hIZWFkZXI6Ok9uSGVhZGVySXRlbUNsaWNrKHVuc2lnbmVkIGludCxzdHJ1Y3QgdGFnTk1IRFIgKixsb25nICopDQorP09uSGVhZGVySXRlbUNsaWNrQENSTUNMaXN0Qm94SGVhZGVyQEBJQUVYSVBBVXRhZ05NSERSQEBQQUpAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ0luaGVyaXRhbmNlRGxnOjpPbkhlbHAodm9pZCkNCis/T25IZWxwQENJbmhlcml0YW5jZURsZ0BASUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0VtcGhhc2l6ZWREaWFsb2c6Ok9uSW5pdERpYWxvZyh2b2lkKQ0KKz9PbkluaXREaWFsb2dAQ0VtcGhhc2l6ZWREaWFsb2dAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENJSVNXaXphcmRCb29rRW5kOjpPbkluaXREaWFsb2codm9pZCkNCis/T25Jbml0RGlhbG9nQENJSVNXaXphcmRCb29rRW5kQEBNQUVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDSUlTV2l6YXJkUGFnZTo6T25Jbml0RGlhbG9nKHZvaWQpDQorP09uSW5pdERpYWxvZ0BDSUlTV2l6YXJkUGFnZUBATUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0lJU1dpemFyZFNoZWV0OjpPbkluaXREaWFsb2codm9pZCkNCis/T25Jbml0RGlhbG9nQENJSVNXaXphcmRTaGVldEBATUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0luaGVyaXRhbmNlRGxnOjpPbkluaXREaWFsb2codm9pZCkNCis/T25Jbml0RGlhbG9nQENJbmhlcml0YW5jZURsZ0BATUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENJbmhlcml0YW5jZURsZzo6T25PSyh2b2lkKQ0KKz9Pbk9LQENJbmhlcml0YW5jZURsZ0BATUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0lJU1dpemFyZEJvb2tFbmQ6Ok9uU2V0QWN0aXZlKHZvaWQpDQorP09uU2V0QWN0aXZlQENJSVNXaXphcmRCb29rRW5kQEBVQUVIWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENSTUNMaXN0Qm94SGVhZGVyOjpPblNldEZvY3VzKGNsYXNzIENXbmQgKikNCis/T25TZXRGb2N1c0BDUk1DTGlzdEJveEhlYWRlckBASUFFWFBBVkNXbmRAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0YUtleTo6T3Blbih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/T3BlbkBDTWV0YUtleUBAUUFFSktQQkdLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpPcGVuS2V5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKikNCis/T3BlbktleUBDTWV0YUludGVyZmFjZUBASUFFSktQQkdLUEFLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6T3JkZXJCeUFkZHJlc3MoY2xhc3MgQ09iamVjdFBsdXMgY29uc3QgKiljb25zdCANCis/T3JkZXJCeUFkZHJlc3NAQ0lQQWNjZXNzRGVzY3JpcHRvckBAUUJFSFBCVkNPYmplY3RQbHVzQEBAWg0KKzsgaW50IF9fc3RkY2FsbCBQQ1RvVW5peFRleHQodW5zaWduZWQgc2hvcnQgKiAmLGNsYXNzIENTdHJpbmcpDQorP1BDVG9Vbml4VGV4dEBAWUdIQUFQQUdWQ1N0cmluZ0BAQFoNCis7IGludCBfX3N0ZGNhbGwgUGF0aElzVmFsaWQodW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpDQorP1BhdGhJc1ZhbGlkQEBZR0hQQkdIQFoNCis7IHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIFBvcHVsYXRlQ29tYm9XaXRoS25vd25JcEFkZHJlc3Nlcyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENDb21ib0JveCAmLGNsYXNzIENJUEFkZHJlc3MgJixjbGFzcyBDT2JMaXN0UGx1cyAmLGludCAmKQ0KKz9Qb3B1bGF0ZUNvbWJvV2l0aEtub3duSXBBZGRyZXNzZXNAQFlHS1BCR0FBVkNDb21ib0JveEBAQUFWQ0lQQWRkcmVzc0BAQUFWQ09iTGlzdFBsdXNAQEFBSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDUk1DTGlzdEJveFJlc291cmNlczo6UHJlcGFyZUJpdG1hcHModm9pZCkNCis/UHJlcGFyZUJpdG1hcHNAQ1JNQ0xpc3RCb3hSZXNvdXJjZXNAQElBRVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ0dldENvbXB1dGVyOjpQcm9jZXNzU2VsZWN0ZWRPYmplY3RzKHN0cnVjdCBJRGF0YU9iamVjdCAqKQ0KKz9Qcm9jZXNzU2VsZWN0ZWRPYmplY3RzQENHZXRDb21wdXRlckBASUFFWFBBVUlEYXRhT2JqZWN0QEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ0dldFVzZXJzOjpQcm9jZXNzU2VsZWN0ZWRPYmplY3RzKHN0cnVjdCBJRGF0YU9iamVjdCAqKQ0KKz9Qcm9jZXNzU2VsZWN0ZWRPYmplY3RzQENHZXRVc2Vyc0BASUFFWFBBVUlEYXRhT2JqZWN0QEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0FjY2Vzc0VudHJ5OjpRdWVyeUFjY2Vzc01hc2sodm9pZCljb25zdCANCis/UXVlcnlBY2Nlc3NNYXNrQENBY2Nlc3NFbnRyeUBAUUJFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDT2JqSGVscGVyOjpRdWVyeUFnZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUFnZUBDT2JqSGVscGVyQEBRQkVLWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENPYmpIZWxwZXI6OlF1ZXJ5QXBpRXJyKHZvaWQpY29uc3QgDQorP1F1ZXJ5QXBpRXJyQENPYmpIZWxwZXJAQFFCRUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0lJU0FwcGxpY2F0aW9uOjpRdWVyeUFwcFN0YXRlKHZvaWQpY29uc3QgDQorP1F1ZXJ5QXBwU3RhdGVAQ0lJU0FwcGxpY2F0aW9uQEBRQkVLWFoNCis7IHB1YmxpYzogY2xhc3MgQ0NvbUF1dGhJbmZvICogX190aGlzY2FsbCBDSUlTSW50ZXJmYWNlOjpRdWVyeUF1dGhJbmZvKHZvaWQpDQorP1F1ZXJ5QXV0aEluZm9AQ0lJU0ludGVyZmFjZUBAUUFFUEFWQ0NvbUF1dGhJbmZvQEBYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ0lJU1dpemFyZFBhZ2U6OlF1ZXJ5Qml0bWFwSGVpZ2h0KHZvaWQpY29uc3QgDQorP1F1ZXJ5Qml0bWFwSGVpZ2h0QENJSVNXaXphcmRQYWdlQEBJQkVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENJSVNXaXphcmRTaGVldDo6UXVlcnlCaXRtYXBIZWlnaHQoaW50KWNvbnN0IA0KKz9RdWVyeUJpdG1hcEhlaWdodEBDSUlTV2l6YXJkU2hlZXRAQFFCRUpIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENJSVNXaXphcmRQYWdlOjpRdWVyeUJpdG1hcFdpZHRoKHZvaWQpY29uc3QgDQorP1F1ZXJ5Qml0bWFwV2lkdGhAQ0lJU1dpemFyZFBhZ2VAQElCRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0lJU1dpemFyZFNoZWV0OjpRdWVyeUJpdG1hcFdpZHRoKGludCljb25zdCANCis/UXVlcnlCaXRtYXBXaWR0aEBDSUlTV2l6YXJkU2hlZXRAQFFCRUpIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0hlYWRlckxpc3RCb3g6OlF1ZXJ5Q29sdW1uV2lkdGgoaW50KWNvbnN0IA0KKz9RdWVyeUNvbHVtbldpZHRoQENIZWFkZXJMaXN0Qm94QEBRQkVISEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDT2JqSGVscGVyOjpRdWVyeUNyZWF0aW9uVGltZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUNyZWF0aW9uVGltZUBDT2JqSGVscGVyQEBRQkVLWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19zdGRjYWxsIENJTnVtYmVyOjpRdWVyeUN1cnJlbmN5KHZvaWQpDQorP1F1ZXJ5Q3VycmVuY3lAQ0lOdW1iZXJAQFNHUEJHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19zdGRjYWxsIENJTnVtYmVyOjpRdWVyeURlY2ltYWxQb2ludCh2b2lkKQ0KKz9RdWVyeURlY2ltYWxQb2ludEBDSU51bWJlckBAU0dQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6UXVlcnlEb21haW5OYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5RG9tYWluTmFtZUBDSVBBY2Nlc3NEZXNjcmlwdG9yQEBRQkVQQkdYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ09iakhlbHBlcjo6UXVlcnlFcnJvcih2b2lkKWNvbnN0IA0KKz9RdWVyeUVycm9yQENPYmpIZWxwZXJAQFFCRUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ01ldGFLZXk6OlF1ZXJ5RmxhZ3Modm9pZCljb25zdCANCis/UXVlcnlGbGFnc0BDTWV0YUtleUBAUUJFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDSVBBZGRyZXNzOjpRdWVyeUhvc3RPcmRlcklQQWRkcmVzcyh2b2lkKWNvbnN0IA0KKz9RdWVyeUhvc3RPcmRlcklQQWRkcmVzc0BDSVBBZGRyZXNzQEBRQkVLWFoNCis7IHB1YmxpYzogY2xhc3MgQ0lQQWRkcmVzcyAgX190aGlzY2FsbCBDSVBBY2Nlc3NEZXNjcmlwdG9yOjpRdWVyeUlQQWRkcmVzcyh2b2lkKWNvbnN0IA0KKz9RdWVyeUlQQWRkcmVzc0BDSVBBY2Nlc3NEZXNjcmlwdG9yQEBRQkU/QVZDSVBBZGRyZXNzQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6UXVlcnlJUEFkZHJlc3MoaW50KWNvbnN0IA0KKz9RdWVyeUlQQWRkcmVzc0BDSVBBY2Nlc3NEZXNjcmlwdG9yQEBRQkVLSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDSVBBZGRyZXNzOjpRdWVyeUlQQWRkcmVzcyhpbnQpY29uc3QgDQorP1F1ZXJ5SVBBZGRyZXNzQENJUEFkZHJlc3NAQFFCRUtIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIENJUEFkZHJlc3M6OlF1ZXJ5SVBBZGRyZXNzKGNsYXNzIEFUTDo6Q0NvbUJTVFIgJiljb25zdCANCis/UXVlcnlJUEFkZHJlc3NAQ0lQQWRkcmVzc0BAUUJFUEJHQUFWQ0NvbUJTVFJAQVRMQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgQ0lQQWRkcmVzczo6UXVlcnlJUEFkZHJlc3MoY2xhc3MgQ1N0cmluZyAmKWNvbnN0IA0KKz9RdWVyeUlQQWRkcmVzc0BDSVBBZGRyZXNzQEBRQkVQQkdBQVZDU3RyaW5nQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgQ01ldGFLZXk6OlF1ZXJ5TWV0YVBhdGgodm9pZCljb25zdCANCis/UXVlcnlNZXRhUGF0aEBDTWV0YUtleUBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIENNZXRhYmFzZVBhdGg6OlF1ZXJ5TWV0YVBhdGgodm9pZCljb25zdCANCis/UXVlcnlNZXRhUGF0aEBDTWV0YWJhc2VQYXRoQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0lQQWRkcmVzczo6UXVlcnlOZXR3b3JrT3JkZXJJUEFkZHJlc3Modm9pZCljb25zdCANCis/UXVlcnlOZXR3b3JrT3JkZXJJUEFkZHJlc3NAQ0lQQWRkcmVzc0BAUUJFS1haDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENIZWFkZXJMaXN0Qm94OjpRdWVyeU51bUNvbHVtbnModm9pZCljb25zdCANCis/UXVlcnlOdW1Db2x1bW5zQENIZWFkZXJMaXN0Qm94QEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hIZWFkZXI6OlF1ZXJ5TnVtQ29sdW1ucyh2b2lkKWNvbnN0IA0KKz9RdWVyeU51bUNvbHVtbnNAQ1JNQ0xpc3RCb3hIZWFkZXJAQFFCRUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ0NvbUF1dGhJbmZvOjpRdWVyeVBhc3N3b3JkKHZvaWQpY29uc3QgDQorP1F1ZXJ5UGFzc3dvcmRAQ0NvbUF1dGhJbmZvQEBRQkVQQUdYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQWNjZXNzRW50cnk6OlF1ZXJ5UGljdHVyZUlEKHZvaWQpY29uc3QgDQorP1F1ZXJ5UGljdHVyZUlEQENBY2Nlc3NFbnRyeUBAUUJFSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDSUlTQXBwUG9vbDo6UXVlcnlQb29sU3RhdGUodm9pZCljb25zdCANCis/UXVlcnlQb29sU3RhdGVAQ0lJU0FwcFBvb2xAQFFCRUtYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX19QT1NJVElPTiAqIF9fdGhpc2NhbGwgQ09iTGlzdEl0ZXI6OlF1ZXJ5UG9zaXRpb24odm9pZCljb25zdCANCis/UXVlcnlQb3NpdGlvbkBDT2JMaXN0SXRlckBAUUJFUEFVX19QT1NJVElPTkBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ0lJU0FwcFBvb2w6OlF1ZXJ5UmVzdWx0KHZvaWQpY29uc3QgDQorP1F1ZXJ5UmVzdWx0QENJSVNBcHBQb29sQEBVQkVKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ0lJU0FwcGxpY2F0aW9uOjpRdWVyeVJlc3VsdCh2b2lkKWNvbnN0IA0KKz9RdWVyeVJlc3VsdEBDSUlTQXBwbGljYXRpb25AQFVCRUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDSUlTSW50ZXJmYWNlOjpRdWVyeVJlc3VsdCh2b2lkKWNvbnN0IA0KKz9RdWVyeVJlc3VsdEBDSUlTSW50ZXJmYWNlQEBVQkVKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ01ldGFCYWNrOjpRdWVyeVJlc3VsdCh2b2lkKWNvbnN0IA0KKz9RdWVyeVJlc3VsdEBDTWV0YUJhY2tAQFVCRUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDTWV0YUtleTo6UXVlcnlSZXN1bHQodm9pZCljb25zdCANCis/UXVlcnlSZXN1bHRAQ01ldGFLZXlAQFVCRUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ0NvbUF1dGhJbmZvOjpRdWVyeVNlcnZlck5hbWUodm9pZCljb25zdCANCis/UXVlcnlTZXJ2ZXJOYW1lQENDb21BdXRoSW5mb0BAUUJFUEFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIENJSVNJbnRlcmZhY2U6OlF1ZXJ5U2VydmVyTmFtZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVNlcnZlck5hbWVAQ0lJU0ludGVyZmFjZUBAUUJFUEJHWFoNCis7IHB1YmxpYzogY2xhc3MgQ0lQQWRkcmVzcyAgX190aGlzY2FsbCBDSVBBY2Nlc3NEZXNjcmlwdG9yOjpRdWVyeVN1Ym5ldE1hc2sodm9pZCljb25zdCANCis/UXVlcnlTdWJuZXRNYXNrQENJUEFjY2Vzc0Rlc2NyaXB0b3JAQFFCRT9BVkNJUEFkZHJlc3NAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDSVBBY2Nlc3NEZXNjcmlwdG9yOjpRdWVyeVN1Ym5ldE1hc2soaW50KWNvbnN0IA0KKz9RdWVyeVN1Ym5ldE1hc2tAQ0lQQWNjZXNzRGVzY3JpcHRvckBAUUJFS0hAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgQ0lOdW1iZXI6OlF1ZXJ5VGhvdXNhbmRTZXBhcmF0b3Iodm9pZCkNCis/UXVlcnlUaG91c2FuZFNlcGFyYXRvckBDSU51bWJlckBAU0dQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgQ0FjY2Vzc0VudHJ5OjpRdWVyeVVzZXJOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5VXNlck5hbWVAQ0FjY2Vzc0VudHJ5QEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ0NvbUF1dGhJbmZvOjpRdWVyeVVzZXJOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5VXNlck5hbWVAQ0NvbUF1dGhJbmZvQEBRQkVQQUdYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFLZXk6OlF1ZXJ5VmFsdWUodW5zaWduZWQgbG9uZyxpbnQgJixpbnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcgKikNCis/UXVlcnlWYWx1ZUBDTWV0YUtleUBAUUFFSktBQUhQQUhQQkdQQUtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFLZXk6OlF1ZXJ5VmFsdWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICYsaW50ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nICopDQorP1F1ZXJ5VmFsdWVAQ01ldGFLZXlAQFFBRUpLQUFLUEFIUEJHUEFLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhS2V5OjpRdWVyeVZhbHVlKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0Jsb2IgJixpbnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcgKikNCis/UXVlcnlWYWx1ZUBDTWV0YUtleUBAUUFFSktBQVZDQmxvYkBAUEFIUEJHUEFLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhS2V5OjpRdWVyeVZhbHVlKHVuc2lnbmVkIGxvbmcsY2xhc3MgQVRMOjpDQ29tQlNUUiAmLGludCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyAqKQ0KKz9RdWVyeVZhbHVlQENNZXRhS2V5QEBRQUVKS0FBVkNDb21CU1RSQEFUTEBAUEFIUEJHUEFLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhS2V5OjpRdWVyeVZhbHVlKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ1N0clBhc3N3b3JkICYsaW50ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nICopDQorP1F1ZXJ5VmFsdWVAQ01ldGFLZXlAQFFBRUpLQUFWQ1N0clBhc3N3b3JkQEBQQUhQQkdQQUtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFLZXk6OlF1ZXJ5VmFsdWUodW5zaWduZWQgbG9uZyxjbGFzcyBDU3RyaW5nICYsaW50ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nICopDQorP1F1ZXJ5VmFsdWVAQ01ldGFLZXlAQFFBRUpLQUFWQ1N0cmluZ0BAUEFIUEJHUEFLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhS2V5OjpRdWVyeVZhbHVlKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ1N0cmluZ0xpc3RFeCAmLGludCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyAqKQ0KKz9RdWVyeVZhbHVlQENNZXRhS2V5QEBRQUVKS0FBVkNTdHJpbmdMaXN0RXhAQFBBSFBCR1BBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBDSUlTQXBwUG9vbDo6UXVlcnlXYW1QYXRoKHZvaWQpY29uc3QgDQorP1F1ZXJ5V2FtUGF0aEBDSUlTQXBwUG9vbEBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIENJSVNBcHBsaWNhdGlvbjo6UXVlcnlXYW1QYXRoKHZvaWQpY29uc3QgDQorP1F1ZXJ5V2FtUGF0aEBDSUlTQXBwbGljYXRpb25AQFFCRVBCR1haDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDSUlTV2l6YXJkUGFnZTo6UXVlcnlXaW5kb3dDb2xvcih2b2lkKWNvbnN0IA0KKz9RdWVyeVdpbmRvd0NvbG9yQENJSVNXaXphcmRQYWdlQEBJQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENJSVNXaXphcmRTaGVldDo6UXVlcnlXaW5kb3dDb2xvcih2b2lkKWNvbnN0IA0KKz9RdWVyeVdpbmRvd0NvbG9yQENJSVNXaXphcmRTaGVldEBAUUJFS1haDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDSUlTV2l6YXJkUGFnZTo6UXVlcnlXaW5kb3dUZXh0Q29sb3Iodm9pZCljb25zdCANCis/UXVlcnlXaW5kb3dUZXh0Q29sb3JAQ0lJU1dpemFyZFBhZ2VAQElCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0lJU1dpemFyZFNoZWV0OjpRdWVyeVdpbmRvd1RleHRDb2xvcih2b2lkKWNvbnN0IA0KKz9RdWVyeVdpbmRvd1RleHRDb2xvckBDSUlTV2l6YXJkU2hlZXRAQFFCRUtYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFLZXk6OlJlT3Blbih1bnNpZ25lZCBsb25nKQ0KKz9SZU9wZW5AQ01ldGFLZXlAQFFBRUpLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhS2V5OjpSZU9wZW4odm9pZCkNCis/UmVPcGVuQENNZXRhS2V5QEBRQUVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENJSVNTdmNDb250cm9sOjpSZWJvb3QodW5zaWduZWQgbG9uZyxpbnQpDQorP1JlYm9vdEBDSUlTU3ZjQ29udHJvbEBAUUFFSktIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENJSVNBcHBsaWNhdGlvbjo6UmVjb3ZlcihpbnQpDQorP1JlY292ZXJAQ0lJU0FwcGxpY2F0aW9uQEBRQUVKSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDSUlTQXBwUG9vbDo6UmVjeWNsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9SZWN5Y2xlQENJSVNBcHBQb29sQEBRQUVKUEJHQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENXYW1JbnRlcmZhY2U6OlJlY3ljbGVBcHBsaWNhdGlvblBvb2wodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/UmVjeWNsZUFwcGxpY2F0aW9uUG9vbEBDV2FtSW50ZXJmYWNlQEBJQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENJSVNBcHBsaWNhdGlvbjo6UmVmcmVzaEFwcFN0YXRlKHZvaWQpDQorP1JlZnJlc2hBcHBTdGF0ZUBDSUlTQXBwbGljYXRpb25AQFFBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0lJU0FwcFBvb2w6OlJlZnJlc2hTdGF0ZSh2b2lkKQ0KKz9SZWZyZXNoU3RhdGVAQ0lJU0FwcFBvb2xAQFFBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OlJlZ2VuZXJhdGUodm9pZCkNCis/UmVnZW5lcmF0ZUBDTWV0YUludGVyZmFjZUBAUUFFSlhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDRXJyb3I6OlJlZ2lzdGVyRmFjaWxpdHkodW5zaWduZWQgbG9uZyxjaGFyIGNvbnN0ICopDQorP1JlZ2lzdGVyRmFjaWxpdHlAQ0Vycm9yQEBTR1hLUEJEQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ09iTGlzdFBsdXM6OlJlbW92ZShjbGFzcyBDT2JqZWN0ICopDQorP1JlbW92ZUBDT2JMaXN0UGx1c0BAUUFFSFBBVkNPYmplY3RAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDT2JMaXN0UGx1czo6UmVtb3ZlQWxsKHZvaWQpDQorP1JlbW92ZUFsbEBDT2JMaXN0UGx1c0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRXJyb3I6OlJlbW92ZUFsbE92ZXJyaWRlcyh2b2lkKQ0KKz9SZW1vdmVBbGxPdmVycmlkZXNAQ0Vycm9yQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENPRExCb3g6OlJlbW92ZUFsbFRhYnModm9pZCkNCis/UmVtb3ZlQWxsVGFic0BDT0RMQm94QEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENPYkxpc3RQbHVzOjpSZW1vdmVBdChzdHJ1Y3QgX19QT1NJVElPTiAqICYpDQorP1JlbW92ZUF0QENPYkxpc3RQbHVzQEBRQUVYQUFQQVVfX1BPU0lUSU9OQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NvbUF1dGhJbmZvOjpSZW1vdmVJbXBlcnNvbmF0aW9uKHZvaWQpDQorP1JlbW92ZUltcGVyc29uYXRpb25AQ0NvbUF1dGhJbmZvQEBRQUVYWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ09iTGlzdFBsdXM6OlJlbW92ZUluZGV4KGludCkNCis/UmVtb3ZlSW5kZXhAQ09iTGlzdFBsdXNAQFFBRUhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENFcnJvcjo6UmVtb3ZlT3ZlcnJpZGUobG9uZykNCis/UmVtb3ZlT3ZlcnJpZGVAQ0Vycm9yQEBRQUVYSkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQWNjZXNzRW50cnk6OlJlbW92ZVBlcm1pc3Npb25zKHVuc2lnbmVkIGxvbmcpDQorP1JlbW92ZVBlcm1pc3Npb25zQENBY2Nlc3NFbnRyeUBAUUFFWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ09ETEJveDo6UmVtb3ZlVGFiKGludCxpbnQpDQorP1JlbW92ZVRhYkBDT0RMQm94QEBRQUVYSEhAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OlJlbmFtZUtleSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/UmVuYW1lS2V5QENNZXRhSW50ZXJmYWNlQEBJQUVKS1BCRzBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFLZXk6OlJlbmFtZUtleSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1JlbmFtZUtleUBDTWV0YUtleUBAUUFFSlBCRzBAWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgUmVwbGFjZVN0cmluZ0luU3RyaW5nKGNsYXNzIENTdHJpbmcgJixjbGFzcyBDU3RyaW5nICYsY2xhc3MgQ1N0cmluZyAmLGludCkNCis/UmVwbGFjZVN0cmluZ0luU3RyaW5nQEBZR0tBQVZDU3RyaW5nQEAwMEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ09iakhlbHBlcjo6UmVwb3J0RXJyb3IobG9uZykNCis/UmVwb3J0RXJyb3JAQ09iakhlbHBlckBAUUFFWEpAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Vycm9yOjpSZXNldCh2b2lkKQ0KKz9SZXNldEBDRXJyb3JAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ01ldGFCYWNrOjpSZXNldCh2b2lkKQ0KKz9SZXNldEBDTWV0YUJhY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ01ldGFFbnVtZXJhdG9yOjpSZXNldCh2b2lkKQ0KKz9SZXNldEBDTWV0YUVudW1lcmF0b3JAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ09iTGlzdEl0ZXI6OlJlc2V0KHZvaWQpDQorP1Jlc2V0QENPYkxpc3RJdGVyQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENPYmpIZWxwZXI6OlJlc2V0RXJyb3JzKHZvaWQpDQorP1Jlc2V0RXJyb3JzQENPYmpIZWxwZXJAQFFBRVhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQWNjZXNzRW50cnk6OlJlc29sdmVTSUQodm9pZCkNCis/UmVzb2x2ZVNJREBDQWNjZXNzRW50cnlAQFFBRUhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hIZWFkZXI6OlJlc3BvbmRUb0NvbHVtbldpZHRoQ2hhbmdlcyhpbnQpDQorP1Jlc3BvbmRUb0NvbHVtbldpZHRoQ2hhbmdlc0BDUk1DTGlzdEJveEhlYWRlckBAUUFFWEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFCYWNrOjpSZXN0b3JlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/UmVzdG9yZUBDTWV0YUJhY2tAQFFBRUpQQkdLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpSZXN0b3JlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9SZXN0b3JlQENNZXRhSW50ZXJmYWNlQEBJQUVKUEJHS0tAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFJbnRlcmZhY2U6OlJlc3RvcmVIaXN0b3J5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP1Jlc3RvcmVIaXN0b3J5QENNZXRhSW50ZXJmYWNlQEBJQUVKUEJHS0tLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhQmFjazo6UmVzdG9yZUhpc3RvcnlCYWNrdXAodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/UmVzdG9yZUhpc3RvcnlCYWNrdXBAQ01ldGFCYWNrQEBRQUVKUEJHS0tLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhQmFjazo6UmVzdG9yZVdpdGhQYXNzd29yZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/UmVzdG9yZVdpdGhQYXNzd29yZEBDTWV0YUJhY2tAQFFBRUpQQkdLMEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6UmVzdG9yZVdpdGhQYXNzd29yZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9SZXN0b3JlV2l0aFBhc3N3b3JkQENNZXRhSW50ZXJmYWNlQEBJQUVKUEJHS0swQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhSW50ZXJmYWNlOjpTYXZlRGF0YSh2b2lkKQ0KKz9TYXZlRGF0YUBDTWV0YUludGVyZmFjZUBAUUFFSlhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENSTUNMaXN0Qm94OjpTZWxlY3RJdGVtKHZvaWQgKikNCis/U2VsZWN0SXRlbUBDUk1DTGlzdEJveEBAUUFFSFBBWEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENPYkxpc3RQbHVzOjpTZXRBbGwoaW50KQ0KKz9TZXRBbGxAQ09iTGlzdFBsdXNAQFFBRUhIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENPYmpIZWxwZXI6OlNldEFwaUVycihsb25nKQ0KKz9TZXRBcGlFcnJAQ09iakhlbHBlckBAUUFFSkpAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSGVhZGVyTGlzdEJveDo6U2V0Q29sdW1uV2lkdGgoaW50LGludCkNCis/U2V0Q29sdW1uV2lkdGhAQ0hlYWRlckxpc3RCb3hAQFFBRUhISEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUk1DTGlzdEJveEhlYWRlcjo6U2V0Q29sdW1uV2lkdGgoaW50LGludCkNCis/U2V0Q29sdW1uV2lkdGhAQ1JNQ0xpc3RCb3hIZWFkZXJAQFFBRVhISEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDQ29tQXV0aEluZm86OlNldENvbXB1dGVyTmFtZVcodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0Q29tcHV0ZXJOYW1lV0BDQ29tQXV0aEluZm9AQElBRVhQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUk1DTGlzdEJveDo6U2V0Q3VyU2VsKGludCkNCis/U2V0Q3VyU2VsQENSTUNMaXN0Qm94QEBRQUVISEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6U2V0RGF0YSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IF9NRVRBREFUQV9SRUNPUkQgKikNCis/U2V0RGF0YUBDTWV0YUludGVyZmFjZUBASUFFSktQQkdQQVVfTUVUQURBVEFfUkVDT1JEQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ09iakhlbHBlcjo6U2V0RGlydHkoaW50KQ0KKz9TZXREaXJ0eUBDT2JqSGVscGVyQEBRQUVYSEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIENIZWFkZXJMaXN0Qm94OjpTZXRIZWFkZXJJdGVtKGludCxzdHJ1Y3QgX0hEX0lURU1XICopDQorP1NldEhlYWRlckl0ZW1AQ0hlYWRlckxpc3RCb3hAQElBRUhIUEFVX0hEX0lURU1XQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NvbUF1dGhJbmZvOjpTZXRJbXBlcnNvbmF0aW9uKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0SW1wZXJzb25hdGlvbkBDQ29tQXV0aEluZm9AQFFBRVhQQkcwQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hIZWFkZXI6OlNldEl0ZW0oaW50LHN0cnVjdCBfSERfSVRFTVcgKikNCis/U2V0SXRlbUBDUk1DTGlzdEJveEhlYWRlckBAUUFFSEhQQVVfSERfSVRFTVdAQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDTWV0YUludGVyZmFjZTo6U2V0TGFzdENoYW5nZVRpbWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHN0cnVjdCBfRklMRVRJTUUgKixpbnQpDQorP1NldExhc3RDaGFuZ2VUaW1lQENNZXRhSW50ZXJmYWNlQEBJQUVKS1BCR1BBVV9GSUxFVElNRUBASEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRXJyb3I6OlNldExhc3RXaW5FcnJvcih2b2lkKWNvbnN0IA0KKz9TZXRMYXN0V2luRXJyb3JAQ0Vycm9yQEBRQkVYWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ09iTGlzdFBsdXM6OlNldE93bmVyc2hpcChpbnQpDQorP1NldE93bmVyc2hpcEBDT2JMaXN0UGx1c0BAUUFFSEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ09iTGlzdEl0ZXI6OlNldFBvc2l0aW9uKHN0cnVjdCBfX1BPU0lUSU9OICopDQorP1NldFBvc2l0aW9uQENPYkxpc3RJdGVyQEBRQUVYUEFVX19QT1NJVElPTkBAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENNZXRhS2V5OjpTZXRQcm9wZXJ0eVZhbHVlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICosaW50ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0UHJvcGVydHlWYWx1ZUBDTWV0YUtleUBASUFFSktLUEFYUEFIUEJHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDb25maXJtRGxnOjpTZXRSZWZlcmVuY2UoY2xhc3MgQ1N0cmluZyAmKQ0KKz9TZXRSZWZlcmVuY2VAQ0NvbmZpcm1EbGdAQFFBRVhBQVZDU3RyaW5nQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ09ETEJveDo6U2V0VGFiKGludCx1bnNpZ25lZCBpbnQpDQorP1NldFRhYkBDT0RMQm94QEBRQUVYSElAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hIZWFkZXI6OlNldFRhYnNGcm9tSGVhZGVyKHZvaWQpDQorP1NldFRhYnNGcm9tSGVhZGVyQENSTUNMaXN0Qm94SGVhZGVyQEBJQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENCbG9iOjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgKixpbnQpDQorP1NldFZhbHVlQENCbG9iQEBRQUVYS1BBRUhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFLZXk6OlNldFZhbHVlKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0Jsb2IgJixpbnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRWYWx1ZUBDTWV0YUtleUBAUUFFSktBQVZDQmxvYkBAUEFIUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhS2V5OjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nLGNsYXNzIENTdHJQYXNzd29yZCAmLGludCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldFZhbHVlQENNZXRhS2V5QEBRQUVKS0FBVkNTdHJQYXNzd29yZEBAUEFIUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENNZXRhS2V5OjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nLGNsYXNzIENTdHJpbmcgJixpbnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRWYWx1ZUBDTWV0YUtleUBAUUFFSktBQVZDU3RyaW5nQEBQQUhQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ01ldGFLZXk6OlNldFZhbHVlKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ1N0cmluZ0xpc3RFeCAmLGludCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldFZhbHVlQENNZXRhS2V5QEBRQUVKS0FBVkNTdHJpbmdMaXN0RXhAQFBBSFBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0YUtleTo6U2V0VmFsdWUodW5zaWduZWQgbG9uZyxpbnQsaW50ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0VmFsdWVAQ01ldGFLZXlAQFFBRUpLSFBBSFBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDTWV0YUtleTo6U2V0VmFsdWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldFZhbHVlQENNZXRhS2V5QEBRQUVKS0tQQUhQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6U2V0VmFsdWVzKGludCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50KQ0KKz9TZXRWYWx1ZXNAQ0lQQWNjZXNzRGVzY3JpcHRvckBAUUFFWEhLS0hAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0lQQWNjZXNzRGVzY3JpcHRvcjo6U2V0VmFsdWVzKGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRWYWx1ZXNAQ0lQQWNjZXNzRGVzY3JpcHRvckBAUUFFWEhQQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDSGVhZGVyTGlzdEJveDo6U2V0V2lkdGhzRnJvbVJlZyh2b2lkKQ0KKz9TZXRXaWR0aHNGcm9tUmVnQENIZWFkZXJMaXN0Qm94QEBJQUVIWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENJSVNXaXphcmRQYWdlOjpTZXRXaXphcmRCdXR0b25zKHVuc2lnbmVkIGxvbmcpDQorP1NldFdpemFyZEJ1dHRvbnNAQ0lJU1dpemFyZFBhZ2VAQElBRVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENJUEFkZHJlc3M6OlNldFplcm9WYWx1ZSh2b2lkKQ0KKz9TZXRaZXJvVmFsdWVAQ0lQQWRkcmVzc0BAUUFFWFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENIZWFkZXJMaXN0Qm94OjpTaG93V2luZG93KGludCkNCis/U2hvd1dpbmRvd0BDSGVhZGVyTGlzdEJveEBAUUFFSEhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ09iTGlzdFBsdXM6OlNvcnQoaW50IChfX3RoaXNjYWxsIENPYmplY3RQbHVzOjoqKShjbGFzcyBDT2JqZWN0UGx1cyBjb25zdCAqKWNvbnN0ICkNCis/U29ydEBDT2JMaXN0UGx1c0BAUUFFS1A4Q09iamVjdFBsdXNAQEJFSFBCVjJAQFpAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fY2RlY2wgQ09iTGlzdFBsdXM6OlNvcnRIZWxwZXIodm9pZCBjb25zdCAqLHZvaWQgY29uc3QgKikNCis/U29ydEhlbHBlckBDT2JMaXN0UGx1c0BAS0FIUEJYMEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDTWV0YWJhc2VQYXRoOjpTcGxpdE1ldGFQYXRoQXRJbnN0YW5jZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENTdHJpbmcgJixjbGFzcyBDU3RyaW5nICYpDQorP1NwbGl0TWV0YVBhdGhBdEluc3RhbmNlQENNZXRhYmFzZVBhdGhAQFNHWFBCR0FBVkNTdHJpbmdAQDFAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDQ29tQXV0aEluZm86OlNwbGl0VXNlck5hbWVBbmREb21haW4oY2xhc3MgQ1N0cmluZyAmLGNsYXNzIENTdHJpbmcgJikNCis/U3BsaXRVc2VyTmFtZUFuZERvbWFpbkBDQ29tQXV0aEluZm9AQFNHSEFBVkNTdHJpbmdAQDBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0lJU1N2Y0NvbnRyb2w6OlN0YXJ0KHVuc2lnbmVkIGxvbmcpDQorP1N0YXJ0QENJSVNTdmNDb250cm9sQEBRQUVKS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDSUlTU3ZjQ29udHJvbDo6U3RhdHVzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICopDQorP1N0YXR1c0BDSUlTU3ZjQ29udHJvbEBAUUFFSktQQUVQQUsxQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENJSVNTdmNDb250cm9sOjpTdG9wKHVuc2lnbmVkIGxvbmcsaW50KQ0KKz9TdG9wQENJSVNTdmNDb250cm9sQEBRQUVKS0hAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NvbUF1dGhJbmZvOjpTdG9yZVBhc3N3b3JkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1N0b3JlUGFzc3dvcmRAQ0NvbUF1dGhJbmZvQEBRQUVYUEJHQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENJUEFkZHJlc3M6OlN0cmluZ1RvTG9uZyhjbGFzcyBBVEw6OkNDb21CU1RSIGNvbnN0ICYpDQorP1N0cmluZ1RvTG9uZ0BDSVBBZGRyZXNzQEBTR0tBQlZDQ29tQlNUUkBBVExAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDSVBBZGRyZXNzOjpTdHJpbmdUb0xvbmcoY2xhc3MgQ1N0cmluZyBjb25zdCAmKQ0KKz9TdHJpbmdUb0xvbmdAQ0lQQWRkcmVzc0BAU0dLQUJWQ1N0cmluZ0BAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENJUEFkZHJlc3M6OlN0cmluZ1RvTG9uZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/U3RyaW5nVG9Mb25nQENJUEFkZHJlc3NAQFNHS1BCR0hAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRXJyb3I6OlN1Y2NlZWRlZCh2b2lkKWNvbnN0IA0KKz9TdWNjZWVkZWRAQ0Vycm9yQEBRQkVIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0Vycm9yOjpTdWNjZWVkZWQobG9uZykNCis/U3VjY2VlZGVkQENFcnJvckBAU0dISkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0lJU0FwcFBvb2w6OlN1Y2NlZWRlZCh2b2lkKWNvbnN0IA0KKz9TdWNjZWVkZWRAQ0lJU0FwcFBvb2xAQFVCRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENJSVNBcHBsaWNhdGlvbjo6U3VjY2VlZGVkKHZvaWQpY29uc3QgDQorP1N1Y2NlZWRlZEBDSUlTQXBwbGljYXRpb25AQFVCRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENJSVNJbnRlcmZhY2U6OlN1Y2NlZWRlZCh2b2lkKWNvbnN0IA0KKz9TdWNjZWVkZWRAQ0lJU0ludGVyZmFjZUBAVUJFSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ01ldGFCYWNrOjpTdWNjZWVkZWQodm9pZCljb25zdCANCis/U3VjY2VlZGVkQENNZXRhQmFja0BAVUJFSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ01ldGFLZXk6OlN1Y2NlZWRlZCh2b2lkKWNvbnN0IA0KKz9TdWNjZWVkZWRAQ01ldGFLZXlAQFVCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDV2FtSW50ZXJmYWNlOjpTdXBwb3J0c1Bvb2xlZFByb2Modm9pZCljb25zdCANCis/U3VwcG9ydHNQb29sZWRQcm9jQENXYW1JbnRlcmZhY2VAQFFCRUhYWg0KKzsgaW50IF9fc3RkY2FsbCBTdXBwb3J0c1NlY3VyaXR5QUNMcyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TdXBwb3J0c1NlY3VyaXR5QUNMc0BAWUdIUEJHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSTUNMaXN0Qm94UmVzb3VyY2VzOjpTeXNDb2xvckNoYW5nZWQodm9pZCkNCis/U3lzQ29sb3JDaGFuZ2VkQENSTUNMaXN0Qm94UmVzb3VyY2VzQEBRQUVYWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENFcnJvcjo6VGV4dEZyb21IUkVTVUxUKGNsYXNzIENTdHJpbmcgJiljb25zdCANCis/VGV4dEZyb21IUkVTVUxUQENFcnJvckBAUUJFSkFBVkNTdHJpbmdAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRXJyb3I6OlRleHRGcm9tSFJFU1VMVCh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP1RleHRGcm9tSFJFU1VMVEBDRXJyb3JAQFFCRUpQQUdLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIENFcnJvcjo6VGV4dEZyb21IUkVTVUxURXhwYW5kKGNsYXNzIENTdHJpbmcgJiljb25zdCANCis/VGV4dEZyb21IUkVTVUxURXhwYW5kQENFcnJvckBAUUJFUEJHQUFWQ1N0cmluZ0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIENFcnJvcjo6VGV4dEZyb21IUkVTVUxURXhwYW5kKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyxsb25nICopY29uc3QgDQorP1RleHRGcm9tSFJFU1VMVEV4cGFuZEBDRXJyb3JAQFFCRVBCR1BBR0tQQUpAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDT0RMQm94OjpUZXh0SGVpZ2h0KHZvaWQpY29uc3QgDQorP1RleHRIZWlnaHRAQ09ETEJveEBAUUJFSFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDTWV0YWJhc2VQYXRoOjpUcnVuY2F0ZVBhdGgoaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1N0cmluZyAmLGNsYXNzIENTdHJpbmcgKikNCis/VHJ1bmNhdGVQYXRoQENNZXRhYmFzZVBhdGhAQFNHUEJHSFBCR0FBVkNTdHJpbmdAQFBBVjJAQFoNCis7IGludCBfX3N0ZGNhbGwgVW5peFRvUENUZXh0KGNsYXNzIENTdHJpbmcgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Vbml4VG9QQ1RleHRAQFlHSEFBVkNTdHJpbmdAQFBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDSUlTQXBwbGljYXRpb246OlVubG9hZChpbnQpDQorP1VubG9hZEBDSUlTQXBwbGljYXRpb25AQFFBRUpIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENSTUNMaXN0Qm94UmVzb3VyY2VzOjpVbnByZXBhcmVCaXRtYXBzKHZvaWQpDQorP1VucHJlcGFyZUJpdG1hcHNAQ1JNQ0xpc3RCb3hSZXNvdXJjZXNAQElBRVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ0Vycm9yOjpVbnJlZ2lzdGVyRmFjaWxpdHkodW5zaWduZWQgbG9uZykNCis/VW5yZWdpc3RlckZhY2lsaXR5QENFcnJvckBAU0dYS0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIENSTUNMaXN0Qm94SGVhZGVyOjpVc2VCdXR0b25zKHZvaWQpY29uc3QgDQorP1VzZUJ1dHRvbnNAQ1JNQ0xpc3RCb3hIZWFkZXJAQElCRUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDUk1DTGlzdEJveEhlYWRlcjo6VXNlU3RyZXRjaCh2b2lkKWNvbnN0IA0KKz9Vc2VTdHJldGNoQENSTUNMaXN0Qm94SGVhZGVyQEBJQkVIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0lOdW1iZXI6OlVzZVN5c3RlbURlZmF1bHQodm9pZCkNCis/VXNlU3lzdGVtRGVmYXVsdEBDSU51bWJlckBAU0dIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0lOdW1iZXI6OlVzZVVzZXJEZWZhdWx0KHZvaWQpDQorP1VzZVVzZXJEZWZhdWx0QENJTnVtYmVyQEBTR0hYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ29tQXV0aEluZm86OlVzZXNJbXBlcnNvbmF0aW9uKHZvaWQpY29uc3QgDQorP1VzZXNJbXBlcnNvbmF0aW9uQENDb21BdXRoSW5mb0BAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENJSVNXaXphcmRQYWdlOjpWYWxpZGF0ZVN0cmluZyhjbGFzcyBDRWRpdCAmLGNsYXNzIENTdHJpbmcgJixpbnQsaW50KQ0KKz9WYWxpZGF0ZVN0cmluZ0BDSUlTV2l6YXJkUGFnZUBAUUFFSEFBVkNFZGl0QEBBQVZDU3RyaW5nQEBISEBaDQorOyBpbnQgX19zdGRjYWxsIFZlcmlmeVN0YXRlKHZvaWQpDQorP1ZlcmlmeVN0YXRlQEBZR0hYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0NvbUF1dGhJbmZvOjpWZXJpZnlVc2VyUGFzc3dvcmQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9WZXJpZnlVc2VyUGFzc3dvcmRAQ0NvbUF1dGhJbmZvQEBTR0tQQkcwQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENFcnJvcjo6V2luMzJFcnJvcih2b2lkKWNvbnN0IA0KKz9XaW4zMkVycm9yQENFcnJvckBAUUJFS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDRXJyb3I6OldpbjMyRXJyb3IobG9uZykNCis/V2luMzJFcnJvckBDRXJyb3JAQFNHS0pAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDSUlTV2l6YXJkU2hlZXQ6OldpbkhlbHBXKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgaW50KQ0KKz9XaW5IZWxwV0BDSUlTV2l6YXJkU2hlZXRAQE1BRVhLSUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDSUlTQXBwbGljYXRpb246OldyaXRlRnJpZW5kbHlOYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1dyaXRlRnJpZW5kbHlOYW1lQENJSVNBcHBsaWNhdGlvbkBAUUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDSUlTQXBwbGljYXRpb246OldyaXRlUG9vbElkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1dyaXRlUG9vbElkQENJSVNBcHBsaWNhdGlvbkBAUUFFSlBCR0BaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyAqIF9fc3RkY2FsbCBDRW1waGFzaXplZERpYWxvZzo6X0dldEJhc2VDbGFzcyh2b2lkKQ0KKz9fR2V0QmFzZUNsYXNzQENFbXBoYXNpemVkRGlhbG9nQEBLR1BBVUNSdW50aW1lQ2xhc3NAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyAqIF9fc3RkY2FsbCBDSGVhZGVyTGlzdEJveDo6X0dldEJhc2VDbGFzcyh2b2lkKQ0KKz9fR2V0QmFzZUNsYXNzQENIZWFkZXJMaXN0Qm94QEBLR1BBVUNSdW50aW1lQ2xhc3NAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyAqIF9fc3RkY2FsbCBDSUlTV2l6YXJkQm9va0VuZDo6X0dldEJhc2VDbGFzcyh2b2lkKQ0KKz9fR2V0QmFzZUNsYXNzQENJSVNXaXphcmRCb29rRW5kQEBLR1BBVUNSdW50aW1lQ2xhc3NAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyAqIF9fc3RkY2FsbCBDSUlTV2l6YXJkUGFnZTo6X0dldEJhc2VDbGFzcyh2b2lkKQ0KKz9fR2V0QmFzZUNsYXNzQENJSVNXaXphcmRQYWdlQEBLR1BBVUNSdW50aW1lQ2xhc3NAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyAqIF9fc3RkY2FsbCBDSUlTV2l6YXJkU2hlZXQ6Ol9HZXRCYXNlQ2xhc3Modm9pZCkNCis/X0dldEJhc2VDbGFzc0BDSUlTV2l6YXJkU2hlZXRAQEtHUEFVQ1J1bnRpbWVDbGFzc0BAWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBDUnVudGltZUNsYXNzICogX19zdGRjYWxsIENSTUNDb21ib0JveDo6X0dldEJhc2VDbGFzcyh2b2lkKQ0KKz9fR2V0QmFzZUNsYXNzQENSTUNDb21ib0JveEBAS0dQQVVDUnVudGltZUNsYXNzQEBYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IENSdW50aW1lQ2xhc3MgKiBfX3N0ZGNhbGwgQ1JNQ0xpc3RCb3g6Ol9HZXRCYXNlQ2xhc3Modm9pZCkNCis/X0dldEJhc2VDbGFzc0BDUk1DTGlzdEJveEBAS0dQQVVDUnVudGltZUNsYXNzQEBYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IENSdW50aW1lQ2xhc3MgKiBfX3N0ZGNhbGwgQ1JNQ0xpc3RCb3hIZWFkZXI6Ol9HZXRCYXNlQ2xhc3Modm9pZCkNCis/X0dldEJhc2VDbGFzc0BDUk1DTGlzdEJveEhlYWRlckBAS0dQQVVDUnVudGltZUNsYXNzQEBYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVAgY29uc3QgKiBfX3N0ZGNhbGwgQ0NvbmZpcm1EbGc6Ol9HZXRCYXNlTWVzc2FnZU1hcCh2b2lkKQ0KKz9fR2V0QmFzZU1lc3NhZ2VNYXBAQ0NvbmZpcm1EbGdAQEtHUEJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBBRlhfTVNHTUFQIGNvbnN0ICogX19zdGRjYWxsIENFbXBoYXNpemVkRGlhbG9nOjpfR2V0QmFzZU1lc3NhZ2VNYXAodm9pZCkNCis/X0dldEJhc2VNZXNzYWdlTWFwQENFbXBoYXNpemVkRGlhbG9nQEBLR1BCVUFGWF9NU0dNQVBAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fc3RkY2FsbCBDSGVhZGVyTGlzdEJveDo6X0dldEJhc2VNZXNzYWdlTWFwKHZvaWQpDQorP19HZXRCYXNlTWVzc2FnZU1hcEBDSGVhZGVyTGlzdEJveEBAS0dQQlVBRlhfTVNHTUFQQEBYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVAgY29uc3QgKiBfX3N0ZGNhbGwgQ0lJU1dpemFyZEJvb2tFbmQ6Ol9HZXRCYXNlTWVzc2FnZU1hcCh2b2lkKQ0KKz9fR2V0QmFzZU1lc3NhZ2VNYXBAQ0lJU1dpemFyZEJvb2tFbmRAQEtHUEJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBBRlhfTVNHTUFQIGNvbnN0ICogX19zdGRjYWxsIENJSVNXaXphcmRQYWdlOjpfR2V0QmFzZU1lc3NhZ2VNYXAodm9pZCkNCis/X0dldEJhc2VNZXNzYWdlTWFwQENJSVNXaXphcmRQYWdlQEBLR1BCVUFGWF9NU0dNQVBAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fc3RkY2FsbCBDSUlTV2l6YXJkU2hlZXQ6Ol9HZXRCYXNlTWVzc2FnZU1hcCh2b2lkKQ0KKz9fR2V0QmFzZU1lc3NhZ2VNYXBAQ0lJU1dpemFyZFNoZWV0QEBLR1BCVUFGWF9NU0dNQVBAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fc3RkY2FsbCBDSW5oZXJpdGFuY2VEbGc6Ol9HZXRCYXNlTWVzc2FnZU1hcCh2b2lkKQ0KKz9fR2V0QmFzZU1lc3NhZ2VNYXBAQ0luaGVyaXRhbmNlRGxnQEBLR1BCVUFGWF9NU0dNQVBAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fc3RkY2FsbCBDUk1DQ29tYm9Cb3g6Ol9HZXRCYXNlTWVzc2FnZU1hcCh2b2lkKQ0KKz9fR2V0QmFzZU1lc3NhZ2VNYXBAQ1JNQ0NvbWJvQm94QEBLR1BCVUFGWF9NU0dNQVBAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAqIF9fc3RkY2FsbCBDUk1DTGlzdEJveDo6X0dldEJhc2VNZXNzYWdlTWFwKHZvaWQpDQorP19HZXRCYXNlTWVzc2FnZU1hcEBDUk1DTGlzdEJveEBAS0dQQlVBRlhfTVNHTUFQQEBYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVAgY29uc3QgKiBfX3N0ZGNhbGwgQ1JNQ0xpc3RCb3hIZWFkZXI6Ol9HZXRCYXNlTWVzc2FnZU1hcCh2b2lkKQ0KKz9fR2V0QmFzZU1lc3NhZ2VNYXBAQ1JNQ0xpc3RCb3hIZWFkZXJAQEtHUEJVQUZYX01TR01BUEBAWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENPRExCb3g6Ol9fRHJhd0l0ZW0oc3RydWN0IHRhZ0RSQVdJVEVNU1RSVUNUICopDQorP19fRHJhd0l0ZW1AQ09ETEJveEBASUFFWFBBVXRhZ0RSQVdJVEVNU1RSVUNUQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENSTUNDb21ib0JveDo6X19HZXRDb3VudCh2b2lkKWNvbnN0IA0KKz9fX0dldENvdW50QENSTUNDb21ib0JveEBAVUJFSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3g6Ol9fR2V0Q291bnQodm9pZCljb25zdCANCis/X19HZXRDb3VudEBDUk1DTGlzdEJveEBAVUJFSFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDT0RMQm94OjpfX01lYXN1cmVJdGVtKHN0cnVjdCB0YWdNRUFTVVJFSVRFTVNUUlVDVCAqKQ0KKz9fX01lYXN1cmVJdGVtQENPRExCb3hAQElBRVhQQVV0YWdNRUFTVVJFSVRFTVNUUlVDVEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDUk1DQ29tYm9Cb3g6Ol9fU2V0SXRlbUhlaWdodChpbnQsdW5zaWduZWQgaW50KQ0KKz9fX1NldEl0ZW1IZWlnaHRAQ1JNQ0NvbWJvQm94QEBVQUVISElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENSTUNMaXN0Qm94OjpfX1NldEl0ZW1IZWlnaHQoaW50LHVuc2lnbmVkIGludCkNCis/X19TZXRJdGVtSGVpZ2h0QENSTUNMaXN0Qm94QEBVQUVISElAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgIENNZXRhYmFzZVBhdGg6Ol9jaFNlcA0KKz9fY2hTZXBAQ01ldGFiYXNlUGF0aEBAMUdCDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIGNvbnN0ICBDTWV0YWJhc2VQYXRoOjpfY3N6TWFjaGluZQ0KKz9fY3N6TWFjaGluZUBDTWV0YWJhc2VQYXRoQEAxUUJHQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBjb25zdCAgQ01ldGFiYXNlUGF0aDo6X2NzelJvb3QNCis/X2NzelJvb3RAQ01ldGFiYXNlUGF0aEBAMVFCR0INCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogY29uc3QgIENNZXRhYmFzZVBhdGg6Ol9jc3pTZXANCis/X2NzelNlcEBDTWV0YWJhc2VQYXRoQEAxUUJHQg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCAgQ0lOdW1iZXI6Ol9mQWxsb2NhdGVkDQorP19mQWxsb2NhdGVkQENJTnVtYmVyQEAwSEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGludCAgQ0lOdW1iZXI6Ol9mQ3VycmVuY3lQcmVmaXgNCis/X2ZDdXJyZW5jeVByZWZpeEBDSU51bWJlckBAMEhBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgIENJTnVtYmVyOjpfZkluaXRpYWxpemVkDQorP19mSW5pdGlhbGl6ZWRAQ0lOdW1iZXJAQDBIQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVBfRU5UUlkgY29uc3QgKiBjb25zdCAgQ0NvbmZpcm1EbGc6Ol9tZXNzYWdlRW50cmllcw0KKz9fbWVzc2FnZUVudHJpZXNAQ0NvbmZpcm1EbGdAQDBRQlVBRlhfTVNHTUFQX0VOVFJZQEBCDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVBfRU5UUlkgY29uc3QgKiBjb25zdCAgQ0VtcGhhc2l6ZWREaWFsb2c6Ol9tZXNzYWdlRW50cmllcw0KKz9fbWVzc2FnZUVudHJpZXNAQ0VtcGhhc2l6ZWREaWFsb2dAQDBRQlVBRlhfTVNHTUFQX0VOVFJZQEBCDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVBfRU5UUlkgY29uc3QgKiBjb25zdCAgQ0hlYWRlckxpc3RCb3g6Ol9tZXNzYWdlRW50cmllcw0KKz9fbWVzc2FnZUVudHJpZXNAQ0hlYWRlckxpc3RCb3hAQDBRQlVBRlhfTVNHTUFQX0VOVFJZQEBCDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVBfRU5UUlkgY29uc3QgKiBjb25zdCAgQ0lJU1dpemFyZEJvb2tFbmQ6Ol9tZXNzYWdlRW50cmllcw0KKz9fbWVzc2FnZUVudHJpZXNAQ0lJU1dpemFyZEJvb2tFbmRAQDBRQlVBRlhfTVNHTUFQX0VOVFJZQEBCDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVBfRU5UUlkgY29uc3QgKiBjb25zdCAgQ0lJU1dpemFyZFBhZ2U6Ol9tZXNzYWdlRW50cmllcw0KKz9fbWVzc2FnZUVudHJpZXNAQ0lJU1dpemFyZFBhZ2VAQDBRQlVBRlhfTVNHTUFQX0VOVFJZQEBCDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVBfRU5UUlkgY29uc3QgKiBjb25zdCAgQ0lJU1dpemFyZFNoZWV0OjpfbWVzc2FnZUVudHJpZXMNCis/X21lc3NhZ2VFbnRyaWVzQENJSVNXaXphcmRTaGVldEBAMFFCVUFGWF9NU0dNQVBfRU5UUllAQEINCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUF9FTlRSWSBjb25zdCAqIGNvbnN0ICBDSW5oZXJpdGFuY2VEbGc6Ol9tZXNzYWdlRW50cmllcw0KKz9fbWVzc2FnZUVudHJpZXNAQ0luaGVyaXRhbmNlRGxnQEAwUUJVQUZYX01TR01BUF9FTlRSWUBAQg0KKzsgcHJpdmF0ZTogc3RhdGljIHN0cnVjdCBBRlhfTVNHTUFQX0VOVFJZIGNvbnN0ICogY29uc3QgIENSTUNDb21ib0JveDo6X21lc3NhZ2VFbnRyaWVzDQorP19tZXNzYWdlRW50cmllc0BDUk1DQ29tYm9Cb3hAQDBRQlVBRlhfTVNHTUFQX0VOVFJZQEBCDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVBfRU5UUlkgY29uc3QgKiBjb25zdCAgQ1JNQ0xpc3RCb3g6Ol9tZXNzYWdlRW50cmllcw0KKz9fbWVzc2FnZUVudHJpZXNAQ1JNQ0xpc3RCb3hAQDBRQlVBRlhfTVNHTUFQX0VOVFJZQEBCDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVBfRU5UUlkgY29uc3QgKiBjb25zdCAgQ1JNQ0xpc3RCb3hIZWFkZXI6Ol9tZXNzYWdlRW50cmllcw0KKz9fbWVzc2FnZUVudHJpZXNAQ1JNQ0xpc3RCb3hIZWFkZXJAQDBRQlVBRlhfTVNHTUFQX0VOVFJZQEBCDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjbGFzcyBDU3RyaW5nICogIENJTnVtYmVyOjpfcHN0cg0KKz9fcHN0ckBDSU51bWJlckBAMVBBVkNTdHJpbmdAQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ1N0cmluZyAqICBDSU51bWJlcjo6X3BzdHJCYWROdW1iZXINCis/X3BzdHJCYWROdW1iZXJAQ0lOdW1iZXJAQDJQQVZDU3RyaW5nQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDU3RyaW5nICogIENJTnVtYmVyOjpfcHN0ckN1cnJlbmN5DQorP19wc3RyQ3VycmVuY3lAQ0lOdW1iZXJAQDBQQVZDU3RyaW5nQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDU3RyaW5nICogIENJTnVtYmVyOjpfcHN0ckRlY2ltYWxQb2ludA0KKz9fcHN0ckRlY2ltYWxQb2ludEBDSU51bWJlckBAMFBBVkNTdHJpbmdAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENTdHJpbmcgKiAgQ0lOdW1iZXI6Ol9wc3RyVGhvdXNhbmRTZXBhcmF0b3INCis/X3BzdHJUaG91c2FuZFNlcGFyYXRvckBDSU51bWJlckBAMFBBVkNTdHJpbmdAQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IENSdW50aW1lQ2xhc3MgY29uc3QgIENFbXBoYXNpemVkRGlhbG9nOjpjbGFzc0NFbXBoYXNpemVkRGlhbG9nDQorP2NsYXNzQ0VtcGhhc2l6ZWREaWFsb2dAQ0VtcGhhc2l6ZWREaWFsb2dAQDJVQ1J1bnRpbWVDbGFzc0BAQg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IENSdW50aW1lQ2xhc3MgY29uc3QgIENIZWFkZXJMaXN0Qm94OjpjbGFzc0NIZWFkZXJMaXN0Qm94DQorP2NsYXNzQ0hlYWRlckxpc3RCb3hAQ0hlYWRlckxpc3RCb3hAQDJVQ1J1bnRpbWVDbGFzc0BAQg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IENSdW50aW1lQ2xhc3MgY29uc3QgIENJSVNXaXphcmRCb29rRW5kOjpjbGFzc0NJSVNXaXphcmRCb29rRW5kDQorP2NsYXNzQ0lJU1dpemFyZEJvb2tFbmRAQ0lJU1dpemFyZEJvb2tFbmRAQDJVQ1J1bnRpbWVDbGFzc0BAQg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IENSdW50aW1lQ2xhc3MgY29uc3QgIENJSVNXaXphcmRQYWdlOjpjbGFzc0NJSVNXaXphcmRQYWdlDQorP2NsYXNzQ0lJU1dpemFyZFBhZ2VAQ0lJU1dpemFyZFBhZ2VAQDJVQ1J1bnRpbWVDbGFzc0BAQg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IENSdW50aW1lQ2xhc3MgY29uc3QgIENJSVNXaXphcmRTaGVldDo6Y2xhc3NDSUlTV2l6YXJkU2hlZXQNCis/Y2xhc3NDSUlTV2l6YXJkU2hlZXRAQ0lJU1dpemFyZFNoZWV0QEAyVUNSdW50aW1lQ2xhc3NAQEINCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBDUnVudGltZUNsYXNzIGNvbnN0ICBDUk1DQ29tYm9Cb3g6OmNsYXNzQ1JNQ0NvbWJvQm94DQorP2NsYXNzQ1JNQ0NvbWJvQm94QENSTUNDb21ib0JveEBAMlVDUnVudGltZUNsYXNzQEBCDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyBjb25zdCAgQ1JNQ0xpc3RCb3g6OmNsYXNzQ1JNQ0xpc3RCb3gNCis/Y2xhc3NDUk1DTGlzdEJveEBDUk1DTGlzdEJveEBAMlVDUnVudGltZUNsYXNzQEBCDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyBjb25zdCAgQ1JNQ0xpc3RCb3hIZWFkZXI6OmNsYXNzQ1JNQ0xpc3RCb3hIZWFkZXINCis/Y2xhc3NDUk1DTGlzdEJveEhlYWRlckBDUk1DTGlzdEJveEhlYWRlckBAMlVDUnVudGltZUNsYXNzQEBCDQorOyBwdWJsaWM6IGNsYXNzIENEQyBjb25zdCAmIF9fdGhpc2NhbGwgQ1JNQ0xpc3RCb3hSZXNvdXJjZXM6OmRjQml0TWFwKHZvaWQpY29uc3QgDQorP2RjQml0TWFwQENSTUNMaXN0Qm94UmVzb3VyY2VzQEBRQkVBQlZDRENAQFhaDQorOyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIGNvbnN0ICBnX2xwc3pEdW1teVBhc3N3b3JkDQorP2dfbHBzekR1bW15UGFzc3dvcmRAQDNQQkdCIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBBRlhfTVNHTUFQIGNvbnN0ICBDQ29uZmlybURsZzo6bWVzc2FnZU1hcA0KKz9tZXNzYWdlTWFwQENDb25maXJtRGxnQEAxVUFGWF9NU0dNQVBAQEINCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBBRlhfTVNHTUFQIGNvbnN0ICBDRW1waGFzaXplZERpYWxvZzo6bWVzc2FnZU1hcA0KKz9tZXNzYWdlTWFwQENFbXBoYXNpemVkRGlhbG9nQEAxVUFGWF9NU0dNQVBAQEINCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBBRlhfTVNHTUFQIGNvbnN0ICBDSGVhZGVyTGlzdEJveDo6bWVzc2FnZU1hcA0KKz9tZXNzYWdlTWFwQENIZWFkZXJMaXN0Qm94QEAxVUFGWF9NU0dNQVBAQEINCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBBRlhfTVNHTUFQIGNvbnN0ICBDSUlTV2l6YXJkQm9va0VuZDo6bWVzc2FnZU1hcA0KKz9tZXNzYWdlTWFwQENJSVNXaXphcmRCb29rRW5kQEAxVUFGWF9NU0dNQVBAQEINCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBBRlhfTVNHTUFQIGNvbnN0ICBDSUlTV2l6YXJkUGFnZTo6bWVzc2FnZU1hcA0KKz9tZXNzYWdlTWFwQENJSVNXaXphcmRQYWdlQEAxVUFGWF9NU0dNQVBAQEINCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBBRlhfTVNHTUFQIGNvbnN0ICBDSUlTV2l6YXJkU2hlZXQ6Om1lc3NhZ2VNYXANCis/bWVzc2FnZU1hcEBDSUlTV2l6YXJkU2hlZXRAQDFVQUZYX01TR01BUEBAQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgc3RydWN0IEFGWF9NU0dNQVAgY29uc3QgIENJbmhlcml0YW5jZURsZzo6bWVzc2FnZU1hcA0KKz9tZXNzYWdlTWFwQENJbmhlcml0YW5jZURsZ0BAMVVBRlhfTVNHTUFQQEBCDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQUZYX01TR01BUCBjb25zdCAgQ1JNQ0NvbWJvQm94OjptZXNzYWdlTWFwDQorP21lc3NhZ2VNYXBAQ1JNQ0NvbWJvQm94QEAxVUFGWF9NU0dNQVBAQEINCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBBRlhfTVNHTUFQIGNvbnN0ICBDUk1DTGlzdEJveDo6bWVzc2FnZU1hcA0KKz9tZXNzYWdlTWFwQENSTUNMaXN0Qm94QEAxVUFGWF9NU0dNQVBAQEINCis7IHByb3RlY3RlZDogc3RhdGljIHN0cnVjdCBBRlhfTVNHTUFQIGNvbnN0ICBDUk1DTGlzdEJveEhlYWRlcjo6bWVzc2FnZU1hcA0KKz9tZXNzYWdlTWFwQENSTUNMaXN0Qm94SGVhZGVyQEAxVUFGWF9NU0dNQVBAQEINCis7IHByb3RlY3RlZDogc3RhdGljIGludCBjb25zdCAgQ01ldGFLZXk6OnNfTWV0YVRhYmxlU2l6ZQ0KKz9zX01ldGFUYWJsZVNpemVAQ01ldGFLZXlAQDFIQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgbG9uZyAgQ0Vycm9yOjpzX2Nkd0ZhY2lsaXRpZXMNCis/c19jZHdGYWNpbGl0aWVzQENFcnJvckBAMUtBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgIENFcnJvcjo6c19jZHdNYXhMTUVycg0KKz9zX2Nkd01heExNRXJyQENFcnJvckBAMUpBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgIENFcnJvcjo6c19jZHdNYXhXU0Vycg0KKz9zX2Nkd01heFdTRXJyQENFcnJvckBAMUpBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgIENFcnJvcjo6c19jZHdNaW5MTUVycg0KKz9zX2Nkd01pbkxNRXJyQENFcnJvckBAMUpBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGxvbmcgIENFcnJvcjo6c19jZHdNaW5XU0Vycg0KKz9zX2Nkd01pbldTRXJyQENFcnJvckBAMUpBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICBDRXJyb3I6OnNfY2hFc2NOdW1iZXINCis/c19jaEVzY051bWJlckBDRXJyb3JAQDFHQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgIENFcnJvcjo6c19jaEVzY1RleHQNCis/c19jaEVzY1RleHRAQ0Vycm9yQEAxR0INCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICBDRXJyb3I6OnNfY2hFc2NhcGUNCis/c19jaEVzY2FwZUBDRXJyb3JAQDFHQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IGNvbnN0ICBDSUlTV2l6YXJkU2hlZXQ6OnNfY25Cb2xkRGVsdGFGb250DQorP3NfY25Cb2xkRGVsdGFGb250QENJSVNXaXphcmRTaGVldEBAMUhCDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBpbnQgY29uc3QgIENJSVNXaXphcmRTaGVldDo6c19jbkJvbGREZWx0YUhlaWdodA0KKz9zX2NuQm9sZERlbHRhSGVpZ2h0QENJSVNXaXphcmRTaGVldEBAMUhCDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBpbnQgY29uc3QgIENJSVNXaXphcmRTaGVldDo6c19jbkJvbGREZWx0YVdpZHRoDQorP3NfY25Cb2xkRGVsdGFXaWR0aEBDSUlTV2l6YXJkU2hlZXRAQDFIQg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IGNvbnN0ICBDSUlTV2l6YXJkUGFnZTo6c19jbkhlYWRlck9mZnNldA0KKz9zX2NuSGVhZGVyT2Zmc2V0QENJSVNXaXphcmRQYWdlQEAxSEINCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogKiAgQ0Vycm9yOjpzX2NzekZhY2lsaXR5DQorP3NfY3N6RmFjaWxpdHlAQ0Vycm9yQEAxUEFQQkdBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogY29uc3QgIENFcnJvcjo6c19jc3pMTURMTA0KKz9zX2NzekxNRExMQENFcnJvckBAMVBCR0IgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBjb25zdCAgQ0Vycm9yOjpzX2NzeldTRExMDQorP3NfY3N6V1NETExAQ0Vycm9yQEAxUEJHQiBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBpbnQgIENFcnJvcjo6c19mQWxsb2NhdGVkDQorP3NfZkFsbG9jYXRlZEBDRXJyb3JAQDFIQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjbGFzcyBDTWFwPHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAmLGNsYXNzIENTdHJpbmcsY2xhc3MgQ1N0cmluZyAmPiAqICBDRXJyb3I6OnNfcG1hcEZhY2lsaXRpZXMNCis/c19wbWFwRmFjaWxpdGllc0BDRXJyb3JAQDFQQVY/JENNYXBAS0FBS1ZDU3RyaW5nQEBBQVYxQEBAQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjbGFzcyBDU3RyaW5nICogIENFcnJvcjo6c19wc3RyRGVmRXJyb3INCis/c19wc3RyRGVmRXJyb3JAQ0Vycm9yQEAxUEFWQ1N0cmluZ0BAQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjbGFzcyBDU3RyaW5nICogIENFcnJvcjo6c19wc3RyRGVmU3VjY3MNCis/c19wc3RyRGVmU3VjY3NAQ0Vycm9yQEAxUEFWQ1N0cmluZ0BAQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzdHJ1Y3QgQ01ldGFLZXk6OnRhZ01ERklFTERERUYgY29uc3QgKiBjb25zdCAgQ01ldGFLZXk6OnNfcmdNZXRhVGFibGUNCis/c19yZ01ldGFUYWJsZUBDTWV0YUtleUBAMVFCVXRhZ01ERklFTERERUZAMUBCDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIGNvbnN0ICBDTWV0YUJhY2s6OnNfc3pNYXN0ZXJBcHBSb290DQorP3Nfc3pNYXN0ZXJBcHBSb290QENNZXRhQmFja0BAMVFCR0INCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aWlzdWlvYmouZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lpc3Vpb2JqLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNTU0ZjFlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lpc3Vpb2JqLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElJU1VJT2JqLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJSVNVSU9iai5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aWlzdXRpbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWlzdXRpbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTFmZjQzNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpaXN1dGlsLmRlZgpAQCAtMCwwICsxLDIwMjkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSUlTVVRJTC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSUlTVVRJTC5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0RhdGFDYWNoZTxzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZPjo6Q0RhdGFDYWNoZTxzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZPih2b2lkKQ0KKz8/MD8kQ0RhdGFDYWNoZUBVREFURVRJTUVfRk9STUFUX0VOVFJZQEBAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEYXRhQ2FjaGU8Y2xhc3MgQ0RhdGVUaW1lPjo6Q0RhdGFDYWNoZTxjbGFzcyBDRGF0ZVRpbWU+KHZvaWQpDQorPz8wPyRDRGF0YUNhY2hlQFZDRGF0ZVRpbWVAQEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQUxMT0NfQ0FDSEVfSEFORExFUjo6QUxMT0NfQ0FDSEVfSEFORExFUihjaGFyIGNvbnN0ICosc3RydWN0IF9BTExPQ19DQUNIRV9DT05GSUdVUkFUSU9OIGNvbnN0ICosaW50KQ0KKz8/MEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFFBRUBQQkRQQlVfQUxMT0NfQ0FDSEVfQ09ORklHVVJBVElPTkBASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQVNDTE9HX0RBVEVUSU1FX0NBQ0hFOjpBU0NMT0dfREFURVRJTUVfQ0FDSEUodm9pZCkNCis/PzBBU0NMT0dfREFURVRJTUVfQ0FDSEVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJVRkZFUjo6QlVGRkVSKHVuc2lnbmVkIGludCkNCis/PzBCVUZGRVJAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCVUZGRVI6OkJVRkZFUih1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgaW50KQ0KKz8/MEJVRkZFUkBAUUFFQFBBRUlAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJVRkZFUl9DSEFJTjo6QlVGRkVSX0NIQUlOKHZvaWQpDQorPz8wQlVGRkVSX0NIQUlOQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCVUZGRVJfQ0hBSU5fSVRFTTo6QlVGRkVSX0NIQUlOX0lURU0odW5zaWduZWQgaW50KQ0KKz8/MEJVRkZFUl9DSEFJTl9JVEVNQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFM6OkNBQ0hFRF9EQVRFVElNRV9GT1JNQVRTKHZvaWQpDQorPz8wQ0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFNAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDcml0U2VjOjpDQ3JpdFNlYyh2b2lkKQ0KKz8/MENDcml0U2VjQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDREZUQ2FjaGU6OkNERlRDYWNoZSh2b2lkKQ0KKz8/MENERlRDYWNoZUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0RhdGVUaW1lOjpDRGF0ZVRpbWUoc3RydWN0IF9GSUxFVElNRSBjb25zdCAmKQ0KKz8/MENEYXRlVGltZUBAUUFFQEFCVV9GSUxFVElNRUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRGF0ZVRpbWU6OkNEYXRlVGltZShzdHJ1Y3QgX0ZJTEVUSU1FIGNvbnN0ICYsc3RydWN0IF9TWVNURU1USU1FIGNvbnN0ICYpDQorPz8wQ0RhdGVUaW1lQEBRQUVAQUJVX0ZJTEVUSU1FQEBBQlVfU1lTVEVNVElNRUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRGF0ZVRpbWU6OkNEYXRlVGltZShzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgJikNCis/PzBDRGF0ZVRpbWVAQFFBRUBBQlVfU1lTVEVNVElNRUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRGF0ZVRpbWU6OkNEYXRlVGltZSh2b2lkKQ0KKz8/MENEYXRlVGltZUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0RvdWJsZUxpc3Q6OkNEb3VibGVMaXN0KHZvaWQpDQorPz8wQ0RvdWJsZUxpc3RAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFdHdUcmFjZXI6OkNFdHdUcmFjZXIodm9pZCkNCis/PzBDRXR3VHJhY2VyQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRmFrZUxvY2s6OkNGYWtlTG9jayh2b2lkKQ0KKz8/MENGYWtlTG9ja0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0hVTktfQlVGRkVSOjpDSFVOS19CVUZGRVIodm9pZCkNCis/PzBDSFVOS19CVUZGRVJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkNMS1JIYXNoVGFibGUoY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcgY29uc3QgIChfX3N0ZGNhbGwqKSh2b2lkIGNvbnN0ICopLHVuc2lnbmVkIGxvbmcgKF9fc3RkY2FsbCopKHVuc2lnbmVkIGxvbmcpLGJvb2wgKF9fc3RkY2FsbCopKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyksdm9pZCAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLGludCksZG91YmxlLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxib29sKQ0KKz8/MENMS1JIYXNoVGFibGVAQFFBRUBQQkRQNkc/QktQQlhAWlA2R0tLQFpQNkdfTktLQFpQNkdYMUhAWk5LS19OQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlU3RhdHM6OkNMS1JIYXNoVGFibGVTdGF0cyh2b2lkKQ0KKz8/MENMS1JIYXNoVGFibGVTdGF0c0BAUUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6Q0xLUkhhc2hUYWJsZV9JdGVyYXRvcihjbGFzcyBDTEtSSGFzaFRhYmxlICosc2hvcnQpDQorPz8wQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBASUFFQFBBVkNMS1JIYXNoVGFibGVAQEZAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGVfSXRlcmF0b3I6OkNMS1JIYXNoVGFibGVfSXRlcmF0b3IoY2xhc3MgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvciBjb25zdCAmKQ0KKz8/MENMS1JIYXNoVGFibGVfSXRlcmF0b3JAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6Q0xLUkhhc2hUYWJsZV9JdGVyYXRvcih2b2lkKQ0KKz8/MENMS1JIYXNoVGFibGVfSXRlcmF0b3JAQFFBRUBYWg0KKzsgcHJpdmF0ZTogX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpDTEtSTGluZWFySGFzaFRhYmxlKGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nIGNvbnN0ICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqKSx1bnNpZ25lZCBsb25nIChfX3N0ZGNhbGwqKSh1bnNpZ25lZCBsb25nKSxib29sIChfX3N0ZGNhbGwqKSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpLHZvaWQgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKixpbnQpLGRvdWJsZSx1bnNpZ25lZCBsb25nLGNsYXNzIENMS1JIYXNoVGFibGUgKixib29sKQ0KKz8/MENMS1JMaW5lYXJIYXNoVGFibGVAQEFBRUBQQkRQNkc/QktQQlhAWlA2R0tLQFpQNkdfTktLQFpQNkdYMUhAWk5LUEFWQ0xLUkhhc2hUYWJsZUBAX05AWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkNMS1JMaW5lYXJIYXNoVGFibGUoY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcgY29uc3QgIChfX3N0ZGNhbGwqKSh2b2lkIGNvbnN0ICopLHVuc2lnbmVkIGxvbmcgKF9fc3RkY2FsbCopKHVuc2lnbmVkIGxvbmcpLGJvb2wgKF9fc3RkY2FsbCopKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyksdm9pZCAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLGludCksZG91YmxlLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxib29sKQ0KKz8/MENMS1JMaW5lYXJIYXNoVGFibGVAQFFBRUBQQkRQNkc/QktQQlhAWlA2R0tLQFpQNkdfTktLQFpQNkdYMUhAWk5LS19OQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjpDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGUgKixjbGFzcyBDTm9kZUNsdW1wICosdW5zaWduZWQgbG9uZyxzaG9ydCkNCis/PzBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBJQUVAUEFWQ0xLUkxpbmVhckhhc2hUYWJsZUBAUEFWQ05vZGVDbHVtcEBAS0ZAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3I6OkNMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciBjb25zdCAmKQ0KKz8/MENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcjo6Q0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcih2b2lkKQ0KKz8/MENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMb2NrZWREb3VibGVMaXN0OjpDTG9ja2VkRG91YmxlTGlzdCh2b2lkKQ0KKz8/MENMb2NrZWREb3VibGVMaXN0QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTG9ja2VkU2luZ2xlTGlzdDo6Q0xvY2tlZFNpbmdsZUxpc3Qodm9pZCkNCis/PzBDTG9ja2VkU2luZ2xlTGlzdEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpDUmVhZGVyV3JpdGVyTG9jazIodm9pZCkNCis/PzBDUmVhZGVyV3JpdGVyTG9jazJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6Q1JlYWRlcldyaXRlckxvY2szKHZvaWQpDQorPz8wQ1JlYWRlcldyaXRlckxvY2szQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6Q1JlYWRlcldyaXRlckxvY2sodm9pZCkNCis/PzBDUmVhZGVyV3JpdGVyTG9ja0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1J0bFJlc291cmNlOjpDUnRsUmVzb3VyY2Uodm9pZCkNCis/PzBDUnRsUmVzb3VyY2VAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTZWN1cml0eURpc3BlbnNlcjo6Q1NlY3VyaXR5RGlzcGVuc2VyKHZvaWQpDQorPz8wQ1NlY3VyaXR5RGlzcGVuc2VyQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU2hhcmVMb2NrOjpDU2hhcmVMb2NrKHZvaWQpDQorPz8wQ1NoYXJlTG9ja0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1NoYXJlbG9jazo6Q1NoYXJlbG9jayhpbnQsaW50KQ0KKz8/MENTaGFyZWxvY2tAQFFBRUBISEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1NpbmdsZUxpc3Q6OkNTaW5nbGVMaXN0KHZvaWQpDQorPz8wQ1NpbmdsZUxpc3RAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTbWFsbFNwaW5Mb2NrOjpDU21hbGxTcGluTG9jayh2b2lkKQ0KKz8/MENTbWFsbFNwaW5Mb2NrQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU3BpbkxvY2s6OkNTcGluTG9jayh2b2lkKQ0KKz8/MENTcGluTG9ja0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRVZFTlRfTE9HOjpFVkVOVF9MT0codW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBFVkVOVF9MT0dAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEVYVExPR19EQVRFVElNRV9DQUNIRTo6RVhUTE9HX0RBVEVUSU1FX0NBQ0hFKHZvaWQpDQorPz8wRVhUTE9HX0RBVEVUSU1FX0NBQ0hFQEBRQUVAWFoNCis7IHByaXZhdGU6IF9fdGhpc2NhbGwgSVBNX01FU1NBR0VfUElQRTo6SVBNX01FU1NBR0VfUElQRSh2b2lkKQ0KKz8/MElQTV9NRVNTQUdFX1BJUEVAQEFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE1COjpNQihzdHJ1Y3QgSU1TQWRtaW5CYXNlVyAqKQ0KKz8/ME1CQEBRQUVAUEFVSU1TQWRtaW5CYXNlV0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNQl9CQVNFX05PVElGSUNBVElPTl9TSU5LOjpNQl9CQVNFX05PVElGSUNBVElPTl9TSU5LKHZvaWQpDQorPz8wTUJfQkFTRV9OT1RJRklDQVRJT05fU0lOS0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTVVMVElTWjo6TVVMVElTWihjbGFzcyBNVUxUSVNaIGNvbnN0ICYpDQorPz8wTVVMVElTWkBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNVUxUSVNaOjpNVUxUSVNaKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZykNCis/PzBNVUxUSVNaQEBRQUVAUEFHS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTVVMVElTWjo6TVVMVElTWih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/ME1VTFRJU1pAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE1VTFRJU1o6Ok1VTFRJU1oodm9pZCkNCis/PzBNVUxUSVNaQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNVUxUSVNaQTo6TVVMVElTWkEoY2xhc3MgTVVMVElTWkEgY29uc3QgJikNCis/PzBNVUxUSVNaQUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNVUxUSVNaQTo6TVVMVElTWkEoY2hhciAqLHVuc2lnbmVkIGxvbmcpDQorPz8wTVVMVElTWkFAQFFBRUBQQURLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNVUxUSVNaQTo6TVVMVElTWkEoY2hhciBjb25zdCAqKQ0KKz8/ME1VTFRJU1pBQEBRQUVAUEJEQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNVUxUSVNaQTo6TVVMVElTWkEodm9pZCkNCis/PzBNVUxUSVNaQUBAUUFFQFhaDQorOyBwcml2YXRlOiBfX3RoaXNjYWxsIFNUUkE6OlNUUkEoY2xhc3MgU1RSQSBjb25zdCAmKQ0KKz8/MFNUUkFAQEFBRUBBQlYwQEBaDQorOyBwcml2YXRlOiBfX3RoaXNjYWxsIFNUUkE6OlNUUkEoY2hhciAqKQ0KKz8/MFNUUkFAQEFBRUBQQURAWg0KKzsgcHJpdmF0ZTogX190aGlzY2FsbCBTVFJBOjpTVFJBKGNoYXIgY29uc3QgKikNCis/PzBTVFJBQEBBQUVAUEJEQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTVFJBOjpTVFJBKGNoYXIgKix1bnNpZ25lZCBsb25nKQ0KKz8/MFNUUkFAQFFBRUBQQURLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTVFJBOjpTVFJBKHZvaWQpDQorPz8wU1RSQUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RSQVU6OlNUUkFVKGNsYXNzIFNUUkFVICYpDQorPz8wU1RSQVVAQFFBRUBBQVYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RSQVU6OlNUUkFVKGNoYXIgY29uc3QgKikNCis/PzBTVFJBVUBAUUFFQFBCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RSQVU6OlNUUkFVKGNoYXIgY29uc3QgKixpbnQpDQorPz8wU1RSQVVAQFFBRUBQQkRIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTVFJBVTo6U1RSQVUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBTVFJBVUBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RSQVU6OlNUUkFVKHZvaWQpDQorPz8wU1RSQVVAQFFBRUBYWg0KKzsgcHJpdmF0ZTogX190aGlzY2FsbCBTVFJVOjpTVFJVKGNsYXNzIFNUUlUgY29uc3QgJikNCis/PzBTVFJVQEBBQUVAQUJWMEBAWg0KKzsgcHJpdmF0ZTogX190aGlzY2FsbCBTVFJVOjpTVFJVKHVuc2lnbmVkIHNob3J0ICopDQorPz8wU1RSVUBAQUFFQFBBR0BaDQorOyBwcml2YXRlOiBfX3RoaXNjYWxsIFNUUlU6OlNUUlUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBTVFJVQEBBQUVAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTVFJVOjpTVFJVKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZykNCis/PzBTVFJVQEBRQUVAUEFHS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RSVTo6U1RSVSh2b2lkKQ0KKz8/MFNUUlVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFRTX1JFU09VUkNFOjpUU19SRVNPVVJDRSh2b2lkKQ0KKz8/MFRTX1JFU09VUkNFQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXM19EQVRFVElNRV9DQUNIRTo6VzNfREFURVRJTUVfQ0FDSEUodm9pZCkNCis/PzBXM19EQVRFVElNRV9DQUNIRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVzNfVFJBQ0VfTE9HOjpXM19UUkFDRV9MT0coY2xhc3MgVzNfVFJBQ0VfTE9HX0ZBQ1RPUlkgKikNCis/PzBXM19UUkFDRV9MT0dAQFFBRUBQQVZXM19UUkFDRV9MT0dfRkFDVE9SWUBAQFoNCis7IHByaXZhdGU6IF9fdGhpc2NhbGwgVzNfVFJBQ0VfTE9HX0ZBQ1RPUlk6OlczX1RSQUNFX0xPR19GQUNUT1JZKHZvaWQpDQorPz8wVzNfVFJBQ0VfTE9HX0ZBQ1RPUllAQEFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6On5BTExPQ19DQUNIRV9IQU5ETEVSKHZvaWQpDQorPz8xQUxMT0NfQ0FDSEVfSEFORExFUkBAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBBU0NMT0dfREFURVRJTUVfQ0FDSEU6On5BU0NMT0dfREFURVRJTUVfQ0FDSEUodm9pZCkNCis/PzFBU0NMT0dfREFURVRJTUVfQ0FDSEVAQFVBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJVRkZFUjo6fkJVRkZFUih2b2lkKQ0KKz8/MUJVRkZFUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQlVGRkVSX0NIQUlOOjp+QlVGRkVSX0NIQUlOKHZvaWQpDQorPz8xQlVGRkVSX0NIQUlOQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCVUZGRVJfQ0hBSU5fSVRFTTo6fkJVRkZFUl9DSEFJTl9JVEVNKHZvaWQpDQorPz8xQlVGRkVSX0NIQUlOX0lURU1AQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFM6On5DQUNIRURfREFURVRJTUVfRk9STUFUUyh2b2lkKQ0KKz8/MUNBQ0hFRF9EQVRFVElNRV9GT1JNQVRTQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ3JpdFNlYzo6fkNDcml0U2VjKHZvaWQpDQorPz8xQ0NyaXRTZWNAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEb3VibGVMaXN0Ojp+Q0RvdWJsZUxpc3Qodm9pZCkNCis/PzFDRG91YmxlTGlzdEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0V0d1RyYWNlcjo6fkNFdHdUcmFjZXIodm9pZCkNCis/PzFDRXR3VHJhY2VyQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRmFrZUxvY2s6On5DRmFrZUxvY2sodm9pZCkNCis/PzFDRmFrZUxvY2tAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENIVU5LX0JVRkZFUjo6fkNIVU5LX0JVRkZFUih2b2lkKQ0KKz8/MUNIVU5LX0JVRkZFUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6fkNMS1JIYXNoVGFibGUodm9pZCkNCis/PzFDTEtSSGFzaFRhYmxlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yOjp+Q0xLUkhhc2hUYWJsZV9JdGVyYXRvcih2b2lkKQ0KKz8/MUNMS1JIYXNoVGFibGVfSXRlcmF0b3JAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6On5DTEtSTGluZWFySGFzaFRhYmxlKHZvaWQpDQorPz8xQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcjo6fkNMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3Iodm9pZCkNCis/PzFDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTG9ja2VkRG91YmxlTGlzdDo6fkNMb2NrZWREb3VibGVMaXN0KHZvaWQpDQorPz8xQ0xvY2tlZERvdWJsZUxpc3RAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMb2NrZWRTaW5nbGVMaXN0Ojp+Q0xvY2tlZFNpbmdsZUxpc3Qodm9pZCkNCis/PzFDTG9ja2VkU2luZ2xlTGlzdEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1J0bFJlc291cmNlOjp+Q1J0bFJlc291cmNlKHZvaWQpDQorPz8xQ1J0bFJlc291cmNlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU2VjdXJpdHlEaXNwZW5zZXI6On5DU2VjdXJpdHlEaXNwZW5zZXIodm9pZCkNCis/PzFDU2VjdXJpdHlEaXNwZW5zZXJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTaGFyZUxvY2s6On5DU2hhcmVMb2NrKHZvaWQpDQorPz8xQ1NoYXJlTG9ja0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1NoYXJlbG9jazo6fkNTaGFyZWxvY2sodm9pZCkNCis/PzFDU2hhcmVsb2NrQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU2luZ2xlTGlzdDo6fkNTaW5nbGVMaXN0KHZvaWQpDQorPz8xQ1NpbmdsZUxpc3RAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEVWRU5UX0xPRzo6fkVWRU5UX0xPRyh2b2lkKQ0KKz8/MUVWRU5UX0xPR0BAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBFWFRMT0dfREFURVRJTUVfQ0FDSEU6On5FWFRMT0dfREFURVRJTUVfQ0FDSEUodm9pZCkNCis/PzFFWFRMT0dfREFURVRJTUVfQ0FDSEVAQFVBRUBYWg0KKzsgcHJpdmF0ZTogX190aGlzY2FsbCBJUE1fTUVTU0FHRV9QSVBFOjp+SVBNX01FU1NBR0VfUElQRSh2b2lkKQ0KKz8/MUlQTV9NRVNTQUdFX1BJUEVAQEFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE1COjp+TUIodm9pZCkNCis/PzFNQkBAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBNQl9CQVNFX05PVElGSUNBVElPTl9TSU5LOjp+TUJfQkFTRV9OT1RJRklDQVRJT05fU0lOSyh2b2lkKQ0KKz8/MU1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTktAQFVBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE1VTFRJU1o6On5NVUxUSVNaKHZvaWQpDQorPz8xTVVMVElTWkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTVVMVElTWkE6On5NVUxUSVNaQSh2b2lkKQ0KKz8/MU1VTFRJU1pBQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTVFJBOjp+U1RSQSh2b2lkKQ0KKz8/MVNUUkFAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNUUkFVOjp+U1RSQVUodm9pZCkNCis/PzFTVFJBVUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RSVTo6flNUUlUodm9pZCkNCis/PzFTVFJVQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBUU19SRVNPVVJDRTo6flRTX1JFU09VUkNFKHZvaWQpDQorPz8xVFNfUkVTT1VSQ0VAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgVzNfREFURVRJTUVfQ0FDSEU6On5XM19EQVRFVElNRV9DQUNIRSh2b2lkKQ0KKz8/MVczX0RBVEVUSU1FX0NBQ0hFQEBVQUVAWFoNCis7IHByaXZhdGU6IF9fdGhpc2NhbGwgVzNfVFJBQ0VfTE9HOjp+VzNfVFJBQ0VfTE9HKHZvaWQpDQorPz8xVzNfVFJBQ0VfTE9HQEBBQUVAWFoNCis7IHByaXZhdGU6IF9fdGhpc2NhbGwgVzNfVFJBQ0VfTE9HX0ZBQ1RPUlk6On5XM19UUkFDRV9MT0dfRkFDVE9SWSh2b2lkKQ0KKz8/MVczX1RSQUNFX0xPR19GQUNUT1JZQEBBQUVAWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgKiBfX3N0ZGNhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6b3BlcmF0b3IgbmV3KHVuc2lnbmVkIGludCkNCis/PzJDTEtSTGluZWFySGFzaFRhYmxlQEBTR1BBWElAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6b3BlcmF0b3IgZGVsZXRlKHZvaWQgKikNCis/PzNDTEtSTGluZWFySGFzaFRhYmxlQEBTR1hQQVhAWg0KKzsgcHVibGljOiBjbGFzcyBDRGF0YUNhY2hlPHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlk+ICYgX190aGlzY2FsbCBDRGF0YUNhY2hlPHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlk+OjpvcGVyYXRvcj0oY2xhc3MgQ0RhdGFDYWNoZTxzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZPiBjb25zdCAmKQ0KKz8/ND8kQ0RhdGFDYWNoZUBVREFURVRJTUVfRk9STUFUX0VOVFJZQEBAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRGF0YUNhY2hlPGNsYXNzIENEYXRlVGltZT4gJiBfX3RoaXNjYWxsIENEYXRhQ2FjaGU8Y2xhc3MgQ0RhdGVUaW1lPjo6b3BlcmF0b3I9KGNsYXNzIENEYXRhQ2FjaGU8Y2xhc3MgQ0RhdGVUaW1lPiBjb25zdCAmKQ0KKz8/ND8kQ0RhdGFDYWNoZUBWQ0RhdGVUaW1lQEBAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja0Jhc2U8MSwxLDMsMSwzLDI+ICYgX190aGlzY2FsbCBDTG9ja0Jhc2U8MSwxLDMsMSwzLDI+OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tCYXNlPDEsMSwzLDEsMywyPiBjb25zdCAmKQ0KKz8/ND8kQ0xvY2tCYXNlQCQwMCQwMCQwMiQwMCQwMiQwMUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrQmFzZTwyLDEsMSwxLDMsMj4gJiBfX3RoaXNjYWxsIENMb2NrQmFzZTwyLDEsMSwxLDMsMj46Om9wZXJhdG9yPShjbGFzcyBDTG9ja0Jhc2U8MiwxLDEsMSwzLDI+IGNvbnN0ICYpDQorPz80PyRDTG9ja0Jhc2VAJDAxJDAwJDAwJDAwJDAyJDAxQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tCYXNlPDMsMSwxLDEsMSwxPiAmIF9fdGhpc2NhbGwgQ0xvY2tCYXNlPDMsMSwxLDEsMSwxPjo6b3BlcmF0b3I9KGNsYXNzIENMb2NrQmFzZTwzLDEsMSwxLDEsMT4gY29uc3QgJikNCis/PzQ/JENMb2NrQmFzZUAkMDIkMDAkMDAkMDAkMDAkMDBAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja0Jhc2U8NCwxLDEsMiwzLDM+ICYgX190aGlzY2FsbCBDTG9ja0Jhc2U8NCwxLDEsMiwzLDM+OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tCYXNlPDQsMSwxLDIsMywzPiBjb25zdCAmKQ0KKz8/ND8kQ0xvY2tCYXNlQCQwMyQwMCQwMCQwMSQwMiQwMkBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrQmFzZTw1LDIsMSwyLDMsMz4gJiBfX3RoaXNjYWxsIENMb2NrQmFzZTw1LDIsMSwyLDMsMz46Om9wZXJhdG9yPShjbGFzcyBDTG9ja0Jhc2U8NSwyLDEsMiwzLDM+IGNvbnN0ICYpDQorPz80PyRDTG9ja0Jhc2VAJDA0JDAxJDAwJDAxJDAyJDAyQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tCYXNlPDYsMiwxLDIsMywzPiAmIF9fdGhpc2NhbGwgQ0xvY2tCYXNlPDYsMiwxLDIsMywzPjo6b3BlcmF0b3I9KGNsYXNzIENMb2NrQmFzZTw2LDIsMSwyLDMsMz4gY29uc3QgJikNCis/PzQ/JENMb2NrQmFzZUAkMDUkMDEkMDAkMDEkMDIkMDJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja0Jhc2U8NywyLDIsMSwzLDI+ICYgX190aGlzY2FsbCBDTG9ja0Jhc2U8NywyLDIsMSwzLDI+OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tCYXNlPDcsMiwyLDEsMywyPiBjb25zdCAmKQ0KKz8/ND8kQ0xvY2tCYXNlQCQwNiQwMSQwMSQwMCQwMiQwMUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrQmFzZTw4LDIsMiwxLDMsMj4gJiBfX3RoaXNjYWxsIENMb2NrQmFzZTw4LDIsMiwxLDMsMj46Om9wZXJhdG9yPShjbGFzcyBDTG9ja0Jhc2U8OCwyLDIsMSwzLDI+IGNvbnN0ICYpDQorPz80PyRDTG9ja0Jhc2VAJDA3JDAxJDAxJDAwJDAyJDAxQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tCYXNlPDksMiwxLDEsMywyPiAmIF9fdGhpc2NhbGwgQ0xvY2tCYXNlPDksMiwxLDEsMywyPjo6b3BlcmF0b3I9KGNsYXNzIENMb2NrQmFzZTw5LDIsMSwxLDMsMj4gY29uc3QgJikNCis/PzQ/JENMb2NrQmFzZUAkMDgkMDEkMDAkMDAkMDIkMDFAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBBTExPQ19DQUNIRV9IQU5ETEVSICYgX190aGlzY2FsbCBBTExPQ19DQUNIRV9IQU5ETEVSOjpvcGVyYXRvcj0oY2xhc3MgQUxMT0NfQ0FDSEVfSEFORExFUiBjb25zdCAmKQ0KKz8/NEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBCVUZGRVIgJiBfX3RoaXNjYWxsIEJVRkZFUjo6b3BlcmF0b3I9KGNsYXNzIEJVRkZFUiBjb25zdCAmKQ0KKz8/NEJVRkZFUkBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIEJVRkZFUl9DSEFJTiAmIF9fdGhpc2NhbGwgQlVGRkVSX0NIQUlOOjpvcGVyYXRvcj0oY2xhc3MgQlVGRkVSX0NIQUlOIGNvbnN0ICYpDQorPz80QlVGRkVSX0NIQUlOQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQlVGRkVSX0NIQUlOX0lURU0gJiBfX3RoaXNjYWxsIEJVRkZFUl9DSEFJTl9JVEVNOjpvcGVyYXRvcj0oY2xhc3MgQlVGRkVSX0NIQUlOX0lURU0gY29uc3QgJikNCis/PzRCVUZGRVJfQ0hBSU5fSVRFTUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENDcml0U2VjICYgX190aGlzY2FsbCBDQ3JpdFNlYzo6b3BlcmF0b3I9KGNsYXNzIENDcml0U2VjIGNvbnN0ICYpDQorPz80Q0NyaXRTZWNAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDREZUQ2FjaGUgJiBfX3RoaXNjYWxsIENERlRDYWNoZTo6b3BlcmF0b3I9KGNsYXNzIENERlRDYWNoZSBjb25zdCAmKQ0KKz8/NENERlRDYWNoZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENEYXRlVGltZSAmIF9fdGhpc2NhbGwgQ0RhdGVUaW1lOjpvcGVyYXRvcj0oY2xhc3MgQ0RhdGVUaW1lIGNvbnN0ICYpDQorPz80Q0RhdGVUaW1lQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0RvdWJsZUxpc3QgJiBfX3RoaXNjYWxsIENEb3VibGVMaXN0OjpvcGVyYXRvcj0oY2xhc3MgQ0RvdWJsZUxpc3QgY29uc3QgJikNCis/PzRDRG91YmxlTGlzdEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENGYWtlTG9jayAmIF9fdGhpc2NhbGwgQ0Zha2VMb2NrOjpvcGVyYXRvcj0oY2xhc3MgQ0Zha2VMb2NrIGNvbnN0ICYpDQorPz80Q0Zha2VMb2NrQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0hVTktfQlVGRkVSICYgX190aGlzY2FsbCBDSFVOS19CVUZGRVI6Om9wZXJhdG9yPShjbGFzcyBDSFVOS19CVUZGRVIgY29uc3QgJikNCis/PzRDSFVOS19CVUZGRVJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTEtSSGFzaFRhYmxlU3RhdHMgJiBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGVTdGF0czo6b3BlcmF0b3I9KGNsYXNzIENMS1JIYXNoVGFibGVTdGF0cyBjb25zdCAmKQ0KKz8/NENMS1JIYXNoVGFibGVTdGF0c0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgJiBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGVfSXRlcmF0b3I6Om9wZXJhdG9yPShjbGFzcyBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yIGNvbnN0ICYpDQorPz80Q0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgJiBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3I6Om9wZXJhdG9yPShjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yIGNvbnN0ICYpDQorPz80Q0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrZWREb3VibGVMaXN0ICYgX190aGlzY2FsbCBDTG9ja2VkRG91YmxlTGlzdDo6b3BlcmF0b3I9KGNsYXNzIENMb2NrZWREb3VibGVMaXN0IGNvbnN0ICYpDQorPz80Q0xvY2tlZERvdWJsZUxpc3RAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja2VkU2luZ2xlTGlzdCAmIF9fdGhpc2NhbGwgQ0xvY2tlZFNpbmdsZUxpc3Q6Om9wZXJhdG9yPShjbGFzcyBDTG9ja2VkU2luZ2xlTGlzdCBjb25zdCAmKQ0KKz8/NENMb2NrZWRTaW5nbGVMaXN0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1JlYWRlcldyaXRlckxvY2syICYgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6Om9wZXJhdG9yPShjbGFzcyBDUmVhZGVyV3JpdGVyTG9jazIgY29uc3QgJikNCis/PzRDUmVhZGVyV3JpdGVyTG9jazJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUmVhZGVyV3JpdGVyTG9jazMgJiBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6b3BlcmF0b3I9KGNsYXNzIENSZWFkZXJXcml0ZXJMb2NrMyBjb25zdCAmKQ0KKz8/NENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENSZWFkZXJXcml0ZXJMb2NrICYgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6b3BlcmF0b3I9KGNsYXNzIENSZWFkZXJXcml0ZXJMb2NrIGNvbnN0ICYpDQorPz80Q1JlYWRlcldyaXRlckxvY2tAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUnRsUmVzb3VyY2UgJiBfX3RoaXNjYWxsIENSdGxSZXNvdXJjZTo6b3BlcmF0b3I9KGNsYXNzIENSdGxSZXNvdXJjZSBjb25zdCAmKQ0KKz8/NENSdGxSZXNvdXJjZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTZWN1cml0eURpc3BlbnNlciAmIF9fdGhpc2NhbGwgQ1NlY3VyaXR5RGlzcGVuc2VyOjpvcGVyYXRvcj0oY2xhc3MgQ1NlY3VyaXR5RGlzcGVuc2VyIGNvbnN0ICYpDQorPz80Q1NlY3VyaXR5RGlzcGVuc2VyQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1NpbmdsZUxpc3QgJiBfX3RoaXNjYWxsIENTaW5nbGVMaXN0OjpvcGVyYXRvcj0oY2xhc3MgQ1NpbmdsZUxpc3QgY29uc3QgJikNCis/PzRDU2luZ2xlTGlzdEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTbWFsbFNwaW5Mb2NrICYgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6b3BlcmF0b3I9KGNsYXNzIENTbWFsbFNwaW5Mb2NrIGNvbnN0ICYpDQorPz80Q1NtYWxsU3BpbkxvY2tAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU3BpbkxvY2sgJiBfX3RoaXNjYWxsIENTcGluTG9jazo6b3BlcmF0b3I9KGNsYXNzIENTcGluTG9jayBjb25zdCAmKQ0KKz8/NENTcGluTG9ja0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlkgJiBfX3RoaXNjYWxsIERBVEVUSU1FX0ZPUk1BVF9FTlRSWTo6b3BlcmF0b3I9KHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlkgY29uc3QgJikNCis/PzREQVRFVElNRV9GT1JNQVRfRU5UUllAQFFBRUFBVTBAQUJVMEBAWg0KKzsgcHVibGljOiBjbGFzcyBFVkVOVF9MT0cgJiBfX3RoaXNjYWxsIEVWRU5UX0xPRzo6b3BlcmF0b3I9KGNsYXNzIEVWRU5UX0xPRyBjb25zdCAmKQ0KKz8/NEVWRU5UX0xPR0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIElQTV9NRVNTQUdFX1BJUEUgJiBfX3RoaXNjYWxsIElQTV9NRVNTQUdFX1BJUEU6Om9wZXJhdG9yPShjbGFzcyBJUE1fTUVTU0FHRV9QSVBFIGNvbnN0ICYpDQorPz80SVBNX01FU1NBR0VfUElQRUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE1CICYgX190aGlzY2FsbCBNQjo6b3BlcmF0b3I9KGNsYXNzIE1CIGNvbnN0ICYpDQorPz80TUJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBNVUxUSVNaICYgX190aGlzY2FsbCBNVUxUSVNaOjpvcGVyYXRvcj0oY2xhc3MgTVVMVElTWiBjb25zdCAmKQ0KKz8/NE1VTFRJU1pAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBNVUxUSVNaQSAmIF9fdGhpc2NhbGwgTVVMVElTWkE6Om9wZXJhdG9yPShjbGFzcyBNVUxUSVNaQSBjb25zdCAmKQ0KKz8/NE1VTFRJU1pBQEBRQUVBQVYwQEFCVjBAQFoNCis7IHByaXZhdGU6IGNsYXNzIFNUUkEgJiBfX3RoaXNjYWxsIFNUUkE6Om9wZXJhdG9yPShjbGFzcyBTVFJBIGNvbnN0ICYpDQorPz80U1RSQUBAQUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFNUUkFVICYgX190aGlzY2FsbCBTVFJBVTo6b3BlcmF0b3I9KGNsYXNzIFNUUkFVIGNvbnN0ICYpDQorPz80U1RSQVVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHJpdmF0ZTogY2xhc3MgU1RSVSAmIF9fdGhpc2NhbGwgU1RSVTo6b3BlcmF0b3I9KGNsYXNzIFNUUlUgY29uc3QgJikNCis/PzRTVFJVQEBBQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgVFNfUkVTT1VSQ0UgJiBfX3RoaXNjYWxsIFRTX1JFU09VUkNFOjpvcGVyYXRvcj0oY2xhc3MgVFNfUkVTT1VSQ0UgY29uc3QgJikNCis/PzRUU19SRVNPVVJDRUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFczX1RSQUNFX0xPRyAmIF9fdGhpc2NhbGwgVzNfVFJBQ0VfTE9HOjpvcGVyYXRvcj0oY2xhc3MgVzNfVFJBQ0VfTE9HIGNvbnN0ICYpDQorPz80VzNfVFJBQ0VfTE9HQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgVzNfVFJBQ0VfTE9HX0ZBQ1RPUlkgJiBfX3RoaXNjYWxsIFczX1RSQUNFX0xPR19GQUNUT1JZOjpvcGVyYXRvcj0oY2xhc3MgVzNfVFJBQ0VfTE9HX0ZBQ1RPUlkgY29uc3QgJikNCis/PzRXM19UUkFDRV9MT0dfRkFDVE9SWUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yOjpvcGVyYXRvcj09KGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJiljb25zdCANCis/PzhDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBRQkVfTkFCVjBAQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3I6Om9wZXJhdG9yPT0oY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciBjb25zdCAmKWNvbnN0IA0KKz8/OENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQFFCRV9OQUJWMEBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6b3BlcmF0b3IhPShjbGFzcyBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yIGNvbnN0ICYpY29uc3QgDQorPz85Q0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAUUJFX05BQlYwQEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjpvcGVyYXRvciE9KGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJiljb25zdCANCis/PzlDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBRQkVfTkFCVjBAQFoNCis7IGNvbnN0ICBBU0NMT0dfREFURVRJTUVfQ0FDSEU6OmB2ZnRhYmxlJw0KKz8/XzdBU0NMT0dfREFURVRJTUVfQ0FDSEVAQDZCQA0KKzsgY29uc3QgIENBQ0hFRF9EQVRFVElNRV9GT1JNQVRTOjpgdmZ0YWJsZScNCis/P183Q0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFNAQDZCQA0KKzsgY29uc3QgIEVYVExPR19EQVRFVElNRV9DQUNIRTo6YHZmdGFibGUnDQorPz9fN0VYVExPR19EQVRFVElNRV9DQUNIRUBANkJADQorOyBjb25zdCAgVzNfREFURVRJTUVfQ0FDSEU6OmB2ZnRhYmxlJw0KKz8/XzdXM19EQVRFVElNRV9DQUNIRUBANkJADQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBCVUZGRVI6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRkJVRkZFUkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBCVUZGRVJfQ0hBSU5fSVRFTTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GQlVGRkVSX0NIQUlOX0lURU1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NoYXJlbG9jazo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GQ1NoYXJlbG9ja0BAUUFFWFhaDQorQUNvcHlUb1cNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1NoYXJlbG9jazo6QWN0aXZlVXNlcnModm9pZCkNCis/QWN0aXZlVXNlcnNAQ1NoYXJlbG9ja0BAUUFFSFhaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgQ0hVTktfQlVGRkVSOjpBZGROZXdCbG9jayh1bnNpZ25lZCBsb25nKQ0KKz9BZGROZXdCbG9ja0BDSFVOS19CVUZGRVJAQEFBRUpLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTUI6OkFkZE9iamVjdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9BZGRPYmplY3RATUJAQFFBRUhQQkdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIE1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTks6OkFkZFJlZih2b2lkKQ0KKz9BZGRSZWZATUJfQkFTRV9OT1RJRklDQVRJT05fU0lOS0BAVUFHS1haDQorQWRkV3BnVG9Ub2tlbkRlZmF1bHREYWNsDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDU2VjdXJpdHlEaXNwZW5zZXI6OkFkanVzdFRva2VuRm9yQWRtaW5pc3RyYXRvcnModm9pZCAqKQ0KKz9BZGp1c3RUb2tlbkZvckFkbWluaXN0cmF0b3JzQENTZWN1cml0eURpc3BlbnNlckBAUUFFS1BBWEBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3RoaXNjYWxsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OkFsbG9jKHZvaWQpDQorP0FsbG9jQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFFBRVBBWFhaDQorQWxsb2NhdGVBbmRDcmVhdGVXZWxsS25vd25BY2wNCitBbGxvY2F0ZUFuZENyZWF0ZVdlbGxLbm93blNpZA0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0hVTktfQlVGRkVSOjpBbGxvY2F0ZVNwYWNlKHVuc2lnbmVkIGxvbmcsY2hhciAqICopDQorP0FsbG9jYXRlU3BhY2VAQ0hVTktfQlVGRkVSQEBRQUVKS1BBUEFEQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENIVU5LX0JVRkZFUjo6QWxsb2NhdGVTcGFjZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogKikNCis/QWxsb2NhdGVTcGFjZUBDSFVOS19CVUZGRVJAQFFBRUpLUEFQQUdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0hVTktfQlVGRkVSOjpBbGxvY2F0ZVNwYWNlKHVuc2lnbmVkIGxvbmcsdm9pZCAqICopDQorP0FsbG9jYXRlU3BhY2VAQ0hVTktfQlVGRkVSQEBRQUVKS1BBUEFYQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENIVU5LX0JVRkZFUjo6QWxsb2NhdGVTcGFjZShjaGFyICosdW5zaWduZWQgbG9uZyxjaGFyICogKikNCis/QWxsb2NhdGVTcGFjZUBDSFVOS19CVUZGRVJAQFFBRUpQQURLUEFQQURAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0hVTktfQlVGRkVSOjpBbGxvY2F0ZVNwYWNlKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCAqICopDQorP0FsbG9jYXRlU3BhY2VAQ0hVTktfQlVGRkVSQEBRQUVKUEFHS1BBUEFHQFoNCitBbHRlckRlc2t0b3BGb3JVc2VyDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1VTFRJU1o6OkFwcGVuZChjbGFzcyBTVFJVICYpDQorP0FwcGVuZEBNVUxUSVNaQEBRQUVIQUFWU1RSVUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTVVMVElTWjo6QXBwZW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0FwcGVuZEBNVUxUSVNaQEBRQUVIUEJHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTVVMVElTWjo6QXBwZW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/QXBwZW5kQE1VTFRJU1pAQFFBRUhQQkdLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTVVMVElTWkE6OkFwcGVuZChjbGFzcyBTVFJBICYpDQorP0FwcGVuZEBNVUxUSVNaQUBAUUFFSEFBVlNUUkFAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1VTFRJU1pBOjpBcHBlbmQoY2hhciBjb25zdCAqKQ0KKz9BcHBlbmRATVVMVElTWkFAQFFBRUhQQkRAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBNVUxUSVNaQTo6QXBwZW5kKGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9BcHBlbmRATVVMVElTWkFAQFFBRUhQQkRLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkFwcGVuZChjbGFzcyBTVFJBIGNvbnN0ICYpDQorP0FwcGVuZEBTVFJBQEBRQUVKQUJWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6QXBwZW5kKGNoYXIgY29uc3QgKikNCis/QXBwZW5kQFNUUkFAQFFBRUpQQkRAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6QXBwZW5kKGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9BcHBlbmRAU1RSQUBAUUFFSlBCREtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJBVTo6QXBwZW5kKGNsYXNzIFNUUkFVICYpDQorP0FwcGVuZEBTVFJBVUBAUUFFSEFBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSQVU6OkFwcGVuZChjaGFyIGNvbnN0ICopDQorP0FwcGVuZEBTVFJBVUBAUUFFSFBCREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUkFVOjpBcHBlbmQoY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0FwcGVuZEBTVFJBVUBAUUFFSFBCREtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJBVTo6QXBwZW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0FwcGVuZEBTVFJBVUBAUUFFSFBCR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUkFVOjpBcHBlbmQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9BcHBlbmRAU1RSQVVAQFFBRUhQQkdLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUlU6OkFwcGVuZChjbGFzcyBTVFJVIGNvbnN0ICYpDQorP0FwcGVuZEBTVFJVQEBRQUVKQUJWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSVTo6QXBwZW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0FwcGVuZEBTVFJVQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUlU6OkFwcGVuZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0FwcGVuZEBTVFJVQEBRQUVKUEJHS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJVOjpBcHBlbmRBKGNoYXIgY29uc3QgKikNCis/QXBwZW5kQUBTVFJVQEBRQUVKUEJEQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQlVGRkVSX0NIQUlOOjpBcHBlbmRCdWZmZXIoY2xhc3MgQlVGRkVSX0NIQUlOX0lURU0gKikNCis/QXBwZW5kQnVmZmVyQEJVRkZFUl9DSEFJTkBAUUFFSFBBVkJVRkZFUl9DSEFJTl9JVEVNQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVzNfVFJBQ0VfTE9HX0ZBQ1RPUlk6OkFwcGVuZERhdGEodm9pZCAqLHVuc2lnbmVkIGxvbmcpDQorP0FwcGVuZERhdGFAVzNfVFJBQ0VfTE9HX0ZBQ1RPUllAQFFBRUpQQVhLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTVVMVElTWkE6OkFwcGVuZFcodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/QXBwZW5kV0BNVUxUSVNaQUBAUUFFSFBCR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1VTFRJU1pBOjpBcHBlbmRXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/QXBwZW5kV0BNVUxUSVNaQUBAUUFFSFBCR0tAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6QXBwZW5kVyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9BcHBlbmRXQFNUUkFAQFFBRUpQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6QXBwZW5kVyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0FwcGVuZFdAU1RSQUBAUUFFSlBCR0tAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6QXBwZW5kV1RydW5jYXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0FwcGVuZFdUcnVuY2F0ZUBTVFJBQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkFwcGVuZFdUcnVuY2F0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0FwcGVuZFdUcnVuY2F0ZUBTVFJBQEBRQUVKUEJHS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpBcHBseShlbnVtIExLX0FDVElPTiAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKix2b2lkICopLHZvaWQgKixlbnVtIExLX0xPQ0tUWVBFKQ0KKz9BcHBseUBDTEtSSGFzaFRhYmxlQEBRQUVLUDZHP0FXNExLX0FDVElPTkBAUEJYUEFYQFoxVzRMS19MT0NLVFlQRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkFwcGx5KGVudW0gTEtfQUNUSU9OICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLHZvaWQgKiksdm9pZCAqLGVudW0gTEtfTE9DS1RZUEUpDQorP0FwcGx5QENMS1JMaW5lYXJIYXNoVGFibGVAQFFBRUtQNkc/QVc0TEtfQUNUSU9OQEBQQlhQQVhAWjFXNExLX0xPQ0tUWVBFQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6QXBwbHlJZihlbnVtIExLX1BSRURJQ0FURSAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKix2b2lkICopLGVudW0gTEtfQUNUSU9OICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLHZvaWQgKiksdm9pZCAqLGVudW0gTEtfTE9DS1RZUEUpDQorP0FwcGx5SWZAQ0xLUkhhc2hUYWJsZUBAUUFFS1A2Rz9BVzRMS19QUkVESUNBVEVAQFBCWFBBWEBaUDZHP0FXNExLX0FDVElPTkBAMDFAWjFXNExLX0xPQ0tUWVBFQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6QXBwbHlJZihlbnVtIExLX1BSRURJQ0FURSAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKix2b2lkICopLGVudW0gTEtfQUNUSU9OICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLHZvaWQgKiksdm9pZCAqLGVudW0gTEtfTE9DS1RZUEUpDQorP0FwcGx5SWZAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUFFS1A2Rz9BVzRMS19QUkVESUNBVEVAQFBCWFBBWEBaUDZHP0FXNExLX0FDVElPTkBAMDFAWjFXNExLX0xPQ0tUWVBFQEBAWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgTVVMVElTWjo6QXV4QXBwZW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50LGludCkNCis/QXV4QXBwZW5kQE1VTFRJU1pAQEFBRUhQQkdJSEBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBNVUxUSVNaQTo6QXV4QXBwZW5kKHVuc2lnbmVkIGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQsaW50KQ0KKz9BdXhBcHBlbmRATVVMVElTWkFAQEFBRUhQQkVJSEBaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6QXV4QXBwZW5kKHVuc2lnbmVkIGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50KQ0KKz9BdXhBcHBlbmRAU1RSQUBAQUFFSlBCRUtLSEBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBTVFJBVTo6QXV4QXBwZW5kKGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQsaW50KQ0KKz9BdXhBcHBlbmRAU1RSQVVAQEFBRUhQQkRJSEBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBTVFJBVTo6QXV4QXBwZW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50LGludCkNCis/QXV4QXBwZW5kQFNUUkFVQEBBQUVIUEJHSUhAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIFNUUlU6OkF1eEFwcGVuZCh1bnNpZ25lZCBjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCkNCis/QXV4QXBwZW5kQFNUUlVAQEFBRUpQQkVLS0hAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIFNUUlU6OkF1eEFwcGVuZEEodW5zaWduZWQgY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQpDQorP0F1eEFwcGVuZEFAU1RSVUBAQUFFSlBCRUtLSEBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBNVUxUSVNaQTo6QXV4QXBwZW5kVyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCxpbnQpDQorP0F1eEFwcGVuZFdATVVMVElTWkFAQEFBRUhQQkdJSEBaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6QXV4QXBwZW5kVyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQpDQorP0F1eEFwcGVuZFdAU1RSQUBAQUFFSlBCR0tLSEBaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6QXV4QXBwZW5kV1RydW5jYXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCkNCis/QXV4QXBwZW5kV1RydW5jYXRlQFNUUkFAQEFBRUpQQkdLS0hAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIE1VTFRJU1o6OkF1eEluaXQodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/QXV4SW5pdEBNVUxUSVNaQEBBQUVYUEJHQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBNVUxUSVNaQTo6QXV4SW5pdCh1bnNpZ25lZCBjaGFyIGNvbnN0ICopDQorP0F1eEluaXRATVVMVElTWkFAQEFBRVhQQkVAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIFNUUkFVOjpBdXhJbml0KGNoYXIgY29uc3QgKikNCis/QXV4SW5pdEBTVFJBVUBAQUFFWFBCREBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgU1RSQVU6OkF1eEluaXQodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/QXV4SW5pdEBTVFJBVUBAQUFFWFBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6QmVnaW4odm9pZCkNCis/QmVnaW5AQ0xLUkhhc2hUYWJsZUBAUUFFP0FWQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpCZWdpbih2b2lkKQ0KKz9CZWdpbkBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUU/QVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ0xLUkhhc2hUYWJsZVN0YXRzOjpCdWNrZXRJbmRleChsb25nKQ0KKz9CdWNrZXRJbmRleEBDTEtSSGFzaFRhYmxlU3RhdHNAQFNHSkpAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ0xLUkhhc2hUYWJsZVN0YXRzOjpCdWNrZXRTaXplKGxvbmcpDQorP0J1Y2tldFNpemVAQ0xLUkhhc2hUYWJsZVN0YXRzQEBTR0pKQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgY29uc3QgKiBfX3N0ZGNhbGwgQ0xLUkhhc2hUYWJsZVN0YXRzOjpCdWNrZXRTaXplcyh2b2lkKQ0KKz9CdWNrZXRTaXplc0BDTEtSSGFzaFRhYmxlU3RhdHNAQFNHUEJKWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIE1VTFRJU1o6OkNhbGNMZW5ndGgodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nICopDQorP0NhbGNMZW5ndGhATVVMVElTWkBAU0dLUEJHUEFLQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIE1VTFRJU1pBOjpDYWxjTGVuZ3RoKGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nICopDQorP0NhbGNMZW5ndGhATVVMVElTWkFAQFNHS1BCRFBBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBCVUZGRVJfQ0hBSU46OkNhbGNUb3RhbFNpemUoaW50KWNvbnN0IA0KKz9DYWxjVG90YWxTaXplQEJVRkZFUl9DSEFJTkBAUUJFS0hAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NoYXJlbG9jazo6Q2hhbmdlRXhjbHVzaXZlTG9ja1RvU2hhcmVkTG9jayh2b2lkKQ0KKz9DaGFuZ2VFeGNsdXNpdmVMb2NrVG9TaGFyZWRMb2NrQENTaGFyZWxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgQ1NoYXJlbG9jazo6Q2hhbmdlU2hhcmVkTG9ja1RvRXhjbHVzaXZlTG9jayhpbnQpDQorP0NoYW5nZVNoYXJlZExvY2tUb0V4Y2x1c2l2ZUxvY2tAQ1NoYXJlbG9ja0BAUUFFRUhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpDaGVja1RhYmxlKHZvaWQpY29uc3QgDQorP0NoZWNrVGFibGVAQ0xLUkhhc2hUYWJsZUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkNoZWNrVGFibGUodm9pZCljb25zdCANCis/Q2hlY2tUYWJsZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIENTaGFyZWxvY2s6OkNsYWltRXhjbHVzaXZlTG9jayhpbnQpDQorP0NsYWltRXhjbHVzaXZlTG9ja0BDU2hhcmVsb2NrQEBRQUVFSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBDU2hhcmVsb2NrOjpDbGFpbVNoYXJlTG9jayhpbnQpDQorP0NsYWltU2hhcmVMb2NrQENTaGFyZWxvY2tAQFFBRUVIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19zdGRjYWxsIENDcml0U2VjOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENDcml0U2VjQEBTR1BCR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDRmFrZUxvY2s6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ0Zha2VMb2NrQEBTR1BCR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDTEtSSGFzaFRhYmxlOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENMS1JIYXNoVGFibGVAQFNHUEJHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19zdGRjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ0xLUkxpbmVhckhhc2hUYWJsZUBAU0dQQkdYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENSZWFkZXJXcml0ZXJMb2NrMkBAU0dQQkdYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENSZWFkZXJXcml0ZXJMb2NrM0BAU0dQQkdYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgQ1JlYWRlcldyaXRlckxvY2s6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ1JlYWRlcldyaXRlckxvY2tAQFNHUEJHWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgY29uc3QgKiBfX3N0ZGNhbGwgQ1J0bFJlc291cmNlOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENSdGxSZXNvdXJjZUBAU0dQQkRYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fc3RkY2FsbCBDU2hhcmVMb2NrOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENTaGFyZUxvY2tAQFNHUEJEWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19zdGRjYWxsIENTbWFsbFNwaW5Mb2NrOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENTbWFsbFNwaW5Mb2NrQEBTR1BCR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDU3BpbkxvY2s6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ1NwaW5Mb2NrQEBTR1BCR1haDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OkNsZWFudXAodm9pZCkNCis/Q2xlYW51cEBBTExPQ19DQUNIRV9IQU5ETEVSQEBTR0hYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQUxMT0NfQ0FDSEVfSEFORExFUjo6Q2xlYW51cEFsbExvb2thc2lkZXModm9pZCAqLHVuc2lnbmVkIGNoYXIpDQorP0NsZWFudXBBbGxMb29rYXNpZGVzQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFNHWFBBWEVAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQUxMT0NfQ0FDSEVfSEFORExFUjo6Q2xlYW51cExvb2thc2lkZShpbnQpDQorP0NsZWFudXBMb29rYXNpZGVAQUxMT0NfQ0FDSEVfSEFORExFUkBAUUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6Q2xlYXIodm9pZCkNCis/Q2xlYXJAQ0xLUkhhc2hUYWJsZUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpDbGVhcih2b2lkKQ0KKz9DbGVhckBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFczX1RSQUNFX0xPRzo6Q2xlYXJCdWZmZXIodm9pZCkNCis/Q2xlYXJCdWZmZXJAVzNfVFJBQ0VfTE9HQEBRQUVYWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTVVMVElTWjo6Q2xvbmUoY2xhc3MgTVVMVElTWiAqKWNvbnN0IA0KKz9DbG9uZUBNVUxUSVNaQEBRQkVIUEFWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBNVUxUSVNaQTo6Q2xvbmUoY2xhc3MgTVVMVElTWkEgKiljb25zdCANCis/Q2xvbmVATVVMVElTWkFAQFFCRUhQQVYxQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpDbG9uZShjbGFzcyBTVFJBICopY29uc3QgDQorP0Nsb25lQFNUUkFAQFFCRUpQQVYxQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1COjpDbG9zZSh2b2lkKQ0KKz9DbG9zZUBNQkBAUUFFSFhaDQorQ29tcGFyZVN0cmluZ05vQ2FzZQ0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgVFNfUkVTT1VSQ0U6OkNvbnZlcnQoZW51bSBUU1JFU19DT05WX1RZUEUpDQorP0NvbnZlcnRAVFNfUkVTT1VSQ0VAQFFBRVhXNFRTUkVTX0NPTlZfVFlQRUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDcml0U2VjOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCkNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENDcml0U2VjQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGYWtlTG9jazo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpDQorP0NvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZEBDRmFrZUxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpY29uc3QgDQorP0NvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZEBDTEtSSGFzaFRhYmxlQEBRQkVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKWNvbnN0IA0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKQ0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ1JlYWRlcldyaXRlckxvY2syQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpDQorP0NvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZEBDUmVhZGVyV3JpdGVyTG9jazNAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKQ0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ1JlYWRlcldyaXRlckxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1J0bFJlc291cmNlOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCkNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENSdGxSZXNvdXJjZUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU2hhcmVMb2NrOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCkNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENTaGFyZUxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NtYWxsU3BpbkxvY2s6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKQ0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ1NtYWxsU3BpbkxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NwaW5Mb2NrOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCkNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENTcGluTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ3JpdFNlYzo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpDQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDQ3JpdFNlY0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRmFrZUxvY2s6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKQ0KKz9Db252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ0Zha2VMb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKWNvbnN0IA0KKz9Db252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ0xLUkhhc2hUYWJsZUBAUUJFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCljb25zdCANCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENSZWFkZXJXcml0ZXJMb2NrMkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKQ0KKz9Db252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ1JlYWRlcldyaXRlckxvY2szQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENSZWFkZXJXcml0ZXJMb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSdGxSZXNvdXJjZTo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpDQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDUnRsUmVzb3VyY2VAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NoYXJlTG9jazo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpDQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDU2hhcmVMb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTbWFsbFNwaW5Mb2NrOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENTbWFsbFNwaW5Mb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTcGluTG9jazo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpDQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDU3BpbkxvY2tAQFFBRVhYWg0KK0NvbnZlcnRVbmljb2RlVG9NdWx0aUJ5dGUNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTVVMVElTWjo6Q29weShjbGFzcyBNVUxUSVNaIGNvbnN0ICYpDQorP0NvcHlATVVMVElTWkBAUUFFSEFCVjFAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTVVMVElTWjo6Q29weSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0NvcHlATVVMVElTWkBAUUFFSFBCR0tAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBNVUxUSVNaQTo6Q29weShjbGFzcyBNVUxUSVNaQSBjb25zdCAmKQ0KKz9Db3B5QE1VTFRJU1pBQEBRQUVIQUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBNVUxUSVNaQTo6Q29weShjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/Q29weUBNVUxUSVNaQUBAUUFFSFBCREtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6Q29weShjbGFzcyBTVFJBIGNvbnN0ICYpDQorP0NvcHlAU1RSQUBAUUFFSkFCVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkNvcHkoY2hhciBjb25zdCAqKQ0KKz9Db3B5QFNUUkFAQFFBRUpQQkRAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6Q29weShjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/Q29weUBTVFJBQEBRQUVKUEJES0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUkFVOjpDb3B5KGNsYXNzIFNUUkFVICYpDQorP0NvcHlAU1RSQVVAQFFBRUhBQVYxQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUkFVOjpDb3B5KGNoYXIgY29uc3QgKikNCis/Q29weUBTVFJBVUBAUUFFSFBCREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUkFVOjpDb3B5KGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9Db3B5QFNUUkFVQEBRQUVIUEJES0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUkFVOjpDb3B5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NvcHlAU1RSQVVAQFFBRUhQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJBVTo6Q29weSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0NvcHlAU1RSQVVAQFFBRUhQQkdLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUlU6OkNvcHkoY2xhc3MgU1RSVSBjb25zdCAmKQ0KKz9Db3B5QFNUUlVAQFFBRUpBQlYxQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJVOjpDb3B5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NvcHlAU1RSVUBAUUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJVOjpDb3B5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/Q29weUBTVFJVQEBRQUVKUEJHS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJVOjpDb3B5QShjaGFyIGNvbnN0ICopDQorP0NvcHlBQFNUUlVAQFFBRUpQQkRAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSVTo6Q29weUEoY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0NvcHlBQFNUUlVAQFFBRUpQQkRLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkNvcHlCaW5hcnkodm9pZCAqLHVuc2lnbmVkIGxvbmcpDQorP0NvcHlCaW5hcnlAU1RSQUBAUUFFSlBBWEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDREZUQ2FjaGU6OkNvcHlGb3JtYXR0ZWREYXRhKHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAqLGNoYXIgKiljb25zdCANCis/Q29weUZvcm1hdHRlZERhdGFAQ0RGVENhY2hlQEBRQkVIUEJVX1NZU1RFTVRJTUVAQFBBREBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBEQVRFVElNRV9GT1JNQVRfRU5UUlk6OkNvcHlGb3JtYXR0ZWREYXRhKHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAqLGNoYXIgKiljb25zdCANCis/Q29weUZvcm1hdHRlZERhdGFAREFURVRJTUVfRk9STUFUX0VOVFJZQEBRQkVYUEJVX1NZU1RFTVRJTUVAQFBBREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1VTFRJU1o6OkNvcHlUb0J1ZmZlcih1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGxvbmcgKiljb25zdCANCis/Q29weVRvQnVmZmVyQE1VTFRJU1pAQFFCRUhQQUdQQUtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBNVUxUSVNaQTo6Q29weVRvQnVmZmVyKGNoYXIgKix1bnNpZ25lZCBsb25nICopY29uc3QgDQorP0NvcHlUb0J1ZmZlckBNVUxUSVNaQUBAUUJFSFBBRFBBS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpDb3B5VG9CdWZmZXIoY2hhciAqLHVuc2lnbmVkIGxvbmcgKiljb25zdCANCis/Q29weVRvQnVmZmVyQFNUUkFAQFFCRUpQQURQQUtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSVTo6Q29weVRvQnVmZmVyKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyAqKWNvbnN0IA0KKz9Db3B5VG9CdWZmZXJAU1RSVUBAUUJFSlBBR1BBS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpDb3B5Vyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Db3B5V0BTVFJBQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkNvcHlXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/Q29weVdAU1RSQUBAUUFFSlBCR0tAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6Q29weVdUb1VURjgoY2xhc3MgU1RSVSBjb25zdCAmKQ0KKz9Db3B5V1RvVVRGOEBTVFJBQEBRQUVKQUJWU1RSVUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkNvcHlXVG9VVEY4KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NvcHlXVG9VVEY4QFNUUkFAQFFBRUpQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6Q29weVdUb1VURjgodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9Db3B5V1RvVVRGOEBTVFJBQEBRQUVKUEJHS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpDb3B5V1RvVVRGOFVuZXNjYXBlZChjbGFzcyBTVFJVIGNvbnN0ICYpDQorP0NvcHlXVG9VVEY4VW5lc2NhcGVkQFNUUkFAQFFBRUpBQlZTVFJVQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6Q29weVdUb1VURjhVbmVzY2FwZWQodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/Q29weVdUb1VURjhVbmVzY2FwZWRAU1RSQUBAUUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpDb3B5V1RvVVRGOFVuZXNjYXBlZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0NvcHlXVG9VVEY4VW5lc2NhcGVkQFNUUkFAQFFBRUpQQkdLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkNvcHlXVHJ1bmNhdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/Q29weVdUcnVuY2F0ZUBTVFJBQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkNvcHlXVHJ1bmNhdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9Db3B5V1RydW5jYXRlQFNUUkFAQFFBRUpQQkdLQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIElQTV9NRVNTQUdFX1BJUEU6OkNyZWF0ZUlwbU1lc3NhZ2VQaXBlKGNsYXNzIElQTV9NRVNTQUdFX0FDQ0VQVE9SICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQsc3RydWN0IF9TRUNVUklUWV9BVFRSSUJVVEVTICosY2xhc3MgSVBNX01FU1NBR0VfUElQRSAqICopDQorP0NyZWF0ZUlwbU1lc3NhZ2VQaXBlQElQTV9NRVNTQUdFX1BJUEVAQFNHSlBBVklQTV9NRVNTQUdFX0FDQ0VQVE9SQEBQQkdIUEFVX1NFQ1VSSVRZX0FUVFJJQlVURVNAQFBBUEFWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVzNfVFJBQ0VfTE9HX0ZBQ1RPUlk6OkNyZWF0ZVRyYWNlTG9nKGNsYXNzIFczX1RSQUNFX0xPRyAqICopDQorP0NyZWF0ZVRyYWNlTG9nQFczX1RSQUNFX0xPR19GQUNUT1JZQEBRQUVKUEFQQVZXM19UUkFDRV9MT0dAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBXM19UUkFDRV9MT0dfRkFDVE9SWTo6Q3JlYXRlVHJhY2VMb2dGYWN0b3J5KGNsYXNzIFczX1RSQUNFX0xPR19GQUNUT1JZICogKix2b2lkICopDQorP0NyZWF0ZVRyYWNlTG9nRmFjdG9yeUBXM19UUkFDRV9MT0dfRkFDVE9SWUBAU0dKUEFQQVYxQFBBWEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDREZUQ2FjaGU6OkRhdGVUaW1lQ2hhcnModm9pZCljb25zdCANCis/RGF0ZVRpbWVDaGFyc0BDREZUQ2FjaGVAQFFCRUtYWg0KKzsgY2hhciBjb25zdCAqIF9fc3RkY2FsbCBEYXlPZldlZWszQ2hhck5hbWVzKHVuc2lnbmVkIGxvbmcpDQorP0RheU9mV2VlazNDaGFyTmFtZXNAQFlHUEJES0BaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgSVBNX01FU1NBR0VfUElQRTo6RGVjcmVtZW50QWNjZXB0b3JJblVzZSh2b2lkKQ0KKz9EZWNyZW1lbnRBY2NlcHRvckluVXNlQElQTV9NRVNTQUdFX1BJUEVAQEFBRVhYWg0KK0RlY3J5cHRNZW1vcnlQYXNzd29yZA0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQlVGRkVSX0NIQUlOOjpEZWxldGVDaGFpbih2b2lkKQ0KKz9EZWxldGVDaGFpbkBCVUZGRVJfQ0hBSU5AQFFBRUtYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBNQjo6RGVsZXRlRGF0YSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9EZWxldGVEYXRhQE1CQEBRQUVIUEJHS0tLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkRlbGV0ZUlmKGVudW0gTEtfUFJFRElDQVRFICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLHZvaWQgKiksdm9pZCAqKQ0KKz9EZWxldGVJZkBDTEtSSGFzaFRhYmxlQEBRQUVLUDZHP0FXNExLX1BSRURJQ0FURUBAUEJYUEFYQFoxQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkRlbGV0ZUlmKGVudW0gTEtfUFJFRElDQVRFICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLHZvaWQgKiksdm9pZCAqKQ0KKz9EZWxldGVJZkBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUVLUDZHP0FXNExLX1BSRURJQ0FURUBAUEJYUEFYQFoxQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkRlbGV0ZUtleSh1bnNpZ25lZCBsb25nKQ0KKz9EZWxldGVLZXlAQ0xLUkhhc2hUYWJsZUBAUUFFP0FXNExLX1JFVENPREVAQEtAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6RGVsZXRlS2V5KHVuc2lnbmVkIGxvbmcpDQorP0RlbGV0ZUtleUBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUU/QVc0TEtfUkVUQ09ERUBAS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1COjpEZWxldGVPYmplY3QodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/RGVsZXRlT2JqZWN0QE1CQEBRQUVIUEJHQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkRlbGV0ZVJlY29yZCh2b2lkIGNvbnN0ICopDQorP0RlbGV0ZVJlY29yZEBDTEtSSGFzaFRhYmxlQEBRQUU/QVc0TEtfUkVUQ09ERUBAUEJYQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkRlbGV0ZVJlY29yZCh2b2lkIGNvbnN0ICopDQorP0RlbGV0ZVJlY29yZEBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUU/QVc0TEtfUkVUQ09ERUBAUEJYQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIElQTV9NRVNTQUdFX1BJUEU6OkRlc3Ryb3lJcG1NZXNzYWdlUGlwZSh2b2lkKQ0KKz9EZXN0cm95SXBtTWVzc2FnZVBpcGVASVBNX01FU1NBR0VfUElQRUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBXM19UUkFDRV9MT0c6OkRlc3Ryb3lUcmFjZUxvZyh2b2lkKQ0KKz9EZXN0cm95VHJhY2VMb2dAVzNfVFJBQ0VfTE9HQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFczX1RSQUNFX0xPR19GQUNUT1JZOjpEZXN0cm95VHJhY2VMb2dGYWN0b3J5KHZvaWQpDQorP0Rlc3Ryb3lUcmFjZUxvZ0ZhY3RvcnlAVzNfVFJBQ0VfTE9HX0ZBQ1RPUllAQFFBRVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDRXR3VHJhY2VyOjpEaXNhYmxlRXZlbnRzQ2FsbGJhY2tDdXN0b21IYW5kbGVyKHZvaWQpDQorP0Rpc2FibGVFdmVudHNDYWxsYmFja0N1c3RvbUhhbmRsZXJAQ0V0d1RyYWNlckBAVUFFS1haDQorRGlzYWJsZVRva2VuQmFja3VwUHJpdmlsZWdlDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OkR1bXBTdGF0c1RvSHRtbChjaGFyICosdW5zaWduZWQgbG9uZyAqKQ0KKz9EdW1wU3RhdHNUb0h0bWxAQUxMT0NfQ0FDSEVfSEFORExFUkBAU0dIUEFEUEFLQFoNCitEdXBUb2tlbldpdGhTYW1lSW1wZXJzb25hdGlvbkxldmVsDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENFdHdUcmFjZXI6OkVuYWJsZUV2ZW50c0NhbGxiYWNrQ3VzdG9tSGFuZGxlcih2b2lkKQ0KKz9FbmFibGVFdmVudHNDYWxsYmFja0N1c3RvbUhhbmRsZXJAQ0V0d1RyYWNlckBAVUFFS1haDQorRW5jcnlwdE1lbW9yeVBhc3N3b3JkDQorOyBwdWJsaWM6IGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6RW5kKHZvaWQpDQorP0VuZEBDTEtSSGFzaFRhYmxlQEBRQUU/QVZDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkVuZCh2b2lkKQ0KKz9FbmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUFFP0FWQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTUI6OkVudW1PYmplY3RzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBsb25nKQ0KKz9FbnVtT2JqZWN0c0BNQkBAUUFFSFBCR1BBR0tAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6RXF1YWxSYW5nZSh1bnNpZ25lZCBsb25nLGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgJixjbGFzcyBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yICYpDQorP0VxdWFsUmFuZ2VAQ0xLUkhhc2hUYWJsZUBAUUFFX05LQUFWQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAMEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpFcXVhbFJhbmdlKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciAmLGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgJikNCis/RXF1YWxSYW5nZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUVfTktBQVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEAwQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSQTo6RXF1YWxzKGNsYXNzIFNUUkEgY29uc3QgJiljb25zdCANCis/RXF1YWxzQFNUUkFAQFFCRUhBQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUkE6OkVxdWFscyhjaGFyICogY29uc3QpY29uc3QgDQorP0VxdWFsc0BTVFJBQEBRQkVIUUFEQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSVTo6RXF1YWxzKGNsYXNzIFNUUlUgY29uc3QgJiljb25zdCANCis/RXF1YWxzQFNUUlVAQFFCRUhBQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUlU6OkVxdWFscyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9FcXVhbHNAU1RSVUBAUUJFSFBCR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUkE6OkVxdWFsc05vQ2FzZShjbGFzcyBTVFJBIGNvbnN0ICYpY29uc3QgDQorP0VxdWFsc05vQ2FzZUBTVFJBQEBRQkVIQUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJBOjpFcXVhbHNOb0Nhc2UoY2hhciAqIGNvbnN0KWNvbnN0IA0KKz9FcXVhbHNOb0Nhc2VAU1RSQUBAUUJFSFFBREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUlU6OkVxdWFsc05vQ2FzZShjbGFzcyBTVFJVIGNvbnN0ICYpY29uc3QgDQorP0VxdWFsc05vQ2FzZUBTVFJVQEBRQkVIQUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJVOjpFcXVhbHNOb0Nhc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/RXF1YWxzTm9DYXNlQFNUUlVAQFFCRUhQQkdAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6RXJhc2UoY2xhc3MgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvciAmLGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgJikNCis/RXJhc2VAQ0xLUkhhc2hUYWJsZUBAUUFFX05BQVZDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEAwQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkVyYXNlKGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgJikNCis/RXJhc2VAQ0xLUkhhc2hUYWJsZUBAUUFFX05BQVZDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6RXJhc2UoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciAmLGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgJikNCis/RXJhc2VAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUFFX05BQVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEAwQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkVyYXNlKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgJikNCis/RXJhc2VAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUFFX05BQVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6RXNjYXBlKGludCxpbnQpDQorP0VzY2FwZUBTVFJBQEBRQUVKSEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSVTo6RXNjYXBlKHZvaWQpDQorP0VzY2FwZUBTVFJVQEBRQUVKWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENFdHdUcmFjZXI6OkV0d1RyYWNlRXZlbnQoc3RydWN0IF9HVUlEIGNvbnN0ICosdW5zaWduZWQgbG9uZywuLi4pDQorP0V0d1RyYWNlRXZlbnRAQ0V0d1RyYWNlckBAUUFBS1BCVV9HVUlEQEBLWloNCis7IGludCBfX3N0ZGNhbGwgRmlsZVRpbWVUb0dNVChzdHJ1Y3QgX0ZJTEVUSU1FIGNvbnN0ICYsY2hhciAqLHVuc2lnbmVkIGxvbmcpDQorP0ZpbGVUaW1lVG9HTVRAQFlHSEFCVV9GSUxFVElNRUBAUEFES0BaDQorOyBpbnQgX19zdGRjYWxsIEZpbGVUaW1lVG9HTVRFeChzdHJ1Y3QgX0ZJTEVUSU1FIGNvbnN0ICYsY2hhciAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/RmlsZVRpbWVUb0dNVEV4QEBZR0hBQlVfRklMRVRJTUVAQFBBREtLQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkZpbmQodW5zaWduZWQgbG9uZyxjbGFzcyBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yICYpDQorP0ZpbmRAQ0xLUkhhc2hUYWJsZUBAUUFFX05LQUFWQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkZpbmQodW5zaWduZWQgbG9uZyxjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yICYpDQorP0ZpbmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUFFX05LQUFWQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkZpbmRLZXkodW5zaWduZWQgbG9uZyx2b2lkIGNvbnN0ICogKiljb25zdCANCis/RmluZEtleUBDTEtSSGFzaFRhYmxlQEBRQkU/QVc0TEtfUkVUQ09ERUBAS1BBUEJYQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkZpbmRLZXkodW5zaWduZWQgbG9uZyx2b2lkIGNvbnN0ICogKiljb25zdCANCis/RmluZEtleUBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkU/QVc0TEtfUkVUQ09ERUBAS1BBUEJYQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkZpbmRSZWNvcmQodm9pZCBjb25zdCAqKWNvbnN0IA0KKz9GaW5kUmVjb3JkQENMS1JIYXNoVGFibGVAQFFCRT9BVzRMS19SRVRDT0RFQEBQQlhAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6RmluZFJlY29yZCh2b2lkIGNvbnN0ICopY29uc3QgDQorP0ZpbmRSZWNvcmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFP0FXNExLX1JFVENPREVAQFBCWEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1VTFRJU1o6OkZpbmRTdHJpbmcoY2xhc3MgU1RSVSAmKQ0KKz9GaW5kU3RyaW5nQE1VTFRJU1pAQFFBRUhBQVZTVFJVQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBNVUxUSVNaOjpGaW5kU3RyaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0ZpbmRTdHJpbmdATVVMVElTWkBAUUFFSFBCR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1VTFRJU1pBOjpGaW5kU3RyaW5nKGNsYXNzIFNUUkEgJikNCis/RmluZFN0cmluZ0BNVUxUSVNaQUBAUUFFSEFBVlNUUkFAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1VTFRJU1pBOjpGaW5kU3RyaW5nKGNoYXIgY29uc3QgKikNCis/RmluZFN0cmluZ0BNVUxUSVNaQUBAUUFFSFBCREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1VTFRJU1o6OkZpbmRTdHJpbmdOb0Nhc2UoY2xhc3MgU1RSVSAmKQ0KKz9GaW5kU3RyaW5nTm9DYXNlQE1VTFRJU1pAQFFBRUhBQVZTVFJVQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBNVUxUSVNaOjpGaW5kU3RyaW5nTm9DYXNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0ZpbmRTdHJpbmdOb0Nhc2VATVVMVElTWkBAUUFFSFBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENMaXN0RW50cnkgKiBfX3RoaXNjYWxsIENEb3VibGVMaXN0OjpGaXJzdCh2b2lkKWNvbnN0IA0KKz9GaXJzdEBDRG91YmxlTGlzdEBAUUJFUUFWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fdGhpc2NhbGwgQ0xvY2tlZERvdWJsZUxpc3Q6OkZpcnN0KHZvaWQpDQorP0ZpcnN0QENMb2NrZWREb3VibGVMaXN0QEBRQUVRQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgTVVMVElTWjo6Rmlyc3Qodm9pZCljb25zdCANCis/Rmlyc3RATVVMVElTWkBAUUJFUEJHWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgTVVMVElTWkE6OkZpcnN0KHZvaWQpY29uc3QgDQorP0ZpcnN0QE1VTFRJU1pBQEBRQkVQQkRYWg0KK0ZsaXBTbGFzaGVzDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpGb3JtYXRTdHJpbmcodW5zaWduZWQgbG9uZyxjaGFyIGNvbnN0ICogKiBjb25zdCxjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/Rm9ybWF0U3RyaW5nQFNUUkFAQFFBRUpLUUFQQkRQQkRLQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgQ0RGVENhY2hlOjpGb3JtYXR0ZWRCdWZmZXIodm9pZCljb25zdCANCis/Rm9ybWF0dGVkQnVmZmVyQENERlRDYWNoZUBAUUJFUEJEWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQUxMT0NfQ0FDSEVfSEFORExFUjo6RnJlZSh2b2lkICopDQorP0ZyZWVAQUxMT0NfQ0FDSEVfSEFORExFUkBAUUFFSFBBWEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSFVOS19CVUZGRVI6OkZyZWVBbGxBbGxvY2F0ZWRTcGFjZSh2b2lkKQ0KKz9GcmVlQWxsQWxsb2NhdGVkU3BhY2VAQ0hVTktfQlVGRkVSQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEJVRkZFUjo6RnJlZU1lbW9yeSh2b2lkKQ0KKz9GcmVlTWVtb3J5QEJVRkZFUkBAUUFFWFhaDQorRnJlZVNlY3VyaXR5QXR0cmlidXRlcw0KK0ZyZWVXZWxsS25vd25BY2wNCitGcmVlV2VsbEtub3duU2lkDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIEFTQ0xPR19EQVRFVElNRV9DQUNIRTo6R2VuZXJhdGVEYXRlVGltZVN0cmluZyhzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZICosc3RydWN0IF9TWVNURU1USU1FIGNvbnN0ICopDQorP0dlbmVyYXRlRGF0ZVRpbWVTdHJpbmdAQVNDTE9HX0RBVEVUSU1FX0NBQ0hFQEBVQUVYUEFVREFURVRJTUVfRk9STUFUX0VOVFJZQEBQQlVfU1lTVEVNVElNRUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgRVhUTE9HX0RBVEVUSU1FX0NBQ0hFOjpHZW5lcmF0ZURhdGVUaW1lU3RyaW5nKHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlkgKixzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgKikNCis/R2VuZXJhdGVEYXRlVGltZVN0cmluZ0BFWFRMT0dfREFURVRJTUVfQ0FDSEVAQFVBRVhQQVVEQVRFVElNRV9GT1JNQVRfRU5UUllAQFBCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBXM19EQVRFVElNRV9DQUNIRTo6R2VuZXJhdGVEYXRlVGltZVN0cmluZyhzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZICosc3RydWN0IF9TWVNURU1USU1FIGNvbnN0ICopDQorP0dlbmVyYXRlRGF0ZVRpbWVTdHJpbmdAVzNfREFURVRJTUVfQ0FDSEVAQFVBRVhQQVVEQVRFVElNRV9GT1JNQVRfRU5UUllAQFBCVV9TWVNURU1USU1FQEBAWg0KK0dlbmVyYXRlTmFtZVdpdGhHVUlEDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1COjpHZXRBbGwodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsY2xhc3MgQlVGRkVSICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcgKikNCis/R2V0QWxsQE1CQEBRQUVIUEJHS0tQQVZCVUZGRVJAQFBBSzJAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkdldEJ1Y2tldExvY2tTcGluQ291bnQodm9pZCljb25zdCANCis/R2V0QnVja2V0TG9ja1NwaW5Db3VudEBDTEtSSGFzaFRhYmxlQEBRQkVHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpHZXRCdWNrZXRMb2NrU3BpbkNvdW50KHZvaWQpY29uc3QgDQorP0dldEJ1Y2tldExvY2tTcGluQ291bnRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFR1haDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1COjpHZXRCdWZmZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsY2xhc3MgQlVGRkVSICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcpDQorP0dldEJ1ZmZlckBNQkBAUUFFSFBCR0tLUEFWQlVGRkVSQEBQQUtLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTUI6OkdldENoaWxkUGF0aHModW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBCVUZGRVIgKikNCis/R2V0Q2hpbGRQYXRoc0BNQkBAUUFFSFBCR1BBVkJVRkZFUkBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTUI6OkdldERhdGEodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcpDQorP0dldERhdGFATUJAQFFBRUhQQkdLS0tQQVhQQUtLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTUI6OkdldERhdGFQYXRocyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBCVUZGRVIgKikNCis/R2V0RGF0YVBhdGhzQE1CQEBRQUVIUEJHS0tQQVZCVUZGRVJAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1COjpHZXREYXRhU2V0TnVtYmVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXREYXRhU2V0TnVtYmVyQE1CQEBRQUVIUEJHUEFLQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX3N0ZGNhbGwgQ0NyaXRTZWM6OkdldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcih2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ0NyaXRTZWNAQFNHTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19zdGRjYWxsIENGYWtlTG9jazo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDRmFrZUxvY2tAQFNHTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19zdGRjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUmVhZGVyV3JpdGVyTG9jazJAQFNHTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19zdGRjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUmVhZGVyV3JpdGVyTG9jazNAQFNHTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19zdGRjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpHZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3Iodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENSZWFkZXJXcml0ZXJMb2NrQEBTR05YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fc3RkY2FsbCBDUnRsUmVzb3VyY2U6OkdldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcih2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1J0bFJlc291cmNlQEBTR05YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fc3RkY2FsbCBDU2hhcmVMb2NrOjpHZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3Iodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENTaGFyZUxvY2tAQFNHTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19zdGRjYWxsIENTbWFsbFNwaW5Mb2NrOjpHZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3Iodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENTbWFsbFNwaW5Mb2NrQEBTR05YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fc3RkY2FsbCBDU3BpbkxvY2s6OkdldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcih2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1NwaW5Mb2NrQEBTR05YWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19zdGRjYWxsIENDcml0U2VjOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ0NyaXRTZWNAQFNHR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX3N0ZGNhbGwgQ0Zha2VMb2NrOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ0Zha2VMb2NrQEBTR0dYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19zdGRjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6R2V0RGVmYXVsdFNwaW5Db3VudCh2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrMkBAU0dHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fc3RkY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OkdldERlZmF1bHRTcGluQ291bnQodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazNAQFNHR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX3N0ZGNhbGwgQ1JlYWRlcldyaXRlckxvY2s6OkdldERlZmF1bHRTcGluQ291bnQodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9ja0BAU0dHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fc3RkY2FsbCBDUnRsUmVzb3VyY2U6OkdldERlZmF1bHRTcGluQ291bnQodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5Db3VudEBDUnRsUmVzb3VyY2VAQFNHR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX3N0ZGNhbGwgQ1NoYXJlTG9jazo6R2V0RGVmYXVsdFNwaW5Db3VudCh2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkNvdW50QENTaGFyZUxvY2tAQFNHR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX3N0ZGNhbGwgQ1NtYWxsU3BpbkxvY2s6OkdldERlZmF1bHRTcGluQ291bnQodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5Db3VudEBDU21hbGxTcGluTG9ja0BAU0dHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fc3RkY2FsbCBDU3BpbkxvY2s6OkdldERlZmF1bHRTcGluQ291bnQodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5Db3VudEBDU3BpbkxvY2tAQFNHR1haDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1COjpHZXREd29yZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZykNCis/R2V0RHdvcmRATUJAQFFBRUhQQkdLS1BBS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgTUI6OkdldER3b3JkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcpDQorP0dldER3b3JkQE1CQEBRQUVYUEJHS0tLUEFLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBFVkVOVF9MT0c6OkdldEVycm9yQ29kZSh2b2lkKWNvbnN0IA0KKz9HZXRFcnJvckNvZGVARVZFTlRfTE9HQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENBQ0hFRF9EQVRFVElNRV9GT1JNQVRTOjpHZXRGb3JtYXR0ZWRDdXJyZW50RGF0ZVRpbWUoY2hhciAqKQ0KKz9HZXRGb3JtYXR0ZWRDdXJyZW50RGF0ZVRpbWVAQ0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFNAQFFBRUtQQURAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFM6OkdldEZvcm1hdHRlZERhdGVUaW1lKHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAqLGNoYXIgKikNCis/R2V0Rm9ybWF0dGVkRGF0ZVRpbWVAQ0FDSEVEX0RBVEVUSU1FX0ZPUk1BVFNAQFFBRUtQQlVfU1lTVEVNVElNRUBAUEFEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENTZWN1cml0eURpc3BlbnNlcjo6R2V0SWlzV3BnU0lEKHZvaWQgKiAqKQ0KKz9HZXRJaXNXcGdTSURAQ1NlY3VyaXR5RGlzcGVuc2VyQEBRQUVLUEFQQVhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBNQjo6R2V0TXVsdGlzeih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBNVUxUSVNaICosdW5zaWduZWQgbG9uZykNCis/R2V0TXVsdGlzekBNQkBAUUFFSFBCR0tLUEFWTVVMVElTWkBAS0BaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBCVUZGRVI6OkdldE5ld1N0b3JhZ2UodW5zaWduZWQgaW50KQ0KKz9HZXROZXdTdG9yYWdlQEJVRkZFUkBAQUFFSElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1NlY3VyaXR5RGlzcGVuc2VyOjpHZXRTSUQoZW51bSBXRUxMX0tOT1dOX1NJRF9UWVBFLHZvaWQgKiAqKQ0KKz9HZXRTSURAQ1NlY3VyaXR5RGlzcGVuc2VyQEBRQUVLVzRXRUxMX0tOT1dOX1NJRF9UWVBFQEBQQVBBWEBaDQorR2V0U2VjdXJpdHlBdHRyaWJ1dGVzRm9ySGFuZGxlDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgQ0NyaXRTZWM6OkdldFNwaW5Db3VudCh2b2lkKWNvbnN0IA0KKz9HZXRTcGluQ291bnRAQ0NyaXRTZWNAQFFCRUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENGYWtlTG9jazo6R2V0U3BpbkNvdW50KHZvaWQpY29uc3QgDQorP0dldFNwaW5Db3VudEBDRmFrZUxvY2tAQFFCRUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6R2V0U3BpbkNvdW50KHZvaWQpY29uc3QgDQorP0dldFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazJAQFFCRUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6R2V0U3BpbkNvdW50KHZvaWQpY29uc3QgDQorP0dldFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazNAQFFCRUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpHZXRTcGluQ291bnQodm9pZCljb25zdCANCis/R2V0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrQEBRQkVHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDUnRsUmVzb3VyY2U6OkdldFNwaW5Db3VudCh2b2lkKWNvbnN0IA0KKz9HZXRTcGluQ291bnRAQ1J0bFJlc291cmNlQEBRQkVHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDU2hhcmVMb2NrOjpHZXRTcGluQ291bnQodm9pZCljb25zdCANCis/R2V0U3BpbkNvdW50QENTaGFyZUxvY2tAQFFCRUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENTbWFsbFNwaW5Mb2NrOjpHZXRTcGluQ291bnQodm9pZCljb25zdCANCis/R2V0U3BpbkNvdW50QENTbWFsbFNwaW5Mb2NrQEBRQkVHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDU3BpbkxvY2s6OkdldFNwaW5Db3VudCh2b2lkKWNvbnN0IA0KKz9HZXRTcGluQ291bnRAQ1NwaW5Mb2NrQEBRQkVHWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xLUkhhc2hUYWJsZVN0YXRzICBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkdldFN0YXRpc3RpY3Modm9pZCljb25zdCANCis/R2V0U3RhdGlzdGljc0BDTEtSSGFzaFRhYmxlQEBRQkU/QVZDTEtSSGFzaFRhYmxlU3RhdHNAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENMS1JIYXNoVGFibGVTdGF0cyAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpHZXRTdGF0aXN0aWNzKHZvaWQpY29uc3QgDQorP0dldFN0YXRpc3RpY3NAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFP0FWQ0xLUkhhc2hUYWJsZVN0YXRzQEBYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBNQjo6R2V0U3RyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIFNUUlUgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0dldFN0ckBNQkBAUUFFSFBCR0tLUEFWU1RSVUBASzBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBNQjo6R2V0U3RyaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcpDQorP0dldFN0cmluZ0BNQkBAUUFFSFBCR0tLUEFHUEFLS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1COjpHZXRTeXN0ZW1DaGFuZ2VOdW1iZXIodW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRTeXN0ZW1DaGFuZ2VOdW1iZXJATUJAQFFBRUhQQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkdldFRhYmxlTG9ja1NwaW5Db3VudCh2b2lkKWNvbnN0IA0KKz9HZXRUYWJsZUxvY2tTcGluQ291bnRAQ0xLUkhhc2hUYWJsZUBAUUJFR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6R2V0VGFibGVMb2NrU3BpbkNvdW50KHZvaWQpY29uc3QgDQorP0dldFRhYmxlTG9ja1NwaW5Db3VudEBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVHWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RhdGVUaW1lOjpHZXRUaWNrQ291bnQodm9pZCkNCis/R2V0VGlja0NvdW50QENEYXRlVGltZUBAUUFFSFhaDQorR3JhbnRXcGdBY2Nlc3NUb1Rva2VuDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpIVE1MRW5jb2RlKHZvaWQpDQorP0hUTUxFbmNvZGVAU1RSQUBAUUFFSlhaDQorOyBwdWJsaWM6IGNsYXNzIENMaXN0RW50cnkgY29uc3QgKiBfX3RoaXNjYWxsIENEb3VibGVMaXN0OjpIZWFkTm9kZSh2b2lkKWNvbnN0IA0KKz9IZWFkTm9kZUBDRG91YmxlTGlzdEBAUUJFUUJWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSBjb25zdCAqIF9fdGhpc2NhbGwgQ0xvY2tlZERvdWJsZUxpc3Q6OkhlYWROb2RlKHZvaWQpY29uc3QgDQorP0hlYWROb2RlQENMb2NrZWREb3VibGVMaXN0QEBRQkVRQlZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6SW5jcmVtZW50KHZvaWQpDQorP0luY3JlbWVudEBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjpJbmNyZW1lbnQodm9pZCkNCis/SW5jcmVtZW50QENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQFFBRV9OWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBJUE1fTUVTU0FHRV9QSVBFOjpJbmNyZW1lbnRBY2NlcHRvckluVXNlKHZvaWQpDQorP0luY3JlbWVudEFjY2VwdG9ySW5Vc2VASVBNX01FU1NBR0VfUElQRUBAQUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBXM19UUkFDRV9MT0c6OkluZGVudCh2b2lkKQ0KKz9JbmRlbnRAVzNfVFJBQ0VfTE9HQEBRQUVYWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQUxMT0NfQ0FDSEVfSEFORExFUjo6SW5pdGlhbGl6ZSh2b2lkKQ0KKz9Jbml0aWFsaXplQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFNHSFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ0hVTktfQlVGRkVSOjpJbml0aWFsaXplKHZvaWQpDQorP0luaXRpYWxpemVAQ0hVTktfQlVGRkVSQEBBQUVYWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6Okluc2VydCh2b2lkIGNvbnN0ICosY2xhc3MgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvciAmLGJvb2wpDQorP0luc2VydEBDTEtSSGFzaFRhYmxlQEBRQUVfTlBCWEFBVkNMS1JIYXNoVGFibGVfSXRlcmF0b3JAQF9OQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Okluc2VydCh2b2lkIGNvbnN0ICosY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciAmLGJvb2wpDQorP0luc2VydEBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUVfTlBCWEFBVkNMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQF9OQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENEb3VibGVMaXN0OjpJbnNlcnRIZWFkKGNsYXNzIENMaXN0RW50cnkgKiBjb25zdCkNCis/SW5zZXJ0SGVhZEBDRG91YmxlTGlzdEBAUUFFWFFBVkNMaXN0RW50cnlAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTG9ja2VkRG91YmxlTGlzdDo6SW5zZXJ0SGVhZChjbGFzcyBDTGlzdEVudHJ5ICogY29uc3QpDQorP0luc2VydEhlYWRAQ0xvY2tlZERvdWJsZUxpc3RAQFFBRVhRQVZDTGlzdEVudHJ5QEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQUxMT0NfQ0FDSEVfSEFORExFUjo6SW5zZXJ0TmV3SXRlbShjbGFzcyBBTExPQ19DQUNIRV9IQU5ETEVSICopDQorP0luc2VydE5ld0l0ZW1AQUxMT0NfQ0FDSEVfSEFORExFUkBAU0dYUEFWMUBAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6SW5zZXJ0UmVjb3JkKHZvaWQgY29uc3QgKixib29sKQ0KKz9JbnNlcnRSZWNvcmRAQ0xLUkhhc2hUYWJsZUBAUUFFP0FXNExLX1JFVENPREVAQFBCWF9OQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Okluc2VydFJlY29yZCh2b2lkIGNvbnN0ICosYm9vbCkNCis/SW5zZXJ0UmVjb3JkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFBRT9BVzRMS19SRVRDT0RFQEBQQlhfTkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRG91YmxlTGlzdDo6SW5zZXJ0VGFpbChjbGFzcyBDTGlzdEVudHJ5ICogY29uc3QpDQorP0luc2VydFRhaWxAQ0RvdWJsZUxpc3RAQFFBRVhRQVZDTGlzdEVudHJ5QEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xvY2tlZERvdWJsZUxpc3Q6Okluc2VydFRhaWwoY2xhc3MgQ0xpc3RFbnRyeSAqIGNvbnN0KQ0KKz9JbnNlcnRUYWlsQENMb2NrZWREb3VibGVMaXN0QEBRQUVYUUFWQ0xpc3RFbnRyeUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQUxMT0NfQ0FDSEVfSEFORExFUjo6SXBQcmludChjaGFyICosdW5zaWduZWQgbG9uZyAqKQ0KKz9JcFByaW50QEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFFBRUhQQURQQUtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgSVBNX01FU1NBR0VfUElQRTo6SXBtTWVzc2FnZUNyZWF0ZWQoY2xhc3MgSVBNX01FU1NBR0VfSU1QICopDQorP0lwbU1lc3NhZ2VDcmVhdGVkQElQTV9NRVNTQUdFX1BJUEVAQFFBRVhQQVZJUE1fTUVTU0FHRV9JTVBAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBJUE1fTUVTU0FHRV9QSVBFOjpJcG1NZXNzYWdlRGVsZXRlZChjbGFzcyBJUE1fTUVTU0FHRV9JTVAgKikNCis/SXBtTWVzc2FnZURlbGV0ZWRASVBNX01FU1NBR0VfUElQRUBAUUFFWFBBVklQTV9NRVNTQUdFX0lNUEBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSQVU6OklzQ3VycmVudFVuaWNvZGUodm9pZCkNCis/SXNDdXJyZW50VW5pY29kZUBTVFJBVUBAUUFFSFhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBCVUZGRVI6OklzRHluQWxsb2NlZCh2b2lkKWNvbnN0IA0KKz9Jc0R5bkFsbG9jZWRAQlVGRkVSQEBBQkVIWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENEb3VibGVMaXN0OjpJc0VtcHR5KHZvaWQpY29uc3QgDQorP0lzRW1wdHlAQ0RvdWJsZUxpc3RAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMb2NrZWREb3VibGVMaXN0OjpJc0VtcHR5KHZvaWQpY29uc3QgDQorP0lzRW1wdHlAQ0xvY2tlZERvdWJsZUxpc3RAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMb2NrZWRTaW5nbGVMaXN0OjpJc0VtcHR5KHZvaWQpY29uc3QgDQorP0lzRW1wdHlAQ0xvY2tlZFNpbmdsZUxpc3RAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTaW5nbGVMaXN0OjpJc0VtcHR5KHZvaWQpY29uc3QgDQorP0lzRW1wdHlAQ1NpbmdsZUxpc3RAQFFCRV9OWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTVVMVElTWjo6SXNFbXB0eSh2b2lkKWNvbnN0IA0KKz9Jc0VtcHR5QE1VTFRJU1pAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBNVUxUSVNaQTo6SXNFbXB0eSh2b2lkKWNvbnN0IA0KKz9Jc0VtcHR5QE1VTFRJU1pBQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSQTo6SXNFbXB0eSh2b2lkKWNvbnN0IA0KKz9Jc0VtcHR5QFNUUkFAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJBVTo6SXNFbXB0eSh2b2lkKQ0KKz9Jc0VtcHR5QFNUUkFVQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSVTo6SXNFbXB0eSh2b2lkKWNvbnN0IA0KKz9Jc0VtcHR5QFNUUlVAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDREZUQ2FjaGU6OklzSGl0KHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAqKWNvbnN0IA0KKz9Jc0hpdEBDREZUQ2FjaGVAQFFCRUhQQlVfU1lTVEVNVElNRUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgREFURVRJTUVfRk9STUFUX0VOVFJZOjpJc0hpdChzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgKiljb25zdCANCis/SXNIaXRAREFURVRJTUVfRk9STUFUX0VOVFJZQEBRQkVIUEJVX1NZU1RFTVRJTUVAQEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTG9ja2VkRG91YmxlTGlzdDo6SXNMb2NrZWQodm9pZCljb25zdCANCis/SXNMb2NrZWRAQ0xvY2tlZERvdWJsZUxpc3RAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMb2NrZWRTaW5nbGVMaXN0OjpJc0xvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc0xvY2tlZEBDTG9ja2VkU2luZ2xlTGlzdEBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRMb2NrZWRAQ0NyaXRTZWNAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENGYWtlTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZExvY2tlZEBDRmFrZUxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRMb2NrZWRAQ0xLUkhhc2hUYWJsZUBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZExvY2tlZEBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRMb2NrZWRAQ1JlYWRlcldyaXRlckxvY2syQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRMb2NrZWRAQ1JlYWRlcldyaXRlckxvY2szQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZExvY2tlZEBDUmVhZGVyV3JpdGVyTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1J0bFJlc291cmNlOjpJc1JlYWRMb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkTG9ja2VkQENSdGxSZXNvdXJjZUBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1NoYXJlTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZExvY2tlZEBDU2hhcmVMb2NrQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZExvY2tlZEBDU21hbGxTcGluTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1NwaW5Mb2NrOjpJc1JlYWRMb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkTG9ja2VkQENTcGluTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OklzUmVhZFVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZFVubG9ja2VkQENDcml0U2VjQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDRmFrZUxvY2s6OklzUmVhZFVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZFVubG9ja2VkQENGYWtlTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkVW5sb2NrZWRAQ0xLUkhhc2hUYWJsZUBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkVW5sb2NrZWRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpJc1JlYWRVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRVbmxvY2tlZEBDUmVhZGVyV3JpdGVyTG9jazJAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkVW5sb2NrZWRAQ1JlYWRlcldyaXRlckxvY2szQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkVW5sb2NrZWRAQ1JlYWRlcldyaXRlckxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSdGxSZXNvdXJjZTo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkVW5sb2NrZWRAQ1J0bFJlc291cmNlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU2hhcmVMb2NrOjpJc1JlYWRVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRVbmxvY2tlZEBDU2hhcmVMb2NrQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkVW5sb2NrZWRAQ1NtYWxsU3BpbkxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTcGluTG9jazo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkVW5sb2NrZWRAQ1NwaW5Mb2NrQEBRQkVfTlhaDQorSXNTU0xSZXBvcnRpbmdCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTG9ja2VkRG91YmxlTGlzdDo6SXNVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1VubG9ja2VkQENMb2NrZWREb3VibGVMaXN0QEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTG9ja2VkU2luZ2xlTGlzdDo6SXNVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1VubG9ja2VkQENMb2NrZWRTaW5nbGVMaXN0QEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpJc1VzYWJsZSh2b2lkKWNvbnN0IA0KKz9Jc1VzYWJsZUBDTEtSSGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpJc1VzYWJsZSh2b2lkKWNvbnN0IA0KKz9Jc1VzYWJsZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OklzVmFsaWQodm9pZCljb25zdCANCis/SXNWYWxpZEBBTExPQ19DQUNIRV9IQU5ETEVSQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQlVGRkVSOjpJc1ZhbGlkKHZvaWQpY29uc3QgDQorP0lzVmFsaWRAQlVGRkVSQEBRQkVIWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OklzVmFsaWQodm9pZCljb25zdCANCis/SXNWYWxpZEBDTEtSSGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yOjpJc1ZhbGlkKHZvaWQpY29uc3QgDQorP0lzVmFsaWRAQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SXNWYWxpZCh2b2lkKWNvbnN0IA0KKz9Jc1ZhbGlkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3I6OklzVmFsaWQodm9pZCljb25zdCANCis/SXNWYWxpZEBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBRQkVfTlhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIElQTV9NRVNTQUdFX1BJUEU6OklzVmFsaWQodm9pZCkNCis/SXNWYWxpZEBJUE1fTUVTU0FHRV9QSVBFQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTVVMVElTWjo6SXNWYWxpZCh2b2lkKWNvbnN0IA0KKz9Jc1ZhbGlkQE1VTFRJU1pAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBNVUxUSVNaQTo6SXNWYWxpZCh2b2lkKWNvbnN0IA0KKz9Jc1ZhbGlkQE1VTFRJU1pBQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSQTo6SXNWYWxpZCh2b2lkKWNvbnN0IA0KKz9Jc1ZhbGlkQFNUUkFAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJBVTo6SXNWYWxpZCh2b2lkKQ0KKz9Jc1ZhbGlkQFNUUkFVQEBRQUVIWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENDcml0U2VjOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVMb2NrZWRAQ0NyaXRTZWNAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENGYWtlTG9jazo6SXNXcml0ZUxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1dyaXRlTG9ja2VkQENGYWtlTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6SXNXcml0ZUxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1dyaXRlTG9ja2VkQENMS1JIYXNoVGFibGVAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZUxvY2tlZEBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZUxvY2tlZEBDUmVhZGVyV3JpdGVyTG9jazJAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6SXNXcml0ZUxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1dyaXRlTG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrM0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZUxvY2tlZEBDUmVhZGVyV3JpdGVyTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1J0bFJlc291cmNlOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVMb2NrZWRAQ1J0bFJlc291cmNlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU2hhcmVMb2NrOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVMb2NrZWRAQ1NoYXJlTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1NtYWxsU3BpbkxvY2s6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZUxvY2tlZEBDU21hbGxTcGluTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1NwaW5Mb2NrOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVMb2NrZWRAQ1NwaW5Mb2NrQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDQ3JpdFNlYzo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVVbmxvY2tlZEBDQ3JpdFNlY0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0Zha2VMb2NrOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZVVubG9ja2VkQENGYWtlTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVVbmxvY2tlZEBDTEtSSGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZVVubG9ja2VkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVVbmxvY2tlZEBDUmVhZGVyV3JpdGVyTG9jazJAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVVbmxvY2tlZEBDUmVhZGVyV3JpdGVyTG9jazNAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZVVubG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUnRsUmVzb3VyY2U6OklzV3JpdGVVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ1J0bFJlc291cmNlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU2hhcmVMb2NrOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZVVubG9ja2VkQENTaGFyZUxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTbWFsbFNwaW5Mb2NrOjpJc1dyaXRlVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZVVubG9ja2VkQENTbWFsbFNwaW5Mb2NrQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU3BpbkxvY2s6OklzV3JpdGVVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ1NwaW5Mb2NrQEBRQkVfTlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgY29uc3QgIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6S2V5KHZvaWQpY29uc3QgDQorP0tleUBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBRQkU/QktYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3I6OktleSh2b2lkKWNvbnN0IA0KKz9LZXlAQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBAUUJFP0JLWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fdGhpc2NhbGwgQ0RvdWJsZUxpc3Q6Okxhc3Qodm9pZCljb25zdCANCis/TGFzdEBDRG91YmxlTGlzdEBAUUJFUUFWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fdGhpc2NhbGwgQ0xvY2tlZERvdWJsZUxpc3Q6Okxhc3Qodm9pZCkNCis/TGFzdEBDTG9ja2VkRG91YmxlTGlzdEBAUUFFUUFWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OkxvYWRTdHJpbmdXKHVuc2lnbmVkIGxvbmcsc3RydWN0IEhJTlNUQU5DRV9fICopDQorP0xvYWRTdHJpbmdXQFNUUkFAQFFBRUpLUEFVSElOU1RBTkNFX19AQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJBOjpMb2FkU3RyaW5nVyh1bnNpZ25lZCBsb25nLGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9Mb2FkU3RyaW5nV0BTVFJBQEBRQUVKS1BCREtAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OkxvY2sodm9pZCkNCis/TG9ja0BBTExPQ19DQUNIRV9IQU5ETEVSQEBBQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMb2NrZWREb3VibGVMaXN0OjpMb2NrKHZvaWQpDQorP0xvY2tAQ0xvY2tlZERvdWJsZUxpc3RAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xvY2tlZFNpbmdsZUxpc3Q6OkxvY2sodm9pZCkNCis/TG9ja0BDTG9ja2VkU2luZ2xlTGlzdEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBUU19SRVNPVVJDRTo6TG9jayhlbnVtIFRTUkVTX0xPQ0tfVFlQRSkNCis/TG9ja0BUU19SRVNPVVJDRUBAUUFFWFc0VFNSRVNfTE9DS19UWVBFQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX0xPQ0tUWVBFICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDEsMSwzLDEsMywyPjo6TG9ja1R5cGUodm9pZCkNCis/TG9ja1R5cGVAPyRDTG9ja0Jhc2VAJDAwJDAwJDAyJDAwJDAyJDAxQEBTRz9BVzRMT0NLX0xPQ0tUWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX0xPQ0tUWVBFICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDIsMSwxLDEsMywyPjo6TG9ja1R5cGUodm9pZCkNCis/TG9ja1R5cGVAPyRDTG9ja0Jhc2VAJDAxJDAwJDAwJDAwJDAyJDAxQEBTRz9BVzRMT0NLX0xPQ0tUWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX0xPQ0tUWVBFICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDMsMSwxLDEsMSwxPjo6TG9ja1R5cGUodm9pZCkNCis/TG9ja1R5cGVAPyRDTG9ja0Jhc2VAJDAyJDAwJDAwJDAwJDAwJDAwQEBTRz9BVzRMT0NLX0xPQ0tUWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX0xPQ0tUWVBFICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDQsMSwxLDIsMywzPjo6TG9ja1R5cGUodm9pZCkNCis/TG9ja1R5cGVAPyRDTG9ja0Jhc2VAJDAzJDAwJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX0xPQ0tUWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX0xPQ0tUWVBFICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDUsMiwxLDIsMywzPjo6TG9ja1R5cGUodm9pZCkNCis/TG9ja1R5cGVAPyRDTG9ja0Jhc2VAJDA0JDAxJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX0xPQ0tUWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX0xPQ0tUWVBFICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDYsMiwxLDIsMywzPjo6TG9ja1R5cGUodm9pZCkNCis/TG9ja1R5cGVAPyRDTG9ja0Jhc2VAJDA1JDAxJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX0xPQ0tUWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX0xPQ0tUWVBFICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDcsMiwyLDEsMywyPjo6TG9ja1R5cGUodm9pZCkNCis/TG9ja1R5cGVAPyRDTG9ja0Jhc2VAJDA2JDAxJDAxJDAwJDAyJDAxQEBTRz9BVzRMT0NLX0xPQ0tUWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX0xPQ0tUWVBFICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDgsMiwyLDEsMywyPjo6TG9ja1R5cGUodm9pZCkNCis/TG9ja1R5cGVAPyRDTG9ja0Jhc2VAJDA3JDAxJDAxJDAwJDAyJDAxQEBTRz9BVzRMT0NLX0xPQ0tUWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX0xPQ0tUWVBFICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDksMiwxLDEsMywyPjo6TG9ja1R5cGUodm9pZCkNCis/TG9ja1R5cGVAPyRDTG9ja0Jhc2VAJDA4JDAxJDAwJDAwJDAyJDAxQEBTRz9BVzRMT0NLX0xPQ0tUWVBFQEBYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgRVZFTlRfTE9HOjpMb2dFdmVudCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogKiBjb25zdCx1bnNpZ25lZCBsb25nKQ0KKz9Mb2dFdmVudEBFVkVOVF9MT0dAQFFBRVhLR1FBUEJHS0BaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgRVZFTlRfTE9HOjpMb2dFdmVudFByaXZhdGUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqICogY29uc3QsdW5zaWduZWQgbG9uZykNCis/TG9nRXZlbnRQcml2YXRlQEVWRU5UX0xPR0BAQUFFWEtHR1FBUEJHS0BaDQorTG9va3VwVG9rZW5BY2NvdW50TmFtZQ0KK01ha2VBbGxQcm9jZXNzSGVhcHNMRkgNCitNYWtlUGF0aENhbm9uaWNhbGl6YXRpb25Qcm9vZg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6TWF4U2l6ZSh2b2lkKWNvbnN0IA0KKz9NYXhTaXplQENMS1JIYXNoVGFibGVAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6TWF4U2l6ZSh2b2lkKWNvbnN0IA0KKz9NYXhTaXplQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRUtYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgSVBNX01FU1NBR0VfUElQRTo6TWVzc2FnZVBpcGVDb21wbGV0aW9uKHZvaWQgKix1bnNpZ25lZCBjaGFyKQ0KKz9NZXNzYWdlUGlwZUNvbXBsZXRpb25ASVBNX01FU1NBR0VfUElQRUBAU0dYUEFYRUBaDQorOyBjaGFyIGNvbnN0ICogX19zdGRjYWxsIE1vbnRoM0NoYXJOYW1lcyh1bnNpZ25lZCBsb25nKQ0KKz9Nb250aDNDaGFyTmFtZXNAQFlHUEJES0BaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpNdWx0aUtleXModm9pZCljb25zdCANCis/TXVsdGlLZXlzQENMS1JIYXNoVGFibGVAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ok11bHRpS2V5cyh2b2lkKWNvbnN0IA0KKz9NdWx0aUtleXNAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFX05YWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JXX01VVEVYICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDEsMSwzLDEsMywyPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDAkMDAkMDIkMDAkMDIkMDFAQFNHP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MiwxLDEsMSwzLDI+OjpNdXRleFR5cGUodm9pZCkNCis/TXV0ZXhUeXBlQD8kQ0xvY2tCYXNlQCQwMSQwMCQwMCQwMCQwMiQwMUBAU0c/QVc0TE9DS19SV19NVVRFWEBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SV19NVVRFWCAgX19zdGRjYWxsIENMb2NrQmFzZTwzLDEsMSwxLDEsMT46Ok11dGV4VHlwZSh2b2lkKQ0KKz9NdXRleFR5cGVAPyRDTG9ja0Jhc2VAJDAyJDAwJDAwJDAwJDAwJDAwQEBTRz9BVzRMT0NLX1JXX01VVEVYQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JXX01VVEVYICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDQsMSwxLDIsMywzPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDMkMDAkMDAkMDEkMDIkMDJAQFNHP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NSwyLDEsMiwzLDM+OjpNdXRleFR5cGUodm9pZCkNCis/TXV0ZXhUeXBlQD8kQ0xvY2tCYXNlQCQwNCQwMSQwMCQwMSQwMiQwMkBAU0c/QVc0TE9DS19SV19NVVRFWEBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SV19NVVRFWCAgX19zdGRjYWxsIENMb2NrQmFzZTw2LDIsMSwyLDMsMz46Ok11dGV4VHlwZSh2b2lkKQ0KKz9NdXRleFR5cGVAPyRDTG9ja0Jhc2VAJDA1JDAxJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX1JXX01VVEVYQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JXX01VVEVYICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDcsMiwyLDEsMywyPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDYkMDEkMDEkMDAkMDIkMDFAQFNHP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fc3RkY2FsbCBDTG9ja0Jhc2U8OCwyLDIsMSwzLDI+OjpNdXRleFR5cGUodm9pZCkNCis/TXV0ZXhUeXBlQD8kQ0xvY2tCYXNlQCQwNyQwMSQwMSQwMCQwMiQwMUBAU0c/QVc0TE9DS19SV19NVVRFWEBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SV19NVVRFWCAgX19zdGRjYWxsIENMb2NrQmFzZTw5LDIsMSwxLDMsMj46Ok11dGV4VHlwZSh2b2lkKQ0KKz9NdXRleFR5cGVAPyRDTG9ja0Jhc2VAJDA4JDAxJDAwJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1JXX01VVEVYQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgTVVMVElTWjo6TmV4dCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9OZXh0QE1VTFRJU1pAQFFCRVBCR1BCR0BaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIE1VTFRJU1pBOjpOZXh0KGNoYXIgY29uc3QgKiljb25zdCANCis/TmV4dEBNVUxUSVNaQUBAUUJFUEJEUEJEQFoNCis7IHB1YmxpYzogY2xhc3MgQlVGRkVSX0NIQUlOX0lURU0gKiBfX3RoaXNjYWxsIEJVRkZFUl9DSEFJTjo6TmV4dEJ1ZmZlcihjbGFzcyBCVUZGRVJfQ0hBSU5fSVRFTSAqKQ0KKz9OZXh0QnVmZmVyQEJVRkZFUl9DSEFJTkBAUUFFUEFWQlVGRkVSX0NIQUlOX0lURU1AQFBBVjJAQFoNCis7IGxvbmcgX19zdGRjYWxsIE5vcm1hbGl6ZVVybChjaGFyICopDQorP05vcm1hbGl6ZVVybEBAWUdKUEFEQFoNCis7IGxvbmcgX19zdGRjYWxsIE5vcm1hbGl6ZVVybFcodW5zaWduZWQgc2hvcnQgKikNCis/Tm9ybWFsaXplVXJsV0BAWUdKUEFHQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBJUE1fTUVTU0FHRV9QSVBFOjpOb3RpZnlQaXBlRGlzY29ubmVjdGVkKGxvbmcpDQorP05vdGlmeVBpcGVEaXNjb25uZWN0ZWRASVBNX01FU1NBR0VfUElQRUBAQUFFWEpAWg0KKzsgaW50IF9fc3RkY2FsbCBOdExhcmdlSW50ZWdlclRpbWVUb0xvY2FsU3lzdGVtVGltZSh1bmlvbiBfTEFSR0VfSU5URUdFUiBjb25zdCAqLHN0cnVjdCBfU1lTVEVNVElNRSAqKQ0KKz9OdExhcmdlSW50ZWdlclRpbWVUb0xvY2FsU3lzdGVtVGltZUBAWUdIUEJUX0xBUkdFX0lOVEVHRVJAQFBBVV9TWVNURU1USU1FQEBAWg0KKzsgaW50IF9fc3RkY2FsbCBOdExhcmdlSW50ZWdlclRpbWVUb1N5c3RlbVRpbWUodW5pb24gX0xBUkdFX0lOVEVHRVIgY29uc3QgJixzdHJ1Y3QgX1NZU1RFTVRJTUUgKikNCis/TnRMYXJnZUludGVnZXJUaW1lVG9TeXN0ZW1UaW1lQEBZR0hBQlRfTEFSR0VfSU5URUdFUkBAUEFVX1NZU1RFTVRJTUVAQEBaDQorOyBpbnQgX19zdGRjYWxsIE50U3lzdGVtVGltZVRvTGFyZ2VJbnRlZ2VyKHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAqLHVuaW9uIF9MQVJHRV9JTlRFR0VSICopDQorP050U3lzdGVtVGltZVRvTGFyZ2VJbnRlZ2VyQEBZR0hQQlVfU1lTVEVNVElNRUBAUEFUX0xBUkdFX0lOVEVHRVJAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6Ok51bVN1YlRhYmxlcyh2b2lkKWNvbnN0IA0KKz9OdW1TdWJUYWJsZXNAQ0xLUkhhc2hUYWJsZUBAUUJFSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExLX1RBQkxFU0laRSAgX19zdGRjYWxsIENMS1JIYXNoVGFibGU6Ok51bVN1YlRhYmxlcyh1bnNpZ25lZCBsb25nICYsdW5zaWduZWQgbG9uZyAmKQ0KKz9OdW1TdWJUYWJsZXNAQ0xLUkhhc2hUYWJsZUBAU0c/QVc0TEtfVEFCTEVTSVpFQEBBQUswQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6TnVtU3ViVGFibGVzKHZvaWQpY29uc3QgDQorP051bVN1YlRhYmxlc0BDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVIWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTEtfVEFCTEVTSVpFICBfX3N0ZGNhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6TnVtU3ViVGFibGVzKHVuc2lnbmVkIGxvbmcgJix1bnNpZ25lZCBsb25nICYpDQorP051bVN1YlRhYmxlc0BDTEtSTGluZWFySGFzaFRhYmxlQEBTRz9BVzRMS19UQUJMRVNJWkVAQEFBSzBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDREZUQ2FjaGU6Ok9mZnNldFNlY29uZHModm9pZCljb25zdCANCis/T2Zmc2V0U2Vjb25kc0BDREZUQ2FjaGVAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBNQjo6T3Blbih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/T3BlbkBNQkBAUUFFSEtQQkdLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTUI6Ok9wZW4odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9PcGVuQE1CQEBRQUVIUEJHS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDEsMSwzLDEsMywyPjo6UGVyTG9ja1NwaW4odm9pZCkNCis/UGVyTG9ja1NwaW5APyRDTG9ja0Jhc2VAJDAwJDAwJDAyJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1BFUkxPQ0tfU1BJTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19QRVJMT0NLX1NQSU4gIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MiwxLDEsMSwzLDI+OjpQZXJMb2NrU3Bpbih2b2lkKQ0KKz9QZXJMb2NrU3BpbkA/JENMb2NrQmFzZUAkMDEkMDAkMDAkMDAkMDIkMDFAQFNHP0FXNExPQ0tfUEVSTE9DS19TUElOQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1BFUkxPQ0tfU1BJTiAgX19zdGRjYWxsIENMb2NrQmFzZTwzLDEsMSwxLDEsMT46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwMiQwMCQwMCQwMCQwMCQwMEBAU0c/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDQsMSwxLDIsMywzPjo6UGVyTG9ja1NwaW4odm9pZCkNCis/UGVyTG9ja1NwaW5APyRDTG9ja0Jhc2VAJDAzJDAwJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX1BFUkxPQ0tfU1BJTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19QRVJMT0NLX1NQSU4gIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NSwyLDEsMiwzLDM+OjpQZXJMb2NrU3Bpbih2b2lkKQ0KKz9QZXJMb2NrU3BpbkA/JENMb2NrQmFzZUAkMDQkMDEkMDAkMDEkMDIkMDJAQFNHP0FXNExPQ0tfUEVSTE9DS19TUElOQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1BFUkxPQ0tfU1BJTiAgX19zdGRjYWxsIENMb2NrQmFzZTw2LDIsMSwyLDMsMz46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwNSQwMSQwMCQwMSQwMiQwMkBAU0c/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDcsMiwyLDEsMywyPjo6UGVyTG9ja1NwaW4odm9pZCkNCis/UGVyTG9ja1NwaW5APyRDTG9ja0Jhc2VAJDA2JDAxJDAxJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1BFUkxPQ0tfU1BJTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19QRVJMT0NLX1NQSU4gIF9fc3RkY2FsbCBDTG9ja0Jhc2U8OCwyLDIsMSwzLDI+OjpQZXJMb2NrU3Bpbih2b2lkKQ0KKz9QZXJMb2NrU3BpbkA/JENMb2NrQmFzZUAkMDckMDEkMDEkMDAkMDIkMDFAQFNHP0FXNExPQ0tfUEVSTE9DS19TUElOQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1BFUkxPQ0tfU1BJTiAgX19zdGRjYWxsIENMb2NrQmFzZTw5LDIsMSwxLDMsMj46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwOCQwMSQwMCQwMCQwMiQwMUBAU0c/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IGNsYXNzIENTaW5nbGVMaXN0RW50cnkgKiBfX3RoaXNjYWxsIENMb2NrZWRTaW5nbGVMaXN0OjpQb3Aodm9pZCkNCis/UG9wQENMb2NrZWRTaW5nbGVMaXN0QEBRQUVRQVZDU2luZ2xlTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDU2luZ2xlTGlzdEVudHJ5ICogX190aGlzY2FsbCBDU2luZ2xlTGlzdDo6UG9wKHZvaWQpDQorP1BvcEBDU2luZ2xlTGlzdEBAUUFFUUFWQ1NpbmdsZUxpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OlByaW50KHZvaWQpDQorP1ByaW50QEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFFBRVhYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIFNUUkFVOjpQcml2YXRlUXVlcnlTdHIoaW50KQ0KKz9Qcml2YXRlUXVlcnlTdHJAU1RSQVVAQEFBRVBBR0hAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xvY2tlZFNpbmdsZUxpc3Q6OlB1c2goY2xhc3MgQ1NpbmdsZUxpc3RFbnRyeSAqIGNvbnN0KQ0KKz9QdXNoQENMb2NrZWRTaW5nbGVMaXN0QEBRQUVYUUFWQ1NpbmdsZUxpc3RFbnRyeUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTaW5nbGVMaXN0OjpQdXNoKGNsYXNzIENTaW5nbGVMaXN0RW50cnkgKiBjb25zdCkNCis/UHVzaEBDU2luZ2xlTGlzdEBAUUFFWFFBVkNTaW5nbGVMaXN0RW50cnlAQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBJTVNBZG1pbkJhc2VXICogX190aGlzY2FsbCBNQjo6UXVlcnlBZG1pbkJhc2Uodm9pZCljb25zdCANCis/UXVlcnlBZG1pbkJhc2VATUJAQFFCRVBBVUlNU0FkbWluQmFzZVdAQFhaDQorOyBwdWJsaWM6IGNsYXNzIEJVRkZFUiAqIF9fdGhpc2NhbGwgU1RSVTo6UXVlcnlCdWZmZXIodm9pZCkNCis/UXVlcnlCdWZmZXJAU1RSVUBAUUFFUEFWQlVGRkVSQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBNVUxUSVNaOjpRdWVyeUNCKHZvaWQpY29uc3QgDQorP1F1ZXJ5Q0JATVVMVElTWkBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIE1VTFRJU1pBOjpRdWVyeUNCKHZvaWQpY29uc3QgDQorP1F1ZXJ5Q0JATVVMVElTWkFAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBTVFJBOjpRdWVyeUNCKHZvaWQpY29uc3QgDQorP1F1ZXJ5Q0JAU1RSQUBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIFNUUkFVOjpRdWVyeUNCKGludCkNCis/UXVlcnlDQkBTVFJBVUBAUUFFSUhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBTVFJVOjpRdWVyeUNCKHZvaWQpY29uc3QgDQorP1F1ZXJ5Q0JAU1RSVUBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIFNUUkFVOjpRdWVyeUNCQSh2b2lkKQ0KKz9RdWVyeUNCQUBTVFJBVUBAUUFFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIFNUUkFVOjpRdWVyeUNCVyh2b2lkKQ0KKz9RdWVyeUNCV0BTVFJBVUBAUUFFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIE1VTFRJU1o6OlF1ZXJ5Q0NIKHZvaWQpY29uc3QgDQorP1F1ZXJ5Q0NIQE1VTFRJU1pAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBNVUxUSVNaQTo6UXVlcnlDQ0godm9pZCljb25zdCANCis/UXVlcnlDQ0hATVVMVElTWkFAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBTVFJBOjpRdWVyeUNDSCh2b2lkKWNvbnN0IA0KKz9RdWVyeUNDSEBTVFJBQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgU1RSQVU6OlF1ZXJ5Q0NIKHZvaWQpDQorP1F1ZXJ5Q0NIQFNUUkFVQEBRQUVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgU1RSVTo6UXVlcnlDQ0godm9pZCljb25zdCANCis/UXVlcnlDQ0hAU1RSVUBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDRXR3VHJhY2VyOjpRdWVyeUVuYWJsZUxldmVsKHZvaWQpDQorP1F1ZXJ5RW5hYmxlTGV2ZWxAQ0V0d1RyYWNlckBAUUFFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBNQjo6UXVlcnlIYW5kbGUodm9pZCljb25zdCANCis/UXVlcnlIYW5kbGVATUJAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0hVTktfQlVGRkVSOjpRdWVyeUhlYXBBbGxvY0NvdW50KHZvaWQpDQorP1F1ZXJ5SGVhcEFsbG9jQ291bnRAQ0hVTktfQlVGRkVSQEBRQUVLWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBNQl9CQVNFX05PVElGSUNBVElPTl9TSU5LOjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJix2b2lkICogKikNCis/UXVlcnlJbnRlcmZhY2VATUJfQkFTRV9OT1RJRklDQVRJT05fU0lOS0BAVUFHSkFCVV9HVUlEQEBQQVBBWEBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3RoaXNjYWxsIEJVRkZFUjo6UXVlcnlQdHIodm9pZCljb25zdCANCis/UXVlcnlQdHJAQlVGRkVSQEBRQkVQQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBCVUZGRVI6OlF1ZXJ5U2l6ZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVNpemVAQlVGRkVSQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgU1RSQTo6UXVlcnlTaXplKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2l6ZUBTVFJBQEBRQkVJWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OlF1ZXJ5U3RhdHMoc3RydWN0IF9BTExPQ19DQUNIRV9TVEFUSVNUSUNTICopDQorP1F1ZXJ5U3RhdHNAQUxMT0NfQ0FDSEVfSEFORExFUkBAUUFFWFBBVV9BTExPQ19DQUNIRV9TVEFUSVNUSUNTQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgTVVMVElTWjo6UXVlcnlTdHIodm9pZCljb25zdCANCis/UXVlcnlTdHJATVVMVElTWkBAUUJFUEFHWFoNCis7IHB1YmxpYzogY2hhciAqIF9fdGhpc2NhbGwgTVVMVElTWkE6OlF1ZXJ5U3RyKHZvaWQpY29uc3QgDQorP1F1ZXJ5U3RyQE1VTFRJU1pBQEBRQkVQQURYWg0KKzsgcHVibGljOiBjaGFyICogX190aGlzY2FsbCBTVFJBOjpRdWVyeVN0cih2b2lkKQ0KKz9RdWVyeVN0ckBTVFJBQEBRQUVQQURYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBTVFJBOjpRdWVyeVN0cih2b2lkKWNvbnN0IA0KKz9RdWVyeVN0ckBTVFJBQEBRQkVQQkRYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgU1RSQVU6OlF1ZXJ5U3RyKGludCkNCis/UXVlcnlTdHJAU1RSQVVAQFFBRVBBR0hAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgU1RSVTo6UXVlcnlTdHIodm9pZCkNCis/UXVlcnlTdHJAU1RSVUBAUUFFUEFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIFNUUlU6OlF1ZXJ5U3RyKHZvaWQpY29uc3QgDQorP1F1ZXJ5U3RyQFNUUlVAQFFCRVBCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBNVUxUSVNaOjpRdWVyeVN0ckEodm9pZCljb25zdCANCis/UXVlcnlTdHJBQE1VTFRJU1pAQFFCRVBBR1haDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIFNUUkFVOjpRdWVyeVN0ckEodm9pZCkNCis/UXVlcnlTdHJBQFNUUkFVQEBRQUVQQURYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgU1RSQVU6OlF1ZXJ5U3RyVyh2b2lkKQ0KKz9RdWVyeVN0cldAU1RSQVVAQFFBRVBBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBNVUxUSVNaOjpRdWVyeVN0cmluZ0NvdW50KHZvaWQpY29uc3QgDQorP1F1ZXJ5U3RyaW5nQ291bnRATVVMVElTWkBAUUJFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBNVUxUSVNaQTo6UXVlcnlTdHJpbmdDb3VudCh2b2lkKWNvbnN0IA0KKz9RdWVyeVN0cmluZ0NvdW50QE1VTFRJU1pBQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgX19pbnQ2NCBfX3RoaXNjYWxsIENFdHdUcmFjZXI6OlF1ZXJ5VHJhY2VIYW5kbGUodm9pZCkNCis/UXVlcnlUcmFjZUhhbmRsZUBDRXR3VHJhY2VyQEBRQUVfS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBCVUZGRVJfQ0hBSU5fSVRFTTo6UXVlcnlVc2VkKHZvaWQpY29uc3QgDQorP1F1ZXJ5VXNlZEBCVUZGRVJfQ0hBSU5fSVRFTUBAUUJFS1haDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTwxLDEsMywxLDMsMj46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDAwJDAwJDAyJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTwyLDEsMSwxLDMsMj46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDAxJDAwJDAwJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTwzLDEsMSwxLDEsMT46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDAyJDAwJDAwJDAwJDAwJDAwQEBTRz9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTw0LDEsMSwyLDMsMz46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDAzJDAwJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTw1LDIsMSwyLDMsMz46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDA0JDAxJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTw2LDIsMSwyLDMsMz46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDA1JDAxJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTw3LDIsMiwxLDMsMj46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDA2JDAxJDAxJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTw4LDIsMiwxLDMsMj46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDA3JDAxJDAxJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUVVFVUVfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTw5LDIsMSwxLDMsMj46OlF1ZXVlVHlwZSh2b2lkKQ0KKz9RdWV1ZVR5cGVAPyRDTG9ja0Jhc2VAJDA4JDAxJDAwJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1FVRVVFX1RZUEVAQFhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDRGF0YUNhY2hlPGNsYXNzIENEYXRlVGltZT46OlJlYWQoY2xhc3MgQ0RhdGVUaW1lICYpY29uc3QgDQorP1JlYWRAPyRDRGF0YUNhY2hlQFZDRGF0ZVRpbWVAQEBAUUJFX05BQVZDRGF0ZVRpbWVAQEBaDQorUmVhZER3b3JkUGFyYW1ldGVyVmFsdWVGcm9tQW55U2VydmljZQ0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OlJlYWRMb2NrKHZvaWQpDQorP1JlYWRMb2NrQENDcml0U2VjQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGYWtlTG9jazo6UmVhZExvY2sodm9pZCkNCis/UmVhZExvY2tAQ0Zha2VMb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OlJlYWRMb2NrKHZvaWQpY29uc3QgDQorP1JlYWRMb2NrQENMS1JIYXNoVGFibGVAQFFCRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6UmVhZExvY2sodm9pZCljb25zdCANCis/UmVhZExvY2tAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OlJlYWRMb2NrKHZvaWQpDQorP1JlYWRMb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OlJlYWRMb2NrKHZvaWQpDQorP1JlYWRMb2NrQENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6UmVhZExvY2sodm9pZCkNCis/UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1J0bFJlc291cmNlOjpSZWFkTG9jayh2b2lkKQ0KKz9SZWFkTG9ja0BDUnRsUmVzb3VyY2VAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NoYXJlTG9jazo6UmVhZExvY2sodm9pZCkNCis/UmVhZExvY2tAQ1NoYXJlTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6UmVhZExvY2sodm9pZCkNCis/UmVhZExvY2tAQ1NtYWxsU3BpbkxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NwaW5Mb2NrOjpSZWFkTG9jayh2b2lkKQ0KKz9SZWFkTG9ja0BDU3BpbkxvY2tAQFFBRVhYWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIElQTV9NRVNTQUdFX1BJUEU6OlJlYWRNZXNzYWdlKHVuc2lnbmVkIGxvbmcpDQorP1JlYWRNZXNzYWdlQElQTV9NRVNTQUdFX1BJUEVAQEFBRUpLQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENDcml0U2VjOjpSZWFkT3JXcml0ZUxvY2sodm9pZCkNCis/UmVhZE9yV3JpdGVMb2NrQENDcml0U2VjQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDRmFrZUxvY2s6OlJlYWRPcldyaXRlTG9jayh2b2lkKQ0KKz9SZWFkT3JXcml0ZUxvY2tAQ0Zha2VMb2NrQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OlJlYWRPcldyaXRlTG9jayh2b2lkKQ0KKz9SZWFkT3JXcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU3BpbkxvY2s6OlJlYWRPcldyaXRlTG9jayh2b2lkKQ0KKz9SZWFkT3JXcml0ZUxvY2tAQ1NwaW5Mb2NrQEBRQUVfTlhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ3JpdFNlYzo6UmVhZE9yV3JpdGVVbmxvY2soYm9vbCkNCis/UmVhZE9yV3JpdGVVbmxvY2tAQ0NyaXRTZWNAQFFBRVhfTkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRmFrZUxvY2s6OlJlYWRPcldyaXRlVW5sb2NrKGJvb2wpDQorP1JlYWRPcldyaXRlVW5sb2NrQENGYWtlTG9ja0BAUUFFWF9OQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6UmVhZE9yV3JpdGVVbmxvY2soYm9vbCkNCis/UmVhZE9yV3JpdGVVbmxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRQUVYX05AWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NwaW5Mb2NrOjpSZWFkT3JXcml0ZVVubG9jayhib29sKQ0KKz9SZWFkT3JXcml0ZVVubG9ja0BDU3BpbkxvY2tAQFFBRVhfTkBaDQorUmVhZFJlZ0R3b3JkDQorUmVhZFN0cmluZ1BhcmFtZXRlclZhbHVlRnJvbUFueVNlcnZpY2UNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDcml0U2VjOjpSZWFkVW5sb2NrKHZvaWQpDQorP1JlYWRVbmxvY2tAQ0NyaXRTZWNAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Zha2VMb2NrOjpSZWFkVW5sb2NrKHZvaWQpDQorP1JlYWRVbmxvY2tAQ0Zha2VMb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OlJlYWRVbmxvY2sodm9pZCljb25zdCANCis/UmVhZFVubG9ja0BDTEtSSGFzaFRhYmxlQEBRQkVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OlJlYWRVbmxvY2sodm9pZCljb25zdCANCis/UmVhZFVubG9ja0BDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6UmVhZFVubG9jayh2b2lkKQ0KKz9SZWFkVW5sb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OlJlYWRVbmxvY2sodm9pZCkNCis/UmVhZFVubG9ja0BDUmVhZGVyV3JpdGVyTG9jazNAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6OlJlYWRVbmxvY2sodm9pZCkNCis/UmVhZFVubG9ja0BDUmVhZGVyV3JpdGVyTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUnRsUmVzb3VyY2U6OlJlYWRVbmxvY2sodm9pZCkNCis/UmVhZFVubG9ja0BDUnRsUmVzb3VyY2VAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NoYXJlTG9jazo6UmVhZFVubG9jayh2b2lkKQ0KKz9SZWFkVW5sb2NrQENTaGFyZUxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NtYWxsU3BpbkxvY2s6OlJlYWRVbmxvY2sodm9pZCkNCis/UmVhZFVubG9ja0BDU21hbGxTcGluTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3BpbkxvY2s6OlJlYWRVbmxvY2sodm9pZCkNCis/UmVhZFVubG9ja0BDU3BpbkxvY2tAQFFBRVhYWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgQlVGRkVSOjpSZWFsbG9jU3RvcmFnZSh1bnNpZ25lZCBpbnQpDQorP1JlYWxsb2NTdG9yYWdlQEJVRkZFUkBAQUFFSElAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgTVVMVElTWjo6UmVjYWxjTGVuKHZvaWQpDQorP1JlY2FsY0xlbkBNVUxUSVNaQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIE1VTFRJU1pBOjpSZWNhbGNMZW4odm9pZCkNCis/UmVjYWxjTGVuQE1VTFRJU1pBQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBjb25zdCAqIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZV9JdGVyYXRvcjo6UmVjb3JkKHZvaWQpY29uc3QgDQorP1JlY29yZEBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yQEBRQkVQQlhYWg0KKzsgcHVibGljOiB2b2lkIGNvbnN0ICogX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjpSZWNvcmQodm9pZCljb25zdCANCis/UmVjb3JkQENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQFFCRVBCWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUkVDVVJTSU9OICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDEsMSwzLDEsMywyPjo6UmVjdXJzaW9uKHZvaWQpDQorP1JlY3Vyc2lvbkA/JENMb2NrQmFzZUAkMDAkMDAkMDIkMDAkMDIkMDFAQFNHP0FXNExPQ0tfUkVDVVJTSU9OQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JFQ1VSU0lPTiAgX19zdGRjYWxsIENMb2NrQmFzZTwyLDEsMSwxLDMsMj46OlJlY3Vyc2lvbih2b2lkKQ0KKz9SZWN1cnNpb25APyRDTG9ja0Jhc2VAJDAxJDAwJDAwJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1JFQ1VSU0lPTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SRUNVUlNJT04gIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+OjpSZWN1cnNpb24odm9pZCkNCis/UmVjdXJzaW9uQD8kQ0xvY2tCYXNlQCQwMiQwMCQwMCQwMCQwMCQwMEBAU0c/QVc0TE9DS19SRUNVUlNJT05AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUkVDVVJTSU9OICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDQsMSwxLDIsMywzPjo6UmVjdXJzaW9uKHZvaWQpDQorP1JlY3Vyc2lvbkA/JENMb2NrQmFzZUAkMDMkMDAkMDAkMDEkMDIkMDJAQFNHP0FXNExPQ0tfUkVDVVJTSU9OQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JFQ1VSU0lPTiAgX19zdGRjYWxsIENMb2NrQmFzZTw1LDIsMSwyLDMsMz46OlJlY3Vyc2lvbih2b2lkKQ0KKz9SZWN1cnNpb25APyRDTG9ja0Jhc2VAJDA0JDAxJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX1JFQ1VSU0lPTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SRUNVUlNJT04gIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NiwyLDEsMiwzLDM+OjpSZWN1cnNpb24odm9pZCkNCis/UmVjdXJzaW9uQD8kQ0xvY2tCYXNlQCQwNSQwMSQwMCQwMSQwMiQwMkBAU0c/QVc0TE9DS19SRUNVUlNJT05AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUkVDVVJTSU9OICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDcsMiwyLDEsMywyPjo6UmVjdXJzaW9uKHZvaWQpDQorP1JlY3Vyc2lvbkA/JENMb2NrQmFzZUAkMDYkMDEkMDEkMDAkMDIkMDFAQFNHP0FXNExPQ0tfUkVDVVJTSU9OQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JFQ1VSU0lPTiAgX19zdGRjYWxsIENMb2NrQmFzZTw4LDIsMiwxLDMsMj46OlJlY3Vyc2lvbih2b2lkKQ0KKz9SZWN1cnNpb25APyRDTG9ja0Jhc2VAJDA3JDAxJDAxJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1JFQ1VSU0lPTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SRUNVUlNJT04gIF9fc3RkY2FsbCBDTG9ja0Jhc2U8OSwyLDEsMSwzLDI+OjpSZWN1cnNpb24odm9pZCkNCis/UmVjdXJzaW9uQD8kQ0xvY2tCYXNlQCQwOCQwMSQwMCQwMCQwMiQwMUBAU0c/QVc0TE9DS19SRUNVUlNJT05AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDRXR3VHJhY2VyOjpSZWdpc3RlcihzdHJ1Y3QgX0dVSUQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICopDQorP1JlZ2lzdGVyQENFdHdUcmFjZXJAQFFBRUtQQlVfR1VJREBAUEFHMUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgTUJfQkFTRV9OT1RJRklDQVRJT05fU0lOSzo6UmVsZWFzZSh2b2lkKQ0KKz9SZWxlYXNlQE1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTktAQFVBR0tYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NoYXJlbG9jazo6UmVsZWFzZUV4Y2x1c2l2ZUxvY2sodm9pZCkNCis/UmVsZWFzZUV4Y2x1c2l2ZUxvY2tAQ1NoYXJlbG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU2hhcmVsb2NrOjpSZWxlYXNlU2hhcmVMb2NrKHZvaWQpDQorP1JlbGVhc2VTaGFyZUxvY2tAQ1NoYXJlbG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDRG91YmxlTGlzdDo6UmVtb3ZlRW50cnkoY2xhc3MgQ0xpc3RFbnRyeSAqIGNvbnN0KQ0KKz9SZW1vdmVFbnRyeUBDRG91YmxlTGlzdEBAU0dYUUFWQ0xpc3RFbnRyeUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMb2NrZWREb3VibGVMaXN0OjpSZW1vdmVFbnRyeShjbGFzcyBDTGlzdEVudHJ5ICogY29uc3QpDQorP1JlbW92ZUVudHJ5QENMb2NrZWREb3VibGVMaXN0QEBRQUVYUUFWQ0xpc3RFbnRyeUBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fdGhpc2NhbGwgQ0RvdWJsZUxpc3Q6OlJlbW92ZUhlYWQodm9pZCkNCis/UmVtb3ZlSGVhZEBDRG91YmxlTGlzdEBAUUFFUUFWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fdGhpc2NhbGwgQ0xvY2tlZERvdWJsZUxpc3Q6OlJlbW92ZUhlYWQodm9pZCkNCis/UmVtb3ZlSGVhZEBDTG9ja2VkRG91YmxlTGlzdEBAUUFFUUFWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OlJlbW92ZUl0ZW0oY2xhc3MgQUxMT0NfQ0FDSEVfSEFORExFUiAqKQ0KKz9SZW1vdmVJdGVtQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFNHWFBBVjFAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fdGhpc2NhbGwgQ0RvdWJsZUxpc3Q6OlJlbW92ZVRhaWwodm9pZCkNCis/UmVtb3ZlVGFpbEBDRG91YmxlTGlzdEBAUUFFUUFWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fdGhpc2NhbGwgQ0xvY2tlZERvdWJsZUxpc3Q6OlJlbW92ZVRhaWwodm9pZCkNCis/UmVtb3ZlVGFpbEBDTG9ja2VkRG91YmxlTGlzdEBAUUFFUUFWQ0xpc3RFbnRyeUBAWFoNCitSZW1vdmVXb3JrSXRlbQ0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgTVVMVElTWjo6UmVzZXQodm9pZCkNCis/UmVzZXRATVVMVElTWkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBNVUxUSVNaQTo6UmVzZXQodm9pZCkNCis/UmVzZXRATVVMVElTWkFAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU1RSQTo6UmVzZXQodm9pZCkNCis/UmVzZXRAU1RSQUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBTVFJBVTo6UmVzZXQodm9pZCkNCis/UmVzZXRAU1RSQVVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU1RSVTo6UmVzZXQodm9pZCkNCis/UmVzZXRAU1RSVUBAUUFFWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OlJlc2V0TG9va2FzaWRlQ2xlYW51cEludGVydmFsKHZvaWQpDQorP1Jlc2V0TG9va2FzaWRlQ2xlYW51cEludGVydmFsQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQFNHSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEJVRkZFUjo6UmVzaXplKHVuc2lnbmVkIGludCkNCis/UmVzaXplQEJVRkZFUkBAUUFFSElAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBCVUZGRVI6OlJlc2l6ZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz9SZXNpemVAQlVGRkVSQEBRQUVISUlAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSQTo6UmVzaXplKHVuc2lnbmVkIGxvbmcpDQorP1Jlc2l6ZUBTVFJBQEBRQUVKS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJVOjpSZXNpemUodW5zaWduZWQgbG9uZykNCis/UmVzaXplQFNUUlVAQFFBRUpLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSQVU6OlJlc2l6ZVcodW5zaWduZWQgbG9uZykNCis/UmVzaXplV0BTVFJBVUBAUUFFSEtAWg0KK1NBRkVJc1NwYWNlDQorU0FGRUlzWERpZ2l0DQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUkFVOjpTYWZlQ29weShjaGFyIGNvbnN0ICopDQorP1NhZmVDb3B5QFNUUkFVQEBRQUVIUEJEQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSQVU6OlNhZmVDb3B5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NhZmVDb3B5QFNUUkFVQEBRQUVIUEJHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTUI6OlNhdmUodm9pZCkNCis/U2F2ZUBNQkBAUUFFSFhaDQorU2NoZWR1bGVBZGp1c3RUaW1lDQorU2NoZWR1bGVXb3JrSXRlbQ0KK1NjaGVkdWxlckluaXRpYWxpemUNCitTY2hlZHVsZXJUZXJtaW5hdGUNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDREZUQ2FjaGU6OlNlY29uZHModm9pZCljb25zdCANCis/U2Vjb25kc0BDREZUQ2FjaGVAQFFCRUdYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgVzNfVFJBQ0VfTE9HOjpTZXRCbG9ja2luZyhpbnQpDQorP1NldEJsb2NraW5nQFczX1RSQUNFX0xPR0BAUUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6U2V0QnVja2V0TG9ja1NwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0QnVja2V0TG9ja1NwaW5Db3VudEBDTEtSSGFzaFRhYmxlQEBRQUVYR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpTZXRCdWNrZXRMb2NrU3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXRCdWNrZXRMb2NrU3BpbkNvdW50QENMS1JMaW5lYXJIYXNoVGFibGVAQFFBRVhHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFczX1RSQUNFX0xPRzo6U2V0QnVmZmVyaW5nKGludCkNCis/U2V0QnVmZmVyaW5nQFczX1RSQUNFX0xPR0BAUUFFWEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBNQjo6U2V0RGF0YSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP1NldERhdGFATUJAQFFBRUhQQkdLS0tQQVhLS0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDQ3JpdFNlYzo6U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKGRvdWJsZSkNCis/U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENDcml0U2VjQEBTR1hOQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENGYWtlTG9jazo6U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKGRvdWJsZSkNCis/U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENGYWtlTG9ja0BAU0dYTkBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OlNldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcihkb3VibGUpDQorP1NldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUmVhZGVyV3JpdGVyTG9jazJAQFNHWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1JlYWRlcldyaXRlckxvY2szQEBTR1hOQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1JlYWRlcldyaXRlckxvY2tAQFNHWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1J0bFJlc291cmNlOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1J0bFJlc291cmNlQEBTR1hOQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENTaGFyZUxvY2s6OlNldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcihkb3VibGUpDQorP1NldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDU2hhcmVMb2NrQEBTR1hOQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENTbWFsbFNwaW5Mb2NrOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1NtYWxsU3BpbkxvY2tAQFNHWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1NwaW5Mb2NrOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1NwaW5Mb2NrQEBTR1hOQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENDcml0U2VjOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENDcml0U2VjQEBTR1hHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENGYWtlTG9jazo6U2V0RGVmYXVsdFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0RGVmYXVsdFNwaW5Db3VudEBDRmFrZUxvY2tAQFNHWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrMkBAU0dYR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OlNldERlZmF1bHRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldERlZmF1bHRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2szQEBTR1hHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrQEBTR1hHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENSdGxSZXNvdXJjZTo6U2V0RGVmYXVsdFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0RGVmYXVsdFNwaW5Db3VudEBDUnRsUmVzb3VyY2VAQFNHWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1NoYXJlTG9jazo6U2V0RGVmYXVsdFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0RGVmYXVsdFNwaW5Db3VudEBDU2hhcmVMb2NrQEBTR1hHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENTbWFsbFNwaW5Mb2NrOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENTbWFsbFNwaW5Mb2NrQEBTR1hHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENTcGluTG9jazo6U2V0RGVmYXVsdFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0RGVmYXVsdFNwaW5Db3VudEBDU3BpbkxvY2tAQFNHWEdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBNQjo6U2V0RHdvcmQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9TZXREd29yZEBNQkBAUUFFSFBCR0tLS0tAWg0KK1NldEV4cGxpY2l0QWNjZXNzU2V0dGluZ3MNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSQTo6U2V0TGVuKHVuc2lnbmVkIGxvbmcpDQorP1NldExlbkBTVFJBQEBRQUVIS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUkFVOjpTZXRMZW4odW5zaWduZWQgbG9uZykNCis/U2V0TGVuQFNUUkFVQEBRQUVIS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUlU6OlNldExlbih1bnNpZ25lZCBsb25nKQ0KKz9TZXRMZW5AU1RSVUBAUUFFSEtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQVNDTE9HX0RBVEVUSU1FX0NBQ0hFOjpTZXRMb2NhbFRpbWUoc3RydWN0IF9TWVNURU1USU1FICopDQorP1NldExvY2FsVGltZUBBU0NMT0dfREFURVRJTUVfQ0FDSEVAQFFBRVhQQVVfU1lTVEVNVElNRUBAQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQUxMT0NfQ0FDSEVfSEFORExFUjo6U2V0TG9va2FzaWRlQ2xlYW51cEludGVydmFsKHZvaWQpDQorP1NldExvb2thc2lkZUNsZWFudXBJbnRlcnZhbEBBTExPQ19DQUNIRV9IQU5ETEVSQEBTR0hYWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OlNldFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0U3BpbkNvdW50QENDcml0U2VjQEBRQUVfTkdAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0NyaXRTZWM6OlNldFNwaW5Db3VudChzdHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OICosdW5zaWduZWQgbG9uZykNCis/U2V0U3BpbkNvdW50QENDcml0U2VjQEBTR0tQQVVfUlRMX0NSSVRJQ0FMX1NFQ1RJT05AQEtAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0Zha2VMb2NrOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldFNwaW5Db3VudEBDRmFrZUxvY2tAQFFBRV9OR0BaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OlNldFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrMkBAUUFFX05HQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6U2V0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2szQEBRQUVfTkdAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6OlNldFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrQEBRQUVfTkdAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1J0bFJlc291cmNlOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldFNwaW5Db3VudEBDUnRsUmVzb3VyY2VAQFFBRV9OR0BaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU2hhcmVMb2NrOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldFNwaW5Db3VudEBDU2hhcmVMb2NrQEBRQUVfTkdAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1NtYWxsU3BpbkxvY2s6OlNldFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0U3BpbkNvdW50QENTbWFsbFNwaW5Mb2NrQEBRQUVfTkdAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1NwaW5Mb2NrOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldFNwaW5Db3VudEBDU3BpbkxvY2tAQFFBRV9OR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1COjpTZXRTdHJpbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9TZXRTdHJpbmdATUJAQFFBRUhQQkdLSzBLQFoNCitTZXRTdHJpbmdQYXJhbWV0ZXJWYWx1ZUluQW55U2VydmljZQ0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgRVhUTE9HX0RBVEVUSU1FX0NBQ0hFOjpTZXRTeXN0ZW1UaW1lKHN0cnVjdCBfU1lTVEVNVElNRSAqKQ0KKz9TZXRTeXN0ZW1UaW1lQEVYVExPR19EQVRFVElNRV9DQUNIRUBAUUFFWFBBVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6U2V0VGFibGVMb2NrU3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXRUYWJsZUxvY2tTcGluQ291bnRAQ0xLUkhhc2hUYWJsZUBAUUFFWEdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6U2V0VGFibGVMb2NrU3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXRUYWJsZUxvY2tTcGluQ291bnRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUFFWEdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRGF0ZVRpbWU6OlNldFRpbWUoc3RydWN0IF9GSUxFVElNRSBjb25zdCAmKQ0KKz9TZXRUaW1lQENEYXRlVGltZUBAUUFFSEFCVV9GSUxFVElNRUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RhdGVUaW1lOjpTZXRUaW1lKHN0cnVjdCBfU1lTVEVNVElNRSBjb25zdCAmKQ0KKz9TZXRUaW1lQENEYXRlVGltZUBAUUFFSEFCVV9TWVNURU1USU1FQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQlVGRkVSX0NIQUlOX0lURU06OlNldFVzZWQodW5zaWduZWQgbG9uZykNCis/U2V0VXNlZEBCVUZGRVJfQ0hBSU5fSVRFTUBAUUFFWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQlVGRkVSOjpTZXRWYWxpZChpbnQpDQorP1NldFZhbGlkQEJVRkZFUkBAUUFFWEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIE1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTks6OlNodXRkb3duTm90aWZ5KHZvaWQpDQorP1NodXRkb3duTm90aWZ5QE1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTktAQFVBR0pYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIE1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTks6OlNpbmtOb3RpZnkodW5zaWduZWQgbG9uZyxzdHJ1Y3QgX01EX0NIQU5HRV9PQkpFQ1RfVyAqIGNvbnN0KQ0KKz9TaW5rTm90aWZ5QE1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTktAQFVBR0pLUUFVX01EX0NIQU5HRV9PQkpFQ1RfV0BAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OlNpemUodm9pZCljb25zdCANCis/U2l6ZUBDTEtSSGFzaFRhYmxlQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OlNpemUodm9pZCljb25zdCANCis/U2l6ZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVLWFoNCitTa2lwVG8NCitTa2lwV2hpdGUNCis7IHByaXZhdGU6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBDU2hhcmVsb2NrOjpTbGVlcFdhaXRpbmdGb3JMb2NrKGludCkNCis/U2xlZXBXYWl0aW5nRm9yTG9ja0BDU2hhcmVsb2NrQEBBQUVFSEBaDQorU3RhcnRJSVNBZG1pbk1vbml0b3INCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTks6OlN0YXJ0TGlzdGVuaW5nKHN0cnVjdCBJVW5rbm93biAqKQ0KKz9TdGFydExpc3RlbmluZ0BNQl9CQVNFX05PVElGSUNBVElPTl9TSU5LQEBRQUVKUEFVSVVua25vd25AQEBaDQorU3RvcElJU0FkbWluTW9uaXRvcg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTUJfQkFTRV9OT1RJRklDQVRJT05fU0lOSzo6U3RvcExpc3RlbmluZyhzdHJ1Y3QgSVVua25vd24gKikNCis/U3RvcExpc3RlbmluZ0BNQl9CQVNFX05PVElGSUNBVElPTl9TSU5LQEBRQUVKUEFVSVVua25vd25AQEBaDQorOyBpbnQgX19zdGRjYWxsIFN0cmluZ1RpbWVUb0ZpbGVUaW1lKGNoYXIgY29uc3QgKix1bmlvbiBfTEFSR0VfSU5URUdFUiAqKQ0KKz9TdHJpbmdUaW1lVG9GaWxlVGltZUBAWUdIUEJEUEFUX0xBUkdFX0lOVEVHRVJAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEVWRU5UX0xPRzo6U3VjY2Vzcyh2b2lkKWNvbnN0IA0KKz9TdWNjZXNzQEVWRU5UX0xPR0BAUUJFSFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBTVFJBOjpTeW5jV2l0aEJ1ZmZlcih2b2lkKQ0KKz9TeW5jV2l0aEJ1ZmZlckBTVFJBQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNUUlU6OlN5bmNXaXRoQnVmZmVyKHZvaWQpDQorP1N5bmNXaXRoQnVmZmVyQFNUUlVAQFFBRVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIE1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTks6OlN5bmNocm9uaXplZFNodXRkb3duTm90aWZ5KHZvaWQpDQorP1N5bmNocm9uaXplZFNodXRkb3duTm90aWZ5QE1CX0JBU0VfTk9USUZJQ0FUSU9OX1NJTktAQFVBR0pYWg0KK1N5c3RlbVRpbWVUb0dNVA0KKzsgaW50IF9fc3RkY2FsbCBTeXN0ZW1UaW1lVG9HTVRFeChzdHJ1Y3QgX1NZU1RFTVRJTUUgY29uc3QgJixjaGFyICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9TeXN0ZW1UaW1lVG9HTVRFeEBAWUdIQUJVX1NZU1RFTVRJTUVAQFBBREtLQFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBXM19UUkFDRV9MT0dfRkFDVE9SWTo6VGltZXJDYWxsYmFjayh2b2lkICosdW5zaWduZWQgY2hhcikNCis/VGltZXJDYWxsYmFja0BXM19UUkFDRV9MT0dfRkFDVE9SWUBAQ0dYUEFYRUBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBXM19UUkFDRV9MT0c6OlRyYWNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosLi4uKQ0KKz9UcmFjZUBXM19UUkFDRV9MT0dAQFFBQUpQQkdaWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRXR3VHJhY2VyOjpUcmFjZVBlclVybEVuYWJsZWQodm9pZCkNCis/VHJhY2VQZXJVcmxFbmFibGVkQENFdHdUcmFjZXJAQFFBRUhYWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpUcnlDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkNCis/VHJ5Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OlRyeVJlYWRMb2NrKHZvaWQpDQorP1RyeVJlYWRMb2NrQENDcml0U2VjQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDRmFrZUxvY2s6OlRyeVJlYWRMb2NrKHZvaWQpDQorP1RyeVJlYWRMb2NrQENGYWtlTG9ja0BAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpUcnlSZWFkTG9jayh2b2lkKQ0KKz9UcnlSZWFkTG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQFFBRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6VHJ5UmVhZExvY2sodm9pZCkNCis/VHJ5UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6VHJ5UmVhZExvY2sodm9pZCkNCis/VHJ5UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2tAQFFBRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSdGxSZXNvdXJjZTo6VHJ5UmVhZExvY2sodm9pZCkNCis/VHJ5UmVhZExvY2tAQ1J0bFJlc291cmNlQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU2hhcmVMb2NrOjpUcnlSZWFkTG9jayh2b2lkKQ0KKz9UcnlSZWFkTG9ja0BDU2hhcmVMb2NrQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6VHJ5UmVhZExvY2sodm9pZCkNCis/VHJ5UmVhZExvY2tAQ1NtYWxsU3BpbkxvY2tAQFFBRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTcGluTG9jazo6VHJ5UmVhZExvY2sodm9pZCkNCis/VHJ5UmVhZExvY2tAQ1NwaW5Mb2NrQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDQ3JpdFNlYzo6VHJ5V3JpdGVMb2NrKHZvaWQpDQorP1RyeVdyaXRlTG9ja0BDQ3JpdFNlY0BAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0Zha2VMb2NrOjpUcnlXcml0ZUxvY2sodm9pZCkNCis/VHJ5V3JpdGVMb2NrQENGYWtlTG9ja0BAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpUcnlXcml0ZUxvY2sodm9pZCkNCis/VHJ5V3JpdGVMb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpUcnlXcml0ZUxvY2sodm9pZCkNCis/VHJ5V3JpdGVMb2NrQENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6OlRyeVdyaXRlTG9jayh2b2lkKQ0KKz9UcnlXcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2tAQFFBRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSdGxSZXNvdXJjZTo6VHJ5V3JpdGVMb2NrKHZvaWQpDQorP1RyeVdyaXRlTG9ja0BDUnRsUmVzb3VyY2VAQFFBRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTaGFyZUxvY2s6OlRyeVdyaXRlTG9jayh2b2lkKQ0KKz9UcnlXcml0ZUxvY2tAQ1NoYXJlTG9ja0BAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1NtYWxsU3BpbkxvY2s6OlRyeVdyaXRlTG9jayh2b2lkKQ0KKz9UcnlXcml0ZUxvY2tAQ1NtYWxsU3BpbkxvY2tAQFFBRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTcGluTG9jazo6VHJ5V3JpdGVMb2NrKHZvaWQpDQorP1RyeVdyaXRlTG9ja0BDU3BpbkxvY2tAQFFBRV9OWFoNCis7IGxvbmcgX19zdGRjYWxsIFVsQ2xlYW5BbmRDb3B5VXJsKHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICogKikNCis/VWxDbGVhbkFuZENvcHlVcmxAQFlHSlBBRUtQQUtQQUdQQVBBR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDRXR3VHJhY2VyOjpVblJlZ2lzdGVyKHZvaWQpDQorP1VuUmVnaXN0ZXJAQ0V0d1RyYWNlckBAUUFFS1haDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBXM19UUkFDRV9MT0c6OlVuZGVudCh2b2lkKQ0KKz9VbmRlbnRAVzNfVFJBQ0VfTE9HQEBRQUVYWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUkE6OlVuZXNjYXBlKHZvaWQpDQorP1VuZXNjYXBlQFNUUkFAQFFBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1RSVTo6VW5lc2NhcGUodm9pZCkNCis/VW5lc2NhcGVAU1RSVUBAUUFFSlhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQUxMT0NfQ0FDSEVfSEFORExFUjo6VW5sb2NrKHZvaWQpDQorP1VubG9ja0BBTExPQ19DQUNIRV9IQU5ETEVSQEBBQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMb2NrZWREb3VibGVMaXN0OjpVbmxvY2sodm9pZCkNCis/VW5sb2NrQENMb2NrZWREb3VibGVMaXN0QEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMb2NrZWRTaW5nbGVMaXN0OjpVbmxvY2sodm9pZCkNCis/VW5sb2NrQENMb2NrZWRTaW5nbGVMaXN0QEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFRTX1JFU09VUkNFOjpVbmxvY2sodm9pZCkNCis/VW5sb2NrQFRTX1JFU09VUkNFQEBRQUVYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIENTaGFyZWxvY2s6OlVwZGF0ZU1heFNwaW5zKGludCkNCis/VXBkYXRlTWF4U3BpbnNAQ1NoYXJlbG9ja0BAUUFFRUhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgQ1NoYXJlbG9jazo6VXBkYXRlTWF4VXNlcnMoaW50KQ0KKz9VcGRhdGVNYXhVc2Vyc0BDU2hhcmVsb2NrQEBRQUVFSEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpWYWxpZFNpZ25hdHVyZSh2b2lkKWNvbnN0IA0KKz9WYWxpZFNpZ25hdHVyZUBDTEtSSGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpWYWxpZFNpZ25hdHVyZSh2b2lkKWNvbnN0IA0KKz9WYWxpZFNpZ25hdHVyZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQlVGRkVSOjpWZXJpZnlTdGF0ZSh2b2lkKWNvbnN0IA0KKz9WZXJpZnlTdGF0ZUBCVUZGRVJAQEFCRVhYWg0KK1dDb3B5VG9BDQorOyBwcml2YXRlOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgQ1NoYXJlbG9jazo6V2FpdEZvckV4Y2x1c2l2ZUxvY2soaW50KQ0KKz9XYWl0Rm9yRXhjbHVzaXZlTG9ja0BDU2hhcmVsb2NrQEBBQUVFSEBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgQ1NoYXJlbG9jazo6V2FpdEZvclNoYXJlTG9jayhpbnQpDQorP1dhaXRGb3JTaGFyZUxvY2tAQ1NoYXJlbG9ja0BAQUFFRUhAWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTwxLDEsMywxLDMsMj46OldhaXRUeXBlKHZvaWQpDQorP1dhaXRUeXBlQD8kQ0xvY2tCYXNlQCQwMCQwMCQwMiQwMCQwMiQwMUBAU0c/QVc0TE9DS19XQUlUX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfV0FJVF9UWVBFICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDIsMSwxLDEsMywyPjo6V2FpdFR5cGUodm9pZCkNCis/V2FpdFR5cGVAPyRDTG9ja0Jhc2VAJDAxJDAwJDAwJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1dBSVRfVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19XQUlUX1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDIkMDAkMDAkMDAkMDAkMDBAQFNHP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTw0LDEsMSwyLDMsMz46OldhaXRUeXBlKHZvaWQpDQorP1dhaXRUeXBlQD8kQ0xvY2tCYXNlQCQwMyQwMCQwMCQwMSQwMiQwMkBAU0c/QVc0TE9DS19XQUlUX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfV0FJVF9UWVBFICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDUsMiwxLDIsMywzPjo6V2FpdFR5cGUodm9pZCkNCis/V2FpdFR5cGVAPyRDTG9ja0Jhc2VAJDA0JDAxJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX1dBSVRfVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19XQUlUX1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NiwyLDEsMiwzLDM+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDUkMDEkMDAkMDEkMDIkMDJAQFNHP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTw3LDIsMiwxLDMsMj46OldhaXRUeXBlKHZvaWQpDQorP1dhaXRUeXBlQD8kQ0xvY2tCYXNlQCQwNiQwMSQwMSQwMCQwMiQwMUBAU0c/QVc0TE9DS19XQUlUX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfV0FJVF9UWVBFICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDgsMiwyLDEsMywyPjo6V2FpdFR5cGUodm9pZCkNCis/V2FpdFR5cGVAPyRDTG9ja0Jhc2VAJDA3JDAxJDAxJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1dBSVRfVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19XQUlUX1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8OSwyLDEsMSwzLDI+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDgkMDEkMDAkMDAkMDIkMDFAQFNHP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENTaGFyZWxvY2s6Oldha2VBbGxTbGVlcGVycyh2b2lkKQ0KKz9XYWtlQWxsU2xlZXBlcnNAQ1NoYXJlbG9ja0BAQUFFWFhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDRGF0YUNhY2hlPHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlk+OjpXcml0ZShzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZIGNvbnN0ICYpDQorP1dyaXRlQD8kQ0RhdGFDYWNoZUBVREFURVRJTUVfRk9STUFUX0VOVFJZQEBAQFFBRV9OQUJVREFURVRJTUVfRk9STUFUX0VOVFJZQEBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0RhdGFDYWNoZTxjbGFzcyBDRGF0ZVRpbWU+OjpXcml0ZShjbGFzcyBDRGF0ZVRpbWUgY29uc3QgJikNCis/V3JpdGVAPyRDRGF0YUNhY2hlQFZDRGF0ZVRpbWVAQEBAUUFFX05BQlZDRGF0ZVRpbWVAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ3JpdFNlYzo6V3JpdGVMb2NrKHZvaWQpDQorP1dyaXRlTG9ja0BDQ3JpdFNlY0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRmFrZUxvY2s6OldyaXRlTG9jayh2b2lkKQ0KKz9Xcml0ZUxvY2tAQ0Zha2VMb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OldyaXRlTG9jayh2b2lkKQ0KKz9Xcml0ZUxvY2tAQ0xLUkhhc2hUYWJsZUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpXcml0ZUxvY2sodm9pZCkNCis/V3JpdGVMb2NrQENMS1JMaW5lYXJIYXNoVGFibGVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpXcml0ZUxvY2sodm9pZCkNCis/V3JpdGVMb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OldyaXRlTG9jayh2b2lkKQ0KKz9Xcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpXcml0ZUxvY2sodm9pZCkNCis/V3JpdGVMb2NrQENSZWFkZXJXcml0ZXJMb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSdGxSZXNvdXJjZTo6V3JpdGVMb2NrKHZvaWQpDQorP1dyaXRlTG9ja0BDUnRsUmVzb3VyY2VAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NoYXJlTG9jazo6V3JpdGVMb2NrKHZvaWQpDQorP1dyaXRlTG9ja0BDU2hhcmVMb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTbWFsbFNwaW5Mb2NrOjpXcml0ZUxvY2sodm9pZCkNCis/V3JpdGVMb2NrQENTbWFsbFNwaW5Mb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTcGluTG9jazo6V3JpdGVMb2NrKHZvaWQpDQorP1dyaXRlTG9ja0BDU3BpbkxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgSVBNX01FU1NBR0VfUElQRTo6V3JpdGVNZXNzYWdlKGVudW0gSVBNX09QQ09ERSx1bnNpZ25lZCBsb25nLHZvaWQgKikNCis/V3JpdGVNZXNzYWdlQElQTV9NRVNTQUdFX1BJUEVAQFFBRUpXNElQTV9PUENPREVAQEtQQVhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OldyaXRlVW5sb2NrKHZvaWQpDQorP1dyaXRlVW5sb2NrQENDcml0U2VjQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGYWtlTG9jazo6V3JpdGVVbmxvY2sodm9pZCkNCis/V3JpdGVVbmxvY2tAQ0Zha2VMb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OldyaXRlVW5sb2NrKHZvaWQpY29uc3QgDQorP1dyaXRlVW5sb2NrQENMS1JIYXNoVGFibGVAQFFCRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6V3JpdGVVbmxvY2sodm9pZCljb25zdCANCis/V3JpdGVVbmxvY2tAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OldyaXRlVW5sb2NrKHZvaWQpDQorP1dyaXRlVW5sb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OldyaXRlVW5sb2NrKHZvaWQpDQorP1dyaXRlVW5sb2NrQENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6V3JpdGVVbmxvY2sodm9pZCkNCis/V3JpdGVVbmxvY2tAQ1JlYWRlcldyaXRlckxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1J0bFJlc291cmNlOjpXcml0ZVVubG9jayh2b2lkKQ0KKz9Xcml0ZVVubG9ja0BDUnRsUmVzb3VyY2VAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NoYXJlTG9jazo6V3JpdGVVbmxvY2sodm9pZCkNCis/V3JpdGVVbmxvY2tAQ1NoYXJlTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6V3JpdGVVbmxvY2sodm9pZCkNCis/V3JpdGVVbmxvY2tAQ1NtYWxsU3BpbkxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NwaW5Mb2NrOjpXcml0ZVVubG9jayh2b2lkKQ0KKz9Xcml0ZVVubG9ja0BDU3BpbkxvY2tAQFFBRVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvcjo6X0FkZFJlZihpbnQpY29uc3QgDQorP19BZGRSZWZAQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBASUJFWEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9BZGRSZWZSZWNvcmQodm9pZCBjb25zdCAqLGludCljb25zdCANCis/X0FkZFJlZlJlY29yZEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQkVYUEJYSEBaDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ05vZGVDbHVtcCAqIF9fc3RkY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQWxsb2NhdGVOb2RlQ2x1bXAodm9pZCkNCis/X0FsbG9jYXRlTm9kZUNsdW1wQENMS1JMaW5lYXJIYXNoVGFibGVAQENHUUFWQ05vZGVDbHVtcEBAWFoNCis7IHByaXZhdGU6IGNsYXNzIENTZWdtZW50ICogX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQWxsb2NhdGVTZWdtZW50KHZvaWQpY29uc3QgDQorP19BbGxvY2F0ZVNlZ21lbnRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUJFUUFWQ1NlZ21lbnRAQFhaDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ0RpckVudHJ5ICogX19zdGRjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9BbGxvY2F0ZVNlZ21lbnREaXJlY3RvcnkodW5zaWduZWQgaW50KQ0KKz9fQWxsb2NhdGVTZWdtZW50RGlyZWN0b3J5QENMS1JMaW5lYXJIYXNoVGFibGVAQENHUUFWQ0RpckVudHJ5QEBJQFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlICogX19zdGRjYWxsIENMS1JIYXNoVGFibGU6Ol9BbGxvY2F0ZVN1YlRhYmxlKGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nIGNvbnN0ICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqKSx1bnNpZ25lZCBsb25nIChfX3N0ZGNhbGwqKSh1bnNpZ25lZCBsb25nKSxib29sIChfX3N0ZGNhbGwqKSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpLHZvaWQgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKixpbnQpLGRvdWJsZSx1bnNpZ25lZCBsb25nLGNsYXNzIENMS1JIYXNoVGFibGUgKixib29sKQ0KKz9fQWxsb2NhdGVTdWJUYWJsZUBDTEtSSGFzaFRhYmxlQEBDR1FBVkNMS1JMaW5lYXJIYXNoVGFibGVAQFBCRFA2Rz9CS1BCWEBaUDZHS0tAWlA2R19OS0tAWlA2R1gxSEBaTktQQVYxQF9OQFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlICogKiBfX3N0ZGNhbGwgQ0xLUkhhc2hUYWJsZTo6X0FsbG9jYXRlU3ViVGFibGVBcnJheSh1bnNpZ25lZCBpbnQpDQorP19BbGxvY2F0ZVN1YlRhYmxlQXJyYXlAQ0xLUkhhc2hUYWJsZUBAQ0dRQVBBVkNMS1JMaW5lYXJIYXNoVGFibGVAQElAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9BcHBseShlbnVtIExLX0FDVElPTiAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKix2b2lkICopLHZvaWQgKixlbnVtIExLX0xPQ0tUWVBFLGVudW0gTEtfUFJFRElDQVRFICYpDQorP19BcHBseUBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUVLUDZHP0FXNExLX0FDVElPTkBAUEJYUEFYQFoxVzRMS19MT0NLVFlQRUBAQUFXNExLX1BSRURJQ0FURUBAQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQXBwbHlJZihlbnVtIExLX1BSRURJQ0FURSAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKix2b2lkICopLGVudW0gTEtfQUNUSU9OICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLHZvaWQgKiksdm9pZCAqLGVudW0gTEtfTE9DS1RZUEUsZW51bSBMS19QUkVESUNBVEUgJikNCis/X0FwcGx5SWZAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFS1A2Rz9BVzRMS19QUkVESUNBVEVAQFBCWFBBWEBaUDZHP0FXNExLX0FDVElPTkBAMDFAWjFXNExLX0xPQ0tUWVBFQEBBQVc0MkBAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0J1Y2tldCAqIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0J1Y2tldCh1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9fQnVja2V0QENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRVBBVkNCdWNrZXRAQEtAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9CdWNrZXRBZGRyZXNzKHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP19CdWNrZXRBZGRyZXNzQENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRUtLQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpfQ2FsY0tleUhhc2godW5zaWduZWQgbG9uZyljb25zdCANCis/X0NhbGNLZXlIYXNoQENMS1JIYXNoVGFibGVAQEFCRUtLQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQ2FsY0tleUhhc2godW5zaWduZWQgbG9uZyljb25zdCANCis/X0NhbGNLZXlIYXNoQENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRUtLQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQ2xlYXIoYm9vbCkNCis/X0NsZWFyQENMS1JMaW5lYXJIYXNoVGFibGVAQEFBRVhfTkBaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpfQ21wRXhjaChsb25nLGxvbmcpDQorP19DbXBFeGNoQENSZWFkZXJXcml0ZXJMb2NrMkBAQUFFX05KSkBaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpfQ21wRXhjaChsb25nLGxvbmcpDQorP19DbXBFeGNoQENSZWFkZXJXcml0ZXJMb2NrM0BAQUFFX05KSkBaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6Ol9DbXBFeGNoKGxvbmcsbG9uZykNCis/X0NtcEV4Y2hAQ1JlYWRlcldyaXRlckxvY2tAQEFBRV9OSkpAWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9Db250cmFjdCh2b2lkKQ0KKz9fQ29udHJhY3RAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFP0FXNExLX1JFVENPREVAQFhaDQorOyBwcml2YXRlOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpfQ3VycmVudFRocmVhZElkKHZvaWQpDQorP19DdXJyZW50VGhyZWFkSWRAQ1JlYWRlcldyaXRlckxvY2szQEBDR0pYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGxvbmcgX19zdGRjYWxsIENTbWFsbFNwaW5Mb2NrOjpfQ3VycmVudFRocmVhZElkKHZvaWQpDQorP19DdXJyZW50VGhyZWFkSWRAQ1NtYWxsU3BpbkxvY2tAQENHSlhaDQorOyBwcml2YXRlOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1NwaW5Mb2NrOjpfQ3VycmVudFRocmVhZElkKHZvaWQpDQorP19DdXJyZW50VGhyZWFkSWRAQ1NwaW5Mb2NrQEBDR0pYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9EZWxldGVJZihlbnVtIExLX1BSRURJQ0FURSAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKix2b2lkICopLHZvaWQgKixlbnVtIExLX1BSRURJQ0FURSAmKQ0KKz9fRGVsZXRlSWZAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFS1A2Rz9BVzRMS19QUkVESUNBVEVAQFBCWFBBWEBaMUFBVzQyQEBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0RlbGV0ZUtleSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP19EZWxldGVLZXlAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFP0FXNExLX1JFVENPREVAQEtLQFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRGVsZXRlTm9kZShjbGFzcyBDQnVja2V0ICosY2xhc3MgQ05vZGVDbHVtcCAqICYsY2xhc3MgQ05vZGVDbHVtcCAqICYsaW50ICYpDQorP19EZWxldGVOb2RlQENMS1JMaW5lYXJIYXNoVGFibGVAQEFBRV9OUEFWQ0J1Y2tldEBAQUFQQVZDTm9kZUNsdW1wQEAxQUFIQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRGVsZXRlUmVjb3JkKHZvaWQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9fRGVsZXRlUmVjb3JkQENMS1JMaW5lYXJIYXNoVGFibGVAQEFBRT9BVzRMS19SRVRDT0RFQEBQQlhLQFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRXF1YWxLZXlzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyljb25zdCANCis/X0VxdWFsS2V5c0BDTEtSTGluZWFySGFzaFRhYmxlQEBBQkVfTktLQFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRXJhc2UoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciAmLHVuc2lnbmVkIGxvbmcpDQorP19FcmFzZUBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUVfTkFBVkNMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3JAQEtAWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9FeHBhbmQodm9pZCkNCis/X0V4cGFuZEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUU/QVc0TEtfUkVUQ09ERUBAWFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgY29uc3QgIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6X0V4dHJhY3RLZXkodm9pZCBjb25zdCAqKWNvbnN0IA0KKz9fRXh0cmFjdEtleUBDTEtSSGFzaFRhYmxlQEBBQkU/QktQQlhAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBjb25zdCAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRXh0cmFjdEtleSh2b2lkIGNvbnN0ICopY29uc3QgDQorP19FeHRyYWN0S2V5QENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRT9CS1BCWEBaDQorOyBwcml2YXRlOiBjbGFzcyBDQnVja2V0ICogX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRmluZEJ1Y2tldCh1bnNpZ25lZCBsb25nLGJvb2wpY29uc3QgDQorP19GaW5kQnVja2V0QENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRVBBVkNCdWNrZXRAQEtfTkBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0ZpbmRLZXkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgY29uc3QgKiAqLGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGVfSXRlcmF0b3IgKiljb25zdCANCis/X0ZpbmRLZXlAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUJFP0FXNExLX1JFVENPREVAQEtLUEFQQlhQQVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBAWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9GaW5kUmVjb3JkKHZvaWQgY29uc3QgKix1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9fRmluZFJlY29yZEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQkU/QVc0TEtfUkVUQ09ERUBAUEJYS0BaDQorOyBwcml2YXRlOiBzdGF0aWMgYm9vbCBfX3N0ZGNhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0ZyZWVOb2RlQ2x1bXAoY2xhc3MgQ05vZGVDbHVtcCAqKQ0KKz9fRnJlZU5vZGVDbHVtcEBDTEtSTGluZWFySGFzaFRhYmxlQEBDR19OUEFWQ05vZGVDbHVtcEBAQFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRnJlZVNlZ21lbnQoY2xhc3MgQ1NlZ21lbnQgKiljb25zdCANCis/X0ZyZWVTZWdtZW50QENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRV9OUEFWQ1NlZ21lbnRAQEBaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0ZyZWVTZWdtZW50RGlyZWN0b3J5KHZvaWQpDQorP19GcmVlU2VnbWVudERpcmVjdG9yeUBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUVfTlhaDQorOyBwcml2YXRlOiBzdGF0aWMgYm9vbCBfX3N0ZGNhbGwgQ0xLUkhhc2hUYWJsZTo6X0ZyZWVTdWJUYWJsZShjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlICopDQorP19GcmVlU3ViVGFibGVAQ0xLUkhhc2hUYWJsZUBAQ0dfTlBBVkNMS1JMaW5lYXJIYXNoVGFibGVAQEBaDQorOyBwcml2YXRlOiBzdGF0aWMgYm9vbCBfX3N0ZGNhbGwgQ0xLUkhhc2hUYWJsZTo6X0ZyZWVTdWJUYWJsZUFycmF5KGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGUgKiAqKQ0KKz9fRnJlZVN1YlRhYmxlQXJyYXlAQ0xLUkhhc2hUYWJsZUBAQ0dfTlBBUEFWQ0xLUkxpbmVhckhhc2hUYWJsZUBAQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSDAodW5zaWduZWQgbG9uZyljb25zdCANCis/X0gwQENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRUtLQFoNCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSDAodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9fSDBAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQ0dLS0tAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9IMSh1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9fSDFAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUJFS0tAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9IMSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP19IMUBDTEtSTGluZWFySGFzaFRhYmxlQEBDR0tLS0BaDQorOyBwcm90ZWN0ZWQ6IGJvb2wgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlX0l0ZXJhdG9yOjpfSW5jcmVtZW50KGJvb2wpDQorP19JbmNyZW1lbnRAQ0xLUkhhc2hUYWJsZV9JdGVyYXRvckBASUFFX05fTkBaDQorOyBwcm90ZWN0ZWQ6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yOjpfSW5jcmVtZW50KGJvb2wpDQorP19JbmNyZW1lbnRAQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvckBASUFFX05fTkBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0luaXRpYWxpemUodW5zaWduZWQgbG9uZyBjb25zdCAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKiksdW5zaWduZWQgbG9uZyAoX19zdGRjYWxsKikodW5zaWduZWQgbG9uZyksYm9vbCAoX19zdGRjYWxsKikodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSx2b2lkIChfX3N0ZGNhbGwqKSh2b2lkIGNvbnN0ICosaW50KSxjaGFyIGNvbnN0ICosZG91YmxlLHVuc2lnbmVkIGxvbmcpDQorP19Jbml0aWFsaXplQENMS1JMaW5lYXJIYXNoVGFibGVAQEFBRT9BVzRMS19SRVRDT0RFQEBQNkc/QktQQlhAWlA2R0tLQFpQNkdfTktLQFpQNkdYMEhAWlBCRE5LQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSW5zZXJ0UmVjb3JkKHZvaWQgY29uc3QgKix1bnNpZ25lZCBsb25nLGJvb2wsY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZV9JdGVyYXRvciAqKQ0KKz9fSW5zZXJ0UmVjb3JkQENMS1JMaW5lYXJIYXNoVGFibGVAQEFBRT9BVzRMS19SRVRDT0RFQEBQQlhLX05QQVZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6Ol9JbnNlcnRUaGlzSW50b0dsb2JhbExpc3Qodm9pZCkNCis/X0luc2VydFRoaXNJbnRvR2xvYmFsTGlzdEBDTEtSSGFzaFRhYmxlQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSW5zZXJ0VGhpc0ludG9HbG9iYWxMaXN0KHZvaWQpDQorP19JbnNlcnRUaGlzSW50b0dsb2JhbExpc3RAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFWFhaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ1NwaW5Mb2NrOjpfSXNMb2NrZWQodm9pZCljb25zdCANCis/X0lzTG9ja2VkQENTcGluTG9ja0BAQUJFX05YWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0lzTm9kZUNvbXBhY3QoY2xhc3MgQ0J1Y2tldCAqIGNvbnN0KWNvbnN0IA0KKz9fSXNOb2RlQ29tcGFjdEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQkVIUUFWQ0J1Y2tldEBAQFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpfSXNWYWxpZEl0ZXJhdG9yKGNsYXNzIENMS1JIYXNoVGFibGVfSXRlcmF0b3IgY29uc3QgJiljb25zdCANCis/X0lzVmFsaWRJdGVyYXRvckBDTEtSSGFzaFRhYmxlQEBBQkVfTkFCVkNMS1JIYXNoVGFibGVfSXRlcmF0b3JAQEBaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0lzVmFsaWRJdGVyYXRvcihjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yIGNvbnN0ICYpY29uc3QgDQorP19Jc1ZhbGlkSXRlcmF0b3JAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUJFX05BQlZDTEtSTGluZWFySGFzaFRhYmxlX0l0ZXJhdG9yQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENTcGluTG9jazo6X0xvY2sodm9pZCkNCis/X0xvY2tAQ1NwaW5Mb2NrQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6Ol9Mb2NrU3Bpbihib29sKQ0KKz9fTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2syQEBBQUVYX05AWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6X0xvY2tTcGluKGVudW0gQ1JlYWRlcldyaXRlckxvY2szOjpTUElOX1RZUEUpDQorP19Mb2NrU3BpbkBDUmVhZGVyV3JpdGVyTG9jazNAQEFBRVhXNFNQSU5fVFlQRUAxQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6Ol9Mb2NrU3Bpbihib29sKQ0KKz9fTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2tAQEFBRVhfTkBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1NtYWxsU3BpbkxvY2s6Ol9Mb2NrU3Bpbih2b2lkKQ0KKz9fTG9ja1NwaW5AQ1NtYWxsU3BpbkxvY2tAQEFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENTcGluTG9jazo6X0xvY2tTcGluKHZvaWQpDQorP19Mb2NrU3BpbkBDU3BpbkxvY2tAQEFBRVhYWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9NZXJnZVJlY29yZFNldHMoY2xhc3MgQ0J1Y2tldCAqLGNsYXNzIENOb2RlQ2x1bXAgKixjbGFzcyBDTm9kZUNsdW1wICopDQorP19NZXJnZVJlY29yZFNldHNAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFP0FXNExLX1JFVENPREVAQFBBVkNCdWNrZXRAQFBBVkNOb2RlQ2x1bXBAQDFAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGVudW0gTEtfUFJFRElDQVRFICBfX3N0ZGNhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X1ByZWRUcnVlKHZvaWQgY29uc3QgKix2b2lkICopDQorP19QcmVkVHJ1ZUBDTEtSTGluZWFySGFzaFRhYmxlQEBDRz9BVzRMS19QUkVESUNBVEVAQFBCWFBBWEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpfUmVhZExvY2tTcGluKHZvaWQpDQorP19SZWFkTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2syQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9SZWFkTG9ja1NwaW4oZW51bSBDUmVhZGVyV3JpdGVyTG9jazM6OlNQSU5fVFlQRSkNCis/X1JlYWRMb2NrU3BpbkBDUmVhZGVyV3JpdGVyTG9jazNAQEFBRVhXNFNQSU5fVFlQRUAxQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6Ol9SZWFkTG9ja1NwaW4odm9pZCkNCis/X1JlYWRMb2NrU3BpbkBDUmVhZGVyV3JpdGVyTG9ja0BAQUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDRGF0YUNhY2hlPHN0cnVjdCBEQVRFVElNRV9GT1JNQVRfRU5UUlk+OjpfUmVhZE1lbW9yeUJhcnJpZXIodm9pZCkNCis/X1JlYWRNZW1vcnlCYXJyaWVyQD8kQ0RhdGFDYWNoZUBVREFURVRJTUVfRk9STUFUX0VOVFJZQEBAQEtHWFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDRGF0YUNhY2hlPGNsYXNzIENEYXRlVGltZT46Ol9SZWFkTWVtb3J5QmFycmllcih2b2lkKQ0KKz9fUmVhZE1lbW9yeUJhcnJpZXJAPyRDRGF0YUNhY2hlQFZDRGF0ZVRpbWVAQEBAS0dYWFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfUmVhZE9yV3JpdGVMb2NrKHZvaWQpY29uc3QgDQorP19SZWFkT3JXcml0ZUxvY2tAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUJFX05YWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9SZWFkT3JXcml0ZVVubG9jayhib29sKWNvbnN0IA0KKz9fUmVhZE9yV3JpdGVVbmxvY2tAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUJFWF9OQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENEYXRhQ2FjaGU8c3RydWN0IERBVEVUSU1FX0ZPUk1BVF9FTlRSWT46Ol9SZWFkU2VxdWVuY2Uodm9pZCljb25zdCANCis/X1JlYWRTZXF1ZW5jZUA/JENEYXRhQ2FjaGVAVURBVEVUSU1FX0ZPUk1BVF9FTlRSWUBAQEBJQkVKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIENEYXRhQ2FjaGU8Y2xhc3MgQ0RhdGVUaW1lPjo6X1JlYWRTZXF1ZW5jZSh2b2lkKWNvbnN0IA0KKz9fUmVhZFNlcXVlbmNlQD8kQ0RhdGFDYWNoZUBWQ0RhdGVUaW1lQEBAQElCRUpYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6Ol9SZW1vdmVUaGlzRnJvbUdsb2JhbExpc3Qodm9pZCkNCis/X1JlbW92ZVRoaXNGcm9tR2xvYmFsTGlzdEBDTEtSSGFzaFRhYmxlQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfUmVtb3ZlVGhpc0Zyb21HbG9iYWxMaXN0KHZvaWQpDQorP19SZW1vdmVUaGlzRnJvbUdsb2JhbExpc3RAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFWFhaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X1NlZ0luZGV4KHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP19TZWdJbmRleEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQkVLS0BaDQorOyBwcml2YXRlOiBjbGFzcyBDU2VnbWVudCAqICYgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfU2VnbWVudCh1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9fU2VnbWVudEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQkVBQVBBVkNTZWdtZW50QEBLQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfU2V0U2VnVmFycyhlbnVtIExLX1RBQkxFU0laRSx1bnNpZ25lZCBsb25nKQ0KKz9fU2V0U2VnVmFyc0BDTEtSTGluZWFySGFzaFRhYmxlQEBBQUU/QVc0TEtfUkVUQ09ERUBAVzRMS19UQUJMRVNJWkVAQEtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ0RhdGFDYWNoZTxzdHJ1Y3QgREFURVRJTUVfRk9STUFUX0VOVFJZPjo6X1NldFNlcXVlbmNlKGxvbmcpDQorP19TZXRTZXF1ZW5jZUA/JENEYXRhQ2FjaGVAVURBVEVUSU1FX0ZPUk1BVF9FTlRSWUBAQEBJQUVKSkBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDRGF0YUNhY2hlPGNsYXNzIENEYXRlVGltZT46Ol9TZXRTZXF1ZW5jZShsb25nKQ0KKz9fU2V0U2VxdWVuY2VAPyRDRGF0YUNhY2hlQFZDRGF0ZVRpbWVAQEBASUFFSkpAWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9TcGxpdFJlY29yZFNldChjbGFzcyBDTm9kZUNsdW1wICosY2xhc3MgQ05vZGVDbHVtcCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIENOb2RlQ2x1bXAgKikNCis/X1NwbGl0UmVjb3JkU2V0QENMS1JMaW5lYXJIYXNoVGFibGVAQEFBRT9BVzRMS19SRVRDT0RFQEBQQVZDTm9kZUNsdW1wQEAwS0tLMEBaDQorOyBwcml2YXRlOiBjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlICogX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpfU3ViVGFibGUodW5zaWduZWQgbG9uZyljb25zdCANCis/X1N1YlRhYmxlQENMS1JIYXNoVGFibGVAQEFCRVBBVkNMS1JMaW5lYXJIYXNoVGFibGVAQEtAWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6X1N1YlRhYmxlSW5kZXgoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSAqKWNvbnN0IA0KKz9fU3ViVGFibGVJbmRleEBDTEtSSGFzaFRhYmxlQEBBQkVIUEFWQ0xLUkxpbmVhckhhc2hUYWJsZUBAQFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6X1RyeUxvY2sodm9pZCkNCis/X1RyeUxvY2tAQ1NtYWxsU3BpbkxvY2tAQEFBRV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDU3BpbkxvY2s6Ol9UcnlMb2NrKHZvaWQpDQorP19UcnlMb2NrQENTcGluTG9ja0BAQUFFX05YWg0KKzsgcHJpdmF0ZTogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6X1RyeVJlYWRMb2NrKHZvaWQpDQorP19UcnlSZWFkTG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQEFBRV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9UcnlSZWFkTG9jayh2b2lkKQ0KKz9fVHJ5UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBBQUVfTlhaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6Ol9UcnlSZWFkTG9jayh2b2lkKQ0KKz9fVHJ5UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2tAQEFBRV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9UcnlSZWFkTG9ja1JlY3Vyc2l2ZSh2b2lkKQ0KKz9fVHJ5UmVhZExvY2tSZWN1cnNpdmVAQ1JlYWRlcldyaXRlckxvY2szQEBBQUVfTlhaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpfVHJ5V3JpdGVMb2NrMih2b2lkKQ0KKz9fVHJ5V3JpdGVMb2NrMkBDUmVhZGVyV3JpdGVyTG9jazNAQEFBRV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6Ol9UcnlXcml0ZUxvY2sobG9uZykNCis/X1RyeVdyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQEFBRV9OSkBaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpfVHJ5V3JpdGVMb2NrKGxvbmcpDQorP19UcnlXcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBBQUVfTkpAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpfVHJ5V3JpdGVMb2NrKHZvaWQpDQorP19UcnlXcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2tAQEFBRV9OWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDU3BpbkxvY2s6Ol9VbmxvY2sodm9pZCkNCis/X1VubG9ja0BDU3BpbkxvY2tAQEFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6X1dyaXRlTG9ja1NwaW4odm9pZCkNCis/X1dyaXRlTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2syQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9Xcml0ZUxvY2tTcGluKHZvaWQpDQorP19Xcml0ZUxvY2tTcGluQENSZWFkZXJXcml0ZXJMb2NrM0BAQUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6Ol9Xcml0ZUxvY2tTcGluKHZvaWQpDQorP19Xcml0ZUxvY2tTcGluQENSZWFkZXJXcml0ZXJMb2NrQEBBQUVYWFoNCis7IGxvbmcgY29uc3QgKiBjb25zdCAgYHB1YmxpYzogc3RhdGljIGxvbmcgY29uc3QgKiBfX3N0ZGNhbGwgQ0xLUkhhc2hUYWJsZVN0YXRzOjpCdWNrZXRTaXplcyh2b2lkKSc6OmAyJzo6c19hQnVja2V0U2l6ZXMNCis/c19hQnVja2V0U2l6ZXNAPzE/P0J1Y2tldFNpemVzQENMS1JIYXNoVGFibGVTdGF0c0BAU0dQQkpYWkA0UUJKQg0KKzsgcHJpdmF0ZTogc3RhdGljIHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OnNtX2NzSXRlbXMNCis/c21fY3NJdGVtc0BBTExPQ19DQUNIRV9IQU5ETEVSQEAwVV9SVExfQ1JJVElDQUxfU0VDVElPTkBAQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBkb3VibGUgIENDcml0U2VjOjpzbV9kYmxEZmx0U3BpbkFkakZjdHINCis/c21fZGJsRGZsdFNwaW5BZGpGY3RyQENDcml0U2VjQEAxTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDRmFrZUxvY2s6OnNtX2RibERmbHRTcGluQWRqRmN0cg0KKz9zbV9kYmxEZmx0U3BpbkFkakZjdHJAQ0Zha2VMb2NrQEAxTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDUmVhZGVyV3JpdGVyTG9jazI6OnNtX2RibERmbHRTcGluQWRqRmN0cg0KKz9zbV9kYmxEZmx0U3BpbkFkakZjdHJAQ1JlYWRlcldyaXRlckxvY2syQEAxTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDUmVhZGVyV3JpdGVyTG9jazM6OnNtX2RibERmbHRTcGluQWRqRmN0cg0KKz9zbV9kYmxEZmx0U3BpbkFkakZjdHJAQ1JlYWRlcldyaXRlckxvY2szQEAxTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDUmVhZGVyV3JpdGVyTG9jazo6c21fZGJsRGZsdFNwaW5BZGpGY3RyDQorP3NtX2RibERmbHRTcGluQWRqRmN0ckBDUmVhZGVyV3JpdGVyTG9ja0BAMU5BIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGRvdWJsZSAgQ1J0bFJlc291cmNlOjpzbV9kYmxEZmx0U3BpbkFkakZjdHINCis/c21fZGJsRGZsdFNwaW5BZGpGY3RyQENSdGxSZXNvdXJjZUBAMU5BIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGRvdWJsZSAgQ1NoYXJlTG9jazo6c21fZGJsRGZsdFNwaW5BZGpGY3RyDQorP3NtX2RibERmbHRTcGluQWRqRmN0ckBDU2hhcmVMb2NrQEAxTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDU21hbGxTcGluTG9jazo6c21fZGJsRGZsdFNwaW5BZGpGY3RyDQorP3NtX2RibERmbHRTcGluQWRqRmN0ckBDU21hbGxTcGluTG9ja0BAMU5BIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGRvdWJsZSAgQ1NwaW5Mb2NrOjpzbV9kYmxEZmx0U3BpbkFkakZjdHINCis/c21fZGJsRGZsdFNwaW5BZGpGY3RyQENTcGluTG9ja0BAMU5BIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OnNtX2ZJbml0Q3NJdGVtcw0KKz9zbV9mSW5pdENzSXRlbXNAQUxMT0NfQ0FDSEVfSEFORExFUkBAMEhBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkICogIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OnNtX2hUaW1lcg0KKz9zbV9oVGltZXJAQUxMT0NfQ0FDSEVfSEFORExFUkBAMFBBWEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIHN0cnVjdCBfTElTVF9FTlRSWSAgQUxMT0NfQ0FDSEVfSEFORExFUjo6c21fbEl0ZW1zSGVhZA0KKz9zbV9sSXRlbXNIZWFkQEFMTE9DX0NBQ0hFX0hBTkRMRVJAQDBVX0xJU1RfRU5UUllAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENMb2NrZWREb3VibGVMaXN0ICBDTEtSSGFzaFRhYmxlOjpzbV9sbEdsb2JhbExpc3QNCis/c21fbGxHbG9iYWxMaXN0QENMS1JIYXNoVGFibGVAQDBWQ0xvY2tlZERvdWJsZUxpc3RAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENMb2NrZWREb3VibGVMaXN0ICBDTEtSTGluZWFySGFzaFRhYmxlOjpzbV9sbEdsb2JhbExpc3QNCis/c21fbGxHbG9iYWxMaXN0QENMS1JMaW5lYXJIYXNoVGFibGVAQDBWQ0xvY2tlZERvdWJsZUxpc3RAQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGxvbmcgIEFMTE9DX0NBQ0hFX0hBTkRMRVI6OnNtX25GaWxsUGF0dGVybg0KKz9zbV9uRmlsbFBhdHRlcm5AQUxMT0NfQ0FDSEVfSEFORExFUkBAMEpBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIEFMTE9DX0NBQ0hFX0hBTkRMRVIgKiAgQ0xLUkxpbmVhckhhc2hUYWJsZTo6c21fcGFsbG9jDQorP3NtX3BhbGxvY0BDTEtSTGluZWFySGFzaFRhYmxlQEAxUEFWQUxMT0NfQ0FDSEVfSEFORExFUkBAQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgQ0NyaXRTZWM6OnNtX3dEZWZhdWx0U3BpbkNvdW50DQorP3NtX3dEZWZhdWx0U3BpbkNvdW50QENDcml0U2VjQEAxR0EgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgIENGYWtlTG9jazo6c21fd0RlZmF1bHRTcGluQ291bnQNCis/c21fd0RlZmF1bHRTcGluQ291bnRAQ0Zha2VMb2NrQEAxR0EgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgIENSZWFkZXJXcml0ZXJMb2NrMjo6c21fd0RlZmF1bHRTcGluQ291bnQNCis/c21fd0RlZmF1bHRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2syQEAxR0EgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgIENSZWFkZXJXcml0ZXJMb2NrMzo6c21fd0RlZmF1bHRTcGluQ291bnQNCis/c21fd0RlZmF1bHRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2szQEAxR0EgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgIENSZWFkZXJXcml0ZXJMb2NrOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9ja0BAMUdBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0ICBDUnRsUmVzb3VyY2U6OnNtX3dEZWZhdWx0U3BpbkNvdW50DQorP3NtX3dEZWZhdWx0U3BpbkNvdW50QENSdGxSZXNvdXJjZUBAMUdBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0ICBDU2hhcmVMb2NrOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDU2hhcmVMb2NrQEAxR0EgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgIENTbWFsbFNwaW5Mb2NrOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDU21hbGxTcGluTG9ja0BAMUdBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0ICBDU3BpbkxvY2s6OnNtX3dEZWZhdWx0U3BpbkNvdW50DQorP3NtX3dEZWZhdWx0U3BpbkNvdW50QENTcGluTG9ja0BAMUdBIERBVEENCit1dWRlY29kZQ0KK3V1ZW5jb2RlDQorQ3JlYXRlUmVmVHJhY2VMb2cNCitDcmVhdGVUcmFjZUxvZw0KK0Rlc3Ryb3lSZWZUcmFjZUxvZw0KK0Rlc3Ryb3lUcmFjZUxvZw0KK19HZXRBbGxvY0NvdW50ZXJzQDANCitHZXRDdXJyZW50VGltZUluU2Vjb25kcw0KK19JSVNHZXRDdXJyZW50VGltZUA4DQorSUlTR2V0UGxhdGZvcm1UeXBlDQorSUlTSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbg0KK0lJU1NldENyaXRpY2FsU2VjdGlvblNwaW5Db3VudA0KK0luZXRBY3F1aXJlUmVzb3VyY2VFeGNsdXNpdmUNCitJbmV0QWNxdWlyZVJlc291cmNlU2hhcmVkDQorSW5ldENvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZA0KK0luZXRDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUNCitJbmV0RGVsZXRlUmVzb3VyY2UNCitJbmV0SW5pdGlhbGl6ZVJlc291cmNlDQorSW5ldFJlbGVhc2VSZXNvdXJjZQ0KK0luaXRpYWxpemVJSVNVdGlsDQorSXJ0bFRyYWNlDQorX0lzVmFsaWRBZGRyZXNzQDEyDQorX0lzVmFsaWRTdHJpbmdAOA0KK1B1Q2xvc2VEYmdNZW1vcnlMb2cNCitQdUNsb3NlRGJnUHJpbnRGaWxlDQorUHVDcmVhdGVEZWJ1Z1ByaW50c09iamVjdA0KK1B1RGJnQXNzZXJ0RmFpbGVkDQorUHVEYmdDYXB0dXJlQ29udGV4dA0KK1B1RGJnQ3JlYXRlRXZlbnQNCitQdURiZ0NyZWF0ZU11dGV4DQorUHVEYmdDcmVhdGVTZW1hcGhvcmUNCitQdURiZ0R1bXANCitQdURiZ1ByaW50DQorUHVEYmdQcmludEN1cnJlbnRUaW1lDQorUHVEYmdQcmludEVycm9yDQorUHVEZWxldGVEZWJ1Z1ByaW50c09iamVjdA0KK1B1R2V0RGJnT3V0cHV0RmxhZ3MNCitQdUxvYWREZWJ1Z0ZsYWdzRnJvbVJlZw0KK1B1TG9hZERlYnVnRmxhZ3NGcm9tUmVnU3RyDQorUHVPcGVuRGJnTWVtb3J5TG9nDQorUHVPcGVuRGJnUHJpbnRGaWxlDQorUHVSZU9wZW5EYmdQcmludEZpbGUNCitQdVNhdmVEZWJ1Z0ZsYWdzSW5SZWcNCitQdVNldERiZ091dHB1dEZsYWdzDQorUmVzZXRUcmFjZUxvZw0KK1Rlcm1pbmF0ZUlJU1V0aWwNCitXcml0ZVJlZlRyYWNlTG9nDQorV3JpdGVSZWZUcmFjZUxvZ0V4DQorV3JpdGVUcmFjZUxvZw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpaXN3M2FkbS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aWlzdzNhZG0uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYxMTMzNmIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aWlzdzNhZG0uZGVmCkBAIC0wLDAgKzEsMTUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaWlzdzNhZG0uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlpc3czYWRtLmRsbA0KK0VYUE9SVFMNCitTZXJ2aWNlTWFpbg0KKzsgcHVibGljOiBjbGFzcyBDU2VjdXJpdHlEaXNwZW5zZXIgJiBfX3RoaXNjYWxsIENTZWN1cml0eURpc3BlbnNlcjo6b3BlcmF0b3I9KGNsYXNzIENTZWN1cml0eURpc3BlbnNlciBjb25zdCAmKQ0KKz8/NENTZWN1cml0eURpc3BlbnNlckBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIElQTV9NRVNTQUdFX1BJUEUgJiBfX3RoaXNjYWxsIElQTV9NRVNTQUdFX1BJUEU6Om9wZXJhdG9yPShjbGFzcyBJUE1fTUVTU0FHRV9QSVBFIGNvbnN0ICYpDQorPz80SVBNX01FU1NBR0VfUElQRUBAUUFFQUFWMEBBQlYwQEBaDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2ltYWdlaGxwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpbWFnZWhscC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDYyZDIyZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpbWFnZWhscC5kZWYKQEAgLTAsMCArMSwxMTcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaW1hZ2VobHAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGltYWdlaGxwLmRsbA0KK0VYUE9SVFMNCitSZW1vdmVSZWxvY2F0aW9ucw0KK0JpbmRJbWFnZQ0KK0JpbmRJbWFnZUV4DQorQ2hlY2tTdW1NYXBwZWRGaWxlDQorRW51bURpclRyZWUNCitFbnVtZXJhdGVMb2FkZWRNb2R1bGVzNjQNCitFbnVtZXJhdGVMb2FkZWRNb2R1bGVzDQorRmluZERlYnVnSW5mb0ZpbGUNCitGaW5kRGVidWdJbmZvRmlsZUV4DQorRmluZEV4ZWN1dGFibGVJbWFnZQ0KK0ZpbmRFeGVjdXRhYmxlSW1hZ2VFeA0KK0ZpbmRGaWxlSW5QYXRoDQorRmluZEZpbGVJblNlYXJjaFBhdGgNCitHZXRJbWFnZUNvbmZpZ0luZm9ybWF0aW9uDQorR2V0SW1hZ2VVbnVzZWRIZWFkZXJCeXRlcw0KK0dldFRpbWVzdGFtcEZvckxvYWRlZExpYnJhcnkNCitJbWFnZUFkZENlcnRpZmljYXRlDQorSW1hZ2VEaXJlY3RvcnlFbnRyeVRvRGF0YQ0KK0ltYWdlRGlyZWN0b3J5RW50cnlUb0RhdGFFeA0KK0ltYWdlRW51bWVyYXRlQ2VydGlmaWNhdGVzDQorSW1hZ2VHZXRDZXJ0aWZpY2F0ZURhdGENCitJbWFnZUdldENlcnRpZmljYXRlSGVhZGVyDQorSW1hZ2VHZXREaWdlc3RTdHJlYW0NCitJbWFnZUxvYWQNCitJbWFnZU50SGVhZGVyDQorSW1hZ2VSZW1vdmVDZXJ0aWZpY2F0ZQ0KK0ltYWdlUnZhVG9TZWN0aW9uDQorSW1hZ2VSdmFUb1ZhDQorSW1hZ2VVbmxvYWQNCitJbWFnZWhscEFwaVZlcnNpb24NCitJbWFnZWhscEFwaVZlcnNpb25FeA0KK01ha2VTdXJlRGlyZWN0b3J5UGF0aEV4aXN0cw0KK01hcEFuZExvYWQNCitNYXBEZWJ1Z0luZm9ybWF0aW9uDQorTWFwRmlsZUFuZENoZWNrU3VtQQ0KK01hcEZpbGVBbmRDaGVja1N1bVcNCitSZUJhc2VJbWFnZTY0DQorUmVCYXNlSW1hZ2UNCitSZW1vdmVQcml2YXRlQ3ZTeW1ib2xpYw0KK1JlbW92ZVByaXZhdGVDdlN5bWJvbGljRXgNCitTZWFyY2hUcmVlRm9yRmlsZQ0KK1NldEltYWdlQ29uZmlnSW5mb3JtYXRpb24NCitTcGxpdFN5bWJvbHMNCitTdGFja1dhbGs2NA0KK1N0YWNrV2Fsaw0KK1N5bUNsZWFudXANCitTeW1FbnVtU3ltDQorU3ltRW51bVN5bWJvbHMNCitTeW1FbnVtU3ltYm9sc0ZvckFkZHINCitTeW1FbnVtVHlwZXMNCitTeW1FbnVtZXJhdGVNb2R1bGVzNjQNCitTeW1FbnVtZXJhdGVNb2R1bGVzDQorU3ltRW51bWVyYXRlU3ltYm9sczY0DQorU3ltRW51bWVyYXRlU3ltYm9scw0KK1N5bUVudW1lcmF0ZVN5bWJvbHNXNjQNCitTeW1FbnVtZXJhdGVTeW1ib2xzVw0KK1N5bUZpbmRGaWxlSW5QYXRoDQorU3ltRnJvbUFkZHINCitTeW1Gcm9tTmFtZQ0KK1N5bUZ1bmN0aW9uVGFibGVBY2Nlc3M2NA0KK1N5bUZ1bmN0aW9uVGFibGVBY2Nlc3MNCitTeW1HZXRMaW5lRnJvbUFkZHI2NA0KK1N5bUdldExpbmVGcm9tQWRkcg0KK1N5bUdldExpbmVGcm9tTmFtZTY0DQorU3ltR2V0TGluZUZyb21OYW1lDQorU3ltR2V0TGluZU5leHQ2NA0KK1N5bUdldExpbmVOZXh0DQorU3ltR2V0TGluZVByZXY2NA0KK1N5bUdldExpbmVQcmV2DQorU3ltR2V0TW9kdWxlQmFzZTY0DQorU3ltR2V0TW9kdWxlQmFzZQ0KK1N5bUdldE1vZHVsZUluZm82NA0KK1N5bUdldE1vZHVsZUluZm8NCitTeW1HZXRNb2R1bGVJbmZvVzY0DQorU3ltR2V0TW9kdWxlSW5mb1cNCitTeW1HZXRPcHRpb25zDQorU3ltR2V0U2VhcmNoUGF0aA0KK1N5bUdldFN5bUZyb21BZGRyNjQNCitTeW1HZXRTeW1Gcm9tQWRkcg0KK1N5bUdldFN5bUZyb21OYW1lNjQNCitTeW1HZXRTeW1Gcm9tTmFtZQ0KK1N5bUdldFN5bU5leHQ2NA0KK1N5bUdldFN5bU5leHQNCitTeW1HZXRTeW1QcmV2NjQNCitTeW1HZXRTeW1QcmV2DQorU3ltR2V0VHlwZUZyb21OYW1lDQorU3ltR2V0VHlwZUluZm8NCitTeW1Jbml0aWFsaXplDQorU3ltTG9hZE1vZHVsZTY0DQorU3ltTG9hZE1vZHVsZQ0KK1N5bU1hdGNoRmlsZU5hbWUNCitTeW1NYXRjaFN0cmluZw0KK1N5bVJlZ2lzdGVyQ2FsbGJhY2s2NA0KK1N5bVJlZ2lzdGVyQ2FsbGJhY2sNCitTeW1SZWdpc3RlckZ1bmN0aW9uRW50cnlDYWxsYmFjazY0DQorU3ltUmVnaXN0ZXJGdW5jdGlvbkVudHJ5Q2FsbGJhY2sNCitTeW1TZXRDb250ZXh0DQorU3ltU2V0T3B0aW9ucw0KK1N5bVNldFNlYXJjaFBhdGgNCitTeW1VbkROYW1lNjQNCitTeW1VbkROYW1lDQorU3ltVW5sb2FkTW9kdWxlNjQNCitTeW1VbmxvYWRNb2R1bGUNCitUb3VjaEZpbGVUaW1lcw0KK1VuRGVjb3JhdGVTeW1ib2xOYW1lDQorVW5NYXBBbmRMb2FkDQorVW5tYXBEZWJ1Z0luZm9ybWF0aW9uDQorVXBkYXRlRGVidWdJbmZvRmlsZQ0KK1VwZGF0ZURlYnVnSW5mb0ZpbGVFeA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpbWVrcmNpYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aW1la3JjaWMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE4NGM0YjkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aW1la3JjaWMuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSU1FS1JDSUMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElNRUtSQ0lDLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpbWVwYWRzbS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aW1lcGFkc20uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE2YjgyMzQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aW1lcGFkc20uZGVmCkBAIC0wLDAgKzEsMTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbWFpbi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbWFpbi5kbGwNCitFWFBPUlRTDQorQ3JlYXRlT2JqZWN0Mg0KK0NyZWF0ZU9iamVjdA0KK1JlZ0NsYXNzDQorVW5yZWdDbGFzcw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2ltZXNoYXJlLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpbWVzaGFyZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzVlMDgxYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpbWVzaGFyZS5kZWYKQEAgLTAsMCArMSwzOCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpbWVzaGFyZS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaW1lc2hhcmUuZGxsDQorRVhQT1JUUw0KK0RsbE1haW4NCitGSW5pdElNRVNoYXJlDQorRW5kSU1FU2hhcmUNCitGUmVmcmVzaFN0eWxlDQorRlN1cHBvcnRTdHkNCitQSU1FU3R5bGVGcm9tQXR0cg0KK1BDb2xvclN0eWxlVGV4dEZyb21JTUVTdHlsZQ0KK1BDb2xvclN0eWxlQmFja0Zyb21JTUVTdHlsZQ0KK0ZCb2xkSU1FU3R5bGUNCitGSXRhbGljSU1FU3R5bGUNCitGVWxJTUVTdHlsZQ0KK0dyZlN0eUlNRVN0eWxlDQorSWRVbElNRVN0eWxlDQorRkdldElNRVN0eWxlQXR0cg0KK0ZTZXRJTUVTdHlsZUF0dHINCitGV2luSU1FQ29sb3JTdHlsZQ0KK0ZGdW5kYW1lbnRhbElNRUNvbG9yU3R5bGUNCitGUkdCSU1FQ29sb3JTdHlsZQ0KK0ZTcGVjaWFsSU1FQ29sb3JTdHlsZQ0KK0lkU3BlY2lhbEZyb21JTUVDb2xvclN0eWxlDQorSWRXaW5Gcm9tSU1FQ29sb3JTdHlsZQ0KK0lkRnVuZGFtZW50YWxGcm9tSU1FQ29sb3JTdHlsZQ0KK1JHQkZyb21JTUVDb2xvclN0eWxlDQorRlNldElNRUNvbG9yU3R5bGUNCitGU2V0SU1FU3R5bGUNCitGU3BlY2lhbFRleHRJTUVDb2xvclN0eWxlDQorRlNwZWNpYWxXaW5kb3dJTUVDb2xvclN0eWxlDQorQ3VzdG9taXplSU1FU2hhcmUNCitGU2F2ZUlNRVNoYXJlU2V0dGluZw0KK1BJTUVTaGFyZUNyZWF0ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpbWd1dGlsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpbWd1dGlsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yYjkwZDEwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2ltZ3V0aWwuZGVmCkBAIC0wLDAgKzEsMjAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSW1nVXRpbC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSW1nVXRpbC5kbGwNCitFWFBPUlRTDQorQ29tcHV0ZUludkNNQVANCitDcmVhdGVERHJhd1N1cmZhY2VPbkRJQg0KK0NyZWF0ZU1JTUVNYXANCitEZWNvZGVJbWFnZQ0KK0RpdGhlclRvOA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorR2V0TWF4TUlNRUlEQnl0ZXMNCitJZGVudGlmeU1JTUVUeXBlDQorU25pZmZTdHJlYW0NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aW1qcDgxay5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aW1qcDgxay5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGU3OGFjZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpbWpwODFrLmRlZgpAQCAtMCwwICsxLDM3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGltanA4MWsuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGltanA4MWsuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vd0RvbmUNCitDaGVja0ZpbGVUeXBlDQorQ2xlYW5EaWNUaHJlYWRGdW5jDQorQ3JlYXRlSUZFQ29tbW9uSW5zdGFuY2UNCitDcmVhdGVJRkVEaWN0aW9uYXJ5Mkluc3RhbmNlDQorQ3JlYXRlSUZFRGljdGlvbmFyeUluc3RhbmNlDQorQ3JlYXRlSUZFTGFuZ3VhZ2VJbnN0YW5jZQ0KK0NyZWF0ZUlJbWVJUG9pbnRJbnN0YW5jZQ0KK0NyZWF0ZUlJbWVLYmRJbnN0YW5jZQ0KK0NyZWF0ZUlJbWVLbmxEaWN0SW5zdGFuY2UNCitDcmVhdGVJUmVnTWFuSW5zdGFuY2UNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0tubENsb3NlDQorS25sSW5pdA0KK0tubE9wZW4NCitLbmxUZXJtDQorTG9hZFRpcENvbmZpZw0KK091ckNvQ3JlYXRlSW5zdGFuY2UNCitPdXJDb1Rhc2tNZW1BbGxvYw0KK091ckNvVGFza01lbUZyZWUNCitPdXJDb1Rhc2tNZW1SZWFsbG9jDQorT3VyU3RyaW5nRnJvbUdVSUQyDQorUmdTZXRHYWt1c3l1dQ0KK1NodXRkb3duS25sRGxsDQorVW5Mb2FkT3VyT2xlMzINCityZWxvYWRfY29uZmlnDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2ltanBjaWMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2ltanBjaWMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk2NDVmMDcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aW1qcGNpYy5kZWYKQEAgLTAsMCArMSwxNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBzaW14LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBzaW14LmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ0hlbHA6OkFib3V0RGxnUHJvYyhzdHJ1Y3QgSFdORF9fICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxsb25nKQ0KKz9BYm91dERsZ1Byb2NAQ0hlbHBAQFNHSFBBVUhXTkRfX0BASUlKQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgQ1BhZDo6SFdEbGdQcm9jKHN0cnVjdCBIV05EX18gKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGxvbmcpDQorP0hXRGxnUHJvY0BDUGFkQEBTR0hQQVVIV05EX19AQElJSkBaDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aW1qcGN1cy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aW1qcGN1cy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjIzMTA0NAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpbWpwY3VzLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGltZWpwY3VzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpbWVqcGN1cy5kbGwNCitFWFBPUlRTDQorT3BlbkRldGFpbERpYWxvZw0KK0RsbE1haW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aW1qcGRjdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aW1qcGRjdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDY3M2I1ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpbWpwZGN0LmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGltZWRpYy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaW1lZGljLmRsbA0KK0VYUE9SVFMNCitPcGVuRGljVG9vbA0KK09wZW5SZWdpc3RlcldvcmQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aW1qcHV0eWMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2ltanB1dHljLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMjkyNGYzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2ltanB1dHljLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGltanB1dHljLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpbWpwdXR5Yy5kbGwNCitFWFBPUlRTDQorX0F1dG9Db3JyTGJTdWJXbmRQcm9jQDE2DQorRGxsTWFpbg0KK09wZW5JbWVUb29sDQorT3BlblV0eQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpbWxhbmcuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2ltbGFuZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmY2MTE0MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpbWxhbmcuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbWFpbi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbWFpbi5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aW1tMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2ltbTMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNWE1ZThjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2ltbTMyLmRlZgpAQCAtMCwwICsxLDEzOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJTU0zMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSU1NMzIuZGxsDQorRVhQT1JUUw0KK0N0ZkFJbW1BY3RpdmF0ZQ0KK0N0ZkFJbW1EZWFjdGl2YXRlDQorQ3RmQUltbUlzSU1FDQorQ3RmSW1tQ29VbmluaXRpYWxpemUNCitDdGZJbW1EaXNwYXRjaERlZkltZU1lc3NhZ2UNCitDdGZJbW1FbnRlckNvSW5pdENvdW50U2tpcE1vZGUNCitDdGZJbW1HZW5lcmF0ZU1lc3NhZ2UNCitDdGZJbW1HZXRHdWlkQXRvbQ0KK0N0ZkltbUhpZGVUb29sYmFyV25kDQorQ3RmSW1tSXNDaWNlcm9FbmFibGVkDQorQ3RmSW1tSXNDaWNlcm9TdGFydGVkSW5UaHJlYWQNCitDdGZJbW1Jc0d1aWRNYXBFbmFibGUNCitDdGZJbW1Jc1RleHRGcmFtZVNlcnZpY2VEaXNhYmxlZA0KK0N0ZkltbUxhc3RFbmFibGVkV25kRGVzdHJveQ0KK0N0ZkltbUxlYXZlQ29Jbml0Q291bnRTa2lwTW9kZQ0KK0N0ZkltbVJlc3RvcmVUb29sYmFyV25kDQorQ3RmSW1tU2V0QXBwQ29tcGF0RmxhZ3MNCitDdGZJbW1TZXRDaWNlcm9TdGFydEluVGhyZWFkDQorQ3RmSW1tVElNQWN0aXZhdGUNCitHZXRLZXlib2FyZExheW91dENQDQorSW1tQWN0aXZhdGVMYXlvdXQNCitJbW1Bc3NvY2lhdGVDb250ZXh0DQorSW1tQXNzb2NpYXRlQ29udGV4dEV4DQorSW1tQ2FsbEltZUNvbnNvbGVJTUUNCitJbW1Db25maWd1cmVJTUVBDQorSW1tQ29uZmlndXJlSU1FVw0KK0ltbUNyZWF0ZUNvbnRleHQNCitJbW1DcmVhdGVJTUNDDQorSW1tQ3JlYXRlU29mdEtleWJvYXJkDQorSW1tRGVzdHJveUNvbnRleHQNCitJbW1EZXN0cm95SU1DQw0KK0ltbURlc3Ryb3lTb2Z0S2V5Ym9hcmQNCitJbW1EaXNhYmxlSU1FDQorSW1tRGlzYWJsZUltZQ0KK0ltbURpc2FibGVUZXh0RnJhbWVTZXJ2aWNlDQorSW1tRW51bUlucHV0Q29udGV4dA0KK0ltbUVudW1SZWdpc3RlcldvcmRBDQorSW1tRW51bVJlZ2lzdGVyV29yZFcNCitJbW1Fc2NhcGVBDQorSW1tRXNjYXBlVw0KK0ltbUZyZWVMYXlvdXQNCitJbW1HZW5lcmF0ZU1lc3NhZ2UNCitJbW1HZXRBcHBDb21wYXRGbGFncw0KK0ltbUdldENhbmRpZGF0ZUxpc3RBDQorSW1tR2V0Q2FuZGlkYXRlTGlzdENvdW50QQ0KK0ltbUdldENhbmRpZGF0ZUxpc3RDb3VudFcNCitJbW1HZXRDYW5kaWRhdGVMaXN0Vw0KK0ltbUdldENhbmRpZGF0ZVdpbmRvdw0KK0ltbUdldENvbXBvc2l0aW9uRm9udEENCitJbW1HZXRDb21wb3NpdGlvbkZvbnRXDQorSW1tR2V0Q29tcG9zaXRpb25TdHJpbmdBDQorSW1tR2V0Q29tcG9zaXRpb25TdHJpbmdXDQorSW1tR2V0Q29tcG9zaXRpb25XaW5kb3cNCitJbW1HZXRDb250ZXh0DQorSW1tR2V0Q29udmVyc2lvbkxpc3RBDQorSW1tR2V0Q29udmVyc2lvbkxpc3RXDQorSW1tR2V0Q29udmVyc2lvblN0YXR1cw0KK0ltbUdldERlZmF1bHRJTUVXbmQNCitJbW1HZXREZXNjcmlwdGlvbkENCitJbW1HZXREZXNjcmlwdGlvblcNCitJbW1HZXRHdWlkZUxpbmVBDQorSW1tR2V0R3VpZGVMaW5lVw0KK0ltbUdldEhvdEtleQ0KK0ltbUdldElNQ0NMb2NrQ291bnQNCitJbW1HZXRJTUNDU2l6ZQ0KK0ltbUdldElNQ0xvY2tDb3VudA0KK0ltbUdldElNRUZpbGVOYW1lQQ0KK0ltbUdldElNRUZpbGVOYW1lVw0KK0ltbUdldEltZUluZm9FeA0KK0ltbUdldEltZU1lbnVJdGVtc0ENCitJbW1HZXRJbWVNZW51SXRlbXNXDQorSW1tR2V0T3BlblN0YXR1cw0KK0ltbUdldFByb3BlcnR5DQorSW1tR2V0UmVnaXN0ZXJXb3JkU3R5bGVBDQorSW1tR2V0UmVnaXN0ZXJXb3JkU3R5bGVXDQorSW1tR2V0U3RhdHVzV2luZG93UG9zDQorSW1tR2V0VmlydHVhbEtleQ0KK0ltbUlNUEdldElNRUENCitJbW1JTVBHZXRJTUVXDQorSW1tSU1QUXVlcnlJTUVBDQorSW1tSU1QUXVlcnlJTUVXDQorSW1tSU1QU2V0SU1FQQ0KK0ltbUlNUFNldElNRVcNCitJbW1JbnN0YWxsSU1FQQ0KK0ltbUluc3RhbGxJTUVXDQorSW1tSXNJTUUNCitJbW1Jc1VJTWVzc2FnZUENCitJbW1Jc1VJTWVzc2FnZVcNCitJbW1Mb2FkSU1FDQorSW1tTG9hZExheW91dA0KK0ltbUxvY2tDbGllbnRJbWMNCitJbW1Mb2NrSU1DDQorSW1tTG9ja0lNQ0MNCitJbW1Mb2NrSW1lRHBpDQorSW1tTm90aWZ5SU1FDQorSW1tUHJvY2Vzc0tleQ0KK0ltbVB1dEltZU1lbnVJdGVtc0ludG9NYXBwZWRGaWxlDQorSW1tUmVTaXplSU1DQw0KK0ltbVJlZ2lzdGVyQ2xpZW50DQorSW1tUmVnaXN0ZXJXb3JkQQ0KK0ltbVJlZ2lzdGVyV29yZFcNCitJbW1SZWxlYXNlQ29udGV4dA0KK0ltbVJlcXVlc3RNZXNzYWdlQQ0KK0ltbVJlcXVlc3RNZXNzYWdlVw0KK0ltbVNlbmRJTUVNZXNzYWdlRXhBDQorSW1tU2VuZElNRU1lc3NhZ2VFeFcNCitJbW1TZXRBY3RpdmVDb250ZXh0DQorSW1tU2V0QWN0aXZlQ29udGV4dENvbnNvbGVJTUUNCitJbW1TZXRDYW5kaWRhdGVXaW5kb3cNCitJbW1TZXRDb21wb3NpdGlvbkZvbnRBDQorSW1tU2V0Q29tcG9zaXRpb25Gb250Vw0KK0ltbVNldENvbXBvc2l0aW9uU3RyaW5nQQ0KK0ltbVNldENvbXBvc2l0aW9uU3RyaW5nVw0KK0ltbVNldENvbXBvc2l0aW9uV2luZG93DQorSW1tU2V0Q29udmVyc2lvblN0YXR1cw0KK0ltbVNldEhvdEtleQ0KK0ltbVNldE9wZW5TdGF0dXMNCitJbW1TZXRTdGF0dXNXaW5kb3dQb3MNCitJbW1TaG93U29mdEtleWJvYXJkDQorSW1tU2ltdWxhdGVIb3RLZXkNCitJbW1TeXN0ZW1IYW5kbGVyDQorSW1tVHJhbnNsYXRlTWVzc2FnZQ0KK0ltbVVubG9ja0NsaWVudEltYw0KK0ltbVVubG9ja0lNQw0KK0ltbVVubG9ja0lNQ0MNCitJbW1VbmxvY2tJbWVEcGkNCitJbW1VbnJlZ2lzdGVyV29yZEENCitJbW1VbnJlZ2lzdGVyV29yZFcNCitJbW1XSU5OTFNFbmFibGVJTUUNCitJbW1XSU5OTFNHZXRFbmFibGVTdGF0dXMNCitJbW1XSU5OTFNHZXRJTUVIb3RrZXkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aW1za2RpYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aW1za2RpYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDZhYjBjMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpbXNrZGljLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGltZXNrZGljLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpbWVza2RpYy5kbGwNCitFWFBPUlRTDQorQ3JlYXRlSUltZVNrZGljSW5zdGFuY2UNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpbXNrZi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aW1za2YuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZmNjExNDMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aW1za2YuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbWFpbi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbWFpbi5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aW4zMnNwbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aW4zMnNwbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODRhZjk5YQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpbjMyc3BsLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdJTjMyU1BMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXSU4zMlNQTC5kbGwNCitFWFBPUlRTDQorRGxsTWFpbg0KK0luaXRpYWxpemVQcmludE1vbml0b3INCitJbml0aWFsaXplUHJpbnRQcm92aWRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpbmV0Y2ZnLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpbmV0Y2ZnLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYzRkZTUzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2luZXRjZmcuZGVmCkBAIC0wLDAgKzEsNjYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSU5FVENGRy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSU5FVENGRy5kbGwNCitFWFBPUlRTDQorQ2hlY2tDb25uZWN0aW9uV2l6YXJkDQorQ29uZmlndXJlU3lzdGVtRm9ySW50ZXJuZXQNCitDb25maWd1cmVTeXN0ZW1Gb3JJbnRlcm5ldEENCitDb25maWd1cmVTeXN0ZW1Gb3JJbnRlcm5ldFcNCitGcmVlU2lnbnVwV2l6YXJkDQorSW5ldENvbmZpZ0NsaWVudA0KK0luZXRDb25maWdDbGllbnRBDQorSW5ldENvbmZpZ0NsaWVudFcNCitJbmV0Q29uZmlnU3lzdGVtDQorSW5ldENvbmZpZ1N5c3RlbUZyb21QYXRoDQorSW5ldENvbmZpZ1N5c3RlbUZyb21QYXRoQQ0KK0luZXRDb25maWdTeXN0ZW1Gcm9tUGF0aFcNCitJbmV0R2V0QXV0b2RpYWwNCitJbmV0R2V0QXV0b2RpYWxBDQorSW5ldEdldEF1dG9kaWFsVw0KK0luZXRHZXRDbGllbnRJbmZvDQorSW5ldEdldENsaWVudEluZm9BDQorSW5ldEdldENsaWVudEluZm9XDQorSW5ldEdldFByb3h5DQorSW5ldEdldFByb3h5QQ0KK0luZXRHZXRQcm94eVcNCitJbmV0TmVlZE1vZGVtDQorSW5ldE5lZWRTeXN0ZW1Db21wb25lbnRzDQorSW5ldFBlcmZvcm1TZWN1cml0eUNoZWNrDQorSW5ldFNldEF1dG9Qcm94eQ0KK0luZXRTZXRBdXRvUHJveHlBDQorSW5ldFNldEF1dG9Qcm94eVcNCitJbmV0U2V0QXV0b2RpYWwNCitJbmV0U2V0QXV0b2RpYWxBDQorSW5ldFNldEF1dG9kaWFsVw0KK0luZXRTZXRDbGllbnRJbmZvDQorSW5ldFNldENsaWVudEluZm9BDQorSW5ldFNldENsaWVudEluZm9XDQorSW5ldFNldFByb3h5DQorSW5ldFNldFByb3h5QQ0KK0luZXRTZXRQcm94eUV4DQorSW5ldFNldFByb3h5RXhBDQorSW5ldFNldFByb3h5RXhXDQorSW5ldFNldFByb3h5Vw0KK0luZXRTdGFydFNlcnZpY2VzDQorSXNTbWFydFN0YXJ0RXgNCitTZXRBdXRvUHJveHlDb25uZWN0b2lkDQorU2V0SW50ZXJuZXRQaG9uZU51bWJlcg0KK1NldEludGVybmV0UGhvbmVOdW1iZXJBDQorU2V0SW50ZXJuZXRQaG9uZU51bWJlclcNCitfQ2hlY2tDb25uZWN0aW9uV2l6YXJkQDgNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0lzU21hcnRTdGFydA0KK19MYXVuY2hTaWdudXBXaXphcmQNCitfTGF1bmNoU2lnbnVwV2l6YXJkQDEyDQorX0xhdW5jaFNpZ251cFdpemFyZEV4DQorX0xhdW5jaFNpZ251cFdpemFyZEV4QDEyDQorU2V0U2hlbGxOZXh0DQorU2V0U2hlbGxOZXh0QQ0KK1NldFNoZWxsTmV4dFcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aW5ldGNvbW0uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2luZXRjb21tLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zOTRmODdmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2luZXRjb21tLmRlZgpAQCAtMCwwICsxLDExNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJTkVUQ09NTS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSU5FVENPTU0uZGxsDQorRVhQT1JUUw0KK1JpY2hNaW1lRWRpdF9DcmVhdGVJbnN0YW5jZQ0KK0NyZWF0ZUlNQVBUcmFuc3BvcnQyDQorQ3JlYXRlSU1BUFRyYW5zcG9ydA0KK0NyZWF0ZU5OVFBUcmFuc3BvcnQNCitDcmVhdGVQT1AzVHJhbnNwb3J0DQorQ3JlYXRlUkFTVHJhbnNwb3J0DQorQ3JlYXRlUmFuZ2VMaXN0DQorQ3JlYXRlU01UUFRyYW5zcG9ydA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorRXNzQ29udGVudEhpbnREZWNvZGVFeA0KK0Vzc0NvbnRlbnRIaW50RW5jb2RlRXgNCitFc3NLZXlFeGNoUHJlZmVyZW5jZURlY29kZUV4DQorRXNzS2V5RXhjaFByZWZlcmVuY2VFbmNvZGVFeA0KK0Vzc01MSGlzdG9yeURlY29kZUV4DQorRXNzTUxIaXN0b3J5RW5jb2RlRXgNCitFc3NSZWNlaXB0RGVjb2RlRXgNCitFc3NSZWNlaXB0RW5jb2RlRXgNCitFc3NSZWNlaXB0UmVxdWVzdERlY29kZUV4DQorRXNzUmVjZWlwdFJlcXVlc3RFbmNvZGVFeA0KK0Vzc1NlY3VyaXR5TGFiZWxEZWNvZGVFeA0KK0Vzc1NlY3VyaXR5TGFiZWxFbmNvZGVFeA0KK0Vzc1NpZ25DZXJ0aWZpY2F0ZURlY29kZUV4DQorRXNzU2lnbkNlcnRpZmljYXRlRW5jb2RlRXgNCitHZXREbGxNYWpvclZlcnNpb24NCitIckF0aEdldEZpbGVOYW1lDQorSHJBdGhHZXRGaWxlTmFtZVcNCitIckF0dGFjaERhdGFGcm9tQm9keVBhcnQNCitIckF0dGFjaERhdGFGcm9tRmlsZQ0KK0hyRG9BdHRhY2htZW50VmVyYg0KK0hyRnJlZUF0dGFjaERhdGENCitIckdldEF0dGFjaEljb24NCitIckdldEF0dGFjaEljb25CeUZpbGUNCitIckdldERpc3BsYXlOYW1lV2l0aFNpemVGb3JGaWxlDQorSHJHZXRMYXN0T3BlbkZpbGVEaXJlY3RvcnkNCitIckdldExhc3RPcGVuRmlsZURpcmVjdG9yeVcNCitIclNhdmVBdHRhY2hUb0ZpbGUNCitIclNhdmVBdHRhY2htZW50QXMNCitNaW1lRWRpdENyZWF0ZU1pbWVEb2N1bWVudA0KK01pbWVFZGl0RG9jdW1lbnRGcm9tU3RyZWFtDQorTWltZUVkaXRHZXRCYWNrZ3JvdW5kSW1hZ2VVcmwNCitNaW1lRWRpdElzU2FmZVRvUnVuDQorTWltZUVkaXRWaWV3U291cmNlDQorTWltZUdldEFkZHJlc3NGb3JtYXRXDQorTWltZU9sZUFsZ05hbWVGcm9tU01pbWVDYXANCitNaW1lT2xlQWxnU3RyZW5ndGhGcm9tU01pbWVDYXANCitNaW1lT2xlQ2xlYXJEaXJ0eVRyZWUNCitNaW1lT2xlQ29udmVydEVucmljaGVkVG9IVE1MDQorTWltZU9sZUNyZWF0ZUJvZHkNCitNaW1lT2xlQ3JlYXRlQnl0ZVN0cmVhbQ0KK01pbWVPbGVDcmVhdGVIYXNoVGFibGUNCitNaW1lT2xlQ3JlYXRlSGVhZGVyVGFibGUNCitNaW1lT2xlQ3JlYXRlTWVzc2FnZQ0KK01pbWVPbGVDcmVhdGVNZXNzYWdlUGFydHMNCitNaW1lT2xlQ3JlYXRlUHJvcGVydHlTZXQNCitNaW1lT2xlQ3JlYXRlU2VjdXJpdHkNCitNaW1lT2xlQ3JlYXRlVmlydHVhbFN0cmVhbQ0KK01pbWVPbGVEZWNvZGVIZWFkZXINCitNaW1lT2xlRW5jb2RlSGVhZGVyDQorTWltZU9sZUZpbGVUaW1lVG9JbmV0RGF0ZQ0KK01pbWVPbGVGaW5kQ2hhcnNldA0KK01pbWVPbGVHZW5lcmF0ZUNJRA0KK01pbWVPbGVHZW5lcmF0ZUZpbGVOYW1lDQorTWltZU9sZUdlbmVyYXRlTUlEDQorTWltZU9sZUdldEFsbG9jYXRvcg0KK01pbWVPbGVHZXRCb2R5UHJvcEENCitNaW1lT2xlR2V0Qm9keVByb3BXDQorTWltZU9sZUdldENlcnRzRnJvbVRodW1icHJpbnRzDQorTWltZU9sZUdldENoYXJzZXRJbmZvDQorTWltZU9sZUdldENvZGVQYWdlQ2hhcnNldA0KK01pbWVPbGVHZXRDb2RlUGFnZUluZm8NCitNaW1lT2xlR2V0Q29udGVudFR5cGVFeHQNCitNaW1lT2xlR2V0RGVmYXVsdENoYXJzZXQNCitNaW1lT2xlR2V0RXh0Q29udGVudFR5cGUNCitNaW1lT2xlR2V0RmlsZUV4dGVuc2lvbg0KK01pbWVPbGVHZXRGaWxlSW5mbw0KK01pbWVPbGVHZXRGaWxlSW5mb1cNCitNaW1lT2xlR2V0SW50ZXJuYXQNCitNaW1lT2xlR2V0UHJvcEENCitNaW1lT2xlR2V0UHJvcFcNCitNaW1lT2xlR2V0UHJvcGVydHlTY2hlbWENCitNaW1lT2xlR2V0UmVsYXRlZFNlY3Rpb24NCitNaW1lT2xlSW5ldERhdGVUb0ZpbGVUaW1lDQorTWltZU9sZU9iamVjdEZyb21Nb25pa2VyDQorTWltZU9sZU9wZW5GaWxlU3RyZWFtDQorTWltZU9sZVBhcnNlTWh0bWxVcmwNCitNaW1lT2xlUGFyc2VSZmM4MjJBZGRyZXNzDQorTWltZU9sZVBhcnNlUmZjODIyQWRkcmVzc1cNCitNaW1lT2xlU01pbWVDYXBBZGRDZXJ0DQorTWltZU9sZVNNaW1lQ2FwQWRkU01pbWVDYXANCitNaW1lT2xlU01pbWVDYXBHZXRFbmNBbGcNCitNaW1lT2xlU01pbWVDYXBHZXRIYXNoQWxnDQorTWltZU9sZVNNaW1lQ2FwSW5pdA0KK01pbWVPbGVTTWltZUNhcFJlbGVhc2UNCitNaW1lT2xlU01pbWVDYXBzRnJvbURsZw0KK01pbWVPbGVTTWltZUNhcHNGdWxsDQorTWltZU9sZVNNaW1lQ2Fwc1RvRGxnDQorTWltZU9sZVNldEJvZHlQcm9wQQ0KK01pbWVPbGVTZXRCb2R5UHJvcFcNCitNaW1lT2xlU2V0Q29tcGF0TW9kZQ0KK01pbWVPbGVTZXREZWZhdWx0Q2hhcnNldA0KK01pbWVPbGVTZXRQcm9wQQ0KK01pbWVPbGVTZXRQcm9wVw0KK01pbWVPbGVTdHJpcEhlYWRlcnMNCitNaW1lT2xlVW5Fc2NhcGVTdHJpbmdJblBsYWNlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2luZXRtZ3IuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2luZXRtZ3IuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNiYzM0ODQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aW5ldG1nci5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpbmV0bWdyLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpbmV0bWdyLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpbmV0bWliMS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aW5ldG1pYjEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNlMjNmODAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aW5ldG1pYjEuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaW5ldG1pYjEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGluZXRtaWIxLmRsbA0KK0VYUE9SVFMNCitTbm1wRXh0ZW5zaW9uSW5pdA0KK1NubXBFeHRlbnNpb25Jbml0RXgNCitTbm1wRXh0ZW5zaW9uUXVlcnkNCitTbm1wRXh0ZW5zaW9uVHJhcA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpbmV0cHAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2luZXRwcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2JlNmE1MAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpbmV0cHAuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJTkVUUFAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElORVRQUC5kbGwNCitFWFBPUlRTDQorSW5pdGlhbGl6ZVByaW50UHJvdmlkb3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aW5ldHBwdWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2luZXRwcHVpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMDhmZmUzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2luZXRwcHVpLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSU5FVFBQVUkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElORVRQUFVJLmRsbA0KK0VYUE9SVFMNCitJbml0aWFsaXplUHJpbnRNb25pdG9yVUkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aW5mYXguZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2luZmF4LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNmM2YTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2luZmF4LmRlZgpAQCAtMCwwICsxLDY0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdJTkZBWC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgV0lORkFYLmRsbA0KK0VYUE9SVFMNCitGYXhBYm9ydA0KK0ZheEFjY2Vzc0NoZWNrDQorRmF4Q2xvc2UNCitGYXhDb21wbGV0ZUpvYlBhcmFtc0ENCitGYXhDb21wbGV0ZUpvYlBhcmFtc1cNCitGYXhDb25uZWN0RmF4U2VydmVyQQ0KK0ZheENvbm5lY3RGYXhTZXJ2ZXJXDQorRmF4RW5hYmxlUm91dGluZ01ldGhvZEENCitGYXhFbmFibGVSb3V0aW5nTWV0aG9kVw0KK0ZheEVudW1HbG9iYWxSb3V0aW5nSW5mb0ENCitGYXhFbnVtR2xvYmFsUm91dGluZ0luZm9XDQorRmF4RW51bUpvYnNBDQorRmF4RW51bUpvYnNXDQorRmF4RW51bVBvcnRzQQ0KK0ZheEVudW1Qb3J0c1cNCitGYXhFbnVtUm91dGluZ01ldGhvZHNBDQorRmF4RW51bVJvdXRpbmdNZXRob2RzVw0KK0ZheEZyZWVCdWZmZXINCitGYXhHZXRDb25maWd1cmF0aW9uQQ0KK0ZheEdldENvbmZpZ3VyYXRpb25XDQorRmF4R2V0RGV2aWNlU3RhdHVzQQ0KK0ZheEdldERldmljZVN0YXR1c1cNCitGYXhHZXRKb2JBDQorRmF4R2V0Sm9iVw0KK0ZheEdldExvZ2dpbmdDYXRlZ29yaWVzQQ0KK0ZheEdldExvZ2dpbmdDYXRlZ29yaWVzVw0KK0ZheEdldFBhZ2VEYXRhDQorRmF4R2V0UG9ydEENCitGYXhHZXRQb3J0Vw0KK0ZheEdldFJvdXRpbmdJbmZvQQ0KK0ZheEdldFJvdXRpbmdJbmZvVw0KK0ZheEluaXRpYWxpemVFdmVudFF1ZXVlDQorRmF4T3BlblBvcnQNCitGYXhQcmludENvdmVyUGFnZUENCitGYXhQcmludENvdmVyUGFnZVcNCitGYXhSZWdpc3RlclJvdXRpbmdFeHRlbnNpb25XDQorRmF4UmVnaXN0ZXJTZXJ2aWNlUHJvdmlkZXJXDQorRmF4U2VuZERvY3VtZW50QQ0KK0ZheFNlbmREb2N1bWVudEZvckJyb2FkY2FzdEENCitGYXhTZW5kRG9jdW1lbnRGb3JCcm9hZGNhc3RXDQorRmF4U2VuZERvY3VtZW50Vw0KK0ZheFNldENvbmZpZ3VyYXRpb25BDQorRmF4U2V0Q29uZmlndXJhdGlvblcNCitGYXhTZXRHbG9iYWxSb3V0aW5nSW5mb0ENCitGYXhTZXRHbG9iYWxSb3V0aW5nSW5mb1cNCitGYXhTZXRKb2JBDQorRmF4U2V0Sm9iVw0KK0ZheFNldExvZ2dpbmdDYXRlZ29yaWVzQQ0KK0ZheFNldExvZ2dpbmdDYXRlZ29yaWVzVw0KK0ZheFNldFBvcnRBDQorRmF4U2V0UG9ydFcNCitGYXhTZXRSb3V0aW5nSW5mb0ENCitGYXhTZXRSb3V0aW5nSW5mb1cNCitGYXhTdGFydFByaW50Sm9iQQ0KK0ZheFN0YXJ0UHJpbnRKb2JXDQorRmF4VW5yZWdpc3RlclNlcnZpY2VQcm92aWRlclcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aW5mb2FkbW4uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2luZm9hZG1uLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44OGZmOTJmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2luZm9hZG1uLmRlZgpAQCAtMCwwICsxLDI2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElORk9BRE1OLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJTkZPQURNTi5kbGwNCitFWFBPUlRTDQorQ29sbGVjdFczUGVyZkRhdGENCitGdHBDbGVhclN0YXRpc3RpY3MyDQorRnRwUXVlcnlTdGF0aXN0aWNzMg0KK0lJU0Rpc2Nvbm5lY3RVc2VyDQorSUlTRW51bWVyYXRlVXNlcnMNCitJbmV0SW5mb0NsZWFyU3RhdGlzdGljcw0KK0luZXRJbmZvRmx1c2hNZW1vcnlDYWNoZQ0KK0luZXRJbmZvR2V0QWRtaW5JbmZvcm1hdGlvbg0KK0luZXRJbmZvR2V0R2xvYmFsQWRtaW5JbmZvcm1hdGlvbg0KK0luZXRJbmZvR2V0U2VydmVyQ2FwYWJpbGl0aWVzDQorSW5ldEluZm9HZXRTaXRlcw0KK0luZXRJbmZvR2V0VmVyc2lvbg0KK0luZXRJbmZvUXVlcnlTdGF0aXN0aWNzDQorSW5ldEluZm9TZXRBZG1pbkluZm9ybWF0aW9uDQorSW5ldEluZm9TZXRHbG9iYWxBZG1pbkluZm9ybWF0aW9uDQorSW5pdFczQ291bnRlclN0cnVjdHVyZQ0KK1czQ2xlYXJTdGF0aXN0aWNzMg0KK1czUXVlcnlTdGF0aXN0aWNzMg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpbmZvY3Rycy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aW5mb2N0cnMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNiODhhZWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aW5mb2N0cnMuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSU5GT0NUUlMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElORk9DVFJTLmRsbA0KK0VYUE9SVFMNCitPcGVuSU5GT1BlcmZvcm1hbmNlRGF0YQ0KK0NvbGxlY3RJTkZPUGVyZm9ybWFuY2VEYXRhDQorQ2xvc2VJTkZPUGVyZm9ybWFuY2VEYXRhDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2luZm9zb2Z0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpbmZvc29mdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2VjYmU1MAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpbmZvc29mdC5kZWYKQEAgLTAsMCArMSw0OSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpbmZvc29mdC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgaW5mb3NvZnQuZGxsDQorRVhQT1JUUw0KK19JSWFwcEA4DQorX0lJYXBwX21lbUA4DQorX0lJYnVmQDgNCitfSUlidWZfbWVtQDEyDQorX0lJZGJAOA0KK19JSWRiX21lbUAxMg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorX0lJd29yZEA4DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorX0lJR2V0QXBwRWxlbUA0DQorX0lJZGlhZ29mZkA0DQorX0lJR2V0Rk1AMA0KK19JSWRpYWdvbkA0DQorX05URk1DbG9zZUA0DQorX05URk1Db21wYXJlQDgNCitfTlRGTUNvcHlANA0KK19OVEZNQ3JlYXRlQDQNCitfTlRGTURlbGV0ZUA0DQorX05URk1EZXN0cnVjdEA0DQorX05URk1GbHVzaE1hcHBpbmdAOA0KK19OVEZNR2V0RGlydHlCaXRAOA0KK19OVEZNR2V0TGVuZ3RoQDQNCitfTlRGTUdldE1hcEhhbmRsZUA4DQorX05URk1HZXRNYXBwaW5nQDIwDQorX05URk1HZXROYW1lQDEyDQorX05URk1HZXRQb3NpdGlvbkA0DQorX05URk1HZXRTdGF0dXNANA0KK19OVEZNTG9ja01hcHBpbmdAOA0KK19OVEZNT3BlbkA4DQorX05URk1SZWFkQDEyDQorX05URk1SZWxlYXNlTWFwSGFuZGxlQDgNCitfTlRGTVNlZWtAMTINCitfTlRGTVNldERpcnR5Qml0QDEyDQorX05URk1TZXRMZW5ndGhAOA0KK19OVEZNU2V0TWFwcGluZ0AyMA0KK19OVEZNU2V0TXV0ZXhQcm9jQDgNCitfTlRGTVNldE5hbWVAOA0KK19OVEZNVW5sb2NrTWFwcGluZ0A4DQorX05URk1Xcml0ZUAxMg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpbmluZXQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2luaW5ldC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGRkYzE2NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpbmluZXQuZGVmCkBAIC0wLDAgKzEsMjMzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdJTklORVQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFdJTklORVQuZGxsDQorRVhQT1JUUw0KK0NvbW1pdFVybENhY2hlRW50cnlBDQorQ29tbWl0VXJsQ2FjaGVFbnRyeVcNCitDcmVhdGVNRDVTU09IYXNoDQorQ3JlYXRlVXJsQ2FjaGVDb250YWluZXJBDQorQ3JlYXRlVXJsQ2FjaGVDb250YWluZXJXDQorQ3JlYXRlVXJsQ2FjaGVFbnRyeUENCitDcmVhdGVVcmxDYWNoZUVudHJ5Vw0KK0NyZWF0ZVVybENhY2hlR3JvdXANCitEZWxldGVJRTNDYWNoZQ0KK0RlbGV0ZVVybENhY2hlQ29udGFpbmVyQQ0KK0RlbGV0ZVVybENhY2hlQ29udGFpbmVyVw0KK0RlbGV0ZVVybENhY2hlRW50cnkNCitEZWxldGVVcmxDYWNoZUVudHJ5QQ0KK0RlbGV0ZVVybENhY2hlRW50cnlXDQorRGVsZXRlVXJsQ2FjaGVHcm91cA0KK0RldGVjdEF1dG9Qcm94eVVybA0KK0RsbEluc3RhbGwNCitGaW5kQ2xvc2VVcmxDYWNoZQ0KK0ZpbmRGaXJzdFVybENhY2hlQ29udGFpbmVyQQ0KK0ZpbmRGaXJzdFVybENhY2hlQ29udGFpbmVyVw0KK0ZpbmRGaXJzdFVybENhY2hlRW50cnlBDQorRmluZEZpcnN0VXJsQ2FjaGVFbnRyeUV4QQ0KK0ZpbmRGaXJzdFVybENhY2hlRW50cnlFeFcNCitGaW5kRmlyc3RVcmxDYWNoZUVudHJ5Vw0KK0ZpbmRGaXJzdFVybENhY2hlR3JvdXANCitGaW5kTmV4dFVybENhY2hlQ29udGFpbmVyQQ0KK0ZpbmROZXh0VXJsQ2FjaGVDb250YWluZXJXDQorRmluZE5leHRVcmxDYWNoZUVudHJ5QQ0KK0ZpbmROZXh0VXJsQ2FjaGVFbnRyeUV4QQ0KK0ZpbmROZXh0VXJsQ2FjaGVFbnRyeUV4Vw0KK0ZpbmROZXh0VXJsQ2FjaGVFbnRyeVcNCitGaW5kTmV4dFVybENhY2hlR3JvdXANCitGb3JjZU5leHVzTG9va3VwDQorRm9yY2VOZXh1c0xvb2t1cEV4Vw0KK0ZyZWVVcmxDYWNoZVNwYWNlQQ0KK0ZyZWVVcmxDYWNoZVNwYWNlVw0KK0Z0cENvbW1hbmRBDQorRnRwQ29tbWFuZFcNCitGdHBDcmVhdGVEaXJlY3RvcnlBDQorRnRwQ3JlYXRlRGlyZWN0b3J5Vw0KK0Z0cERlbGV0ZUZpbGVBDQorRnRwRGVsZXRlRmlsZVcNCitGdHBGaW5kRmlyc3RGaWxlQQ0KK0Z0cEZpbmRGaXJzdEZpbGVXDQorRnRwR2V0Q3VycmVudERpcmVjdG9yeUENCitGdHBHZXRDdXJyZW50RGlyZWN0b3J5Vw0KK0Z0cEdldEZpbGVBDQorRnRwR2V0RmlsZUV4DQorRnRwR2V0RmlsZVNpemUNCitGdHBHZXRGaWxlVw0KK0Z0cE9wZW5GaWxlQQ0KK0Z0cE9wZW5GaWxlVw0KK0Z0cFB1dEZpbGVBDQorRnRwUHV0RmlsZUV4DQorRnRwUHV0RmlsZVcNCitGdHBSZW1vdmVEaXJlY3RvcnlBDQorRnRwUmVtb3ZlRGlyZWN0b3J5Vw0KK0Z0cFJlbmFtZUZpbGVBDQorRnRwUmVuYW1lRmlsZVcNCitGdHBTZXRDdXJyZW50RGlyZWN0b3J5QQ0KK0Z0cFNldEN1cnJlbnREaXJlY3RvcnlXDQorR2V0VXJsQ2FjaGVDb25maWdJbmZvQQ0KK0dldFVybENhY2hlQ29uZmlnSW5mb1cNCitHZXRVcmxDYWNoZUVudHJ5SW5mb0ENCitHZXRVcmxDYWNoZUVudHJ5SW5mb0V4QQ0KK0dldFVybENhY2hlRW50cnlJbmZvRXhXDQorR2V0VXJsQ2FjaGVFbnRyeUluZm9XDQorR2V0VXJsQ2FjaGVHcm91cEF0dHJpYnV0ZUENCitHZXRVcmxDYWNoZUdyb3VwQXR0cmlidXRlVw0KK0dldFVybENhY2hlSGVhZGVyRGF0YQ0KK0dvcGhlckNyZWF0ZUxvY2F0b3JBDQorR29waGVyQ3JlYXRlTG9jYXRvclcNCitHb3BoZXJGaW5kRmlyc3RGaWxlQQ0KK0dvcGhlckZpbmRGaXJzdEZpbGVXDQorR29waGVyR2V0QXR0cmlidXRlQQ0KK0dvcGhlckdldEF0dHJpYnV0ZVcNCitHb3BoZXJHZXRMb2NhdG9yVHlwZUENCitHb3BoZXJHZXRMb2NhdG9yVHlwZVcNCitHb3BoZXJPcGVuRmlsZUENCitHb3BoZXJPcGVuRmlsZVcNCitIdHRwQWRkUmVxdWVzdEhlYWRlcnNBDQorSHR0cEFkZFJlcXVlc3RIZWFkZXJzVw0KK0h0dHBDaGVja0RhdkNvbXBsaWFuY2UNCitIdHRwRW5kUmVxdWVzdEENCitIdHRwRW5kUmVxdWVzdFcNCitIdHRwT3BlblJlcXVlc3RBDQorSHR0cE9wZW5SZXF1ZXN0Vw0KK0h0dHBRdWVyeUluZm9BDQorSHR0cFF1ZXJ5SW5mb1cNCitIdHRwU2VuZFJlcXVlc3RBDQorSHR0cFNlbmRSZXF1ZXN0RXhBDQorSHR0cFNlbmRSZXF1ZXN0RXhXDQorSHR0cFNlbmRSZXF1ZXN0Vw0KK0luY3JlbWVudFVybENhY2hlSGVhZGVyRGF0YQ0KK0ludGVybmV0QWxnSWRUb1N0cmluZ0ENCitJbnRlcm5ldEFsZ0lkVG9TdHJpbmdXDQorSW50ZXJuZXRBdHRlbXB0Q29ubmVjdA0KK0ludGVybmV0QXV0b2RpYWwNCitJbnRlcm5ldEF1dG9kaWFsQ2FsbGJhY2sNCitJbnRlcm5ldEF1dG9kaWFsSGFuZ3VwDQorSW50ZXJuZXRDYW5vbmljYWxpemVVcmxBDQorSW50ZXJuZXRDYW5vbmljYWxpemVVcmxXDQorSW50ZXJuZXRDaGVja0Nvbm5lY3Rpb25BDQorSW50ZXJuZXRDaGVja0Nvbm5lY3Rpb25XDQorSW50ZXJuZXRDbGVhckFsbFBlclNpdGVDb29raWVEZWNpc2lvbnMNCitJbnRlcm5ldENsb3NlSGFuZGxlDQorSW50ZXJuZXRDb21iaW5lVXJsQQ0KK0ludGVybmV0Q29tYmluZVVybFcNCitJbnRlcm5ldENvbmZpcm1ab25lQ3Jvc3NpbmcNCitJbnRlcm5ldENvbmZpcm1ab25lQ3Jvc3NpbmdBDQorSW50ZXJuZXRDb25maXJtWm9uZUNyb3NzaW5nVw0KK0ludGVybmV0Q29ubmVjdEENCitJbnRlcm5ldENvbm5lY3RXDQorSW50ZXJuZXRDcmFja1VybEENCitJbnRlcm5ldENyYWNrVXJsVw0KK0ludGVybmV0Q3JlYXRlVXJsQQ0KK0ludGVybmV0Q3JlYXRlVXJsVw0KK0ludGVybmV0RGlhbA0KK0ludGVybmV0RGlhbEENCitJbnRlcm5ldERpYWxXDQorSW50ZXJuZXRFbnVtUGVyU2l0ZUNvb2tpZURlY2lzaW9uQQ0KK0ludGVybmV0RW51bVBlclNpdGVDb29raWVEZWNpc2lvblcNCitJbnRlcm5ldEVycm9yRGxnDQorSW50ZXJuZXRGaW5kTmV4dEZpbGVBDQorSW50ZXJuZXRGaW5kTmV4dEZpbGVXDQorSW50ZXJuZXRGb3J0ZXp6YUNvbW1hbmQNCitJbnRlcm5ldEdldENlcnRCeVVSTA0KK0ludGVybmV0R2V0Q2VydEJ5VVJMQQ0KK0ludGVybmV0R2V0Q29ubmVjdGVkU3RhdGUNCitJbnRlcm5ldEdldENvbm5lY3RlZFN0YXRlRXgNCitJbnRlcm5ldEdldENvbm5lY3RlZFN0YXRlRXhBDQorSW50ZXJuZXRHZXRDb25uZWN0ZWRTdGF0ZUV4Vw0KK0ludGVybmV0R2V0Q29va2llQQ0KK0ludGVybmV0R2V0Q29va2llRXhBDQorSW50ZXJuZXRHZXRDb29raWVFeFcNCitJbnRlcm5ldEdldENvb2tpZVcNCitJbnRlcm5ldEdldExhc3RSZXNwb25zZUluZm9BDQorSW50ZXJuZXRHZXRMYXN0UmVzcG9uc2VJbmZvVw0KK0ludGVybmV0R2V0UGVyU2l0ZUNvb2tpZURlY2lzaW9uQQ0KK0ludGVybmV0R2V0UGVyU2l0ZUNvb2tpZURlY2lzaW9uVw0KK0ludGVybmV0R29PbmxpbmUNCitJbnRlcm5ldEdvT25saW5lQQ0KK0ludGVybmV0R29PbmxpbmVXDQorSW50ZXJuZXRIYW5nVXANCitJbnRlcm5ldEluaXRpYWxpemVBdXRvUHJveHlEbGwNCitJbnRlcm5ldExvY2tSZXF1ZXN0RmlsZQ0KK0ludGVybmV0T3BlbkENCitJbnRlcm5ldE9wZW5VcmxBDQorSW50ZXJuZXRPcGVuVXJsVw0KK0ludGVybmV0T3BlblcNCitJbnRlcm5ldFF1ZXJ5RGF0YUF2YWlsYWJsZQ0KK0ludGVybmV0UXVlcnlGb3J0ZXp6YVN0YXR1cw0KK0ludGVybmV0UXVlcnlPcHRpb25BDQorSW50ZXJuZXRRdWVyeU9wdGlvblcNCitJbnRlcm5ldFJlYWRGaWxlDQorSW50ZXJuZXRSZWFkRmlsZUV4QQ0KK0ludGVybmV0UmVhZEZpbGVFeFcNCitJbnRlcm5ldFNlY3VyaXR5UHJvdG9jb2xUb1N0cmluZ0ENCitJbnRlcm5ldFNlY3VyaXR5UHJvdG9jb2xUb1N0cmluZ1cNCitJbnRlcm5ldFNldENvb2tpZUENCitJbnRlcm5ldFNldENvb2tpZUV4QQ0KK0ludGVybmV0U2V0Q29va2llRXhXDQorSW50ZXJuZXRTZXRDb29raWVXDQorSW50ZXJuZXRTZXREaWFsU3RhdGUNCitJbnRlcm5ldFNldERpYWxTdGF0ZUENCitJbnRlcm5ldFNldERpYWxTdGF0ZVcNCitJbnRlcm5ldFNldEZpbGVQb2ludGVyDQorSW50ZXJuZXRTZXRPcHRpb25BDQorSW50ZXJuZXRTZXRPcHRpb25FeEENCitJbnRlcm5ldFNldE9wdGlvbkV4Vw0KK0ludGVybmV0U2V0T3B0aW9uVw0KK0ludGVybmV0U2V0UGVyU2l0ZUNvb2tpZURlY2lzaW9uQQ0KK0ludGVybmV0U2V0UGVyU2l0ZUNvb2tpZURlY2lzaW9uVw0KK0ludGVybmV0U2V0U3RhdHVzQ2FsbGJhY2sNCitJbnRlcm5ldFNldFN0YXR1c0NhbGxiYWNrQQ0KK0ludGVybmV0U2V0U3RhdHVzQ2FsbGJhY2tXDQorSW50ZXJuZXRTaG93U2VjdXJpdHlJbmZvQnlVUkwNCitJbnRlcm5ldFNob3dTZWN1cml0eUluZm9CeVVSTEENCitJbnRlcm5ldFNob3dTZWN1cml0eUluZm9CeVVSTFcNCitJbnRlcm5ldFRpbWVGcm9tU3lzdGVtVGltZQ0KK0ludGVybmV0VGltZUZyb21TeXN0ZW1UaW1lQQ0KK0ludGVybmV0VGltZUZyb21TeXN0ZW1UaW1lVw0KK0ludGVybmV0VGltZVRvU3lzdGVtVGltZQ0KK0ludGVybmV0VGltZVRvU3lzdGVtVGltZUENCitJbnRlcm5ldFRpbWVUb1N5c3RlbVRpbWVXDQorSW50ZXJuZXRVbmxvY2tSZXF1ZXN0RmlsZQ0KK0ludGVybmV0V3JpdGVGaWxlDQorSW50ZXJuZXRXcml0ZUZpbGVFeEENCitJbnRlcm5ldFdyaXRlRmlsZUV4Vw0KK0lzSG9zdEluUHJveHlCeXBhc3NMaXN0DQorSXNVcmxDYWNoZUVudHJ5RXhwaXJlZEENCitJc1VybENhY2hlRW50cnlFeHBpcmVkVw0KK0xvYWRVcmxDYWNoZUNvbnRlbnQNCitQYXJzZVg1MDlFbmNvZGVkQ2VydGlmaWNhdGVGb3JMaXN0Qm94RW50cnkNCitQcml2YWN5R2V0Wm9uZVByZWZlcmVuY2VXDQorUHJpdmFjeVNldFpvbmVQcmVmZXJlbmNlVw0KK1JlYWRVcmxDYWNoZUVudHJ5U3RyZWFtDQorUmVnaXN0ZXJVcmxDYWNoZU5vdGlmaWNhdGlvbg0KK1Jlc3VtZVN1c3BlbmRlZERvd25sb2FkDQorUmV0cmlldmVVcmxDYWNoZUVudHJ5RmlsZUENCitSZXRyaWV2ZVVybENhY2hlRW50cnlGaWxlVw0KK1JldHJpZXZlVXJsQ2FjaGVFbnRyeVN0cmVhbUENCitSZXRyaWV2ZVVybENhY2hlRW50cnlTdHJlYW1XDQorUnVuT25jZVVybENhY2hlDQorU2V0VXJsQ2FjaGVDb25maWdJbmZvQQ0KK1NldFVybENhY2hlQ29uZmlnSW5mb1cNCitTZXRVcmxDYWNoZUVudHJ5R3JvdXANCitTZXRVcmxDYWNoZUVudHJ5R3JvdXBBDQorU2V0VXJsQ2FjaGVFbnRyeUdyb3VwVw0KK1NldFVybENhY2hlRW50cnlJbmZvQQ0KK1NldFVybENhY2hlRW50cnlJbmZvVw0KK1NldFVybENhY2hlR3JvdXBBdHRyaWJ1dGVBDQorU2V0VXJsQ2FjaGVHcm91cEF0dHJpYnV0ZVcNCitTZXRVcmxDYWNoZUhlYWRlckRhdGENCitTaG93Q2VydGlmaWNhdGUNCitTaG93Q2xpZW50QXV0aENlcnRzDQorU2hvd1NlY3VyaXR5SW5mbw0KK1Nob3dYNTA5RW5jb2RlZENlcnRpZmljYXRlDQorVW5sb2NrVXJsQ2FjaGVFbnRyeUZpbGUNCitVbmxvY2tVcmxDYWNoZUVudHJ5RmlsZUENCitVbmxvY2tVcmxDYWNoZUVudHJ5RmlsZVcNCitVbmxvY2tVcmxDYWNoZUVudHJ5U3RyZWFtDQorVXBkYXRlVXJsQ2FjaGVDb250ZW50UGF0aA0KK1VybFpvbmVzRGV0YWNoDQorX0dldEZpbGVFeHRlbnNpb25Gcm9tVXJsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2luaXBzZWMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2luaXBzZWMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM5OTY0ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aW5pcHNlYy5kZWYKQEAgLTAsMCArMSw3MSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBXSU5JUFNFQy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgV0lOSVBTRUMuRExMDQorRVhQT1JUUw0KK1NQREFwaUJ1ZmZlckFsbG9jYXRlDQorU1BEQXBpQnVmZmVyRnJlZQ0KK0FkZFRyYW5zcG9ydEZpbHRlcg0KK0RlbGV0ZVRyYW5zcG9ydEZpbHRlcg0KK0VudW1UcmFuc3BvcnRGaWx0ZXJzDQorU2V0VHJhbnNwb3J0RmlsdGVyDQorR2V0VHJhbnNwb3J0RmlsdGVyDQorQWRkUU1Qb2xpY3kNCitEZWxldGVRTVBvbGljeQ0KK0VudW1RTVBvbGljaWVzDQorU2V0UU1Qb2xpY3kNCitHZXRRTVBvbGljeQ0KK0FkZE1NUG9saWN5DQorRGVsZXRlTU1Qb2xpY3kNCitFbnVtTU1Qb2xpY2llcw0KK1NldE1NUG9saWN5DQorR2V0TU1Qb2xpY3kNCitBZGRNTUZpbHRlcg0KK0RlbGV0ZU1NRmlsdGVyDQorRW51bU1NRmlsdGVycw0KK1NldE1NRmlsdGVyDQorR2V0TU1GaWx0ZXINCitNYXRjaE1NRmlsdGVyDQorTWF0Y2hUcmFuc3BvcnRGaWx0ZXINCitHZXRRTVBvbGljeUJ5SUQNCitHZXRNTVBvbGljeUJ5SUQNCitBZGRNTUF1dGhNZXRob2RzDQorRGVsZXRlTU1BdXRoTWV0aG9kcw0KK0VudW1NTUF1dGhNZXRob2RzDQorU2V0TU1BdXRoTWV0aG9kcw0KK0dldE1NQXV0aE1ldGhvZHMNCitJbml0aWF0ZUlLRU5lZ290aWF0aW9uDQorUXVlcnlJS0VOZWdvdGlhdGlvblN0YXR1cw0KK0Nsb3NlSUtFTmVnb3RpYXRpb25IYW5kbGUNCitFbnVtTU1TQXMNCitRdWVyeUlLRVN0YXRpc3RpY3MNCitEZWxldGVNTVNBcw0KK1JlZ2lzdGVySUtFTm90aWZ5Q2xpZW50DQorUXVlcnlJS0VOb3RpZnlEYXRhDQorQ2xvc2VJS0VOb3RpZnlIYW5kbGUNCitRdWVyeUlQU2VjU3RhdGlzdGljcw0KK0VudW1RTVNBcw0KK0FkZFR1bm5lbEZpbHRlcg0KK0RlbGV0ZVR1bm5lbEZpbHRlcg0KK0VudW1UdW5uZWxGaWx0ZXJzDQorU2V0VHVubmVsRmlsdGVyDQorR2V0VHVubmVsRmlsdGVyDQorTWF0Y2hUdW5uZWxGaWx0ZXINCitPcGVuTU1GaWx0ZXJIYW5kbGUNCitDbG9zZU1NRmlsdGVySGFuZGxlDQorT3BlblRyYW5zcG9ydEZpbHRlckhhbmRsZQ0KK0Nsb3NlVHJhbnNwb3J0RmlsdGVySGFuZGxlDQorT3BlblR1bm5lbEZpbHRlckhhbmRsZQ0KK0Nsb3NlVHVubmVsRmlsdGVySGFuZGxlDQorRW51bUlQU2VjSW50ZXJmYWNlcw0KK0FkZFNBcw0KK0RlbGV0ZVFNU0FzDQorR2V0Q29uZmlndXJhdGlvblZhcmlhYmxlcw0KK1NldENvbmZpZ3VyYXRpb25WYXJpYWJsZXMNCitRdWVyeVNwZFBvbGljeVN0YXRlDQorT3BlbklQU2VjUGVyZm9ybWFuY2VEYXRhDQorQ29sbGVjdElQU2VjUGVyZm9ybWFuY2VEYXRhDQorQ2xvc2VJUFNlY1BlcmZvcm1hbmNlRGF0YQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpbml0cGtpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpbml0cGtpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41M2UzOTViCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2luaXRwa2kuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSU5JVFBLSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSU5JVFBLSS5kbGwNCitFWFBPUlRTDQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0luaXRpYWxpemVQS0kNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aW5tbS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aW5tbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTA3M2Y5OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpbm1tLmRlZgpAQCAtMCwwICsxLDIwNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBXSU5NTS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgV0lOTU0uZGxsDQorRVhQT1JUUw0KK0Nsb3NlRHJpdmVyDQorRGVmRHJpdmVyUHJvYw0KK0RyaXZlckNhbGxiYWNrDQorRHJ2R2V0TW9kdWxlSGFuZGxlDQorR2V0RHJpdmVyTW9kdWxlSGFuZGxlDQorTWlncmF0ZUFsbERyaXZlcnMNCitNaWdyYXRlU291bmRFdmVudHMNCitPcGVuRHJpdmVyDQorUGxheVNvdW5kDQorUGxheVNvdW5kQQ0KK1BsYXlTb3VuZFcNCitTZW5kRHJpdmVyTWVzc2FnZQ0KK1dPV0FwcEV4aXQNCitXaW5tbUxvZ29mZg0KK1dpbm1tTG9nb24NCithdXhHZXREZXZDYXBzQQ0KK2F1eEdldERldkNhcHNXDQorYXV4R2V0TnVtRGV2cw0KK2F1eEdldFZvbHVtZQ0KK2F1eE91dE1lc3NhZ2UNCithdXhTZXRWb2x1bWUNCitnZnhBZGRHZngNCitnZnhCYXRjaENoYW5nZQ0KK2dmeENyZWF0ZUdmeEZhY3Rvcmllc0xpc3QNCitnZnhDcmVhdGVab25lRmFjdG9yaWVzTGlzdA0KK2dmeERlc3Ryb3lEZXZpY2VJbnRlcmZhY2VMaXN0DQorZ2Z4RW51bWVyYXRlR2Z4cw0KK2dmeExvZ29mZg0KK2dmeExvZ29uDQorZ2Z4TW9kaWZ5R2Z4DQorZ2Z4T3BlbkdmeA0KK2dmeFJlbW92ZUdmeA0KK2pveUNvbmZpZ0NoYW5nZWQNCitqb3lHZXREZXZDYXBzQQ0KK2pveUdldERldkNhcHNXDQoram95R2V0TnVtRGV2cw0KK2pveUdldFBvcw0KK2pveUdldFBvc0V4DQoram95R2V0VGhyZXNob2xkDQoram95UmVsZWFzZUNhcHR1cmUNCitqb3lTZXRDYXB0dXJlDQoram95U2V0VGhyZXNob2xkDQorbWNpRHJpdmVyTm90aWZ5DQorbWNpRHJpdmVyWWllbGQNCittY2lFeGVjdXRlDQorbWNpRnJlZUNvbW1hbmRSZXNvdXJjZQ0KK21jaUdldENyZWF0b3JUYXNrDQorbWNpR2V0RGV2aWNlSURBDQorbWNpR2V0RGV2aWNlSURGcm9tRWxlbWVudElEQQ0KK21jaUdldERldmljZUlERnJvbUVsZW1lbnRJRFcNCittY2lHZXREZXZpY2VJRFcNCittY2lHZXREcml2ZXJEYXRhDQorbWNpR2V0RXJyb3JTdHJpbmdBDQorbWNpR2V0RXJyb3JTdHJpbmdXDQorbWNpR2V0WWllbGRQcm9jDQorbWNpTG9hZENvbW1hbmRSZXNvdXJjZQ0KK21jaVNlbmRDb21tYW5kQQ0KK21jaVNlbmRDb21tYW5kVw0KK21jaVNlbmRTdHJpbmdBDQorbWNpU2VuZFN0cmluZ1cNCittY2lTZXREcml2ZXJEYXRhDQorbWNpU2V0WWllbGRQcm9jDQorbWlkaUNvbm5lY3QNCittaWRpRGlzY29ubmVjdA0KK21pZGlJbkFkZEJ1ZmZlcg0KK21pZGlJbkNsb3NlDQorbWlkaUluR2V0RGV2Q2Fwc0ENCittaWRpSW5HZXREZXZDYXBzVw0KK21pZGlJbkdldEVycm9yVGV4dEENCittaWRpSW5HZXRFcnJvclRleHRXDQorbWlkaUluR2V0SUQNCittaWRpSW5HZXROdW1EZXZzDQorbWlkaUluTWVzc2FnZQ0KK21pZGlJbk9wZW4NCittaWRpSW5QcmVwYXJlSGVhZGVyDQorbWlkaUluUmVzZXQNCittaWRpSW5TdGFydA0KK21pZGlJblN0b3ANCittaWRpSW5VbnByZXBhcmVIZWFkZXINCittaWRpT3V0Q2FjaGVEcnVtUGF0Y2hlcw0KK21pZGlPdXRDYWNoZVBhdGNoZXMNCittaWRpT3V0Q2xvc2UNCittaWRpT3V0R2V0RGV2Q2Fwc0ENCittaWRpT3V0R2V0RGV2Q2Fwc1cNCittaWRpT3V0R2V0RXJyb3JUZXh0QQ0KK21pZGlPdXRHZXRFcnJvclRleHRXDQorbWlkaU91dEdldElEDQorbWlkaU91dEdldE51bURldnMNCittaWRpT3V0R2V0Vm9sdW1lDQorbWlkaU91dExvbmdNc2cNCittaWRpT3V0TWVzc2FnZQ0KK21pZGlPdXRPcGVuDQorbWlkaU91dFByZXBhcmVIZWFkZXINCittaWRpT3V0UmVzZXQNCittaWRpT3V0U2V0Vm9sdW1lDQorbWlkaU91dFNob3J0TXNnDQorbWlkaU91dFVucHJlcGFyZUhlYWRlcg0KK21pZGlTdHJlYW1DbG9zZQ0KK21pZGlTdHJlYW1PcGVuDQorbWlkaVN0cmVhbU91dA0KK21pZGlTdHJlYW1QYXVzZQ0KK21pZGlTdHJlYW1Qb3NpdGlvbg0KK21pZGlTdHJlYW1Qcm9wZXJ0eQ0KK21pZGlTdHJlYW1SZXN0YXJ0DQorbWlkaVN0cmVhbVN0b3ANCittaXhlckNsb3NlDQorbWl4ZXJHZXRDb250cm9sRGV0YWlsc0ENCittaXhlckdldENvbnRyb2xEZXRhaWxzVw0KK21peGVyR2V0RGV2Q2Fwc0ENCittaXhlckdldERldkNhcHNXDQorbWl4ZXJHZXRJRA0KK21peGVyR2V0TGluZUNvbnRyb2xzQQ0KK21peGVyR2V0TGluZUNvbnRyb2xzVw0KK21peGVyR2V0TGluZUluZm9BDQorbWl4ZXJHZXRMaW5lSW5mb1cNCittaXhlckdldE51bURldnMNCittaXhlck1lc3NhZ2UNCittaXhlck9wZW4NCittaXhlclNldENvbnRyb2xEZXRhaWxzDQorbW1EcnZJbnN0YWxsDQorbW1HZXRDdXJyZW50VGFzaw0KK21tVGFza0Jsb2NrDQorbW1UYXNrQ3JlYXRlDQorbW1UYXNrU2lnbmFsDQorbW1UYXNrWWllbGQNCittbWlvQWR2YW5jZQ0KK21taW9Bc2NlbmQNCittbWlvQ2xvc2UNCittbWlvQ3JlYXRlQ2h1bmsNCittbWlvRGVzY2VuZA0KK21taW9GbHVzaA0KK21taW9HZXRJbmZvDQorbW1pb0luc3RhbGxJT1Byb2NBDQorbW1pb0luc3RhbGxJT1Byb2NXDQorbW1pb09wZW5BDQorbW1pb09wZW5XDQorbW1pb1JlYWQNCittbWlvUmVuYW1lQQ0KK21taW9SZW5hbWVXDQorbW1pb1NlZWsNCittbWlvU2VuZE1lc3NhZ2UNCittbWlvU2V0QnVmZmVyDQorbW1pb1NldEluZm8NCittbWlvU3RyaW5nVG9GT1VSQ0NBDQorbW1pb1N0cmluZ1RvRk9VUkNDVw0KK21taW9Xcml0ZQ0KK21tc3lzdGVtR2V0VmVyc2lvbg0KK3NuZFBsYXlTb3VuZEENCitzbmRQbGF5U291bmRXDQordGltZUJlZ2luUGVyaW9kDQordGltZUVuZFBlcmlvZA0KK3RpbWVHZXREZXZDYXBzDQordGltZUdldFN5c3RlbVRpbWUNCit0aW1lR2V0VGltZQ0KK3RpbWVLaWxsRXZlbnQNCit0aW1lU2V0RXZlbnQNCit3YXZlSW5BZGRCdWZmZXINCit3YXZlSW5DbG9zZQ0KK3dhdmVJbkdldERldkNhcHNBDQord2F2ZUluR2V0RGV2Q2Fwc1cNCit3YXZlSW5HZXRFcnJvclRleHRBDQord2F2ZUluR2V0RXJyb3JUZXh0Vw0KK3dhdmVJbkdldElEDQord2F2ZUluR2V0TnVtRGV2cw0KK3dhdmVJbkdldFBvc2l0aW9uDQord2F2ZUluTWVzc2FnZQ0KK3dhdmVJbk9wZW4NCit3YXZlSW5QcmVwYXJlSGVhZGVyDQord2F2ZUluUmVzZXQNCit3YXZlSW5TdGFydA0KK3dhdmVJblN0b3ANCit3YXZlSW5VbnByZXBhcmVIZWFkZXINCit3YXZlT3V0QnJlYWtMb29wDQord2F2ZU91dENsb3NlDQord2F2ZU91dEdldERldkNhcHNBDQord2F2ZU91dEdldERldkNhcHNXDQord2F2ZU91dEdldEVycm9yVGV4dEENCit3YXZlT3V0R2V0RXJyb3JUZXh0Vw0KK3dhdmVPdXRHZXRJRA0KK3dhdmVPdXRHZXROdW1EZXZzDQord2F2ZU91dEdldFBpdGNoDQord2F2ZU91dEdldFBsYXliYWNrUmF0ZQ0KK3dhdmVPdXRHZXRQb3NpdGlvbg0KK3dhdmVPdXRHZXRWb2x1bWUNCit3YXZlT3V0TWVzc2FnZQ0KK3dhdmVPdXRPcGVuDQord2F2ZU91dFBhdXNlDQord2F2ZU91dFByZXBhcmVIZWFkZXINCit3YXZlT3V0UmVzZXQNCit3YXZlT3V0UmVzdGFydA0KK3dhdmVPdXRTZXRQaXRjaA0KK3dhdmVPdXRTZXRQbGF5YmFja1JhdGUNCit3YXZlT3V0U2V0Vm9sdW1lDQord2F2ZU91dFVucHJlcGFyZUhlYWRlcg0KK3dhdmVPdXRXcml0ZQ0KK3dpbm1tRGJnT3V0DQord2lubW1TZXREZWJ1Z0xldmVsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lubnRiYnUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lubnRiYnUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlhZjc4MGIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aW5udGJidS5kZWYKQEAgLTAsMCArMSwyMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBXSU45NUJCLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXSU45NUJCLmRsbA0KK0VYUE9SVFMNCitCQl9SZWZyZXNoDQorR2V0QkJId25kDQorR2V0QkJNYWluSHduZA0KK0dldFBhbmVsQ291bnQNCitJbml0QmlsbEJvYXJkDQorUHJvZ3Jlc3NHYXVnZU1zZw0KK1NldEluZm9UZXh0DQorU2V0UHJvZ3Jlc3MNCitTZXRQcm9ncmVzc1RleHQNCitTZXRTdGVwDQorU2V0VGltZUVzdGltYXRlDQorU2hvd1Byb2dyZXNzR2F1Z2VXaW5kb3cNCitTdGFydEJpbGxCb2FyZA0KK1N0b3BCaWxsQm9hcmQNCitUZXJtQmlsbEJvYXJkDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lucHV0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpbnB1dC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjVkMGI0YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpbnB1dC5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElOUFVULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJTlBVVC5kbGwNCitFWFBPUlRTDQorQ1BsQXBwbGV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lucm5yLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpbnJuci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGUxMTAzZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpbnJuci5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBXSU5STlIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFdJTlJOUi5kbGwNCitFWFBPUlRTDQorSW5zdGFsbE5URFNQcm92aWRlcg0KK05TUFN0YXJ0dXANCitSZW1vdmVOVERTUHJvdmlkZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aW5zY2FyZC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aW5zY2FyZC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzE5NWM3YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpbnNjYXJkLmRlZgpAQCAtMCwwICsxLDcxIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdpblNDYXJkLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXaW5TQ2FyZC5kbGwNCitFWFBPUlRTDQorQ2xhc3NJbnN0YWxsMzINCitTQ2FyZEFjY2Vzc05ld1JlYWRlckV2ZW50DQorU0NhcmRSZWxlYXNlQWxsRXZlbnRzDQorU0NhcmRSZWxlYXNlTmV3UmVhZGVyRXZlbnQNCitTQ2FyZEFjY2Vzc1N0YXJ0ZWRFdmVudA0KK1NDYXJkQWRkUmVhZGVyVG9Hcm91cEENCitTQ2FyZEFkZFJlYWRlclRvR3JvdXBXDQorU0NhcmRCZWdpblRyYW5zYWN0aW9uDQorU0NhcmRDYW5jZWwNCitTQ2FyZENvbm5lY3RBDQorU0NhcmRDb25uZWN0Vw0KK1NDYXJkQ29udHJvbA0KK1NDYXJkRGlzY29ubmVjdA0KK1NDYXJkRW5kVHJhbnNhY3Rpb24NCitTQ2FyZEVzdGFibGlzaENvbnRleHQNCitTQ2FyZEZvcmdldENhcmRUeXBlQQ0KK1NDYXJkRm9yZ2V0Q2FyZFR5cGVXDQorU0NhcmRGb3JnZXRSZWFkZXJBDQorU0NhcmRGb3JnZXRSZWFkZXJHcm91cEENCitTQ2FyZEZvcmdldFJlYWRlckdyb3VwVw0KK1NDYXJkRm9yZ2V0UmVhZGVyVw0KK1NDYXJkRnJlZU1lbW9yeQ0KK1NDYXJkR2V0QXR0cmliDQorU0NhcmRHZXRDYXJkVHlwZVByb3ZpZGVyTmFtZUENCitTQ2FyZEdldENhcmRUeXBlUHJvdmlkZXJOYW1lVw0KK1NDYXJkR2V0UHJvdmlkZXJJZEENCitTQ2FyZEdldFByb3ZpZGVySWRXDQorU0NhcmRHZXRTdGF0dXNDaGFuZ2VBDQorU0NhcmRHZXRTdGF0dXNDaGFuZ2VXDQorU0NhcmRJbnRyb2R1Y2VDYXJkVHlwZUENCitTQ2FyZEludHJvZHVjZUNhcmRUeXBlVw0KK1NDYXJkSW50cm9kdWNlUmVhZGVyQQ0KK1NDYXJkSW50cm9kdWNlUmVhZGVyR3JvdXBBDQorU0NhcmRJbnRyb2R1Y2VSZWFkZXJHcm91cFcNCitTQ2FyZEludHJvZHVjZVJlYWRlclcNCitTQ2FyZElzVmFsaWRDb250ZXh0DQorU0NhcmRMaXN0Q2FyZHNBDQorU0NhcmRMaXN0Q2FyZHNXDQorU0NhcmRMaXN0SW50ZXJmYWNlc0ENCitTQ2FyZExpc3RJbnRlcmZhY2VzVw0KK1NDYXJkTGlzdFJlYWRlckdyb3Vwc0ENCitTQ2FyZExpc3RSZWFkZXJHcm91cHNXDQorU0NhcmRMaXN0UmVhZGVyc0ENCitTQ2FyZExpc3RSZWFkZXJzVw0KK1NDYXJkTG9jYXRlQ2FyZHNBDQorU0NhcmRMb2NhdGVDYXJkc0J5QVRSQQ0KK1NDYXJkTG9jYXRlQ2FyZHNCeUFUUlcNCitTQ2FyZExvY2F0ZUNhcmRzVw0KK1NDYXJkUmVjb25uZWN0DQorU0NhcmRSZWxlYXNlQ29udGV4dA0KK1NDYXJkUmVsZWFzZVN0YXJ0ZWRFdmVudA0KK1NDYXJkUmVtb3ZlUmVhZGVyRnJvbUdyb3VwQQ0KK1NDYXJkUmVtb3ZlUmVhZGVyRnJvbUdyb3VwVw0KK1NDYXJkU2V0QXR0cmliDQorU0NhcmRTZXRDYXJkVHlwZVByb3ZpZGVyTmFtZUENCitTQ2FyZFNldENhcmRUeXBlUHJvdmlkZXJOYW1lVw0KK1NDYXJkU3RhdGUNCitTQ2FyZFN0YXR1c0ENCitTQ2FyZFN0YXR1c1cNCitTQ2FyZFRyYW5zbWl0DQorZ19yZ1NDYXJkUmF3UGNpDQorZ19yZ1NDYXJkVDBQY2kNCitnX3JnU0NhcmRUMVBjaQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpbnNlbmcuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2luc2VuZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTlhN2E4YgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpbnNlbmcuZGVmCkBAIC0wLDAgKzEsMjAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaW5zZW5nLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpbnNlbmcuZGxsDQorRVhQT1JUUw0KK0NoZWNrRm9yVmVyc2lvbkNvbmZsaWN0DQorQ2hlY2tUcnVzdA0KK0NoZWNrVHJ1c3RFeA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0Rvd25sb2FkRmlsZQ0KK0dldElDaWZGaWxlRnJvbUZpbGUNCitHZXRJQ2lmUldGaWxlRnJvbUZpbGUNCitQdXJnZURvd25sb2FkRGlyZWN0b3J5DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2luc3Bvb2wuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2luc3Bvb2wuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRhZDk4MGIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aW5zcG9vbC5kZWYKQEAgLTAsMCArMSwxNzcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgV0lOU1BPT0wuRFJWDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFdJTlNQT09MLkRSVg0KK0VYUE9SVFMNCitQZXJmQ2xvc2UNCitQZXJmQ29sbGVjdA0KK1BlcmZPcGVuDQorQURWQU5DRURTRVRVUERJQUxPRw0KK0Fib3J0UHJpbnRlcg0KK0FkZEZvcm1BDQorQWRkRm9ybVcNCitBZGRKb2JBDQorQWRkSm9iVw0KK0FkZE1vbml0b3JBDQorQWRkTW9uaXRvclcNCitBZGRQb3J0QQ0KK0FkZFBvcnRFeEENCitBZGRQb3J0RXhXDQorQWRkUG9ydFcNCitBZGRQcmludFByb2Nlc3NvckENCitBZGRQcmludFByb2Nlc3NvclcNCitBZGRQcmludFByb3ZpZG9yQQ0KK0FkZFByaW50UHJvdmlkb3JXDQorQWRkUHJpbnRlckENCitBZGRQcmludGVyQ29ubmVjdGlvbkENCitBZGRQcmludGVyQ29ubmVjdGlvblcNCitBZGRQcmludGVyRHJpdmVyQQ0KK0FkZFByaW50ZXJEcml2ZXJFeEENCitBZGRQcmludGVyRHJpdmVyRXhXDQorQWRkUHJpbnRlckRyaXZlclcNCitBZGRQcmludGVyVw0KK0FkdmFuY2VkRG9jdW1lbnRQcm9wZXJ0aWVzQQ0KK0FkdmFuY2VkRG9jdW1lbnRQcm9wZXJ0aWVzVw0KK0FkdmFuY2VkU2V0dXBEaWFsb2cNCitDbG9zZVByaW50ZXINCitDbG9zZVNwb29sRmlsZUhhbmRsZQ0KK0NvbW1pdFNwb29sRGF0YQ0KK0NvbmZpZ3VyZVBvcnRBDQorQ29uZmlndXJlUG9ydFcNCitDb25uZWN0VG9QcmludGVyRGxnDQorQ29udmVydEFuc2lEZXZNb2RlVG9Vbmljb2RlRGV2bW9kZQ0KK0NvbnZlcnRVbmljb2RlRGV2TW9kZVRvQW5zaURldm1vZGUNCitDcmVhdGVQcmludGVySUMNCitERVZJQ0VDQVBBQklMSVRJRVMNCitERVZJQ0VNT0RFDQorRGVsZXRlRm9ybUENCitEZWxldGVGb3JtVw0KK0RlbGV0ZU1vbml0b3JBDQorRGVsZXRlTW9uaXRvclcNCitEZWxldGVQb3J0QQ0KK0RlbGV0ZVBvcnRXDQorRGVsZXRlUHJpbnRQcm9jZXNzb3JBDQorRGVsZXRlUHJpbnRQcm9jZXNzb3JXDQorRGVsZXRlUHJpbnRQcm92aWRvckENCitEZWxldGVQcmludFByb3ZpZG9yVw0KK0RlbGV0ZVByaW50ZXINCitEZWxldGVQcmludGVyQ29ubmVjdGlvbkENCitEZWxldGVQcmludGVyQ29ubmVjdGlvblcNCitEZWxldGVQcmludGVyRGF0YUENCitEZWxldGVQcmludGVyRGF0YUV4QQ0KK0RlbGV0ZVByaW50ZXJEYXRhRXhXDQorRGVsZXRlUHJpbnRlckRhdGFXDQorRGVsZXRlUHJpbnRlckRyaXZlckENCitEZWxldGVQcmludGVyRHJpdmVyRXhBDQorRGVsZXRlUHJpbnRlckRyaXZlckV4Vw0KK0RlbGV0ZVByaW50ZXJEcml2ZXJXDQorRGVsZXRlUHJpbnRlcklDDQorRGVsZXRlUHJpbnRlcktleUENCitEZWxldGVQcmludGVyS2V5Vw0KK0RldlF1ZXJ5UHJpbnQNCitEZXZRdWVyeVByaW50RXgNCitEZXZpY2VDYXBhYmlsaXRpZXMNCitEZXZpY2VDYXBhYmlsaXRpZXNBDQorRGV2aWNlQ2FwYWJpbGl0aWVzVw0KK0RldmljZU1vZGUNCitEZXZpY2VQcm9wZXJ0eVNoZWV0cw0KK0RvY3VtZW50RXZlbnQNCitEb2N1bWVudFByb3BlcnRpZXNBDQorRG9jdW1lbnRQcm9wZXJ0aWVzVw0KK0RvY3VtZW50UHJvcGVydHlTaGVldHMNCitFWFRERVZJQ0VNT0RFDQorRW5kRG9jUHJpbnRlcg0KK0VuZFBhZ2VQcmludGVyDQorRW51bUZvcm1zQQ0KK0VudW1Gb3Jtc1cNCitFbnVtSm9ic0ENCitFbnVtSm9ic1cNCitFbnVtTW9uaXRvcnNBDQorRW51bU1vbml0b3JzVw0KK0VudW1Qb3J0c0ENCitFbnVtUG9ydHNXDQorRW51bVByaW50UHJvY2Vzc29yRGF0YXR5cGVzQQ0KK0VudW1QcmludFByb2Nlc3NvckRhdGF0eXBlc1cNCitFbnVtUHJpbnRQcm9jZXNzb3JzQQ0KK0VudW1QcmludFByb2Nlc3NvcnNXDQorRW51bVByaW50ZXJEYXRhQQ0KK0VudW1QcmludGVyRGF0YUV4QQ0KK0VudW1QcmludGVyRGF0YUV4Vw0KK0VudW1QcmludGVyRGF0YVcNCitFbnVtUHJpbnRlckRyaXZlcnNBDQorRW51bVByaW50ZXJEcml2ZXJzVw0KK0dldERlZmF1bHRQcmludGVyQQ0KK1NldERlZmF1bHRQcmludGVyQQ0KK0dldERlZmF1bHRQcmludGVyVw0KK1NldERlZmF1bHRQcmludGVyVw0KK0VudW1QcmludGVyS2V5QQ0KK0VudW1QcmludGVyS2V5Vw0KK0VudW1QcmludGVyc0ENCitFbnVtUHJpbnRlcnNXDQorRXh0RGV2aWNlTW9kZQ0KK0ZpbmRDbG9zZVByaW50ZXJDaGFuZ2VOb3RpZmljYXRpb24NCitGaW5kRmlyc3RQcmludGVyQ2hhbmdlTm90aWZpY2F0aW9uDQorRmluZE5leHRQcmludGVyQ2hhbmdlTm90aWZpY2F0aW9uDQorRmx1c2hQcmludGVyDQorRnJlZVByaW50ZXJOb3RpZnlJbmZvDQorR2V0Rm9ybUENCitHZXRGb3JtVw0KK0dldEpvYkENCitHZXRKb2JXDQorR2V0UHJpbnRQcm9jZXNzb3JEaXJlY3RvcnlBDQorR2V0UHJpbnRQcm9jZXNzb3JEaXJlY3RvcnlXDQorR2V0UHJpbnRlckENCitHZXRQcmludGVyRGF0YUENCitHZXRQcmludGVyRGF0YUV4QQ0KK0dldFByaW50ZXJEYXRhRXhXDQorR2V0UHJpbnRlckRhdGFXDQorR2V0UHJpbnRlckRyaXZlckENCitHZXRQcmludGVyRHJpdmVyRGlyZWN0b3J5QQ0KK0dldFByaW50ZXJEcml2ZXJEaXJlY3RvcnlXDQorR2V0UHJpbnRlckRyaXZlclcNCitHZXRQcmludGVyVw0KK0dldFNwb29sRmlsZUhhbmRsZQ0KK0lzVmFsaWREZXZtb2RlQQ0KK0lzVmFsaWREZXZtb2RlVw0KK09wZW5QcmludGVyQQ0KK09wZW5QcmludGVyVw0KK1BsYXlHZGlTY3JpcHRPblByaW50ZXJJQw0KK1ByaW50ZXJNZXNzYWdlQm94QQ0KK1ByaW50ZXJNZXNzYWdlQm94Vw0KK1ByaW50ZXJQcm9wZXJ0aWVzDQorUXVlcnlDb2xvclByb2ZpbGUNCitRdWVyeVJlbW90ZUZvbnRzDQorUXVlcnlTcG9vbE1vZGUNCitSZWFkUHJpbnRlcg0KK1Jlc2V0UHJpbnRlckENCitSZXNldFByaW50ZXJXDQorU2NoZWR1bGVKb2INCitTZWVrUHJpbnRlcg0KK1NldEFsbG9jRmFpbENvdW50DQorU2V0Rm9ybUENCitTZXRGb3JtVw0KK1NldEpvYkENCitTZXRKb2JXDQorU2V0UG9ydEENCitTZXRQb3J0Vw0KK1NldFByaW50ZXJBDQorU2V0UHJpbnRlckRhdGFBDQorU2V0UHJpbnRlckRhdGFFeEENCitTZXRQcmludGVyRGF0YUV4Vw0KK1NldFByaW50ZXJEYXRhVw0KK1NldFByaW50ZXJXDQorU3BsRHJpdmVyVW5sb2FkQ29tcGxldGUNCitTcG9vbGVyRGV2UXVlcnlQcmludFcNCitTcG9vbGVySW5pdA0KK1Nwb29sZXJQcmludGVyRXZlbnQNCitTdGFydERvY0RsZ0ENCitTdGFydERvY0RsZ1cNCitTdGFydERvY1ByaW50ZXJBDQorU3RhcnREb2NQcmludGVyVw0KK1N0YXJ0UGFnZVByaW50ZXINCitXYWl0Rm9yUHJpbnRlckNoYW5nZQ0KK1dyaXRlUHJpbnRlcg0KK1hjdkRhdGFXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2luc3J2LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpbnNydi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjNhM2E2ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpbnNydi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB3aW5zcnYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHdpbnNydi5kbGwNCitFWFBPUlRTDQorQ29uU2VydmVyRGxsSW5pdGlhbGl6YXRpb24NCitVc2VyU2VydmVyRGxsSW5pdGlhbGl6YXRpb24NCitfVXNlclNvdW5kU2VudHJ5DQorX1VzZXJUZXN0VG9rZW5Gb3JJbnRlcmFjdGl2ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpbnN0YS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aW5zdGEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJjZWI1N2UKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aW5zdGEuZGVmCkBAIC0wLDAgKzEsMTExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdJTlNUQS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgV0lOU1RBLmRsbA0KK0VYUE9SVFMNCitMb2dvbklkRnJvbVdpblN0YXRpb25OYW1lQQ0KK0xvZ29uSWRGcm9tV2luU3RhdGlvbk5hbWVXDQorUmVtb3RlQXNzaXN0YW5jZVByZXBhcmVTeXN0ZW1SZXN0b3JlDQorU2VydmVyR2V0SW50ZXJuZXRDb25uZWN0b3JTdGF0dXMNCitTZXJ2ZXJMaWNlbnNpbmdDbG9zZQ0KK1NlcnZlckxpY2Vuc2luZ0RlYWN0aXZhdGVDdXJyZW50UG9saWN5DQorU2VydmVyTGljZW5zaW5nRnJlZVBvbGljeUluZm9ybWF0aW9uDQorU2VydmVyTGljZW5zaW5nR2V0QXZhaWxhYmxlUG9saWN5SWRzDQorU2VydmVyTGljZW5zaW5nR2V0UG9saWN5DQorU2VydmVyTGljZW5zaW5nR2V0UG9saWN5SW5mb3JtYXRpb25BDQorU2VydmVyTGljZW5zaW5nR2V0UG9saWN5SW5mb3JtYXRpb25XDQorU2VydmVyTGljZW5zaW5nTG9hZFBvbGljeQ0KK1NlcnZlckxpY2Vuc2luZ09wZW5BDQorU2VydmVyTGljZW5zaW5nT3BlblcNCitTZXJ2ZXJMaWNlbnNpbmdTZXRQb2xpY3kNCitTZXJ2ZXJMaWNlbnNpbmdVbmxvYWRQb2xpY3kNCitTZXJ2ZXJRdWVyeUluZXRDb25uZWN0b3JJbmZvcm1hdGlvbkENCitTZXJ2ZXJRdWVyeUluZXRDb25uZWN0b3JJbmZvcm1hdGlvblcNCitTZXJ2ZXJTZXRJbnRlcm5ldENvbm5lY3RvclN0YXR1cw0KK1dpblN0YXRpb25BY3RpdmF0ZUxpY2Vuc2UNCitXaW5TdGF0aW9uQXV0b1JlY29ubmVjdA0KK1dpblN0YXRpb25Ccm9hZGNhc3RTeXN0ZW1NZXNzYWdlDQorV2luU3RhdGlvbkNhbkxvZ29uUHJvY2VlZA0KK1dpblN0YXRpb25DaGVja0FjY2Vzcw0KK1dpblN0YXRpb25DaGVja0xvb3BCYWNrDQorV2luU3RhdGlvbkNsb3NlU2VydmVyDQorV2luU3RhdGlvbkNvbm5lY3RBDQorV2luU3RhdGlvbkNvbm5lY3RDYWxsYmFjaw0KK1dpblN0YXRpb25Db25uZWN0Vw0KK1dpblN0YXRpb25EaXNjb25uZWN0DQorV2luU3RhdGlvbkVudW1lcmF0ZUENCitXaW5TdGF0aW9uRW51bWVyYXRlTGljZW5zZXMNCitXaW5TdGF0aW9uRW51bWVyYXRlUHJvY2Vzc2VzDQorV2luU3RhdGlvbkVudW1lcmF0ZVcNCitXaW5TdGF0aW9uRW51bWVyYXRlX0luZGV4ZWRBDQorV2luU3RhdGlvbkVudW1lcmF0ZV9JbmRleGVkVw0KK1dpblN0YXRpb25GcmVlR0FQTWVtb3J5DQorV2luU3RhdGlvbkZyZWVNZW1vcnkNCitXaW5TdGF0aW9uR2VuZXJhdGVMaWNlbnNlDQorV2luU3RhdGlvbkdldEFsbFByb2Nlc3Nlcw0KK1dpblN0YXRpb25HZXRMYW5BZGFwdGVyTmFtZUENCitXaW5TdGF0aW9uR2V0TGFuQWRhcHRlck5hbWVXDQorV2luU3RhdGlvbkdldE1hY2hpbmVQb2xpY3kNCitXaW5TdGF0aW9uR2V0UHJvY2Vzc1NpZA0KK1dpblN0YXRpb25HZXRUZXJtU3J2Q291bnRlcnNWYWx1ZQ0KK1dpblN0YXRpb25JbnN0YWxsTGljZW5zZQ0KK1dpblN0YXRpb25Jc0hlbHBBc3Npc3RhbnRTZXNzaW9uDQorV2luU3RhdGlvbk5hbWVGcm9tTG9nb25JZEENCitXaW5TdGF0aW9uTmFtZUZyb21Mb2dvbklkVw0KK1dpblN0YXRpb25OdHNkRGVidWcNCitXaW5TdGF0aW9uT3BlblNlcnZlckENCitXaW5TdGF0aW9uT3BlblNlcnZlclcNCitXaW5TdGF0aW9uUXVlcnlJbmZvcm1hdGlvbkENCitXaW5TdGF0aW9uUXVlcnlJbmZvcm1hdGlvblcNCitXaW5TdGF0aW9uUXVlcnlMaWNlbnNlDQorV2luU3RhdGlvblF1ZXJ5TG9nb25DcmVkZW50aWFsc1cNCitXaW5TdGF0aW9uUXVlcnlVcGRhdGVSZXF1aXJlZA0KK1dpblN0YXRpb25SZWRpcmVjdEVycm9yTWVzc2FnZQ0KK1dpblN0YXRpb25SZWdpc3RlckNvbnNvbGVOb3RpZmljYXRpb24NCitXaW5TdGF0aW9uUmVnaXN0ZXJDb25zb2xlTm90aWZpY2F0aW9uRXgNCitXaW5TdGF0aW9uUmVnaXN0ZXJOb3RpZmljYXRpb25FdmVudA0KK1dpblN0YXRpb25SZW1vdmVMaWNlbnNlDQorV2luU3RhdGlvblJlbmFtZUENCitXaW5TdGF0aW9uUmVuYW1lVw0KK1dpblN0YXRpb25SZXNldA0KK1dpblN0YXRpb25TZW5kTWVzc2FnZUENCitXaW5TdGF0aW9uU2VuZE1lc3NhZ2VXDQorV2luU3RhdGlvblNlbmRXaW5kb3dNZXNzYWdlDQorV2luU3RhdGlvblNlcnZlclBpbmcNCitXaW5TdGF0aW9uU2V0SW5mb3JtYXRpb25BDQorV2luU3RhdGlvblNldEluZm9ybWF0aW9uVw0KK1dpblN0YXRpb25TZXRQb29sQ291bnQNCitXaW5TdGF0aW9uU2hhZG93DQorV2luU3RhdGlvblNoYWRvd1N0b3ANCitXaW5TdGF0aW9uU2h1dGRvd25TeXN0ZW0NCitXaW5TdGF0aW9uVGVybWluYXRlUHJvY2Vzcw0KK1dpblN0YXRpb25VblJlZ2lzdGVyQ29uc29sZU5vdGlmaWNhdGlvbg0KK1dpblN0YXRpb25VblJlZ2lzdGVyTm90aWZpY2F0aW9uRXZlbnQNCitXaW5TdGF0aW9uVmlydHVhbE9wZW4NCitXaW5TdGF0aW9uV2FpdFN5c3RlbUV2ZW50DQorX05XTG9nb25RdWVyeUFkbWluDQorX05XTG9nb25TZXRBZG1pbg0KK19XaW5TdGF0aW9uQW5ub3lhbmNlUG9wdXANCitfV2luU3RhdGlvbkJlZXBPcGVuDQorX1dpblN0YXRpb25CcmVha1BvaW50DQorX1dpblN0YXRpb25DYWxsYmFjaw0KK19XaW5TdGF0aW9uQ2hlY2tGb3JBcHBsaWNhdGlvbk5hbWUNCitfV2luU3RhdGlvbkZVU0NhblJlbW90ZVVzZXJEaXNjb25uZWN0DQorX1dpblN0YXRpb25HZXRBcHBsaWNhdGlvbkluZm8NCitfV2luU3RhdGlvbk5vdGlmeURpc2Nvbm5lY3RQaXBlDQorX1dpblN0YXRpb25Ob3RpZnlMb2dvZmYNCitfV2luU3RhdGlvbk5vdGlmeUxvZ29uDQorX1dpblN0YXRpb25Ob3RpZnlOZXdTZXNzaW9uDQorX1dpblN0YXRpb25PcGVuU2Vzc2lvbkRpcmVjdG9yeQ0KK19XaW5TdGF0aW9uUmVJbml0aWFsaXplU2VjdXJpdHkNCitfV2luU3RhdGlvblJlYWRSZWdpc3RyeQ0KK19XaW5TdGF0aW9uU2Vzc2lvbkluaXRpYWxpemVkDQorX1dpblN0YXRpb25TaGFkb3dUYXJnZXQNCitfV2luU3RhdGlvblNoYWRvd1RhcmdldFNldHVwDQorX1dpblN0YXRpb25VcGRhdGVDbGllbnRDYWNoZWRDcmVkZW50aWFscw0KK19XaW5TdGF0aW9uVXBkYXRlU2V0dGluZ3MNCitfV2luU3RhdGlvblVwZGF0ZVVzZXJDb25maWcNCitfV2luU3RhdGlvbldhaXRGb3JDb25uZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2ludHJ1c3QuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2ludHJ1c3QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE3YjA3ODcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aW50cnVzdC5kZWYKQEAgLTAsMCArMSwxMzYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgV0lOVFJVU1QuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFdJTlRSVVNULmRsbA0KK0VYUE9SVFMNCitDcnlwdENBVFZlcmlmeU1lbWJlcg0KK0NyeXB0U0lQR2V0SW5mbw0KK0NyeXB0U0lQR2V0UmVnV29ya2luZ0ZsYWdzDQorR2VuZXJpY0NoYWluQ2VydGlmaWNhdGVUcnVzdA0KK0dlbmVyaWNDaGFpbkZpbmFsUHJvdg0KK0hUVFBTQ2VydGlmaWNhdGVUcnVzdA0KK1NvZnRwdWJEZWZDZXJ0SW5pdA0KK1NvZnRwdWJGcmVlRGVmVXNhZ2VDYWxsRGF0YQ0KK1NvZnRwdWJMb2FkRGVmVXNhZ2VDYWxsRGF0YQ0KK1dUSGVscGVyQ2VydEZpbmRJc3N1ZXJDZXJ0aWZpY2F0ZQ0KK0FkZFBlcnNvbmFsVHJ1c3REQlBhZ2VzDQorQ2F0YWxvZ0NvbXBhY3RIYXNoRGF0YWJhc2UNCitDcnlwdENBVEFkbWluQWNxdWlyZUNvbnRleHQNCitDcnlwdENBVEFkbWluQWRkQ2F0YWxvZw0KK0NyeXB0Q0FUQWRtaW5DYWxjSGFzaEZyb21GaWxlSGFuZGxlDQorQ3J5cHRDQVRBZG1pbkVudW1DYXRhbG9nRnJvbUhhc2gNCitDcnlwdENBVEFkbWluUGF1c2VTZXJ2aWNlRm9yQmFja3VwDQorQ3J5cHRDQVRBZG1pblJlbGVhc2VDYXRhbG9nQ29udGV4dA0KK0NyeXB0Q0FUQWRtaW5SZWxlYXNlQ29udGV4dA0KK0NyeXB0Q0FUQWRtaW5SZW1vdmVDYXRhbG9nDQorQ3J5cHRDQVRBZG1pblJlc29sdmVDYXRhbG9nUGF0aA0KK0NyeXB0Q0FUQ0RGQ2xvc2UNCitDcnlwdENBVENERkVudW1BdHRyaWJ1dGVzDQorQ3J5cHRDQVRDREZFbnVtQXR0cmlidXRlc1dpdGhDREZUYWcNCitDcnlwdENBVENERkVudW1DYXRBdHRyaWJ1dGVzDQorQ3J5cHRDQVRDREZFbnVtTWVtYmVycw0KK0NyeXB0Q0FUQ0RGRW51bU1lbWJlcnNCeUNERlRhZw0KK0NyeXB0Q0FUQ0RGRW51bU1lbWJlcnNCeUNERlRhZ0V4DQorQ3J5cHRDQVRDREZPcGVuDQorQ3J5cHRDQVRDYXRhbG9nSW5mb0Zyb21Db250ZXh0DQorQ3J5cHRDQVRDbG9zZQ0KK0NyeXB0Q0FURW51bWVyYXRlQXR0cg0KK0NyeXB0Q0FURW51bWVyYXRlQ2F0QXR0cg0KK0NyeXB0Q0FURW51bWVyYXRlTWVtYmVyDQorQ3J5cHRDQVRHZXRBdHRySW5mbw0KK0NyeXB0Q0FUR2V0Q2F0QXR0ckluZm8NCitDcnlwdENBVEdldE1lbWJlckluZm8NCitDcnlwdENBVEhhbmRsZUZyb21TdG9yZQ0KK0NyeXB0Q0FUT3Blbg0KK0NyeXB0Q0FUUGVyc2lzdFN0b3JlDQorQ3J5cHRDQVRQdXRBdHRySW5mbw0KK0NyeXB0Q0FUUHV0Q2F0QXR0ckluZm8NCitDcnlwdENBVFB1dE1lbWJlckluZm8NCitDcnlwdENBVFN0b3JlRnJvbUhhbmRsZQ0KK0NyeXB0U0lQQ3JlYXRlSW5kaXJlY3REYXRhDQorQ3J5cHRTSVBHZXRTaWduZWREYXRhTXNnDQorQ3J5cHRTSVBQdXRTaWduZWREYXRhTXNnDQorQ3J5cHRTSVBSZW1vdmVTaWduZWREYXRhTXNnDQorQ3J5cHRTSVBWZXJpZnlJbmRpcmVjdERhdGENCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitEcml2ZXJDbGVhbnVwUG9saWN5DQorRHJpdmVyRmluYWxQb2xpY3kNCitEcml2ZXJJbml0aWFsaXplUG9saWN5DQorRmluZENlcnRzQnlJc3N1ZXINCitIVFRQU0ZpbmFsUHJvdg0KK0lfQ3J5cHRDYXRBZG1pbk1pZ3JhdGVUb05ld0NhdERCDQorSXNDYXRhbG9nRmlsZQ0KK01zQ2F0Q29uc3RydWN0SGFzaFRhZw0KK01zQ2F0RnJlZUhhc2hUYWcNCitPZmZpY2VDbGVhbnVwUG9saWN5DQorT2ZmaWNlSW5pdGlhbGl6ZVBvbGljeQ0KK09wZW5QZXJzb25hbFRydXN0REJEaWFsb2cNCitPcGVuUGVyc29uYWxUcnVzdERCRGlhbG9nRXgNCitTb2Z0cHViQXV0aGVudGljb2RlDQorU29mdHB1YkNoZWNrQ2VydA0KK1NvZnRwdWJDbGVhbnVwDQorU29mdHB1YkRsbFJlZ2lzdGVyU2VydmVyDQorU29mdHB1YkRsbFVucmVnaXN0ZXJTZXJ2ZXINCitTb2Z0cHViRHVtcFN0cnVjdHVyZQ0KK1NvZnRwdWJJbml0aWFsaXplDQorU29mdHB1YkxvYWRNZXNzYWdlDQorU29mdHB1YkxvYWRTaWduYXR1cmUNCitUcnVzdERlY29kZQ0KK1RydXN0RmluZElzc3VlckNlcnRpZmljYXRlDQorVHJ1c3RGcmVlRGVjb2RlDQorVHJ1c3RJc0NlcnRpZmljYXRlU2VsZlNpZ25lZA0KK1RydXN0T3BlblN0b3Jlcw0KK1dUSGVscGVyQ2VydENoZWNrVmFsaWRTaWduYXR1cmUNCitXVEhlbHBlckNlcnRJc1NlbGZTaWduZWQNCitXVEhlbHBlckNoZWNrQ2VydFVzYWdlDQorV1RIZWxwZXJHZXRBZ2VuY3lJbmZvDQorV1RIZWxwZXJHZXRGaWxlSGFuZGxlDQorV1RIZWxwZXJHZXRGaWxlSGFzaA0KK1dUSGVscGVyR2V0RmlsZU5hbWUNCitXVEhlbHBlckdldEtub3duVXNhZ2VzDQorV1RIZWxwZXJHZXRQcm92Q2VydEZyb21DaGFpbg0KK1dUSGVscGVyR2V0UHJvdlByaXZhdGVEYXRhRnJvbUNoYWluDQorV1RIZWxwZXJHZXRQcm92U2lnbmVyRnJvbUNoYWluDQorV1RIZWxwZXJJc0luUm9vdFN0b3JlDQorV1RIZWxwZXJPcGVuS25vd25TdG9yZXMNCitXVEhlbHBlclByb3ZEYXRhRnJvbVN0YXRlRGF0YQ0KK1dWVEFzbjFDYXRNZW1iZXJJbmZvRGVjb2RlDQorV1ZUQXNuMUNhdE1lbWJlckluZm9FbmNvZGUNCitXVlRBc24xQ2F0TmFtZVZhbHVlRGVjb2RlDQorV1ZUQXNuMUNhdE5hbWVWYWx1ZUVuY29kZQ0KK1dWVEFzbjFTcGNGaW5hbmNpYWxDcml0ZXJpYUluZm9EZWNvZGUNCitXVlRBc24xU3BjRmluYW5jaWFsQ3JpdGVyaWFJbmZvRW5jb2RlDQorV1ZUQXNuMVNwY0luZGlyZWN0RGF0YUNvbnRlbnREZWNvZGUNCitXVlRBc24xU3BjSW5kaXJlY3REYXRhQ29udGVudEVuY29kZQ0KK1dWVEFzbjFTcGNMaW5rRGVjb2RlDQorV1ZUQXNuMVNwY0xpbmtFbmNvZGUNCitXVlRBc24xU3BjTWluaW1hbENyaXRlcmlhSW5mb0RlY29kZQ0KK1dWVEFzbjFTcGNNaW5pbWFsQ3JpdGVyaWFJbmZvRW5jb2RlDQorV1ZUQXNuMVNwY1BlSW1hZ2VEYXRhRGVjb2RlDQorV1ZUQXNuMVNwY1BlSW1hZ2VEYXRhRW5jb2RlDQorV1ZUQXNuMVNwY1NpZ0luZm9EZWNvZGUNCitXVlRBc24xU3BjU2lnSW5mb0VuY29kZQ0KK1dWVEFzbjFTcGNTcEFnZW5jeUluZm9EZWNvZGUNCitXVlRBc24xU3BjU3BBZ2VuY3lJbmZvRW5jb2RlDQorV1ZUQXNuMVNwY1NwT3B1c0luZm9EZWNvZGUNCitXVlRBc24xU3BjU3BPcHVzSW5mb0VuY29kZQ0KK1dWVEFzbjFTcGNTdGF0ZW1lbnRUeXBlRGVjb2RlDQorV1ZUQXNuMVNwY1N0YXRlbWVudFR5cGVFbmNvZGUNCitXaW5WZXJpZnlUcnVzdA0KK1dpblZlcmlmeVRydXN0RXgNCitXaW50cnVzdEFkZEFjdGlvbklEDQorV2ludHJ1c3RBZGREZWZhdWx0Rm9yVXNhZ2UNCitXaW50cnVzdENlcnRpZmljYXRlVHJ1c3QNCitXaW50cnVzdEdldERlZmF1bHRGb3JVc2FnZQ0KK1dpbnRydXN0R2V0UmVnUG9saWN5RmxhZ3MNCitXaW50cnVzdExvYWRGdW5jdGlvblBvaW50ZXJzDQorV2ludHJ1c3RSZW1vdmVBY3Rpb25JRA0KK1dpbnRydXN0U2V0UmVnUG9saWN5RmxhZ3MNCittc2NhdDMyRGxsUmVnaXN0ZXJTZXJ2ZXINCittc2NhdDMyRGxsVW5yZWdpc3RlclNlcnZlcg0KK21zc2lwMzJEbGxSZWdpc3RlclNlcnZlcg0KK21zc2lwMzJEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lwaGxwYXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpcGhscGFwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTBkOTIxNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpcGhscGFwaS5kZWYKQEAgLTAsMCArMSwxNjUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaXBobHBhcGkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlwaGxwYXBpLmRsbA0KK0VYUE9SVFMNCitBZGRJUEFkZHJlc3MNCitBbGxvY2F0ZUFuZEdldEFycEVudFRhYmxlRnJvbVN0YWNrDQorQWxsb2NhdGVBbmRHZXRJZlRhYmxlRnJvbVN0YWNrDQorQWxsb2NhdGVBbmRHZXRJcEFkZHJUYWJsZUZyb21TdGFjaw0KK0FsbG9jYXRlQW5kR2V0SXBGb3J3YXJkVGFibGVGcm9tU3RhY2sNCitBbGxvY2F0ZUFuZEdldElwTmV0VGFibGVGcm9tU3RhY2sNCitBbGxvY2F0ZUFuZEdldFRjcEV4VGFibGUyRnJvbVN0YWNrDQorQWxsb2NhdGVBbmRHZXRUY3BFeFRhYmxlRnJvbVN0YWNrDQorQWxsb2NhdGVBbmRHZXRUY3BUYWJsZUZyb21TdGFjaw0KK0FsbG9jYXRlQW5kR2V0VWRwRXhUYWJsZTJGcm9tU3RhY2sNCitBbGxvY2F0ZUFuZEdldFVkcEV4VGFibGVGcm9tU3RhY2sNCitBbGxvY2F0ZUFuZEdldFVkcFRhYmxlRnJvbVN0YWNrDQorQ2FuY2VsSVBDaGFuZ2VOb3RpZnkNCitDYW5jZWxTZWN1cml0eUhlYWx0aENoYW5nZU5vdGlmeQ0KK0NyZWF0ZUlwRm9yd2FyZEVudHJ5DQorQ3JlYXRlSXBOZXRFbnRyeQ0KK0NyZWF0ZVByb3h5QXJwRW50cnkNCitEZWxldGVJUEFkZHJlc3MNCitEZWxldGVJcEZvcndhcmRFbnRyeQ0KK0RlbGV0ZUlwTmV0RW50cnkNCitEZWxldGVQcm94eUFycEVudHJ5DQorRGlzYWJsZU1lZGlhU2Vuc2UNCitFbmFibGVSb3V0ZXINCitGbHVzaElwTmV0VGFibGUNCitGbHVzaElwTmV0VGFibGVGcm9tU3RhY2sNCitHZXRBZGFwdGVySW5kZXgNCitHZXRBZGFwdGVyT3JkZXJNYXANCitHZXRBZGFwdGVyc0FkZHJlc3Nlcw0KK0dldEFkYXB0ZXJzSW5mbw0KK0dldEJlc3RJbnRlcmZhY2UNCitHZXRCZXN0SW50ZXJmYWNlRXgNCitHZXRCZXN0SW50ZXJmYWNlRnJvbVN0YWNrDQorR2V0QmVzdFJvdXRlDQorR2V0QmVzdFJvdXRlRnJvbVN0YWNrDQorR2V0RXh0ZW5kZWRUY3BUYWJsZQ0KK0dldEV4dGVuZGVkVWRwVGFibGUNCitHZXRGcmllbmRseUlmSW5kZXgNCitHZXRJY21wU3RhdGlzdGljcw0KK0dldEljbXBTdGF0aXN0aWNzRXgNCitHZXRJY21wU3RhdHNGcm9tU3RhY2sNCitHZXRJY21wU3RhdHNGcm9tU3RhY2tFeA0KK0dldElmRW50cnkNCitHZXRJZkVudHJ5RnJvbVN0YWNrDQorR2V0SWZUYWJsZQ0KK0dldElmVGFibGVGcm9tU3RhY2sNCitHZXRJZ21wTGlzdA0KK0dldEludGVyZmFjZUluZm8NCitHZXRJcEFkZHJUYWJsZQ0KK0dldElwQWRkclRhYmxlRnJvbVN0YWNrDQorR2V0SXBFcnJvclN0cmluZw0KK0dldElwRm9yd2FyZFRhYmxlDQorR2V0SXBGb3J3YXJkVGFibGVGcm9tU3RhY2sNCitHZXRJcE5ldFRhYmxlDQorR2V0SXBOZXRUYWJsZUZyb21TdGFjaw0KK0dldElwU3RhdGlzdGljcw0KK0dldElwU3RhdGlzdGljc0V4DQorR2V0SXBTdGF0c0Zyb21TdGFjaw0KK0dldElwU3RhdHNGcm9tU3RhY2tFeA0KK0dldE5ldHdvcmtQYXJhbXMNCitHZXROdW1iZXJPZkludGVyZmFjZXMNCitHZXRPd25lck1vZHVsZUZyb21UY3A2RW50cnkNCitHZXRPd25lck1vZHVsZUZyb21UY3BFbnRyeQ0KK0dldE93bmVyTW9kdWxlRnJvbVVkcDZFbnRyeQ0KK0dldE93bmVyTW9kdWxlRnJvbVVkcEVudHJ5DQorR2V0UGVyQWRhcHRlckluZm8NCitHZXRSVFRBbmRIb3BDb3VudA0KK0dldFRjcEV4VGFibGUyRnJvbVN0YWNrDQorR2V0VGNwU3RhdGlzdGljcw0KK0dldFRjcFN0YXRpc3RpY3NFeA0KK0dldFRjcFN0YXRzRnJvbVN0YWNrDQorR2V0VGNwU3RhdHNGcm9tU3RhY2tFeA0KK0dldFRjcFRhYmxlDQorR2V0VGNwVGFibGVGcm9tU3RhY2sNCitHZXRVZHBFeFRhYmxlMkZyb21TdGFjaw0KK0dldFVkcFN0YXRpc3RpY3MNCitHZXRVZHBTdGF0aXN0aWNzRXgNCitHZXRVZHBTdGF0c0Zyb21TdGFjaw0KK0dldFVkcFN0YXRzRnJvbVN0YWNrRXgNCitHZXRVZHBUYWJsZQ0KK0dldFVkcFRhYmxlRnJvbVN0YWNrDQorR2V0VW5pRGlyZWN0aW9uYWxBZGFwdGVySW5mbw0KK0ljbXA2Q3JlYXRlRmlsZQ0KK0ljbXA2UGFyc2VSZXBsaWVzDQorSWNtcDZTZW5kRWNobzINCitJY21wQ2xvc2VIYW5kbGUNCitJY21wQ3JlYXRlRmlsZQ0KK0ljbXBQYXJzZVJlcGxpZXMNCitJY21wU2VuZEVjaG8yDQorSWNtcFNlbmRFY2hvDQorSW50ZXJuYWxDcmVhdGVJcEZvcndhcmRFbnRyeQ0KK0ludGVybmFsQ3JlYXRlSXBOZXRFbnRyeQ0KK0ludGVybmFsRGVsZXRlSXBGb3J3YXJkRW50cnkNCitJbnRlcm5hbERlbGV0ZUlwTmV0RW50cnkNCitJbnRlcm5hbEdldElmVGFibGUNCitJbnRlcm5hbEdldElwQWRkclRhYmxlDQorSW50ZXJuYWxHZXRJcEZvcndhcmRUYWJsZQ0KK0ludGVybmFsR2V0SXBOZXRUYWJsZQ0KK0ludGVybmFsR2V0VGNwVGFibGUNCitJbnRlcm5hbEdldFVkcFRhYmxlDQorSW50ZXJuYWxTZXRJZkVudHJ5DQorSW50ZXJuYWxTZXRJcEZvcndhcmRFbnRyeQ0KK0ludGVybmFsU2V0SXBOZXRFbnRyeQ0KK0ludGVybmFsU2V0SXBTdGF0cw0KK0ludGVybmFsU2V0VGNwRW50cnkNCitJcFJlbGVhc2VBZGRyZXNzDQorSXBSZW5ld0FkZHJlc3MNCitJc0xvY2FsQWRkcmVzcw0KK05UUFRpbWVUb05URmlsZVRpbWUNCitOVFRpbWVUb05UUFRpbWUNCitOaEdldEd1aWRGcm9tSW50ZXJmYWNlTmFtZQ0KK05oR2V0SW50ZXJmYWNlTmFtZUZyb21EZXZpY2VHdWlkDQorTmhHZXRJbnRlcmZhY2VOYW1lRnJvbUd1aWQNCitOaHBBbGxvY2F0ZUFuZEdldEludGVyZmFjZUluZm9Gcm9tU3RhY2sNCitOaHBHZXRJbnRlcmZhY2VJbmRleEZyb21TdGFjaw0KK05vdGlmeUFkZHJDaGFuZ2UNCitOb3RpZnlSb3V0ZUNoYW5nZQ0KK05vdGlmeVJvdXRlQ2hhbmdlRXgNCitOb3RpZnlTZWN1cml0eUhlYWx0aENoYW5nZQ0KK19QZkFkZEZpbHRlcnNUb0ludGVyZmFjZUAyNA0KK19QZkFkZEdsb2JhbEZpbHRlclRvSW50ZXJmYWNlQDgNCitfUGZCaW5kSW50ZXJmYWNlVG9JUEFkZHJlc3NAMTINCitfUGZCaW5kSW50ZXJmYWNlVG9JbmRleEAxNg0KK19QZkNyZWF0ZUludGVyZmFjZUAyNA0KK19QZkRlbGV0ZUludGVyZmFjZUA0DQorX1BmRGVsZXRlTG9nQDANCitfUGZHZXRJbnRlcmZhY2VTdGF0aXN0aWNzQDE2DQorX1BmTWFrZUxvZ0A0DQorX1BmUmViaW5kRmlsdGVyc0A4DQorX1BmUmVtb3ZlRmlsdGVySGFuZGxlc0AxMg0KK19QZlJlbW92ZUZpbHRlcnNGcm9tSW50ZXJmYWNlQDIwDQorX1BmUmVtb3ZlR2xvYmFsRmlsdGVyRnJvbUludGVyZmFjZUA4DQorX1BmU2V0TG9nQnVmZmVyQDI4DQorX1BmVGVzdFBhY2tldEAyMA0KK19QZlVuQmluZEludGVyZmFjZUA0DQorUmVzdG9yZU1lZGlhU2Vuc2UNCitTZW5kQVJQDQorU2V0QWRhcHRlcklwQWRkcmVzcw0KK1NldEJsb2NrUm91dGVzDQorU2V0SWZFbnRyeQ0KK1NldElmRW50cnlUb1N0YWNrDQorU2V0SXBGb3J3YXJkRW50cnkNCitTZXRJcEZvcndhcmRFbnRyeVRvU3RhY2sNCitTZXRJcE11bHRpaG9wUm91dGVFbnRyeVRvU3RhY2sNCitTZXRJcE5ldEVudHJ5DQorU2V0SXBOZXRFbnRyeVRvU3RhY2sNCitTZXRJcFJvdXRlRW50cnlUb1N0YWNrDQorU2V0SXBTdGF0aXN0aWNzDQorU2V0SXBTdGF0c1RvU3RhY2sNCitTZXRJcFRUTA0KK1NldFByb3h5QXJwRW50cnlUb1N0YWNrDQorU2V0Um91dGVXaXRoUmVmDQorU2V0VGNwRW50cnkNCitTZXRUY3BFbnRyeVRvU3RhY2sNCitVbmVuYWJsZVJvdXRlcg0KK2RvX2VjaG9fcmVwDQorZG9fZWNob19yZXENCityZWdpc3Rlcl9pY21wDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lwbW9udHIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lwbW9udHIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU0ZTRiZGQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aXBtb250ci5kZWYKQEAgLTAsMCArMSwyMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJUE1PTlRSLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJUE1PTlRSLmRsbA0KK0VYUE9SVFMNCitJbml0SGVscGVyRGxsDQorSXBtb250ckRlbGV0ZUluZm9CbG9ja0Zyb21JbnRlcmZhY2VJbmZvDQorSXBtb250ckRlbGV0ZVByb3RvY29sDQorSXBtb250ckdldEZyaWVuZGx5TmFtZUZyb21JZkluZGV4DQorSXBtb250ckdldEZyaWVuZGx5TmFtZUZyb21JZk5hbWUNCitJcG1vbnRyR2V0SWZJbmRleEZyb21GcmllbmRseU5hbWUNCitJcG1vbnRyR2V0SWZOYW1lRnJvbUZyaWVuZGx5TmFtZQ0KK0lwbW9udHJHZXRJbmZvQmxvY2tGcm9tR2xvYmFsSW5mbw0KK0lwbW9udHJHZXRJbmZvQmxvY2tGcm9tSW50ZXJmYWNlSW5mbw0KK0lwbW9udHJHZXRJbnRlcmZhY2VUeXBlDQorSXBtb250ckludGVyZmFjZUVudW0NCitJcG1vbnRyU2V0SW5mb0Jsb2NrSW5HbG9iYWxJbmZvDQorSXBtb250clNldEluZm9CbG9ja0luSW50ZXJmYWNlSW5mbw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpcG5hdGhscC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aXBuYXRobHAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgzNzdiMWEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aXBuYXRobHAuZGVmCkBAIC0wLDAgKzEsMzkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSVBOQVRITFAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElQTkFUSExQLmRsbA0KK0VYUE9SVFMNCitOaEFjY2VwdFN0cmVhbVNvY2tldA0KK05oQWNxdWlyZUZpeGVkTGVuZ3RoQnVmZmVyDQorTmhBY3F1aXJlVmFyaWFibGVMZW5ndGhCdWZmZXINCitOaENyZWF0ZURhdGFncmFtU29ja2V0DQorTmhDcmVhdGVTdHJlYW1Tb2NrZXQNCitOaERlbGV0ZVNvY2tldA0KK05oSW5pdGlhbGl6ZUJ1ZmZlck1hbmFnZW1lbnQNCitOaFJlYWREYXRhZ3JhbVNvY2tldA0KK05oUmVhZFN0cmVhbVNvY2tldA0KK05oUmVsZWFzZUJ1ZmZlcg0KK05oV3JpdGVEYXRhZ3JhbVNvY2tldA0KK05oV3JpdGVTdHJlYW1Tb2NrZXQNCitSZWdpc3RlclByb3RvY29sDQorTmF0QWNxdWlyZVBvcnRSZXNlcnZhdGlvbg0KK05hdENhbmNlbER5bmFtaWNSZWRpcmVjdA0KK05hdENhbmNlbFJlZGlyZWN0DQorTmF0Q3JlYXRlRHluYW1pY0Z1bGxSZWRpcmVjdA0KK05hdENyZWF0ZUR5bmFtaWNSZWRpcmVjdA0KK05hdENyZWF0ZUR5bmFtaWNSZWRpcmVjdEV4DQorTmF0Q3JlYXRlUmVkaXJlY3QNCitOYXRDcmVhdGVSZWRpcmVjdEV4DQorTmF0SW5pdGlhbGl6ZVBvcnRSZXNlcnZhdGlvbg0KK05hdEluaXRpYWxpemVUcmFuc2xhdG9yDQorTmF0TG9va3VwQW5kUXVlcnlJbmZvcm1hdGlvblNlc3Npb25NYXBwaW5nDQorTmF0UXVlcnlJbmZvcm1hdGlvblJlZGlyZWN0DQorTmF0UXVlcnlJbmZvcm1hdGlvblJlZGlyZWN0SGFuZGxlDQorTmF0UmVsZWFzZVBvcnRSZXNlcnZhdGlvbg0KK05hdFNodXRkb3duUG9ydFJlc2VydmF0aW9uDQorTmF0U2h1dGRvd25UcmFuc2xhdG9yDQorTmhJbml0aWFsaXplVHJhY2VNYW5hZ2VtZW50DQorU2VydmljZU1haW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aXBwcm9tb24uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lwcHJvbW9uLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42OTI4NzBiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lwcHJvbW9uLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSVBQUk9NT04uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElQUFJPTU9OLmRsbA0KK0VYUE9SVFMNCitJbml0SGVscGVyRGxsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lwcmlwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpcHJpcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODkwZDAxOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpcHJpcC5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElQUklQLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJUFJJUC5kbGwNCitFWFBPUlRTDQorU2VydmljZU1haW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aXByb3AuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lwcm9wLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMjVjOWFiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lwcm9wLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElQUk9QLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJUFJPUC5kbGwNCitFWFBPUlRTDQorRm10SWRUb1Byb3BTdGdOYW1lDQorRnJlZVByb3BWYXJpYW50QXJyYXkNCitQcm9wU3RnTmFtZVRvRm10SWQNCitQcm9wVmFyaWFudENsZWFyDQorUHJvcFZhcmlhbnRDb3B5DQorU3RnQ3JlYXRlUHJvcFNldFN0Zw0KK1N0Z0NyZWF0ZVByb3BTdGcNCitTdGdPcGVuUHJvcFN0Zw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpcHJ0cHJpby5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aXBydHByaW8uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJiY2M4NWQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aXBydHByaW8uZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgaXBydHByaW8uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlwcnRwcmlvLmRsbA0KK0VYUE9SVFMNCitDb21wdXRlUm91dGVNZXRyaWMNCitHZXRQcmlvcml0eUluZm8NCitTZXRQcmlvcml0eUluZm8NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aXBydHJtZ3IuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lwcnRybWdyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNTU3Y2IzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lwcnRybWdyLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGlwcnRybWdyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpcHJ0cm1nci5kbGwNCitFWFBPUlRTDQorTWFwQWRkcmVzc1RvQWRhcHRlcg0KK01hcEludGVyZmFjZVRvQWRhcHRlcg0KK01hcEludGVyZmFjZVRvUm91dGVySWZUeXBlDQorU3RhcnRSb3V0ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aXBzZWNzbnAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lwc2Vjc25wLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MTdkYTZmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lwc2Vjc25wLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIElQU0VDU05QLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJUFNFQ1NOUC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aXBzZWNzdmMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lwc2Vjc3ZjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMzg4NzEyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lwc2Vjc3ZjLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSVBTRUNTUEQuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElQU0VDU1BELkRMTA0KK0VYUE9SVFMNCitTUERTZXJ2aWNlTWFpbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpcHNtc25hcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aXBzbXNuYXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUxYjBjYTgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aXBzbXNuYXAuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSVBTTVNOQVAuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIElQU01TTkFQLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpcHY2bW9uLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpcHY2bW9uLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNDViN2IxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lwdjZtb24uZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSVBWNk1PTi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSVBWNk1PTi5kbGwNCitFWFBPUlRTDQorR2V0UmVzb3VyY2VTdHJpbmcNCitJbml0SGVscGVyRGxsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lweHNhcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aXB4c2FwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMzI2MDg4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2lweHNhcC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBpcHhzYXAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlweHNhcC5kbGwNCitFWFBPUlRTDQorUmVnaXN0ZXJQcm90b2NvbA0KK1NlcnZpY2VNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lyNDFfcWMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lyNDFfcWMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlmNDk0MjEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aXI0MV9xYy5kZWYKQEAgLTAsMCArMSwxNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJUjQxX1FDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJUjQxX1FDLmRsbA0KK0VYUE9SVFMNCitBbGxvY0luc3RhbmNlRGF0YQ0KK0NvbXByZXNzDQorQ29tcHJlc3NCZWdpbg0KK0NvbXByZXNzRW5kDQorQ29tcHJlc3NGcmFtZXNJbmZvDQorRGxsTWFpbg0KK0ZyZWVJbnN0YW5jZURhdGENCitTZXRTY2FsYWJpbGl0eQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpcjQxX3FjeC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aXI0MV9xY3guZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlmNDk0MjEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aXI0MV9xY3guZGVmCkBAIC0wLDAgKzEsMTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSVI0MV9RQy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSVI0MV9RQy5kbGwNCitFWFBPUlRTDQorQWxsb2NJbnN0YW5jZURhdGENCitDb21wcmVzcw0KK0NvbXByZXNzQmVnaW4NCitDb21wcmVzc0VuZA0KK0NvbXByZXNzRnJhbWVzSW5mbw0KK0RsbE1haW4NCitGcmVlSW5zdGFuY2VEYXRhDQorU2V0U2NhbGFiaWxpdHkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aXI1MF8zMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aXI1MF8zMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGIyY2U5ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpcjUwXzMyLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGlyNTBfMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlyNTBfMzIuZGxsDQorRVhQT1JUUw0KK0Fib3V0RGlhbG9nUHJvYw0KK0NvbmZpZ3VyZURpYWxvZ1Byb2MNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbE1haW4NCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitEcml2ZXJQcm9jDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lyNTBfcWMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2lyNTBfcWMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU0NmFjNTUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aXI1MF9xYy5kZWYKQEAgLTAsMCArMSwxOCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJUjUwX1FDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJUjUwX1FDLmRsbA0KK0VYUE9SVFMNCitBbGxvY0luc3RhbmNlRGF0YQ0KK0NvbXByZXNzDQorQ29tcHJlc3NCZWdpbg0KK0NvbXByZXNzRW5kDQorQ29tcHJlc3NGcmFtZXNJbmZvDQorQ29tcHJlc3NRdWVyeQ0KK0RsbE1haW4NCitGcmVlSW5zdGFuY2VEYXRhDQorU2V0Q1BVSUQNCitTZXRTY2FsYWJpbGl0eQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpcjUwX3FjeC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aXI1MF9xY3guZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU0NmFjNTUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aXI1MF9xY3guZGVmCkBAIC0wLDAgKzEsMTggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSVI1MF9RQy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSVI1MF9RQy5kbGwNCitFWFBPUlRTDQorQWxsb2NJbnN0YW5jZURhdGENCitDb21wcmVzcw0KK0NvbXByZXNzQmVnaW4NCitDb21wcmVzc0VuZA0KK0NvbXByZXNzRnJhbWVzSW5mbw0KK0NvbXByZXNzUXVlcnkNCitEbGxNYWluDQorRnJlZUluc3RhbmNlRGF0YQ0KK1NldENQVUlEDQorU2V0U2NhbGFiaWxpdHkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aXNhcGlwcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aXNhcGlwcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjMxODRiNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpc2FwaXBzLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGlzYXBpcHMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGlzYXBpcHMuZGxsDQorRVhQT1JUUw0KK0dldFByb3h5RGxsSW5mbw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2lzY29tbG9nLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpc2NvbWxvZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGFiNzFmZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpc2NvbWxvZy5kZWYKQEAgLTAsMCArMSwzMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJU0NPTUxPRy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSVNDT01MT0cuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExPR0dJTkc6OkxPR0dJTkcoY2xhc3MgTE9HR0lORyBjb25zdCAmKQ0KKz8/MExPR0dJTkdAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIExPR0dJTkcgJiBfX3RoaXNjYWxsIExPR0dJTkc6Om9wZXJhdG9yPShjbGFzcyBMT0dHSU5HIGNvbnN0ICYpDQorPz80TE9HR0lOR0BAUUFFQUFWMEBBQlYwQEBaDQorQ29tTG9nQ3VzdG9tSW5mb3JtYXRpb24NCitDb21Mb2dEbGxDbGVhblVwDQorQ29tTG9nRGxsU3RhcnR1cA0KK0NvbUxvZ0dldENvbmZpZw0KK0NvbUxvZ0luaXRpYWxpemVMb2cNCitDb21Mb2dMb2dJbmZvcm1hdGlvbg0KK0NvbUxvZ05vdGlmeUNoYW5nZQ0KK0NvbUxvZ1F1ZXJ5RXh0cmFMb2dGaWVsZHMNCitDb21Mb2dTZXRDb25maWcNCitDb21Mb2dUZXJtaW5hdGVMb2cNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBMT0dHSU5HOjpMb2NrRXhjbHVzaXZlKHZvaWQpDQorP0xvY2tFeGNsdXNpdmVATE9HR0lOR0BAQUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTE9HR0lORzo6TG9ja1NoYXJlZCh2b2lkKQ0KKz9Mb2NrU2hhcmVkQExPR0dJTkdAQEFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExPR0dJTkc6OlVubG9jayh2b2lkKQ0KKz9VbmxvY2tATE9HR0lOR0BAQUFFWFhaDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93aXNpZ24zMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aXNpZ24zMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWI2YTYxNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpc2lnbjMyLmRlZgpAQCAtMCwwICsxLDE4IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGlzaWdudXAyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBpc2lnbnVwMi5kbGwNCitFWFBPUlRTDQorQXV0b0RpYWxMb2dvbg0KK0F1dG9EaWFsTG9nb25BDQorQXV0b0RpYWxMb2dvblcNCitBdXRvRGlhbFNpZ251cA0KK0F1dG9EaWFsU2lnbnVwQQ0KK0F1dG9EaWFsU2lnbnVwVw0KK0lFQUtQcm9jZXNzSVNQDQorSUVBS1Byb2Nlc3NJU1BBDQorSUVBS1Byb2Nlc3NJU1BXDQorU2lnbnVwDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2l0aXJjbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93aXRpcmNsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNDMwNTNlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2l0aXJjbC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJVExvY2FsLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJVExvY2FsLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dpdHNzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpdHNzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NmVmNTQxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2l0c3MuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSVRTUy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSVRTUy5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxNYWluDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2l4c3NvLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dpeHNzby5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDcyZDEwZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dpeHNzby5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJWFNTTy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSVhTU08uZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2l5dXZfMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2l5dXZfMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUxODIzNjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93aXl1dl8zMi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBJWVVWXzMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBJWVVWXzMyLmRsbA0KK0VYUE9SVFMNCitBYm91dERpYWxvZ1Byb2MNCitEbGxNYWluDQorRHJpdmVyRGlhbG9nUHJvYw0KK0RyaXZlclByb2MNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93amV0NTAwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dqZXQ1MDAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNkNTgyMDYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93amV0NTAwLmRlZgpAQCAtMCwwICsxLDkzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEpFVDUwMC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSkVUNTAwLmRsbA0KK0VYUE9SVFMNCitKZXRBZGRDb2x1bW4NCitKZXRBdHRhY2hEYXRhYmFzZQ0KK0pldEJhY2t1cA0KK0pldEJlZ2luRXh0ZXJuYWxCYWNrdXANCitKZXRCZWdpblNlc3Npb24NCitKZXRCZWdpblRyYW5zYWN0aW9uDQorSmV0Q2xvc2VEYXRhYmFzZQ0KK0pldENsb3NlRmlsZQ0KK0pldENsb3NlVGFibGUNCitKZXRDb21taXRUcmFuc2FjdGlvbg0KK0pldENvbXBhY3QNCitKZXRDb21wdXRlU3RhdHMNCitKZXRDcmVhdGVEYXRhYmFzZQ0KK0pldENyZWF0ZUluZGV4DQorSmV0Q3JlYXRlTGluaw0KK0pldENyZWF0ZVF1ZXJ5DQorSmV0Q3JlYXRlVGFibGUNCitKZXRDcmVhdGVUYWJsZUNvbHVtbkluZGV4DQorSmV0REJVdGlsaXRpZXMNCitKZXREZWxldGUNCitKZXREZWxldGVDb2x1bW4NCitKZXREZWxldGVJbmRleA0KK0pldERlbGV0ZVRhYmxlDQorSmV0RGV0YWNoRGF0YWJhc2UNCitKZXREdXBDdXJzb3INCitKZXREdXBTZXNzaW9uDQorSmV0RW5kRXh0ZXJuYWxCYWNrdXANCitKZXRFbmRTZXNzaW9uDQorSmV0RXhlY3V0ZVNxbA0KK0pldEV4dGVybmFsUmVzdG9yZQ0KK0pldEdldEF0dGFjaEluZm8NCitKZXRHZXRCb29rbWFyaw0KK0pldEdldENoZWNrc3VtDQorSmV0R2V0Q29sdW1uSW5mbw0KK0pldEdldENvdW50ZXINCitKZXRHZXRDdXJyZW50SW5kZXgNCitKZXRHZXRDdXJzb3JJbmZvDQorSmV0R2V0RGF0YWJhc2VJbmZvDQorSmV0R2V0SW5kZXhJbmZvDQorSmV0R2V0TG9nSW5mbw0KK0pldEdldE9iamVjdEluZm8NCitKZXRHZXRPYmppZEZyb21OYW1lDQorSmV0R2V0UXVlcnlQYXJhbWV0ZXJJbmZvDQorSmV0R2V0UmVjb3JkUG9zaXRpb24NCitKZXRHZXRTeXN0ZW1QYXJhbWV0ZXINCitKZXRHZXRUYWJsZUNvbHVtbkluZm8NCitKZXRHZXRUYWJsZUluZGV4SW5mbw0KK0pldEdldFRhYmxlSW5mbw0KK0pldEdldFZlcnNpb24NCitKZXRHb3RvQm9va21hcmsNCitKZXRHb3RvUG9zaXRpb24NCitKZXRJZGxlDQorSmV0SW5kZXhSZWNvcmRDb3VudA0KK0pldEluaXQNCitKZXRNYWtlS2V5DQorSmV0TW92ZQ0KK0pldE9wZW5EYXRhYmFzZQ0KK0pldE9wZW5GaWxlDQorSmV0T3BlblF1ZXJ5RGVmDQorSmV0T3BlblRhYmxlDQorSmV0T3BlblRlbXBUYWJsZTINCitKZXRPcGVuVGVtcFRhYmxlDQorSmV0UHJlcGFyZVVwZGF0ZQ0KK0pldFJlYWRGaWxlDQorSmV0UmVzZXRDb3VudGVyDQorSmV0UmVzdG9yZTINCitKZXRSZXN0b3JlDQorSmV0UmV0cmlldmVDb2x1bW4NCitKZXRSZXRyaWV2ZUNvbHVtbnMNCitKZXRSZXRyaWV2ZUtleQ0KK0pldFJldHJpZXZlUW9TcWwNCitKZXRSb2xsYmFjaw0KK0pldFNlZWsNCitKZXRTZXRBY2Nlc3MNCitKZXRTZXRDb2x1bW4NCitKZXRTZXRDb2x1bW5zDQorSmV0U2V0Q3VycmVudEluZGV4Mg0KK0pldFNldEN1cnJlbnRJbmRleA0KK0pldFNldEluZGV4UmFuZ2UNCitKZXRTZXRRb1NxbA0KK0pldFNldFN5c3RlbVBhcmFtZXRlcg0KK0pldFRlcm0yDQorSmV0VGVybQ0KK0pldFRydW5jYXRlTG9nDQorSmV0VXBkYXRlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2pvYmV4ZWMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2pvYmV4ZWMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgxMDg2YjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93am9iZXhlYy5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBqb2JleGVjLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBqb2JleGVjLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dqc2NyaXB0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dqc2NyaXB0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMDU3ZjM3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2pzY3JpcHQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgSlNDUklQVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgSlNDUklQVC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93anNwcm94eS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93anNwcm94eS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTVhZTEyNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dqc3Byb3h5LmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEpTUHJveHkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEpTUHJveHkuZGxsDQorRVhQT1JUUw0KK0ludGVybmV0SW5pdGlhbGl6ZUF1dG9Qcm94eURsbA0KK0ludGVybmV0RGVJbml0aWFsaXplQXV0b1Byb3h5RGxsDQorSW50ZXJuZXRHZXRQcm94eUluZm8NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkMTAxLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmQxMDEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM3NzNmNGYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkMTAxLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRDEwMS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEMTAxLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCitLYmRObHNMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkMTAxYS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkMTAxYS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTlhNThhNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmQxMDFhLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRDEwMUEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRDEwMUEuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KK0tiZE5sc0xheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmQxMDFiLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmQxMDFiLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYmUxY2NkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZDEwMWIuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEMTAxQi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEMTAxQi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQorS2JkTmxzTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZDEwMWMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZDEwMWMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM4ZTVlOGIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkMTAxYy5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkQxMDFDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkQxMDFDLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCitLYmRObHNMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkMTAzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmQxMDMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc0ZGFmMzEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkMTAzLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRDEwMy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEMTAzLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCitLYmRObHNMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkMTA2LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmQxMDYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc1NGJiYjIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkMTA2LmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRDEwNi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEMTA2LmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCitLYmRObHNMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkMTA2bi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkMTA2bi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2VjM2I0YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmQxMDZuLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRDEwNk4uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRDEwNk4uZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KK0tiZE5sc0xheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRhMS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkYTEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdmOWUxNGMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkYTEuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRBMS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEQTEuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRhMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkYTIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQxYzdlN2IKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkYTIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRBMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEQTIuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRhMy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkYTMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRjY2E0NjIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkYTMuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRBMy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEQTMuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRhcm1lLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRhcm1lLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYjQwNGU0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGFybWUuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRBUk1FLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRBUk1FLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkYXJtdy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkYXJtdy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWRlZDg3ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRhcm13LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEQVJNVy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEQVJNVy5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGF4Mi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkYXgyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wOWUzYTgzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGF4Mi5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRBWDIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREFYMi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQorS2JkTmxzTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGF6ZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkYXplLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYTZmOGZhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGF6ZS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREFaRS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEQVpFLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkYXplbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkYXplbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzk0MTExMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRhemVsLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEQVpFTC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEQVpFTC5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGJlLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRiZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODIzM2YwNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRiZS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREJFLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRCRS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGJlbmUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGJlbmUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEyNjEwZDgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkYmVuZS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREJFTkUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREJFTkUuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRibHIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGJsci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmU1YjRkYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRibHIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRCTFIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREJMUi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGJyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRici5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDkyMDUxNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRici5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREJSLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRCUi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGJ1LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRidS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTg1MTQyMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRidS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREJVLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRCVS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGNhLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRjYS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDhiMDBiNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRjYS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRENBLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRDQS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGNhbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkY2FuLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNWQ2YWE3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGNhbi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRENBTi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEQ0FOLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkY3IuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGNyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hM2VkYzc2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGNyLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEQ1IuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRENSLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkY3ouZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGN6LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YjFjOGI2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGN6LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEQ1ouZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRENaLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkY3oxLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRjejEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJhMWJmN2YKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkY3oxLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEQ1oxLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRDWjEuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRjejIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGN6Mi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTdjMDA3ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRjejIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRDWjIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRENaMi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGRhLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRkYS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzFmMTNmZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRkYS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRERBLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkREQS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGRpdjEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGRpdjEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRiYWE2ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkZGl2MS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRERJVjEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRERJVjEuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRkaXYyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRkaXYyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45OTQzMDU5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGRpdjIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRESVYyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRESVYyLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkZHYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGR2LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MmYzYWQzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGR2LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JERFYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRERWLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkZXMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGVzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44YjQ2OThlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGVzLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JERVMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREVTLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkZXN0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRlc3QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgxY2ExNGUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkZXN0LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JERVNULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRFU1QuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRmYS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkZmEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk1YjdmODQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkZmEuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRGQS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JERkEuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRmYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkZmMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNjZWM4ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkZmMuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRGQy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JERkMuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRmaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkZmkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFmODRhNDUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkZmkuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRGSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JERkkuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRmby5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkZm8uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcwNjc2ODQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkZm8uZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRGTy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JERk8uZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRmci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkZnIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgyZGQyZjIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkZnIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRGUi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JERlIuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRnYWUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGdhZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjMwZGI2ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRnYWUuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRHQUUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREdBRS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGdlby5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkZ2VvLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hOTYyMzgzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGdlby5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREdlby5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JER2VvLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkZ2tsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRna2wuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ5Y2YwOTEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkZ2tsLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JER0tMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRHS0wuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRnci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkZ3IuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY4N2YyOTMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkZ3IuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRHUi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JER1IuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRncjEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGdyMS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjkwYzBmZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRncjEuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRHUjEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREdSMS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGhlLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRoZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzgwOTcyOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRoZS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREhFLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRIRS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGhlMjIwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRoZTIyMC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmM3Y2RkZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRoZTIyMC5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREhFMjIwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRIRTIyMC5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGhlMzE5LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRoZTMxOS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2ZhOTZlMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRoZTMxOS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREhFMzE5LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRIRTMxOS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGhlYi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkaGViLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lMzU0OGE5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGhlYi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREhFQi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JESEVCLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkaGVsYTIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGhlbGEyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hOWQ2MjYzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGhlbGEyLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JESEVMQTIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREhFTEEyLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkaGVsYTMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGhlbGEzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NTkzZjRiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGhlbGEzLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JESEVMQTMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREhFTEEzLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkaGVwdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkaGVwdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDhiMWQ1OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRoZXB0LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JESEVQVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JESEVQVC5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGh1LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRodS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDRjMWE0OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRodS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREhVLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRIVS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGh1MS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkaHUxLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xYjllYTM4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGh1MS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCREhVMS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JESFUxLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkaWJtMDIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGlibTAyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMTljODJhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGlibTAyLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElCTTAyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJQk0wMi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQorS2JkTmxzTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGljLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjY5MjI5NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpYy5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJQy5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGluZGV2LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpbmRldi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2RlM2E5ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpbmRldi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElOREVWLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJTkRFVi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGluZ3VqLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpbmd1ai5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2QwNjE2NAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpbmd1ai5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElOR1VKLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJTkdVSi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGluaGluLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpbmhpbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjljYjllNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpbmhpbi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElOSElOLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJTkhJTi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGlua2FuLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpbmthbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGE0MzRlYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpbmthbi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElOS0FOLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJTktBTi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGlubWFyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpbm1hci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGQ3ZjA4NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpbm1hci5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElOTUFSLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJTk1BUi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGlucHVuLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpbnB1bi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2JjZjEwYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpbnB1bi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElOUFVOLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJTlBVTi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGludGFtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpbnRhbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzQzZDI1YgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpbnRhbS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElOVEFNLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJTlRBTS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGludGVsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpbnRlbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzNjZDE0MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpbnRlbC5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElOVEVMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJTlRFTC5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGlyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjRmOGUwNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpci5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElSLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJUi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGl0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDQwZmI3YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpdC5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJVC5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGl0MTQyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpdDE0Mi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTA0ZjZiMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRpdDE0Mi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRElUMTQyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRJVDE0Mi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGpwbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkanBuLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZmM0MTYyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGpwbi5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkQxMDEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRDEwMS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQorS2JkTmxzTGF5ZXJEZXNjcmlwdG9yDQorS2JkTGF5ZXJSZWFsRGxsRmlsZU5UNA0KK0tiZExheWVyUmVhbERsbEZpbGUNCitLYmRMYXllck11bHRpRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRrYXouZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGthei5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODhlOGU4NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRrYXouZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRLQVouZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREtBWi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGtvci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2Jka29yLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNzRmMGRhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGtvci5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRLT1IuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREtPUi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQorS2JkTmxzTGF5ZXJEZXNjcmlwdG9yDQorS2JkTGF5ZXJSZWFsRGxsRmlsZU5UNA0KK0tiZExheWVyUmVhbERsbEZpbGUNCitLYmRMYXllck11bHRpRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRreXIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGt5ci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjMxNGVmMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRreXIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRLWVIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCREtZUi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGxhLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRsYS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDNmMzhkNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRsYS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRExBLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRMQS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZGxrNDFhLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRsazQxYS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWE2MWIwNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRsazQxYS5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRMSzQxQS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JETEs0MUEuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KK0tiZE5sc0xheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRsazQxai5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkbGs0MWouZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQzMTIyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkbGs0MWouZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JETEs0MUouZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRExLNDFKLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCitLYmRObHNMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkbHQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGx0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MzQxNjhjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGx0LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JETFQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRExULmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkbHQxLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRsdDEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFkN2VkMGIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkbHQxLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JETFQxLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRMVDEuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRsdi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkbHYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE3YTViM2UKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkbHYuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRMVi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JETFYuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRsdjEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZGx2MS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzU3Y2ExNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRsdjEuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRMVjEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRExWMS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZG1hYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkbWFjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wN2E5OTM1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZG1hYy5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRE1BQy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JETUFDLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkbW9uLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRtb24uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMxZTIzZDIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkbW9uLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JETU9OLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRNT04uZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRuZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkbmUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQyY2RiZmMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkbmUuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRORS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JETkUuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRuZWMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZG5lYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGFkZDY0OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRuZWMuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JETkVDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRORUMuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KK0tiZE5sc0xheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRuZWM5NS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkbmVjOTUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg1NDAzNWYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkbmVjOTUuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JETkVDOTUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRE5FQzk1LmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCitLYmRObHNMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkbmVjQVQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZG5lY0FULmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMDJhOGIxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZG5lY0FULmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRE5FQ0FULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRORUNBVC5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQorS2JkTmxzTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZG5lY05ULmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRuZWNOVC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTY2ZjZkYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRuZWNOVC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRORUNOVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JETkVDTlQuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KK0tiZE5sc0xheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRuby5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2Jkbm8uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ1ZGJhNjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2Jkbm8uZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkROTy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JETk8uZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRwbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkcGwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZlOGM1NjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkcGwuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRQTC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEUEwuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRwbDEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHBsMS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGUyMWVhZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRwbDEuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRQTDEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFBMMS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZHBvLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRwby5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmE4NzZhYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRwby5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFBPLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRQTy5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZHJvLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRyby5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTA4ZjczMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRyby5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFJPLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRSTy5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZHJ1LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRydS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODExMDEyYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRydS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFJVLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRSVS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZHJ1MS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkcnUxLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kY2IyNjdjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHJ1MS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFJVMS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEUlUxLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2Jkc2YuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHNmLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZWY4ZDRmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHNmLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEU0YuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFNGLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2Jkc2cuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHNnLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NjZmMDkxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHNnLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEU0cuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFNHLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2Jkc2wuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHNsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNmJhNTZmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHNsLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEU0wuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFNMLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2Jkc2wxLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRzbDEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMwY2U3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2Jkc2wxLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEU0wxLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRTTDEuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRzcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2Jkc3AuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI1YTExOTcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2Jkc3AuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRTUC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEU1AuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRzdy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2Jkc3cuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA0ZjQ5ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2Jkc3cuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRTVy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEU1cuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmRzeXIxLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRzeXIxLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lN2RmYTJjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHN5cjEuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRTWVIxLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRTWVIxLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2Jkc3lyMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2Jkc3lyMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjYxOWY2OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmRzeXIyLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEU1lSMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEU1lSMi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZHRhdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkdGF0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYmFkYzMxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHRhdC5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFRBVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEVEFULmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkdGgwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmR0aDAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNlNDk3NTMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkdGgwLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEVEgwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRUSDAuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmR0aDEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHRoMS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYThhODI4MgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmR0aDEuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRUSDEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFRIMS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZHRoMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkdGgyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNTliMDRhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHRoMi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFRIMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEVEgyLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkdGgzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmR0aDMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVjYjVlNTMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkdGgzLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEVEgzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRUSDMuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmR0dWYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHR1Zi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWJkN2RmYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmR0dWYuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRUVUYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFRVRi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZHR1cS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkdHVxLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZTUxNWNhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHR1cS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFRVUS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEVFVRLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkdWsuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHVrLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZjc2YmRlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHVrLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEVUsuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFVLLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkdXIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHVyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZDI2ZmRmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHVyLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEVVIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFVSLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkdXJkdS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkdXJkdS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDIyODc5ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmR1cmR1LmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEVVJEVS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEVVJEVS5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZHVzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmR1cy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWI1YzE4MgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmR1cy5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFVTLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRVUy5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZHVzYS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkdXNhLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMmVjYjEyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHVzYS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFVTQS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEVVNBLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkdXNsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmR1c2wuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAxYTc0ODUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkdXNsLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEVVNMLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRVU0wuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmR1c3IuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHVzci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2IyNDBjNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmR1c3IuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRVU1IuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFVTUi5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tiZHVzeC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkdXN4LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NDVkMjEyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHVzeC5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtCRFVTWC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0JEVVNYLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkdXpiLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmR1emIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJhMzEwNjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkdXpiLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEVVpCLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRVWkIuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmR2bnRjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmR2bnRjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNmQ4ZDc2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHZudGMuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRWTlRDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRWTlRDLmRsbA0KK0VYUE9SVFMNCitLYmRMYXllckRlc2NyaXB0b3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2JkeWNjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drYmR5Y2MuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU4NzkwYmEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2JkeWNjLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS0JEWUNDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBLQkRZQ0MuZGxsDQorRVhQT1JUUw0KK0tiZExheWVyRGVzY3JpcHRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drYmR5Y2wuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tiZHljbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjljZWM5MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drYmR5Y2wuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLQkRZQ0wuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtCRFlDTC5kbGwNCitFWFBPUlRTDQorS2JkTGF5ZXJEZXNjcmlwdG9yDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2tlcmJlcm9zLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drZXJiZXJvcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODYyNTQ3MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drZXJiZXJvcy5kZWYKQEAgLTAsMCArMSwxOCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLZXJiZXJvcy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS2VyYmVyb3MuZGxsDQorRVhQT1JUUw0KK1NwSW5pdGlhbGl6ZQ0KK0tlcmJEb21haW5DaGFuZ2VDYWxsYmFjaw0KK1NwTHNhTW9kZUluaXRpYWxpemUNCitTcFVzZXJNb2RlSW5pdGlhbGl6ZQ0KK0tlcmJDcmVhdGVUb2tlbkZyb21UaWNrZXQNCitLZXJiRnJlZQ0KK0tlcmJJc0luaXRpYWxpemVkDQorS2VyYktkY0NhbGxCYWNrDQorS2VyYk1ha2VLZGNDYWxsDQorU3BJbnN0YW5jZUluaXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2VybmVsMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tlcm5lbDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ZWJiOGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2tlcm5lbDMyLmRlZgpAQCAtMCwwICsxLDk4NiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBLRVJORUwzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0VSTkVMMzIuZGxsDQorRVhQT1JUUw0KK0FjdGl2YXRlQWN0Q3R4DQorQWRkQXRvbUENCitBZGRBdG9tVw0KK0FkZENvbnNvbGVBbGlhc0ENCitBZGRDb25zb2xlQWxpYXNXDQorQWRkTG9jYWxBbHRlcm5hdGVDb21wdXRlck5hbWVBDQorQWRkTG9jYWxBbHRlcm5hdGVDb21wdXRlck5hbWVXDQorQWRkUmVmQWN0Q3R4DQorQWRkVmVjdG9yZWRDb250aW51ZUhhbmRsZXINCitBZGRWZWN0b3JlZEV4Y2VwdGlvbkhhbmRsZXINCitBbGxvY0NvbnNvbGUNCitBbGxvY2F0ZVVzZXJQaHlzaWNhbFBhZ2VzDQorQXJlRmlsZUFwaXNBTlNJDQorQXNzaWduUHJvY2Vzc1RvSm9iT2JqZWN0DQorQXR0YWNoQ29uc29sZQ0KK0JhY2t1cFJlYWQNCitCYWNrdXBTZWVrDQorQmFja3VwV3JpdGUNCitCYXNlQ2hlY2tBcHBjb21wYXRDYWNoZQ0KK0Jhc2VDaGVja1J1bkFwcA0KK0Jhc2VDbGVhbnVwQXBwY29tcGF0Q2FjaGVTdXBwb3J0DQorQmFzZUR1bXBBcHBjb21wYXRDYWNoZQ0KK0Jhc2VGbHVzaEFwcGNvbXBhdENhY2hlDQorQmFzZUluaXRBcHBjb21wYXRDYWNoZVN1cHBvcnQNCitCYXNlSXNBcHBjb21wYXRJbmZyYXN0cnVjdHVyZURpc2FibGVkDQorQmFzZVByb2Nlc3NJbml0UG9zdEltcG9ydA0KK0Jhc2VQcm9jZXNzU3RhcnRUaHVuaw0KK0Jhc2VRdWVyeU1vZHVsZURhdGENCitCYXNlVGhyZWFkU3RhcnRUaHVuaw0KK0Jhc2VVcGRhdGVBcHBjb21wYXRDYWNoZQ0KK0Jhc2VwQ2hlY2tCYWRhcHANCitCYXNlcENoZWNrV2luU2FmZXJSZXN0cmljdGlvbnMNCitCYXNlcEZyZWVBcHBDb21wYXREYXRhDQorQmVlcA0KK0JlZ2luVXBkYXRlUmVzb3VyY2VBDQorQmVnaW5VcGRhdGVSZXNvdXJjZVcNCitCaW5kSW9Db21wbGV0aW9uQ2FsbGJhY2sNCitCdWlsZENvbW1EQ0JBDQorQnVpbGRDb21tRENCQW5kVGltZW91dHNBDQorQnVpbGRDb21tRENCQW5kVGltZW91dHNXDQorQnVpbGRDb21tRENCVw0KK0NhbGxOYW1lZFBpcGVBDQorQ2FsbE5hbWVkUGlwZVcNCitDYW5jZWxEZXZpY2VXYWtldXBSZXF1ZXN0DQorQ2FuY2VsSW8NCitDYW5jZWxUaW1lclF1ZXVlVGltZXINCitDYW5jZWxXYWl0YWJsZVRpbWVyDQorQ2hhbmdlVGltZXJRdWV1ZVRpbWVyDQorQ2hlY2tOYW1lTGVnYWxET1M4RG90M0ENCitDaGVja05hbWVMZWdhbERPUzhEb3QzVw0KK0NoZWNrUmVtb3RlRGVidWdnZXJQcmVzZW50DQorQ2xlYXJDb21tQnJlYWsNCitDbGVhckNvbW1FcnJvcg0KK0Nsb3NlQ29uc29sZUhhbmRsZQ0KK0Nsb3NlSGFuZGxlDQorQ2xvc2VQcm9maWxlVXNlck1hcHBpbmcNCitDbWRCYXROb3RpZmljYXRpb24NCitDb21tQ29uZmlnRGlhbG9nQQ0KK0NvbW1Db25maWdEaWFsb2dXDQorQ29tcGFyZUZpbGVUaW1lDQorQ29tcGFyZVN0cmluZ0ENCitDb21wYXJlU3RyaW5nVw0KK0Nvbm5lY3ROYW1lZFBpcGUNCitDb25zb2xlSU1FUm91dGluZQ0KK0NvbnNvbGVNZW51Q29udHJvbA0KK0NvbnRpbnVlRGVidWdFdmVudA0KK0NvbnZlcnREZWZhdWx0TG9jYWxlDQorQ29udmVydEZpYmVyVG9UaHJlYWQNCitDb252ZXJ0VGhyZWFkVG9GaWJlcg0KK0NvbnZlcnRUaHJlYWRUb0ZpYmVyRXgNCitDb3B5RmlsZUENCitDb3B5RmlsZUV4QQ0KK0NvcHlGaWxlRXhXDQorQ29weUZpbGVXDQorQ29weUxaRmlsZQ0KK0NyZWF0ZUFjdEN0eEENCitDcmVhdGVBY3RDdHhXDQorQ3JlYXRlQ29uc29sZVNjcmVlbkJ1ZmZlcg0KK0NyZWF0ZURpcmVjdG9yeUENCitDcmVhdGVEaXJlY3RvcnlFeEENCitDcmVhdGVEaXJlY3RvcnlFeFcNCitDcmVhdGVEaXJlY3RvcnlXDQorQ3JlYXRlRXZlbnRBDQorQ3JlYXRlRXZlbnRXDQorQ3JlYXRlRmliZXINCitDcmVhdGVGaWJlckV4DQorQ3JlYXRlRmlsZUENCitDcmVhdGVGaWxlTWFwcGluZ0ENCitDcmVhdGVGaWxlTWFwcGluZ1cNCitDcmVhdGVGaWxlVw0KK0NyZWF0ZUhhcmRMaW5rQQ0KK0NyZWF0ZUhhcmRMaW5rVw0KK0NyZWF0ZUlvQ29tcGxldGlvblBvcnQNCitDcmVhdGVKb2JPYmplY3RBDQorQ3JlYXRlSm9iT2JqZWN0Vw0KK0NyZWF0ZUpvYlNldA0KK0NyZWF0ZU1haWxzbG90QQ0KK0NyZWF0ZU1haWxzbG90Vw0KK0NyZWF0ZU1lbW9yeVJlc291cmNlTm90aWZpY2F0aW9uDQorQ3JlYXRlTXV0ZXhBDQorQ3JlYXRlTXV0ZXhXDQorQ3JlYXRlTmFtZWRQaXBlQQ0KK0NyZWF0ZU5hbWVkUGlwZVcNCitDcmVhdGVObHNTZWN1cml0eURlc2NyaXB0b3INCitDcmVhdGVQaXBlDQorQ3JlYXRlUHJvY2Vzc0ENCitDcmVhdGVQcm9jZXNzSW50ZXJuYWxBDQorQ3JlYXRlUHJvY2Vzc0ludGVybmFsVw0KK0NyZWF0ZVByb2Nlc3NXDQorQ3JlYXRlUmVtb3RlVGhyZWFkDQorQ3JlYXRlU2VtYXBob3JlQUAzMg0KK0NyZWF0ZVNlbWFwaG9yZVdAMzINCitDcmVhdGVTb2NrZXRIYW5kbGUNCitDcmVhdGVUYXBlUGFydGl0aW9uDQorQ3JlYXRlVGhyZWFkDQorQ3JlYXRlVGltZXJRdWV1ZQ0KK0NyZWF0ZVRpbWVyUXVldWVUaW1lcg0KK0NyZWF0ZVRvb2xoZWxwMzJTbmFwc2hvdA0KK0NyZWF0ZVdhaXRhYmxlVGltZXJBDQorQ3JlYXRlV2FpdGFibGVUaW1lclcNCitDdHJsUm91dGluZQ0KK0RlYWN0aXZhdGVBY3RDdHgNCitEZWJ1Z0FjdGl2ZVByb2Nlc3MNCitEZWJ1Z0FjdGl2ZVByb2Nlc3NTdG9wDQorRGVidWdCcmVhaw0KK0RlYnVnQnJlYWtQcm9jZXNzDQorRGVidWdTZXRQcm9jZXNzS2lsbE9uRXhpdA0KK0RlY29kZVBvaW50ZXINCitEZWNvZGVTeXN0ZW1Qb2ludGVyDQorRGVmaW5lRG9zRGV2aWNlQQ0KK0RlZmluZURvc0RldmljZVcNCitEZWxheUxvYWRGYWlsdXJlSG9vaw0KK0RlbGV0ZUF0b20NCitEZWxldGVDcml0aWNhbFNlY3Rpb24NCitEZWxldGVGaWJlcg0KK0RlbGV0ZUZpbGVBDQorRGVsZXRlRmlsZVcNCitEZWxldGVUaW1lclF1ZXVlDQorRGVsZXRlVGltZXJRdWV1ZUV4DQorRGVsZXRlVGltZXJRdWV1ZVRpbWVyDQorRGVsZXRlVm9sdW1lTW91bnRQb2ludEENCitEZWxldGVWb2x1bWVNb3VudFBvaW50Vw0KK0RldmljZUlvQ29udHJvbA0KK0Rpc2FibGVUaHJlYWRMaWJyYXJ5Q2FsbHMNCitEaXNjb25uZWN0TmFtZWRQaXBlDQorRG5zSG9zdG5hbWVUb0NvbXB1dGVyTmFtZUENCitEbnNIb3N0bmFtZVRvQ29tcHV0ZXJOYW1lVw0KK0Rvc0RhdGVUaW1lVG9GaWxlVGltZQ0KK0Rvc1BhdGhUb1Nlc3Npb25QYXRoQQ0KK0Rvc1BhdGhUb1Nlc3Npb25QYXRoVw0KK0R1cGxpY2F0ZUNvbnNvbGVIYW5kbGUNCitEdXBsaWNhdGVIYW5kbGUNCitFbmNvZGVQb2ludGVyDQorRW5jb2RlU3lzdGVtUG9pbnRlcg0KK0VuZFVwZGF0ZVJlc291cmNlQQ0KK0VuZFVwZGF0ZVJlc291cmNlVw0KK0VudGVyQ3JpdGljYWxTZWN0aW9uDQorRW51bUNhbGVuZGFySW5mb0ENCitFbnVtQ2FsZW5kYXJJbmZvRXhBDQorRW51bUNhbGVuZGFySW5mb0V4Vw0KK0VudW1DYWxlbmRhckluZm9XDQorRW51bURhdGVGb3JtYXRzQQ0KK0VudW1EYXRlRm9ybWF0c0V4QQ0KK0VudW1EYXRlRm9ybWF0c0V4Vw0KK0VudW1EYXRlRm9ybWF0c1cNCitFbnVtTGFuZ3VhZ2VHcm91cExvY2FsZXNBDQorRW51bUxhbmd1YWdlR3JvdXBMb2NhbGVzVw0KK0VudW1SZXNvdXJjZUxhbmd1YWdlc0ENCitFbnVtUmVzb3VyY2VMYW5ndWFnZXNXDQorRW51bVJlc291cmNlTmFtZXNBDQorRW51bVJlc291cmNlTmFtZXNXDQorRW51bVJlc291cmNlVHlwZXNBDQorRW51bVJlc291cmNlVHlwZXNXDQorRW51bVN5c3RlbUNvZGVQYWdlc0ENCitFbnVtU3lzdGVtQ29kZVBhZ2VzVw0KK0VudW1TeXN0ZW1GaXJtd2FyZVRhYmxlcw0KK0VudW1TeXN0ZW1HZW9JRA0KK0VudW1TeXN0ZW1MYW5ndWFnZUdyb3Vwc0ENCitFbnVtU3lzdGVtTGFuZ3VhZ2VHcm91cHNXDQorRW51bVN5c3RlbUxvY2FsZXNBDQorRW51bVN5c3RlbUxvY2FsZXNXDQorRW51bVRpbWVGb3JtYXRzQQ0KK0VudW1UaW1lRm9ybWF0c1cNCitFbnVtVUlMYW5ndWFnZXNBDQorRW51bVVJTGFuZ3VhZ2VzVw0KK0VudW1lcmF0ZUxvY2FsQ29tcHV0ZXJOYW1lc0ENCitFbnVtZXJhdGVMb2NhbENvbXB1dGVyTmFtZXNXDQorRXJhc2VUYXBlDQorRXNjYXBlQ29tbUZ1bmN0aW9uDQorRXhpdFByb2Nlc3MNCitFeGl0VGhyZWFkDQorRXhpdFZETQ0KK0V4cGFuZEVudmlyb25tZW50U3RyaW5nc0ENCitFeHBhbmRFbnZpcm9ubWVudFN0cmluZ3NXDQorRXhwdW5nZUNvbnNvbGVDb21tYW5kSGlzdG9yeUENCitFeHB1bmdlQ29uc29sZUNvbW1hbmRIaXN0b3J5Vw0KK0ZhdGFsQXBwRXhpdEENCitGYXRhbEFwcEV4aXRXDQorRmF0YWxFeGl0DQorRmlsZVRpbWVUb0Rvc0RhdGVUaW1lDQorRmlsZVRpbWVUb0xvY2FsRmlsZVRpbWUNCitGaWxlVGltZVRvU3lzdGVtVGltZQ0KK0ZpbGxDb25zb2xlT3V0cHV0QXR0cmlidXRlDQorRmlsbENvbnNvbGVPdXRwdXRDaGFyYWN0ZXJBDQorRmlsbENvbnNvbGVPdXRwdXRDaGFyYWN0ZXJXDQorRmluZEFjdEN0eFNlY3Rpb25HdWlkDQorRmluZEFjdEN0eFNlY3Rpb25TdHJpbmdBDQorRmluZEFjdEN0eFNlY3Rpb25TdHJpbmdXDQorRmluZEF0b21BDQorRmluZEF0b21XDQorRmluZENsb3NlDQorRmluZENsb3NlQ2hhbmdlTm90aWZpY2F0aW9uDQorRmluZEZpcnN0Q2hhbmdlTm90aWZpY2F0aW9uQQ0KK0ZpbmRGaXJzdENoYW5nZU5vdGlmaWNhdGlvblcNCitGaW5kRmlyc3RGaWxlQQ0KK0ZpbmRGaXJzdEZpbGVFeEENCitGaW5kRmlyc3RGaWxlRXhXDQorRmluZEZpcnN0RmlsZVcNCitGaW5kRmlyc3RTdHJlYW1XDQorRmluZEZpcnN0Vm9sdW1lQQ0KK0ZpbmRGaXJzdFZvbHVtZU1vdW50UG9pbnRBDQorRmluZEZpcnN0Vm9sdW1lTW91bnRQb2ludFcNCitGaW5kRmlyc3RWb2x1bWVXDQorRmluZE5leHRDaGFuZ2VOb3RpZmljYXRpb24NCitGaW5kTmV4dEZpbGVBDQorRmluZE5leHRGaWxlVw0KK0ZpbmROZXh0U3RyZWFtVw0KK0ZpbmROZXh0Vm9sdW1lQQ0KK0ZpbmROZXh0Vm9sdW1lTW91bnRQb2ludEENCitGaW5kTmV4dFZvbHVtZU1vdW50UG9pbnRXDQorRmluZE5leHRWb2x1bWVXDQorRmluZFJlc291cmNlQQ0KK0ZpbmRSZXNvdXJjZUV4QQ0KK0ZpbmRSZXNvdXJjZUV4Vw0KK0ZpbmRSZXNvdXJjZVcNCitGaW5kVm9sdW1lQ2xvc2UNCitGaW5kVm9sdW1lTW91bnRQb2ludENsb3NlDQorRmxzQWxsb2MNCitGbHNGcmVlDQorRmxzR2V0VmFsdWUNCitGbHNTZXRWYWx1ZQ0KK0ZsdXNoQ29uc29sZUlucHV0QnVmZmVyDQorRmx1c2hGaWxlQnVmZmVycw0KK0ZsdXNoSW5zdHJ1Y3Rpb25DYWNoZQ0KK0ZsdXNoVmlld09mRmlsZQ0KK0ZvbGRTdHJpbmdBDQorRm9sZFN0cmluZ1cNCitGb3JtYXRNZXNzYWdlQQ0KK0Zvcm1hdE1lc3NhZ2VXDQorRnJlZUNvbnNvbGUNCitGcmVlRW52aXJvbm1lbnRTdHJpbmdzQQ0KK0ZyZWVFbnZpcm9ubWVudFN0cmluZ3NXDQorRnJlZUxpYnJhcnkNCitGcmVlTGlicmFyeUFuZEV4aXRUaHJlYWQNCitGcmVlUmVzb3VyY2UNCitGcmVlVXNlclBoeXNpY2FsUGFnZXMNCitHZW5lcmF0ZUNvbnNvbGVDdHJsRXZlbnQNCitHZXRBQ1ANCitHZXRBdG9tTmFtZUENCitHZXRBdG9tTmFtZVcNCitHZXRCaW5hcnlUeXBlDQorR2V0QmluYXJ5VHlwZUENCitHZXRCaW5hcnlUeXBlVw0KK0dldENQRmlsZU5hbWVGcm9tUmVnaXN0cnkNCitHZXRDUEluZm8NCitHZXRDUEluZm9FeEENCitHZXRDUEluZm9FeFcNCitHZXRDYWxlbmRhckluZm9BDQorR2V0Q2FsZW5kYXJJbmZvVw0KK0dldENvbVBsdXNQYWNrYWdlSW5zdGFsbFN0YXR1cw0KK0dldENvbW1Db25maWcNCitHZXRDb21tTWFzaw0KK0dldENvbW1Nb2RlbVN0YXR1cw0KK0dldENvbW1Qcm9wZXJ0aWVzDQorR2V0Q29tbVN0YXRlDQorR2V0Q29tbVRpbWVvdXRzDQorR2V0Q29tbWFuZExpbmVBDQorR2V0Q29tbWFuZExpbmVXDQorR2V0Q29tcHJlc3NlZEZpbGVTaXplQQ0KK0dldENvbXByZXNzZWRGaWxlU2l6ZVcNCitHZXRDb21wdXRlck5hbWVBDQorR2V0Q29tcHV0ZXJOYW1lRXhBDQorR2V0Q29tcHV0ZXJOYW1lRXhXDQorR2V0Q29tcHV0ZXJOYW1lVw0KK0dldENvbnNvbGVBbGlhc0ENCitHZXRDb25zb2xlQWxpYXNFeGVzQQ0KK0dldENvbnNvbGVBbGlhc0V4ZXNMZW5ndGhBDQorR2V0Q29uc29sZUFsaWFzRXhlc0xlbmd0aFcNCitHZXRDb25zb2xlQWxpYXNFeGVzVw0KK0dldENvbnNvbGVBbGlhc1cNCitHZXRDb25zb2xlQWxpYXNlc0ENCitHZXRDb25zb2xlQWxpYXNlc0xlbmd0aEENCitHZXRDb25zb2xlQWxpYXNlc0xlbmd0aFcNCitHZXRDb25zb2xlQWxpYXNlc1cNCitHZXRDb25zb2xlQ1ANCitHZXRDb25zb2xlQ2hhclR5cGUNCitHZXRDb25zb2xlQ29tbWFuZEhpc3RvcnlBDQorR2V0Q29uc29sZUNvbW1hbmRIaXN0b3J5TGVuZ3RoQQ0KK0dldENvbnNvbGVDb21tYW5kSGlzdG9yeUxlbmd0aFcNCitHZXRDb25zb2xlQ29tbWFuZEhpc3RvcnlXDQorR2V0Q29uc29sZUN1cnNvckluZm8NCitHZXRDb25zb2xlQ3Vyc29yTW9kZQ0KK0dldENvbnNvbGVEaXNwbGF5TW9kZQ0KK0dldENvbnNvbGVGb250SW5mbw0KK0dldENvbnNvbGVGb250U2l6ZQ0KK0dldENvbnNvbGVIYXJkd2FyZVN0YXRlDQorR2V0Q29uc29sZUlucHV0RXhlTmFtZUENCitHZXRDb25zb2xlSW5wdXRFeGVOYW1lVw0KK0dldENvbnNvbGVJbnB1dFdhaXRIYW5kbGUNCitHZXRDb25zb2xlS2V5Ym9hcmRMYXlvdXROYW1lQQ0KK0dldENvbnNvbGVLZXlib2FyZExheW91dE5hbWVXDQorR2V0Q29uc29sZU1vZGUNCitHZXRDb25zb2xlTmxzTW9kZQ0KK0dldENvbnNvbGVPdXRwdXRDUA0KK0dldENvbnNvbGVQcm9jZXNzTGlzdA0KK0dldENvbnNvbGVTY3JlZW5CdWZmZXJJbmZvDQorR2V0Q29uc29sZVNlbGVjdGlvbkluZm8NCitHZXRDb25zb2xlVGl0bGVBDQorR2V0Q29uc29sZVRpdGxlVw0KK0dldENvbnNvbGVXaW5kb3cNCitHZXRDdXJyZW5jeUZvcm1hdEENCitHZXRDdXJyZW5jeUZvcm1hdFcNCitHZXRDdXJyZW50QWN0Q3R4DQorR2V0Q3VycmVudENvbnNvbGVGb250DQorR2V0Q3VycmVudERpcmVjdG9yeUENCitHZXRDdXJyZW50RGlyZWN0b3J5Vw0KK0dldEN1cnJlbnRQcm9jZXNzDQorR2V0Q3VycmVudFByb2Nlc3NJZA0KK0dldEN1cnJlbnRQcm9jZXNzb3JOdW1iZXINCitHZXRDdXJyZW50VGhyZWFkDQorR2V0Q3VycmVudFRocmVhZElkDQorR2V0RGF0ZUZvcm1hdEENCitHZXREYXRlRm9ybWF0Vw0KK0dldERlZmF1bHRDb21tQ29uZmlnQQ0KK0dldERlZmF1bHRDb21tQ29uZmlnVw0KK0dldERlZmF1bHRTb3J0a2V5U2l6ZQ0KK0dldERldmljZVBvd2VyU3RhdGUNCitHZXREaXNrRnJlZVNwYWNlQQ0KK0dldERpc2tGcmVlU3BhY2VFeEENCitHZXREaXNrRnJlZVNwYWNlRXhXDQorR2V0RGlza0ZyZWVTcGFjZVcNCitHZXREbGxEaXJlY3RvcnlBDQorR2V0RGxsRGlyZWN0b3J5Vw0KK0dldERyaXZlVHlwZUENCitHZXREcml2ZVR5cGVXDQorR2V0RW52aXJvbm1lbnRTdHJpbmdzDQorR2V0RW52aXJvbm1lbnRTdHJpbmdzQQ0KK0dldEVudmlyb25tZW50U3RyaW5nc1cNCitHZXRFbnZpcm9ubWVudFZhcmlhYmxlQQ0KK0dldEVudmlyb25tZW50VmFyaWFibGVXDQorR2V0RXhpdENvZGVQcm9jZXNzDQorR2V0RXhpdENvZGVUaHJlYWQNCitHZXRFeHBhbmRlZE5hbWVBDQorR2V0RXhwYW5kZWROYW1lVw0KK0dldEZpbGVBdHRyaWJ1dGVzQUA4DQorR2V0RmlsZUF0dHJpYnV0ZXNFeEENCitHZXRGaWxlQXR0cmlidXRlc0V4Vw0KK0dldEZpbGVBdHRyaWJ1dGVzVw0KK0dldEZpbGVJbmZvcm1hdGlvbkJ5SGFuZGxlDQorR2V0RmlsZVNpemUNCitHZXRGaWxlU2l6ZUV4DQorR2V0RmlsZVRpbWUNCitHZXRGaWxlVHlwZQ0KK0dldEZpcm13YXJlRW52aXJvbm1lbnRWYXJpYWJsZUENCitHZXRGaXJtd2FyZUVudmlyb25tZW50VmFyaWFibGVXDQorR2V0RnVsbFBhdGhOYW1lQQ0KK0dldEZ1bGxQYXRoTmFtZVcNCitHZXRHZW9JbmZvQQ0KK0dldEdlb0luZm9XDQorR2V0SGFuZGxlQ29udGV4dA0KK0dldEhhbmRsZUluZm9ybWF0aW9uDQorR2V0TGFyZ2VQYWdlTWluaW11bQ0KK0dldExhcmdlc3RDb25zb2xlV2luZG93U2l6ZQ0KK0dldExhc3RFcnJvcg0KK0dldExpbmd1aXN0TGFuZ1NpemUNCitHZXRMb2NhbFRpbWUNCitHZXRMb2NhbGVJbmZvQQ0KK0dldExvY2FsZUluZm9XDQorR2V0TG9naWNhbERyaXZlU3RyaW5nc0ENCitHZXRMb2dpY2FsRHJpdmVTdHJpbmdzVw0KK0dldExvZ2ljYWxEcml2ZXMNCitHZXRMb2dpY2FsUHJvY2Vzc29ySW5mb3JtYXRpb24NCitHZXRMb25nUGF0aE5hbWVBDQorR2V0TG9uZ1BhdGhOYW1lVw0KK0dldE1haWxzbG90SW5mbw0KK0dldE1vZHVsZUZpbGVOYW1lQQ0KK0dldE1vZHVsZUZpbGVOYW1lVw0KK0dldE1vZHVsZUhhbmRsZUENCitHZXRNb2R1bGVIYW5kbGVFeEENCitHZXRNb2R1bGVIYW5kbGVFeFcNCitHZXRNb2R1bGVIYW5kbGVXDQorR2V0TkxTVmVyc2lvbg0KK0dldE5hbWVkUGlwZUhhbmRsZVN0YXRlQQ0KK0dldE5hbWVkUGlwZUhhbmRsZVN0YXRlVw0KK0dldE5hbWVkUGlwZUluZm8NCitHZXROYXRpdmVTeXN0ZW1JbmZvDQorR2V0TmV4dFZETUNvbW1hbmQNCitHZXRObHNTZWN0aW9uTmFtZQ0KK0dldE51bWFBdmFpbGFibGVNZW1vcnlOb2RlDQorR2V0TnVtYUhpZ2hlc3ROb2RlTnVtYmVyDQorR2V0TnVtYU5vZGVQcm9jZXNzb3JNYXNrDQorR2V0TnVtYVByb2Nlc3Nvck5vZGUNCitHZXROdW1iZXJGb3JtYXRBDQorR2V0TnVtYmVyRm9ybWF0Vw0KK0dldE51bWJlck9mQ29uc29sZUZvbnRzDQorR2V0TnVtYmVyT2ZDb25zb2xlSW5wdXRFdmVudHMNCitHZXROdW1iZXJPZkNvbnNvbGVNb3VzZUJ1dHRvbnMNCitHZXRPRU1DUA0KK0dldE92ZXJsYXBwZWRSZXN1bHQNCitHZXRQcmlvcml0eUNsYXNzDQorR2V0UHJpdmF0ZVByb2ZpbGVJbnRBDQorR2V0UHJpdmF0ZVByb2ZpbGVJbnRXDQorR2V0UHJpdmF0ZVByb2ZpbGVTZWN0aW9uQQ0KK0dldFByaXZhdGVQcm9maWxlU2VjdGlvbk5hbWVzQQ0KK0dldFByaXZhdGVQcm9maWxlU2VjdGlvbk5hbWVzVw0KK0dldFByaXZhdGVQcm9maWxlU2VjdGlvblcNCitHZXRQcml2YXRlUHJvZmlsZVN0cmluZ0ENCitHZXRQcml2YXRlUHJvZmlsZVN0cmluZ1cNCitHZXRQcml2YXRlUHJvZmlsZVN0cnVjdEENCitHZXRQcml2YXRlUHJvZmlsZVN0cnVjdFcNCitHZXRQcm9jQWRkcmVzcw0KK0dldFByb2Nlc3NBZmZpbml0eU1hc2sNCitHZXRQcm9jZXNzSGFuZGxlQ291bnQNCitHZXRQcm9jZXNzSGVhcA0KK0dldFByb2Nlc3NIZWFwcw0KK0dldFByb2Nlc3NJZA0KK0dldFByb2Nlc3NJZE9mVGhyZWFkDQorR2V0UHJvY2Vzc0lvQ291bnRlcnMNCitHZXRQcm9jZXNzUHJpb3JpdHlCb29zdA0KK0dldFByb2Nlc3NTaHV0ZG93blBhcmFtZXRlcnMNCitHZXRQcm9jZXNzVGltZXMNCitHZXRQcm9jZXNzVmVyc2lvbg0KK0dldFByb2Nlc3NXb3JraW5nU2V0U2l6ZQ0KK0dldFByb2Nlc3NXb3JraW5nU2V0U2l6ZUV4DQorR2V0UHJvZmlsZUludEENCitHZXRQcm9maWxlSW50Vw0KK0dldFByb2ZpbGVTZWN0aW9uQQ0KK0dldFByb2ZpbGVTZWN0aW9uVw0KK0dldFByb2ZpbGVTdHJpbmdBDQorR2V0UHJvZmlsZVN0cmluZ1cNCitHZXRRdWV1ZWRDb21wbGV0aW9uU3RhdHVzDQorR2V0U2hvcnRQYXRoTmFtZUENCitHZXRTaG9ydFBhdGhOYW1lVw0KK0dldFN0YXJ0dXBJbmZvQQ0KK0dldFN0YXJ0dXBJbmZvVw0KK0dldFN0ZEhhbmRsZQ0KK0dldFN0cmluZ1R5cGVBDQorR2V0U3RyaW5nVHlwZUV4QQ0KK0dldFN0cmluZ1R5cGVFeFcNCitHZXRTdHJpbmdUeXBlVw0KK0dldFN5c3RlbURlZmF1bHRMQ0lEDQorR2V0U3lzdGVtRGVmYXVsdExhbmdJRA0KK0dldFN5c3RlbURlZmF1bHRVSUxhbmd1YWdlDQorR2V0U3lzdGVtRGlyZWN0b3J5QQ0KK0dldFN5c3RlbURpcmVjdG9yeVcNCitHZXRTeXN0ZW1GaWxlQ2FjaGVTaXplDQorR2V0U3lzdGVtRmlybXdhcmVUYWJsZQ0KK0dldFN5c3RlbUluZm8NCitHZXRTeXN0ZW1Qb3dlclN0YXR1cw0KK0dldFN5c3RlbVJlZ2lzdHJ5UXVvdGENCitHZXRTeXN0ZW1UaW1lDQorR2V0U3lzdGVtVGltZUFkanVzdG1lbnQNCitHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZQ0KK0dldFN5c3RlbVRpbWVzDQorR2V0U3lzdGVtV2luZG93c0RpcmVjdG9yeUENCitHZXRTeXN0ZW1XaW5kb3dzRGlyZWN0b3J5Vw0KK0dldFN5c3RlbVdvdzY0RGlyZWN0b3J5QQ0KK0dldFN5c3RlbVdvdzY0RGlyZWN0b3J5Vw0KK0dldFRhcGVQYXJhbWV0ZXJzDQorR2V0VGFwZVBvc2l0aW9uDQorR2V0VGFwZVN0YXR1cw0KK0dldFRlbXBGaWxlTmFtZUENCitHZXRUZW1wRmlsZU5hbWVXDQorR2V0VGVtcFBhdGhBDQorR2V0VGVtcFBhdGhXDQorR2V0VGhyZWFkQ29udGV4dA0KK0dldFRocmVhZElPUGVuZGluZ0ZsYWcNCitHZXRUaHJlYWRJZA0KK0dldFRocmVhZExvY2FsZQ0KK0dldFRocmVhZFByaW9yaXR5DQorR2V0VGhyZWFkUHJpb3JpdHlCb29zdA0KK0dldFRocmVhZFNlbGVjdG9yRW50cnkNCitHZXRUaHJlYWRUaW1lcw0KK0dldFRpY2tDb3VudA0KK0dldFRpbWVGb3JtYXRBDQorR2V0VGltZUZvcm1hdFcNCitHZXRUaW1lWm9uZUluZm9ybWF0aW9uDQorR2V0VXNlckRlZmF1bHRMQ0lEDQorR2V0VXNlckRlZmF1bHRMYW5nSUQNCitHZXRVc2VyRGVmYXVsdFVJTGFuZ3VhZ2UNCitHZXRVc2VyR2VvSUQNCitHZXRWRE1DdXJyZW50RGlyZWN0b3JpZXMNCitHZXRWZXJzaW9uDQorR2V0VmVyc2lvbkV4QQ0KK0dldFZlcnNpb25FeFcNCitHZXRWb2x1bWVJbmZvcm1hdGlvbkENCitHZXRWb2x1bWVJbmZvcm1hdGlvblcNCitHZXRWb2x1bWVOYW1lRm9yVm9sdW1lTW91bnRQb2ludEENCitHZXRWb2x1bWVOYW1lRm9yVm9sdW1lTW91bnRQb2ludFcNCitHZXRWb2x1bWVQYXRoTmFtZUENCitHZXRWb2x1bWVQYXRoTmFtZVcNCitHZXRWb2x1bWVQYXRoTmFtZXNGb3JWb2x1bWVOYW1lQQ0KK0dldFZvbHVtZVBhdGhOYW1lc0ZvclZvbHVtZU5hbWVXDQorR2V0V2luZG93c0RpcmVjdG9yeUENCitHZXRXaW5kb3dzRGlyZWN0b3J5Vw0KK0dldFdyaXRlV2F0Y2gNCitHbG9iYWxBZGRBdG9tQQ0KK0dsb2JhbEFkZEF0b21XDQorR2xvYmFsQWxsb2MNCitHbG9iYWxDb21wYWN0DQorR2xvYmFsRGVsZXRlQXRvbQ0KK0dsb2JhbEZpbmRBdG9tQQ0KK0dsb2JhbEZpbmRBdG9tVw0KK0dsb2JhbEZpeA0KK0dsb2JhbEZsYWdzDQorR2xvYmFsRnJlZQ0KK0dsb2JhbEdldEF0b21OYW1lQQ0KK0dsb2JhbEdldEF0b21OYW1lVw0KK0dsb2JhbEhhbmRsZQ0KK0dsb2JhbExvY2sNCitHbG9iYWxNZW1vcnlTdGF0dXNAOA0KK0dsb2JhbE1lbW9yeVN0YXR1c0V4DQorR2xvYmFsUmVBbGxvYw0KK0dsb2JhbFNpemUNCitHbG9iYWxVbldpcmUNCitHbG9iYWxVbmZpeA0KK0dsb2JhbFVubG9jaw0KK0dsb2JhbFdpcmUNCitIZWFwMzJGaXJzdA0KK0hlYXAzMkxpc3RGaXJzdA0KK0hlYXAzMkxpc3ROZXh0DQorSGVhcDMyTmV4dA0KK0hlYXBBbGxvYw0KK0hlYXBDb21wYWN0DQorSGVhcENyZWF0ZQ0KK0hlYXBDcmVhdGVUYWdzVw0KK0hlYXBEZXN0cm95DQorSGVhcEV4dGVuZA0KK0hlYXBGcmVlDQorSGVhcExvY2sNCitIZWFwUXVlcnlJbmZvcm1hdGlvbg0KK0hlYXBRdWVyeVRhZ1cNCitIZWFwUmVBbGxvYw0KK0hlYXBTZXRJbmZvcm1hdGlvbg0KK0hlYXBTaXplDQorSGVhcFN1bW1hcnkNCitIZWFwVW5sb2NrDQorSGVhcFVzYWdlDQorSGVhcFZhbGlkYXRlDQorSGVhcFdhbGsNCitJbml0QXRvbVRhYmxlDQorSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbg0KK0luaXRpYWxpemVDcml0aWNhbFNlY3Rpb25BbmRTcGluQ291bnQNCitJbml0aWFsaXplU0xpc3RIZWFkDQorSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2U2NA0KK0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlDQorSW50ZXJsb2NrZWREZWNyZW1lbnQNCitJbnRlcmxvY2tlZEV4Y2hhbmdlDQorSW50ZXJsb2NrZWRFeGNoYW5nZUFkZA0KK0ludGVybG9ja2VkRmx1c2hTTGlzdA0KK0ludGVybG9ja2VkSW5jcmVtZW50DQorSW50ZXJsb2NrZWRQb3BFbnRyeVNMaXN0DQorSW50ZXJsb2NrZWRQdXNoRW50cnlTTGlzdA0KK0ludmFsaWRhdGVDb25zb2xlRElCaXRzDQorSXNCYWRDb2RlUHRyDQorSXNCYWRIdWdlUmVhZFB0cg0KK0lzQmFkSHVnZVdyaXRlUHRyDQorSXNCYWRSZWFkUHRyDQorSXNCYWRTdHJpbmdQdHJBDQorSXNCYWRTdHJpbmdQdHJXDQorSXNCYWRXcml0ZVB0cg0KK0lzREJDU0xlYWRCeXRlDQorSXNEQkNTTGVhZEJ5dGVFeA0KK0lzRGVidWdnZXJQcmVzZW50DQorSXNOTFNEZWZpbmVkU3RyaW5nDQorSXNQcm9jZXNzSW5Kb2INCitJc1Byb2Nlc3NvckZlYXR1cmVQcmVzZW50DQorSXNTeXN0ZW1SZXN1bWVBdXRvbWF0aWMNCitJc1RpbWVab25lUmVkaXJlY3Rpb25FbmFibGVkDQorSXNWYWxpZENvZGVQYWdlDQorSXNWYWxpZExhbmd1YWdlR3JvdXANCitJc1ZhbGlkTG9jYWxlDQorSXNWYWxpZFVJTGFuZ3VhZ2UNCitJc1dvdzY0UHJvY2Vzcw0KK0xDTWFwU3RyaW5nQQ0KK0xDTWFwU3RyaW5nVw0KK0xaQ2xvc2UNCitMWkNsb3NlRmlsZQ0KK0xaQ29weQ0KK0xaQ3JlYXRlRmlsZVcNCitMWkRvbmUNCitMWkluaXQNCitMWk9wZW5GaWxlQQ0KK0xaT3BlbkZpbGVXDQorTFpSZWFkDQorTFpTZWVrDQorTFpTdGFydA0KK0xlYXZlQ3JpdGljYWxTZWN0aW9uDQorTG9hZExpYnJhcnlBDQorTG9hZExpYnJhcnlFeEENCitMb2FkTGlicmFyeUV4Vw0KK0xvYWRMaWJyYXJ5Vw0KK0xvYWRNb2R1bGUNCitMb2FkUmVzb3VyY2UNCitMb2NhbEFsbG9jDQorTG9jYWxDb21wYWN0DQorTG9jYWxGaWxlVGltZVRvRmlsZVRpbWUNCitMb2NhbEZsYWdzDQorTG9jYWxGcmVlDQorTG9jYWxIYW5kbGUNCitMb2NhbExvY2sNCitMb2NhbFJlQWxsb2MNCitMb2NhbFNocmluaw0KK0xvY2FsU2l6ZQ0KK0xvY2FsVW5sb2NrDQorTG9ja0ZpbGUNCitMb2NrRmlsZUV4DQorTG9ja1Jlc291cmNlDQorTWFwVXNlclBoeXNpY2FsUGFnZXMNCitNYXBVc2VyUGh5c2ljYWxQYWdlc1NjYXR0ZXINCitNYXBWaWV3T2ZGaWxlDQorTWFwVmlld09mRmlsZUV4DQorTW9kdWxlMzJGaXJzdA0KK01vZHVsZTMyRmlyc3RXDQorTW9kdWxlMzJOZXh0DQorTW9kdWxlMzJOZXh0Vw0KK01vdmVGaWxlQQ0KK01vdmVGaWxlRXhBDQorTW92ZUZpbGVFeFcNCitNb3ZlRmlsZVcNCitNb3ZlRmlsZVdpdGhQcm9ncmVzc0ENCitNb3ZlRmlsZVdpdGhQcm9ncmVzc1cNCitNdWxEaXYNCitNdWx0aUJ5dGVUb1dpZGVDaGFyDQorTmVlZEN1cnJlbnREaXJlY3RvcnlGb3JFeGVQYXRoQQ0KK05lZWRDdXJyZW50RGlyZWN0b3J5Rm9yRXhlUGF0aFcNCitObHNDb252ZXJ0SW50ZWdlclRvU3RyaW5nDQorTmxzR2V0Q2FjaGVVcGRhdGVDb3VudA0KK05sc1Jlc2V0UHJvY2Vzc0xvY2FsZQ0KK09wZW5Db25zb2xlVw0KK09wZW5EYXRhRmlsZQ0KK09wZW5FdmVudEENCitPcGVuRXZlbnRXDQorT3BlbkZpbGUNCitPcGVuRmlsZU1hcHBpbmdBDQorT3BlbkZpbGVNYXBwaW5nVw0KK09wZW5Kb2JPYmplY3RBDQorT3BlbkpvYk9iamVjdFcNCitPcGVuTXV0ZXhBDQorT3Blbk11dGV4Vw0KK09wZW5Qcm9jZXNzDQorT3BlblByb2ZpbGVVc2VyTWFwcGluZw0KK09wZW5TZW1hcGhvcmVBDQorT3BlblNlbWFwaG9yZVcNCitPcGVuVGhyZWFkDQorT3BlbldhaXRhYmxlVGltZXJBDQorT3BlbldhaXRhYmxlVGltZXJXDQorT3V0cHV0RGVidWdTdHJpbmdBDQorT3V0cHV0RGVidWdTdHJpbmdXDQorUGVla0NvbnNvbGVJbnB1dEENCitQZWVrQ29uc29sZUlucHV0Vw0KK1BlZWtOYW1lZFBpcGUNCitQb3N0UXVldWVkQ29tcGxldGlvblN0YXR1cw0KK1ByZXBhcmVUYXBlDQorUHJpdkNvcHlGaWxlRXhXDQorUHJpdk1vdmVGaWxlSWRlbnRpdHlXDQorUHJvY2VzczMyRmlyc3QNCitQcm9jZXNzMzJGaXJzdFcNCitQcm9jZXNzMzJOZXh0DQorUHJvY2VzczMyTmV4dFcNCitQcm9jZXNzSWRUb1Nlc3Npb25JZA0KK1B1bHNlRXZlbnQNCitQdXJnZUNvbW0NCitRdWVyeUFjdEN0eFcNCitRdWVyeURlcHRoU0xpc3QNCitRdWVyeURvc0RldmljZUENCitRdWVyeURvc0RldmljZVcNCitRdWVyeUluZm9ybWF0aW9uSm9iT2JqZWN0DQorUXVlcnlNZW1vcnlSZXNvdXJjZU5vdGlmaWNhdGlvbg0KK1F1ZXJ5UGVyZm9ybWFuY2VDb3VudGVyDQorUXVlcnlQZXJmb3JtYW5jZUZyZXF1ZW5jeQ0KK1F1ZXVlVXNlckFQQw0KK1F1ZXVlVXNlcldvcmtJdGVtDQorUmFpc2VFeGNlcHRpb24NCitSZU9wZW5GaWxlDQorUmVhZENvbnNvbGVBDQorUmVhZENvbnNvbGVJbnB1dEENCitSZWFkQ29uc29sZUlucHV0RXhBDQorUmVhZENvbnNvbGVJbnB1dEV4Vw0KK1JlYWRDb25zb2xlSW5wdXRXDQorUmVhZENvbnNvbGVPdXRwdXRBDQorUmVhZENvbnNvbGVPdXRwdXRBdHRyaWJ1dGUNCitSZWFkQ29uc29sZU91dHB1dENoYXJhY3RlckENCitSZWFkQ29uc29sZU91dHB1dENoYXJhY3RlclcNCitSZWFkQ29uc29sZU91dHB1dFcNCitSZWFkQ29uc29sZVcNCitSZWFkRGlyZWN0b3J5Q2hhbmdlc1cNCitSZWFkRmlsZQ0KK1JlYWRGaWxlRXgNCitSZWFkRmlsZVNjYXR0ZXINCitSZWFkUHJvY2Vzc01lbW9yeQ0KK1JlZ2lzdGVyQ29uc29sZUlNRQ0KK1JlZ2lzdGVyQ29uc29sZU9TMg0KK1JlZ2lzdGVyQ29uc29sZVZETQ0KK1JlZ2lzdGVyV2FpdEZvcklucHV0SWRsZQ0KK1JlZ2lzdGVyV2FpdEZvclNpbmdsZU9iamVjdA0KK1JlZ2lzdGVyV2FpdEZvclNpbmdsZU9iamVjdEV4DQorUmVnaXN0ZXJXb3dCYXNlSGFuZGxlcnMNCitSZWdpc3Rlcldvd0V4ZWMNCitSZWxlYXNlQWN0Q3R4DQorUmVsZWFzZU11dGV4DQorUmVsZWFzZVNlbWFwaG9yZUAyNA0KK1JlbW92ZURpcmVjdG9yeUENCitSZW1vdmVEaXJlY3RvcnlXDQorUmVtb3ZlTG9jYWxBbHRlcm5hdGVDb21wdXRlck5hbWVBDQorUmVtb3ZlTG9jYWxBbHRlcm5hdGVDb21wdXRlck5hbWVXDQorUmVtb3ZlVmVjdG9yZWRDb250aW51ZUhhbmRsZXINCitSZW1vdmVWZWN0b3JlZEV4Y2VwdGlvbkhhbmRsZXINCitSZXBsYWNlRmlsZQ0KK1JlcGxhY2VGaWxlQQ0KK1JlcGxhY2VGaWxlVw0KK1JlcXVlc3REZXZpY2VXYWtldXANCitSZXF1ZXN0V2FrZXVwTGF0ZW5jeQ0KK1Jlc2V0RXZlbnQNCitSZXNldFdyaXRlV2F0Y2gNCitSZXN0b3JlTGFzdEVycm9yDQorUmVzdW1lVGhyZWFkDQorUnRsQ2FwdHVyZUNvbnRleHQNCitSdGxDYXB0dXJlU3RhY2tCYWNrVHJhY2UNCitSdGxGaWxsTWVtb3J5DQorUnRsTW92ZU1lbW9yeQ0KK1J0bFVud2luZA0KK1J0bFplcm9NZW1vcnkNCitTY3JvbGxDb25zb2xlU2NyZWVuQnVmZmVyQQ0KK1Njcm9sbENvbnNvbGVTY3JlZW5CdWZmZXJXDQorU2VhcmNoUGF0aEENCitTZWFyY2hQYXRoVw0KK1NldENQR2xvYmFsDQorU2V0Q2FsZW5kYXJJbmZvQQ0KK1NldENhbGVuZGFySW5mb1cNCitTZXRDbGllbnRUaW1lWm9uZUluZm9ybWF0aW9uDQorU2V0Q29tUGx1c1BhY2thZ2VJbnN0YWxsU3RhdHVzDQorU2V0Q29tbUJyZWFrDQorU2V0Q29tbUNvbmZpZw0KK1NldENvbW1NYXNrDQorU2V0Q29tbVN0YXRlDQorU2V0Q29tbVRpbWVvdXRzDQorU2V0Q29tcHV0ZXJOYW1lQQ0KK1NldENvbXB1dGVyTmFtZUV4QQ0KK1NldENvbXB1dGVyTmFtZUV4Vw0KK1NldENvbXB1dGVyTmFtZVcNCitTZXRDb25zb2xlQWN0aXZlU2NyZWVuQnVmZmVyDQorU2V0Q29uc29sZUNQDQorU2V0Q29uc29sZUNvbW1hbmRIaXN0b3J5TW9kZQ0KK1NldENvbnNvbGVDdHJsSGFuZGxlcg0KK1NldENvbnNvbGVDdXJzb3INCitTZXRDb25zb2xlQ3Vyc29ySW5mbw0KK1NldENvbnNvbGVDdXJzb3JNb2RlDQorU2V0Q29uc29sZUN1cnNvclBvc2l0aW9uDQorU2V0Q29uc29sZURpc3BsYXlNb2RlDQorU2V0Q29uc29sZUZvbnQNCitTZXRDb25zb2xlSGFyZHdhcmVTdGF0ZQ0KK1NldENvbnNvbGVJY29uDQorU2V0Q29uc29sZUlucHV0RXhlTmFtZUENCitTZXRDb25zb2xlSW5wdXRFeGVOYW1lVw0KK1NldENvbnNvbGVLZXlTaG9ydGN1dHMNCitTZXRDb25zb2xlTG9jYWxFVURDDQorU2V0Q29uc29sZU1heGltdW1XaW5kb3dTaXplDQorU2V0Q29uc29sZU1lbnVDbG9zZQ0KK1NldENvbnNvbGVNb2RlDQorU2V0Q29uc29sZU5sc01vZGUNCitTZXRDb25zb2xlTnVtYmVyT2ZDb21tYW5kc0ENCitTZXRDb25zb2xlTnVtYmVyT2ZDb21tYW5kc1cNCitTZXRDb25zb2xlT1MyT2VtRm9ybWF0DQorU2V0Q29uc29sZU91dHB1dENQDQorU2V0Q29uc29sZVBhbGV0dGUNCitTZXRDb25zb2xlU2NyZWVuQnVmZmVyU2l6ZQ0KK1NldENvbnNvbGVUZXh0QXR0cmlidXRlDQorU2V0Q29uc29sZVRpdGxlQQ0KK1NldENvbnNvbGVUaXRsZVcNCitTZXRDb25zb2xlV2luZG93SW5mbw0KK1NldENyaXRpY2FsU2VjdGlvblNwaW5Db3VudA0KK1NldEN1cnJlbnREaXJlY3RvcnlBDQorU2V0Q3VycmVudERpcmVjdG9yeVcNCitTZXREZWZhdWx0Q29tbUNvbmZpZ0ENCitTZXREZWZhdWx0Q29tbUNvbmZpZ1cNCitTZXREbGxEaXJlY3RvcnlBDQorU2V0RGxsRGlyZWN0b3J5Vw0KK1NldEVuZE9mRmlsZQ0KK1NldEVudmlyb25tZW50U3RyaW5nc0ENCitTZXRFbnZpcm9ubWVudFN0cmluZ3NXDQorU2V0RW52aXJvbm1lbnRWYXJpYWJsZUENCitTZXRFbnZpcm9ubWVudFZhcmlhYmxlVw0KK1NldEVycm9yTW9kZQ0KK1NldEV2ZW50DQorU2V0RmlsZUFwaXNUb0FOU0kNCitTZXRGaWxlQXBpc1RvT0VNDQorU2V0RmlsZUF0dHJpYnV0ZXNBDQorU2V0RmlsZUF0dHJpYnV0ZXNXDQorU2V0RmlsZVBvaW50ZXINCitTZXRGaWxlUG9pbnRlckV4DQorU2V0RmlsZVNob3J0TmFtZUENCitTZXRGaWxlU2hvcnROYW1lVw0KK1NldEZpbGVUaW1lDQorU2V0RmlsZVZhbGlkRGF0YQ0KK1NldEZpcm13YXJlRW52aXJvbm1lbnRWYXJpYWJsZUENCitTZXRGaXJtd2FyZUVudmlyb25tZW50VmFyaWFibGVXDQorU2V0SGFuZGxlQ29udGV4dA0KK1NldEhhbmRsZUNvdW50DQorU2V0SGFuZGxlSW5mb3JtYXRpb24NCitTZXRJbmZvcm1hdGlvbkpvYk9iamVjdA0KK1NldExhc3RDb25zb2xlRXZlbnRBY3RpdmUNCitTZXRMYXN0RXJyb3INCitTZXRMb2NhbFByaW1hcnlDb21wdXRlck5hbWVBDQorU2V0TG9jYWxQcmltYXJ5Q29tcHV0ZXJOYW1lVw0KK1NldExvY2FsVGltZQ0KK1NldExvY2FsZUluZm9BDQorU2V0TG9jYWxlSW5mb1cNCitTZXRNYWlsc2xvdEluZm8NCitTZXRNZXNzYWdlV2FpdGluZ0luZGljYXRvcg0KK1NldE5hbWVkUGlwZUhhbmRsZVN0YXRlDQorU2V0UHJpb3JpdHlDbGFzcw0KK1NldFByb2Nlc3NBZmZpbml0eU1hc2sNCitTZXRQcm9jZXNzUHJpb3JpdHlCb29zdA0KK1NldFByb2Nlc3NTaHV0ZG93blBhcmFtZXRlcnMNCitTZXRQcm9jZXNzV29ya2luZ1NldFNpemUNCitTZXRQcm9jZXNzV29ya2luZ1NldFNpemVFeA0KK1NldFN0ZEhhbmRsZQ0KK1NldFN5c3RlbUZpbGVDYWNoZVNpemUNCitTZXRTeXN0ZW1Qb3dlclN0YXRlDQorU2V0U3lzdGVtVGltZQ0KK1NldFN5c3RlbVRpbWVBZGp1c3RtZW50DQorU2V0VGFwZVBhcmFtZXRlcnMNCitTZXRUYXBlUG9zaXRpb24NCitTZXRUZXJtc3J2QXBwSW5zdGFsbE1vZGUNCitTZXRUaHJlYWRBZmZpbml0eU1hc2sNCitTZXRUaHJlYWRDb250ZXh0DQorU2V0VGhyZWFkRXhlY3V0aW9uU3RhdGUNCitTZXRUaHJlYWRJZGVhbFByb2Nlc3Nvcg0KK1NldFRocmVhZExvY2FsZQ0KK1NldFRocmVhZFByaW9yaXR5DQorU2V0VGhyZWFkUHJpb3JpdHlCb29zdA0KK1NldFRocmVhZFN0YWNrR3VhcmFudGVlDQorU2V0VGhyZWFkVUlMYW5ndWFnZQ0KK1NldFRpbWVab25lSW5mb3JtYXRpb24NCitTZXRUaW1lclF1ZXVlVGltZXINCitTZXRVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXINCitTZXRVc2VyR2VvSUQNCitTZXRWRE1DdXJyZW50RGlyZWN0b3JpZXMNCitTZXRWb2x1bWVMYWJlbEENCitTZXRWb2x1bWVMYWJlbFcNCitTZXRWb2x1bWVNb3VudFBvaW50QQ0KK1NldFZvbHVtZU1vdW50UG9pbnRXDQorU2V0V2FpdGFibGVUaW1lcg0KK1NldHVwQ29tbQ0KK1Nob3dDb25zb2xlQ3Vyc29yDQorU2lnbmFsT2JqZWN0QW5kV2FpdA0KK1NpemVvZlJlc291cmNlDQorU2xlZXANCitTbGVlcEV4DQorU3VzcGVuZFRocmVhZA0KK1N3aXRjaFRvRmliZXINCitTd2l0Y2hUb1RocmVhZA0KK1N5c3RlbVRpbWVUb0ZpbGVUaW1lDQorU3lzdGVtVGltZVRvVHpTcGVjaWZpY0xvY2FsVGltZQ0KK1Rlcm1pbmF0ZUpvYk9iamVjdA0KK1Rlcm1pbmF0ZVByb2Nlc3MNCitUZXJtaW5hdGVUaHJlYWQNCitUZXJtc3J2QXBwSW5zdGFsbE1vZGUNCitUaHJlYWQzMkZpcnN0DQorVGhyZWFkMzJOZXh0DQorVGxzQWxsb2MNCitUbHNGcmVlDQorVGxzR2V0VmFsdWVAOA0KK1Rsc1NldFZhbHVlQDE2DQorVG9vbGhlbHAzMlJlYWRQcm9jZXNzTWVtb3J5DQorVHJhbnNhY3ROYW1lZFBpcGUNCitUcmFuc21pdENvbW1DaGFyDQorVHJ5RW50ZXJDcml0aWNhbFNlY3Rpb24NCitUelNwZWNpZmljTG9jYWxUaW1lVG9TeXN0ZW1UaW1lDQorVVRSZWdpc3Rlcg0KK1VUVW5SZWdpc3Rlcg0KK1VuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcg0KK1VubG9ja0ZpbGUNCitVbmxvY2tGaWxlRXgNCitVbm1hcFZpZXdPZkZpbGUNCitVbnJlZ2lzdGVyQ29uc29sZUlNRQ0KK1VucmVnaXN0ZXJXYWl0DQorVW5yZWdpc3RlcldhaXRFeA0KK1VwZGF0ZVJlc291cmNlQQ0KK1VwZGF0ZVJlc291cmNlVw0KK1ZETUNvbnNvbGVPcGVyYXRpb24NCitWRE1PcGVyYXRpb25TdGFydGVkDQorVmFsaWRhdGVMQ1R5cGUNCitWYWxpZGF0ZUxvY2FsZQ0KK1Zlckxhbmd1YWdlTmFtZUENCitWZXJMYW5ndWFnZU5hbWVXDQorVmVyU2V0Q29uZGl0aW9uTWFzaw0KK1ZlcmlmeUNvbnNvbGVJb0hhbmRsZQ0KK1ZlcmlmeVZlcnNpb25JbmZvQQ0KK1ZlcmlmeVZlcnNpb25JbmZvVw0KK1ZpcnR1YWxBbGxvYw0KK1ZpcnR1YWxBbGxvY0V4DQorVmlydHVhbEZyZWUNCitWaXJ0dWFsRnJlZUV4DQorVmlydHVhbExvY2sNCitWaXJ0dWFsUHJvdGVjdA0KK1ZpcnR1YWxQcm90ZWN0RXgNCitWaXJ0dWFsUXVlcnkNCitWaXJ0dWFsUXVlcnlFeA0KK1ZpcnR1YWxVbmxvY2sNCitXVFNHZXRBY3RpdmVDb25zb2xlU2Vzc2lvbklkDQorV2FpdENvbW1FdmVudA0KK1dhaXRGb3JEZWJ1Z0V2ZW50DQorV2FpdEZvck11bHRpcGxlT2JqZWN0cw0KK1dhaXRGb3JNdWx0aXBsZU9iamVjdHNFeA0KK1dhaXRGb3JTaW5nbGVPYmplY3QNCitXYWl0Rm9yU2luZ2xlT2JqZWN0RXgNCitXYWl0TmFtZWRQaXBlQQ0KK1dhaXROYW1lZFBpcGVXDQorV2lkZUNoYXJUb011bHRpQnl0ZQ0KK1dpbkV4ZWMNCitXb3c2NERpc2FibGVXb3c2NEZzUmVkaXJlY3Rpb24NCitXb3c2NEVuYWJsZVdvdzY0RnNSZWRpcmVjdGlvbg0KK1dvdzY0UmV2ZXJ0V293NjRGc1JlZGlyZWN0aW9uDQorV3JpdGVDb25zb2xlQQ0KK1dyaXRlQ29uc29sZUlucHV0QQ0KK1dyaXRlQ29uc29sZUlucHV0VkRNQQ0KK1dyaXRlQ29uc29sZUlucHV0VkRNVw0KK1dyaXRlQ29uc29sZUlucHV0Vw0KK1dyaXRlQ29uc29sZU91dHB1dEENCitXcml0ZUNvbnNvbGVPdXRwdXRBdHRyaWJ1dGUNCitXcml0ZUNvbnNvbGVPdXRwdXRDaGFyYWN0ZXJBDQorV3JpdGVDb25zb2xlT3V0cHV0Q2hhcmFjdGVyVw0KK1dyaXRlQ29uc29sZU91dHB1dFcNCitXcml0ZUNvbnNvbGVXDQorV3JpdGVGaWxlDQorV3JpdGVGaWxlRXgNCitXcml0ZUZpbGVHYXRoZXINCitXcml0ZVByaXZhdGVQcm9maWxlU2VjdGlvbkENCitXcml0ZVByaXZhdGVQcm9maWxlU2VjdGlvblcNCitXcml0ZVByaXZhdGVQcm9maWxlU3RyaW5nQQ0KK1dyaXRlUHJpdmF0ZVByb2ZpbGVTdHJpbmdXDQorV3JpdGVQcml2YXRlUHJvZmlsZVN0cnVjdEENCitXcml0ZVByaXZhdGVQcm9maWxlU3RydWN0Vw0KK1dyaXRlUHJvY2Vzc01lbW9yeQ0KK1dyaXRlUHJvZmlsZVNlY3Rpb25BDQorV3JpdGVQcm9maWxlU2VjdGlvblcNCitXcml0ZVByb2ZpbGVTdHJpbmdBDQorV3JpdGVQcm9maWxlU3RyaW5nVw0KK1dyaXRlVGFwZW1hcmsNCitab21iaWZ5QWN0Q3R4DQorX2hyZWFkDQorX2h3cml0ZQ0KK19sY2xvc2UNCitfbGNyZWF0DQorX2xsc2Vlaw0KK19sb3Blbg0KK19scmVhZA0KK19sd3JpdGUNCitsc3RyY2F0DQorbHN0cmNhdEENCitsc3RyY2F0Vw0KK2xzdHJjbXANCitsc3RyY21wQQ0KK2xzdHJjbXBXDQorbHN0cmNtcGkNCitsc3RyY21waUENCitsc3RyY21waVcNCitsc3RyY3B5DQorbHN0cmNweUENCitsc3RyY3B5Vw0KK2xzdHJjcHluDQorbHN0cmNweW5BDQorbHN0cmNweW5XDQorbHN0cmxlbg0KK2xzdHJsZW5BDQorbHN0cmxlblcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93a2V5bWdyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3drZXltZ3IuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFlZDZlOWYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a2V5bWdyLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIEtFWU1HUi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgS0VZTUdSLmRsbA0KK0VYUE9SVFMNCitDUGxBcHBsZXQNCitEbGxNYWluDQorS1JTaG93S2V5TWdyDQorUFJTaG93UmVzdG9yZUZyb21Nc2dpbmFXDQorUFJTaG93UmVzdG9yZVdpemFyZEV4Vw0KK1BSU2hvd1Jlc3RvcmVXaXphcmRXDQorUFJTaG93U2F2ZUZyb21Nc2dpbmFXDQorUFJTaG93U2F2ZVdpemFyZEV4Vw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drb3J3YnJrci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a29yd2Jya3IuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU1YjFmYjkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a29yd2Jya3IuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgS29yV2Jya3IuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIEtvcldicmtyLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drc3N2Yy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93a3NzdmMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMxZTdhMTcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93a3NzdmMuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgd2tzc3ZjLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSB3a3NzdmMuZGxsDQorRVhQT1JUUw0KK1NlcnZpY2VNYWluDQorU3ZjaG9zdFB1c2hTZXJ2aWNlR2xvYmFscw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3drc3VzZXIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2tzdXNlci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjZlOTM5ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3drc3VzZXIuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUga3N1c2VyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBrc3VzZXIuZGxsDQorRVhQT1JUUw0KK0tzQ3JlYXRlQWxsb2NhdG9yDQorS3NDcmVhdGVDbG9jaw0KK0tzQ3JlYXRlUGluDQorS3NDcmVhdGVUb3BvbG9neU5vZGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bGFuZ3dyYmsuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2xhbmd3cmJrLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMmY4M2FmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2xhbmd3cmJrLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIExhbmdXcmJrLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBMYW5nV3Jiay5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bGFubW9uLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dsYW5tb24uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNkMDA1NzQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bGFubW9uLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdMQU5NT04uRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFdMQU5NT04uRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2xhcHJ4eS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bGFwcnh5LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NjNlNWZiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2xhcHJ4eS5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBsYXByeHkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGxhcHJ4eS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitHZXRQcm94eURsbEluZm8NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bGRhcDMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dsZGFwMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUxMTEzYjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bGRhcDMyLmRlZgpAQCAtMCwwICsxLDI1MyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBXTERBUDMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXTERBUDMyLmRsbA0KK0VYUE9SVFMNCitsZGFwX2FiYW5kb24NCitsZGFwX2FkZA0KK2xkYXBfZ2V0X29wdGlvblcNCitsZGFwX3VuYmluZA0KK2xkYXBfc2V0X29wdGlvblcNCitMZGFwR2V0TGFzdEVycm9yDQorY2xkYXBfb3Blbg0KK0xkYXBNYXBFcnJvclRvV2luMzINCitsZGFwX2NvbXBhcmUNCitsZGFwX2RlbGV0ZQ0KK2xkYXBfcmVzdWx0MmVycm9yDQorbGRhcF9lcnIyc3RyaW5nDQorbGRhcF9tb2RpZnkNCitsZGFwX21vZHJkbg0KK2xkYXBfb3Blbg0KK2xkYXBfZmlyc3RfZW50cnkNCitsZGFwX25leHRfZW50cnkNCitjbGRhcF9vcGVuVw0KK0xkYXBVVEY4VG9Vbmljb2RlDQorbGRhcF9nZXRfZG4NCitsZGFwX2RuMnVmbg0KK2xkYXBfZmlyc3RfYXR0cmlidXRlDQorbGRhcF9uZXh0X2F0dHJpYnV0ZQ0KK2xkYXBfZ2V0X3ZhbHVlcw0KK2xkYXBfZ2V0X3ZhbHVlc19sZW4NCitsZGFwX2NvdW50X2VudHJpZXMNCitsZGFwX2NvdW50X3ZhbHVlcw0KK2xkYXBfdmFsdWVfZnJlZQ0KK2xkYXBfZXhwbG9kZV9kbg0KK2xkYXBfcmVzdWx0DQorbGRhcF9tc2dmcmVlDQorbGRhcF9hZGRXDQorbGRhcF9zZWFyY2gNCitsZGFwX2FkZF9zDQorbGRhcF9iaW5kX3MNCitsZGFwX3VuYmluZF9zDQorbGRhcF9kZWxldGVfcw0KK2xkYXBfbW9kaWZ5X3MNCitsZGFwX21vZHJkbl9zDQorbGRhcF9zZWFyY2hfcw0KK2xkYXBfc2VhcmNoX3N0DQorbGRhcF9jb21wYXJlX3MNCitMZGFwVW5pY29kZVRvVVRGOA0KK2Jlcl9idmZyZWUNCitjbGRhcF9vcGVuQQ0KK2xkYXBfYWRkQQ0KK2xkYXBfYWRkX2V4dA0KK2xkYXBfYWRkX2V4dEENCitsZGFwX3NpbXBsZV9iaW5kDQorbGRhcF9zaW1wbGVfYmluZF9zDQorbGRhcF9iaW5kDQorbGRhcF9hZGRfZXh0Vw0KK2xkYXBfYWRkX2V4dF9zDQorbGRhcF9hZGRfZXh0X3NBDQorbGRhcF9hZGRfZXh0X3NXDQorbGRhcF9hZGRfc0ENCitsZGFwX21vZHJkbjINCitsZGFwX21vZHJkbjJfcw0KK2xkYXBfYWRkX3NXDQorbGRhcF9iaW5kQQ0KK2xkYXBfYmluZFcNCitsZGFwX2JpbmRfc0ENCitsZGFwX2JpbmRfc1cNCitsZGFwX2Nsb3NlX2V4dGVuZGVkX29wDQorbGRhcF9jb21wYXJlQQ0KK2xkYXBfY29tcGFyZVcNCitsZGFwX2NvdW50X3ZhbHVlc19sZW4NCitsZGFwX2NvbXBhcmVfZXh0DQorbGRhcF92YWx1ZV9mcmVlX2xlbg0KK2xkYXBfY29tcGFyZV9leHRBDQorbGRhcF9jb21wYXJlX2V4dFcNCitsZGFwX3BlcnJvcg0KK2xkYXBfY29tcGFyZV9leHRfcw0KK2xkYXBfY29tcGFyZV9leHRfc0ENCitsZGFwX2NvbXBhcmVfZXh0X3NXDQorbGRhcF9jb21wYXJlX3NBDQorbGRhcF9jb21wYXJlX3NXDQorbGRhcF9jb25uZWN0DQorbGRhcF9jb250cm9sX2ZyZWUNCitsZGFwX2NvbnRyb2xfZnJlZUENCitsZGFwX2NvbnRyb2xfZnJlZVcNCitsZGFwX2NvbnRyb2xzX2ZyZWUNCitsZGFwX2NvbnRyb2xzX2ZyZWVBDQorbGRhcF9jb250cm9sc19mcmVlVw0KK2xkYXBfY291bnRfcmVmZXJlbmNlcw0KK2xkYXBfY291bnRfdmFsdWVzQQ0KK2xkYXBfY291bnRfdmFsdWVzVw0KK2xkYXBfY3JlYXRlX3BhZ2VfY29udHJvbA0KK2xkYXBfY3JlYXRlX3BhZ2VfY29udHJvbEENCitsZGFwX2NyZWF0ZV9wYWdlX2NvbnRyb2xXDQorbGRhcF9jcmVhdGVfc29ydF9jb250cm9sDQorbGRhcF9jcmVhdGVfc29ydF9jb250cm9sQQ0KK2xkYXBfY3JlYXRlX3NvcnRfY29udHJvbFcNCitsZGFwX2RlbGV0ZUENCitsZGFwX2RlbGV0ZVcNCitsZGFwX2RlbGV0ZV9leHQNCitsZGFwX2RlbGV0ZV9leHRBDQorbGRhcF9kZWxldGVfZXh0Vw0KK2xkYXBfZGVsZXRlX2V4dF9zDQorbGRhcF9kZWxldGVfZXh0X3NBDQorbGRhcF9kZWxldGVfZXh0X3NXDQorbGRhcF9kZWxldGVfc0ENCitsZGFwX2RlbGV0ZV9zVw0KK2xkYXBfZG4ydWZuVw0KK2xkYXBfZW5jb2RlX3NvcnRfY29udHJvbEENCitsZGFwX2VuY29kZV9zb3J0X2NvbnRyb2xXDQorbGRhcF9lcnIyc3RyaW5nQQ0KK2xkYXBfZXJyMnN0cmluZ1cNCitsZGFwX2VzY2FwZV9maWx0ZXJfZWxlbWVudEENCitsZGFwX2VzY2FwZV9maWx0ZXJfZWxlbWVudFcNCitsZGFwX2V4cGxvZGVfZG5BDQorbGRhcF9leHBsb2RlX2RuVw0KK2xkYXBfZXh0ZW5kZWRfb3BlcmF0aW9uDQorbGRhcF9leHRlbmRlZF9vcGVyYXRpb25BDQorbGRhcF9leHRlbmRlZF9vcGVyYXRpb25XDQorbGRhcF9maXJzdF9hdHRyaWJ1dGVBDQorbGRhcF9maXJzdF9hdHRyaWJ1dGVXDQorbGRhcF9maXJzdF9yZWZlcmVuY2UNCitsZGFwX2ZyZWVfY29udHJvbHMNCitsZGFwX2ZyZWVfY29udHJvbHNBDQorbGRhcF9mcmVlX2NvbnRyb2xzVw0KK2xkYXBfZ2V0X2RuQQ0KK2xkYXBfZ2V0X2RuVw0KK2xkYXBfZ2V0X25leHRfcGFnZQ0KK2xkYXBfZ2V0X25leHRfcGFnZV9zDQorbGRhcF9nZXRfb3B0aW9uDQorbGRhcF9nZXRfb3B0aW9uQQ0KK2xkYXBfZ2V0X3BhZ2VkX2NvdW50DQorbGRhcF9nZXRfdmFsdWVzQQ0KK2xkYXBfZ2V0X3ZhbHVlc1cNCitsZGFwX2dldF92YWx1ZXNfbGVuQQ0KK2xkYXBfZ2V0X3ZhbHVlc19sZW5XDQorbGRhcF9pbml0DQorbGRhcF9pbml0QQ0KK2xkYXBfaW5pdFcNCitsZGFwX21lbWZyZWVBDQorbGRhcF9tZW1mcmVlVw0KK2xkYXBfbW9kaWZ5QQ0KK2xkYXBfbW9kaWZ5Vw0KK2xkYXBfbW9kaWZ5X2V4dA0KK2xkYXBfbW9kaWZ5X2V4dEENCitsZGFwX21vZGlmeV9leHRXDQorbGRhcF9tb2RpZnlfZXh0X3MNCitsZGFwX21vZGlmeV9leHRfc0ENCitsZGFwX21vZGlmeV9leHRfc1cNCitsZGFwX21vZGlmeV9zQQ0KK2xkYXBfbW9kaWZ5X3NXDQorbGRhcF9tb2RyZG4yQQ0KK2xkYXBfbW9kcmRuMlcNCitsZGFwX21vZHJkbjJfc0ENCitsZGFwX21vZHJkbjJfc1cNCitsZGFwX21vZHJkbkENCitsZGFwX21vZHJkblcNCitsZGFwX21vZHJkbl9zQQ0KK2xkYXBfbW9kcmRuX3NXDQorbGRhcF9uZXh0X2F0dHJpYnV0ZUENCitsZGFwX25leHRfYXR0cmlidXRlVw0KK2xkYXBfbmV4dF9yZWZlcmVuY2UNCitsZGFwX29wZW5BDQorbGRhcF9vcGVuVw0KK2xkYXBfcGFyc2VfcGFnZV9jb250cm9sDQorbGRhcF9wYXJzZV9wYWdlX2NvbnRyb2xBDQorbGRhcF9wYXJzZV9wYWdlX2NvbnRyb2xXDQorbGRhcF9wYXJzZV9yZWZlcmVuY2UNCitsZGFwX3BhcnNlX3JlZmVyZW5jZUENCitsZGFwX3BhcnNlX3JlZmVyZW5jZVcNCitsZGFwX3BhcnNlX3Jlc3VsdA0KK2xkYXBfcGFyc2VfcmVzdWx0QQ0KK2xkYXBfcGFyc2VfcmVzdWx0Vw0KK2xkYXBfcGFyc2Vfc29ydF9jb250cm9sDQorbGRhcF9wYXJzZV9zb3J0X2NvbnRyb2xBDQorbGRhcF9wYXJzZV9zb3J0X2NvbnRyb2xXDQorbGRhcF9yZW5hbWVfZXh0DQorbGRhcF9yZW5hbWVfZXh0QQ0KK2xkYXBfcmVuYW1lX2V4dFcNCitsZGFwX3JlbmFtZV9leHRfcw0KK2xkYXBfcmVuYW1lX2V4dF9zQQ0KK2xkYXBfcmVuYW1lX2V4dF9zVw0KK2xkYXBfc2VhcmNoQQ0KK2xkYXBfc2VhcmNoVw0KK2xkYXBfc2VhcmNoX2FiYW5kb25fcGFnZQ0KK2xkYXBfc2VhcmNoX2V4dA0KK2xkYXBfc2VhcmNoX2V4dEENCitsZGFwX3NlYXJjaF9leHRXDQorbGRhcF9zZWFyY2hfZXh0X3MNCitsZGFwX3NlYXJjaF9leHRfc0ENCitsZGFwX2VzY2FwZV9maWx0ZXJfZWxlbWVudA0KK2xkYXBfc2V0X2RiZ19mbGFncw0KK2xkYXBfc2V0X2RiZ19yb3V0aW5lDQorbGRhcF9tZW1mcmVlDQorbGRhcF9zdGFydHVwDQorbGRhcF9jbGVhbnVwDQorbGRhcF9zZWFyY2hfZXh0X3NXDQorbGRhcF9zZWFyY2hfaW5pdF9wYWdlDQorbGRhcF9zZWFyY2hfaW5pdF9wYWdlQQ0KK2xkYXBfc2VhcmNoX2luaXRfcGFnZVcNCitsZGFwX3NlYXJjaF9zQQ0KK2xkYXBfc2VhcmNoX3NXDQorbGRhcF9zZWFyY2hfc3RBDQorbGRhcF9zZWFyY2hfc3RXDQorbGRhcF9zZXRfb3B0aW9uDQorbGRhcF9zZXRfb3B0aW9uQQ0KK2xkYXBfc2ltcGxlX2JpbmRBDQorbGRhcF9zaW1wbGVfYmluZFcNCitsZGFwX3NpbXBsZV9iaW5kX3NBDQorbGRhcF9zaW1wbGVfYmluZF9zVw0KK2xkYXBfc3NsaW5pdA0KK2xkYXBfc3NsaW5pdEENCitsZGFwX3NzbGluaXRXDQorbGRhcF91Zm4yZG4NCitsZGFwX3VmbjJkbkENCitsZGFwX3VmbjJkblcNCitsZGFwX3ZhbHVlX2ZyZWVBDQorbGRhcF92YWx1ZV9mcmVlVw0KK2xkYXBfY2hlY2tfZmlsdGVyQQ0KK2xkYXBfY2hlY2tfZmlsdGVyVw0KK2xkYXBfZG4ydWZuQQ0KK2Jlcl9pbml0DQorYmVyX2ZyZWUNCitiZXJfYnZlY2ZyZWUNCitiZXJfYnZkdXANCitiZXJfYWxsb2NfdA0KK2Jlcl9za2lwX3RhZw0KK2Jlcl9wZWVrX3RhZw0KK2Jlcl9maXJzdF9lbGVtZW50DQorYmVyX25leHRfZWxlbWVudA0KK2Jlcl9mbGF0dGVuDQorYmVyX3ByaW50Zg0KK2Jlcl9zY2FuZg0KK2xkYXBfY29ubl9mcm9tX21zZw0KK2xkYXBfc2FzbF9iaW5kVw0KK2xkYXBfc2FzbF9iaW5kX3NXDQorbGRhcF9zYXNsX2JpbmRBDQorbGRhcF9zYXNsX2JpbmRfc0ENCitsZGFwX3BhcnNlX2V4dGVuZGVkX3Jlc3VsdFcNCitsZGFwX3BhcnNlX2V4dGVuZGVkX3Jlc3VsdEENCitsZGFwX2NyZWF0ZV92bHZfY29udHJvbFcNCitsZGFwX2NyZWF0ZV92bHZfY29udHJvbEENCitsZGFwX3BhcnNlX3Zsdl9jb250cm9sVw0KK2xkYXBfcGFyc2Vfdmx2X2NvbnRyb2xBDQorbGRhcF9zdGFydF90bHNfc1cNCitsZGFwX3N0YXJ0X3Rsc19zQQ0KK2xkYXBfc3RvcF90bHNfcw0KK2xkYXBfZXh0ZW5kZWRfb3BlcmF0aW9uX3NXDQorbGRhcF9leHRlbmRlZF9vcGVyYXRpb25fc0ENCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bGljbWdyMTAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2xpY21ncjEwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNjk3ZjQwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2xpY21ncjEwLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIExJQ01HUi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTElDTUdSLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dsaW5raW5mby5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bGlua2luZm8uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIxOWFiNzMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bGlua2luZm8uZGVmCkBAIC0wLDAgKzEsMjMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTElOS0lORk8uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIExJTktJTkZPLmRsbA0KK0VYUE9SVFMNCitDb21wYXJlTGlua0luZm9SZWZlcmVudHMNCitDb21wYXJlTGlua0luZm9Wb2x1bWVzDQorQ3JlYXRlTGlua0luZm8NCitDcmVhdGVMaW5rSW5mb0ENCitDcmVhdGVMaW5rSW5mb1cNCitEZXN0cm95TGlua0luZm8NCitEaXNjb25uZWN0TGlua0luZm8NCitHZXRDYW5vbmljYWxQYXRoSW5mbw0KK0dldENhbm9uaWNhbFBhdGhJbmZvQQ0KK0dldENhbm9uaWNhbFBhdGhJbmZvVw0KK0dldExpbmtJbmZvRGF0YQ0KK0lzVmFsaWRMaW5rSW5mbw0KK1Jlc29sdmVMaW5rSW5mbw0KK1Jlc29sdmVMaW5rSW5mb0ENCitSZXNvbHZlTGlua0luZm9XDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2xtaHN2Yy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bG1oc3ZjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yYjRlNzYxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2xtaHN2Yy5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGxtaHN2Yy5FWEUNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbG1oc3ZjLkVYRQ0KK0VYUE9SVFMNCitTZXJ2aWNlTWFpbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dsbW1pYjIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2xtbWliMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2E3NzJhMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dsbW1pYjIuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbG1taWIyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBsbW1pYjIuZGxsDQorRVhQT1JUUw0KK1NubXBFeHRlbnNpb25DbG9zZQ0KK1NubXBFeHRlbnNpb25Jbml0DQorU25tcEV4dGVuc2lvblF1ZXJ5DQorU25tcEV4dGVuc2lvblRyYXANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bG1ydC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bG1ydC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmM2ODkxMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dsbXJ0LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIExNUlQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIExNUlQuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2xub3RpZnkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2xub3RpZnkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUzNGE3ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bG5vdGlmeS5kZWYKQEAgLTAsMCArMSwzOCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBXbE5vdGlmeS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgV2xOb3RpZnkuZGxsDQorRVhQT1JUUw0KK1JlZ2lzdGVyVGlja2V0RXhwaXJlZE5vdGlmaWNhdGlvbkV2ZW50DQorU0NhcmRSZXN1bWVDZXJ0UHJvcA0KK1NDYXJkU3RhcnRDZXJ0UHJvcA0KK1NDYXJkU3RvcENlcnRQcm9wDQorU0NhcmRTdXNwZW5kQ2VydFByb3ANCitTY2hlZEV2ZW50TG9nT2ZmDQorU2NoZWRTdGFydFNoZWxsDQorU2hvd05vdGlmaWNhdGlvbkJhbGxvb25XDQorVW5yZWdpc3RlclRpY2tldEV4cGlyZWROb3RpZmljYXRpb25FdmVudA0KK1NlbnNEaXNjb25uZWN0RXZlbnQNCitTZW5zTG9ja0V2ZW50DQorU2Vuc0xvZ29mZkV2ZW50DQorU2Vuc0xvZ29uRXZlbnQNCitTZW5zUG9zdFNoZWxsRXZlbnQNCitTZW5zUmVjb25uZWN0RXZlbnQNCitTZW5zU2h1dGRvd25FdmVudA0KK1NlbnNTdGFydFNjcmVlblNhdmVyRXZlbnQNCitTZW5zU3RhcnRTaGVsbEV2ZW50DQorU2Vuc1N0YXJ0dXBFdmVudA0KK1NlbnNTdG9wU2NyZWVuU2F2ZXJFdmVudA0KK1NlbnNVbmxvY2tFdmVudA0KK1RTRXZlbnREaXNjb25uZWN0DQorVFNFdmVudExvZ29mZg0KK1RTRXZlbnRMb2dvbg0KK1RTRXZlbnRQb3N0U2hlbGwNCitUU0V2ZW50UmVjb25uZWN0DQorVFNFdmVudFNodXRkb3duDQorVFNFdmVudFN0YXJ0U2hlbGwNCitUU0V2ZW50U3RhcnR1cA0KK1Rlcm1zcnZDcmVhdGVUZW1wRGlyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2xvYWRwZXJmLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dsb2FkcGVyZi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDI4ZmQ2NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dsb2FkcGVyZi5kZWYKQEAgLTAsMCArMSwyMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBsb2FkcGVyZi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbG9hZHBlcmYuZGxsDQorRVhQT1JUUw0KK0JhY2t1cFBlcmZSZWdpc3RyeVRvRmlsZVcNCitJbnN0YWxsUGVyZkRsbEENCitJbnN0YWxsUGVyZkRsbFcNCitMb2FkUGVyZkNvdW50ZXJUZXh0U3RyaW5nc0ENCitMb2FkUGVyZkNvdW50ZXJUZXh0U3RyaW5nc1cNCitSZXN0b3JlUGVyZlJlZ2lzdHJ5RnJvbUZpbGVXDQorU2V0U2VydmljZUFzVHJ1c3RlZEENCitTZXRTZXJ2aWNlQXNUcnVzdGVkVw0KK1VubG9hZFBlcmZDb3VudGVyVGV4dFN0cmluZ3NBDQorVW5sb2FkUGVyZkNvdW50ZXJUZXh0U3RyaW5nc1cNCitVcGRhdGVQZXJmTmFtZUZpbGVzQQ0KK1VwZGF0ZVBlcmZOYW1lRmlsZXNXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2xvY2Fsc2VjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dsb2NhbHNlYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzk5MTI2NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dsb2NhbHNlYy5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBsb2NhbHNlYy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbG9jYWxzZWMuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bG9jYWx1aS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bG9jYWx1aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjY5Y2U3MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dsb2NhbHVpLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTE9DQUxVSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTE9DQUxVSS5kbGwNCitFWFBPUlRTDQorSW5pdGlhbGl6ZVByaW50TW9uaXRvclVJDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2xvZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bG9nLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lMzZkM2VhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2xvZy5kZWYKQEAgLTAsMCArMSwyOCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBMT0cuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIExPRy5kbGwNCitFWFBPUlRTDQorRGxsTWFpbg0KK0xvZ0ENCitMb2dCZWdpbg0KK0xvZ0RlbGV0ZU9uTmV4dEluaXQNCitMb2dEaXJlY3RBDQorTG9nRGlyZWN0Vw0KK0xvZ0VuZA0KK0xvZ0lmQQ0KK0xvZ0lmVw0KK0xvZ0xpbmVBDQorTG9nTGluZVcNCitMb2dSZUluaXRBDQorTG9nUmVJbml0Vw0KK0xvZ1NldEVycm9yRGVzdA0KK0xvZ1NldFZlcmJvc2VCaXRtYXANCitMb2dTZXRWZXJib3NlTGV2ZWwNCitMb2dUaXRsZUENCitMb2dUaXRsZVcNCitMb2dXDQorU3VwcHJlc3NBbGxMb2dQb3B1cHMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bG9naG91cnMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2xvZ2hvdXJzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41OTA0ZGRlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2xvZ2hvdXJzLmRlZgpAQCAtMCwwICsxLDE4IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIExvZ0hvdXJzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBMb2dIb3Vycy5kbGwNCitFWFBPUlRTDQorTG9nb25TY2hlZHVsZURpYWxvZw0KK0Nvbm5lY3Rpb25TY2hlZHVsZURpYWxvZw0KK0RpYWxpbkhvdXJzRGlhbG9nDQorRGlyU3luY1NjaGVkdWxlRGlhbG9nDQorTG9nb25TY2hlZHVsZURpYWxvZ0V4DQorRGlhbGluSG91cnNEaWFsb2dFeA0KK1JlcGxpY2F0aW9uU2NoZWR1bGVEaWFsb2cNCitSZXBsaWNhdGlvblNjaGVkdWxlRGlhbG9nRXgNCitDb25uZWN0aW9uU2NoZWR1bGVEaWFsb2dFeA0KK0RpclN5bmNTY2hlZHVsZURpYWxvZ0V4DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2xvZ3NjcnB0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dsb2dzY3JwdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmVmZWFmYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dsb2dzY3JwdC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBsb2dzY3JpcHQuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGxvZ3NjcmlwdC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bG9uc2ludC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bG9uc2ludC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmE2NTE1NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dsb25zaW50LmRlZgpAQCAtMCwwICsxLDE1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIExPTlNJTlQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIExPTlNJTlQuZGxsDQorRVhQT1JUUw0KK0lJU0dldERlZmF1bHREb21haW5OYW1lDQorSUlTTG9nb24zMkluaXRpYWxpemUNCitJSVNMb2dvbkRpZ2VzdFVzZXJBDQorSUlTTG9nb25OZXRVc2VyQQ0KK0lJU0xvZ29uTmV0VXNlclcNCitJSVNMb2dvblBhc3Nwb3J0VXNlclcNCitJSVNOZXRVc2VyQ29va2llQQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dscGRzdmMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2xwZHN2Yy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTMzNDY5YQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dscGRzdmMuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBMUERTVkMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIExQRFNWQy5kbGwNCitFWFBPUlRTDQorU2VydmljZUVudHJ5DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2xway5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bHBrLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMjk5YTAyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2xway5kZWYKQEAgLTAsMCArMSwxOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBMUEsuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIExQSy5kbGwNCitFWFBPUlRTDQorTHBrSW5pdGlhbGl6ZQ0KK0xwa1RhYmJlZFRleHRPdXQNCitMcGtEbGxJbml0aWFsaXplDQorTHBrRHJhd1RleHRFeA0KK0xwa0VkaXRDb250cm9sIERBVEENCitMcGtFeHRUZXh0T3V0DQorTHBrR2V0Q2hhcmFjdGVyUGxhY2VtZW50DQorTHBrR2V0VGV4dEV4dGVudEV4UG9pbnQNCitMcGtQU01UZXh0T3V0DQorTHBrVXNlR0RJV2lkdGhDYWNoZQ0KK2Z0c1dvcmRCcmVhaw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dscHJoZWxwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dscHJoZWxwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NzA0MmUzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2xwcmhlbHAuZGVmCkBAIC0wLDAgKzEsMTkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTFBSSEVMUC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTFBSSEVMUC5kbGwNCitFWFBPUlRTDQorQ2FuY2VsSm9iDQorQ2xvc2VMUFINCitFbmRKb2INCitHZXRMb25nUXVldWUNCitHZXRTaG9ydFF1ZXVlDQorSW5pdGlhdGVDb25uZWN0aW9uDQorT3BlbkxQUg0KK1ByaW50V2FpdGluZ0pvYnMNCitTZXRMUFJUaW1lb3V0cw0KK1N0YXJ0Sm9iDQorV3JpdGVKb2JEYXRhDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2xwcm1vbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bHBybW9uLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MTgyY2EzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2xwcm1vbi5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBMUFJNT04uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIExQUk1PTi5kbGwNCitFWFBPUlRTDQorSW5pdGlhbGl6ZVByaW50TW9uaXRvcjINCitMaWJNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2xwcm1vbnVpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dscHJtb251aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTUyMmIwOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dscHJtb251aS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIExQUlVJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBMUFJVSS5kbGwNCitFWFBPUlRTDQorSW5pdGlhbGl6ZVByaW50TW9uaXRvclVJDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2xzbnAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd2xzbnAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdmZTQwYTIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bHNucC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBXTFNOUC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgV0xTTlAuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd2xzdG9yZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bHN0b3JlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40N2ZlZmVjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2xzdG9yZS5kZWYKQEAgLTAsMCArMSwzMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBXTFNUT1JFLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXTFNUT1JFLkRMTA0KK0VYUE9SVFMNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitVcGRhdGVXaXJlbGVzc1BTRGF0YQ0KK1dpcmVsZXNzQWRkUFNUb1BvbGljeQ0KK1dpcmVsZXNzQWxsb2NQb2xNZW0NCitXaXJlbGVzc0FsbG9jUG9sU3RyDQorV2lyZWxlc3NDbGVhcldNSVN0b3JlDQorV2lyZWxlc3NDbG9zZVBvbGljeVN0b3JlDQorV2lyZWxlc3NDb3B5UG9saWN5RGF0YQ0KK1dpcmVsZXNzQ3JlYXRlUG9saWN5RGF0YQ0KK1dpcmVsZXNzRGVsZXRlUG9saWN5RGF0YQ0KK1dpcmVsZXNzRW51bVBvbGljeURhdGENCitXaXJlbGVzc0ZyZWVNdWxQb2xpY3lEYXRhDQorV2lyZWxlc3NGcmVlUG9sTWVtDQorV2lyZWxlc3NGcmVlUG9sU3RyDQorV2lyZWxlc3NGcmVlUG9saWN5RGF0YQ0KK1dpcmVsZXNzR1BPT3BlblBvbGljeVN0b3JlDQorV2lyZWxlc3NQb2xpY3lQU0lkDQorV2lyZWxlc3NSZWFsbG9jYXRlUG9sTWVtDQorV2lyZWxlc3NSZWFsbG9jYXRlUG9sU3RyDQorV2lyZWxlc3NSZW1vdmVQU0Zyb21Qb2xpY3kNCitXaXJlbGVzc1JlbW92ZVBTRnJvbVBvbGljeUlkDQorV2lyZWxlc3NTZXRQU0RhdGFJblBvbGljeQ0KK1dpcmVsZXNzU2V0UG9saWN5RGF0YQ0KK1dpcmVsZXNzV3JpdGVEaXJlY3RvcnlQb2xpY3lUb1dNSQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dsejMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dsejMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNWYyYmViCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd2x6MzIuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTFozMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTFozMi5kbGwNCitFWFBPUlRTDQorQ29weUxaRmlsZQ0KK0dldEV4cGFuZGVkTmFtZUENCitHZXRFeHBhbmRlZE5hbWVXDQorTFpDbG9zZQ0KK0xaQ2xvc2VGaWxlDQorTFpDb3B5DQorTFpDcmVhdGVGaWxlVw0KK0xaRG9uZQ0KK0xaSW5pdA0KK0xaT3BlbkZpbGVBDQorTFpPcGVuRmlsZVcNCitMWlJlYWQNCitMWlNlZWsNCitMWlN0YXJ0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21hZ19ob29rLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtYWdfaG9vay5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmZkMzMxYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtYWdfaG9vay5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNYWdfSG9vay5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTWFnX0hvb2suZGxsDQorRVhQT1JUUw0KK19GYWtlQ3Vyc29yTW92ZUA4DQorX0dldEN1cnNvckhhY2tAMA0KK19HZXRQb3B1cEluZm9ANA0KK19JbnN0YWxsRXZlbnRIb29rQDQNCitfU2V0Wm9vbVJlY3RAOA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtY2FzdG1pYi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bWNhc3RtaWIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZkMzM1MzgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bWNhc3RtaWIuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTUNBU1RNSUIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1DQVNUTUlCLmRsbA0KK0VYUE9SVFMNCitTbm1wRXh0ZW5zaW9uSW5pdA0KK1NubXBFeHRlbnNpb25RdWVyeQ0KK1NubXBFeHRlbnNpb25UcmFwDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21jZDMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtY2QzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODFiMjM1ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtY2QzMi5kZWYKQEAgLTAsMCArMSw1MiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNQ0QzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTUNEMzIuZGxsDQorRVhQT1JUUw0KK01DREFkZFN0YXRlDQorTUNEQWRkU3RhdGVTdHJ1Y3QNCitNQ0RBbGxvYw0KK01DREFsbG9jQnVmZmVycw0KK01DREJlZ2luU3RhdGUNCitNQ0RCaW5kQ29udGV4dA0KK01DRENsZWFyDQorTUNEQ29weVBpeGVscw0KK01DRENyZWF0ZUNvbnRleHQNCitNQ0RDcmVhdGVUZXh0dXJlDQorTUNERGVsZXRlQ29udGV4dA0KK01DRERlbGV0ZVRleHR1cmUNCitNQ0REZXNjcmliZUxheWVyUGxhbmUNCitNQ0REZXNjcmliZU1jZExheWVyUGxhbmUNCitNQ0REZXNjcmliZU1jZFBpeGVsRm9ybWF0DQorTUNERGVzY3JpYmVQaXhlbEZvcm1hdA0KK01DRERlc3Ryb3lXaW5kb3cNCitNQ0REcmF3UGl4ZWxzDQorTUNERmx1c2hTdGF0ZQ0KK01DREZyZWUNCitNQ0RHZXRCdWZmZXJzDQorTUNER2V0RHJpdmVySW5mbw0KK01DREdldFRleHR1cmVGb3JtYXRzDQorTUNETG9jaw0KK01DRFBpeGVsTWFwDQorTUNEUHJvY2Vzc0JhdGNoMg0KK01DRFByb2Nlc3NCYXRjaA0KK01DRFF1ZXJ5TWVtU3RhdHVzDQorTUNEUmVhZFBpeGVscw0KK01DRFJlYWRTcGFuDQorTUNEU2V0TGF5ZXJQYWxldHRlDQorTUNEU2V0U2Npc3NvclJlY3QNCitNQ0RTZXRWaWV3cG9ydA0KK01DRFN3YXANCitNQ0RTd2FwTXVsdGlwbGUNCitNQ0RTeW5jDQorTUNEVGV4dHVyZUtleQ0KK01DRFRleHR1cmVTdGF0dXMNCitNQ0RVbmxvY2sNCitNQ0RVcGRhdGVTdWJUZXh0dXJlDQorTUNEVXBkYXRlVGV4dHVyZVBhbGV0dGUNCitNQ0RVcGRhdGVUZXh0dXJlUHJpb3JpdHkNCitNQ0RVcGRhdGVUZXh0dXJlU3RhdGUNCitNQ0RXcml0ZVNwYW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bWNoZ3Jjb2kuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21jaGdyY29pLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MzA1MDhlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21jaGdyY29pLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbWNoZ3Jjb2kuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1jaGdyY29pLmRsbA0KK0VYUE9SVFMNCitNY2hnckNsYXNzQ29JbnN0YWxsZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bWNpYXZpMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21jaWF2aTMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMWY5YTBlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21jaWF2aTMyLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1DSUFWSTMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNQ0lBVkkzMi5kbGwNCitFWFBPUlRTDQorRHJpdmVyUHJvYw0KK0tleWJvYXJkSG9va1Byb2MNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bWNpY2RhLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtY2ljZGEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQyZjIwYjEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bWNpY2RhLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTUNJQ0RBLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNQ0lDREEuZGxsDQorRVhQT1JUUw0KK0RyaXZlclByb2MNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bWNpb2xlMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21jaW9sZTMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMGUzNWRiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21jaW9sZTMyLmRlZgpAQCAtMCwwICsxLDE5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1DSU9MRTMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNQ0lPTEUzMi5kbGwNCitFWFBPUlRTDQorRGxsTG9hZEZyb21TdHJlYW0NCitEbGxDcmVhdGVGcm9tQ2xpcA0KK0RsbENyZWF0ZUxpbmtGcm9tQ2xpcA0KK0RsbENyZWF0ZUZyb21UZW1wbGF0ZQ0KK0RsbENyZWF0ZQ0KK0RsbENyZWF0ZUZyb21GaWxlDQorRGxsQ3JlYXRlTGlua0Zyb21GaWxlDQorR2V0TWVzc2FnZUhvb2sNCitPbGVRdWVyeU9ialBvcw0KK0luc3RhbGxIb29rDQorUmVtb3ZlSG9vaw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtY2lxdHozMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bWNpcXR6MzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUwMDZmYmUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bWNpcXR6MzIuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTUNJUVRaMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1DSVFUWjMyLmRsbA0KK0VYUE9SVFMNCitEcml2ZXJQcm9jDQorTUNJRW50cnkzMg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtY2lzZXEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21jaXNlcS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDY1NTRjMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtY2lzZXEuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNQ0lTRVEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1DSVNFUS5kbGwNCitFWFBPUlRTDQorRHJpdmVyUHJvYw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtY2l3YXZlLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtY2l3YXZlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yM2UyYWIwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21jaXdhdmUuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNQ0lXQVZFLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNQ0lXQVZFLmRsbA0KK0VYUE9SVFMNCitEcml2ZXJQcm9jDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21kaGNwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtZGhjcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjVhMmRhMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtZGhjcC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtZGhjcC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbWRoY3AuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21kbWluc3QuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21kbWluc3QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNhZmUzNDgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bWRtaW5zdC5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1ETUlOU1QuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1ETUlOU1QuZGxsDQorRVhQT1JUUw0KK0NsYXNzSW5zdGFsbDMyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21mMzIxNi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bWYzMjE2LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lOTM2MmIxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21mMzIxNi5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtZjMyMTYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1mMzIxNi5kbGwNCitFWFBPUlRTDQorQ29udmVydEVtZlRvV21mDQorTWYzMjE2RGxsSW5pdGlhbGl6ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtZmM0MC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bWZjNDAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQxMTNlODkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bWZjNDAuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTUZDNDAuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1GQzQwLkRMTA0KK0VYUE9SVFMNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbENhblVubG9hZE5vdw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtZmM0MHUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21mYzQwdS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGMxMzE0YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtZmM0MHUuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTUZDNDB1LkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNRkM0MHUuRExMDQorRVhQT1JUUw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsQ2FuVW5sb2FkTm93DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21mYzQyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtZmM0Mi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTQ3NjJmOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtZmM0Mi5kZWYKQEAgLTAsMCArMSwxNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNRkM0Mi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTUZDNDIuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IENSdW50aW1lQ2xhc3MgY29uc3QgIENDYWNoZWREYXRhUGF0aFByb3BlcnR5OjpjbGFzc0NDYWNoZWREYXRhUGF0aFByb3BlcnR5DQorP2NsYXNzQ0NhY2hlZERhdGFQYXRoUHJvcGVydHlAQ0NhY2hlZERhdGFQYXRoUHJvcGVydHlAQDJVQ1J1bnRpbWVDbGFzc0BAQg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IENSdW50aW1lQ2xhc3MgY29uc3QgIENEYXRhUGF0aFByb3BlcnR5OjpjbGFzc0NEYXRhUGF0aFByb3BlcnR5DQorP2NsYXNzQ0RhdGFQYXRoUHJvcGVydHlAQ0RhdGFQYXRoUHJvcGVydHlAQDJVQ1J1bnRpbWVDbGFzc0BAQg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21mYzQydS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bWZjNDJ1LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZTAwZThlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21mYzQydS5kZWYKQEAgLTAsMCArMSwxNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNRkM0MnUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1GQzQydS5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyBjb25zdCAgQ0NhY2hlZERhdGFQYXRoUHJvcGVydHk6OmNsYXNzQ0NhY2hlZERhdGFQYXRoUHJvcGVydHkNCis/Y2xhc3NDQ2FjaGVkRGF0YVBhdGhQcm9wZXJ0eUBDQ2FjaGVkRGF0YVBhdGhQcm9wZXJ0eUBAMlVDUnVudGltZUNsYXNzQEBCDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgQ1J1bnRpbWVDbGFzcyBjb25zdCAgQ0RhdGFQYXRoUHJvcGVydHk6OmNsYXNzQ0RhdGFQYXRoUHJvcGVydHkNCis/Y2xhc3NDRGF0YVBhdGhQcm9wZXJ0eUBDRGF0YVBhdGhQcm9wZXJ0eUBAMlVDUnVudGltZUNsYXNzQEBCDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bWZjc3Vicy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bWZjc3Vicy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWMzYjE1ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtZmNzdWJzLmRlZgpAQCAtMCwwICsxLDM0MCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNZmNTdWJzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNZmNTdWJzLmRsbA0KK0VYUE9SVFMNCis7IFZDU3RyaW5nOjo/JENvbnN0cnVjdEVsZW1lbnRzKEBAWUdYUEFWQ1N0cmluZ0BASEBaKQ0KKz8/JENvbnN0cnVjdEVsZW1lbnRzQFZDU3RyaW5nQEBAQFlHWFBBVkNTdHJpbmdAQEhAWg0KKzsgVkNTdHJpbmc6Oj8kQ29weUVsZW1lbnRzKEBAWUdYUEFWQ1N0cmluZ0BAUEJWMEBIQFopDQorPz8kQ29weUVsZW1lbnRzQFZDU3RyaW5nQEBAQFlHWFBBVkNTdHJpbmdAQFBCVjBASEBaDQorOyBWQ1N0cmluZzo6PyREZXN0cnVjdEVsZW1lbnRzKEBAWUdYUEFWQ1N0cmluZ0BASEBaKQ0KKz8/JERlc3RydWN0RWxlbWVudHNAVkNTdHJpbmdAQEBAWUdYUEFWQ1N0cmluZ0BASEBaDQorOyBBQlVfR1VJRDo6PyRIYXNoS2V5KEBAWUdJQUJVX0dVSURAQEBaKQ0KKz8/JEhhc2hLZXlAQUJVX0dVSURAQEBAWUdJQUJVX0dVSURAQEBaDQorOyBQQkQ6Oj8kSGFzaEtleShZR0lQQkRAWikNCis/PyRIYXNoS2V5QFBCREBAWUdJUEJEQFoNCis7IFBCRzo6PyRIYXNoS2V5KFlHSVBCR0BaKQ0KKz8/JEhhc2hLZXlAUEJHQEBZR0lQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDcml0aWNhbFNlY3Rpb246OkNDcml0aWNhbFNlY3Rpb24odm9pZCkNCis/PzBDQ3JpdGljYWxTZWN0aW9uQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWFwU3RyaW5nVG9QdHI6OkNNYXBTdHJpbmdUb1B0cihpbnQpDQorPz8wQ01hcFN0cmluZ1RvUHRyQEBRQUVASEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQ09iamVjdDo6Q09iamVjdCh2b2lkKQ0KKz8/MENPYmplY3RAQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTdHJpbmc6OkNTdHJpbmcoY2xhc3MgQ1N0cmluZyBjb25zdCAmKQ0KKz8/MENTdHJpbmdAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1N0cmluZzo6Q1N0cmluZyh1bnNpZ25lZCBzaG9ydCxpbnQpDQorPz8wQ1N0cmluZ0BAUUFFQEdIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU3RyaW5nOjpDU3RyaW5nKGNoYXIgY29uc3QgKikNCis/PzBDU3RyaW5nQEBRQUVAUEJEQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU3RyaW5nOjpDU3RyaW5nKHVuc2lnbmVkIGNoYXIgY29uc3QgKikNCis/PzBDU3RyaW5nQEBRQUVAUEJFQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU3RyaW5nOjpDU3RyaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wQ1N0cmluZ0BAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1N0cmluZzo6Q1N0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/PzBDU3RyaW5nQEBRQUVAUEJHSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1N0cmluZzo6Q1N0cmluZyh2b2lkKQ0KKz8/MENTdHJpbmdAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTdHJpbmdBcnJheTo6Q1N0cmluZ0FycmF5KHZvaWQpDQorPz8wQ1N0cmluZ0FycmF5QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU3luY09iamVjdDo6Q1N5bmNPYmplY3QodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBDU3luY09iamVjdEBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDQ3JpdGljYWxTZWN0aW9uOjp+Q0NyaXRpY2FsU2VjdGlvbih2b2lkKQ0KKz8/MUNDcml0aWNhbFNlY3Rpb25AQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ01hcFN0cmluZ1RvUHRyOjp+Q01hcFN0cmluZ1RvUHRyKHZvaWQpDQorPz8xQ01hcFN0cmluZ1RvUHRyQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENPYmplY3Q6On5DT2JqZWN0KHZvaWQpDQorPz8xQ09iamVjdEBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1N0cmluZzo6fkNTdHJpbmcodm9pZCkNCis/PzFDU3RyaW5nQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENTdHJpbmdBcnJheTo6fkNTdHJpbmdBcnJheSh2b2lkKQ0KKz8/MUNTdHJpbmdBcnJheUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDU3luY09iamVjdDo6fkNTeW5jT2JqZWN0KHZvaWQpDQorPz8xQ1N5bmNPYmplY3RAQFVBRUBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgQ1BsZXggJiBfX3RoaXNjYWxsIENQbGV4OjpvcGVyYXRvcj0oc3RydWN0IENQbGV4IGNvbnN0ICYpDQorPz80Q1BsZXhAQFFBRUFBVTBAQUJVMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX190aGlzY2FsbCBDU3RyaW5nOjpvcGVyYXRvcj0oY2xhc3MgQ1N0cmluZyBjb25zdCAmKQ0KKz8/NENTdHJpbmdAQFFBRUFCVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX190aGlzY2FsbCBDU3RyaW5nOjpvcGVyYXRvcj0oY2hhcikNCis/PzRDU3RyaW5nQEBRQUVBQlYwQERAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX190aGlzY2FsbCBDU3RyaW5nOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQpDQorPz80Q1N0cmluZ0BAUUFFQUJWMEBHQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fdGhpc2NhbGwgQ1N0cmluZzo6b3BlcmF0b3I9KGNoYXIgY29uc3QgKikNCis/PzRDU3RyaW5nQEBRQUVBQlYwQFBCREBaDQorOyBwdWJsaWM6IGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3RoaXNjYWxsIENTdHJpbmc6Om9wZXJhdG9yPSh1bnNpZ25lZCBjaGFyIGNvbnN0ICopDQorPz80Q1N0cmluZ0BAUUFFQUJWMEBQQkVAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX190aGlzY2FsbCBDU3RyaW5nOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzRDU3RyaW5nQEBRQUVBQlYwQFBCR0BaDQorOyBib29sIF9fc3RkY2FsbCBvcGVyYXRvcj09KGNsYXNzIENTdHJpbmcgY29uc3QgJixjbGFzcyBDU3RyaW5nIGNvbnN0ICYpDQorPz84QFlHX05BQlZDU3RyaW5nQEAwQFoNCis7IGJvb2wgX19zdGRjYWxsIG9wZXJhdG9yPT0oY2xhc3MgQ1N0cmluZyBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz84QFlHX05BQlZDU3RyaW5nQEBQQkdAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgb3BlcmF0b3I9PSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENTdHJpbmcgY29uc3QgJikNCis/PzhAWUdfTlBCR0FCVkNTdHJpbmdAQEBaDQorOyBib29sIF9fc3RkY2FsbCBvcGVyYXRvciE9KGNsYXNzIENTdHJpbmcgY29uc3QgJixjbGFzcyBDU3RyaW5nIGNvbnN0ICYpDQorPz85QFlHX05BQlZDU3RyaW5nQEAwQFoNCis7IGJvb2wgX19zdGRjYWxsIG9wZXJhdG9yIT0oY2xhc3MgQ1N0cmluZyBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz85QFlHX05BQlZDU3RyaW5nQEBQQkdAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgb3BlcmF0b3IhPSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENTdHJpbmcgY29uc3QgJikNCis/PzlAWUdfTlBCR0FCVkNTdHJpbmdAQEBaDQorOyBwdWJsaWM6IHZvaWQgKiAmIF9fdGhpc2NhbGwgQ01hcFN0cmluZ1RvUHRyOjpvcGVyYXRvcltdKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz9BQ01hcFN0cmluZ1RvUHRyQEBRQUVBQVBBWFBCR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgQ1N0cmluZzo6b3BlcmF0b3JbXShpbnQpY29uc3QgDQorPz9BQ1N0cmluZ0BAUUJFR0hAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nICYgX190aGlzY2FsbCBDU3RyaW5nQXJyYXk6Om9wZXJhdG9yW10oaW50KQ0KKz8/QUNTdHJpbmdBcnJheUBAUUFFQUFWQ1N0cmluZ0BASEBaDQorOyBwdWJsaWM6IGNsYXNzIENTdHJpbmcgIF9fdGhpc2NhbGwgQ1N0cmluZ0FycmF5OjpvcGVyYXRvcltdKGludCljb25zdCANCis/P0FDU3RyaW5nQXJyYXlAQFFCRT9BVkNTdHJpbmdAQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDcml0aWNhbFNlY3Rpb246Om9wZXJhdG9yIHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gKih2b2lkKQ0KKz8/QkNDcml0aWNhbFNlY3Rpb25AQFFBRVBBVV9SVExfQ1JJVElDQUxfU0VDVElPTkBAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU3RyaW5nOjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCBjb25zdCAqKHZvaWQpY29uc3QgDQorPz9CQ1N0cmluZ0BAUUJFUEJHWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU3luY09iamVjdDo6b3BlcmF0b3Igdm9pZCAqKHZvaWQpY29uc3QgDQorPz9CQ1N5bmNPYmplY3RAQFFCRVBBWFhaDQorOyBjbGFzcyBDU3RyaW5nICBfX3N0ZGNhbGwgb3BlcmF0b3IrKGNsYXNzIENTdHJpbmcgY29uc3QgJixjbGFzcyBDU3RyaW5nIGNvbnN0ICYpDQorPz9IQFlHP0FWQ1N0cmluZ0BAQUJWMEAwQFoNCis7IGNsYXNzIENTdHJpbmcgIF9fc3RkY2FsbCBvcGVyYXRvcisoY2xhc3MgQ1N0cmluZyBjb25zdCAmLGNoYXIpDQorPz9IQFlHP0FWQ1N0cmluZ0BAQUJWMEBEQFoNCis7IGNsYXNzIENTdHJpbmcgIF9fc3RkY2FsbCBvcGVyYXRvcisoY2xhc3MgQ1N0cmluZyBjb25zdCAmLHVuc2lnbmVkIHNob3J0KQ0KKz8/SEBZRz9BVkNTdHJpbmdAQEFCVjBAR0BaDQorOyBjbGFzcyBDU3RyaW5nICBfX3N0ZGNhbGwgb3BlcmF0b3IrKGNsYXNzIENTdHJpbmcgY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/SEBZRz9BVkNTdHJpbmdAQEFCVjBAUEJHQFoNCis7IGNsYXNzIENTdHJpbmcgIF9fc3RkY2FsbCBvcGVyYXRvcisoY2hhcixjbGFzcyBDU3RyaW5nIGNvbnN0ICYpDQorPz9IQFlHP0FWQ1N0cmluZ0BAREFCVjBAQFoNCis7IGNsYXNzIENTdHJpbmcgIF9fc3RkY2FsbCBvcGVyYXRvcisodW5zaWduZWQgc2hvcnQsY2xhc3MgQ1N0cmluZyBjb25zdCAmKQ0KKz8/SEBZRz9BVkNTdHJpbmdAQEdBQlYwQEBaDQorOyBjbGFzcyBDU3RyaW5nICBfX3N0ZGNhbGwgb3BlcmF0b3IrKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1N0cmluZyBjb25zdCAmKQ0KKz8/SEBZRz9BVkNTdHJpbmdAQFBCR0FCVjBAQFoNCis7IGJvb2wgX19zdGRjYWxsIG9wZXJhdG9yPChjbGFzcyBDU3RyaW5nIGNvbnN0ICYsY2xhc3MgQ1N0cmluZyBjb25zdCAmKQ0KKz8/TUBZR19OQUJWQ1N0cmluZ0BAMEBaDQorOyBib29sIF9fc3RkY2FsbCBvcGVyYXRvcjwoY2xhc3MgQ1N0cmluZyBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz9NQFlHX05BQlZDU3RyaW5nQEBQQkdAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgb3BlcmF0b3I8KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1N0cmluZyBjb25zdCAmKQ0KKz8/TUBZR19OUEJHQUJWQ1N0cmluZ0BAQFoNCis7IGJvb2wgX19zdGRjYWxsIG9wZXJhdG9yPD0oY2xhc3MgQ1N0cmluZyBjb25zdCAmLGNsYXNzIENTdHJpbmcgY29uc3QgJikNCis/P05AWUdfTkFCVkNTdHJpbmdAQDBAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgb3BlcmF0b3I8PShjbGFzcyBDU3RyaW5nIGNvbnN0ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/P05AWUdfTkFCVkNTdHJpbmdAQFBCR0BaDQorOyBib29sIF9fc3RkY2FsbCBvcGVyYXRvcjw9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1N0cmluZyBjb25zdCAmKQ0KKz8/TkBZR19OUEJHQUJWQ1N0cmluZ0BAQFoNCis7IGJvb2wgX19zdGRjYWxsIG9wZXJhdG9yPihjbGFzcyBDU3RyaW5nIGNvbnN0ICYsY2xhc3MgQ1N0cmluZyBjb25zdCAmKQ0KKz8/T0BZR19OQUJWQ1N0cmluZ0BAMEBaDQorOyBib29sIF9fc3RkY2FsbCBvcGVyYXRvcj4oY2xhc3MgQ1N0cmluZyBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz9PQFlHX05BQlZDU3RyaW5nQEBQQkdAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgb3BlcmF0b3I+KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1N0cmluZyBjb25zdCAmKQ0KKz8/T0BZR19OUEJHQUJWQ1N0cmluZ0BAQFoNCis7IGJvb2wgX19zdGRjYWxsIG9wZXJhdG9yPj0oY2xhc3MgQ1N0cmluZyBjb25zdCAmLGNsYXNzIENTdHJpbmcgY29uc3QgJikNCis/P1BAWUdfTkFCVkNTdHJpbmdAQDBAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgb3BlcmF0b3I+PShjbGFzcyBDU3RyaW5nIGNvbnN0ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/P1BAWUdfTkFCVkNTdHJpbmdAQFBCR0BaDQorOyBib29sIF9fc3RkY2FsbCBvcGVyYXRvcj49KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1N0cmluZyBjb25zdCAmKQ0KKz8/UEBZR19OUEJHQUJWQ1N0cmluZ0BAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fdGhpc2NhbGwgQ1N0cmluZzo6b3BlcmF0b3IrPShjbGFzcyBDU3RyaW5nIGNvbnN0ICYpDQorPz9ZQ1N0cmluZ0BAUUFFQUJWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3RoaXNjYWxsIENTdHJpbmc6Om9wZXJhdG9yKz0oY2hhcikNCis/P1lDU3RyaW5nQEBRQUVBQlYwQERAWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nIGNvbnN0ICYgX190aGlzY2FsbCBDU3RyaW5nOjpvcGVyYXRvcis9KHVuc2lnbmVkIHNob3J0KQ0KKz8/WUNTdHJpbmdAQFFBRUFCVjBAR0BaDQorOyBwdWJsaWM6IGNsYXNzIENTdHJpbmcgY29uc3QgJiBfX3RoaXNjYWxsIENTdHJpbmc6Om9wZXJhdG9yKz0odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/P1lDU3RyaW5nQEBRQUVBQlYwQFBCR0BaDQorOyBjb25zdCAgQ0NyaXRpY2FsU2VjdGlvbjo6YHZmdGFibGUnDQorPz9fN0NDcml0aWNhbFNlY3Rpb25AQDZCQA0KKzsgY29uc3QgIENNYXBTdHJpbmdUb1B0cjo6YHZmdGFibGUnDQorPz9fN0NNYXBTdHJpbmdUb1B0ckBANkJADQorOyBjb25zdCAgQ09iamVjdDo6YHZmdGFibGUnDQorPz9fN0NPYmplY3RAQDZCQA0KKzsgY29uc3QgIENTdHJpbmdBcnJheTo6YHZmdGFibGUnDQorPz9fN0NTdHJpbmdBcnJheUBANkJADQorOyBjb25zdCAgQ1N5bmNPYmplY3Q6OmB2ZnRhYmxlJw0KKz8/XzdDU3luY09iamVjdEBANkJADQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTWFwU3RyaW5nVG9QdHI6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRkNNYXBTdHJpbmdUb1B0ckBAUUFFWFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTdHJpbmdBcnJheTo6QWRkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0FkZEBDU3RyaW5nQXJyYXlAQFFBRUhQQkdAWg0KKzsgdW5zaWduZWQgc2hvcnQgKiBfX3N0ZGNhbGwgQWZ4QTJXSGVscGVyKHVuc2lnbmVkIHNob3J0ICosY2hhciBjb25zdCAqLGludCkNCis/QWZ4QTJXSGVscGVyQEBZR1BBR1BBR1BCREhAWg0KKzsgaW50IF9fc3RkY2FsbCBBZnhFeHRyYWN0U3ViU3RyaW5nKGNsYXNzIENTdHJpbmcgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCx1bnNpZ25lZCBzaG9ydCkNCis/QWZ4RXh0cmFjdFN1YlN0cmluZ0BAWUdIQUFWQ1N0cmluZ0BAUEJHSEdAWg0KKzsgY2xhc3MgQ1N0cmluZyBjb25zdCAmIF9fc3RkY2FsbCBBZnhHZXRFbXB0eVN0cmluZyh2b2lkKQ0KKz9BZnhHZXRFbXB0eVN0cmluZ0BAWUdBQlZDU3RyaW5nQEBYWg0KKzsgaW50IF9fc3RkY2FsbCBBZnhMb2FkU3RyaW5nKHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGludCkNCis/QWZ4TG9hZFN0cmluZ0BAWUdISVBBR0lAWg0KKzsgY2hhciAqIF9fc3RkY2FsbCBBZnhXMkFIZWxwZXIoY2hhciAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz9BZnhXMkFIZWxwZXJAQFlHUEFEUEFEUEJHSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDU3RyaW5nOjpBbGxvY0JlZm9yZVdyaXRlKGludCkNCis/QWxsb2NCZWZvcmVXcml0ZUBDU3RyaW5nQEBJQUVYSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDU3RyaW5nOjpBbGxvY0J1ZmZlcihpbnQpDQorP0FsbG9jQnVmZmVyQENTdHJpbmdAQElBRVhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENTdHJpbmc6OkFsbG9jQ29weShjbGFzcyBDU3RyaW5nICYsaW50LGludCxpbnQpY29uc3QgDQorP0FsbG9jQ29weUBDU3RyaW5nQEBJQkVYQUFWMUBISEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDU3RyaW5nQXJyYXk6OkFwcGVuZChjbGFzcyBDU3RyaW5nQXJyYXkgY29uc3QgJikNCis/QXBwZW5kQENTdHJpbmdBcnJheUBAUUFFSEFCVjFAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENTdHJpbmc6OkFzc2lnbkNvcHkoaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0Fzc2lnbkNvcHlAQ1N0cmluZ0BASUFFWEhQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDU3RyaW5nOjpDb2xsYXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP0NvbGxhdGVAQ1N0cmluZ0BAUUJFSFBCR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTdHJpbmc6OkNvbXBhcmUodW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/Q29tcGFyZUBDU3RyaW5nQEBRQkVIUEJHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1N0cmluZzo6Q29tcGFyZU5vQ2FzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9Db21wYXJlTm9DYXNlQENTdHJpbmdAQFFCRUhQQkdAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ1N0cmluZzo6Q29uY2F0Q29weShpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/Q29uY2F0Q29weUBDU3RyaW5nQEBJQUVYSFBCR0gwQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENTdHJpbmc6OkNvbmNhdEluUGxhY2UoaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NvbmNhdEluUGxhY2VAQ1N0cmluZ0BASUFFWEhQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1N0cmluZ0FycmF5OjpDb3B5KGNsYXNzIENTdHJpbmdBcnJheSBjb25zdCAmKQ0KKz9Db3B5QENTdHJpbmdBcnJheUBAUUFFWEFCVjFAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENTdHJpbmc6OkNvcHlCZWZvcmVXcml0ZSh2b2lkKQ0KKz9Db3B5QmVmb3JlV3JpdGVAQ1N0cmluZ0BASUFFWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgQ1BsZXggKiBfX3N0ZGNhbGwgQ1BsZXg6OkNyZWF0ZShzdHJ1Y3QgQ1BsZXggKiAmLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP0NyZWF0ZUBDUGxleEBAU0dQQVUxQEFBUEFVMUBJSUBaDQorOyBwdWJsaWM6IGNsYXNzIENTdHJpbmcgJiBfX3RoaXNjYWxsIENTdHJpbmdBcnJheTo6RWxlbWVudEF0KGludCkNCis/RWxlbWVudEF0QENTdHJpbmdBcnJheUBAUUFFQUFWQ1N0cmluZ0BASEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RyaW5nOjpFbXB0eSh2b2lkKQ0KKz9FbXB0eUBDU3RyaW5nQEBRQUVYWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1N0cmluZzo6RmluZCh1bnNpZ25lZCBzaG9ydCljb25zdCANCis/RmluZEBDU3RyaW5nQEBRQkVIR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTdHJpbmc6OkZpbmQodW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/RmluZEBDU3RyaW5nQEBRQkVIUEJHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1N0cmluZzo6RmluZE9uZU9mKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP0ZpbmRPbmVPZkBDU3RyaW5nQEBRQkVIUEJHQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENTdHJpbmc6OkZvcm1hdCh1bnNpZ25lZCBpbnQsLi4uKQ0KKz9Gb3JtYXRAQ1N0cmluZ0BAUUFBWElaWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1N0cmluZzo6Rm9ybWF0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosLi4uKQ0KKz9Gb3JtYXRAQ1N0cmluZ0BAUUFBWFBCR1paDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RyaW5nOjpGb3JtYXRNZXNzYWdlVyh1bnNpZ25lZCBpbnQsLi4uKQ0KKz9Gb3JtYXRNZXNzYWdlV0BDU3RyaW5nQEBRQUFYSVpaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDU3RyaW5nOjpGb3JtYXRNZXNzYWdlVyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLC4uLikNCis/Rm9ybWF0TWVzc2FnZVdAQ1N0cmluZ0BAUUFBWFBCR1paDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDU3RyaW5nOjpGb3JtYXRWKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2hhciAqKQ0KKz9Gb3JtYXRWQENTdHJpbmdAQElBRVhQQkdQQURAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ01hcFN0cmluZ1RvUHRyOjpGcmVlQXNzb2Moc3RydWN0IENNYXBTdHJpbmdUb1B0cjo6Q0Fzc29jICopDQorP0ZyZWVBc3NvY0BDTWFwU3RyaW5nVG9QdHJAQElBRVhQQVVDQXNzb2NAMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1BsZXg6OkZyZWVEYXRhQ2hhaW4odm9pZCkNCis/RnJlZURhdGFDaGFpbkBDUGxleEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RyaW5nOjpGcmVlRXh0cmEodm9pZCkNCis/RnJlZUV4dHJhQENTdHJpbmdAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1N0cmluZ0FycmF5OjpGcmVlRXh0cmEodm9pZCkNCis/RnJlZUV4dHJhQENTdHJpbmdBcnJheUBAUUFFWFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTdHJpbmc6OkdldEFsbG9jTGVuZ3RoKHZvaWQpY29uc3QgDQorP0dldEFsbG9jTGVuZ3RoQENTdHJpbmdAQFFCRUhYWg0KKzsgcHJvdGVjdGVkOiBzdHJ1Y3QgQ01hcFN0cmluZ1RvUHRyOjpDQXNzb2MgKiBfX3RoaXNjYWxsIENNYXBTdHJpbmdUb1B0cjo6R2V0QXNzb2NBdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCAmKWNvbnN0IA0KKz9HZXRBc3NvY0F0QENNYXBTdHJpbmdUb1B0ckBASUJFUEFVQ0Fzc29jQDFAUEJHQUFJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDU3RyaW5nOjpHZXRBdChpbnQpY29uc3QgDQorP0dldEF0QENTdHJpbmdAQFFCRUdIQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyAgX190aGlzY2FsbCBDU3RyaW5nQXJyYXk6OkdldEF0KGludCljb25zdCANCis/R2V0QXRAQ1N0cmluZ0FycmF5QEBRQkU/QVZDU3RyaW5nQEBIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIENTdHJpbmc6OkdldEJ1ZmZlcihpbnQpDQorP0dldEJ1ZmZlckBDU3RyaW5nQEBRQUVQQUdIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIENTdHJpbmc6OkdldEJ1ZmZlclNldExlbmd0aChpbnQpDQorP0dldEJ1ZmZlclNldExlbmd0aEBDU3RyaW5nQEBRQUVQQUdIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ01hcFN0cmluZ1RvUHRyOjpHZXRDb3VudCh2b2lkKWNvbnN0IA0KKz9HZXRDb3VudEBDTWFwU3RyaW5nVG9QdHJAQFFCRUhYWg0KKzsgcHJvdGVjdGVkOiBzdHJ1Y3QgQ1N0cmluZ0RhdGEgKiBfX3RoaXNjYWxsIENTdHJpbmc6OkdldERhdGEodm9pZCljb25zdCANCis/R2V0RGF0YUBDU3RyaW5nQEBJQkVQQVVDU3RyaW5nRGF0YUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyAqIF9fdGhpc2NhbGwgQ1N0cmluZ0FycmF5OjpHZXREYXRhKHZvaWQpDQorP0dldERhdGFAQ1N0cmluZ0FycmF5QEBRQUVQQVZDU3RyaW5nQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDU3RyaW5nIGNvbnN0ICogX190aGlzY2FsbCBDU3RyaW5nQXJyYXk6OkdldERhdGEodm9pZCljb25zdCANCis/R2V0RGF0YUBDU3RyaW5nQXJyYXlAQFFCRVBCVkNTdHJpbmdAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIENNYXBTdHJpbmdUb1B0cjo6R2V0SGFzaFRhYmxlU2l6ZSh2b2lkKWNvbnN0IA0KKz9HZXRIYXNoVGFibGVTaXplQENNYXBTdHJpbmdUb1B0ckBAUUJFSVhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTdHJpbmc6OkdldExlbmd0aCh2b2lkKWNvbnN0IA0KKz9HZXRMZW5ndGhAQ1N0cmluZ0BAUUJFSFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTWFwU3RyaW5nVG9QdHI6OkdldE5leHRBc3NvYyhzdHJ1Y3QgX19QT1NJVElPTiAqICYsY2xhc3MgQ1N0cmluZyAmLHZvaWQgKiAmKWNvbnN0IA0KKz9HZXROZXh0QXNzb2NAQ01hcFN0cmluZ1RvUHRyQEBRQkVYQUFQQVVfX1BPU0lUSU9OQEBBQVZDU3RyaW5nQEBBQVBBWEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTdHJpbmdBcnJheTo6R2V0U2l6ZSh2b2lkKWNvbnN0IA0KKz9HZXRTaXplQENTdHJpbmdBcnJheUBAUUJFSFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfX1BPU0lUSU9OICogX190aGlzY2FsbCBDTWFwU3RyaW5nVG9QdHI6OkdldFN0YXJ0UG9zaXRpb24odm9pZCljb25zdCANCis/R2V0U3RhcnRQb3NpdGlvbkBDTWFwU3RyaW5nVG9QdHJAQFFCRVBBVV9fUE9TSVRJT05AQFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTdHJpbmdBcnJheTo6R2V0VXBwZXJCb3VuZCh2b2lkKWNvbnN0IA0KKz9HZXRVcHBlckJvdW5kQENTdHJpbmdBcnJheUBAUUJFSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIENNYXBTdHJpbmdUb1B0cjo6SGFzaEtleSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9IYXNoS2V5QENNYXBTdHJpbmdUb1B0ckBAUUJFSVBCR0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDU3RyaW5nOjpJbml0KHZvaWQpDQorP0luaXRAQ1N0cmluZ0BASUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTWFwU3RyaW5nVG9QdHI6OkluaXRIYXNoVGFibGUodW5zaWduZWQgaW50LGludCkNCis/SW5pdEhhc2hUYWJsZUBDTWFwU3RyaW5nVG9QdHJAQFFBRVhJSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RyaW5nQXJyYXk6Okluc2VydEF0KGludCxjbGFzcyBDU3RyaW5nQXJyYXkgKikNCis/SW5zZXJ0QXRAQ1N0cmluZ0FycmF5QEBRQUVYSFBBVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTdHJpbmdBcnJheTo6SW5zZXJ0QXQoaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz9JbnNlcnRBdEBDU3RyaW5nQXJyYXlAQFFBRVhIUEJHSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENNYXBTdHJpbmdUb1B0cjo6SXNFbXB0eSh2b2lkKWNvbnN0IA0KKz9Jc0VtcHR5QENNYXBTdHJpbmdUb1B0ckBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTdHJpbmc6OklzRW1wdHkodm9pZCljb25zdCANCis/SXNFbXB0eUBDU3RyaW5nQEBRQkVIWFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyAgX190aGlzY2FsbCBDU3RyaW5nOjpMZWZ0KGludCljb25zdCANCis/TGVmdEBDU3RyaW5nQEBRQkU/QVYxQEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDU3RyaW5nOjpMb2FkU3RyaW5nVyh1bnNpZ25lZCBpbnQpDQorP0xvYWRTdHJpbmdXQENTdHJpbmdAQFFBRUhJQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NyaXRpY2FsU2VjdGlvbjo6TG9jayh2b2lkKQ0KKz9Mb2NrQENDcml0aWNhbFNlY3Rpb25AQFFBRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENDcml0aWNhbFNlY3Rpb246OkxvY2sodW5zaWduZWQgbG9uZykNCis/TG9ja0BDQ3JpdGljYWxTZWN0aW9uQEBVQUVIS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ1N5bmNPYmplY3Q6OkxvY2sodW5zaWduZWQgbG9uZykNCis/TG9ja0BDU3luY09iamVjdEBAVUFFSEtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ1N0cmluZzo6TG9ja0J1ZmZlcih2b2lkKQ0KKz9Mb2NrQnVmZmVyQENTdHJpbmdAQFFBRVBBR1haDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENNYXBTdHJpbmdUb1B0cjo6TG9va3VwKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdm9pZCAqICYpY29uc3QgDQorP0xvb2t1cEBDTWFwU3RyaW5nVG9QdHJAQFFCRUhQQkdBQVBBWEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENNYXBTdHJpbmdUb1B0cjo6TG9va3VwS2V5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKiAmKWNvbnN0IA0KKz9Mb29rdXBLZXlAQ01hcFN0cmluZ1RvUHRyQEBRQkVIUEJHQUFQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1N0cmluZzo6TWFrZUxvd2VyKHZvaWQpDQorP01ha2VMb3dlckBDU3RyaW5nQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTdHJpbmc6Ok1ha2VSZXZlcnNlKHZvaWQpDQorP01ha2VSZXZlcnNlQENTdHJpbmdAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1N0cmluZzo6TWFrZVVwcGVyKHZvaWQpDQorP01ha2VVcHBlckBDU3RyaW5nQEBRQUVYWFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyAgX190aGlzY2FsbCBDU3RyaW5nOjpNaWQoaW50KWNvbnN0IA0KKz9NaWRAQ1N0cmluZ0BAUUJFP0FWMUBIQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyAgX190aGlzY2FsbCBDU3RyaW5nOjpNaWQoaW50LGludCljb25zdCANCis/TWlkQENTdHJpbmdAQFFCRT9BVjFASEhAWg0KKzsgcHJvdGVjdGVkOiBzdHJ1Y3QgQ01hcFN0cmluZ1RvUHRyOjpDQXNzb2MgKiBfX3RoaXNjYWxsIENNYXBTdHJpbmdUb1B0cjo6TmV3QXNzb2Modm9pZCkNCis/TmV3QXNzb2NAQ01hcFN0cmluZ1RvUHRyQEBJQUVQQVVDQXNzb2NAMUBYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ1N0cmluZzo6UmVsZWFzZSh2b2lkKQ0KKz9SZWxlYXNlQENTdHJpbmdAQElBRVhYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1N0cmluZzo6UmVsZWFzZShzdHJ1Y3QgQ1N0cmluZ0RhdGEgKikNCis/UmVsZWFzZUBDU3RyaW5nQEBLR1hQQVVDU3RyaW5nRGF0YUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTdHJpbmc6OlJlbGVhc2VCdWZmZXIoaW50KQ0KKz9SZWxlYXNlQnVmZmVyQENTdHJpbmdAQFFBRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENNYXBTdHJpbmdUb1B0cjo6UmVtb3ZlQWxsKHZvaWQpDQorP1JlbW92ZUFsbEBDTWFwU3RyaW5nVG9QdHJAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1N0cmluZ0FycmF5OjpSZW1vdmVBbGwodm9pZCkNCis/UmVtb3ZlQWxsQENTdHJpbmdBcnJheUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RyaW5nQXJyYXk6OlJlbW92ZUF0KGludCxpbnQpDQorP1JlbW92ZUF0QENTdHJpbmdBcnJheUBAUUFFWEhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ01hcFN0cmluZ1RvUHRyOjpSZW1vdmVLZXkodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/UmVtb3ZlS2V5QENNYXBTdHJpbmdUb1B0ckBAUUFFSFBCR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTdHJpbmc6OlJldmVyc2VGaW5kKHVuc2lnbmVkIHNob3J0KWNvbnN0IA0KKz9SZXZlcnNlRmluZEBDU3RyaW5nQEBRQkVIR0BaDQorOyBwdWJsaWM6IGNsYXNzIENTdHJpbmcgIF9fdGhpc2NhbGwgQ1N0cmluZzo6UmlnaHQoaW50KWNvbnN0IA0KKz9SaWdodEBDU3RyaW5nQEBRQkU/QVYxQEhAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDU3RyaW5nOjpTYWZlU3RybGVuKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NhZmVTdHJsZW5AQ1N0cmluZ0BAS0dIUEJHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENNYXBTdHJpbmdUb1B0cjo6U2V0QXQodW5zaWduZWQgc2hvcnQgY29uc3QgKix2b2lkICopDQorP1NldEF0QENNYXBTdHJpbmdUb1B0ckBAUUFFWFBCR1BBWEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RyaW5nOjpTZXRBdChpbnQsdW5zaWduZWQgc2hvcnQpDQorP1NldEF0QENTdHJpbmdAQFFBRVhIR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RyaW5nQXJyYXk6OlNldEF0KGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRBdEBDU3RyaW5nQXJyYXlAQFFBRVhIUEJHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTdHJpbmdBcnJheTo6U2V0QXRHcm93KGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRBdEdyb3dAQ1N0cmluZ0FycmF5QEBRQUVYSFBCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RyaW5nQXJyYXk6OlNldFNpemUoaW50LGludCkNCis/U2V0U2l6ZUBDU3RyaW5nQXJyYXlAQFFBRVhISEBaDQorOyBwdWJsaWM6IGNsYXNzIENTdHJpbmcgIF9fdGhpc2NhbGwgQ1N0cmluZzo6U3BhbkV4Y2x1ZGluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9TcGFuRXhjbHVkaW5nQENTdHJpbmdAQFFCRT9BVjFAUEJHQFoNCis7IHB1YmxpYzogY2xhc3MgQ1N0cmluZyAgX190aGlzY2FsbCBDU3RyaW5nOjpTcGFuSW5jbHVkaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP1NwYW5JbmNsdWRpbmdAQ1N0cmluZ0BAUUJFP0FWMUBQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1N0cmluZzo6VHJpbUxlZnQodm9pZCkNCis/VHJpbUxlZnRAQ1N0cmluZ0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RyaW5nOjpUcmltUmlnaHQodm9pZCkNCis/VHJpbVJpZ2h0QENTdHJpbmdAQFFBRVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENDcml0aWNhbFNlY3Rpb246OlVubG9jayh2b2lkKQ0KKz9VbmxvY2tAQ0NyaXRpY2FsU2VjdGlvbkBAVUFFSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ1N5bmNPYmplY3Q6OlVubG9jayhsb25nLGxvbmcgKikNCis/VW5sb2NrQENTeW5jT2JqZWN0QEBVQUVISlBBSkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RyaW5nOjpVbmxvY2tCdWZmZXIodm9pZCkNCis/VW5sb2NrQnVmZmVyQENTdHJpbmdAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBDUGxleDo6ZGF0YSh2b2lkKQ0KKz9kYXRhQENQbGV4QEBRQUVQQVhYWg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtZ210YXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtZ210YXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41YTE3YzA5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21nbXRhcGkuZGVmCkBAIC0wLDAgKzEsMTcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbWdtdGFwaS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbWdtdGFwaS5kbGwNCitFWFBPUlRTDQorU25tcE1nckNsb3NlDQorU25tcE1nckN0bA0KK1NubXBNZ3JHZXRUcmFwDQorU25tcE1nckdldFRyYXBFeA0KK1NubXBNZ3JPaWRUb1N0cg0KK1NubXBNZ3JPcGVuDQorU25tcE1nclJlcXVlc3QNCitTbm1wTWdyU3RyVG9PaWQNCitTbm1wTWdyVHJhcExpc3Rlbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bWkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNiN2FlZTEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bWkuZGVmCkBAIC0wLDAgKzEsNTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgV01JLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXTUkuZGxsDQorRVhQT1JUUw0KK0Nsb3NlVHJhY2UNCitDb250cm9sVHJhY2VBDQorQ29udHJvbFRyYWNlVw0KK0NyZWF0ZVRyYWNlSW5zdGFuY2VJZA0KK0VuYWJsZVRyYWNlDQorR2V0VHJhY2VFbmFibGVGbGFncw0KK0dldFRyYWNlRW5hYmxlTGV2ZWwNCitHZXRUcmFjZUxvZ2dlckhhbmRsZQ0KK09wZW5UcmFjZUENCitPcGVuVHJhY2VXDQorUHJvY2Vzc1RyYWNlDQorUXVlcnlBbGxUcmFjZXNBDQorUXVlcnlBbGxUcmFjZXNXDQorUmVnaXN0ZXJUcmFjZUd1aWRzQQ0KK1JlZ2lzdGVyVHJhY2VHdWlkc1cNCitSZW1vdmVUcmFjZUNhbGxiYWNrDQorU2V0VHJhY2VDYWxsYmFjaw0KK1N0YXJ0VHJhY2VBDQorU3RhcnRUcmFjZVcNCitUcmFjZUV2ZW50DQorVHJhY2VFdmVudEluc3RhbmNlDQorVW5yZWdpc3RlclRyYWNlR3VpZHMNCitXbWlDbG9zZUJsb2NrDQorV21pRGV2SW5zdFRvSW5zdGFuY2VOYW1lQQ0KK1dtaURldkluc3RUb0luc3RhbmNlTmFtZVcNCitXbWlFbnVtZXJhdGVHdWlkcw0KK1dtaUV4ZWN1dGVNZXRob2RBDQorV21pRXhlY3V0ZU1ldGhvZFcNCitXbWlGaWxlSGFuZGxlVG9JbnN0YW5jZU5hbWVBDQorV21pRmlsZUhhbmRsZVRvSW5zdGFuY2VOYW1lVw0KK1dtaUZyZWVCdWZmZXINCitXbWlNb2ZFbnVtZXJhdGVSZXNvdXJjZXNBDQorV21pTW9mRW51bWVyYXRlUmVzb3VyY2VzVw0KK1dtaU5vdGlmaWNhdGlvblJlZ2lzdHJhdGlvbkENCitXbWlOb3RpZmljYXRpb25SZWdpc3RyYXRpb25XDQorV21pT3BlbkJsb2NrDQorV21pUXVlcnlBbGxEYXRhQQ0KK1dtaVF1ZXJ5QWxsRGF0YVcNCitXbWlRdWVyeUd1aWRJbmZvcm1hdGlvbg0KK1dtaVF1ZXJ5U2luZ2xlSW5zdGFuY2VBDQorV21pUXVlcnlTaW5nbGVJbnN0YW5jZVcNCitXbWlTZXRTaW5nbGVJbnN0YW5jZUENCitXbWlTZXRTaW5nbGVJbnN0YW5jZVcNCitXbWlTZXRTaW5nbGVJdGVtQQ0KK1dtaVNldFNpbmdsZUl0ZW1XDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21pMnhtbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bWkyeG1sLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNjI0NTlkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21pMnhtbC5kZWYKQEAgLTAsMCArMSwxNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB3bWkyeG1sLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSB3bWkyeG1sLmRsbA0KK0VYUE9SVFMNCitDbG9zZVdiZW1UZXh0U291cmNlDQorT3BlbldiZW1UZXh0U291cmNlDQorVGV4dFRvV2JlbU9iamVjdA0KK1diZW1PYmplY3RUb1RleHQNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtaWFwcnBsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtaWFwcnBsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MzljMjYwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21pYXBycGwuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgV21pQXBScGwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFdtaUFwUnBsLmRsbA0KK0VYUE9SVFMNCitXbWlDbG9zZVBlcmZEYXRhDQorV21pQ29sbGVjdFBlcmZEYXRhDQorV21pT3BlblBlcmZEYXRhDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21pY29va3IuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21pY29va3IuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYwY2ZiNjAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bWljb29rci5kZWYKQEAgLTAsMCArMSwxNzAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgV01JQ29va2VyLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXTUlDb29rZXIuRExMDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIENBcmVuYTo6Q0FyZW5hKGNsYXNzIENBcmVuYSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDQXJlbmFAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQXJlbmE6OkNBcmVuYSh2b2lkKSBfX3B0cjY0DQorPz8wQ0FyZW5hQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NoZWNrZWRJbkNyaXRTZWM6OkNDaGVja2VkSW5Dcml0U2VjKGNsYXNzIENDcml0U2VjICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENDaGVja2VkSW5Dcml0U2VjQEBRRUFBQFBFQVZDQ3JpdFNlY0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ3JpdFNlYzo6Q0NyaXRTZWModm9pZCkgX19wdHI2NA0KKz8/MENDcml0U2VjQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0VudGVyV2JlbUNyaXRpY2FsU2VjdGlvbjo6Q0VudGVyV2JlbUNyaXRpY2FsU2VjdGlvbihjbGFzcyBDV2JlbUNyaXRpY2FsU2VjdGlvbiAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENFbnRlcldiZW1Dcml0aWNhbFNlY3Rpb25AQFFFQUFAUEVBVkNXYmVtQ3JpdGljYWxTZWN0aW9uQEBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSGFsdGFibGU6OkNIYWx0YWJsZShjbGFzcyBDSGFsdGFibGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0hhbHRhYmxlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0luQ3JpdFNlYzo6Q0luQ3JpdFNlYyhzdHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENJbkNyaXRTZWNAQFFFQUFAUEVBVV9SVExfQ1JJVElDQUxfU0VDVElPTkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2luMzJEZWZhdWx0QXJlbmE6OkNXaW4zMkRlZmF1bHRBcmVuYShjbGFzcyBDV2luMzJEZWZhdWx0QXJlbmEgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ1dpbjMyRGVmYXVsdEFyZW5hQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1dpbjMyRGVmYXVsdEFyZW5hOjpDV2luMzJEZWZhdWx0QXJlbmEodm9pZCkgX19wdHI2NA0KKz8/MENXaW4zMkRlZmF1bHRBcmVuYUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFdTdHJpbmc6OldTdHJpbmcoY2xhc3MgV1N0cmluZyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBXU3RyaW5nQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NoZWNrZWRJbkNyaXRTZWM6On5DQ2hlY2tlZEluQ3JpdFNlYyh2b2lkKSBfX3B0cjY0DQorPz8xQ0NoZWNrZWRJbkNyaXRTZWNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ3JpdFNlYzo6fkNDcml0U2VjKHZvaWQpIF9fcHRyNjQNCis/PzFDQ3JpdFNlY0BAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENFbnRlcldiZW1Dcml0aWNhbFNlY3Rpb246On5DRW50ZXJXYmVtQ3JpdGljYWxTZWN0aW9uKHZvaWQpIF9fcHRyNjQNCis/PzFDRW50ZXJXYmVtQ3JpdGljYWxTZWN0aW9uQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0luQ3JpdFNlYzo6fkNJbkNyaXRTZWModm9pZCkgX19wdHI2NA0KKz8/MUNJbkNyaXRTZWNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2luMzJEZWZhdWx0QXJlbmE6On5DV2luMzJEZWZhdWx0QXJlbmEodm9pZCkgX19wdHI2NA0KKz8/MUNXaW4zMkRlZmF1bHRBcmVuYUBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIFdTdHJpbmc6On5XU3RyaW5nKHZvaWQpIF9fcHRyNjQNCis/PzFXU3RyaW5nQEBRRUFBQFhaDQorOyBwdWJsaWM6IGNsYXNzIENBcmVuYSAmIF9fcHRyNjQgX19jZGVjbCBDQXJlbmE6Om9wZXJhdG9yPShjbGFzcyBDQXJlbmEgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0FyZW5hQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NoZWNrZWRJbkNyaXRTZWMgJiBfX3B0cjY0IF9fY2RlY2wgQ0NoZWNrZWRJbkNyaXRTZWM6Om9wZXJhdG9yPShjbGFzcyBDQ2hlY2tlZEluQ3JpdFNlYyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDQ2hlY2tlZEluQ3JpdFNlY0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENDcml0U2VjICYgX19wdHI2NCBfX2NkZWNsIENDcml0U2VjOjpvcGVyYXRvcj0oY2xhc3MgQ0NyaXRTZWMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0NyaXRTZWNAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRW50ZXJXYmVtQ3JpdGljYWxTZWN0aW9uICYgX19wdHI2NCBfX2NkZWNsIENFbnRlcldiZW1Dcml0aWNhbFNlY3Rpb246Om9wZXJhdG9yPShjbGFzcyBDRW50ZXJXYmVtQ3JpdGljYWxTZWN0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENFbnRlcldiZW1Dcml0aWNhbFNlY3Rpb25AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRmxleFF1ZXVlICYgX19wdHI2NCBfX2NkZWNsIENGbGV4UXVldWU6Om9wZXJhdG9yPShjbGFzcyBDRmxleFF1ZXVlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENGbGV4UXVldWVAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSGFsdGFibGUgJiBfX3B0cjY0IF9fY2RlY2wgQ0hhbHRhYmxlOjpvcGVyYXRvcj0oY2xhc3MgQ0hhbHRhYmxlIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENIYWx0YWJsZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENJbkNyaXRTZWMgJiBfX3B0cjY0IF9fY2RlY2wgQ0luQ3JpdFNlYzo6b3BlcmF0b3I9KGNsYXNzIENJbkNyaXRTZWMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0luQ3JpdFNlY0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTbWFsbEFycmF5QmxvYiAmIF9fcHRyNjQgX19jZGVjbCBDU21hbGxBcnJheUJsb2I6Om9wZXJhdG9yPShjbGFzcyBDU21hbGxBcnJheUJsb2IgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1NtYWxsQXJyYXlCbG9iQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1diZW1Dcml0aWNhbFNlY3Rpb24gJiBfX3B0cjY0IF9fY2RlY2wgQ1diZW1Dcml0aWNhbFNlY3Rpb246Om9wZXJhdG9yPShjbGFzcyBDV2JlbUNyaXRpY2FsU2VjdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDV2JlbUNyaXRpY2FsU2VjdGlvbkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXaW4zMkRlZmF1bHRBcmVuYSAmIF9fcHRyNjQgX19jZGVjbCBDV2luMzJEZWZhdWx0QXJlbmE6Om9wZXJhdG9yPShjbGFzcyBDV2luMzJEZWZhdWx0QXJlbmEgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1dpbjMyRGVmYXVsdEFyZW5hQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgJiBfX3B0cjY0IF9fY2RlY2wgQ0ZsZXhBcnJheTo6b3BlcmF0b3JbXShpbnQpIF9fcHRyNjQNCis/P0FDRmxleEFycmF5QEBRRUFBQUVBUEVBWEhAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENGbGV4QXJyYXk6Om9wZXJhdG9yW10oaW50KWNvbnN0ICBfX3B0cjY0DQorPz9BQ0ZsZXhBcnJheUBAUUVCQVBFQVhIQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBDU21hbGxBcnJheUJsb2I6Om9wZXJhdG9yW10oaW50KWNvbnN0ICBfX3B0cjY0DQorPz9BQ1NtYWxsQXJyYXlCbG9iQEBRRUJBUEVBWEhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQgX19jZGVjbCBDV1N0cmluZ0FycmF5OjpvcGVyYXRvcltdKGludCljb25zdCAgX19wdHI2NA0KKz8/QUNXU3RyaW5nQXJyYXlAQFFFQkFQRUFHSEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgV1N0cmluZzo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KHZvaWQpIF9fcHRyNjQNCis/P0JXU3RyaW5nQEBRRUFBUEVBR1haDQorOyBwdWJsaWM6IF9fY2RlY2wgV1N0cmluZzo6b3BlcmF0b3IgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/P0JXU3RyaW5nQEBRRUJBUEVCR1haDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdTdHJpbmc6Om9wZXJhdG9yPCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/P01XU3RyaW5nQEBRRUJBSFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXU3RyaW5nOjpvcGVyYXRvcjw9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/TldTdHJpbmdAQFFFQkFIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdTdHJpbmc6Om9wZXJhdG9yPih1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fcHRyNjQpY29uc3QgIF9fcHRyNjQNCis/P09XU3RyaW5nQEBRRUJBSFBFQkdAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBXU3RyaW5nOjpvcGVyYXRvcj49KHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/UFdTdHJpbmdAQFFFQkFIUEVCR0BaDQorOyBjb25zdCAgQ0FyZW5hOjpgdmZ0YWJsZScNCis/P183Q0FyZW5hQEA2QkANCis7IGNvbnN0ICBDSGFsdGFibGU6OmB2ZnRhYmxlJw0KKz8/XzdDSGFsdGFibGVAQDZCQA0KKzsgY29uc3QgIENXaW4zMkRlZmF1bHRBcmVuYTo6YHZmdGFibGUnDQorPz9fN0NXaW4zMkRlZmF1bHRBcmVuYUBANkJADQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmxleEFycmF5OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNGbGV4QXJyYXlAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGbGV4UXVldWU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GQ0ZsZXhRdWV1ZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1dTdHJpbmdBcnJheTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDV1N0cmluZ0FycmF5QEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENGbGV4QXJyYXk6OkFkZCh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRAQ0ZsZXhBcnJheUBAUUVBQUhQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX19wdHI2NCBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6QWxsb2ModW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9BbGxvY0BDV2luMzJEZWZhdWx0QXJlbmFAQFVFQUFQRUFYX0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgV1N0cmluZzo6QmluZFB0cih1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpIF9fcHRyNjQNCis/QmluZFB0ckBXU3RyaW5nQEBRRUFBWFBFQUdAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1dTdHJpbmdBcnJheTo6Q29tcHJlc3Modm9pZCkgX19wdHI2NA0KKz9Db21wcmVzc0BDV1N0cmluZ0FycmF5QEBRRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDRmxleFF1ZXVlOjpEZWNyZW1lbnRJbmRleChpbnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlY3JlbWVudEluZGV4QENGbGV4UXVldWVAQElFQUFYQUVBSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ2hlY2tlZEluQ3JpdFNlYzo6RW50ZXIodm9pZCkgX19wdHI2NA0KKz9FbnRlckBDQ2hlY2tlZEluQ3JpdFNlY0BAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NyaXRTZWM6OkVudGVyKHZvaWQpIF9fcHRyNjQNCis/RW50ZXJAQ0NyaXRTZWNAQFFFQUFYWFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgV1N0cmluZzo6RXF1YWwodW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0KWNvbnN0ICBfX3B0cjY0DQorP0VxdWFsQFdTdHJpbmdAQFFFQkFIUEVCR0BaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdTdHJpbmc6OkVxdWFsTm9DYXNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9FcXVhbE5vQ2FzZUBXU3RyaW5nQEBRRUJBSFBFQkdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6RnJlZSh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9GcmVlQENXaW4zMkRlZmF1bHRBcmVuYUBAVUVBQUhQRUFYQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0IF9fY2RlY2wgQ0ZsZXhBcnJheTo6R2V0QXJyYXlQdHIodm9pZCkgX19wdHI2NA0KKz9HZXRBcnJheVB0ckBDRmxleEFycmF5QEBRRUFBUEVBUEVBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENGbGV4QXJyYXk6OkdldEFycmF5UHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0QXJyYXlQdHJAQ0ZsZXhBcnJheUBAUUVCQVBFQlFFQVhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCAqIF9fcHRyNjQgX19jZGVjbCBDU21hbGxBcnJheUJsb2I6OkdldEFycmF5UHRyKHZvaWQpIF9fcHRyNjQNCis/R2V0QXJyYXlQdHJAQ1NtYWxsQXJyYXlCbG9iQEBRRUFBUEVBUEVBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENTbWFsbEFycmF5QmxvYjo6R2V0QXJyYXlQdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRBcnJheVB0ckBDU21hbGxBcnJheUJsb2JAQFFFQkFQRUJRRUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCBfX2NkZWNsIENXU3RyaW5nQXJyYXk6OkdldEFycmF5UHRyKHZvaWQpIF9fcHRyNjQNCis/R2V0QXJyYXlQdHJAQ1dTdHJpbmdBcnJheUBAUUVBQVBFQVBFQkdYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENGbGV4QXJyYXk6OkdldEF0KGludCljb25zdCAgX19wdHI2NA0KKz9HZXRBdEBDRmxleEFycmF5QEBRRUJBUEVBWEhAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENTbWFsbEFycmF5QmxvYjo6R2V0QXQoaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldEF0QENTbWFsbEFycmF5QmxvYkBAUUVCQVBFQVhIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1dTdHJpbmdBcnJheTo6R2V0QXQoaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldEF0QENXU3RyaW5nQXJyYXlAQFFFQkFQRUFHSEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBDV2JlbUNyaXRpY2FsU2VjdGlvbjo6R2V0TG9ja0NvdW50KHZvaWQpIF9fcHRyNjQNCis/R2V0TG9ja0NvdW50QENXYmVtQ3JpdGljYWxTZWN0aW9uQEBRRUFBSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDV2JlbUNyaXRpY2FsU2VjdGlvbjo6R2V0T3duaW5nVGhyZWFkSWQodm9pZCkgX19wdHI2NA0KKz9HZXRPd25pbmdUaHJlYWRJZEBDV2JlbUNyaXRpY2FsU2VjdGlvbkBAUUVBQUtYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRmxleFF1ZXVlOjpHZXRRdWV1ZVNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRRdWV1ZVNpemVAQ0ZsZXhRdWV1ZUBAUUVCQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1Dcml0aWNhbFNlY3Rpb246OkdldFJlY3Vyc2lvbkNvdW50KHZvaWQpIF9fcHRyNjQNCis/R2V0UmVjdXJzaW9uQ291bnRAQ1diZW1Dcml0aWNhbFNlY3Rpb25AQFFFQUFKWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX2NkZWNsIENGbGV4UXVldWU6OkluY3JlbWVudEluZGV4KGludCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/SW5jcmVtZW50SW5kZXhAQ0ZsZXhRdWV1ZUBASUVBQVhBRUFIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0NoZWNrZWRJbkNyaXRTZWM6OklzRW50ZXJlZCh2b2lkKSBfX3B0cjY0DQorP0lzRW50ZXJlZEBDQ2hlY2tlZEluQ3JpdFNlY0BAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRW50ZXJXYmVtQ3JpdGljYWxTZWN0aW9uOjpJc0VudGVyZWQodm9pZCkgX19wdHI2NA0KKz9Jc0VudGVyZWRAQ0VudGVyV2JlbUNyaXRpY2FsU2VjdGlvbkBAUUVBQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NoZWNrZWRJbkNyaXRTZWM6OkxlYXZlKHZvaWQpIF9fcHRyNjQNCis/TGVhdmVAQ0NoZWNrZWRJbkNyaXRTZWNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDcml0U2VjOjpMZWF2ZSh2b2lkKSBfX3B0cjY0DQorP0xlYXZlQENDcml0U2VjQEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIFdTdHJpbmc6Okxlbmd0aCh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP0xlbmd0aEBXU3RyaW5nQEBRRUJBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBDV2luMzJEZWZhdWx0QXJlbmE6OlJlYWxsb2Modm9pZCAqIF9fcHRyNjQsdW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9SZWFsbG9jQENXaW4zMkRlZmF1bHRBcmVuYUBAVUVBQVBFQVhQRUFYX0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZsZXhBcnJheTo6U2V0QXQoaW50LHZvaWQgKiBfX3B0cjY0KSBfX3B0cjY0DQorP1NldEF0QENGbGV4QXJyYXlAQFFFQUFYSFBFQVhAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0ZsZXhBcnJheTo6U2V0U2l6ZShpbnQpIF9fcHRyNjQNCis/U2V0U2l6ZUBDRmxleEFycmF5QEBRRUFBWEhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRmxleEFycmF5OjpTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U2l6ZUBDRmxleEFycmF5QEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENTbWFsbEFycmF5QmxvYjo6U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1NpemVAQ1NtYWxsQXJyYXlCbG9iQEBRRUJBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENXU3RyaW5nQXJyYXk6OlNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9TaXplQENXU3RyaW5nQXJyYXlAQFFFQkFIWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBDRmxleFF1ZXVlOjpVbnF1ZXVlKHZvaWQpIF9fcHRyNjQNCis/VW5xdWV1ZUBDRmxleFF1ZXVlQEBRRUFBUEVBWFhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1dpbjMyRGVmYXVsdEFyZW5hOjpXYmVtU3lzRnJlZVN0cmluZyh1bnNpZ25lZCBzaG9ydCAqIF9fcHRyNjQpDQorP1diZW1TeXNGcmVlU3RyaW5nQENXaW4zMkRlZmF1bHRBcmVuYUBAU0FYUEVBR0BaDQorOyBwdWJsaWM6IGJvb2wgX19jZGVjbCBDSGFsdGFibGU6OmlzVmFsaWQodm9pZCkgX19wdHI2NA0KKz9pc1ZhbGlkQENIYWx0YWJsZUBAUUVBQV9OWFoNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtaWRjcHJ2LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtaWRjcHJ2LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YjVlMjY2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21pZGNwcnYuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgV21pRGNQcnYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFdtaURjUHJ2LmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtaWRpbWFwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtaWRpbWFwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNTJkMjRlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21pZGltYXAuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTUlESU1BUC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTUlESU1BUC5kbGwNCitFWFBPUlRTDQorRHJpdmVyUHJvYw0KK21vZE1lc3NhZ2UNCittb2RtQ2FsbGJhY2sNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bWlnaXNtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtaWdpc20uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI4YmVjYzIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bWlnaXNtLmRlZgpAQCAtMCwwICsxLDI1NyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNSUdJU00uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1JR0lTTS5kbGwNCitFWFBPUlRTDQorRGxsTWFpbg0KK0lzbUFiYW5kb25PYmplY3RJZE9uQ29sbGlzaW9uDQorSXNtQWJhbmRvbk9iamVjdE9uQ29sbGlzaW9uDQorSXNtQWJvcnRBcHBseU9iamVjdEVudW0NCitJc21BYm9ydENvbXBvbmVudEVudW0NCitJc21BYm9ydE9iamVjdEF0dHJpYnV0ZUVudW0NCitJc21BYm9ydE9iamVjdEVudW0NCitJc21BYm9ydE9iamVjdE9wZXJhdGlvbkVudW0NCitJc21BYm9ydE9iamVjdFByb3BlcnR5RW51bQ0KK0lzbUFib3J0T2JqZWN0VHlwZUlkRW51bQ0KK0lzbUFib3J0T2JqZWN0V2l0aEF0dHJpYnV0ZUVudW0NCitJc21BYm9ydE9iamVjdFdpdGhPcGVyYXRpb25FbnVtDQorSXNtQWJvcnRPYmplY3RXaXRoUHJvcGVydHlFbnVtDQorSXNtQWJvcnRQZXJzaXN0ZW50T2JqZWN0RW51bQ0KK0lzbUFib3J0U2NvcGVFbnVtDQorSXNtQWJvcnRUcmFuc3BvcnRFbnVtDQorSXNtQWNxdWlyZU9iamVjdEV4DQorSXNtQWRkQ29tcG9uZW50QWxpYXMNCitJc21BZGRDb250cm9sRmlsZQ0KK0lzbUFkZFByb3BlcnR5RGF0YVRvT2JqZWN0DQorSXNtQWRkUHJvcGVydHlEYXRhVG9PYmplY3RJZA0KK0lzbUFkZFByb3BlcnR5VG9PYmplY3QNCitJc21BZGRQcm9wZXJ0eVRvT2JqZWN0SWQNCitJc21BZGRUb1BoeXNpY2FsRW51bQ0KK0lzbUFsbG9jRW52aXJvbm1lbnRWYXJpYWJsZUxpc3QNCitJc21BcHBlbmRFbnZpcm9ubWVudE11bHRpU3oNCitJc21BcHBlbmRFbnZpcm9ubWVudFN0cmluZw0KK0lzbUFyZU9iamVjdHNJZGVudGljYWwNCitJc21DYW5Xcml0ZVJvbGxiYWNrSm91cm5hbA0KK0lzbUNsZWFyQWJhbmRvbk9iamVjdElkT25Db2xsaXNpb24NCitJc21DbGVhckFiYW5kb25PYmplY3RPbkNvbGxpc2lvbg0KK0lzbUNsZWFyQXBwbHlPbk9iamVjdA0KK0lzbUNsZWFyQXBwbHlPbk9iamVjdElkDQorSXNtQ2xlYXJBdHRyaWJ1dGVPbk9iamVjdA0KK0lzbUNsZWFyQXR0cmlidXRlT25PYmplY3RJZA0KK0lzbUNsZWFyTm9uQ3JpdGljYWxGbGFnT25PYmplY3QNCitJc21DbGVhck5vbkNyaXRpY2FsRmxhZ09uT2JqZWN0SWQNCitJc21DbGVhck9wZXJhdGlvbk9uT2JqZWN0DQorSXNtQ2xlYXJPcGVyYXRpb25Pbk9iamVjdElkDQorSXNtQ2xlYXJQZXJzaXN0ZW5jZU9uT2JqZWN0DQorSXNtQ2xlYXJQZXJzaXN0ZW5jZU9uT2JqZWN0SWQNCitJc21Db252ZXJ0T2JqZWN0Q29udGVudFRvQW5zaQ0KK0lzbUNvbnZlcnRPYmplY3RDb250ZW50VG9Vbmljb2RlDQorSXNtQ29udmVydE9iamVjdFRvTXVsdGlTeg0KK0lzbUNyZWF0ZVBhcnNlZFBhdHRlcm4NCitJc21DcmVhdGVTY29wZQ0KK0lzbUN1cnJlbnRseUV4ZWN1dGluZw0KK0lzbURlbGV0ZUVudmlyb25tZW50VmFyaWFibGUNCitJc21EZWxldGVTY29wZQ0KK0lzbURlc2VsZWN0U2NvcGUNCitJc21EZXN0cm95R2xvYmFsVmFyaWFibGUNCitJc21EZXN0cm95T2JqZWN0SGFuZGxlDQorSXNtRGVzdHJveU9iamVjdFN0cmluZw0KK0lzbURlc3Ryb3lQYXJzZWRQYXR0ZXJuDQorSXNtRG9lc09iamVjdEV4aXN0DQorSXNtRG9lc1JvbGxiYWNrRGF0YUV4aXN0DQorSXNtRW51bUZpcnN0QXBwbHlPYmplY3QNCitJc21FbnVtRmlyc3RDb21wb25lbnQNCitJc21FbnVtRmlyc3REZXN0aW5hdGlvbk9iamVjdEV4DQorSXNtRW51bUZpcnN0T2JqZWN0QXR0cmlidXRlDQorSXNtRW51bUZpcnN0T2JqZWN0QXR0cmlidXRlQnlJZA0KK0lzbUVudW1GaXJzdE9iamVjdE9wZXJhdGlvbg0KK0lzbUVudW1GaXJzdE9iamVjdE9wZXJhdGlvbkJ5SWQNCitJc21FbnVtRmlyc3RPYmplY3RQcm9wZXJ0eQ0KK0lzbUVudW1GaXJzdE9iamVjdFByb3BlcnR5QnlJZA0KK0lzbUVudW1GaXJzdE9iamVjdFR5cGVJZA0KK0lzbUVudW1GaXJzdE9iamVjdFdpdGhBdHRyaWJ1dGUNCitJc21FbnVtRmlyc3RPYmplY3RXaXRoT3BlcmF0aW9uDQorSXNtRW51bUZpcnN0T2JqZWN0V2l0aFByb3BlcnR5DQorSXNtRW51bUZpcnN0UGVyc2lzdGVudE9iamVjdA0KK0lzbUVudW1GaXJzdFNjb3BlDQorSXNtRW51bUZpcnN0U291cmNlT2JqZWN0RXgNCitJc21FbnVtRmlyc3RUcmFuc3BvcnQNCitJc21FbnVtTmV4dEFwcGx5T2JqZWN0DQorSXNtRW51bU5leHRDb21wb25lbnQNCitJc21FbnVtTmV4dE9iamVjdA0KK0lzbUVudW1OZXh0T2JqZWN0QXR0cmlidXRlDQorSXNtRW51bU5leHRPYmplY3RPcGVyYXRpb24NCitJc21FbnVtTmV4dE9iamVjdFByb3BlcnR5DQorSXNtRW51bU5leHRPYmplY3RUeXBlSWQNCitJc21FbnVtTmV4dE9iamVjdFdpdGhBdHRyaWJ1dGUNCitJc21FbnVtTmV4dE9iamVjdFdpdGhPcGVyYXRpb24NCitJc21FbnVtTmV4dE9iamVjdFdpdGhQcm9wZXJ0eQ0KK0lzbUVudW1OZXh0UGVyc2lzdGVudE9iamVjdA0KK0lzbUVudW1OZXh0U2NvcGUNCitJc21FbnVtTmV4dFRyYW5zcG9ydA0KK0lzbUV4ZWN1dGUNCitJc21FeGVjdXRlRnVuY3Rpb24NCitJc21FeGVjdXRlSG9va3MNCitJc21GaWx0ZXJPYmplY3QNCitJc21GcmVlQ29udmVydGVkT2JqZWN0Q29udGVudA0KK0lzbUZyZWVDdXJyZW50VXNlckRhdGENCitJc21GcmVlRW52aXJvbm1lbnRWYXJpYWJsZUxpc3QNCitJc21HZXRBY3RpdmVTY29wZUlkDQorSXNtR2V0QWN0aXZlU2NvcGVOYW1lDQorSXNtR2V0QWN0aXZlU2NvcGVOYW1lUmVuYW1lZA0KK0lzbUdldEF0dHJpYnV0ZUdyb3VwDQorSXNtR2V0QXR0cmlidXRlTmFtZQ0KK0lzbUdldENvbnRyb2xGaWxlDQorSXNtR2V0Q3VycmVudFNpZFN0cmluZw0KK0lzbUdldEVudmlyb25tZW50Q2FsbGJhY2sNCitJc21HZXRFbnZpcm9ubWVudERhdGENCitJc21HZXRFbnZpcm9ubWVudE11bHRpU3oNCitJc21HZXRFbnZpcm9ubWVudFN0cmluZw0KK0lzbUdldEVudmlyb25tZW50VmFsdWUNCitJc21HZXRHbG9iYWxWYXJpYWJsZQ0KK0lzbUdldE1hcHBlZFVzZXJEYXRhDQorSXNtR2V0T2JqZWN0SWRGcm9tTmFtZQ0KK0lzbUdldE9iamVjdE9wZXJhdGlvbkRhdGENCitJc21HZXRPYmplY3RPcGVyYXRpb25EYXRhQnlJZA0KK0lzbUdldE9iamVjdFR5cGVJZA0KK0lzbUdldE9iamVjdFR5cGVOYW1lDQorSXNtR2V0T2JqZWN0VHlwZVByaW9yaXR5DQorSXNtR2V0T2JqZWN0c1N0YXRpc3RpY3MNCitJc21HZXRPbmxpbmVVc2VyRGF0YQ0KK0lzbUdldE9wZXJhdGlvbkdyb3VwDQorSXNtR2V0T3BlcmF0aW9uTmFtZQ0KK0lzbUdldE9zVmVyc2lvbkluZm8NCitJc21HZXRQcm9wZXJ0eURhdGENCitJc21HZXRQcm9wZXJ0eUZyb21PYmplY3QNCitJc21HZXRQcm9wZXJ0eUZyb21PYmplY3RJZA0KK0lzbUdldFByb3BlcnR5R3JvdXANCitJc21HZXRQcm9wZXJ0eU5hbWUNCitJc21HZXRSZWFsUGxhdGZvcm0NCitJc21HZXRTY29wZU9iamVjdFR5cGVOYW1lDQorSXNtR2V0U2NvcGVQcm9wZXJ0eQ0KK0lzbUdldFRlbXBEaXJlY3RvcnkNCitJc21HZXRUZW1wRmlsZQ0KK0lzbUdldFRlbXBTdG9yYWdlDQorSXNtR2V0VHJhbnNwb3J0VmFyaWFibGUNCitJc21HZXRWaXJ0dWFsUGxhdGZvcm0NCitJc21Ib29rRW51bWVyYXRpb24NCitJc21Jbml0aWFsaXplDQorSXNtSXNBcHBseU9iamVjdA0KK0lzbUlzQXBwbHlPYmplY3RJZA0KK0lzbUlzQXR0cmlidXRlU2V0T25PYmplY3QNCitJc21Jc0F0dHJpYnV0ZVNldE9uT2JqZWN0SWQNCitJc21Jc0NvbXBvbmVudFNlbGVjdGVkDQorSXNtSXNFbnZpcm9ubWVudEZsYWdTZXQNCitJc21Jc05vbkNyaXRpY2FsT2JqZWN0DQorSXNtSXNOb25Dcml0aWNhbE9iamVjdElkDQorSXNtSXNPYmplY3RBYmFuZG9uZWRPbkNvbGxpc2lvbg0KK0lzbUlzT2JqZWN0SGFuZGxlTGVhZk9ubHkNCitJc21Jc09iamVjdEhhbmRsZU5vZGVPbmx5DQorSXNtSXNPYmplY3RJZEFiYW5kb25lZE9uQ29sbGlzaW9uDQorSXNtSXNPcGVyYXRpb25TZXRPbk9iamVjdA0KK0lzbUlzT3BlcmF0aW9uU2V0T25PYmplY3RJZA0KK0lzbUlzUGVyc2lzdGVudE9iamVjdA0KK0lzbUlzUGVyc2lzdGVudE9iamVjdElkDQorSXNtSXNQcm9wZXJ0eVNldE9uT2JqZWN0DQorSXNtSXNQcm9wZXJ0eVNldE9uT2JqZWN0SWQNCitJc21Jc1Njb3BlT25saW5lDQorSXNtSXNTY29wZVNlbGVjdGVkDQorSXNtSXNTeXN0ZW1TY29wZVNlbGVjdGVkDQorSXNtTG9hZA0KK0lzbUxvY2tBdHRyaWJ1dGUNCitJc21Mb2NrT2JqZWN0DQorSXNtTG9ja09iamVjdElkDQorSXNtTG9ja09wZXJhdGlvbg0KK0lzbUxvY2tQcm9wZXJ0eQ0KK0lzbU1ha2VBcHBseU9iamVjdA0KK0lzbU1ha2VBcHBseU9iamVjdElkDQorSXNtTWFrZU5vbkNyaXRpY2FsT2JqZWN0DQorSXNtTWFrZU5vbkNyaXRpY2FsT2JqZWN0SWQNCitJc21NYWtlUGVyc2lzdGVudE9iamVjdA0KK0lzbU1ha2VQZXJzaXN0ZW50T2JqZWN0SWQNCitJc21QYXJzZWRQYXR0ZXJuTWF0Y2gNCitJc21QYXJzZWRQYXR0ZXJuTWF0Y2hFeA0KK0lzbVByZXNlcnZlSm91cm5hbA0KK0lzbVByb2hpYml0UGh5c2ljYWxFbnVtDQorSXNtUXVldWVFbnVtZXJhdGlvbg0KK0lzbVJlY29yZERlbGF5ZWRPcGVyYXRpb24NCitJc21SZWNvcmRPcGVyYXRpb24NCitJc21SZWNvdmVyRWZzRmlsZQ0KK0lzbVJlZ2lzdGVyQXR0cmlidXRlDQorSXNtUmVnaXN0ZXJDb21wYXJlQ2FsbGJhY2sNCitJc21SZWdpc3RlckR5bmFtaWNFeGNsdXNpb24NCitJc21SZWdpc3Rlckdsb2JhbEFwcGx5Q2FsbGJhY2sNCitJc21SZWdpc3Rlckdsb2JhbEZpbHRlckNhbGxiYWNrDQorSXNtUmVnaXN0ZXJPYmplY3RUeXBlDQorSXNtUmVnaXN0ZXJPcGVyYXRpb24NCitJc21SZWdpc3Rlck9wZXJhdGlvbkFwcGx5Q2FsbGJhY2sNCitJc21SZWdpc3Rlck9wZXJhdGlvbkRhdGENCitJc21SZWdpc3Rlck9wZXJhdGlvbkZpbHRlckNhbGxiYWNrDQorSXNtUmVnaXN0ZXJQaHlzaWNhbEFjcXVpcmVIb29rDQorSXNtUmVnaXN0ZXJQb3N0RW51bWVyYXRpb25DYWxsYmFjaw0KK0lzbVJlZ2lzdGVyUHJlRW51bWVyYXRpb25DYWxsYmFjaw0KK0lzbVJlZ2lzdGVyUHJvZ3Jlc3NCYXJDYWxsYmFjaw0KK0lzbVJlZ2lzdGVyUHJvZ3Jlc3NTbGljZQ0KK0lzbVJlZ2lzdGVyUHJvcGVydHkNCitJc21SZWdpc3RlclByb3BlcnR5RGF0YQ0KK0lzbVJlZ2lzdGVyUmVzdG9yZUNhbGxiYWNrDQorSXNtUmVnaXN0ZXJTY29wZUNoYW5nZUNhbGxiYWNrDQorSXNtUmVnaXN0ZXJTdGF0aWNFeGNsdXNpb24NCitJc21SZWdpc3RlclRyYW5zcG9ydA0KK0lzbVJlZ2lzdGVyVHlwZVBvc3RFbnVtZXJhdGlvbkNhbGxiYWNrDQorSXNtUmVnaXN0ZXJUeXBlUHJlRW51bWVyYXRpb25DYWxsYmFjaw0KK0lzbVJlbGVhc2VNZW1vcnkNCitJc21SZWxlYXNlT2JqZWN0DQorSXNtUmVtb3ZlQWxsVXNlclN1cHBsaWVkQ29tcG9uZW50cw0KK0lzbVJlbW92ZVBoeXNpY2FsT2JqZWN0DQorSXNtUmVtb3ZlUHJvcGVydHlEYXRhDQorSXNtUmVtb3ZlUHJvcGVydHlGcm9tT2JqZWN0DQorSXNtUmVtb3ZlUHJvcGVydHlGcm9tT2JqZWN0SWQNCitJc21SZXBsYWNlUGh5c2ljYWxPYmplY3QNCitJc21SZXN1bWVMb2FkDQorSXNtUmVzdW1lU2F2ZQ0KK0lzbVJvbGxiYWNrDQorSXNtU2F2ZQ0KK0lzbVNlbGVjdENvbXBvbmVudA0KK0lzbVNlbGVjdE1hc3Rlckdyb3VwDQorSXNtU2VsZWN0UHJlZmVycmVkQWxpYXMNCitJc21TZWxlY3RTY29wZQ0KK0lzbVNlbGVjdFRyYW5zcG9ydA0KK0lzbVNlbmRNZXNzYWdlVG9BcHANCitJc21TZXRBdHRyaWJ1dGVPbk9iamVjdA0KK0lzbVNldEF0dHJpYnV0ZU9uT2JqZWN0SWQNCitJc21TZXRDYW5jZWwNCitJc21TZXREZWxheWVkT3BlcmF0aW9uc0NvbW1hbmQNCitJc21TZXRFbnZpcm9ubWVudENhbGxiYWNrDQorSXNtU2V0RW52aXJvbm1lbnREYXRhDQorSXNtU2V0RW52aXJvbm1lbnRGbGFnDQorSXNtU2V0RW52aXJvbm1lbnRNdWx0aVN6DQorSXNtU2V0RW52aXJvbm1lbnRTdHJpbmcNCitJc21TZXRFbnZpcm9ubWVudFZhbHVlDQorSXNtU2V0T3BlcmF0aW9uT25PYmplY3QyDQorSXNtU2V0T3BlcmF0aW9uT25PYmplY3QNCitJc21TZXRPcGVyYXRpb25Pbk9iamVjdElkMg0KK0lzbVNldE9wZXJhdGlvbk9uT2JqZWN0SWQNCitJc21TZXRQbGF0Zm9ybQ0KK0lzbVNldFJvbGxiYWNrSm91cm5hbFR5cGUNCitJc21TZXRUcmFuc3BvcnRTdG9yYWdlDQorSXNtU2V0VHJhbnNwb3J0VmFyaWFibGUNCitJc21TdGFydEV0bU1vZHVsZXMNCitJc21TdGFydFRyYW5zcG9ydA0KK0lzbVRlcm1pbmF0ZQ0KK0lzbVRpY2tQcm9ncmVzc0Jhcg0KK0lzbVVucmVnaXN0ZXJTY29wZUNoYW5nZUNhbGxiYWNrDQorVHJhY2tlZElzbUNvbXByZXNzRW52aXJvbm1lbnRTdHJpbmcNCitUcmFja2VkSXNtQ29udmVydE11bHRpU3pUb09iamVjdA0KK1RyYWNrZWRJc21DcmVhdGVPYmplY3RIYW5kbGUNCitUcmFja2VkSXNtQ3JlYXRlT2JqZWN0UGF0dGVybg0KK1RyYWNrZWRJc21DcmVhdGVPYmplY3RTdHJpbmdzRnJvbUhhbmRsZUV4DQorVHJhY2tlZElzbUNyZWF0ZVNpbXBsZU9iamVjdFBhdHRlcm4NCitUcmFja2VkSXNtRHVwbGljYXRlU3RyaW5nDQorVHJhY2tlZElzbUV4cGFuZEVudmlyb25tZW50U3RyaW5nDQorVHJhY2tlZElzbUdldExvbmdOYW1lDQorVHJhY2tlZElzbUdldE1lbW9yeQ0KK1RyYWNrZWRJc21HZXROYXRpdmVPYmplY3ROYW1lDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21pZ2lzbWEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21pZ2lzbWEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAzZWU4NDIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bWlnaXNtYS5kZWYKQEAgLTAsMCArMSwyNTcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTUlHSVNNQS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTUlHSVNNQS5kbGwNCitFWFBPUlRTDQorRGxsTWFpbg0KK0lzbUFiYW5kb25PYmplY3RJZE9uQ29sbGlzaW9uDQorSXNtQWJhbmRvbk9iamVjdE9uQ29sbGlzaW9uDQorSXNtQWJvcnRBcHBseU9iamVjdEVudW0NCitJc21BYm9ydENvbXBvbmVudEVudW0NCitJc21BYm9ydE9iamVjdEF0dHJpYnV0ZUVudW0NCitJc21BYm9ydE9iamVjdEVudW0NCitJc21BYm9ydE9iamVjdE9wZXJhdGlvbkVudW0NCitJc21BYm9ydE9iamVjdFByb3BlcnR5RW51bQ0KK0lzbUFib3J0T2JqZWN0VHlwZUlkRW51bQ0KK0lzbUFib3J0T2JqZWN0V2l0aEF0dHJpYnV0ZUVudW0NCitJc21BYm9ydE9iamVjdFdpdGhPcGVyYXRpb25FbnVtDQorSXNtQWJvcnRPYmplY3RXaXRoUHJvcGVydHlFbnVtDQorSXNtQWJvcnRQZXJzaXN0ZW50T2JqZWN0RW51bQ0KK0lzbUFib3J0U2NvcGVFbnVtDQorSXNtQWJvcnRUcmFuc3BvcnRFbnVtDQorSXNtQWNxdWlyZU9iamVjdEV4DQorSXNtQWRkQ29tcG9uZW50QWxpYXMNCitJc21BZGRDb250cm9sRmlsZQ0KK0lzbUFkZFByb3BlcnR5RGF0YVRvT2JqZWN0DQorSXNtQWRkUHJvcGVydHlEYXRhVG9PYmplY3RJZA0KK0lzbUFkZFByb3BlcnR5VG9PYmplY3QNCitJc21BZGRQcm9wZXJ0eVRvT2JqZWN0SWQNCitJc21BZGRUb1BoeXNpY2FsRW51bQ0KK0lzbUFsbG9jRW52aXJvbm1lbnRWYXJpYWJsZUxpc3QNCitJc21BcHBlbmRFbnZpcm9ubWVudE11bHRpU3oNCitJc21BcHBlbmRFbnZpcm9ubWVudFN0cmluZw0KK0lzbUFyZU9iamVjdHNJZGVudGljYWwNCitJc21DYW5Xcml0ZVJvbGxiYWNrSm91cm5hbA0KK0lzbUNsZWFyQWJhbmRvbk9iamVjdElkT25Db2xsaXNpb24NCitJc21DbGVhckFiYW5kb25PYmplY3RPbkNvbGxpc2lvbg0KK0lzbUNsZWFyQXBwbHlPbk9iamVjdA0KK0lzbUNsZWFyQXBwbHlPbk9iamVjdElkDQorSXNtQ2xlYXJBdHRyaWJ1dGVPbk9iamVjdA0KK0lzbUNsZWFyQXR0cmlidXRlT25PYmplY3RJZA0KK0lzbUNsZWFyTm9uQ3JpdGljYWxGbGFnT25PYmplY3QNCitJc21DbGVhck5vbkNyaXRpY2FsRmxhZ09uT2JqZWN0SWQNCitJc21DbGVhck9wZXJhdGlvbk9uT2JqZWN0DQorSXNtQ2xlYXJPcGVyYXRpb25Pbk9iamVjdElkDQorSXNtQ2xlYXJQZXJzaXN0ZW5jZU9uT2JqZWN0DQorSXNtQ2xlYXJQZXJzaXN0ZW5jZU9uT2JqZWN0SWQNCitJc21Db252ZXJ0T2JqZWN0Q29udGVudFRvQW5zaQ0KK0lzbUNvbnZlcnRPYmplY3RDb250ZW50VG9Vbmljb2RlDQorSXNtQ29udmVydE9iamVjdFRvTXVsdGlTeg0KK0lzbUNyZWF0ZVBhcnNlZFBhdHRlcm4NCitJc21DcmVhdGVTY29wZQ0KK0lzbUN1cnJlbnRseUV4ZWN1dGluZw0KK0lzbURlbGV0ZUVudmlyb25tZW50VmFyaWFibGUNCitJc21EZWxldGVTY29wZQ0KK0lzbURlc2VsZWN0U2NvcGUNCitJc21EZXN0cm95R2xvYmFsVmFyaWFibGUNCitJc21EZXN0cm95T2JqZWN0SGFuZGxlDQorSXNtRGVzdHJveU9iamVjdFN0cmluZw0KK0lzbURlc3Ryb3lQYXJzZWRQYXR0ZXJuDQorSXNtRG9lc09iamVjdEV4aXN0DQorSXNtRG9lc1JvbGxiYWNrRGF0YUV4aXN0DQorSXNtRW51bUZpcnN0QXBwbHlPYmplY3QNCitJc21FbnVtRmlyc3RDb21wb25lbnQNCitJc21FbnVtRmlyc3REZXN0aW5hdGlvbk9iamVjdEV4DQorSXNtRW51bUZpcnN0T2JqZWN0QXR0cmlidXRlDQorSXNtRW51bUZpcnN0T2JqZWN0QXR0cmlidXRlQnlJZA0KK0lzbUVudW1GaXJzdE9iamVjdE9wZXJhdGlvbg0KK0lzbUVudW1GaXJzdE9iamVjdE9wZXJhdGlvbkJ5SWQNCitJc21FbnVtRmlyc3RPYmplY3RQcm9wZXJ0eQ0KK0lzbUVudW1GaXJzdE9iamVjdFByb3BlcnR5QnlJZA0KK0lzbUVudW1GaXJzdE9iamVjdFR5cGVJZA0KK0lzbUVudW1GaXJzdE9iamVjdFdpdGhBdHRyaWJ1dGUNCitJc21FbnVtRmlyc3RPYmplY3RXaXRoT3BlcmF0aW9uDQorSXNtRW51bUZpcnN0T2JqZWN0V2l0aFByb3BlcnR5DQorSXNtRW51bUZpcnN0UGVyc2lzdGVudE9iamVjdA0KK0lzbUVudW1GaXJzdFNjb3BlDQorSXNtRW51bUZpcnN0U291cmNlT2JqZWN0RXgNCitJc21FbnVtRmlyc3RUcmFuc3BvcnQNCitJc21FbnVtTmV4dEFwcGx5T2JqZWN0DQorSXNtRW51bU5leHRDb21wb25lbnQNCitJc21FbnVtTmV4dE9iamVjdA0KK0lzbUVudW1OZXh0T2JqZWN0QXR0cmlidXRlDQorSXNtRW51bU5leHRPYmplY3RPcGVyYXRpb24NCitJc21FbnVtTmV4dE9iamVjdFByb3BlcnR5DQorSXNtRW51bU5leHRPYmplY3RUeXBlSWQNCitJc21FbnVtTmV4dE9iamVjdFdpdGhBdHRyaWJ1dGUNCitJc21FbnVtTmV4dE9iamVjdFdpdGhPcGVyYXRpb24NCitJc21FbnVtTmV4dE9iamVjdFdpdGhQcm9wZXJ0eQ0KK0lzbUVudW1OZXh0UGVyc2lzdGVudE9iamVjdA0KK0lzbUVudW1OZXh0U2NvcGUNCitJc21FbnVtTmV4dFRyYW5zcG9ydA0KK0lzbUV4ZWN1dGUNCitJc21FeGVjdXRlRnVuY3Rpb24NCitJc21FeGVjdXRlSG9va3MNCitJc21GaWx0ZXJPYmplY3QNCitJc21GcmVlQ29udmVydGVkT2JqZWN0Q29udGVudA0KK0lzbUZyZWVDdXJyZW50VXNlckRhdGENCitJc21GcmVlRW52aXJvbm1lbnRWYXJpYWJsZUxpc3QNCitJc21HZXRBY3RpdmVTY29wZUlkDQorSXNtR2V0QWN0aXZlU2NvcGVOYW1lDQorSXNtR2V0QWN0aXZlU2NvcGVOYW1lUmVuYW1lZA0KK0lzbUdldEF0dHJpYnV0ZUdyb3VwDQorSXNtR2V0QXR0cmlidXRlTmFtZQ0KK0lzbUdldENvbnRyb2xGaWxlDQorSXNtR2V0Q3VycmVudFNpZFN0cmluZw0KK0lzbUdldEVudmlyb25tZW50Q2FsbGJhY2sNCitJc21HZXRFbnZpcm9ubWVudERhdGENCitJc21HZXRFbnZpcm9ubWVudE11bHRpU3oNCitJc21HZXRFbnZpcm9ubWVudFN0cmluZw0KK0lzbUdldEVudmlyb25tZW50VmFsdWUNCitJc21HZXRHbG9iYWxWYXJpYWJsZQ0KK0lzbUdldE1hcHBlZFVzZXJEYXRhDQorSXNtR2V0T2JqZWN0SWRGcm9tTmFtZQ0KK0lzbUdldE9iamVjdE9wZXJhdGlvbkRhdGENCitJc21HZXRPYmplY3RPcGVyYXRpb25EYXRhQnlJZA0KK0lzbUdldE9iamVjdFR5cGVJZA0KK0lzbUdldE9iamVjdFR5cGVOYW1lDQorSXNtR2V0T2JqZWN0VHlwZVByaW9yaXR5DQorSXNtR2V0T2JqZWN0c1N0YXRpc3RpY3MNCitJc21HZXRPbmxpbmVVc2VyRGF0YQ0KK0lzbUdldE9wZXJhdGlvbkdyb3VwDQorSXNtR2V0T3BlcmF0aW9uTmFtZQ0KK0lzbUdldE9zVmVyc2lvbkluZm8NCitJc21HZXRQcm9wZXJ0eURhdGENCitJc21HZXRQcm9wZXJ0eUZyb21PYmplY3QNCitJc21HZXRQcm9wZXJ0eUZyb21PYmplY3RJZA0KK0lzbUdldFByb3BlcnR5R3JvdXANCitJc21HZXRQcm9wZXJ0eU5hbWUNCitJc21HZXRSZWFsUGxhdGZvcm0NCitJc21HZXRTY29wZU9iamVjdFR5cGVOYW1lDQorSXNtR2V0U2NvcGVQcm9wZXJ0eQ0KK0lzbUdldFRlbXBEaXJlY3RvcnkNCitJc21HZXRUZW1wRmlsZQ0KK0lzbUdldFRlbXBTdG9yYWdlDQorSXNtR2V0VHJhbnNwb3J0VmFyaWFibGUNCitJc21HZXRWaXJ0dWFsUGxhdGZvcm0NCitJc21Ib29rRW51bWVyYXRpb24NCitJc21Jbml0aWFsaXplDQorSXNtSXNBcHBseU9iamVjdA0KK0lzbUlzQXBwbHlPYmplY3RJZA0KK0lzbUlzQXR0cmlidXRlU2V0T25PYmplY3QNCitJc21Jc0F0dHJpYnV0ZVNldE9uT2JqZWN0SWQNCitJc21Jc0NvbXBvbmVudFNlbGVjdGVkDQorSXNtSXNFbnZpcm9ubWVudEZsYWdTZXQNCitJc21Jc05vbkNyaXRpY2FsT2JqZWN0DQorSXNtSXNOb25Dcml0aWNhbE9iamVjdElkDQorSXNtSXNPYmplY3RBYmFuZG9uZWRPbkNvbGxpc2lvbg0KK0lzbUlzT2JqZWN0SGFuZGxlTGVhZk9ubHkNCitJc21Jc09iamVjdEhhbmRsZU5vZGVPbmx5DQorSXNtSXNPYmplY3RJZEFiYW5kb25lZE9uQ29sbGlzaW9uDQorSXNtSXNPcGVyYXRpb25TZXRPbk9iamVjdA0KK0lzbUlzT3BlcmF0aW9uU2V0T25PYmplY3RJZA0KK0lzbUlzUGVyc2lzdGVudE9iamVjdA0KK0lzbUlzUGVyc2lzdGVudE9iamVjdElkDQorSXNtSXNQcm9wZXJ0eVNldE9uT2JqZWN0DQorSXNtSXNQcm9wZXJ0eVNldE9uT2JqZWN0SWQNCitJc21Jc1Njb3BlT25saW5lDQorSXNtSXNTY29wZVNlbGVjdGVkDQorSXNtSXNTeXN0ZW1TY29wZVNlbGVjdGVkDQorSXNtTG9hZA0KK0lzbUxvY2tBdHRyaWJ1dGUNCitJc21Mb2NrT2JqZWN0DQorSXNtTG9ja09iamVjdElkDQorSXNtTG9ja09wZXJhdGlvbg0KK0lzbUxvY2tQcm9wZXJ0eQ0KK0lzbU1ha2VBcHBseU9iamVjdA0KK0lzbU1ha2VBcHBseU9iamVjdElkDQorSXNtTWFrZU5vbkNyaXRpY2FsT2JqZWN0DQorSXNtTWFrZU5vbkNyaXRpY2FsT2JqZWN0SWQNCitJc21NYWtlUGVyc2lzdGVudE9iamVjdA0KK0lzbU1ha2VQZXJzaXN0ZW50T2JqZWN0SWQNCitJc21QYXJzZWRQYXR0ZXJuTWF0Y2gNCitJc21QYXJzZWRQYXR0ZXJuTWF0Y2hFeA0KK0lzbVByZXNlcnZlSm91cm5hbA0KK0lzbVByb2hpYml0UGh5c2ljYWxFbnVtDQorSXNtUXVldWVFbnVtZXJhdGlvbg0KK0lzbVJlY29yZERlbGF5ZWRPcGVyYXRpb24NCitJc21SZWNvcmRPcGVyYXRpb24NCitJc21SZWNvdmVyRWZzRmlsZQ0KK0lzbVJlZ2lzdGVyQXR0cmlidXRlDQorSXNtUmVnaXN0ZXJDb21wYXJlQ2FsbGJhY2sNCitJc21SZWdpc3RlckR5bmFtaWNFeGNsdXNpb24NCitJc21SZWdpc3Rlckdsb2JhbEFwcGx5Q2FsbGJhY2sNCitJc21SZWdpc3Rlckdsb2JhbEZpbHRlckNhbGxiYWNrDQorSXNtUmVnaXN0ZXJPYmplY3RUeXBlDQorSXNtUmVnaXN0ZXJPcGVyYXRpb24NCitJc21SZWdpc3Rlck9wZXJhdGlvbkFwcGx5Q2FsbGJhY2sNCitJc21SZWdpc3Rlck9wZXJhdGlvbkRhdGENCitJc21SZWdpc3Rlck9wZXJhdGlvbkZpbHRlckNhbGxiYWNrDQorSXNtUmVnaXN0ZXJQaHlzaWNhbEFjcXVpcmVIb29rDQorSXNtUmVnaXN0ZXJQb3N0RW51bWVyYXRpb25DYWxsYmFjaw0KK0lzbVJlZ2lzdGVyUHJlRW51bWVyYXRpb25DYWxsYmFjaw0KK0lzbVJlZ2lzdGVyUHJvZ3Jlc3NCYXJDYWxsYmFjaw0KK0lzbVJlZ2lzdGVyUHJvZ3Jlc3NTbGljZQ0KK0lzbVJlZ2lzdGVyUHJvcGVydHkNCitJc21SZWdpc3RlclByb3BlcnR5RGF0YQ0KK0lzbVJlZ2lzdGVyUmVzdG9yZUNhbGxiYWNrDQorSXNtUmVnaXN0ZXJTY29wZUNoYW5nZUNhbGxiYWNrDQorSXNtUmVnaXN0ZXJTdGF0aWNFeGNsdXNpb24NCitJc21SZWdpc3RlclRyYW5zcG9ydA0KK0lzbVJlZ2lzdGVyVHlwZVBvc3RFbnVtZXJhdGlvbkNhbGxiYWNrDQorSXNtUmVnaXN0ZXJUeXBlUHJlRW51bWVyYXRpb25DYWxsYmFjaw0KK0lzbVJlbGVhc2VNZW1vcnkNCitJc21SZWxlYXNlT2JqZWN0DQorSXNtUmVtb3ZlQWxsVXNlclN1cHBsaWVkQ29tcG9uZW50cw0KK0lzbVJlbW92ZVBoeXNpY2FsT2JqZWN0DQorSXNtUmVtb3ZlUHJvcGVydHlEYXRhDQorSXNtUmVtb3ZlUHJvcGVydHlGcm9tT2JqZWN0DQorSXNtUmVtb3ZlUHJvcGVydHlGcm9tT2JqZWN0SWQNCitJc21SZXBsYWNlUGh5c2ljYWxPYmplY3QNCitJc21SZXN1bWVMb2FkDQorSXNtUmVzdW1lU2F2ZQ0KK0lzbVJvbGxiYWNrDQorSXNtU2F2ZQ0KK0lzbVNlbGVjdENvbXBvbmVudA0KK0lzbVNlbGVjdE1hc3Rlckdyb3VwDQorSXNtU2VsZWN0UHJlZmVycmVkQWxpYXMNCitJc21TZWxlY3RTY29wZQ0KK0lzbVNlbGVjdFRyYW5zcG9ydA0KK0lzbVNlbmRNZXNzYWdlVG9BcHANCitJc21TZXRBdHRyaWJ1dGVPbk9iamVjdA0KK0lzbVNldEF0dHJpYnV0ZU9uT2JqZWN0SWQNCitJc21TZXRDYW5jZWwNCitJc21TZXREZWxheWVkT3BlcmF0aW9uc0NvbW1hbmQNCitJc21TZXRFbnZpcm9ubWVudENhbGxiYWNrDQorSXNtU2V0RW52aXJvbm1lbnREYXRhDQorSXNtU2V0RW52aXJvbm1lbnRGbGFnDQorSXNtU2V0RW52aXJvbm1lbnRNdWx0aVN6DQorSXNtU2V0RW52aXJvbm1lbnRTdHJpbmcNCitJc21TZXRFbnZpcm9ubWVudFZhbHVlDQorSXNtU2V0T3BlcmF0aW9uT25PYmplY3QyDQorSXNtU2V0T3BlcmF0aW9uT25PYmplY3QNCitJc21TZXRPcGVyYXRpb25Pbk9iamVjdElkMg0KK0lzbVNldE9wZXJhdGlvbk9uT2JqZWN0SWQNCitJc21TZXRQbGF0Zm9ybQ0KK0lzbVNldFJvbGxiYWNrSm91cm5hbFR5cGUNCitJc21TZXRUcmFuc3BvcnRTdG9yYWdlDQorSXNtU2V0VHJhbnNwb3J0VmFyaWFibGUNCitJc21TdGFydEV0bU1vZHVsZXMNCitJc21TdGFydFRyYW5zcG9ydA0KK0lzbVRlcm1pbmF0ZQ0KK0lzbVRpY2tQcm9ncmVzc0Jhcg0KK0lzbVVucmVnaXN0ZXJTY29wZUNoYW5nZUNhbGxiYWNrDQorVHJhY2tlZElzbUNvbXByZXNzRW52aXJvbm1lbnRTdHJpbmcNCitUcmFja2VkSXNtQ29udmVydE11bHRpU3pUb09iamVjdA0KK1RyYWNrZWRJc21DcmVhdGVPYmplY3RIYW5kbGUNCitUcmFja2VkSXNtQ3JlYXRlT2JqZWN0UGF0dGVybg0KK1RyYWNrZWRJc21DcmVhdGVPYmplY3RTdHJpbmdzRnJvbUhhbmRsZUV4DQorVHJhY2tlZElzbUNyZWF0ZVNpbXBsZU9iamVjdFBhdHRlcm4NCitUcmFja2VkSXNtRHVwbGljYXRlU3RyaW5nDQorVHJhY2tlZElzbUV4cGFuZEVudmlyb25tZW50U3RyaW5nDQorVHJhY2tlZElzbUdldExvbmdOYW1lDQorVHJhY2tlZElzbUdldE1lbW9yeQ0KK1RyYWNrZWRJc21HZXROYXRpdmVPYmplY3ROYW1lDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21pZ2xpYm50LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtaWdsaWJudC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTlhMmQ2NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtaWdsaWJudC5kZWYKQEAgLTAsMCArMSwxOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNSUdMSUJOVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTUlHTElCTlQuZGxsDQorRVhQT1JUUw0KK01pZ0RsbEFkZERsbFRvTGlzdFcNCitNaWdEbGxBcHBseVN5c3RlbVNldHRpbmdzVw0KK01pZ0RsbENsb3NlVw0KK01pZ0RsbENyZWF0ZUxpc3QNCitNaWdEbGxFbnVtRmlyc3RXDQorTWlnRGxsRW51bU5leHRXDQorTWlnRGxsRnJlZUxpc3QNCitNaWdEbGxJbml0DQorTWlnRGxsSW5pdGlhbGl6ZURzdFcNCitNaWdEbGxPcGVuVw0KK01pZ0RsbFNodXRkb3duDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21pbWVmaWx0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtaW1lZmlsdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmRlN2RkNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtaW1lZmlsdC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNSU1FRklMVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTUlNRUZJTFQuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21pcGNpbWEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21pcGNpbWEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRkMmM3ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bWlwY2ltYS5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBjaW13aW4zMkEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIGNpbXdpbjMyQS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bWlwZHNrcS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bWlwZHNrcS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2RmYjE4NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtaXBkc2txLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGRpc2txdW90YXByb3ZpZGVyLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBkaXNrcXVvdGFwcm92aWRlci5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bWlwaWNtcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bWlwaWNtcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGM5Yzc5NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtaXBpY21wLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdNSVBJQ01QLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXTUlQSUNNUC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bWlwaXBydC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bWlwaXBydC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTgwYTRmYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtaXBpcHJ0LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdNSVBJUFJULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXTUlQSVBSVC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bWlwam9iai5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bWlwam9iai5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWJkYWNkOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtaXBqb2JqLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdNSVBKT0JKLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXTUlQSk9CSi5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bWlwcm9wLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtaXByb3AuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFjZjdkYzkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bWlwcm9wLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgV21pUHJvcC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgV21pUHJvcC5kbGwNCitFWFBPUlRTDQorV21pUHJvcENvSW5zdGFsbGVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21pcHJvdi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bWlwcm92LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MTQ3ZmFmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21pcHJvdi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBXTUlQUk9WLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXTUlQUk9WLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtaXBydnNkLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtaXBydnNkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lM2ExOGFhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21pcHJ2c2QuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgV21pUHJ2U1MuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFdtaVBydlNTLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtaXBzZXNzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtaXBzZXNzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MTg1ZjZkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21pcHNlc3MuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgV01JU0VTUy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgV01JU0VTUy5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bWlzY21nci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bWlzY21nci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzYwY2ExZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtaXNjbWdyLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNjaGVtYU1hbmFnZXIuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNjaGVtYU1hbmFnZXIuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21pc3ZjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtaXN2Yy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjZjZmViNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtaXN2Yy5kZWYKQEAgLTAsMCArMSwyMjUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgV01Jc3ZjLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXTUlzdmMuRExMDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX2NkZWNsIEM5WEFjZTo6QzlYQWNlKGNsYXNzIEM5WEFjZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDOVhBY2VAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDOVhBY2U6OkM5WEFjZSh2b2lkKSBfX3B0cjY0DQorPz8wQzlYQWNlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0FyZW5hOjpDQXJlbmEoY2xhc3MgQ0FyZW5hIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MENBcmVuYUBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIENBcmVuYTo6Q0FyZW5hKHZvaWQpIF9fcHRyNjQNCis/PzBDQXJlbmFAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDQmFzZUFjZTo6Q0Jhc2VBY2UoY2xhc3MgQ0Jhc2VBY2UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0Jhc2VBY2VAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQmFzZUFjZTo6Q0Jhc2VBY2Uodm9pZCkgX19wdHI2NA0KKz8/MENCYXNlQWNlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NoZWNrZWRJbkNyaXRTZWM6OkNDaGVja2VkSW5Dcml0U2VjKGNsYXNzIENDcml0U2VjICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENDaGVja2VkSW5Dcml0U2VjQEBRRUFBQFBFQVZDQ3JpdFNlY0BAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDQ3JpdFNlYzo6Q0NyaXRTZWModm9pZCkgX19wdHI2NA0KKz8/MENDcml0U2VjQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0VudGVyV2JlbUNyaXRpY2FsU2VjdGlvbjo6Q0VudGVyV2JlbUNyaXRpY2FsU2VjdGlvbihjbGFzcyBDV2JlbUNyaXRpY2FsU2VjdGlvbiAqIF9fcHRyNjQsdW5zaWduZWQgbG9uZykgX19wdHI2NA0KKz8/MENFbnRlcldiZW1Dcml0aWNhbFNlY3Rpb25AQFFFQUFAUEVBVkNXYmVtQ3JpdGljYWxTZWN0aW9uQEBLQFoNCis7IHB1YmxpYzogX19jZGVjbCBDSGFsdGFibGU6OkNIYWx0YWJsZShjbGFzcyBDSGFsdGFibGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wQ0hhbHRhYmxlQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0luQ3JpdFNlYzo6Q0luQ3JpdFNlYyhzdHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OICogX19wdHI2NCkgX19wdHI2NA0KKz8/MENJbkNyaXRTZWNAQFFFQUFAUEVBVV9SVExfQ1JJVElDQUxfU0VDVElPTkBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDTnRBY2U6OkNOdEFjZSh2b2lkKSBfX3B0cjY0DQorPz8wQ050QWNlQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ050U2lkOjpDTnRTaWQodm9pZCkgX19wdHI2NA0KKz8/MENOdFNpZEBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6Q1dpbjMyRGVmYXVsdEFyZW5hKGNsYXNzIENXaW4zMkRlZmF1bHRBcmVuYSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBDV2luMzJEZWZhdWx0QXJlbmFAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBDV2luMzJEZWZhdWx0QXJlbmE6OkNXaW4zMkRlZmF1bHRBcmVuYSh2b2lkKSBfX3B0cjY0DQorPz8wQ1dpbjMyRGVmYXVsdEFyZW5hQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBDQmFzZUFjZTo6fkNCYXNlQWNlKHZvaWQpIF9fcHRyNjQNCis/PzFDQmFzZUFjZUBAVUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENDaGVja2VkSW5Dcml0U2VjOjp+Q0NoZWNrZWRJbkNyaXRTZWModm9pZCkgX19wdHI2NA0KKz8/MUNDaGVja2VkSW5Dcml0U2VjQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ0NyaXRTZWM6On5DQ3JpdFNlYyh2b2lkKSBfX3B0cjY0DQorPz8xQ0NyaXRTZWNAQFFFQUFAWFoNCis7IHB1YmxpYzogX19jZGVjbCBDRW50ZXJXYmVtQ3JpdGljYWxTZWN0aW9uOjp+Q0VudGVyV2JlbUNyaXRpY2FsU2VjdGlvbih2b2lkKSBfX3B0cjY0DQorPz8xQ0VudGVyV2JlbUNyaXRpY2FsU2VjdGlvbkBAUUVBQUBYWg0KKzsgcHVibGljOiBfX2NkZWNsIENJbkNyaXRTZWM6On5DSW5Dcml0U2VjKHZvaWQpIF9fcHRyNjQNCis/PzFDSW5Dcml0U2VjQEBRRUFBQFhaDQorOyBwdWJsaWM6IF9fY2RlY2wgQ1dpbjMyRGVmYXVsdEFyZW5hOjp+Q1dpbjMyRGVmYXVsdEFyZW5hKHZvaWQpIF9fcHRyNjQNCis/PzFDV2luMzJEZWZhdWx0QXJlbmFAQFFFQUFAWFoNCis7IHB1YmxpYzogY2xhc3MgQzlYQWNlICYgX19wdHI2NCBfX2NkZWNsIEM5WEFjZTo6b3BlcmF0b3I9KGNsYXNzIEM5WEFjZSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDOVhBY2VAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQXJlbmEgJiBfX3B0cjY0IF9fY2RlY2wgQ0FyZW5hOjpvcGVyYXRvcj0oY2xhc3MgQ0FyZW5hIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENBcmVuYUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENCYXNlQWNlICYgX19wdHI2NCBfX2NkZWNsIENCYXNlQWNlOjpvcGVyYXRvcj0oY2xhc3MgQ0Jhc2VBY2UgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0Jhc2VBY2VAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQ2hlY2tlZEluQ3JpdFNlYyAmIF9fcHRyNjQgX19jZGVjbCBDQ2hlY2tlZEluQ3JpdFNlYzo6b3BlcmF0b3I9KGNsYXNzIENDaGVja2VkSW5Dcml0U2VjIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENDaGVja2VkSW5Dcml0U2VjQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NyaXRTZWMgJiBfX3B0cjY0IF9fY2RlY2wgQ0NyaXRTZWM6Om9wZXJhdG9yPShjbGFzcyBDQ3JpdFNlYyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDQ3JpdFNlY0BAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENFbnRlcldiZW1Dcml0aWNhbFNlY3Rpb24gJiBfX3B0cjY0IF9fY2RlY2wgQ0VudGVyV2JlbUNyaXRpY2FsU2VjdGlvbjo6b3BlcmF0b3I9KGNsYXNzIENFbnRlcldiZW1Dcml0aWNhbFNlY3Rpb24gY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0VudGVyV2JlbUNyaXRpY2FsU2VjdGlvbkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENGbGV4UXVldWUgJiBfX3B0cjY0IF9fY2RlY2wgQ0ZsZXhRdWV1ZTo6b3BlcmF0b3I9KGNsYXNzIENGbGV4UXVldWUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0ZsZXhRdWV1ZUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENIYWx0YWJsZSAmIF9fcHRyNjQgX19jZGVjbCBDSGFsdGFibGU6Om9wZXJhdG9yPShjbGFzcyBDSGFsdGFibGUgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q0hhbHRhYmxlQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0luQ3JpdFNlYyAmIF9fcHRyNjQgX19jZGVjbCBDSW5Dcml0U2VjOjpvcGVyYXRvcj0oY2xhc3MgQ0luQ3JpdFNlYyBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDSW5Dcml0U2VjQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ050U2VjdXJpdHkgJiBfX3B0cjY0IF9fY2RlY2wgQ050U2VjdXJpdHk6Om9wZXJhdG9yPShjbGFzcyBDTnRTZWN1cml0eSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDTnRTZWN1cml0eUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENQZXJzaXN0ZW50Q29uZmlnICYgX19wdHI2NCBfX2NkZWNsIENQZXJzaXN0ZW50Q29uZmlnOjpvcGVyYXRvcj0oY2xhc3MgQ1BlcnNpc3RlbnRDb25maWcgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1BlcnNpc3RlbnRDb25maWdAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU21hbGxBcnJheUJsb2IgJiBfX3B0cjY0IF9fY2RlY2wgQ1NtYWxsQXJyYXlCbG9iOjpvcGVyYXRvcj0oY2xhc3MgQ1NtYWxsQXJyYXlCbG9iIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENTbWFsbEFycmF5QmxvYkBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTdGF0aWNDcml0U2VjICYgX19wdHI2NCBfX2NkZWNsIENTdGF0aWNDcml0U2VjOjpvcGVyYXRvcj0oY2xhc3MgQ1N0YXRpY0NyaXRTZWMgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80Q1N0YXRpY0NyaXRTZWNAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDV2JlbUNyaXRpY2FsU2VjdGlvbiAmIF9fcHRyNjQgX19jZGVjbCBDV2JlbUNyaXRpY2FsU2VjdGlvbjo6b3BlcmF0b3I9KGNsYXNzIENXYmVtQ3JpdGljYWxTZWN0aW9uIGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NENXYmVtQ3JpdGljYWxTZWN0aW9uQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1dpbjMyRGVmYXVsdEFyZW5hICYgX19wdHI2NCBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6b3BlcmF0b3I9KGNsYXNzIENXaW4zMkRlZmF1bHRBcmVuYSBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRDV2luMzJEZWZhdWx0QXJlbmFAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBNRDUgJiBfX3B0cjY0IF9fY2RlY2wgTUQ1OjpvcGVyYXRvcj0oY2xhc3MgTUQ1IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NE1ENUBAUUVBQUFFQVYwQEFFQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFJlZ2lzdHJ5ICYgX19wdHI2NCBfX2NkZWNsIFJlZ2lzdHJ5OjpvcGVyYXRvcj0oY2xhc3MgUmVnaXN0cnkgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80UmVnaXN0cnlAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCAmIF9fcHRyNjQgX19jZGVjbCBDRmxleEFycmF5OjpvcGVyYXRvcltdKGludCkgX19wdHI2NA0KKz8/QUNGbGV4QXJyYXlAQFFFQUFBRUFQRUFYSEBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ0ZsZXhBcnJheTo6b3BlcmF0b3JbXShpbnQpY29uc3QgIF9fcHRyNjQNCis/P0FDRmxleEFycmF5QEBRRUJBUEVBWEhAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENTbWFsbEFycmF5QmxvYjo6b3BlcmF0b3JbXShpbnQpY29uc3QgIF9fcHRyNjQNCis/P0FDU21hbGxBcnJheUJsb2JAQFFFQkFQRUFYSEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX19wdHI2NCBfX2NkZWNsIENXU3RyaW5nQXJyYXk6Om9wZXJhdG9yW10oaW50KWNvbnN0ICBfX3B0cjY0DQorPz9BQ1dTdHJpbmdBcnJheUBAUUVCQVBFQUdIQFoNCis7IGNvbnN0ICBDOVhBY2U6OmB2ZnRhYmxlJw0KKz8/XzdDOVhBY2VAQDZCQA0KKzsgY29uc3QgIENBcmVuYTo6YHZmdGFibGUnDQorPz9fN0NBcmVuYUBANkJADQorOyBjb25zdCAgQ0Jhc2VBY2U6OmB2ZnRhYmxlJw0KKz8/XzdDQmFzZUFjZUBANkJADQorOyBjb25zdCAgQ0hhbHRhYmxlOjpgdmZ0YWJsZScNCis/P183Q0hhbHRhYmxlQEA2QkANCis7IGNvbnN0ICBDTnRBY2U6OmB2ZnRhYmxlJw0KKz8/XzdDTnRBY2VAQDZCQA0KKzsgY29uc3QgIENXaW4zMkRlZmF1bHRBcmVuYTo6YHZmdGFibGUnDQorPz9fN0NXaW4zMkRlZmF1bHRBcmVuYUBANkJADQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDRmxleEFycmF5OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNGbGV4QXJyYXlAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGbGV4UXVldWU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GQ0ZsZXhRdWV1ZUBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ050QWNsOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKSBfX3B0cjY0DQorPz9fRkNOdEFjbEBAUUVBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1dTdHJpbmdBcnJheTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkgX19wdHI2NA0KKz8/X0ZDV1N0cmluZ0FycmF5QEBRRUFBWFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENGbGV4QXJyYXk6OkFkZCh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9BZGRAQ0ZsZXhBcnJheUBAUUVBQUhQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX19wdHI2NCBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6QWxsb2ModW5zaWduZWQgX19pbnQ2NCkgX19wdHI2NA0KKz9BbGxvY0BDV2luMzJEZWZhdWx0QXJlbmFAQFVFQUFQRUFYX0tAWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ1dTdHJpbmdBcnJheTo6Q29tcHJlc3Modm9pZCkgX19wdHI2NA0KKz9Db21wcmVzc0BDV1N0cmluZ0FycmF5QEBRRUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX19jZGVjbCBDRmxleFF1ZXVlOjpEZWNyZW1lbnRJbmRleChpbnQgJiBfX3B0cjY0KSBfX3B0cjY0DQorP0RlY3JlbWVudEluZGV4QENGbGV4UXVldWVAQElFQUFYQUVBSEBaDQorRHJlZGdlUkENCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDaGVja2VkSW5Dcml0U2VjOjpFbnRlcih2b2lkKSBfX3B0cjY0DQorP0VudGVyQENDaGVja2VkSW5Dcml0U2VjQEBRRUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBDQ3JpdFNlYzo6RW50ZXIodm9pZCkgX19wdHI2NA0KKz9FbnRlckBDQ3JpdFNlY0BAUUVBQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6RnJlZSh2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9GcmVlQENXaW4zMkRlZmF1bHRBcmVuYUBAVUVBQUhQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQzlYQWNlOjpHZXRBY2Nlc3NNYXNrKHZvaWQpIF9fcHRyNjQNCis/R2V0QWNjZXNzTWFza0BDOVhBY2VAQFVFQUFLWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fcHRyNjQgKiBfX3B0cjY0IF9fY2RlY2wgQ0ZsZXhBcnJheTo6R2V0QXJyYXlQdHIodm9pZCkgX19wdHI2NA0KKz9HZXRBcnJheVB0ckBDRmxleEFycmF5QEBRRUFBUEVBUEVBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENGbGV4QXJyYXk6OkdldEFycmF5UHRyKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/R2V0QXJyYXlQdHJAQ0ZsZXhBcnJheUBAUUVCQVBFQlFFQVhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCAqIF9fcHRyNjQgX19jZGVjbCBDU21hbGxBcnJheUJsb2I6OkdldEFycmF5UHRyKHZvaWQpIF9fcHRyNjQNCis/R2V0QXJyYXlQdHJAQ1NtYWxsQXJyYXlCbG9iQEBRRUFBUEVBUEVBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IGNvbnN0ICogX19wdHI2NCBfX2NkZWNsIENTbWFsbEFycmF5QmxvYjo6R2V0QXJyYXlQdHIodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRBcnJheVB0ckBDU21hbGxBcnJheUJsb2JAQFFFQkFQRUJRRUFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3B0cjY0ICogX19wdHI2NCBfX2NkZWNsIENXU3RyaW5nQXJyYXk6OkdldEFycmF5UHRyKHZvaWQpIF9fcHRyNjQNCis/R2V0QXJyYXlQdHJAQ1dTdHJpbmdBcnJheUBAUUVBQVBFQVBFQkdYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENGbGV4QXJyYXk6OkdldEF0KGludCljb25zdCAgX19wdHI2NA0KKz9HZXRBdEBDRmxleEFycmF5QEBRRUJBUEVBWEhAWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENTbWFsbEFycmF5QmxvYjo6R2V0QXQoaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldEF0QENTbWFsbEFycmF5QmxvYkBAUUVCQVBFQVhIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0IF9fY2RlY2wgQ1dTdHJpbmdBcnJheTo6R2V0QXQoaW50KWNvbnN0ICBfX3B0cjY0DQorP0dldEF0QENXU3RyaW5nQXJyYXlAQFFFQkFQRUFHSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fY2RlY2wgQzlYQWNlOjpHZXRGbGFncyh2b2lkKSBfX3B0cjY0DQorP0dldEZsYWdzQEM5WEFjZUBAVUVBQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgUmVnaXN0cnk6OkdldExhc3RFcnJvcih2b2lkKSBfX3B0cjY0DQorP0dldExhc3RFcnJvckBSZWdpc3RyeUBAUUVBQUpYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1Dcml0aWNhbFNlY3Rpb246OkdldExvY2tDb3VudCh2b2lkKSBfX3B0cjY0DQorP0dldExvY2tDb3VudEBDV2JlbUNyaXRpY2FsU2VjdGlvbkBAUUVBQUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ1diZW1Dcml0aWNhbFNlY3Rpb246OkdldE93bmluZ1RocmVhZElkKHZvaWQpIF9fcHRyNjQNCis/R2V0T3duaW5nVGhyZWFkSWRAQ1diZW1Dcml0aWNhbFNlY3Rpb25AQFFFQUFLWFoNCis7IHB1YmxpYzogc3RydWN0IF9BQ0NFU1NfQUxMT1dFRF9BQ0UgKiBfX3B0cjY0IF9fY2RlY2wgQ050QWNlOjpHZXRQdHIodm9pZCkgX19wdHI2NA0KKz9HZXRQdHJAQ050QWNlQEBRRUFBUEVBVV9BQ0NFU1NfQUxMT1dFRF9BQ0VAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfQUNMICogX19wdHI2NCBfX2NkZWNsIENOdEFjbDo6R2V0UHRyKHZvaWQpIF9fcHRyNjQNCis/R2V0UHRyQENOdEFjbEBAUUVBQVBFQVVfQUNMQEBYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENOdFNlY3VyaXR5RGVzY3JpcHRvcjo6R2V0UHRyKHZvaWQpIF9fcHRyNjQNCis/R2V0UHRyQENOdFNlY3VyaXR5RGVzY3JpcHRvckBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiB2b2lkICogX19wdHI2NCBfX2NkZWNsIENOdFNpZDo6R2V0UHRyKHZvaWQpIF9fcHRyNjQNCis/R2V0UHRyQENOdFNpZEBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDRmxleFF1ZXVlOjpHZXRRdWV1ZVNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9HZXRRdWV1ZVNpemVAQ0ZsZXhRdWV1ZUBAUUVCQUhYWg0KKzsgcHVibGljOiBsb25nIF9fY2RlY2wgQ1diZW1Dcml0aWNhbFNlY3Rpb246OkdldFJlY3Vyc2lvbkNvdW50KHZvaWQpIF9fcHRyNjQNCis/R2V0UmVjdXJzaW9uQ291bnRAQ1diZW1Dcml0aWNhbFNlY3Rpb25AQFFFQUFKWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENOdEFjZTo6R2V0U2l6ZSh2b2lkKSBfX3B0cjY0DQorP0dldFNpemVAQ050QWNlQEBRRUFBS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEM5WEFjZTo6R2V0U3RhdHVzKHZvaWQpIF9fcHRyNjQNCis/R2V0U3RhdHVzQEM5WEFjZUBAVUVBQUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTnRBY2U6OkdldFN0YXR1cyh2b2lkKSBfX3B0cjY0DQorP0dldFN0YXR1c0BDTnRBY2VAQFVFQUFLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX2NkZWNsIENOdEFjbDo6R2V0U3RhdHVzKHZvaWQpIF9fcHRyNjQNCis/R2V0U3RhdHVzQENOdEFjbEBAUUVBQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fY2RlY2wgQ050U2VjdXJpdHlEZXNjcmlwdG9yOjpHZXRTdGF0dXModm9pZCkgX19wdHI2NA0KKz9HZXRTdGF0dXNAQ050U2VjdXJpdHlEZXNjcmlwdG9yQEBRRUFBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBDTnRTaWQ6OkdldFN0YXR1cyh2b2lkKSBfX3B0cjY0DQorP0dldFN0YXR1c0BDTnRTaWRAQFFFQUFLWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19jZGVjbCBDOVhBY2U6OkdldFR5cGUodm9pZCkgX19wdHI2NA0KKz9HZXRUeXBlQEM5WEFjZUBAVUVBQUhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fY2RlY2wgQ0ZsZXhRdWV1ZTo6SW5jcmVtZW50SW5kZXgoaW50ICYgX19wdHI2NCkgX19wdHI2NA0KKz9JbmNyZW1lbnRJbmRleEBDRmxleFF1ZXVlQEBJRUFBWEFFQUhAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDQ2hlY2tlZEluQ3JpdFNlYzo6SXNFbnRlcmVkKHZvaWQpIF9fcHRyNjQNCis/SXNFbnRlcmVkQENDaGVja2VkSW5Dcml0U2VjQEBRRUFBSFhaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIENFbnRlcldiZW1Dcml0aWNhbFNlY3Rpb246OklzRW50ZXJlZCh2b2lkKSBfX3B0cjY0DQorP0lzRW50ZXJlZEBDRW50ZXJXYmVtQ3JpdGljYWxTZWN0aW9uQEBRRUFBSFhaDQorSXNTaHV0RG93bg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ050U2lkOjpJc1VzZXIodm9pZCkgX19wdHI2NA0KKz9Jc1VzZXJAQ050U2lkQEBRRUFBX05YWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTnRBY2w6OklzVmFsaWQodm9pZCkgX19wdHI2NA0KKz9Jc1ZhbGlkQENOdEFjbEBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTnRTZWN1cml0eURlc2NyaXB0b3I6OklzVmFsaWQodm9pZCkgX19wdHI2NA0KKz9Jc1ZhbGlkQENOdFNlY3VyaXR5RGVzY3JpcHRvckBAUUVBQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDTnRTaWQ6OklzVmFsaWQodm9pZCkgX19wdHI2NA0KKz9Jc1ZhbGlkQENOdFNpZEBAUUVBQUhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgQ0NoZWNrZWRJbkNyaXRTZWM6OkxlYXZlKHZvaWQpIF9fcHRyNjQNCis/TGVhdmVAQ0NoZWNrZWRJbkNyaXRTZWNAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENDcml0U2VjOjpMZWF2ZSh2b2lkKSBfX3B0cjY0DQorP0xlYXZlQENDcml0U2VjQEBRRUFBWFhaDQorTW92ZVRvQWxvbmUNCitNb3ZlVG9TaGFyZWQNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX19wdHI2NCBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6UmVhbGxvYyh2b2lkICogX19wdHI2NCx1bnNpZ25lZCBfX2ludDY0KSBfX3B0cjY0DQorP1JlYWxsb2NAQ1dpbjMyRGVmYXVsdEFyZW5hQEBVRUFBUEVBWFBFQVhfS0BaDQorU2VydmljZU1haW4NCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGbGV4QXJyYXk6OlNldEF0KGludCx2b2lkICogX19wdHI2NCkgX19wdHI2NA0KKz9TZXRBdEBDRmxleEFycmF5QEBRRUFBWEhQRUFYQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQzlYQWNlOjpTZXRGbGFncyhsb25nKSBfX3B0cjY0DQorP1NldEZsYWdzQEM5WEFjZUBAVUVBQVhKQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fY2RlY2wgQ050QWNlOjpTZXRGbGFncyhsb25nKSBfX3B0cjY0DQorP1NldEZsYWdzQENOdEFjZUBAVUVBQVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIENGbGV4QXJyYXk6OlNldFNpemUoaW50KSBfX3B0cjY0DQorP1NldFNpemVAQ0ZsZXhBcnJheUBAUUVBQVhIQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgQ0ZsZXhBcnJheTo6U2l6ZSh2b2lkKWNvbnN0ICBfX3B0cjY0DQorP1NpemVAQ0ZsZXhBcnJheUBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDU21hbGxBcnJheUJsb2I6OlNpemUodm9pZCljb25zdCAgX19wdHI2NA0KKz9TaXplQENTbWFsbEFycmF5QmxvYkBAUUVCQUhYWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCBDV1N0cmluZ0FycmF5OjpTaXplKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/U2l6ZUBDV1N0cmluZ0FycmF5QEBRRUJBSFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgQ0ZsZXhRdWV1ZTo6VW5xdWV1ZSh2b2lkKSBfX3B0cjY0DQorP1VucXVldWVAQ0ZsZXhRdWV1ZUBAUUVBQVBFQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENXaW4zMkRlZmF1bHRBcmVuYTo6V2JlbVN5c0ZyZWVTdHJpbmcodW5zaWduZWQgc2hvcnQgKiBfX3B0cjY0KQ0KKz9XYmVtU3lzRnJlZVN0cmluZ0BDV2luMzJEZWZhdWx0QXJlbmFAQFNBWFBFQUdAWg0KKzsgcHVibGljOiBib29sIF9fY2RlY2wgQ0hhbHRhYmxlOjppc1ZhbGlkKHZvaWQpIF9fcHRyNjQNCis/aXNWYWxpZEBDSGFsdGFibGVAQFFFQUFfTlhaDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21pdGltZXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21pdGltZXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYxNWRlODEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bWl0aW1lcC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBXSU4zMkNMT0NLLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXSU4zMkNMT0NLLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtaXV0aWxzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtaXV0aWxzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MjY4NWFjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21pdXRpbHMuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgd21pdXRpbHMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHdtaXV0aWxzLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtbGFuZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bWxhbmcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM1ODEyNjUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bWxhbmcuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTUxBTkcuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1MQU5HLmRsbA0KK0VYUE9SVFMNCitJc0NvbnZlcnRJTmV0U3RyaW5nQXZhaWxhYmxlDQorQ29udmVydElOZXRTdHJpbmcNCitDb252ZXJ0SU5ldFVuaWNvZGVUb011bHRpQnl0ZQ0KK0NvbnZlcnRJTmV0TXVsdGlCeXRlVG9Vbmljb2RlDQorQ29udmVydElOZXRSZXNldA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorR2V0R2xvYmFsRm9udExpbmtPYmplY3QNCitMY2lkVG9SZmMxNzY2QQ0KK0xjaWRUb1JmYzE3NjZXDQorUmZjMTc2NlRvTGNpZEENCitSZmMxNzY2VG9MY2lkVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtbGxfaHAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21sbF9ocC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTU2ZGQ0OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtbGxfaHAuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTUxMX0hQLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNTExfSFAuZGxsDQorRVhQT1JUUw0KK0NsYWltTWVkaWFMYWJlbA0KK01heE1lZGlhTGFiZWwNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bWxsX210Zi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bWxsX210Zi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTRlZGRjMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtbGxfbXRmLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1MTF9NVEYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1MTF9NVEYuZGxsDQorRVhQT1JUUw0KK0NsYWltTWVkaWFMYWJlbA0KK01heE1lZGlhTGFiZWwNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bWxsX3FpYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bWxsX3FpYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDI1Zjg3MAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtbGxfcWljLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1MTF9RSUMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1MTF9RSUMuZGxsDQorRVhQT1JUUw0KK0NsYWltTWVkaWFMYWJlbA0KK01heE1lZGlhTGFiZWwNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bW1jYmFzZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bW1jYmFzZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDBkYjBmNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtbWNiYXNlLmRlZgpAQCAtMCwwICsxLDE2MCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtbWNiYXNlLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtbWNiYXNlLkRMTA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRXZlbnRMb2NrPHN0cnVjdCBBcHBFdmVudHM+OjpDRXZlbnRMb2NrPHN0cnVjdCBBcHBFdmVudHM+KHZvaWQpDQorPz8wPyRDRXZlbnRMb2NrQFVBcHBFdmVudHNAQEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0V2ZW50QnVmZmVyOjpDRXZlbnRCdWZmZXIoY2xhc3MgQ0V2ZW50QnVmZmVyIGNvbnN0ICYpDQorPz8wQ0V2ZW50QnVmZmVyQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFdmVudEJ1ZmZlcjo6Q0V2ZW50QnVmZmVyKHZvaWQpDQorPz8wQ0V2ZW50QnVmZmVyQEBRQUVAWFoNCis7IHByaXZhdGU6IF9fdGhpc2NhbGwgQ01NQ1N0cm9uZ1JlZmVyZW5jZXM6OkNNTUNTdHJvbmdSZWZlcmVuY2VzKHZvaWQpDQorPz8wQ01NQ1N0cm9uZ1JlZmVyZW5jZXNAQEFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIG1tY2Vycm9yOjpTQzo6U0MobG9uZykNCis/PzBTQ0BtbWNlcnJvckBAUUFFQEpAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFdmVudExvY2s8c3RydWN0IEFwcEV2ZW50cz46On5DRXZlbnRMb2NrPHN0cnVjdCBBcHBFdmVudHM+KHZvaWQpDQorPz8xPyRDRXZlbnRMb2NrQFVBcHBFdmVudHNAQEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0V2ZW50QnVmZmVyOjp+Q0V2ZW50QnVmZmVyKHZvaWQpDQorPz8xQ0V2ZW50QnVmZmVyQEBRQUVAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0V2ZW50TG9jazxzdHJ1Y3QgQXBwRXZlbnRzPiAmIF9fdGhpc2NhbGwgQ0V2ZW50TG9jazxzdHJ1Y3QgQXBwRXZlbnRzPjo6b3BlcmF0b3I9KGNsYXNzIENFdmVudExvY2s8c3RydWN0IEFwcEV2ZW50cz4gY29uc3QgJikNCis/PzQ/JENFdmVudExvY2tAVUFwcEV2ZW50c0BAQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0V2ZW50QnVmZmVyICYgX190aGlzY2FsbCBDRXZlbnRCdWZmZXI6Om9wZXJhdG9yPShjbGFzcyBDRXZlbnRCdWZmZXIgY29uc3QgJikNCis/PzRDRXZlbnRCdWZmZXJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTU1DU3Ryb25nUmVmZXJlbmNlcyAmIF9fdGhpc2NhbGwgQ01NQ1N0cm9uZ1JlZmVyZW5jZXM6Om9wZXJhdG9yPShjbGFzcyBDTU1DU3Ryb25nUmVmZXJlbmNlcyBjb25zdCAmKQ0KKz8/NENNTUNTdHJvbmdSZWZlcmVuY2VzQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgbW1jZXJyb3I6OlNDICYgX190aGlzY2FsbCBtbWNlcnJvcjo6U0M6Om9wZXJhdG9yPShjbGFzcyBtbWNlcnJvcjo6U0MgY29uc3QgJikNCis/PzRTQ0BtbWNlcnJvckBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3MgbW1jZXJyb3I6OlNDICYgX190aGlzY2FsbCBtbWNlcnJvcjo6U0M6Om9wZXJhdG9yPShsb25nKQ0KKz8/NFNDQG1tY2Vycm9yQEBRQUVBQVYwMUBKQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgbW1jZXJyb3I6OlNDOjpvcGVyYXRvciEodm9pZCljb25zdCANCis/PzdTQ0BtbWNlcnJvckBAUUJFSFhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBtbWNlcnJvcjo6U0M6Om9wZXJhdG9yPT0oY2xhc3MgbW1jZXJyb3I6OlNDIGNvbnN0ICYpY29uc3QgDQorPz84U0NAbW1jZXJyb3JAQFFCRV9OQUJWMDFAQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIG1tY2Vycm9yOjpTQzo6b3BlcmF0b3I9PShsb25nKWNvbnN0IA0KKz8/OFNDQG1tY2Vycm9yQEBRQkVfTkpAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgbW1jZXJyb3I6OlNDOjpvcGVyYXRvciE9KGNsYXNzIG1tY2Vycm9yOjpTQyBjb25zdCAmKWNvbnN0IA0KKz8/OVNDQG1tY2Vycm9yQEBRQkVfTkFCVjAxQEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBtbWNlcnJvcjo6U0M6Om9wZXJhdG9yIT0obG9uZyljb25zdCANCis/PzlTQ0BtbWNlcnJvckBAUUJFX05KQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBtbWNlcnJvcjo6U0M6Om9wZXJhdG9yIGJvb2wodm9pZCljb25zdCANCis/P0JTQ0BtbWNlcnJvckBAUUJFX05YWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgbW1jZXJyb3I6OlNDOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZTQ0BtbWNlcnJvckBAUUFFWFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDTU1DU3Ryb25nUmVmZXJlbmNlczo6QWRkUmVmKHZvaWQpDQorP0FkZFJlZkBDTU1DU3Ryb25nUmVmZXJlbmNlc0BAU0dLWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIG1tY2Vycm9yOjpTQzo6Q2xlYXIodm9pZCkNCis/Q2xlYXJAU0NAbW1jZXJyb3JAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgbW1jZXJyb3I6OlNDOjpGYXRhbEVycm9yKHZvaWQpY29uc3QgDQorP0ZhdGFsRXJyb3JAU0NAbW1jZXJyb3JAQFFCRVhYWg0KKzsgdm9pZCBfX3N0ZGNhbGwgRm9ybWF0RXJyb3JJZHModW5zaWduZWQgaW50LGNsYXNzIG1tY2Vycm9yOjpTQyx1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgKikNCis/Rm9ybWF0RXJyb3JJZHNAQFlHWElWU0NAbW1jZXJyb3JAQElQQUdAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgRm9ybWF0RXJyb3JTaG9ydChjbGFzcyBtbWNlcnJvcjo6U0MsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0ICopDQorP0Zvcm1hdEVycm9yU2hvcnRAQFlHWFZTQ0BtbWNlcnJvckBASVBBR0BaDQorOyB2b2lkIF9fc3RkY2FsbCBGb3JtYXRFcnJvclN0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIG1tY2Vycm9yOjpTQyx1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgKixpbnQpDQorP0Zvcm1hdEVycm9yU3RyaW5nQEBZR1hQQkdWU0NAbW1jZXJyb3JAQElQQUdIQFoNCis7IHB1YmxpYzogY2xhc3MgbW1jZXJyb3I6OlNDICYgX190aGlzY2FsbCBtbWNlcnJvcjo6U0M6OkZyb21MYXN0RXJyb3Iodm9pZCkNCis/RnJvbUxhc3RFcnJvckBTQ0BtbWNlcnJvckBAUUFFQUFWMTJAWFoNCis7IHB1YmxpYzogY2xhc3MgbW1jZXJyb3I6OlNDICYgX190aGlzY2FsbCBtbWNlcnJvcjo6U0M6OkZyb21NTUMobG9uZykNCis/RnJvbU1NQ0BTQ0BtbWNlcnJvckBAUUFFQUFWMTJASkBaDQorOyBwdWJsaWM6IGNsYXNzIG1tY2Vycm9yOjpTQyAmIF9fdGhpc2NhbGwgbW1jZXJyb3I6OlNDOjpGcm9tV2luMzIobG9uZykNCis/RnJvbVdpbjMyQFNDQG1tY2Vycm9yQEBRQUVBQVYxMkBKQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIG1tY2Vycm9yOjpTQzo6R2V0Q29kZSh2b2lkKWNvbnN0IA0KKz9HZXRDb2RlQFNDQG1tY2Vycm9yQEBRQkVKWFoNCis7IGNsYXNzIENFdmVudFNvdXJjZTxjbGFzcyBDQ29tT2JqZWN0T2JzZXJ2ZXIsY2xhc3MgQ1ZvaWQsY2xhc3MgQ1ZvaWQsY2xhc3MgQ1ZvaWQsY2xhc3MgQ1ZvaWQ+ICYgX19zdGRjYWxsIEdldENvbU9iamVjdEV2ZW50U291cmNlKHZvaWQpDQorP0dldENvbU9iamVjdEV2ZW50U291cmNlQEBZR0FBVj8kQ0V2ZW50U291cmNlQFZDQ29tT2JqZWN0T2JzZXJ2ZXJAQFZDVm9pZEBAVjJAVjJAVjJAQEBYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgbW1jZXJyb3I6OlNDOjpHZXRFcnJvck1lc3NhZ2UodW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0ICopY29uc3QgDQorP0dldEVycm9yTWVzc2FnZUBTQ0BtbWNlcnJvckBAUUJFWElQQUdAWg0KKzsgY2xhc3MgQ0V2ZW50QnVmZmVyICYgX19zdGRjYWxsIEdldEV2ZW50QnVmZmVyKHZvaWQpDQorP0dldEV2ZW50QnVmZmVyQEBZR0FBVkNFdmVudEJ1ZmZlckBAWFoNCis7IHByaXZhdGU6IGVudW0gbW1jZXJyb3I6OlNDOjpmYWNpbGl0eV90eXBlICBfX3RoaXNjYWxsIG1tY2Vycm9yOjpTQzo6R2V0RmFjaWxpdHkodm9pZCljb25zdCANCis/R2V0RmFjaWxpdHlAU0NAbW1jZXJyb3JAQEFCRT9BVzRmYWNpbGl0eV90eXBlQDEyQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgSFdORF9fICogX19zdGRjYWxsIG1tY2Vycm9yOjpTQzo6R2V0SFduZCh2b2lkKQ0KKz9HZXRIV25kQFNDQG1tY2Vycm9yQEBTR1BBVUhXTkRfX0BAWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19zdGRjYWxsIG1tY2Vycm9yOjpTQzo6R2V0SGVscEZpbGUodm9pZCkNCis/R2V0SGVscEZpbGVAU0NAbW1jZXJyb3JAQFNHUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIG1tY2Vycm9yOjpTQzo6R2V0SGVscElEKHZvaWQpDQorP0dldEhlbHBJREBTQ0BtbWNlcnJvckBAUUFFS1haDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3N0ZGNhbGwgbW1jZXJyb3I6OlNDOjpHZXRIaW5zdCh2b2lkKQ0KKz9HZXRIaW5zdEBTQ0BtbWNlcnJvckBAU0dQQVVISU5TVEFOQ0VfX0BAWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIG1tY2Vycm9yOjpTQzo6R2V0TWFpblRocmVhZElEKHZvaWQpDQorP0dldE1haW5UaHJlYWRJREBTQ0BtbWNlcnJvckBAU0dLWFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDTU1DU3Ryb25nUmVmZXJlbmNlcyAmIF9fc3RkY2FsbCBDTU1DU3Ryb25nUmVmZXJlbmNlczo6R2V0U2luZ2xldG9uT2JqZWN0KHZvaWQpDQorP0dldFNpbmdsZXRvbk9iamVjdEBDTU1DU3Ryb25nUmVmZXJlbmNlc0BAQ0dBQVYxQFhaDQorOyBzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3N0ZGNhbGwgR2V0U3RyaW5nTW9kdWxlKHZvaWQpDQorP0dldFN0cmluZ01vZHVsZUBAWUdQQVVISU5TVEFOQ0VfX0BAWFoNCis7IGxvbmcgX19zdGRjYWxsIEhyRnJvbVNjKGNsYXNzIG1tY2Vycm9yOjpTQyBjb25zdCAmKQ0KKz9IckZyb21TY0BAWUdKQUJWU0NAbW1jZXJyb3JAQEBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ01NQ1N0cm9uZ1JlZmVyZW5jZXM6OkludGVybmFsQWRkUmVmKHZvaWQpDQorP0ludGVybmFsQWRkUmVmQENNTUNTdHJvbmdSZWZlcmVuY2VzQEBBQUVLWFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDTU1DU3Ryb25nUmVmZXJlbmNlczo6SW50ZXJuYWxMYXN0UmVmUmVsZWFzZWQodm9pZCkNCis/SW50ZXJuYWxMYXN0UmVmUmVsZWFzZWRAQ01NQ1N0cm9uZ1JlZmVyZW5jZXNAQEFBRV9OWFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTU1DU3Ryb25nUmVmZXJlbmNlczo6SW50ZXJuYWxSZWxlYXNlKHZvaWQpDQorP0ludGVybmFsUmVsZWFzZUBDTU1DU3Ryb25nUmVmZXJlbmNlc0BAQUFFS1haDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBtbWNlcnJvcjo6U0M6OklzRXJyb3Iodm9pZCljb25zdCANCis/SXNFcnJvckBTQ0BtbWNlcnJvckBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0V2ZW50QnVmZmVyOjpJc0xvY2tlZCh2b2lkKQ0KKz9Jc0xvY2tlZEBDRXZlbnRCdWZmZXJAQFFBRV9OWFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19zdGRjYWxsIENNTUNTdHJvbmdSZWZlcmVuY2VzOjpMYXN0UmVmUmVsZWFzZWQodm9pZCkNCis/TGFzdFJlZlJlbGVhc2VkQENNTUNTdHJvbmdSZWZlcmVuY2VzQEBTR19OWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENFdmVudEJ1ZmZlcjo6TG9jayh2b2lkKQ0KKz9Mb2NrQENFdmVudEJ1ZmZlckBAUUFFWFhaDQorOyBpbnQgX19zdGRjYWxsIE1NQ0Vycm9yQm94KHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP01NQ0Vycm9yQm94QEBZR0hJSUBaDQorOyBpbnQgX19zdGRjYWxsIE1NQ0Vycm9yQm94KHVuc2lnbmVkIGludCxjbGFzcyBtbWNlcnJvcjo6U0MsdW5zaWduZWQgaW50KQ0KKz9NTUNFcnJvckJveEBAWUdISVZTQ0BtbWNlcnJvckBASUBaDQorOyBpbnQgX19zdGRjYWxsIE1NQ0Vycm9yQm94KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9NTUNFcnJvckJveEBAWUdIUEJHSUBaDQorOyBpbnQgX19zdGRjYWxsIE1NQ0Vycm9yQm94KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgbW1jZXJyb3I6OlNDLHVuc2lnbmVkIGludCkNCis/TU1DRXJyb3JCb3hAQFlHSFBCR1ZTQ0BtbWNlcnJvckBASUBaDQorOyBpbnQgX19zdGRjYWxsIE1NQ0Vycm9yQm94KGNsYXNzIG1tY2Vycm9yOjpTQyx1bnNpZ25lZCBpbnQpDQorP01NQ0Vycm9yQm94QEBZR0hWU0NAbW1jZXJyb3JAQElAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgTU1DVXBkYXRlUmVnaXN0cnkoaW50LGNsYXNzIENPYmplY3RSZWdQYXJhbXMgY29uc3QgKixjbGFzcyBDQ29udHJvbFJlZ1BhcmFtcyBjb25zdCAqKQ0KKz9NTUNVcGRhdGVSZWdpc3RyeUBAWUdKSFBCVkNPYmplY3RSZWdQYXJhbXNAQFBCVkNDb250cm9sUmVnUGFyYW1zQEBAWg0KKzsgaW50IF9fc3RkY2FsbCBNTUNfUGlja0ljb25EbGcoc3RydWN0IEhXTkRfXyAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgaW50LGludCAqKQ0KKz9NTUNfUGlja0ljb25EbGdAQFlHSFBBVUhXTkRfX0BAUEFHSVBBSEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgbW1jZXJyb3I6OlNDOjpNYWtlU2MoZW51bSBtbWNlcnJvcjo6U0M6OmZhY2lsaXR5X3R5cGUsbG9uZykNCis/TWFrZVNjQFNDQG1tY2Vycm9yQEBBQUVYVzRmYWNpbGl0eV90eXBlQDEyQEpAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ01NQ1N0cm9uZ1JlZmVyZW5jZXM6OlJlbGVhc2Uodm9pZCkNCis/UmVsZWFzZUBDTU1DU3Ryb25nUmVmZXJlbmNlc0BAU0dLWFoNCis7IGxvbmcgX19zdGRjYWxsIFNDT0RFRnJvbVNjKGNsYXNzIG1tY2Vycm9yOjpTQyBjb25zdCAmKQ0KKz9TQ09ERUZyb21TY0BAWUdKQUJWU0NAbW1jZXJyb3JAQEBaDQorOyBwdWJsaWM6IGNsYXNzIG1tY2Vycm9yOjpTQyAgX190aGlzY2FsbCBDRXZlbnRCdWZmZXI6OlNjRW1pdE9yUG9zdHBvbmUoc3RydWN0IElEaXNwYXRjaCAqLGxvbmcsY2xhc3MgQVRMOjpDQ29tVmFyaWFudCAqLGludCkNCis/U2NFbWl0T3JQb3N0cG9uZUBDRXZlbnRCdWZmZXJAQFFBRT9BVlNDQG1tY2Vycm9yQEBQQVVJRGlzcGF0Y2hAQEpQQVZDQ29tVmFyaWFudEBBVExAQEhAWg0KKzsgcHJpdmF0ZTogY2xhc3MgbW1jZXJyb3I6OlNDICBfX3RoaXNjYWxsIENFdmVudEJ1ZmZlcjo6U2NGbHVzaFBvc3Rwb25lZCh2b2lkKQ0KKz9TY0ZsdXNoUG9zdHBvbmVkQENFdmVudEJ1ZmZlckBAQUFFP0FWU0NAbW1jZXJyb3JAQFhaDQorOyBjbGFzcyBtbWNlcnJvcjo6U0MgIF9fc3RkY2FsbCBTY0Zyb21NTUMobG9uZykNCis/U2NGcm9tTU1DQEBZRz9BVlNDQG1tY2Vycm9yQEBKQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIG1tY2Vycm9yOjpTQyAgX19zdGRjYWxsIENDb25zb2xlRXZlbnREaXNwYXRjaGVyUHJvdmlkZXI6OlNjR2V0Q29uc29sZUV2ZW50RGlzcGF0Y2hlcihjbGFzcyBDQ29uc29sZUV2ZW50RGlzcGF0Y2hlciAqICYpDQorP1NjR2V0Q29uc29sZUV2ZW50RGlzcGF0Y2hlckBDQ29uc29sZUV2ZW50RGlzcGF0Y2hlclByb3ZpZGVyQEBTRz9BVlNDQG1tY2Vycm9yQEBBQVBBVkNDb25zb2xlRXZlbnREaXNwYXRjaGVyQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgbW1jZXJyb3I6OlNDICBfX3N0ZGNhbGwgQ0NvbnNvbGVFdmVudERpc3BhdGNoZXJQcm92aWRlcjo6U2NTZXRDb25zb2xlRXZlbnREaXNwYXRjaGVyKGNsYXNzIENDb25zb2xlRXZlbnREaXNwYXRjaGVyICopDQorP1NjU2V0Q29uc29sZUV2ZW50RGlzcGF0Y2hlckBDQ29uc29sZUV2ZW50RGlzcGF0Y2hlclByb3ZpZGVyQEBTRz9BVlNDQG1tY2Vycm9yQEBQQVZDQ29uc29sZUV2ZW50RGlzcGF0Y2hlckBAQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIG1tY2Vycm9yOjpTQzo6U2V0SFduZChzdHJ1Y3QgSFdORF9fICopDQorP1NldEhXbmRAU0NAbW1jZXJyb3JAQFNHWFBBVUhXTkRfX0BAQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIG1tY2Vycm9yOjpTQzo6U2V0SGluc3Qoc3RydWN0IEhJTlNUQU5DRV9fICopDQorP1NldEhpbnN0QFNDQG1tY2Vycm9yQEBTR1hQQVVISU5TVEFOQ0VfX0BAQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIG1tY2Vycm9yOjpTQzo6U2V0TWFpblRocmVhZElEKHVuc2lnbmVkIGxvbmcpDQorP1NldE1haW5UaHJlYWRJREBTQ0BtbWNlcnJvckBAU0dYS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBtbWNlcnJvcjo6U0M6OlRocm93KGxvbmcpDQorP1Rocm93QFNDQG1tY2Vycm9yQEBRQUVYSkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBtbWNlcnJvcjo6U0M6OlRocm93KHZvaWQpDQorP1Rocm93QFNDQG1tY2Vycm9yQEBRQUVYWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIG1tY2Vycm9yOjpTQzo6VG9Icih2b2lkKWNvbnN0IA0KKz9Ub0hyQFNDQG1tY2Vycm9yQEBRQkVKWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIG1tY2Vycm9yOjpTQzo6VHJhY2VBbmRDbGVhcih2b2lkKQ0KKz9UcmFjZUFuZENsZWFyQFNDQG1tY2Vycm9yQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIG1tY2Vycm9yOjpTQzo6VHJhY2VfKHZvaWQpY29uc3QgDQorP1RyYWNlX0BTQ0BtbWNlcnJvckBAUUJFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRXZlbnRCdWZmZXI6OlVubG9jayh2b2lkKQ0KKz9VbmxvY2tAQ0V2ZW50QnVmZmVyQEBRQUVYWFoNCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBsb25nICBtbWNlcnJvcjo6U0M6OnNfZHdNYWluVGhyZWFkSUQNCis/c19kd01haW5UaHJlYWRJREBTQ0BtbWNlcnJvckBAMEtBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgSElOU1RBTkNFX18gKiAgbW1jZXJyb3I6OlNDOjpzX2hJbnN0DQorP3NfaEluc3RAU0NAbW1jZXJyb3JAQDBQQVVISU5TVEFOQ0VfX0BAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IEhXTkRfXyAqICBtbWNlcnJvcjo6U0M6OnNfaFduZA0KKz9zX2hXbmRAU0NAbW1jZXJyb3JAQDBQQVVIV05EX19AQEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENDb25zb2xlRXZlbnREaXNwYXRjaGVyICogIENDb25zb2xlRXZlbnREaXNwYXRjaGVyUHJvdmlkZXI6OnNfcERpc3BhdGNoZXINCis/c19wRGlzcGF0Y2hlckBDQ29uc29sZUV2ZW50RGlzcGF0Y2hlclByb3ZpZGVyQEAwUEFWQ0NvbnNvbGVFdmVudERpc3BhdGNoZXJAQEEgREFUQQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtbWNuZG1nci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bW1jbmRtZ3IuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjczYjg3NTMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bW1jbmRtZ3IuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTU1DTkRNR1IuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1NQ05ETUdSLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtbWNzaGV4dC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bW1jc2hleHQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJjY2RmZTUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bW1jc2hleHQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbW1jc2hleHQuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1tY3NoZXh0LkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtbWZ1dGlsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtbWZ1dGlsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41ZDZlMjRlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21tZnV0aWwuZGVmCkBAIC0wLDAgKzEsMTkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTU1GVXRpbC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTU1GVXRpbC5ETEwNCitFWFBPUlRTDQorOyBpbnQgX19zdGRjYWxsIERpc3BsYXlBVklCb3goc3RydWN0IEhXTkRfXyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixzdHJ1Y3QgSFdORF9fICogKikNCis/RGlzcGxheUFWSUJveEBAWUdIUEFVSFdORF9fQEBQQkcxUEFQQVUxQEBaDQorOyBpbnQgX19zdGRjYWxsIERpc3BsYXlVc2VyTWVzc2FnZShzdHJ1Y3QgSFdORF9fICosc3RydWN0IEhJTlNUQU5DRV9fICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxlbnVtIEVSUk9SX1NSQyxsb25nLHVuc2lnbmVkIGludCkNCis/RGlzcGxheVVzZXJNZXNzYWdlQEBZR0hQQVVIV05EX19AQFBBVUhJTlNUQU5DRV9fQEBJSVc0RVJST1JfU1JDQEBKSUBaDQorOyBpbnQgX19zdGRjYWxsIERpc3BsYXlVc2VyTWVzc2FnZShzdHJ1Y3QgSFdORF9fICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGVudW0gRVJST1JfU1JDLGxvbmcsdW5zaWduZWQgaW50KQ0KKz9EaXNwbGF5VXNlck1lc3NhZ2VAQFlHSFBBVUhXTkRfX0BAUEJHMVc0RVJST1JfU1JDQEBKSUBaDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitfRXJyb3JTdHJpbmdFeEAxNg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtbXV0aWxzZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bW11dGlsc2UuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMzN2E2YzQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bW11dGlsc2UuZGVmCkBAIC0wLDAgKzEsMzAwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1tdXRpbHNlLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtbXV0aWxzZS5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSUhhbW1lcjo6Q0RpcmVjdERyYXdTdXJmYWNlOjpDRGlyZWN0RHJhd1N1cmZhY2Uoc3RydWN0IEhQQUxFVFRFX18gKix1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdTSVpFIGNvbnN0ICosbG9uZyAqKQ0KKz8/MENEaXJlY3REcmF3U3VyZmFjZUBJSGFtbWVyQEBRQUVAUEFVSFBBTEVUVEVfX0BAS1BCVXRhZ1NJWkVAQFBBSkBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0hhbGZ0b25lOjpDSGFsZnRvbmUoc3RydWN0IEhQQUxFVFRFX18gKikNCis/PzBDSGFsZnRvbmVAQFFBRUBQQVVIUEFMRVRURV9fQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENIYWxmdG9uZVBhbGV0dGU6OkNIYWxmdG9uZVBhbGV0dGUoc3RydWN0IEhQQUxFVFRFX18gKikNCis/PzBDSGFsZnRvbmVQYWxldHRlQEBRQUVAUEFVSFBBTEVUVEVfX0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSGFsZnRvbmVQYWxldHRlOjpDSGFsZnRvbmVQYWxldHRlKHZvaWQpDQorPz8wQ0hhbGZ0b25lUGFsZXR0ZUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ01lbU1hbmFnZXI6OkNNZW1NYW5hZ2VyKHZvaWQpDQorPz8wQ01lbU1hbmFnZXJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENNZW1Vc2VyOjpDTWVtVXNlcih2b2lkKQ0KKz8/MENNZW1Vc2VyQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDVFN0cjo6Q1RTdHIoY2xhc3MgQ1RTdHIgJikNCis/PzBDVFN0ckBAUUFFQEFBVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDVFN0cjo6Q1RTdHIoaW50KQ0KKz8/MENUU3RyQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1RTdHI6OkNUU3RyKGNoYXIgKikNCis/PzBDVFN0ckBAUUFFQFBBREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1RTdHI6OkNUU3RyKHVuc2lnbmVkIHNob3J0ICopDQorPz8wQ1RTdHJAQFFBRUBQQUdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENVUkxBcmNoaXZlOjpDVVJMQXJjaGl2ZShzdHJ1Y3QgSVVua25vd24gKikNCis/PzBDVVJMQXJjaGl2ZUBAUUFFQFBBVUlVbmtub3duQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE9UcmlnOjpPVHJpZyh2b2lkKQ0KKz8/ME9UcmlnQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENNZW1NYW5hZ2VyOjp+Q01lbU1hbmFnZXIodm9pZCkNCis/PzFDTWVtTWFuYWdlckBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDTWVtVXNlcjo6fkNNZW1Vc2VyKHZvaWQpDQorPz8xQ01lbVVzZXJAQFVBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENUU3RyOjp+Q1RTdHIodm9pZCkNCis/PzFDVFN0ckBAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDVVJMQXJjaGl2ZTo6fkNVUkxBcmNoaXZlKHZvaWQpDQorPz8xQ1VSTEFyY2hpdmVAQFVBRUBYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1RTdHI6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRkNUU3RyQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENVUkxBcmNoaXZlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZDVVJMQXJjaGl2ZUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3RoaXNjYWxsIENNZW1NYW5hZ2VyOjpBbGxvY0J1ZmZlcih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0KQ0KKz9BbGxvY0J1ZmZlckBDTWVtTWFuYWdlckBAUUFFUEFYS0dAWg0KKzsgcHVibGljOiBzdHJ1Y3QgTUVNQkxPQ0tfdGFnICogX190aGlzY2FsbCBDTWVtVXNlcjo6QWxsb2NCdWZmZXIodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCkNCis/QWxsb2NCdWZmZXJAQ01lbVVzZXJAQFFBRVBBVU1FTUJMT0NLX3RhZ0BAS0dAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDVFN0cjo6QWxsb2NCdWZmZXIoaW50LGludCkNCis/QWxsb2NCdWZmZXJAQ1RTdHJAQFFBRUhISEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkICogX19jZGVjbCBDTWVtTWFuYWdlcjo6QWxsb2NCdWZmZXJHbGIodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCkNCis/QWxsb2NCdWZmZXJHbGJAQ01lbU1hbmFnZXJAQFNBUEFYS0dAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1N0cmluZ1dyYXBwZXI6OkF0b2koY2hhciBjb25zdCAqKQ0KKz9BdG9pQENTdHJpbmdXcmFwcGVyQEBTQUhQQkRAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpBdG9sKGNoYXIgY29uc3QgKikNCis/QXRvbEBDU3RyaW5nV3JhcHBlckBAU0FKUEJEQFoNCis7IGxvbmcgX19jZGVjbCBCaXRDb3VudEZyb21ERFBJWEVMRk9STUFUKHN0cnVjdCBfRERQSVhFTEZPUk1BVCBjb25zdCAmKQ0KKz9CaXRDb3VudEZyb21ERFBJWEVMRk9STUFUQEBZQUpBQlVfRERQSVhFTEZPUk1BVEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1VSTEFyY2hpdmU6OkNsb3NlKHZvaWQpDQorP0Nsb3NlQENVUkxBcmNoaXZlQEBVQUVKWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19zdGRjYWxsIENOb25Db2xsYXBzaW5nRHJnOjpDb3B5RnJvbShjbGFzcyBDRHJnICopDQorP0NvcHlGcm9tQENOb25Db2xsYXBzaW5nRHJnQEBVQUdIUEFWQ0RyZ0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1VSTEFyY2hpdmU6OkNvcHlMb2NhbChjaGFyICosaW50KQ0KKz9Db3B5TG9jYWxAQ1VSTEFyY2hpdmVAQFVBRUpQQURIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1VSTEFyY2hpdmU6OkNvcHlMb2NhbCh1bnNpZ25lZCBzaG9ydCAqLGludCkNCis/Q29weUxvY2FsQENVUkxBcmNoaXZlQEBVQUVKUEFHSEBaDQorOyBwdWJsaWM6IGZsb2F0IF9fZmFzdGNhbGwgT1RyaWc6OkNvcyhsb25nKQ0KKz9Db3NAT1RyaWdAQFFBSU1KQFoNCis7IHB1YmxpYzogZmxvYXQgX19mYXN0Y2FsbCBPVHJpZzo6Q29zKGZsb2F0KQ0KKz9Db3NAT1RyaWdAQFFBSU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fZmFzdGNhbGwgQ01hdGhXcmFwcGVyOjpDb3NEZWcobG9uZykNCis/Q29zRGVnQENNYXRoV3JhcHBlckBAU0lNSkBaDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2Zhc3RjYWxsIENNYXRoV3JhcHBlcjo6Q29zRGVnKGZsb2F0KQ0KKz9Db3NEZWdAQ01hdGhXcmFwcGVyQEBTSU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fZmFzdGNhbGwgQ01hdGhXcmFwcGVyOjpDb3NEZWdXcmFwKGxvbmcpDQorP0Nvc0RlZ1dyYXBAQ01hdGhXcmFwcGVyQEBTSU1KQFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fZmFzdGNhbGwgQ01hdGhXcmFwcGVyOjpDb3NEZWdXcmFwKGZsb2F0KQ0KKz9Db3NEZWdXcmFwQENNYXRoV3JhcHBlckBAU0lNTUBaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19mYXN0Y2FsbCBDTWF0aFdyYXBwZXI6OkNvc1JhZChkb3VibGUpDQorP0Nvc1JhZEBDTWF0aFdyYXBwZXJAQFNJTk5AWg0KKzsgcHVibGljOiBmbG9hdCBfX2Zhc3RjYWxsIE9UcmlnOjpDb3NXcmFwKGxvbmcpDQorP0Nvc1dyYXBAT1RyaWdAQFFBSU1KQFoNCis7IHB1YmxpYzogZmxvYXQgX19mYXN0Y2FsbCBPVHJpZzo6Q29zV3JhcChmbG9hdCkNCis/Q29zV3JhcEBPVHJpZ0BAUUFJTU1AWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDVVJMQXJjaGl2ZTo6Q3JlYXRlKGNoYXIgY29uc3QgKikNCis/Q3JlYXRlQENVUkxBcmNoaXZlQEBVQUVKUEJEQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1VSTEFyY2hpdmU6OkNyZWF0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9DcmVhdGVAQ1VSTEFyY2hpdmVAQFVBRUpQQkdAWg0KKzsgaW50IF9fc3RkY2FsbCBDcmVhdGVJRGlzcGF0Y2hDb2xsZWN0aW9uKHN0cnVjdCBJVW5rbm93biAqICopDQorP0NyZWF0ZUlEaXNwYXRjaENvbGxlY3Rpb25AQFlHSFBBUEFVSVVua25vd25AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTWVtTWFuYWdlcjo6RHVtcEFsbG9jYXRpb25zKGNoYXIgKikNCis/RHVtcEFsbG9jYXRpb25zQENNZW1NYW5hZ2VyQEBRQUVYUEFEQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDTWVtTWFuYWdlcjo6RHVtcEFsbG9jYXRpb25zR2xiKGNoYXIgKikNCis/RHVtcEFsbG9jYXRpb25zR2xiQENNZW1NYW5hZ2VyQEBTQVhQQURAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENNZW1NYW5hZ2VyOjpEdW1wSGVhcEhlYWRlcihzdHJ1Y3QgSEVBUEhFQURFUl90YWcgKixzdHJ1Y3QgX2lvYnVmICopDQorP0R1bXBIZWFwSGVhZGVyQENNZW1NYW5hZ2VyQEBBQUVYUEFVSEVBUEhFQURFUl90YWdAQFBBVV9pb2J1ZkBAQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDTWVtTWFuYWdlcjo6RHVtcE1lbUJsb2NrKHN0cnVjdCBNRU1CTE9DS190YWcgKixzdHJ1Y3QgX2lvYnVmICopDQorP0R1bXBNZW1CbG9ja0BDTWVtTWFuYWdlckBAQUFFWFBBVU1FTUJMT0NLX3RhZ0BAUEFVX2lvYnVmQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENNZW1NYW5hZ2VyOjpEdW1wTWVtVXNlckluZm8oc3RydWN0IE1FTVVTRVJJTkZPX3RhZyAqLHN0cnVjdCBfaW9idWYgKikNCis/RHVtcE1lbVVzZXJJbmZvQENNZW1NYW5hZ2VyQEBBQUVYUEFVTUVNVVNFUklORk9fdGFnQEBQQVVfaW9idWZAQEBaDQorOyB2b2lkIF9fc3RkY2FsbCBFeHRlcm5hbER1bXBBbGxvY2F0aW9ucyhjaGFyICopDQorP0V4dGVybmFsRHVtcEFsbG9jYXRpb25zQEBZR1hQQURAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ01lbU1hbmFnZXI6OkZyZWVCdWZmZXIodm9pZCAqKQ0KKz9GcmVlQnVmZmVyQENNZW1NYW5hZ2VyQEBRQUVYUEFYQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENNZW1Vc2VyOjpGcmVlQnVmZmVyKHN0cnVjdCBNRU1CTE9DS190YWcgKikNCis/RnJlZUJ1ZmZlckBDTWVtVXNlckBAUUFFWFBBVU1FTUJMT0NLX3RhZ0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENUU3RyOjpGcmVlQnVmZmVyKHZvaWQpDQorP0ZyZWVCdWZmZXJAQ1RTdHJAQFFBRVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIENNZW1NYW5hZ2VyOjpGcmVlQnVmZmVyR2xiKHZvaWQgKikNCis/RnJlZUJ1ZmZlckdsYkBDTWVtTWFuYWdlckBAU0FYUEFYQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENNZW1NYW5hZ2VyOjpGcmVlQnVmZmVyTWVtQmxvY2soc3RydWN0IE1FTUJMT0NLX3RhZyAqKQ0KKz9GcmVlQnVmZmVyTWVtQmxvY2tAQ01lbU1hbmFnZXJAQFFBRVhQQVVNRU1CTE9DS190YWdAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyICogX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6R2N2dChkb3VibGUsaW50LGNoYXIgKikNCis/R2N2dEBDU3RyaW5nV3JhcHBlckBAU0FQQUROSFBBREBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fc3RkY2FsbCBDTm9uQ29sbGFwc2luZ0RyZzo6R2V0QXQobG9uZykNCis/R2V0QXRAQ05vbkNvbGxhcHNpbmdEcmdAQFVBR1BBWEpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDVVJMQXJjaGl2ZTo6R2V0RmlsZVNpemUobG9uZyAmKQ0KKz9HZXRGaWxlU2l6ZUBDVVJMQXJjaGl2ZUBAVUFFSkFBSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fc3RkY2FsbCBDTm9uQ29sbGFwc2luZ0RyZzo6R2V0Rmlyc3Qodm9pZCkNCis/R2V0Rmlyc3RAQ05vbkNvbGxhcHNpbmdEcmdAQFVBR1BBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fc3RkY2FsbCBDTm9uQ29sbGFwc2luZ0RyZzo6R2V0TmV4dCh2b2lkKQ0KKz9HZXROZXh0QENOb25Db2xsYXBzaW5nRHJnQEBVQUdQQVhYWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIEdldFNpZ0JpdHNGcm9tMTZCUFAoc3RydWN0IEhEQ19fICopDQorP0dldFNpZ0JpdHNGcm9tMTZCUFBAQFlBS1BBVUhEQ19fQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCBJU3RyZWFtICogX190aGlzY2FsbCBDVVJMQXJjaGl2ZTo6R2V0U3RyZWFtSW50ZXJmYWNlKHZvaWQpY29uc3QgDQorP0dldFN0cmVhbUludGVyZmFjZUBDVVJMQXJjaGl2ZUBAVUJFUEFVSVN0cmVhbUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19zdGRjYWxsIENEcmc6Okluc2VydCh2b2lkICosbG9uZykNCis/SW5zZXJ0QENEcmdAQFVBR0hQQVhKQFoNCis7IGludCBfX2NkZWNsIElzTU1YQ3B1KHZvaWQpDQorP0lzTU1YQ3B1QEBZQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1N0cmluZ1dyYXBwZXI6Oklzd3NwYWNlKHVuc2lnbmVkIHNob3J0KQ0KKz9Jc3dzcGFjZUBDU3RyaW5nV3JhcHBlckBAU0FIR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyICogX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6SXRvYShpbnQsY2hhciAqLGludCkNCis/SXRvYUBDU3RyaW5nV3JhcHBlckBAU0FQQURIUEFESEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENUU3RyOjpMZW4odm9pZCkNCis/TGVuQENUU3RyQEBRQUVIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpMb2FkU3RyaW5nVyhzdHJ1Y3QgSElOU1RBTkNFX18gKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgKixpbnQpDQorP0xvYWRTdHJpbmdXQENTdHJpbmdXcmFwcGVyQEBTQUhQQVVISU5TVEFOQ0VfX0BASVBBR0hAWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBDTWVtVXNlcjo6TG9ja0J1ZmZlcihzdHJ1Y3QgTUVNQkxPQ0tfdGFnICopDQorP0xvY2tCdWZmZXJAQ01lbVVzZXJAQFFBRVBBWFBBVU1FTUJMT0NLX3RhZ0BAQFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgKiBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpMdG9hKGxvbmcsY2hhciAqLGludCkNCis/THRvYUBDU3RyaW5nV3JhcHBlckBAU0FQQURKUEFESEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6TWJzdG93Y3ModW5zaWduZWQgc2hvcnQgKixjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9NYnN0b3djc0BDU3RyaW5nV3JhcHBlckBAU0FJUEFHUEJESUBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6TWVtY21wKHZvaWQgY29uc3QgKix2b2lkIGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9NZW1jbXBAQ1N0cmluZ1dyYXBwZXJAQFNBSFBCWDBJQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgKiBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpNZW1jcHkodm9pZCAqLHZvaWQgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP01lbWNweUBDU3RyaW5nV3JhcHBlckBAU0FQQVhQQVhQQlhJQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgKiBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpNZW1zZXQodm9pZCAqLGludCx1bnNpZ25lZCBpbnQpDQorP01lbXNldEBDU3RyaW5nV3JhcHBlckBAU0FQQVhQQVhISUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ01lbVVzZXI6Ok5vdGlmeU1lbVVzZXIoc3RydWN0IE1FTU5PVElGWV90YWcgKikNCis/Tm90aWZ5TWVtVXNlckBDTWVtVXNlckBAVUFFSFBBVU1FTU5PVElGWV90YWdAQEBaDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgT3ZlcmhlYWRPZlNhdmVQdHJEcmcodm9pZCkNCis/T3ZlcmhlYWRPZlNhdmVQdHJEcmdAQFlBS1haDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIENNYXRoV3JhcHBlcjo6UG93KGRvdWJsZSxkb3VibGUpDQorP1Bvd0BDTWF0aFdyYXBwZXJAQFNBTU5OQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgQ01lbU1hbmFnZXI6OlJlQWxsb2NCdWZmZXIodm9pZCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQpDQorP1JlQWxsb2NCdWZmZXJAQ01lbU1hbmFnZXJAQFFBRVBBWFBBWEtHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgKiBfX2NkZWNsIENNZW1NYW5hZ2VyOjpSZUFsbG9jQnVmZmVyR2xiKHZvaWQgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0KQ0KKz9SZUFsbG9jQnVmZmVyR2xiQENNZW1NYW5hZ2VyQEBTQVBBWFBBWEtHQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1VSTEFyY2hpdmU6OlJlYWQodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcpDQorP1JlYWRAQ1VSTEFyY2hpdmVAQFVBRUtQQUVLQFoNCis7IGxvbmcgX19jZGVjbCBSZWFkQnN0ckZyb21Qcm9wQmFnKHN0cnVjdCBJUHJvcGVydHlCYWcgKixzdHJ1Y3QgSUVycm9yTG9nICosY2hhciAqLHVuc2lnbmVkIHNob3J0ICogKikNCis/UmVhZEJzdHJGcm9tUHJvcEJhZ0BAWUFKUEFVSVByb3BlcnR5QmFnQEBQQVVJRXJyb3JMb2dAQFBBRFBBUEFHQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1VSTEFyY2hpdmU6OlJlYWRMaW5lKGNoYXIgKix1bnNpZ25lZCBsb25nKQ0KKz9SZWFkTGluZUBDVVJMQXJjaGl2ZUBAVUFFS1BBREtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDVVJMQXJjaGl2ZTo6UmVhZExpbmUodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBsb25nKQ0KKz9SZWFkTGluZUBDVVJMQXJjaGl2ZUBAVUFFS1BBR0tAWg0KKzsgbG9uZyBfX2NkZWNsIFJlYWRMb25nRnJvbVByb3BCYWcoc3RydWN0IElQcm9wZXJ0eUJhZyAqLHN0cnVjdCBJRXJyb3JMb2cgKixjaGFyICosbG9uZyAqKQ0KKz9SZWFkTG9uZ0Zyb21Qcm9wQmFnQEBZQUpQQVVJUHJvcGVydHlCYWdAQFBBVUlFcnJvckxvZ0BAUEFEUEFKQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ01lbU1hbmFnZXI6OlJlZ2lzdGVyTWVtVXNlcihjbGFzcyBDTWVtVXNlciAqKQ0KKz9SZWdpc3Rlck1lbVVzZXJAQ01lbU1hbmFnZXJAQFFBRUhQQVZDTWVtVXNlckBAQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENNZW1NYW5hZ2VyOjpSZWdpc3Rlck1lbVVzZXJHbGIoY2xhc3MgQ01lbVVzZXIgKikNCis/UmVnaXN0ZXJNZW1Vc2VyR2xiQENNZW1NYW5hZ2VyQEBTQUhQQVZDTWVtVXNlckBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19zdGRjYWxsIENEcmc6OlJlbW92ZSh2b2lkICosbG9uZykNCis/UmVtb3ZlQENEcmdAQFVBR0hQQVhKQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19zdGRjYWxsIENOb25Db2xsYXBzaW5nRHJnOjpSZW1vdmUodm9pZCAqLGxvbmcpDQorP1JlbW92ZUBDTm9uQ29sbGFwc2luZ0RyZ0BAVUFHSFBBWEpAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1RTdHI6OlJlc2V0TGVuZ3RoKHZvaWQpDQorP1Jlc2V0TGVuZ3RoQENUU3RyQEBRQUVYWFoNCis7IHZvaWQgX19jZGVjbCBSZXRhaWxFY2hvKGNoYXIgKiwuLi4pDQorP1JldGFpbEVjaG9AQFlBWFBBRFpaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENVUkxBcmNoaXZlOjpTZWVrKGxvbmcsZW51bSBDVVJMQXJjaGl2ZTo6b3JpZ2luKQ0KKz9TZWVrQENVUkxBcmNoaXZlQEBVQUVKSlc0b3JpZ2luQDFAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fc3RkY2FsbCBDTm9uQ29sbGFwc2luZ0RyZzo6U2V0QXJyYXkodW5zaWduZWQgY2hhciAqLGxvbmcsdW5zaWduZWQgaW50KQ0KKz9TZXRBcnJheUBDTm9uQ29sbGFwc2luZ0RyZ0BAVUFHWFBBRUpJQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX19zdGRjYWxsIENOb25Db2xsYXBzaW5nRHJnOjpTZXRBdCh2b2lkICosbG9uZykNCis/U2V0QXRAQ05vbkNvbGxhcHNpbmdEcmdAQFVBR0hQQVhKQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fc3RkY2FsbCBDRHJnOjpTZXROb25EZWZhdWx0U2l6ZXModW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/U2V0Tm9uRGVmYXVsdFNpemVzQENEcmdAQFVBR1hJSUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENUU3RyOjpTZXRTdHJpbmcoY2hhciAqKQ0KKz9TZXRTdHJpbmdAQ1RTdHJAQFFBRUhQQURAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDVFN0cjo6U2V0U3RyaW5nKHVuc2lnbmVkIHNob3J0ICopDQorP1NldFN0cmluZ0BDVFN0ckBAUUFFSFBBR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENUU3RyOjpTZXRTdHJpbmdQb2ludGVyKGNoYXIgKixpbnQpDQorP1NldFN0cmluZ1BvaW50ZXJAQ1RTdHJAQFFBRUhQQURIQFoNCis7IHB1YmxpYzogZmxvYXQgX19mYXN0Y2FsbCBPVHJpZzo6U2luKGxvbmcpDQorP1NpbkBPVHJpZ0BAUUFJTUpAWg0KKzsgcHVibGljOiBmbG9hdCBfX2Zhc3RjYWxsIE9UcmlnOjpTaW4oZmxvYXQpDQorP1NpbkBPVHJpZ0BAUUFJTU1AWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19mYXN0Y2FsbCBDTWF0aFdyYXBwZXI6OlNpbkRlZyhsb25nKQ0KKz9TaW5EZWdAQ01hdGhXcmFwcGVyQEBTSU1KQFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fZmFzdGNhbGwgQ01hdGhXcmFwcGVyOjpTaW5EZWcoZmxvYXQpDQorP1NpbkRlZ0BDTWF0aFdyYXBwZXJAQFNJTU1AWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19mYXN0Y2FsbCBDTWF0aFdyYXBwZXI6OlNpbkRlZ1dyYXAobG9uZykNCis/U2luRGVnV3JhcEBDTWF0aFdyYXBwZXJAQFNJTUpAWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19mYXN0Y2FsbCBDTWF0aFdyYXBwZXI6OlNpbkRlZ1dyYXAoZmxvYXQpDQorP1NpbkRlZ1dyYXBAQ01hdGhXcmFwcGVyQEBTSU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2Zhc3RjYWxsIENNYXRoV3JhcHBlcjo6U2luUmFkKGRvdWJsZSkNCis/U2luUmFkQENNYXRoV3JhcHBlckBAU0lOTkBaDQorOyBwdWJsaWM6IGZsb2F0IF9fZmFzdGNhbGwgT1RyaWc6OlNpbldyYXAobG9uZykNCis/U2luV3JhcEBPVHJpZ0BAUUFJTUpAWg0KKzsgcHVibGljOiBmbG9hdCBfX2Zhc3RjYWxsIE9UcmlnOjpTaW5XcmFwKGZsb2F0KQ0KKz9TaW5XcmFwQE9UcmlnQEBRQUlNTUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTWVtTWFuYWdlcjo6U2l6ZUJ1ZmZlcih2b2lkICopDQorP1NpemVCdWZmZXJAQ01lbU1hbmFnZXJAQFFBRUtQQVhAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIENNZW1NYW5hZ2VyOjpTaXplQnVmZmVyR2xiKHZvaWQgKikNCis/U2l6ZUJ1ZmZlckdsYkBDTWVtTWFuYWdlckBAU0FLUEFYQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpTcHJpbnRmKGNoYXIgKixjaGFyIGNvbnN0ICosLi4uKQ0KKz9TcHJpbnRmQENTdHJpbmdXcmFwcGVyQEBTQUhQQURQQkRaWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19mYXN0Y2FsbCBDTWF0aFdyYXBwZXI6OlNxcnQoZmxvYXQpDQorP1NxcnRAQ01hdGhXcmFwcGVyQEBTSU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpTc2NhbmYxKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosdm9pZCAqKQ0KKz9Tc2NhbmYxQENTdHJpbmdXcmFwcGVyQEBTQUhQQkQwUEFYQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpTc2NhbmYyKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosdm9pZCAqLHZvaWQgKikNCis/U3NjYW5mMkBDU3RyaW5nV3JhcHBlckBAU0FIUEJEMFBBWDFAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1N0cmluZ1dyYXBwZXI6OlNzY2FuZjMoY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKix2b2lkICosdm9pZCAqLHZvaWQgKikNCis/U3NjYW5mM0BDU3RyaW5nV3JhcHBlckBAU0FIUEJEMFBBWDExQFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgKiBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpTdHJjYXQoY2hhciAqLGNoYXIgY29uc3QgKikNCis/U3RyY2F0QENTdHJpbmdXcmFwcGVyQEBTQVBBRFBBRFBCREBaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyICogX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6U3RyY2hyKGNoYXIgY29uc3QgKixjaGFyKQ0KKz9TdHJjaHJAQ1N0cmluZ1dyYXBwZXJAQFNBUEFEUEJEREBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6U3RyY21wKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICopDQorP1N0cmNtcEBDU3RyaW5nV3JhcHBlckBAU0FIUEJEMEBaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyICogX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6U3RyY3B5KGNoYXIgKixjaGFyIGNvbnN0ICopDQorP1N0cmNweUBDU3RyaW5nV3JhcHBlckBAU0FQQURQQURQQkRAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1N0cmluZ1dyYXBwZXI6OlN0cmljbXAoY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKikNCis/U3RyaWNtcEBDU3RyaW5nV3JhcHBlckBAU0FIUEJEMEBaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyICogX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6U3RyaW5jKGNoYXIgY29uc3QgKikNCis/U3RyaW5jQENTdHJpbmdXcmFwcGVyQEBTQVBBRFBCREBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6U3RybGVuKGNoYXIgY29uc3QgKikNCis/U3RybGVuQENTdHJpbmdXcmFwcGVyQEBTQUhQQkRAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1N0cmluZ1dyYXBwZXI6OlN0cm5jbXAoY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP1N0cm5jbXBAQ1N0cmluZ1dyYXBwZXJAQFNBSFBCRDBJQFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgKiBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpTdHJuY3B5KGNoYXIgKixjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9TdHJuY3B5QENTdHJpbmdXcmFwcGVyQEBTQVBBRFBBRFBCRElAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1N0cmluZ1dyYXBwZXI6OlN0cm5pY21wKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9TdHJuaWNtcEBDU3RyaW5nV3JhcHBlckBAU0FIUEJEMElAWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciAqIF9fY2RlY2wgQ1N0cmluZ1dyYXBwZXI6OlN0cnJjaHIoY2hhciBjb25zdCAqLGNoYXIpDQorP1N0cnJjaHJAQ1N0cmluZ1dyYXBwZXJAQFNBUEFEUEJEREBaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyICogX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6U3Ryc3RyKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICopDQorP1N0cnN0ckBDU3RyaW5nV3JhcHBlckBAU0FQQURQQkQwQFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgKiBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpTdHJ0b2soY2hhciAqLGNoYXIgY29uc3QgKikNCis/U3RydG9rQENTdHJpbmdXcmFwcGVyQEBTQVBBRFBBRFBCREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBDVFN0cjo6U3lzQWxsb2NTdHJpbmcodm9pZCkNCis/U3lzQWxsb2NTdHJpbmdAQ1RTdHJAQFFBRVBBR1haDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTWVtVXNlcjo6VW5Mb2NrQnVmZmVyKHN0cnVjdCBNRU1CTE9DS190YWcgKikNCis/VW5Mb2NrQnVmZmVyQENNZW1Vc2VyQEBRQUVYUEFVTUVNQkxPQ0tfdGFnQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDTWVtTWFuYWdlcjo6VW5SZWdpc3Rlck1lbVVzZXIoY2xhc3MgQ01lbVVzZXIgKikNCis/VW5SZWdpc3Rlck1lbVVzZXJAQ01lbU1hbmFnZXJAQFFBRUhQQVZDTWVtVXNlckBAQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENNZW1NYW5hZ2VyOjpVblJlZ2lzdGVyTWVtVXNlckdsYihjbGFzcyBDTWVtVXNlciAqKQ0KKz9VblJlZ2lzdGVyTWVtVXNlckdsYkBDTWVtTWFuYWdlckBAU0FIUEFWQ01lbVVzZXJAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6V1N0ckNtcGluKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP1dTdHJDbXBpbkBDU3RyaW5nV3JhcHBlckBAU0FIUEJHMElAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgKiBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpXU3RyY2F0KHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/V1N0cmNhdEBDU3RyaW5nV3JhcHBlckBAU0FQQUdQQUdQQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgKiBfX2NkZWNsIENTdHJpbmdXcmFwcGVyOjpXU3RyY3B5KHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/V1N0cmNweUBDU3RyaW5nV3JhcHBlckBAU0FQQUdQQUdQQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ1N0cmluZ1dyYXBwZXI6OldTdHJsZW4odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/V1N0cmxlbkBDU3RyaW5nV3JhcHBlckBAU0FIUEJHQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0ICogX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6V1N0cm5jcHkodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/V1N0cm5jcHlAQ1N0cmluZ1dyYXBwZXJAQFNBUEFHUEFHUEJHSUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBDU3RyaW5nV3JhcHBlcjo6V2NzdG9tYnMoY2hhciAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9XY3N0b21ic0BDU3RyaW5nV3JhcHBlckBAU0FJUEFEUEJHSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENVUkxBcmNoaXZlOjpXcml0ZSh1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZykNCis/V3JpdGVAQ1VSTEFyY2hpdmVAQFVBRUtQQUVLQFoNCis7IGxvbmcgX19jZGVjbCBXcml0ZUJzdHJUb1Byb3BCYWcoc3RydWN0IElQcm9wZXJ0eUJhZyAqLGNoYXIgKix1bnNpZ25lZCBzaG9ydCAqKQ0KKz9Xcml0ZUJzdHJUb1Byb3BCYWdAQFlBSlBBVUlQcm9wZXJ0eUJhZ0BAUEFEUEFHQFoNCis7IGxvbmcgX19jZGVjbCBXcml0ZUxvbmdUb1Byb3BCYWcoc3RydWN0IElQcm9wZXJ0eUJhZyAqLGNoYXIgKixsb25nKQ0KKz9Xcml0ZUxvbmdUb1Byb3BCYWdAQFlBSlBBVUlQcm9wZXJ0eUJhZ0BAUEFESkBaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIENUU3RyOjpwc3oodm9pZCkNCis/cHN6QENUU3RyQEBRQUVQQURYWg0KKzsgcHVibGljOiBjaGFyICogX190aGlzY2FsbCBDVFN0cjo6cHN6QSh2b2lkKQ0KKz9wc3pBQENUU3RyQEBRQUVQQURYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ1RTdHI6OnBzelcodm9pZCkNCis/cHN6V0BDVFN0ckBAUUFFUEFHWFoNCitfQ0lmbW9kDQorX2Noa3N0aw0KK193Y3NpY21wDQorX3d0b2kNCittZW1jbXANCittZW1zZXQNCityYW5kDQorc2V0bG9jYWxlDQorc3JhbmQNCitzdHJjcHkNCitzdHJsZW4NCitzd3ByaW50Zg0KK3djc2xlbg0KK3djc25jcHkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bW9ic3luYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bW9ic3luYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDA5YTdkZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtb2JzeW5jLmRlZgpAQCAtMCwwICsxLDMxIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1vYnN5bmMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1vYnN5bmMuZGxsDQorRVhQT1JUUw0KK1J1bkRsbFJlZ2lzdGVyDQorU3luY01nclJhc1Byb2MNCitEaXNwbGF5T3B0aW9ucw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorTW9ic3luY0dldENsYXNzT2JqZWN0DQorUmVnR2V0SGFuZGxlclJlZ2lzdHJhdGlvbkluZm8NCitSZWdHZXRIYW5kbGVyVG9wTGV2ZWxLZXkNCitSZWdHZXRQcm9ncmVzc0RldGFpbHNTdGF0ZQ0KK1JlZ0dldFNjaGVkQ29ubmVjdGlvbk5hbWUNCitSZWdHZXRTY2hlZFN5bmNTZXR0aW5ncw0KK1JlZ0dldFN5bmNJdGVtU2V0dGluZ3MNCitSZWdHZXRTeW5jU2V0dGluZ3MNCitSZWdRdWVyeUxvYWRIYW5kbGVyT25FdmVudA0KK1JlZ1JlbW92ZU1hbnVhbFN5bmNTZXR0aW5ncw0KK1JlZ1NjaGVkSGFuZGxlckl0ZW1zQ2hlY2tlZA0KK1JlZ1NldFByb2dyZXNzRGV0YWlsc1N0YXRlDQorUmVnU2V0U3luY0l0ZW1TZXR0aW5ncw0KK1JlZ1NldFVzZXJEZWZhdWx0cw0KK1N5bmNNZ3JSZXNvbHZlQ29uZmxpY3RBDQorU3luY01nclJlc29sdmVDb25mbGljdFcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bW9kZW11aS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bW9kZW11aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2E0MThmOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtb2RlbXVpLmRlZgpAQCAtMCwwICsxLDIyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1vZGVtdWkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1vZGVtdWkuZGxsDQorRVhQT1JUUw0KK2RydkNvbW1Db25maWdEaWFsb2dXDQorZHJ2Q29tbUNvbmZpZ0RpYWxvZ0ENCitkcnZTZXREZWZhdWx0Q29tbUNvbmZpZ1cNCitkcnZTZXREZWZhdWx0Q29tbUNvbmZpZ0ENCitkcnZHZXREZWZhdWx0Q29tbUNvbmZpZ1cNCitkcnZHZXREZWZhdWx0Q29tbUNvbmZpZ0ENCitVbmltb2RlbURldkNvbmZpZ0RpYWxvZw0KK0NvdW50cnlSdW5PbmNlDQorVW5pbW9kZW1HZXREZWZhdWx0Q29tbUNvbmZpZw0KK1VuaW1vZGVtR2V0RXh0ZW5kZWRDYXBzDQorSW52b2tlQ29udHJvbFBhbmVsDQorTW9kZW1DcGxEbGdQcm9jDQorTW9kZW1Qcm9wUGFnZXNQcm92aWRlcg0KK1F1ZXJ5TW9kZW1Gb3JDb3VudHJ5U2V0dGluZ3MNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bW9mZC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bW9mZC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTU5ZWRiMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtb2ZkLmRlZgpAQCAtMCwwICsxLDE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1vZmQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1vZmQuZGxsDQorRVhQT1JUUw0KK0NvbXBpbGVGaWxlVmlhRExMDQorQ3JlYXRlQk1PRlZpYURMTA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21wNDNkbW9kLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtcDQzZG1vZC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjc1Y2IzNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtcDQzZG1vZC5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBERUZGSUxFLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBERUZGSUxFLmRsbA0KK0VYUE9SVFMNCitDcmVhdGVJbnN0YW5jZQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21wNHNkbW9kLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtcDRzZG1vZC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjc1Y2IzNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtcDRzZG1vZC5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBERUZGSUxFLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBERUZGSUxFLmRsbA0KK0VYUE9SVFMNCitDcmVhdGVJbnN0YW5jZQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21wZzRkbW9kLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtcGc0ZG1vZC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjc1Y2IzNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtcGc0ZG1vZC5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBERUZGSUxFLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBERUZGSUxFLmRsbA0KK0VYUE9SVFMNCitDcmVhdGVJbnN0YW5jZQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21wci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXByLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZDI4MTA0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21wci5kZWYKQEAgLTAsMCArMSw4NiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNUFIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1QUi5kbGwNCitFWFBPUlRTDQorV05ldENvbm5lY3Rpb25EaWFsb2cyDQorV05ldERpc2Nvbm5lY3REaWFsb2cyDQorSV9NcHJTYXZlQ29ubg0KK011bHRpbmV0R2V0Q29ubmVjdGlvblBlcmZvcm1hbmNlQQ0KK011bHRpbmV0R2V0Q29ubmVjdGlvblBlcmZvcm1hbmNlVw0KK011bHRpbmV0R2V0RXJyb3JUZXh0QQ0KK011bHRpbmV0R2V0RXJyb3JUZXh0Vw0KK1Jlc3RvcmVDb25uZWN0aW9uQTANCitXTmV0QWRkQ29ubmVjdGlvbjJBDQorV05ldEFkZENvbm5lY3Rpb24yVw0KK1dOZXRBZGRDb25uZWN0aW9uM0ENCitXTmV0QWRkQ29ubmVjdGlvbjNXDQorV05ldEFkZENvbm5lY3Rpb25BDQorV05ldEFkZENvbm5lY3Rpb25XDQorV05ldENhbmNlbENvbm5lY3Rpb24yQQ0KK1dOZXRDYW5jZWxDb25uZWN0aW9uMlcNCitXTmV0Q2FuY2VsQ29ubmVjdGlvbkENCitXTmV0Q2FuY2VsQ29ubmVjdGlvblcNCitXTmV0Q2xlYXJDb25uZWN0aW9ucw0KK1dOZXRDbG9zZUVudW0NCitXTmV0Q29ubmVjdGlvbkRpYWxvZzFBDQorV05ldENvbm5lY3Rpb25EaWFsb2cxVw0KK1dOZXRDb25uZWN0aW9uRGlhbG9nDQorV05ldERpcmVjdG9yeU5vdGlmeUENCitXTmV0RGlyZWN0b3J5Tm90aWZ5Vw0KK1dOZXREaXNjb25uZWN0RGlhbG9nMUENCitXTmV0RGlzY29ubmVjdERpYWxvZzFXDQorV05ldERpc2Nvbm5lY3REaWFsb2cNCitXTmV0RW51bVJlc291cmNlQQ0KK1dOZXRFbnVtUmVzb3VyY2VXDQorV05ldEZNWEVkaXRQZXJtDQorV05ldEZNWEdldFBlcm1DYXBzDQorV05ldEZNWEdldFBlcm1IZWxwDQorV05ldEZvcm1hdE5ldHdvcmtOYW1lQQ0KK1dOZXRGb3JtYXROZXR3b3JrTmFtZVcNCitXTmV0R2V0Q29ubmVjdGlvbjJBDQorV05ldEdldENvbm5lY3Rpb24yVw0KK1dOZXRHZXRDb25uZWN0aW9uM0ENCitXTmV0R2V0Q29ubmVjdGlvbjNXDQorV05ldEdldENvbm5lY3Rpb25BDQorV05ldEdldENvbm5lY3Rpb25XDQorV05ldEdldERpcmVjdG9yeVR5cGVBDQorV05ldEdldERpcmVjdG9yeVR5cGVXDQorV05ldEdldEhvbWVEaXJlY3RvcnlXDQorV05ldEdldExhc3RFcnJvckENCitXTmV0R2V0TGFzdEVycm9yVw0KK1dOZXRHZXROZXR3b3JrSW5mb3JtYXRpb25BDQorV05ldEdldE5ldHdvcmtJbmZvcm1hdGlvblcNCitXTmV0R2V0UHJvcGVydHlUZXh0QQ0KK1dOZXRHZXRQcm9wZXJ0eVRleHRXDQorV05ldEdldFByb3ZpZGVyTmFtZUENCitXTmV0R2V0UHJvdmlkZXJOYW1lVw0KK1dOZXRHZXRQcm92aWRlclR5cGVBDQorV05ldEdldFByb3ZpZGVyVHlwZVcNCitXTmV0R2V0UmVzb3VyY2VJbmZvcm1hdGlvbkENCitXTmV0R2V0UmVzb3VyY2VJbmZvcm1hdGlvblcNCitXTmV0R2V0UmVzb3VyY2VQYXJlbnRBDQorV05ldEdldFJlc291cmNlUGFyZW50Vw0KK1dOZXRHZXRTZWFyY2hEaWFsb2cNCitXTmV0R2V0VW5pdmVyc2FsTmFtZUENCitXTmV0R2V0VW5pdmVyc2FsTmFtZVcNCitXTmV0R2V0VXNlckENCitXTmV0R2V0VXNlclcNCitXTmV0TG9nb25Ob3RpZnkNCitXTmV0T3BlbkVudW1BDQorV05ldE9wZW5FbnVtVw0KK1dOZXRQYXNzd29yZENoYW5nZU5vdGlmeQ0KK1dOZXRQcm9wZXJ0eURpYWxvZ0ENCitXTmV0UHJvcGVydHlEaWFsb2dXDQorV05ldFJlc3RvcmVDb25uZWN0aW9uMlcNCitXTmV0UmVzdG9yZUNvbm5lY3Rpb25XDQorV05ldFNldENvbm5lY3Rpb25BDQorV05ldFNldENvbm5lY3Rpb25XDQorV05ldFNldExhc3RFcnJvckENCitXTmV0U2V0TGFzdEVycm9yVw0KK1dOZXRTdXBwb3J0R2xvYmFsRW51bQ0KK1dOZXRVc2VDb25uZWN0aW9uQQ0KK1dOZXRVc2VDb25uZWN0aW9uVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtcHJhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21wcmFwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWVlMjQ0ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtcHJhcGkuZGVmCkBAIC0wLDAgKzEsMTM5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1QUkFQSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVBSQVBJLmRsbA0KK0VYUE9SVFMNCitDb21wcmVzc1Bob25lTnVtYmVyDQorTXByQWRtaW5CdWZmZXJGcmVlDQorTXByQWRtaW5Db25uZWN0aW9uQ2xlYXJTdGF0cw0KK01wckFkbWluQ29ubmVjdGlvbkVudW0NCitNcHJBZG1pbkNvbm5lY3Rpb25HZXRJbmZvDQorTXByQWRtaW5Db25uZWN0aW9uUmVtb3ZlUXVhcmFudGluZQ0KK01wckFkbWluRGVyZWdpc3RlckNvbm5lY3Rpb25Ob3RpZmljYXRpb24NCitNcHJBZG1pbkRldmljZUVudW0NCitNcHJBZG1pbkVzdGFibGlzaERvbWFpblJhc1NlcnZlcg0KK01wckFkbWluR2V0RXJyb3JTdHJpbmcNCitNcHJBZG1pbkdldFBEQ1NlcnZlcg0KK01wckFkbWluSW50ZXJmYWNlQ29ubmVjdA0KK01wckFkbWluSW50ZXJmYWNlQ3JlYXRlDQorTXByQWRtaW5JbnRlcmZhY2VEZWxldGUNCitNcHJBZG1pbkludGVyZmFjZURldmljZUdldEluZm8NCitNcHJBZG1pbkludGVyZmFjZURldmljZVNldEluZm8NCitNcHJBZG1pbkludGVyZmFjZURpc2Nvbm5lY3QNCitNcHJBZG1pbkludGVyZmFjZUVudW0NCitNcHJBZG1pbkludGVyZmFjZUdldENyZWRlbnRpYWxzDQorTXByQWRtaW5JbnRlcmZhY2VHZXRDcmVkZW50aWFsc0V4DQorTXByQWRtaW5JbnRlcmZhY2VHZXRIYW5kbGUNCitNcHJBZG1pbkludGVyZmFjZUdldEluZm8NCitNcHJBZG1pbkludGVyZmFjZVF1ZXJ5VXBkYXRlUmVzdWx0DQorTXByQWRtaW5JbnRlcmZhY2VTZXRDcmVkZW50aWFscw0KK01wckFkbWluSW50ZXJmYWNlU2V0Q3JlZGVudGlhbHNFeA0KK01wckFkbWluSW50ZXJmYWNlU2V0SW5mbw0KK01wckFkbWluSW50ZXJmYWNlVHJhbnNwb3J0QWRkDQorTXByQWRtaW5JbnRlcmZhY2VUcmFuc3BvcnRHZXRJbmZvDQorTXByQWRtaW5JbnRlcmZhY2VUcmFuc3BvcnRSZW1vdmUNCitNcHJBZG1pbkludGVyZmFjZVRyYW5zcG9ydFNldEluZm8NCitNcHJBZG1pbkludGVyZmFjZVVwZGF0ZVBob25lYm9va0luZm8NCitNcHJBZG1pbkludGVyZmFjZVVwZGF0ZVJvdXRlcw0KK01wckFkbWluSXNEb21haW5SYXNTZXJ2ZXINCitNcHJBZG1pbklzU2VydmljZVJ1bm5pbmcNCitNcHJBZG1pbk1JQkJ1ZmZlckZyZWUNCitNcHJBZG1pbk1JQkVudHJ5Q3JlYXRlDQorTXByQWRtaW5NSUJFbnRyeURlbGV0ZQ0KK01wckFkbWluTUlCRW50cnlHZXQNCitNcHJBZG1pbk1JQkVudHJ5R2V0Rmlyc3QNCitNcHJBZG1pbk1JQkVudHJ5R2V0TmV4dA0KK01wckFkbWluTUlCRW50cnlTZXQNCitNcHJBZG1pbk1JQlNlcnZlckNvbm5lY3QNCitNcHJBZG1pbk1JQlNlcnZlckRpc2Nvbm5lY3QNCitNcHJBZG1pblBvcnRDbGVhclN0YXRzDQorTXByQWRtaW5Qb3J0RGlzY29ubmVjdA0KK01wckFkbWluUG9ydEVudW0NCitNcHJBZG1pblBvcnRHZXRJbmZvDQorTXByQWRtaW5Qb3J0UmVzZXQNCitNcHJBZG1pblJlZ2lzdGVyQ29ubmVjdGlvbk5vdGlmaWNhdGlvbg0KK01wckFkbWluU2VuZFVzZXJNZXNzYWdlDQorTXByQWRtaW5TZXJ2ZXJDb25uZWN0DQorTXByQWRtaW5TZXJ2ZXJEaXNjb25uZWN0DQorTXByQWRtaW5TZXJ2ZXJHZXRDcmVkZW50aWFscw0KK01wckFkbWluU2VydmVyR2V0SW5mbw0KK01wckFkbWluU2VydmVyU2V0Q3JlZGVudGlhbHMNCitNcHJBZG1pblNlcnZlclNldEluZm8NCitNcHJBZG1pblRyYW5zcG9ydENyZWF0ZQ0KK01wckFkbWluVHJhbnNwb3J0R2V0SW5mbw0KK01wckFkbWluVHJhbnNwb3J0U2V0SW5mbw0KK01wckFkbWluVXBncmFkZVVzZXJzDQorTXByQWRtaW5Vc2VyQ2xvc2UNCitNcHJBZG1pblVzZXJHZXRJbmZvDQorTXByQWRtaW5Vc2VyT3Blbg0KK01wckFkbWluVXNlclJlYWQNCitNcHJBZG1pblVzZXJSZWFkUHJvZkZsYWdzDQorTXByQWRtaW5Vc2VyU2VydmVyQ29ubmVjdA0KK01wckFkbWluVXNlclNlcnZlckRpc2Nvbm5lY3QNCitNcHJBZG1pblVzZXJTZXRJbmZvDQorTXByQWRtaW5Vc2VyV3JpdGUNCitNcHJBZG1pblVzZXJXcml0ZVByb2ZGbGFncw0KK01wckNvbmZpZ0J1ZmZlckZyZWUNCitNcHJDb25maWdHZXRGcmllbmRseU5hbWUNCitNcHJDb25maWdHZXRHdWlkTmFtZQ0KK01wckNvbmZpZ0ludGVyZmFjZUNyZWF0ZQ0KK01wckNvbmZpZ0ludGVyZmFjZURlbGV0ZQ0KK01wckNvbmZpZ0ludGVyZmFjZUVudW0NCitNcHJDb25maWdJbnRlcmZhY2VHZXRIYW5kbGUNCitNcHJDb25maWdJbnRlcmZhY2VHZXRJbmZvDQorTXByQ29uZmlnSW50ZXJmYWNlU2V0SW5mbw0KK01wckNvbmZpZ0ludGVyZmFjZVRyYW5zcG9ydEFkZA0KK01wckNvbmZpZ0ludGVyZmFjZVRyYW5zcG9ydEVudW0NCitNcHJDb25maWdJbnRlcmZhY2VUcmFuc3BvcnRHZXRIYW5kbGUNCitNcHJDb25maWdJbnRlcmZhY2VUcmFuc3BvcnRHZXRJbmZvDQorTXByQ29uZmlnSW50ZXJmYWNlVHJhbnNwb3J0UmVtb3ZlDQorTXByQ29uZmlnSW50ZXJmYWNlVHJhbnNwb3J0U2V0SW5mbw0KK01wckNvbmZpZ1NlcnZlckJhY2t1cA0KK01wckNvbmZpZ1NlcnZlckNvbm5lY3QNCitNcHJDb25maWdTZXJ2ZXJEaXNjb25uZWN0DQorTXByQ29uZmlnU2VydmVyR2V0SW5mbw0KK01wckNvbmZpZ1NlcnZlckluc3RhbGwNCitNcHJDb25maWdTZXJ2ZXJSZWZyZXNoDQorTXByQ29uZmlnU2VydmVyUmVzdG9yZQ0KK01wckNvbmZpZ1NlcnZlclNldEluZm8NCitNcHJDb25maWdUcmFuc3BvcnRDcmVhdGUNCitNcHJDb25maWdUcmFuc3BvcnREZWxldGUNCitNcHJDb25maWdUcmFuc3BvcnRFbnVtDQorTXByQ29uZmlnVHJhbnNwb3J0R2V0SGFuZGxlDQorTXByQ29uZmlnVHJhbnNwb3J0R2V0SW5mbw0KK01wckNvbmZpZ1RyYW5zcG9ydFNldEluZm8NCitNcHJEb21haW5RdWVyeUFjY2Vzcw0KK01wckRvbWFpblF1ZXJ5UmFzU2VydmVyDQorTXByRG9tYWluUmVnaXN0ZXJSYXNTZXJ2ZXINCitNcHJEb21haW5TZXRBY2Nlc3MNCitNcHJHZXRVc3JQYXJhbXMNCitNcHJJbmZvQmxvY2tBZGQNCitNcHJJbmZvQmxvY2tGaW5kDQorTXBySW5mb0Jsb2NrUXVlcnlTaXplDQorTXBySW5mb0Jsb2NrUmVtb3ZlDQorTXBySW5mb0Jsb2NrU2V0DQorTXBySW5mb0NyZWF0ZQ0KK01wckluZm9EZWxldGUNCitNcHJJbmZvRHVwbGljYXRlDQorTXBySW5mb1JlbW92ZUFsbA0KK01wclBvcnRTZXRVc2FnZQ0KK1Jhc0FkbWluQnVmZmVyRnJlZQ0KK1Jhc0FkbWluQ29ubmVjdGlvbkNsZWFyU3RhdHMNCitSYXNBZG1pbkNvbm5lY3Rpb25FbnVtDQorUmFzQWRtaW5Db25uZWN0aW9uR2V0SW5mbw0KK1Jhc0FkbWluR2V0RXJyb3JTdHJpbmcNCitSYXNBZG1pbkdldFBEQ1NlcnZlcg0KK1Jhc0FkbWluSXNTZXJ2aWNlUnVubmluZw0KK1Jhc0FkbWluUG9ydENsZWFyU3RhdHMNCitSYXNBZG1pblBvcnREaXNjb25uZWN0DQorUmFzQWRtaW5Qb3J0RW51bQ0KK1Jhc0FkbWluUG9ydEdldEluZm8NCitSYXNBZG1pblBvcnRSZXNldA0KK1Jhc0FkbWluU2VydmVyQ29ubmVjdA0KK1Jhc0FkbWluU2VydmVyRGlzY29ubmVjdA0KK1Jhc0FkbWluVXNlckdldEluZm8NCitSYXNBZG1pblVzZXJTZXRJbmZvDQorUmFzUHJpdmlsZWdlQW5kQ2FsbEJhY2tOdW1iZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXByZGRtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtcHJkZG0uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNmNzAyM2EKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXByZGRtLmRlZgpAQCAtMCwwICsxLDQ3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1QUkRETS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVBSRERNLmRsbA0KK0VYUE9SVFMNCitERE1BZG1pbkNvbm5lY3Rpb25DbGVhclN0YXRzDQorRERNQWRtaW5Db25uZWN0aW9uRW51bQ0KK0RETUFkbWluQ29ubmVjdGlvbkdldEluZm8NCitERE1BZG1pbkludGVyZmFjZUNvbm5lY3QNCitERE1BZG1pbkludGVyZmFjZURpc2Nvbm5lY3QNCitERE1BZG1pblBvcnRDbGVhclN0YXRzDQorRERNQWRtaW5Qb3J0RGlzY29ubmVjdA0KK0RETUFkbWluUG9ydEVudW0NCitERE1BZG1pblBvcnRHZXRJbmZvDQorRERNQWRtaW5Qb3J0UmVzZXQNCitERE1BZG1pblJlbW92ZVF1YXJhbnRpbmUNCitERE1BZG1pblNlcnZlckdldEluZm8NCitERE1BZG1pblNlcnZlclNldEluZm8NCitERE1Db25uZWN0SW50ZXJmYWNlDQorRERNRGlzY29ubmVjdEludGVyZmFjZQ0KK0RETUdldElkZW50aXR5QXR0cmlidXRlcw0KK0RETVBvc3RDbGVhbnVwDQorRERNUmVnaXN0ZXJDb25uZWN0aW9uTm90aWZpY2F0aW9uDQorRERNU2VuZFVzZXJNZXNzYWdlDQorRERNU2VydmljZUluaXRpYWxpemUNCitERE1TZXJ2aWNlUG9zdExpc3RlbnMNCitERE1UcmFuc3BvcnRDcmVhdGUNCitJZk9iamVjdEZyZWVQaG9uZWJvb2tDb250ZXh0DQorSWZPYmplY3RJbml0aWF0ZVBlcnNpc3RlbnRDb25uZWN0aW9ucw0KK0lmT2JqZWN0TG9hZFBob25lYm9va0luZm8NCitJZk9iamVjdE5vdGlmeU9mUmVhY2hhYmlsaXR5Q2hhbmdlDQorSWZPYmplY3RTZXREaWFsb3V0SG91cnNSZXN0cmljdGlvbg0KK1Jhc0FjY3RDb25maWdDaGFuZ2VOb3RpZmljYXRpb24NCitSYXNBY2N0UHJvdmlkZXJGcmVlQXR0cmlidXRlcw0KK1Jhc0FjY3RQcm92aWRlckluaXRpYWxpemUNCitSYXNBY2N0UHJvdmlkZXJJbnRlcmltQWNjb3VudGluZw0KK1Jhc0FjY3RQcm92aWRlclN0YXJ0QWNjb3VudGluZw0KK1Jhc0FjY3RQcm92aWRlclN0b3BBY2NvdW50aW5nDQorUmFzQWNjdFByb3ZpZGVyVGVybWluYXRlDQorUmFzQXV0aENvbmZpZ0NoYW5nZU5vdGlmaWNhdGlvbg0KK1Jhc0F1dGhQcm92aWRlckF1dGhlbnRpY2F0ZVVzZXINCitSYXNBdXRoUHJvdmlkZXJGcmVlQXR0cmlidXRlcw0KK1Jhc0F1dGhQcm92aWRlckluaXRpYWxpemUNCitSYXNBdXRoUHJvdmlkZXJUZXJtaW5hdGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXByZGltLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtcHJkaW0uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI5MjY1MDkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXByZGltLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXByZGltLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtcHJkaW0uZGxsDQorRVhQT1JUUw0KK1NlcnZpY2VNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21wcm1zZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXBybXNnLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNjEyMTgzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21wcm1zZy5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFJPVVRFTVNHLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBST1VURU1TRy5kbGwNCitFWFBPUlRTDQorR2V0RXZlbnRJZHMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXBydWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21wcnVpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MzYyMzRmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21wcnVpLmRlZgpAQCAtMCwwICsxLDIxIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1QUlVJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNUFJVSS5kbGwNCitFWFBPUlRTDQorQnJvd3NlRGlhbG9nQTANCitNUFJVSV9Eb1Bhc3N3b3JkRGlhbG9nDQorTVBSVUlfRG9Qcm9maWxlRXJyb3JEaWFsb2cNCitNUFJVSV9TaG93UmVjb25uZWN0RGlhbG9nDQorTVBSVUlfV05ldENsZWFyQ29ubmVjdGlvbnMNCitNUFJVSV9XTmV0Q29ubmVjdGlvbkRpYWxvZzFBDQorTVBSVUlfV05ldENvbm5lY3Rpb25EaWFsb2cxVw0KK01QUlVJX1dOZXRDb25uZWN0aW9uRGlhbG9nDQorTVBSVUlfV05ldERpc2Nvbm5lY3REaWFsb2cxQQ0KK01QUlVJX1dOZXREaXNjb25uZWN0RGlhbG9nMVcNCitNUFJVSV9XTmV0RGlzY29ubmVjdERpYWxvZw0KK1dOZXRCcm93c2VEaWFsb2cNCitXTmV0QnJvd3NlUHJpbnRlckRpYWxvZw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtcHNoZWxsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtcHNoZWxsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZmIxYTMwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21wc2hlbGwuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgd21wc2hlbGwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHdtcHNoZWxsLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtcHZpcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXB2aXMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUwMjRkNGEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXB2aXMuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgVG9sZXJhbmNlLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBUb2xlcmFuY2UuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsTWFpbg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtcWFkLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtcWFkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMzNjYTUwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21xYWQuZGVmCkBAIC0wLDAgKzEsNDIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXFhZC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXFhZC5kbGwNCitFWFBPUlRTDQorTVFBREJlZ2luRGVsZXRlTm90aWZpY2F0aW9uDQorTVFBRENyZWF0ZU9iamVjdA0KK01RQUREZWxldGVPYmplY3QNCitNUUFERGVsZXRlT2JqZWN0R3VpZA0KK01RQUREZWxldGVPYmplY3RHdWlkU2lkDQorTVFBREVuZERlbGV0ZU5vdGlmaWNhdGlvbg0KK01RQURFbmRRdWVyeQ0KK01RQURGcmVlTWVtb3J5DQorTVFBREdldEFEc1BhdGhJbmZvDQorTVFBREdldENvbXB1dGVyU2l0ZXMNCitNUUFER2V0Q29tcHV0ZXJWZXJzaW9uDQorTVFBREdldEdlbk9iamVjdFByb3BlcnRpZXMNCitNUUFER2V0T2JqZWN0UHJvcGVydGllcw0KK01RQURHZXRPYmplY3RQcm9wZXJ0aWVzR3VpZA0KK01RQURHZXRPYmplY3RTZWN1cml0eQ0KK01RQURHZXRPYmplY3RTZWN1cml0eUd1aWQNCitNUUFESW5pdA0KK01RQUROb3RpZnlEZWxldGUNCitNUUFEUU1HZXRPYmplY3RTZWN1cml0eQ0KK01RQURRdWVyeUFsbExpbmtzDQorTVFBRFF1ZXJ5QWxsU2l0ZXMNCitNUUFEUXVlcnlDb25uZWN0b3JzDQorTVFBRFF1ZXJ5Rm9yZWlnblNpdGVzDQorTVFBRFF1ZXJ5TGlua3MNCitNUUFEUXVlcnlNYWNoaW5lUXVldWVzDQorTVFBRFF1ZXJ5TlQ0TVFJU1NlcnZlcnMNCitNUUFEUXVlcnlRdWV1ZXMNCitNUUFEUXVlcnlSZXN1bHRzDQorTVFBRFF1ZXJ5U2l0ZVNlcnZlcnMNCitNUUFEUXVlcnlVc2VyQ2VydA0KK01RQURTZXRPYmplY3RQcm9wZXJ0aWVzDQorTVFBRFNldE9iamVjdFByb3BlcnRpZXNHdWlkDQorTVFBRFNldE9iamVjdFNlY3VyaXR5DQorTVFBRFNldE9iamVjdFNlY3VyaXR5R3VpZA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtcWRzY2xpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtcWRzY2xpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZDcxNTFlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21xZHNjbGkuZGVmCkBAIC0wLDAgKzEsMzQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXFkc2NsaS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXFkc2NsaS5kbGwNCitFWFBPUlRTDQorRFNCZWdpbkRlbGV0ZU5vdGlmaWNhdGlvbg0KK0RTQ2xpZW50SW5pdA0KK0RTQ3JlYXRlT2JqZWN0DQorRFNDcmVhdGVTZXJ2ZXJzQ2FjaGUNCitEU0RlbGV0ZU9iamVjdA0KK0RTRGVsZXRlT2JqZWN0R3VpZA0KK0RTRW5kRGVsZXRlTm90aWZpY2F0aW9uDQorRFNGcmVlTWVtb3J5DQorRFNHZXRDb21wdXRlclNpdGVzDQorRFNHZXRPYmplY3RQcm9wZXJ0aWVzDQorRFNHZXRPYmplY3RQcm9wZXJ0aWVzRXgNCitEU0dldE9iamVjdFByb3BlcnRpZXNHdWlkDQorRFNHZXRPYmplY3RQcm9wZXJ0aWVzR3VpZEV4DQorRFNHZXRPYmplY3RTZWN1cml0eQ0KK0RTR2V0T2JqZWN0U2VjdXJpdHlHdWlkDQorRFNHZXRVc2VyUGFyYW1zDQorRFNMb29rdXBCZWdpbg0KK0RTTG9va3VwRW5kDQorRFNMb29rdXBOZXh0DQorRFNOb3RpZnlEZWxldGUNCitEU1FNR2V0T2JqZWN0U2VjdXJpdHkNCitEU1NldE9iamVjdFByb3BlcnRpZXMNCitEU1NldE9iamVjdFByb3BlcnRpZXNHdWlkDQorRFNTZXRPYmplY3RTZWN1cml0eQ0KK0RTU2V0T2JqZWN0U2VjdXJpdHlHdWlkDQorRFNUZXJtaW5hdGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXFvYS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXFvYS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjk3MzUzNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtcW9hLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1xb2EuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1xb2EuZGxsDQorRVhQT1JUUw0KK0RMTEdldERvY3VtZW50YXRpb24NCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtcXBlcmYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21xcGVyZi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODQzNGY4OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtcXBlcmYuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVFQRVJGLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNUVBFUkYuZGxsDQorRVhQT1JUUw0KK1BlcmZDbG9zZQ0KK1BlcmZDb2xsZWN0DQorUGVyZk9wZW4NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXFydC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXFydC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWVjYjQzNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtcXJ0LmRlZgpAQCAtMCwwICsxLDU0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1xcnQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1xcnQuZGxsDQorRVhQT1JUUw0KK01RTG9nSFINCitEbGxSZWdpc3RlclNlcnZlcg0KK01RQURzUGF0aFRvRm9ybWF0TmFtZQ0KK01RQWxsb2NhdGVNZW1vcnkNCitNUUJlZ2luVHJhbnNhY3Rpb24NCitNUUNsb3NlQ3Vyc29yDQorTVFDbG9zZVF1ZXVlDQorTVFDcmVhdGVDdXJzb3INCitNUUNyZWF0ZVF1ZXVlDQorTVFEZWxldGVRdWV1ZQ0KK01RRnJlZU1lbW9yeQ0KK01RRnJlZVNlY3VyaXR5Q29udGV4dA0KK01RR2V0TWFjaGluZVByb3BlcnRpZXMNCitNUUdldE92ZXJsYXBwZWRSZXN1bHQNCitNUUdldFByaXZhdGVDb21wdXRlckluZm9ybWF0aW9uDQorTVFHZXRRdWV1ZVByb3BlcnRpZXMNCitNUUdldFF1ZXVlU2VjdXJpdHkNCitNUUdldFNlY3VyaXR5Q29udGV4dA0KK01RR2V0U2VjdXJpdHlDb250ZXh0RXgNCitNUUhhbmRsZVRvRm9ybWF0TmFtZQ0KK01RSW5zdGFuY2VUb0Zvcm1hdE5hbWUNCitNUUxvY2F0ZUJlZ2luDQorTVFMb2NhdGVFbmQNCitNUUxvY2F0ZU5leHQNCitNUU1nbXRBY3Rpb24NCitNUU1nbXRHZXRJbmZvDQorTVFPcGVuUXVldWUNCitNUVBhdGhOYW1lVG9Gb3JtYXROYW1lDQorTVFQdXJnZVF1ZXVlDQorTVFSZWNlaXZlTWVzc2FnZQ0KK01RUmVjZWl2ZU1lc3NhZ2VCeUxvb2t1cElkDQorTVFSZWdpc3RlckNlcnRpZmljYXRlDQorTVFTZW5kTWVzc2FnZQ0KK01RU2V0UXVldWVQcm9wZXJ0aWVzDQorTVFTZXRRdWV1ZVNlY3VyaXR5DQorUlRDcmVhdGVJbnRlcm5hbENlcnRpZmljYXRlDQorUlREZWxldGVJbnRlcm5hbENlcnQNCitSVEdldEludGVybmFsQ2VydA0KK1JUR2V0VXNlckNlcnRzDQorUlRJc0RlcGVuZGVudENsaWVudA0KK1JUTG9nT25SZWdpc3RlckNlcnQNCitSVE9wZW5JbnRlcm5hbENlcnRTdG9yZQ0KK1JUUmVnaXN0ZXJVc2VyQ2VydA0KK1JUUmVtb3ZlVXNlckNlcnQNCitSVFJlbW92ZVVzZXJDZXJ0U2lkDQorUlRYYWN0R2V0RFRDDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21xc2VjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtcXNlYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTM3NTI3OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtcXNlYy5kZWYKQEAgLTAsMCArMSwzMjkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXFzZWMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1xc2VjLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ2FuY2VsUnBjOjpDQ2FuY2VsUnBjKGNsYXNzIENDYW5jZWxScGMgY29uc3QgJikNCis/PzBDQ2FuY2VsUnBjQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDYW5jZWxScGM6OkNDYW5jZWxScGModm9pZCkNCis/PzBDQ2FuY2VsUnBjQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ29sdW1uczo6Q0NvbHVtbnMoY2xhc3MgQ0NvbHVtbnMgY29uc3QgJikNCis/PzBDQ29sdW1uc0BAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ29sdW1uczo6Q0NvbHVtbnModW5zaWduZWQgaW50KQ0KKz8/MENDb2x1bW5zQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0RTQmFzZVVwZGF0ZTo6Q0RTQmFzZVVwZGF0ZShjbGFzcyBDRFNCYXNlVXBkYXRlIGNvbnN0ICYpDQorPz8wQ0RTQmFzZVVwZGF0ZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRFNCYXNlVXBkYXRlOjpDRFNCYXNlVXBkYXRlKHZvaWQpDQorPz8wQ0RTQmFzZVVwZGF0ZUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ091dHB1dFJlcG9ydDo6Q091dHB1dFJlcG9ydCh2b2lkKQ0KKz8/MENPdXRwdXRSZXBvcnRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjpDUHJvcGVydHlSZXN0cmljdGlvbihjbGFzcyBDUHJvcGVydHlSZXN0cmljdGlvbiBjb25zdCAmKQ0KKz8/MENQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjpDUHJvcGVydHlSZXN0cmljdGlvbih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgY29uc3QgJixjbGFzcyBDTVFWYXJpYW50IGNvbnN0ICYpDQorPz8wQ1Byb3BlcnR5UmVzdHJpY3Rpb25AQFFBRUBLQUJLQUJWQ01RVmFyaWFudEBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUHJvcGVydHlSZXN0cmljdGlvbjo6Q1Byb3BlcnR5UmVzdHJpY3Rpb24odm9pZCkNCis/PzBDUHJvcGVydHlSZXN0cmljdGlvbkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1Jlc3RyaWN0aW9uOjpDUmVzdHJpY3Rpb24oY2xhc3MgQ1Jlc3RyaWN0aW9uIGNvbnN0ICYpDQorPz8wQ1Jlc3RyaWN0aW9uQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENSZXN0cmljdGlvbjo6Q1Jlc3RyaWN0aW9uKHVuc2lnbmVkIGludCkNCis/PzBDUmVzdHJpY3Rpb25AQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU29ydDo6Q1NvcnQoY2xhc3MgQ1NvcnQgY29uc3QgJikNCis/PzBDU29ydEBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU29ydDo6Q1NvcnQodW5zaWduZWQgaW50KQ0KKz8/MENTb3J0QEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1NvcnRLZXk6OkNTb3J0S2V5KHVuc2lnbmVkIGxvbmcgY29uc3QgJix1bnNpZ25lZCBsb25nKQ0KKz8/MENTb3J0S2V5QEBRQUVAQUJLS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1NvcnRLZXk6OkNTb3J0S2V5KHZvaWQpDQorPz8wQ1NvcnRLZXlAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDYW5jZWxScGM6On5DQ2FuY2VsUnBjKHZvaWQpDQorPz8xQ0NhbmNlbFJwY0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NvbHVtbnM6On5DQ29sdW1ucyh2b2lkKQ0KKz8/MUNDb2x1bW5zQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRFNCYXNlVXBkYXRlOjp+Q0RTQmFzZVVwZGF0ZSh2b2lkKQ0KKz8/MUNEU0Jhc2VVcGRhdGVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENPdXRwdXRSZXBvcnQ6On5DT3V0cHV0UmVwb3J0KHZvaWQpDQorPz8xQ091dHB1dFJlcG9ydEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1Byb3BlcnR5UmVzdHJpY3Rpb246On5DUHJvcGVydHlSZXN0cmljdGlvbih2b2lkKQ0KKz8/MUNQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUmVzdHJpY3Rpb246On5DUmVzdHJpY3Rpb24odm9pZCkNCis/PzFDUmVzdHJpY3Rpb25AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTb3J0Ojp+Q1NvcnQodm9pZCkNCis/PzFDU29ydEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1NvcnRLZXk6On5DU29ydEtleSh2b2lkKQ0KKz8/MUNTb3J0S2V5QEBRQUVAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0NhbmNlbFJwYyAmIF9fdGhpc2NhbGwgQ0NhbmNlbFJwYzo6b3BlcmF0b3I9KGNsYXNzIENDYW5jZWxScGMgY29uc3QgJikNCis/PzRDQ2FuY2VsUnBjQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0RTQmFzZVVwZGF0ZSAmIF9fdGhpc2NhbGwgQ0RTQmFzZVVwZGF0ZTo6b3BlcmF0b3I9KGNsYXNzIENEU0Jhc2VVcGRhdGUgY29uc3QgJikNCis/PzRDRFNCYXNlVXBkYXRlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ091dHB1dFJlcG9ydCAmIF9fdGhpc2NhbGwgQ091dHB1dFJlcG9ydDo6b3BlcmF0b3I9KGNsYXNzIENPdXRwdXRSZXBvcnQgY29uc3QgJikNCis/PzRDT3V0cHV0UmVwb3J0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1Byb3BlcnR5UmVzdHJpY3Rpb24gJiBfX3RoaXNjYWxsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjpvcGVyYXRvcj0oY2xhc3MgQ1Byb3BlcnR5UmVzdHJpY3Rpb24gY29uc3QgJikNCis/PzRDUHJvcGVydHlSZXN0cmljdGlvbkBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENSZXN0cmljdGlvbiAmIF9fdGhpc2NhbGwgQ1Jlc3RyaWN0aW9uOjpvcGVyYXRvcj0oY2xhc3MgQ1Jlc3RyaWN0aW9uIGNvbnN0ICYpDQorPz80Q1Jlc3RyaWN0aW9uQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1NvcnRLZXkgJiBfX3RoaXNjYWxsIENTb3J0S2V5OjpvcGVyYXRvcj0oY2xhc3MgQ1NvcnRLZXkgY29uc3QgJikNCis/PzRDU29ydEtleUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ29sdW1uczo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GQ0NvbHVtbnNAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Jlc3RyaWN0aW9uOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZDUmVzdHJpY3Rpb25AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NvcnQ6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRkNTb3J0QEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDYW5jZWxScGM6OkFkZCh2b2lkICosbG9uZykNCis/QWRkQENDYW5jZWxScGNAQFFBRVhQQVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDb2x1bW5zOjpBZGQodW5zaWduZWQgbG9uZyBjb25zdCAmKQ0KKz9BZGRAQ0NvbHVtbnNAQFFBRVhBQktAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NvcnQ6OkFkZCh1bnNpZ25lZCBsb25nIGNvbnN0ICYsdW5zaWduZWQgbG9uZykNCis/QWRkQENTb3J0QEBRQUVYQUJLS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU29ydDo6QWRkKGNsYXNzIENTb3J0S2V5IGNvbnN0ICYpDQorP0FkZEBDU29ydEBAUUFFWEFCVkNTb3J0S2V5QEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Jlc3RyaWN0aW9uOjpBZGRDaGlsZChjbGFzcyBDUHJvcGVydHlSZXN0cmljdGlvbiBjb25zdCAmKQ0KKz9BZGRDaGlsZEBDUmVzdHJpY3Rpb25AQFFBRVhBQlZDUHJvcGVydHlSZXN0cmljdGlvbkBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZXN0cmljdGlvbjo6QWRkUmVzdHJpY3Rpb24oc3RydWN0IHRhZ0JMT0IgJix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0FkZFJlc3RyaWN0aW9uQENSZXN0cmljdGlvbkBAUUFFWEFBVXRhZ0JMT0JAQEtLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZXN0cmljdGlvbjo6QWRkUmVzdHJpY3Rpb24oY2xhc3MgQ01RVmFyaWFudCBjb25zdCAmLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/QWRkUmVzdHJpY3Rpb25AQ1Jlc3RyaWN0aW9uQEBRQUVYQUJWQ01RVmFyaWFudEBAS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Jlc3RyaWN0aW9uOjpBZGRSZXN0cmljdGlvbih1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/QWRkUmVzdHJpY3Rpb25AQ1Jlc3RyaWN0aW9uQEBRQUVYRUtLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZXN0cmljdGlvbjo6QWRkUmVzdHJpY3Rpb24oc2hvcnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9BZGRSZXN0cmljdGlvbkBDUmVzdHJpY3Rpb25AQFFBRVhGS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Jlc3RyaWN0aW9uOjpBZGRSZXN0cmljdGlvbihsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/QWRkUmVzdHJpY3Rpb25AQ1Jlc3RyaWN0aW9uQEBRQUVYSktLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZXN0cmljdGlvbjo6QWRkUmVzdHJpY3Rpb24odW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0FkZFJlc3RyaWN0aW9uQENSZXN0cmljdGlvbkBAUUFFWEtLS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVzdHJpY3Rpb246OkFkZFJlc3RyaWN0aW9uKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9BZGRSZXN0cmljdGlvbkBDUmVzdHJpY3Rpb25AQFFBRVhQQUdLS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVzdHJpY3Rpb246OkFkZFJlc3RyaWN0aW9uKHN0cnVjdCBfR1VJRCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/QWRkUmVzdHJpY3Rpb25AQ1Jlc3RyaWN0aW9uQEBRQUVYUEFVX0dVSURAQEtLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZXN0cmljdGlvbjo6QWRkUmVzdHJpY3Rpb24oc3RydWN0IHRhZ0NBQ0xTSUQgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0FkZFJlc3RyaWN0aW9uQENSZXN0cmljdGlvbkBAUUFFWFBBVXRhZ0NBQ0xTSURAQEtLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZXN0cmljdGlvbjo6QWRkUmVzdHJpY3Rpb24oc3RydWN0IHRhZ0NBTFBXU1RSICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9BZGRSZXN0cmljdGlvbkBDUmVzdHJpY3Rpb25AQFFBRVhQQVV0YWdDQUxQV1NUUkBAS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NhbmNlbFJwYzo6Q2FuY2VsUmVxdWVzdHMobG9uZykNCis/Q2FuY2VsUmVxdWVzdHNAQ0NhbmNlbFJwY0BAUUFFWEpAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENDYW5jZWxScGM6OkNhbmNlbFRocmVhZCh2b2lkICopDQorP0NhbmNlbFRocmVhZEBDQ2FuY2VsUnBjQEBDR0tQQVhAWg0KKzsgcHVibGljOiBzdHJ1Y3QgdGFnTVFDT0xVTU5TRVQgKiBfX3RoaXNjYWxsIENDb2x1bW5zOjpDYXN0VG9TdHJ1Y3Qodm9pZCkNCis/Q2FzdFRvU3RydWN0QENDb2x1bW5zQEBRQUVQQVV0YWdNUUNPTFVNTlNFVEBAWFoNCis7IHB1YmxpYzogc3RydWN0IHRhZ01RUkVTVFJJQ1RJT04gKiBfX3RoaXNjYWxsIENSZXN0cmljdGlvbjo6Q2FzdFRvU3RydWN0KHZvaWQpDQorP0Nhc3RUb1N0cnVjdEBDUmVzdHJpY3Rpb25AQFFBRVBBVXRhZ01RUkVTVFJJQ1RJT05AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCB0YWdNUVNPUlRTRVQgKiBfX3RoaXNjYWxsIENTb3J0OjpDYXN0VG9TdHJ1Y3Qodm9pZCkNCis/Q2FzdFRvU3RydWN0QENTb3J0QEBRQUVQQVV0YWdNUVNPUlRTRVRAQFhaDQorOyB2b2lkIF9fc3RkY2FsbCBDb21wb3NlUlBDRW5kUG9pbnROYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCAqICopDQorP0NvbXBvc2VSUENFbmRQb2ludE5hbWVAQFlHWFBCRzBQQVBBR0BaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgQ0RTQmFzZVVwZGF0ZTo6Q29weVByb3BlcnR5KHN0cnVjdCB0YWdQUk9QVkFSSUFOVCAmLHN0cnVjdCB0YWdQUk9QVkFSSUFOVCAqKQ0KKz9Db3B5UHJvcGVydHlAQ0RTQmFzZVVwZGF0ZUBAQUFFSkFBVXRhZ1BST1BWQVJJQU5UQEBQQVUyQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIENDb2x1bW5zOjpDb3VudCh2b2lkKWNvbnN0IA0KKz9Db3VudEBDQ29sdW1uc0BAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIENSZXN0cmljdGlvbjo6Q291bnQodm9pZCljb25zdCANCis/Q291bnRAQ1Jlc3RyaWN0aW9uQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgQ1NvcnQ6OkNvdW50KHZvaWQpY29uc3QgDQorP0NvdW50QENTb3J0QEBRQkVJWFoNCis7IGxvbmcgX19zdGRjYWxsIERlbGV0ZUZhbGNvbktleVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0RlbGV0ZUZhbGNvbktleVZhbHVlQEBZR0pQQkdAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENEU0Jhc2VVcGRhdGU6OkRlbGV0ZVByb3BlcnR5KHN0cnVjdCB0YWdQUk9QVkFSSUFOVCAmKQ0KKz9EZWxldGVQcm9wZXJ0eUBDRFNCYXNlVXBkYXRlQEBBQUVYQUFVdGFnUFJPUFZBUklBTlRAQEBaDQorRnJlZUNvbnRleHRIYW5kbGUNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAmIF9fdGhpc2NhbGwgQ0NvbHVtbnM6OkdldCh1bnNpZ25lZCBpbnQpY29uc3QgDQorP0dldEBDQ29sdW1uc0BAUUJFQUJLSUBaDQorOyBwdWJsaWM6IGNsYXNzIENTb3J0S2V5IGNvbnN0ICYgX190aGlzY2FsbCBDU29ydDo6R2V0KHVuc2lnbmVkIGludCljb25zdCANCis/R2V0QENTb3J0QEBRQkVBQlZDU29ydEtleUBASUBaDQorOyBwdWJsaWM6IGNsYXNzIENQcm9wZXJ0eVJlc3RyaWN0aW9uIGNvbnN0ICYgX190aGlzY2FsbCBDUmVzdHJpY3Rpb246OkdldENoaWxkKHVuc2lnbmVkIGludCljb25zdCANCis/R2V0Q2hpbGRAQ1Jlc3RyaWN0aW9uQEBRQkVBQlZDUHJvcGVydHlSZXN0cmljdGlvbkBASUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBDRFNCYXNlVXBkYXRlOjpHZXRDb21tYW5kKHZvaWQpDQorP0dldENvbW1hbmRAQ0RTQmFzZVVwZGF0ZUBAUUFFRVhaDQorOyBsb25nIF9fc3RkY2FsbCBHZXRDb21wdXRlckRuc05hbWVJbnRlcm5hbCh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGxvbmcgKikNCis/R2V0Q29tcHV0ZXJEbnNOYW1lSW50ZXJuYWxAQFlHSlBBR1BBS0BaDQorOyBsb25nIF9fc3RkY2FsbCBHZXRDb21wdXRlck5hbWVJbnRlcm5hbCh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGxvbmcgKikNCis/R2V0Q29tcHV0ZXJOYW1lSW50ZXJuYWxAQFlHSlBBR1BBS0BaDQorR2V0RG9tYWluRlFETk5hbWUNCis7IGxvbmcgX19zdGRjYWxsIEdldEZhbGNvbktleSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHN0cnVjdCBIS0VZX18gKiAqKQ0KKz9HZXRGYWxjb25LZXlAQFlHSlBCR1BBUEFVSEtFWV9fQEBAWg0KK0dldEZhbGNvbktleVZhbHVlDQorOyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBHZXRGYWxjb25TZWN0aW9uTmFtZSh2b2lkKQ0KKz9HZXRGYWxjb25TZWN0aW9uTmFtZUBAWUdQQkdYWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgR2V0RmFsY29uU2VydmljZU5hbWUodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBsb25nKQ0KKz9HZXRGYWxjb25TZXJ2aWNlTmFtZUBAWUdLUEFHS0BaDQorOyBwdWJsaWM6IHN0cnVjdCBfR1VJRCAqIF9fdGhpc2NhbGwgQ0RTQmFzZVVwZGF0ZTo6R2V0R3VpZElkZW50aWZpZXIodm9pZCkNCis/R2V0R3VpZElkZW50aWZpZXJAQ0RTQmFzZVVwZGF0ZUBAUUFFUEFVX0dVSURAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfR1VJRCBjb25zdCAqIF9fdGhpc2NhbGwgQ0RTQmFzZVVwZGF0ZTo6R2V0TWFzdGVySWQodm9pZCkNCis/R2V0TWFzdGVySWRAQ0RTQmFzZVVwZGF0ZUBAUUFFUEJVX0dVSURAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDRFNCYXNlVXBkYXRlOjpHZXRPYmplY3RUeXBlKHZvaWQpDQorP0dldE9iamVjdFR5cGVAQ0RTQmFzZVVwZGF0ZUBAUUFFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDU29ydEtleTo6R2V0T3JkZXIodm9pZCljb25zdCANCis/R2V0T3JkZXJAQ1NvcnRLZXlAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ0RTQmFzZVVwZGF0ZTo6R2V0UGF0aE5hbWUodm9pZCkNCis/R2V0UGF0aE5hbWVAQ0RTQmFzZVVwZGF0ZUBAUUFFUEFHWFoNCis7IHB1YmxpYzogY2xhc3MgQ1NlcU51bSBjb25zdCAmIF9fdGhpc2NhbGwgQ0RTQmFzZVVwZGF0ZTo6R2V0UHJldlNlcU51bSh2b2lkKWNvbnN0IA0KKz9HZXRQcmV2U2VxTnVtQENEU0Jhc2VVcGRhdGVAQFFCRUFCVkNTZXFOdW1AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgY29uc3QgJiBfX3RoaXNjYWxsIENTb3J0S2V5OjpHZXRQcm9wZXJ0eSh2b2lkKWNvbnN0IA0KKz9HZXRQcm9wZXJ0eUBDU29ydEtleUBAUUJFQUJLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyAqIF9fdGhpc2NhbGwgQ0RTQmFzZVVwZGF0ZTo6R2V0UHJvcHModm9pZCkNCis/R2V0UHJvcHNAQ0RTQmFzZVVwZGF0ZUBAUUFFUEFLWFoNCis7IHB1YmxpYzogY2xhc3MgQ1NlcU51bSBjb25zdCAmIF9fdGhpc2NhbGwgQ0RTQmFzZVVwZGF0ZTo6R2V0UHVyZ2VTZXFOdW0odm9pZCljb25zdCANCis/R2V0UHVyZ2VTZXFOdW1AQ0RTQmFzZVVwZGF0ZUBAUUJFQUJWQ1NlcU51bUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ1NlcU51bSBjb25zdCAmIF9fdGhpc2NhbGwgQ0RTQmFzZVVwZGF0ZTo6R2V0U2VxTnVtKHZvaWQpY29uc3QgDQorP0dldFNlcU51bUBDRFNCYXNlVXBkYXRlQEBRQkVBQlZDU2VxTnVtQEBYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0RTQmFzZVVwZGF0ZTo6R2V0U2VyaWFsaXplU2l6ZSh1bnNpZ25lZCBsb25nICopDQorP0dldFNlcmlhbGl6ZVNpemVAQ0RTQmFzZVVwZGF0ZUBAUUFFSlBBS0BaDQorR2V0U2l6ZXMNCis7IGxvbmcgX19zdGRjYWxsIEdldFRoaXNTZXJ2ZXJJcFBvcnQodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBsb25nKQ0KKz9HZXRUaGlzU2VydmVySXBQb3J0QEBZR0pQQUdLQFoNCis7IHB1YmxpYzogc3RydWN0IHRhZ1BST1BWQVJJQU5UICogX190aGlzY2FsbCBDRFNCYXNlVXBkYXRlOjpHZXRWYXJzKHZvaWQpDQorP0dldFZhcnNAQ0RTQmFzZVVwZGF0ZUBAUUFFUEFVdGFnUFJPUFZBUklBTlRAQFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1Jlc3RyaWN0aW9uOjpHcm93KHZvaWQpDQorP0dyb3dAQ1Jlc3RyaWN0aW9uQEBBQUVYWFoNCis7IGxvbmcgX19zdGRjYWxsIEhhc2hNZXNzYWdlUHJvcGVydGllcyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHN0cnVjdCBRVUVVRV9GT1JNQVQgY29uc3QgKixzdHJ1Y3QgUVVFVUVfRk9STUFUIGNvbnN0ICopDQorP0hhc2hNZXNzYWdlUHJvcGVydGllc0BAWUdKS1BCRUtLMEtQQkdLUEJVUVVFVUVfRk9STUFUQEAyQFoNCis7IGxvbmcgX19zdGRjYWxsIEhhc2hQcm9wZXJ0aWVzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICosc3RydWN0IHRhZ1BST1BWQVJJQU5UICopDQorP0hhc2hQcm9wZXJ0aWVzQEBZR0pLS1BBS1BBVXRhZ1BST1BWQVJJQU5UQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NhbmNlbFJwYzo6SW5pdCh2b2lkKQ0KKz9Jbml0QENDYW5jZWxScGNAQFFBRVhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0RTQmFzZVVwZGF0ZTo6SW5pdCh1bnNpZ25lZCBjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZyAqLGludCkNCis/SW5pdEBDRFNCYXNlVXBkYXRlQEBRQUVKUEJFUEFLSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRFNCYXNlVXBkYXRlOjpJbml0KHN0cnVjdCBfR1VJRCBjb25zdCAqLGNsYXNzIENTZXFOdW0gY29uc3QgJixjbGFzcyBDU2VxTnVtIGNvbnN0ICYsY2xhc3MgQ1NlcU51bSBjb25zdCAmLGludCx1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGxvbmcsc3RydWN0IF9HVUlEIGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICosc3RydWN0IHRhZ1BST1BWQVJJQU5UICopDQorP0luaXRAQ0RTQmFzZVVwZGF0ZUBAUUFFSlBCVV9HVUlEQEBBQlZDU2VxTnVtQEAxMUhFSzBLUEFLUEFVdGFnUFJPUFZBUklBTlRAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRFNCYXNlVXBkYXRlOjpJbml0KHN0cnVjdCBfR1VJRCBjb25zdCAqLGNsYXNzIENTZXFOdW0gY29uc3QgJixjbGFzcyBDU2VxTnVtIGNvbnN0ICYsY2xhc3MgQ1NlcU51bSBjb25zdCAmLGludCx1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKixzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgKikNCis/SW5pdEBDRFNCYXNlVXBkYXRlQEBRQUVKUEJVX0dVSURAQEFCVkNTZXFOdW1AQDExSEVLUEFHS1BBS1BBVXRhZ1BST1BWQVJJQU5UQEBAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIENEU0Jhc2VVcGRhdGU6OkluaXRQcm9wZXJ0eSh1bnNpZ25lZCBjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1BST1BWQVJJQU5UICYpDQorP0luaXRQcm9wZXJ0eUBDRFNCYXNlVXBkYXRlQEBBQUVKUEJFUEFLS0FBVXRhZ1BST1BWQVJJQU5UQEBAWg0KKzsgYm9vbCBfX3N0ZGNhbGwgSXNMb2NhbFN5c3RlbUNsdXN0ZXIodm9pZCkNCis/SXNMb2NhbFN5c3RlbUNsdXN0ZXJAQFlHX05YWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ091dHB1dFJlcG9ydDo6S2VlcEVycm9ySGlzdG9yeSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0LGxvbmcpDQorP0tlZXBFcnJvckhpc3RvcnlAQ091dHB1dFJlcG9ydEBAUUFFWFBCR0dKQFoNCitNUVNlYWxCdWZmZXINCitNUVNlY19BY2Nlc3NDaGVjaw0KK01RU2VjX0FjY2Vzc0NoZWNrRm9yU2VsZg0KK01RU2VjX0FjcXVpcmVDcnlwdG9Qcm92aWRlcg0KK01RU2VjX0NhbkdlbmVyYXRlQXVkaXQNCitNUVNlY19Db252ZXJ0U0RUb05UNEZvcm1hdA0KK01RU2VjX0NvbnZlcnRTRFRvTlQ1Rm9ybWF0DQorTVFTZWNfQ29weVNlY3VyaXR5RGVzY3JpcHRvcg0KK01RU2VjX0dldEFkbWluU2lkDQorTVFTZWNfR2V0QW5vbnltb3VzU2lkDQorTVFTZWNfR2V0Q3J5cHRvUHJvdlByb3BlcnR5DQorTVFTZWNfR2V0RGVmYXVsdFNlY0Rlc2NyaXB0b3INCitNUVNlY19HZXRJbXBlcnNvbmF0aW9uT2JqZWN0DQorTVFTZWNfR2V0TG9jYWxNYWNoaW5lU2lkDQorTVFTZWNfR2V0TG9jYWxTeXN0ZW1TaWQNCitNUVNlY19HZXROZXR3b3JrU2VydmljZVNpZA0KK01RU2VjX0dldFByb2Nlc3NTaWQNCitNUVNlY19HZXRQcm9jZXNzVXNlclNpZA0KK01RU2VjX0dldFB1YktleXNGcm9tRFMNCitNUVNlY19HZXRUaHJlYWRVc2VyU2lkDQorTVFTZWNfR2V0VXNlclR5cGUNCitNUVNlY19HZXRXb3JsZFNpZA0KK01RU2VjX0lzQW5vbnltdXNTaWQNCitNUVNlY19Jc0RDDQorTVFTZWNfSXNHdWVzdFNpZA0KK01RU2VjX0lzTmV0d29ya1NlcnZpY2VTaWQNCitNUVNlY19Jc1N5c3RlbVNpZA0KK01RU2VjX0lzVW5BdXRoZW50aWNhdGVkVXNlcg0KK01RU2VjX01ha2VBYnNvbHV0ZVNEDQorTVFTZWNfTWFrZVNlbGZSZWxhdGl2ZQ0KK01RU2VjX01lcmdlU2VjdXJpdHlEZXNjcmlwdG9ycw0KK01RU2VjX1BhY2tQdWJsaWNLZXkNCitNUVNlY19ScGNBdXRobkxldmVsDQorTVFTZWNfU2V0TG9jYWxScGNNdXR1YWxBdXRoDQorTVFTZWNfU2V0UHJpdmlsZWdlSW5UaHJlYWQNCitNUVNlY19TZXRTZWN1cml0eURlc2NyaXB0b3JEYWNsDQorTVFTZWNfU3RvcmVQdWJLZXlzDQorTVFTZWNfU3RvcmVQdWJLZXlzSW5EUw0KK01RU2VjX1RyYWNlVGhyZWFkVG9rZW5JbmZvDQorTVFTZWNfVW5wYWNrUHVibGljS2V5DQorTVFTZWNfVXBkYXRlTG9jYWxNYWNoaW5lU2lkDQorOyBsb25nIF9fc3RkY2FsbCBNUVNldENhQ29uZmlnKHVuc2lnbmVkIGxvbmcsY2xhc3MgTVFfQ0FfQ09ORklHICopDQorP01RU2V0Q2FDb25maWdAQFlHSktQQVZNUV9DQV9DT05GSUdAQEBaDQorTVFTaWdIYXNoTWVzc2FnZVByb3BlcnRpZXMNCitNUVVJbml0R2xvYmFsU2N1cml0eVZhcnMNCitNUXNzcGlfSW5pdFNlcnZlckF1dGhudGljYXRpb24NCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDQ2FuY2VsUnBjOjpQcm9jZXNzRXZlbnRzKHZvaWQpDQorP1Byb2Nlc3NFdmVudHNAQ0NhbmNlbFJwY0BAQUFFWFhaDQorOyB2b2lkIF9fc3RkY2FsbCBQcm9kdWNlUlBDRXJyb3JUcmFjaW5nKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZykNCis/UHJvZHVjZVJQQ0Vycm9yVHJhY2luZ0BAWUdYUEFHS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDUHJvcGVydHlSZXN0cmljdGlvbjo6UmVsYXRpb24odm9pZCkNCis/UmVsYXRpb25AQ1Byb3BlcnR5UmVzdHJpY3Rpb25AQFFBRUtYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NhbmNlbFJwYzo6UmVtb3ZlKHZvaWQgKikNCis/UmVtb3ZlQENDYW5jZWxScGNAQFFBRVhQQVhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NvbHVtbnM6OlJlbW92ZSh1bnNpZ25lZCBpbnQpDQorP1JlbW92ZUBDQ29sdW1uc0BAUUFFWElAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NvcnQ6OlJlbW92ZSh1bnNpZ25lZCBpbnQpDQorP1JlbW92ZUBDU29ydEBAUUFFWElAWg0KKzsgY2xhc3MgQ091dHB1dFJlcG9ydCAgUmVwb3J0DQorP1JlcG9ydEBAM1ZDT3V0cHV0UmVwb3J0QEBBIERBVEENCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENDYW5jZWxScGM6OlJwY0NhbmNlbFRpbWVvdXQodm9pZCkNCis/UnBjQ2FuY2VsVGltZW91dEBDQ2FuY2VsUnBjQEBRQUVLWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENEU0Jhc2VVcGRhdGU6OlNlcmlhbGl6ZSh1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyAqLGludCkNCis/U2VyaWFsaXplQENEU0Jhc2VVcGRhdGVAQFFBRUpQQUVQQUtIQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBDRFNCYXNlVXBkYXRlOjpTZXJpYWxpemVQcm9wZXJ0eShzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgJix1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyAqKQ0KKz9TZXJpYWxpemVQcm9wZXJ0eUBDRFNCYXNlVXBkYXRlQEBBQUVKQUFVdGFnUFJPUFZBUklBTlRAQFBBRVBBS0BaDQorU2VydmVyQWNjZXB0U2VjQ3R4DQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVzdHJpY3Rpb246OlNldENoaWxkKGNsYXNzIENQcm9wZXJ0eVJlc3RyaWN0aW9uIGNvbnN0ICYsdW5zaWduZWQgaW50KQ0KKz9TZXRDaGlsZEBDUmVzdHJpY3Rpb25AQFFBRVhBQlZDUHJvcGVydHlSZXN0cmljdGlvbkBASUBaDQorU2V0RmFsY29uS2V5VmFsdWUNCitTZXRGYWxjb25TZXJ2aWNlTmFtZQ0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NvcnRLZXk6OlNldE9yZGVyKHVuc2lnbmVkIGxvbmcgY29uc3QgJikNCis/U2V0T3JkZXJAQ1NvcnRLZXlAQFFBRVhBQktAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0RTQmFzZVVwZGF0ZTo6U2V0UHJldlNlcU51bShjbGFzcyBDU2VxTnVtICYpDQorP1NldFByZXZTZXFOdW1AQ0RTQmFzZVVwZGF0ZUBAUUFFWEFBVkNTZXFOdW1AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUHJvcGVydHlSZXN0cmljdGlvbjo6U2V0UHJvcGVydHkodW5zaWduZWQgbG9uZyBjb25zdCAmKQ0KKz9TZXRQcm9wZXJ0eUBDUHJvcGVydHlSZXN0cmljdGlvbkBAUUFFWEFCS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU29ydEtleTo6U2V0UHJvcGVydHkodW5zaWduZWQgbG9uZyBjb25zdCAmKQ0KKz9TZXRQcm9wZXJ0eUBDU29ydEtleUBAUUFFWEFCS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUHJvcGVydHlSZXN0cmljdGlvbjo6U2V0UmVsYXRpb24odW5zaWduZWQgbG9uZykNCis/U2V0UmVsYXRpb25AQ1Byb3BlcnR5UmVzdHJpY3Rpb25AQFFBRVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjpTZXRWYWx1ZShzdHJ1Y3QgdGFnQkxPQiAmKQ0KKz9TZXRWYWx1ZUBDUHJvcGVydHlSZXN0cmljdGlvbkBAUUFFWEFBVXRhZ0JMT0JAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUHJvcGVydHlSZXN0cmljdGlvbjo6U2V0VmFsdWUoY2xhc3MgQ01RVmFyaWFudCBjb25zdCAmKQ0KKz9TZXRWYWx1ZUBDUHJvcGVydHlSZXN0cmljdGlvbkBAUUFFWEFCVkNNUVZhcmlhbnRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUHJvcGVydHlSZXN0cmljdGlvbjo6U2V0VmFsdWUodW5zaWduZWQgY2hhcikNCis/U2V0VmFsdWVAQ1Byb3BlcnR5UmVzdHJpY3Rpb25AQFFBRVhFQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjpTZXRWYWx1ZShzaG9ydCkNCis/U2V0VmFsdWVAQ1Byb3BlcnR5UmVzdHJpY3Rpb25AQFFBRVhGQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjpTZXRWYWx1ZShsb25nKQ0KKz9TZXRWYWx1ZUBDUHJvcGVydHlSZXN0cmljdGlvbkBAUUFFWEpAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Byb3BlcnR5UmVzdHJpY3Rpb246OlNldFZhbHVlKHVuc2lnbmVkIGxvbmcpDQorP1NldFZhbHVlQENQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRQUVYS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUHJvcGVydHlSZXN0cmljdGlvbjo6U2V0VmFsdWUodW5zaWduZWQgc2hvcnQgKikNCis/U2V0VmFsdWVAQ1Byb3BlcnR5UmVzdHJpY3Rpb25AQFFBRVhQQUdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Byb3BlcnR5UmVzdHJpY3Rpb246OlNldFZhbHVlKHN0cnVjdCBfR1VJRCAqKQ0KKz9TZXRWYWx1ZUBDUHJvcGVydHlSZXN0cmljdGlvbkBAUUFFWFBBVV9HVUlEQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Byb3BlcnR5UmVzdHJpY3Rpb246OlNldFZhbHVlKHN0cnVjdCB0YWdDQUNMU0lEICopDQorP1NldFZhbHVlQENQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRQUVYUEFVdGFnQ0FDTFNJREBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjpTZXRWYWx1ZShzdHJ1Y3QgdGFnQ0FMUFdTVFIgKikNCis/U2V0VmFsdWVAQ1Byb3BlcnR5UmVzdHJpY3Rpb25AQFFBRVhQQVV0YWdDQUxQV1NUUkBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDYW5jZWxScGM6OlNodXREb3duQ2FuY2VsVGhyZWFkKHZvaWQpDQorP1NodXREb3duQ2FuY2VsVGhyZWFkQENDYW5jZWxScGNAQFFBRVhYWg0KK1NodXREb3duRGVidWdXaW5kb3cNCis7IHVuc2lnbmVkIGludCBfX3N0ZGNhbGwgVW5hbGlnbmVkV2NzbGVuKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1VuYWxpZ25lZFdjc2xlbkBAWUdJUEJHQFoNCis7IHB1YmxpYzogY2xhc3MgQ01RVmFyaWFudCBjb25zdCAmIF9fdGhpc2NhbGwgQ1Byb3BlcnR5UmVzdHJpY3Rpb246OlZhbHVlKHZvaWQpDQorP1ZhbHVlQENQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRQUVBQlZDTVFWYXJpYW50QEBYWg0KKzsgbG9uZyBfX3N0ZGNhbGwgWGFjdEdldERUQyhzdHJ1Y3QgSVVua25vd24gKiAqKQ0KKz9YYWN0R2V0RFRDQEBZR0pQQVBBVUlVbmtub3duQEBAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgWGFjdEdldFdoZXJlYWJvdXRzKHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBjaGFyICopDQorP1hhY3RHZXRXaGVyZWFib3V0c0BAWUdKUEFLUEFFQFoNCis7IGNsYXNzIENDYW5jZWxScGMgIGdfQ2FuY2VsUnBjDQorP2dfQ2FuY2VsUnBjQEAzVkNDYW5jZWxScGNAQEEgREFUQQ0KKzsgY2xhc3MgQ0hDcnlwdFByb3YgIGdfaFByb3ZWZXINCis/Z19oUHJvdlZlckBAM1ZDSENyeXB0UHJvdkBAQSBEQVRBDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBDRFNCYXNlVXBkYXRlOjpnZXROdW1PZlByb3BzKHZvaWQpDQorP2dldE51bU9mUHJvcHNAQ0RTQmFzZVVwZGF0ZUBAUUFFRVhaDQorOyBsb25nIF9fc3RkY2FsbCBtcXJwY0JpbmRRTVNlcnZpY2UodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGxvbmcgKix2b2lkICogKixlbnVtIFBPUlRUWVBFLHVuc2lnbmVkIGxvbmcgKF9fc3RkY2FsbCopKHZvaWQgKix1bnNpZ25lZCBsb25nKSx1bnNpZ25lZCBsb25nKQ0KKz9tcXJwY0JpbmRRTVNlcnZpY2VAQFlHSlBBRzBQQUtQQVBBWFc0UE9SVFRZUEVAQFA2R0tQQVhLQFpLQFoNCis7IHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIG1xcnBjR2V0TG9jYWxDYWxsUElEKHZvaWQgKikNCis/bXFycGNHZXRMb2NhbENhbGxQSURAQFlHS1BBWEBaDQorOyBpbnQgX19zdGRjYWxsIG1xcnBjSXNMb2NhbENhbGwodm9pZCAqKQ0KKz9tcXJwY0lzTG9jYWxDYWxsQEBZR0hQQVhAWg0KKzsgaW50IF9fc3RkY2FsbCBtcXJwY0lzVGNwaXBUcmFuc3BvcnQodm9pZCAqKQ0KKz9tcXJwY0lzVGNwaXBUcmFuc3BvcnRAQFlHSFBBWEBaDQorOyBsb25nIF9fc3RkY2FsbCBtcXJwY1VuYmluZFFNU2VydmljZSh2b2lkICogKix1bnNpZ25lZCBzaG9ydCAqICopDQorP21xcnBjVW5iaW5kUU1TZXJ2aWNlQEBZR0pQQVBBWFBBUEFHQFoNCitNUVNpZ0Nsb25lQ2VydEZyb21SZWcNCitNUVNpZ0Nsb25lQ2VydEZyb21TeXNTdG9yZQ0KK01RU2lnQ3JlYXRlQ2VydGlmaWNhdGUNCitNUVNpZ09wZW5Vc2VyQ2VydFN0b3JlDQorTVNNUUdldE9wZXJhdGluZ1N5c3RlbQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtcXV0aWwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21xdXRpbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzMzMjQ1NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtcXV0aWwuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtcXV0aWwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1xdXRpbC5kbGwNCitFWFBPUlRTDQorTVFHZXRSZXNvdXJjZUhhbmRsZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2FhdGV4dC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNhYXRleHQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg5ZTg4MDkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNhYXRleHQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNBQVRleHQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TQUFUZXh0LmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2FjbTMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2FjbTMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wOGNhMzMxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zYWNtMzIuZGVmCkBAIC0wLDAgKzEsNTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNBQ00zMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNBQ00zMi5kbGwNCitFWFBPUlRTDQorWFJlZ1RodW5rRW50cnkNCithY21Ecml2ZXJBZGRBDQorYWNtRHJpdmVyQWRkVw0KK2FjbURyaXZlckNsb3NlDQorYWNtRHJpdmVyRGV0YWlsc0ENCithY21Ecml2ZXJEZXRhaWxzVw0KK2FjbURyaXZlckVudW0NCithY21Ecml2ZXJJRA0KK2FjbURyaXZlck1lc3NhZ2UNCithY21Ecml2ZXJPcGVuDQorYWNtRHJpdmVyUHJpb3JpdHkNCithY21Ecml2ZXJSZW1vdmUNCithY21GaWx0ZXJDaG9vc2VBDQorYWNtRmlsdGVyQ2hvb3NlVw0KK2FjbUZpbHRlckRldGFpbHNBDQorYWNtRmlsdGVyRGV0YWlsc1cNCithY21GaWx0ZXJFbnVtQQ0KK2FjbUZpbHRlckVudW1XDQorYWNtRmlsdGVyVGFnRGV0YWlsc0ENCithY21GaWx0ZXJUYWdEZXRhaWxzVw0KK2FjbUZpbHRlclRhZ0VudW1BDQorYWNtRmlsdGVyVGFnRW51bVcNCithY21Gb3JtYXRDaG9vc2VBDQorYWNtRm9ybWF0Q2hvb3NlVw0KK2FjbUZvcm1hdERldGFpbHNBDQorYWNtRm9ybWF0RGV0YWlsc1cNCithY21Gb3JtYXRFbnVtQQ0KK2FjbUZvcm1hdEVudW1XDQorYWNtRm9ybWF0U3VnZ2VzdA0KK2FjbUZvcm1hdFRhZ0RldGFpbHNBDQorYWNtRm9ybWF0VGFnRGV0YWlsc1cNCithY21Gb3JtYXRUYWdFbnVtQQ0KK2FjbUZvcm1hdFRhZ0VudW1XDQorYWNtR2V0VmVyc2lvbg0KK2FjbU1lc3NhZ2UzMg0KK2FjbU1ldHJpY3MNCithY21TdHJlYW1DbG9zZQ0KK2FjbVN0cmVhbUNvbnZlcnQNCithY21TdHJlYW1NZXNzYWdlDQorYWNtU3RyZWFtT3Blbg0KK2FjbVN0cmVhbVByZXBhcmVIZWFkZXINCithY21TdHJlYW1SZXNldA0KK2FjbVN0cmVhbVNpemUNCithY21TdHJlYW1VbnByZXBhcmVIZWFkZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNhZGNlLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2FkY2UuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZiMTUwYzYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNhZGNlLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIGZ4LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBmeC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNhZGNmLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2FkY2YuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZhMmMzZWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNhZGNmLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG5hdmRnZi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbmF2ZGdmLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2FkY28uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zYWRjby5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTU4NmQ0OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2FkY28uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgYWN0aXZlLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBhY3RpdmUuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zYWRjcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNhZGNzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NjYyNTJjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zYWRjcy5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU0FEQ1MuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TQURDUy5kbGwNCitFWFBPUlRTDQorR2V0RXh0ZW5zaW9uVmVyc2lvbg0KK0h0dHBFeHRlbnNpb25Qcm9jDQorVGVybWluYXRlRXh0ZW5zaW9uDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zYWRkcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNhZGRzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NTAxMWY2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zYWRkcy5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc2FkZHMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1zYWRkcy5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNhZG8xNS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNhZG8xNS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzZmNDY1MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2FkbzE1LmRlZgpAQCAtMCwwICsxLDI2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TQURPMTUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TQURPMTUuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorUk5JR2V0Q29tcGF0aWJsZVZlcnNpb24NCitjb21fbXNfd2ZjX2RhdGFfRmllbGRfZ2V0Qm9vbGVhbg0KK2NvbV9tc193ZmNfZGF0YV9GaWVsZF9nZXRCeXRlDQorY29tX21zX3dmY19kYXRhX0ZpZWxkX2dldEJ5dGVzDQorY29tX21zX3dmY19kYXRhX0ZpZWxkX2dldERhdGFUaW1lc3RhbXANCitjb21fbXNfd2ZjX2RhdGFfRmllbGRfZ2V0RG91YmxlDQorY29tX21zX3dmY19kYXRhX0ZpZWxkX2dldEZsb2F0DQorY29tX21zX3dmY19kYXRhX0ZpZWxkX2dldEludA0KK2NvbV9tc193ZmNfZGF0YV9GaWVsZF9nZXRMb25nDQorY29tX21zX3dmY19kYXRhX0ZpZWxkX2dldFNob3J0DQorY29tX21zX3dmY19kYXRhX0ZpZWxkX2dldFN0cmluZw0KK2NvbV9tc193ZmNfZGF0YV9GaWVsZF9pc051bGwNCitjb21fbXNfd2ZjX2RhdGFfRmllbGRfbG9hZE1zamF2YQ0KK2NvbV9tc193ZmNfZGF0YV9GaWVsZF9zZXREYXRhRGF0ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2Fkb21kLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2Fkb21kLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44Y2JiODM3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zYWRvbWQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNBRE9NRC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNBRE9NRC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNhZG9yMTUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zYWRvcjE1LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYmEwYWRkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zYWRvcjE1LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TQURPUjE1LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU0FET1IxNS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNhZG94LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2Fkb3guZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI1ZmIwOGQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNhZG94LmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zQURPWC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXNBRE9YLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2FkcmgxNS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNhZHJoMTUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJmMzdlYjMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNhZHJoMTUuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNBRFJIMTUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TQURSSDE1LmRsbA0KK0VYUE9SVFMNCitEbGxNYWluDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNhZmQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zYWZkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZThjNjUyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zYWZkLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNBRkQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TQUZELmRsbA0KK0VYUE9SVFMNCitXU1BTdGFydHVwDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zYXBzc3BjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2Fwc3NwYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWM1YjZlMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2Fwc3NwYy5kZWYKQEAgLTAsMCArMSwzMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU0FQU1NQQy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNBUFNTUEMuZGxsDQorRVhQT1JUUw0KK0luaXRTZWN1cml0eUludGVyZmFjZUENCitJbml0U2VjdXJpdHlJbnRlcmZhY2VXDQorQWNxdWlyZUNyZWRlbnRpYWxzSGFuZGxlQQ0KK0FjcXVpcmVDcmVkZW50aWFsc0hhbmRsZVcNCitEZWxldGVTZWN1cml0eUNvbnRleHQNCitGcmVlQ3JlZGVudGlhbHNIYW5kbGUNCitJbml0aWFsaXplU2VjdXJpdHlDb250ZXh0QQ0KK0luaXRpYWxpemVTZWN1cml0eUNvbnRleHRXDQorRW51bWVyYXRlU2VjdXJpdHlQYWNrYWdlc0ENCitFbnVtZXJhdGVTZWN1cml0eVBhY2thZ2VzVw0KK1F1ZXJ5Q29udGV4dEF0dHJpYnV0ZXNBDQorUXVlcnlDb250ZXh0QXR0cmlidXRlc1cNCitRdWVyeVNlY3VyaXR5UGFja2FnZUluZm9BDQorUXVlcnlTZWN1cml0eVBhY2thZ2VJbmZvVw0KK0NvbXBsZXRlQXV0aFRva2VuDQorQXBwbHlDb250cm9sVG9rZW4NCitNYWtlU2lnbmF0dXJlDQorVmVyaWZ5U2lnbmF0dXJlDQorRnJlZUNvbnRleHRCdWZmZXINCitTZWFsTWVzc2FnZQ0KK1Vuc2VhbE1lc3NhZ2UNCitTc3BjQ3JlYXRlU3NwaVJlZw0KK0NsZWFudXBDcmVkZW50aWFsQ2FjaGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNhc24xLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2FzbjEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRjOGQ2OTEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNhc24xLmRlZgpAQCAtMCwwICsxLDI3NCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU0FTTjEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TQVNOMS5kbGwNCitFWFBPUlRTDQorQVNOMUJFUkRlY0JpdFN0cmluZzINCitBU04xQkVSRGVjQml0U3RyaW5nDQorQVNOMUJFUkRlY0Jvb2wNCitBU04xQkVSRGVjQ2hhcjE2U3RyaW5nDQorQVNOMUJFUkRlY0NoYXIzMlN0cmluZw0KK0FTTjFCRVJEZWNDaGFyU3RyaW5nDQorQVNOMUJFUkRlY0NoZWNrDQorQVNOMUJFUkRlY0RvdWJsZQ0KK0FTTjFCRVJEZWNFbmRPZkNvbnRlbnRzDQorQVNOMUJFUkRlY0VvaWQNCitBU04xQkVSRGVjRXhwbGljaXRUYWcNCitBU04xQkVSRGVjRmx1c2gNCitBU04xQkVSRGVjR2VuZXJhbGl6ZWRUaW1lDQorQVNOMUJFUkRlY0xlbmd0aA0KK0FTTjFCRVJEZWNNdWx0aWJ5dGVTdHJpbmcNCitBU04xQkVSRGVjTm90RW5kT2ZDb250ZW50cw0KK0FTTjFCRVJEZWNOdWxsDQorQVNOMUJFUkRlY09iamVjdElkZW50aWZpZXIyDQorQVNOMUJFUkRlY09iamVjdElkZW50aWZpZXINCitBU04xQkVSRGVjT2N0ZXRTdHJpbmcyDQorQVNOMUJFUkRlY09jdGV0U3RyaW5nDQorQVNOMUJFUkRlY09wZW5UeXBlMg0KK0FTTjFCRVJEZWNPcGVuVHlwZQ0KK0FTTjFCRVJEZWNQZWVrVGFnDQorQVNOMUJFUkRlY1MxNlZhbA0KK0FTTjFCRVJEZWNTMzJWYWwNCitBU04xQkVSRGVjUzhWYWwNCitBU04xQkVSRGVjU1hWYWwNCitBU04xQkVSRGVjU2tpcA0KK0FTTjFCRVJEZWNUYWcNCitBU04xQkVSRGVjVTE2VmFsDQorQVNOMUJFUkRlY1UzMlZhbA0KK0FTTjFCRVJEZWNVOFZhbA0KK0FTTjFCRVJEZWNVVENUaW1lDQorQVNOMUJFUkRlY1VURjhTdHJpbmcNCitBU04xQkVSRGVjWmVyb0NoYXIxNlN0cmluZw0KK0FTTjFCRVJEZWNaZXJvQ2hhcjMyU3RyaW5nDQorQVNOMUJFUkRlY1plcm9DaGFyU3RyaW5nDQorQVNOMUJFUkRlY1plcm9NdWx0aWJ5dGVTdHJpbmcNCitBU04xQkVSRG90VmFsMkVvaWQNCitBU04xQkVSRW5jQml0U3RyaW5nDQorQVNOMUJFUkVuY0Jvb2wNCitBU04xQkVSRW5jQ2hhcjE2U3RyaW5nDQorQVNOMUJFUkVuY0NoYXIzMlN0cmluZw0KK0FTTjFCRVJFbmNDaGFyU3RyaW5nDQorQVNOMUJFUkVuY0NoZWNrDQorQVNOMUJFUkVuY0RvdWJsZQ0KK0FTTjFCRVJFbmNFbmRPZkNvbnRlbnRzDQorQVNOMUJFUkVuY0VvaWQNCitBU04xQkVSRW5jRXhwbGljaXRUYWcNCitBU04xQkVSRW5jRmx1c2gNCitBU04xQkVSRW5jR2VuZXJhbGl6ZWRUaW1lDQorQVNOMUJFUkVuY0xlbmd0aA0KK0FTTjFCRVJFbmNNdWx0aWJ5dGVTdHJpbmcNCitBU04xQkVSRW5jTnVsbA0KK0FTTjFCRVJFbmNPYmplY3RJZGVudGlmaWVyMg0KK0FTTjFCRVJFbmNPYmplY3RJZGVudGlmaWVyDQorQVNOMUJFUkVuY09jdGV0U3RyaW5nDQorQVNOMUJFUkVuY09wZW5UeXBlDQorQVNOMUJFUkVuY1JlbW92ZVplcm9CaXRzDQorQVNOMUJFUkVuY1MzMg0KK0FTTjFCRVJFbmNTWA0KK0FTTjFCRVJFbmNUYWcNCitBU04xQkVSRW5jVTMyDQorQVNOMUJFUkVuY1VUQ1RpbWUNCitBU04xQkVSRW5jVVRGOFN0cmluZw0KK0FTTjFCRVJFbmNaZXJvTXVsdGlieXRlU3RyaW5nDQorQVNOMUJFUkVvaWQyRG90VmFsDQorQVNOMUJFUkVvaWRfZnJlZQ0KK0FTTjFDRVJFbmNCZWdpbkJsaw0KK0FTTjFDRVJFbmNCaXRTdHJpbmcNCitBU04xQ0VSRW5jQ2hhcjE2U3RyaW5nDQorQVNOMUNFUkVuY0NoYXIzMlN0cmluZw0KK0FTTjFDRVJFbmNDaGFyU3RyaW5nDQorQVNOMUNFUkVuY0VuZEJsaw0KK0FTTjFDRVJFbmNGbHVzaEJsa0VsZW1lbnQNCitBU04xQ0VSRW5jR2VuZXJhbGl6ZWRUaW1lDQorQVNOMUNFUkVuY011bHRpYnl0ZVN0cmluZw0KK0FTTjFDRVJFbmNOZXdCbGtFbGVtZW50DQorQVNOMUNFUkVuY09jdGV0U3RyaW5nDQorQVNOMUNFUkVuY1VUQ1RpbWUNCitBU04xQ0VSRW5jWmVyb011bHRpYnl0ZVN0cmluZw0KK0FTTjFEZWNBYm9ydA0KK0FTTjFEZWNBbGxvYw0KK0FTTjFEZWNEb25lDQorQVNOMURlY1JlYWxsb2MNCitBU04xRGVjU2V0RXJyb3INCitBU04xRW5jQWJvcnQNCitBU04xRW5jRG9uZQ0KK0FTTjFFbmNTZXRFcnJvcg0KK0FTTjFGcmVlDQorQVNOMVBFUkRlY0FsaWdubWVudA0KK0FTTjFQRVJEZWNCaXQNCitBU04xUEVSRGVjQml0cw0KK0FTTjFQRVJEZWNCb29sZWFuDQorQVNOMVBFUkRlY0NoYXIxNlN0cmluZw0KK0FTTjFQRVJEZWNDaGFyMzJTdHJpbmcNCitBU04xUEVSRGVjQ2hhclN0cmluZw0KK0FTTjFQRVJEZWNDaGFyU3RyaW5nTm9BbGxvYw0KK0FTTjFQRVJEZWNDb21wbGV4Q2hvaWNlDQorQVNOMVBFUkRlY0RvdWJsZQ0KK0FTTjFQRVJEZWNFeHRlbnNpb24NCitBU04xUEVSRGVjRmx1c2gNCitBU04xUEVSRGVjRnJhZ21lbnRlZA0KK0FTTjFQRVJEZWNGcmFnbWVudGVkQ2hhcjE2U3RyaW5nDQorQVNOMVBFUkRlY0ZyYWdtZW50ZWRDaGFyMzJTdHJpbmcNCitBU04xUEVSRGVjRnJhZ21lbnRlZENoYXJTdHJpbmcNCitBU04xUEVSRGVjRnJhZ21lbnRlZEV4dGVuc2lvbg0KK0FTTjFQRVJEZWNGcmFnbWVudGVkSW50eA0KK0FTTjFQRVJEZWNGcmFnbWVudGVkTGVuZ3RoDQorQVNOMVBFUkRlY0ZyYWdtZW50ZWRUYWJsZUNoYXIxNlN0cmluZw0KK0FTTjFQRVJEZWNGcmFnbWVudGVkVGFibGVDaGFyMzJTdHJpbmcNCitBU04xUEVSRGVjRnJhZ21lbnRlZFRhYmxlQ2hhclN0cmluZw0KK0FTTjFQRVJEZWNGcmFnbWVudGVkVUludHgNCitBU04xUEVSRGVjRnJhZ21lbnRlZFplcm9DaGFyMTZTdHJpbmcNCitBU04xUEVSRGVjRnJhZ21lbnRlZFplcm9DaGFyMzJTdHJpbmcNCitBU04xUEVSRGVjRnJhZ21lbnRlZFplcm9DaGFyU3RyaW5nDQorQVNOMVBFUkRlY0ZyYWdtZW50ZWRaZXJvVGFibGVDaGFyMTZTdHJpbmcNCitBU04xUEVSRGVjRnJhZ21lbnRlZFplcm9UYWJsZUNoYXIzMlN0cmluZw0KK0FTTjFQRVJEZWNGcmFnbWVudGVkWmVyb1RhYmxlQ2hhclN0cmluZw0KK0FTTjFQRVJEZWNHZW5lcmFsaXplZFRpbWUNCitBU04xUEVSRGVjSW50ZWdlcg0KK0FTTjFQRVJEZWNNdWx0aWJ5dGVTdHJpbmcNCitBU04xUEVSRGVjTjE2VmFsDQorQVNOMVBFUkRlY04zMlZhbA0KK0FTTjFQRVJEZWNOOFZhbA0KK0FTTjFQRVJEZWNOb3JtYWxseVNtYWxsRXh0ZW5zaW9uDQorQVNOMVBFUkRlY09iamVjdElkZW50aWZpZXIyDQorQVNOMVBFUkRlY09iamVjdElkZW50aWZpZXINCitBU04xUEVSRGVjT2N0ZXRTdHJpbmdfRml4ZWRTaXplDQorQVNOMVBFUkRlY09jdGV0U3RyaW5nX0ZpeGVkU2l6ZUV4DQorQVNOMVBFUkRlY09jdGV0U3RyaW5nX05vU2l6ZQ0KK0FTTjFQRVJEZWNPY3RldFN0cmluZ19WYXJTaXplDQorQVNOMVBFUkRlY09jdGV0U3RyaW5nX1ZhclNpemVFeA0KK0FTTjFQRVJEZWNTMTZWYWwNCitBU04xUEVSRGVjUzMyVmFsDQorQVNOMVBFUkRlY1M4VmFsDQorQVNOMVBFUkRlY1NYVmFsDQorQVNOMVBFUkRlY1NlcU9mX05vU2l6ZQ0KK0FTTjFQRVJEZWNTZXFPZl9WYXJTaXplDQorQVNOMVBFUkRlY1NpbXBsZUNob2ljZQ0KK0FTTjFQRVJEZWNTaW1wbGVDaG9pY2VFeA0KK0FTTjFQRVJEZWNTa2lwQml0cw0KK0FTTjFQRVJEZWNTa2lwRnJhZ21lbnRlZA0KK0FTTjFQRVJEZWNTa2lwTm9ybWFsbHlTbWFsbA0KK0FTTjFQRVJEZWNTa2lwTm9ybWFsbHlTbWFsbEV4dGVuc2lvbg0KK0FTTjFQRVJEZWNTa2lwTm9ybWFsbHlTbWFsbEV4dGVuc2lvbkZyYWdtZW50ZWQNCitBU04xUEVSRGVjVGFibGVDaGFyMTZTdHJpbmcNCitBU04xUEVSRGVjVGFibGVDaGFyMzJTdHJpbmcNCitBU04xUEVSRGVjVGFibGVDaGFyU3RyaW5nDQorQVNOMVBFUkRlY1RhYmxlQ2hhclN0cmluZ05vQWxsb2MNCitBU04xUEVSRGVjVTE2VmFsDQorQVNOMVBFUkRlY1UzMlZhbA0KK0FTTjFQRVJEZWNVOFZhbA0KK0FTTjFQRVJEZWNVVENUaW1lDQorQVNOMVBFUkRlY1VYVmFsDQorQVNOMVBFUkRlY1Vuc2lnbmVkSW50ZWdlcg0KK0FTTjFQRVJEZWNVbnNpZ25lZFNob3J0DQorQVNOMVBFUkRlY1plcm9DaGFyMTZTdHJpbmcNCitBU04xUEVSRGVjWmVyb0NoYXIzMlN0cmluZw0KK0FTTjFQRVJEZWNaZXJvQ2hhclN0cmluZw0KK0FTTjFQRVJEZWNaZXJvQ2hhclN0cmluZ05vQWxsb2MNCitBU04xUEVSRGVjWmVyb1RhYmxlQ2hhcjE2U3RyaW5nDQorQVNOMVBFUkRlY1plcm9UYWJsZUNoYXIzMlN0cmluZw0KK0FTTjFQRVJEZWNaZXJvVGFibGVDaGFyU3RyaW5nDQorQVNOMVBFUkRlY1plcm9UYWJsZUNoYXJTdHJpbmdOb0FsbG9jDQorQVNOMVBFUkVuY0FsaWdubWVudA0KK0FTTjFQRVJFbmNCaXQNCitBU04xUEVSRW5jQml0SW50eA0KK0FTTjFQRVJFbmNCaXRWYWwNCitBU04xUEVSRW5jQml0cw0KK0FTTjFQRVJFbmNCb29sZWFuDQorQVNOMVBFUkVuY0NoYXIxNlN0cmluZw0KK0FTTjFQRVJFbmNDaGFyMzJTdHJpbmcNCitBU04xUEVSRW5jQ2hhclN0cmluZw0KK0FTTjFQRVJFbmNDaGVja0V4dGVuc2lvbnMNCitBU04xUEVSRW5jQ29tcGxleENob2ljZQ0KK0FTTjFQRVJFbmNEb3VibGUNCitBU04xUEVSRW5jRXh0ZW5zaW9uQml0Q2xlYXINCitBU04xUEVSRW5jRXh0ZW5zaW9uQml0U2V0DQorQVNOMVBFUkVuY0ZsdXNoDQorQVNOMVBFUkVuY0ZsdXNoRnJhZ21lbnRlZFRvUGFyZW50DQorQVNOMVBFUkVuY0ZyYWdtZW50ZWQNCitBU04xUEVSRW5jRnJhZ21lbnRlZENoYXIxNlN0cmluZw0KK0FTTjFQRVJFbmNGcmFnbWVudGVkQ2hhcjMyU3RyaW5nDQorQVNOMVBFUkVuY0ZyYWdtZW50ZWRDaGFyU3RyaW5nDQorQVNOMVBFUkVuY0ZyYWdtZW50ZWRJbnR4DQorQVNOMVBFUkVuY0ZyYWdtZW50ZWRMZW5ndGgNCitBU04xUEVSRW5jRnJhZ21lbnRlZFRhYmxlQ2hhcjE2U3RyaW5nDQorQVNOMVBFUkVuY0ZyYWdtZW50ZWRUYWJsZUNoYXIzMlN0cmluZw0KK0FTTjFQRVJFbmNGcmFnbWVudGVkVGFibGVDaGFyU3RyaW5nDQorQVNOMVBFUkVuY0ZyYWdtZW50ZWRVSW50eA0KK0FTTjFQRVJFbmNHZW5lcmFsaXplZFRpbWUNCitBU04xUEVSRW5jSW50ZWdlcg0KK0FTTjFQRVJFbmNNdWx0aWJ5dGVTdHJpbmcNCitBU04xUEVSRW5jTm9ybWFsbHlTbWFsbA0KK0FTTjFQRVJFbmNOb3JtYWxseVNtYWxsQml0cw0KK0FTTjFQRVJFbmNPYmplY3RJZGVudGlmaWVyMg0KK0FTTjFQRVJFbmNPYmplY3RJZGVudGlmaWVyDQorQVNOMVBFUkVuY09jdGV0U3RyaW5nX0ZpeGVkU2l6ZQ0KK0FTTjFQRVJFbmNPY3RldFN0cmluZ19GaXhlZFNpemVFeA0KK0FTTjFQRVJFbmNPY3RldFN0cmluZ19Ob1NpemUNCitBU04xUEVSRW5jT2N0ZXRTdHJpbmdfVmFyU2l6ZQ0KK0FTTjFQRVJFbmNPY3RldFN0cmluZ19WYXJTaXplRXgNCitBU04xUEVSRW5jT2N0ZXRzDQorQVNOMVBFUkVuY1JlbW92ZVplcm9CaXRzDQorQVNOMVBFUkVuY1NlcU9mX05vU2l6ZQ0KK0FTTjFQRVJFbmNTZXFPZl9WYXJTaXplDQorQVNOMVBFUkVuY1NpbXBsZUNob2ljZQ0KK0FTTjFQRVJFbmNTaW1wbGVDaG9pY2VFeA0KK0FTTjFQRVJFbmNUYWJsZUNoYXIxNlN0cmluZw0KK0FTTjFQRVJFbmNUYWJsZUNoYXIzMlN0cmluZw0KK0FTTjFQRVJFbmNUYWJsZUNoYXJTdHJpbmcNCitBU04xUEVSRW5jVVRDVGltZQ0KK0FTTjFQRVJFbmNVbnNpZ25lZEludGVnZXINCitBU04xUEVSRW5jVW5zaWduZWRTaG9ydA0KK0FTTjFQRVJFbmNaZXJvDQorQVNOMVBFUkZyZWVTZXFPZg0KK0FTTjFfQ2xvc2VEZWNvZGVyDQorQVNOMV9DbG9zZUVuY29kZXIyDQorQVNOMV9DbG9zZUVuY29kZXINCitBU04xX0Nsb3NlTW9kdWxlDQorQVNOMV9DcmVhdGVEZWNvZGVyDQorQVNOMV9DcmVhdGVEZWNvZGVyRXgNCitBU04xX0NyZWF0ZUVuY29kZXINCitBU04xX0NyZWF0ZU1vZHVsZQ0KK0FTTjFfRGVjb2RlDQorQVNOMV9FbmNvZGUNCitBU04xX0ZyZWVEZWNvZGVkDQorQVNOMV9GcmVlRW5jb2RlZA0KK0FTTjFfR2V0RGVjb2Rlck9wdGlvbg0KK0FTTjFfR2V0RW5jb2Rlck9wdGlvbg0KK0FTTjFfU2V0RGVjb2Rlck9wdGlvbg0KK0FTTjFfU2V0RW5jb2Rlck9wdGlvbg0KK0FTTjFiaXRzdHJpbmdfY21wDQorQVNOMWJpdHN0cmluZ19mcmVlDQorQVNOMWNoYXIxNnN0cmluZ19jbXANCitBU04xY2hhcjE2c3RyaW5nX2ZyZWUNCitBU04xY2hhcjMyc3RyaW5nX2NtcA0KK0FTTjFjaGFyMzJzdHJpbmdfZnJlZQ0KK0FTTjFjaGFyc3RyaW5nX2NtcA0KK0FTTjFjaGFyc3RyaW5nX2ZyZWUNCitBU04xZ2VuZXJhbGl6ZWR0aW1lX2NtcA0KK0FTTjFpbnR4MmludDMyDQorQVNOMWludHgydWludDMyDQorQVNOMWludHhfYWRkDQorQVNOMWludHhfZnJlZQ0KK0FTTjFpbnR4X3NldHVpbnQzMg0KK0FTTjFpbnR4X3N1Yg0KK0FTTjFpbnR4X3VvY3RldHMNCitBU04xaW50eGlzdWludDMyDQorQVNOMW9iamVjdGlkZW50aWZpZXIyX2NtcA0KK0FTTjFvYmplY3RpZGVudGlmaWVyX2NtcA0KK0FTTjFvYmplY3RpZGVudGlmaWVyX2ZyZWUNCitBU04xb2N0ZXRzdHJpbmdfY21wDQorQVNOMW9jdGV0c3RyaW5nX2ZyZWUNCitBU04xb3Blbl9jbXANCitBU04xb3Blbl9mcmVlDQorQVNOMXVpbnQzMl91b2N0ZXRzDQorQVNOMXV0Y3RpbWVfY21wDQorQVNOMXV0ZjhzdHJpbmdfZnJlZQ0KK0FTTjF6dGNoYXIxNnN0cmluZ19jbXANCitBU04xenRjaGFyMTZzdHJpbmdfZnJlZQ0KK0FTTjF6dGNoYXIzMnN0cmluZ19mcmVlDQorQVNOMXp0Y2hhcnN0cmluZ19jbXANCitBU04xenRjaGFyc3RyaW5nX2ZyZWUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNjYW5kdWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zY2FuZHVpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZDllZGU1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zY2FuZHVpLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TQ0FORFVJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU0NBTkRVSS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNjYXQzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNjYXQzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDdiNmEwYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2NhdDMyLmRlZgpAQCAtMCwwICsxLDQ0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TQ0FUMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TQ0FUMzIuZGxsDQorRVhQT1JUUw0KK0NyeXB0Q0FUVmVyaWZ5TWVtYmVyDQorQ2F0YWxvZ0NvbXBhY3RIYXNoRGF0YWJhc2UNCitDcnlwdENBVEFkbWluQWNxdWlyZUNvbnRleHQNCitDcnlwdENBVEFkbWluQWRkQ2F0YWxvZw0KK0NyeXB0Q0FUQWRtaW5DYWxjSGFzaEZyb21GaWxlSGFuZGxlDQorQ3J5cHRDQVRBZG1pbkVudW1DYXRhbG9nRnJvbUhhc2gNCitDcnlwdENBVEFkbWluUmVsZWFzZUNhdGFsb2dDb250ZXh0DQorQ3J5cHRDQVRBZG1pblJlbGVhc2VDb250ZXh0DQorQ3J5cHRDQVRDREZDbG9zZQ0KK0NyeXB0Q0FUQ0RGRW51bUF0dHJpYnV0ZXMNCitDcnlwdENBVENERkVudW1BdHRyaWJ1dGVzV2l0aENERlRhZw0KK0NyeXB0Q0FUQ0RGRW51bUNhdEF0dHJpYnV0ZXMNCitDcnlwdENBVENERkVudW1NZW1iZXJzDQorQ3J5cHRDQVRDREZFbnVtTWVtYmVyc0J5Q0RGVGFnDQorQ3J5cHRDQVRDREZFbnVtTWVtYmVyc0J5Q0RGVGFnRXgNCitDcnlwdENBVENERk9wZW4NCitDcnlwdENBVENhdGFsb2dJbmZvRnJvbUNvbnRleHQNCitDcnlwdENBVENsb3NlDQorQ3J5cHRDQVRFbnVtZXJhdGVBdHRyDQorQ3J5cHRDQVRFbnVtZXJhdGVDYXRBdHRyDQorQ3J5cHRDQVRFbnVtZXJhdGVNZW1iZXINCitDcnlwdENBVEdldEF0dHJJbmZvDQorQ3J5cHRDQVRHZXRDYXRBdHRySW5mbw0KK0NyeXB0Q0FUR2V0TWVtYmVySW5mbw0KK0NyeXB0Q0FUSGFuZGxlRnJvbVN0b3JlDQorQ3J5cHRDQVRPcGVuDQorQ3J5cHRDQVRQZXJzaXN0U3RvcmUNCitDcnlwdENBVFB1dEF0dHJJbmZvDQorQ3J5cHRDQVRQdXRDYXRBdHRySW5mbw0KK0NyeXB0Q0FUUHV0TWVtYmVySW5mbw0KK0NyeXB0Q0FUU3RvcmVGcm9tSGFuZGxlDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorSXNDYXRhbG9nRmlsZQ0KK01zQ2F0Q29uc3RydWN0SGFzaFRhZw0KK01zQ2F0RnJlZUhhc2hUYWcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNjbXMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zY21zLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43M2E3NGNjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zY21zLmRlZgpAQCAtMCwwICsxLDY5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zY21zLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc2Ntcy5kbGwNCitFWFBPUlRTDQorQXNzb2NpYXRlQ29sb3JQcm9maWxlV2l0aERldmljZUENCitBc3NvY2lhdGVDb2xvclByb2ZpbGVXaXRoRGV2aWNlVw0KK0NoZWNrQml0bWFwQml0cw0KK0NoZWNrQ29sb3JzDQorQ2xvc2VDb2xvclByb2ZpbGUNCitDb252ZXJ0Q29sb3JOYW1lVG9JbmRleA0KK0NvbnZlcnRJbmRleFRvQ29sb3JOYW1lDQorQ3JlYXRlQ29sb3JUcmFuc2Zvcm1BDQorQ3JlYXRlQ29sb3JUcmFuc2Zvcm1XDQorQ3JlYXRlRGV2aWNlTGlua1Byb2ZpbGUNCitDcmVhdGVNdWx0aVByb2ZpbGVUcmFuc2Zvcm0NCitDcmVhdGVQcm9maWxlRnJvbUxvZ0NvbG9yU3BhY2VBDQorQ3JlYXRlUHJvZmlsZUZyb21Mb2dDb2xvclNwYWNlVw0KK0RlbGV0ZUNvbG9yVHJhbnNmb3JtDQorRGlzYXNzb2NpYXRlQ29sb3JQcm9maWxlRnJvbURldmljZUENCitEaXNhc3NvY2lhdGVDb2xvclByb2ZpbGVGcm9tRGV2aWNlVw0KK0VudW1Db2xvclByb2ZpbGVzQQ0KK0VudW1Db2xvclByb2ZpbGVzVw0KK0dlbmVyYXRlQ29weUZpbGVQYXRocw0KK0dldENNTUluZm8NCitHZXRDb2xvckRpcmVjdG9yeUENCitHZXRDb2xvckRpcmVjdG9yeVcNCitHZXRDb2xvclByb2ZpbGVFbGVtZW50DQorR2V0Q29sb3JQcm9maWxlRWxlbWVudFRhZw0KK0dldENvbG9yUHJvZmlsZUZyb21IYW5kbGUNCitHZXRDb2xvclByb2ZpbGVIZWFkZXINCitHZXRDb3VudENvbG9yUHJvZmlsZUVsZW1lbnRzDQorR2V0TmFtZWRQcm9maWxlSW5mbw0KK0dldFBTMkNvbG9yUmVuZGVyaW5nRGljdGlvbmFyeQ0KK0dldFBTMkNvbG9yUmVuZGVyaW5nSW50ZW50DQorR2V0UFMyQ29sb3JTcGFjZUFycmF5DQorR2V0U3RhbmRhcmRDb2xvclNwYWNlUHJvZmlsZUENCitHZXRTdGFuZGFyZENvbG9yU3BhY2VQcm9maWxlVw0KK0luc3RhbGxDb2xvclByb2ZpbGVBDQorSW5zdGFsbENvbG9yUHJvZmlsZVcNCitJbnRlcm5hbEdldERldmljZUNvbmZpZw0KK0ludGVybmFsR2V0UFMyQ1NBRnJvbUxDUw0KK0ludGVybmFsR2V0UFMyQ29sb3JSZW5kZXJpbmdEaWN0aW9uYXJ5DQorSW50ZXJuYWxHZXRQUzJDb2xvclNwYWNlQXJyYXkNCitJbnRlcm5hbEdldFBTMlByZXZpZXdDUkQNCitJbnRlcm5hbFNldERldmljZUNvbmZpZw0KK0lzQ29sb3JQcm9maWxlVGFnUHJlc2VudA0KK0lzQ29sb3JQcm9maWxlVmFsaWQNCitPcGVuQ29sb3JQcm9maWxlQQ0KK09wZW5Db2xvclByb2ZpbGVXDQorUmVnaXN0ZXJDTU1BDQorUmVnaXN0ZXJDTU1XDQorU2VsZWN0Q01NDQorU2V0Q29sb3JQcm9maWxlRWxlbWVudA0KK1NldENvbG9yUHJvZmlsZUVsZW1lbnRSZWZlcmVuY2UNCitTZXRDb2xvclByb2ZpbGVFbGVtZW50U2l6ZQ0KK1NldENvbG9yUHJvZmlsZUhlYWRlcg0KK1NldFN0YW5kYXJkQ29sb3JTcGFjZVByb2ZpbGVBDQorU2V0U3RhbmRhcmRDb2xvclNwYWNlUHJvZmlsZVcNCitTcG9vbGVyQ29weUZpbGVFdmVudA0KK1RyYW5zbGF0ZUJpdG1hcEJpdHMNCitUcmFuc2xhdGVDb2xvcnMNCitVbmluc3RhbGxDb2xvclByb2ZpbGVBDQorVW5pbnN0YWxsQ29sb3JQcm9maWxlVw0KK1VucmVnaXN0ZXJDTU1BDQorVW5yZWdpc3RlckNNTVcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNjcHhsMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zY3B4bDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYzhmMDJlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zY3B4bDMyLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zY3B4bDMyLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc2NweGwzMi5ETEwNCitFWFBPUlRTDQorQ29uZmlnVHJhbnNsYXRvcg0KK0NvbmZpZ3VyZURsZ1Byb2MNCitTUUxEYXRhU291cmNlVG9Ecml2ZXINCitTUUxEcml2ZXJUb0RhdGFTb3VyY2UNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNkYWRjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2RhZGMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNkMTMyY2QKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNkYWRjLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TREFEQy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNEQURDLmRsbA0KK0VYUE9SVFMNCitEbGxNYWluDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zZGFkaWFnLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2RhZGlhZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjMxNTJjZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2RhZGlhZy5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zZGFkaWFnLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc2RhZGlhZy5kbGwNCitFWFBPUlRTDQorRGxsQmlkRW50cnlQb2ludA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2RhZW51bS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNkYWVudW0uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgyYmRlNjQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNkYWVudW0uZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNEQUVOVU0uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TREFFTlVNLmRsbA0KK0VYUE9SVFMNCitEbGxNYWluDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zZGFlci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNkYWVyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MGUwZTRkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zZGFlci5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU0RBRVIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TREFFUi5kbGwNCitFWFBPUlRTDQorRGxsTWFpbg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2Rhb3JhLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2Rhb3JhLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNDQzMmUxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zZGFvcmEuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNEQU9SQS5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNEQU9SQS5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNkYW9zcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNkYW9zcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2QxOGFhYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2Rhb3NwLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TREFPU1AuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TREFPU1AuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsTWFpbg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2RhcHJzdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNkYXByc3QuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMyM2YwYzAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNkYXByc3QuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcGVyc2lzdC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcGVyc2lzdC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNkYXBzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2RhcHMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQyZGQwMDkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNkYXBzLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TREFQUy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNEQVBTLmRsbA0KK0VYUE9SVFMNCitEbGxNYWluDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNkYXJlbS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNkYXJlbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTQwMGYxOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2RhcmVtLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zcmVtb3RlLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc3JlbW90ZS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNkYXJ0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2RhcnQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNlYzVmYzgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNkYXJ0LmRlZgpAQCAtMCwwICsxLDEwMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNEQVJULkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU0RBUlQuRExMDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDcml0U2VjOjpDQ3JpdFNlYyh2b2lkKQ0KKz8/MENDcml0U2VjQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRG91YmxlTGlzdDo6Q0RvdWJsZUxpc3Qodm9pZCkNCis/PzBDRG91YmxlTGlzdEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0VYQXV0b0JhY2t1cEZpbGU6OkNFWEF1dG9CYWNrdXBGaWxlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wQ0VYQXV0b0JhY2t1cEZpbGVAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFWEF1dG9CYWNrdXBGaWxlOjpDRVhBdXRvQmFja3VwRmlsZSh2b2lkKQ0KKz8/MENFWEF1dG9CYWNrdXBGaWxlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRXhGaWxlT3BlcmF0aW9uOjpDRXhGaWxlT3BlcmF0aW9uKHZvaWQpDQorPz8wQ0V4RmlsZU9wZXJhdGlvbkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0Zha2VMb2NrOjpDRmFrZUxvY2sodm9pZCkNCis/PzBDRmFrZUxvY2tAQFFBRUBYWg0KKzsgcHJpdmF0ZTogX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpDTEtSSGFzaFRhYmxlKGNsYXNzIENMS1JIYXNoVGFibGUgY29uc3QgJikNCis/PzBDTEtSSGFzaFRhYmxlQEBBQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkNMS1JIYXNoVGFibGUoY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcgY29uc3QgIChfX3N0ZGNhbGwqKSh2b2lkIGNvbnN0ICopLHVuc2lnbmVkIGxvbmcgKF9fc3RkY2FsbCopKHVuc2lnbmVkIGxvbmcpLGJvb2wgKF9fc3RkY2FsbCopKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyksdm9pZCAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLGludCksZG91YmxlLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/PzBDTEtSSGFzaFRhYmxlQEBRQUVAUEJEUDZHP0JLUEJYQFpQNkdLS0BaUDZHX05LS0BaUDZHWDFIQFpOS0tAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGVTdGF0czo6Q0xLUkhhc2hUYWJsZVN0YXRzKHZvaWQpDQorPz8wQ0xLUkhhc2hUYWJsZVN0YXRzQEBRQUVAWFoNCis7IHByaXZhdGU6IF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q0xLUkxpbmVhckhhc2hUYWJsZShjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlIGNvbnN0ICYpDQorPz8wQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFQEFCVjBAQFoNCis7IHByaXZhdGU6IF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q0xLUkxpbmVhckhhc2hUYWJsZShjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZyBjb25zdCAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKiksdW5zaWduZWQgbG9uZyAoX19zdGRjYWxsKikodW5zaWduZWQgbG9uZyksYm9vbCAoX19zdGRjYWxsKikodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSx2b2lkIChfX3N0ZGNhbGwqKSh2b2lkIGNvbnN0ICosaW50KSxkb3VibGUsdW5zaWduZWQgbG9uZyxjbGFzcyBDTEtSSGFzaFRhYmxlICopDQorPz8wQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFQFBCRFA2Rz9CS1BCWEBaUDZHS0tAWlA2R19OS0tAWlA2R1gxSEBaTktQQVZDTEtSSGFzaFRhYmxlQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkNMS1JMaW5lYXJIYXNoVGFibGUoY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcgY29uc3QgIChfX3N0ZGNhbGwqKSh2b2lkIGNvbnN0ICopLHVuc2lnbmVkIGxvbmcgKF9fc3RkY2FsbCopKHVuc2lnbmVkIGxvbmcpLGJvb2wgKF9fc3RkY2FsbCopKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyksdm9pZCAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLGludCksZG91YmxlLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/PzBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUVAUEJEUDZHP0JLUEJYQFpQNkdLS0BaUDZHX05LS0BaUDZHWDFIQFpOS0tAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMb2NrZWREb3VibGVMaXN0OjpDTG9ja2VkRG91YmxlTGlzdCh2b2lkKQ0KKz8/MENMb2NrZWREb3VibGVMaXN0QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTG9ja2VkU2luZ2xlTGlzdDo6Q0xvY2tlZFNpbmdsZUxpc3Qodm9pZCkNCis/PzBDTG9ja2VkU2luZ2xlTGlzdEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpDUmVhZGVyV3JpdGVyTG9jazIodm9pZCkNCis/PzBDUmVhZGVyV3JpdGVyTG9jazJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6Q1JlYWRlcldyaXRlckxvY2szKHZvaWQpDQorPz8wQ1JlYWRlcldyaXRlckxvY2szQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6Q1JlYWRlcldyaXRlckxvY2sodm9pZCkNCis/PzBDUmVhZGVyV3JpdGVyTG9ja0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1NpbmdsZUxpc3Q6OkNTaW5nbGVMaXN0KHZvaWQpDQorPz8wQ1NpbmdsZUxpc3RAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTbWFsbFNwaW5Mb2NrOjpDU21hbGxTcGluTG9jayh2b2lkKQ0KKz8/MENTbWFsbFNwaW5Mb2NrQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU3BpbkxvY2s6OkNTcGluTG9jayh2b2lkKQ0KKz8/MENTcGluTG9ja0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NyaXRTZWM6On5DQ3JpdFNlYyh2b2lkKQ0KKz8/MUNDcml0U2VjQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRG91YmxlTGlzdDo6fkNEb3VibGVMaXN0KHZvaWQpDQorPz8xQ0RvdWJsZUxpc3RAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFWEF1dG9CYWNrdXBGaWxlOjp+Q0VYQXV0b0JhY2t1cEZpbGUodm9pZCkNCis/PzFDRVhBdXRvQmFja3VwRmlsZUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0V4RmlsZU9wZXJhdGlvbjo6fkNFeEZpbGVPcGVyYXRpb24odm9pZCkNCis/PzFDRXhGaWxlT3BlcmF0aW9uQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRmFrZUxvY2s6On5DRmFrZUxvY2sodm9pZCkNCis/PzFDRmFrZUxvY2tAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6On5DTEtSSGFzaFRhYmxlKHZvaWQpDQorPz8xQ0xLUkhhc2hUYWJsZUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6fkNMS1JMaW5lYXJIYXNoVGFibGUodm9pZCkNCis/PzFDTEtSTGluZWFySGFzaFRhYmxlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTG9ja2VkRG91YmxlTGlzdDo6fkNMb2NrZWREb3VibGVMaXN0KHZvaWQpDQorPz8xQ0xvY2tlZERvdWJsZUxpc3RAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMb2NrZWRTaW5nbGVMaXN0Ojp+Q0xvY2tlZFNpbmdsZUxpc3Qodm9pZCkNCis/PzFDTG9ja2VkU2luZ2xlTGlzdEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjp+Q1JlYWRlcldyaXRlckxvY2syKHZvaWQpDQorPz8xQ1JlYWRlcldyaXRlckxvY2syQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6On5DUmVhZGVyV3JpdGVyTG9jazModm9pZCkNCis/PzFDUmVhZGVyV3JpdGVyTG9jazNAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjp+Q1JlYWRlcldyaXRlckxvY2sodm9pZCkNCis/PzFDUmVhZGVyV3JpdGVyTG9ja0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1NpbmdsZUxpc3Q6On5DU2luZ2xlTGlzdCh2b2lkKQ0KKz8/MUNTaW5nbGVMaXN0QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6fkNTbWFsbFNwaW5Mb2NrKHZvaWQpDQorPz8xQ1NtYWxsU3BpbkxvY2tAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTcGluTG9jazo6fkNTcGluTG9jayh2b2lkKQ0KKz8/MUNTcGluTG9ja0BAUUFFQFhaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrQmFzZTwxLDEsMywxLDMsMj4gJiBfX3RoaXNjYWxsIENMb2NrQmFzZTwxLDEsMywxLDMsMj46Om9wZXJhdG9yPShjbGFzcyBDTG9ja0Jhc2U8MSwxLDMsMSwzLDI+IGNvbnN0ICYpDQorPz80PyRDTG9ja0Jhc2VAJDAwJDAwJDAyJDAwJDAyJDAxQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tCYXNlPDIsMSwxLDEsMywyPiAmIF9fdGhpc2NhbGwgQ0xvY2tCYXNlPDIsMSwxLDEsMywyPjo6b3BlcmF0b3I9KGNsYXNzIENMb2NrQmFzZTwyLDEsMSwxLDMsMj4gY29uc3QgJikNCis/PzQ/JENMb2NrQmFzZUAkMDEkMDAkMDAkMDAkMDIkMDFAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+ICYgX190aGlzY2FsbCBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tCYXNlPDMsMSwxLDEsMSwxPiBjb25zdCAmKQ0KKz8/ND8kQ0xvY2tCYXNlQCQwMiQwMCQwMCQwMCQwMCQwMEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrQmFzZTw0LDEsMSwyLDMsMz4gJiBfX3RoaXNjYWxsIENMb2NrQmFzZTw0LDEsMSwyLDMsMz46Om9wZXJhdG9yPShjbGFzcyBDTG9ja0Jhc2U8NCwxLDEsMiwzLDM+IGNvbnN0ICYpDQorPz80PyRDTG9ja0Jhc2VAJDAzJDAwJDAwJDAxJDAyJDAyQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tCYXNlPDUsMiwyLDEsMywyPiAmIF9fdGhpc2NhbGwgQ0xvY2tCYXNlPDUsMiwyLDEsMywyPjo6b3BlcmF0b3I9KGNsYXNzIENMb2NrQmFzZTw1LDIsMiwxLDMsMj4gY29uc3QgJikNCis/PzQ/JENMb2NrQmFzZUAkMDQkMDEkMDEkMDAkMDIkMDFAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTG9ja0Jhc2U8NiwyLDIsMSwzLDI+ICYgX190aGlzY2FsbCBDTG9ja0Jhc2U8NiwyLDIsMSwzLDI+OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tCYXNlPDYsMiwyLDEsMywyPiBjb25zdCAmKQ0KKz8/ND8kQ0xvY2tCYXNlQCQwNSQwMSQwMSQwMCQwMiQwMUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrQmFzZTw3LDIsMSwxLDMsMj4gJiBfX3RoaXNjYWxsIENMb2NrQmFzZTw3LDIsMSwxLDMsMj46Om9wZXJhdG9yPShjbGFzcyBDTG9ja0Jhc2U8NywyLDEsMSwzLDI+IGNvbnN0ICYpDQorPz80PyRDTG9ja0Jhc2VAJDA2JDAxJDAwJDAwJDAyJDAxQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NyaXRTZWMgJiBfX3RoaXNjYWxsIENDcml0U2VjOjpvcGVyYXRvcj0oY2xhc3MgQ0NyaXRTZWMgY29uc3QgJikNCis/PzRDQ3JpdFNlY0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENEb3VibGVMaXN0ICYgX190aGlzY2FsbCBDRG91YmxlTGlzdDo6b3BlcmF0b3I9KGNsYXNzIENEb3VibGVMaXN0IGNvbnN0ICYpDQorPz80Q0RvdWJsZUxpc3RAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDRVhBdXRvQmFja3VwRmlsZSAmIF9fdGhpc2NhbGwgQ0VYQXV0b0JhY2t1cEZpbGU6Om9wZXJhdG9yPShjbGFzcyBDRVhBdXRvQmFja3VwRmlsZSBjb25zdCAmKQ0KKz8/NENFWEF1dG9CYWNrdXBGaWxlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0V4RmlsZU9wZXJhdGlvbiAmIF9fdGhpc2NhbGwgQ0V4RmlsZU9wZXJhdGlvbjo6b3BlcmF0b3I9KGNsYXNzIENFeEZpbGVPcGVyYXRpb24gY29uc3QgJikNCis/PzRDRXhGaWxlT3BlcmF0aW9uQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0Zha2VMb2NrICYgX190aGlzY2FsbCBDRmFrZUxvY2s6Om9wZXJhdG9yPShjbGFzcyBDRmFrZUxvY2sgY29uc3QgJikNCis/PzRDRmFrZUxvY2tAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0xLUkhhc2hUYWJsZSAmIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6b3BlcmF0b3I9KGNsYXNzIENMS1JIYXNoVGFibGUgY29uc3QgJikNCis/PzRDTEtSSGFzaFRhYmxlQEBBQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xLUkhhc2hUYWJsZVN0YXRzICYgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlU3RhdHM6Om9wZXJhdG9yPShjbGFzcyBDTEtSSGFzaFRhYmxlU3RhdHMgY29uc3QgJikNCis/PzRDTEtSSGFzaFRhYmxlU3RhdHNAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSAmIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6b3BlcmF0b3I9KGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGUgY29uc3QgJikNCis/PzRDTEtSTGluZWFySGFzaFRhYmxlQEBBQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xvY2tlZERvdWJsZUxpc3QgJiBfX3RoaXNjYWxsIENMb2NrZWREb3VibGVMaXN0OjpvcGVyYXRvcj0oY2xhc3MgQ0xvY2tlZERvdWJsZUxpc3QgY29uc3QgJikNCis/PzRDTG9ja2VkRG91YmxlTGlzdEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENMb2NrZWRTaW5nbGVMaXN0ICYgX190aGlzY2FsbCBDTG9ja2VkU2luZ2xlTGlzdDo6b3BlcmF0b3I9KGNsYXNzIENMb2NrZWRTaW5nbGVMaXN0IGNvbnN0ICYpDQorPz80Q0xvY2tlZFNpbmdsZUxpc3RAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTWRWZXJzaW9uSW5mbyAmIF9fdGhpc2NhbGwgQ01kVmVyc2lvbkluZm86Om9wZXJhdG9yPShjbGFzcyBDTWRWZXJzaW9uSW5mbyBjb25zdCAmKQ0KKz8/NENNZFZlcnNpb25JbmZvQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1JlYWRlcldyaXRlckxvY2syICYgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6Om9wZXJhdG9yPShjbGFzcyBDUmVhZGVyV3JpdGVyTG9jazIgY29uc3QgJikNCis/PzRDUmVhZGVyV3JpdGVyTG9jazJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUmVhZGVyV3JpdGVyTG9jazMgJiBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6b3BlcmF0b3I9KGNsYXNzIENSZWFkZXJXcml0ZXJMb2NrMyBjb25zdCAmKQ0KKz8/NENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENSZWFkZXJXcml0ZXJMb2NrICYgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6b3BlcmF0b3I9KGNsYXNzIENSZWFkZXJXcml0ZXJMb2NrIGNvbnN0ICYpDQorPz80Q1JlYWRlcldyaXRlckxvY2tAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU2luZ2xlTGlzdCAmIF9fdGhpc2NhbGwgQ1NpbmdsZUxpc3Q6Om9wZXJhdG9yPShjbGFzcyBDU2luZ2xlTGlzdCBjb25zdCAmKQ0KKz8/NENTaW5nbGVMaXN0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1NtYWxsU3BpbkxvY2sgJiBfX3RoaXNjYWxsIENTbWFsbFNwaW5Mb2NrOjpvcGVyYXRvcj0oY2xhc3MgQ1NtYWxsU3BpbkxvY2sgY29uc3QgJikNCis/PzRDU21hbGxTcGluTG9ja0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTcGluTG9jayAmIF9fdGhpc2NhbGwgQ1NwaW5Mb2NrOjpvcGVyYXRvcj0oY2xhc3MgQ1NwaW5Mb2NrIGNvbnN0ICYpDQorPz80Q1NwaW5Mb2NrQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkFwcGx5KGVudW0gTEtfQUNUSU9OICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLHZvaWQgKiksdm9pZCAqLGVudW0gTEtfTE9DS1RZUEUpDQorP0FwcGx5QENMS1JIYXNoVGFibGVAQFFBRUtQNkc/QVc0TEtfQUNUSU9OQEBQQlhQQVhAWjFXNExLX0xPQ0tUWVBFQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6QXBwbHkoZW51bSBMS19BQ1RJT04gIChfX3N0ZGNhbGwqKSh2b2lkIGNvbnN0ICosdm9pZCAqKSx2b2lkICosZW51bSBMS19MT0NLVFlQRSkNCis/QXBwbHlAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUFFS1A2Rz9BVzRMS19BQ1RJT05AQFBCWFBBWEBaMVc0TEtfTE9DS1RZUEVAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpBcHBseUlmKGVudW0gTEtfUFJFRElDQVRFICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLHZvaWQgKiksZW51bSBMS19BQ1RJT04gIChfX3N0ZGNhbGwqKSh2b2lkIGNvbnN0ICosdm9pZCAqKSx2b2lkICosZW51bSBMS19MT0NLVFlQRSkNCis/QXBwbHlJZkBDTEtSSGFzaFRhYmxlQEBRQUVLUDZHP0FXNExLX1BSRURJQ0FURUBAUEJYUEFYQFpQNkc/QVc0TEtfQUNUSU9OQEAwMUBaMVc0TEtfTE9DS1RZUEVAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpBcHBseUlmKGVudW0gTEtfUFJFRElDQVRFICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLHZvaWQgKiksZW51bSBMS19BQ1RJT04gIChfX3N0ZGNhbGwqKSh2b2lkIGNvbnN0ICosdm9pZCAqKSx2b2lkICosZW51bSBMS19MT0NLVFlQRSkNCis/QXBwbHlJZkBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUVLUDZHP0FXNExLX1BSRURJQ0FURUBAUEJYUEFYQFpQNkc/QVc0TEtfQUNUSU9OQEAwMUBaMVc0TEtfTE9DS1RZUEVAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRVhBdXRvQmFja3VwRmlsZTo6QmFja3VwRmlsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9CYWNrdXBGaWxlQENFWEF1dG9CYWNrdXBGaWxlQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENMS1JIYXNoVGFibGVTdGF0czo6QnVja2V0SW5kZXgobG9uZykNCis/QnVja2V0SW5kZXhAQ0xLUkhhc2hUYWJsZVN0YXRzQEBTR0pKQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENMS1JIYXNoVGFibGVTdGF0czo6QnVja2V0U2l6ZShsb25nKQ0KKz9CdWNrZXRTaXplQENMS1JIYXNoVGFibGVTdGF0c0BAU0dKSkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGNvbnN0ICogX19zdGRjYWxsIENMS1JIYXNoVGFibGVTdGF0czo6QnVja2V0U2l6ZXModm9pZCkNCis/QnVja2V0U2l6ZXNAQ0xLUkhhc2hUYWJsZVN0YXRzQEBTR1BCSlhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkNoZWNrVGFibGUodm9pZCljb25zdCANCis/Q2hlY2tUYWJsZUBDTEtSSGFzaFRhYmxlQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q2hlY2tUYWJsZSh2b2lkKWNvbnN0IA0KKz9DaGVja1RhYmxlQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRUhYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fc3RkY2FsbCBDQ3JpdFNlYzo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDQ3JpdFNlY0BAU0dQQkRYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fc3RkY2FsbCBDRmFrZUxvY2s6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ0Zha2VMb2NrQEBTR1BCRFhaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIGNvbnN0ICogX19zdGRjYWxsIENMS1JIYXNoVGFibGU6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ0xLUkhhc2hUYWJsZUBAU0dQQkRYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fc3RkY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENMS1JMaW5lYXJIYXNoVGFibGVAQFNHUEJEWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgY29uc3QgKiBfX3N0ZGNhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENSZWFkZXJXcml0ZXJMb2NrMkBAU0dQQkRYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fc3RkY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OkNsYXNzTmFtZSh2b2lkKQ0KKz9DbGFzc05hbWVAQ1JlYWRlcldyaXRlckxvY2szQEBTR1BCRFhaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIGNvbnN0ICogX19zdGRjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENSZWFkZXJXcml0ZXJMb2NrQEBTR1BCRFhaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIGNvbnN0ICogX19zdGRjYWxsIENTbWFsbFNwaW5Mb2NrOjpDbGFzc05hbWUodm9pZCkNCis/Q2xhc3NOYW1lQENTbWFsbFNwaW5Mb2NrQEBTR1BCRFhaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIGNvbnN0ICogX19zdGRjYWxsIENTcGluTG9jazo6Q2xhc3NOYW1lKHZvaWQpDQorP0NsYXNzTmFtZUBDU3BpbkxvY2tAQFNHUEJEWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkNsZWFyKHZvaWQpDQorP0NsZWFyQENMS1JIYXNoVGFibGVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q2xlYXIodm9pZCkNCis/Q2xlYXJAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUFFWFhaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpDbG9zZUl0ZXJhdG9yKGNsYXNzIENMS1JIYXNoVGFibGU6OkNJdGVyYXRvciAqKQ0KKz9DbG9zZUl0ZXJhdG9yQENMS1JIYXNoVGFibGVAQFFBRT9BVzRMS19SRVRDT0RFQEBQQVZDSXRlcmF0b3JAMUBAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6Q2xvc2VJdGVyYXRvcihjbGFzcyBDTEtSSGFzaFRhYmxlOjpDQ29uc3RJdGVyYXRvciAqKWNvbnN0IA0KKz9DbG9zZUl0ZXJhdG9yQENMS1JIYXNoVGFibGVAQFFCRT9BVzRMS19SRVRDT0RFQEBQQVZDQ29uc3RJdGVyYXRvckAxQEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpDbG9zZUl0ZXJhdG9yKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNJdGVyYXRvciAqKQ0KKz9DbG9zZUl0ZXJhdG9yQENMS1JMaW5lYXJIYXNoVGFibGVAQFFBRT9BVzRMS19SRVRDT0RFQEBQQVZDSXRlcmF0b3JAMUBAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q2xvc2VJdGVyYXRvcihjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDQ29uc3RJdGVyYXRvciAqKWNvbnN0IA0KKz9DbG9zZUl0ZXJhdG9yQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRT9BVzRMS19SRVRDT0RFQEBQQVZDQ29uc3RJdGVyYXRvckAxQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ3JpdFNlYzo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpDQorP0NvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZEBDQ3JpdFNlY0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRmFrZUxvY2s6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKQ0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ0Zha2VMb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKWNvbnN0IA0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ0xLUkhhc2hUYWJsZUBAUUJFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCljb25zdCANCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCkNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENSZWFkZXJXcml0ZXJMb2NrMkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OkNvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKQ0KKz9Db252ZXJ0RXhjbHVzaXZlVG9TaGFyZWRAQ1JlYWRlcldyaXRlckxvY2szQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCkNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENSZWFkZXJXcml0ZXJMb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTbWFsbFNwaW5Mb2NrOjpDb252ZXJ0RXhjbHVzaXZlVG9TaGFyZWQodm9pZCkNCis/Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkQENTbWFsbFNwaW5Mb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTcGluTG9jazo6Q29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkKHZvaWQpDQorP0NvbnZlcnRFeGNsdXNpdmVUb1NoYXJlZEBDU3BpbkxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKQ0KKz9Db252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ0NyaXRTZWNAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Zha2VMb2NrOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENGYWtlTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCljb25zdCANCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENMS1JIYXNoVGFibGVAQFFCRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpY29uc3QgDQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpDQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDUmVhZGVyV3JpdGVyTG9jazJAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpDb252ZXJ0U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkNCis/Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlQENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpDQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDUmVhZGVyV3JpdGVyTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6Q29udmVydFNoYXJlZFRvRXhjbHVzaXZlKHZvaWQpDQorP0NvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZUBDU21hbGxTcGluTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3BpbkxvY2s6OkNvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZSh2b2lkKQ0KKz9Db252ZXJ0U2hhcmVkVG9FeGNsdXNpdmVAQ1NwaW5Mb2NrQEBRQUVYWFoNCis7IGxvbmcgX19zdGRjYWxsIENyZWF0ZUhvbGRlcihzdHJ1Y3QgSUdQRGlzcGVuc2VyICosaW50LHVuc2lnbmVkIGludCxzdHJ1Y3QgSUdQSG9sZGVyICogKikNCis/Q3JlYXRlSG9sZGVyQEBZR0pQQVVJR1BEaXNwZW5zZXJAQEhJUEFQQVVJR1BIb2xkZXJAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpEZWxldGVJZihlbnVtIExLX1BSRURJQ0FURSAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKix2b2lkICopLHZvaWQgKikNCis/RGVsZXRlSWZAQ0xLUkhhc2hUYWJsZUBAUUFFS1A2Rz9BVzRMS19QUkVESUNBVEVAQFBCWFBBWEBaMUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpEZWxldGVJZihlbnVtIExLX1BSRURJQ0FURSAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKix2b2lkICopLHZvaWQgKikNCis/RGVsZXRlSWZAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUFFS1A2Rz9BVzRMS19QUkVESUNBVEVAQFBCWFBBWEBaMUBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpEZWxldGVLZXkodW5zaWduZWQgbG9uZykNCis/RGVsZXRlS2V5QENMS1JIYXNoVGFibGVAQFFBRT9BVzRMS19SRVRDT0RFQEBLQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkRlbGV0ZUtleSh1bnNpZ25lZCBsb25nKQ0KKz9EZWxldGVLZXlAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUFFP0FXNExLX1JFVENPREVAQEtAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6RGVsZXRlUmVjb3JkKHZvaWQgY29uc3QgKikNCis/RGVsZXRlUmVjb3JkQENMS1JIYXNoVGFibGVAQFFBRT9BVzRMS19SRVRDT0RFQEBQQlhAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6RGVsZXRlUmVjb3JkKHZvaWQgY29uc3QgKikNCis/RGVsZXRlUmVjb3JkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFBRT9BVzRMS19SRVRDT0RFQEBQQlhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0V4RmlsZU9wZXJhdGlvbjo6Rk9Db3B5RmlsZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz9GT0NvcHlGaWxlQENFeEZpbGVPcGVyYXRpb25AQFFBRUpQQkcwSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRXhGaWxlT3BlcmF0aW9uOjpGT0NvcHlGaWxlREFDTFModW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9GT0NvcHlGaWxlREFDTFNAQ0V4RmlsZU9wZXJhdGlvbkBAUUFFSlBCRzBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0V4RmlsZU9wZXJhdGlvbjo6Rk9EZWxldGVGaWxlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0ZPRGVsZXRlRmlsZUBDRXhGaWxlT3BlcmF0aW9uQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENFeEZpbGVPcGVyYXRpb246OkZPTW92ZUZpbGUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9GT01vdmVGaWxlQENFeEZpbGVPcGVyYXRpb25AQFFBRUpQQkcwQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENFeEZpbGVPcGVyYXRpb246OkZPUmVwbGFjZUZpbGUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9GT1JlcGxhY2VGaWxlQENFeEZpbGVPcGVyYXRpb25AQFFBRUpQQkcwQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkZpbmRLZXkodW5zaWduZWQgbG9uZyx2b2lkIGNvbnN0ICogKiljb25zdCANCis/RmluZEtleUBDTEtSSGFzaFRhYmxlQEBRQkU/QVc0TEtfUkVUQ09ERUBAS1BBUEJYQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkZpbmRLZXkodW5zaWduZWQgbG9uZyx2b2lkIGNvbnN0ICogKiljb25zdCANCis/RmluZEtleUBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkU/QVc0TEtfUkVUQ09ERUBAS1BBUEJYQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkZpbmRSZWNvcmQodm9pZCBjb25zdCAqKWNvbnN0IA0KKz9GaW5kUmVjb3JkQENMS1JIYXNoVGFibGVAQFFCRT9BVzRMS19SRVRDT0RFQEBQQlhAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6RmluZFJlY29yZCh2b2lkIGNvbnN0ICopY29uc3QgDQorP0ZpbmRSZWNvcmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFP0FXNExLX1JFVENPREVAQFBCWEBaDQorOyBwdWJsaWM6IGNsYXNzIENMaXN0RW50cnkgKiBfX3RoaXNjYWxsIENEb3VibGVMaXN0OjpGaXJzdCh2b2lkKWNvbnN0IA0KKz9GaXJzdEBDRG91YmxlTGlzdEBAUUJFUUFWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fdGhpc2NhbGwgQ0xvY2tlZERvdWJsZUxpc3Q6OkZpcnN0KHZvaWQpDQorP0ZpcnN0QENMb2NrZWREb3VibGVMaXN0QEBRQUVRQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRVhBdXRvQmFja3VwRmlsZTo6R2V0QmFja3VwRmlsZSh1bnNpZ25lZCBzaG9ydCAqICopDQorP0dldEJhY2t1cEZpbGVAQ0VYQXV0b0JhY2t1cEZpbGVAQFFBRUhQQVBBR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6R2V0QnVja2V0TG9ja1NwaW5Db3VudCh2b2lkKQ0KKz9HZXRCdWNrZXRMb2NrU3BpbkNvdW50QENMS1JIYXNoVGFibGVAQFFBRUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkdldEJ1Y2tldExvY2tTcGluQ291bnQodm9pZCkNCis/R2V0QnVja2V0TG9ja1NwaW5Db3VudEBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUVHWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX3N0ZGNhbGwgQ0NyaXRTZWM6OkdldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcih2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ0NyaXRTZWNAQFNHTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19zdGRjYWxsIENGYWtlTG9jazo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDRmFrZUxvY2tAQFNHTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19zdGRjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUmVhZGVyV3JpdGVyTG9jazJAQFNHTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19zdGRjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUmVhZGVyV3JpdGVyTG9jazNAQFNHTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19zdGRjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpHZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3Iodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENSZWFkZXJXcml0ZXJMb2NrQEBTR05YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fc3RkY2FsbCBDU21hbGxTcGluTG9jazo6R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKHZvaWQpDQorP0dldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDU21hbGxTcGluTG9ja0BAU0dOWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX3N0ZGNhbGwgQ1NwaW5Mb2NrOjpHZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3Iodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENTcGluTG9ja0BAU0dOWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fc3RkY2FsbCBDQ3JpdFNlYzo6R2V0RGVmYXVsdFNwaW5Db3VudCh2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkNvdW50QENDcml0U2VjQEBTR0dYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19zdGRjYWxsIENGYWtlTG9jazo6R2V0RGVmYXVsdFNwaW5Db3VudCh2b2lkKQ0KKz9HZXREZWZhdWx0U3BpbkNvdW50QENGYWtlTG9ja0BAU0dHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fc3RkY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OkdldERlZmF1bHRTcGluQ291bnQodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazJAQFNHR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX3N0ZGNhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2szQEBTR0dYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19zdGRjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpHZXREZWZhdWx0U3BpbkNvdW50KHZvaWQpDQorP0dldERlZmF1bHRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2tAQFNHR1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX3N0ZGNhbGwgQ1NtYWxsU3BpbkxvY2s6OkdldERlZmF1bHRTcGluQ291bnQodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5Db3VudEBDU21hbGxTcGluTG9ja0BAU0dHWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fc3RkY2FsbCBDU3BpbkxvY2s6OkdldERlZmF1bHRTcGluQ291bnQodm9pZCkNCis/R2V0RGVmYXVsdFNwaW5Db3VudEBDU3BpbkxvY2tAQFNHR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgQ0NyaXRTZWM6OkdldFNwaW5Db3VudCh2b2lkKWNvbnN0IA0KKz9HZXRTcGluQ291bnRAQ0NyaXRTZWNAQFFCRUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENGYWtlTG9jazo6R2V0U3BpbkNvdW50KHZvaWQpY29uc3QgDQorP0dldFNwaW5Db3VudEBDRmFrZUxvY2tAQFFCRUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6R2V0U3BpbkNvdW50KHZvaWQpY29uc3QgDQorP0dldFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazJAQFFCRUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6R2V0U3BpbkNvdW50KHZvaWQpY29uc3QgDQorP0dldFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazNAQFFCRUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpHZXRTcGluQ291bnQodm9pZCljb25zdCANCis/R2V0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrQEBRQkVHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6R2V0U3BpbkNvdW50KHZvaWQpY29uc3QgDQorP0dldFNwaW5Db3VudEBDU21hbGxTcGluTG9ja0BAUUJFR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgQ1NwaW5Mb2NrOjpHZXRTcGluQ291bnQodm9pZCljb25zdCANCis/R2V0U3BpbkNvdW50QENTcGluTG9ja0BAUUJFR1haDQorOyBwdWJsaWM6IGNsYXNzIENMS1JIYXNoVGFibGVTdGF0cyAgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpHZXRTdGF0aXN0aWNzKHZvaWQpY29uc3QgDQorP0dldFN0YXRpc3RpY3NAQ0xLUkhhc2hUYWJsZUBAUUJFP0FWQ0xLUkhhc2hUYWJsZVN0YXRzQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDTEtSSGFzaFRhYmxlU3RhdHMgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6R2V0U3RhdGlzdGljcyh2b2lkKWNvbnN0IA0KKz9HZXRTdGF0aXN0aWNzQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRT9BVkNMS1JIYXNoVGFibGVTdGF0c0BAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpHZXRUYWJsZUxvY2tTcGluQ291bnQodm9pZCkNCis/R2V0VGFibGVMb2NrU3BpbkNvdW50QENMS1JIYXNoVGFibGVAQFFBRUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OkdldFRhYmxlTG9ja1NwaW5Db3VudCh2b2lkKQ0KKz9HZXRUYWJsZUxvY2tTcGluQ291bnRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUFFR1haDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDTWRWZXJzaW9uSW5mbzo6R2V0VmVyc2lvbkV4VyhzdHJ1Y3QgX09TVkVSU0lPTklORk9XICopDQorP0dldFZlcnNpb25FeFdAQ01kVmVyc2lvbkluZm9AQFNBSFBBVV9PU1ZFUlNJT05JTkZPV0BAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSBjb25zdCAqIF9fdGhpc2NhbGwgQ0RvdWJsZUxpc3Q6OkhlYWROb2RlKHZvaWQpY29uc3QgDQorP0hlYWROb2RlQENEb3VibGVMaXN0QEBRQkVRQlZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5IGNvbnN0ICogX190aGlzY2FsbCBDTG9ja2VkRG91YmxlTGlzdDo6SGVhZE5vZGUodm9pZCljb25zdCANCis/SGVhZE5vZGVAQ0xvY2tlZERvdWJsZUxpc3RAQFFCRVFCVkNMaXN0RW50cnlAQFhaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpJbmNyZW1lbnRJdGVyYXRvcihjbGFzcyBDTEtSSGFzaFRhYmxlOjpDSXRlcmF0b3IgKikNCis/SW5jcmVtZW50SXRlcmF0b3JAQ0xLUkhhc2hUYWJsZUBAUUFFP0FXNExLX1JFVENPREVAQFBBVkNJdGVyYXRvckAxQEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpJbmNyZW1lbnRJdGVyYXRvcihjbGFzcyBDTEtSSGFzaFRhYmxlOjpDQ29uc3RJdGVyYXRvciAqKWNvbnN0IA0KKz9JbmNyZW1lbnRJdGVyYXRvckBDTEtSSGFzaFRhYmxlQEBRQkU/QVc0TEtfUkVUQ09ERUBAUEFWQ0NvbnN0SXRlcmF0b3JAMUBAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SW5jcmVtZW50SXRlcmF0b3IoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q0l0ZXJhdG9yICopDQorP0luY3JlbWVudEl0ZXJhdG9yQENMS1JMaW5lYXJIYXNoVGFibGVAQFFBRT9BVzRMS19SRVRDT0RFQEBQQVZDSXRlcmF0b3JAMUBAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SW5jcmVtZW50SXRlcmF0b3IoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q0NvbnN0SXRlcmF0b3IgKiljb25zdCANCis/SW5jcmVtZW50SXRlcmF0b3JAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFP0FXNExLX1JFVENPREVAQFBBVkNDb25zdEl0ZXJhdG9yQDFAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OkluaXRpYWxpemVJdGVyYXRvcihjbGFzcyBDTEtSSGFzaFRhYmxlOjpDSXRlcmF0b3IgKikNCis/SW5pdGlhbGl6ZUl0ZXJhdG9yQENMS1JIYXNoVGFibGVAQFFBRT9BVzRMS19SRVRDT0RFQEBQQVZDSXRlcmF0b3JAMUBAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6SW5pdGlhbGl6ZUl0ZXJhdG9yKGNsYXNzIENMS1JIYXNoVGFibGU6OkNDb25zdEl0ZXJhdG9yICopY29uc3QgDQorP0luaXRpYWxpemVJdGVyYXRvckBDTEtSSGFzaFRhYmxlQEBRQkU/QVc0TEtfUkVUQ09ERUBAUEFWQ0NvbnN0SXRlcmF0b3JAMUBAWg0KKzsgcHVibGljOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SW5pdGlhbGl6ZUl0ZXJhdG9yKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNJdGVyYXRvciAqKQ0KKz9Jbml0aWFsaXplSXRlcmF0b3JAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUFFP0FXNExLX1JFVENPREVAQFBBVkNJdGVyYXRvckAxQEBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpJbml0aWFsaXplSXRlcmF0b3IoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q0NvbnN0SXRlcmF0b3IgKiljb25zdCANCis/SW5pdGlhbGl6ZUl0ZXJhdG9yQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRT9BVzRMS19SRVRDT0RFQEBQQVZDQ29uc3RJdGVyYXRvckAxQEBaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50IF9fY2RlY2wgQ01kVmVyc2lvbkluZm86OkluaXRpYWxpemVWZXJzaW9uSW5mbyh2b2lkKQ0KKz9Jbml0aWFsaXplVmVyc2lvbkluZm9AQ01kVmVyc2lvbkluZm9AQENBSFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRG91YmxlTGlzdDo6SW5zZXJ0SGVhZChjbGFzcyBDTGlzdEVudHJ5ICogY29uc3QpDQorP0luc2VydEhlYWRAQ0RvdWJsZUxpc3RAQFFBRVhRQVZDTGlzdEVudHJ5QEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xvY2tlZERvdWJsZUxpc3Q6Okluc2VydEhlYWQoY2xhc3MgQ0xpc3RFbnRyeSAqIGNvbnN0KQ0KKz9JbnNlcnRIZWFkQENMb2NrZWREb3VibGVMaXN0QEBRQUVYUUFWQ0xpc3RFbnRyeUBAQFoNCis7IHB1YmxpYzogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6Okluc2VydFJlY29yZCh2b2lkIGNvbnN0ICosYm9vbCkNCis/SW5zZXJ0UmVjb3JkQENMS1JIYXNoVGFibGVAQFFBRT9BVzRMS19SRVRDT0RFQEBQQlhfTkBaDQorOyBwdWJsaWM6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpJbnNlcnRSZWNvcmQodm9pZCBjb25zdCAqLGJvb2wpDQorP0luc2VydFJlY29yZEBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUU/QVc0TEtfUkVUQ09ERUBAUEJYX05AWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0RvdWJsZUxpc3Q6Okluc2VydFRhaWwoY2xhc3MgQ0xpc3RFbnRyeSAqIGNvbnN0KQ0KKz9JbnNlcnRUYWlsQENEb3VibGVMaXN0QEBRQUVYUUFWQ0xpc3RFbnRyeUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMb2NrZWREb3VibGVMaXN0OjpJbnNlcnRUYWlsKGNsYXNzIENMaXN0RW50cnkgKiBjb25zdCkNCis/SW5zZXJ0VGFpbEBDTG9ja2VkRG91YmxlTGlzdEBAUUFFWFFBVkNMaXN0RW50cnlAQEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDRG91YmxlTGlzdDo6SXNFbXB0eSh2b2lkKWNvbnN0IA0KKz9Jc0VtcHR5QENEb3VibGVMaXN0QEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTG9ja2VkRG91YmxlTGlzdDo6SXNFbXB0eSh2b2lkKWNvbnN0IA0KKz9Jc0VtcHR5QENMb2NrZWREb3VibGVMaXN0QEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTG9ja2VkU2luZ2xlTGlzdDo6SXNFbXB0eSh2b2lkKWNvbnN0IA0KKz9Jc0VtcHR5QENMb2NrZWRTaW5nbGVMaXN0QEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU2luZ2xlTGlzdDo6SXNFbXB0eSh2b2lkKWNvbnN0IA0KKz9Jc0VtcHR5QENTaW5nbGVMaXN0QEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTG9ja2VkRG91YmxlTGlzdDo6SXNMb2NrZWQodm9pZCljb25zdCANCis/SXNMb2NrZWRAQ0xvY2tlZERvdWJsZUxpc3RAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMb2NrZWRTaW5nbGVMaXN0OjpJc0xvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc0xvY2tlZEBDTG9ja2VkU2luZ2xlTGlzdEBAUUJFX05YWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ01kVmVyc2lvbkluZm86OklzTWlsbG5tKHZvaWQpDQorP0lzTWlsbG5tQENNZFZlcnNpb25JbmZvQEBTQUhYWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRMb2NrZWRAQ0NyaXRTZWNAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENGYWtlTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZExvY2tlZEBDRmFrZUxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRMb2NrZWRAQ0xLUkhhc2hUYWJsZUBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZExvY2tlZEBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRMb2NrZWRAQ1JlYWRlcldyaXRlckxvY2syQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRMb2NrZWRAQ1JlYWRlcldyaXRlckxvY2szQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZExvY2tlZEBDUmVhZGVyV3JpdGVyTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1NtYWxsU3BpbkxvY2s6OklzUmVhZExvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRMb2NrZWRAQ1NtYWxsU3BpbkxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTcGluTG9jazo6SXNSZWFkTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZExvY2tlZEBDU3BpbkxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENDcml0U2VjOjpJc1JlYWRVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRVbmxvY2tlZEBDQ3JpdFNlY0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0Zha2VMb2NrOjpJc1JlYWRVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1JlYWRVbmxvY2tlZEBDRmFrZUxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OklzUmVhZFVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZFVubG9ja2VkQENMS1JIYXNoVGFibGVAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6OklzUmVhZFVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZFVubG9ja2VkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkVW5sb2NrZWRAQ1JlYWRlcldyaXRlckxvY2syQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OklzUmVhZFVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZFVubG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrM0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6OklzUmVhZFVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzUmVhZFVubG9ja2VkQENSZWFkZXJXcml0ZXJMb2NrQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkVW5sb2NrZWRAQ1NtYWxsU3BpbkxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTcGluTG9jazo6SXNSZWFkVW5sb2NrZWQodm9pZCljb25zdCANCis/SXNSZWFkVW5sb2NrZWRAQ1NwaW5Mb2NrQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTG9ja2VkRG91YmxlTGlzdDo6SXNVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1VubG9ja2VkQENMb2NrZWREb3VibGVMaXN0QEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTG9ja2VkU2luZ2xlTGlzdDo6SXNVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1VubG9ja2VkQENMb2NrZWRTaW5nbGVMaXN0QEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpJc1VzYWJsZSh2b2lkKWNvbnN0IA0KKz9Jc1VzYWJsZUBDTEtSSGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpJc1VzYWJsZSh2b2lkKWNvbnN0IA0KKz9Jc1VzYWJsZUBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpJc1ZhbGlkKHZvaWQpY29uc3QgDQorP0lzVmFsaWRAQ0xLUkhhc2hUYWJsZUBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SXNWYWxpZCh2b2lkKWNvbnN0IA0KKz9Jc1ZhbGlkQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRV9OWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENNZFZlcnNpb25JbmZvOjpJc1dpbjJrKHZvaWQpDQorP0lzV2luMmtAQ01kVmVyc2lvbkluZm9AQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDTWRWZXJzaW9uSW5mbzo6SXNXaW4ya29yTGF0ZXIodm9pZCkNCis/SXNXaW4ya29yTGF0ZXJAQ01kVmVyc2lvbkluZm9AQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDTWRWZXJzaW9uSW5mbzo6SXNXaW45NSh2b2lkKQ0KKz9Jc1dpbjk1QENNZFZlcnNpb25JbmZvQEBTQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ01kVmVyc2lvbkluZm86OklzV2luOTgodm9pZCkNCis/SXNXaW45OEBDTWRWZXJzaW9uSW5mb0BAU0FIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENNZFZlcnNpb25JbmZvOjpJc1dpbjk4b3JMYXRlcih2b2lkKQ0KKz9Jc1dpbjk4b3JMYXRlckBDTWRWZXJzaW9uSW5mb0BAU0FIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIENNZFZlcnNpb25JbmZvOjpJc1dpbjl4KHZvaWQpDQorP0lzV2luOXhAQ01kVmVyc2lvbkluZm9AQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDTWRWZXJzaW9uSW5mbzo6SXNXaW5OVDQodm9pZCkNCis/SXNXaW5OVDRAQ01kVmVyc2lvbkluZm9AQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBDTWRWZXJzaW9uSW5mbzo6SXNXaW5OVCh2b2lkKQ0KKz9Jc1dpbk5UQENNZFZlcnNpb25JbmZvQEBTQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgQ01kVmVyc2lvbkluZm86OklzV2luTnQ0b3JMYXRlcih2b2lkKQ0KKz9Jc1dpbk50NG9yTGF0ZXJAQ01kVmVyc2lvbkluZm9AQFNBSFhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDQ3JpdFNlYzo6SXNXcml0ZUxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1dyaXRlTG9ja2VkQENDcml0U2VjQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDRmFrZUxvY2s6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZUxvY2tlZEBDRmFrZUxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZUxvY2tlZEBDTEtSSGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVMb2NrZWRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVMb2NrZWRAQ1JlYWRlcldyaXRlckxvY2syQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OklzV3JpdGVMb2NrZWQodm9pZCljb25zdCANCis/SXNXcml0ZUxvY2tlZEBDUmVhZGVyV3JpdGVyTG9jazNAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVMb2NrZWRAQ1JlYWRlcldyaXRlckxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTbWFsbFNwaW5Mb2NrOjpJc1dyaXRlTG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVMb2NrZWRAQ1NtYWxsU3BpbkxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTcGluTG9jazo6SXNXcml0ZUxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1dyaXRlTG9ja2VkQENTcGluTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OklzV3JpdGVVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ0NyaXRTZWNAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENGYWtlTG9jazo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVVbmxvY2tlZEBDRmFrZUxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OklzV3JpdGVVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ0xLUkhhc2hUYWJsZUBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVVbmxvY2tlZEBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OklzV3JpdGVVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ1JlYWRlcldyaXRlckxvY2syQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OklzV3JpdGVVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ1JlYWRlcldyaXRlckxvY2szQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVVbmxvY2tlZEBDUmVhZGVyV3JpdGVyTG9ja0BAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1NtYWxsU3BpbkxvY2s6OklzV3JpdGVVbmxvY2tlZCh2b2lkKWNvbnN0IA0KKz9Jc1dyaXRlVW5sb2NrZWRAQ1NtYWxsU3BpbkxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTcGluTG9jazo6SXNXcml0ZVVubG9ja2VkKHZvaWQpY29uc3QgDQorP0lzV3JpdGVVbmxvY2tlZEBDU3BpbkxvY2tAQFFCRV9OWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fdGhpc2NhbGwgQ0RvdWJsZUxpc3Q6Okxhc3Qodm9pZCljb25zdCANCis/TGFzdEBDRG91YmxlTGlzdEBAUUJFUUFWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0xpc3RFbnRyeSAqIF9fdGhpc2NhbGwgQ0xvY2tlZERvdWJsZUxpc3Q6Okxhc3Qodm9pZCkNCis/TGFzdEBDTG9ja2VkRG91YmxlTGlzdEBAUUFFUUFWQ0xpc3RFbnRyeUBAWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMb2NrZWREb3VibGVMaXN0OjpMb2NrKHZvaWQpDQorP0xvY2tAQ0xvY2tlZERvdWJsZUxpc3RAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xvY2tlZFNpbmdsZUxpc3Q6OkxvY2sodm9pZCkNCis/TG9ja0BDTG9ja2VkU2luZ2xlTGlzdEBAUUFFWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MSwxLDMsMSwzLDI+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDAkMDAkMDIkMDAkMDIkMDFAQFNHP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MiwxLDEsMSwzLDI+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDEkMDAkMDAkMDAkMDIkMDFAQFNHP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDIkMDAkMDAkMDAkMDAkMDBAQFNHP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NCwxLDEsMiwzLDM+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDMkMDAkMDAkMDEkMDIkMDJAQFNHP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NSwyLDIsMSwzLDI+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDQkMDEkMDEkMDAkMDIkMDFAQFNHP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NiwyLDIsMSwzLDI+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDUkMDEkMDEkMDAkMDIkMDFAQFNHP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfTE9DS1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NywyLDEsMSwzLDI+OjpMb2NrVHlwZSh2b2lkKQ0KKz9Mb2NrVHlwZUA/JENMb2NrQmFzZUAkMDYkMDEkMDAkMDAkMDIkMDFAQFNHP0FXNExPQ0tfTE9DS1RZUEVAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpNYXhTaXplKHZvaWQpY29uc3QgDQorP01heFNpemVAQ0xLUkhhc2hUYWJsZUBAUUJFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpNYXhTaXplKHZvaWQpY29uc3QgDQorP01heFNpemVAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFS1haDQorOyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgTXBIZWFwQ29tcGFjdCh2b2lkICopDQorP01wSGVhcENvbXBhY3RAQFlBS1BBWEBaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MSwxLDMsMSwzLDI+OjpNdXRleFR5cGUodm9pZCkNCis/TXV0ZXhUeXBlQD8kQ0xvY2tCYXNlQCQwMCQwMCQwMiQwMCQwMiQwMUBAU0c/QVc0TE9DS19SV19NVVRFWEBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SV19NVVRFWCAgX19zdGRjYWxsIENMb2NrQmFzZTwyLDEsMSwxLDMsMj46Ok11dGV4VHlwZSh2b2lkKQ0KKz9NdXRleFR5cGVAPyRDTG9ja0Jhc2VAJDAxJDAwJDAwJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1JXX01VVEVYQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JXX01VVEVYICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDMsMSwxLDEsMSwxPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDIkMDAkMDAkMDAkMDAkMDBAQFNHP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NCwxLDEsMiwzLDM+OjpNdXRleFR5cGUodm9pZCkNCis/TXV0ZXhUeXBlQD8kQ0xvY2tCYXNlQCQwMyQwMCQwMCQwMSQwMiQwMkBAU0c/QVc0TE9DS19SV19NVVRFWEBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SV19NVVRFWCAgX19zdGRjYWxsIENMb2NrQmFzZTw1LDIsMiwxLDMsMj46Ok11dGV4VHlwZSh2b2lkKQ0KKz9NdXRleFR5cGVAPyRDTG9ja0Jhc2VAJDA0JDAxJDAxJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1JXX01VVEVYQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JXX01VVEVYICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDYsMiwyLDEsMywyPjo6TXV0ZXhUeXBlKHZvaWQpDQorP011dGV4VHlwZUA/JENMb2NrQmFzZUAkMDUkMDEkMDEkMDAkMDIkMDFAQFNHP0FXNExPQ0tfUldfTVVURVhAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUldfTVVURVggIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NywyLDEsMSwzLDI+OjpNdXRleFR5cGUodm9pZCkNCis/TXV0ZXhUeXBlQD8kQ0xvY2tCYXNlQCQwNiQwMSQwMCQwMCQwMiQwMUBAU0c/QVc0TE9DS19SV19NVVRFWEBAWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6TnVtU3ViVGFibGVzKHZvaWQpY29uc3QgDQorP051bVN1YlRhYmxlc0BDTEtSSGFzaFRhYmxlQEBRQkVIWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTEtfVEFCTEVTSVpFICBfX3N0ZGNhbGwgQ0xLUkhhc2hUYWJsZTo6TnVtU3ViVGFibGVzKHVuc2lnbmVkIGxvbmcgJix1bnNpZ25lZCBsb25nICYpDQorP051bVN1YlRhYmxlc0BDTEtSSGFzaFRhYmxlQEBTRz9BVzRMS19UQUJMRVNJWkVAQEFBSzBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpOdW1TdWJUYWJsZXModm9pZCljb25zdCANCis/TnVtU3ViVGFibGVzQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRUhYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMS19UQUJMRVNJWkUgIF9fc3RkY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpOdW1TdWJUYWJsZXModW5zaWduZWQgbG9uZyAmLHVuc2lnbmVkIGxvbmcgJikNCis/TnVtU3ViVGFibGVzQENMS1JMaW5lYXJIYXNoVGFibGVAQFNHP0FXNExLX1RBQkxFU0laRUBAQUFLMEBaDQorOyBpbnQgX19zdGRjYWxsIE9uVW5pY29kZVN5c3RlbSh2b2lkKQ0KKz9PblVuaWNvZGVTeXN0ZW1AQFlHSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDEsMSwzLDEsMywyPjo6UGVyTG9ja1NwaW4odm9pZCkNCis/UGVyTG9ja1NwaW5APyRDTG9ja0Jhc2VAJDAwJDAwJDAyJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1BFUkxPQ0tfU1BJTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19QRVJMT0NLX1NQSU4gIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MiwxLDEsMSwzLDI+OjpQZXJMb2NrU3Bpbih2b2lkKQ0KKz9QZXJMb2NrU3BpbkA/JENMb2NrQmFzZUAkMDEkMDAkMDAkMDAkMDIkMDFAQFNHP0FXNExPQ0tfUEVSTE9DS19TUElOQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1BFUkxPQ0tfU1BJTiAgX19zdGRjYWxsIENMb2NrQmFzZTwzLDEsMSwxLDEsMT46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwMiQwMCQwMCQwMCQwMCQwMEBAU0c/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDQsMSwxLDIsMywzPjo6UGVyTG9ja1NwaW4odm9pZCkNCis/UGVyTG9ja1NwaW5APyRDTG9ja0Jhc2VAJDAzJDAwJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX1BFUkxPQ0tfU1BJTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19QRVJMT0NLX1NQSU4gIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NSwyLDIsMSwzLDI+OjpQZXJMb2NrU3Bpbih2b2lkKQ0KKz9QZXJMb2NrU3BpbkA/JENMb2NrQmFzZUAkMDQkMDEkMDEkMDAkMDIkMDFAQFNHP0FXNExPQ0tfUEVSTE9DS19TUElOQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1BFUkxPQ0tfU1BJTiAgX19zdGRjYWxsIENMb2NrQmFzZTw2LDIsMiwxLDMsMj46OlBlckxvY2tTcGluKHZvaWQpDQorP1BlckxvY2tTcGluQD8kQ0xvY2tCYXNlQCQwNSQwMSQwMSQwMCQwMiQwMUBAU0c/QVc0TE9DS19QRVJMT0NLX1NQSU5AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUEVSTE9DS19TUElOICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDcsMiwxLDEsMywyPjo6UGVyTG9ja1NwaW4odm9pZCkNCis/UGVyTG9ja1NwaW5APyRDTG9ja0Jhc2VAJDA2JDAxJDAwJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1BFUkxPQ0tfU1BJTkBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ1NpbmdsZUxpc3RFbnRyeSAqIF9fdGhpc2NhbGwgQ0xvY2tlZFNpbmdsZUxpc3Q6OlBvcCh2b2lkKQ0KKz9Qb3BAQ0xvY2tlZFNpbmdsZUxpc3RAQFFBRVFBVkNTaW5nbGVMaXN0RW50cnlAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENTaW5nbGVMaXN0RW50cnkgKiBfX3RoaXNjYWxsIENTaW5nbGVMaXN0OjpQb3Aodm9pZCkNCis/UG9wQENTaW5nbGVMaXN0QEBRQUVRQVZDU2luZ2xlTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6UHJpbnQodm9pZCljb25zdCANCis/UHJpbnRAQ0xLUkhhc2hUYWJsZUBAUUJFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpQcmludCh2b2lkKWNvbnN0IA0KKz9QcmludEBDTEtSTGluZWFySGFzaFRhYmxlQEBRQkVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMb2NrZWRTaW5nbGVMaXN0OjpQdXNoKGNsYXNzIENTaW5nbGVMaXN0RW50cnkgKiBjb25zdCkNCis/UHVzaEBDTG9ja2VkU2luZ2xlTGlzdEBAUUFFWFFBVkNTaW5nbGVMaXN0RW50cnlAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU2luZ2xlTGlzdDo6UHVzaChjbGFzcyBDU2luZ2xlTGlzdEVudHJ5ICogY29uc3QpDQorP1B1c2hAQ1NpbmdsZUxpc3RAQFFBRVhRQVZDU2luZ2xlTGlzdEVudHJ5QEBAWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1FVRVVFX1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MSwxLDMsMSwzLDI+OjpRdWV1ZVR5cGUodm9pZCkNCis/UXVldWVUeXBlQD8kQ0xvY2tCYXNlQCQwMCQwMCQwMiQwMCQwMiQwMUBAU0c/QVc0TE9DS19RVUVVRV9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1FVRVVFX1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MiwxLDEsMSwzLDI+OjpRdWV1ZVR5cGUodm9pZCkNCis/UXVldWVUeXBlQD8kQ0xvY2tCYXNlQCQwMSQwMCQwMCQwMCQwMiQwMUBAU0c/QVc0TE9DS19RVUVVRV9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1FVRVVFX1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+OjpRdWV1ZVR5cGUodm9pZCkNCis/UXVldWVUeXBlQD8kQ0xvY2tCYXNlQCQwMiQwMCQwMCQwMCQwMCQwMEBAU0c/QVc0TE9DS19RVUVVRV9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1FVRVVFX1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NCwxLDEsMiwzLDM+OjpRdWV1ZVR5cGUodm9pZCkNCis/UXVldWVUeXBlQD8kQ0xvY2tCYXNlQCQwMyQwMCQwMCQwMSQwMiQwMkBAU0c/QVc0TE9DS19RVUVVRV9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1FVRVVFX1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NSwyLDIsMSwzLDI+OjpRdWV1ZVR5cGUodm9pZCkNCis/UXVldWVUeXBlQD8kQ0xvY2tCYXNlQCQwNCQwMSQwMSQwMCQwMiQwMUBAU0c/QVc0TE9DS19RVUVVRV9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1FVRVVFX1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NiwyLDIsMSwzLDI+OjpRdWV1ZVR5cGUodm9pZCkNCis/UXVldWVUeXBlQD8kQ0xvY2tCYXNlQCQwNSQwMSQwMSQwMCQwMiQwMUBAU0c/QVc0TE9DS19RVUVVRV9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1FVRVVFX1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NywyLDEsMSwzLDI+OjpRdWV1ZVR5cGUodm9pZCkNCis/UXVldWVUeXBlQD8kQ0xvY2tCYXNlQCQwNiQwMSQwMCQwMCQwMiQwMUBAU0c/QVc0TE9DS19RVUVVRV9UWVBFQEBYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OlJlYWRMb2NrKHZvaWQpDQorP1JlYWRMb2NrQENDcml0U2VjQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGYWtlTG9jazo6UmVhZExvY2sodm9pZCkNCis/UmVhZExvY2tAQ0Zha2VMb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OlJlYWRMb2NrKHZvaWQpY29uc3QgDQorP1JlYWRMb2NrQENMS1JIYXNoVGFibGVAQFFCRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6UmVhZExvY2sodm9pZCljb25zdCANCis/UmVhZExvY2tAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OlJlYWRMb2NrKHZvaWQpDQorP1JlYWRMb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OlJlYWRMb2NrKHZvaWQpDQorP1JlYWRMb2NrQENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6UmVhZExvY2sodm9pZCkNCis/UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NtYWxsU3BpbkxvY2s6OlJlYWRMb2NrKHZvaWQpDQorP1JlYWRMb2NrQENTbWFsbFNwaW5Mb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTcGluTG9jazo6UmVhZExvY2sodm9pZCkNCis/UmVhZExvY2tAQ1NwaW5Mb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENDcml0U2VjOjpSZWFkT3JXcml0ZUxvY2sodm9pZCkNCis/UmVhZE9yV3JpdGVMb2NrQENDcml0U2VjQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDRmFrZUxvY2s6OlJlYWRPcldyaXRlTG9jayh2b2lkKQ0KKz9SZWFkT3JXcml0ZUxvY2tAQ0Zha2VMb2NrQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OlJlYWRPcldyaXRlTG9jayh2b2lkKQ0KKz9SZWFkT3JXcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDU3BpbkxvY2s6OlJlYWRPcldyaXRlTG9jayh2b2lkKQ0KKz9SZWFkT3JXcml0ZUxvY2tAQ1NwaW5Mb2NrQEBRQUVfTlhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ3JpdFNlYzo6UmVhZE9yV3JpdGVVbmxvY2soYm9vbCkNCis/UmVhZE9yV3JpdGVVbmxvY2tAQ0NyaXRTZWNAQFFBRVhfTkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRmFrZUxvY2s6OlJlYWRPcldyaXRlVW5sb2NrKGJvb2wpDQorP1JlYWRPcldyaXRlVW5sb2NrQENGYWtlTG9ja0BAUUFFWF9OQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6UmVhZE9yV3JpdGVVbmxvY2soYm9vbCkNCis/UmVhZE9yV3JpdGVVbmxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRQUVYX05AWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NwaW5Mb2NrOjpSZWFkT3JXcml0ZVVubG9jayhib29sKQ0KKz9SZWFkT3JXcml0ZVVubG9ja0BDU3BpbkxvY2tAQFFBRVhfTkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ3JpdFNlYzo6UmVhZFVubG9jayh2b2lkKQ0KKz9SZWFkVW5sb2NrQENDcml0U2VjQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGYWtlTG9jazo6UmVhZFVubG9jayh2b2lkKQ0KKz9SZWFkVW5sb2NrQENGYWtlTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpSZWFkVW5sb2NrKHZvaWQpY29uc3QgDQorP1JlYWRVbmxvY2tAQ0xLUkhhc2hUYWJsZUBAUUJFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpSZWFkVW5sb2NrKHZvaWQpY29uc3QgDQorP1JlYWRVbmxvY2tAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OlJlYWRVbmxvY2sodm9pZCkNCis/UmVhZFVubG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpSZWFkVW5sb2NrKHZvaWQpDQorP1JlYWRVbmxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpSZWFkVW5sb2NrKHZvaWQpDQorP1JlYWRVbmxvY2tAQ1JlYWRlcldyaXRlckxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NtYWxsU3BpbkxvY2s6OlJlYWRVbmxvY2sodm9pZCkNCis/UmVhZFVubG9ja0BDU21hbGxTcGluTG9ja0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3BpbkxvY2s6OlJlYWRVbmxvY2sodm9pZCkNCis/UmVhZFVubG9ja0BDU3BpbkxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JFQ1VSU0lPTiAgX19zdGRjYWxsIENMb2NrQmFzZTwxLDEsMywxLDMsMj46OlJlY3Vyc2lvbih2b2lkKQ0KKz9SZWN1cnNpb25APyRDTG9ja0Jhc2VAJDAwJDAwJDAyJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1JFQ1VSU0lPTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SRUNVUlNJT04gIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MiwxLDEsMSwzLDI+OjpSZWN1cnNpb24odm9pZCkNCis/UmVjdXJzaW9uQD8kQ0xvY2tCYXNlQCQwMSQwMCQwMCQwMCQwMiQwMUBAU0c/QVc0TE9DS19SRUNVUlNJT05AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUkVDVVJTSU9OICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDMsMSwxLDEsMSwxPjo6UmVjdXJzaW9uKHZvaWQpDQorP1JlY3Vyc2lvbkA/JENMb2NrQmFzZUAkMDIkMDAkMDAkMDAkMDAkMDBAQFNHP0FXNExPQ0tfUkVDVVJTSU9OQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JFQ1VSU0lPTiAgX19zdGRjYWxsIENMb2NrQmFzZTw0LDEsMSwyLDMsMz46OlJlY3Vyc2lvbih2b2lkKQ0KKz9SZWN1cnNpb25APyRDTG9ja0Jhc2VAJDAzJDAwJDAwJDAxJDAyJDAyQEBTRz9BVzRMT0NLX1JFQ1VSU0lPTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19SRUNVUlNJT04gIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NSwyLDIsMSwzLDI+OjpSZWN1cnNpb24odm9pZCkNCis/UmVjdXJzaW9uQD8kQ0xvY2tCYXNlQCQwNCQwMSQwMSQwMCQwMiQwMUBAU0c/QVc0TE9DS19SRUNVUlNJT05AQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfUkVDVVJTSU9OICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDYsMiwyLDEsMywyPjo6UmVjdXJzaW9uKHZvaWQpDQorP1JlY3Vyc2lvbkA/JENMb2NrQmFzZUAkMDUkMDEkMDEkMDAkMDIkMDFAQFNHP0FXNExPQ0tfUkVDVVJTSU9OQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1JFQ1VSU0lPTiAgX19zdGRjYWxsIENMb2NrQmFzZTw3LDIsMSwxLDMsMj46OlJlY3Vyc2lvbih2b2lkKQ0KKz9SZWN1cnNpb25APyRDTG9ja0Jhc2VAJDA2JDAxJDAwJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1JFQ1VSU0lPTkBAWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBDTWRWZXJzaW9uSW5mbzo6UmVsZWFzZVZlcnNpb25JbmZvKHZvaWQpDQorP1JlbGVhc2VWZXJzaW9uSW5mb0BDTWRWZXJzaW9uSW5mb0BAU0FYWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENEb3VibGVMaXN0OjpSZW1vdmVFbnRyeShjbGFzcyBDTGlzdEVudHJ5ICogY29uc3QpDQorP1JlbW92ZUVudHJ5QENEb3VibGVMaXN0QEBTR1hRQVZDTGlzdEVudHJ5QEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xvY2tlZERvdWJsZUxpc3Q6OlJlbW92ZUVudHJ5KGNsYXNzIENMaXN0RW50cnkgKiBjb25zdCkNCis/UmVtb3ZlRW50cnlAQ0xvY2tlZERvdWJsZUxpc3RAQFFBRVhRQVZDTGlzdEVudHJ5QEBAWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5ICogX190aGlzY2FsbCBDRG91YmxlTGlzdDo6UmVtb3ZlSGVhZCh2b2lkKQ0KKz9SZW1vdmVIZWFkQENEb3VibGVMaXN0QEBRQUVRQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5ICogX190aGlzY2FsbCBDTG9ja2VkRG91YmxlTGlzdDo6UmVtb3ZlSGVhZCh2b2lkKQ0KKz9SZW1vdmVIZWFkQENMb2NrZWREb3VibGVMaXN0QEBRQUVRQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5ICogX190aGlzY2FsbCBDRG91YmxlTGlzdDo6UmVtb3ZlVGFpbCh2b2lkKQ0KKz9SZW1vdmVUYWlsQENEb3VibGVMaXN0QEBRQUVRQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBjbGFzcyBDTGlzdEVudHJ5ICogX190aGlzY2FsbCBDTG9ja2VkRG91YmxlTGlzdDo6UmVtb3ZlVGFpbCh2b2lkKQ0KKz9SZW1vdmVUYWlsQENMb2NrZWREb3VibGVMaXN0QEBRQUVRQVZDTGlzdEVudHJ5QEBYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0VYQXV0b0JhY2t1cEZpbGU6OlJlc3RvcmVGaWxlKHZvaWQpDQorP1Jlc3RvcmVGaWxlQENFWEF1dG9CYWNrdXBGaWxlQEBRQUVKWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OlNldEJ1Y2tldExvY2tTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldEJ1Y2tldExvY2tTcGluQ291bnRAQ0xLUkhhc2hUYWJsZUBAUUFFWEdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6U2V0QnVja2V0TG9ja1NwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0QnVja2V0TG9ja1NwaW5Db3VudEBDTEtSTGluZWFySGFzaFRhYmxlQEBRQUVYR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDQ3JpdFNlYzo6U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKGRvdWJsZSkNCis/U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENDcml0U2VjQEBTR1hOQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENGYWtlTG9jazo6U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yKGRvdWJsZSkNCis/U2V0RGVmYXVsdFNwaW5BZGp1c3RtZW50RmFjdG9yQENGYWtlTG9ja0BAU0dYTkBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OlNldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcihkb3VibGUpDQorP1NldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDUmVhZGVyV3JpdGVyTG9jazJAQFNHWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1JlYWRlcldyaXRlckxvY2szQEBTR1hOQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpTZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3IoZG91YmxlKQ0KKz9TZXREZWZhdWx0U3BpbkFkanVzdG1lbnRGYWN0b3JAQ1JlYWRlcldyaXRlckxvY2tAQFNHWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1NtYWxsU3BpbkxvY2s6OlNldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcihkb3VibGUpDQorP1NldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDU21hbGxTcGluTG9ja0BAU0dYTkBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDU3BpbkxvY2s6OlNldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3Rvcihkb3VibGUpDQorP1NldERlZmF1bHRTcGluQWRqdXN0bWVudEZhY3RvckBDU3BpbkxvY2tAQFNHWE5AWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ0NyaXRTZWM6OlNldERlZmF1bHRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldERlZmF1bHRTcGluQ291bnRAQ0NyaXRTZWNAQFNHWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ0Zha2VMb2NrOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENGYWtlTG9ja0BAU0dYR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OlNldERlZmF1bHRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldERlZmF1bHRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2syQEBTR1hHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6U2V0RGVmYXVsdFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazNAQFNHWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1JlYWRlcldyaXRlckxvY2s6OlNldERlZmF1bHRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldERlZmF1bHRTcGluQ291bnRAQ1JlYWRlcldyaXRlckxvY2tAQFNHWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1NtYWxsU3BpbkxvY2s6OlNldERlZmF1bHRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldERlZmF1bHRTcGluQ291bnRAQ1NtYWxsU3BpbkxvY2tAQFNHWEdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1NwaW5Mb2NrOjpTZXREZWZhdWx0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXREZWZhdWx0U3BpbkNvdW50QENTcGluTG9ja0BAU0dYR0BaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDQ3JpdFNlYzo6U2V0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXRTcGluQ291bnRAQ0NyaXRTZWNAQFFBRV9OR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDQ3JpdFNlYzo6U2V0U3BpbkNvdW50KGNsYXNzIENDcml0aWNhbFNlY3Rpb24gKiAqLHVuc2lnbmVkIGxvbmcpDQorP1NldFNwaW5Db3VudEBDQ3JpdFNlY0BAU0dLUEFQQVZDQ3JpdGljYWxTZWN0aW9uQEBLQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENGYWtlTG9jazo6U2V0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXRTcGluQ291bnRAQ0Zha2VMb2NrQEBRQUVfTkdAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazJAQFFBRV9OR0BaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OlNldFNwaW5Db3VudCh1bnNpZ25lZCBzaG9ydCkNCis/U2V0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFX05HQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9ja0BAUUFFX05HQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTbWFsbFNwaW5Mb2NrOjpTZXRTcGluQ291bnQodW5zaWduZWQgc2hvcnQpDQorP1NldFNwaW5Db3VudEBDU21hbGxTcGluTG9ja0BAUUFFX05HQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTcGluTG9jazo6U2V0U3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXRTcGluQ291bnRAQ1NwaW5Mb2NrQEBRQUVfTkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6U2V0VGFibGVMb2NrU3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXRUYWJsZUxvY2tTcGluQ291bnRAQ0xLUkhhc2hUYWJsZUBAUUFFWEdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6U2V0VGFibGVMb2NrU3BpbkNvdW50KHVuc2lnbmVkIHNob3J0KQ0KKz9TZXRUYWJsZUxvY2tTcGluQ291bnRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUFFWEdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6U2l6ZSh2b2lkKWNvbnN0IA0KKz9TaXplQENMS1JIYXNoVGFibGVAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6U2l6ZSh2b2lkKWNvbnN0IA0KKz9TaXplQENMS1JMaW5lYXJIYXNoVGFibGVAQFFCRUtYWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OlRyeVJlYWRMb2NrKHZvaWQpDQorP1RyeVJlYWRMb2NrQENDcml0U2VjQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDRmFrZUxvY2s6OlRyeVJlYWRMb2NrKHZvaWQpDQorP1RyeVJlYWRMb2NrQENGYWtlTG9ja0BAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpUcnlSZWFkTG9jayh2b2lkKQ0KKz9UcnlSZWFkTG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQFFBRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMzo6VHJ5UmVhZExvY2sodm9pZCkNCis/VHJ5UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6VHJ5UmVhZExvY2sodm9pZCkNCis/VHJ5UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2tAQFFBRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTbWFsbFNwaW5Mb2NrOjpUcnlSZWFkTG9jayh2b2lkKQ0KKz9UcnlSZWFkTG9ja0BDU21hbGxTcGluTG9ja0BAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1NwaW5Mb2NrOjpUcnlSZWFkTG9jayh2b2lkKQ0KKz9UcnlSZWFkTG9ja0BDU3BpbkxvY2tAQFFBRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENDcml0U2VjOjpUcnlXcml0ZUxvY2sodm9pZCkNCis/VHJ5V3JpdGVMb2NrQENDcml0U2VjQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDRmFrZUxvY2s6OlRyeVdyaXRlTG9jayh2b2lkKQ0KKz9UcnlXcml0ZUxvY2tAQ0Zha2VMb2NrQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OlRyeVdyaXRlTG9jayh2b2lkKQ0KKz9UcnlXcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2syQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OlRyeVdyaXRlTG9jayh2b2lkKQ0KKz9UcnlXcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6VHJ5V3JpdGVMb2NrKHZvaWQpDQorP1RyeVdyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9ja0BAUUFFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ1NtYWxsU3BpbkxvY2s6OlRyeVdyaXRlTG9jayh2b2lkKQ0KKz9UcnlXcml0ZUxvY2tAQ1NtYWxsU3BpbkxvY2tAQFFBRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIENTcGluTG9jazo6VHJ5V3JpdGVMb2NrKHZvaWQpDQorP1RyeVdyaXRlTG9ja0BDU3BpbkxvY2tAQFFBRV9OWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENFWEF1dG9CYWNrdXBGaWxlOjpVbmRvQmFja3VwKHZvaWQpDQorP1VuZG9CYWNrdXBAQ0VYQXV0b0JhY2t1cEZpbGVAQFFBRUpYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xvY2tlZERvdWJsZUxpc3Q6OlVubG9jayh2b2lkKQ0KKz9VbmxvY2tAQ0xvY2tlZERvdWJsZUxpc3RAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xvY2tlZFNpbmdsZUxpc3Q6OlVubG9jayh2b2lkKQ0KKz9VbmxvY2tAQ0xvY2tlZFNpbmdsZUxpc3RAQFFBRVhYWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6VmFsaWRTaWduYXR1cmUodm9pZCljb25zdCANCis/VmFsaWRTaWduYXR1cmVAQ0xLUkhhc2hUYWJsZUBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6VmFsaWRTaWduYXR1cmUodm9pZCljb25zdCANCis/VmFsaWRTaWduYXR1cmVAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFX05YWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTwxLDEsMywxLDMsMj46OldhaXRUeXBlKHZvaWQpDQorP1dhaXRUeXBlQD8kQ0xvY2tCYXNlQCQwMCQwMCQwMiQwMCQwMiQwMUBAU0c/QVc0TE9DS19XQUlUX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfV0FJVF9UWVBFICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDIsMSwxLDEsMywyPjo6V2FpdFR5cGUodm9pZCkNCis/V2FpdFR5cGVAPyRDTG9ja0Jhc2VAJDAxJDAwJDAwJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1dBSVRfVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19XQUlUX1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8MywxLDEsMSwxLDE+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDIkMDAkMDAkMDAkMDAkMDBAQFNHP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTw0LDEsMSwyLDMsMz46OldhaXRUeXBlKHZvaWQpDQorP1dhaXRUeXBlQD8kQ0xvY2tCYXNlQCQwMyQwMCQwMCQwMSQwMiQwMkBAU0c/QVc0TE9DS19XQUlUX1RZUEVAQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBlbnVtIExPQ0tfV0FJVF9UWVBFICBfX3N0ZGNhbGwgQ0xvY2tCYXNlPDUsMiwyLDEsMywyPjo6V2FpdFR5cGUodm9pZCkNCis/V2FpdFR5cGVAPyRDTG9ja0Jhc2VAJDA0JDAxJDAxJDAwJDAyJDAxQEBTRz9BVzRMT0NLX1dBSVRfVFlQRUBAWFoNCis7IHB1YmxpYzogc3RhdGljIGVudW0gTE9DS19XQUlUX1RZUEUgIF9fc3RkY2FsbCBDTG9ja0Jhc2U8NiwyLDIsMSwzLDI+OjpXYWl0VHlwZSh2b2lkKQ0KKz9XYWl0VHlwZUA/JENMb2NrQmFzZUAkMDUkMDEkMDEkMDAkMDIkMDFAQFNHP0FXNExPQ0tfV0FJVF9UWVBFQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgZW51bSBMT0NLX1dBSVRfVFlQRSAgX19zdGRjYWxsIENMb2NrQmFzZTw3LDIsMSwxLDMsMj46OldhaXRUeXBlKHZvaWQpDQorP1dhaXRUeXBlQD8kQ0xvY2tCYXNlQCQwNiQwMSQwMCQwMCQwMiQwMUBAU0c/QVc0TE9DS19XQUlUX1RZUEVAQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ3JpdFNlYzo6V3JpdGVMb2NrKHZvaWQpDQorP1dyaXRlTG9ja0BDQ3JpdFNlY0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRmFrZUxvY2s6OldyaXRlTG9jayh2b2lkKQ0KKz9Xcml0ZUxvY2tAQ0Zha2VMb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OldyaXRlTG9jayh2b2lkKQ0KKz9Xcml0ZUxvY2tAQ0xLUkhhc2hUYWJsZUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpXcml0ZUxvY2sodm9pZCkNCis/V3JpdGVMb2NrQENMS1JMaW5lYXJIYXNoVGFibGVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpXcml0ZUxvY2sodm9pZCkNCis/V3JpdGVMb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OldyaXRlTG9jayh2b2lkKQ0KKz9Xcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpXcml0ZUxvY2sodm9pZCkNCis/V3JpdGVMb2NrQENSZWFkZXJXcml0ZXJMb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTbWFsbFNwaW5Mb2NrOjpXcml0ZUxvY2sodm9pZCkNCis/V3JpdGVMb2NrQENTbWFsbFNwaW5Mb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTcGluTG9jazo6V3JpdGVMb2NrKHZvaWQpDQorP1dyaXRlTG9ja0BDU3BpbkxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NyaXRTZWM6OldyaXRlVW5sb2NrKHZvaWQpDQorP1dyaXRlVW5sb2NrQENDcml0U2VjQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGYWtlTG9jazo6V3JpdGVVbmxvY2sodm9pZCkNCis/V3JpdGVVbmxvY2tAQ0Zha2VMb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMS1JIYXNoVGFibGU6OldyaXRlVW5sb2NrKHZvaWQpY29uc3QgDQorP1dyaXRlVW5sb2NrQENMS1JIYXNoVGFibGVAQFFCRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6V3JpdGVVbmxvY2sodm9pZCljb25zdCANCis/V3JpdGVVbmxvY2tAQ0xLUkxpbmVhckhhc2hUYWJsZUBAUUJFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6OldyaXRlVW5sb2NrKHZvaWQpDQorP1dyaXRlVW5sb2NrQENSZWFkZXJXcml0ZXJMb2NrMkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6OldyaXRlVW5sb2NrKHZvaWQpDQorP1dyaXRlVW5sb2NrQENSZWFkZXJXcml0ZXJMb2NrM0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6V3JpdGVVbmxvY2sodm9pZCkNCis/V3JpdGVVbmxvY2tAQ1JlYWRlcldyaXRlckxvY2tAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NtYWxsU3BpbkxvY2s6OldyaXRlVW5sb2NrKHZvaWQpDQorP1dyaXRlVW5sb2NrQENTbWFsbFNwaW5Mb2NrQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTcGluTG9jazo6V3JpdGVVbmxvY2sodm9pZCkNCis/V3JpdGVVbmxvY2tAQ1NwaW5Mb2NrQEBRQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQWRkUmVmUmVjb3JkKHZvaWQgY29uc3QgKixpbnQpY29uc3QgDQorP19BZGRSZWZSZWNvcmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUJFWFBCWEhAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNOb2RlQ2x1bXAgKiBfX3N0ZGNhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0FsbG9jYXRlTm9kZUNsdW1wKHZvaWQpDQorP19BbGxvY2F0ZU5vZGVDbHVtcEBDTEtSTGluZWFySGFzaFRhYmxlQEBDR1FBVkNOb2RlQ2x1bXBAMUBYWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q1NlZ21lbnQgKiBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9BbGxvY2F0ZVNlZ21lbnQodm9pZCljb25zdCANCis/X0FsbG9jYXRlU2VnbWVudEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQkVRQVZDU2VnbWVudEAxQFhaDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q0RpckVudHJ5ICogX19zdGRjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9BbGxvY2F0ZVNlZ21lbnREaXJlY3RvcnkodW5zaWduZWQgaW50KQ0KKz9fQWxsb2NhdGVTZWdtZW50RGlyZWN0b3J5QENMS1JMaW5lYXJIYXNoVGFibGVAQENHUUFWQ0RpckVudHJ5QDFASUBaDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSAqIF9fc3RkY2FsbCBDTEtSSGFzaFRhYmxlOjpfQWxsb2NhdGVTdWJUYWJsZShjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZyBjb25zdCAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKiksdW5zaWduZWQgbG9uZyAoX19zdGRjYWxsKikodW5zaWduZWQgbG9uZyksYm9vbCAoX19zdGRjYWxsKikodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKSx2b2lkIChfX3N0ZGNhbGwqKSh2b2lkIGNvbnN0ICosaW50KSxkb3VibGUsdW5zaWduZWQgbG9uZyxjbGFzcyBDTEtSSGFzaFRhYmxlICopDQorP19BbGxvY2F0ZVN1YlRhYmxlQENMS1JIYXNoVGFibGVAQENHUUFWQ0xLUkxpbmVhckhhc2hUYWJsZUBAUEJEUDZHP0JLUEJYQFpQNkdLS0BaUDZHX05LS0BaUDZHWDFIQFpOS1BBVjFAQFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlICogKiBfX3N0ZGNhbGwgQ0xLUkhhc2hUYWJsZTo6X0FsbG9jYXRlU3ViVGFibGVBcnJheSh1bnNpZ25lZCBpbnQpDQorP19BbGxvY2F0ZVN1YlRhYmxlQXJyYXlAQ0xLUkhhc2hUYWJsZUBAQ0dRQVBBVkNMS1JMaW5lYXJIYXNoVGFibGVAQElAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9BcHBseShlbnVtIExLX0FDVElPTiAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKix2b2lkICopLHZvaWQgKixlbnVtIExLX0xPQ0tUWVBFLGVudW0gTEtfUFJFRElDQVRFICYpDQorP19BcHBseUBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUVLUDZHP0FXNExLX0FDVElPTkBAUEJYUEFYQFoxVzRMS19MT0NLVFlQRUBAQUFXNExLX1BSRURJQ0FURUBAQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQXBwbHlJZihlbnVtIExLX1BSRURJQ0FURSAgKF9fc3RkY2FsbCopKHZvaWQgY29uc3QgKix2b2lkICopLGVudW0gTEtfQUNUSU9OICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLHZvaWQgKiksdm9pZCAqLGVudW0gTEtfTE9DS1RZUEUsZW51bSBMS19QUkVESUNBVEUgJikNCis/X0FwcGx5SWZAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFS1A2Rz9BVzRMS19QUkVESUNBVEVAQFBCWFBBWEBaUDZHP0FXNExLX0FDVElPTkBAMDFAWjFXNExLX0xPQ0tUWVBFQEBBQVc0MkBAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q0J1Y2tldCAqIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0J1Y2tldCh1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9fQnVja2V0QENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRVBBVkNCdWNrZXRAMUBLQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfQnVja2V0QWRkcmVzcyh1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9fQnVja2V0QWRkcmVzc0BDTEtSTGluZWFySGFzaFRhYmxlQEBBQkVLS0BaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6X0NhbGNLZXlIYXNoKHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP19DYWxjS2V5SGFzaEBDTEtSSGFzaFRhYmxlQEBBQkVLS0BaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0NhbGNLZXlIYXNoKHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP19DYWxjS2V5SGFzaEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQkVLS0BaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0NsZWFyKGJvb2wpDQorP19DbGVhckBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUVYX05AWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9DbG9zZUl0ZXJhdG9yKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNJdGVyYXRvciAqKQ0KKz9fQ2xvc2VJdGVyYXRvckBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUU/QVc0TEtfUkVUQ09ERUBAUEFWQ0l0ZXJhdG9yQDFAQFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6Ol9DbXBFeGNoKGxvbmcsbG9uZykNCis/X0NtcEV4Y2hAQ1JlYWRlcldyaXRlckxvY2syQEBBQUVfTkpKQFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9DbXBFeGNoKGxvbmcsbG9uZykNCis/X0NtcEV4Y2hAQ1JlYWRlcldyaXRlckxvY2szQEBBQUVfTkpKQFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazo6X0NtcEV4Y2gobG9uZyxsb25nKQ0KKz9fQ21wRXhjaEBDUmVhZGVyV3JpdGVyTG9ja0BAQUFFX05KSkBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0NvbnRyYWN0KHZvaWQpDQorP19Db250cmFjdEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUU/QVc0TEtfUkVUQ09ERUBAWFoNCis7IHByaXZhdGU6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9DdXJyZW50VGhyZWFkSWQodm9pZCkNCis/X0N1cnJlbnRUaHJlYWRJZEBDUmVhZGVyV3JpdGVyTG9jazNAQENHSlhaDQorOyBwcml2YXRlOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1NtYWxsU3BpbkxvY2s6Ol9DdXJyZW50VGhyZWFkSWQodm9pZCkNCis/X0N1cnJlbnRUaHJlYWRJZEBDU21hbGxTcGluTG9ja0BAQ0dKWFoNCis7IHByaXZhdGU6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDU3BpbkxvY2s6Ol9DdXJyZW50VGhyZWFkSWQodm9pZCkNCis/X0N1cnJlbnRUaHJlYWRJZEBDU3BpbkxvY2tAQENHSlhaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0RlbGV0ZUlmKGVudW0gTEtfUFJFRElDQVRFICAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLHZvaWQgKiksdm9pZCAqLGVudW0gTEtfUFJFRElDQVRFICYpDQorP19EZWxldGVJZkBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUVLUDZHP0FXNExLX1BSRURJQ0FURUBAUEJYUEFYQFoxQUFXNDJAQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRGVsZXRlS2V5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/X0RlbGV0ZUtleUBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUU/QVc0TEtfUkVUQ09ERUBAS0tAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9EZWxldGVOb2RlKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNCdWNrZXQgKixjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDTm9kZUNsdW1wICogJixjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDTm9kZUNsdW1wICogJixpbnQgJikNCis/X0RlbGV0ZU5vZGVAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFX05QQVZDQnVja2V0QDFAQUFQQVZDTm9kZUNsdW1wQDFAMUFBSEBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0RlbGV0ZVJlY29yZCh2b2lkIGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/X0RlbGV0ZVJlY29yZEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUU/QVc0TEtfUkVUQ09ERUBAUEJYS0BaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0VxdWFsS2V5cyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP19FcXVhbEtleXNAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUJFX05LS0BaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0V4cGFuZCh2b2lkKQ0KKz9fRXhwYW5kQENMS1JMaW5lYXJIYXNoVGFibGVAQEFBRT9BVzRMS19SRVRDT0RFQEBYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBjb25zdCAgX190aGlzY2FsbCBDTEtSSGFzaFRhYmxlOjpfRXh0cmFjdEtleSh2b2lkIGNvbnN0ICopY29uc3QgDQorP19FeHRyYWN0S2V5QENMS1JIYXNoVGFibGVAQEFCRT9CS1BCWEBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIGNvbnN0ICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9FeHRyYWN0S2V5KHZvaWQgY29uc3QgKiljb25zdCANCis/X0V4dHJhY3RLZXlAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUJFP0JLUEJYQFoNCis7IHByaXZhdGU6IGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNCdWNrZXQgKiBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9GaW5kQnVja2V0KHVuc2lnbmVkIGxvbmcsYm9vbCljb25zdCANCis/X0ZpbmRCdWNrZXRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUJFUEFWQ0J1Y2tldEAxQEtfTkBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0ZpbmRLZXkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgY29uc3QgKiAqKWNvbnN0IA0KKz9fRmluZEtleUBDTEtSTGluZWFySGFzaFRhYmxlQEBBQkU/QVc0TEtfUkVUQ09ERUBAS0tQQVBCWEBaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0ZpbmRSZWNvcmQodm9pZCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP19GaW5kUmVjb3JkQENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRT9BVzRMS19SRVRDT0RFQEBQQlhLQFoNCis7IHByaXZhdGU6IHN0YXRpYyBib29sIF9fc3RkY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRnJlZU5vZGVDbHVtcChjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDTm9kZUNsdW1wICopDQorP19GcmVlTm9kZUNsdW1wQENMS1JMaW5lYXJIYXNoVGFibGVAQENHX05QQVZDTm9kZUNsdW1wQDFAQFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfRnJlZVNlZ21lbnQoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q1NlZ21lbnQgKiljb25zdCANCis/X0ZyZWVTZWdtZW50QENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRV9OUEFWQ1NlZ21lbnRAMUBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGJvb2wgX19zdGRjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9GcmVlU2VnbWVudERpcmVjdG9yeShjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDRGlyRW50cnkgKikNCis/X0ZyZWVTZWdtZW50RGlyZWN0b3J5QENMS1JMaW5lYXJIYXNoVGFibGVAQENHX05QQVZDRGlyRW50cnlAMUBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGJvb2wgX19zdGRjYWxsIENMS1JIYXNoVGFibGU6Ol9GcmVlU3ViVGFibGUoY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSAqKQ0KKz9fRnJlZVN1YlRhYmxlQENMS1JIYXNoVGFibGVAQENHX05QQVZDTEtSTGluZWFySGFzaFRhYmxlQEBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGJvb2wgX19zdGRjYWxsIENMS1JIYXNoVGFibGU6Ol9GcmVlU3ViVGFibGVBcnJheShjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlICogKikNCis/X0ZyZWVTdWJUYWJsZUFycmF5QENMS1JIYXNoVGFibGVAQENHX05QQVBBVkNMS1JMaW5lYXJIYXNoVGFibGVAQEBaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0gwKHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP19IMEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQkVLS0BaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0gwKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/X0gwQENMS1JMaW5lYXJIYXNoVGFibGVAQENHS0tLQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSDEodW5zaWduZWQgbG9uZyljb25zdCANCis/X0gxQENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRUtLQFoNCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSDEodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9fSDFAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQ0dLS0tAWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9Jbml0aWFsaXplKHVuc2lnbmVkIGxvbmcgY29uc3QgIChfX3N0ZGNhbGwqKSh2b2lkIGNvbnN0ICopLHVuc2lnbmVkIGxvbmcgKF9fc3RkY2FsbCopKHVuc2lnbmVkIGxvbmcpLGJvb2wgKF9fc3RkY2FsbCopKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyksdm9pZCAoX19zdGRjYWxsKikodm9pZCBjb25zdCAqLGludCksY2hhciBjb25zdCAqLGRvdWJsZSx1bnNpZ25lZCBsb25nKQ0KKz9fSW5pdGlhbGl6ZUBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUU/QVc0TEtfUkVUQ09ERUBAUDZHP0JLUEJYQFpQNkdLS0BaUDZHX05LS0BaUDZHWDBIQFpQQkROS0BaDQorOyBwcml2YXRlOiBlbnVtIExLX1JFVENPREUgIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X0luaXRpYWxpemVJdGVyYXRvcihjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDSXRlcmF0b3IgKikNCis/X0luaXRpYWxpemVJdGVyYXRvckBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUU/QVc0TEtfUkVUQ09ERUBAUEFWQ0l0ZXJhdG9yQDFAQFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSW5zZXJ0UmVjb3JkKHZvaWQgY29uc3QgKix1bnNpZ25lZCBsb25nLGJvb2wpDQorP19JbnNlcnRSZWNvcmRAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFP0FXNExLX1JFVENPREVAQFBCWEtfTkBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6X0luc2VydFRoaXNJbnRvR2xvYmFsTGlzdCh2b2lkKQ0KKz9fSW5zZXJ0VGhpc0ludG9HbG9iYWxMaXN0QENMS1JIYXNoVGFibGVAQEFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9JbnNlcnRUaGlzSW50b0dsb2JhbExpc3Qodm9pZCkNCis/X0luc2VydFRoaXNJbnRvR2xvYmFsTGlzdEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUVYWFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDU3BpbkxvY2s6Ol9Jc0xvY2tlZCh2b2lkKWNvbnN0IA0KKz9fSXNMb2NrZWRAQ1NwaW5Mb2NrQEBBQkVfTlhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfSXNOb2RlQ29tcGFjdChjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDQnVja2V0ICogY29uc3QpY29uc3QgDQorP19Jc05vZGVDb21wYWN0QENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRUhRQVZDQnVja2V0QDFAQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDU3BpbkxvY2s6Ol9Mb2NrKHZvaWQpDQorP19Mb2NrQENTcGluTG9ja0BAQUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpfTG9ja1NwaW4oYm9vbCkNCis/X0xvY2tTcGluQENSZWFkZXJXcml0ZXJMb2NrMkBAQUFFWF9OQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9Mb2NrU3BpbihlbnVtIENSZWFkZXJXcml0ZXJMb2NrMzo6U1BJTl9UWVBFKQ0KKz9fTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2szQEBBQUVYVzRTUElOX1RZUEVAMUBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpfTG9ja1NwaW4oYm9vbCkNCis/X0xvY2tTcGluQENSZWFkZXJXcml0ZXJMb2NrQEBBQUVYX05AWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENTbWFsbFNwaW5Mb2NrOjpfTG9ja1NwaW4odm9pZCkNCis/X0xvY2tTcGluQENTbWFsbFNwaW5Mb2NrQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDU3BpbkxvY2s6Ol9Mb2NrU3Bpbih2b2lkKQ0KKz9fTG9ja1NwaW5AQ1NwaW5Mb2NrQEBBQUVYWFoNCis7IHByaXZhdGU6IGVudW0gTEtfUkVUQ09ERSAgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfTWVyZ2VSZWNvcmRTZXRzKGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNCdWNrZXQgKixjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDTm9kZUNsdW1wICosY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q05vZGVDbHVtcCAqKQ0KKz9fTWVyZ2VSZWNvcmRTZXRzQENMS1JMaW5lYXJIYXNoVGFibGVAQEFBRT9BVzRMS19SRVRDT0RFQEBQQVZDQnVja2V0QDFAUEFWQ05vZGVDbHVtcEAxQDFAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGVudW0gTEtfUFJFRElDQVRFICBfX3N0ZGNhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X1ByZWRUcnVlKHZvaWQgY29uc3QgKix2b2lkICopDQorP19QcmVkVHJ1ZUBDTEtSTGluZWFySGFzaFRhYmxlQEBDRz9BVzRMS19QUkVESUNBVEVAQFBCWFBBWEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2syOjpfUmVhZExvY2tTcGluKHZvaWQpDQorP19SZWFkTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2syQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9SZWFkTG9ja1NwaW4oZW51bSBDUmVhZGVyV3JpdGVyTG9jazM6OlNQSU5fVFlQRSkNCis/X1JlYWRMb2NrU3BpbkBDUmVhZGVyV3JpdGVyTG9jazNAQEFBRVhXNFNQSU5fVFlQRUAxQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6Ol9SZWFkTG9ja1NwaW4odm9pZCkNCis/X1JlYWRMb2NrU3BpbkBDUmVhZGVyV3JpdGVyTG9ja0BAQUFFWFhaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ0xLUkxpbmVhckhhc2hUYWJsZTo6X1JlYWRPcldyaXRlTG9jayh2b2lkKWNvbnN0IA0KKz9fUmVhZE9yV3JpdGVMb2NrQENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRV9OWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfUmVhZE9yV3JpdGVVbmxvY2soYm9vbCljb25zdCANCis/X1JlYWRPcldyaXRlVW5sb2NrQENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRVhfTkBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6X1JlbW92ZVRoaXNGcm9tR2xvYmFsTGlzdCh2b2lkKQ0KKz9fUmVtb3ZlVGhpc0Zyb21HbG9iYWxMaXN0QENMS1JIYXNoVGFibGVAQEFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9SZW1vdmVUaGlzRnJvbUdsb2JhbExpc3Qodm9pZCkNCis/X1JlbW92ZVRoaXNGcm9tR2xvYmFsTGlzdEBDTEtSTGluZWFySGFzaFRhYmxlQEBBQUVYWFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfU2VnSW5kZXgodW5zaWduZWQgbG9uZyljb25zdCANCis/X1NlZ0luZGV4QENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRUtLQFoNCis7IHByaXZhdGU6IGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNTZWdtZW50ICogJiBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9TZWdtZW50KHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP19TZWdtZW50QENMS1JMaW5lYXJIYXNoVGFibGVAQEFCRUFBUEFWQ1NlZ21lbnRAMUBLQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDTEtSTGluZWFySGFzaFRhYmxlOjpfU2V0U2VnVmFycyhlbnVtIExLX1RBQkxFU0laRSkNCis/X1NldFNlZ1ZhcnNAQ0xLUkxpbmVhckhhc2hUYWJsZUBAQUFFWFc0TEtfVEFCTEVTSVpFQEBAWg0KKzsgcHJpdmF0ZTogZW51bSBMS19SRVRDT0RFICBfX3RoaXNjYWxsIENMS1JMaW5lYXJIYXNoVGFibGU6Ol9TcGxpdFJlY29yZFNldChjbGFzcyBDTEtSTGluZWFySGFzaFRhYmxlOjpDTm9kZUNsdW1wICosY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZTo6Q05vZGVDbHVtcCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIENMS1JMaW5lYXJIYXNoVGFibGU6OkNOb2RlQ2x1bXAgKikNCis/X1NwbGl0UmVjb3JkU2V0QENMS1JMaW5lYXJIYXNoVGFibGVAQEFBRT9BVzRMS19SRVRDT0RFQEBQQVZDTm9kZUNsdW1wQDFAMEtLSzBAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0xLUkxpbmVhckhhc2hUYWJsZSAqIF9fdGhpc2NhbGwgQ0xLUkhhc2hUYWJsZTo6X1N1YlRhYmxlKHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP19TdWJUYWJsZUBDTEtSSGFzaFRhYmxlQEBBQkVQQVZDTEtSTGluZWFySGFzaFRhYmxlQEBLQFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDU21hbGxTcGluTG9jazo6X1RyeUxvY2sodm9pZCkNCis/X1RyeUxvY2tAQ1NtYWxsU3BpbkxvY2tAQEFBRV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDU3BpbkxvY2s6Ol9UcnlMb2NrKHZvaWQpDQorP19UcnlMb2NrQENTcGluTG9ja0BAQUFFX05YWg0KKzsgcHJpdmF0ZTogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6X1RyeVJlYWRMb2NrKHZvaWQpDQorP19UcnlSZWFkTG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQEFBRV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9UcnlSZWFkTG9jayh2b2lkKQ0KKz9fVHJ5UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBBQUVfTlhaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6Ol9UcnlSZWFkTG9jayh2b2lkKQ0KKz9fVHJ5UmVhZExvY2tAQ1JlYWRlcldyaXRlckxvY2tAQEFBRV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9UcnlSZWFkTG9ja1JlY3Vyc2l2ZSh2b2lkKQ0KKz9fVHJ5UmVhZExvY2tSZWN1cnNpdmVAQ1JlYWRlcldyaXRlckxvY2szQEBBQUVfTlhaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpfVHJ5V3JpdGVMb2NrMih2b2lkKQ0KKz9fVHJ5V3JpdGVMb2NrMkBDUmVhZGVyV3JpdGVyTG9jazNAQEFBRV9OWFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazI6Ol9UcnlXcml0ZUxvY2sobG9uZykNCis/X1RyeVdyaXRlTG9ja0BDUmVhZGVyV3JpdGVyTG9jazJAQEFBRV9OSkBaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2szOjpfVHJ5V3JpdGVMb2NrKGxvbmcpDQorP19UcnlXcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2szQEBBQUVfTkpAWg0KKzsgcHJpdmF0ZTogYm9vbCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrOjpfVHJ5V3JpdGVMb2NrKHZvaWQpDQorP19UcnlXcml0ZUxvY2tAQ1JlYWRlcldyaXRlckxvY2tAQEFBRV9OWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDU3BpbkxvY2s6Ol9VbmxvY2sodm9pZCkNCis/X1VubG9ja0BDU3BpbkxvY2tAQEFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENSZWFkZXJXcml0ZXJMb2NrMjo6X1dyaXRlTG9ja1NwaW4odm9pZCkNCis/X1dyaXRlTG9ja1NwaW5AQ1JlYWRlcldyaXRlckxvY2syQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDUmVhZGVyV3JpdGVyTG9jazM6Ol9Xcml0ZUxvY2tTcGluKHZvaWQpDQorP19Xcml0ZUxvY2tTcGluQENSZWFkZXJXcml0ZXJMb2NrM0BAQUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1JlYWRlcldyaXRlckxvY2s6Ol9Xcml0ZUxvY2tTcGluKHZvaWQpDQorP19Xcml0ZUxvY2tTcGluQENSZWFkZXJXcml0ZXJMb2NrQEBBQUVYWFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBDRXhGaWxlT3BlcmF0aW9uOjpfZ2V0RmlsZVNlY3VyaXR5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP19nZXRGaWxlU2VjdXJpdHlAQ0V4RmlsZU9wZXJhdGlvbkBAQUFFSlBCR0BaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgQ0V4RmlsZU9wZXJhdGlvbjo6X3NldEZpbGVTZWN1cml0eSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9fc2V0RmlsZVNlY3VyaXR5QENFeEZpbGVPcGVyYXRpb25AQEFBRUpQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRVhBdXRvQmFja3VwRmlsZTo6ZkhhdmVCYWNrdXAodm9pZCkNCis/ZkhhdmVCYWNrdXBAQ0VYQXV0b0JhY2t1cEZpbGVAQFFBRUhYWg0KKzsgbG9uZyBjb25zdCAqIGNvbnN0ICBgcHVibGljOiBzdGF0aWMgbG9uZyBjb25zdCAqIF9fc3RkY2FsbCBDTEtSSGFzaFRhYmxlU3RhdHM6OkJ1Y2tldFNpemVzKHZvaWQpJzo6YDInOjpzX2FCdWNrZXRTaXplcw0KKz9zX2FCdWNrZXRTaXplc0A/MT8/QnVja2V0U2l6ZXNAQ0xLUkhhc2hUYWJsZVN0YXRzQEBTR1BCSlhaQDRRQkpCDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBkb3VibGUgIENDcml0U2VjOjpzbV9kYmxEZmx0U3BpbkFkakZjdHINCis/c21fZGJsRGZsdFNwaW5BZGpGY3RyQENDcml0U2VjQEAxTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDRmFrZUxvY2s6OnNtX2RibERmbHRTcGluQWRqRmN0cg0KKz9zbV9kYmxEZmx0U3BpbkFkakZjdHJAQ0Zha2VMb2NrQEAxTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDUmVhZGVyV3JpdGVyTG9jazI6OnNtX2RibERmbHRTcGluQWRqRmN0cg0KKz9zbV9kYmxEZmx0U3BpbkFkakZjdHJAQ1JlYWRlcldyaXRlckxvY2syQEAxTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDUmVhZGVyV3JpdGVyTG9jazM6OnNtX2RibERmbHRTcGluQWRqRmN0cg0KKz9zbV9kYmxEZmx0U3BpbkFkakZjdHJAQ1JlYWRlcldyaXRlckxvY2szQEAxTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgZG91YmxlICBDUmVhZGVyV3JpdGVyTG9jazo6c21fZGJsRGZsdFNwaW5BZGpGY3RyDQorP3NtX2RibERmbHRTcGluQWRqRmN0ckBDUmVhZGVyV3JpdGVyTG9ja0BAMU5BIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIGRvdWJsZSAgQ1NtYWxsU3BpbkxvY2s6OnNtX2RibERmbHRTcGluQWRqRmN0cg0KKz9zbV9kYmxEZmx0U3BpbkFkakZjdHJAQ1NtYWxsU3BpbkxvY2tAQDFOQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBkb3VibGUgIENTcGluTG9jazo6c21fZGJsRGZsdFNwaW5BZGpGY3RyDQorP3NtX2RibERmbHRTcGluQWRqRmN0ckBDU3BpbkxvY2tAQDFOQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ0xvY2tlZERvdWJsZUxpc3QgIENMS1JIYXNoVGFibGU6OnNtX2xsR2xvYmFsTGlzdA0KKz9zbV9sbEdsb2JhbExpc3RAQ0xLUkhhc2hUYWJsZUBAMFZDTG9ja2VkRG91YmxlTGlzdEBAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgQ0xvY2tlZERvdWJsZUxpc3QgIENMS1JMaW5lYXJIYXNoVGFibGU6OnNtX2xsR2xvYmFsTGlzdA0KKz9zbV9sbEdsb2JhbExpc3RAQ0xLUkxpbmVhckhhc2hUYWJsZUBAMFZDTG9ja2VkRG91YmxlTGlzdEBAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IF9PU1ZFUlNJT05JTkZPVyAqICBDTWRWZXJzaW9uSW5mbzo6c21fbHBPU1ZFUlNJT05JTkZPDQorP3NtX2xwT1NWRVJTSU9OSU5GT0BDTWRWZXJzaW9uSW5mb0BAMFBBVV9PU1ZFUlNJT05JTkZPV0BAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgbG9uZyAoX19zdGRjYWxsKiBDQ3JpdGljYWxTZWN0aW9uOjpzbV9wZm5TZXRDcml0aWNhbFNlY3Rpb25TcGluQ291bnQpKHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gKix1bnNpZ25lZCBsb25nKQ0KKz9zbV9wZm5TZXRDcml0aWNhbFNlY3Rpb25TcGluQ291bnRAQ0NyaXRpY2FsU2VjdGlvbkBAMFA2R0tQQVVfUlRMX0NSSVRJQ0FMX1NFQ1RJT05AQEtAWkEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGludCAoX19zdGRjYWxsKiBDQ3JpdGljYWxTZWN0aW9uOjpzbV9wZm5UcnlFbnRlckNyaXRpY2FsU2VjdGlvbikoc3RydWN0IF9SVExfQ1JJVElDQUxfU0VDVElPTiAqKQ0KKz9zbV9wZm5UcnlFbnRlckNyaXRpY2FsU2VjdGlvbkBDQ3JpdGljYWxTZWN0aW9uQEAwUDZHSFBBVV9SVExfQ1JJVElDQUxfU0VDVElPTkBAQFpBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0ICBDQ3JpdFNlYzo6c21fd0RlZmF1bHRTcGluQ291bnQNCis/c21fd0RlZmF1bHRTcGluQ291bnRAQ0NyaXRTZWNAQDFHQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgQ0Zha2VMb2NrOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDRmFrZUxvY2tAQDFHQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgQ1JlYWRlcldyaXRlckxvY2syOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazJAQDFHQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgQ1JlYWRlcldyaXRlckxvY2szOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDUmVhZGVyV3JpdGVyTG9jazNAQDFHQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgQ1JlYWRlcldyaXRlckxvY2s6OnNtX3dEZWZhdWx0U3BpbkNvdW50DQorP3NtX3dEZWZhdWx0U3BpbkNvdW50QENSZWFkZXJXcml0ZXJMb2NrQEAxR0EgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgIENTbWFsbFNwaW5Mb2NrOjpzbV93RGVmYXVsdFNwaW5Db3VudA0KKz9zbV93RGVmYXVsdFNwaW5Db3VudEBDU21hbGxTcGluTG9ja0BAMUdBIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHVuc2lnbmVkIHNob3J0ICBDU3BpbkxvY2s6OnNtX3dEZWZhdWx0U3BpbkNvdW50DQorP3NtX3dEZWZhdWx0U3BpbkNvdW50QENTcGluTG9ja0BAMUdBIERBVEENCitEbGxCaWRFbnRyeVBvaW50DQorX0RsbE1haW5AMTINCitGWE1lbUF0dGFjaA0KK0ZYTWVtRGV0YWNoDQorR2V0SVVNUw0KK0lydGxUcmFjZQ0KK19Jc1ZhbGlkQWRkcmVzc0AxMg0KK19Jc1ZhbGlkU3RyaW5nQDgNCitfTG9hZFZlcnNpb25lZFJlc291cmNlRXhAMTYNCitNUENTSW5pdGlhbGl6ZQ0KK01QQ1NVbmluaXRpYWxpemUNCitNUERlbGV0ZUNyaXRpY2FsU2VjdGlvbg0KK01QSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbg0KK01QSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbkFuZFNwaW5Db3VudA0KK01wR2V0SGVhcEhhbmRsZQ0KK01wSGVhcEFsbG9jDQorTXBIZWFwQ3JlYXRlDQorTXBIZWFwRGVzdHJveQ0KK01wSGVhcEZyZWUNCitNcEhlYXBSZUFsbG9jDQorTXBIZWFwU2l6ZQ0KK01wSGVhcFZhbGlkYXRlDQorU2V0SVVNUw0KK1NldE1lbUhvb2sNCitVTVNFbnRlckNTV3JhcGVyDQorbXBDYWxsb2MNCittcEZyZWUNCittcE1hbGxvYw0KK21wUmVhbGxvYw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2Rhc2MuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zZGFzYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTgzNWQ2OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2Rhc2MuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNEQVNDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU0RBU0MuZGxsDQorRVhQT1JUUw0KK0RsbE1haW4NCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNkYXNxbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNkYXNxbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTc1NzRiZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2Rhc3FsLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TREFTUUwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TREFTUUwuZGxsDQorRVhQT1JUUw0KK0RsbE1haW4NCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2RhdGwzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2RhdGwzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jOTVhMTRkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zZGF0bDMuZGVmCkBAIC0wLDAgKzEsODQ1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TREFUTDMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TREFUTDMuZGxsDQorRVhQT1JUUw0KK0RsbE1haW4NCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBDQmFzZU9iajo6Q0Jhc2VPYmooZW51bSBFQmFzZU9iamVjdFR5cGUsbG9uZyAqKQ0KKz8/MENCYXNlT2JqQEBJQUVAVzRFQmFzZU9iamVjdFR5cGVAQFBBSkBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQ0Jhc2VPYmo6OkNCYXNlT2JqKGVudW0gRUJhc2VPYmplY3RUeXBlLHN0cnVjdCBJVW5rbm93biAqLGxvbmcgKikNCis/PzBDQmFzZU9iakBASUFFQFc0RUJhc2VPYmplY3RUeXBlQEBQQVVJVW5rbm93bkBAUEFKQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQmFzZU9iajo6Q0Jhc2VPYmooY2xhc3MgQ0Jhc2VPYmogY29uc3QgJikNCis/PzBDQmFzZU9iakBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQmFzZU9iakJva286OkNCYXNlT2JqQm9rbyhjbGFzcyBDQmFzZU9iakJva28gY29uc3QgJikNCis/PzBDQmFzZU9iakJva29AQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0Jhc2VPYmpCb2tvOjpDQmFzZU9iakJva28oZW51bSBFQmFzZU9iamVjdFR5cGUsbG9uZyAqKQ0KKz8/MENCYXNlT2JqQm9rb0BAUUFFQFc0RUJhc2VPYmplY3RUeXBlQEBQQUpAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENCYXNlT2JqWm9tYmllOjpDQmFzZU9ialpvbWJpZShjbGFzcyBDQmFzZU9ialpvbWJpZSBjb25zdCAmKQ0KKz8/MENCYXNlT2JqWm9tYmllQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENCYXNlT2JqWm9tYmllOjpDQmFzZU9ialpvbWJpZShlbnVtIEVCYXNlT2JqZWN0VHlwZSxsb25nICopDQorPz8wQ0Jhc2VPYmpab21iaWVAQFFBRUBXNEVCYXNlT2JqZWN0VHlwZUBAUEFKQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQml0QXJyYXk6OkNCaXRBcnJheSh2b2lkKQ0KKz8/MENCaXRBcnJheUBAUUFFQFhaDQorOyBwcml2YXRlOiBfX3RoaXNjYWxsIENDbGFzc0ZhY3Rvcnk6OkNDbGFzc0ZhY3Rvcnkodm9pZCkNCis/PzBDQ2xhc3NGYWN0b3J5QEBBQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ2xhc3NGYWN0b3J5OjpDQ2xhc3NGYWN0b3J5KGNsYXNzIENDbGFzc0ZhY3RvcnkgY29uc3QgJikNCis/PzBDQ2xhc3NGYWN0b3J5QEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDbGFzc0ZhY3Rvcnk6OkNDbGFzc0ZhY3RvcnkobG9uZyAqLGxvbmcgKikNCis/PzBDQ2xhc3NGYWN0b3J5QEBRQUVAUEFKMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0Nvbm5lY3REYXRhOjpDQ29ubmVjdERhdGEodm9pZCkNCis/PzBDQ29ubmVjdERhdGFAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFbnVtOjpDRW51bShzdHJ1Y3QgSVVua25vd24gKix1bnNpZ25lZCBsb25nLHZvaWQgKiAqLHN0cnVjdCBfR1VJRCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgbG9uZyxlbnVtIENFTlVNVFlQRSkNCis/PzBDRW51bUBAUUFFQFBBVUlVbmtub3duQEBLUEFQQVhVX0dVSURAQElLVzRDRU5VTVRZUEVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0VudW1Db25uZWN0aW9uUG9pbnRzOjpDRW51bUNvbm5lY3Rpb25Qb2ludHMoY2xhc3MgQ0VudW1Db25uZWN0aW9uUG9pbnRzIGNvbnN0ICYpDQorPz8wQ0VudW1Db25uZWN0aW9uUG9pbnRzQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFbnVtQ29ubmVjdGlvblBvaW50czo6Q0VudW1Db25uZWN0aW9uUG9pbnRzKHN0cnVjdCBJVW5rbm93biAqLHVuc2lnbmVkIGxvbmcsc3RydWN0IElDb25uZWN0aW9uUG9pbnQgKiAqKQ0KKz8/MENFbnVtQ29ubmVjdGlvblBvaW50c0BAUUFFQFBBVUlVbmtub3duQEBLUEFQQVVJQ29ubmVjdGlvblBvaW50QEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFbnVtQ29ubmVjdGlvbnM6OkNFbnVtQ29ubmVjdGlvbnMoY2xhc3MgQ0VudW1Db25uZWN0aW9ucyBjb25zdCAmKQ0KKz8/MENFbnVtQ29ubmVjdGlvbnNAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0VudW1Db25uZWN0aW9uczo6Q0VudW1Db25uZWN0aW9ucyhzdHJ1Y3QgSVVua25vd24gKixzdHJ1Y3QgdGFnQ09OTkVDVERBVEEgKix1bnNpZ25lZCBsb25nKQ0KKz8/MENFbnVtQ29ubmVjdGlvbnNAQFFBRUBQQVVJVW5rbm93bkBAUEFVdGFnQ09OTkVDVERBVEFAQEtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFeHRCdWZmZXI6OkNFeHRCdWZmZXIodm9pZCkNCis/PzBDRXh0QnVmZmVyQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDR2VuZXJpY1Bvb2xlcjo6Q0dlbmVyaWNQb29sZXIoY2xhc3MgQ0dlbmVyaWNQb29sZXIgY29uc3QgJikNCis/PzBDR2VuZXJpY1Bvb2xlckBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDR2VuZXJpY1Bvb2xlcjo6Q0dlbmVyaWNQb29sZXIodm9pZCkNCis/PzBDR2VuZXJpY1Bvb2xlckBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0hhc2hUYmw6OkNIYXNoVGJsKGNsYXNzIENIYXNoVGJsIGNvbnN0ICYpDQorPz8wQ0hhc2hUYmxAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0hhc2hUYmw6OkNIYXNoVGJsKHZvaWQpDQorPz8wQ0hhc2hUYmxAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENIYXNoVGJsQWdncjo6Q0hhc2hUYmxBZ2dyKGNsYXNzIENIYXNoVGJsQWdnciBjb25zdCAmKQ0KKz8/MENIYXNoVGJsQWdnckBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSGFzaFRibEFnZ3I6OkNIYXNoVGJsQWdncih2b2lkKQ0KKz8/MENIYXNoVGJsQWdnckBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0hlYXBEaXNwZW5zZXI6OkNIZWFwRGlzcGVuc2VyKGNsYXNzIENIZWFwRGlzcGVuc2VyIGNvbnN0ICYpDQorPz8wQ0hlYXBEaXNwZW5zZXJAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0hlYXBEaXNwZW5zZXI6OkNIZWFwRGlzcGVuc2VyKHZvaWQpDQorPz8wQ0hlYXBEaXNwZW5zZXJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENSb3dzZXRDb25uZWN0aW9uUG9pbnQ6OkNSb3dzZXRDb25uZWN0aW9uUG9pbnQoY2xhc3MgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludCBjb25zdCAmKQ0KKz8/MENSb3dzZXRDb25uZWN0aW9uUG9pbnRAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludDo6Q1Jvd3NldENvbm5lY3Rpb25Qb2ludChzdHJ1Y3QgSVVua25vd24gKixzdHJ1Y3QgX0dVSUQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz8/MENSb3dzZXRDb25uZWN0aW9uUG9pbnRAQFFBRUBQQVVJVW5rbm93bkBAUEJVX0dVSURAQEtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXI6OkNSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXIoY2xhc3MgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lciBjb25zdCAmKQ0KKz8/MENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXJAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lcjo6Q1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lcihzdHJ1Y3QgSVVua25vd24gKikNCis/PzBDUm93c2V0Q29ubmVjdGlvblBvaW50Q29udGFpbmVyQEBRQUVAUEFVSVVua25vd25AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1Nsb3RMaXN0TG9uZzo6Q1Nsb3RMaXN0TG9uZyhjbGFzcyBDU2xvdExpc3RMb25nIGNvbnN0ICYpDQorPz8wQ1Nsb3RMaXN0TG9uZ0BAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU2xvdExpc3RMb25nOjpDU2xvdExpc3RMb25nKHZvaWQpDQorPz8wQ1Nsb3RMaXN0TG9uZ0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1Nsb3RMaXN0U2hvcnQ6OkNTbG90TGlzdFNob3J0KGNsYXNzIENTbG90TGlzdFNob3J0IGNvbnN0ICYpDQorPz8wQ1Nsb3RMaXN0U2hvcnRAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1Nsb3RMaXN0U2hvcnQ6OkNTbG90TGlzdFNob3J0KHZvaWQpDQorPz8wQ1Nsb3RMaXN0U2hvcnRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENVdGxQcm9wSW5mbzo6Q1V0bFByb3BJbmZvKGNsYXNzIENVdGxQcm9wSW5mbyBjb25zdCAmKQ0KKz8/MENVdGxQcm9wSW5mb0BAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDVXRsUHJvcEluZm86OkNVdGxQcm9wSW5mbyh2b2lkKQ0KKz8/MENVdGxQcm9wSW5mb0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6Q1V0bFByb3BzMihjbGFzcyBDVXRsUHJvcHMyIGNvbnN0ICYpDQorPz8wQ1V0bFByb3BzMkBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDVXRsUHJvcHMyOjpDVXRsUHJvcHMyKHVuc2lnbmVkIGxvbmcpDQorPz8wQ1V0bFByb3BzMkBAUUFFQEtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENVdGxQcm9wc0Zhc3RMb29rdXAyOjpDVXRsUHJvcHNGYXN0TG9va3VwMihjbGFzcyBDVXRsUHJvcHNGYXN0TG9va3VwMiBjb25zdCAmKQ0KKz8/MENVdGxQcm9wc0Zhc3RMb29rdXAyQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENVdGxQcm9wc0Zhc3RMb29rdXAyOjpDVXRsUHJvcHNGYXN0TG9va3VwMih1bnNpZ25lZCBsb25nKQ0KKz8/MENVdGxQcm9wc0Zhc3RMb29rdXAyQEBRQUVAS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1ZMSGVhcDo6Q1ZMSGVhcCh2b2lkKQ0KKz8/MENWTEhlYXBAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXU3RyaW5nOjpDV1N0cmluZyhjbGFzcyBDV1N0cmluZyBjb25zdCAmKQ0KKz8/MENXU3RyaW5nQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXU3RyaW5nOjpDV1N0cmluZyh1bnNpZ25lZCBzaG9ydCxpbnQpDQorPz8wQ1dTdHJpbmdAQFFBRUBHSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1dTdHJpbmc6OkNXU3RyaW5nKGNoYXIgY29uc3QgKikNCis/PzBDV1N0cmluZ0BAUUFFQFBCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1dTdHJpbmc6OkNXU3RyaW5nKHVuc2lnbmVkIGNoYXIgY29uc3QgKikNCis/PzBDV1N0cmluZ0BAUUFFQFBCRUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1dTdHJpbmc6OkNXU3RyaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wQ1dTdHJpbmdAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXU3RyaW5nOjpDV1N0cmluZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/PzBDV1N0cmluZ0BAUUFFQFBCR0hAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXU3RyaW5nOjpDV1N0cmluZyh2b2lkKQ0KKz8/MENXU3RyaW5nQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBJQm9va21hcmtPYmo6OklCb29rbWFya09iaihjbGFzcyBJQm9va21hcmtPYmogY29uc3QgJikNCis/PzBJQm9va21hcmtPYmpAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSUJvb2ttYXJrT2JqOjpJQm9va21hcmtPYmoodm9pZCkNCis/PzBJQm9va21hcmtPYmpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElIYXNoVGJsOjpJSGFzaFRibChjbGFzcyBJSGFzaFRibCBjb25zdCAmKQ0KKz8/MElIYXNoVGJsQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElIYXNoVGJsOjpJSGFzaFRibCh2b2lkKQ0KKz8/MElIYXNoVGJsQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBJU2xvdExpc3Q6OklTbG90TGlzdChjbGFzcyBJU2xvdExpc3QgY29uc3QgJikNCis/PzBJU2xvdExpc3RAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSVNsb3RMaXN0OjpJU2xvdExpc3Qodm9pZCkNCis/PzBJU2xvdExpc3RAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ0Jhc2VPYmo6On5DQmFzZU9iaih2b2lkKQ0KKz8/MUNCYXNlT2JqQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENCYXNlT2JqQm9rbzo6fkNCYXNlT2JqQm9rbyh2b2lkKQ0KKz8/MUNCYXNlT2JqQm9rb0BAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDQmFzZU9ialpvbWJpZTo6fkNCYXNlT2JqWm9tYmllKHZvaWQpDQorPz8xQ0Jhc2VPYmpab21iaWVAQFVBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENCaXRBcnJheTo6fkNCaXRBcnJheSh2b2lkKQ0KKz8/MUNCaXRBcnJheUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NsYXNzRmFjdG9yeTo6fkNDbGFzc0ZhY3Rvcnkodm9pZCkNCis/PzFDQ2xhc3NGYWN0b3J5QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ29ubmVjdERhdGE6On5DQ29ubmVjdERhdGEodm9pZCkNCis/PzFDQ29ubmVjdERhdGFAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFbnVtOjp+Q0VudW0odm9pZCkNCis/PzFDRW51bUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0VudW1Db25uZWN0aW9uUG9pbnRzOjp+Q0VudW1Db25uZWN0aW9uUG9pbnRzKHZvaWQpDQorPz8xQ0VudW1Db25uZWN0aW9uUG9pbnRzQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRW51bUNvbm5lY3Rpb25zOjp+Q0VudW1Db25uZWN0aW9ucyh2b2lkKQ0KKz8/MUNFbnVtQ29ubmVjdGlvbnNAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFeHRCdWZmZXI6On5DRXh0QnVmZmVyKHZvaWQpDQorPz8xQ0V4dEJ1ZmZlckBAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDSGFzaFRibDo6fkNIYXNoVGJsKHZvaWQpDQorPz8xQ0hhc2hUYmxAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ0hhc2hUYmxBZ2dyOjp+Q0hhc2hUYmxBZ2dyKHZvaWQpDQorPz8xQ0hhc2hUYmxBZ2dyQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUm93c2V0Q29ubmVjdGlvblBvaW50Ojp+Q1Jvd3NldENvbm5lY3Rpb25Qb2ludCh2b2lkKQ0KKz8/MUNSb3dzZXRDb25uZWN0aW9uUG9pbnRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXI6On5DUm93c2V0Q29ubmVjdGlvblBvaW50Q29udGFpbmVyKHZvaWQpDQorPz8xQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lckBAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDU2xvdExpc3RMb25nOjp+Q1Nsb3RMaXN0TG9uZyh2b2lkKQ0KKz8/MUNTbG90TGlzdExvbmdAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ1Nsb3RMaXN0U2hvcnQ6On5DU2xvdExpc3RTaG9ydCh2b2lkKQ0KKz8/MUNTbG90TGlzdFNob3J0QEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENVdGxQcm9wSW5mbzo6fkNVdGxQcm9wSW5mbyh2b2lkKQ0KKz8/MUNVdGxQcm9wSW5mb0BAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDVXRsUHJvcHMyOjp+Q1V0bFByb3BzMih2b2lkKQ0KKz8/MUNVdGxQcm9wczJAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ1V0bFByb3BzRmFzdExvb2t1cDI6On5DVXRsUHJvcHNGYXN0TG9va3VwMih2b2lkKQ0KKz8/MUNVdGxQcm9wc0Zhc3RMb29rdXAyQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDVkxIZWFwOjp+Q1ZMSGVhcCh2b2lkKQ0KKz8/MUNWTEhlYXBAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXU3RyaW5nOjp+Q1dTdHJpbmcodm9pZCkNCis/PzFDV1N0cmluZ0BAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBJQm9va21hcmtPYmo6On5JQm9va21hcmtPYmoodm9pZCkNCis/PzFJQm9va21hcmtPYmpAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgSUhhc2hUYmw6On5JSGFzaFRibCh2b2lkKQ0KKz8/MUlIYXNoVGJsQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIElTbG90TGlzdDo6fklTbG90TGlzdCh2b2lkKQ0KKz8/MUlTbG90TGlzdEBAVUFFQFhaDQorOyBwdWJsaWM6IGNsYXNzIENCYXNlT2JqICYgX190aGlzY2FsbCBDQmFzZU9iajo6b3BlcmF0b3I9KGNsYXNzIENCYXNlT2JqIGNvbnN0ICYpDQorPz80Q0Jhc2VPYmpAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQmFzZU9iakJva28gJiBfX3RoaXNjYWxsIENCYXNlT2JqQm9rbzo6b3BlcmF0b3I9KGNsYXNzIENCYXNlT2JqQm9rbyBjb25zdCAmKQ0KKz8/NENCYXNlT2JqQm9rb0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENCYXNlT2JqWm9tYmllICYgX190aGlzY2FsbCBDQmFzZU9ialpvbWJpZTo6b3BlcmF0b3I9KGNsYXNzIENCYXNlT2JqWm9tYmllIGNvbnN0ICYpDQorPz80Q0Jhc2VPYmpab21iaWVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDQml0QXJyYXkgJiBfX3RoaXNjYWxsIENCaXRBcnJheTo6b3BlcmF0b3I9KGNsYXNzIENCaXRBcnJheSBjb25zdCAmKQ0KKz8/NENCaXRBcnJheUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENDbGFzc0ZhY3RvcnkgJiBfX3RoaXNjYWxsIENDbGFzc0ZhY3Rvcnk6Om9wZXJhdG9yPShjbGFzcyBDQ2xhc3NGYWN0b3J5IGNvbnN0ICYpDQorPz80Q0NsYXNzRmFjdG9yeUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENDb25uZWN0RGF0YSAmIF9fdGhpc2NhbGwgQ0Nvbm5lY3REYXRhOjpvcGVyYXRvcj0oY2xhc3MgQ0Nvbm5lY3REYXRhIGNvbnN0ICYpDQorPz80Q0Nvbm5lY3REYXRhQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0VudW0gJiBfX3RoaXNjYWxsIENFbnVtOjpvcGVyYXRvcj0oY2xhc3MgQ0VudW0gY29uc3QgJikNCis/PzRDRW51bUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENFbnVtQ29ubmVjdGlvblBvaW50cyAmIF9fdGhpc2NhbGwgQ0VudW1Db25uZWN0aW9uUG9pbnRzOjpvcGVyYXRvcj0oY2xhc3MgQ0VudW1Db25uZWN0aW9uUG9pbnRzIGNvbnN0ICYpDQorPz80Q0VudW1Db25uZWN0aW9uUG9pbnRzQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0VudW1Db25uZWN0aW9ucyAmIF9fdGhpc2NhbGwgQ0VudW1Db25uZWN0aW9uczo6b3BlcmF0b3I9KGNsYXNzIENFbnVtQ29ubmVjdGlvbnMgY29uc3QgJikNCis/PzRDRW51bUNvbm5lY3Rpb25zQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0V4dEJ1ZmZlciAmIF9fdGhpc2NhbGwgQ0V4dEJ1ZmZlcjo6b3BlcmF0b3I9KGNsYXNzIENFeHRCdWZmZXIgY29uc3QgJikNCis/PzRDRXh0QnVmZmVyQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0dlbmVyaWNQb29sZXIgJiBfX3RoaXNjYWxsIENHZW5lcmljUG9vbGVyOjpvcGVyYXRvcj0oY2xhc3MgQ0dlbmVyaWNQb29sZXIgY29uc3QgJikNCis/PzRDR2VuZXJpY1Bvb2xlckBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENIYXNoVGJsICYgX190aGlzY2FsbCBDSGFzaFRibDo6b3BlcmF0b3I9KGNsYXNzIENIYXNoVGJsIGNvbnN0ICYpDQorPz80Q0hhc2hUYmxAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDSGFzaFRibEFnZ3IgJiBfX3RoaXNjYWxsIENIYXNoVGJsQWdncjo6b3BlcmF0b3I9KGNsYXNzIENIYXNoVGJsQWdnciBjb25zdCAmKQ0KKz8/NENIYXNoVGJsQWdnckBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENIZWFwRGlzcGVuc2VyICYgX190aGlzY2FsbCBDSGVhcERpc3BlbnNlcjo6b3BlcmF0b3I9KGNsYXNzIENIZWFwRGlzcGVuc2VyIGNvbnN0ICYpDQorPz80Q0hlYXBEaXNwZW5zZXJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUm93c2V0Q29ubmVjdGlvblBvaW50ICYgX190aGlzY2FsbCBDUm93c2V0Q29ubmVjdGlvblBvaW50OjpvcGVyYXRvcj0oY2xhc3MgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludCBjb25zdCAmKQ0KKz8/NENSb3dzZXRDb25uZWN0aW9uUG9pbnRAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDUm93c2V0Q29ubmVjdGlvblBvaW50Q29udGFpbmVyICYgX190aGlzY2FsbCBDUm93c2V0Q29ubmVjdGlvblBvaW50Q29udGFpbmVyOjpvcGVyYXRvcj0oY2xhc3MgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lciBjb25zdCAmKQ0KKz8/NENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU2xvdExpc3RMb25nICYgX190aGlzY2FsbCBDU2xvdExpc3RMb25nOjpvcGVyYXRvcj0oY2xhc3MgQ1Nsb3RMaXN0TG9uZyBjb25zdCAmKQ0KKz8/NENTbG90TGlzdExvbmdAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU2xvdExpc3RTaG9ydCAmIF9fdGhpc2NhbGwgQ1Nsb3RMaXN0U2hvcnQ6Om9wZXJhdG9yPShjbGFzcyBDU2xvdExpc3RTaG9ydCBjb25zdCAmKQ0KKz8/NENTbG90TGlzdFNob3J0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1V0bFByb3BJbmZvICYgX190aGlzY2FsbCBDVXRsUHJvcEluZm86Om9wZXJhdG9yPShjbGFzcyBDVXRsUHJvcEluZm8gY29uc3QgJikNCis/PzRDVXRsUHJvcEluZm9AQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDVXRsUHJvcHMyICYgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpvcGVyYXRvcj0oY2xhc3MgQ1V0bFByb3BzMiBjb25zdCAmKQ0KKz8/NENVdGxQcm9wczJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDVXRsUHJvcHNGYXN0TG9va3VwMiAmIF9fdGhpc2NhbGwgQ1V0bFByb3BzRmFzdExvb2t1cDI6Om9wZXJhdG9yPShjbGFzcyBDVXRsUHJvcHNGYXN0TG9va3VwMiBjb25zdCAmKQ0KKz8/NENVdGxQcm9wc0Zhc3RMb29rdXAyQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1ZMSGVhcCAmIF9fdGhpc2NhbGwgQ1ZMSGVhcDo6b3BlcmF0b3I9KGNsYXNzIENWTEhlYXAgY29uc3QgJikNCis/PzRDVkxIZWFwQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1dTdHJpbmcgY29uc3QgJiBfX3RoaXNjYWxsIENXU3RyaW5nOjpvcGVyYXRvcj0oY2xhc3MgQ1dTdHJpbmcgY29uc3QgJikNCis/PzRDV1N0cmluZ0BAUUFFQUJWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENXU3RyaW5nIGNvbnN0ICYgX190aGlzY2FsbCBDV1N0cmluZzo6b3BlcmF0b3I9KGNoYXIpDQorPz80Q1dTdHJpbmdAQFFBRUFCVjBAREBaDQorOyBwdWJsaWM6IGNsYXNzIENXU3RyaW5nIGNvbnN0ICYgX190aGlzY2FsbCBDV1N0cmluZzo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0KQ0KKz8/NENXU3RyaW5nQEBRQUVBQlYwQEdAWg0KKzsgcHVibGljOiBjbGFzcyBDV1N0cmluZyBjb25zdCAmIF9fdGhpc2NhbGwgQ1dTdHJpbmc6Om9wZXJhdG9yPShjaGFyIGNvbnN0ICopDQorPz80Q1dTdHJpbmdAQFFBRUFCVjBAUEJEQFoNCis7IHB1YmxpYzogY2xhc3MgQ1dTdHJpbmcgY29uc3QgJiBfX3RoaXNjYWxsIENXU3RyaW5nOjpvcGVyYXRvcj0odW5zaWduZWQgY2hhciBjb25zdCAqKQ0KKz8/NENXU3RyaW5nQEBRQUVBQlYwQFBCRUBaDQorOyBwdWJsaWM6IGNsYXNzIENXU3RyaW5nIGNvbnN0ICYgX190aGlzY2FsbCBDV1N0cmluZzo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz80Q1dTdHJpbmdAQFFBRUFCVjBAUEJHQFoNCis7IHB1YmxpYzogY2xhc3MgSUJvb2ttYXJrT2JqICYgX190aGlzY2FsbCBJQm9va21hcmtPYmo6Om9wZXJhdG9yPShjbGFzcyBJQm9va21hcmtPYmogY29uc3QgJikNCis/PzRJQm9va21hcmtPYmpAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBJSGFzaFRibCAmIF9fdGhpc2NhbGwgSUhhc2hUYmw6Om9wZXJhdG9yPShjbGFzcyBJSGFzaFRibCBjb25zdCAmKQ0KKz8/NElIYXNoVGJsQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgSVNsb3RMaXN0ICYgX190aGlzY2FsbCBJU2xvdExpc3Q6Om9wZXJhdG9yPShjbGFzcyBJU2xvdExpc3QgY29uc3QgJikNCis/PzRJU2xvdExpc3RAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENXU3RyaW5nOjpvcGVyYXRvcltdKGludCljb25zdCANCis/P0FDV1N0cmluZ0BAUUJFR0hAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXU3RyaW5nOjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCBjb25zdCAqKHZvaWQpY29uc3QgDQorPz9CQ1dTdHJpbmdAQFFCRVBCR1haDQorOyBwdWJsaWM6IGNsYXNzIENXU3RyaW5nIGNvbnN0ICYgX190aGlzY2FsbCBDV1N0cmluZzo6b3BlcmF0b3IrPShjbGFzcyBDV1N0cmluZyBjb25zdCAmKQ0KKz8/WUNXU3RyaW5nQEBRQUVBQlYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1dTdHJpbmcgY29uc3QgJiBfX3RoaXNjYWxsIENXU3RyaW5nOjpvcGVyYXRvcis9KGNoYXIpDQorPz9ZQ1dTdHJpbmdAQFFBRUFCVjBAREBaDQorOyBwdWJsaWM6IGNsYXNzIENXU3RyaW5nIGNvbnN0ICYgX190aGlzY2FsbCBDV1N0cmluZzo6b3BlcmF0b3IrPSh1bnNpZ25lZCBzaG9ydCkNCis/P1lDV1N0cmluZ0BAUUFFQUJWMEBHQFoNCis7IHB1YmxpYzogY2xhc3MgQ1dTdHJpbmcgY29uc3QgJiBfX3RoaXNjYWxsIENXU3RyaW5nOjpvcGVyYXRvcis9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz9ZQ1dTdHJpbmdAQFFBRUFCVjBAUEJHQFoNCis7IGNvbnN0ICBDQmFzZU9iajo6YHZmdGFibGUnDQorPz9fN0NCYXNlT2JqQEA2QkANCis7IGNvbnN0ICBDQmFzZU9iakJva286OmB2ZnRhYmxlJw0KKz8/XzdDQmFzZU9iakJva29AQDZCQA0KKzsgY29uc3QgIENCYXNlT2JqWm9tYmllOjpgdmZ0YWJsZScNCis/P183Q0Jhc2VPYmpab21iaWVAQDZCQA0KKzsgY29uc3QgIENDbGFzc0ZhY3Rvcnk6OmB2ZnRhYmxlJw0KKz8/XzdDQ2xhc3NGYWN0b3J5QEA2QkANCis7IGNvbnN0ICBDRW51bUNvbm5lY3Rpb25Qb2ludHM6OmB2ZnRhYmxlJw0KKz8/XzdDRW51bUNvbm5lY3Rpb25Qb2ludHNAQDZCQA0KKzsgY29uc3QgIENFbnVtQ29ubmVjdGlvbnM6OmB2ZnRhYmxlJw0KKz8/XzdDRW51bUNvbm5lY3Rpb25zQEA2QkANCis7IGNvbnN0ICBDSGFzaFRibDo6YHZmdGFibGUnDQorPz9fN0NIYXNoVGJsQEA2QkANCis7IGNvbnN0ICBDSGFzaFRibEFnZ3I6OmB2ZnRhYmxlJw0KKz8/XzdDSGFzaFRibEFnZ3JAQDZCQA0KKzsgY29uc3QgIENIZWFwRGlzcGVuc2VyOjpgdmZ0YWJsZScNCis/P183Q0hlYXBEaXNwZW5zZXJAQDZCQA0KKzsgY29uc3QgIENSb3dzZXRDb25uZWN0aW9uUG9pbnQ6OmB2ZnRhYmxlJw0KKz8/XzdDUm93c2V0Q29ubmVjdGlvblBvaW50QEA2QkANCis7IGNvbnN0ICBDUm93c2V0Q29ubmVjdGlvblBvaW50Q29udGFpbmVyOjpgdmZ0YWJsZScNCis/P183Q1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lckBANkJADQorOyBjb25zdCAgQ1Nsb3RMaXN0TG9uZzo6YHZmdGFibGUnDQorPz9fN0NTbG90TGlzdExvbmdAQDZCQA0KKzsgY29uc3QgIENTbG90TGlzdFNob3J0OjpgdmZ0YWJsZScNCis/P183Q1Nsb3RMaXN0U2hvcnRAQDZCQA0KKzsgY29uc3QgIENVdGxQcm9wSW5mbzo6YHZmdGFibGUnDQorPz9fN0NVdGxQcm9wSW5mb0BANkJADQorOyBjb25zdCAgQ1V0bFByb3BzMjo6YHZmdGFibGUnDQorPz9fN0NVdGxQcm9wczJAQDZCQA0KKzsgY29uc3QgIENVdGxQcm9wc0Zhc3RMb29rdXAyOjpgdmZ0YWJsZScNCis/P183Q1V0bFByb3BzRmFzdExvb2t1cDJAQDZCQA0KKzsgY29uc3QgIElCb29rbWFya09iajo6YHZmdGFibGUnDQorPz9fN0lCb29rbWFya09iakBANkJADQorOyBjb25zdCAgSUhhc2hUYmw6OmB2ZnRhYmxlJw0KKz8/XzdJSGFzaFRibEBANkJADQorOyBjb25zdCAgSVNsb3RMaXN0OjpgdmZ0YWJsZScNCis/P183SVNsb3RMaXN0QEA2QkANCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENVdGxQcm9wczI6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRkNVdGxQcm9wczJAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1V0bFByb3BzRmFzdExvb2t1cDI6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRkNVdGxQcm9wc0Zhc3RMb29rdXAyQEBRQUVYWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0hhc2hUYmxBZ2dyOjpBZGRIYXNoVGJsKGNsYXNzIENTbG90TGlzdFNob3J0ICopDQorP0FkZEhhc2hUYmxAQ0hhc2hUYmxBZ2dyQEBRQUVIUEFWQ1Nsb3RMaXN0U2hvcnRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpBZGRJbnRlcm5hbEZsYWdzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9BZGRJbnRlcm5hbEZsYWdzQENVdGxQcm9wczJAQFFBRVhLS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENDbGFzc0ZhY3Rvcnk6OkFkZFJlZih2b2lkKQ0KKz9BZGRSZWZAQ0NsYXNzRmFjdG9yeUBAVUFHS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENFbnVtOjpBZGRSZWYodm9pZCkNCis/QWRkUmVmQENFbnVtQEBRQUdLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDRW51bUNvbm5lY3Rpb25Qb2ludHM6OkFkZFJlZih2b2lkKQ0KKz9BZGRSZWZAQ0VudW1Db25uZWN0aW9uUG9pbnRzQEBVQUdLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDRW51bUNvbm5lY3Rpb25zOjpBZGRSZWYodm9pZCkNCis/QWRkUmVmQENFbnVtQ29ubmVjdGlvbnNAQFVBR0tYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENIZWFwRGlzcGVuc2VyOjpBZGRSZWYodm9pZCkNCis/QWRkUmVmQENIZWFwRGlzcGVuc2VyQEBVQUdLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDUm93c2V0Q29ubmVjdGlvblBvaW50OjpBZGRSZWYodm9pZCkNCis/QWRkUmVmQENSb3dzZXRDb25uZWN0aW9uUG9pbnRAQFVBR0tYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXI6OkFkZFJlZih2b2lkKQ0KKz9BZGRSZWZAQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lckBAVUFHS1haDQorOyBwcml2YXRlOiB2b2lkIF9fc3RkY2FsbCBDU2xvdExpc3RTaG9ydDo6QWRkU2xvdFRvTGlzdChzdHJ1Y3QgdGFnU0xPVCAqKQ0KKz9BZGRTbG90VG9MaXN0QENTbG90TGlzdFNob3J0QEBBQUdYUEFVdGFnU0xPVEBAQFoNCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDSGFzaFRibDo6QWRqdXN0UmFuZ2UodW5zaWduZWQgbG9uZykNCis/QWRqdXN0UmFuZ2VAQ0hhc2hUYmxAQENHS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENSb3dzZXRDb25uZWN0aW9uUG9pbnQ6OkFkdmlzZShzdHJ1Y3QgSVVua25vd24gKix1bnNpZ25lZCBsb25nICopDQorP0FkdmlzZUBDUm93c2V0Q29ubmVjdGlvblBvaW50QEBVQUdKUEFVSVVua25vd25AQFBBS0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDV1N0cmluZzo6QWxsb2NCdWZmZXIoaW50KQ0KKz9BbGxvY0J1ZmZlckBDV1N0cmluZ0BASUFFWEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ1dTdHJpbmc6OkFsbG9jQ29weShjbGFzcyBDV1N0cmluZyAmLGludCxpbnQsaW50KWNvbnN0IA0KKz9BbGxvY0NvcHlAQ1dTdHJpbmdAQElCRVhBQVYxQEhISEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgKiBfX3N0ZGNhbGwgQ0V4dEJ1ZmZlcjo6QWxsb2NJdGVtcyh1bnNpZ25lZCBsb25nKQ0KKz9BbGxvY0l0ZW1zQENFeHRCdWZmZXJAQFFBR1BBRUtAWg0KKzsgcHVibGljOiBsb25nIF9fc3RkY2FsbCBDQml0QXJyYXk6OkFycmF5RW1wdHkodm9pZCkNCis/QXJyYXlFbXB0eUBDQml0QXJyYXlAQFFBR0pYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ1dTdHJpbmc6OkFzc2lnbkNvcHkoaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0Fzc2lnbkNvcHlAQ1dTdHJpbmdAQElBRVhIUEJHQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDVXRsUHJvcEluZm86OkNhbGNEZXNjcmlwQnVmZmVycyh1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdEQlBST1BJTkZPU0VUICopDQorP0NhbGNEZXNjcmlwQnVmZmVyc0BDVXRsUHJvcEluZm9AQEFBRUtLUEFVdGFnREJQUk9QSU5GT1NFVEBAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENIYXNoVGJsOjpDYkhhc2hUYmxTaXplKHVuc2lnbmVkIGxvbmcpDQorP0NiSGFzaFRibFNpemVAQ0hhc2hUYmxAQFNHS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1dTdHJpbmc6OkNsZWFyRXJyb3Iodm9pZCkNCis/Q2xlYXJFcnJvckBDV1N0cmluZ0BAUUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6Q2xlYXJNZW1iZXJWYXJzKHZvaWQpDQorP0NsZWFyTWVtYmVyVmFyc0BDVXRsUHJvcHMyQEBBQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENVdGxQcm9wczI6OkNsZWFyUHJvcFN1cHBvcnRlZCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0NsZWFyUHJvcFN1cHBvcnRlZEBDVXRsUHJvcHMyQEBRQUVYS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6Q2xlYXJQcm9wZXJ0eUluRXJyb3Iodm9pZCkNCis/Q2xlYXJQcm9wZXJ0eUluRXJyb3JAQ1V0bFByb3BzMkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpDbGVhclByb3BzU3VwcG9ydGVkKHZvaWQpDQorP0NsZWFyUHJvcHNTdXBwb3J0ZWRAQ1V0bFByb3BzMkBAUUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ0VudW1Db25uZWN0aW9uUG9pbnRzOjpDbG9uZShzdHJ1Y3QgSUVudW1Db25uZWN0aW9uUG9pbnRzICogKikNCis/Q2xvbmVAQ0VudW1Db25uZWN0aW9uUG9pbnRzQEBVQUdKUEFQQVVJRW51bUNvbm5lY3Rpb25Qb2ludHNAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ0VudW1Db25uZWN0aW9uczo6Q2xvbmUoc3RydWN0IElFbnVtQ29ubmVjdGlvbnMgKiAqKQ0KKz9DbG9uZUBDRW51bUNvbm5lY3Rpb25zQEBVQUdKUEFQQVVJRW51bUNvbm5lY3Rpb25zQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fc3RkY2FsbCBDRXh0QnVmZmVyOjpDb21wYWN0RXh0QnVmZmVyKHZvaWQpDQorP0NvbXBhY3RFeHRCdWZmZXJAQ0V4dEJ1ZmZlckBAUUFHWFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENXU3RyaW5nOjpDb21wYXJlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP0NvbXBhcmVAQ1dTdHJpbmdAQFFCRUhQQkdAWg0KKzsgbG9uZyBfX2NkZWNsIENvbXBhcmVEQklEcyhzdHJ1Y3QgdGFnREJJRCBjb25zdCAqLHN0cnVjdCB0YWdEQklEIGNvbnN0ICopDQorP0NvbXBhcmVEQklEc0BAWUFKUEJVdGFnREJJREBAMEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fc3RkY2FsbCBDSGVhcERpc3BlbnNlcjo6Q29tcGFyZVJlc291cmNlKHZvaWQgKix2b2lkICopDQorP0NvbXBhcmVSZXNvdXJjZUBDSGVhcERpc3BlbnNlckBAVUFHSFBBWDBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ1dTdHJpbmc6OkNvbmNhdENvcHkoaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NvbmNhdENvcHlAQ1dTdHJpbmdAQElBRVhIUEJHSDBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1dTdHJpbmc6OkNvbmNhdEluUGxhY2UoaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NvbmNhdEluUGxhY2VAQ1dTdHJpbmdAQFFBRVhIUEJHQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpDb25mbGljdHNXaXRoQ3VycmVudCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1ZBUklBTlQgY29uc3QgJikNCis/Q29uZmxpY3RzV2l0aEN1cnJlbnRAQ1V0bFByb3BzMkBAVUFFSEtLQUJVdGFnVkFSSUFOVEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENVdGxQcm9wczI6OkNvbnZlcnRSb3dzZXRJSUR0b0RCUFJPUFNFVChzdHJ1Y3QgX0dVSUQgY29uc3QgKixzdHJ1Y3QgdGFnREJQUk9QU0VUICopDQorP0NvbnZlcnRSb3dzZXRJSUR0b0RCUFJPUFNFVEBDVXRsUHJvcHMyQEBRQUVKUEJVX0dVSURAQFBBVXRhZ0RCUFJPUFNFVEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENVdGxQcm9wczI6OkNvcHlBdmFpbFVQcm9wU2V0cyh1bnNpZ25lZCBsb25nICosc3RydWN0IHRhZ1VQUk9QU0VUIGNvbnN0ICogKix1bnNpZ25lZCBsb25nICopDQorP0NvcHlBdmFpbFVQcm9wU2V0c0BDVXRsUHJvcHMyQEBRQUVYUEFLUEFQQlV0YWdVUFJPUFNFVEBAMEBaDQorOyBsb25nIF9fY2RlY2wgQ29weURCSURzKHN0cnVjdCB0YWdEQklEICosc3RydWN0IHRhZ0RCSUQgY29uc3QgKikNCis/Q29weURCSURzQEBZQUpQQVV0YWdEQklEQEBQQlUxQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpDb3B5UHJvcHNJbkVycm9yKHVuc2lnbmVkIGxvbmcgKikNCis/Q29weVByb3BzSW5FcnJvckBDVXRsUHJvcHMyQEBRQUVYUEFLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENVdGxQcm9wczI6OkNvcHlQcm9wc0luRXJyb3IoY2xhc3MgQ1V0bFByb3BzMiAqKQ0KKz9Db3B5UHJvcHNJbkVycm9yQENVdGxQcm9wczJAQFFBRVhQQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpDb3B5VVByb3BJbmZvKHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1VQUk9QSU5GTyAqICopDQorP0NvcHlVUHJvcEluZm9AQ1V0bFByb3BzMkBAUUFFWEtQQVBBVXRhZ1VQUk9QSU5GT0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENVdGxQcm9wczI6OkNvcHlVUHJvcFNldHNTdXBwb3J0ZWQodW5zaWduZWQgbG9uZyAqKQ0KKz9Db3B5VVByb3BTZXRzU3VwcG9ydGVkQENVdGxQcm9wczJAQFFBRVhQQUtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6Q29weVVQcm9wVmFsKHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1VQUk9QVkFMICosY2xhc3MgQ0NvbHVtbklkcyAqKQ0KKz9Db3B5VVByb3BWYWxAQ1V0bFByb3BzMkBAUUFFSktQQVV0YWdVUFJPUFZBTEBAUEFWQ0NvbHVtbklkc0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDU2xvdExpc3RMb25nOjpDb3VudE9mQnVzeVNsb3RzKHZvaWQpDQorP0NvdW50T2ZCdXN5U2xvdHNAQ1Nsb3RMaXN0TG9uZ0BAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ1Nsb3RMaXN0U2hvcnQ6OkNvdW50T2ZCdXN5U2xvdHModm9pZCkNCis/Q291bnRPZkJ1c3lTbG90c0BDU2xvdExpc3RTaG9ydEBAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ0hlYXBEaXNwZW5zZXI6OkNyZWF0ZVJlc291cmNlKHZvaWQgKix1bnNpZ25lZCBsb25nLHZvaWQgKix2b2lkICogKixpbnQgKikNCis/Q3JlYXRlUmVzb3VyY2VAQ0hlYXBEaXNwZW5zZXJAQFVBR0pQQVhLMFBBUEFYUEFIQFoNCis7IHB1YmxpYzogbG9uZyBfX3N0ZGNhbGwgQ0V4dEJ1ZmZlcjo6RFdPUkRJbnRvRXh0QnVmZmVyKHVuc2lnbmVkIGxvbmcpDQorP0RXT1JESW50b0V4dEJ1ZmZlckBDRXh0QnVmZmVyQEBRQUdKS0BaDQorOyBwcml2YXRlOiB2b2lkIF9fc3RkY2FsbCBDU2xvdExpc3RTaG9ydDo6RGVjb3VwbGVTbG90KHN0cnVjdCB0YWdTTE9UICopDQorP0RlY291cGxlU2xvdEBDU2xvdExpc3RTaG9ydEBAQUFHWFBBVXRhZ1NMT1RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ0hhc2hUYmw6OkRlbGV0ZUJtayh1bnNpZ25lZCBsb25nKQ0KKz9EZWxldGVCbWtAQ0hhc2hUYmxAQFVBR0pLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDSGFzaFRibEFnZ3I6OkRlbGV0ZUJtayh1bnNpZ25lZCBsb25nKQ0KKz9EZWxldGVCbWtAQ0hhc2hUYmxBZ2dyQEBVQUdKS0BaDQorOyBwdWJsaWM6IHZvaWQgX19zdGRjYWxsIENFeHRCdWZmZXI6OkRlbGV0ZUZyb21FeHRCdWZmZXIodW5zaWduZWQgbG9uZykNCis/RGVsZXRlRnJvbUV4dEJ1ZmZlckBDRXh0QnVmZmVyQEBRQUdYS0BaDQorOyBwdWJsaWM6IHZvaWQgX19zdGRjYWxsIENFeHRCdWZmZXI6OkRlbGV0ZVdpdGhDb21wYWN0RnJvbUV4dEJ1ZmZlcih1bnNpZ25lZCBsb25nKQ0KKz9EZWxldGVXaXRoQ29tcGFjdEZyb21FeHRCdWZmZXJAQ0V4dEJ1ZmZlckBAUUFHWEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENIZWFwRGlzcGVuc2VyOjpEZXN0cm95UmVzb3VyY2Uodm9pZCAqKQ0KKz9EZXN0cm95UmVzb3VyY2VAQ0hlYXBEaXNwZW5zZXJAQFVBR0pQQVhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lcjo6RG9GY05vdGlmeSh1bnNpZ25lZCBsb25nLGVudW0gREJSRUFTT05FTlVNLGVudW0gREJFVkVOVFBIQVNFRU5VTSxzdHJ1Y3QgSVJvd3NldCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogY29uc3QpDQorP0RvRmNOb3RpZnlAQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lckBAUUFFSktXNERCUkVBU09ORU5VTUBAVzREQkVWRU5UUEhBU0VFTlVNQEBQQVVJUm93c2V0QEBLS1FBS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDUm93c2V0Q29ubmVjdGlvblBvaW50OjpEb05vdGlmeShlbnVtIERCUkVBU09ORU5VTSxlbnVtIERCRVZFTlRQSEFTRUVOVU0sZW51bSBFTk9USUZJQ0FUSU9OVFlQRSxzdHJ1Y3QgSVJvd3NldCAqLHVuaW9uIHRhZ05PVElGWUFSR1MgKikNCis/RG9Ob3RpZnlAQ1Jvd3NldENvbm5lY3Rpb25Qb2ludEBAUUFFSlc0REJSRUFTT05FTlVNQEBXNERCRVZFTlRQSEFTRUVOVU1AQFc0RU5PVElGSUNBVElPTlRZUEVAQFBBVUlSb3dzZXRAQFBBVHRhZ05PVElGWUFSR1NAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDUm93c2V0Q29ubmVjdGlvblBvaW50Q29udGFpbmVyOjpEb1JjTm90aWZ5KHVuc2lnbmVkIGxvbmcsZW51bSBEQlJFQVNPTkVOVU0sZW51bSBEQkVWRU5UUEhBU0VFTlVNLHN0cnVjdCBJUm93c2V0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICogY29uc3QpDQorP0RvUmNOb3RpZnlAQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lckBAUUFFSktXNERCUkVBU09ORU5VTUBAVzREQkVWRU5UUEhBU0VFTlVNQEBQQVVJUm93c2V0QEBLUUFLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXI6OkRvUnNjTm90aWZ5KHVuc2lnbmVkIGxvbmcsZW51bSBEQlJFQVNPTkVOVU0sZW51bSBEQkVWRU5UUEhBU0VFTlVNLHN0cnVjdCBJUm93c2V0ICopDQorP0RvUnNjTm90aWZ5QENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXJAQFFBRUpLVzREQlJFQVNPTkVOVU1AQFc0REJFVkVOVFBIQVNFRU5VTUBAUEFVSVJvd3NldEBAQFoNCis7IHVuc2lnbmVkIGxvbmcgX19jZGVjbCBEd0dldFBsYXRmb3JtSWQodm9pZCkNCis/RHdHZXRQbGF0Zm9ybUlkQEBZQUtYWg0KKzsgcHVibGljOiBjbGFzcyBDV1N0cmluZyAgX190aGlzY2FsbCBDV1N0cmluZzo6RWxlbWVudEF0KHVuc2lnbmVkIHNob3J0ICogY29uc3QsaW50KWNvbnN0IA0KKz9FbGVtZW50QXRAQ1dTdHJpbmdAQFFCRT9BVjFAUUFHSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDV1N0cmluZzo6RW1wdHkodm9pZCkNCis/RW1wdHlAQ1dTdHJpbmdAQFFBRVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXI6OkVudW1Db25uZWN0aW9uUG9pbnRzKHN0cnVjdCBJRW51bUNvbm5lY3Rpb25Qb2ludHMgKiAqKQ0KKz9FbnVtQ29ubmVjdGlvblBvaW50c0BDUm93c2V0Q29ubmVjdGlvblBvaW50Q29udGFpbmVyQEBVQUdKUEFQQVVJRW51bUNvbm5lY3Rpb25Qb2ludHNAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludDo6RW51bUNvbm5lY3Rpb25zKHN0cnVjdCBJRW51bUNvbm5lY3Rpb25zICogKikNCis/RW51bUNvbm5lY3Rpb25zQENSb3dzZXRDb25uZWN0aW9uUG9pbnRAQFVBR0pQQVBBVUlFbnVtQ29ubmVjdGlvbnNAQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDQmFzZU9iajo6RkluaXQodm9pZCkNCis/RkluaXRAQ0Jhc2VPYmpAQElBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fc3RkY2FsbCBDQml0QXJyYXk6OkZJbml0KHVuc2lnbmVkIGxvbmcpDQorP0ZJbml0QENCaXRBcnJheUBAUUFHSktAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRXh0QnVmZmVyOjpGSW5pdCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0ZJbml0QENFeHRCdWZmZXJAQFFBRUhLS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENFeHRCdWZmZXI6OkZJbml0KHVuc2lnbmVkIGxvbmcsdm9pZCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/RkluaXRAQ0V4dEJ1ZmZlckBAUUFFSEtQQVhLS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENFeHRCdWZmZXI6OkZJbml0KGNsYXNzIENFeHRCdWZmZXIgKikNCis/RkluaXRAQ0V4dEJ1ZmZlckBAUUFFSFBBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0hhc2hUYmw6OkZJbml0KHVuc2lnbmVkIHNob3J0LGNsYXNzIENTbG90TGlzdFNob3J0ICosY2xhc3MgSUJvb2ttYXJrT2JqICopDQorP0ZJbml0QENIYXNoVGJsQEBRQUVIR1BBVkNTbG90TGlzdFNob3J0QEBQQVZJQm9va21hcmtPYmpAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENIYXNoVGJsQWdncjo6RkluaXQoY2xhc3MgQ0hhc2hUYmwgKikNCis/RkluaXRAQ0hhc2hUYmxBZ2dyQEBRQUVIUEFWQ0hhc2hUYmxAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ1Nsb3RMaXN0TG9uZzo6RkluaXQodW5zaWduZWQgbG9uZyxjbGFzcyBJU2xvdExpc3QgKiAqLGNsYXNzIElIYXNoVGJsICogKix1bnNpZ25lZCBsb25nKQ0KKz9GSW5pdEBDU2xvdExpc3RMb25nQEBVQUVIS1BBUEFWSVNsb3RMaXN0QEBQQVBBVklIYXNoVGJsQEBLQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDU2xvdExpc3RTaG9ydDo6RkluaXQodW5zaWduZWQgbG9uZyxjbGFzcyBJU2xvdExpc3QgKiAqLGNsYXNzIElIYXNoVGJsICogKix1bnNpZ25lZCBsb25nKQ0KKz9GSW5pdEBDU2xvdExpc3RTaG9ydEBAVUFFSEtQQVBBVklTbG90TGlzdEBAUEFQQVZJSGFzaFRibEBAS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDVXRsUHJvcEluZm86OkZJbml0KHZvaWQpDQorP0ZJbml0QENVdGxQcm9wSW5mb0BAUUFFSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENVdGxQcm9wczI6OkZJbml0KGNsYXNzIENVdGxQcm9wczIgKikNCis/RkluaXRAQ1V0bFByb3BzMkBAVUFFSlBBVjFAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1V0bFByb3BzRmFzdExvb2t1cDI6OkZJbml0KGNsYXNzIENVdGxQcm9wc0Zhc3RMb29rdXAyICopDQorP0ZJbml0QENVdGxQcm9wc0Zhc3RMb29rdXAyQEBVQUVKUEFWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDVkxIZWFwOjpGSW5pdCh1bnNpZ25lZCBsb25nKQ0KKz9GSW5pdEBDVkxIZWFwQEBRQUVIS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDR2VuZXJpY1Bvb2xlcjo6RkluaXRpYWxpemVHUFN0cnVjdHVyZXModm9pZCkNCis/RkluaXRpYWxpemVHUFN0cnVjdHVyZXNAQ0dlbmVyaWNQb29sZXJAQFFBRVhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpGSXNEZWZhdWx0VmFsdWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdWQVJJQU5UICopDQorP0ZJc0RlZmF1bHRWYWx1ZUBDVXRsUHJvcHMyQEBRQUVIS0tQQVV0YWdWQVJJQU5UQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENVdGxQcm9wczI6OkZJc1ZhbGlkQ29sSWQoc3RydWN0IHRhZ0RCUFJPUCAqKQ0KKz9GSXNWYWxpZENvbElkQENVdGxQcm9wczJAQFVBRUhQQVV0YWdEQlBST1BAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpGaWxsRGVmYXVsdFZhbHVlcyh1bnNpZ25lZCBsb25nKQ0KKz9GaWxsRGVmYXVsdFZhbHVlc0BDVXRsUHJvcHMyQEBRQUVKS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lcjo6RmluZENvbm5lY3Rpb25Qb2ludChzdHJ1Y3QgX0dVSUQgY29uc3QgJixzdHJ1Y3QgSUNvbm5lY3Rpb25Qb2ludCAqICopDQorP0ZpbmRDb25uZWN0aW9uUG9pbnRAQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lckBAVUFHSkFCVV9HVUlEQEBQQVBBVUlDb25uZWN0aW9uUG9pbnRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ29ubmVjdERhdGE6OkZvcmdldEV2ZW50KGVudW0gREJSRUFTT05FTlVNLGVudW0gREJFVkVOVFBIQVNFRU5VTSkNCis/Rm9yZ2V0RXZlbnRAQ0Nvbm5lY3REYXRhQEBRQUVYVzREQlJFQVNPTkVOVU1AQFc0REJFVkVOVFBIQVNFRU5VTUBAQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDUm93c2V0Q29ubmVjdGlvblBvaW50OjpGb3JnZXRFdmVudChlbnVtIERCUkVBU09ORU5VTSxlbnVtIERCRVZFTlRQSEFTRUVOVU0pDQorP0ZvcmdldEV2ZW50QENSb3dzZXRDb25uZWN0aW9uUG9pbnRAQEFBRVhXNERCUkVBU09ORU5VTUBAVzREQkVWRU5UUEhBU0VFTlVNQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Nvbm5lY3REYXRhOjpGb3JnZXRSZWFzb24oZW51bSBEQlJFQVNPTkVOVU0pDQorP0ZvcmdldFJlYXNvbkBDQ29ubmVjdERhdGFAQFFBRVhXNERCUkVBU09ORU5VTUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1dTdHJpbmc6OkZvdW5kRXJyb3Iodm9pZCljb25zdCANCis/Rm91bmRFcnJvckBDV1N0cmluZ0BAUUJFSFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRXh0QnVmZmVyOjpGcmVlKHZvaWQpDQorP0ZyZWVAQ0V4dEJ1ZmZlckBAUUFFWFhaDQorOyB2b2lkIF9fY2RlY2wgRnJlZURCSURzKHN0cnVjdCB0YWdEQklEICopDQorP0ZyZWVEQklEc0BAWUFYUEFVdGFnREJJREBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENXU3RyaW5nOjpGcmVlRXh0cmEodm9pZCkNCis/RnJlZUV4dHJhQENXU3RyaW5nQEBRQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpGcmVlTWVtb3J5KHZvaWQpDQorP0ZyZWVNZW1vcnlAQ1V0bFByb3BzMkBAQUFFWFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENXU3RyaW5nOjpHZXRBbGxvY0xlbmd0aCh2b2lkKWNvbnN0IA0KKz9HZXRBbGxvY0xlbmd0aEBDV1N0cmluZ0BAUUJFSFhaDQorOyBwdWJsaWM6IGVudW0gRUJhc2VPYmplY3RUeXBlICBfX3RoaXNjYWxsIENCYXNlT2JqOjpHZXRCYXNlT2JqZWN0VHlwZSh2b2lkKQ0KKz9HZXRCYXNlT2JqZWN0VHlwZUBDQmFzZU9iakBAUUFFP0FXNEVCYXNlT2JqZWN0VHlwZUBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIENCYXNlT2JqOjpHZXRCYXNlT2JqZWN0VHlwZU5hbWUodm9pZCkNCis/R2V0QmFzZU9iamVjdFR5cGVOYW1lQENCYXNlT2JqQEBRQUVQQUdYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Jhc2VPYmpab21iaWU6OkdldEJva29UaW1lc3RhbXAodm9pZCkNCis/R2V0Qm9rb1RpbWVzdGFtcEBDQmFzZU9ialpvbWJpZUBAUUFFWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBDV1N0cmluZzo6R2V0QnVmZmVyKGludCkNCis/R2V0QnVmZmVyQENXU3RyaW5nQEBRQUVQQUdIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIENXU3RyaW5nOjpHZXRCdWZmZXJTZXRMZW5ndGgoaW50KQ0KKz9HZXRCdWZmZXJTZXRMZW5ndGhAQ1dTdHJpbmdAQFFBRVBBR0hAWg0KKzsgcHVibGljOiBzdHJ1Y3QgdGFnQ09OTkVDVERBVEEgKiBfX3RoaXNjYWxsIENDb25uZWN0RGF0YTo6R2V0Q2Qodm9pZCkNCis/R2V0Q2RAQ0Nvbm5lY3REYXRhQEBRQUVQQVV0YWdDT05ORUNUREFUQUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDUm93c2V0Q29ubmVjdGlvblBvaW50OjpHZXRDb25uZWN0aW9uSW50ZXJmYWNlKHN0cnVjdCBfR1VJRCAqKQ0KKz9HZXRDb25uZWN0aW9uSW50ZXJmYWNlQENSb3dzZXRDb25uZWN0aW9uUG9pbnRAQFVBR0pQQVVfR1VJREBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDUm93c2V0Q29ubmVjdGlvblBvaW50OjpHZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXIoc3RydWN0IElDb25uZWN0aW9uUG9pbnRDb250YWluZXIgKiAqKQ0KKz9HZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXJAQ1Jvd3NldENvbm5lY3Rpb25Qb2ludEBAVUFHSlBBUEFVSUNvbm5lY3Rpb25Qb2ludENvbnRhaW5lckBAQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpHZXRDb3VudG9mQ29saWRzKHN0cnVjdCB0YWdVUFJPUCAqKQ0KKz9HZXRDb3VudG9mQ29saWRzQENVdGxQcm9wczJAQEFBRUtQQVV0YWdVUFJPUEBAQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpHZXRDb3VudG9mV3JpdGFibGVQcm9wc0luUHJvcFNldCh1bnNpZ25lZCBsb25nKQ0KKz9HZXRDb3VudG9mV3JpdGFibGVQcm9wc0luUHJvcFNldEBDVXRsUHJvcHMyQEBBQUVLS0BaDQorOyBwdWJsaWM6IGNsYXNzIENDcml0aWNhbFNlY3Rpb24gKiAqIF9fdGhpc2NhbGwgQ0Jhc2VPYmo6OkdldENyaXRpY2FsU2VjdGlvbih2b2lkKQ0KKz9HZXRDcml0aWNhbFNlY3Rpb25AQ0Jhc2VPYmpAQFFBRVBBUEFWQ0NyaXRpY2FsU2VjdGlvbkBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0V4dEJ1ZmZlcjo6R2V0RFdPUkRPZkV4dEJ1ZmZlcih1bnNpZ25lZCBsb25nKQ0KKz9HZXREV09SRE9mRXh0QnVmZmVyQENFeHRCdWZmZXJAQFFBR0tLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpHZXRFeHBlY3RlZFZhclR5cGUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9HZXRFeHBlY3RlZFZhclR5cGVAQ1V0bFByb3BzMkBAUUFFR0tLQFoNCis7IHB1YmxpYzogc3RydWN0IF9HVUlEIGNvbnN0ICogX190aGlzY2FsbCBDVXRsUHJvcHMyOjpHZXRHdWlkKHVuc2lnbmVkIGxvbmcpDQorP0dldEd1aWRAQ1V0bFByb3BzMkBAUUFFUEJVX0dVSURAQEtAWg0KKzsgcHVibGljOiBjbGFzcyBDSGVhcERpc3BlbnNlciAqIF9fdGhpc2NhbGwgQ0dlbmVyaWNQb29sZXI6OkdldEhlYXBEaXNwZW5zZXIodm9pZCkNCis/R2V0SGVhcERpc3BlbnNlckBDR2VuZXJpY1Bvb2xlckBAUUFFUEFWQ0hlYXBEaXNwZW5zZXJAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBJR1BIb2xkZXIgKiBfX3RoaXNjYWxsIENHZW5lcmljUG9vbGVyOjpHZXRIZWFwSG9sZGVyKHZvaWQpDQorP0dldEhlYXBIb2xkZXJAQ0dlbmVyaWNQb29sZXJAQFFBRVBBVUlHUEhvbGRlckBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6R2V0SW5kZXhvZlByb3BJZGluUHJvcFNldCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRJbmRleG9mUHJvcElkaW5Qcm9wU2V0QENVdGxQcm9wczJAQFVBRUpLS1BBS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENVdGxQcm9wc0Zhc3RMb29rdXAyOjpHZXRJbmRleG9mUHJvcElkaW5Qcm9wU2V0KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICopDQorP0dldEluZGV4b2ZQcm9wSWRpblByb3BTZXRAQ1V0bFByb3BzRmFzdExvb2t1cDJAQE1BRUpLS1BBS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENVdGxQcm9wczI6OkdldEluZGV4b2ZQcm9wU2V0KHN0cnVjdCBfR1VJRCBjb25zdCAqLHVuc2lnbmVkIGxvbmcgKikNCis/R2V0SW5kZXhvZlByb3BTZXRAQ1V0bFByb3BzMkBAVUFFSlBCVV9HVUlEQEBQQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6R2V0SW50ZXJuYWxGbGFncyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0dldEludGVybmFsRmxhZ3NAQ1V0bFByb3BzMkBAUUFFS0tLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENVdGxQcm9wczI6OkdldEludGVybmFsU3RhdHVzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/R2V0SW50ZXJuYWxTdGF0dXNAQ1V0bFByb3BzMkBAUUFFS0tLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0V4dEJ1ZmZlcjo6R2V0SXRlbUNvdW50KHZvaWQpY29uc3QgDQorP0dldEl0ZW1Db3VudEBDRXh0QnVmZmVyQEBRQkdLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0V4dEJ1ZmZlcjo6R2V0SXRlbU1heCh2b2lkKWNvbnN0IA0KKz9HZXRJdGVtTWF4QENFeHRCdWZmZXJAQFFCR0tYWg0KKzsgcHVibGljOiB2b2lkIF9fc3RkY2FsbCBDRXh0QnVmZmVyOjpHZXRJdGVtT2ZFeHRCdWZmZXIodW5zaWduZWQgbG9uZyx2b2lkICopDQorP0dldEl0ZW1PZkV4dEJ1ZmZlckBDRXh0QnVmZmVyQEBRQUdYS1BBWEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENFeHRCdWZmZXI6OkdldEl0ZW1TaXplKHZvaWQpY29uc3QgDQorP0dldEl0ZW1TaXplQENFeHRCdWZmZXJAQFFCR0tYWg0KKzsgcHVibGljOiB2b2lkIF9fc3RkY2FsbCBDRXh0QnVmZmVyOjpHZXRMYXN0SXRlbUhhbmRsZSh1bnNpZ25lZCBsb25nICYpDQorP0dldExhc3RJdGVtSGFuZGxlQENFeHRCdWZmZXJAQFFBR1hBQUtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDV1N0cmluZzo6R2V0TGVuZ3RoKHZvaWQpY29uc3QgDQorP0dldExlbmd0aEBDV1N0cmluZ0BAUUJFSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBDRXh0QnVmZmVyOjpHZXROYW1lRnJvbU9mZnNldCh1bnNpZ25lZCBsb25nKQ0KKz9HZXROYW1lRnJvbU9mZnNldEBDRXh0QnVmZmVyQEBRQUVQQUdLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDU2xvdExpc3RMb25nOjpHZXROZXh0U2xvdHModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKikNCis/R2V0TmV4dFNsb3RzQENTbG90TGlzdExvbmdAQFVBR0pLS1BBS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1Nsb3RMaXN0U2hvcnQ6OkdldE5leHRTbG90cyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXROZXh0U2xvdHNAQ1Nsb3RMaXN0U2hvcnRAQFVBR0pLS1BBS0BaDQorOyBwcml2YXRlOiB2b2lkICogX190aGlzY2FsbCBDRW51bTo6R2V0TnRoRWxlbWVudCh1bnNpZ25lZCBsb25nKQ0KKz9HZXROdGhFbGVtZW50QENFbnVtQEBBQUVQQVhLQFoNCis7IHByaXZhdGU6IHN0cnVjdCBJVW5rbm93biAqIF9fdGhpc2NhbGwgQ0VudW06OkdldE50aFVua25vd24odW5zaWduZWQgbG9uZykNCis/R2V0TnRoVW5rbm93bkBDRW51bUBAQUFFUEFVSVVua25vd25AQEtAWg0KKzsgcHVibGljOiBzdHJ1Y3QgSVVua25vd24gKiBfX3RoaXNjYWxsIENCYXNlT2JqOjpHZXRPdXRlclVua25vd24odm9pZCkNCis/R2V0T3V0ZXJVbmtub3duQENCYXNlT2JqQEBRQUVQQVVJVW5rbm93bkBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENVdGxQcm9wczI6OkdldFByb3BJRCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0dldFByb3BJREBDVXRsUHJvcHMyQEBRQUVLS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6R2V0UHJvcE9wdGlvbih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0dldFByb3BPcHRpb25AQ1V0bFByb3BzMkBAUUFFS0tLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENVdGxQcm9wczI6OkdldFByb3BTdGF0dXMoc3RydWN0IHRhZ1VQUk9QVkFMICopDQorP0dldFByb3BTdGF0dXNAQ1V0bFByb3BzMkBAUUFFS1BBVXRhZ1VQUk9QVkFMQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6R2V0UHJvcFZhbHVlKHN0cnVjdCBfR1VJRCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1ZBUklBTlQgKikNCis/R2V0UHJvcFZhbHVlQENVdGxQcm9wczJAQFFBRUpQQlVfR1VJREBAS1BBVXRhZ1ZBUklBTlRAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpHZXRQcm9wZXJ0aWVzKHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ0RCUFJPUElEU0VUIGNvbnN0ICogY29uc3QsdW5zaWduZWQgbG9uZyAqLHN0cnVjdCB0YWdEQlBST1BTRVQgKiAqKQ0KKz9HZXRQcm9wZXJ0aWVzQENVdGxQcm9wczJAQFFBRUpLUUJVdGFnREJQUk9QSURTRVRAQFBBS1BBUEFVdGFnREJQUk9QU0VUQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6R2V0UHJvcGVydGllcyh1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdEQlBST1BJRFNFVCBjb25zdCAqIGNvbnN0LHVuc2lnbmVkIGxvbmcgKixzdHJ1Y3QgdGFnREJQUk9QU0VUICogKixzdHJ1Y3QgX0dVSUQgY29uc3QgKikNCis/R2V0UHJvcGVydGllc0BDVXRsUHJvcHMyQEBRQUVKS1FCVXRhZ0RCUFJPUElEU0VUQEBQQUtQQVBBVXRhZ0RCUFJPUFNFVEBAUEJVX0dVSURAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpHZXRQcm9wZXJ0aWVzQXJnQ2hrKHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ0RCUFJPUElEU0VUIGNvbnN0ICogY29uc3QsdW5zaWduZWQgbG9uZyAqLHN0cnVjdCB0YWdEQlBST1BTRVQgKiAqKQ0KKz9HZXRQcm9wZXJ0aWVzQXJnQ2hrQENVdGxQcm9wczJAQFFBRUpLUUJVdGFnREJQUk9QSURTRVRAQFBBS1BBUEFVdGFnREJQUk9QU0VUQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1V0bFByb3BJbmZvOjpHZXRQcm9wZXJ0eUluZm8odW5zaWduZWQgbG9uZyxzdHJ1Y3QgdGFnREJQUk9QSURTRVQgY29uc3QgKiBjb25zdCx1bnNpZ25lZCBsb25nICosc3RydWN0IHRhZ0RCUFJPUElORk9TRVQgKiAqLHVuc2lnbmVkIHNob3J0ICogKikNCis/R2V0UHJvcGVydHlJbmZvQENVdGxQcm9wSW5mb0BAUUFFSktRQlV0YWdEQlBST1BJRFNFVEBAUEFLUEFQQVV0YWdEQlBST1BJTkZPU0VUQEBQQVBBR0BaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgQ1V0bFByb3BJbmZvOjpHZXRQcm9wZXJ0eVNldEluZGV4KHN0cnVjdCBfR1VJRCBjb25zdCAqKQ0KKz9HZXRQcm9wZXJ0eVNldEluZGV4QENVdGxQcm9wSW5mb0BAQUFFSlBCVV9HVUlEQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nICogX190aGlzY2FsbCBDVXRsUHJvcHMyOjpHZXRQcm9wc0luRXJyb3JQdHIodm9pZCkNCis/R2V0UHJvcHNJbkVycm9yUHRyQENVdGxQcm9wczJAQFFBRVBBS1haDQorOyBwdWJsaWM6IHZvaWQgKiBfX3N0ZGNhbGwgQ0V4dEJ1ZmZlcjo6R2V0UHRyT2ZFeHRCdWZmZXIodW5zaWduZWQgbG9uZykNCis/R2V0UHRyT2ZFeHRCdWZmZXJAQ0V4dEJ1ZmZlckBAUUFHUEFYS0BaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3N0ZGNhbGwgQ0V4dEJ1ZmZlcjo6R2V0UHRyT2ZFeHRCdWZmZXIodm9pZCkNCis/R2V0UHRyT2ZFeHRCdWZmZXJAQ0V4dEJ1ZmZlckBAUUFHUEFYWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENHZW5lcmljUG9vbGVyOjpHZXRSZXNvdXJjZSh2b2lkICogKixzdHJ1Y3QgSUdQSG9sZGVyICosc3RydWN0IElHUERpc3BlbnNlciAqLHZvaWQgKiAqLHZvaWQgKikNCis/R2V0UmVzb3VyY2VAQ0dlbmVyaWNQb29sZXJAQFFBRUpQQVBBWFBBVUlHUEhvbGRlckBAUEFVSUdQRGlzcGVuc2VyQEAwUEFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBzdHJ1Y3QgdGFnUm93QnVmZiAqIF9fZmFzdGNhbGwgQ1Nsb3RMaXN0TG9uZzo6R2V0Um93QnVmZih1bnNpZ25lZCBsb25nKQ0KKz9HZXRSb3dCdWZmQENTbG90TGlzdExvbmdAQFVBSVBBVXRhZ1Jvd0J1ZmZAQEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHN0cnVjdCB0YWdSb3dCdWZmICogX19mYXN0Y2FsbCBDU2xvdExpc3RTaG9ydDo6R2V0Um93QnVmZih1bnNpZ25lZCBsb25nKQ0KKz9HZXRSb3dCdWZmQENTbG90TGlzdFNob3J0QEBVQUlQQVV0YWdSb3dCdWZmQEBLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENVdGxQcm9wczI6OkdldFN0YXR1cyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0dldFN0YXR1c0BDVXRsUHJvcHMyQEBRQUVLS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Jhc2VPYmpCb2tvOjpHZXRUaW1lc3RhbXAodW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRUaW1lc3RhbXBAQ0Jhc2VPYmpCb2tvQEBRQUVYUEFLQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBDVXRsUHJvcEluZm86OkdldFVQcm9wSW5mb1B0cih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1VQUk9QSU5GTyAqICopDQorP0dldFVQcm9wSW5mb1B0ckBDVXRsUHJvcEluZm9AQEFBRUpLS1BBUEFVdGFnVVBST1BJTkZPQEBAWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1V0bFByb3BJbmZvOjpHZXRVUHJvcFNldENvdW50KHZvaWQpDQorP0dldFVQcm9wU2V0Q291bnRAQ1V0bFByb3BJbmZvQEBJQUVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENVdGxQcm9wczI6OkdldFVQcm9wU2V0Q291bnQodm9pZCkNCis/R2V0VVByb3BTZXRDb3VudEBDVXRsUHJvcHMyQEBRQUVLWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6R2V0VVByb3BWYWxJbmRleCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0dldFVQcm9wVmFsSW5kZXhAQ1V0bFByb3BzMkBATUFFS0tLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1V0bFByb3BzRmFzdExvb2t1cDI6OkdldFVQcm9wVmFsSW5kZXgodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9HZXRVUHJvcFZhbEluZGV4QENVdGxQcm9wc0Zhc3RMb29rdXAyQEBNQUVLS0tAWg0KKzsgcHVibGljOiBzaG9ydCBfX3RoaXNjYWxsIENVdGxQcm9wczI6OkdldFZhbEJvb2wodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9HZXRWYWxCb29sQENVdGxQcm9wczJAQFFCRUZLS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpHZXRWYWxMb25nKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyljb25zdCANCis/R2V0VmFsTG9uZ0BDVXRsUHJvcHMyQEBRQkVKS0tAWg0KKzsgcHVibGljOiBzaG9ydCBfX3RoaXNjYWxsIENVdGxQcm9wczI6OkdldFZhbFNob3J0KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyljb25zdCANCis/R2V0VmFsU2hvcnRAQ1V0bFByb3BzMkBAUUJFRktLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIENVdGxQcm9wczI6OkdldFZhbFN0cmluZyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0dldFZhbFN0cmluZ0BDVXRsUHJvcHMyQEBRQUVQQkdLS0BaDQorOyBwdWJsaWM6IHN0cnVjdCB0YWdWQVJJQU5UICogX190aGlzY2FsbCBDVXRsUHJvcHMyOjpHZXRWYXJpYW50KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/R2V0VmFyaWFudEBDVXRsUHJvcHMyQEBRQUVQQVV0YWdWQVJJQU5UQEBLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fc3RkY2FsbCBDSGVhcERpc3BlbnNlcjo6SGFzaEtleSh2b2lkICosdW5zaWduZWQgbG9uZyxpbnQgKikNCis/SGFzaEtleUBDSGVhcERpc3BlbnNlckBAVUFHSFBBWEtQQUhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lcjo6SW5pdCh2b2lkKQ0KKz9Jbml0QENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXJAQFFBRUpYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ1dTdHJpbmc6OkluaXQodm9pZCkNCis/SW5pdEBDV1N0cmluZ0BASUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ0hhc2hUYmw6Okluc2VydEZpbmRCbWsoaW50LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyAqKQ0KKz9JbnNlcnRGaW5kQm1rQENIYXNoVGJsQEBVQUdKSEtLUEFFUEFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDSGFzaFRibEFnZ3I6Okluc2VydEZpbmRCbWsoaW50LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyAqKQ0KKz9JbnNlcnRGaW5kQm1rQENIYXNoVGJsQWdnckBAVUFHSkhLS1BBRVBBS0BaDQorOyBwdWJsaWM6IGxvbmcgX19zdGRjYWxsIENFeHRCdWZmZXI6Okluc2VydEludG9FeHRCdWZmZXIodm9pZCAqLHVuc2lnbmVkIGxvbmcgJikNCis/SW5zZXJ0SW50b0V4dEJ1ZmZlckBDRXh0QnVmZmVyQEBRQUdKUEFYQUFLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6SXNFbXB0eSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0lzRW1wdHlAQ1V0bFByb3BzMkBAUUFFSEtLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1dTdHJpbmc6OklzRW1wdHkodm9pZCljb25zdCANCis/SXNFbXB0eUBDV1N0cmluZ0BAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENVdGxQcm9wczI6OklzUHJvcFNldChzdHJ1Y3QgX0dVSUQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9Jc1Byb3BTZXRAQ1V0bFByb3BzMkBAUUFFSFBCVV9HVUlEQEBLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6SXNSZXF1aXJlZEZhbHNlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/SXNSZXF1aXJlZEZhbHNlQENVdGxQcm9wczJAQFFBRUhLS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENVdGxQcm9wczI6OklzUmVxdWlyZWRUcnVlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/SXNSZXF1aXJlZFRydWVAQ1V0bFByb3BzMkBAUUFFSEtLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6SXNTZXRJZkNhbih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0lzU2V0SWZDYW5AQ1V0bFByb3BzMkBAUUFFSEtLQFoNCis7IHB1YmxpYzogbG9uZyBfX3N0ZGNhbGwgQ0JpdEFycmF5OjpJc1Nsb3RTZXQodW5zaWduZWQgbG9uZykNCis/SXNTbG90U2V0QENCaXRBcnJheUBAUUFHSktAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpJc1RydWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9Jc1RydWVAQ1V0bFByb3BzMkBAUUFFSEtLQFoNCis7IHB1YmxpYzogaW50IF9fc3RkY2FsbCBDVkxIZWFwOjpJc1ZMQWxsb2Modm9pZCAqKQ0KKz9Jc1ZMQWxsb2NAQ1ZMSGVhcEBAUUFHSFBBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1Nsb3RMaXN0TG9uZzo6SXNWYWxpZFNsb3QodW5zaWduZWQgbG9uZykNCis/SXNWYWxpZFNsb3RAQ1Nsb3RMaXN0TG9uZ0BAVUFHSktAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENTbG90TGlzdFNob3J0OjpJc1ZhbGlkU2xvdCh1bnNpZ25lZCBsb25nKQ0KKz9Jc1ZhbGlkU2xvdEBDU2xvdExpc3RTaG9ydEBAVUFHSktAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQmFzZU9iakJva286OklzWm9tYmllKHVuc2lnbmVkIGxvbmcpDQorP0lzWm9tYmllQENCYXNlT2JqQm9rb0BAUUFFSEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQmFzZU9ialpvbWJpZTo6SXNab21iaWUodm9pZCkNCis/SXNab21iaWVAQ0Jhc2VPYmpab21iaWVAQFFBRUhYWg0KKzsgdW5zaWduZWQgbG9uZyBfX2NkZWNsIExvYWRSQ0RhdGEodm9pZCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGxvbmcpDQorP0xvYWRSQ0RhdGFAQFlBS1BBWElQQUdLQFoNCis7IGxvbmcgX19jZGVjbCBMb2FkUmVzb3VyY2VETEwodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqLHZvaWQgKix2b2lkICogKikNCis/TG9hZFJlc291cmNlRExMQEBZQUpQQUcwUEFYUEFQQVhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDV1N0cmluZzo6TG9hZFN0cmluZ1codm9pZCAqLHVuc2lnbmVkIGludCkNCis/TG9hZFN0cmluZ1dAQ1dTdHJpbmdAQFFBRUhQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDQ2xhc3NGYWN0b3J5OjpMb2NrU2VydmVyKGludCkNCis/TG9ja1NlcnZlckBDQ2xhc3NGYWN0b3J5QEBVQUdKSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQmFzZU9iakJva286Ok1ha2Vab21iaWVzKHZvaWQpDQorP01ha2Vab21iaWVzQENCYXNlT2JqQm9rb0BAUUFFWFhaDQorOyBwdWJsaWM6IGNsYXNzIENXU3RyaW5nICBfX3RoaXNjYWxsIENXU3RyaW5nOjpNaWQoaW50KWNvbnN0IA0KKz9NaWRAQ1dTdHJpbmdAQFFCRT9BVjFASEBaDQorOyBwdWJsaWM6IGNsYXNzIENXU3RyaW5nICBfX3RoaXNjYWxsIENXU3RyaW5nOjpNaWQoaW50LGludCljb25zdCANCis/TWlkQENXU3RyaW5nQEBRQkU/QVYxQEhIQFoNCis7IHB1YmxpYzogbG9uZyBfX3N0ZGNhbGwgQ0VudW06Ok5leHQodW5zaWduZWQgbG9uZyx2b2lkICogKix1bnNpZ25lZCBsb25nICopDQorP05leHRAQ0VudW1AQFFBR0pLUEFQQVhQQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENFbnVtQ29ubmVjdGlvblBvaW50czo6TmV4dCh1bnNpZ25lZCBsb25nLHN0cnVjdCBJQ29ubmVjdGlvblBvaW50ICogKix1bnNpZ25lZCBsb25nICopDQorP05leHRAQ0VudW1Db25uZWN0aW9uUG9pbnRzQEBVQUdKS1BBUEFVSUNvbm5lY3Rpb25Qb2ludEBAUEFLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDRW51bUNvbm5lY3Rpb25zOjpOZXh0KHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ0NPTk5FQ1REQVRBICosdW5zaWduZWQgbG9uZyAqKQ0KKz9OZXh0QENFbnVtQ29ubmVjdGlvbnNAQFVBR0pLUEFVdGFnQ09OTkVDVERBVEFAQFBBS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1Nsb3RMaXN0TG9uZzo6TmV4dEJ1c3lTbG90KHVuc2lnbmVkIGxvbmcgKikNCis/TmV4dEJ1c3lTbG90QENTbG90TGlzdExvbmdAQFVBR0pQQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENTbG90TGlzdFNob3J0OjpOZXh0QnVzeVNsb3QodW5zaWduZWQgbG9uZyAqKQ0KKz9OZXh0QnVzeVNsb3RAQ1Nsb3RMaXN0U2hvcnRAQFVBR0pQQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENTbG90TGlzdExvbmc6Ok5vQnVzeVNsb3RzKHZvaWQpDQorP05vQnVzeVNsb3RzQENTbG90TGlzdExvbmdAQFVBR0pYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENTbG90TGlzdFNob3J0OjpOb0J1c3lTbG90cyh2b2lkKQ0KKz9Ob0J1c3lTbG90c0BDU2xvdExpc3RTaG9ydEBAVUFHSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDV1N0cmluZzo6TnVtRWxlbWVudHModW5zaWduZWQgc2hvcnQgKiBjb25zdCljb25zdCANCis/TnVtRWxlbWVudHNAQ1dTdHJpbmdAQFFCRUtRQUdAWg0KKzsgaW50IF9fY2RlY2wgT0xFREJHZXRDaGFyVHlwZVcodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCAqKQ0KKz9PTEVEQkdldENoYXJUeXBlV0BAWUFIS0dQQUdAWg0KKzsgcHVibGljOiBzaG9ydCBfX3RoaXNjYWxsIENVdGxQcm9wczI6Ok9rVG9QZXJzaXN0U2Vuc2l0aXZlQXV0aEluZm8odm9pZCkNCis/T2tUb1BlcnNpc3RTZW5zaXRpdmVBdXRoSW5mb0BDVXRsUHJvcHMyQEBRQUVGWFoNCis7IGludCBfX2NkZWNsIE9uVW5pY29kZVN5c3RlbSh2b2lkKQ0KKz9PblVuaWNvZGVTeXN0ZW1AQFlBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ0NsYXNzRmFjdG9yeTo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYsdm9pZCAqICopDQorP1F1ZXJ5SW50ZXJmYWNlQENDbGFzc0ZhY3RvcnlAQFVBR0pBQlVfR1VJREBAUEFQQVhAWg0KKzsgcHVibGljOiBsb25nIF9fc3RkY2FsbCBDRW51bTo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYsdm9pZCAqICosc3RydWN0IElVbmtub3duICopDQorP1F1ZXJ5SW50ZXJmYWNlQENFbnVtQEBRQUdKQUJVX0dVSURAQFBBUEFYUEFVSVVua25vd25AQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ0VudW1Db25uZWN0aW9uUG9pbnRzOjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJix2b2lkICogKikNCis/UXVlcnlJbnRlcmZhY2VAQ0VudW1Db25uZWN0aW9uUG9pbnRzQEBVQUdKQUJVX0dVSURAQFBBUEFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDRW51bUNvbm5lY3Rpb25zOjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJix2b2lkICogKikNCis/UXVlcnlJbnRlcmZhY2VAQ0VudW1Db25uZWN0aW9uc0BAVUFHSkFCVV9HVUlEQEBQQVBBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ0hlYXBEaXNwZW5zZXI6OlF1ZXJ5SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmLHZvaWQgKiAqKQ0KKz9RdWVyeUludGVyZmFjZUBDSGVhcERpc3BlbnNlckBAVUFHSkFCVV9HVUlEQEBQQVBBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludDo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYsdm9pZCAqICopDQorP1F1ZXJ5SW50ZXJmYWNlQENSb3dzZXRDb25uZWN0aW9uUG9pbnRAQFVBR0pBQlVfR1VJREBAUEFQQVhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXI6OlF1ZXJ5SW50ZXJmYWNlKHN0cnVjdCBfR1VJRCBjb25zdCAmLHZvaWQgKiAqKQ0KKz9RdWVyeUludGVyZmFjZUBDUm93c2V0Q29ubmVjdGlvblBvaW50Q29udGFpbmVyQEBVQUdKQUJVX0dVSURAQFBBUEFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDSGVhcERpc3BlbnNlcjo6UmF0ZVJlcyh2b2lkICosdW5zaWduZWQgbG9uZyx2b2lkICosaW50ICopDQorP1JhdGVSZXNAQ0hlYXBEaXNwZW5zZXJAQFVBR0pQQVhLMFBBSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3N0ZGNhbGwgQ1Nsb3RMaXN0TG9uZzo6UmVjb3JkSW50ZXJuYWxVc2Uodm9pZCkNCis/UmVjb3JkSW50ZXJuYWxVc2VAQ1Nsb3RMaXN0TG9uZ0BAVUFHWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3N0ZGNhbGwgQ1Nsb3RMaXN0U2hvcnQ6OlJlY29yZEludGVybmFsVXNlKHZvaWQpDQorP1JlY29yZEludGVybmFsVXNlQENTbG90TGlzdFNob3J0QEBVQUdYWFoNCis7IGxvbmcgX19jZGVjbCBSZWdpc3RlclNlcnZlcih2b2lkICogY29uc3Qsdm9pZCAqIGNvbnN0LHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1JFR0VOVFJJRVMgY29uc3QgKiBjb25zdCkNCis/UmVnaXN0ZXJTZXJ2ZXJAQFlBSlFBWDBLUUJVdGFnUkVHRU5UUklFU0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDQ2xhc3NGYWN0b3J5OjpSZWxlYXNlKHZvaWQpDQorP1JlbGVhc2VAQ0NsYXNzRmFjdG9yeUBAVUFHS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENFbnVtOjpSZWxlYXNlKHZvaWQpDQorP1JlbGVhc2VAQ0VudW1AQFFBR0tYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENFbnVtQ29ubmVjdGlvblBvaW50czo6UmVsZWFzZSh2b2lkKQ0KKz9SZWxlYXNlQENFbnVtQ29ubmVjdGlvblBvaW50c0BAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0VudW1Db25uZWN0aW9uczo6UmVsZWFzZSh2b2lkKQ0KKz9SZWxlYXNlQENFbnVtQ29ubmVjdGlvbnNAQFVBR0tYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENIZWFwRGlzcGVuc2VyOjpSZWxlYXNlKHZvaWQpDQorP1JlbGVhc2VAQ0hlYXBEaXNwZW5zZXJAQFVBR0tYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENSb3dzZXRDb25uZWN0aW9uUG9pbnQ6OlJlbGVhc2Uodm9pZCkNCis/UmVsZWFzZUBDUm93c2V0Q29ubmVjdGlvblBvaW50QEBVQUdLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDUm93c2V0Q29ubmVjdGlvblBvaW50Q29udGFpbmVyOjpSZWxlYXNlKHZvaWQpDQorP1JlbGVhc2VAQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lckBAVUFHS1haDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDV1N0cmluZzo6UmVsZWFzZUJ1ZmZlcihpbnQpDQorP1JlbGVhc2VCdWZmZXJAQ1dTdHJpbmdAQFFBRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENHZW5lcmljUG9vbGVyOjpSZWxlYXNlSG9sZGVycyh2b2lkKQ0KKz9SZWxlYXNlSG9sZGVyc0BDR2VuZXJpY1Bvb2xlckBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDR2VuZXJpY1Bvb2xlcjo6UmVsZWFzZVJlc291cmNlKHZvaWQgKixzdHJ1Y3QgSUdQSG9sZGVyICosc3RydWN0IElHUERpc3BlbnNlciAqLHZvaWQgKikNCis/UmVsZWFzZVJlc291cmNlQENHZW5lcmljUG9vbGVyQEBRQUVYUEFYUEFVSUdQSG9sZGVyQEBQQVVJR1BEaXNwZW5zZXJAQDBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENTbG90TGlzdExvbmc6OlJlbGVhc2VTbG90cyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP1JlbGVhc2VTbG90c0BDU2xvdExpc3RMb25nQEBVQUdLS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENTbG90TGlzdFNob3J0OjpSZWxlYXNlU2xvdHModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9SZWxlYXNlU2xvdHNAQ1Nsb3RMaXN0U2hvcnRAQFVBR0tLS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpSZW1vdmVJbnRlcm5hbEZsYWdzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9SZW1vdmVJbnRlcm5hbEZsYWdzQENVdGxQcm9wczJAQFFBRVhLS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1dTdHJpbmc6OlJlcGxhY2VBdChpbnQsaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz9SZXBsYWNlQXRAQ1dTdHJpbmdAQFFBRVhISFBCR0hAWg0KKzsgcHVibGljOiBsb25nIF9fc3RkY2FsbCBDRXh0QnVmZmVyOjpSZXBsYWNlSW5FeHRCdWZmZXIodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHZvaWQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9SZXBsYWNlSW5FeHRCdWZmZXJAQ0V4dEJ1ZmZlckBAUUFHSktLUEJYS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDb25uZWN0RGF0YTo6UmVzZXQodm9pZCkNCis/UmVzZXRAQ0Nvbm5lY3REYXRhQEBRQUVIWFoNCis7IHB1YmxpYzogbG9uZyBfX3N0ZGNhbGwgQ0VudW06OlJlc2V0KHZvaWQpDQorP1Jlc2V0QENFbnVtQEBRQUdKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDRW51bUNvbm5lY3Rpb25Qb2ludHM6OlJlc2V0KHZvaWQpDQorP1Jlc2V0QENFbnVtQ29ubmVjdGlvblBvaW50c0BAVUFHSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ0VudW1Db25uZWN0aW9uczo6UmVzZXQodm9pZCkNCis/UmVzZXRAQ0VudW1Db25uZWN0aW9uc0BAVUFHSlhaDQorOyBwdWJsaWM6IHZvaWQgX19zdGRjYWxsIENCaXRBcnJheTo6UmVzZXRBbGxTbG90cyh2b2lkKQ0KKz9SZXNldEFsbFNsb3RzQENCaXRBcnJheUBAUUFHWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3N0ZGNhbGwgQ1Nsb3RMaXN0TG9uZzo6UmVzZXRCdXN5U2xvdEl0ZXJhdGlvbih2b2lkKQ0KKz9SZXNldEJ1c3lTbG90SXRlcmF0aW9uQENTbG90TGlzdExvbmdAQFVBR1hYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX19zdGRjYWxsIENTbG90TGlzdFNob3J0OjpSZXNldEJ1c3lTbG90SXRlcmF0aW9uKHZvaWQpDQorP1Jlc2V0QnVzeVNsb3RJdGVyYXRpb25AQ1Nsb3RMaXN0U2hvcnRAQFVBR1hYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENIZWFwRGlzcGVuc2VyOjpSZXNldFJlc291cmNlKHZvaWQgKikNCis/UmVzZXRSZXNvdXJjZUBDSGVhcERpc3BlbnNlckBAVUFHSlBBWEBaDQorOyBwdWJsaWM6IHZvaWQgX19zdGRjYWxsIENCaXRBcnJheTo6UmVzZXRTbG90KHVuc2lnbmVkIGxvbmcpDQorP1Jlc2V0U2xvdEBDQml0QXJyYXlAQFFBR1hLQFoNCis7IHB1YmxpYzogdm9pZCBfX3N0ZGNhbGwgQ0JpdEFycmF5OjpSZXNldFNsb3RzKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/UmVzZXRTbG90c0BDQml0QXJyYXlAQFFBR1hLS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpSZXN0b3JlSW50ZXJuYWxGbGFncyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP1Jlc3RvcmVJbnRlcm5hbEZsYWdzQENVdGxQcm9wczJAQFFBRVhLS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpSZXN0b3JlSW50ZXJuYWxTdGF0dXModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9SZXN0b3JlSW50ZXJuYWxTdGF0dXNAQ1V0bFByb3BzMkBAUUFFWEtLQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpSZXRyaWV2ZUNvbHVtbklkUHJvcHMoc3RydWN0IHRhZ0RCUFJPUCAqLHN0cnVjdCB0YWdVUFJPUFZBTCAqLHVuc2lnbmVkIGxvbmcgKikNCis/UmV0cmlldmVDb2x1bW5JZFByb3BzQENVdGxQcm9wczJAQEFBRVhQQVV0YWdEQlBST1BAQFBBVXRhZ1VQUk9QVkFMQEBQQUtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENTbG90TGlzdExvbmc6OlNMU2xvdENhcGFjaXR5KHZvaWQpDQorP1NMU2xvdENhcGFjaXR5QENTbG90TGlzdExvbmdAQFVBR0tYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENTbG90TGlzdFNob3J0OjpTTFNsb3RDYXBhY2l0eSh2b2lkKQ0KKz9TTFNsb3RDYXBhY2l0eUBDU2xvdExpc3RTaG9ydEBAVUFHS1haDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB2b2lkIF9fY2RlY2wgQ1dTdHJpbmc6OlNhZmVEZWxldGUodW5zaWduZWQgc2hvcnQgKikNCis/U2FmZURlbGV0ZUBDV1N0cmluZ0BAS0FYUEFHQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX2NkZWNsIENXU3RyaW5nOjpTYWZlU3RybGVuKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NhZmVTdHJsZW5AQ1dTdHJpbmdAQEtBSFBCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpTYXZlSW50ZXJuYWxGbGFncyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP1NhdmVJbnRlcm5hbEZsYWdzQENVdGxQcm9wczJAQFFBRVhLS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpTYXZlSW50ZXJuYWxTdGF0dXModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9TYXZlSW50ZXJuYWxTdGF0dXNAQ1V0bFByb3BzMkBAUUFFWEtLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENXU3RyaW5nOjpTZXRBdChpbnQsdW5zaWduZWQgc2hvcnQpDQorP1NldEF0QENXU3RyaW5nQEBRQUVYSEdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Jhc2VPYmpab21iaWU6OlNldEJva28oY2xhc3MgQ0Jhc2VPYmpCb2tvICopDQorP1NldEJva29AQ0Jhc2VPYmpab21iaWVAQFFBRVhQQVZDQmFzZU9iakJva29AQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENVdGxQcm9wczI6OlNldENvbWJpbmVkUGFzc1Rocm91Z2goc3RydWN0IHRhZ0RCUFJPUFNFVCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP1NldENvbWJpbmVkUGFzc1Rocm91Z2hAQ1V0bFByb3BzMkBAVUFFSlBCVXRhZ0RCUFJPUFNFVEBAS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDV1N0cmluZzo6U2V0RXJyb3Iodm9pZCkNCis/U2V0RXJyb3JAQ1dTdHJpbmdAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6U2V0SW50ZXJuYWxTdGF0dXModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP1NldEludGVybmFsU3RhdHVzQENVdGxQcm9wczJAQFFBRVhLS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fc3RkY2FsbCBDRXh0QnVmZmVyOjpTZXRJdGVtQ291bnQodW5zaWduZWQgbG9uZykNCis/U2V0SXRlbUNvdW50QENFeHRCdWZmZXJAQFFBR1hLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6U2V0UGFzc1Rocm91Z2goc3RydWN0IHRhZ0RCUFJPUFNFVCBjb25zdCAqKQ0KKz9TZXRQYXNzVGhyb3VnaEBDVXRsUHJvcHMyQEBVQUVKUEJVdGFnREJQUk9QU0VUQEBAWg0KKzsgcHVibGljOiBsb25nIF9fc3RkY2FsbCBDRW51bTo6U2V0UG9zKHVuc2lnbmVkIGxvbmcpDQorP1NldFBvc0BDRW51bUBAUUFHSktAWg0KKzsgcHVibGljOiBsb25nIF9fc3RkY2FsbCBDRW51bUNvbm5lY3Rpb25Qb2ludHM6OlNldFBvcyh1bnNpZ25lZCBsb25nKQ0KKz9TZXRQb3NAQ0VudW1Db25uZWN0aW9uUG9pbnRzQEBRQUdKS0BaDQorOyBwdWJsaWM6IGxvbmcgX19zdGRjYWxsIENFbnVtQ29ubmVjdGlvbnM6OlNldFBvcyh1bnNpZ25lZCBsb25nKQ0KKz9TZXRQb3NAQ0VudW1Db25uZWN0aW9uc0BAUUFHSktAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6U2V0UHJvcE9wdGlvbih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/U2V0UHJvcE9wdGlvbkBDVXRsUHJvcHMyQEBRQUVYS0tLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENVdGxQcm9wczI6OlNldFByb3BSZXF1aXJlZCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsc2hvcnQpDQorP1NldFByb3BSZXF1aXJlZEBDVXRsUHJvcHMyQEBRQUVYS0tGQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENVdGxQcm9wczI6OlNldFByb3BTdXBwb3J0ZWQodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9TZXRQcm9wU3VwcG9ydGVkQENVdGxQcm9wczJAQFFBRVhLS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpTZXRQcm9wVmFsdWUoc3RydWN0IF9HVUlEIGNvbnN0ICosdW5zaWduZWQgbG9uZyxzdHJ1Y3QgdGFnVkFSSUFOVCAqKQ0KKz9TZXRQcm9wVmFsdWVAQ1V0bFByb3BzMkBAUUFFSlBCVV9HVUlEQEBLUEFVdGFnVkFSSUFOVEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENVdGxQcm9wczI6OlNldFByb3BlcnRpZXModW5zaWduZWQgbG9uZyxzdHJ1Y3QgdGFnREJQUk9QU0VUIGNvbnN0ICogY29uc3QsaW50KQ0KKz9TZXRQcm9wZXJ0aWVzQENVdGxQcm9wczJAQFFBRUpLUUJVdGFnREJQUk9QU0VUQEBIQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBDVXRsUHJvcHMyOjpTZXRQcm9wZXJ0aWVzQXJnQ2hrKHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ0RCUFJPUFNFVCBjb25zdCAqIGNvbnN0KQ0KKz9TZXRQcm9wZXJ0aWVzQXJnQ2hrQENVdGxQcm9wczJAQFNBSktRQlV0YWdEQlBST1BTRVRAQEBaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6U2V0UHJvcGVydHkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdEQlBST1AgKikNCis/U2V0UHJvcGVydHlAQ1V0bFByb3BzMkBAQUFFSktLUEFVdGFnREJQUk9QQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6U2V0UHJvcGVydHlJbkVycm9yKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/U2V0UHJvcGVydHlJbkVycm9yQENVdGxQcm9wczJAQFFBRVhLS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpTZXRQcm9wZXJ0eVN0YXR1cyh1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdEQlBST1BTRVQgY29uc3QgKiBjb25zdCkNCis/U2V0UHJvcGVydHlTdGF0dXNAQ1V0bFByb3BzMkBAUUFFWEtRQlV0YWdEQlBST1BTRVRAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludDo6U2V0UmVhc29ucyh2b2lkKQ0KKz9TZXRSZWFzb25zQENSb3dzZXRDb25uZWN0aW9uUG9pbnRAQEFBRVhYWg0KKzsgcHVibGljOiBsb25nIF9fc3RkY2FsbCBDQml0QXJyYXk6OlNldFNsb3QodW5zaWduZWQgbG9uZykNCis/U2V0U2xvdEBDQml0QXJyYXlAQFFBR0pLQFoNCis7IHB1YmxpYzogbG9uZyBfX3N0ZGNhbGwgQ0JpdEFycmF5OjpTZXRTbG90cyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP1NldFNsb3RzQENCaXRBcnJheUBAUUFHSktLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENVdGxQcm9wczI6OlNldFN0YXR1cyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/U2V0U3RhdHVzQENVdGxQcm9wczJAQFFBRVhLS0tAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ1V0bFByb3BJbmZvOjpTZXRVUHJvcFNldENvdW50KHVuc2lnbmVkIGxvbmcpDQorP1NldFVQcm9wU2V0Q291bnRAQ1V0bFByb3BJbmZvQEBJQUVYS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpTZXRVUHJvcFNldENvdW50KHVuc2lnbmVkIGxvbmcpDQorP1NldFVQcm9wU2V0Q291bnRAQ1V0bFByb3BzMkBAUUFFWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6U2V0VmFsQm9vbCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsc2hvcnQpDQorP1NldFZhbEJvb2xAQ1V0bFByb3BzMkBAUUFFWEtLRkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpTZXRWYWxFbXB0eSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP1NldFZhbEVtcHR5QENVdGxQcm9wczJAQFFBRVhLS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpTZXRWYWxMb25nKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxsb25nKQ0KKz9TZXRWYWxMb25nQENVdGxQcm9wczJAQFFBRVhLS0pAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1V0bFByb3BzMjo6U2V0VmFsU2hvcnQodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHNob3J0KQ0KKz9TZXRWYWxTaG9ydEBDVXRsUHJvcHMyQEBRQUVYS0tGQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENVdGxQcm9wczI6OlNldFZhbFN0cmluZyh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0VmFsU3RyaW5nQENVdGxQcm9wczJAQFFBRUpLS1BCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDVXRsUHJvcHMyOjpTZXRWYXJpYW50KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgdGFnVkFSSUFOVCAqKQ0KKz9TZXRWYXJpYW50QENVdGxQcm9wczJAQFFBRUpLS1BBVXRhZ1ZBUklBTlRAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19zdGRjYWxsIENFbnVtOjpTa2lwKHVuc2lnbmVkIGxvbmcpDQorP1NraXBAQ0VudW1AQFFBR0pLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDRW51bUNvbm5lY3Rpb25Qb2ludHM6OlNraXAodW5zaWduZWQgbG9uZykNCis/U2tpcEBDRW51bUNvbm5lY3Rpb25Qb2ludHNAQFVBR0pLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDRW51bUNvbm5lY3Rpb25zOjpTa2lwKHVuc2lnbmVkIGxvbmcpDQorP1NraXBAQ0VudW1Db25uZWN0aW9uc0BAVUFHSktAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0V4dEJ1ZmZlcjo6VHJhbnNmZXIoY2xhc3MgQ0V4dEJ1ZmZlciAqKQ0KKz9UcmFuc2ZlckBDRXh0QnVmZmVyQEBRQUVYUEFWMUBAWg0KKzsgbG9uZyBfX2NkZWNsIFVuUmVnaXN0ZXJTZXJ2ZXIodm9pZCAqIGNvbnN0LHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1JFR0VOVFJJRVMgY29uc3QgKiBjb25zdCkNCis/VW5SZWdpc3RlclNlcnZlckBAWUFKUUFYS1FCVXRhZ1JFR0VOVFJJRVNAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludDo6VW5hZHZpc2UodW5zaWduZWQgbG9uZykNCis/VW5hZHZpc2VAQ1Jvd3NldENvbm5lY3Rpb25Qb2ludEBAVUFHSktAWg0KKzsgcHVibGljOiB2b2lkICogX19zdGRjYWxsIENWTEhlYXA6OlZMQWxsb2ModW5zaWduZWQgbG9uZykNCis/VkxBbGxvY0BDVkxIZWFwQEBRQUdQQVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3N0ZGNhbGwgQ1ZMSGVhcDo6VkxGcmVlKHZvaWQgKikNCis/VkxGcmVlQENWTEhlYXBAQFFBR1hQQVhAWg0KKzsgcHVibGljOiB2b2lkICogX19zdGRjYWxsIENWTEhlYXA6OlZMR3Jvdyh2b2lkICosdW5zaWduZWQgbG9uZykNCis/VkxHcm93QENWTEhlYXBAQFFBR1BBWFBBWEtAWg0KKzsgcHVibGljOiB2b2lkICogX19zdGRjYWxsIENWTEhlYXA6OlZMVHJ1ZVJlYWxsb2Modm9pZCAqLHVuc2lnbmVkIGxvbmcpDQorP1ZMVHJ1ZVJlYWxsb2NAQ1ZMSGVhcEBAUUFHUEFYUEFYS0BaDQorOyBsb25nIF9fY2RlY2wgVzk1Q29udmVydFRvQW5zaU9yT2VtKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2hhciAqICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICosaW50LGludCkNCis/Vzk1Q29udmVydFRvQW5zaU9yT2VtQEBZQUpQQkdQQVBBREtQQUtISEBaDQorOyBsb25nIF9fY2RlY2wgVzk1Q29udmVydFRvVW5pY29kZShjaGFyIGNvbnN0ICosbG9uZyx1bnNpZ25lZCBzaG9ydCAqICosdW5zaWduZWQgbG9uZyAqLGludCxpbnQpDQorP1c5NUNvbnZlcnRUb1VuaWNvZGVAQFlBSlBCREpQQVBBR1BBS0hIQFoNCis7IHB1YmxpYzogbG9uZyBfX3N0ZGNhbGwgQ0V4dEJ1ZmZlcjo6V3JpdGVJbnRvRXh0QnVmZmVyKHZvaWQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9Xcml0ZUludG9FeHRCdWZmZXJAQ0V4dEJ1ZmZlckBAUUFHSlBCWEtAWg0KKzsgcHVibGljOiBsb25nIF9fc3RkY2FsbCBDRXh0QnVmZmVyOjpXcml0ZVdDaGFyVG9FeHRCdWZmZXIodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZykNCis/V3JpdGVXQ2hhclRvRXh0QnVmZmVyQENFeHRCdWZmZXJAQFFBR0pHS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENCYXNlT2JqQm9rbzo6Wm9tYmllTXVzdFVucHJlcGFyZSh2b2lkKQ0KKz9ab21iaWVNdXN0VW5wcmVwYXJlQENCYXNlT2JqQm9rb0BAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENCYXNlT2JqWm9tYmllOjpab21iaWVNdXN0VW5wcmVwYXJlKHZvaWQpDQorP1pvbWJpZU11c3RVbnByZXBhcmVAQ0Jhc2VPYmpab21iaWVAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQml0QXJyYXk6OmZHZXRDb3B5T2YoY2xhc3MgQ0JpdEFycmF5ICopDQorP2ZHZXRDb3B5T2ZAQ0JpdEFycmF5QEBRQUVIUEFWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUm93c2V0Q29ubmVjdGlvblBvaW50OjpmSW5pdCh2b2lkKQ0KKz9mSW5pdEBDUm93c2V0Q29ubmVjdGlvblBvaW50QEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0Nvbm5lY3REYXRhOjpmT2tUb0ZpcmUoZW51bSBEQlJFQVNPTkVOVU0sZW51bSBEQkVWRU5UUEhBU0VFTlVNKQ0KKz9mT2tUb0ZpcmVAQ0Nvbm5lY3REYXRhQEBRQUVIVzREQlJFQVNPTkVOVU1AQFc0REJFVkVOVFBIQVNFRU5VTUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1Jvd3NldENvbm5lY3Rpb25Qb2ludDo6ZlJlYXNvbk5lZWRlZChlbnVtIERCUkVBU09ORU5VTSxlbnVtIERCRVZFTlRQSEFTRUVOVU0pDQorP2ZSZWFzb25OZWVkZWRAQ1Jvd3NldENvbm5lY3Rpb25Qb2ludEBAUUFFSFc0REJSRUFTT05FTlVNQEBXNERCRVZFTlRQSEFTRUVOVU1AQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENSb3dzZXRDb25uZWN0aW9uUG9pbnRDb250YWluZXI6OmZSZWFzb25OZWVkZWQodW5zaWduZWQgbG9uZyxlbnVtIERCUkVBU09ORU5VTSxlbnVtIERCRVZFTlRQSEFTRUVOVU0pDQorP2ZSZWFzb25OZWVkZWRAQ1Jvd3NldENvbm5lY3Rpb25Qb2ludENvbnRhaW5lckBAUUFFSEtXNERCUkVBU09ORU5VTUBAVzREQkVWRU5UUEhBU0VFTlVNQEBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGxvbmcgY29uc3QgKiBjb25zdCAgQ1V0bFByb3BzMjo6c21fcmdQcm9wU3RhdHVzRnJvbUludGVyblN0YXR1cw0KKz9zbV9yZ1Byb3BTdGF0dXNGcm9tSW50ZXJuU3RhdHVzQENVdGxQcm9wczJAQDBRQktCDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zZGF0dC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNkYXR0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMzA0NmY4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zZGF0dC5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU0RBVFQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TREFUVC5kbGwNCitFWFBPUlRTDQorRGxsTWFpbg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2RhdXJsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2RhdXJsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43Nzg0M2QwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zZGF1cmwuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNEQVVSTC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNEQVVSTC5kbGwNCitFWFBPUlRTDQorRGxsTWFpbg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2RmbWFwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2RmbWFwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZmQxNDQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zZGZtYXAuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXNkZm1hcC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXNkZm1hcC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNkbW8uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zZG1vLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jZDExYWU5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zZG1vLmRlZgpAQCAtMCwwICsxLDIzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zZG1vLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc2Rtby5kbGwNCitFWFBPUlRTDQorRE1PRW51bQ0KK0RNT0dldE5hbWUNCitETU9HZXRUeXBlcw0KK0RNT0d1aWRUb1N0ckENCitETU9HdWlkVG9TdHJXDQorRE1PUmVnaXN0ZXINCitETU9TdHJUb0d1aWRBDQorRE1PU3RyVG9HdWlkVw0KK0RNT1VucmVnaXN0ZXINCitNb0NvcHlNZWRpYVR5cGUNCitNb0NyZWF0ZU1lZGlhVHlwZQ0KK01vRGVsZXRlTWVkaWFUeXBlDQorTW9EdXBsaWNhdGVNZWRpYVR5cGUNCitNb0ZyZWVNZWRpYVR5cGUNCitNb0luaXRNZWRpYVR5cGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNkdGNwcnguZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zZHRjcHJ4LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MGEzYzUyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zZHRjcHJ4LmRlZgpAQCAtMCwwICsxLDI2OSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU0RUQ1BSWC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNEVENQUlguZGxsDQorRVhQT1JUUw0KK0RsbEdldERUQ1Byb3h5DQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1NlY3VyaXR5RGVzY3JpcHRvcjo6Q1NlY3VyaXR5RGVzY3JpcHRvcih2b2lkKQ0KKz8/MENTZWN1cml0eURlc2NyaXB0b3JAQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIENTZXJ2aWNlOjpDU2VydmljZSh2b2lkKQ0KKz8/MENTZXJ2aWNlQEBJQUVAWFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBDU2VydmljZUNvbnRyb2xNYW5hZ2VyOjpDU2VydmljZUNvbnRyb2xNYW5hZ2VyKHZvaWQpDQorPz8wQ1NlcnZpY2VDb250cm9sTWFuYWdlckBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1NlY3VyaXR5RGVzY3JpcHRvcjo6fkNTZWN1cml0eURlc2NyaXB0b3Iodm9pZCkNCis/PzFDU2VjdXJpdHlEZXNjcmlwdG9yQEBRQUVAWFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBDU2VydmljZTo6fkNTZXJ2aWNlKHZvaWQpDQorPz8xQ1NlcnZpY2VAQElBRUBYWg0KK0RUQ19YYU9wZW4NCitEVENfWGFTdGFydA0KK0RUQ19YYUVuZA0KK0RUQ19YYVByZXBhcmUNCitEVENfWGFDb21taXQNCitEVENfWGFSb2xsYmFjaw0KK0RUQ19YYVJlY292ZXINCitEVENfWGFGb3JnZXQNCitEVENfWGFDb21wbGV0ZQ0KK0RUQ19YYUNsb3NlDQorRFRDX0F4UmVnDQorRFRDX0F4VW5SZWcNCitheF9yZWcNCitheF91bnJlZw0KK1NodXREb3duQ00NCitEbGxHZXREVENDb25uZWN0aW9uTWFuYWdlcg0KK0RsbEdldERUQ1V0aWxPYmplY3QNCitDb250YWN0VG9OYW1lT2JqZWN0DQorU3lzUHJlcER0Y1JlaW5zdGFsbA0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIENTZXJ2aWNlQ29udHJvbE1hbmFnZXI6On5DU2VydmljZUNvbnRyb2xNYW5hZ2VyKHZvaWQpDQorPz8xQ1NlcnZpY2VDb250cm9sTWFuYWdlckBASUFFQFhaDQorOyBwdWJsaWM6IGNsYXNzIENTZWN1cml0eURlc2NyaXB0b3IgJiBfX3RoaXNjYWxsIENTZWN1cml0eURlc2NyaXB0b3I6Om9wZXJhdG9yPShjbGFzcyBDU2VjdXJpdHlEZXNjcmlwdG9yIGNvbnN0ICYpDQorPz80Q1NlY3VyaXR5RGVzY3JpcHRvckBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENTZXJ2aWNlICYgX190aGlzY2FsbCBDU2VydmljZTo6b3BlcmF0b3I9KGNsYXNzIENTZXJ2aWNlIGNvbnN0ICYpDQorPz80Q1NlcnZpY2VAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBDU2VydmljZUNvbnRyb2xNYW5hZ2VyICYgX190aGlzY2FsbCBDU2VydmljZUNvbnRyb2xNYW5hZ2VyOjpvcGVyYXRvcj0oY2xhc3MgQ1NlcnZpY2VDb250cm9sTWFuYWdlciBjb25zdCAmKQ0KKz8/NENTZXJ2aWNlQ29udHJvbE1hbmFnZXJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1NlcnZpY2U6OkFkZFJlZih2b2lkKQ0KKz9BZGRSZWZAQ1NlcnZpY2VAQFFBRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1NlcnZpY2VDb250cm9sTWFuYWdlcjo6QWRkUmVmKHZvaWQpDQorP0FkZFJlZkBDU2VydmljZUNvbnRyb2xNYW5hZ2VyQEBRQUVLWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENTZWN1cml0eURlc2NyaXB0b3I6OkFkZFNpZCh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/QWRkU2lkQENTZWN1cml0eURlc2NyaXB0b3JAQFFBRUpQQUdLS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDU2VjdXJpdHlEZXNjcmlwdG9yOjpBZGRTaWQodm9pZCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/QWRkU2lkQENTZWN1cml0eURlc2NyaXB0b3JAQFFBRUpQQVhLS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDU2VjdXJpdHlEZXNjcmlwdG9yOjpBbGxvYyh1bnNpZ25lZCBsb25nKQ0KKz9BbGxvY0BDU2VjdXJpdHlEZXNjcmlwdG9yQEBJQUVKS0BaDQorOyBsb25nIF9fc3RkY2FsbCBBcHBseUFjY291bnRTZXR0aW5ncyhpbnQsdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqLGludCkNCis/QXBwbHlBY2NvdW50U2V0dGluZ3NAQFlHSkhQQUdLMDAwSEBaDQorOyBsb25nIF9fc3RkY2FsbCBBcHBseU5hbWVkU2VjdXJpdHlDaGFuZ2UodW5zaWduZWQgc2hvcnQgKixlbnVtIF9TRV9PQkpFQ1RfVFlQRSx2b2lkICosdm9pZCAqLHVuc2lnbmVkIGxvbmcpDQorP0FwcGx5TmFtZWRTZWN1cml0eUNoYW5nZUBAWUdKUEFHVzRfU0VfT0JKRUNUX1RZUEVAQFBBWDJLQFoNCis7IGxvbmcgX19zdGRjYWxsIENoZWNrRm9yRENQcm9tb3Rpb25EZW1vdGlvbih1bnNpZ25lZCBzaG9ydCAqKQ0KKz9DaGVja0ZvckRDUHJvbW90aW9uRGVtb3Rpb25AQFlHSlBBR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDU2VjdXJpdHlEZXNjcmlwdG9yOjpDbGVhckFjbCh2b2lkKQ0KKz9DbGVhckFjbEBDU2VjdXJpdHlEZXNjcmlwdG9yQEBRQUVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENTZWN1cml0eURlc2NyaXB0b3I6OkNsZWFySW5NZW1vcnlBY2wodm9pZCkNCis/Q2xlYXJJbk1lbW9yeUFjbEBDU2VjdXJpdHlEZXNjcmlwdG9yQEBRQUVKWFoNCis7IHZvaWQgX19zdGRjYWxsIENsb3NlTmV0cEV2ZW50TG9nSGFuZGxlKHZvaWQpDQorP0Nsb3NlTmV0cEV2ZW50TG9nSGFuZGxlQEBZR1hYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ0Nvbm5lY3Rpb25NYW5hZ2VyOjpDcmVhdGUoY2xhc3MgQ0Nvbm5lY3Rpb25NYW5hZ2VyICogKikNCis/Q3JlYXRlQENDb25uZWN0aW9uTWFuYWdlckBAU0dKUEFQQVYxQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDTmFtZVNlcnZpY2U6OkNyZWF0ZShjbGFzcyBDTmFtZVNlcnZpY2UgKiAqKQ0KKz9DcmVhdGVAQ05hbWVTZXJ2aWNlQEBTR0pQQVBBVjFAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENTZXJ2aWNlOjpDcmVhdGUoY2xhc3MgQ1NlcnZpY2UgKiAqLHVuc2lnbmVkIHNob3J0ICosY2xhc3MgQ1NlcnZpY2VDb250cm9sTWFuYWdlciAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKikNCis/Q3JlYXRlQENTZXJ2aWNlQEBTR0pQQVBBVjFAUEFHUEFWQ1NlcnZpY2VDb250cm9sTWFuYWdlckBASzFAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ1NlcnZpY2VDb250cm9sTWFuYWdlcjo6Q3JlYXRlKGNsYXNzIENTZXJ2aWNlQ29udHJvbE1hbmFnZXIgKiAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqKQ0KKz9DcmVhdGVAQ1NlcnZpY2VDb250cm9sTWFuYWdlckBAU0dKUEFQQVYxQEtQQUcxQFoNCis7IHZvaWQgX19zdGRjYWxsIENyZWF0ZUFTUktleSh2b2lkKQ0KKz9DcmVhdGVBU1JLZXlAQFlHWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBDVG1Qcm94eUNvcmU6OkNyZWF0ZUluc3RhbmNlKGNsYXNzIENUbVByb3h5Q29yZSAqICosc3RydWN0IElVbmtub3duICopDQorP0NyZWF0ZUluc3RhbmNlQENUbVByb3h5Q29yZUBAU0dKUEFQQVYxQFBBVUlVbmtub3duQEBAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgQ3JlYXRlTmV3Q29udGFjdChzdHJ1Y3QgSVByb3BlcnRpZXMgKiAqKQ0KKz9DcmVhdGVOZXdDb250YWN0QEBZR0pQQVBBVUlQcm9wZXJ0aWVzQEBAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgQ3JlYXRlT3JPcGVuTXV0ZXhXKHZvaWQgKiAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz9DcmVhdGVPck9wZW5NdXRleFdAQFlHSlBBUEFYUEJHSEBaDQorOyB2b2lkIF9fc3RkY2FsbCBEZWxldGVFeGlzdGluZ0NvbnRhY3RzKHVuc2lnbmVkIHNob3J0ICosc3RydWN0IElDb250YWN0UG9vbCAqLHVuc2lnbmVkIHNob3J0ICopDQorP0RlbGV0ZUV4aXN0aW5nQ29udGFjdHNAQFlHWFBBR1BBVUlDb250YWN0UG9vbEBAMEBaDQorOyBpbnQgX19zdGRjYWxsIERsbEdldERUQ0FkbWluKHN0cnVjdCBfR1VJRCBjb25zdCAmLHN0cnVjdCBfR1VJRCBjb25zdCAmLHZvaWQgKiAqKQ0KKz9EbGxHZXREVENBZG1pbkBAWUdIQUJVX0dVSURAQDBQQVBBWEBaDQorOyBsb25nIF9fc3RkY2FsbCBEdGNXcml0ZVRvRXZlbnRMb2dnZXIodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx2b2lkICosY2hhciAqKQ0KKz9EdGNXcml0ZVRvRXZlbnRMb2dnZXJAQFlHSktLS0tQQVhQQURAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgRHRjV3JpdGVUb0V2ZW50TG9nZ2VyRXgodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyx2b2lkICosdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyxjaGFyIGNvbnN0ICogKix2b2lkICopDQorP0R0Y1dyaXRlVG9FdmVudExvZ2dlckV4QEBZR0pHR0tQQVhHS1BBUEJEMEBaDQorOyBsb25nIF9fc3RkY2FsbCBEdGNXcml0ZVRvRXZlbnRMb2dnZXJFeFVuRmlsdGVyZWQodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyx2b2lkICosdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyxjaGFyIGNvbnN0ICogKix2b2lkICopDQorP0R0Y1dyaXRlVG9FdmVudExvZ2dlckV4VW5GaWx0ZXJlZEBAWUdKR0dLUEFYR0tQQVBCRDBAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgRHRjV3JpdGVUb0V2ZW50TG9nZ2VyRXhVbkZpbHRlcmVkQSh1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBsb25nLHZvaWQgKix1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBsb25nLGNoYXIgY29uc3QgKiAqLHZvaWQgKikNCis/RHRjV3JpdGVUb0V2ZW50TG9nZ2VyRXhVbkZpbHRlcmVkQUBAWUdKR0dLUEFYR0tQQVBCRDBAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgRXJhc2VEdGNDbGllbnQodW5zaWduZWQgc2hvcnQgKikNCis/RXJhc2VEdGNDbGllbnRAQFlHSlBBR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDU2VydmljZTo6R2V0QWNjb3VudCh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGxvbmcgKikNCis/R2V0QWNjb3VudEBDU2VydmljZUBAUUFFSlBBR1BBS0BaDQorOyBsb25nIF9fc3RkY2FsbCBHZXRBY2NvdW50U2lkKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKix2b2lkICogKikNCis/R2V0QWNjb3VudFNpZEBAWUdKUEFHMFBBUEFYQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENTZWN1cml0eURlc2NyaXB0b3I6OkdldENvbnRyb2wodW5zaWduZWQgc2hvcnQgKikNCis/R2V0Q29udHJvbEBDU2VjdXJpdHlEZXNjcmlwdG9yQEBRQUVKUEFHQFoNCis7IHVuc2lnbmVkIHNob3J0ICogX19zdGRjYWxsIEdldERlZmF1bHRMb2dQYXRoKHZvaWQpDQorP0dldERlZmF1bHRMb2dQYXRoQEBZR1BBR1haDQorOyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBHZXREZWZhdWx0TG9nU2l6ZSh2b2lkKQ0KKz9HZXREZWZhdWx0TG9nU2l6ZUBAWUdLWFoNCis7IGxvbmcgX19zdGRjYWxsIEdldERlZmF1bHRTZWN1cml0eUNvbmZpZ3VyYXRpb25PcHRpb25zKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcgKikNCis/R2V0RGVmYXVsdFNlY3VyaXR5Q29uZmlndXJhdGlvbk9wdGlvbnNAQFlHSlBBR1BBSzFAWg0KKzsgY2hhciAqIF9fY2RlY2wgR2V0RGVmYXVsdFNlcnZpY2VOYW1lQSh2b2lkKQ0KKz9HZXREZWZhdWx0U2VydmljZU5hbWVBQEBZQVBBRFhaDQorOyB1bnNpZ25lZCBzaG9ydCAqIF9fY2RlY2wgR2V0RGVmYXVsdFNlcnZpY2VOYW1lVyh2b2lkKQ0KKz9HZXREZWZhdWx0U2VydmljZU5hbWVXQEBZQVBBR1haDQorOyB1bnNpZ25lZCBzaG9ydCAqIF9fc3RkY2FsbCBHZXREZWZhdWx0U2VydmljZVBhdGgodm9pZCkNCis/R2V0RGVmYXVsdFNlcnZpY2VQYXRoQEBZR1BBR1haDQorOyBpbnQgX19zdGRjYWxsIEdldER0Y0NJRFByb3BzKHN0cnVjdCBfTE9HX1BST1BFUlRJRVMgJixzdHJ1Y3QgX0RBQ19QUk9QRVJUSUVTICYpDQorP0dldER0Y0NJRFByb3BzQEBZR0hBQVVfTE9HX1BST1BFUlRJRVNAQEFBVV9EQUNfUFJPUEVSVElFU0BAQFoNCis7IGludCBfX3N0ZGNhbGwgR2V0RHRjTG9nUGF0aCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICopDQorP0dldER0Y0xvZ1BhdGhAQFlHSEtQQUdAWg0KKzsgaW50IF9fc3RkY2FsbCBHZXREdGNQYXRoKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKikNCis/R2V0RHRjUGF0aEBAWUdIS1BBR0BaDQorOyBsb25nIF9fc3RkY2FsbCBHZXREdGNScGNTZWN1cml0eUxldmVsKHVuc2lnbmVkIHNob3J0ICosZW51bSBfRFRDX1NFQ1VSSVRZX0xFVkVMICosaW50KQ0KKz9HZXREdGNScGNTZWN1cml0eUxldmVsQEBZR0pQQUdQQVc0X0RUQ19TRUNVUklUWV9MRVZFTEBASEBaDQorOyB1bnNpZ25lZCBzaG9ydCAqIF9fc3RkY2FsbCBHZXRFdmVudExvZ1NvdXJjZSh2b2lkKQ0KKz9HZXRFdmVudExvZ1NvdXJjZUBAWUdQQUdYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1NlcnZpY2U6OkdldEhhbmRsZShzdHJ1Y3QgU0NfSEFORExFX18gKiAmKQ0KKz9HZXRIYW5kbGVAQ1NlcnZpY2VAQFFBRUpBQVBBVVNDX0hBTkRMRV9fQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1NlcnZpY2VDb250cm9sTWFuYWdlcjo6R2V0SGFuZGxlKHN0cnVjdCBTQ19IQU5ETEVfXyAqICYpDQorP0dldEhhbmRsZUBDU2VydmljZUNvbnRyb2xNYW5hZ2VyQEBRQUVKQUFQQVVTQ19IQU5ETEVfX0BAQFoNCis7IGxvbmcgX19zdGRjYWxsIEdldExhc3RLbm93bkRvbWFpbkNvbnRyb2xsZXJTdGF0ZSh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGxvbmcgKikNCis/R2V0TGFzdEtub3duRG9tYWluQ29udHJvbGxlclN0YXRlQEBZR0pQQUdQQUtAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgR2V0TG9jYWxEdGNDbHVzdGVyaW5nVmVyc2lvbih1bnNpZ25lZCBsb25nICopDQorP0dldExvY2FsRHRjQ2x1c3RlcmluZ1ZlcnNpb25AQFlHSlBBS0BaDQorOyBsb25nIF9fc3RkY2FsbCBHZXRNc0R0Y1NQTih1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICogKikNCis/R2V0TXNEdGNTUE5AQFlHSlBBR1BBUEFHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENTZWN1cml0eURlc2NyaXB0b3I6OkdldE5hbWVkSW5mbyh1bnNpZ25lZCBzaG9ydCAqLGVudW0gX1NFX09CSkVDVF9UWVBFKQ0KKz9HZXROYW1lZEluZm9AQ1NlY3VyaXR5RGVzY3JpcHRvckBAUUFFSlBBR1c0X1NFX09CSkVDVF9UWVBFQEBAWg0KKzsgdW5zaWduZWQgc2hvcnQgKiBfX3N0ZGNhbGwgR2V0T2xkRGVmYXVsdExvZ1BhdGgodm9pZCkNCis/R2V0T2xkRGVmYXVsdExvZ1BhdGhAQFlHUEFHWFoNCis7IGxvbmcgX19zdGRjYWxsIEdldFNlY3VyaXR5Q29uZmlndXJhdGlvbk9wdGlvbnModW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyAqLGludCkNCis/R2V0U2VjdXJpdHlDb25maWd1cmF0aW9uT3B0aW9uc0BAWUdKUEFHUEFLMUhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1NlY3VyaXR5RGVzY3JpcHRvcjo6R2V0U2VjdXJpdHlEZXNjcmlwdG9yKHZvaWQgKiAqKQ0KKz9HZXRTZWN1cml0eURlc2NyaXB0b3JAQ1NlY3VyaXR5RGVzY3JpcHRvckBAUUFFSlBBUEFYQFoNCis7IGxvbmcgX19zdGRjYWxsIEdldFNlY3VyaXR5UmVnVmFsdWVOb25DbHVzdGVyVyh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcgKikNCis/R2V0U2VjdXJpdHlSZWdWYWx1ZU5vbkNsdXN0ZXJXQEBZR0pQQUdQQkdQQUVQQUtAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgR2V0U2VjdXJpdHlSZWdWYWx1ZVcodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nICosaW50KQ0KKz9HZXRTZWN1cml0eVJlZ1ZhbHVlV0BAWUdKUEFHUEJHUEFFUEFLSEBaDQorOyBsb25nIF9fc3RkY2FsbCBHZXRTaGFyZWREdGNDbHVzdGVyaW5nVmVyc2lvbih1bnNpZ25lZCBsb25nICopDQorP0dldFNoYXJlZER0Y0NsdXN0ZXJpbmdWZXJzaW9uQEBZR0pQQUtAWg0KKzsgbG9uZyBfX2NkZWNsIEdldFRtQ29udGFjdEEoY2hhciAqLGNoYXIgKixzdHJ1Y3QgSVByb3BlcnRpZXMgKiAqKQ0KKz9HZXRUbUNvbnRhY3RBQEBZQUpQQUQwUEFQQVVJUHJvcGVydGllc0BAQFoNCis7IGxvbmcgX19jZGVjbCBHZXRUbUNvbnRhY3RXKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKixzdHJ1Y3QgSVByb3BlcnRpZXMgKiAqKQ0KKz9HZXRUbUNvbnRhY3RXQEBZQUpQQUcwUEFQQVVJUHJvcGVydGllc0BAQFoNCis7IGxvbmcgX19jZGVjbCBHZXRUbVVJQ29udGFjdEEoY2hhciAqLGNoYXIgKixzdHJ1Y3QgSVByb3BlcnRpZXMgKiAqKQ0KKz9HZXRUbVVJQ29udGFjdEFAQFlBSlBBRDBQQVBBVUlQcm9wZXJ0aWVzQEBAWg0KKzsgbG9uZyBfX2NkZWNsIEdldFRtVUlDb250YWN0Vyh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICosc3RydWN0IElQcm9wZXJ0aWVzICogKikNCis/R2V0VG1VSUNvbnRhY3RXQEBZQUpQQUcwUEFQQVVJUHJvcGVydGllc0BAQFoNCis7IGxvbmcgX19zdGRjYWxsIEdldFhBVG1TZWN1cml0eUtleSh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRYQVRtU2VjdXJpdHlLZXlAQFlHSlBBRzBQQUtAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgSW5zdGFsbER0Yyh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCAqLGludCkNCis/SW5zdGFsbER0Y0BAWUdKUEFHMDAwMEswSEBaDQorOyBsb25nIF9fc3RkY2FsbCBJbnN0YWxsRHRjQ2xpZW50KHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9JbnN0YWxsRHRjQ2xpZW50QEBZR0pQQUdLS0BaDQorOyBsb25nIF9fc3RkY2FsbCBJbnN0YWxsVGlwR3codW5zaWduZWQgc2hvcnQgKikNCis/SW5zdGFsbFRpcEd3QEBZR0pQQUdAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgSW5zdGFsbFhhVG0odW5zaWduZWQgc2hvcnQgKikNCis/SW5zdGFsbFhhVG1AQFlHSlBBR0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDU2VydmljZTo6SW50ZXJuYWxJbml0KHVuc2lnbmVkIHNob3J0ICosY2xhc3MgQ1NlcnZpY2VDb250cm9sTWFuYWdlciAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKikNCis/SW50ZXJuYWxJbml0QENTZXJ2aWNlQEBJQUVKUEFHUEFWQ1NlcnZpY2VDb250cm9sTWFuYWdlckBASzBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ1NlcnZpY2VDb250cm9sTWFuYWdlcjo6SW50ZXJuYWxJbml0KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqKQ0KKz9JbnRlcm5hbEluaXRAQ1NlcnZpY2VDb250cm9sTWFuYWdlckBASUFFSktQQUcwQFoNCis7IGludCBfX3N0ZGNhbGwgSXNOdFZlcnNpb241T3JNb3JlKHZvaWQpDQorP0lzTnRWZXJzaW9uNU9yTW9yZUBAWUdIWFoNCis7IGxvbmcgX19zdGRjYWxsIEpvaW5EdGModm9pZCkNCis/Sm9pbkR0Y0BAWUdKWFoNCis7IGxvbmcgX19zdGRjYWxsIEpvaW5EdGNFeCh1bnNpZ25lZCBzaG9ydCAqKQ0KKz9Kb2luRHRjRXhAQFlHSlBBR0BaDQorOyBsb25nIF9fc3RkY2FsbCBMb29rdXBTcGVjaWFsQWNjb3VudCh1bnNpZ25lZCBzaG9ydCAqLHN0cnVjdCBfU1BFQ0lBTF9BQ0NPVU5UXyAqICopDQorP0xvb2t1cFNwZWNpYWxBY2NvdW50QEBZR0pQQUdQQVBBVV9TUEVDSUFMX0FDQ09VTlRfQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ1NlY3VyaXR5RGVzY3JpcHRvcjo6TWFrZUFic29sdXRlKHZvaWQpDQorP01ha2VBYnNvbHV0ZUBDU2VjdXJpdHlEZXNjcmlwdG9yQEBJQUVKWFoNCis7IGxvbmcgX19zdGRjYWxsIE1pcnJvclhhVG1TZWN1cml0eUtleSh1bnNpZ25lZCBzaG9ydCAqKQ0KKz9NaXJyb3JYYVRtU2VjdXJpdHlLZXlAQFlHSlBBR0BaDQorOyBsb25nIF9fc3RkY2FsbCBNc0R0Y1NQTkZyZWUodW5zaWduZWQgc2hvcnQgKiAqKQ0KKz9Nc0R0Y1NQTkZyZWVAQFlHSlBBUEFHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENTZXJ2aWNlQ29udHJvbE1hbmFnZXI6Ok9wZW5TZXJ2aWNlQShjbGFzcyBDU2VydmljZSAqICosdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBsb25nKQ0KKz9PcGVuU2VydmljZUFAQ1NlcnZpY2VDb250cm9sTWFuYWdlckBAUUFFSlBBUEFWQ1NlcnZpY2VAQFBBR0tAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgUG9wdWxhdGVMb2NhbFJlZ2lzdHJ5KHZvaWQpDQorP1BvcHVsYXRlTG9jYWxSZWdpc3RyeUBAWUdKWFoNCis7IGxvbmcgX19zdGRjYWxsIFBvcHVsYXRlU2hhcmVkQ2x1c3RlclJlZ2lzdHJ5V2l0aENvbnRhY3RzKHZvaWQpDQorP1BvcHVsYXRlU2hhcmVkQ2x1c3RlclJlZ2lzdHJ5V2l0aENvbnRhY3RzQEBZR0pYWg0KKzsgbG9uZyBfX3N0ZGNhbGwgUG9wdWxhdGVTaGFyZWRDbHVzdGVyUmVnaXN0cnlXaXRoTG9nSW5mbyh2b2lkKQ0KKz9Qb3B1bGF0ZVNoYXJlZENsdXN0ZXJSZWdpc3RyeVdpdGhMb2dJbmZvQEBZR0pYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1NlY3VyaXR5RGVzY3JpcHRvcjo6UXVlcnlTZXJ2aWNlT2JqZWN0U2VjdXJpdHkoc3RydWN0IFNDX0hBTkRMRV9fICosdW5zaWduZWQgbG9uZykNCis/UXVlcnlTZXJ2aWNlT2JqZWN0U2VjdXJpdHlAQ1NlY3VyaXR5RGVzY3JpcHRvckBAUUFFSlBBVVNDX0hBTkRMRV9fQEBLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENTZXJ2aWNlOjpSZWxlYXNlKHZvaWQpDQorP1JlbGVhc2VAQ1NlcnZpY2VAQFFBRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1NlcnZpY2VDb250cm9sTWFuYWdlcjo6UmVsZWFzZSh2b2lkKQ0KKz9SZWxlYXNlQENTZXJ2aWNlQ29udHJvbE1hbmFnZXJAQFFBRUtYWg0KKzsgbG9uZyBfX3N0ZGNhbGwgUmVtb3ZlRHRjKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqKQ0KKz9SZW1vdmVEdGNAQFlHSlBBRzAwQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENTZWN1cml0eURlc2NyaXB0b3I6OlJlbW92ZVNpZCh1bnNpZ25lZCBzaG9ydCAqKQ0KKz9SZW1vdmVTaWRAQ1NlY3VyaXR5RGVzY3JpcHRvckBAUUFFSlBBR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDU2VjdXJpdHlEZXNjcmlwdG9yOjpSZW1vdmVTaWQodm9pZCAqKQ0KKz9SZW1vdmVTaWRAQ1NlY3VyaXR5RGVzY3JpcHRvckBAUUFFSlBBWEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDU2VjdXJpdHlEZXNjcmlwdG9yOjpSZXNldCh2b2lkKQ0KKz9SZXNldEBDU2VjdXJpdHlEZXNjcmlwdG9yQEBJQUVYWFoNCis7IGxvbmcgX19zdGRjYWxsIFJpZFRvU2lkKHVuc2lnbmVkIGxvbmcsdm9pZCAqICopDQorP1JpZFRvU2lkQEBZR0pLUEFQQVhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1NlcnZpY2U6OlNldEFjY291bnQodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqKQ0KKz9TZXRBY2NvdW50QENTZXJ2aWNlQEBRQUVKUEFHMEBaDQorOyBsb25nIF9fc3RkY2FsbCBTZXRBY2NvdW50SW5mb0luUmVnaXN0cnlXKHVuc2lnbmVkIHNob3J0ICopDQorP1NldEFjY291bnRJbmZvSW5SZWdpc3RyeVdAQFlHSlBBR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDU2VjdXJpdHlEZXNjcmlwdG9yOjpTZXRDb250cm9sKHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIHNob3J0KQ0KKz9TZXRDb250cm9sQENTZWN1cml0eURlc2NyaXB0b3JAQFFBRUpHR0BaDQorOyBsb25nIF9fc3RkY2FsbCBTZXREb21haW5Db250cm9sbGVyU3RhdGUodW5zaWduZWQgc2hvcnQgKikNCis/U2V0RG9tYWluQ29udHJvbGxlclN0YXRlQEBZR0pQQUdAWg0KKzsgaW50IF9fc3RkY2FsbCBTZXREdGNDSURQcm9wcyhzdHJ1Y3QgX0xPR19QUk9QRVJUSUVTICYsc3RydWN0IF9EQUNfUFJPUEVSVElFUyAmKQ0KKz9TZXREdGNDSURQcm9wc0BAWUdIQUFVX0xPR19QUk9QRVJUSUVTQEBBQVVfREFDX1BST1BFUlRJRVNAQEBaDQorOyBsb25nIF9fc3RkY2FsbCBTZXREdGNDbGllbnQodW5zaWduZWQgc2hvcnQgKixjaGFyICosdW5zaWduZWQgc2hvcnQgKikNCis/U2V0RHRjQ2xpZW50QEBZR0pQQUdQQUQwQFoNCis7IGxvbmcgX19zdGRjYWxsIFNldER0Y1JwY1NlY3VyaXR5TGV2ZWwodW5zaWduZWQgc2hvcnQgKixlbnVtIF9EVENfU0VDVVJJVFlfTEVWRUwsaW50KQ0KKz9TZXREdGNScGNTZWN1cml0eUxldmVsQEBZR0pQQUdXNF9EVENfU0VDVVJJVFlfTEVWRUxAQEhAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgU2V0RHRjU2VydmVyUHJvdG9jb2woY2hhciAqLGNoYXIgKikNCis/U2V0RHRjU2VydmVyUHJvdG9jb2xAQFlHSlBBRDBAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgU2V0RXZlbnRMb2dTb3VyY2VUb01zZHRjQ29yZSh2b2lkKQ0KKz9TZXRFdmVudExvZ1NvdXJjZVRvTXNkdGNDb3JlQEBZR1hYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1NlY3VyaXR5RGVzY3JpcHRvcjo6U2V0TmFtZWRJbmZvKHVuc2lnbmVkIHNob3J0ICosZW51bSBfU0VfT0JKRUNUX1RZUEUsdW5zaWduZWQgbG9uZykNCis/U2V0TmFtZWRJbmZvQENTZWN1cml0eURlc2NyaXB0b3JAQFFBRUpQQUdXNF9TRV9PQkpFQ1RfVFlQRUBAS0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBDU2VjdXJpdHlEZXNjcmlwdG9yOjpTZXROZXdBY2woc3RydWN0IF9BQ0wgKix1bnNpZ25lZCBsb25nLGludCxpbnQpDQorP1NldE5ld0FjbEBDU2VjdXJpdHlEZXNjcmlwdG9yQEBJQUVKUEFVX0FDTEBAS0hIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENTZWN1cml0eURlc2NyaXB0b3I6OlNldE93bmVyKHVuc2lnbmVkIHNob3J0ICosaW50KQ0KKz9TZXRPd25lckBDU2VjdXJpdHlEZXNjcmlwdG9yQEBRQUVKUEFHSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDU2VjdXJpdHlEZXNjcmlwdG9yOjpTZXRPd25lcih2b2lkICosaW50KQ0KKz9TZXRPd25lckBDU2VjdXJpdHlEZXNjcmlwdG9yQEBRQUVKUEFYSEBaDQorOyBsb25nIF9fc3RkY2FsbCBTZXRTZWN1cml0eUNvbmZpZ3VyYXRpb25PcHRpb25zKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9TZXRTZWN1cml0eUNvbmZpZ3VyYXRpb25PcHRpb25zQEBZR0pQQUdLS0BaDQorOyBsb25nIF9fc3RkY2FsbCBTZXRTZWN1cml0eVJlZ1ZhbHVlTm9uQ2x1c3RlclcodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcpDQorP1NldFNlY3VyaXR5UmVnVmFsdWVOb25DbHVzdGVyV0BAWUdKUEFHUEJHS1BBRUtAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgU2V0U2VjdXJpdHlSZWdWYWx1ZVcodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcpDQorP1NldFNlY3VyaXR5UmVnVmFsdWVXQEBZR0pQQUdQQkdLUEFFS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDU2VjdXJpdHlEZXNjcmlwdG9yOjpTZXRTZXJ2aWNlT2JqZWN0U2VjdXJpdHkoc3RydWN0IFNDX0hBTkRMRV9fICosdW5zaWduZWQgbG9uZykNCis/U2V0U2VydmljZU9iamVjdFNlY3VyaXR5QENTZWN1cml0eURlc2NyaXB0b3JAQFFBRUpQQVVTQ19IQU5ETEVfX0BAS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDU2VjdXJpdHlEZXNjcmlwdG9yOjpTZXRTcGVjaWFsQWNjb3VudHModW5zaWduZWQgbG9uZykNCis/U2V0U3BlY2lhbEFjY291bnRzQENTZWN1cml0eURlc2NyaXB0b3JAQFFBRUpLQFoNCis7IGxvbmcgX19zdGRjYWxsIFN0cmluZ1RvU2lkKHVuc2lnbmVkIHNob3J0ICosdm9pZCAqICopDQorP1N0cmluZ1RvU2lkQEBZR0pQQUdQQVBBWEBaDQorOyBsb25nIF9fc3RkY2FsbCBVcGRhdGVUbU5hbWVPYmplY3Qoc3RydWN0IElOYW1lT2JqZWN0ICosc3RydWN0IElOYW1lT2JqZWN0ICogKikNCis/VXBkYXRlVG1OYW1lT2JqZWN0QEBZR0pQQVVJTmFtZU9iamVjdEBAUEFQQVUxQEBaDQorOyBsb25nIF9fc3RkY2FsbCBVcGdyYWRlRHRjKGludCkNCis/VXBncmFkZUR0Y0BAWUdKSEBaDQorOyBsb25nIF9fc3RkY2FsbCBWZXJpZnlBY2NvdW50SW5mbyh2b2lkKQ0KKz9WZXJpZnlBY2NvdW50SW5mb0BAWUdKWFoNCis7IGludCBfX3N0ZGNhbGwgV2luOTVQcmVzZW50KHZvaWQpDQorP1dpbjk1UHJlc2VudEBAWUdIWFoNCis7IHN0cnVjdCBfU1BFQ0lBTF9BQ0NPVU5UXyAqICBnX2FTcGVjaWFsQWNjb3VudHMNCis/Z19hU3BlY2lhbEFjY291bnRzQEAzUEFVX1NQRUNJQUxfQUNDT1VOVF9AQEEgREFUQQ0KK19DbHVzdGVyQ2hhbmdlRHRjVXNlckFjY291bnRANA0KK19DbHVzdGVyQ3J5cHRvQ29udGFpbmVyQ3JlYXRlQDIwDQorX0NsdXN0ZXJDcnlwdG9Db250YWluZXJEZWxldGVAMTINCitfQ2x1c3RlckRhY2xDcnlwdG9Db250YWluZXJANA0KK19DbHVzdGVyVXBkYXRlQWNjb3VudEluZm9ybWF0aW9uQDEyDQorX0RlY3J5cHRBY2NvdW50SW5mb3JtYXRpb25AMjQNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbEdldFRyYW5zYWN0aW9uTWFuYWdlckNvcmUNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitfRW5jcnlwdEFjY291bnRJbmZvcm1hdGlvbkAxNg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2R0Y3VpdS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNkdGN1aXUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUwMWZhNzMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNkdGN1aXUuZGVmCkBAIC0wLDAgKzEsNjggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNEVENVSVUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TRFRDVUlVLmRsbA0KK0VYUE9SVFMNCitJbml0REFDRExMDQorVGVybURBQ0RMTA0KK1Rlcm1EQUNJbnN0YW5jZQ0KK0RvREFDUHJvcFNoZWV0DQorRG9EQUNBZHZhbmNlZA0KK0dldERBQ1N0YXRzTWluTWF4SW5mbw0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEYWM6OkNEYWMoY2xhc3MgQ0RhYyBjb25zdCAmKQ0KKz8/MENEYWNAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0RhYzo6Q0RhYyh1bnNpZ25lZCBsb25nKQ0KKz8/MENEYWNAQFFBRUBLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRGFjOjp+Q0RhYyh2b2lkKQ0KKz8/MUNEYWNAQFFBRUBYWg0KKzsgcHVibGljOiBjbGFzcyBDRGFjICYgX190aGlzY2FsbCBDRGFjOjpvcGVyYXRvcj0oY2xhc3MgQ0RhYyBjb25zdCAmKQ0KKz8/NENEYWNAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRGFjOjpDb25uZWN0KHN0cnVjdCBIV05EX18gKixzdHJ1Y3QgSU5UU2VydmljZUNvbnRyb2wgKikNCis/Q29ubmVjdEBDRGFjQEBRQUVIUEFVSFdORF9fQEBQQVVJTlRTZXJ2aWNlQ29udHJvbEBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENVaWNDb3JlOjpDcmVhdGUoY2xhc3MgQ1VpY0NvcmUgKiAqKQ0KKz9DcmVhdGVAQ1VpY0NvcmVAQFNHSlBBUEFWMUBAWg0KKzsgcHVibGljOiBjbGFzcyBDRGlhbG9nICogX190aGlzY2FsbCBDRGFjOjpDcmVhdGVBZHZhbmNlZFByb3BlcnR5U2hlZXQoY2xhc3MgQ1duZCAqKQ0KKz9DcmVhdGVBZHZhbmNlZFByb3BlcnR5U2hlZXRAQ0RhY0BAUUFFUEFWQ0RpYWxvZ0BAUEFWQ1duZEBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RhYzo6RXJyb3JNZXNzYWdlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgaW50KQ0KKz9FcnJvck1lc3NhZ2VAQ0RhY0BAUUFFSEtJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENEYWM6OkdldEFkbWluQWNjZXNzKHZvaWQpDQorP0dldEFkbWluQWNjZXNzQENEYWNAQFFBRUtYWg0KKzsgcHVibGljOiBjaGFyICogX190aGlzY2FsbCBDRGFjOjpHZXRIb3N0TmFtZUEodm9pZCkNCis/R2V0SG9zdE5hbWVBQENEYWNAQFFBRVBBRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBDRGFjOjpHZXRIb3N0TmFtZVcodm9pZCkNCis/R2V0SG9zdE5hbWVXQENEYWNAQFFBRVBBR1haDQorOyBwdWJsaWM6IHN0cnVjdCBIV05EX18gKiBfX3RoaXNjYWxsIENEYWM6OkdldE93bmVySHduZCh2b2lkKQ0KKz9HZXRPd25lckh3bmRAQ0RhY0BAUUFFUEFVSFdORF9fQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ0RhYzo6R2V0VmlydHVhbEhvc3ROYW1lKHZvaWQpDQorP0dldFZpcnR1YWxIb3N0TmFtZUBDRGFjQEBRQUVQQUdYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0RhYzo6SW5pdCh1bnNpZ25lZCBzaG9ydCAqKQ0KKz9Jbml0QENEYWNAQFFBRUpQQUdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRGFjOjpJc0Nvbm5lY3RlZCh2b2lkKQ0KKz9Jc0Nvbm5lY3RlZEBDRGFjQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RhYzo6UHJvY2Vzc0NvbW1hbmQodW5zaWduZWQgaW50LGxvbmcpDQorP1Byb2Nlc3NDb21tYW5kQENEYWNAQFFBRUhJSkBaDQorOyB2b2lkIF9fc3RkY2FsbCBSZWdpc3RlckVycm9yU2luayhzdHJ1Y3QgSURhY0Vycm9yU2luayAqKQ0KKz9SZWdpc3RlckVycm9yU2lua0BAWUdYUEFVSURhY0Vycm9yU2lua0BAQFoNCitSdW5EQUNFeGUNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENEYWM6OlNlcnZpY2VSZXF1ZXN0KHVuc2lnbmVkIGxvbmcsdm9pZCAqLHVuc2lnbmVkIGxvbmcsYm9vbCkNCis/U2VydmljZVJlcXVlc3RAQ0RhY0BAUUFFSktQQVhLX05AWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0RhYzo6U2V0SG9zdE5hbWVBKGNoYXIgKikNCis/U2V0SG9zdE5hbWVBQENEYWNAQFFBRVhQQURAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0RhYzo6U2V0SG9zdE5hbWVXKHVuc2lnbmVkIHNob3J0ICopDQorP1NldEhvc3ROYW1lV0BDRGFjQEBRQUVYUEFHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENEYWM6OlNldE93bmVyV25kKGNsYXNzIENXbmQgKikNCis/U2V0T3duZXJXbmRAQ0RhY0BAUUFFWFBBVkNXbmRAQEBaDQorOyBjbGFzcyBDRGFjICogX19zdGRjYWxsIFZhbGlkYXRlREFDSW5zdGFuY2Uodm9pZCAqICosdW5zaWduZWQgc2hvcnQgKikNCis/VmFsaWRhdGVEQUNJbnN0YW5jZUBAWUdQQVZDRGFjQEBQQVBBWFBBR0BaDQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxHZXREVENVSUMNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitEdGNQZXJmQ2xvc2UNCitEdGNQZXJmQ29sbGVjdA0KK0R0Y1BlcmZPcGVuDQorUGVyZkRsbFJlZ2lzdGVyU2VydmVyDQorU2h1dERvd25VSUMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNleGNoNDAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zZXhjaDQwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYzVmOWI4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zZXhjaDQwLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zZXhjaDQwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc2V4Y2g0MC5kbGwNCitFWFBPUlRTDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zZXhjbDQwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2V4Y2w0MC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjg0NzBmMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2V4Y2w0MC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc2V4Y2w0MC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXNleGNsNDAuRExMDQorRVhQT1JUUw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2Z0ZWRpdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNmdGVkaXQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJmNjlhZDEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNmdGVkaXQuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNGVEVESVQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TRlRFRElULmRsbA0KK0VYUE9SVFMNCitJSURfSVJpY2hFZGl0T2xlDQorSUlEX0lSaWNoRWRpdE9sZUNhbGxiYWNrDQorQ3JlYXRlVGV4dFNlcnZpY2VzDQorSUlEX0lUZXh0U2VydmljZXMNCitJSURfSVRleHRIb3N0DQorSUlEX0lUZXh0SG9zdDINCitSRUV4dGVuZGVkUmVnaXN0ZXJDbGFzcw0KK1JpY2hFZGl0QU5TSVduZFByb2MNCitSaWNoRWRpdDEwQU5TSVduZFByb2MNCitTZXRDdXN0b21UZXh0T3V0SGFuZGxlckV4DQorRGxsR2V0VmVyc2lvbg0KK1JpY2hFZGl0V25kUHJvYw0KK1JpY2hMaXN0Qm94V25kUHJvYw0KK1JpY2hDb21ib0JveFduZFByb2MNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNnaW5hLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2dpbmEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMxMDk3ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNnaW5hLmRlZgpAQCAtMCwwICsxLDMwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TR0lOQS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNHSU5BLmRsbA0KK0VYUE9SVFMNCitTaGVsbFNodXRkb3duRGlhbG9nDQorV2x4QWN0aXZhdGVVc2VyU2hlbGwNCitXbHhEaXNjb25uZWN0Tm90aWZ5DQorV2x4RGlzcGxheUxvY2tlZE5vdGljZQ0KK1dseERpc3BsYXlTQVNOb3RpY2UNCitXbHhEaXNwbGF5U3RhdHVzTWVzc2FnZQ0KK1dseEdldENvbnNvbGVTd2l0Y2hDcmVkZW50aWFscw0KK1dseEdldFN0YXR1c01lc3NhZ2UNCitXbHhJbml0aWFsaXplDQorV2x4SXNMb2NrT2sNCitXbHhJc0xvZ29mZk9rDQorV2x4TG9nZ2VkT25TQVMNCitXbHhMb2dnZWRPdXRTQVMNCitXbHhMb2dvZmYNCitXbHhOZWdvdGlhdGUNCitXbHhOZXR3b3JrUHJvdmlkZXJMb2FkDQorV2x4UmVjb25uZWN0Tm90aWZ5DQorV2x4UmVtb3ZlU3RhdHVzTWVzc2FnZQ0KK1dseFNjcmVlblNhdmVyTm90aWZ5DQorV2x4U2h1dGRvd24NCitXbHhTdGFydEFwcGxpY2F0aW9uDQorV2x4V2tzdGFMb2NrZWRTQVMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNncjNlbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNncjNlbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmVmNGNmMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2dyM2VuLmRlZgpAQCAtMCwwICsxLDQzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zZ3IzZW4uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1zZ3IzZW4uZGxsDQorRVhQT1JUUw0KK0NoZWNrVmVyc2lvbg0KK0NoZWNrSW5pdA0KK0NoZWNrVGVybWluYXRlDQorQ2hlY2tUZXh0DQorQ2hlY2tHZXRFcnJvcg0KK0NoZWNrR2V0RXJyb3JJbmZvcm1hdGlvbg0KK0NoZWNrSWdub3JlRXJyb3INCitDaGVja1Jlc2V0RXJyb3INCitDaGVja0ZyZWVIYW5kbGUNCitDaGVja0VudW1IYW5kbGVzDQorQ2hlY2tVbmxvYWREb2MNCitDaGVja09wZW5NZHQNCitDaGVja0Nsb3NlTWR0DQorQ2hlY2tBZGRTdGF0cw0KK0NoZWNrR2V0U3RhdHMNCitDaGVja0luaXRTdGF0cw0KK0NoZWNrU3RhdHMNCitDaGVja0lnbm9yZVJ1bGUNCitDaGVja1Jlc2V0UnVsZQ0KK0NoZWNrSXNSdWxlSWdub3JlZA0KK0NoZWNrVXNlT3B0aW9ucw0KK0NoZWNrT3B0aW9uU2V0dGluZ3MNCitDaGVja1Jlc2V0T3B0aW9ucw0KK0NoZWNrV3JpdGVPcHRpb25zDQorQ2hlY2tMb2FkUGVyc2lzdERhdGENCitDaGVja1NhdmVQZXJzaXN0RGF0YQ0KK0RsbENhblVubG9hZE5vdw0KK0NoZWNrU3VidHJhY3RTdGF0cw0KK0NoZWNrQmF0Y2hVcGRhdGUNCitDaGVja0FkZFVkcg0KK0NoZWNrR2V0TmFtZWRFbnRpdHkNCitDaGVja0dldE5vcm1hbGl6ZWREYXRhDQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNodG1sLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2h0bWwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNlMWNlYjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNodG1sLmRlZgpAQCAtMCwwICsxLDI3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TSFRNTC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNIVE1MLmRsbA0KK0VYUE9SVFMNCitDcmVhdGVIVE1MUHJvcGVydHlQYWdlDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsRW51bUNsYXNzT2JqZWN0cw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK01hdGNoRXhhY3RHZXRJRHNPZk5hbWVzDQorUHJpbnRIVE1MDQorUk5JR2V0Q29tcGF0aWJsZVZlcnNpb24NCitSdW5IVE1MQXBwbGljYXRpb24NCitTaG93SFRNTERpYWxvZw0KK1Nob3dIVE1MRGlhbG9nRXgNCitTaG93TW9kYWxEaWFsb2cNCitTaG93TW9kZWxlc3NIVE1MRGlhbG9nDQorY29tX21zX29zcF9vc3BtcnNobF9jbGFzc0luaXQNCitjb21fbXNfb3NwX29zcG1yc2hsX2NvcHlUb0V4dGVybmFsDQorY29tX21zX29zcF9vc3BtcnNobF9yZWxlYXNlQnlWYWxFeHRlcm5hbA0KK2NvbV9tc19vc3Bfb3NwbXJzaGxfdG9KYXZhDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zaHRtbGVkLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2h0bWxlZC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzBhNzk5YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2h0bWxlZC5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc2h0bWxlZC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXNodG1sZWQuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEVudW1DbGFzc09iamVjdHMNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2kuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjc3YmUyYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2kuZGVmCkBAIC0wLDAgKzEsMjg5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zaS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXNpLmRsbA0KK0VYUE9SVFMNCitNc2lBZHZlcnRpc2VQcm9kdWN0QQ0KK01zaUFkdmVydGlzZVByb2R1Y3RXDQorTXNpQ2xvc2VBbGxIYW5kbGVzDQorTXNpQ2xvc2VIYW5kbGUNCitNc2lDb2xsZWN0VXNlckluZm9BDQorTXNpQ29sbGVjdFVzZXJJbmZvVw0KK01zaUNvbmZpZ3VyZUZlYXR1cmVBDQorTXNpQ29uZmlndXJlRmVhdHVyZUZyb21EZXNjcmlwdG9yQQ0KK01zaUNvbmZpZ3VyZUZlYXR1cmVGcm9tRGVzY3JpcHRvclcNCitNc2lDb25maWd1cmVGZWF0dXJlVw0KK01zaUNvbmZpZ3VyZVByb2R1Y3RBDQorTXNpQ29uZmlndXJlUHJvZHVjdFcNCitNc2lDcmVhdGVSZWNvcmQNCitNc2lEYXRhYmFzZUFwcGx5VHJhbnNmb3JtQQ0KK01zaURhdGFiYXNlQXBwbHlUcmFuc2Zvcm1XDQorTXNpRGF0YWJhc2VDb21taXQNCitNc2lEYXRhYmFzZUV4cG9ydEENCitNc2lEYXRhYmFzZUV4cG9ydFcNCitNc2lEYXRhYmFzZUdlbmVyYXRlVHJhbnNmb3JtQQ0KK01zaURhdGFiYXNlR2VuZXJhdGVUcmFuc2Zvcm1XDQorTXNpRGF0YWJhc2VHZXRQcmltYXJ5S2V5c0ENCitNc2lEYXRhYmFzZUdldFByaW1hcnlLZXlzVw0KK01zaURhdGFiYXNlSW1wb3J0QQ0KK01zaURhdGFiYXNlSW1wb3J0Vw0KK01zaURhdGFiYXNlTWVyZ2VBDQorTXNpRGF0YWJhc2VNZXJnZVcNCitNc2lEYXRhYmFzZU9wZW5WaWV3QQ0KK01zaURhdGFiYXNlT3BlblZpZXdXDQorTXNpRG9BY3Rpb25BDQorTXNpRG9BY3Rpb25XDQorTXNpRW5hYmxlVUlQcmV2aWV3DQorTXNpRW51bUNsaWVudHNBDQorTXNpRW51bUNsaWVudHNXDQorTXNpRW51bUNvbXBvbmVudFF1YWxpZmllcnNBDQorTXNpRW51bUNvbXBvbmVudFF1YWxpZmllcnNXDQorTXNpRW51bUNvbXBvbmVudHNBDQorTXNpRW51bUNvbXBvbmVudHNXDQorTXNpRW51bUZlYXR1cmVzQQ0KK01zaUVudW1GZWF0dXJlc1cNCitNc2lFbnVtUHJvZHVjdHNBDQorTXNpRW51bVByb2R1Y3RzVw0KK01zaUV2YWx1YXRlQ29uZGl0aW9uQQ0KK01zaUV2YWx1YXRlQ29uZGl0aW9uVw0KK01zaUdldExhc3RFcnJvclJlY29yZA0KK01zaUdldEFjdGl2ZURhdGFiYXNlDQorTXNpR2V0Q29tcG9uZW50U3RhdGVBDQorTXNpR2V0Q29tcG9uZW50U3RhdGVXDQorTXNpR2V0RGF0YWJhc2VTdGF0ZQ0KK01zaUdldEZlYXR1cmVDb3N0QQ0KK01zaUdldEZlYXR1cmVDb3N0Vw0KK01zaUdldEZlYXR1cmVJbmZvQQ0KK01zaUdldEZlYXR1cmVJbmZvVw0KK01zaUdldEZlYXR1cmVTdGF0ZUENCitNc2lHZXRGZWF0dXJlU3RhdGVXDQorTXNpR2V0RmVhdHVyZVVzYWdlQQ0KK01zaUdldEZlYXR1cmVVc2FnZVcNCitNc2lHZXRGZWF0dXJlVmFsaWRTdGF0ZXNBDQorTXNpR2V0RmVhdHVyZVZhbGlkU3RhdGVzVw0KK01zaUdldExhbmd1YWdlDQorTXNpR2V0TW9kZQ0KK01zaUdldFByb2R1Y3RDb2RlQQ0KK01zaUdldFByb2R1Y3RDb2RlVw0KK01zaUdldFByb2R1Y3RJbmZvQQ0KK01zaUdldFByb2R1Y3RJbmZvRnJvbVNjcmlwdEENCitNc2lHZXRQcm9kdWN0SW5mb0Zyb21TY3JpcHRXDQorTXNpR2V0UHJvZHVjdEluZm9XDQorTXNpR2V0UHJvZHVjdFByb3BlcnR5QQ0KK01zaUdldFByb2R1Y3RQcm9wZXJ0eVcNCitNc2lHZXRQcm9wZXJ0eUENCitNc2lHZXRQcm9wZXJ0eVcNCitNc2lHZXRTb3VyY2VQYXRoQQ0KK01zaUdldFNvdXJjZVBhdGhXDQorTXNpR2V0U3VtbWFyeUluZm9ybWF0aW9uQQ0KK01zaUdldFN1bW1hcnlJbmZvcm1hdGlvblcNCitNc2lHZXRUYXJnZXRQYXRoQQ0KK01zaUdldFRhcmdldFBhdGhXDQorTXNpR2V0VXNlckluZm9BDQorTXNpR2V0VXNlckluZm9XDQorTXNpSW5zdGFsbE1pc3NpbmdDb21wb25lbnRBDQorTXNpSW5zdGFsbE1pc3NpbmdDb21wb25lbnRXDQorTXNpSW5zdGFsbE1pc3NpbmdGaWxlQQ0KK01zaUluc3RhbGxNaXNzaW5nRmlsZVcNCitNc2lJbnN0YWxsUHJvZHVjdEENCitNc2lJbnN0YWxsUHJvZHVjdFcNCitNc2lMb2NhdGVDb21wb25lbnRBDQorTXNpTG9jYXRlQ29tcG9uZW50Vw0KK01zaU9wZW5EYXRhYmFzZUENCitNc2lPcGVuRGF0YWJhc2VXDQorTXNpT3BlblBhY2thZ2VBDQorTXNpT3BlblBhY2thZ2VXDQorTXNpT3BlblByb2R1Y3RBDQorTXNpT3BlblByb2R1Y3RXDQorTXNpUHJldmlld0JpbGxib2FyZEENCitNc2lQcmV2aWV3QmlsbGJvYXJkVw0KK01zaVByZXZpZXdEaWFsb2dBDQorTXNpUHJldmlld0RpYWxvZ1cNCitNc2lQcm9jZXNzQWR2ZXJ0aXNlU2NyaXB0QQ0KK01zaVByb2Nlc3NBZHZlcnRpc2VTY3JpcHRXDQorTXNpUHJvY2Vzc01lc3NhZ2UNCitNc2lQcm92aWRlQ29tcG9uZW50QQ0KK01zaVByb3ZpZGVDb21wb25lbnRGcm9tRGVzY3JpcHRvckENCitNc2lQcm92aWRlQ29tcG9uZW50RnJvbURlc2NyaXB0b3JXDQorTXNpUHJvdmlkZUNvbXBvbmVudFcNCitNc2lQcm92aWRlUXVhbGlmaWVkQ29tcG9uZW50QQ0KK01zaVByb3ZpZGVRdWFsaWZpZWRDb21wb25lbnRXDQorTXNpUXVlcnlGZWF0dXJlU3RhdGVBDQorTXNpUXVlcnlGZWF0dXJlU3RhdGVXDQorTXNpUXVlcnlQcm9kdWN0U3RhdGVBDQorTXNpUXVlcnlQcm9kdWN0U3RhdGVXDQorTXNpUmVjb3JkRGF0YVNpemUNCitNc2lSZWNvcmRHZXRGaWVsZENvdW50DQorTXNpUmVjb3JkR2V0SW50ZWdlcg0KK01zaVJlY29yZEdldFN0cmluZ0ENCitNc2lSZWNvcmRHZXRTdHJpbmdXDQorTXNpUmVjb3JkSXNOdWxsDQorTXNpUmVjb3JkUmVhZFN0cmVhbQ0KK01zaVJlY29yZFNldEludGVnZXINCitNc2lSZWNvcmRTZXRTdHJlYW1BDQorTXNpUmVjb3JkU2V0U3RyZWFtVw0KK01zaVJlY29yZFNldFN0cmluZ0ENCitNc2lSZWNvcmRTZXRTdHJpbmdXDQorTXNpUmVpbnN0YWxsRmVhdHVyZUENCitNc2lSZWluc3RhbGxGZWF0dXJlRnJvbURlc2NyaXB0b3JBDQorTXNpUmVpbnN0YWxsRmVhdHVyZUZyb21EZXNjcmlwdG9yVw0KK01zaVJlaW5zdGFsbEZlYXR1cmVXDQorTXNpUmVpbnN0YWxsUHJvZHVjdEENCitNc2lSZWluc3RhbGxQcm9kdWN0Vw0KK01zaVNlcXVlbmNlQQ0KK01zaVNlcXVlbmNlVw0KK01zaVNldENvbXBvbmVudFN0YXRlQQ0KK01zaVNldENvbXBvbmVudFN0YXRlVw0KK01zaVNldEV4dGVybmFsVUlBDQorTXNpU2V0RXh0ZXJuYWxVSVcNCitNc2lTZXRGZWF0dXJlU3RhdGVBDQorTXNpU2V0RmVhdHVyZVN0YXRlVw0KK01zaVNldEluc3RhbGxMZXZlbA0KK01zaVNldEludGVybmFsVUkNCitNc2lWZXJpZnlEaXNrU3BhY2UNCitNc2lTZXRNb2RlDQorTXNpU2V0UHJvcGVydHlBDQorTXNpU2V0UHJvcGVydHlXDQorTXNpU2V0VGFyZ2V0UGF0aEENCitNc2lTZXRUYXJnZXRQYXRoVw0KK01zaVN1bW1hcnlJbmZvR2V0UHJvcGVydHlBDQorTXNpU3VtbWFyeUluZm9HZXRQcm9wZXJ0eUNvdW50DQorTXNpU3VtbWFyeUluZm9HZXRQcm9wZXJ0eVcNCitNc2lTdW1tYXJ5SW5mb1BlcnNpc3QNCitNc2lTdW1tYXJ5SW5mb1NldFByb3BlcnR5QQ0KK01zaVN1bW1hcnlJbmZvU2V0UHJvcGVydHlXDQorTXNpVXNlRmVhdHVyZUENCitNc2lVc2VGZWF0dXJlVw0KK01zaVZlcmlmeVBhY2thZ2VBDQorTXNpVmVyaWZ5UGFja2FnZVcNCitNc2lWaWV3Q2xvc2UNCitNc2lWaWV3RXhlY3V0ZQ0KK01zaVZpZXdGZXRjaA0KK01zaVZpZXdHZXRFcnJvckENCitNc2lWaWV3R2V0RXJyb3JXDQorTXNpVmlld01vZGlmeQ0KK01zaURhdGFiYXNlSXNUYWJsZVBlcnNpc3RlbnRBDQorTXNpRGF0YWJhc2VJc1RhYmxlUGVyc2lzdGVudFcNCitNc2lWaWV3R2V0Q29sdW1uSW5mbw0KK01zaVJlY29yZENsZWFyRGF0YQ0KK01zaUVuYWJsZUxvZ0ENCitNc2lFbmFibGVMb2dXDQorTXNpRm9ybWF0UmVjb3JkQQ0KK01zaUZvcm1hdFJlY29yZFcNCitNc2lHZXRDb21wb25lbnRQYXRoQQ0KK01zaUdldENvbXBvbmVudFBhdGhXDQorTXNpQXBwbHlQYXRjaEENCitNc2lBcHBseVBhdGNoVw0KK01zaUFkdmVydGlzZVNjcmlwdEENCitNc2lBZHZlcnRpc2VTY3JpcHRXDQorTXNpR2V0UGF0Y2hJbmZvQQ0KK01zaUdldFBhdGNoSW5mb1cNCitNc2lFbnVtUGF0Y2hlc0ENCitNc2lFbnVtUGF0Y2hlc1cNCitEbGxHZXRWZXJzaW9uDQorTXNpR2V0UHJvZHVjdENvZGVGcm9tUGFja2FnZUNvZGVBDQorTXNpR2V0UHJvZHVjdENvZGVGcm9tUGFja2FnZUNvZGVXDQorTXNpQ3JlYXRlVHJhbnNmb3JtU3VtbWFyeUluZm9BDQorTXNpQ3JlYXRlVHJhbnNmb3JtU3VtbWFyeUluZm9XDQorTXNpUXVlcnlGZWF0dXJlU3RhdGVGcm9tRGVzY3JpcHRvckENCitNc2lRdWVyeUZlYXR1cmVTdGF0ZUZyb21EZXNjcmlwdG9yVw0KK01zaUNvbmZpZ3VyZVByb2R1Y3RFeEENCitNc2lDb25maWd1cmVQcm9kdWN0RXhXDQorTXNpSW52YWxpZGF0ZUZlYXR1cmVDYWNoZQ0KK01zaVVzZUZlYXR1cmVFeEENCitNc2lVc2VGZWF0dXJlRXhXDQorTXNpR2V0RmlsZVZlcnNpb25BDQorTXNpR2V0RmlsZVZlcnNpb25XDQorTXNpTG9hZFN0cmluZ0ENCitNc2lMb2FkU3RyaW5nVw0KK01zaU1lc3NhZ2VCb3hBDQorTXNpTWVzc2FnZUJveFcNCitNc2lEZWNvbXBvc2VEZXNjcmlwdG9yQQ0KK01zaURlY29tcG9zZURlc2NyaXB0b3JXDQorTXNpUHJvdmlkZVF1YWxpZmllZENvbXBvbmVudEV4QQ0KK01zaVByb3ZpZGVRdWFsaWZpZWRDb21wb25lbnRFeFcNCitNc2lFbnVtUmVsYXRlZFByb2R1Y3RzQQ0KK01zaUVudW1SZWxhdGVkUHJvZHVjdHNXDQorTXNpU2V0RmVhdHVyZUF0dHJpYnV0ZXNBDQorTXNpU2V0RmVhdHVyZUF0dHJpYnV0ZXNXDQorTXNpU291cmNlTGlzdENsZWFyQWxsQQ0KK01zaVNvdXJjZUxpc3RDbGVhckFsbFcNCitNc2lTb3VyY2VMaXN0QWRkU291cmNlQQ0KK01zaVNvdXJjZUxpc3RBZGRTb3VyY2VXDQorTXNpU291cmNlTGlzdEZvcmNlUmVzb2x1dGlvbkENCitNc2lTb3VyY2VMaXN0Rm9yY2VSZXNvbHV0aW9uVw0KK01zaUlzUHJvZHVjdEVsZXZhdGVkQQ0KK01zaUlzUHJvZHVjdEVsZXZhdGVkVw0KK01zaUdldFNob3J0Y3V0VGFyZ2V0QQ0KK01zaUdldFNob3J0Y3V0VGFyZ2V0Vw0KK01zaUdldEZpbGVIYXNoQQ0KK01zaUdldEZpbGVIYXNoVw0KK01zaUVudW1Db21wb25lbnRDb3N0c0ENCitNc2lFbnVtQ29tcG9uZW50Q29zdHNXDQorTXNpQ3JlYXRlQW5kVmVyaWZ5SW5zdGFsbGVyRGlyZWN0b3J5DQorTXNpR2V0RmlsZVNpZ25hdHVyZUluZm9ybWF0aW9uQQ0KK01zaUdldEZpbGVTaWduYXR1cmVJbmZvcm1hdGlvblcNCitNc2lQcm92aWRlQXNzZW1ibHlBDQorTXNpUHJvdmlkZUFzc2VtYmx5Vw0KK01zaUFkdmVydGlzZVByb2R1Y3RFeEENCitNc2lBZHZlcnRpc2VQcm9kdWN0RXhXDQorTXNpTm90aWZ5U2lkQ2hhbmdlQQ0KK01zaU5vdGlmeVNpZENoYW5nZVcNCitNc2lPcGVuUGFja2FnZUV4QQ0KK01zaU9wZW5QYWNrYWdlRXhXDQorTXNpRGVsZXRlVXNlckRhdGFBDQorTXNpRGVsZXRlVXNlckRhdGFXDQorTWlncmF0ZTEwQ2FjaGVkUGFja2FnZXNBDQorTWlncmF0ZTEwQ2FjaGVkUGFja2FnZXNXDQorTXNpUmVtb3ZlUGF0Y2hlc0ENCitNc2lSZW1vdmVQYXRjaGVzVw0KK01zaUFwcGx5TXVsdGlwbGVQYXRjaGVzQQ0KK01zaUFwcGx5TXVsdGlwbGVQYXRjaGVzVw0KK01zaUV4dHJhY3RQYXRjaFhNTERhdGFBDQorTXNpRXh0cmFjdFBhdGNoWE1MRGF0YVcNCitNc2lHZXRQYXRjaEluZm9FeEENCitNc2lHZXRQYXRjaEluZm9FeFcNCitNc2lFbnVtUHJvZHVjdHNFeEENCitNc2lFbnVtUHJvZHVjdHNFeFcNCitNc2lHZXRQcm9kdWN0SW5mb0V4QQ0KK01zaUdldFByb2R1Y3RJbmZvRXhXDQorTXNpUXVlcnlDb21wb25lbnRTdGF0ZUENCitNc2lRdWVyeUNvbXBvbmVudFN0YXRlVw0KK01zaVF1ZXJ5RmVhdHVyZVN0YXRlRXhBDQorTXNpUXVlcnlGZWF0dXJlU3RhdGVFeFcNCitNc2lEZXRlcm1pbmVQYXRjaFNlcXVlbmNlQQ0KK01zaURldGVybWluZVBhdGNoU2VxdWVuY2VXDQorTXNpU291cmNlTGlzdEFkZFNvdXJjZUV4QQ0KK01zaVNvdXJjZUxpc3RBZGRTb3VyY2VFeFcNCitNc2lTb3VyY2VMaXN0Q2xlYXJTb3VyY2VBDQorTXNpU291cmNlTGlzdENsZWFyU291cmNlVw0KK01zaVNvdXJjZUxpc3RDbGVhckFsbEV4QQ0KK01zaVNvdXJjZUxpc3RDbGVhckFsbEV4Vw0KK01zaVNvdXJjZUxpc3RGb3JjZVJlc29sdXRpb25FeEENCitNc2lTb3VyY2VMaXN0Rm9yY2VSZXNvbHV0aW9uRXhXDQorTXNpU291cmNlTGlzdEVudW1Tb3VyY2VzQQ0KK01zaVNvdXJjZUxpc3RFbnVtU291cmNlc1cNCitNc2lTb3VyY2VMaXN0R2V0SW5mb0ENCitNc2lTb3VyY2VMaXN0R2V0SW5mb1cNCitNc2lTb3VyY2VMaXN0U2V0SW5mb0ENCitNc2lTb3VyY2VMaXN0U2V0SW5mb1cNCitNc2lFbnVtUGF0Y2hlc0V4QQ0KK01zaUVudW1QYXRjaGVzRXhXDQorTXNpU291cmNlTGlzdEVudW1NZWRpYURpc2tzQQ0KK01zaVNvdXJjZUxpc3RFbnVtTWVkaWFEaXNrc1cNCitNc2lTb3VyY2VMaXN0QWRkTWVkaWFEaXNrQQ0KK01zaVNvdXJjZUxpc3RBZGRNZWRpYURpc2tXDQorTXNpU291cmNlTGlzdENsZWFyTWVkaWFEaXNrQQ0KK01zaVNvdXJjZUxpc3RDbGVhck1lZGlhRGlza1cNCitNc2lEZXRlcm1pbmVBcHBsaWNhYmxlUGF0Y2hlc0ENCitNc2lEZXRlcm1pbmVBcHBsaWNhYmxlUGF0Y2hlc1cNCitNc2lNZXNzYWdlQm94RXhBDQorTXNpTWVzc2FnZUJveEV4Vw0KK01zaVNldEV4dGVybmFsVUlSZWNvcmQNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2lkZW50LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2lkZW50LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMmI0ODZhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zaWRlbnQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXNpZGVudC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXNpZGVudC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNpZWZ0cC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNpZWZ0cC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzQ1ZDY4MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2llZnRwLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TSUVGVFAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TSUVGVFAuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2lobmQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zaWhuZC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDUwOTAxYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2lobmQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXNpaG5kLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc2lobmQuZGxsDQorRVhQT1JUUw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zaW1nMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zaW1nMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI5MzFkMjIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNpbWczMi5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU0lNRzMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU0lNRzMyLmRsbA0KK0VYUE9SVFMNCit2U2V0RGRyYXdmbGFnDQorQWxwaGFCbGVuZA0KK0RsbEluaXRpYWxpemUNCitHcmFkaWVudEZpbGwNCitUcmFuc3BhcmVudEJsdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2lyM2pwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2lyM2pwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MGQ1YWI4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zaXIzanAuZGVmCkBAIC0wLDAgKzEsMjAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXNpcjNqcC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXNpcjNqcC5kbGwNCitFWFBPUlRTDQorRW51bVNlbGVjdGlvbk9mZnNldHMNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0VudW1TdW1tYXJpemF0aW9uT2Zmc2V0cw0KK0VudW1TdGVtSW5mbw0KK0VudW1TZW50ZW5jZU9mZnNldHMNCitXb3JkQnJlYWtJbml0DQorV29yZEJyZWFrSW5pdEV4DQorRW51bVBocmFzZXMNCitFbnVtU3VtbWFyaXphdGlvbk9mZnNldHNFeA0KK0VudW1TdGVtT2Zmc2V0cw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2lzaXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zaXNpcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjUxMTM5ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2lzaXAuZGVmCkBAIC0wLDAgKzEsMTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXNpc2lwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc2lzaXAuZGxsDQorRVhQT1JUUw0KK01zaVNJUElzTXlUeXBlT2ZGaWxlDQorTXNpU0lQR2V0U2lnbmVkRGF0YU1zZw0KK01zaVNJUFB1dFNpZ25lZERhdGFNc2cNCitNc2lTSVBSZW1vdmVTaWduZWREYXRhTXNnDQorTXNpU0lQQ3JlYXRlSW5kaXJlY3REYXRhDQorTXNpU0lQVmVyaWZ5SW5kaXJlY3REYXRhDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zamV0NDAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zamV0NDAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE2Njc2YmEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNqZXQ0MC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc2pldDQwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc2pldDQwLmRsbA0KK0VYUE9SVFMNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNqZXRvbDEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zamV0b2wxLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ZWFmZmU4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zamV0b2wxLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TSkVUT0xFREI0MC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNKRVRPTEVEQjQwLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbE1haW4NCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNqaW50NDAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zamludDQwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41ZmUxYjZhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zamludDQwLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNKSU5UNDAuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TSklOVDQwLkRMTA0KK0VYUE9SVFMNCitDY2hMc3pPZklkMg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2pyby5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNqcm8uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU0NDljMzgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNqcm8uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXNqcm8uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1zanJvLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2p0ZXI0MC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNqdGVyNDAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY1NzUyMzMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNqdGVyNDAuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXNqdGVyNDAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1zanRlcjQwLmRsbA0KK0VYUE9SVFMNCitKZXRFcnJJREFGb3JFcnJvcg0KK0pldEVycklEQVJhd01lc3NhZ2UNCitKZXRFcnJSYXdNZXNzYWdlDQorSmV0RXJyRm9ybWF0dGVkTWVzc2FnZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2p0ZXM0MC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNqdGVzNDAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZlZTlmNDcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNqdGVzNDAuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNKVEVTNDAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TSlRFUzQwLmRsbA0KK0VYUE9SVFMNCitEbGxNYWluDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNsYnVpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2xidWkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFhNzlmYjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNsYnVpLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNMQlVJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU0xCVUkuZGxsDQorRVhQT1JUUw0KK0NURkdldExhbmdCYXJBZGRJbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2xzMzEuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zbHMzMS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzc1Mzg5ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc2xzMzEuZGVmCkBAIC0wLDAgKzEsODcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXNsczMxLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc2xzMzEuZGxsDQorRVhQT1JUUw0KK0xzQ3JlYXRlQ29udGV4dA0KK0xzRGVzdHJveUNvbnRleHQNCitMc0NyZWF0ZUxpbmUNCitMc01vZGlmeUxpbmVIZWlnaHQNCitMc0Rlc3Ryb3lMaW5lDQorTHNDcmVhdGVTdWJsaW5lDQorTHNGZXRjaEFwcGVuZFRvQ3VycmVudFN1YmxpbmUNCitMc0FwcGVuZFJ1blRvQ3VycmVudFN1YmxpbmUNCitMc1Jlc2V0Uk1JbkN1cnJlbnRTdWJsaW5lDQorTHNGaW5pc2hDdXJyZW50U3VibGluZQ0KK0xzVHJ1bmNhdGVTdWJsaW5lDQorTHNGaW5kUHJldkJyZWFrU3VibGluZQ0KK0xzRmluZE5leHRCcmVha1N1YmxpbmUNCitMc0ZvcmNlQnJlYWtTdWJsaW5lDQorTHNTZXRCcmVha1N1YmxpbmUNCitMc0Rlc3Ryb3lTdWJsaW5lDQorTHNNYXRjaFByZXNTdWJsaW5lDQorTHNFeHBhbmRTdWJsaW5lDQorTHNHZXRTcGVjaWFsRWZmZWN0c1N1YmxpbmUNCitMc2RuRmluaXNoUmVndWxhcg0KK0xzZG5GaW5pc2hSZWd1bGFyQWRkQWR2YW5jZVBlbg0KK0xzZG5GaW5pc2hEZWxldGUNCitMc2RuRmluaXNoQnlQZW4NCitMc2RuRmluaXNoQnlTdWJsaW5lDQorTHNkbkZpbmlzaERlbGV0ZUFsbA0KK0xzZG5GaW5pc2hCeU9uZUNoYXINCitMc2RuUXVlcnlPYmpEaW1SYW5nZQ0KK0xzZG5SZXNldE9iakRpbQ0KK0xzZG5RdWVyeVBlbk5vZGUNCitMc2RuUmVzZXRQZW5Ob2RlDQorTHNkblNldFJpZ2lkRHVwDQorTHNkbkdldER1cA0KK0xzZG5TZXRBYnNCYXNlTGluZQ0KK0xzZG5SZXNvbHZlUHJldlRhYg0KK0xzZG5HZXRDdXJUYWJJbmZvDQorTHNkblNraXBDdXJUYWINCitMc2RuRGlzdHJpYnV0ZQ0KK0xzZG5TdWJtaXRTdWJsaW5lcw0KK0xzRGlzcGxheUxpbmUNCitMc0Rpc3BsYXlTdWJsaW5lDQorTHNRdWVyeUxpbmVDcFBwb2ludA0KK0xzUXVlcnlMaW5lUG9pbnRQY3ANCitMc1F1ZXJ5TGluZUR1cA0KK0xzUXVlcnlGTGluZUVtcHR5DQorTHNRdWVyeVBvaW50UGNwU3VibGluZQ0KK0xzUXVlcnlDcFBwb2ludFN1YmxpbmUNCitMc1NldERvYw0KK0xzU2V0TW9kV2lkdGhQYWlycw0KK0xzU2V0Q29tcHJlc3Npb24NCitMc1NldEV4cGFuc2lvbg0KK0xzU2V0QnJlYWtpbmcNCitMc3NiR2V0T2JqRGltU3VibGluZQ0KK0xzc2JHZXREdXBTdWJsaW5lDQorTHNzYkZEb25lUHJlc1N1YmxpbmUNCitMc3NiR2V0UGxzcnVuc0Zyb21TdWJsaW5lDQorTHNzYkdldE51bWJlckRub2Rlc0luU3VibGluZQ0KK0xzc2JHZXRWaXNpYmxlRGNwSW5TdWJsaW5lDQorTHNQb2ludFhZRnJvbVBvaW50VVYNCitMc1BvaW50VVYyRnJvbVBvaW50VVYxDQorTHNHZXRXYXJpY2h1THNpbWV0aG9kcw0KK0xzR2V0UnVieUxzaW1ldGhvZHMNCitMc0dldFRhdGVuYWtheW9rb0xzaW1ldGhvZHMNCitMc1NxdWVlemVTdWJsaW5lDQorTHNDb21wcmVzc1N1YmxpbmUNCitMc0dldEhpaExzaW1ldGhvZHMNCitMc1F1ZXJ5VGV4dENlbGxEZXRhaWxzDQorTHNGZXRjaEFwcGVuZFRvQ3VycmVudFN1YmxpbmVSZXN1bWUNCitMc2RuR2V0Rm9ybWF0RGVwdGgNCitMc3NiRkRvbmVEaXNwbGF5DQorTHNHZXRSZXZlcnNlTHNpbWV0aG9kcw0KK0xzRW51bUxpbmUNCitMc0dldE1pbkR1ckJyZWFrcw0KK0xzR2V0TGluZUR1cg0KK0xzRW51bVN1YmxpbmUNCitMc2RuTW9kaWZ5UGFyYUVuZGluZw0KK0xzc2JHZXREdXJUcmFpbEluU3VibGluZQ0KK0xzc2JHZXREdXJUcmFpbFdpdGhQZW5zSW5TdWJsaW5lDQorTHNzYkZJc1N1YmxpbmVFbXB0eQ0KK0xzTHdNdWx0RGl2Ug0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc2x0dXM0MC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNsdHVzNDAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRmYjcxNWYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNsdHVzNDAuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXNsdHVzNDAuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1zbHR1czQwLkRMTA0KK0VYUE9SVFMNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNsd3Z0dHMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zbHd2dHRzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMWIyOGVjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zbHd2dHRzLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TTFdWVFRTLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU0xXVlRUUy5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNuZXRvYmouZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zbmV0b2JqLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41Y2JlN2E2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zbmV0b2JqLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zbmV0b2JqLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc25ldG9iai5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNuc3NwYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNuc3NwYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjc4ZTUzNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc25zc3BjLmRlZgpAQCAtMCwwICsxLDMyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TTlNTUEMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TTlNTUEMuZGxsDQorRVhQT1JUUw0KK0luaXRTZWN1cml0eUludGVyZmFjZUENCitJbml0U2VjdXJpdHlJbnRlcmZhY2VXDQorQWNxdWlyZUNyZWRlbnRpYWxzSGFuZGxlQQ0KK0FjcXVpcmVDcmVkZW50aWFsc0hhbmRsZVcNCitEZWxldGVTZWN1cml0eUNvbnRleHQNCitGcmVlQ3JlZGVudGlhbHNIYW5kbGUNCitJbml0aWFsaXplU2VjdXJpdHlDb250ZXh0QQ0KK0luaXRpYWxpemVTZWN1cml0eUNvbnRleHRXDQorRW51bWVyYXRlU2VjdXJpdHlQYWNrYWdlc0ENCitFbnVtZXJhdGVTZWN1cml0eVBhY2thZ2VzVw0KK1F1ZXJ5Q29udGV4dEF0dHJpYnV0ZXNBDQorUXVlcnlDb250ZXh0QXR0cmlidXRlc1cNCitRdWVyeVNlY3VyaXR5UGFja2FnZUluZm9BDQorUXVlcnlTZWN1cml0eVBhY2thZ2VJbmZvVw0KK0NvbXBsZXRlQXV0aFRva2VuDQorQXBwbHlDb250cm9sVG9rZW4NCitNYWtlU2lnbmF0dXJlDQorVmVyaWZ5U2lnbmF0dXJlDQorRnJlZUNvbnRleHRCdWZmZXINCitTZWFsTWVzc2FnZQ0KK1Vuc2VhbE1lc3NhZ2UNCitTZXRNU05BY2NvdW50SW5mbw0KK1NzcGNDcmVhdGVTc3BpUmVnDQorQ2xlYW51cENyZWRlbnRpYWxDYWNoZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc29lLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc29lLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yN2I0YWU0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zb2UuZGVmCkBAIC0wLDAgKzEsNDAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNPRS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNPRS5kbGwNCitFWFBPUlRTDQorQk1BUElBZGRyZXNzDQorQk1BUElEZXRhaWxzDQorQk1BUElGaW5kTmV4dA0KK0JNQVBJR2V0QWRkcmVzcw0KK0JNQVBJR2V0UmVhZE1haWwNCitCTUFQSVJlYWRNYWlsDQorQk1BUElSZXNvbHZlTmFtZQ0KK0JNQVBJU2F2ZU1haWwNCitCTUFQSVNlbmRNYWlsDQorQ29TdGFydE91dGxvb2tFeHByZXNzDQorRklzRGVmYXVsdE1haWxDb25maWdlZA0KK0ZJc0RlZmF1bHROZXdzQ29uZmlnZWQNCitJbXBvcnRNYWlsU3RvcmVUb0dVSUQNCitJbXBvcnROZXdzTGlzdFRvR1VJRA0KK1NldERlZmF1bHRNYWlsSGFuZGxlcg0KK1NldERlZmF1bHROZXdzSGFuZGxlcg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorTUFQSUFkZHJlc3MNCitNQVBJRGVsZXRlTWFpbA0KK01BUElEZXRhaWxzDQorTUFQSUZpbmROZXh0DQorTUFQSUZyZWVCdWZmZXINCitNQVBJTG9nb2ZmDQorTUFQSUxvZ29uDQorTUFQSVJlYWRNYWlsDQorTUFQSVJlc29sdmVOYW1lDQorTUFQSVNhdmVNYWlsDQorTUFQSVNlbmREb2N1bWVudHMNCitNQVBJU2VuZE1haWwNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNvZWFjY3QuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zb2VhY2N0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yOGJhMzZjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zb2VhY2N0LmRlZgpAQCAtMCwwICsxLDE3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TT0VBQ0NULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU09FQUNDVC5kbGwNCitFWFBPUlRTDQorQ3JlYXRlQWNjb3VudHNGcm9tRmlsZQ0KK0NyZWF0ZUFjY291bnRzRnJvbUZpbGVFeA0KK0dldERsbE1ham9yVmVyc2lvbg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorSHJDcmVhdGVBY2NvdW50TWFuYWdlcg0KK1ZhbGlkRW1haWxBZGRyZXNzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zb2VydDIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zb2VydDIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVjOThlYzYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNvZXJ0Mi5kZWYKQEAgLTAsMCArMSwxNjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNPRVJUMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNPRVJUMi5kbGwNCitFWFBPUlRTDQorQ3JlYXRlU3lzdGVtSGFuZGxlTmFtZQ0KK0NyeXB0QWxsb2NGdW5jDQorQ3J5cHRGcmVlRnVuYw0KK0ZJbml0aWFsaXplUmljaEVkaXQNCitHZXREbGxNYWpvclZlcnNpb24NCitHZXRIdG1sQ2hhcnNldA0KK0dldFJpY2hFZENsYXNzU3RyaW5nVw0KK0hyR2V0Q2VydEtleVVzYWdlDQorSHJWZXJpZnlDZXJ0RW5oS2V5VXNhZ2UNCitJVW5rbm93bkxpc3RfQ3JlYXRlSW5zdGFuY2UNCitJVm9pZFB0ckxpc3RfQ3JlYXRlSW5zdGFuY2UNCitJc0h0dHBVcmxBDQorU2V0Rm9udE9uUmljaEVkDQorQXBwZW5kVGVtcEZpbGVMaXN0DQorQXRod3NwcmludGZXDQorQnJvd3NlRm9yRm9sZGVyDQorQnJvd3NlRm9yRm9sZGVyVw0KK0J1aWxkTm90aWZpY2F0aW9uUGFja2FnZQ0KK0NjaEZpbGVUaW1lVG9EYXRlVGltZVN6DQorQ2NoRmlsZVRpbWVUb0RhdGVUaW1lVw0KK0NlbnRlckRpYWxvZw0KK0NoQ29udmVydEZyb21IZXgNCitDbGVhbnVwRmlsZU5hbWVJblBsYWNlQQ0KK0NsZWFudXBGaWxlTmFtZUluUGxhY2VXDQorQ2xlYW51cEdsb2JhbFRlbXBGaWxlcw0KK0NvcHlSZWdpc3RyeQ0KK0NyYWNrTm90aWZpY2F0aW9uUGFja2FnZQ0KK0NyZWF0ZURhdGFPYmplY3QNCitDcmVhdGVFbnVtRm9ybWF0RXRjDQorQ3JlYXRlSW5mb1dpbmRvdw0KK0NyZWF0ZUxvZ0ZpbGUNCitDcmVhdGVOb3RpZnkNCitDcmVhdGVTdHJlYW1PbkhGaWxlDQorQ3JlYXRlU3RyZWFtT25IRmlsZVcNCitDcmVhdGVUZW1wRmlsZQ0KK0NyZWF0ZVRlbXBGaWxlU3RyZWFtDQorRGVsZXRlVGVtcEZpbGUNCitEZWxldGVUZW1wRmlsZU9uU2h1dGRvd24NCitEZWxldGVUZW1wRmlsZU9uU2h1dGRvd25FeA0KK0RvSG90TWFpbFdpemFyZA0KK0ZCdWlsZFRlbXBQYXRoDQorRkJ1aWxkVGVtcFBhdGhXDQorRklzRW1wdHlBDQorRklzRW1wdHlXDQorRklzSFRNTEZpbGUNCitGSXNIVE1MRmlsZVcNCitGSXNTcGFjZUENCitGSXNTcGFjZVcNCitGSXNWYWxpZEZpbGVOYW1lQ2hhckENCitGSXNWYWxpZEZpbGVOYW1lQ2hhclcNCitGTWlzc2luZ0NlcnQNCitGcmVlVGVtcEZpbGVMaXN0DQorR2VuZXJhdGVVbmlxdWVGaWxlTmFtZQ0KK0dldEV4ZVBhdGgNCitIckJTVFJUb0xQU1oNCitIckJ5dGVUb1N0cmVhbQ0KK0hyQ2hlY2tUcmlkZW50TWVudQ0KK0hyQ29weUxvY2tCeXRlc1RvU3RyZWFtDQorSHJDb3B5U3RyZWFtDQorSHJDb3B5U3RyZWFtQ0INCitIckNvcHlTdHJlYW1DQkVuZE9uQ1JMRg0KK0hyQ29weVN0cmVhbVRvQnl0ZQ0KK0hyQ3JlYXRlUGhvbmVib29rRW50cnkNCitIckNyZWF0ZVRyaWRlbnRNZW51DQorSHJEZWNvZGVPYmplY3QNCitIckVkaXRQaG9uZWJvb2tFbnRyeQ0KK0hyRmlsbFJhc0NvbWJvDQorSHJGaW5kSW5ldFRpbWVab25lDQorSHJHZXRCb2R5RWxlbWVudA0KK0hyR2V0Q2VydGlmaWNhdGVQYXJhbQ0KK0hyR2V0RWxlbWVudEltcGwNCitIckdldE1zZ1BhcmFtDQorSHJHZXRTdHJlYW1Qb3MNCitIckdldFN0cmVhbVNpemUNCitIckdldFN0eWxlU2hlZXQNCitIcklTdHJlYW1Ub0JTVFINCitIcklTdHJlYW1XVG9CU1RSDQorSHJJbmRleE9mTW9udGgNCitIckluZGV4T2ZXZWVrDQorSHJJc1N0cmVhbVVuaWNvZGUNCitIckxQU1pDUFRvQlNUUg0KK0hyTFBTWlRvQlNUUg0KK0hyUmV3aW5kU3RyZWFtDQorSHJTYWZlR2V0U3RyZWFtU2l6ZQ0KK0hyU2V0RGlydHlGbGFnSW1wbA0KK0hyU3RyZWFtU2Vla0JlZ2luDQorSHJTdHJlYW1TZWVrQ3VyDQorSHJTdHJlYW1TZWVrRW5kDQorSHJTdHJlYW1TZWVrU2V0DQorSHJTdHJlYW1Ub0J5dGUNCitJRHJhd1RleHQNCitJc0RpZ2l0DQorSXNQbGF0Zm9ybVdpbk5UDQorSXNQcmludA0KK0lzVXBwZXINCitJc1ZhbGlkRmlsZUlmRmlsZVVybA0KK0lzVmFsaWRGaWxlSWZGaWxlVXJsVw0KK0xvYWRNYXBwZWRUb29sYmFyQml0bWFwDQorTWVzc2FnZUJveEluc3QNCitNZXNzYWdlQm94SW5zdFcNCitPcGVuRmlsZVN0cmVhbQ0KK09wZW5GaWxlU3RyZWFtU2hhcmUNCitPcGVuRmlsZVN0cmVhbVNoYXJlVw0KK09wZW5GaWxlU3RyZWFtVw0KK09wZW5GaWxlU3RyZWFtV2l0aEZsYWdzDQorT3BlbkZpbGVTdHJlYW1XaXRoRmxhZ3NXDQorUFNUQ3JlYXRlVHlwZVN1YlR5cGVfTm9VSQ0KK1BTVEZyZWVIYW5kbGUNCitQU1RHZXREYXRhDQorUFNUU2V0TmV3RGF0YQ0KK1BWRGVjb2RlT2JqZWN0DQorUFZHZXRDZXJ0aWZpY2F0ZVBhcmFtDQorUFZHZXRNc2dQYXJhbQ0KK1BzekFsbG9jQQ0KK1BzekFsbG9jVw0KK1BzekRheUZyb21JbmRleA0KK1BzekR1cEENCitQc3pEdXBMZW5BDQorUHN6RHVwVw0KK1BzekVzY2FwZU1lbnVTdHJpbmdBDQorUHN6RnJvbUFOU0lTdHJlYW1BDQorUHN6TW9udGhGcm9tSW5kZXgNCitQc3pTY2FuVG9DaGFyQQ0KK1BzelNjYW5Ub1doaXRlQQ0KK1BzelNraXBXaGl0ZUENCitQc3pTa2lwV2hpdGVXDQorUHN6VG9BTlNJDQorUHN6VG9Vbmljb2RlDQorUmVwbGFjZUNoYXJzDQorUmVwbGFjZUNoYXJzVw0KK1JpY2hlZGl0U3RyZWFtSW4NCitSaWNoZWRpdFN0cmVhbU91dA0KK1NldEludGxGb250DQorU2V0V2luZG93TG9uZ1B0ckF0aFcNCitTaGVsbFV0aWxfR2V0U3BlY2lhbEZvbGRlclBhdGgNCitTdHJDaHJFeEENCitTdHJUb1VpbnRBDQorU3RyVG9VaW50Vw0KK1N0clRva0V4DQorU3RyZWFtU3ViU3RyaW5nTWF0Y2gNCitTdHJpcENSTEYNCitTekdldENlcnRpZmljYXRlRW1haWxBZGRyZXNzDQorVWxTdHJpcFdoaXRlc3BhY2UNCitVbFN0cmlwV2hpdGVzcGFjZVcNCitVbmxvY1N0ckVxTlcNCitVcGRhdGVSZWJhckJhbmRDb2xvcnMNCitXcml0ZVN0cmVhbVRvRmlsZQ0KK1dyaXRlU3RyZWFtVG9GaWxlSGFuZGxlDQorV3JpdGVTdHJlYW1Ub0ZpbGVXDQorV3N6R2VuZXJhdGVOYW1lRnJvbUJsb2INCitfTVNHDQorZkdldEJyb3dzZXJVcmxFbmNvZGluZw0KK3N0cnRyaW0NCitzdHJ0cmltVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc29yY2wzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNvcmNsMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQzNzczZGIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNvcmNsMzIuZGVmCkBAIC0wLDAgKzEsNjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNPUkNMMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TT1JDTDMyLmRsbA0KK0VYUE9SVFMNCitTUUxBbGxvY0Nvbm5lY3QNCitTUUxBbGxvY0Vudg0KK1NRTEFsbG9jU3RtdA0KK1NRTEJpbmRDb2wNCitTUUxDYW5jZWwNCitTUUxDb2xBdHRyaWJ1dGVzDQorU1FMQ29ubmVjdA0KK1NRTERlc2NyaWJlQ29sDQorU1FMRGlzY29ubmVjdA0KK1NRTEVycm9yDQorU1FMRXhlY0RpcmVjdA0KK1NRTEV4ZWN1dGUNCitTUUxGZXRjaA0KK1NRTEZyZWVDb25uZWN0DQorU1FMRnJlZUVudg0KK1NRTEZyZWVTdG10DQorU1FMR2V0Q3Vyc29yTmFtZQ0KK1NRTE51bVJlc3VsdENvbHMNCitTUUxQcmVwYXJlDQorU1FMUm93Q291bnQNCitTUUxTZXRDdXJzb3JOYW1lDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitTUUxUcmFuc2FjdA0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitTUUxDb2x1bW5zDQorU1FMRHJpdmVyQ29ubmVjdA0KK1NRTEdldENvbm5lY3RPcHRpb24NCitTUUxHZXREYXRhDQorU1FMR2V0SW5mbw0KK1NRTEdldFN0bXRPcHRpb24NCitTUUxHZXRUeXBlSW5mbw0KK1NRTFBhcmFtRGF0YQ0KK1NRTFB1dERhdGENCitTUUxTZXRDb25uZWN0T3B0aW9uDQorU1FMU2V0U3RtdE9wdGlvbg0KK1NRTFNwZWNpYWxDb2x1bW5zDQorU1FMU3RhdGlzdGljcw0KK1NRTFRhYmxlcw0KK1NRTEJyb3dzZUNvbm5lY3QNCitTUUxEZXNjcmliZVBhcmFtDQorU1FMRXh0ZW5kZWRGZXRjaA0KK1NRTEZvcmVpZ25LZXlzDQorU1FMTW9yZVJlc3VsdHMNCitTUUxOYXRpdmVTcWwNCitTUUxOdW1QYXJhbXMNCitTUUxQcmltYXJ5S2V5cw0KK1NRTFByb2NlZHVyZUNvbHVtbnMNCitTUUxQcm9jZWR1cmVzDQorU1FMU2V0UG9zDQorU1FMU2V0U2Nyb2xsT3B0aW9ucw0KK1NRTEJpbmRQYXJhbWV0ZXINCitMb2FkQnlPcmRpbmFsDQorQ29uZmlnRFNODQorRGxsTWFpbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc3BhdGNoYS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNwYXRjaGEuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU0NzhkNmIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNwYXRjaGEuZGVmCkBAIC0wLDAgKzEsMjAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXNwYXRjaGEuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1zcGF0Y2hhLmRsbA0KK0VYUE9SVFMNCitBcHBseVBhdGNoVG9GaWxlQQ0KK0FwcGx5UGF0Y2hUb0ZpbGVCeUhhbmRsZXMNCitBcHBseVBhdGNoVG9GaWxlQnlIYW5kbGVzRXgNCitBcHBseVBhdGNoVG9GaWxlRXhBDQorQXBwbHlQYXRjaFRvRmlsZUV4Vw0KK0FwcGx5UGF0Y2hUb0ZpbGVXDQorR2V0RmlsZVBhdGNoU2lnbmF0dXJlQQ0KK0dldEZpbGVQYXRjaFNpZ25hdHVyZUJ5SGFuZGxlDQorR2V0RmlsZVBhdGNoU2lnbmF0dXJlVw0KK1Rlc3RBcHBseVBhdGNoVG9GaWxlQQ0KK1Rlc3RBcHBseVBhdGNoVG9GaWxlQnlIYW5kbGVzDQorVGVzdEFwcGx5UGF0Y2hUb0ZpbGVXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zcGJkZTQwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3BiZGU0MC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDUzNDQzZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3BiZGU0MC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc3BiZGU0MC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXNwYmRlNDAuRExMDQorRVhQT1JUUw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc3Btc25zdi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXNwbXNuc3YuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUxMzQyZWMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNwbXNuc3YuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXNwbXNwc24uRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1zcG1zcHNuLkRMTA0KK0VYUE9SVFMNCitTZXJ2aWNlTWFpbg0KK0RsbE1haW4NCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNwbXNwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3Btc3AuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg0OTY2MDEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNwbXNwLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1zUE1TUC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTXNQTVNQLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc3BvcnRzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3BvcnRzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYzU5NWNiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zcG9ydHMuZGVmCkBAIC0wLDAgKzEsMTkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNQT1JUUy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNQT1JUUy5ETEwNCitFWFBPUlRTDQorQ29tREJDbGFpbU5leHRGcmVlUG9ydA0KK0NvbURCQ2xhaW1Qb3J0DQorQ29tREJDbG9zZQ0KK0NvbURCR2V0Q3VycmVudFBvcnRVc2FnZQ0KK0NvbURCT3Blbg0KK0NvbURCUmVsZWFzZVBvcnQNCitDb21EQlJlc2l6ZURhdGFiYXNlDQorUGFyYWxsZWxQb3J0UHJvcFBhZ2VQcm92aWRlcg0KK1BvcnRzQ2xhc3NJbnN0YWxsZXINCitTZXJpYWxEaXNwbGF5QWR2YW5jZWRTZXR0aW5ncw0KK1NlcmlhbFBvcnRQcm9wUGFnZVByb3ZpZGVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zcjJjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3IyYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTViZTU2ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3IyYy5kZWYKQEAgLTAsMCArMSwxNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU1IyQy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNSMkMuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorVkRHZXRJQ3Vyc29yRnJvbUlSb3dzZXQNCitEbGxNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zcmF0aW5nLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3JhdGluZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjdhMWYzNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3JhdGluZy5kZWYKQEAgLTAsMCArMSwzNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU1JBVElORy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNSQVRJTkcuZGxsDQorRVhQT1JUUw0KK0NoYW5nZVN1cGVydmlzb3JQYXNzd29yZA0KK0NsaWNrZWRPblBSRg0KK0NsaWNrZWRPblJBVA0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorUmF0aW5nQWNjZXNzRGVuaWVkRGlhbG9nMg0KK1JhdGluZ0FjY2Vzc0RlbmllZERpYWxvZw0KK1JhdGluZ0FkZFByb3BlcnR5UGFnZXMNCitSYXRpbmdDaGVja1VzZXJBY2Nlc3MNCitSYXRpbmdDdXN0b21BZGRSYXRpbmdIZWxwZXINCitSYXRpbmdDdXN0b21BZGRSYXRpbmdTeXN0ZW0NCitSYXRpbmdDdXN0b21DcmFja0RhdGENCitSYXRpbmdDdXN0b21EZWxldGVDcmFja2VkRGF0YQ0KK1JhdGluZ0N1c3RvbUluaXQNCitSYXRpbmdDdXN0b21SZW1vdmVSYXRpbmdIZWxwZXINCitSYXRpbmdDdXN0b21TZXREZWZhdWx0QnVyZWF1DQorUmF0aW5nQ3VzdG9tU2V0VXNlck9wdGlvbnMNCitSYXRpbmdFbmFibGUNCitSYXRpbmdFbmFibGVkUXVlcnkNCitSYXRpbmdGcmVlRGV0YWlscw0KK1JhdGluZ0luaXQNCitSYXRpbmdPYnRhaW5DYW5jZWwNCitSYXRpbmdPYnRhaW5RdWVyeQ0KK1JhdGluZ1NldHVwVUkNCitWZXJpZnlTdXBlcnZpc29yUGFzc3dvcmQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNyZDJ4NDAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zcmQyeDQwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MzY0ODA4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zcmQyeDQwLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TUkQyWDQwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU1JEMlg0MC5kbGwNCitFWFBPUlRTDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zcmQzeDQwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3JkM3g0MC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmU1MWI0YgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3JkM3g0MC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU1JEM1g0MC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNSRDNYNDAuZGxsDQorRVhQT1JUUw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc3JsZTMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3JsZTMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MWQ2ZWIxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zcmxlMzIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU1JMRTMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU1JMRTMyLmRsbA0KK0VYUE9SVFMNCitEcml2ZXJQcm9jDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zc2FwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3NhcC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGE2MTJlNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3NhcC5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TU0FQLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU1NBUC5ETEwNCitFWFBPUlRTDQorU2FwQ3JlYXRlSW5zdGFuY2UNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNzY3AuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zc2NwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NmU2NzVhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zc2NwLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1zU2NwLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNc1NjcC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXNzaWduMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zc2lnbjMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iZmMwODFmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zc2lnbjMyLmRlZgpAQCAtMCwwICsxLDM4IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TU0lHTjMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU1NJR04zMi5kbGwNCitFWFBPUlRTDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorRnJlZUNyeXB0UHJvdkZyb21DZXJ0DQorR2V0Q3J5cHRQcm92RnJvbUNlcnQNCitQdmtGcmVlQ3J5cHRQcm92DQorUHZrR2V0Q3J5cHRQcm92DQorUHZrUHJpdmF0ZUtleUFjcXVpcmVDb250ZXh0DQorUHZrUHJpdmF0ZUtleUFjcXVpcmVDb250ZXh0QQ0KK1B2a1ByaXZhdGVLZXlBY3F1aXJlQ29udGV4dEZyb21NZW1vcnkNCitQdmtQcml2YXRlS2V5QWNxdWlyZUNvbnRleHRGcm9tTWVtb3J5QQ0KK1B2a1ByaXZhdGVLZXlMb2FkDQorUHZrUHJpdmF0ZUtleUxvYWRBDQorUHZrUHJpdmF0ZUtleUxvYWRGcm9tTWVtb3J5DQorUHZrUHJpdmF0ZUtleUxvYWRGcm9tTWVtb3J5QQ0KK1B2a1ByaXZhdGVLZXlSZWxlYXNlQ29udGV4dA0KK1B2a1ByaXZhdGVLZXlSZWxlYXNlQ29udGV4dEENCitQdmtQcml2YXRlS2V5U2F2ZQ0KK1B2a1ByaXZhdGVLZXlTYXZlQQ0KK1B2a1ByaXZhdGVLZXlTYXZlVG9NZW1vcnkNCitQdmtQcml2YXRlS2V5U2F2ZVRvTWVtb3J5QQ0KK1NpZ25FcnJvcg0KK1NpZ25lckFkZFRpbWVTdGFtcFJlc3BvbnNlDQorU2lnbmVyQWRkVGltZVN0YW1wUmVzcG9uc2VFeA0KK1NpZ25lckNyZWF0ZVRpbWVTdGFtcFJlcXVlc3QNCitTaWduZXJGcmVlU2lnbmVyQ29udGV4dA0KK1NpZ25lclNpZ24NCitTaWduZXJTaWduRXgNCitTaWduZXJUaW1lU3RhbXANCitTaWduZXJUaW1lU3RhbXBFeA0KK1NwY0dldENlcnRGcm9tS2V5DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zc2lwMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zc2lwMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAxM2ZkNmMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXNzaXAzMi5kZWYKQEAgLTAsMCArMSwxNyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU1NJUDMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU1NJUDMyLmRsbA0KK0VYUE9SVFMNCitDcnlwdFNJUEdldEluZm8NCitDcnlwdFNJUEdldFJlZ1dvcmtpbmdGbGFncw0KK0NyeXB0U0lQQ3JlYXRlSW5kaXJlY3REYXRhDQorQ3J5cHRTSVBHZXRTaWduZWREYXRhTXNnDQorQ3J5cHRTSVBQdXRTaWduZWREYXRhTXNnDQorQ3J5cHRTSVBSZW1vdmVTaWduZWREYXRhTXNnDQorQ3J5cHRTSVBWZXJpZnlJbmRpcmVjdERhdGENCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXN0YXNrLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3Rhc2suZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ1MjJhM2UKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXN0YXNrLmRlZgpAQCAtMCwwICsxLDM0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zdGFzay5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXN0YXNrLmRsbA0KK0VYUE9SVFMNCitDb252ZXJ0QXRKb2JzVG9UYXNrcw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorR2V0TmV0U2NoZWR1bGVBY2NvdW50SW5mb3JtYXRpb24NCitOZXRySm9iQWRkDQorTmV0ckpvYkRlbA0KK05ldHJKb2JFbnVtDQorTmV0ckpvYkdldEluZm8NCitTQUdldEFjY291bnRJbmZvcm1hdGlvbg0KK1NBR2V0TlNBY2NvdW50SW5mb3JtYXRpb24NCitTQVNldEFjY291bnRJbmZvcm1hdGlvbg0KK1NBU2V0TlNBY2NvdW50SW5mb3JtYXRpb24NCitTZXROZXRTY2hlZHVsZUFjY291bnRJbmZvcm1hdGlvbg0KK19Db252ZXJ0QXRKb2JzVG9UYXNrc0AwDQorX0RsbENhblVubG9hZE5vd0AwDQorX0RsbEdldENsYXNzT2JqZWN0QDEyDQorX0dldE5ldFNjaGVkdWxlQWNjb3VudEluZm9ybWF0aW9uQDEyDQorX05ldHJKb2JBZGRAMTINCitfTmV0ckpvYkRlbEAxMg0KK19OZXRySm9iRW51bUAyMA0KK19OZXRySm9iR2V0SW5mb0AxMg0KK19TQUdldEFjY291bnRJbmZvcm1hdGlvbkAxNg0KK19TQUdldE5TQWNjb3VudEluZm9ybWF0aW9uQDEyDQorX1NBU2V0QWNjb3VudEluZm9ybWF0aW9uQDIwDQorX1NBU2V0TlNBY2NvdW50SW5mb3JtYXRpb25AMTINCitfU2V0TmV0U2NoZWR1bGVBY2NvdW50SW5mb3JtYXRpb25AMTINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXN0ZXh0NDAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zdGV4dDQwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MTcxYmE5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zdGV4dDQwLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG1zdGV4dDQwLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc3RleHQ0MC5ETEwNCitFWFBPUlRTDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zdGltZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXN0aW1lLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ZWVkYWIzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zdGltZS5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU1RJTUUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TVElNRS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsRW51bUNsYXNzT2JqZWN0cw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zdGxzYXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3Rsc2FwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDJjYWQ3NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3Rsc2FwaS5kZWYKQEAgLTAsMCArMSw4NCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc3Rsc2FwaS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXN0bHNhcGkuZGxsDQorRVhQT1JUUw0KK1RMU0dldFZlcnNpb24NCitNSURMX3VzZXJfYWxsb2NhdGUNCitNSURMX3VzZXJfZnJlZQ0KK0VudW1lcmF0ZVRsc1NlcnZlcg0KK1RMU1NlbmRTZXJ2ZXJDZXJ0aWZpY2F0ZQ0KK1RMU0dldFNlcnZlck5hbWUNCitUTFNHZXRTZXJ2ZXJTY29wZQ0KK1RMU0lzc3VlUGxhdGZvcm1DaGFsbGVuZ2UNCitUTFNJc3N1ZU5ld0xpY2Vuc2UNCitUTFNVcGdyYWRlTGljZW5zZQ0KK1RMU0FsbG9jYXRlQ29uY3VycmVudExpY2Vuc2UNCitUTFNHZXRMYXN0RXJyb3INCitUTFNLZXlQYWNrRW51bUJlZ2luDQorVExTS2V5UGFja0VudW1OZXh0DQorVExTS2V5UGFja0VudW1FbmQNCitUTFNMaWNlbnNlRW51bUJlZ2luDQorVExTTGljZW5zZUVudW1OZXh0DQorVExTTGljZW5zZUVudW1FbmQNCitUTFNHZXRBdmFpbGFibGVMaWNlbnNlcw0KK1RMU0Nvbm5lY3RUb0xzU2VydmVyDQorVExTQ29ubmVjdFRvQW55THNTZXJ2ZXINCitUTFNEaXNjb25uZWN0RnJvbVNlcnZlcg0KK0ZpbmRFbnRlcnByaXNlU2VydmVyDQorR2V0QWxsRW50ZXJwcmlzZVNlcnZlcnMNCitUTFNJbml0DQorVExTR2V0VFNDZXJ0aWZpY2F0ZQ0KK0xzQ3NwX0dldFNlcnZlckRhdGENCitMc0NzcF9EZWNyeXB0RW52ZWxvcGVkRGF0YQ0KK0xzQ3NwX0VuY3J5cHRId2lkDQorTHNDc3BfU3RvcmVTZWNyZXQNCitMc0NzcF9SZXRyaWV2ZVNlY3JldA0KK1RMU1N0YXJ0RGlzY292ZXJ5DQorVExTU3RvcERpc2NvdmVyeQ0KK1RMU1NodXRkb3duDQorVExTRnJlZVRTQ2VydGlmaWNhdGUNCitUTFNJc3N1ZU5ld0xpY2Vuc2VFeA0KK1RMU1VwZ3JhZGVMaWNlbnNlRXgNCitUTFNDaGVja0xpY2Vuc2VNYXJrDQorVExTSXNzdWVOZXdMaWNlbnNlRXhFeA0KK1RMU0dldFNlcnZlck5hbWVFeA0KK1RMU0xpY2Vuc2VFbnVtTmV4dEV4DQorVExTR2V0U2VydmVyTmFtZUZpeGVkDQorVExTR2V0U2VydmVyU2NvcGVGaXhlZA0KK1RMU0dldExhc3RFcnJvckZpeGVkDQorR2V0TGljZW5zZVNlcnZlcnNGcm9tUmVnDQorVExTQ29ubmVjdFRvQW55THNTZXJ2ZXJOb0NlcnRJbnN0YWxsDQorUmVxdWVzdFRvVGxzUmVxdWVzdA0KK1RMU1JlcXVlc3RUZXJtU2VydkNlcnQNCitUTFNSZXRyaWV2ZVRlcm1TZXJ2Q2VydA0KK1RMU0luc3RhbGxDZXJ0aWZpY2F0ZQ0KK1RMU0dldFNlcnZlckNlcnRpZmljYXRlDQorVExTUmVnaXN0ZXJMaWNlbnNlS2V5UGFjaw0KK1RMU0dldExTUEtDUzEwQ2VydFJlcXVlc3QNCitUTFNLZXlQYWNrQWRkDQorVExTS2V5UGFja1NldFN0YXR1cw0KK1RMU1JldHVybkxpY2Vuc2UNCitUTFNBbm5vdW5jZVNlcnZlcg0KK1RMU0xvb2t1cFNlcnZlcg0KK1RMU0Fubm91bmNlTGljZW5zZVBhY2sNCitUTFNSZXR1cm5MaWNlbnNlZFByb2R1Y3QNCitUTFNUZWxlcGhvbmVSZWdpc3RlckxLUA0KK1RMU0NoYWxsZW5nZVNlcnZlcg0KK1RMU1Jlc3BvbnNlU2VydmVyQ2hhbGxlbmdlDQorVExTR2V0VGxzUHJpdmF0ZURhdGENCitUTFNUcmlnZ2VyUmVHZW5LZXkNCitUTFNHZXRTZXJ2ZXJQSUQNCitUTFNHZXRTZXJ2ZXJTUEsNCitUTFNEZXBvc2l0ZVNlcnZlclNQSw0KK1RMU0FsbG9jYXRlSW50ZXJuZXRMaWNlbnNlRXgNCitUTFNSZXR1cm5JbnRlcm5ldExpY2Vuc2VFeA0KK1RMU0lzQmV0YU5UU2VydmVyDQorVExTSXNMaWNlbnNlRW5mb3JjZUVuYWJsZQ0KK1RMU0luRG9tYWluDQorVExTTWFya0xpY2Vuc2UNCitUTFNHZXRTdXBwb3J0RmxhZ3MNCitUTFNMb29rdXBTZXJ2ZXJGaXhlZA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc3RzY2F4LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3RzY2F4LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZjUwZDM0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zdHNjYXguZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXN0c2NheC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXN0c2NheC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxHZXRUc2NDdGxWZXINCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXN1dGIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zdXRiLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMzVlODljCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zdXRiLmRlZgpAQCAtMCwwICsxLDE2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TVVRCLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU1VUQi5kbGwNCitFWFBPUlRTDQorQ2xvc2VQb3B1cFRpcGJhcg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorR2V0TGliVGxzDQorR2V0UG9wdXBUaXBiYXINCitTZXRSZWdpc3RlckxhbmdCYW5kDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zdjFfMC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXN2MV8wLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lMGM0ZTc2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zdjFfMC5kZWYKQEAgLTAsMCArMSwyNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc3YxXzAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG1zdjFfMC5kbGwNCitFWFBPUlRTDQorU3BJbml0aWFsaXplDQorU3BMc2FNb2RlSW5pdGlhbGl6ZQ0KK1NwVXNlck1vZGVJbml0aWFsaXplDQorTHNhQXBDYWxsUGFja2FnZQ0KK0xzYUFwQ2FsbFBhY2thZ2VQYXNzdGhyb3VnaA0KK0xzYUFwQ2FsbFBhY2thZ2VVbnRydXN0ZWQNCitMc2FBcEluaXRpYWxpemVQYWNrYWdlDQorTHNhQXBMb2dvblRlcm1pbmF0ZWQNCitMc2FBcExvZ29uVXNlckV4Mg0KK01zdjFfMEV4cG9ydFN1YkF1dGhlbnRpY2F0aW9uUm91dGluZQ0KK01zdjFfMFN1YkF1dGhlbnRpY2F0aW9uUHJlc2VudA0KK01zdkdldExvZ29uQXR0ZW1wdENvdW50DQorTXN2U2FtTG9nb2ZmDQorTXN2U2FtVmFsaWRhdGUNCitNc3ZWYWxpZGF0ZVRhcmdldA0KK1NwSW5zdGFuY2VJbml0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zdmNpcnQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zdmNpcnQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFlZTE4NjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXN2Y2lydC5kZWYKQEAgLTAsMCArMSw4OTUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXN2Y2lydC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXN2Y2lydC5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSW9zdHJlYW1faW5pdDo6SW9zdHJlYW1faW5pdChjbGFzcyBpb3MgJixpbnQpDQorPz8wSW9zdHJlYW1faW5pdEBAUUFFQEFBVmlvc0BASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSW9zdHJlYW1faW5pdDo6SW9zdHJlYW1faW5pdCh2b2lkKQ0KKz8/MElvc3RyZWFtX2luaXRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGV4Y2VwdGlvbjo6ZXhjZXB0aW9uKGNoYXIgY29uc3QgKiBjb25zdCAmKQ0KKz8/MGV4Y2VwdGlvbkBAUUFFQEFCUUJEQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBleGNlcHRpb246OmV4Y2VwdGlvbihjbGFzcyBleGNlcHRpb24gY29uc3QgJikNCis/PzBleGNlcHRpb25AQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgZXhjZXB0aW9uOjpleGNlcHRpb24odm9pZCkNCis/PzBleGNlcHRpb25AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGZpbGVidWY6OmZpbGVidWYoY2xhc3MgZmlsZWJ1ZiBjb25zdCAmKQ0KKz8/MGZpbGVidWZAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgZmlsZWJ1Zjo6ZmlsZWJ1ZihpbnQpDQorPz8wZmlsZWJ1ZkBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGZpbGVidWY6OmZpbGVidWYoaW50LGNoYXIgKixpbnQpDQorPz8wZmlsZWJ1ZkBAUUFFQEhQQURIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBmaWxlYnVmOjpmaWxlYnVmKHZvaWQpDQorPz8wZmlsZWJ1ZkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgZnN0cmVhbTo6ZnN0cmVhbShjbGFzcyBmc3RyZWFtIGNvbnN0ICYpDQorPz8wZnN0cmVhbUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBmc3RyZWFtOjpmc3RyZWFtKGludCkNCis/PzBmc3RyZWFtQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgZnN0cmVhbTo6ZnN0cmVhbShpbnQsY2hhciAqLGludCkNCis/PzBmc3RyZWFtQEBRQUVASFBBREhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGZzdHJlYW06OmZzdHJlYW0oY2hhciBjb25zdCAqLGludCxpbnQpDQorPz8wZnN0cmVhbUBAUUFFQFBCREhIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBmc3RyZWFtOjpmc3RyZWFtKHZvaWQpDQorPz8wZnN0cmVhbUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaWZzdHJlYW06Omlmc3RyZWFtKGNsYXNzIGlmc3RyZWFtIGNvbnN0ICYpDQorPz8waWZzdHJlYW1AQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaWZzdHJlYW06Omlmc3RyZWFtKGludCkNCis/PzBpZnN0cmVhbUBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGlmc3RyZWFtOjppZnN0cmVhbShpbnQsY2hhciAqLGludCkNCis/PzBpZnN0cmVhbUBAUUFFQEhQQURIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBpZnN0cmVhbTo6aWZzdHJlYW0oY2hhciBjb25zdCAqLGludCxpbnQpDQorPz8waWZzdHJlYW1AQFFBRUBQQkRISEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaWZzdHJlYW06Omlmc3RyZWFtKHZvaWQpDQorPz8waWZzdHJlYW1AQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIGlvczo6aW9zKGNsYXNzIGlvcyBjb25zdCAmKQ0KKz8/MGlvc0BASUFFQEFCVjBAQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBpb3M6Omlvcyh2b2lkKQ0KKz8/MGlvc0BASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaW9zOjppb3MoY2xhc3Mgc3RyZWFtYnVmICopDQorPz8waW9zQEBRQUVAUEFWc3RyZWFtYnVmQEBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIGlvc3RyZWFtOjppb3N0cmVhbShjbGFzcyBpb3N0cmVhbSBjb25zdCAmKQ0KKz8/MGlvc3RyZWFtQEBJQUVAQUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIGlvc3RyZWFtOjppb3N0cmVhbSh2b2lkKQ0KKz8/MGlvc3RyZWFtQEBJQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBpb3N0cmVhbTo6aW9zdHJlYW0oY2xhc3Mgc3RyZWFtYnVmICopDQorPz8waW9zdHJlYW1AQFFBRUBQQVZzdHJlYW1idWZAQEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgaXN0cmVhbTo6aXN0cmVhbShjbGFzcyBpc3RyZWFtIGNvbnN0ICYpDQorPz8waXN0cmVhbUBASUFFQEFCVjBAQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBpc3RyZWFtOjppc3RyZWFtKHZvaWQpDQorPz8waXN0cmVhbUBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaXN0cmVhbTo6aXN0cmVhbShjbGFzcyBzdHJlYW1idWYgKikNCis/PzBpc3RyZWFtQEBRQUVAUEFWc3RyZWFtYnVmQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGlzdHJlYW1fd2l0aGFzc2lnbjo6aXN0cmVhbV93aXRoYXNzaWduKGNsYXNzIGlzdHJlYW1fd2l0aGFzc2lnbiBjb25zdCAmKQ0KKz8/MGlzdHJlYW1fd2l0aGFzc2lnbkBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBpc3RyZWFtX3dpdGhhc3NpZ246OmlzdHJlYW1fd2l0aGFzc2lnbihjbGFzcyBzdHJlYW1idWYgKikNCis/PzBpc3RyZWFtX3dpdGhhc3NpZ25AQFFBRUBQQVZzdHJlYW1idWZAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaXN0cmVhbV93aXRoYXNzaWduOjppc3RyZWFtX3dpdGhhc3NpZ24odm9pZCkNCis/PzBpc3RyZWFtX3dpdGhhc3NpZ25AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGlzdHJzdHJlYW06OmlzdHJzdHJlYW0oY2xhc3MgaXN0cnN0cmVhbSBjb25zdCAmKQ0KKz8/MGlzdHJzdHJlYW1AQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaXN0cnN0cmVhbTo6aXN0cnN0cmVhbShjaGFyICopDQorPz8waXN0cnN0cmVhbUBAUUFFQFBBREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaXN0cnN0cmVhbTo6aXN0cnN0cmVhbShjaGFyICosaW50KQ0KKz8/MGlzdHJzdHJlYW1AQFFBRUBQQURIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBsb2dpY19lcnJvcjo6bG9naWNfZXJyb3IoY2hhciBjb25zdCAqIGNvbnN0ICYpDQorPz8wbG9naWNfZXJyb3JAQFFBRUBBQlFCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgbG9naWNfZXJyb3I6OmxvZ2ljX2Vycm9yKGNsYXNzIGxvZ2ljX2Vycm9yIGNvbnN0ICYpDQorPz8wbG9naWNfZXJyb3JAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgb2ZzdHJlYW06Om9mc3RyZWFtKGNsYXNzIG9mc3RyZWFtIGNvbnN0ICYpDQorPz8wb2ZzdHJlYW1AQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgb2ZzdHJlYW06Om9mc3RyZWFtKGludCkNCis/PzBvZnN0cmVhbUBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIG9mc3RyZWFtOjpvZnN0cmVhbShpbnQsY2hhciAqLGludCkNCis/PzBvZnN0cmVhbUBAUUFFQEhQQURIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBvZnN0cmVhbTo6b2ZzdHJlYW0oY2hhciBjb25zdCAqLGludCxpbnQpDQorPz8wb2ZzdHJlYW1AQFFBRUBQQkRISEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgb2ZzdHJlYW06Om9mc3RyZWFtKHZvaWQpDQorPz8wb2ZzdHJlYW1AQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIG9zdHJlYW06Om9zdHJlYW0oY2xhc3Mgb3N0cmVhbSBjb25zdCAmKQ0KKz8/MG9zdHJlYW1AQElBRUBBQlYwQEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgb3N0cmVhbTo6b3N0cmVhbSh2b2lkKQ0KKz8/MG9zdHJlYW1AQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIG9zdHJlYW06Om9zdHJlYW0oY2xhc3Mgc3RyZWFtYnVmICopDQorPz8wb3N0cmVhbUBAUUFFQFBBVnN0cmVhbWJ1ZkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBvc3RyZWFtX3dpdGhhc3NpZ246Om9zdHJlYW1fd2l0aGFzc2lnbihjbGFzcyBvc3RyZWFtX3dpdGhhc3NpZ24gY29uc3QgJikNCis/PzBvc3RyZWFtX3dpdGhhc3NpZ25AQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgb3N0cmVhbV93aXRoYXNzaWduOjpvc3RyZWFtX3dpdGhhc3NpZ24oY2xhc3Mgc3RyZWFtYnVmICopDQorPz8wb3N0cmVhbV93aXRoYXNzaWduQEBRQUVAUEFWc3RyZWFtYnVmQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIG9zdHJlYW1fd2l0aGFzc2lnbjo6b3N0cmVhbV93aXRoYXNzaWduKHZvaWQpDQorPz8wb3N0cmVhbV93aXRoYXNzaWduQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBvc3Ryc3RyZWFtOjpvc3Ryc3RyZWFtKGNsYXNzIG9zdHJzdHJlYW0gY29uc3QgJikNCis/PzBvc3Ryc3RyZWFtQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIG9zdHJzdHJlYW06Om9zdHJzdHJlYW0oY2hhciAqLGludCxpbnQpDQorPz8wb3N0cnN0cmVhbUBAUUFFQFBBREhIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBvc3Ryc3RyZWFtOjpvc3Ryc3RyZWFtKHZvaWQpDQorPz8wb3N0cnN0cmVhbUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkaW9idWY6OnN0ZGlvYnVmKGNsYXNzIHN0ZGlvYnVmIGNvbnN0ICYpDQorPz8wc3RkaW9idWZAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkaW9idWY6OnN0ZGlvYnVmKHN0cnVjdCBfaW9idWYgKikNCis/PzBzdGRpb2J1ZkBAUUFFQFBBVV9pb2J1ZkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGRpb3N0cmVhbTo6c3RkaW9zdHJlYW0oY2xhc3Mgc3RkaW9zdHJlYW0gY29uc3QgJikNCis/PzBzdGRpb3N0cmVhbUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGRpb3N0cmVhbTo6c3RkaW9zdHJlYW0oc3RydWN0IF9pb2J1ZiAqKQ0KKz8/MHN0ZGlvc3RyZWFtQEBRQUVAUEFVX2lvYnVmQEBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c3RyZWFtYnVmKGNoYXIgKixpbnQpDQorPz8wc3RyZWFtYnVmQEBJQUVAUEFESEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzdHJlYW1idWYodm9pZCkNCis/PzBzdHJlYW1idWZAQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c3RyZWFtYnVmKGNsYXNzIHN0cmVhbWJ1ZiBjb25zdCAmKQ0KKz8/MHN0cmVhbWJ1ZkBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdHJzdHJlYW06OnN0cnN0cmVhbShjbGFzcyBzdHJzdHJlYW0gY29uc3QgJikNCis/PzBzdHJzdHJlYW1AQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3Ryc3RyZWFtOjpzdHJzdHJlYW0oY2hhciAqLGludCxpbnQpDQorPz8wc3Ryc3RyZWFtQEBRQUVAUEFESEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0cnN0cmVhbTo6c3Ryc3RyZWFtKHZvaWQpDQorPz8wc3Ryc3RyZWFtQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdHJzdHJlYW1idWY6OnN0cnN0cmVhbWJ1ZihjbGFzcyBzdHJzdHJlYW1idWYgY29uc3QgJikNCis/PzBzdHJzdHJlYW1idWZAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3Ryc3RyZWFtYnVmOjpzdHJzdHJlYW1idWYoaW50KQ0KKz8/MHN0cnN0cmVhbWJ1ZkBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0cnN0cmVhbWJ1Zjo6c3Ryc3RyZWFtYnVmKHZvaWQgKiAoX19jZGVjbCopKGxvbmcpLHZvaWQgKF9fY2RlY2wqKSh2b2lkICopKQ0KKz8/MHN0cnN0cmVhbWJ1ZkBAUUFFQFA2QVBBWEpAWlA2QVhQQVhAWkBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3Ryc3RyZWFtYnVmOjpzdHJzdHJlYW1idWYoY2hhciAqLGludCxjaGFyICopDQorPz8wc3Ryc3RyZWFtYnVmQEBRQUVAUEFESDBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0cnN0cmVhbWJ1Zjo6c3Ryc3RyZWFtYnVmKHVuc2lnbmVkIGNoYXIgKixpbnQsdW5zaWduZWQgY2hhciAqKQ0KKz8/MHN0cnN0cmVhbWJ1ZkBAUUFFQFBBRUgwQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdHJzdHJlYW1idWY6OnN0cnN0cmVhbWJ1Zih2b2lkKQ0KKz8/MHN0cnN0cmVhbWJ1ZkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSW9zdHJlYW1faW5pdDo6fklvc3RyZWFtX2luaXQodm9pZCkNCis/PzFJb3N0cmVhbV9pbml0QEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIGV4Y2VwdGlvbjo6fmV4Y2VwdGlvbih2b2lkKQ0KKz8/MWV4Y2VwdGlvbkBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBmaWxlYnVmOjp+ZmlsZWJ1Zih2b2lkKQ0KKz8/MWZpbGVidWZAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgZnN0cmVhbTo6fmZzdHJlYW0odm9pZCkNCis/PzFmc3RyZWFtQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIGlmc3RyZWFtOjp+aWZzdHJlYW0odm9pZCkNCis/PzFpZnN0cmVhbUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBpb3M6On5pb3Modm9pZCkNCis/PzFpb3NAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgaW9zdHJlYW06On5pb3N0cmVhbSh2b2lkKQ0KKz8/MWlvc3RyZWFtQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIGlzdHJlYW06On5pc3RyZWFtKHZvaWQpDQorPz8xaXN0cmVhbUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBpc3RyZWFtX3dpdGhhc3NpZ246On5pc3RyZWFtX3dpdGhhc3NpZ24odm9pZCkNCis/PzFpc3RyZWFtX3dpdGhhc3NpZ25AQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgaXN0cnN0cmVhbTo6fmlzdHJzdHJlYW0odm9pZCkNCis/PzFpc3Ryc3RyZWFtQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIGxvZ2ljX2Vycm9yOjp+bG9naWNfZXJyb3Iodm9pZCkNCis/PzFsb2dpY19lcnJvckBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBvZnN0cmVhbTo6fm9mc3RyZWFtKHZvaWQpDQorPz8xb2ZzdHJlYW1AQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgb3N0cmVhbTo6fm9zdHJlYW0odm9pZCkNCis/PzFvc3RyZWFtQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIG9zdHJlYW1fd2l0aGFzc2lnbjo6fm9zdHJlYW1fd2l0aGFzc2lnbih2b2lkKQ0KKz8/MW9zdHJlYW1fd2l0aGFzc2lnbkBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBvc3Ryc3RyZWFtOjp+b3N0cnN0cmVhbSh2b2lkKQ0KKz8/MW9zdHJzdHJlYW1AQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkaW9idWY6On5zdGRpb2J1Zih2b2lkKQ0KKz8/MXN0ZGlvYnVmQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZGlvc3RyZWFtOjp+c3RkaW9zdHJlYW0odm9pZCkNCis/PzFzdGRpb3N0cmVhbUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdHJlYW1idWY6On5zdHJlYW1idWYodm9pZCkNCis/PzFzdHJlYW1idWZAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3Ryc3RyZWFtOjp+c3Ryc3RyZWFtKHZvaWQpDQorPz8xc3Ryc3RyZWFtQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0cnN0cmVhbWJ1Zjo6fnN0cnN0cmVhbWJ1Zih2b2lkKQ0KKz8/MXN0cnN0cmVhbWJ1ZkBAVUFFQFhaDQorOyBwdWJsaWM6IGNsYXNzIElvc3RyZWFtX2luaXQgJiBfX3RoaXNjYWxsIElvc3RyZWFtX2luaXQ6Om9wZXJhdG9yPShjbGFzcyBJb3N0cmVhbV9pbml0IGNvbnN0ICYpDQorPz80SW9zdHJlYW1faW5pdEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIGV4Y2VwdGlvbiAmIF9fdGhpc2NhbGwgZXhjZXB0aW9uOjpvcGVyYXRvcj0oY2xhc3MgZXhjZXB0aW9uIGNvbnN0ICYpDQorPz80ZXhjZXB0aW9uQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgZmlsZWJ1ZiAmIF9fdGhpc2NhbGwgZmlsZWJ1Zjo6b3BlcmF0b3I9KGNsYXNzIGZpbGVidWYgY29uc3QgJikNCis/PzRmaWxlYnVmQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgZnN0cmVhbSAmIF9fdGhpc2NhbGwgZnN0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIGZzdHJlYW0gJikNCis/PzRmc3RyZWFtQEBRQUVBQVYwQEFBVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgaWZzdHJlYW0gJiBfX3RoaXNjYWxsIGlmc3RyZWFtOjpvcGVyYXRvcj0oY2xhc3MgaWZzdHJlYW0gY29uc3QgJikNCis/PzRpZnN0cmVhbUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIGlvcyAmIF9fdGhpc2NhbGwgaW9zOjpvcGVyYXRvcj0oY2xhc3MgaW9zIGNvbnN0ICYpDQorPz80aW9zQEBJQUVBQVYwQEFCVjBAQFoNCis7IHByb3RlY3RlZDogY2xhc3MgaW9zdHJlYW0gJiBfX3RoaXNjYWxsIGlvc3RyZWFtOjpvcGVyYXRvcj0oY2xhc3MgaW9zdHJlYW0gJikNCis/PzRpb3N0cmVhbUBASUFFQUFWMEBBQVYwQEBaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIGlvc3RyZWFtICYgX190aGlzY2FsbCBpb3N0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIHN0cmVhbWJ1ZiAqKQ0KKz8/NGlvc3RyZWFtQEBJQUVBQVYwQFBBVnN0cmVhbWJ1ZkBAQFoNCis7IHByb3RlY3RlZDogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIGlzdHJlYW0gY29uc3QgJikNCis/PzRpc3RyZWFtQEBJQUVBQVYwQEFCVjBAQFoNCis7IHByb3RlY3RlZDogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIHN0cmVhbWJ1ZiAqKQ0KKz8/NGlzdHJlYW1AQElBRUFBVjBAUEFWc3RyZWFtYnVmQEBAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtX3dpdGhhc3NpZ24gJiBfX3RoaXNjYWxsIGlzdHJlYW1fd2l0aGFzc2lnbjo6b3BlcmF0b3I9KGNsYXNzIGlzdHJlYW1fd2l0aGFzc2lnbiBjb25zdCAmKQ0KKz8/NGlzdHJlYW1fd2l0aGFzc2lnbkBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW1fd2l0aGFzc2lnbjo6b3BlcmF0b3I9KGNsYXNzIGlzdHJlYW0gY29uc3QgJikNCis/PzRpc3RyZWFtX3dpdGhhc3NpZ25AQFFBRUFBVmlzdHJlYW1AQEFCVjFAQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbV93aXRoYXNzaWduOjpvcGVyYXRvcj0oY2xhc3Mgc3RyZWFtYnVmICopDQorPz80aXN0cmVhbV93aXRoYXNzaWduQEBRQUVBQVZpc3RyZWFtQEBQQVZzdHJlYW1idWZAQEBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJzdHJlYW06Om9wZXJhdG9yPShjbGFzcyBpc3Ryc3RyZWFtIGNvbnN0ICYpDQorPz80aXN0cnN0cmVhbUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIGxvZ2ljX2Vycm9yICYgX190aGlzY2FsbCBsb2dpY19lcnJvcjo6b3BlcmF0b3I9KGNsYXNzIGxvZ2ljX2Vycm9yIGNvbnN0ICYpDQorPz80bG9naWNfZXJyb3JAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBvZnN0cmVhbSAmIF9fdGhpc2NhbGwgb2ZzdHJlYW06Om9wZXJhdG9yPShjbGFzcyBvZnN0cmVhbSBjb25zdCAmKQ0KKz8/NG9mc3RyZWFtQEBRQUVBQVYwQEFCVjBAQFoNCis7IHByb3RlY3RlZDogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIG9zdHJlYW0gY29uc3QgJikNCis/PzRvc3RyZWFtQEBJQUVBQVYwQEFCVjBAQFoNCis7IHByb3RlY3RlZDogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIHN0cmVhbWJ1ZiAqKQ0KKz8/NG9zdHJlYW1AQElBRUFBVjBAUEFWc3RyZWFtYnVmQEBAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtX3dpdGhhc3NpZ24gJiBfX3RoaXNjYWxsIG9zdHJlYW1fd2l0aGFzc2lnbjo6b3BlcmF0b3I9KGNsYXNzIG9zdHJlYW1fd2l0aGFzc2lnbiBjb25zdCAmKQ0KKz8/NG9zdHJlYW1fd2l0aGFzc2lnbkBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW1fd2l0aGFzc2lnbjo6b3BlcmF0b3I9KGNsYXNzIG9zdHJlYW0gY29uc3QgJikNCis/PzRvc3RyZWFtX3dpdGhhc3NpZ25AQFFBRUFBVm9zdHJlYW1AQEFCVjFAQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbV93aXRoYXNzaWduOjpvcGVyYXRvcj0oY2xhc3Mgc3RyZWFtYnVmICopDQorPz80b3N0cmVhbV93aXRoYXNzaWduQEBRQUVBQVZvc3RyZWFtQEBQQVZzdHJlYW1idWZAQEBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJzdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJzdHJlYW06Om9wZXJhdG9yPShjbGFzcyBvc3Ryc3RyZWFtIGNvbnN0ICYpDQorPz80b3N0cnN0cmVhbUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZGlvYnVmICYgX190aGlzY2FsbCBzdGRpb2J1Zjo6b3BlcmF0b3I9KGNsYXNzIHN0ZGlvYnVmIGNvbnN0ICYpDQorPz80c3RkaW9idWZAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGRpb3N0cmVhbSAmIF9fdGhpc2NhbGwgc3RkaW9zdHJlYW06Om9wZXJhdG9yPShjbGFzcyBzdGRpb3N0cmVhbSAmKQ0KKz8/NHN0ZGlvc3RyZWFtQEBRQUVBQVYwQEFBVjBAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RyZWFtYnVmICYgX190aGlzY2FsbCBzdHJlYW1idWY6Om9wZXJhdG9yPShjbGFzcyBzdHJlYW1idWYgY29uc3QgJikNCis/PzRzdHJlYW1idWZAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdHJzdHJlYW0gJiBfX3RoaXNjYWxsIHN0cnN0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIHN0cnN0cmVhbSAmKQ0KKz8/NHN0cnN0cmVhbUBAUUFFQUFWMEBBQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0cnN0cmVhbWJ1ZiAmIF9fdGhpc2NhbGwgc3Ryc3RyZWFtYnVmOjpvcGVyYXRvcj0oY2xhc3Mgc3Ryc3RyZWFtYnVmIGNvbnN0ICYpDQorPz80c3Ryc3RyZWFtYnVmQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I+PihzaWduZWQgY2hhciAmKQ0KKz8/NWlzdHJlYW1AQFFBRUFBVjBAQUFDQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I+PihjaGFyICYpDQorPz81aXN0cmVhbUBAUUFFQUFWMEBBQURAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj4+KHVuc2lnbmVkIGNoYXIgJikNCis/PzVpc3RyZWFtQEBRQUVBQVYwQEFBRUBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Om9wZXJhdG9yPj4oc2hvcnQgJikNCis/PzVpc3RyZWFtQEBRQUVBQVYwQEFBRkBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Om9wZXJhdG9yPj4odW5zaWduZWQgc2hvcnQgJikNCis/PzVpc3RyZWFtQEBRQUVBQVYwQEFBR0BaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Om9wZXJhdG9yPj4oaW50ICYpDQorPz81aXN0cmVhbUBAUUFFQUFWMEBBQUhAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj4+KHVuc2lnbmVkIGludCAmKQ0KKz8/NWlzdHJlYW1AQFFBRUFBVjBAQUFJQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I+Pihsb25nICYpDQorPz81aXN0cmVhbUBAUUFFQUFWMEBBQUpAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj4+KHVuc2lnbmVkIGxvbmcgJikNCis/PzVpc3RyZWFtQEBRQUVBQVYwQEFBS0BaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Om9wZXJhdG9yPj4oZmxvYXQgJikNCis/PzVpc3RyZWFtQEBRQUVBQVYwQEFBTUBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Om9wZXJhdG9yPj4oZG91YmxlICYpDQorPz81aXN0cmVhbUBAUUFFQUFWMEBBQU5AWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj4+KGxvbmcgZG91YmxlICYpDQorPz81aXN0cmVhbUBAUUFFQUFWMEBBQU9AWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj4+KGNsYXNzIGlzdHJlYW0gJiAoX19jZGVjbCopKGNsYXNzIGlzdHJlYW0gJikpDQorPz81aXN0cmVhbUBAUUFFQUFWMEBQNkFBQVYwQEFBVjBAQFpAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj4+KGNsYXNzIGlvcyAmIChfX2NkZWNsKikoY2xhc3MgaW9zICYpKQ0KKz8/NWlzdHJlYW1AQFFBRUFBVjBAUDZBQUFWaW9zQEBBQVYxQEBaQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I+PihzaWduZWQgY2hhciAqKQ0KKz8/NWlzdHJlYW1AQFFBRUFBVjBAUEFDQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I+PihjaGFyICopDQorPz81aXN0cmVhbUBAUUFFQUFWMEBQQURAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj4+KHVuc2lnbmVkIGNoYXIgKikNCis/PzVpc3RyZWFtQEBRQUVBQVYwQFBBRUBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Om9wZXJhdG9yPj4oY2xhc3Mgc3RyZWFtYnVmICopDQorPz81aXN0cmVhbUBAUUFFQUFWMEBQQVZzdHJlYW1idWZAQEBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwoc2lnbmVkIGNoYXIpDQorPz82b3N0cmVhbUBAUUFFQUFWMEBDQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PChjaGFyKQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBAREBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwodW5zaWduZWQgY2hhcikNCis/PzZvc3RyZWFtQEBRQUVBQVYwQEVAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KHNob3J0KQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBARkBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwodW5zaWduZWQgc2hvcnQpDQorPz82b3N0cmVhbUBAUUFFQUFWMEBHQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PChpbnQpDQorPz82b3N0cmVhbUBAUUFFQUFWMEBIQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PCh1bnNpZ25lZCBpbnQpDQorPz82b3N0cmVhbUBAUUFFQUFWMEBJQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PChsb25nKQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBASkBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwodW5zaWduZWQgbG9uZykNCis/PzZvc3RyZWFtQEBRQUVBQVYwQEtAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KGZsb2F0KQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBATUBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwoZG91YmxlKQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBATkBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwobG9uZyBkb3VibGUpDQorPz82b3N0cmVhbUBAUUFFQUFWMEBPQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PChjbGFzcyBvc3RyZWFtICYgKF9fY2RlY2wqKShjbGFzcyBvc3RyZWFtICYpKQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBAUDZBQUFWMEBBQVYwQEBaQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PChjbGFzcyBpb3MgJiAoX19jZGVjbCopKGNsYXNzIGlvcyAmKSkNCis/PzZvc3RyZWFtQEBRQUVBQVYwQFA2QUFBVmlvc0BAQUFWMUBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwoY2xhc3Mgc3RyZWFtYnVmICopDQorPz82b3N0cmVhbUBAUUFFQUFWMEBQQVZzdHJlYW1idWZAQEBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwoc2lnbmVkIGNoYXIgY29uc3QgKikNCis/PzZvc3RyZWFtQEBRQUVBQVYwQFBCQ0BaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwoY2hhciBjb25zdCAqKQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBAUEJEQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PCh1bnNpZ25lZCBjaGFyIGNvbnN0ICopDQorPz82b3N0cmVhbUBAUUFFQUFWMEBQQkVAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KHZvaWQgY29uc3QgKikNCis/PzZvc3RyZWFtQEBRQUVBQVYwQFBCWEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlvczo6b3BlcmF0b3IhKHZvaWQpY29uc3QgDQorPz83aW9zQEBRQkVIWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBpb3M6Om9wZXJhdG9yIHZvaWQgKih2b2lkKWNvbnN0IA0KKz8/Qmlvc0BAUUJFUEFYWFoNCis7IGNvbnN0ICBleGNlcHRpb246OmB2ZnRhYmxlJw0KKz8/XzdleGNlcHRpb25AQDZCQA0KKzsgY29uc3QgIGZpbGVidWY6OmB2ZnRhYmxlJw0KKz8/XzdmaWxlYnVmQEA2QkANCis7IGNvbnN0ICBmc3RyZWFtOjpgdmZ0YWJsZScNCis/P183ZnN0cmVhbUBANkJADQorOyBjb25zdCAgaWZzdHJlYW06OmB2ZnRhYmxlJw0KKz8/XzdpZnN0cmVhbUBANkJADQorOyBjb25zdCAgaW9zOjpgdmZ0YWJsZScNCis/P183aW9zQEA2QkANCis7IGNvbnN0ICBpb3N0cmVhbTo6YHZmdGFibGUnDQorPz9fN2lvc3RyZWFtQEA2QkANCis7IGNvbnN0ICBpc3RyZWFtOjpgdmZ0YWJsZScNCis/P183aXN0cmVhbUBANkJADQorOyBjb25zdCAgaXN0cmVhbV93aXRoYXNzaWduOjpgdmZ0YWJsZScNCis/P183aXN0cmVhbV93aXRoYXNzaWduQEA2QkANCis7IGNvbnN0ICBpc3Ryc3RyZWFtOjpgdmZ0YWJsZScNCis/P183aXN0cnN0cmVhbUBANkJADQorOyBjb25zdCAgbG9naWNfZXJyb3I6OmB2ZnRhYmxlJw0KKz8/Xzdsb2dpY19lcnJvckBANkJADQorOyBjb25zdCAgb2ZzdHJlYW06OmB2ZnRhYmxlJw0KKz8/XzdvZnN0cmVhbUBANkJADQorOyBjb25zdCAgb3N0cmVhbTo6YHZmdGFibGUnDQorPz9fN29zdHJlYW1AQDZCQA0KKzsgY29uc3QgIG9zdHJlYW1fd2l0aGFzc2lnbjo6YHZmdGFibGUnDQorPz9fN29zdHJlYW1fd2l0aGFzc2lnbkBANkJADQorOyBjb25zdCAgb3N0cnN0cmVhbTo6YHZmdGFibGUnDQorPz9fN29zdHJzdHJlYW1AQDZCQA0KKzsgY29uc3QgIHN0ZGlvYnVmOjpgdmZ0YWJsZScNCis/P183c3RkaW9idWZAQDZCQA0KKzsgY29uc3QgIHN0ZGlvc3RyZWFtOjpgdmZ0YWJsZScNCis/P183c3RkaW9zdHJlYW1AQDZCQA0KKzsgY29uc3QgIHN0cmVhbWJ1Zjo6YHZmdGFibGUnDQorPz9fN3N0cmVhbWJ1ZkBANkJADQorOyBjb25zdCAgc3Ryc3RyZWFtOjpgdmZ0YWJsZScNCis/P183c3Ryc3RyZWFtQEA2QkANCis7IGNvbnN0ICBzdHJzdHJlYW1idWY6OmB2ZnRhYmxlJw0KKz8/XzdzdHJzdHJlYW1idWZAQDZCQA0KKzsgY29uc3QgIGZzdHJlYW06OmB2YnRhYmxlJ3tmb3IgYGlzdHJlYW0nfQ0KKz8/Xzhmc3RyZWFtQEA3QmlzdHJlYW1AQEANCis7IGNvbnN0ICBmc3RyZWFtOjpgdmJ0YWJsZSd7Zm9yIGBvc3RyZWFtJ30NCis/P184ZnN0cmVhbUBAN0Jvc3RyZWFtQEBADQorOyBjb25zdCAgaWZzdHJlYW06OmB2YnRhYmxlJw0KKz8/XzhpZnN0cmVhbUBAN0JADQorOyBjb25zdCAgaW9zdHJlYW06OmB2YnRhYmxlJ3tmb3IgYGlzdHJlYW0nfQ0KKz8/Xzhpb3N0cmVhbUBAN0Jpc3RyZWFtQEBADQorOyBjb25zdCAgaW9zdHJlYW06OmB2YnRhYmxlJ3tmb3IgYG9zdHJlYW0nfQ0KKz8/Xzhpb3N0cmVhbUBAN0Jvc3RyZWFtQEBADQorOyBjb25zdCAgaXN0cmVhbTo6YHZidGFibGUnDQorPz9fOGlzdHJlYW1AQDdCQA0KKzsgY29uc3QgIGlzdHJlYW1fd2l0aGFzc2lnbjo6YHZidGFibGUnDQorPz9fOGlzdHJlYW1fd2l0aGFzc2lnbkBAN0JADQorOyBjb25zdCAgaXN0cnN0cmVhbTo6YHZidGFibGUnDQorPz9fOGlzdHJzdHJlYW1AQDdCQA0KKzsgY29uc3QgIG9mc3RyZWFtOjpgdmJ0YWJsZScNCis/P184b2ZzdHJlYW1AQDdCQA0KKzsgY29uc3QgIG9zdHJlYW06OmB2YnRhYmxlJw0KKz8/Xzhvc3RyZWFtQEA3QkANCis7IGNvbnN0ICBvc3RyZWFtX3dpdGhhc3NpZ246OmB2YnRhYmxlJw0KKz8/Xzhvc3RyZWFtX3dpdGhhc3NpZ25AQDdCQA0KKzsgY29uc3QgIG9zdHJzdHJlYW06OmB2YnRhYmxlJw0KKz8/Xzhvc3Ryc3RyZWFtQEA3QkANCis7IGNvbnN0ICBzdGRpb3N0cmVhbTo6YHZidGFibGUne2ZvciBgaXN0cmVhbSd9DQorPz9fOHN0ZGlvc3RyZWFtQEA3QmlzdHJlYW1AQEANCis7IGNvbnN0ICBzdGRpb3N0cmVhbTo6YHZidGFibGUne2ZvciBgb3N0cmVhbSd9DQorPz9fOHN0ZGlvc3RyZWFtQEA3Qm9zdHJlYW1AQEANCis7IGNvbnN0ICBzdHJzdHJlYW06OmB2YnRhYmxlJ3tmb3IgYGlzdHJlYW0nfQ0KKz8/XzhzdHJzdHJlYW1AQDdCaXN0cmVhbUBAQA0KKzsgY29uc3QgIHN0cnN0cmVhbTo6YHZidGFibGUne2ZvciBgb3N0cmVhbSd9DQorPz9fOHN0cnN0cmVhbUBAN0Jvc3RyZWFtQEBADQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBmc3RyZWFtOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EZnN0cmVhbUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBpZnN0cmVhbTo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRGlmc3RyZWFtQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIGlvc3RyZWFtOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EaW9zdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgaXN0cmVhbTo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRGlzdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgaXN0cmVhbV93aXRoYXNzaWduOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EaXN0cmVhbV93aXRoYXNzaWduQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIGlzdHJzdHJlYW06OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0Rpc3Ryc3RyZWFtQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIG9mc3RyZWFtOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19Eb2ZzdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgb3N0cmVhbTo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRG9zdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgb3N0cmVhbV93aXRoYXNzaWduOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19Eb3N0cmVhbV93aXRoYXNzaWduQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIG9zdHJzdHJlYW06OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0Rvc3Ryc3RyZWFtQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZGlvc3RyZWFtOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19Ec3RkaW9zdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3Ryc3RyZWFtOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19Ec3Ryc3RyZWFtQEBRQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBleGNlcHRpb246OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0VleGNlcHRpb25AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGZpbGVidWY6OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0VmaWxlYnVmQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBmc3RyZWFtOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19FZnN0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgaWZzdHJlYW06OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0VpZnN0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgaW9zOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19FaW9zQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBpb3N0cmVhbTo6YHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fRWlvc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBpc3RyZWFtOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19FaXN0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgaXN0cmVhbV93aXRoYXNzaWduOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19FaXN0cmVhbV93aXRoYXNzaWduQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBpc3Ryc3RyZWFtOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19FaXN0cnN0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgbG9naWNfZXJyb3I6OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0Vsb2dpY19lcnJvckBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgb2ZzdHJlYW06OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0VvZnN0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgb3N0cmVhbTo6YHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fRW9zdHJlYW1AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIG9zdHJlYW1fd2l0aGFzc2lnbjo6YHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fRW9zdHJlYW1fd2l0aGFzc2lnbkBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgb3N0cnN0cmVhbTo6YHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fRW9zdHJzdHJlYW1AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIHN0ZGlvYnVmOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Fc3RkaW9idWZAQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIHN0ZGlvc3RyZWFtOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Fc3RkaW9zdHJlYW1AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6YHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fRXN0cmVhbWJ1ZkBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgc3Ryc3RyZWFtOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Fc3Ryc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBzdHJzdHJlYW1idWY6OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0VzdHJzdHJlYW1idWZAQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGV4Y2VwdGlvbjo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR2V4Y2VwdGlvbkBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgZmlsZWJ1Zjo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR2ZpbGVidWZAQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGZzdHJlYW06OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dmc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBpZnN0cmVhbTo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR2lmc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBpb3M6OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dpb3NAQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGlvc3RyZWFtOjpgc2NhbGFyIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19HaW9zdHJlYW1AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGlzdHJlYW06OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dpc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBpc3RyZWFtX3dpdGhhc3NpZ246OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dpc3RyZWFtX3dpdGhhc3NpZ25AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGlzdHJzdHJlYW06OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dpc3Ryc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBsb2dpY19lcnJvcjo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR2xvZ2ljX2Vycm9yQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBvZnN0cmVhbTo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR29mc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBvc3RyZWFtOjpgc2NhbGFyIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Hb3N0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgb3N0cmVhbV93aXRoYXNzaWduOjpgc2NhbGFyIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Hb3N0cmVhbV93aXRoYXNzaWduQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBvc3Ryc3RyZWFtOjpgc2NhbGFyIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Hb3N0cnN0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgc3RkaW9idWY6OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dzdGRpb2J1ZkBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgc3RkaW9zdHJlYW06OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dzdGRpb3N0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpgc2NhbGFyIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Hc3RyZWFtYnVmQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBzdHJzdHJlYW06OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dzdHJzdHJlYW1AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIHN0cnN0cmVhbWJ1Zjo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR3N0cnN0cmVhbWJ1ZkBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGNvbnN0ICBpb3M6OmFkanVzdGZpZWxkDQorP2FkanVzdGZpZWxkQGlvc0BAMkpCDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6YWxsb2NhdGUodm9pZCkNCis/YWxsb2NhdGVAc3RyZWFtYnVmQEBJQUVIWFoNCis7IHB1YmxpYzogY2xhc3MgZmlsZWJ1ZiAqIF9fdGhpc2NhbGwgZmlsZWJ1Zjo6YXR0YWNoKGludCkNCis/YXR0YWNoQGZpbGVidWZAQFFBRVBBVjFASEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBmc3RyZWFtOjphdHRhY2goaW50KQ0KKz9hdHRhY2hAZnN0cmVhbUBAUUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgaWZzdHJlYW06OmF0dGFjaChpbnQpDQorP2F0dGFjaEBpZnN0cmVhbUBAUUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgb2ZzdHJlYW06OmF0dGFjaChpbnQpDQorP2F0dGFjaEBvZnN0cmVhbUBAUUFFWEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBpb3M6OmJhZCh2b2lkKWNvbnN0IA0KKz9iYWRAaW9zQEBRQkVIWFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpiYXNlKHZvaWQpY29uc3QgDQorP2Jhc2VAc3RyZWFtYnVmQEBJQkVQQURYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBjb25zdCAgaW9zOjpiYXNlZmllbGQNCis/YmFzZWZpZWxkQGlvc0BAMkpCDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgY29uc3QgIGZpbGVidWY6OmJpbmFyeQ0KKz9iaW5hcnlAZmlsZWJ1ZkBAMkhCDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgaW9zOjpiaXRhbGxvYyh2b2lkKQ0KKz9iaXRhbGxvY0Bpb3NAQFNBSlhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6Ymxlbih2b2lkKWNvbnN0IA0KKz9ibGVuQHN0cmVhbWJ1ZkBASUJFSFhaDQorOyBjbGFzcyBvc3RyZWFtX3dpdGhhc3NpZ24gIGNlcnINCis/Y2VyckBAM1Zvc3RyZWFtX3dpdGhhc3NpZ25AQEEgREFUQQ0KKzsgY2xhc3MgaXN0cmVhbV93aXRoYXNzaWduICBjaW4NCis/Y2luQEAzVmlzdHJlYW1fd2l0aGFzc2lnbkBAQSBEQVRBDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBpb3M6OmNsZWFyKGludCkNCis/Y2xlYXJAaW9zQEBRQUVYSEBaDQorOyBjbGFzcyBvc3RyZWFtX3dpdGhhc3NpZ24gIGNsb2cNCis/Y2xvZ0BAM1Zvc3RyZWFtX3dpdGhhc3NpZ25AQEEgREFUQQ0KKzsgcHVibGljOiBjbGFzcyBmaWxlYnVmICogX190aGlzY2FsbCBmaWxlYnVmOjpjbG9zZSh2b2lkKQ0KKz9jbG9zZUBmaWxlYnVmQEBRQUVQQVYxQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBmc3RyZWFtOjpjbG9zZSh2b2lkKQ0KKz9jbG9zZUBmc3RyZWFtQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIGlmc3RyZWFtOjpjbG9zZSh2b2lkKQ0KKz9jbG9zZUBpZnN0cmVhbUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBvZnN0cmVhbTo6Y2xvc2Uodm9pZCkNCis/Y2xvc2VAb2ZzdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgaW9zOjpjbHJsb2NrKHZvaWQpDQorP2NscmxvY2tAaW9zQEBRQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6Y2xybG9jayh2b2lkKQ0KKz9jbHJsb2NrQHN0cmVhbWJ1ZkBAUUFFWFhaDQorOyBjbGFzcyBvc3RyZWFtX3dpdGhhc3NpZ24gIGNvdXQNCis/Y291dEBAM1Zvc3RyZWFtX3dpdGhhc3NpZ25AQEEgREFUQQ0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpkYnAodm9pZCkNCis/ZGJwQHN0cmVhbWJ1ZkBAUUFFWFhaDQorOyBjbGFzcyBpb3MgJiBfX2NkZWNsIGRlYyhjbGFzcyBpb3MgJikNCis/ZGVjQEBZQUFBVmlvc0BAQUFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgaW9zOjpkZWxidWYoaW50KQ0KKz9kZWxidWZAaW9zQEBRQUVYSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlvczo6ZGVsYnVmKHZvaWQpY29uc3QgDQorP2RlbGJ1ZkBpb3NAQFFCRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6ZG9hbGxvY2F0ZSh2b2lkKQ0KKz9kb2FsbG9jYXRlQHN0cmVhbWJ1ZkBATUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3Ryc3RyZWFtYnVmOjpkb2FsbG9jYXRlKHZvaWQpDQorP2RvYWxsb2NhdGVAc3Ryc3RyZWFtYnVmQEBNQUVIWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIGlzdHJlYW06OmVhdHdoaXRlKHZvaWQpDQorP2VhdHdoaXRlQGlzdHJlYW1AQFFBRVhYWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX190aGlzY2FsbCBzdHJlYW1idWY6OmViYWNrKHZvaWQpY29uc3QgDQorP2ViYWNrQHN0cmVhbWJ1ZkBASUJFUEFEWFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjplYnVmKHZvaWQpY29uc3QgDQorP2VidWZAc3RyZWFtYnVmQEBJQkVQQURYWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX190aGlzY2FsbCBzdHJlYW1idWY6OmVncHRyKHZvaWQpY29uc3QgDQorP2VncHRyQHN0cmVhbWJ1ZkBASUJFUEFEWFoNCis7IGNsYXNzIG9zdHJlYW0gJiBfX2NkZWNsIGVuZGwoY2xhc3Mgb3N0cmVhbSAmKQ0KKz9lbmRsQEBZQUFBVm9zdHJlYW1AQEFBVjFAQFoNCis7IGNsYXNzIG9zdHJlYW0gJiBfX2NkZWNsIGVuZHMoY2xhc3Mgb3N0cmVhbSAmKQ0KKz9lbmRzQEBZQUFBVm9zdHJlYW1AQEFBVjFAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgaW9zOjplb2Yodm9pZCljb25zdCANCis/ZW9mQGlvc0BAUUJFSFhaDQorOyBwcm90ZWN0ZWQ6IGNoYXIgKiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6ZXBwdHIodm9pZCljb25zdCANCis/ZXBwdHJAc3RyZWFtYnVmQEBJQkVQQURYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCAgaW9zOjpmTG9ja2NJbml0DQorP2ZMb2NrY0luaXRAaW9zQEAwSEEgREFUQQ0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBpb3M6OmZhaWwodm9pZCljb25zdCANCis/ZmFpbEBpb3NAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBmaWxlYnVmOjpmZCh2b2lkKWNvbnN0IA0KKz9mZEBmaWxlYnVmQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgZnN0cmVhbTo6ZmQodm9pZCljb25zdCANCis/ZmRAZnN0cmVhbUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlmc3RyZWFtOjpmZCh2b2lkKWNvbnN0IA0KKz9mZEBpZnN0cmVhbUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIG9mc3RyZWFtOjpmZCh2b2lkKWNvbnN0IA0KKz9mZEBvZnN0cmVhbUBAUUJFSFhaDQorOyBwdWJsaWM6IGNoYXIgX190aGlzY2FsbCBpb3M6OmZpbGwoY2hhcikNCis/ZmlsbEBpb3NAQFFBRUREQFoNCis7IHB1YmxpYzogY2hhciBfX3RoaXNjYWxsIGlvczo6ZmlsbCh2b2lkKWNvbnN0IA0KKz9maWxsQGlvc0BAUUJFRFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBpb3M6OmZsYWdzKGxvbmcpDQorP2ZsYWdzQGlvc0BAUUFFSkpAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgaW9zOjpmbGFncyh2b2lkKWNvbnN0IA0KKz9mbGFnc0Bpb3NAQFFCRUpYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBjb25zdCAgaW9zOjpmbG9hdGZpZWxkDQorP2Zsb2F0ZmllbGRAaW9zQEAySkINCis7IGNsYXNzIG9zdHJlYW0gJiBfX2NkZWNsIGZsdXNoKGNsYXNzIG9zdHJlYW0gJikNCis/Zmx1c2hAQFlBQUFWb3N0cmVhbUBAQUFWMUBAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpmbHVzaCh2b2lkKQ0KKz9mbHVzaEBvc3RyZWFtQEBRQUVBQVYxQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdHJzdHJlYW1idWY6OmZyZWV6ZShpbnQpDQorP2ZyZWV6ZUBzdHJzdHJlYW1idWZAQFFBRVhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6Z2J1bXAoaW50KQ0KKz9nYnVtcEBzdHJlYW1idWZAQElBRVhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgaXN0cmVhbTo6Z2NvdW50KHZvaWQpY29uc3QgDQorP2djb3VudEBpc3RyZWFtQEBRQkVIWFoNCis7IHByb3RlY3RlZDogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6Z2V0KGNoYXIgKixpbnQsaW50KQ0KKz9nZXRAaXN0cmVhbUBASUFFQUFWMUBQQURISEBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06OmdldChzaWduZWQgY2hhciAmKQ0KKz9nZXRAaXN0cmVhbUBAUUFFQUFWMUBBQUNAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpnZXQoY2hhciAmKQ0KKz9nZXRAaXN0cmVhbUBAUUFFQUFWMUBBQURAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpnZXQodW5zaWduZWQgY2hhciAmKQ0KKz9nZXRAaXN0cmVhbUBAUUFFQUFWMUBBQUVAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpnZXQoY2xhc3Mgc3RyZWFtYnVmICYsY2hhcikNCis/Z2V0QGlzdHJlYW1AQFFBRUFBVjFAQUFWc3RyZWFtYnVmQEBEQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6Z2V0KHNpZ25lZCBjaGFyICosaW50LGNoYXIpDQorP2dldEBpc3RyZWFtQEBRQUVBQVYxQFBBQ0hEQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6Z2V0KGNoYXIgKixpbnQsY2hhcikNCis/Z2V0QGlzdHJlYW1AQFFBRUFBVjFAUEFESERAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpnZXQodW5zaWduZWQgY2hhciAqLGludCxjaGFyKQ0KKz9nZXRAaXN0cmVhbUBAUUFFQUFWMUBQQUVIREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlzdHJlYW06OmdldCh2b2lkKQ0KKz9nZXRAaXN0cmVhbUBAUUFFSFhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBpc3RyZWFtOjpnZXRkb3VibGUoY2hhciAqLGludCkNCis/Z2V0ZG91YmxlQGlzdHJlYW1AQEFBRUhQQURIQFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIGlzdHJlYW06OmdldGludChjaGFyICopDQorP2dldGludEBpc3RyZWFtQEBBQUVIUEFEQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6Z2V0bGluZShzaWduZWQgY2hhciAqLGludCxjaGFyKQ0KKz9nZXRsaW5lQGlzdHJlYW1AQFFBRUFBVjFAUEFDSERAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpnZXRsaW5lKGNoYXIgKixpbnQsY2hhcikNCis/Z2V0bGluZUBpc3RyZWFtQEBRQUVBQVYxQFBBREhEQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6Z2V0bGluZSh1bnNpZ25lZCBjaGFyICosaW50LGNoYXIpDQorP2dldGxpbmVAaXN0cmVhbUBAUUFFQUFWMUBQQUVIREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlvczo6Z29vZCh2b2lkKWNvbnN0IA0KKz9nb29kQGlvc0BAUUJFSFhaDQorOyBwcm90ZWN0ZWQ6IGNoYXIgKiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6Z3B0cih2b2lkKWNvbnN0IA0KKz9ncHRyQHN0cmVhbWJ1ZkBASUJFUEFEWFoNCis7IGNsYXNzIGlvcyAmIF9fY2RlY2wgaGV4KGNsYXNzIGlvcyAmKQ0KKz9oZXhAQFlBQUFWaW9zQEBBQVYxQEBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Omlnbm9yZShpbnQsaW50KQ0KKz9pZ25vcmVAaXN0cmVhbUBAUUFFQUFWMUBISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6aW5fYXZhaWwodm9pZCljb25zdCANCis/aW5fYXZhaWxAc3RyZWFtYnVmQEBRQkVIWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIGlvczo6aW5pdChjbGFzcyBzdHJlYW1idWYgKikNCis/aW5pdEBpb3NAQElBRVhQQVZzdHJlYW1idWZAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlzdHJlYW06OmlwZngoaW50KQ0KKz9pcGZ4QGlzdHJlYW1AQFFBRUhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgZmlsZWJ1Zjo6aXNfb3Blbih2b2lkKWNvbnN0IA0KKz9pc19vcGVuQGZpbGVidWZAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBmc3RyZWFtOjppc19vcGVuKHZvaWQpY29uc3QgDQorP2lzX29wZW5AZnN0cmVhbUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlmc3RyZWFtOjppc19vcGVuKHZvaWQpY29uc3QgDQorP2lzX29wZW5AaWZzdHJlYW1AQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBvZnN0cmVhbTo6aXNfb3Blbih2b2lkKWNvbnN0IA0KKz9pc19vcGVuQG9mc3RyZWFtQEBRQkVIWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIGlzdHJlYW06OmlzZngodm9pZCkNCis/aXNmeEBpc3RyZWFtQEBRQUVYWFoNCis7IHB1YmxpYzogbG9uZyAmIF9fdGhpc2NhbGwgaW9zOjppd29yZChpbnQpY29uc3QgDQorP2l3b3JkQGlvc0BAUUJFQUFKSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBpb3M6OmxvY2sodm9pZCkNCis/bG9ja0Bpb3NAQFFBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpsb2NrKHZvaWQpDQorP2xvY2tAc3RyZWFtYnVmQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGlvczo6bG9ja2J1Zih2b2lkKQ0KKz9sb2NrYnVmQGlvc0BAUUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB2b2lkIF9fY2RlY2wgaW9zOjpsb2NrYyh2b2lkKQ0KKz9sb2NrY0Bpb3NAQEtBWFhaDQorOyBwcm90ZWN0ZWQ6IHN0cnVjdCBfQ1JUX0NSSVRJQ0FMX1NFQ1RJT04gKiBfX3RoaXNjYWxsIGlvczo6bG9ja3B0cih2b2lkKQ0KKz9sb2NrcHRyQGlvc0BASUFFUEFVX0NSVF9DUklUSUNBTF9TRUNUSU9OQEBYWg0KKzsgcHJvdGVjdGVkOiBzdHJ1Y3QgX0NSVF9DUklUSUNBTF9TRUNUSU9OICogX190aGlzY2FsbCBzdHJlYW1idWY6OmxvY2twdHIodm9pZCkNCis/bG9ja3B0ckBzdHJlYW1idWZAQElBRVBBVV9DUlRfQ1JJVElDQUxfU0VDVElPTkBAWFoNCis7IGNsYXNzIGlvcyAmIF9fY2RlY2wgb2N0KGNsYXNzIGlvcyAmKQ0KKz9vY3RAQFlBQUFWaW9zQEBBQVYxQEBaDQorOyBwdWJsaWM6IGNsYXNzIGZpbGVidWYgKiBfX3RoaXNjYWxsIGZpbGVidWY6Om9wZW4oY2hhciBjb25zdCAqLGludCxpbnQpDQorP29wZW5AZmlsZWJ1ZkBAUUFFUEFWMUBQQkRISEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBmc3RyZWFtOjpvcGVuKGNoYXIgY29uc3QgKixpbnQsaW50KQ0KKz9vcGVuQGZzdHJlYW1AQFFBRVhQQkRISEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBpZnN0cmVhbTo6b3BlbihjaGFyIGNvbnN0ICosaW50LGludCkNCis/b3BlbkBpZnN0cmVhbUBAUUFFWFBCREhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIG9mc3RyZWFtOjpvcGVuKGNoYXIgY29uc3QgKixpbnQsaW50KQ0KKz9vcGVuQG9mc3RyZWFtQEBRQUVYUEJESEhAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IGNvbnN0ICBmaWxlYnVmOjpvcGVucHJvdA0KKz9vcGVucHJvdEBmaWxlYnVmQEAySEINCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BmeCh2b2lkKQ0KKz9vcGZ4QG9zdHJlYW1AQFFBRUhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3NmeCh2b2lkKQ0KKz9vc2Z4QG9zdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdHJlYW1idWY6Om91dF93YWl0aW5nKHZvaWQpY29uc3QgDQorP291dF93YWl0aW5nQHN0cmVhbWJ1ZkBAUUJFSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgZmlsZWJ1Zjo6b3ZlcmZsb3coaW50KQ0KKz9vdmVyZmxvd0BmaWxlYnVmQEBVQUVISEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkaW9idWY6Om92ZXJmbG93KGludCkNCis/b3ZlcmZsb3dAc3RkaW9idWZAQFVBRUhIQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdHJzdHJlYW1idWY6Om92ZXJmbG93KGludCkNCis/b3ZlcmZsb3dAc3Ryc3RyZWFtYnVmQEBVQUVISEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkaW9idWY6OnBiYWNrZmFpbChpbnQpDQorP3BiYWNrZmFpbEBzdGRpb2J1ZkBAVUFFSEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6cGJhY2tmYWlsKGludCkNCis/cGJhY2tmYWlsQHN0cmVhbWJ1ZkBAVUFFSEhAWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX190aGlzY2FsbCBzdHJlYW1idWY6OnBiYXNlKHZvaWQpY29uc3QgDQorP3BiYXNlQHN0cmVhbWJ1ZkBASUJFUEFEWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6cGJ1bXAoaW50KQ0KKz9wYnVtcEBzdHJlYW1idWZAQElBRVhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgb3N0cnN0cmVhbTo6cGNvdW50KHZvaWQpY29uc3QgDQorP3Bjb3VudEBvc3Ryc3RyZWFtQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3Ryc3RyZWFtOjpwY291bnQodm9pZCljb25zdCANCis/cGNvdW50QHN0cnN0cmVhbUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlzdHJlYW06OnBlZWsodm9pZCkNCis/cGVla0Bpc3RyZWFtQEBRQUVIWFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpwcHRyKHZvaWQpY29uc3QgDQorP3BwdHJAc3RyZWFtYnVmQEBJQkVQQURYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBpb3M6OnByZWNpc2lvbihpbnQpDQorP3ByZWNpc2lvbkBpb3NAQFFBRUhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgaW9zOjpwcmVjaXNpb24odm9pZCljb25zdCANCis/cHJlY2lzaW9uQGlvc0BAUUJFSFhaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06OnB1dChzaWduZWQgY2hhcikNCis/cHV0QG9zdHJlYW1AQFFBRUFBVjFAQ0BaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06OnB1dChjaGFyKQ0KKz9wdXRAb3N0cmVhbUBAUUFFQUFWMUBEQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6cHV0KHVuc2lnbmVkIGNoYXIpDQorP3B1dEBvc3RyZWFtQEBRQUVBQVYxQEVAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpwdXRiYWNrKGNoYXIpDQorP3B1dGJhY2tAaXN0cmVhbUBAUUFFQUFWMUBEQFoNCis7IHB1YmxpYzogdm9pZCAqICYgX190aGlzY2FsbCBpb3M6OnB3b3JkKGludCljb25zdCANCis/cHdvcmRAaW9zQEBRQkVBQVBBWEhAWg0KKzsgcHVibGljOiBjbGFzcyBmaWxlYnVmICogX190aGlzY2FsbCBmc3RyZWFtOjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkBmc3RyZWFtQEBRQkVQQVZmaWxlYnVmQEBYWg0KKzsgcHVibGljOiBjbGFzcyBmaWxlYnVmICogX190aGlzY2FsbCBpZnN0cmVhbTo6cmRidWYodm9pZCljb25zdCANCis/cmRidWZAaWZzdHJlYW1AQFFCRVBBVmZpbGVidWZAQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0cmVhbWJ1ZiAqIF9fdGhpc2NhbGwgaW9zOjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkBpb3NAQFFCRVBBVnN0cmVhbWJ1ZkBAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3Ryc3RyZWFtYnVmICogX190aGlzY2FsbCBpc3Ryc3RyZWFtOjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkBpc3Ryc3RyZWFtQEBRQkVQQVZzdHJzdHJlYW1idWZAQFhaDQorOyBwdWJsaWM6IGNsYXNzIGZpbGVidWYgKiBfX3RoaXNjYWxsIG9mc3RyZWFtOjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkBvZnN0cmVhbUBAUUJFUEFWZmlsZWJ1ZkBAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3Ryc3RyZWFtYnVmICogX190aGlzY2FsbCBvc3Ryc3RyZWFtOjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkBvc3Ryc3RyZWFtQEBRQkVQQVZzdHJzdHJlYW1idWZAQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZGlvYnVmICogX190aGlzY2FsbCBzdGRpb3N0cmVhbTo6cmRidWYodm9pZCljb25zdCANCis/cmRidWZAc3RkaW9zdHJlYW1AQFFCRVBBVnN0ZGlvYnVmQEBYWg0KKzsgcHVibGljOiBjbGFzcyBzdHJzdHJlYW1idWYgKiBfX3RoaXNjYWxsIHN0cnN0cmVhbTo6cmRidWYodm9pZCljb25zdCANCis/cmRidWZAc3Ryc3RyZWFtQEBRQkVQQVZzdHJzdHJlYW1idWZAQFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlvczo6cmRzdGF0ZSh2b2lkKWNvbnN0IA0KKz9yZHN0YXRlQGlvc0BAUUJFSFhaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06OnJlYWQoc2lnbmVkIGNoYXIgKixpbnQpDQorP3JlYWRAaXN0cmVhbUBAUUFFQUFWMUBQQUNIQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6cmVhZChjaGFyICosaW50KQ0KKz9yZWFkQGlzdHJlYW1AQFFBRUFBVjFAUEFESEBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06OnJlYWQodW5zaWduZWQgY2hhciAqLGludCkNCis/cmVhZEBpc3RyZWFtQEBRQUVBQVYxQFBBRUhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdHJlYW1idWY6OnNidW1wYyh2b2lkKQ0KKz9zYnVtcGNAc3RyZWFtYnVmQEBRQUVIWFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6c2Vla2cobG9uZykNCis/c2Vla2dAaXN0cmVhbUBAUUFFQUFWMUBKQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6c2Vla2cobG9uZyxlbnVtIGlvczo6c2Vla19kaXIpDQorP3NlZWtnQGlzdHJlYW1AQFFBRUFBVjFASlc0c2Vla19kaXJAaW9zQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBmaWxlYnVmOjpzZWVrb2ZmKGxvbmcsZW51bSBpb3M6OnNlZWtfZGlyLGludCkNCis/c2Vla29mZkBmaWxlYnVmQEBVQUVKSlc0c2Vla19kaXJAaW9zQEBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgc3RkaW9idWY6OnNlZWtvZmYobG9uZyxlbnVtIGlvczo6c2Vla19kaXIsaW50KQ0KKz9zZWVrb2ZmQHN0ZGlvYnVmQEBVQUVKSlc0c2Vla19kaXJAaW9zQEBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzZWVrb2ZmKGxvbmcsZW51bSBpb3M6OnNlZWtfZGlyLGludCkNCis/c2Vla29mZkBzdHJlYW1idWZAQFVBRUpKVzRzZWVrX2RpckBpb3NAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBzdHJzdHJlYW1idWY6OnNlZWtvZmYobG9uZyxlbnVtIGlvczo6c2Vla19kaXIsaW50KQ0KKz9zZWVrb2ZmQHN0cnN0cmVhbWJ1ZkBAVUFFSkpXNHNlZWtfZGlyQGlvc0BASEBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06OnNlZWtwKGxvbmcpDQorP3NlZWtwQG9zdHJlYW1AQFFBRUFBVjFASkBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06OnNlZWtwKGxvbmcsZW51bSBpb3M6OnNlZWtfZGlyKQ0KKz9zZWVrcEBvc3RyZWFtQEBRQUVBQVYxQEpXNHNlZWtfZGlyQGlvc0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzZWVrcG9zKGxvbmcsaW50KQ0KKz9zZWVrcG9zQHN0cmVhbWJ1ZkBAVUFFSkpIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c2V0YihjaGFyICosY2hhciAqLGludCkNCis/c2V0YkBzdHJlYW1idWZAQElBRVhQQUQwSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3Mgc3RyZWFtYnVmICogX190aGlzY2FsbCBmaWxlYnVmOjpzZXRidWYoY2hhciAqLGludCkNCis/c2V0YnVmQGZpbGVidWZAQFVBRVBBVnN0cmVhbWJ1ZkBAUEFESEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0cmVhbWJ1ZiAqIF9fdGhpc2NhbGwgZnN0cmVhbTo6c2V0YnVmKGNoYXIgKixpbnQpDQorP3NldGJ1ZkBmc3RyZWFtQEBRQUVQQVZzdHJlYW1idWZAQFBBREhAWg0KKzsgcHVibGljOiBjbGFzcyBzdHJlYW1idWYgKiBfX3RoaXNjYWxsIGlmc3RyZWFtOjpzZXRidWYoY2hhciAqLGludCkNCis/c2V0YnVmQGlmc3RyZWFtQEBRQUVQQVZzdHJlYW1idWZAQFBBREhAWg0KKzsgcHVibGljOiBjbGFzcyBzdHJlYW1idWYgKiBfX3RoaXNjYWxsIG9mc3RyZWFtOjpzZXRidWYoY2hhciAqLGludCkNCis/c2V0YnVmQG9mc3RyZWFtQEBRQUVQQVZzdHJlYW1idWZAQFBBREhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIHN0cmVhbWJ1ZiAqIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzZXRidWYoY2hhciAqLGludCkNCis/c2V0YnVmQHN0cmVhbWJ1ZkBAVUFFUEFWMUBQQURIQFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBzdHJlYW1idWYgKiBfX3RoaXNjYWxsIHN0cnN0cmVhbWJ1Zjo6c2V0YnVmKGNoYXIgKixpbnQpDQorP3NldGJ1ZkBzdHJzdHJlYW1idWZAQFVBRVBBVnN0cmVhbWJ1ZkBAUEFESEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBpb3M6OnNldGYobG9uZykNCis/c2V0ZkBpb3NAQFFBRUpKQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIGlvczo6c2V0Zihsb25nLGxvbmcpDQorP3NldGZAaW9zQEBRQUVKSkpAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzZXRnKGNoYXIgKixjaGFyICosY2hhciAqKQ0KKz9zZXRnQHN0cmVhbWJ1ZkBASUFFWFBBRDAwQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGlvczo6c2V0bG9jayh2b2lkKQ0KKz9zZXRsb2NrQGlvc0BAUUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdHJlYW1idWY6OnNldGxvY2sodm9pZCkNCis/c2V0bG9ja0BzdHJlYW1idWZAQFFBRVhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBmaWxlYnVmOjpzZXRtb2RlKGludCkNCis/c2V0bW9kZUBmaWxlYnVmQEBRQUVISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGZzdHJlYW06OnNldG1vZGUoaW50KQ0KKz9zZXRtb2RlQGZzdHJlYW1AQFFBRUhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgaWZzdHJlYW06OnNldG1vZGUoaW50KQ0KKz9zZXRtb2RlQGlmc3RyZWFtQEBRQUVISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIG9mc3RyZWFtOjpzZXRtb2RlKGludCkNCis/c2V0bW9kZUBvZnN0cmVhbUBAUUFFSEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzZXRwKGNoYXIgKixjaGFyICopDQorP3NldHBAc3RyZWFtYnVmQEBJQUVYUEFEMEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZGlvYnVmOjpzZXRyd2J1ZihpbnQsaW50KQ0KKz9zZXRyd2J1ZkBzdGRpb2J1ZkBAUUFFSEhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzZ2V0Yyh2b2lkKQ0KKz9zZ2V0Y0BzdHJlYW1idWZAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdHJlYW1idWY6OnNnZXRuKGNoYXIgKixpbnQpDQorP3NnZXRuQHN0cmVhbWJ1ZkBAUUFFSFBBREhAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IGNvbnN0ICBmaWxlYnVmOjpzaF9ub25lDQorP3NoX25vbmVAZmlsZWJ1ZkBAMkhCDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgY29uc3QgIGZpbGVidWY6OnNoX3JlYWQNCis/c2hfcmVhZEBmaWxlYnVmQEAySEINCis7IHB1YmxpYzogc3RhdGljIGludCBjb25zdCAgZmlsZWJ1Zjo6c2hfd3JpdGUNCis/c2hfd3JpdGVAZmlsZWJ1ZkBAMkhCDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c25leHRjKHZvaWQpDQorP3NuZXh0Y0BzdHJlYW1idWZAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdHJlYW1idWY6OnNwdXRiYWNrYyhjaGFyKQ0KKz9zcHV0YmFja2NAc3RyZWFtYnVmQEBRQUVIREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c3B1dGMoaW50KQ0KKz9zcHV0Y0BzdHJlYW1idWZAQFFBRUhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzcHV0bihjaGFyIGNvbnN0ICosaW50KQ0KKz9zcHV0bkBzdHJlYW1idWZAQFFBRUhQQkRIQFoNCis7IHB1YmxpYzogc3RydWN0IF9pb2J1ZiAqIF9fdGhpc2NhbGwgc3RkaW9idWY6OnN0ZGlvZmlsZSh2b2lkKQ0KKz9zdGRpb2ZpbGVAc3RkaW9idWZAQFFBRVBBVV9pb2J1ZkBAWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c3Rvc3NjKHZvaWQpDQorP3N0b3NzY0BzdHJlYW1idWZAQFFBRVhYWg0KKzsgcHVibGljOiBjaGFyICogX190aGlzY2FsbCBpc3Ryc3RyZWFtOjpzdHIodm9pZCkNCis/c3RyQGlzdHJzdHJlYW1AQFFBRVBBRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIG9zdHJzdHJlYW06OnN0cih2b2lkKQ0KKz9zdHJAb3N0cnN0cmVhbUBAUUFFUEFEWFoNCis7IHB1YmxpYzogY2hhciAqIF9fdGhpc2NhbGwgc3Ryc3RyZWFtOjpzdHIodm9pZCkNCis/c3RyQHN0cnN0cmVhbUBAUUFFUEFEWFoNCis7IHB1YmxpYzogY2hhciAqIF9fdGhpc2NhbGwgc3Ryc3RyZWFtYnVmOjpzdHIodm9pZCkNCis/c3RyQHN0cnN0cmVhbWJ1ZkBAUUFFUEFEWFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgIGlvczo6c3Vua193aXRoX3N0ZGlvDQorP3N1bmtfd2l0aF9zdGRpb0Bpb3NAQDBIQSBEQVRBDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgZmlsZWJ1Zjo6c3luYyh2b2lkKQ0KKz9zeW5jQGZpbGVidWZAQFVBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBpc3RyZWFtOjpzeW5jKHZvaWQpDQorP3N5bmNAaXN0cmVhbUBAUUFFSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkaW9idWY6OnN5bmModm9pZCkNCis/c3luY0BzdGRpb2J1ZkBAVUFFSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzeW5jKHZvaWQpDQorP3N5bmNAc3RyZWFtYnVmQEBVQUVIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdHJzdHJlYW1idWY6OnN5bmModm9pZCkNCis/c3luY0BzdHJzdHJlYW1idWZAQFVBRUhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIGlvczo6c3luY193aXRoX3N0ZGlvKHZvaWQpDQorP3N5bmNfd2l0aF9zdGRpb0Bpb3NAQFNBWFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBpc3RyZWFtOjp0ZWxsZyh2b2lkKQ0KKz90ZWxsZ0Bpc3RyZWFtQEBRQUVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIG9zdHJlYW06OnRlbGxwKHZvaWQpDQorP3RlbGxwQG9zdHJlYW1AQFFBRUpYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IGNvbnN0ICBmaWxlYnVmOjp0ZXh0DQorP3RleHRAZmlsZWJ1ZkBAMkhCDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gKiBfX3RoaXNjYWxsIGlvczo6dGllKGNsYXNzIG9zdHJlYW0gKikNCis/dGllQGlvc0BAUUFFUEFWb3N0cmVhbUBAUEFWMkBAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICogX190aGlzY2FsbCBpb3M6OnRpZSh2b2lkKWNvbnN0IA0KKz90aWVAaW9zQEBRQkVQQVZvc3RyZWFtQEBYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjp1bmJ1ZmZlcmVkKGludCkNCis/dW5idWZmZXJlZEBzdHJlYW1idWZAQElBRVhIQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjp1bmJ1ZmZlcmVkKHZvaWQpY29uc3QgDQorP3VuYnVmZmVyZWRAc3RyZWFtYnVmQEBJQkVIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBmaWxlYnVmOjp1bmRlcmZsb3codm9pZCkNCis/dW5kZXJmbG93QGZpbGVidWZAQFVBRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZGlvYnVmOjp1bmRlcmZsb3codm9pZCkNCis/dW5kZXJmbG93QHN0ZGlvYnVmQEBVQUVIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdHJzdHJlYW1idWY6OnVuZGVyZmxvdyh2b2lkKQ0KKz91bmRlcmZsb3dAc3Ryc3RyZWFtYnVmQEBVQUVIWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGlvczo6dW5sb2NrKHZvaWQpDQorP3VubG9ja0Bpb3NAQFFBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjp1bmxvY2sodm9pZCkNCis/dW5sb2NrQHN0cmVhbWJ1ZkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBpb3M6OnVubG9ja2J1Zih2b2lkKQ0KKz91bmxvY2tidWZAaW9zQEBRQUFYWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHZvaWQgX19jZGVjbCBpb3M6OnVubG9ja2Modm9pZCkNCis/dW5sb2NrY0Bpb3NAQEtBWFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBpb3M6OnVuc2V0Zihsb25nKQ0KKz91bnNldGZAaW9zQEBRQUVKSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgZXhjZXB0aW9uOjp3aGF0KHZvaWQpY29uc3QgDQorP3doYXRAZXhjZXB0aW9uQEBVQkVQQkRYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBpb3M6OndpZHRoKGludCkNCis/d2lkdGhAaW9zQEBRQUVISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlvczo6d2lkdGgodm9pZCljb25zdCANCis/d2lkdGhAaW9zQEBRQkVIWFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6d3JpdGUoc2lnbmVkIGNoYXIgY29uc3QgKixpbnQpDQorP3dyaXRlQG9zdHJlYW1AQFFBRUFBVjFAUEJDSEBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06OndyaXRlKGNoYXIgY29uc3QgKixpbnQpDQorP3dyaXRlQG9zdHJlYW1AQFFBRUFBVjFAUEJESEBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06OndyaXRlKHVuc2lnbmVkIGNoYXIgY29uc3QgKixpbnQpDQorP3dyaXRlQG9zdHJlYW1AQFFBRUFBVjFAUEJFSEBaDQorOyBwcml2YXRlOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjp3cml0ZXBhZChjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqKQ0KKz93cml0ZXBhZEBvc3RyZWFtQEBBQUVBQVYxQFBCRDBAWg0KKzsgY2xhc3MgaXN0cmVhbSAmIF9fY2RlY2wgd3MoY2xhc3MgaXN0cmVhbSAmKQ0KKz93c0BAWUFBQVZpc3RyZWFtQEBBQVYxQEBaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50ICBpb3M6OnhfY3VyaW5kZXgNCis/eF9jdXJpbmRleEBpb3NAQDBIQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IF9DUlRfQ1JJVElDQUxfU0VDVElPTiAgaW9zOjp4X2xvY2tjDQorP3hfbG9ja2NAaW9zQEAwVV9DUlRfQ1JJVElDQUxfU0VDVElPTkBAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgbG9uZyAgaW9zOjp4X21heGJpdA0KKz94X21heGJpdEBpb3NAQDBKQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgbG9uZyAqICBpb3M6Onhfc3RhdGVidWYNCis/eF9zdGF0ZWJ1ZkBpb3NAQDBQQUpBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIGlvczo6eGFsbG9jKHZvaWQpDQorP3hhbGxvY0Bpb3NAQFNBSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjp4c2dldG4oY2hhciAqLGludCkNCis/eHNnZXRuQHN0cmVhbWJ1ZkBAVUFFSFBBREhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6eHNwdXRuKGNoYXIgY29uc3QgKixpbnQpDQorP3hzcHV0bkBzdHJlYW1idWZAQFVBRUhQQkRIQFoNCitfX2R1bW15X2V4cG9ydCBEQVRBDQorX210bG9jaw0KK19tdHVubG9jaw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc3ZjcDUwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3ZjcDUwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lYzgyZmYyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zdmNwNTAuZGVmCkBAIC0wLDAgKzEsNDA1MCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU1ZDUDUwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU1ZDUDUwLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+OjpfQ29tcGxleF9iYXNlPGZsb2F0PihmbG9hdCBjb25zdCAmLGZsb2F0IGNvbnN0ICYpDQorPz8wPyRfQ29tcGxleF9iYXNlQE1Ac3RkQEBRQUVAQUJNMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT46Ol9Db21wbGV4X2Jhc2U8ZG91YmxlPihkb3VibGUgY29uc3QgJixkb3VibGUgY29uc3QgJikNCis/PzA/JF9Db21wbGV4X2Jhc2VATkBzdGRAQFFBRUBBQk4wQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8bG9uZyBkb3VibGU+OjpfQ29tcGxleF9iYXNlPGxvbmcgZG91YmxlPihsb25nIGRvdWJsZSBjb25zdCAmLGxvbmcgZG91YmxlIGNvbnN0ICYpDQorPz8wPyRfQ29tcGxleF9iYXNlQE9Ac3RkQEBRQUVAQUJPMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PGNoYXI+OjpfTXB1bmN0PGNoYXI+KGNsYXNzIF9NcHVuY3Q8Y2hhcj46Ol9Mb2NpbmZvIGNvbnN0ICYsdW5zaWduZWQgaW50LGJvb2wpDQorPz8wPyRfTXB1bmN0QERAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJX05AWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDxjaGFyPjo6X01wdW5jdDxjaGFyPih1bnNpZ25lZCBpbnQsYm9vbCkNCis/PzA/JF9NcHVuY3RAREBzdGRAQFFBRUBJX05AWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+KGNsYXNzIF9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCxib29sKQ0KKz8/MD8kX01wdW5jdEBHQHN0ZEBAUUFFQEFCVl9Mb2NpbmZvQDFASV9OQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pih1bnNpZ25lZCBpbnQsYm9vbCkNCis/PzA/JF9NcHVuY3RAR0BzdGRAQFFBRUBJX05AWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KHN0cnVjdCBfaW9idWYgKikNCis/PzA/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVAUEFVX2lvYnVmQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KGVudW0gYmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Ol9VbmluaXRpYWxpemVkKQ0KKz8/MD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUBXNF9VbmluaXRpYWxpemVkQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oc3RydWN0IF9pb2J1ZiAqKQ0KKz8/MD8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUBQQVVfaW9idWZAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KGVudW0gYmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6X1VuaW5pdGlhbGl6ZWQpDQorPz8wPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQFc0X1VuaW5pdGlhbGl6ZWRAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KGNoYXIgY29uc3QgKixpbnQpDQorPz8wPyRiYXNpY19mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQFBCREhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KHZvaWQpDQorPz8wPyRiYXNpY19mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KGNoYXIgY29uc3QgKixpbnQpDQorPz8wPyRiYXNpY19mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQFBCREhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPih2b2lkKQ0KKz8/MD8kYmFzaWNfZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19pZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oY2hhciBjb25zdCAqLGludCkNCis/PzA/JGJhc2ljX2lmc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQFBCREhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19pZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4odm9pZCkNCis/PzA/JGJhc2ljX2lmc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oY2hhciBjb25zdCAqLGludCkNCis/PzA/JGJhc2ljX2lmc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQFBCREhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KHZvaWQpDQorPz8wPyRiYXNpY19pZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPih2b2lkKQ0KKz8/MD8kYmFzaWNfaW9zQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KGNsYXNzIGJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJikNCis/PzA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihjbGFzcyBiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICopDQorPz8wPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVAUEFWPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/PzA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gKikNCis/PzA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUBQQVY/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2lvc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihjbGFzcyBiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2lvc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfaW9zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfaW9zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KGNsYXNzIGJhc2ljX2lvc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqKQ0KKz8/MD8kYmFzaWNfaW9zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVAUEFWPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX2lvc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KGNsYXNzIGJhc2ljX2lvc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfaW9zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19pb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICopDQorPz8wPyRiYXNpY19pb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUBQQVY/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oY2xhc3MgYmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oY2xhc3MgYmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gKixib29sKQ0KKz8/MD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUBQQVY/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQF9OQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihlbnVtIGJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpfVW5pbml0aWFsaXplZCkNCis/PzA/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVAVzRfVW5pbml0aWFsaXplZEAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KGNsYXNzIGJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/PzA/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICosYm9vbCkNCis/PzA/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVAUEFWPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBfTkBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KGVudW0gYmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6X1VuaW5pdGlhbGl6ZWQpDQorPz8wPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQFc0X1VuaW5pdGlhbGl6ZWRAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGNsYXNzIGJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsaW50KQ0KKz8/MD8kYmFzaWNfaXN0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQEFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19pc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPihpbnQpDQorPz8wPyRiYXNpY19pc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfaXN0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfaXN0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJixpbnQpDQorPz8wPyRiYXNpY19pc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVAQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAxQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KGludCkNCis/PzA/JGJhc2ljX2lzdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX29mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KGNoYXIgY29uc3QgKixpbnQpDQorPz8wPyRiYXNpY19vZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUBQQkRIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX29mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KHZvaWQpDQorPz8wPyRiYXNpY19vZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX29mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KGNoYXIgY29uc3QgKixpbnQpDQorPz8wPyRiYXNpY19vZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUBQQkRIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX29mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPih2b2lkKQ0KKz8/MD8kYmFzaWNfb2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihjbGFzcyBiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJikNCis/PzA/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihjbGFzcyBiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqLGJvb2wsYm9vbCkNCis/PzA/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVAUEFWPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBfTjFAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KGVudW0gYmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Ol9VbmluaXRpYWxpemVkKQ0KKz8/MD8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUBXNF9VbmluaXRpYWxpemVkQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gKixib29sLGJvb2wpDQorPz8wPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQFBBVj8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAX04xQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oZW51bSBiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpfVW5pbml0aWFsaXplZCkNCis/PzA/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVAVzRfVW5pbml0aWFsaXplZEAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4oY2xhc3MgYmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJixpbnQpDQorPz8wPyRiYXNpY19vc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVAQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAxQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX29zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGludCkNCis/PzA/JGJhc2ljX29zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLGludCkNCis/PzA/JGJhc2ljX29zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUBBQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDFASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfb3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4oaW50KQ0KKz8/MD8kYmFzaWNfb3N0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQEhAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihlbnVtIGJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Ol9VbmluaXRpYWxpemVkKQ0KKz8/MD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUFFQFc0X1VuaW5pdGlhbGl6ZWRAMUBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPih2b2lkKQ0KKz8/MD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihlbnVtIGJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6X1VuaW5pdGlhbGl6ZWQpDQorPz8wPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJQUVAVzRfVW5pbml0aWFsaXplZEAxQEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPih2b2lkKQ0KKz8/MD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGNsYXNzIGJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/PzA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGNsYXNzIGJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGNsYXNzIGJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmFsbG9jYXRvcjxjaGFyPiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVAQUJWMDFASUlBQlY/JGFsbG9jYXRvckBEQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4oY2xhc3MgYmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YWxsb2NhdG9yPGNoYXI+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUBBQlY/JGFsbG9jYXRvckBEQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4odW5zaWduZWQgaW50LGNoYXIsY2xhc3MgYmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YWxsb2NhdG9yPGNoYXI+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUBJREFCVj8kYWxsb2NhdG9yQERAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPihjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqLGNsYXNzIGJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmFsbG9jYXRvcjxjaGFyPiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVAUEJEMEFCVj8kYWxsb2NhdG9yQERAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPihjaGFyIGNvbnN0ICosY2xhc3MgYmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YWxsb2NhdG9yPGNoYXI+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUBQQkRBQlY/JGFsbG9jYXRvckBEQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4oY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCxjbGFzcyBiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjphbGxvY2F0b3I8Y2hhcj4gY29uc3QgJikNCis/PzA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQFBCRElBQlY/JGFsbG9jYXRvckBEQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsY2xhc3MgYmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVAQUJWMDFASUlBQlY/JGFsbG9jYXRvckBHQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVAQUJWPyRhbGxvY2F0b3JAR0AxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCxjbGFzcyBiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUBJR0FCVj8kYWxsb2NhdG9yQEdAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgYmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVAUEJHMEFCVj8kYWxsb2NhdG9yQEdAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIGJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gY29uc3QgJikNCis/PzA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQFBCR0FCVj8kYWxsb2NhdG9yQEdAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCxjbGFzcyBiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUBQQkdJQUJWPyRhbGxvY2F0b3JAR0AxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGNsYXNzIGJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJixpbnQpDQorPz8wPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUBBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGludCkNCis/PzA/JGJhc2ljX3N0cmluZ2J1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19zdHJpbmdidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYsaW50KQ0KKz8/MD8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVAQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAxQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPihpbnQpDQorPz8wPyRiYXNpY19zdHJpbmdidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4oY2xhc3MgYmFzaWNfc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLGludCkNCis/PzA/JGJhc2ljX3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQEFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4oaW50KQ0KKz8/MD8kYmFzaWNfc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KGNsYXNzIGJhc2ljX3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJixpbnQpDQorPz8wPyRiYXNpY19zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUBBQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDFASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KGludCkNCis/PzA/JGJhc2ljX3N0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDxjaGFyLGNoYXIsaW50Pjo6Y29kZWN2dDxjaGFyLGNoYXIsaW50PihjbGFzcyBjb2RlY3Z0PGNoYXIsY2hhcixpbnQ+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JGNvZGVjdnRARERIQHN0ZEBAUUFFQEFCVl9Mb2NpbmZvQDFASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0PGNoYXIsY2hhcixpbnQ+Ojpjb2RlY3Z0PGNoYXIsY2hhcixpbnQ+KHVuc2lnbmVkIGludCkNCis/PzA/JGNvZGVjdnRARERIQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD46OmNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+KGNsYXNzIGNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JGNvZGVjdnRAR0RIQHN0ZEBAUUFFQEFCVl9Mb2NpbmZvQDFASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD4odW5zaWduZWQgaW50KQ0KKz8/MD8kY29kZWN2dEBHREhAc3RkQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpjb2xsYXRlPGNoYXI+Ojpjb2xsYXRlPGNoYXI+KGNsYXNzIGNvbGxhdGU8Y2hhcj46Ol9Mb2NpbmZvIGNvbnN0ICYsdW5zaWduZWQgaW50KQ0KKz8/MD8kY29sbGF0ZUBEQHN0ZEBAUUFFQEFCVl9Mb2NpbmZvQDFASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpjb2xsYXRlPGNoYXI+Ojpjb2xsYXRlPGNoYXI+KHVuc2lnbmVkIGludCkNCis/PzA/JGNvbGxhdGVAREBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmNvbGxhdGU8dW5zaWduZWQgc2hvcnQ+Ojpjb2xsYXRlPHVuc2lnbmVkIHNob3J0PihjbGFzcyBjb2xsYXRlPHVuc2lnbmVkIHNob3J0Pjo6X0xvY2luZm8gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wPyRjb2xsYXRlQEdAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmNvbGxhdGU8dW5zaWduZWQgc2hvcnQ+Ojpjb2xsYXRlPHVuc2lnbmVkIHNob3J0Pih1bnNpZ25lZCBpbnQpDQorPz8wPyRjb2xsYXRlQEdAc3RkQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpjb21wbGV4PGZsb2F0Pjo6Y29tcGxleDxmbG9hdD4oZmxvYXQgY29uc3QgJixmbG9hdCBjb25zdCAmKQ0KKz8/MD8kY29tcGxleEBNQHN0ZEBAUUFFQEFCTTBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y29tcGxleDxmbG9hdD46OmNvbXBsZXg8ZmxvYXQ+KGNsYXNzIGNvbXBsZXg8ZmxvYXQ+Ojpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/PzA/JGNvbXBsZXhATUBzdGRAQFFBRUBBQlY/JGNvbXBsZXhATkAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpjb21wbGV4PGZsb2F0Pjo6Y29tcGxleDxmbG9hdD4oY2xhc3MgY29tcGxleDxmbG9hdD46OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorPz8wPyRjb21wbGV4QE1Ac3RkQEBRQUVAQUJWPyRjb21wbGV4QE9AMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y29tcGxleDxkb3VibGU+Ojpjb21wbGV4PGRvdWJsZT4oZG91YmxlIGNvbnN0ICYsZG91YmxlIGNvbnN0ICYpDQorPz8wPyRjb21wbGV4QE5Ac3RkQEBRQUVAQUJOMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpjb21wbGV4PGRvdWJsZT46OmNvbXBsZXg8ZG91YmxlPihjbGFzcyBjb21wbGV4PGRvdWJsZT46OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorPz8wPyRjb21wbGV4QE5Ac3RkQEBRQUVAQUJWPyRjb21wbGV4QE1AMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y29tcGxleDxkb3VibGU+Ojpjb21wbGV4PGRvdWJsZT4oY2xhc3MgY29tcGxleDxkb3VibGU+Ojpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz8/MD8kY29tcGxleEBOQHN0ZEBAUUFFQEFCVj8kY29tcGxleEBPQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+Ojpjb21wbGV4PGxvbmcgZG91YmxlPihsb25nIGRvdWJsZSBjb25zdCAmLGxvbmcgZG91YmxlIGNvbnN0ICYpDQorPz8wPyRjb21wbGV4QE9Ac3RkQEBRQUVAQUJPMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPjo6Y29tcGxleDxsb25nIGRvdWJsZT4oY2xhc3MgY29tcGxleDxsb25nIGRvdWJsZT46OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorPz8wPyRjb21wbGV4QE9Ac3RkQEBRQUVAQUJWPyRjb21wbGV4QE1AMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT46OmNvbXBsZXg8bG9uZyBkb3VibGU+KGNsYXNzIGNvbXBsZXg8bG9uZyBkb3VibGU+Ojpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/PzA/JGNvbXBsZXhAT0BzdGRAQFFBRUBBQlY/JGNvbXBsZXhATkAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpjdHlwZTxjaGFyPjo6Y3R5cGU8Y2hhcj4oY2xhc3MgY3R5cGU8Y2hhcj46Ol9Mb2NpbmZvIGNvbnN0ICYsdW5zaWduZWQgaW50KQ0KKz8/MD8kY3R5cGVAREBzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8Y2hhcj46OmN0eXBlPGNoYXI+KHNob3J0IGNvbnN0ICosYm9vbCx1bnNpZ25lZCBpbnQpDQorPz8wPyRjdHlwZUBEQHN0ZEBAUUFFQFBCRl9OSUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OmN0eXBlPHVuc2lnbmVkIHNob3J0PihjbGFzcyBjdHlwZTx1bnNpZ25lZCBzaG9ydD46Ol9Mb2NpbmZvIGNvbnN0ICYsdW5zaWduZWQgaW50KQ0KKz8/MD8kY3R5cGVAR0BzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+OjpjdHlwZTx1bnNpZ25lZCBzaG9ydD4odW5zaWduZWQgaW50KQ0KKz8/MD8kY3R5cGVAR0BzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzPGNoYXI+OjptZXNzYWdlczxjaGFyPihjbGFzcyBtZXNzYWdlczxjaGFyPjo6X0xvY2luZm8gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wPyRtZXNzYWdlc0BEQHN0ZEBAUUFFQEFCVl9Mb2NpbmZvQDFASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjptZXNzYWdlczxjaGFyPjo6bWVzc2FnZXM8Y2hhcj4odW5zaWduZWQgaW50KQ0KKz8/MD8kbWVzc2FnZXNAREBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pjo6bWVzc2FnZXM8dW5zaWduZWQgc2hvcnQ+KGNsYXNzIG1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pjo6X0xvY2luZm8gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wPyRtZXNzYWdlc0BHQHN0ZEBAUUFFQEFCVl9Mb2NpbmZvQDFASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjptZXNzYWdlczx1bnNpZ25lZCBzaG9ydD46Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pih1bnNpZ25lZCBpbnQpDQorPz8wPyRtZXNzYWdlc0BHQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojptb25leV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID4oY2xhc3MgbW9uZXlfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JG1vbmV5X2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojptb25leV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID4odW5zaWduZWQgaW50KQ0KKz8/MD8kbW9uZXlfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojptb25leV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID4oY2xhc3MgbW9uZXlfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JG1vbmV5X2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojptb25leV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID4odW5zaWduZWQgaW50KQ0KKz8/MD8kbW9uZXlfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojptb25leV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID4oY2xhc3MgbW9uZXlfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JG1vbmV5X3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojptb25leV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID4odW5zaWduZWQgaW50KQ0KKz8/MD8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojptb25leV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID4oY2xhc3MgbW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JG1vbmV5X3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojptb25leV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID4odW5zaWduZWQgaW50KQ0KKz8/MD8kbW9uZXlfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlwdW5jdDxjaGFyLDE+Ojptb25leXB1bmN0PGNoYXIsMT4oY2xhc3MgbW9uZXlwdW5jdDxjaGFyLDE+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JG1vbmV5cHVuY3RARCQwMEBzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlwdW5jdDxjaGFyLDE+Ojptb25leXB1bmN0PGNoYXIsMT4odW5zaWduZWQgaW50KQ0KKz8/MD8kbW9uZXlwdW5jdEBEJDAwQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlwdW5jdDxjaGFyLDA+Ojptb25leXB1bmN0PGNoYXIsMD4oY2xhc3MgbW9uZXlwdW5jdDxjaGFyLDA+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JG1vbmV5cHVuY3RARCQwQUBAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwwPjo6bW9uZXlwdW5jdDxjaGFyLDA+KHVuc2lnbmVkIGludCkNCis/PzA/JG1vbmV5cHVuY3RARCQwQUBAc3RkQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDE+Ojptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDE+KGNsYXNzIG1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMT46Ol9Mb2NpbmZvIGNvbnN0ICYsdW5zaWduZWQgaW50KQ0KKz8/MD8kbW9uZXlwdW5jdEBHJDAwQHN0ZEBAUUFFQEFCVl9Mb2NpbmZvQDFASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDE+Ojptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDE+KHVuc2lnbmVkIGludCkNCis/PzA/JG1vbmV5cHVuY3RARyQwMEBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMD46Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMD4oY2xhc3MgbW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwwPjo6X0xvY2luZm8gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wPyRtb25leXB1bmN0QEckMEFAQHN0ZEBAUUFFQEFCVl9Mb2NpbmZvQDFASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDA+Ojptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDA+KHVuc2lnbmVkIGludCkNCis/PzA/JG1vbmV5cHVuY3RARyQwQUBAc3RkQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KGNsYXNzIG51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9Mb2NpbmZvIGNvbnN0ICYsdW5zaWduZWQgaW50KQ0KKz8/MD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPih1bnNpZ25lZCBpbnQpDQorPz8wPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPihjbGFzcyBudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID4odW5zaWduZWQgaW50KQ0KKz8/MD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID4oY2xhc3MgbnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0xvY2luZm8gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFQEFCVl9Mb2NpbmZvQDFASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KHVuc2lnbmVkIGludCkNCis/PzA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KGNsYXNzIG51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9Mb2NpbmZvIGNvbnN0ICYsdW5zaWduZWQgaW50KQ0KKz8/MD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPih1bnNpZ25lZCBpbnQpDQorPz8wPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46Om51bXB1bmN0PGNoYXI+KGNsYXNzIG51bXB1bmN0PGNoYXI+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JG51bXB1bmN0QERAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PGNoYXI+OjpudW1wdW5jdDxjaGFyPih1bnNpZ25lZCBpbnQpDQorPz8wPyRudW1wdW5jdEBEQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD4oY2xhc3MgbnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JG51bXB1bmN0QEdAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+KHVuc2lnbmVkIGludCkNCis/PzA/JG51bXB1bmN0QEdAc3RkQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID4oY2xhc3MgdGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9Mb2NpbmZvIGNvbnN0ICYsdW5zaWduZWQgaW50KQ0KKz8/MD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPih1bnNpZ25lZCBpbnQpDQorPz8wPyR0aW1lX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPihjbGFzcyB0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0xvY2luZm8gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KHVuc2lnbmVkIGludCkNCis/PzA/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6dGltZV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OnRpbWVfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KGNsYXNzIHRpbWVfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JHRpbWVfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFQEFCVl9Mb2NpbmZvQDFASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjp0aW1lX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6dGltZV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID4odW5zaWduZWQgaW50KQ0KKz8/MD8kdGltZV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjp0aW1lX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6dGltZV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID4oY2xhc3MgdGltZV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9Mb2NpbmZvIGNvbnN0ICYsdW5zaWduZWQgaW50KQ0KKz8/MD8kdGltZV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OnRpbWVfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojp0aW1lX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPih1bnNpZ25lZCBpbnQpDQorPz8wPyR0aW1lX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpJbml0OjpJbml0KHZvaWQpDQorPz8wSW5pdEBpb3NfYmFzZUBzdGRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6X0xvY2luZm86Ol9Mb2NpbmZvKGNsYXNzIF9Mb2NpbmZvOjpfTG9jaW5mbyBjb25zdCAmKQ0KKz8/MF9Mb2NpbmZvQHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpfTG9jaW5mbzo6X0xvY2luZm8oaW50LGNoYXIgY29uc3QgKikNCis/PzBfTG9jaW5mb0BzdGRAQFFBRUBIUEJEQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Ol9Mb2NpbmZvOjpfTG9jaW5mbyhjaGFyIGNvbnN0ICopDQorPz8wX0xvY2luZm9Ac3RkQEBRQUVAUEJEQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Ol9Mb2NraXQ6Ol9Mb2NraXQodm9pZCkNCis/PzBfTG9ja2l0QHN0ZEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpfVGltZXZlYzo6X1RpbWV2ZWMoY2xhc3MgX1RpbWV2ZWM6Ol9UaW1ldmVjIGNvbnN0ICYpDQorPz8wX1RpbWV2ZWNAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Ol9UaW1ldmVjOjpfVGltZXZlYyh2b2lkICopDQorPz8wX1RpbWV2ZWNAc3RkQEBRQUVAUEFYQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Ol9XaW5pdDo6X1dpbml0KHZvaWQpDQorPz8wX1dpbml0QHN0ZEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYWRfYWxsb2M6OmJhZF9hbGxvYyhjbGFzcyBiYWRfYWxsb2M6OmJhZF9hbGxvYyBjb25zdCAmKQ0KKz8/MGJhZF9hbGxvY0BzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFkX2FsbG9jOjpiYWRfYWxsb2MoY2hhciBjb25zdCAqKQ0KKz8/MGJhZF9hbGxvY0BzdGRAQFFBRUBQQkRAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFkX2Nhc3Q6OmJhZF9jYXN0KGNsYXNzIGJhZF9jYXN0OjpiYWRfY2FzdCBjb25zdCAmKQ0KKz8/MGJhZF9jYXN0QHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYWRfY2FzdDo6YmFkX2Nhc3QoY2hhciBjb25zdCAqKQ0KKz8/MGJhZF9jYXN0QHN0ZEBAUUFFQFBCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYWRfZXhjZXB0aW9uOjpiYWRfZXhjZXB0aW9uKGNsYXNzIGJhZF9leGNlcHRpb246OmJhZF9leGNlcHRpb24gY29uc3QgJikNCis/PzBiYWRfZXhjZXB0aW9uQHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYWRfZXhjZXB0aW9uOjpiYWRfZXhjZXB0aW9uKGNoYXIgY29uc3QgKikNCis/PzBiYWRfZXhjZXB0aW9uQHN0ZEBAUUFFQFBCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0X2Jhc2U6OmNvZGVjdnRfYmFzZSh1bnNpZ25lZCBpbnQpDQorPz8wY29kZWN2dF9iYXNlQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGVfYmFzZTo6Y3R5cGVfYmFzZSh1bnNpZ25lZCBpbnQpDQorPz8wY3R5cGVfYmFzZUBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmRvbWFpbl9lcnJvcjo6ZG9tYWluX2Vycm9yKGNsYXNzIGRvbWFpbl9lcnJvcjo6ZG9tYWluX2Vycm9yIGNvbnN0ICYpDQorPz8wZG9tYWluX2Vycm9yQHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpkb21haW5fZXJyb3I6OmRvbWFpbl9lcnJvcihjbGFzcyBkb21haW5fZXJyb3I6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/PzBkb21haW5fZXJyb3JAc3RkQEBRQUVAQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAxQEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgc3RkOjpsb2NhbGU6OmZhY2V0OjpmYWNldCh1bnNpZ25lZCBpbnQpDQorPz8wZmFjZXRAbG9jYWxlQHN0ZEBASUFFQElAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6Omlvc19iYXNlKHZvaWQpDQorPz8waW9zX2Jhc2VAc3RkQEBJQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjppb3NfYmFzZShjbGFzcyBpb3NfYmFzZTo6aW9zX2Jhc2UgY29uc3QgJikNCis/PzBpb3NfYmFzZUBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bGVuZ3RoX2Vycm9yOjpsZW5ndGhfZXJyb3IoY2xhc3MgbGVuZ3RoX2Vycm9yOjpsZW5ndGhfZXJyb3IgY29uc3QgJikNCis/PzBsZW5ndGhfZXJyb3JAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Omxlbmd0aF9lcnJvcjo6bGVuZ3RoX2Vycm9yKGNsYXNzIGxlbmd0aF9lcnJvcjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/MGxlbmd0aF9lcnJvckBzdGRAQFFBRUBBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFAQFoNCis7IHByaXZhdGU6IF9fdGhpc2NhbGwgc3RkOjpsb2NhbGU6OmxvY2FsZShjbGFzcyBsb2NhbGU6OmxvY2FsZTo6X0xvY2ltcCAqKQ0KKz8/MGxvY2FsZUBzdGRAQEFBRUBQQVZfTG9jaW1wQDAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpsb2NhbGU6OmxvY2FsZShjbGFzcyBsb2NhbGU6OmxvY2FsZSBjb25zdCAmLGNsYXNzIGxvY2FsZTo6bG9jYWxlIGNvbnN0ICYsaW50KQ0KKz8/MGxvY2FsZUBzdGRAQFFBRUBBQlYwMUAwSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpsb2NhbGU6OmxvY2FsZShjbGFzcyBsb2NhbGU6OmxvY2FsZSBjb25zdCAmKQ0KKz8/MGxvY2FsZUBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bG9jYWxlOjpsb2NhbGUoY2xhc3MgbG9jYWxlOjpsb2NhbGUgY29uc3QgJixjaGFyIGNvbnN0ICosaW50KQ0KKz8/MGxvY2FsZUBzdGRAQFFBRUBBQlYwMUBQQkRIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmxvY2FsZTo6bG9jYWxlKGNoYXIgY29uc3QgKixpbnQpDQorPz8wbG9jYWxlQHN0ZEBAUUFFQFBCREhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bG9jYWxlOjpsb2NhbGUoZW51bSBsb2NhbGU6Ol9VbmluaXRpYWxpemVkKQ0KKz8/MGxvY2FsZUBzdGRAQFFBRUBXNF9VbmluaXRpYWxpemVkQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmxvY2FsZTo6bG9jYWxlKHZvaWQpDQorPz8wbG9jYWxlQHN0ZEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpsb2dpY19lcnJvcjo6bG9naWNfZXJyb3IoY2xhc3MgbG9naWNfZXJyb3I6OmxvZ2ljX2Vycm9yIGNvbnN0ICYpDQorPz8wbG9naWNfZXJyb3JAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmxvZ2ljX2Vycm9yOjpsb2dpY19lcnJvcihjbGFzcyBsb2dpY19lcnJvcjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/MGxvZ2ljX2Vycm9yQHN0ZEBAUUFFQEFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXNfYmFzZTo6bWVzc2FnZXNfYmFzZSh1bnNpZ25lZCBpbnQpDQorPz8wbWVzc2FnZXNfYmFzZUBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om1vbmV5X2Jhc2U6Om1vbmV5X2Jhc2UodW5zaWduZWQgaW50KQ0KKz8/MG1vbmV5X2Jhc2VAc3RkQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpvc3Ryc3RyZWFtOjpvc3Ryc3RyZWFtKGNoYXIgKixpbnQsaW50KQ0KKz8/MG9zdHJzdHJlYW1Ac3RkQEBRQUVAUEFESEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6b3V0X29mX3JhbmdlOjpvdXRfb2ZfcmFuZ2UoY2xhc3Mgb3V0X29mX3JhbmdlOjpvdXRfb2ZfcmFuZ2UgY29uc3QgJikNCis/PzBvdXRfb2ZfcmFuZ2VAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om91dF9vZl9yYW5nZTo6b3V0X29mX3JhbmdlKGNsYXNzIG91dF9vZl9yYW5nZTo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/MG91dF9vZl9yYW5nZUBzdGRAQFFBRUBBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om92ZXJmbG93X2Vycm9yOjpvdmVyZmxvd19lcnJvcihjbGFzcyBvdmVyZmxvd19lcnJvcjo6b3ZlcmZsb3dfZXJyb3IgY29uc3QgJikNCis/PzBvdmVyZmxvd19lcnJvckBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6b3ZlcmZsb3dfZXJyb3I6Om92ZXJmbG93X2Vycm9yKGNsYXNzIG92ZXJmbG93X2Vycm9yOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz8wb3ZlcmZsb3dfZXJyb3JAc3RkQEBRQUVAQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpyYW5nZV9lcnJvcjo6cmFuZ2VfZXJyb3IoY2xhc3MgcmFuZ2VfZXJyb3I6OnJhbmdlX2Vycm9yIGNvbnN0ICYpDQorPz8wcmFuZ2VfZXJyb3JAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OnJhbmdlX2Vycm9yOjpyYW5nZV9lcnJvcihjbGFzcyByYW5nZV9lcnJvcjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/MHJhbmdlX2Vycm9yQHN0ZEBAUUFFQEFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6cnVudGltZV9lcnJvcjo6cnVudGltZV9lcnJvcihjbGFzcyBydW50aW1lX2Vycm9yOjpydW50aW1lX2Vycm9yIGNvbnN0ICYpDQorPz8wcnVudGltZV9lcnJvckBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6cnVudGltZV9lcnJvcjo6cnVudGltZV9lcnJvcihjbGFzcyBydW50aW1lX2Vycm9yOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz8wcnVudGltZV9lcnJvckBzdGRAQFFBRUBBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OnN0cnN0cmVhbTo6c3Ryc3RyZWFtKGNoYXIgKixpbnQsaW50KQ0KKz8/MHN0cnN0cmVhbUBzdGRAQFFBRUBQQURISEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjp0aW1lX2Jhc2U6OnRpbWVfYmFzZSh1bnNpZ25lZCBpbnQpDQorPz8wdGltZV9iYXNlQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6dW5kZXJmbG93X2Vycm9yOjp1bmRlcmZsb3dfZXJyb3IoY2xhc3MgdW5kZXJmbG93X2Vycm9yOjp1bmRlcmZsb3dfZXJyb3IgY29uc3QgJikNCis/PzB1bmRlcmZsb3dfZXJyb3JAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OnVuZGVyZmxvd19lcnJvcjo6dW5kZXJmbG93X2Vycm9yKGNsYXNzIHVuZGVyZmxvd19lcnJvcjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/MHVuZGVyZmxvd19lcnJvckBzdGRAQFFBRUBBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFAQFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDxjaGFyPjo6fl9NcHVuY3Q8Y2hhcj4odm9pZCkNCis/PzE/JF9NcHVuY3RAREBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6fl9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+KHZvaWQpDQorPz8xPyRfTXB1bmN0QEdAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46On5iYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp+YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6fmJhc2ljX2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KHZvaWQpDQorPz8xPyRiYXNpY19mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46On5iYXNpY19mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KHZvaWQpDQorPz8xPyRiYXNpY19mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6fmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfaWZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46On5iYXNpY19pZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfaWZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6fmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4odm9pZCkNCis/PzE/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46On5iYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzE/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46On5iYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4odm9pZCkNCis/PzE/JGJhc2ljX2lvc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp+YmFzaWNfaW9zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzE/JGJhc2ljX2lvc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp+YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4odm9pZCkNCis/PzE/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6fmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzE/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46On5iYXNpY19pc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfaXN0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojp+YmFzaWNfaXN0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzE/JGJhc2ljX2lzdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46On5iYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4odm9pZCkNCis/PzE/JGJhc2ljX29mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp+YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzE/JGJhc2ljX29mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp+YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4odm9pZCkNCis/PzE/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6fmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzE/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46On5iYXNpY19vc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfb3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojp+YmFzaWNfb3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzE/JGJhc2ljX29zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp+YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6fmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojp+YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46On5iYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KHZvaWQpDQorPz8xPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojp+YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6fmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzE/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46On5iYXNpY19zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KHZvaWQpDQorPz8xPyRiYXNpY19zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojp+YmFzaWNfc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDxjaGFyLGNoYXIsaW50Pjo6fmNvZGVjdnQ8Y2hhcixjaGFyLGludD4odm9pZCkNCis/PzE/JGNvZGVjdnRARERIQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+Ojp+Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD4odm9pZCkNCis/PzE/JGNvZGVjdnRAR0RIQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmNvbGxhdGU8Y2hhcj46On5jb2xsYXRlPGNoYXI+KHZvaWQpDQorPz8xPyRjb2xsYXRlQERAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46On5jb2xsYXRlPHVuc2lnbmVkIHNob3J0Pih2b2lkKQ0KKz8/MT8kY29sbGF0ZUBHQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmN0eXBlPGNoYXI+Ojp+Y3R5cGU8Y2hhcj4odm9pZCkNCis/PzE/JGN0eXBlQERAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+Ojp+Y3R5cGU8dW5zaWduZWQgc2hvcnQ+KHZvaWQpDQorPz8xPyRjdHlwZUBHQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzPGNoYXI+Ojp+bWVzc2FnZXM8Y2hhcj4odm9pZCkNCis/PzE/JG1lc3NhZ2VzQERAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXM8dW5zaWduZWQgc2hvcnQ+Ojp+bWVzc2FnZXM8dW5zaWduZWQgc2hvcnQ+KHZvaWQpDQorPz8xPyRtZXNzYWdlc0BHQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6fm1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPih2b2lkKQ0KKz8/MT8kbW9uZXlfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om1vbmV5X2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6fm1vbmV5X2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPih2b2lkKQ0KKz8/MT8kbW9uZXlfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6fm1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPih2b2lkKQ0KKz8/MT8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om1vbmV5X3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6fm1vbmV5X3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPih2b2lkKQ0KKz8/MT8kbW9uZXlfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwxPjo6fm1vbmV5cHVuY3Q8Y2hhciwxPih2b2lkKQ0KKz8/MT8kbW9uZXlwdW5jdEBEJDAwQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwwPjo6fm1vbmV5cHVuY3Q8Y2hhciwwPih2b2lkKQ0KKz8/MT8kbW9uZXlwdW5jdEBEJDBBQEBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDE+Ojp+bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwxPih2b2lkKQ0KKz8/MT8kbW9uZXlwdW5jdEBHJDAwQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMD46On5tb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDA+KHZvaWQpDQorPz8xPyRtb25leXB1bmN0QEckMEFAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46On5udW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KHZvaWQpDQorPz8xPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46On5udW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KHZvaWQpDQorPz8xPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46On5udW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KHZvaWQpDQorPz8xPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46On5udW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KHZvaWQpDQorPz8xPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PGNoYXI+Ojp+bnVtcHVuY3Q8Y2hhcj4odm9pZCkNCis/PzE/JG51bXB1bmN0QERAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojp+bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+KHZvaWQpDQorPz8xPyRudW1wdW5jdEBHQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojp+dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID4odm9pZCkNCis/PzE/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojp+dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID4odm9pZCkNCis/PzE/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OnRpbWVfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojp+dGltZV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID4odm9pZCkNCis/PzE/JHRpbWVfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OnRpbWVfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojp+dGltZV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID4odm9pZCkNCis/PzE/JHRpbWVfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6SW5pdDo6fkluaXQodm9pZCkNCis/PzFJbml0QGlvc19iYXNlQHN0ZEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpfTG9jaW5mbzo6fl9Mb2NpbmZvKHZvaWQpDQorPz8xX0xvY2luZm9Ac3RkQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Ol9Mb2NraXQ6On5fTG9ja2l0KHZvaWQpDQorPz8xX0xvY2tpdEBzdGRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6X1RpbWV2ZWM6On5fVGltZXZlYyh2b2lkKQ0KKz8/MV9UaW1ldmVjQHN0ZEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpfV2luaXQ6On5fV2luaXQodm9pZCkNCis/PzFfV2luaXRAc3RkQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6YmFkX2FsbG9jOjp+YmFkX2FsbG9jKHZvaWQpDQorPz8xYmFkX2FsbG9jQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhZF9jYXN0Ojp+YmFkX2Nhc3Qodm9pZCkNCis/PzFiYWRfY2FzdEBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpiYWRfZXhjZXB0aW9uOjp+YmFkX2V4Y2VwdGlvbih2b2lkKQ0KKz8/MWJhZF9leGNlcHRpb25Ac3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dF9iYXNlOjp+Y29kZWN2dF9iYXNlKHZvaWQpDQorPz8xY29kZWN2dF9iYXNlQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmN0eXBlX2Jhc2U6On5jdHlwZV9iYXNlKHZvaWQpDQorPz8xY3R5cGVfYmFzZUBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpkb21haW5fZXJyb3I6On5kb21haW5fZXJyb3Iodm9pZCkNCis/PzFkb21haW5fZXJyb3JAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6bG9jYWxlOjpmYWNldDo6fmZhY2V0KHZvaWQpDQorPz8xZmFjZXRAbG9jYWxlQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjp+aW9zX2Jhc2Uodm9pZCkNCis/PzFpb3NfYmFzZUBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjppc3Ryc3RyZWFtOjp+aXN0cnN0cmVhbSh2b2lkKQ0KKz8/MWlzdHJzdHJlYW1Ac3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6bGVuZ3RoX2Vycm9yOjp+bGVuZ3RoX2Vycm9yKHZvaWQpDQorPz8xbGVuZ3RoX2Vycm9yQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpsb2NhbGU6On5sb2NhbGUodm9pZCkNCis/PzFsb2NhbGVAc3RkQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6bG9naWNfZXJyb3I6On5sb2dpY19lcnJvcih2b2lkKQ0KKz8/MWxvZ2ljX2Vycm9yQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzX2Jhc2U6On5tZXNzYWdlc19iYXNlKHZvaWQpDQorPz8xbWVzc2FnZXNfYmFzZUBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjptb25leV9iYXNlOjp+bW9uZXlfYmFzZSh2b2lkKQ0KKz8/MW1vbmV5X2Jhc2VAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6b3N0cnN0cmVhbTo6fm9zdHJzdHJlYW0odm9pZCkNCis/PzFvc3Ryc3RyZWFtQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om91dF9vZl9yYW5nZTo6fm91dF9vZl9yYW5nZSh2b2lkKQ0KKz8/MW91dF9vZl9yYW5nZUBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpvdmVyZmxvd19lcnJvcjo6fm92ZXJmbG93X2Vycm9yKHZvaWQpDQorPz8xb3ZlcmZsb3dfZXJyb3JAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6cmFuZ2VfZXJyb3I6On5yYW5nZV9lcnJvcih2b2lkKQ0KKz8/MXJhbmdlX2Vycm9yQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OnJ1bnRpbWVfZXJyb3I6On5ydW50aW1lX2Vycm9yKHZvaWQpDQorPz8xcnVudGltZV9lcnJvckBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpzdHJzdHJlYW06On5zdHJzdHJlYW0odm9pZCkNCis/PzFzdHJzdHJlYW1Ac3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6c3Ryc3RyZWFtYnVmOjp+c3Ryc3RyZWFtYnVmKHZvaWQpDQorPz8xc3Ryc3RyZWFtYnVmQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OnRpbWVfYmFzZTo6fnRpbWVfYmFzZSh2b2lkKQ0KKz8/MXRpbWVfYmFzZUBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjp1bmRlcmZsb3dfZXJyb3I6On51bmRlcmZsb3dfZXJyb3Iodm9pZCkNCis/PzF1bmRlcmZsb3dfZXJyb3JAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfQ29tcGxleF9iYXNlPGZsb2F0PiAmIF9fdGhpc2NhbGwgc3RkOjpfQ29tcGxleF9iYXNlPGZsb2F0Pjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxmbG9hdD4gY29uc3QgJikNCis/PzQ/JF9Db21wbGV4X2Jhc2VATUBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxkb3VibGU+ICYgX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZG91YmxlPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxkb3VibGU+IGNvbnN0ICYpDQorPz80PyRfQ29tcGxleF9iYXNlQE5Ac3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9Db21wbGV4X2Jhc2U8bG9uZyBkb3VibGU+ICYgX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8bG9uZyBkb3VibGU+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpfQ29tcGxleF9iYXNlPGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz8/ND8kX0NvbXBsZXhfYmFzZUBPQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfQ3RyPGZsb2F0PiAmIF9fdGhpc2NhbGwgc3RkOjpfQ3RyPGZsb2F0Pjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6X0N0cjxmbG9hdD4gY29uc3QgJikNCis/PzQ/JF9DdHJATUBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0N0cjxkb3VibGU+ICYgX190aGlzY2FsbCBzdGQ6Ol9DdHI8ZG91YmxlPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6X0N0cjxkb3VibGU+IGNvbnN0ICYpDQorPz80PyRfQ3RyQE5Ac3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+ICYgX190aGlzY2FsbCBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpfQ3RyPGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz8/ND8kX0N0ckBPQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjphbGxvY2F0b3I8dm9pZD4gJiBfX3RoaXNjYWxsIHN0ZDo6YWxsb2NhdG9yPHZvaWQ+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjphbGxvY2F0b3I8dm9pZD4gY29uc3QgJikNCis/PzQ/JGFsbG9jYXRvckBYQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJikNCis/PzQ/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz80PyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lvc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX2lvc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/ND8kYmFzaWNfaW9zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lvc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYXNpY19pb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/ND8kYmFzaWNfaW9zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/ND8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz80PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJikNCis/PzQ/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/ND8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz80PyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpvcGVyYXRvcj0oY2hhcikNCis/PzQ/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMDFAREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpvcGVyYXRvcj0oY2hhciBjb25zdCAqKQ0KKz8/ND8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYwMUBQQkRAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/ND8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0KQ0KKz8/ND8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQVYwMUBHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/ND8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQVYwMUBQQkdAWg0KKzsgcHVibGljOiBzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiAmIF9fdGhpc2NhbGwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPjo6b3BlcmF0b3I9KHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+IGNvbnN0ICYpDQorPz80PyRjaGFyX3RyYWl0c0BEQHN0ZEBAUUFFQUFVMDFAQUJVMDFAQFoNCis7IHB1YmxpYzogc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ICYgX190aGlzY2FsbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6b3BlcmF0b3I9KHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiBjb25zdCAmKQ0KKz8/ND8kY2hhcl90cmFpdHNAR0BzdGRAQFFBRUFBVTAxQEFCVTAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gJiBfX3RoaXNjYWxsIHN0ZDo6Y29tcGxleDxmbG9hdD46Om9wZXJhdG9yPShmbG9hdCBjb25zdCAmKQ0KKz8/ND8kY29tcGxleEBNQHN0ZEBAUUFFQUFWMDFAQUJNQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAmIF9fdGhpc2NhbGwgc3RkOjpjb21wbGV4PGZsb2F0Pjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/PzQ/JGNvbXBsZXhATUBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICYgX190aGlzY2FsbCBzdGQ6OmNvbXBsZXg8ZG91YmxlPjo6b3BlcmF0b3I9KGRvdWJsZSBjb25zdCAmKQ0KKz8/ND8kY29tcGxleEBOQHN0ZEBAUUFFQUFWMDFAQUJOQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gJiBfX3RoaXNjYWxsIHN0ZDo6Y29tcGxleDxkb3VibGU+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/PzQ/JGNvbXBsZXhATkBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gJiBfX3RoaXNjYWxsIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT46Om9wZXJhdG9yPShsb25nIGRvdWJsZSBjb25zdCAmKQ0KKz8/ND8kY29tcGxleEBPQHN0ZEBAUUFFQUFWMDFAQUJPQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAmIF9fdGhpc2NhbGwgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/PzQ/JGNvbXBsZXhAT0BzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8c2lnbmVkIGNoYXI+ICYgX190aGlzY2FsbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpZ25lZCBjaGFyPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8c2lnbmVkIGNoYXI+IGNvbnN0ICYpDQorPz80PyRudW1lcmljX2xpbWl0c0BDQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czxjaGFyPiAmIF9fdGhpc2NhbGwgc3RkOjpudW1lcmljX2xpbWl0czxjaGFyPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hhcj4gY29uc3QgJikNCis/PzQ/JG51bWVyaWNfbGltaXRzQERAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGNoYXI+ICYgX190aGlzY2FsbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGNoYXI+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBjaGFyPiBjb25zdCAmKQ0KKz8/ND8kbnVtZXJpY19saW1pdHNARUBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8c2hvcnQ+ICYgX190aGlzY2FsbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNob3J0Pjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8c2hvcnQ+IGNvbnN0ICYpDQorPz80PyRudW1lcmljX2xpbWl0c0BGQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBzaG9ydD4gJiBfX3RoaXNjYWxsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgc2hvcnQ+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBzaG9ydD4gY29uc3QgJikNCis/PzQ/JG51bWVyaWNfbGltaXRzQEdAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPGludD4gJiBfX3RoaXNjYWxsIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50PiBjb25zdCAmKQ0KKz8/ND8kbnVtZXJpY19saW1pdHNASEBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgaW50PiAmIF9fdGhpc2NhbGwgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBpbnQ+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBpbnQ+IGNvbnN0ICYpDQorPz80PyRudW1lcmljX2xpbWl0c0BJQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czxsb25nPiAmIF9fdGhpc2NhbGwgc3RkOjpudW1lcmljX2xpbWl0czxsb25nPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZz4gY29uc3QgJikNCis/PzQ/JG51bWVyaWNfbGltaXRzQEpAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGxvbmc+ICYgX190aGlzY2FsbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGxvbmc+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBsb25nPiBjb25zdCAmKQ0KKz8/ND8kbnVtZXJpY19saW1pdHNAS0BzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+ICYgX190aGlzY2FsbCBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+IGNvbnN0ICYpDQorPz80PyRudW1lcmljX2xpbWl0c0BNQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+ICYgX190aGlzY2FsbCBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT4gY29uc3QgJikNCis/PzQ/JG51bWVyaWNfbGltaXRzQE5Ac3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgZG91YmxlPiAmIF9fdGhpc2NhbGwgc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGRvdWJsZT46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz8/ND8kbnVtZXJpY19saW1pdHNAT0BzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8Ym9vbD4gJiBfX3RoaXNjYWxsIHN0ZDo6bnVtZXJpY19saW1pdHM8Ym9vbD46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPGJvb2w+IGNvbnN0ICYpDQorPz80PyRudW1lcmljX2xpbWl0c0BfTkBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aW9zX2Jhc2U6OkluaXQgJiBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6OkluaXQ6Om9wZXJhdG9yPShjbGFzcyBzdGQ6Omlvc19iYXNlOjpJbml0IGNvbnN0ICYpDQorPz80SW5pdEBpb3NfYmFzZUBzdGRAQFFBRUFBVjAxMkBBQlYwMTJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfTG9jaW5mbyAmIF9fdGhpc2NhbGwgc3RkOjpfTG9jaW5mbzo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJikNCis/PzRfTG9jaW5mb0BzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0xvY2tpdCAmIF9fdGhpc2NhbGwgc3RkOjpfTG9ja2l0OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpfTG9ja2l0IGNvbnN0ICYpDQorPz80X0xvY2tpdEBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBzdGQ6Ol9OdW1fYmFzZSAmIF9fdGhpc2NhbGwgc3RkOjpfTnVtX2Jhc2U6Om9wZXJhdG9yPShzdHJ1Y3Qgc3RkOjpfTnVtX2Jhc2UgY29uc3QgJikNCis/PzRfTnVtX2Jhc2VAc3RkQEBRQUVBQVUwMUBBQlUwMUBAWg0KKzsgcHVibGljOiBzdHJ1Y3Qgc3RkOjpfTnVtX2Zsb2F0X2Jhc2UgJiBfX3RoaXNjYWxsIHN0ZDo6X051bV9mbG9hdF9iYXNlOjpvcGVyYXRvcj0oc3RydWN0IHN0ZDo6X051bV9mbG9hdF9iYXNlIGNvbnN0ICYpDQorPz80X051bV9mbG9hdF9iYXNlQHN0ZEBAUUFFQUFVMDFAQUJVMDFAQFoNCis7IHB1YmxpYzogc3RydWN0IHN0ZDo6X051bV9pbnRfYmFzZSAmIF9fdGhpc2NhbGwgc3RkOjpfTnVtX2ludF9iYXNlOjpvcGVyYXRvcj0oc3RydWN0IHN0ZDo6X051bV9pbnRfYmFzZSBjb25zdCAmKQ0KKz8/NF9OdW1faW50X2Jhc2VAc3RkQEBRQUVBQVUwMUBBQlUwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9UaW1ldmVjICYgX190aGlzY2FsbCBzdGQ6Ol9UaW1ldmVjOjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpfVGltZXZlYyBjb25zdCAmKQ0KKz8/NF9UaW1ldmVjQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfV2luaXQgJiBfX3RoaXNjYWxsIHN0ZDo6X1dpbml0OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpfV2luaXQgY29uc3QgJikNCis/PzRfV2luaXRAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhZF9hbGxvYyAmIF9fdGhpc2NhbGwgc3RkOjpiYWRfYWxsb2M6Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhZF9hbGxvYyBjb25zdCAmKQ0KKz8/NGJhZF9hbGxvY0BzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFkX2Nhc3QgJiBfX3RoaXNjYWxsIHN0ZDo6YmFkX2Nhc3Q6Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhZF9jYXN0IGNvbnN0ICYpDQorPz80YmFkX2Nhc3RAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhZF9leGNlcHRpb24gJiBfX3RoaXNjYWxsIHN0ZDo6YmFkX2V4Y2VwdGlvbjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFkX2V4Y2VwdGlvbiBjb25zdCAmKQ0KKz8/NGJhZF9leGNlcHRpb25Ac3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmRvbWFpbl9lcnJvciAmIF9fdGhpc2NhbGwgc3RkOjpkb21haW5fZXJyb3I6Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmRvbWFpbl9lcnJvciBjb25zdCAmKQ0KKz8/NGRvbWFpbl9lcnJvckBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAmIF9fdGhpc2NhbGwgc3RkOjpsb2NhbGU6OmlkOjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpsb2NhbGU6OmlkIGNvbnN0ICYpDQorPz80aWRAbG9jYWxlQHN0ZEBAUUFFQUFWMDEyQEFCVjAxMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omlvc19iYXNlICYgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjppb3NfYmFzZSBjb25zdCAmKQ0KKz8/NGlvc19iYXNlQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsZW5ndGhfZXJyb3IgJiBfX3RoaXNjYWxsIHN0ZDo6bGVuZ3RoX2Vycm9yOjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpsZW5ndGhfZXJyb3IgY29uc3QgJikNCis/PzRsZW5ndGhfZXJyb3JAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmxvY2FsZSAmIF9fdGhpc2NhbGwgc3RkOjpsb2NhbGU6Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmxvY2FsZSBjb25zdCAmKQ0KKz8/NGxvY2FsZUBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bG9naWNfZXJyb3IgJiBfX3RoaXNjYWxsIHN0ZDo6bG9naWNfZXJyb3I6Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmxvZ2ljX2Vycm9yIGNvbnN0ICYpDQorPz80bG9naWNfZXJyb3JAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om91dF9vZl9yYW5nZSAmIF9fdGhpc2NhbGwgc3RkOjpvdXRfb2ZfcmFuZ2U6Om9wZXJhdG9yPShjbGFzcyBzdGQ6Om91dF9vZl9yYW5nZSBjb25zdCAmKQ0KKz8/NG91dF9vZl9yYW5nZUBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3ZlcmZsb3dfZXJyb3IgJiBfX3RoaXNjYWxsIHN0ZDo6b3ZlcmZsb3dfZXJyb3I6Om9wZXJhdG9yPShjbGFzcyBzdGQ6Om92ZXJmbG93X2Vycm9yIGNvbnN0ICYpDQorPz80b3ZlcmZsb3dfZXJyb3JAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJhbmdlX2Vycm9yICYgX190aGlzY2FsbCBzdGQ6OnJhbmdlX2Vycm9yOjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpyYW5nZV9lcnJvciBjb25zdCAmKQ0KKz8/NHJhbmdlX2Vycm9yQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpydW50aW1lX2Vycm9yICYgX190aGlzY2FsbCBzdGQ6OnJ1bnRpbWVfZXJyb3I6Om9wZXJhdG9yPShjbGFzcyBzdGQ6OnJ1bnRpbWVfZXJyb3IgY29uc3QgJikNCis/PzRydW50aW1lX2Vycm9yQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjp1bmRlcmZsb3dfZXJyb3IgJiBfX3RoaXNjYWxsIHN0ZDo6dW5kZXJmbG93X2Vycm9yOjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjp1bmRlcmZsb3dfZXJyb3IgY29uc3QgJikNCis/PzR1bmRlcmZsb3dfZXJyb3JAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj4+KHNob3J0ICYpDQorPz81PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUFGQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I+Pih1bnNpZ25lZCBzaG9ydCAmKQ0KKz8/NT8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQEFBR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPj4oaW50ICYpDQorPz81PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUFIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I+Pih1bnNpZ25lZCBpbnQgJikNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQUlAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj4+KGxvbmcgJikNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQUpAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj4+KHVuc2lnbmVkIGxvbmcgJikNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQUtAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj4+KGZsb2F0ICYpDQorPz81PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUFNQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I+Pihkb3VibGUgJikNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQU5AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj4+KGxvbmcgZG91YmxlICYpDQorPz81PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUFPQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I+Pih2b2lkICogJikNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQVBBWEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPj4oYm9vbCAmKQ0KKz8/NT8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQEFBX05AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiAoX19jZGVjbCopKGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJikpDQorPz81PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAUDZBQUFWMDFAQUFWMDFAQFpAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIChfX2NkZWNsKikoY2xhc3Mgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYpKQ0KKz8/NT8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQFA2QUFBVj8kYmFzaWNfaW9zQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQUFWMjFAQFpAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiAoX19jZGVjbCopKGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJikpDQorPz81PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAUDZBQUFWaW9zX2Jhc2VAMUBBQVYyMUBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICopDQorPz81PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAUEFWPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I+PihzaG9ydCAmKQ0KKz8/NT8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQEFBRkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj4+KHVuc2lnbmVkIHNob3J0ICYpDQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUFHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPj4oaW50ICYpDQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUFIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPj4odW5zaWduZWQgaW50ICYpDQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUFJQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPj4obG9uZyAmKQ0KKz8/NT8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQEFBSkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj4+KHVuc2lnbmVkIGxvbmcgJikNCis/PzU/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQUtAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I+PihmbG9hdCAmKQ0KKz8/NT8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQEFBTUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj4+KGRvdWJsZSAmKQ0KKz8/NT8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQEFBTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj4+KGxvbmcgZG91YmxlICYpDQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUFPQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPj4odm9pZCAqICYpDQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUFQQVhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I+Pihib29sICYpDQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUFfTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIChfX2NkZWNsKikoY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYpKQ0KKz8/NT8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQFA2QUFBVjAxQEFBVjAxQEBaQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiAoX19jZGVjbCopKGNsYXNzIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYpKQ0KKz8/NT8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQFA2QUFBVj8kYmFzaWNfaW9zQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAQUFWMjFAQFpAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6Omlvc19iYXNlICYgKF9fY2RlY2wqKShjbGFzcyBzdGQ6Omlvc19iYXNlICYpKQ0KKz8/NT8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQFA2QUFBVmlvc19iYXNlQDFAQUFWMjFAQFpAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqKQ0KKz8/NT8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQFBBVj8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsc2lnbmVkIGNoYXIgJikNCis/PzVzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAQUFDQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsY2hhciAmKQ0KKz8/NXN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBBQURAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJix1bnNpZ25lZCBjaGFyICYpDQorPz81c3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFBRUBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmKQ0KKz8/NXN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBBQVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAmKQ0KKz8/NXN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBBQVY/JGNvbXBsZXhATUAwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmLGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICYpDQorPz81c3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFBVj8kY29tcGxleEBOQDBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAmKQ0KKz8/NXN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBBQVY/JGNvbXBsZXhAT0AwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmLHNpZ25lZCBjaGFyICopDQorPz81c3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQFBBQ0BaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmLGNoYXIgKikNCis/PzVzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAUEFEQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsdW5zaWduZWQgY2hhciAqKQ0KKz8/NXN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBQQUVAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsdW5zaWduZWQgc2hvcnQgJikNCis/PzVzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAQUFHQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmKQ0KKz8/NXN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBQVYxMEBBQVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmLGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gJikNCis/PzVzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAQUFWPyRjb21wbGV4QE1AMEBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gJikNCis/PzVzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAQUFWPyRjb21wbGV4QE5AMEBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAmKQ0KKz8/NXN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBQVYxMEBBQVY/JGNvbXBsZXhAT0AwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJixzaG9ydCAqKQ0KKz8/NXN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBQVYxMEBQQUZAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsdW5zaWduZWQgc2hvcnQgKikNCis/PzVzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAUEFHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PChzaG9ydCkNCis/PzY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBGQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PCh1bnNpZ25lZCBzaG9ydCkNCis/PzY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PChpbnQpDQorPz82PyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFASEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPDwodW5zaWduZWQgaW50KQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQElAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcjw8KGxvbmcpDQorPz82PyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFASkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPDwodW5zaWduZWQgbG9uZykNCis/PzY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBLQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PChmbG9hdCkNCis/PzY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBNQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PChkb3VibGUpDQorPz82PyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFATkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPDwobG9uZyBkb3VibGUpDQorPz82PyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAT0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIChfX2NkZWNsKikoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmKSkNCis/PzY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBQNkFBQVYwMUBBQVYwMUBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgKF9fY2RlY2wqKShjbGFzcyBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJikpDQorPz82PyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAUDZBQUFWPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBBQVYyMUBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjppb3NfYmFzZSAmIChfX2NkZWNsKikoY2xhc3Mgc3RkOjppb3NfYmFzZSAmKSkNCis/PzY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBQNkFBQVZpb3NfYmFzZUAxQEFBVjIxQEBaQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gKikNCis/PzY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBQQVY/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPDwodm9pZCBjb25zdCAqKQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQFBCWEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPDwoYm9vbCkNCis/PzY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBfTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcjw8KHNob3J0KQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQEZAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I8PCh1bnNpZ25lZCBzaG9ydCkNCis/PzY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPDwoaW50KQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQEhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I8PCh1bnNpZ25lZCBpbnQpDQorPz82PyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFASUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcjw8KGxvbmcpDQorPz82PyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFASkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcjw8KHVuc2lnbmVkIGxvbmcpDQorPz82PyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAS0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcjw8KGZsb2F0KQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQE1AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I8PChkb3VibGUpDQorPz82PyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFATkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcjw8KGxvbmcgZG91YmxlKQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQE9AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiAoX19jZGVjbCopKGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmKSkNCis/PzY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBQNkFBQVYwMUBBQVYwMUBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgKF9fY2RlY2wqKShjbGFzcyBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmKSkNCis/PzY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBQNkFBQVY/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEFBVjIxQEBaQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjppb3NfYmFzZSAmIChfX2NkZWNsKikoY2xhc3Mgc3RkOjppb3NfYmFzZSAmKSkNCis/PzY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBQNkFBQVZpb3NfYmFzZUAxQEFBVjIxQEBaQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gKikNCis/PzY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBQQVY/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcjw8KHZvaWQgY29uc3QgKikNCis/PzY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBQQlhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I8PChib29sKQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQF9OQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz82c3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorPz82c3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFCVj8kY29tcGxleEBNQDBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/PzZzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAQUJWPyRjb21wbGV4QE5AMEBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJixjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorPz82c3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFCVj8kY29tcGxleEBPQDBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsc2lnbmVkIGNoYXIpDQorPz82c3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQENAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJixjaGFyKQ0KKz8/NnN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBEQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsdW5zaWduZWQgY2hhcikNCis/PzZzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBARUBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmLHNpZ25lZCBjaGFyIGNvbnN0ICopDQorPz82c3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQFBCQ0BaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmLGNoYXIgY29uc3QgKikNCis/PzZzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAUEJEQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsdW5zaWduZWQgY2hhciBjb25zdCAqKQ0KKz8/NnN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBQQkVAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz82c3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQEFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz8/NnN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBQVYxMEBBQlY/JGNvbXBsZXhATUAwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz8/NnN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBQVYxMEBBQlY/JGNvbXBsZXhATkAwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJixjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorPz82c3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQEFCVj8kY29tcGxleEBPQDBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmLHVuc2lnbmVkIHNob3J0KQ0KKz8/NnN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBQVYxMEBHQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmLHNob3J0IGNvbnN0ICopDQorPz82c3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQFBCRkBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/NnN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBQVYxMEBQQkdAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6b3BlcmF0b3IhKHZvaWQpY29uc3QgDQorPz83aW9zX2Jhc2VAc3RkQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6OmxvY2FsZTo6b3BlcmF0b3I9PShjbGFzcyBzdGQ6OmxvY2FsZSBjb25zdCAmKWNvbnN0IA0KKz8/OGxvY2FsZUBzdGRAQFFCRV9OQUJWMDFAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPT0oZmxvYXQgY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorPz84c3RkQEBZQV9OQUJNQUJWPyRjb21wbGV4QE1AMEBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PShkb3VibGUgY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz8/OHN0ZEBAWUFfTkFCTkFCVj8kY29tcGxleEBOQDBAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPT0obG9uZyBkb3VibGUgY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorPz84c3RkQEBZQV9OQUJPQUJWPyRjb21wbGV4QE9AMEBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/PzhzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj09KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLGNoYXIgY29uc3QgKikNCis/PzhzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEJEQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPT0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz84c3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQDBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/OHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBQQkdAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PShjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz8/OHN0ZEBAWUFfTkFCVj8kY29tcGxleEBNQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj09KGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJixmbG9hdCBjb25zdCAmKQ0KKz8/OHN0ZEBAWUFfTkFCVj8kY29tcGxleEBNQDBAQUJNQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPT0oY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz8/OHN0ZEBAWUFfTkFCVj8kY29tcGxleEBOQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj09KGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYsZG91YmxlIGNvbnN0ICYpDQorPz84c3RkQEBZQV9OQUJWPyRjb21wbGV4QE5AMEBBQk5AWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PShjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz8/OHN0ZEBAWUFfTkFCVj8kY29tcGxleEBPQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj09KGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJixsb25nIGRvdWJsZSBjb25zdCAmKQ0KKz8/OHN0ZEBAWUFfTkFCVj8kY29tcGxleEBPQDBAQUJPQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPT0oY2hhciBjb25zdCAqLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/OHN0ZEBAWUFfTlBCREFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/OHN0ZEBAWUFfTlBCR0FCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgc3RkOjpsb2NhbGU6Om9wZXJhdG9yIT0oY2xhc3Mgc3RkOjpsb2NhbGUgY29uc3QgJiljb25zdCANCis/Pzlsb2NhbGVAc3RkQEBRQkVfTkFCVjAxQEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvciE9KGZsb2F0IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz8/OXN0ZEBAWUFfTkFCTUFCVj8kY29tcGxleEBNQDBAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yIT0oZG91YmxlIGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/PzlzdGRAQFlBX05BQk5BQlY/JGNvbXBsZXhATkAwQEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvciE9KGxvbmcgZG91YmxlIGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz8/OXN0ZEBAWUFfTkFCT0FCVj8kY29tcGxleEBPQDBAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yIT0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz85c3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQDBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IhPShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJixjaGFyIGNvbnN0ICopDQorPz85c3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQFBCREBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvciE9KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/OXN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEAwQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yIT0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzlzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAUEJHQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yIT0oY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/PzlzdGRAQFlBX05BQlY/JGNvbXBsZXhATUAwQDBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IhPShjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYsZmxvYXQgY29uc3QgJikNCis/PzlzdGRAQFlBX05BQlY/JGNvbXBsZXhATUAwQEFCTUBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvciE9KGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/PzlzdGRAQFlBX05BQlY/JGNvbXBsZXhATkAwQDBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IhPShjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmLGRvdWJsZSBjb25zdCAmKQ0KKz8/OXN0ZEBAWUFfTkFCVj8kY29tcGxleEBOQDBAQUJOQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yIT0oY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/PzlzdGRAQFlBX05BQlY/JGNvbXBsZXhAT0AwQDBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IhPShjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYsbG9uZyBkb3VibGUgY29uc3QgJikNCis/PzlzdGRAQFlBX05BQlY/JGNvbXBsZXhAT0AwQEFCT0BaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvciE9KGNoYXIgY29uc3QgKixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/PzlzdGRAQFlBX05QQkRBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yIT0odW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/PzlzdGRAQFlBX05QQkdBQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFoNCis7IHB1YmxpYzogY2hhciAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpvcGVyYXRvcltdKHVuc2lnbmVkIGludCkNCis/P0E/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFESUBaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6b3BlcmF0b3JbXSh1bnNpZ25lZCBpbnQpY29uc3QgDQorPz9BPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUFCRElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcltdKHVuc2lnbmVkIGludCkNCis/P0E/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFHSUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yW10odW5zaWduZWQgaW50KWNvbnN0IA0KKz8/QT8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVBQkdJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmxvY2FsZTo6aWQ6Om9wZXJhdG9yIHVuc2lnbmVkIGludCh2b2lkKQ0KKz8/QmlkQGxvY2FsZUBzdGRAQFFBRUlYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6Om9wZXJhdG9yIHZvaWQgKih2b2lkKWNvbnN0IA0KKz8/Qmlvc19iYXNlQHN0ZEBAUUJFUEFYWFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvciooZmxvYXQgY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorPz9Ec3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJNQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvciooY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/P0RzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvciooY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmLGZsb2F0IGNvbnN0ICYpDQorPz9Ec3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAQUJNQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IqKGRvdWJsZSBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorPz9Ec3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUJOQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IqKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/P0RzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IqKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYsZG91YmxlIGNvbnN0ICYpDQorPz9Ec3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQUJOQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcioobG9uZyBkb3VibGUgY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorPz9Ec3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUJPQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvciooY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/P0RzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvciooY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmLGxvbmcgZG91YmxlIGNvbnN0ICYpDQorPz9Ec3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAQUJPQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci0oZmxvYXQgY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorPz9Hc3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJNQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci0oY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/P0dzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci0oY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz8/R3N0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3ItKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJixmbG9hdCBjb25zdCAmKQ0KKz8/R3N0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQEFCTUBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLShkb3VibGUgY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz8/R3N0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCTkFCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLShjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorPz9Hc3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAMEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLShjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz8/R3N0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLShjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmLGRvdWJsZSBjb25zdCAmKQ0KKz8/R3N0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCVjEwQEFCTkBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3ItKGxvbmcgZG91YmxlIGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz8/R3N0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFCT0FCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3ItKGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorPz9Hc3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAMEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3ItKGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/P0dzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLShjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYsbG9uZyBkb3VibGUgY29uc3QgJikNCis/P0dzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEBBQk9AWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/SHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQUJWMTBAMEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsY2hhcikNCis/P0hzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEFCVjEwQERAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLGNoYXIgY29uc3QgKikNCis/P0hzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEFCVjEwQFBCREBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoY2hhcixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/P0hzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQERBQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGNoYXIgY29uc3QgKixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/P0hzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQFBCREFCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz9Ic3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBBQlYxMEAwQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJix1bnNpZ25lZCBzaG9ydCkNCis/P0hzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEFCVjEwQEdAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz9Ic3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBBQlYxMEBQQkdAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/SHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAR0FCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/P0hzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQFBCR0FCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGZsb2F0IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz8/SHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFCTUFCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorPz9Ic3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAMEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/P0hzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYsZmxvYXQgY29uc3QgJikNCis/P0hzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBBQk1AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoZG91YmxlIGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/P0hzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQk5BQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz8/SHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCVjEwQDBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/P0hzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJixkb3VibGUgY29uc3QgJikNCis/P0hzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEBBQk5AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhsb25nIGRvdWJsZSBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/P0hzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQk9BQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz8/SHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQDBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorPz9Ic3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmLGxvbmcgZG91YmxlIGNvbnN0ICYpDQorPz9Ic3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAQUJPQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci8oZmxvYXQgY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorPz9Lc3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJNQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci8oY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/P0tzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci8oY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmLGZsb2F0IGNvbnN0ICYpDQorPz9Lc3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAQUJNQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IvKGRvdWJsZSBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorPz9Lc3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUJOQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IvKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/P0tzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IvKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYsZG91YmxlIGNvbnN0ICYpDQorPz9Lc3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQUJOQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci8obG9uZyBkb3VibGUgY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorPz9Lc3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUJPQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci8oY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/P0tzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci8oY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmLGxvbmcgZG91YmxlIGNvbnN0ICYpDQorPz9Lc3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAQUJPQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPChjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/P01zdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjwoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsY2hhciBjb25zdCAqKQ0KKz8/TXN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBQQkRAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/TXN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEAwQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPChjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/TXN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBQQkdAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8KGNoYXIgY29uc3QgKixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/P01zdGRAQFlBX05QQkRBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/TXN0ZEBAWUFfTlBCR0FCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/P05zdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw9KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLGNoYXIgY29uc3QgKikNCis/P05zdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEJEQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPD0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz9Oc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQDBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/TnN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBQQkdAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PShjaGFyIGNvbnN0ICosY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz9Oc3RkQEBZQV9OUEJEQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz9Oc3RkQEBZQV9OUEJHQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz9Pc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQDBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLGNoYXIgY29uc3QgKikNCis/P09zdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEJEQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/P09zdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/P09zdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAUEJHQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPihjaGFyIGNvbnN0ICosY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz9Pc3RkQEBZQV9OUEJEQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4odW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/P09zdGRAQFlBX05QQkdBQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz9Qc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQDBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJixjaGFyIGNvbnN0ICopDQorPz9Qc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQFBCREBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj49KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/UHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEAwQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/P1BzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAUEJHQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj0oY2hhciBjb25zdCAqLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/UHN0ZEBAWUFfTlBCREFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/UHN0ZEBAWUFfTlBCR0FCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgc3RkOjpsb2NhbGU6Om9wZXJhdG9yKCkoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpY29uc3QgDQorPz9SbG9jYWxlQHN0ZEBAUUJFX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFAMEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxmbG9hdD4gJiBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxmbG9hdD46Om9wZXJhdG9yKj0oZmxvYXQgY29uc3QgJikNCis/P1g/JF9Db21wbGV4X2Jhc2VATUBzdGRAQFFBRUFBVjAxQEFCTUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxkb3VibGU+ICYgX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZG91YmxlPjo6b3BlcmF0b3IqPShkb3VibGUgY29uc3QgJikNCis/P1g/JF9Db21wbGV4X2Jhc2VATkBzdGRAQFFBRUFBVjAxQEFCTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT4gJiBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT46Om9wZXJhdG9yKj0obG9uZyBkb3VibGUgY29uc3QgJikNCis/P1g/JF9Db21wbGV4X2Jhc2VAT0BzdGRAQFFBRUFBVjAxQEFCT0BaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKj0oY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAmLGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/P1hzdGRAQFlBQUFWPyRjb21wbGV4QE1AMEBBQVYxMEBBQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IqPShjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAmLGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorPz9Yc3RkQEBZQUFBVj8kY29tcGxleEBOQDBAQUFWMTBAQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IqPShjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz8/WHN0ZEBAWUFBQVY/JGNvbXBsZXhAT0AwQEFBVjEwQEFCVjEwQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxmbG9hdD4gJiBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxmbG9hdD46Om9wZXJhdG9yKz0oZmxvYXQgY29uc3QgJikNCis/P1k/JF9Db21wbGV4X2Jhc2VATUBzdGRAQFFBRUFBVjAxQEFCTUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxkb3VibGU+ICYgX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZG91YmxlPjo6b3BlcmF0b3IrPShkb3VibGUgY29uc3QgJikNCis/P1k/JF9Db21wbGV4X2Jhc2VATkBzdGRAQFFBRUFBVjAxQEFCTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT4gJiBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT46Om9wZXJhdG9yKz0obG9uZyBkb3VibGUgY29uc3QgJikNCis/P1k/JF9Db21wbGV4X2Jhc2VAT0BzdGRAQFFBRUFBVjAxQEFCT0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpvcGVyYXRvcis9KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/WT8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6b3BlcmF0b3IrPShjaGFyKQ0KKz8/WT8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYwMUBEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Om9wZXJhdG9yKz0oY2hhciBjb25zdCAqKQ0KKz8/WT8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYwMUBQQkRAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3IrPShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/P1k/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yKz0odW5zaWduZWQgc2hvcnQpDQorPz9ZPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjAxQEdAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3IrPSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/WT8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQVYwMUBQQkdAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcis9KGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorPz9Zc3RkQEBZQUFBVj8kY29tcGxleEBNQDBAQUFWMTBAQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKz0oY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz8/WXN0ZEBAWUFBQVY/JGNvbXBsZXhATkAwQEFBVjEwQEFCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKz0oY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAmLGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/P1lzdGRAQFlBQUFWPyRjb21wbGV4QE9AMEBBQVYxMEBBQlYxMEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+ICYgX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+OjpvcGVyYXRvci09KGZsb2F0IGNvbnN0ICYpDQorPz9aPyRfQ29tcGxleF9iYXNlQE1Ac3RkQEBRQUVBQVYwMUBBQk1AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZG91YmxlPiAmIF9fdGhpc2NhbGwgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT46Om9wZXJhdG9yLT0oZG91YmxlIGNvbnN0ICYpDQorPz9aPyRfQ29tcGxleF9iYXNlQE5Ac3RkQEBRQUVBQVYwMUBBQk5AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9Db21wbGV4X2Jhc2U8bG9uZyBkb3VibGU+ICYgX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8bG9uZyBkb3VibGU+OjpvcGVyYXRvci09KGxvbmcgZG91YmxlIGNvbnN0ICYpDQorPz9aPyRfQ29tcGxleF9iYXNlQE9Ac3RkQEBRQUVBQVYwMUBBQk9AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvci09KGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorPz9ac3RkQEBZQUFBVj8kY29tcGxleEBNQDBAQUFWMTBAQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLT0oY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz8/WnN0ZEBAWUFBQVY/JGNvbXBsZXhATkAwQEFBVjEwQEFCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLT0oY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAmLGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/P1pzdGRAQFlBQUFWPyRjb21wbGV4QE9AMEBBQVYxMEBBQlYxMEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+ICYgX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+OjpvcGVyYXRvci89KGZsb2F0IGNvbnN0ICYpDQorPz9fMD8kX0NvbXBsZXhfYmFzZUBNQHN0ZEBAUUFFQUFWMDFAQUJNQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT4gJiBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxkb3VibGU+OjpvcGVyYXRvci89KGRvdWJsZSBjb25zdCAmKQ0KKz8/XzA/JF9Db21wbGV4X2Jhc2VATkBzdGRAQFFBRUFBVjAxQEFCTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT4gJiBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT46Om9wZXJhdG9yLz0obG9uZyBkb3VibGUgY29uc3QgJikNCis/P18wPyRfQ29tcGxleF9iYXNlQE9Ac3RkQEBRQUVBQVYwMUBBQk9AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvci89KGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorPz9fMHN0ZEBAWUFBQVY/JGNvbXBsZXhATUAwQEFBVjEwQEFCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvci89KGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/P18wc3RkQEBZQUFBVj8kY29tcGxleEBOQDBAQUFWMTBAQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IvPShjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz8/XzBzdGRAQFlBQUFWPyRjb21wbGV4QE9AMEBBQVYxMEBBQlYxMEBAWg0KKzsgY29uc3QgIHN0ZDo6X01wdW5jdDxjaGFyPjo6YHZmdGFibGUnDQorPz9fNz8kX01wdW5jdEBEQHN0ZEBANkJAIERBVEENCis7IGNvbnN0ICBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpgdmZ0YWJsZScNCis/P183PyRfTXB1bmN0QEdAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBANkJAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfaWZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX2lmc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBANkJAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX2lvc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBANkJAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2lvc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19pb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBANkJAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19pc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX2lzdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX29mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBANkJAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX29mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19vZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBANkJAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19vc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX29zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6Y29kZWN2dDxjaGFyLGNoYXIsaW50Pjo6YHZmdGFibGUnDQorPz9fNz8kY29kZWN2dEBEREhAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD46OmB2ZnRhYmxlJw0KKz8/Xzc/JGNvZGVjdnRAR0RIQHN0ZEBANkJAIERBVEENCis7IGNvbnN0ICBzdGQ6OmNvbGxhdGU8Y2hhcj46OmB2ZnRhYmxlJw0KKz8/Xzc/JGNvbGxhdGVAREBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpjb2xsYXRlPHVuc2lnbmVkIHNob3J0Pjo6YHZmdGFibGUnDQorPz9fNz8kY29sbGF0ZUBHQHN0ZEBANkJAIERBVEENCis7IGNvbnN0ICBzdGQ6OmN0eXBlPGNoYXI+OjpgdmZ0YWJsZScNCis/P183PyRjdHlwZUBEQHN0ZEBANkJAIERBVEENCis7IGNvbnN0ICBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6YHZmdGFibGUnDQorPz9fNz8kY3R5cGVAR0BzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjptZXNzYWdlczxjaGFyPjo6YHZmdGFibGUnDQorPz9fNz8kbWVzc2FnZXNAREBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjptZXNzYWdlczx1bnNpZ25lZCBzaG9ydD46OmB2ZnRhYmxlJw0KKz8/Xzc/JG1lc3NhZ2VzQEdAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6bW9uZXlfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpgdmZ0YWJsZScNCis/P183PyRtb25leV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6bW9uZXlfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpgdmZ0YWJsZScNCis/P183PyRtb25leV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6bW9uZXlfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpgdmZ0YWJsZScNCis/P183PyRtb25leV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpgdmZ0YWJsZScNCis/P183PyRtb25leV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6bW9uZXlwdW5jdDxjaGFyLDE+OjpgdmZ0YWJsZScNCis/P183PyRtb25leXB1bmN0QEQkMDBAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6bW9uZXlwdW5jdDxjaGFyLDA+OjpgdmZ0YWJsZScNCis/P183PyRtb25leXB1bmN0QEQkMEFAQHN0ZEBANkJAIERBVEENCis7IGNvbnN0ICBzdGQ6Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMT46OmB2ZnRhYmxlJw0KKz8/Xzc/JG1vbmV5cHVuY3RARyQwMEBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDA+OjpgdmZ0YWJsZScNCis/P183PyRtb25leXB1bmN0QEckMEFAQHN0ZEBANkJAIERBVEENCis7IGNvbnN0ICBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6YHZmdGFibGUnDQorPz9fNz8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpgdmZ0YWJsZScNCis/P183PyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBANkJAIERBVEENCis7IGNvbnN0ICBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JG51bV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46OmB2ZnRhYmxlJw0KKz8/Xzc/JG51bXB1bmN0QERAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpgdmZ0YWJsZScNCis/P183PyRudW1wdW5jdEBHQHN0ZEBANkJAIERBVEENCis7IGNvbnN0ICBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpgdmZ0YWJsZScNCis/P183PyR0aW1lX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6YHZmdGFibGUnDQorPz9fNz8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6dGltZV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JHRpbWVfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBANkJAIERBVEENCis7IGNvbnN0ICBzdGQ6OnRpbWVfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpgdmZ0YWJsZScNCis/P183PyR0aW1lX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYWRfYWxsb2M6OmB2ZnRhYmxlJw0KKz8/XzdiYWRfYWxsb2NAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFkX2Nhc3Q6OmB2ZnRhYmxlJw0KKz8/XzdiYWRfY2FzdEBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYWRfZXhjZXB0aW9uOjpgdmZ0YWJsZScNCis/P183YmFkX2V4Y2VwdGlvbkBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpjb2RlY3Z0X2Jhc2U6OmB2ZnRhYmxlJw0KKz8/Xzdjb2RlY3Z0X2Jhc2VAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6Y3R5cGVfYmFzZTo6YHZmdGFibGUnDQorPz9fN2N0eXBlX2Jhc2VAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6ZG9tYWluX2Vycm9yOjpgdmZ0YWJsZScNCis/P183ZG9tYWluX2Vycm9yQHN0ZEBANkJAIERBVEENCis7IGNvbnN0ICBzdGQ6OmxvY2FsZTo6ZmFjZXQ6OmB2ZnRhYmxlJw0KKz8/XzdmYWNldEBsb2NhbGVAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6aW9zX2Jhc2U6OmB2ZnRhYmxlJw0KKz8/Xzdpb3NfYmFzZUBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpsZW5ndGhfZXJyb3I6OmB2ZnRhYmxlJw0KKz8/XzdsZW5ndGhfZXJyb3JAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6bG9naWNfZXJyb3I6OmB2ZnRhYmxlJw0KKz8/Xzdsb2dpY19lcnJvckBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjptZXNzYWdlc19iYXNlOjpgdmZ0YWJsZScNCis/P183bWVzc2FnZXNfYmFzZUBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjptb25leV9iYXNlOjpgdmZ0YWJsZScNCis/P183bW9uZXlfYmFzZUBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpvdXRfb2ZfcmFuZ2U6OmB2ZnRhYmxlJw0KKz8/XzdvdXRfb2ZfcmFuZ2VAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6b3ZlcmZsb3dfZXJyb3I6OmB2ZnRhYmxlJw0KKz8/XzdvdmVyZmxvd19lcnJvckBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpyYW5nZV9lcnJvcjo6YHZmdGFibGUnDQorPz9fN3JhbmdlX2Vycm9yQHN0ZEBANkJAIERBVEENCis7IGNvbnN0ICBzdGQ6OnJ1bnRpbWVfZXJyb3I6OmB2ZnRhYmxlJw0KKz8/XzdydW50aW1lX2Vycm9yQHN0ZEBANkJAIERBVEENCis7IGNvbnN0ICBzdGQ6OnRpbWVfYmFzZTo6YHZmdGFibGUnDQorPz9fN3RpbWVfYmFzZUBzdGRAQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkOjp1bmRlcmZsb3dfZXJyb3I6OmB2ZnRhYmxlJw0KKz8/Xzd1bmRlcmZsb3dfZXJyb3JAc3RkQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YnRhYmxlJ3tmb3IgYHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4nfQ0KKz8/Xzg/JGJhc2ljX2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEA3Qj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YnRhYmxlJ3tmb3IgYHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4nfQ0KKz8/Xzg/JGJhc2ljX2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEA3Qj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZidGFibGUne2ZvciBgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+J30NCis/P184PyRiYXNpY19mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAN0I/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2YnRhYmxlJ3tmb3IgYHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPid9DQorPz9fOD8kYmFzaWNfZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQDdCPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19pZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YnRhYmxlJw0KKz8/Xzg/JGJhc2ljX2lmc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAN0JAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJ0YWJsZScNCis/P184PyRiYXNpY19pZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQDdCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YnRhYmxlJ3tmb3IgYHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4nfQ0KKz8/Xzg/JGJhc2ljX2lvc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAN0I/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2lvc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YHZidGFibGUne2ZvciBgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPid9DQorPz9fOD8kYmFzaWNfaW9zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEA3Qj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaW9zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2YnRhYmxlJ3tmb3IgYHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPid9DQorPz9fOD8kYmFzaWNfaW9zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEA3Qj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaW9zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2YnRhYmxlJ3tmb3IgYHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPid9DQorPz9fOD8kYmFzaWNfaW9zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEA3Qj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YnRhYmxlJw0KKz8/Xzg/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEA3QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZidGFibGUnDQorPz9fOD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQDdCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YHZidGFibGUnDQorPz9fOD8kYmFzaWNfaXN0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAN0JAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJ0YWJsZScNCis/P184PyRiYXNpY19pc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEA3QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJ0YWJsZScNCis/P184PyRiYXNpY19vZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQDdCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZidGFibGUnDQorPz9fOD8kYmFzaWNfb2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEA3QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YnRhYmxlJw0KKz8/Xzg/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEA3QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZidGFibGUnDQorPz9fOD8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQDdCQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YHZidGFibGUnDQorPz9fOD8kYmFzaWNfb3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAN0JAIERBVEENCis7IGNvbnN0ICBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJ0YWJsZScNCis/P184PyRiYXNpY19vc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEA3QkAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YHZidGFibGUne2ZvciBgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPid9DQorPz9fOD8kYmFzaWNfc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEA3Qj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YHZidGFibGUne2ZvciBgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPid9DQorPz9fOD8kYmFzaWNfc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEA3Qj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEAgREFUQQ0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YHZidGFibGUne2ZvciBgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+J30NCis/P184PyRiYXNpY19zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQDdCPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAQCBEQVRBDQorOyBjb25zdCAgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJ0YWJsZSd7Zm9yIGBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4nfQ0KKz8/Xzg/JGJhc2ljX3N0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAN0I/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBAIERBVEENCis7IGBzdHJpbmcnDQorPz9fQ0BfMDBBQD8kQUFAIERBVEENCis7IGBzdHJpbmcnDQorPz9fQ0BfMDFGS0hKQEM/JEFBQCBEQVRBDQorOyBgc3RyaW5nJw0KKz8/X0NAXzAxR0pEQD85PyRBQUAgREFUQQ0KKzsgYHN0cmluZycNCis/P19DQF8wMUtGQUxART8kQUFAIERBVEENCis7IGBzdHJpbmcnDQorPz9fQ0BfMDFLTUFFQD8wPyRBQUAgREFUQQ0KKzsgYHN0cmluZycNCis/P19DQF8wMVBIT0xAZT8kQUFAIERBVEENCis7IGBzdHJpbmcnDQorPz9fQ0BfMDJFTENCQG5vPyRBQUAgREFUQQ0KKzsgYHN0cmluZycNCis/P19DQF8wMk1IQUNAPyRDRnA/JEFBQCBEQVRBDQorOyBgc3RyaW5nJw0KKz8/X0NAXzAzTEdLSUB5ZXM/JEFBQCBEQVRBDQorOyBgc3RyaW5nJw0KKz8/X0NAXzA0SERCSUAkPyRDTHZ4PyRBQUAgREFUQQ0KKzsgYHN0cmluZycNCis/P19DQF8wNEhISURAPyRDQj8kQ0Z4PyRBQT8kQUFAIERBVEENCis7IGBzdHJpbmcnDQorPz9fQ0BfMDROQ0NEQHRydWU/JEFBQCBEQVRBDQorOyBgc3RyaW5nJw0KKz8/X0NAXzA1RkZKQ0A/JENGPzQwTGY/JEFBQCBEQVRBDQorOyBgc3RyaW5nJw0KKz8/X0NAXzA1TkFHT0BmYWxzZT8kQUFAIERBVEENCis7IGBzdHJpbmcnDQorPz9fQ0BfMDhKSExCQGJhZD81Y2FzdD8kQUFAIERBVEENCis7IGBzdHJpbmcnDQorPz9fQ0BfMEJIQENGQUlAMDEyMzQ1Njc4OWFiY2RlZkFCQ0RFRj8kQUFAIERBVEENCis7IGBzdHJpbmcnDQorPz9fQ0BfMEZCQFBOQUJAPyRDTHYkeD8kQ0x2JHh2JD8kQ0x4dj8kQ0wkeHYkPyRDTHg/JENMJHZ4PyRDTCR2eCR2PyRDTHhAIERBVEENCis7IGBzdHJpbmcnDQorPz9fQ0BfMEZHQElMRU5APzNTdW4/M1N1bmRheT8zTW9uPzNNb25kYXk/M1R1ZT8zVHVlc2RAIERBVEENCis7IGBzdHJpbmcnDQorPz9fQ0BfMElIQEpMTEFAPzNKYW4/M0phbnVhcnk/M0ZlYj8zRmVicnVhcnk/M01hcj8zTWFAIERBVEENCis7IGBzdHJpbmcnDQorPz9fQ0BfME9ATkxITUBiYWQ/NWV4Y2VwdGlvbj8kQUFAIERBVEENCis7IGBzdHJpbmcnDQorPz9fQ0BfMFBATEpOQUBiYWQ/NWFsbG9jYXRpb24/JEFBQCBEQVRBDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EPyRiYXNpY19mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0Q/JGJhc2ljX2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EPyRiYXNpY19pZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRD8kYmFzaWNfaWZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EPyRiYXNpY19pb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRD8kYmFzaWNfaW9zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0Q/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRD8kYmFzaWNfaXN0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EPyRiYXNpY19pc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EPyRiYXNpY19vZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRD8kYmFzaWNfb2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0Q/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRD8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRD8kYmFzaWNfb3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EPyRiYXNpY19vc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRD8kYmFzaWNfc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRD8kYmFzaWNfc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kYmFzaWNfaXN0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JGJhc2ljX2lzdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRiYXNpY19vc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kYmFzaWNfb3N0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JGJhc2ljX3N0cmluZ2J1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRiYXNpY19zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JGJhc2ljX3N0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnQ8Y2hhcixjaGFyLGludD46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kY29kZWN2dEBEREhAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kY29kZWN2dEBHREhAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTxjaGFyPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRjb2xsYXRlQERAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kY29sbGF0ZUBHQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmNvbXBsZXg8ZmxvYXQ+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JGNvbXBsZXhATUBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpjb21wbGV4PGRvdWJsZT46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kY29tcGxleEBOQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JGNvbXBsZXhAT0BzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTxjaGFyPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRjdHlwZUBEQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRjdHlwZUBHQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzPGNoYXI+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JG1lc3NhZ2VzQERAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXM8dW5zaWduZWQgc2hvcnQ+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JG1lc3NhZ2VzQEdAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JG1vbmV5X2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjptb25leV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kbW9uZXlfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRtb25leV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JG1vbmV5X3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjptb25leXB1bmN0PGNoYXIsMT46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kbW9uZXlwdW5jdEBEJDAwQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwwPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRtb25leXB1bmN0QEQkMEFAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMT46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kbW9uZXlwdW5jdEBHJDAwQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMD46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kbW9uZXlwdW5jdEBHJDBBQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JG51bV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kbnVtcHVuY3RAREBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kbnVtcHVuY3RAR0BzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyR0aW1lX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjp0aW1lX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyR0aW1lX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjp0aW1lX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyR0aW1lX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpfTG9jaW5mbzo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GX0xvY2luZm9Ac3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6X1RpbWV2ZWM6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRl9UaW1ldmVjQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhZF9hbGxvYzo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GYmFkX2FsbG9jQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhZF9jYXN0OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZiYWRfY2FzdEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYWRfZXhjZXB0aW9uOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZiYWRfZXhjZXB0aW9uQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnRfYmFzZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GY29kZWN2dF9iYXNlQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmN0eXBlX2Jhc2U6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRmN0eXBlX2Jhc2VAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bG9jYWxlOjpmYWNldDo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GZmFjZXRAbG9jYWxlQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzX2Jhc2U6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRm1lc3NhZ2VzX2Jhc2VAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfYmFzZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GbW9uZXlfYmFzZUBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjp0aW1lX2Jhc2U6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRnRpbWVfYmFzZUBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9Mb2NpbmZvICYgX190aGlzY2FsbCBzdGQ6Ol9Mb2NpbmZvOjpfQWRkY2F0cyhpbnQsY2hhciBjb25zdCAqKQ0KKz9fQWRkY2F0c0BfTG9jaW5mb0BzdGRAQFFBRUFBVjEyQEhQQkRAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmxvY2FsZSAmIF9fdGhpc2NhbGwgc3RkOjpsb2NhbGU6Ol9BZGRmYWMoY2xhc3Mgc3RkOjpsb2NhbGU6OmZhY2V0ICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/X0FkZGZhY0Bsb2NhbGVAc3RkQEBRQUVBQVYxMkBQQVZmYWNldEAxMkBJSUBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpfQWRkc3RkKHZvaWQpDQorP19BZGRzdGRAaW9zX2Jhc2VAc3RkQEBJQUVYWFoNCis7IGNoYXIgY29uc3QgIGBwcml2YXRlOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpfTnVsbHN0cih2b2lkKSc6OmAyJzo6X0MNCis/X0NAPzE/P19OdWxsc3RyQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBDQVBCRFhaQDREQiBEQVRBDQorOyB1bnNpZ25lZCBzaG9ydCBjb25zdCAgYHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpfTnVsbHN0cih2b2lkKSc6OmAyJzo6X0MNCis/X0NAPzE/P19OdWxsc3RyQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBDQVBCR1haQDRHQiBEQVRBDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6X0NhbGxmbnMoZW51bSBzdGQ6Omlvc19iYXNlOjpldmVudCkNCis/X0NhbGxmbnNAaW9zX2Jhc2VAc3RkQEBBQUVYVzRldmVudEAxMkBAWg0KKzsgZmxvYXQgY29uc3QgIGBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6bG9nKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJiknOjpgNic6Ol9DbA0KKz9fQ2xAPzU/P2xvZ0BzdGRAQFlBP0FWPyRjb21wbGV4QE1AMkBBQlYzMkBAWkA0TUIgREFUQQ0KKzsgZG91YmxlIGNvbnN0ICBgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpsb2coY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJiknOjpgNic6Ol9DbA0KKz9fQ2xAPzU/P2xvZ0BzdGRAQFlBP0FWPyRjb21wbGV4QE5AMkBBQlYzMkBAWkA0TkIgREFUQQ0KKzsgbG9uZyBkb3VibGUgY29uc3QgIGBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6bG9nKGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJiknOjpgNic6Ol9DbA0KKz9fQ2xAPzU/P2xvZ0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMkBBQlYzMkBAWkA0T0IgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjpfTG9jaW1wICogIHN0ZDo6bG9jYWxlOjpfTG9jaW1wOjpfQ2xvY3B0cg0KKz9fQ2xvY3B0ckBfTG9jaW1wQGxvY2FsZUBzdGRAQDBQQVYxMjNAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgc2hvcnQgY29uc3QgKiBjb25zdCAgc3RkOjpjdHlwZTxjaGFyPjo6X0NsdGFiDQorP19DbHRhYkA/JGN0eXBlQERAc3RkQEAwUEJGQiBEQVRBDQorOyBmbG9hdCBjb25zdCAgYGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpsb2coY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKSc6OmA2Jzo6X0NtDQorP19DbUA/NT8/bG9nQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAyQEFCVjMyQEBaQDRNQiBEQVRBDQorOyBkb3VibGUgY29uc3QgIGBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OmxvZyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKSc6OmA2Jzo6X0NtDQorP19DbUA/NT8/bG9nQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAyQEFCVjMyQEBaQDROQiBEQVRBDQorOyBsb25nIGRvdWJsZSBjb25zdCAgYGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpsb2coY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKSc6OmA2Jzo6X0NtDQorP19DbUA/NT8/bG9nQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AyQEFCVjMyQEBaQDRPQiBEQVRBDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpfQ29weSh1bnNpZ25lZCBpbnQpDQorP19Db3B5QD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBBQUVYSUBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpfQ29weSh1bnNpZ25lZCBpbnQpDQorP19Db3B5QD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBBQUVYSUBaDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6X0N0cjxmbG9hdD46Ol9Db3NoKGZsb2F0LGZsb2F0KQ0KKz9fQ29zaEA/JF9DdHJATUBzdGRAQFNBTU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+OjpfQ29zaChkb3VibGUsZG91YmxlKQ0KKz9fQ29zaEA/JF9DdHJATkBzdGRAQFNBTk5OQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGxvbmcgZG91YmxlPjo6X0Nvc2gobG9uZyBkb3VibGUsbG9uZyBkb3VibGUpDQorP19Db3NoQD8kX0N0ckBPQHN0ZEBAU0FPT09AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmxvY2FsZTo6ZmFjZXQgKiBfX3RoaXNjYWxsIHN0ZDo6bG9jYWxlOjpmYWNldDo6X0RlY3JlZih2b2lkKQ0KKz9fRGVjcmVmQGZhY2V0QGxvY2FsZUBzdGRAQFFBRVBBVjEyM0BYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhZF9hbGxvYzo6X0RvcmFpc2Uodm9pZCljb25zdCANCis/X0RvcmFpc2VAYmFkX2FsbG9jQHN0ZEBATUJFWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFkX2Nhc3Q6Ol9Eb3JhaXNlKHZvaWQpY29uc3QgDQorP19Eb3JhaXNlQGJhZF9jYXN0QHN0ZEBATUJFWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFkX2V4Y2VwdGlvbjo6X0RvcmFpc2Uodm9pZCljb25zdCANCis/X0RvcmFpc2VAYmFkX2V4Y2VwdGlvbkBzdGRAQE1CRVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBzdGQ6OmRvbWFpbl9lcnJvcjo6X0RvcmFpc2Uodm9pZCljb25zdCANCis/X0RvcmFpc2VAZG9tYWluX2Vycm9yQHN0ZEBATUJFWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bGVuZ3RoX2Vycm9yOjpfRG9yYWlzZSh2b2lkKWNvbnN0IA0KKz9fRG9yYWlzZUBsZW5ndGhfZXJyb3JAc3RkQEBNQkVYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgc3RkOjpsb2dpY19lcnJvcjo6X0RvcmFpc2Uodm9pZCljb25zdCANCis/X0RvcmFpc2VAbG9naWNfZXJyb3JAc3RkQEBNQkVYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgc3RkOjpvdXRfb2ZfcmFuZ2U6Ol9Eb3JhaXNlKHZvaWQpY29uc3QgDQorP19Eb3JhaXNlQG91dF9vZl9yYW5nZUBzdGRAQE1CRVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBzdGQ6Om92ZXJmbG93X2Vycm9yOjpfRG9yYWlzZSh2b2lkKWNvbnN0IA0KKz9fRG9yYWlzZUBvdmVyZmxvd19lcnJvckBzdGRAQE1CRVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBzdGQ6OnJhbmdlX2Vycm9yOjpfRG9yYWlzZSh2b2lkKWNvbnN0IA0KKz9fRG9yYWlzZUByYW5nZV9lcnJvckBzdGRAQE1CRVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBzdGQ6OnJ1bnRpbWVfZXJyb3I6Ol9Eb3JhaXNlKHZvaWQpY29uc3QgDQorP19Eb3JhaXNlQHJ1bnRpbWVfZXJyb3JAc3RkQEBNQkVYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgc3RkOjp1bmRlcmZsb3dfZXJyb3I6Ol9Eb3JhaXNlKHZvaWQpY29uc3QgDQorP19Eb3JhaXNlQHVuZGVyZmxvd19lcnJvckBzdGRAQE1CRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6X0Vvcyh1bnNpZ25lZCBpbnQpDQorP19Fb3NAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQEFBRVhJQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Ol9Fb3ModW5zaWduZWQgaW50KQ0KKz9fRW9zQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBBQUVYSUBaDQorOyBwdWJsaWM6IHN0YXRpYyBzaG9ydCBfX2NkZWNsIHN0ZDo6X0N0cjxmbG9hdD46Ol9FeHAoZmxvYXQgKixmbG9hdCxzaG9ydCkNCis/X0V4cEA/JF9DdHJATUBzdGRAQFNBRlBBTU1GQFoNCis7IHB1YmxpYzogc3RhdGljIHNob3J0IF9fY2RlY2wgc3RkOjpfQ3RyPGRvdWJsZT46Ol9FeHAoZG91YmxlICosZG91YmxlLHNob3J0KQ0KKz9fRXhwQD8kX0N0ckBOQHN0ZEBAU0FGUEFOTkZAWg0KKzsgcHVibGljOiBzdGF0aWMgc2hvcnQgX19jZGVjbCBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+OjpfRXhwKGxvbmcgZG91YmxlICosbG9uZyBkb3VibGUsc2hvcnQpDQorP19FeHBAPyRfQ3RyQE9Ac3RkQEBTQUZQQU9PRkBaDQorOyBmbG9hdCBfX2NkZWNsIHN0ZDo6X0ZhYnMoY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmLGludCAqKQ0KKz9fRmFic0BzdGRAQFlBTUFCVj8kY29tcGxleEBNQDFAUEFIQFoNCis7IGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0ZhYnMoY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJixpbnQgKikNCis/X0ZhYnNAc3RkQEBZQU5BQlY/JGNvbXBsZXhATkAxQFBBSEBaDQorOyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0ZhYnMoY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmLGludCAqKQ0KKz9fRmFic0BzdGRAQFlBT0FCVj8kY29tcGxleEBPQDFAUEFIQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNoYXIgKiBfX2NkZWNsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0ZmbXQoY2hhciAqLGNoYXIsaW50KQ0KKz9fRmZtdEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBLQVBBRFBBRERIQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNoYXIgKiBfX2NkZWNsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0ZmbXQoY2hhciAqLGNoYXIsaW50KQ0KKz9fRmZtdEA/JG51bV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBLQVBBRFBBRERIQFoNCis7IHByaXZhdGU6IHN0cnVjdCBzdGQ6Omlvc19iYXNlOjpfSW9zYXJyYXkgJiBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6Ol9GaW5kYXJyKGludCkNCis/X0ZpbmRhcnJAaW9zX2Jhc2VAc3RkQEBBQUVBQVVfSW9zYXJyYXlAMTJASEBaDQorOyBwcml2YXRlOiBzdGF0aWMgc3RydWN0IF9pb2J1ZiAqIF9fY2RlY2wgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6X0Zpb3BlbihjaGFyIGNvbnN0ICosaW50KQ0KKz9fRmlvcGVuQD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQENBUEFVX2lvYnVmQEBQQkRIQFoNCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgX2lvYnVmICogX19jZGVjbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Ol9GaW9wZW4oY2hhciBjb25zdCAqLGludCkNCis/X0Zpb3BlbkA/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBDQVBBVV9pb2J1ZkBAUEJESEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0ZwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsY2hhcixjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/X0ZwdXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAS0E/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBEUEJESUlAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0ZwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJix1bnNpZ25lZCBzaG9ydCxjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/X0ZwdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAS0E/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBHUEJESUlAWg0KKzsgX19pbnQ2NCBjb25zdCAgc3RkOjpfRnB6DQorP19GcHpAc3RkQEAzX0pCIERBVEENCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Ol9GcmVlemUodm9pZCkNCis/X0ZyZWV6ZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAQUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpfRnJlZXplKHZvaWQpDQorP19GcmVlemVAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQEFBRVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpfTXB1bmN0PGNoYXI+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRfTXB1bmN0QERAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kX01wdW5jdEBHQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6Y29kZWN2dDxjaGFyLGNoYXIsaW50Pjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kY29kZWN2dEBEREhAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kY29kZWN2dEBHREhAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpjb2xsYXRlPGNoYXI+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRjb2xsYXRlQERAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpjb2xsYXRlPHVuc2lnbmVkIHNob3J0Pjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kY29sbGF0ZUBHQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6Y3R5cGU8Y2hhcj46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JGN0eXBlQERAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JGN0eXBlQEdAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjptZXNzYWdlczxjaGFyPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kbWVzc2FnZXNAREBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kbWVzc2FnZXNAR0BzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kbW9uZXlfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bW9uZXlfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRtb25leV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjptb25leV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JG1vbmV5X3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om1vbmV5X3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kbW9uZXlfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bW9uZXlwdW5jdDxjaGFyLDE+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRtb25leXB1bmN0QEQkMDBAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjptb25leXB1bmN0PGNoYXIsMD46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JG1vbmV5cHVuY3RARCQwQUBAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDE+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRtb25leXB1bmN0QEckMDBAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDA+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRtb25leXB1bmN0QEckMEFAQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om51bXB1bmN0PGNoYXI+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRudW1wdW5jdEBEQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRudW1wdW5jdEBHQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6dGltZV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JHRpbWVfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6dGltZV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JHRpbWVfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bG9jYWxlOjpmYWNldDo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QGZhY2V0QGxvY2FsZUBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0cnVjdCBfQ29sbHZlYyAgX190aGlzY2FsbCBzdGQ6Ol9Mb2NpbmZvOjpfR2V0Y29sbCh2b2lkKWNvbnN0IA0KKz9fR2V0Y29sbEBfTG9jaW5mb0BzdGRAQFFCRT9BVV9Db2xsdmVjQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0N0eXBldmVjICBfX3RoaXNjYWxsIHN0ZDo6X0xvY2luZm86Ol9HZXRjdHlwZSh2b2lkKWNvbnN0IA0KKz9fR2V0Y3R5cGVAX0xvY2luZm9Ac3RkQEBRQkU/QVVfQ3R5cGV2ZWNAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfQ3Z0dmVjICBfX3RoaXNjYWxsIHN0ZDo6X0xvY2luZm86Ol9HZXRjdnQodm9pZCljb25zdCANCis/X0dldGN2dEBfTG9jaW5mb0BzdGRAQFFCRT9BVV9DdnR2ZWNAQFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6X0xvY2luZm86Ol9HZXRkYXlzKHZvaWQpY29uc3QgDQorP19HZXRkYXlzQF9Mb2NpbmZvQHN0ZEBAUUJFUEJEWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsb2NhbGU6OmZhY2V0IGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmxvY2FsZTo6X0dldGZhY2V0KHVuc2lnbmVkIGludCxib29sKWNvbnN0IA0KKz9fR2V0ZmFjZXRAbG9jYWxlQHN0ZEBAUUJFUEJWZmFjZXRAMTJASV9OQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpfTG9jaW5mbzo6X0dldGZhbHNlKHZvaWQpY29uc3QgDQorP19HZXRmYWxzZUBfTG9jaW5mb0BzdGRAQFFCRVBCRFhaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfR2V0ZmZsZChjaGFyICosY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJixjbGFzcyBzdGQ6OmxvY2FsZSBjb25zdCAmKQ0KKz9fR2V0ZmZsZEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBDQUhQQURBQVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkAxQUJWbG9jYWxlQDJAQFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9HZXRmZmxkKGNoYXIgKixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJixjbGFzcyBzdGQ6OmxvY2FsZSBjb25zdCAmKQ0KKz9fR2V0ZmZsZEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBDQUhQQURBQVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkAxQUJWbG9jYWxlQDJAQFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9HZXRpZmxkKGNoYXIgKixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmLGludCxjbGFzcyBzdGQ6OmxvY2FsZSBjb25zdCAmKQ0KKz9fR2V0aWZsZEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBDQUhQQURBQVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkAxSEFCVmxvY2FsZUAyQEBaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfR2V0aWZsZChjaGFyICosY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsaW50LGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYpDQorP19HZXRpZmxkQD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQENBSFBBREFBVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQDFIQUJWbG9jYWxlQDJAQFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfR2V0aW50KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsaW50LGludCxpbnQgJikNCis/X0dldGludEA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAQ0FIQUFWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAMEhIQUFIQFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfR2V0aW50KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmLGludCxpbnQsaW50ICYpDQorP19HZXRpbnRAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQENBSEFBVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQDBISEFBSEBaDQorOyBwdWJsaWM6IHN0cnVjdCBsY29udiBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpfTG9jaW5mbzo6X0dldGxjb252KHZvaWQpY29uc3QgDQorP19HZXRsY29udkBfTG9jaW5mb0BzdGRAQFFCRVBCVWxjb252QEBYWg0KKzsgcHJpdmF0ZTogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfR2V0bWZsZChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmLGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmKWNvbnN0IA0KKz9fR2V0bWZsZEA/JG1vbmV5X2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQEFCRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBBQVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkAwX05BQVZpb3NfYmFzZUAyQEBaDQorOyBwcml2YXRlOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjptb25leV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9HZXRtZmxkKGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmLGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmKWNvbnN0IA0KKz9fR2V0bWZsZEA/JG1vbmV5X2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQEFCRT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBBQVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkAwX05BQVZpb3NfYmFzZUAyQEBaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6X0xvY2luZm86Ol9HZXRtb250aHModm9pZCljb25zdCANCis/X0dldG1vbnRoc0BfTG9jaW5mb0BzdGRAQFFCRVBCRFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Ol9Mb2NpbmZvOjpfR2V0bmFtZSh2b2lkKWNvbnN0IA0KKz9fR2V0bmFtZUBfTG9jaW5mb0BzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBzdGQ6Ol9Mb2NpbmZvOjpfR2V0bm8odm9pZCljb25zdCANCis/X0dldG5vQF9Mb2NpbmZvQHN0ZEBAUUJFUEJEWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgc3RkOjpfVGltZXZlYzo6X0dldHB0cih2b2lkKWNvbnN0IA0KKz9fR2V0cHRyQF9UaW1ldmVjQHN0ZEBAUUJFUEFYWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfVGltZXZlYyAgX190aGlzY2FsbCBzdGQ6Ol9Mb2NpbmZvOjpfR2V0dG5hbWVzKHZvaWQpY29uc3QgDQorP19HZXR0bmFtZXNAX0xvY2luZm9Ac3RkQEBRQkU/QVZfVGltZXZlY0AyQFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6X0xvY2luZm86Ol9HZXR0cnVlKHZvaWQpY29uc3QgDQorP19HZXR0cnVlQF9Mb2NpbmZvQHN0ZEBAUUJFUEJEWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpfTG9jaW5mbzo6X0dldHllcyh2b2lkKWNvbnN0IA0KKz9fR2V0eWVzQF9Mb2NpbmZvQHN0ZEBAUUJFUEJEWFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6X0xvY2ltcCAqICBzdGQ6OmxvY2FsZTo6X0xvY2ltcDo6X0dsb2JhbA0KKz9fR2xvYmFsQF9Mb2NpbXBAbG9jYWxlQHN0ZEBAMFBBVjEyM0BBIERBVEENCis7IHByb3RlY3RlZDogY2hhciAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpfR25kZWModm9pZCkNCis/X0duZGVjQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUFFUEFEWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpfR25kZWModm9pZCkNCis/X0duZGVjQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUFFUEFHWFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpfR25pbmModm9pZCkNCis/X0duaW5jQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUFFUEFEWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpfR25pbmModm9pZCkNCis/X0duaW5jQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUFFUEFHWFoNCis7IHByaXZhdGU6IGJvb2wgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Ol9Hcm93KHVuc2lnbmVkIGludCxib29sKQ0KKz9fR3Jvd0A/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAQUFFX05JX05AWg0KKzsgcHJpdmF0ZTogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6X0dyb3codW5zaWduZWQgaW50LGJvb2wpDQorP19Hcm93QD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBBQUVfTklfTkBaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50ICBzdGQ6OmxvY2FsZTo6aWQ6Ol9JZF9jbnQNCis/X0lkX2NudEBpZEBsb2NhbGVAc3RkQEAwSEEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2hhciAqIF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfSWZtdChjaGFyICosY2hhcixpbnQpDQorP19JZm10QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQEtBUEFEUEFEREhAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2hhciAqIF9fY2RlY2wgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfSWZtdChjaGFyICosY2hhcixpbnQpDQorP19JZm10QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQEtBUEFEUEFEREhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpsb2NhbGU6OmZhY2V0OjpfSW5jcmVmKHZvaWQpDQorP19JbmNyZWZAZmFjZXRAbG9jYWxlQHN0ZEBAUUFFWFhaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50ICBzdGQ6Omlvc19iYXNlOjpfSW5kZXgNCis/X0luZGV4QGlvc19iYXNlQHN0ZEBAMEhBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgc3RkOjpfQ3RyPGZsb2F0Pjo6X0luZnYoZmxvYXQpDQorP19JbmZ2QD8kX0N0ckBNQHN0ZEBAU0FNTUBaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8ZG91YmxlPjo6X0luZnYoZG91YmxlKQ0KKz9fSW5mdkA/JF9DdHJATkBzdGRAQFNBTk5AWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+OjpfSW5mdihsb25nIGRvdWJsZSkNCis/X0luZnZAPyRfQ3RyQE9Ac3RkQEBTQU9PQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDxjaGFyPjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmKQ0KKz9fSW5pdEA/JF9NcHVuY3RAREBzdGRAQElBRVhBQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYpDQorP19Jbml0QD8kX01wdW5jdEBHQHN0ZEBASUFFWEFCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Ol9Jbml0KHN0cnVjdCBfaW9idWYgKixlbnVtIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Ol9Jbml0ZmwpDQorP19Jbml0QD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElBRVhQQVVfaW9idWZAQFc0X0luaXRmbEAxMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpfSW5pdChzdHJ1Y3QgX2lvYnVmICosZW51bSBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Ol9Jbml0ZmwpDQorP19Jbml0QD8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElBRVhQQVVfaW9idWZAQFc0X0luaXRmbEAxMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpfSW5pdChjaGFyICogKixjaGFyICogKixpbnQgKixjaGFyICogKixjaGFyICogKixpbnQgKikNCis/X0luaXRAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJQUVYUEFQQUQwUEFIMDAxQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6X0luaXQodm9pZCkNCis/X0luaXRAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJQUVYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpfSW5pdCh1bnNpZ25lZCBzaG9ydCAqICosdW5zaWduZWQgc2hvcnQgKiAqLGludCAqLHVuc2lnbmVkIHNob3J0ICogKix1bnNpZ25lZCBzaG9ydCAqICosaW50ICopDQorP19Jbml0QD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUFFWFBBUEFHMFBBSDAwMUBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6X0luaXQodm9pZCkNCis/X0luaXRAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJQUVYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6X0luaXQoY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCxpbnQpDQorP19Jbml0QD8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBJQUVYUEJESUhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpfSW5pdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCxpbnQpDQorP19Jbml0QD8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBJQUVYUEJHSUhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0PGNoYXIsY2hhcixpbnQ+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYpDQorP19Jbml0QD8kY29kZWN2dEBEREhAc3RkQEBJQUVYQUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmKQ0KKz9fSW5pdEA/JGNvZGVjdnRAR0RIQHN0ZEBASUFFWEFCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTxjaGFyPjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmKQ0KKz9fSW5pdEA/JGNvbGxhdGVAREBzdGRAQElBRVhBQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmNvbGxhdGU8dW5zaWduZWQgc2hvcnQ+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYpDQorP19Jbml0QD8kY29sbGF0ZUBHQHN0ZEBASUFFWEFCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8Y2hhcj46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJikNCis/X0luaXRAPyRjdHlwZUBEQHN0ZEBASUFFWEFCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYpDQorP19Jbml0QD8kY3R5cGVAR0BzdGRAQElBRVhBQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzPGNoYXI+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYpDQorP19Jbml0QD8kbWVzc2FnZXNAREBzdGRAQElBRVhBQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmKQ0KKz9fSW5pdEA/JG1lc3NhZ2VzQEdAc3RkQEBJQUVYQUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjptb25leV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJikNCis/X0luaXRAPyRtb25leV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBJQUVYQUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjptb25leV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJikNCis/X0luaXRAPyRtb25leV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBJQUVYQUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjptb25leV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJikNCis/X0luaXRAPyRtb25leV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBJQUVYQUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjptb25leV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJikNCis/X0luaXRAPyRtb25leV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBJQUVYQUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYpDQorP19Jbml0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQElBRVhBQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJikNCis/X0luaXRAPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBASUFFWEFCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmKQ0KKz9fSW5pdEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBJQUVYQUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYpDQorP19Jbml0QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQElBRVhBQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PGNoYXI+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYpDQorP19Jbml0QD8kbnVtcHVuY3RAREBzdGRAQElBRVhBQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmKQ0KKz9fSW5pdEA/JG51bXB1bmN0QEdAc3RkQEBJQUVYQUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmKQ0KKz9fSW5pdEA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBASUFFWEFCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJikNCis/X0luaXRAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQElBRVhBQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OnRpbWVfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYpDQorP19Jbml0QD8kdGltZV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBJQUVYQUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjp0aW1lX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmKQ0KKz9fSW5pdEA/JHRpbWVfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBASUFFWEFCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6Ol9Jbml0KHZvaWQpDQorP19Jbml0QGlvc19iYXNlQHN0ZEBASUFFWFhaDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6Ol9Mb2NpbXAgKiBfX2NkZWNsIHN0ZDo6bG9jYWxlOjpfSW5pdCh2b2lkKQ0KKz9fSW5pdEBsb2NhbGVAc3RkQEBDQVBBVl9Mb2NpbXBAMTJAWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6c3Ryc3RyZWFtYnVmOjpfSW5pdChpbnQsY2hhciAqLGNoYXIgKixpbnQpDQorP19Jbml0QHN0cnN0cmVhbWJ1ZkBzdGRAQElBRVhIUEFEMEhAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCAgc3RkOjppb3NfYmFzZTo6SW5pdDo6X0luaXRfY250DQorP19Jbml0X2NudEBJbml0QGlvc19iYXNlQHN0ZEBAMEhBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgIHN0ZDo6X1dpbml0OjpfSW5pdF9jbnQNCis/X0luaXRfY250QF9XaW5pdEBzdGRAQDBIQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpfSW5pdGN2dCh2b2lkKQ0KKz9fSW5pdGN2dEA/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJQUVYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6X0luaXRjdnQodm9pZCkNCis/X0luaXRjdnRAPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0lwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsY2hhcixjaGFyICosdW5zaWduZWQgaW50KQ0KKz9fSXB1dEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBLQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQERQQURJQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9JcHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsdW5zaWduZWQgc2hvcnQsY2hhciAqLHVuc2lnbmVkIGludCkNCis/X0lwdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAS0E/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBHUEFESUBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6OmxvY2FsZTo6X0lzY2xvYyh2b2lkKWNvbnN0IA0KKz9fSXNjbG9jQGxvY2FsZUBzdGRAQFFCRV9OWFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6Ol9DdHI8ZmxvYXQ+OjpfSXNpbmYoZmxvYXQpDQorP19Jc2luZkA/JF9DdHJATUBzdGRAQFNBX05NQFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6Ol9DdHI8ZG91YmxlPjo6X0lzaW5mKGRvdWJsZSkNCis/X0lzaW5mQD8kX0N0ckBOQHN0ZEBAU0FfTk5AWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT46Ol9Jc2luZihsb25nIGRvdWJsZSkNCis/X0lzaW5mQD8kX0N0ckBPQHN0ZEBAU0FfTk9AWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6X0N0cjxmbG9hdD46Ol9Jc25hbihmbG9hdCkNCis/X0lzbmFuQD8kX0N0ckBNQHN0ZEBAU0FfTk1AWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+OjpfSXNuYW4oZG91YmxlKQ0KKz9fSXNuYW5APyRfQ3RyQE5Ac3RkQEBTQV9OTkBaDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjpfQ3RyPGxvbmcgZG91YmxlPjo6X0lzbmFuKGxvbmcgZG91YmxlKQ0KKz9fSXNuYW5APyRfQ3RyQE9Ac3RkQEBTQV9OT0BaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PGNoYXI+OjpfTWFrcGF0KHN0cnVjdCBzdGQ6Om1vbmV5X2Jhc2U6OnBhdHRlcm4gJixjaGFyLGNoYXIsY2hhcikNCis/X01ha3BhdEA/JF9NcHVuY3RAREBzdGRAQEFBRVhBQVVwYXR0ZXJuQG1vbmV5X2Jhc2VAMkBERERAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46Ol9NYWtwYXQoc3RydWN0IHN0ZDo6bW9uZXlfYmFzZTo6cGF0dGVybiAmLGNoYXIsY2hhcixjaGFyKQ0KKz9fTWFrcGF0QD8kX01wdW5jdEBHQHN0ZEBAQUFFWEFBVXBhdHRlcm5AbW9uZXlfYmFzZUAyQEREREBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Ol9Nb2RlKGludCkNCis/X01vZGVAPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQEFBRUhIQFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6X01vZGUoaW50KQ0KKz9fTW9kZUA/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAQUFFSEhAWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Ol9DdHI8ZmxvYXQ+OjpfTmFudihmbG9hdCkNCis/X05hbnZAPyRfQ3RyQE1Ac3RkQEBTQU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+OjpfTmFudihkb3VibGUpDQorP19OYW52QD8kX0N0ckBOQHN0ZEBAU0FOTkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT46Ol9OYW52KGxvbmcgZG91YmxlKQ0KKz9fTmFudkA/JF9DdHJAT0BzdGRAQFNBT09AWg0KKzsgdm9pZCBfX2NkZWNsIHN0ZDo6X05vbWVtb3J5KHZvaWQpDQorP19Ob21lbW9yeUBzdGRAQFlBWFhaDQorOyBwcml2YXRlOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpfTnVsbHN0cih2b2lkKQ0KKz9fTnVsbHN0ckA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAQ0FQQkRYWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Ol9OdWxsc3RyKHZvaWQpDQorP19OdWxsc3RyQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBDQVBCR1haDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpfUGRpZihjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqKQ0KKz9fUGRpZkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAQ0FJUEJEMEBaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpfUGRpZih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP19QZGlmQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBDQUlQQkcwQFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpfUG5pbmModm9pZCkNCis/X1BuaW5jQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUFFUEFEWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpfUG5pbmModm9pZCkNCis/X1BuaW5jQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUFFUEFHWFoNCis7IHByaXZhdGU6IHN0YXRpYyBjaGFyICogX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Ol9Qc3VtKGNoYXIgKix1bnNpZ25lZCBpbnQpDQorP19Qc3VtQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBDQVBBRFBBRElAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNoYXIgY29uc3QgKiBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6X1BzdW0oY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/X1BzdW1APyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQENBUEJEUEJESUBaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgKiBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6X1BzdW0odW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBpbnQpDQorP19Qc3VtQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBDQVBBR1BBR0lAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Ol9Qc3VtKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9fUHN1bUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAQ0FQQkdQQkdJQFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bW9uZXlfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfUHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/X1B1dEA/JG1vbmV5X3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQENBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQFBCRElAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om1vbmV5X3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X1B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP19QdXRAPyRtb25leV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBDQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBQQkdJQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfUHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/X1B1dEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBLQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBQQkRJQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9QdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9fUHV0QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQEtBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQFBCR0lAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9QdXRjKGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/X1B1dGNAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAS0E/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAUEJESUBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfUHV0YyhjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/X1B1dGNAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAS0E/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAUEJESUBaDQorOyBwcml2YXRlOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfUHV0bWZsZChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGNoYXIsYm9vbCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4pY29uc3QgDQorP19QdXRtZmxkQD8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAQUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQF9OQUFWaW9zX2Jhc2VAMkBEMVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAQFoNCis7IHByaXZhdGU6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om1vbmV5X3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X1B1dG1mbGQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmLHVuc2lnbmVkIHNob3J0LGJvb2wsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KWNvbnN0IA0KKz9fUHV0bWZsZEA/JG1vbmV5X3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQEFCRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBfTkFBVmlvc19iYXNlQDJARzFWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQEBaDQorOyBmbG9hdCBjb25zdCAgYGZsb2F0IF9fY2RlY2wgc3RkOjpfRmFicyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYsaW50ICopJzo6YDI5Jzo6X1IyDQorP19SMkA/Qk5APz9fRmFic0BzdGRAQFlBTUFCVj8kY29tcGxleEBNQDJAUEFIQFpANE1CIERBVEENCis7IGRvdWJsZSBjb25zdCAgYGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0ZhYnMoY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJixpbnQgKiknOjpgMjknOjpfUjINCis/X1IyQD9CTkA/P19GYWJzQHN0ZEBAWUFOQUJWPyRjb21wbGV4QE5AMkBQQUhAWkA0TkIgREFUQQ0KKzsgbG9uZyBkb3VibGUgY29uc3QgIGBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0ZhYnMoY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmLGludCAqKSc6OmAyOSc6Ol9SMg0KKz9fUjJAP0JOQD8/X0ZhYnNAc3RkQEBZQU9BQlY/JGNvbXBsZXhAT0AyQFBBSEBaQDRPQiBEQVRBDQorOyBwcml2YXRlOiB1bnNpZ25lZCBjaGFyICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Ol9SZWZjbnQoY2hhciBjb25zdCAqKQ0KKz9fUmVmY250QD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBBQUVBQUVQQkRAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgY2hhciAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpfUmVmY250KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP19SZWZjbnRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQEFBRUFBRVBCR0BaDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X1JlcChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNoYXIsdW5zaWduZWQgaW50KQ0KKz9fUmVwQD8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAQ0E/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJARElAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om1vbmV5X3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X1JlcChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgaW50KQ0KKz9fUmVwQD8kbW9uZXlfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAQ0E/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAR0lAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9SZXAoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjaGFyLHVuc2lnbmVkIGludCkNCis/X1JlcEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBLQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBESUBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfUmVwKGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPix1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBpbnQpDQorP19SZXBAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAS0E/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAR0lAWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Ol9DdHI8ZmxvYXQ+OjpfU2luaChmbG9hdCxmbG9hdCkNCis/X1NpbmhAPyRfQ3RyQE1Ac3RkQEBTQU1NTUBaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8ZG91YmxlPjo6X1NpbmgoZG91YmxlLGRvdWJsZSkNCis/X1NpbmhAPyRfQ3RyQE5Ac3RkQEBTQU5OTkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT46Ol9TaW5oKGxvbmcgZG91YmxlLGxvbmcgZG91YmxlKQ0KKz9fU2luaEA/JF9DdHJAT0BzdGRAQFNBT09PQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Ol9TcGxpdCh2b2lkKQ0KKz9fU3BsaXRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQEFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6X1NwbGl0KHZvaWQpDQorP19TcGxpdEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAQUFFWFhaDQorOyBpbnQgIGBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpfSW5pdChzdHJ1Y3QgX2lvYnVmICosZW51bSBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpfSW5pdGZsKSc6OmAyJzo6X1N0aW5pdA0KKz9fU3Rpbml0QD8xPz9fSW5pdEA/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJQUVYUEFVX2lvYnVmQEBXNF9Jbml0ZmxAMjNAQFpANEhBIERBVEENCis7IGludCAgYHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6X0luaXQoc3RydWN0IF9pb2J1ZiAqLGVudW0gc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpfSW5pdGZsKSc6OmAyJzo6X1N0aW5pdA0KKz9fU3Rpbml0QD8xPz9fSW5pdEA/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJQUVYUEFVX2lvYnVmQEBXNF9Jbml0ZmxAMjNAQFpANEhBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBib29sICBzdGQ6Omlvc19iYXNlOjpfU3luYw0KKz9fU3luY0Bpb3NfYmFzZUBzdGRAQDBfTkEgREFUQQ0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgdm9pZCBfX2NkZWNsIHN0ZDo6Y3R5cGU8Y2hhcj46Ol9UZXJtKHZvaWQpDQorP19UZXJtQD8kY3R5cGVAREBzdGRAQEtBWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpfVGlkeShib29sKQ0KKz9fVGlkeUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAQUFFWF9OQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Ol9UaWR5KGJvb2wpDQorP19UaWR5QD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBBQUVYX05AWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpfVGlkeSh2b2lkKQ0KKz9fVGlkeUA/JGJhc2ljX3N0cmluZ2J1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBASUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Ol9UaWR5KHZvaWQpDQorP19UaWR5QD8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBJQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpfVGlkeSh2b2lkKQ0KKz9fVGlkeUBpb3NfYmFzZUBzdGRAQEFBRVhYWg0KKzsgcHJpdmF0ZTogc3RhdGljIHZvaWQgX19jZGVjbCBzdGQ6OmxvY2FsZTo6X1RpZHkodm9pZCkNCis/X1RpZHlAbG9jYWxlQHN0ZEBAQ0FYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6c3Ryc3RyZWFtYnVmOjpfVGlkeSh2b2lkKQ0KKz9fVGlkeUBzdHJzdHJlYW1idWZAc3RkQEBJQUVYWFoNCis7IGZsb2F0IGNvbnN0ICBgZmxvYXQgX19jZGVjbCBzdGQ6Ol9GYWJzKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJixpbnQgKiknOjpgMjknOjpfWGgNCis/X1hoQD9CTkA/P19GYWJzQHN0ZEBAWUFNQUJWPyRjb21wbGV4QE1AMkBQQUhAWkA0TUIgREFUQQ0KKzsgZG91YmxlIGNvbnN0ICBgZG91YmxlIF9fY2RlY2wgc3RkOjpfRmFicyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmLGludCAqKSc6OmAyOSc6Ol9YaA0KKz9fWGhAP0JOQD8/X0ZhYnNAc3RkQEBZQU5BQlY/JGNvbXBsZXhATkAyQFBBSEBaQDROQiBEQVRBDQorOyBsb25nIGRvdWJsZSBjb25zdCAgYGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpfRmFicyhjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYsaW50ICopJzo6YDI5Jzo6X1hoDQorP19YaEA/Qk5APz9fRmFic0BzdGRAQFlBT0FCVj8kY29tcGxleEBPQDJAUEFIQFpANE9CIERBVEENCis7IGZsb2F0IGNvbnN0ICBgZmxvYXQgX19jZGVjbCBzdGQ6Ol9GYWJzKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJixpbnQgKiknOjpgMjknOjpfWGwNCis/X1hsQD9CTkA/P19GYWJzQHN0ZEBAWUFNQUJWPyRjb21wbGV4QE1AMkBQQUhAWkA0TUIgREFUQQ0KKzsgZG91YmxlIGNvbnN0ICBgZG91YmxlIF9fY2RlY2wgc3RkOjpfRmFicyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmLGludCAqKSc6OmAyOSc6Ol9YbA0KKz9fWGxAP0JOQD8/X0ZhYnNAc3RkQEBZQU5BQlY/JGNvbXBsZXhATkAyQFBBSEBaQDROQiBEQVRBDQorOyBsb25nIGRvdWJsZSBjb25zdCAgYGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpfRmFicyhjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYsaW50ICopJzo6YDI5Jzo6X1hsDQorP19YbEA/Qk5APz9fRmFic0BzdGRAQFlBT0FCVj8kY29tcGxleEBPQDJAUEFIQFpANE9CIERBVEENCis7IHZvaWQgX19jZGVjbCBzdGQ6Ol9YbGVuKHZvaWQpDQorP19YbGVuQHN0ZEBAWUFYWFoNCis7IHZvaWQgX19jZGVjbCBzdGQ6Ol9YcmFuKHZvaWQpDQorP19YcmFuQHN0ZEBAWUFYWFoNCis7IHN0cnVjdCBfaW9idWYgKiBfX2NkZWNsIHN0ZDo6X19GaW9wZW4oY2hhciBjb25zdCAqLGludCkNCis/X19GaW9wZW5Ac3RkQEBZQVBBVV9pb2J1ZkBAUEJESEBaDQorOyBmbG9hdCBfX2NkZWNsIHN0ZDo6YWJzKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/YWJzQHN0ZEBAWUFNQUJWPyRjb21wbGV4QE1AMUBAWg0KKzsgZG91YmxlIF9fY2RlY2wgc3RkOjphYnMoY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/YWJzQHN0ZEBAWUFOQUJWPyRjb21wbGV4QE5AMUBAWg0KKzsgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6OmFicyhjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorP2Fic0BzdGRAQFlBT0FCVj8kY29tcGxleEBPQDFAQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dF9iYXNlOjphbHdheXNfbm9jb252KHZvaWQpY29uc3QgDQorP2Fsd2F5c19ub2NvbnZAY29kZWN2dF9iYXNlQHN0ZEBAUUJFX05YWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXBwZW5kKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz9hcHBlbmRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjEyQEFCVjEyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjphcHBlbmQoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/YXBwZW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYxMkBBQlYxMkBJSUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjphcHBlbmQodW5zaWduZWQgaW50LGNoYXIpDQorP2FwcGVuZEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJASURAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXBwZW5kKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICopDQorP2FwcGVuZEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJAUEJEMEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjphcHBlbmQoY2hhciBjb25zdCAqKQ0KKz9hcHBlbmRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjEyQFBCREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjphcHBlbmQoY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/YXBwZW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYxMkBQQkRJQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFwcGVuZChjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/YXBwZW5kQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQVYxMkBBQlYxMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YXBwZW5kKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP2FwcGVuZEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJAQUJWMTJASUlAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YXBwZW5kKHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCkNCis/YXBwZW5kQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQVYxMkBJR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjphcHBlbmQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9hcHBlbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQFBCRzBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YXBwZW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP2FwcGVuZEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJAUEJHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFwcGVuZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/YXBwZW5kQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQVYxMkBQQkdJQFoNCis7IGZsb2F0IF9fY2RlY2wgc3RkOjphcmcoY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz9hcmdAc3RkQEBZQU1BQlY/JGNvbXBsZXhATUAxQEBaDQorOyBkb3VibGUgX19jZGVjbCBzdGQ6OmFyZyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz9hcmdAc3RkQEBZQU5BQlY/JGNvbXBsZXhATkAxQEBaDQorOyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6YXJnKGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/YXJnQHN0ZEBAWUFPQUJWPyRjb21wbGV4QE9AMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXNzaWduKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz9hc3NpZ25APyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjEyQEFCVjEyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojphc3NpZ24oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/YXNzaWduQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYxMkBBQlYxMkBJSUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojphc3NpZ24odW5zaWduZWQgaW50LGNoYXIpDQorP2Fzc2lnbkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJASURAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXNzaWduKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICopDQorP2Fzc2lnbkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJAUEJEMEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojphc3NpZ24oY2hhciBjb25zdCAqKQ0KKz9hc3NpZ25APyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjEyQFBCREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojphc3NpZ24oY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/YXNzaWduQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYxMkBQQkRJQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFzc2lnbihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/YXNzaWduQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQVYxMkBBQlYxMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YXNzaWduKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP2Fzc2lnbkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJAQUJWMTJASUlAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YXNzaWduKHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCkNCis/YXNzaWduQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQVYxMkBJR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojphc3NpZ24odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9hc3NpZ25APyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQFBCRzBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YXNzaWduKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP2Fzc2lnbkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJAUEJHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFzc2lnbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/YXNzaWduQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQVYxMkBQQkdJQFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgKiBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj46OmFzc2lnbihjaGFyICosdW5zaWduZWQgaW50LGNoYXIgY29uc3QgJikNCis/YXNzaWduQD8kY2hhcl90cmFpdHNAREBzdGRAQFNBUEFEUEFESUFCREBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czxjaGFyPjo6YXNzaWduKGNoYXIgJixjaGFyIGNvbnN0ICYpDQorP2Fzc2lnbkA/JGNoYXJfdHJhaXRzQERAc3RkQEBTQVhBQURBQkRAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgKiBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+Ojphc3NpZ24odW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgJikNCis/YXNzaWduQD8kY2hhcl90cmFpdHNAR0BzdGRAQFNBUEFHUEFHSUFCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD46OmFzc2lnbih1bnNpZ25lZCBzaG9ydCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICYpDQorP2Fzc2lnbkA/JGNoYXJfdHJhaXRzQEdAc3RkQEBTQVhBQUdBQkdAWg0KKzsgcHVibGljOiBjaGFyICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmF0KHVuc2lnbmVkIGludCkNCis/YXRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBRElAWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmF0KHVuc2lnbmVkIGludCljb25zdCANCis/YXRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUFCRElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjphdCh1bnNpZ25lZCBpbnQpDQorP2F0QD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQUdJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YXQodW5zaWduZWQgaW50KWNvbnN0IA0KKz9hdEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFQUJHSUBaDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6X0N0cjxmbG9hdD46OmF0YW4yKGZsb2F0LGZsb2F0KQ0KKz9hdGFuMkA/JF9DdHJATUBzdGRAQFNBTU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+OjphdGFuMihkb3VibGUsZG91YmxlKQ0KKz9hdGFuMkA/JF9DdHJATkBzdGRAQFNBTk5OQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGxvbmcgZG91YmxlPjo6YXRhbjIobG9uZyBkb3VibGUsbG9uZyBkb3VibGUpDQorP2F0YW4yQD8kX0N0ckBPQHN0ZEBAU0FPT09AWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6YmFkKHZvaWQpY29uc3QgDQorP2JhZEBpb3NfYmFzZUBzdGRAQFFCRV9OWFoNCis7IHB1YmxpYzogY2hhciAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiZWdpbih2b2lkKQ0KKz9iZWdpbkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFUEFEWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiZWdpbih2b2lkKWNvbnN0IA0KKz9iZWdpbkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFUEJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmVnaW4odm9pZCkNCis/YmVnaW5APyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRVBBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJlZ2luKHZvaWQpY29uc3QgDQorP2JlZ2luQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVQQkdYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmNfc3RyKHZvaWQpY29uc3QgDQorP2Nfc3RyQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVQQkRYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpjX3N0cih2b2lkKWNvbnN0IA0KKz9jX3N0ckA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpjYXBhY2l0eSh2b2lkKWNvbnN0IA0KKz9jYXBhY2l0eUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6Y2FwYWNpdHkodm9pZCljb25zdCANCis/Y2FwYWNpdHlAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlYWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgc3RkOjpjZXJyDQorP2NlcnJAc3RkQEAzVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEEgREFUQQ0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgc3RkOjpjaW4NCis/Y2luQHN0ZEBAM1Y/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYgX19jZGVjbCBzdGQ6OmxvY2FsZTo6Y2xhc3NpYyh2b2lkKQ0KKz9jbGFzc2ljQGxvY2FsZUBzdGRAQFNBQUJWMTJAWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHNob3J0IGNvbnN0ICogX19jZGVjbCBzdGQ6OmN0eXBlPGNoYXI+OjpjbGFzc2ljX3RhYmxlKHZvaWQpDQorP2NsYXNzaWNfdGFibGVAPyRjdHlwZUBEQHN0ZEBAS0FQQkZYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpjbGVhcihzaG9ydCkNCis/Y2xlYXJAPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVYRkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmNsZWFyKGludCxib29sKQ0KKz9jbGVhckA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVhIX05AWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmNsZWFyKHNob3J0KQ0KKz9jbGVhckA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhGQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpjbGVhcihpbnQsYm9vbCkNCis/Y2xlYXJAPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVYSF9OQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6OmNsZWFyKHNob3J0KQ0KKz9jbGVhckBpb3NfYmFzZUBzdGRAQFFBRVhGQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6OmNsZWFyKGludCxib29sKQ0KKz9jbGVhckBpb3NfYmFzZUBzdGRAQFFBRVhIX05AWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgc3RkOjpjbG9nDQorP2Nsb2dAc3RkQEAzVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEEgREFUQQ0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpjbG9zZSh2b2lkKQ0KKz9jbG9zZUA/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVQQVYxMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6Y2xvc2Uodm9pZCkNCis/Y2xvc2VAPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFUEFWMTJAWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmNsb3NlKHZvaWQpDQorP2Nsb3NlQD8kYmFzaWNfZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpjbG9zZSh2b2lkKQ0KKz9jbG9zZUA/JGJhc2ljX2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpjbG9zZSh2b2lkKQ0KKz9jbG9zZUA/JGJhc2ljX2lmc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpjbG9zZSh2b2lkKQ0KKz9jbG9zZUA/JGJhc2ljX2lmc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Y2xvc2Uodm9pZCkNCis/Y2xvc2VAPyRiYXNpY19vZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6Y2xvc2Uodm9pZCkNCis/Y2xvc2VAPyRiYXNpY19vZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjptZXNzYWdlczxjaGFyPjo6Y2xvc2UoaW50KWNvbnN0IA0KKz9jbG9zZUA/JG1lc3NhZ2VzQERAc3RkQEBRQkVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pjo6Y2xvc2UoaW50KWNvbnN0IA0KKz9jbG9zZUA/JG1lc3NhZ2VzQEdAc3RkQEBRQkVYSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6Y29tcGFyZShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiljb25zdCANCis/Y29tcGFyZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSEFCVjEyQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6Y29tcGFyZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKWNvbnN0IA0KKz9jb21wYXJlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVISUlBQlYxMkBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmNvbXBhcmUodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9jb21wYXJlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVISUlBQlYxMkBJSUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6Y29tcGFyZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGNoYXIgY29uc3QgKiljb25zdCANCis/Y29tcGFyZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSElJUEJEQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojpjb21wYXJlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCljb25zdCANCis/Y29tcGFyZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSElJUEJESUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6Y29tcGFyZShjaGFyIGNvbnN0ICopY29uc3QgDQorP2NvbXBhcmVAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUhQQkRAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmNvbXBhcmUoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpY29uc3QgDQorP2NvbXBhcmVAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUhBQlYxMkBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmNvbXBhcmUodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiljb25zdCANCis/Y29tcGFyZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSElJQUJWMTJAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojpjb21wYXJlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCANCis/Y29tcGFyZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSElJQUJWMTJASUlAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmNvbXBhcmUodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9jb21wYXJlQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVISUlQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmNvbXBhcmUodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCljb25zdCANCis/Y29tcGFyZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSElJUEJHSUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6Y29tcGFyZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9jb21wYXJlQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVIUEJHQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj46OmNvbXBhcmUoY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP2NvbXBhcmVAPyRjaGFyX3RyYWl0c0BEQHN0ZEBAU0FIUEJEMElAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD46OmNvbXBhcmUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/Y29tcGFyZUA/JGNoYXJfdHJhaXRzQEdAc3RkQEBTQUhQQkcwSUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTxjaGFyPjo6Y29tcGFyZShjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICopY29uc3QgDQorP2NvbXBhcmVAPyRjb2xsYXRlQERAc3RkQEBRQkVIUEJEMDAwQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpjb2xsYXRlPHVuc2lnbmVkIHNob3J0Pjo6Y29tcGFyZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9jb21wYXJlQD8kY29sbGF0ZUBHQHN0ZEBAUUJFSFBCRzAwMEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6Y29uaihjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorP2NvbmpAc3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6Y29uaihjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz9jb25qQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6Y29uaihjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorP2NvbmpAc3RkQEBZQT9BVj8kY29tcGxleEBPQDFAQUJWMjFAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojpjb3B5KGNoYXIgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9jb3B5QD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJUEFESUlAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmNvcHkodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9jb3B5QD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJUEFHSUlAWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciAqIF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czxjaGFyPjo6Y29weShjaGFyICosY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/Y29weUA/JGNoYXJfdHJhaXRzQERAc3RkQEBTQVBBRFBBRFBCRElAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgKiBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+Ojpjb3B5KHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP2NvcHlAPyRjaGFyX3RyYWl0c0BHQHN0ZEBAU0FQQUdQQUdQQkdJQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmNvcHlmbXQoY2xhc3Mgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+IGNvbnN0ICYpDQorP2NvcHlmbXRAPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYxMkBBQlYxMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmNvcHlmbXQoY2xhc3Mgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/Y29weWZtdEA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjEyQEFCVjEyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6OmNvcHlmbXQoY2xhc3Mgc3RkOjppb3NfYmFzZSBjb25zdCAmKQ0KKz9jb3B5Zm10QGlvc19iYXNlQHN0ZEBAUUFFQUFWMTJAQUJWMTJAQFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgc3RkOjpfQ3RyPGZsb2F0Pjo6Y29zKGZsb2F0KQ0KKz9jb3NAPyRfQ3RyQE1Ac3RkQEBTQU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+Ojpjb3MoZG91YmxlKQ0KKz9jb3NAPyRfQ3RyQE5Ac3RkQEBTQU5OQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGxvbmcgZG91YmxlPjo6Y29zKGxvbmcgZG91YmxlKQ0KKz9jb3NAPyRfQ3RyQE9Ac3RkQEBTQU9PQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpjb3MoY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz9jb3NAc3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6Y29zKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorP2Nvc0BzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6OmNvcyhjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorP2Nvc0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6OmNvc2goY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz9jb3NoQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAxQEFCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OmNvc2goY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/Y29zaEBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6OmNvc2goY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz9jb3NoQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBzdGQ6OmNvdXQNCis/Y291dEBzdGRAQDNWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQSBEQVRBDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46OmN1cnJfc3ltYm9sKHZvaWQpY29uc3QgDQorP2N1cnJfc3ltYm9sQD8kX01wdW5jdEBEQHN0ZEBAUUJFP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpjdXJyX3N5bWJvbCh2b2lkKWNvbnN0IA0KKz9jdXJyX3N5bWJvbEA/JF9NcHVuY3RAR0BzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmRhdGEodm9pZCljb25zdCANCis/ZGF0YUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFUEJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZGF0YSh2b2lkKWNvbnN0IA0KKz9kYXRhQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVQQkdYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpkYXRlX29yZGVyKHZvaWQpY29uc3QgDQorP2RhdGVfb3JkZXJAPyR0aW1lX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpkYXRlX29yZGVyKHZvaWQpY29uc3QgDQorP2RhdGVfb3JkZXJAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFCRUhYWg0KKzsgcHVibGljOiBjaGFyIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PGNoYXI+OjpkZWNpbWFsX3BvaW50KHZvaWQpY29uc3QgDQorP2RlY2ltYWxfcG9pbnRAPyRfTXB1bmN0QERAc3RkQEBRQkVEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpkZWNpbWFsX3BvaW50KHZvaWQpY29uc3QgDQorP2RlY2ltYWxfcG9pbnRAPyRfTXB1bmN0QEdAc3RkQEBRQkVHWFoNCis7IHB1YmxpYzogY2hhciBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46OmRlY2ltYWxfcG9pbnQodm9pZCljb25zdCANCis/ZGVjaW1hbF9wb2ludEA/JG51bXB1bmN0QERAc3RkQEBRQkVEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6ZGVjaW1hbF9wb2ludCh2b2lkKWNvbnN0IA0KKz9kZWNpbWFsX3BvaW50QD8kbnVtcHVuY3RAR0BzdGRAQFFCRUdYWg0KKzsgcHVibGljOiBzdGF0aWMgc2lnbmVkIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpZ25lZCBjaGFyPjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNAQ0BzdGRAQFNBQ1haDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxjaGFyPjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNAREBzdGRAQFNBRFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBjaGFyPjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNARUBzdGRAQFNBRVhaDQorOyBwdWJsaWM6IHN0YXRpYyBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2hvcnQ+OjpkZW5vcm1fbWluKHZvaWQpDQorP2Rlbm9ybV9taW5APyRudW1lcmljX2xpbWl0c0BGQHN0ZEBAU0FGWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBzaG9ydD46OmRlbm9ybV9taW4odm9pZCkNCis/ZGVub3JtX21pbkA/JG51bWVyaWNfbGltaXRzQEdAc3RkQEBTQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjpkZW5vcm1fbWluKHZvaWQpDQorP2Rlbm9ybV9taW5APyRudW1lcmljX2xpbWl0c0BIQHN0ZEBAU0FIWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgaW50Pjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNASUBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxsb25nPjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNASkBzdGRAQFNBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBsb25nPjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNAS0BzdGRAQFNBS1haDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjpkZW5vcm1fbWluKHZvaWQpDQorP2Rlbm9ybV9taW5APyRudW1lcmljX2xpbWl0c0BNQHN0ZEBAU0FNWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNATkBzdGRAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBkb3VibGU+OjpkZW5vcm1fbWluKHZvaWQpDQorP2Rlbm9ybV9taW5APyRudW1lcmljX2xpbWl0c0BPQHN0ZEBAU0FPWFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGJvb2w+OjpkZW5vcm1fbWluKHZvaWQpDQorP2Rlbm9ybV9taW5APyRudW1lcmljX2xpbWl0c0BfTkBzdGRAQFNBX05YWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGJvb2wgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+Ojpkb19hbHdheXNfbm9jb252KHZvaWQpY29uc3QgDQorP2RvX2Fsd2F5c19ub2NvbnZAPyRjb2RlY3Z0QEdESEBzdGRAQE1CRV9OWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBib29sIF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0X2Jhc2U6OmRvX2Fsd2F5c19ub2NvbnYodm9pZCljb25zdCANCis/ZG9fYWx3YXlzX25vY29udkBjb2RlY3Z0X2Jhc2VAc3RkQEBNQkVfTlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXM8Y2hhcj46OmRvX2Nsb3NlKGludCljb25zdCANCis/ZG9fY2xvc2VAPyRtZXNzYWdlc0BEQHN0ZEBATUJFWEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pjo6ZG9fY2xvc2UoaW50KWNvbnN0IA0KKz9kb19jbG9zZUA/JG1lc3NhZ2VzQEdAc3RkQEBNQkVYSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpjb2xsYXRlPGNoYXI+Ojpkb19jb21wYXJlKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKiljb25zdCANCis/ZG9fY29tcGFyZUA/JGNvbGxhdGVAREBzdGRAQE1CRUhQQkQwMDBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46OmRvX2NvbXBhcmUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/ZG9fY29tcGFyZUA/JGNvbGxhdGVAR0BzdGRAQE1CRUhQQkcwMDBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46OmRvX2N1cnJfc3ltYm9sKHZvaWQpY29uc3QgDQorP2RvX2N1cnJfc3ltYm9sQD8kX01wdW5jdEBEQHN0ZEBATUJFP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmRvX2N1cnJfc3ltYm9sKHZvaWQpY29uc3QgDQorP2RvX2N1cnJfc3ltYm9sQD8kX01wdW5jdEBHQHN0ZEBATUJFP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZGF0ZV9vcmRlcih2b2lkKWNvbnN0IA0KKz9kb19kYXRlX29yZGVyQD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19kYXRlX29yZGVyKHZvaWQpY29uc3QgDQorP2RvX2RhdGVfb3JkZXJAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNoYXIgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46OmRvX2RlY2ltYWxfcG9pbnQodm9pZCljb25zdCANCis/ZG9fZGVjaW1hbF9wb2ludEA/JF9NcHVuY3RAREBzdGRAQE1CRURYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6ZG9fZGVjaW1hbF9wb2ludCh2b2lkKWNvbnN0IA0KKz9kb19kZWNpbWFsX3BvaW50QD8kX01wdW5jdEBHQHN0ZEBATUJFR1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2hhciBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46OmRvX2RlY2ltYWxfcG9pbnQodm9pZCljb25zdCANCis/ZG9fZGVjaW1hbF9wb2ludEA/JG51bXB1bmN0QERAc3RkQEBNQkVEWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojpkb19kZWNpbWFsX3BvaW50KHZvaWQpY29uc3QgDQorP2RvX2RlY2ltYWxfcG9pbnRAPyRudW1wdW5jdEBHQHN0ZEBATUJFR1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6ZG9fZW5jb2Rpbmcodm9pZCljb25zdCANCis/ZG9fZW5jb2RpbmdAPyRjb2RlY3Z0QEdESEBzdGRAQE1CRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dF9iYXNlOjpkb19lbmNvZGluZyh2b2lkKWNvbnN0IA0KKz9kb19lbmNvZGluZ0Bjb2RlY3Z0X2Jhc2VAc3RkQEBNQkVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1wdW5jdDxjaGFyPjo6ZG9fZmFsc2VuYW1lKHZvaWQpY29uc3QgDQorP2RvX2ZhbHNlbmFtZUA/JG51bXB1bmN0QERAc3RkQEBNQkU/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmRvX2ZhbHNlbmFtZSh2b2lkKWNvbnN0IA0KKz9kb19mYWxzZW5hbWVAPyRudW1wdW5jdEBHQHN0ZEBATUJFP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PGNoYXI+Ojpkb19mcmFjX2RpZ2l0cyh2b2lkKWNvbnN0IA0KKz9kb19mcmFjX2RpZ2l0c0A/JF9NcHVuY3RAREBzdGRAQE1CRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmRvX2ZyYWNfZGlnaXRzKHZvaWQpY29uc3QgDQorP2RvX2ZyYWNfZGlnaXRzQD8kX01wdW5jdEBHQHN0ZEBATUJFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXM8Y2hhcj46OmRvX2dldChpbnQsaW50LGludCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiljb25zdCANCis/ZG9fZ2V0QD8kbWVzc2FnZXNAREBzdGRAQE1CRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBISEhBQlYzMkBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pjo6ZG9fZ2V0KGludCxpbnQsaW50LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKWNvbnN0IA0KKz9kb19nZXRAPyRtZXNzYWdlc0BHQHN0ZEBATUJFP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQEhISEFCVjMyQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixib29sLGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixsb25nIGRvdWJsZSAmKWNvbnN0IA0KKz9kb19nZXRAPyRtb25leV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMF9OQUFWaW9zX2Jhc2VAMkBBQUhBQU9AWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjptb25leV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYpY29uc3QgDQorP2RvX2dldEA/JG1vbmV5X2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwX05BQVZpb3NfYmFzZUAyQEFBSEFBVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om1vbmV5X2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsbG9uZyBkb3VibGUgJiljb25zdCANCis/ZG9fZ2V0QD8kbW9uZXlfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBfTkFBVmlvc19iYXNlQDJAQUFIQUFPQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjptb25leV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmKWNvbnN0IA0KKz9kb19nZXRAPyRtb25leV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMF9OQUFWaW9zX2Jhc2VAMkBBQUhBQVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsdW5zaWduZWQgc2hvcnQgJiljb25zdCANCis/ZG9fZ2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQUdAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJix1bnNpZ25lZCBpbnQgJiljb25zdCANCis/ZG9fZ2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQUlAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixsb25nICYpY29uc3QgDQorP2RvX2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFKQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsdW5zaWduZWQgbG9uZyAmKWNvbnN0IA0KKz9kb19nZXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGZsb2F0ICYpY29uc3QgDQorP2RvX2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFNQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsZG91YmxlICYpY29uc3QgDQorP2RvX2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFOQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsbG9uZyBkb3VibGUgJiljb25zdCANCis/ZG9fZ2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQU9AWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJix2b2lkICogJiljb25zdCANCis/ZG9fZ2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQVBBWEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGJvb2wgJiljb25zdCANCis/ZG9fZ2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQV9OQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsdW5zaWduZWQgc2hvcnQgJiljb25zdCANCis/ZG9fZ2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQUdAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJix1bnNpZ25lZCBpbnQgJiljb25zdCANCis/ZG9fZ2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQUlAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixsb25nICYpY29uc3QgDQorP2RvX2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFKQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsdW5zaWduZWQgbG9uZyAmKWNvbnN0IA0KKz9kb19nZXRAPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGZsb2F0ICYpY29uc3QgDQorP2RvX2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFNQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsZG91YmxlICYpY29uc3QgDQorP2RvX2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFOQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsbG9uZyBkb3VibGUgJiljb25zdCANCis/ZG9fZ2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQU9AWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJix2b2lkICogJiljb25zdCANCis/ZG9fZ2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQVBBWEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGJvb2wgJiljb25zdCANCis/ZG9fZ2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQV9OQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX2dldF9kYXRlKGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsc3RydWN0IHRtICopY29uc3QgDQorP2RvX2dldF9kYXRlQD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIUEFVdG1AQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX2dldF9kYXRlKGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHN0cnVjdCB0bSAqKWNvbnN0IA0KKz9kb19nZXRfZGF0ZUA/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSFBBVXRtQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0X21vbnRobmFtZShjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHN0cnVjdCB0bSAqKWNvbnN0IA0KKz9kb19nZXRfbW9udGhuYW1lQD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIUEFVdG1AQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX2dldF9tb250aG5hbWUoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsc3RydWN0IHRtICopY29uc3QgDQorP2RvX2dldF9tb250aG5hbWVAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhQQVV0bUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX2dldF90aW1lKGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsc3RydWN0IHRtICopY29uc3QgDQorP2RvX2dldF90aW1lQD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIUEFVdG1AQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX2dldF90aW1lKGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHN0cnVjdCB0bSAqKWNvbnN0IA0KKz9kb19nZXRfdGltZUA/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSFBBVXRtQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0X3dlZWtkYXkoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixzdHJ1Y3QgdG0gKiljb25zdCANCis/ZG9fZ2V0X3dlZWtkYXlAPyR0aW1lX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhQQVV0bUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZ2V0X3dlZWtkYXkoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsc3RydWN0IHRtICopY29uc3QgDQorP2RvX2dldF93ZWVrZGF5QD8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIUEFVdG1AQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19nZXRfeWVhcihjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHN0cnVjdCB0bSAqKWNvbnN0IA0KKz9kb19nZXRfeWVhckA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSFBBVXRtQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19nZXRfeWVhcihjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixzdHJ1Y3QgdG0gKiljb25zdCANCis/ZG9fZ2V0X3llYXJAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhQQVV0bUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PGNoYXI+Ojpkb19ncm91cGluZyh2b2lkKWNvbnN0IA0KKz9kb19ncm91cGluZ0A/JF9NcHVuY3RAREBzdGRAQE1CRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojpkb19ncm91cGluZyh2b2lkKWNvbnN0IA0KKz9kb19ncm91cGluZ0A/JF9NcHVuY3RAR0BzdGRAQE1CRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PGNoYXI+Ojpkb19ncm91cGluZyh2b2lkKWNvbnN0IA0KKz9kb19ncm91cGluZ0A/JG51bXB1bmN0QERAc3RkQEBNQkU/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmRvX2dyb3VwaW5nKHZvaWQpY29uc3QgDQorP2RvX2dyb3VwaW5nQD8kbnVtcHVuY3RAR0BzdGRAQE1CRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBzdGQ6OmNvbGxhdGU8Y2hhcj46OmRvX2hhc2goY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKiljb25zdCANCis/ZG9faGFzaEA/JGNvbGxhdGVAREBzdGRAQE1CRUpQQkQwQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgc3RkOjpjb2xsYXRlPHVuc2lnbmVkIHNob3J0Pjo6ZG9faGFzaCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP2RvX2hhc2hAPyRjb2xsYXRlQEdAc3RkQEBNQkVKUEJHMEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0PGNoYXIsY2hhcixpbnQ+Ojpkb19pbihpbnQgJixjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKiAmLGNoYXIgKixjaGFyICosY2hhciAqICYpY29uc3QgDQorP2RvX2luQD8kY29kZWN2dEBEREhAc3RkQEBNQkVIQUFIUEJEMUFBUEJEUEFEM0FBUEFEQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+Ojpkb19pbihpbnQgJixjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKiAmLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqICYpY29uc3QgDQorP2RvX2luQD8kY29kZWN2dEBHREhAc3RkQEBNQkVIQUFIUEJEMUFBUEJEUEFHM0FBUEFHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OmRvX2lzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixzaG9ydCAqKWNvbnN0IA0KKz9kb19pc0A/JGN0eXBlQEdAc3RkQEBNQkVQQkdQQkcwUEFGQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBib29sIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OmRvX2lzKHNob3J0LHVuc2lnbmVkIHNob3J0KWNvbnN0IA0KKz9kb19pc0A/JGN0eXBlQEdAc3RkQEBNQkVfTkZHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnQ8Y2hhcixjaGFyLGludD46OmRvX2xlbmd0aChpbnQgJixjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCljb25zdCANCis/ZG9fbGVuZ3RoQD8kY29kZWN2dEBEREhAc3RkQEBNQkVIQUFIUEJEMUlAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD46OmRvX2xlbmd0aChpbnQgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KWNvbnN0IA0KKz9kb19sZW5ndGhAPyRjb2RlY3Z0QEdESEBzdGRAQE1CRUhBQUhQQkcxSUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6ZG9fbWF4X2xlbmd0aCh2b2lkKWNvbnN0IA0KKz9kb19tYXhfbGVuZ3RoQD8kY29kZWN2dEBHREhAc3RkQEBNQkVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnRfYmFzZTo6ZG9fbWF4X2xlbmd0aCh2b2lkKWNvbnN0IA0KKz9kb19tYXhfbGVuZ3RoQGNvZGVjdnRfYmFzZUBzdGRAQE1CRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNoYXIgX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6ZG9fbmFycm93KHVuc2lnbmVkIHNob3J0LGNoYXIpY29uc3QgDQorP2RvX25hcnJvd0A/JGN0eXBlQEdAc3RkQEBNQkVER0RAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6ZG9fbmFycm93KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixjaGFyLGNoYXIgKiljb25zdCANCis/ZG9fbmFycm93QD8kY3R5cGVAR0BzdGRAQE1CRVBCR1BCRzBEUEFEQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3Qgc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuICBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDxjaGFyPjo6ZG9fbmVnX2Zvcm1hdCh2b2lkKWNvbnN0IA0KKz9kb19uZWdfZm9ybWF0QD8kX01wdW5jdEBEQHN0ZEBATUJFP0FVcGF0dGVybkBtb25leV9iYXNlQDJAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBzdHJ1Y3Qgc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuICBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmRvX25lZ19mb3JtYXQodm9pZCljb25zdCANCis/ZG9fbmVnX2Zvcm1hdEA/JF9NcHVuY3RAR0BzdGRAQE1CRT9BVXBhdHRlcm5AbW9uZXlfYmFzZUAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDxjaGFyPjo6ZG9fbmVnYXRpdmVfc2lnbih2b2lkKWNvbnN0IA0KKz9kb19uZWdhdGl2ZV9zaWduQD8kX01wdW5jdEBEQHN0ZEBATUJFP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmRvX25lZ2F0aXZlX3NpZ24odm9pZCljb25zdCANCis/ZG9fbmVnYXRpdmVfc2lnbkA/JF9NcHVuY3RAR0BzdGRAQE1CRT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXM8Y2hhcj46OmRvX29wZW4oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsY2xhc3Mgc3RkOjpsb2NhbGUgY29uc3QgJiljb25zdCANCis/ZG9fb3BlbkA/JG1lc3NhZ2VzQERAc3RkQEBNQkVIQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQEFCVmxvY2FsZUAyQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjptZXNzYWdlczx1bnNpZ25lZCBzaG9ydD46OmRvX29wZW4oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsY2xhc3Mgc3RkOjpsb2NhbGUgY29uc3QgJiljb25zdCANCis/ZG9fb3BlbkA/JG1lc3NhZ2VzQEdAc3RkQEBNQkVIQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQEFCVmxvY2FsZUAyQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0PGNoYXIsY2hhcixpbnQ+Ojpkb19vdXQoaW50ICYsY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICogJixjaGFyICosY2hhciAqLGNoYXIgKiAmKWNvbnN0IA0KKz9kb19vdXRAPyRjb2RlY3Z0QERESEBzdGRAQE1CRUhBQUhQQkQxQUFQQkRQQUQzQUFQQURAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD46OmRvX291dChpbnQgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKiAmLGNoYXIgKixjaGFyICosY2hhciAqICYpY29uc3QgDQorP2RvX291dEA/JGNvZGVjdnRAR0RIQHN0ZEBATUJFSEFBSFBCRzFBQVBCR1BBRDNBQVBBREBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgc3RydWN0IHN0ZDo6bW9uZXlfYmFzZTo6cGF0dGVybiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46OmRvX3Bvc19mb3JtYXQodm9pZCljb25zdCANCis/ZG9fcG9zX2Zvcm1hdEA/JF9NcHVuY3RAREBzdGRAQE1CRT9BVXBhdHRlcm5AbW9uZXlfYmFzZUAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgc3RydWN0IHN0ZDo6bW9uZXlfYmFzZTo6cGF0dGVybiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojpkb19wb3NfZm9ybWF0KHZvaWQpY29uc3QgDQorP2RvX3Bvc19mb3JtYXRAPyRfTXB1bmN0QEdAc3RkQEBNQkU/QVVwYXR0ZXJuQG1vbmV5X2Jhc2VAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46OmRvX3Bvc2l0aXZlX3NpZ24odm9pZCljb25zdCANCis/ZG9fcG9zaXRpdmVfc2lnbkA/JF9NcHVuY3RAREBzdGRAQE1CRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojpkb19wb3NpdGl2ZV9zaWduKHZvaWQpY29uc3QgDQorP2RvX3Bvc2l0aXZlX3NpZ25APyRfTXB1bmN0QEdAc3RkQEBNQkU/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixib29sLGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixjaGFyLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKWNvbnN0IA0KKz9kb19wdXRAPyRtb25leV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAX05BQVZpb3NfYmFzZUAyQERBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixib29sLGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixjaGFyLGxvbmcgZG91YmxlKWNvbnN0IA0KKz9kb19wdXRAPyRtb25leV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAX05BQVZpb3NfYmFzZUAyQERPQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjptb25leV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYsdW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpY29uc3QgDQorP2RvX3B1dEA/JG1vbmV5X3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBfTkFBVmlvc19iYXNlQDJAR0FCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om1vbmV5X3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fcHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixib29sLGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJix1bnNpZ25lZCBzaG9ydCxsb25nIGRvdWJsZSljb25zdCANCis/ZG9fcHV0QD8kbW9uZXlfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQF9OQUFWaW9zX2Jhc2VAMkBHT0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixjaGFyLGxvbmcpY29uc3QgDQorP2RvX3B1dEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBESkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixjaGFyLHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP2RvX3B1dEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBES0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixjaGFyLGRvdWJsZSljb25zdCANCis/ZG9fcHV0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQEROQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fcHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGNoYXIsbG9uZyBkb3VibGUpY29uc3QgDQorP2RvX3B1dEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBET0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixjaGFyLHZvaWQgY29uc3QgKiljb25zdCANCis/ZG9fcHV0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQERQQlhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsY2hhcixib29sKWNvbnN0IA0KKz9kb19wdXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJARF9OQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJix1bnNpZ25lZCBzaG9ydCxsb25nKWNvbnN0IA0KKz9kb19wdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJAR0pAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP2RvX3B1dEA/JG51bV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBHS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fcHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsdW5zaWduZWQgc2hvcnQsZG91YmxlKWNvbnN0IA0KKz9kb19wdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJAR05AWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLHVuc2lnbmVkIHNob3J0LGxvbmcgZG91YmxlKWNvbnN0IA0KKz9kb19wdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJAR09AWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLHVuc2lnbmVkIHNob3J0LHZvaWQgY29uc3QgKiljb25zdCANCis/ZG9fcHV0QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQEdQQlhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLHVuc2lnbmVkIHNob3J0LGJvb2wpY29uc3QgDQorP2RvX3B1dEA/JG51bV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBHX05AWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjp0aW1lX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fcHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLHN0cnVjdCB0bSBjb25zdCAqLGNoYXIsY2hhciljb25zdCANCis/ZG9fcHV0QD8kdGltZV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBQQlV0bUBARERAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6OnRpbWVfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixzdHJ1Y3QgdG0gY29uc3QgKixjaGFyLGNoYXIpY29uc3QgDQorP2RvX3B1dEA/JHRpbWVfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJAUEJVdG1AQEREQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OmRvX3NjYW5faXMoc2hvcnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9kb19zY2FuX2lzQD8kY3R5cGVAR0BzdGRAQE1CRVBCR0ZQQkcwQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OmRvX3NjYW5fbm90KHNob3J0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/ZG9fc2Nhbl9ub3RAPyRjdHlwZUBHQHN0ZEBATUJFUEJHRlBCRzBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNoYXIgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46OmRvX3Rob3VzYW5kc19zZXAodm9pZCljb25zdCANCis/ZG9fdGhvdXNhbmRzX3NlcEA/JF9NcHVuY3RAREBzdGRAQE1CRURYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6ZG9fdGhvdXNhbmRzX3NlcCh2b2lkKWNvbnN0IA0KKz9kb190aG91c2FuZHNfc2VwQD8kX01wdW5jdEBHQHN0ZEBATUJFR1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2hhciBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46OmRvX3Rob3VzYW5kc19zZXAodm9pZCljb25zdCANCis/ZG9fdGhvdXNhbmRzX3NlcEA/JG51bXB1bmN0QERAc3RkQEBNQkVEWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojpkb190aG91c2FuZHNfc2VwKHZvaWQpY29uc3QgDQorP2RvX3Rob3VzYW5kc19zZXBAPyRudW1wdW5jdEBHQHN0ZEBATUJFR1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2hhciBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8Y2hhcj46OmRvX3RvbG93ZXIoY2hhciljb25zdCANCis/ZG9fdG9sb3dlckA/JGN0eXBlQERAc3RkQEBNQkVEREBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTxjaGFyPjo6ZG9fdG9sb3dlcihjaGFyICosY2hhciBjb25zdCAqKWNvbnN0IA0KKz9kb190b2xvd2VyQD8kY3R5cGVAREBzdGRAQE1CRVBCRFBBRFBCREBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6ZG9fdG9sb3dlcih1bnNpZ25lZCBzaG9ydCljb25zdCANCis/ZG9fdG9sb3dlckA/JGN0eXBlQEdAc3RkQEBNQkVHR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+Ojpkb190b2xvd2VyKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/ZG9fdG9sb3dlckA/JGN0eXBlQEdAc3RkQEBNQkVQQkdQQUdQQkdAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNoYXIgX190aGlzY2FsbCBzdGQ6OmN0eXBlPGNoYXI+Ojpkb190b3VwcGVyKGNoYXIpY29uc3QgDQorP2RvX3RvdXBwZXJAPyRjdHlwZUBEQHN0ZEBATUJFRERAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8Y2hhcj46OmRvX3RvdXBwZXIoY2hhciAqLGNoYXIgY29uc3QgKiljb25zdCANCis/ZG9fdG91cHBlckA/JGN0eXBlQERAc3RkQEBNQkVQQkRQQURQQkRAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OmRvX3RvdXBwZXIodW5zaWduZWQgc2hvcnQpY29uc3QgDQorP2RvX3RvdXBwZXJAPyRjdHlwZUBHQHN0ZEBATUJFR0dAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6ZG9fdG91cHBlcih1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP2RvX3RvdXBwZXJAPyRjdHlwZUBHQHN0ZEBATUJFUEJHUEFHUEJHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpjb2xsYXRlPGNoYXI+Ojpkb190cmFuc2Zvcm0oY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKiljb25zdCANCis/ZG9fdHJhbnNmb3JtQD8kY29sbGF0ZUBEQHN0ZEBATUJFP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFBCRDBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6OmNvbGxhdGU8dW5zaWduZWQgc2hvcnQ+Ojpkb190cmFuc2Zvcm0odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9kb190cmFuc2Zvcm1APyRjb2xsYXRlQEdAc3RkQEBNQkU/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAUEJHMEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46OmRvX3RydWVuYW1lKHZvaWQpY29uc3QgDQorP2RvX3RydWVuYW1lQD8kbnVtcHVuY3RAREBzdGRAQE1CRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6ZG9fdHJ1ZW5hbWUodm9pZCljb25zdCANCis/ZG9fdHJ1ZW5hbWVAPyRudW1wdW5jdEBHQHN0ZEBATUJFP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6ZG9fd2lkZW4oY2hhciljb25zdCANCis/ZG9fd2lkZW5APyRjdHlwZUBHQHN0ZEBATUJFR0RAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+Ojpkb193aWRlbihjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqLHVuc2lnbmVkIHNob3J0ICopY29uc3QgDQorP2RvX3dpZGVuQD8kY3R5cGVAR0BzdGRAQE1CRVBCRFBCRDBQQUdAWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmViYWNrKHZvaWQpY29uc3QgDQorP2ViYWNrQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUJFUEFEWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjplYmFjayh2b2lkKWNvbnN0IA0KKz9lYmFja0A/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElCRVBBR1haDQorOyBwcm90ZWN0ZWQ6IGNoYXIgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6ZWdwdHIodm9pZCljb25zdCANCis/ZWdwdHJAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJQkVQQURYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmVncHRyKHZvaWQpY29uc3QgDQorP2VncHRyQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUJFUEFHWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZW1wdHkodm9pZCljb25zdCANCis/ZW1wdHlAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZW1wdHkodm9pZCljb25zdCANCis/ZW1wdHlAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRV9OWFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlICBfX2NkZWNsIHN0ZDo6bG9jYWxlOjplbXB0eSh2b2lkKQ0KKz9lbXB0eUBsb2NhbGVAc3RkQEBTQT9BVjEyQFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dF9iYXNlOjplbmNvZGluZyh2b2lkKWNvbnN0IA0KKz9lbmNvZGluZ0Bjb2RlY3Z0X2Jhc2VAc3RkQEBRQkVIWFoNCis7IHB1YmxpYzogY2hhciAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjplbmQodm9pZCkNCis/ZW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVQQURYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmVuZCh2b2lkKWNvbnN0IA0KKz9lbmRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRVBCRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmVuZCh2b2lkKQ0KKz9lbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRVBBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmVuZCh2b2lkKWNvbnN0IA0KKz9lbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRVBCR1haDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19jZGVjbCBzdGQ6OmVuZGwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmKQ0KKz9lbmRsQHN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBBQVYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19jZGVjbCBzdGQ6OmVuZGwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYpDQorP2VuZGxAc3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEFBVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19jZGVjbCBzdGQ6OmVuZHMoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmKQ0KKz9lbmRzQHN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBBQVYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19jZGVjbCBzdGQ6OmVuZHMoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYpDQorP2VuZHNAc3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEFBVjIxQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+Ojplb2Yodm9pZCkNCis/ZW9mQD8kY2hhcl90cmFpdHNAREBzdGRAQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+Ojplb2Yodm9pZCkNCis/ZW9mQD8kY2hhcl90cmFpdHNAR0BzdGRAQFNBR1haDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjplb2Yodm9pZCljb25zdCANCis/ZW9mQGlvc19iYXNlQHN0ZEBAUUJFX05YWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmVwcHRyKHZvaWQpY29uc3QgDQorP2VwcHRyQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUJFUEFEWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjplcHB0cih2b2lkKWNvbnN0IA0KKz9lcHB0ckA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElCRVBBR1haDQorOyBwdWJsaWM6IHN0YXRpYyBzaWduZWQgY2hhciBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2lnbmVkIGNoYXI+OjplcHNpbG9uKHZvaWQpDQorP2Vwc2lsb25APyRudW1lcmljX2xpbWl0c0BDQHN0ZEBAU0FDWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGNoYXI+OjplcHNpbG9uKHZvaWQpDQorP2Vwc2lsb25APyRudW1lcmljX2xpbWl0c0BEQHN0ZEBAU0FEWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGNoYXI+OjplcHNpbG9uKHZvaWQpDQorP2Vwc2lsb25APyRudW1lcmljX2xpbWl0c0BFQHN0ZEBAU0FFWFoNCis7IHB1YmxpYzogc3RhdGljIHNob3J0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxzaG9ydD46OmVwc2lsb24odm9pZCkNCis/ZXBzaWxvbkA/JG51bWVyaWNfbGltaXRzQEZAc3RkQEBTQUZYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIHNob3J0Pjo6ZXBzaWxvbih2b2lkKQ0KKz9lcHNpbG9uQD8kbnVtZXJpY19saW1pdHNAR0BzdGRAQFNBR1haDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46OmVwc2lsb24odm9pZCkNCis/ZXBzaWxvbkA/JG51bWVyaWNfbGltaXRzQEhAc3RkQEBTQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBpbnQ+OjplcHNpbG9uKHZvaWQpDQorP2Vwc2lsb25APyRudW1lcmljX2xpbWl0c0BJQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmc+OjplcHNpbG9uKHZvaWQpDQorP2Vwc2lsb25APyRudW1lcmljX2xpbWl0c0BKQHN0ZEBAU0FKWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGxvbmc+OjplcHNpbG9uKHZvaWQpDQorP2Vwc2lsb25APyRudW1lcmljX2xpbWl0c0BLQHN0ZEBAU0FLWFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24odm9pZCkNCis/ZXBzaWxvbkA/JG51bWVyaWNfbGltaXRzQE1Ac3RkQEBTQU1YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjplcHNpbG9uKHZvaWQpDQorP2Vwc2lsb25APyRudW1lcmljX2xpbWl0c0BOQHN0ZEBAU0FOWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGRvdWJsZT46OmVwc2lsb24odm9pZCkNCis/ZXBzaWxvbkA/JG51bWVyaWNfbGltaXRzQE9Ac3RkQEBTQU9YWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8Ym9vbD46OmVwc2lsb24odm9pZCkNCis/ZXBzaWxvbkA/JG51bWVyaWNfbGltaXRzQF9OQHN0ZEBAU0FfTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czxjaGFyPjo6ZXEoY2hhciBjb25zdCAmLGNoYXIgY29uc3QgJikNCis/ZXFAPyRjaGFyX3RyYWl0c0BEQHN0ZEBAU0FfTkFCRDBAWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+OjplcSh1bnNpZ25lZCBzaG9ydCBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICYpDQorP2VxQD8kY2hhcl90cmFpdHNAR0BzdGRAQFNBX05BQkcwQFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+OjplcV9pbnRfdHlwZShpbnQgY29uc3QgJixpbnQgY29uc3QgJikNCis/ZXFfaW50X3R5cGVAPyRjaGFyX3RyYWl0c0BEQHN0ZEBAU0FfTkFCSDBAWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+OjplcV9pbnRfdHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICYpDQorP2VxX2ludF90eXBlQD8kY2hhcl90cmFpdHNAR0BzdGRAQFNBX05BQkcwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmVyYXNlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP2VyYXNlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYxMkBJSUBaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZXJhc2UoY2hhciAqLGNoYXIgKikNCis/ZXJhc2VAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRVBBRFBBRDBAWg0KKzsgcHVibGljOiBjaGFyICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmVyYXNlKGNoYXIgKikNCis/ZXJhc2VAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRVBBRFBBREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjplcmFzZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz9lcmFzZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJASUlAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjplcmFzZSh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICopDQorP2VyYXNlQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVQQUdQQUcwQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZXJhc2UodW5zaWduZWQgc2hvcnQgKikNCis/ZXJhc2VAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRVBBR1BBR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpleGNlcHRpb25zKHNob3J0KQ0KKz9leGNlcHRpb25zQGlvc19iYXNlQHN0ZEBAUUFFWEZAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6ZXhjZXB0aW9ucyhpbnQpDQorP2V4Y2VwdGlvbnNAaW9zX2Jhc2VAc3RkQEBRQUVYSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6OmV4Y2VwdGlvbnModm9pZCljb25zdCANCis/ZXhjZXB0aW9uc0Bpb3NfYmFzZUBzdGRAQFFCRUhYWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Ol9DdHI8ZmxvYXQ+OjpleHAoZmxvYXQpDQorP2V4cEA/JF9DdHJATUBzdGRAQFNBTU1AWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGRvdWJsZT46OmV4cChkb3VibGUpDQorP2V4cEA/JF9DdHJATkBzdGRAQFNBTk5AWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+OjpleHAobG9uZyBkb3VibGUpDQorP2V4cEA/JF9DdHJAT0BzdGRAQFNBT09AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6OmV4cChjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorP2V4cEBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpleHAoY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/ZXhwQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6ZXhwKGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/ZXhwQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFCVjIxQEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpmYWlsKHZvaWQpY29uc3QgDQorP2ZhaWxAaW9zX2Jhc2VAc3RkQEBRQkVfTlhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PGNoYXI+OjpmYWxzZW5hbWUodm9pZCljb25zdCANCis/ZmFsc2VuYW1lQD8kbnVtcHVuY3RAREBzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmZhbHNlbmFtZSh2b2lkKWNvbnN0IA0KKz9mYWxzZW5hbWVAPyRudW1wdW5jdEBHQHN0ZEBAUUJFP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwdWJsaWM6IGNoYXIgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmZpbGwoY2hhcikNCis/ZmlsbEA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUREQFoNCis7IHB1YmxpYzogY2hhciBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6ZmlsbCh2b2lkKWNvbnN0IA0KKz9maWxsQD8kYmFzaWNfaW9zQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUJFRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmZpbGwodW5zaWduZWQgc2hvcnQpDQorP2ZpbGxAPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVHR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmZpbGwodm9pZCljb25zdCANCis/ZmlsbEA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFCRUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmQoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJQUJWMTJASUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZChjaGFyLHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSURJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpmaW5kKGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUlQQkRJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpmaW5kKGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJUEJESUlAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmQoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJQUJWMTJASUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZmluZCh1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlHSUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZmluZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSVBCR0lAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJUEJHSUlAWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czxjaGFyPjo6ZmluZChjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50LGNoYXIgY29uc3QgJikNCis/ZmluZEA/JGNoYXJfdHJhaXRzQERAc3RkQEBTQVBCRFBCRElBQkRAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+OjpmaW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICYpDQorP2ZpbmRAPyRjaGFyX3RyYWl0c0BHQHN0ZEBAU0FQQkdQQkdJQUJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpmaW5kX2ZpcnN0X25vdF9vZihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfZmlyc3Rfbm90X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJQUJWMTJASUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZF9maXJzdF9ub3Rfb2YoY2hhcix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfZmlyc3Rfbm90X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJRElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmRfZmlyc3Rfbm90X29mKGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfZmlyc3Rfbm90X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJUEJESUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZF9maXJzdF9ub3Rfb2YoY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfZmlyc3Rfbm90X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJUEJESUlAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmRfZmlyc3Rfbm90X29mKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZF9maXJzdF9ub3Rfb2ZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlBQlYxMkBJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kX2ZpcnN0X25vdF9vZih1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfZmlyc3Rfbm90X29mQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJR0lAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmRfZmlyc3Rfbm90X29mKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2ZpcnN0X25vdF9vZkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSVBCR0lAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmRfZmlyc3Rfbm90X29mKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZF9maXJzdF9ub3Rfb2ZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlQQkdJSUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZF9maXJzdF9vZihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfZmlyc3Rfb2ZAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUlBQlYxMkBJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpmaW5kX2ZpcnN0X29mKGNoYXIsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2ZpcnN0X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJRElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmRfZmlyc3Rfb2YoY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZF9maXJzdF9vZkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSVBCRElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmRfZmlyc3Rfb2YoY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfZmlyc3Rfb2ZAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUlQQkRJSUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZmluZF9maXJzdF9vZihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfZmlyc3Rfb2ZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlBQlYxMkBJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kX2ZpcnN0X29mKHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZF9maXJzdF9vZkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSUdJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kX2ZpcnN0X29mKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2ZpcnN0X29mQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJUEJHSUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZmluZF9maXJzdF9vZih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfZmlyc3Rfb2ZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlQQkdJSUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZF9sYXN0X25vdF9vZihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfbGFzdF9ub3Rfb2ZAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUlBQlYxMkBJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpmaW5kX2xhc3Rfbm90X29mKGNoYXIsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2xhc3Rfbm90X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJRElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmRfbGFzdF9ub3Rfb2YoY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZF9sYXN0X25vdF9vZkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSVBCRElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmRfbGFzdF9ub3Rfb2YoY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfbGFzdF9ub3Rfb2ZAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUlQQkRJSUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZmluZF9sYXN0X25vdF9vZihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfbGFzdF9ub3Rfb2ZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlBQlYxMkBJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kX2xhc3Rfbm90X29mKHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZF9sYXN0X25vdF9vZkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSUdJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kX2xhc3Rfbm90X29mKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2xhc3Rfbm90X29mQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJUEJHSUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZmluZF9sYXN0X25vdF9vZih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfbGFzdF9ub3Rfb2ZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlQQkdJSUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZF9sYXN0X29mKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZF9sYXN0X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJQUJWMTJASUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZF9sYXN0X29mKGNoYXIsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2xhc3Rfb2ZAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUlESUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZF9sYXN0X29mKGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfbGFzdF9vZkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSVBCRElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmRfbGFzdF9vZihjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZF9sYXN0X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJUEJESUlAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmRfbGFzdF9vZihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfbGFzdF9vZkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSUFCVjEyQElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmRfbGFzdF9vZih1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfbGFzdF9vZkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSUdJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kX2xhc3Rfb2YodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfbGFzdF9vZkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSVBCR0lAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmRfbGFzdF9vZih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfbGFzdF9vZkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSVBCR0lJQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6ZmxhZ3MoaW50KQ0KKz9mbGFnc0Bpb3NfYmFzZUBzdGRAQFFBRUhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6ZmxhZ3Modm9pZCljb25zdCANCis/ZmxhZ3NAaW9zX2Jhc2VAc3RkQEBRQkVIWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Zmx1c2godm9pZCkNCis/Zmx1c2hAPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmZsdXNoKHZvaWQpDQorP2ZsdXNoQD8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjEyQFhaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19jZGVjbCBzdGQ6OmZsdXNoKGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJikNCis/Zmx1c2hAc3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEFBVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX2NkZWNsIHN0ZDo6Zmx1c2goY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYpDQorP2ZsdXNoQHN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBBQVYyMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46OmZyYWNfZGlnaXRzKHZvaWQpY29uc3QgDQorP2ZyYWNfZGlnaXRzQD8kX01wdW5jdEBEQHN0ZEBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmZyYWNfZGlnaXRzKHZvaWQpY29uc3QgDQorP2ZyYWNfZGlnaXRzQD8kX01wdW5jdEBHQHN0ZEBAUUJFSFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OnN0cnN0cmVhbWJ1Zjo6ZnJlZXplKGJvb2wpDQorP2ZyZWV6ZUBzdHJzdHJlYW1idWZAc3RkQEBRQUVYX05AWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpnYnVtcChpbnQpDQorP2didW1wQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUFFWEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmdidW1wKGludCkNCis/Z2J1bXBAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJQUVYSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Omdjb3VudCh2b2lkKWNvbnN0IA0KKz9nY291bnRAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6Z2NvdW50KHZvaWQpY29uc3QgDQorP2djb3VudEA/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQkVIWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Z2V0KGNoYXIgJikNCis/Z2V0QD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjEyQEFBREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmdldChjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJikNCis/Z2V0QD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjEyQEFBVj8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Z2V0KGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmLGNoYXIpDQorP2dldEA/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYxMkBBQVY/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQERAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpnZXQoY2hhciAqLGludCkNCis/Z2V0QD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjEyQFBBREhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpnZXQoY2hhciAqLGludCxjaGFyKQ0KKz9nZXRAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAUEFESERAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpnZXQodm9pZCkNCis/Z2V0QD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUhYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6Z2V0KHVuc2lnbmVkIHNob3J0ICYpDQorP2dldEA/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYxMkBBQUdAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6Z2V0KGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYpDQorP2dldEA/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYxMkBBQVY/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpnZXQoY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJix1bnNpZ25lZCBzaG9ydCkNCis/Z2V0QD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjEyQEFBVj8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpnZXQodW5zaWduZWQgc2hvcnQgKixpbnQpDQorP2dldEA/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYxMkBQQUdIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmdldCh1bnNpZ25lZCBzaG9ydCAqLGludCx1bnNpZ25lZCBzaG9ydCkNCis/Z2V0QD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjEyQFBBR0hHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmdldCh2b2lkKQ0KKz9nZXRAPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFR1haDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzPGNoYXI+OjpnZXQoaW50LGludCxpbnQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpY29uc3QgDQorP2dldEA/JG1lc3NhZ2VzQERAc3RkQEBRQkU/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJASEhIQUJWMzJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXM8dW5zaWduZWQgc2hvcnQ+OjpnZXQoaW50LGludCxpbnQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpY29uc3QgDQorP2dldEA/JG1lc3NhZ2VzQEdAc3RkQEBRQkU/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJASEhIQUJWMzJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixib29sLGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixsb25nIGRvdWJsZSAmKWNvbnN0IA0KKz9nZXRAPyRtb25leV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMF9OQUFWaW9zX2Jhc2VAMkBBQUhBQU9AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmKWNvbnN0IA0KKz9nZXRAPyRtb25leV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMF9OQUFWaW9zX2Jhc2VAMkBBQUhBQVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixib29sLGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixsb25nIGRvdWJsZSAmKWNvbnN0IA0KKz9nZXRAPyRtb25leV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMF9OQUFWaW9zX2Jhc2VAMkBBQUhBQU9AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjptb25leV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmKWNvbnN0IA0KKz9nZXRAPyRtb25leV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMF9OQUFWaW9zX2Jhc2VAMkBBQUhBQVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHVuc2lnbmVkIHNob3J0ICYpY29uc3QgDQorP2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHVuc2lnbmVkIGludCAmKWNvbnN0IA0KKz9nZXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBSUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixsb25nICYpY29uc3QgDQorP2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFKQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHVuc2lnbmVkIGxvbmcgJiljb25zdCANCis/Z2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQUtAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsZmxvYXQgJiljb25zdCANCis/Z2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQU1AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsZG91YmxlICYpY29uc3QgDQorP2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFOQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGxvbmcgZG91YmxlICYpY29uc3QgDQorP2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFPQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHZvaWQgKiAmKWNvbnN0IA0KKz9nZXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBUEFYQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGJvb2wgJiljb25zdCANCis/Z2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQV9OQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHVuc2lnbmVkIHNob3J0ICYpY29uc3QgDQorP2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHVuc2lnbmVkIGludCAmKWNvbnN0IA0KKz9nZXRAPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBSUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixsb25nICYpY29uc3QgDQorP2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFKQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHVuc2lnbmVkIGxvbmcgJiljb25zdCANCis/Z2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQUtAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsZmxvYXQgJiljb25zdCANCis/Z2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQU1AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsZG91YmxlICYpY29uc3QgDQorP2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFOQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGxvbmcgZG91YmxlICYpY29uc3QgDQorP2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFPQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHZvaWQgKiAmKWNvbnN0IA0KKz9nZXRAPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBUEFYQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGJvb2wgJiljb25zdCANCis/Z2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQV9OQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpnZXRfYWxsb2NhdG9yKHZvaWQpY29uc3QgDQorP2dldF9hbGxvY2F0b3JAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRT9BVj8kYWxsb2NhdG9yQERAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpnZXRfYWxsb2NhdG9yKHZvaWQpY29uc3QgDQorP2dldF9hbGxvY2F0b3JAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRT9BVj8kYWxsb2NhdG9yQEdAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmdldF9kYXRlKGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsc3RydWN0IHRtICopY29uc3QgDQorP2dldF9kYXRlQD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIUEFVdG1AQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpnZXRfZGF0ZShjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixzdHJ1Y3QgdG0gKiljb25zdCANCis/Z2V0X2RhdGVAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhQQVV0bUBAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXRfbW9udGhuYW1lKGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsc3RydWN0IHRtICopY29uc3QgDQorP2dldF9tb250aG5hbWVAPyR0aW1lX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhQQVV0bUBAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldF9tb250aG5hbWUoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsc3RydWN0IHRtICopY29uc3QgDQorP2dldF9tb250aG5hbWVAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhQQVV0bUBAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXRfdGltZShjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHN0cnVjdCB0bSAqKWNvbnN0IA0KKz9nZXRfdGltZUA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSFBBVXRtQEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6Z2V0X3RpbWUoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsc3RydWN0IHRtICopY29uc3QgDQorP2dldF90aW1lQD8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIUEFVdG1AQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6Z2V0X3dlZWtkYXkoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixzdHJ1Y3QgdG0gKiljb25zdCANCis/Z2V0X3dlZWtkYXlAPyR0aW1lX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhQQVV0bUBAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldF93ZWVrZGF5KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHN0cnVjdCB0bSAqKWNvbnN0IA0KKz9nZXRfd2Vla2RheUA/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSFBBVXRtQEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmdldF95ZWFyKGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsc3RydWN0IHRtICopY29uc3QgDQorP2dldF95ZWFyQD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIUEFVdG1AQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpnZXRfeWVhcihjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixzdHJ1Y3QgdG0gKiljb25zdCANCis/Z2V0X3llYXJAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhQQVV0bUBAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Z2V0bGluZShjaGFyICosaW50KQ0KKz9nZXRsaW5lQD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjEyQFBBREhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpnZXRsaW5lKGNoYXIgKixpbnQsY2hhcikNCis/Z2V0bGluZUA/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYxMkBQQURIREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpnZXRsaW5lKHVuc2lnbmVkIHNob3J0ICosaW50KQ0KKz9nZXRsaW5lQD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjEyQFBBR0hAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6Z2V0bGluZSh1bnNpZ25lZCBzaG9ydCAqLGludCx1bnNpZ25lZCBzaG9ydCkNCis/Z2V0bGluZUA/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYxMkBQQUdIR0BaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19jZGVjbCBzdGQ6OmdldGxpbmUoY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmKQ0KKz9nZXRsaW5lQHN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBBQVYyMUBBQVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX2NkZWNsIHN0ZDo6Z2V0bGluZShjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYsY2hhcikNCis/Z2V0bGluZUBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQUFWMjFAQUFWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAxQERAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19jZGVjbCBzdGQ6OmdldGxpbmUoY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYpDQorP2dldGxpbmVAc3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEFBVjIxQEFBVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMUBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19jZGVjbCBzdGQ6OmdldGxpbmUoY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYsdW5zaWduZWQgc2hvcnQpDQorP2dldGxpbmVAc3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEFBVjIxQEFBVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMUBHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsb2NhbGUgIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpnZXRsb2Modm9pZCkNCis/Z2V0bG9jQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFP0FWbG9jYWxlQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsb2NhbGUgIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmdldGxvYyh2b2lkKQ0KKz9nZXRsb2NAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUU/QVZsb2NhbGVAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmxvY2FsZSAgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpnZXRsb2Modm9pZCljb25zdCANCis/Z2V0bG9jQGlvc19iYXNlQHN0ZEBAUUJFP0FWbG9jYWxlQDJAWFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlICBfX2NkZWNsIHN0ZDo6bG9jYWxlOjpnbG9iYWwoY2xhc3Mgc3RkOjpsb2NhbGUgY29uc3QgJikNCis/Z2xvYmFsQGxvY2FsZUBzdGRAQFNBP0FWMTJAQUJWMTJAQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6Omdvb2Qodm9pZCljb25zdCANCis/Z29vZEBpb3NfYmFzZUBzdGRAQFFCRV9OWFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpncHRyKHZvaWQpY29uc3QgDQorP2dwdHJAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJQkVQQURYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmdwdHIodm9pZCljb25zdCANCis/Z3B0ckA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElCRVBBR1haDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46Omdyb3VwaW5nKHZvaWQpY29uc3QgDQorP2dyb3VwaW5nQD8kX01wdW5jdEBEQHN0ZEBAUUJFP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojpncm91cGluZyh2b2lkKWNvbnN0IA0KKz9ncm91cGluZ0A/JF9NcHVuY3RAR0BzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1wdW5jdDxjaGFyPjo6Z3JvdXBpbmcodm9pZCljb25zdCANCis/Z3JvdXBpbmdAPyRudW1wdW5jdEBEQHN0ZEBAUUJFP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6Z3JvdXBpbmcodm9pZCljb25zdCANCis/Z3JvdXBpbmdAPyRudW1wdW5jdEBHQHN0ZEBAUUJFP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBzdGQ6OmNvbGxhdGU8Y2hhcj46Omhhc2goY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKiljb25zdCANCis/aGFzaEA/JGNvbGxhdGVAREBzdGRAQFFCRUpQQkQwQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46Omhhc2godW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9oYXNoQD8kY29sbGF0ZUBHQHN0ZEBAUUJFSlBCRzBAWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6OmNvZGVjdnQ8Y2hhcixjaGFyLGludD46OmlkDQorP2lkQD8kY29kZWN2dEBEREhAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6aWQNCis/aWRAPyRjb2RlY3Z0QEdESEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6OmNvbGxhdGU8Y2hhcj46OmlkDQorP2lkQD8kY29sbGF0ZUBEQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46OmlkDQorP2lkQD8kY29sbGF0ZUBHQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6Y3R5cGU8Y2hhcj46OmlkDQorP2lkQD8kY3R5cGVAREBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6aWQNCis/aWRAPyRjdHlwZUBHQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6bWVzc2FnZXM8Y2hhcj46OmlkDQorP2lkQD8kbWVzc2FnZXNAREBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pjo6aWQNCis/aWRAPyRtZXNzYWdlc0BHQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6bW9uZXlfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjppZA0KKz9pZEA/JG1vbmV5X2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om1vbmV5X2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6aWQNCis/aWRAPyRtb25leV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjptb25leV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmlkDQorP2lkQD8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjppZA0KKz9pZEA/JG1vbmV5X3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwxPjo6aWQNCis/aWRAPyRtb25leXB1bmN0QEQkMDBAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjptb25leXB1bmN0PGNoYXIsMD46OmlkDQorP2lkQD8kbW9uZXlwdW5jdEBEJDBBQEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMT46OmlkDQorP2lkQD8kbW9uZXlwdW5jdEBHJDAwQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwwPjo6aWQNCis/aWRAPyRtb25leXB1bmN0QEckMEFAQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6aWQNCis/aWRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6aWQNCis/aWRAPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6aWQNCis/aWRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6aWQNCis/aWRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46OmlkDQorP2lkQD8kbnVtcHVuY3RAREBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6aWQNCis/aWRAPyRudW1wdW5jdEBHQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmlkDQorP2lkQD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6aWQNCis/aWRAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6OnRpbWVfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjppZA0KKz9pZEA/JHRpbWVfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6dGltZV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmlkDQorP2lkQD8kdGltZV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGNoYXI+OjppZ25hbGluZ19OYU4odm9pZCkNCis/aWduYWxpbmdfTmFOQD8kbnVtZXJpY19saW1pdHNAREBzdGRAQFNBRFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Omlnbm9yZShpbnQsaW50KQ0KKz9pZ25vcmVAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMTJASEhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6aWdub3JlKGludCx1bnNpZ25lZCBzaG9ydCkNCis/aWdub3JlQD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjEyQEhHQFoNCis7IHB1YmxpYzogZmxvYXQgX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+OjppbWFnKGZsb2F0IGNvbnN0ICYpDQorP2ltYWdAPyRfQ29tcGxleF9iYXNlQE1Ac3RkQEBRQUVNQUJNQFoNCis7IHB1YmxpYzogZmxvYXQgX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+OjppbWFnKHZvaWQpY29uc3QgDQorP2ltYWdAPyRfQ29tcGxleF9iYXNlQE1Ac3RkQEBRQkVNWFoNCis7IHB1YmxpYzogZG91YmxlIF9fdGhpc2NhbGwgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT46OmltYWcoZG91YmxlIGNvbnN0ICYpDQorP2ltYWdAPyRfQ29tcGxleF9iYXNlQE5Ac3RkQEBRQUVOQUJOQFoNCis7IHB1YmxpYzogZG91YmxlIF9fdGhpc2NhbGwgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT46OmltYWcodm9pZCljb25zdCANCis/aW1hZ0A/JF9Db21wbGV4X2Jhc2VATkBzdGRAQFFCRU5YWg0KKzsgcHVibGljOiBsb25nIGRvdWJsZSBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT46OmltYWcobG9uZyBkb3VibGUgY29uc3QgJikNCis/aW1hZ0A/JF9Db21wbGV4X2Jhc2VAT0BzdGRAQFFBRU9BQk9AWg0KKzsgcHVibGljOiBsb25nIGRvdWJsZSBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT46OmltYWcodm9pZCljb25zdCANCis/aW1hZ0A/JF9Db21wbGV4X2Jhc2VAT0BzdGRAQFFCRU9YWg0KKzsgZmxvYXQgX19jZGVjbCBzdGQ6OmltYWcoY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz9pbWFnQHN0ZEBAWUFNQUJWPyRjb21wbGV4QE1AMUBAWg0KKzsgZG91YmxlIF9fY2RlY2wgc3RkOjppbWFnKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorP2ltYWdAc3RkQEBZQU5BQlY/JGNvbXBsZXhATkAxQEBaDQorOyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6aW1hZyhjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorP2ltYWdAc3RkQEBZQU9BQlY/JGNvbXBsZXhAT0AxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bG9jYWxlICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6aW1idWUoY2xhc3Mgc3RkOjpsb2NhbGUgY29uc3QgJikNCis/aW1idWVAPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUU/QVZsb2NhbGVAMkBBQlYzMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmxvY2FsZSAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6aW1idWUoY2xhc3Mgc3RkOjpsb2NhbGUgY29uc3QgJikNCis/aW1idWVAPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUU/QVZsb2NhbGVAMkBBQlYzMkBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmltYnVlKGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYpDQorP2ltYnVlQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBATUFFWEFCVmxvY2FsZUAyQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjppbWJ1ZShjbGFzcyBzdGQ6OmxvY2FsZSBjb25zdCAmKQ0KKz9pbWJ1ZUA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1BRVhBQlZsb2NhbGVAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmxvY2FsZSAgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjppbWJ1ZShjbGFzcyBzdGQ6OmxvY2FsZSBjb25zdCAmKQ0KKz9pbWJ1ZUBpb3NfYmFzZUBzdGRAQFFBRT9BVmxvY2FsZUAyQEFCVjMyQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDxjaGFyLGNoYXIsaW50Pjo6aW4oaW50ICYsY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICogJixjaGFyICosY2hhciAqLGNoYXIgKiAmKWNvbnN0IA0KKz9pbkA/JGNvZGVjdnRARERIQHN0ZEBAUUJFSEFBSFBCRDFBQVBCRFBBRDNBQVBBREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD46OmluKGludCAmLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqICYsdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICogJiljb25zdCANCis/aW5APyRjb2RlY3Z0QEdESEBzdGRAQFFCRUhBQUhQQkQxQUFQQkRQQUczQUFQQUdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmluX2F2YWlsKHZvaWQpDQorP2luX2F2YWlsQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojppbl9hdmFpbCh2b2lkKQ0KKz9pbl9hdmFpbEA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUhYWg0KKzsgcHVibGljOiBzdGF0aWMgc2lnbmVkIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpZ25lZCBjaGFyPjo6aW5maW5pdHkodm9pZCkNCis/aW5maW5pdHlAPyRudW1lcmljX2xpbWl0c0BDQHN0ZEBAU0FDWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGNoYXI+OjppbmZpbml0eSh2b2lkKQ0KKz9pbmZpbml0eUA/JG51bWVyaWNfbGltaXRzQERAc3RkQEBTQURYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgY2hhcj46OmluZmluaXR5KHZvaWQpDQorP2luZmluaXR5QD8kbnVtZXJpY19saW1pdHNARUBzdGRAQFNBRVhaDQorOyBwdWJsaWM6IHN0YXRpYyBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2hvcnQ+OjppbmZpbml0eSh2b2lkKQ0KKz9pbmZpbml0eUA/JG51bWVyaWNfbGltaXRzQEZAc3RkQEBTQUZYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIHNob3J0Pjo6aW5maW5pdHkodm9pZCkNCis/aW5maW5pdHlAPyRudW1lcmljX2xpbWl0c0BHQHN0ZEBAU0FHWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6aW5maW5pdHkodm9pZCkNCis/aW5maW5pdHlAPyRudW1lcmljX2xpbWl0c0BIQHN0ZEBAU0FIWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgaW50Pjo6aW5maW5pdHkodm9pZCkNCis/aW5maW5pdHlAPyRudW1lcmljX2xpbWl0c0BJQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmc+OjppbmZpbml0eSh2b2lkKQ0KKz9pbmZpbml0eUA/JG51bWVyaWNfbGltaXRzQEpAc3RkQEBTQUpYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgbG9uZz46OmluZmluaXR5KHZvaWQpDQorP2luZmluaXR5QD8kbnVtZXJpY19saW1pdHNAS0BzdGRAQFNBS1haDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjppbmZpbml0eSh2b2lkKQ0KKz9pbmZpbml0eUA/JG51bWVyaWNfbGltaXRzQE1Ac3RkQEBTQU1YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSh2b2lkKQ0KKz9pbmZpbml0eUA/JG51bWVyaWNfbGltaXRzQE5Ac3RkQEBTQU5YWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgZG91YmxlPjo6aW5maW5pdHkodm9pZCkNCis/aW5maW5pdHlAPyRudW1lcmljX2xpbWl0c0BPQHN0ZEBAU0FPWFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGJvb2w+OjppbmZpbml0eSh2b2lkKQ0KKz9pbmZpbml0eUA/JG51bWVyaWNfbGltaXRzQF9OQHN0ZEBAU0FfTlhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmluaXQoY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICosYm9vbCkNCis/aW5pdEA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElBRVhQQVY/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQF9OQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojppbml0KGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICosYm9vbCkNCis/aW5pdEA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElBRVhQQVY/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQF9OQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Omluc2VydCh1bnNpZ25lZCBpbnQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJASUFCVjEyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjppbnNlcnQodW5zaWduZWQgaW50LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJASUFCVjEyQElJQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Omluc2VydCh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGNoYXIpDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJASUlEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Omluc2VydCh1bnNpZ25lZCBpbnQsY2hhciBjb25zdCAqKQ0KKz9pbnNlcnRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjEyQElQQkRAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6aW5zZXJ0KHVuc2lnbmVkIGludCxjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9pbnNlcnRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjEyQElQQkRJQFoNCis7IHB1YmxpYzogY2hhciAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjppbnNlcnQoY2hhciAqLGNoYXIpDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFUEFEUEFEREBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Omluc2VydChjaGFyICosdW5zaWduZWQgaW50LGNoYXIpDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFWFBBRElEQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6aW5zZXJ0KGNoYXIgKixjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqKQ0KKz9pbnNlcnRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRVhQQURQQkQxQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Omluc2VydCh1bnNpZ25lZCBpbnQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJASUFCVjEyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjppbnNlcnQodW5zaWduZWQgaW50LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJASUFCVjEyQElJQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Omluc2VydCh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0KQ0KKz9pbnNlcnRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQElJR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjppbnNlcnQodW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJASVBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjppbnNlcnQodW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9pbnNlcnRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQElQQkdJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6aW5zZXJ0KHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQpDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFUEFHUEFHR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Omluc2VydCh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCkNCis/aW5zZXJ0QD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVYUEFHSUdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjppbnNlcnQodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFWFBBR1BCRzFAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6aXBmeChib29sKQ0KKz9pcGZ4QD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRV9OX05AWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjppcGZ4KGJvb2wpDQorP2lwZnhAPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFX05fTkBaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8Y2hhcj46OmlzKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosc2hvcnQgKiljb25zdCANCis/aXNAPyRjdHlwZUBEQHN0ZEBAUUJFUEJEUEJEMFBBRkBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6OmN0eXBlPGNoYXI+OjppcyhzaG9ydCxjaGFyKWNvbnN0IA0KKz9pc0A/JGN0eXBlQERAc3RkQEBRQkVfTkZEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+Ojppcyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc2hvcnQgKiljb25zdCANCis/aXNAPyRjdHlwZUBHQHN0ZEBAUUJFUEJHUEJHMFBBRkBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6aXMoc2hvcnQsdW5zaWduZWQgc2hvcnQpY29uc3QgDQorP2lzQD8kY3R5cGVAR0BzdGRAQFFCRV9ORkdAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6aXNfb3Blbih2b2lkKWNvbnN0IA0KKz9pc19vcGVuQD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6aXNfb3Blbih2b2lkKWNvbnN0IA0KKz9pc19vcGVuQD8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmlzX29wZW4odm9pZCljb25zdCANCis/aXNfb3BlbkA/JGJhc2ljX2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmlzX29wZW4odm9pZCljb25zdCANCis/aXNfb3BlbkA/JGJhc2ljX2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6aXNfb3Blbih2b2lkKWNvbnN0IA0KKz9pc19vcGVuQD8kYmFzaWNfaWZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojppc19vcGVuKHZvaWQpY29uc3QgDQorP2lzX29wZW5APyRiYXNpY19pZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojppc19vcGVuKHZvaWQpY29uc3QgDQorP2lzX29wZW5APyRiYXNpY19vZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmlzX29wZW4odm9pZCljb25zdCANCis/aXNfb3BlbkA/JGJhc2ljX29mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUJFX05YWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6aXNmeCh2b2lkKQ0KKz9pc2Z4QD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojppc2Z4KHZvaWQpDQorP2lzZnhAPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IGxvbmcgJiBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6Oml3b3JkKGludCkNCis/aXdvcmRAaW9zX2Jhc2VAc3RkQEBRQUVBQUpIQFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgc3RkOjpfQ3RyPGZsb2F0Pjo6bGRleHAoZmxvYXQsaW50KQ0KKz9sZGV4cEA/JF9DdHJATUBzdGRAQFNBTU1IQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+OjpsZGV4cChkb3VibGUsaW50KQ0KKz9sZGV4cEA/JF9DdHJATkBzdGRAQFNBTk5IQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGxvbmcgZG91YmxlPjo6bGRleHAobG9uZyBkb3VibGUsaW50KQ0KKz9sZGV4cEA/JF9DdHJAT0BzdGRAQFNBT09IQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpsZW5ndGgodm9pZCljb25zdCANCis/bGVuZ3RoQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpsZW5ndGgodm9pZCljb25zdCANCis/bGVuZ3RoQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj46Omxlbmd0aChjaGFyIGNvbnN0ICopDQorP2xlbmd0aEA/JGNoYXJfdHJhaXRzQERAc3RkQEBTQUlQQkRAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD46Omxlbmd0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9sZW5ndGhAPyRjaGFyX3RyYWl0c0BHQHN0ZEBAU0FJUEJHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0PGNoYXIsY2hhcixpbnQ+OjpsZW5ndGgoaW50ICYsY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2xlbmd0aEA/JGNvZGVjdnRARERIQHN0ZEBAUUJFSEFBSFBCRDFJQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6bGVuZ3RoKGludCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2xlbmd0aEA/JGNvZGVjdnRAR0RIQHN0ZEBAUUJFSEFBSFBCRzFJQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpsb2cxMChjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorP2xvZzEwQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAxQEFCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OmxvZzEwKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorP2xvZzEwQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6bG9nMTAoY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz9sb2cxMEBzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBQlYyMUBAWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Ol9DdHI8ZmxvYXQ+Ojpsb2coZmxvYXQpDQorP2xvZ0A/JF9DdHJATUBzdGRAQFNBTU1AWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGRvdWJsZT46OmxvZyhkb3VibGUpDQorP2xvZ0A/JF9DdHJATkBzdGRAQFNBTk5AWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+Ojpsb2cobG9uZyBkb3VibGUpDQorP2xvZ0A/JF9DdHJAT0BzdGRAQFNBT09AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6OmxvZyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorP2xvZ0BzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpsb2coY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/bG9nQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6bG9nKGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/bG9nQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFCVjIxQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czxjaGFyPjo6bHQoY2hhciBjb25zdCAmLGNoYXIgY29uc3QgJikNCis/bHRAPyRjaGFyX3RyYWl0c0BEQHN0ZEBAU0FfTkFCRDBAWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+OjpsdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICYpDQorP2x0QD8kY2hhcl90cmFpdHNAR0BzdGRAQFNBX05BQkcwQFoNCis7IHB1YmxpYzogc3RhdGljIHNpZ25lZCBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxzaWduZWQgY2hhcj46Om1heCh2b2lkKQ0KKz9tYXhAPyRudW1lcmljX2xpbWl0c0BDQHN0ZEBAU0FDWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGNoYXI+OjptYXgodm9pZCkNCis/bWF4QD8kbnVtZXJpY19saW1pdHNAREBzdGRAQFNBRFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBjaGFyPjo6bWF4KHZvaWQpDQorP21heEA/JG51bWVyaWNfbGltaXRzQEVAc3RkQEBTQUVYWg0KKzsgcHVibGljOiBzdGF0aWMgc2hvcnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNob3J0Pjo6bWF4KHZvaWQpDQorP21heEA/JG51bWVyaWNfbGltaXRzQEZAc3RkQEBTQUZYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIHNob3J0Pjo6bWF4KHZvaWQpDQorP21heEA/JG51bWVyaWNfbGltaXRzQEdAc3RkQEBTQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptYXgodm9pZCkNCis/bWF4QD8kbnVtZXJpY19saW1pdHNASEBzdGRAQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGludD46Om1heCh2b2lkKQ0KKz9tYXhAPyRudW1lcmljX2xpbWl0c0BJQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmc+OjptYXgodm9pZCkNCis/bWF4QD8kbnVtZXJpY19saW1pdHNASkBzdGRAQFNBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBsb25nPjo6bWF4KHZvaWQpDQorP21heEA/JG51bWVyaWNfbGltaXRzQEtAc3RkQEBTQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KHZvaWQpDQorP21heEA/JG51bWVyaWNfbGltaXRzQE1Ac3RkQEBTQU1YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjptYXgodm9pZCkNCis/bWF4QD8kbnVtZXJpY19saW1pdHNATkBzdGRAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBkb3VibGU+OjptYXgodm9pZCkNCis/bWF4QD8kbnVtZXJpY19saW1pdHNAT0BzdGRAQFNBT1haDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxib29sPjo6bWF4KHZvaWQpDQorP21heEA/JG51bWVyaWNfbGltaXRzQF9OQHN0ZEBAU0FfTlhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dF9iYXNlOjptYXhfbGVuZ3RoKHZvaWQpY29uc3QgDQorP21heF9sZW5ndGhAY29kZWN2dF9iYXNlQHN0ZEBAUUJFSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6bWF4X3NpemUodm9pZCljb25zdCANCis/bWF4X3NpemVAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Om1heF9zaXplKHZvaWQpY29uc3QgDQorP21heF9zaXplQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJWFoNCis7IHB1YmxpYzogc3RhdGljIHNpZ25lZCBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxzaWduZWQgY2hhcj46Om1pbih2b2lkKQ0KKz9taW5APyRudW1lcmljX2xpbWl0c0BDQHN0ZEBAU0FDWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGNoYXI+OjptaW4odm9pZCkNCis/bWluQD8kbnVtZXJpY19saW1pdHNAREBzdGRAQFNBRFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBjaGFyPjo6bWluKHZvaWQpDQorP21pbkA/JG51bWVyaWNfbGltaXRzQEVAc3RkQEBTQUVYWg0KKzsgcHVibGljOiBzdGF0aWMgc2hvcnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNob3J0Pjo6bWluKHZvaWQpDQorP21pbkA/JG51bWVyaWNfbGltaXRzQEZAc3RkQEBTQUZYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIHNob3J0Pjo6bWluKHZvaWQpDQorP21pbkA/JG51bWVyaWNfbGltaXRzQEdAc3RkQEBTQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptaW4odm9pZCkNCis/bWluQD8kbnVtZXJpY19saW1pdHNASEBzdGRAQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGludD46Om1pbih2b2lkKQ0KKz9taW5APyRudW1lcmljX2xpbWl0c0BJQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmc+OjptaW4odm9pZCkNCis/bWluQD8kbnVtZXJpY19saW1pdHNASkBzdGRAQFNBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBsb25nPjo6bWluKHZvaWQpDQorP21pbkA/JG51bWVyaWNfbGltaXRzQEtAc3RkQEBTQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWluKHZvaWQpDQorP21pbkA/JG51bWVyaWNfbGltaXRzQE1Ac3RkQEBTQU1YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjptaW4odm9pZCkNCis/bWluQD8kbnVtZXJpY19saW1pdHNATkBzdGRAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBkb3VibGU+OjptaW4odm9pZCkNCis/bWluQD8kbnVtZXJpY19saW1pdHNAT0BzdGRAQFNBT1haDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxib29sPjo6bWluKHZvaWQpDQorP21pbkA/JG51bWVyaWNfbGltaXRzQF9OQHN0ZEBAU0FfTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyICogX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+Ojptb3ZlKGNoYXIgKixjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9tb3ZlQD8kY2hhcl90cmFpdHNAREBzdGRAQFNBUEFEUEFEUEJESUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAqIF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD46Om1vdmUodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/bW92ZUA/JGNoYXJfdHJhaXRzQEdAc3RkQEBTQVBBR1BBR1BCR0lAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpsb2NhbGU6Om5hbWUodm9pZCljb25zdCANCis/bmFtZUBsb2NhbGVAc3RkQEBRQkU/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHB1YmxpYzogY2hhciBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6bmFycm93KGNoYXIsY2hhciljb25zdCANCis/bmFycm93QD8kYmFzaWNfaW9zQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUJFREREQFoNCis7IHB1YmxpYzogY2hhciBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpuYXJyb3codW5zaWduZWQgc2hvcnQsY2hhciljb25zdCANCis/bmFycm93QD8kYmFzaWNfaW9zQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUJFREdEQFoNCis7IHB1YmxpYzogY2hhciBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8Y2hhcj46Om5hcnJvdyhjaGFyLGNoYXIpY29uc3QgDQorP25hcnJvd0A/JGN0eXBlQERAc3RkQEBRQkVERERAWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmN0eXBlPGNoYXI+OjpuYXJyb3coY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixjaGFyLGNoYXIgKiljb25zdCANCis/bmFycm93QD8kY3R5cGVAREBzdGRAQFFCRVBCRFBCRDBEUEFEQFoNCis7IHB1YmxpYzogY2hhciBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+OjpuYXJyb3codW5zaWduZWQgc2hvcnQsY2hhciljb25zdCANCis/bmFycm93QD8kY3R5cGVAR0BzdGRAQFFCRURHREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6bmFycm93KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixjaGFyLGNoYXIgKiljb25zdCANCis/bmFycm93QD8kY3R5cGVAR0BzdGRAQFFCRVBCR1BCRzBEUEFEQFoNCis7IHB1YmxpYzogc3RydWN0IHN0ZDo6bW9uZXlfYmFzZTo6cGF0dGVybiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46Om5lZ19mb3JtYXQodm9pZCljb25zdCANCis/bmVnX2Zvcm1hdEA/JF9NcHVuY3RAREBzdGRAQFFCRT9BVXBhdHRlcm5AbW9uZXlfYmFzZUAyQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBzdGQ6Om1vbmV5X2Jhc2U6OnBhdHRlcm4gIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6bmVnX2Zvcm1hdCh2b2lkKWNvbnN0IA0KKz9uZWdfZm9ybWF0QD8kX01wdW5jdEBHQHN0ZEBAUUJFP0FVcGF0dGVybkBtb25leV9iYXNlQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDxjaGFyPjo6bmVnYXRpdmVfc2lnbih2b2lkKWNvbnN0IA0KKz9uZWdhdGl2ZV9zaWduQD8kX01wdW5jdEBEQHN0ZEBAUUJFP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpuZWdhdGl2ZV9zaWduKHZvaWQpY29uc3QgDQorP25lZ2F0aXZlX3NpZ25APyRfTXB1bmN0QEdAc3RkQEBRQkU/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAWFoNCis7IGZsb2F0IF9fY2RlY2wgc3RkOjpub3JtKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/bm9ybUBzdGRAQFlBTUFCVj8kY29tcGxleEBNQDFAQFoNCis7IGRvdWJsZSBfX2NkZWNsIHN0ZDo6bm9ybShjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz9ub3JtQHN0ZEBAWUFOQUJWPyRjb21wbGV4QE5AMUBAWg0KKzsgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Om5vcm0oY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz9ub3JtQHN0ZEBAWUFPQUJWPyRjb21wbGV4QE9AMUBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czxjaGFyPjo6bm90X2VvZihpbnQgY29uc3QgJikNCis/bm90X2VvZkA/JGNoYXJfdHJhaXRzQERAc3RkQEBTQUhBQkhAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6bm90X2VvZih1bnNpZ25lZCBzaG9ydCBjb25zdCAmKQ0KKz9ub3RfZW9mQD8kY2hhcl90cmFpdHNAR0BzdGRAQFNBR0FCR0BaDQorOyBzdHJ1Y3Qgc3RkOjpub3Rocm93X3QgY29uc3QgIHN0ZDo6bm90aHJvdw0KKz9ub3Rocm93QHN0ZEBAM1Vub3Rocm93X3RAMUBCIERBVEENCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBjb25zdCAgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpucG9zDQorP25wb3NAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQDJJQiBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgY29uc3QgIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6bnBvcw0KKz9ucG9zQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEAySUIgREFUQQ0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVuKGNoYXIgY29uc3QgKixzaG9ydCkNCis/b3BlbkA/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVQQVYxMkBQQkRGQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlbihjaGFyIGNvbnN0ICosaW50KQ0KKz9vcGVuQD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVBBVjEyQFBCREhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlbihjaGFyIGNvbnN0ICosc2hvcnQpDQorP29wZW5APyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFUEFWMTJAUEJERkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVuKGNoYXIgY29uc3QgKixpbnQpDQorP29wZW5APyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFUEFWMTJAUEJESEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVuKGNoYXIgY29uc3QgKixzaG9ydCkNCis/b3BlbkA/JGJhc2ljX2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVYUEJERkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVuKGNoYXIgY29uc3QgKixpbnQpDQorP29wZW5APyRiYXNpY19mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFWFBCREhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVuKGNoYXIgY29uc3QgKixzaG9ydCkNCis/b3BlbkA/JGJhc2ljX2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVYUEJERkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZW4oY2hhciBjb25zdCAqLGludCkNCis/b3BlbkA/JGJhc2ljX2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVYUEJESEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlbihjaGFyIGNvbnN0ICosc2hvcnQpDQorP29wZW5APyRiYXNpY19pZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVhQQkRGQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVuKGNoYXIgY29uc3QgKixpbnQpDQorP29wZW5APyRiYXNpY19pZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVhQQkRIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZW4oY2hhciBjb25zdCAqLHNob3J0KQ0KKz9vcGVuQD8kYmFzaWNfaWZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVYUEJERkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVuKGNoYXIgY29uc3QgKixpbnQpDQorP29wZW5APyRiYXNpY19pZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhQQkRIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVuKGNoYXIgY29uc3QgKixzaG9ydCkNCis/b3BlbkA/JGJhc2ljX29mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFWFBCREZAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZW4oY2hhciBjb25zdCAqLGludCkNCis/b3BlbkA/JGJhc2ljX29mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFWFBCREhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlbihjaGFyIGNvbnN0ICosc2hvcnQpDQorP29wZW5APyRiYXNpY19vZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhQQkRGQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZW4oY2hhciBjb25zdCAqLGludCkNCis/b3BlbkA/JGJhc2ljX29mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFWFBCREhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzPGNoYXI+OjpvcGVuKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYpY29uc3QgDQorP29wZW5APyRtZXNzYWdlc0BEQHN0ZEBAUUJFSEFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBBQlZsb2NhbGVAMkBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pjo6b3BlbihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJixjbGFzcyBzdGQ6OmxvY2FsZSBjb25zdCAmKWNvbnN0IA0KKz9vcGVuQD8kbWVzc2FnZXNAR0BzdGRAQFFCRUhBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAQUJWbG9jYWxlQDJAQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZngodm9pZCkNCis/b3BmeEA/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZngodm9pZCkNCis/b3BmeEA/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVfTlhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojpvc2Z4KHZvaWQpDQorP29zZnhAPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9zZngodm9pZCkNCis/b3NmeEA/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0PGNoYXIsY2hhcixpbnQ+OjpvdXQoaW50ICYsY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICogJixjaGFyICosY2hhciAqLGNoYXIgKiAmKWNvbnN0IA0KKz9vdXRAPyRjb2RlY3Z0QERESEBzdGRAQFFCRUhBQUhQQkQxQUFQQkRQQUQzQUFQQURAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+OjpvdXQoaW50ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogJixjaGFyICosY2hhciAqLGNoYXIgKiAmKWNvbnN0IA0KKz9vdXRAPyRjb2RlY3Z0QEdESEBzdGRAQFFCRUhBQUhQQkcxQUFQQkdQQUQzQUFQQURAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om92ZXJmbG93KGludCkNCis/b3ZlcmZsb3dAPyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBATUFFSEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvdmVyZmxvdyh1bnNpZ25lZCBzaG9ydCkNCis/b3ZlcmZsb3dAPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUFFR0dAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3ZlcmZsb3coaW50KQ0KKz9vdmVyZmxvd0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQE1BRUhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvdmVyZmxvdyh1bnNpZ25lZCBzaG9ydCkNCis/b3ZlcmZsb3dAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBNQUVHR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpvdmVyZmxvdyhpbnQpDQorP292ZXJmbG93QD8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBNQUVISEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Om92ZXJmbG93KHVuc2lnbmVkIHNob3J0KQ0KKz9vdmVyZmxvd0A/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBATUFFR0dAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6c3Ryc3RyZWFtYnVmOjpvdmVyZmxvdyhpbnQpDQorP292ZXJmbG93QHN0cnN0cmVhbWJ1ZkBzdGRAQE1BRUhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpwYmFja2ZhaWwoaW50KQ0KKz9wYmFja2ZhaWxAPyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBATUFFSEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpwYmFja2ZhaWwodW5zaWduZWQgc2hvcnQpDQorP3BiYWNrZmFpbEA/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBNQUVHR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpwYmFja2ZhaWwoaW50KQ0KKz9wYmFja2ZhaWxAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNQUVISEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cGJhY2tmYWlsKHVuc2lnbmVkIHNob3J0KQ0KKz9wYmFja2ZhaWxAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBNQUVHR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpwYmFja2ZhaWwoaW50KQ0KKz9wYmFja2ZhaWxAPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQE1BRUhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cGJhY2tmYWlsKHVuc2lnbmVkIHNob3J0KQ0KKz9wYmFja2ZhaWxAPyRiYXNpY19zdHJpbmdidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQE1BRUdHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OnN0cnN0cmVhbWJ1Zjo6cGJhY2tmYWlsKGludCkNCis/cGJhY2tmYWlsQHN0cnN0cmVhbWJ1ZkBzdGRAQE1BRUhIQFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpwYmFzZSh2b2lkKWNvbnN0IA0KKz9wYmFzZUA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElCRVBBRFhaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cGJhc2Uodm9pZCljb25zdCANCis/cGJhc2VAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJQkVQQUdYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpwYnVtcChpbnQpDQorP3BidW1wQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUFFWEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnBidW1wKGludCkNCis/cGJ1bXBAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJQUVYSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnBlZWsodm9pZCkNCis/cGVla0A/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnBlZWsodm9pZCkNCis/cGVla0A/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVHWFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpwb2xhcihmbG9hdCBjb25zdCAmLGZsb2F0IGNvbnN0ICYpDQorP3BvbGFyQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAxQEFCTTBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6OnBvbGFyKGZsb2F0IGNvbnN0ICYpDQorP3BvbGFyQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAxQEFCTUBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OnBvbGFyKGRvdWJsZSBjb25zdCAmLGRvdWJsZSBjb25zdCAmKQ0KKz9wb2xhckBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBQk4wQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6cG9sYXIoZG91YmxlIGNvbnN0ICYpDQorP3BvbGFyQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFCTkBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6cG9sYXIobG9uZyBkb3VibGUgY29uc3QgJixsb25nIGRvdWJsZSBjb25zdCAmKQ0KKz9wb2xhckBzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBQk8wQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpwb2xhcihsb25nIGRvdWJsZSBjb25zdCAmKQ0KKz9wb2xhckBzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBQk9AWg0KKzsgcHVibGljOiBzdHJ1Y3Qgc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuICBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDxjaGFyPjo6cG9zX2Zvcm1hdCh2b2lkKWNvbnN0IA0KKz9wb3NfZm9ybWF0QD8kX01wdW5jdEBEQHN0ZEBAUUJFP0FVcGF0dGVybkBtb25leV9iYXNlQDJAWFoNCis7IHB1YmxpYzogc3RydWN0IHN0ZDo6bW9uZXlfYmFzZTo6cGF0dGVybiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojpwb3NfZm9ybWF0KHZvaWQpY29uc3QgDQorP3Bvc19mb3JtYXRAPyRfTXB1bmN0QEdAc3RkQEBRQkU/QVVwYXR0ZXJuQG1vbmV5X2Jhc2VAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PGNoYXI+Ojpwb3NpdGl2ZV9zaWduKHZvaWQpY29uc3QgDQorP3Bvc2l0aXZlX3NpZ25APyRfTXB1bmN0QERAc3RkQEBRQkU/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46OnBvc2l0aXZlX3NpZ24odm9pZCljb25zdCANCis/cG9zaXRpdmVfc2lnbkA/JF9NcHVuY3RAR0BzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBYWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Ol9DdHI8ZmxvYXQ+Ojpwb3coZmxvYXQsZmxvYXQpDQorP3Bvd0A/JF9DdHJATUBzdGRAQFNBTU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+Ojpwb3coZG91YmxlLGRvdWJsZSkNCis/cG93QD8kX0N0ckBOQHN0ZEBAU0FOTk5AWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+Ojpwb3cobG9uZyBkb3VibGUsbG9uZyBkb3VibGUpDQorP3Bvd0A/JF9DdHJAT0BzdGRAQFNBT09PQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpwb3coZmxvYXQgY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorP3Bvd0BzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBQk1BQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6OnBvdyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz9wb3dAc3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUJWMjFAMEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6cG93KGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJixmbG9hdCBjb25zdCAmKQ0KKz9wb3dAc3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUJWMjFAQUJNQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpwb3coY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmLGludCkNCis/cG93QHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAxQEFCVjIxQEhAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpwb3coZG91YmxlIGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/cG93QHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFCTkFCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OnBvdyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorP3Bvd0BzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBQlYyMUAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6cG93KGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYsZG91YmxlIGNvbnN0ICYpDQorP3Bvd0BzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBQlYyMUBBQk5AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpwb3coY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJixpbnQpDQorP3Bvd0BzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBQlYyMUBIQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpwb3cobG9uZyBkb3VibGUgY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorP3Bvd0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBQk9BQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6OnBvdyhjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz9wb3dAc3RkQEBZQT9BVj8kY29tcGxleEBPQDFAQUJWMjFAMEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6cG93KGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJixsb25nIGRvdWJsZSBjb25zdCAmKQ0KKz9wb3dAc3RkQEBZQT9BVj8kY29tcGxleEBPQDFAQUJWMjFAQUJPQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpwb3coY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmLGludCkNCis/cG93QHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFCVjIxQEhAWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnBwdHIodm9pZCljb25zdCANCis/cHB0ckA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElCRVBBRFhaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cHB0cih2b2lkKWNvbnN0IA0KKz9wcHRyQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUJFUEFHWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6cHJlY2lzaW9uKGludCkNCis/cHJlY2lzaW9uQGlvc19iYXNlQHN0ZEBAUUFFSEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpwcmVjaXNpb24odm9pZCljb25zdCANCis/cHJlY2lzaW9uQGlvc19iYXNlQHN0ZEBAUUJFSFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bG9jYWxlICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6cHViaW1idWUoY2xhc3Mgc3RkOjpsb2NhbGUgY29uc3QgJikNCis/cHViaW1idWVAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUU/QVZsb2NhbGVAMkBBQlYzMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmxvY2FsZSAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cHViaW1idWUoY2xhc3Mgc3RkOjpsb2NhbGUgY29uc3QgJikNCis/cHViaW1idWVAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUU/QVZsb2NhbGVAMkBBQlYzMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnB1YnNlZWtvZmYobG9uZyxzaG9ydCxzaG9ydCkNCis/cHVic2Vla29mZkA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRT9BVj8kZnBvc0BIQDJASkZGQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpmcG9zPGludD4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpwdWJzZWVrb2ZmKGxvbmcsZW51bSBzdGQ6Omlvc19iYXNlOjpzZWVrZGlyLGludCkNCis/cHVic2Vla29mZkA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRT9BVj8kZnBvc0BIQDJASlc0c2Vla2RpckBpb3NfYmFzZUAyQEhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cHVic2Vla29mZihsb25nLHNob3J0LHNob3J0KQ0KKz9wdWJzZWVrb2ZmQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFP0FWPyRmcG9zQEhAMkBKRkZAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cHVic2Vla29mZihsb25nLGVudW0gc3RkOjppb3NfYmFzZTo6c2Vla2RpcixpbnQpDQorP3B1YnNlZWtvZmZAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUU/QVY/JGZwb3NASEAyQEpXNHNlZWtkaXJAaW9zX2Jhc2VAMkBIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpmcG9zPGludD4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpwdWJzZWVrcG9zKGNsYXNzIHN0ZDo6ZnBvczxpbnQ+LHNob3J0KQ0KKz9wdWJzZWVrcG9zQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFP0FWPyRmcG9zQEhAMkBWMzJARkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6cHVic2Vla3BvcyhjbGFzcyBzdGQ6OmZwb3M8aW50PixpbnQpDQorP3B1YnNlZWtwb3NAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUU/QVY/JGZwb3NASEAyQFYzMkBIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpmcG9zPGludD4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnB1YnNlZWtwb3MoY2xhc3Mgc3RkOjpmcG9zPGludD4sc2hvcnQpDQorP3B1YnNlZWtwb3NAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUU/QVY/JGZwb3NASEAyQFYzMkBGQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpmcG9zPGludD4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnB1YnNlZWtwb3MoY2xhc3Mgc3RkOjpmcG9zPGludD4saW50KQ0KKz9wdWJzZWVrcG9zQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFP0FWPyRmcG9zQEhAMkBWMzJASEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpwdWJzZXRidWYoY2hhciAqLGludCkNCis/cHVic2V0YnVmQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFUEFWMTJAUEFESEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cHVic2V0YnVmKHVuc2lnbmVkIHNob3J0ICosaW50KQ0KKz9wdWJzZXRidWZAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVQQVYxMkBQQUdIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpwdWJzeW5jKHZvaWQpDQorP3B1YnN5bmNAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnB1YnN5bmModm9pZCkNCis/cHVic3luY0A/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUhYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpwdXQoY2hhcikNCis/cHV0QD8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjEyQERAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cHV0KHVuc2lnbmVkIHNob3J0KQ0KKz9wdXRAPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjptb25leV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGNoYXIsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpY29uc3QgDQorP3B1dEA/JG1vbmV5X3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBfTkFBVmlvc19iYXNlQDJAREFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixib29sLGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixjaGFyLGxvbmcgZG91YmxlKWNvbnN0IA0KKz9wdXRAPyRtb25leV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAX05BQVZpb3NfYmFzZUAyQERPQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmLHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKWNvbnN0IA0KKz9wdXRAPyRtb25leV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAX05BQVZpb3NfYmFzZUAyQEdBQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmLHVuc2lnbmVkIHNob3J0LGxvbmcgZG91YmxlKWNvbnN0IA0KKz9wdXRAPyRtb25leV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAX05BQVZpb3NfYmFzZUAyQEdPQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixjaGFyLGxvbmcpY29uc3QgDQorP3B1dEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBESkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsY2hhcix1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9wdXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJAREtAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGNoYXIsZG91YmxlKWNvbnN0IA0KKz9wdXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJARE5AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGNoYXIsbG9uZyBkb3VibGUpY29uc3QgDQorP3B1dEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBET0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsY2hhcix2b2lkIGNvbnN0ICopY29uc3QgDQorP3B1dEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBEUEJYQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixjaGFyLGJvb2wpY29uc3QgDQorP3B1dEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBEX05AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJix1bnNpZ25lZCBzaG9ydCxsb25nKWNvbnN0IA0KKz9wdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJAR0pAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJix1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9wdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJAR0tAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJix1bnNpZ25lZCBzaG9ydCxkb3VibGUpY29uc3QgDQorP3B1dEA/JG51bV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBHTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLHVuc2lnbmVkIHNob3J0LGxvbmcgZG91YmxlKWNvbnN0IA0KKz9wdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJAR09AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJix1bnNpZ25lZCBzaG9ydCx2b2lkIGNvbnN0ICopY29uc3QgDQorP3B1dEA/JG51bV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBHUEJYQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsdW5zaWduZWQgc2hvcnQsYm9vbCljb25zdCANCis/cHV0QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQEdfTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjp0aW1lX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLHN0cnVjdCB0bSBjb25zdCAqLGNoYXIsY2hhciljb25zdCANCis/cHV0QD8kdGltZV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBQQlV0bUBARERAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6dGltZV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixzdHJ1Y3QgdG0gY29uc3QgKixjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqKWNvbnN0IA0KKz9wdXRAPyR0aW1lX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQFBCVXRtQEBQQkQzQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6dGltZV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLHN0cnVjdCB0bSBjb25zdCAqLGNoYXIsY2hhciljb25zdCANCis/cHV0QD8kdGltZV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBQQlV0bUBARERAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjp0aW1lX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsc3RydWN0IHRtIGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9wdXRAPyR0aW1lX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQFBCVXRtQEBQQkczQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6cHV0YmFjayhjaGFyKQ0KKz9wdXRiYWNrQD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjEyQERAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cHV0YmFjayh1bnNpZ25lZCBzaG9ydCkNCis/cHV0YmFja0A/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYxMkBHQFoNCis7IHB1YmxpYzogdm9pZCAqICYgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpwd29yZChpbnQpDQorP3B3b3JkQGlvc19iYXNlQHN0ZEBAUUFFQUFQQVhIQFoNCis7IHB1YmxpYzogc3RhdGljIHNpZ25lZCBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxzaWduZWQgY2hhcj46OnF1aWV0X05hTih2b2lkKQ0KKz9xdWlldF9OYU5APyRudW1lcmljX2xpbWl0c0BDQHN0ZEBAU0FDWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGNoYXI+OjpxdWlldF9OYU4odm9pZCkNCis/cXVpZXRfTmFOQD8kbnVtZXJpY19saW1pdHNAREBzdGRAQFNBRFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBjaGFyPjo6cXVpZXRfTmFOKHZvaWQpDQorP3F1aWV0X05hTkA/JG51bWVyaWNfbGltaXRzQEVAc3RkQEBTQUVYWg0KKzsgcHVibGljOiBzdGF0aWMgc2hvcnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNob3J0Pjo6cXVpZXRfTmFOKHZvaWQpDQorP3F1aWV0X05hTkA/JG51bWVyaWNfbGltaXRzQEZAc3RkQEBTQUZYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIHNob3J0Pjo6cXVpZXRfTmFOKHZvaWQpDQorP3F1aWV0X05hTkA/JG51bWVyaWNfbGltaXRzQEdAc3RkQEBTQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjpxdWlldF9OYU4odm9pZCkNCis/cXVpZXRfTmFOQD8kbnVtZXJpY19saW1pdHNASEBzdGRAQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGludD46OnF1aWV0X05hTih2b2lkKQ0KKz9xdWlldF9OYU5APyRudW1lcmljX2xpbWl0c0BJQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmc+OjpxdWlldF9OYU4odm9pZCkNCis/cXVpZXRfTmFOQD8kbnVtZXJpY19saW1pdHNASkBzdGRAQFNBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBsb25nPjo6cXVpZXRfTmFOKHZvaWQpDQorP3F1aWV0X05hTkA/JG51bWVyaWNfbGltaXRzQEtAc3RkQEBTQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cXVpZXRfTmFOKHZvaWQpDQorP3F1aWV0X05hTkA/JG51bWVyaWNfbGltaXRzQE1Ac3RkQEBTQU1YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4odm9pZCkNCis/cXVpZXRfTmFOQD8kbnVtZXJpY19saW1pdHNATkBzdGRAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBkb3VibGU+OjpxdWlldF9OYU4odm9pZCkNCis/cXVpZXRfTmFOQD8kbnVtZXJpY19saW1pdHNAT0BzdGRAQFNBT1haDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxib29sPjo6cXVpZXRfTmFOKHZvaWQpDQorP3F1aWV0X05hTkA/JG51bWVyaWNfbGltaXRzQF9OQHN0ZEBAU0FfTlhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6cmV2ZXJzZV9pdGVyYXRvcjxjaGFyICosY2hhcixjaGFyICYsY2hhciAqLGludD4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyYmVnaW4odm9pZCkNCis/cmJlZ2luQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUU/QVY/JHJldmVyc2VfaXRlcmF0b3JAUEFEREFBRFBBREhAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfaXRlcmF0b3I8Y2hhciBjb25zdCAqLGNoYXIsY2hhciBjb25zdCAmLGNoYXIgY29uc3QgKixpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmJlZ2luKHZvaWQpY29uc3QgDQorP3JiZWdpbkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFP0FWPyRyZXZlcnNlX2l0ZXJhdG9yQFBCRERBQkRQQkRIQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpyZXZlcnNlX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQgJix1bnNpZ25lZCBzaG9ydCAqLGludD4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyYmVnaW4odm9pZCkNCis/cmJlZ2luQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUU/QVY/JHJldmVyc2VfaXRlcmF0b3JAUEFHR0FBR1BBR0hAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJiZWdpbih2b2lkKWNvbnN0IA0KKz9yYmVnaW5APyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRT9BVj8kcmV2ZXJzZV9pdGVyYXRvckBQQkdHQUJHUEJHSEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnJkYnVmKHZvaWQpY29uc3QgDQorP3JkYnVmQD8kYmFzaWNfZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFCRVBBVj8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkA/JGJhc2ljX2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQkVQQVY/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6cmRidWYodm9pZCljb25zdCANCis/cmRidWZAPyRiYXNpY19pZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFCRVBBVj8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cmRidWYodm9pZCljb25zdCANCis/cmRidWZAPyRiYXNpY19pZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFCRVBBVj8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpyZGJ1ZihjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gKikNCis/cmRidWZAPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVQQVY/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFBBVjMyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFCRVBBVj8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpyZGJ1ZihjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqKQ0KKz9yZGJ1ZkA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVBBVj8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAUEFWMzJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFCRVBBVj8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkA/JGJhc2ljX2lzdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRVBBVj8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJkYnVmKHZvaWQpY29uc3QgDQorP3JkYnVmQD8kYmFzaWNfaXN0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFUEFWPyRiYXNpY19zdHJpbmdidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkA/JGJhc2ljX29mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUJFUEFWPyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX29mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkA/JGJhc2ljX29mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUJFUEFWPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkA/JGJhc2ljX29zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRVBBVj8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJkYnVmKHZvaWQpY29uc3QgDQorP3JkYnVmQD8kYmFzaWNfb3N0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFUEFWPyRiYXNpY19zdHJpbmdidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkA/JGJhc2ljX3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFUEFWPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkA/JGJhc2ljX3N0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFUEFWPyRiYXNpY19zdHJpbmdidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6OnJkc3RhdGUodm9pZCljb25zdCANCis/cmRzdGF0ZUBpb3NfYmFzZUBzdGRAQFFCRUhYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpyZWFkKGNoYXIgKixpbnQpDQorP3JlYWRAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAUEFESEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpyZWFkKHVuc2lnbmVkIHNob3J0ICosaW50KQ0KKz9yZWFkQD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjEyQFBBR0hAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpyZWFkc29tZShjaGFyICosaW50KQ0KKz9yZWFkc29tZUA/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVIUEFESEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cmVhZHNvbWUodW5zaWduZWQgc2hvcnQgKixpbnQpDQorP3JlYWRzb21lQD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUhQQUdIQFoNCis7IHB1YmxpYzogZmxvYXQgX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+OjpyZWFsKGZsb2F0IGNvbnN0ICYpDQorP3JlYWxAPyRfQ29tcGxleF9iYXNlQE1Ac3RkQEBRQUVNQUJNQFoNCis7IHB1YmxpYzogZmxvYXQgX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+OjpyZWFsKHZvaWQpY29uc3QgDQorP3JlYWxAPyRfQ29tcGxleF9iYXNlQE1Ac3RkQEBRQkVNWFoNCis7IHB1YmxpYzogZG91YmxlIF9fdGhpc2NhbGwgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT46OnJlYWwoZG91YmxlIGNvbnN0ICYpDQorP3JlYWxAPyRfQ29tcGxleF9iYXNlQE5Ac3RkQEBRQUVOQUJOQFoNCis7IHB1YmxpYzogZG91YmxlIF9fdGhpc2NhbGwgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT46OnJlYWwodm9pZCljb25zdCANCis/cmVhbEA/JF9Db21wbGV4X2Jhc2VATkBzdGRAQFFCRU5YWg0KKzsgcHVibGljOiBsb25nIGRvdWJsZSBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT46OnJlYWwobG9uZyBkb3VibGUgY29uc3QgJikNCis/cmVhbEA/JF9Db21wbGV4X2Jhc2VAT0BzdGRAQFFBRU9BQk9AWg0KKzsgcHVibGljOiBsb25nIGRvdWJsZSBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT46OnJlYWwodm9pZCljb25zdCANCis/cmVhbEA/JF9Db21wbGV4X2Jhc2VAT0BzdGRAQFFCRU9YWg0KKzsgZmxvYXQgX19jZGVjbCBzdGQ6OnJlYWwoY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz9yZWFsQHN0ZEBAWUFNQUJWPyRjb21wbGV4QE1AMUBAWg0KKzsgZG91YmxlIF9fY2RlY2wgc3RkOjpyZWFsKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorP3JlYWxAc3RkQEBZQU5BQlY/JGNvbXBsZXhATkAxQEBaDQorOyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6cmVhbChjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorP3JlYWxAc3RkQEBZQU9BQlY/JGNvbXBsZXhAT0AxQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpyZWdpc3Rlcl9jYWxsYmFjayh2b2lkIChfX2NkZWNsKikoZW51bSBzdGQ6Omlvc19iYXNlOjpldmVudCxjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50KSxpbnQpDQorP3JlZ2lzdGVyX2NhbGxiYWNrQGlvc19iYXNlQHN0ZEBAUUFFWFA2QVhXNGV2ZW50QDEyQEFBVjEyQEhAWkhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfaXRlcmF0b3I8Y2hhciAqLGNoYXIsY2hhciAmLGNoYXIgKixpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmVuZCh2b2lkKQ0KKz9yZW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUU/QVY/JHJldmVyc2VfaXRlcmF0b3JAUEFEREFBRFBBREhAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfaXRlcmF0b3I8Y2hhciBjb25zdCAqLGNoYXIsY2hhciBjb25zdCAmLGNoYXIgY29uc3QgKixpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmVuZCh2b2lkKWNvbnN0IA0KKz9yZW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkU/QVY/JHJldmVyc2VfaXRlcmF0b3JAUEJEREFCRFBCREhAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCAmLHVuc2lnbmVkIHNob3J0ICosaW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJlbmQodm9pZCkNCis/cmVuZEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFP0FWPyRyZXZlcnNlX2l0ZXJhdG9yQFBBR0dBQUdQQUdIQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpyZXZlcnNlX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQgY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludD4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZW5kKHZvaWQpY29uc3QgDQorP3JlbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRT9BVj8kcmV2ZXJzZV9pdGVyYXRvckBQQkdHQUJHUEJHSEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZXBsYWNlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjEyQElJQUJWMTJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJlcGxhY2UodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYxMkBJSUFCVjEyQElJQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJlcGxhY2UodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsY2hhcikNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJASUlJREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZXBsYWNlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsY2hhciBjb25zdCAqKQ0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYxMkBJSVBCREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZXBsYWNlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJASUlQQkRJQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJlcGxhY2UoY2hhciAqLGNoYXIgKixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJAUEFEMEFCVjEyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZXBsYWNlKGNoYXIgKixjaGFyICosdW5zaWduZWQgaW50LGNoYXIpDQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjEyQFBBRDBJREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZXBsYWNlKGNoYXIgKixjaGFyICosY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKikNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJAUEFEMFBCRDFAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmVwbGFjZShjaGFyICosY2hhciAqLGNoYXIgY29uc3QgKikNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJAUEFEMFBCREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZXBsYWNlKGNoYXIgKixjaGFyICosY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJAUEFEMFBCRElAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmVwbGFjZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQVYxMkBJSUFCVjEyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZXBsYWNlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJASUlBQlYxMkBJSUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZXBsYWNlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0KQ0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQVYxMkBJSUlHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJlcGxhY2UodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQVYxMkBJSVBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZXBsYWNlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQElJUEJHSUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZXBsYWNlKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJAUEFHMEFCVjEyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZXBsYWNlKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQpDQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQFBBRzBJR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZXBsYWNlKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQFBBRzBQQkcxQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJlcGxhY2UodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQFBBRzBQQkdAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmVwbGFjZSh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQFBBRzBQQkdJQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmVzZXJ2ZSh1bnNpZ25lZCBpbnQpDQorP3Jlc2VydmVAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRVhJQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmVzZXJ2ZSh1bnNpZ25lZCBpbnQpDQorP3Jlc2VydmVAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRVhJQFoNCis7IHN0cnVjdCBzdGQ6Ol9TbWFuaXA8aW50PiAgX19jZGVjbCBzdGQ6OnJlc2V0aW9zZmxhZ3MoaW50KQ0KKz9yZXNldGlvc2ZsYWdzQHN0ZEBAWUE/QVU/JF9TbWFuaXBASEAxQEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZXNpemUodW5zaWduZWQgaW50KQ0KKz9yZXNpemVAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRVhJQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmVzaXplKHVuc2lnbmVkIGludCxjaGFyKQ0KKz9yZXNpemVAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRVhJREBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJlc2l6ZSh1bnNpZ25lZCBpbnQpDQorP3Jlc2l6ZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFWElAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZXNpemUodW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0KQ0KKz9yZXNpemVAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRVhJR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmZpbmQoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9yZmluZEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSUFCVjEyQElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJmaW5kKGNoYXIsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9yZmluZEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSURJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZmluZChjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KWNvbnN0IA0KKz9yZmluZEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSVBCRElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJmaW5kKGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9yZmluZEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSVBCRElJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZmluZChjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJix1bnNpZ25lZCBpbnQpY29uc3QgDQorP3JmaW5kQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJQUJWMTJASUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmZpbmQodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9yZmluZEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSUdJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZmluZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCljb25zdCANCis/cmZpbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlQQkdJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZmluZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP3JmaW5kQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJUEJHSUlAWg0KKzsgcHVibGljOiBzdGF0aWMgc2lnbmVkIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpZ25lZCBjaGFyPjo6cm91bmRfZXJyb3Iodm9pZCkNCis/cm91bmRfZXJyb3JAPyRudW1lcmljX2xpbWl0c0BDQHN0ZEBAU0FDWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGNoYXI+Ojpyb3VuZF9lcnJvcih2b2lkKQ0KKz9yb3VuZF9lcnJvckA/JG51bWVyaWNfbGltaXRzQERAc3RkQEBTQURYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgY2hhcj46OnJvdW5kX2Vycm9yKHZvaWQpDQorP3JvdW5kX2Vycm9yQD8kbnVtZXJpY19saW1pdHNARUBzdGRAQFNBRVhaDQorOyBwdWJsaWM6IHN0YXRpYyBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2hvcnQ+Ojpyb3VuZF9lcnJvcih2b2lkKQ0KKz9yb3VuZF9lcnJvckA/JG51bWVyaWNfbGltaXRzQEZAc3RkQEBTQUZYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIHNob3J0Pjo6cm91bmRfZXJyb3Iodm9pZCkNCis/cm91bmRfZXJyb3JAPyRudW1lcmljX2xpbWl0c0BHQHN0ZEBAU0FHWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6cm91bmRfZXJyb3Iodm9pZCkNCis/cm91bmRfZXJyb3JAPyRudW1lcmljX2xpbWl0c0BIQHN0ZEBAU0FIWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgaW50Pjo6cm91bmRfZXJyb3Iodm9pZCkNCis/cm91bmRfZXJyb3JAPyRudW1lcmljX2xpbWl0c0BJQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmc+Ojpyb3VuZF9lcnJvcih2b2lkKQ0KKz9yb3VuZF9lcnJvckA/JG51bWVyaWNfbGltaXRzQEpAc3RkQEBTQUpYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgbG9uZz46OnJvdW5kX2Vycm9yKHZvaWQpDQorP3JvdW5kX2Vycm9yQD8kbnVtZXJpY19saW1pdHNAS0BzdGRAQFNBS1haDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9lcnJvcih2b2lkKQ0KKz9yb3VuZF9lcnJvckA/JG51bWVyaWNfbGltaXRzQE1Ac3RkQEBTQU1YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+Ojpyb3VuZF9lcnJvcih2b2lkKQ0KKz9yb3VuZF9lcnJvckA/JG51bWVyaWNfbGltaXRzQE5Ac3RkQEBTQU5YWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgZG91YmxlPjo6cm91bmRfZXJyb3Iodm9pZCkNCis/cm91bmRfZXJyb3JAPyRudW1lcmljX2xpbWl0c0BPQHN0ZEBAU0FPWFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGJvb2w+Ojpyb3VuZF9lcnJvcih2b2lkKQ0KKz9yb3VuZF9lcnJvckA/JG51bWVyaWNfbGltaXRzQF9OQHN0ZEBAU0FfTlhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c2J1bXBjKHZvaWQpDQorP3NidW1wY0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzYnVtcGModm9pZCkNCis/c2J1bXBjQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFR1haDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8Y2hhcj46OnNjYW5faXMoc2hvcnQsY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKiljb25zdCANCis/c2Nhbl9pc0A/JGN0eXBlQERAc3RkQEBRQkVQQkRGUEJEMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6c2Nhbl9pcyhzaG9ydCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP3NjYW5faXNAPyRjdHlwZUBHQHN0ZEBAUUJFUEJHRlBCRzBAWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmN0eXBlPGNoYXI+OjpzY2FuX25vdChzaG9ydCxjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqKWNvbnN0IA0KKz9zY2FuX25vdEA/JGN0eXBlQERAc3RkQEBRQkVQQkRGUEJEMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6c2Nhbl9ub3Qoc2hvcnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9zY2FuX25vdEA/JGN0eXBlQEdAc3RkQEBRQkVQQkdGUEJHMEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNlZWtnKGxvbmcsZW51bSBzdGQ6Omlvc19iYXNlOjpzZWVrZGlyKQ0KKz9zZWVrZ0A/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYxMkBKVzRzZWVrZGlyQGlvc19iYXNlQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c2Vla2coY2xhc3Mgc3RkOjpmcG9zPGludD4pDQorP3NlZWtnQD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjEyQFY/JGZwb3NASEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZWVrZyhsb25nLGVudW0gc3RkOjppb3NfYmFzZTo6c2Vla2RpcikNCis/c2Vla2dAPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMTJASlc0c2Vla2RpckBpb3NfYmFzZUAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZWVrZyhjbGFzcyBzdGQ6OmZwb3M8aW50PikNCis/c2Vla2dAPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAVj8kZnBvc0BIQDJAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZWVrb2ZmKGxvbmcsZW51bSBzdGQ6Omlvc19iYXNlOjpzZWVrZGlyLGludCkNCis/c2Vla29mZkA/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNQUU/QVY/JGZwb3NASEAyQEpXNHNlZWtkaXJAaW9zX2Jhc2VAMkBIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNlZWtvZmYobG9uZyxlbnVtIHN0ZDo6aW9zX2Jhc2U6OnNlZWtkaXIsaW50KQ0KKz9zZWVrb2ZmQD8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1BRT9BVj8kZnBvc0BIQDJASlc0c2Vla2RpckBpb3NfYmFzZUAyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c2Vla29mZihsb25nLGVudW0gc3RkOjppb3NfYmFzZTo6c2Vla2RpcixpbnQpDQorP3NlZWtvZmZAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNQUU/QVY/JGZwb3NASEAyQEpXNHNlZWtkaXJAaW9zX2Jhc2VAMkBIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c2Vla29mZihsb25nLGVudW0gc3RkOjppb3NfYmFzZTo6c2Vla2RpcixpbnQpDQorP3NlZWtvZmZAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBNQUU/QVY/JGZwb3NASEAyQEpXNHNlZWtkaXJAaW9zX2Jhc2VAMkBIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnNlZWtvZmYobG9uZyxlbnVtIHN0ZDo6aW9zX2Jhc2U6OnNlZWtkaXIsaW50KQ0KKz9zZWVrb2ZmQD8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBNQUU/QVY/JGZwb3NASEAyQEpXNHNlZWtkaXJAaW9zX2Jhc2VAMkBIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnNlZWtvZmYobG9uZyxlbnVtIHN0ZDo6aW9zX2Jhc2U6OnNlZWtkaXIsaW50KQ0KKz9zZWVrb2ZmQD8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBNQUU/QVY/JGZwb3NASEAyQEpXNHNlZWtkaXJAaW9zX2Jhc2VAMkBIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OnN0cnN0cmVhbWJ1Zjo6c2Vla29mZihsb25nLGVudW0gc3RkOjppb3NfYmFzZTo6c2Vla2RpcixpbnQpDQorP3NlZWtvZmZAc3Ryc3RyZWFtYnVmQHN0ZEBATUFFP0FWPyRmcG9zQEhAMkBKVzRzZWVrZGlyQGlvc19iYXNlQDJASEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNlZWtwKGxvbmcsZW51bSBzdGQ6Omlvc19iYXNlOjpzZWVrZGlyKQ0KKz9zZWVrcEA/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYxMkBKVzRzZWVrZGlyQGlvc19iYXNlQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c2Vla3AoY2xhc3Mgc3RkOjpmcG9zPGludD4pDQorP3NlZWtwQD8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjEyQFY/JGZwb3NASEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZWVrcChsb25nLGVudW0gc3RkOjppb3NfYmFzZTo6c2Vla2RpcikNCis/c2Vla3BAPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMTJASlc0c2Vla2RpckBpb3NfYmFzZUAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZWVrcChjbGFzcyBzdGQ6OmZwb3M8aW50PikNCis/c2Vla3BAPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAVj8kZnBvc0BIQDJAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZWVrcG9zKGNsYXNzIHN0ZDo6ZnBvczxpbnQ+LGludCkNCis/c2Vla3Bvc0A/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNQUU/QVY/JGZwb3NASEAyQFYzMkBIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNlZWtwb3MoY2xhc3Mgc3RkOjpmcG9zPGludD4saW50KQ0KKz9zZWVrcG9zQD8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1BRT9BVj8kZnBvc0BIQDJAVjMyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c2Vla3BvcyhjbGFzcyBzdGQ6OmZwb3M8aW50PixpbnQpDQorP3NlZWtwb3NAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNQUU/QVY/JGZwb3NASEAyQFYzMkBIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c2Vla3BvcyhjbGFzcyBzdGQ6OmZwb3M8aW50PixpbnQpDQorP3NlZWtwb3NAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBNQUU/QVY/JGZwb3NASEAyQFYzMkBIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnNlZWtwb3MoY2xhc3Mgc3RkOjpmcG9zPGludD4saW50KQ0KKz9zZWVrcG9zQD8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBNQUU/QVY/JGZwb3NASEAyQFYzMkBIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnNlZWtwb3MoY2xhc3Mgc3RkOjpmcG9zPGludD4saW50KQ0KKz9zZWVrcG9zQD8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBNQUU/QVY/JGZwb3NASEAyQFYzMkBIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OnN0cnN0cmVhbWJ1Zjo6c2Vla3BvcyhjbGFzcyBzdGQ6OmZwb3M8aW50PixpbnQpDQorP3NlZWtwb3NAc3Ryc3RyZWFtYnVmQHN0ZEBATUFFP0FWPyRmcG9zQEhAMkBWMzJASEBaDQorOyBzdHJ1Y3Qgc3RkOjpfU21hbmlwPGludD4gIF9fY2RlY2wgc3RkOjpzZXRiYXNlKGludCkNCis/c2V0YmFzZUBzdGRAQFlBP0FVPyRfU21hbmlwQEhAMUBIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNldGJ1ZihjaGFyICosaW50KQ0KKz9zZXRidWZAPyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBATUFFUEFWPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBQQURIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZXRidWYodW5zaWduZWQgc2hvcnQgKixpbnQpDQorP3NldGJ1ZkA/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBNQUVQQVY/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFBBR0hAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZXRidWYoY2hhciAqLGludCkNCis/c2V0YnVmQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBATUFFUEFWMTJAUEFESEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZXRidWYodW5zaWduZWQgc2hvcnQgKixpbnQpDQorP3NldGJ1ZkA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1BRVBBVjEyQFBBR0hAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpzZXRmKGludCkNCis/c2V0ZkBpb3NfYmFzZUBzdGRAQFFBRUhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6c2V0ZihpbnQsaW50KQ0KKz9zZXRmQGlvc19iYXNlQHN0ZEBAUUFFSEhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c2V0ZyhjaGFyICosY2hhciAqLGNoYXIgKikNCis/c2V0Z0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElBRVhQQUQwMEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c2V0Zyh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKikNCis/c2V0Z0A/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElBRVhQQUcwMEBaDQorOyBzdHJ1Y3Qgc3RkOjpfU21hbmlwPGludD4gIF9fY2RlY2wgc3RkOjpzZXRpb3NmbGFncyhpbnQpDQorP3NldGlvc2ZsYWdzQHN0ZEBAWUE/QVU/JF9TbWFuaXBASEAxQEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZXRwKGNoYXIgKixjaGFyICosY2hhciAqKQ0KKz9zZXRwQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUFFWFBBRDAwQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c2V0cChjaGFyICosY2hhciAqKQ0KKz9zZXRwQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUFFWFBBRDBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNldHAodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICopDQorP3NldHBAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJQUVYUEFHMDBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNldHAodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqKQ0KKz9zZXRwQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUFFWFBBRzBAWg0KKzsgc3RydWN0IHN0ZDo6X1NtYW5pcDxpbnQ+ICBfX2NkZWNsIHN0ZDo6c2V0cHJlY2lzaW9uKGludCkNCis/c2V0cHJlY2lzaW9uQHN0ZEBAWUE/QVU/JF9TbWFuaXBASEAxQEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZXRzdGF0ZShzaG9ydCkNCis/c2V0c3RhdGVAPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVYRkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNldHN0YXRlKGludCxib29sKQ0KKz9zZXRzdGF0ZUA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVhIX05AWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNldHN0YXRlKHNob3J0KQ0KKz9zZXRzdGF0ZUA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhGQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZXRzdGF0ZShpbnQsYm9vbCkNCis/c2V0c3RhdGVAPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVYSF9OQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6OnNldHN0YXRlKHNob3J0KQ0KKz9zZXRzdGF0ZUBpb3NfYmFzZUBzdGRAQFFBRVhGQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6OnNldHN0YXRlKGludCxib29sKQ0KKz9zZXRzdGF0ZUBpb3NfYmFzZUBzdGRAQFFBRVhIX05AWg0KKzsgc3RydWN0IHN0ZDo6X1NtYW5pcDxpbnQ+ICBfX2NkZWNsIHN0ZDo6c2V0dyhpbnQpDQorP3NldHdAc3RkQEBZQT9BVT8kX1NtYW5pcEBIQDFASEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c2dldGModm9pZCkNCis/c2dldGNAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c2dldGModm9pZCkNCis/c2dldGNAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVHWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZ2V0bihjaGFyICosaW50KQ0KKz9zZ2V0bkA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUhQQURIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNnZXRuKHVuc2lnbmVkIHNob3J0ICosaW50KQ0KKz9zZ2V0bkA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUhQQUdIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNob3dtYW55Yyh2b2lkKQ0KKz9zaG93bWFueWNAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNQUVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c2hvd21hbnljKHZvaWQpDQorP3Nob3dtYW55Y0A/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1BRUhYWg0KKzsgcHVibGljOiBzdGF0aWMgc2lnbmVkIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpZ25lZCBjaGFyPjo6c2lnbmFsaW5nX05hTih2b2lkKQ0KKz9zaWduYWxpbmdfTmFOQD8kbnVtZXJpY19saW1pdHNAQ0BzdGRAQFNBQ1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBjaGFyPjo6c2lnbmFsaW5nX05hTih2b2lkKQ0KKz9zaWduYWxpbmdfTmFOQD8kbnVtZXJpY19saW1pdHNARUBzdGRAQFNBRVhaDQorOyBwdWJsaWM6IHN0YXRpYyBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2hvcnQ+OjpzaWduYWxpbmdfTmFOKHZvaWQpDQorP3NpZ25hbGluZ19OYU5APyRudW1lcmljX2xpbWl0c0BGQHN0ZEBAU0FGWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBzaG9ydD46OnNpZ25hbGluZ19OYU4odm9pZCkNCis/c2lnbmFsaW5nX05hTkA/JG51bWVyaWNfbGltaXRzQEdAc3RkQEBTQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjpzaWduYWxpbmdfTmFOKHZvaWQpDQorP3NpZ25hbGluZ19OYU5APyRudW1lcmljX2xpbWl0c0BIQHN0ZEBAU0FIWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgaW50Pjo6c2lnbmFsaW5nX05hTih2b2lkKQ0KKz9zaWduYWxpbmdfTmFOQD8kbnVtZXJpY19saW1pdHNASUBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxsb25nPjo6c2lnbmFsaW5nX05hTih2b2lkKQ0KKz9zaWduYWxpbmdfTmFOQD8kbnVtZXJpY19saW1pdHNASkBzdGRAQFNBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBsb25nPjo6c2lnbmFsaW5nX05hTih2b2lkKQ0KKz9zaWduYWxpbmdfTmFOQD8kbnVtZXJpY19saW1pdHNAS0BzdGRAQFNBS1haDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjpzaWduYWxpbmdfTmFOKHZvaWQpDQorP3NpZ25hbGluZ19OYU5APyRudW1lcmljX2xpbWl0c0BNQHN0ZEBAU0FNWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6c2lnbmFsaW5nX05hTih2b2lkKQ0KKz9zaWduYWxpbmdfTmFOQD8kbnVtZXJpY19saW1pdHNATkBzdGRAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBkb3VibGU+OjpzaWduYWxpbmdfTmFOKHZvaWQpDQorP3NpZ25hbGluZ19OYU5APyRudW1lcmljX2xpbWl0c0BPQHN0ZEBAU0FPWFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGJvb2w+OjpzaWduYWxpbmdfTmFOKHZvaWQpDQorP3NpZ25hbGluZ19OYU5APyRudW1lcmljX2xpbWl0c0BfTkBzdGRAQFNBX05YWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Ol9DdHI8ZmxvYXQ+OjpzaW4oZmxvYXQpDQorP3NpbkA/JF9DdHJATUBzdGRAQFNBTU1AWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGRvdWJsZT46OnNpbihkb3VibGUpDQorP3NpbkA/JF9DdHJATkBzdGRAQFNBTk5AWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+OjpzaW4obG9uZyBkb3VibGUpDQorP3NpbkA/JF9DdHJAT0BzdGRAQFNBT09AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6OnNpbihjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorP3NpbkBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpzaW4oY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/c2luQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6c2luKGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/c2luQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6c2luaChjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorP3NpbmhAc3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6c2luaChjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz9zaW5oQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6c2luaChjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorP3NpbmhAc3RkQEBZQT9BVj8kY29tcGxleEBPQDFAQUJWMjFAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpzaXplKHZvaWQpY29uc3QgDQorP3NpemVAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnNpemUodm9pZCljb25zdCANCis/c2l6ZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSVhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c25leHRjKHZvaWQpDQorP3NuZXh0Y0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzbmV4dGModm9pZCkNCis/c25leHRjQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFR1haDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c3B1dGJhY2tjKGNoYXIpDQorP3NwdXRiYWNrY0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUhEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c3B1dGJhY2tjKHVuc2lnbmVkIHNob3J0KQ0KKz9zcHV0YmFja2NAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVHR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c3B1dGMoY2hhcikNCis/c3B1dGNAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVIREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNwdXRjKHVuc2lnbmVkIHNob3J0KQ0KKz9zcHV0Y0A/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUdHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzcHV0bihjaGFyIGNvbnN0ICosaW50KQ0KKz9zcHV0bkA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUhQQkRIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNwdXRuKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz9zcHV0bkA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUhQQkdIQFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgc3RkOjpfQ3RyPGZsb2F0Pjo6c3FydChmbG9hdCkNCis/c3FydEA/JF9DdHJATUBzdGRAQFNBTU1AWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGRvdWJsZT46OnNxcnQoZG91YmxlKQ0KKz9zcXJ0QD8kX0N0ckBOQHN0ZEBAU0FOTkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT46OnNxcnQobG9uZyBkb3VibGUpDQorP3NxcnRAPyRfQ3RyQE9Ac3RkQEBTQU9PQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpzcXJ0KGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/c3FydEBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpzcXJ0KGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorP3NxcnRAc3RkQEBZQT9BVj8kY29tcGxleEBOQDFAQUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpzcXJ0KGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/c3FydEBzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBQlYyMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzdG9zc2Modm9pZCkNCis/c3Rvc3NjQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c3Rvc3NjKHZvaWQpDQorP3N0b3NzY0A/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6c3RyKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz9zdHJAPyRiYXNpY19pc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVYQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpzdHIodm9pZCljb25zdCANCis/c3RyQD8kYmFzaWNfaXN0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpzdHIoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorP3N0ckA/JGJhc2ljX2lzdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRVhBQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnN0cih2b2lkKWNvbnN0IA0KKz9zdHJAPyRiYXNpY19pc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkU/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnN0cihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/c3RyQD8kYmFzaWNfb3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFWEFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6c3RyKHZvaWQpY29uc3QgDQorP3N0ckA/JGJhc2ljX29zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6c3RyKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz9zdHJAPyRiYXNpY19vc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVYQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpzdHIodm9pZCljb25zdCANCis/c3RyQD8kYmFzaWNfb3N0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnN0cihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/c3RyQD8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVYQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnN0cih2b2lkKWNvbnN0IA0KKz9zdHJAPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpzdHIoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorP3N0ckA/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFWEFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpzdHIodm9pZCljb25zdCANCis/c3RyQD8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkU/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6c3RyKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz9zdHJAPyRiYXNpY19zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRVhBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6c3RyKHZvaWQpY29uc3QgDQorP3N0ckA/JGJhc2ljX3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnN0cihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/c3RyQD8kYmFzaWNfc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVYQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnN0cih2b2lkKWNvbnN0IA0KKz9zdHJAPyRiYXNpY19zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpzdWJzdHIodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCANCis/c3Vic3RyQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkU/QVYxMkBJSUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnN1YnN0cih1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9zdWJzdHJAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRT9BVjEyQElJQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzdW5nZXRjKHZvaWQpDQorP3N1bmdldGNAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c3VuZ2V0Yyh2b2lkKQ0KKz9zdW5nZXRjQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFR1haDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnN3YXAoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYpDQorP3N3YXBAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRVhBQVYxMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojpzd2FwKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmKQ0KKz9zd2FwQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVYQUFWMTJAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzeW5jKHZvaWQpDQorP3N5bmNAPyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBATUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzeW5jKHZvaWQpDQorP3N5bmNAPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnN5bmModm9pZCkNCis/c3luY0A/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzeW5jKHZvaWQpDQorP3N5bmNAPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzeW5jKHZvaWQpDQorP3N5bmNAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNQUVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c3luYyh2b2lkKQ0KKz9zeW5jQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUFFSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjppb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGJvb2wpDQorP3N5bmNfd2l0aF9zdGRpb0Bpb3NfYmFzZUBzdGRAQFNBX05fTkBaDQorOyBwcm90ZWN0ZWQ6IHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmN0eXBlPGNoYXI+Ojp0YWJsZSh2b2lkKWNvbnN0IA0KKz90YWJsZUA/JGN0eXBlQERAc3RkQEBJQkVQQkZYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IGNvbnN0ICBzdGQ6OmN0eXBlPGNoYXI+Ojp0YWJsZV9zaXplDQorP3RhYmxlX3NpemVAPyRjdHlwZUBEQHN0ZEBAMklCIERBVEENCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpmcG9zPGludD4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6dGVsbGcodm9pZCkNCis/dGVsbGdAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFP0FWPyRmcG9zQEhAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnRlbGxnKHZvaWQpDQorP3RlbGxnQD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRT9BVj8kZnBvc0BIQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpmcG9zPGludD4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6dGVsbHAodm9pZCkNCis/dGVsbHBAPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFP0FWPyRmcG9zQEhAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnRlbGxwKHZvaWQpDQorP3RlbGxwQD8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRT9BVj8kZnBvc0BIQDJAWFoNCis7IHB1YmxpYzogY2hhciBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDxjaGFyPjo6dGhvdXNhbmRzX3NlcCh2b2lkKWNvbnN0IA0KKz90aG91c2FuZHNfc2VwQD8kX01wdW5jdEBEQHN0ZEBAUUJFRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6dGhvdXNhbmRzX3NlcCh2b2lkKWNvbnN0IA0KKz90aG91c2FuZHNfc2VwQD8kX01wdW5jdEBHQHN0ZEBAUUJFR1haDQorOyBwdWJsaWM6IGNoYXIgX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PGNoYXI+Ojp0aG91c2FuZHNfc2VwKHZvaWQpY29uc3QgDQorP3Rob3VzYW5kc19zZXBAPyRudW1wdW5jdEBEQHN0ZEBAUUJFRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD46OnRob3VzYW5kc19zZXAodm9pZCljb25zdCANCis/dGhvdXNhbmRzX3NlcEA/JG51bXB1bmN0QEdAc3RkQEBRQkVHWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp0aWUoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqKQ0KKz90aWVAPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVQQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBQQVYzMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnRpZSh2b2lkKWNvbnN0IA0KKz90aWVAPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQkVQQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp0aWUoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICopDQorP3RpZUA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVBBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFBBVjMyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnRpZSh2b2lkKWNvbnN0IA0KKz90aWVAPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQkVQQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj46OnRvX2NoYXJfdHlwZShpbnQgY29uc3QgJikNCis/dG9fY2hhcl90eXBlQD8kY2hhcl90cmFpdHNAREBzdGRAQFNBREFCSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+Ojp0b19jaGFyX3R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgJikNCis/dG9fY2hhcl90eXBlQD8kY2hhcl90cmFpdHNAR0BzdGRAQFNBR0FCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+Ojp0b19pbnRfdHlwZShjaGFyIGNvbnN0ICYpDQorP3RvX2ludF90eXBlQD8kY2hhcl90cmFpdHNAREBzdGRAQFNBSEFCREBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+Ojp0b19pbnRfdHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAmKQ0KKz90b19pbnRfdHlwZUA/JGNoYXJfdHJhaXRzQEdAc3RkQEBTQUdBQkdAWg0KKzsgcHVibGljOiBjaGFyIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTxjaGFyPjo6dG9sb3dlcihjaGFyKWNvbnN0IA0KKz90b2xvd2VyQD8kY3R5cGVAREBzdGRAQFFCRUREQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTxjaGFyPjo6dG9sb3dlcihjaGFyICosY2hhciBjb25zdCAqKWNvbnN0IA0KKz90b2xvd2VyQD8kY3R5cGVAREBzdGRAQFFCRVBCRFBBRFBCREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OnRvbG93ZXIodW5zaWduZWQgc2hvcnQpY29uc3QgDQorP3RvbG93ZXJAPyRjdHlwZUBHQHN0ZEBAUUJFR0dAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OnRvbG93ZXIodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz90b2xvd2VyQD8kY3R5cGVAR0BzdGRAQFFCRVBCR1BBR1BCR0BaDQorOyBwdWJsaWM6IGNoYXIgX190aGlzY2FsbCBzdGQ6OmN0eXBlPGNoYXI+Ojp0b3VwcGVyKGNoYXIpY29uc3QgDQorP3RvdXBwZXJAPyRjdHlwZUBEQHN0ZEBAUUJFRERAWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmN0eXBlPGNoYXI+Ojp0b3VwcGVyKGNoYXIgKixjaGFyIGNvbnN0ICopY29uc3QgDQorP3RvdXBwZXJAPyRjdHlwZUBEQHN0ZEBAUUJFUEJEUEFEUEJEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6dG91cHBlcih1bnNpZ25lZCBzaG9ydCljb25zdCANCis/dG91cHBlckA/JGN0eXBlQEdAc3RkQEBRQkVHR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6dG91cHBlcih1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP3RvdXBwZXJAPyRjdHlwZUBHQHN0ZEBAUUJFUEJHUEFHUEJHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTxjaGFyPjo6dHJhbnNmb3JtKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICopY29uc3QgDQorP3RyYW5zZm9ybUA/JGNvbGxhdGVAREBzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBQQkQwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46OnRyYW5zZm9ybSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP3RyYW5zZm9ybUA/JGNvbGxhdGVAR0BzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBQQkcwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46OnRydWVuYW1lKHZvaWQpY29uc3QgDQorP3RydWVuYW1lQD8kbnVtcHVuY3RAREBzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD46OnRydWVuYW1lKHZvaWQpY29uc3QgDQorP3RydWVuYW1lQD8kbnVtcHVuY3RAR0BzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnVmbG93KHZvaWQpDQorP3VmbG93QD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp1Zmxvdyh2b2lkKQ0KKz91Zmxvd0A/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBNQUVHWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnVmbG93KHZvaWQpDQorP3VmbG93QD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBATUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6dWZsb3codm9pZCkNCis/dWZsb3dAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBNQUVHWFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6OnVuY2F1Z2h0X2V4Y2VwdGlvbih2b2lkKQ0KKz91bmNhdWdodF9leGNlcHRpb25Ac3RkQEBZQV9OWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp1bmRlcmZsb3codm9pZCkNCis/dW5kZXJmbG93QD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp1bmRlcmZsb3codm9pZCkNCis/dW5kZXJmbG93QD8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1BRUdYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6dW5kZXJmbG93KHZvaWQpDQorP3VuZGVyZmxvd0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnVuZGVyZmxvdyh2b2lkKQ0KKz91bmRlcmZsb3dAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBNQUVHWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnVuZGVyZmxvdyh2b2lkKQ0KKz91bmRlcmZsb3dAPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojp1bmRlcmZsb3codm9pZCkNCis/dW5kZXJmbG93QD8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBNQUVHWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OnN0cnN0cmVhbWJ1Zjo6dW5kZXJmbG93KHZvaWQpDQorP3VuZGVyZmxvd0BzdHJzdHJlYW1idWZAc3RkQEBNQUVIWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6dW5nZXQodm9pZCkNCis/dW5nZXRAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnVuZ2V0KHZvaWQpDQorP3VuZ2V0QD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjEyQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjp1bnNldGYoaW50KQ0KKz91bnNldGZAaW9zX2Jhc2VAc3RkQEBRQUVYSEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIHN0ZDo6d2NlcnINCis/d2NlcnJAc3RkQEAzVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEEgREFUQQ0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBzdGQ6OndjaW4NCis/d2NpbkBzdGRAQDNWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAQSBEQVRBDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIHN0ZDo6d2Nsb2cNCis/d2Nsb2dAc3RkQEAzVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEEgREFUQQ0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBzdGQ6Ondjb3V0DQorP3djb3V0QHN0ZEBAM1Y/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBBIERBVEENCis7IHB1YmxpYzogdmlydHVhbCBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmxvZ2ljX2Vycm9yOjp3aGF0KHZvaWQpY29uc3QgDQorP3doYXRAbG9naWNfZXJyb3JAc3RkQEBVQkVQQkRYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6cnVudGltZV9lcnJvcjo6d2hhdCh2b2lkKWNvbnN0IA0KKz93aGF0QHJ1bnRpbWVfZXJyb3JAc3RkQEBVQkVQQkRYWg0KKzsgcHVibGljOiBjaGFyIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp3aWRlbihjaGFyKWNvbnN0IA0KKz93aWRlbkA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFCRUREQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6d2lkZW4oY2hhciljb25zdCANCis/d2lkZW5APyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQkVHREBaDQorOyBwdWJsaWM6IGNoYXIgX190aGlzY2FsbCBzdGQ6OmN0eXBlPGNoYXI+Ojp3aWRlbihjaGFyKWNvbnN0IA0KKz93aWRlbkA/JGN0eXBlQERAc3RkQEBRQkVEREBaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8Y2hhcj46OndpZGVuKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosY2hhciAqKWNvbnN0IA0KKz93aWRlbkA/JGN0eXBlQERAc3RkQEBRQkVQQkRQQkQwUEFEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6d2lkZW4oY2hhciljb25zdCANCis/d2lkZW5APyRjdHlwZUBHQHN0ZEBAUUJFR0RAWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6d2lkZW4oY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKix1bnNpZ25lZCBzaG9ydCAqKWNvbnN0IA0KKz93aWRlbkA/JGN0eXBlQEdAc3RkQEBRQkVQQkRQQkQwUEFHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6d2lkdGgoaW50KQ0KKz93aWR0aEBpb3NfYmFzZUBzdGRAQFFBRUhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6d2lkdGgodm9pZCljb25zdCANCis/d2lkdGhAaW9zX2Jhc2VAc3RkQEBRQkVIWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6d3JpdGUoY2hhciBjb25zdCAqLGludCkNCis/d3JpdGVAPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAUEJESEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp3cml0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/d3JpdGVAPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAUEJHSEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19jZGVjbCBzdGQ6OndzKGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJikNCis/d3NAc3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEFBVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX2NkZWNsIHN0ZDo6d3MoY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYpDQorP3dzQHN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBBQVYyMUBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjppb3NfYmFzZTo6eGFsbG9jKHZvaWQpDQorP3hhbGxvY0Bpb3NfYmFzZUBzdGRAQFNBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp4c2dldG4oY2hhciAqLGludCkNCis/eHNnZXRuQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBATUFFSFBBREhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp4c2dldG4odW5zaWduZWQgc2hvcnQgKixpbnQpDQorP3hzZ2V0bkA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1BRUhQQUdIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnhzcHV0bihjaGFyIGNvbnN0ICosaW50KQ0KKz94c3B1dG5APyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNQUVIUEJESEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnhzcHV0bih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/eHNwdXRuQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUFFSFBCR0hAWg0KK19Db3NoDQorX0Rlbm9ybSBEQVRBDQorX0Rub3JtDQorX0RzY2FsZQ0KK19EdGVzdA0KK19FcHMgREFUQQ0KK19FeHANCitfRkNvc2gNCitfRkRlbm9ybSBEQVRBDQorX0ZEbm9ybQ0KK19GRHNjYWxlDQorX0ZEdGVzdA0KK19GRXBzIERBVEENCitfRkV4cA0KK19GSW5mIERBVEENCitfRk5hbiBEQVRBDQorX0ZSdGVwcyBEQVRBDQorX0ZTaW5oDQorX0ZTbmFuIERBVEENCitfRlhiaWcgREFUQQ0KK19HZXRjb2xsDQorX0dldGN0eXBlDQorX0dldGN2dA0KK19IdWdldmFsIERBVEENCitfSW5mIERBVEENCitfTENvc2gNCitfTERlbm9ybSBEQVRBDQorX0xEc2NhbGUNCitfTER0ZXN0DQorX0xFcHMgREFUQQ0KK19MRXhwDQorX0xJbmYgREFUQQ0KK19MTmFuIERBVEENCitfTFBvbHkNCitfTFJ0ZXBzIERBVEENCitfTFNpbmgNCitfTFNuYW4gREFUQQ0KK19MWGJpZyBEQVRBDQorX01icnRvd2MNCitfTmFuIERBVEENCitfUG9seQ0KK19SdGVwcyBEQVRBDQorX1NpbmgNCitfU25hbiBEQVRBDQorX1N0b2QNCitfU3RvZg0KK19TdG9sZA0KK19TdHJjb2xsDQorX1N0cnhmcm0NCitfVG9sb3dlcg0KK19Ub3VwcGVyDQorX1djcnRvbWINCitfWGJpZyBEQVRBDQorX19XY3J0b21iX2xrDQorYnRvd2MNCittYnJsZW4NCittYnJ0b3djDQorbWJzcnRvd2NzDQordG93Y3RyYW5zDQord2NydG9tYg0KK3djc3J0b21icw0KK3djdG9iDQord2N0cmFucw0KK3djdHlwZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc3ZjcDYwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3ZjcDYwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNjg0MThmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zdmNwNjAuZGVmCkBAIC0wLDAgKzEsNDUyMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc3ZjcDYwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc3ZjcDYwLmRsbA0KK0VYUE9SVFMNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAQUFDQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAQUFDQFoNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAQUFEQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAQUFEQFoNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAQUFFQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAQUFFQFoNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAUEFDQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAUEFDQFoNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAUEFEQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAUEFEQFoNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAUEFFQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAUEFFQFoNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKE1Ac3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFBVj8kY29tcGxleEBNQDBAQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQE1Ac3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFBVj8kY29tcGxleEBNQDBAQFoNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKE5Ac3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFBVj8kY29tcGxleEBOQDBAQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQE5Ac3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFBVj8kY29tcGxleEBOQDBAQFoNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKE9Ac3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFBVj8kY29tcGxleEBPQDBAQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQE9Ac3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFBVj8kY29tcGxleEBPQDBAQFoNCis7IERAc3RkOjo/JD81RFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBBQVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFopDQorPz8kPzVEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBBQVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFoNCis7IEdAc3RkOjo/JD81R1U/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAQUFHQFopDQorPz8kPzVHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAQUFHQFoNCis7IEdAc3RkOjo/JD81R1U/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAUEFGQFopDQorPz8kPzVHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAUEFGQFoNCis7IEdAc3RkOjo/JD81R1U/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAUEFHQFopDQorPz8kPzVHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAUEFHQFoNCis7IEdAc3RkOjo/JD81R1U/JGNoYXJfdHJhaXRzKE1Ac3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQEFBVj8kY29tcGxleEBNQDBAQFopDQorPz8kPzVHVT8kY2hhcl90cmFpdHNAR0BzdGRAQE1Ac3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQEFBVj8kY29tcGxleEBNQDBAQFoNCis7IEdAc3RkOjo/JD81R1U/JGNoYXJfdHJhaXRzKE5Ac3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQEFBVj8kY29tcGxleEBOQDBAQFopDQorPz8kPzVHVT8kY2hhcl90cmFpdHNAR0BzdGRAQE5Ac3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQEFBVj8kY29tcGxleEBOQDBAQFoNCis7IEdAc3RkOjo/JD81R1U/JGNoYXJfdHJhaXRzKE9Ac3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQEFBVj8kY29tcGxleEBPQDBAQFopDQorPz8kPzVHVT8kY2hhcl90cmFpdHNAR0BzdGRAQE9Ac3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQEFBVj8kY29tcGxleEBPQDBAQFoNCis7IEdAc3RkOjo/JD81R1U/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBQVYxMEBBQVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFopDQorPz8kPzVHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBQVYxMEBBQVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFoNCis7IERAc3RkOjo/JD82RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAQ0BaKQ0KKz8/JD82RFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQENAWg0KKzsgREBzdGQ6Oj8kPzZEVT8kY2hhcl90cmFpdHMoQHN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBEQFopDQorPz8kPzZEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAREBaDQorOyBEQHN0ZDo6PyQ/NkRVPyRjaGFyX3RyYWl0cyhAc3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEVAWikNCis/PyQ/NkRVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBFQFoNCis7IERAc3RkOjo/JD82RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAUEJDQFopDQorPz8kPzZEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAUEJDQFoNCis7IERAc3RkOjo/JD82RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAUEJEQFopDQorPz8kPzZEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAUEJEQFoNCis7IERAc3RkOjo/JD82RFU/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAUEJFQFopDQorPz8kPzZEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAUEJFQFoNCis7IERAc3RkOjo/JD82RFU/JGNoYXJfdHJhaXRzKE1Ac3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFCVj8kY29tcGxleEBNQDBAQFopDQorPz8kPzZEVT8kY2hhcl90cmFpdHNAREBzdGRAQE1Ac3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFCVj8kY29tcGxleEBNQDBAQFoNCis7IERAc3RkOjo/JD82RFU/JGNoYXJfdHJhaXRzKE5Ac3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFCVj8kY29tcGxleEBOQDBAQFopDQorPz8kPzZEVT8kY2hhcl90cmFpdHNAREBzdGRAQE5Ac3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFCVj8kY29tcGxleEBOQDBAQFoNCis7IERAc3RkOjo/JD82RFU/JGNoYXJfdHJhaXRzKE9Ac3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFCVj8kY29tcGxleEBPQDBAQFopDQorPz8kPzZEVT8kY2hhcl90cmFpdHNAREBzdGRAQE9Ac3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFCVj8kY29tcGxleEBPQDBAQFoNCis7IERAc3RkOjo/JD82RFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFopDQorPz8kPzZEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFoNCis7IEdAc3RkOjo/JD82R1U/JGNoYXJfdHJhaXRzKEBzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAR0BaKQ0KKz8/JD82R1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQEdAWg0KKzsgR0BzdGQ6Oj8kPzZHVT8kY2hhcl90cmFpdHMoQHN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBQVYxMEBQQkZAWikNCis/PyQ/NkdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBQVYxMEBQQkZAWg0KKzsgR0BzdGQ6Oj8kPzZHVT8kY2hhcl90cmFpdHMoQHN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBQVYxMEBQQkdAWikNCis/PyQ/NkdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBQVYxMEBQQkdAWg0KKzsgR0BzdGQ6Oj8kPzZHVT8kY2hhcl90cmFpdHMoTUBzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAQUJWPyRjb21wbGV4QE1AMEBAWikNCis/PyQ/NkdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBATUBzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAQUJWPyRjb21wbGV4QE1AMEBAWg0KKzsgR0BzdGQ6Oj8kPzZHVT8kY2hhcl90cmFpdHMoTkBzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAQUJWPyRjb21wbGV4QE5AMEBAWikNCis/PyQ/NkdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBATkBzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAQUJWPyRjb21wbGV4QE5AMEBAWg0KKzsgR0BzdGQ6Oj8kPzZHVT8kY2hhcl90cmFpdHMoT0BzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAQUJWPyRjb21wbGV4QE9AMEBAWikNCis/PyQ/NkdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAT0BzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAQUJWPyRjb21wbGV4QE9AMEBAWg0KKzsgR0BzdGQ6Oj8kPzZHVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQEFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBAWikNCis/PyQ/NkdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQEFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBAWg0KKzsgREBzdGQ6Oj8kPzhEVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQDBAWikNCis/PyQ/OERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQDBAWg0KKzsgREBzdGQ6Oj8kPzhEVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQFBCREBaKQ0KKz8/JD84RFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEJEQFoNCis7IERAc3RkOjo/JD84RFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTlBCREFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBAWikNCis/PyQ/OERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OUEJEQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaDQorOyBHQHN0ZDo6PyQ/OEdVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAMEBaKQ0KKz8/JD84R1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAMEBaDQorOyBHQHN0ZDo6PyQ/OEdVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAUEJHQFopDQorPz8kPzhHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBQQkdAWg0KKzsgR0BzdGQ6Oj8kPzhHVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OUEJHQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEBaKQ0KKz8/JD84R1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05QQkdBQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFoNCis7IHN0ZDo6PyQ/OE0oWUFfTkFCTUFCVj8kY29tcGxleEBNQDBAQFopDQorPz8kPzhNQHN0ZEBAWUFfTkFCTUFCVj8kY29tcGxleEBNQDBAQFoNCis7IHN0ZDo6PyQ/OE0oWUFfTkFCVj8kY29tcGxleEBNQDBAMEBaKQ0KKz8/JD84TUBzdGRAQFlBX05BQlY/JGNvbXBsZXhATUAwQDBAWg0KKzsgc3RkOjo/JD84TShZQV9OQUJWPyRjb21wbGV4QE1AMEBBQk1AWikNCis/PyQ/OE1Ac3RkQEBZQV9OQUJWPyRjb21wbGV4QE1AMEBBQk1AWg0KKzsgc3RkOjo/JD84TihZQV9OQUJOQUJWPyRjb21wbGV4QE5AMEBAWikNCis/PyQ/OE5Ac3RkQEBZQV9OQUJOQUJWPyRjb21wbGV4QE5AMEBAWg0KKzsgc3RkOjo/JD84TihZQV9OQUJWPyRjb21wbGV4QE5AMEAwQFopDQorPz8kPzhOQHN0ZEBAWUFfTkFCVj8kY29tcGxleEBOQDBAMEBaDQorOyBzdGQ6Oj8kPzhOKFlBX05BQlY/JGNvbXBsZXhATkAwQEFCTkBaKQ0KKz8/JD84TkBzdGRAQFlBX05BQlY/JGNvbXBsZXhATkAwQEFCTkBaDQorOyBzdGQ6Oj8kPzhPKFlBX05BQk9BQlY/JGNvbXBsZXhAT0AwQEBaKQ0KKz8/JD84T0BzdGRAQFlBX05BQk9BQlY/JGNvbXBsZXhAT0AwQEBaDQorOyBzdGQ6Oj8kPzhPKFlBX05BQlY/JGNvbXBsZXhAT0AwQDBAWikNCis/PyQ/OE9Ac3RkQEBZQV9OQUJWPyRjb21wbGV4QE9AMEAwQFoNCis7IHN0ZDo6PyQ/OE8oWUFfTkFCVj8kY29tcGxleEBPQDBAQUJPQFopDQorPz8kPzhPQHN0ZEBAWUFfTkFCVj8kY29tcGxleEBPQDBAQUJPQFoNCis7IERAc3RkOjo/JD85RFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEAwQFopDQorPz8kPzlEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEAwQFoNCis7IERAc3RkOjo/JD85RFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBQQkRAWikNCis/PyQ/OURVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQFBCREBaDQorOyBEQHN0ZDo6PyQ/OURVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05QQkRBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFopDQorPz8kPzlEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTlBCREFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBAWg0KKzsgR0BzdGQ6Oj8kPzlHVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQDBAWikNCis/PyQ/OUdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQDBAWg0KKzsgR0BzdGQ6Oj8kPzlHVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQFBCR0BaKQ0KKz8/JD85R1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAUEJHQFoNCis7IEdAc3RkOjo/JD85R1U/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTlBCR0FCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBAWikNCis/PyQ/OUdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OUEJHQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEBaDQorOyBzdGQ6Oj8kPzlNKFlBX05BQk1BQlY/JGNvbXBsZXhATUAwQEBaKQ0KKz8/JD85TUBzdGRAQFlBX05BQk1BQlY/JGNvbXBsZXhATUAwQEBaDQorOyBzdGQ6Oj8kPzlNKFlBX05BQlY/JGNvbXBsZXhATUAwQDBAWikNCis/PyQ/OU1Ac3RkQEBZQV9OQUJWPyRjb21wbGV4QE1AMEAwQFoNCis7IHN0ZDo6PyQ/OU0oWUFfTkFCVj8kY29tcGxleEBNQDBAQUJNQFopDQorPz8kPzlNQHN0ZEBAWUFfTkFCVj8kY29tcGxleEBNQDBAQUJNQFoNCis7IHN0ZDo6PyQ/OU4oWUFfTkFCTkFCVj8kY29tcGxleEBOQDBAQFopDQorPz8kPzlOQHN0ZEBAWUFfTkFCTkFCVj8kY29tcGxleEBOQDBAQFoNCis7IHN0ZDo6PyQ/OU4oWUFfTkFCVj8kY29tcGxleEBOQDBAMEBaKQ0KKz8/JD85TkBzdGRAQFlBX05BQlY/JGNvbXBsZXhATkAwQDBAWg0KKzsgc3RkOjo/JD85TihZQV9OQUJWPyRjb21wbGV4QE5AMEBBQk5AWikNCis/PyQ/OU5Ac3RkQEBZQV9OQUJWPyRjb21wbGV4QE5AMEBBQk5AWg0KKzsgc3RkOjo/JD85TyhZQV9OQUJPQUJWPyRjb21wbGV4QE9AMEBAWikNCis/PyQ/OU9Ac3RkQEBZQV9OQUJPQUJWPyRjb21wbGV4QE9AMEBAWg0KKzsgc3RkOjo/JD85TyhZQV9OQUJWPyRjb21wbGV4QE9AMEAwQFopDQorPz8kPzlPQHN0ZEBAWUFfTkFCVj8kY29tcGxleEBPQDBAMEBaDQorOyBzdGQ6Oj8kPzlPKFlBX05BQlY/JGNvbXBsZXhAT0AwQEFCT0BaKQ0KKz8/JD85T0BzdGRAQFlBX05BQlY/JGNvbXBsZXhAT0AwQEFCT0BaDQorOyBzdGQ6Oj8kP0RNKFlBP0FWPyRjb21wbGV4QE1AMEBBQk1BQlYxMEBAWikNCis/PyQ/RE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJNQUJWMTBAQFoNCis7IHN0ZDo6PyQ/RE0oWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQDBAWikNCis/PyQ/RE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAMEBaDQorOyBzdGQ6Oj8kP0RNKFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBBQk1AWikNCis/PyQ/RE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAQUJNQFoNCis7IHN0ZDo6PyQ/RE4oWUE/QVY/JGNvbXBsZXhATkAwQEFCTkFCVjEwQEBaKQ0KKz8/JD9ETkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQk5BQlYxMEBAWg0KKzsgc3RkOjo/JD9ETihZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAMEBaKQ0KKz8/JD9ETkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEAwQFoNCis7IHN0ZDo6PyQ/RE4oWUE/QVY/JGNvbXBsZXhATkAwQEFCVjEwQEFCTkBaKQ0KKz8/JD9ETkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEBBQk5AWg0KKzsgc3RkOjo/JD9ETyhZQT9BVj8kY29tcGxleEBPQDBAQUJPQUJWMTBAQFopDQorPz8kP0RPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFCT0FCVjEwQEBaDQorOyBzdGQ6Oj8kP0RPKFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEAwQFopDQorPz8kP0RPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQDBAWg0KKzsgc3RkOjo/JD9ETyhZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAQUJPQFopDQorPz8kP0RPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQEFCT0BaDQorOyBzdGQ6Oj8kP0dNKFlBP0FWPyRjb21wbGV4QE1AMEBBQk1BQlYxMEBAWikNCis/PyQ/R01Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJNQUJWMTBAQFoNCis7IHN0ZDo6PyQ/R00oWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQDBAWikNCis/PyQ/R01Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAMEBaDQorOyBzdGQ6Oj8kP0dNKFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBAWikNCis/PyQ/R01Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAQFoNCis7IHN0ZDo6PyQ/R00oWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQEFCTUBaKQ0KKz8/JD9HTUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBBQk1AWg0KKzsgc3RkOjo/JD9HTihZQT9BVj8kY29tcGxleEBOQDBAQUJOQUJWMTBAQFopDQorPz8kP0dOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCTkFCVjEwQEBaDQorOyBzdGQ6Oj8kP0dOKFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEAwQFopDQorPz8kP0dOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCVjEwQDBAWg0KKzsgc3RkOjo/JD9HTihZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQFopDQorPz8kP0dOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCVjEwQEBaDQorOyBzdGQ6Oj8kP0dOKFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEBBQk5AWikNCis/PyQ/R05Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQUJOQFoNCis7IHN0ZDo6PyQ/R08oWUE/QVY/JGNvbXBsZXhAT0AwQEFCT0FCVjEwQEBaKQ0KKz8/JD9HT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQk9BQlYxMEBAWg0KKzsgc3RkOjo/JD9HTyhZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAMEBaKQ0KKz8/JD9HT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEAwQFoNCis7IHN0ZDo6PyQ/R08oWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQEBaKQ0KKz8/JD9HT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEBAWg0KKzsgc3RkOjo/JD9HTyhZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAQUJPQFopDQorPz8kP0dPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQEFCT0BaDQorOyBEQHN0ZDo6PyQ/SERVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEFCVjEwQDBAWikNCis/PyQ/SERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBBQlYxMEAwQFoNCis7IERAc3RkOjo/JD9IRFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQUJWMTBAREBaKQ0KKz8/JD9IRFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEFCVjEwQERAWg0KKzsgREBzdGQ6Oj8kP0hEVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBBQlYxMEBQQkRAWikNCis/PyQ/SERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBBQlYxMEBQQkRAWg0KKzsgREBzdGQ6Oj8kP0hEVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBEQUJWMTBAQFopDQorPz8kP0hEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAREFCVjEwQEBaDQorOyBEQHN0ZDo6PyQ/SERVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQFBCREFCVjEwQEBaKQ0KKz8/JD9IRFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQFBCREFCVjEwQEBaDQorOyBHQHN0ZDo6PyQ/SEdVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEFCVjEwQDBAWikNCis/PyQ/SEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBBQlYxMEAwQFoNCis7IEdAc3RkOjo/JD9IR1U/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQUJWMTBAR0BaKQ0KKz8/JD9IR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEFCVjEwQEdAWg0KKzsgR0BzdGQ6Oj8kP0hHVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBBQlYxMEBQQkdAWikNCis/PyQ/SEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBBQlYxMEBQQkdAWg0KKzsgR0BzdGQ6Oj8kP0hHVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBHQUJWMTBAQFopDQorPz8kP0hHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAR0FCVjEwQEBaDQorOyBHQHN0ZDo6PyQ/SEdVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQFBCR0FCVjEwQEBaKQ0KKz8/JD9IR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQFBCR0FCVjEwQEBaDQorOyBzdGQ6Oj8kP0hNKFlBP0FWPyRjb21wbGV4QE1AMEBBQk1BQlYxMEBAWikNCis/PyQ/SE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJNQUJWMTBAQFoNCis7IHN0ZDo6PyQ/SE0oWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQDBAWikNCis/PyQ/SE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAMEBaDQorOyBzdGQ6Oj8kP0hNKFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBAWikNCis/PyQ/SE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAQFoNCis7IHN0ZDo6PyQ/SE0oWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQEFCTUBaKQ0KKz8/JD9ITUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBBQk1AWg0KKzsgc3RkOjo/JD9ITihZQT9BVj8kY29tcGxleEBOQDBAQUJOQUJWMTBAQFopDQorPz8kP0hOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCTkFCVjEwQEBaDQorOyBzdGQ6Oj8kP0hOKFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEAwQFopDQorPz8kP0hOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCVjEwQDBAWg0KKzsgc3RkOjo/JD9ITihZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQFopDQorPz8kP0hOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCVjEwQEBaDQorOyBzdGQ6Oj8kP0hOKFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEBBQk5AWikNCis/PyQ/SE5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQUJOQFoNCis7IHN0ZDo6PyQ/SE8oWUE/QVY/JGNvbXBsZXhAT0AwQEFCT0FCVjEwQEBaKQ0KKz8/JD9IT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQk9BQlYxMEBAWg0KKzsgc3RkOjo/JD9ITyhZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAMEBaKQ0KKz8/JD9IT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEAwQFoNCis7IHN0ZDo6PyQ/SE8oWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQEBaKQ0KKz8/JD9IT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEBAWg0KKzsgc3RkOjo/JD9ITyhZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAQUJPQFopDQorPz8kP0hPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQEFCT0BaDQorOyBzdGQ6Oj8kP0tNKFlBP0FWPyRjb21wbGV4QE1AMEBBQk1BQlYxMEBAWikNCis/PyQ/S01Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJNQUJWMTBAQFoNCis7IHN0ZDo6PyQ/S00oWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQDBAWikNCis/PyQ/S01Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAMEBaDQorOyBzdGQ6Oj8kP0tNKFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBBQk1AWikNCis/PyQ/S01Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAQUJNQFoNCis7IHN0ZDo6PyQ/S04oWUE/QVY/JGNvbXBsZXhATkAwQEFCTkFCVjEwQEBaKQ0KKz8/JD9LTkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQk5BQlYxMEBAWg0KKzsgc3RkOjo/JD9LTihZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAMEBaKQ0KKz8/JD9LTkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEAwQFoNCis7IHN0ZDo6PyQ/S04oWUE/QVY/JGNvbXBsZXhATkAwQEFCVjEwQEFCTkBaKQ0KKz8/JD9LTkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEBBQk5AWg0KKzsgc3RkOjo/JD9LTyhZQT9BVj8kY29tcGxleEBPQDBAQUJPQUJWMTBAQFopDQorPz8kP0tPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFCT0FCVjEwQEBaDQorOyBzdGQ6Oj8kP0tPKFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEAwQFopDQorPz8kP0tPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQDBAWg0KKzsgc3RkOjo/JD9LTyhZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAQUJPQFopDQorPz8kP0tPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQEFCT0BaDQorOyBEQHN0ZDo6PyQ/TURVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAMEBaKQ0KKz8/JD9NRFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAMEBaDQorOyBEQHN0ZDo6PyQ/TURVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEJEQFopDQorPz8kP01EVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBQQkRAWg0KKzsgREBzdGQ6Oj8kP01EVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OUEJEQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaKQ0KKz8/JD9NRFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05QQkRBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFoNCis7IEdAc3RkOjo/JD9NR1U/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEAwQFopDQorPz8kP01HVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEAwQFoNCis7IEdAc3RkOjo/JD9NR1U/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBQQkdAWikNCis/PyQ/TUdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQFBCR0BaDQorOyBHQHN0ZDo6PyQ/TUdVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05QQkdBQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFopDQorPz8kP01HVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTlBCR0FCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBAWg0KKzsgREBzdGQ6Oj8kP05EVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQDBAWikNCis/PyQ/TkRVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQDBAWg0KKzsgREBzdGQ6Oj8kP05EVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQFBCREBaKQ0KKz8/JD9ORFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEJEQFoNCis7IERAc3RkOjo/JD9ORFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTlBCREFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBAWikNCis/PyQ/TkRVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OUEJEQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaDQorOyBHQHN0ZDo6PyQ/TkdVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAMEBaKQ0KKz8/JD9OR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAMEBaDQorOyBHQHN0ZDo6PyQ/TkdVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAUEJHQFopDQorPz8kP05HVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBQQkdAWg0KKzsgR0BzdGQ6Oj8kP05HVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OUEJHQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEBaKQ0KKz8/JD9OR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05QQkdBQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFoNCis7IERAc3RkOjo/JD9PRFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEAwQFopDQorPz8kP09EVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEAwQFoNCis7IERAc3RkOjo/JD9PRFU/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBQQkRAWikNCis/PyQ/T0RVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQFBCREBaDQorOyBEQHN0ZDo6PyQ/T0RVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05QQkRBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFopDQorPz8kP09EVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTlBCREFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBAWg0KKzsgR0BzdGQ6Oj8kP09HVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQDBAWikNCis/PyQ/T0dVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQDBAWg0KKzsgR0BzdGQ6Oj8kP09HVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQFBCR0BaKQ0KKz8/JD9PR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAUEJHQFoNCis7IEdAc3RkOjo/JD9PR1U/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTlBCR0FCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBAWikNCis/PyQ/T0dVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OUEJHQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEBaDQorOyBEQHN0ZDo6PyQ/UERVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAMEBaKQ0KKz8/JD9QRFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAMEBaDQorOyBEQHN0ZDo6PyQ/UERVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEJEQFopDQorPz8kP1BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDFAQHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBQQkRAWg0KKzsgREBzdGQ6Oj8kP1BEVT8kY2hhcl90cmFpdHMoVj8kYWxsb2NhdG9yQERAMUBAc3RkQEBZQV9OUEJEQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaKQ0KKz8/JD9QRFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAxQEBzdGRAQFlBX05QQkRBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFoNCis7IEdAc3RkOjo/JD9QR1U/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEAwQFopDQorPz8kP1BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEAwQFoNCis7IEdAc3RkOjo/JD9QR1U/JGNoYXJfdHJhaXRzKFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBQQkdAWikNCis/PyQ/UEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMUBAc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQFBCR0BaDQorOyBHQHN0ZDo6PyQ/UEdVPyRjaGFyX3RyYWl0cyhWPyRhbGxvY2F0b3JAR0AxQEBzdGRAQFlBX05QQkdBQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFopDQorPz8kP1BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDFAQHN0ZEBAWUFfTlBCR0FCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBAWg0KKzsgc3RkOjo/JD9YTU0oWUFBQVY/JGNvbXBsZXhATUAwQEFBVjEwQEFCVjEwQEBaKQ0KKz8/JD9YTU1Ac3RkQEBZQUFBVj8kY29tcGxleEBNQDBAQUFWMTBAQUJWMTBAQFoNCis7IHN0ZDo6PyQ/WE5OKFlBQUFWPyRjb21wbGV4QE5AMEBBQVYxMEBBQlYxMEBAWikNCis/PyQ/WE5OQHN0ZEBAWUFBQVY/JGNvbXBsZXhATkAwQEFBVjEwQEFCVjEwQEBaDQorOyBzdGQ6Oj8kP1hPTyhZQUFBVj8kY29tcGxleEBPQDBAQUFWMTBAQUJWMTBAQFopDQorPz8kP1hPT0BzdGRAQFlBQUFWPyRjb21wbGV4QE9AMEBBQVYxMEBBQlYxMEBAWg0KKzsgc3RkOjo/JD9ZTU0oWUFBQVY/JGNvbXBsZXhATUAwQEFBVjEwQEFCVjEwQEBaKQ0KKz8/JD9ZTU1Ac3RkQEBZQUFBVj8kY29tcGxleEBNQDBAQUFWMTBAQUJWMTBAQFoNCis7IHN0ZDo6PyQ/WU5OKFlBQUFWPyRjb21wbGV4QE5AMEBBQVYxMEBBQlYxMEBAWikNCis/PyQ/WU5OQHN0ZEBAWUFBQVY/JGNvbXBsZXhATkAwQEFBVjEwQEFCVjEwQEBaDQorOyBzdGQ6Oj8kP1lPTyhZQUFBVj8kY29tcGxleEBPQDBAQUFWMTBAQUJWMTBAQFopDQorPz8kP1lPT0BzdGRAQFlBQUFWPyRjb21wbGV4QE9AMEBBQVYxMEBBQlYxMEBAWg0KKzsgc3RkOjo/JD9aTU0oWUFBQVY/JGNvbXBsZXhATUAwQEFBVjEwQEFCVjEwQEBaKQ0KKz8/JD9aTU1Ac3RkQEBZQUFBVj8kY29tcGxleEBNQDBAQUFWMTBAQUJWMTBAQFoNCis7IHN0ZDo6PyQ/Wk5OKFlBQUFWPyRjb21wbGV4QE5AMEBBQVYxMEBBQlYxMEBAWikNCis/PyQ/Wk5OQHN0ZEBAWUFBQVY/JGNvbXBsZXhATkAwQEFBVjEwQEFCVjEwQEBaDQorOyBzdGQ6Oj8kP1pPTyhZQUFBVj8kY29tcGxleEBPQDBAQUFWMTBAQUJWMTBAQFopDQorPz8kP1pPT0BzdGRAQFlBQUFWPyRjb21wbGV4QE9AMEBBQVYxMEBBQlYxMEBAWg0KKzsgc3RkOjo/JD9fME1NKFlBQUFWPyRjb21wbGV4QE1AMEBBQVYxMEBBQlYxMEBAWikNCis/PyQ/XzBNTUBzdGRAQFlBQUFWPyRjb21wbGV4QE1AMEBBQVYxMEBBQlYxMEBAWg0KKzsgc3RkOjo/JD9fME5OKFlBQUFWPyRjb21wbGV4QE5AMEBBQVYxMEBBQlYxMEBAWikNCis/PyQ/XzBOTkBzdGRAQFlBQUFWPyRjb21wbGV4QE5AMEBBQVYxMEBBQlYxMEBAWg0KKzsgc3RkOjo/JD9fME9PKFlBQUFWPyRjb21wbGV4QE9AMEBBQVYxMEBBQlYxMEBAWikNCis/PyQ/XzBPT0BzdGRAQFlBQUFWPyRjb21wbGV4QE9AMEBBQVYxMEBBQlYxMEBAWg0KKzsgTUBzdGQ6Oj8kX0ZhYnMoWUFNQUJWPyRjb21wbGV4QE1AMEBQQUhAWikNCis/PyRfRmFic0BNQHN0ZEBAWUFNQUJWPyRjb21wbGV4QE1AMEBQQUhAWg0KKzsgTkBzdGQ6Oj8kX0ZhYnMoWUFOQUJWPyRjb21wbGV4QE5AMEBQQUhAWikNCis/PyRfRmFic0BOQHN0ZEBAWUFOQUJWPyRjb21wbGV4QE5AMEBQQUhAWg0KKzsgT0BzdGQ6Oj8kX0ZhYnMoWUFPQUJWPyRjb21wbGV4QE9AMEBQQUhAWikNCis/PyRfRmFic0BPQHN0ZEBAWUFPQUJWPyRjb21wbGV4QE9AMEBQQUhAWg0KKzsgTUBzdGQ6Oj8kYWJzKFlBTUFCVj8kY29tcGxleEBNQDBAQFopDQorPz8kYWJzQE1Ac3RkQEBZQU1BQlY/JGNvbXBsZXhATUAwQEBaDQorOyBOQHN0ZDo6PyRhYnMoWUFOQUJWPyRjb21wbGV4QE5AMEBAWikNCis/PyRhYnNATkBzdGRAQFlBTkFCVj8kY29tcGxleEBOQDBAQFoNCis7IE9Ac3RkOjo/JGFicyhZQU9BQlY/JGNvbXBsZXhAT0AwQEBaKQ0KKz8/JGFic0BPQHN0ZEBAWUFPQUJWPyRjb21wbGV4QE9AMEBAWg0KKzsgTUBzdGQ6Oj8kYXJnKFlBTUFCVj8kY29tcGxleEBNQDBAQFopDQorPz8kYXJnQE1Ac3RkQEBZQU1BQlY/JGNvbXBsZXhATUAwQEBaDQorOyBOQHN0ZDo6PyRhcmcoWUFOQUJWPyRjb21wbGV4QE5AMEBAWikNCis/PyRhcmdATkBzdGRAQFlBTkFCVj8kY29tcGxleEBOQDBAQFoNCis7IE9Ac3RkOjo/JGFyZyhZQU9BQlY/JGNvbXBsZXhAT0AwQEBaKQ0KKz8/JGFyZ0BPQHN0ZEBAWUFPQUJWPyRjb21wbGV4QE9AMEBAWg0KKzsgTUBzdGQ6Oj8kY29uaihZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAQFopDQorPz8kY29uakBNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQEBaDQorOyBOQHN0ZDo6PyRjb25qKFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEBAWikNCis/PyRjb25qQE5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQFoNCis7IE9Ac3RkOjo/JGNvbmooWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQEBaKQ0KKz8/JGNvbmpAT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEBAWg0KKzsgTUBzdGQ6Oj8kY29zKFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBAWikNCis/PyRjb3NATUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBAWg0KKzsgTkBzdGQ6Oj8kY29zKFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEBAWikNCis/PyRjb3NATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEBAWg0KKzsgT0BzdGQ6Oj8kY29zKFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEBAWikNCis/PyRjb3NAT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEBAWg0KKzsgTUBzdGQ6Oj8kY29zaChZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAQFopDQorPz8kY29zaEBNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQEBaDQorOyBOQHN0ZDo6PyRjb3NoKFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEBAWikNCis/PyRjb3NoQE5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQFoNCis7IE9Ac3RkOjo/JGNvc2goWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQEBaKQ0KKz8/JGNvc2hAT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEBAWg0KKzsgTUBzdGQ6Oj8kZXhwKFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBAWikNCis/PyRleHBATUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBAWg0KKzsgTkBzdGQ6Oj8kZXhwKFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEBAWikNCis/PyRleHBATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEBAWg0KKzsgT0BzdGQ6Oj8kZXhwKFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEBAWikNCis/PyRleHBAT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEBAWg0KKzsgRFU/JGNoYXJfdHJhaXRzQERAc3RkOjo/JGdldGxpbmUoVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFBVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBAWikNCis/PyRnZXRsaW5lQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFBVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBAWg0KKzsgRFU/JGNoYXJfdHJhaXRzQERAc3RkOjo/JGdldGxpbmUoVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFBVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBEQFopDQorPz8kZ2V0bGluZUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBBQVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAREBaDQorOyBHVT8kY2hhcl90cmFpdHNAR0BzdGQ6Oj8kZ2V0bGluZShWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAQUFWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEBaKQ0KKz8/JGdldGxpbmVAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAQUFWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEBaDQorOyBHVT8kY2hhcl90cmFpdHNAR0BzdGQ6Oj8kZ2V0bGluZShWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAQUFWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEdAWikNCis/PyRnZXRsaW5lQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQEFBVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBHQFoNCis7IE1Ac3RkOjo/JGltYWcoWUFNQUJWPyRjb21wbGV4QE1AMEBAWikNCis/PyRpbWFnQE1Ac3RkQEBZQU1BQlY/JGNvbXBsZXhATUAwQEBaDQorOyBOQHN0ZDo6PyRpbWFnKFlBTkFCVj8kY29tcGxleEBOQDBAQFopDQorPz8kaW1hZ0BOQHN0ZEBAWUFOQUJWPyRjb21wbGV4QE5AMEBAWg0KKzsgT0BzdGQ6Oj8kaW1hZyhZQU9BQlY/JGNvbXBsZXhAT0AwQEBaKQ0KKz8/JGltYWdAT0BzdGRAQFlBT0FCVj8kY29tcGxleEBPQDBAQFoNCis7IE1Ac3RkOjo/JGxvZzEwKFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBAWikNCis/PyRsb2cxMEBNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQEBaDQorOyBOQHN0ZDo6PyRsb2cxMChZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQFopDQorPz8kbG9nMTBATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEBAWg0KKzsgT0BzdGQ6Oj8kbG9nMTAoWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQEBaKQ0KKz8/JGxvZzEwQE9Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAQFoNCis7IE1Ac3RkOjo/JGxvZyhZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAQFopDQorPz8kbG9nQE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAQFoNCis7IE5Ac3RkOjo/JGxvZyhZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQFopDQorPz8kbG9nQE5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQFoNCis7IE9Ac3RkOjo/JGxvZyhZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAQFopDQorPz8kbG9nQE9Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAQFoNCis7IE1Ac3RkOjo/JG5vcm0oWUFNQUJWPyRjb21wbGV4QE1AMEBAWikNCis/PyRub3JtQE1Ac3RkQEBZQU1BQlY/JGNvbXBsZXhATUAwQEBaDQorOyBOQHN0ZDo6PyRub3JtKFlBTkFCVj8kY29tcGxleEBOQDBAQFopDQorPz8kbm9ybUBOQHN0ZEBAWUFOQUJWPyRjb21wbGV4QE5AMEBAWg0KKzsgT0BzdGQ6Oj8kbm9ybShZQU9BQlY/JGNvbXBsZXhAT0AwQEBaKQ0KKz8/JG5vcm1AT0BzdGRAQFlBT0FCVj8kY29tcGxleEBPQDBAQFoNCis7IE1Ac3RkOjo/JHBvbGFyKFlBP0FWPyRjb21wbGV4QE1AMEBBQk0wQFopDQorPz8kcG9sYXJATUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQk0wQFoNCis7IE1Ac3RkOjo/JHBvbGFyKFlBP0FWPyRjb21wbGV4QE1AMEBBQk1AWikNCis/PyRwb2xhckBNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFCTUBaDQorOyBOQHN0ZDo6PyRwb2xhcihZQT9BVj8kY29tcGxleEBOQDBAQUJOMEBaKQ0KKz8/JHBvbGFyQE5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUJOMEBaDQorOyBOQHN0ZDo6PyRwb2xhcihZQT9BVj8kY29tcGxleEBOQDBAQUJOQFopDQorPz8kcG9sYXJATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQk5AWg0KKzsgT0BzdGQ6Oj8kcG9sYXIoWUE/QVY/JGNvbXBsZXhAT0AwQEFCTzBAWikNCis/PyRwb2xhckBPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFCTzBAWg0KKzsgT0BzdGQ6Oj8kcG9sYXIoWUE/QVY/JGNvbXBsZXhAT0AwQEFCT0BaKQ0KKz8/JHBvbGFyQE9Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUJPQFoNCis7IE1Ac3RkOjo/JHBvdyhZQT9BVj8kY29tcGxleEBNQDBAQUJNQUJWMTBAQFopDQorPz8kcG93QE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJNQUJWMTBAQFoNCis7IE1Ac3RkOjo/JHBvdyhZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAMEBaKQ0KKz8/JHBvd0BNQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQDBAWg0KKzsgTUBzdGQ6Oj8kcG93KFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBBQk1AWikNCis/PyRwb3dATUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBBQk1AWg0KKzsgTUBzdGQ6Oj8kcG93KFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBIQFopDQorPz8kcG93QE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBASEBaDQorOyBOQHN0ZDo6PyRwb3coWUE/QVY/JGNvbXBsZXhATkAwQEFCTkFCVjEwQEBaKQ0KKz8/JHBvd0BOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCTkFCVjEwQEBaDQorOyBOQHN0ZDo6PyRwb3coWUE/QVY/JGNvbXBsZXhATkAwQEFCVjEwQDBAWikNCis/PyRwb3dATkBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEAwQFoNCis7IE5Ac3RkOjo/JHBvdyhZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQUJOQFopDQorPz8kcG93QE5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQUJOQFoNCis7IE5Ac3RkOjo/JHBvdyhZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBASEBaKQ0KKz8/JHBvd0BOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCVjEwQEhAWg0KKzsgT0BzdGQ6Oj8kcG93KFlBP0FWPyRjb21wbGV4QE9AMEBBQk9BQlYxMEBAWikNCis/PyRwb3dAT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQk9BQlYxMEBAWg0KKzsgT0BzdGQ6Oj8kcG93KFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEAwQFopDQorPz8kcG93QE9Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAMEBaDQorOyBPQHN0ZDo6PyRwb3coWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQEFCT0BaKQ0KKz8/JHBvd0BPQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQEFCT0BaDQorOyBPQHN0ZDo6PyRwb3coWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQEhAWikNCis/PyRwb3dAT0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEBIQFoNCis7IE1Ac3RkOjo/JHJlYWwoWUFNQUJWPyRjb21wbGV4QE1AMEBAWikNCis/PyRyZWFsQE1Ac3RkQEBZQU1BQlY/JGNvbXBsZXhATUAwQEBaDQorOyBOQHN0ZDo6PyRyZWFsKFlBTkFCVj8kY29tcGxleEBOQDBAQFopDQorPz8kcmVhbEBOQHN0ZEBAWUFOQUJWPyRjb21wbGV4QE5AMEBAWg0KKzsgT0BzdGQ6Oj8kcmVhbChZQU9BQlY/JGNvbXBsZXhAT0AwQEBaKQ0KKz8/JHJlYWxAT0BzdGRAQFlBT0FCVj8kY29tcGxleEBPQDBAQFoNCis7IE1Ac3RkOjo/JHNpbihZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAQFopDQorPz8kc2luQE1Ac3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAQFoNCis7IE5Ac3RkOjo/JHNpbihZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQFopDQorPz8kc2luQE5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQFoNCis7IE9Ac3RkOjo/JHNpbihZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAQFopDQorPz8kc2luQE9Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAQFoNCis7IE1Ac3RkOjo/JHNpbmgoWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQEBaKQ0KKz8/JHNpbmhATUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBAWg0KKzsgTkBzdGQ6Oj8kc2luaChZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQFopDQorPz8kc2luaEBOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCVjEwQEBaDQorOyBPQHN0ZDo6PyRzaW5oKFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEBAWikNCis/PyRzaW5oQE9Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAQFoNCis7IE1Ac3RkOjo/JHNxcnQoWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQEBaKQ0KKz8/JHNxcnRATUBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBAWg0KKzsgTkBzdGQ6Oj8kc3FydChZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQFopDQorPz8kc3FydEBOQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCVjEwQEBaDQorOyBPQHN0ZDo6PyRzcXJ0KFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEBAWikNCis/PyRzcXJ0QE9Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+OjpfQ29tcGxleF9iYXNlPGZsb2F0PihmbG9hdCBjb25zdCAmLGZsb2F0IGNvbnN0ICYpDQorPz8wPyRfQ29tcGxleF9iYXNlQE1Ac3RkQEBRQUVAQUJNMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT46Ol9Db21wbGV4X2Jhc2U8ZG91YmxlPihkb3VibGUgY29uc3QgJixkb3VibGUgY29uc3QgJikNCis/PzA/JF9Db21wbGV4X2Jhc2VATkBzdGRAQFFBRUBBQk4wQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8bG9uZyBkb3VibGU+OjpfQ29tcGxleF9iYXNlPGxvbmcgZG91YmxlPihsb25nIGRvdWJsZSBjb25zdCAmLGxvbmcgZG91YmxlIGNvbnN0ICYpDQorPz8wPyRfQ29tcGxleF9iYXNlQE9Ac3RkQEBRQUVAQUJPMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PGNoYXI+OjpfTXB1bmN0PGNoYXI+KGNsYXNzIF9NcHVuY3Q8Y2hhcj46Ol9Mb2NpbmZvIGNvbnN0ICYsdW5zaWduZWQgaW50LGJvb2wpDQorPz8wPyRfTXB1bmN0QERAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJX05AWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDxjaGFyPjo6X01wdW5jdDxjaGFyPih1bnNpZ25lZCBpbnQsYm9vbCkNCis/PzA/JF9NcHVuY3RAREBzdGRAQFFBRUBJX05AWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+KGNsYXNzIF9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCxib29sKQ0KKz8/MD8kX01wdW5jdEBHQHN0ZEBAUUFFQEFCVl9Mb2NpbmZvQDFASV9OQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pih1bnNpZ25lZCBpbnQsYm9vbCkNCis/PzA/JF9NcHVuY3RAR0BzdGRAQFFBRUBJX05AWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KGNsYXNzIGJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KHN0cnVjdCBfaW9idWYgKikNCis/PzA/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVAUEFVX2lvYnVmQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KGVudW0gYmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Ol9VbmluaXRpYWxpemVkKQ0KKz8/MD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUBXNF9VbmluaXRpYWxpemVkQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihzdHJ1Y3QgX2lvYnVmICopDQorPz8wPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQFBBVV9pb2J1ZkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oZW51bSBiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpfVW5pbml0aWFsaXplZCkNCis/PzA/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVAVzRfVW5pbml0aWFsaXplZEAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oY2xhc3MgYmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oY2hhciBjb25zdCAqLGludCkNCis/PzA/JGJhc2ljX2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVAUEJESEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4odm9pZCkNCis/PzA/JGJhc2ljX2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihjaGFyIGNvbnN0ICosaW50KQ0KKz8/MD8kYmFzaWNfZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUBQQkRIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzA/JGJhc2ljX2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KGNsYXNzIGJhc2ljX2lmc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19pZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19pZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oY2hhciBjb25zdCAqLGludCkNCis/PzA/JGJhc2ljX2lmc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQFBCREhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19pZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4odm9pZCkNCis/PzA/JGJhc2ljX2lmc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19pZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KGNoYXIgY29uc3QgKixpbnQpDQorPz8wPyRiYXNpY19pZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUBQQkRIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPih2b2lkKQ0KKz8/MD8kYmFzaWNfaWZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVAWFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4odm9pZCkNCis/PzA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihjbGFzcyBiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oY2xhc3MgYmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqKQ0KKz8/MD8kYmFzaWNfaW9zQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQFBBVj8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KHZvaWQpDQorPz8wPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KGNsYXNzIGJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KGNsYXNzIGJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICopDQorPz8wPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVAUEFWPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oY2xhc3MgYmFzaWNfaW9zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJikNCis/PzA/JGJhc2ljX2lvc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2lvc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihjbGFzcyBiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gKikNCis/PzA/JGJhc2ljX2lvc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQFBBVj8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19pb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfaW9zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/PzA/JGJhc2ljX2lvc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfaW9zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfaW9zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqKQ0KKz8/MD8kYmFzaWNfaW9zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVAUEFWPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KGNsYXNzIGJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KGNsYXNzIGJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICosYm9vbCkNCis/PzA/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVAUEFWPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBfTkBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oZW51bSBiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6X1VuaW5pdGlhbGl6ZWQpDQorPz8wPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQFc0X1VuaW5pdGlhbGl6ZWRAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KGNsYXNzIGJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqLGJvb2wpDQorPz8wPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQFBBVj8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAX05AWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihlbnVtIGJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Ol9VbmluaXRpYWxpemVkKQ0KKz8/MD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUBXNF9VbmluaXRpYWxpemVkQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19pc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPihjbGFzcyBiYXNpY19pc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/PzA/JGJhc2ljX2lzdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGNsYXNzIGJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsaW50KQ0KKz8/MD8kYmFzaWNfaXN0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQEFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19pc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPihpbnQpDQorPz8wPyRiYXNpY19pc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfaXN0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfaXN0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19pc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLGludCkNCis/PzA/JGJhc2ljX2lzdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUBBQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDFASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfaXN0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4oaW50KQ0KKz8/MD8kYmFzaWNfaXN0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oY2xhc3MgYmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJikNCis/PzA/JGJhc2ljX29mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX29mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihjaGFyIGNvbnN0ICosaW50KQ0KKz8/MD8kYmFzaWNfb2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVAUEJESEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX29mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPih2b2lkKQ0KKz8/MD8kYmFzaWNfb2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX29mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/PzA/JGJhc2ljX29mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oY2hhciBjb25zdCAqLGludCkNCis/PzA/JGJhc2ljX29mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQFBCREhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX29mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KHZvaWQpDQorPz8wPyRiYXNpY19vZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KGNsYXNzIGJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KGNsYXNzIGJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICosYm9vbCxib29sKQ0KKz8/MD8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUBQQVY/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQF9OMUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4oZW51bSBiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6X1VuaW5pdGlhbGl6ZWQpDQorPz8wPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQFc0X1VuaW5pdGlhbGl6ZWRAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KGNsYXNzIGJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqLGJvb2wsYm9vbCkNCis/PzA/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVAUEFWPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBfTjFAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPihlbnVtIGJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Ol9VbmluaXRpYWxpemVkKQ0KKz8/MD8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUBXNF9VbmluaXRpYWxpemVkQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19vc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPihjbGFzcyBiYXNpY19vc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/PzA/JGJhc2ljX29zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX29zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGNsYXNzIGJhc2ljX29zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsaW50KQ0KKz8/MD8kYmFzaWNfb3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQEFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19vc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPihpbnQpDQorPz8wPyRiYXNpY19vc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfb3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfb3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX29zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19vc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLGludCkNCis/PzA/JGJhc2ljX29zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUBBQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDFASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfb3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4oaW50KQ0KKz8/MD8kYmFzaWNfb3N0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQEhAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPihlbnVtIGJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Ol9VbmluaXRpYWxpemVkKQ0KKz8/MD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUFFQFc0X1VuaW5pdGlhbGl6ZWRAMUBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPih2b2lkKQ0KKz8/MD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KGNsYXNzIGJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJikNCis/PzA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oZW51bSBiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Ol9VbmluaXRpYWxpemVkKQ0KKz8/MD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUFFQFc0X1VuaW5pdGlhbGl6ZWRAMUBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/PzA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPihjbGFzcyBiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPihjbGFzcyBiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxjbGFzcyBiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjphbGxvY2F0b3I8Y2hhcj4gY29uc3QgJikNCis/PzA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQEFCVjAxQElJQUJWPyRhbGxvY2F0b3JAREAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGNsYXNzIGJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmFsbG9jYXRvcjxjaGFyPiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVAQUJWPyRhbGxvY2F0b3JAREAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KHVuc2lnbmVkIGludCxjaGFyLGNsYXNzIGJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmFsbG9jYXRvcjxjaGFyPiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVASURBQlY/JGFsbG9jYXRvckBEQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4oY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixjbGFzcyBiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjphbGxvY2F0b3I8Y2hhcj4gY29uc3QgJikNCis/PzA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQFBCRDBBQlY/JGFsbG9jYXRvckBEQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4oY2hhciBjb25zdCAqLGNsYXNzIGJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmFsbG9jYXRvcjxjaGFyPiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVAUEJEQUJWPyRhbGxvY2F0b3JAREAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQsY2xhc3MgYmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YWxsb2NhdG9yPGNoYXI+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUBQQkRJQUJWPyRhbGxvY2F0b3JAREAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KGNsYXNzIGJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/PzA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KGNsYXNzIGJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGNsYXNzIGJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gY29uc3QgJikNCis/PzA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQEFCVjAxQElJQUJWPyRhbGxvY2F0b3JAR0AxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KGNsYXNzIGJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gY29uc3QgJikNCis/PzA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQEFCVj8kYWxsb2NhdG9yQEdAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPih1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQsY2xhc3MgYmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVASUdBQlY/JGFsbG9jYXRvckBHQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIGJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gY29uc3QgJikNCis/PzA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQFBCRzBBQlY/JGFsbG9jYXRvckBHQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4odW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUBQQkdBQlY/JGFsbG9jYXRvckBHQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQsY2xhc3MgYmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVAUEJHSUFCVj8kYWxsb2NhdG9yQEdAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPihjbGFzcyBiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPihjbGFzcyBiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsaW50KQ0KKz8/MD8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVAQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAxQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPihpbnQpDQorPz8wPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/MD8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4oY2xhc3MgYmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLGludCkNCis/PzA/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQEFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4oaW50KQ0KKz8/MD8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGNsYXNzIGJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/PzA/JGJhc2ljX3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGNsYXNzIGJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJixpbnQpDQorPz8wPyRiYXNpY19zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUBBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpiYXNpY19zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KGludCkNCis/PzA/JGJhc2ljX3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz8wPyRiYXNpY19zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPihjbGFzcyBiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYsaW50KQ0KKz8/MD8kYmFzaWNfc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVAQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAxQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YmFzaWNfc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPihpbnQpDQorPz8wPyRiYXNpY19zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmNvZGVjdnQ8Y2hhcixjaGFyLGludD46OmNvZGVjdnQ8Y2hhcixjaGFyLGludD4oY2xhc3MgY29kZWN2dDxjaGFyLGNoYXIsaW50Pjo6X0xvY2luZm8gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wPyRjb2RlY3Z0QERESEBzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDxjaGFyLGNoYXIsaW50Pjo6Y29kZWN2dDxjaGFyLGNoYXIsaW50Pih1bnNpZ25lZCBpbnQpDQorPz8wPyRjb2RlY3Z0QERESEBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+Ojpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50PihjbGFzcyBjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6X0xvY2luZm8gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wPyRjb2RlY3Z0QEdESEBzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD46OmNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+KHVuc2lnbmVkIGludCkNCis/PzA/JGNvZGVjdnRAR0RIQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTxjaGFyPjo6Y29sbGF0ZTxjaGFyPihjbGFzcyBjb2xsYXRlPGNoYXI+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JGNvbGxhdGVAREBzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTxjaGFyPjo6Y29sbGF0ZTxjaGFyPih1bnNpZ25lZCBpbnQpDQorPz8wPyRjb2xsYXRlQERAc3RkQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpjb2xsYXRlPHVuc2lnbmVkIHNob3J0Pjo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD4oY2xhc3MgY29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46Ol9Mb2NpbmZvIGNvbnN0ICYsdW5zaWduZWQgaW50KQ0KKz8/MD8kY29sbGF0ZUBHQHN0ZEBAUUFFQEFCVl9Mb2NpbmZvQDFASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpjb2xsYXRlPHVuc2lnbmVkIHNob3J0Pjo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD4odW5zaWduZWQgaW50KQ0KKz8/MD8kY29sbGF0ZUBHQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y29tcGxleDxmbG9hdD46OmNvbXBsZXg8ZmxvYXQ+KGZsb2F0IGNvbnN0ICYsZmxvYXQgY29uc3QgJikNCis/PzA/JGNvbXBsZXhATUBzdGRAQFFBRUBBQk0wQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmNvbXBsZXg8ZmxvYXQ+Ojpjb21wbGV4PGZsb2F0PihjbGFzcyBjb21wbGV4PGZsb2F0Pjo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorPz8wPyRjb21wbGV4QE1Ac3RkQEBRQUVAQUJWPyRjb21wbGV4QE5AMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y29tcGxleDxmbG9hdD46OmNvbXBsZXg8ZmxvYXQ+KGNsYXNzIGNvbXBsZXg8ZmxvYXQ+Ojpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz8/MD8kY29tcGxleEBNQHN0ZEBAUUFFQEFCVj8kY29tcGxleEBPQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmNvbXBsZXg8ZG91YmxlPjo6Y29tcGxleDxkb3VibGU+KGRvdWJsZSBjb25zdCAmLGRvdWJsZSBjb25zdCAmKQ0KKz8/MD8kY29tcGxleEBOQHN0ZEBAUUFFQEFCTjBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y29tcGxleDxkb3VibGU+Ojpjb21wbGV4PGRvdWJsZT4oY2xhc3MgY29tcGxleDxkb3VibGU+Ojpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz8/MD8kY29tcGxleEBOQHN0ZEBAUUFFQEFCVj8kY29tcGxleEBNQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmNvbXBsZXg8ZG91YmxlPjo6Y29tcGxleDxkb3VibGU+KGNsYXNzIGNvbXBsZXg8ZG91YmxlPjo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/PzA/JGNvbXBsZXhATkBzdGRAQFFBRUBBQlY/JGNvbXBsZXhAT0AxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPjo6Y29tcGxleDxsb25nIGRvdWJsZT4obG9uZyBkb3VibGUgY29uc3QgJixsb25nIGRvdWJsZSBjb25zdCAmKQ0KKz8/MD8kY29tcGxleEBPQHN0ZEBAUUFFQEFCTzBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT46OmNvbXBsZXg8bG9uZyBkb3VibGU+KGNsYXNzIGNvbXBsZXg8bG9uZyBkb3VibGU+Ojpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz8/MD8kY29tcGxleEBPQHN0ZEBAUUFFQEFCVj8kY29tcGxleEBNQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+Ojpjb21wbGV4PGxvbmcgZG91YmxlPihjbGFzcyBjb21wbGV4PGxvbmcgZG91YmxlPjo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorPz8wPyRjb21wbGV4QE9Ac3RkQEBRQUVAQUJWPyRjb21wbGV4QE5AMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8Y2hhcj46OmN0eXBlPGNoYXI+KGNsYXNzIGN0eXBlPGNoYXI+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JGN0eXBlQERAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmN0eXBlPGNoYXI+OjpjdHlwZTxjaGFyPihzaG9ydCBjb25zdCAqLGJvb2wsdW5zaWduZWQgaW50KQ0KKz8/MD8kY3R5cGVAREBzdGRAQFFBRUBQQkZfTklAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+OjpjdHlwZTx1bnNpZ25lZCBzaG9ydD4oY2xhc3MgY3R5cGU8dW5zaWduZWQgc2hvcnQ+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JGN0eXBlQEdAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+KHVuc2lnbmVkIGludCkNCis/PzA/JGN0eXBlQEdAc3RkQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjptZXNzYWdlczxjaGFyPjo6bWVzc2FnZXM8Y2hhcj4oY2xhc3MgbWVzc2FnZXM8Y2hhcj46Ol9Mb2NpbmZvIGNvbnN0ICYsdW5zaWduZWQgaW50KQ0KKz8/MD8kbWVzc2FnZXNAREBzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXM8Y2hhcj46Om1lc3NhZ2VzPGNoYXI+KHVuc2lnbmVkIGludCkNCis/PzA/JG1lc3NhZ2VzQERAc3RkQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjptZXNzYWdlczx1bnNpZ25lZCBzaG9ydD46Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0PihjbGFzcyBtZXNzYWdlczx1bnNpZ25lZCBzaG9ydD46Ol9Mb2NpbmZvIGNvbnN0ICYsdW5zaWduZWQgaW50KQ0KKz8/MD8kbWVzc2FnZXNAR0BzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXM8dW5zaWduZWQgc2hvcnQ+OjptZXNzYWdlczx1bnNpZ25lZCBzaG9ydD4odW5zaWduZWQgaW50KQ0KKz8/MD8kbWVzc2FnZXNAR0BzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6bW9uZXlfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KGNsYXNzIG1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0xvY2luZm8gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wPyRtb25leV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6bW9uZXlfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KHVuc2lnbmVkIGludCkNCis/PzA/JG1vbmV5X2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om1vbmV5X2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6bW9uZXlfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KGNsYXNzIG1vbmV5X2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0xvY2luZm8gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wPyRtb25leV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om1vbmV5X2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6bW9uZXlfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KHVuc2lnbmVkIGludCkNCis/PzA/JG1vbmV5X2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6bW9uZXlfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KGNsYXNzIG1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0xvY2luZm8gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wPyRtb25leV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6bW9uZXlfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KHVuc2lnbmVkIGludCkNCis/PzA/JG1vbmV5X3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om1vbmV5X3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KGNsYXNzIG1vbmV5X3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0xvY2luZm8gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wPyRtb25leV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om1vbmV5X3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KHVuc2lnbmVkIGludCkNCis/PzA/JG1vbmV5X3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwxPjo6bW9uZXlwdW5jdDxjaGFyLDE+KGNsYXNzIG1vbmV5cHVuY3Q8Y2hhciwxPjo6X0xvY2luZm8gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wPyRtb25leXB1bmN0QEQkMDBAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwxPjo6bW9uZXlwdW5jdDxjaGFyLDE+KHVuc2lnbmVkIGludCkNCis/PzA/JG1vbmV5cHVuY3RARCQwMEBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwwPjo6bW9uZXlwdW5jdDxjaGFyLDA+KGNsYXNzIG1vbmV5cHVuY3Q8Y2hhciwwPjo6X0xvY2luZm8gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wPyRtb25leXB1bmN0QEQkMEFAQHN0ZEBAUUFFQEFCVl9Mb2NpbmZvQDFASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjptb25leXB1bmN0PGNoYXIsMD46Om1vbmV5cHVuY3Q8Y2hhciwwPih1bnNpZ25lZCBpbnQpDQorPz8wPyRtb25leXB1bmN0QEQkMEFAQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwxPjo6bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwxPihjbGFzcyBtb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDE+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JG1vbmV5cHVuY3RARyQwMEBzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwxPjo6bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwxPih1bnNpZ25lZCBpbnQpDQorPz8wPyRtb25leXB1bmN0QEckMDBAc3RkQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDA+Ojptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDA+KGNsYXNzIG1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMD46Ol9Mb2NpbmZvIGNvbnN0ICYsdW5zaWduZWQgaW50KQ0KKz8/MD8kbW9uZXlwdW5jdEBHJDBBQEBzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwwPjo6bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwwPih1bnNpZ25lZCBpbnQpDQorPz8wPyRtb25leXB1bmN0QEckMEFAQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPihjbGFzcyBudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID4odW5zaWduZWQgaW50KQ0KKz8/MD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID4oY2xhc3MgbnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0xvY2luZm8gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFQEFCVl9Mb2NpbmZvQDFASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KHVuc2lnbmVkIGludCkNCis/PzA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KGNsYXNzIG51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9Mb2NpbmZvIGNvbnN0ICYsdW5zaWduZWQgaW50KQ0KKz8/MD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPih1bnNpZ25lZCBpbnQpDQorPz8wPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPihjbGFzcyBudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JG51bV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID4odW5zaWduZWQgaW50KQ0KKz8/MD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PGNoYXI+OjpudW1wdW5jdDxjaGFyPihjbGFzcyBudW1wdW5jdDxjaGFyPjo6X0xvY2luZm8gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wPyRudW1wdW5jdEBEQHN0ZEBAUUFFQEFCVl9Mb2NpbmZvQDFASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpudW1wdW5jdDxjaGFyPjo6bnVtcHVuY3Q8Y2hhcj4odW5zaWduZWQgaW50KQ0KKz8/MD8kbnVtcHVuY3RAREBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+KGNsYXNzIG51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6X0xvY2luZm8gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wPyRudW1wdW5jdEBHQHN0ZEBAUUFFQEFCVl9Mb2NpbmZvQDFASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD46Om51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pih1bnNpZ25lZCBpbnQpDQorPz8wPyRudW1wdW5jdEBHQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KGNsYXNzIHRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFQEFCVl9Mb2NpbmZvQDFASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID4odW5zaWduZWQgaW50KQ0KKz8/MD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID4oY2xhc3MgdGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9Mb2NpbmZvIGNvbnN0ICYsdW5zaWduZWQgaW50KQ0KKz8/MD8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQUVAQUJWX0xvY2luZm9AMUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPih1bnNpZ25lZCBpbnQpDQorPz8wPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OnRpbWVfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojp0aW1lX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPihjbGFzcyB0aW1lX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0xvY2luZm8gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wPyR0aW1lX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFBRUBBQlZfTG9jaW5mb0AxQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6dGltZV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OnRpbWVfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KHVuc2lnbmVkIGludCkNCis/PzA/JHRpbWVfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6dGltZV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OnRpbWVfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KGNsYXNzIHRpbWVfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfTG9jaW5mbyBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzA/JHRpbWVfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFQEFCVl9Mb2NpbmZvQDFASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjp0aW1lX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6dGltZV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID4odW5zaWduZWQgaW50KQ0KKz8/MD8kdGltZV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6SW5pdDo6SW5pdCh2b2lkKQ0KKz8/MEluaXRAaW9zX2Jhc2VAc3RkQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Ol9Mb2NpbmZvOjpfTG9jaW5mbyhjbGFzcyBfTG9jaW5mbzo6X0xvY2luZm8gY29uc3QgJikNCis/PzBfTG9jaW5mb0BzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6X0xvY2luZm86Ol9Mb2NpbmZvKGludCxjaGFyIGNvbnN0ICopDQorPz8wX0xvY2luZm9Ac3RkQEBRQUVASFBCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpfTG9jaW5mbzo6X0xvY2luZm8oY2hhciBjb25zdCAqKQ0KKz8/MF9Mb2NpbmZvQHN0ZEBAUUFFQFBCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpfTG9ja2l0OjpfTG9ja2l0KHZvaWQpDQorPz8wX0xvY2tpdEBzdGRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6X1RpbWV2ZWM6Ol9UaW1ldmVjKGNsYXNzIF9UaW1ldmVjOjpfVGltZXZlYyBjb25zdCAmKQ0KKz8/MF9UaW1ldmVjQHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpfVGltZXZlYzo6X1RpbWV2ZWModm9pZCAqKQ0KKz8/MF9UaW1ldmVjQHN0ZEBAUUFFQFBBWEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpfV2luaXQ6Ol9XaW5pdCh2b2lkKQ0KKz8/MF9XaW5pdEBzdGRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6X19ub25fcnR0aV9vYmplY3Q6Ol9fbm9uX3J0dGlfb2JqZWN0KGNsYXNzIF9fbm9uX3J0dGlfb2JqZWN0OjpfX25vbl9ydHRpX29iamVjdCBjb25zdCAmKQ0KKz8/MF9fbm9uX3J0dGlfb2JqZWN0QHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpfX25vbl9ydHRpX29iamVjdDo6X19ub25fcnR0aV9vYmplY3QoY2hhciBjb25zdCAqKQ0KKz8/MF9fbm9uX3J0dGlfb2JqZWN0QHN0ZEBAUUFFQFBCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYWRfYWxsb2M6OmJhZF9hbGxvYyhjbGFzcyBiYWRfYWxsb2M6OmJhZF9hbGxvYyBjb25zdCAmKQ0KKz8/MGJhZF9hbGxvY0BzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFkX2FsbG9jOjpiYWRfYWxsb2MoY2hhciBjb25zdCAqKQ0KKz8/MGJhZF9hbGxvY0BzdGRAQFFBRUBQQkRAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6YmFkX2Nhc3Q6OmJhZF9jYXN0KGNsYXNzIGJhZF9jYXN0OjpiYWRfY2FzdCBjb25zdCAmKQ0KKz8/MGJhZF9jYXN0QHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYWRfY2FzdDo6YmFkX2Nhc3QoY2hhciBjb25zdCAqKQ0KKz8/MGJhZF9jYXN0QHN0ZEBAUUFFQFBCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYWRfZXhjZXB0aW9uOjpiYWRfZXhjZXB0aW9uKGNsYXNzIGJhZF9leGNlcHRpb246OmJhZF9leGNlcHRpb24gY29uc3QgJikNCis/PzBiYWRfZXhjZXB0aW9uQHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYWRfZXhjZXB0aW9uOjpiYWRfZXhjZXB0aW9uKGNoYXIgY29uc3QgKikNCis/PzBiYWRfZXhjZXB0aW9uQHN0ZEBAUUFFQFBCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYWRfdHlwZWlkOjpiYWRfdHlwZWlkKGNsYXNzIGJhZF90eXBlaWQ6OmJhZF90eXBlaWQgY29uc3QgJikNCis/PzBiYWRfdHlwZWlkQHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYWRfdHlwZWlkOjpiYWRfdHlwZWlkKGNoYXIgY29uc3QgKikNCis/PzBiYWRfdHlwZWlkQHN0ZEBAUUFFQFBCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0X2Jhc2U6OmNvZGVjdnRfYmFzZSh1bnNpZ25lZCBpbnQpDQorPz8wY29kZWN2dF9iYXNlQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGVfYmFzZTo6Y3R5cGVfYmFzZSh1bnNpZ25lZCBpbnQpDQorPz8wY3R5cGVfYmFzZUBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmRvbWFpbl9lcnJvcjo6ZG9tYWluX2Vycm9yKGNsYXNzIGRvbWFpbl9lcnJvcjo6ZG9tYWluX2Vycm9yIGNvbnN0ICYpDQorPz8wZG9tYWluX2Vycm9yQHN0ZEBAUUFFQEFCVjAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpkb21haW5fZXJyb3I6OmRvbWFpbl9lcnJvcihjbGFzcyBkb21haW5fZXJyb3I6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/PzBkb21haW5fZXJyb3JAc3RkQEBRQUVAQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAxQEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgc3RkOjpsb2NhbGU6OmZhY2V0OjpmYWNldCh1bnNpZ25lZCBpbnQpDQorPz8wZmFjZXRAbG9jYWxlQHN0ZEBASUFFQElAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6Omlvc19iYXNlKHZvaWQpDQorPz8waW9zX2Jhc2VAc3RkQEBJQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjppb3NfYmFzZShjbGFzcyBpb3NfYmFzZTo6aW9zX2Jhc2UgY29uc3QgJikNCis/PzBpb3NfYmFzZUBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bGVuZ3RoX2Vycm9yOjpsZW5ndGhfZXJyb3IoY2xhc3MgbGVuZ3RoX2Vycm9yOjpsZW5ndGhfZXJyb3IgY29uc3QgJikNCis/PzBsZW5ndGhfZXJyb3JAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Omxlbmd0aF9lcnJvcjo6bGVuZ3RoX2Vycm9yKGNsYXNzIGxlbmd0aF9lcnJvcjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/MGxlbmd0aF9lcnJvckBzdGRAQFFBRUBBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFAQFoNCis7IHByaXZhdGU6IF9fdGhpc2NhbGwgc3RkOjpsb2NhbGU6OmxvY2FsZShjbGFzcyBsb2NhbGU6OmxvY2FsZTo6X0xvY2ltcCAqKQ0KKz8/MGxvY2FsZUBzdGRAQEFBRUBQQVZfTG9jaW1wQDAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpsb2NhbGU6OmxvY2FsZShjbGFzcyBsb2NhbGU6OmxvY2FsZSBjb25zdCAmLGNsYXNzIGxvY2FsZTo6bG9jYWxlIGNvbnN0ICYsaW50KQ0KKz8/MGxvY2FsZUBzdGRAQFFBRUBBQlYwMUAwSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpsb2NhbGU6OmxvY2FsZShjbGFzcyBsb2NhbGU6OmxvY2FsZSBjb25zdCAmKQ0KKz8/MGxvY2FsZUBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bG9jYWxlOjpsb2NhbGUoY2xhc3MgbG9jYWxlOjpsb2NhbGUgY29uc3QgJixjaGFyIGNvbnN0ICosaW50KQ0KKz8/MGxvY2FsZUBzdGRAQFFBRUBBQlYwMUBQQkRIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmxvY2FsZTo6bG9jYWxlKGNoYXIgY29uc3QgKixpbnQpDQorPz8wbG9jYWxlQHN0ZEBAUUFFQFBCREhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bG9jYWxlOjpsb2NhbGUoZW51bSBsb2NhbGU6Ol9VbmluaXRpYWxpemVkKQ0KKz8/MGxvY2FsZUBzdGRAQFFBRUBXNF9VbmluaXRpYWxpemVkQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmxvY2FsZTo6bG9jYWxlKHZvaWQpDQorPz8wbG9jYWxlQHN0ZEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpsb2dpY19lcnJvcjo6bG9naWNfZXJyb3IoY2xhc3MgbG9naWNfZXJyb3I6OmxvZ2ljX2Vycm9yIGNvbnN0ICYpDQorPz8wbG9naWNfZXJyb3JAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmxvZ2ljX2Vycm9yOjpsb2dpY19lcnJvcihjbGFzcyBsb2dpY19lcnJvcjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/MGxvZ2ljX2Vycm9yQHN0ZEBAUUFFQEFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXNfYmFzZTo6bWVzc2FnZXNfYmFzZSh1bnNpZ25lZCBpbnQpDQorPz8wbWVzc2FnZXNfYmFzZUBzdGRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om1vbmV5X2Jhc2U6Om1vbmV5X2Jhc2UodW5zaWduZWQgaW50KQ0KKz8/MG1vbmV5X2Jhc2VAc3RkQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpvc3Ryc3RyZWFtOjpvc3Ryc3RyZWFtKGNoYXIgKixpbnQsaW50KQ0KKz8/MG9zdHJzdHJlYW1Ac3RkQEBRQUVAUEFESEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6b3V0X29mX3JhbmdlOjpvdXRfb2ZfcmFuZ2UoY2xhc3Mgb3V0X29mX3JhbmdlOjpvdXRfb2ZfcmFuZ2UgY29uc3QgJikNCis/PzBvdXRfb2ZfcmFuZ2VAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om91dF9vZl9yYW5nZTo6b3V0X29mX3JhbmdlKGNsYXNzIG91dF9vZl9yYW5nZTo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/MG91dF9vZl9yYW5nZUBzdGRAQFFBRUBBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Om92ZXJmbG93X2Vycm9yOjpvdmVyZmxvd19lcnJvcihjbGFzcyBvdmVyZmxvd19lcnJvcjo6b3ZlcmZsb3dfZXJyb3IgY29uc3QgJikNCis/PzBvdmVyZmxvd19lcnJvckBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6b3ZlcmZsb3dfZXJyb3I6Om92ZXJmbG93X2Vycm9yKGNsYXNzIG92ZXJmbG93X2Vycm9yOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz8wb3ZlcmZsb3dfZXJyb3JAc3RkQEBRQUVAQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAxQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpyYW5nZV9lcnJvcjo6cmFuZ2VfZXJyb3IoY2xhc3MgcmFuZ2VfZXJyb3I6OnJhbmdlX2Vycm9yIGNvbnN0ICYpDQorPz8wcmFuZ2VfZXJyb3JAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OnJhbmdlX2Vycm9yOjpyYW5nZV9lcnJvcihjbGFzcyByYW5nZV9lcnJvcjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/MHJhbmdlX2Vycm9yQHN0ZEBAUUFFQEFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6cnVudGltZV9lcnJvcjo6cnVudGltZV9lcnJvcihjbGFzcyBydW50aW1lX2Vycm9yOjpydW50aW1lX2Vycm9yIGNvbnN0ICYpDQorPz8wcnVudGltZV9lcnJvckBzdGRAQFFBRUBBQlYwMUBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6cnVudGltZV9lcnJvcjo6cnVudGltZV9lcnJvcihjbGFzcyBydW50aW1lX2Vycm9yOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz8wcnVudGltZV9lcnJvckBzdGRAQFFBRUBBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OnN0cnN0cmVhbTo6c3Ryc3RyZWFtKGNoYXIgKixpbnQsaW50KQ0KKz8/MHN0cnN0cmVhbUBzdGRAQFFBRUBQQURISEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjp0aW1lX2Jhc2U6OnRpbWVfYmFzZSh1bnNpZ25lZCBpbnQpDQorPz8wdGltZV9iYXNlQHN0ZEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6dW5kZXJmbG93X2Vycm9yOjp1bmRlcmZsb3dfZXJyb3IoY2xhc3MgdW5kZXJmbG93X2Vycm9yOjp1bmRlcmZsb3dfZXJyb3IgY29uc3QgJikNCis/PzB1bmRlcmZsb3dfZXJyb3JAc3RkQEBRQUVAQUJWMDFAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OnVuZGVyZmxvd19lcnJvcjo6dW5kZXJmbG93X2Vycm9yKGNsYXNzIHVuZGVyZmxvd19lcnJvcjo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/MHVuZGVyZmxvd19lcnJvckBzdGRAQFFBRUBBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDFAQFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDxjaGFyPjo6fl9NcHVuY3Q8Y2hhcj4odm9pZCkNCis/PzE/JF9NcHVuY3RAREBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6fl9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+KHZvaWQpDQorPz8xPyRfTXB1bmN0QEdAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46On5iYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp+YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6fmJhc2ljX2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+KHZvaWQpDQorPz8xPyRiYXNpY19mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46On5iYXNpY19mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+KHZvaWQpDQorPz8xPyRiYXNpY19mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6fmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfaWZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46On5iYXNpY19pZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfaWZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6fmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4odm9pZCkNCis/PzE/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46On5iYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzE/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46On5iYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4odm9pZCkNCis/PzE/JGJhc2ljX2lvc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp+YmFzaWNfaW9zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzE/JGJhc2ljX2lvc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp+YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4odm9pZCkNCis/PzE/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6fmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzE/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46On5iYXNpY19pc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfaXN0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojp+YmFzaWNfaXN0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzE/JGJhc2ljX2lzdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46On5iYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4odm9pZCkNCis/PzE/JGJhc2ljX29mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp+YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzE/JGJhc2ljX29mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp+YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4odm9pZCkNCis/PzE/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6fmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzE/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46On5iYXNpY19vc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfb3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojp+YmFzaWNfb3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzE/JGJhc2ljX29zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp+YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6fmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojp+YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46On5iYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+KHZvaWQpDQorPz8xPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojp+YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6fmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4odm9pZCkNCis/PzE/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46On5iYXNpY19zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+KHZvaWQpDQorPz8xPyRiYXNpY19zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojp+YmFzaWNfc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPih2b2lkKQ0KKz8/MT8kYmFzaWNfc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDxjaGFyLGNoYXIsaW50Pjo6fmNvZGVjdnQ8Y2hhcixjaGFyLGludD4odm9pZCkNCis/PzE/JGNvZGVjdnRARERIQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+Ojp+Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD4odm9pZCkNCis/PzE/JGNvZGVjdnRAR0RIQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmNvbGxhdGU8Y2hhcj46On5jb2xsYXRlPGNoYXI+KHZvaWQpDQorPz8xPyRjb2xsYXRlQERAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46On5jb2xsYXRlPHVuc2lnbmVkIHNob3J0Pih2b2lkKQ0KKz8/MT8kY29sbGF0ZUBHQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmN0eXBlPGNoYXI+Ojp+Y3R5cGU8Y2hhcj4odm9pZCkNCis/PzE/JGN0eXBlQERAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+Ojp+Y3R5cGU8dW5zaWduZWQgc2hvcnQ+KHZvaWQpDQorPz8xPyRjdHlwZUBHQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzPGNoYXI+Ojp+bWVzc2FnZXM8Y2hhcj4odm9pZCkNCis/PzE/JG1lc3NhZ2VzQERAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXM8dW5zaWduZWQgc2hvcnQ+Ojp+bWVzc2FnZXM8dW5zaWduZWQgc2hvcnQ+KHZvaWQpDQorPz8xPyRtZXNzYWdlc0BHQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6fm1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPih2b2lkKQ0KKz8/MT8kbW9uZXlfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om1vbmV5X2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6fm1vbmV5X2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPih2b2lkKQ0KKz8/MT8kbW9uZXlfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6fm1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPih2b2lkKQ0KKz8/MT8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om1vbmV5X3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6fm1vbmV5X3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPih2b2lkKQ0KKz8/MT8kbW9uZXlfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwxPjo6fm1vbmV5cHVuY3Q8Y2hhciwxPih2b2lkKQ0KKz8/MT8kbW9uZXlwdW5jdEBEJDAwQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwwPjo6fm1vbmV5cHVuY3Q8Y2hhciwwPih2b2lkKQ0KKz8/MT8kbW9uZXlwdW5jdEBEJDBBQEBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDE+Ojp+bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwxPih2b2lkKQ0KKz8/MT8kbW9uZXlwdW5jdEBHJDAwQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMD46On5tb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDA+KHZvaWQpDQorPz8xPyRtb25leXB1bmN0QEckMEFAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46On5udW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KHZvaWQpDQorPz8xPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46On5udW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KHZvaWQpDQorPz8xPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46On5udW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+KHZvaWQpDQorPz8xPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46On5udW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+KHZvaWQpDQorPz8xPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PGNoYXI+Ojp+bnVtcHVuY3Q8Y2hhcj4odm9pZCkNCis/PzE/JG51bXB1bmN0QERAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojp+bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+KHZvaWQpDQorPz8xPyRudW1wdW5jdEBHQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojp+dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID4odm9pZCkNCis/PzE/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojp+dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID4odm9pZCkNCis/PzE/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OnRpbWVfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojp+dGltZV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID4odm9pZCkNCis/PzE/JHRpbWVfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OnRpbWVfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojp+dGltZV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID4odm9pZCkNCis/PzE/JHRpbWVfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6SW5pdDo6fkluaXQodm9pZCkNCis/PzFJbml0QGlvc19iYXNlQHN0ZEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpfTG9jaW5mbzo6fl9Mb2NpbmZvKHZvaWQpDQorPz8xX0xvY2luZm9Ac3RkQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6Ol9Mb2NraXQ6On5fTG9ja2l0KHZvaWQpDQorPz8xX0xvY2tpdEBzdGRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6X1RpbWV2ZWM6On5fVGltZXZlYyh2b2lkKQ0KKz8/MV9UaW1ldmVjQHN0ZEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjpfV2luaXQ6On5fV2luaXQodm9pZCkNCis/PzFfV2luaXRAc3RkQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6X19ub25fcnR0aV9vYmplY3Q6On5fX25vbl9ydHRpX29iamVjdCh2b2lkKQ0KKz8/MV9fbm9uX3J0dGlfb2JqZWN0QHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhZF9hbGxvYzo6fmJhZF9hbGxvYyh2b2lkKQ0KKz8/MWJhZF9hbGxvY0BzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpiYWRfY2FzdDo6fmJhZF9jYXN0KHZvaWQpDQorPz8xYmFkX2Nhc3RAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6YmFkX2V4Y2VwdGlvbjo6fmJhZF9leGNlcHRpb24odm9pZCkNCis/PzFiYWRfZXhjZXB0aW9uQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmJhZF90eXBlaWQ6On5iYWRfdHlwZWlkKHZvaWQpDQorPz8xYmFkX3R5cGVpZEBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0X2Jhc2U6On5jb2RlY3Z0X2Jhc2Uodm9pZCkNCis/PzFjb2RlY3Z0X2Jhc2VAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGVfYmFzZTo6fmN0eXBlX2Jhc2Uodm9pZCkNCis/PzFjdHlwZV9iYXNlQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmRvbWFpbl9lcnJvcjo6fmRvbWFpbl9lcnJvcih2b2lkKQ0KKz8/MWRvbWFpbl9lcnJvckBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpsb2NhbGU6OmZhY2V0Ojp+ZmFjZXQodm9pZCkNCis/PzFmYWNldEBsb2NhbGVAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6On5pb3NfYmFzZSh2b2lkKQ0KKz8/MWlvc19iYXNlQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OmlzdHJzdHJlYW06On5pc3Ryc3RyZWFtKHZvaWQpDQorPz8xaXN0cnN0cmVhbUBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpsZW5ndGhfZXJyb3I6On5sZW5ndGhfZXJyb3Iodm9pZCkNCis/PzFsZW5ndGhfZXJyb3JAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGQ6OmxvY2FsZTo6fmxvY2FsZSh2b2lkKQ0KKz8/MWxvY2FsZUBzdGRAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpsb2dpY19lcnJvcjo6fmxvZ2ljX2Vycm9yKHZvaWQpDQorPz8xbG9naWNfZXJyb3JAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXNfYmFzZTo6fm1lc3NhZ2VzX2Jhc2Uodm9pZCkNCis/PzFtZXNzYWdlc19iYXNlQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om1vbmV5X2Jhc2U6On5tb25leV9iYXNlKHZvaWQpDQorPz8xbW9uZXlfYmFzZUBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpvc3Ryc3RyZWFtOjp+b3N0cnN0cmVhbSh2b2lkKQ0KKz8/MW9zdHJzdHJlYW1Ac3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6b3V0X29mX3JhbmdlOjp+b3V0X29mX3JhbmdlKHZvaWQpDQorPz8xb3V0X29mX3JhbmdlQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6Om92ZXJmbG93X2Vycm9yOjp+b3ZlcmZsb3dfZXJyb3Iodm9pZCkNCis/PzFvdmVyZmxvd19lcnJvckBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpyYW5nZV9lcnJvcjo6fnJhbmdlX2Vycm9yKHZvaWQpDQorPz8xcmFuZ2VfZXJyb3JAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6cnVudGltZV9lcnJvcjo6fnJ1bnRpbWVfZXJyb3Iodm9pZCkNCis/PzFydW50aW1lX2Vycm9yQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OnN0cnN0cmVhbTo6fnN0cnN0cmVhbSh2b2lkKQ0KKz8/MXN0cnN0cmVhbUBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkOjpzdHJzdHJlYW1idWY6On5zdHJzdHJlYW1idWYodm9pZCkNCis/PzFzdHJzdHJlYW1idWZAc3RkQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZDo6dGltZV9iYXNlOjp+dGltZV9iYXNlKHZvaWQpDQorPz8xdGltZV9iYXNlQHN0ZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGQ6OnVuZGVyZmxvd19lcnJvcjo6fnVuZGVyZmxvd19lcnJvcih2b2lkKQ0KKz8/MXVuZGVyZmxvd19lcnJvckBzdGRAQFVBRUBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+ICYgX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpfQ29tcGxleF9iYXNlPGZsb2F0PiBjb25zdCAmKQ0KKz8/ND8kX0NvbXBsZXhfYmFzZUBNQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT4gJiBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxkb3VibGU+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT4gY29uc3QgJikNCis/PzQ/JF9Db21wbGV4X2Jhc2VATkBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT4gJiBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Ol9Db21wbGV4X2Jhc2U8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorPz80PyRfQ29tcGxleF9iYXNlQE9Ac3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9DdHI8ZmxvYXQ+ICYgX190aGlzY2FsbCBzdGQ6Ol9DdHI8ZmxvYXQ+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpfQ3RyPGZsb2F0PiBjb25zdCAmKQ0KKz8/ND8kX0N0ckBNQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfQ3RyPGRvdWJsZT4gJiBfX3RoaXNjYWxsIHN0ZDo6X0N0cjxkb3VibGU+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpfQ3RyPGRvdWJsZT4gY29uc3QgJikNCis/PzQ/JF9DdHJATkBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT4gJiBfX3RoaXNjYWxsIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorPz80PyRfQ3RyQE9Ac3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmFsbG9jYXRvcjx2b2lkPiAmIF9fdGhpc2NhbGwgc3RkOjphbGxvY2F0b3I8dm9pZD46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmFsbG9jYXRvcjx2b2lkPiBjb25zdCAmKQ0KKz8/ND8kYWxsb2NhdG9yQFhAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/ND8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz80PyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJikNCis/PzQ/JGJhc2ljX2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/ND8kYmFzaWNfZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+IGNvbnN0ICYpDQorPz80PyRiYXNpY19pZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz80PyRiYXNpY19pZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+IGNvbnN0ICYpDQorPz80PyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/ND8kYmFzaWNfaW9zQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJikNCis/PzQ/JGJhc2ljX2lvc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfaW9zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/PzQ/JGJhc2ljX2lvc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJikNCis/PzQ/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/ND8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz80PyRiYXNpY19pc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/ND8kYmFzaWNfaXN0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJikNCis/PzQ/JGJhc2ljX29mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/PzQ/JGJhc2ljX29mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJikNCis/PzQ/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/ND8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz80PyRiYXNpY19vc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/ND8kYmFzaWNfb3N0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gY29uc3QgJikNCis/PzQ/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz80PyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/ND8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6b3BlcmF0b3I9KGNoYXIpDQorPz80PyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjAxQERAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6b3BlcmF0b3I9KGNoYXIgY29uc3QgKikNCis/PzQ/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMDFAUEJEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/PzQ/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPSh1bnNpZ25lZCBzaG9ydCkNCis/PzQ/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMDFAR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzQ/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMDFAUEJHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/PzQ/JGJhc2ljX3N0cmluZ2J1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmdidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/PzQ/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/PzQ/JGJhc2ljX3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/PzQ/JGJhc2ljX3N0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gJiBfX3RoaXNjYWxsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj46Om9wZXJhdG9yPShzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiBjb25zdCAmKQ0KKz8/ND8kY2hhcl90cmFpdHNAREBzdGRAQFFBRUFBVTAxQEFCVTAxQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiAmIF9fdGhpc2NhbGwgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD46Om9wZXJhdG9yPShzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gY29uc3QgJikNCis/PzQ/JGNoYXJfdHJhaXRzQEdAc3RkQEBRQUVBQVUwMUBBQlUwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICYgX190aGlzY2FsbCBzdGQ6OmNvbXBsZXg8ZmxvYXQ+OjpvcGVyYXRvcj0oZmxvYXQgY29uc3QgJikNCis/PzQ/JGNvbXBsZXhATUBzdGRAQFFBRUFBVjAxQEFCTUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gJiBfX3RoaXNjYWxsIHN0ZDo6Y29tcGxleDxmbG9hdD46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorPz80PyRjb21wbGV4QE1Ac3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAmIF9fdGhpc2NhbGwgc3RkOjpjb21wbGV4PGRvdWJsZT46Om9wZXJhdG9yPShkb3VibGUgY29uc3QgJikNCis/PzQ/JGNvbXBsZXhATkBzdGRAQFFBRUFBVjAxQEFCTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICYgX190aGlzY2FsbCBzdGQ6OmNvbXBsZXg8ZG91YmxlPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorPz80PyRjb21wbGV4QE5Ac3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICYgX190aGlzY2FsbCBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+OjpvcGVyYXRvcj0obG9uZyBkb3VibGUgY29uc3QgJikNCis/PzQ/JGNvbXBsZXhAT0BzdGRAQFFBRUFBVjAxQEFCT0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gJiBfX3RoaXNjYWxsIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT46Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorPz80PyRjb21wbGV4QE9Ac3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPHNpZ25lZCBjaGFyPiAmIF9fdGhpc2NhbGwgc3RkOjpudW1lcmljX2xpbWl0czxzaWduZWQgY2hhcj46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPHNpZ25lZCBjaGFyPiBjb25zdCAmKQ0KKz8/ND8kbnVtZXJpY19saW1pdHNAQ0BzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hhcj4gJiBfX3RoaXNjYWxsIHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hhcj46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPGNoYXI+IGNvbnN0ICYpDQorPz80PyRudW1lcmljX2xpbWl0c0BEQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBjaGFyPiAmIF9fdGhpc2NhbGwgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBjaGFyPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgY2hhcj4gY29uc3QgJikNCis/PzQ/JG51bWVyaWNfbGltaXRzQEVAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPHNob3J0PiAmIF9fdGhpc2NhbGwgc3RkOjpudW1lcmljX2xpbWl0czxzaG9ydD46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPHNob3J0PiBjb25zdCAmKQ0KKz8/ND8kbnVtZXJpY19saW1pdHNARkBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgc2hvcnQ+ICYgX190aGlzY2FsbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIHNob3J0Pjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgc2hvcnQ+IGNvbnN0ICYpDQorPz80PyRudW1lcmljX2xpbWl0c0BHQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+ICYgX190aGlzY2FsbCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPGludD4gY29uc3QgJikNCis/PzQ/JG51bWVyaWNfbGltaXRzQEhAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGludD4gJiBfX3RoaXNjYWxsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgaW50Pjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgaW50PiBjb25zdCAmKQ0KKz8/ND8kbnVtZXJpY19saW1pdHNASUBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZz4gJiBfX3RoaXNjYWxsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZz46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmc+IGNvbnN0ICYpDQorPz80PyRudW1lcmljX2xpbWl0c0BKQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBsb25nPiAmIF9fdGhpc2NhbGwgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBsb25nPjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgbG9uZz4gY29uc3QgJikNCis/PzQ/JG51bWVyaWNfbGltaXRzQEtAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0PiAmIF9fdGhpc2NhbGwgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46Om9wZXJhdG9yPShjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0PiBjb25zdCAmKQ0KKz8/ND8kbnVtZXJpY19saW1pdHNATUBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPiAmIF9fdGhpc2NhbGwgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+IGNvbnN0ICYpDQorPz80PyRudW1lcmljX2xpbWl0c0BOQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGRvdWJsZT4gJiBfX3RoaXNjYWxsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBkb3VibGU+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/PzQ/JG51bWVyaWNfbGltaXRzQE9Ac3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om51bWVyaWNfbGltaXRzPGJvb2w+ICYgX190aGlzY2FsbCBzdGQ6Om51bWVyaWNfbGltaXRzPGJvb2w+OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpudW1lcmljX2xpbWl0czxib29sPiBjb25zdCAmKQ0KKz8/ND8kbnVtZXJpY19saW1pdHNAX05Ac3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omlvc19iYXNlOjpJbml0ICYgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpJbml0OjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjppb3NfYmFzZTo6SW5pdCBjb25zdCAmKQ0KKz8/NEluaXRAaW9zX2Jhc2VAc3RkQEBRQUVBQVYwMTJAQUJWMDEyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0xvY2luZm8gJiBfX3RoaXNjYWxsIHN0ZDo6X0xvY2luZm86Om9wZXJhdG9yPShjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYpDQorPz80X0xvY2luZm9Ac3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9Mb2NraXQgJiBfX3RoaXNjYWxsIHN0ZDo6X0xvY2tpdDo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6X0xvY2tpdCBjb25zdCAmKQ0KKz8/NF9Mb2NraXRAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBzdHJ1Y3Qgc3RkOjpfTnVtX2Jhc2UgJiBfX3RoaXNjYWxsIHN0ZDo6X051bV9iYXNlOjpvcGVyYXRvcj0oc3RydWN0IHN0ZDo6X051bV9iYXNlIGNvbnN0ICYpDQorPz80X051bV9iYXNlQHN0ZEBAUUFFQUFVMDFAQUJVMDFAQFoNCis7IHB1YmxpYzogc3RydWN0IHN0ZDo6X051bV9mbG9hdF9iYXNlICYgX190aGlzY2FsbCBzdGQ6Ol9OdW1fZmxvYXRfYmFzZTo6b3BlcmF0b3I9KHN0cnVjdCBzdGQ6Ol9OdW1fZmxvYXRfYmFzZSBjb25zdCAmKQ0KKz8/NF9OdW1fZmxvYXRfYmFzZUBzdGRAQFFBRUFBVTAxQEFCVTAxQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBzdGQ6Ol9OdW1faW50X2Jhc2UgJiBfX3RoaXNjYWxsIHN0ZDo6X051bV9pbnRfYmFzZTo6b3BlcmF0b3I9KHN0cnVjdCBzdGQ6Ol9OdW1faW50X2Jhc2UgY29uc3QgJikNCis/PzRfTnVtX2ludF9iYXNlQHN0ZEBAUUFFQUFVMDFAQUJVMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfVGltZXZlYyAmIF9fdGhpc2NhbGwgc3RkOjpfVGltZXZlYzo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6X1RpbWV2ZWMgY29uc3QgJikNCis/PzRfVGltZXZlY0BzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X1dpbml0ICYgX190aGlzY2FsbCBzdGQ6Ol9XaW5pdDo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6X1dpbml0IGNvbnN0ICYpDQorPz80X1dpbml0QHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfX25vbl9ydHRpX29iamVjdCAmIF9fdGhpc2NhbGwgc3RkOjpfX25vbl9ydHRpX29iamVjdDo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6X19ub25fcnR0aV9vYmplY3QgY29uc3QgJikNCis/PzRfX25vbl9ydHRpX29iamVjdEBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFkX2FsbG9jICYgX190aGlzY2FsbCBzdGQ6OmJhZF9hbGxvYzo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFkX2FsbG9jIGNvbnN0ICYpDQorPz80YmFkX2FsbG9jQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYWRfY2FzdCAmIF9fdGhpc2NhbGwgc3RkOjpiYWRfY2FzdDo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6YmFkX2Nhc3QgY29uc3QgJikNCis/PzRiYWRfY2FzdEBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFkX2V4Y2VwdGlvbiAmIF9fdGhpc2NhbGwgc3RkOjpiYWRfZXhjZXB0aW9uOjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYWRfZXhjZXB0aW9uIGNvbnN0ICYpDQorPz80YmFkX2V4Y2VwdGlvbkBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFkX3R5cGVpZCAmIF9fdGhpc2NhbGwgc3RkOjpiYWRfdHlwZWlkOjpvcGVyYXRvcj0oY2xhc3Mgc3RkOjpiYWRfdHlwZWlkIGNvbnN0ICYpDQorPz80YmFkX3R5cGVpZEBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6ZG9tYWluX2Vycm9yICYgX190aGlzY2FsbCBzdGQ6OmRvbWFpbl9lcnJvcjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6ZG9tYWluX2Vycm9yIGNvbnN0ICYpDQorPz80ZG9tYWluX2Vycm9yQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICYgX190aGlzY2FsbCBzdGQ6OmxvY2FsZTo6aWQ6Om9wZXJhdG9yPShjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgY29uc3QgJikNCis/PzRpZEBsb2NhbGVAc3RkQEBRQUVBQVYwMTJAQUJWMDEyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6Om9wZXJhdG9yPShjbGFzcyBzdGQ6Omlvc19iYXNlIGNvbnN0ICYpDQorPz80aW9zX2Jhc2VAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omxlbmd0aF9lcnJvciAmIF9fdGhpc2NhbGwgc3RkOjpsZW5ndGhfZXJyb3I6Om9wZXJhdG9yPShjbGFzcyBzdGQ6Omxlbmd0aF9lcnJvciBjb25zdCAmKQ0KKz8/NGxlbmd0aF9lcnJvckBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bG9jYWxlICYgX190aGlzY2FsbCBzdGQ6OmxvY2FsZTo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYpDQorPz80bG9jYWxlQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsb2dpY19lcnJvciAmIF9fdGhpc2NhbGwgc3RkOjpsb2dpY19lcnJvcjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6bG9naWNfZXJyb3IgY29uc3QgJikNCis/PzRsb2dpY19lcnJvckBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3V0X29mX3JhbmdlICYgX190aGlzY2FsbCBzdGQ6Om91dF9vZl9yYW5nZTo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6b3V0X29mX3JhbmdlIGNvbnN0ICYpDQorPz80b3V0X29mX3JhbmdlQHN0ZEBAUUFFQUFWMDFAQUJWMDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvdmVyZmxvd19lcnJvciAmIF9fdGhpc2NhbGwgc3RkOjpvdmVyZmxvd19lcnJvcjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6b3ZlcmZsb3dfZXJyb3IgY29uc3QgJikNCis/PzRvdmVyZmxvd19lcnJvckBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6cmFuZ2VfZXJyb3IgJiBfX3RoaXNjYWxsIHN0ZDo6cmFuZ2VfZXJyb3I6Om9wZXJhdG9yPShjbGFzcyBzdGQ6OnJhbmdlX2Vycm9yIGNvbnN0ICYpDQorPz80cmFuZ2VfZXJyb3JAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJ1bnRpbWVfZXJyb3IgJiBfX3RoaXNjYWxsIHN0ZDo6cnVudGltZV9lcnJvcjo6b3BlcmF0b3I9KGNsYXNzIHN0ZDo6cnVudGltZV9lcnJvciBjb25zdCAmKQ0KKz8/NHJ1bnRpbWVfZXJyb3JAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnVuZGVyZmxvd19lcnJvciAmIF9fdGhpc2NhbGwgc3RkOjp1bmRlcmZsb3dfZXJyb3I6Om9wZXJhdG9yPShjbGFzcyBzdGQ6OnVuZGVyZmxvd19lcnJvciBjb25zdCAmKQ0KKz8/NHVuZGVyZmxvd19lcnJvckBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPj4oc2hvcnQgJikNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQUZAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj4+KHVuc2lnbmVkIHNob3J0ICYpDQorPz81PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUFHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I+PihpbnQgJikNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQUhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj4+KHVuc2lnbmVkIGludCAmKQ0KKz8/NT8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQEFBSUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPj4obG9uZyAmKQ0KKz8/NT8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQEFBSkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPj4odW5zaWduZWQgbG9uZyAmKQ0KKz8/NT8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQEFBS0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPj4oZmxvYXQgJikNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQU1AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj4+KGRvdWJsZSAmKQ0KKz8/NT8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQEFBTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPj4obG9uZyBkb3VibGUgJikNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQU9AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcj4+KHZvaWQgKiAmKQ0KKz8/NT8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQEFBUEFYQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I+Pihib29sICYpDQorPz81PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUFfTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIChfX2NkZWNsKikoY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmKSkNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBQNkFBQVYwMUBBQVYwMUBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgKF9fY2RlY2wqKShjbGFzcyBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJikpDQorPz81PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAUDZBQUFWPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBBQVYyMUBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjppb3NfYmFzZSAmIChfX2NkZWNsKikoY2xhc3Mgc3RkOjppb3NfYmFzZSAmKSkNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBQNkFBQVZpb3NfYmFzZUAxQEFBVjIxQEBaQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gKikNCis/PzU/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBQQVY/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj4+KHNob3J0ICYpDQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUFGQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPj4odW5zaWduZWQgc2hvcnQgJikNCis/PzU/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQUdAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I+PihpbnQgJikNCis/PzU/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQUhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I+Pih1bnNpZ25lZCBpbnQgJikNCis/PzU/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQUlAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I+Pihsb25nICYpDQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUFKQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPj4odW5zaWduZWQgbG9uZyAmKQ0KKz8/NT8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQEFBS0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj4+KGZsb2F0ICYpDQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUFNQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPj4oZG91YmxlICYpDQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAQUFOQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPj4obG9uZyBkb3VibGUgJikNCis/PzU/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQU9AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I+Pih2b2lkICogJikNCis/PzU/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQVBBWEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj4+KGJvb2wgJikNCis/PzU/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBBQV9OQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgKF9fY2RlY2wqKShjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJikpDQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAUDZBQUFWMDFAQUFWMDFAQFpAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIChfX2NkZWNsKikoY2xhc3Mgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJikpDQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAUDZBQUFWPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBBQVYyMUBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJiAoX19jZGVjbCopKGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJikpDQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAUDZBQUFWaW9zX2Jhc2VAMUBBQVYyMUBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICopDQorPz81PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAUEFWPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJixzaWduZWQgY2hhciAmKQ0KKz8/NXN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBBQUNAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJixjaGFyICYpDQorPz81c3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFBREBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmLHVuc2lnbmVkIGNoYXIgJikNCis/PzVzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAQUFFQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYpDQorPz81c3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFBVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICYpDQorPz81c3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFBVj8kY29tcGxleEBNQDBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gJikNCis/PzVzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAQUFWPyRjb21wbGV4QE5AMEBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJixjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICYpDQorPz81c3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQEFBVj8kY29tcGxleEBPQDBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsc2lnbmVkIGNoYXIgKikNCis/PzVzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAUEFDQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsY2hhciAqKQ0KKz8/NXN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBQQURAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJix1bnNpZ25lZCBjaGFyICopDQorPz81c3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQFBBRUBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJix1bnNpZ25lZCBzaG9ydCAmKQ0KKz8/NXN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBQVYxMEBBQUdAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYpDQorPz81c3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQEFBVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj4oY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAmKQ0KKz8/NXN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBQVYxMEBBQVY/JGNvbXBsZXhATUAwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAmKQ0KKz8/NXN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBQVYxMEBBQVY/JGNvbXBsZXhATkAwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJixjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICYpDQorPz81c3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQEFBVj8kY29tcGxleEBPQDBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4+KGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmLHNob3J0ICopDQorPz81c3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQFBBRkBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PihjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJix1bnNpZ25lZCBzaG9ydCAqKQ0KKz8/NXN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMEBBQVYxMEBQQUdAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcjw8KHNob3J0KQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQEZAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcjw8KHVuc2lnbmVkIHNob3J0KQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQEdAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcjw8KGludCkNCis/PzY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PCh1bnNpZ25lZCBpbnQpDQorPz82PyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFASUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZXJhdG9yPDwobG9uZykNCis/PzY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBKQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PCh1bnNpZ25lZCBsb25nKQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQEtAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcjw8KGZsb2F0KQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQE1AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcjw8KGRvdWJsZSkNCis/PzY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBOQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PChsb25nIGRvdWJsZSkNCis/PzY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBPQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgKF9fY2RlY2wqKShjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYpKQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQFA2QUFBVjAxQEFBVjAxQEBaQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiAoX19jZGVjbCopKGNsYXNzIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmKSkNCis/PzY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYwMUBQNkFBQVY/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEFBVjIxQEBaQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6Omlvc19iYXNlICYgKF9fY2RlY2wqKShjbGFzcyBzdGQ6Omlvc19iYXNlICYpKQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQFA2QUFBVmlvc19iYXNlQDFAQUFWMjFAQFpAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqKQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQFBBVj8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PCh2b2lkIGNvbnN0ICopDQorPz82PyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAUEJYQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlcmF0b3I8PChib29sKQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjAxQF9OQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPDwoc2hvcnQpDQorPz82PyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFARkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcjw8KHVuc2lnbmVkIHNob3J0KQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQEdAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I8PChpbnQpDQorPz82PyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFASEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcjw8KHVuc2lnbmVkIGludCkNCis/PzY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBJQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPDwobG9uZykNCis/PzY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBKQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPDwodW5zaWduZWQgbG9uZykNCis/PzY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBLQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPDwoZmxvYXQpDQorPz82PyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFATUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcjw8KGRvdWJsZSkNCis/PzY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYwMUBOQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPDwobG9uZyBkb3VibGUpDQorPz82PyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAT0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIChfX2NkZWNsKikoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYpKQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQFA2QUFBVjAxQEFBVjAxQEBaQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiAoX19jZGVjbCopKGNsYXNzIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYpKQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQFA2QUFBVj8kYmFzaWNfaW9zQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAQUFWMjFAQFpAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6Omlvc19iYXNlICYgKF9fY2RlY2wqKShjbGFzcyBzdGQ6Omlvc19iYXNlICYpKQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQFA2QUFBVmlvc19iYXNlQDFAQUFWMjFAQFpAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqKQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQFBBVj8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yPDwodm9pZCBjb25zdCAqKQ0KKz8/Nj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjAxQFBCWEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcjw8KGJvb2wpDQorPz82PyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMDFAX05AWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/PzZzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmLGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/PzZzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAQUJWPyRjb21wbGV4QE1AMEBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz8/NnN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBBQlY/JGNvbXBsZXhATkAwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmLGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/PzZzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAQUJWPyRjb21wbGV4QE9AMEBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJixzaWduZWQgY2hhcikNCis/PzZzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAQ0BaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmLGNoYXIpDQorPz82c3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQERAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJix1bnNpZ25lZCBjaGFyKQ0KKz8/NnN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBFQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsc2lnbmVkIGNoYXIgY29uc3QgKikNCis/PzZzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDBAQUFWMTBAUEJDQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsY2hhciBjb25zdCAqKQ0KKz8/NnN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMEBBQVYxMEBQQkRAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJix1bnNpZ25lZCBjaGFyIGNvbnN0ICopDQorPz82c3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAwQEFBVjEwQFBCRUBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/PzZzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorPz82c3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQEFCVj8kY29tcGxleEBNQDBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmLGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorPz82c3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQEFCVj8kY29tcGxleEBOQDBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmLGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/PzZzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAQUJWPyRjb21wbGV4QE9AMEBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsdW5zaWduZWQgc2hvcnQpDQorPz82c3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQEdAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPDwoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsc2hvcnQgY29uc3QgKikNCis/PzZzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDBAQUFWMTBAUEJGQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw8KGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz82c3RkQEBZQUFBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAwQEFBVjEwQFBCR0BaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpvcGVyYXRvciEodm9pZCljb25zdCANCis/Pzdpb3NfYmFzZUBzdGRAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6bG9jYWxlOjpvcGVyYXRvcj09KGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYpY29uc3QgDQorPz84bG9jYWxlQHN0ZEBAUUJFX05BQlYwMUBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PShmbG9hdCBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/PzhzdGRAQFlBX05BQk1BQlY/JGNvbXBsZXhATUAwQEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj09KGRvdWJsZSBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorPz84c3RkQEBZQV9OQUJOQUJWPyRjb21wbGV4QE5AMEBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PShsb25nIGRvdWJsZSBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/PzhzdGRAQFlBX05BQk9BQlY/JGNvbXBsZXhAT0AwQEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj09KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/OHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEAwQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPT0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsY2hhciBjb25zdCAqKQ0KKz8/OHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBQQkRAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/PzhzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj09KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz84c3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQFBCR0BaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj09KGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorPz84c3RkQEBZQV9OQUJWPyRjb21wbGV4QE1AMEAwQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPT0oY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmLGZsb2F0IGNvbnN0ICYpDQorPz84c3RkQEBZQV9OQUJWPyRjb21wbGV4QE1AMEBBQk1AWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PShjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorPz84c3RkQEBZQV9OQUJWPyRjb21wbGV4QE5AMEAwQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPT0oY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJixkb3VibGUgY29uc3QgJikNCis/PzhzdGRAQFlBX05BQlY/JGNvbXBsZXhATkAwQEFCTkBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj09KGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorPz84c3RkQEBZQV9OQUJWPyRjb21wbGV4QE9AMEAwQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPT0oY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmLGxvbmcgZG91YmxlIGNvbnN0ICYpDQorPz84c3RkQEBZQV9OQUJWPyRjb21wbGV4QE9AMEBBQk9AWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I9PShjaGFyIGNvbnN0ICosY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz84c3RkQEBZQV9OUEJEQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj09KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz84c3RkQEBZQV9OUEJHQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6OmxvY2FsZTo6b3BlcmF0b3IhPShjbGFzcyBzdGQ6OmxvY2FsZSBjb25zdCAmKWNvbnN0IA0KKz8/OWxvY2FsZUBzdGRAQFFCRV9OQUJWMDFAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yIT0oZmxvYXQgY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorPz85c3RkQEBZQV9OQUJNQUJWPyRjb21wbGV4QE1AMEBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IhPShkb3VibGUgY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz8/OXN0ZEBAWUFfTkFCTkFCVj8kY29tcGxleEBOQDBAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yIT0obG9uZyBkb3VibGUgY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorPz85c3RkQEBZQV9OQUJPQUJWPyRjb21wbGV4QE9AMEBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IhPShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/PzlzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvciE9KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLGNoYXIgY29uc3QgKikNCis/PzlzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEJEQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yIT0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz85c3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQDBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IhPShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/OXN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBQQkdAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IhPShjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz8/OXN0ZEBAWUFfTkFCVj8kY29tcGxleEBNQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvciE9KGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJixmbG9hdCBjb25zdCAmKQ0KKz8/OXN0ZEBAWUFfTkFCVj8kY29tcGxleEBNQDBAQUJNQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yIT0oY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz8/OXN0ZEBAWUFfTkFCVj8kY29tcGxleEBOQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvciE9KGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYsZG91YmxlIGNvbnN0ICYpDQorPz85c3RkQEBZQV9OQUJWPyRjb21wbGV4QE5AMEBBQk5AWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IhPShjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz8/OXN0ZEBAWUFfTkFCVj8kY29tcGxleEBPQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvciE9KGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJixsb25nIGRvdWJsZSBjb25zdCAmKQ0KKz8/OXN0ZEBAWUFfTkFCVj8kY29tcGxleEBPQDBAQUJPQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yIT0oY2hhciBjb25zdCAqLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/OXN0ZEBAWUFfTlBCREFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IhPSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/OXN0ZEBAWUFfTlBCR0FCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBAWg0KKzsgcHVibGljOiBjaGFyICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Om9wZXJhdG9yW10odW5zaWduZWQgaW50KQ0KKz8/QT8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQURJQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpvcGVyYXRvcltdKHVuc2lnbmVkIGludCljb25zdCANCis/P0E/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFQUJESUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Om9wZXJhdG9yW10odW5zaWduZWQgaW50KQ0KKz8/QT8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQUdJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3JbXSh1bnNpZ25lZCBpbnQpY29uc3QgDQorPz9BPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUFCR0lAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZDo6bG9jYWxlOjppZDo6b3BlcmF0b3IgdW5zaWduZWQgaW50KHZvaWQpDQorPz9CaWRAbG9jYWxlQHN0ZEBAUUFFSVhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6b3BlcmF0b3Igdm9pZCAqKHZvaWQpY29uc3QgDQorPz9CaW9zX2Jhc2VAc3RkQEBRQkVQQVhYWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKihmbG9hdCBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/P0RzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQk1BQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKihjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz8/RHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQDBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKihjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYsZmxvYXQgY29uc3QgJikNCis/P0RzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBBQk1AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvciooZG91YmxlIGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/P0RzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQk5BQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvciooY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz8/RHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCVjEwQDBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvciooY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJixkb3VibGUgY29uc3QgJikNCis/P0RzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEBBQk5AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKihsb25nIGRvdWJsZSBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/P0RzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQk9BQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKihjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz8/RHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQDBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKihjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYsbG9uZyBkb3VibGUgY29uc3QgJikNCis/P0RzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEBBQk9AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLShmbG9hdCBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/P0dzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQk1BQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLShjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz8/R3N0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQDBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLShjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorPz9Hc3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci0oY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmLGZsb2F0IGNvbnN0ICYpDQorPz9Hc3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJWMTBAQUJNQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3ItKGRvdWJsZSBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorPz9Hc3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUJOQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3ItKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/P0dzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3ItKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorPz9Hc3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3ItKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYsZG91YmxlIGNvbnN0ICYpDQorPz9Hc3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAQUJOQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci0obG9uZyBkb3VibGUgY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorPz9Hc3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUJPQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci0oY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/P0dzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci0oY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz8/R3N0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3ItKGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJixsb25nIGRvdWJsZSBjb25zdCAmKQ0KKz8/R3N0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQEFCT0BaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz9Ic3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBBQlYxMEAwQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJixjaGFyKQ0KKz8/SHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQUJWMTBAREBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsY2hhciBjb25zdCAqKQ0KKz8/SHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQUJWMTBAUEJEQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhjaGFyLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/SHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAREFCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoY2hhciBjb25zdCAqLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/SHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEJEQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/P0hzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEFCVjEwQDBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLHVuc2lnbmVkIHNob3J0KQ0KKz8/SHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQUJWMTBAR0BaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/P0hzdGRAQFlBP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEFCVjEwQFBCR0BaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisodW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz9Ic3RkQEBZQT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBHQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/SHN0ZEBAWUE/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAUEJHQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoZmxvYXQgY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorPz9Ic3RkQEBZQT9BVj8kY29tcGxleEBNQDBAQUJNQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/P0hzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvcisoY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz8/SHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJixmbG9hdCBjb25zdCAmKQ0KKz8/SHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQEFCTUBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhkb3VibGUgY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz8/SHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCTkFCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorPz9Ic3RkQEBZQT9BVj8kY29tcGxleEBOQDBAQUJWMTBAMEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz8/SHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmLGRvdWJsZSBjb25zdCAmKQ0KKz8/SHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCVjEwQEFCTkBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGxvbmcgZG91YmxlIGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz8/SHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFCT0FCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorPz9Ic3RkQEBZQT9BVj8kY29tcGxleEBPQDBAQUJWMTBAMEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrKGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/P0hzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKyhjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYsbG9uZyBkb3VibGUgY29uc3QgJikNCis/P0hzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEBBQk9AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLyhmbG9hdCBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/P0tzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQk1BQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz8/S3N0ZEBAWUE/QVY/JGNvbXBsZXhATUAwQEFCVjEwQDBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYsZmxvYXQgY29uc3QgJikNCis/P0tzdGRAQFlBP0FWPyRjb21wbGV4QE1AMEBBQlYxMEBBQk1AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci8oZG91YmxlIGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/P0tzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQk5BQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci8oY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz8/S3N0ZEBAWUE/QVY/JGNvbXBsZXhATkAwQEFCVjEwQDBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpvcGVyYXRvci8oY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJixkb3VibGUgY29uc3QgJikNCis/P0tzdGRAQFlBP0FWPyRjb21wbGV4QE5AMEBBQlYxMEBBQk5AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLyhsb25nIGRvdWJsZSBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/P0tzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQk9BQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLyhjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz8/S3N0ZEBAWUE/QVY/JGNvbXBsZXhAT0AwQEFCVjEwQDBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLyhjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYsbG9uZyBkb3VibGUgY29uc3QgJikNCis/P0tzdGRAQFlBP0FWPyRjb21wbGV4QE9AMEBBQlYxMEBBQk9AWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/TXN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEAwQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPChjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJixjaGFyIGNvbnN0ICopDQorPz9Nc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQFBCREBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjwoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz9Nc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQDBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz9Nc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQFBCR0BaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjwoY2hhciBjb25zdCAqLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/TXN0ZEBAWUFfTlBCREFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz9Nc3RkQEBZQV9OUEJHQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw9KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz8/TnN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEAwQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPD0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsY2hhciBjb25zdCAqKQ0KKz8/TnN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBQQkRAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I8PShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/P05zdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw9KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz9Oc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQFBCR0BaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcjw9KGNoYXIgY29uc3QgKixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/P05zdGRAQFlBX05QQkRBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPD0odW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/P05zdGRAQFlBX05QQkdBQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDBAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/P09zdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj4oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsY2hhciBjb25zdCAqKQ0KKz8/T3N0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMEBQQkRAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/T3N0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEAwQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/T3N0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBQQkdAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+KGNoYXIgY29uc3QgKixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/P09zdGRAQFlBX05QQkRBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/T3N0ZEBAWUFfTlBCR0FCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/P1BzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAMEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj49KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLGNoYXIgY29uc3QgKikNCis/P1BzdGRAQFlBX05BQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDBAUEJEQFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6Om9wZXJhdG9yPj0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz9Qc3RkQEBZQV9OQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQDBAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/UHN0ZEBAWUFfTkFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMEBQQkdAWg0KKzsgYm9vbCBfX2NkZWNsIHN0ZDo6b3BlcmF0b3I+PShjaGFyIGNvbnN0ICosY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz9Qc3RkQEBZQV9OUEJEQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAwQEBaDQorOyBib29sIF9fY2RlY2wgc3RkOjpvcGVyYXRvcj49KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorPz9Qc3RkQEBZQV9OUEJHQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAwQEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6OmxvY2FsZTo6b3BlcmF0b3IoKShjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiljb25zdCANCis/P1Jsb2NhbGVAc3RkQEBRQkVfTkFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMUAwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfQ29tcGxleF9iYXNlPGZsb2F0PiAmIF9fdGhpc2NhbGwgc3RkOjpfQ29tcGxleF9iYXNlPGZsb2F0Pjo6b3BlcmF0b3IqPShmbG9hdCBjb25zdCAmKQ0KKz8/WD8kX0NvbXBsZXhfYmFzZUBNQHN0ZEBAUUFFQUFWMDFAQUJNQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT4gJiBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxkb3VibGU+OjpvcGVyYXRvcio9KGRvdWJsZSBjb25zdCAmKQ0KKz8/WD8kX0NvbXBsZXhfYmFzZUBOQHN0ZEBAUUFFQUFWMDFAQUJOQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfQ29tcGxleF9iYXNlPGxvbmcgZG91YmxlPiAmIF9fdGhpc2NhbGwgc3RkOjpfQ29tcGxleF9iYXNlPGxvbmcgZG91YmxlPjo6b3BlcmF0b3IqPShsb25nIGRvdWJsZSBjb25zdCAmKQ0KKz8/WD8kX0NvbXBsZXhfYmFzZUBPQHN0ZEBAUUFFQUFWMDFAQUJPQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IqPShjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz8/WHN0ZEBAWUFBQVY/JGNvbXBsZXhATUAwQEFBVjEwQEFCVjEwQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcio9KGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/P1hzdGRAQFlBQUFWPyRjb21wbGV4QE5AMEBBQVYxMEBBQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvcio9KGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gJixjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorPz9Yc3RkQEBZQUFBVj8kY29tcGxleEBPQDBAQUFWMTBAQUJWMTBAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfQ29tcGxleF9iYXNlPGZsb2F0PiAmIF9fdGhpc2NhbGwgc3RkOjpfQ29tcGxleF9iYXNlPGZsb2F0Pjo6b3BlcmF0b3IrPShmbG9hdCBjb25zdCAmKQ0KKz8/WT8kX0NvbXBsZXhfYmFzZUBNQHN0ZEBAUUFFQUFWMDFAQUJNQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT4gJiBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxkb3VibGU+OjpvcGVyYXRvcis9KGRvdWJsZSBjb25zdCAmKQ0KKz8/WT8kX0NvbXBsZXhfYmFzZUBOQHN0ZEBAUUFFQUFWMDFAQUJOQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfQ29tcGxleF9iYXNlPGxvbmcgZG91YmxlPiAmIF9fdGhpc2NhbGwgc3RkOjpfQ29tcGxleF9iYXNlPGxvbmcgZG91YmxlPjo6b3BlcmF0b3IrPShsb25nIGRvdWJsZSBjb25zdCAmKQ0KKz8/WT8kX0NvbXBsZXhfYmFzZUBPQHN0ZEBAUUFFQUFWMDFAQUJPQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Om9wZXJhdG9yKz0oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorPz9ZPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjAxQEFCVjAxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpvcGVyYXRvcis9KGNoYXIpDQorPz9ZPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjAxQERAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6b3BlcmF0b3IrPShjaGFyIGNvbnN0ICopDQorPz9ZPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjAxQFBCREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcis9KGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz8/WT8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQVYwMUBBQlYwMUBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlcmF0b3IrPSh1bnNpZ25lZCBzaG9ydCkNCis/P1k/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMDFAR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVyYXRvcis9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz9ZPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjAxQFBCR0BaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yKz0oY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAmLGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/P1lzdGRAQFlBQUFWPyRjb21wbGV4QE1AMEBBQVYxMEBBQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrPShjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAmLGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorPz9Zc3RkQEBZQUFBVj8kY29tcGxleEBOQDBAQUFWMTBAQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3IrPShjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz8/WXN0ZEBAWUFBQVY/JGNvbXBsZXhAT0AwQEFBVjEwQEFCVjEwQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxmbG9hdD4gJiBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxmbG9hdD46Om9wZXJhdG9yLT0oZmxvYXQgY29uc3QgJikNCis/P1o/JF9Db21wbGV4X2Jhc2VATUBzdGRAQFFBRUFBVjAxQEFCTUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxkb3VibGU+ICYgX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZG91YmxlPjo6b3BlcmF0b3ItPShkb3VibGUgY29uc3QgJikNCis/P1o/JF9Db21wbGV4X2Jhc2VATkBzdGRAQFFBRUFBVjAxQEFCTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT4gJiBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT46Om9wZXJhdG9yLT0obG9uZyBkb3VibGUgY29uc3QgJikNCis/P1o/JF9Db21wbGV4X2Jhc2VAT0BzdGRAQFFBRUFBVjAxQEFCT0BaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLT0oY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAmLGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/P1pzdGRAQFlBQUFWPyRjb21wbGV4QE1AMEBBQVYxMEBBQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3ItPShjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAmLGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorPz9ac3RkQEBZQUFBVj8kY29tcGxleEBOQDBAQUFWMTBAQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gJiBfX2NkZWNsIHN0ZDo6b3BlcmF0b3ItPShjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz8/WnN0ZEBAWUFBQVY/JGNvbXBsZXhAT0AwQEFBVjEwQEFCVjEwQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6X0NvbXBsZXhfYmFzZTxmbG9hdD4gJiBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxmbG9hdD46Om9wZXJhdG9yLz0oZmxvYXQgY29uc3QgJikNCis/P18wPyRfQ29tcGxleF9iYXNlQE1Ac3RkQEBRQUVBQVYwMUBBQk1AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZG91YmxlPiAmIF9fdGhpc2NhbGwgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT46Om9wZXJhdG9yLz0oZG91YmxlIGNvbnN0ICYpDQorPz9fMD8kX0NvbXBsZXhfYmFzZUBOQHN0ZEBAUUFFQUFWMDFAQUJOQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfQ29tcGxleF9iYXNlPGxvbmcgZG91YmxlPiAmIF9fdGhpc2NhbGwgc3RkOjpfQ29tcGxleF9iYXNlPGxvbmcgZG91YmxlPjo6b3BlcmF0b3IvPShsb25nIGRvdWJsZSBjb25zdCAmKQ0KKz8/XzA/JF9Db21wbGV4X2Jhc2VAT0BzdGRAQFFBRUFBVjAxQEFCT0BaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLz0oY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAmLGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/P18wc3RkQEBZQUFBVj8kY29tcGxleEBNQDBAQUFWMTBAQUJWMTBAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICYgX19jZGVjbCBzdGQ6Om9wZXJhdG9yLz0oY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz8/XzBzdGRAQFlBQUFWPyRjb21wbGV4QE5AMEBBQVYxMEBBQlYxMEBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAmIF9fY2RlY2wgc3RkOjpvcGVyYXRvci89KGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gJixjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorPz9fMHN0ZEBAWUFBQVY/JGNvbXBsZXhAT0AwQEFBVjEwQEFCVjEwQEBaDQorOyBjb25zdCAgc3RkOjpfTXB1bmN0PGNoYXI+OjpgdmZ0YWJsZScNCis/P183PyRfTXB1bmN0QERAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpgdmZ0YWJsZScNCis/P183PyRfTXB1bmN0QEdAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19pZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX2lmc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfaW9zQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX2lvc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19pb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfaW9zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfaXN0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfaXN0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX29mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfb2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfb3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfb3N0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YHZmdGFibGUnDQorPz9fNz8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JGJhc2ljX3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpgdmZ0YWJsZScNCis/P183PyRiYXNpY19zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6Y29kZWN2dDxjaGFyLGNoYXIsaW50Pjo6YHZmdGFibGUnDQorPz9fNz8kY29kZWN2dEBEREhAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+OjpgdmZ0YWJsZScNCis/P183PyRjb2RlY3Z0QEdESEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6Y29sbGF0ZTxjaGFyPjo6YHZmdGFibGUnDQorPz9fNz8kY29sbGF0ZUBEQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpjb2xsYXRlPHVuc2lnbmVkIHNob3J0Pjo6YHZmdGFibGUnDQorPz9fNz8kY29sbGF0ZUBHQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpjdHlwZTxjaGFyPjo6YHZmdGFibGUnDQorPz9fNz8kY3R5cGVAREBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+OjpgdmZ0YWJsZScNCis/P183PyRjdHlwZUBHQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjptZXNzYWdlczxjaGFyPjo6YHZmdGFibGUnDQorPz9fNz8kbWVzc2FnZXNAREBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6bWVzc2FnZXM8dW5zaWduZWQgc2hvcnQ+OjpgdmZ0YWJsZScNCis/P183PyRtZXNzYWdlc0BHQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjptb25leV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JG1vbmV5X2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6bW9uZXlfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpgdmZ0YWJsZScNCis/P183PyRtb25leV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6Om1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6YHZmdGFibGUnDQorPz9fNz8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjptb25leV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JG1vbmV5X3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6bW9uZXlwdW5jdDxjaGFyLDE+OjpgdmZ0YWJsZScNCis/P183PyRtb25leXB1bmN0QEQkMDBAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwwPjo6YHZmdGFibGUnDQorPz9fNz8kbW9uZXlwdW5jdEBEJDBBQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwxPjo6YHZmdGFibGUnDQorPz9fNz8kbW9uZXlwdW5jdEBHJDAwQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDA+OjpgdmZ0YWJsZScNCis/P183PyRtb25leXB1bmN0QEckMEFAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpgdmZ0YWJsZScNCis/P183PyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpgdmZ0YWJsZScNCis/P183PyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpgdmZ0YWJsZScNCis/P183PyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpgdmZ0YWJsZScNCis/P183PyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpudW1wdW5jdDxjaGFyPjo6YHZmdGFibGUnDQorPz9fNz8kbnVtcHVuY3RAREBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpgdmZ0YWJsZScNCis/P183PyRudW1wdW5jdEBHQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6YHZmdGFibGUnDQorPz9fNz8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpgdmZ0YWJsZScNCis/P183PyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6dGltZV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmB2ZnRhYmxlJw0KKz8/Xzc/JHRpbWVfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjp0aW1lX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6YHZmdGFibGUnDQorPz9fNz8kdGltZV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6Ol9fbm9uX3J0dGlfb2JqZWN0OjpgdmZ0YWJsZScNCis/P183X19ub25fcnR0aV9vYmplY3RAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmJhZF9hbGxvYzo6YHZmdGFibGUnDQorPz9fN2JhZF9hbGxvY0BzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFkX2Nhc3Q6OmB2ZnRhYmxlJw0KKz8/XzdiYWRfY2FzdEBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFkX2V4Y2VwdGlvbjo6YHZmdGFibGUnDQorPz9fN2JhZF9leGNlcHRpb25Ac3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmJhZF90eXBlaWQ6OmB2ZnRhYmxlJw0KKz8/XzdiYWRfdHlwZWlkQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpjb2RlY3Z0X2Jhc2U6OmB2ZnRhYmxlJw0KKz8/Xzdjb2RlY3Z0X2Jhc2VAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmN0eXBlX2Jhc2U6OmB2ZnRhYmxlJw0KKz8/XzdjdHlwZV9iYXNlQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpkb21haW5fZXJyb3I6OmB2ZnRhYmxlJw0KKz8/Xzdkb21haW5fZXJyb3JAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OmxvY2FsZTo6ZmFjZXQ6OmB2ZnRhYmxlJw0KKz8/XzdmYWNldEBsb2NhbGVAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6Omlvc19iYXNlOjpgdmZ0YWJsZScNCis/P183aW9zX2Jhc2VAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6Omxlbmd0aF9lcnJvcjo6YHZmdGFibGUnDQorPz9fN2xlbmd0aF9lcnJvckBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6bG9naWNfZXJyb3I6OmB2ZnRhYmxlJw0KKz8/Xzdsb2dpY19lcnJvckBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6bWVzc2FnZXNfYmFzZTo6YHZmdGFibGUnDQorPz9fN21lc3NhZ2VzX2Jhc2VAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6Om1vbmV5X2Jhc2U6OmB2ZnRhYmxlJw0KKz8/Xzdtb25leV9iYXNlQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjpvdXRfb2ZfcmFuZ2U6OmB2ZnRhYmxlJw0KKz8/XzdvdXRfb2ZfcmFuZ2VAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6Om92ZXJmbG93X2Vycm9yOjpgdmZ0YWJsZScNCis/P183b3ZlcmZsb3dfZXJyb3JAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OnJhbmdlX2Vycm9yOjpgdmZ0YWJsZScNCis/P183cmFuZ2VfZXJyb3JAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OnJ1bnRpbWVfZXJyb3I6OmB2ZnRhYmxlJw0KKz8/XzdydW50aW1lX2Vycm9yQHN0ZEBANkJADQorOyBjb25zdCAgc3RkOjp0aW1lX2Jhc2U6OmB2ZnRhYmxlJw0KKz8/Xzd0aW1lX2Jhc2VAc3RkQEA2QkANCis7IGNvbnN0ICBzdGQ6OnVuZGVyZmxvd19lcnJvcjo6YHZmdGFibGUnDQorPz9fN3VuZGVyZmxvd19lcnJvckBzdGRAQDZCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YnRhYmxlJ3tmb3IgYHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4nfQ0KKz8/Xzg/JGJhc2ljX2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEA3Qj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEANCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJ0YWJsZSd7Zm9yIGBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+J30NCis/P184PyRiYXNpY19mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAN0I/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBADQorOyBjb25zdCAgc3RkOjpiYXNpY19mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJ0YWJsZSd7Zm9yIGBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4nfQ0KKz8/Xzg/JGJhc2ljX2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEA3Qj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEANCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2YnRhYmxlJ3tmb3IgYHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPid9DQorPz9fOD8kYmFzaWNfZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQDdCPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJ0YWJsZScNCis/P184PyRiYXNpY19pZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQDdCQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2YnRhYmxlJw0KKz8/Xzg/JGJhc2ljX2lmc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAN0JADQorOyBjb25zdCAgc3RkOjpiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YnRhYmxlJ3tmb3IgYHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4nfQ0KKz8/Xzg/JGJhc2ljX2lvc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAN0I/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBADQorOyBjb25zdCAgc3RkOjpiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YnRhYmxlJ3tmb3IgYHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4nfQ0KKz8/Xzg/JGJhc2ljX2lvc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAN0I/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBADQorOyBjb25zdCAgc3RkOjpiYXNpY19pb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZidGFibGUne2ZvciBgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+J30NCis/P184PyRiYXNpY19pb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQDdCPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfaW9zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmB2YnRhYmxlJ3tmb3IgYHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPid9DQorPz9fOD8kYmFzaWNfaW9zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEA3Qj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEANCis7IGNvbnN0ICBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJ0YWJsZScNCis/P184PyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAN0JADQorOyBjb25zdCAgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJ0YWJsZScNCis/P184PyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAN0JADQorOyBjb25zdCAgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YHZidGFibGUnDQorPz9fOD8kYmFzaWNfaXN0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAN0JADQorOyBjb25zdCAgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YHZidGFibGUnDQorPz9fOD8kYmFzaWNfaXN0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAN0JADQorOyBjb25zdCAgc3RkOjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YnRhYmxlJw0KKz8/Xzg/JGJhc2ljX29mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAN0JADQorOyBjb25zdCAgc3RkOjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZidGFibGUnDQorPz9fOD8kYmFzaWNfb2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEA3QkANCis7IGNvbnN0ICBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpgdmJ0YWJsZScNCis/P184PyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAN0JADQorOyBjb25zdCAgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJ0YWJsZScNCis/P184PyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAN0JADQorOyBjb25zdCAgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YHZidGFibGUnDQorPz9fOD8kYmFzaWNfb3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAN0JADQorOyBjb25zdCAgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YHZidGFibGUnDQorPz9fOD8kYmFzaWNfb3N0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAN0JADQorOyBjb25zdCAgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpgdmJ0YWJsZSd7Zm9yIGBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+J30NCis/P184PyRiYXNpY19zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQDdCPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQA0KKzsgY29uc3QgIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YHZidGFibGUne2ZvciBgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPid9DQorPz9fOD8kYmFzaWNfc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEA3Qj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEANCis7IGNvbnN0ICBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmB2YnRhYmxlJ3tmb3IgYHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPid9DQorPz9fOD8kYmFzaWNfc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEA3Qj8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEANCis7IGNvbnN0ICBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmB2YnRhYmxlJ3tmb3IgYHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPid9DQorPz9fOD8kYmFzaWNfc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEA3Qj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEANCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0Q/JGJhc2ljX2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRD8kYmFzaWNfZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0Q/JGJhc2ljX2lmc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EPyRiYXNpY19pZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0Q/JGJhc2ljX2lvc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EPyRiYXNpY19pb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EPyRiYXNpY19pc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0Q/JGJhc2ljX2lzdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0Q/JGJhc2ljX29mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EPyRiYXNpY19vZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRD8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EPyRiYXNpY19vc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0Q/JGJhc2ljX29zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EPyRiYXNpY19zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EPyRiYXNpY19zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRiYXNpY19pc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kYmFzaWNfaXN0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JGJhc2ljX29zdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRiYXNpY19vc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kYmFzaWNfc3RyaW5nYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRiYXNpY19zdHJpbmdidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JGJhc2ljX3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kYmFzaWNfc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDxjaGFyLGNoYXIsaW50Pjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRjb2RlY3Z0QERESEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRjb2RlY3Z0QEdESEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpjb2xsYXRlPGNoYXI+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JGNvbGxhdGVAREBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpjb2xsYXRlPHVuc2lnbmVkIHNob3J0Pjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRjb2xsYXRlQEdAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6Y29tcGxleDxmbG9hdD46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kY29tcGxleEBNQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmNvbXBsZXg8ZG91YmxlPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRjb21wbGV4QE5Ac3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kY29tcGxleEBPQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmN0eXBlPGNoYXI+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JGN0eXBlQERAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JGN0eXBlQEdAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXM8Y2hhcj46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kbWVzc2FnZXNAREBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjptZXNzYWdlczx1bnNpZ25lZCBzaG9ydD46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kbWVzc2FnZXNAR0BzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjptb25leV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kbW9uZXlfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om1vbmV5X2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRtb25leV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JG1vbmV5X3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjptb25leV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kbW9uZXlfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwxPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRtb25leXB1bmN0QEQkMDBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlwdW5jdDxjaGFyLDA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JG1vbmV5cHVuY3RARCQwQUBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwxPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRtb25leXB1bmN0QEckMDBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlwdW5jdDx1bnNpZ25lZCBzaG9ydCwwPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRtb25leXB1bmN0QEckMEFAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRj8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpudW1wdW5jdDxjaGFyPjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRudW1wdW5jdEBEQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GPyRudW1wdW5jdEBHQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OnRpbWVfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JHRpbWVfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OnRpbWVfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Y/JHRpbWVfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Ol9Mb2NpbmZvOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZfTG9jaW5mb0BzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpfVGltZXZlYzo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GX1RpbWV2ZWNAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFkX2FsbG9jOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZiYWRfYWxsb2NAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFkX2Nhc3Q6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRmJhZF9jYXN0QHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhZF9leGNlcHRpb246OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRmJhZF9leGNlcHRpb25Ac3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFkX3R5cGVpZDo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GYmFkX3R5cGVpZEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0X2Jhc2U6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRmNvZGVjdnRfYmFzZUBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpjdHlwZV9iYXNlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZjdHlwZV9iYXNlQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmxvY2FsZTo6ZmFjZXQ6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRmZhY2V0QGxvY2FsZUBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjptZXNzYWdlc19iYXNlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZtZXNzYWdlc19iYXNlQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om1vbmV5X2Jhc2U6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRm1vbmV5X2Jhc2VAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6dGltZV9iYXNlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0Z0aW1lX2Jhc2VAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpfTG9jaW5mbyAmIF9fdGhpc2NhbGwgc3RkOjpfTG9jaW5mbzo6X0FkZGNhdHMoaW50LGNoYXIgY29uc3QgKikNCis/X0FkZGNhdHNAX0xvY2luZm9Ac3RkQEBRQUVBQVYxMkBIUEJEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsb2NhbGUgJiBfX3RoaXNjYWxsIHN0ZDo6bG9jYWxlOjpfQWRkZmFjKGNsYXNzIHN0ZDo6bG9jYWxlOjpmYWNldCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP19BZGRmYWNAbG9jYWxlQHN0ZEBAUUFFQUFWMTJAUEFWZmFjZXRAMTJASUlAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6X0FkZHN0ZCh2b2lkKQ0KKz9fQWRkc3RkQGlvc19iYXNlQHN0ZEBASUFFWFhaDQorOyBjaGFyIGNvbnN0ICBgcHJpdmF0ZTogc3RhdGljIGNoYXIgY29uc3QgKiBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6X051bGxzdHIodm9pZCknOjpgMic6Ol9DDQorP19DQD8xPz9fTnVsbHN0ckA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAQ0FQQkRYWkA0REINCis7IHVuc2lnbmVkIHNob3J0IGNvbnN0ICBgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Ol9OdWxsc3RyKHZvaWQpJzo6YDInOjpfQw0KKz9fQ0A/MT8/X051bGxzdHJAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQENBUEJHWFpANEdCDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6X0NhbGxmbnMoZW51bSBzdGQ6Omlvc19iYXNlOjpldmVudCkNCis/X0NhbGxmbnNAaW9zX2Jhc2VAc3RkQEBBQUVYVzRldmVudEAxMkBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjpfTG9jaW1wICogIHN0ZDo6bG9jYWxlOjpfTG9jaW1wOjpfQ2xvY3B0cg0KKz9fQ2xvY3B0ckBfTG9jaW1wQGxvY2FsZUBzdGRAQDBQQVYxMjNAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgc2hvcnQgY29uc3QgKiBjb25zdCAgc3RkOjpjdHlwZTxjaGFyPjo6X0NsdGFiDQorP19DbHRhYkA/JGN0eXBlQERAc3RkQEAwUEJGQiBEQVRBDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpfQ29weSh1bnNpZ25lZCBpbnQpDQorP19Db3B5QD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBBQUVYSUBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpfQ29weSh1bnNpZ25lZCBpbnQpDQorP19Db3B5QD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBBQUVYSUBaDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6X0N0cjxmbG9hdD46Ol9Db3NoKGZsb2F0LGZsb2F0KQ0KKz9fQ29zaEA/JF9DdHJATUBzdGRAQFNBTU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+OjpfQ29zaChkb3VibGUsZG91YmxlKQ0KKz9fQ29zaEA/JF9DdHJATkBzdGRAQFNBTk5OQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGxvbmcgZG91YmxlPjo6X0Nvc2gobG9uZyBkb3VibGUsbG9uZyBkb3VibGUpDQorP19Db3NoQD8kX0N0ckBPQHN0ZEBAU0FPT09AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmxvY2FsZTo6ZmFjZXQgKiBfX3RoaXNjYWxsIHN0ZDo6bG9jYWxlOjpmYWNldDo6X0RlY3JlZih2b2lkKQ0KKz9fRGVjcmVmQGZhY2V0QGxvY2FsZUBzdGRAQFFBRVBBVjEyM0BYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhZF9hbGxvYzo6X0RvcmFpc2Uodm9pZCljb25zdCANCis/X0RvcmFpc2VAYmFkX2FsbG9jQHN0ZEBATUJFWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFkX2Nhc3Q6Ol9Eb3JhaXNlKHZvaWQpY29uc3QgDQorP19Eb3JhaXNlQGJhZF9jYXN0QHN0ZEBATUJFWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFkX2V4Y2VwdGlvbjo6X0RvcmFpc2Uodm9pZCljb25zdCANCis/X0RvcmFpc2VAYmFkX2V4Y2VwdGlvbkBzdGRAQE1CRVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhZF90eXBlaWQ6Ol9Eb3JhaXNlKHZvaWQpY29uc3QgDQorP19Eb3JhaXNlQGJhZF90eXBlaWRAc3RkQEBNQkVYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgc3RkOjpkb21haW5fZXJyb3I6Ol9Eb3JhaXNlKHZvaWQpY29uc3QgDQorP19Eb3JhaXNlQGRvbWFpbl9lcnJvckBzdGRAQE1CRVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBzdGQ6Omxlbmd0aF9lcnJvcjo6X0RvcmFpc2Uodm9pZCljb25zdCANCis/X0RvcmFpc2VAbGVuZ3RoX2Vycm9yQHN0ZEBATUJFWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bG9naWNfZXJyb3I6Ol9Eb3JhaXNlKHZvaWQpY29uc3QgDQorP19Eb3JhaXNlQGxvZ2ljX2Vycm9yQHN0ZEBATUJFWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIHN0ZDo6b3V0X29mX3JhbmdlOjpfRG9yYWlzZSh2b2lkKWNvbnN0IA0KKz9fRG9yYWlzZUBvdXRfb2ZfcmFuZ2VAc3RkQEBNQkVYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgc3RkOjpvdmVyZmxvd19lcnJvcjo6X0RvcmFpc2Uodm9pZCljb25zdCANCis/X0RvcmFpc2VAb3ZlcmZsb3dfZXJyb3JAc3RkQEBNQkVYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgc3RkOjpyYW5nZV9lcnJvcjo6X0RvcmFpc2Uodm9pZCljb25zdCANCis/X0RvcmFpc2VAcmFuZ2VfZXJyb3JAc3RkQEBNQkVYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgc3RkOjpydW50aW1lX2Vycm9yOjpfRG9yYWlzZSh2b2lkKWNvbnN0IA0KKz9fRG9yYWlzZUBydW50aW1lX2Vycm9yQHN0ZEBATUJFWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIHN0ZDo6dW5kZXJmbG93X2Vycm9yOjpfRG9yYWlzZSh2b2lkKWNvbnN0IA0KKz9fRG9yYWlzZUB1bmRlcmZsb3dfZXJyb3JAc3RkQEBNQkVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Ol9Fb3ModW5zaWduZWQgaW50KQ0KKz9fRW9zQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBBQUVYSUBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpfRW9zKHVuc2lnbmVkIGludCkNCis/X0Vvc0A/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAQUFFWElAWg0KKzsgcHVibGljOiBzdGF0aWMgc2hvcnQgX19jZGVjbCBzdGQ6Ol9DdHI8ZmxvYXQ+OjpfRXhwKGZsb2F0ICosZmxvYXQsc2hvcnQpDQorP19FeHBAPyRfQ3RyQE1Ac3RkQEBTQUZQQU1NRkBaDQorOyBwdWJsaWM6IHN0YXRpYyBzaG9ydCBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+OjpfRXhwKGRvdWJsZSAqLGRvdWJsZSxzaG9ydCkNCis/X0V4cEA/JF9DdHJATkBzdGRAQFNBRlBBTk5GQFoNCis7IHB1YmxpYzogc3RhdGljIHNob3J0IF9fY2RlY2wgc3RkOjpfQ3RyPGxvbmcgZG91YmxlPjo6X0V4cChsb25nIGRvdWJsZSAqLGxvbmcgZG91YmxlLHNob3J0KQ0KKz9fRXhwQD8kX0N0ckBPQHN0ZEBAU0FGUEFPT0ZAWg0KKzsgZmxvYXQgX19jZGVjbCBzdGQ6Ol9GYWJzKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJixpbnQgKikNCis/X0ZhYnNAc3RkQEBZQU1BQlY/JGNvbXBsZXhATUAxQFBBSEBaDQorOyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9GYWJzKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYsaW50ICopDQorP19GYWJzQHN0ZEBAWUFOQUJWPyRjb21wbGV4QE5AMUBQQUhAWg0KKzsgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9GYWJzKGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJixpbnQgKikNCis/X0ZhYnNAc3RkQEBZQU9BQlY/JGNvbXBsZXhAT0AxQFBBSEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjaGFyICogX19jZGVjbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9GZm10KGNoYXIgKixjaGFyLGludCkNCis/X0ZmbXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAS0FQQURQQURESEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjaGFyICogX19jZGVjbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9GZm10KGNoYXIgKixjaGFyLGludCkNCis/X0ZmbXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAS0FQQURQQURESEBaDQorOyBwcml2YXRlOiBzdHJ1Y3Qgc3RkOjppb3NfYmFzZTo6X0lvc2FycmF5ICYgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpfRmluZGFycihpbnQpDQorP19GaW5kYXJyQGlvc19iYXNlQHN0ZEBAQUFFQUFVX0lvc2FycmF5QDEyQEhAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9GcHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGNoYXIsY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP19GcHV0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQEtBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJARFBCRElJQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9GcHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsdW5zaWduZWQgc2hvcnQsY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP19GcHV0QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQEtBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJAR1BCRElJQFoNCis7IF9faW50NjQgY29uc3QgIHN0ZDo6X0Zweg0KKz9fRnB6QHN0ZEBAM19KQg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6X0ZyZWV6ZSh2b2lkKQ0KKz9fRnJlZXplQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Ol9GcmVlemUodm9pZCkNCis/X0ZyZWV6ZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAQUFFWFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JF9NcHVuY3RAREBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRfTXB1bmN0QEdAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpjb2RlY3Z0PGNoYXIsY2hhcixpbnQ+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRjb2RlY3Z0QERESEBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6OmNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRjb2RlY3Z0QEdESEBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6OmNvbGxhdGU8Y2hhcj46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JGNvbGxhdGVAREBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6OmNvbGxhdGU8dW5zaWduZWQgc2hvcnQ+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRjb2xsYXRlQEdAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpjdHlwZTxjaGFyPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kY3R5cGVAREBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kY3R5cGVAR0BzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om1lc3NhZ2VzPGNoYXI+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRtZXNzYWdlc0BEQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bWVzc2FnZXM8dW5zaWduZWQgc2hvcnQ+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRtZXNzYWdlc0BHQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bW9uZXlfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRtb25leV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjptb25leV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JG1vbmV5X2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRtb25leV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjptb25leXB1bmN0PGNoYXIsMT46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JG1vbmV5cHVuY3RARCQwMEBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwwPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kbW9uZXlwdW5jdEBEJDBBQEBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMT46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JG1vbmV5cHVuY3RARyQwMEBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMD46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JG1vbmV5cHVuY3RARyQwQUBAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JG51bXB1bmN0QERAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD46Ol9HZXRjYXQodm9pZCkNCis/X0dldGNhdEA/JG51bXB1bmN0QEdAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjp0aW1lX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kdGltZV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjp0aW1lX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0dldGNhdCh2b2lkKQ0KKz9fR2V0Y2F0QD8kdGltZV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpsb2NhbGU6OmZhY2V0OjpfR2V0Y2F0KHZvaWQpDQorP19HZXRjYXRAZmFjZXRAbG9jYWxlQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RydWN0IF9Db2xsdmVjICBfX3RoaXNjYWxsIHN0ZDo6X0xvY2luZm86Ol9HZXRjb2xsKHZvaWQpY29uc3QgDQorP19HZXRjb2xsQF9Mb2NpbmZvQHN0ZEBAUUJFP0FVX0NvbGx2ZWNAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfQ3R5cGV2ZWMgIF9fdGhpc2NhbGwgc3RkOjpfTG9jaW5mbzo6X0dldGN0eXBlKHZvaWQpY29uc3QgDQorP19HZXRjdHlwZUBfTG9jaW5mb0BzdGRAQFFCRT9BVV9DdHlwZXZlY0BAWFoNCis7IHB1YmxpYzogc3RydWN0IF9DdnR2ZWMgIF9fdGhpc2NhbGwgc3RkOjpfTG9jaW5mbzo6X0dldGN2dCh2b2lkKWNvbnN0IA0KKz9fR2V0Y3Z0QF9Mb2NpbmZvQHN0ZEBAUUJFP0FVX0N2dHZlY0BAWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpfTG9jaW5mbzo6X0dldGRheXModm9pZCljb25zdCANCis/X0dldGRheXNAX0xvY2luZm9Ac3RkQEBRQkVQQkRYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmxvY2FsZTo6ZmFjZXQgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6bG9jYWxlOjpfR2V0ZmFjZXQodW5zaWduZWQgaW50LGJvb2wpY29uc3QgDQorP19HZXRmYWNldEBsb2NhbGVAc3RkQEBRQkVQQlZmYWNldEAxMkBJX05AWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBzdGQ6Ol9Mb2NpbmZvOjpfR2V0ZmFsc2Uodm9pZCljb25zdCANCis/X0dldGZhbHNlQF9Mb2NpbmZvQHN0ZEBAUUJFUEJEWFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9HZXRmZmxkKGNoYXIgKixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmLGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYpDQorP19HZXRmZmxkQD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQENBSFBBREFBVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQDFBQlZsb2NhbGVAMkBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCBfX2NkZWNsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0dldGZmbGQoY2hhciAqLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmLGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYpDQorP19HZXRmZmxkQD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQENBSFBBREFBVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQDFBQlZsb2NhbGVAMkBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCBfX2NkZWNsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0dldGlmbGQoY2hhciAqLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsaW50LGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYpDQorP19HZXRpZmxkQD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQENBSFBBREFBVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQDFIQUJWbG9jYWxlQDJAQFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9HZXRpZmxkKGNoYXIgKixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJixpbnQsY2xhc3Mgc3RkOjpsb2NhbGUgY29uc3QgJikNCis/X0dldGlmbGRAPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAQ0FIUEFEQUFWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAMUhBQlZsb2NhbGVAMkBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCBfX2NkZWNsIHN0ZDo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9HZXRpbnQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJixpbnQsaW50LGludCAmKQ0KKz9fR2V0aW50QD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBDQUhBQVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkAwSEhBQUhAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCBfX2NkZWNsIHN0ZDo6dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9HZXRpbnQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsaW50LGludCxpbnQgJikNCis/X0dldGludEA/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAQ0FIQUFWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAMEhIQUFIQFoNCis7IHB1YmxpYzogc3RydWN0IGxjb252IGNvbnN0ICogX190aGlzY2FsbCBzdGQ6Ol9Mb2NpbmZvOjpfR2V0bGNvbnYodm9pZCljb25zdCANCis/X0dldGxjb252QF9Mb2NpbmZvQHN0ZEBAUUJFUEJVbGNvbnZAQFhaDQorOyBwcml2YXRlOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjptb25leV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9HZXRtZmxkKGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYsYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYpY29uc3QgDQorP19HZXRtZmxkQD8kbW9uZXlfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAQUJFP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQEFBVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQDBfTkFBVmlvc19iYXNlQDJAQFoNCis7IHByaXZhdGU6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om1vbmV5X2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0dldG1mbGQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYpY29uc3QgDQorP19HZXRtZmxkQD8kbW9uZXlfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAQUJFP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQEFBVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQDBfTkFBVmlvc19iYXNlQDJAQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpfTG9jaW5mbzo6X0dldG1vbnRocyh2b2lkKWNvbnN0IA0KKz9fR2V0bW9udGhzQF9Mb2NpbmZvQHN0ZEBAUUJFUEJEWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6X0xvY2luZm86Ol9HZXRuYW1lKHZvaWQpY29uc3QgDQorP19HZXRuYW1lQF9Mb2NpbmZvQHN0ZEBAUUJFP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6X0xvY2luZm86Ol9HZXRubyh2b2lkKWNvbnN0IA0KKz9fR2V0bm9AX0xvY2luZm9Ac3RkQEBRQkVQQkRYWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBzdGQ6Ol9UaW1ldmVjOjpfR2V0cHRyKHZvaWQpY29uc3QgDQorP19HZXRwdHJAX1RpbWV2ZWNAc3RkQEBRQkVQQVhYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Ol9UaW1ldmVjICBfX3RoaXNjYWxsIHN0ZDo6X0xvY2luZm86Ol9HZXR0bmFtZXModm9pZCljb25zdCANCis/X0dldHRuYW1lc0BfTG9jaW5mb0BzdGRAQFFCRT9BVl9UaW1ldmVjQDJAWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpfTG9jaW5mbzo6X0dldHRydWUodm9pZCljb25zdCANCis/X0dldHRydWVAX0xvY2luZm9Ac3RkQEBRQkVQQkRYWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBzdGQ6Ol9Mb2NpbmZvOjpfR2V0eWVzKHZvaWQpY29uc3QgDQorP19HZXR5ZXNAX0xvY2luZm9Ac3RkQEBRQkVQQkRYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjpfTG9jaW1wICogIHN0ZDo6bG9jYWxlOjpfTG9jaW1wOjpfR2xvYmFsDQorP19HbG9iYWxAX0xvY2ltcEBsb2NhbGVAc3RkQEAwUEFWMTIzQEEgREFUQQ0KKzsgcHJvdGVjdGVkOiBjaGFyICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Ol9HbmRlYyh2b2lkKQ0KKz9fR25kZWNAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJQUVQQURYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Ol9HbmRlYyh2b2lkKQ0KKz9fR25kZWNAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJQUVQQUdYWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Ol9HbmluYyh2b2lkKQ0KKz9fR25pbmNAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJQUVQQURYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Ol9HbmluYyh2b2lkKQ0KKz9fR25pbmNAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJQUVQQUdYWg0KKzsgcHJpdmF0ZTogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6X0dyb3codW5zaWduZWQgaW50LGJvb2wpDQorP19Hcm93QD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBBQUVfTklfTkBaDQorOyBwcml2YXRlOiBib29sIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpfR3Jvdyh1bnNpZ25lZCBpbnQsYm9vbCkNCis/X0dyb3dAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQEFBRV9OSV9OQFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgIHN0ZDo6bG9jYWxlOjppZDo6X0lkX2NudA0KKz9fSWRfY250QGlkQGxvY2FsZUBzdGRAQDBIQSBEQVRBDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjaGFyICogX19jZGVjbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9JZm10KGNoYXIgKixjaGFyLGludCkNCis/X0lmbXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAS0FQQURQQURESEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjaGFyICogX19jZGVjbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9JZm10KGNoYXIgKixjaGFyLGludCkNCis/X0lmbXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAS0FQQURQQURESEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmxvY2FsZTo6ZmFjZXQ6Ol9JbmNyZWYodm9pZCkNCis/X0luY3JlZkBmYWNldEBsb2NhbGVAc3RkQEBRQUVYWFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgIHN0ZDo6aW9zX2Jhc2U6Ol9JbmRleA0KKz9fSW5kZXhAaW9zX2Jhc2VAc3RkQEAwSEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Ol9DdHI8ZmxvYXQ+OjpfSW5mdihmbG9hdCkNCis/X0luZnZAPyRfQ3RyQE1Ac3RkQEBTQU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+OjpfSW5mdihkb3VibGUpDQorP19JbmZ2QD8kX0N0ckBOQHN0ZEBAU0FOTkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT46Ol9JbmZ2KGxvbmcgZG91YmxlKQ0KKz9fSW5mdkA/JF9DdHJAT0BzdGRAQFNBT09AWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PGNoYXI+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYpDQorP19Jbml0QD8kX01wdW5jdEBEQHN0ZEBASUFFWEFCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJikNCis/X0luaXRAPyRfTXB1bmN0QEdAc3RkQEBJQUVYQUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6X0luaXQoc3RydWN0IF9pb2J1ZiAqLGVudW0gc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6X0luaXRmbCkNCis/X0luaXRAPyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUFFWFBBVV9pb2J1ZkBAVzRfSW5pdGZsQDEyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Ol9Jbml0KHN0cnVjdCBfaW9idWYgKixlbnVtIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6X0luaXRmbCkNCis/X0luaXRAPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUFFWFBBVV9pb2J1ZkBAVzRfSW5pdGZsQDEyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Ol9Jbml0KGNoYXIgKiAqLGNoYXIgKiAqLGludCAqLGNoYXIgKiAqLGNoYXIgKiAqLGludCAqKQ0KKz9fSW5pdEA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElBRVhQQVBBRDBQQUgwMDFAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpfSW5pdCh2b2lkKQ0KKz9fSW5pdEA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElBRVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Ol9Jbml0KHVuc2lnbmVkIHNob3J0ICogKix1bnNpZ25lZCBzaG9ydCAqICosaW50ICosdW5zaWduZWQgc2hvcnQgKiAqLHVuc2lnbmVkIHNob3J0ICogKixpbnQgKikNCis/X0luaXRAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJQUVYUEFQQUcwUEFIMDAxQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpfSW5pdCh2b2lkKQ0KKz9fSW5pdEA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElBRVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpfSW5pdChjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50LGludCkNCis/X0luaXRAPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQElBRVhQQkRJSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Ol9Jbml0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50LGludCkNCis/X0luaXRAPyRiYXNpY19zdHJpbmdidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQElBRVhQQkdJSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnQ8Y2hhcixjaGFyLGludD46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJikNCis/X0luaXRAPyRjb2RlY3Z0QERESEBzdGRAQElBRVhBQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYpDQorP19Jbml0QD8kY29kZWN2dEBHREhAc3RkQEBJQUVYQUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpjb2xsYXRlPGNoYXI+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYpDQorP19Jbml0QD8kY29sbGF0ZUBEQHN0ZEBASUFFWEFCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJikNCis/X0luaXRAPyRjb2xsYXRlQEdAc3RkQEBJQUVYQUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTxjaGFyPjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmKQ0KKz9fSW5pdEA/JGN0eXBlQERAc3RkQEBJQUVYQUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJikNCis/X0luaXRAPyRjdHlwZUBHQHN0ZEBASUFFWEFCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXM8Y2hhcj46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJikNCis/X0luaXRAPyRtZXNzYWdlc0BEQHN0ZEBASUFFWEFCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXM8dW5zaWduZWQgc2hvcnQ+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYpDQorP19Jbml0QD8kbWVzc2FnZXNAR0BzdGRAQElBRVhBQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmKQ0KKz9fSW5pdEA/JG1vbmV5X2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQElBRVhBQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om1vbmV5X2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmKQ0KKz9fSW5pdEA/JG1vbmV5X2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQElBRVhBQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmKQ0KKz9fSW5pdEA/JG1vbmV5X3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQElBRVhBQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om1vbmV5X3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmKQ0KKz9fSW5pdEA/JG1vbmV5X3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQElBRVhBQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJikNCis/X0luaXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBASUFFWEFCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmKQ0KKz9fSW5pdEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBJQUVYQUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYpDQorP19Jbml0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQElBRVhBQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJikNCis/X0luaXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBASUFFWEFCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJikNCis/X0luaXRAPyRudW1wdW5jdEBEQHN0ZEBASUFFWEFCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYpDQorP19Jbml0QD8kbnVtcHVuY3RAR0BzdGRAQElBRVhBQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYpDQorP19Jbml0QD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBJQUVYQUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0luaXQoY2xhc3Mgc3RkOjpfTG9jaW5mbyBjb25zdCAmKQ0KKz9fSW5pdEA/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBASUFFWEFCVl9Mb2NpbmZvQDJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6dGltZV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9Jbml0KGNsYXNzIHN0ZDo6X0xvY2luZm8gY29uc3QgJikNCis/X0luaXRAPyR0aW1lX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQElBRVhBQlZfTG9jaW5mb0AyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OnRpbWVfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfSW5pdChjbGFzcyBzdGQ6Ol9Mb2NpbmZvIGNvbnN0ICYpDQorP19Jbml0QD8kdGltZV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBJQUVYQUJWX0xvY2luZm9AMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6X0luaXQodm9pZCkNCis/X0luaXRAaW9zX2Jhc2VAc3RkQEBJQUVYWFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6X0xvY2ltcCAqIF9fY2RlY2wgc3RkOjpsb2NhbGU6Ol9Jbml0KHZvaWQpDQorP19Jbml0QGxvY2FsZUBzdGRAQENBUEFWX0xvY2ltcEAxMkBYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpzdHJzdHJlYW1idWY6Ol9Jbml0KGludCxjaGFyICosY2hhciAqLGludCkNCis/X0luaXRAc3Ryc3RyZWFtYnVmQHN0ZEBASUFFWEhQQUQwSEBaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50ICBzdGQ6Omlvc19iYXNlOjpJbml0OjpfSW5pdF9jbnQNCis/X0luaXRfY250QEluaXRAaW9zX2Jhc2VAc3RkQEAwSEEgREFUQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGludCAgc3RkOjpfV2luaXQ6Ol9Jbml0X2NudA0KKz9fSW5pdF9jbnRAX1dpbml0QHN0ZEBAMEhBIERBVEENCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Ol9Jbml0Y3Z0KHZvaWQpDQorP19Jbml0Y3Z0QD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElBRVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpfSW5pdGN2dCh2b2lkKQ0KKz9fSW5pdGN2dEA/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJQUVYWFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfSXB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixjaGFyLGNoYXIgKix1bnNpZ25lZCBpbnQpDQorP19JcHV0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQEtBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJARFBBRElAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X0lwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJix1bnNpZ25lZCBzaG9ydCxjaGFyICosdW5zaWduZWQgaW50KQ0KKz9fSXB1dEA/JG51bV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBLQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQEdQQURJQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6bG9jYWxlOjpfSXNjbG9jKHZvaWQpY29uc3QgDQorP19Jc2Nsb2NAbG9jYWxlQHN0ZEBAUUJFX05YWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6X0N0cjxmbG9hdD46Ol9Jc2luZihmbG9hdCkNCis/X0lzaW5mQD8kX0N0ckBNQHN0ZEBAU0FfTk1AWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+OjpfSXNpbmYoZG91YmxlKQ0KKz9fSXNpbmZAPyRfQ3RyQE5Ac3RkQEBTQV9OTkBaDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjpfQ3RyPGxvbmcgZG91YmxlPjo6X0lzaW5mKGxvbmcgZG91YmxlKQ0KKz9fSXNpbmZAPyRfQ3RyQE9Ac3RkQEBTQV9OT0BaDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjpfQ3RyPGZsb2F0Pjo6X0lzbmFuKGZsb2F0KQ0KKz9fSXNuYW5APyRfQ3RyQE1Ac3RkQEBTQV9OTUBaDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjpfQ3RyPGRvdWJsZT46Ol9Jc25hbihkb3VibGUpDQorP19Jc25hbkA/JF9DdHJATkBzdGRAQFNBX05OQFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+OjpfSXNuYW4obG9uZyBkb3VibGUpDQorP19Jc25hbkA/JF9DdHJAT0BzdGRAQFNBX05PQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46Ol9NYWtwYXQoc3RydWN0IHN0ZDo6bW9uZXlfYmFzZTo6cGF0dGVybiAmLGNoYXIsY2hhcixjaGFyKQ0KKz9fTWFrcGF0QD8kX01wdW5jdEBEQHN0ZEBAQUFFWEFBVXBhdHRlcm5AbW9uZXlfYmFzZUAyQEREREBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6X01ha3BhdChzdHJ1Y3Qgc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuICYsY2hhcixjaGFyLGNoYXIpDQorP19NYWtwYXRAPyRfTXB1bmN0QEdAc3RkQEBBQUVYQUFVcGF0dGVybkBtb25leV9iYXNlQDJAREREQFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6X01vZGUoaW50KQ0KKz9fTW9kZUA/JGJhc2ljX3N0cmluZ2J1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAQUFFSEhAWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpfTW9kZShpbnQpDQorP19Nb2RlQD8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBBQUVISEBaDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6X0N0cjxmbG9hdD46Ol9OYW52KGZsb2F0KQ0KKz9fTmFudkA/JF9DdHJATUBzdGRAQFNBTU1AWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGRvdWJsZT46Ol9OYW52KGRvdWJsZSkNCis/X05hbnZAPyRfQ3RyQE5Ac3RkQEBTQU5OQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGxvbmcgZG91YmxlPjo6X05hbnYobG9uZyBkb3VibGUpDQorP19OYW52QD8kX0N0ckBPQHN0ZEBAU0FPT0BaDQorOyB2b2lkIF9fY2RlY2wgc3RkOjpfTm9tZW1vcnkodm9pZCkNCis/X05vbWVtb3J5QHN0ZEBAWUFYWFoNCis7IHByaXZhdGU6IHN0YXRpYyBjaGFyIGNvbnN0ICogX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Ol9OdWxsc3RyKHZvaWQpDQorP19OdWxsc3RyQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBDQVBCRFhaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6X051bGxzdHIodm9pZCkNCis/X051bGxzdHJAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQENBUEJHWFoNCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Ol9QZGlmKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICopDQorP19QZGlmQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBDQUlQQkQwQFoNCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Ol9QZGlmKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/X1BkaWZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQENBSVBCRzBAWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Ol9QbmluYyh2b2lkKQ0KKz9fUG5pbmNAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJQUVQQURYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Ol9QbmluYyh2b2lkKQ0KKz9fUG5pbmNAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJQUVQQUdYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNoYXIgKiBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6X1BzdW0oY2hhciAqLHVuc2lnbmVkIGludCkNCis/X1BzdW1APyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQENBUEFEUEFESUBaDQorOyBwcml2YXRlOiBzdGF0aWMgY2hhciBjb25zdCAqIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpfUHN1bShjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9fUHN1bUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAQ0FQQkRQQkRJQFoNCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCAqIF9fY2RlY2wgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpfUHN1bSh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGludCkNCis/X1BzdW1APyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQENBUEFHUEFHSUBaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX2NkZWNsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6X1BzdW0odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP19Qc3VtQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBDQVBCR1BCR0lAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjptb25leV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9QdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9fUHV0QD8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAQ0E/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAUEJESUBaDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfUHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/X1B1dEA/JG1vbmV5X3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQENBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQFBCR0lAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9QdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9fUHV0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQEtBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQFBCRElAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X1B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP19QdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAS0E/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAUEJHSUBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6X1B1dGMoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9fUHV0Y0A/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBLQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBQQkRJQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX19jZGVjbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9QdXRjKGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9fUHV0Y0A/JG51bV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBLQT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBQQkRJQFoNCis7IHByaXZhdGU6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjptb25leV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9QdXRtZmxkKGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYsY2hhcixib29sLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiljb25zdCANCis/X1B1dG1mbGRAPyRtb25leV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBBQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAX05BQVZpb3NfYmFzZUAyQEQxVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBAWg0KKzsgcHJpdmF0ZTogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpfUHV0bWZsZChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYsdW5zaWduZWQgc2hvcnQsYm9vbCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4pY29uc3QgDQorP19QdXRtZmxkQD8kbW9uZXlfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAQUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQF9OQUFWaW9zX2Jhc2VAMkBHMVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAQFoNCis7ID9CTkA/Pz8kX0ZhYnNATUBzdGQ6Ol9SMihZQU1BQlY/JGNvbXBsZXhATUAxQFBBSEBaQDRNQikNCis/X1IyQD9CTkA/Pz8kX0ZhYnNATUBzdGRAQFlBTUFCVj8kY29tcGxleEBNQDFAUEFIQFpANE1CDQorOyA/Qk5APz8/JF9GYWJzQE5Ac3RkOjpfUjIoWUFOQUJWPyRjb21wbGV4QE5AMUBQQUhAWkA0TkIpDQorP19SMkA/Qk5APz8/JF9GYWJzQE5Ac3RkQEBZQU5BQlY/JGNvbXBsZXhATkAxQFBBSEBaQDROQg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgY2hhciAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpfUmVmY250KGNoYXIgY29uc3QgKikNCis/X1JlZmNudEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAQUFFQUFFUEJEQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGNoYXIgJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6X1JlZmNudCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9fUmVmY250QD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBBQUVBQUVQQkdAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjptb25leV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46Ol9SZXAoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjaGFyLHVuc2lnbmVkIGludCkNCis/X1JlcEA/JG1vbmV5X3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQENBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQERJQFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fY2RlY2wgc3RkOjptb25leV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46Ol9SZXAoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGludCkNCis/X1JlcEA/JG1vbmV5X3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQENBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEdJQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fY2RlY2wgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpfUmVwKGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2hhcix1bnNpZ25lZCBpbnQpDQorP19SZXBAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAS0E/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJARElAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX2NkZWNsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6X1JlcChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgaW50KQ0KKz9fUmVwQD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQEtBP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEdJQFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgc3RkOjpfQ3RyPGZsb2F0Pjo6X1NpbmgoZmxvYXQsZmxvYXQpDQorP19TaW5oQD8kX0N0ckBNQHN0ZEBAU0FNTU1AWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGRvdWJsZT46Ol9TaW5oKGRvdWJsZSxkb3VibGUpDQorP19TaW5oQD8kX0N0ckBOQHN0ZEBAU0FOTk5AWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+OjpfU2luaChsb25nIGRvdWJsZSxsb25nIGRvdWJsZSkNCis/X1NpbmhAPyRfQ3RyQE9Ac3RkQEBTQU9PT0BaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpfU3BsaXQodm9pZCkNCis/X1NwbGl0QD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Ol9TcGxpdCh2b2lkKQ0KKz9fU3BsaXRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQEFBRVhYWg0KKzsgaW50ICBgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6X0luaXQoc3RydWN0IF9pb2J1ZiAqLGVudW0gc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6X0luaXRmbCknOjpgMic6Ol9TdGluaXQNCis/X1N0aW5pdEA/MT8/X0luaXRAPyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUFFWFBBVV9pb2J1ZkBAVzRfSW5pdGZsQDIzQEBaQDRIQSBEQVRBDQorOyBpbnQgIGBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Ol9Jbml0KHN0cnVjdCBfaW9idWYgKixlbnVtIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6X0luaXRmbCknOjpgMic6Ol9TdGluaXQNCis/X1N0aW5pdEA/MT8/X0luaXRAPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUFFWFBBVV9pb2J1ZkBAVzRfSW5pdGZsQDIzQEBaQDRIQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgYm9vbCAgc3RkOjppb3NfYmFzZTo6X1N5bmMNCis/X1N5bmNAaW9zX2Jhc2VAc3RkQEAwX05BIERBVEENCis7IHByb3RlY3RlZDogc3RhdGljIHZvaWQgX19jZGVjbCBzdGQ6OmN0eXBlPGNoYXI+OjpfVGVybSh2b2lkKQ0KKz9fVGVybUA/JGN0eXBlQERAc3RkQEBLQVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6X1RpZHkoYm9vbCkNCis/X1RpZHlAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQEFBRVhfTkBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpfVGlkeShib29sKQ0KKz9fVGlkeUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAQUFFWF9OQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6X1RpZHkodm9pZCkNCis/X1RpZHlAPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQElBRVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpfVGlkeSh2b2lkKQ0KKz9fVGlkeUA/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBASUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6X1RpZHkodm9pZCkNCis/X1RpZHlAaW9zX2Jhc2VAc3RkQEBBQUVYWFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fY2RlY2wgc3RkOjpsb2NhbGU6Ol9UaWR5KHZvaWQpDQorP19UaWR5QGxvY2FsZUBzdGRAQENBWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OnN0cnN0cmVhbWJ1Zjo6X1RpZHkodm9pZCkNCis/X1RpZHlAc3Ryc3RyZWFtYnVmQHN0ZEBASUFFWFhaDQorOyB2b2lkIF9fY2RlY2wgc3RkOjpfWGxlbih2b2lkKQ0KKz9fWGxlbkBzdGRAQFlBWFhaDQorOyB2b2lkIF9fY2RlY2wgc3RkOjpfWHJhbih2b2lkKQ0KKz9fWHJhbkBzdGRAQFlBWFhaDQorOyBzdHJ1Y3QgX2lvYnVmICogX19jZGVjbCBzdGQ6Ol9fRmlvcGVuKGNoYXIgY29uc3QgKixpbnQpDQorP19fRmlvcGVuQHN0ZEBAWUFQQVVfaW9idWZAQFBCREhAWg0KKzsgZmxvYXQgX19jZGVjbCBzdGQ6OmFicyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorP2Fic0BzdGRAQFlBTUFCVj8kY29tcGxleEBNQDFAQFoNCis7IGRvdWJsZSBfX2NkZWNsIHN0ZDo6YWJzKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorP2Fic0BzdGRAQFlBTkFCVj8kY29tcGxleEBOQDFAQFoNCis7IGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjphYnMoY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz9hYnNAc3RkQEBZQU9BQlY/JGNvbXBsZXhAT0AxQEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnRfYmFzZTo6YWx3YXlzX25vY29udih2b2lkKWNvbnN0IA0KKz9hbHdheXNfbm9jb252QGNvZGVjdnRfYmFzZUBzdGRAQFFCRV9OWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmFwcGVuZChjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/YXBwZW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYxMkBBQlYxMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXBwZW5kKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP2FwcGVuZEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJAQUJWMTJASUlAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXBwZW5kKHVuc2lnbmVkIGludCxjaGFyKQ0KKz9hcHBlbmRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjEyQElEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmFwcGVuZChjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqKQ0KKz9hcHBlbmRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjEyQFBCRDBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXBwZW5kKGNoYXIgY29uc3QgKikNCis/YXBwZW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYxMkBQQkRAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXBwZW5kKGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP2FwcGVuZEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJAUEJESUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjphcHBlbmQoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorP2FwcGVuZEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJAQUJWMTJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFwcGVuZChjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz9hcHBlbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQEFCVjEyQElJQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFwcGVuZCh1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQpDQorP2FwcGVuZEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJASUdAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YXBwZW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/YXBwZW5kQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQVYxMkBQQkcwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFwcGVuZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9hcHBlbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQFBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjphcHBlbmQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP2FwcGVuZEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJAUEJHSUBaDQorOyBmbG9hdCBfX2NkZWNsIHN0ZDo6YXJnKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/YXJnQHN0ZEBAWUFNQUJWPyRjb21wbGV4QE1AMUBAWg0KKzsgZG91YmxlIF9fY2RlY2wgc3RkOjphcmcoY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/YXJnQHN0ZEBAWUFOQUJWPyRjb21wbGV4QE5AMUBAWg0KKzsgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6OmFyZyhjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorP2FyZ0BzdGRAQFlBT0FCVj8kY29tcGxleEBPQDFAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmFzc2lnbihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/YXNzaWduQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYxMkBBQlYxMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXNzaWduKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP2Fzc2lnbkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJAQUJWMTJASUlAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXNzaWduKHVuc2lnbmVkIGludCxjaGFyKQ0KKz9hc3NpZ25APyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjEyQElEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmFzc2lnbihjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqKQ0KKz9hc3NpZ25APyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjEyQFBCRDBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXNzaWduKGNoYXIgY29uc3QgKikNCis/YXNzaWduQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYxMkBQQkRAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YXNzaWduKGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP2Fzc2lnbkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJAUEJESUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojphc3NpZ24oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorP2Fzc2lnbkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJAQUJWMTJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFzc2lnbihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz9hc3NpZ25APyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQEFCVjEyQElJQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFzc2lnbih1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQpDQorP2Fzc2lnbkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJASUdAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YXNzaWduKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/YXNzaWduQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQVYxMkBQQkcwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmFzc2lnbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9hc3NpZ25APyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQFBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojphc3NpZ24odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP2Fzc2lnbkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJAUEJHSUBaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyICogX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+Ojphc3NpZ24oY2hhciAqLHVuc2lnbmVkIGludCxjaGFyIGNvbnN0ICYpDQorP2Fzc2lnbkA/JGNoYXJfdHJhaXRzQERAc3RkQEBTQVBBRFBBRElBQkRAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj46OmFzc2lnbihjaGFyICYsY2hhciBjb25zdCAmKQ0KKz9hc3NpZ25APyRjaGFyX3RyYWl0c0BEQHN0ZEBAU0FYQUFEQUJEQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0ICogX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6YXNzaWduKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICYpDQorP2Fzc2lnbkA/JGNoYXJfdHJhaXRzQEdAc3RkQEBTQVBBR1BBR0lBQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+Ojphc3NpZ24odW5zaWduZWQgc2hvcnQgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAmKQ0KKz9hc3NpZ25APyRjaGFyX3RyYWl0c0BHQHN0ZEBAU0FYQUFHQUJHQFoNCis7IHB1YmxpYzogY2hhciAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjphdCh1bnNpZ25lZCBpbnQpDQorP2F0QD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQURJQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjphdCh1bnNpZ25lZCBpbnQpY29uc3QgDQorP2F0QD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVBQkRJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6YXQodW5zaWduZWQgaW50KQ0KKz9hdEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFHSUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmF0KHVuc2lnbmVkIGludCljb25zdCANCis/YXRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUFCR0lAWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Ol9DdHI8ZmxvYXQ+OjphdGFuMihmbG9hdCxmbG9hdCkNCis/YXRhbjJAPyRfQ3RyQE1Ac3RkQEBTQU1NTUBaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8ZG91YmxlPjo6YXRhbjIoZG91YmxlLGRvdWJsZSkNCis/YXRhbjJAPyRfQ3RyQE5Ac3RkQEBTQU5OTkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT46OmF0YW4yKGxvbmcgZG91YmxlLGxvbmcgZG91YmxlKQ0KKz9hdGFuMkA/JF9DdHJAT0BzdGRAQFNBT09PQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6OmJhZCh2b2lkKWNvbnN0IA0KKz9iYWRAaW9zX2Jhc2VAc3RkQEBRQkVfTlhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmVnaW4odm9pZCkNCis/YmVnaW5APyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRVBBRFhaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6YmVnaW4odm9pZCljb25zdCANCis/YmVnaW5APyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRVBCRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmJlZ2luKHZvaWQpDQorP2JlZ2luQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVQQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpiZWdpbih2b2lkKWNvbnN0IA0KKz9iZWdpbkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFUEJHWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpjX3N0cih2b2lkKWNvbnN0IA0KKz9jX3N0ckA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFUEJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6Y19zdHIodm9pZCljb25zdCANCis/Y19zdHJAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRVBCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6Y2FwYWNpdHkodm9pZCljb25zdCANCis/Y2FwYWNpdHlAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmNhcGFjaXR5KHZvaWQpY29uc3QgDQorP2NhcGFjaXR5QD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJWFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIHN0ZDo6Y2Vycg0KKz9jZXJyQHN0ZEBAM1Y/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBBIERBVEENCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIHN0ZDo6Y2luDQorP2NpbkBzdGRAQDNWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZSBjb25zdCAmIF9fY2RlY2wgc3RkOjpsb2NhbGU6OmNsYXNzaWModm9pZCkNCis/Y2xhc3NpY0Bsb2NhbGVAc3RkQEBTQUFCVjEyQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBzaG9ydCBjb25zdCAqIF9fY2RlY2wgc3RkOjpjdHlwZTxjaGFyPjo6Y2xhc3NpY190YWJsZSh2b2lkKQ0KKz9jbGFzc2ljX3RhYmxlQD8kY3R5cGVAREBzdGRAQEtBUEJGWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Y2xlYXIoc2hvcnQpDQorP2NsZWFyQD8kYmFzaWNfaW9zQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFWEZAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpjbGVhcihpbnQsYm9vbCkNCis/Y2xlYXJAPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVYSF9OQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpjbGVhcihzaG9ydCkNCis/Y2xlYXJAPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVYRkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6Y2xlYXIoaW50LGJvb2wpDQorP2NsZWFyQD8kYmFzaWNfaW9zQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFWEhfTkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpjbGVhcihzaG9ydCkNCis/Y2xlYXJAaW9zX2Jhc2VAc3RkQEBRQUVYRkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpjbGVhcihpbnQsYm9vbCkNCis/Y2xlYXJAaW9zX2Jhc2VAc3RkQEBRQUVYSF9OQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIHN0ZDo6Y2xvZw0KKz9jbG9nQHN0ZEBAM1Y/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBBIERBVEENCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Y2xvc2Uodm9pZCkNCis/Y2xvc2VAPyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFUEFWMTJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmNsb3NlKHZvaWQpDQorP2Nsb3NlQD8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVBBVjEyQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpjbG9zZSh2b2lkKQ0KKz9jbG9zZUA/JGJhc2ljX2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6Y2xvc2Uodm9pZCkNCis/Y2xvc2VAPyRiYXNpY19mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Y2xvc2Uodm9pZCkNCis/Y2xvc2VAPyRiYXNpY19pZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6Y2xvc2Uodm9pZCkNCis/Y2xvc2VAPyRiYXNpY19pZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmNsb3NlKHZvaWQpDQorP2Nsb3NlQD8kYmFzaWNfb2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmNsb3NlKHZvaWQpDQorP2Nsb3NlQD8kYmFzaWNfb2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXM8Y2hhcj46OmNsb3NlKGludCljb25zdCANCis/Y2xvc2VAPyRtZXNzYWdlc0BEQHN0ZEBAUUJFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjptZXNzYWdlczx1bnNpZ25lZCBzaG9ydD46OmNsb3NlKGludCljb25zdCANCis/Y2xvc2VAPyRtZXNzYWdlc0BHQHN0ZEBAUUJFWEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmNvbXBhcmUoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpY29uc3QgDQorP2NvbXBhcmVAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUhBQlYxMkBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmNvbXBhcmUodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiljb25zdCANCis/Y29tcGFyZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSElJQUJWMTJAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+Ojpjb21wYXJlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCANCis/Y29tcGFyZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSElJQUJWMTJASUlAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmNvbXBhcmUodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxjaGFyIGNvbnN0ICopY29uc3QgDQorP2NvbXBhcmVAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUhJSVBCREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6Y29tcGFyZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2NvbXBhcmVAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUhJSVBCRElAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmNvbXBhcmUoY2hhciBjb25zdCAqKWNvbnN0IA0KKz9jb21wYXJlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVIUEJEQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojpjb21wYXJlKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKWNvbnN0IA0KKz9jb21wYXJlQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVIQUJWMTJAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojpjb21wYXJlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpY29uc3QgDQorP2NvbXBhcmVAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUhJSUFCVjEyQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6Y29tcGFyZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP2NvbXBhcmVAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUhJSUFCVjEyQElJQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojpjb21wYXJlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/Y29tcGFyZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSElJUEJHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojpjb21wYXJlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2NvbXBhcmVAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUhJSVBCR0lAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmNvbXBhcmUodW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/Y29tcGFyZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSFBCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+Ojpjb21wYXJlKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9jb21wYXJlQD8kY2hhcl90cmFpdHNAREBzdGRAQFNBSFBCRDBJQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+Ojpjb21wYXJlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP2NvbXBhcmVAPyRjaGFyX3RyYWl0c0BHQHN0ZEBAU0FIUEJHMElAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmNvbGxhdGU8Y2hhcj46OmNvbXBhcmUoY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqKWNvbnN0IA0KKz9jb21wYXJlQD8kY29sbGF0ZUBEQHN0ZEBAUUJFSFBCRDAwMEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46OmNvbXBhcmUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/Y29tcGFyZUA/JGNvbGxhdGVAR0BzdGRAQFFCRUhQQkcwMDBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6OmNvbmooY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz9jb25qQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAxQEFCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OmNvbmooY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/Y29uakBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6OmNvbmooY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz9jb25qQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFCVjIxQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6Y29weShjaGFyICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCANCis/Y29weUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSVBBRElJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojpjb3B5KHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCANCis/Y29weUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSVBBR0lJQFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgKiBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj46OmNvcHkoY2hhciAqLGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP2NvcHlAPyRjaGFyX3RyYWl0c0BEQHN0ZEBAU0FQQURQQURQQkRJQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0ICogX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6Y29weSh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9jb3B5QD8kY2hhcl90cmFpdHNAR0BzdGRAQFNBUEFHUEFHUEJHSUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojpjb3B5Zm10KGNsYXNzIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiBjb25zdCAmKQ0KKz9jb3B5Zm10QD8kYmFzaWNfaW9zQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAQUJWMTJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojpjb3B5Zm10KGNsYXNzIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorP2NvcHlmbXRAPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYxMkBBQlYxMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Omlvc19iYXNlICYgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpjb3B5Zm10KGNsYXNzIHN0ZDo6aW9zX2Jhc2UgY29uc3QgJikNCis/Y29weWZtdEBpb3NfYmFzZUBzdGRAQFFBRUFBVjEyQEFCVjEyQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6X0N0cjxmbG9hdD46OmNvcyhmbG9hdCkNCis/Y29zQD8kX0N0ckBNQHN0ZEBAU0FNTUBaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8ZG91YmxlPjo6Y29zKGRvdWJsZSkNCis/Y29zQD8kX0N0ckBOQHN0ZEBAU0FOTkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT46OmNvcyhsb25nIGRvdWJsZSkNCis/Y29zQD8kX0N0ckBPQHN0ZEBAU0FPT0BaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6Y29zKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/Y29zQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAxQEFCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OmNvcyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz9jb3NAc3RkQEBZQT9BVj8kY29tcGxleEBOQDFAQUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpjb3MoY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz9jb3NAc3RkQEBZQT9BVj8kY29tcGxleEBPQDFAQUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpjb3NoKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/Y29zaEBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpjb3NoKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorP2Nvc2hAc3RkQEBZQT9BVj8kY29tcGxleEBOQDFAQUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpjb3NoKGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/Y29zaEBzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgc3RkOjpjb3V0DQorP2NvdXRAc3RkQEAzVj8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEEgREFUQQ0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PGNoYXI+OjpjdXJyX3N5bWJvbCh2b2lkKWNvbnN0IA0KKz9jdXJyX3N5bWJvbEA/JF9NcHVuY3RAREBzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6Y3Vycl9zeW1ib2wodm9pZCljb25zdCANCis/Y3Vycl9zeW1ib2xAPyRfTXB1bmN0QEdAc3RkQEBRQkU/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpkYXRhKHZvaWQpY29uc3QgDQorP2RhdGFAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRVBCRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmRhdGEodm9pZCljb25zdCANCis/ZGF0YUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFUEJHWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZGF0ZV9vcmRlcih2b2lkKWNvbnN0IA0KKz9kYXRlX29yZGVyQD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZGF0ZV9vcmRlcih2b2lkKWNvbnN0IA0KKz9kYXRlX29yZGVyQD8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkVIWFoNCis7IHB1YmxpYzogY2hhciBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDxjaGFyPjo6ZGVjaW1hbF9wb2ludCh2b2lkKWNvbnN0IA0KKz9kZWNpbWFsX3BvaW50QD8kX01wdW5jdEBEQHN0ZEBAUUJFRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6ZGVjaW1hbF9wb2ludCh2b2lkKWNvbnN0IA0KKz9kZWNpbWFsX3BvaW50QD8kX01wdW5jdEBHQHN0ZEBAUUJFR1haDQorOyBwdWJsaWM6IGNoYXIgX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PGNoYXI+OjpkZWNpbWFsX3BvaW50KHZvaWQpY29uc3QgDQorP2RlY2ltYWxfcG9pbnRAPyRudW1wdW5jdEBEQHN0ZEBAUUJFRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmRlY2ltYWxfcG9pbnQodm9pZCljb25zdCANCis/ZGVjaW1hbF9wb2ludEA/JG51bXB1bmN0QEdAc3RkQEBRQkVHWFoNCis7IHB1YmxpYzogc3RhdGljIHNpZ25lZCBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxzaWduZWQgY2hhcj46OmRlbm9ybV9taW4odm9pZCkNCis/ZGVub3JtX21pbkA/JG51bWVyaWNfbGltaXRzQENAc3RkQEBTQUNYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hhcj46OmRlbm9ybV9taW4odm9pZCkNCis/ZGVub3JtX21pbkA/JG51bWVyaWNfbGltaXRzQERAc3RkQEBTQURYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgY2hhcj46OmRlbm9ybV9taW4odm9pZCkNCis/ZGVub3JtX21pbkA/JG51bWVyaWNfbGltaXRzQEVAc3RkQEBTQUVYWg0KKzsgcHVibGljOiBzdGF0aWMgc2hvcnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNob3J0Pjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNARkBzdGRAQFNBRlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgc2hvcnQ+OjpkZW5vcm1fbWluKHZvaWQpDQorP2Rlbm9ybV9taW5APyRudW1lcmljX2xpbWl0c0BHQHN0ZEBAU0FHWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNASEBzdGRAQFNBSFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGludD46OmRlbm9ybV9taW4odm9pZCkNCis/ZGVub3JtX21pbkA/JG51bWVyaWNfbGltaXRzQElAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZz46OmRlbm9ybV9taW4odm9pZCkNCis/ZGVub3JtX21pbkA/JG51bWVyaWNfbGltaXRzQEpAc3RkQEBTQUpYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgbG9uZz46OmRlbm9ybV9taW4odm9pZCkNCis/ZGVub3JtX21pbkA/JG51bWVyaWNfbGltaXRzQEtAc3RkQEBTQUtYWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNATUBzdGRAQFNBTVhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmRlbm9ybV9taW4odm9pZCkNCis/ZGVub3JtX21pbkA/JG51bWVyaWNfbGltaXRzQE5Ac3RkQEBTQU5YWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgZG91YmxlPjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNAT0BzdGRAQFNBT1haDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxib29sPjo6ZGVub3JtX21pbih2b2lkKQ0KKz9kZW5vcm1fbWluQD8kbnVtZXJpY19saW1pdHNAX05Ac3RkQEBTQV9OWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBib29sIF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6ZG9fYWx3YXlzX25vY29udih2b2lkKWNvbnN0IA0KKz9kb19hbHdheXNfbm9jb252QD8kY29kZWN2dEBHREhAc3RkQEBNQkVfTlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgYm9vbCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dF9iYXNlOjpkb19hbHdheXNfbm9jb252KHZvaWQpY29uc3QgDQorP2RvX2Fsd2F5c19ub2NvbnZAY29kZWN2dF9iYXNlQHN0ZEBATUJFX05YWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzPGNoYXI+Ojpkb19jbG9zZShpbnQpY29uc3QgDQorP2RvX2Nsb3NlQD8kbWVzc2FnZXNAREBzdGRAQE1CRVhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgc3RkOjptZXNzYWdlczx1bnNpZ25lZCBzaG9ydD46OmRvX2Nsb3NlKGludCljb25zdCANCis/ZG9fY2xvc2VAPyRtZXNzYWdlc0BHQHN0ZEBATUJFWEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTxjaGFyPjo6ZG9fY29tcGFyZShjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICopY29uc3QgDQorP2RvX2NvbXBhcmVAPyRjb2xsYXRlQERAc3RkQEBNQkVIUEJEMDAwQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmNvbGxhdGU8dW5zaWduZWQgc2hvcnQ+Ojpkb19jb21wYXJlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP2RvX2NvbXBhcmVAPyRjb2xsYXRlQEdAc3RkQEBNQkVIUEJHMDAwQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PGNoYXI+Ojpkb19jdXJyX3N5bWJvbCh2b2lkKWNvbnN0IA0KKz9kb19jdXJyX3N5bWJvbEA/JF9NcHVuY3RAREBzdGRAQE1CRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojpkb19jdXJyX3N5bWJvbCh2b2lkKWNvbnN0IA0KKz9kb19jdXJyX3N5bWJvbEA/JF9NcHVuY3RAR0BzdGRAQE1CRT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX2RhdGVfb3JkZXIodm9pZCljb25zdCANCis/ZG9fZGF0ZV9vcmRlckA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZGF0ZV9vcmRlcih2b2lkKWNvbnN0IA0KKz9kb19kYXRlX29yZGVyQD8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNQkVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjaGFyIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PGNoYXI+Ojpkb19kZWNpbWFsX3BvaW50KHZvaWQpY29uc3QgDQorP2RvX2RlY2ltYWxfcG9pbnRAPyRfTXB1bmN0QERAc3RkQEBNQkVEWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmRvX2RlY2ltYWxfcG9pbnQodm9pZCljb25zdCANCis/ZG9fZGVjaW1hbF9wb2ludEA/JF9NcHVuY3RAR0BzdGRAQE1CRUdYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNoYXIgX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PGNoYXI+Ojpkb19kZWNpbWFsX3BvaW50KHZvaWQpY29uc3QgDQorP2RvX2RlY2ltYWxfcG9pbnRAPyRudW1wdW5jdEBEQHN0ZEBATUJFRFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6ZG9fZGVjaW1hbF9wb2ludCh2b2lkKWNvbnN0IA0KKz9kb19kZWNpbWFsX3BvaW50QD8kbnVtcHVuY3RAR0BzdGRAQE1CRUdYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD46OmRvX2VuY29kaW5nKHZvaWQpY29uc3QgDQorP2RvX2VuY29kaW5nQD8kY29kZWN2dEBHREhAc3RkQEBNQkVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnRfYmFzZTo6ZG9fZW5jb2Rpbmcodm9pZCljb25zdCANCis/ZG9fZW5jb2RpbmdAY29kZWN2dF9iYXNlQHN0ZEBATUJFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46OmRvX2ZhbHNlbmFtZSh2b2lkKWNvbnN0IA0KKz9kb19mYWxzZW5hbWVAPyRudW1wdW5jdEBEQHN0ZEBATUJFP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojpkb19mYWxzZW5hbWUodm9pZCljb25zdCANCis/ZG9fZmFsc2VuYW1lQD8kbnVtcHVuY3RAR0BzdGRAQE1CRT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDxjaGFyPjo6ZG9fZnJhY19kaWdpdHModm9pZCljb25zdCANCis/ZG9fZnJhY19kaWdpdHNAPyRfTXB1bmN0QERAc3RkQEBNQkVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojpkb19mcmFjX2RpZ2l0cyh2b2lkKWNvbnN0IA0KKz9kb19mcmFjX2RpZ2l0c0A/JF9NcHVuY3RAR0BzdGRAQE1CRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzPGNoYXI+Ojpkb19nZXQoaW50LGludCxpbnQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpY29uc3QgDQorP2RvX2dldEA/JG1lc3NhZ2VzQERAc3RkQEBNQkU/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJASEhIQUJWMzJAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjptZXNzYWdlczx1bnNpZ25lZCBzaG9ydD46OmRvX2dldChpbnQsaW50LGludCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJiljb25zdCANCis/ZG9fZ2V0QD8kbWVzc2FnZXNAR0BzdGRAQE1CRT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBISEhBQlYzMkBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjptb25leV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsbG9uZyBkb3VibGUgJiljb25zdCANCis/ZG9fZ2V0QD8kbW9uZXlfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBfTkFBVmlvc19iYXNlQDJAQUFIQUFPQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmKWNvbnN0IA0KKz9kb19nZXRAPyRtb25leV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMF9OQUFWaW9zX2Jhc2VAMkBBQUhBQVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjptb25leV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGxvbmcgZG91YmxlICYpY29uc3QgDQorP2RvX2dldEA/JG1vbmV5X2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwX05BQVZpb3NfYmFzZUAyQEFBSEFBT0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixib29sLGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiljb25zdCANCis/ZG9fZ2V0QD8kbW9uZXlfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBfTkFBVmlvc19iYXNlQDJAQUFIQUFWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHVuc2lnbmVkIHNob3J0ICYpY29uc3QgDQorP2RvX2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsdW5zaWduZWQgaW50ICYpY29uc3QgDQorP2RvX2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsbG9uZyAmKWNvbnN0IA0KKz9kb19nZXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHVuc2lnbmVkIGxvbmcgJiljb25zdCANCis/ZG9fZ2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQUtAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixmbG9hdCAmKWNvbnN0IA0KKz9kb19nZXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBTUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGRvdWJsZSAmKWNvbnN0IA0KKz9kb19nZXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBTkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGxvbmcgZG91YmxlICYpY29uc3QgDQorP2RvX2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFPQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsdm9pZCAqICYpY29uc3QgDQorP2RvX2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFQQVhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixib29sICYpY29uc3QgDQorP2RvX2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFfTkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHVuc2lnbmVkIHNob3J0ICYpY29uc3QgDQorP2RvX2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsdW5zaWduZWQgaW50ICYpY29uc3QgDQorP2RvX2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsbG9uZyAmKWNvbnN0IA0KKz9kb19nZXRAPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHVuc2lnbmVkIGxvbmcgJiljb25zdCANCis/ZG9fZ2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQUtAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixmbG9hdCAmKWNvbnN0IA0KKz9kb19nZXRAPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBTUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGRvdWJsZSAmKWNvbnN0IA0KKz9kb19nZXRAPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBTkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZ2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGxvbmcgZG91YmxlICYpY29uc3QgDQorP2RvX2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFPQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19nZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsdm9pZCAqICYpY29uc3QgDQorP2RvX2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFQQVhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX2dldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixib29sICYpY29uc3QgDQorP2RvX2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFfTkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19nZXRfZGF0ZShjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHN0cnVjdCB0bSAqKWNvbnN0IA0KKz9kb19nZXRfZGF0ZUA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSFBBVXRtQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19nZXRfZGF0ZShjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixzdHJ1Y3QgdG0gKiljb25zdCANCis/ZG9fZ2V0X2RhdGVAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhQQVV0bUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX2dldF9tb250aG5hbWUoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixzdHJ1Y3QgdG0gKiljb25zdCANCis/ZG9fZ2V0X21vbnRobmFtZUA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSFBBVXRtQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19nZXRfbW9udGhuYW1lKGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHN0cnVjdCB0bSAqKWNvbnN0IA0KKz9kb19nZXRfbW9udGhuYW1lQD8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIUEFVdG1AQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19nZXRfdGltZShjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHN0cnVjdCB0bSAqKWNvbnN0IA0KKz9kb19nZXRfdGltZUA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSFBBVXRtQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19nZXRfdGltZShjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixzdHJ1Y3QgdG0gKiljb25zdCANCis/ZG9fZ2V0X3RpbWVAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhQQVV0bUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX2dldF93ZWVrZGF5KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsc3RydWN0IHRtICopY29uc3QgDQorP2RvX2dldF93ZWVrZGF5QD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIUEFVdG1AQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX2dldF93ZWVrZGF5KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHN0cnVjdCB0bSAqKWNvbnN0IA0KKz9kb19nZXRfd2Vla2RheUA/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSFBBVXRtQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fZ2V0X3llYXIoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixzdHJ1Y3QgdG0gKiljb25zdCANCis/ZG9fZ2V0X3llYXJAPyR0aW1lX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhQQVV0bUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fZ2V0X3llYXIoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsc3RydWN0IHRtICopY29uc3QgDQorP2RvX2dldF95ZWFyQD8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIUEFVdG1AQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDxjaGFyPjo6ZG9fZ3JvdXBpbmcodm9pZCljb25zdCANCis/ZG9fZ3JvdXBpbmdAPyRfTXB1bmN0QERAc3RkQEBNQkU/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6ZG9fZ3JvdXBpbmcodm9pZCljb25zdCANCis/ZG9fZ3JvdXBpbmdAPyRfTXB1bmN0QEdAc3RkQEBNQkU/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1wdW5jdDxjaGFyPjo6ZG9fZ3JvdXBpbmcodm9pZCljb25zdCANCis/ZG9fZ3JvdXBpbmdAPyRudW1wdW5jdEBEQHN0ZEBATUJFP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojpkb19ncm91cGluZyh2b2lkKWNvbnN0IA0KKz9kb19ncm91cGluZ0A/JG51bXB1bmN0QEdAc3RkQEBNQkU/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgc3RkOjpjb2xsYXRlPGNoYXI+Ojpkb19oYXNoKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICopY29uc3QgDQorP2RvX2hhc2hAPyRjb2xsYXRlQERAc3RkQEBNQkVKUEJEMEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46OmRvX2hhc2godW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9kb19oYXNoQD8kY29sbGF0ZUBHQHN0ZEBATUJFSlBCRzBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDxjaGFyLGNoYXIsaW50Pjo6ZG9faW4oaW50ICYsY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICogJixjaGFyICosY2hhciAqLGNoYXIgKiAmKWNvbnN0IA0KKz9kb19pbkA/JGNvZGVjdnRARERIQHN0ZEBATUJFSEFBSFBCRDFBQVBCRFBBRDNBQVBBREBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0PHVuc2lnbmVkIHNob3J0LGNoYXIsaW50Pjo6ZG9faW4oaW50ICYsY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICogJix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKiAmKWNvbnN0IA0KKz9kb19pbkA/JGNvZGVjdnRAR0RIQHN0ZEBATUJFSEFBSFBCRDFBQVBCRFBBRzNBQVBBR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+Ojpkb19pcyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc2hvcnQgKiljb25zdCANCis/ZG9faXNAPyRjdHlwZUBHQHN0ZEBATUJFUEJHUEJHMFBBRkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgYm9vbCBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+Ojpkb19pcyhzaG9ydCx1bnNpZ25lZCBzaG9ydCljb25zdCANCis/ZG9faXNAPyRjdHlwZUBHQHN0ZEBATUJFX05GR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0PGNoYXIsY2hhcixpbnQ+Ojpkb19sZW5ndGgoaW50ICYsY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2RvX2xlbmd0aEA/JGNvZGVjdnRARERIQHN0ZEBATUJFSEFBSFBCRDFJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+Ojpkb19sZW5ndGgoaW50ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCljb25zdCANCis/ZG9fbGVuZ3RoQD8kY29kZWN2dEBHREhAc3RkQEBNQkVIQUFIUEJHMUlAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD46OmRvX21heF9sZW5ndGgodm9pZCljb25zdCANCis/ZG9fbWF4X2xlbmd0aEA/JGNvZGVjdnRAR0RIQHN0ZEBATUJFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0X2Jhc2U6OmRvX21heF9sZW5ndGgodm9pZCljb25zdCANCis/ZG9fbWF4X2xlbmd0aEBjb2RlY3Z0X2Jhc2VAc3RkQEBNQkVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjaGFyIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OmRvX25hcnJvdyh1bnNpZ25lZCBzaG9ydCxjaGFyKWNvbnN0IA0KKz9kb19uYXJyb3dAPyRjdHlwZUBHQHN0ZEBATUJFREdEQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OmRvX25hcnJvdyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2hhcixjaGFyICopY29uc3QgDQorP2RvX25hcnJvd0A/JGN0eXBlQEdAc3RkQEBNQkVQQkdQQkcwRFBBREBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgc3RydWN0IHN0ZDo6bW9uZXlfYmFzZTo6cGF0dGVybiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46OmRvX25lZ19mb3JtYXQodm9pZCljb25zdCANCis/ZG9fbmVnX2Zvcm1hdEA/JF9NcHVuY3RAREBzdGRAQE1CRT9BVXBhdHRlcm5AbW9uZXlfYmFzZUAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgc3RydWN0IHN0ZDo6bW9uZXlfYmFzZTo6cGF0dGVybiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojpkb19uZWdfZm9ybWF0KHZvaWQpY29uc3QgDQorP2RvX25lZ19mb3JtYXRAPyRfTXB1bmN0QEdAc3RkQEBNQkU/QVVwYXR0ZXJuQG1vbmV5X2Jhc2VAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46OmRvX25lZ2F0aXZlX3NpZ24odm9pZCljb25zdCANCis/ZG9fbmVnYXRpdmVfc2lnbkA/JF9NcHVuY3RAREBzdGRAQE1CRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+Ojpkb19uZWdhdGl2ZV9zaWduKHZvaWQpY29uc3QgDQorP2RvX25lZ2F0aXZlX3NpZ25APyRfTXB1bmN0QEdAc3RkQEBNQkU/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzPGNoYXI+Ojpkb19vcGVuKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYpY29uc3QgDQorP2RvX29wZW5APyRtZXNzYWdlc0BEQHN0ZEBATUJFSEFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBBQlZsb2NhbGVAMkBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXM8dW5zaWduZWQgc2hvcnQ+Ojpkb19vcGVuKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYpY29uc3QgDQorP2RvX29wZW5APyRtZXNzYWdlc0BHQHN0ZEBATUJFSEFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBBQlZsb2NhbGVAMkBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDxjaGFyLGNoYXIsaW50Pjo6ZG9fb3V0KGludCAmLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqICYsY2hhciAqLGNoYXIgKixjaGFyICogJiljb25zdCANCis/ZG9fb3V0QD8kY29kZWN2dEBEREhAc3RkQEBNQkVIQUFIUEJEMUFBUEJEUEFEM0FBUEFEQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+Ojpkb19vdXQoaW50ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogJixjaGFyICosY2hhciAqLGNoYXIgKiAmKWNvbnN0IA0KKz9kb19vdXRAPyRjb2RlY3Z0QEdESEBzdGRAQE1CRUhBQUhQQkcxQUFQQkdQQUQzQUFQQURAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHN0cnVjdCBzdGQ6Om1vbmV5X2Jhc2U6OnBhdHRlcm4gIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PGNoYXI+Ojpkb19wb3NfZm9ybWF0KHZvaWQpY29uc3QgDQorP2RvX3Bvc19mb3JtYXRAPyRfTXB1bmN0QERAc3RkQEBNQkU/QVVwYXR0ZXJuQG1vbmV5X2Jhc2VAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHN0cnVjdCBzdGQ6Om1vbmV5X2Jhc2U6OnBhdHRlcm4gIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6ZG9fcG9zX2Zvcm1hdCh2b2lkKWNvbnN0IA0KKz9kb19wb3NfZm9ybWF0QD8kX01wdW5jdEBHQHN0ZEBATUJFP0FVcGF0dGVybkBtb25leV9iYXNlQDJAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PGNoYXI+Ojpkb19wb3NpdGl2ZV9zaWduKHZvaWQpY29uc3QgDQorP2RvX3Bvc2l0aXZlX3NpZ25APyRfTXB1bmN0QERAc3RkQEBNQkU/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6ZG9fcG9zaXRpdmVfc2lnbih2b2lkKWNvbnN0IA0KKz9kb19wb3NpdGl2ZV9zaWduQD8kX01wdW5jdEBHQHN0ZEBATUJFP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fcHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYsY2hhcixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiljb25zdCANCis/ZG9fcHV0QD8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQF9OQUFWaW9zX2Jhc2VAMkBEQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fcHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYsY2hhcixsb25nIGRvdWJsZSljb25zdCANCis/ZG9fcHV0QD8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQF9OQUFWaW9zX2Jhc2VAMkBET0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmLHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKWNvbnN0IA0KKz9kb19wdXRAPyRtb25leV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAX05BQVZpb3NfYmFzZUAyQEdBQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjptb25leV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYsdW5zaWduZWQgc2hvcnQsbG9uZyBkb3VibGUpY29uc3QgDQorP2RvX3B1dEA/JG1vbmV5X3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBfTkFBVmlvc19iYXNlQDJAR09AWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsY2hhcixsb25nKWNvbnN0IA0KKz9kb19wdXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJAREpAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsY2hhcix1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9kb19wdXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJAREtAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsY2hhcixkb3VibGUpY29uc3QgDQorP2RvX3B1dEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBETkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixjaGFyLGxvbmcgZG91YmxlKWNvbnN0IA0KKz9kb19wdXRAPyRudW1fcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJARE9AWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsY2hhcix2b2lkIGNvbnN0ICopY29uc3QgDQorP2RvX3B1dEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBEUEJYQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6ZG9fcHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGNoYXIsYm9vbCljb25zdCANCis/ZG9fcHV0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQERfTkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fcHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsdW5zaWduZWQgc2hvcnQsbG9uZyljb25zdCANCis/ZG9fcHV0QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQEdKQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJix1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9kb19wdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJAR0tAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLHVuc2lnbmVkIHNob3J0LGRvdWJsZSljb25zdCANCis/ZG9fcHV0QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQEdOQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJix1bnNpZ25lZCBzaG9ydCxsb25nIGRvdWJsZSljb25zdCANCis/ZG9fcHV0QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQEdPQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJix1bnNpZ25lZCBzaG9ydCx2b2lkIGNvbnN0ICopY29uc3QgDQorP2RvX3B1dEA/JG51bV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBNQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBHUEJYQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+Ojpkb19wdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJix1bnNpZ25lZCBzaG9ydCxib29sKWNvbnN0IA0KKz9kb19wdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJAR19OQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6dGltZV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmRvX3B1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixzdHJ1Y3QgdG0gY29uc3QgKixjaGFyLGNoYXIpY29uc3QgDQorP2RvX3B1dEA/JHRpbWVfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBATUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJAUEJVdG1AQEREQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjp0aW1lX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6ZG9fcHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsc3RydWN0IHRtIGNvbnN0ICosY2hhcixjaGFyKWNvbnN0IA0KKz9kb19wdXRAPyR0aW1lX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQE1CRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQFBCVXRtQEBEREBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+Ojpkb19zY2FuX2lzKHNob3J0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/ZG9fc2Nhbl9pc0A/JGN0eXBlQEdAc3RkQEBNQkVQQkdGUEJHMEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+Ojpkb19zY2FuX25vdChzaG9ydCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP2RvX3NjYW5fbm90QD8kY3R5cGVAR0BzdGRAQE1CRVBCR0ZQQkcwQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjaGFyIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PGNoYXI+Ojpkb190aG91c2FuZHNfc2VwKHZvaWQpY29uc3QgDQorP2RvX3Rob3VzYW5kc19zZXBAPyRfTXB1bmN0QERAc3RkQEBNQkVEWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmRvX3Rob3VzYW5kc19zZXAodm9pZCljb25zdCANCis/ZG9fdGhvdXNhbmRzX3NlcEA/JF9NcHVuY3RAR0BzdGRAQE1CRUdYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNoYXIgX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PGNoYXI+Ojpkb190aG91c2FuZHNfc2VwKHZvaWQpY29uc3QgDQorP2RvX3Rob3VzYW5kc19zZXBAPyRudW1wdW5jdEBEQHN0ZEBATUJFRFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6ZG9fdGhvdXNhbmRzX3NlcCh2b2lkKWNvbnN0IA0KKz9kb190aG91c2FuZHNfc2VwQD8kbnVtcHVuY3RAR0BzdGRAQE1CRUdYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNoYXIgX190aGlzY2FsbCBzdGQ6OmN0eXBlPGNoYXI+Ojpkb190b2xvd2VyKGNoYXIpY29uc3QgDQorP2RvX3RvbG93ZXJAPyRjdHlwZUBEQHN0ZEBATUJFRERAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8Y2hhcj46OmRvX3RvbG93ZXIoY2hhciAqLGNoYXIgY29uc3QgKiljb25zdCANCis/ZG9fdG9sb3dlckA/JGN0eXBlQERAc3RkQEBNQkVQQkRQQURQQkRAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OmRvX3RvbG93ZXIodW5zaWduZWQgc2hvcnQpY29uc3QgDQorP2RvX3RvbG93ZXJAPyRjdHlwZUBHQHN0ZEBATUJFR0dAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6ZG9fdG9sb3dlcih1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP2RvX3RvbG93ZXJAPyRjdHlwZUBHQHN0ZEBATUJFUEJHUEFHUEJHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjaGFyIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTxjaGFyPjo6ZG9fdG91cHBlcihjaGFyKWNvbnN0IA0KKz9kb190b3VwcGVyQD8kY3R5cGVAREBzdGRAQE1CRUREQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmN0eXBlPGNoYXI+Ojpkb190b3VwcGVyKGNoYXIgKixjaGFyIGNvbnN0ICopY29uc3QgDQorP2RvX3RvdXBwZXJAPyRjdHlwZUBEQHN0ZEBATUJFUEJEUEFEUEJEQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+Ojpkb190b3VwcGVyKHVuc2lnbmVkIHNob3J0KWNvbnN0IA0KKz9kb190b3VwcGVyQD8kY3R5cGVAR0BzdGRAQE1CRUdHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OmRvX3RvdXBwZXIodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9kb190b3VwcGVyQD8kY3R5cGVAR0BzdGRAQE1CRVBCR1BBR1BCR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTxjaGFyPjo6ZG9fdHJhbnNmb3JtKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICopY29uc3QgDQorP2RvX3RyYW5zZm9ybUA/JGNvbGxhdGVAREBzdGRAQE1CRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBQQkQwQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpjb2xsYXRlPHVuc2lnbmVkIHNob3J0Pjo6ZG9fdHJhbnNmb3JtKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/ZG9fdHJhbnNmb3JtQD8kY29sbGF0ZUBHQHN0ZEBATUJFP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFBCRzBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PGNoYXI+Ojpkb190cnVlbmFtZSh2b2lkKWNvbnN0IA0KKz9kb190cnVlbmFtZUA/JG51bXB1bmN0QERAc3RkQEBNQkU/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmRvX3RydWVuYW1lKHZvaWQpY29uc3QgDQorP2RvX3RydWVuYW1lQD8kbnVtcHVuY3RAR0BzdGRAQE1CRT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OmRvX3dpZGVuKGNoYXIpY29uc3QgDQorP2RvX3dpZGVuQD8kY3R5cGVAR0BzdGRAQE1CRUdEQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6ZG9fd2lkZW4oY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKix1bnNpZ25lZCBzaG9ydCAqKWNvbnN0IA0KKz9kb193aWRlbkA/JGN0eXBlQEdAc3RkQEBNQkVQQkRQQkQwUEFHQFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjplYmFjayh2b2lkKWNvbnN0IA0KKz9lYmFja0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElCRVBBRFhaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6ZWJhY2sodm9pZCljb25zdCANCis/ZWJhY2tAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJQkVQQUdYWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmVncHRyKHZvaWQpY29uc3QgDQorP2VncHRyQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUJFUEFEWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjplZ3B0cih2b2lkKWNvbnN0IA0KKz9lZ3B0ckA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElCRVBBR1haDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmVtcHR5KHZvaWQpY29uc3QgDQorP2VtcHR5QD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVfTlhaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmVtcHR5KHZvaWQpY29uc3QgDQorP2VtcHR5QD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVfTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZSAgX19jZGVjbCBzdGQ6OmxvY2FsZTo6ZW1wdHkodm9pZCkNCis/ZW1wdHlAbG9jYWxlQHN0ZEBAU0E/QVYxMkBYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnRfYmFzZTo6ZW5jb2Rpbmcodm9pZCljb25zdCANCis/ZW5jb2RpbmdAY29kZWN2dF9iYXNlQHN0ZEBAUUJFSFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZW5kKHZvaWQpDQorP2VuZEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFUEFEWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjplbmQodm9pZCljb25zdCANCis/ZW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVQQkRYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjplbmQodm9pZCkNCis/ZW5kQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVQQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjplbmQodm9pZCljb25zdCANCis/ZW5kQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVQQkdYWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fY2RlY2wgc3RkOjplbmRsKGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJikNCis/ZW5kbEBzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQUFWMjFAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fY2RlY2wgc3RkOjplbmRsKGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmKQ0KKz9lbmRsQHN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBBQVYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fY2RlY2wgc3RkOjplbmRzKGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJikNCis/ZW5kc0BzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQUFWMjFAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fY2RlY2wgc3RkOjplbmRzKGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmKQ0KKz9lbmRzQHN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBBQVYyMUBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czxjaGFyPjo6ZW9mKHZvaWQpDQorP2VvZkA/JGNoYXJfdHJhaXRzQERAc3RkQEBTQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6ZW9mKHZvaWQpDQorP2VvZkA/JGNoYXJfdHJhaXRzQEdAc3RkQEBTQUdYWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6ZW9mKHZvaWQpY29uc3QgDQorP2VvZkBpb3NfYmFzZUBzdGRAQFFCRV9OWFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjplcHB0cih2b2lkKWNvbnN0IA0KKz9lcHB0ckA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElCRVBBRFhaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6ZXBwdHIodm9pZCljb25zdCANCis/ZXBwdHJAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJQkVQQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgc2lnbmVkIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpZ25lZCBjaGFyPjo6ZXBzaWxvbih2b2lkKQ0KKz9lcHNpbG9uQD8kbnVtZXJpY19saW1pdHNAQ0BzdGRAQFNBQ1haDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxjaGFyPjo6ZXBzaWxvbih2b2lkKQ0KKz9lcHNpbG9uQD8kbnVtZXJpY19saW1pdHNAREBzdGRAQFNBRFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBjaGFyPjo6ZXBzaWxvbih2b2lkKQ0KKz9lcHNpbG9uQD8kbnVtZXJpY19saW1pdHNARUBzdGRAQFNBRVhaDQorOyBwdWJsaWM6IHN0YXRpYyBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2hvcnQ+OjplcHNpbG9uKHZvaWQpDQorP2Vwc2lsb25APyRudW1lcmljX2xpbWl0c0BGQHN0ZEBAU0FGWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBzaG9ydD46OmVwc2lsb24odm9pZCkNCis/ZXBzaWxvbkA/JG51bWVyaWNfbGltaXRzQEdAc3RkQEBTQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjplcHNpbG9uKHZvaWQpDQorP2Vwc2lsb25APyRudW1lcmljX2xpbWl0c0BIQHN0ZEBAU0FIWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgaW50Pjo6ZXBzaWxvbih2b2lkKQ0KKz9lcHNpbG9uQD8kbnVtZXJpY19saW1pdHNASUBzdGRAQFNBSVhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxsb25nPjo6ZXBzaWxvbih2b2lkKQ0KKz9lcHNpbG9uQD8kbnVtZXJpY19saW1pdHNASkBzdGRAQFNBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBsb25nPjo6ZXBzaWxvbih2b2lkKQ0KKz9lcHNpbG9uQD8kbnVtZXJpY19saW1pdHNAS0BzdGRAQFNBS1haDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjplcHNpbG9uKHZvaWQpDQorP2Vwc2lsb25APyRudW1lcmljX2xpbWl0c0BNQHN0ZEBAU0FNWFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6ZXBzaWxvbih2b2lkKQ0KKz9lcHNpbG9uQD8kbnVtZXJpY19saW1pdHNATkBzdGRAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBkb3VibGU+OjplcHNpbG9uKHZvaWQpDQorP2Vwc2lsb25APyRudW1lcmljX2xpbWl0c0BPQHN0ZEBAU0FPWFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGJvb2w+OjplcHNpbG9uKHZvaWQpDQorP2Vwc2lsb25APyRudW1lcmljX2xpbWl0c0BfTkBzdGRAQFNBX05YWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj46OmVxKGNoYXIgY29uc3QgJixjaGFyIGNvbnN0ICYpDQorP2VxQD8kY2hhcl90cmFpdHNAREBzdGRAQFNBX05BQkQwQFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6ZXEodW5zaWduZWQgc2hvcnQgY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAmKQ0KKz9lcUA/JGNoYXJfdHJhaXRzQEdAc3RkQEBTQV9OQUJHMEBaDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czxjaGFyPjo6ZXFfaW50X3R5cGUoaW50IGNvbnN0ICYsaW50IGNvbnN0ICYpDQorP2VxX2ludF90eXBlQD8kY2hhcl90cmFpdHNAREBzdGRAQFNBX05BQkgwQFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6ZXFfaW50X3R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAmKQ0KKz9lcV9pbnRfdHlwZUA/JGNoYXJfdHJhaXRzQEdAc3RkQEBTQV9OQUJHMEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjplcmFzZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz9lcmFzZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJASUlAWg0KKzsgcHVibGljOiBjaGFyICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmVyYXNlKGNoYXIgKixjaGFyICopDQorP2VyYXNlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVQQURQQUQwQFoNCis7IHB1YmxpYzogY2hhciAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjplcmFzZShjaGFyICopDQorP2VyYXNlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVQQURQQURAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZXJhc2UodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/ZXJhc2VAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQElJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZXJhc2UodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqKQ0KKz9lcmFzZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFUEFHUEFHMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmVyYXNlKHVuc2lnbmVkIHNob3J0ICopDQorP2VyYXNlQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVQQUdQQUdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6ZXhjZXB0aW9ucyhzaG9ydCkNCis/ZXhjZXB0aW9uc0Bpb3NfYmFzZUBzdGRAQFFBRVhGQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6OmV4Y2VwdGlvbnMoaW50KQ0KKz9leGNlcHRpb25zQGlvc19iYXNlQHN0ZEBAUUFFWEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpleGNlcHRpb25zKHZvaWQpY29uc3QgDQorP2V4Y2VwdGlvbnNAaW9zX2Jhc2VAc3RkQEBRQkVIWFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgc3RkOjpfQ3RyPGZsb2F0Pjo6ZXhwKGZsb2F0KQ0KKz9leHBAPyRfQ3RyQE1Ac3RkQEBTQU1NQFoNCis7IHB1YmxpYzogc3RhdGljIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxkb3VibGU+OjpleHAoZG91YmxlKQ0KKz9leHBAPyRfQ3RyQE5Ac3RkQEBTQU5OQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGxvbmcgZG91YmxlPjo6ZXhwKGxvbmcgZG91YmxlKQ0KKz9leHBAPyRfQ3RyQE9Ac3RkQEBTQU9PQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpleHAoY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz9leHBAc3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6ZXhwKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorP2V4cEBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6OmV4cChjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorP2V4cEBzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBQlYyMUBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6ZmFpbCh2b2lkKWNvbnN0IA0KKz9mYWlsQGlvc19iYXNlQHN0ZEBAUUJFX05YWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1wdW5jdDxjaGFyPjo6ZmFsc2VuYW1lKHZvaWQpY29uc3QgDQorP2ZhbHNlbmFtZUA/JG51bXB1bmN0QERAc3RkQEBRQkU/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpmYWxzZW5hbWUodm9pZCljb25zdCANCis/ZmFsc2VuYW1lQD8kbnVtcHVuY3RAR0BzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBYWg0KKzsgcHVibGljOiBjaGFyIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpmaWxsKGNoYXIpDQorP2ZpbGxAPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVEREBaDQorOyBwdWJsaWM6IGNoYXIgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmZpbGwodm9pZCljb25zdCANCis/ZmlsbEA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFCRURYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpmaWxsKHVuc2lnbmVkIHNob3J0KQ0KKz9maWxsQD8kYmFzaWNfaW9zQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFR0dAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpmaWxsKHZvaWQpY29uc3QgDQorP2ZpbGxAPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQkVHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpmaW5kKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSUFCVjEyQElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmQoY2hhcix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUlESUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZChjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJUEJESUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZChjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSVBCRElJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSUFCVjEyQElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmQodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJR0lAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlQQkdJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSVBCR0lJQFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgY29uc3QgKiBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj46OmZpbmQoY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCxjaGFyIGNvbnN0ICYpDQorP2ZpbmRAPyRjaGFyX3RyYWl0c0BEQHN0ZEBAU0FQQkRQQkRJQUJEQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6ZmluZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAmKQ0KKz9maW5kQD8kY2hhcl90cmFpdHNAR0BzdGRAQFNBUEJHUEJHSUFCR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZF9maXJzdF9ub3Rfb2YoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2ZpcnN0X25vdF9vZkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSUFCVjEyQElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmRfZmlyc3Rfbm90X29mKGNoYXIsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2ZpcnN0X25vdF9vZkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSURJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpmaW5kX2ZpcnN0X25vdF9vZihjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2ZpcnN0X25vdF9vZkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSVBCRElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmRfZmlyc3Rfbm90X29mKGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2ZpcnN0X25vdF9vZkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSVBCRElJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kX2ZpcnN0X25vdF9vZihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfZmlyc3Rfbm90X29mQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJQUJWMTJASUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZmluZF9maXJzdF9ub3Rfb2YodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2ZpcnN0X25vdF9vZkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSUdJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kX2ZpcnN0X25vdF9vZih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZF9maXJzdF9ub3Rfb2ZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlQQkdJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kX2ZpcnN0X25vdF9vZih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfZmlyc3Rfbm90X29mQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJUEJHSUlAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmRfZmlyc3Rfb2YoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2ZpcnN0X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJQUJWMTJASUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZF9maXJzdF9vZihjaGFyLHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZF9maXJzdF9vZkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSURJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpmaW5kX2ZpcnN0X29mKGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfZmlyc3Rfb2ZAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUlQQkRJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpmaW5kX2ZpcnN0X29mKGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2ZpcnN0X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJUEJESUlAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmRfZmlyc3Rfb2YoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2ZpcnN0X29mQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJQUJWMTJASUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZmluZF9maXJzdF9vZih1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfZmlyc3Rfb2ZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlHSUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZmluZF9maXJzdF9vZih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZF9maXJzdF9vZkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSVBCR0lAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmRfZmlyc3Rfb2YodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2ZpcnN0X29mQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJUEJHSUlAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmRfbGFzdF9ub3Rfb2YoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2xhc3Rfbm90X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJQUJWMTJASUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6ZmluZF9sYXN0X25vdF9vZihjaGFyLHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZF9sYXN0X25vdF9vZkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSURJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpmaW5kX2xhc3Rfbm90X29mKGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfbGFzdF9ub3Rfb2ZAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUlQQkRJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpmaW5kX2xhc3Rfbm90X29mKGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2xhc3Rfbm90X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJUEJESUlAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmRfbGFzdF9ub3Rfb2YoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2xhc3Rfbm90X29mQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJQUJWMTJASUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZmluZF9sYXN0X25vdF9vZih1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfbGFzdF9ub3Rfb2ZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlHSUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZmluZF9sYXN0X25vdF9vZih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZF9sYXN0X25vdF9vZkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSVBCR0lAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OmZpbmRfbGFzdF9ub3Rfb2YodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2xhc3Rfbm90X29mQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJUEJHSUlAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmRfbGFzdF9vZihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJix1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfbGFzdF9vZkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSUFCVjEyQElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmRfbGFzdF9vZihjaGFyLHVuc2lnbmVkIGludCljb25zdCANCis/ZmluZF9sYXN0X29mQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJRElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OmZpbmRfbGFzdF9vZihjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2xhc3Rfb2ZAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUlQQkRJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpmaW5kX2xhc3Rfb2YoY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP2ZpbmRfbGFzdF9vZkA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSVBCRElJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kX2xhc3Rfb2YoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2xhc3Rfb2ZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlBQlYxMkBJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kX2xhc3Rfb2YodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2xhc3Rfb2ZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlHSUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6ZmluZF9sYXN0X29mKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2xhc3Rfb2ZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlQQkdJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpmaW5kX2xhc3Rfb2YodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9maW5kX2xhc3Rfb2ZAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlQQkdJSUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6OmZsYWdzKGludCkNCis/ZmxhZ3NAaW9zX2Jhc2VAc3RkQEBRQUVISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6OmZsYWdzKHZvaWQpY29uc3QgDQorP2ZsYWdzQGlvc19iYXNlQHN0ZEBAUUJFSFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmZsdXNoKHZvaWQpDQorP2ZsdXNoQD8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjEyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpmbHVzaCh2b2lkKQ0KKz9mbHVzaEA/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYxMkBYWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fY2RlY2wgc3RkOjpmbHVzaChjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYpDQorP2ZsdXNoQHN0ZEBAWUFBQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMUBBQVYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX19jZGVjbCBzdGQ6OmZsdXNoKGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmKQ0KKz9mbHVzaEBzdGRAQFlBQUFWPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAQUFWMjFAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PGNoYXI+OjpmcmFjX2RpZ2l0cyh2b2lkKWNvbnN0IA0KKz9mcmFjX2RpZ2l0c0A/JF9NcHVuY3RAREBzdGRAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpmcmFjX2RpZ2l0cyh2b2lkKWNvbnN0IA0KKz9mcmFjX2RpZ2l0c0A/JF9NcHVuY3RAR0BzdGRAQFFCRUhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpzdHJzdHJlYW1idWY6OmZyZWV6ZShib29sKQ0KKz9mcmVlemVAc3Ryc3RyZWFtYnVmQHN0ZEBAUUFFWF9OQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Z2J1bXAoaW50KQ0KKz9nYnVtcEA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElBRVhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpnYnVtcChpbnQpDQorP2didW1wQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUFFWEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpnY291bnQodm9pZCljb25zdCANCis/Z2NvdW50QD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Omdjb3VudCh2b2lkKWNvbnN0IA0KKz9nY291bnRAPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUJFSFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmdldChjaGFyICYpDQorP2dldEA/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYxMkBBQURAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpnZXQoY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYpDQorP2dldEA/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYxMkBBQVY/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmdldChjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJixjaGFyKQ0KKz9nZXRAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAQUFWPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Z2V0KGNoYXIgKixpbnQpDQorP2dldEA/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYxMkBQQURIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Z2V0KGNoYXIgKixpbnQsY2hhcikNCis/Z2V0QD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjEyQFBBREhEQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Z2V0KHZvaWQpDQorP2dldEA/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVIWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmdldCh1bnNpZ25lZCBzaG9ydCAmKQ0KKz9nZXRAPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAQUFHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmdldChjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmKQ0KKz9nZXRAPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAQUFWPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6Z2V0KGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYsdW5zaWduZWQgc2hvcnQpDQorP2dldEA/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYxMkBBQVY/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQEdAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6Z2V0KHVuc2lnbmVkIHNob3J0ICosaW50KQ0KKz9nZXRAPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAUEFHSEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpnZXQodW5zaWduZWQgc2hvcnQgKixpbnQsdW5zaWduZWQgc2hvcnQpDQorP2dldEA/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYxMkBQQUdIR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpnZXQodm9pZCkNCis/Z2V0QD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUdYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjptZXNzYWdlczxjaGFyPjo6Z2V0KGludCxpbnQsaW50LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKWNvbnN0IA0KKz9nZXRAPyRtZXNzYWdlc0BEQHN0ZEBAUUJFP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQEhISEFCVjMyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om1lc3NhZ2VzPHVuc2lnbmVkIHNob3J0Pjo6Z2V0KGludCxpbnQsaW50LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKWNvbnN0IA0KKz9nZXRAPyRtZXNzYWdlc0BHQHN0ZEBAUUJFP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQEhISEFCVjMyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjptb25leV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsbG9uZyBkb3VibGUgJiljb25zdCANCis/Z2V0QD8kbW9uZXlfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBfTkFBVmlvc19iYXNlQDJAQUFIQUFPQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixib29sLGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiljb25zdCANCis/Z2V0QD8kbW9uZXlfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBfTkFBVmlvc19iYXNlQDJAQUFIQUFWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om1vbmV5X2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsbG9uZyBkb3VibGUgJiljb25zdCANCis/Z2V0QD8kbW9uZXlfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBfTkFBVmlvc19iYXNlQDJAQUFIQUFPQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bW9uZXlfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixib29sLGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiljb25zdCANCis/Z2V0QD8kbW9uZXlfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBfTkFBVmlvc19iYXNlQDJAQUFIQUFWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJix1bnNpZ25lZCBzaG9ydCAmKWNvbnN0IA0KKz9nZXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJix1bnNpZ25lZCBpbnQgJiljb25zdCANCis/Z2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQUlAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsbG9uZyAmKWNvbnN0IA0KKz9nZXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBSkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJix1bnNpZ25lZCBsb25nICYpY29uc3QgDQorP2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFLQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGZsb2F0ICYpY29uc3QgDQorP2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFNQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGRvdWJsZSAmKWNvbnN0IA0KKz9nZXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixsb25nIGRvdWJsZSAmKWNvbnN0IA0KKz9nZXRAPyRudW1fZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBT0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJix2b2lkICogJiljb25zdCANCis/Z2V0QD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQVBBWEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixib29sICYpY29uc3QgDQorP2dldEA/JG51bV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFfTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJix1bnNpZ25lZCBzaG9ydCAmKWNvbnN0IA0KKz9nZXRAPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJix1bnNpZ25lZCBpbnQgJiljb25zdCANCis/Z2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQUlAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpnZXQoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsbG9uZyAmKWNvbnN0IA0KKz9nZXRAPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBSkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJix1bnNpZ25lZCBsb25nICYpY29uc3QgDQorP2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFLQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGZsb2F0ICYpY29uc3QgDQorP2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFNQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6Z2V0KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLGRvdWJsZSAmKWNvbnN0IA0KKz9nZXRAPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixsb25nIGRvdWJsZSAmKWNvbnN0IA0KKz9nZXRAPyRudW1fZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSEFBT0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJix2b2lkICogJiljb25zdCANCis/Z2V0QD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhBQVBBWEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldChjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixib29sICYpY29uc3QgDQorP2dldEA/JG51bV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIQUFfTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6Z2V0X2FsbG9jYXRvcih2b2lkKWNvbnN0IA0KKz9nZXRfYWxsb2NhdG9yQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkU/QVY/JGFsbG9jYXRvckBEQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6Z2V0X2FsbG9jYXRvcih2b2lkKWNvbnN0IA0KKz9nZXRfYWxsb2NhdG9yQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkU/QVY/JGFsbG9jYXRvckBHQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXRfZGF0ZShjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHN0cnVjdCB0bSAqKWNvbnN0IA0KKz9nZXRfZGF0ZUA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSFBBVXRtQEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6Z2V0X2RhdGUoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsc3RydWN0IHRtICopY29uc3QgDQorP2dldF9kYXRlQD8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIUEFVdG1AQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6Z2V0X21vbnRobmFtZShjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHN0cnVjdCB0bSAqKWNvbnN0IA0KKz9nZXRfbW9udGhuYW1lQD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIUEFVdG1AQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpnZXRfbW9udGhuYW1lKGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHN0cnVjdCB0bSAqKWNvbnN0IA0KKz9nZXRfbW9udGhuYW1lQD8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIUEFVdG1AQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6Z2V0X3RpbWUoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixzdHJ1Y3QgdG0gKiljb25zdCANCis/Z2V0X3RpbWVAPyR0aW1lX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhQQVV0bUBAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmdldF90aW1lKGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHN0cnVjdCB0bSAqKWNvbnN0IA0KKz9nZXRfdGltZUA/JHRpbWVfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSFBBVXRtQEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6dGltZV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmdldF93ZWVrZGF5KGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsc3RydWN0IHRtICopY29uc3QgDQorP2dldF93ZWVrZGF5QD8kdGltZV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIUEFVdG1AQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpnZXRfd2Vla2RheShjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQgJixzdHJ1Y3QgdG0gKiljb25zdCANCis/Z2V0X3dlZWtkYXlAPyR0aW1lX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkAwQUFWaW9zX2Jhc2VAMkBBQUhQQVV0bUBAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpnZXRfeWVhcihjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGludCAmLHN0cnVjdCB0bSAqKWNvbnN0IA0KKz9nZXRfeWVhckA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQDBBQVZpb3NfYmFzZUAyQEFBSFBBVXRtQEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjp0aW1lX2dldDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6Z2V0X3llYXIoY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsaW50ICYsc3RydWN0IHRtICopY29uc3QgDQorP2dldF95ZWFyQD8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAMEFBVmlvc19iYXNlQDJAQUFIUEFVdG1AQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmdldGxpbmUoY2hhciAqLGludCkNCis/Z2V0bGluZUA/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYxMkBQQURIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Z2V0bGluZShjaGFyICosaW50LGNoYXIpDQorP2dldGxpbmVAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAUEFESERAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6Z2V0bGluZSh1bnNpZ25lZCBzaG9ydCAqLGludCkNCis/Z2V0bGluZUA/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYxMkBQQUdIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmdldGxpbmUodW5zaWduZWQgc2hvcnQgKixpbnQsdW5zaWduZWQgc2hvcnQpDQorP2dldGxpbmVAPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAUEFHSEdAWg0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fY2RlY2wgc3RkOjpnZXRsaW5lKGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJikNCis/Z2V0bGluZUBzdGRAQFlBQUFWPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDFAQUFWMjFAQUFWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAxQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19jZGVjbCBzdGQ6OmdldGxpbmUoY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmLGNoYXIpDQorP2dldGxpbmVAc3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEFBVjIxQEFBVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMUBEQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fY2RlY2wgc3RkOjpnZXRsaW5lKGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmKQ0KKz9nZXRsaW5lQHN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBBQVYyMUBBQVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDFAQFoNCis7IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fY2RlY2wgc3RkOjpnZXRsaW5lKGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmLHVuc2lnbmVkIHNob3J0KQ0KKz9nZXRsaW5lQHN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBBQVYyMUBBQVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDFAR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bG9jYWxlICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Z2V0bG9jKHZvaWQpDQorP2dldGxvY0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRT9BVmxvY2FsZUAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bG9jYWxlICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpnZXRsb2Modm9pZCkNCis/Z2V0bG9jQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFP0FWbG9jYWxlQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsb2NhbGUgIF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6Z2V0bG9jKHZvaWQpY29uc3QgDQorP2dldGxvY0Bpb3NfYmFzZUBzdGRAQFFCRT9BVmxvY2FsZUAyQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZSAgX19jZGVjbCBzdGQ6OmxvY2FsZTo6Z2xvYmFsKGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYpDQorP2dsb2JhbEBsb2NhbGVAc3RkQEBTQT9BVjEyQEFCVjEyQEBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpnb29kKHZvaWQpY29uc3QgDQorP2dvb2RAaW9zX2Jhc2VAc3RkQEBRQkVfTlhaDQorOyBwcm90ZWN0ZWQ6IGNoYXIgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6Z3B0cih2b2lkKWNvbnN0IA0KKz9ncHRyQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUJFUEFEWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpncHRyKHZvaWQpY29uc3QgDQorP2dwdHJAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJQkVQQUdYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PGNoYXI+Ojpncm91cGluZyh2b2lkKWNvbnN0IA0KKz9ncm91cGluZ0A/JF9NcHVuY3RAREBzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6Z3JvdXBpbmcodm9pZCljb25zdCANCis/Z3JvdXBpbmdAPyRfTXB1bmN0QEdAc3RkQEBRQkU/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46Omdyb3VwaW5nKHZvaWQpY29uc3QgDQorP2dyb3VwaW5nQD8kbnVtcHVuY3RAREBzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD46Omdyb3VwaW5nKHZvaWQpY29uc3QgDQorP2dyb3VwaW5nQD8kbnVtcHVuY3RAR0BzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgc3RkOjpjb2xsYXRlPGNoYXI+OjpoYXNoKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICopY29uc3QgDQorP2hhc2hAPyRjb2xsYXRlQERAc3RkQEBRQkVKUEJEMEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBzdGQ6OmNvbGxhdGU8dW5zaWduZWQgc2hvcnQ+OjpoYXNoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/aGFzaEA/JGNvbGxhdGVAR0BzdGRAQFFCRUpQQkcwQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjpjb2RlY3Z0PGNoYXIsY2hhcixpbnQ+OjppZA0KKz9pZEA/JGNvZGVjdnRARERIQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD46OmlkDQorP2lkQD8kY29kZWN2dEBHREhAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjpjb2xsYXRlPGNoYXI+OjppZA0KKz9pZEA/JGNvbGxhdGVAREBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6OmNvbGxhdGU8dW5zaWduZWQgc2hvcnQ+OjppZA0KKz9pZEA/JGNvbGxhdGVAR0BzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6OmN0eXBlPGNoYXI+OjppZA0KKz9pZEA/JGN0eXBlQERAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OmlkDQorP2lkQD8kY3R5cGVAR0BzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om1lc3NhZ2VzPGNoYXI+OjppZA0KKz9pZEA/JG1lc3NhZ2VzQERAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjptZXNzYWdlczx1bnNpZ25lZCBzaG9ydD46OmlkDQorP2lkQD8kbWVzc2FnZXNAR0BzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om1vbmV5X2dldDxjaGFyLGNsYXNzIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6aWQNCis/aWRAPyRtb25leV9nZXRARFY/JGlzdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjptb25leV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmlkDQorP2lkQD8kbW9uZXlfZ2V0QEdWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6bW9uZXlfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjppZA0KKz9pZEA/JG1vbmV5X3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om1vbmV5X3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6aWQNCis/aWRAPyRtb25leV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjptb25leXB1bmN0PGNoYXIsMT46OmlkDQorP2lkQD8kbW9uZXlwdW5jdEBEJDAwQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6bW9uZXlwdW5jdDxjaGFyLDA+OjppZA0KKz9pZEA/JG1vbmV5cHVuY3RARCQwQUBAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDE+OjppZA0KKz9pZEA/JG1vbmV5cHVuY3RARyQwMEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMD46OmlkDQorP2lkQD8kbW9uZXlwdW5jdEBHJDBBQEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om51bV9nZXQ8Y2hhcixjbGFzcyBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmlkDQorP2lkQD8kbnVtX2dldEBEVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om51bV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmlkDQorP2lkQD8kbnVtX2dldEBHVj8kaXN0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OmlkDQorP2lkQD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmlkDQorP2lkQD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6Om51bXB1bmN0PGNoYXI+OjppZA0KKz9pZEA/JG51bXB1bmN0QERAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD46OmlkDQorP2lkQD8kbnVtcHVuY3RAR0BzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6OnRpbWVfZ2V0PGNoYXIsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjppZA0KKz9pZEA/JHRpbWVfZ2V0QERWPyRpc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBzdGQ6OmxvY2FsZTo6aWQgIHN0ZDo6dGltZV9nZXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OmlkDQorP2lkQD8kdGltZV9nZXRAR1Y/JGlzdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEAyVjBsb2NhbGVAMkBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIHN0ZDo6bG9jYWxlOjppZCAgc3RkOjp0aW1lX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6aWQNCis/aWRAPyR0aW1lX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQDJWMGxvY2FsZUAyQEEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3Mgc3RkOjpsb2NhbGU6OmlkICBzdGQ6OnRpbWVfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjppZA0KKz9pZEA/JHRpbWVfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAMlYwbG9jYWxlQDJAQSBEQVRBDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Omlnbm9yZShpbnQsaW50KQ0KKz9pZ25vcmVAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMTJASEhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6aWdub3JlKGludCx1bnNpZ25lZCBzaG9ydCkNCis/aWdub3JlQD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjEyQEhHQFoNCis7IHB1YmxpYzogZmxvYXQgX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+OjppbWFnKGZsb2F0IGNvbnN0ICYpDQorP2ltYWdAPyRfQ29tcGxleF9iYXNlQE1Ac3RkQEBRQUVNQUJNQFoNCis7IHB1YmxpYzogZmxvYXQgX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZmxvYXQ+OjppbWFnKHZvaWQpY29uc3QgDQorP2ltYWdAPyRfQ29tcGxleF9iYXNlQE1Ac3RkQEBRQkVNWFoNCis7IHB1YmxpYzogZG91YmxlIF9fdGhpc2NhbGwgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT46OmltYWcoZG91YmxlIGNvbnN0ICYpDQorP2ltYWdAPyRfQ29tcGxleF9iYXNlQE5Ac3RkQEBRQUVOQUJOQFoNCis7IHB1YmxpYzogZG91YmxlIF9fdGhpc2NhbGwgc3RkOjpfQ29tcGxleF9iYXNlPGRvdWJsZT46OmltYWcodm9pZCljb25zdCANCis/aW1hZ0A/JF9Db21wbGV4X2Jhc2VATkBzdGRAQFFCRU5YWg0KKzsgcHVibGljOiBsb25nIGRvdWJsZSBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT46OmltYWcobG9uZyBkb3VibGUgY29uc3QgJikNCis/aW1hZ0A/JF9Db21wbGV4X2Jhc2VAT0BzdGRAQFFBRU9BQk9AWg0KKzsgcHVibGljOiBsb25nIGRvdWJsZSBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxsb25nIGRvdWJsZT46OmltYWcodm9pZCljb25zdCANCis/aW1hZ0A/JF9Db21wbGV4X2Jhc2VAT0BzdGRAQFFCRU9YWg0KKzsgZmxvYXQgX19jZGVjbCBzdGQ6OmltYWcoY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz9pbWFnQHN0ZEBAWUFNQUJWPyRjb21wbGV4QE1AMUBAWg0KKzsgZG91YmxlIF9fY2RlY2wgc3RkOjppbWFnKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorP2ltYWdAc3RkQEBZQU5BQlY/JGNvbXBsZXhATkAxQEBaDQorOyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6aW1hZyhjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorP2ltYWdAc3RkQEBZQU9BQlY/JGNvbXBsZXhAT0AxQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bG9jYWxlICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6aW1idWUoY2xhc3Mgc3RkOjpsb2NhbGUgY29uc3QgJikNCis/aW1idWVAPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUU/QVZsb2NhbGVAMkBBQlYzMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmxvY2FsZSAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6aW1idWUoY2xhc3Mgc3RkOjpsb2NhbGUgY29uc3QgJikNCis/aW1idWVAPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUU/QVZsb2NhbGVAMkBBQlYzMkBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmltYnVlKGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYpDQorP2ltYnVlQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBATUFFWEFCVmxvY2FsZUAyQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjppbWJ1ZShjbGFzcyBzdGQ6OmxvY2FsZSBjb25zdCAmKQ0KKz9pbWJ1ZUA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1BRVhBQlZsb2NhbGVAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmxvY2FsZSAgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjppbWJ1ZShjbGFzcyBzdGQ6OmxvY2FsZSBjb25zdCAmKQ0KKz9pbWJ1ZUBpb3NfYmFzZUBzdGRAQFFBRT9BVmxvY2FsZUAyQEFCVjMyQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDxjaGFyLGNoYXIsaW50Pjo6aW4oaW50ICYsY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICogJixjaGFyICosY2hhciAqLGNoYXIgKiAmKWNvbnN0IA0KKz9pbkA/JGNvZGVjdnRARERIQHN0ZEBAUUJFSEFBSFBCRDFBQVBCRFBBRDNBQVBBREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD46OmluKGludCAmLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqICYsdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICogJiljb25zdCANCis/aW5APyRjb2RlY3Z0QEdESEBzdGRAQFFCRUhBQUhQQkQxQUFQQkRQQUczQUFQQUdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmluX2F2YWlsKHZvaWQpDQorP2luX2F2YWlsQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojppbl9hdmFpbCh2b2lkKQ0KKz9pbl9hdmFpbEA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUhYWg0KKzsgcHVibGljOiBzdGF0aWMgc2lnbmVkIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpZ25lZCBjaGFyPjo6aW5maW5pdHkodm9pZCkNCis/aW5maW5pdHlAPyRudW1lcmljX2xpbWl0c0BDQHN0ZEBAU0FDWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGNoYXI+OjppbmZpbml0eSh2b2lkKQ0KKz9pbmZpbml0eUA/JG51bWVyaWNfbGltaXRzQERAc3RkQEBTQURYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgY2hhciBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgY2hhcj46OmluZmluaXR5KHZvaWQpDQorP2luZmluaXR5QD8kbnVtZXJpY19saW1pdHNARUBzdGRAQFNBRVhaDQorOyBwdWJsaWM6IHN0YXRpYyBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2hvcnQ+OjppbmZpbml0eSh2b2lkKQ0KKz9pbmZpbml0eUA/JG51bWVyaWNfbGltaXRzQEZAc3RkQEBTQUZYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIHNob3J0Pjo6aW5maW5pdHkodm9pZCkNCis/aW5maW5pdHlAPyRudW1lcmljX2xpbWl0c0BHQHN0ZEBAU0FHWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6aW5maW5pdHkodm9pZCkNCis/aW5maW5pdHlAPyRudW1lcmljX2xpbWl0c0BIQHN0ZEBAU0FIWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgaW50Pjo6aW5maW5pdHkodm9pZCkNCis/aW5maW5pdHlAPyRudW1lcmljX2xpbWl0c0BJQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmc+OjppbmZpbml0eSh2b2lkKQ0KKz9pbmZpbml0eUA/JG51bWVyaWNfbGltaXRzQEpAc3RkQEBTQUpYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgbG9uZz46OmluZmluaXR5KHZvaWQpDQorP2luZmluaXR5QD8kbnVtZXJpY19saW1pdHNAS0BzdGRAQFNBS1haDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjppbmZpbml0eSh2b2lkKQ0KKz9pbmZpbml0eUA/JG51bWVyaWNfbGltaXRzQE1Ac3RkQEBTQU1YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSh2b2lkKQ0KKz9pbmZpbml0eUA/JG51bWVyaWNfbGltaXRzQE5Ac3RkQEBTQU5YWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgZG91YmxlPjo6aW5maW5pdHkodm9pZCkNCis/aW5maW5pdHlAPyRudW1lcmljX2xpbWl0c0BPQHN0ZEBAU0FPWFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGJvb2w+OjppbmZpbml0eSh2b2lkKQ0KKz9pbmZpbml0eUA/JG51bWVyaWNfbGltaXRzQF9OQHN0ZEBAU0FfTlhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmluaXQoY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICosYm9vbCkNCis/aW5pdEA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQElBRVhQQVY/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQF9OQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojppbml0KGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICosYm9vbCkNCis/aW5pdEA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElBRVhQQVY/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQF9OQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Omluc2VydCh1bnNpZ25lZCBpbnQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJASUFCVjEyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjppbnNlcnQodW5zaWduZWQgaW50LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJASUFCVjEyQElJQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Omluc2VydCh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGNoYXIpDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJASUlEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Omluc2VydCh1bnNpZ25lZCBpbnQsY2hhciBjb25zdCAqKQ0KKz9pbnNlcnRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjEyQElQQkRAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6aW5zZXJ0KHVuc2lnbmVkIGludCxjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9pbnNlcnRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjEyQElQQkRJQFoNCis7IHB1YmxpYzogY2hhciAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjppbnNlcnQoY2hhciAqLGNoYXIpDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFUEFEUEFEREBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Omluc2VydChjaGFyICosdW5zaWduZWQgaW50LGNoYXIpDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFWFBBRElEQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6aW5zZXJ0KGNoYXIgKixjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqKQ0KKz9pbnNlcnRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRVhQQURQQkQxQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Omluc2VydCh1bnNpZ25lZCBpbnQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJASUFCVjEyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjppbnNlcnQodW5zaWduZWQgaW50LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJASUFCVjEyQElJQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Omluc2VydCh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0KQ0KKz9pbnNlcnRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQElJR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjppbnNlcnQodW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJASVBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjppbnNlcnQodW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9pbnNlcnRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQElQQkdJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6aW5zZXJ0KHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQpDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFUEFHUEFHR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Omluc2VydCh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCkNCis/aW5zZXJ0QD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVYUEFHSUdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjppbnNlcnQodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP2luc2VydEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFWFBBR1BCRzFAWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBjb25zdCAgc3RkOjptb25leXB1bmN0PGNoYXIsMT46OmludGwNCis/aW50bEA/JG1vbmV5cHVuY3RARCQwMEBzdGRAQDJfTkINCis7IHB1YmxpYzogc3RhdGljIGJvb2wgY29uc3QgIHN0ZDo6bW9uZXlwdW5jdDxjaGFyLDA+OjppbnRsDQorP2ludGxAPyRtb25leXB1bmN0QEQkMEFAQHN0ZEBAMl9OQg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBjb25zdCAgc3RkOjptb25leXB1bmN0PHVuc2lnbmVkIHNob3J0LDE+OjppbnRsDQorP2ludGxAPyRtb25leXB1bmN0QEckMDBAc3RkQEAyX05CDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIGNvbnN0ICBzdGQ6Om1vbmV5cHVuY3Q8dW5zaWduZWQgc2hvcnQsMD46OmludGwNCis/aW50bEA/JG1vbmV5cHVuY3RARyQwQUBAc3RkQEAyX05CDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjppcGZ4KGJvb2wpDQorP2lwZnhAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFX05fTkBaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmlwZngoYm9vbCkNCis/aXBmeEA/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVfTl9OQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTxjaGFyPjo6aXMoY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKixzaG9ydCAqKWNvbnN0IA0KKz9pc0A/JGN0eXBlQERAc3RkQEBRQkVQQkRQQkQwUEFGQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8Y2hhcj46OmlzKHNob3J0LGNoYXIpY29uc3QgDQorP2lzQD8kY3R5cGVAREBzdGRAQFFCRV9ORkRAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OmlzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixzaG9ydCAqKWNvbnN0IA0KKz9pc0A/JGN0eXBlQEdAc3RkQEBRQkVQQkdQQkcwUEFGQFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+OjppcyhzaG9ydCx1bnNpZ25lZCBzaG9ydCljb25zdCANCis/aXNAPyRjdHlwZUBHQHN0ZEBAUUJFX05GR0BaDQorOyBwdWJsaWM6IGJvb2wgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojppc19vcGVuKHZvaWQpY29uc3QgDQorP2lzX29wZW5APyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojppc19vcGVuKHZvaWQpY29uc3QgDQorP2lzX29wZW5APyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6aXNfb3Blbih2b2lkKWNvbnN0IA0KKz9pc19vcGVuQD8kYmFzaWNfZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6aXNfb3Blbih2b2lkKWNvbnN0IA0KKz9pc19vcGVuQD8kYmFzaWNfZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojppc19vcGVuKHZvaWQpY29uc3QgDQorP2lzX29wZW5APyRiYXNpY19pZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFCRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmlzX29wZW4odm9pZCljb25zdCANCis/aXNfb3BlbkA/JGJhc2ljX2lmc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OmlzX29wZW4odm9pZCljb25zdCANCis/aXNfb3BlbkA/JGJhc2ljX29mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUJFX05YWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6aXNfb3Blbih2b2lkKWNvbnN0IA0KKz9pc19vcGVuQD8kYmFzaWNfb2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQkVfTlhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojppc2Z4KHZvaWQpDQorP2lzZnhAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OmlzZngodm9pZCkNCis/aXNmeEA/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogbG9uZyAmIF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6aXdvcmQoaW50KQ0KKz9pd29yZEBpb3NfYmFzZUBzdGRAQFFBRUFBSkhAWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Ol9DdHI8ZmxvYXQ+OjpsZGV4cChmbG9hdCxpbnQpDQorP2xkZXhwQD8kX0N0ckBNQHN0ZEBAU0FNTUhAWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGRvdWJsZT46OmxkZXhwKGRvdWJsZSxpbnQpDQorP2xkZXhwQD8kX0N0ckBOQHN0ZEBAU0FOTkhAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8bG9uZyBkb3VibGU+OjpsZGV4cChsb25nIGRvdWJsZSxpbnQpDQorP2xkZXhwQD8kX0N0ckBPQHN0ZEBAU0FPT0hAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Omxlbmd0aCh2b2lkKWNvbnN0IA0KKz9sZW5ndGhAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Omxlbmd0aCh2b2lkKWNvbnN0IA0KKz9sZW5ndGhAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czxjaGFyPjo6bGVuZ3RoKGNoYXIgY29uc3QgKikNCis/bGVuZ3RoQD8kY2hhcl90cmFpdHNAREBzdGRAQFNBSVBCREBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6bGVuZ3RoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP2xlbmd0aEA/JGNoYXJfdHJhaXRzQEdAc3RkQEBTQUlQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnQ8Y2hhcixjaGFyLGludD46Omxlbmd0aChpbnQgJixjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCljb25zdCANCis/bGVuZ3RoQD8kY29kZWN2dEBEREhAc3RkQEBRQkVIQUFIUEJEMUlAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnQ8dW5zaWduZWQgc2hvcnQsY2hhcixpbnQ+OjpsZW5ndGgoaW50ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCljb25zdCANCis/bGVuZ3RoQD8kY29kZWN2dEBHREhAc3RkQEBRQkVIQUFIUEJHMUlAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6OmxvZzEwKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/bG9nMTBAc3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6bG9nMTAoY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/bG9nMTBAc3RkQEBZQT9BVj8kY29tcGxleEBOQDFAQUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpsb2cxMChjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorP2xvZzEwQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFCVjIxQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6X0N0cjxmbG9hdD46OmxvZyhmbG9hdCkNCis/bG9nQD8kX0N0ckBNQHN0ZEBAU0FNTUBaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8ZG91YmxlPjo6bG9nKGRvdWJsZSkNCis/bG9nQD8kX0N0ckBOQHN0ZEBAU0FOTkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT46OmxvZyhsb25nIGRvdWJsZSkNCis/bG9nQD8kX0N0ckBPQHN0ZEBAU0FPT0BaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6bG9nKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/bG9nQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAxQEFCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OmxvZyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz9sb2dAc3RkQEBZQT9BVj8kY29tcGxleEBOQDFAQUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpsb2coY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz9sb2dAc3RkQEBZQT9BVj8kY29tcGxleEBPQDFAQUJWMjFAQFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+OjpsdChjaGFyIGNvbnN0ICYsY2hhciBjb25zdCAmKQ0KKz9sdEA/JGNoYXJfdHJhaXRzQERAc3RkQEBTQV9OQUJEMEBaDQorOyBwdWJsaWM6IHN0YXRpYyBib29sIF9fY2RlY2wgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD46Omx0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgJikNCis/bHRAPyRjaGFyX3RyYWl0c0BHQHN0ZEBAU0FfTkFCRzBAWg0KKzsgcHVibGljOiBzdGF0aWMgc2lnbmVkIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpZ25lZCBjaGFyPjo6bWF4KHZvaWQpDQorP21heEA/JG51bWVyaWNfbGltaXRzQENAc3RkQEBTQUNYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hhcj46Om1heCh2b2lkKQ0KKz9tYXhAPyRudW1lcmljX2xpbWl0c0BEQHN0ZEBAU0FEWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGNoYXI+OjptYXgodm9pZCkNCis/bWF4QD8kbnVtZXJpY19saW1pdHNARUBzdGRAQFNBRVhaDQorOyBwdWJsaWM6IHN0YXRpYyBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2hvcnQ+OjptYXgodm9pZCkNCis/bWF4QD8kbnVtZXJpY19saW1pdHNARkBzdGRAQFNBRlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgc2hvcnQ+OjptYXgodm9pZCkNCis/bWF4QD8kbnVtZXJpY19saW1pdHNAR0BzdGRAQFNBR1haDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCh2b2lkKQ0KKz9tYXhAPyRudW1lcmljX2xpbWl0c0BIQHN0ZEBAU0FIWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgaW50Pjo6bWF4KHZvaWQpDQorP21heEA/JG51bWVyaWNfbGltaXRzQElAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZz46Om1heCh2b2lkKQ0KKz9tYXhAPyRudW1lcmljX2xpbWl0c0BKQHN0ZEBAU0FKWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGxvbmc+OjptYXgodm9pZCkNCis/bWF4QD8kbnVtZXJpY19saW1pdHNAS0BzdGRAQFNBS1haDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgodm9pZCkNCis/bWF4QD8kbnVtZXJpY19saW1pdHNATUBzdGRAQFNBTVhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46Om1heCh2b2lkKQ0KKz9tYXhAPyRudW1lcmljX2xpbWl0c0BOQHN0ZEBAU0FOWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGRvdWJsZT46Om1heCh2b2lkKQ0KKz9tYXhAPyRudW1lcmljX2xpbWl0c0BPQHN0ZEBAU0FPWFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGJvb2w+OjptYXgodm9pZCkNCis/bWF4QD8kbnVtZXJpY19saW1pdHNAX05Ac3RkQEBTQV9OWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpjb2RlY3Z0X2Jhc2U6Om1heF9sZW5ndGgodm9pZCljb25zdCANCis/bWF4X2xlbmd0aEBjb2RlY3Z0X2Jhc2VAc3RkQEBRQkVIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjptYXhfc2l6ZSh2b2lkKWNvbnN0IA0KKz9tYXhfc2l6ZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6bWF4X3NpemUodm9pZCljb25zdCANCis/bWF4X3NpemVAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlYWg0KKzsgcHVibGljOiBzdGF0aWMgc2lnbmVkIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpZ25lZCBjaGFyPjo6bWluKHZvaWQpDQorP21pbkA/JG51bWVyaWNfbGltaXRzQENAc3RkQEBTQUNYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hhcj46Om1pbih2b2lkKQ0KKz9taW5APyRudW1lcmljX2xpbWl0c0BEQHN0ZEBAU0FEWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGNoYXI+OjptaW4odm9pZCkNCis/bWluQD8kbnVtZXJpY19saW1pdHNARUBzdGRAQFNBRVhaDQorOyBwdWJsaWM6IHN0YXRpYyBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2hvcnQ+OjptaW4odm9pZCkNCis/bWluQD8kbnVtZXJpY19saW1pdHNARkBzdGRAQFNBRlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgc2hvcnQ+OjptaW4odm9pZCkNCis/bWluQD8kbnVtZXJpY19saW1pdHNAR0BzdGRAQFNBR1haDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1pbih2b2lkKQ0KKz9taW5APyRudW1lcmljX2xpbWl0c0BIQHN0ZEBAU0FIWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgaW50Pjo6bWluKHZvaWQpDQorP21pbkA/JG51bWVyaWNfbGltaXRzQElAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZz46Om1pbih2b2lkKQ0KKz9taW5APyRudW1lcmljX2xpbWl0c0BKQHN0ZEBAU0FKWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGxvbmc+OjptaW4odm9pZCkNCis/bWluQD8kbnVtZXJpY19saW1pdHNAS0BzdGRAQFNBS1haDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptaW4odm9pZCkNCis/bWluQD8kbnVtZXJpY19saW1pdHNATUBzdGRAQFNBTVhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46Om1pbih2b2lkKQ0KKz9taW5APyRudW1lcmljX2xpbWl0c0BOQHN0ZEBAU0FOWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGRvdWJsZT46Om1pbih2b2lkKQ0KKz9taW5APyRudW1lcmljX2xpbWl0c0BPQHN0ZEBAU0FPWFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGJvb2w+OjptaW4odm9pZCkNCis/bWluQD8kbnVtZXJpY19saW1pdHNAX05Ac3RkQEBTQV9OWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgKiBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj46Om1vdmUoY2hhciAqLGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP21vdmVAPyRjaGFyX3RyYWl0c0BEQHN0ZEBAU0FQQURQQURQQkRJQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0ICogX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6bW92ZSh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9tb3ZlQD8kY2hhcl90cmFpdHNAR0BzdGRAQFNBUEFHUEFHUEJHSUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6OmxvY2FsZTo6bmFtZSh2b2lkKWNvbnN0IA0KKz9uYW1lQGxvY2FsZUBzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiBjaGFyIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpuYXJyb3coY2hhcixjaGFyKWNvbnN0IA0KKz9uYXJyb3dAPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQkVERERAWg0KKzsgcHVibGljOiBjaGFyIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om5hcnJvdyh1bnNpZ25lZCBzaG9ydCxjaGFyKWNvbnN0IA0KKz9uYXJyb3dAPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQkVER0RAWg0KKzsgcHVibGljOiBjaGFyIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTxjaGFyPjo6bmFycm93KGNoYXIsY2hhciljb25zdCANCis/bmFycm93QD8kY3R5cGVAREBzdGRAQFFCRUREREBaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8Y2hhcj46Om5hcnJvdyhjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqLGNoYXIsY2hhciAqKWNvbnN0IA0KKz9uYXJyb3dAPyRjdHlwZUBEQHN0ZEBAUUJFUEJEUEJEMERQQURAWg0KKzsgcHVibGljOiBjaGFyIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46Om5hcnJvdyh1bnNpZ25lZCBzaG9ydCxjaGFyKWNvbnN0IA0KKz9uYXJyb3dAPyRjdHlwZUBHQHN0ZEBAUUJFREdEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+OjpuYXJyb3codW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNoYXIsY2hhciAqKWNvbnN0IA0KKz9uYXJyb3dAPyRjdHlwZUBHQHN0ZEBAUUJFUEJHUEJHMERQQURAWg0KKzsgcHVibGljOiBzdHJ1Y3Qgc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuICBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDxjaGFyPjo6bmVnX2Zvcm1hdCh2b2lkKWNvbnN0IA0KKz9uZWdfZm9ybWF0QD8kX01wdW5jdEBEQHN0ZEBAUUJFP0FVcGF0dGVybkBtb25leV9iYXNlQDJAWFoNCis7IHB1YmxpYzogc3RydWN0IHN0ZDo6bW9uZXlfYmFzZTo6cGF0dGVybiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8dW5zaWduZWQgc2hvcnQ+OjpuZWdfZm9ybWF0KHZvaWQpY29uc3QgDQorP25lZ19mb3JtYXRAPyRfTXB1bmN0QEdAc3RkQEBRQkU/QVVwYXR0ZXJuQG1vbmV5X2Jhc2VAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PGNoYXI+OjpuZWdhdGl2ZV9zaWduKHZvaWQpY29uc3QgDQorP25lZ2F0aXZlX3NpZ25APyRfTXB1bmN0QERAc3RkQEBRQkU/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46Om5lZ2F0aXZlX3NpZ24odm9pZCljb25zdCANCis/bmVnYXRpdmVfc2lnbkA/JF9NcHVuY3RAR0BzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBYWg0KKzsgZmxvYXQgX19jZGVjbCBzdGQ6Om5vcm0oY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz9ub3JtQHN0ZEBAWUFNQUJWPyRjb21wbGV4QE1AMUBAWg0KKzsgZG91YmxlIF9fY2RlY2wgc3RkOjpub3JtKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorP25vcm1Ac3RkQEBZQU5BQlY/JGNvbXBsZXhATkAxQEBaDQorOyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bm9ybShjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorP25vcm1Ac3RkQEBZQU9BQlY/JGNvbXBsZXhAT0AxQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+Ojpub3RfZW9mKGludCBjb25zdCAmKQ0KKz9ub3RfZW9mQD8kY2hhcl90cmFpdHNAREBzdGRAQFNBSEFCSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+Ojpub3RfZW9mKHVuc2lnbmVkIHNob3J0IGNvbnN0ICYpDQorP25vdF9lb2ZAPyRjaGFyX3RyYWl0c0BHQHN0ZEBAU0FHQUJHQFoNCis7IHN0cnVjdCBzdGQ6Om5vdGhyb3dfdCBjb25zdCAgc3RkOjpub3Rocm93DQorP25vdGhyb3dAc3RkQEAzVW5vdGhyb3dfdEAxQEINCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBjb25zdCAgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpucG9zDQorP25wb3NAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQDJJQg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IGNvbnN0ICBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46Om5wb3MNCis/bnBvc0A/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAMklCDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZW4oY2hhciBjb25zdCAqLHNob3J0KQ0KKz9vcGVuQD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVBBVjEyQFBCREZAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVuKGNoYXIgY29uc3QgKixpbnQpDQorP29wZW5APyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFUEFWMTJAUEJESEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVuKGNoYXIgY29uc3QgKixzaG9ydCkNCis/b3BlbkA/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVQQVYxMkBQQkRGQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZW4oY2hhciBjb25zdCAqLGludCkNCis/b3BlbkA/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVQQVYxMkBQQkRIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZW4oY2hhciBjb25zdCAqLHNob3J0KQ0KKz9vcGVuQD8kYmFzaWNfZnN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVhQQkRGQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZW4oY2hhciBjb25zdCAqLGludCkNCis/b3BlbkA/JGJhc2ljX2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVYUEJESEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZW4oY2hhciBjb25zdCAqLHNob3J0KQ0KKz9vcGVuQD8kYmFzaWNfZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhQQkRGQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlbihjaGFyIGNvbnN0ICosaW50KQ0KKz9vcGVuQD8kYmFzaWNfZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhQQkRIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvcGVuKGNoYXIgY29uc3QgKixzaG9ydCkNCis/b3BlbkA/JGJhc2ljX2lmc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFWFBCREZAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZW4oY2hhciBjb25zdCAqLGludCkNCis/b3BlbkA/JGJhc2ljX2lmc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFWFBCREhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlbihjaGFyIGNvbnN0ICosc2hvcnQpDQorP29wZW5APyRiYXNpY19pZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhQQkRGQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaWZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om9wZW4oY2hhciBjb25zdCAqLGludCkNCis/b3BlbkA/JGJhc2ljX2lmc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFWFBCREhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9wZW4oY2hhciBjb25zdCAqLHNob3J0KQ0KKz9vcGVuQD8kYmFzaWNfb2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVYUEJERkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BlbihjaGFyIGNvbnN0ICosaW50KQ0KKz9vcGVuQD8kYmFzaWNfb2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVYUEJESEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29mc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpvcGVuKGNoYXIgY29uc3QgKixzaG9ydCkNCis/b3BlbkA/JGJhc2ljX29mc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFWFBCREZAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vZnN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BlbihjaGFyIGNvbnN0ICosaW50KQ0KKz9vcGVuQD8kYmFzaWNfb2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVYUEJESEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXM8Y2hhcj46Om9wZW4oY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYsY2xhc3Mgc3RkOjpsb2NhbGUgY29uc3QgJiljb25zdCANCis/b3BlbkA/JG1lc3NhZ2VzQERAc3RkQEBRQkVIQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQEFCVmxvY2FsZUAyQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6bWVzc2FnZXM8dW5zaWduZWQgc2hvcnQ+OjpvcGVuKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLGNsYXNzIHN0ZDo6bG9jYWxlIGNvbnN0ICYpY29uc3QgDQorP29wZW5APyRtZXNzYWdlc0BHQHN0ZEBAUUJFSEFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBBQlZsb2NhbGVAMkBAWg0KKzsgcHVibGljOiBib29sIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3BmeCh2b2lkKQ0KKz9vcGZ4QD8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRV9OWFoNCis7IHB1YmxpYzogYm9vbCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3BmeCh2b2lkKQ0KKz9vcGZ4QD8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRV9OWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9zZngodm9pZCkNCis/b3NmeEA/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6b3NmeCh2b2lkKQ0KKz9vc2Z4QD8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmNvZGVjdnQ8Y2hhcixjaGFyLGludD46Om91dChpbnQgJixjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKiAmLGNoYXIgKixjaGFyICosY2hhciAqICYpY29uc3QgDQorP291dEA/JGNvZGVjdnRARERIQHN0ZEBAUUJFSEFBSFBCRDFBQVBCRFBBRDNBQVBBREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6Y29kZWN2dDx1bnNpZ25lZCBzaG9ydCxjaGFyLGludD46Om91dChpbnQgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKiAmLGNoYXIgKixjaGFyICosY2hhciAqICYpY29uc3QgDQorP291dEA/JGNvZGVjdnRAR0RIQHN0ZEBAUUJFSEFBSFBCRzFBQVBCR1BBRDNBQVBBREBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6b3ZlcmZsb3coaW50KQ0KKz9vdmVyZmxvd0A/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNQUVISEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om92ZXJmbG93KHVuc2lnbmVkIHNob3J0KQ0KKz9vdmVyZmxvd0A/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBNQUVHR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpvdmVyZmxvdyhpbnQpDQorP292ZXJmbG93QD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBATUFFSEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46Om92ZXJmbG93KHVuc2lnbmVkIHNob3J0KQ0KKz9vdmVyZmxvd0A/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1BRUdHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Om92ZXJmbG93KGludCkNCis/b3ZlcmZsb3dAPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQE1BRUhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6b3ZlcmZsb3codW5zaWduZWQgc2hvcnQpDQorP292ZXJmbG93QD8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBNQUVHR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpzdHJzdHJlYW1idWY6Om92ZXJmbG93KGludCkNCis/b3ZlcmZsb3dAc3Ryc3RyZWFtYnVmQHN0ZEBATUFFSEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnBiYWNrZmFpbChpbnQpDQorP3BiYWNrZmFpbEA/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNQUVISEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnBiYWNrZmFpbCh1bnNpZ25lZCBzaG9ydCkNCis/cGJhY2tmYWlsQD8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1BRUdHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnBiYWNrZmFpbChpbnQpDQorP3BiYWNrZmFpbEA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQE1BRUhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpwYmFja2ZhaWwodW5zaWduZWQgc2hvcnQpDQorP3BiYWNrZmFpbEA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1BRUdHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnBiYWNrZmFpbChpbnQpDQorP3BiYWNrZmFpbEA/JGJhc2ljX3N0cmluZ2J1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBATUFFSEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpwYmFja2ZhaWwodW5zaWduZWQgc2hvcnQpDQorP3BiYWNrZmFpbEA/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBATUFFR0dAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6c3Ryc3RyZWFtYnVmOjpwYmFja2ZhaWwoaW50KQ0KKz9wYmFja2ZhaWxAc3Ryc3RyZWFtYnVmQHN0ZEBATUFFSEhAWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnBiYXNlKHZvaWQpY29uc3QgDQorP3BiYXNlQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUJFUEFEWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpwYmFzZSh2b2lkKWNvbnN0IA0KKz9wYmFzZUA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElCRVBBR1haDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnBidW1wKGludCkNCis/cGJ1bXBAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJQUVYSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cGJ1bXAoaW50KQ0KKz9wYnVtcEA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElBRVhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6cGVlayh2b2lkKQ0KKz9wZWVrQD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cGVlayh2b2lkKQ0KKz9wZWVrQD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUdYWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6OnBvbGFyKGZsb2F0IGNvbnN0ICYsZmxvYXQgY29uc3QgJikNCis/cG9sYXJAc3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUJNMEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6cG9sYXIoZmxvYXQgY29uc3QgJikNCis/cG9sYXJAc3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUJNQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6cG9sYXIoZG91YmxlIGNvbnN0ICYsZG91YmxlIGNvbnN0ICYpDQorP3BvbGFyQHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFCTjBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpwb2xhcihkb3VibGUgY29uc3QgJikNCis/cG9sYXJAc3RkQEBZQT9BVj8kY29tcGxleEBOQDFAQUJOQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpwb2xhcihsb25nIGRvdWJsZSBjb25zdCAmLGxvbmcgZG91YmxlIGNvbnN0ICYpDQorP3BvbGFyQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFCTzBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6OnBvbGFyKGxvbmcgZG91YmxlIGNvbnN0ICYpDQorP3BvbGFyQHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFCT0BaDQorOyBwdWJsaWM6IHN0cnVjdCBzdGQ6Om1vbmV5X2Jhc2U6OnBhdHRlcm4gIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PGNoYXI+Ojpwb3NfZm9ybWF0KHZvaWQpY29uc3QgDQorP3Bvc19mb3JtYXRAPyRfTXB1bmN0QERAc3RkQEBRQkU/QVVwYXR0ZXJuQG1vbmV5X2Jhc2VAMkBYWg0KKzsgcHVibGljOiBzdHJ1Y3Qgc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuICBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDx1bnNpZ25lZCBzaG9ydD46OnBvc19mb3JtYXQodm9pZCljb25zdCANCis/cG9zX2Zvcm1hdEA/JF9NcHVuY3RAR0BzdGRAQFFCRT9BVXBhdHRlcm5AbW9uZXlfYmFzZUAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Ol9NcHVuY3Q8Y2hhcj46OnBvc2l0aXZlX3NpZ24odm9pZCljb25zdCANCis/cG9zaXRpdmVfc2lnbkA/JF9NcHVuY3RAREBzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6cG9zaXRpdmVfc2lnbih2b2lkKWNvbnN0IA0KKz9wb3NpdGl2ZV9zaWduQD8kX01wdW5jdEBHQHN0ZEBAUUJFP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6X0N0cjxmbG9hdD46OnBvdyhmbG9hdCxmbG9hdCkNCis/cG93QD8kX0N0ckBNQHN0ZEBAU0FNTU1AWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGRvdWJsZT46OnBvdyhkb3VibGUsZG91YmxlKQ0KKz9wb3dAPyRfQ3RyQE5Ac3RkQEBTQU5OTkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT46OnBvdyhsb25nIGRvdWJsZSxsb25nIGRvdWJsZSkNCis/cG93QD8kX0N0ckBPQHN0ZEBAU0FPT09AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6OnBvdyhmbG9hdCBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/cG93QHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAxQEFCTUFCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6cG93KGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorP3Bvd0BzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBQlYyMUAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpwb3coY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmLGZsb2F0IGNvbnN0ICYpDQorP3Bvd0BzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBQlYyMUBBQk1AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6OnBvdyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYsaW50KQ0KKz9wb3dAc3RkQEBZQT9BVj8kY29tcGxleEBNQDFAQUJWMjFASEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OnBvdyhkb3VibGUgY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz9wb3dAc3RkQEBZQT9BVj8kY29tcGxleEBOQDFAQUJOQUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+ICBfX2NkZWNsIHN0ZDo6cG93KGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYsY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/cG93QHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFCVjIxQDBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpwb3coY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJixkb3VibGUgY29uc3QgJikNCis/cG93QHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFCVjIxQEFCTkBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OnBvdyhjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmLGludCkNCis/cG93QHN0ZEBAWUE/QVY/JGNvbXBsZXhATkAxQEFCVjIxQEhAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6OnBvdyhsb25nIGRvdWJsZSBjb25zdCAmLGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/cG93QHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFCT0FCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ICBfX2NkZWNsIHN0ZDo6cG93KGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJixjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYpDQorP3Bvd0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBQlYyMUAwQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpwb3coY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmLGxvbmcgZG91YmxlIGNvbnN0ICYpDQorP3Bvd0BzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBQlYyMUBBQk9AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6OnBvdyhjbGFzcyBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+IGNvbnN0ICYsaW50KQ0KKz9wb3dAc3RkQEBZQT9BVj8kY29tcGxleEBPQDFAQUJWMjFASEBaDQorOyBwcm90ZWN0ZWQ6IGNoYXIgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6cHB0cih2b2lkKWNvbnN0IA0KKz9wcHRyQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUJFUEFEWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpwcHRyKHZvaWQpY29uc3QgDQorP3BwdHJAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJQkVQQUdYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpwcmVjaXNpb24oaW50KQ0KKz9wcmVjaXNpb25AaW9zX2Jhc2VAc3RkQEBRQUVISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6OnByZWNpc2lvbih2b2lkKWNvbnN0IA0KKz9wcmVjaXNpb25AaW9zX2Jhc2VAc3RkQEBRQkVIWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpsb2NhbGUgIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpwdWJpbWJ1ZShjbGFzcyBzdGQ6OmxvY2FsZSBjb25zdCAmKQ0KKz9wdWJpbWJ1ZUA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRT9BVmxvY2FsZUAyQEFCVjMyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6bG9jYWxlICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpwdWJpbWJ1ZShjbGFzcyBzdGQ6OmxvY2FsZSBjb25zdCAmKQ0KKz9wdWJpbWJ1ZUA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRT9BVmxvY2FsZUAyQEFCVjMyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6cHVic2Vla29mZihsb25nLHNob3J0LHNob3J0KQ0KKz9wdWJzZWVrb2ZmQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFP0FWPyRmcG9zQEhAMkBKRkZAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnB1YnNlZWtvZmYobG9uZyxlbnVtIHN0ZDo6aW9zX2Jhc2U6OnNlZWtkaXIsaW50KQ0KKz9wdWJzZWVrb2ZmQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFP0FWPyRmcG9zQEhAMkBKVzRzZWVrZGlyQGlvc19iYXNlQDJASEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpwdWJzZWVrb2ZmKGxvbmcsc2hvcnQsc2hvcnQpDQorP3B1YnNlZWtvZmZAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUU/QVY/JGZwb3NASEAyQEpGRkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpwdWJzZWVrb2ZmKGxvbmcsZW51bSBzdGQ6Omlvc19iYXNlOjpzZWVrZGlyLGludCkNCis/cHVic2Vla29mZkA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRT9BVj8kZnBvc0BIQDJASlc0c2Vla2RpckBpb3NfYmFzZUAyQEhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnB1YnNlZWtwb3MoY2xhc3Mgc3RkOjpmcG9zPGludD4sc2hvcnQpDQorP3B1YnNlZWtwb3NAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUU/QVY/JGZwb3NASEAyQFYzMkBGQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpmcG9zPGludD4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpwdWJzZWVrcG9zKGNsYXNzIHN0ZDo6ZnBvczxpbnQ+LGludCkNCis/cHVic2Vla3Bvc0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRT9BVj8kZnBvc0BIQDJAVjMyQEhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cHVic2Vla3BvcyhjbGFzcyBzdGQ6OmZwb3M8aW50PixzaG9ydCkNCis/cHVic2Vla3Bvc0A/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRT9BVj8kZnBvc0BIQDJAVjMyQEZAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cHVic2Vla3BvcyhjbGFzcyBzdGQ6OmZwb3M8aW50PixpbnQpDQorP3B1YnNlZWtwb3NAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUU/QVY/JGZwb3NASEAyQFYzMkBIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnB1YnNldGJ1ZihjaGFyICosaW50KQ0KKz9wdWJzZXRidWZAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVQQVYxMkBQQURIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpwdWJzZXRidWYodW5zaWduZWQgc2hvcnQgKixpbnQpDQorP3B1YnNldGJ1ZkA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVBBVjEyQFBBR0hAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnB1YnN5bmModm9pZCkNCis/cHVic3luY0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6cHVic3luYyh2b2lkKQ0KKz9wdWJzeW5jQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFSFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnB1dChjaGFyKQ0KKz9wdXRAPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpwdXQodW5zaWduZWQgc2hvcnQpDQorP3B1dEA/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYxMkBHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om1vbmV5X3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYsY2hhcixjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJiljb25zdCANCis/cHV0QD8kbW9uZXlfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQF9OQUFWaW9zX2Jhc2VAMkBEQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjptb25leV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGJvb2wsY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGNoYXIsbG9uZyBkb3VibGUpY29uc3QgDQorP3B1dEA/JG1vbmV5X3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBfTkFBVmlvc19iYXNlQDJARE9AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjptb25leV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYsdW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpY29uc3QgDQorP3B1dEA/JG1vbmV5X3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBfTkFBVmlvc19iYXNlQDJAR0FCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjptb25leV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sYm9vbCxjbGFzcyBzdGQ6Omlvc19iYXNlICYsdW5zaWduZWQgc2hvcnQsbG9uZyBkb3VibGUpY29uc3QgDQorP3B1dEA/JG1vbmV5X3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBfTkFBVmlvc19iYXNlQDJAR09AWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGNoYXIsbG9uZyljb25zdCANCis/cHV0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQERKQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixjaGFyLHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP3B1dEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBES0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsY2hhcixkb3VibGUpY29uc3QgDQorP3B1dEA/JG51bV9wdXRARFY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBETkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsY2hhcixsb25nIGRvdWJsZSljb25zdCANCis/cHV0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQERPQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8Y2hhcixjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixjaGFyLHZvaWQgY29uc3QgKiljb25zdCANCis/cHV0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQERQQlhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLGNoYXIsYm9vbCljb25zdCANCis/cHV0QD8kbnVtX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQERfTkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLHVuc2lnbmVkIHNob3J0LGxvbmcpY29uc3QgDQorP3B1dEA/JG51bV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBHSkBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP3B1dEA/JG51bV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBHS0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLHVuc2lnbmVkIHNob3J0LGRvdWJsZSljb25zdCANCis/cHV0QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQEdOQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsdW5zaWduZWQgc2hvcnQsbG9uZyBkb3VibGUpY29uc3QgDQorP3B1dEA/JG51bV9wdXRAR1Y/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBAc3RkQEBRQkU/QVY/JG9zdHJlYW1idWZfaXRlcmF0b3JAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBWMzJAQUFWaW9zX2Jhc2VAMkBHT0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6Om51bV9wdXQ8dW5zaWduZWQgc2hvcnQsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ID46OnB1dChjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLHVuc2lnbmVkIHNob3J0LHZvaWQgY29uc3QgKiljb25zdCANCis/cHV0QD8kbnVtX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQEdQQlhAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1fcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJix1bnNpZ25lZCBzaG9ydCxib29sKWNvbnN0IA0KKz9wdXRAPyRudW1fcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJAR19OQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6OnRpbWVfcHV0PGNoYXIsY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsc3RydWN0IHRtIGNvbnN0ICosY2hhcixjaGFyKWNvbnN0IA0KKz9wdXRAPyR0aW1lX3B1dEBEVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQFBCVXRtQEBEREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjp0aW1lX3B1dDxjaGFyLGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4sY2xhc3Mgc3RkOjppb3NfYmFzZSAmLHN0cnVjdCB0bSBjb25zdCAqLGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICopY29uc3QgDQorP3B1dEA/JHRpbWVfcHV0QERWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJAUEJVdG1AQFBCRDNAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjp0aW1lX3B1dDx1bnNpZ25lZCBzaG9ydCxjbGFzcyBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gPjo6cHV0KGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPixjbGFzcyBzdGQ6Omlvc19iYXNlICYsc3RydWN0IHRtIGNvbnN0ICosY2hhcixjaGFyKWNvbnN0IA0KKz9wdXRAPyR0aW1lX3B1dEBHVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQEBzdGRAQFFCRT9BVj8kb3N0cmVhbWJ1Zl9pdGVyYXRvckBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFYzMkBBQVZpb3NfYmFzZUAyQFBCVXRtQEBEREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6OnRpbWVfcHV0PHVuc2lnbmVkIHNob3J0LGNsYXNzIHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiA+OjpwdXQoY2xhc3Mgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixzdHJ1Y3QgdG0gY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP3B1dEA/JHRpbWVfcHV0QEdWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAQHN0ZEBAUUJFP0FWPyRvc3RyZWFtYnVmX2l0ZXJhdG9yQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAVjMyQEFBVmlvc19iYXNlQDJAUEJVdG1AQFBCRzNAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpwdXRiYWNrKGNoYXIpDQorP3B1dGJhY2tAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAREBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpwdXRiYWNrKHVuc2lnbmVkIHNob3J0KQ0KKz9wdXRiYWNrQD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjEyQEdAWg0KKzsgcHVibGljOiB2b2lkICogJiBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6OnB3b3JkKGludCkNCis/cHdvcmRAaW9zX2Jhc2VAc3RkQEBRQUVBQVBBWEhAWg0KKzsgcHVibGljOiBzdGF0aWMgc2lnbmVkIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpZ25lZCBjaGFyPjo6cXVpZXRfTmFOKHZvaWQpDQorP3F1aWV0X05hTkA/JG51bWVyaWNfbGltaXRzQENAc3RkQEBTQUNYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hhcj46OnF1aWV0X05hTih2b2lkKQ0KKz9xdWlldF9OYU5APyRudW1lcmljX2xpbWl0c0BEQHN0ZEBAU0FEWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGNoYXI+OjpxdWlldF9OYU4odm9pZCkNCis/cXVpZXRfTmFOQD8kbnVtZXJpY19saW1pdHNARUBzdGRAQFNBRVhaDQorOyBwdWJsaWM6IHN0YXRpYyBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2hvcnQ+OjpxdWlldF9OYU4odm9pZCkNCis/cXVpZXRfTmFOQD8kbnVtZXJpY19saW1pdHNARkBzdGRAQFNBRlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgc2hvcnQ+OjpxdWlldF9OYU4odm9pZCkNCis/cXVpZXRfTmFOQD8kbnVtZXJpY19saW1pdHNAR0BzdGRAQFNBR1haDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46OnF1aWV0X05hTih2b2lkKQ0KKz9xdWlldF9OYU5APyRudW1lcmljX2xpbWl0c0BIQHN0ZEBAU0FIWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgaW50Pjo6cXVpZXRfTmFOKHZvaWQpDQorP3F1aWV0X05hTkA/JG51bWVyaWNfbGltaXRzQElAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZz46OnF1aWV0X05hTih2b2lkKQ0KKz9xdWlldF9OYU5APyRudW1lcmljX2xpbWl0c0BKQHN0ZEBAU0FKWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGxvbmc+OjpxdWlldF9OYU4odm9pZCkNCis/cXVpZXRfTmFOQD8kbnVtZXJpY19saW1pdHNAS0BzdGRAQFNBS1haDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjpxdWlldF9OYU4odm9pZCkNCis/cXVpZXRfTmFOQD8kbnVtZXJpY19saW1pdHNATUBzdGRAQFNBTVhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTih2b2lkKQ0KKz9xdWlldF9OYU5APyRudW1lcmljX2xpbWl0c0BOQHN0ZEBAU0FOWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGRvdWJsZT46OnF1aWV0X05hTih2b2lkKQ0KKz9xdWlldF9OYU5APyRudW1lcmljX2xpbWl0c0BPQHN0ZEBAU0FPWFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGJvb2w+OjpxdWlldF9OYU4odm9pZCkNCis/cXVpZXRfTmFOQD8kbnVtZXJpY19saW1pdHNAX05Ac3RkQEBTQV9OWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpyZXZlcnNlX2l0ZXJhdG9yPGNoYXIgKixjaGFyLGNoYXIgJixjaGFyICosaW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJiZWdpbih2b2lkKQ0KKz9yYmVnaW5APyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRT9BVj8kcmV2ZXJzZV9pdGVyYXRvckBQQUREQUFEUEFESEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6cmV2ZXJzZV9pdGVyYXRvcjxjaGFyIGNvbnN0ICosY2hhcixjaGFyIGNvbnN0ICYsY2hhciBjb25zdCAqLGludD4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyYmVnaW4odm9pZCljb25zdCANCis/cmJlZ2luQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkU/QVY/JHJldmVyc2VfaXRlcmF0b3JAUEJEREFCRFBCREhAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCAmLHVuc2lnbmVkIHNob3J0ICosaW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJiZWdpbih2b2lkKQ0KKz9yYmVnaW5APyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRT9BVj8kcmV2ZXJzZV9pdGVyYXRvckBQQUdHQUFHUEFHSEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6cmV2ZXJzZV9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmJlZ2luKHZvaWQpY29uc3QgDQorP3JiZWdpbkA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFP0FWPyRyZXZlcnNlX2l0ZXJhdG9yQFBCR0dBQkdQQkdIQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19mc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6cmRidWYodm9pZCljb25zdCANCis/cmRidWZAPyRiYXNpY19mc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUJFUEFWPyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnJkYnVmKHZvaWQpY29uc3QgDQorP3JkYnVmQD8kYmFzaWNfZnN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFCRVBBVj8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaWZzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkA/JGJhc2ljX2lmc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUJFUEFWPyRiYXNpY19maWxlYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lmc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkA/JGJhc2ljX2lmc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUJFUEFWPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnJkYnVmKGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqKQ0KKz9yZGJ1ZkA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVBBVj8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQDJAUEFWMzJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnJkYnVmKHZvaWQpY29uc3QgDQorP3JkYnVmQD8kYmFzaWNfaW9zQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUJFUEFWPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnJkYnVmKGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICopDQorP3JkYnVmQD8kYmFzaWNfaW9zQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFUEFWPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBQQVYzMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnJkYnVmKHZvaWQpY29uc3QgDQorP3JkYnVmQD8kYmFzaWNfaW9zQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUJFUEFWPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJkYnVmKHZvaWQpY29uc3QgDQorP3JkYnVmQD8kYmFzaWNfaXN0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFUEFWPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmRidWYodm9pZCljb25zdCANCis/cmRidWZAPyRiYXNpY19pc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVQQVY/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vZnN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnJkYnVmKHZvaWQpY29uc3QgDQorP3JkYnVmQD8kYmFzaWNfb2ZzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQkVQQVY/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb2ZzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnJkYnVmKHZvaWQpY29uc3QgDQorP3JkYnVmQD8kYmFzaWNfb2ZzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQkVQQVY/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJkYnVmKHZvaWQpY29uc3QgDQorP3JkYnVmQD8kYmFzaWNfb3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFUEFWPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmRidWYodm9pZCljb25zdCANCis/cmRidWZAPyRiYXNpY19vc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVQQVY/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmdidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJkYnVmKHZvaWQpY29uc3QgDQorP3JkYnVmQD8kYmFzaWNfc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVQQVY/JGJhc2ljX3N0cmluZ2J1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmdidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJkYnVmKHZvaWQpY29uc3QgDQorP3JkYnVmQD8kYmFzaWNfc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVQQVY/JGJhc2ljX3N0cmluZ2J1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6cmRzdGF0ZSh2b2lkKWNvbnN0IA0KKz9yZHN0YXRlQGlvc19iYXNlQHN0ZEBAUUJFSFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnJlYWQoY2hhciAqLGludCkNCis/cmVhZEA/JGJhc2ljX2lzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVBQVYxMkBQQURIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnJlYWQodW5zaWduZWQgc2hvcnQgKixpbnQpDQorP3JlYWRAPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAUEFHSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnJlYWRzb21lKGNoYXIgKixpbnQpDQorP3JlYWRzb21lQD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUhQQURIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpyZWFkc29tZSh1bnNpZ25lZCBzaG9ydCAqLGludCkNCis/cmVhZHNvbWVAPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFSFBBR0hAWg0KKzsgcHVibGljOiBmbG9hdCBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxmbG9hdD46OnJlYWwoZmxvYXQgY29uc3QgJikNCis/cmVhbEA/JF9Db21wbGV4X2Jhc2VATUBzdGRAQFFBRU1BQk1AWg0KKzsgcHVibGljOiBmbG9hdCBfX3RoaXNjYWxsIHN0ZDo6X0NvbXBsZXhfYmFzZTxmbG9hdD46OnJlYWwodm9pZCljb25zdCANCis/cmVhbEA/JF9Db21wbGV4X2Jhc2VATUBzdGRAQFFCRU1YWg0KKzsgcHVibGljOiBkb3VibGUgX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZG91YmxlPjo6cmVhbChkb3VibGUgY29uc3QgJikNCis/cmVhbEA/JF9Db21wbGV4X2Jhc2VATkBzdGRAQFFBRU5BQk5AWg0KKzsgcHVibGljOiBkb3VibGUgX190aGlzY2FsbCBzdGQ6Ol9Db21wbGV4X2Jhc2U8ZG91YmxlPjo6cmVhbCh2b2lkKWNvbnN0IA0KKz9yZWFsQD8kX0NvbXBsZXhfYmFzZUBOQHN0ZEBAUUJFTlhaDQorOyBwdWJsaWM6IGxvbmcgZG91YmxlIF9fdGhpc2NhbGwgc3RkOjpfQ29tcGxleF9iYXNlPGxvbmcgZG91YmxlPjo6cmVhbChsb25nIGRvdWJsZSBjb25zdCAmKQ0KKz9yZWFsQD8kX0NvbXBsZXhfYmFzZUBPQHN0ZEBAUUFFT0FCT0BaDQorOyBwdWJsaWM6IGxvbmcgZG91YmxlIF9fdGhpc2NhbGwgc3RkOjpfQ29tcGxleF9iYXNlPGxvbmcgZG91YmxlPjo6cmVhbCh2b2lkKWNvbnN0IA0KKz9yZWFsQD8kX0NvbXBsZXhfYmFzZUBPQHN0ZEBAUUJFT1haDQorOyBmbG9hdCBfX2NkZWNsIHN0ZDo6cmVhbChjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+IGNvbnN0ICYpDQorP3JlYWxAc3RkQEBZQU1BQlY/JGNvbXBsZXhATUAxQEBaDQorOyBkb3VibGUgX19jZGVjbCBzdGQ6OnJlYWwoY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/cmVhbEBzdGRAQFlBTkFCVj8kY29tcGxleEBOQDFAQFoNCis7IGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpyZWFsKGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/cmVhbEBzdGRAQFlBT0FCVj8kY29tcGxleEBPQDFAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6OnJlZ2lzdGVyX2NhbGxiYWNrKHZvaWQgKF9fY2RlY2wqKShlbnVtIHN0ZDo6aW9zX2Jhc2U6OmV2ZW50LGNsYXNzIHN0ZDo6aW9zX2Jhc2UgJixpbnQpLGludCkNCis/cmVnaXN0ZXJfY2FsbGJhY2tAaW9zX2Jhc2VAc3RkQEBRQUVYUDZBWFc0ZXZlbnRAMTJAQUFWMTJASEBaSEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6cmV2ZXJzZV9pdGVyYXRvcjxjaGFyICosY2hhcixjaGFyICYsY2hhciAqLGludD4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZW5kKHZvaWQpDQorP3JlbmRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRT9BVj8kcmV2ZXJzZV9pdGVyYXRvckBQQUREQUFEUEFESEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6cmV2ZXJzZV9pdGVyYXRvcjxjaGFyIGNvbnN0ICosY2hhcixjaGFyIGNvbnN0ICYsY2hhciBjb25zdCAqLGludD4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZW5kKHZvaWQpY29uc3QgDQorP3JlbmRAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRT9BVj8kcmV2ZXJzZV9pdGVyYXRvckBQQkREQUJEUEJESEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6cmV2ZXJzZV9pdGVyYXRvcjx1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIHNob3J0ICYsdW5zaWduZWQgc2hvcnQgKixpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmVuZCh2b2lkKQ0KKz9yZW5kQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUU/QVY/JHJldmVyc2VfaXRlcmF0b3JAUEFHR0FBR1BBR0hAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OnJldmVyc2VfaXRlcmF0b3I8dW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJlbmQodm9pZCljb25zdCANCis/cmVuZEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFP0FWPyRyZXZlcnNlX2l0ZXJhdG9yQFBCR0dBQkdQQkdIQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJlcGxhY2UodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJikNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJASUlBQlYxMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmVwbGFjZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjEyQElJQUJWMTJASUlAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmVwbGFjZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxjaGFyKQ0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYxMkBJSUlEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJlcGxhY2UodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxjaGFyIGNvbnN0ICopDQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRUFBVjEyQElJUEJEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJlcGxhY2UodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYxMkBJSVBCRElAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmVwbGFjZShjaGFyICosY2hhciAqLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYxMkBQQUQwQUJWMTJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJlcGxhY2UoY2hhciAqLGNoYXIgKix1bnNpZ25lZCBpbnQsY2hhcikNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFQUFWMTJAUEFEMElEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJlcGxhY2UoY2hhciAqLGNoYXIgKixjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqKQ0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYxMkBQQUQwUEJEMUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZXBsYWNlKGNoYXIgKixjaGFyICosY2hhciBjb25zdCAqKQ0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYxMkBQQUQwUEJEQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJlcGxhY2UoY2hhciAqLGNoYXIgKixjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVBQVYxMkBQQUQwUEJESUBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZXBsYWNlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQElJQUJWMTJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJlcGxhY2UodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQVYxMkBJSUFCVjEyQElJQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJlcGxhY2UodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQpDQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQElJSUdAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmVwbGFjZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP3JlcGxhY2VAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRUFBVjEyQElJUEJHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJlcGxhY2UodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJASUlQQkdJQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJlcGxhY2UodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqLGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz9yZXBsYWNlQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVBQVYxMkBQQUcwQUJWMTJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJlcGxhY2UodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCkNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJAUEFHMElHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJlcGxhY2UodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJAUEFHMFBCRzFAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmVwbGFjZSh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJAUEFHMFBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZXBsYWNlKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/cmVwbGFjZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFQUFWMTJAUEFHMFBCR0lAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZXNlcnZlKHVuc2lnbmVkIGludCkNCis/cmVzZXJ2ZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFWElAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZXNlcnZlKHVuc2lnbmVkIGludCkNCis/cmVzZXJ2ZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFWElAWg0KKzsgc3RydWN0IHN0ZDo6X1NtYW5pcDxpbnQ+ICBfX2NkZWNsIHN0ZDo6cmVzZXRpb3NmbGFncyhpbnQpDQorP3Jlc2V0aW9zZmxhZ3NAc3RkQEBZQT9BVT8kX1NtYW5pcEBIQDFASEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJlc2l6ZSh1bnNpZ25lZCBpbnQpDQorP3Jlc2l6ZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFWElAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZXNpemUodW5zaWduZWQgaW50LGNoYXIpDQorP3Jlc2l6ZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFWElEQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6cmVzaXplKHVuc2lnbmVkIGludCkNCis/cmVzaXplQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVYSUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJlc2l6ZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQpDQorP3Jlc2l6ZUA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFWElHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpyZmluZChjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gY29uc3QgJix1bnNpZ25lZCBpbnQpY29uc3QgDQorP3JmaW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJQUJWMTJASUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmZpbmQoY2hhcix1bnNpZ25lZCBpbnQpY29uc3QgDQorP3JmaW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJRElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnJmaW5kKGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpY29uc3QgDQorP3JmaW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJUEJESUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6cmZpbmQoY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP3JmaW5kQD8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkVJUEJESUlAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJmaW5kKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmLHVuc2lnbmVkIGludCljb25zdCANCis/cmZpbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlBQlYxMkBJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpyZmluZCh1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP3JmaW5kQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJR0lAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJmaW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KWNvbnN0IA0KKz9yZmluZEA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFSVBCR0lAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnJmaW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCANCis/cmZpbmRAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRUlQQkdJSUBaDQorOyBwdWJsaWM6IHN0YXRpYyBzaWduZWQgY2hhciBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2lnbmVkIGNoYXI+Ojpyb3VuZF9lcnJvcih2b2lkKQ0KKz9yb3VuZF9lcnJvckA/JG51bWVyaWNfbGltaXRzQENAc3RkQEBTQUNYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hhcj46OnJvdW5kX2Vycm9yKHZvaWQpDQorP3JvdW5kX2Vycm9yQD8kbnVtZXJpY19saW1pdHNAREBzdGRAQFNBRFhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBjaGFyIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBjaGFyPjo6cm91bmRfZXJyb3Iodm9pZCkNCis/cm91bmRfZXJyb3JAPyRudW1lcmljX2xpbWl0c0BFQHN0ZEBAU0FFWFoNCis7IHB1YmxpYzogc3RhdGljIHNob3J0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxzaG9ydD46OnJvdW5kX2Vycm9yKHZvaWQpDQorP3JvdW5kX2Vycm9yQD8kbnVtZXJpY19saW1pdHNARkBzdGRAQFNBRlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgc2hvcnQ+Ojpyb3VuZF9lcnJvcih2b2lkKQ0KKz9yb3VuZF9lcnJvckA/JG51bWVyaWNfbGltaXRzQEdAc3RkQEBTQUdYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+Ojpyb3VuZF9lcnJvcih2b2lkKQ0KKz9yb3VuZF9lcnJvckA/JG51bWVyaWNfbGltaXRzQEhAc3RkQEBTQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBpbnQ+Ojpyb3VuZF9lcnJvcih2b2lkKQ0KKz9yb3VuZF9lcnJvckA/JG51bWVyaWNfbGltaXRzQElAc3RkQEBTQUlYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZz46OnJvdW5kX2Vycm9yKHZvaWQpDQorP3JvdW5kX2Vycm9yQD8kbnVtZXJpY19saW1pdHNASkBzdGRAQFNBSlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBsb25nPjo6cm91bmRfZXJyb3Iodm9pZCkNCis/cm91bmRfZXJyb3JAPyRudW1lcmljX2xpbWl0c0BLQHN0ZEBAU0FLWFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5kX2Vycm9yKHZvaWQpDQorP3JvdW5kX2Vycm9yQD8kbnVtZXJpY19saW1pdHNATUBzdGRAQFNBTVhaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnJvdW5kX2Vycm9yKHZvaWQpDQorP3JvdW5kX2Vycm9yQD8kbnVtZXJpY19saW1pdHNATkBzdGRAQFNBTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBkb3VibGU+Ojpyb3VuZF9lcnJvcih2b2lkKQ0KKz9yb3VuZF9lcnJvckA/JG51bWVyaWNfbGltaXRzQE9Ac3RkQEBTQU9YWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8Ym9vbD46OnJvdW5kX2Vycm9yKHZvaWQpDQorP3JvdW5kX2Vycm9yQD8kbnVtZXJpY19saW1pdHNAX05Ac3RkQEBTQV9OWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzYnVtcGModm9pZCkNCis/c2J1bXBjQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNidW1wYyh2b2lkKQ0KKz9zYnVtcGNAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVHWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTxjaGFyPjo6c2Nhbl9pcyhzaG9ydCxjaGFyIGNvbnN0ICosY2hhciBjb25zdCAqKWNvbnN0IA0KKz9zY2FuX2lzQD8kY3R5cGVAREBzdGRAQFFCRVBCREZQQkQwQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+OjpzY2FuX2lzKHNob3J0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/c2Nhbl9pc0A/JGN0eXBlQEdAc3RkQEBRQkVQQkdGUEJHMEBaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8Y2hhcj46OnNjYW5fbm90KHNob3J0LGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICopY29uc3QgDQorP3NjYW5fbm90QD8kY3R5cGVAREBzdGRAQFFCRVBCREZQQkQwQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8dW5zaWduZWQgc2hvcnQ+OjpzY2FuX25vdChzaG9ydCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP3NjYW5fbm90QD8kY3R5cGVAR0BzdGRAQFFCRVBCR0ZQQkcwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c2Vla2cobG9uZyxlbnVtIHN0ZDo6aW9zX2Jhc2U6OnNlZWtkaXIpDQorP3NlZWtnQD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjEyQEpXNHNlZWtkaXJAaW9zX2Jhc2VAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZWVrZyhjbGFzcyBzdGQ6OmZwb3M8aW50PikNCis/c2Vla2dAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAVj8kZnBvc0BIQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNlZWtnKGxvbmcsZW51bSBzdGQ6Omlvc19iYXNlOjpzZWVrZGlyKQ0KKz9zZWVrZ0A/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYxMkBKVzRzZWVrZGlyQGlvc19iYXNlQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNlZWtnKGNsYXNzIHN0ZDo6ZnBvczxpbnQ+KQ0KKz9zZWVrZ0A/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYxMkBWPyRmcG9zQEhAMkBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNlZWtvZmYobG9uZyxlbnVtIHN0ZDo6aW9zX2Jhc2U6OnNlZWtkaXIsaW50KQ0KKz9zZWVrb2ZmQD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQE1BRT9BVj8kZnBvc0BIQDJASlc0c2Vla2RpckBpb3NfYmFzZUAyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c2Vla29mZihsb25nLGVudW0gc3RkOjppb3NfYmFzZTo6c2Vla2RpcixpbnQpDQorP3NlZWtvZmZAPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUFFP0FWPyRmcG9zQEhAMkBKVzRzZWVrZGlyQGlvc19iYXNlQDJASEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpmcG9zPGludD4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZWVrb2ZmKGxvbmcsZW51bSBzdGQ6Omlvc19iYXNlOjpzZWVrZGlyLGludCkNCis/c2Vla29mZkA/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQE1BRT9BVj8kZnBvc0BIQDJASlc0c2Vla2RpckBpb3NfYmFzZUAyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZWVrb2ZmKGxvbmcsZW51bSBzdGQ6Omlvc19iYXNlOjpzZWVrZGlyLGludCkNCis/c2Vla29mZkA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1BRT9BVj8kZnBvc0BIQDJASlc0c2Vla2RpckBpb3NfYmFzZUAyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6c2Vla29mZihsb25nLGVudW0gc3RkOjppb3NfYmFzZTo6c2Vla2RpcixpbnQpDQorP3NlZWtvZmZAPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQE1BRT9BVj8kZnBvc0BIQDJASlc0c2Vla2RpckBpb3NfYmFzZUAyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6c2Vla29mZihsb25nLGVudW0gc3RkOjppb3NfYmFzZTo6c2Vla2RpcixpbnQpDQorP3NlZWtvZmZAPyRiYXNpY19zdHJpbmdidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQE1BRT9BVj8kZnBvc0BIQDJASlc0c2Vla2RpckBpb3NfYmFzZUAyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6c3Ryc3RyZWFtYnVmOjpzZWVrb2ZmKGxvbmcsZW51bSBzdGQ6Omlvc19iYXNlOjpzZWVrZGlyLGludCkNCis/c2Vla29mZkBzdHJzdHJlYW1idWZAc3RkQEBNQUU/QVY/JGZwb3NASEAyQEpXNHNlZWtkaXJAaW9zX2Jhc2VAMkBIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c2Vla3AobG9uZyxlbnVtIHN0ZDo6aW9zX2Jhc2U6OnNlZWtkaXIpDQorP3NlZWtwQD8kYmFzaWNfb3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUFBVjEyQEpXNHNlZWtkaXJAaW9zX2Jhc2VAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZWVrcChjbGFzcyBzdGQ6OmZwb3M8aW50PikNCis/c2Vla3BAPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAVj8kZnBvc0BIQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNlZWtwKGxvbmcsZW51bSBzdGQ6Omlvc19iYXNlOjpzZWVrZGlyKQ0KKz9zZWVrcEA/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYxMkBKVzRzZWVrZGlyQGlvc19iYXNlQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNlZWtwKGNsYXNzIHN0ZDo6ZnBvczxpbnQ+KQ0KKz9zZWVrcEA/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVBQVYxMkBWPyRmcG9zQEhAMkBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNlZWtwb3MoY2xhc3Mgc3RkOjpmcG9zPGludD4saW50KQ0KKz9zZWVrcG9zQD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQE1BRT9BVj8kZnBvc0BIQDJAVjMyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c2Vla3BvcyhjbGFzcyBzdGQ6OmZwb3M8aW50PixpbnQpDQorP3NlZWtwb3NAPyRiYXNpY19maWxlYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUFFP0FWPyRmcG9zQEhAMkBWMzJASEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpmcG9zPGludD4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZWVrcG9zKGNsYXNzIHN0ZDo6ZnBvczxpbnQ+LGludCkNCis/c2Vla3Bvc0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQE1BRT9BVj8kZnBvc0BIQDJAVjMyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZWVrcG9zKGNsYXNzIHN0ZDo6ZnBvczxpbnQ+LGludCkNCis/c2Vla3Bvc0A/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1BRT9BVj8kZnBvc0BIQDJAVjMyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6c2Vla3BvcyhjbGFzcyBzdGQ6OmZwb3M8aW50PixpbnQpDQorP3NlZWtwb3NAPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQE1BRT9BVj8kZnBvc0BIQDJAVjMyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6c2Vla3BvcyhjbGFzcyBzdGQ6OmZwb3M8aW50PixpbnQpDQorP3NlZWtwb3NAPyRiYXNpY19zdHJpbmdidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQE1BRT9BVj8kZnBvc0BIQDJAVjMyQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6ZnBvczxpbnQ+ICBfX3RoaXNjYWxsIHN0ZDo6c3Ryc3RyZWFtYnVmOjpzZWVrcG9zKGNsYXNzIHN0ZDo6ZnBvczxpbnQ+LGludCkNCis/c2Vla3Bvc0BzdHJzdHJlYW1idWZAc3RkQEBNQUU/QVY/JGZwb3NASEAyQFYzMkBIQFoNCis7IHN0cnVjdCBzdGQ6Ol9TbWFuaXA8aW50PiAgX19jZGVjbCBzdGQ6OnNldGJhc2UoaW50KQ0KKz9zZXRiYXNlQHN0ZEBAWUE/QVU/JF9TbWFuaXBASEAxQEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c2V0YnVmKGNoYXIgKixpbnQpDQorP3NldGJ1ZkA/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNQUVQQVY/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAyQFBBREhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNldGJ1Zih1bnNpZ25lZCBzaG9ydCAqLGludCkNCis/c2V0YnVmQD8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1BRVBBVj8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDJAUEFHSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3Mgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNldGJ1ZihjaGFyICosaW50KQ0KKz9zZXRidWZAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNQUVQQVYxMkBQQURIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNldGJ1Zih1bnNpZ25lZCBzaG9ydCAqLGludCkNCis/c2V0YnVmQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUFFUEFWMTJAUEFHSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZDo6aW9zX2Jhc2U6OnNldGYoaW50KQ0KKz9zZXRmQGlvc19iYXNlQHN0ZEBAUUFFSEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjpzZXRmKGludCxpbnQpDQorP3NldGZAaW9zX2Jhc2VAc3RkQEBRQUVISEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZXRnKGNoYXIgKixjaGFyICosY2hhciAqKQ0KKz9zZXRnQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBASUFFWFBBRDAwQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZXRnKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqKQ0KKz9zZXRnQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBASUFFWFBBRzAwQFoNCis7IHN0cnVjdCBzdGQ6Ol9TbWFuaXA8aW50PiAgX19jZGVjbCBzdGQ6OnNldGlvc2ZsYWdzKGludCkNCis/c2V0aW9zZmxhZ3NAc3RkQEBZQT9BVT8kX1NtYW5pcEBIQDFASEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNldHAoY2hhciAqLGNoYXIgKixjaGFyICopDQorP3NldHBAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJQUVYUEFEMDBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZXRwKGNoYXIgKixjaGFyICopDQorP3NldHBAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBJQUVYUEFEMEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c2V0cCh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgc2hvcnQgKikNCis/c2V0cEA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQElBRVhQQUcwMEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c2V0cCh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0ICopDQorP3NldHBAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBJQUVYUEFHMEBaDQorOyBzdHJ1Y3Qgc3RkOjpfU21hbmlwPGludD4gIF9fY2RlY2wgc3RkOjpzZXRwcmVjaXNpb24oaW50KQ0KKz9zZXRwcmVjaXNpb25Ac3RkQEBZQT9BVT8kX1NtYW5pcEBIQDFASEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNldHN0YXRlKHNob3J0KQ0KKz9zZXRzdGF0ZUA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRVhGQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c2V0c3RhdGUoaW50LGJvb2wpDQorP3NldHN0YXRlQD8kYmFzaWNfaW9zQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFWEhfTkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c2V0c3RhdGUoc2hvcnQpDQorP3NldHN0YXRlQD8kYmFzaWNfaW9zQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFWEZAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNldHN0YXRlKGludCxib29sKQ0KKz9zZXRzdGF0ZUA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVhIX05AWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6c2V0c3RhdGUoc2hvcnQpDQorP3NldHN0YXRlQGlvc19iYXNlQHN0ZEBAUUFFWEZAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6c2V0c3RhdGUoaW50LGJvb2wpDQorP3NldHN0YXRlQGlvc19iYXNlQHN0ZEBAUUFFWEhfTkBaDQorOyBzdHJ1Y3Qgc3RkOjpfU21hbmlwPGludD4gIF9fY2RlY2wgc3RkOjpzZXR3KGludCkNCis/c2V0d0BzdGRAQFlBP0FVPyRfU21hbmlwQEhAMUBIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzZ2V0Yyh2b2lkKQ0KKz9zZ2V0Y0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzZ2V0Yyh2b2lkKQ0KKz9zZ2V0Y0A/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUdYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNnZXRuKGNoYXIgKixpbnQpDQorP3NnZXRuQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFSFBBREhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c2dldG4odW5zaWduZWQgc2hvcnQgKixpbnQpDQorP3NnZXRuQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFSFBBR0hAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c2hvd21hbnljKHZvaWQpDQorP3Nob3dtYW55Y0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzaG93bWFueWModm9pZCkNCis/c2hvd21hbnljQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUFFSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBzaWduZWQgY2hhciBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2lnbmVkIGNoYXI+OjpzaWduYWxpbmdfTmFOKHZvaWQpDQorP3NpZ25hbGluZ19OYU5APyRudW1lcmljX2xpbWl0c0BDQHN0ZEBAU0FDWFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGNoYXI+OjpzaWduYWxpbmdfTmFOKHZvaWQpDQorP3NpZ25hbGluZ19OYU5APyRudW1lcmljX2xpbWl0c0BEQHN0ZEBAU0FEWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGNoYXIgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGNoYXI+OjpzaWduYWxpbmdfTmFOKHZvaWQpDQorP3NpZ25hbGluZ19OYU5APyRudW1lcmljX2xpbWl0c0BFQHN0ZEBAU0FFWFoNCis7IHB1YmxpYzogc3RhdGljIHNob3J0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxzaG9ydD46OnNpZ25hbGluZ19OYU4odm9pZCkNCis/c2lnbmFsaW5nX05hTkA/JG51bWVyaWNfbGltaXRzQEZAc3RkQEBTQUZYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIHNob3J0Pjo6c2lnbmFsaW5nX05hTih2b2lkKQ0KKz9zaWduYWxpbmdfTmFOQD8kbnVtZXJpY19saW1pdHNAR0BzdGRAQFNBR1haDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46OnNpZ25hbGluZ19OYU4odm9pZCkNCis/c2lnbmFsaW5nX05hTkA/JG51bWVyaWNfbGltaXRzQEhAc3RkQEBTQUhYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBpbnQ+OjpzaWduYWxpbmdfTmFOKHZvaWQpDQorP3NpZ25hbGluZ19OYU5APyRudW1lcmljX2xpbWl0c0BJQHN0ZEBAU0FJWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmc+OjpzaWduYWxpbmdfTmFOKHZvaWQpDQorP3NpZ25hbGluZ19OYU5APyRudW1lcmljX2xpbWl0c0BKQHN0ZEBAU0FKWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jZGVjbCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGxvbmc+OjpzaWduYWxpbmdfTmFOKHZvaWQpDQorP3NpZ25hbGluZ19OYU5APyRudW1lcmljX2xpbWl0c0BLQHN0ZEBAU0FLWFoNCis7IHB1YmxpYzogc3RhdGljIGZsb2F0IF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnNpZ25hbGluZ19OYU4odm9pZCkNCis/c2lnbmFsaW5nX05hTkA/JG51bWVyaWNfbGltaXRzQE1Ac3RkQEBTQU1YWg0KKzsgcHVibGljOiBzdGF0aWMgZG91YmxlIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpzaWduYWxpbmdfTmFOKHZvaWQpDQorP3NpZ25hbGluZ19OYU5APyRudW1lcmljX2xpbWl0c0BOQHN0ZEBAU0FOWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGRvdWJsZT46OnNpZ25hbGluZ19OYU4odm9pZCkNCis/c2lnbmFsaW5nX05hTkA/JG51bWVyaWNfbGltaXRzQE9Ac3RkQEBTQU9YWg0KKzsgcHVibGljOiBzdGF0aWMgYm9vbCBfX2NkZWNsIHN0ZDo6bnVtZXJpY19saW1pdHM8Ym9vbD46OnNpZ25hbGluZ19OYU4odm9pZCkNCis/c2lnbmFsaW5nX05hTkA/JG51bWVyaWNfbGltaXRzQF9OQHN0ZEBAU0FfTlhaDQorOyBwdWJsaWM6IHN0YXRpYyBmbG9hdCBfX2NkZWNsIHN0ZDo6X0N0cjxmbG9hdD46OnNpbihmbG9hdCkNCis/c2luQD8kX0N0ckBNQHN0ZEBAU0FNTUBaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8ZG91YmxlPjo6c2luKGRvdWJsZSkNCis/c2luQD8kX0N0ckBOQHN0ZEBAU0FOTkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGRvdWJsZSBfX2NkZWNsIHN0ZDo6X0N0cjxsb25nIGRvdWJsZT46OnNpbihsb25nIGRvdWJsZSkNCis/c2luQD8kX0N0ckBPQHN0ZEBAU0FPT0BaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ICBfX2NkZWNsIHN0ZDo6c2luKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/c2luQHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAxQEFCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OnNpbihjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBjb25zdCAmKQ0KKz9zaW5Ac3RkQEBZQT9BVj8kY29tcGxleEBOQDFAQUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpzaW4oY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz9zaW5Ac3RkQEBZQT9BVj8kY29tcGxleEBPQDFAQUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gIF9fY2RlY2wgc3RkOjpzaW5oKGNsYXNzIHN0ZDo6Y29tcGxleDxmbG9hdD4gY29uc3QgJikNCis/c2luaEBzdGRAQFlBP0FWPyRjb21wbGV4QE1AMUBBQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpzaW5oKGNsYXNzIHN0ZDo6Y29tcGxleDxkb3VibGU+IGNvbnN0ICYpDQorP3NpbmhAc3RkQEBZQT9BVj8kY29tcGxleEBOQDFAQUJWMjFAQFoNCis7IGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gIF9fY2RlY2wgc3RkOjpzaW5oKGNsYXNzIHN0ZDo6Y29tcGxleDxsb25nIGRvdWJsZT4gY29uc3QgJikNCis/c2luaEBzdGRAQFlBP0FWPyRjb21wbGV4QE9AMUBBQlYyMUBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnNpemUodm9pZCljb25zdCANCis/c2l6ZUA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6c2l6ZSh2b2lkKWNvbnN0IA0KKz9zaXplQD8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkVJWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzbmV4dGModm9pZCkNCis/c25leHRjQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnNuZXh0Yyh2b2lkKQ0KKz9zbmV4dGNAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVHWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzcHV0YmFja2MoY2hhcikNCis/c3B1dGJhY2tjQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFSERAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzcHV0YmFja2ModW5zaWduZWQgc2hvcnQpDQorP3NwdXRiYWNrY0A/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUdHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+OjpzcHV0YyhjaGFyKQ0KKz9zcHV0Y0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUhEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c3B1dGModW5zaWduZWQgc2hvcnQpDQorP3NwdXRjQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFR0dAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnNwdXRuKGNoYXIgY29uc3QgKixpbnQpDQorP3NwdXRuQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFSFBCREhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6c3B1dG4odW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpDQorP3NwdXRuQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFSFBCR0hAWg0KKzsgcHVibGljOiBzdGF0aWMgZmxvYXQgX19jZGVjbCBzdGQ6Ol9DdHI8ZmxvYXQ+OjpzcXJ0KGZsb2F0KQ0KKz9zcXJ0QD8kX0N0ckBNQHN0ZEBAU0FNTUBaDQorOyBwdWJsaWM6IHN0YXRpYyBkb3VibGUgX19jZGVjbCBzdGQ6Ol9DdHI8ZG91YmxlPjo6c3FydChkb3VibGUpDQorP3NxcnRAPyRfQ3RyQE5Ac3RkQEBTQU5OQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgZG91YmxlIF9fY2RlY2wgc3RkOjpfQ3RyPGxvbmcgZG91YmxlPjo6c3FydChsb25nIGRvdWJsZSkNCis/c3FydEA/JF9DdHJAT0BzdGRAQFNBT09AWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiAgX19jZGVjbCBzdGQ6OnNxcnQoY2xhc3Mgc3RkOjpjb21wbGV4PGZsb2F0PiBjb25zdCAmKQ0KKz9zcXJ0QHN0ZEBAWUE/QVY/JGNvbXBsZXhATUAxQEFCVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmNvbXBsZXg8ZG91YmxlPiAgX19jZGVjbCBzdGQ6OnNxcnQoY2xhc3Mgc3RkOjpjb21wbGV4PGRvdWJsZT4gY29uc3QgJikNCis/c3FydEBzdGRAQFlBP0FWPyRjb21wbGV4QE5AMUBBQlYyMUBAWg0KKzsgY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiAgX19jZGVjbCBzdGQ6OnNxcnQoY2xhc3Mgc3RkOjpjb21wbGV4PGxvbmcgZG91YmxlPiBjb25zdCAmKQ0KKz9zcXJ0QHN0ZEBAWUE/QVY/JGNvbXBsZXhAT0AxQEFCVjIxQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnN0b3NzYyh2b2lkKQ0KKz9zdG9zc2NAPyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzdG9zc2Modm9pZCkNCis/c3Rvc3NjQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpzdHIoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorP3N0ckA/JGJhc2ljX2lzdHJpbmdzdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRVhBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnN0cih2b2lkKWNvbnN0IA0KKz9zdHJAPyRiYXNpY19pc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkU/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaXN0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnN0cihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/c3RyQD8kYmFzaWNfaXN0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUFFWEFCVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6c3RyKHZvaWQpY29uc3QgDQorP3N0ckA/JGJhc2ljX2lzdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6c3RyKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz9zdHJAPyRiYXNpY19vc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQUVYQUJWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpzdHIodm9pZCljb25zdCANCis/c3RyQD8kYmFzaWNfb3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJpbmdzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+OjpzdHIoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+IGNvbnN0ICYpDQorP3N0ckA/JGJhc2ljX29zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRVhBQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnN0cih2b2lkKWNvbnN0IA0KKz9zdHJAPyRiYXNpY19vc3RyaW5nc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQkU/QVY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6c3RyKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCAmKQ0KKz9zdHJAPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFBRVhBQlY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6c3RyKHZvaWQpY29uc3QgDQorP3N0ckA/JGJhc2ljX3N0cmluZ2J1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUJFP0FWPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEAyQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnN0cihjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gY29uc3QgJikNCis/c3RyQD8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBRQUVYQUJWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnN0cih2b2lkKWNvbnN0IA0KKz9zdHJAPyRiYXNpY19zdHJpbmdidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpzdHIoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+IGNvbnN0ICYpDQorP3N0ckA/JGJhc2ljX3N0cmluZ3N0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFWEFCVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpzdHIodm9pZCljb25zdCANCis/c3RyQD8kYmFzaWNfc3RyaW5nc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAc3RkQEBRQkU/QVY/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQDJAWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6c3RyKGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPiBjb25zdCAmKQ0KKz9zdHJAPyRiYXNpY19zdHJpbmdzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRVhBQlY/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQDJAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6c3RyKHZvaWQpY29uc3QgDQorP3N0ckA/JGJhc2ljX3N0cmluZ3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFP0FWPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEAyQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnN1YnN0cih1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9zdWJzdHJAPyRiYXNpY19zdHJpbmdARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQFFCRT9BVjEyQElJQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PixjbGFzcyBzdGQ6OmFsbG9jYXRvcjx1bnNpZ25lZCBzaG9ydD4gPjo6c3Vic3RyKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP3N1YnN0ckA/JGJhc2ljX3N0cmluZ0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQFY/JGFsbG9jYXRvckBHQDJAQHN0ZEBAUUJFP0FWMTJASUlAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnN1bmdldGModm9pZCkNCis/c3VuZ2V0Y0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzdW5nZXRjKHZvaWQpDQorP3N1bmdldGNAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVHWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6c3dhcChjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4gJikNCis/c3dhcEA/JGJhc2ljX3N0cmluZ0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQFY/JGFsbG9jYXRvckBEQDJAQHN0ZEBAUUFFWEFBVjEyQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID46OnN3YXAoY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICYpDQorP3N3YXBAPyRiYXNpY19zdHJpbmdAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBWPyRhbGxvY2F0b3JAR0AyQEBzdGRAQFFBRVhBQVYxMkBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnN5bmModm9pZCkNCis/c3luY0A/JGJhc2ljX2ZpbGVidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNQUVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnN5bmModm9pZCkNCis/c3luY0A/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBNQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6c3luYyh2b2lkKQ0KKz9zeW5jQD8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnN5bmModm9pZCkNCis/c3luY0A/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQUVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnN5bmModm9pZCkNCis/c3luY0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+OjpzeW5jKHZvaWQpDQorP3N5bmNAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBNQUVIWFoNCis7IHB1YmxpYzogc3RhdGljIGJvb2wgX19jZGVjbCBzdGQ6Omlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oYm9vbCkNCis/c3luY193aXRoX3N0ZGlvQGlvc19iYXNlQHN0ZEBAU0FfTl9OQFoNCis7IHByb3RlY3RlZDogc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8Y2hhcj46OnRhYmxlKHZvaWQpY29uc3QgDQorP3RhYmxlQD8kY3R5cGVAREBzdGRAQElCRVBCRlhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBpbnQgY29uc3QgIHN0ZDo6Y3R5cGU8Y2hhcj46OnRhYmxlX3NpemUNCis/dGFibGVfc2l6ZUA/JGN0eXBlQERAc3RkQEAySUINCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpmcG9zPGludD4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6dGVsbGcodm9pZCkNCis/dGVsbGdAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFP0FWPyRmcG9zQEhAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnRlbGxnKHZvaWQpDQorP3RlbGxnQD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRT9BVj8kZnBvc0BIQDJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpmcG9zPGludD4gIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6dGVsbHAodm9pZCkNCis/dGVsbHBAPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFP0FWPyRmcG9zQEhAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmZwb3M8aW50PiAgX190aGlzY2FsbCBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnRlbGxwKHZvaWQpDQorP3RlbGxwQD8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRT9BVj8kZnBvc0BIQDJAWFoNCis7IHB1YmxpYzogY2hhciBfX3RoaXNjYWxsIHN0ZDo6X01wdW5jdDxjaGFyPjo6dGhvdXNhbmRzX3NlcCh2b2lkKWNvbnN0IA0KKz90aG91c2FuZHNfc2VwQD8kX01wdW5jdEBEQHN0ZEBAUUJFRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpfTXB1bmN0PHVuc2lnbmVkIHNob3J0Pjo6dGhvdXNhbmRzX3NlcCh2b2lkKWNvbnN0IA0KKz90aG91c2FuZHNfc2VwQD8kX01wdW5jdEBHQHN0ZEBAUUJFR1haDQorOyBwdWJsaWM6IGNoYXIgX190aGlzY2FsbCBzdGQ6Om51bXB1bmN0PGNoYXI+Ojp0aG91c2FuZHNfc2VwKHZvaWQpY29uc3QgDQorP3Rob3VzYW5kc19zZXBAPyRudW1wdW5jdEBEQHN0ZEBAUUJFRFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD46OnRob3VzYW5kc19zZXAodm9pZCljb25zdCANCis/dGhvdXNhbmRzX3NlcEA/JG51bXB1bmN0QEdAc3RkQEBRQkVHWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp0aWUoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAqKQ0KKz90aWVAPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQUVQQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBQQVYzMkBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICogX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnRpZSh2b2lkKWNvbnN0IA0KKz90aWVAPyRiYXNpY19pb3NARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBRQkVQQVY/JGJhc2ljX29zdHJlYW1ARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gKiBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfaW9zPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp0aWUoY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICopDQorP3RpZUA/JGJhc2ljX2lvc0BHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRVBBVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAyQFBBVjMyQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAqIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnRpZSh2b2lkKWNvbnN0IA0KKz90aWVAPyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQkVQQVY/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMkBYWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj46OnRvX2NoYXJfdHlwZShpbnQgY29uc3QgJikNCis/dG9fY2hhcl90eXBlQD8kY2hhcl90cmFpdHNAREBzdGRAQFNBREFCSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+Ojp0b19jaGFyX3R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgJikNCis/dG9fY2hhcl90eXBlQD8kY2hhcl90cmFpdHNAR0BzdGRAQFNBR0FCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19jZGVjbCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+Ojp0b19pbnRfdHlwZShjaGFyIGNvbnN0ICYpDQorP3RvX2ludF90eXBlQD8kY2hhcl90cmFpdHNAREBzdGRAQFNBSEFCREBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+Ojp0b19pbnRfdHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAmKQ0KKz90b19pbnRfdHlwZUA/JGNoYXJfdHJhaXRzQEdAc3RkQEBTQUdBQkdAWg0KKzsgcHVibGljOiBjaGFyIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTxjaGFyPjo6dG9sb3dlcihjaGFyKWNvbnN0IA0KKz90b2xvd2VyQD8kY3R5cGVAREBzdGRAQFFCRUREQFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTxjaGFyPjo6dG9sb3dlcihjaGFyICosY2hhciBjb25zdCAqKWNvbnN0IA0KKz90b2xvd2VyQD8kY3R5cGVAREBzdGRAQFFCRVBCRFBBRFBCREBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OnRvbG93ZXIodW5zaWduZWQgc2hvcnQpY29uc3QgDQorP3RvbG93ZXJAPyRjdHlwZUBHQHN0ZEBAUUJFR0dAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgc3RkOjpjdHlwZTx1bnNpZ25lZCBzaG9ydD46OnRvbG93ZXIodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz90b2xvd2VyQD8kY3R5cGVAR0BzdGRAQFFCRVBCR1BBR1BCR0BaDQorOyBwdWJsaWM6IGNoYXIgX190aGlzY2FsbCBzdGQ6OmN0eXBlPGNoYXI+Ojp0b3VwcGVyKGNoYXIpY29uc3QgDQorP3RvdXBwZXJAPyRjdHlwZUBEQHN0ZEBAUUJFRERAWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmN0eXBlPGNoYXI+Ojp0b3VwcGVyKGNoYXIgKixjaGFyIGNvbnN0ICopY29uc3QgDQorP3RvdXBwZXJAPyRjdHlwZUBEQHN0ZEBAUUJFUEJEUEFEUEJEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6dG91cHBlcih1bnNpZ25lZCBzaG9ydCljb25zdCANCis/dG91cHBlckA/JGN0eXBlQEdAc3RkQEBRQkVHR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6dG91cHBlcih1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP3RvdXBwZXJAPyRjdHlwZUBHQHN0ZEBAUUJFUEJHUEFHUEJHQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTxjaGFyPjo6dHJhbnNmb3JtKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICopY29uc3QgDQorP3RyYW5zZm9ybUA/JGNvbGxhdGVAREBzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBQQkQwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+ICBfX3RoaXNjYWxsIHN0ZDo6Y29sbGF0ZTx1bnNpZ25lZCBzaG9ydD46OnRyYW5zZm9ybSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP3RyYW5zZm9ybUA/JGNvbGxhdGVAR0BzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBQQkcwQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPixjbGFzcyBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ICBfX3RoaXNjYWxsIHN0ZDo6bnVtcHVuY3Q8Y2hhcj46OnRydWVuYW1lKHZvaWQpY29uc3QgDQorP3RydWVuYW1lQD8kbnVtcHVuY3RAREBzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAVj8kYWxsb2NhdG9yQERAMkBAMkBYWg0KKzsgcHVibGljOiBjbGFzcyBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4sY2xhc3Mgc3RkOjphbGxvY2F0b3I8dW5zaWduZWQgc2hvcnQ+ID4gIF9fdGhpc2NhbGwgc3RkOjpudW1wdW5jdDx1bnNpZ25lZCBzaG9ydD46OnRydWVuYW1lKHZvaWQpY29uc3QgDQorP3RydWVuYW1lQD8kbnVtcHVuY3RAR0BzdGRAQFFCRT9BVj8kYmFzaWNfc3RyaW5nQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAMkBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfZmlsZWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnVmbG93KHZvaWQpDQorP3VmbG93QD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp1Zmxvdyh2b2lkKQ0KKz91Zmxvd0A/JGJhc2ljX2ZpbGVidWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBNQUVHWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnVmbG93KHZvaWQpDQorP3VmbG93QD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBATUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1Zjx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6dWZsb3codm9pZCkNCis/dWZsb3dAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBNQUVHWFoNCis7IGJvb2wgX19jZGVjbCBzdGQ6OnVuY2F1Z2h0X2V4Y2VwdGlvbih2b2lkKQ0KKz91bmNhdWdodF9leGNlcHRpb25Ac3RkQEBZQV9OWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2ZpbGVidWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp1bmRlcmZsb3codm9pZCkNCis/dW5kZXJmbG93QD8kYmFzaWNfZmlsZWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19maWxlYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp1bmRlcmZsb3codm9pZCkNCis/dW5kZXJmbG93QD8kYmFzaWNfZmlsZWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1BRUdYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6dW5kZXJmbG93KHZvaWQpDQorP3VuZGVyZmxvd0A/JGJhc2ljX3N0cmVhbWJ1ZkBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnVuZGVyZmxvdyh2b2lkKQ0KKz91bmRlcmZsb3dAPyRiYXNpY19zdHJlYW1idWZAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBNQUVHWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmluZ2J1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46OnVuZGVyZmxvdyh2b2lkKQ0KKz91bmRlcmZsb3dAPyRiYXNpY19zdHJpbmdidWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBWPyRhbGxvY2F0b3JAREAyQEBzdGRAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJpbmdidWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+LGNsYXNzIHN0ZDo6YWxsb2NhdG9yPHVuc2lnbmVkIHNob3J0PiA+Ojp1bmRlcmZsb3codm9pZCkNCis/dW5kZXJmbG93QD8kYmFzaWNfc3RyaW5nYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAVj8kYWxsb2NhdG9yQEdAMkBAc3RkQEBNQUVHWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OnN0cnN0cmVhbWJ1Zjo6dW5kZXJmbG93KHZvaWQpDQorP3VuZGVyZmxvd0BzdHJzdHJlYW1idWZAc3RkQEBNQUVIWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6dW5nZXQodm9pZCkNCis/dW5nZXRAPyRiYXNpY19pc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnVuZ2V0KHZvaWQpDQorP3VuZ2V0QD8kYmFzaWNfaXN0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQFFBRUFBVjEyQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdGQ6Omlvc19iYXNlOjp1bnNldGYoaW50KQ0KKz91bnNldGZAaW9zX2Jhc2VAc3RkQEBRQUVYSEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIHN0ZDo6d2NlcnINCis/d2NlcnJAc3RkQEAzVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEEgREFUQQ0KKzsgY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBzdGQ6OndjaW4NCis/d2NpbkBzdGRAQDNWPyRiYXNpY19pc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQDFAQSBEQVRBDQorOyBjbGFzcyBzdGQ6OmJhc2ljX29zdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gIHN0ZDo6d2Nsb2cNCis/d2Nsb2dAc3RkQEAzVj8kYmFzaWNfb3N0cmVhbUBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEAxQEEgREFUQQ0KKzsgY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICBzdGQ6Ondjb3V0DQorP3djb3V0QHN0ZEBAM1Y/JGJhc2ljX29zdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBBIERBVEENCis7IHB1YmxpYzogdmlydHVhbCBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmxvZ2ljX2Vycm9yOjp3aGF0KHZvaWQpY29uc3QgDQorP3doYXRAbG9naWNfZXJyb3JAc3RkQEBVQkVQQkRYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6cnVudGltZV9lcnJvcjo6d2hhdCh2b2lkKWNvbnN0IA0KKz93aGF0QHJ1bnRpbWVfZXJyb3JAc3RkQEBVQkVQQkRYWg0KKzsgcHVibGljOiBjaGFyIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19pb3M8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp3aWRlbihjaGFyKWNvbnN0IA0KKz93aWRlbkA/JGJhc2ljX2lvc0BEVT8kY2hhcl90cmFpdHNAREBzdGRAQEBzdGRAQFFCRUREQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX2lvczx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPjo6d2lkZW4oY2hhciljb25zdCANCis/d2lkZW5APyRiYXNpY19pb3NAR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAc3RkQEBRQkVHREBaDQorOyBwdWJsaWM6IGNoYXIgX190aGlzY2FsbCBzdGQ6OmN0eXBlPGNoYXI+Ojp3aWRlbihjaGFyKWNvbnN0IA0KKz93aWRlbkA/JGN0eXBlQERAc3RkQEBRQkVEREBaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIHN0ZDo6Y3R5cGU8Y2hhcj46OndpZGVuKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICosY2hhciAqKWNvbnN0IA0KKz93aWRlbkA/JGN0eXBlQERAc3RkQEBRQkVQQkRQQkQwUEFEQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6d2lkZW4oY2hhciljb25zdCANCis/d2lkZW5APyRjdHlwZUBHQHN0ZEBAUUJFR0RAWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBzdGQ6OmN0eXBlPHVuc2lnbmVkIHNob3J0Pjo6d2lkZW4oY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKix1bnNpZ25lZCBzaG9ydCAqKWNvbnN0IA0KKz93aWRlbkA/JGN0eXBlQEdAc3RkQEBRQkVQQkRQQkQwUEFHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6d2lkdGgoaW50KQ0KKz93aWR0aEBpb3NfYmFzZUBzdGRAQFFBRUhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RkOjppb3NfYmFzZTo6d2lkdGgodm9pZCljb25zdCANCis/d2lkdGhAaW9zX2Jhc2VAc3RkQEBRQkVIWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPGNoYXIsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPjo6d3JpdGUoY2hhciBjb25zdCAqLGludCkNCis/d3JpdGVAPyRiYXNpY19vc3RyZWFtQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAUEJESEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZDo6YmFzaWNfb3N0cmVhbTx1bnNpZ25lZCBzaG9ydCxzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD4gPiAmIF9fdGhpc2NhbGwgc3RkOjpiYXNpY19vc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp3cml0ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/d3JpdGVAPyRiYXNpY19vc3RyZWFtQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBAUUFFQUFWMTJAUEJHSEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICYgX19jZGVjbCBzdGQ6OndzKGNsYXNzIHN0ZDo6YmFzaWNfaXN0cmVhbTxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gJikNCis/d3NAc3RkQEBZQUFBVj8kYmFzaWNfaXN0cmVhbUBEVT8kY2hhcl90cmFpdHNAREBzdGRAQEAxQEFBVjIxQEBaDQorOyBjbGFzcyBzdGQ6OmJhc2ljX2lzdHJlYW08dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID4gJiBfX2NkZWNsIHN0ZDo6d3MoY2xhc3Mgc3RkOjpiYXNpY19pc3RyZWFtPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+ICYpDQorP3dzQHN0ZEBAWUFBQVY/JGJhc2ljX2lzdHJlYW1AR1U/JGNoYXJfdHJhaXRzQEdAc3RkQEBAMUBBQVYyMUBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgc3RkOjppb3NfYmFzZTo6eGFsbG9jKHZvaWQpDQorP3hhbGxvY0Bpb3NfYmFzZUBzdGRAQFNBSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhcixzdHJ1Y3Qgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+Ojp4c2dldG4oY2hhciAqLGludCkNCis/eHNnZXRuQD8kYmFzaWNfc3RyZWFtYnVmQERVPyRjaGFyX3RyYWl0c0BEQHN0ZEBAQHN0ZEBATUFFSFBBREhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZDo6YmFzaWNfc3RyZWFtYnVmPHVuc2lnbmVkIHNob3J0LHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PiA+Ojp4c2dldG4odW5zaWduZWQgc2hvcnQgKixpbnQpDQorP3hzZ2V0bkA/JGJhc2ljX3N0cmVhbWJ1ZkBHVT8kY2hhcl90cmFpdHNAR0BzdGRAQEBzdGRAQE1BRUhQQUdIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyLHN0cnVjdCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46OnhzcHV0bihjaGFyIGNvbnN0ICosaW50KQ0KKz94c3B1dG5APyRiYXNpY19zdHJlYW1idWZARFU/JGNoYXJfdHJhaXRzQERAc3RkQEBAc3RkQEBNQUVIUEJESEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkOjpiYXNpY19zdHJlYW1idWY8dW5zaWduZWQgc2hvcnQsc3RydWN0IHN0ZDo6Y2hhcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+ID46OnhzcHV0bih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/eHNwdXRuQD8kYmFzaWNfc3RyZWFtYnVmQEdVPyRjaGFyX3RyYWl0c0BHQHN0ZEBAQHN0ZEBATUFFSFBCR0hAWg0KK19Db3NoDQorX0Rlbm9ybQ0KK19Ebm9ybQ0KK19Ec2NhbGUNCitfRHRlc3QNCitfRXBzDQorX0V4cA0KK19GQ29zaA0KK19GRGVub3JtDQorX0ZEbm9ybQ0KK19GRHNjYWxlDQorX0ZEdGVzdA0KK19GRXBzDQorX0ZFeHANCitfRkluZg0KK19GTmFuDQorX0ZSdGVwcw0KK19GU2luaA0KK19GU25hbg0KK19GWGJpZw0KK19HZXRjb2xsDQorX0dldGN0eXBlDQorX0dldGN2dA0KK19IdWdldmFsDQorX0luZg0KK19MQ29zaA0KK19MRGVub3JtDQorX0xEc2NhbGUNCitfTER0ZXN0DQorX0xFcHMNCitfTEV4cA0KK19MSW5mDQorX0xOYW4NCitfTFBvbHkNCitfTFJ0ZXBzDQorX0xTaW5oDQorX0xTbmFuDQorX0xYYmlnDQorX01icnRvd2MNCitfTmFuDQorX1BvbHkNCitfUnRlcHMNCitfU2luaA0KK19TbmFuDQorX1N0b2QNCitfU3RvZg0KK19TdG9sZA0KK19TdHJjb2xsDQorX1N0cnhmcm0NCitfVG9sb3dlcg0KK19Ub3VwcGVyDQorX1djcnRvbWINCitfV2NzY29sbA0KK19XY3N4ZnJtDQorX1hiaWcNCitfX1djcnRvbWJfbGsNCitidG93Yw0KK21icmxlbg0KK21icnRvd2MNCittYnNydG93Y3MNCit0b3djdHJhbnMNCit3Y3J0b21iDQord2NzcnRvbWJzDQord2N0b2INCit3Y3RyYW5zDQord2N0eXBlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zdmNydC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXN2Y3J0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ZDkyNzlmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zdmNydC5kZWYKQEAgLTAsMCArMSw5MDUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXN2Y3J0LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc3ZjcnQuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX3RoaXNjYWxsIF9fbm9uX3J0dGlfb2JqZWN0OjpfX25vbl9ydHRpX29iamVjdChjbGFzcyBfX25vbl9ydHRpX29iamVjdCBjb25zdCAmKQ0KKz8/MF9fbm9uX3J0dGlfb2JqZWN0QEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIF9fbm9uX3J0dGlfb2JqZWN0OjpfX25vbl9ydHRpX29iamVjdChjaGFyIGNvbnN0ICopDQorPz8wX19ub25fcnR0aV9vYmplY3RAQFFBRUBQQkRAWg0KKzsgcHJpdmF0ZTogX190aGlzY2FsbCBiYWRfY2FzdDo6YmFkX2Nhc3QoY2hhciBjb25zdCAqIGNvbnN0ICopDQorPz8wYmFkX2Nhc3RAQEFBRUBQQlFCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgYmFkX2Nhc3Q6OmJhZF9jYXN0KGNoYXIgY29uc3QgKiBjb25zdCAmKQ0KKz8/MGJhZF9jYXN0QEBRQUVAQUJRQkRAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGJhZF9jYXN0OjpiYWRfY2FzdChjbGFzcyBiYWRfY2FzdCBjb25zdCAmKQ0KKz8/MGJhZF9jYXN0QEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGJhZF9jYXN0OjpiYWRfY2FzdChjaGFyIGNvbnN0ICopDQorPz8wYmFkX2Nhc3RAQFFBRUBQQkRAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGJhZF90eXBlaWQ6OmJhZF90eXBlaWQoY2xhc3MgYmFkX3R5cGVpZCBjb25zdCAmKQ0KKz8/MGJhZF90eXBlaWRAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgYmFkX3R5cGVpZDo6YmFkX3R5cGVpZChjaGFyIGNvbnN0ICopDQorPz8wYmFkX3R5cGVpZEBAUUFFQFBCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgZXhjZXB0aW9uOjpleGNlcHRpb24oY2hhciBjb25zdCAqIGNvbnN0ICYpDQorPz8wZXhjZXB0aW9uQEBRQUVAQUJRQkRAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGV4Y2VwdGlvbjo6ZXhjZXB0aW9uKGNoYXIgY29uc3QgKiBjb25zdCAmLGludCkNCis/PzBleGNlcHRpb25AQFFBRUBBQlFCREhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGV4Y2VwdGlvbjo6ZXhjZXB0aW9uKGNsYXNzIGV4Y2VwdGlvbiBjb25zdCAmKQ0KKz8/MGV4Y2VwdGlvbkBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBleGNlcHRpb246OmV4Y2VwdGlvbih2b2lkKQ0KKz8/MGV4Y2VwdGlvbkBAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBfX25vbl9ydHRpX29iamVjdDo6fl9fbm9uX3J0dGlfb2JqZWN0KHZvaWQpDQorPz8xX19ub25fcnR0aV9vYmplY3RAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgYmFkX2Nhc3Q6On5iYWRfY2FzdCh2b2lkKQ0KKz8/MWJhZF9jYXN0QEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIGJhZF90eXBlaWQ6On5iYWRfdHlwZWlkKHZvaWQpDQorPz8xYmFkX3R5cGVpZEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBleGNlcHRpb246On5leGNlcHRpb24odm9pZCkNCis/PzFleGNlcHRpb25AQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgdHlwZV9pbmZvOjp+dHlwZV9pbmZvKHZvaWQpDQorPz8xdHlwZV9pbmZvQEBVQUVAWFoNCis7IHZvaWQgKiBfX2NkZWNsIG9wZXJhdG9yIG5ldyh1bnNpZ25lZCBpbnQpDQorPz8yQFlBUEFYSUBaDQorOyB2b2lkIF9fY2RlY2wgb3BlcmF0b3IgZGVsZXRlKHZvaWQgKikNCis/PzNAWUFYUEFYQFoNCis7IHB1YmxpYzogY2xhc3MgX19ub25fcnR0aV9vYmplY3QgJiBfX3RoaXNjYWxsIF9fbm9uX3J0dGlfb2JqZWN0OjpvcGVyYXRvcj0oY2xhc3MgX19ub25fcnR0aV9vYmplY3QgY29uc3QgJikNCis/PzRfX25vbl9ydHRpX29iamVjdEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIGJhZF9jYXN0ICYgX190aGlzY2FsbCBiYWRfY2FzdDo6b3BlcmF0b3I9KGNsYXNzIGJhZF9jYXN0IGNvbnN0ICYpDQorPz80YmFkX2Nhc3RAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBiYWRfdHlwZWlkICYgX190aGlzY2FsbCBiYWRfdHlwZWlkOjpvcGVyYXRvcj0oY2xhc3MgYmFkX3R5cGVpZCBjb25zdCAmKQ0KKz8/NGJhZF90eXBlaWRAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBleGNlcHRpb24gJiBfX3RoaXNjYWxsIGV4Y2VwdGlvbjo6b3BlcmF0b3I9KGNsYXNzIGV4Y2VwdGlvbiBjb25zdCAmKQ0KKz8/NGV4Y2VwdGlvbkBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHR5cGVfaW5mbzo6b3BlcmF0b3I9PShjbGFzcyB0eXBlX2luZm8gY29uc3QgJiljb25zdCANCis/Pzh0eXBlX2luZm9AQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHR5cGVfaW5mbzo6b3BlcmF0b3IhPShjbGFzcyB0eXBlX2luZm8gY29uc3QgJiljb25zdCANCis/Pzl0eXBlX2luZm9AQFFCRUhBQlYwQEBaDQorOyBjb25zdCAgX19ub25fcnR0aV9vYmplY3Q6OmB2ZnRhYmxlJw0KKz8/XzdfX25vbl9ydHRpX29iamVjdEBANkJADQorOyBjb25zdCAgYmFkX2Nhc3Q6OmB2ZnRhYmxlJw0KKz8/XzdiYWRfY2FzdEBANkJADQorOyBjb25zdCAgYmFkX3R5cGVpZDo6YHZmdGFibGUnDQorPz9fN2JhZF90eXBlaWRAQDZCQA0KKzsgY29uc3QgIGV4Y2VwdGlvbjo6YHZmdGFibGUnDQorPz9fN2V4Y2VwdGlvbkBANkJADQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgX19ub25fcnR0aV9vYmplY3Q6OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0VfX25vbl9ydHRpX29iamVjdEBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgYmFkX2Nhc3Q6OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0ViYWRfY2FzdEBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgYmFkX3R5cGVpZDo6YHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fRWJhZF90eXBlaWRAQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGV4Y2VwdGlvbjo6YHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fRWV4Y2VwdGlvbkBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBiYWRfY2FzdDo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GYmFkX2Nhc3RAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgYmFkX3R5cGVpZDo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GYmFkX3R5cGVpZEBAUUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgX19ub25fcnR0aV9vYmplY3Q6OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dfX25vbl9ydHRpX29iamVjdEBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgYmFkX2Nhc3Q6OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0diYWRfY2FzdEBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgYmFkX3R5cGVpZDo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR2JhZF90eXBlaWRAQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGV4Y2VwdGlvbjo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR2V4Y2VwdGlvbkBAVUFFUEFYSUBaDQorOyB2b2lkICogX19jZGVjbCBvcGVyYXRvciBuZXdbXSh1bnNpZ25lZCBpbnQpDQorPz9fVUBZQVBBWElAWg0KKzsgdm9pZCBfX2NkZWNsIG9wZXJhdG9yIGRlbGV0ZVtdKHZvaWQgKikNCis/P19WQFlBWFBBWEBaDQorX191bmNhdWdodF9leGNlcHRpb24NCis7IGludCAoX19jZGVjbCpfX2NkZWNsIF9xdWVyeV9uZXdfaGFuZGxlcih2b2lkKSkodW5zaWduZWQgaW50KQ0KKz9fcXVlcnlfbmV3X2hhbmRsZXJAQFlBUDZBSElAWlhaDQorOyBpbnQgX19jZGVjbCBfcXVlcnlfbmV3X21vZGUodm9pZCkNCis/X3F1ZXJ5X25ld19tb2RlQEBZQUhYWg0KKzsgaW50IChfX2NkZWNsKl9fY2RlY2wgX3NldF9uZXdfaGFuZGxlcihpbnQgKF9fY2RlY2wqKSh1bnNpZ25lZCBpbnQpKSkodW5zaWduZWQgaW50KQ0KKz9fc2V0X25ld19oYW5kbGVyQEBZQVA2QUhJQFpQNkFISUBaQFoNCis7IGludCBfX2NkZWNsIF9zZXRfbmV3X21vZGUoaW50KQ0KKz9fc2V0X25ld19tb2RlQEBZQUhIQFoNCis7IHZvaWQgKF9fY2RlY2wqX19jZGVjbCBfc2V0X3NlX3RyYW5zbGF0b3Iodm9pZCAoX19jZGVjbCopKHVuc2lnbmVkIGludCxzdHJ1Y3QgX0VYQ0VQVElPTl9QT0lOVEVSUyAqKSkpKHVuc2lnbmVkIGludCxzdHJ1Y3QgX0VYQ0VQVElPTl9QT0lOVEVSUyAqKQ0KKz9fc2V0X3NlX3RyYW5zbGF0b3JAQFlBUDZBWElQQVVfRVhDRVBUSU9OX1BPSU5URVJTQEBAWlA2QVhJMEBaQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgdHlwZV9pbmZvOjpiZWZvcmUoY2xhc3MgdHlwZV9pbmZvIGNvbnN0ICYpY29uc3QgDQorP2JlZm9yZUB0eXBlX2luZm9AQFFCRUhBQlYxQEBaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIHR5cGVfaW5mbzo6bmFtZSh2b2lkKWNvbnN0IA0KKz9uYW1lQHR5cGVfaW5mb0BAUUJFUEJEWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgdHlwZV9pbmZvOjpyYXdfbmFtZSh2b2lkKWNvbnN0IA0KKz9yYXdfbmFtZUB0eXBlX2luZm9AQFFCRVBCRFhaDQorOyB2b2lkIChfX2NkZWNsKl9fY2RlY2wgc2V0X25ld19oYW5kbGVyKHZvaWQgKF9fY2RlY2wqKSh2b2lkKSkpKHZvaWQpDQorP3NldF9uZXdfaGFuZGxlckBAWUFQNkFYWFpQNkFYWFpAWg0KKzsgdm9pZCAoX19jZGVjbCpfX2NkZWNsIHNldF90ZXJtaW5hdGUodm9pZCAoX19jZGVjbCopKHZvaWQpKSkodm9pZCkNCis/c2V0X3Rlcm1pbmF0ZUBAWUFQNkFYWFpQNkFYWFpAWg0KKzsgdm9pZCAoX19jZGVjbCpfX2NkZWNsIHNldF91bmV4cGVjdGVkKHZvaWQgKF9fY2RlY2wqKSh2b2lkKSkpKHZvaWQpDQorP3NldF91bmV4cGVjdGVkQEBZQVA2QVhYWlA2QVhYWkBaDQorOyB2b2lkIF9fY2RlY2wgdGVybWluYXRlKHZvaWQpDQorP3Rlcm1pbmF0ZUBAWUFYWFoNCis7IHZvaWQgX19jZGVjbCB1bmV4cGVjdGVkKHZvaWQpDQorP3VuZXhwZWN0ZWRAQFlBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgZXhjZXB0aW9uOjp3aGF0KHZvaWQpY29uc3QgDQorP3doYXRAZXhjZXB0aW9uQEBVQkVQQkRYWg0KKyRJMTBfT1VUUFVUDQorX0NJYWNvcw0KK19DSWFzaW4NCitfQ0lhdGFuDQorX0NJYXRhbjINCitfQ0ljb3MNCitfQ0ljb3NoDQorX0NJZXhwDQorX0NJZm1vZA0KK19DSWxvZw0KK19DSWxvZzEwDQorX0NJcG93DQorX0NJc2luDQorX0NJc2luaA0KK19DSXNxcnQNCitfQ0l0YW4NCitfQ0l0YW5oDQorX0N4eFRocm93RXhjZXB0aW9uDQorX0VIX3Byb2xvZw0KK19HZXRkYXlzDQorX0dldG1vbnRocw0KK19HZXR0bmFtZXMNCitfSFVHRSBEQVRBDQorX1N0cmZ0aW1lDQorX1hjcHRGaWx0ZXINCitfX0NwcFhjcHRGaWx0ZXINCitfX0N4eENhbGxVbndpbmREdG9yDQorX19DeHhDYWxsVW53aW5kVmVjRHRvcg0KK19fQ3h4RGV0ZWN0UmV0aHJvdw0KK19fQ3h4RXhjZXB0aW9uRmlsdGVyDQorX19DeHhGcmFtZUhhbmRsZXINCitfX0N4eEZyYW1lSGFuZGxlcjINCitfX0N4eExvbmdqbXBVbndpbmQNCitfX0N4eFF1ZXJ5RXhjZXB0aW9uU2l6ZQ0KK19fQ3h4UmVnaXN0ZXJFeGNlcHRpb25PYmplY3QNCitfX0N4eFVucmVnaXN0ZXJFeGNlcHRpb25PYmplY3QNCitfX0Rlc3RydWN0RXhjZXB0aW9uT2JqZWN0DQorX19SVENhc3RUb1ZvaWQNCitfX1JURHluYW1pY0Nhc3QNCitfX1JUdHlwZWlkDQorX19TVFJJTkdUT0xEDQorX19fbGNfY29kZXBhZ2VfZnVuYw0KK19fX2xjX2NvbGxhdGVfY3BfZnVuYw0KK19fX2xjX2hhbmRsZV9mdW5jDQorX19fbWJfY3VyX21heF9mdW5jDQorX19fc2V0bGNfYWN0aXZlX2Z1bmMNCitfX191bmd1YXJkZWRfcmVhZGxjX2FjdGl2ZV9hZGRfZnVuYw0KK19fYXJnYyBEQVRBDQorX19hcmd2IERBVEENCitfX2JhZGlvaW5mbyBEQVRBDQorX19jcnRDb21wYXJlU3RyaW5nQQ0KK19fY3J0Q29tcGFyZVN0cmluZ1cNCitfX2NydEdldExvY2FsZUluZm9XDQorX19jcnRHZXRTdHJpbmdUeXBlVw0KK19fY3J0TENNYXBTdHJpbmdBDQorX19jcnRMQ01hcFN0cmluZ1cNCitfX2RsbG9uZXhpdA0KK19fZG9zZXJybm8NCitfX2ZwZWNvZGUNCitfX2dldG1haW5hcmdzDQorX19pbml0ZW52IERBVEENCitfX2lvYl9mdW5jDQorX19pc2FzY2lpDQorX19pc2NzeW0NCitfX2lzY3N5bWYNCitfX2xjX2NvZGVwYWdlIERBVEENCitfX2xjX2NvbGxhdGVfY3AgREFUQQ0KK19fbGNfaGFuZGxlIERBVEENCitfX2xjb252X2luaXQNCitfX21iX2N1cl9tYXggREFUQQ0KK19fcF9fX2FyZ2MNCitfX3BfX19hcmd2DQorX19wX19faW5pdGVudg0KK19fcF9fX21iX2N1cl9tYXgNCitfX3BfX193YXJndg0KK19fcF9fX3dpbml0ZW52DQorX19wX19hY21kbG4NCitfX3BfX2FtYmxrc2l6DQorX19wX19jb21tb2RlDQorX19wX19kYXlsaWdodA0KK19fcF9fZHN0Ymlhcw0KK19fcF9fZW52aXJvbg0KK19fcF9fZmlsZWluZm8NCitfX3BfX2Ztb2RlDQorX19wX19pb2INCitfX3BfX21iY2FzZW1hcA0KK19fcF9fbWJjdHlwZQ0KK19fcF9fb3N2ZXINCitfX3BfX3BjdHlwZQ0KK19fcF9fcGdtcHRyDQorX19wX19wd2N0eXBlDQorX19wX190aW1lem9uZQ0KK19fcF9fdHpuYW1lDQorX19wX193Y21kbG4NCitfX3BfX3dlbnZpcm9uDQorX19wX193aW5tYWpvcg0KK19fcF9fd2lubWlub3INCitfX3BfX3dpbnZlcg0KK19fcF9fd3BnbXB0cg0KK19fcGN0eXBlX2Z1bmMNCitfX3Bpb2luZm8gREFUQQ0KK19fcHdjdHlwZV9mdW5jDQorX19weGNwdGluZm9wdHJzDQorX19zZXRfYXBwX3R5cGUNCitfX3NldGxjX2FjdGl2ZSBEQVRBDQorX19zZXR1c2VybWF0aGVycg0KK19fdGhyZWFkaGFuZGxlDQorX190aHJlYWRpZA0KK19fdG9hc2NpaQ0KK19fdW5ETmFtZQ0KK19fdW5ETmFtZUV4DQorX191bmd1YXJkZWRfcmVhZGxjX2FjdGl2ZSBEQVRBDQorX193YXJndiBEQVRBDQorX193Y3NlcnJvcg0KK19fd2dldG1haW5hcmdzDQorX193aW5pdGVudiBEQVRBDQorX2Fibm9ybWFsX3Rlcm1pbmF0aW9uDQorX2FiczY0DQorX2FjY2Vzcw0KK19hY21kbG4gREFUQQ0KK19hZGpfZmRpdl9tMTZpDQorX2Fkal9mZGl2X20zMg0KK19hZGpfZmRpdl9tMzJpDQorX2Fkal9mZGl2X202NA0KK19hZGpfZmRpdl9yDQorX2Fkal9mZGl2cl9tMTZpDQorX2Fkal9mZGl2cl9tMzINCitfYWRqX2ZkaXZyX20zMmkNCitfYWRqX2ZkaXZyX202NA0KK19hZGpfZnBhdGFuDQorX2Fkal9mcHJlbQ0KK19hZGpfZnByZW0xDQorX2Fkal9mcHRhbg0KK19hZGp1c3RfZmRpdiBEQVRBDQorX2FleGl0X3J0biBEQVRBDQorX2FsaWduZWRfZnJlZQ0KK19hbGlnbmVkX21hbGxvYw0KK19hbGlnbmVkX29mZnNldF9tYWxsb2MNCitfYWxpZ25lZF9vZmZzZXRfcmVhbGxvYw0KK19hbGlnbmVkX3JlYWxsb2MNCitfYW1zZ19leGl0DQorX2Fzc2VydA0KK19hdG9kYmwNCitfYXRvaTY0DQorX2F0b2xkYmwNCitfYmVlcA0KK19iZWdpbnRocmVhZA0KK19iZWdpbnRocmVhZGV4DQorX2NfZXhpdA0KK19jYWJzDQorX2NhbGxuZXdoDQorX2NleGl0DQorX2NnZXRzDQorX2NnZXR3cw0KK19jaGRpcg0KK19jaGRyaXZlDQorX2NoZ3NpZ24NCitfY2hrZXNwDQorX2NobW9kDQorX2Noc2l6ZQ0KK19jbGVhcmZwDQorX2Nsb3NlDQorX2NvbW1pdA0KK19jb21tb2RlIERBVEENCitfY29udHJvbDg3DQorX2NvbnRyb2xmcA0KK19jb3B5c2lnbg0KK19jcHJpbnRmDQorX2NwdXRzDQorX2NwdXR3cw0KK19jcmVhdA0KK19jc2NhbmYNCitfY3RpbWU2NA0KK19jdHlwZQ0KK19jd2FpdA0KK19jd3ByaW50Zg0KK19jd3NjYW5mDQorX2RheWxpZ2h0IERBVEENCitfZHN0YmlhcyBEQVRBDQorX2R1cA0KK19kdXAyDQorX2VjdnQNCitfZW5kdGhyZWFkDQorX2VuZHRocmVhZGV4DQorX2Vudmlyb24gREFUQQ0KK19lb2YNCitfZXJybm8NCitfZXhjZXB0X2hhbmRsZXIyDQorX2V4Y2VwdF9oYW5kbGVyMw0KK19leGVjbA0KK19leGVjbGUNCitfZXhlY2xwDQorX2V4ZWNscGUNCitfZXhlY3YNCitfZXhlY3ZlDQorX2V4ZWN2cA0KK19leGVjdnBlDQorX2V4aXQNCitfZXhwYW5kDQorX2ZjbG9zZWFsbA0KK19mY3Z0DQorX2Zkb3Blbg0KK19mZ2V0Y2hhcg0KK19mZ2V0d2NoYXINCitfZmlsYnVmDQorX2ZpbGVpbmZvIERBVEENCitfZmlsZWxlbmd0aA0KK19maWxlbGVuZ3RoaTY0DQorX2ZpbGVubw0KK19maW5kY2xvc2UNCitfZmluZGZpcnN0DQorX2ZpbmRmaXJzdDY0DQorX2ZpbmRmaXJzdGk2NA0KK19maW5kbmV4dA0KK19maW5kbmV4dDY0DQorX2ZpbmRuZXh0aTY0DQorX2Zpbml0ZQ0KK19mbHNidWYNCitfZmx1c2hhbGwNCitfZm1vZGUgREFUQQ0KK19mcGNsYXNzDQorX2ZwaWVlZV9mbHQNCitfZnByZXNldA0KK19mcHV0Y2hhcg0KK19mcHV0d2NoYXINCitfZnNvcGVuDQorX2ZzdGF0DQorX2ZzdGF0NjQNCitfZnN0YXRpNjQNCitfZnRpbWUNCitfZnRpbWU2NA0KK19mdG9sDQorX2Z1bGxwYXRoDQorX2Z1dGltZQ0KK19mdXRpbWU2NA0KK19nY3Z0DQorX2dldF9oZWFwX2hhbmRsZQ0KK19nZXRfb3NmaGFuZGxlDQorX2dldF9zYmhfdGhyZXNob2xkDQorX2dldGNoDQorX2dldGNoZQ0KK19nZXRjd2QNCitfZ2V0ZGN3ZA0KK19nZXRkaXNrZnJlZQ0KK19nZXRkbGxwcm9jYWRkcg0KK19nZXRkcml2ZQ0KK19nZXRkcml2ZXMNCitfZ2V0bWF4c3RkaW8NCitfZ2V0bWJjcA0KK19nZXRwaWQNCitfZ2V0c3lzdGltZQ0KK19nZXR3DQorX2dldHdjaA0KK19nZXR3Y2hlDQorX2dldHdzDQorX2dsb2JhbF91bndpbmQyDQorX2dtdGltZTY0DQorX2hlYXBhZGQNCitfaGVhcGNoaw0KK19oZWFwbWluDQorX2hlYXBzZXQNCitfaGVhcHVzZWQNCitfaGVhcHdhbGsNCitfaHlwb3QNCitfaTY0dG9hDQorX2k2NHRvdw0KK19pbml0dGVybQ0KK19pbnANCitfaW5wZA0KK19pbnB3DQorX2lvYiBEQVRBDQorX2lzYXR0eQ0KK19pc2N0eXBlDQorX2lzbWJiYWxudW0NCitfaXNtYmJhbHBoYQ0KK19pc21iYmdyYXBoDQorX2lzbWJia2FsbnVtDQorX2lzbWJia2FuYQ0KK19pc21iYmtwcmludA0KK19pc21iYmtwdW5jdA0KK19pc21iYmxlYWQNCitfaXNtYmJwcmludA0KK19pc21iYnB1bmN0DQorX2lzbWJidHJhaWwNCitfaXNtYmNhbG51bQ0KK19pc21iY2FscGhhDQorX2lzbWJjZGlnaXQNCitfaXNtYmNncmFwaA0KK19pc21iY2hpcmENCitfaXNtYmNrYXRhDQorX2lzbWJjbDANCitfaXNtYmNsMQ0KK19pc21iY2wyDQorX2lzbWJjbGVnYWwNCitfaXNtYmNsb3dlcg0KK19pc21iY3ByaW50DQorX2lzbWJjcHVuY3QNCitfaXNtYmNzcGFjZQ0KK19pc21iY3N5bWJvbA0KK19pc21iY3VwcGVyDQorX2lzbWJzbGVhZA0KK19pc21ic3RyYWlsDQorX2lzbmFuDQorX2l0b2ENCitfaXRvdw0KK19qMA0KK19qMQ0KK19qbg0KK19rYmhpdA0KK19sZmluZA0KK19sb2FkZGxsDQorX2xvY2FsX3Vud2luZDINCitfbG9jYWx0aW1lNjQNCitfbG9jaw0KK19sb2NraW5nDQorX2xvZ2INCitfbG9uZ2ptcGV4DQorX2xyb3RsDQorX2xyb3RyDQorX2xzZWFyY2gNCitfbHNlZWsNCitfbHNlZWtpNjQNCitfbHRvYQ0KK19sdG93DQorX21ha2VwYXRoDQorX21iYnRvbWJjDQorX21iYnR5cGUNCitfbWJjYXNlbWFwIERBVEENCitfbWJjY3B5DQorX21iY2ppc3Rvam1zDQorX21iY2ptc3RvamlzDQorX21iY2xlbg0KK19tYmN0b2hpcmENCitfbWJjdG9rYXRhDQorX21iY3RvbG93ZXINCitfbWJjdG9tYmINCitfbWJjdG91cHBlcg0KK19tYmN0eXBlIERBVEENCitfbWJzYnR5cGUNCitfbWJzY2F0DQorX21ic2Nocg0KK19tYnNjbXANCitfbWJzY29sbA0KK19tYnNjcHkNCitfbWJzY3Nwbg0KK19tYnNkZWMNCitfbWJzZHVwDQorX21ic2ljbXANCitfbWJzaWNvbGwNCitfbWJzaW5jDQorX21ic2xlbg0KK19tYnNsd3INCitfbWJzbmJjYXQNCitfbWJzbmJjbXANCitfbWJzbmJjbnQNCitfbWJzbmJjb2xsDQorX21ic25iY3B5DQorX21ic25iaWNtcA0KK19tYnNuYmljb2xsDQorX21ic25ic2V0DQorX21ic25jYXQNCitfbWJzbmNjbnQNCitfbWJzbmNtcA0KK19tYnNuY29sbA0KK19tYnNuY3B5DQorX21ic25leHRjDQorX21ic25pY21wDQorX21ic25pY29sbA0KK19tYnNuaW5jDQorX21ic25zZXQNCitfbWJzcGJyaw0KK19tYnNyY2hyDQorX21ic3Jldg0KK19tYnNzZXQNCitfbWJzc3BuDQorX21ic3NwbnANCitfbWJzc3RyDQorX21ic3Rvaw0KK19tYnN0cmxlbg0KK19tYnN1cHINCitfbWVtY2NweQ0KK19tZW1pY21wDQorX21rZGlyDQorX21rZ210aW1lDQorX21rZ210aW1lNjQNCitfbWt0ZW1wDQorX21rdGltZTY0DQorX21zaXplDQorX25leHRhZnRlcg0KK19vbmV4aXQNCitfb3Blbg0KK19vcGVuX29zZmhhbmRsZQ0KK19vc3BsYXRmb3JtIERBVEENCitfb3N2ZXIgREFUQQ0KK19vdXRwDQorX291dHBkDQorX291dHB3DQorX3BjbG9zZQ0KK19wY3R5cGUgREFUQQ0KK19wZ21wdHIgREFUQQ0KK19waXBlDQorX3BvcGVuDQorX3B1cmVjYWxsDQorX3B1dGNoDQorX3B1dGVudg0KK19wdXR3DQorX3B1dHdjaA0KK19wdXR3cw0KK19wd2N0eXBlIERBVEENCitfcmVhZA0KK19yZXNldHN0a29mbHcNCitfcm1kaXINCitfcm10bXANCitfcm90bA0KK19yb3RsNjQNCitfcm90cg0KK19yb3RyNjQNCitfc2FmZV9mZGl2DQorX3NhZmVfZmRpdnINCitfc2FmZV9mcHJlbQ0KK19zYWZlX2ZwcmVtMQ0KK19zY2FsYg0KK19zY3ByaW50Zg0KK19zY3dwcmludGYNCitfc2VhcmNoZW52DQorX3NlaF9sb25nam1wX3Vud2luZA0KK19zZXRfU1NFMl9lbmFibGUNCitfc2V0X2Vycm9yX21vZGUNCitfc2V0X3NiaF90aHJlc2hvbGQNCitfc2V0ZXJyb3Jtb2RlDQorX3NldGptcA0KK19zZXRqbXAzDQorX3NldG1heHN0ZGlvDQorX3NldG1iY3ANCitfc2V0bW9kZQ0KK19zZXRzeXN0aW1lDQorX3NsZWVwDQorX3NucHJpbnRmDQorX3Nuc2NhbmYNCitfc253cHJpbnRmDQorX3Nud3NjYW5mDQorX3NvcGVuDQorX3NwYXdubA0KK19zcGF3bmxlDQorX3NwYXdubHANCitfc3Bhd25scGUNCitfc3Bhd252DQorX3NwYXdudmUNCitfc3Bhd252cA0KK19zcGF3bnZwZQ0KK19zcGxpdHBhdGgNCitfc3RhdA0KK19zdGF0NjQNCitfc3RhdGk2NA0KK19zdGF0dXNmcA0KK19zdHJjbXBpDQorX3N0cmRhdGUNCitfc3RyZHVwDQorX3N0cmVycm9yDQorX3N0cmljbXANCitfc3RyaWNvbGwNCitfc3RybHdyDQorX3N0cm5jb2xsDQorX3N0cm5pY21wDQorX3N0cm5pY29sbA0KK19zdHJuc2V0DQorX3N0cnJldg0KK19zdHJzZXQNCitfc3RydGltZQ0KK19zdHJ0b2k2NA0KK19zdHJ0b3VpNjQNCitfc3RydXByDQorX3N3YWINCitfc3lzX2Vycmxpc3QgREFUQQ0KK19zeXNfbmVyciBEQVRBDQorX3RlbGwNCitfdGVsbGk2NA0KK190ZW1wbmFtDQorX3RpbWU2NA0KK190aW1lem9uZSBEQVRBDQorX3RvbG93ZXINCitfdG91cHBlcg0KK190em5hbWUgREFUQQ0KK190enNldA0KK191aTY0dG9hDQorX3VpNjR0b3cNCitfdWx0b2ENCitfdWx0b3cNCitfdW1hc2sNCitfdW5nZXRjaA0KK191bmdldHdjaA0KK191bmxpbmsNCitfdW5sb2FkZGxsDQorX3VubG9jaw0KK191dGltZQ0KK191dGltZTY0DQorX3ZzY3ByaW50Zg0KK192c2N3cHJpbnRmDQorX3ZzbnByaW50Zg0KK192c253cHJpbnRmDQorX3dhY2Nlc3MNCitfd2FzY3RpbWUNCitfd2NoZGlyDQorX3djaG1vZA0KK193Y21kbG4gREFUQQ0KK193Y3JlYXQNCitfd2NzZHVwDQorX3djc2Vycm9yDQorX3djc2ljbXANCitfd2NzaWNvbGwNCitfd2NzbHdyDQorX3djc25jb2xsDQorX3djc25pY21wDQorX3djc25pY29sbA0KK193Y3Nuc2V0DQorX3djc3Jldg0KK193Y3NzZXQNCitfd2NzdG9pNjQNCitfd2NzdG91aTY0DQorX3djc3Vwcg0KK193Y3RpbWUNCitfd2N0aW1lNjQNCitfd2N0eXBlDQorX3dlbnZpcm9uIERBVEENCitfd2V4ZWNsDQorX3dleGVjbGUNCitfd2V4ZWNscA0KK193ZXhlY2xwZQ0KK193ZXhlY3YNCitfd2V4ZWN2ZQ0KK193ZXhlY3ZwDQorX3dleGVjdnBlDQorX3dmZG9wZW4NCitfd2ZpbmRmaXJzdA0KK193ZmluZGZpcnN0NjQNCitfd2ZpbmRmaXJzdGk2NA0KK193ZmluZG5leHQNCitfd2ZpbmRuZXh0NjQNCitfd2ZpbmRuZXh0aTY0DQorX3dmb3Blbg0KK193ZnJlb3Blbg0KK193ZnNvcGVuDQorX3dmdWxscGF0aA0KK193Z2V0Y3dkDQorX3dnZXRkY3dkDQorX3dnZXRlbnYNCitfd2lubWFqb3IgREFUQQ0KK193aW5taW5vciBEQVRBDQorX3dpbnZlciBEQVRBDQorX3dtYWtlcGF0aA0KK193bWtkaXINCitfd21rdGVtcA0KK193b3Blbg0KK193cGVycm9yDQorX3dwZ21wdHIgREFUQQ0KK193cG9wZW4NCitfd3B1dGVudg0KK193cmVtb3ZlDQorX3dyZW5hbWUNCitfd3JpdGUNCitfd3JtZGlyDQorX3dzZWFyY2hlbnYNCitfd3NldGxvY2FsZQ0KK193c29wZW4NCitfd3NwYXdubA0KK193c3Bhd25sZQ0KK193c3Bhd25scA0KK193c3Bhd25scGUNCitfd3NwYXdudg0KK193c3Bhd252ZQ0KK193c3Bhd252cA0KK193c3Bhd252cGUNCitfd3NwbGl0cGF0aA0KK193c3RhdA0KK193c3RhdDY0DQorX3dzdGF0aTY0DQorX3dzdHJkYXRlDQorX3dzdHJ0aW1lDQorX3dzeXN0ZW0NCitfd3RlbXBuYW0NCitfd3RtcG5hbQ0KK193dG9mDQorX3d0b2kNCitfd3RvaTY0DQorX3d0b2wNCitfd3VubGluaw0KK193dXRpbWUNCitfd3V0aW1lNjQNCitfeTANCitfeTENCitfeW4NCithYm9ydA0KK2Ficw0KK2Fjb3MNCithc2N0aW1lDQorYXNpbg0KK2F0YW4NCithdGFuMg0KK2F0ZXhpdA0KK2F0b2YNCithdG9pDQorYXRvbA0KK2JzZWFyY2gNCitjYWxsb2MNCitjZWlsDQorY2xlYXJlcnINCitjbG9jaw0KK2Nvcw0KK2Nvc2gNCitjdGltZQ0KK2RpZmZ0aW1lDQorZGl2DQorZXhpdA0KK2V4cA0KK2ZhYnMNCitmY2xvc2UNCitmZW9mDQorZmVycm9yDQorZmZsdXNoDQorZmdldGMNCitmZ2V0cG9zDQorZmdldHMNCitmZ2V0d2MNCitmZ2V0d3MNCitmbG9vcg0KK2Ztb2QNCitmb3Blbg0KK2ZwcmludGYNCitmcHV0Yw0KK2ZwdXRzDQorZnB1dHdjDQorZnB1dHdzDQorZnJlYWQNCitmcmVlDQorZnJlb3Blbg0KK2ZyZXhwDQorZnNjYW5mDQorZnNlZWsNCitmc2V0cG9zDQorZnRlbGwNCitmd3ByaW50Zg0KK2Z3cml0ZQ0KK2Z3c2NhbmYNCitnZXRjDQorZ2V0Y2hhcg0KK2dldGVudg0KK2dldHMNCitnZXR3Yw0KK2dldHdjaGFyDQorZ210aW1lDQoraXNfd2N0eXBlDQoraXNhbG51bQ0KK2lzYWxwaGENCitpc2NudHJsDQoraXNkaWdpdA0KK2lzZ3JhcGgNCitpc2xlYWRieXRlDQoraXNsb3dlcg0KK2lzcHJpbnQNCitpc3B1bmN0DQoraXNzcGFjZQ0KK2lzdXBwZXINCitpc3dhbG51bQ0KK2lzd2FscGhhDQoraXN3YXNjaWkNCitpc3djbnRybA0KK2lzd2N0eXBlDQoraXN3ZGlnaXQNCitpc3dncmFwaA0KK2lzd2xvd2VyDQoraXN3cHJpbnQNCitpc3dwdW5jdA0KK2lzd3NwYWNlDQoraXN3dXBwZXINCitpc3d4ZGlnaXQNCitpc3hkaWdpdA0KK2xhYnMNCitsZGV4cA0KK2xkaXYNCitsb2NhbGVjb252DQorbG9jYWx0aW1lDQorbG9nDQorbG9nMTANCitsb25nam1wDQorbWFsbG9jDQorbWJsZW4NCittYnN0b3djcw0KK21idG93Yw0KK21lbWNocg0KK21lbWNtcA0KK21lbWNweQ0KK21lbW1vdmUNCittZW1zZXQNCitta3RpbWUNCittb2RmDQorcGVycm9yDQorcG93DQorcHJpbnRmDQorcHV0Yw0KK3B1dGNoYXINCitwdXRzDQorcHV0d2MNCitwdXR3Y2hhcg0KK3Fzb3J0DQorcmFpc2UNCityYW5kDQorcmVhbGxvYw0KK3JlbW92ZQ0KK3JlbmFtZQ0KK3Jld2luZA0KK3NjYW5mDQorc2V0YnVmDQorc2V0bG9jYWxlDQorc2V0dmJ1Zg0KK3NpZ25hbA0KK3Npbg0KK3NpbmgNCitzcHJpbnRmDQorc3FydA0KK3NyYW5kDQorc3NjYW5mDQorc3RyY2F0DQorc3RyY2hyDQorc3RyY21wDQorc3RyY29sbA0KK3N0cmNweQ0KK3N0cmNzcG4NCitzdHJlcnJvcg0KK3N0cmZ0aW1lDQorc3RybGVuDQorc3RybmNhdA0KK3N0cm5jbXANCitzdHJuY3B5DQorc3RycGJyaw0KK3N0cnJjaHINCitzdHJzcG4NCitzdHJzdHINCitzdHJ0b2QNCitzdHJ0b2sNCitzdHJ0b2wNCitzdHJ0b3VsDQorc3RyeGZybQ0KK3N3cHJpbnRmDQorc3dzY2FuZg0KK3N5c3RlbQ0KK3Rhbg0KK3RhbmgNCit0aW1lDQordG1wZmlsZQ0KK3RtcG5hbQ0KK3RvbG93ZXINCit0b3VwcGVyDQordG93bG93ZXINCit0b3d1cHBlcg0KK3VuZ2V0Yw0KK3VuZ2V0d2MNCit2ZnByaW50Zg0KK3Zmd3ByaW50Zg0KK3ZwcmludGYNCit2c3ByaW50Zg0KK3Zzd3ByaW50Zg0KK3Z3cHJpbnRmDQord2NzY2F0DQord2NzY2hyDQord2NzY21wDQord2NzY29sbA0KK3djc2NweQ0KK3djc2NzcG4NCit3Y3NmdGltZQ0KK3djc2xlbg0KK3djc25jYXQNCit3Y3NuY21wDQord2NzbmNweQ0KK3djc3BicmsNCit3Y3NyY2hyDQord2Nzc3BuDQord2Nzc3RyDQord2NzdG9kDQord2NzdG9rDQord2NzdG9sDQord2NzdG9tYnMNCit3Y3N0b3VsDQord2NzeGZybQ0KK3djdG9tYg0KK3dwcmludGYNCit3c2NhbmYNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXN2Y3J0MjAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zdmNydDIwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZmYzOTBiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zdmNydDIwLmRlZgpAQCAtMCwwICsxLDE1NzEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNWQ1JUMjAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TVkNSVDIwLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX190aGlzY2FsbCBJb3N0cmVhbV9pbml0OjpJb3N0cmVhbV9pbml0KGNsYXNzIGlvcyAmLGludCkNCis/PzBJb3N0cmVhbV9pbml0QEBRQUVAQUFWaW9zQEBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBJb3N0cmVhbV9pbml0OjpJb3N0cmVhbV9pbml0KHZvaWQpDQorPz8wSW9zdHJlYW1faW5pdEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgZmlsZWJ1Zjo6ZmlsZWJ1ZihjbGFzcyBmaWxlYnVmIGNvbnN0ICYpDQorPz8wZmlsZWJ1ZkBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBmaWxlYnVmOjpmaWxlYnVmKGludCkNCis/PzBmaWxlYnVmQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgZmlsZWJ1Zjo6ZmlsZWJ1ZihpbnQsY2hhciAqLGludCkNCis/PzBmaWxlYnVmQEBRQUVASFBBREhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGZpbGVidWY6OmZpbGVidWYodm9pZCkNCis/PzBmaWxlYnVmQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBmc3RyZWFtOjpmc3RyZWFtKGNsYXNzIGZzdHJlYW0gY29uc3QgJikNCis/PzBmc3RyZWFtQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGZzdHJlYW06OmZzdHJlYW0oaW50KQ0KKz8/MGZzdHJlYW1AQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBmc3RyZWFtOjpmc3RyZWFtKGludCxjaGFyICosaW50KQ0KKz8/MGZzdHJlYW1AQFFBRUBIUEFESEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgZnN0cmVhbTo6ZnN0cmVhbShjaGFyIGNvbnN0ICosaW50LGludCkNCis/PzBmc3RyZWFtQEBRQUVAUEJESEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGZzdHJlYW06OmZzdHJlYW0odm9pZCkNCis/PzBmc3RyZWFtQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBpZnN0cmVhbTo6aWZzdHJlYW0oY2xhc3MgaWZzdHJlYW0gY29uc3QgJikNCis/PzBpZnN0cmVhbUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBpZnN0cmVhbTo6aWZzdHJlYW0oaW50KQ0KKz8/MGlmc3RyZWFtQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaWZzdHJlYW06Omlmc3RyZWFtKGludCxjaGFyICosaW50KQ0KKz8/MGlmc3RyZWFtQEBRQUVASFBBREhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGlmc3RyZWFtOjppZnN0cmVhbShjaGFyIGNvbnN0ICosaW50LGludCkNCis/PzBpZnN0cmVhbUBAUUFFQFBCREhIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBpZnN0cmVhbTo6aWZzdHJlYW0odm9pZCkNCis/PzBpZnN0cmVhbUBAUUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgaW9zOjppb3MoY2xhc3MgaW9zIGNvbnN0ICYpDQorPz8waW9zQEBJQUVAQUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIGlvczo6aW9zKHZvaWQpDQorPz8waW9zQEBJQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBpb3M6OmlvcyhjbGFzcyBzdHJlYW1idWYgKikNCis/PzBpb3NAQFFBRUBQQVZzdHJlYW1idWZAQEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgaW9zdHJlYW06Omlvc3RyZWFtKGNsYXNzIGlvc3RyZWFtIGNvbnN0ICYpDQorPz8waW9zdHJlYW1AQElBRUBBQlYwQEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgaW9zdHJlYW06Omlvc3RyZWFtKHZvaWQpDQorPz8waW9zdHJlYW1AQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGlvc3RyZWFtOjppb3N0cmVhbShjbGFzcyBzdHJlYW1idWYgKikNCis/PzBpb3N0cmVhbUBAUUFFQFBBVnN0cmVhbWJ1ZkBAQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBpc3RyZWFtOjppc3RyZWFtKGNsYXNzIGlzdHJlYW0gY29uc3QgJikNCis/PzBpc3RyZWFtQEBJQUVAQUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIGlzdHJlYW06OmlzdHJlYW0odm9pZCkNCis/PzBpc3RyZWFtQEBJQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBpc3RyZWFtOjppc3RyZWFtKGNsYXNzIHN0cmVhbWJ1ZiAqKQ0KKz8/MGlzdHJlYW1AQFFBRUBQQVZzdHJlYW1idWZAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaXN0cmVhbV93aXRoYXNzaWduOjppc3RyZWFtX3dpdGhhc3NpZ24oY2xhc3MgaXN0cmVhbV93aXRoYXNzaWduIGNvbnN0ICYpDQorPz8waXN0cmVhbV93aXRoYXNzaWduQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGlzdHJlYW1fd2l0aGFzc2lnbjo6aXN0cmVhbV93aXRoYXNzaWduKGNsYXNzIHN0cmVhbWJ1ZiAqKQ0KKz8/MGlzdHJlYW1fd2l0aGFzc2lnbkBAUUFFQFBBVnN0cmVhbWJ1ZkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBpc3RyZWFtX3dpdGhhc3NpZ246OmlzdHJlYW1fd2l0aGFzc2lnbih2b2lkKQ0KKz8/MGlzdHJlYW1fd2l0aGFzc2lnbkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaXN0cnN0cmVhbTo6aXN0cnN0cmVhbShjbGFzcyBpc3Ryc3RyZWFtIGNvbnN0ICYpDQorPz8waXN0cnN0cmVhbUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBpc3Ryc3RyZWFtOjppc3Ryc3RyZWFtKGNoYXIgKikNCis/PzBpc3Ryc3RyZWFtQEBRQUVAUEFEQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBpc3Ryc3RyZWFtOjppc3Ryc3RyZWFtKGNoYXIgKixpbnQpDQorPz8waXN0cnN0cmVhbUBAUUFFQFBBREhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIG9mc3RyZWFtOjpvZnN0cmVhbShjbGFzcyBvZnN0cmVhbSBjb25zdCAmKQ0KKz8/MG9mc3RyZWFtQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIG9mc3RyZWFtOjpvZnN0cmVhbShpbnQpDQorPz8wb2ZzdHJlYW1AQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBvZnN0cmVhbTo6b2ZzdHJlYW0oaW50LGNoYXIgKixpbnQpDQorPz8wb2ZzdHJlYW1AQFFBRUBIUEFESEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgb2ZzdHJlYW06Om9mc3RyZWFtKGNoYXIgY29uc3QgKixpbnQsaW50KQ0KKz8/MG9mc3RyZWFtQEBRQUVAUEJESEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIG9mc3RyZWFtOjpvZnN0cmVhbSh2b2lkKQ0KKz8/MG9mc3RyZWFtQEBRQUVAWFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBvc3RyZWFtOjpvc3RyZWFtKGNsYXNzIG9zdHJlYW0gY29uc3QgJikNCis/PzBvc3RyZWFtQEBJQUVAQUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIG9zdHJlYW06Om9zdHJlYW0odm9pZCkNCis/PzBvc3RyZWFtQEBJQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBvc3RyZWFtOjpvc3RyZWFtKGNsYXNzIHN0cmVhbWJ1ZiAqKQ0KKz8/MG9zdHJlYW1AQFFBRUBQQVZzdHJlYW1idWZAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgb3N0cmVhbV93aXRoYXNzaWduOjpvc3RyZWFtX3dpdGhhc3NpZ24oY2xhc3Mgb3N0cmVhbV93aXRoYXNzaWduIGNvbnN0ICYpDQorPz8wb3N0cmVhbV93aXRoYXNzaWduQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIG9zdHJlYW1fd2l0aGFzc2lnbjo6b3N0cmVhbV93aXRoYXNzaWduKGNsYXNzIHN0cmVhbWJ1ZiAqKQ0KKz8/MG9zdHJlYW1fd2l0aGFzc2lnbkBAUUFFQFBBVnN0cmVhbWJ1ZkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBvc3RyZWFtX3dpdGhhc3NpZ246Om9zdHJlYW1fd2l0aGFzc2lnbih2b2lkKQ0KKz8/MG9zdHJlYW1fd2l0aGFzc2lnbkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgb3N0cnN0cmVhbTo6b3N0cnN0cmVhbShjbGFzcyBvc3Ryc3RyZWFtIGNvbnN0ICYpDQorPz8wb3N0cnN0cmVhbUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBvc3Ryc3RyZWFtOjpvc3Ryc3RyZWFtKGNoYXIgKixpbnQsaW50KQ0KKz8/MG9zdHJzdHJlYW1AQFFBRUBQQURISEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgb3N0cnN0cmVhbTo6b3N0cnN0cmVhbSh2b2lkKQ0KKz8/MG9zdHJzdHJlYW1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZGlvYnVmOjpzdGRpb2J1ZihjbGFzcyBzdGRpb2J1ZiBjb25zdCAmKQ0KKz8/MHN0ZGlvYnVmQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0ZGlvYnVmOjpzdGRpb2J1ZihzdHJ1Y3QgX2lvYnVmICopDQorPz8wc3RkaW9idWZAQFFBRUBQQVVfaW9idWZAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkaW9zdHJlYW06OnN0ZGlvc3RyZWFtKGNsYXNzIHN0ZGlvc3RyZWFtIGNvbnN0ICYpDQorPz8wc3RkaW9zdHJlYW1AQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkaW9zdHJlYW06OnN0ZGlvc3RyZWFtKHN0cnVjdCBfaW9idWYgKikNCis/PzBzdGRpb3N0cmVhbUBAUUFFQFBBVV9pb2J1ZkBAQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBzdHJlYW1idWY6OnN0cmVhbWJ1ZihjaGFyICosaW50KQ0KKz8/MHN0cmVhbWJ1ZkBASUFFQFBBREhAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c3RyZWFtYnVmKHZvaWQpDQorPz8wc3RyZWFtYnVmQEBJQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdHJlYW1idWY6OnN0cmVhbWJ1ZihjbGFzcyBzdHJlYW1idWYgY29uc3QgJikNCis/PzBzdHJlYW1idWZAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3Ryc3RyZWFtOjpzdHJzdHJlYW0oY2xhc3Mgc3Ryc3RyZWFtIGNvbnN0ICYpDQorPz8wc3Ryc3RyZWFtQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0cnN0cmVhbTo6c3Ryc3RyZWFtKGNoYXIgKixpbnQsaW50KQ0KKz8/MHN0cnN0cmVhbUBAUUFFQFBBREhIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdHJzdHJlYW06OnN0cnN0cmVhbSh2b2lkKQ0KKz8/MHN0cnN0cmVhbUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3Ryc3RyZWFtYnVmOjpzdHJzdHJlYW1idWYoY2xhc3Mgc3Ryc3RyZWFtYnVmIGNvbnN0ICYpDQorPz8wc3Ryc3RyZWFtYnVmQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0cnN0cmVhbWJ1Zjo6c3Ryc3RyZWFtYnVmKGludCkNCis/PzBzdHJzdHJlYW1idWZAQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdHJzdHJlYW1idWY6OnN0cnN0cmVhbWJ1Zih2b2lkICogKF9fY2RlY2wqKShsb25nKSx2b2lkIChfX2NkZWNsKikodm9pZCAqKSkNCis/PzBzdHJzdHJlYW1idWZAQFFBRUBQNkFQQVhKQFpQNkFYUEFYQFpAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0cnN0cmVhbWJ1Zjo6c3Ryc3RyZWFtYnVmKGNoYXIgKixpbnQsY2hhciAqKQ0KKz8/MHN0cnN0cmVhbWJ1ZkBAUUFFQFBBREgwQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdHJzdHJlYW1idWY6OnN0cnN0cmVhbWJ1Zih2b2lkKQ0KKz8/MHN0cnN0cmVhbWJ1ZkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSW9zdHJlYW1faW5pdDo6fklvc3RyZWFtX2luaXQodm9pZCkNCis/PzFJb3N0cmVhbV9pbml0QEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIGZpbGVidWY6On5maWxlYnVmKHZvaWQpDQorPz8xZmlsZWJ1ZkBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBmc3RyZWFtOjp+ZnN0cmVhbSh2b2lkKQ0KKz8/MWZzdHJlYW1AQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgaWZzdHJlYW06On5pZnN0cmVhbSh2b2lkKQ0KKz8/MWlmc3RyZWFtQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIGlvczo6fmlvcyh2b2lkKQ0KKz8/MWlvc0BAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBpb3N0cmVhbTo6fmlvc3RyZWFtKHZvaWQpDQorPz8xaW9zdHJlYW1AQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgaXN0cmVhbTo6fmlzdHJlYW0odm9pZCkNCis/PzFpc3RyZWFtQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIGlzdHJlYW1fd2l0aGFzc2lnbjo6fmlzdHJlYW1fd2l0aGFzc2lnbih2b2lkKQ0KKz8/MWlzdHJlYW1fd2l0aGFzc2lnbkBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBpc3Ryc3RyZWFtOjp+aXN0cnN0cmVhbSh2b2lkKQ0KKz8/MWlzdHJzdHJlYW1AQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgb2ZzdHJlYW06On5vZnN0cmVhbSh2b2lkKQ0KKz8/MW9mc3RyZWFtQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIG9zdHJlYW06On5vc3RyZWFtKHZvaWQpDQorPz8xb3N0cmVhbUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBvc3RyZWFtX3dpdGhhc3NpZ246On5vc3RyZWFtX3dpdGhhc3NpZ24odm9pZCkNCis/PzFvc3RyZWFtX3dpdGhhc3NpZ25AQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgb3N0cnN0cmVhbTo6fm9zdHJzdHJlYW0odm9pZCkNCis/PzFvc3Ryc3RyZWFtQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0ZGlvYnVmOjp+c3RkaW9idWYodm9pZCkNCis/PzFzdGRpb2J1ZkBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGRpb3N0cmVhbTo6fnN0ZGlvc3RyZWFtKHZvaWQpDQorPz8xc3RkaW9zdHJlYW1AQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjp+c3RyZWFtYnVmKHZvaWQpDQorPz8xc3RyZWFtYnVmQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0cnN0cmVhbTo6fnN0cnN0cmVhbSh2b2lkKQ0KKz8/MXN0cnN0cmVhbUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdHJzdHJlYW1idWY6On5zdHJzdHJlYW1idWYodm9pZCkNCis/PzFzdHJzdHJlYW1idWZAQFVBRUBYWg0KKzsgdm9pZCAqIF9fY2RlY2wgb3BlcmF0b3IgbmV3KHVuc2lnbmVkIGludCkNCis/PzJAWUFQQVhJQFoNCis7IHZvaWQgX19jZGVjbCBvcGVyYXRvciBkZWxldGUodm9pZCAqKQ0KKz8/M0BZQVhQQVhAWg0KKzsgcHVibGljOiBjbGFzcyBJb3N0cmVhbV9pbml0ICYgX190aGlzY2FsbCBJb3N0cmVhbV9pbml0OjpvcGVyYXRvcj0oY2xhc3MgSW9zdHJlYW1faW5pdCBjb25zdCAmKQ0KKz8/NElvc3RyZWFtX2luaXRAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBmaWxlYnVmICYgX190aGlzY2FsbCBmaWxlYnVmOjpvcGVyYXRvcj0oY2xhc3MgZmlsZWJ1ZiBjb25zdCAmKQ0KKz8/NGZpbGVidWZAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBmc3RyZWFtICYgX190aGlzY2FsbCBmc3RyZWFtOjpvcGVyYXRvcj0oY2xhc3MgZnN0cmVhbSAmKQ0KKz8/NGZzdHJlYW1AQFFBRUFBVjBAQUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBpZnN0cmVhbSAmIF9fdGhpc2NhbGwgaWZzdHJlYW06Om9wZXJhdG9yPShjbGFzcyBpZnN0cmVhbSBjb25zdCAmKQ0KKz8/NGlmc3RyZWFtQEBRQUVBQVYwQEFCVjBAQFoNCis7IHByb3RlY3RlZDogY2xhc3MgaW9zICYgX190aGlzY2FsbCBpb3M6Om9wZXJhdG9yPShjbGFzcyBpb3MgY29uc3QgJikNCis/PzRpb3NAQElBRUFBVjBAQUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBpb3N0cmVhbSAmIF9fdGhpc2NhbGwgaW9zdHJlYW06Om9wZXJhdG9yPShjbGFzcyBpb3N0cmVhbSAmKQ0KKz8/NGlvc3RyZWFtQEBJQUVBQVYwQEFBVjBAQFoNCis7IHByb3RlY3RlZDogY2xhc3MgaW9zdHJlYW0gJiBfX3RoaXNjYWxsIGlvc3RyZWFtOjpvcGVyYXRvcj0oY2xhc3Mgc3RyZWFtYnVmICopDQorPz80aW9zdHJlYW1AQElBRUFBVjBAUEFWc3RyZWFtYnVmQEBAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj0oY2xhc3MgaXN0cmVhbSBjb25zdCAmKQ0KKz8/NGlzdHJlYW1AQElBRUFBVjBAQUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj0oY2xhc3Mgc3RyZWFtYnVmICopDQorPz80aXN0cmVhbUBASUFFQUFWMEBQQVZzdHJlYW1idWZAQEBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW1fd2l0aGFzc2lnbiAmIF9fdGhpc2NhbGwgaXN0cmVhbV93aXRoYXNzaWduOjpvcGVyYXRvcj0oY2xhc3MgaXN0cmVhbV93aXRoYXNzaWduIGNvbnN0ICYpDQorPz80aXN0cmVhbV93aXRoYXNzaWduQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbV93aXRoYXNzaWduOjpvcGVyYXRvcj0oY2xhc3MgaXN0cmVhbSBjb25zdCAmKQ0KKz8/NGlzdHJlYW1fd2l0aGFzc2lnbkBAUUFFQUFWaXN0cmVhbUBAQUJWMUBAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtX3dpdGhhc3NpZ246Om9wZXJhdG9yPShjbGFzcyBzdHJlYW1idWYgKikNCis/PzRpc3RyZWFtX3dpdGhhc3NpZ25AQFFBRUFBVmlzdHJlYW1AQFBBVnN0cmVhbWJ1ZkBAQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cnN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cnN0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIGlzdHJzdHJlYW0gY29uc3QgJikNCis/PzRpc3Ryc3RyZWFtQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3Mgb2ZzdHJlYW0gJiBfX3RoaXNjYWxsIG9mc3RyZWFtOjpvcGVyYXRvcj0oY2xhc3Mgb2ZzdHJlYW0gY29uc3QgJikNCis/PzRvZnN0cmVhbUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPShjbGFzcyBvc3RyZWFtIGNvbnN0ICYpDQorPz80b3N0cmVhbUBASUFFQUFWMEBBQlYwQEBaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPShjbGFzcyBzdHJlYW1idWYgKikNCis/PzRvc3RyZWFtQEBJQUVBQVYwQFBBVnN0cmVhbWJ1ZkBAQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbV93aXRoYXNzaWduICYgX190aGlzY2FsbCBvc3RyZWFtX3dpdGhhc3NpZ246Om9wZXJhdG9yPShjbGFzcyBvc3RyZWFtX3dpdGhhc3NpZ24gY29uc3QgJikNCis/PzRvc3RyZWFtX3dpdGhhc3NpZ25AQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtX3dpdGhhc3NpZ246Om9wZXJhdG9yPShjbGFzcyBvc3RyZWFtIGNvbnN0ICYpDQorPz80b3N0cmVhbV93aXRoYXNzaWduQEBRQUVBQVZvc3RyZWFtQEBBQlYxQEBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW1fd2l0aGFzc2lnbjo6b3BlcmF0b3I9KGNsYXNzIHN0cmVhbWJ1ZiAqKQ0KKz8/NG9zdHJlYW1fd2l0aGFzc2lnbkBAUUFFQUFWb3N0cmVhbUBAUEFWc3RyZWFtYnVmQEBAWg0KKzsgcHVibGljOiBjbGFzcyBvc3Ryc3RyZWFtICYgX190aGlzY2FsbCBvc3Ryc3RyZWFtOjpvcGVyYXRvcj0oY2xhc3Mgb3N0cnN0cmVhbSBjb25zdCAmKQ0KKz8/NG9zdHJzdHJlYW1AQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdGRpb2J1ZiAmIF9fdGhpc2NhbGwgc3RkaW9idWY6Om9wZXJhdG9yPShjbGFzcyBzdGRpb2J1ZiBjb25zdCAmKQ0KKz8/NHN0ZGlvYnVmQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkaW9zdHJlYW0gJiBfX3RoaXNjYWxsIHN0ZGlvc3RyZWFtOjpvcGVyYXRvcj0oY2xhc3Mgc3RkaW9zdHJlYW0gJikNCis/PzRzdGRpb3N0cmVhbUBAUUFFQUFWMEBBQVYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0cmVhbWJ1ZiAmIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpvcGVyYXRvcj0oY2xhc3Mgc3RyZWFtYnVmIGNvbnN0ICYpDQorPz80c3RyZWFtYnVmQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3Ryc3RyZWFtICYgX190aGlzY2FsbCBzdHJzdHJlYW06Om9wZXJhdG9yPShjbGFzcyBzdHJzdHJlYW0gJikNCis/PzRzdHJzdHJlYW1AQFFBRUFBVjBAQUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdHJzdHJlYW1idWYgJiBfX3RoaXNjYWxsIHN0cnN0cmVhbWJ1Zjo6b3BlcmF0b3I9KGNsYXNzIHN0cnN0cmVhbWJ1ZiBjb25zdCAmKQ0KKz8/NHN0cnN0cmVhbWJ1ZkBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Om9wZXJhdG9yPj4oc2lnbmVkIGNoYXIgJikNCis/PzVpc3RyZWFtQEBRQUVBQVYwQEFBQ0BaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Om9wZXJhdG9yPj4oY2hhciAmKQ0KKz8/NWlzdHJlYW1AQFFBRUFBVjBAQUFEQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I+Pih1bnNpZ25lZCBjaGFyICYpDQorPz81aXN0cmVhbUBAUUFFQUFWMEBBQUVAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj4+KHNob3J0ICYpDQorPz81aXN0cmVhbUBAUUFFQUFWMEBBQUZAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj4+KHVuc2lnbmVkIHNob3J0ICYpDQorPz81aXN0cmVhbUBAUUFFQUFWMEBBQUdAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj4+KGludCAmKQ0KKz8/NWlzdHJlYW1AQFFBRUFBVjBAQUFIQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I+Pih1bnNpZ25lZCBpbnQgJikNCis/PzVpc3RyZWFtQEBRQUVBQVYwQEFBSUBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Om9wZXJhdG9yPj4obG9uZyAmKQ0KKz8/NWlzdHJlYW1AQFFBRUFBVjBAQUFKQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I+Pih1bnNpZ25lZCBsb25nICYpDQorPz81aXN0cmVhbUBAUUFFQUFWMEBBQUtAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj4+KGZsb2F0ICYpDQorPz81aXN0cmVhbUBAUUFFQUFWMEBBQU1AWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj4+KGRvdWJsZSAmKQ0KKz8/NWlzdHJlYW1AQFFBRUFBVjBAQUFOQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I+Pihsb25nIGRvdWJsZSAmKQ0KKz8/NWlzdHJlYW1AQFFBRUFBVjBAQUFPQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I+PihjbGFzcyBpc3RyZWFtICYgKF9fY2RlY2wqKShjbGFzcyBpc3RyZWFtICYpKQ0KKz8/NWlzdHJlYW1AQFFBRUFBVjBAUDZBQUFWMEBBQVYwQEBaQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I+PihjbGFzcyBpb3MgJiAoX19jZGVjbCopKGNsYXNzIGlvcyAmKSkNCis/PzVpc3RyZWFtQEBRQUVBQVYwQFA2QUFBVmlvc0BAQUFWMUBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Om9wZXJhdG9yPj4oc2lnbmVkIGNoYXIgKikNCis/PzVpc3RyZWFtQEBRQUVBQVYwQFBBQ0BaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Om9wZXJhdG9yPj4oY2hhciAqKQ0KKz8/NWlzdHJlYW1AQFFBRUFBVjBAUEFEQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I+Pih1bnNpZ25lZCBjaGFyICopDQorPz81aXN0cmVhbUBAUUFFQUFWMEBQQUVAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj4+KGNsYXNzIHN0cmVhbWJ1ZiAqKQ0KKz8/NWlzdHJlYW1AQFFBRUFBVjBAUEFWc3RyZWFtYnVmQEBAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KHNpZ25lZCBjaGFyKQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBAQ0BaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwoY2hhcikNCis/PzZvc3RyZWFtQEBRQUVBQVYwQERAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KHVuc2lnbmVkIGNoYXIpDQorPz82b3N0cmVhbUBAUUFFQUFWMEBFQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PChzaG9ydCkNCis/PzZvc3RyZWFtQEBRQUVBQVYwQEZAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KHVuc2lnbmVkIHNob3J0KQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBAR0BaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwoaW50KQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBASEBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwodW5zaWduZWQgaW50KQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBASUBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwobG9uZykNCis/PzZvc3RyZWFtQEBRQUVBQVYwQEpAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KHVuc2lnbmVkIGxvbmcpDQorPz82b3N0cmVhbUBAUUFFQUFWMEBLQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PChmbG9hdCkNCis/PzZvc3RyZWFtQEBRQUVBQVYwQE1AWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KGRvdWJsZSkNCis/PzZvc3RyZWFtQEBRQUVBQVYwQE5AWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KGxvbmcgZG91YmxlKQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBAT0BaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwoY2xhc3Mgb3N0cmVhbSAmIChfX2NkZWNsKikoY2xhc3Mgb3N0cmVhbSAmKSkNCis/PzZvc3RyZWFtQEBRQUVBQVYwQFA2QUFBVjBAQUFWMEBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwoY2xhc3MgaW9zICYgKF9fY2RlY2wqKShjbGFzcyBpb3MgJikpDQorPz82b3N0cmVhbUBAUUFFQUFWMEBQNkFBQVZpb3NAQEFBVjFAQFpAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KGNsYXNzIHN0cmVhbWJ1ZiAqKQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBAUEFWc3RyZWFtYnVmQEBAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KHNpZ25lZCBjaGFyIGNvbnN0ICopDQorPz82b3N0cmVhbUBAUUFFQUFWMEBQQkNAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KGNoYXIgY29uc3QgKikNCis/PzZvc3RyZWFtQEBRQUVBQVYwQFBCREBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwodW5zaWduZWQgY2hhciBjb25zdCAqKQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBAUEJFQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PCh2b2lkIGNvbnN0ICopDQorPz82b3N0cmVhbUBAUUFFQUFWMEBQQlhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBpb3M6Om9wZXJhdG9yISh2b2lkKWNvbnN0IA0KKz8/N2lvc0BAUUJFSFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaW9zOjpvcGVyYXRvciB2b2lkICoodm9pZCljb25zdCANCis/P0Jpb3NAQFFCRVBBWFhaDQorOyBjb25zdCAgZmlsZWJ1Zjo6YHZmdGFibGUnDQorPz9fN2ZpbGVidWZAQDZCQCBEQVRBDQorOyBjb25zdCAgZnN0cmVhbTo6YHZmdGFibGUnDQorPz9fN2ZzdHJlYW1AQDZCQCBEQVRBDQorOyBjb25zdCAgaWZzdHJlYW06OmB2ZnRhYmxlJw0KKz8/XzdpZnN0cmVhbUBANkJAIERBVEENCis7IGNvbnN0ICBpb3M6OmB2ZnRhYmxlJw0KKz8/Xzdpb3NAQDZCQCBEQVRBDQorOyBjb25zdCAgaW9zdHJlYW06OmB2ZnRhYmxlJw0KKz8/Xzdpb3N0cmVhbUBANkJAIERBVEENCis7IGNvbnN0ICBpc3RyZWFtOjpgdmZ0YWJsZScNCis/P183aXN0cmVhbUBANkJAIERBVEENCis7IGNvbnN0ICBpc3RyZWFtX3dpdGhhc3NpZ246OmB2ZnRhYmxlJw0KKz8/Xzdpc3RyZWFtX3dpdGhhc3NpZ25AQDZCQCBEQVRBDQorOyBjb25zdCAgaXN0cnN0cmVhbTo6YHZmdGFibGUnDQorPz9fN2lzdHJzdHJlYW1AQDZCQCBEQVRBDQorOyBjb25zdCAgb2ZzdHJlYW06OmB2ZnRhYmxlJw0KKz8/XzdvZnN0cmVhbUBANkJAIERBVEENCis7IGNvbnN0ICBvc3RyZWFtOjpgdmZ0YWJsZScNCis/P183b3N0cmVhbUBANkJAIERBVEENCis7IGNvbnN0ICBvc3RyZWFtX3dpdGhhc3NpZ246OmB2ZnRhYmxlJw0KKz8/Xzdvc3RyZWFtX3dpdGhhc3NpZ25AQDZCQCBEQVRBDQorOyBjb25zdCAgb3N0cnN0cmVhbTo6YHZmdGFibGUnDQorPz9fN29zdHJzdHJlYW1AQDZCQCBEQVRBDQorOyBjb25zdCAgc3RkaW9idWY6OmB2ZnRhYmxlJw0KKz8/XzdzdGRpb2J1ZkBANkJAIERBVEENCis7IGNvbnN0ICBzdGRpb3N0cmVhbTo6YHZmdGFibGUnDQorPz9fN3N0ZGlvc3RyZWFtQEA2QkAgREFUQQ0KKzsgY29uc3QgIHN0cmVhbWJ1Zjo6YHZmdGFibGUnDQorPz9fN3N0cmVhbWJ1ZkBANkJAIERBVEENCis7IGNvbnN0ICBzdHJzdHJlYW06OmB2ZnRhYmxlJw0KKz8/XzdzdHJzdHJlYW1AQDZCQCBEQVRBDQorOyBjb25zdCAgc3Ryc3RyZWFtYnVmOjpgdmZ0YWJsZScNCis/P183c3Ryc3RyZWFtYnVmQEA2QkAgREFUQQ0KKzsgY29uc3QgIGZzdHJlYW06OmB2YnRhYmxlJ3tmb3IgYGlzdHJlYW0nfQ0KKz8/Xzhmc3RyZWFtQEA3QmlzdHJlYW1AQEAgREFUQQ0KKzsgY29uc3QgIGZzdHJlYW06OmB2YnRhYmxlJ3tmb3IgYG9zdHJlYW0nfQ0KKz8/Xzhmc3RyZWFtQEA3Qm9zdHJlYW1AQEAgREFUQQ0KKzsgY29uc3QgIGlmc3RyZWFtOjpgdmJ0YWJsZScNCis/P184aWZzdHJlYW1AQDdCQCBEQVRBDQorOyBjb25zdCAgaW9zdHJlYW06OmB2YnRhYmxlJ3tmb3IgYGlzdHJlYW0nfQ0KKz8/Xzhpb3N0cmVhbUBAN0Jpc3RyZWFtQEBAIERBVEENCis7IGNvbnN0ICBpb3N0cmVhbTo6YHZidGFibGUne2ZvciBgb3N0cmVhbSd9DQorPz9fOGlvc3RyZWFtQEA3Qm9zdHJlYW1AQEAgREFUQQ0KKzsgY29uc3QgIGlzdHJlYW06OmB2YnRhYmxlJw0KKz8/Xzhpc3RyZWFtQEA3QkAgREFUQQ0KKzsgY29uc3QgIGlzdHJlYW1fd2l0aGFzc2lnbjo6YHZidGFibGUnDQorPz9fOGlzdHJlYW1fd2l0aGFzc2lnbkBAN0JAIERBVEENCis7IGNvbnN0ICBpc3Ryc3RyZWFtOjpgdmJ0YWJsZScNCis/P184aXN0cnN0cmVhbUBAN0JAIERBVEENCis7IGNvbnN0ICBvZnN0cmVhbTo6YHZidGFibGUnDQorPz9fOG9mc3RyZWFtQEA3QkAgREFUQQ0KKzsgY29uc3QgIG9zdHJlYW06OmB2YnRhYmxlJw0KKz8/Xzhvc3RyZWFtQEA3QkAgREFUQQ0KKzsgY29uc3QgIG9zdHJlYW1fd2l0aGFzc2lnbjo6YHZidGFibGUnDQorPz9fOG9zdHJlYW1fd2l0aGFzc2lnbkBAN0JAIERBVEENCis7IGNvbnN0ICBvc3Ryc3RyZWFtOjpgdmJ0YWJsZScNCis/P184b3N0cnN0cmVhbUBAN0JAIERBVEENCis7IGNvbnN0ICBzdGRpb3N0cmVhbTo6YHZidGFibGUne2ZvciBgaXN0cmVhbSd9DQorPz9fOHN0ZGlvc3RyZWFtQEA3QmlzdHJlYW1AQEAgREFUQQ0KKzsgY29uc3QgIHN0ZGlvc3RyZWFtOjpgdmJ0YWJsZSd7Zm9yIGBvc3RyZWFtJ30NCis/P184c3RkaW9zdHJlYW1AQDdCb3N0cmVhbUBAQCBEQVRBDQorOyBjb25zdCAgc3Ryc3RyZWFtOjpgdmJ0YWJsZSd7Zm9yIGBpc3RyZWFtJ30NCis/P184c3Ryc3RyZWFtQEA3QmlzdHJlYW1AQEAgREFUQQ0KKzsgY29uc3QgIHN0cnN0cmVhbTo6YHZidGFibGUne2ZvciBgb3N0cmVhbSd9DQorPz9fOHN0cnN0cmVhbUBAN0Jvc3RyZWFtQEBAIERBVEENCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIGZzdHJlYW06OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0Rmc3RyZWFtQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIGlmc3RyZWFtOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EaWZzdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgaW9zdHJlYW06OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0Rpb3N0cmVhbUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBpc3RyZWFtOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EaXN0cmVhbUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBpc3RyZWFtX3dpdGhhc3NpZ246OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0Rpc3RyZWFtX3dpdGhhc3NpZ25AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgaXN0cnN0cmVhbTo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRGlzdHJzdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgb2ZzdHJlYW06OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0RvZnN0cmVhbUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBvc3RyZWFtOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19Eb3N0cmVhbUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBvc3RyZWFtX3dpdGhhc3NpZ246OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0Rvc3RyZWFtX3dpdGhhc3NpZ25AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgb3N0cnN0cmVhbTo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRG9zdHJzdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RkaW9zdHJlYW06OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0RzdGRpb3N0cmVhbUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdHJzdHJlYW06OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0RzdHJzdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBJb3N0cmVhbV9pbml0OjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19FSW9zdHJlYW1faW5pdEBAUUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgZmlsZWJ1Zjo6YHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fRWZpbGVidWZAQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGZzdHJlYW06OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0Vmc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBpZnN0cmVhbTo6YHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fRWlmc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBpb3M6OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0Vpb3NAQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGlvc3RyZWFtOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19FaW9zdHJlYW1AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGlzdHJlYW06OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0Vpc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBpc3RyZWFtX3dpdGhhc3NpZ246OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0Vpc3RyZWFtX3dpdGhhc3NpZ25AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGlzdHJzdHJlYW06OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0Vpc3Ryc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBvZnN0cmVhbTo6YHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fRW9mc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBvc3RyZWFtOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Fb3N0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgb3N0cmVhbV93aXRoYXNzaWduOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Fb3N0cmVhbV93aXRoYXNzaWduQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBvc3Ryc3RyZWFtOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Fb3N0cnN0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgc3RkaW9idWY6OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0VzdGRpb2J1ZkBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgc3RkaW9zdHJlYW06OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0VzdGRpb3N0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Fc3RyZWFtYnVmQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBzdHJzdHJlYW06OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0VzdHJzdHJlYW1AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIHN0cnN0cmVhbWJ1Zjo6YHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fRXN0cnN0cmVhbWJ1ZkBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3RoaXNjYWxsIElvc3RyZWFtX2luaXQ6OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dJb3N0cmVhbV9pbml0QEBRQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBmaWxlYnVmOjpgc2NhbGFyIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19HZmlsZWJ1ZkBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgZnN0cmVhbTo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR2ZzdHJlYW1AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGlmc3RyZWFtOjpgc2NhbGFyIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19HaWZzdHJlYW1AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGlvczo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR2lvc0BAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgaW9zdHJlYW06OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dpb3N0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgaXN0cmVhbTo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR2lzdHJlYW1AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGlzdHJlYW1fd2l0aGFzc2lnbjo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR2lzdHJlYW1fd2l0aGFzc2lnbkBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgaXN0cnN0cmVhbTo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR2lzdHJzdHJlYW1AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIG9mc3RyZWFtOjpgc2NhbGFyIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Hb2ZzdHJlYW1AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIG9zdHJlYW06OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dvc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBvc3RyZWFtX3dpdGhhc3NpZ246OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dvc3RyZWFtX3dpdGhhc3NpZ25AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIG9zdHJzdHJlYW06OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dvc3Ryc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBzdGRpb2J1Zjo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR3N0ZGlvYnVmQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBzdGRpb3N0cmVhbTo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR3N0ZGlvc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBzdHJlYW1idWY6OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dzdHJlYW1idWZAQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIHN0cnN0cmVhbTo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR3N0cnN0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgc3Ryc3RyZWFtYnVmOjpgc2NhbGFyIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Hc3Ryc3RyZWFtYnVmQEBVQUVQQVhJQFoNCis7IGludCAoX19jZGVjbCpfX2NkZWNsIF9xdWVyeV9uZXdfaGFuZGxlcih2b2lkKSkodW5zaWduZWQgaW50KQ0KKz9fcXVlcnlfbmV3X2hhbmRsZXJAQFlBUDZBSElAWlhaDQorOyBpbnQgX19jZGVjbCBfcXVlcnlfbmV3X21vZGUodm9pZCkNCis/X3F1ZXJ5X25ld19tb2RlQEBZQUhYWg0KKzsgaW50IChfX2NkZWNsKl9fY2RlY2wgX3NldF9uZXdfaGFuZGxlcihpbnQgKF9fY2RlY2wqKSh1bnNpZ25lZCBpbnQpKSkodW5zaWduZWQgaW50KQ0KKz9fc2V0X25ld19oYW5kbGVyQEBZQVA2QUhJQFpQNkFISUBaQFoNCis7IGludCBfX2NkZWNsIF9zZXRfbmV3X21vZGUoaW50KQ0KKz9fc2V0X25ld19tb2RlQEBZQUhIQFoNCis7IHZvaWQgKF9fY2RlY2wqX19jZGVjbCBfc2V0X3NlX3RyYW5zbGF0b3Iodm9pZCAoX19jZGVjbCopKHVuc2lnbmVkIGludCxzdHJ1Y3QgX0VYQ0VQVElPTl9QT0lOVEVSUyAqKSkpKHVuc2lnbmVkIGludCxzdHJ1Y3QgX0VYQ0VQVElPTl9QT0lOVEVSUyAqKQ0KKz9fc2V0X3NlX3RyYW5zbGF0b3JAQFlBUDZBWElQQVVfRVhDRVBUSU9OX1BPSU5URVJTQEBAWlA2QVhJMEBaQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgY29uc3QgIGlvczo6YWRqdXN0ZmllbGQNCis/YWRqdXN0ZmllbGRAaW9zQEAySkIgREFUQQ0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBzdHJlYW1idWY6OmFsbG9jYXRlKHZvaWQpDQorP2FsbG9jYXRlQHN0cmVhbWJ1ZkBASUFFSFhaDQorOyBwdWJsaWM6IGNsYXNzIGZpbGVidWYgKiBfX3RoaXNjYWxsIGZpbGVidWY6OmF0dGFjaChpbnQpDQorP2F0dGFjaEBmaWxlYnVmQEBRQUVQQVYxQEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgZnN0cmVhbTo6YXR0YWNoKGludCkNCis/YXR0YWNoQGZzdHJlYW1AQFFBRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIGlmc3RyZWFtOjphdHRhY2goaW50KQ0KKz9hdHRhY2hAaWZzdHJlYW1AQFFBRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIG9mc3RyZWFtOjphdHRhY2goaW50KQ0KKz9hdHRhY2hAb2ZzdHJlYW1AQFFBRVhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgaW9zOjpiYWQodm9pZCljb25zdCANCis/YmFkQGlvc0BAUUJFSFhaDQorOyBwcm90ZWN0ZWQ6IGNoYXIgKiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6YmFzZSh2b2lkKWNvbnN0IA0KKz9iYXNlQHN0cmVhbWJ1ZkBASUJFUEFEWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgY29uc3QgIGlvczo6YmFzZWZpZWxkDQorP2Jhc2VmaWVsZEBpb3NAQDJKQiBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgY29uc3QgIGZpbGVidWY6OmJpbmFyeQ0KKz9iaW5hcnlAZmlsZWJ1ZkBAMkhCIERBVEENCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19jZGVjbCBpb3M6OmJpdGFsbG9jKHZvaWQpDQorP2JpdGFsbG9jQGlvc0BAU0FKWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpibGVuKHZvaWQpY29uc3QgDQorP2JsZW5Ac3RyZWFtYnVmQEBJQkVIWFoNCis7IGNsYXNzIG9zdHJlYW1fd2l0aGFzc2lnbiAgY2Vycg0KKz9jZXJyQEAzVm9zdHJlYW1fd2l0aGFzc2lnbkBAQSBEQVRBDQorOyBjbGFzcyBpc3RyZWFtX3dpdGhhc3NpZ24gIGNpbg0KKz9jaW5AQDNWaXN0cmVhbV93aXRoYXNzaWduQEBBIERBVEENCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIGlvczo6Y2xlYXIoaW50KQ0KKz9jbGVhckBpb3NAQFFBRVhIQFoNCis7IGNsYXNzIG9zdHJlYW1fd2l0aGFzc2lnbiAgY2xvZw0KKz9jbG9nQEAzVm9zdHJlYW1fd2l0aGFzc2lnbkBAQSBEQVRBDQorOyBwdWJsaWM6IGNsYXNzIGZpbGVidWYgKiBfX3RoaXNjYWxsIGZpbGVidWY6OmNsb3NlKHZvaWQpDQorP2Nsb3NlQGZpbGVidWZAQFFBRVBBVjFAWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIGZzdHJlYW06OmNsb3NlKHZvaWQpDQorP2Nsb3NlQGZzdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgaWZzdHJlYW06OmNsb3NlKHZvaWQpDQorP2Nsb3NlQGlmc3RyZWFtQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIG9mc3RyZWFtOjpjbG9zZSh2b2lkKQ0KKz9jbG9zZUBvZnN0cmVhbUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBpb3M6OmNscmxvY2sodm9pZCkNCis/Y2xybG9ja0Bpb3NAQFFBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpjbHJsb2NrKHZvaWQpDQorP2NscmxvY2tAc3RyZWFtYnVmQEBRQUVYWFoNCis7IGNsYXNzIG9zdHJlYW1fd2l0aGFzc2lnbiAgY291dA0KKz9jb3V0QEAzVm9zdHJlYW1fd2l0aGFzc2lnbkBAQSBEQVRBDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdHJlYW1idWY6OmRicCh2b2lkKQ0KKz9kYnBAc3RyZWFtYnVmQEBRQUVYWFoNCis7IGNsYXNzIGlvcyAmIF9fY2RlY2wgZGVjKGNsYXNzIGlvcyAmKQ0KKz9kZWNAQFlBQUFWaW9zQEBBQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBpb3M6OmRlbGJ1ZihpbnQpDQorP2RlbGJ1ZkBpb3NAQFFBRVhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgaW9zOjpkZWxidWYodm9pZCljb25zdCANCis/ZGVsYnVmQGlvc0BAUUJFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpkb2FsbG9jYXRlKHZvaWQpDQorP2RvYWxsb2NhdGVAc3RyZWFtYnVmQEBNQUVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdHJzdHJlYW1idWY6OmRvYWxsb2NhdGUodm9pZCkNCis/ZG9hbGxvY2F0ZUBzdHJzdHJlYW1idWZAQE1BRUhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgaXN0cmVhbTo6ZWF0d2hpdGUodm9pZCkNCis/ZWF0d2hpdGVAaXN0cmVhbUBAUUFFWFhaDQorOyBwcm90ZWN0ZWQ6IGNoYXIgKiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6ZWJhY2sodm9pZCljb25zdCANCis/ZWJhY2tAc3RyZWFtYnVmQEBJQkVQQURYWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX190aGlzY2FsbCBzdHJlYW1idWY6OmVidWYodm9pZCljb25zdCANCis/ZWJ1ZkBzdHJlYW1idWZAQElCRVBBRFhaDQorOyBwcm90ZWN0ZWQ6IGNoYXIgKiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6ZWdwdHIodm9pZCljb25zdCANCis/ZWdwdHJAc3RyZWFtYnVmQEBJQkVQQURYWg0KKzsgY2xhc3Mgb3N0cmVhbSAmIF9fY2RlY2wgZW5kbChjbGFzcyBvc3RyZWFtICYpDQorP2VuZGxAQFlBQUFWb3N0cmVhbUBAQUFWMUBAWg0KKzsgY2xhc3Mgb3N0cmVhbSAmIF9fY2RlY2wgZW5kcyhjbGFzcyBvc3RyZWFtICYpDQorP2VuZHNAQFlBQUFWb3N0cmVhbUBAQUFWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBpb3M6OmVvZih2b2lkKWNvbnN0IA0KKz9lb2ZAaW9zQEBRQkVIWFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjplcHB0cih2b2lkKWNvbnN0IA0KKz9lcHB0ckBzdHJlYW1idWZAQElCRVBBRFhaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50ICBpb3M6OmZMb2NrY0luaXQNCis/ZkxvY2tjSW5pdEBpb3NAQDBIQSBEQVRBDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlvczo6ZmFpbCh2b2lkKWNvbnN0IA0KKz9mYWlsQGlvc0BAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGZpbGVidWY6OmZkKHZvaWQpY29uc3QgDQorP2ZkQGZpbGVidWZAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBmc3RyZWFtOjpmZCh2b2lkKWNvbnN0IA0KKz9mZEBmc3RyZWFtQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgaWZzdHJlYW06OmZkKHZvaWQpY29uc3QgDQorP2ZkQGlmc3RyZWFtQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgb2ZzdHJlYW06OmZkKHZvaWQpY29uc3QgDQorP2ZkQG9mc3RyZWFtQEBRQkVIWFoNCis7IHB1YmxpYzogY2hhciBfX3RoaXNjYWxsIGlvczo6ZmlsbChjaGFyKQ0KKz9maWxsQGlvc0BAUUFFRERAWg0KKzsgcHVibGljOiBjaGFyIF9fdGhpc2NhbGwgaW9zOjpmaWxsKHZvaWQpY29uc3QgDQorP2ZpbGxAaW9zQEBRQkVEWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIGlvczo6ZmxhZ3MobG9uZykNCis/ZmxhZ3NAaW9zQEBRQUVKSkBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBpb3M6OmZsYWdzKHZvaWQpY29uc3QgDQorP2ZsYWdzQGlvc0BAUUJFSlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGNvbnN0ICBpb3M6OmZsb2F0ZmllbGQNCis/ZmxvYXRmaWVsZEBpb3NAQDJKQiBEQVRBDQorOyBjbGFzcyBvc3RyZWFtICYgX19jZGVjbCBmbHVzaChjbGFzcyBvc3RyZWFtICYpDQorP2ZsdXNoQEBZQUFBVm9zdHJlYW1AQEFBVjFAQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6Zmx1c2godm9pZCkNCis/Zmx1c2hAb3N0cmVhbUBAUUFFQUFWMUBYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3Ryc3RyZWFtYnVmOjpmcmVlemUoaW50KQ0KKz9mcmVlemVAc3Ryc3RyZWFtYnVmQEBRQUVYSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdHJlYW1idWY6OmdidW1wKGludCkNCis/Z2J1bXBAc3RyZWFtYnVmQEBJQUVYSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlzdHJlYW06Omdjb3VudCh2b2lkKWNvbnN0IA0KKz9nY291bnRAaXN0cmVhbUBAUUJFSFhaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06OmdldChzaWduZWQgY2hhciAmKQ0KKz9nZXRAaXN0cmVhbUBAUUFFQUFWMUBBQUNAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpnZXQoY2hhciAmKQ0KKz9nZXRAaXN0cmVhbUBAUUFFQUFWMUBBQURAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpnZXQodW5zaWduZWQgY2hhciAmKQ0KKz9nZXRAaXN0cmVhbUBAUUFFQUFWMUBBQUVAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpnZXQoY2xhc3Mgc3RyZWFtYnVmICYsY2hhcikNCis/Z2V0QGlzdHJlYW1AQFFBRUFBVjFAQUFWc3RyZWFtYnVmQEBEQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6Z2V0KHNpZ25lZCBjaGFyICosaW50LGNoYXIpDQorP2dldEBpc3RyZWFtQEBRQUVBQVYxQFBBQ0hEQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6Z2V0KGNoYXIgKixpbnQsY2hhcikNCis/Z2V0QGlzdHJlYW1AQFFBRUFBVjFAUEFESERAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpnZXQodW5zaWduZWQgY2hhciAqLGludCxjaGFyKQ0KKz9nZXRAaXN0cmVhbUBAUUFFQUFWMUBQQUVIREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlzdHJlYW06OmdldCh2b2lkKQ0KKz9nZXRAaXN0cmVhbUBAUUFFSFhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBpc3RyZWFtOjpnZXRkb3VibGUoY2hhciAqLGludCkNCis/Z2V0ZG91YmxlQGlzdHJlYW1AQEFBRUhQQURIQFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIGlzdHJlYW06OmdldGludChjaGFyICopDQorP2dldGludEBpc3RyZWFtQEBBQUVIUEFEQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6Z2V0bGluZShzaWduZWQgY2hhciAqLGludCxjaGFyKQ0KKz9nZXRsaW5lQGlzdHJlYW1AQFFBRUFBVjFAUEFDSERAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpnZXRsaW5lKGNoYXIgKixpbnQsY2hhcikNCis/Z2V0bGluZUBpc3RyZWFtQEBRQUVBQVYxQFBBREhEQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6Z2V0bGluZSh1bnNpZ25lZCBjaGFyICosaW50LGNoYXIpDQorP2dldGxpbmVAaXN0cmVhbUBAUUFFQUFWMUBQQUVIREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlvczo6Z29vZCh2b2lkKWNvbnN0IA0KKz9nb29kQGlvc0BAUUJFSFhaDQorOyBwcm90ZWN0ZWQ6IGNoYXIgKiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6Z3B0cih2b2lkKWNvbnN0IA0KKz9ncHRyQHN0cmVhbWJ1ZkBASUJFUEFEWFoNCis7IGNsYXNzIGlvcyAmIF9fY2RlY2wgaGV4KGNsYXNzIGlvcyAmKQ0KKz9oZXhAQFlBQUFWaW9zQEBBQVYxQEBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Omlnbm9yZShpbnQsaW50KQ0KKz9pZ25vcmVAaXN0cmVhbUBAUUFFQUFWMUBISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6aW5fYXZhaWwodm9pZCljb25zdCANCis/aW5fYXZhaWxAc3RyZWFtYnVmQEBRQkVIWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIGlvczo6aW5pdChjbGFzcyBzdHJlYW1idWYgKikNCis/aW5pdEBpb3NAQElBRVhQQVZzdHJlYW1idWZAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlzdHJlYW06OmlwZngoaW50KQ0KKz9pcGZ4QGlzdHJlYW1AQFFBRUhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgZmlsZWJ1Zjo6aXNfb3Blbih2b2lkKWNvbnN0IA0KKz9pc19vcGVuQGZpbGVidWZAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBmc3RyZWFtOjppc19vcGVuKHZvaWQpY29uc3QgDQorP2lzX29wZW5AZnN0cmVhbUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlmc3RyZWFtOjppc19vcGVuKHZvaWQpY29uc3QgDQorP2lzX29wZW5AaWZzdHJlYW1AQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBvZnN0cmVhbTo6aXNfb3Blbih2b2lkKWNvbnN0IA0KKz9pc19vcGVuQG9mc3RyZWFtQEBRQkVIWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIGlzdHJlYW06OmlzZngodm9pZCkNCis/aXNmeEBpc3RyZWFtQEBRQUVYWFoNCis7IHB1YmxpYzogbG9uZyAmIF9fdGhpc2NhbGwgaW9zOjppd29yZChpbnQpY29uc3QgDQorP2l3b3JkQGlvc0BAUUJFQUFKSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBpb3M6OmxvY2sodm9pZCkNCis/bG9ja0Bpb3NAQFFBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpsb2NrKHZvaWQpDQorP2xvY2tAc3RyZWFtYnVmQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGlvczo6bG9ja2J1Zih2b2lkKQ0KKz9sb2NrYnVmQGlvc0BAUUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB2b2lkIF9fY2RlY2wgaW9zOjpsb2NrYyh2b2lkKQ0KKz9sb2NrY0Bpb3NAQEtBWFhaDQorOyBwcm90ZWN0ZWQ6IHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gKiBfX3RoaXNjYWxsIGlvczo6bG9ja3B0cih2b2lkKQ0KKz9sb2NrcHRyQGlvc0BASUFFUEFVX1JUTF9DUklUSUNBTF9TRUNUSU9OQEBYWg0KKzsgcHJvdGVjdGVkOiBzdHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OICogX190aGlzY2FsbCBzdHJlYW1idWY6OmxvY2twdHIodm9pZCkNCis/bG9ja3B0ckBzdHJlYW1idWZAQElBRVBBVV9SVExfQ1JJVElDQUxfU0VDVElPTkBAWFoNCis7IGNsYXNzIGlvcyAmIF9fY2RlY2wgb2N0KGNsYXNzIGlvcyAmKQ0KKz9vY3RAQFlBQUFWaW9zQEBBQVYxQEBaDQorOyBwdWJsaWM6IGNsYXNzIGZpbGVidWYgKiBfX3RoaXNjYWxsIGZpbGVidWY6Om9wZW4oY2hhciBjb25zdCAqLGludCxpbnQpDQorP29wZW5AZmlsZWJ1ZkBAUUFFUEFWMUBQQkRISEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBmc3RyZWFtOjpvcGVuKGNoYXIgY29uc3QgKixpbnQsaW50KQ0KKz9vcGVuQGZzdHJlYW1AQFFBRVhQQkRISEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBpZnN0cmVhbTo6b3BlbihjaGFyIGNvbnN0ICosaW50LGludCkNCis/b3BlbkBpZnN0cmVhbUBAUUFFWFBCREhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIG9mc3RyZWFtOjpvcGVuKGNoYXIgY29uc3QgKixpbnQsaW50KQ0KKz9vcGVuQG9mc3RyZWFtQEBRQUVYUEJESEhAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IGNvbnN0ICBmaWxlYnVmOjpvcGVucHJvdA0KKz9vcGVucHJvdEBmaWxlYnVmQEAySEIgREFUQQ0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBvc3RyZWFtOjpvcGZ4KHZvaWQpDQorP29wZnhAb3N0cmVhbUBAUUFFSFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBvc3RyZWFtOjpvc2Z4KHZvaWQpDQorP29zZnhAb3N0cmVhbUBAUUFFWFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6b3V0X3dhaXRpbmcodm9pZCljb25zdCANCis/b3V0X3dhaXRpbmdAc3RyZWFtYnVmQEBRQkVIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBmaWxlYnVmOjpvdmVyZmxvdyhpbnQpDQorP292ZXJmbG93QGZpbGVidWZAQFVBRUhIQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGRpb2J1Zjo6b3ZlcmZsb3coaW50KQ0KKz9vdmVyZmxvd0BzdGRpb2J1ZkBAVUFFSEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0cnN0cmVhbWJ1Zjo6b3ZlcmZsb3coaW50KQ0KKz9vdmVyZmxvd0BzdHJzdHJlYW1idWZAQFVBRUhIQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGRpb2J1Zjo6cGJhY2tmYWlsKGludCkNCis/cGJhY2tmYWlsQHN0ZGlvYnVmQEBVQUVISEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpwYmFja2ZhaWwoaW50KQ0KKz9wYmFja2ZhaWxAc3RyZWFtYnVmQEBVQUVISEBaDQorOyBwcm90ZWN0ZWQ6IGNoYXIgKiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6cGJhc2Uodm9pZCljb25zdCANCis/cGJhc2VAc3RyZWFtYnVmQEBJQkVQQURYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpwYnVtcChpbnQpDQorP3BidW1wQHN0cmVhbWJ1ZkBASUFFWEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBvc3Ryc3RyZWFtOjpwY291bnQodm9pZCljb25zdCANCis/cGNvdW50QG9zdHJzdHJlYW1AQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdHJzdHJlYW06OnBjb3VudCh2b2lkKWNvbnN0IA0KKz9wY291bnRAc3Ryc3RyZWFtQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgaXN0cmVhbTo6cGVlayh2b2lkKQ0KKz9wZWVrQGlzdHJlYW1AQFFBRUhYWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX190aGlzY2FsbCBzdHJlYW1idWY6OnBwdHIodm9pZCljb25zdCANCis/cHB0ckBzdHJlYW1idWZAQElCRVBBRFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlvczo6cHJlY2lzaW9uKGludCkNCis/cHJlY2lzaW9uQGlvc0BAUUFFSEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBpb3M6OnByZWNpc2lvbih2b2lkKWNvbnN0IA0KKz9wcmVjaXNpb25AaW9zQEBRQkVIWFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6cHV0KHNpZ25lZCBjaGFyKQ0KKz9wdXRAb3N0cmVhbUBAUUFFQUFWMUBDQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6cHV0KGNoYXIpDQorP3B1dEBvc3RyZWFtQEBRQUVBQVYxQERAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpwdXQodW5zaWduZWQgY2hhcikNCis/cHV0QG9zdHJlYW1AQFFBRUFBVjFARUBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06OnB1dGJhY2soY2hhcikNCis/cHV0YmFja0Bpc3RyZWFtQEBRQUVBQVYxQERAWg0KKzsgcHVibGljOiB2b2lkICogJiBfX3RoaXNjYWxsIGlvczo6cHdvcmQoaW50KWNvbnN0IA0KKz9wd29yZEBpb3NAQFFCRUFBUEFYSEBaDQorOyBwdWJsaWM6IGNsYXNzIGZpbGVidWYgKiBfX3RoaXNjYWxsIGZzdHJlYW06OnJkYnVmKHZvaWQpY29uc3QgDQorP3JkYnVmQGZzdHJlYW1AQFFCRVBBVmZpbGVidWZAQFhaDQorOyBwdWJsaWM6IGNsYXNzIGZpbGVidWYgKiBfX3RoaXNjYWxsIGlmc3RyZWFtOjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkBpZnN0cmVhbUBAUUJFUEFWZmlsZWJ1ZkBAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RyZWFtYnVmICogX190aGlzY2FsbCBpb3M6OnJkYnVmKHZvaWQpY29uc3QgDQorP3JkYnVmQGlvc0BAUUJFUEFWc3RyZWFtYnVmQEBYWg0KKzsgcHVibGljOiBjbGFzcyBzdHJzdHJlYW1idWYgKiBfX3RoaXNjYWxsIGlzdHJzdHJlYW06OnJkYnVmKHZvaWQpY29uc3QgDQorP3JkYnVmQGlzdHJzdHJlYW1AQFFCRVBBVnN0cnN0cmVhbWJ1ZkBAWFoNCis7IHB1YmxpYzogY2xhc3MgZmlsZWJ1ZiAqIF9fdGhpc2NhbGwgb2ZzdHJlYW06OnJkYnVmKHZvaWQpY29uc3QgDQorP3JkYnVmQG9mc3RyZWFtQEBRQkVQQVZmaWxlYnVmQEBYWg0KKzsgcHVibGljOiBjbGFzcyBzdHJzdHJlYW1idWYgKiBfX3RoaXNjYWxsIG9zdHJzdHJlYW06OnJkYnVmKHZvaWQpY29uc3QgDQorP3JkYnVmQG9zdHJzdHJlYW1AQFFCRVBBVnN0cnN0cmVhbWJ1ZkBAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkaW9idWYgKiBfX3RoaXNjYWxsIHN0ZGlvc3RyZWFtOjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkBzdGRpb3N0cmVhbUBAUUJFUEFWc3RkaW9idWZAQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0cnN0cmVhbWJ1ZiAqIF9fdGhpc2NhbGwgc3Ryc3RyZWFtOjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkBzdHJzdHJlYW1AQFFCRVBBVnN0cnN0cmVhbWJ1ZkBAWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgaW9zOjpyZHN0YXRlKHZvaWQpY29uc3QgDQorP3Jkc3RhdGVAaW9zQEBRQkVIWFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6cmVhZChzaWduZWQgY2hhciAqLGludCkNCis/cmVhZEBpc3RyZWFtQEBRQUVBQVYxQFBBQ0hAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpyZWFkKGNoYXIgKixpbnQpDQorP3JlYWRAaXN0cmVhbUBAUUFFQUFWMUBQQURIQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6cmVhZCh1bnNpZ25lZCBjaGFyICosaW50KQ0KKz9yZWFkQGlzdHJlYW1AQFFBRUFBVjFAUEFFSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c2J1bXBjKHZvaWQpDQorP3NidW1wY0BzdHJlYW1idWZAQFFBRUhYWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpzZWVrZyhsb25nKQ0KKz9zZWVrZ0Bpc3RyZWFtQEBRQUVBQVYxQEpAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpzZWVrZyhsb25nLGVudW0gaW9zOjpzZWVrX2RpcikNCis/c2Vla2dAaXN0cmVhbUBAUUFFQUFWMUBKVzRzZWVrX2RpckBpb3NAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIGZpbGVidWY6OnNlZWtvZmYobG9uZyxlbnVtIGlvczo6c2Vla19kaXIsaW50KQ0KKz9zZWVrb2ZmQGZpbGVidWZAQFVBRUpKVzRzZWVrX2RpckBpb3NAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBzdGRpb2J1Zjo6c2Vla29mZihsb25nLGVudW0gaW9zOjpzZWVrX2RpcixpbnQpDQorP3NlZWtvZmZAc3RkaW9idWZAQFVBRUpKVzRzZWVrX2RpckBpb3NAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBzdHJlYW1idWY6OnNlZWtvZmYobG9uZyxlbnVtIGlvczo6c2Vla19kaXIsaW50KQ0KKz9zZWVrb2ZmQHN0cmVhbWJ1ZkBAVUFFSkpXNHNlZWtfZGlyQGlvc0BASEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIHN0cnN0cmVhbWJ1Zjo6c2Vla29mZihsb25nLGVudW0gaW9zOjpzZWVrX2RpcixpbnQpDQorP3NlZWtvZmZAc3Ryc3RyZWFtYnVmQEBVQUVKSlc0c2Vla19kaXJAaW9zQEBIQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6c2Vla3AobG9uZykNCis/c2Vla3BAb3N0cmVhbUBAUUFFQUFWMUBKQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6c2Vla3AobG9uZyxlbnVtIGlvczo6c2Vla19kaXIpDQorP3NlZWtwQG9zdHJlYW1AQFFBRUFBVjFASlc0c2Vla19kaXJAaW9zQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBzdHJlYW1idWY6OnNlZWtwb3MobG9uZyxpbnQpDQorP3NlZWtwb3NAc3RyZWFtYnVmQEBVQUVKSkhAWg0KKzsgdm9pZCAoX19jZGVjbCpfX2NkZWNsIHNldF90ZXJtaW5hdGUodm9pZCAoX19jZGVjbCopKHZvaWQpKSkodm9pZCkNCis/c2V0X3Rlcm1pbmF0ZUBAWUFQNkFYWFpQNkFYWFpAWg0KKzsgdm9pZCAoX19jZGVjbCpfX2NkZWNsIHNldF91bmV4cGVjdGVkKHZvaWQgKF9fY2RlY2wqKSh2b2lkKSkpKHZvaWQpDQorP3NldF91bmV4cGVjdGVkQEBZQVA2QVhYWlA2QVhYWkBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdHJlYW1idWY6OnNldGIoY2hhciAqLGNoYXIgKixpbnQpDQorP3NldGJAc3RyZWFtYnVmQEBJQUVYUEFEMEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIHN0cmVhbWJ1ZiAqIF9fdGhpc2NhbGwgZmlsZWJ1Zjo6c2V0YnVmKGNoYXIgKixpbnQpDQorP3NldGJ1ZkBmaWxlYnVmQEBVQUVQQVZzdHJlYW1idWZAQFBBREhAWg0KKzsgcHVibGljOiBjbGFzcyBzdHJlYW1idWYgKiBfX3RoaXNjYWxsIGZzdHJlYW06OnNldGJ1ZihjaGFyICosaW50KQ0KKz9zZXRidWZAZnN0cmVhbUBAUUFFUEFWc3RyZWFtYnVmQEBQQURIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RyZWFtYnVmICogX190aGlzY2FsbCBpZnN0cmVhbTo6c2V0YnVmKGNoYXIgKixpbnQpDQorP3NldGJ1ZkBpZnN0cmVhbUBAUUFFUEFWc3RyZWFtYnVmQEBQQURIQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RyZWFtYnVmICogX190aGlzY2FsbCBvZnN0cmVhbTo6c2V0YnVmKGNoYXIgKixpbnQpDQorP3NldGJ1ZkBvZnN0cmVhbUBAUUFFUEFWc3RyZWFtYnVmQEBQQURIQFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBzdHJlYW1idWYgKiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c2V0YnVmKGNoYXIgKixpbnQpDQorP3NldGJ1ZkBzdHJlYW1idWZAQFVBRVBBVjFAUEFESEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3Mgc3RyZWFtYnVmICogX190aGlzY2FsbCBzdHJzdHJlYW1idWY6OnNldGJ1ZihjaGFyICosaW50KQ0KKz9zZXRidWZAc3Ryc3RyZWFtYnVmQEBVQUVQQVZzdHJlYW1idWZAQFBBREhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgaW9zOjpzZXRmKGxvbmcpDQorP3NldGZAaW9zQEBRQUVKSkBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBpb3M6OnNldGYobG9uZyxsb25nKQ0KKz9zZXRmQGlvc0BAUUFFSkpKQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c2V0ZyhjaGFyICosY2hhciAqLGNoYXIgKikNCis/c2V0Z0BzdHJlYW1idWZAQElBRVhQQUQwMEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBpb3M6OnNldGxvY2sodm9pZCkNCis/c2V0bG9ja0Bpb3NAQFFBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzZXRsb2NrKHZvaWQpDQorP3NldGxvY2tAc3RyZWFtYnVmQEBRQUVYWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgZmlsZWJ1Zjo6c2V0bW9kZShpbnQpDQorP3NldG1vZGVAZmlsZWJ1ZkBAUUFFSEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBmc3RyZWFtOjpzZXRtb2RlKGludCkNCis/c2V0bW9kZUBmc3RyZWFtQEBRQUVISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlmc3RyZWFtOjpzZXRtb2RlKGludCkNCis/c2V0bW9kZUBpZnN0cmVhbUBAUUFFSEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBvZnN0cmVhbTo6c2V0bW9kZShpbnQpDQorP3NldG1vZGVAb2ZzdHJlYW1AQFFBRUhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c2V0cChjaGFyICosY2hhciAqKQ0KKz9zZXRwQHN0cmVhbWJ1ZkBASUFFWFBBRDBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdGRpb2J1Zjo6c2V0cndidWYoaW50LGludCkNCis/c2V0cndidWZAc3RkaW9idWZAQFFBRUhISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c2dldGModm9pZCkNCis/c2dldGNAc3RyZWFtYnVmQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzZ2V0bihjaGFyICosaW50KQ0KKz9zZ2V0bkBzdHJlYW1idWZAQFFBRUhQQURIQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBjb25zdCAgZmlsZWJ1Zjo6c2hfbm9uZQ0KKz9zaF9ub25lQGZpbGVidWZAQDJIQiBEQVRBDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgY29uc3QgIGZpbGVidWY6OnNoX3JlYWQNCis/c2hfcmVhZEBmaWxlYnVmQEAySEIgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgaW50IGNvbnN0ICBmaWxlYnVmOjpzaF93cml0ZQ0KKz9zaF93cml0ZUBmaWxlYnVmQEAySEIgREFUQQ0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdHJlYW1idWY6OnNuZXh0Yyh2b2lkKQ0KKz9zbmV4dGNAc3RyZWFtYnVmQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzcHV0YmFja2MoY2hhcikNCis/c3B1dGJhY2tjQHN0cmVhbWJ1ZkBAUUFFSERAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdHJlYW1idWY6OnNwdXRjKGludCkNCis/c3B1dGNAc3RyZWFtYnVmQEBRQUVISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c3B1dG4oY2hhciBjb25zdCAqLGludCkNCis/c3B1dG5Ac3RyZWFtYnVmQEBRQUVIUEJESEBaDQorOyBwdWJsaWM6IHN0cnVjdCBfaW9idWYgKiBfX3RoaXNjYWxsIHN0ZGlvYnVmOjpzdGRpb2ZpbGUodm9pZCkNCis/c3RkaW9maWxlQHN0ZGlvYnVmQEBRQUVQQVVfaW9idWZAQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdHJlYW1idWY6OnN0b3NzYyh2b2lkKQ0KKz9zdG9zc2NAc3RyZWFtYnVmQEBRQUVYWFoNCis7IHB1YmxpYzogY2hhciAqIF9fdGhpc2NhbGwgaXN0cnN0cmVhbTo6c3RyKHZvaWQpDQorP3N0ckBpc3Ryc3RyZWFtQEBRQUVQQURYWg0KKzsgcHVibGljOiBjaGFyICogX190aGlzY2FsbCBvc3Ryc3RyZWFtOjpzdHIodm9pZCkNCis/c3RyQG9zdHJzdHJlYW1AQFFBRVBBRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIHN0cnN0cmVhbTo6c3RyKHZvaWQpDQorP3N0ckBzdHJzdHJlYW1AQFFBRVBBRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIHN0cnN0cmVhbWJ1Zjo6c3RyKHZvaWQpDQorP3N0ckBzdHJzdHJlYW1idWZAQFFBRVBBRFhaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50ICBpb3M6OnN1bmtfd2l0aF9zdGRpbw0KKz9zdW5rX3dpdGhfc3RkaW9AaW9zQEAwSEEgREFUQQ0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIGZpbGVidWY6OnN5bmModm9pZCkNCis/c3luY0BmaWxlYnVmQEBVQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgaXN0cmVhbTo6c3luYyh2b2lkKQ0KKz9zeW5jQGlzdHJlYW1AQFFBRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZGlvYnVmOjpzeW5jKHZvaWQpDQorP3N5bmNAc3RkaW9idWZAQFVBRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c3luYyh2b2lkKQ0KKz9zeW5jQHN0cmVhbWJ1ZkBAVUFFSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3Ryc3RyZWFtYnVmOjpzeW5jKHZvaWQpDQorP3N5bmNAc3Ryc3RyZWFtYnVmQEBVQUVIWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBpb3M6OnN5bmNfd2l0aF9zdGRpbyh2b2lkKQ0KKz9zeW5jX3dpdGhfc3RkaW9AaW9zQEBTQVhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgaXN0cmVhbTo6dGVsbGcodm9pZCkNCis/dGVsbGdAaXN0cmVhbUBAUUFFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBvc3RyZWFtOjp0ZWxscCh2b2lkKQ0KKz90ZWxscEBvc3RyZWFtQEBRQUVKWFoNCis7IHZvaWQgX19jZGVjbCB0ZXJtaW5hdGUodm9pZCkNCis/dGVybWluYXRlQEBZQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IGNvbnN0ICBmaWxlYnVmOjp0ZXh0DQorP3RleHRAZmlsZWJ1ZkBAMkhCIERBVEENCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAqIF9fdGhpc2NhbGwgaW9zOjp0aWUoY2xhc3Mgb3N0cmVhbSAqKQ0KKz90aWVAaW9zQEBRQUVQQVZvc3RyZWFtQEBQQVYyQEBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gKiBfX3RoaXNjYWxsIGlvczo6dGllKHZvaWQpY29uc3QgDQorP3RpZUBpb3NAQFFCRVBBVm9zdHJlYW1AQFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBzdHJlYW1idWY6OnVuYnVmZmVyZWQoaW50KQ0KKz91bmJ1ZmZlcmVkQHN0cmVhbWJ1ZkBASUFFWEhAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBzdHJlYW1idWY6OnVuYnVmZmVyZWQodm9pZCljb25zdCANCis/dW5idWZmZXJlZEBzdHJlYW1idWZAQElCRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIGZpbGVidWY6OnVuZGVyZmxvdyh2b2lkKQ0KKz91bmRlcmZsb3dAZmlsZWJ1ZkBAVUFFSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RkaW9idWY6OnVuZGVyZmxvdyh2b2lkKQ0KKz91bmRlcmZsb3dAc3RkaW9idWZAQFVBRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0cnN0cmVhbWJ1Zjo6dW5kZXJmbG93KHZvaWQpDQorP3VuZGVyZmxvd0BzdHJzdHJlYW1idWZAQFVBRUhYWg0KKzsgdm9pZCBfX2NkZWNsIHVuZXhwZWN0ZWQodm9pZCkNCis/dW5leHBlY3RlZEBAWUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGlvczo6dW5sb2NrKHZvaWQpDQorP3VubG9ja0Bpb3NAQFFBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjp1bmxvY2sodm9pZCkNCis/dW5sb2NrQHN0cmVhbWJ1ZkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBpb3M6OnVubG9ja2J1Zih2b2lkKQ0KKz91bmxvY2tidWZAaW9zQEBRQUFYWFoNCis7IHByb3RlY3RlZDogc3RhdGljIHZvaWQgX19jZGVjbCBpb3M6OnVubG9ja2Modm9pZCkNCis/dW5sb2NrY0Bpb3NAQEtBWFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBpb3M6OnVuc2V0Zihsb25nKQ0KKz91bnNldGZAaW9zQEBRQUVKSkBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlvczo6d2lkdGgoaW50KQ0KKz93aWR0aEBpb3NAQFFBRUhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgaW9zOjp3aWR0aCh2b2lkKWNvbnN0IA0KKz93aWR0aEBpb3NAQFFCRUhYWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjp3cml0ZShzaWduZWQgY2hhciBjb25zdCAqLGludCkNCis/d3JpdGVAb3N0cmVhbUBAUUFFQUFWMUBQQkNIQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6d3JpdGUoY2hhciBjb25zdCAqLGludCkNCis/d3JpdGVAb3N0cmVhbUBAUUFFQUFWMUBQQkRIQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6d3JpdGUodW5zaWduZWQgY2hhciBjb25zdCAqLGludCkNCis/d3JpdGVAb3N0cmVhbUBAUUFFQUFWMUBQQkVIQFoNCis7IHByaXZhdGU6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06OndyaXRlcGFkKGNoYXIgY29uc3QgKixjaGFyIGNvbnN0ICopDQorP3dyaXRlcGFkQG9zdHJlYW1AQEFBRUFBVjFAUEJEMEBaDQorOyBjbGFzcyBpc3RyZWFtICYgX19jZGVjbCB3cyhjbGFzcyBpc3RyZWFtICYpDQorP3dzQEBZQUFBVmlzdHJlYW1AQEFBVjFAQFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgIGlvczo6eF9jdXJpbmRleA0KKz94X2N1cmluZGV4QGlvc0BAMEhBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OICBpb3M6OnhfbG9ja2MNCis/eF9sb2NrY0Bpb3NAQDBVX1JUTF9DUklUSUNBTF9TRUNUSU9OQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBsb25nICBpb3M6OnhfbWF4Yml0DQorP3hfbWF4Yml0QGlvc0BAMEpBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBsb25nICogIGlvczo6eF9zdGF0ZWJ1Zg0KKz94X3N0YXRlYnVmQGlvc0BAMFFBSkEgREFUQQ0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgaW9zOjp4YWxsb2Modm9pZCkNCis/eGFsbG9jQGlvc0BAU0FIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdHJlYW1idWY6OnhzZ2V0bihjaGFyICosaW50KQ0KKz94c2dldG5Ac3RyZWFtYnVmQEBVQUVIUEFESEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjp4c3B1dG4oY2hhciBjb25zdCAqLGludCkNCis/eHNwdXRuQHN0cmVhbWJ1ZkBAVUFFSFBCREhAWg0KKyRJMTBfT1VUUFVUDQorX0NJYWNvcw0KK19DSWFzaW4NCitfQ0lhdGFuDQorX0NJYXRhbjINCitfQ0ljb3MNCitfQ0ljb3NoDQorX0NJZXhwDQorX0NJZm1vZA0KK19DSWxvZw0KK19DSWxvZzEwDQorX0NJcG93DQorX0NJc2luDQorX0NJc2luaA0KK19DSXNxcnQNCitfQ0l0YW4NCitfQ0l0YW5oDQorX0N4eFRocm93RXhjZXB0aW9uDQorX0hVR0UgREFUQQ0KK19YY3B0RmlsdGVyDQorX19DeHhGcmFtZUhhbmRsZXINCitfX0N4eExvbmdqbXBVbndpbmQNCitfX1NUUklOR1RPTEQNCitfX2FyZ2MgREFUQQ0KK19fYXJndiBEQVRBDQorX19kbGxvbmV4aXQNCitfX2Rvc2Vycm5vDQorX19mcGVjb2RlDQorX19nZXRtYWluYXJncw0KK19faW5pdGVudiBEQVRBDQorX19pc2FzY2lpDQorX19pc2NzeW0NCitfX2lzY3N5bWYNCitfX2xjb252X2luaXQNCitfX21iX2N1cl9tYXggREFUQQ0KK19fcF9fX2FyZ2MNCitfX3BfX19hcmd2DQorX19wX19faW5pdGVudg0KK19fcF9fX21iX2N1cl9tYXgNCitfX3BfX193YXJndg0KK19fcF9fX3dpbml0ZW52DQorX19wX19hY21kbG4NCitfX3BfX2FtYmxrc2l6DQorX19wX19jb21tb2RlDQorX19wX19kYXlsaWdodA0KK19fcF9fZW52aXJvbg0KK19fcF9fZm1vZGUNCitfX3BfX2lvYg0KK19fcF9fbWJjdHlwZQ0KK19fcF9fb3N2ZXINCitfX3BfX3BjdHlwZQ0KK19fcF9fcGdtcHRyDQorX19wX19wd2N0eXBlDQorX19wX190aW1lem9uZQ0KK19fcF9fdHpuYW1lDQorX19wX193Y21kbG4NCitfX3BfX3dlbnZpcm9uDQorX19wX193aW5tYWpvcg0KK19fcF9fd2lubWlub3INCitfX3BfX3dpbnZlcg0KK19fcF9fd3BnbXB0cg0KK19fcHhjcHRpbmZvcHRycw0KK19fdGhyZWFkaGFuZGxlDQorX190aHJlYWRpZA0KK19fdG9hc2NpaQ0KK19fd2FyZ3YgREFUQQ0KK19fd2dldG1haW5hcmdzDQorX193aW5pdGVudiBEQVRBDQorX2Fibm9ybWFsX3Rlcm1pbmF0aW9uDQorX2FjY2Vzcw0KK19hY21kbG4gREFUQQ0KK19hZGpfZmRpdl9tMTZpDQorX2Fkal9mZGl2X20zMg0KK19hZGpfZmRpdl9tMzJpDQorX2Fkal9mZGl2X202NA0KK19hZGpfZmRpdl9yDQorX2Fkal9mZGl2cl9tMTZpDQorX2Fkal9mZGl2cl9tMzINCitfYWRqX2ZkaXZyX20zMmkNCitfYWRqX2ZkaXZyX202NA0KK19hZGpfZnBhdGFuDQorX2Fkal9mcHJlbQ0KK19hZGpfZnByZW0xDQorX2Fkal9mcHRhbg0KK19hZGp1c3RfZmRpdiBEQVRBDQorX2FleGl0X3J0biBEQVRBDQorX2Ftc2dfZXhpdA0KK19hc3NlcnQNCitfYXRvZGJsDQorX2F0b2xkYmwNCitfYmVlcA0KK19iZWdpbnRocmVhZA0KK19iZWdpbnRocmVhZGV4DQorX2NfZXhpdA0KK19jYWJzDQorX2NleGl0DQorX2NnZXRzDQorX2NoZGlyDQorX2NoZHJpdmUNCitfY2hnc2lnbg0KK19jaG1vZA0KK19jaHNpemUNCitfY2xlYXJmcA0KK19jbG9zZQ0KK19jb21taXQNCitfY29tbW9kZSBEQVRBDQorX2NvbnRyb2w4Nw0KK19jb250cm9sZnANCitfY29weXNpZ24NCitfY3ByaW50Zg0KK19jcHV0cw0KK19jcmVhdA0KK19jc2NhbmYNCitfY3R5cGUgREFUQQ0KK19jd2FpdA0KK19kYXlsaWdodCBEQVRBDQorX2R1cA0KK19kdXAyDQorX2VjdnQNCitfZW5kdGhyZWFkDQorX2VuZHRocmVhZGV4DQorX2Vudmlyb24gREFUQQ0KK19lb2YNCitfZXJybm8NCitfZXhjZXB0X2hhbmRsZXIyDQorX2V4Y2VwdF9oYW5kbGVyMw0KK19leGVjbA0KK19leGVjbGUNCitfZXhlY2xwDQorX2V4ZWNscGUNCitfZXhlY3YNCitfZXhlY3ZlDQorX2V4ZWN2cA0KK19leGVjdnBlDQorX2V4aXQNCitfZXhwYW5kDQorX2ZjbG9zZWFsbA0KK19mY3Z0DQorX2Zkb3Blbg0KK19mZ2V0Y2hhcg0KK19mZ2V0d2NoYXINCitfZmlsYnVmDQorX2ZpbGVpbmZvIERBVEENCitfZmlsZWxlbmd0aA0KK19maWxlbm8NCitfZmluZGNsb3NlDQorX2ZpbmRmaXJzdA0KK19maW5kbmV4dA0KK19maW5pdGUNCitfZmxzYnVmDQorX2ZsdXNoYWxsDQorX2Ztb2RlIERBVEENCitfZnBjbGFzcw0KK19mcGllZWVfZmx0DQorX2ZwcmVzZXQNCitfZnB1dGNoYXINCitfZnB1dHdjaGFyDQorX2Zzb3Blbg0KK19mc3RhdA0KK19mdGltZQ0KK19mdG9sDQorX2Z1bGxwYXRoDQorX2Z1dGltZQ0KK19nY3Z0DQorX2dldF9vc2ZoYW5kbGUNCitfZ2V0Y2gNCitfZ2V0Y2hlDQorX2dldGN3ZA0KK19nZXRkY3dkDQorX2dldGRpc2tmcmVlDQorX2dldGRsbHByb2NhZGRyDQorX2dldGRyaXZlDQorX2dldGRyaXZlcw0KK19nZXRtYmNwDQorX2dldHBpZA0KK19nZXRzeXN0aW1lDQorX2dldHcNCitfZ2V0d3MNCitfZ2xvYmFsX3Vud2luZDINCitfaGVhcGFkZA0KK19oZWFwY2hrDQorX2hlYXBtaW4NCitfaGVhcHNldA0KK19oZWFwdXNlZA0KK19oZWFwd2Fsaw0KK19oeXBvdA0KK19pbml0dGVybQ0KK19pb2IgREFUQQ0KK19pc2F0dHkNCitfaXNjdHlwZQ0KK19pc21iYmFsbnVtDQorX2lzbWJiYWxwaGENCitfaXNtYmJncmFwaA0KK19pc21iYmthbG51bQ0KK19pc21iYmthbmENCitfaXNtYmJrcHJpbnQNCitfaXNtYmJrcHVuY3QNCitfaXNtYmJsZWFkDQorX2lzbWJicHJpbnQNCitfaXNtYmJwdW5jdA0KK19pc21iYnRyYWlsDQorX2lzbWJjYWxudW0NCitfaXNtYmNhbHBoYQ0KK19pc21iY2RpZ2l0DQorX2lzbWJjZ3JhcGgNCitfaXNtYmNoaXJhDQorX2lzbWJja2F0YQ0KK19pc21iY2wwDQorX2lzbWJjbDENCitfaXNtYmNsMg0KK19pc21iY2xlZ2FsDQorX2lzbWJjbG93ZXINCitfaXNtYmNwcmludA0KK19pc21iY3B1bmN0DQorX2lzbWJjc3BhY2UNCitfaXNtYmNzeW1ib2wNCitfaXNtYmN1cHBlcg0KK19pc21ic2xlYWQNCitfaXNtYnN0cmFpbA0KK19pc25hbg0KK19pdG9hDQorX2l0b3cNCitfajANCitfajENCitfam4NCitfa2JoaXQNCitfbGZpbmQNCitfbG9hZGRsbA0KK19sb2NhbF91bndpbmQyDQorX2xvY2tpbmcNCitfbG9nYg0KK19sb25nam1wZXgNCitfbHJvdGwNCitfbHJvdHINCitfbHNlYXJjaA0KK19sc2Vlaw0KK19sdG9hDQorX2x0b3cNCitfbWFrZXBhdGgNCitfbWF0aGVycg0KK19tYmJ0b21iYw0KK19tYmJ0eXBlDQorX21iY2NweQ0KK19tYmNqaXN0b2ptcw0KK19tYmNqbXN0b2ppcw0KK19tYmNsZW4NCitfbWJjdG9oaXJhDQorX21iY3Rva2F0YQ0KK19tYmN0b2xvd2VyDQorX21iY3RvbWJiDQorX21iY3RvdXBwZXINCitfbWJjdHlwZSBEQVRBDQorX21ic2J0eXBlDQorX21ic2NhdA0KK19tYnNjaHINCitfbWJzY21wDQorX21ic2NvbGwNCitfbWJzY3B5DQorX21ic2NzcG4NCitfbWJzZGVjDQorX21ic2R1cA0KK19tYnNpY21wDQorX21ic2ljb2xsDQorX21ic2luYw0KK19tYnNsZW4NCitfbWJzbHdyDQorX21ic25iY2F0DQorX21ic25iY21wDQorX21ic25iY250DQorX21ic25iY29sbA0KK19tYnNuYmNweQ0KK19tYnNuYmljbXANCitfbWJzbmJpY29sbA0KK19tYnNuYnNldA0KK19tYnNuY2F0DQorX21ic25jY250DQorX21ic25jbXANCitfbWJzbmNvbGwNCitfbWJzbmNweQ0KK19tYnNuZXh0Yw0KK19tYnNuaWNtcA0KK19tYnNuaWNvbGwNCitfbWJzbmluYw0KK19tYnNuc2V0DQorX21ic3BicmsNCitfbWJzcmNocg0KK19tYnNyZXYNCitfbWJzc2V0DQorX21ic3Nwbg0KK19tYnNzcG5wDQorX21ic3N0cg0KK19tYnN0b2sNCitfbWJzdHJsZW4NCitfbWJzdXByDQorX21lbWNjcHkNCitfbWVtaWNtcA0KK19ta2Rpcg0KK19ta3RlbXANCitfbXNpemUNCitfbXRsb2NrDQorX210dW5sb2NrDQorX25leHRhZnRlcg0KK19vbmV4aXQNCitfb3Blbg0KK19vcGVuX29zZmhhbmRsZQ0KK19vc3ZlciBEQVRBDQorX3BjbG9zZQ0KK19wY3R5cGUgREFUQQ0KK19wZ21wdHIgREFUQQ0KK19waXBlDQorX3BvcGVuDQorX3B1cmVjYWxsDQorX3B1dGNoDQorX3B1dGVudg0KK19wdXR3DQorX3B1dHdzDQorX3B3Y3R5cGUgREFUQQ0KK19yZWFkDQorX3JtZGlyDQorX3JtdG1wDQorX3JvdGwNCitfcm90cg0KK19zYWZlX2ZkaXYNCitfc2FmZV9mZGl2cg0KK19zYWZlX2ZwcmVtDQorX3NhZmVfZnByZW0xDQorX3NjYWxiDQorX3NlYXJjaGVudg0KK19fc2VoX2xvbmdqbXBfdW53aW5kQDQNCitfc2V0ZXJyb3Jtb2RlDQorX3NldGptcA0KK19zZXRqbXAzDQorX3NldG1iY3ANCitfc2V0bW9kZQ0KK19zZXRzeXN0aW1lDQorX3NsZWVwDQorX3NucHJpbnRmDQorX3Nud3ByaW50Zg0KK19zb3Blbg0KK19zcGF3bmwNCitfc3Bhd25sZQ0KK19zcGF3bmxwDQorX3NwYXdubHBlDQorX3NwYXdudg0KK19zcGF3bnZlDQorX3NwYXdudnANCitfc3Bhd252cGUNCitfc3BsaXRwYXRoDQorX3N0YXQNCitfc3RhdHVzZnANCitfc3RyY21waQ0KK19zdHJkYXRlDQorX3N0cmR1cA0KK19zdHJlcnJvcg0KK19zdHJpY21wDQorX3N0cmljb2xsDQorX3N0cmx3cg0KK19zdHJuY29sbA0KK19zdHJuaWNtcA0KK19zdHJuaWNvbGwNCitfc3RybnNldA0KK19zdHJyZXYNCitfc3Ryc2V0DQorX3N0cnRpbWUNCitfc3RydXByDQorX3N3YWINCitfc3lzX2Vycmxpc3QgREFUQQ0KK19zeXNfbmVyciBEQVRBDQorX3RjY3B5DQorX3RjbGVuDQorX3Rjc2Nocg0KK190Y3NjbGVuDQorX3Rjc2NtcA0KK190Y3Njc3BuDQorX3Rjc2RlYw0KK190Y3NpY21wDQorX3Rjc2luYw0KK190Y3Nsd3INCitfdGNzbmJjbnQNCitfdGNzbmNhdA0KK190Y3NuY2NhdA0KK190Y3NuY2NtcA0KK190Y3NuY2NudA0KK190Y3NuY2NweQ0KK190Y3NuY2ljbXANCitfdGNzbmNtcA0KK190Y3NuY3B5DQorX3Rjc25jc2V0DQorX3Rjc25leHRjDQorX3Rjc25pY21wDQorX3Rjc25pbmMNCitfdGNzbnNldA0KK190Y3NwYnJrDQorX3Rjc3JjaHINCitfdGNzcmV2DQorX3Rjc3NldA0KK190Y3NzcG4NCitfdGNzc3BucA0KK190Y3NzdHINCitfdGNzdG9rDQorX3Rjc3Vwcg0KK190ZWxsDQorX3RlbXBuYW0NCitfdGltZXpvbmUgREFUQQ0KK190b2xvd2VyDQorX3RvdXBwZXINCitfdHpuYW1lIERBVEENCitfdHpzZXQNCitfdWx0b2ENCitfdWx0b3cNCitfdW1hc2sNCitfdW5nZXRjaA0KK191bmxpbmsNCitfdW5sb2FkZGxsDQorX3V0aW1lDQorX3ZzbnByaW50Zg0KK192c253cHJpbnRmDQorX3dhY2Nlc3MNCitfd2FzY3RpbWUNCitfd2NoZGlyDQorX3djaG1vZA0KK193Y21kbG4gREFUQQ0KK193Y3JlYXQNCitfd2NzZHVwDQorX3djc2ljbXANCitfd2NzaWNvbGwNCitfd2NzbHdyDQorX3djc25jb2xsDQorX3djc25pY21wDQorX3djc25pY29sbA0KK193Y3Nuc2V0DQorX3djc3Jldg0KK193Y3NzZXQNCitfd2NzdXByDQorX3djdGltZQ0KK193ZW52aXJvbiBEQVRBDQorX3dleGVjbA0KK193ZXhlY2xlDQorX3dleGVjbHANCitfd2V4ZWNscGUNCitfd2V4ZWN2DQorX3dleGVjdmUNCitfd2V4ZWN2cA0KK193ZXhlY3ZwZQ0KK193ZmRvcGVuDQorX3dmaW5kZmlyc3QNCitfd2ZpbmRuZXh0DQorX3dmb3Blbg0KK193ZnJlb3Blbg0KK193ZnNvcGVuDQorX3dmdWxscGF0aA0KK193Z2V0Y3dkDQorX3dnZXRkY3dkDQorX3dnZXRlbnYNCitfd2lubWFqb3IgREFUQQ0KK193aW5taW5vciBEQVRBDQorX3dpbnZlciBEQVRBDQorX3dtYWtlcGF0aA0KK193bWtkaXINCitfd21rdGVtcA0KK193b3Blbg0KK193cGVycm9yDQorX3dwZ21wdHIgREFUQQ0KK193cG9wZW4NCitfd3B1dGVudg0KK193cmVtb3ZlDQorX3dyZW5hbWUNCitfd3JpdGUNCitfd3JtZGlyDQorX3dzZWFyY2hlbnYNCitfd3NldGxvY2FsZQ0KK193c29wZW4NCitfd3NwYXdubA0KK193c3Bhd25sZQ0KK193c3Bhd25scA0KK193c3Bhd25scGUNCitfd3NwYXdudg0KK193c3Bhd252ZQ0KK193c3Bhd252cA0KK193c3Bhd252cGUNCitfd3NwbGl0cGF0aA0KK193c3RhdA0KK193c3RyZGF0ZQ0KK193c3RydGltZQ0KK193c3lzdGVtDQorX3d0ZW1wbmFtDQorX3d0bXBuYW0NCitfd3RvaQ0KK193dG9sDQorX3d1bmxpbmsNCitfd3V0aW1lDQorX3kwDQorX3kxDQorX3luDQorYWJvcnQNCithYnMNCithY29zDQorYXNjdGltZQ0KK2FzaW4NCithdGFuDQorYXRhbjINCithdGV4aXQNCithdG9mDQorYXRvaQ0KK2F0b2wNCitic2VhcmNoDQorY2FsbG9jDQorY2VpbA0KK2NsZWFyZXJyDQorY2xvY2sNCitjb3MNCitjb3NoDQorY3RpbWUNCitkaWZmdGltZQ0KK2Rpdg0KK2V4aXQNCitleHANCitmYWJzDQorZmNsb3NlDQorZmVvZg0KK2ZlcnJvcg0KK2ZmbHVzaA0KK2ZnZXRjDQorZmdldHBvcw0KK2ZnZXRzDQorZmdldHdjDQorZmdldHdzDQorZmxvb3INCitmbW9kDQorZm9wZW4NCitmcHJpbnRmDQorZnB1dGMNCitmcHV0cw0KK2ZwdXR3Yw0KK2ZwdXR3cw0KK2ZyZWFkDQorZnJlZQ0KK2ZyZW9wZW4NCitmcmV4cA0KK2ZzY2FuZg0KK2ZzZWVrDQorZnNldHBvcw0KK2Z0ZWxsDQorZndwcmludGYNCitmd3JpdGUNCitmd3NjYW5mDQorZ2V0Yw0KK2dldGNoYXINCitnZXRlbnYNCitnZXRzDQorZ2V0d2MNCitnZXR3Y2hhcg0KK2dtdGltZQ0KK2lzX3djdHlwZQ0KK2lzYWxudW0NCitpc2FscGhhDQoraXNjbnRybA0KK2lzZGlnaXQNCitpc2dyYXBoDQoraXNsZWFkYnl0ZQ0KK2lzbG93ZXINCitpc3ByaW50DQoraXNwdW5jdA0KK2lzc3BhY2UNCitpc3VwcGVyDQoraXN3YWxudW0NCitpc3dhbHBoYQ0KK2lzd2FzY2lpDQoraXN3Y250cmwNCitpc3djdHlwZQ0KK2lzd2RpZ2l0DQoraXN3Z3JhcGgNCitpc3dsb3dlcg0KK2lzd3ByaW50DQoraXN3cHVuY3QNCitpc3dzcGFjZQ0KK2lzd3VwcGVyDQoraXN3eGRpZ2l0DQoraXN4ZGlnaXQNCitsYWJzDQorbGRleHANCitsZGl2DQorbG9jYWxlY29udg0KK2xvY2FsdGltZQ0KK2xvZw0KK2xvZzEwDQorbG9uZ2ptcA0KK21hbGxvYw0KK21ibGVuDQorbWJzdG93Y3MNCittYnRvd2MNCittZW1jaHINCittZW1jbXANCittZW1jcHkNCittZW1tb3ZlDQorbWVtc2V0DQorbWt0aW1lDQorbW9kZg0KK3BlcnJvcg0KK3Bvdw0KK3ByaW50Zg0KK3B1dGMNCitwdXRjaGFyDQorcHV0cw0KK3B1dHdjDQorcHV0d2NoYXINCitxc29ydA0KK3JhaXNlDQorcmFuZA0KK3JlYWxsb2MNCityZW1vdmUNCityZW5hbWUNCityZXdpbmQNCitzY2FuZg0KK3NldGJ1Zg0KK3NldGxvY2FsZQ0KK3NldHZidWYNCitzaWduYWwNCitzaW4NCitzaW5oDQorc3ByaW50Zg0KK3NxcnQNCitzcmFuZA0KK3NzY2FuZg0KK3N0cmNhdA0KK3N0cmNocg0KK3N0cmNtcA0KK3N0cmNvbGwNCitzdHJjcHkNCitzdHJjc3BuDQorc3RyZXJyb3INCitzdHJmdGltZQ0KK3N0cmxlbg0KK3N0cm5jYXQNCitzdHJuY21wDQorc3RybmNweQ0KK3N0cnBicmsNCitzdHJyY2hyDQorc3Ryc3BuDQorc3Ryc3RyDQorc3RydG9kDQorc3RydG9rDQorc3RydG9sDQorc3RydG91bA0KK3N0cnhmcm0NCitzd3ByaW50Zg0KK3N3c2NhbmYNCitzeXN0ZW0NCit0YW4NCit0YW5oDQordGltZQ0KK3RtcGZpbGUNCit0bXBuYW0NCit0b2xvd2VyDQordG91cHBlcg0KK3Rvd2xvd2VyDQordG93dXBwZXINCit1bmdldGMNCit1bmdldHdjDQordmZwcmludGYNCit2ZndwcmludGYNCit2cHJpbnRmDQordnNwcmludGYNCit2c3dwcmludGYNCit2d3ByaW50Zg0KK3djc2NhdA0KK3djc2Nocg0KK3djc2NtcA0KK3djc2NvbGwNCit3Y3NjcHkNCit3Y3Njc3BuDQord2NzZnRpbWUNCit3Y3NsZW4NCit3Y3NuY2F0DQord2NzbmNtcA0KK3djc25jcHkNCit3Y3NwYnJrDQord2NzcmNocg0KK3djc3Nwbg0KK3djc3N0cg0KK3djc3RvZA0KK3djc3Rvaw0KK3djc3RvbA0KK3djc3RvbWJzDQord2NzdG91bA0KK3djc3hmcm0NCit3Y3RvbWINCit3cHJpbnRmDQord3NjYW5mDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zdmNydDQwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3ZjcnQ0MC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjAzNWRmMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3ZjcnQ0MC5kZWYKQEAgLTAsMCArMSwxNjU1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TVkNSVDQwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU1ZDUlQ0MC5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSW9zdHJlYW1faW5pdDo6SW9zdHJlYW1faW5pdChjbGFzcyBpb3MgJixpbnQpDQorPz8wSW9zdHJlYW1faW5pdEBAUUFFQEFBVmlvc0BASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSW9zdHJlYW1faW5pdDo6SW9zdHJlYW1faW5pdCh2b2lkKQ0KKz8/MElvc3RyZWFtX2luaXRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIF9fbm9uX3J0dGlfb2JqZWN0OjpfX25vbl9ydHRpX29iamVjdChjbGFzcyBfX25vbl9ydHRpX29iamVjdCBjb25zdCAmKQ0KKz8/MF9fbm9uX3J0dGlfb2JqZWN0QEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIF9fbm9uX3J0dGlfb2JqZWN0OjpfX25vbl9ydHRpX29iamVjdChjaGFyIGNvbnN0ICopDQorPz8wX19ub25fcnR0aV9vYmplY3RAQFFBRUBQQkRAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGJhZF9jYXN0OjpiYWRfY2FzdChjaGFyIGNvbnN0ICogY29uc3QgJikNCis/PzBiYWRfY2FzdEBAUUFFQEFCUUJEQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBiYWRfY2FzdDo6YmFkX2Nhc3QoY2xhc3MgYmFkX2Nhc3QgY29uc3QgJikNCis/PzBiYWRfY2FzdEBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBiYWRfdHlwZWlkOjpiYWRfdHlwZWlkKGNsYXNzIGJhZF90eXBlaWQgY29uc3QgJikNCis/PzBiYWRfdHlwZWlkQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGJhZF90eXBlaWQ6OmJhZF90eXBlaWQoY2hhciBjb25zdCAqKQ0KKz8/MGJhZF90eXBlaWRAQFFBRUBQQkRAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGV4Y2VwdGlvbjo6ZXhjZXB0aW9uKGNoYXIgY29uc3QgKiBjb25zdCAmKQ0KKz8/MGV4Y2VwdGlvbkBAUUFFQEFCUUJEQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBleGNlcHRpb246OmV4Y2VwdGlvbihjbGFzcyBleGNlcHRpb24gY29uc3QgJikNCis/PzBleGNlcHRpb25AQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgZXhjZXB0aW9uOjpleGNlcHRpb24odm9pZCkNCis/PzBleGNlcHRpb25AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGZpbGVidWY6OmZpbGVidWYoY2xhc3MgZmlsZWJ1ZiBjb25zdCAmKQ0KKz8/MGZpbGVidWZAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgZmlsZWJ1Zjo6ZmlsZWJ1ZihpbnQpDQorPz8wZmlsZWJ1ZkBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGZpbGVidWY6OmZpbGVidWYoaW50LGNoYXIgKixpbnQpDQorPz8wZmlsZWJ1ZkBAUUFFQEhQQURIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBmaWxlYnVmOjpmaWxlYnVmKHZvaWQpDQorPz8wZmlsZWJ1ZkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgZnN0cmVhbTo6ZnN0cmVhbShjbGFzcyBmc3RyZWFtIGNvbnN0ICYpDQorPz8wZnN0cmVhbUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBmc3RyZWFtOjpmc3RyZWFtKGludCkNCis/PzBmc3RyZWFtQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgZnN0cmVhbTo6ZnN0cmVhbShpbnQsY2hhciAqLGludCkNCis/PzBmc3RyZWFtQEBRQUVASFBBREhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGZzdHJlYW06OmZzdHJlYW0oY2hhciBjb25zdCAqLGludCxpbnQpDQorPz8wZnN0cmVhbUBAUUFFQFBCREhIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBmc3RyZWFtOjpmc3RyZWFtKHZvaWQpDQorPz8wZnN0cmVhbUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaWZzdHJlYW06Omlmc3RyZWFtKGNsYXNzIGlmc3RyZWFtIGNvbnN0ICYpDQorPz8waWZzdHJlYW1AQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaWZzdHJlYW06Omlmc3RyZWFtKGludCkNCis/PzBpZnN0cmVhbUBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGlmc3RyZWFtOjppZnN0cmVhbShpbnQsY2hhciAqLGludCkNCis/PzBpZnN0cmVhbUBAUUFFQEhQQURIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBpZnN0cmVhbTo6aWZzdHJlYW0oY2hhciBjb25zdCAqLGludCxpbnQpDQorPz8waWZzdHJlYW1AQFFBRUBQQkRISEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaWZzdHJlYW06Omlmc3RyZWFtKHZvaWQpDQorPz8waWZzdHJlYW1AQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIGlvczo6aW9zKGNsYXNzIGlvcyBjb25zdCAmKQ0KKz8/MGlvc0BASUFFQEFCVjBAQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBpb3M6Omlvcyh2b2lkKQ0KKz8/MGlvc0BASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaW9zOjppb3MoY2xhc3Mgc3RyZWFtYnVmICopDQorPz8waW9zQEBRQUVAUEFWc3RyZWFtYnVmQEBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIGlvc3RyZWFtOjppb3N0cmVhbShjbGFzcyBpb3N0cmVhbSBjb25zdCAmKQ0KKz8/MGlvc3RyZWFtQEBJQUVAQUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIGlvc3RyZWFtOjppb3N0cmVhbSh2b2lkKQ0KKz8/MGlvc3RyZWFtQEBJQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBpb3N0cmVhbTo6aW9zdHJlYW0oY2xhc3Mgc3RyZWFtYnVmICopDQorPz8waW9zdHJlYW1AQFFBRUBQQVZzdHJlYW1idWZAQEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgaXN0cmVhbTo6aXN0cmVhbShjbGFzcyBpc3RyZWFtIGNvbnN0ICYpDQorPz8waXN0cmVhbUBASUFFQEFCVjBAQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBpc3RyZWFtOjppc3RyZWFtKHZvaWQpDQorPz8waXN0cmVhbUBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaXN0cmVhbTo6aXN0cmVhbShjbGFzcyBzdHJlYW1idWYgKikNCis/PzBpc3RyZWFtQEBRQUVAUEFWc3RyZWFtYnVmQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGlzdHJlYW1fd2l0aGFzc2lnbjo6aXN0cmVhbV93aXRoYXNzaWduKGNsYXNzIGlzdHJlYW1fd2l0aGFzc2lnbiBjb25zdCAmKQ0KKz8/MGlzdHJlYW1fd2l0aGFzc2lnbkBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBpc3RyZWFtX3dpdGhhc3NpZ246OmlzdHJlYW1fd2l0aGFzc2lnbihjbGFzcyBzdHJlYW1idWYgKikNCis/PzBpc3RyZWFtX3dpdGhhc3NpZ25AQFFBRUBQQVZzdHJlYW1idWZAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaXN0cmVhbV93aXRoYXNzaWduOjppc3RyZWFtX3dpdGhhc3NpZ24odm9pZCkNCis/PzBpc3RyZWFtX3dpdGhhc3NpZ25AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGlzdHJzdHJlYW06OmlzdHJzdHJlYW0oY2xhc3MgaXN0cnN0cmVhbSBjb25zdCAmKQ0KKz8/MGlzdHJzdHJlYW1AQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaXN0cnN0cmVhbTo6aXN0cnN0cmVhbShjaGFyICopDQorPz8waXN0cnN0cmVhbUBAUUFFQFBBREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgaXN0cnN0cmVhbTo6aXN0cnN0cmVhbShjaGFyICosaW50KQ0KKz8/MGlzdHJzdHJlYW1AQFFBRUBQQURIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBsb2dpY19lcnJvcjo6bG9naWNfZXJyb3IoY2hhciBjb25zdCAqIGNvbnN0ICYpDQorPz8wbG9naWNfZXJyb3JAQFFBRUBBQlFCREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgbG9naWNfZXJyb3I6OmxvZ2ljX2Vycm9yKGNsYXNzIGxvZ2ljX2Vycm9yIGNvbnN0ICYpDQorPz8wbG9naWNfZXJyb3JAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgb2ZzdHJlYW06Om9mc3RyZWFtKGNsYXNzIG9mc3RyZWFtIGNvbnN0ICYpDQorPz8wb2ZzdHJlYW1AQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgb2ZzdHJlYW06Om9mc3RyZWFtKGludCkNCis/PzBvZnN0cmVhbUBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIG9mc3RyZWFtOjpvZnN0cmVhbShpbnQsY2hhciAqLGludCkNCis/PzBvZnN0cmVhbUBAUUFFQEhQQURIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBvZnN0cmVhbTo6b2ZzdHJlYW0oY2hhciBjb25zdCAqLGludCxpbnQpDQorPz8wb2ZzdHJlYW1AQFFBRUBQQkRISEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgb2ZzdHJlYW06Om9mc3RyZWFtKHZvaWQpDQorPz8wb2ZzdHJlYW1AQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIG9zdHJlYW06Om9zdHJlYW0oY2xhc3Mgb3N0cmVhbSBjb25zdCAmKQ0KKz8/MG9zdHJlYW1AQElBRUBBQlYwQEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgb3N0cmVhbTo6b3N0cmVhbSh2b2lkKQ0KKz8/MG9zdHJlYW1AQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIG9zdHJlYW06Om9zdHJlYW0oY2xhc3Mgc3RyZWFtYnVmICopDQorPz8wb3N0cmVhbUBAUUFFQFBBVnN0cmVhbWJ1ZkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBvc3RyZWFtX3dpdGhhc3NpZ246Om9zdHJlYW1fd2l0aGFzc2lnbihjbGFzcyBvc3RyZWFtX3dpdGhhc3NpZ24gY29uc3QgJikNCis/PzBvc3RyZWFtX3dpdGhhc3NpZ25AQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgb3N0cmVhbV93aXRoYXNzaWduOjpvc3RyZWFtX3dpdGhhc3NpZ24oY2xhc3Mgc3RyZWFtYnVmICopDQorPz8wb3N0cmVhbV93aXRoYXNzaWduQEBRQUVAUEFWc3RyZWFtYnVmQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIG9zdHJlYW1fd2l0aGFzc2lnbjo6b3N0cmVhbV93aXRoYXNzaWduKHZvaWQpDQorPz8wb3N0cmVhbV93aXRoYXNzaWduQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBvc3Ryc3RyZWFtOjpvc3Ryc3RyZWFtKGNsYXNzIG9zdHJzdHJlYW0gY29uc3QgJikNCis/PzBvc3Ryc3RyZWFtQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIG9zdHJzdHJlYW06Om9zdHJzdHJlYW0oY2hhciAqLGludCxpbnQpDQorPz8wb3N0cnN0cmVhbUBAUUFFQFBBREhIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBvc3Ryc3RyZWFtOjpvc3Ryc3RyZWFtKHZvaWQpDQorPz8wb3N0cnN0cmVhbUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkaW9idWY6OnN0ZGlvYnVmKGNsYXNzIHN0ZGlvYnVmIGNvbnN0ICYpDQorPz8wc3RkaW9idWZAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3RkaW9idWY6OnN0ZGlvYnVmKHN0cnVjdCBfaW9idWYgKikNCis/PzBzdGRpb2J1ZkBAUUFFQFBBVV9pb2J1ZkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGRpb3N0cmVhbTo6c3RkaW9zdHJlYW0oY2xhc3Mgc3RkaW9zdHJlYW0gY29uc3QgJikNCis/PzBzdGRpb3N0cmVhbUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdGRpb3N0cmVhbTo6c3RkaW9zdHJlYW0oc3RydWN0IF9pb2J1ZiAqKQ0KKz8/MHN0ZGlvc3RyZWFtQEBRQUVAUEFVX2lvYnVmQEBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c3RyZWFtYnVmKGNoYXIgKixpbnQpDQorPz8wc3RyZWFtYnVmQEBJQUVAUEFESEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzdHJlYW1idWYodm9pZCkNCis/PzBzdHJlYW1idWZAQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c3RyZWFtYnVmKGNsYXNzIHN0cmVhbWJ1ZiBjb25zdCAmKQ0KKz8/MHN0cmVhbWJ1ZkBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdHJzdHJlYW06OnN0cnN0cmVhbShjbGFzcyBzdHJzdHJlYW0gY29uc3QgJikNCis/PzBzdHJzdHJlYW1AQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3Ryc3RyZWFtOjpzdHJzdHJlYW0oY2hhciAqLGludCxpbnQpDQorPz8wc3Ryc3RyZWFtQEBRQUVAUEFESEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0cnN0cmVhbTo6c3Ryc3RyZWFtKHZvaWQpDQorPz8wc3Ryc3RyZWFtQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBzdHJzdHJlYW1idWY6OnN0cnN0cmVhbWJ1ZihjbGFzcyBzdHJzdHJlYW1idWYgY29uc3QgJikNCis/PzBzdHJzdHJlYW1idWZAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3Ryc3RyZWFtYnVmOjpzdHJzdHJlYW1idWYoaW50KQ0KKz8/MHN0cnN0cmVhbWJ1ZkBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0cnN0cmVhbWJ1Zjo6c3Ryc3RyZWFtYnVmKHZvaWQgKiAoX19jZGVjbCopKGxvbmcpLHZvaWQgKF9fY2RlY2wqKSh2b2lkICopKQ0KKz8/MHN0cnN0cmVhbWJ1ZkBAUUFFQFA2QVBBWEpAWlA2QVhQQVhAWkBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgc3Ryc3RyZWFtYnVmOjpzdHJzdHJlYW1idWYoY2hhciAqLGludCxjaGFyICopDQorPz8wc3Ryc3RyZWFtYnVmQEBRQUVAUEFESDBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIHN0cnN0cmVhbWJ1Zjo6c3Ryc3RyZWFtYnVmKHZvaWQpDQorPz8wc3Ryc3RyZWFtYnVmQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBJb3N0cmVhbV9pbml0Ojp+SW9zdHJlYW1faW5pdCh2b2lkKQ0KKz8/MUlvc3RyZWFtX2luaXRAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgX19ub25fcnR0aV9vYmplY3Q6On5fX25vbl9ydHRpX29iamVjdCh2b2lkKQ0KKz8/MV9fbm9uX3J0dGlfb2JqZWN0QEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIGJhZF9jYXN0Ojp+YmFkX2Nhc3Qodm9pZCkNCis/PzFiYWRfY2FzdEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBiYWRfdHlwZWlkOjp+YmFkX3R5cGVpZCh2b2lkKQ0KKz8/MWJhZF90eXBlaWRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgZXhjZXB0aW9uOjp+ZXhjZXB0aW9uKHZvaWQpDQorPz8xZXhjZXB0aW9uQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIGZpbGVidWY6On5maWxlYnVmKHZvaWQpDQorPz8xZmlsZWJ1ZkBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBmc3RyZWFtOjp+ZnN0cmVhbSh2b2lkKQ0KKz8/MWZzdHJlYW1AQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgaWZzdHJlYW06On5pZnN0cmVhbSh2b2lkKQ0KKz8/MWlmc3RyZWFtQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIGlvczo6fmlvcyh2b2lkKQ0KKz8/MWlvc0BAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBpb3N0cmVhbTo6fmlvc3RyZWFtKHZvaWQpDQorPz8xaW9zdHJlYW1AQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgaXN0cmVhbTo6fmlzdHJlYW0odm9pZCkNCis/PzFpc3RyZWFtQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIGlzdHJlYW1fd2l0aGFzc2lnbjo6fmlzdHJlYW1fd2l0aGFzc2lnbih2b2lkKQ0KKz8/MWlzdHJlYW1fd2l0aGFzc2lnbkBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBpc3Ryc3RyZWFtOjp+aXN0cnN0cmVhbSh2b2lkKQ0KKz8/MWlzdHJzdHJlYW1AQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgbG9naWNfZXJyb3I6On5sb2dpY19lcnJvcih2b2lkKQ0KKz8/MWxvZ2ljX2Vycm9yQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIG9mc3RyZWFtOjp+b2ZzdHJlYW0odm9pZCkNCis/PzFvZnN0cmVhbUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBvc3RyZWFtOjp+b3N0cmVhbSh2b2lkKQ0KKz8/MW9zdHJlYW1AQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgb3N0cmVhbV93aXRoYXNzaWduOjp+b3N0cmVhbV93aXRoYXNzaWduKHZvaWQpDQorPz8xb3N0cmVhbV93aXRoYXNzaWduQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIG9zdHJzdHJlYW06On5vc3Ryc3RyZWFtKHZvaWQpDQorPz8xb3N0cnN0cmVhbUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdGRpb2J1Zjo6fnN0ZGlvYnVmKHZvaWQpDQorPz8xc3RkaW9idWZAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3RkaW9zdHJlYW06On5zdGRpb3N0cmVhbSh2b2lkKQ0KKz8/MXN0ZGlvc3RyZWFtQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6fnN0cmVhbWJ1Zih2b2lkKQ0KKz8/MXN0cmVhbWJ1ZkBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBzdHJzdHJlYW06On5zdHJzdHJlYW0odm9pZCkNCis/PzFzdHJzdHJlYW1AQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgc3Ryc3RyZWFtYnVmOjp+c3Ryc3RyZWFtYnVmKHZvaWQpDQorPz8xc3Ryc3RyZWFtYnVmQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIHR5cGVfaW5mbzo6fnR5cGVfaW5mbyh2b2lkKQ0KKz8/MXR5cGVfaW5mb0BAVUFFQFhaDQorOyB2b2lkICogX19jZGVjbCBvcGVyYXRvciBuZXcodW5zaWduZWQgaW50KQ0KKz8/MkBZQVBBWElAWg0KKzsgdm9pZCBfX2NkZWNsIG9wZXJhdG9yIGRlbGV0ZSh2b2lkICopDQorPz8zQFlBWFBBWEBaDQorOyBwdWJsaWM6IGNsYXNzIElvc3RyZWFtX2luaXQgJiBfX3RoaXNjYWxsIElvc3RyZWFtX2luaXQ6Om9wZXJhdG9yPShjbGFzcyBJb3N0cmVhbV9pbml0IGNvbnN0ICYpDQorPz80SW9zdHJlYW1faW5pdEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIF9fbm9uX3J0dGlfb2JqZWN0ICYgX190aGlzY2FsbCBfX25vbl9ydHRpX29iamVjdDo6b3BlcmF0b3I9KGNsYXNzIF9fbm9uX3J0dGlfb2JqZWN0IGNvbnN0ICYpDQorPz80X19ub25fcnR0aV9vYmplY3RAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBiYWRfY2FzdCAmIF9fdGhpc2NhbGwgYmFkX2Nhc3Q6Om9wZXJhdG9yPShjbGFzcyBiYWRfY2FzdCBjb25zdCAmKQ0KKz8/NGJhZF9jYXN0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgYmFkX3R5cGVpZCAmIF9fdGhpc2NhbGwgYmFkX3R5cGVpZDo6b3BlcmF0b3I9KGNsYXNzIGJhZF90eXBlaWQgY29uc3QgJikNCis/PzRiYWRfdHlwZWlkQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgZXhjZXB0aW9uICYgX190aGlzY2FsbCBleGNlcHRpb246Om9wZXJhdG9yPShjbGFzcyBleGNlcHRpb24gY29uc3QgJikNCis/PzRleGNlcHRpb25AQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBmaWxlYnVmICYgX190aGlzY2FsbCBmaWxlYnVmOjpvcGVyYXRvcj0oY2xhc3MgZmlsZWJ1ZiBjb25zdCAmKQ0KKz8/NGZpbGVidWZAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBmc3RyZWFtICYgX190aGlzY2FsbCBmc3RyZWFtOjpvcGVyYXRvcj0oY2xhc3MgZnN0cmVhbSAmKQ0KKz8/NGZzdHJlYW1AQFFBRUFBVjBAQUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBpZnN0cmVhbSAmIF9fdGhpc2NhbGwgaWZzdHJlYW06Om9wZXJhdG9yPShjbGFzcyBpZnN0cmVhbSBjb25zdCAmKQ0KKz8/NGlmc3RyZWFtQEBRQUVBQVYwQEFCVjBAQFoNCis7IHByb3RlY3RlZDogY2xhc3MgaW9zICYgX190aGlzY2FsbCBpb3M6Om9wZXJhdG9yPShjbGFzcyBpb3MgY29uc3QgJikNCis/PzRpb3NAQElBRUFBVjBAQUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBpb3N0cmVhbSAmIF9fdGhpc2NhbGwgaW9zdHJlYW06Om9wZXJhdG9yPShjbGFzcyBpb3N0cmVhbSAmKQ0KKz8/NGlvc3RyZWFtQEBJQUVBQVYwQEFBVjBAQFoNCis7IHByb3RlY3RlZDogY2xhc3MgaW9zdHJlYW0gJiBfX3RoaXNjYWxsIGlvc3RyZWFtOjpvcGVyYXRvcj0oY2xhc3Mgc3RyZWFtYnVmICopDQorPz80aW9zdHJlYW1AQElBRUFBVjBAUEFWc3RyZWFtYnVmQEBAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj0oY2xhc3MgaXN0cmVhbSBjb25zdCAmKQ0KKz8/NGlzdHJlYW1AQElBRUFBVjBAQUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj0oY2xhc3Mgc3RyZWFtYnVmICopDQorPz80aXN0cmVhbUBASUFFQUFWMEBQQVZzdHJlYW1idWZAQEBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW1fd2l0aGFzc2lnbiAmIF9fdGhpc2NhbGwgaXN0cmVhbV93aXRoYXNzaWduOjpvcGVyYXRvcj0oY2xhc3MgaXN0cmVhbV93aXRoYXNzaWduIGNvbnN0ICYpDQorPz80aXN0cmVhbV93aXRoYXNzaWduQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbV93aXRoYXNzaWduOjpvcGVyYXRvcj0oY2xhc3MgaXN0cmVhbSBjb25zdCAmKQ0KKz8/NGlzdHJlYW1fd2l0aGFzc2lnbkBAUUFFQUFWaXN0cmVhbUBAQUJWMUBAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtX3dpdGhhc3NpZ246Om9wZXJhdG9yPShjbGFzcyBzdHJlYW1idWYgKikNCis/PzRpc3RyZWFtX3dpdGhhc3NpZ25AQFFBRUFBVmlzdHJlYW1AQFBBVnN0cmVhbWJ1ZkBAQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cnN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cnN0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIGlzdHJzdHJlYW0gY29uc3QgJikNCis/PzRpc3Ryc3RyZWFtQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgbG9naWNfZXJyb3IgJiBfX3RoaXNjYWxsIGxvZ2ljX2Vycm9yOjpvcGVyYXRvcj0oY2xhc3MgbG9naWNfZXJyb3IgY29uc3QgJikNCis/PzRsb2dpY19lcnJvckBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIG9mc3RyZWFtICYgX190aGlzY2FsbCBvZnN0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIG9mc3RyZWFtIGNvbnN0ICYpDQorPz80b2ZzdHJlYW1AQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcj0oY2xhc3Mgb3N0cmVhbSBjb25zdCAmKQ0KKz8/NG9zdHJlYW1AQElBRUFBVjBAQUJWMEBAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcj0oY2xhc3Mgc3RyZWFtYnVmICopDQorPz80b3N0cmVhbUBASUFFQUFWMEBQQVZzdHJlYW1idWZAQEBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW1fd2l0aGFzc2lnbiAmIF9fdGhpc2NhbGwgb3N0cmVhbV93aXRoYXNzaWduOjpvcGVyYXRvcj0oY2xhc3Mgb3N0cmVhbV93aXRoYXNzaWduIGNvbnN0ICYpDQorPz80b3N0cmVhbV93aXRoYXNzaWduQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbV93aXRoYXNzaWduOjpvcGVyYXRvcj0oY2xhc3Mgb3N0cmVhbSBjb25zdCAmKQ0KKz8/NG9zdHJlYW1fd2l0aGFzc2lnbkBAUUFFQUFWb3N0cmVhbUBAQUJWMUBAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtX3dpdGhhc3NpZ246Om9wZXJhdG9yPShjbGFzcyBzdHJlYW1idWYgKikNCis/PzRvc3RyZWFtX3dpdGhhc3NpZ25AQFFBRUFBVm9zdHJlYW1AQFBBVnN0cmVhbWJ1ZkBAQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cnN0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cnN0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIG9zdHJzdHJlYW0gY29uc3QgJikNCis/PzRvc3Ryc3RyZWFtQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3RkaW9idWYgJiBfX3RoaXNjYWxsIHN0ZGlvYnVmOjpvcGVyYXRvcj0oY2xhc3Mgc3RkaW9idWYgY29uc3QgJikNCis/PzRzdGRpb2J1ZkBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZGlvc3RyZWFtICYgX190aGlzY2FsbCBzdGRpb3N0cmVhbTo6b3BlcmF0b3I9KGNsYXNzIHN0ZGlvc3RyZWFtICYpDQorPz80c3RkaW9zdHJlYW1AQFFBRUFBVjBAQUFWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBzdHJlYW1idWYgJiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6b3BlcmF0b3I9KGNsYXNzIHN0cmVhbWJ1ZiBjb25zdCAmKQ0KKz8/NHN0cmVhbWJ1ZkBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0cnN0cmVhbSAmIF9fdGhpc2NhbGwgc3Ryc3RyZWFtOjpvcGVyYXRvcj0oY2xhc3Mgc3Ryc3RyZWFtICYpDQorPz80c3Ryc3RyZWFtQEBRQUVBQVYwQEFBVjBAQFoNCis7IHB1YmxpYzogY2xhc3Mgc3Ryc3RyZWFtYnVmICYgX190aGlzY2FsbCBzdHJzdHJlYW1idWY6Om9wZXJhdG9yPShjbGFzcyBzdHJzdHJlYW1idWYgY29uc3QgJikNCis/PzRzdHJzdHJlYW1idWZAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj4+KHNpZ25lZCBjaGFyICYpDQorPz81aXN0cmVhbUBAUUFFQUFWMEBBQUNAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj4+KGNoYXIgJikNCis/PzVpc3RyZWFtQEBRQUVBQVYwQEFBREBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Om9wZXJhdG9yPj4odW5zaWduZWQgY2hhciAmKQ0KKz8/NWlzdHJlYW1AQFFBRUFBVjBAQUFFQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I+PihzaG9ydCAmKQ0KKz8/NWlzdHJlYW1AQFFBRUFBVjBAQUFGQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I+Pih1bnNpZ25lZCBzaG9ydCAmKQ0KKz8/NWlzdHJlYW1AQFFBRUFBVjBAQUFHQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I+PihpbnQgJikNCis/PzVpc3RyZWFtQEBRQUVBQVYwQEFBSEBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Om9wZXJhdG9yPj4odW5zaWduZWQgaW50ICYpDQorPz81aXN0cmVhbUBAUUFFQUFWMEBBQUlAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj4+KGxvbmcgJikNCis/PzVpc3RyZWFtQEBRQUVBQVYwQEFBSkBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Om9wZXJhdG9yPj4odW5zaWduZWQgbG9uZyAmKQ0KKz8/NWlzdHJlYW1AQFFBRUFBVjBAQUFLQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I+PihmbG9hdCAmKQ0KKz8/NWlzdHJlYW1AQFFBRUFBVjBAQUFNQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I+Pihkb3VibGUgJikNCis/PzVpc3RyZWFtQEBRQUVBQVYwQEFBTkBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Om9wZXJhdG9yPj4obG9uZyBkb3VibGUgJikNCis/PzVpc3RyZWFtQEBRQUVBQVYwQEFBT0BaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Om9wZXJhdG9yPj4oY2xhc3MgaXN0cmVhbSAmIChfX2NkZWNsKikoY2xhc3MgaXN0cmVhbSAmKSkNCis/PzVpc3RyZWFtQEBRQUVBQVYwQFA2QUFBVjBAQUFWMEBAWkBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Om9wZXJhdG9yPj4oY2xhc3MgaW9zICYgKF9fY2RlY2wqKShjbGFzcyBpb3MgJikpDQorPz81aXN0cmVhbUBAUUFFQUFWMEBQNkFBQVZpb3NAQEFBVjFAQFpAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj4+KHNpZ25lZCBjaGFyICopDQorPz81aXN0cmVhbUBAUUFFQUFWMEBQQUNAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpvcGVyYXRvcj4+KGNoYXIgKikNCis/PzVpc3RyZWFtQEBRQUVBQVYwQFBBREBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Om9wZXJhdG9yPj4odW5zaWduZWQgY2hhciAqKQ0KKz8/NWlzdHJlYW1AQFFBRUFBVjBAUEFFQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6b3BlcmF0b3I+PihjbGFzcyBzdHJlYW1idWYgKikNCis/PzVpc3RyZWFtQEBRQUVBQVYwQFBBVnN0cmVhbWJ1ZkBAQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PChzaWduZWQgY2hhcikNCis/PzZvc3RyZWFtQEBRQUVBQVYwQENAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KGNoYXIpDQorPz82b3N0cmVhbUBAUUFFQUFWMEBEQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PCh1bnNpZ25lZCBjaGFyKQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBARUBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwoc2hvcnQpDQorPz82b3N0cmVhbUBAUUFFQUFWMEBGQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PCh1bnNpZ25lZCBzaG9ydCkNCis/PzZvc3RyZWFtQEBRQUVBQVYwQEdAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KGludCkNCis/PzZvc3RyZWFtQEBRQUVBQVYwQEhAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KHVuc2lnbmVkIGludCkNCis/PzZvc3RyZWFtQEBRQUVBQVYwQElAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KGxvbmcpDQorPz82b3N0cmVhbUBAUUFFQUFWMEBKQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PCh1bnNpZ25lZCBsb25nKQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBAS0BaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwoZmxvYXQpDQorPz82b3N0cmVhbUBAUUFFQUFWMEBNQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PChkb3VibGUpDQorPz82b3N0cmVhbUBAUUFFQUFWMEBOQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PChsb25nIGRvdWJsZSkNCis/PzZvc3RyZWFtQEBRQUVBQVYwQE9AWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KGNsYXNzIG9zdHJlYW0gJiAoX19jZGVjbCopKGNsYXNzIG9zdHJlYW0gJikpDQorPz82b3N0cmVhbUBAUUFFQUFWMEBQNkFBQVYwQEFBVjBAQFpAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KGNsYXNzIGlvcyAmIChfX2NkZWNsKikoY2xhc3MgaW9zICYpKQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBAUDZBQUFWaW9zQEBBQVYxQEBaQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PChjbGFzcyBzdHJlYW1idWYgKikNCis/PzZvc3RyZWFtQEBRQUVBQVYwQFBBVnN0cmVhbWJ1ZkBAQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PChzaWduZWQgY2hhciBjb25zdCAqKQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBAUEJDQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6b3BlcmF0b3I8PChjaGFyIGNvbnN0ICopDQorPz82b3N0cmVhbUBAUUFFQUFWMEBQQkRAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpvcGVyYXRvcjw8KHVuc2lnbmVkIGNoYXIgY29uc3QgKikNCis/PzZvc3RyZWFtQEBRQUVBQVYwQFBCRUBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06Om9wZXJhdG9yPDwodm9pZCBjb25zdCAqKQ0KKz8/Nm9zdHJlYW1AQFFBRUFBVjBAUEJYQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgaW9zOjpvcGVyYXRvciEodm9pZCljb25zdCANCis/Pzdpb3NAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCB0eXBlX2luZm86Om9wZXJhdG9yPT0oY2xhc3MgdHlwZV9pbmZvIGNvbnN0ICYpY29uc3QgDQorPz84dHlwZV9pbmZvQEBRQkVIQUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCB0eXBlX2luZm86Om9wZXJhdG9yIT0oY2xhc3MgdHlwZV9pbmZvIGNvbnN0ICYpY29uc3QgDQorPz85dHlwZV9pbmZvQEBRQkVIQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIGlvczo6b3BlcmF0b3Igdm9pZCAqKHZvaWQpY29uc3QgDQorPz9CaW9zQEBRQkVQQVhYWg0KKzsgY29uc3QgIF9fbm9uX3J0dGlfb2JqZWN0OjpgdmZ0YWJsZScNCis/P183X19ub25fcnR0aV9vYmplY3RAQDZCQA0KKzsgY29uc3QgIGJhZF9jYXN0OjpgdmZ0YWJsZScNCis/P183YmFkX2Nhc3RAQDZCQA0KKzsgY29uc3QgIGJhZF90eXBlaWQ6OmB2ZnRhYmxlJw0KKz8/XzdiYWRfdHlwZWlkQEA2QkANCis7IGNvbnN0ICBleGNlcHRpb246OmB2ZnRhYmxlJw0KKz8/XzdleGNlcHRpb25AQDZCQA0KKzsgY29uc3QgIGZpbGVidWY6OmB2ZnRhYmxlJw0KKz8/XzdmaWxlYnVmQEA2QkANCis7IGNvbnN0ICBmc3RyZWFtOjpgdmZ0YWJsZScNCis/P183ZnN0cmVhbUBANkJADQorOyBjb25zdCAgaWZzdHJlYW06OmB2ZnRhYmxlJw0KKz8/XzdpZnN0cmVhbUBANkJADQorOyBjb25zdCAgaW9zOjpgdmZ0YWJsZScNCis/P183aW9zQEA2QkANCis7IGNvbnN0ICBpb3N0cmVhbTo6YHZmdGFibGUnDQorPz9fN2lvc3RyZWFtQEA2QkANCis7IGNvbnN0ICBpc3RyZWFtOjpgdmZ0YWJsZScNCis/P183aXN0cmVhbUBANkJADQorOyBjb25zdCAgaXN0cmVhbV93aXRoYXNzaWduOjpgdmZ0YWJsZScNCis/P183aXN0cmVhbV93aXRoYXNzaWduQEA2QkANCis7IGNvbnN0ICBpc3Ryc3RyZWFtOjpgdmZ0YWJsZScNCis/P183aXN0cnN0cmVhbUBANkJADQorOyBjb25zdCAgbG9naWNfZXJyb3I6OmB2ZnRhYmxlJw0KKz8/Xzdsb2dpY19lcnJvckBANkJADQorOyBjb25zdCAgb2ZzdHJlYW06OmB2ZnRhYmxlJw0KKz8/XzdvZnN0cmVhbUBANkJADQorOyBjb25zdCAgb3N0cmVhbTo6YHZmdGFibGUnDQorPz9fN29zdHJlYW1AQDZCQA0KKzsgY29uc3QgIG9zdHJlYW1fd2l0aGFzc2lnbjo6YHZmdGFibGUnDQorPz9fN29zdHJlYW1fd2l0aGFzc2lnbkBANkJADQorOyBjb25zdCAgb3N0cnN0cmVhbTo6YHZmdGFibGUnDQorPz9fN29zdHJzdHJlYW1AQDZCQA0KKzsgY29uc3QgIHN0ZGlvYnVmOjpgdmZ0YWJsZScNCis/P183c3RkaW9idWZAQDZCQA0KKzsgY29uc3QgIHN0ZGlvc3RyZWFtOjpgdmZ0YWJsZScNCis/P183c3RkaW9zdHJlYW1AQDZCQA0KKzsgY29uc3QgIHN0cmVhbWJ1Zjo6YHZmdGFibGUnDQorPz9fN3N0cmVhbWJ1ZkBANkJADQorOyBjb25zdCAgc3Ryc3RyZWFtOjpgdmZ0YWJsZScNCis/P183c3Ryc3RyZWFtQEA2QkANCis7IGNvbnN0ICBzdHJzdHJlYW1idWY6OmB2ZnRhYmxlJw0KKz8/XzdzdHJzdHJlYW1idWZAQDZCQA0KKzsgY29uc3QgIGZzdHJlYW06OmB2YnRhYmxlJ3tmb3IgYGlzdHJlYW0nfQ0KKz8/Xzhmc3RyZWFtQEA3QmlzdHJlYW1AQEANCis7IGNvbnN0ICBmc3RyZWFtOjpgdmJ0YWJsZSd7Zm9yIGBvc3RyZWFtJ30NCis/P184ZnN0cmVhbUBAN0Jvc3RyZWFtQEBADQorOyBjb25zdCAgaWZzdHJlYW06OmB2YnRhYmxlJw0KKz8/XzhpZnN0cmVhbUBAN0JADQorOyBjb25zdCAgaW9zdHJlYW06OmB2YnRhYmxlJ3tmb3IgYGlzdHJlYW0nfQ0KKz8/Xzhpb3N0cmVhbUBAN0Jpc3RyZWFtQEBADQorOyBjb25zdCAgaW9zdHJlYW06OmB2YnRhYmxlJ3tmb3IgYG9zdHJlYW0nfQ0KKz8/Xzhpb3N0cmVhbUBAN0Jvc3RyZWFtQEBADQorOyBjb25zdCAgaXN0cmVhbTo6YHZidGFibGUnDQorPz9fOGlzdHJlYW1AQDdCQA0KKzsgY29uc3QgIGlzdHJlYW1fd2l0aGFzc2lnbjo6YHZidGFibGUnDQorPz9fOGlzdHJlYW1fd2l0aGFzc2lnbkBAN0JADQorOyBjb25zdCAgaXN0cnN0cmVhbTo6YHZidGFibGUnDQorPz9fOGlzdHJzdHJlYW1AQDdCQA0KKzsgY29uc3QgIG9mc3RyZWFtOjpgdmJ0YWJsZScNCis/P184b2ZzdHJlYW1AQDdCQA0KKzsgY29uc3QgIG9zdHJlYW06OmB2YnRhYmxlJw0KKz8/Xzhvc3RyZWFtQEA3QkANCis7IGNvbnN0ICBvc3RyZWFtX3dpdGhhc3NpZ246OmB2YnRhYmxlJw0KKz8/Xzhvc3RyZWFtX3dpdGhhc3NpZ25AQDdCQA0KKzsgY29uc3QgIG9zdHJzdHJlYW06OmB2YnRhYmxlJw0KKz8/Xzhvc3Ryc3RyZWFtQEA3QkANCis7IGNvbnN0ICBzdGRpb3N0cmVhbTo6YHZidGFibGUne2ZvciBgaXN0cmVhbSd9DQorPz9fOHN0ZGlvc3RyZWFtQEA3QmlzdHJlYW1AQEANCis7IGNvbnN0ICBzdGRpb3N0cmVhbTo6YHZidGFibGUne2ZvciBgb3N0cmVhbSd9DQorPz9fOHN0ZGlvc3RyZWFtQEA3Qm9zdHJlYW1AQEANCis7IGNvbnN0ICBzdHJzdHJlYW06OmB2YnRhYmxlJ3tmb3IgYGlzdHJlYW0nfQ0KKz8/XzhzdHJzdHJlYW1AQDdCaXN0cmVhbUBAQA0KKzsgY29uc3QgIHN0cnN0cmVhbTo6YHZidGFibGUne2ZvciBgb3N0cmVhbSd9DQorPz9fOHN0cnN0cmVhbUBAN0Jvc3RyZWFtQEBADQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBmc3RyZWFtOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EZnN0cmVhbUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBpZnN0cmVhbTo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRGlmc3RyZWFtQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIGlvc3RyZWFtOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EaW9zdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgaXN0cmVhbTo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRGlzdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgaXN0cmVhbV93aXRoYXNzaWduOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19EaXN0cmVhbV93aXRoYXNzaWduQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIGlzdHJzdHJlYW06OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0Rpc3Ryc3RyZWFtQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIG9mc3RyZWFtOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19Eb2ZzdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgb3N0cmVhbTo6YHZiYXNlIGRlc3RydWN0b3InKHZvaWQpDQorPz9fRG9zdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgb3N0cmVhbV93aXRoYXNzaWduOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19Eb3N0cmVhbV93aXRoYXNzaWduQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIG9zdHJzdHJlYW06OmB2YmFzZSBkZXN0cnVjdG9yJyh2b2lkKQ0KKz8/X0Rvc3Ryc3RyZWFtQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0ZGlvc3RyZWFtOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19Ec3RkaW9zdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3Ryc3RyZWFtOjpgdmJhc2UgZGVzdHJ1Y3Rvcicodm9pZCkNCis/P19Ec3Ryc3RyZWFtQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgSW9zdHJlYW1faW5pdDo6YHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fRUlvc3RyZWFtX2luaXRAQFFBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIF9fbm9uX3J0dGlfb2JqZWN0OjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19FX19ub25fcnR0aV9vYmplY3RAQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGJhZF9jYXN0OjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19FYmFkX2Nhc3RAQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGJhZF90eXBlaWQ6OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0ViYWRfdHlwZWlkQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBleGNlcHRpb246OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0VleGNlcHRpb25AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGZpbGVidWY6OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0VmaWxlYnVmQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBmc3RyZWFtOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19FZnN0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgaWZzdHJlYW06OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0VpZnN0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgaW9zOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19FaW9zQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBpb3N0cmVhbTo6YHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fRWlvc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBpc3RyZWFtOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19FaXN0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgaXN0cmVhbV93aXRoYXNzaWduOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19FaXN0cmVhbV93aXRoYXNzaWduQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBpc3Ryc3RyZWFtOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19FaXN0cnN0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgbG9naWNfZXJyb3I6OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0Vsb2dpY19lcnJvckBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgb2ZzdHJlYW06OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0VvZnN0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgb3N0cmVhbTo6YHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fRW9zdHJlYW1AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIG9zdHJlYW1fd2l0aGFzc2lnbjo6YHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fRW9zdHJlYW1fd2l0aGFzc2lnbkBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgb3N0cnN0cmVhbTo6YHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fRW9zdHJzdHJlYW1AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIHN0ZGlvYnVmOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Fc3RkaW9idWZAQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIHN0ZGlvc3RyZWFtOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Fc3RkaW9zdHJlYW1AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6YHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fRXN0cmVhbWJ1ZkBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgc3Ryc3RyZWFtOjpgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Fc3Ryc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBzdHJzdHJlYW1idWY6OmB2ZWN0b3IgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0VzdHJzdHJlYW1idWZAQFVBRVBBWElAWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBJb3N0cmVhbV9pbml0Ojpgc2NhbGFyIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19HSW9zdHJlYW1faW5pdEBAUUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgX19ub25fcnR0aV9vYmplY3Q6OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dfX25vbl9ydHRpX29iamVjdEBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgYmFkX2Nhc3Q6OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0diYWRfY2FzdEBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgYmFkX3R5cGVpZDo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR2JhZF90eXBlaWRAQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGV4Y2VwdGlvbjo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR2V4Y2VwdGlvbkBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgZmlsZWJ1Zjo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR2ZpbGVidWZAQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGZzdHJlYW06OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dmc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBpZnN0cmVhbTo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR2lmc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBpb3M6OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dpb3NAQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGlvc3RyZWFtOjpgc2NhbGFyIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19HaW9zdHJlYW1AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGlzdHJlYW06OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dpc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBpc3RyZWFtX3dpdGhhc3NpZ246OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dpc3RyZWFtX3dpdGhhc3NpZ25AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIGlzdHJzdHJlYW06OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dpc3Ryc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBsb2dpY19lcnJvcjo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR2xvZ2ljX2Vycm9yQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBvZnN0cmVhbTo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR29mc3RyZWFtQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBvc3RyZWFtOjpgc2NhbGFyIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Hb3N0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgb3N0cmVhbV93aXRoYXNzaWduOjpgc2NhbGFyIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Hb3N0cmVhbV93aXRoYXNzaWduQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBvc3Ryc3RyZWFtOjpgc2NhbGFyIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Hb3N0cnN0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgc3RkaW9idWY6OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dzdGRpb2J1ZkBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgc3RkaW9zdHJlYW06OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dzdGRpb3N0cmVhbUBAVUFFUEFYSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpgc2NhbGFyIGRlbGV0aW5nIGRlc3RydWN0b3InKHVuc2lnbmVkIGludCkNCis/P19Hc3RyZWFtYnVmQEBVQUVQQVhJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkICogX190aGlzY2FsbCBzdHJzdHJlYW06OmBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicodW5zaWduZWQgaW50KQ0KKz8/X0dzdHJzdHJlYW1AQFVBRVBBWElAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIHN0cnN0cmVhbWJ1Zjo6YHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJyh1bnNpZ25lZCBpbnQpDQorPz9fR3N0cnN0cmVhbWJ1ZkBAVUFFUEFYSUBaDQorOyBpbnQgKF9fY2RlY2wqX19jZGVjbCBfcXVlcnlfbmV3X2hhbmRsZXIodm9pZCkpKHVuc2lnbmVkIGludCkNCis/X3F1ZXJ5X25ld19oYW5kbGVyQEBZQVA2QUhJQFpYWg0KKzsgaW50IF9fY2RlY2wgX3F1ZXJ5X25ld19tb2RlKHZvaWQpDQorP19xdWVyeV9uZXdfbW9kZUBAWUFIWFoNCis7IGludCAoX19jZGVjbCpfX2NkZWNsIF9zZXRfbmV3X2hhbmRsZXIoaW50IChfX2NkZWNsKikodW5zaWduZWQgaW50KSkpKHVuc2lnbmVkIGludCkNCis/X3NldF9uZXdfaGFuZGxlckBAWUFQNkFISUBaUDZBSElAWkBaDQorOyBpbnQgX19jZGVjbCBfc2V0X25ld19tb2RlKGludCkNCis/X3NldF9uZXdfbW9kZUBAWUFISEBaDQorOyB2b2lkIChfX2NkZWNsKl9fY2RlY2wgX3NldF9zZV90cmFuc2xhdG9yKHZvaWQgKF9fY2RlY2wqKSh1bnNpZ25lZCBpbnQsc3RydWN0IF9FWENFUFRJT05fUE9JTlRFUlMgKikpKSh1bnNpZ25lZCBpbnQsc3RydWN0IF9FWENFUFRJT05fUE9JTlRFUlMgKikNCis/X3NldF9zZV90cmFuc2xhdG9yQEBZQVA2QVhJUEFVX0VYQ0VQVElPTl9QT0lOVEVSU0BAQFpQNkFYSTBAWkBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIGNvbnN0ICBpb3M6OmFkanVzdGZpZWxkDQorP2FkanVzdGZpZWxkQGlvc0BAMkpCDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6YWxsb2NhdGUodm9pZCkNCis/YWxsb2NhdGVAc3RyZWFtYnVmQEBJQUVIWFoNCis7IHB1YmxpYzogY2xhc3MgZmlsZWJ1ZiAqIF9fdGhpc2NhbGwgZmlsZWJ1Zjo6YXR0YWNoKGludCkNCis/YXR0YWNoQGZpbGVidWZAQFFBRVBBVjFASEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBmc3RyZWFtOjphdHRhY2goaW50KQ0KKz9hdHRhY2hAZnN0cmVhbUBAUUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgaWZzdHJlYW06OmF0dGFjaChpbnQpDQorP2F0dGFjaEBpZnN0cmVhbUBAUUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgb2ZzdHJlYW06OmF0dGFjaChpbnQpDQorP2F0dGFjaEBvZnN0cmVhbUBAUUFFWEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBpb3M6OmJhZCh2b2lkKWNvbnN0IA0KKz9iYWRAaW9zQEBRQkVIWFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpiYXNlKHZvaWQpY29uc3QgDQorP2Jhc2VAc3RyZWFtYnVmQEBJQkVQQURYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBjb25zdCAgaW9zOjpiYXNlZmllbGQNCis/YmFzZWZpZWxkQGlvc0BAMkpCDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHR5cGVfaW5mbzo6YmVmb3JlKGNsYXNzIHR5cGVfaW5mbyBjb25zdCAmKWNvbnN0IA0KKz9iZWZvcmVAdHlwZV9pbmZvQEBRQkVIQUJWMUBAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IGNvbnN0ICBmaWxlYnVmOjpiaW5hcnkNCis/YmluYXJ5QGZpbGVidWZAQDJIQg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX2NkZWNsIGlvczo6Yml0YWxsb2Modm9pZCkNCis/Yml0YWxsb2NAaW9zQEBTQUpYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBzdHJlYW1idWY6OmJsZW4odm9pZCljb25zdCANCis/YmxlbkBzdHJlYW1idWZAQElCRUhYWg0KKzsgY2xhc3Mgb3N0cmVhbV93aXRoYXNzaWduICBjZXJyDQorP2NlcnJAQDNWb3N0cmVhbV93aXRoYXNzaWduQEBBDQorOyBjbGFzcyBpc3RyZWFtX3dpdGhhc3NpZ24gIGNpbg0KKz9jaW5AQDNWaXN0cmVhbV93aXRoYXNzaWduQEBBDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBpb3M6OmNsZWFyKGludCkNCis/Y2xlYXJAaW9zQEBRQUVYSEBaDQorOyBjbGFzcyBvc3RyZWFtX3dpdGhhc3NpZ24gIGNsb2cNCis/Y2xvZ0BAM1Zvc3RyZWFtX3dpdGhhc3NpZ25AQEENCis7IHB1YmxpYzogY2xhc3MgZmlsZWJ1ZiAqIF9fdGhpc2NhbGwgZmlsZWJ1Zjo6Y2xvc2Uodm9pZCkNCis/Y2xvc2VAZmlsZWJ1ZkBAUUFFUEFWMUBYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgZnN0cmVhbTo6Y2xvc2Uodm9pZCkNCis/Y2xvc2VAZnN0cmVhbUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBpZnN0cmVhbTo6Y2xvc2Uodm9pZCkNCis/Y2xvc2VAaWZzdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgb2ZzdHJlYW06OmNsb3NlKHZvaWQpDQorP2Nsb3NlQG9mc3RyZWFtQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGlvczo6Y2xybG9jayh2b2lkKQ0KKz9jbHJsb2NrQGlvc0BAUUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdHJlYW1idWY6OmNscmxvY2sodm9pZCkNCis/Y2xybG9ja0BzdHJlYW1idWZAQFFBRVhYWg0KKzsgY2xhc3Mgb3N0cmVhbV93aXRoYXNzaWduICBjb3V0DQorP2NvdXRAQDNWb3N0cmVhbV93aXRoYXNzaWduQEBBDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdHJlYW1idWY6OmRicCh2b2lkKQ0KKz9kYnBAc3RyZWFtYnVmQEBRQUVYWFoNCis7IGNsYXNzIGlvcyAmIF9fY2RlY2wgZGVjKGNsYXNzIGlvcyAmKQ0KKz9kZWNAQFlBQUFWaW9zQEBBQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBpb3M6OmRlbGJ1ZihpbnQpDQorP2RlbGJ1ZkBpb3NAQFFBRVhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgaW9zOjpkZWxidWYodm9pZCljb25zdCANCis/ZGVsYnVmQGlvc0BAUUJFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpkb2FsbG9jYXRlKHZvaWQpDQorP2RvYWxsb2NhdGVAc3RyZWFtYnVmQEBNQUVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdHJzdHJlYW1idWY6OmRvYWxsb2NhdGUodm9pZCkNCis/ZG9hbGxvY2F0ZUBzdHJzdHJlYW1idWZAQE1BRUhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgaXN0cmVhbTo6ZWF0d2hpdGUodm9pZCkNCis/ZWF0d2hpdGVAaXN0cmVhbUBAUUFFWFhaDQorOyBwcm90ZWN0ZWQ6IGNoYXIgKiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6ZWJhY2sodm9pZCljb25zdCANCis/ZWJhY2tAc3RyZWFtYnVmQEBJQkVQQURYWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX190aGlzY2FsbCBzdHJlYW1idWY6OmVidWYodm9pZCljb25zdCANCis/ZWJ1ZkBzdHJlYW1idWZAQElCRVBBRFhaDQorOyBwcm90ZWN0ZWQ6IGNoYXIgKiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6ZWdwdHIodm9pZCljb25zdCANCis/ZWdwdHJAc3RyZWFtYnVmQEBJQkVQQURYWg0KKzsgY2xhc3Mgb3N0cmVhbSAmIF9fY2RlY2wgZW5kbChjbGFzcyBvc3RyZWFtICYpDQorP2VuZGxAQFlBQUFWb3N0cmVhbUBAQUFWMUBAWg0KKzsgY2xhc3Mgb3N0cmVhbSAmIF9fY2RlY2wgZW5kcyhjbGFzcyBvc3RyZWFtICYpDQorP2VuZHNAQFlBQUFWb3N0cmVhbUBAQUFWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBpb3M6OmVvZih2b2lkKWNvbnN0IA0KKz9lb2ZAaW9zQEBRQkVIWFoNCis7IHByb3RlY3RlZDogY2hhciAqIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjplcHB0cih2b2lkKWNvbnN0IA0KKz9lcHB0ckBzdHJlYW1idWZAQElCRVBBRFhaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50ICBpb3M6OmZMb2NrY0luaXQNCis/ZkxvY2tjSW5pdEBpb3NAQDBIQQ0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBpb3M6OmZhaWwodm9pZCljb25zdCANCis/ZmFpbEBpb3NAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBmaWxlYnVmOjpmZCh2b2lkKWNvbnN0IA0KKz9mZEBmaWxlYnVmQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgZnN0cmVhbTo6ZmQodm9pZCljb25zdCANCis/ZmRAZnN0cmVhbUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlmc3RyZWFtOjpmZCh2b2lkKWNvbnN0IA0KKz9mZEBpZnN0cmVhbUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIG9mc3RyZWFtOjpmZCh2b2lkKWNvbnN0IA0KKz9mZEBvZnN0cmVhbUBAUUJFSFhaDQorOyBwdWJsaWM6IGNoYXIgX190aGlzY2FsbCBpb3M6OmZpbGwoY2hhcikNCis/ZmlsbEBpb3NAQFFBRUREQFoNCis7IHB1YmxpYzogY2hhciBfX3RoaXNjYWxsIGlvczo6ZmlsbCh2b2lkKWNvbnN0IA0KKz9maWxsQGlvc0BAUUJFRFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBpb3M6OmZsYWdzKGxvbmcpDQorP2ZsYWdzQGlvc0BAUUFFSkpAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgaW9zOjpmbGFncyh2b2lkKWNvbnN0IA0KKz9mbGFnc0Bpb3NAQFFCRUpYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBjb25zdCAgaW9zOjpmbG9hdGZpZWxkDQorP2Zsb2F0ZmllbGRAaW9zQEAySkINCis7IGNsYXNzIG9zdHJlYW0gJiBfX2NkZWNsIGZsdXNoKGNsYXNzIG9zdHJlYW0gJikNCis/Zmx1c2hAQFlBQUFWb3N0cmVhbUBAQUFWMUBAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpmbHVzaCh2b2lkKQ0KKz9mbHVzaEBvc3RyZWFtQEBRQUVBQVYxQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdHJzdHJlYW1idWY6OmZyZWV6ZShpbnQpDQorP2ZyZWV6ZUBzdHJzdHJlYW1idWZAQFFBRVhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6Z2J1bXAoaW50KQ0KKz9nYnVtcEBzdHJlYW1idWZAQElBRVhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgaXN0cmVhbTo6Z2NvdW50KHZvaWQpY29uc3QgDQorP2djb3VudEBpc3RyZWFtQEBRQkVIWFoNCis7IHByb3RlY3RlZDogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6Z2V0KGNoYXIgKixpbnQsaW50KQ0KKz9nZXRAaXN0cmVhbUBASUFFQUFWMUBQQURISEBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06OmdldChzaWduZWQgY2hhciAmKQ0KKz9nZXRAaXN0cmVhbUBAUUFFQUFWMUBBQUNAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpnZXQoY2hhciAmKQ0KKz9nZXRAaXN0cmVhbUBAUUFFQUFWMUBBQURAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpnZXQodW5zaWduZWQgY2hhciAmKQ0KKz9nZXRAaXN0cmVhbUBAUUFFQUFWMUBBQUVAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpnZXQoY2xhc3Mgc3RyZWFtYnVmICYsY2hhcikNCis/Z2V0QGlzdHJlYW1AQFFBRUFBVjFAQUFWc3RyZWFtYnVmQEBEQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6Z2V0KHNpZ25lZCBjaGFyICosaW50LGNoYXIpDQorP2dldEBpc3RyZWFtQEBRQUVBQVYxQFBBQ0hEQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6Z2V0KGNoYXIgKixpbnQsY2hhcikNCis/Z2V0QGlzdHJlYW1AQFFBRUFBVjFAUEFESERAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpnZXQodW5zaWduZWQgY2hhciAqLGludCxjaGFyKQ0KKz9nZXRAaXN0cmVhbUBAUUFFQUFWMUBQQUVIREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlzdHJlYW06OmdldCh2b2lkKQ0KKz9nZXRAaXN0cmVhbUBAUUFFSFhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBpc3RyZWFtOjpnZXRkb3VibGUoY2hhciAqLGludCkNCis/Z2V0ZG91YmxlQGlzdHJlYW1AQEFBRUhQQURIQFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIGlzdHJlYW06OmdldGludChjaGFyICopDQorP2dldGludEBpc3RyZWFtQEBBQUVIUEFEQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6Z2V0bGluZShzaWduZWQgY2hhciAqLGludCxjaGFyKQ0KKz9nZXRsaW5lQGlzdHJlYW1AQFFBRUFBVjFAUEFDSERAWg0KKzsgcHVibGljOiBjbGFzcyBpc3RyZWFtICYgX190aGlzY2FsbCBpc3RyZWFtOjpnZXRsaW5lKGNoYXIgKixpbnQsY2hhcikNCis/Z2V0bGluZUBpc3RyZWFtQEBRQUVBQVYxQFBBREhEQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6Z2V0bGluZSh1bnNpZ25lZCBjaGFyICosaW50LGNoYXIpDQorP2dldGxpbmVAaXN0cmVhbUBAUUFFQUFWMUBQQUVIREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlvczo6Z29vZCh2b2lkKWNvbnN0IA0KKz9nb29kQGlvc0BAUUJFSFhaDQorOyBwcm90ZWN0ZWQ6IGNoYXIgKiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6Z3B0cih2b2lkKWNvbnN0IA0KKz9ncHRyQHN0cmVhbWJ1ZkBASUJFUEFEWFoNCis7IGNsYXNzIGlvcyAmIF9fY2RlY2wgaGV4KGNsYXNzIGlvcyAmKQ0KKz9oZXhAQFlBQUFWaW9zQEBBQVYxQEBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06Omlnbm9yZShpbnQsaW50KQ0KKz9pZ25vcmVAaXN0cmVhbUBAUUFFQUFWMUBISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6aW5fYXZhaWwodm9pZCljb25zdCANCis/aW5fYXZhaWxAc3RyZWFtYnVmQEBRQkVIWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIGlvczo6aW5pdChjbGFzcyBzdHJlYW1idWYgKikNCis/aW5pdEBpb3NAQElBRVhQQVZzdHJlYW1idWZAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlzdHJlYW06OmlwZngoaW50KQ0KKz9pcGZ4QGlzdHJlYW1AQFFBRUhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgZmlsZWJ1Zjo6aXNfb3Blbih2b2lkKWNvbnN0IA0KKz9pc19vcGVuQGZpbGVidWZAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBmc3RyZWFtOjppc19vcGVuKHZvaWQpY29uc3QgDQorP2lzX29wZW5AZnN0cmVhbUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlmc3RyZWFtOjppc19vcGVuKHZvaWQpY29uc3QgDQorP2lzX29wZW5AaWZzdHJlYW1AQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBvZnN0cmVhbTo6aXNfb3Blbih2b2lkKWNvbnN0IA0KKz9pc19vcGVuQG9mc3RyZWFtQEBRQkVIWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIGlzdHJlYW06OmlzZngodm9pZCkNCis/aXNmeEBpc3RyZWFtQEBRQUVYWFoNCis7IHB1YmxpYzogbG9uZyAmIF9fdGhpc2NhbGwgaW9zOjppd29yZChpbnQpY29uc3QgDQorP2l3b3JkQGlvc0BAUUJFQUFKSEBaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBpb3M6OmxvY2sodm9pZCkNCis/bG9ja0Bpb3NAQFFBQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpsb2NrKHZvaWQpDQorP2xvY2tAc3RyZWFtYnVmQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGlvczo6bG9ja2J1Zih2b2lkKQ0KKz9sb2NrYnVmQGlvc0BAUUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB2b2lkIF9fY2RlY2wgaW9zOjpsb2NrYyh2b2lkKQ0KKz9sb2NrY0Bpb3NAQEtBWFhaDQorOyBwcm90ZWN0ZWQ6IHN0cnVjdCBfQ1JUX0NSSVRJQ0FMX1NFQ1RJT04gKiBfX3RoaXNjYWxsIGlvczo6bG9ja3B0cih2b2lkKQ0KKz9sb2NrcHRyQGlvc0BASUFFUEFVX0NSVF9DUklUSUNBTF9TRUNUSU9OQEBYWg0KKzsgcHJvdGVjdGVkOiBzdHJ1Y3QgX0NSVF9DUklUSUNBTF9TRUNUSU9OICogX190aGlzY2FsbCBzdHJlYW1idWY6OmxvY2twdHIodm9pZCkNCis/bG9ja3B0ckBzdHJlYW1idWZAQElBRVBBVV9DUlRfQ1JJVElDQUxfU0VDVElPTkBAWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgdHlwZV9pbmZvOjpuYW1lKHZvaWQpY29uc3QgDQorP25hbWVAdHlwZV9pbmZvQEBRQkVQQkRYWg0KKzsgY2xhc3MgaW9zICYgX19jZGVjbCBvY3QoY2xhc3MgaW9zICYpDQorP29jdEBAWUFBQVZpb3NAQEFBVjFAQFoNCis7IHB1YmxpYzogY2xhc3MgZmlsZWJ1ZiAqIF9fdGhpc2NhbGwgZmlsZWJ1Zjo6b3BlbihjaGFyIGNvbnN0ICosaW50LGludCkNCis/b3BlbkBmaWxlYnVmQEBRQUVQQVYxQFBCREhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIGZzdHJlYW06Om9wZW4oY2hhciBjb25zdCAqLGludCxpbnQpDQorP29wZW5AZnN0cmVhbUBAUUFFWFBCREhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIGlmc3RyZWFtOjpvcGVuKGNoYXIgY29uc3QgKixpbnQsaW50KQ0KKz9vcGVuQGlmc3RyZWFtQEBRQUVYUEJESEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgb2ZzdHJlYW06Om9wZW4oY2hhciBjb25zdCAqLGludCxpbnQpDQorP29wZW5Ab2ZzdHJlYW1AQFFBRVhQQkRISEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgY29uc3QgIGZpbGVidWY6Om9wZW5wcm90DQorP29wZW5wcm90QGZpbGVidWZAQDJIQg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBvc3RyZWFtOjpvcGZ4KHZvaWQpDQorP29wZnhAb3N0cmVhbUBAUUFFSFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBvc3RyZWFtOjpvc2Z4KHZvaWQpDQorP29zZnhAb3N0cmVhbUBAUUFFWFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6b3V0X3dhaXRpbmcodm9pZCljb25zdCANCis/b3V0X3dhaXRpbmdAc3RyZWFtYnVmQEBRQkVIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBmaWxlYnVmOjpvdmVyZmxvdyhpbnQpDQorP292ZXJmbG93QGZpbGVidWZAQFVBRUhIQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGRpb2J1Zjo6b3ZlcmZsb3coaW50KQ0KKz9vdmVyZmxvd0BzdGRpb2J1ZkBAVUFFSEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0cnN0cmVhbWJ1Zjo6b3ZlcmZsb3coaW50KQ0KKz9vdmVyZmxvd0BzdHJzdHJlYW1idWZAQFVBRUhIQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdGRpb2J1Zjo6cGJhY2tmYWlsKGludCkNCis/cGJhY2tmYWlsQHN0ZGlvYnVmQEBVQUVISEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpwYmFja2ZhaWwoaW50KQ0KKz9wYmFja2ZhaWxAc3RyZWFtYnVmQEBVQUVISEBaDQorOyBwcm90ZWN0ZWQ6IGNoYXIgKiBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6cGJhc2Uodm9pZCljb25zdCANCis/cGJhc2VAc3RyZWFtYnVmQEBJQkVQQURYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpwYnVtcChpbnQpDQorP3BidW1wQHN0cmVhbWJ1ZkBASUFFWEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBvc3Ryc3RyZWFtOjpwY291bnQodm9pZCljb25zdCANCis/cGNvdW50QG9zdHJzdHJlYW1AQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdHJzdHJlYW06OnBjb3VudCh2b2lkKWNvbnN0IA0KKz9wY291bnRAc3Ryc3RyZWFtQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgaXN0cmVhbTo6cGVlayh2b2lkKQ0KKz9wZWVrQGlzdHJlYW1AQFFBRUhYWg0KKzsgcHJvdGVjdGVkOiBjaGFyICogX190aGlzY2FsbCBzdHJlYW1idWY6OnBwdHIodm9pZCljb25zdCANCis/cHB0ckBzdHJlYW1idWZAQElCRVBBRFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlvczo6cHJlY2lzaW9uKGludCkNCis/cHJlY2lzaW9uQGlvc0BAUUFFSEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBpb3M6OnByZWNpc2lvbih2b2lkKWNvbnN0IA0KKz9wcmVjaXNpb25AaW9zQEBRQkVIWFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6cHV0KHNpZ25lZCBjaGFyKQ0KKz9wdXRAb3N0cmVhbUBAUUFFQUFWMUBDQFoNCis7IHB1YmxpYzogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6cHV0KGNoYXIpDQorP3B1dEBvc3RyZWFtQEBRQUVBQVYxQERAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjpwdXQodW5zaWduZWQgY2hhcikNCis/cHV0QG9zdHJlYW1AQFFBRUFBVjFARUBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06OnB1dGJhY2soY2hhcikNCis/cHV0YmFja0Bpc3RyZWFtQEBRQUVBQVYxQERAWg0KKzsgcHVibGljOiB2b2lkICogJiBfX3RoaXNjYWxsIGlvczo6cHdvcmQoaW50KWNvbnN0IA0KKz9wd29yZEBpb3NAQFFCRUFBUEFYSEBaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIHR5cGVfaW5mbzo6cmF3X25hbWUodm9pZCljb25zdCANCis/cmF3X25hbWVAdHlwZV9pbmZvQEBRQkVQQkRYWg0KKzsgcHVibGljOiBjbGFzcyBmaWxlYnVmICogX190aGlzY2FsbCBmc3RyZWFtOjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkBmc3RyZWFtQEBRQkVQQVZmaWxlYnVmQEBYWg0KKzsgcHVibGljOiBjbGFzcyBmaWxlYnVmICogX190aGlzY2FsbCBpZnN0cmVhbTo6cmRidWYodm9pZCljb25zdCANCis/cmRidWZAaWZzdHJlYW1AQFFCRVBBVmZpbGVidWZAQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0cmVhbWJ1ZiAqIF9fdGhpc2NhbGwgaW9zOjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkBpb3NAQFFCRVBBVnN0cmVhbWJ1ZkBAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3Ryc3RyZWFtYnVmICogX190aGlzY2FsbCBpc3Ryc3RyZWFtOjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkBpc3Ryc3RyZWFtQEBRQkVQQVZzdHJzdHJlYW1idWZAQFhaDQorOyBwdWJsaWM6IGNsYXNzIGZpbGVidWYgKiBfX3RoaXNjYWxsIG9mc3RyZWFtOjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkBvZnN0cmVhbUBAUUJFUEFWZmlsZWJ1ZkBAWFoNCis7IHB1YmxpYzogY2xhc3Mgc3Ryc3RyZWFtYnVmICogX190aGlzY2FsbCBvc3Ryc3RyZWFtOjpyZGJ1Zih2b2lkKWNvbnN0IA0KKz9yZGJ1ZkBvc3Ryc3RyZWFtQEBRQkVQQVZzdHJzdHJlYW1idWZAQFhaDQorOyBwdWJsaWM6IGNsYXNzIHN0ZGlvYnVmICogX190aGlzY2FsbCBzdGRpb3N0cmVhbTo6cmRidWYodm9pZCljb25zdCANCis/cmRidWZAc3RkaW9zdHJlYW1AQFFCRVBBVnN0ZGlvYnVmQEBYWg0KKzsgcHVibGljOiBjbGFzcyBzdHJzdHJlYW1idWYgKiBfX3RoaXNjYWxsIHN0cnN0cmVhbTo6cmRidWYodm9pZCljb25zdCANCis/cmRidWZAc3Ryc3RyZWFtQEBRQkVQQVZzdHJzdHJlYW1idWZAQFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGlvczo6cmRzdGF0ZSh2b2lkKWNvbnN0IA0KKz9yZHN0YXRlQGlvc0BAUUJFSFhaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06OnJlYWQoc2lnbmVkIGNoYXIgKixpbnQpDQorP3JlYWRAaXN0cmVhbUBAUUFFQUFWMUBQQUNIQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6cmVhZChjaGFyICosaW50KQ0KKz9yZWFkQGlzdHJlYW1AQFFBRUFBVjFAUEFESEBaDQorOyBwdWJsaWM6IGNsYXNzIGlzdHJlYW0gJiBfX3RoaXNjYWxsIGlzdHJlYW06OnJlYWQodW5zaWduZWQgY2hhciAqLGludCkNCis/cmVhZEBpc3RyZWFtQEBRQUVBQVYxQFBBRUhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdHJlYW1idWY6OnNidW1wYyh2b2lkKQ0KKz9zYnVtcGNAc3RyZWFtYnVmQEBRQUVIWFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6c2Vla2cobG9uZykNCis/c2Vla2dAaXN0cmVhbUBAUUFFQUFWMUBKQFoNCis7IHB1YmxpYzogY2xhc3MgaXN0cmVhbSAmIF9fdGhpc2NhbGwgaXN0cmVhbTo6c2Vla2cobG9uZyxlbnVtIGlvczo6c2Vla19kaXIpDQorP3NlZWtnQGlzdHJlYW1AQFFBRUFBVjFASlc0c2Vla19kaXJAaW9zQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBmaWxlYnVmOjpzZWVrb2ZmKGxvbmcsZW51bSBpb3M6OnNlZWtfZGlyLGludCkNCis/c2Vla29mZkBmaWxlYnVmQEBVQUVKSlc0c2Vla19kaXJAaW9zQEBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgc3RkaW9idWY6OnNlZWtvZmYobG9uZyxlbnVtIGlvczo6c2Vla19kaXIsaW50KQ0KKz9zZWVrb2ZmQHN0ZGlvYnVmQEBVQUVKSlc0c2Vla19kaXJAaW9zQEBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzZWVrb2ZmKGxvbmcsZW51bSBpb3M6OnNlZWtfZGlyLGludCkNCis/c2Vla29mZkBzdHJlYW1idWZAQFVBRUpKVzRzZWVrX2RpckBpb3NAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBzdHJzdHJlYW1idWY6OnNlZWtvZmYobG9uZyxlbnVtIGlvczo6c2Vla19kaXIsaW50KQ0KKz9zZWVrb2ZmQHN0cnN0cmVhbWJ1ZkBAVUFFSkpXNHNlZWtfZGlyQGlvc0BASEBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06OnNlZWtwKGxvbmcpDQorP3NlZWtwQG9zdHJlYW1AQFFBRUFBVjFASkBaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06OnNlZWtwKGxvbmcsZW51bSBpb3M6OnNlZWtfZGlyKQ0KKz9zZWVrcEBvc3RyZWFtQEBRQUVBQVYxQEpXNHNlZWtfZGlyQGlvc0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzZWVrcG9zKGxvbmcsaW50KQ0KKz9zZWVrcG9zQHN0cmVhbWJ1ZkBAVUFFSkpIQFoNCis7IHZvaWQgKF9fY2RlY2wqX19jZGVjbCBzZXRfbmV3X2hhbmRsZXIodm9pZCAoX19jZGVjbCopKHZvaWQpKSkodm9pZCkNCis/c2V0X25ld19oYW5kbGVyQEBZQVA2QVhYWlA2QVhYWkBaDQorOyB2b2lkIChfX2NkZWNsKl9fY2RlY2wgc2V0X3Rlcm1pbmF0ZSh2b2lkIChfX2NkZWNsKikodm9pZCkpKSh2b2lkKQ0KKz9zZXRfdGVybWluYXRlQEBZQVA2QVhYWlA2QVhYWkBaDQorOyB2b2lkIChfX2NkZWNsKl9fY2RlY2wgc2V0X3VuZXhwZWN0ZWQodm9pZCAoX19jZGVjbCopKHZvaWQpKSkodm9pZCkNCis/c2V0X3VuZXhwZWN0ZWRAQFlBUDZBWFhaUDZBWFhaQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c2V0YihjaGFyICosY2hhciAqLGludCkNCis/c2V0YkBzdHJlYW1idWZAQElBRVhQQUQwSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3Mgc3RyZWFtYnVmICogX190aGlzY2FsbCBmaWxlYnVmOjpzZXRidWYoY2hhciAqLGludCkNCis/c2V0YnVmQGZpbGVidWZAQFVBRVBBVnN0cmVhbWJ1ZkBAUEFESEBaDQorOyBwdWJsaWM6IGNsYXNzIHN0cmVhbWJ1ZiAqIF9fdGhpc2NhbGwgZnN0cmVhbTo6c2V0YnVmKGNoYXIgKixpbnQpDQorP3NldGJ1ZkBmc3RyZWFtQEBRQUVQQVZzdHJlYW1idWZAQFBBREhAWg0KKzsgcHVibGljOiBjbGFzcyBzdHJlYW1idWYgKiBfX3RoaXNjYWxsIGlmc3RyZWFtOjpzZXRidWYoY2hhciAqLGludCkNCis/c2V0YnVmQGlmc3RyZWFtQEBRQUVQQVZzdHJlYW1idWZAQFBBREhAWg0KKzsgcHVibGljOiBjbGFzcyBzdHJlYW1idWYgKiBfX3RoaXNjYWxsIG9mc3RyZWFtOjpzZXRidWYoY2hhciAqLGludCkNCis/c2V0YnVmQG9mc3RyZWFtQEBRQUVQQVZzdHJlYW1idWZAQFBBREhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIHN0cmVhbWJ1ZiAqIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzZXRidWYoY2hhciAqLGludCkNCis/c2V0YnVmQHN0cmVhbWJ1ZkBAVUFFUEFWMUBQQURIQFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBzdHJlYW1idWYgKiBfX3RoaXNjYWxsIHN0cnN0cmVhbWJ1Zjo6c2V0YnVmKGNoYXIgKixpbnQpDQorP3NldGJ1ZkBzdHJzdHJlYW1idWZAQFVBRVBBVnN0cmVhbWJ1ZkBAUEFESEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBpb3M6OnNldGYobG9uZykNCis/c2V0ZkBpb3NAQFFBRUpKQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIGlvczo6c2V0Zihsb25nLGxvbmcpDQorP3NldGZAaW9zQEBRQUVKSkpAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzZXRnKGNoYXIgKixjaGFyICosY2hhciAqKQ0KKz9zZXRnQHN0cmVhbWJ1ZkBASUFFWFBBRDAwQFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGlvczo6c2V0bG9jayh2b2lkKQ0KKz9zZXRsb2NrQGlvc0BAUUFBWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBzdHJlYW1idWY6OnNldGxvY2sodm9pZCkNCis/c2V0bG9ja0BzdHJlYW1idWZAQFFBRVhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBmaWxlYnVmOjpzZXRtb2RlKGludCkNCis/c2V0bW9kZUBmaWxlYnVmQEBRQUVISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIGZzdHJlYW06OnNldG1vZGUoaW50KQ0KKz9zZXRtb2RlQGZzdHJlYW1AQFFBRUhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgaWZzdHJlYW06OnNldG1vZGUoaW50KQ0KKz9zZXRtb2RlQGlmc3RyZWFtQEBRQUVISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIG9mc3RyZWFtOjpzZXRtb2RlKGludCkNCis/c2V0bW9kZUBvZnN0cmVhbUBAUUFFSEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzZXRwKGNoYXIgKixjaGFyICopDQorP3NldHBAc3RyZWFtYnVmQEBJQUVYUEFEMEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0ZGlvYnVmOjpzZXRyd2J1ZihpbnQsaW50KQ0KKz9zZXRyd2J1ZkBzdGRpb2J1ZkBAUUFFSEhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzZ2V0Yyh2b2lkKQ0KKz9zZ2V0Y0BzdHJlYW1idWZAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdHJlYW1idWY6OnNnZXRuKGNoYXIgKixpbnQpDQorP3NnZXRuQHN0cmVhbWJ1ZkBAUUFFSFBBREhAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IGNvbnN0ICBmaWxlYnVmOjpzaF9ub25lDQorP3NoX25vbmVAZmlsZWJ1ZkBAMkhCDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgY29uc3QgIGZpbGVidWY6OnNoX3JlYWQNCis/c2hfcmVhZEBmaWxlYnVmQEAySEINCis7IHB1YmxpYzogc3RhdGljIGludCBjb25zdCAgZmlsZWJ1Zjo6c2hfd3JpdGUNCis/c2hfd3JpdGVAZmlsZWJ1ZkBAMkhCDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c25leHRjKHZvaWQpDQorP3NuZXh0Y0BzdHJlYW1idWZAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBzdHJlYW1idWY6OnNwdXRiYWNrYyhjaGFyKQ0KKz9zcHV0YmFja2NAc3RyZWFtYnVmQEBRQUVIREBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c3B1dGMoaW50KQ0KKz9zcHV0Y0BzdHJlYW1idWZAQFFBRUhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjpzcHV0bihjaGFyIGNvbnN0ICosaW50KQ0KKz9zcHV0bkBzdHJlYW1idWZAQFFBRUhQQkRIQFoNCis7IHB1YmxpYzogc3RydWN0IF9pb2J1ZiAqIF9fdGhpc2NhbGwgc3RkaW9idWY6OnN0ZGlvZmlsZSh2b2lkKQ0KKz9zdGRpb2ZpbGVAc3RkaW9idWZAQFFBRVBBVV9pb2J1ZkBAWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c3Rvc3NjKHZvaWQpDQorP3N0b3NzY0BzdHJlYW1idWZAQFFBRVhYWg0KKzsgcHVibGljOiBjaGFyICogX190aGlzY2FsbCBpc3Ryc3RyZWFtOjpzdHIodm9pZCkNCis/c3RyQGlzdHJzdHJlYW1AQFFBRVBBRFhaDQorOyBwdWJsaWM6IGNoYXIgKiBfX3RoaXNjYWxsIG9zdHJzdHJlYW06OnN0cih2b2lkKQ0KKz9zdHJAb3N0cnN0cmVhbUBAUUFFUEFEWFoNCis7IHB1YmxpYzogY2hhciAqIF9fdGhpc2NhbGwgc3Ryc3RyZWFtOjpzdHIodm9pZCkNCis/c3RyQHN0cnN0cmVhbUBAUUFFUEFEWFoNCis7IHB1YmxpYzogY2hhciAqIF9fdGhpc2NhbGwgc3Ryc3RyZWFtYnVmOjpzdHIodm9pZCkNCis/c3RyQHN0cnN0cmVhbWJ1ZkBAUUFFUEFEWFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgIGlvczo6c3Vua193aXRoX3N0ZGlvDQorP3N1bmtfd2l0aF9zdGRpb0Bpb3NAQDBIQQ0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIGZpbGVidWY6OnN5bmModm9pZCkNCis/c3luY0BmaWxlYnVmQEBVQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgaXN0cmVhbTo6c3luYyh2b2lkKQ0KKz9zeW5jQGlzdHJlYW1AQFFBRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZGlvYnVmOjpzeW5jKHZvaWQpDQorP3N5bmNAc3RkaW9idWZAQFVBRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6c3luYyh2b2lkKQ0KKz9zeW5jQHN0cmVhbWJ1ZkBAVUFFSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3Ryc3RyZWFtYnVmOjpzeW5jKHZvaWQpDQorP3N5bmNAc3Ryc3RyZWFtYnVmQEBVQUVIWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19jZGVjbCBpb3M6OnN5bmNfd2l0aF9zdGRpbyh2b2lkKQ0KKz9zeW5jX3dpdGhfc3RkaW9AaW9zQEBTQVhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgaXN0cmVhbTo6dGVsbGcodm9pZCkNCis/dGVsbGdAaXN0cmVhbUBAUUFFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBvc3RyZWFtOjp0ZWxscCh2b2lkKQ0KKz90ZWxscEBvc3RyZWFtQEBRQUVKWFoNCis7IHZvaWQgX19jZGVjbCB0ZXJtaW5hdGUodm9pZCkNCis/dGVybWluYXRlQEBZQVhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IGNvbnN0ICBmaWxlYnVmOjp0ZXh0DQorP3RleHRAZmlsZWJ1ZkBAMkhCDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gKiBfX3RoaXNjYWxsIGlvczo6dGllKGNsYXNzIG9zdHJlYW0gKikNCis/dGllQGlvc0BAUUFFUEFWb3N0cmVhbUBAUEFWMkBAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICogX190aGlzY2FsbCBpb3M6OnRpZSh2b2lkKWNvbnN0IA0KKz90aWVAaW9zQEBRQkVQQVZvc3RyZWFtQEBYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgc3RyZWFtYnVmOjp1bmJ1ZmZlcmVkKGludCkNCis/dW5idWZmZXJlZEBzdHJlYW1idWZAQElBRVhIQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjp1bmJ1ZmZlcmVkKHZvaWQpY29uc3QgDQorP3VuYnVmZmVyZWRAc3RyZWFtYnVmQEBJQkVIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBmaWxlYnVmOjp1bmRlcmZsb3codm9pZCkNCis/dW5kZXJmbG93QGZpbGVidWZAQFVBRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIHN0ZGlvYnVmOjp1bmRlcmZsb3codm9pZCkNCis/dW5kZXJmbG93QHN0ZGlvYnVmQEBVQUVIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdHJzdHJlYW1idWY6OnVuZGVyZmxvdyh2b2lkKQ0KKz91bmRlcmZsb3dAc3Ryc3RyZWFtYnVmQEBVQUVIWFoNCis7IHZvaWQgX19jZGVjbCB1bmV4cGVjdGVkKHZvaWQpDQorP3VuZXhwZWN0ZWRAQFlBWFhaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBpb3M6OnVubG9jayh2b2lkKQ0KKz91bmxvY2tAaW9zQEBRQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIHN0cmVhbWJ1Zjo6dW5sb2NrKHZvaWQpDQorP3VubG9ja0BzdHJlYW1idWZAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgaW9zOjp1bmxvY2tidWYodm9pZCkNCis/dW5sb2NrYnVmQGlvc0BAUUFBWFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB2b2lkIF9fY2RlY2wgaW9zOjp1bmxvY2tjKHZvaWQpDQorP3VubG9ja2NAaW9zQEBLQVhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgaW9zOjp1bnNldGYobG9uZykNCis/dW5zZXRmQGlvc0BAUUFFSkpAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIGV4Y2VwdGlvbjo6d2hhdCh2b2lkKWNvbnN0IA0KKz93aGF0QGV4Y2VwdGlvbkBAVUJFUEJEWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgaW9zOjp3aWR0aChpbnQpDQorP3dpZHRoQGlvc0BAUUFFSEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBpb3M6OndpZHRoKHZvaWQpY29uc3QgDQorP3dpZHRoQGlvc0BAUUJFSFhaDQorOyBwdWJsaWM6IGNsYXNzIG9zdHJlYW0gJiBfX3RoaXNjYWxsIG9zdHJlYW06OndyaXRlKHNpZ25lZCBjaGFyIGNvbnN0ICosaW50KQ0KKz93cml0ZUBvc3RyZWFtQEBRQUVBQVYxQFBCQ0hAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjp3cml0ZShjaGFyIGNvbnN0ICosaW50KQ0KKz93cml0ZUBvc3RyZWFtQEBRQUVBQVYxQFBCREhAWg0KKzsgcHVibGljOiBjbGFzcyBvc3RyZWFtICYgX190aGlzY2FsbCBvc3RyZWFtOjp3cml0ZSh1bnNpZ25lZCBjaGFyIGNvbnN0ICosaW50KQ0KKz93cml0ZUBvc3RyZWFtQEBRQUVBQVYxQFBCRUhAWg0KKzsgcHJpdmF0ZTogY2xhc3Mgb3N0cmVhbSAmIF9fdGhpc2NhbGwgb3N0cmVhbTo6d3JpdGVwYWQoY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKikNCis/d3JpdGVwYWRAb3N0cmVhbUBAQUFFQUFWMUBQQkQwQFoNCis7IGNsYXNzIGlzdHJlYW0gJiBfX2NkZWNsIHdzKGNsYXNzIGlzdHJlYW0gJikNCis/d3NAQFlBQUFWaXN0cmVhbUBAQUFWMUBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCAgaW9zOjp4X2N1cmluZGV4DQorP3hfY3VyaW5kZXhAaW9zQEAwSEENCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgX0NSVF9DUklUSUNBTF9TRUNUSU9OICBpb3M6OnhfbG9ja2MNCis/eF9sb2NrY0Bpb3NAQDBVX0NSVF9DUklUSUNBTF9TRUNUSU9OQEBBDQorOyBwcml2YXRlOiBzdGF0aWMgbG9uZyAgaW9zOjp4X21heGJpdA0KKz94X21heGJpdEBpb3NAQDBKQQ0KKzsgcHJpdmF0ZTogc3RhdGljIGxvbmcgKiAgaW9zOjp4X3N0YXRlYnVmDQorP3hfc3RhdGVidWZAaW9zQEAwUEFKQQ0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fY2RlY2wgaW9zOjp4YWxsb2Modm9pZCkNCis/eGFsbG9jQGlvc0BAU0FIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBzdHJlYW1idWY6OnhzZ2V0bihjaGFyICosaW50KQ0KKz94c2dldG5Ac3RyZWFtYnVmQEBVQUVIUEFESEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgc3RyZWFtYnVmOjp4c3B1dG4oY2hhciBjb25zdCAqLGludCkNCis/eHNwdXRuQHN0cmVhbWJ1ZkBAVUFFSFBCREhAWg0KKyRJMTBfT1VUUFVUDQorX0NJYWNvcw0KK19DSWFzaW4NCitfQ0lhdGFuDQorX0NJYXRhbjINCitfQ0ljb3MNCitfQ0ljb3NoDQorX0NJZXhwDQorX0NJZm1vZA0KK19DSWxvZw0KK19DSWxvZzEwDQorX0NJcG93DQorX0NJc2luDQorX0NJc2luaA0KK19DSXNxcnQNCitfQ0l0YW4NCitfQ0l0YW5oDQorX0N4eFRocm93RXhjZXB0aW9uDQorX0VIX3Byb2xvZw0KK19IVUdFDQorX1hjcHRGaWx0ZXINCitfX0N4eEZyYW1lSGFuZGxlcg0KK19fQ3h4TG9uZ2ptcFVud2luZA0KK19fUlRDYXN0VG9Wb2lkDQorX19SVER5bmFtaWNDYXN0DQorX19SVHR5cGVpZA0KK19fU1RSSU5HVE9MRA0KK19fYXJnYw0KK19fYXJndg0KK19fZGxsb25leGl0DQorX19kb3NlcnJubw0KK19fZnBlY29kZQ0KK19fZ2V0bWFpbmFyZ3MNCitfX2luaXRlbnYNCitfX2lzYXNjaWkNCitfX2lzY3N5bQ0KK19faXNjc3ltZg0KK19fbGNvbnZfaW5pdA0KK19fbWJfY3VyX21heA0KK19fcF9fX2FyZ2MNCitfX3BfX19hcmd2DQorX19wX19faW5pdGVudg0KK19fcF9fX21iX2N1cl9tYXgNCitfX3BfX193YXJndg0KK19fcF9fX3dpbml0ZW52DQorX19wX19hY21kbG4NCitfX3BfX2FtYmxrc2l6DQorX19wX19jb21tb2RlDQorX19wX19kYXlsaWdodA0KK19fcF9fZHN0Ymlhcw0KK19fcF9fZW52aXJvbg0KK19fcF9fZm1vZGUNCitfX3BfX2lvYg0KK19fcF9fbWJjdHlwZQ0KK19fcF9fb3N2ZXINCitfX3BfX3BjdHlwZQ0KK19fcF9fcGdtcHRyDQorX19wX19wd2N0eXBlDQorX19wX190aW1lem9uZQ0KK19fcF9fdHpuYW1lDQorX19wX193Y21kbG4NCitfX3BfX3dlbnZpcm9uDQorX19wX193aW5tYWpvcg0KK19fcF9fd2lubWlub3INCitfX3BfX3dpbnZlcg0KK19fcF9fd3BnbXB0cg0KK19fcHhjcHRpbmZvcHRycw0KK19fc2V0X2FwcF90eXBlDQorX19zZXR1c2VybWF0aGVycg0KK19fdGhyZWFkaGFuZGxlDQorX190aHJlYWRpZA0KK19fdG9hc2NpaQ0KK19fdW5ETmFtZQ0KK19fd2FyZ3YNCitfX3dnZXRtYWluYXJncw0KK19fd2luaXRlbnYNCitfYWJub3JtYWxfdGVybWluYXRpb24NCitfYWNjZXNzDQorX2FjbWRsbg0KK19hZGpfZmRpdl9tMTZpDQorX2Fkal9mZGl2X20zMg0KK19hZGpfZmRpdl9tMzJpDQorX2Fkal9mZGl2X202NA0KK19hZGpfZmRpdl9yDQorX2Fkal9mZGl2cl9tMTZpDQorX2Fkal9mZGl2cl9tMzINCitfYWRqX2ZkaXZyX20zMmkNCitfYWRqX2ZkaXZyX202NA0KK19hZGpfZnBhdGFuDQorX2Fkal9mcHJlbQ0KK19hZGpfZnByZW0xDQorX2Fkal9mcHRhbg0KK19hZGp1c3RfZmRpdg0KK19hZXhpdF9ydG4NCitfYW1zZ19leGl0DQorX2Fzc2VydA0KK19hdG9kYmwNCitfYXRvbGRibA0KK19iZWVwDQorX2JlZ2ludGhyZWFkDQorX2JlZ2ludGhyZWFkZXgNCitfY19leGl0DQorX2NhYnMNCitfY2V4aXQNCitfY2dldHMNCitfY2hkaXINCitfY2hkcml2ZQ0KK19jaGdzaWduDQorX2NobW9kDQorX2Noc2l6ZQ0KK19jbGVhcmZwDQorX2Nsb3NlDQorX2NvbW1pdA0KK19jb21tb2RlDQorX2NvbnRyb2w4Nw0KK19jb250cm9sZnANCitfY29weXNpZ24NCitfY3ByaW50Zg0KK19jcHV0cw0KK19jcmVhdA0KK19jc2NhbmYNCitfY3R5cGUNCitfY3dhaXQNCitfZGF5bGlnaHQNCitfZHN0Ymlhcw0KK19kdXANCitfZHVwMg0KK19lY3Z0DQorX2VuZHRocmVhZA0KK19lbmR0aHJlYWRleA0KK19lbnZpcm9uDQorX2VvZg0KK19lcnJubw0KK19leGNlcHRfaGFuZGxlcjINCitfZXhjZXB0X2hhbmRsZXIzDQorX2V4ZWNsDQorX2V4ZWNsZQ0KK19leGVjbHANCitfZXhlY2xwZQ0KK19leGVjdg0KK19leGVjdmUNCitfZXhlY3ZwDQorX2V4ZWN2cGUNCitfZXhpdA0KK19leHBhbmQNCitfZmNsb3NlYWxsDQorX2ZjdnQNCitfZmRvcGVuDQorX2ZnZXRjaGFyDQorX2ZnZXR3Y2hhcg0KK19maWxidWYNCitfZmlsZWluZm8NCitfZmlsZWxlbmd0aA0KK19maWxlbGVuZ3RoaTY0DQorX2ZpbGVubw0KK19maW5kY2xvc2UNCitfZmluZGZpcnN0DQorX2ZpbmRmaXJzdGk2NA0KK19maW5kbmV4dA0KK19maW5kbmV4dGk2NA0KK19maW5pdGUNCitfZmxzYnVmDQorX2ZsdXNoYWxsDQorX2Ztb2RlDQorX2ZwY2xhc3MNCitfZnBpZWVlX2ZsdA0KK19mcHJlc2V0DQorX2ZwdXRjaGFyDQorX2ZwdXR3Y2hhcg0KK19mc29wZW4NCitfZnN0YXQNCitfZnN0YXRpNjQNCitfZnRpbWUNCitfZnRvbA0KK19mdWxscGF0aA0KK19mdXRpbWUNCitfZ2N2dA0KK19nZXRfb3NmaGFuZGxlDQorX2dldGNoDQorX2dldGNoZQ0KK19nZXRjd2QNCitfZ2V0ZGN3ZA0KK19nZXRkaXNrZnJlZQ0KK19nZXRkbGxwcm9jYWRkcg0KK19nZXRkcml2ZQ0KK19nZXRkcml2ZXMNCitfZ2V0bWF4c3RkaW8NCitfZ2V0bWJjcA0KK19nZXRwaWQNCitfZ2V0c3lzdGltZQ0KK19nZXR3DQorX2dldHdzDQorX2dsb2JhbF91bndpbmQyDQorX2hlYXBhZGQNCitfaGVhcGNoaw0KK19oZWFwbWluDQorX2hlYXBzZXQNCitfaGVhcHVzZWQNCitfaGVhcHdhbGsNCitfaHlwb3QNCitfaW5pdHRlcm0NCitfaW5wDQorX2lucGQNCitfaW5wdw0KK19pb2INCitfaXNhdHR5DQorX2lzY3R5cGUNCitfaXNtYmJhbG51bQ0KK19pc21iYmFscGhhDQorX2lzbWJiZ3JhcGgNCitfaXNtYmJrYWxudW0NCitfaXNtYmJrYW5hDQorX2lzbWJia3ByaW50DQorX2lzbWJia3B1bmN0DQorX2lzbWJibGVhZA0KK19pc21iYnByaW50DQorX2lzbWJicHVuY3QNCitfaXNtYmJ0cmFpbA0KK19pc21iY2FsbnVtDQorX2lzbWJjYWxwaGENCitfaXNtYmNkaWdpdA0KK19pc21iY2dyYXBoDQorX2lzbWJjaGlyYQ0KK19pc21iY2thdGENCitfaXNtYmNsMA0KK19pc21iY2wxDQorX2lzbWJjbDINCitfaXNtYmNsZWdhbA0KK19pc21iY2xvd2VyDQorX2lzbWJjcHJpbnQNCitfaXNtYmNwdW5jdA0KK19pc21iY3NwYWNlDQorX2lzbWJjc3ltYm9sDQorX2lzbWJjdXBwZXINCitfaXNtYnNsZWFkDQorX2lzbWJzdHJhaWwNCitfaXNuYW4NCitfaXRvYQ0KK19pdG93DQorX2owDQorX2oxDQorX2puDQorX2tiaGl0DQorX2xmaW5kDQorX2xvYWRkbGwNCitfbG9jYWxfdW53aW5kMg0KK19sb2NraW5nDQorX2xvZ2INCitfbG9uZ2ptcGV4DQorX2xyb3RsDQorX2xyb3RyDQorX2xzZWFyY2gNCitfbHNlZWsNCitfbHNlZWtpNjQNCitfbHRvYQ0KK19sdG93DQorX21ha2VwYXRoDQorX21iYnRvbWJjDQorX21iYnR5cGUNCitfbWJjY3B5DQorX21iY2ppc3Rvam1zDQorX21iY2ptc3RvamlzDQorX21iY2xlbg0KK19tYmN0b2hpcmENCitfbWJjdG9rYXRhDQorX21iY3RvbG93ZXINCitfbWJjdG9tYmINCitfbWJjdG91cHBlcg0KK19tYmN0eXBlDQorX21ic2J0eXBlDQorX21ic2NhdA0KK19tYnNjaHINCitfbWJzY21wDQorX21ic2NvbGwNCitfbWJzY3B5DQorX21ic2NzcG4NCitfbWJzZGVjDQorX21ic2R1cA0KK19tYnNpY21wDQorX21ic2ljb2xsDQorX21ic2luYw0KK19tYnNsZW4NCitfbWJzbHdyDQorX21ic25iY2F0DQorX21ic25iY21wDQorX21ic25iY250DQorX21ic25iY29sbA0KK19tYnNuYmNweQ0KK19tYnNuYmljbXANCitfbWJzbmJpY29sbA0KK19tYnNuYnNldA0KK19tYnNuY2F0DQorX21ic25jY250DQorX21ic25jbXANCitfbWJzbmNvbGwNCitfbWJzbmNweQ0KK19tYnNuZXh0Yw0KK19tYnNuaWNtcA0KK19tYnNuaWNvbGwNCitfbWJzbmluYw0KK19tYnNuc2V0DQorX21ic3BicmsNCitfbWJzcmNocg0KK19tYnNyZXYNCitfbWJzc2V0DQorX21ic3Nwbg0KK19tYnNzcG5wDQorX21ic3N0cg0KK19tYnN0b2sNCitfbWJzdHJsZW4NCitfbWJzdXByDQorX21lbWNjcHkNCitfbWVtaWNtcA0KK19ta2Rpcg0KK19ta3RlbXANCitfbXNpemUNCitfbXRsb2NrDQorX210dW5sb2NrDQorX25leHRhZnRlcg0KK19vbmV4aXQNCitfb3Blbg0KK19vcGVuX29zZmhhbmRsZQ0KK19vc3Zlcg0KK19vdXRwDQorX291dHBkDQorX291dHB3DQorX3BjbG9zZQ0KK19wY3R5cGUNCitfcGdtcHRyDQorX3BpcGUNCitfcG9wZW4NCitfcHVyZWNhbGwNCitfcHV0Y2gNCitfcHV0ZW52DQorX3B1dHcNCitfcHV0d3MNCitfcHdjdHlwZQ0KK19yZWFkDQorX3JtZGlyDQorX3JtdG1wDQorX3JvdGwNCitfcm90cg0KK19zYWZlX2ZkaXYNCitfc2FmZV9mZGl2cg0KK19zYWZlX2ZwcmVtDQorX3NhZmVfZnByZW0xDQorX3NjYWxiDQorX3NlYXJjaGVudg0KK19zZWhfbG9uZ2ptcF91bndpbmQNCitfc2V0X2Vycm9yX21vZGUNCitfc2V0ZXJyb3Jtb2RlDQorX3NldGptcA0KK19zZXRqbXAzDQorX3NldG1heHN0ZGlvDQorX3NldG1iY3ANCitfc2V0bW9kZQ0KK19zZXRzeXN0aW1lDQorX3NsZWVwDQorX3NucHJpbnRmDQorX3Nud3ByaW50Zg0KK19zb3Blbg0KK19zcGF3bmwNCitfc3Bhd25sZQ0KK19zcGF3bmxwDQorX3NwYXdubHBlDQorX3NwYXdudg0KK19zcGF3bnZlDQorX3NwYXdudnANCitfc3Bhd252cGUNCitfc3BsaXRwYXRoDQorX3N0YXQNCitfc3RhdGk2NA0KK19zdGF0dXNmcA0KK19zdHJjbXBpDQorX3N0cmRhdGUNCitfc3RyZHVwDQorX3N0cmVycm9yDQorX3N0cmljbXANCitfc3RyaWNvbGwNCitfc3RybHdyDQorX3N0cm5jb2xsDQorX3N0cm5pY21wDQorX3N0cm5pY29sbA0KK19zdHJuc2V0DQorX3N0cnJldg0KK19zdHJzZXQNCitfc3RydGltZQ0KK19zdHJ1cHINCitfc3dhYg0KK19zeXNfZXJybGlzdA0KK19zeXNfbmVycg0KK190ZWxsDQorX3RlbGxpNjQNCitfdGVtcG5hbQ0KK190aW1lem9uZQ0KK190b2xvd2VyDQorX3RvdXBwZXINCitfdHpuYW1lDQorX3R6c2V0DQorX3VsdG9hDQorX3VsdG93DQorX3VtYXNrDQorX3VuZ2V0Y2gNCitfdW5saW5rDQorX3VubG9hZGRsbA0KK191dGltZQ0KK192c25wcmludGYNCitfdnNud3ByaW50Zg0KK193YWNjZXNzDQorX3dhc2N0aW1lDQorX3djaGRpcg0KK193Y2htb2QNCitfd2NtZGxuDQorX3djcmVhdA0KK193Y3NkdXANCitfd2NzaWNtcA0KK193Y3NpY29sbA0KK193Y3Nsd3INCitfd2NzbmNvbGwNCitfd2NzbmljbXANCitfd2Nzbmljb2xsDQorX3djc25zZXQNCitfd2NzcmV2DQorX3djc3NldA0KK193Y3N1cHINCitfd2N0aW1lDQorX3dlbnZpcm9uDQorX3dleGVjbA0KK193ZXhlY2xlDQorX3dleGVjbHANCitfd2V4ZWNscGUNCitfd2V4ZWN2DQorX3dleGVjdmUNCitfd2V4ZWN2cA0KK193ZXhlY3ZwZQ0KK193ZmRvcGVuDQorX3dmaW5kZmlyc3QNCitfd2ZpbmRmaXJzdGk2NA0KK193ZmluZG5leHQNCitfd2ZpbmRuZXh0aTY0DQorX3dmb3Blbg0KK193ZnJlb3Blbg0KK193ZnNvcGVuDQorX3dmdWxscGF0aA0KK193Z2V0Y3dkDQorX3dnZXRkY3dkDQorX3dnZXRlbnYNCitfd2lubWFqb3INCitfd2lubWlub3INCitfd2ludmVyDQorX3dtYWtlcGF0aA0KK193bWtkaXINCitfd21rdGVtcA0KK193b3Blbg0KK193cGVycm9yDQorX3dwZ21wdHINCitfd3BvcGVuDQorX3dwdXRlbnYNCitfd3JlbW92ZQ0KK193cmVuYW1lDQorX3dyaXRlDQorX3dybWRpcg0KK193c2VhcmNoZW52DQorX3dzZXRsb2NhbGUNCitfd3NvcGVuDQorX3dzcGF3bmwNCitfd3NwYXdubGUNCitfd3NwYXdubHANCitfd3NwYXdubHBlDQorX3dzcGF3bnYNCitfd3NwYXdudmUNCitfd3NwYXdudnANCitfd3NwYXdudnBlDQorX3dzcGxpdHBhdGgNCitfd3N0YXQNCitfd3N0YXRpNjQNCitfd3N0cmRhdGUNCitfd3N0cnRpbWUNCitfd3N5c3RlbQ0KK193dGVtcG5hbQ0KK193dG1wbmFtDQorX3d0b2kNCitfd3RvbA0KK193dW5saW5rDQorX3d1dGltZQ0KK195MA0KK195MQ0KK195bg0KK2Fib3J0DQorYWJzDQorYWNvcw0KK2FzY3RpbWUNCithc2luDQorYXRhbg0KK2F0YW4yDQorYXRleGl0DQorYXRvZg0KK2F0b2kNCithdG9sDQorYnNlYXJjaA0KK2NhbGxvYw0KK2NlaWwNCitjbGVhcmVycg0KK2Nsb2NrDQorY29zDQorY29zaA0KK2N0aW1lDQorZGlmZnRpbWUNCitkaXYNCitleGl0DQorZXhwDQorZmFicw0KK2ZjbG9zZQ0KK2Zlb2YNCitmZXJyb3INCitmZmx1c2gNCitmZ2V0Yw0KK2ZnZXRwb3MNCitmZ2V0cw0KK2ZnZXR3Yw0KK2ZnZXR3cw0KK2Zsb29yDQorZm1vZA0KK2ZvcGVuDQorZnByaW50Zg0KK2ZwdXRjDQorZnB1dHMNCitmcHV0d2MNCitmcHV0d3MNCitmcmVhZA0KK2ZyZWUNCitmcmVvcGVuDQorZnJleHANCitmc2NhbmYNCitmc2Vlaw0KK2ZzZXRwb3MNCitmdGVsbA0KK2Z3cHJpbnRmDQorZndyaXRlDQorZndzY2FuZg0KK2dldGMNCitnZXRjaGFyDQorZ2V0ZW52DQorZ2V0cw0KK2dldHdjDQorZ2V0d2NoYXINCitnbXRpbWUNCitpc193Y3R5cGUNCitpc2FsbnVtDQoraXNhbHBoYQ0KK2lzY250cmwNCitpc2RpZ2l0DQoraXNncmFwaA0KK2lzbGVhZGJ5dGUNCitpc2xvd2VyDQoraXNwcmludA0KK2lzcHVuY3QNCitpc3NwYWNlDQoraXN1cHBlcg0KK2lzd2FsbnVtDQoraXN3YWxwaGENCitpc3dhc2NpaQ0KK2lzd2NudHJsDQoraXN3Y3R5cGUNCitpc3dkaWdpdA0KK2lzd2dyYXBoDQoraXN3bG93ZXINCitpc3dwcmludA0KK2lzd3B1bmN0DQoraXN3c3BhY2UNCitpc3d1cHBlcg0KK2lzd3hkaWdpdA0KK2lzeGRpZ2l0DQorbGFicw0KK2xkZXhwDQorbGRpdg0KK2xvY2FsZWNvbnYNCitsb2NhbHRpbWUNCitsb2cNCitsb2cxMA0KK2xvbmdqbXANCittYWxsb2MNCittYmxlbg0KK21ic3Rvd2NzDQorbWJ0b3djDQorbWVtY2hyDQorbWVtY21wDQorbWVtY3B5DQorbWVtbW92ZQ0KK21lbXNldA0KK21rdGltZQ0KK21vZGYNCitwZXJyb3INCitwb3cNCitwcmludGYNCitwdXRjDQorcHV0Y2hhcg0KK3B1dHMNCitwdXR3Yw0KK3B1dHdjaGFyDQorcXNvcnQNCityYWlzZQ0KK3JhbmQNCityZWFsbG9jDQorcmVtb3ZlDQorcmVuYW1lDQorcmV3aW5kDQorc2NhbmYNCitzZXRidWYNCitzZXRsb2NhbGUNCitzZXR2YnVmDQorc2lnbmFsDQorc2luDQorc2luaA0KK3NwcmludGYNCitzcXJ0DQorc3JhbmQNCitzc2NhbmYNCitzdHJjYXQNCitzdHJjaHINCitzdHJjbXANCitzdHJjb2xsDQorc3RyY3B5DQorc3RyY3Nwbg0KK3N0cmVycm9yDQorc3RyZnRpbWUNCitzdHJsZW4NCitzdHJuY2F0DQorc3RybmNtcA0KK3N0cm5jcHkNCitzdHJwYnJrDQorc3RycmNocg0KK3N0cnNwbg0KK3N0cnN0cg0KK3N0cnRvZA0KK3N0cnRvaw0KK3N0cnRvbA0KK3N0cnRvdWwNCitzdHJ4ZnJtDQorc3dwcmludGYNCitzd3NjYW5mDQorc3lzdGVtDQordGFuDQordGFuaA0KK3RpbWUNCit0bXBmaWxlDQordG1wbmFtDQordG9sb3dlcg0KK3RvdXBwZXINCit0b3dsb3dlcg0KK3Rvd3VwcGVyDQordW5nZXRjDQordW5nZXR3Yw0KK3ZmcHJpbnRmDQordmZ3cHJpbnRmDQordnByaW50Zg0KK3ZzcHJpbnRmDQordnN3cHJpbnRmDQordndwcmludGYNCit3Y3NjYXQNCit3Y3NjaHINCit3Y3NjbXANCit3Y3Njb2xsDQord2NzY3B5DQord2NzY3Nwbg0KK3djc2Z0aW1lDQord2NzbGVuDQord2NzbmNhdA0KK3djc25jbXANCit3Y3NuY3B5DQord2NzcGJyaw0KK3djc3JjaHINCit3Y3NzcG4NCit3Y3NzdHINCit3Y3N0b2QNCit3Y3N0b2sNCit3Y3N0b2wNCit3Y3N0b21icw0KK3djc3RvdWwNCit3Y3N4ZnJtDQord2N0b21iDQord3ByaW50Zg0KK3dzY2FuZg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc3ZmdzMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3ZmdzMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNjMyZTUwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zdmZ3MzIuZGVmCkBAIC0wLDAgKzEsNTUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNWRlczMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNWRlczMi5kbGwNCitFWFBPUlRTDQorVmlkZW9Gb3JXaW5kb3dzVmVyc2lvbg0KK0RyYXdEaWJCZWdpbg0KK0RyYXdEaWJDaGFuZ2VQYWxldHRlDQorRHJhd0RpYkNsb3NlDQorRHJhd0RpYkRyYXcNCitEcmF3RGliRW5kDQorRHJhd0RpYkdldEJ1ZmZlcg0KK0RyYXdEaWJHZXRQYWxldHRlDQorRHJhd0RpYk9wZW4NCitEcmF3RGliUHJvZmlsZURpc3BsYXkNCitEcmF3RGliUmVhbGl6ZQ0KK0RyYXdEaWJTZXRQYWxldHRlDQorRHJhd0RpYlN0YXJ0DQorRHJhd0RpYlN0b3ANCitEcmF3RGliVGltZQ0KK0dldE9wZW5GaWxlTmFtZVByZXZpZXcNCitHZXRPcGVuRmlsZU5hbWVQcmV2aWV3QQ0KK0dldE9wZW5GaWxlTmFtZVByZXZpZXdXDQorR2V0U2F2ZUZpbGVOYW1lUHJldmlld0ENCitHZXRTYXZlRmlsZU5hbWVQcmV2aWV3Vw0KK0lDQ2xvc2UNCitJQ0NvbXByZXNzDQorSUNDb21wcmVzc29yQ2hvb3NlDQorSUNDb21wcmVzc29yRnJlZQ0KK0lDRGVjb21wcmVzcw0KK0lDRHJhdw0KK0lDRHJhd0JlZ2luDQorSUNHZXREaXNwbGF5Rm9ybWF0DQorSUNHZXRJbmZvDQorSUNJbWFnZUNvbXByZXNzDQorSUNJbWFnZURlY29tcHJlc3MNCitJQ0luZm8NCitJQ0luc3RhbGwNCitJQ0xvY2F0ZQ0KK0lDTVRodW5rMzINCitJQ09wZW4NCitJQ09wZW5GdW5jdGlvbg0KK0lDUmVtb3ZlDQorSUNTZW5kTWVzc2FnZQ0KK0lDU2VxQ29tcHJlc3NGcmFtZQ0KK0lDU2VxQ29tcHJlc3NGcmFtZUVuZA0KK0lDU2VxQ29tcHJlc3NGcmFtZVN0YXJ0DQorTUNJV25kQ3JlYXRlDQorTUNJV25kQ3JlYXRlQQ0KK01DSVduZENyZWF0ZVcNCitNQ0lXbmRSZWdpc3RlckNsYXNzDQorU3RyZXRjaERJQg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc3ZpZGMzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXN2aWRjMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQxMzNkN2YKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXN2aWRjMzIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU1ZJREMzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNWSURDMzIuZGxsDQorRVhQT1JUUw0KK0RyaXZlclByb2MNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXN2aWRjdGwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zdmlkY3RsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYWQzZWQxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zdmlkY3RsLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TVmlkQ3RsLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU1ZpZEN0bC5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitHZXRQcm94eURsbEluZm8NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXN3M3BydC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXN3M3BydC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzJlMDdmYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3czcHJ0LmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TVzNQUlQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TVzNQUlQuZGxsDQorRVhQT1JUUw0KK0dldEV4dGVuc2lvblZlcnNpb24NCitIdHRwRXh0ZW5zaW9uUHJvYw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc3dlYmR2ZC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXN3ZWJkdmQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU4NjMxMzcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXN3ZWJkdmQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNXZWJEVkQuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TV2ViRFZELkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc3dtZG0uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zd21kbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmI2ZTljYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3dtZG0uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXN3bWRtLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBtc3dtZG0uRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zd3NvY2suZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zd3NvY2suZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjViYjEzNzUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXN3c29jay5kZWYKQEAgLTAsMCArMSw0MCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU1dTT0NLLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU1dTT0NLLmRsbA0KK0VYUE9SVFMNCitTZXJ2aWNlTWFpbg0KK1N2Y2hvc3RQdXNoU2VydmljZUdsb2JhbHMNCitBY2NlcHRFeA0KK0VudW1Qcm90b2NvbHNBDQorRW51bVByb3RvY29sc1cNCitHZXRBY2NlcHRFeFNvY2thZGRycw0KK0dldEFkZHJlc3NCeU5hbWVBDQorR2V0QWRkcmVzc0J5TmFtZVcNCitHZXROYW1lQnlUeXBlQQ0KK0dldE5hbWVCeVR5cGVXDQorR2V0U2VydmljZUENCitHZXRTZXJ2aWNlVw0KK0dldFR5cGVCeU5hbWVBDQorR2V0VHlwZUJ5TmFtZVcNCitNaWdyYXRlV2luc29ja0NvbmZpZ3VyYXRpb24NCitOUExvYWROYW1lU3BhY2VzDQorTlNQU3RhcnR1cA0KK1NldFNlcnZpY2VBDQorU2V0U2VydmljZVcNCitTdGFydFdzZHBTZXJ2aWNlDQorU3RvcFdzZHBTZXJ2aWNlDQorVHJhbnNtaXRGaWxlDQorV1NBUmVjdkV4DQorV1NQU3RhcnR1cA0KK2RuX2V4cGFuZA0KK2dldG5ldGJ5bmFtZQ0KK2luZXRfbmV0d29yaw0KK3JjbWQNCityZXhlYw0KK3JyZXN2cG9ydA0KK3NfcGVycm9yDQorc2V0aG9zdG5hbWUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXN4YWN0cHMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zeGFjdHBzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NDgzYWFjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd21zeGFjdHBzLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1TWEFDVFBTLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU1hBQ1RQUy5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxNYWluDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd21zeGJkZTQwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3hiZGU0MC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODUzOGNiZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3hiZGU0MC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBtc3hiZGU0MC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbXN4YmRlNDAuRExMDQorRVhQT1JUUw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc3htbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXN4bWwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM3OTEyZjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXN4bWwuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNYTUwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1TWE1MLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc3htbDIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zeG1sMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTZiOGRkMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3htbDIuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNYTUwyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU1hNTDIuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsTWFpbg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc3htbDMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd21zeG1sMy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjdjM2IxMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtc3htbDMuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVNYTUwzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNU1hNTDMuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsTWFpbg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtc3l1di5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXN5dXYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdkNGQ4ODcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXN5dXYuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBNU1lVVi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVNZVVYuZGxsDQorRVhQT1JUUw0KK0RyaXZlclByb2MNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXR4Y2x1LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtdHhjbHUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIyZmIwZDkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXR4Y2x1LmRlZgpAQCAtMCwwICsxLDkzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1UWENMVS5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTVRYQ0xVLkRMTA0KK0VYUE9SVFMNCitNdHhDbHVCcmluZ09ubGluZURUQzJBDQorTXR4Q2x1QnJpbmdPbmxpbmVEVEMyVw0KK010eENsdUJyaW5nT25saW5lRFRDQQ0KK010eENsdUJyaW5nT25saW5lRFRDVw0KK010eENsdUNoZWNrSWZPa1RvU3RhcnREdGMNCitNdHhDbHVDaGVja1BvaW50Q3J5cHRvVw0KK010eENsdUNoZWNrcG9pbnRSZWdpc3RyeUENCitNdHhDbHVDaGVja3BvaW50UmVnaXN0cnlXDQorTXR4Q2x1Q2xvc2VOb2RlTm90aWZ5DQorTXR4Q2x1Q3JlYXRlRHRjUmVzb3VyY2VLZXlXDQorTXR4Q2x1Q3JlYXRlRHRjUmVzb3VyY2VWYWx1ZVcNCitNdHhDbHVDcmVhdGVEdGNSZXNvdXJjZVcNCitNdHhDbHVDcmVhdGVSZWNvbW1lbmRlZExvZ0luZm8NCitNdHhDbHVEZWxldGVEdGNSZXNvdXJjZUtleVcNCitNdHhDbHVEZWxldGVEdGNSZXNvdXJjZVZhbHVlVw0KK010eENsdURvZXNEVENSZXNvdXJjZUV4aXN0QQ0KK010eENsdURvZXNEVENSZXNvdXJjZUV4aXN0Vw0KK010eENsdUdldENvbXB1dGVyTmFtZUENCitNdHhDbHVHZXRDb21wdXRlck5hbWVXDQorTXR4Q2x1R2V0RFRDSW5zdGFsbFN0YXRlDQorTXR4Q2x1R2V0RFRDSW5zdGFsbFZlcnNpb24NCitNdHhDbHVHZXREVENJcEFkZHJlc3NBDQorTXR4Q2x1R2V0RFRDSXBBZGRyZXNzVw0KK010eENsdUdldERUQ0xvZ1BhdGhBDQorTXR4Q2x1R2V0RFRDTG9nUGF0aFcNCitNdHhDbHVHZXREVENMb2dTaXplQQ0KK010eENsdUdldERUQ0xvZ1NpemVXDQorTXR4Q2x1R2V0RFRDT3duZXJBDQorTXR4Q2x1R2V0RFRDT3duZXJXDQorTXR4Q2x1R2V0RFRDU3RhdHVzQQ0KK010eENsdUdldERUQ1N0YXR1c1cNCitNdHhDbHVHZXREVENWaXJ0dWFsU2VydmVyTmFtZUENCitNdHhDbHVHZXREVENWaXJ0dWFsU2VydmVyTmFtZVcNCitNdHhDbHVHZXREdGNVc2VySW5mbw0KK010eENsdUdldEpvaW5NYXN0ZXJBDQorTXR4Q2x1R2V0Sm9pbk1hc3RlclcNCitNdHhDbHVHZXRMaXN0T2ZTaGFyZWREaXNrc0ENCitNdHhDbHVHZXRMaXN0T2ZTaGFyZWREaXNrc09uVmlydHVhbFNlcnZlckENCitNdHhDbHVHZXRMaXN0T2ZTaGFyZWREaXNrc09uVmlydHVhbFNlcnZlclcNCitNdHhDbHVHZXRMaXN0T2ZTaGFyZWREaXNrc1cNCitNdHhDbHVHZXRMaXN0T2ZWaXJ0dWFsU2VydmVyc0ENCitNdHhDbHVHZXRMaXN0T2ZWaXJ0dWFsU2VydmVyc1cNCitNdHhDbHVHZXROZXdDcnlwdG9LZXkNCitNdHhDbHVHZXROb2RlQ2x1c3RlclN0YXRlVw0KK010eENsdUdldFNlY3VyaXR5UmVnVmFsdWUNCitNdHhDbHVJbml0aWFsaXplDQorTXR4Q2x1SXNDbHVzdGVyUHJlc2VudA0KK010eENsdUlzQ2x1c3RlclByZXNlbnRFeEENCitNdHhDbHVJc0NsdXN0ZXJQcmVzZW50RXhXDQorTXR4Q2x1SXNOZXR3b3JrTmFtZUluTG9jYWxDbHVzdGVyVw0KK010eENsdUlzU2FtZUNsdXN0ZXJXDQorTXR4Q2x1SXNTYW1lTm9kZUENCitNdHhDbHVJc1NhbWVOb2RlVw0KK010eENsdUlzU2hhcmVkRGlza0ENCitNdHhDbHVJc1NoYXJlZERpc2tXDQorTXR4Q2x1SXNWaXJ0dWFsU2VydmVySW5Mb2NhbENsdXN0ZXJBDQorTXR4Q2x1SXNWaXJ0dWFsU2VydmVySW5Mb2NhbENsdXN0ZXJXDQorTXR4Q2x1Sm9pbkRUQ1Jlc291cmNlDQorTXR4Q2x1TGlzdE5vZGVzQQ0KK010eENsdUxpc3ROb2Rlc1cNCitNdHhDbHVNb3ZlRFRDR3JvdXBBDQorTXR4Q2x1TW92ZURUQ0dyb3VwVw0KK010eENsdU5vZGVOb3RpZnlBDQorTXR4Q2x1Tm9kZU5vdGlmeVcNCitNdHhDbHVRdWVyeUR0Y1Jlc291cmNlVmFsdWVXDQorTXR4Q2x1UmVnaXN0ZXJEVENSZXNvdXJjZUENCitNdHhDbHVSZWdpc3RlckRUQ1Jlc291cmNlVw0KK010eENsdVJlbW92ZUFsbFJlZ2lzdHJ5Q2hlY2twb2ludHMNCitNdHhDbHVSZW1vdmVDaGVja3BvaW50UmVnaXN0cnlBDQorTXR4Q2x1UmVtb3ZlQ2hlY2twb2ludFJlZ2lzdHJ5Vw0KK010eENsdVNldERUQ0xvZ1BhdGhBDQorTXR4Q2x1U2V0RFRDTG9nUGF0aFcNCitNdHhDbHVTZXREVENMb2dTaXplQQ0KK010eENsdVNldERUQ0xvZ1NpemVXDQorTXR4Q2x1U2V0RHRjVXNlckluZm8NCitNdHhDbHVTZXROZXdDcnlwdG9LZXkNCitNdHhDbHVTZXRTZWN1cml0eVJlZ1ZhbHVlDQorTXR4Q2x1VGFrZU9mZmxpbmVEVEMyVw0KK010eENsdVRha2VPZmZsaW5lRFRDQQ0KK010eENsdVRha2VPZmZsaW5lRFRDVw0KK010eENsdVVuaW5pdGlhbGl6ZQ0KK010eENsdVVwZ3JhZGVEdGNSZXNvdXJjZVcNCitTdGFydHVwDQorV2FzRFRDSW5zdGFsbGVkQnlTUUwNCitEbGxNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd210eGRtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dtdHhkbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzYwYzc5MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtdHhkbS5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE1UeERNLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNVHhETS5kbGwNCitFWFBPUlRTDQorR2V0RGlzcGVuc2VyTWFuYWdlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtdHhleC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXR4ZXguZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVjYzA3ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXR4ZXguZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXR4ZXguZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG10eGV4LmRsbA0KK0VYUE9SVFMNCitEbGxHZXRDbGFzc09iamVjdA0KK0dldE9iamVjdENvbnRleHQNCitNVFNDcmVhdGVBY3Rpdml0eQ0KK1NhZmVSZWYNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bXR4bGVnaWguZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd210eGxlZ2loLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44Y2E5YmE2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd210eGxlZ2loLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVRYTEVHSUguRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE1UWExFR0lILkRMTA0KK0VYUE9SVFMNCitUcnlMZWdJbnRlcmZhY2VGaXJzdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dtdHhvY2kuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd210eG9jaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjFjYmVmYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dtdHhvY2kuZGVmCkBAIC0wLDAgKzEsNDggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVR4T0NJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNVHhPQ0kuZGxsDQorRVhQT1JUUw0KK29ibmRyYQ0KK29ibmRybg0KK29ibmRydg0KK29icmVhaw0KK29jYW4NCitvY2xvc2UNCitvY29mDQorb2NvbQ0KK29jb24NCitvZGVmaW4NCitvZGVzY3INCitvZGVzc3ANCitvZXJobXMNCitvZXJtc2cNCitvZXhlYw0KK29leGZldA0KK29leG4NCitvZmVuDQorb2ZldGNoDQorb2ZsbmcNCitvbG9nDQorb2xvZ29mDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorb29wZW4NCitvb3B0DQorb3BhcnNlDQorb3JvbA0KK29iaW5kcHMNCitvZGVmaW5wcw0KK29nZXRwaQ0KK29zZXRwaQ0KK29waW5pdA0KK29sb2dUcmFuc2FjdGVkDQorRW5saXN0DQorR2V0WGFTd2l0Y2gNCitNVHhPY2lJbml0DQorTVR4b2xvZw0KK01UeE9jaUdldFZlcnNpb24NCitNVHhPY2lSZWdpc3RlckN1cnNvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dteGljZmcuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd214aWNmZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTY4YmRjNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dteGljZmcuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVhJQ0ZHLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNWElDRkcuRExMDQorRVhQT1JUUw0KK0VudW1Qcm9wUGFnZXMNCitNeElDb0luc3RhbGxlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dteHBvcnQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd214cG9ydC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTI2OGMwNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dteHBvcnQuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTVhQT1JULkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBNWFBPUlQuRExMDQorRVhQT1JUUw0KK014UG9ydENvSW5zdGFsbGVyDQorTXhTZXJpYWxQb3J0UHJvcFBhZ2VQcm92aWRlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dteWNvbXB1dC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bXljb21wdXQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQwZWU3NmIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bXljb21wdXQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTXlDb21wdXQuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE15Q29tcHV0LkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dteWRvY3MuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd215ZG9jcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzM3ZDE0ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dteWRvY3MuZGVmCkBAIC0wLDAgKzEsMTQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXlkb2NzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBteWRvY3MuZGxsDQorRVhQT1JUUw0KK1BlclVzZXJJbml0DQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxJbnN0YWxsDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd25hcnJob29rLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3duYXJyaG9vay5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTdkYTc3NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3duYXJyaG9vay5kZWYKQEAgLTAsMCArMSw2NCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBOQVJSSE9PSy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTkFSUkhPT0suZGxsDQorRVhQT1JUUw0KKzsgdm9pZCBfX3N0ZGNhbGwgQmFja1RvQXBwbGljYXRpb24odm9pZCkNCis/QmFja1RvQXBwbGljYXRpb25AQFlHWFhaDQorOyBpbnQgX19zdGRjYWxsIEdldEFubm91bmNlTWVudSh2b2lkKQ0KKz9HZXRBbm5vdW5jZU1lbnVAQFlHSFhaDQorOyBpbnQgX19zdGRjYWxsIEdldEFubm91bmNlUG9wdXAodm9pZCkNCis/R2V0QW5ub3VuY2VQb3B1cEBAWUdIWFoNCis7IGludCBfX3N0ZGNhbGwgR2V0QW5ub3VuY2VUb29sVGlwcyh2b2lkKQ0KKz9HZXRBbm5vdW5jZVRvb2xUaXBzQEBZR0hYWg0KKzsgaW50IF9fc3RkY2FsbCBHZXRBbm5vdW5jZVdpbmRvdyh2b2lkKQ0KKz9HZXRBbm5vdW5jZVdpbmRvd0BAWUdIWFoNCis7IHZvaWQgX19zdGRjYWxsIEdldEN1cnJlbnRUZXh0KHVuc2lnbmVkIHNob3J0ICosaW50KQ0KKz9HZXRDdXJyZW50VGV4dEBAWUdYUEFHSEBaDQorOyBpbnQgX19zdGRjYWxsIEdldEVjaG9DaGFycyh2b2lkKQ0KKz9HZXRFY2hvQ2hhcnNAQFlHSFhaDQorOyBpbnQgX19zdGRjYWxsIEdldFJldmlld0xldmVsKHZvaWQpDQorP0dldFJldmlld0xldmVsQEBZR0hYWg0KKzsgaW50IF9fc3RkY2FsbCBHZXRSZXZpZXdTdHlsZSh2b2lkKQ0KKz9HZXRSZXZpZXdTdHlsZUBAWUdIWFoNCis7IGludCBfX3N0ZGNhbGwgR2V0VHJhY2tDYXJldCh2b2lkKQ0KKz9HZXRUcmFja0NhcmV0QEBZR0hYWg0KKzsgaW50IF9fc3RkY2FsbCBHZXRUcmFja0lucHV0Rm9jdXModm9pZCkNCis/R2V0VHJhY2tJbnB1dEZvY3VzQEBZR0hYWg0KKzsgaW50IF9fc3RkY2FsbCBHZXRUcmFja1NlY29uZGFyeSh2b2lkKQ0KKz9HZXRUcmFja1NlY29uZGFyeUBAWUdIWFoNCis7IGludCBfX3N0ZGNhbGwgSW5pdEtleXMoc3RydWN0IEhXTkRfXyAqKQ0KKz9Jbml0S2V5c0BAWUdIUEFVSFdORF9fQEBAWg0KKzsgaW50IF9fc3RkY2FsbCBJbml0TVNBQSh2b2lkKQ0KKz9Jbml0TVNBQUBAWUdIWFoNCis7IHZvaWQgX19zdGRjYWxsIFNldEFubm91bmNlTWVudShpbnQpDQorP1NldEFubm91bmNlTWVudUBAWUdYSEBaDQorOyB2b2lkIF9fc3RkY2FsbCBTZXRBbm5vdW5jZVBvcHVwKGludCkNCis/U2V0QW5ub3VuY2VQb3B1cEBAWUdYSEBaDQorOyB2b2lkIF9fc3RkY2FsbCBTZXRBbm5vdW5jZVRvb2xUaXBzKGludCkNCis/U2V0QW5ub3VuY2VUb29sVGlwc0BAWUdYSEBaDQorOyB2b2lkIF9fc3RkY2FsbCBTZXRBbm5vdW5jZVdpbmRvdyhpbnQpDQorP1NldEFubm91bmNlV2luZG93QEBZR1hIQFoNCis7IHZvaWQgX19zdGRjYWxsIFNldEN1cnJlbnRUZXh0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldEN1cnJlbnRUZXh0QEBZR1hQQkdAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgU2V0RWNob0NoYXJzKGludCkNCis/U2V0RWNob0NoYXJzQEBZR1hIQFoNCis7IHZvaWQgX19zdGRjYWxsIFNldFJldmlld0xldmVsKGludCkNCis/U2V0UmV2aWV3TGV2ZWxAQFlHWEhAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgU2V0UmV2aWV3U3R5bGUoaW50KQ0KKz9TZXRSZXZpZXdTdHlsZUBAWUdYSEBaDQorOyB2b2lkIF9fc3RkY2FsbCBTZXRUcmFja0NhcmV0KGludCkNCis/U2V0VHJhY2tDYXJldEBAWUdYSEBaDQorOyB2b2lkIF9fc3RkY2FsbCBTZXRUcmFja0lucHV0Rm9jdXMoaW50KQ0KKz9TZXRUcmFja0lucHV0Rm9jdXNAQFlHWEhAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgU2V0VHJhY2tTZWNvbmRhcnkoaW50KQ0KKz9TZXRUcmFja1NlY29uZGFyeUBAWUdYSEBaDQorOyBpbnQgX19zdGRjYWxsIFVuSW5pdE1TQUEodm9pZCkNCis/VW5Jbml0TVNBQUBAWUdIWFoNCis7IGludCBfX3N0ZGNhbGwgVW5pbml0S2V5cyh2b2lkKQ0KKz9VbmluaXRLZXlzQEBZR0hYWg0KKzsgdW5zaWduZWQgc2hvcnQgKiBfX3N0ZGNhbGwgbHN0cmNhdG4odW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqLGludCkNCis/bHN0cmNhdG5AQFlHUEFHUEFHMEhAWg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3duY29iamFwaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bmNvYmphcGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk2YTc1NTQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bmNvYmphcGkuZGVmCkBAIC0wLDAgKzEsMTggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTkNPYmpBUEkuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5DT2JqQVBJLkRMTA0KK0VYUE9SVFMNCitXbWlDb21taXRPYmplY3QNCitXbWlBZGRPYmplY3RQcm9wDQorV21pQ3JlYXRlT2JqZWN0DQorV21pQ3JlYXRlT2JqZWN0V2l0aEZvcm1hdA0KK1dtaUNyZWF0ZU9iamVjdFdpdGhQcm9wcw0KK1dtaURlc3Ryb3lPYmplY3QNCitXbWlFdmVudFNvdXJjZUNvbm5lY3QNCitXbWlFdmVudFNvdXJjZURpc2Nvbm5lY3QNCitXbWlJc09iamVjdEFjdGl2ZQ0KK1dtaVNldEFuZENvbW1pdE9iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3duZGRlYXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3duZGRlYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wYjIzNjA0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd25kZGVhcGkuZGVmCkBAIC0wLDAgKzEsMzYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTkRkZUFwaS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTkRkZUFwaS5kbGwNCitFWFBPUlRTDQorTkRkZVNoYXJlQWRkQQ0KK05EZGVTaGFyZURlbEENCitORGRlU2hhcmVFbnVtQQ0KK05EZGVTaGFyZUdldEluZm9BDQorTkRkZVNoYXJlU2V0SW5mb0ENCitORGRlR2V0RXJyb3JTdHJpbmdBDQorTkRkZUlzVmFsaWRTaGFyZU5hbWVBDQorTkRkZUlzVmFsaWRBcHBUb3BpY0xpc3RBDQorTkRkZVNwZWNpYWxDb21tYW5kQQ0KK05EZGVHZXRTaGFyZVNlY3VyaXR5QQ0KK05EZGVTZXRTaGFyZVNlY3VyaXR5QQ0KK05EZGVHZXRUcnVzdGVkU2hhcmVBDQorTkRkZVNldFRydXN0ZWRTaGFyZUENCitORGRlVHJ1c3RlZFNoYXJlRW51bUENCitORGRlU2hhcmVBZGRXDQorTkRkZVNoYXJlRGVsVw0KK05EZGVTaGFyZUVudW1XDQorTkRkZVNoYXJlR2V0SW5mb1cNCitORGRlU2hhcmVTZXRJbmZvVw0KK05EZGVHZXRFcnJvclN0cmluZ1cNCitORGRlSXNWYWxpZFNoYXJlTmFtZVcNCitORGRlSXNWYWxpZEFwcFRvcGljTGlzdFcNCitORGRlU3BlY2lhbENvbW1hbmRXDQorTkRkZUdldFNoYXJlU2VjdXJpdHlXDQorTkRkZVNldFNoYXJlU2VjdXJpdHlXDQorTkRkZUdldFRydXN0ZWRTaGFyZVcNCitORGRlU2V0VHJ1c3RlZFNoYXJlVw0KK05EZGVUcnVzdGVkU2hhcmVFbnVtVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3duZGRlbmIzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bmRkZW5iMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFmYWViN2UKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bmRkZW5iMzIuZGVmCkBAIC0wLDAgKzEsMjMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTkRERU5CMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5EREVOQjMyLmRsbA0KK0VYUE9SVFMNCitORERFSW5pdA0KK05EREVHZXRDQVBTDQorTkRERUdldE5ld0Nvbm5lY3Rpb24NCitORERFQWRkQ29ubmVjdGlvbg0KK05EREVEZWxldGVDb25uZWN0aW9uDQorTkRERUdldENvbm5lY3Rpb25TdGF0dXMNCitORERFUmN2UGFja2V0DQorTkRERVhtdFBhY2tldA0KK05EREVTZXRDb25uZWN0aW9uQ29uZmlnDQorTkRERVNodXRkb3duDQorTkRERVRpbWVTbGljZQ0KK05EREVHZXRDb25uZWN0aW9uQ29uZmlnDQorQ29uZmlndXJlDQorTG9nRGVidWdJbmZvDQorQ29uZmlndXJlRGxnUHJvYw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3duZXRhcGkzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bmV0YXBpMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAxMjY5N2MKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bmV0YXBpMzIuZGVmCkBAIC0wLDAgKzEsMzQ4IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE5FVEFQSTMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBORVRBUEkzMi5kbGwNCitFWFBPUlRTDQorQ3JlZHBWYWxpZGF0ZVRhcmdldE5hbWUNCitEc0FkZHJlc3NUb1NpdGVOYW1lc0ENCitEc0FkZHJlc3NUb1NpdGVOYW1lc0V4QQ0KK0RzQWRkcmVzc1RvU2l0ZU5hbWVzRXhXDQorRHNBZGRyZXNzVG9TaXRlTmFtZXNXDQorRHNEZXJlZ2lzdGVyRG5zSG9zdFJlY29yZHNBDQorRHNEZXJlZ2lzdGVyRG5zSG9zdFJlY29yZHNXDQorRHNFbnVtZXJhdGVEb21haW5UcnVzdHNBDQorRHNFbnVtZXJhdGVEb21haW5UcnVzdHNXDQorRHNHZXREY0Nsb3NlVw0KK0RzR2V0RGNOYW1lQQ0KK0RzR2V0RGNOYW1lVw0KK0RzR2V0RGNOYW1lV2l0aEFjY291bnRBDQorRHNHZXREY05hbWVXaXRoQWNjb3VudFcNCitEc0dldERjTmV4dEENCitEc0dldERjTmV4dFcNCitEc0dldERjT3BlbkENCitEc0dldERjT3BlblcNCitEc0dldERjU2l0ZUNvdmVyYWdlQQ0KK0RzR2V0RGNTaXRlQ292ZXJhZ2VXDQorRHNHZXRGb3Jlc3RUcnVzdEluZm9ybWF0aW9uVw0KK0RzR2V0U2l0ZU5hbWVBDQorRHNHZXRTaXRlTmFtZVcNCitEc01lcmdlRm9yZXN0VHJ1c3RJbmZvcm1hdGlvblcNCitEc1JvbGVBYm9ydERvd25sZXZlbFNlcnZlclVwZ3JhZGUNCitEc1JvbGVDYW5jZWwNCitEc1JvbGVEY0FzRGMNCitEc1JvbGVEY0FzUmVwbGljYQ0KK0RzUm9sZURlbW90ZURjDQorRHNSb2xlRG5zTmFtZVRvRmxhdE5hbWUNCitEc1JvbGVGcmVlTWVtb3J5DQorRHNSb2xlR2V0RGF0YWJhc2VGYWN0cw0KK0RzUm9sZUdldERjT3BlcmF0aW9uUHJvZ3Jlc3MNCitEc1JvbGVHZXREY09wZXJhdGlvblJlc3VsdHMNCitEc1JvbGVHZXRQcmltYXJ5RG9tYWluSW5mb3JtYXRpb24NCitEc1JvbGVJZm1IYW5kbGVGcmVlDQorRHNSb2xlU2VydmVyU2F2ZVN0YXRlRm9yVXBncmFkZQ0KK0RzUm9sZVVwZ3JhZGVEb3dubGV2ZWxTZXJ2ZXINCitEc1ZhbGlkYXRlU3VibmV0TmFtZUENCitEc1ZhbGlkYXRlU3VibmV0TmFtZVcNCitJX0Jyb3dzZXJEZWJ1Z0NhbGwNCitJX0Jyb3dzZXJEZWJ1Z1RyYWNlDQorSV9Ccm93c2VyUXVlcnlFbXVsYXRlZERvbWFpbnMNCitJX0Jyb3dzZXJRdWVyeU90aGVyRG9tYWlucw0KK0lfQnJvd3NlclF1ZXJ5U3RhdGlzdGljcw0KK0lfQnJvd3NlclJlc2V0TmV0bG9nb25TdGF0ZQ0KK0lfQnJvd3NlclJlc2V0U3RhdGlzdGljcw0KK0lfQnJvd3NlclNlcnZlckVudW0NCitJX0Jyb3dzZXJTZXROZXRsb2dvblN0YXRlDQorSV9OZXRBY2NvdW50RGVsdGFzDQorSV9OZXRBY2NvdW50U3luYw0KK0lfTmV0RGF0YWJhc2VEZWx0YXMNCitJX05ldERhdGFiYXNlUmVkbw0KK0lfTmV0RGF0YWJhc2VTeW5jMg0KK0lfTmV0RGF0YWJhc2VTeW5jDQorSV9OZXREZnNDcmVhdGVFeGl0UG9pbnQNCitJX05ldERmc0NyZWF0ZUxvY2FsUGFydGl0aW9uDQorSV9OZXREZnNEZWxldGVFeGl0UG9pbnQNCitJX05ldERmc0RlbGV0ZUxvY2FsUGFydGl0aW9uDQorSV9OZXREZnNGaXhMb2NhbFZvbHVtZQ0KK0lfTmV0RGZzR2V0RnRTZXJ2ZXJzDQorSV9OZXREZnNHZXRWZXJzaW9uDQorSV9OZXREZnNJc1RoaXNBRG9tYWluTmFtZQ0KK0lfTmV0RGZzTWFuYWdlclJlcG9ydFNpdGVJbmZvDQorSV9OZXREZnNNb2RpZnlQcmVmaXgNCitJX05ldERmc1NldExvY2FsVm9sdW1lU3RhdGUNCitJX05ldERmc1NldFNlcnZlckluZm8NCitJX05ldEdldERDTGlzdA0KK0lfTmV0R2V0Rm9yZXN0VHJ1c3RJbmZvcm1hdGlvbg0KK0lfTmV0TGlzdENhbm9uaWNhbGl6ZQ0KK0lfTmV0TGlzdFRyYXZlcnNlDQorSV9OZXRMb2dvbkNvbnRyb2wyDQorSV9OZXRMb2dvbkNvbnRyb2wNCitJX05ldExvZ29uR2V0RG9tYWluSW5mbw0KK0lfTmV0TG9nb25TYW1Mb2dvZmYNCitJX05ldExvZ29uU2FtTG9nb24NCitJX05ldExvZ29uU2FtTG9nb25FeA0KK0lfTmV0TG9nb25TYW1Mb2dvbldpdGhGbGFncw0KK0lfTmV0TG9nb25TZW5kVG9TYW0NCitJX05ldExvZ29uVWFzTG9nb2ZmDQorSV9OZXRMb2dvblVhc0xvZ29uDQorSV9OZXROYW1lQ2Fub25pY2FsaXplDQorSV9OZXROYW1lQ29tcGFyZQ0KK0lfTmV0TmFtZVZhbGlkYXRlDQorSV9OZXRQYXRoQ2Fub25pY2FsaXplDQorSV9OZXRQYXRoQ29tcGFyZQ0KK0lfTmV0UGF0aFR5cGUNCitJX05ldFNlcnZlckF1dGhlbnRpY2F0ZTINCitJX05ldFNlcnZlckF1dGhlbnRpY2F0ZTMNCitJX05ldFNlcnZlckF1dGhlbnRpY2F0ZQ0KK0lfTmV0U2VydmVyR2V0VHJ1c3RJbmZvDQorSV9OZXRTZXJ2ZXJQYXNzd29yZEdldA0KK0lfTmV0U2VydmVyUGFzc3dvcmRTZXQyDQorSV9OZXRTZXJ2ZXJQYXNzd29yZFNldA0KK0lfTmV0U2VydmVyUmVxQ2hhbGxlbmdlDQorSV9OZXRTZXJ2ZXJTZXRTZXJ2aWNlQml0cw0KK0lfTmV0U2VydmVyU2V0U2VydmljZUJpdHNFeA0KK0lfTmV0U2VydmVyVHJ1c3RQYXNzd29yZHNHZXQNCitJX05ldGxvZ29uQ29tcHV0ZUNsaWVudERpZ2VzdA0KK0lfTmV0bG9nb25Db21wdXRlU2VydmVyRGlnZXN0DQorSV9OZXRsb2dvbkdldFRydXN0UmlkDQorTmV0QWRkQWx0ZXJuYXRlQ29tcHV0ZXJOYW1lDQorTmV0QWxlcnRSYWlzZQ0KK05ldEFsZXJ0UmFpc2VFeA0KK05ldEFwaUJ1ZmZlckFsbG9jYXRlDQorTmV0QXBpQnVmZmVyRnJlZQ0KK05ldEFwaUJ1ZmZlclJlYWxsb2NhdGUNCitOZXRBcGlCdWZmZXJTaXplDQorTmV0QXVkaXRDbGVhcg0KK05ldEF1ZGl0UmVhZA0KK05ldEF1ZGl0V3JpdGUNCitOZXRCcm93c2VyU3RhdGlzdGljc0dldA0KK05ldENvbmZpZ0dldA0KK05ldENvbmZpZ0dldEFsbA0KK05ldENvbmZpZ1NldA0KK05ldENvbm5lY3Rpb25FbnVtDQorTmV0RGZzQWRkDQorTmV0RGZzQWRkRnRSb290DQorTmV0RGZzQWRkU3RkUm9vdA0KK05ldERmc0FkZFN0ZFJvb3RGb3JjZWQNCitOZXREZnNFbnVtDQorTmV0RGZzR2V0Q2xpZW50SW5mbw0KK05ldERmc0dldERjQWRkcmVzcw0KK05ldERmc0dldEZ0Q29udGFpbmVyU2VjdXJpdHkNCitOZXREZnNHZXRJbmZvDQorTmV0RGZzR2V0U2VjdXJpdHkNCitOZXREZnNHZXRTdGRDb250YWluZXJTZWN1cml0eQ0KK05ldERmc01hbmFnZXJHZXRDb25maWdJbmZvDQorTmV0RGZzTWFuYWdlckluaXRpYWxpemUNCitOZXREZnNNYW5hZ2VyU2VuZFNpdGVJbmZvDQorTmV0RGZzTW92ZQ0KK05ldERmc1JlbW92ZQ0KK05ldERmc1JlbW92ZUZ0Um9vdA0KK05ldERmc1JlbW92ZUZ0Um9vdEZvcmNlZA0KK05ldERmc1JlbW92ZVN0ZFJvb3QNCitOZXREZnNSZW5hbWUNCitOZXREZnNTZXRDbGllbnRJbmZvDQorTmV0RGZzU2V0RnRDb250YWluZXJTZWN1cml0eQ0KK05ldERmc1NldEluZm8NCitOZXREZnNTZXRTZWN1cml0eQ0KK05ldERmc1NldFN0ZENvbnRhaW5lclNlY3VyaXR5DQorTmV0RW51bWVyYXRlQ29tcHV0ZXJOYW1lcw0KK05ldEVudW1lcmF0ZVRydXN0ZWREb21haW5zDQorTmV0RXJyb3JMb2dDbGVhcg0KK05ldEVycm9yTG9nUmVhZA0KK05ldEVycm9yTG9nV3JpdGUNCitOZXRGaWxlQ2xvc2UNCitOZXRGaWxlRW51bQ0KK05ldEZpbGVHZXRJbmZvDQorTmV0R2V0QW55RENOYW1lDQorTmV0R2V0RENOYW1lDQorTmV0R2V0RGlzcGxheUluZm9ybWF0aW9uSW5kZXgNCitOZXRHZXRKb2luSW5mb3JtYXRpb24NCitOZXRHZXRKb2luYWJsZU9Vcw0KK05ldEdyb3VwQWRkDQorTmV0R3JvdXBBZGRVc2VyDQorTmV0R3JvdXBEZWwNCitOZXRHcm91cERlbFVzZXINCitOZXRHcm91cEVudW0NCitOZXRHcm91cEdldEluZm8NCitOZXRHcm91cEdldFVzZXJzDQorTmV0R3JvdXBTZXRJbmZvDQorTmV0R3JvdXBTZXRVc2Vycw0KK05ldEpvaW5Eb21haW4NCitOZXRMb2NhbEdyb3VwQWRkDQorTmV0TG9jYWxHcm91cEFkZE1lbWJlcg0KK05ldExvY2FsR3JvdXBBZGRNZW1iZXJzDQorTmV0TG9jYWxHcm91cERlbA0KK05ldExvY2FsR3JvdXBEZWxNZW1iZXINCitOZXRMb2NhbEdyb3VwRGVsTWVtYmVycw0KK05ldExvY2FsR3JvdXBFbnVtDQorTmV0TG9jYWxHcm91cEdldEluZm8NCitOZXRMb2NhbEdyb3VwR2V0TWVtYmVycw0KK05ldExvY2FsR3JvdXBTZXRJbmZvDQorTmV0TG9jYWxHcm91cFNldE1lbWJlcnMNCitOZXRMb2dvbkdldFRpbWVTZXJ2aWNlUGFyZW50RG9tYWluDQorTmV0TG9nb25TZXRTZXJ2aWNlQml0cw0KK05ldE1lc3NhZ2VCdWZmZXJTZW5kDQorTmV0TWVzc2FnZU5hbWVBZGQNCitOZXRNZXNzYWdlTmFtZURlbA0KK05ldE1lc3NhZ2VOYW1lRW51bQ0KK05ldE1lc3NhZ2VOYW1lR2V0SW5mbw0KK05ldFF1ZXJ5RGlzcGxheUluZm9ybWF0aW9uDQorTmV0UmVnaXN0ZXJEb21haW5OYW1lQ2hhbmdlTm90aWZpY2F0aW9uDQorTmV0UmVtb3RlQ29tcHV0ZXJTdXBwb3J0cw0KK05ldFJlbW90ZVRPRA0KK05ldFJlbW92ZUFsdGVybmF0ZUNvbXB1dGVyTmFtZQ0KK05ldFJlbmFtZU1hY2hpbmVJbkRvbWFpbg0KK05ldFJlcGxFeHBvcnREaXJBZGQNCitOZXRSZXBsRXhwb3J0RGlyRGVsDQorTmV0UmVwbEV4cG9ydERpckVudW0NCitOZXRSZXBsRXhwb3J0RGlyR2V0SW5mbw0KK05ldFJlcGxFeHBvcnREaXJMb2NrDQorTmV0UmVwbEV4cG9ydERpclNldEluZm8NCitOZXRSZXBsRXhwb3J0RGlyVW5sb2NrDQorTmV0UmVwbEdldEluZm8NCitOZXRSZXBsSW1wb3J0RGlyQWRkDQorTmV0UmVwbEltcG9ydERpckRlbA0KK05ldFJlcGxJbXBvcnREaXJFbnVtDQorTmV0UmVwbEltcG9ydERpckdldEluZm8NCitOZXRSZXBsSW1wb3J0RGlyTG9jaw0KK05ldFJlcGxJbXBvcnREaXJVbmxvY2sNCitOZXRSZXBsU2V0SW5mbw0KK05ldFNjaGVkdWxlSm9iQWRkDQorTmV0U2NoZWR1bGVKb2JEZWwNCitOZXRTY2hlZHVsZUpvYkVudW0NCitOZXRTY2hlZHVsZUpvYkdldEluZm8NCitOZXRTZXJ2ZXJDb21wdXRlck5hbWVBZGQNCitOZXRTZXJ2ZXJDb21wdXRlck5hbWVEZWwNCitOZXRTZXJ2ZXJEaXNrRW51bQ0KK05ldFNlcnZlckVudW0NCitOZXRTZXJ2ZXJFbnVtRXgNCitOZXRTZXJ2ZXJHZXRJbmZvDQorTmV0U2VydmVyU2V0SW5mbw0KK05ldFNlcnZlclRyYW5zcG9ydEFkZA0KK05ldFNlcnZlclRyYW5zcG9ydEFkZEV4DQorTmV0U2VydmVyVHJhbnNwb3J0RGVsDQorTmV0U2VydmVyVHJhbnNwb3J0RW51bQ0KK05ldFNlcnZpY2VDb250cm9sDQorTmV0U2VydmljZUVudW0NCitOZXRTZXJ2aWNlR2V0SW5mbw0KK05ldFNlcnZpY2VJbnN0YWxsDQorTmV0U2Vzc2lvbkRlbA0KK05ldFNlc3Npb25FbnVtDQorTmV0U2Vzc2lvbkdldEluZm8NCitOZXRTZXRQcmltYXJ5Q29tcHV0ZXJOYW1lDQorTmV0U2hhcmVBZGQNCitOZXRTaGFyZUNoZWNrDQorTmV0U2hhcmVEZWwNCitOZXRTaGFyZURlbFN0aWNreQ0KK05ldFNoYXJlRW51bQ0KK05ldFNoYXJlRW51bVN0aWNreQ0KK05ldFNoYXJlR2V0SW5mbw0KK05ldFNoYXJlU2V0SW5mbw0KK05ldFN0YXRpc3RpY3NHZXQNCitOZXRVbmpvaW5Eb21haW4NCitOZXRVbnJlZ2lzdGVyRG9tYWluTmFtZUNoYW5nZU5vdGlmaWNhdGlvbg0KK05ldFVzZUFkZA0KK05ldFVzZURlbA0KK05ldFVzZUVudW0NCitOZXRVc2VHZXRJbmZvDQorTmV0VXNlckFkZA0KK05ldFVzZXJDaGFuZ2VQYXNzd29yZA0KK05ldFVzZXJEZWwNCitOZXRVc2VyRW51bQ0KK05ldFVzZXJHZXRHcm91cHMNCitOZXRVc2VyR2V0SW5mbw0KK05ldFVzZXJHZXRMb2NhbEdyb3Vwcw0KK05ldFVzZXJNb2RhbHNHZXQNCitOZXRVc2VyTW9kYWxzU2V0DQorTmV0VXNlclNldEdyb3Vwcw0KK05ldFVzZXJTZXRJbmZvDQorTmV0VmFsaWRhdGVOYW1lDQorTmV0VmFsaWRhdGVQYXNzd29yZFBvbGljeQ0KK05ldFZhbGlkYXRlUGFzc3dvcmRQb2xpY3lGcmVlDQorTmV0V2tzdGFHZXRJbmZvDQorTmV0V2tzdGFTZXRJbmZvDQorTmV0V2tzdGFUcmFuc3BvcnRBZGQNCitOZXRXa3N0YVRyYW5zcG9ydERlbA0KK05ldFdrc3RhVHJhbnNwb3J0RW51bQ0KK05ldFdrc3RhVXNlckVudW0NCitOZXRXa3N0YVVzZXJHZXRJbmZvDQorTmV0V2tzdGFVc2VyU2V0SW5mbw0KK05ldGFwaXBCdWZmZXJBbGxvY2F0ZQ0KK05ldGJpb3MNCitOZXRwQWNjZXNzQ2hlY2sNCitOZXRwQWNjZXNzQ2hlY2tBbmRBdWRpdA0KK05ldHBBZGRUbG5GdGluZm9FbnRyeQ0KK05ldHBBbGxvY0NvbmZpZ05hbWUNCitOZXRwQWxsb2NGdGluZm9FbnRyeQ0KK05ldHBBbGxvY1N0ckZyb21XU3RyDQorTmV0cEFsbG9jV1N0ckZyb21TdHINCitOZXRwQWxsb2NXU3RyRnJvbVdTdHINCitOZXRwQXBpU3RhdHVzVG9OdFN0YXR1cw0KK05ldHBBc3NlcnRGYWlsZWQNCitOZXRwQ2xlYW5GdGluZm9Db250ZXh0DQorTmV0cENsb3NlQ29uZmlnRGF0YQ0KK05ldHBDb3B5RnRpbmZvQ29udGV4dA0KK05ldHBDb3B5U3RyaW5nVG9CdWZmZXINCitOZXRwQ3JlYXRlU2VjdXJpdHlPYmplY3QNCitOZXRwRGJnUHJpbnQNCitOZXRwRGVsZXRlU2VjdXJpdHlPYmplY3QNCitOZXRwR2V0Q29tcHV0ZXJOYW1lDQorTmV0cEdldENvbmZpZ0Jvb2wNCitOZXRwR2V0Q29uZmlnRHdvcmQNCitOZXRwR2V0Q29uZmlnVFN0ckFycmF5DQorTmV0cEdldENvbmZpZ1ZhbHVlDQorTmV0cEdldERvbWFpbk5hbWUNCitOZXRwR2V0RmlsZVNlY3VyaXR5DQorTmV0cEdldFByaXZpbGVnZQ0KK05ldHBIZXhEdW1wDQorTmV0cEluaXRGdGluZm9Db250ZXh0DQorTmV0cEluaXRPZW1TdHJpbmcNCitOZXRwSXNSZW1vdGUNCitOZXRwSXNVbmNDb21wdXRlck5hbWVWYWxpZA0KK05ldHBMb2NhbFRpbWVab25lT2Zmc2V0DQorTmV0cExvZ29uUHV0VW5pY29kZVN0cmluZw0KK05ldHBNZXJnZUZ0aW5mbw0KK05ldHBOZXRCaW9zQWRkTmFtZQ0KK05ldHBOZXRCaW9zQ2FsbA0KK05ldHBOZXRCaW9zRGVsTmFtZQ0KK05ldHBOZXRCaW9zR2V0QWRhcHRlck51bWJlcnMNCitOZXRwTmV0Qmlvc0hhbmd1cA0KK05ldHBOZXRCaW9zUmVjZWl2ZQ0KK05ldHBOZXRCaW9zUmVzZXQNCitOZXRwTmV0Qmlvc1NlbmQNCitOZXRwTmV0Qmlvc1N0YXR1c1RvQXBpU3RhdHVzDQorTmV0cE50U3RhdHVzVG9BcGlTdGF0dXMNCitOZXRwT3BlbkNvbmZpZ0RhdGENCitOZXRwUGFja1N0cmluZw0KK05ldHBQYXJtc1F1ZXJ5VXNlclByb3BlcnR5DQorTmV0cFBhcm1zUXVlcnlVc2VyUHJvcGVydHlXaXRoTGVuZ3RoDQorTmV0cFBhcm1zU2V0VXNlclByb3BlcnR5DQorTmV0cFBhcm1zU2V0VXNlclByb3BlcnR5V2l0aExlbmd0aA0KK05ldHBQYXJtc1VzZXJQcm9wZXJ0eUZyZWUNCitOZXRwUmVsZWFzZVByaXZpbGVnZQ0KK05ldHBTZXRGaWxlU2VjdXJpdHkNCitOZXRwU21iQ2hlY2sNCitOZXRwU3RvcmVJbnRpYWxEY1JlY29yZA0KK05ldHBTdHJpbmdUb05ldEJpb3NOYW1lDQorTmV0cFRTdHJBcnJheUVudHJ5Q291bnQNCitOZXRwVXBncmFkZVByZU5UNUpvaW5JbmZvDQorTmV0cHdOYW1lQ2Fub25pY2FsaXplDQorTmV0cHdOYW1lQ29tcGFyZQ0KK05ldHB3TmFtZVZhbGlkYXRlDQorTmV0cHdQYXRoQ2Fub25pY2FsaXplDQorTmV0cHdQYXRoQ29tcGFyZQ0KK05ldHB3UGF0aFR5cGUNCitObEJpbmRpbmdBZGRTZXJ2ZXJUb0NhY2hlDQorTmxCaW5kaW5nUmVtb3ZlU2VydmVyRnJvbUNhY2hlDQorTmxCaW5kaW5nU2V0QXV0aEluZm8NCitSeE5ldEFjY2Vzc0FkZA0KK1J4TmV0QWNjZXNzRGVsDQorUnhOZXRBY2Nlc3NFbnVtDQorUnhOZXRBY2Nlc3NHZXRJbmZvDQorUnhOZXRBY2Nlc3NHZXRVc2VyUGVybXMNCitSeE5ldEFjY2Vzc1NldEluZm8NCitSeE5ldFNlcnZlckVudW0NCitSeE5ldFVzZXJQYXNzd29yZFNldA0KK1J4UmVtb3RlQXBpDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd25ldGNmZ3guZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd25ldGNmZ3guZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjczZDY5MjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bmV0Y2ZneC5kZWYKQEAgLTAsMCArMSwyNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBuZXRjZmd4LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBuZXRjZmd4LmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogc3RydWN0IFdMQlNfUkVHX1BBUkFNUyAmIF9fdGhpc2NhbGwgV0xCU19SRUdfUEFSQU1TOjpvcGVyYXRvcj0oc3RydWN0IFdMQlNfUkVHX1BBUkFNUyBjb25zdCAmKQ0KKz8/NFdMQlNfUkVHX1BBUkFNU0BAUUFFQUFVMEBBQlUwQEBaDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitIckRpQWRkQ29tcG9uZW50VG9JTmV0Q2ZnDQorTGFuYUNmZ0Zyb21Db21tYW5kQXJncw0KK01vZGVtQ2xhc3NDb0luc3RhbGxlcg0KK05ldENmZ0RpYWdGcm9tQ29tbWFuZEFyZ3MNCitOZXRDZmdEaWFnUmVwYWlyUmVnaXN0cnlCaW5kaW5ncw0KK05ldENsYXNzSW5zdGFsbGVyDQorTmV0UHJvcFBhZ2VQcm92aWRlcg0KK1Jhc0FkZEJpbmRpbmdzDQorUmFzQ291bnRCaW5kaW5ncw0KK1Jhc1JlbW92ZUJpbmRpbmdzDQorU3ZjaG9zdENoYW5nZVN2Y2hvc3RHcm91cA0KK1VwZGF0ZUxhbmFDb25maWdVc2luZ0Fuc3dlcmZpbGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bmV0aWQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd25ldGlkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMDQ1NGIxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd25ldGlkLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE5FVElELkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBORVRJRC5ETEwNCitFWFBPUlRTDQorQ3JlYXRlTmV0SURQcm9wZXJ0eVBhZ2UNCitTaG93RGNOb3RGb3VuZEVycm9yRGlhbG9nDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd25ldGxvZ29uLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3duZXRsb2dvbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTEzNzI2MAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3duZXRsb2dvbi5kZWYKQEAgLTAsMCArMSwzMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBORVRMT0dPTi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTkVUTE9HT04uZGxsDQorRVhQT1JUUw0KK0RzckdldERjTmFtZUV4Mg0KK0lfRHNHZXREY0NhY2hlDQorSV9OZXRMb2dvbkFkZHJlc3NUb1NpdGVOYW1lDQorSV9OZXRMb2dvbkFwcGVuZENoYW5nZUxvZw0KK0lfTmV0TG9nb25DbG9zZUNoYW5nZUxvZw0KK0lfTmV0TG9nb25GcmVlDQorSV9OZXRMb2dvbkdldEF1dGhEYXRhRXgNCitJX05ldExvZ29uR2V0SXBBZGRyZXNzZXMNCitJX05ldExvZ29uR2V0U2VyaWFsTnVtYmVyDQorSV9OZXRMb2dvbkxkYXBMb29rdXBFeA0KK0lfTmV0TG9nb25NaXhlZERvbWFpbg0KK0lfTmV0TG9nb25OZXdDaGFuZ2VMb2cNCitJX05ldExvZ29uUmVhZENoYW5nZUxvZw0KK0lfTmV0TG9nb25TZW5kVG9TYW1PblBkYw0KK0lfTmV0TG9nb25TZXRTZXJ2aWNlQml0cw0KK0lfTmV0Tm90aWZ5RGVsdGENCitJX05ldE5vdGlmeURzQ2hhbmdlDQorSV9OZXROb3RpZnlNYWNoaW5lQWNjb3VudA0KK0lfTmV0Tm90aWZ5TmV0bG9nb25EbGxIYW5kbGUNCitJX05ldE5vdGlmeU50ZHNEc2FEZWxldGlvbg0KK0lfTmV0Tm90aWZ5Um9sZQ0KK0lfTmV0Tm90aWZ5VHJ1c3RlZERvbWFpbg0KK0luaXRTZWN1cml0eUludGVyZmFjZVcNCitOZXRJTG9nb25TYW1Mb2dvbg0KK05sTmV0bG9nb25NYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd25ldG1hbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bmV0bWFuLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNGZmMTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd25ldG1hbi5kZWYKQEAgLTAsMCArMSwyMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBuZXRtYW4uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG5ldG1hbi5kbGwNCitFWFBPUlRTDQorR2V0Q2xpZW50QWR2aXNlcw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0hyR2V0UG5wRGV2aWNlU3RhdHVzDQorSHJMYW5Db25uZWN0aW9uTmFtZUZyb21HdWlkT3JQYXRoDQorSHJQbnBJbnN0YW5jZUlkRnJvbUd1aWQNCitIclF1ZXJ5TGFuTWVkaWFTdGF0ZQ0KK0hyUmFzQ29ubmVjdGlvbk5hbWVGcm9tR3VpZA0KK05ldE1hbkRpYWdGcm9tQ29tbWFuZEFyZ3MNCitQcm9jZXNzUXVldWUNCitSYXNFdmVudE5vdGlmeQ0KK1NlcnZpY2VNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd25ldHBsd2l6LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3duZXRwbHdpei5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjk3YzNlNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3duZXRwbHdpei5kZWYKQEAgLTAsMCArMSwyMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBORVRQTFdJWi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTkVUUExXSVouZGxsDQorRVhQT1JUUw0KK0FkZE5ldFBsYWNlUnVuRGxsDQorUGFzc3BvcnRXaXphcmRSdW5EbGwNCitQdWJsaXNoUnVuRGxsDQorVXNlcnNSdW5EbGwNCitDbGVhckF1dG9Mb2dvbg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsSW5zdGFsbA0KK0RsbE1haW4NCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitOZXRBY2Nlc3NXaXphcmQNCitOZXRQbGFjZXNXaXphcmREb01vZGFsDQorU0hEaXNjb25uZWN0TmV0RHJpdmVzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd25ldHJhcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bmV0cmFwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MWQ3Nzc3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd25ldHJhcC5kZWYKQEAgLTAsMCArMSwyMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBORVRSQVAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5FVFJBUC5kbGwNCitFWFBPUlRTDQorUmFwQXJyYXlMZW5ndGgNCitSYXBBc2NpaVRvRGVjaW1hbA0KK1JhcEF1eERhdGFDb3VudA0KK1JhcEF1eERhdGFDb3VudE9mZnNldA0KK1JhcENvbnZlcnRTaW5nbGVFbnRyeQ0KK1JhcENvbnZlcnRTaW5nbGVFbnRyeUV4DQorUmFwRXhhbWluZURlc2NyaXB0b3INCitSYXBHZXRGaWVsZFNpemUNCitSYXBJc1ZhbGlkRGVzY3JpcHRvclNtYg0KK1JhcExhc3RQb2ludGVyT2Zmc2V0DQorUmFwUGFybU51bURlc2NyaXB0b3INCitSYXBTdHJ1Y3R1cmVBbGlnbm1lbnQNCitSYXBTdHJ1Y3R1cmVTaXplDQorUmFwVG90YWxTaXplDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd25ldHNoZWxsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3duZXRzaGVsbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTRiYjBhNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3duZXRzaGVsbC5kZWYKQEAgLTAsMCArMSw0MiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBuZXRzaGVsbC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbmV0c2hlbGwuZGxsDQorRVhQT1JUUw0KK0RvSW5pdGlhbENsZWFudXANCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0hyQ3JlYXRlRGVza3RvcEljb24NCitIckdldEFuc3dlckZpbGVQYXJhbWV0ZXJzRm9yTmV0Q2FyZA0KK0hyR2V0RXh0ZW5kZWRTdGF0dXNGcm9tTkNTDQorSHJHZXRJY29uRnJvbU1lZGlhVHlwZQ0KK0hyR2V0SWNvbkZyb21NZWRpYVR5cGVFeA0KK0hyR2V0SW5zdGFuY2VHdWlkT2ZQcmVOVDVOZXRDYXJkSW5zdGFuY2UNCitIckdldE5ldENvbkV4dGVuZGVkU3RhdHVzRnJvbUd1aWQNCitIckdldE5ldENvbkV4dGVuZGVkU3RhdHVzRnJvbUlOZXRDb25uZWN0aW9uDQorSHJHZXRTdGF0dXNTdHJpbmdGcm9tTmV0Q29uRXh0ZW5kZWRTdGF0dXMNCitIcklzSXBTdGF0ZUNoZWNraW5nRW5hYmxlZA0KK0hyTGF1bmNoQ29ubmVjdGlvbg0KK0hyTGF1bmNoQ29ubmVjdGlvbkV4DQorSHJMYXVuY2hOZXR3b3JrT3B0aW9uYWxDb21wb25lbnRzDQorSHJPZW1VcGdyYWRlDQorSHJSZW5hbWVDb25uZWN0aW9uDQorSHJSdW5XaXphcmQNCitJbnZva2VEdW5GaWxlDQorTmNGcmVlTmV0Y29uUHJvcGVydGllcw0KK05jSXNWYWxpZENvbm5lY3Rpb25OYW1lDQorTmV0U2V0dXBBZGRSYXNDb25uZWN0aW9uDQorTmV0U2V0dXBGaW5pc2hJbnN0YWxsDQorTmV0U2V0dXBJbnN0YWxsU29mdHdhcmUNCitOZXRTZXR1cFByZXBhcmVTeXNQcmVwDQorTmV0U2V0dXBSZXF1ZXN0V2l6YXJkUGFnZXMNCitOZXRTZXR1cFNldFByb2dyZXNzQ2FsbGJhY2sNCitOb3JtYWxpemVFeHRlbmRlZFN0YXR1cw0KK1JhaXNlU3VwcG9ydERpYWxvZw0KK1JlcGFpckNvbm5lY3Rpb24NCitTdGFydE5DVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3duZXR1aTAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd25ldHVpMC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTAwOWJkNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3duZXR1aTAuZGVmCkBAIC0wLDAgKzEsMTA3OSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBORVRVSTAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5FVFVJMC5kbGwNCitFWFBPUlRTDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQUxJQVNfU1RSOjpBTElBU19TVFIodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBBTElBU19TVFJAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEFMTE9DX1NUUjo6QUxMT0NfU1RSKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wQUxMT0NfU1RSQEBRQUVAUEFHSVBCR0BaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQkFTRTo6QkFTRSh2b2lkKQ0KKz8/MEJBU0VAQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJJVEZJRUxEOjpCSVRGSUVMRChjbGFzcyBCSVRGSUVMRCBjb25zdCAmKQ0KKz8/MEJJVEZJRUxEQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJJVEZJRUxEOjpCSVRGSUVMRCh1bnNpZ25lZCBzaG9ydCkNCis/PzBCSVRGSUVMREBAUUFFQEdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJJVEZJRUxEOjpCSVRGSUVMRCh1bnNpZ25lZCBpbnQsZW51bSBCSVRWQUxVRVMpDQorPz8wQklURklFTERAQFFBRUBJVzRCSVRWQUxVRVNAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQklURklFTEQ6OkJJVEZJRUxEKHVuc2lnbmVkIGxvbmcpDQorPz8wQklURklFTERAQFFBRUBLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCSVRGSUVMRDo6QklURklFTEQodW5zaWduZWQgY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorPz8wQklURklFTERAQFFBRUBQQkVJSUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQlVGRkVSOjpCVUZGRVIodW5zaWduZWQgaW50KQ0KKz8/MEJVRkZFUkBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENIQVJfU1RSSU5HOjpDSEFSX1NUUklORyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/PzBDSEFSX1NUUklOR0BAUUFFQFBCR0lAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERCR1NUUkVBTTo6REJHU1RSRUFNKGNsYXNzIE9VVFBVVFNJTksgKikNCis/PzBEQkdTVFJFQU1AQFFBRUBQQVZPVVRQVVRTSU5LQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERFQ19TVFI6OkRFQ19TVFIodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBpbnQpDQorPz8wREVDX1NUUkBAUUFFQEtJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBERlNJVEVSX1RSRUU6OkRGU0lURVJfVFJFRShjbGFzcyBERlNJVEVSX1RSRUUgY29uc3QgKikNCis/PzBERlNJVEVSX1RSRUVAQFFBRUBQQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgREZTSVRFUl9UUkVFOjpERlNJVEVSX1RSRUUoY2xhc3MgVFJFRSBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/PzBERlNJVEVSX1RSRUVAQFFBRUBQQlZUUkVFQEBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBESVJfQkxPQ0s6OkRJUl9CTE9DSyh2b2lkKQ0KKz8/MERJUl9CTE9DS0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRExJU1Q6OkRMSVNUKHZvaWQpDQorPz8wRExJU1RAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERMX05PREU6OkRMX05PREUoY2xhc3MgRExfTk9ERSAqLGNsYXNzIERMX05PREUgKix2b2lkICopDQorPz8wRExfTk9ERUBAUUFFQFBBVjBAMFBBWEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRUxBUFNFRF9USU1FX1NUUjo6RUxBUFNFRF9USU1FX1NUUih1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0LGludCkNCis/PzBFTEFQU0VEX1RJTUVfU1RSQEBRQUVAS0dIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBGTVg6OkZNWChzdHJ1Y3QgSFdORF9fICopDQorPz8wRk1YQEBRQUVAUEFVSFdORF9fQEBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIEZPUldBUkRJTkdfQkFTRTo6Rk9SV0FSRElOR19CQVNFKGNsYXNzIEJBU0UgKikNCis/PzBGT1JXQVJESU5HX0JBU0VAQElBRUBQQVZCQVNFQEBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIEZTX0VOVU06OkZTX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGVudW0gRklMRV9UWVBFLGludCx1bnNpZ25lZCBpbnQpDQorPz8wRlNfRU5VTUBASUFFQFBCRzBXNEZJTEVfVFlQRUBASElAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIEhFQVBfQkFTRTo6SEVBUF9CQVNFKGludCxpbnQpDQorPz8wSEVBUF9CQVNFQEBJQUVASEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEhFWF9TVFI6OkhFWF9TVFIodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBpbnQpDQorPz8wSEVYX1NUUkBAUUFFQEtJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBIVUFUT006OkhVQVRPTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/PzBIVUFUT01AQFFBRUBQQkdIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBJTlRMX1BST0ZJTEU6OklOVExfUFJPRklMRSh2b2lkKQ0KKz8/MElOVExfUFJPRklMRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSVNUUjo6SVNUUihjbGFzcyBJU1RSIGNvbnN0ICYpDQorPz8wSVNUUkBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBJU1RSOjpJU1RSKGNsYXNzIE5MU19TVFIgY29uc3QgJikNCis/PzBJU1RSQEBRQUVAQUJWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBJVEVSX0RMOjpJVEVSX0RMKGNsYXNzIElURVJfREwgY29uc3QgJikNCis/PzBJVEVSX0RMQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElURVJfREw6OklURVJfREwoY2xhc3MgRExJU1QgKikNCis/PzBJVEVSX0RMQEBRQUVAUEFWRExJU1RAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSVRFUl9MOjpJVEVSX0wodm9pZCkNCis/PzBJVEVSX0xAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElURVJfU0w6OklURVJfU0woY2xhc3MgSVRFUl9TTCBjb25zdCAmKQ0KKz8/MElURVJfU0xAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSVRFUl9TTDo6SVRFUl9TTChjbGFzcyBTTElTVCAqKQ0KKz8/MElURVJfU0xAQFFBRUBQQVZTTElTVEBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBJVEVSX1NMX0RJUl9CTE9DSzo6SVRFUl9TTF9ESVJfQkxPQ0soY2xhc3MgU0xJU1QgJikNCis/PzBJVEVSX1NMX0RJUl9CTE9DS0BAUUFFQEFBVlNMSVNUQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElURVJfU0xfTkxTX1NUUjo6SVRFUl9TTF9OTFNfU1RSKGNsYXNzIFNMSVNUICYpDQorPz8wSVRFUl9TTF9OTFNfU1RSQEBRQUVAQUFWU0xJU1RAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSVRFUl9TTF9OTFNfU1RSOjpJVEVSX1NMX05MU19TVFIoY2xhc3MgSVRFUl9TTF9OTFNfU1RSIGNvbnN0ICYpDQorPz8wSVRFUl9TTF9OTFNfU1RSQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElURVJfU1RSTElTVDo6SVRFUl9TVFJMSVNUKGNsYXNzIFNUUkxJU1QgJikNCis/PzBJVEVSX1NUUkxJU1RAQFFBRUBBQVZTVFJMSVNUQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElURVJfU1RSTElTVDo6SVRFUl9TVFJMSVNUKGNsYXNzIElURVJfU1RSTElTVCBjb25zdCAmKQ0KKz8/MElURVJfU1RSTElTVEBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMT0dPTl9IT1VSU19TRVRUSU5HOjpMT0dPTl9IT1VSU19TRVRUSU5HKGNsYXNzIExPR09OX0hPVVJTX1NFVFRJTkcgY29uc3QgJikNCis/PzBMT0dPTl9IT1VSU19TRVRUSU5HQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExPR09OX0hPVVJTX1NFVFRJTkc6OkxPR09OX0hPVVJTX1NFVFRJTkcodW5zaWduZWQgY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/PzBMT0dPTl9IT1VSU19TRVRUSU5HQEBRQUVAUEJFSUBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTkxTX1NUUjo6TkxTX1NUUih1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGludCxpbnQpDQorPz8wTkxTX1NUUkBASUFFQFBBR0lIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOTFNfU1RSOjpOTFNfU1RSKGNsYXNzIE5MU19TVFIgY29uc3QgJikNCis/PzBOTFNfU1RSQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE5MU19TVFI6Ok5MU19TVFIodW5zaWduZWQgaW50KQ0KKz8/ME5MU19TVFJAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOTFNfU1RSOjpOTFNfU1RSKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wTkxTX1NUUkBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTkxTX1NUUjo6TkxTX1NUUih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0KQ0KKz8/ME5MU19TVFJAQFFBRUBQQkdHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOTFNfU1RSOjpOTFNfU1RSKHZvaWQpDQorPz8wTkxTX1NUUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTlVNX05MU19TVFI6Ok5VTV9OTFNfU1RSKHVuc2lnbmVkIGxvbmcpDQorPz8wTlVNX05MU19TVFJAQFFBRUBLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBPTkVfU0hPVF9IRUFQOjpPTkVfU0hPVF9IRUFQKHVuc2lnbmVkIGludCxpbnQpDQorPz8wT05FX1NIT1RfSEVBUEBAUUFFQElIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBSRUdfS0VZOjpSRUdfS0VZKGNsYXNzIFJFR19LRVkgJikNCis/PzBSRUdfS0VZQEBRQUVAQUFWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFJFR19LRVk6OlJFR19LRVkoY2xhc3MgUkVHX0tFWSAmLGNsYXNzIE5MU19TVFIgY29uc3QgJix1bnNpZ25lZCBsb25nKQ0KKz8/MFJFR19LRVlAQFFBRUBBQVYwQEFCVk5MU19TVFJAQEtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFJFR19LRVk6OlJFR19LRVkoY2xhc3MgUkVHX0tFWSAmLGNsYXNzIE5MU19TVFIgY29uc3QgJixjbGFzcyBSRUdfS0VZX0NSRUFURV9TVFJVQ1QgKikNCis/PzBSRUdfS0VZQEBRQUVAQUFWMEBBQlZOTFNfU1RSQEBQQVZSRUdfS0VZX0NSRUFURV9TVFJVQ1RAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUkVHX0tFWTo6UkVHX0tFWShjbGFzcyBOTFNfU1RSIGNvbnN0ICYsdW5zaWduZWQgbG9uZykNCis/PzBSRUdfS0VZQEBRQUVAQUJWTkxTX1NUUkBAS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUkVHX0tFWTo6UkVHX0tFWShzdHJ1Y3QgSEtFWV9fICosdW5zaWduZWQgbG9uZykNCis/PzBSRUdfS0VZQEBRQUVAUEFVSEtFWV9fQEBLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBSRUdfS0VZOjpSRUdfS0VZKHN0cnVjdCBIS0VZX18gKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorPz8wUkVHX0tFWUBAUUFFQFBBVUhLRVlfX0BAUEJHS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUkVHX0tFWV9DUkVBVEVfU1RSVUNUOjpSRUdfS0VZX0NSRUFURV9TVFJVQ1Qodm9pZCkNCis/PzBSRUdfS0VZX0NSRUFURV9TVFJVQ1RAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFJFR19LRVlfSU5GT19TVFJVQ1Q6OlJFR19LRVlfSU5GT19TVFJVQ1Qodm9pZCkNCis/PzBSRUdfS0VZX0lORk9fU1RSVUNUQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBSRUdfVkFMVUVfSU5GT19TVFJVQ1Q6OlJFR19WQUxVRV9JTkZPX1NUUlVDVCh2b2lkKQ0KKz8/MFJFR19WQUxVRV9JTkZPX1NUUlVDVEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUkVTT1VSQ0VfU1RSOjpSRVNPVVJDRV9TVFIobG9uZyxzdHJ1Y3QgSElOU1RBTkNFX18gKikNCis/PzBSRVNPVVJDRV9TVFJAQFFBRUBKUEFVSElOU1RBTkNFX19AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUklURVJfREw6OlJJVEVSX0RMKGNsYXNzIFJJVEVSX0RMIGNvbnN0ICYpDQorPz8wUklURVJfRExAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUklURVJfREw6OlJJVEVSX0RMKGNsYXNzIERMSVNUICopDQorPz8wUklURVJfRExAQFFBRUBQQVZETElTVEBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTTElTVDo6U0xJU1Qodm9pZCkNCis/PzBTTElTVEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0xJU1RfT0ZfRElSX0JMT0NLOjpTTElTVF9PRl9ESVJfQkxPQ0soaW50KQ0KKz8/MFNMSVNUX09GX0RJUl9CTE9DS0BAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNMSVNUX09GX05MU19TVFI6OlNMSVNUX09GX05MU19TVFIoaW50KQ0KKz8/MFNMSVNUX09GX05MU19TVFJAQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTTF9OT0RFOjpTTF9OT0RFKGNsYXNzIFNMX05PREUgKix2b2lkICopDQorPz8wU0xfTk9ERUBAUUFFQFBBVjBAUEFYQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTVFJMSVNUOjpTVFJMSVNUKGNsYXNzIE5MU19TVFIgY29uc3QgJixjbGFzcyBOTFNfU1RSIGNvbnN0ICYsaW50KQ0KKz8/MFNUUkxJU1RAQFFBRUBBQlZOTFNfU1RSQEAwSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RSTElTVDo6U1RSTElTVChpbnQpDQorPz8wU1RSTElTVEBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNUUkxJU1Q6OlNUUkxJU1QodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/PzBTVFJMSVNUQEBRQUVAUEJHMEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFRDSEFSX1NUUjo6VENIQVJfU1RSKHVuc2lnbmVkIHNob3J0KQ0KKz8/MFRDSEFSX1NUUkBAUUFFQEdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFRDSEFSX1NUUl9JTVBMOjpUQ0hBUl9TVFJfSU1QTCh1bnNpZ25lZCBzaG9ydCkNCis/PzBUQ0hBUl9TVFJfSU1QTEBAUUFFQEdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFRSRUU6OlRSRUUodm9pZCAqKQ0KKz8/MFRSRUVAQFFBRUBQQVhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVBVE9NOjpVQVRPTShjbGFzcyBOTFNfU1RSICYpDQorPz8wVUFUT01AQFFBRUBBQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVBVE9NX0xJTktBR0U6OlVBVE9NX0xJTktBR0Uodm9pZCkNCis/PzBVQVRPTV9MSU5LQUdFQEBRQUVAWFoNCis7IHByaXZhdGU6IF9fdGhpc2NhbGwgVUFUT01fTUFOQUdFUjo6VUFUT01fTUFOQUdFUih2b2lkKQ0KKz8/MFVBVE9NX01BTkFHRVJAQEFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVBVE9NX1JFR0lPTjo6VUFUT01fUkVHSU9OKHZvaWQpDQorPz8wVUFUT01fUkVHSU9OQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXMzJfRElSX0JMT0NLOjpXMzJfRElSX0JMT0NLKHZvaWQpDQorPz8wVzMyX0RJUl9CTE9DS0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVzMyX0ZTX0VOVU06OlczMl9GU19FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixlbnVtIEZJTEVfVFlQRSxpbnQsdW5zaWduZWQgaW50KQ0KKz8/MFczMl9GU19FTlVNQEBRQUVAUEJHMFc0RklMRV9UWVBFQEBISUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV0NIQVJfU1RSSU5HOjpXQ0hBUl9TVFJJTkcoY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/PzBXQ0hBUl9TVFJJTkdAQFFBRUBQQkRJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXSU5fVElNRTo6V0lOX1RJTUUoaW50KQ0KKz8/MFdJTl9USU1FQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV0lOX1RJTUU6OldJTl9USU1FKHVuc2lnbmVkIGxvbmcsaW50KQ0KKz8/MFdJTl9USU1FQEBRQUVAS0hAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdJTl9USU1FOjpXSU5fVElNRShzdHJ1Y3QgX0ZJTEVUSU1FLGludCkNCis/PzBXSU5fVElNRUBAUUFFQFVfRklMRVRJTUVAQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEFMSUFTX1NUUjo6fkFMSUFTX1NUUih2b2lkKQ0KKz8/MUFMSUFTX1NUUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQklURklFTEQ6On5CSVRGSUVMRCh2b2lkKQ0KKz8/MUJJVEZJRUxEQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCVUZGRVI6On5CVUZGRVIodm9pZCkNCis/PzFCVUZGRVJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENIQVJfU1RSSU5HOjp+Q0hBUl9TVFJJTkcodm9pZCkNCis/PzFDSEFSX1NUUklOR0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgREJHU1RSRUFNOjp+REJHU1RSRUFNKHZvaWQpDQorPz8xREJHU1RSRUFNQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBERUNfU1RSOjp+REVDX1NUUih2b2lkKQ0KKz8/MURFQ19TVFJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERGU0lURVJfVFJFRTo6fkRGU0lURVJfVFJFRSh2b2lkKQ0KKz8/MURGU0lURVJfVFJFRUBAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBESVJfQkxPQ0s6On5ESVJfQkxPQ0sodm9pZCkNCis/PzFESVJfQkxPQ0tAQFVBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERMSVNUOjp+RExJU1Qodm9pZCkNCis/PzFETElTVEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRUxBUFNFRF9USU1FX1NUUjo6fkVMQVBTRURfVElNRV9TVFIodm9pZCkNCis/PzFFTEFQU0VEX1RJTUVfU1RSQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIEZTX0VOVU06On5GU19FTlVNKHZvaWQpDQorPz8xRlNfRU5VTUBAVUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgSEVBUF9CQVNFOjp+SEVBUF9CQVNFKHZvaWQpDQorPz8xSEVBUF9CQVNFQEBJQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBJVEVSX0RMOjp+SVRFUl9ETCh2b2lkKQ0KKz8/MUlURVJfRExAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElURVJfU0w6On5JVEVSX1NMKHZvaWQpDQorPz8xSVRFUl9TTEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSVRFUl9TTF9ESVJfQkxPQ0s6On5JVEVSX1NMX0RJUl9CTE9DSyh2b2lkKQ0KKz8/MUlURVJfU0xfRElSX0JMT0NLQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBJVEVSX1NMX05MU19TVFI6On5JVEVSX1NMX05MU19TVFIodm9pZCkNCis/PzFJVEVSX1NMX05MU19TVFJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElURVJfU1RSTElTVDo6fklURVJfU1RSTElTVCh2b2lkKQ0KKz8/MUlURVJfU1RSTElTVEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfU0VUVElORzo6fkxPR09OX0hPVVJTX1NFVFRJTkcodm9pZCkNCis/PzFMT0dPTl9IT1VSU19TRVRUSU5HQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOTFNfU1RSOjp+TkxTX1NUUih2b2lkKQ0KKz8/MU5MU19TVFJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFJFR19LRVk6On5SRUdfS0VZKHZvaWQpDQorPz8xUkVHX0tFWUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUkVHX0tFWV9JTkZPX1NUUlVDVDo6flJFR19LRVlfSU5GT19TVFJVQ1Qodm9pZCkNCis/PzFSRUdfS0VZX0lORk9fU1RSVUNUQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBSRUdfVkFMVUVfSU5GT19TVFJVQ1Q6On5SRUdfVkFMVUVfSU5GT19TVFJVQ1Qodm9pZCkNCis/PzFSRUdfVkFMVUVfSU5GT19TVFJVQ1RAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFJJVEVSX0RMOjp+UklURVJfREwodm9pZCkNCis/PzFSSVRFUl9ETEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0xJU1Q6On5TTElTVCh2b2lkKQ0KKz8/MVNMSVNUQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTTElTVF9PRl9ESVJfQkxPQ0s6On5TTElTVF9PRl9ESVJfQkxPQ0sodm9pZCkNCis/PzFTTElTVF9PRl9ESVJfQkxPQ0tAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNMSVNUX09GX05MU19TVFI6On5TTElTVF9PRl9OTFNfU1RSKHZvaWQpDQorPz8xU0xJU1RfT0ZfTkxTX1NUUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RSTElTVDo6flNUUkxJU1Qodm9pZCkNCis/PzFTVFJMSVNUQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBUQ0hBUl9TVFI6On5UQ0hBUl9TVFIodm9pZCkNCis/PzFUQ0hBUl9TVFJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFRSRUU6On5UUkVFKHZvaWQpDQorPz8xVFJFRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVUFUT006On5VQVRPTSh2b2lkKQ0KKz8/MVVBVE9NQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVQVRPTV9MSU5LQUdFOjp+VUFUT01fTElOS0FHRSh2b2lkKQ0KKz8/MVVBVE9NX0xJTktBR0VAQFFBRUBYWg0KKzsgcHJpdmF0ZTogX190aGlzY2FsbCBVQVRPTV9NQU5BR0VSOjp+VUFUT01fTUFOQUdFUih2b2lkKQ0KKz8/MVVBVE9NX01BTkFHRVJAQEFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVBVE9NX1JFR0lPTjo6flVBVE9NX1JFR0lPTih2b2lkKQ0KKz8/MVVBVE9NX1JFR0lPTkBAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBXMzJfRElSX0JMT0NLOjp+VzMyX0RJUl9CTE9DSyh2b2lkKQ0KKz8/MVczMl9ESVJfQkxPQ0tAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgVzMyX0ZTX0VOVU06On5XMzJfRlNfRU5VTSh2b2lkKQ0KKz8/MVczMl9GU19FTlVNQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXQ0hBUl9TVFJJTkc6On5XQ0hBUl9TVFJJTkcodm9pZCkNCis/PzFXQ0hBUl9TVFJJTkdAQFFBRUBYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCAqIF9fc3RkY2FsbCBBTExPQ19CQVNFOjpvcGVyYXRvciBuZXcodW5zaWduZWQgaW50KQ0KKz8/MkFMTE9DX0JBU0VAQFNHUEFYSUBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkICogX19zdGRjYWxsIEFMTE9DX0JBU0U6Om9wZXJhdG9yIG5ldyh1bnNpZ25lZCBpbnQsdm9pZCAqKQ0KKz8/MkFMTE9DX0JBU0VAQFNHUEFYSVBBWEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBBTExPQ19CQVNFOjpvcGVyYXRvciBkZWxldGUodm9pZCAqKQ0KKz8/M0FMTE9DX0JBU0VAQFNHWFBBWEBaDQorOyBwdWJsaWM6IGNsYXNzIEFMSUFTX1NUUiBjb25zdCAmIF9fdGhpc2NhbGwgQUxJQVNfU1RSOjpvcGVyYXRvcj0oY2xhc3MgTkxTX1NUUiBjb25zdCAmKQ0KKz8/NEFMSUFTX1NUUkBAUUFFQUJWMEBBQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBjbGFzcyBBTElBU19TVFIgY29uc3QgJiBfX3RoaXNjYWxsIEFMSUFTX1NUUjo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz80QUxJQVNfU1RSQEBRQUVBQlYwQFBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIEFMTE9DX1NUUiAmIF9fdGhpc2NhbGwgQUxMT0NfU1RSOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzRBTExPQ19TVFJAQFFBRUFBVjBAUEJHQFoNCis7IHB1YmxpYzogY2xhc3MgQklURklFTEQgJiBfX3RoaXNjYWxsIEJJVEZJRUxEOjpvcGVyYXRvcj0oY2xhc3MgQklURklFTEQgY29uc3QgJikNCis/PzRCSVRGSUVMREBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIEJJVEZJRUxEICYgX190aGlzY2FsbCBCSVRGSUVMRDo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0KQ0KKz8/NEJJVEZJRUxEQEBRQUVBQVYwQEdAWg0KKzsgcHVibGljOiBjbGFzcyBCSVRGSUVMRCAmIF9fdGhpc2NhbGwgQklURklFTEQ6Om9wZXJhdG9yPSh1bnNpZ25lZCBsb25nKQ0KKz8/NEJJVEZJRUxEQEBRQUVBQVYwQEtAWg0KKzsgcHVibGljOiBjbGFzcyBJU1RSICYgX190aGlzY2FsbCBJU1RSOjpvcGVyYXRvcj0oY2xhc3MgSVNUUiBjb25zdCAmKQ0KKz8/NElTVFJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOTFNfU1RSICYgX190aGlzY2FsbCBOTFNfU1RSOjpvcGVyYXRvcj0oY2xhc3MgTkxTX1NUUiBjb25zdCAmKQ0KKz8/NE5MU19TVFJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBOTFNfU1RSICYgX190aGlzY2FsbCBOTFNfU1RSOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzROTFNfU1RSQEBRQUVBQVYwQFBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIERCR1NUUkVBTSAmIF9fdGhpc2NhbGwgREJHU1RSRUFNOjpvcGVyYXRvcjw8KGNoYXIpDQorPz82REJHU1RSRUFNQEBRQUVBQVYwQERAWg0KKzsgcHVibGljOiBjbGFzcyBEQkdTVFJFQU0gJiBfX3RoaXNjYWxsIERCR1NUUkVBTTo6b3BlcmF0b3I8PChzaG9ydCkNCis/PzZEQkdTVFJFQU1AQFFBRUFBVjBARkBaDQorOyBwdWJsaWM6IGNsYXNzIERCR1NUUkVBTSAmIF9fdGhpc2NhbGwgREJHU1RSRUFNOjpvcGVyYXRvcjw8KHVuc2lnbmVkIHNob3J0KQ0KKz8/NkRCR1NUUkVBTUBAUUFFQUFWMEBHQFoNCis7IHB1YmxpYzogY2xhc3MgREJHU1RSRUFNICYgX190aGlzY2FsbCBEQkdTVFJFQU06Om9wZXJhdG9yPDwoaW50KQ0KKz8/NkRCR1NUUkVBTUBAUUFFQUFWMEBIQFoNCis7IHB1YmxpYzogY2xhc3MgREJHU1RSRUFNICYgX190aGlzY2FsbCBEQkdTVFJFQU06Om9wZXJhdG9yPDwodW5zaWduZWQgaW50KQ0KKz8/NkRCR1NUUkVBTUBAUUFFQUFWMEBJQFoNCis7IHB1YmxpYzogY2xhc3MgREJHU1RSRUFNICYgX190aGlzY2FsbCBEQkdTVFJFQU06Om9wZXJhdG9yPDwobG9uZykNCis/PzZEQkdTVFJFQU1AQFFBRUFBVjBASkBaDQorOyBwdWJsaWM6IGNsYXNzIERCR1NUUkVBTSAmIF9fdGhpc2NhbGwgREJHU1RSRUFNOjpvcGVyYXRvcjw8KHVuc2lnbmVkIGxvbmcpDQorPz82REJHU1RSRUFNQEBRQUVBQVYwQEtAWg0KKzsgcHVibGljOiBjbGFzcyBEQkdTVFJFQU0gJiBfX3RoaXNjYWxsIERCR1NUUkVBTTo6b3BlcmF0b3I8PChjaGFyIGNvbnN0ICopDQorPz82REJHU1RSRUFNQEBRQUVBQVYwQFBCREBaDQorOyBwdWJsaWM6IGNsYXNzIERCR1NUUkVBTSAmIF9fdGhpc2NhbGwgREJHU1RSRUFNOjpvcGVyYXRvcjw8KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz82REJHU1RSRUFNQEBRQUVBQVYwQFBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIERCR1NUUkVBTSAmIF9fdGhpc2NhbGwgREJHU1RSRUFNOjpvcGVyYXRvcjw8KGVudW0gREJHU1RSX1NQRUNJQUwpDQorPz82REJHU1RSRUFNQEBRQUVBQVYwQFc0REJHU1RSX1NQRUNJQUxAQEBaDQorOyBwdWJsaWM6IGNsYXNzIERCR1NUUkVBTSAmIF9fdGhpc2NhbGwgREJHU1RSRUFNOjpvcGVyYXRvcjw8KF9faW50NjQpDQorPz82REJHU1RSRUFNQEBRQUVBQVYwQF9KQFoNCis7IHB1YmxpYzogY2xhc3MgREJHU1RSRUFNICYgX190aGlzY2FsbCBEQkdTVFJFQU06Om9wZXJhdG9yPDwodW5zaWduZWQgX19pbnQ2NCkNCis/PzZEQkdTVFJFQU1AQFFBRUFBVjBAX0tAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBCQVNFOjpvcGVyYXRvciEodm9pZCljb25zdCANCis/PzdCQVNFQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQklURklFTEQ6Om9wZXJhdG9yPT0oY2xhc3MgQklURklFTEQgJikNCis/PzhCSVRGSUVMREBAUUFFSEFBVjBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQklURklFTEQ6Om9wZXJhdG9yPT0odW5zaWduZWQgc2hvcnQpY29uc3QgDQorPz84QklURklFTERAQFFCRUhHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQklURklFTEQ6Om9wZXJhdG9yPT0odW5zaWduZWQgbG9uZyljb25zdCANCis/PzhCSVRGSUVMREBAUUJFSEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBJU1RSOjpvcGVyYXRvcj09KGNsYXNzIElTVFIgY29uc3QgJiljb25zdCANCis/PzhJU1RSQEBRQkVIQUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBOTFNfU1RSOjpvcGVyYXRvcj09KGNsYXNzIE5MU19TVFIgY29uc3QgJiljb25zdCANCis/PzhOTFNfU1RSQEBRQkVIQUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBOTFNfU1RSOjpvcGVyYXRvciE9KGNsYXNzIE5MU19TVFIgY29uc3QgJiljb25zdCANCis/PzlOTFNfU1RSQEBRQkVIQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJJVEZJRUxEOjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCh2b2lkKQ0KKz8/QkJJVEZJRUxEQEBRQUVHWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCSVRGSUVMRDo6b3BlcmF0b3IgdW5zaWduZWQgbG9uZyh2b2lkKQ0KKz8/QkJJVEZJRUxEQEBRQUVLWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOTFNfU1RSOjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCBjb25zdCAqKHZvaWQpY29uc3QgDQorPz9CTkxTX1NUUkBAUUJFUEJHWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBSRUdfS0VZOjpvcGVyYXRvciBzdHJ1Y3QgSEtFWV9fICoodm9pZCljb25zdCANCis/P0JSRUdfS0VZQEBRQkVQQVVIS0VZX19AQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVENIQVJfU1RSOjpvcGVyYXRvciBjbGFzcyBBTElBU19TVFIgY29uc3QgJih2b2lkKQ0KKz8/QlRDSEFSX1NUUkBAUUFFQUJWQUxJQVNfU1RSQEBYWg0KKzsgcHVibGljOiBjbGFzcyBJU1RSICYgX190aGlzY2FsbCBJU1RSOjpvcGVyYXRvcisrKHZvaWQpDQorPz9FSVNUUkBAUUFFQUFWMEBYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBJU1RSOjpvcGVyYXRvci0oY2xhc3MgSVNUUiBjb25zdCAmKWNvbnN0IA0KKz8/R0lTVFJAQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEJJVEZJRUxEOjpvcGVyYXRvciYoY2xhc3MgQklURklFTEQgY29uc3QgJikNCis/P0lCSVRGSUVMREBAUUFFSEFCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgSVNUUjo6b3BlcmF0b3I8KGNsYXNzIElTVFIgY29uc3QgJiljb25zdCANCis/P01JU1RSQEBRQkVIQUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBJU1RSOjpvcGVyYXRvcj4oY2xhc3MgSVNUUiBjb25zdCAmKWNvbnN0IA0KKz8/T0lTVFJAQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIE5MU19TVFIgKiBfX3RoaXNjYWxsIElURVJfU0xfTkxTX1NUUjo6b3BlcmF0b3IoKSh2b2lkKQ0KKz8/UklURVJfU0xfTkxTX1NUUkBAUUFFUEFWTkxTX1NUUkBAWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIElTVFI6Om9wZXJhdG9yKz0oaW50KQ0KKz8/WUlTVFJAQFFBRVhIQFoNCis7IHB1YmxpYzogY2xhc3MgTkxTX1NUUiAmIF9fdGhpc2NhbGwgTkxTX1NUUjo6b3BlcmF0b3IrPShjbGFzcyBOTFNfU1RSIGNvbnN0ICYpDQorPz9ZTkxTX1NUUkBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBCSVRGSUVMRDo6b3BlcmF0b3ImPShjbGFzcyBCSVRGSUVMRCBjb25zdCAmKQ0KKz8/XzRCSVRGSUVMREBAUUFFWEFCVjBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEJJVEZJRUxEOjpvcGVyYXRvciY9KHVuc2lnbmVkIHNob3J0KQ0KKz8/XzRCSVRGSUVMREBAUUFFWEdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQklURklFTEQ6Om9wZXJhdG9yJj0odW5zaWduZWQgbG9uZykNCis/P180QklURklFTERAQFFBRVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEJJVEZJRUxEOjpvcGVyYXRvcnw9KGNsYXNzIEJJVEZJRUxEIGNvbnN0ICYpDQorPz9fNUJJVEZJRUxEQEBRQUVYQUJWMEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQklURklFTEQ6Om9wZXJhdG9yfD0odW5zaWduZWQgc2hvcnQpDQorPz9fNUJJVEZJRUxEQEBRQUVYR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBCSVRGSUVMRDo6b3BlcmF0b3J8PSh1bnNpZ25lZCBsb25nKQ0KKz8/XzVCSVRGSUVMREBAUUFFWEtAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgYHZlY3RvciBjb25zdHJ1Y3RvciBpdGVyYXRvcicodm9pZCAqLHVuc2lnbmVkIGludCxpbnQsdm9pZCAqIChfX3RoaXNjYWxsKikodm9pZCAqKSkNCis/P19IQFlHWFBBWElIUDZFUEFYMEBaQFoNCis7IHZvaWQgX19zdGRjYWxsIGB2ZWN0b3IgZGVzdHJ1Y3RvciBpdGVyYXRvcicodm9pZCAqLHVuc2lnbmVkIGludCxpbnQsdm9pZCAoX190aGlzY2FsbCopKHZvaWQgKikpDQorPz9fSUBZR1hQQVhJSFA2RVgwQFpAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgYHZlY3RvciB2YmFzZSBjb25zdHJ1Y3RvciBpdGVyYXRvcicodm9pZCAqLHVuc2lnbmVkIGludCxpbnQsdm9pZCAqIChfX3RoaXNjYWxsKikodm9pZCAqKSkNCis/P19KQFlHWFBBWElIUDZFUEFYMEBaQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIERMSVNUOjpBZGQodm9pZCAqKQ0KKz9BZGRARExJU1RAQFFBRUpQQVhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0xJU1Q6OkFkZCh2b2lkICopDQorP0FkZEBTTElTVEBAUUFFSlBBWEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTTElTVF9PRl9ESVJfQkxPQ0s6OkFkZChjbGFzcyBESVJfQkxPQ0sgY29uc3QgKikNCis/QWRkQFNMSVNUX09GX0RJUl9CTE9DS0BAUUFFSlBCVkRJUl9CTE9DS0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNMSVNUX09GX05MU19TVFI6OkFkZChjbGFzcyBOTFNfU1RSIGNvbnN0ICopDQorP0FkZEBTTElTVF9PRl9OTFNfU1RSQEBRQUVKUEJWTkxTX1NUUkBAQFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIE5MU19TVFI6OkFsbG9jKHVuc2lnbmVkIGludCkNCis/QWxsb2NATkxTX1NUUkBAQUFFSElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBPTkVfU0hPVF9IRUFQOjpBbGxvYyh1bnNpZ25lZCBpbnQpDQorP0FsbG9jQE9ORV9TSE9UX0hFQVBAQFFBRVBBRUlAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQklURklFTEQ6OkFsbG9jQml0ZmllbGQodW5zaWduZWQgaW50KQ0KKz9BbGxvY0JpdGZpZWxkQEJJVEZJRUxEQEBJQUVKSUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBETElTVDo6QXBwZW5kKHZvaWQgKikNCis/QXBwZW5kQERMSVNUQEBRQUVKUEFYQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5MU19TVFI6OkFwcGVuZChjbGFzcyBOTFNfU1RSIGNvbnN0ICYpDQorP0FwcGVuZEBOTFNfU1RSQEBRQUVKQUJWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0xJU1Q6OkFwcGVuZCh2b2lkICopDQorP0FwcGVuZEBTTElTVEBAUUFFSlBBWEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTTElTVF9PRl9OTFNfU1RSOjpBcHBlbmQoY2xhc3MgTkxTX1NUUiBjb25zdCAqKQ0KKz9BcHBlbmRAU0xJU1RfT0ZfTkxTX1NUUkBAUUFFSlBCVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBOTFNfU1RSOjpBcHBlbmRDaGFyKHVuc2lnbmVkIHNob3J0KQ0KKz9BcHBlbmRDaGFyQE5MU19TVFJAQFFBRUpHQFoNCis7IHB1YmxpYzogY2xhc3MgVFJFRSAqIF9fdGhpc2NhbGwgVFJFRTo6QnJlYWtPdXQodm9pZCkNCis/QnJlYWtPdXRAVFJFRUBAUUFFUEFWMUBYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgRExJU1Q6OkJ1bXBJdGVycyhjbGFzcyBETF9OT0RFICopDQorP0J1bXBJdGVyc0BETElTVEBASUFFWFBBVkRMX05PREVAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBTTElTVDo6QnVtcEl0ZXJzKGNsYXNzIFNMX05PREUgKikNCis/QnVtcEl0ZXJzQFNMSVNUQEBJQUVYUEFWU0xfTk9ERUBAQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBOTFNfU1RSOjpDaGVja0lzdHIoY2xhc3MgSVNUUiBjb25zdCAmKWNvbnN0IA0KKz9DaGVja0lzdHJATkxTX1NUUkBAQUJFWEFCVklTVFJAQEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIERMSVNUOjpDaGVja0l0ZXIoY2xhc3MgSVRFUl9MICopDQorP0NoZWNrSXRlckBETElTVEBASUFFSFBBVklURVJfTEBAQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgU0xJU1Q6OkNoZWNrSXRlcihjbGFzcyBJVEVSX1NMICopDQorP0NoZWNrSXRlckBTTElTVEBASUFFSFBBVklURVJfU0xAQEBaDQorOyBsb25nIF9fc3RkY2FsbCBDaGVja0xvY2FsQ29tbSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9DaGVja0xvY2FsQ29tbUBAWUdKUEJHQFoNCis7IGxvbmcgX19zdGRjYWxsIENoZWNrTG9jYWxEcml2ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9DaGVja0xvY2FsRHJpdmVAQFlHSlBCR0BaDQorOyBsb25nIF9fc3RkY2FsbCBDaGVja0xvY2FsTHB0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NoZWNrTG9jYWxMcHRAQFlHSlBCR0BaDQorOyBsb25nIF9fc3RkY2FsbCBDaGVja1VuYXZhaWxEZXZpY2UodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCAqLGludCAqKQ0KKz9DaGVja1VuYXZhaWxEZXZpY2VAQFlHSlBCR1BBR1BBSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBTTElTVF9PRl9ESVJfQkxPQ0s6OkNsZWFyKHZvaWQpDQorP0NsZWFyQFNMSVNUX09GX0RJUl9CTE9DS0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBTTElTVF9PRl9OTFNfU1RSOjpDbGVhcih2b2lkKQ0KKz9DbGVhckBTTElTVF9PRl9OTFNfU1RSQEBRQUVYWFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBSRUdfS0VZOjpDbG9zZSh2b2lkKQ0KKz9DbG9zZUBSRUdfS0VZQEBBQUVKWFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBGTVg6OkNvbW1hbmQodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxsb25nKWNvbnN0IA0KKz9Db21tYW5kQEZNWEBAQUJFS0lJSkBaDQorOyBwdWJsaWM6IGludCBfX2NkZWNsIE5MU19TVFI6OkNvbXBhcmUoY2xhc3MgTkxTX1NUUiBjb25zdCAqKWNvbnN0IA0KKz9Db21wYXJlQE5MU19TVFJAQFFCQUhQQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIExPR09OX0hPVVJTX1NFVFRJTkc6OkNvbnZlcnRGcm9tR01UKHZvaWQpDQorP0NvbnZlcnRGcm9tR01UQExPR09OX0hPVVJTX1NFVFRJTkdAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBMT0dPTl9IT1VSU19TRVRUSU5HOjpDb252ZXJ0VG9HTVQodm9pZCkNCis/Q29udmVydFRvR01UQExPR09OX0hPVVJTX1NFVFRJTkdAQFFBRUhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfU0VUVElORzo6Q29udmVydFRvSG91cnNQZXJXZWVrKHZvaWQpDQorP0NvbnZlcnRUb0hvdXJzUGVyV2Vla0BMT0dPTl9IT1VSU19TRVRUSU5HQEBRQUVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5MU19TVFI6OkNvcHlGcm9tKGNsYXNzIE5MU19TVFIgY29uc3QgJikNCis/Q29weUZyb21ATkxTX1NUUkBAUUFFSkFCVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5MU19TVFI6OkNvcHlGcm9tKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9Db3B5RnJvbUBOTFNfU1RSQEBRQUVKUEJHSUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBOTFNfU1RSOjpDb3B5VG8odW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBpbnQpY29uc3QgDQorP0NvcHlUb0BOTFNfU1RSQEBRQkVKUEFHSUBaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgUkVHX0tFWTo6Q3JlYXRlQ2hpbGQoY2xhc3MgUkVHX0tFWSAqLGNsYXNzIE5MU19TVFIgY29uc3QgJixjbGFzcyBSRUdfS0VZX0NSRUFURV9TVFJVQ1QgKiljb25zdCANCis/Q3JlYXRlQ2hpbGRAUkVHX0tFWUBAQUJFSlBBVjFAQUJWTkxTX1NUUkBAUEFWUkVHX0tFWV9DUkVBVEVfU1RSVUNUQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIERJUl9CTE9DSyAqIF9fdGhpc2NhbGwgVzMyX0ZTX0VOVU06OkNyZWF0ZURpckJsb2NrKHZvaWQpDQorP0NyZWF0ZURpckJsb2NrQFczMl9GU19FTlVNQEBNQUVQQVZESVJfQkxPQ0tAQFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgU1RSTElTVDo6Q3JlYXRlTGlzdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NyZWF0ZUxpc3RAU1RSTElTVEBAQUFFWFBCRzBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIE5MU19TVFI6OkRlbFN1YlN0cihjbGFzcyBJU1RSICYsdW5zaWduZWQgaW50KQ0KKz9EZWxTdWJTdHJATkxTX1NUUkBAQUFFWEFBVklTVFJAQElAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgTkxTX1NUUjo6RGVsU3ViU3RyKGNsYXNzIElTVFIgJikNCis/RGVsU3ViU3RyQE5MU19TVFJAQFFBRVhBQVZJU1RSQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgTkxTX1NUUjo6RGVsU3ViU3RyKGNsYXNzIElTVFIgJixjbGFzcyBJU1RSIGNvbnN0ICYpDQorP0RlbFN1YlN0ckBOTFNfU1RSQEBRQUVYQUFWSVNUUkBAQUJWMkBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgUkVHX0tFWTo6RGVsZXRlKHZvaWQpDQorP0RlbGV0ZUBSRUdfS0VZQEBRQUVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFJFR19LRVk6OkRlbGV0ZVZhbHVlKGNsYXNzIE5MU19TVFIgY29uc3QgJikNCis/RGVsZXRlVmFsdWVAUkVHX0tFWUBAUUFFSkFCVk5MU19TVFJAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBETElTVDo6RGVyZWdpc3RlcihjbGFzcyBJVEVSX0wgKikNCis/RGVyZWdpc3RlckBETElTVEBASUFFWFBBVklURVJfTEBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIFNMSVNUOjpEZXJlZ2lzdGVyKGNsYXNzIElURVJfU0wgKikNCis/RGVyZWdpc3RlckBTTElTVEBASUFFWFBBVklURVJfU0xAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIERJUl9CTE9DSzo6RG9CcmVhZHRoRmlyc3REaXJzKHZvaWQpY29uc3QgDQorP0RvQnJlYWR0aEZpcnN0RGlyc0BESVJfQkxPQ0tAQFFCRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBPVVRQVVRfVE9fQVVYOjpFbmRPZkxpbmUodm9pZCkNCis/RW5kT2ZMaW5lQE9VVFBVVF9UT19BVVhAQFVBRVhYWg0KKzsgcHJpdmF0ZTogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgT1VUUFVUX1RPX05VTDo6RW5kT2ZMaW5lKHZvaWQpDQorP0VuZE9mTGluZUBPVVRQVVRfVE9fTlVMQEBFQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgT1VUUFVUX1RPX1NUREVSUjo6RW5kT2ZMaW5lKHZvaWQpDQorP0VuZE9mTGluZUBPVVRQVVRfVE9fU1RERVJSQEBVQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgT1VUUFVUX1RPX1NURE9VVDo6RW5kT2ZMaW5lKHZvaWQpDQorP0VuZE9mTGluZUBPVVRQVVRfVE9fU1RET1VUQEBVQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEJVRkZFUjo6RmlsbE91dCh2b2lkKQ0KKz9GaWxsT3V0QEJVRkZFUkBAUUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFczMl9GU19FTlVNOjpGaW5kRmlyc3QoY2xhc3MgRElSX0JMT0NLICosY2xhc3MgTkxTX1NUUiBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/RmluZEZpcnN0QFczMl9GU19FTlVNQEBNQUVKUEFWRElSX0JMT0NLQEBBQlZOTFNfU1RSQEBJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgVzMyX0ZTX0VOVU06OkZpbmROZXh0KGNsYXNzIERJUl9CTE9DSyAqLHVuc2lnbmVkIGludCkNCis/RmluZE5leHRAVzMyX0ZTX0VOVU1AQE1BRUpQQVZESVJfQkxPQ0tAQElAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBTTF9OT0RFICogX190aGlzY2FsbCBTTElTVDo6RmluZFByZXYoY2xhc3MgU0xfTk9ERSAqKQ0KKz9GaW5kUHJldkBTTElTVEBASUFFUEFWU0xfTk9ERUBAUEFWMkBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgUkVHX0tFWTo6Rmx1c2godm9pZCkNCis/Rmx1c2hAUkVHX0tFWUBAUUFFSlhaDQorOyBwdWJsaWM6IGNsYXNzIFVBVE9NICogX190aGlzY2FsbCBVQVRPTV9MSU5LQUdFOjpGd2Qodm9pZCkNCis/RndkQFVBVE9NX0xJTktBR0VAQFFBRVBBVlVBVE9NQEBYWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIEJVRkZFUjo6R2V0TmV3U3RvcmFnZSh1bnNpZ25lZCBpbnQpDQorP0dldE5ld1N0b3JhZ2VAQlVGRkVSQEBBQUVKSUBaDQorOyBsb25nIF9fc3RkY2FsbCBHZXRTZWxJdGVtKHN0cnVjdCBIV05EX18gKix1bnNpZ25lZCBpbnQsY2xhc3MgTkxTX1NUUiAqLGludCAqKQ0KKz9HZXRTZWxJdGVtQEBZR0pQQVVIV05EX19AQElQQVZOTFNfU1RSQEBQQUhAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgR2V0U2VsSXRlbShzdHJ1Y3QgSFdORF9fICosY2xhc3MgTkxTX1NUUiAqLGludCxpbnQgKikNCis/R2V0U2VsSXRlbUBAWUdKUEFVSFdORF9fQEBQQVZOTFNfU1RSQEBIUEFIQFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgX19zdGRjYWxsIFJFR19LRVk6OkhhbmRsZVByZWZpeChjbGFzcyBOTFNfU1RSIGNvbnN0ICYsc3RydWN0IEhLRVlfXyAqICosY2xhc3MgTkxTX1NUUiAqLGNsYXNzIE5MU19TVFIgKikNCis/SGFuZGxlUHJlZml4QFJFR19LRVlAQENHSEFCVk5MU19TVFJAQFBBUEFVSEtFWV9fQEBQQVYyQDJAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBESVJfQkxPQ0s6Okhhc0ZpbmRGaXJzdEJlZW5DYWxsZWQodm9pZCkNCis/SGFzRmluZEZpcnN0QmVlbkNhbGxlZEBESVJfQkxPQ0tAQFFBRUhYWg0KKzsgdm9pZCBfX3N0ZGNhbGwgSGVhcFJlc2lkdWVJdGVyKHVuc2lnbmVkIGludCxpbnQpDQorP0hlYXBSZXNpZHVlSXRlckBAWUdYSUhAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgSEVBUF9CQVNFOjpJX0FkZEl0ZW0odm9pZCAqKQ0KKz9JX0FkZEl0ZW1ASEVBUF9CQVNFQEBJQUVKUEFYQFoNCis7IHByb3RlY3RlZDogdm9pZCAqIF9fdGhpc2NhbGwgSEVBUF9CQVNFOjpJX1JlbW92ZVRvcEl0ZW0odm9pZCkNCis/SV9SZW1vdmVUb3BJdGVtQEhFQVBfQkFTRUBASUFFUEFYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIE5MU19TVFI6OkluY1ZlcnModm9pZCkNCis/SW5jVmVyc0BOTFNfU1RSQEBJQUVYWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIE5VTV9OTFNfU1RSOjpJbml0KHZvaWQpDQorP0luaXRATlVNX05MU19TVFJAQFNHWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBVQVRPTV9MSU5LQUdFOjpJbml0KHZvaWQpDQorP0luaXRAVUFUT01fTElOS0FHRUBAUUFFWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBVQVRPTV9NQU5BR0VSOjpJbml0aWFsaXplKHZvaWQpDQorP0luaXRpYWxpemVAVUFUT01fTUFOQUdFUkBAU0dKWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIE5MU19TVFI6OkluaXRpYWxpemVWZXJzKHZvaWQpDQorP0luaXRpYWxpemVWZXJzQE5MU19TVFJAQElBRVhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgRExJU1Q6Okluc2VydCh2b2lkICosY2xhc3MgSVRFUl9ETCAmKQ0KKz9JbnNlcnRARExJU1RAQFFBRUpQQVhBQVZJVEVSX0RMQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgRExJU1Q6Okluc2VydCh2b2lkICosY2xhc3MgUklURVJfREwgJikNCis/SW5zZXJ0QERMSVNUQEBRQUVKUEFYQUFWUklURVJfRExAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTTElTVDo6SW5zZXJ0KHZvaWQgKixjbGFzcyBJVEVSX1NMICYpDQorP0luc2VydEBTTElTVEBAUUFFSlBBWEFBVklURVJfU0xAQEBaDQorOyBwdWJsaWM6IGxvbmcgX19jZGVjbCBOTFNfU1RSOjpJbnNlcnRQYXJhbXModW5zaWduZWQgaW50LGNsYXNzIE5MU19TVFIgY29uc3QgKiwuLi4pDQorP0luc2VydFBhcmFtc0BOTFNfU1RSQEBRQUFKSVBCVjFAWloNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5MU19TVFI6Okluc2VydFBhcmFtcyhjbGFzcyBOTFNfU1RSIGNvbnN0ICYsY2xhc3MgTkxTX1NUUiBjb25zdCAmLGNsYXNzIE5MU19TVFIgY29uc3QgJikNCis/SW5zZXJ0UGFyYW1zQE5MU19TVFJAQFFBRUpBQlYxQDAwQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5MU19TVFI6Okluc2VydFBhcmFtcyhjbGFzcyBOTFNfU1RSIGNvbnN0ICogKikNCis/SW5zZXJ0UGFyYW1zQE5MU19TVFJAQFFBRUpQQVBCVjFAQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBOTFNfU1RSOjpJbnNlcnRQYXJhbXNBdXgoY2xhc3MgTkxTX1NUUiBjb25zdCAqICosdW5zaWduZWQgaW50LGludCx1bnNpZ25lZCBpbnQgKikNCis/SW5zZXJ0UGFyYW1zQXV4QE5MU19TVFJAQEFBRUpQQVBCVjFASUhQQUlAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBOTFNfU1RSOjpJbnNlcnRTdHIoY2xhc3MgTkxTX1NUUiBjb25zdCAmLGNsYXNzIElTVFIgJikNCis/SW5zZXJ0U3RyQE5MU19TVFJAQFFBRUhBQlYxQEFBVklTVFJAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIElOVExfUFJPRklMRTo6SXMyNEhvdXIodm9pZCljb25zdCANCis/SXMyNEhvdXJASU5UTF9QUk9GSUxFQEBRQkVIWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgQklURklFTEQ6OklzQWxsb2NhdGVkKHZvaWQpY29uc3QgDQorP0lzQWxsb2NhdGVkQEJJVEZJRUxEQEBJQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQklURklFTEQ6OklzQml0U2V0KHVuc2lnbmVkIGludCljb25zdCANCis/SXNCaXRTZXRAQklURklFTERAQFFCRUhJQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgSU5UTF9QUk9GSUxFOjpJc0RheUxaZXJvKHZvaWQpY29uc3QgDQorP0lzRGF5TFplcm9ASU5UTF9QUk9GSUxFQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgRElSX0JMT0NLOjpJc0Rpcih2b2lkKQ0KKz9Jc0RpckBESVJfQkxPQ0tAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBGTVg6OklzSGV0ZXJvZ2VuZW91c1NlbGVjdGlvbihpbnQgKikNCis/SXNIZXRlcm9nZW5lb3VzU2VsZWN0aW9uQEZNWEBAUUFFSFBBSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIElOVExfUFJPRklMRTo6SXNIb3VyTFplcm8odm9pZCljb25zdCANCis/SXNIb3VyTFplcm9ASU5UTF9QUk9GSUxFQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfU0VUVElORzo6SXNJZGVudGljYWxUb0JpdHModW5zaWduZWQgY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCljb25zdCANCis/SXNJZGVudGljYWxUb0JpdHNATE9HT05fSE9VUlNfU0VUVElOR0BAUUJFSFBCRUlAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBJU1RSOjpJc0xhc3RQb3Modm9pZCljb25zdCANCis/SXNMYXN0UG9zQElTVFJAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTTElTVF9PRl9OTFNfU1RSOjpJc01lbWJlcihjbGFzcyBOTFNfU1RSIGNvbnN0ICYpDQorP0lzTWVtYmVyQFNMSVNUX09GX05MU19TVFJAQFFBRUhBQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBJTlRMX1BST0ZJTEU6OklzTW9udGhMWmVybyh2b2lkKWNvbnN0IA0KKz9Jc01vbnRoTFplcm9ASU5UTF9QUk9GSUxFQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTkxTX1NUUjo6SXNPd25lckFsbG9jKHZvaWQpY29uc3QgDQorP0lzT3duZXJBbGxvY0BOTFNfU1RSQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgSU5UTF9QUk9GSUxFOjpJc1RpbWVQcmVmaXgodm9pZCljb25zdCANCis/SXNUaW1lUHJlZml4QElOVExfUFJPRklMRUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIElOVExfUFJPRklMRTo6SXNZckNlbnR1cnkodm9pZCljb25zdCANCis/SXNZckNlbnR1cnlASU5UTF9QUk9GSUxFQEBRQkVIWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFRSRUU6OkpvaW5TaWJsaW5nTGVmdChjbGFzcyBUUkVFICopDQorP0pvaW5TaWJsaW5nTGVmdEBUUkVFQEBRQUVYUEFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgVFJFRTo6Sm9pblNpYmxpbmdSaWdodChjbGFzcyBUUkVFICopDQorP0pvaW5TaWJsaW5nUmlnaHRAVFJFRUBAUUFFWFBBVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFRSRUU6OkpvaW5TdWJ0cmVlTGVmdChjbGFzcyBUUkVFICopDQorP0pvaW5TdWJ0cmVlTGVmdEBUUkVFQEBRQUVYUEFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgVFJFRTo6Sm9pblN1YnRyZWVSaWdodChjbGFzcyBUUkVFICopDQorP0pvaW5TdWJ0cmVlUmlnaHRAVFJFRUBAUUFFWFBBVjFAQFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBSRUdfS0VZOjpMZWFmS2V5TmFtZSh2b2lkKWNvbnN0IA0KKz9MZWFmS2V5TmFtZUBSRUdfS0VZQEBBQkVQQkdYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgVUFUT01fTElOS0FHRTo6TGluayhjbGFzcyBVQVRPTV9MSU5LQUdFICopDQorP0xpbmtAVUFUT01fTElOS0FHRUBAUUFFWFBBVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5MU19TVFI6OkxvYWQobG9uZyxzdHJ1Y3QgSElOU1RBTkNFX18gKikNCis/TG9hZEBOTFNfU1RSQEBRQUVKSlBBVUhJTlNUQU5DRV9fQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTkxTX1NUUjo6TG9hZFN5c3RlbShsb25nKQ0KKz9Mb2FkU3lzdGVtQE5MU19TVFJAQFFBRUpKQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExPR09OX0hPVVJTX1NFVFRJTkc6Ok1ha2VEZWZhdWx0KHZvaWQpDQorP01ha2VEZWZhdWx0QExPR09OX0hPVVJTX1NFVFRJTkdAQFFBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTkxTX1NUUjo6TWFwQ29weUZyb20oY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/TWFwQ29weUZyb21ATkxTX1NUUkBAUUFFSlBCRElAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTkxTX1NUUjo6TWFwQ29weUZyb20odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP01hcENvcHlGcm9tQE5MU19TVFJAQFFBRUpQQkdJQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5MU19TVFI6Ok1hcENvcHlUbyhjaGFyICosdW5zaWduZWQgaW50KWNvbnN0IA0KKz9NYXBDb3B5VG9ATkxTX1NUUkBAUUJFSlBBRElAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTkxTX1NUUjo6TWFwQ29weVRvKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgaW50KWNvbnN0IA0KKz9NYXBDb3B5VG9ATkxTX1NUUkBAUUJFSlBBR0lAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgRVJSTUFQOjpNYXBOVFN0YXR1cyhsb25nLGludCAqLGxvbmcpDQorP01hcE5UU3RhdHVzQEVSUk1BUEBAU0dKSlBBSEpAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIFJFR19LRVk6Ok5hbWVDaGlsZChjbGFzcyBSRUdfS0VZICosY2xhc3MgTkxTX1NUUiBjb25zdCAmKWNvbnN0IA0KKz9OYW1lQ2hpbGRAUkVHX0tFWUBAQUJFSlBBVjFAQUJWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgREZTSVRFUl9UUkVFOjpOZXh0KHZvaWQpDQorP05leHRAREZTSVRFUl9UUkVFQEBRQUVQQVhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBGU19FTlVNOjpOZXh0KHZvaWQpDQorP05leHRARlNfRU5VTUBAUUFFSFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3RoaXNjYWxsIElURVJfU0w6Ok5leHQodm9pZCkNCis/TmV4dEBJVEVSX1NMQEBRQUVQQVhYWg0KKzsgcHVibGljOiBjbGFzcyBESVJfQkxPQ0sgKiBfX3RoaXNjYWxsIElURVJfU0xfRElSX0JMT0NLOjpOZXh0KHZvaWQpDQorP05leHRASVRFUl9TTF9ESVJfQkxPQ0tAQFFBRVBBVkRJUl9CTE9DS0BAWFoNCis7IHB1YmxpYzogY2xhc3MgTkxTX1NUUiAqIF9fdGhpc2NhbGwgSVRFUl9TTF9OTFNfU1RSOjpOZXh0KHZvaWQpDQorP05leHRASVRFUl9TTF9OTFNfU1RSQEBRQUVQQVZOTFNfU1RSQEBYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBGU19FTlVNOjpOZXh0QnJlYWR0aEZpcnN0KHZvaWQpDQorP05leHRCcmVhZHRoRmlyc3RARlNfRU5VTUBASUFFSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIEZTX0VOVU06Ok5leHREZXB0aEZpcnN0KHZvaWQpDQorP05leHREZXB0aEZpcnN0QEZTX0VOVU1AQElBRUhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgV0lOX1RJTUU6Ok5vcm1hbGl6ZSh2b2lkKQ0KKz9Ob3JtYWxpemVAV0lOX1RJTUVAQFFBRUpYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQklURklFTEQ6Ok5vdCh2b2lkKQ0KKz9Ob3RAQklURklFTERAQFFBRVhYWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIFJFR19LRVk6Ok9wZW5CeU5hbWUoY2xhc3MgTkxTX1NUUiBjb25zdCAmLHVuc2lnbmVkIGxvbmcpDQorP09wZW5CeU5hbWVAUkVHX0tFWUBAQUFFSkFCVk5MU19TVFJAQEtAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIFJFR19LRVk6Ok9wZW5DaGlsZChjbGFzcyBSRUdfS0VZICosY2xhc3MgTkxTX1NUUiBjb25zdCAmLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/T3BlbkNoaWxkQFJFR19LRVlAQEFBRUpQQVYxQEFCVk5MU19TVFJAQEtLQFoNCis7IHByaXZhdGU6IGNsYXNzIFJFR19LRVkgKiBfX3RoaXNjYWxsIFJFR19LRVk6Ok9wZW5QYXJlbnQodW5zaWduZWQgbG9uZykNCis/T3BlblBhcmVudEBSRUdfS0VZQEBBQUVQQVYxQEtAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIFJFR19LRVk6OlBhcmVudE5hbWUoY2xhc3MgTkxTX1NUUiAqKWNvbnN0IA0KKz9QYXJlbnROYW1lQFJFR19LRVlAQEFCRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkICogX190aGlzY2FsbCBIRUFQX0JBU0U6OlBlZWtJdGVtKGludCljb25zdCANCis/UGVla0l0ZW1ASEVBUF9CQVNFQEBJQkVQQVhIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExPR09OX0hPVVJTX1NFVFRJTkc6OlBlcm1pdEFsbCh2b2lkKQ0KKz9QZXJtaXRBbGxATE9HT05fSE9VUlNfU0VUVElOR0BAUUFFSlhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBGU19FTlVNOjpQb3BEaXIodm9pZCkNCis/UG9wRGlyQEZTX0VOVU1AQElBRUpYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgRlNfRU5VTTo6UHVzaERpcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9QdXNoRGlyQEZTX0VOVU1AQElBRUpQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgSU5UTF9QUk9GSUxFOjpRdWVyeUFNU3RyKGNsYXNzIE5MU19TVFIgKiljb25zdCANCis/UXVlcnlBTVN0ckBJTlRMX1BST0ZJTEVAQFFCRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgQlVGRkVSOjpRdWVyeUFjdHVhbFNpemUodm9pZCkNCis/UXVlcnlBY3R1YWxTaXplQEJVRkZFUkBAQUFFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIEJJVEZJRUxEOjpRdWVyeUFsbG9jU2l6ZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUFsbG9jU2l6ZUBCSVRGSUVMREBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIE5MU19TVFI6OlF1ZXJ5QWxsb2NTaXplKHZvaWQpY29uc3QgDQorP1F1ZXJ5QWxsb2NTaXplQE5MU19TVFJAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBOTFNfU1RSOjpRdWVyeUFuc2lUZXh0TGVuZ3RoKHZvaWQpY29uc3QgDQorP1F1ZXJ5QW5zaVRleHRMZW5ndGhATkxTX1NUUkBAUUJFSVhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgVzMyX0RJUl9CTE9DSzo6UXVlcnlBdHRyKHZvaWQpDQorP1F1ZXJ5QXR0ckBXMzJfRElSX0JMT0NLQEBVQUVJWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgQklURklFTEQ6OlF1ZXJ5Qml0UG9zKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP1F1ZXJ5Qml0UG9zQEJJVEZJRUxEQEBJQkVQQUVJSUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUkxJU1Q6OlF1ZXJ5QnVmZmVyU2l6ZSh1bnNpZ25lZCBzaG9ydCAqKQ0KKz9RdWVyeUJ1ZmZlclNpemVAU1RSTElTVEBAUUFFSFBBR0BaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fc3RkY2FsbCBMT0dPTl9IT1VSU19TRVRUSU5HOjpRdWVyeUJ5dGVDb3VudCh1bnNpZ25lZCBpbnQpDQorP1F1ZXJ5Qnl0ZUNvdW50QExPR09OX0hPVVJTX1NFVFRJTkdAQENHSUlAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBMT0dPTl9IT1VSU19TRVRUSU5HOjpRdWVyeUJ5dGVDb3VudCh2b2lkKWNvbnN0IA0KKz9RdWVyeUJ5dGVDb3VudEBMT0dPTl9IT1VSU19TRVRUSU5HQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBOTFNfU1RSOjpRdWVyeUNoYXIoY2xhc3MgSVNUUiBjb25zdCAmKWNvbnN0IA0KKz9RdWVyeUNoYXJATkxTX1NUUkBAUUJFR0FCVklTVFJAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIEJJVEZJRUxEOjpRdWVyeUNvdW50KHZvaWQpY29uc3QgDQorP1F1ZXJ5Q291bnRAQklURklFTERAQFFCRUlYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBERlNJVEVSX1RSRUU6OlF1ZXJ5Q3VyRGVwdGgodm9pZCljb25zdCANCis/UXVlcnlDdXJEZXB0aEBERlNJVEVSX1RSRUVAQElCRUlYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgREJHU1RSRUFNICYgX19zdGRjYWxsIERCR1NUUkVBTTo6UXVlcnlDdXJyZW50KHZvaWQpDQorP1F1ZXJ5Q3VycmVudEBEQkdTVFJFQU1AQFNHQUFWMUBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBGU19FTlVNOjpRdWVyeUN1cnJlbnREZXB0aCh2b2lkKQ0KKz9RdWVyeUN1cnJlbnREZXB0aEBGU19FTlVNQEBRQUVJWFoNCis7IHB1YmxpYzogY2xhc3MgRElSX0JMT0NLICogX190aGlzY2FsbCBGU19FTlVNOjpRdWVyeUN1cnJlbnREaXJCbG9jayh2b2lkKWNvbnN0IA0KKz9RdWVyeUN1cnJlbnREaXJCbG9ja0BGU19FTlVNQEBRQkVQQVZESVJfQkxPQ0tAQFhaDQorOyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBRdWVyeUN1cnJlbnRUaW1lU3RhbXAodm9pZCkNCis/UXVlcnlDdXJyZW50VGltZVN0YW1wQEBZR0tYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgUkVHX0tFWSAqIF9fc3RkY2FsbCBSRUdfS0VZOjpRdWVyeUN1cnJlbnRVc2VyKHVuc2lnbmVkIGxvbmcpDQorP1F1ZXJ5Q3VycmVudFVzZXJAUkVHX0tFWUBAU0dQQVYxQEtAWg0KKzsgcHVibGljOiBjaGFyIGNvbnN0ICogX190aGlzY2FsbCBDSEFSX1NUUklORzo6UXVlcnlEYXRhKHZvaWQpY29uc3QgDQorP1F1ZXJ5RGF0YUBDSEFSX1NUUklOR0BAUUJFUEJEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIFdDSEFSX1NUUklORzo6UXVlcnlEYXRhKHZvaWQpY29uc3QgDQorP1F1ZXJ5RGF0YUBXQ0hBUl9TVFJJTkdAQFFCRVBCR1haDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBJTlRMX1BST0ZJTEU6OlF1ZXJ5RGF0ZVNlcGFyYXRvcihjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5RGF0ZVNlcGFyYXRvckBJTlRMX1BST0ZJTEVAQFFCRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBXSU5fVElNRTo6UXVlcnlEYXkodm9pZCljb25zdCANCis/UXVlcnlEYXlAV0lOX1RJTUVAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBXSU5fVElNRTo6UXVlcnlEYXlPZldlZWsodm9pZCljb25zdCANCis/UXVlcnlEYXlPZldlZWtAV0lOX1RJTUVAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBJTlRMX1BST0ZJTEU6OlF1ZXJ5RGF5UG9zKHZvaWQpY29uc3QgDQorP1F1ZXJ5RGF5UG9zQElOVExfUFJPRklMRUBAUUJFSFhaDQorOyBwdWJsaWM6IGNsYXNzIFNUUkxJU1QgKiBfX3RoaXNjYWxsIERJUl9CTE9DSzo6UXVlcnlEaXJzKHZvaWQpDQorP1F1ZXJ5RGlyc0BESVJfQkxPQ0tAQFFBRVBBVlNUUkxJU1RAQFhaDQorOyBwdWJsaWM6IGNsYXNzIElURVJfU1RSTElTVCAqIF9fdGhpc2NhbGwgRElSX0JMT0NLOjpRdWVyeURpcnNJdGVyKHZvaWQpDQorP1F1ZXJ5RGlyc0l0ZXJARElSX0JMT0NLQEBRQUVQQVZJVEVSX1NUUkxJU1RAQFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBGTVg6OlF1ZXJ5RHJpdmVJbmZvKHN0cnVjdCBfRk1TX0dFVERSSVZFSU5GT1cgKikNCis/UXVlcnlEcml2ZUluZm9ARk1YQEBRQUVKUEFVX0ZNU19HRVREUklWRUlORk9XQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgSU5UTF9QUk9GSUxFOjpRdWVyeUR1cmF0aW9uU3RyKGludCxpbnQsaW50LGludCxjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5RHVyYXRpb25TdHJASU5UTF9QUk9GSUxFQEBRQkVKSEhISFBBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBCQVNFOjpRdWVyeUVycm9yKHZvaWQpY29uc3QgDQorP1F1ZXJ5RXJyb3JAQkFTRUBAUUJFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBGT1JXQVJESU5HX0JBU0U6OlF1ZXJ5RXJyb3Iodm9pZCljb25zdCANCis/UXVlcnlFcnJvckBGT1JXQVJESU5HX0JBU0VAQFFCRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgSFVBVE9NOjpRdWVyeUVycm9yKHZvaWQpY29uc3QgDQorP1F1ZXJ5RXJyb3JASFVBVE9NQEBRQkVKWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgVzMyX0RJUl9CTE9DSzo6UXVlcnlGaWxlTmFtZSh2b2lkKQ0KKz9RdWVyeUZpbGVOYW1lQFczMl9ESVJfQkxPQ0tAQFVBRVBCR1haDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBXSU5fVElNRTo6UXVlcnlGaWxlVGltZShzdHJ1Y3QgX0ZJTEVUSU1FICopY29uc3QgDQorP1F1ZXJ5RmlsZVRpbWVAV0lOX1RJTUVAQFFCRUpQQVVfRklMRVRJTUVAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBXSU5fVElNRTo6UXVlcnlGaWxlVGltZUxvY2FsKHN0cnVjdCBfRklMRVRJTUUgKiljb25zdCANCis/UXVlcnlGaWxlVGltZUxvY2FsQFdJTl9USU1FQEBRQkVKUEFVX0ZJTEVUSU1FQEBAWg0KKzsgcHVibGljOiBjbGFzcyBUUkVFICogX190aGlzY2FsbCBUUkVFOjpRdWVyeUZpcnN0U3VidHJlZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUZpcnN0U3VidHJlZUBUUkVFQEBRQkVQQVYxQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIEZNWDo6UXVlcnlGb2N1cyh2b2lkKWNvbnN0IA0KKz9RdWVyeUZvY3VzQEZNWEBAUUJFSVhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFdJTl9USU1FOjpRdWVyeUhvdXIodm9pZCljb25zdCANCis/UXVlcnlIb3VyQFdJTl9USU1FQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfU0VUVElORzo6UXVlcnlIb3VySW5EYXkodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCANCis/UXVlcnlIb3VySW5EYXlATE9HT05fSE9VUlNfU0VUVElOR0BAUUJFSElJQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfU0VUVElORzo6UXVlcnlIb3VySW5XZWVrKHVuc2lnbmVkIGludCljb25zdCANCis/UXVlcnlIb3VySW5XZWVrQExPR09OX0hPVVJTX1NFVFRJTkdAQFFCRUhJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfU0VUVElORzo6UXVlcnlIb3Vyc0Jsb2NrKHZvaWQpY29uc3QgDQorP1F1ZXJ5SG91cnNCbG9ja0BMT0dPTl9IT1VSU19TRVRUSU5HQEBRQkVQQUVYWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgSVNUUjo6UXVlcnlJY2godm9pZCljb25zdCANCis/UXVlcnlJY2hASVNUUkBAQUJFSFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBSRUdfS0VZOjpRdWVyeUluZm8oY2xhc3MgUkVHX0tFWV9JTkZPX1NUUlVDVCAqKQ0KKz9RdWVyeUluZm9AUkVHX0tFWUBAUUFFSlBBVlJFR19LRVlfSU5GT19TVFJVQ1RAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBSRUdfS0VZOjpRdWVyeUtleU5hbWUoY2xhc3MgTkxTX1NUUiAqKWNvbnN0IA0KKz9RdWVyeUtleU5hbWVAUkVHX0tFWUBAUUJFSlBBVk5MU19TVFJAQEBaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgUkVHX0tFWTo6UXVlcnlLZXlWYWx1ZUJpbmFyeSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGNoYXIgKiAqLGxvbmcgKixsb25nLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nKQ0KKz9RdWVyeUtleVZhbHVlQmluYXJ5QFJFR19LRVlAQEFBRUpQQkdQQVBBRVBBSkpQQUtLQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBSRUdfS0VZOjpRdWVyeUtleVZhbHVlTG9uZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcgKix1bnNpZ25lZCBsb25nICopDQorP1F1ZXJ5S2V5VmFsdWVMb25nQFJFR19LRVlAQEFBRUpQQkdQQUpQQUtAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIFJFR19LRVk6OlF1ZXJ5S2V5VmFsdWVTdHJpbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCAqICosY2xhc3MgTkxTX1NUUiAqLHVuc2lnbmVkIGxvbmcgKixsb25nLGxvbmcgKix1bnNpZ25lZCBsb25nKQ0KKz9RdWVyeUtleVZhbHVlU3RyaW5nQFJFR19LRVlAQEFBRUpQQkdQQVBBR1BBVk5MU19TVFJAQFBBS0pQQUpLQFoNCis7IHB1YmxpYzogY2xhc3MgVFJFRSAqIF9fdGhpc2NhbGwgVFJFRTo6UXVlcnlMYXN0U3VidHJlZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUxhc3RTdWJ0cmVlQFRSRUVAQFFCRVBBVjFAWFoNCis7IHB1YmxpYzogY2xhc3MgVFJFRSAqIF9fdGhpc2NhbGwgVFJFRTo6UXVlcnlMZWZ0KHZvaWQpY29uc3QgDQorP1F1ZXJ5TGVmdEBUUkVFQEBRQkVQQVYxQFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFVBVE9NX0xJTktBR0U6OlF1ZXJ5TGlua2VkKHZvaWQpDQorP1F1ZXJ5TGlua2VkQFVBVE9NX0xJTktBR0VAQFFBRUhYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgUkVHX0tFWSAqIF9fc3RkY2FsbCBSRUdfS0VZOjpRdWVyeUxvY2FsTWFjaGluZSh1bnNpZ25lZCBsb25nKQ0KKz9RdWVyeUxvY2FsTWFjaGluZUBSRUdfS0VZQEBTR1BBVjFAS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBJTlRMX1BST0ZJTEU6OlF1ZXJ5TG9uZ0RhdGVTdHJpbmcoY2xhc3MgV0lOX1RJTUUgY29uc3QgJixjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5TG9uZ0RhdGVTdHJpbmdASU5UTF9QUk9GSUxFQEBRQkVKQUJWV0lOX1RJTUVAQFBBVk5MU19TVFJAQEBaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIERGU0lURVJfVFJFRTo6UXVlcnlNYXhEZXB0aCh2b2lkKWNvbnN0IA0KKz9RdWVyeU1heERlcHRoQERGU0lURVJfVFJFRUBASUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIEZTX0VOVU06OlF1ZXJ5TWF4RGVwdGgodm9pZCkNCis/UXVlcnlNYXhEZXB0aEBGU19FTlVNQEBRQUVJWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgQklURklFTEQ6OlF1ZXJ5TWF4Tm9uQWxsb2NCaXRDb3VudCh2b2lkKWNvbnN0IA0KKz9RdWVyeU1heE5vbkFsbG9jQml0Q291bnRAQklURklFTERAQElCRUlYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBXSU5fVElNRTo6UXVlcnlNaW51dGUodm9pZCljb25zdCANCis/UXVlcnlNaW51dGVAV0lOX1RJTUVAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBXSU5fVElNRTo6UXVlcnlNb250aCh2b2lkKWNvbnN0IA0KKz9RdWVyeU1vbnRoQFdJTl9USU1FQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgSU5UTF9QUk9GSUxFOjpRdWVyeU1vbnRoUG9zKHZvaWQpY29uc3QgDQorP1F1ZXJ5TW9udGhQb3NASU5UTF9QUk9GSUxFQEBRQkVIWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEZTX0VOVU06OlF1ZXJ5TmFtZShjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5TmFtZUBGU19FTlVNQEBRQkVKUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFJFR19LRVk6OlF1ZXJ5TmFtZShjbGFzcyBOTFNfU1RSICosaW50KWNvbnN0IA0KKz9RdWVyeU5hbWVAUkVHX0tFWUBAUUJFSlBBVk5MU19TVFJAQEhAWg0KKzsgcHVibGljOiBjbGFzcyBOTFNfU1RSIGNvbnN0ICogX190aGlzY2FsbCBIVUFUT006OlF1ZXJ5TmxzKHZvaWQpY29uc3QgDQorP1F1ZXJ5TmxzQEhVQVRPTUBAUUJFUEJWTkxTX1NUUkBAWFoNCis7IHByb3RlY3RlZDogY2xhc3MgVFJFRSBjb25zdCAqIF9fdGhpc2NhbGwgREZTSVRFUl9UUkVFOjpRdWVyeU5vZGUodm9pZCljb25zdCANCis/UXVlcnlOb2RlQERGU0lURVJfVFJFRUBASUJFUEJWVFJFRUBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTkxTX1NUUjo6UXVlcnlOdW1DaGFyKHZvaWQpY29uc3QgDQorP1F1ZXJ5TnVtQ2hhckBOTFNfU1RSQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgRExJU1Q6OlF1ZXJ5TnVtRWxlbSh2b2lkKQ0KKz9RdWVyeU51bUVsZW1ARExJU1RAQFFBRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBTTElTVDo6UXVlcnlOdW1FbGVtKHZvaWQpDQorP1F1ZXJ5TnVtRWxlbUBTTElTVEBAUUFFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIFRSRUU6OlF1ZXJ5TnVtRWxlbSh2b2lkKWNvbnN0IA0KKz9RdWVyeU51bUVsZW1AVFJFRUBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIEJJVEZJRUxEOjpRdWVyeU9mZnNldCh1bnNpZ25lZCBpbnQpY29uc3QgDQorP1F1ZXJ5T2Zmc2V0QEJJVEZJRUxEQEBRQkVJSUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBJTlRMX1BST0ZJTEU6OlF1ZXJ5UE1TdHIoY2xhc3MgTkxTX1NUUiAqKWNvbnN0IA0KKz9RdWVyeVBNU3RyQElOVExfUFJPRklMRUBAUUJFSlBBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGNsYXNzIFRSRUUgKiBfX3RoaXNjYWxsIFRSRUU6OlF1ZXJ5UGFyZW50KHZvaWQpY29uc3QgDQorP1F1ZXJ5UGFyZW50QFRSRUVAQFFCRVBBVjFAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIE5MU19TVFI6OlF1ZXJ5UGNoKGNsYXNzIElTVFIgY29uc3QgJiljb25zdCANCis/UXVlcnlQY2hATkxTX1NUUkBAUUJFUEJHQUJWSVNUUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIE5MU19TVFI6OlF1ZXJ5UGNoKHZvaWQpY29uc3QgDQorP1F1ZXJ5UGNoQE5MU19TVFJAQFFCRVBCR1haDQorOyBwdWJsaWM6IHZvaWQgKiBfX3RoaXNjYWxsIElURVJfU0w6OlF1ZXJ5UHJvcCh2b2lkKQ0KKz9RdWVyeVByb3BASVRFUl9TTEBAUUFFUEFYWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgVFJFRTo6UXVlcnlQcm9wKHZvaWQpY29uc3QgDQorP1F1ZXJ5UHJvcEBUUkVFQEBRQkVQQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBCVUZGRVI6OlF1ZXJ5UHRyKHZvaWQpY29uc3QgDQorP1F1ZXJ5UHRyQEJVRkZFUkBAUUJFUEFFWFoNCis7IHB1YmxpYzogY2xhc3MgVFJFRSAqIF9fdGhpc2NhbGwgVFJFRTo6UXVlcnlSaWdodCh2b2lkKWNvbnN0IA0KKz9RdWVyeVJpZ2h0QFRSRUVAQFFCRVBBVjFAWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgRlNfRU5VTTo6UXVlcnlTZWFyY2hBdHRyKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2VhcmNoQXR0ckBGU19FTlVNQEBJQkVJWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV0lOX1RJTUU6OlF1ZXJ5U2Vjb25kKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2Vjb25kQFdJTl9USU1FQEBRQkVIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgRk1YOjpRdWVyeVNlbENvdW50KHZvaWQpY29uc3QgDQorP1F1ZXJ5U2VsQ291bnRARk1YQEBRQkVJWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEZNWDo6UXVlcnlTZWxlY3Rpb24oaW50LHN0cnVjdCBfRk1TX0dFVEZJTEVTRUxXICosaW50KQ0KKz9RdWVyeVNlbGVjdGlvbkBGTVhAQFFBRUpIUEFVX0ZNU19HRVRGSUxFU0VMV0BASEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBJTlRMX1BST0ZJTEU6OlF1ZXJ5U2hvcnREYXRlU3RyaW5nKGNsYXNzIFdJTl9USU1FIGNvbnN0ICYsY2xhc3MgTkxTX1NUUiAqKWNvbnN0IA0KKz9RdWVyeVNob3J0RGF0ZVN0cmluZ0BJTlRMX1BST0ZJTEVAQFFCRUpBQlZXSU5fVElNRUBAUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgQlVGRkVSOjpRdWVyeVNpemUodm9pZCljb25zdCANCis/UXVlcnlTaXplQEJVRkZFUkBAUUJFSVhaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIFRSRUUgY29uc3QgKiBfX3RoaXNjYWxsIERGU0lURVJfVFJFRTo6UXVlcnlTdGFydE5vZGUodm9pZCljb25zdCANCis/UXVlcnlTdGFydE5vZGVAREZTSVRFUl9UUkVFQEBJQkVQQlZUUkVFQEBYWg0KKzsgcHJpdmF0ZTogY2xhc3MgTkxTX1NUUiBjb25zdCAqIF9fdGhpc2NhbGwgSVNUUjo6UXVlcnlTdHJpbmcodm9pZCljb25zdCANCis/UXVlcnlTdHJpbmdASVNUUkBAQUJFUEJWTkxTX1NUUkBAWFoNCis7IHByaXZhdGU6IGNsYXNzIE5MU19TVFIgKiBfX3RoaXNjYWxsIE5MU19TVFI6OlF1ZXJ5U3ViU3RyKGNsYXNzIElTVFIgY29uc3QgJix1bnNpZ25lZCBpbnQpY29uc3QgDQorP1F1ZXJ5U3ViU3RyQE5MU19TVFJAQEFCRVBBVjFAQUJWSVNUUkBASUBaDQorOyBwdWJsaWM6IGNsYXNzIE5MU19TVFIgKiBfX3RoaXNjYWxsIE5MU19TVFI6OlF1ZXJ5U3ViU3RyKGNsYXNzIElTVFIgY29uc3QgJixjbGFzcyBJU1RSIGNvbnN0ICYpY29uc3QgDQorP1F1ZXJ5U3ViU3RyQE5MU19TVFJAQFFCRVBBVjFAQUJWSVNUUkBAMEBaDQorOyBwdWJsaWM6IGNsYXNzIE5MU19TVFIgKiBfX3RoaXNjYWxsIE5MU19TVFI6OlF1ZXJ5U3ViU3RyKGNsYXNzIElTVFIgY29uc3QgJiljb25zdCANCis/UXVlcnlTdWJTdHJATkxTX1NUUkBAUUJFUEFWMUBBQlZJU1RSQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgSFVBVE9NOjpRdWVyeVRleHQodm9pZCljb25zdCANCis/UXVlcnlUZXh0QEhVQVRPTUBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTkxTX1NUUjo6UXVlcnlUZXh0TGVuZ3RoKHZvaWQpY29uc3QgDQorP1F1ZXJ5VGV4dExlbmd0aEBOTFNfU1RSQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTkxTX1NUUjo6UXVlcnlUZXh0U2l6ZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVRleHRTaXplQE5MU19TVFJAQFFCRUlYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgV0lOX1RJTUU6OlF1ZXJ5VGltZSh1bnNpZ25lZCBsb25nICopY29uc3QgDQorP1F1ZXJ5VGltZUBXSU5fVElNRUBAUUJFSlBBS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBXSU5fVElNRTo6UXVlcnlUaW1lTG9jYWwodW5zaWduZWQgbG9uZyAqKWNvbnN0IA0KKz9RdWVyeVRpbWVMb2NhbEBXSU5fVElNRUBAUUJFSlBBS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBJTlRMX1BST0ZJTEU6OlF1ZXJ5VGltZVNlcGFyYXRvcihjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5VGltZVNlcGFyYXRvckBJTlRMX1BST0ZJTEVAQFFCRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgSU5UTF9QUk9GSUxFOjpRdWVyeVRpbWVTdHJpbmcoY2xhc3MgV0lOX1RJTUUgY29uc3QgJixjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5VGltZVN0cmluZ0BJTlRMX1BST0ZJTEVAQFFCRUpBQlZXSU5fVElNRUBAUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfU0VUVElORzo6UXVlcnlVbml0c1BlcldlZWsodm9pZCljb25zdCANCis/UXVlcnlVbml0c1BlcldlZWtATE9HT05fSE9VUlNfU0VUVElOR0BAUUJFSVhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBSRUdfS0VZOjpRdWVyeVZhbHVlKGNsYXNzIFJFR19WQUxVRV9JTkZPX1NUUlVDVCAqKQ0KKz9RdWVyeVZhbHVlQFJFR19LRVlAQFFBRUpQQVZSRUdfVkFMVUVfSU5GT19TVFJVQ1RAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBSRUdfS0VZOjpRdWVyeVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcgKikNCis/UXVlcnlWYWx1ZUBSRUdfS0VZQEBRQUVKUEJHUEFLMUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBSRUdfS0VZOjpRdWVyeVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgY2hhciAqICosbG9uZyAqLGxvbmcsdW5zaWduZWQgbG9uZyAqKQ0KKz9RdWVyeVZhbHVlQFJFR19LRVlAQFFBRUpQQkdQQVBBRVBBSkpQQUtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgUkVHX0tFWTo6UXVlcnlWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0ICogKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKixpbnQpDQorP1F1ZXJ5VmFsdWVAUkVHX0tFWUBAUUFFSlBCR1BBUEFHS1BBS0hAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgUkVHX0tFWTo6UXVlcnlWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIFNUUkxJU1QgKiAqLHVuc2lnbmVkIGxvbmcgKikNCis/UXVlcnlWYWx1ZUBSRUdfS0VZQEBRQUVKUEJHUEFQQVZTVFJMSVNUQEBQQUtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgUkVHX0tFWTo6UXVlcnlWYWx1ZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIE5MU19TVFIgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKixpbnQpDQorP1F1ZXJ5VmFsdWVAUkVHX0tFWUBAUUFFSlBCR1BBVk5MU19TVFJAQEtQQUtIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV0lOX1RJTUU6OlF1ZXJ5WWVhcih2b2lkKWNvbnN0IA0KKz9RdWVyeVllYXJAV0lOX1RJTUVAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBJTlRMX1BST0ZJTEU6OlF1ZXJ5WWVhclBvcyh2b2lkKWNvbnN0IA0KKz9RdWVyeVllYXJQb3NASU5UTF9QUk9GSUxFQEBRQkVIWFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIE5MU19TVFI6OlJlYWxsb2ModW5zaWduZWQgaW50KQ0KKz9SZWFsbG9jQE5MU19TVFJAQEFBRUhJQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBCVUZGRVI6OlJlYWxsb2NTdG9yYWdlKHVuc2lnbmVkIGludCkNCis/UmVhbGxvY1N0b3JhZ2VAQlVGRkVSQEBBQUVKSUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBGTVg6OlJlZnJlc2godm9pZCkNCis/UmVmcmVzaEBGTVhAQFFBRVhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgSU5UTF9QUk9GSUxFOjpSZWZyZXNoKHZvaWQpDQorP1JlZnJlc2hASU5UTF9QUk9GSUxFQEBRQUVKWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIERMSVNUOjpSZWdpc3RlcihjbGFzcyBJVEVSX0wgKikNCis/UmVnaXN0ZXJARExJU1RAQElBRVhQQVZJVEVSX0xAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBTTElTVDo6UmVnaXN0ZXIoY2xhc3MgSVRFUl9TTCAqKQ0KKz9SZWdpc3RlckBTTElTVEBASUFFWFBBVklURVJfU0xAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBGTVg6OlJlbG9hZCh2b2lkKQ0KKz9SZWxvYWRARk1YQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgRExJU1Q6OlJlbW92ZShjbGFzcyBJVEVSX0RMICYpDQorP1JlbW92ZUBETElTVEBAUUFFUEFYQUFWSVRFUl9ETEBAQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgRExJU1Q6OlJlbW92ZShjbGFzcyBSSVRFUl9ETCAmKQ0KKz9SZW1vdmVARExJU1RAQFFBRVBBWEFBVlJJVEVSX0RMQEBAWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBTTElTVDo6UmVtb3ZlKGNsYXNzIElURVJfU0wgJikNCis/UmVtb3ZlQFNMSVNUQEBRQUVQQVhBQVZJVEVSX1NMQEBAWg0KKzsgcHVibGljOiBjbGFzcyBESVJfQkxPQ0sgKiBfX3RoaXNjYWxsIFNMSVNUX09GX0RJUl9CTE9DSzo6UmVtb3ZlKGNsYXNzIElURVJfU0xfRElSX0JMT0NLICYpDQorP1JlbW92ZUBTTElTVF9PRl9ESVJfQkxPQ0tAQFFBRVBBVkRJUl9CTE9DS0BAQUFWSVRFUl9TTF9ESVJfQkxPQ0tAQEBaDQorOyBwdWJsaWM6IGNsYXNzIE5MU19TVFIgKiBfX3RoaXNjYWxsIFNMSVNUX09GX05MU19TVFI6OlJlbW92ZShjbGFzcyBOTFNfU1RSICYpDQorP1JlbW92ZUBTTElTVF9PRl9OTFNfU1RSQEBRQUVQQVZOTFNfU1RSQEBBQVYyQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIE9VVFBVVF9UT19BVVg6OlJlbmRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9SZW5kZXJAT1VUUFVUX1RPX0FVWEBAVUFFWFBCR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIE9VVFBVVF9UT19BVVg6OlJlbmRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/UmVuZGVyQE9VVFBVVF9UT19BVVhAQFVBRVhQQkdJQFoNCis7IHByaXZhdGU6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIE9VVFBVVF9UT19OVUw6OlJlbmRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9SZW5kZXJAT1VUUFVUX1RPX05VTEBARUFFWFBCR0BaDQorOyBwcml2YXRlOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBPVVRQVVRfVE9fTlVMOjpSZW5kZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP1JlbmRlckBPVVRQVVRfVE9fTlVMQEBFQUVYUEJHSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIE9VVFBVVF9UT19TVERFUlI6OlJlbmRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9SZW5kZXJAT1VUUFVUX1RPX1NUREVSUkBAVUFFWFBCR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIE9VVFBVVF9UT19TVERFUlI6OlJlbmRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/UmVuZGVyQE9VVFBVVF9UT19TVERFUlJAQFVBRVhQQkdJQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgT1VUUFVUX1RPX1NURE9VVDo6UmVuZGVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1JlbmRlckBPVVRQVVRfVE9fU1RET1VUQEBVQUVYUEJHQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgT1VUUFVUX1RPX1NURE9VVDo6UmVuZGVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9SZW5kZXJAT1VUUFVUX1RPX1NURE9VVEBAVUFFWFBCR0lAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIE5MU19TVFI6OlJlcGxTdWJTdHIoY2xhc3MgTkxTX1NUUiBjb25zdCAmLGNsYXNzIElTVFIgJix1bnNpZ25lZCBpbnQpDQorP1JlcGxTdWJTdHJATkxTX1NUUkBAQUFFWEFCVjFAQUFWSVNUUkBASUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBOTFNfU1RSOjpSZXBsU3ViU3RyKGNsYXNzIE5MU19TVFIgY29uc3QgJixjbGFzcyBJU1RSICYpDQorP1JlcGxTdWJTdHJATkxTX1NUUkBAUUFFWEFCVjFAQUFWSVNUUkBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIE5MU19TVFI6OlJlcGxTdWJTdHIoY2xhc3MgTkxTX1NUUiBjb25zdCAmLGNsYXNzIElTVFIgJixjbGFzcyBJU1RSIGNvbnN0ICYpDQorP1JlcGxTdWJTdHJATkxTX1NUUkBAUUFFWEFCVjFAQUFWSVNUUkBAQUJWMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQkFTRTo6UmVwb3J0RXJyb3IobG9uZykNCis/UmVwb3J0RXJyb3JAQkFTRUBASUFFWEpAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgRlNfRU5VTTo6UmVwb3J0TGFzdEVycm9yKGxvbmcpDQorP1JlcG9ydExhc3RFcnJvckBGU19FTlVNQEBJQUVYSkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBERlNJVEVSX1RSRUU6OlJlc2V0KHZvaWQpDQorP1Jlc2V0QERGU0lURVJfVFJFRUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBJU1RSOjpSZXNldCh2b2lkKQ0KKz9SZXNldEBJU1RSQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIElURVJfREw6OlJlc2V0KHZvaWQpDQorP1Jlc2V0QElURVJfRExAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgSVRFUl9TTDo6UmVzZXQodm9pZCkNCis/UmVzZXRASVRFUl9TTEBAUUFFWFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE5MU19TVFI6OlJlc2V0KHZvaWQpDQorP1Jlc2V0QE5MU19TVFJAQFFBRUhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgUklURVJfREw6OlJlc2V0KHZvaWQpDQorP1Jlc2V0QFJJVEVSX0RMQEBRQUVYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIEJBU0U6OlJlc2V0RXJyb3Iodm9pZCkNCis/UmVzZXRFcnJvckBCQVNFQEBJQUVYWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEJJVEZJRUxEOjpSZXNpemUodW5zaWduZWQgaW50KQ0KKz9SZXNpemVAQklURklFTERAQFFBRUpJQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEJVRkZFUjo6UmVzaXplKHVuc2lnbmVkIGludCkNCis/UmVzaXplQEJVRkZFUkBAUUFFSklAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTkxTX1NUUjo6UnRsT2VtVXBjYXNlKHZvaWQpDQorP1J0bE9lbVVwY2FzZUBOTFNfU1RSQEBRQUVKWFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBJTlRMX1BST0ZJTEU6OlNjYW5Mb25nRGF0ZShjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1NjYW5Mb25nRGF0ZUBJTlRMX1BST0ZJTEVAQEFCRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgRExfTk9ERTo6U2V0KGNsYXNzIERMX05PREUgKixjbGFzcyBETF9OT0RFICosdm9pZCAqKQ0KKz9TZXRARExfTk9ERUBAUUFFWFBBVjFAMFBBWEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMT0dPTl9IT1VSU19TRVRUSU5HOjpTZXQoY2xhc3MgTE9HT05fSE9VUlNfU0VUVElORyBjb25zdCAmKQ0KKz9TZXRATE9HT05fSE9VUlNfU0VUVElOR0BAUUFFSkFCVjFAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNMX05PREU6OlNldChjbGFzcyBTTF9OT0RFICosdm9pZCAqKQ0KKz9TZXRAU0xfTk9ERUBAUUFFWFBBVjFAUEFYQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEJJVEZJRUxEOjpTZXRBbGxCaXRzKGVudW0gQklUVkFMVUVTKQ0KKz9TZXRBbGxCaXRzQEJJVEZJRUxEQEBRQUVYVzRCSVRWQUxVRVNAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBIRUFQX0JBU0U6OlNldEFsbG9jQ291bnQoaW50KQ0KKz9TZXRBbGxvY0NvdW50QEhFQVBfQkFTRUBAUUFFSkhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQklURklFTEQ6OlNldEJpdCh1bnNpZ25lZCBpbnQsZW51bSBCSVRWQUxVRVMpDQorP1NldEJpdEBCSVRGSUVMREBAUUFFWElXNEJJVFZBTFVFU0BAQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBERlNJVEVSX1RSRUU6OlNldEN1ckRlcHRoKHVuc2lnbmVkIGludCkNCis/U2V0Q3VyRGVwdGhAREZTSVRFUl9UUkVFQEBBQUVYSUBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBEQkdTVFJFQU06OlNldEN1cnJlbnQoY2xhc3MgREJHU1RSRUFNICopDQorP1NldEN1cnJlbnRAREJHU1RSRUFNQEBTR1hQQVYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBGU19FTlVNOjpTZXRDdXJyZW50RGlyQmxvY2soY2xhc3MgRElSX0JMT0NLICopDQorP1NldEN1cnJlbnREaXJCbG9ja0BGU19FTlVNQEBJQUVYUEFWRElSX0JMT0NLQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgV0lOX1RJTUU6OlNldEN1cnJlbnRUaW1lKHZvaWQpDQorP1NldEN1cnJlbnRUaW1lQFdJTl9USU1FQEBRQUVKWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIERJUl9CTE9DSzo6U2V0RG9CcmVhZHRoRmlyc3REaXJzKGludCkNCis/U2V0RG9CcmVhZHRoRmlyc3REaXJzQERJUl9CTE9DS0BAUUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgRElSX0JMT0NLOjpTZXRGaW5kRmlyc3RGbGFnKGludCkNCis/U2V0RmluZEZpcnN0RmxhZ0BESVJfQkxPQ0tAQFFBRVhIQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBUUkVFOjpTZXRGaXJzdFN1YnRyZWUoY2xhc3MgVFJFRSAqKQ0KKz9TZXRGaXJzdFN1YnRyZWVAVFJFRUBAQUFFWFBBVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExPR09OX0hPVVJTX1NFVFRJTkc6OlNldEZyb21CaXRzKHVuc2lnbmVkIGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP1NldEZyb21CaXRzQExPR09OX0hPVVJTX1NFVFRJTkdAQFFBRUpQQkVJQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFdJTl9USU1FOjpTZXRHTVQoaW50KQ0KKz9TZXRHTVRAV0lOX1RJTUVAQFFBRUpIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExPR09OX0hPVVJTX1NFVFRJTkc6OlNldEhvdXJJbkRheShpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/U2V0SG91ckluRGF5QExPR09OX0hPVVJTX1NFVFRJTkdAQFFBRUpISUlAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfU0VUVElORzo6U2V0SG91ckluV2VlayhpbnQsdW5zaWduZWQgaW50KQ0KKz9TZXRIb3VySW5XZWVrQExPR09OX0hPVVJTX1NFVFRJTkdAQFFBRUpISUBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgSVNUUjo6U2V0SWNoKGludCkNCis/U2V0SWNoQElTVFJAQEFBRVhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIEhFQVBfQkFTRTo6U2V0SXRlbShpbnQsdm9pZCAqKQ0KKz9TZXRJdGVtQEhFQVBfQkFTRUBASUFFWEhQQVhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgRExJU1Q6OlNldEl0ZXJzKGNsYXNzIERMX05PREUgKikNCis/U2V0SXRlcnNARExJU1RAQElBRVhQQVZETF9OT0RFQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgU0xJU1Q6OlNldEl0ZXJzKGNsYXNzIFNMX05PREUgKixjbGFzcyBTTF9OT0RFICopDQorP1NldEl0ZXJzQFNMSVNUQEBJQUVYUEFWU0xfTk9ERUBAMEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBTTElTVDo6U2V0SXRlcnMoY2xhc3MgU0xfTk9ERSAqKQ0KKz9TZXRJdGVyc0BTTElTVEBASUFFWFBBVlNMX05PREVAQEBaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgUkVHX0tFWTo6U2V0S2V5VmFsdWVCaW5hcnkodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBjaGFyIGNvbnN0ICosbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP1NldEtleVZhbHVlQmluYXJ5QFJFR19LRVlAQEFBRUpQQkdQQkVKS0tAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIFJFR19LRVk6OlNldEtleVZhbHVlTG9uZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGxvbmcsdW5zaWduZWQgbG9uZykNCis/U2V0S2V5VmFsdWVMb25nQFJFR19LRVlAQEFBRUpQQkdKS0BaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgUkVHX0tFWTo6U2V0S2V5VmFsdWVTdHJpbmcodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9TZXRLZXlWYWx1ZVN0cmluZ0BSRUdfS0VZQEBBQUVKUEJHMEtKS0BaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgVFJFRTo6U2V0TGVmdChjbGFzcyBUUkVFICopDQorP1NldExlZnRAVFJFRUBAQUFFWFBBVjFAQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBERlNJVEVSX1RSRUU6OlNldE1heERlcHRoKHVuc2lnbmVkIGludCkNCis/U2V0TWF4RGVwdGhAREZTSVRFUl9UUkVFQEBBQUVYSUBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgREZTSVRFUl9UUkVFOjpTZXROb2RlKGNsYXNzIFRSRUUgY29uc3QgKikNCis/U2V0Tm9kZUBERlNJVEVSX1RSRUVAQEFBRVhQQlZUUkVFQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIFRSRUU6OlNldFBhcmVudChjbGFzcyBUUkVFICopDQorP1NldFBhcmVudEBUUkVFQEBBQUVYUEFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgVFJFRTo6U2V0UHJvcCh2b2lkICogY29uc3QpDQorP1NldFByb3BAVFJFRUBAUUFFWFFBWEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgVFJFRTo6U2V0UmlnaHQoY2xhc3MgVFJFRSAqKQ0KKz9TZXRSaWdodEBUUkVFQEBBQUVYUEFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgREJHU1RSRUFNOjpTZXRTaW5rKGNsYXNzIE9VVFBVVFNJTksgKikNCis/U2V0U2lua0BEQkdTVFJFQU1AQFFBRVhQQVZPVVRQVVRTSU5LQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIERGU0lURVJfVFJFRTo6U2V0U3RhcnROb2RlKGNsYXNzIFRSRUUgY29uc3QgKikNCis/U2V0U3RhcnROb2RlQERGU0lURVJfVFJFRUBAQUFFWFBCVlRSRUVAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBXSU5fVElNRTo6U2V0VGltZSh1bnNpZ25lZCBsb25nKQ0KKz9TZXRUaW1lQFdJTl9USU1FQEBRQUVKS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBXSU5fVElNRTo6U2V0VGltZShzdHJ1Y3QgX0ZJTEVUSU1FKQ0KKz9TZXRUaW1lQFdJTl9USU1FQEBRQUVKVV9GSUxFVElNRUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFdJTl9USU1FOjpTZXRUaW1lTG9jYWwodW5zaWduZWQgbG9uZykNCis/U2V0VGltZUxvY2FsQFdJTl9USU1FQEBRQUVKS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBXSU5fVElNRTo6U2V0VGltZUxvY2FsKHN0cnVjdCBfRklMRVRJTUUpDQorP1NldFRpbWVMb2NhbEBXSU5fVElNRUBAUUFFSlVfRklMRVRJTUVAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBSRUdfS0VZOjpTZXRWYWx1ZShjbGFzcyBSRUdfVkFMVUVfSU5GT19TVFJVQ1QgKikNCis/U2V0VmFsdWVAUkVHX0tFWUBAUUFFSlBBVlJFR19WQUxVRV9JTkZPX1NUUlVDVEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFJFR19LRVk6OlNldFZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgY29uc3QgKixpbnQpDQorP1NldFZhbHVlQFJFR19LRVlAQFFBRUpQQkcwS1BCS0hAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgUkVHX0tFWTo6U2V0VmFsdWUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgY29uc3QgKikNCis/U2V0VmFsdWVAUkVHX0tFWUBAUUFFSlBCR0tQQktAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgUkVHX0tFWTo6U2V0VmFsdWUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBjaGFyIGNvbnN0ICosbG9uZyx1bnNpZ25lZCBsb25nIGNvbnN0ICopDQorP1NldFZhbHVlQFJFR19LRVlAQFFBRUpQQkdQQkVKUEJLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFJFR19LRVk6OlNldFZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgTkxTX1NUUiBjb25zdCAqLHVuc2lnbmVkIGxvbmcgY29uc3QgKixpbnQpDQorP1NldFZhbHVlQFJFR19LRVlAQFFBRUpQQkdQQlZOTFNfU1RSQEBQQktIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFJFR19LRVk6OlNldFZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgU1RSTElTVCBjb25zdCAqLHVuc2lnbmVkIGxvbmcgY29uc3QgKikNCis/U2V0VmFsdWVAUkVHX0tFWUBAUUFFSlBCR1BCVlNUUkxJU1RAQFBCS0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIEZTX0VOVU06OlNob3VsZFRoaXNGaWxlQmVJbmNsdWRlZCh1bnNpZ25lZCBpbnQpY29uc3QgDQorP1Nob3VsZFRoaXNGaWxlQmVJbmNsdWRlZEBGU19FTlVNQEBJQkVISUBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBVQVRPTV9NQU5BR0VSOjpUZXJtaW5hdGUodm9pZCkNCis/VGVybWluYXRlQFVBVE9NX01BTkFHRVJAQFNHSlhaDQorOyBwcml2YXRlOiBjbGFzcyBVQVRPTSAqIF9fdGhpc2NhbGwgVUFUT01fTUFOQUdFUjo6VG9rZW5pemUodW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpDQorP1Rva2VuaXplQFVBVE9NX01BTkFHRVJAQEFBRVBBVlVBVE9NQEBQQkdIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEJVRkZFUjo6VHJpbSh2b2lkKQ0KKz9UcmltQEJVRkZFUkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBIRUFQX0JBU0U6OlRyaW0odm9pZCkNCis/VHJpbUBIRUFQX0JBU0VAQFFBRVhYWg0KKzsgdm9pZCBfX3N0ZGNhbGwgVUlBc3NlcnRDb21tYW5kKGNoYXIgY29uc3QgKikNCis/VUlBc3NlcnRDb21tYW5kQEBZR1hQQkRAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgVUlBc3NlcnRIbHAoY2hhciBjb25zdCAqLGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP1VJQXNzZXJ0SGxwQEBZR1hQQkQwSUBaDQorOyB2b2lkIF9fc3RkY2FsbCBVSUFzc2VydEhscChjaGFyIGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9VSUFzc2VydEhscEBAWUdYUEJESUBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgKiBfX3RoaXNjYWxsIERMSVNUOjpVbmxpbmsoY2xhc3MgRExfTk9ERSAqKQ0KKz9VbmxpbmtARExJU1RAQElBRVBBWFBBVkRMX05PREVAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBUUkVFOjpVbmxpbmsodm9pZCkNCis/VW5saW5rQFRSRUVAQElBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgVUFUT01fTElOS0FHRTo6VW5saW5rKHZvaWQpDQorP1VubGlua0BVQVRPTV9MSU5LQUdFQEBRQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBOTFNfU1RSOjpVcGRhdGVJc3RyKGNsYXNzIElTVFIgKiljb25zdCANCis/VXBkYXRlSXN0ckBOTFNfU1RSQEBBQkVYUEFWSVNUUkBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSTElTVDo6V3JpdGVUb0J1ZmZlcih1bnNpZ25lZCBzaG9ydCAqLGludCx1bnNpZ25lZCBzaG9ydCAqKQ0KKz9Xcml0ZVRvQnVmZmVyQFNUUkxJU1RAQFFBRUhQQUdIMEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBETElTVDo6X0RlYnVnUHJpbnQodm9pZCljb25zdCANCis/X0RlYnVnUHJpbnRARExJU1RAQFFCRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU0xJU1Q6Ol9EZWJ1Z1ByaW50KHZvaWQpY29uc3QgDQorP19EZWJ1Z1ByaW50QFNMSVNUQEBRQkVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFRSRUU6Ol9EZWJ1Z1ByaW50KHZvaWQpY29uc3QgDQorP19EZWJ1Z1ByaW50QFRSRUVAQFFCRVhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBOTFNfU1RSOjpfSXNPd25lckFsbG9jKHZvaWQpY29uc3QgDQorP19Jc093bmVyQWxsb2NATkxTX1NUUkBAUUJFSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIE5MU19TVFI6Ol9RdWVyeUFsbG9jU2l6ZSh2b2lkKWNvbnN0IA0KKz9fUXVlcnlBbGxvY1NpemVATkxTX1NUUkBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBOTFNfU1RSOjpfUXVlcnlQY2godm9pZCljb25zdCANCis/X1F1ZXJ5UGNoQE5MU19TVFJAQFFCRVBCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIE5MU19TVFI6Ol9RdWVyeVRleHRMZW5ndGgodm9pZCljb25zdCANCis/X1F1ZXJ5VGV4dExlbmd0aEBOTFNfU1RSQEBRQkVJWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIEJBU0U6Ol9SZXBvcnRFcnJvcihsb25nKQ0KKz9fUmVwb3J0RXJyb3JAQkFTRUBASUFFWEpAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBOTFNfU1RSOjpfc3RyaWNtcChjbGFzcyBOTFNfU1RSIGNvbnN0ICYpY29uc3QgDQorP19zdHJpY21wQE5MU19TVFJAQFFCRUhBQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE5MU19TVFI6Ol9zdHJpY21wKGNsYXNzIE5MU19TVFIgY29uc3QgJixjbGFzcyBJU1RSIGNvbnN0ICYsY2xhc3MgSVNUUiBjb25zdCAmKWNvbnN0IA0KKz9fc3RyaWNtcEBOTFNfU1RSQEBRQkVIQUJWMUBBQlZJU1RSQEAxQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTkxTX1NUUjo6X3N0cmljbXAoY2xhc3MgTkxTX1NUUiBjb25zdCAmLGNsYXNzIElTVFIgY29uc3QgJiljb25zdCANCis/X3N0cmljbXBATkxTX1NUUkBAUUJFSEFCVjFAQUJWSVNUUkBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTkxTX1NUUjo6X3N0cm5pY21wKGNsYXNzIE5MU19TVFIgY29uc3QgJixjbGFzcyBJU1RSIGNvbnN0ICYsY2xhc3MgSVNUUiBjb25zdCAmLGNsYXNzIElTVFIgY29uc3QgJiljb25zdCANCis/X3N0cm5pY21wQE5MU19TVFJAQFFCRUhBQlYxQEFCVklTVFJAQDExQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTkxTX1NUUjo6X3N0cm5pY21wKGNsYXNzIE5MU19TVFIgY29uc3QgJixjbGFzcyBJU1RSIGNvbnN0ICYsY2xhc3MgSVNUUiBjb25zdCAmKWNvbnN0IA0KKz9fc3RybmljbXBATkxTX1NUUkBAUUJFSEFCVjFAQUJWSVNUUkBAMUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE5MU19TVFI6Ol9zdHJuaWNtcChjbGFzcyBOTFNfU1RSIGNvbnN0ICYsY2xhc3MgSVNUUiBjb25zdCAmKWNvbnN0IA0KKz9fc3RybmljbXBATkxTX1NUUkBAUUJFSEFCVjFAQUJWSVNUUkBAQFoNCis7IHB1YmxpYzogY2xhc3MgTkxTX1NUUiAmIF9fdGhpc2NhbGwgTkxTX1NUUjo6X3N0cnVwcih2b2lkKQ0KKz9fc3RydXByQE5MU19TVFJAQFFBRUFBVjFAWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTkxTX1NUUjo6YXRvaShjbGFzcyBJU1RSIGNvbnN0ICYpY29uc3QgDQorP2F0b2lATkxTX1NUUkBAUUJFSEFCVklTVFJAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE5MU19TVFI6OmF0b2kodm9pZCljb25zdCANCis/YXRvaUBOTFNfU1RSQEBRQkVIWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5MU19TVFI6OmF0b2woY2xhc3MgSVNUUiBjb25zdCAmKWNvbnN0IA0KKz9hdG9sQE5MU19TVFJAQFFCRUpBQlZJU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTkxTX1NUUjo6YXRvbCh2b2lkKWNvbnN0IA0KKz9hdG9sQE5MU19TVFJAQFFCRUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgTkxTX1NUUjo6YXRvdWwoY2xhc3MgSVNUUiBjb25zdCAmKWNvbnN0IA0KKz9hdG91bEBOTFNfU1RSQEBRQkVLQUJWSVNUUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIE5MU19TVFI6OmF0b3VsKHZvaWQpY29uc3QgDQorP2F0b3VsQE5MU19TVFJAQFFCRUtYWg0KKzsgcHVibGljOiBjbGFzcyBOTFNfU1RSICYgX190aGlzY2FsbCBOTFNfU1RSOjpzdHJjYXQoY2xhc3MgTkxTX1NUUiBjb25zdCAmKQ0KKz9zdHJjYXRATkxTX1NUUkBAUUFFQUFWMUBBQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE5MU19TVFI6OnN0cmNocihjbGFzcyBJU1RSICosdW5zaWduZWQgc2hvcnQpY29uc3QgDQorP3N0cmNockBOTFNfU1RSQEBRQkVIUEFWSVNUUkBAR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE5MU19TVFI6OnN0cmNocihjbGFzcyBJU1RSICosdW5zaWduZWQgc2hvcnQsY2xhc3MgSVNUUiBjb25zdCAmKWNvbnN0IA0KKz9zdHJjaHJATkxTX1NUUkBAUUJFSFBBVklTVFJAQEdBQlYyQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE5MU19TVFI6OnN0cmNtcChjbGFzcyBOTFNfU1RSIGNvbnN0ICYpY29uc3QgDQorP3N0cmNtcEBOTFNfU1RSQEBRQkVIQUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBOTFNfU1RSOjpzdHJjbXAoY2xhc3MgTkxTX1NUUiBjb25zdCAmLGNsYXNzIElTVFIgY29uc3QgJixjbGFzcyBJU1RSIGNvbnN0ICYpY29uc3QgDQorP3N0cmNtcEBOTFNfU1RSQEBRQkVIQUJWMUBBQlZJU1RSQEAxQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTkxTX1NUUjo6c3RyY21wKGNsYXNzIE5MU19TVFIgY29uc3QgJixjbGFzcyBJU1RSIGNvbnN0ICYpY29uc3QgDQorP3N0cmNtcEBOTFNfU1RSQEBRQkVIQUJWMUBBQlZJU1RSQEBAWg0KKzsgdW5zaWduZWQgc2hvcnQgKiBfX3N0ZGNhbGwgc3RyY3B5KHVuc2lnbmVkIHNob3J0ICosY2xhc3MgTkxTX1NUUiBjb25zdCAmKQ0KKz9zdHJjcHlAQFlHUEFHUEFHQUJWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTkxTX1NUUjo6c3RyY3NwbihjbGFzcyBJU1RSICosY2xhc3MgTkxTX1NUUiBjb25zdCAmKWNvbnN0IA0KKz9zdHJjc3BuQE5MU19TVFJAQFFCRUhQQVZJU1RSQEBBQlYxQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE5MU19TVFI6OnN0cmNzcG4oY2xhc3MgSVNUUiAqLGNsYXNzIE5MU19TVFIgY29uc3QgJixjbGFzcyBJU1RSIGNvbnN0ICYpY29uc3QgDQorP3N0cmNzcG5ATkxTX1NUUkBAUUJFSFBBVklTVFJAQEFCVjFAQUJWMkBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBOTFNfU1RSOjpzdHJsZW4odm9pZCljb25zdCANCis/c3RybGVuQE5MU19TVFJAQFFCRUlYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBOTFNfU1RSOjpzdHJuY21wKGNsYXNzIE5MU19TVFIgY29uc3QgJixjbGFzcyBJU1RSIGNvbnN0ICYsY2xhc3MgSVNUUiBjb25zdCAmLGNsYXNzIElTVFIgY29uc3QgJiljb25zdCANCis/c3RybmNtcEBOTFNfU1RSQEBRQkVIQUJWMUBBQlZJU1RSQEAxMUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE5MU19TVFI6OnN0cm5jbXAoY2xhc3MgTkxTX1NUUiBjb25zdCAmLGNsYXNzIElTVFIgY29uc3QgJixjbGFzcyBJU1RSIGNvbnN0ICYpY29uc3QgDQorP3N0cm5jbXBATkxTX1NUUkBAUUJFSEFCVjFAQUJWSVNUUkBAMUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE5MU19TVFI6OnN0cm5jbXAoY2xhc3MgTkxTX1NUUiBjb25zdCAmLGNsYXNzIElTVFIgY29uc3QgJiljb25zdCANCis/c3RybmNtcEBOTFNfU1RSQEBRQkVIQUJWMUBBQlZJU1RSQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBOTFNfU1RSOjpzdHJyY2hyKGNsYXNzIElTVFIgKix1bnNpZ25lZCBzaG9ydCljb25zdCANCis/c3RycmNockBOTFNfU1RSQEBRQkVIUEFWSVNUUkBAR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE5MU19TVFI6OnN0cnJjaHIoY2xhc3MgSVNUUiAqLHVuc2lnbmVkIHNob3J0LGNsYXNzIElTVFIgY29uc3QgJiljb25zdCANCis/c3RycmNockBOTFNfU1RSQEBRQkVIUEFWSVNUUkBAR0FCVjJAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTkxTX1NUUjo6c3Ryc3BuKGNsYXNzIElTVFIgKixjbGFzcyBOTFNfU1RSIGNvbnN0ICYpY29uc3QgDQorP3N0cnNwbkBOTFNfU1RSQEBRQkVIUEFWSVNUUkBAQUJWMUBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBOTFNfU1RSOjpzdHJzcG4oY2xhc3MgSVNUUiAqLGNsYXNzIE5MU19TVFIgY29uc3QgJixjbGFzcyBJU1RSIGNvbnN0ICYpY29uc3QgDQorP3N0cnNwbkBOTFNfU1RSQEBRQkVIUEFWSVNUUkBAQUJWMUBBQlYyQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE5MU19TVFI6OnN0cnN0cihjbGFzcyBJU1RSICosY2xhc3MgTkxTX1NUUiBjb25zdCAmKWNvbnN0IA0KKz9zdHJzdHJATkxTX1NUUkBAUUJFSFBBVklTVFJAQEFCVjFAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTkxTX1NUUjo6c3Ryc3RyKGNsYXNzIElTVFIgKixjbGFzcyBOTFNfU1RSIGNvbnN0ICYsY2xhc3MgSVNUUiBjb25zdCAmKWNvbnN0IA0KKz9zdHJzdHJATkxTX1NUUkBAUUJFSFBBVklTVFJAQEFCVjFAQUJWMkBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgKiBfX3RoaXNjYWxsIElURVJfREw6OnZOZXh0KHZvaWQpDQorP3ZOZXh0QElURVJfRExAQFVBRVBBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCAqIF9fdGhpc2NhbGwgUklURVJfREw6OnZOZXh0KHZvaWQpDQorP3ZOZXh0QFJJVEVSX0RMQEBVQUVQQVhYWg0KK0luaXRDb21wYXJlUGFyYW0NCitORVRVSV9Jbml0SXNEQkNTDQorTkVUVUlfSXNEQkNTDQorTkVUVUlfc3RyY21wDQorTkVUVUlfc3RyaWNtcA0KK05FVFVJX3N0cm5jbXAyDQorTkVUVUlfc3RybmNtcA0KK05FVFVJX3N0cm5pY21wMg0KK05FVFVJX3N0cm5pY21wDQorUXVlcnlOb2Nhc2VDb21wYXJlUGFyYW0NCitRdWVyeVN0ZENvbXBhcmVQYXJhbQ0KK1F1ZXJ5VXNlckRlZmF1bHRMQ0lEDQorVXNlclByZWZlcmVuY2VRdWVyeQ0KK1VzZXJQcmVmZXJlbmNlUXVlcnlCb29sDQorVXNlclByZWZlcmVuY2VTZXQNCitVc2VyUHJlZmVyZW5jZVNldEJvb2wNCitVc2VyUHJvZmlsZUVudW0NCitVc2VyUHJvZmlsZUZyZWUNCitVc2VyUHJvZmlsZUluaXQNCitVc2VyUHJvZmlsZVF1ZXJ5DQorVXNlclByb2ZpbGVSZWFkDQorVXNlclByb2ZpbGVTZXQNCitVc2VyUHJvZmlsZVdyaXRlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd25ldHVpMS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bmV0dWkxLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMzJiZjVjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd25ldHVpMS5kZWYKQEAgLTAsMCArMSwzMDUzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE5FVFVJMS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTkVUVUkxLmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX190aGlzY2FsbCBBRE1JTl9BVVRIT1JJVFk6OkFETUlOX0FVVEhPUklUWSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50KQ0KKz8/MEFETUlOX0FVVEhPUklUWUBAUUFFQFBCR0tLS0tIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBTElBU19FTlVNOjpBTElBU19FTlVNKGNsYXNzIFNBTV9ET01BSU4gJix1bnNpZ25lZCBpbnQpDQorPz8wQUxJQVNfRU5VTUBAUUFFQEFBVlNBTV9ET01BSU5AQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEFMSUFTX0VOVU1fSVRFUjo6QUxJQVNfRU5VTV9JVEVSKGNsYXNzIEFMSUFTX0VOVU0gJikNCis/PzBBTElBU19FTlVNX0lURVJAQFFBRUBBQVZBTElBU19FTlVNQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEFMSUFTX0VOVU1fT0JKOjpBTElBU19FTlVNX09CSih2b2lkKQ0KKz8/MEFMSUFTX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBTElBU19TVFI6OkFMSUFTX1NUUih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MEFMSUFTX1NUUkBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQUxMT0NfU1RSOjpBTExPQ19TVFIodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBpbnQpDQorPz8wQUxMT0NfU1RSQEBRQUVAUEFHSUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQVBJX1NFU1NJT046OkFQSV9TRVNTSU9OKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz8/MEFQSV9TRVNTSU9OQEBRQUVAUEJHSEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQkFTRTo6QkFTRSh2b2lkKQ0KKz8/MEJBU0VAQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJST1dTRV9ET01BSU5fRU5VTTo6QlJPV1NFX0RPTUFJTl9FTlVNKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqKQ0KKz8/MEJST1dTRV9ET01BSU5fRU5VTUBAUUFFQEtQQUtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJST1dTRV9ET01BSU5fSU5GTzo6QlJPV1NFX0RPTUFJTl9JTkZPKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/PzBCUk9XU0VfRE9NQUlOX0lORk9AQFFBRUBQQkdLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSEFSREVWUTFfRU5VTTo6Q0hBUkRFVlExX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MENIQVJERVZRMV9FTlVNQEBRQUVAUEJHMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0hBUkRFVlExX0VOVU1fSVRFUjo6Q0hBUkRFVlExX0VOVU1fSVRFUihjbGFzcyBDSEFSREVWUTFfRU5VTSAmKQ0KKz8/MENIQVJERVZRMV9FTlVNX0lURVJAQFFBRUBBQVZDSEFSREVWUTFfRU5VTUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSEFSREVWUTFfRU5VTV9PQko6OkNIQVJERVZRMV9FTlVNX09CSih2b2lkKQ0KKz8/MENIQVJERVZRMV9FTlVNX09CSkBAUUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQ0hBUkRFVlFfRU5VTTo6Q0hBUkRFVlFfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz8/MENIQVJERVZRX0VOVU1AQElBRUBQQkcwSUBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQ09NUFVURVI6OkNPTVBVVEVSKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wQ09NUFVURVJAQElBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENPTk4wX0VOVU06OkNPTk4wX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MENPTk4wX0VOVU1AQFFBRUBQQkcwQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDT05OMF9FTlVNX0lURVI6OkNPTk4wX0VOVU1fSVRFUihjbGFzcyBDT05OMF9FTlVNICYpDQorPz8wQ09OTjBfRU5VTV9JVEVSQEBRQUVAQUFWQ09OTjBfRU5VTUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDT05OMF9FTlVNX09CSjo6Q09OTjBfRU5VTV9PQkoodm9pZCkNCis/PzBDT05OMF9FTlVNX09CSkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ09OTjFfRU5VTTo6Q09OTjFfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wQ09OTjFfRU5VTUBAUUFFQFBCRzBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENPTk4xX0VOVU1fSVRFUjo6Q09OTjFfRU5VTV9JVEVSKGNsYXNzIENPTk4xX0VOVU0gJikNCis/PzBDT05OMV9FTlVNX0lURVJAQFFBRUBBQVZDT05OMV9FTlVNQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENPTk4xX0VOVU1fT0JKOjpDT05OMV9FTlVNX09CSih2b2lkKQ0KKz8/MENPTk4xX0VOVU1fT0JKQEBRQUVAWFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBDT05OX0VOVU06OkNPTk5fRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz8/MENPTk5fRU5VTUBASUFFQFBCRzBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDT05URVhUX0VOVU06OkNPTlRFWFRfRU5VTSh1bnNpZ25lZCBsb25nKQ0KKz8/MENPTlRFWFRfRU5VTUBAUUFFQEtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENPTlRFWFRfRU5VTV9JVEVSOjpDT05URVhUX0VOVU1fSVRFUihjbGFzcyBDT05URVhUX0VOVU0gJikNCis/PzBDT05URVhUX0VOVU1fSVRFUkBAUUFFQEFBVkNPTlRFWFRfRU5VTUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDT05URVhUX0VOVU1fT0JKOjpDT05URVhUX0VOVU1fT0JKKHZvaWQpDQorPz8wQ09OVEVYVF9FTlVNX09CSkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgREVWSUNFMjo6REVWSUNFMih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MERFVklDRTJAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERFVklDRTo6REVWSUNFKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wREVWSUNFQEBRQUVAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBET01BSU4wX0VOVU06OkRPTUFJTjBfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MERPTUFJTjBfRU5VTUBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRE9NQUlOMF9FTlVNX0lURVI6OkRPTUFJTjBfRU5VTV9JVEVSKGNsYXNzIERPTUFJTjBfRU5VTSAmKQ0KKz8/MERPTUFJTjBfRU5VTV9JVEVSQEBRQUVAQUFWRE9NQUlOMF9FTlVNQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERPTUFJTjBfRU5VTV9PQko6OkRPTUFJTjBfRU5VTV9PQkoodm9pZCkNCis/PzBET01BSU4wX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBET01BSU46OkRPTUFJTih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz8/MERPTUFJTkBAUUFFQFBCRzBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBET01BSU46OkRPTUFJTih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/PzBET01BSU5AQFFBRUBQQkdIQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBET01BSU5fRU5VTTo6RE9NQUlOX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorPz8wRE9NQUlOX0VOVU1AQElBRUBQQkdJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBET01BSU5fV0lUSF9EQ19DQUNIRTo6RE9NQUlOX1dJVEhfRENfQ0FDSEUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/PzBET01BSU5fV0lUSF9EQ19DQUNIRUBAUUFFQFBCRzBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBET01BSU5fV0lUSF9EQ19DQUNIRTo6RE9NQUlOX1dJVEhfRENfQ0FDSEUodW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpDQorPz8wRE9NQUlOX1dJVEhfRENfQ0FDSEVAQFFBRUBQQkdIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBFTlVNX0NBTExFUjo6RU5VTV9DQUxMRVIodm9pZCkNCis/PzBFTlVNX0NBTExFUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRU5VTV9DQUxMRVJfTE1fT0JKOjpFTlVNX0NBTExFUl9MTV9PQkooY2xhc3MgTE9DQVRJT04gY29uc3QgJikNCis/PzBFTlVNX0NBTExFUl9MTV9PQkpAQFFBRUBBQlZMT0NBVElPTkBAQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBFTlVNX09CSl9CQVNFOjpFTlVNX09CSl9CQVNFKHZvaWQpDQorPz8wRU5VTV9PQkpfQkFTRUBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRklMRTJfRU5VTTo6RklMRTJfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBGSUxFMl9FTlVNQEBRQUVAUEJHMDBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEZJTEUyX0VOVU1fSVRFUjo6RklMRTJfRU5VTV9JVEVSKGNsYXNzIEZJTEUyX0VOVU0gJikNCis/PzBGSUxFMl9FTlVNX0lURVJAQFFBRUBBQVZGSUxFMl9FTlVNQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEZJTEUyX0VOVU1fT0JKOjpGSUxFMl9FTlVNX09CSih2b2lkKQ0KKz8/MEZJTEUyX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBGSUxFM19FTlVNOjpGSUxFM19FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MEZJTEUzX0VOVU1AQFFBRUBQQkcwMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRklMRTNfRU5VTV9JVEVSOjpGSUxFM19FTlVNX0lURVIoY2xhc3MgRklMRTNfRU5VTSAmKQ0KKz8/MEZJTEUzX0VOVU1fSVRFUkBAUUFFQEFBVkZJTEUzX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRklMRTNfRU5VTV9PQko6OkZJTEUzX0VOVU1fT0JKKHZvaWQpDQorPz8wRklMRTNfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIEZJTEVfRU5VTTo6RklMRV9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/PzBGSUxFX0VOVU1AQElBRUBQQkcwMElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEdST1VQMF9FTlVNOjpHUk9VUDBfRU5VTShjbGFzcyBMT0NBVElPTiBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wR1JPVVAwX0VOVU1AQFFBRUBBQlZMT0NBVElPTkBAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBHUk9VUDBfRU5VTTo6R1JPVVAwX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MEdST1VQMF9FTlVNQEBRQUVAUEJHMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgR1JPVVAwX0VOVU06OkdST1VQMF9FTlVNKGVudW0gTE9DQVRJT05fVFlQRSx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MEdST1VQMF9FTlVNQEBRQUVAVzRMT0NBVElPTl9UWVBFQEBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEdST1VQMF9FTlVNX0lURVI6OkdST1VQMF9FTlVNX0lURVIoY2xhc3MgR1JPVVAwX0VOVU0gJikNCis/PzBHUk9VUDBfRU5VTV9JVEVSQEBRQUVAQUFWR1JPVVAwX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgR1JPVVAwX0VOVU1fT0JKOjpHUk9VUDBfRU5VTV9PQkoodm9pZCkNCis/PzBHUk9VUDBfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEdST1VQMV9FTlVNOjpHUk9VUDFfRU5VTShjbGFzcyBMT0NBVElPTiBjb25zdCAmKQ0KKz8/MEdST1VQMV9FTlVNQEBRQUVAQUJWTE9DQVRJT05AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgR1JPVVAxX0VOVU06OkdST1VQMV9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wR1JPVVAxX0VOVU1AQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEdST1VQMV9FTlVNOjpHUk9VUDFfRU5VTShlbnVtIExPQ0FUSU9OX1RZUEUpDQorPz8wR1JPVVAxX0VOVU1AQFFBRUBXNExPQ0FUSU9OX1RZUEVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgR1JPVVAxX0VOVU1fSVRFUjo6R1JPVVAxX0VOVU1fSVRFUihjbGFzcyBHUk9VUDFfRU5VTSAmKQ0KKz8/MEdST1VQMV9FTlVNX0lURVJAQFFBRUBBQVZHUk9VUDFfRU5VTUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBHUk9VUDFfRU5VTV9PQko6OkdST1VQMV9FTlVNX09CSih2b2lkKQ0KKz8/MEdST1VQMV9FTlVNX09CSkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgR1JPVVA6OkdST1VQKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBHUk9VUEBAUUFFQFBCRzBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEdST1VQOjpHUk9VUCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYpDQorPz8wR1JPVVBAQFFBRUBQQkdBQlZMT0NBVElPTkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBHUk9VUDo6R1JPVVAodW5zaWduZWQgc2hvcnQgY29uc3QgKixlbnVtIExPQ0FUSU9OX1RZUEUpDQorPz8wR1JPVVBAQFFBRUBQQkdXNExPQ0FUSU9OX1RZUEVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgR1JPVVBfMDo6R1JPVVBfMCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wR1JPVVBfMEBAUUFFQFBCRzBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEdST1VQXzA6OkdST1VQXzAodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBMT0NBVElPTiBjb25zdCAmKQ0KKz8/MEdST1VQXzBAQFFBRUBQQkdBQlZMT0NBVElPTkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBHUk9VUF8wOjpHUk9VUF8wKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosZW51bSBMT0NBVElPTl9UWVBFKQ0KKz8/MEdST1VQXzBAQFFBRUBQQkdXNExPQ0FUSU9OX1RZUEVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgR1JPVVBfMTo6R1JPVVBfMSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wR1JPVVBfMUBAUUFFQFBCRzBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEdST1VQXzE6OkdST1VQXzEodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBMT0NBVElPTiBjb25zdCAmKQ0KKz8/MEdST1VQXzFAQFFBRUBQQkdBQlZMT0NBVElPTkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBHUk9VUF8xOjpHUk9VUF8xKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosZW51bSBMT0NBVElPTl9UWVBFKQ0KKz8/MEdST1VQXzFAQFFBRUBQQkdXNExPQ0FUSU9OX1RZUEVAQEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgR1JPVVBfRU5VTTo6R1JPVVBfRU5VTShjbGFzcyBMT0NBVElPTiBjb25zdCAmLHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MEdST1VQX0VOVU1AQElBRUBBQlZMT0NBVElPTkBASVBCR0BaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgR1JPVVBfRU5VTTo6R1JPVVBfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MEdST1VQX0VOVU1AQElBRUBQQkdJMEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgR1JPVVBfRU5VTTo6R1JPVVBfRU5VTShlbnVtIExPQ0FUSU9OX1RZUEUsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wR1JPVVBfRU5VTUBASUFFQFc0TE9DQVRJT05fVFlQRUBASVBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgR1JPVVBfTUVNQjo6R1JPVVBfTUVNQihjbGFzcyBMT0NBVElPTiBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wR1JPVVBfTUVNQkBAUUFFQEFCVkxPQ0FUSU9OQEBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElURVJfREVWSUNFOjpJVEVSX0RFVklDRShlbnVtIExNT19ERVZJQ0UsZW51bSBMTU9fREVWX1VTQUdFKQ0KKz8/MElURVJfREVWSUNFQEBRQUVAVzRMTU9fREVWSUNFQEBXNExNT19ERVZfVVNBR0VAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSVRFUl9TTF9CUk9XU0VfRE9NQUlOX0lORk86OklURVJfU0xfQlJPV1NFX0RPTUFJTl9JTkZPKGNsYXNzIFNMSVNUICYpDQorPz8wSVRFUl9TTF9CUk9XU0VfRE9NQUlOX0lORk9AQFFBRUBBQVZTTElTVEBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBJVEVSX1NMX0xNX1JFU1VNRV9CVUZGRVI6OklURVJfU0xfTE1fUkVTVU1FX0JVRkZFUihjbGFzcyBTTElTVCAmKQ0KKz8/MElURVJfU0xfTE1fUkVTVU1FX0JVRkZFUkBAUUFFQEFBVlNMSVNUQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExNX0NPTkZJRzo6TE1fQ09ORklHKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MExNX0NPTkZJR0BAUUFFQFBCRzAwQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBMTV9FTlVNOjpMTV9FTlVNKHVuc2lnbmVkIGludCkNCis/PzBMTV9FTlVNQEBJQUVASUBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTE1fRU5VTV9JVEVSOjpMTV9FTlVNX0lURVIoY2xhc3MgTE1fRU5VTSAmKQ0KKz8/MExNX0VOVU1fSVRFUkBASUFFQEFBVkxNX0VOVU1AQEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTE1fRklMRTo6TE1fRklMRSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorPz8wTE1fRklMRUBASUFFQFBCR0tAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExNX0ZJTEVfMjo6TE1fRklMRV8yKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/PzBMTV9GSUxFXzJAQFFBRUBQQkdLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMTV9GSUxFXzM6OkxNX0ZJTEVfMyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorPz8wTE1fRklMRV8zQEBRQUVAUEJHS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTE1fTUVTU0FHRTo6TE1fTUVTU0FHRShjbGFzcyBMT0NBVElPTiAmKQ0KKz8/MExNX01FU1NBR0VAQFFBRUBBQVZMT0NBVElPTkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMTV9NRVNTQUdFOjpMTV9NRVNTQUdFKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wTE1fTUVTU0FHRUBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTE1fTUVTU0FHRTo6TE1fTUVTU0FHRShlbnVtIExPQ0FUSU9OX1RZUEUpDQorPz8wTE1fTUVTU0FHRUBAUUFFQFc0TE9DQVRJT05fVFlQRUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMTV9PQko6OkxNX09CSih2b2lkKQ0KKz8/MExNX09CSkBAUUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTE1fT0JKX0JBU0U6OkxNX09CSl9CQVNFKGludCkNCis/PzBMTV9PQkpfQkFTRUBASUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExNX1JFU1VNRV9CVUZGRVI6OkxNX1JFU1VNRV9CVUZGRVIoY2xhc3MgTE1fUkVTVU1FX0VOVU0gKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgY2hhciAqKQ0KKz8/MExNX1JFU1VNRV9CVUZGRVJAQFFBRUBQQVZMTV9SRVNVTUVfRU5VTUBASVBBRUBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTE1fUkVTVU1FX0VOVU06OkxNX1JFU1VNRV9FTlVNKHVuc2lnbmVkIGludCxpbnQpDQorPz8wTE1fUkVTVU1FX0VOVU1AQElBRUBJSEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTE1fUkVTVU1FX0VOVU1fSVRFUjo6TE1fUkVTVU1FX0VOVU1fSVRFUihjbGFzcyBMTV9SRVNVTUVfRU5VTSAmKQ0KKz8/MExNX1JFU1VNRV9FTlVNX0lURVJAQElBRUBBQVZMTV9SRVNVTUVfRU5VTUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMTV9TRVJWSUNFOjpMTV9TRVJWSUNFKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBMTV9TRVJWSUNFQEBRQUVAUEJHMEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTE1fU0VTU0lPTjo6TE1fU0VTU0lPTih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wTE1fU0VTU0lPTkBASUFFQFBCRzBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIExNX1NFU1NJT046OkxNX1NFU1NJT04odW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBMT0NBVElPTiBjb25zdCAmKQ0KKz8/MExNX1NFU1NJT05AQElBRUBQQkdBQlZMT0NBVElPTkBAQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBMTV9TRVNTSU9OOjpMTV9TRVNTSU9OKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosZW51bSBMT0NBVElPTl9UWVBFKQ0KKz8/MExNX1NFU1NJT05AQElBRUBQQkdXNExPQ0FUSU9OX1RZUEVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTE1fU0VTU0lPTl8wOjpMTV9TRVNTSU9OXzAodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MExNX1NFU1NJT05fMEBAUUFFQFBCRzBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExNX1NFU1NJT05fMDo6TE1fU0VTU0lPTl8wKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgTE9DQVRJT04gY29uc3QgJikNCis/PzBMTV9TRVNTSU9OXzBAQFFBRUBQQkdBQlZMT0NBVElPTkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMTV9TRVNTSU9OXzA6OkxNX1NFU1NJT05fMCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGVudW0gTE9DQVRJT05fVFlQRSkNCis/PzBMTV9TRVNTSU9OXzBAQFFBRUBQQkdXNExPQ0FUSU9OX1RZUEVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTE1fU0VTU0lPTl8xMDo6TE1fU0VTU0lPTl8xMCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wTE1fU0VTU0lPTl8xMEBAUUFFQFBCRzBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExNX1NFU1NJT05fMTA6OkxNX1NFU1NJT05fMTAodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBMT0NBVElPTiBjb25zdCAmKQ0KKz8/MExNX1NFU1NJT05fMTBAQFFBRUBQQkdBQlZMT0NBVElPTkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMTV9TRVNTSU9OXzEwOjpMTV9TRVNTSU9OXzEwKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosZW51bSBMT0NBVElPTl9UWVBFKQ0KKz8/MExNX1NFU1NJT05fMTBAQFFBRUBQQkdXNExPQ0FUSU9OX1RZUEVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTE1fU0VTU0lPTl8xOjpMTV9TRVNTSU9OXzEodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MExNX1NFU1NJT05fMUBAUUFFQFBCRzBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExNX1NFU1NJT05fMTo6TE1fU0VTU0lPTl8xKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgTE9DQVRJT04gY29uc3QgJikNCis/PzBMTV9TRVNTSU9OXzFAQFFBRUBQQkdBQlZMT0NBVElPTkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMTV9TRVNTSU9OXzE6OkxNX1NFU1NJT05fMSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGVudW0gTE9DQVRJT05fVFlQRSkNCis/PzBMTV9TRVNTSU9OXzFAQFFBRUBQQkdXNExPQ0FUSU9OX1RZUEVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTE1fU0VTU0lPTl8yOjpMTV9TRVNTSU9OXzIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MExNX1NFU1NJT05fMkBAUUFFQFBCRzBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExNX1NFU1NJT05fMjo6TE1fU0VTU0lPTl8yKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgTE9DQVRJT04gY29uc3QgJikNCis/PzBMTV9TRVNTSU9OXzJAQFFBRUBQQkdBQlZMT0NBVElPTkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMTV9TRVNTSU9OXzI6OkxNX1NFU1NJT05fMih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGVudW0gTE9DQVRJT05fVFlQRSkNCis/PzBMTV9TRVNTSU9OXzJAQFFBRUBQQkdXNExPQ0FUSU9OX1RZUEVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTE1fU1JWUkVTOjpMTV9TUlZSRVModm9pZCkNCis/PzBMTV9TUlZSRVNAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExPQ0FMX1VTRVI6OkxPQ0FMX1VTRVIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MExPQ0FMX1VTRVJAQFFBRUBQQkcwQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMT0NBTF9VU0VSOjpMT0NBTF9VU0VSKGVudW0gTE9DQVRJT05fVFlQRSkNCis/PzBMT0NBTF9VU0VSQEBRQUVAVzRMT0NBVElPTl9UWVBFQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExPQ0FUSU9OOjpMT0NBVElPTihjbGFzcyBMT0NBVElPTiBjb25zdCAmKQ0KKz8/MExPQ0FUSU9OQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExPQ0FUSU9OOjpMT0NBVElPTih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/PzBMT0NBVElPTkBAUUFFQFBCR0hAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExPQ0FUSU9OOjpMT0NBVElPTihlbnVtIExPQ0FUSU9OX1RZUEUsaW50KQ0KKz8/MExPQ0FUSU9OQEBRQUVAVzRMT0NBVElPTl9UWVBFQEBIQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBMT0NfTE1fRU5VTTo6TE9DX0xNX0VOVU0oY2xhc3MgTE9DQVRJT04gY29uc3QgJix1bnNpZ25lZCBpbnQpDQorPz8wTE9DX0xNX0VOVU1AQElBRUBBQlZMT0NBVElPTkBASUBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTE9DX0xNX0VOVU06OkxPQ19MTV9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz8/MExPQ19MTV9FTlVNQEBJQUVAUEJHSUBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTE9DX0xNX0VOVU06OkxPQ19MTV9FTlVNKGVudW0gTE9DQVRJT05fVFlQRSx1bnNpZ25lZCBpbnQpDQorPz8wTE9DX0xNX0VOVU1AQElBRUBXNExPQ0FUSU9OX1RZUEVAQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExPQ19MTV9PQko6OkxPQ19MTV9PQkooY2xhc3MgTE9DQVRJT04gY29uc3QgJixpbnQpDQorPz8wTE9DX0xNX09CSkBAUUFFQEFCVkxPQ0FUSU9OQEBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMT0NfTE1fT0JKOjpMT0NfTE1fT0JKKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz8/MExPQ19MTV9PQkpAQFFBRUBQQkdIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMT0NfTE1fT0JKOjpMT0NfTE1fT0JKKGVudW0gTE9DQVRJT05fVFlQRSxpbnQpDQorPz8wTE9DX0xNX09CSkBAUUFFQFc0TE9DQVRJT05fVFlQRUBASEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTE9DX0xNX1JFU1VNRV9FTlVNOjpMT0NfTE1fUkVTVU1FX0VOVU0oY2xhc3MgTE9DQVRJT04gY29uc3QgJix1bnNpZ25lZCBpbnQsaW50KQ0KKz8/MExPQ19MTV9SRVNVTUVfRU5VTUBASUFFQEFCVkxPQ0FUSU9OQEBJSEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTE9DX0xNX1JFU1VNRV9FTlVNOjpMT0NfTE1fUkVTVU1FX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQsaW50KQ0KKz8/MExPQ19MTV9SRVNVTUVfRU5VTUBASUFFQFBCR0lIQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBMT0NfTE1fUkVTVU1FX0VOVU06OkxPQ19MTV9SRVNVTUVfRU5VTShlbnVtIExPQ0FUSU9OX1RZUEUsdW5zaWduZWQgaW50LGludCkNCis/PzBMT0NfTE1fUkVTVU1FX0VOVU1AQElBRUBXNExPQ0FUSU9OX1RZUEVAQElIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMU0FfQUNDT1VOVDo6TFNBX0FDQ09VTlQoY2xhc3MgTFNBX1BPTElDWSAqLHZvaWQgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdm9pZCAqKQ0KKz8/MExTQV9BQ0NPVU5UQEBRQUVAUEFWTFNBX1BPTElDWUBAUEFYS1BCRzFAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExTQV9BQ0NPVU5UU19FTlVNOjpMU0FfQUNDT1VOVFNfRU5VTShjbGFzcyBMU0FfUE9MSUNZIGNvbnN0ICopDQorPz8wTFNBX0FDQ09VTlRTX0VOVU1AQFFBRUBQQlZMU0FfUE9MSUNZQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExTQV9BQ0NPVU5UU19FTlVNX0lURVI6OkxTQV9BQ0NPVU5UU19FTlVNX0lURVIoY2xhc3MgTFNBX0FDQ09VTlRTX0VOVU0gJikNCis/PzBMU0FfQUNDT1VOVFNfRU5VTV9JVEVSQEBRQUVAQUFWTFNBX0FDQ09VTlRTX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTFNBX0FDQ09VTlRTX0VOVU1fT0JKOjpMU0FfQUNDT1VOVFNfRU5VTV9PQkoodm9pZCkNCis/PzBMU0FfQUNDT1VOVFNfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExTQV9BQ0NPVU5UX1BSSVZJTEVHRV9FTlVNX0lURVI6OkxTQV9BQ0NPVU5UX1BSSVZJTEVHRV9FTlVNX0lURVIoY2xhc3MgT1NfUFJJVklMRUdFX1NFVCAqKQ0KKz8/MExTQV9BQ0NPVU5UX1BSSVZJTEVHRV9FTlVNX0lURVJAQFFBRUBQQVZPU19QUklWSUxFR0VfU0VUQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExTQV9BQ0NUX0RPTV9JTkZPX01FTTo6TFNBX0FDQ1RfRE9NX0lORk9fTUVNKGludCkNCis/PzBMU0FfQUNDVF9ET01fSU5GT19NRU1AQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMU0FfQVVESVRfRVZFTlRfSU5GT19NRU06OkxTQV9BVURJVF9FVkVOVF9JTkZPX01FTShpbnQpDQorPz8wTFNBX0FVRElUX0VWRU5UX0lORk9fTUVNQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTFNBX0RPTUFJTl9JTkZPOjpMU0FfRE9NQUlOX0lORk8oY2xhc3MgTkxTX1NUUiBjb25zdCAmLGNsYXNzIExTQV9ET01BSU5fSU5GTyBjb25zdCAqLGNsYXNzIExTQV9ET01BSU5fSU5GTyBjb25zdCAqKQ0KKz8/MExTQV9ET01BSU5fSU5GT0BAUUFFQEFCVk5MU19TVFJAQFBCVjFAMUBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTFNBX0VOVU06OkxTQV9FTlVNKGNsYXNzIExTQV9QT0xJQ1kgY29uc3QgKikNCis/PzBMU0FfRU5VTUBASUFFQFBCVkxTQV9QT0xJQ1lAQEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTFNBX01FTU9SWTo6TFNBX01FTU9SWShpbnQpDQorPz8wTFNBX01FTU9SWUBASUFFQEhAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIExTQV9PQkpFQ1Q6OkxTQV9PQkpFQ1Qodm9pZCkNCis/PzBMU0FfT0JKRUNUQEBJQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMU0FfUE9MSUNZOjpMU0FfUE9MSUNZKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/PzBMU0FfUE9MSUNZQEBRQUVAUEJHS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTFNBX1BSSU1BUllfRE9NX0lORk9fTUVNOjpMU0FfUFJJTUFSWV9ET01fSU5GT19NRU0oaW50KQ0KKz8/MExTQV9QUklNQVJZX0RPTV9JTkZPX01FTUBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExTQV9QUklWSUxFR0VTX0VOVU06OkxTQV9QUklWSUxFR0VTX0VOVU0oY2xhc3MgTFNBX1BPTElDWSBjb25zdCAqKQ0KKz8/MExTQV9QUklWSUxFR0VTX0VOVU1AQFFBRUBQQlZMU0FfUE9MSUNZQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExTQV9QUklWSUxFR0VTX0VOVU1fSVRFUjo6TFNBX1BSSVZJTEVHRVNfRU5VTV9JVEVSKGNsYXNzIExTQV9QUklWSUxFR0VTX0VOVU0gJikNCis/PzBMU0FfUFJJVklMRUdFU19FTlVNX0lURVJAQFFBRUBBQVZMU0FfUFJJVklMRUdFU19FTlVNQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExTQV9QUklWSUxFR0VTX0VOVU1fT0JKOjpMU0FfUFJJVklMRUdFU19FTlVNX09CSih2b2lkKQ0KKz8/MExTQV9QUklWSUxFR0VTX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMU0FfUkVGX0RPTUFJTl9NRU06OkxTQV9SRUZfRE9NQUlOX01FTShpbnQpDQorPz8wTFNBX1JFRl9ET01BSU5fTUVNQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTFNBX1NFQ1JFVDo6TFNBX1NFQ1JFVChjbGFzcyBOTFNfU1RSIGNvbnN0ICYpDQorPz8wTFNBX1NFQ1JFVEBAUUFFQEFCVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTFNBX1NFUlZFUl9ST0xFX0lORk9fTUVNOjpMU0FfU0VSVkVSX1JPTEVfSU5GT19NRU0oaW50LGludCkNCis/PzBMU0FfU0VSVkVSX1JPTEVfSU5GT19NRU1AQFFBRUBISEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTFNBX1RSQU5TTEFURURfTkFNRV9NRU06OkxTQV9UUkFOU0xBVEVEX05BTUVfTUVNKGludCkNCis/PzBMU0FfVFJBTlNMQVRFRF9OQU1FX01FTUBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExTQV9UUkFOU0xBVEVEX1NJRF9NRU06OkxTQV9UUkFOU0xBVEVEX1NJRF9NRU0oaW50KQ0KKz8/MExTQV9UUkFOU0xBVEVEX1NJRF9NRU1AQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMU0FfVFJVU1RFRF9EQ19MSVNUOjpMU0FfVFJVU1RFRF9EQ19MSVNUKGNsYXNzIE5MU19TVFIgY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MExTQV9UUlVTVEVEX0RDX0xJU1RAQFFBRUBBQlZOTFNfU1RSQEBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExTQV9UUlVTVEVEX0RPTUFJTjo6TFNBX1RSVVNURURfRE9NQUlOKGNsYXNzIExTQV9QT0xJQ1kgY29uc3QgJixzdHJ1Y3QgX0xTQV9UUlVTVF9JTkZPUk1BVElPTiBjb25zdCAmLHVuc2lnbmVkIGxvbmcpDQorPz8wTFNBX1RSVVNURURfRE9NQUlOQEBRQUVAQUJWTFNBX1BPTElDWUBAQUJVX0xTQV9UUlVTVF9JTkZPUk1BVElPTkBAS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTFNBX1RSVVNURURfRE9NQUlOOjpMU0FfVFJVU1RFRF9ET01BSU4oY2xhc3MgTFNBX1BPTElDWSBjb25zdCAmLGNsYXNzIE5MU19TVFIgY29uc3QgJix2b2lkICogY29uc3QsdW5zaWduZWQgbG9uZykNCis/PzBMU0FfVFJVU1RFRF9ET01BSU5AQFFBRUBBQlZMU0FfUE9MSUNZQEBBQlZOTFNfU1RSQEBRQVhLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMU0FfVFJVU1RFRF9ET01BSU46OkxTQV9UUlVTVEVEX0RPTUFJTihjbGFzcyBMU0FfUE9MSUNZIGNvbnN0ICYsdm9pZCAqIGNvbnN0LHVuc2lnbmVkIGxvbmcpDQorPz8wTFNBX1RSVVNURURfRE9NQUlOQEBRQUVAQUJWTFNBX1BPTElDWUBAUUFYS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTFNBX1RSVVNUX0lORk9fTUVNOjpMU0FfVFJVU1RfSU5GT19NRU0oaW50KQ0KKz8/MExTQV9UUlVTVF9JTkZPX01FTUBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE1FTUJFUlNISVBfTE1fT0JKOjpNRU1CRVJTSElQX0xNX09CSihjbGFzcyBMT0NBVElPTiBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/PzBNRU1CRVJTSElQX0xNX09CSkBAUUFFQEFCVkxPQ0FUSU9OQEBJQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBORVRfQUNDRVNTOjpORVRfQUNDRVNTKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBORVRfQUNDRVNTQEBJQUVAUEJHMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTkVUX0FDQ0VTU18xOjpORVRfQUNDRVNTXzEodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/ME5FVF9BQ0NFU1NfMUBAUUFFQFBCRzBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE5FVF9OQU1FOjpORVRfTkFNRSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGVudW0gTkVUTkFNRV9UWVBFKQ0KKz8/ME5FVF9OQU1FQEBRQUVAUEJHVzRORVROQU1FX1RZUEVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTkVXX0xNX09CSjo6TkVXX0xNX09CSihpbnQpDQorPz8wTkVXX0xNX09CSkBAUUFFQEhAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIE5UX0FDQ09VTlRfRU5VTTo6TlRfQUNDT1VOVF9FTlVNKGNsYXNzIFNBTV9ET01BSU4gY29uc3QgKixlbnVtIF9ET01BSU5fRElTUExBWV9JTkZPUk1BVElPTixpbnQpDQorPz8wTlRfQUNDT1VOVF9FTlVNQEBJQUVAUEJWU0FNX0RPTUFJTkBAVzRfRE9NQUlOX0RJU1BMQVlfSU5GT1JNQVRJT05AQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE5UX0dST1VQX0VOVU06Ok5UX0dST1VQX0VOVU0oY2xhc3MgU0FNX0RPTUFJTiBjb25zdCAqKQ0KKz8/ME5UX0dST1VQX0VOVU1AQFFBRUBQQlZTQU1fRE9NQUlOQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE5UX0dST1VQX0VOVU1fSVRFUjo6TlRfR1JPVVBfRU5VTV9JVEVSKGNsYXNzIE5UX0dST1VQX0VOVU0gJikNCis/PzBOVF9HUk9VUF9FTlVNX0lURVJAQFFBRUBBQVZOVF9HUk9VUF9FTlVNQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE5UX0dST1VQX0VOVU1fT0JKOjpOVF9HUk9VUF9FTlVNX09CSih2b2lkKQ0KKz8/ME5UX0dST1VQX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOVF9NQUNISU5FX0VOVU06Ok5UX01BQ0hJTkVfRU5VTShjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICopDQorPz8wTlRfTUFDSElORV9FTlVNQEBRQUVAUEJWU0FNX0RPTUFJTkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOVF9NQUNISU5FX0VOVU1fSVRFUjo6TlRfTUFDSElORV9FTlVNX0lURVIoY2xhc3MgTlRfTUFDSElORV9FTlVNICYpDQorPz8wTlRfTUFDSElORV9FTlVNX0lURVJAQFFBRUBBQVZOVF9NQUNISU5FX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTlRfTUFDSElORV9FTlVNX09CSjo6TlRfTUFDSElORV9FTlVNX09CSih2b2lkKQ0KKz8/ME5UX01BQ0hJTkVfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIE5UX01FTU9SWTo6TlRfTUVNT1JZKHZvaWQpDQorPz8wTlRfTUVNT1JZQEBJQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOVF9VU0VSX0VOVU06Ok5UX1VTRVJfRU5VTShjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICopDQorPz8wTlRfVVNFUl9FTlVNQEBRQUVAUEJWU0FNX0RPTUFJTkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOVF9VU0VSX0VOVU1fSVRFUjo6TlRfVVNFUl9FTlVNX0lURVIoY2xhc3MgTlRfVVNFUl9FTlVNICYpDQorPz8wTlRfVVNFUl9FTlVNX0lURVJAQFFBRUBBQVZOVF9VU0VSX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTlRfVVNFUl9FTlVNX09CSjo6TlRfVVNFUl9FTlVNX09CSih2b2lkKQ0KKz8/ME5UX1VTRVJfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE9TX0FDRTo6T1NfQUNFKHZvaWQgKikNCis/PzBPU19BQ0VAQFFBRUBQQVhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE9TX0FDTDo6T1NfQUNMKHN0cnVjdCBfQUNMICosaW50LGNsYXNzIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1IgKikNCis/PzBPU19BQ0xAQFFBRUBQQVVfQUNMQEBIUEFWT1NfU0VDVVJJVFlfREVTQ1JJUFRPUkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBPU19BQ0xfU1VCSkVDVF9JVEVSOjpPU19BQ0xfU1VCSkVDVF9JVEVSKGNsYXNzIE9TX0FDTCBjb25zdCAqLHN0cnVjdCBfR0VORVJJQ19NQVBQSU5HICosc3RydWN0IF9HRU5FUklDX01BUFBJTkcgKixpbnQsaW50KQ0KKz8/ME9TX0FDTF9TVUJKRUNUX0lURVJAQFFBRUBQQlZPU19BQ0xAQFBBVV9HRU5FUklDX01BUFBJTkdAQDFISEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgT1NfREFDTF9TVUJKRUNUX0lURVI6Ok9TX0RBQ0xfU1VCSkVDVF9JVEVSKGNsYXNzIE9TX0FDTCAqLHN0cnVjdCBfR0VORVJJQ19NQVBQSU5HICosc3RydWN0IF9HRU5FUklDX01BUFBJTkcgKixpbnQsaW50KQ0KKz8/ME9TX0RBQ0xfU1VCSkVDVF9JVEVSQEBRQUVAUEFWT1NfQUNMQEBQQVVfR0VORVJJQ19NQVBQSU5HQEAxSEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE9TX0xVSUQ6Ok9TX0xVSUQoc3RydWN0IF9MVUlEKQ0KKz8/ME9TX0xVSURAQFFBRUBVX0xVSURAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgT1NfTFVJRDo6T1NfTFVJRCh2b2lkKQ0KKz8/ME9TX0xVSURAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE9TX0xVSURfQU5EX0FUVFJJQlVURVM6Ok9TX0xVSURfQU5EX0FUVFJJQlVURVModm9pZCkNCis/PzBPU19MVUlEX0FORF9BVFRSSUJVVEVTQEBRQUVAWFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBPU19PQkpFQ1RfV0lUSF9EQVRBOjpPU19PQkpFQ1RfV0lUSF9EQVRBKHVuc2lnbmVkIGludCkNCis/PzBPU19PQkpFQ1RfV0lUSF9EQVRBQEBJQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgT1NfUFJJVklMRUdFX1NFVDo6T1NfUFJJVklMRUdFX1NFVChzdHJ1Y3QgX1BSSVZJTEVHRV9TRVQgKikNCis/PzBPU19QUklWSUxFR0VfU0VUQEBRQUVAUEFVX1BSSVZJTEVHRV9TRVRAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgT1NfU0FDTF9TVUJKRUNUX0lURVI6Ok9TX1NBQ0xfU1VCSkVDVF9JVEVSKGNsYXNzIE9TX0FDTCAqLHN0cnVjdCBfR0VORVJJQ19NQVBQSU5HICosc3RydWN0IF9HRU5FUklDX01BUFBJTkcgKixpbnQsaW50KQ0KKz8/ME9TX1NBQ0xfU1VCSkVDVF9JVEVSQEBRQUVAUEFWT1NfQUNMQEBQQVVfR0VORVJJQ19NQVBQSU5HQEAxSEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6Ok9TX1NFQ1VSSVRZX0RFU0NSSVBUT1Iodm9pZCAqLGludCkNCis/PzBPU19TRUNVUklUWV9ERVNDUklQVE9SQEBRQUVAUEFYSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUl9DT05UUk9MOjpPU19TRUNVUklUWV9ERVNDUklQVE9SX0NPTlRST0wodW5zaWduZWQgc2hvcnQgKikNCis/PzBPU19TRUNVUklUWV9ERVNDUklQVE9SX0NPTlRST0xAQFFBRUBQQUdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE9TX1NJRDo6T1NfU0lEKHZvaWQgKixpbnQsY2xhc3MgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUiAqKQ0KKz8/ME9TX1NJREBAUUFFQFBBWEhQQVZPU19TRUNVUklUWV9ERVNDUklQVE9SQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE9TX1NJRDo6T1NfU0lEKHZvaWQgKix1bnNpZ25lZCBsb25nLGNsYXNzIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1IgKikNCis/PzBPU19TSURAQFFBRUBQQVhLUEFWT1NfU0VDVVJJVFlfREVTQ1JJUFRPUkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTQU1fQUxJQVM6OlNBTV9BTElBUyhjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICYsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz8/MFNBTV9BTElBU0BAUUFFQEFCVlNBTV9ET01BSU5AQEtLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTQU1fQUxJQVM6OlNBTV9BTElBUyhjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz8/MFNBTV9BTElBU0BAUUFFQEFCVlNBTV9ET01BSU5AQFBCR0tAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNBTV9ET01BSU46OlNBTV9ET01BSU4oY2xhc3MgU0FNX1NFUlZFUiBjb25zdCAmLHZvaWQgKix1bnNpZ25lZCBsb25nKQ0KKz8/MFNBTV9ET01BSU5AQFFBRUBBQlZTQU1fU0VSVkVSQEBQQVhLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTQU1fR1JPVVA6OlNBTV9HUk9VUChjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICYsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz8/MFNBTV9HUk9VUEBAUUFFQEFCVlNBTV9ET01BSU5AQEtLQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBTQU1fTUVNT1JZOjpTQU1fTUVNT1JZKGludCkNCis/PzBTQU1fTUVNT1JZQEBJQUVASEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgU0FNX09CSkVDVDo6U0FNX09CSkVDVCh2b2lkKQ0KKz8/MFNBTV9PQkpFQ1RAQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNBTV9QU1dEX0RPTV9JTkZPX01FTTo6U0FNX1BTV0RfRE9NX0lORk9fTUVNKGludCkNCis/PzBTQU1fUFNXRF9ET01fSU5GT19NRU1AQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTQU1fUklEX0VOVU1FUkFUSU9OX01FTTo6U0FNX1JJRF9FTlVNRVJBVElPTl9NRU0oaW50KQ0KKz8/MFNBTV9SSURfRU5VTUVSQVRJT05fTUVNQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0FNX1JJRF9NRU06OlNBTV9SSURfTUVNKGludCkNCis/PzBTQU1fUklEX01FTUBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNBTV9TRVJWRVI6OlNBTV9TRVJWRVIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz8/MFNBTV9TRVJWRVJAQFFBRUBQQkdLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTQU1fU0lEX01FTTo6U0FNX1NJRF9NRU0oaW50KQ0KKz8/MFNBTV9TSURfTUVNQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0FNX1NJRF9OQU1FX1VTRV9NRU06OlNBTV9TSURfTkFNRV9VU0VfTUVNKGludCkNCis/PzBTQU1fU0lEX05BTUVfVVNFX01FTUBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNBTV9VU0VSOjpTQU1fVVNFUihjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICYsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz8/MFNBTV9VU0VSQEBRQUVAQUJWU0FNX0RPTUFJTkBAS0tAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNBTV9VU0VSX0VOVU06OlNBTV9VU0VSX0VOVU0oY2xhc3MgU0FNX0RPTUFJTiBjb25zdCAqLHVuc2lnbmVkIGxvbmcsaW50KQ0KKz8/MFNBTV9VU0VSX0VOVU1AQFFBRUBQQlZTQU1fRE9NQUlOQEBLSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0FNX1VTRVJfRU5VTV9JVEVSOjpTQU1fVVNFUl9FTlVNX0lURVIoY2xhc3MgU0FNX1VTRVJfRU5VTSAmKQ0KKz8/MFNBTV9VU0VSX0VOVU1fSVRFUkBAUUFFQEFBVlNBTV9VU0VSX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0FNX1VTRVJfRU5VTV9PQko6OlNBTV9VU0VSX0VOVU1fT0JKKHZvaWQpDQorPz8wU0FNX1VTRVJfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNDX01BTkFHRVI6OlNDX01BTkFHRVIoc3RydWN0IFNDX0hBTkRMRV9fICopDQorPz8wU0NfTUFOQUdFUkBAUUFFQFBBVVNDX0hBTkRMRV9fQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNDX01BTkFHRVI6OlNDX01BTkFHRVIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQsZW51bSBTRVJWSUNFX0RBVEFCQVNFKQ0KKz8/MFNDX01BTkFHRVJAQFFBRUBQQkdJVzRTRVJWSUNFX0RBVEFCQVNFQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNDX1NFUlZJQ0U6OlNDX1NFUlZJQ0UoY2xhc3MgU0NfTUFOQUdFUiBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz8/MFNDX1NFUlZJQ0VAQFFBRUBBQlZTQ19NQU5BR0VSQEBQQkcxSUlJMTExMTFJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTQ19TRVJWSUNFOjpTQ19TRVJWSUNFKGNsYXNzIFNDX01BTkFHRVIgY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/PzBTQ19TRVJWSUNFQEBRQUVAQUJWU0NfTUFOQUdFUkBAUEJHSUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0VSVkVSMV9FTlVNOjpTRVJWRVIxX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorPz8wU0VSVkVSMV9FTlVNQEBRQUVAUEJHMEtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNFUlZFUjFfRU5VTV9JVEVSOjpTRVJWRVIxX0VOVU1fSVRFUihjbGFzcyBTRVJWRVIxX0VOVU0gJikNCis/PzBTRVJWRVIxX0VOVU1fSVRFUkBAUUFFQEFBVlNFUlZFUjFfRU5VTUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTRVJWRVIxX0VOVU1fT0JKOjpTRVJWRVIxX0VOVU1fT0JKKHZvaWQpDQorPz8wU0VSVkVSMV9FTlVNX09CSkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0VSVkVSXzA6OlNFUlZFUl8wKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wU0VSVkVSXzBAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNFUlZFUl8xOjpTRVJWRVJfMSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFNFUlZFUl8xQEBRQUVAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTRVJWRVJfMjo6U0VSVkVSXzIodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBTRVJWRVJfMkBAUUFFQFBCR0BaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgU0VSVkVSX0VOVU06OlNFUlZFUl9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/PzBTRVJWRVJfRU5VTUBASUFFQFBCR0kwS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0VSVklDRV9DT05UUk9MOjpTRVJWSUNFX0NPTlRST0wodm9pZCkNCis/PzBTRVJWSUNFX0NPTlRST0xAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNFUlZJQ0VfRU5VTTo6U0VSVklDRV9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFNFUlZJQ0VfRU5VTUBAUUFFQFBCR0hJMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0VSVklDRV9FTlVNX0lURVI6OlNFUlZJQ0VfRU5VTV9JVEVSKGNsYXNzIFNFUlZJQ0VfRU5VTSAmKQ0KKz8/MFNFUlZJQ0VfRU5VTV9JVEVSQEBRQUVAQUFWU0VSVklDRV9FTlVNQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNFUlZJQ0VfRU5VTV9PQko6OlNFUlZJQ0VfRU5VTV9PQkoodm9pZCkNCis/PzBTRVJWSUNFX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTRVNTSU9OMF9FTlVNOjpTRVNTSU9OMF9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wU0VTU0lPTjBfRU5VTUBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0VTU0lPTjBfRU5VTV9JVEVSOjpTRVNTSU9OMF9FTlVNX0lURVIoY2xhc3MgU0VTU0lPTjBfRU5VTSAmKQ0KKz8/MFNFU1NJT04wX0VOVU1fSVRFUkBAUUFFQEFBVlNFU1NJT04wX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0VTU0lPTjBfRU5VTV9PQko6OlNFU1NJT04wX0VOVU1fT0JKKHZvaWQpDQorPz8wU0VTU0lPTjBfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNFU1NJT04xX0VOVU06OlNFU1NJT04xX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBTRVNTSU9OMV9FTlVNQEBRQUVAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTRVNTSU9OMV9FTlVNX0lURVI6OlNFU1NJT04xX0VOVU1fSVRFUihjbGFzcyBTRVNTSU9OMV9FTlVNICYpDQorPz8wU0VTU0lPTjFfRU5VTV9JVEVSQEBRQUVAQUFWU0VTU0lPTjFfRU5VTUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTRVNTSU9OMV9FTlVNX09CSjo6U0VTU0lPTjFfRU5VTV9PQkoodm9pZCkNCis/PzBTRVNTSU9OMV9FTlVNX09CSkBAUUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgU0VTU0lPTl9FTlVNOjpTRVNTSU9OX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorPz8wU0VTU0lPTl9FTlVNQEBJQUVAUEJHSUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0hBUkUxX0VOVU06OlNIQVJFMV9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz8/MFNIQVJFMV9FTlVNQEBRQUVAUEJHSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0hBUkUxX0VOVU1fSVRFUjo6U0hBUkUxX0VOVU1fSVRFUihjbGFzcyBTSEFSRTFfRU5VTSAmKQ0KKz8/MFNIQVJFMV9FTlVNX0lURVJAQFFBRUBBQVZTSEFSRTFfRU5VTUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTSEFSRTFfRU5VTV9PQko6OlNIQVJFMV9FTlVNX09CSih2b2lkKQ0KKz8/MFNIQVJFMV9FTlVNX09CSkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0hBUkUyX0VOVU06OlNIQVJFMl9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz8/MFNIQVJFMl9FTlVNQEBRQUVAUEJHSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0hBUkUyX0VOVU1fSVRFUjo6U0hBUkUyX0VOVU1fSVRFUihjbGFzcyBTSEFSRTJfRU5VTSAmKQ0KKz8/MFNIQVJFMl9FTlVNX0lURVJAQFFBRUBBQVZTSEFSRTJfRU5VTUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTSEFSRTJfRU5VTV9PQko6OlNIQVJFMl9FTlVNX09CSih2b2lkKQ0KKz8/MFNIQVJFMl9FTlVNX09CSkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0hBUkU6OlNIQVJFKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpDQorPz8wU0hBUkVAQFFBRUBQQkcwSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0hBUkVfMTo6U0hBUkVfMSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz8/MFNIQVJFXzFAQFFBRUBQQkcwSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0hBUkVfMjo6U0hBUkVfMih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz8/MFNIQVJFXzJAQFFBRUBQQkcwSEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgU0hBUkVfRU5VTTo6U0hBUkVfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCxpbnQpDQorPz8wU0hBUkVfRU5VTUBASUFFQFBCR0lIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTTElTVF9PRl9BRE1JTl9BVVRIT1JJVFk6OlNMSVNUX09GX0FETUlOX0FVVEhPUklUWShpbnQpDQorPz8wU0xJU1RfT0ZfQURNSU5fQVVUSE9SSVRZQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0xJU1RfT0ZfQVBJX1NFU1NJT046OlNMSVNUX09GX0FQSV9TRVNTSU9OKGludCkNCis/PzBTTElTVF9PRl9BUElfU0VTU0lPTkBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNMSVNUX09GX0JST1dTRV9ET01BSU5fSU5GTzo6U0xJU1RfT0ZfQlJPV1NFX0RPTUFJTl9JTkZPKGludCkNCis/PzBTTElTVF9PRl9CUk9XU0VfRE9NQUlOX0lORk9AQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTTElTVF9PRl9MTV9SRVNVTUVfQlVGRkVSOjpTTElTVF9PRl9MTV9SRVNVTUVfQlVGRkVSKGludCkNCis/PzBTTElTVF9PRl9MTV9SRVNVTUVfQlVGRkVSQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVElNRV9PRl9EQVk6OlRJTUVfT0ZfREFZKGNsYXNzIExPQ0FUSU9OICYpDQorPz8wVElNRV9PRl9EQVlAQFFBRUBBQVZMT0NBVElPTkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBUSU1FX09GX0RBWTo6VElNRV9PRl9EQVkodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBUSU1FX09GX0RBWUBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVElNRV9PRl9EQVk6OlRJTUVfT0ZfREFZKGVudW0gTE9DQVRJT05fVFlQRSkNCis/PzBUSU1FX09GX0RBWUBAUUFFQFc0TE9DQVRJT05fVFlQRUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBUUklQTEVfU0VSVkVSX0VOVU06OlRSSVBMRV9TRVJWRVJfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50LGludCxpbnQsaW50KQ0KKz8/MFRSSVBMRV9TRVJWRVJfRU5VTUBAUUFFQFBCRzBISEhIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBUUklQTEVfU0VSVkVSX0VOVU1fSVRFUjo6VFJJUExFX1NFUlZFUl9FTlVNX0lURVIoY2xhc3MgVFJJUExFX1NFUlZFUl9FTlVNICYpDQorPz8wVFJJUExFX1NFUlZFUl9FTlVNX0lURVJAQFFBRUBBQVZUUklQTEVfU0VSVkVSX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVFJJUExFX1NFUlZFUl9FTlVNX09CSjo6VFJJUExFX1NFUlZFUl9FTlVNX09CSih2b2lkKQ0KKz8/MFRSSVBMRV9TRVJWRVJfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFRSVVNURURfRE9NQUlOX0VOVU06OlRSVVNURURfRE9NQUlOX0VOVU0oY2xhc3MgTFNBX1BPTElDWSBjb25zdCAqLGludCkNCis/PzBUUlVTVEVEX0RPTUFJTl9FTlVNQEBRQUVAUEJWTFNBX1BPTElDWUBASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVFJVU1RFRF9ET01BSU5fRU5VTV9JVEVSOjpUUlVTVEVEX0RPTUFJTl9FTlVNX0lURVIoY2xhc3MgVFJVU1RFRF9ET01BSU5fRU5VTSAmKQ0KKz8/MFRSVVNURURfRE9NQUlOX0VOVU1fSVRFUkBAUUFFQEFBVlRSVVNURURfRE9NQUlOX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVFJVU1RFRF9ET01BSU5fRU5VTV9PQko6OlRSVVNURURfRE9NQUlOX0VOVU1fT0JKKHZvaWQpDQorPz8wVFJVU1RFRF9ET01BSU5fRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRTFfRU5VTTo6VVNFMV9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wVVNFMV9FTlVNQEBRQUVAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVU0UxX0VOVU1fSVRFUjo6VVNFMV9FTlVNX0lURVIoY2xhc3MgVVNFMV9FTlVNICYpDQorPz8wVVNFMV9FTlVNX0lURVJAQFFBRUBBQVZVU0UxX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNFMV9FTlVNX09CSjo6VVNFMV9FTlVNX09CSih2b2lkKQ0KKz8/MFVTRTFfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRVIwX0VOVU06OlVTRVIwX0VOVU0oY2xhc3MgTE9DQVRJT04gY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/PzBVU0VSMF9FTlVNQEBRQUVAQUJWTE9DQVRJT05AQFBCR0hAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRVIwX0VOVU06OlVTRVIwX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/PzBVU0VSMF9FTlVNQEBRQUVAUEJHMEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRVIwX0VOVU06OlVTRVIwX0VOVU0oZW51bSBMT0NBVElPTl9UWVBFLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz8/MFVTRVIwX0VOVU1AQFFBRUBXNExPQ0FUSU9OX1RZUEVAQFBCR0hAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRVIwX0VOVU1fSVRFUjo6VVNFUjBfRU5VTV9JVEVSKGNsYXNzIFVTRVIwX0VOVU0gJikNCis/PzBVU0VSMF9FTlVNX0lURVJAQFFBRUBBQVZVU0VSMF9FTlVNQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRVIwX0VOVU1fT0JKOjpVU0VSMF9FTlVNX09CSih2b2lkKQ0KKz8/MFVTRVIwX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVU0VSMTBfRU5VTTo6VVNFUjEwX0VOVU0oY2xhc3MgTE9DQVRJT04gY29uc3QgJixpbnQpDQorPz8wVVNFUjEwX0VOVU1AQFFBRUBBQlZMT0NBVElPTkBASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNFUjEwX0VOVU06OlVTRVIxMF9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz8/MFVTRVIxMF9FTlVNQEBRQUVAUEJHSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNFUjEwX0VOVU06OlVTRVIxMF9FTlVNKGVudW0gTE9DQVRJT05fVFlQRSxpbnQpDQorPz8wVVNFUjEwX0VOVU1AQFFBRUBXNExPQ0FUSU9OX1RZUEVAQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRVIxMF9FTlVNX0lURVI6OlVTRVIxMF9FTlVNX0lURVIoY2xhc3MgVVNFUjEwX0VOVU0gJikNCis/PzBVU0VSMTBfRU5VTV9JVEVSQEBRQUVAQUFWVVNFUjEwX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNFUjEwX0VOVU1fT0JKOjpVU0VSMTBfRU5VTV9PQkoodm9pZCkNCis/PzBVU0VSMTBfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRVIxX0VOVU06OlVTRVIxX0VOVU0oY2xhc3MgTE9DQVRJT04gY29uc3QgJixpbnQpDQorPz8wVVNFUjFfRU5VTUBAUUFFQEFCVkxPQ0FUSU9OQEBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVU0VSMV9FTlVNOjpVU0VSMV9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz8/MFVTRVIxX0VOVU1AQFFBRUBQQkdIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVU0VSMV9FTlVNOjpVU0VSMV9FTlVNKGVudW0gTE9DQVRJT05fVFlQRSxpbnQpDQorPz8wVVNFUjFfRU5VTUBAUUFFQFc0TE9DQVRJT05fVFlQRUBASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNFUjFfRU5VTV9JVEVSOjpVU0VSMV9FTlVNX0lURVIoY2xhc3MgVVNFUjFfRU5VTSAmKQ0KKz8/MFVTRVIxX0VOVU1fSVRFUkBAUUFFQEFBVlVTRVIxX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNFUjFfRU5VTV9PQko6OlVTRVIxX0VOVU1fT0JKKHZvaWQpDQorPz8wVVNFUjFfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRVIyX0VOVU06OlVTRVIyX0VOVU0oY2xhc3MgTE9DQVRJT04gY29uc3QgJixpbnQpDQorPz8wVVNFUjJfRU5VTUBAUUFFQEFCVkxPQ0FUSU9OQEBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVU0VSMl9FTlVNOjpVU0VSMl9FTlVNKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz8/MFVTRVIyX0VOVU1AQFFBRUBQQkdIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVU0VSMl9FTlVNOjpVU0VSMl9FTlVNKGVudW0gTE9DQVRJT05fVFlQRSxpbnQpDQorPz8wVVNFUjJfRU5VTUBAUUFFQFc0TE9DQVRJT05fVFlQRUBASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNFUjJfRU5VTV9JVEVSOjpVU0VSMl9FTlVNX0lURVIoY2xhc3MgVVNFUjJfRU5VTSAmKQ0KKz8/MFVTRVIyX0VOVU1fSVRFUkBAUUFFQEFBVlVTRVIyX0VOVU1AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNFUjJfRU5VTV9PQko6OlVTRVIyX0VOVU1fT0JKKHZvaWQpDQorPz8wVVNFUjJfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRVI6OlVTRVIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFVTRVJAQFFBRUBQQkcwQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVU0VSOjpVU0VSKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgTE9DQVRJT04gY29uc3QgJikNCis/PzBVU0VSQEBRQUVAUEJHQUJWTE9DQVRJT05AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNFUjo6VVNFUih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGVudW0gTE9DQVRJT05fVFlQRSkNCis/PzBVU0VSQEBRQUVAUEJHVzRMT0NBVElPTl9UWVBFQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRVJfMTE6OlVTRVJfMTEodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFVTRVJfMTFAQFFBRUBQQkcwQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVU0VSXzExOjpVU0VSXzExKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgTE9DQVRJT04gY29uc3QgJikNCis/PzBVU0VSXzExQEBRQUVAUEJHQUJWTE9DQVRJT05AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNFUl8xMTo6VVNFUl8xMSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGVudW0gTE9DQVRJT05fVFlQRSkNCis/PzBVU0VSXzExQEBRQUVAUEJHVzRMT0NBVElPTl9UWVBFQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRVJfMjo6VVNFUl8yKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBVU0VSXzJAQFFBRUBQQkcwQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVU0VSXzI6OlVTRVJfMih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYpDQorPz8wVVNFUl8yQEBRQUVAUEJHQUJWTE9DQVRJT05AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNFUl8yOjpVU0VSXzIodW5zaWduZWQgc2hvcnQgY29uc3QgKixlbnVtIExPQ0FUSU9OX1RZUEUpDQorPz8wVVNFUl8yQEBRQUVAUEJHVzRMT0NBVElPTl9UWVBFQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRVJfMzo6VVNFUl8zKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBVU0VSXzNAQFFBRUBQQkcwQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVU0VSXzM6OlVTRVJfMyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYpDQorPz8wVVNFUl8zQEBRQUVAUEJHQUJWTE9DQVRJT05AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNFUl8zOjpVU0VSXzModW5zaWduZWQgc2hvcnQgY29uc3QgKixlbnVtIExPQ0FUSU9OX1RZUEUpDQorPz8wVVNFUl8zQEBRQUVAUEJHVzRMT0NBVElPTl9UWVBFQEBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIFVTRVJfRU5VTTo6VVNFUl9FTlVNKGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz8/MFVTRVJfRU5VTUBASUFFQEFCVkxPQ0FUSU9OQEBJUEJHSEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgVVNFUl9FTlVNOjpVU0VSX0VOVU0odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpDQorPz8wVVNFUl9FTlVNQEBJQUVAUEJHSTBIQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBVU0VSX0VOVU06OlVTRVJfRU5VTShlbnVtIExPQ0FUSU9OX1RZUEUsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz8/MFVTRVJfRU5VTUBASUFFQFc0TE9DQVRJT05fVFlQRUBASVBCR0hAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRVJfTUVNQjo6VVNFUl9NRU1CKGNsYXNzIExPQ0FUSU9OIGNvbnN0ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBVU0VSX01FTUJAQFFBRUBBQlZMT0NBVElPTkBAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVU0VSX01PREFMUzo6VVNFUl9NT0RBTFModW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBVU0VSX01PREFMU0BAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNFUl9NT0RBTFNfMzo6VVNFUl9NT0RBTFNfMyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFVTRVJfTU9EQUxTXzNAQFFBRUBQQkdAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIFVTRV9FTlVNOjpVU0VfRU5VTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/PzBVU0VfRU5VTUBASUFFQFBCR0lAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdLU1RBXzEwOjpXS1NUQV8xMCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFdLU1RBXzEwQEBRQUVAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXS1NUQV8xOjpXS1NUQV8xKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wV0tTVEFfMUBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV0tTVEFfVVNFUl8xOjpXS1NUQV9VU0VSXzEodm9pZCkNCis/PzBXS1NUQV9VU0VSXzFAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEFETUlOX0FVVEhPUklUWTo6fkFETUlOX0FVVEhPUklUWSh2b2lkKQ0KKz8/MUFETUlOX0FVVEhPUklUWUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQUxJQVNfRU5VTTo6fkFMSUFTX0VOVU0odm9pZCkNCis/PzFBTElBU19FTlVNQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBTElBU19FTlVNX09CSjo6fkFMSUFTX0VOVU1fT0JKKHZvaWQpDQorPz8xQUxJQVNfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEFMSUFTX1NUUjo6fkFMSUFTX1NUUih2b2lkKQ0KKz8/MUFMSUFTX1NUUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQUxMT0NfU1RSOjp+QUxMT0NfU1RSKHZvaWQpDQorPz8xQUxMT0NfU1RSQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBUElfU0VTU0lPTjo6fkFQSV9TRVNTSU9OKHZvaWQpDQorPz8xQVBJX1NFU1NJT05AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJST1dTRV9ET01BSU5fRU5VTTo6fkJST1dTRV9ET01BSU5fRU5VTSh2b2lkKQ0KKz8/MUJST1dTRV9ET01BSU5fRU5VTUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQlJPV1NFX0RPTUFJTl9JTkZPOjp+QlJPV1NFX0RPTUFJTl9JTkZPKHZvaWQpDQorPz8xQlJPV1NFX0RPTUFJTl9JTkZPQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSEFSREVWUTFfRU5VTV9PQko6On5DSEFSREVWUTFfRU5VTV9PQkoodm9pZCkNCis/PzFDSEFSREVWUTFfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENIQVJERVZRX0VOVU06On5DSEFSREVWUV9FTlVNKHZvaWQpDQorPz8xQ0hBUkRFVlFfRU5VTUBAUUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQ09NUFVURVI6On5DT01QVVRFUih2b2lkKQ0KKz8/MUNPTVBVVEVSQEBJQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDT05OMF9FTlVNX09CSjo6fkNPTk4wX0VOVU1fT0JKKHZvaWQpDQorPz8xQ09OTjBfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENPTk4xX0VOVU1fT0JKOjp+Q09OTjFfRU5VTV9PQkoodm9pZCkNCis/PzFDT05OMV9FTlVNX09CSkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ09OTl9FTlVNOjp+Q09OTl9FTlVNKHZvaWQpDQorPz8xQ09OTl9FTlVNQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDT05URVhUX0VOVU1fT0JKOjp+Q09OVEVYVF9FTlVNX09CSih2b2lkKQ0KKz8/MUNPTlRFWFRfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERFVklDRTo6fkRFVklDRSh2b2lkKQ0KKz8/MURFVklDRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRE9NQUlOMF9FTlVNOjp+RE9NQUlOMF9FTlVNKHZvaWQpDQorPz8xRE9NQUlOMF9FTlVNQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBET01BSU4wX0VOVU1fSVRFUjo6fkRPTUFJTjBfRU5VTV9JVEVSKHZvaWQpDQorPz8xRE9NQUlOMF9FTlVNX0lURVJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERPTUFJTjBfRU5VTV9PQko6On5ET01BSU4wX0VOVU1fT0JKKHZvaWQpDQorPz8xRE9NQUlOMF9FTlVNX09CSkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRE9NQUlOOjp+RE9NQUlOKHZvaWQpDQorPz8xRE9NQUlOQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBET01BSU5fRU5VTTo6fkRPTUFJTl9FTlVNKHZvaWQpDQorPz8xRE9NQUlOX0VOVU1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERPTUFJTl9XSVRIX0RDX0NBQ0hFOjp+RE9NQUlOX1dJVEhfRENfQ0FDSEUodm9pZCkNCis/PzFET01BSU5fV0lUSF9EQ19DQUNIRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRU5VTV9DQUxMRVJfTE1fT0JKOjp+RU5VTV9DQUxMRVJfTE1fT0JKKHZvaWQpDQorPz8xRU5VTV9DQUxMRVJfTE1fT0JKQEBRQUVAWFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBFTlVNX09CSl9CQVNFOjp+RU5VTV9PQkpfQkFTRSh2b2lkKQ0KKz8/MUVOVU1fT0JKX0JBU0VAQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEZJTEUyX0VOVU1fT0JKOjp+RklMRTJfRU5VTV9PQkoodm9pZCkNCis/PzFGSUxFMl9FTlVNX09CSkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRklMRTNfRU5VTTo6fkZJTEUzX0VOVU0odm9pZCkNCis/PzFGSUxFM19FTlVNQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBGSUxFM19FTlVNX0lURVI6On5GSUxFM19FTlVNX0lURVIodm9pZCkNCis/PzFGSUxFM19FTlVNX0lURVJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEZJTEUzX0VOVU1fT0JKOjp+RklMRTNfRU5VTV9PQkoodm9pZCkNCis/PzFGSUxFM19FTlVNX09CSkBAUUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgRklMRV9FTlVNOjp+RklMRV9FTlVNKHZvaWQpDQorPz8xRklMRV9FTlVNQEBJQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBHUk9VUDBfRU5VTTo6fkdST1VQMF9FTlVNKHZvaWQpDQorPz8xR1JPVVAwX0VOVU1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEdST1VQMF9FTlVNX0lURVI6On5HUk9VUDBfRU5VTV9JVEVSKHZvaWQpDQorPz8xR1JPVVAwX0VOVU1fSVRFUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgR1JPVVAwX0VOVU1fT0JKOjp+R1JPVVAwX0VOVU1fT0JKKHZvaWQpDQorPz8xR1JPVVAwX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBHUk9VUDFfRU5VTV9PQko6On5HUk9VUDFfRU5VTV9PQkoodm9pZCkNCis/PzFHUk9VUDFfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEdST1VQOjp+R1JPVVAodm9pZCkNCis/PzFHUk9VUEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgR1JPVVBfMDo6fkdST1VQXzAodm9pZCkNCis/PzFHUk9VUF8wQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBHUk9VUF8xOjp+R1JPVVBfMSh2b2lkKQ0KKz8/MUdST1VQXzFAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEdST1VQX0VOVU06On5HUk9VUF9FTlVNKHZvaWQpDQorPz8xR1JPVVBfRU5VTUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgR1JPVVBfTUVNQjo6fkdST1VQX01FTUIodm9pZCkNCis/PzFHUk9VUF9NRU1CQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBJVEVSX0RFVklDRTo6fklURVJfREVWSUNFKHZvaWQpDQorPz8xSVRFUl9ERVZJQ0VAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElURVJfU0xfQlJPV1NFX0RPTUFJTl9JTkZPOjp+SVRFUl9TTF9CUk9XU0VfRE9NQUlOX0lORk8odm9pZCkNCis/PzFJVEVSX1NMX0JST1dTRV9ET01BSU5fSU5GT0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSVRFUl9TTF9MTV9SRVNVTUVfQlVGRkVSOjp+SVRFUl9TTF9MTV9SRVNVTUVfQlVGRkVSKHZvaWQpDQorPz8xSVRFUl9TTF9MTV9SRVNVTUVfQlVGRkVSQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMTV9DT05GSUc6On5MTV9DT05GSUcodm9pZCkNCis/PzFMTV9DT05GSUdAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExNX0VOVU06On5MTV9FTlVNKHZvaWQpDQorPz8xTE1fRU5VTUBAUUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTE1fRU5VTV9JVEVSOjp+TE1fRU5VTV9JVEVSKHZvaWQpDQorPz8xTE1fRU5VTV9JVEVSQEBJQUVAWFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBMTV9GSUxFOjp+TE1fRklMRSh2b2lkKQ0KKz8/MUxNX0ZJTEVAQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExNX0ZJTEVfMjo6fkxNX0ZJTEVfMih2b2lkKQ0KKz8/MUxNX0ZJTEVfMkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTE1fUkVTVU1FX0JVRkZFUjo6fkxNX1JFU1VNRV9CVUZGRVIodm9pZCkNCis/PzFMTV9SRVNVTUVfQlVGRkVSQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMTV9SRVNVTUVfRU5VTTo6fkxNX1JFU1VNRV9FTlVNKHZvaWQpDQorPz8xTE1fUkVTVU1FX0VOVU1AQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIExNX1JFU1VNRV9FTlVNX0lURVI6On5MTV9SRVNVTUVfRU5VTV9JVEVSKHZvaWQpDQorPz8xTE1fUkVTVU1FX0VOVU1fSVRFUkBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTE1fU0VSVklDRTo6fkxNX1NFUlZJQ0Uodm9pZCkNCis/PzFMTV9TRVJWSUNFQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMTV9TRVNTSU9OOjp+TE1fU0VTU0lPTih2b2lkKQ0KKz8/MUxNX1NFU1NJT05AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExNX1NFU1NJT05fMDo6fkxNX1NFU1NJT05fMCh2b2lkKQ0KKz8/MUxNX1NFU1NJT05fMEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTE1fU0VTU0lPTl8xMDo6fkxNX1NFU1NJT05fMTAodm9pZCkNCis/PzFMTV9TRVNTSU9OXzEwQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMTV9TRVNTSU9OXzE6On5MTV9TRVNTSU9OXzEodm9pZCkNCis/PzFMTV9TRVNTSU9OXzFAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExNX1NSVlJFUzo6fkxNX1NSVlJFUyh2b2lkKQ0KKz8/MUxNX1NSVlJFU0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTE9DQUxfVVNFUjo6fkxPQ0FMX1VTRVIodm9pZCkNCis/PzFMT0NBTF9VU0VSQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMT0NBVElPTjo6fkxPQ0FUSU9OKHZvaWQpDQorPz8xTE9DQVRJT05AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExPQ19MTV9FTlVNOjp+TE9DX0xNX0VOVU0odm9pZCkNCis/PzFMT0NfTE1fRU5VTUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTE9DX0xNX09CSjo6fkxPQ19MTV9PQkoodm9pZCkNCis/PzFMT0NfTE1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMT0NfTE1fUkVTVU1FX0VOVU06On5MT0NfTE1fUkVTVU1FX0VOVU0odm9pZCkNCis/PzFMT0NfTE1fUkVTVU1FX0VOVU1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExTQV9BQ0NPVU5UOjp+TFNBX0FDQ09VTlQodm9pZCkNCis/PzFMU0FfQUNDT1VOVEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTFNBX0FDQ09VTlRTX0VOVU1fT0JKOjp+TFNBX0FDQ09VTlRTX0VOVU1fT0JKKHZvaWQpDQorPz8xTFNBX0FDQ09VTlRTX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMU0FfQUNDT1VOVF9QUklWSUxFR0VfRU5VTV9JVEVSOjp+TFNBX0FDQ09VTlRfUFJJVklMRUdFX0VOVU1fSVRFUih2b2lkKQ0KKz8/MUxTQV9BQ0NPVU5UX1BSSVZJTEVHRV9FTlVNX0lURVJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExTQV9BQ0NUX0RPTV9JTkZPX01FTTo6fkxTQV9BQ0NUX0RPTV9JTkZPX01FTSh2b2lkKQ0KKz8/MUxTQV9BQ0NUX0RPTV9JTkZPX01FTUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTFNBX0FVRElUX0VWRU5UX0lORk9fTUVNOjp+TFNBX0FVRElUX0VWRU5UX0lORk9fTUVNKHZvaWQpDQorPz8xTFNBX0FVRElUX0VWRU5UX0lORk9fTUVNQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMU0FfRE9NQUlOX0lORk86On5MU0FfRE9NQUlOX0lORk8odm9pZCkNCis/PzFMU0FfRE9NQUlOX0lORk9AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExTQV9FTlVNOjp+TFNBX0VOVU0odm9pZCkNCis/PzFMU0FfRU5VTUBAUUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTFNBX01FTU9SWTo6fkxTQV9NRU1PUlkodm9pZCkNCis/PzFMU0FfTUVNT1JZQEBJQUVAWFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBMU0FfT0JKRUNUOjp+TFNBX09CSkVDVCh2b2lkKQ0KKz8/MUxTQV9PQkpFQ1RAQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExTQV9QT0xJQ1k6On5MU0FfUE9MSUNZKHZvaWQpDQorPz8xTFNBX1BPTElDWUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTFNBX1BSSU1BUllfRE9NX0lORk9fTUVNOjp+TFNBX1BSSU1BUllfRE9NX0lORk9fTUVNKHZvaWQpDQorPz8xTFNBX1BSSU1BUllfRE9NX0lORk9fTUVNQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMU0FfUFJJVklMRUdFU19FTlVNX09CSjo6fkxTQV9QUklWSUxFR0VTX0VOVU1fT0JKKHZvaWQpDQorPz8xTFNBX1BSSVZJTEVHRVNfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExTQV9SRUZfRE9NQUlOX01FTTo6fkxTQV9SRUZfRE9NQUlOX01FTSh2b2lkKQ0KKz8/MUxTQV9SRUZfRE9NQUlOX01FTUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTFNBX1NFQ1JFVDo6fkxTQV9TRUNSRVQodm9pZCkNCis/PzFMU0FfU0VDUkVUQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMU0FfU0VSVkVSX1JPTEVfSU5GT19NRU06On5MU0FfU0VSVkVSX1JPTEVfSU5GT19NRU0odm9pZCkNCis/PzFMU0FfU0VSVkVSX1JPTEVfSU5GT19NRU1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExTQV9UUkFOU0xBVEVEX05BTUVfTUVNOjp+TFNBX1RSQU5TTEFURURfTkFNRV9NRU0odm9pZCkNCis/PzFMU0FfVFJBTlNMQVRFRF9OQU1FX01FTUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTFNBX1RSQU5TTEFURURfU0lEX01FTTo6fkxTQV9UUkFOU0xBVEVEX1NJRF9NRU0odm9pZCkNCis/PzFMU0FfVFJBTlNMQVRFRF9TSURfTUVNQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMU0FfVFJVU1RFRF9EQ19MSVNUOjp+TFNBX1RSVVNURURfRENfTElTVCh2b2lkKQ0KKz8/MUxTQV9UUlVTVEVEX0RDX0xJU1RAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExTQV9UUlVTVEVEX0RPTUFJTjo6fkxTQV9UUlVTVEVEX0RPTUFJTih2b2lkKQ0KKz8/MUxTQV9UUlVTVEVEX0RPTUFJTkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTFNBX1RSVVNUX0lORk9fTUVNOjp+TFNBX1RSVVNUX0lORk9fTUVNKHZvaWQpDQorPz8xTFNBX1RSVVNUX0lORk9fTUVNQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNRU1CRVJTSElQX0xNX09CSjo6fk1FTUJFUlNISVBfTE1fT0JKKHZvaWQpDQorPz8xTUVNQkVSU0hJUF9MTV9PQkpAQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIE5FVF9BQ0NFU1M6On5ORVRfQUNDRVNTKHZvaWQpDQorPz8xTkVUX0FDQ0VTU0BASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTkVUX0FDQ0VTU18xOjp+TkVUX0FDQ0VTU18xKHZvaWQpDQorPz8xTkVUX0FDQ0VTU18xQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBORVRfTkFNRTo6fk5FVF9OQU1FKHZvaWQpDQorPz8xTkVUX05BTUVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE5FV19MTV9PQko6On5ORVdfTE1fT0JKKHZvaWQpDQorPz8xTkVXX0xNX09CSkBAUUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTlRfQUNDT1VOVF9FTlVNOjp+TlRfQUNDT1VOVF9FTlVNKHZvaWQpDQorPz8xTlRfQUNDT1VOVF9FTlVNQEBJQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOVF9HUk9VUF9FTlVNOjp+TlRfR1JPVVBfRU5VTSh2b2lkKQ0KKz8/MU5UX0dST1VQX0VOVU1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE5UX0dST1VQX0VOVU1fT0JKOjp+TlRfR1JPVVBfRU5VTV9PQkoodm9pZCkNCis/PzFOVF9HUk9VUF9FTlVNX09CSkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTlRfTUFDSElORV9FTlVNOjp+TlRfTUFDSElORV9FTlVNKHZvaWQpDQorPz8xTlRfTUFDSElORV9FTlVNQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOVF9NQUNISU5FX0VOVU1fSVRFUjo6fk5UX01BQ0hJTkVfRU5VTV9JVEVSKHZvaWQpDQorPz8xTlRfTUFDSElORV9FTlVNX0lURVJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE5UX01BQ0hJTkVfRU5VTV9PQko6On5OVF9NQUNISU5FX0VOVU1fT0JKKHZvaWQpDQorPz8xTlRfTUFDSElORV9FTlVNX09CSkBAUUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTlRfTUVNT1JZOjp+TlRfTUVNT1JZKHZvaWQpDQorPz8xTlRfTUVNT1JZQEBJQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOVF9VU0VSX0VOVU06On5OVF9VU0VSX0VOVU0odm9pZCkNCis/PzFOVF9VU0VSX0VOVU1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE5UX1VTRVJfRU5VTV9PQko6On5OVF9VU0VSX0VOVU1fT0JKKHZvaWQpDQorPz8xTlRfVVNFUl9FTlVNX09CSkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgT1NfQUNFOjp+T1NfQUNFKHZvaWQpDQorPz8xT1NfQUNFQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBPU19BQ0w6On5PU19BQ0wodm9pZCkNCis/PzFPU19BQ0xAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE9TX0FDTF9TVUJKRUNUX0lURVI6On5PU19BQ0xfU1VCSkVDVF9JVEVSKHZvaWQpDQorPz8xT1NfQUNMX1NVQkpFQ1RfSVRFUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgT1NfREFDTF9TVUJKRUNUX0lURVI6On5PU19EQUNMX1NVQkpFQ1RfSVRFUih2b2lkKQ0KKz8/MU9TX0RBQ0xfU1VCSkVDVF9JVEVSQEBRQUVAWFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBPU19PQkpFQ1RfV0lUSF9EQVRBOjp+T1NfT0JKRUNUX1dJVEhfREFUQSh2b2lkKQ0KKz8/MU9TX09CSkVDVF9XSVRIX0RBVEFAQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE9TX1BSSVZJTEVHRV9TRVQ6On5PU19QUklWSUxFR0VfU0VUKHZvaWQpDQorPz8xT1NfUFJJVklMRUdFX1NFVEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgT1NfU0FDTF9TVUJKRUNUX0lURVI6On5PU19TQUNMX1NVQkpFQ1RfSVRFUih2b2lkKQ0KKz8/MU9TX1NBQ0xfU1VCSkVDVF9JVEVSQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBPU19TRUNVUklUWV9ERVNDUklQVE9SOjp+T1NfU0VDVVJJVFlfREVTQ1JJUFRPUih2b2lkKQ0KKz8/MU9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE9TX1NJRDo6fk9TX1NJRCh2b2lkKQ0KKz8/MU9TX1NJREBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUkVHX1ZBTFVFX0lORk9fU1RSVUNUOjp+UkVHX1ZBTFVFX0lORk9fU1RSVUNUKHZvaWQpDQorPz8xUkVHX1ZBTFVFX0lORk9fU1RSVUNUQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTQU1fQUxJQVM6On5TQU1fQUxJQVModm9pZCkNCis/PzFTQU1fQUxJQVNAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNBTV9ET01BSU46On5TQU1fRE9NQUlOKHZvaWQpDQorPz8xU0FNX0RPTUFJTkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0FNX0dST1VQOjp+U0FNX0dST1VQKHZvaWQpDQorPz8xU0FNX0dST1VQQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTQU1fTUVNT1JZOjp+U0FNX01FTU9SWSh2b2lkKQ0KKz8/MVNBTV9NRU1PUllAQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIFNBTV9PQkpFQ1Q6On5TQU1fT0JKRUNUKHZvaWQpDQorPz8xU0FNX09CSkVDVEBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0FNX1BTV0RfRE9NX0lORk9fTUVNOjp+U0FNX1BTV0RfRE9NX0lORk9fTUVNKHZvaWQpDQorPz8xU0FNX1BTV0RfRE9NX0lORk9fTUVNQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTQU1fUklEX0VOVU1FUkFUSU9OX01FTTo6flNBTV9SSURfRU5VTUVSQVRJT05fTUVNKHZvaWQpDQorPz8xU0FNX1JJRF9FTlVNRVJBVElPTl9NRU1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNBTV9SSURfTUVNOjp+U0FNX1JJRF9NRU0odm9pZCkNCis/PzFTQU1fUklEX01FTUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0FNX1NFUlZFUjo6flNBTV9TRVJWRVIodm9pZCkNCis/PzFTQU1fU0VSVkVSQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTQU1fU0lEX01FTTo6flNBTV9TSURfTUVNKHZvaWQpDQorPz8xU0FNX1NJRF9NRU1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNBTV9TSURfTkFNRV9VU0VfTUVNOjp+U0FNX1NJRF9OQU1FX1VTRV9NRU0odm9pZCkNCis/PzFTQU1fU0lEX05BTUVfVVNFX01FTUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0FNX1VTRVI6On5TQU1fVVNFUih2b2lkKQ0KKz8/MVNBTV9VU0VSQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTQU1fVVNFUl9FTlVNOjp+U0FNX1VTRVJfRU5VTSh2b2lkKQ0KKz8/MVNBTV9VU0VSX0VOVU1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNBTV9VU0VSX0VOVU1fSVRFUjo6flNBTV9VU0VSX0VOVU1fSVRFUih2b2lkKQ0KKz8/MVNBTV9VU0VSX0VOVU1fSVRFUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0FNX1VTRVJfRU5VTV9PQko6On5TQU1fVVNFUl9FTlVNX09CSih2b2lkKQ0KKz8/MVNBTV9VU0VSX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTQ19NQU5BR0VSOjp+U0NfTUFOQUdFUih2b2lkKQ0KKz8/MVNDX01BTkFHRVJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNDX1NFUlZJQ0U6On5TQ19TRVJWSUNFKHZvaWQpDQorPz8xU0NfU0VSVklDRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0VSVkVSMV9FTlVNOjp+U0VSVkVSMV9FTlVNKHZvaWQpDQorPz8xU0VSVkVSMV9FTlVNQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTRVJWRVIxX0VOVU1fSVRFUjo6flNFUlZFUjFfRU5VTV9JVEVSKHZvaWQpDQorPz8xU0VSVkVSMV9FTlVNX0lURVJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNFUlZFUjFfRU5VTV9PQko6On5TRVJWRVIxX0VOVU1fT0JKKHZvaWQpDQorPz8xU0VSVkVSMV9FTlVNX09CSkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0VSVkVSXzA6On5TRVJWRVJfMCh2b2lkKQ0KKz8/MVNFUlZFUl8wQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTRVJWRVJfMTo6flNFUlZFUl8xKHZvaWQpDQorPz8xU0VSVkVSXzFAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNFUlZFUl8yOjp+U0VSVkVSXzIodm9pZCkNCis/PzFTRVJWRVJfMkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0VSVkVSX0VOVU06On5TRVJWRVJfRU5VTSh2b2lkKQ0KKz8/MVNFUlZFUl9FTlVNQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTRVJWSUNFX0NPTlRST0w6On5TRVJWSUNFX0NPTlRST0wodm9pZCkNCis/PzFTRVJWSUNFX0NPTlRST0xAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNFUlZJQ0VfRU5VTTo6flNFUlZJQ0VfRU5VTSh2b2lkKQ0KKz8/MVNFUlZJQ0VfRU5VTUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0VSVklDRV9FTlVNX09CSjo6flNFUlZJQ0VfRU5VTV9PQkoodm9pZCkNCis/PzFTRVJWSUNFX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTRVNTSU9OMF9FTlVNOjp+U0VTU0lPTjBfRU5VTSh2b2lkKQ0KKz8/MVNFU1NJT04wX0VOVU1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNFU1NJT04wX0VOVU1fSVRFUjo6flNFU1NJT04wX0VOVU1fSVRFUih2b2lkKQ0KKz8/MVNFU1NJT04wX0VOVU1fSVRFUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0VTU0lPTjBfRU5VTV9PQko6On5TRVNTSU9OMF9FTlVNX09CSih2b2lkKQ0KKz8/MVNFU1NJT04wX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTRVNTSU9OMV9FTlVNX09CSjo6flNFU1NJT04xX0VOVU1fT0JKKHZvaWQpDQorPz8xU0VTU0lPTjFfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNFU1NJT05fRU5VTTo6flNFU1NJT05fRU5VTSh2b2lkKQ0KKz8/MVNFU1NJT05fRU5VTUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0hBUkUxX0VOVU1fT0JKOjp+U0hBUkUxX0VOVU1fT0JKKHZvaWQpDQorPz8xU0hBUkUxX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTSEFSRTJfRU5VTV9PQko6On5TSEFSRTJfRU5VTV9PQkoodm9pZCkNCis/PzFTSEFSRTJfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNIQVJFOjp+U0hBUkUodm9pZCkNCis/PzFTSEFSRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0hBUkVfMTo6flNIQVJFXzEodm9pZCkNCis/PzFTSEFSRV8xQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTSEFSRV8yOjp+U0hBUkVfMih2b2lkKQ0KKz8/MVNIQVJFXzJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNIQVJFX0VOVU06On5TSEFSRV9FTlVNKHZvaWQpDQorPz8xU0hBUkVfRU5VTUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0xJU1RfT0ZfQURNSU5fQVVUSE9SSVRZOjp+U0xJU1RfT0ZfQURNSU5fQVVUSE9SSVRZKHZvaWQpDQorPz8xU0xJU1RfT0ZfQURNSU5fQVVUSE9SSVRZQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTTElTVF9PRl9BUElfU0VTU0lPTjo6flNMSVNUX09GX0FQSV9TRVNTSU9OKHZvaWQpDQorPz8xU0xJU1RfT0ZfQVBJX1NFU1NJT05AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNMSVNUX09GX0JST1dTRV9ET01BSU5fSU5GTzo6flNMSVNUX09GX0JST1dTRV9ET01BSU5fSU5GTyh2b2lkKQ0KKz8/MVNMSVNUX09GX0JST1dTRV9ET01BSU5fSU5GT0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0xJU1RfT0ZfTE1fUkVTVU1FX0JVRkZFUjo6flNMSVNUX09GX0xNX1JFU1VNRV9CVUZGRVIodm9pZCkNCis/PzFTTElTVF9PRl9MTV9SRVNVTUVfQlVGRkVSQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBUSU1FX09GX0RBWTo6flRJTUVfT0ZfREFZKHZvaWQpDQorPz8xVElNRV9PRl9EQVlAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFRSSVBMRV9TRVJWRVJfRU5VTTo6flRSSVBMRV9TRVJWRVJfRU5VTSh2b2lkKQ0KKz8/MVRSSVBMRV9TRVJWRVJfRU5VTUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVFJJUExFX1NFUlZFUl9FTlVNX09CSjo6flRSSVBMRV9TRVJWRVJfRU5VTV9PQkoodm9pZCkNCis/PzFUUklQTEVfU0VSVkVSX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBUUlVTVEVEX0RPTUFJTl9FTlVNOjp+VFJVU1RFRF9ET01BSU5fRU5VTSh2b2lkKQ0KKz8/MVRSVVNURURfRE9NQUlOX0VOVU1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFRSVVNURURfRE9NQUlOX0VOVU1fT0JKOjp+VFJVU1RFRF9ET01BSU5fRU5VTV9PQkoodm9pZCkNCis/PzFUUlVTVEVEX0RPTUFJTl9FTlVNX09CSkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNFMV9FTlVNX09CSjo6flVTRTFfRU5VTV9PQkoodm9pZCkNCis/PzFVU0UxX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVU0VSMF9FTlVNOjp+VVNFUjBfRU5VTSh2b2lkKQ0KKz8/MVVTRVIwX0VOVU1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRVIwX0VOVU1fSVRFUjo6flVTRVIwX0VOVU1fSVRFUih2b2lkKQ0KKz8/MVVTRVIwX0VOVU1fSVRFUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNFUjBfRU5VTV9PQko6On5VU0VSMF9FTlVNX09CSih2b2lkKQ0KKz8/MVVTRVIwX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVU0VSMTBfRU5VTV9PQko6On5VU0VSMTBfRU5VTV9PQkoodm9pZCkNCis/PzFVU0VSMTBfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRVIxX0VOVU1fT0JKOjp+VVNFUjFfRU5VTV9PQkoodm9pZCkNCis/PzFVU0VSMV9FTlVNX09CSkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNFUjJfRU5VTV9PQko6On5VU0VSMl9FTlVNX09CSih2b2lkKQ0KKz8/MVVTRVIyX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVU0VSOjp+VVNFUih2b2lkKQ0KKz8/MVVTRVJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRVJfMTE6On5VU0VSXzExKHZvaWQpDQorPz8xVVNFUl8xMUBAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBVU0VSXzI6On5VU0VSXzIodm9pZCkNCis/PzFVU0VSXzJAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgVVNFUl8zOjp+VVNFUl8zKHZvaWQpDQorPz8xVVNFUl8zQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVU0VSX0VOVU06On5VU0VSX0VOVU0odm9pZCkNCis/PzFVU0VSX0VOVU1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRVJfTUVNQjo6flVTRVJfTUVNQih2b2lkKQ0KKz8/MVVTRVJfTUVNQkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNFX0VOVU06On5VU0VfRU5VTSh2b2lkKQ0KKz8/MVVTRV9FTlVNQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXS1NUQV8xMDo6fldLU1RBXzEwKHZvaWQpDQorPz8xV0tTVEFfMTBAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdLU1RBXzE6On5XS1NUQV8xKHZvaWQpDQorPz8xV0tTVEFfMUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV0tTVEFfVVNFUl8xOjp+V0tTVEFfVVNFUl8xKHZvaWQpDQorPz8xV0tTVEFfVVNFUl8xQEBRQUVAWFoNCis7IHB1YmxpYzogY2xhc3MgQUxMT0NfU1RSICYgX190aGlzY2FsbCBBTExPQ19TVFI6Om9wZXJhdG9yPShjbGFzcyBBTExPQ19TVFIgY29uc3QgJikNCis/PzRBTExPQ19TVFJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBBTExPQ19TVFIgJiBfX3RoaXNjYWxsIEFMTE9DX1NUUjo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz80QUxMT0NfU1RSQEBRQUVBQVYwQFBCR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEJBU0U6Om9wZXJhdG9yISh2b2lkKWNvbnN0IA0KKz8/N0JBU0VAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPU19MVUlEOjpvcGVyYXRvcj09KGNsYXNzIE9TX0xVSUQgY29uc3QgJiljb25zdCANCis/PzhPU19MVUlEQEBRQkVIQUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPU19TSUQ6Om9wZXJhdG9yPT0oY2xhc3MgT1NfU0lEIGNvbnN0ICYpY29uc3QgDQorPz84T1NfU0lEQEBRQkVIQUJWMEBAWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1VOSUNPREVfU1RSSU5HIGNvbnN0ICYgX190aGlzY2FsbCBMU0FfVFJVU1RFRF9EQ19MSVNUOjpvcGVyYXRvcltdKGludCljb25zdCANCis/P0FMU0FfVFJVU1RFRF9EQ19MSVNUQEBRQkVBQlVfVU5JQ09ERV9TVFJJTkdAQEhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgTkxTX1NUUjo6b3BlcmF0b3JbXShjbGFzcyBJU1RSIGNvbnN0ICYpY29uc3QgDQorPz9BTkxTX1NUUkBAUUJFUEJHQUJWSVNUUkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOTFNfU1RSOjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCBjb25zdCAqKHZvaWQpY29uc3QgDQorPz9CTkxTX1NUUkBAUUJFUEJHWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBPU19BQ0w6Om9wZXJhdG9yIHN0cnVjdCBfQUNMICoodm9pZCljb25zdCANCis/P0JPU19BQ0xAQFFCRVBBVV9BQ0xAQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgT1NfU0lEOjpvcGVyYXRvciB2b2lkICoodm9pZCljb25zdCANCis/P0JPU19TSURAQFFCRVBBWFhaDQorOyBwdWJsaWM6IGNsYXNzIENIQVJERVZRMV9FTlVNX09CSiBjb25zdCAqIF9fdGhpc2NhbGwgQ0hBUkRFVlExX0VOVU1fSVRFUjo6b3BlcmF0b3IoKSh2b2lkKQ0KKz8/UkNIQVJERVZRMV9FTlVNX0lURVJAQFFBRVBCVkNIQVJERVZRMV9FTlVNX09CSkBAWFoNCis7IHB1YmxpYzogY2xhc3MgQ09OTjBfRU5VTV9PQkogY29uc3QgKiBfX3RoaXNjYWxsIENPTk4wX0VOVU1fSVRFUjo6b3BlcmF0b3IoKSh2b2lkKQ0KKz8/UkNPTk4wX0VOVU1fSVRFUkBAUUFFUEJWQ09OTjBfRU5VTV9PQkpAQFhaDQorOyBwdWJsaWM6IGNsYXNzIENPTk4xX0VOVU1fT0JKIGNvbnN0ICogX190aGlzY2FsbCBDT05OMV9FTlVNX0lURVI6Om9wZXJhdG9yKCkodm9pZCkNCis/P1JDT05OMV9FTlVNX0lURVJAQFFBRVBCVkNPTk4xX0VOVU1fT0JKQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDT05URVhUX0VOVU1fT0JKIGNvbnN0ICogX190aGlzY2FsbCBDT05URVhUX0VOVU1fSVRFUjo6b3BlcmF0b3IoKSh2b2lkKQ0KKz8/UkNPTlRFWFRfRU5VTV9JVEVSQEBRQUVQQlZDT05URVhUX0VOVU1fT0JKQEBYWg0KKzsgcHVibGljOiBjbGFzcyBET01BSU4wX0VOVU1fT0JKIGNvbnN0ICogX190aGlzY2FsbCBET01BSU4wX0VOVU1fSVRFUjo6b3BlcmF0b3IoKSh2b2lkKQ0KKz8/UkRPTUFJTjBfRU5VTV9JVEVSQEBRQUVQQlZET01BSU4wX0VOVU1fT0JKQEBYWg0KKzsgcHVibGljOiBjbGFzcyBGSUxFM19FTlVNX09CSiBjb25zdCAqIF9fdGhpc2NhbGwgRklMRTNfRU5VTV9JVEVSOjpvcGVyYXRvcigpKGxvbmcgKixpbnQpDQorPz9SRklMRTNfRU5VTV9JVEVSQEBRQUVQQlZGSUxFM19FTlVNX09CSkBAUEFKSEBaDQorOyBwdWJsaWM6IGNsYXNzIEdST1VQMF9FTlVNX09CSiBjb25zdCAqIF9fdGhpc2NhbGwgR1JPVVAwX0VOVU1fSVRFUjo6b3BlcmF0b3IoKSh2b2lkKQ0KKz8/UkdST1VQMF9FTlVNX0lURVJAQFFBRVBCVkdST1VQMF9FTlVNX09CSkBAWFoNCis7IHB1YmxpYzogY2xhc3MgR1JPVVAxX0VOVU1fT0JKIGNvbnN0ICogX190aGlzY2FsbCBHUk9VUDFfRU5VTV9JVEVSOjpvcGVyYXRvcigpKHZvaWQpDQorPz9SR1JPVVAxX0VOVU1fSVRFUkBAUUFFUEJWR1JPVVAxX0VOVU1fT0JKQEBYWg0KKzsgcHVibGljOiBjbGFzcyBPU19MVUlEX0FORF9BVFRSSUJVVEVTIGNvbnN0ICogX190aGlzY2FsbCBMU0FfQUNDT1VOVF9QUklWSUxFR0VfRU5VTV9JVEVSOjpvcGVyYXRvcigpKHZvaWQpDQorPz9STFNBX0FDQ09VTlRfUFJJVklMRUdFX0VOVU1fSVRFUkBAUUFFUEJWT1NfTFVJRF9BTkRfQVRUUklCVVRFU0BAWFoNCis7IHB1YmxpYzogY2xhc3MgTlRfTUFDSElORV9FTlVNX09CSiBjb25zdCAqIF9fdGhpc2NhbGwgTlRfTUFDSElORV9FTlVNX0lURVI6Om9wZXJhdG9yKCkobG9uZyAqLGludCkNCis/P1JOVF9NQUNISU5FX0VOVU1fSVRFUkBAUUFFUEJWTlRfTUFDSElORV9FTlVNX09CSkBAUEFKSEBaDQorOyBwdWJsaWM6IGNsYXNzIFNFUlZFUjFfRU5VTV9PQkogY29uc3QgKiBfX3RoaXNjYWxsIFNFUlZFUjFfRU5VTV9JVEVSOjpvcGVyYXRvcigpKHZvaWQpDQorPz9SU0VSVkVSMV9FTlVNX0lURVJAQFFBRVBCVlNFUlZFUjFfRU5VTV9PQkpAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFNFUlZJQ0VfRU5VTV9PQkogY29uc3QgKiBfX3RoaXNjYWxsIFNFUlZJQ0VfRU5VTV9JVEVSOjpvcGVyYXRvcigpKHZvaWQpDQorPz9SU0VSVklDRV9FTlVNX0lURVJAQFFBRVBCVlNFUlZJQ0VfRU5VTV9PQkpAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFNFU1NJT04wX0VOVU1fT0JKIGNvbnN0ICogX190aGlzY2FsbCBTRVNTSU9OMF9FTlVNX0lURVI6Om9wZXJhdG9yKCkodm9pZCkNCis/P1JTRVNTSU9OMF9FTlVNX0lURVJAQFFBRVBCVlNFU1NJT04wX0VOVU1fT0JKQEBYWg0KKzsgcHVibGljOiBjbGFzcyBTRVNTSU9OMV9FTlVNX09CSiBjb25zdCAqIF9fdGhpc2NhbGwgU0VTU0lPTjFfRU5VTV9JVEVSOjpvcGVyYXRvcigpKHZvaWQpDQorPz9SU0VTU0lPTjFfRU5VTV9JVEVSQEBRQUVQQlZTRVNTSU9OMV9FTlVNX09CSkBAWFoNCis7IHB1YmxpYzogY2xhc3MgU0hBUkUxX0VOVU1fT0JKIGNvbnN0ICogX190aGlzY2FsbCBTSEFSRTFfRU5VTV9JVEVSOjpvcGVyYXRvcigpKHZvaWQpDQorPz9SU0hBUkUxX0VOVU1fSVRFUkBAUUFFUEJWU0hBUkUxX0VOVU1fT0JKQEBYWg0KKzsgcHVibGljOiBjbGFzcyBTSEFSRTJfRU5VTV9PQkogY29uc3QgKiBfX3RoaXNjYWxsIFNIQVJFMl9FTlVNX0lURVI6Om9wZXJhdG9yKCkodm9pZCkNCis/P1JTSEFSRTJfRU5VTV9JVEVSQEBRQUVQQlZTSEFSRTJfRU5VTV9PQkpAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFRSSVBMRV9TRVJWRVJfRU5VTV9PQkogY29uc3QgKiBfX3RoaXNjYWxsIFRSSVBMRV9TRVJWRVJfRU5VTV9JVEVSOjpvcGVyYXRvcigpKHZvaWQpDQorPz9SVFJJUExFX1NFUlZFUl9FTlVNX0lURVJAQFFBRVBCVlRSSVBMRV9TRVJWRVJfRU5VTV9PQkpAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFVTRTFfRU5VTV9PQkogY29uc3QgKiBfX3RoaXNjYWxsIFVTRTFfRU5VTV9JVEVSOjpvcGVyYXRvcigpKHZvaWQpDQorPz9SVVNFMV9FTlVNX0lURVJAQFFBRVBCVlVTRTFfRU5VTV9PQkpAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFVTRVIwX0VOVU1fT0JKIGNvbnN0ICogX190aGlzY2FsbCBVU0VSMF9FTlVNX0lURVI6Om9wZXJhdG9yKCkobG9uZyAqLGludCkNCis/P1JVU0VSMF9FTlVNX0lURVJAQFFBRVBCVlVTRVIwX0VOVU1fT0JKQEBQQUpIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNMSVNUX09GX05MU19TVFI6OkFkZChjbGFzcyBOTFNfU1RSIGNvbnN0ICopDQorP0FkZEBTTElTVF9PRl9OTFNfU1RSQEBRQUVKUEJWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE9TX0FDTDo6QWRkQUNFKHVuc2lnbmVkIGxvbmcsY2xhc3MgT1NfQUNFIGNvbnN0ICYpDQorP0FkZEFDRUBPU19BQ0xAQFFBRUpLQUJWT1NfQUNFQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTUVNQkVSU0hJUF9MTV9PQko6OkFkZEFzc29jTmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9BZGRBc3NvY05hbWVATUVNQkVSU0hJUF9MTV9PQkpAQFFBRUpQQkdAWg0KKzsgcHJpdmF0ZTogc3RhdGljIGxvbmcgX19zdGRjYWxsIERPTUFJTl9XSVRIX0RDX0NBQ0hFOjpBZGREY0NhY2hlKHN0cnVjdCBfRENfQ0FDSEVfRU5UUlkgKiAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/QWRkRGNDYWNoZUBET01BSU5fV0lUSF9EQ19DQUNIRUBAQ0dKUEFQQVVfRENfQ0FDSEVfRU5UUllAQFBCRzFAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIEJST1dTRV9ET01BSU5fSU5GTzo6QWRkRG9tYWluU291cmNlKHVuc2lnbmVkIGxvbmcpDQorP0FkZERvbWFpblNvdXJjZUBCUk9XU0VfRE9NQUlOX0lORk9AQEFBRVhLQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBCUk9XU0VfRE9NQUlOX0VOVU06OkFkZERvbWFpblRvTGlzdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsaW50KQ0KKz9BZGREb21haW5Ub0xpc3RAQlJPV1NFX0RPTUFJTl9FTlVNQEBBQUVKUEJHS0hAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0FNX0FMSUFTOjpBZGRNZW1iZXIodm9pZCAqKQ0KKz9BZGRNZW1iZXJAU0FNX0FMSUFTQEBRQUVKUEFYQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNBTV9HUk9VUDo6QWRkTWVtYmVyKHVuc2lnbmVkIGxvbmcpDQorP0FkZE1lbWJlckBTQU1fR1JPVVBAQFFBRUpLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNBTV9BTElBUzo6QWRkTWVtYmVycyh2b2lkICogKix1bnNpZ25lZCBpbnQpDQorP0FkZE1lbWJlcnNAU0FNX0FMSUFTQEBRQUVKUEFQQVhJQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNBTV9HUk9VUDo6QWRkTWVtYmVycyh1bnNpZ25lZCBsb25nICosdW5zaWduZWQgaW50KQ0KKz9BZGRNZW1iZXJzQFNBTV9HUk9VUEBAUUFFSlBBS0lAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgT1NfUFJJVklMRUdFX1NFVDo6QWRkUHJpdmlsZWdlKHN0cnVjdCBfTFVJRCx1bnNpZ25lZCBsb25nKQ0KKz9BZGRQcml2aWxlZ2VAT1NfUFJJVklMRUdFX1NFVEBAUUFFSlVfTFVJREBAS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTTElTVF9PRl9BRE1JTl9BVVRIT1JJVFk6OkFwcGVuZChjbGFzcyBBRE1JTl9BVVRIT1JJVFkgY29uc3QgKikNCis/QXBwZW5kQFNMSVNUX09GX0FETUlOX0FVVEhPUklUWUBAUUFFSlBCVkFETUlOX0FVVEhPUklUWUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNMSVNUX09GX0FQSV9TRVNTSU9OOjpBcHBlbmQoY2xhc3MgQVBJX1NFU1NJT04gY29uc3QgKikNCis/QXBwZW5kQFNMSVNUX09GX0FQSV9TRVNTSU9OQEBRQUVKUEJWQVBJX1NFU1NJT05AQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTTElTVF9PRl9CUk9XU0VfRE9NQUlOX0lORk86OkFwcGVuZChjbGFzcyBCUk9XU0VfRE9NQUlOX0lORk8gY29uc3QgKikNCis/QXBwZW5kQFNMSVNUX09GX0JST1dTRV9ET01BSU5fSU5GT0BAUUFFSlBCVkJST1dTRV9ET01BSU5fSU5GT0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNMSVNUX09GX0xNX1JFU1VNRV9CVUZGRVI6OkFwcGVuZChjbGFzcyBMTV9SRVNVTUVfQlVGRkVSIGNvbnN0ICopDQorP0FwcGVuZEBTTElTVF9PRl9MTV9SRVNVTUVfQlVGRkVSQEBRQUVKUEJWTE1fUkVTVU1FX0JVRkZFUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNMSVNUX09GX05MU19TVFI6OkFwcGVuZChjbGFzcyBOTFNfU1RSIGNvbnN0ICopDQorP0FwcGVuZEBTTElTVF9PRl9OTFNfU1RSQEBRQUVKUEJWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0hBUkRFVlExX0VOVU1fSVRFUjo6QmFja3VwKHZvaWQpDQorP0JhY2t1cEBDSEFSREVWUTFfRU5VTV9JVEVSQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ09OTjBfRU5VTV9JVEVSOjpCYWNrdXAodm9pZCkNCis/QmFja3VwQENPTk4wX0VOVU1fSVRFUkBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENPTk4xX0VOVU1fSVRFUjo6QmFja3VwKHZvaWQpDQorP0JhY2t1cEBDT05OMV9FTlVNX0lURVJAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDT05URVhUX0VOVU1fSVRFUjo6QmFja3VwKHZvaWQpDQorP0JhY2t1cEBDT05URVhUX0VOVU1fSVRFUkBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIERPTUFJTjBfRU5VTV9JVEVSOjpCYWNrdXAodm9pZCkNCis/QmFja3VwQERPTUFJTjBfRU5VTV9JVEVSQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgR1JPVVAwX0VOVU1fSVRFUjo6QmFja3VwKHZvaWQpDQorP0JhY2t1cEBHUk9VUDBfRU5VTV9JVEVSQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgR1JPVVAxX0VOVU1fSVRFUjo6QmFja3VwKHZvaWQpDQorP0JhY2t1cEBHUk9VUDFfRU5VTV9JVEVSQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU0VSVkVSMV9FTlVNX0lURVI6OkJhY2t1cCh2b2lkKQ0KKz9CYWNrdXBAU0VSVkVSMV9FTlVNX0lURVJAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTRVJWSUNFX0VOVU1fSVRFUjo6QmFja3VwKHZvaWQpDQorP0JhY2t1cEBTRVJWSUNFX0VOVU1fSVRFUkBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNFU1NJT04wX0VOVU1fSVRFUjo6QmFja3VwKHZvaWQpDQorP0JhY2t1cEBTRVNTSU9OMF9FTlVNX0lURVJAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTRVNTSU9OMV9FTlVNX0lURVI6OkJhY2t1cCh2b2lkKQ0KKz9CYWNrdXBAU0VTU0lPTjFfRU5VTV9JVEVSQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU0hBUkUxX0VOVU1fSVRFUjo6QmFja3VwKHZvaWQpDQorP0JhY2t1cEBTSEFSRTFfRU5VTV9JVEVSQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU0hBUkUyX0VOVU1fSVRFUjo6QmFja3VwKHZvaWQpDQorP0JhY2t1cEBTSEFSRTJfRU5VTV9JVEVSQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgVFJJUExFX1NFUlZFUl9FTlVNX0lURVI6OkJhY2t1cCh2b2lkKQ0KKz9CYWNrdXBAVFJJUExFX1NFUlZFUl9FTlVNX0lURVJAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBVU0UxX0VOVU1fSVRFUjo6QmFja3VwKHZvaWQpDQorP0JhY2t1cEBVU0UxX0VOVU1fSVRFUkBAUUFFSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBOVF9BQ0NPVU5UU19VVElMSVRZOjpCdWlsZEFuZENvcHlTeXNTaWQoY2xhc3MgT1NfU0lEICosc3RydWN0IF9TSURfSURFTlRJRklFUl9BVVRIT1JJVFkgKix1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/QnVpbGRBbmRDb3B5U3lzU2lkQE5UX0FDQ09VTlRTX1VUSUxJVFlAQFNHSlBBVk9TX1NJREBAUEFVX1NJRF9JREVOVElGSUVSX0FVVEhPUklUWUBARUtLS0tLS0tLQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIE5UX0FDQ09VTlRTX1VUSUxJVFk6OkJ1aWxkUXVhbGlmaWVkQWNjb3VudE5hbWUoY2xhc3MgTkxTX1NUUiAqLGNsYXNzIE5MU19TVFIgY29uc3QgJixjbGFzcyBOTFNfU1RSIGNvbnN0ICYsY2xhc3MgTkxTX1NUUiBjb25zdCAqLGNsYXNzIE5MU19TVFIgY29uc3QgKixlbnVtIF9TSURfTkFNRV9VU0UpDQorP0J1aWxkUXVhbGlmaWVkQWNjb3VudE5hbWVATlRfQUNDT1VOVFNfVVRJTElUWUBAU0dKUEFWTkxTX1NUUkBAQUJWMkAxUEJWMkAyVzRfU0lEX05BTUVfVVNFQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgTlRfQUNDT1VOVFNfVVRJTElUWTo6QnVpbGRRdWFsaWZpZWRBY2NvdW50TmFtZShjbGFzcyBOTFNfU1RSICosY2xhc3MgTkxTX1NUUiBjb25zdCAmLHZvaWQgKixjbGFzcyBOTFNfU1RSIGNvbnN0ICYsY2xhc3MgTkxTX1NUUiBjb25zdCAqLHZvaWQgKixlbnVtIF9TSURfTkFNRV9VU0UpDQorP0J1aWxkUXVhbGlmaWVkQWNjb3VudE5hbWVATlRfQUNDT1VOVFNfVVRJTElUWUBAU0dKUEFWTkxTX1NUUkBAQUJWMkBQQVgxUEJWMkAyVzRfU0lEX05BTUVfVVNFQEBAWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQUxJQVNfRU5VTTo6Q2FsbEFQSShpbnQsdW5zaWduZWQgY2hhciAqICosdW5zaWduZWQgaW50ICopDQorP0NhbGxBUElAQUxJQVNfRU5VTUBARUFFSkhQQVBBRVBBSUBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDSEFSREVWUV9FTlVNOjpDYWxsQVBJKHVuc2lnbmVkIGNoYXIgKiAqLHVuc2lnbmVkIGludCAqKQ0KKz9DYWxsQVBJQENIQVJERVZRX0VOVU1AQEVBRUpQQVBBRVBBSUBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDT05OX0VOVU06OkNhbGxBUEkodW5zaWduZWQgY2hhciAqICosdW5zaWduZWQgaW50ICopDQorP0NhbGxBUElAQ09OTl9FTlVNQEBFQUVKUEFQQUVQQUlAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDT05URVhUX0VOVU06OkNhbGxBUEkodW5zaWduZWQgY2hhciAqICosdW5zaWduZWQgaW50ICopDQorP0NhbGxBUElAQ09OVEVYVF9FTlVNQEBNQUVKUEFQQUVQQUlAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBERVZJQ0UyOjpDYWxsQVBJKHZvaWQpDQorP0NhbGxBUElAREVWSUNFMkBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIERFVklDRTo6Q2FsbEFQSSh2b2lkKQ0KKz9DYWxsQVBJQERFVklDRUBATUFFSlhaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBET01BSU5fRU5VTTo6Q2FsbEFQSSh1bnNpZ25lZCBjaGFyICogKix1bnNpZ25lZCBpbnQgKikNCis/Q2FsbEFQSUBET01BSU5fRU5VTUBARUFFSlBBUEFFUEFJQFoNCis7IHByaXZhdGU6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIEZJTEVfRU5VTTo6Q2FsbEFQSShpbnQsdW5zaWduZWQgY2hhciAqICosdW5zaWduZWQgaW50ICopDQorP0NhbGxBUElARklMRV9FTlVNQEBFQUVKSFBBUEFFUEFJQFoNCis7IHByaXZhdGU6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIEdST1VQX0VOVU06OkNhbGxBUEkodW5zaWduZWQgY2hhciAqICosdW5zaWduZWQgaW50ICopDQorP0NhbGxBUElAR1JPVVBfRU5VTUBARUFFSlBBUEFFUEFJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgR1JPVVBfTUVNQjo6Q2FsbEFQSSh1bnNpZ25lZCBjaGFyICogKix1bnNpZ25lZCBpbnQgKikNCis/Q2FsbEFQSUBHUk9VUF9NRU1CQEBNQUVKUEFQQUVQQUlAWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgTFNBX0FDQ09VTlRTX0VOVU06OkNhbGxBUEkoaW50LHVuc2lnbmVkIGNoYXIgKiAqLHVuc2lnbmVkIGludCAqKQ0KKz9DYWxsQVBJQExTQV9BQ0NPVU5UU19FTlVNQEBFQUVKSFBBUEFFUEFJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgTFNBX1BSSVZJTEVHRVNfRU5VTTo6Q2FsbEFQSShpbnQsdW5zaWduZWQgY2hhciAqICosdW5zaWduZWQgaW50ICopDQorP0NhbGxBUElATFNBX1BSSVZJTEVHRVNfRU5VTUBATUFFSkhQQVBBRVBBSUBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBOVF9BQ0NPVU5UX0VOVU06OkNhbGxBUEkoaW50LHVuc2lnbmVkIGNoYXIgKiAqLHVuc2lnbmVkIGludCAqKQ0KKz9DYWxsQVBJQE5UX0FDQ09VTlRfRU5VTUBARUFFSkhQQVBBRVBBSUBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBTQU1fVVNFUl9FTlVNOjpDYWxsQVBJKGludCx1bnNpZ25lZCBjaGFyICogKix1bnNpZ25lZCBpbnQgKikNCis/Q2FsbEFQSUBTQU1fVVNFUl9FTlVNQEBFQUVKSFBBUEFFUEFJQFoNCis7IHByaXZhdGU6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFNFUlZFUl9FTlVNOjpDYWxsQVBJKHVuc2lnbmVkIGNoYXIgKiAqLHVuc2lnbmVkIGludCAqKQ0KKz9DYWxsQVBJQFNFUlZFUl9FTlVNQEBFQUVKUEFQQUVQQUlAWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgU0VSVklDRV9FTlVNOjpDYWxsQVBJKHVuc2lnbmVkIGNoYXIgKiAqLHVuc2lnbmVkIGludCAqKQ0KKz9DYWxsQVBJQFNFUlZJQ0VfRU5VTUBARUFFSlBBUEFFUEFJQFoNCis7IHByaXZhdGU6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFNFU1NJT05fRU5VTTo6Q2FsbEFQSSh1bnNpZ25lZCBjaGFyICogKix1bnNpZ25lZCBpbnQgKikNCis/Q2FsbEFQSUBTRVNTSU9OX0VOVU1AQEVBRUpQQVBBRVBBSUBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBTSEFSRV9FTlVNOjpDYWxsQVBJKHVuc2lnbmVkIGNoYXIgKiAqLHVuc2lnbmVkIGludCAqKQ0KKz9DYWxsQVBJQFNIQVJFX0VOVU1AQEVBRUpQQVBBRVBBSUBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBUUklQTEVfU0VSVkVSX0VOVU06OkNhbGxBUEkodW5zaWduZWQgY2hhciAqICosdW5zaWduZWQgaW50ICopDQorP0NhbGxBUElAVFJJUExFX1NFUlZFUl9FTlVNQEBFQUVKUEFQQUVQQUlAWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgVFJVU1RFRF9ET01BSU5fRU5VTTo6Q2FsbEFQSShpbnQsdW5zaWduZWQgY2hhciAqICosdW5zaWduZWQgaW50ICopDQorP0NhbGxBUElAVFJVU1RFRF9ET01BSU5fRU5VTUBARUFFSkhQQVBBRVBBSUBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBVU0VSX0VOVU06OkNhbGxBUEkoaW50LHVuc2lnbmVkIGNoYXIgKiAqLHVuc2lnbmVkIGludCAqKQ0KKz9DYWxsQVBJQFVTRVJfRU5VTUBARUFFSkhQQVBBRVBBSUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFVTRVJfTUVNQjo6Q2FsbEFQSSh1bnNpZ25lZCBjaGFyICogKix1bnNpZ25lZCBpbnQgKikNCis/Q2FsbEFQSUBVU0VSX01FTUJAQE1BRUpQQVBBRVBBSUBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBVU0VfRU5VTTo6Q2FsbEFQSSh1bnNpZ25lZCBjaGFyICogKix1bnNpZ25lZCBpbnQgKikNCis/Q2FsbEFQSUBVU0VfRU5VTUBARUFFSlBBUEFFUEFJQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNDX1NFUlZJQ0U6OkNoYW5nZUNvbmZpZyh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/Q2hhbmdlQ29uZmlnQFNDX1NFUlZJQ0VAQFFBRUpJSUlQQkcwMDAwMEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBORVdfTE1fT0JKOjpDaGFuZ2VUb05ldyh2b2lkKQ0KKz9DaGFuZ2VUb05ld0BORVdfTE1fT0JKQEBRQUVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExPQ0FUSU9OOjpDaGVja0lmTlQoaW50ICopDQorP0NoZWNrSWZOVEBMT0NBVElPTkBAUUFFSlBBSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMT0NBVElPTjo6Q2hlY2tJZk5UKGludCAqLGVudW0gTE9DQVRJT05fTlRfVFlQRSAqKQ0KKz9DaGVja0lmTlRATE9DQVRJT05AQFFBRUpQQUhQQVc0TE9DQVRJT05fTlRfVFlQRUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExTQV9QT0xJQ1k6OkNoZWNrSWZTaHV0RG93bk9uRnVsbChpbnQgKikNCis/Q2hlY2tJZlNodXREb3duT25GdWxsQExTQV9QT0xJQ1lAQFFBRUpQQUhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgTFNBX1BPTElDWTo6Q2xlYW51cFVuaXN0ckFycmF5KHN0cnVjdCBfVU5JQ09ERV9TVFJJTkcgKix1bnNpZ25lZCBsb25nKQ0KKz9DbGVhbnVwVW5pc3RyQXJyYXlATFNBX1BPTElDWUBASUFFWFBBVV9VTklDT0RFX1NUUklOR0BAS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBPU19QUklWSUxFR0VfU0VUOjpDbGVhcih2b2lkKQ0KKz9DbGVhckBPU19QUklWSUxFR0VfU0VUQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNMSVNUX09GX0FETUlOX0FVVEhPUklUWTo6Q2xlYXIodm9pZCkNCis/Q2xlYXJAU0xJU1RfT0ZfQURNSU5fQVVUSE9SSVRZQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNMSVNUX09GX0FQSV9TRVNTSU9OOjpDbGVhcih2b2lkKQ0KKz9DbGVhckBTTElTVF9PRl9BUElfU0VTU0lPTkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBTTElTVF9PRl9CUk9XU0VfRE9NQUlOX0lORk86OkNsZWFyKHZvaWQpDQorP0NsZWFyQFNMSVNUX09GX0JST1dTRV9ET01BSU5fSU5GT0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBTTElTVF9PRl9MTV9SRVNVTUVfQlVGRkVSOjpDbGVhcih2b2lkKQ0KKz9DbGVhckBTTElTVF9PRl9MTV9SRVNVTUVfQlVGRkVSQEBRQUVYWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIE5FV19MTV9PQko6OkNsZWFyQnVmZmVyKHZvaWQpDQorP0NsZWFyQnVmZmVyQE5FV19MTV9PQkpAQElBRUpYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGxvbmcgX19zdGRjYWxsIERPTUFJTl9XSVRIX0RDX0NBQ0hFOjpDbGVhckRjQ2FjaGUoc3RydWN0IF9EQ19DQUNIRV9FTlRSWSAqKQ0KKz9DbGVhckRjQ2FjaGVARE9NQUlOX1dJVEhfRENfQ0FDSEVAQENHSlBBVV9EQ19DQUNIRV9FTlRSWUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5FVF9BQ0NFU1NfMTo6Q2xlYXJQZXJtcyh2b2lkKQ0KKz9DbGVhclBlcm1zQE5FVF9BQ0NFU1NfMUBAUUFFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBHUk9VUF8xOjpDbG9uZUZyb20oY2xhc3MgR1JPVVBfMSBjb25zdCAmKQ0KKz9DbG9uZUZyb21AR1JPVVBfMUBAUUFFSkFCVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEdST1VQX01FTUI6OkNsb25lRnJvbShjbGFzcyBHUk9VUF9NRU1CIGNvbnN0ICYpDQorP0Nsb25lRnJvbUBHUk9VUF9NRU1CQEBRQUVKQUJWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0hBUkVfMTo6Q2xvbmVGcm9tKGNsYXNzIFNIQVJFXzEgY29uc3QgJikNCis/Q2xvbmVGcm9tQFNIQVJFXzFAQFFBRUpBQlYxQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTSEFSRV8yOjpDbG9uZUZyb20oY2xhc3MgU0hBUkVfMiBjb25zdCAmKQ0KKz9DbG9uZUZyb21AU0hBUkVfMkBAUUFFSkFCVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFVTRVJfMjo6Q2xvbmVGcm9tKGNsYXNzIFVTRVJfMiBjb25zdCAmKQ0KKz9DbG9uZUZyb21AVVNFUl8yQEBRQUVKQUJWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVVNFUl8zOjpDbG9uZUZyb20oY2xhc3MgVVNFUl8zIGNvbnN0ICYpDQorP0Nsb25lRnJvbUBVU0VSXzNAQFFBRUpBQlYxQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBVU0VSX01FTUI6OkNsb25lRnJvbShjbGFzcyBVU0VSX01FTUIgY29uc3QgJikNCis/Q2xvbmVGcm9tQFVTRVJfTUVNQkBAUUFFSkFCVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNFUlZJQ0VfQ09OVFJPTDo6Q2xvc2Uodm9pZCkNCis/Q2xvc2VAU0VSVklDRV9DT05UUk9MQEBRQUVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExNX0ZJTEU6OkNsb3NlRmlsZSh2b2lkKQ0KKz9DbG9zZUZpbGVATE1fRklMRUBAUUFFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfT0JKRUNUOjpDbG9zZUhhbmRsZShpbnQpDQorP0Nsb3NlSGFuZGxlQExTQV9PQkpFQ1RAQFFBRUpIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNBTV9PQkpFQ1Q6OkNsb3NlSGFuZGxlKHZvaWQpDQorP0Nsb3NlSGFuZGxlQFNBTV9PQkpFQ1RAQFFBRUpYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIFRSSVBMRV9TRVJWRVJfRU5VTTo6Q29tYmluZUludG9UcmlwbGUoc3RydWN0IF9TRVJWRVJfSU5GT18xMDEgY29uc3QgKixzdHJ1Y3QgX0tOT1dOX1NFUlZFUl9JTkZPIGNvbnN0ICosc3RydWN0IF9UUklQTEVfU0VSVkVSX0lORk8gKikNCis/Q29tYmluZUludG9UcmlwbGVAVFJJUExFX1NFUlZFUl9FTlVNQEBBQUVYUEJVX1NFUlZFUl9JTkZPXzEwMUBAUEJVX0tOT1dOX1NFUlZFUl9JTkZPQEBQQVVfVFJJUExFX1NFUlZFUl9JTkZPQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgT1NfQUNMX1NVQkpFQ1RfSVRFUjo6Q29tcGFyZShpbnQgKixjbGFzcyBPU19BQ0xfU1VCSkVDVF9JVEVSICopDQorP0NvbXBhcmVAT1NfQUNMX1NVQkpFQ1RfSVRFUkBAUUFFSlBBSFBBVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6OkNvbXBhcmUoY2xhc3MgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUiAqLGludCAqLGludCAqLGludCAqLGludCAqLHN0cnVjdCBfR0VORVJJQ19NQVBQSU5HICosc3RydWN0IF9HRU5FUklDX01BUFBJTkcgKixpbnQsaW50KQ0KKz9Db21wYXJlQE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JAQFFBRUpQQVYxQFBBSDExMVBBVV9HRU5FUklDX01BUFBJTkdAQDJISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE5FVF9BQ0NFU1NfMTo6Q29tcGFyZUFDTChjbGFzcyBORVRfQUNDRVNTXzEgKikNCis/Q29tcGFyZUFDTEBORVRfQUNDRVNTXzFAQFFBRUhQQVYxQEBaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50IF9fY2RlY2wgVFJJUExFX1NFUlZFUl9FTlVNOjpDb21wYXJlQnJvd3NlclNlcnZlcnModm9pZCBjb25zdCAqLHZvaWQgY29uc3QgKikNCis/Q29tcGFyZUJyb3dzZXJTZXJ2ZXJzQFRSSVBMRV9TRVJWRVJfRU5VTUBAQ0FIUEJYMEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgT1NfREFDTF9TVUJKRUNUX0lURVI6OkNvbXBhcmVDdXJyZW50U3ViamVjdChjbGFzcyBPU19BQ0xfU1VCSkVDVF9JVEVSICopDQorP0NvbXBhcmVDdXJyZW50U3ViamVjdEBPU19EQUNMX1NVQkpFQ1RfSVRFUkBAVUFFSFBBVk9TX0FDTF9TVUJKRUNUX0lURVJAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgT1NfU0FDTF9TVUJKRUNUX0lURVI6OkNvbXBhcmVDdXJyZW50U3ViamVjdChjbGFzcyBPU19BQ0xfU1VCSkVDVF9JVEVSICopDQorP0NvbXBhcmVDdXJyZW50U3ViamVjdEBPU19TQUNMX1NVQkpFQ1RfSVRFUkBAVUFFSFBBVk9TX0FDTF9TVUJKRUNUX0lURVJAQEBaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50IF9fY2RlY2wgRE9NQUlOMF9FTlVNOjpDb21wYXJlRG9tYWluczAodm9pZCBjb25zdCAqLHZvaWQgY29uc3QgKikNCis/Q29tcGFyZURvbWFpbnMwQERPTUFJTjBfRU5VTUBAQ0FIUEJYMEBaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50IF9fY2RlY2wgVFJJUExFX1NFUlZFUl9FTlVNOjpDb21wYXJlTG1TZXJ2ZXJzKHZvaWQgY29uc3QgKix2b2lkIGNvbnN0ICopDQorP0NvbXBhcmVMbVNlcnZlcnNAVFJJUExFX1NFUlZFUl9FTlVNQEBDQUhQQlgwQFoNCis7IHByaXZhdGU6IHN0YXRpYyBpbnQgX19jZGVjbCBUUklQTEVfU0VSVkVSX0VOVU06OkNvbXBhcmVOdFNlcnZlcnModm9pZCBjb25zdCAqLHZvaWQgY29uc3QgKikNCis/Q29tcGFyZU50U2VydmVyc0BUUklQTEVfU0VSVkVSX0VOVU1AQENBSFBCWDBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgREVWSUNFMjo6Q29ubmVjdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0Nvbm5lY3RAREVWSUNFMkBAUUFFSlBCRzAwMEtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgREVWSUNFOjpDb25uZWN0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/Q29ubmVjdEBERVZJQ0VAQFFBRUpQQkcwQFoNCis7IGxvbmcgX19zdGRjYWxsIENvbm5lY3RUb051bGxTZXNzaW9uKGNsYXNzIE5MU19TVFIgY29uc3QgJikNCis/Q29ubmVjdFRvTnVsbFNlc3Npb25AQFlHSkFCVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMTV9TRVJWSUNFOjpDb250aW51ZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz9Db250aW51ZUBMTV9TRVJWSUNFQEBRQUVKSUlAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0NfU0VSVklDRTo6Q29udHJvbCh1bnNpZ25lZCBpbnQsc3RydWN0IF9TRVJWSUNFX1NUQVRVUyAqKQ0KKz9Db250cm9sQFNDX1NFUlZJQ0VAQFFBRUpJUEFVX1NFUlZJQ0VfU1RBVFVTQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgT1NfQUNMOjpDb3B5KGNsYXNzIE9TX0FDTCBjb25zdCAmLGludCkNCis/Q29weUBPU19BQ0xAQFFBRUpBQlYxQEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUjo6Q29weShjbGFzcyBPU19TRUNVUklUWV9ERVNDUklQVE9SIGNvbnN0ICYpDQorP0NvcHlAT1NfU0VDVVJJVFlfREVTQ1JJUFRPUkBAUUFFSkFCVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE9TX1NJRDo6Q29weShjbGFzcyBPU19TSUQgY29uc3QgJikNCis/Q29weUBPU19TSURAQFFBRUpBQlYxQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBORVRfQUNDRVNTXzE6OkNvcHlBY2Nlc3NQZXJtcyhjbGFzcyBORVRfQUNDRVNTXzEgY29uc3QgJikNCis/Q29weUFjY2Vzc1Blcm1zQE5FVF9BQ0NFU1NfMUBAUUFFSkFCVjFAQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBTRVJWSUNFX0VOVU06OkNvdW50U2VydmljZXModW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGludCAqLHVuc2lnbmVkIGludCAqKQ0KKz9Db3VudFNlcnZpY2VzQFNFUlZJQ0VfRU5VTUBAQUFFWFBBRVBBSTFAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgTlRfQUNDT1VOVFNfVVRJTElUWTo6Q3JhY2tRdWFsaWZpZWRBY2NvdW50TmFtZShjbGFzcyBOTFNfU1RSIGNvbnN0ICYsY2xhc3MgTkxTX1NUUiAqLGNsYXNzIE5MU19TVFIgKikNCis/Q3JhY2tRdWFsaWZpZWRBY2NvdW50TmFtZUBOVF9BQ0NPVU5UU19VVElMSVRZQEBTR0pBQlZOTFNfU1RSQEBQQVYyQDFAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTFNBX1NFQ1JFVDo6Q3JlYXRlKGNsYXNzIExTQV9QT0xJQ1kgY29uc3QgJix1bnNpZ25lZCBsb25nKQ0KKz9DcmVhdGVATFNBX1NFQ1JFVEBAUUFFSkFCVkxTQV9QT0xJQ1lAQEtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTkVXX0xNX09CSjo6Q3JlYXRlTmV3KHZvaWQpDQorP0NyZWF0ZU5ld0BORVdfTE1fT0JKQEBRQUVKWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBET01BSU46OkN0QXV4KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/Q3RBdXhARE9NQUlOQEBBQUVYUEJHMEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgR1JPVVA6OkN0QXV4KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0N0QXV4QEdST1VQQEBBQUVYUEJHQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBHUk9VUF8xOjpDdEF1eCh2b2lkKQ0KKz9DdEF1eEBHUk9VUF8xQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBMT0NfTE1fT0JKOjpDdEF1eCh2b2lkKQ0KKz9DdEF1eEBMT0NfTE1fT0JKQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBVU0VSOjpDdEF1eCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9DdEF1eEBVU0VSQEBBQUVYUEJHQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBVU0VSXzExOjpDdEF1eCh2b2lkKQ0KKz9DdEF1eEBVU0VSXzExQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBVU0VSXzI6OkN0QXV4KHZvaWQpDQorP0N0QXV4QFVTRVJfMkBAQUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgVVNFUl8zOjpDdEF1eCh2b2lkKQ0KKz9DdEF1eEBVU0VSXzNAQEFBRVhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTFNBX1RSVVNURURfRE9NQUlOOjpEZWxldGUodm9pZCkNCis/RGVsZXRlQExTQV9UUlVTVEVEX0RPTUFJTkBAUUFFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBORVRfQUNDRVNTOjpEZWxldGUodm9pZCkNCis/RGVsZXRlQE5FVF9BQ0NFU1NAQFFBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTkVXX0xNX09CSjo6RGVsZXRlKHVuc2lnbmVkIGludCkNCis/RGVsZXRlQE5FV19MTV9PQkpAQFFBRUpJQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNBTV9BTElBUzo6RGVsZXRlKHZvaWQpDQorP0RlbGV0ZUBTQU1fQUxJQVNAQFFBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0NfU0VSVklDRTo6RGVsZXRlKHZvaWQpDQorP0RlbGV0ZUBTQ19TRVJWSUNFQEBRQUVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE9TX0FDTDo6RGVsZXRlQUNFKHVuc2lnbmVkIGxvbmcpDQorP0RlbGV0ZUFDRUBPU19BQ0xAQFFBRUpLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIExTQV9QT0xJQ1k6OkRlbGV0ZUFsbFRydXN0ZWREb21haW5zKHZvaWQpDQorP0RlbGV0ZUFsbFRydXN0ZWREb21haW5zQExTQV9QT0xJQ1lAQElBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTUVNQkVSU0hJUF9MTV9PQko6OkRlbGV0ZUFzc29jTmFtZSh1bnNpZ25lZCBpbnQpDQorP0RlbGV0ZUFzc29jTmFtZUBNRU1CRVJTSElQX0xNX09CSkBAUUFFSklAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTUVNQkVSU0hJUF9MTV9PQko6OkRlbGV0ZUFzc29jTmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9EZWxldGVBc3NvY05hbWVATUVNQkVSU0hJUF9MTV9PQkpAQFFBRUpQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTFNBX0FDQ09VTlQ6OkRlbGV0ZVByaXZpbGVnZShzdHJ1Y3QgX0xVSUQpDQorP0RlbGV0ZVByaXZpbGVnZUBMU0FfQUNDT1VOVEBAUUFFSlVfTFVJREBAQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBMTV9FTlVNOjpEZXJlZ2lzdGVySXRlcih2b2lkKQ0KKz9EZXJlZ2lzdGVySXRlckBMTV9FTlVNQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBMTV9SRVNVTUVfRU5VTTo6RGVyZWdpc3Rlckl0ZXIodm9pZCkNCis/RGVyZWdpc3Rlckl0ZXJATE1fUkVTVU1FX0VOVU1AQEFBRVhYWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIEJST1dTRV9ET01BSU5fRU5VTTo6RGV0ZXJtaW5lSWZEb21haW5NZW1iZXIoaW50ICopDQorP0RldGVybWluZUlmRG9tYWluTWVtYmVyQEJST1dTRV9ET01BSU5fRU5VTUBAQUFFSlBBSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBERVZJQ0U6OkRpc2Nvbm5lY3QodW5zaWduZWQgaW50KQ0KKz9EaXNjb25uZWN0QERFVklDRUBAUUFFSklAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgREVWSUNFOjpEaXNjb25uZWN0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9EaXNjb25uZWN0QERFVklDRUBAUUFFSlBCR0lAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTFNBX1BPTElDWTo6RGlzdHJ1c3REb21haW4odm9pZCAqIGNvbnN0LGNsYXNzIE5MU19TVFIgY29uc3QgJixpbnQpDQorP0Rpc3RydXN0RG9tYWluQExTQV9QT0xJQ1lAQFFBRUpRQVhBQlZOTFNfU1RSQEBIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTE1fUkVTVU1FX0VOVU06OkRvZXNLZWVwQnVmZmVycyh2b2lkKWNvbnN0IA0KKz9Eb2VzS2VlcEJ1ZmZlcnNATE1fUkVTVU1FX0VOVU1AQFFCRUhYWg0KKzsgcHJpdmF0ZTogdmlydHVhbCB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBFTlVNX0NBTExFUl9MTV9PQko6OkVDX1F1ZXJ5QnVmZmVyUHRyKHZvaWQpY29uc3QgDQorP0VDX1F1ZXJ5QnVmZmVyUHRyQEVOVU1fQ0FMTEVSX0xNX09CSkBARUJFUEFFWFoNCis7IHByaXZhdGU6IHZpcnR1YWwgdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgTE1fRU5VTTo6RUNfUXVlcnlCdWZmZXJQdHIodm9pZCljb25zdCANCis/RUNfUXVlcnlCdWZmZXJQdHJATE1fRU5VTUBARUJFUEFFWFoNCis7IHByaXZhdGU6IHZpcnR1YWwgdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgRU5VTV9DQUxMRVJfTE1fT0JKOjpFQ19RdWVyeUJ1ZmZlclNpemUodm9pZCljb25zdCANCis/RUNfUXVlcnlCdWZmZXJTaXplQEVOVU1fQ0FMTEVSX0xNX09CSkBARUJFSVhaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBFTlVNX0NBTExFUl9MTV9PQko6OkVDX1Jlc2l6ZUJ1ZmZlcih1bnNpZ25lZCBpbnQpDQorP0VDX1Jlc2l6ZUJ1ZmZlckBFTlVNX0NBTExFUl9MTV9PQkpAQEVBRUpJQFoNCis7IHByaXZhdGU6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIEVOVU1fQ0FMTEVSX0xNX09CSjo6RUNfU2V0QnVmZmVyUHRyKHVuc2lnbmVkIGNoYXIgKikNCis/RUNfU2V0QnVmZmVyUHRyQEVOVU1fQ0FMTEVSX0xNX09CSkBARUFFSlBBRUBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBMTV9FTlVNOjpFQ19TZXRCdWZmZXJQdHIodW5zaWduZWQgY2hhciAqKQ0KKz9FQ19TZXRCdWZmZXJQdHJATE1fRU5VTUBARUFFSlBBRUBaDQorOyBwcml2YXRlOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgRE9NQUlOX1dJVEhfRENfQ0FDSEU6OkVudGVyQ3JpdGljYWxTZWN0aW9uKHZvaWQpDQorP0VudGVyQ3JpdGljYWxTZWN0aW9uQERPTUFJTl9XSVRIX0RDX0NBQ0hFQEBDR0pYWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgRW51bUFsbENvbW1zKHZvaWQpDQorP0VudW1BbGxDb21tc0BAWUdLWFoNCis7IHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIEVudW1BbGxEcml2ZXModm9pZCkNCis/RW51bUFsbERyaXZlc0BAWUdLWFoNCis7IHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIEVudW1BbGxMUFRzKHZvaWQpDQorP0VudW1BbGxMUFRzQEBZR0tYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIElURVJfREVWSUNFOjpFbnVtQ29tbXModm9pZCkNCis/RW51bUNvbW1zQElURVJfREVWSUNFQEBBQUVQQkdYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0NfU0VSVklDRTo6RW51bURlcGVuZGVudCh1bnNpZ25lZCBpbnQsc3RydWN0IF9FTlVNX1NFUlZJQ0VfU1RBVFVTVyAqICosdW5zaWduZWQgbG9uZyAqKQ0KKz9FbnVtRGVwZW5kZW50QFNDX1NFUlZJQ0VAQFFBRUpJUEFQQVVfRU5VTV9TRVJWSUNFX1NUQVRVU1dAQFBBS0BaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgSVRFUl9ERVZJQ0U6OkVudW1Ecml2ZXModm9pZCkNCis/RW51bURyaXZlc0BJVEVSX0RFVklDRUBAQUFFUEJHWFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBJVEVSX0RFVklDRTo6RW51bUxQVHModm9pZCkNCis/RW51bUxQVHNASVRFUl9ERVZJQ0VAQEFBRVBCR1haDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgU0VSVklDRV9FTlVNOjpFbnVtTG1TZXJ2aWNlcyh1bnNpZ25lZCBjaGFyICogKix1bnNpZ25lZCBpbnQgKikNCis/RW51bUxtU2VydmljZXNAU0VSVklDRV9FTlVNQEBBQUVKUEFQQUVQQUlAWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgRW51bUxvY2FsQ29tbXModm9pZCkNCis/RW51bUxvY2FsQ29tbXNAQFlHS1haDQorOyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBFbnVtTG9jYWxEcml2ZXModm9pZCkNCis/RW51bUxvY2FsRHJpdmVzQEBZR0tYWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgRW51bUxvY2FsTFBUcyh2b2lkKQ0KKz9FbnVtTG9jYWxMUFRzQEBZR0tYWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgRW51bU5ldENvbW1zKHZvaWQpDQorP0VudW1OZXRDb21tc0BAWUdLWFoNCis7IHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIEVudW1OZXREZXZpY2VzKGludCkNCis/RW51bU5ldERldmljZXNAQFlHS0hAWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgRW51bU5ldERyaXZlcyh2b2lkKQ0KKz9FbnVtTmV0RHJpdmVzQEBZR0tYWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgRW51bU5ldExQVHModm9pZCkNCis/RW51bU5ldExQVHNAQFlHS1haDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgU0VSVklDRV9FTlVNOjpFbnVtTnRTZXJ2aWNlcyh1bnNpZ25lZCBjaGFyICogKix1bnNpZ25lZCBpbnQgKikNCis/RW51bU50U2VydmljZXNAU0VSVklDRV9FTlVNQEBBQUVKUEFQQUVQQUlAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0NfTUFOQUdFUjo6RW51bVNlcnZpY2VTdGF0dXModW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxzdHJ1Y3QgX0VOVU1fU0VSVklDRV9TVEFUVVNXICogKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/RW51bVNlcnZpY2VTdGF0dXNAU0NfTUFOQUdFUkBAUUFFSklJUEFQQVVfRU5VTV9TRVJWSUNFX1NUQVRVU1dAQFBBS1BCR0BaDQorOyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBFbnVtVW5hdmFpbENvbW1zKHZvaWQpDQorP0VudW1VbmF2YWlsQ29tbXNAQFlHS1haDQorOyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBFbnVtVW5hdmFpbERldmljZXMoaW50KQ0KKz9FbnVtVW5hdmFpbERldmljZXNAQFlHS0hAWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgRW51bVVuYXZhaWxEcml2ZXModm9pZCkNCis/RW51bVVuYXZhaWxEcml2ZXNAQFlHS1haDQorOyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBFbnVtVW5hdmFpbExQVHModm9pZCkNCis/RW51bVVuYXZhaWxMUFRzQEBZR0tYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0FNX0RPTUFJTjo6RW51bWVyYXRlQWxpYXNlcyhjbGFzcyBTQU1fUklEX0VOVU1FUkFUSU9OX01FTSAqLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9FbnVtZXJhdGVBbGlhc2VzQFNBTV9ET01BSU5AQFFCRUpQQVZTQU1fUklEX0VOVU1FUkFUSU9OX01FTUBAUEFLS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTQU1fRE9NQUlOOjpFbnVtZXJhdGVBbGlhc2VzRm9yVXNlcih2b2lkICosY2xhc3MgU0FNX1JJRF9NRU0gKiljb25zdCANCis/RW51bWVyYXRlQWxpYXNlc0ZvclVzZXJAU0FNX0RPTUFJTkBAUUJFSlBBWFBBVlNBTV9SSURfTUVNQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0FNX0RPTUFJTjo6RW51bWVyYXRlR3JvdXBzKGNsYXNzIFNBTV9SSURfRU5VTUVSQVRJT05fTUVNICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP0VudW1lcmF0ZUdyb3Vwc0BTQU1fRE9NQUlOQEBRQkVKUEFWU0FNX1JJRF9FTlVNRVJBVElPTl9NRU1AQFBBS0tAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTFNBX1BPTElDWTo6RW51bWVyYXRlVHJ1c3RlZERvbWFpbnMoY2xhc3MgTFNBX1RSVVNUX0lORk9fTUVNICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcpDQorP0VudW1lcmF0ZVRydXN0ZWREb21haW5zQExTQV9QT0xJQ1lAQFFBRUpQQVZMU0FfVFJVU1RfSU5GT19NRU1AQFBBS0tAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0FNX0RPTUFJTjo6RW51bWVyYXRlVXNlcnMoY2xhc3MgU0FNX1JJRF9FTlVNRVJBVElPTl9NRU0gKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9FbnVtZXJhdGVVc2Vyc0BTQU1fRE9NQUlOQEBRQkVKUEFWU0FNX1JJRF9FTlVNRVJBVElPTl9NRU1AQFBBS0tLQFoNCis7IGxvbmcgX19zdGRjYWxsIEZpbGxVbmljb2RlU3RyaW5nKHN0cnVjdCBfVU5JQ09ERV9TVFJJTkcgKixjbGFzcyBOTFNfU1RSIGNvbnN0ICYpDQorP0ZpbGxVbmljb2RlU3RyaW5nQEBZR0pQQVVfVU5JQ09ERV9TVFJJTkdAQEFCVk5MU19TVFJAQEBaDQorOyBwcml2YXRlOiBzdHJ1Y3QgX0FDQ0VTU19MSVNUICogX190aGlzY2FsbCBORVRfQUNDRVNTXzE6OkZpbmRBQ0UodW5zaWduZWQgc2hvcnQgY29uc3QgKixlbnVtIFBFUk1OQU1FX1RZUEUpY29uc3QgDQorP0ZpbmRBQ0VATkVUX0FDQ0VTU18xQEBBQkVQQVVfQUNDRVNTX0xJU1RAQFBCR1c0UEVSTU5BTUVfVFlQRUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE9TX0FDTDo6RmluZEFDRShjbGFzcyBPU19TSUQgY29uc3QgJixpbnQgKixjbGFzcyBPU19BQ0UgKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyljb25zdCANCis/RmluZEFDRUBPU19BQ0xAQFFCRUpBQlZPU19TSURAQFBBSFBBVk9TX0FDRUBAUEFLS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1FTUJFUlNISVBfTE1fT0JKOjpGaW5kQXNzb2NOYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50ICopDQorP0ZpbmRBc3NvY05hbWVATUVNQkVSU0hJUF9MTV9PQkpAQFFBRUhQQkdQQUlAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19zdGRjYWxsIERPTUFJTl9XSVRIX0RDX0NBQ0hFOjpGaW5kRGNDYWNoZShzdHJ1Y3QgX0RDX0NBQ0hFX0VOVFJZIGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/RmluZERjQ2FjaGVARE9NQUlOX1dJVEhfRENfQ0FDSEVAQENHUEJHUEJVX0RDX0NBQ0hFX0VOVFJZQEBQQkdAWg0KKzsgcHVibGljOiBjbGFzcyBCUk9XU0VfRE9NQUlOX0lORk8gY29uc3QgKiBfX3RoaXNjYWxsIEJST1dTRV9ET01BSU5fRU5VTTo6RmluZEZpcnN0KHVuc2lnbmVkIGxvbmcpDQorP0ZpbmRGaXJzdEBCUk9XU0VfRE9NQUlOX0VOVU1AQFFBRVBCVkJST1dTRV9ET01BSU5fSU5GT0BAS0BaDQorOyBwdWJsaWM6IGNsYXNzIEJST1dTRV9ET01BSU5fSU5GTyBjb25zdCAqIF9fdGhpc2NhbGwgQlJPV1NFX0RPTUFJTl9FTlVNOjpGaW5kTmV4dCh1bnNpZ25lZCBsb25nKQ0KKz9GaW5kTmV4dEBCUk9XU0VfRE9NQUlOX0VOVU1AQFFBRVBCVkJST1dTRV9ET01BSU5fSU5GT0BAS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBPU19BQ0xfU1VCSkVDVF9JVEVSOjpGaW5kTmV4dFN1YmplY3QoaW50ICosY2xhc3MgT1NfU0lEICosY2xhc3MgT1NfQUNFICopDQorP0ZpbmROZXh0U3ViamVjdEBPU19BQ0xfU1VCSkVDVF9JVEVSQEBRQUVKUEFIUEFWT1NfU0lEQEBQQVZPU19BQ0VAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBPU19QUklWSUxFR0VfU0VUOjpGaW5kUHJpdmlsZWdlKHN0cnVjdCBfTFVJRCljb25zdCANCis/RmluZFByaXZpbGVnZUBPU19QUklWSUxFR0VfU0VUQEBRQkVKVV9MVUlEQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgTkVXX0xNX09CSjo6Rml4dXBQb2ludGVyKHVuc2lnbmVkIHNob3J0ICogKixjbGFzcyBORVdfTE1fT0JKIGNvbnN0ICopDQorP0ZpeHVwUG9pbnRlckBORVdfTE1fT0JKQEBJQUVYUEFQQUdQQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIEFMSUFTX0VOVU06OkZyZWVCdWZmZXIodW5zaWduZWQgY2hhciAqICopDQorP0ZyZWVCdWZmZXJAQUxJQVNfRU5VTUBATUFFWFBBUEFFQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgRklMRV9FTlVNOjpGcmVlQnVmZmVyKHVuc2lnbmVkIGNoYXIgKiAqKQ0KKz9GcmVlQnVmZmVyQEZJTEVfRU5VTUBATUFFWFBBUEFFQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgTE9DX0xNX1JFU1VNRV9FTlVNOjpGcmVlQnVmZmVyKHVuc2lnbmVkIGNoYXIgKiAqKQ0KKz9GcmVlQnVmZmVyQExPQ19MTV9SRVNVTUVfRU5VTUBATUFFWFBBUEFFQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgTFNBX0VOVU06OkZyZWVCdWZmZXIodW5zaWduZWQgY2hhciAqICopDQorP0ZyZWVCdWZmZXJATFNBX0VOVU1AQE1BRVhQQVBBRUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIExTQV9NRU1PUlk6OkZyZWVCdWZmZXIodm9pZCkNCis/RnJlZUJ1ZmZlckBMU0FfTUVNT1JZQEBNQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBMU0FfVFJVU1RFRF9EQ19MSVNUOjpGcmVlQnVmZmVyKHZvaWQpDQorP0ZyZWVCdWZmZXJATFNBX1RSVVNURURfRENfTElTVEBAQUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIE5UX0FDQ09VTlRfRU5VTTo6RnJlZUJ1ZmZlcih1bnNpZ25lZCBjaGFyICogKikNCis/RnJlZUJ1ZmZlckBOVF9BQ0NPVU5UX0VOVU1AQE1BRVhQQVBBRUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFNBTV9NRU1PUlk6OkZyZWVCdWZmZXIodm9pZCkNCis/RnJlZUJ1ZmZlckBTQU1fTUVNT1JZQEBNQUVYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgU0FNX1VTRVJfRU5VTTo6RnJlZUJ1ZmZlcih1bnNpZ25lZCBjaGFyICogKikNCis/RnJlZUJ1ZmZlckBTQU1fVVNFUl9FTlVNQEBNQUVYUEFQQUVAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBUUlVTVEVEX0RPTUFJTl9FTlVNOjpGcmVlQnVmZmVyKHVuc2lnbmVkIGNoYXIgKiAqKQ0KKz9GcmVlQnVmZmVyQFRSVVNURURfRE9NQUlOX0VOVU1AQE1BRVhQQVBBRUBaDQorOyB2b2lkIF9fc3RkY2FsbCBGcmVlVW5pY29kZVN0cmluZyhzdHJ1Y3QgX1VOSUNPREVfU1RSSU5HICopDQorP0ZyZWVVbmljb2RlU3RyaW5nQEBZR1hQQVVfVU5JQ09ERV9TVFJJTkdAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfUE9MSUNZOjpHZXRBY2NvdW50RG9tYWluKGNsYXNzIExTQV9BQ0NUX0RPTV9JTkZPX01FTSAqKWNvbnN0IA0KKz9HZXRBY2NvdW50RG9tYWluQExTQV9QT0xJQ1lAQFFCRUpQQVZMU0FfQUNDVF9ET01fSU5GT19NRU1AQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBET01BSU46OkdldEFueURDKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBOTFNfU1RSICopDQorP0dldEFueURDQERPTUFJTkBAU0dKUEJHMFBBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBET01BSU5fV0lUSF9EQ19DQUNIRTo6R2V0QW55REModW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIE5MU19TVFIgKikNCis/R2V0QW55RENARE9NQUlOX1dJVEhfRENfQ0FDSEVAQFNHSlBCRzBQQVZOTFNfU1RSQEBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgRE9NQUlOOjpHZXRBbnlEQ1dvcmtlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgTkxTX1NUUiAqLGludCkNCis/R2V0QW55RENXb3JrZXJARE9NQUlOQEBLR0pQQkcwUEFWTkxTX1NUUkBASEBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBET01BSU5fV0lUSF9EQ19DQUNIRTo6R2V0QW55RENXb3JrZXIodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIE5MU19TVFIgKixpbnQpDQorP0dldEFueURDV29ya2VyQERPTUFJTl9XSVRIX0RDX0NBQ0hFQEBLR0pQQkcwUEFWTkxTX1NUUkBASEBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBET01BSU46OkdldEFueVZhbGlkREModW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIE5MU19TVFIgKikNCis/R2V0QW55VmFsaWREQ0BET01BSU5AQFNHSlBCRzBQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgRE9NQUlOX1dJVEhfRENfQ0FDSEU6OkdldEFueVZhbGlkREModW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIE5MU19TVFIgKikNCis/R2V0QW55VmFsaWREQ0BET01BSU5fV0lUSF9EQ19DQUNIRUBAU0dKUEJHMFBBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfUE9MSUNZOjpHZXRBdWRpdEV2ZW50SW5mbyhjbGFzcyBMU0FfQVVESVRfRVZFTlRfSU5GT19NRU0gKikNCis/R2V0QXVkaXRFdmVudEluZm9ATFNBX1BPTElDWUBAUUFFSlBBVkxTQV9BVURJVF9FVkVOVF9JTkZPX01FTUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEFMSUFTX0VOVU1fT0JKOjpHZXRDb21tZW50KGNsYXNzIFNBTV9ET01BSU4gY29uc3QgJixjbGFzcyBOTFNfU1RSICopDQorP0dldENvbW1lbnRAQUxJQVNfRU5VTV9PQkpAQFFBRUpBQlZTQU1fRE9NQUlOQEBQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0FNX0FMSUFTOjpHZXRDb21tZW50KGNsYXNzIE5MU19TVFIgKikNCis/R2V0Q29tbWVudEBTQU1fQUxJQVNAQFFBRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0FNX0dST1VQOjpHZXRDb21tZW50KGNsYXNzIE5MU19TVFIgKikNCis/R2V0Q29tbWVudEBTQU1fR1JPVVBAQFFBRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIE5FVF9OQU1FOjpHZXREZXZpY2VJbmZvKHZvaWQpDQorP0dldERldmljZUluZm9ATkVUX05BTUVAQEFBRUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBERVZJQ0U6OkdldEluZm8odm9pZCkNCis/R2V0SW5mb0BERVZJQ0VAQFVBRUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBET01BSU46OkdldEluZm8odm9pZCkNCis/R2V0SW5mb0BET01BSU5AQFVBRUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBET01BSU5fV0lUSF9EQ19DQUNIRTo6R2V0SW5mbyh2b2lkKQ0KKz9HZXRJbmZvQERPTUFJTl9XSVRIX0RDX0NBQ0hFQEBVQUVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExNX0VOVU06OkdldEluZm8odm9pZCkNCis/R2V0SW5mb0BMTV9FTlVNQEBRQUVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExNX1JFU1VNRV9FTlVNOjpHZXRJbmZvKGludCkNCis/R2V0SW5mb0BMTV9SRVNVTUVfRU5VTUBAUUFFSkhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTkVXX0xNX09CSjo6R2V0SW5mbyh2b2lkKQ0KKz9HZXRJbmZvQE5FV19MTV9PQkpAQFFBRUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBVU0VSX01PREFMUzo6R2V0SW5mbyh2b2lkKQ0KKz9HZXRJbmZvQFVTRVJfTU9EQUxTQEBVQUVKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgVVNFUl9NT0RBTFNfMzo6R2V0SW5mbyh2b2lkKQ0KKz9HZXRJbmZvQFVTRVJfTU9EQUxTXzNAQFVBRUpYWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIExNX1JFU1VNRV9FTlVNOjpHZXRJbmZvTXVsdGkodm9pZCkNCis/R2V0SW5mb011bHRpQExNX1JFU1VNRV9FTlVNQEBBQUVKWFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBMTV9SRVNVTUVfRU5VTTo6R2V0SW5mb1NpbmdsZShpbnQpDQorP0dldEluZm9TaW5nbGVATE1fUkVTVU1FX0VOVU1AQEFBRUpIQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBCUk9XU0VfRE9NQUlOX0VOVU06OkdldExhbm1hbkRvbWFpbnModW5zaWduZWQgbG9uZykNCis/R2V0TGFubWFuRG9tYWluc0BCUk9XU0VfRE9NQUlOX0VOVU1AQEFBRUpLQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBCUk9XU0VfRE9NQUlOX0VOVU06OkdldExvZ29uRG9tYWluREMoY2xhc3MgTkxTX1NUUiAqKQ0KKz9HZXRMb2dvbkRvbWFpbkRDQEJST1dTRV9ET01BSU5fRU5VTUBAQUFFSlBBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTQU1fQUxJQVM6OkdldE1lbWJlcnMoY2xhc3MgU0FNX1NJRF9NRU0gKikNCis/R2V0TWVtYmVyc0BTQU1fQUxJQVNAQFFBRUpQQVZTQU1fU0lEX01FTUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNBTV9HUk9VUDo6R2V0TWVtYmVycyhjbGFzcyBTQU1fUklEX01FTSAqKQ0KKz9HZXRNZW1iZXJzQFNBTV9HUk9VUEBAUUFFSlBBVlNBTV9SSURfTUVNQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0FNX0RPTUFJTjo6R2V0UGFzc3dvcmRJbmZvKGNsYXNzIFNBTV9QU1dEX0RPTV9JTkZPX01FTSAqKWNvbnN0IA0KKz9HZXRQYXNzd29yZEluZm9AU0FNX0RPTUFJTkBAUUJFSlBBVlNBTV9QU1dEX0RPTV9JTkZPX01FTUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExTQV9QT0xJQ1k6OkdldFByaW1hcnlEb21haW4oY2xhc3MgTFNBX1BSSU1BUllfRE9NX0lORk9fTUVNICopY29uc3QgDQorP0dldFByaW1hcnlEb21haW5ATFNBX1BPTElDWUBAUUJFSlBBVkxTQV9QUklNQVJZX0RPTV9JTkZPX01FTUBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIE5UX0FDQ09VTlRTX1VUSUxJVFk6OkdldFF1YWxpZmllZEFjY291bnROYW1lcyhjbGFzcyBMU0FfUE9MSUNZICYsY2xhc3MgU0FNX0RPTUFJTiBjb25zdCAmLHZvaWQgKiBjb25zdCAqLHVuc2lnbmVkIGxvbmcsaW50LGNsYXNzIFNUUkxJU1QgKix1bnNpZ25lZCBsb25nICosZW51bSBfU0lEX05BTUVfVVNFICosbG9uZyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgU1RSTElTVCAqLGNsYXNzIFNUUkxJU1QgKixjbGFzcyBTVFJMSVNUICosY2xhc3MgU1RSTElTVCAqKQ0KKz9HZXRRdWFsaWZpZWRBY2NvdW50TmFtZXNATlRfQUNDT1VOVFNfVVRJTElUWUBAU0dKQUFWTFNBX1BPTElDWUBAQUJWU0FNX0RPTUFJTkBAUEJRQVhLSFBBVlNUUkxJU1RAQFBBS1BBVzRfU0lEX05BTUVfVVNFQEBQQUpQQkczMzMzQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIE5UX0FDQ09VTlRTX1VUSUxJVFk6OkdldFF1YWxpZmllZEFjY291bnROYW1lcyhjbGFzcyBMU0FfUE9MSUNZICYsdm9pZCAqIGNvbnN0LHZvaWQgKiBjb25zdCAqLHVuc2lnbmVkIGxvbmcsaW50LGNsYXNzIFNUUkxJU1QgKix1bnNpZ25lZCBsb25nICosZW51bSBfU0lEX05BTUVfVVNFICosbG9uZyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgU1RSTElTVCAqLGNsYXNzIFNUUkxJU1QgKixjbGFzcyBTVFJMSVNUICosY2xhc3MgU1RSTElTVCAqKQ0KKz9HZXRRdWFsaWZpZWRBY2NvdW50TmFtZXNATlRfQUNDT1VOVFNfVVRJTElUWUBAU0dKQUFWTFNBX1BPTElDWUBAUUFYUEJRQVhLSFBBVlNUUkxJU1RAQFBBS1BBVzRfU0lEX05BTUVfVVNFQEBQQUpQQkczMzMzQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIExNX1NSVlJFUzo6R2V0UmVzb3VyY2VDb3VudCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRSZXNvdXJjZUNvdW50QExNX1NSVlJFU0BAU0dKUEJHUEFLMTExMTFAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTFNBX1BPTElDWTo6R2V0U2VydmVyUm9sZShjbGFzcyBMU0FfU0VSVkVSX1JPTEVfSU5GT19NRU0gKiljb25zdCANCis/R2V0U2VydmVyUm9sZUBMU0FfUE9MSUNZQEBRQkVKUEFWTFNBX1NFUlZFUl9ST0xFX0lORk9fTUVNQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgTE1fU1JWUkVTOjpHZXRTZXNzaW9uc0NvdW50KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRTZXNzaW9uc0NvdW50QExNX1NSVlJFU0BAU0dKUEJHUEFLQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBCUk9XU0VfRE9NQUlOX0VOVU06OkdldFRydXN0aW5nRG9tYWlucyh2b2lkKQ0KKz9HZXRUcnVzdGluZ0RvbWFpbnNAQlJPV1NFX0RPTUFJTl9FTlVNQEBBQUVKWFoNCis7IGxvbmcgX19zdGRjYWxsIEdldFczMkNvbXB1dGVyTmFtZShjbGFzcyBOTFNfU1RSICYpDQorP0dldFczMkNvbXB1dGVyTmFtZUBAWUdKQUFWTkxTX1NUUkBAQFoNCis7IGxvbmcgX19zdGRjYWxsIEdldFczMlVzZXJBbmREb21haW5OYW1lKGNsYXNzIE5MU19TVFIgJixjbGFzcyBOTFNfU1RSICYpDQorP0dldFczMlVzZXJBbmREb21haW5OYW1lQEBZR0pBQVZOTFNfU1RSQEAwQFoNCis7IGxvbmcgX19zdGRjYWxsIEdldFczMlVzZXJOYW1lKGNsYXNzIE5MU19TVFIgJikNCis/R2V0VzMyVXNlck5hbWVAQFlHSkFBVk5MU19TVFJAQEBaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgQlJPV1NFX0RPTUFJTl9FTlVNOjpHZXRXb3JrZ3JvdXBEb21haW5zKHZvaWQpDQorP0dldFdvcmtncm91cERvbWFpbnNAQlJPV1NFX0RPTUFJTl9FTlVNQEBBQUVKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIFVTRVI6OkhhbmRsZU51bGxBY2NvdW50KHZvaWQpDQorP0hhbmRsZU51bGxBY2NvdW50QFVTRVJAQElBRUpYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPU19EQUNMX1NVQkpFQ1RfSVRFUjo6SGFzSW5oZXJpdE9ubHlBY2Uodm9pZCljb25zdCANCis/SGFzSW5oZXJpdE9ubHlBY2VAT1NfREFDTF9TVUJKRUNUX0lURVJAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPU19TQUNMX1NVQkpFQ1RfSVRFUjo6SGFzSW5oZXJpdE9ubHlBdWRpdEFjZV9GKHZvaWQpY29uc3QgDQorP0hhc0luaGVyaXRPbmx5QXVkaXRBY2VfRkBPU19TQUNMX1NVQkpFQ1RfSVRFUkBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9TX1NBQ0xfU1VCSkVDVF9JVEVSOjpIYXNJbmhlcml0T25seUF1ZGl0QWNlX1Modm9pZCljb25zdCANCis/SGFzSW5oZXJpdE9ubHlBdWRpdEFjZV9TQE9TX1NBQ0xfU1VCSkVDVF9JVEVSQEBRQkVIWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgTE1fUkVTVU1FX0VOVU1fSVRFUjo6SGFzTW9yZURhdGEodm9pZCljb25zdCANCis/SGFzTW9yZURhdGFATE1fUkVTVU1FX0VOVU1fSVRFUkBASUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9TX0RBQ0xfU1VCSkVDVF9JVEVSOjpIYXNOZXdDb250YWluZXJBY2Uodm9pZCljb25zdCANCis/SGFzTmV3Q29udGFpbmVyQWNlQE9TX0RBQ0xfU1VCSkVDVF9JVEVSQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT1NfU0FDTF9TVUJKRUNUX0lURVI6Okhhc05ld0NvbnRhaW5lckF1ZGl0QWNlX0Yodm9pZCljb25zdCANCis/SGFzTmV3Q29udGFpbmVyQXVkaXRBY2VfRkBPU19TQUNMX1NVQkpFQ1RfSVRFUkBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9TX1NBQ0xfU1VCSkVDVF9JVEVSOjpIYXNOZXdDb250YWluZXJBdWRpdEFjZV9TKHZvaWQpY29uc3QgDQorP0hhc05ld0NvbnRhaW5lckF1ZGl0QWNlX1NAT1NfU0FDTF9TVUJKRUNUX0lURVJAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPU19EQUNMX1NVQkpFQ1RfSVRFUjo6SGFzTmV3T2JqZWN0QWNlKHZvaWQpY29uc3QgDQorP0hhc05ld09iamVjdEFjZUBPU19EQUNMX1NVQkpFQ1RfSVRFUkBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9TX1NBQ0xfU1VCSkVDVF9JVEVSOjpIYXNOZXdPYmplY3RBdWRpdEFjZV9GKHZvaWQpY29uc3QgDQorP0hhc05ld09iamVjdEF1ZGl0QWNlX0ZAT1NfU0FDTF9TVUJKRUNUX0lURVJAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPU19TQUNMX1NVQkpFQ1RfSVRFUjo6SGFzTmV3T2JqZWN0QXVkaXRBY2VfUyh2b2lkKWNvbnN0IA0KKz9IYXNOZXdPYmplY3RBdWRpdEFjZV9TQE9TX1NBQ0xfU1VCSkVDVF9JVEVSQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT1NfREFDTF9TVUJKRUNUX0lURVI6Okhhc1RoaXNBY2Uodm9pZCljb25zdCANCis/SGFzVGhpc0FjZUBPU19EQUNMX1NVQkpFQ1RfSVRFUkBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9TX1NBQ0xfU1VCSkVDVF9JVEVSOjpIYXNUaGlzQXVkaXRBY2VfRih2b2lkKWNvbnN0IA0KKz9IYXNUaGlzQXVkaXRBY2VfRkBPU19TQUNMX1NVQkpFQ1RfSVRFUkBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9TX1NBQ0xfU1VCSkVDVF9JVEVSOjpIYXNUaGlzQXVkaXRBY2VfUyh2b2lkKWNvbnN0IA0KKz9IYXNUaGlzQXVkaXRBY2VfU0BPU19TQUNMX1NVQkpFQ1RfSVRFUkBAUUJFSFhaDQorOyBsb25nIF9fc3RkY2FsbCBJX0FwcGVuZFRvU1RSTElTVChjbGFzcyBTVFJMSVNUICosY2xhc3MgTkxTX1NUUiAmKQ0KKz9JX0FwcGVuZFRvU1RSTElTVEBAWUdKUEFWU1RSTElTVEBAQUFWTkxTX1NUUkBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgR1JPVVBfMTo6SV9DaGFuZ2VUb05ldyh2b2lkKQ0KKz9JX0NoYW5nZVRvTmV3QEdST1VQXzFAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBHUk9VUF9NRU1COjpJX0NoYW5nZVRvTmV3KHZvaWQpDQorP0lfQ2hhbmdlVG9OZXdAR1JPVVBfTUVNQkBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIE5FV19MTV9PQko6OklfQ2hhbmdlVG9OZXcodm9pZCkNCis/SV9DaGFuZ2VUb05ld0BORVdfTE1fT0JKQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgVVNFUl8yOjpJX0NoYW5nZVRvTmV3KHZvaWQpDQorP0lfQ2hhbmdlVG9OZXdAVVNFUl8yQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgVVNFUl8zOjpJX0NoYW5nZVRvTmV3KHZvaWQpDQorP0lfQ2hhbmdlVG9OZXdAVVNFUl8zQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgVVNFUl9NRU1COjpJX0NoYW5nZVRvTmV3KHZvaWQpDQorP0lfQ2hhbmdlVG9OZXdAVVNFUl9NRU1CQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgR1JPVVBfMTo6SV9DcmVhdGVOZXcodm9pZCkNCis/SV9DcmVhdGVOZXdAR1JPVVBfMUBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIEdST1VQX01FTUI6OklfQ3JlYXRlTmV3KHZvaWQpDQorP0lfQ3JlYXRlTmV3QEdST1VQX01FTUJAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBMU0FfQUNDT1VOVDo6SV9DcmVhdGVOZXcodm9pZCkNCis/SV9DcmVhdGVOZXdATFNBX0FDQ09VTlRAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBORVRfQUNDRVNTXzE6OklfQ3JlYXRlTmV3KHZvaWQpDQorP0lfQ3JlYXRlTmV3QE5FVF9BQ0NFU1NfMUBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIE5FV19MTV9PQko6OklfQ3JlYXRlTmV3KHZvaWQpDQorP0lfQ3JlYXRlTmV3QE5FV19MTV9PQkpAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBTSEFSRV8yOjpJX0NyZWF0ZU5ldyh2b2lkKQ0KKz9JX0NyZWF0ZU5ld0BTSEFSRV8yQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgVVNFUl8yOjpJX0NyZWF0ZU5ldyh2b2lkKQ0KKz9JX0NyZWF0ZU5ld0BVU0VSXzJAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBVU0VSXzM6OklfQ3JlYXRlTmV3KHZvaWQpDQorP0lfQ3JlYXRlTmV3QFVTRVJfM0BATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFVTRVJfTUVNQjo6SV9DcmVhdGVOZXcodm9pZCkNCis/SV9DcmVhdGVOZXdAVVNFUl9NRU1CQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgR1JPVVA6OklfRGVsZXRlKHVuc2lnbmVkIGludCkNCis/SV9EZWxldGVAR1JPVVBAQE1BRUpJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgTE1fU0VTU0lPTjo6SV9EZWxldGUodW5zaWduZWQgaW50KQ0KKz9JX0RlbGV0ZUBMTV9TRVNTSU9OQEBNQUVKSUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIExTQV9BQ0NPVU5UOjpJX0RlbGV0ZSh1bnNpZ25lZCBpbnQpDQorP0lfRGVsZXRlQExTQV9BQ0NPVU5UQEBNQUVKSUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIE5FV19MTV9PQko6OklfRGVsZXRlKHVuc2lnbmVkIGludCkNCis/SV9EZWxldGVATkVXX0xNX09CSkBATUFFSklAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBTSEFSRTo6SV9EZWxldGUodW5zaWduZWQgaW50KQ0KKz9JX0RlbGV0ZUBTSEFSRUBATUFFSklAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBVU0VSOjpJX0RlbGV0ZSh1bnNpZ25lZCBpbnQpDQorP0lfRGVsZXRlQFVTRVJAQE1BRUpJQFoNCis7IGxvbmcgX19zdGRjYWxsIElfRmV0Y2hBbGlhc0ZpZWxkcyhjbGFzcyBOTFNfU1RSICosY2xhc3MgQURNSU5fQVVUSE9SSVRZICogKixjbGFzcyBTTElTVF9PRl9BRE1JTl9BVVRIT1JJVFkgKix1bnNpZ25lZCBsb25nLGludCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYsY2xhc3MgTkxTX1NUUiBjb25zdCAqLGxvbmcgKikNCis/SV9GZXRjaEFsaWFzRmllbGRzQEBZR0pQQVZOTFNfU1RSQEBQQVBBVkFETUlOX0FVVEhPUklUWUBAUEFWU0xJU1RfT0ZfQURNSU5fQVVUSE9SSVRZQEBLSEFCVjFAUEJWMUBQQUpAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgSV9GZXRjaERDTGlzdChjbGFzcyBMU0FfVFJBTlNMQVRFRF9OQU1FX01FTSBjb25zdCAmLGNsYXNzIExTQV9SRUZfRE9NQUlOX01FTSBjb25zdCAmLHZvaWQgKix2b2lkICosY2xhc3MgTkxTX1NUUiAqICosY2xhc3MgU1RSTElTVCAqLGludCAqLGxvbmcgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCxpbnQsaW50KQ0KKz9JX0ZldGNoRENMaXN0QEBZR0pBQlZMU0FfVFJBTlNMQVRFRF9OQU1FX01FTUBAQUJWTFNBX1JFRl9ET01BSU5fTUVNQEBQQVgyUEFQQVZOTFNfU1RSQEBQQVZTVFJMSVNUQEBQQUhQQUpQQkdISEhAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgSV9GZXRjaEdyb3VwRmllbGRzKGNsYXNzIE5MU19TVFIgKixjbGFzcyBOTFNfU1RSIGNvbnN0ICYsY2xhc3MgTkxTX1NUUiBjb25zdCAqLGxvbmcgKikNCis/SV9GZXRjaEdyb3VwRmllbGRzQEBZR0pQQVZOTFNfU1RSQEBBQlYxQFBCVjFAUEFKQFoNCis7IGxvbmcgX19zdGRjYWxsIElfRmV0Y2hVc2VyRmllbGRzKGNsYXNzIE5MU19TVFIgKixjbGFzcyBOTFNfU1RSICosdW5zaWduZWQgbG9uZyAqLGNsYXNzIE5MU19TVFIgY29uc3QgJixjbGFzcyBOTFNfU1RSIGNvbnN0ICosbG9uZyAqKQ0KKz9JX0ZldGNoVXNlckZpZWxkc0BAWUdKUEFWTkxTX1NUUkBAMFBBS0FCVjFAUEJWMUBQQUpAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBHUk9VUF8xOjpJX0dldEluZm8odm9pZCkNCis/SV9HZXRJbmZvQEdST1VQXzFAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBMTV9GSUxFXzI6OklfR2V0SW5mbyh2b2lkKQ0KKz9JX0dldEluZm9ATE1fRklMRV8yQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgTE1fRklMRV8zOjpJX0dldEluZm8odm9pZCkNCis/SV9HZXRJbmZvQExNX0ZJTEVfM0BATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIExNX1NFU1NJT05fMDo6SV9HZXRJbmZvKHZvaWQpDQorP0lfR2V0SW5mb0BMTV9TRVNTSU9OXzBAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBMTV9TRVNTSU9OXzEwOjpJX0dldEluZm8odm9pZCkNCis/SV9HZXRJbmZvQExNX1NFU1NJT05fMTBAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBMTV9TRVNTSU9OXzE6OklfR2V0SW5mbyh2b2lkKQ0KKz9JX0dldEluZm9ATE1fU0VTU0lPTl8xQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgTE1fU0VTU0lPTl8yOjpJX0dldEluZm8odm9pZCkNCis/SV9HZXRJbmZvQExNX1NFU1NJT05fMkBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIExPQ0FMX1VTRVI6OklfR2V0SW5mbyh2b2lkKQ0KKz9JX0dldEluZm9ATE9DQUxfVVNFUkBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIExTQV9BQ0NPVU5UOjpJX0dldEluZm8odm9pZCkNCis/SV9HZXRJbmZvQExTQV9BQ0NPVU5UQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgTUVNQkVSU0hJUF9MTV9PQko6OklfR2V0SW5mbyh2b2lkKQ0KKz9JX0dldEluZm9ATUVNQkVSU0hJUF9MTV9PQkpAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBORVRfQUNDRVNTXzE6OklfR2V0SW5mbyh2b2lkKQ0KKz9JX0dldEluZm9ATkVUX0FDQ0VTU18xQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgTkVXX0xNX09CSjo6SV9HZXRJbmZvKHZvaWQpDQorP0lfR2V0SW5mb0BORVdfTE1fT0JKQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgU0VSVkVSXzA6OklfR2V0SW5mbyh2b2lkKQ0KKz9JX0dldEluZm9AU0VSVkVSXzBAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBTRVJWRVJfMTo6SV9HZXRJbmZvKHZvaWQpDQorP0lfR2V0SW5mb0BTRVJWRVJfMUBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFNFUlZFUl8yOjpJX0dldEluZm8odm9pZCkNCis/SV9HZXRJbmZvQFNFUlZFUl8yQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgU0hBUkVfMTo6SV9HZXRJbmZvKHZvaWQpDQorP0lfR2V0SW5mb0BTSEFSRV8xQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgU0hBUkVfMjo6SV9HZXRJbmZvKHZvaWQpDQorP0lfR2V0SW5mb0BTSEFSRV8yQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgVElNRV9PRl9EQVk6OklfR2V0SW5mbyh2b2lkKQ0KKz9JX0dldEluZm9AVElNRV9PRl9EQVlAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBVU0VSXzExOjpJX0dldEluZm8odm9pZCkNCis/SV9HZXRJbmZvQFVTRVJfMTFAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBVU0VSXzI6OklfR2V0SW5mbyh2b2lkKQ0KKz9JX0dldEluZm9AVVNFUl8yQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgVVNFUl8zOjpJX0dldEluZm8odm9pZCkNCis/SV9HZXRJbmZvQFVTRVJfM0BATUFFSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFdLU1RBXzEwOjpJX0dldEluZm8odm9pZCkNCis/SV9HZXRJbmZvQFdLU1RBXzEwQEBVQUVKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgV0tTVEFfMTo6SV9HZXRJbmZvKHZvaWQpDQorP0lfR2V0SW5mb0BXS1NUQV8xQEBVQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgV0tTVEFfVVNFUl8xOjpJX0dldEluZm8odm9pZCkNCis/SV9HZXRJbmZvQFdLU1RBX1VTRVJfMUBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIEdST1VQXzE6OklfV3JpdGVJbmZvKHZvaWQpDQorP0lfV3JpdGVJbmZvQEdST1VQXzFAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBHUk9VUF9NRU1COjpJX1dyaXRlSW5mbyh2b2lkKQ0KKz9JX1dyaXRlSW5mb0BHUk9VUF9NRU1CQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgTFNBX0FDQ09VTlQ6OklfV3JpdGVJbmZvKHZvaWQpDQorP0lfV3JpdGVJbmZvQExTQV9BQ0NPVU5UQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgTkVUX0FDQ0VTU18xOjpJX1dyaXRlSW5mbyh2b2lkKQ0KKz9JX1dyaXRlSW5mb0BORVRfQUNDRVNTXzFAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBORVdfTE1fT0JKOjpJX1dyaXRlSW5mbyh2b2lkKQ0KKz9JX1dyaXRlSW5mb0BORVdfTE1fT0JKQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgU0VSVkVSXzE6OklfV3JpdGVJbmZvKHZvaWQpDQorP0lfV3JpdGVJbmZvQFNFUlZFUl8xQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgU0VSVkVSXzI6OklfV3JpdGVJbmZvKHZvaWQpDQorP0lfV3JpdGVJbmZvQFNFUlZFUl8yQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgU0hBUkVfMTo6SV9Xcml0ZUluZm8odm9pZCkNCis/SV9Xcml0ZUluZm9AU0hBUkVfMUBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFNIQVJFXzI6OklfV3JpdGVJbmZvKHZvaWQpDQorP0lfV3JpdGVJbmZvQFNIQVJFXzJAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBVU0VSXzI6OklfV3JpdGVJbmZvKHZvaWQpDQorP0lfV3JpdGVJbmZvQFVTRVJfMkBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFVTRVJfMzo6SV9Xcml0ZUluZm8odm9pZCkNCis/SV9Xcml0ZUluZm9AVVNFUl8zQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgVVNFUl9NRU1COjpJX1dyaXRlSW5mbyh2b2lkKQ0KKz9JX1dyaXRlSW5mb0BVU0VSX01FTUJAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBXS1NUQV9VU0VSXzE6OklfV3JpdGVJbmZvKHZvaWQpDQorP0lfV3JpdGVJbmZvQFdLU1RBX1VTRVJfMUBATUFFSlhaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgTkVUX0FDQ0VTU18xOjpJX1dyaXRlSW5mb0F1eCh2b2lkKQ0KKz9JX1dyaXRlSW5mb0F1eEBORVRfQUNDRVNTXzFAQEFBRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBHUk9VUF8xOjpJX1dyaXRlTmV3KHZvaWQpDQorP0lfV3JpdGVOZXdAR1JPVVBfMUBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIExTQV9BQ0NPVU5UOjpJX1dyaXRlTmV3KHZvaWQpDQorP0lfV3JpdGVOZXdATFNBX0FDQ09VTlRAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBNRU1CRVJTSElQX0xNX09CSjo6SV9Xcml0ZU5ldyh2b2lkKQ0KKz9JX1dyaXRlTmV3QE1FTUJFUlNISVBfTE1fT0JKQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgTkVUX0FDQ0VTU18xOjpJX1dyaXRlTmV3KHZvaWQpDQorP0lfV3JpdGVOZXdATkVUX0FDQ0VTU18xQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgTkVXX0xNX09CSjo6SV9Xcml0ZU5ldyh2b2lkKQ0KKz9JX1dyaXRlTmV3QE5FV19MTV9PQkpAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBTSEFSRV8yOjpJX1dyaXRlTmV3KHZvaWQpDQorP0lfV3JpdGVOZXdAU0hBUkVfMkBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFVTRVJfMjo6SV9Xcml0ZU5ldyh2b2lkKQ0KKz9JX1dyaXRlTmV3QFVTRVJfMkBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFVTRVJfMzo6SV9Xcml0ZU5ldyh2b2lkKQ0KKz9JX1dyaXRlTmV3QFVTRVJfM0BATUFFSlhaDQorOyBwcml2YXRlOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgTFNBX1BPTElDWTo6SW5pdE9iamVjdEF0dHJpYnV0ZXMoc3RydWN0IF9PQkpFQ1RfQVRUUklCVVRFUyAqLHN0cnVjdCBfU0VDVVJJVFlfUVVBTElUWV9PRl9TRVJWSUNFICopDQorP0luaXRPYmplY3RBdHRyaWJ1dGVzQExTQV9QT0xJQ1lAQENHWFBBVV9PQkpFQ1RfQVRUUklCVVRFU0BAUEFVX1NFQ1VSSVRZX1FVQUxJVFlfT0ZfU0VSVklDRUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIE9TX1NBQ0xfU1VCSkVDVF9ERVNDUklQVE9SOjpJbml0VG9aZXJvKHZvaWQpDQorP0luaXRUb1plcm9AT1NfU0FDTF9TVUJKRUNUX0RFU0NSSVBUT1JAQFFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIE9TX1NBQ0xfU1VCSkVDVF9JVEVSOjpJbml0VG9aZXJvKHZvaWQpDQorP0luaXRUb1plcm9AT1NfU0FDTF9TVUJKRUNUX0lURVJAQEFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIE9TX1BSSVZJTEVHRV9TRVQ6OkluaXRpYWxpemVNZW1vcnkodm9pZCkNCis/SW5pdGlhbGl6ZU1lbW9yeUBPU19QUklWSUxFR0VfU0VUQEBBQUVYWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIE9TX1NJRDo6SW5pdGlhbGl6ZU1lbW9yeSh2b2lkICopDQorP0luaXRpYWxpemVNZW1vcnlAT1NfU0lEQEBTR1hQQVhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0xJU1RfT0ZfQlJPV1NFX0RPTUFJTl9JTkZPOjpJbnNlcnQoY2xhc3MgQlJPV1NFX0RPTUFJTl9JTkZPIGNvbnN0ICosY2xhc3MgSVRFUl9TTF9CUk9XU0VfRE9NQUlOX0lORk8gJikNCis/SW5zZXJ0QFNMSVNUX09GX0JST1dTRV9ET01BSU5fSU5GT0BAUUFFSlBCVkJST1dTRV9ET01BSU5fSU5GT0BAQUFWSVRFUl9TTF9CUk9XU0VfRE9NQUlOX0lORk9AQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfQUNDT1VOVDo6SW5zZXJ0UHJpdmlsZWdlKHN0cnVjdCBfTFVJRCx1bnNpZ25lZCBsb25nKQ0KKz9JbnNlcnRQcml2aWxlZ2VATFNBX0FDQ09VTlRAQFFBRUpVX0xVSURAQEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBVU0VSXzExOjpJc0FjY291bnRzT3BlcmF0b3Iodm9pZCljb25zdCANCis/SXNBY2NvdW50c09wZXJhdG9yQFVTRVJfMTFAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBVU0VSXzExOjpJc0NvbW1PcGVyYXRvcih2b2lkKWNvbnN0IA0KKz9Jc0NvbW1PcGVyYXRvckBVU0VSXzExQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT1NfQUNMX1NVQkpFQ1RfSVRFUjo6SXNDb250YWluZXIodm9pZCljb25zdCANCis/SXNDb250YWluZXJAT1NfQUNMX1NVQkpFQ1RfSVRFUkBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIExNX1NFUlZJQ0U6OklzQ29udGludWluZyhsb25nICopDQorP0lzQ29udGludWluZ0BMTV9TRVJWSUNFQEBRQUVIUEFKQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUl9DT05UUk9MOjpJc0RBQ0xEZWZhdWx0ZWQodm9pZCljb25zdCANCis/SXNEQUNMRGVmYXVsdGVkQE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JfQ09OVFJPTEBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6OklzREFDTFByZXNlbnQodm9pZCljb25zdCANCis/SXNEQUNMUHJlc2VudEBPU19TRUNVUklUWV9ERVNDUklQVE9SQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUl9DT05UUk9MOjpJc0RBQ0xQcmVzZW50KHZvaWQpY29uc3QgDQorP0lzREFDTFByZXNlbnRAT1NfU0VDVVJJVFlfREVTQ1JJUFRPUl9DT05UUk9MQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTFNBX0FDQ09VTlQ6OklzRGVmYXVsdFNldHRpbmdzKHZvaWQpDQorP0lzRGVmYXVsdFNldHRpbmdzQExTQV9BQ0NPVU5UQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT1NfREFDTF9TVUJKRUNUX0lURVI6OklzRGVueUFsbCh2b2lkKWNvbnN0IA0KKz9Jc0RlbnlBbGxAT1NfREFDTF9TVUJKRUNUX0lURVJAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBMT0NBVElPTjo6SXNEb21haW4odm9pZCljb25zdCANCis/SXNEb21haW5ATE9DQVRJT05AQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBMTV9TRVNTSU9OXzE6OklzRW5jcnlwdGVkKHZvaWQpY29uc3QgDQorP0lzRW5jcnlwdGVkQExNX1NFU1NJT05fMUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JfQ09OVFJPTDo6SXNHcm91cERlZmF1bHRlZCh2b2lkKWNvbnN0IA0KKz9Jc0dyb3VwRGVmYXVsdGVkQE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JfQ09OVFJPTEBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIExNX1NFU1NJT05fMTo6SXNHdWVzdCh2b2lkKWNvbnN0IA0KKz9Jc0d1ZXN0QExNX1NFU1NJT05fMUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIExTQV9PQkpFQ1Q6OklzSGFuZGxlVmFsaWQodm9pZCljb25zdCANCis/SXNIYW5kbGVWYWxpZEBMU0FfT0JKRUNUQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT1NfQUNFOjpJc0luaGVyaXRPbmx5KHZvaWQpY29uc3QgDQorP0lzSW5oZXJpdE9ubHlAT1NfQUNFQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT1NfREFDTF9TVUJKRUNUX0lURVI6OklzSW5oZXJpdE9ubHlEZW55QWxsKHZvaWQpY29uc3QgDQorP0lzSW5oZXJpdE9ubHlEZW55QWxsQE9TX0RBQ0xfU1VCSkVDVF9JVEVSQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT1NfQUNFOjpJc0luaGVyaXRhbmNlUHJvcGFnYXRlZCh2b2lkKWNvbnN0IA0KKz9Jc0luaGVyaXRhbmNlUHJvcGFnYXRlZEBPU19BQ0VAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPU19BQ0U6OklzSW5oZXJpdHRlZEJ5TmV3Q29udGFpbmVycyh2b2lkKWNvbnN0IA0KKz9Jc0luaGVyaXR0ZWRCeU5ld0NvbnRhaW5lcnNAT1NfQUNFQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT1NfQUNFOjpJc0luaGVyaXR0ZWRCeU5ld09iamVjdHModm9pZCljb25zdCANCis/SXNJbmhlcml0dGVkQnlOZXdPYmplY3RzQE9TX0FDRUBAUUJFSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIExNX09CSjo6SXNJbnZhbGlkKHZvaWQpY29uc3QgDQorP0lzSW52YWxpZEBMTV9PQkpAQElCRUhYWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgTE1fT0JKX0JBU0U6OklzSW52YWxpZCh2b2lkKWNvbnN0IA0KKz9Jc0ludmFsaWRATE1fT0JKX0JBU0VAQEFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPU19BQ0U6OklzS25vd25BQ0Uodm9pZCljb25zdCANCis/SXNLbm93bkFDRUBPU19BQ0VAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBORVRfTkFNRTo6SXNMb2NhbChsb25nICopDQorP0lzTG9jYWxATkVUX05BTUVAQFFBRUhQQUpAWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgTkVXX0xNX09CSjo6SXNOZXcodm9pZCljb25zdCANCis/SXNOZXdATkVXX0xNX09CSkBAQUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9TX0RBQ0xfU1VCSkVDVF9JVEVSOjpJc05ld0NvbnRhaW5lckRlbnlBbGwodm9pZCljb25zdCANCis/SXNOZXdDb250YWluZXJEZW55QWxsQE9TX0RBQ0xfU1VCSkVDVF9JVEVSQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT1NfREFDTF9TVUJKRUNUX0lURVI6OklzTmV3T2JqZWN0RGVueUFsbCh2b2lkKWNvbnN0IA0KKz9Jc05ld09iamVjdERlbnlBbGxAT1NfREFDTF9TVUJKRUNUX0lURVJAQFFCRUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBORVdfTE1fT0JKOjpJc09LU3RhdGUodm9pZCljb25zdCANCis/SXNPS1N0YXRlQE5FV19MTV9PQkpAQElCRUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBPU19BQ0U6OklzT3duZXJBbGxvYyh2b2lkKWNvbnN0IA0KKz9Jc093bmVyQWxsb2NAT1NfQUNFQEBJQkVIWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgT1NfQUNMOjpJc093bmVyQWxsb2Modm9pZCljb25zdCANCis/SXNPd25lckFsbG9jQE9TX0FDTEBASUJFSFhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBPU19QUklWSUxFR0VfU0VUOjpJc093bmVyQWxsb2Modm9pZCljb25zdCANCis/SXNPd25lckFsbG9jQE9TX1BSSVZJTEVHRV9TRVRAQEFCRUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBPU19TSUQ6OklzT3duZXJBbGxvYyh2b2lkKWNvbnN0IA0KKz9Jc093bmVyQWxsb2NAT1NfU0lEQEBJQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUl9DT05UUk9MOjpJc093bmVyRGVmYXVsdGVkKHZvaWQpY29uc3QgDQorP0lzT3duZXJEZWZhdWx0ZWRAT1NfU0VDVVJJVFlfREVTQ1JJUFRPUl9DT05UUk9MQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTE1fU0VSVklDRTo6SXNQYXVzZWQobG9uZyAqKQ0KKz9Jc1BhdXNlZEBMTV9TRVJWSUNFQEBRQUVIUEFKQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTE1fU0VSVklDRTo6SXNQYXVzaW5nKGxvbmcgKikNCis/SXNQYXVzaW5nQExNX1NFUlZJQ0VAQFFBRUhQQUpAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBMTV9GSUxFXzM6OklzUGVybUNyZWF0ZSh2b2lkKWNvbnN0IA0KKz9Jc1Blcm1DcmVhdGVATE1fRklMRV8zQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTE1fRklMRV8zOjpJc1Blcm1SZWFkKHZvaWQpY29uc3QgDQorP0lzUGVybVJlYWRATE1fRklMRV8zQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTE1fRklMRV8zOjpJc1Blcm1Xcml0ZSh2b2lkKWNvbnN0IA0KKz9Jc1Blcm1Xcml0ZUBMTV9GSUxFXzNAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBVU0VSXzExOjpJc1ByaW50T3BlcmF0b3Iodm9pZCljb25zdCANCis/SXNQcmludE9wZXJhdG9yQFVTRVJfMTFAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPU19TRUNVUklUWV9ERVNDUklQVE9SX0NPTlRST0w6OklzU0FDTERlZmF1bHRlZCh2b2lkKWNvbnN0IA0KKz9Jc1NBQ0xEZWZhdWx0ZWRAT1NfU0VDVVJJVFlfREVTQ1JJUFRPUl9DT05UUk9MQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUjo6SXNTQUNMUHJlc2VudCh2b2lkKWNvbnN0IA0KKz9Jc1NBQ0xQcmVzZW50QE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPU19TRUNVUklUWV9ERVNDUklQVE9SX0NPTlRST0w6OklzU0FDTFByZXNlbnQodm9pZCljb25zdCANCis/SXNTQUNMUHJlc2VudEBPU19TRUNVUklUWV9ERVNDUklQVE9SX0NPTlRST0xAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBMT0NBVElPTjo6SXNTZXJ2ZXIodm9pZCljb25zdCANCis/SXNTZXJ2ZXJATE9DQVRJT05AQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBVU0VSXzExOjpJc1NlcnZlck9wZXJhdG9yKHZvaWQpY29uc3QgDQorP0lzU2VydmVyT3BlcmF0b3JAVVNFUl8xMUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE5FVF9OQU1FOjpJc1NoYXJhYmxlKGxvbmcgKikNCis/SXNTaGFyYWJsZUBORVRfTkFNRUBAUUFFSFBBSkBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIExNX1NFUlZJQ0U6OklzU3RhcnRlZChsb25nICopDQorP0lzU3RhcnRlZEBMTV9TRVJWSUNFQEBRQUVIUEFKQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTE1fU0VSVklDRTo6SXNTdGFydGluZyhsb25nICopDQorP0lzU3RhcnRpbmdATE1fU0VSVklDRUBAUUFFSFBBSkBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIExNX1NFUlZJQ0U6OklzU3RvcHBlZChsb25nICopDQorP0lzU3RvcHBlZEBMTV9TRVJWSUNFQEBRQUVIUEFKQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTE1fU0VSVklDRTo6SXNTdG9wcGluZyhsb25nICopDQorP0lzU3RvcHBpbmdATE1fU0VSVklDRUBAUUFFSFBBSkBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIExNX09CSjo6SXNVbmNvbnN0cnVjdGVkKHZvaWQpY29uc3QgDQorP0lzVW5jb25zdHJ1Y3RlZEBMTV9PQkpAQElCRUhYWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgTE1fT0JKX0JBU0U6OklzVW5jb25zdHJ1Y3RlZCh2b2lkKWNvbnN0IA0KKz9Jc1VuY29uc3RydWN0ZWRATE1fT0JKX0JBU0VAQEFCRUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBMTV9PQko6OklzVmFsaWQodm9pZCljb25zdCANCis/SXNWYWxpZEBMTV9PQkpAQElCRUhYWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgTE1fT0JKX0JBU0U6OklzVmFsaWQodm9pZCljb25zdCANCis/SXNWYWxpZEBMTV9PQkpfQkFTRUBAQUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9TX0FDTDo6SXNWYWxpZCh2b2lkKWNvbnN0IA0KKz9Jc1ZhbGlkQE9TX0FDTEBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6OklzVmFsaWQodm9pZCljb25zdCANCis/SXNWYWxpZEBPU19TRUNVUklUWV9ERVNDUklQVE9SQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT1NfU0lEOjpJc1ZhbGlkKHZvaWQpY29uc3QgDQorP0lzVmFsaWRAT1NfU0lEQEBRQkVIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgRE9NQUlOOjpJc1ZhbGlkREModW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9Jc1ZhbGlkRENARE9NQUlOQEBTR0hQQkcwQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTE1fT0JKX0JBU0U6OklzVmFsaWRhdGlvbk9uKHZvaWQpDQorP0lzVmFsaWRhdGlvbk9uQExNX09CSl9CQVNFQEBRQUVIWFoNCis7IGludCBfX3N0ZGNhbGwgSXNXaGl0ZVNwYWNlKHVuc2lnbmVkIHNob3J0KQ0KKz9Jc1doaXRlU3BhY2VAQFlHSEdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTFNBX1BPTElDWTo6Sm9pbkRvbWFpbihjbGFzcyBOTFNfU1RSIGNvbnN0ICYsY2xhc3MgTkxTX1NUUiBjb25zdCAmLGludCxjbGFzcyBOTFNfU1RSIGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/Sm9pbkRvbWFpbkBMU0FfUE9MSUNZQEBRQUVKQUJWTkxTX1NUUkBAMEhQQlYyQFBCR0BaDQorOyBpbnQgX19zdGRjYWxsIExNT1R5cGVUb05ldFR5cGUoZW51bSBMTU9fREVWSUNFKQ0KKz9MTU9UeXBlVG9OZXRUeXBlQEBZR0hXNExNT19ERVZJQ0VAQEBaDQorOyBwcml2YXRlOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgRE9NQUlOX1dJVEhfRENfQ0FDSEU6OkxlYXZlQ3JpdGljYWxTZWN0aW9uKHZvaWQpDQorP0xlYXZlQ3JpdGljYWxTZWN0aW9uQERPTUFJTl9XSVRIX0RDX0NBQ0hFQEBDR1hYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTFNBX1BPTElDWTo6TGVhdmVEb21haW4odm9pZCkNCis/TGVhdmVEb21haW5ATFNBX1BPTElDWUBAUUFFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTQ19NQU5BR0VSOjpMb2NrKHZvaWQpDQorP0xvY2tAU0NfTUFOQUdFUkBAUUFFSlhaDQorOyBsb25nIF9fc3RkY2FsbCBMc2F4R2V0Q29tcHV0ZXJOYW1lKGNsYXNzIE5MU19TVFIgKikNCis/THNheEdldENvbXB1dGVyTmFtZUBAWUdKUEFWTkxTX1NUUkBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIExNX09CSjo6TWFrZUNvbnN0cnVjdGVkKHZvaWQpDQorP01ha2VDb25zdHJ1Y3RlZEBMTV9PQkpAQElBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExNX09CSl9CQVNFOjpNYWtlQ29uc3RydWN0ZWQodm9pZCkNCis/TWFrZUNvbnN0cnVjdGVkQExNX09CSl9CQVNFQEBBQUVYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIExNX09CSjo6TWFrZUludmFsaWQodm9pZCkNCis/TWFrZUludmFsaWRATE1fT0JKQEBJQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBMTV9PQkpfQkFTRTo6TWFrZUludmFsaWQodm9pZCkNCis/TWFrZUludmFsaWRATE1fT0JKX0JBU0VAQEFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIE5FV19MTV9PQko6Ok1ha2VOZXcodm9pZCkNCis/TWFrZU5ld0BORVdfTE1fT0JKQEBBQUVYWFoNCis7IHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIE1ha2VOdWxsTnVsbCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0ICogKikNCis/TWFrZU51bGxOdWxsQEBZR0tQQkdQQVBBR0BaDQorOyBwcml2YXRlOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgTFNBX1BPTElDWTo6TWFrZVNlY3JldE5hbWUoY2xhc3MgTkxTX1NUUiBjb25zdCAmLGludCxjbGFzcyBOTFNfU1RSICopDQorP01ha2VTZWNyZXROYW1lQExTQV9QT0xJQ1lAQENHSkFCVk5MU19TVFJAQEhQQVYyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBMTV9PQko6Ok1ha2VVbmNvbnN0cnVjdGVkKHZvaWQpDQorP01ha2VVbmNvbnN0cnVjdGVkQExNX09CSkBASUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTE1fT0JKX0JBU0U6Ok1ha2VVbmNvbnN0cnVjdGVkKHZvaWQpDQorP01ha2VVbmNvbnN0cnVjdGVkQExNX09CSl9CQVNFQEBBQUVYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIExNX09CSjo6TWFrZVZhbGlkKHZvaWQpDQorP01ha2VWYWxpZEBMTV9PQkpAQElBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExNX09CSl9CQVNFOjpNYWtlVmFsaWQodm9pZCkNCis/TWFrZVZhbGlkQExNX09CSl9CQVNFQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBUUklQTEVfU0VSVkVSX0VOVU06Ok1hcEJyb3dzZXJUb1RyaXBsZShzdHJ1Y3QgX1NFUlZFUl9JTkZPXzEwMSBjb25zdCAqLHN0cnVjdCBfVFJJUExFX1NFUlZFUl9JTkZPICopDQorP01hcEJyb3dzZXJUb1RyaXBsZUBUUklQTEVfU0VSVkVSX0VOVU1AQEFBRVhQQlVfU0VSVkVSX0lORk9fMTAxQEBQQVVfVFJJUExFX1NFUlZFUl9JTkZPQEBAWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgTWFwQ29tbSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9NYXBDb21tQEBZR0tQQkdAWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgTWFwRHJpdmUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/TWFwRHJpdmVAQFlHS1BCR0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9TX0FDTF9TVUJKRUNUX0lURVI6Ok1hcEdlbmVyaWNBbGxPbmx5KHZvaWQpY29uc3QgDQorP01hcEdlbmVyaWNBbGxPbmx5QE9TX0FDTF9TVUJKRUNUX0lURVJAQFFCRUhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIFRSSVBMRV9TRVJWRVJfRU5VTTo6TWFwS25vd25Ub1RyaXBsZShzdHJ1Y3QgX0tOT1dOX1NFUlZFUl9JTkZPIGNvbnN0ICosc3RydWN0IF9UUklQTEVfU0VSVkVSX0lORk8gKikNCis/TWFwS25vd25Ub1RyaXBsZUBUUklQTEVfU0VSVkVSX0VOVU1AQEFBRVhQQlVfS05PV05fU0VSVkVSX0lORk9AQFBBVV9UUklQTEVfU0VSVkVSX0lORk9AQEBaDQorOyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBNYXBMUFQodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/TWFwTFBUQEBZR0tQQkdAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIFNFUlZJQ0VfRU5VTTo6TWFwTG1TdGF0dXNUb050U3RhdGUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyAqKQ0KKz9NYXBMbVN0YXR1c1RvTnRTdGF0ZUBTRVJWSUNFX0VOVU1AQEFBRVhLUEFLMEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgVFJJUExFX1NFUlZFUl9FTlVNOjpNYXBMbVRvS25vd24oc3RydWN0IF9VU0VSX0lORk9fMCBjb25zdCAqLHN0cnVjdCBfS05PV05fU0VSVkVSX0lORk8gKikNCis/TWFwTG1Ub0tub3duQFRSSVBMRV9TRVJWRVJfRU5VTUBAQUFFWFBCVV9VU0VSX0lORk9fMEBAUEFVX0tOT1dOX1NFUlZFUl9JTkZPQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIFRSSVBMRV9TRVJWRVJfRU5VTTo6TWFwTnRUb0tub3duKHN0cnVjdCBfRE9NQUlOX0RJU1BMQVlfTUFDSElORSBjb25zdCAqLHN0cnVjdCBfS05PV05fU0VSVkVSX0lORk8gKikNCis/TWFwTnRUb0tub3duQFRSSVBMRV9TRVJWRVJfRU5VTUBAQUFFWFBCVV9ET01BSU5fRElTUExBWV9NQUNISU5FQEBQQVVfS05PV05fU0VSVkVSX0lORk9AQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBPU19BQ0xfU1VCSkVDVF9JVEVSOjpNYXBTcGVjaWZpY1RvR2VuZXJpYyh1bnNpZ25lZCBsb25nICosaW50KQ0KKz9NYXBTcGVjaWZpY1RvR2VuZXJpY0BPU19BQ0xfU1VCSkVDVF9JVEVSQEBRQUVKUEFLSEBaDQorOyBwcml2YXRlOiBlbnVtIF9TRVJWRVJfUk9MRSAgX190aGlzY2FsbCBUUklQTEVfU0VSVkVSX0VOVU06Ok1hcFR5cGVNYXNrVG9Sb2xlKHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP01hcFR5cGVNYXNrVG9Sb2xlQFRSSVBMRV9TRVJWRVJfRU5VTUBAQUJFP0FXNF9TRVJWRVJfUk9MRUBAS0BaDQorOyBwcml2YXRlOiBlbnVtIF9TRVJWRVJfVFlQRSAgX190aGlzY2FsbCBUUklQTEVfU0VSVkVSX0VOVU06Ok1hcFR5cGVNYXNrVG9UeXBlKHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP01hcFR5cGVNYXNrVG9UeXBlQFRSSVBMRV9TRVJWRVJfRU5VTUBAQUJFP0FXNF9TRVJWRVJfVFlQRUBAS0BaDQorOyBlbnVtIExNT19ERVZJQ0UgIF9fc3RkY2FsbCBOZXRUeXBlVG9MTU9UeXBlKHVuc2lnbmVkIGxvbmcpDQorP05ldFR5cGVUb0xNT1R5cGVAQFlHP0FXNExNT19ERVZJQ0VAQEtAWg0KKzsgcHVibGljOiBjbGFzcyBBTElBU19FTlVNX09CSiBjb25zdCAqIF9fdGhpc2NhbGwgQUxJQVNfRU5VTV9JVEVSOjpOZXh0KGxvbmcgKixpbnQpDQorP05leHRAQUxJQVNfRU5VTV9JVEVSQEBRQUVQQlZBTElBU19FTlVNX09CSkBAUEFKSEBaDQorOyBwdWJsaWM6IGNsYXNzIEJST1dTRV9ET01BSU5fSU5GTyBjb25zdCAqIF9fdGhpc2NhbGwgQlJPV1NFX0RPTUFJTl9FTlVNOjpOZXh0KHZvaWQpDQorP05leHRAQlJPV1NFX0RPTUFJTl9FTlVNQEBRQUVQQlZCUk9XU0VfRE9NQUlOX0lORk9AQFhaDQorOyBwdWJsaWM6IGNsYXNzIEZJTEUyX0VOVU1fT0JKIGNvbnN0ICogX190aGlzY2FsbCBGSUxFMl9FTlVNX0lURVI6Ok5leHQobG9uZyAqLGludCkNCis/TmV4dEBGSUxFMl9FTlVNX0lURVJAQFFBRVBCVkZJTEUyX0VOVU1fT0JKQEBQQUpIQFoNCis7IHB1YmxpYzogY2xhc3MgRklMRTNfRU5VTV9PQkogY29uc3QgKiBfX3RoaXNjYWxsIEZJTEUzX0VOVU1fSVRFUjo6TmV4dChsb25nICosaW50KQ0KKz9OZXh0QEZJTEUzX0VOVU1fSVRFUkBAUUFFUEJWRklMRTNfRU5VTV9PQkpAQFBBSkhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgSVRFUl9ERVZJQ0U6Ok5leHQodm9pZCkNCis/TmV4dEBJVEVSX0RFVklDRUBAUUFFUEJHWFoNCis7IHB1YmxpYzogY2xhc3MgQlJPV1NFX0RPTUFJTl9JTkZPICogX190aGlzY2FsbCBJVEVSX1NMX0JST1dTRV9ET01BSU5fSU5GTzo6TmV4dCh2b2lkKQ0KKz9OZXh0QElURVJfU0xfQlJPV1NFX0RPTUFJTl9JTkZPQEBRQUVQQVZCUk9XU0VfRE9NQUlOX0lORk9AQFhaDQorOyBwdWJsaWM6IGNsYXNzIExNX1JFU1VNRV9CVUZGRVIgKiBfX3RoaXNjYWxsIElURVJfU0xfTE1fUkVTVU1FX0JVRkZFUjo6TmV4dCh2b2lkKQ0KKz9OZXh0QElURVJfU0xfTE1fUkVTVU1FX0JVRkZFUkBAUUFFUEFWTE1fUkVTVU1FX0JVRkZFUkBAWFoNCis7IHB1YmxpYzogY2xhc3MgTkxTX1NUUiAqIF9fdGhpc2NhbGwgSVRFUl9TTF9OTFNfU1RSOjpOZXh0KHZvaWQpDQorP05leHRASVRFUl9TTF9OTFNfU1RSQEBRQUVQQVZOTFNfU1RSQEBYWg0KKzsgcHVibGljOiBjbGFzcyBMU0FfQUNDT1VOVFNfRU5VTV9PQkogY29uc3QgKiBfX3RoaXNjYWxsIExTQV9BQ0NPVU5UU19FTlVNX0lURVI6Ok5leHQobG9uZyAqLGludCkNCis/TmV4dEBMU0FfQUNDT1VOVFNfRU5VTV9JVEVSQEBRQUVQQlZMU0FfQUNDT1VOVFNfRU5VTV9PQkpAQFBBSkhAWg0KKzsgcHVibGljOiBjbGFzcyBMU0FfUFJJVklMRUdFU19FTlVNX09CSiBjb25zdCAqIF9fdGhpc2NhbGwgTFNBX1BSSVZJTEVHRVNfRU5VTV9JVEVSOjpOZXh0KGxvbmcgKixpbnQpDQorP05leHRATFNBX1BSSVZJTEVHRVNfRU5VTV9JVEVSQEBRQUVQQlZMU0FfUFJJVklMRUdFU19FTlVNX09CSkBAUEFKSEBaDQorOyBwdWJsaWM6IGNsYXNzIE5UX0dST1VQX0VOVU1fT0JKIGNvbnN0ICogX190aGlzY2FsbCBOVF9HUk9VUF9FTlVNX0lURVI6Ok5leHQobG9uZyAqLGludCkNCis/TmV4dEBOVF9HUk9VUF9FTlVNX0lURVJAQFFBRVBCVk5UX0dST1VQX0VOVU1fT0JKQEBQQUpIQFoNCis7IHB1YmxpYzogY2xhc3MgTlRfTUFDSElORV9FTlVNX09CSiBjb25zdCAqIF9fdGhpc2NhbGwgTlRfTUFDSElORV9FTlVNX0lURVI6Ok5leHQobG9uZyAqLGludCkNCis/TmV4dEBOVF9NQUNISU5FX0VOVU1fSVRFUkBAUUFFUEJWTlRfTUFDSElORV9FTlVNX09CSkBAUEFKSEBaDQorOyBwdWJsaWM6IGNsYXNzIE5UX1VTRVJfRU5VTV9PQkogY29uc3QgKiBfX3RoaXNjYWxsIE5UX1VTRVJfRU5VTV9JVEVSOjpOZXh0KGxvbmcgKixpbnQpDQorP05leHRATlRfVVNFUl9FTlVNX0lURVJAQFFBRVBCVk5UX1VTRVJfRU5VTV9PQkpAQFBBSkhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIE9TX0RBQ0xfU1VCSkVDVF9JVEVSOjpOZXh0KGxvbmcgKikNCis/TmV4dEBPU19EQUNMX1NVQkpFQ1RfSVRFUkBAVUFFSFBBSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgT1NfU0FDTF9TVUJKRUNUX0lURVI6Ok5leHQobG9uZyAqKQ0KKz9OZXh0QE9TX1NBQ0xfU1VCSkVDVF9JVEVSQEBVQUVIUEFKQFoNCis7IHB1YmxpYzogY2xhc3MgU0FNX1VTRVJfRU5VTV9PQkogY29uc3QgKiBfX3RoaXNjYWxsIFNBTV9VU0VSX0VOVU1fSVRFUjo6TmV4dChsb25nICosaW50KQ0KKz9OZXh0QFNBTV9VU0VSX0VOVU1fSVRFUkBAUUFFUEJWU0FNX1VTRVJfRU5VTV9PQkpAQFBBSkhAWg0KKzsgcHVibGljOiBjbGFzcyBUUlVTVEVEX0RPTUFJTl9FTlVNX09CSiBjb25zdCAqIF9fdGhpc2NhbGwgVFJVU1RFRF9ET01BSU5fRU5VTV9JVEVSOjpOZXh0KGxvbmcgKixpbnQpDQorP05leHRAVFJVU1RFRF9ET01BSU5fRU5VTV9JVEVSQEBRQUVQQlZUUlVTVEVEX0RPTUFJTl9FTlVNX09CSkBAUEFKSEBaDQorOyBwdWJsaWM6IGNsYXNzIFVTRVIwX0VOVU1fT0JKIGNvbnN0ICogX190aGlzY2FsbCBVU0VSMF9FTlVNX0lURVI6Ok5leHQobG9uZyAqLGludCkNCis/TmV4dEBVU0VSMF9FTlVNX0lURVJAQFFBRVBCVlVTRVIwX0VOVU1fT0JKQEBQQUpIQFoNCis7IHB1YmxpYzogY2xhc3MgVVNFUjEwX0VOVU1fT0JKIGNvbnN0ICogX190aGlzY2FsbCBVU0VSMTBfRU5VTV9JVEVSOjpOZXh0KGxvbmcgKixpbnQpDQorP05leHRAVVNFUjEwX0VOVU1fSVRFUkBAUUFFUEJWVVNFUjEwX0VOVU1fT0JKQEBQQUpIQFoNCis7IHB1YmxpYzogY2xhc3MgVVNFUjFfRU5VTV9PQkogY29uc3QgKiBfX3RoaXNjYWxsIFVTRVIxX0VOVU1fSVRFUjo6TmV4dChsb25nICosaW50KQ0KKz9OZXh0QFVTRVIxX0VOVU1fSVRFUkBAUUFFUEJWVVNFUjFfRU5VTV9PQkpAQFBBSkhAWg0KKzsgcHVibGljOiBjbGFzcyBVU0VSMl9FTlVNX09CSiBjb25zdCAqIF9fdGhpc2NhbGwgVVNFUjJfRU5VTV9JVEVSOjpOZXh0KGxvbmcgKixpbnQpDQorP05leHRAVVNFUjJfRU5VTV9JVEVSQEBRQUVQQlZVU0VSMl9FTlVNX09CSkBAUEFKSEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBMTV9SRVNVTUVfRU5VTV9JVEVSOjpOZXh0R2V0SW5mbyh2b2lkKQ0KKz9OZXh0R2V0SW5mb0BMTV9SRVNVTUVfRU5VTV9JVEVSQEBJQUVKWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIExNX1JFU1VNRV9FTlVNOjpOdWtlQnVmZmVycyh2b2lkKQ0KKz9OdWtlQnVmZmVyc0BMTV9SRVNVTUVfRU5VTUBASUFFWFhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBMTV9TUlZSRVM6Ok51a2VVc2Vyc1Nlc3Npb24odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP051a2VVc2Vyc1Nlc3Npb25ATE1fU1JWUkVTQEBTR0pQQkcwMEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfUE9MSUNZOjpPcGVuKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/T3BlbkBMU0FfUE9MSUNZQEBRQUVKUEJHS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfU0VDUkVUOjpPcGVuKGNsYXNzIExTQV9QT0xJQ1kgY29uc3QgJix1bnNpZ25lZCBsb25nKQ0KKz9PcGVuQExTQV9TRUNSRVRAQFFBRUpBQlZMU0FfUE9MSUNZQEBLQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBTQU1fRE9NQUlOOjpPcGVuRG9tYWluKGNsYXNzIFNBTV9TRVJWRVIgY29uc3QgJix2b2lkICosdW5zaWduZWQgbG9uZykNCis/T3BlbkRvbWFpbkBTQU1fRE9NQUlOQEBBQUVKQUJWU0FNX1NFUlZFUkBAUEFYS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMTV9TRVJWSUNFOjpQYXVzZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz9QYXVzZUBMTV9TRVJWSUNFQEBRQUVKSUlAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTE1fU0VSVklDRTo6UG9sbChpbnQgKikNCis/UG9sbEBMTV9TRVJWSUNFQEBRQUVKUEFIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIExTQV9BQ0NPVU5UOjpQcmludEluZm8odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/UHJpbnRJbmZvQExTQV9BQ0NPVU5UQEBJQUVYUEJHQFoNCis7IHB1YmxpYzogc3RydWN0IF9BQ0NFU1NfTElTVCAqIF9fdGhpc2NhbGwgTkVUX0FDQ0VTU18xOjpRdWVyeUFDRSh1bnNpZ25lZCBpbnQpY29uc3QgDQorP1F1ZXJ5QUNFQE5FVF9BQ0NFU1NfMUBAUUJFUEFVX0FDQ0VTU19MSVNUQEBJQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgT1NfQUNFOjpRdWVyeUFDRSh2b2lkKWNvbnN0IA0KKz9RdWVyeUFDRUBPU19BQ0VAQFFCRVBBWFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBPU19BQ0w6OlF1ZXJ5QUNFKHVuc2lnbmVkIGxvbmcsY2xhc3MgT1NfQUNFICopY29uc3QgDQorP1F1ZXJ5QUNFQE9TX0FDTEBAUUJFSktQQVZPU19BQ0VAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIE5FVF9BQ0NFU1NfMTo6UXVlcnlBQ0VDb3VudCh2b2lkKWNvbnN0IA0KKz9RdWVyeUFDRUNvdW50QE5FVF9BQ0NFU1NfMUBAUUJFSVhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBPU19BQ0w6OlF1ZXJ5QUNFQ291bnQodW5zaWduZWQgbG9uZyAqKWNvbnN0IA0KKz9RdWVyeUFDRUNvdW50QE9TX0FDTEBAUUJFSlBBS0BaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIE9TX0FDTCBjb25zdCAqIF9fdGhpc2NhbGwgT1NfQUNMX1NVQkpFQ1RfSVRFUjo6UXVlcnlBQ0wodm9pZCljb25zdCANCis/UXVlcnlBQ0xAT1NfQUNMX1NVQkpFQ1RfSVRFUkBASUJFUEJWT1NfQUNMQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQURNSU5fQVVUSE9SSVRZOjpRdWVyeUFjY2Vzc0FjY291bnREb21haW4odm9pZCljb25zdCANCis/UXVlcnlBY2Nlc3NBY2NvdW50RG9tYWluQEFETUlOX0FVVEhPUklUWUBAUUJFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBBRE1JTl9BVVRIT1JJVFk6OlF1ZXJ5QWNjZXNzQnVpbHRpbkRvbWFpbih2b2lkKWNvbnN0IA0KKz9RdWVyeUFjY2Vzc0J1aWx0aW5Eb21haW5AQURNSU5fQVVUSE9SSVRZQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIEFETUlOX0FVVEhPUklUWTo6UXVlcnlBY2Nlc3NMU0FQb2xpY3kodm9pZCljb25zdCANCis/UXVlcnlBY2Nlc3NMU0FQb2xpY3lAQURNSU5fQVVUSE9SSVRZQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIE9TX0FDRTo6UXVlcnlBY2Nlc3NNYXNrKHZvaWQpY29uc3QgDQorP1F1ZXJ5QWNjZXNzTWFza0BPU19BQ0VAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgT1NfREFDTF9TVUJKRUNUX0lURVI6OlF1ZXJ5QWNjZXNzTWFzayh2b2lkKWNvbnN0IA0KKz9RdWVyeUFjY2Vzc01hc2tAT1NfREFDTF9TVUJKRUNUX0lURVJAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQURNSU5fQVVUSE9SSVRZOjpRdWVyeUFjY2Vzc1NhbVNlcnZlcih2b2lkKWNvbnN0IA0KKz9RdWVyeUFjY2Vzc1NhbVNlcnZlckBBRE1JTl9BVVRIT1JJVFlAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBOVF9NQUNISU5FX0VOVU1fT0JKOjpRdWVyeUFjY291bnRDdHJsKHZvaWQpY29uc3QgDQorP1F1ZXJ5QWNjb3VudEN0cmxATlRfTUFDSElORV9FTlVNX09CSkBAUUJFSVhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFVTRVJfMjo6UXVlcnlBY2NvdW50RGlzYWJsZWQodm9pZCljb25zdCANCis/UXVlcnlBY2NvdW50RGlzYWJsZWRAVVNFUl8yQEBRQkVIWFoNCis7IHB1YmxpYzogY2xhc3MgU0FNX0RPTUFJTiAqIF9fdGhpc2NhbGwgQURNSU5fQVVUSE9SSVRZOjpRdWVyeUFjY291bnREb21haW4odm9pZCljb25zdCANCis/UXVlcnlBY2NvdW50RG9tYWluQEFETUlOX0FVVEhPUklUWUBAUUJFUEFWU0FNX0RPTUFJTkBAWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFVTRVJfMjo6UXVlcnlBY2NvdW50RXhwaXJlcyh2b2lkKWNvbnN0IA0KKz9RdWVyeUFjY291bnRFeHBpcmVzQFVTRVJfMkBAUUJFSlhaDQorOyBwdWJsaWM6IGVudW0gX0FDQ09VTlRfVFlQRSAgX190aGlzY2FsbCBVU0VSXzM6OlF1ZXJ5QWNjb3VudFR5cGUodm9pZCljb25zdCANCis/UXVlcnlBY2NvdW50VHlwZUBVU0VSXzNAQFFCRT9BVzRfQUNDT1VOVF9UWVBFQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgT1NfQUNFOjpRdWVyeUFjZUZsYWdzKHZvaWQpY29uc3QgDQorP1F1ZXJ5QWNlRmxhZ3NAT1NfQUNFQEBRQkVFWFoNCis7IHB1YmxpYzogc3RydWN0IF9BQ0wgKiBfX3RoaXNjYWxsIE9TX0FDTDo6UXVlcnlBY2wodm9pZCljb25zdCANCis/UXVlcnlBY2xAT1NfQUNMQEBRQkVQQVVfQUNMQEBYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBPU19PQkpFQ1RfV0lUSF9EQVRBOjpRdWVyeUFsbG9jU2l6ZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUFsbG9jU2l6ZUBPU19PQkpFQ1RfV0lUSF9EQVRBQEBJQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIERPTUFJTjo6UXVlcnlBbnlEQyh2b2lkKWNvbnN0IA0KKz9RdWVyeUFueURDQERPTUFJTkBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIE1FTUJFUlNISVBfTE1fT0JKOjpRdWVyeUFzc29jTmFtZSh1bnNpZ25lZCBpbnQpY29uc3QgDQorP1F1ZXJ5QXNzb2NOYW1lQE1FTUJFUlNISVBfTE1fT0JKQEBRQkVQQkdJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIE9TX1NBQ0xfU1VCSkVDVF9JVEVSOjpRdWVyeUF1ZGl0QWNjZXNzTWFza19GKHZvaWQpY29uc3QgDQorP1F1ZXJ5QXVkaXRBY2Nlc3NNYXNrX0ZAT1NfU0FDTF9TVUJKRUNUX0lURVJAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgT1NfU0FDTF9TVUJKRUNUX0lURVI6OlF1ZXJ5QXVkaXRBY2Nlc3NNYXNrX1Modm9pZCljb25zdCANCis/UXVlcnlBdWRpdEFjY2Vzc01hc2tfU0BPU19TQUNMX1NVQkpFQ1RfSVRFUkBAUUJFS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIExPQ0FMX1VTRVI6OlF1ZXJ5QXV0aEZsYWdzKHZvaWQpY29uc3QgDQorP1F1ZXJ5QXV0aEZsYWdzQExPQ0FMX1VTRVJAQFVCRUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBVU0VSXzExOjpRdWVyeUF1dGhGbGFncyh2b2lkKWNvbnN0IA0KKz9RdWVyeUF1dGhGbGFnc0BVU0VSXzExQEBVQkVLWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgTE1fRU5VTV9JVEVSOjpRdWVyeUJhc2VQdHIodm9pZCljb25zdCANCis/UXVlcnlCYXNlUHRyQExNX0VOVU1fSVRFUkBASUJFUEFFWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgTE1fUkVTVU1FX0VOVU1fSVRFUjo6UXVlcnlCYXNlUHRyKHZvaWQpY29uc3QgDQorP1F1ZXJ5QmFzZVB0ckBMTV9SRVNVTUVfRU5VTV9JVEVSQEBJQkVQQkVYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBERVZJQ0U6OlF1ZXJ5QnVmUHRyKHZvaWQpDQorP1F1ZXJ5QnVmUHRyQERFVklDRUBASUFFUEFFWFoNCis7IHByb3RlY3RlZDogdm9pZCAqIF9fdGhpc2NhbGwgTlRfTUVNT1JZOjpRdWVyeUJ1ZmZlcih2b2lkKWNvbnN0IA0KKz9RdWVyeUJ1ZmZlckBOVF9NRU1PUllAQElCRVBBWFhaDQorOyBwdWJsaWM6IGNsYXNzIEJVRkZFUiBjb25zdCAmIF9fdGhpc2NhbGwgU0VSVklDRV9DT05UUk9MOjpRdWVyeUJ1ZmZlcih2b2lkKWNvbnN0IA0KKz9RdWVyeUJ1ZmZlckBTRVJWSUNFX0NPTlRST0xAQFFCRUFCVkJVRkZFUkBAWFoNCis7IHB1YmxpYzogc3RydWN0IF9TQU1fUklEX0VOVU1FUkFUSU9OIGNvbnN0ICogX190aGlzY2FsbCBBTElBU19FTlVNX09CSjo6UXVlcnlCdWZmZXJQdHIodm9pZCljb25zdCANCis/UXVlcnlCdWZmZXJQdHJAQUxJQVNfRU5VTV9PQkpAQFFCRVBCVV9TQU1fUklEX0VOVU1FUkFUSU9OQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1NFUlZFUl9JTkZPXzEwMCBjb25zdCAqIF9fdGhpc2NhbGwgRE9NQUlOMF9FTlVNX09CSjo6UXVlcnlCdWZmZXJQdHIodm9pZCljb25zdCANCis/UXVlcnlCdWZmZXJQdHJARE9NQUlOMF9FTlVNX09CSkBAUUJFUEJVX1NFUlZFUl9JTkZPXzEwMEBAWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgRU5VTV9PQkpfQkFTRTo6UXVlcnlCdWZmZXJQdHIodm9pZCljb25zdCANCis/UXVlcnlCdWZmZXJQdHJARU5VTV9PQkpfQkFTRUBASUJFUEJFWFoNCis7IHB1YmxpYzogc3RydWN0IF9GSUxFX0lORk9fMyBjb25zdCAqIF9fdGhpc2NhbGwgRklMRTNfRU5VTV9PQko6OlF1ZXJ5QnVmZmVyUHRyKHZvaWQpY29uc3QgDQorP1F1ZXJ5QnVmZmVyUHRyQEZJTEUzX0VOVU1fT0JKQEBRQkVQQlVfRklMRV9JTkZPXzNAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfR1JPVVBfSU5GT18wIGNvbnN0ICogX190aGlzY2FsbCBHUk9VUDBfRU5VTV9PQko6OlF1ZXJ5QnVmZmVyUHRyKHZvaWQpY29uc3QgDQorP1F1ZXJ5QnVmZmVyUHRyQEdST1VQMF9FTlVNX09CSkBAUUJFUEJVX0dST1VQX0lORk9fMEBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgTE1fUkVTVU1FX0JVRkZFUjo6UXVlcnlCdWZmZXJQdHIodm9pZCljb25zdCANCis/UXVlcnlCdWZmZXJQdHJATE1fUkVTVU1FX0JVRkZFUkBAUUJFUEJFWFoNCis7IHB1YmxpYzogc3RydWN0IF9QT0xJQ1lfUFJJVklMRUdFX0RFRklOSVRJT04gY29uc3QgKiBfX3RoaXNjYWxsIExTQV9QUklWSUxFR0VTX0VOVU1fT0JKOjpRdWVyeUJ1ZmZlclB0cih2b2lkKWNvbnN0IA0KKz9RdWVyeUJ1ZmZlclB0ckBMU0FfUFJJVklMRUdFU19FTlVNX09CSkBAUUJFUEJVX1BPTElDWV9QUklWSUxFR0VfREVGSU5JVElPTkBAWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgTkVXX0xNX09CSjo6UXVlcnlCdWZmZXJQdHIodm9pZCljb25zdCANCis/UXVlcnlCdWZmZXJQdHJATkVXX0xNX09CSkBASUJFUEFFWFoNCis7IHB1YmxpYzogc3RydWN0IF9ET01BSU5fRElTUExBWV9NQUNISU5FIGNvbnN0ICogX190aGlzY2FsbCBOVF9NQUNISU5FX0VOVU1fT0JKOjpRdWVyeUJ1ZmZlclB0cih2b2lkKWNvbnN0IA0KKz9RdWVyeUJ1ZmZlclB0ckBOVF9NQUNISU5FX0VOVU1fT0JKQEBRQkVQQlVfRE9NQUlOX0RJU1BMQVlfTUFDSElORUBAWFoNCis7IHB1YmxpYzogc3RydWN0IF9TQU1fUklEX0VOVU1FUkFUSU9OIGNvbnN0ICogX190aGlzY2FsbCBTQU1fVVNFUl9FTlVNX09CSjo6UXVlcnlCdWZmZXJQdHIodm9pZCljb25zdCANCis/UXVlcnlCdWZmZXJQdHJAU0FNX1VTRVJfRU5VTV9PQkpAQFFCRVBCVV9TQU1fUklEX0VOVU1FUkFUSU9OQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1NFUlZFUl9JTkZPXzEwMSBjb25zdCAqIF9fdGhpc2NhbGwgU0VSVkVSMV9FTlVNX09CSjo6UXVlcnlCdWZmZXJQdHIodm9pZCljb25zdCANCis/UXVlcnlCdWZmZXJQdHJAU0VSVkVSMV9FTlVNX09CSkBAUUJFUEJVX1NFUlZFUl9JTkZPXzEwMUBAWFoNCis7IHB1YmxpYzogc3RydWN0IF9VU0VSX0lORk9fMCBjb25zdCAqIF9fdGhpc2NhbGwgVVNFUjBfRU5VTV9PQko6OlF1ZXJ5QnVmZmVyUHRyKHZvaWQpY29uc3QgDQorP1F1ZXJ5QnVmZmVyUHRyQFVTRVIwX0VOVU1fT0JKQEBRQkVQQlVfVVNFUl9JTkZPXzBAQFhaDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIE5FV19MTV9PQko6OlF1ZXJ5QnVmZmVyU2l6ZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUJ1ZmZlclNpemVATkVXX0xNX09CSkBASUJFSVhaDQorOyBwdWJsaWM6IGNsYXNzIFNBTV9ET01BSU4gKiBfX3RoaXNjYWxsIEFETUlOX0FVVEhPUklUWTo6UXVlcnlCdWlsdGluRG9tYWluKHZvaWQpY29uc3QgDQorP1F1ZXJ5QnVpbHRpbkRvbWFpbkBBRE1JTl9BVVRIT1JJVFlAQFFCRVBBVlNBTV9ET01BSU5AQFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBPU19BQ0w6OlF1ZXJ5Qnl0ZXNJblVzZSh1bnNpZ25lZCBsb25nICopY29uc3QgDQorP1F1ZXJ5Qnl0ZXNJblVzZUBPU19BQ0xAQFFCRUpQQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgTE1fU0VTU0lPTl8yOjpRdWVyeUNsaWVudFR5cGUodm9pZCljb25zdCANCis/UXVlcnlDbGllbnRUeXBlQExNX1NFU1NJT05fMkBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIEdST1VQXzE6OlF1ZXJ5Q29tbWVudCh2b2lkKWNvbnN0IA0KKz9RdWVyeUNvbW1lbnRAR1JPVVBfMUBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIFNFUlZFUjFfRU5VTV9PQko6OlF1ZXJ5Q29tbWVudCh2b2lkKWNvbnN0IA0KKz9RdWVyeUNvbW1lbnRAU0VSVkVSMV9FTlVNX09CSkBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIFNFUlZFUl8xOjpRdWVyeUNvbW1lbnQodm9pZCljb25zdCANCis/UXVlcnlDb21tZW50QFNFUlZFUl8xQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgU0hBUkVfMTo6UXVlcnlDb21tZW50KHZvaWQpY29uc3QgDQorP1F1ZXJ5Q29tbWVudEBTSEFSRV8xQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgVVNFUl8xMTo6UXVlcnlDb21tZW50KHZvaWQpY29uc3QgDQorP1F1ZXJ5Q29tbWVudEBVU0VSXzExQEBRQkVQQkdYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTkVUX05BTUU6OlF1ZXJ5Q29tcHV0ZXJOYW1lKGNsYXNzIE5MU19TVFIgKikNCis/UXVlcnlDb21wdXRlck5hbWVATkVUX05BTUVAQFFBRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0NfU0VSVklDRTo6UXVlcnlDb25maWcoc3RydWN0IF9RVUVSWV9TRVJWSUNFX0NPTkZJR1cgKiAqKQ0KKz9RdWVyeUNvbmZpZ0BTQ19TRVJWSUNFQEBRQUVKUEFQQVVfUVVFUllfU0VSVklDRV9DT05GSUdXQEBAWg0KKzsgcHVibGljOiBjbGFzcyBPU19TRUNVUklUWV9ERVNDUklQVE9SX0NPTlRST0wgY29uc3QgKiBfX3RoaXNjYWxsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6OlF1ZXJ5Q29udHJvbCh2b2lkKWNvbnN0IA0KKz9RdWVyeUNvbnRyb2xAT1NfU0VDVVJJVFlfREVTQ1JJUFRPUkBAUUJFUEJWT1NfU0VDVVJJVFlfREVTQ1JJUFRPUl9DT05UUk9MQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1RSVVNURURfQ09OVFJPTExFUlNfSU5GTyBjb25zdCAmIF9fdGhpc2NhbGwgTFNBX1RSVVNURURfRENfTElTVDo6UXVlcnlDb250cm9sbGVyTGlzdCh2b2lkKWNvbnN0IA0KKz9RdWVyeUNvbnRyb2xsZXJMaXN0QExTQV9UUlVTVEVEX0RDX0xJU1RAQFFCRUFCVV9UUlVTVEVEX0NPTlRST0xMRVJTX0lORk9AQFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfVFJVU1RFRF9ET01BSU46OlF1ZXJ5Q29udHJvbGxlckxpc3QoY2xhc3MgTFNBX1JFRl9ET01BSU5fTUVNICopY29uc3QgDQorP1F1ZXJ5Q29udHJvbGxlckxpc3RATFNBX1RSVVNURURfRE9NQUlOQEBRQkVKUEFWTFNBX1JFRl9ET01BSU5fTUVNQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBFTlVNX0NBTExFUjo6UXVlcnlDb3VudCh2b2lkKWNvbnN0IA0KKz9RdWVyeUNvdW50QEVOVU1fQ0FMTEVSQEBRQkVJWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTE1fRU5VTV9JVEVSOjpRdWVyeUNvdW50KHZvaWQpY29uc3QgDQorP1F1ZXJ5Q291bnRATE1fRU5VTV9JVEVSQEBJQkVJWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTE1fUkVTVU1FX0VOVU1fSVRFUjo6UXVlcnlDb3VudCh2b2lkKWNvbnN0IA0KKz9RdWVyeUNvdW50QExNX1JFU1VNRV9FTlVNX0lURVJAQElCRUlYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBMU0FfVFJVU1RFRF9EQ19MSVNUOjpRdWVyeUNvdW50KHZvaWQpDQorP1F1ZXJ5Q291bnRATFNBX1RSVVNURURfRENfTElTVEBAUUFFSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBOVF9NRU1PUlk6OlF1ZXJ5Q291bnQodm9pZCljb25zdCANCis/UXVlcnlDb3VudEBOVF9NRU1PUllAQFFCRUtYWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgTlRfQUNDT1VOVF9FTlVNOjpRdWVyeUNvdW50UHJlZmVyZW5jZXMyKHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9RdWVyeUNvdW50UHJlZmVyZW5jZXMyQE5UX0FDQ09VTlRfRU5VTUBAS0dKUEFLMElLS0tAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBOVF9BQ0NPVU5UX0VOVU06OlF1ZXJ5Q291bnRQcmVmZXJlbmNlcyh1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/UXVlcnlDb3VudFByZWZlcmVuY2VzQE5UX0FDQ09VTlRfRU5VTUBATUFFSlBBSzBJS0tLQFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIE9TX0FDTF9TVUJKRUNUX0lURVI6OlF1ZXJ5Q3VycmVudEFDRSh2b2lkKWNvbnN0IA0KKz9RdWVyeUN1cnJlbnRBQ0VAT1NfQUNMX1NVQkpFQ1RfSVRFUkBASUJFS1haDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfUE9MSUNZOjpRdWVyeUN1cnJlbnRVc2VyKGNsYXNzIE5MU19TVFIgKiljb25zdCANCis/UXVlcnlDdXJyZW50VXNlckBMU0FfUE9MSUNZQEBRQkVKUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgU0hBUkVfMjo6UXVlcnlDdXJyZW50VXNlcyh2b2lkKWNvbnN0IA0KKz9RdWVyeUN1cnJlbnRVc2VzQFNIQVJFXzJAQFFCRUlYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUjo6UXVlcnlEQUNMKGludCAqLGNsYXNzIE9TX0FDTCAqICosaW50ICopY29uc3QgDQorP1F1ZXJ5REFDTEBPU19TRUNVUklUWV9ERVNDUklQVE9SQEBRQkVKUEFIUEFQQVZPU19BQ0xAQDBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTFNBX0RPTUFJTl9JTkZPOjpRdWVyeURjTmFtZShjbGFzcyBOTFNfU1RSICopDQorP1F1ZXJ5RGNOYW1lQExTQV9ET01BSU5fSU5GT0BAUUFFSlBBVk5MU19TVFJAQEBaDQorOyBwcm90ZWN0ZWQ6IGVudW0gTE1PX0RFVklDRSAgX190aGlzY2FsbCBERVZJQ0U6OlF1ZXJ5RGV2VHlwZSh2b2lkKWNvbnN0IA0KKz9RdWVyeURldlR5cGVAREVWSUNFQEBJQkU/QVc0TE1PX0RFVklDRUBAWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExPQ0FUSU9OOjpRdWVyeURpc3BsYXlOYW1lKGNsYXNzIE5MU19TVFIgKiljb25zdCANCis/UXVlcnlEaXNwbGF5TmFtZUBMT0NBVElPTkBAUUJFSlBBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfUFJJVklMRUdFU19FTlVNX09CSjo6UXVlcnlEaXNwbGF5TmFtZShjbGFzcyBOTFNfU1RSICosY2xhc3MgTFNBX1BPTElDWSBjb25zdCAqKWNvbnN0IA0KKz9RdWVyeURpc3BsYXlOYW1lQExTQV9QUklWSUxFR0VTX0VOVU1fT0JKQEBRQkVKUEFWTkxTX1NUUkBAUEJWTFNBX1BPTElDWUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIExPQ0FUSU9OOjpRdWVyeURvbWFpbih2b2lkKWNvbnN0IA0KKz9RdWVyeURvbWFpbkBMT0NBVElPTkBAUUJFUEJHWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExTQV9UUkFOU0xBVEVEX05BTUVfTUVNOjpRdWVyeURvbWFpbkluZGV4KHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP1F1ZXJ5RG9tYWluSW5kZXhATFNBX1RSQU5TTEFURURfTkFNRV9NRU1AQFFCRUpLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIEJST1dTRV9ET01BSU5fSU5GTzo6UXVlcnlEb21haW5OYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5RG9tYWluTmFtZUBCUk9XU0VfRE9NQUlOX0lORk9AQFFCRVBCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBCUk9XU0VfRE9NQUlOX0lORk86OlF1ZXJ5RG9tYWluU291cmNlcyh2b2lkKWNvbnN0IA0KKz9RdWVyeURvbWFpblNvdXJjZXNAQlJPV1NFX0RPTUFJTl9JTkZPQEBRQkVLWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5FVF9OQU1FOjpRdWVyeURyaXZlKGNsYXNzIE5MU19TVFIgKikNCis/UXVlcnlEcml2ZUBORVRfTkFNRUBAUUFFSlBBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBVU0VSX01PREFMU18zOjpRdWVyeUR1cmF0aW9uKHZvaWQpY29uc3QgDQorP1F1ZXJ5RHVyYXRpb25AVVNFUl9NT0RBTFNfM0BAUUJFS1haDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBCQVNFOjpRdWVyeUVycm9yKHZvaWQpY29uc3QgDQorP1F1ZXJ5RXJyb3JAQkFTRUBAUUJFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMTV9TRVJWSUNFOjpRdWVyeUV4aXRDb2RlKHZvaWQpY29uc3QgDQorP1F1ZXJ5RXhpdENvZGVATE1fU0VSVklDRUBAUUJFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBORVRfQUNDRVNTXzE6OlF1ZXJ5RmFpbGluZ05hbWUoY2xhc3MgTkxTX1NUUiAqLGVudW0gUEVSTU5BTUVfVFlQRSAqKWNvbnN0IA0KKz9RdWVyeUZhaWxpbmdOYW1lQE5FVF9BQ0NFU1NfMUBAUUJFSlBBVk5MU19TVFJAQFBBVzRQRVJNTkFNRV9UWVBFQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBMU0FfVFJBTlNMQVRFRF9TSURfTUVNOjpRdWVyeUZhaWxpbmdOYW1lSW5kZXgodW5zaWduZWQgbG9uZyAqKQ0KKz9RdWVyeUZhaWxpbmdOYW1lSW5kZXhATFNBX1RSQU5TTEFURURfU0lEX01FTUBAUUFFSFBBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBMTV9GSUxFOjpRdWVyeUZpbGVJZCh2b2lkKWNvbnN0IA0KKz9RdWVyeUZpbGVJZEBMTV9GSUxFQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFVTRVJfTU9EQUxTOjpRdWVyeUZvcmNlTG9nb2ZmKHZvaWQpY29uc3QgDQorP1F1ZXJ5Rm9yY2VMb2dvZmZAVVNFUl9NT0RBTFNAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgVVNFUl8xMTo6UXVlcnlGdWxsTmFtZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUZ1bGxOYW1lQFVTRVJfMTFAQFFCRVBCR1haDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMTV9TRVJWSUNFOjpRdWVyeUZ1bGxTdGF0dXMoZW51bSBMTV9TRVJWSUNFX1NUQVRVUyAqLHN0cnVjdCBMTV9TRVJWSUNFX09USEVSX1NUQVRVUyAqKQ0KKz9RdWVyeUZ1bGxTdGF0dXNATE1fU0VSVklDRUBAUUFFSlBBVzRMTV9TRVJWSUNFX1NUQVRVU0BAUEFVTE1fU0VSVklDRV9PVEhFUl9TVEFUVVNAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBPU19TRUNVUklUWV9ERVNDUklQVE9SOjpRdWVyeUdyb3VwKGludCAqLGNsYXNzIE9TX1NJRCAqICosaW50ICopY29uc3QgDQorP1F1ZXJ5R3JvdXBAT1NfU0VDVVJJVFlfREVTQ1JJUFRPUkBAUUJFSlBBSFBBUEFWT1NfU0lEQEAwQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgTFNBX09CSkVDVDo6UXVlcnlIYW5kbGUodm9pZCljb25zdCANCis/UXVlcnlIYW5kbGVATFNBX09CSkVDVEBAUUJFUEFYWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgU0FNX09CSkVDVDo6UXVlcnlIYW5kbGUodm9pZCljb25zdCANCis/UXVlcnlIYW5kbGVAU0FNX09CSkVDVEBAUUJFUEFYWFoNCis7IHB1YmxpYzogc3RydWN0IFNDX0hBTkRMRV9fICogX190aGlzY2FsbCBTRVJWSUNFX0NPTlRST0w6OlF1ZXJ5SGFuZGxlKHZvaWQpY29uc3QgDQorP1F1ZXJ5SGFuZGxlQFNFUlZJQ0VfQ09OVFJPTEBAUUJFUEFVU0NfSEFORExFX19AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBVU0VSXzExOjpRdWVyeUhvbWVEaXIodm9pZCljb25zdCANCis/UXVlcnlIb21lRGlyQFVTRVJfMTFAQFFCRVBCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBVU0VSXzM6OlF1ZXJ5SG9tZWRpckRyaXZlKHZvaWQpY29uc3QgDQorP1F1ZXJ5SG9tZWRpckRyaXZlQFVTRVJfM0BAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfU0VUVElORzo6UXVlcnlIb3Vyc0Jsb2NrKHZvaWQpY29uc3QgDQorP1F1ZXJ5SG91cnNCbG9ja0BMT0dPTl9IT1VSU19TRVRUSU5HQEBRQkVQQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgTE1fU0VTU0lPTl8xMDo6UXVlcnlJZGxlVGltZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUlkbGVUaW1lQExNX1NFU1NJT05fMTBAQFFCRUtYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTFNBX1NFQ1JFVDo6UXVlcnlJbmZvKGNsYXNzIE5MU19TVFIgKixjbGFzcyBOTFNfU1RSICosdW5pb24gX0xBUkdFX0lOVEVHRVIgKix1bmlvbiBfTEFSR0VfSU5URUdFUiAqKWNvbnN0IA0KKz9RdWVyeUluZm9ATFNBX1NFQ1JFVEBAUUJFSlBBVk5MU19TVFJAQDBQQVRfTEFSR0VfSU5URUdFUkBAMUBaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgTFNBX1RSVVNURURfRENfTElTVDo6UXVlcnlJbmZvKGNsYXNzIE5MU19TVFIgY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9RdWVyeUluZm9ATFNBX1RSVVNURURfRENfTElTVEBAQUFFSkFCVk5MU19TVFJAQFBCR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIExNX0VOVU06OlF1ZXJ5SW5mb0xldmVsKHZvaWQpY29uc3QgDQorP1F1ZXJ5SW5mb0xldmVsQExNX0VOVU1AQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBMTV9SRVNVTUVfRU5VTTo6UXVlcnlJbmZvTGV2ZWwodm9pZCljb25zdCANCis/UXVlcnlJbmZvTGV2ZWxATE1fUkVTVU1FX0VOVU1AQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgT1NfREFDTF9TVUJKRUNUX0lURVI6OlF1ZXJ5SW5oZXJpdE9ubHlBY2Nlc3NNYXNrKHZvaWQpY29uc3QgDQorP1F1ZXJ5SW5oZXJpdE9ubHlBY2Nlc3NNYXNrQE9TX0RBQ0xfU1VCSkVDVF9JVEVSQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIE9TX1NBQ0xfU1VCSkVDVF9JVEVSOjpRdWVyeUluaGVyaXRPbmx5QXVkaXRBY2Nlc3NNYXNrX0Yodm9pZCljb25zdCANCis/UXVlcnlJbmhlcml0T25seUF1ZGl0QWNjZXNzTWFza19GQE9TX1NBQ0xfU1VCSkVDVF9JVEVSQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIE9TX1NBQ0xfU1VCSkVDVF9JVEVSOjpRdWVyeUluaGVyaXRPbmx5QXVkaXRBY2Nlc3NNYXNrX1Modm9pZCljb25zdCANCis/UXVlcnlJbmhlcml0T25seUF1ZGl0QWNjZXNzTWFza19TQE9TX1NBQ0xfU1VCSkVDVF9JVEVSQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTE1fUkVTVU1FX0JVRkZFUjo6UXVlcnlJdGVtQ291bnQodm9pZCljb25zdCANCis/UXVlcnlJdGVtQ291bnRATE1fUkVTVU1FX0JVRkZFUkBAUUJFSVhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTUVNQkVSU0hJUF9MTV9PQko6OlF1ZXJ5SXRlbVNpemUodm9pZCljb25zdCANCis/UXVlcnlJdGVtU2l6ZUBNRU1CRVJTSElQX0xNX09CSkBATUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBXS1NUQV8xOjpRdWVyeUxNUm9vdCh2b2lkKWNvbnN0IA0KKz9RdWVyeUxNUm9vdEBXS1NUQV8xQEBRQkVQQkdYWg0KKzsgcHVibGljOiBjbGFzcyBMU0FfUE9MSUNZICogX190aGlzY2FsbCBBRE1JTl9BVVRIT1JJVFk6OlF1ZXJ5TFNBUG9saWN5KHZvaWQpY29uc3QgDQorP1F1ZXJ5TFNBUG9saWN5QEFETUlOX0FVVEhPUklUWUBAUUJFUEFWTFNBX1BPTElDWUBAWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5FVF9OQU1FOjpRdWVyeUxhc3RDb21wb25lbnQoY2xhc3MgTkxTX1NUUiAqKQ0KKz9RdWVyeUxhc3RDb21wb25lbnRATkVUX05BTUVAQFFBRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgT1NfU0lEOjpRdWVyeUxhc3RTdWJBdXRob3JpdHkodW5zaWduZWQgbG9uZyAqICopY29uc3QgDQorP1F1ZXJ5TGFzdFN1YkF1dGhvcml0eUBPU19TSURAQFFCRUpQQVBBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBPU19TSUQ6OlF1ZXJ5TGVuZ3RoKHZvaWQpY29uc3QgDQorP1F1ZXJ5TGVuZ3RoQE9TX1NJREBAUUJFS1haDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBORVRfTkFNRTo6UXVlcnlMb2NhbERyaXZlKGNsYXNzIE5MU19TVFIgKikNCis/UXVlcnlMb2NhbERyaXZlQE5FVF9OQU1FQEBRQUVKUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5FVF9OQU1FOjpRdWVyeUxvY2FsUGF0aChjbGFzcyBOTFNfU1RSICopDQorP1F1ZXJ5TG9jYWxQYXRoQE5FVF9OQU1FQEBRQUVKUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNDX01BTkFHRVI6OlF1ZXJ5TG9ja1N0YXR1cyhzdHJ1Y3QgX1FVRVJZX1NFUlZJQ0VfTE9DS19TVEFUVVNXICogKikNCis/UXVlcnlMb2NrU3RhdHVzQFNDX01BTkFHRVJAQFFBRUpQQVBBVV9RVUVSWV9TRVJWSUNFX0xPQ0tfU1RBVFVTV0BAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgVVNFUl8yOjpRdWVyeUxvY2tvdXQodm9pZCljb25zdCANCis/UXVlcnlMb2Nrb3V0QFVTRVJfMkBAUUJFSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBXS1NUQV8xMDo6UXVlcnlMb2dvbkRvbWFpbih2b2lkKWNvbnN0IA0KKz9RdWVyeUxvZ29uRG9tYWluQFdLU1RBXzEwQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgV0tTVEFfVVNFUl8xOjpRdWVyeUxvZ29uRG9tYWluKHZvaWQpY29uc3QgDQorP1F1ZXJ5TG9nb25Eb21haW5AV0tTVEFfVVNFUl8xQEBRQkVQQkdYWg0KKzsgcHVibGljOiBjbGFzcyBMT0dPTl9IT1VSU19TRVRUSU5HIGNvbnN0ICYgX190aGlzY2FsbCBVU0VSXzExOjpRdWVyeUxvZ29uSG91cnModm9pZCljb25zdCANCis/UXVlcnlMb2dvbkhvdXJzQFVTRVJfMTFAQFFCRUFCVkxPR09OX0hPVVJTX1NFVFRJTkdAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBXS1NUQV8xOjpRdWVyeUxvZ29uU2VydmVyKHZvaWQpY29uc3QgDQorP1F1ZXJ5TG9nb25TZXJ2ZXJAV0tTVEFfMUBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIFdLU1RBX1VTRVJfMTo6UXVlcnlMb2dvblNlcnZlcih2b2lkKWNvbnN0IA0KKz9RdWVyeUxvZ29uU2VydmVyQFdLU1RBX1VTRVJfMUBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIFdLU1RBXzEwOjpRdWVyeUxvZ29uVXNlcih2b2lkKWNvbnN0IA0KKz9RdWVyeUxvZ29uVXNlckBXS1NUQV8xMEBAUUJFUEJHWFoNCis7IHB1YmxpYzogc3RydWN0IF9MVUlEICBfX3RoaXNjYWxsIE9TX0xVSUQ6OlF1ZXJ5THVpZCh2b2lkKWNvbnN0IA0KKz9RdWVyeUx1aWRAT1NfTFVJREBAUUJFP0FVX0xVSURAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIFNFUlZFUjFfRU5VTV9PQko6OlF1ZXJ5TWFqb3JWZXIodm9pZCljb25zdCANCis/UXVlcnlNYWpvclZlckBTRVJWRVIxX0VOVU1fT0JKQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgU0VSVkVSXzE6OlF1ZXJ5TWFqb3JWZXIodm9pZCljb25zdCANCis/UXVlcnlNYWpvclZlckBTRVJWRVJfMUBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIFdLU1RBXzEwOjpRdWVyeU1ham9yVmVyKHZvaWQpY29uc3QgDQorP1F1ZXJ5TWFqb3JWZXJAV0tTVEFfMTBAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgVVNFUl9NT0RBTFM6OlF1ZXJ5TWF4UGFzc3dkQWdlKHZvaWQpY29uc3QgDQorP1F1ZXJ5TWF4UGFzc3dkQWdlQFVTRVJfTU9EQUxTQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgU0VSVkVSXzI6OlF1ZXJ5TWF4VXNlcnModm9pZCljb25zdCANCis/UXVlcnlNYXhVc2Vyc0BTRVJWRVJfMkBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIFNIQVJFXzI6OlF1ZXJ5TWF4VXNlcyh2b2lkKWNvbnN0IA0KKz9RdWVyeU1heFVzZXNAU0hBUkVfMkBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBVU0VSX01PREFMUzo6UXVlcnlNaW5QYXNzd2RBZ2Uodm9pZCljb25zdCANCis/UXVlcnlNaW5QYXNzd2RBZ2VAVVNFUl9NT0RBTFNAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBVU0VSX01PREFMUzo6UXVlcnlNaW5QYXNzd2RMZW4odm9pZCljb25zdCANCis/UXVlcnlNaW5QYXNzd2RMZW5AVVNFUl9NT0RBTFNAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBTRVJWRVIxX0VOVU1fT0JKOjpRdWVyeU1pbm9yVmVyKHZvaWQpY29uc3QgDQorP1F1ZXJ5TWlub3JWZXJAU0VSVkVSMV9FTlVNX09CSkBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIFNFUlZFUl8xOjpRdWVyeU1pbm9yVmVyKHZvaWQpY29uc3QgDQorP1F1ZXJ5TWlub3JWZXJAU0VSVkVSXzFAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBXS1NUQV8xMDo6UXVlcnlNaW5vclZlcih2b2lkKWNvbnN0IA0KKz9RdWVyeU1pbm9yVmVyQFdLU1RBXzEwQEBRQkVJWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExPQ0FUSU9OOjpRdWVyeU5PU1ZlcnNpb24odW5zaWduZWQgaW50ICosdW5zaWduZWQgaW50ICopDQorP1F1ZXJ5Tk9TVmVyc2lvbkBMT0NBVElPTkBAUUFFSlBBSTBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBDT01QVVRFUjo6UXVlcnlOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5TmFtZUBDT01QVVRFUkBAVUJFUEJHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgREVWSUNFOjpRdWVyeU5hbWUodm9pZCljb25zdCANCis/UXVlcnlOYW1lQERFVklDRUBAVUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIERPTUFJTjBfRU5VTV9PQko6OlF1ZXJ5TmFtZSh2b2lkKWNvbnN0IA0KKz9RdWVyeU5hbWVARE9NQUlOMF9FTlVNX09CSkBAUUJFUEJHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgRE9NQUlOOjpRdWVyeU5hbWUodm9pZCljb25zdCANCis/UXVlcnlOYW1lQERPTUFJTkBAVUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIEdST1VQMF9FTlVNX09CSjo6UXVlcnlOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5TmFtZUBHUk9VUDBfRU5VTV9PQkpAQFFCRVBCR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIEdST1VQOjpRdWVyeU5hbWUodm9pZCljb25zdCANCis/UXVlcnlOYW1lQEdST1VQQEBVQkVQQkdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBHUk9VUF9NRU1COjpRdWVyeU5hbWUodm9pZCljb25zdCANCis/UXVlcnlOYW1lQEdST1VQX01FTUJAQFVCRVBCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBMTV9TRVJWSUNFOjpRdWVyeU5hbWUodm9pZCljb25zdCANCis/UXVlcnlOYW1lQExNX1NFUlZJQ0VAQFFCRVBCR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIExNX1NFU1NJT046OlF1ZXJ5TmFtZSh2b2lkKWNvbnN0IA0KKz9RdWVyeU5hbWVATE1fU0VTU0lPTkBAVUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIExPQ0FUSU9OOjpRdWVyeU5hbWUodm9pZCljb25zdCANCis/UXVlcnlOYW1lQExPQ0FUSU9OQEBRQkVQQkdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBMU0FfQUNDT1VOVDo6UXVlcnlOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5TmFtZUBMU0FfQUNDT1VOVEBAVUJFUEJHWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExTQV9BQ0NUX0RPTV9JTkZPX01FTTo6UXVlcnlOYW1lKGNsYXNzIE5MU19TVFIgKiljb25zdCANCis/UXVlcnlOYW1lQExTQV9BQ0NUX0RPTV9JTkZPX01FTUBAUUJFSlBBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfUFJJTUFSWV9ET01fSU5GT19NRU06OlF1ZXJ5TmFtZShjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5TmFtZUBMU0FfUFJJTUFSWV9ET01fSU5GT19NRU1AQFFCRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTFNBX1JFRl9ET01BSU5fTUVNOjpRdWVyeU5hbWUodW5zaWduZWQgbG9uZyxjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5TmFtZUBMU0FfUkVGX0RPTUFJTl9NRU1AQFFCRUpLUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExTQV9UUkFOU0xBVEVEX05BTUVfTUVNOjpRdWVyeU5hbWUodW5zaWduZWQgbG9uZyxjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5TmFtZUBMU0FfVFJBTlNMQVRFRF9OQU1FX01FTUBAUUJFSktQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTFNBX1RSVVNUX0lORk9fTUVNOjpRdWVyeU5hbWUodW5zaWduZWQgbG9uZyxjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5TmFtZUBMU0FfVFJVU1RfSU5GT19NRU1AQFFCRUpLUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgTkVUX0FDQ0VTUzo6UXVlcnlOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5TmFtZUBORVRfQUNDRVNTQEBVQkVQQkdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBORVdfTE1fT0JKOjpRdWVyeU5hbWUodm9pZCljb25zdCANCis/UXVlcnlOYW1lQE5FV19MTV9PQkpAQFVCRVBCR1haDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBPU19TSUQ6OlF1ZXJ5TmFtZShjbGFzcyBOTFNfU1RSICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix2b2lkICopY29uc3QgDQorP1F1ZXJ5TmFtZUBPU19TSURAQFFCRUpQQVZOTFNfU1RSQEBQQkdQQVhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgU0VSVkVSMV9FTlVNX09CSjo6UXVlcnlOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5TmFtZUBTRVJWRVIxX0VOVU1fT0JKQEBRQkVQQkdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBTRVJWRVJfMDo6UXVlcnlOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5TmFtZUBTRVJWRVJfMEBAVUJFUEJHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgU0hBUkU6OlF1ZXJ5TmFtZSh2b2lkKWNvbnN0IA0KKz9RdWVyeU5hbWVAU0hBUkVAQFVCRVBCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBVU0VSMF9FTlVNX09CSjo6UXVlcnlOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5TmFtZUBVU0VSMF9FTlVNX09CSkBAUUJFUEJHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgVVNFUjo6UXVlcnlOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5TmFtZUBVU0VSQEBVQkVQQkdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBVU0VSX01FTUI6OlF1ZXJ5TmFtZSh2b2lkKWNvbnN0IA0KKz9RdWVyeU5hbWVAVVNFUl9NRU1CQEBVQkVQQkdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBVU0VSX01PREFMUzo6UXVlcnlOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5TmFtZUBVU0VSX01PREFMU0BAVUJFUEJHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgVVNFUl9NT0RBTFNfMzo6UXVlcnlOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5TmFtZUBVU0VSX01PREFMU18zQEBVQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgT1NfREFDTF9TVUJKRUNUX0lURVI6OlF1ZXJ5TmV3Q29udGFpbmVyQWNjZXNzTWFzayh2b2lkKWNvbnN0IA0KKz9RdWVyeU5ld0NvbnRhaW5lckFjY2Vzc01hc2tAT1NfREFDTF9TVUJKRUNUX0lURVJAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgT1NfU0FDTF9TVUJKRUNUX0lURVI6OlF1ZXJ5TmV3Q29udGFpbmVyQXVkaXRBY2Nlc3NNYXNrX0Yodm9pZCljb25zdCANCis/UXVlcnlOZXdDb250YWluZXJBdWRpdEFjY2Vzc01hc2tfRkBPU19TQUNMX1NVQkpFQ1RfSVRFUkBAUUJFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBPU19TQUNMX1NVQkpFQ1RfSVRFUjo6UXVlcnlOZXdDb250YWluZXJBdWRpdEFjY2Vzc01hc2tfUyh2b2lkKWNvbnN0IA0KKz9RdWVyeU5ld0NvbnRhaW5lckF1ZGl0QWNjZXNzTWFza19TQE9TX1NBQ0xfU1VCSkVDVF9JVEVSQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIE9TX0RBQ0xfU1VCSkVDVF9JVEVSOjpRdWVyeU5ld09iamVjdEFjY2Vzc01hc2sodm9pZCljb25zdCANCis/UXVlcnlOZXdPYmplY3RBY2Nlc3NNYXNrQE9TX0RBQ0xfU1VCSkVDVF9JVEVSQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIE9TX1NBQ0xfU1VCSkVDVF9JVEVSOjpRdWVyeU5ld09iamVjdEF1ZGl0QWNjZXNzTWFza19GKHZvaWQpY29uc3QgDQorP1F1ZXJ5TmV3T2JqZWN0QXVkaXRBY2Nlc3NNYXNrX0ZAT1NfU0FDTF9TVUJKRUNUX0lURVJAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgT1NfU0FDTF9TVUJKRUNUX0lURVI6OlF1ZXJ5TmV3T2JqZWN0QXVkaXRBY2Nlc3NNYXNrX1Modm9pZCljb25zdCANCis/UXVlcnlOZXdPYmplY3RBdWRpdEFjY2Vzc01hc2tfU0BPU19TQUNMX1NVQkpFQ1RfSVRFUkBAUUJFS1haDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNBTV9QU1dEX0RPTV9JTkZPX01FTTo6UXVlcnlOb0Fub25DaGFuZ2Uodm9pZCkNCis/UXVlcnlOb0Fub25DaGFuZ2VAU0FNX1BTV0RfRE9NX0lORk9fTUVNQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgVVNFUl8yOjpRdWVyeU5vUGFzc3dvcmRFeHBpcmUodm9pZCljb25zdCANCis/UXVlcnlOb1Bhc3N3b3JkRXhwaXJlQFVTRVJfMkBAUUJFSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIExNX0ZJTEVfMzo6UXVlcnlOdW1Mb2NrKHZvaWQpY29uc3QgDQorP1F1ZXJ5TnVtTG9ja0BMTV9GSUxFXzNAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgRklMRTNfRU5VTV9PQko6OlF1ZXJ5TnVtTG9ja3Modm9pZCljb25zdCANCis/UXVlcnlOdW1Mb2Nrc0BGSUxFM19FTlVNX09CSkBAUUJFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIExNX1NFU1NJT05fMTo6UXVlcnlOdW1PcGVucyh2b2lkKWNvbnN0IA0KKz9RdWVyeU51bU9wZW5zQExNX1NFU1NJT05fMUBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBPU19QUklWSUxFR0VfU0VUOjpRdWVyeU51bWJlck9mUHJpdmlsZWdlcyh2b2lkKWNvbnN0IA0KKz9RdWVyeU51bWJlck9mUHJpdmlsZWdlc0BPU19QUklWSUxFR0VfU0VUQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFVTRVJfTU9EQUxTXzM6OlF1ZXJ5T2JzZXJ2YXRpb24odm9pZCljb25zdCANCis/UXVlcnlPYnNlcnZhdGlvbkBVU0VSX01PREFMU18zQEBRQkVLWFoNCis7IHB1YmxpYzogY2xhc3MgU1RSTElTVCAqIF9fdGhpc2NhbGwgV0tTVEFfMTA6OlF1ZXJ5T3RoZXJEb21haW5zKHZvaWQpY29uc3QgDQorP1F1ZXJ5T3RoZXJEb21haW5zQFdLU1RBXzEwQEBRQkVQQVZTVFJMSVNUQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgV0tTVEFfVVNFUl8xOjpRdWVyeU90aGVyRG9tYWlucyh2b2lkKWNvbnN0IA0KKz9RdWVyeU90aGVyRG9tYWluc0BXS1NUQV9VU0VSXzFAQFFCRVBCR1haDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBPU19TRUNVUklUWV9ERVNDUklQVE9SOjpRdWVyeU93bmVyKGludCAqLGNsYXNzIE9TX1NJRCAqICosaW50ICopY29uc3QgDQorP1F1ZXJ5T3duZXJAT1NfU0VDVVJJVFlfREVTQ1JJUFRPUkBAUUJFSlBBSFBBUEFWT1NfU0lEQEAwQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIERPTUFJTjo6UXVlcnlQREModm9pZCljb25zdCANCis/UXVlcnlQRENARE9NQUlOQEBRQkVQQkdYWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBMU0FfQUNDVF9ET01fSU5GT19NRU06OlF1ZXJ5UFNJRCh2b2lkKWNvbnN0IA0KKz9RdWVyeVBTSURATFNBX0FDQ1RfRE9NX0lORk9fTUVNQEBRQkVQQVhYWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBMU0FfRE9NQUlOX0lORk86OlF1ZXJ5UFNJRCh2b2lkKWNvbnN0IA0KKz9RdWVyeVBTSURATFNBX0RPTUFJTl9JTkZPQEBRQkVRQVhYWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBMU0FfUFJJTUFSWV9ET01fSU5GT19NRU06OlF1ZXJ5UFNJRCh2b2lkKWNvbnN0IA0KKz9RdWVyeVBTSURATFNBX1BSSU1BUllfRE9NX0lORk9fTUVNQEBRQkVQQVhYWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBMU0FfUkVGX0RPTUFJTl9NRU06OlF1ZXJ5UFNJRCh1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9RdWVyeVBTSURATFNBX1JFRl9ET01BSU5fTUVNQEBRQkVQQVhLQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgTFNBX1RSVVNUX0lORk9fTUVNOjpRdWVyeVBTSUQodW5zaWduZWQgbG9uZyljb25zdCANCis/UXVlcnlQU0lEQExTQV9UUlVTVF9JTkZPX01FTUBAUUJFUEFYS0BaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3RoaXNjYWxsIE9TX1NJRDo6UXVlcnlQU0lEKHZvaWQpY29uc3QgDQorP1F1ZXJ5UFNJREBPU19TSURAQFFCRVBBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3RoaXNjYWxsIFNBTV9ET01BSU46OlF1ZXJ5UFNJRCh2b2lkKWNvbnN0IA0KKz9RdWVyeVBTSURAU0FNX0RPTUFJTkBAUUJFUEFYWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIFVTRVJfMTE6OlF1ZXJ5UGFybXModm9pZCljb25zdCANCis/UXVlcnlQYXJtc0BVU0VSXzExQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBVU0VSX01PREFMUzo6UXVlcnlQYXNzd2RIaXN0TGVuKHZvaWQpY29uc3QgDQorP1F1ZXJ5UGFzc3dkSGlzdExlbkBVU0VSX01PREFMU0BAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBTSEFSRV8yOjpRdWVyeVBhc3N3b3JkKHZvaWQpY29uc3QgDQorP1F1ZXJ5UGFzc3dvcmRAU0hBUkVfMkBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIFVTRVJfMjo6UXVlcnlQYXNzd29yZCh2b2lkKWNvbnN0IA0KKz9RdWVyeVBhc3N3b3JkQFVTRVJfMkBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFVTRVJfMzo6UXVlcnlQYXNzd29yZEV4cGlyZWQodm9pZCljb25zdCANCis/UXVlcnlQYXNzd29yZEV4cGlyZWRAVVNFUl8zQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIFNIQVJFXzI6OlF1ZXJ5UGF0aCh2b2lkKWNvbnN0IA0KKz9RdWVyeVBhdGhAU0hBUkVfMkBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIEZJTEUzX0VOVU1fT0JKOjpRdWVyeVBhdGhOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5UGF0aE5hbWVARklMRTNfRU5VTV9PQkpAQFFCRVBCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBMTV9GSUxFXzM6OlF1ZXJ5UGF0aG5hbWUodm9pZCljb25zdCANCis/UXVlcnlQYXRobmFtZUBMTV9GSUxFXzNAQFFCRVBCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBOTFNfU1RSOjpRdWVyeVBjaCh2b2lkKWNvbnN0IA0KKz9RdWVyeVBjaEBOTFNfU1RSQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBORVRfQUNDRVNTXzE6OlF1ZXJ5UGVybSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGVudW0gUEVSTU5BTUVfVFlQRSljb25zdCANCis/UXVlcnlQZXJtQE5FVF9BQ0NFU1NfMUBAUUJFSVBCR1c0UEVSTU5BTUVfVFlQRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTE1fRklMRV8zOjpRdWVyeVBlcm1pc3Npb24odm9pZCljb25zdCANCis/UXVlcnlQZXJtaXNzaW9uQExNX0ZJTEVfM0BAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIFNIQVJFXzI6OlF1ZXJ5UGVybWlzc2lvbnModm9pZCljb25zdCANCis/UXVlcnlQZXJtaXNzaW9uc0BTSEFSRV8yQEBRQkVJWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExTQV9UUlVTVEVEX0RPTUFJTjo6UXVlcnlQb3NpeE9mZnNldCh1bnNpZ25lZCBsb25nICopY29uc3QgDQorP1F1ZXJ5UG9zaXhPZmZzZXRATFNBX1RSVVNURURfRE9NQUlOQEBRQkVKUEFLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExTQV9QT0xJQ1k6OlF1ZXJ5UHJpbWFyeUJyb3dzZXJHcm91cChjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5UHJpbWFyeUJyb3dzZXJHcm91cEBMU0FfUE9MSUNZQEBRQkVKUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExTQV9QT0xJQ1k6OlF1ZXJ5UHJpbWFyeURvbWFpbk5hbWUoY2xhc3MgTkxTX1NUUiAqKWNvbnN0IA0KKz9RdWVyeVByaW1hcnlEb21haW5OYW1lQExTQV9QT0xJQ1lAQFFCRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgVVNFUl8zOjpRdWVyeVByaW1hcnlHcm91cElkKHZvaWQpY29uc3QgDQorP1F1ZXJ5UHJpbWFyeUdyb3VwSWRAVVNFUl8zQEBRQkVLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBMT0NBTF9VU0VSOjpRdWVyeVByaXYodm9pZCljb25zdCANCis/UXVlcnlQcml2QExPQ0FMX1VTRVJAQFVCRUlYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIFVTRVJfMTE6OlF1ZXJ5UHJpdih2b2lkKWNvbnN0IA0KKz9RdWVyeVByaXZAVVNFUl8xMUBAVUJFSVhaDQorOyBwdWJsaWM6IHN0cnVjdCBfUFJJVklMRUdFX1NFVCAqIF9fdGhpc2NhbGwgT1NfUFJJVklMRUdFX1NFVDo6UXVlcnlQcml2U2V0KHZvaWQpY29uc3QgDQorP1F1ZXJ5UHJpdlNldEBPU19QUklWSUxFR0VfU0VUQEBRQkVQQVVfUFJJVklMRUdFX1NFVEBAWFoNCis7IHB1YmxpYzogY2xhc3MgT1NfTFVJRF9BTkRfQVRUUklCVVRFUyBjb25zdCAqIF9fdGhpc2NhbGwgT1NfUFJJVklMRUdFX1NFVDo6UXVlcnlQcml2aWxlZ2UobG9uZykNCis/UXVlcnlQcml2aWxlZ2VAT1NfUFJJVklMRUdFX1NFVEBAUUFFUEJWT1NfTFVJRF9BTkRfQVRUUklCVVRFU0BASkBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfQUNDT1VOVDo6UXVlcnlQcml2aWxlZ2VFbnVtSXRlcihjbGFzcyBMU0FfQUNDT1VOVF9QUklWSUxFR0VfRU5VTV9JVEVSICogKikNCis/UXVlcnlQcml2aWxlZ2VFbnVtSXRlckBMU0FfQUNDT1VOVEBAUUFFSlBBUEFWTFNBX0FDQ09VTlRfUFJJVklMRUdFX0VOVU1fSVRFUkBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIExTQV9QT0xJQ1k6OlF1ZXJ5UHJvZHVjdFR5cGUoZW51bSBMU1BMX1BST0RfVFlQRSAqKQ0KKz9RdWVyeVByb2R1Y3RUeXBlQExTQV9QT0xJQ1lAQFNHSlBBVzRMU1BMX1BST0RfVFlQRUBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIFVTRVJfMzo6UXVlcnlQcm9maWxlKHZvaWQpY29uc3QgDQorP1F1ZXJ5UHJvZmlsZUBVU0VSXzNAQFFCRVBCR1haDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGNoYXIgKiBfX3RoaXNjYWxsIExNX0VOVU06OlF1ZXJ5UHRyKHZvaWQpY29uc3QgDQorP1F1ZXJ5UHRyQExNX0VOVU1AQElCRVBBRVhaDQorOyBwdWJsaWM6IHN0cnVjdCBfUE9MSUNZX0FDQ09VTlRfRE9NQUlOX0lORk8gY29uc3QgKiBfX3RoaXNjYWxsIExTQV9BQ0NUX0RPTV9JTkZPX01FTTo6UXVlcnlQdHIodm9pZCljb25zdCANCis/UXVlcnlQdHJATFNBX0FDQ1RfRE9NX0lORk9fTUVNQEBRQkVQQlVfUE9MSUNZX0FDQ09VTlRfRE9NQUlOX0lORk9AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfUE9MSUNZX0FVRElUX0VWRU5UU19JTkZPICogX190aGlzY2FsbCBMU0FfQVVESVRfRVZFTlRfSU5GT19NRU06OlF1ZXJ5UHRyKHZvaWQpY29uc3QgDQorP1F1ZXJ5UHRyQExTQV9BVURJVF9FVkVOVF9JTkZPX01FTUBAUUJFUEFVX1BPTElDWV9BVURJVF9FVkVOVFNfSU5GT0BAWFoNCis7IHB1YmxpYzogc3RydWN0IF9QT0xJQ1lfUFJJTUFSWV9ET01BSU5fSU5GTyBjb25zdCAqIF9fdGhpc2NhbGwgTFNBX1BSSU1BUllfRE9NX0lORk9fTUVNOjpRdWVyeVB0cih2b2lkKWNvbnN0IA0KKz9RdWVyeVB0ckBMU0FfUFJJTUFSWV9ET01fSU5GT19NRU1AQFFCRVBCVV9QT0xJQ1lfUFJJTUFSWV9ET01BSU5fSU5GT0BAWFoNCis7IHByaXZhdGU6IHN0cnVjdCBfTFNBX1RSVVNUX0lORk9STUFUSU9OIGNvbnN0ICogX190aGlzY2FsbCBMU0FfUkVGX0RPTUFJTl9NRU06OlF1ZXJ5UHRyKHZvaWQpY29uc3QgDQorP1F1ZXJ5UHRyQExTQV9SRUZfRE9NQUlOX01FTUBAQUJFUEJVX0xTQV9UUlVTVF9JTkZPUk1BVElPTkBAWFoNCis7IHB1YmxpYzogc3RydWN0IF9QT0xJQ1lfTFNBX1NFUlZFUl9ST0xFX0lORk8gY29uc3QgKiBfX3RoaXNjYWxsIExTQV9TRVJWRVJfUk9MRV9JTkZPX01FTTo6UXVlcnlQdHIodm9pZCljb25zdCANCis/UXVlcnlQdHJATFNBX1NFUlZFUl9ST0xFX0lORk9fTUVNQEBRQkVQQlVfUE9MSUNZX0xTQV9TRVJWRVJfUk9MRV9JTkZPQEBYWg0KKzsgcHJpdmF0ZTogc3RydWN0IF9MU0FfVFJBTlNMQVRFRF9OQU1FIGNvbnN0ICogX190aGlzY2FsbCBMU0FfVFJBTlNMQVRFRF9OQU1FX01FTTo6UXVlcnlQdHIodm9pZCljb25zdCANCis/UXVlcnlQdHJATFNBX1RSQU5TTEFURURfTkFNRV9NRU1AQEFCRVBCVV9MU0FfVFJBTlNMQVRFRF9OQU1FQEBYWg0KKzsgcHJpdmF0ZTogc3RydWN0IF9MU0FfVFJBTlNMQVRFRF9TSUQgY29uc3QgKiBfX3RoaXNjYWxsIExTQV9UUkFOU0xBVEVEX1NJRF9NRU06OlF1ZXJ5UHRyKHZvaWQpY29uc3QgDQorP1F1ZXJ5UHRyQExTQV9UUkFOU0xBVEVEX1NJRF9NRU1AQEFCRVBCVV9MU0FfVFJBTlNMQVRFRF9TSURAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfTFNBX1RSVVNUX0lORk9STUFUSU9OIGNvbnN0ICogX190aGlzY2FsbCBMU0FfVFJVU1RfSU5GT19NRU06OlF1ZXJ5UHRyKHZvaWQpY29uc3QgDQorP1F1ZXJ5UHRyQExTQV9UUlVTVF9JTkZPX01FTUBAUUJFUEJVX0xTQV9UUlVTVF9JTkZPUk1BVElPTkBAWFoNCis7IHByb3RlY3RlZDogdm9pZCAqIF9fdGhpc2NhbGwgT1NfT0JKRUNUX1dJVEhfREFUQTo6UXVlcnlQdHIodm9pZCljb25zdCANCis/UXVlcnlQdHJAT1NfT0JKRUNUX1dJVEhfREFUQUBASUJFUEFYWFoNCis7IHB1YmxpYzogc3RydWN0IF9ET01BSU5fUEFTU1dPUkRfSU5GT1JNQVRJT04gY29uc3QgKiBfX3RoaXNjYWxsIFNBTV9QU1dEX0RPTV9JTkZPX01FTTo6UXVlcnlQdHIodm9pZCljb25zdCANCis/UXVlcnlQdHJAU0FNX1BTV0RfRE9NX0lORk9fTUVNQEBRQkVQQlVfRE9NQUlOX1BBU1NXT1JEX0lORk9STUFUSU9OQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1NBTV9SSURfRU5VTUVSQVRJT04gY29uc3QgKiBfX3RoaXNjYWxsIFNBTV9SSURfRU5VTUVSQVRJT05fTUVNOjpRdWVyeVB0cih2b2lkKWNvbnN0IA0KKz9RdWVyeVB0ckBTQU1fUklEX0VOVU1FUkFUSU9OX01FTUBAUUJFUEJVX1NBTV9SSURfRU5VTUVSQVRJT05AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBTQU1fQUxJQVM6OlF1ZXJ5UklEKHZvaWQpDQorP1F1ZXJ5UklEQFNBTV9BTElBU0BAUUFFS1haDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBPU19TSUQ6OlF1ZXJ5UmF3SUQoY2xhc3MgTkxTX1NUUiAqKWNvbnN0IA0KKz9RdWVyeVJhd0lEQE9TX1NJREBAUUJFSlBBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBORVRfTkFNRTo6UXVlcnlSZWxhdGl2ZVBhdGgoY2xhc3MgTkxTX1NUUiAqKQ0KKz9RdWVyeVJlbGF0aXZlUGF0aEBORVRfTkFNRUBAUUFFSlBBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBERVZJQ0U6OlF1ZXJ5UmVtb3RlTmFtZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVJlbW90ZU5hbWVAREVWSUNFQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBERVZJQ0U6OlF1ZXJ5UmVtb3RlVHlwZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVJlbW90ZVR5cGVAREVWSUNFQEBRQkVJWFoNCis7IHByaXZhdGU6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIE5FVF9BQ0NFU1NfMTo6UXVlcnlSZXF1aXJlZFNwYWNlKHVuc2lnbmVkIGludCljb25zdCANCis/UXVlcnlSZXF1aXJlZFNwYWNlQE5FVF9BQ0NFU1NfMUBAQUJFSUlAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBTSEFSRV8xOjpRdWVyeVJlc291cmNlVHlwZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVJlc291cmNlVHlwZUBTSEFSRV8xQEBRQkVJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIE9TX0FDRTo6UXVlcnlSZXZpc2lvbih2b2lkKQ0KKz9RdWVyeVJldmlzaW9uQE9TX0FDRUBAU0dLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBjb25zdCAgX190aGlzY2FsbCBBTElBU19FTlVNX09CSjo6UXVlcnlSaWQodm9pZCljb25zdCANCis/UXVlcnlSaWRAQUxJQVNfRU5VTV9PQkpAQFFCRT9CS1haDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBPU19TRUNVUklUWV9ERVNDUklQVE9SOjpRdWVyeVNBQ0woaW50ICosY2xhc3MgT1NfQUNMICogKixpbnQgKiljb25zdCANCis/UXVlcnlTQUNMQE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JAQFFCRUpQQUhQQVBBVk9TX0FDTEBAMEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBPU19BQ0U6OlF1ZXJ5U0lEKGNsYXNzIE9TX1NJRCAqICopY29uc3QgDQorP1F1ZXJ5U0lEQE9TX0FDRUBAUUJFSlBBUEFWT1NfU0lEQEBAWg0KKzsgcHVibGljOiBjbGFzcyBPU19TSUQgY29uc3QgKiBfX3RoaXNjYWxsIE9TX0FDTF9TVUJKRUNUX0lURVI6OlF1ZXJ5U0lEKHZvaWQpY29uc3QgDQorP1F1ZXJ5U0lEQE9TX0FDTF9TVUJKRUNUX0lURVJAQFFCRVBCVk9TX1NJREBAWFoNCis7IHByb3RlY3RlZDogdm9pZCAqIF9fdGhpc2NhbGwgT1NfQUNFOjpRdWVyeVNJRE1lbW9yeSh2b2lkKWNvbnN0IA0KKz9RdWVyeVNJRE1lbW9yeUBPU19BQ0VAQElCRVBBWFhaDQorOyBwdWJsaWM6IGNsYXNzIFNBTV9TRVJWRVIgKiBfX3RoaXNjYWxsIEFETUlOX0FVVEhPUklUWTo6UXVlcnlTYW1TZXJ2ZXIodm9pZCljb25zdCANCis/UXVlcnlTYW1TZXJ2ZXJAQURNSU5fQVVUSE9SSVRZQEBRQkVQQVZTQU1fU0VSVkVSQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgVVNFUl8yOjpRdWVyeVNjcmlwdFBhdGgodm9pZCljb25zdCANCis/UXVlcnlTY3JpcHRQYXRoQFVTRVJfMkBAUUJFUEJHWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNDX1NFUlZJQ0U6OlF1ZXJ5U2VjdXJpdHkodW5zaWduZWQgbG9uZyx2b2lkICogKikNCis/UXVlcnlTZWN1cml0eUBTQ19TRVJWSUNFQEBRQUVKS1BBUEFYQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgU0VSVkVSXzI6OlF1ZXJ5U2VjdXJpdHkodm9pZCljb25zdCANCis/UXVlcnlTZWN1cml0eUBTRVJWRVJfMkBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBERVZJQ0U6OlF1ZXJ5U2VydmVyKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2VydmVyQERFVklDRUBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIExNX0ZJTEU6OlF1ZXJ5U2VydmVyKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2VydmVyQExNX0ZJTEVAQFFCRVBCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBMTV9TRVNTSU9OOjpRdWVyeVNlcnZlcih2b2lkKWNvbnN0IA0KKz9RdWVyeVNlcnZlckBMTV9TRVNTSU9OQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgTE9DQVRJT046OlF1ZXJ5U2VydmVyKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2VydmVyQExPQ0FUSU9OQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgTE9DX0xNX0VOVU06OlF1ZXJ5U2VydmVyKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2VydmVyQExPQ19MTV9FTlVNQEBRQkVQQkdYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgTE9DX0xNX09CSjo6UXVlcnlTZXJ2ZXIodm9pZCljb25zdCANCis/UXVlcnlTZXJ2ZXJATE9DX0xNX09CSkBASUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIExPQ19MTV9SRVNVTUVfRU5VTTo6UXVlcnlTZXJ2ZXIodm9pZCljb25zdCANCis/UXVlcnlTZXJ2ZXJATE9DX0xNX1JFU1VNRV9FTlVNQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgU0hBUkU6OlF1ZXJ5U2VydmVyKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2VydmVyQFNIQVJFQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgTE1fU0VSVklDRTo6UXVlcnlTZXJ2ZXJOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2VydmVyTmFtZUBMTV9TRVJWSUNFQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgTkVUX0FDQ0VTUzo6UXVlcnlTZXJ2ZXJOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2VydmVyTmFtZUBORVRfQUNDRVNTQEBRQkVQQkdYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTkVUX05BTUU6OlF1ZXJ5U2VydmVyU2hhcmUoY2xhc3MgTkxTX1NUUiAqKQ0KKz9RdWVyeVNlcnZlclNoYXJlQE5FVF9OQU1FQEBRQUVKUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFNFUlZFUjFfRU5VTV9PQko6OlF1ZXJ5U2VydmVyVHlwZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVNlcnZlclR5cGVAU0VSVkVSMV9FTlVNX09CSkBAUUJFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBTRVJWRVJfMTo6UXVlcnlTZXJ2ZXJUeXBlKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2VydmVyVHlwZUBTRVJWRVJfMUBAUUJFS1haDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTQ19NQU5BR0VSOjpRdWVyeVNlcnZpY2VEaXNwbGF5TmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIE5MU19TVFIgKikNCis/UXVlcnlTZXJ2aWNlRGlzcGxheU5hbWVAU0NfTUFOQUdFUkBAUUFFSlBCR1BBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTQ19NQU5BR0VSOjpRdWVyeVNlcnZpY2VLZXlOYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgTkxTX1NUUiAqKQ0KKz9RdWVyeVNlcnZpY2VLZXlOYW1lQFNDX01BTkFHRVJAQFFBRUpQQkdQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTkVUX05BTUU6OlF1ZXJ5U2hhcmUoY2xhc3MgTkxTX1NUUiAqKQ0KKz9RdWVyeVNoYXJlQE5FVF9OQU1FQEBRQUVKUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgT1NfU0lEOjpRdWVyeVNpZCh2b2lkKWNvbnN0IA0KKz9RdWVyeVNpZEBPU19TSURAQFFCRVBBWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgT1NfQUNFOjpRdWVyeVNpemUodm9pZCljb25zdCANCis/UXVlcnlTaXplQE9TX0FDRUBAUUJFR1haDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBPU19BQ0w6OlF1ZXJ5U2l6ZUluZm9ybWF0aW9uKHN0cnVjdCBfQUNMX1NJWkVfSU5GT1JNQVRJT04gKiljb25zdCANCis/UXVlcnlTaXplSW5mb3JtYXRpb25AT1NfQUNMQEBRQkVKUEFVX0FDTF9TSVpFX0lORk9STUFUSU9OQEBAWg0KKzsgcHVibGljOiBlbnVtIExNT19ERVZfU1RBVEUgIF9fdGhpc2NhbGwgREVWSUNFOjpRdWVyeVN0YXRlKHZvaWQpY29uc3QgDQorP1F1ZXJ5U3RhdGVAREVWSUNFQEBRQkU/QVc0TE1PX0RFVl9TVEFURUBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgREVWSUNFOjpRdWVyeVN0YXR1cyh2b2lkKWNvbnN0IA0KKz9RdWVyeVN0YXR1c0BERVZJQ0VAQFFCRUlYWg0KKzsgcHVibGljOiBlbnVtIExNX1NFUlZJQ0VfU1RBVFVTICBfX3RoaXNjYWxsIExNX1NFUlZJQ0U6OlF1ZXJ5U3RhdHVzKGxvbmcgKikNCis/UXVlcnlTdGF0dXNATE1fU0VSVklDRUBAUUFFP0FXNExNX1NFUlZJQ0VfU1RBVFVTQEBQQUpAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0NfU0VSVklDRTo6UXVlcnlTdGF0dXMoc3RydWN0IF9TRVJWSUNFX1NUQVRVUyAqKQ0KKz9RdWVyeVN0YXR1c0BTQ19TRVJWSUNFQEBRQUVKUEFVX1NFUlZJQ0VfU1RBVFVTQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgT1NfU0lEOjpRdWVyeVN1YkF1dGhvcml0eSh1bnNpZ25lZCBjaGFyLHVuc2lnbmVkIGxvbmcgKiAqKWNvbnN0IA0KKz9RdWVyeVN1YkF1dGhvcml0eUBPU19TSURAQFFCRUpFUEFQQUtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgT1NfU0lEOjpRdWVyeVN1YkF1dGhvcml0eUNvdW50KHVuc2lnbmVkIGNoYXIgKiAqKWNvbnN0IA0KKz9RdWVyeVN1YkF1dGhvcml0eUNvdW50QE9TX1NJREBAUUJFSlBBUEFFQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIE5UX0FDQ09VTlRTX1VUSUxJVFk6OlF1ZXJ5U3lzdGVtU2lkKGVudW0gVUlfU3lzdGVtU2lkLGNsYXNzIE9TX1NJRCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1F1ZXJ5U3lzdGVtU2lkQE5UX0FDQ09VTlRTX1VUSUxJVFlAQFNHSlc0VUlfU3lzdGVtU2lkQEBQQVZPU19TSURAQFBCR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIE5MU19TVFI6OlF1ZXJ5VGV4dExlbmd0aCh2b2lkKWNvbnN0IA0KKz9RdWVyeVRleHRMZW5ndGhATkxTX1NUUkBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBVU0VSX01PREFMU18zOjpRdWVyeVRocmVzaG9sZCh2b2lkKWNvbnN0IA0KKz9RdWVyeVRocmVzaG9sZEBVU0VSX01PREFMU18zQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIExNX1NFU1NJT05fMTA6OlF1ZXJ5VGltZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVRpbWVATE1fU0VTU0lPTl8xMEBAUUJFS1haDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBPU19BQ0xfU1VCSkVDVF9JVEVSOjpRdWVyeVRvdGFsQWNlQ291bnQodm9pZCljb25zdCANCis/UXVlcnlUb3RhbEFjZUNvdW50QE9TX0FDTF9TVUJKRUNUX0lURVJAQElCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBMTV9SRVNVTUVfRU5VTTo6UXVlcnlUb3RhbEl0ZW1Db3VudCh2b2lkKWNvbnN0IA0KKz9RdWVyeVRvdGFsSXRlbUNvdW50QExNX1JFU1VNRV9FTlVNQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgREVWSUNFOjpRdWVyeVR5cGUodm9pZCljb25zdCANCis/UXVlcnlUeXBlQERFVklDRUBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgX190aGlzY2FsbCBPU19BQ0U6OlF1ZXJ5VHlwZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVR5cGVAT1NfQUNFQEBRQkVFWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5FVF9OQU1FOjpRdWVyeVVOQ1BhdGgoY2xhc3MgTkxTX1NUUiAqKQ0KKz9RdWVyeVVOQ1BhdGhATkVUX05BTUVAQFFBRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1VOSUNPREVfU1RSSU5HIGNvbnN0ICogX190aGlzY2FsbCBOVF9NQUNISU5FX0VOVU1fT0JKOjpRdWVyeVVuaWNvZGVNYWNoaW5lKHZvaWQpY29uc3QgDQorP1F1ZXJ5VW5pY29kZU1hY2hpbmVATlRfTUFDSElORV9FTlVNX09CSkBAUUJFUEJVX1VOSUNPREVfU1RSSU5HQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1VOSUNPREVfU1RSSU5HIGNvbnN0ICogX190aGlzY2FsbCBMU0FfQUNDVF9ET01fSU5GT19NRU06OlF1ZXJ5VW5pY29kZU5hbWUodm9pZCljb25zdCANCis/UXVlcnlVbmljb2RlTmFtZUBMU0FfQUNDVF9ET01fSU5GT19NRU1AQFFCRVBCVV9VTklDT0RFX1NUUklOR0BAWFoNCis7IHB1YmxpYzogc3RydWN0IF9VTklDT0RFX1NUUklORyBjb25zdCAqIF9fdGhpc2NhbGwgTFNBX1BSSU1BUllfRE9NX0lORk9fTUVNOjpRdWVyeVVuaWNvZGVOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5VW5pY29kZU5hbWVATFNBX1BSSU1BUllfRE9NX0lORk9fTUVNQEBRQkVQQlVfVU5JQ09ERV9TVFJJTkdAQFhaDQorOyBwcml2YXRlOiBzdHJ1Y3QgX1VOSUNPREVfU1RSSU5HIGNvbnN0ICogX190aGlzY2FsbCBMU0FfUkVGX0RPTUFJTl9NRU06OlF1ZXJ5VW5pY29kZU5hbWUodW5zaWduZWQgbG9uZyljb25zdCANCis/UXVlcnlVbmljb2RlTmFtZUBMU0FfUkVGX0RPTUFJTl9NRU1AQEFCRVBCVV9VTklDT0RFX1NUUklOR0BAS0BaDQorOyBwcml2YXRlOiBzdHJ1Y3QgX1VOSUNPREVfU1RSSU5HIGNvbnN0ICogX190aGlzY2FsbCBMU0FfVFJBTlNMQVRFRF9OQU1FX01FTTo6UXVlcnlVbmljb2RlTmFtZSh1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9RdWVyeVVuaWNvZGVOYW1lQExTQV9UUkFOU0xBVEVEX05BTUVfTUVNQEBBQkVQQlVfVU5JQ09ERV9TVFJJTkdAQEtAWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1VOSUNPREVfU1RSSU5HIGNvbnN0ICogX190aGlzY2FsbCBMU0FfVFJVU1RfSU5GT19NRU06OlF1ZXJ5VW5pY29kZU5hbWUodW5zaWduZWQgbG9uZyljb25zdCANCis/UXVlcnlVbmljb2RlTmFtZUBMU0FfVFJVU1RfSU5GT19NRU1AQFFCRVBCVV9VTklDT0RFX1NUUklOR0BAS0BaDQorOyBwdWJsaWM6IHN0cnVjdCBfVU5JQ09ERV9TVFJJTkcgY29uc3QgKiBfX3RoaXNjYWxsIFNBTV9VU0VSX0VOVU1fT0JKOjpRdWVyeVVuaWNvZGVVc2VyTmFtZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVVuaWNvZGVVc2VyTmFtZUBTQU1fVVNFUl9FTlVNX09CSkBAUUJFUEJVX1VOSUNPREVfU1RSSU5HQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBMT0dPTl9IT1VSU19TRVRUSU5HOjpRdWVyeVVuaXRzUGVyV2Vlayh2b2lkKWNvbnN0IA0KKz9RdWVyeVVuaXRzUGVyV2Vla0BMT0dPTl9IT1VSU19TRVRUSU5HQEBRQkVJWFoNCis7IHByaXZhdGU6IHN0cnVjdCBfRE9NQUlOX1BBU1NXT1JEX0lORk9STUFUSU9OICogX190aGlzY2FsbCBTQU1fUFNXRF9ET01fSU5GT19NRU06OlF1ZXJ5VXBkYXRlUHRyKHZvaWQpY29uc3QgDQorP1F1ZXJ5VXBkYXRlUHRyQFNBTV9QU1dEX0RPTV9JTkZPX01FTUBAQUJFUEFVX0RPTUFJTl9QQVNTV09SRF9JTkZPUk1BVElPTkBAWFoNCis7IHB1YmxpYzogZW51bSBfU0lEX05BTUVfVVNFICBfX3RoaXNjYWxsIExTQV9UUkFOU0xBVEVEX05BTUVfTUVNOjpRdWVyeVVzZSh1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9RdWVyeVVzZUBMU0FfVFJBTlNMQVRFRF9OQU1FX01FTUBAUUJFP0FXNF9TSURfTkFNRV9VU0VAQEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBVU0VSXzI6OlF1ZXJ5VXNlckNhbnRDaGFuZ2VQYXNzKHZvaWQpY29uc3QgDQorP1F1ZXJ5VXNlckNhbnRDaGFuZ2VQYXNzQFVTRVJfMkBAUUJFSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBVU0VSXzExOjpRdWVyeVVzZXJDb21tZW50KHZvaWQpY29uc3QgDQorP1F1ZXJ5VXNlckNvbW1lbnRAVVNFUl8xMUBAUUJFUEJHWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgVVNFUl8yOjpRdWVyeVVzZXJGbGFnKHVuc2lnbmVkIGludCljb25zdCANCis/UXVlcnlVc2VyRmxhZ0BVU0VSXzJAQElCRUhJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIExNX1NFU1NJT05fMTo6UXVlcnlVc2VyRmxhZ3Modm9pZCljb25zdCANCis/UXVlcnlVc2VyRmxhZ3NATE1fU0VTU0lPTl8xQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgVVNFUl8yOjpRdWVyeVVzZXJGbGFncyh2b2lkKWNvbnN0IA0KKz9RdWVyeVVzZXJGbGFnc0BVU0VSXzJAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgVVNFUl8zOjpRdWVyeVVzZXJJZCh2b2lkKWNvbnN0IA0KKz9RdWVyeVVzZXJJZEBVU0VSXzNAQFFCRUtYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0FNX1VTRVJfRU5VTV9PQko6OlF1ZXJ5VXNlck5hbWUoY2xhc3MgTkxTX1NUUiAqKWNvbnN0IA0KKz9RdWVyeVVzZXJOYW1lQFNBTV9VU0VSX0VOVU1fT0JKQEBRQkVKUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIFdLU1RBX1VTRVJfMTo6UXVlcnlVc2VyTmFtZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVVzZXJOYW1lQFdLU1RBX1VTRVJfMUBAUUJFUEJHWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgVVNFUl8yOjpRdWVyeVVzZXJQYXNzUmVxdWlyZWQodm9pZCljb25zdCANCis/UXVlcnlVc2VyUGFzc1JlcXVpcmVkQFVTRVJfMkBAUUJFSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBMTV9GSUxFXzM6OlF1ZXJ5VXNlcm5hbWUodm9pZCljb25zdCANCis/UXVlcnlVc2VybmFtZUBMTV9GSUxFXzNAQFFCRVBCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBMTV9TRVNTSU9OXzEwOjpRdWVyeVVzZXJuYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5VXNlcm5hbWVATE1fU0VTU0lPTl8xMEBAUUJFUEJHWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExNX0NPTkZJRzo6UXVlcnlWYWx1ZShjbGFzcyBOTFNfU1RSICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/UXVlcnlWYWx1ZUBMTV9DT05GSUdAQFFBRUpQQVZOTFNfU1RSQEBQQkdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgV0tTVEFfMTA6OlF1ZXJ5V2tzdGFEb21haW4odm9pZCljb25zdCANCis/UXVlcnlXa3N0YURvbWFpbkBXS1NUQV8xMEBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIFVTRVJfMTE6OlF1ZXJ5V29ya3N0YXRpb25zKHZvaWQpY29uc3QgDQorP1F1ZXJ5V29ya3N0YXRpb25zQFVTRVJfMTFAQFFCRVBCR1haDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTE1fRU5VTTo6UmVnaXN0ZXJJdGVyKHZvaWQpDQorP1JlZ2lzdGVySXRlckBMTV9FTlVNQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBMTV9SRVNVTUVfRU5VTTo6UmVnaXN0ZXJJdGVyKHZvaWQpDQorP1JlZ2lzdGVySXRlckBMTV9SRVNVTUVfRU5VTUBAQUFFWFhaDQorOyBwdWJsaWM6IGNsYXNzIE5MU19TVFIgKiBfX3RoaXNjYWxsIFNMSVNUX09GX05MU19TVFI6OlJlbW92ZShjbGFzcyBJVEVSX1NMX05MU19TVFIgJikNCis/UmVtb3ZlQFNMSVNUX09GX05MU19TVFJAQFFBRVBBVk5MU19TVFJAQEFBVklURVJfU0xfTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNBTV9BTElBUzo6UmVtb3ZlTWVtYmVyKHZvaWQgKikNCis/UmVtb3ZlTWVtYmVyQFNBTV9BTElBU0BAUUFFSlBBWEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTQU1fR1JPVVA6OlJlbW92ZU1lbWJlcih1bnNpZ25lZCBsb25nKQ0KKz9SZW1vdmVNZW1iZXJAU0FNX0dST1VQQEBRQUVKS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTQU1fRE9NQUlOOjpSZW1vdmVNZW1iZXJGcm9tQWxpYXNlcyh2b2lkICopDQorP1JlbW92ZU1lbWJlckZyb21BbGlhc2VzQFNBTV9ET01BSU5AQFFBRUpQQVhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0FNX0FMSUFTOjpSZW1vdmVNZW1iZXJzKHZvaWQgKiAqLHVuc2lnbmVkIGludCkNCis/UmVtb3ZlTWVtYmVyc0BTQU1fQUxJQVNAQFFBRUpQQVBBWElAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0FNX0dST1VQOjpSZW1vdmVNZW1iZXJzKHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBpbnQpDQorP1JlbW92ZU1lbWJlcnNAU0FNX0dST1VQQEBRQUVKUEFLSUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBPU19QUklWSUxFR0VfU0VUOjpSZW1vdmVQcml2aWxlZ2UobG9uZykNCis/UmVtb3ZlUHJpdmlsZWdlQE9TX1BSSVZJTEVHRV9TRVRAQFFBRUpKQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE9TX1BSSVZJTEVHRV9TRVQ6OlJlbW92ZVByaXZpbGVnZShzdHJ1Y3QgX0xVSUQpDQorP1JlbW92ZVByaXZpbGVnZUBPU19QUklWSUxFR0VfU0VUQEBRQUVKVV9MVUlEQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVVNFUjo6UmVuYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1JlbmFtZUBVU0VSQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEFETUlOX0FVVEhPUklUWTo6UmVwbGFjZUFjY291bnREb21haW4odW5zaWduZWQgbG9uZykNCis/UmVwbGFjZUFjY291bnREb21haW5AQURNSU5fQVVUSE9SSVRZQEBRQUVKS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBBRE1JTl9BVVRIT1JJVFk6OlJlcGxhY2VCdWlsdGluRG9tYWluKHVuc2lnbmVkIGxvbmcpDQorP1JlcGxhY2VCdWlsdGluRG9tYWluQEFETUlOX0FVVEhPUklUWUBAUUFFSktAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQURNSU5fQVVUSE9SSVRZOjpSZXBsYWNlTFNBUG9saWN5KHVuc2lnbmVkIGxvbmcpDQorP1JlcGxhY2VMU0FQb2xpY3lAQURNSU5fQVVUSE9SSVRZQEBRQUVKS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBBRE1JTl9BVVRIT1JJVFk6OlJlcGxhY2VTYW1TZXJ2ZXIodW5zaWduZWQgbG9uZykNCis/UmVwbGFjZVNhbVNlcnZlckBBRE1JTl9BVVRIT1JJVFlAQFFBRUpLQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIEJBU0U6OlJlcG9ydEVycm9yKGxvbmcpDQorP1JlcG9ydEVycm9yQEJBU0VAQElBRVhKQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIE5FV19MTV9PQko6OlJlcG9ydEVycm9yKGxvbmcpDQorP1JlcG9ydEVycm9yQE5FV19MTV9PQkpAQElBRVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEJST1dTRV9ET01BSU5fRU5VTTo6UmVzZXQodm9pZCkNCis/UmVzZXRAQlJPV1NFX0RPTUFJTl9FTlVNQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIE9TX0FDTF9TVUJKRUNUX0lURVI6OlJlc2V0KHZvaWQpDQorP1Jlc2V0QE9TX0FDTF9TVUJKRUNUX0lURVJAQFFBRVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgTFNBX09CSkVDVDo6UmVzZXRIYW5kbGUodm9pZCkNCis/UmVzZXRIYW5kbGVATFNBX09CSkVDVEBASUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBTQU1fT0JKRUNUOjpSZXNldEhhbmRsZSh2b2lkKQ0KKz9SZXNldEhhbmRsZUBTQU1fT0JKRUNUQEBJQUVYWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIE9TX09CSkVDVF9XSVRIX0RBVEE6OlJlc2l6ZSh1bnNpZ25lZCBpbnQpDQorP1Jlc2l6ZUBPU19PQkpFQ1RfV0lUSF9EQVRBQEBJQUVKSUBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBORVdfTE1fT0JKOjpSZXNpemVCdWZmZXIodW5zaWduZWQgaW50KQ0KKz9SZXNpemVCdWZmZXJATkVXX0xNX09CSkBASUFFSklAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTE1fTUVTU0FHRTo6U2VuZEJ1ZmZlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9TZW5kQnVmZmVyQExNX01FU1NBR0VAQFFBRUpQQkcwSUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMTV9NRVNTQUdFOjpTZW5kQnVmZmVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQlVGRkVSIGNvbnN0ICYpDQorP1NlbmRCdWZmZXJATE1fTUVTU0FHRUBAUUFFSlBCR0FCVkJVRkZFUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExPQ0FUSU9OOjpTZXQoY2xhc3MgTE9DQVRJT04gY29uc3QgJikNCis/U2V0QExPQ0FUSU9OQEBRQUVKQUJWMUBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBMU0FfTUVNT1JZOjpTZXQodm9pZCAqLHVuc2lnbmVkIGxvbmcpDQorP1NldEBMU0FfTUVNT1JZQEBVQUVYUEFYS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIE5UX01FTU9SWTo6U2V0KHZvaWQgKix1bnNpZ25lZCBsb25nKQ0KKz9TZXRATlRfTUVNT1JZQEBVQUVYUEFYS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFNBTV9NRU1PUlk6OlNldCh2b2lkICosdW5zaWduZWQgbG9uZykNCis/U2V0QFNBTV9NRU1PUllAQFVBRVhQQVhLQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBORVRfTkFNRTo6U2V0QUJTUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRBQlNQYXRoQE5FVF9OQU1FQEBBQUVKUEJHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIE9TX0FDRTo6U2V0QWNjZXNzTWFzayh1bnNpZ25lZCBsb25nKQ0KKz9TZXRBY2Nlc3NNYXNrQE9TX0FDRUBAUUFFWEtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVVNFUl8yOjpTZXRBY2NvdW50RGlzYWJsZWQoaW50KQ0KKz9TZXRBY2NvdW50RGlzYWJsZWRAVVNFUl8yQEBRQUVKSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfUE9MSUNZOjpTZXRBY2NvdW50RG9tYWluKGNsYXNzIExTQV9BQ0NUX0RPTV9JTkZPX01FTSBjb25zdCAqKQ0KKz9TZXRBY2NvdW50RG9tYWluQExTQV9QT0xJQ1lAQFFBRUpQQlZMU0FfQUNDVF9ET01fSU5GT19NRU1AQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfUE9MSUNZOjpTZXRBY2NvdW50RG9tYWluTmFtZShjbGFzcyBOTFNfU1RSIGNvbnN0ICosdm9pZCAqIGNvbnN0ICopDQorP1NldEFjY291bnREb21haW5OYW1lQExTQV9QT0xJQ1lAQFFBRUpQQlZOTFNfU1RSQEBQQlFBWEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBVU0VSXzI6OlNldEFjY291bnRFeHBpcmVzKGxvbmcpDQorP1NldEFjY291bnRFeHBpcmVzQFVTRVJfMkBAUUFFSkpAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVVNFUl8zOjpTZXRBY2NvdW50VHlwZShlbnVtIF9BQ0NPVU5UX1RZUEUpDQorP1NldEFjY291bnRUeXBlQFVTRVJfM0BAUUFFSlc0X0FDQ09VTlRfVFlQRUBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIFNIQVJFXzE6OlNldEFkbWluT25seShpbnQpDQorP1NldEFkbWluT25seUBTSEFSRV8xQEBJQUVYSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfUE9MSUNZOjpTZXRBdWRpdEV2ZW50SW5mbyhjbGFzcyBMU0FfQVVESVRfRVZFTlRfSU5GT19NRU0gKikNCis/U2V0QXVkaXRFdmVudEluZm9ATFNBX1BPTElDWUBAUUFFSlBBVkxTQV9BVURJVF9FVkVOVF9JTkZPX01FTUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5FVF9BQ0NFU1NfMTo6U2V0QXVkaXRGbGFncyhzaG9ydCkNCis/U2V0QXVkaXRGbGFnc0BORVRfQUNDRVNTXzFAQFFBRUpGQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFVTRVJfMTE6OlNldEF1dGhGbGFncyh1bnNpZ25lZCBsb25nKQ0KKz9TZXRBdXRoRmxhZ3NAVVNFUl8xMUBAUUFFSktAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgREVWSUNFOjpTZXRCdWZQdHIodW5zaWduZWQgY2hhciAqKQ0KKz9TZXRCdWZQdHJAREVWSUNFQEBJQUVYUEFFQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEFMSUFTX0VOVU1fT0JKOjpTZXRCdWZmZXJQdHIoc3RydWN0IF9TQU1fUklEX0VOVU1FUkFUSU9OIGNvbnN0ICopDQorP1NldEJ1ZmZlclB0ckBBTElBU19FTlVNX09CSkBAUUFFWFBCVV9TQU1fUklEX0VOVU1FUkFUSU9OQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0hBUkRFVlExX0VOVU1fT0JKOjpTZXRCdWZmZXJQdHIoc3RydWN0IF9DSEFSREVWUV9JTkZPXzEgY29uc3QgKikNCis/U2V0QnVmZmVyUHRyQENIQVJERVZRMV9FTlVNX09CSkBAUUFFWFBCVV9DSEFSREVWUV9JTkZPXzFAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDT05OMF9FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfQ09OTkVDVElPTl9JTkZPXzAgY29uc3QgKikNCis/U2V0QnVmZmVyUHRyQENPTk4wX0VOVU1fT0JKQEBRQUVYUEJVX0NPTk5FQ1RJT05fSU5GT18wQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ09OTjFfRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX0NPTk5FQ1RJT05fSU5GT18xIGNvbnN0ICopDQorP1NldEJ1ZmZlclB0ckBDT05OMV9FTlVNX09CSkBAUUFFWFBCVV9DT05ORUNUSU9OX0lORk9fMUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENPTlRFWFRfRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX1NFUlZFUl9JTkZPXzEwMSBjb25zdCAqKQ0KKz9TZXRCdWZmZXJQdHJAQ09OVEVYVF9FTlVNX09CSkBAUUFFWFBCVV9TRVJWRVJfSU5GT18xMDFAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBET01BSU4wX0VOVU1fT0JKOjpTZXRCdWZmZXJQdHIoc3RydWN0IF9TRVJWRVJfSU5GT18xMDAgY29uc3QgKikNCis/U2V0QnVmZmVyUHRyQERPTUFJTjBfRU5VTV9PQkpAQFFBRVhQQlVfU0VSVkVSX0lORk9fMTAwQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgRU5VTV9PQkpfQkFTRTo6U2V0QnVmZmVyUHRyKHVuc2lnbmVkIGNoYXIgY29uc3QgKikNCis/U2V0QnVmZmVyUHRyQEVOVU1fT0JKX0JBU0VAQElBRVhQQkVAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgRklMRTJfRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX0ZJTEVfSU5GT18yIGNvbnN0ICopDQorP1NldEJ1ZmZlclB0ckBGSUxFMl9FTlVNX09CSkBAUUFFWFBCVV9GSUxFX0lORk9fMkBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEZJTEUzX0VOVU1fT0JKOjpTZXRCdWZmZXJQdHIoc3RydWN0IF9GSUxFX0lORk9fMyBjb25zdCAqKQ0KKz9TZXRCdWZmZXJQdHJARklMRTNfRU5VTV9PQkpAQFFBRVhQQlVfRklMRV9JTkZPXzNAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBHUk9VUDBfRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX0dST1VQX0lORk9fMCBjb25zdCAqKQ0KKz9TZXRCdWZmZXJQdHJAR1JPVVAwX0VOVU1fT0JKQEBRQUVYUEJVX0dST1VQX0lORk9fMEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEdST1VQMV9FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfR1JPVVBfSU5GT18xIGNvbnN0ICopDQorP1NldEJ1ZmZlclB0ckBHUk9VUDFfRU5VTV9PQkpAQFFBRVhQQlVfR1JPVVBfSU5GT18xQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgTFNBX0FDQ09VTlRTX0VOVU1fT0JKOjpTZXRCdWZmZXJQdHIodm9pZCAqIGNvbnN0ICopDQorP1NldEJ1ZmZlclB0ckBMU0FfQUNDT1VOVFNfRU5VTV9PQkpAQFFBRVhQQlFBWEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBMU0FfUFJJVklMRUdFU19FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfUE9MSUNZX1BSSVZJTEVHRV9ERUZJTklUSU9OIGNvbnN0ICopDQorP1NldEJ1ZmZlclB0ckBMU0FfUFJJVklMRUdFU19FTlVNX09CSkBAUUFFWFBCVV9QT0xJQ1lfUFJJVklMRUdFX0RFRklOSVRJT05AQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBORVdfTE1fT0JKOjpTZXRCdWZmZXJQdHIodW5zaWduZWQgY2hhciAqKQ0KKz9TZXRCdWZmZXJQdHJATkVXX0xNX09CSkBASUFFWFBBRUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBOVF9HUk9VUF9FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfRE9NQUlOX0RJU1BMQVlfR1JPVVAgY29uc3QgKikNCis/U2V0QnVmZmVyUHRyQE5UX0dST1VQX0VOVU1fT0JKQEBRQUVYUEJVX0RPTUFJTl9ESVNQTEFZX0dST1VQQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgTlRfTUFDSElORV9FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfRE9NQUlOX0RJU1BMQVlfTUFDSElORSBjb25zdCAqKQ0KKz9TZXRCdWZmZXJQdHJATlRfTUFDSElORV9FTlVNX09CSkBAUUFFWFBCVV9ET01BSU5fRElTUExBWV9NQUNISU5FQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgTlRfVVNFUl9FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfRE9NQUlOX0RJU1BMQVlfVVNFUiBjb25zdCAqKQ0KKz9TZXRCdWZmZXJQdHJATlRfVVNFUl9FTlVNX09CSkBAUUFFWFBCVV9ET01BSU5fRElTUExBWV9VU0VSQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU0FNX1VTRVJfRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX1NBTV9SSURfRU5VTUVSQVRJT04gY29uc3QgKikNCis/U2V0QnVmZmVyUHRyQFNBTV9VU0VSX0VOVU1fT0JKQEBRQUVYUEJVX1NBTV9SSURfRU5VTUVSQVRJT05AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBTRVJWRVIxX0VOVU1fT0JKOjpTZXRCdWZmZXJQdHIoc3RydWN0IF9TRVJWRVJfSU5GT18xMDEgY29uc3QgKikNCis/U2V0QnVmZmVyUHRyQFNFUlZFUjFfRU5VTV9PQkpAQFFBRVhQQlVfU0VSVkVSX0lORk9fMTAxQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgU0VSVklDRV9FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfRU5VTV9TVkNfU1RBVFVTIGNvbnN0ICopDQorP1NldEJ1ZmZlclB0ckBTRVJWSUNFX0VOVU1fT0JKQEBJQUVYUEJVX0VOVU1fU1ZDX1NUQVRVU0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNFU1NJT04wX0VOVU1fT0JKOjpTZXRCdWZmZXJQdHIoc3RydWN0IF9TRVNTSU9OX0lORk9fMCBjb25zdCAqKQ0KKz9TZXRCdWZmZXJQdHJAU0VTU0lPTjBfRU5VTV9PQkpAQFFBRVhQQlVfU0VTU0lPTl9JTkZPXzBAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBTRVNTSU9OMV9FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfU0VTU0lPTl9JTkZPXzEgY29uc3QgKikNCis/U2V0QnVmZmVyUHRyQFNFU1NJT04xX0VOVU1fT0JKQEBRQUVYUEJVX1NFU1NJT05fSU5GT18xQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU0hBUkUxX0VOVU1fT0JKOjpTZXRCdWZmZXJQdHIoc3RydWN0IF9TSEFSRV9JTkZPXzEgY29uc3QgKikNCis/U2V0QnVmZmVyUHRyQFNIQVJFMV9FTlVNX09CSkBAUUFFWFBCVV9TSEFSRV9JTkZPXzFAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBTSEFSRTJfRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX1NIQVJFX0lORk9fMiBjb25zdCAqKQ0KKz9TZXRCdWZmZXJQdHJAU0hBUkUyX0VOVU1fT0JKQEBRQUVYUEJVX1NIQVJFX0lORk9fMkBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFRSSVBMRV9TRVJWRVJfRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX1RSSVBMRV9TRVJWRVJfSU5GTyBjb25zdCAqKQ0KKz9TZXRCdWZmZXJQdHJAVFJJUExFX1NFUlZFUl9FTlVNX09CSkBAUUFFWFBCVV9UUklQTEVfU0VSVkVSX0lORk9AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBUUlVTVEVEX0RPTUFJTl9FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfTFNBX1RSVVNUX0lORk9STUFUSU9OIGNvbnN0ICopDQorP1NldEJ1ZmZlclB0ckBUUlVTVEVEX0RPTUFJTl9FTlVNX09CSkBAUUFFWFBCVV9MU0FfVFJVU1RfSU5GT1JNQVRJT05AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBVU0UxX0VOVU1fT0JKOjpTZXRCdWZmZXJQdHIoc3RydWN0IF9VU0VfSU5GT18xIGNvbnN0ICopDQorP1NldEJ1ZmZlclB0ckBVU0UxX0VOVU1fT0JKQEBRQUVYUEJVX1VTRV9JTkZPXzFAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBVU0VSMF9FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfVVNFUl9JTkZPXzAgY29uc3QgKikNCis/U2V0QnVmZmVyUHRyQFVTRVIwX0VOVU1fT0JKQEBRQUVYUEJVX1VTRVJfSU5GT18wQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgVVNFUjEwX0VOVU1fT0JKOjpTZXRCdWZmZXJQdHIoc3RydWN0IF9VU0VSX0lORk9fMTAgY29uc3QgKikNCis/U2V0QnVmZmVyUHRyQFVTRVIxMF9FTlVNX09CSkBAUUFFWFBCVV9VU0VSX0lORk9fMTBAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBVU0VSMV9FTlVNX09CSjo6U2V0QnVmZmVyUHRyKHN0cnVjdCBfVVNFUl9JTkZPXzEgY29uc3QgKikNCis/U2V0QnVmZmVyUHRyQFVTRVIxX0VOVU1fT0JKQEBRQUVYUEJVX1VTRVJfSU5GT18xQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgVVNFUjJfRU5VTV9PQko6OlNldEJ1ZmZlclB0cihzdHJ1Y3QgX1VTRVJfSU5GT18yIGNvbnN0ICopDQorP1NldEJ1ZmZlclB0ckBVU0VSMl9FTlVNX09CSkBAUUFFWFBCVV9VU0VSX0lORk9fMkBAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIExNX1NFU1NJT05fMjo6U2V0Q2xpZW50VHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRDbGllbnRUeXBlQExNX1NFU1NJT05fMkBASUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBHUk9VUF8xOjpTZXRDb21tZW50KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldENvbW1lbnRAR1JPVVBfMUBAUUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTQU1fQUxJQVM6OlNldENvbW1lbnQoY2xhc3MgTkxTX1NUUiBjb25zdCAqKQ0KKz9TZXRDb21tZW50QFNBTV9BTElBU0BAUUFFSlBCVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTRVJWRVJfMTo6U2V0Q29tbWVudCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRDb21tZW50QFNFUlZFUl8xQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNIQVJFXzE6OlNldENvbW1lbnQodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0Q29tbWVudEBTSEFSRV8xQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFVTRVJfMTE6OlNldENvbW1lbnQodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0Q29tbWVudEBVU0VSXzExQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExTQV9UUlVTVEVEX0RPTUFJTjo6U2V0Q29udHJvbGxlckxpc3Qoc3RydWN0IF9UUlVTVEVEX0NPTlRST0xMRVJTX0lORk8gY29uc3QgJikNCis/U2V0Q29udHJvbGxlckxpc3RATFNBX1RSVVNURURfRE9NQUlOQEBRQUVKQUJVX1RSVVNURURfQ09OVFJPTExFUlNfSU5GT0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExTQV9UUlVTVEVEX0RPTUFJTjo6U2V0Q29udHJvbGxlckxpc3QoY2xhc3MgTFNBX1JFRl9ET01BSU5fTUVNICopDQorP1NldENvbnRyb2xsZXJMaXN0QExTQV9UUlVTVEVEX0RPTUFJTkBAUUFFSlBBVkxTQV9SRUZfRE9NQUlOX01FTUBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIEVOVU1fQ0FMTEVSOjpTZXRDb3VudCh1bnNpZ25lZCBpbnQpDQorP1NldENvdW50QEVOVU1fQ0FMTEVSQEBJQUVYSUBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBPU19BQ0xfU1VCSkVDVF9JVEVSOjpTZXRDdXJyZW50QUNFKHVuc2lnbmVkIGxvbmcpDQorP1NldEN1cnJlbnRBQ0VAT1NfQUNMX1NVQkpFQ1RfSVRFUkBASUFFWEtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgU0hBUkVfMjo6U2V0Q3VycmVudFVzZXModW5zaWduZWQgaW50KQ0KKz9TZXRDdXJyZW50VXNlc0BTSEFSRV8yQEBJQUVKSUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBPU19TRUNVUklUWV9ERVNDUklQVE9SOjpTZXREQUNMKGludCxjbGFzcyBPU19BQ0wgY29uc3QgKixpbnQpDQorP1NldERBQ0xAT1NfU0VDVVJJVFlfREVTQ1JJUFRPUkBAUUFFSkhQQlZPU19BQ0xAQEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgREVWSUNFOjpTZXREZXZTdGF0ZShlbnVtIExNT19ERVZfU1RBVEUpDQorP1NldERldlN0YXRlQERFVklDRUBASUFFWFc0TE1PX0RFVl9TVEFURUBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIERFVklDRTo6U2V0RGV2VHlwZShlbnVtIExNT19ERVZJQ0UpDQorP1NldERldlR5cGVAREVWSUNFQEBJQUVYVzRMTU9fREVWSUNFQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgREVWSUNFMjo6U2V0RG9tYWluTmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXREb21haW5OYW1lQERFVklDRTJAQElBRUpQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVVNFUl9NT0RBTFNfMzo6U2V0RHVyYXRpb24odW5zaWduZWQgbG9uZykNCis/U2V0RHVyYXRpb25AVVNFUl9NT0RBTFNfM0BAUUFFSktAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgTE1fRklMRTo6U2V0RmlsZUlkKHVuc2lnbmVkIGxvbmcpDQorP1NldEZpbGVJZEBMTV9GSUxFQEBJQUVKS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBVU0VSX01PREFMUzo6U2V0Rm9yY2VMb2dvZmYodW5zaWduZWQgbG9uZykNCis/U2V0Rm9yY2VMb2dvZmZAVVNFUl9NT0RBTFNAQFFBRUpLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFVTRVJfMTE6OlNldEZ1bGxOYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldEZ1bGxOYW1lQFVTRVJfMTFAQFFBRUpQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUjo6U2V0R3JvdXAoY2xhc3MgT1NfU0lEIGNvbnN0ICYsaW50KQ0KKz9TZXRHcm91cEBPU19TRUNVUklUWV9ERVNDUklQVE9SQEBRQUVKQUJWT1NfU0lEQEBIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6OlNldEdyb3VwKGludCxjbGFzcyBPU19TSUQgY29uc3QgKixpbnQpDQorP1NldEdyb3VwQE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JAQFFBRUpIUEJWT1NfU0lEQEBIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNBTV9HUk9VUDo6U2V0R3JvdXBuYW1lKGNsYXNzIE5MU19TVFIgY29uc3QgKikNCis/U2V0R3JvdXBuYW1lQFNBTV9HUk9VUEBAUUFFSlBCVk5MU19TVFJAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBMU0FfT0JKRUNUOjpTZXRIYW5kbGUodm9pZCAqKQ0KKz9TZXRIYW5kbGVATFNBX09CSkVDVEBASUFFWFBBWEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBTQU1fT0JKRUNUOjpTZXRIYW5kbGUodm9pZCAqKQ0KKz9TZXRIYW5kbGVAU0FNX09CSkVDVEBASUFFWFBBWEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBTRVJWSUNFX0NPTlRST0w6OlNldEhhbmRsZShzdHJ1Y3QgU0NfSEFORExFX18gKikNCis/U2V0SGFuZGxlQFNFUlZJQ0VfQ09OVFJPTEBASUFFWFBBVVNDX0hBTkRMRV9fQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVVNFUl8xMTo6U2V0SG9tZURpcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRIb21lRGlyQFVTRVJfMTFAQFFBRUpQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVVNFUl8zOjpTZXRIb21lZGlyRHJpdmUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0SG9tZWRpckRyaXZlQFVTRVJfM0BAUUFFSlBCR0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBMTV9TRVNTSU9OXzEwOjpTZXRJZGxlVGltZSh1bnNpZ25lZCBsb25nKQ0KKz9TZXRJZGxlVGltZUBMTV9TRVNTSU9OXzEwQEBJQUVYS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIERFVklDRTI6OlNldEluZm8odm9pZCkNCis/U2V0SW5mb0BERVZJQ0UyQEBNQUVYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgREVWSUNFOjpTZXRJbmZvKHZvaWQpDQorP1NldEluZm9AREVWSUNFQEBNQUVYWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExTQV9TRUNSRVQ6OlNldEluZm8oY2xhc3MgTkxTX1NUUiBjb25zdCAqLGNsYXNzIE5MU19TVFIgY29uc3QgKikNCis/U2V0SW5mb0BMU0FfU0VDUkVUQEBRQUVKUEJWTkxTX1NUUkBAMEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBPU19BQ0U6OlNldEluaGVyaXRPbmx5KGludCkNCis/U2V0SW5oZXJpdE9ubHlAT1NfQUNFQEBRQUVYSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBVU0VSXzI6OlNldExvY2tvdXQoaW50KQ0KKz9TZXRMb2Nrb3V0QFVTRVJfMkBAUUFFSkhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgV0tTVEFfVVNFUl8xOjpTZXRMb2dvbkRvbWFpbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRMb2dvbkRvbWFpbkBXS1NUQV9VU0VSXzFAQFFBRUpQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVVNFUl8xMTo6U2V0TG9nb25Ib3VycyhjbGFzcyBMT0dPTl9IT1VSU19TRVRUSU5HIGNvbnN0ICYpDQorP1NldExvZ29uSG91cnNAVVNFUl8xMUBAUUFFSkFCVkxPR09OX0hPVVJTX1NFVFRJTkdAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBVU0VSXzExOjpTZXRMb2dvbkhvdXJzKHVuc2lnbmVkIGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP1NldExvZ29uSG91cnNAVVNFUl8xMUBAUUFFSlBCRUlAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgV0tTVEFfVVNFUl8xOjpTZXRMb2dvblNlcnZlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRMb2dvblNlcnZlckBXS1NUQV9VU0VSXzFAQFFBRUpQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgT1NfTFVJRF9BTkRfQVRUUklCVVRFUzo6U2V0THVpZEFuZEF0dHJpYihzdHJ1Y3QgX0xVSURfQU5EX0FUVFJJQlVURVMpDQorP1NldEx1aWRBbmRBdHRyaWJAT1NfTFVJRF9BTkRfQVRUUklCVVRFU0BAUUFFWFVfTFVJRF9BTkRfQVRUUklCVVRFU0BAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIFNFUlZFUl8xOjpTZXRNYWpvck1pbm9yVmVyKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP1NldE1ham9yTWlub3JWZXJAU0VSVkVSXzFAQElBRVhJSUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBVU0VSX01PREFMUzo6U2V0TWF4UGFzc3dkQWdlKHVuc2lnbmVkIGxvbmcpDQorP1NldE1heFBhc3N3ZEFnZUBVU0VSX01PREFMU0BAUUFFSktAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgU0VSVkVSXzI6OlNldE1heFVzZXJzKHVuc2lnbmVkIGludCkNCis/U2V0TWF4VXNlcnNAU0VSVkVSXzJAQElBRVhJQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNIQVJFXzI6OlNldE1heFVzZXModW5zaWduZWQgaW50KQ0KKz9TZXRNYXhVc2VzQFNIQVJFXzJAQFFBRUpJQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFVTRVJfTU9EQUxTOjpTZXRNaW5QYXNzd2RBZ2UodW5zaWduZWQgbG9uZykNCis/U2V0TWluUGFzc3dkQWdlQFVTRVJfTU9EQUxTQEBRQUVKS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBVU0VSX01PREFMUzo6U2V0TWluUGFzc3dkTGVuKHVuc2lnbmVkIGludCkNCis/U2V0TWluUGFzc3dkTGVuQFVTRVJfTU9EQUxTQEBRQUVKSUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDT01QVVRFUjo6U2V0TmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXROYW1lQENPTVBVVEVSQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEdST1VQOjpTZXROYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldE5hbWVAR1JPVVBAQFFBRUpQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgR1JPVVBfTUVNQjo6U2V0TmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXROYW1lQEdST1VQX01FTUJAQFFBRUpQQkdAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgTE1fU0VSVklDRTo6U2V0TmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXROYW1lQExNX1NFUlZJQ0VAQElBRUpQQkdAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgTE1fU0VTU0lPTjo6U2V0TmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXROYW1lQExNX1NFU1NJT05AQElBRUpQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTkVUX0FDQ0VTUzo6U2V0TmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXROYW1lQE5FVF9BQ0NFU1NAQFFBRUpQQkdAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgU0hBUkU6OlNldE5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0TmFtZUBTSEFSRUBASUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBVU0VSOjpTZXROYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldE5hbWVAVVNFUkBAUUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBVU0VSX01FTUI6OlNldE5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0TmFtZUBVU0VSX01FTUJAQFFBRUpQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU0FNX1BTV0RfRE9NX0lORk9fTUVNOjpTZXROb0Fub25DaGFuZ2UoaW50KQ0KKz9TZXROb0Fub25DaGFuZ2VAU0FNX1BTV0RfRE9NX0lORk9fTUVNQEBRQUVYSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBVU0VSXzI6OlNldE5vUGFzc3dvcmRFeHBpcmUoaW50KQ0KKz9TZXROb1Bhc3N3b3JkRXhwaXJlQFVTRVJfMkBAUUFFSkhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgTE1fU0VTU0lPTl8xOjpTZXROdW1PcGVucyh1bnNpZ25lZCBpbnQpDQorP1NldE51bU9wZW5zQExNX1NFU1NJT05fMUBASUFFWElAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVVNFUl9NT0RBTFNfMzo6U2V0T2JzZXJ2YXRpb24odW5zaWduZWQgbG9uZykNCis/U2V0T2JzZXJ2YXRpb25AVVNFUl9NT0RBTFNfM0BAUUFFSktAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgV0tTVEFfVVNFUl8xOjpTZXRPdGhlckRvbWFpbnModW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0T3RoZXJEb21haW5zQFdLU1RBX1VTRVJfMUBAUUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBPU19TRUNVUklUWV9ERVNDUklQVE9SOjpTZXRPd25lcihjbGFzcyBPU19TSUQgY29uc3QgJixpbnQpDQorP1NldE93bmVyQE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JAQFFBRUpBQlZPU19TSURAQEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUjo6U2V0T3duZXIoaW50LGNsYXNzIE9TX1NJRCBjb25zdCAqLGludCkNCis/U2V0T3duZXJAT1NfU0VDVVJJVFlfREVTQ1JJUFRPUkBAUUFFSkhQQlZPU19TSURAQEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVVNFUl8xMTo6U2V0UGFybXModW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0UGFybXNAVVNFUl8xMUBAUUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBVU0VSX01PREFMUzo6U2V0UGFzc3dkSGlzdExlbih1bnNpZ25lZCBpbnQpDQorP1NldFBhc3N3ZEhpc3RMZW5AVVNFUl9NT0RBTFNAQFFBRUpJQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNBTV9VU0VSOjpTZXRQYXNzd29yZChjbGFzcyBOTFNfU1RSIGNvbnN0ICYsY2xhc3MgTkxTX1NUUiBjb25zdCAmKQ0KKz9TZXRQYXNzd29yZEBTQU1fVVNFUkBAUUFFSkFCVk5MU19TVFJAQDBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0FNX1VTRVI6OlNldFBhc3N3b3JkKGNsYXNzIE5MU19TVFIgY29uc3QgJixpbnQpDQorP1NldFBhc3N3b3JkQFNBTV9VU0VSQEBRQUVKQUJWTkxTX1NUUkBASEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTSEFSRV8yOjpTZXRQYXNzd29yZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRQYXNzd29yZEBTSEFSRV8yQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFVTRVJfMjo6U2V0UGFzc3dvcmQodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0UGFzc3dvcmRAVVNFUl8yQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFVTRVJfMzo6U2V0UGFzc3dvcmRFeHBpcmVkKHVuc2lnbmVkIGxvbmcpDQorP1NldFBhc3N3b3JkRXhwaXJlZEBVU0VSXzNAQFFBRUpLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNBTV9ET01BSU46OlNldFBhc3N3b3JkSW5mbyhjbGFzcyBTQU1fUFNXRF9ET01fSU5GT19NRU0gY29uc3QgKikNCis/U2V0UGFzc3dvcmRJbmZvQFNBTV9ET01BSU5AQFFBRUpQQlZTQU1fUFNXRF9ET01fSU5GT19NRU1AQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTSEFSRV8yOjpTZXRQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldFBhdGhAU0hBUkVfMkBAUUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBORVRfQUNDRVNTXzE6OlNldFBlcm0odW5zaWduZWQgc2hvcnQgY29uc3QgKixlbnVtIFBFUk1OQU1FX1RZUEUsdW5zaWduZWQgaW50KQ0KKz9TZXRQZXJtQE5FVF9BQ0NFU1NfMUBAUUFFSlBCR1c0UEVSTU5BTUVfVFlQRUBASUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTSEFSRV8yOjpTZXRQZXJtaXNzaW9ucyh1bnNpZ25lZCBpbnQpDQorP1NldFBlcm1pc3Npb25zQFNIQVJFXzJAQFFBRUpJQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExTQV9UUlVTVEVEX0RPTUFJTjo6U2V0UG9zaXhPZmZzZXQodW5zaWduZWQgbG9uZykNCis/U2V0UG9zaXhPZmZzZXRATFNBX1RSVVNURURfRE9NQUlOQEBRQUVKS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfUE9MSUNZOjpTZXRQcmltYXJ5QnJvd3Nlckdyb3VwKGNsYXNzIE5MU19TVFIgY29uc3QgJikNCis/U2V0UHJpbWFyeUJyb3dzZXJHcm91cEBMU0FfUE9MSUNZQEBRQUVKQUJWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExTQV9QT0xJQ1k6OlNldFByaW1hcnlEb21haW4oY2xhc3MgTFNBX1BSSU1BUllfRE9NX0lORk9fTUVNIGNvbnN0ICopDQorP1NldFByaW1hcnlEb21haW5ATFNBX1BPTElDWUBAUUFFSlBCVkxTQV9QUklNQVJZX0RPTV9JTkZPX01FTUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExTQV9QT0xJQ1k6OlNldFByaW1hcnlEb21haW5OYW1lKGNsYXNzIE5MU19TVFIgY29uc3QgKix2b2lkICogY29uc3QgKikNCis/U2V0UHJpbWFyeURvbWFpbk5hbWVATFNBX1BPTElDWUBAUUFFSlBCVk5MU19TVFJAQFBCUUFYQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFVTRVJfMzo6U2V0UHJpbWFyeUdyb3VwSWQodW5zaWduZWQgbG9uZykNCis/U2V0UHJpbWFyeUdyb3VwSWRAVVNFUl8zQEBRQUVKS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBVU0VSXzExOjpTZXRQcml2KHVuc2lnbmVkIGludCkNCis/U2V0UHJpdkBVU0VSXzExQEBRQUVKSUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBVU0VSXzM6OlNldFByb2ZpbGUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0UHJvZmlsZUBVU0VSXzNAQFFBRUpQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgT1NfQUNFOjpTZXRQdHIodm9pZCAqKQ0KKz9TZXRQdHJAT1NfQUNFQEBRQUVKUEFYQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIE9TX1BSSVZJTEVHRV9TRVQ6OlNldFB0cihzdHJ1Y3QgX1BSSVZJTEVHRV9TRVQgKikNCis/U2V0UHRyQE9TX1BSSVZJTEVHRV9TRVRAQFFBRVhQQVVfUFJJVklMRUdFX1NFVEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE9TX1NJRDo6U2V0UHRyKHZvaWQgKikNCis/U2V0UHRyQE9TX1NJREBAUUFFSlBBWEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBERVZJQ0U6OlNldFJlbW90ZU5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0UmVtb3RlTmFtZUBERVZJQ0VAQElBRVhQQkdAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgREVWSUNFOjpTZXRSZW1vdGVUeXBlKHVuc2lnbmVkIGludCkNCis/U2V0UmVtb3RlVHlwZUBERVZJQ0VAQElBRVhJQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIFNIQVJFXzE6OlNldFJlc291cmNlVHlwZSh1bnNpZ25lZCBpbnQpDQorP1NldFJlc291cmNlVHlwZUBTSEFSRV8xQEBJQUVKSUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTSEFSRV8yOjpTZXRSZXNvdXJjZVR5cGUodW5zaWduZWQgaW50KQ0KKz9TZXRSZXNvdXJjZVR5cGVAU0hBUkVfMkBAUUFFSklAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgT1NfU0VDVVJJVFlfREVTQ1JJUFRPUjo6U2V0U0FDTChpbnQsY2xhc3MgT1NfQUNMIGNvbnN0ICosaW50KQ0KKz9TZXRTQUNMQE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1JAQFFBRUpIUEJWT1NfQUNMQEBIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE9TX0FDRTo6U2V0U0lEKGNsYXNzIE9TX1NJRCBjb25zdCAmKQ0KKz9TZXRTSURAT1NfQUNFQEBRQUVKQUJWT1NfU0lEQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVVNFUl8yOjpTZXRTY3JpcHRQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldFNjcmlwdFBhdGhAVVNFUl8yQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNDX1NFUlZJQ0U6OlNldFNlY3VyaXR5KHVuc2lnbmVkIGxvbmcsdm9pZCAqIGNvbnN0KQ0KKz9TZXRTZWN1cml0eUBTQ19TRVJWSUNFQEBRQUVKS1FBWEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBTRVJWRVJfMjo6U2V0U2VjdXJpdHkodW5zaWduZWQgaW50KQ0KKz9TZXRTZWN1cml0eUBTRVJWRVJfMkBASUFFWElAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgTE1fRklMRTo6U2V0U2VydmVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldFNlcnZlckBMTV9GSUxFQEBJQUVKUEJHQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIERFVklDRTo6U2V0U2VydmVyTmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRTZXJ2ZXJOYW1lQERFVklDRUBASUFFWFBCR0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBMTV9TRVJWSUNFOjpTZXRTZXJ2ZXJOYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldFNlcnZlck5hbWVATE1fU0VSVklDRUBASUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBORVRfQUNDRVNTOjpTZXRTZXJ2ZXJOYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldFNlcnZlck5hbWVATkVUX0FDQ0VTU0BAUUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfUE9MSUNZOjpTZXRTZXJ2ZXJSb2xlKGNsYXNzIExTQV9TRVJWRVJfUk9MRV9JTkZPX01FTSBjb25zdCAqKQ0KKz9TZXRTZXJ2ZXJSb2xlQExTQV9QT0xJQ1lAQFFBRUpQQlZMU0FfU0VSVkVSX1JPTEVfSU5GT19NRU1AQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBTRVJWRVJfMTo6U2V0U2VydmVyVHlwZSh1bnNpZ25lZCBsb25nKQ0KKz9TZXRTZXJ2ZXJUeXBlQFNFUlZFUl8xQEBJQUVYS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfUE9MSUNZOjpTZXRTaHV0RG93bk9uRnVsbChpbnQpDQorP1NldFNodXREb3duT25GdWxsQExTQV9QT0xJQ1lAQFFBRUpIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE9TX0FDRTo6U2V0U2l6ZSh1bnNpZ25lZCBpbnQpDQorP1NldFNpemVAT1NfQUNFQEBRQUVKSUBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBPU19BQ0w6OlNldFNpemUodW5zaWduZWQgaW50LGludCkNCis/U2V0U2l6ZUBPU19BQ0xAQElBRUpJSEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBERVZJQ0U6OlNldFN0YXR1cyh1bnNpZ25lZCBpbnQpDQorP1NldFN0YXR1c0BERVZJQ0VAQElBRVhJQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFVTRVJfTU9EQUxTXzM6OlNldFRocmVzaG9sZCh1bnNpZ25lZCBsb25nKQ0KKz9TZXRUaHJlc2hvbGRAVVNFUl9NT0RBTFNfM0BAUUFFSktAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgTE1fU0VTU0lPTl8xMDo6U2V0VGltZSh1bnNpZ25lZCBsb25nKQ0KKz9TZXRUaW1lQExNX1NFU1NJT05fMTBAQElBRVhLQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBORVRfTkFNRTo6U2V0VU5DUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRVTkNQYXRoQE5FVF9OQU1FQEBBQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFVTRVJfMjo6U2V0VXNlckNhbnRDaGFuZ2VQYXNzKGludCkNCis/U2V0VXNlckNhbnRDaGFuZ2VQYXNzQFVTRVJfMkBAUUFFSkhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVVNFUl8xMTo6U2V0VXNlckNvbW1lbnQodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0VXNlckNvbW1lbnRAVVNFUl8xMUBAUUFFSlBCR0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBVU0VSXzI6OlNldFVzZXJGbGFnKGludCx1bnNpZ25lZCBpbnQpDQorP1NldFVzZXJGbGFnQFVTRVJfMkBASUFFSkhJQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIExNX1NFU1NJT05fMTo6U2V0VXNlckZsYWdzKHVuc2lnbmVkIGxvbmcpDQorP1NldFVzZXJGbGFnc0BMTV9TRVNTSU9OXzFAQElBRVhLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFVTRVJfMjo6U2V0VXNlckZsYWdzKHVuc2lnbmVkIGludCkNCis/U2V0VXNlckZsYWdzQFVTRVJfMkBAUUFFSklAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgVVNFUl8zOjpTZXRVc2VySWQodW5zaWduZWQgbG9uZykNCis/U2V0VXNlcklkQFVTRVJfM0BASUFFSktAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgV0tTVEFfVVNFUl8xOjpTZXRVc2VyTmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRVc2VyTmFtZUBXS1NUQV9VU0VSXzFAQFFBRUpQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVVNFUl8yOjpTZXRVc2VyUGFzc1JlcXVpcmVkKGludCkNCis/U2V0VXNlclBhc3NSZXF1aXJlZEBVU0VSXzJAQFFBRUpIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIERFVklDRTI6OlNldFVzZXJuYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldFVzZXJuYW1lQERFVklDRTJAQElBRUpQQkdAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgTE1fU0VTU0lPTl8xMDo6U2V0VXNlcm5hbWUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0VXNlcm5hbWVATE1fU0VTU0lPTl8xMEBASUFFSlBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTQU1fVVNFUjo6U2V0VXNlcm5hbWUoY2xhc3MgTkxTX1NUUiBjb25zdCAqKQ0KKz9TZXRVc2VybmFtZUBTQU1fVVNFUkBAUUFFSlBCVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMTV9DT05GSUc6OlNldFZhbHVlKGNsYXNzIE5MU19TVFIgKikNCis/U2V0VmFsdWVATE1fQ09ORklHQEBRQUVKUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFVTRVJfMTE6OlNldFdvcmtzdGF0aW9ucyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRXb3Jrc3RhdGlvbnNAVVNFUl8xMUBAUUFFSlBCR0BaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBTSEFSRV8yOjpTZXRXcml0ZUJ1ZmZlcihpbnQpDQorP1NldFdyaXRlQnVmZmVyQFNIQVJFXzJAQElBRUpIQFoNCis7IHZvaWQgX19zdGRjYWxsIFNraXBXaGl0ZVNwYWNlKHVuc2lnbmVkIHNob3J0ICogKikNCis/U2tpcFdoaXRlU3BhY2VAQFlHWFBBUEFHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIERPTUFJTjBfRU5VTTo6U29ydCh2b2lkKQ0KKz9Tb3J0QERPTUFJTjBfRU5VTUBAUUFFWFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMTV9TRVJWSUNFOjpTdGFydCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP1N0YXJ0QExNX1NFUlZJQ0VAQFFBRUpQQkdJSUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTQ19TRVJWSUNFOjpTdGFydCh1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiAqKQ0KKz9TdGFydEBTQ19TRVJWSUNFQEBRQUVKSVBBUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExNX1NFUlZJQ0U6OlN0b3AodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/U3RvcEBMTV9TRVJWSUNFQEBRQUVKSUlAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgTFNBX1BPTElDWTo6VGNoYXJBcnJheVRvVW5pc3RyQXJyYXkodW5zaWduZWQgc2hvcnQgY29uc3QgKiBjb25zdCAqLHN0cnVjdCBfVU5JQ09ERV9TVFJJTkcgKix1bnNpZ25lZCBsb25nKQ0KKz9UY2hhckFycmF5VG9VbmlzdHJBcnJheUBMU0FfUE9MSUNZQEBJQUVKUEJRQkdQQVVfVU5JQ09ERV9TVFJJTkdAQEtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0FNX0RPTUFJTjo6VHJhbnNsYXRlTmFtZXNUb1JpZHModW5zaWduZWQgc2hvcnQgY29uc3QgKiBjb25zdCAqLHVuc2lnbmVkIGxvbmcsY2xhc3MgU0FNX1JJRF9NRU0gKixjbGFzcyBTQU1fU0lEX05BTUVfVVNFX01FTSAqKWNvbnN0IA0KKz9UcmFuc2xhdGVOYW1lc1RvUmlkc0BTQU1fRE9NQUlOQEBRQkVKUEJRQkdLUEFWU0FNX1JJRF9NRU1AQFBBVlNBTV9TSURfTkFNRV9VU0VfTUVNQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTFNBX1BPTElDWTo6VHJhbnNsYXRlTmFtZXNUb1NpZHModW5zaWduZWQgc2hvcnQgY29uc3QgKiBjb25zdCAqLHVuc2lnbmVkIGxvbmcsY2xhc3MgTFNBX1RSQU5TTEFURURfU0lEX01FTSAqLGNsYXNzIExTQV9SRUZfRE9NQUlOX01FTSAqKQ0KKz9UcmFuc2xhdGVOYW1lc1RvU2lkc0BMU0FfUE9MSUNZQEBRQUVKUEJRQkdLUEFWTFNBX1RSQU5TTEFURURfU0lEX01FTUBAUEFWTFNBX1JFRl9ET01BSU5fTUVNQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTFNBX1BPTElDWTo6VHJhbnNsYXRlU2lkc1RvTmFtZXModm9pZCAqIGNvbnN0ICosdW5zaWduZWQgbG9uZyxjbGFzcyBMU0FfVFJBTlNMQVRFRF9OQU1FX01FTSAqLGNsYXNzIExTQV9SRUZfRE9NQUlOX01FTSAqKQ0KKz9UcmFuc2xhdGVTaWRzVG9OYW1lc0BMU0FfUE9MSUNZQEBRQUVKUEJRQVhLUEFWTFNBX1RSQU5TTEFURURfTkFNRV9NRU1AQFBBVkxTQV9SRUZfRE9NQUlOX01FTUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE9TX1NJRDo6VHJpbUxhc3RTdWJBdXRob3JpdHkodW5zaWduZWQgbG9uZyAqKQ0KKz9UcmltTGFzdFN1YkF1dGhvcml0eUBPU19TSURAQFFBRUpQQUtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVVNFUl8xMTo6VHJpbVBhcmFtcyh2b2lkKQ0KKz9UcmltUGFyYW1zQFVTRVJfMTFAQFFBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTFNBX1BPTElDWTo6VHJ1c3REb21haW4oY2xhc3MgTFNBX1BPTElDWSAmLGNsYXNzIE5MU19TVFIgY29uc3QgJixpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/VHJ1c3REb21haW5ATFNBX1BPTElDWUBAUUFFSkFBVjFAQUJWTkxTX1NUUkBASFBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfUE9MSUNZOjpUcnVzdERvbWFpbihjbGFzcyBOTFNfU1RSIGNvbnN0ICYsdm9pZCAqIGNvbnN0LGNsYXNzIE5MU19TVFIgY29uc3QgJixpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpDQorP1RydXN0RG9tYWluQExTQV9QT0xJQ1lAQFFBRUpBQlZOTFNfU1RSQEBRQVgwSFBCR0hAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0NfTUFOQUdFUjo6VW5sb2NrKHZvaWQpDQorP1VubG9ja0BTQ19NQU5BR0VSQEBRQUVKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6OlVwZGF0ZUNvbnRyb2wodm9pZCkNCis/VXBkYXRlQ29udHJvbEBPU19TRUNVUklUWV9ERVNDUklQVE9SQEBJQUVKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6OlVwZGF0ZVJlZmVyZW5jZWRTZWN1cml0eU9iamVjdChjbGFzcyBPU19PQkpFQ1RfV0lUSF9EQVRBICopDQorP1VwZGF0ZVJlZmVyZW5jZWRTZWN1cml0eU9iamVjdEBPU19TRUNVUklUWV9ERVNDUklQVE9SQEBJQUVKUEFWT1NfT0JKRUNUX1dJVEhfREFUQUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEFETUlOX0FVVEhPUklUWTo6VXBncmFkZUFjY291bnREb21haW4odW5zaWduZWQgbG9uZykNCis/VXBncmFkZUFjY291bnREb21haW5AQURNSU5fQVVUSE9SSVRZQEBRQUVKS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBBRE1JTl9BVVRIT1JJVFk6OlVwZ3JhZGVCdWlsdGluRG9tYWluKHVuc2lnbmVkIGxvbmcpDQorP1VwZ3JhZGVCdWlsdGluRG9tYWluQEFETUlOX0FVVEhPUklUWUBAUUFFSktAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQURNSU5fQVVUSE9SSVRZOjpVcGdyYWRlTFNBUG9saWN5KHVuc2lnbmVkIGxvbmcpDQorP1VwZ3JhZGVMU0FQb2xpY3lAQURNSU5fQVVUSE9SSVRZQEBRQUVKS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBBRE1JTl9BVVRIT1JJVFk6OlVwZ3JhZGVTYW1TZXJ2ZXIodW5zaWduZWQgbG9uZykNCis/VXBncmFkZVNhbVNlcnZlckBBRE1JTl9BVVRIT1JJVFlAQFFBRUpLQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBDT01QVVRFUjo6VmFsaWRhdGVOYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1ZhbGlkYXRlTmFtZUBDT01QVVRFUkBAQUFFSlBCR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIERFVklDRTo6VmFsaWRhdGVOYW1lKHZvaWQpDQorP1ZhbGlkYXRlTmFtZUBERVZJQ0VAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBET01BSU46OlZhbGlkYXRlTmFtZSh2b2lkKQ0KKz9WYWxpZGF0ZU5hbWVARE9NQUlOQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgTE1fT0JKOjpWYWxpZGF0ZU5hbWUodm9pZCkNCis/VmFsaWRhdGVOYW1lQExNX09CSkBATUFFSlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBOVF9BQ0NPVU5UU19VVElMSVRZOjpWYWxpZGF0ZVF1YWxpZmllZEFjY291bnROYW1lKGNsYXNzIE5MU19TVFIgY29uc3QgJixpbnQgKikNCis/VmFsaWRhdGVRdWFsaWZpZWRBY2NvdW50TmFtZUBOVF9BQ0NPVU5UU19VVElMSVRZQEBTR0pBQlZOTFNfU1RSQEBQQUhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTFNBX1BPTElDWTo6VmVyaWZ5THNhKGNsYXNzIExTQV9QUklNQVJZX0RPTV9JTkZPX01FTSAqLGNsYXNzIE5MU19TVFIgY29uc3QgKiljb25zdCANCis/VmVyaWZ5THNhQExTQV9QT0xJQ1lAQFFCRUpQQVZMU0FfUFJJTUFSWV9ET01fSU5GT19NRU1AQFBCVk5MU19TVFJAQEBaDQorOyBwcml2YXRlOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgTlRfQUNDT1VOVFNfVVRJTElUWTo6V19CdWlsZFF1YWxpZmllZEFjY291bnROYW1lKGNsYXNzIE5MU19TVFIgKixjbGFzcyBOTFNfU1RSIGNvbnN0ICYsY2xhc3MgTkxTX1NUUiBjb25zdCAqLGVudW0gX1NJRF9OQU1FX1VTRSkNCis/V19CdWlsZFF1YWxpZmllZEFjY291bnROYW1lQE5UX0FDQ09VTlRTX1VUSUxJVFlAQENHSlBBVk5MU19TVFJAQEFCVjJAUEJWMkBXNF9TSURfTkFNRV9VU0VAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIE5FV19MTV9PQko6OldfQ2hhbmdlVG9OZXcodm9pZCkNCis/V19DaGFuZ2VUb05ld0BORVdfTE1fT0JKQEBNQUVKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIEVOVU1fQ0FMTEVSX0xNX09CSjo6V19DbG9uZUZyb20oY2xhc3MgRU5VTV9DQUxMRVJfTE1fT0JKIGNvbnN0ICYpDQorP1dfQ2xvbmVGcm9tQEVOVU1fQ0FMTEVSX0xNX09CSkBASUFFSkFCVjFAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIEdST1VQOjpXX0Nsb25lRnJvbShjbGFzcyBHUk9VUCBjb25zdCAmKQ0KKz9XX0Nsb25lRnJvbUBHUk9VUEBASUFFSkFCVjFAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIEdST1VQXzE6OldfQ2xvbmVGcm9tKGNsYXNzIEdST1VQXzEgY29uc3QgJikNCis/V19DbG9uZUZyb21AR1JPVVBfMUBASUFFSkFCVjFAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIExPQ19MTV9PQko6OldfQ2xvbmVGcm9tKGNsYXNzIExPQ19MTV9PQkogY29uc3QgJikNCis/V19DbG9uZUZyb21ATE9DX0xNX09CSkBASUFFSkFCVjFAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIE1FTUJFUlNISVBfTE1fT0JKOjpXX0Nsb25lRnJvbShjbGFzcyBNRU1CRVJTSElQX0xNX09CSiBjb25zdCAmKQ0KKz9XX0Nsb25lRnJvbUBNRU1CRVJTSElQX0xNX09CSkBASUFFSkFCVjFAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIE5FV19MTV9PQko6OldfQ2xvbmVGcm9tKGNsYXNzIE5FV19MTV9PQkogY29uc3QgJikNCis/V19DbG9uZUZyb21ATkVXX0xNX09CSkBASUFFSkFCVjFAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIFNIQVJFOjpXX0Nsb25lRnJvbShjbGFzcyBTSEFSRSBjb25zdCAmKQ0KKz9XX0Nsb25lRnJvbUBTSEFSRUBASUFFSkFCVjFAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIFNIQVJFXzE6OldfQ2xvbmVGcm9tKGNsYXNzIFNIQVJFXzEgY29uc3QgJikNCis/V19DbG9uZUZyb21AU0hBUkVfMUBASUFFSkFCVjFAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIFNIQVJFXzI6OldfQ2xvbmVGcm9tKGNsYXNzIFNIQVJFXzIgY29uc3QgJikNCis/V19DbG9uZUZyb21AU0hBUkVfMkBASUFFSkFCVjFAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIFVTRVI6OldfQ2xvbmVGcm9tKGNsYXNzIFVTRVIgY29uc3QgJikNCis/V19DbG9uZUZyb21AVVNFUkBASUFFSkFCVjFAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIFVTRVJfMTE6OldfQ2xvbmVGcm9tKGNsYXNzIFVTRVJfMTEgY29uc3QgJikNCis/V19DbG9uZUZyb21AVVNFUl8xMUBASUFFSkFCVjFAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIFVTRVJfMjo6V19DbG9uZUZyb20oY2xhc3MgVVNFUl8yIGNvbnN0ICYpDQorP1dfQ2xvbmVGcm9tQFVTRVJfMkBASUFFSkFCVjFAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIFVTRVJfMzo6V19DbG9uZUZyb20oY2xhc3MgVVNFUl8zIGNvbnN0ICYpDQorP1dfQ2xvbmVGcm9tQFVTRVJfM0BASUFFSkFCVjFAQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBMTV9TRVJWSUNFOjpXX0NvbXB1dGVPdGhlclN0YXR1cyhzdHJ1Y3QgTE1fU0VSVklDRV9PVEhFUl9TVEFUVVMgKikNCis/V19Db21wdXRlT3RoZXJTdGF0dXNATE1fU0VSVklDRUBAQUFFWFBBVUxNX1NFUlZJQ0VfT1RIRVJfU1RBVFVTQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBFTlVNX0NBTExFUl9MTV9PQko6OldfQ3JlYXRlTmV3KHZvaWQpDQorP1dfQ3JlYXRlTmV3QEVOVU1fQ0FMTEVSX0xNX09CSkBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIEdST1VQXzE6OldfQ3JlYXRlTmV3KHZvaWQpDQorP1dfQ3JlYXRlTmV3QEdST1VQXzFAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBHUk9VUF9NRU1COjpXX0NyZWF0ZU5ldyh2b2lkKQ0KKz9XX0NyZWF0ZU5ld0BHUk9VUF9NRU1CQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgTFNBX0FDQ09VTlQ6OldfQ3JlYXRlTmV3KHZvaWQpDQorP1dfQ3JlYXRlTmV3QExTQV9BQ0NPVU5UQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgTkVXX0xNX09CSjo6V19DcmVhdGVOZXcodm9pZCkNCis/V19DcmVhdGVOZXdATkVXX0xNX09CSkBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFNIQVJFOjpXX0NyZWF0ZU5ldyh2b2lkKQ0KKz9XX0NyZWF0ZU5ld0BTSEFSRUBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFNIQVJFXzE6OldfQ3JlYXRlTmV3KHZvaWQpDQorP1dfQ3JlYXRlTmV3QFNIQVJFXzFAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBTSEFSRV8yOjpXX0NyZWF0ZU5ldyh2b2lkKQ0KKz9XX0NyZWF0ZU5ld0BTSEFSRV8yQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgVVNFUl8xMTo6V19DcmVhdGVOZXcodm9pZCkNCis/V19DcmVhdGVOZXdAVVNFUl8xMUBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFVTRVJfMjo6V19DcmVhdGVOZXcodm9pZCkNCis/V19DcmVhdGVOZXdAVVNFUl8yQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgVVNFUl8zOjpXX0NyZWF0ZU5ldyh2b2lkKQ0KKz9XX0NyZWF0ZU5ld0BVU0VSXzNAQE1BRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBVU0VSX01FTUI6OldfQ3JlYXRlTmV3KHZvaWQpDQorP1dfQ3JlYXRlTmV3QFVTRVJfTUVNQkBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBFTlVNX0NBTExFUjo6V19HZXRJbmZvKHZvaWQpDQorP1dfR2V0SW5mb0BFTlVNX0NBTExFUkBASUFFSlhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTE1fU0VSVklDRTo6V19JbnRlcnByZXRTdGF0dXMoc3RydWN0IF9TRVJWSUNFX0lORk9fMiBjb25zdCAqLGVudW0gTE1fU0VSVklDRV9TVEFUVVMgKixzdHJ1Y3QgTE1fU0VSVklDRV9PVEhFUl9TVEFUVVMgKikNCis/V19JbnRlcnByZXRTdGF0dXNATE1fU0VSVklDRUBAQUFFWFBCVV9TRVJWSUNFX0lORk9fMkBAUEFXNExNX1NFUlZJQ0VfU1RBVFVTQEBQQVVMTV9TRVJWSUNFX09USEVSX1NUQVRVU0BAQFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIExNX1NFUlZJQ0U6OldfSXNXZWxsS25vd25TZXJ2aWNlKHZvaWQpY29uc3QgDQorP1dfSXNXZWxsS25vd25TZXJ2aWNlQExNX1NFUlZJQ0VAQEFCRUhYWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIExNX1NFUlZJQ0U6OldfUXVlcnlTdGF0dXMoZW51bSBMTV9TRVJWSUNFX1NUQVRVUyAqLHN0cnVjdCBMTV9TRVJWSUNFX09USEVSX1NUQVRVUyAqKQ0KKz9XX1F1ZXJ5U3RhdHVzQExNX1NFUlZJQ0VAQEFBRUpQQVc0TE1fU0VSVklDRV9TVEFUVVNAQFBBVUxNX1NFUlZJQ0VfT1RIRVJfU1RBVFVTQEBAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIExNX1NFUlZJQ0U6OldfU2VydmljZUNvbnRyb2wodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/V19TZXJ2aWNlQ29udHJvbEBMTV9TRVJWSUNFQEBBQUVKSUlAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIExNX1NFUlZJQ0U6OldfU2VydmljZVN0YXJ0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1dfU2VydmljZVN0YXJ0QExNX1NFUlZJQ0VAQEFBRUpQQkdAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIExPQ0FUSU9OOjpXX1NldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGVudW0gTE9DQVRJT05fVFlQRSxpbnQpDQorP1dfU2V0QExPQ0FUSU9OQEBBQUVKUEJHVzRMT0NBVElPTl9UWVBFQEBIQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBHUk9VUF8xOjpXX1dyaXRlKHZvaWQpDQorP1dfV3JpdGVAR1JPVVBfMUBAQUFFSlhaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgU0VSVkVSXzE6OldfV3JpdGUodm9pZCkNCis/V19Xcml0ZUBTRVJWRVJfMUBAQUFFSlhaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgU0VSVkVSXzI6OldfV3JpdGUodm9pZCkNCis/V19Xcml0ZUBTRVJWRVJfMkBAQUFFSlhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBVU0VSXzI6OldfV3JpdGUodm9pZCkNCis/V19Xcml0ZUBVU0VSXzJAQElBRUpYWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgVVNFUl8zOjpXX1dyaXRlKHZvaWQpDQorP1dfV3JpdGVAVVNFUl8zQEBJQUVKWFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBXS1NUQV9VU0VSXzE6OldfV3JpdGUodm9pZCkNCis/V19Xcml0ZUBXS1NUQV9VU0VSXzFAQEFBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTkVXX0xNX09CSjo6V3JpdGUodm9pZCkNCis/V3JpdGVATkVXX0xNX09CSkBAUUFFSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIERFVklDRTo6V3JpdGVJbmZvKHZvaWQpDQorP1dyaXRlSW5mb0BERVZJQ0VAQFVBRUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBET01BSU46OldyaXRlSW5mbyh2b2lkKQ0KKz9Xcml0ZUluZm9ARE9NQUlOQEBVQUVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5FV19MTV9PQko6OldyaXRlSW5mbyh2b2lkKQ0KKz9Xcml0ZUluZm9ATkVXX0xNX09CSkBAUUFFSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFVTRVJfTU9EQUxTOjpXcml0ZUluZm8odm9pZCkNCis/V3JpdGVJbmZvQFVTRVJfTU9EQUxTQEBVQUVKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgVVNFUl9NT0RBTFNfMzo6V3JpdGVJbmZvKHZvaWQpDQorP1dyaXRlSW5mb0BVU0VSX01PREFMU18zQEBVQUVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5FV19MTV9PQko6OldyaXRlTmV3KHZvaWQpDQorP1dyaXRlTmV3QE5FV19MTV9PQkpAQFFBRUpYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgT1NfQUNFOjpfRGJnUHJpbnQodm9pZCljb25zdCANCis/X0RiZ1ByaW50QE9TX0FDRUBAUUJFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBPU19BQ0w6Ol9EYmdQcmludCh2b2lkKWNvbnN0IA0KKz9fRGJnUHJpbnRAT1NfQUNMQEBRQkVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIE9TX1NFQ1VSSVRZX0RFU0NSSVBUT1I6Ol9EYmdQcmludCh2b2lkKWNvbnN0IA0KKz9fRGJnUHJpbnRAT1NfU0VDVVJJVFlfREVTQ1JJUFRPUkBAUUJFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBPU19TSUQ6Ol9EYmdQcmludCh2b2lkKWNvbnN0IA0KKz9fRGJnUHJpbnRAT1NfU0lEQEBRQkVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBMTV9FTlVNOjpfRGVyZWdpc3Rlckl0ZXIodm9pZCkNCis/X0RlcmVnaXN0ZXJJdGVyQExNX0VOVU1AQEFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExNX1JFU1VNRV9FTlVNOjpfRGVyZWdpc3Rlckl0ZXIodm9pZCkNCis/X0RlcmVnaXN0ZXJJdGVyQExNX1JFU1VNRV9FTlVNQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBMTV9FTlVNOjpfUmVnaXN0ZXJJdGVyKHZvaWQpDQorP19SZWdpc3Rlckl0ZXJATE1fRU5VTUBAQUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTE1fUkVTVU1FX0VOVU06Ol9SZWdpc3Rlckl0ZXIodm9pZCkNCis/X1JlZ2lzdGVySXRlckBMTV9SRVNVTUVfRU5VTUBAQUFFWFhaDQorRGVzdHJveVNlc3Npb24NCitGcmVlQXJndg0KK0lfTU5ldENvbXB1dGVyTmFtZUNvbXBhcmUNCitJX01OZXRMb2dvbkNvbnRyb2wNCitJX01OZXROYW1lQ2Fub25pY2FsaXplDQorSV9NTmV0TmFtZUNvbXBhcmUNCitJX01OZXROYW1lVmFsaWRhdGUNCitJX01OZXRQYXRoQ2Fub25pY2FsaXplDQorSV9NTmV0UGF0aENvbXBhcmUNCitJX01OZXRQYXRoVHlwZQ0KK0lzU2xvd1RyYW5zcG9ydA0KK01BbGxvY01lbQ0KK01Eb3NQcmludFFFbnVtDQorTUZyZWVNZW0NCitNTmV0QWNjZXNzQWRkDQorTU5ldEFjY2Vzc0NoZWNrDQorTU5ldEFjY2Vzc0RlbA0KK01OZXRBY2Nlc3NFbnVtDQorTU5ldEFjY2Vzc0dldEluZm8NCitNTmV0QWNjZXNzR2V0VXNlclBlcm1zDQorTU5ldEFjY2Vzc1NldEluZm8NCitNTmV0QXBpQnVmZmVyQWxsb2MNCitNTmV0QXBpQnVmZmVyRnJlZQ0KK01OZXRBcGlCdWZmZXJSZUFsbG9jDQorTU5ldEFwaUJ1ZmZlclNpemUNCitNTmV0QXVkaXRDbGVhcg0KK01OZXRBdWRpdFJlYWQNCitNTmV0QXVkaXRXcml0ZQ0KK01OZXRDaGFyRGV2Q29udHJvbA0KK01OZXRDaGFyRGV2R2V0SW5mbw0KK01OZXRDaGFyRGV2UUVudW0NCitNTmV0Q2hhckRldlFHZXRJbmZvDQorTU5ldENoYXJEZXZRUHVyZ2UNCitNTmV0Q2hhckRldlFQdXJnZVNlbGYNCitNTmV0Q2hhckRldlFTZXRJbmZvDQorTU5ldENvbmZpZ0dldA0KK01OZXRDb25maWdHZXRBbGwNCitNTmV0Q29uZmlnU2V0DQorTU5ldENvbm5lY3Rpb25FbnVtDQorTU5ldEVycm9yTG9nQ2xlYXINCitNTmV0RXJyb3JMb2dSZWFkDQorTU5ldEVycm9yTG9nV3JpdGUNCitNTmV0RmlsZUNsb3NlDQorTU5ldEZpbGVFbnVtDQorTU5ldEZpbGVHZXRJbmZvDQorTU5ldEdldERDTmFtZQ0KK01OZXRHcm91cEFkZA0KK01OZXRHcm91cEFkZFVzZXINCitNTmV0R3JvdXBEZWwNCitNTmV0R3JvdXBEZWxVc2VyDQorTU5ldEdyb3VwRW51bQ0KK01OZXRHcm91cEdldEluZm8NCitNTmV0R3JvdXBHZXRVc2Vycw0KK01OZXRHcm91cFNldEluZm8NCitNTmV0R3JvdXBTZXRVc2Vycw0KK01OZXRMb2NhbEdyb3VwQWRkTWVtYmVyDQorTU5ldExvZ29uRW51bQ0KK01OZXRNZXNzYWdlQnVmZmVyU2VuZA0KK01OZXRSZW1vdGVUT0QNCitNTmV0U2VydmVyRGlza0VudW0NCitNTmV0U2VydmVyRW51bQ0KK01OZXRTZXJ2ZXJHZXRJbmZvDQorTU5ldFNlcnZlclNldEluZm8NCitNTmV0U2VydmljZUNvbnRyb2wNCitNTmV0U2VydmljZUVudW0NCitNTmV0U2VydmljZUdldEluZm8NCitNTmV0U2VydmljZUluc3RhbGwNCitNTmV0U2Vzc2lvbkRlbA0KK01OZXRTZXNzaW9uRW51bQ0KK01OZXRTZXNzaW9uR2V0SW5mbw0KK01OZXRTaGFyZUFkZA0KK01OZXRTaGFyZUNoZWNrDQorTU5ldFNoYXJlRGVsDQorTU5ldFNoYXJlRGVsU3RpY2t5DQorTU5ldFNoYXJlRW51bQ0KK01OZXRTaGFyZUVudW1TdGlja3kNCitNTmV0U2hhcmVHZXRJbmZvDQorTU5ldFNoYXJlU2V0SW5mbw0KK01OZXRVc2VBZGQNCitNTmV0VXNlRGVsDQorTU5ldFVzZUVudW0NCitNTmV0VXNlR2V0SW5mbw0KK01OZXRVc2VyQWRkDQorTU5ldFVzZXJEZWwNCitNTmV0VXNlckVudW0NCitNTmV0VXNlckdldEdyb3Vwcw0KK01OZXRVc2VyR2V0SW5mbw0KK01OZXRVc2VyTW9kYWxzR2V0DQorTU5ldFVzZXJNb2RhbHNTZXQNCitNTmV0VXNlclBhc3N3b3JkU2V0DQorTU5ldFVzZXJTZXRHcm91cHMNCitNTmV0VXNlclNldEluZm8NCitNTmV0V2tzdGFHZXRJbmZvDQorTU5ldFdrc3RhU2V0SW5mbw0KK01OZXRXa3N0YVNldFVJRA0KK01OZXRXa3N0YVVzZXJFbnVtDQorTU5ldFdrc3RhVXNlckdldEluZm8NCitNYWtlQXJndkFyZ2MNCitSZWdHZXRNYWNoaW5lSWRlbnRpZmllclZhbHVlDQorU2V0dXBOb3JtYWxTZXNzaW9uDQorU2V0dXBOdWxsU2Vzc2lvbg0KK1NldHVwU2Vzc2lvbg0KK1Nsb3dUcmFuc3BvcnRXb3JrZXJUaHJlYWQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bmV0dWkyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3duZXR1aTIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhiZWM5NDUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bmV0dWkyLmRlZgpAQCAtMCwwICsxLDQwOTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTkVUVUkyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBORVRVSTIuZGxsDQorRVhQT1JUUw0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEFDQ0VMVEFCTEU6OkFDQ0VMVEFCTEUoY2xhc3MgSURSRVNPVVJDRSBjb25zdCAmKQ0KKz8/MEFDQ0VMVEFCTEVAQFFBRUBBQlZJRFJFU09VUkNFQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEFDQ09VTlRfTkFNRVNfTUxFOjpBQ0NPVU5UX05BTUVTX01MRShjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBOVF9VU0VSX0JST1dTRVJfRElBTE9HICosaW50LHVuc2lnbmVkIGxvbmcsZW51bSBGb250VHlwZSkNCis/PzBBQ0NPVU5UX05BTUVTX01MRUBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASVBCR1BBVk5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQEhLVzRGb250VHlwZUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBQ1RJVkFUSU9OX0VWRU5UOjpBQ1RJVkFUSU9OX0VWRU5UKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsbG9uZykNCis/PzBBQ1RJVkFUSU9OX0VWRU5UQEBRQUVASUlKQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBTElBU19TVFI6OkFMSUFTX1NUUih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MEFMSUFTX1NUUkBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQUxMT0NfU1RSOjpBTExPQ19TVFIodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBpbnQpDQorPz8wQUxMT0NfU1RSQEBRQUVAUEFHSUBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQVBQTElDQVRJT046OkFQUExJQ0FUSU9OKHN0cnVjdCBISU5TVEFOQ0VfXyAqLGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorPz8wQVBQTElDQVRJT05AQElBRUBQQVVISU5TVEFOQ0VfX0BASElJSUlAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIEFQUF9XSU5ET1c6OkFQUF9XSU5ET1coY2xhc3MgTkxTX1NUUiBjb25zdCAmLGNsYXNzIElEUkVTT1VSQ0UgY29uc3QgJixjbGFzcyBJRFJFU09VUkNFIGNvbnN0ICYpDQorPz8wQVBQX1dJTkRPV0BASUFFQEFCVk5MU19TVFJAQEFCVklEUkVTT1VSQ0VAQDFAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIEFQUF9XSU5ET1c6OkFQUF9XSU5ET1coY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTixjbGFzcyBOTFNfU1RSIGNvbnN0ICYsY2xhc3MgSURSRVNPVVJDRSBjb25zdCAmLGNsYXNzIElEUkVTT1VSQ0UgY29uc3QgJikNCis/PzBBUFBfV0lORE9XQEBJQUVAVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAQUJWTkxTX1NUUkBAQUJWSURSRVNPVVJDRUBAM0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQVJSQVlfQ09OVFJPTFZBTF9DSURfUEFJUjo6QVJSQVlfQ09OVFJPTFZBTF9DSURfUEFJUih1bnNpZ25lZCBpbnQpDQorPz8wQVJSQVlfQ09OVFJPTFZBTF9DSURfUEFJUkBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVI6OkFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVIoY2xhc3MgQ09OVFJPTFZBTF9DSURfUEFJUiAqLHVuc2lnbmVkIGludCxpbnQpDQorPz8wQVJSQVlfQ09OVFJPTFZBTF9DSURfUEFJUkBAUUFFQFBBVkNPTlRST0xWQUxfQ0lEX1BBSVJAQElIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBUlJBWV9MSVNUX0NPTlRST0xWQUxfQ0lEX1BBSVI6OkFSUkFZX0xJU1RfQ09OVFJPTFZBTF9DSURfUEFJUih1bnNpZ25lZCBpbnQpDQorPz8wQVJSQVlfTElTVF9DT05UUk9MVkFMX0NJRF9QQUlSQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQVJST1dfQlVUVE9OOjpBUlJPV19CVVRUT04oY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz8/MEFSUk9XX0JVVFRPTkBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUlJSUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQVJST1dfQlVUVE9OOjpBUlJPV19CVVRUT04oY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZykNCis/PzBBUlJPV19CVVRUT05AQFFBRUBQQVZPV05FUl9XSU5ET1dAQElJSUlWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBU1NPQ0hDRklMRTo6QVNTT0NIQ0ZJTEUoc3RydWN0IEhJTlNUQU5DRV9fICosbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorPz8wQVNTT0NIQ0ZJTEVAQFFBRUBQQVVISU5TVEFOQ0VfX0BASktLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBU1NPQ0hXTkRESVNQOjpBU1NPQ0hXTkRESVNQKHN0cnVjdCBIV05EX18gKixjbGFzcyBESVNQQVRDSEVSIGNvbnN0ICopDQorPz8wQVNTT0NIV05ERElTUEBAUUFFQFBBVUhXTkRfX0BAUEJWRElTUEFUQ0hFUkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBU1NPQ0hXTkRQRExHOjpBU1NPQ0hXTkRQRExHKHN0cnVjdCBIV05EX18gKixjbGFzcyBESUFMT0dfV0lORE9XIGNvbnN0ICopDQorPz8wQVNTT0NIV05EUERMR0BAUUFFQFBBVUhXTkRfX0BAUEJWRElBTE9HX1dJTkRPV0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBU1NPQ0hXTkRQV05EOjpBU1NPQ0hXTkRQV05EKHN0cnVjdCBIV05EX18gKixjbGFzcyBDTElFTlRfV0lORE9XIGNvbnN0ICopDQorPz8wQVNTT0NIV05EUFdOREBAUUFFQFBBVUhXTkRfX0BAUEJWQ0xJRU5UX1dJTkRPV0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBU1NPQ0hXTkRUSElTOjpBU1NPQ0hXTkRUSElTKHN0cnVjdCBIV05EX18gKix2b2lkIGNvbnN0ICopDQorPz8wQVNTT0NIV05EVEhJU0BAUUFFQFBBVUhXTkRfX0BAUEJYQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBBVE9NX0JBU0U6OkFUT01fQkFTRSh1bnNpZ25lZCBzaG9ydCkNCis/PzBBVE9NX0JBU0VAQElBRUBHQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBBVE9NX0JBU0U6OkFUT01fQkFTRSh2b2lkKQ0KKz8/MEFUT01fQkFTRUBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQVVESVRfQ0hFQ0tCT1hFUzo6QVVESVRfQ0hFQ0tCT1hFUyhjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYsY2xhc3MgQklURklFTEQgY29uc3QgJikNCis/PzBBVURJVF9DSEVDS0JPWEVTQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJSUlBQlZOTFNfU1RSQEBBQlZCSVRGSUVMREBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBVVRPX0NVUlNPUjo6QVVUT19DVVJTT1IodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBBVVRPX0NVUlNPUkBAUUFFQFBCR0BaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQkFTRTo6QkFTRSh2b2lkKQ0KKz8/MEJBU0VAQElBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJBU0U6OkJBU0UoY2xhc3MgQkFTRSBjb25zdCAmKQ0KKz8/MEJBU0VAQFFBRUBBQlYwQEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQkFTRV9FTExJUFNJUzo6QkFTRV9FTExJUFNJUyhlbnVtIEVMTElQU0lTX1NUWUxFKQ0KKz8/MEJBU0VfRUxMSVBTSVNAQElBRUBXNEVMTElQU0lTX1NUWUxFQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJBU0VfUEFTU1dPUkRfRElBTE9HOjpCQVNFX1BBU1NXT1JEX0RJQUxPRyhzdHJ1Y3QgSFdORF9fICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wQkFTRV9QQVNTV09SRF9ESUFMT0dAQFFBRUBQQVVIV05EX19AQFBCR0lJSzFJSTFJMUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQkFTRV9TRVRfRk9DVVNfRExHOjpCQVNFX1NFVF9GT0NVU19ETEcoc3RydWN0IEhXTkRfXyAqIGNvbnN0LGVudW0gU0VMRUNUSU9OX1RZUEUsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz8/MEJBU0VfU0VUX0ZPQ1VTX0RMR0BAUUFFQFFBVUhXTkRfX0BAVzRTRUxFQ1RJT05fVFlQRUBAS1BCR0syS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQklUX01BUDo6QklUX01BUChjbGFzcyBJRFJFU09VUkNFIGNvbnN0ICYpDQorPz8wQklUX01BUEBAUUFFQEFCVklEUkVTT1VSQ0VAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQklUX01BUDo6QklUX01BUChzdHJ1Y3QgSEJJVE1BUF9fICopDQorPz8wQklUX01BUEBAUUFFQFBBVUhCSVRNQVBfX0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCTFRfQkFDS0dST1VORF9FRElUOjpCTFRfQkFDS0dST1VORF9FRElUKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCkNCis/PzBCTFRfQkFDS0dST1VORF9FRElUQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCTFRfQ09NQk9CT1g6OkJMVF9DT01CT0JPWChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsaW50LGVudW0gRm9udFR5cGUpDQorPz8wQkxUX0NPTUJPQk9YQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJSFc0Rm9udFR5cGVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQkxUX0NPTUJPQk9YOjpCTFRfQ09NQk9CT1goY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZyxpbnQsZW51bSBGb250VHlwZSkNCis/PzBCTFRfQ09NQk9CT1hAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLSFc0Rm9udFR5cGVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQkxUX0RBVEVfU1BJTl9HUk9VUDo6QkxUX0RBVEVfU1BJTl9HUk9VUChjbGFzcyBPV05FUl9XSU5ET1cgKixjbGFzcyBJTlRMX1BST0ZJTEUgY29uc3QgJix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/PzBCTFRfREFURV9TUElOX0dST1VQQEBRQUVAUEFWT1dORVJfV0lORE9XQEBBQlZJTlRMX1BST0ZJTEVAQElJSUlJSUlJSUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQkxUX0xJU1RCT1g6OkJMVF9MSVNUQk9YKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxpbnQsZW51bSBGb250VHlwZSxpbnQpDQorPz8wQkxUX0xJU1RCT1hAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElIVzRGb250VHlwZUBASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQkxUX0xJU1RCT1g6OkJMVF9MSVNUQk9YKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsaW50LGVudW0gRm9udFR5cGUsaW50KQ0KKz8/MEJMVF9MSVNUQk9YQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS0hXNEZvbnRUeXBlQEBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCTFRfTElTVEJPWF9IQVc6OkJMVF9MSVNUQk9YX0hBVyhjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsaW50LGVudW0gRm9udFR5cGUsaW50KQ0KKz8/MEJMVF9MSVNUQk9YX0hBV0BAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUhXNEZvbnRUeXBlQEBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCTFRfTElTVEJPWF9IQVc6OkJMVF9MSVNUQk9YX0hBVyhjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLGludCxlbnVtIEZvbnRUeXBlLGludCkNCis/PzBCTFRfTElTVEJPWF9IQVdAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLSFc0Rm9udFR5cGVAQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJMVF9NQVNURVJfVElNRVI6OkJMVF9NQVNURVJfVElNRVIodm9pZCkNCis/PzBCTFRfTUFTVEVSX1RJTUVSQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCTFRfU0NSQVRDSDo6QkxUX1NDUkFUQ0godW5zaWduZWQgaW50KQ0KKz8/MEJMVF9TQ1JBVENIQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQkxUX1RJTUVfU1BJTl9HUk9VUDo6QkxUX1RJTUVfU1BJTl9HUk9VUChjbGFzcyBPV05FUl9XSU5ET1cgKixjbGFzcyBJTlRMX1BST0ZJTEUgY29uc3QgJix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorPz8wQkxUX1RJTUVfU1BJTl9HUk9VUEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BAQUJWSU5UTF9QUk9GSUxFQEBJSUlJSUlJSUlJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCUk9XU0VSX0RPTUFJTjo6QlJPV1NFUl9ET01BSU4odW5zaWduZWQgc2hvcnQgY29uc3QgKix2b2lkICosaW50LGludCkNCis/PzBCUk9XU0VSX0RPTUFJTkBAUUFFQFBCR1BBWEhIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCUk9XU0VSX0RPTUFJTl9DQjo6QlJPV1NFUl9ET01BSU5fQ0IoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50KQ0KKz8/MEJST1dTRVJfRE9NQUlOX0NCQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCUk9XU0VSX0RPTUFJTl9MQjo6QlJPV1NFUl9ET01BSU5fTEIoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGNsYXNzIEJST1dTRVJfRE9NQUlOX0NCICopDQorPz8wQlJPV1NFUl9ET01BSU5fTEJAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElQQVZCUk9XU0VSX0RPTUFJTl9DQkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCUk9XU0VSX0RPTUFJTl9MQkk6OkJST1dTRVJfRE9NQUlOX0xCSShjbGFzcyBCUk9XU0VSX0RPTUFJTiAqKQ0KKz8/MEJST1dTRVJfRE9NQUlOX0xCSUBAUUFFQFBBVkJST1dTRVJfRE9NQUlOQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJST1dTRVJfRE9NQUlOX0xCSV9QQjo6QlJPV1NFUl9ET01BSU5fTEJJX1BCKGNsYXNzIEJST1dTRVJfRE9NQUlOX0xCSSAqKQ0KKz8/MEJST1dTRVJfRE9NQUlOX0xCSV9QQkBAUUFFQFBBVkJST1dTRVJfRE9NQUlOX0xCSUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCUk9XU0VSX1NVQkpFQ1Q6OkJST1dTRVJfU1VCSkVDVCh2b2lkKQ0KKz8/MEJST1dTRVJfU1VCSkVDVEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQlJPV1NFUl9TVUJKRUNUX0lURVI6OkJST1dTRVJfU1VCSkVDVF9JVEVSKGNsYXNzIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0cgKikNCis/PzBCUk9XU0VSX1NVQkpFQ1RfSVRFUkBAUUFFQFBBVk5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQlVUVE9OX0NPTlRST0w6OkJVVFRPTl9DT05UUk9MKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCkNCis/PzBCVVRUT05fQ09OVFJPTEBASUFFQFBBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQlVUVE9OX0NPTlRST0w6OkJVVFRPTl9DT05UUk9MKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcpDQorPz8wQlVUVE9OX0NPTlRST0xAQElBRUBQQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQU5DRUxfVEFTS19ESUFMT0c6OkNBTkNFTF9UQVNLX0RJQUxPRyh1bnNpZ25lZCBpbnQsc3RydWN0IEhXTkRfXyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyxsb25nLGVudW0gRUxMSVBTSVNfU1RZTEUpDQorPz8wQ0FOQ0VMX1RBU0tfRElBTE9HQEBRQUVASVBBVUhXTkRfX0BAUEJHS0pXNEVMTElQU0lTX1NUWUxFQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpDSEFOR0VBQkxFX1NQSU5fSVRFTShjbGFzcyBDT05UUk9MX1dJTkRPVyAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCkNCis/PzBDSEFOR0VBQkxFX1NQSU5fSVRFTUBAUUFFQFBBVkNPTlRST0xfV0lORE9XQEBLS0tIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSEVDS0JPWDo6Q0hFQ0tCT1goY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50KQ0KKz8/MENIRUNLQk9YQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBDTElFTlRfV0lORE9XOjpDTElFTlRfV0lORE9XKHVuc2lnbmVkIGxvbmcsY2xhc3MgV0lORE9XIGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBDTElFTlRfV0lORE9XQEBJQUVAS1BCVldJTkRPV0BAUEJHQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBDTElFTlRfV0lORE9XOjpDTElFTlRfV0lORE9XKHZvaWQpDQorPz8wQ0xJRU5UX1dJTkRPV0BASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ09NQk9CT1g6OkNPTUJPQk9YKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorPz8wQ09NQk9CT1hAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDT01CT0JPWDo6Q09NQk9CT1goY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBDT01CT0JPWEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUlWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDT05TT0xFX0VMTElQU0lTOjpDT05TT0xFX0VMTElQU0lTKGVudW0gRUxMSVBTSVNfU1RZTEUsaW50KQ0KKz8/MENPTlNPTEVfRUxMSVBTSVNAQFFBRUBXNEVMTElQU0lTX1NUWUxFQEBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDT05UUk9MVkFMX0NJRF9QQUlSOjpDT05UUk9MVkFMX0NJRF9QQUlSKHVuc2lnbmVkIGludCxjbGFzcyBDT05UUk9MX1ZBTFVFICopDQorPz8wQ09OVFJPTFZBTF9DSURfUEFJUkBAUUFFQElQQVZDT05UUk9MX1ZBTFVFQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENPTlRST0xWQUxfQ0lEX1BBSVI6OkNPTlRST0xWQUxfQ0lEX1BBSVIodm9pZCkNCis/PzBDT05UUk9MVkFMX0NJRF9QQUlSQEBRQUVAWFoNCis7IHByaXZhdGU6IF9fdGhpc2NhbGwgQ09OVFJPTF9FTlRSWTo6Q09OVFJPTF9FTlRSWShjbGFzcyBDT05UUk9MX1dJTkRPVyAqKQ0KKz8/MENPTlRST0xfRU5UUllAQEFBRUBQQVZDT05UUk9MX1dJTkRPV0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDT05UUk9MX0VWRU5UOjpDT05UUk9MX0VWRU5UKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorPz8wQ09OVFJPTF9FVkVOVEBAUUFFQElJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDT05UUk9MX0VWRU5UOjpDT05UUk9MX0VWRU5UKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsbG9uZykNCis/PzBDT05UUk9MX0VWRU5UQEBRQUVASUlKQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDT05UUk9MX0dST1VQOjpDT05UUk9MX0dST1VQKGNsYXNzIENPTlRST0xfR1JPVVAgKikNCis/PzBDT05UUk9MX0dST1VQQEBRQUVAUEFWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENPTlRST0xfVEFCTEU6OkNPTlRST0xfVEFCTEUodm9pZCkNCis/PzBDT05UUk9MX1RBQkxFQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDT05UUk9MX1ZBTFVFOjpDT05UUk9MX1ZBTFVFKGNsYXNzIENPTlRST0xfR1JPVVAgKikNCis/PzBDT05UUk9MX1ZBTFVFQEBRQUVAUEFWQ09OVFJPTF9HUk9VUEBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDT05UUk9MX1dJTkRPVzo6Q09OVFJPTF9XSU5ET1coY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50KQ0KKz8/MENPTlRST0xfV0lORE9XQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDT05UUk9MX1dJTkRPVzo6Q09OVFJPTF9XSU5ET1coY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MENPTlRST0xfV0lORE9XQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS1BCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1VTVE9NX0NPTlRST0w6OkNVU1RPTV9DT05UUk9MKGNsYXNzIENPTlRST0xfV0lORE9XICopDQorPz8wQ1VTVE9NX0NPTlRST0xAQFFBRUBQQVZDT05UUk9MX1dJTkRPV0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBERUNfU0xUOjpERUNfU0xUKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorPz8wREVDX1NMVEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUlAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERFQ19TTFQ6OkRFQ19TTFQoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/PzBERUNfU0xUQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS1BCR0lAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERFVklDRV9DT01CTzo6REVWSUNFX0NPTUJPKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxlbnVtIExNT19ERVZJQ0UsZW51bSBMTU9fREVWX1VTQUdFKQ0KKz8/MERFVklDRV9DT01CT0BAUUFFQFBBVk9XTkVSX1dJTkRPV0BASVc0TE1PX0RFVklDRUBAVzRMTU9fREVWX1VTQUdFQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERFVklDRV9DT05URVhUOjpERVZJQ0VfQ09OVEVYVChzdHJ1Y3QgSERDX18gKikNCis/PzBERVZJQ0VfQ09OVEVYVEBAUUFFQFBBVUhEQ19fQEBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIERJQUxPR19XSU5ET1c6OkRJQUxPR19XSU5ET1codW5zaWduZWQgY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCxzdHJ1Y3QgSFdORF9fICosaW50KQ0KKz8/MERJQUxPR19XSU5ET1dAQElBRUBQQkVJUEFVSFdORF9fQEBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBESUFMT0dfV0lORE9XOjpESUFMT0dfV0lORE9XKGNsYXNzIElEUkVTT1VSQ0UgY29uc3QgJixjbGFzcyBQV05EMkhXTkQgY29uc3QgJixpbnQpDQorPz8wRElBTE9HX1dJTkRPV0BAUUFFQEFCVklEUkVTT1VSQ0VAQEFCVlBXTkQySFdOREBASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRElTS19TUEFDRV9TVUJDTEFTUzo6RElTS19TUEFDRV9TVUJDTEFTUyhjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGxvbmcsbG9uZyxsb25nLGxvbmcsbG9uZyxpbnQpDQorPz8wRElTS19TUEFDRV9TVUJDTEFTU0BAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUlJSUlKSkpKSkhAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIERJU1BBVENIRVI6OkRJU1BBVENIRVIoY2xhc3MgV0lORE9XICopDQorPz8wRElTUEFUQ0hFUkBASUFFQFBBVldJTkRPV0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBESVNQTEFZX0NPTlRFWFQ6OkRJU1BMQVlfQ09OVEVYVChzdHJ1Y3QgSFdORF9fICopDQorPz8wRElTUExBWV9DT05URVhUQEBRQUVAUEFVSFdORF9fQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERJU1BMQVlfQ09OVEVYVDo6RElTUExBWV9DT05URVhUKGNsYXNzIFdJTkRPVyAqKQ0KKz8/MERJU1BMQVlfQ09OVEVYVEBAUUFFQFBBVldJTkRPV0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBESVNQTEFZX0NPTlRFWFQ6OkRJU1BMQVlfQ09OVEVYVChjbGFzcyBXSU5ET1cgKixzdHJ1Y3QgSERDX18gKikNCis/PzBESVNQTEFZX0NPTlRFWFRAQFFBRUBQQVZXSU5ET1dAQFBBVUhEQ19fQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERJU1BMQVlfTUFQOjpESVNQTEFZX01BUCh1bnNpZ25lZCBpbnQpDQorPz8wRElTUExBWV9NQVBAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBESVNQTEFZX1RBQkxFOjpESVNQTEFZX1RBQkxFKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQgY29uc3QgKikNCis/PzBESVNQTEFZX1RBQkxFQEBRQUVASVBCSUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRExHTE9BRDo6RExHTE9BRChjbGFzcyBJRFJFU09VUkNFIGNvbnN0ICYsc3RydWN0IEhXTkRfXyAqLGludCAoX19zdGRjYWxsKikoc3RydWN0IEhXTkRfXyAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsbG9uZyksaW50KQ0KKz8/MERMR0xPQURAQFFBRUBBQlZJRFJFU09VUkNFQEBQQVVIV05EX19AQFA2R0gxSUlKQFpIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBETEdMT0FEOjpETEdMT0FEKHVuc2lnbmVkIGNoYXIgY29uc3QgKix1bnNpZ25lZCBpbnQsc3RydWN0IEhXTkRfXyAqLGludCAoX19zdGRjYWxsKikoc3RydWN0IEhXTkRfXyAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsbG9uZyksaW50KQ0KKz8/MERMR0xPQURAQFFBRUBQQkVJUEFVSFdORF9fQEBQNkdIMUlJSkBaSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRExJU1RfT0ZfU1BJTl9JVEVNOjpETElTVF9PRl9TUElOX0lURU0oaW50KQ0KKz8/MERMSVNUX09GX1NQSU5fSVRFTUBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERNSURfRFRFOjpETUlEX0RURSh1bnNpZ25lZCBpbnQpDQorPz8wRE1JRF9EVEVAQFFBRUBJQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBETV9EVEU6OkRNX0RURSh2b2lkKQ0KKz8/MERNX0RURUBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRE1fRFRFOjpETV9EVEUoY2xhc3MgRElTUExBWV9NQVAgKikNCis/PzBETV9EVEVAQFFBRUBQQVZESVNQTEFZX01BUEBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBET01BSU5fQ09NQk86OkRPTUFJTl9DT01CTyhjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/PzBET01BSU5fQ09NQk9AQFFBRUBQQVZPV05FUl9XSU5ET1dAQElJSUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRE9NQUlOX0ZJTExfVEhSRUFEOjpET01BSU5fRklMTF9USFJFQUQoY2xhc3MgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRyAqLGNsYXNzIEJST1dTRVJfRE9NQUlOICosY2xhc3MgQURNSU5fQVVUSE9SSVRZIGNvbnN0ICopDQorPz8wRE9NQUlOX0ZJTExfVEhSRUFEQEBRQUVAUEFWTlRfVVNFUl9CUk9XU0VSX0RJQUxPR0BAUEFWQlJPV1NFUl9ET01BSU5AQFBCVkFETUlOX0FVVEhPUklUWUBAQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBEVEU6OkRURSh2b2lkKQ0KKz8/MERURUBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRURJVF9DT05UUk9MOjpFRElUX0NPTlRST0woY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/PzBFRElUX0NPTlRST0xAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBFRElUX0NPTlRST0w6OkVESVRfQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz8/MEVESVRfQ09OVFJPTEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtQQkdJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBFTEFQU0VEX1RJTUVfQ09OVFJPTDo6RUxBUFNFRF9USU1FX0NPTlRST0woY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsY2xhc3MgU0xUICYsbG9uZyxsb25nLGxvbmcsY2xhc3MgU0xUICYsY2xhc3MgU0xUICYsbG9uZyxsb25nLGxvbmcsbG9uZyxpbnQpDQorPz8wRUxBUFNFRF9USU1FX0NPTlRST0xAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElJSUlJSUFBVlNMVEBASkpKMTFKSkpKSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRVZFTlQ6OkVWRU5UKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsbG9uZykNCis/PzBFVkVOVEBAUUFFQElJSkBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRVhQQU5EQUJMRV9ESUFMT0c6OkVYUEFOREFCTEVfRElBTE9HKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IEhXTkRfXyAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsaW50KQ0KKz8/MEVYUEFOREFCTEVfRElBTE9HQEBRQUVAUEJHUEFVSFdORF9fQEBJSUhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEZPQ1VTRExHX0RBVEFfVEhSRUFEOjpGT0NVU0RMR19EQVRBX1RIUkVBRChzdHJ1Y3QgSFdORF9fICosdW5zaWduZWQgbG9uZyxlbnVtIFNFTEVDVElPTl9UWVBFLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/PzBGT0NVU0RMR19EQVRBX1RIUkVBREBAUUFFQFBBVUhXTkRfX0BAS1c0U0VMRUNUSU9OX1RZUEVAQFBCR0tAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEZPQ1VTX0NIRUNLQk9YOjpGT0NVU19DSEVDS0JPWChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQpDQorPz8wRk9DVVNfQ0hFQ0tCT1hAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEZPTlQ6OkZPTlQoc3RydWN0IHRhZ0xPR0ZPTlRXIGNvbnN0ICYpDQorPz8wRk9OVEBAUUFFQEFCVXRhZ0xPR0ZPTlRXQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEZPTlQ6OkZPTlQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBjaGFyLGludCxlbnVtIEZvbnRBdHRyaWJ1dGVzKQ0KKz8/MEZPTlRAQFFBRUBQQkdFSFc0Rm9udEF0dHJpYnV0ZXNAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRk9OVDo6Rk9OVChlbnVtIEZvbnRUeXBlKQ0KKz8/MEZPTlRAQFFBRUBXNEZvbnRUeXBlQEBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIEZPUldBUkRJTkdfQkFTRTo6Rk9SV0FSRElOR19CQVNFKGNsYXNzIEJBU0UgKikNCis/PzBGT1JXQVJESU5HX0JBU0VAQElBRUBQQVZCQVNFQEBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIEdFVF9GTkFNRV9CQVNFX0RMRzo6R0VUX0ZOQU1FX0JBU0VfRExHKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/PzBHRVRfRk5BTUVfQkFTRV9ETEdAQElBRUBQQVZPV05FUl9XSU5ET1dAQFBCR0tAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEdFVF9PUEVOX0ZJTEVOQU1FX0RMRzo6R0VUX09QRU5fRklMRU5BTUVfRExHKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/PzBHRVRfT1BFTl9GSUxFTkFNRV9ETEdAQFFBRUBQQVZPV05FUl9XSU5ET1dAQFBCR0tAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEdFVF9TQVZFX0ZJTEVOQU1FX0RMRzo6R0VUX1NBVkVfRklMRU5BTUVfRExHKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/PzBHRVRfU0FWRV9GSUxFTkFNRV9ETEdAQFFBRUBQQVZPV05FUl9XSU5ET1dAQFBCR0tAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEdMT0JBTF9BVE9NOjpHTE9CQUxfQVRPTSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MEdMT0JBTF9BVE9NQEBRQUVAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBHUkFQSElDQUxfQlVUVE9OOjpHUkFQSElDQUxfQlVUVE9OKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBHUkFQSElDQUxfQlVUVE9OQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJUEJHMTFAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEdSQVBISUNBTF9CVVRUT046OkdSQVBISUNBTF9CVVRUT04oY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBHUkFQSElDQUxfQlVUVE9OQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJUEJHMVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEsxQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBHUkFQSElDQUxfQlVUVE9OX1dJVEhfRElTQUJMRTo6R1JBUEhJQ0FMX0JVVFRPTl9XSVRIX0RJU0FCTEUoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz8/MEdSQVBISUNBTF9CVVRUT05fV0lUSF9ESVNBQkxFQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJSUlJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBHUkFQSElDQUxfQlVUVE9OX1dJVEhfRElTQUJMRTo6R1JBUEhJQ0FMX0JVVFRPTl9XSVRIX0RJU0FCTEUoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZykNCis/PzBHUkFQSElDQUxfQlVUVE9OX1dJVEhfRElTQUJMRUBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUlJSVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEhBU19NRVNTQUdFX1BVTVA6OkhBU19NRVNTQUdFX1BVTVAodm9pZCkNCis/PzBIQVNfTUVTU0FHRV9QVU1QQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBIQVdfRk9SX0hBV0FJSV9JTkZPOjpIQVdfRk9SX0hBV0FJSV9JTkZPKHZvaWQpDQorPz8wSEFXX0ZPUl9IQVdBSUlfSU5GT0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSElEREVOX0NPTlRST0w6OkhJRERFTl9DT05UUk9MKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCkNCis/PzBISURERU5fQ09OVFJPTEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSElFUl9MQkk6OkhJRVJfTEJJKGludCkNCis/PzBISUVSX0xCSUBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEhJRVJfTEJJX0lURVJBVE9SOjpISUVSX0xCSV9JVEVSQVRPUihjbGFzcyBISUVSX0xCSSAqLGludCkNCis/PzBISUVSX0xCSV9JVEVSQVRPUkBAUUFFQFBBVkhJRVJfTEJJQEBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBISUVSX0xJU1RCT1g6OkhJRVJfTElTVEJPWChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsaW50LGVudW0gRm9udFR5cGUsaW50KQ0KKz8/MEhJRVJfTElTVEJPWEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUhXNEZvbnRUeXBlQEBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBISUVSX0xJU1RCT1g6OkhJRVJfTElTVEJPWChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLGludCxlbnVtIEZvbnRUeXBlLGludCkNCis/PzBISUVSX0xJU1RCT1hAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLSFc0Rm9udFR5cGVAQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEhfU1BMSVRURVJfQkFSOjpIX1NQTElUVEVSX0JBUihjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQpDQorPz8wSF9TUExJVFRFUl9CQVJAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEhfU1BMSVRURVJfQkFSOjpIX1NQTElUVEVSX0JBUihjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nKQ0KKz8/MEhfU1BMSVRURVJfQkFSQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSUNBTk9OX1NMRTo6SUNBTk9OX1NMRShjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGludCkNCis/PzBJQ0FOT05fU0xFQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJSUhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElDQU5PTl9TTEU6OklDQU5PTl9TTEUoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCxpbnQpDQorPz8wSUNBTk9OX1NMRUBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtQQkdJSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSUNPTl9DT05UUk9MOjpJQ09OX0NPTlRST0woY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50KQ0KKz8/MElDT05fQ09OVFJPTEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSUNPTl9DT05UUk9MOjpJQ09OX0NPTlRST0woY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGNsYXNzIElEUkVTT1VSQ0UgY29uc3QgJikNCis/PzBJQ09OX0NPTlRST0xAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElBQlZJRFJFU09VUkNFQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElDT05fQ09OVFJPTDo6SUNPTl9DT05UUk9MKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLGNsYXNzIElEUkVTT1VSQ0UgY29uc3QgJix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wSUNPTl9DT05UUk9MQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAQUJWSURSRVNPVVJDRUBAS1BCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSUNPTl9DT05UUk9MOjpJQ09OX0NPTlRST0woY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MElDT05fQ09OVFJPTEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElEUkVTT1VSQ0U6OklEUkVTT1VSQ0UodW5zaWduZWQgaW50KQ0KKz8/MElEUkVTT1VSQ0VAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBJRFJFU09VUkNFOjpJRFJFU09VUkNFKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wSURSRVNPVVJDRUBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSVRFUl9DVFJMOjpJVEVSX0NUUkwoY2xhc3MgT1dORVJfV0lORE9XIGNvbnN0ICopDQorPz8wSVRFUl9DVFJMQEBRQUVAUEJWT1dORVJfV0lORE9XQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElURVJfRExfU1BJTl9JVEVNOjpJVEVSX0RMX1NQSU5fSVRFTShjbGFzcyBETElTVCAmKQ0KKz8/MElURVJfRExfU1BJTl9JVEVNQEBRQUVAQUFWRExJU1RAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSVRFUl9TTF9BU1NPQ0hDRklMRTo6SVRFUl9TTF9BU1NPQ0hDRklMRShjbGFzcyBTTElTVCAmKQ0KKz8/MElURVJfU0xfQVNTT0NIQ0ZJTEVAQFFBRUBBQVZTTElTVEBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBJVEVSX1NMX0NMSUVOVERBVEE6OklURVJfU0xfQ0xJRU5UREFUQShjbGFzcyBTTElTVCAmKQ0KKz8/MElURVJfU0xfQ0xJRU5UREFUQUBAUUFFQEFBVlNMSVNUQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElURVJfU0xfU1RSSU5HX0JJVFNFVF9QQUlSOjpJVEVSX1NMX1NUUklOR19CSVRTRVRfUEFJUihjbGFzcyBTTElTVCAmKQ0KKz8/MElURVJfU0xfU1RSSU5HX0JJVFNFVF9QQUlSQEBRQUVAQUFWU0xJU1RAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSVRFUl9TTF9USU1FUl9CQVNFOjpJVEVSX1NMX1RJTUVSX0JBU0UoY2xhc3MgU0xJU1QgJikNCis/PzBJVEVSX1NMX1RJTUVSX0JBU0VAQFFBRUBBQVZTTElTVEBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBJVEVSX1NMX1VJX0VYVDo6SVRFUl9TTF9VSV9FWFQoY2xhc3MgU0xJU1QgJikNCis/PzBJVEVSX1NMX1VJX0VYVEBAUUFFQEFBVlNMSVNUQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElURVJfU0xfVVNFUl9CUk9XU0VSX0xCSTo6SVRFUl9TTF9VU0VSX0JST1dTRVJfTEJJKGNsYXNzIFNMSVNUICYpDQorPz8wSVRFUl9TTF9VU0VSX0JST1dTRVJfTEJJQEBRQUVAQUFWU0xJU1RAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTEFaWV9MSVNUQk9YOjpMQVpZX0xJU1RCT1goY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGludCxlbnVtIEZvbnRUeXBlKQ0KKz8/MExBWllfTElTVEJPWEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUhXNEZvbnRUeXBlQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExBWllfTElTVEJPWDo6TEFaWV9MSVNUQk9YKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsaW50LGVudW0gRm9udFR5cGUpDQorPz8wTEFaWV9MSVNUQk9YQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS0hXNEZvbnRUeXBlQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExCSTo6TEJJKHZvaWQpDQorPz8wTEJJQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMQklUUkVFOjpMQklUUkVFKHZvaWQpDQorPz8wTEJJVFJFRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTEJJX0hFQVA6OkxCSV9IRUFQKGludCxpbnQpDQorPz8wTEJJX0hFQVBAQFFBRUBISEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTEJfQ09MVU1OX0hFQURFUjo6TEJfQ09MVU1OX0hFQURFUihjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTikNCis/PzBMQl9DT0xVTU5fSEVBREVSQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMQl9DT0xfV0lEVEhTOjpMQl9DT0xfV0lEVEhTKHN0cnVjdCBIV05EX18gKixzdHJ1Y3QgSElOU1RBTkNFX18gKixjbGFzcyBJRFJFU09VUkNFIGNvbnN0ICYsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/PzBMQl9DT0xfV0lEVEhTQEBRQUVAUEFVSFdORF9fQEBQQVVISU5TVEFOQ0VfX0BAQUJWSURSRVNPVVJDRUBASUlAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExJU1RCT1g6OkxJU1RCT1goY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGludCxlbnVtIEZvbnRUeXBlLGludCkNCis/PzBMSVNUQk9YQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJSFc0Rm9udFR5cGVAQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExJU1RCT1g6OkxJU1RCT1goY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZyxpbnQsZW51bSBGb250VHlwZSxpbnQpDQorPz8wTElTVEJPWEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtIVzRGb250VHlwZUBASEBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTElTVF9DT05UUk9MOjpMSVNUX0NPTlRST0woY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGludCkNCis/PzBMSVNUX0NPTlRST0xAQElBRUBQQVZPV05FUl9XSU5ET1dAQElIQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBMSVNUX0NPTlRST0w6OkxJU1RfQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MExJU1RfQ09OVFJPTEBASUFFQFBBVk9XTkVSX1dJTkRPV0BASUhWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMTV9PTExCOjpMTV9PTExCKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxlbnVtIFNFTEVDVElPTl9UWVBFLHVuc2lnbmVkIGxvbmcpDQorPz8wTE1fT0xMQkBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASVc0U0VMRUNUSU9OX1RZUEVAQEtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExNX09MTEI6OkxNX09MTEIoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGVudW0gU0VMRUNUSU9OX1RZUEUsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorPz8wTE1fT0xMQkBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASVc0U0VMRUNUSU9OX1RZUEVAQFBCR0tLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMT0NBTF9BVE9NOjpMT0NBTF9BVE9NKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wTE9DQUxfQVRPTUBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6TE9HT05fSE9VUlNfQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQpDQorPz8wTE9HT05fSE9VUlNfQ09OVFJPTEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6TE9HT05fSE9VUlNfQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTikNCis/PzBMT0dPTl9IT1VSU19DT05UUk9MQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNQUdJQ19HUk9VUDo6TUFHSUNfR1JPVVAoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGludCx1bnNpZ25lZCBpbnQsY2xhc3MgQ09OVFJPTF9HUk9VUCAqKQ0KKz8/ME1BR0lDX0dST1VQQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJSElQQVZDT05UUk9MX0dST1VQQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE1BU0tfTUFQOjpNQVNLX01BUCh2b2lkKQ0KKz8/ME1BU0tfTUFQQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNRU1PUllfREM6Ok1FTU9SWV9EQyhjbGFzcyBERVZJQ0VfQ09OVEVYVCAmKQ0KKz8/ME1FTU9SWV9EQ0BAUUFFQEFBVkRFVklDRV9DT05URVhUQEBAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIE1FTlVJVEVNOjpNRU5VSVRFTShzdHJ1Y3QgSE1FTlVfXyAqLHVuc2lnbmVkIGludCkNCis/PzBNRU5VSVRFTUBASUFFQFBBVUhNRU5VX19AQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE1FTlVJVEVNOjpNRU5VSVRFTShjbGFzcyBBUFBfV0lORE9XICosdW5zaWduZWQgaW50KQ0KKz8/ME1FTlVJVEVNQEBRQUVAUEFWQVBQX1dJTkRPV0BASUBaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTUVOVV9CQVNFOjpNRU5VX0JBU0Uoc3RydWN0IEhNRU5VX18gKikNCis/PzBNRU5VX0JBU0VAQElBRUBQQVVITUVOVV9fQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE1FVEVSOjpNRVRFUihjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgbG9uZykNCis/PzBNRVRFUkBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE1FVEVSOjpNRVRFUihjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorPz8wTUVURVJAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTUxFOjpNTEUoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/PzBNTEVAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNTEU6Ok1MRShjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz8/ME1MRUBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtQQkdJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNTEVfRk9OVDo6TUxFX0ZPTlQoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGVudW0gRm9udFR5cGUpDQorPz8wTUxFX0ZPTlRAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElXNEZvbnRUeXBlQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE1MVDo6TUxUKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCkNCis/PzBNTFRAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE1MVDo6TUxUKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBNTFRAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNTFRfRk9OVDo6TUxUX0ZPTlQoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGVudW0gRm9udFR5cGUpDQorPz8wTUxUX0ZPTlRAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElXNEZvbnRUeXBlQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE1PVVNFX0VWRU5UOjpNT1VTRV9FVkVOVCh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGxvbmcpDQorPz8wTU9VU0VfRVZFTlRAQFFBRUBJSUpAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE1TR1BPUFVQX0RJQUxPRzo6TVNHUE9QVVBfRElBTE9HKHN0cnVjdCBIV05EX18gKixjbGFzcyBOTFNfU1RSIGNvbnN0ICYsbG9uZyxlbnVtIE1TR19TRVZFUklUWSx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz8/ME1TR1BPUFVQX0RJQUxPR0BAUUFFQFBBVUhXTkRfX0BAQUJWTkxTX1NUUkBASlc0TVNHX1NFVkVSSVRZQEBLSUlKS0BaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgTVNHX0RJQUxPR19CQVNFOjpNU0dfRElBTE9HX0JBU0Uoc3RydWN0IEhXTkRfXyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz8/ME1TR19ESUFMT0dfQkFTRUBASUFFQFBBVUhXTkRfX0BAUEJHSUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTlRfRklORF9BQ0NPVU5UX0RJQUxPRzo6TlRfRklORF9BQ0NPVU5UX0RJQUxPRyhzdHJ1Y3QgSFdORF9fICosY2xhc3MgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRyAqLGNsYXNzIEJST1dTRVJfRE9NQUlOX0NCICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz8/ME5UX0ZJTkRfQUNDT1VOVF9ESUFMT0dAQFFBRUBQQVVIV05EX19AQFBBVk5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQFBBVkJST1dTRVJfRE9NQUlOX0NCQEBQQkdLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOVF9HTE9CQUxHUk9VUF9CUk9XU0VSX0RJQUxPRzo6TlRfR0xPQkFMR1JPVVBfQlJPV1NFUl9ESUFMT0coc3RydWN0IEhXTkRfXyAqLGNsYXNzIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0cgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgT1NfU0lEIGNvbnN0ICosY2xhc3MgU0FNX0RPTUFJTiBjb25zdCAqLGNsYXNzIExTQV9QT0xJQ1kgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/ME5UX0dMT0JBTEdST1VQX0JST1dTRVJfRElBTE9HQEBRQUVAUEFVSFdORF9fQEBQQVZOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBQQkcyUEJWT1NfU0lEQEBQQlZTQU1fRE9NQUlOQEBQQVZMU0FfUE9MSUNZQEAyQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOVF9HUk9VUF9CUk9XU0VSX0RJQUxPRzo6TlRfR1JPVVBfQlJPV1NFUl9ESUFMT0codW5zaWduZWQgc2hvcnQgY29uc3QgKixzdHJ1Y3QgSFdORF9fICosY2xhc3MgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBOVF9HUk9VUF9CUk9XU0VSX0RJQUxPR0BAUUFFQFBCR1BBVUhXTkRfX0BAUEFWTlRfVVNFUl9CUk9XU0VSX0RJQUxPR0BAMDBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE5UX0dST1VQX0JST1dTRVJfTEI6Ok5UX0dST1VQX0JST1dTRVJfTEIoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50KQ0KKz8/ME5UX0dST1VQX0JST1dTRVJfTEJAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE5UX0xPQ0FMR1JPVVBfQlJPV1NFUl9ESUFMT0c6Ok5UX0xPQ0FMR1JPVVBfQlJPV1NFUl9ESUFMT0coc3RydWN0IEhXTkRfXyAqLGNsYXNzIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0cgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgT1NfU0lEIGNvbnN0ICosY2xhc3MgU0FNX0RPTUFJTiBjb25zdCAqLGNsYXNzIFNBTV9ET01BSU4gY29uc3QgKixjbGFzcyBMU0FfUE9MSUNZICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBOVF9MT0NBTEdST1VQX0JST1dTRVJfRElBTE9HQEBRQUVAUEFVSFdORF9fQEBQQVZOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBQQkcyUEJWT1NfU0lEQEBQQlZTQU1fRE9NQUlOQEA0UEFWTFNBX1BPTElDWUBAMkBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6TlRfVVNFUl9CUk9XU0VSX0RJQUxPRyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHN0cnVjdCBIV05EX18gKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIEFETUlOX0FVVEhPUklUWSBjb25zdCAqKQ0KKz8/ME5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQFFBRUBQQkdQQVVIV05EX19AQDBLSzBLS0tQQlZBRE1JTl9BVVRIT1JJVFlAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgT0xMQl9FTlRSWTo6T0xMQl9FTlRSWShlbnVtIE9VVExJTkVfTEJfTEVWRUwsaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/ME9MTEJfRU5UUllAQFFBRUBXNE9VVExJTkVfTEJfTEVWRUxAQEhQQkcxMUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgT1BFTl9ESUFMT0dfQkFTRTo6T1BFTl9ESUFMT0dfQkFTRShzdHJ1Y3QgSFdORF9fICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgT1BFTl9MQk9YX0JBU0UgKikNCis/PzBPUEVOX0RJQUxPR19CQVNFQEBRQUVAUEFVSFdORF9fQEBJSUlJSVBCRzFQQVZPUEVOX0xCT1hfQkFTRUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBPUEVOX0xCSV9CQVNFOjpPUEVOX0xCSV9CQVNFKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/PzBPUEVOX0xCSV9CQVNFQEBRQUVAUEJHMEtLS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgT1BFTl9MQk9YX0JBU0U6Ok9QRU5fTEJPWF9CQVNFKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYsY2xhc3MgTkxTX1NUUiBjb25zdCAmKQ0KKz8/ME9QRU5fTEJPWF9CQVNFQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJQUJWTkxTX1NUUkBAMUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgT1JERVJfR1JPVVA6Ok9SREVSX0dST1VQKGNsYXNzIFNUUklOR19MSVNUQk9YICosY2xhc3MgQlVUVE9OX0NPTlRST0wgKixjbGFzcyBCVVRUT05fQ09OVFJPTCAqLGNsYXNzIENPTlRST0xfR1JPVVAgKikNCis/PzBPUkRFUl9HUk9VUEBAUUFFQFBBVlNUUklOR19MSVNUQk9YQEBQQVZCVVRUT05fQ09OVFJPTEBAMVBBVkNPTlRST0xfR1JPVVBAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgT1VUTElORV9MSVNUQk9YOjpPVVRMSU5FX0xJU1RCT1goY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGludCkNCis/PzBPVVRMSU5FX0xJU1RCT1hAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBPV05FUl9XSU5ET1c6Ok9XTkVSX1dJTkRPVyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsY2xhc3MgV0lORE9XIGNvbnN0ICopDQorPz8wT1dORVJfV0lORE9XQEBRQUVAUEJHS1BCVldJTkRPV0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBPV05FUl9XSU5ET1c6Ok9XTkVSX1dJTkRPVyh2b2lkKQ0KKz8/ME9XTkVSX1dJTkRPV0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgT1dOSU5HV05EOjpPV05JTkdXTkQoc3RydWN0IEhXTkRfXyAqKQ0KKz8/ME9XTklOR1dOREBAUUFFQFBBVUhXTkRfX0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBPV05JTkdXTkQ6Ok9XTklOR1dORChjbGFzcyBPV05FUl9XSU5ET1cgY29uc3QgKikNCis/PzBPV05JTkdXTkRAQFFBRUBQQlZPV05FUl9XSU5ET1dAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUEFJTlRfRElTUExBWV9DT05URVhUOjpQQUlOVF9ESVNQTEFZX0NPTlRFWFQoY2xhc3MgV0lORE9XICopDQorPz8wUEFJTlRfRElTUExBWV9DT05URVhUQEBRQUVAUEFWV0lORE9XQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFBBU1NXT1JEX0NPTlRST0w6OlBBU1NXT1JEX0NPTlRST0woY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/PzBQQVNTV09SRF9DT05UUk9MQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJSUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUEFTU1dPUkRfQ09OVFJPTDo6UEFTU1dPUkRfQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz8/MFBBU1NXT1JEX0NPTlRST0xAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLUEJHSUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUE9QVVA6OlBPUFVQKHN0cnVjdCBIV05EX18gKixsb25nLGVudW0gTVNHX1NFVkVSSVRZLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsaW50KQ0KKz8/MFBPUFVQQEBRQUVAUEFVSFdORF9fQEBKVzRNU0dfU0VWRVJJVFlAQElJSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUE9QVVA6OlBPUFVQKHN0cnVjdCBIV05EX18gKixsb25nLGVudW0gTVNHX1NFVkVSSVRZLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgaW50LGNsYXNzIE5MU19TVFIgY29uc3QgKiAqLHVuc2lnbmVkIGludCkNCis/PzBQT1BVUEBAUUFFQFBBVUhXTkRfX0BASlc0TVNHX1NFVkVSSVRZQEBLSVBBUEJWTkxTX1NUUkBASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUE9QVVBfTUVOVTo6UE9QVVBfTUVOVShjbGFzcyBJRFJFU09VUkNFICYpDQorPz8wUE9QVVBfTUVOVUBAUUFFQEFBVklEUkVTT1VSQ0VAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUE9QVVBfTUVOVTo6UE9QVVBfTUVOVShjbGFzcyBQV05EMkhXTkQgY29uc3QgJikNCis/PzBQT1BVUF9NRU5VQEBRQUVAQUJWUFdORDJIV05EQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFBPUFVQX01FTlU6OlBPUFVQX01FTlUoc3RydWN0IEhNRU5VX18gKikNCis/PzBQT1BVUF9NRU5VQEBRQUVAUEFVSE1FTlVfX0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQT1BVUF9NRU5VOjpQT1BVUF9NRU5VKHZvaWQpDQorPz8wUE9QVVBfTUVOVUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUFJPQ19JTlNUQU5DRTo6UFJPQ19JTlNUQU5DRSh1bnNpZ25lZCBsb25nKQ0KKz8/MFBST0NfSU5TVEFOQ0VAQFFBRUBLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQUk9DX1RJTUVSOjpQUk9DX1RJTUVSKHN0cnVjdCBIV05EX18gKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50KQ0KKz8/MFBST0NfVElNRVJAQFFBRUBQQVVIV05EX19AQEtLSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUFJPR1JFU1NfQ09OVFJPTDo6UFJPR1JFU1NfQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/PzBQUk9HUkVTU19DT05UUk9MQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJSUlAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFBST01QVF9BTkRfQ09OTkVDVDo6UFJPTVBUX0FORF9DT05ORUNUKHN0cnVjdCBIV05EX18gKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wUFJPTVBUX0FORF9DT05ORUNUQEBRQUVAUEFVSFdORF9fQEBQQkdLSTFAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFBST01QVF9GT1JfQU5ZX0RDX0RMRzo6UFJPTVBUX0ZPUl9BTllfRENfRExHKGNsYXNzIFBXTkQySFdORCAmLHVuc2lnbmVkIGxvbmcsY2xhc3MgTkxTX1NUUiBjb25zdCAqLGNsYXNzIFBXTkQySFdORCAqKQ0KKz8/MFBST01QVF9GT1JfQU5ZX0RDX0RMR0BAUUFFQEFBVlBXTkQySFdOREBAS1BCVk5MU19TVFJAQFBBVjJAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQVVNIX0JVVFRPTjo6UFVTSF9CVVRUT04oY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50KQ0KKz8/MFBVU0hfQlVUVE9OQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQVVNIX0JVVFRPTjo6UFVTSF9CVVRUT04oY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZykNCis/PzBQVVNIX0JVVFRPTkBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFBXTkQySFdORDo6UFdORDJIV05EKHN0cnVjdCBIV05EX18gKikNCis/PzBQV05EMkhXTkRAQFFBRUBQQVVIV05EX19AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUkFESU9fQlVUVE9OOjpSQURJT19CVVRUT04oY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50KQ0KKz8/MFJBRElPX0JVVFRPTkBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUkFESU9fR1JPVVA6OlJBRElPX0dST1VQKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxpbnQsdW5zaWduZWQgaW50LGNsYXNzIENPTlRST0xfR1JPVVAgKikNCis/PzBSQURJT19HUk9VUEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUhJUEFWQ09OVFJPTF9HUk9VUEBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBSRVNPVVJDRV9QQVNTV09SRF9ESUFMT0c6OlJFU09VUkNFX1BBU1NXT1JEX0RJQUxPRyhzdHJ1Y3QgSFdORF9fICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgbG9uZykNCis/PzBSRVNPVVJDRV9QQVNTV09SRF9ESUFMT0dAQFFBRUBQQVVIV05EX19AQFBCR0lLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBSRVNPVVJDRV9TVFI6OlJFU09VUkNFX1NUUihsb25nKQ0KKz8/MFJFU09VUkNFX1NUUkBAUUFFQEpAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFJJVEVSX0RMX1NQSU5fSVRFTTo6UklURVJfRExfU1BJTl9JVEVNKGNsYXNzIERMSVNUICYpDQorPz8wUklURVJfRExfU1BJTl9JVEVNQEBRQUVAQUFWRExJU1RAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0NSRUVOX0RDOjpTQ1JFRU5fREModm9pZCkNCis/PzBTQ1JFRU5fRENAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNDUk9MTEJBUjo6U0NST0xMQkFSKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcpDQorPz8wU0NST0xMQkFSQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0NST0xMX0VWRU5UOjpTQ1JPTExfRVZFTlQodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxsb25nKQ0KKz8/MFNDUk9MTF9FVkVOVEBAUUFFQElJSkBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0VUX0NPTlRST0w6OlNFVF9DT05UUk9MKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsc3RydWN0IEhJQ09OX18gKixzdHJ1Y3QgSElDT05fXyAqLGNsYXNzIExJU1RCT1ggKixjbGFzcyBMSVNUQk9YICosdW5zaWduZWQgaW50KQ0KKz8/MFNFVF9DT05UUk9MQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJSVBBVUhJQ09OX19AQDFQQVZMSVNUQk9YQEAySUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0VUX09GX0FVRElUX0NBVEVHT1JJRVM6OlNFVF9PRl9BVURJVF9DQVRFR09SSUVTKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGNsYXNzIE1BU0tfTUFQICosY2xhc3MgQklURklFTEQgKixjbGFzcyBCSVRGSUVMRCAqLGludCkNCis/PzBTRVRfT0ZfQVVESVRfQ0FURUdPUklFU0BAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUlJUEFWTUFTS19NQVBAQFBBVkJJVEZJRUxEQEAySEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0xFOjpTTEUoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/PzBTTEVAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTTEU6OlNMRShjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz8/MFNMRUBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtQQkdJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTTEVfRk9OVDo6U0xFX0ZPTlQoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGVudW0gRm9udFR5cGUpDQorPz8wU0xFX0ZPTlRAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElXNEZvbnRUeXBlQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNMRV9TVFJJUDo6U0xFX1NUUklQKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsaW50KQ0KKz8/MFNMRV9TVFJJUEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUlIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTTEVfU1RSSVA6OlNMRV9TVFJJUChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50LGludCkNCis/PzBTTEVfU1RSSVBAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLUEJHSUhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNMRV9TVFJMQl9HUk9VUDo6U0xFX1NUUkxCX0dST1VQKGNsYXNzIE9XTkVSX1dJTkRPVyAqLGNsYXNzIFNMRSAqLGNsYXNzIFNUUklOR19MSVNUQk9YICosY2xhc3MgUFVTSF9CVVRUT04gKixjbGFzcyBQVVNIX0JVVFRPTiAqKQ0KKz8/MFNMRV9TVFJMQl9HUk9VUEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BAUEFWU0xFQEBQQVZTVFJJTkdfTElTVEJPWEBAUEFWUFVTSF9CVVRUT05AQDNAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNMSVNUX09GX0FTU09DSENGSUxFOjpTTElTVF9PRl9BU1NPQ0hDRklMRShpbnQpDQorPz8wU0xJU1RfT0ZfQVNTT0NIQ0ZJTEVAQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTTElTVF9PRl9DTElFTlREQVRBOjpTTElTVF9PRl9DTElFTlREQVRBKGludCkNCis/PzBTTElTVF9PRl9DTElFTlREQVRBQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0xJU1RfT0ZfT1NfU0lEOjpTTElTVF9PRl9PU19TSUQoaW50KQ0KKz8/MFNMSVNUX09GX09TX1NJREBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNMSVNUX09GX1NUUklOR19CSVRTRVRfUEFJUjo6U0xJU1RfT0ZfU1RSSU5HX0JJVFNFVF9QQUlSKGludCkNCis/PzBTTElTVF9PRl9TVFJJTkdfQklUU0VUX1BBSVJAQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTTElTVF9PRl9USU1FUl9CQVNFOjpTTElTVF9PRl9USU1FUl9CQVNFKGludCkNCis/PzBTTElTVF9PRl9USU1FUl9CQVNFQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0xJU1RfT0ZfVUlfRVhUOjpTTElTVF9PRl9VSV9FWFQoaW50KQ0KKz8/MFNMSVNUX09GX1VJX0VYVEBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNMSVNUX09GX1VMQ19BUElfQlVGRkVSOjpTTElTVF9PRl9VTENfQVBJX0JVRkZFUihpbnQpDQorPz8wU0xJU1RfT0ZfVUxDX0FQSV9CVUZGRVJAQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTTElTVF9PRl9VU0VSX0JST1dTRVJfTEJJOjpTTElTVF9PRl9VU0VSX0JST1dTRVJfTEJJKGludCkNCis/PzBTTElTVF9PRl9VU0VSX0JST1dTRVJfTEJJQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0xUOjpTTFQoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50KQ0KKz8/MFNMVEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0xUOjpTTFQoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFNMVEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNMVF9FTExJUFNJUzo6U0xUX0VMTElQU0lTKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKixlbnVtIEVMTElQU0lTX1NUWUxFKQ0KKz8/MFNMVF9FTExJUFNJU0BAUUFFQFBBVk9XTkVSX1dJTkRPV0BASVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtQQkdXNEVMTElQU0lTX1NUWUxFQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNMVF9FTExJUFNJUzo6U0xUX0VMTElQU0lTKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxlbnVtIEVMTElQU0lTX1NUWUxFKQ0KKz8/MFNMVF9FTExJUFNJU0BAUUFFQFBBVk9XTkVSX1dJTkRPV0BASVc0RUxMSVBTSVNfU1RZTEVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0xUX0ZPTlQ6OlNMVF9GT05UKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxlbnVtIEZvbnRUeXBlKQ0KKz8/MFNMVF9GT05UQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJVzRGb250VHlwZUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTT0xJRF9CUlVTSDo6U09MSURfQlJVU0goaW50KQ0KKz8/MFNPTElEX0JSVVNIQEBRQUVASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1BJTl9HUk9VUDo6U1BJTl9HUk9VUChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxpbnQpDQorPz8wU1BJTl9HUk9VUEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUlJSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1BJTl9HUk9VUDo6U1BJTl9HUk9VUChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsaW50KQ0KKz8/MFNQSU5fR1JPVVBAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElJSVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTUElOX0lURU06OlNQSU5fSVRFTShjbGFzcyBDT05UUk9MX1dJTkRPVyAqKQ0KKz8/MFNQSU5fSVRFTUBAUUFFQFBBVkNPTlRST0xfV0lORE9XQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNQSU5fU0xFX05VTTo6U1BJTl9TTEVfTlVNKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQsdW5zaWduZWQgaW50KQ0KKz8/MFNQSU5fU0xFX05VTUBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUtLS0hJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTUElOX1NMRV9OVU06OlNQSU5fU0xFX05VTShjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCx1bnNpZ25lZCBpbnQpDQorPz8wU1BJTl9TTEVfTlVNQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS0tLS0hJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTUElOX1NMRV9OVU1fVkFMSUQ6OlNQSU5fU0xFX05VTV9WQUxJRChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50KQ0KKz8/MFNQSU5fU0xFX05VTV9WQUxJREBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUtLS0hAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNQSU5fU0xFX05VTV9WQUxJRDo6U1BJTl9TTEVfTlVNX1ZBTElEKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsaW50KQ0KKz8/MFNQSU5fU0xFX05VTV9WQUxJREBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtLS0tIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTUElOX1NMRV9TVFI6OlNQSU5fU0xFX1NUUihjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsbG9uZyxsb25nLGludCx1bnNpZ25lZCBpbnQpDQorPz8wU1BJTl9TTEVfU1RSQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJSkpISUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1BJTl9TTEVfU1RSOjpTUElOX1NMRV9TVFIoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGxvbmcsbG9uZyxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsaW50LHVuc2lnbmVkIGludCkNCis/PzBTUElOX1NMRV9TVFJAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElKSlZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtISUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1BJTl9TTEVfU1RSOjpTUElOX1NMRV9TVFIoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogKiBjb25zdCxsb25nLGludCx1bnNpZ25lZCBpbnQpDQorPz8wU1BJTl9TTEVfU1RSQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJUUFQQkdKSElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNQSU5fU0xFX1NUUjo6U1BJTl9TTEVfU1RSKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqICogY29uc3QsbG9uZyxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsaW50LHVuc2lnbmVkIGludCkNCis/PzBTUElOX1NMRV9TVFJAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElRQVBCR0pWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBLSElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNQSU5fU0xFX1ZBTElEX1NFQ09ORDo6U1BJTl9TTEVfVkFMSURfU0VDT05EKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxsb25nLGxvbmcsbG9uZyxsb25nLGludCkNCis/PzBTUElOX1NMRV9WQUxJRF9TRUNPTkRAQFFBRUBQQVZPV05FUl9XSU5ET1dAQElKSkpKSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1BJTl9TTFRfU0VQQVJBVE9SOjpTUElOX1NMVF9TRVBBUkFUT1IoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50KQ0KKz8/MFNQSU5fU0xUX1NFUEFSQVRPUkBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1BJTl9TTFRfU0VQQVJBVE9SOjpTUElOX1NMVF9TRVBBUkFUT1IoY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nKQ0KKz8/MFNQSU5fU0xUX1NFUEFSQVRPUkBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASVBCR1ZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNUQU5EQUxPTkVfU0VUX0ZPQ1VTX0RMRzo6U1RBTkRBTE9ORV9TRVRfRk9DVVNfRExHKHN0cnVjdCBIV05EX18gKixjbGFzcyBOTFNfU1RSICosdW5zaWduZWQgbG9uZyxlbnVtIFNFTEVDVElPTl9UWVBFLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorPz8wU1RBTkRBTE9ORV9TRVRfRk9DVVNfRExHQEBRQUVAUEFVSFdORF9fQEBQQVZOTFNfU1RSQEBLVzRTRUxFQ1RJT05fVFlQRUBAS1BCRzNLQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBTVEFURTJfQlVUVE9OX0NPTlRST0w6OlNUQVRFMl9CVVRUT05fQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQpDQorPz8wU1RBVEUyX0JVVFRPTl9DT05UUk9MQEBJQUVAUEFWT1dORVJfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTVEFURUxCOjpTVEFURUxCKGludCAqIGNvbnN0LGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxpbnQsaW50LGVudW0gRm9udFR5cGUpDQorPz8wU1RBVEVMQkBAUUFFQFFBSFBBVk9XTkVSX1dJTkRPV0BASUhIVzRGb250VHlwZUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTVEFURUxCR1JQOjpTVEFURUxCR1JQKGNsYXNzIFNUQVRFTEIgKikNCis/PzBTVEFURUxCR1JQQEBRQUVAUEFWU1RBVEVMQkBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTVEFURUxCR1JQOjpTVEFURUxCR1JQKGludCAqIGNvbnN0LGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxpbnQsaW50LGVudW0gRm9udFR5cGUpDQorPz8wU1RBVEVMQkdSUEBAUUFFQFFBSFBBVk9XTkVSX1dJTkRPV0BASUhIVzRGb250VHlwZUBAQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBTVEFURV9CVVRUT05fQ09OVFJPTDo6U1RBVEVfQlVUVE9OX0NPTlRST0woY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50KQ0KKz8/MFNUQVRFX0JVVFRPTl9DT05UUk9MQEBJQUVAUEFWT1dORVJfV0lORE9XQEBJQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBTVEFURV9CVVRUT05fQ09OVFJPTDo6U1RBVEVfQlVUVE9OX0NPTlRST0woY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlESU1FTlNJT04sdW5zaWduZWQgbG9uZykNCis/PzBTVEFURV9CVVRUT05fQ09OVFJPTEBASUFFQFBBVk9XTkVSX1dJTkRPV0BASVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNUQVRJQ19TUElOX0lURU06OlNUQVRJQ19TUElOX0lURU0oY2xhc3MgQ09OVFJPTF9XSU5ET1cgKikNCis/PzBTVEFUSUNfU1BJTl9JVEVNQEBRQUVAUEFWQ09OVFJPTF9XSU5ET1dAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RBVElDX1RFWFRfQ09OVFJPTDo6U1RBVElDX1RFWFRfQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQpDQorPz8wU1RBVElDX1RFWFRfQ09OVFJPTEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RBVElDX1RFWFRfQ09OVFJPTDo6U1RBVElDX1RFWFRfQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wU1RBVElDX1RFWFRfQ09OVFJPTEBAUUFFQFBBVk9XTkVSX1dJTkRPV0BASVZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNUTEJJVEVNOjpTVExCSVRFTShjbGFzcyBTVEFURUxCR1JQICopDQorPz8wU1RMQklURU1AQFFBRUBQQVZTVEFURUxCR1JQQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNUUklOR19CSVRTRVRfUEFJUjo6U1RSSU5HX0JJVFNFVF9QQUlSKGNsYXNzIE5MU19TVFIgY29uc3QgJixjbGFzcyBCSVRGSUVMRCBjb25zdCAmLGludCkNCis/PzBTVFJJTkdfQklUU0VUX1BBSVJAQFFBRUBBQlZOTFNfU1RSQEBBQlZCSVRGSUVMREBASEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RSSU5HX0xJU1RCT1g6OlNUUklOR19MSVNUQk9YKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKixlbnVtIEZvbnRUeXBlKQ0KKz8/MFNUUklOR19MSVNUQk9YQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS1BCR1c0Rm9udFR5cGVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RSSU5HX0xJU1RCT1g6OlNUUklOR19MSVNUQk9YKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxlbnVtIEZvbnRUeXBlKQ0KKz8/MFNUUklOR19MSVNUQk9YQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJVzRGb250VHlwZUBAQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBTVFJJTkdfTElTVF9DT05UUk9MOjpTVFJJTkdfTElTVF9DT05UUk9MKGNsYXNzIE9XTkVSX1dJTkRPVyAqLHVuc2lnbmVkIGludCxpbnQpDQorPz8wU1RSSU5HX0xJU1RfQ09OVFJPTEBASUFFQFBBVk9XTkVSX1dJTkRPV0BASUhAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIFNUUklOR19MSVNUX0NPTlRST0w6OlNUUklOR19MSVNUX0NPTlRST0woY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGludCxjbGFzcyBYWVBPSU5ULGNsYXNzIFhZRElNRU5TSU9OLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBTVFJJTkdfTElTVF9DT05UUk9MQEBJQUVAUEFWT1dORVJfV0lORE9XQEBJSFZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEtQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNUUl9EVEU6OlNUUl9EVEUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBTVFJfRFRFQEBRQUVAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTVFJfRFRFX0VMTElQU0lTOjpTVFJfRFRFX0VMTElQU0lTKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgTElTVEJPWCAqLGVudW0gRUxMSVBTSVNfU1RZTEUpDQorPz8wU1RSX0RURV9FTExJUFNJU0BAUUFFQFBCR1BBVkxJU1RCT1hAQFc0RUxMSVBTSVNfU1RZTEVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1VCSkVDVF9CSVRNQVBfQkxPQ0s6OlNVQkpFQ1RfQklUTUFQX0JMT0NLKHZvaWQpDQorPz8wU1VCSkVDVF9CSVRNQVBfQkxPQ0tAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNZU01FTlVJVEVNOjpTWVNNRU5VSVRFTShjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQpDQorPz8wU1lTTUVOVUlURU1AQFFBRUBQQVZPV05FUl9XSU5ET1dAQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNZU1RFTV9NRU5VOjpTWVNURU1fTUVOVShjbGFzcyBQV05EMkhXTkQgY29uc3QgJikNCis/PzBTWVNURU1fTUVOVUBAUUFFQEFCVlBXTkQySFdOREBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBURVhUX0NPTlRST0w6OlRFWFRfQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQpDQorPz8wVEVYVF9DT05UUk9MQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBURVhUX0NPTlRST0w6OlRFWFRfQ09OVFJPTChjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQsY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wVEVYVF9DT05UUk9MQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJVlhZUE9JTlRAQFZYWURJTUVOU0lPTkBAS1BCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVElNRVI6OlRJTUVSKGNsYXNzIFRJTUVSX0NBTExPVVQgKix1bnNpZ25lZCBsb25nLGludCkNCis/PzBUSU1FUkBAUUFFQFBBVlRJTUVSX0NBTExPVVRAQEtIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBUSU1FUl9CQVNFOjpUSU1FUl9CQVNFKHVuc2lnbmVkIGxvbmcsaW50KQ0KKz8/MFRJTUVSX0JBU0VAQFFBRUBLSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVElNRVJfRVZFTlQ6OlRJTUVSX0VWRU5UKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsbG9uZykNCis/PzBUSU1FUl9FVkVOVEBAUUFFQElJSkBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVElNRVJfV0lORE9XOjpUSU1FUl9XSU5ET1coY2xhc3MgQkxUX01BU1RFUl9USU1FUiAqKQ0KKz8/MFRJTUVSX1dJTkRPV0BAUUFFQFBBVkJMVF9NQVNURVJfVElNRVJAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVUlfRE9NQUlOOjpVSV9ET01BSU4oY2xhc3MgUFdORDJIV05EICYsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/PzBVSV9ET01BSU5AQFFBRUBBQVZQV05EMkhXTkRAQEtQQkdIQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBVSV9FWFQ6OlVJX0VYVCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorPz8wVUlfRVhUQEBJQUVAUEJHS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVUlfRVhUX01HUjo6VUlfRVhUX01HUihjbGFzcyBVSV9FWFRfTUdSX0lGICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz8/MFVJX0VYVF9NR1JAQFFBRUBQQVZVSV9FWFRfTUdSX0lGQEBLS0BaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgVUlfRVhUX01HUl9JRjo6VUlfRVhUX01HUl9JRih2b2lkKQ0KKz8/MFVJX0VYVF9NR1JfSUZAQElBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIFVJX01FTlVfRVhUOjpVSV9NRU5VX0VYVCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorPz8wVUlfTUVOVV9FWFRAQElBRUBQQkdLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVSV9NRU5VX0VYVF9NR1I6OlVJX01FTlVfRVhUX01HUihjbGFzcyBVSV9FWFRfTUdSX0lGICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz8/MFVJX01FTlVfRVhUX01HUkBAUUFFQFBBVlVJX0VYVF9NR1JfSUZAQEtLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVTENfQVBJX0JVRkZFUjo6VUxDX0FQSV9CVUZGRVIoc3RydWN0IF9ET01BSU5fRElTUExBWV9VU0VSICosdW5zaWduZWQgbG9uZykNCis/PzBVTENfQVBJX0JVRkZFUkBAUUFFQFBBVV9ET01BSU5fRElTUExBWV9VU0VSQEBLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEI6OlVTRVJfQlJPV1NFUl9MQihjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQpDQorPz8wVVNFUl9CUk9XU0VSX0xCQEBRQUVAUEFWT1dORVJfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEJJOjpVU0VSX0JST1dTRVJfTEJJKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix2b2lkICogY29uc3QsZW51bSBVSV9TeXN0ZW1TaWQsZW51bSBfU0lEX05BTUVfVVNFLHVuc2lnbmVkIGxvbmcpDQorPz8wVVNFUl9CUk9XU0VSX0xCSUBAUUFFQFBCRzAwMDBRQVhXNFVJX1N5c3RlbVNpZEBAVzRfU0lEX05BTUVfVVNFQEBLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFOjpVU0VSX0JST1dTRVJfTEJJX0NBQ0hFKHZvaWQpDQorPz8wVVNFUl9CUk9XU0VSX0xCSV9DQUNIRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNFUl9MQklfQ0FDSEU6OlVTRVJfTEJJX0NBQ0hFKGludCkNCis/PzBVU0VSX0xCSV9DQUNIRUBAUUFFQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTUkxCX05UX0dST1VQX0VOVU06OlVTUkxCX05UX0dST1VQX0VOVU0oY2xhc3MgU0FNX0RPTUFJTiBjb25zdCAqKQ0KKz8/MFVTUkxCX05UX0dST1VQX0VOVU1AQFFBRUBQQlZTQU1fRE9NQUlOQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdJTjMyX0VWRU5UOjpXSU4zMl9FVkVOVCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCxpbnQpDQorPz8wV0lOMzJfRVZFTlRAQFFBRUBQQkdISEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV0lOMzJfSEFORExFOjpXSU4zMl9IQU5ETEUodm9pZCAqKQ0KKz8/MFdJTjMyX0hBTkRMRUBAUUFFQFBBWEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV0lOMzJfTVVURVg6OldJTjMyX01VVEVYKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz8/MFdJTjMyX01VVEVYQEBRQUVAUEJHSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV0lOMzJfU0VNQVBIT1JFOjpXSU4zMl9TRU1BUEhPUkUodW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nLGxvbmcpDQorPz8wV0lOMzJfU0VNQVBIT1JFQEBRQUVAUEJHSkpAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIFdJTjMyX1NZTkNfQkFTRTo6V0lOMzJfU1lOQ19CQVNFKHZvaWQgKikNCis/PzBXSU4zMl9TWU5DX0JBU0VAQElBRUBQQVhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdJTjMyX1RIUkVBRDo6V0lOMzJfVEhSRUFEKGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBXSU4zMl9USFJFQURAQFFBRUBISVBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV0lORE9XOjpXSU5ET1coY2xhc3MgV0lORE9XIGNvbnN0ICYpDQorPz8wV0lORE9XQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdJTkRPVzo6V0lORE9XKHN0cnVjdCBIV05EX18gKikNCis/PzBXSU5ET1dAQFFBRUBQQVVIV05EX19AQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV0lORE9XOjpXSU5ET1codW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLGNsYXNzIFdJTkRPVyBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/PzBXSU5ET1dAQFFBRUBQQkdLUEJWMEBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXSU5ET1c6OldJTkRPVyh2b2lkKQ0KKz8/MFdJTkRPV0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV0lORE9XX1RJTUVSOjpXSU5ET1dfVElNRVIoc3RydWN0IEhXTkRfXyAqLHVuc2lnbmVkIGxvbmcsaW50LGludCkNCis/PzBXSU5ET1dfVElNRVJAQFFBRUBQQVVIV05EX19AQEtISEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV0lOX0VMTElQU0lTOjpXSU5fRUxMSVBTSVMoY2xhc3MgV0lORE9XICosc3RydWN0IEhEQ19fICosc3RydWN0IHRhZ1JFQ1QgY29uc3QgKixlbnVtIEVMTElQU0lTX1NUWUxFKQ0KKz8/MFdJTl9FTExJUFNJU0BAUUFFQFBBVldJTkRPV0BAUEFVSERDX19AQFBCVXRhZ1JFQ1RAQFc0RUxMSVBTSVNfU1RZTEVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV0lOX0VMTElQU0lTOjpXSU5fRUxMSVBTSVMoY2xhc3MgV0lORE9XICosZW51bSBFTExJUFNJU19TVFlMRSkNCis/PzBXSU5fRUxMSVBTSVNAQFFBRUBQQVZXSU5ET1dAQFc0RUxMSVBTSVNfU1RZTEVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgWFlESU1FTlNJT046OlhZRElNRU5TSU9OKHN0cnVjdCB0YWdTSVpFIGNvbnN0ICYpDQorPz8wWFlESU1FTlNJT05AQFFBRUBBQlV0YWdTSVpFQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFhZRElNRU5TSU9OOjpYWURJTUVOU0lPTih1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz8/MFhZRElNRU5TSU9OQEBRQUVASUlAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFhZUE9JTlQ6OlhZUE9JTlQoc3RydWN0IHRhZ1BPSU5UIGNvbnN0ICYpDQorPz8wWFlQT0lOVEBAUUFFQEFCVXRhZ1BPSU5UQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFhZUE9JTlQ6OlhZUE9JTlQoaW50LGludCkNCis/PzBYWVBPSU5UQEBRQUVASEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFhZUE9JTlQ6OlhZUE9JTlQobG9uZykNCis/PzBYWVBPSU5UQEBRQUVASkBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgWFlSRUNUOjpYWVJFQ1Qoc3RydWN0IHRhZ1JFQ1QgY29uc3QgJikNCis/PzBYWVJFQ1RAQFFBRUBBQlV0YWdSRUNUQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFhZUkVDVDo6WFlSRUNUKGNsYXNzIFhZUkVDVCBjb25zdCAmKQ0KKz8/MFhZUkVDVEBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBYWVJFQ1Q6OlhZUkVDVChpbnQsaW50LGludCxpbnQpDQorPz8wWFlSRUNUQEBRQUVASEhISEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgWFlSRUNUOjpYWVJFQ1Qoc3RydWN0IEhXTkRfXyAqLGludCkNCis/PzBYWVJFQ1RAQFFBRUBQQVVIV05EX19AQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFhZUkVDVDo6WFlSRUNUKGNsYXNzIFdJTkRPVyBjb25zdCAqLGludCkNCis/PzBYWVJFQ1RAQFFBRUBQQlZXSU5ET1dAQEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFhZUkVDVDo6WFlSRUNUKGNsYXNzIFhZUE9JTlQsY2xhc3MgWFlQT0lOVCkNCis/PzBYWVJFQ1RAQFFBRUBWWFlQT0lOVEBAMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgWFlSRUNUOjpYWVJFQ1QoY2xhc3MgWFlQT0lOVCxjbGFzcyBYWURJTUVOU0lPTikNCis/PzBYWVJFQ1RAQFFBRUBWWFlQT0lOVEBAVlhZRElNRU5TSU9OQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFhZUkVDVDo6WFlSRUNUKHZvaWQpDQorPz8wWFlSRUNUQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBQ0NFTFRBQkxFOjp+QUNDRUxUQUJMRSh2b2lkKQ0KKz8/MUFDQ0VMVEFCTEVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEFDQ09VTlRfTkFNRVNfTUxFOjp+QUNDT1VOVF9OQU1FU19NTEUodm9pZCkNCis/PzFBQ0NPVU5UX05BTUVTX01MRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQUxJQVNfU1RSOjp+QUxJQVNfU1RSKHZvaWQpDQorPz8xQUxJQVNfU1RSQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBTExPQ19TVFI6On5BTExPQ19TVFIodm9pZCkNCis/PzFBTExPQ19TVFJAQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIEFQUExJQ0FUSU9OOjp+QVBQTElDQVRJT04odm9pZCkNCis/PzFBUFBMSUNBVElPTkBASUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQVBQX1dJTkRPVzo6fkFQUF9XSU5ET1codm9pZCkNCis/PzFBUFBfV0lORE9XQEBJQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBUlJBWV9DT05UUk9MVkFMX0NJRF9QQUlSOjp+QVJSQVlfQ09OVFJPTFZBTF9DSURfUEFJUih2b2lkKQ0KKz8/MUFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEFSUkFZX0xJU1RfQ09OVFJPTFZBTF9DSURfUEFJUjo6fkFSUkFZX0xJU1RfQ09OVFJPTFZBTF9DSURfUEFJUih2b2lkKQ0KKz8/MUFSUkFZX0xJU1RfQ09OVFJPTFZBTF9DSURfUEFJUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQVJST1dfQlVUVE9OOjp+QVJST1dfQlVUVE9OKHZvaWQpDQorPz8xQVJST1dfQlVUVE9OQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBU1NPQ0hDRklMRTo6fkFTU09DSENGSUxFKHZvaWQpDQorPz8xQVNTT0NIQ0ZJTEVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEFTU09DSFdORERJU1A6On5BU1NPQ0hXTkRESVNQKHZvaWQpDQorPz8xQVNTT0NIV05ERElTUEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQVNTT0NIV05EUERMRzo6fkFTU09DSFdORFBETEcodm9pZCkNCis/PzFBU1NPQ0hXTkRQRExHQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBU1NPQ0hXTkRQV05EOjp+QVNTT0NIV05EUFdORCh2b2lkKQ0KKz8/MUFTU09DSFdORFBXTkRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEFTU09DSFdORFRISVM6On5BU1NPQ0hXTkRUSElTKHZvaWQpDQorPz8xQVNTT0NIV05EVEhJU0BAUUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQVRPTV9CQVNFOjp+QVRPTV9CQVNFKHZvaWQpDQorPz8xQVRPTV9CQVNFQEBJQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBBVURJVF9DSEVDS0JPWEVTOjp+QVVESVRfQ0hFQ0tCT1hFUyh2b2lkKQ0KKz8/MUFVRElUX0NIRUNLQk9YRVNAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEFVVE9fQ1VSU09SOjp+QVVUT19DVVJTT1Iodm9pZCkNCis/PzFBVVRPX0NVUlNPUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQkFTRV9FTExJUFNJUzo6fkJBU0VfRUxMSVBTSVModm9pZCkNCis/PzFCQVNFX0VMTElQU0lTQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCQVNFX1BBU1NXT1JEX0RJQUxPRzo6fkJBU0VfUEFTU1dPUkRfRElBTE9HKHZvaWQpDQorPz8xQkFTRV9QQVNTV09SRF9ESUFMT0dAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJBU0VfU0VUX0ZPQ1VTX0RMRzo6fkJBU0VfU0VUX0ZPQ1VTX0RMRyh2b2lkKQ0KKz8/MUJBU0VfU0VUX0ZPQ1VTX0RMR0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQklUX01BUDo6fkJJVF9NQVAodm9pZCkNCis/PzFCSVRfTUFQQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCTFRfQkFDS0dST1VORF9FRElUOjp+QkxUX0JBQ0tHUk9VTkRfRURJVCh2b2lkKQ0KKz8/MUJMVF9CQUNLR1JPVU5EX0VESVRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJMVF9DT01CT0JPWDo6fkJMVF9DT01CT0JPWCh2b2lkKQ0KKz8/MUJMVF9DT01CT0JPWEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQkxUX0RBVEVfU1BJTl9HUk9VUDo6fkJMVF9EQVRFX1NQSU5fR1JPVVAodm9pZCkNCis/PzFCTFRfREFURV9TUElOX0dST1VQQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCTFRfTElTVEJPWDo6fkJMVF9MSVNUQk9YKHZvaWQpDQorPz8xQkxUX0xJU1RCT1hAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJMVF9NQVNURVJfVElNRVI6On5CTFRfTUFTVEVSX1RJTUVSKHZvaWQpDQorPz8xQkxUX01BU1RFUl9USU1FUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQkxUX1NDUkFUQ0g6On5CTFRfU0NSQVRDSCh2b2lkKQ0KKz8/MUJMVF9TQ1JBVENIQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCTFRfVElNRV9TUElOX0dST1VQOjp+QkxUX1RJTUVfU1BJTl9HUk9VUCh2b2lkKQ0KKz8/MUJMVF9USU1FX1NQSU5fR1JPVVBAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJST1dTRVJfRE9NQUlOOjp+QlJPV1NFUl9ET01BSU4odm9pZCkNCis/PzFCUk9XU0VSX0RPTUFJTkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQlJPV1NFUl9ET01BSU5fQ0I6On5CUk9XU0VSX0RPTUFJTl9DQih2b2lkKQ0KKz8/MUJST1dTRVJfRE9NQUlOX0NCQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCUk9XU0VSX0RPTUFJTl9MQjo6fkJST1dTRVJfRE9NQUlOX0xCKHZvaWQpDQorPz8xQlJPV1NFUl9ET01BSU5fTEJAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQlJPV1NFUl9ET01BSU5fTEJJOjp+QlJPV1NFUl9ET01BSU5fTEJJKHZvaWQpDQorPz8xQlJPV1NFUl9ET01BSU5fTEJJQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIEJST1dTRVJfRE9NQUlOX0xCSV9QQjo6fkJST1dTRVJfRE9NQUlOX0xCSV9QQih2b2lkKQ0KKz8/MUJST1dTRVJfRE9NQUlOX0xCSV9QQkBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQlJPV1NFUl9TVUJKRUNUOjp+QlJPV1NFUl9TVUJKRUNUKHZvaWQpDQorPz8xQlJPV1NFUl9TVUJKRUNUQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBCUk9XU0VSX1NVQkpFQ1RfSVRFUjo6fkJST1dTRVJfU1VCSkVDVF9JVEVSKHZvaWQpDQorPz8xQlJPV1NFUl9TVUJKRUNUX0lURVJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEJVVFRPTl9DT05UUk9MOjp+QlVUVE9OX0NPTlRST0wodm9pZCkNCis/PzFCVVRUT05fQ09OVFJPTEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0FOQ0VMX1RBU0tfRElBTE9HOjp+Q0FOQ0VMX1RBU0tfRElBTE9HKHZvaWQpDQorPz8xQ0FOQ0VMX1RBU0tfRElBTE9HQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6fkNIQU5HRUFCTEVfU1BJTl9JVEVNKHZvaWQpDQorPz8xQ0hBTkdFQUJMRV9TUElOX0lURU1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENIRUNLQk9YOjp+Q0hFQ0tCT1godm9pZCkNCis/PzFDSEVDS0JPWEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0xJRU5UX1dJTkRPVzo6fkNMSUVOVF9XSU5ET1codm9pZCkNCis/PzFDTElFTlRfV0lORE9XQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDT01CT0JPWDo6fkNPTUJPQk9YKHZvaWQpDQorPz8xQ09NQk9CT1hAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENPTlRST0xfVEFCTEU6On5DT05UUk9MX1RBQkxFKHZvaWQpDQorPz8xQ09OVFJPTF9UQUJMRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ09OVFJPTF9XSU5ET1c6On5DT05UUk9MX1dJTkRPVyh2b2lkKQ0KKz8/MUNPTlRST0xfV0lORE9XQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDVVNUT01fQ09OVFJPTDo6fkNVU1RPTV9DT05UUk9MKHZvaWQpDQorPz8xQ1VTVE9NX0NPTlRST0xAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERFQ19TTFQ6On5ERUNfU0xUKHZvaWQpDQorPz8xREVDX1NMVEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgREVDX1NUUjo6fkRFQ19TVFIodm9pZCkNCis/PzFERUNfU1RSQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBESUFMT0dfV0lORE9XOjp+RElBTE9HX1dJTkRPVyh2b2lkKQ0KKz8/MURJQUxPR19XSU5ET1dAQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIERJU1BBVENIRVI6On5ESVNQQVRDSEVSKHZvaWQpDQorPz8xRElTUEFUQ0hFUkBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRElTUExBWV9DT05URVhUOjp+RElTUExBWV9DT05URVhUKHZvaWQpDQorPz8xRElTUExBWV9DT05URVhUQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBESVNQTEFZX01BUDo6fkRJU1BMQVlfTUFQKHZvaWQpDQorPz8xRElTUExBWV9NQVBAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERMR0xPQUQ6On5ETEdMT0FEKHZvaWQpDQorPz8xRExHTE9BREBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRExJU1RfT0ZfU1BJTl9JVEVNOjp+RExJU1RfT0ZfU1BJTl9JVEVNKHZvaWQpDQorPz8xRExJU1RfT0ZfU1BJTl9JVEVNQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBETUlEX0RURTo6fkRNSURfRFRFKHZvaWQpDQorPz8xRE1JRF9EVEVAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgRE9NQUlOX0ZJTExfVEhSRUFEOjp+RE9NQUlOX0ZJTExfVEhSRUFEKHZvaWQpDQorPz8xRE9NQUlOX0ZJTExfVEhSRUFEQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBFRElUX0NPTlRST0w6On5FRElUX0NPTlRST0wodm9pZCkNCis/PzFFRElUX0NPTlRST0xAQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIEVOVU1fT0JKX0JBU0U6On5FTlVNX09CSl9CQVNFKHZvaWQpDQorPz8xRU5VTV9PQkpfQkFTRUBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRVhQQU5EQUJMRV9ESUFMT0c6On5FWFBBTkRBQkxFX0RJQUxPRyh2b2lkKQ0KKz8/MUVYUEFOREFCTEVfRElBTE9HQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBGSUxFM19FTlVNOjp+RklMRTNfRU5VTSh2b2lkKQ0KKz8/MUZJTEUzX0VOVU1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEZJTEUzX0VOVU1fSVRFUjo6fkZJTEUzX0VOVU1fSVRFUih2b2lkKQ0KKz8/MUZJTEUzX0VOVU1fSVRFUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRklMRTNfRU5VTV9PQko6On5GSUxFM19FTlVNX09CSih2b2lkKQ0KKz8/MUZJTEUzX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIEZPQ1VTRExHX0RBVEFfVEhSRUFEOjp+Rk9DVVNETEdfREFUQV9USFJFQUQodm9pZCkNCis/PzFGT0NVU0RMR19EQVRBX1RIUkVBREBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRk9DVVNfQ0hFQ0tCT1g6On5GT0NVU19DSEVDS0JPWCh2b2lkKQ0KKz8/MUZPQ1VTX0NIRUNLQk9YQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBGT05UOjp+Rk9OVCh2b2lkKQ0KKz8/MUZPTlRAQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIEdFVF9GTkFNRV9CQVNFX0RMRzo6fkdFVF9GTkFNRV9CQVNFX0RMRyh2b2lkKQ0KKz8/MUdFVF9GTkFNRV9CQVNFX0RMR0BASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgR0xPQkFMX0FUT006On5HTE9CQUxfQVRPTSh2b2lkKQ0KKz8/MUdMT0JBTF9BVE9NQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBHUkFQSElDQUxfQlVUVE9OOjp+R1JBUEhJQ0FMX0JVVFRPTih2b2lkKQ0KKz8/MUdSQVBISUNBTF9CVVRUT05AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEdSQVBISUNBTF9CVVRUT05fV0lUSF9ESVNBQkxFOjp+R1JBUEhJQ0FMX0JVVFRPTl9XSVRIX0RJU0FCTEUodm9pZCkNCis/PzFHUkFQSElDQUxfQlVUVE9OX1dJVEhfRElTQUJMRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSEFXX0ZPUl9IQVdBSUlfSU5GTzo6fkhBV19GT1JfSEFXQUlJX0lORk8odm9pZCkNCis/PzFIQVdfRk9SX0hBV0FJSV9JTkZPQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBIRVhfU1RSOjp+SEVYX1NUUih2b2lkKQ0KKz8/MUhFWF9TVFJAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgSElFUl9MQkk6On5ISUVSX0xCSSh2b2lkKQ0KKz8/MUhJRVJfTEJJQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBISUVSX0xCSV9JVEVSQVRPUjo6fkhJRVJfTEJJX0lURVJBVE9SKHZvaWQpDQorPz8xSElFUl9MQklfSVRFUkFUT1JAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIEhJRVJfTElTVEJPWDo6fkhJRVJfTElTVEJPWCh2b2lkKQ0KKz8/MUhJRVJfTElTVEJPWEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSF9TUExJVFRFUl9CQVI6On5IX1NQTElUVEVSX0JBUih2b2lkKQ0KKz8/MUhfU1BMSVRURVJfQkFSQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBJQ0FOT05fU0xFOjp+SUNBTk9OX1NMRSh2b2lkKQ0KKz8/MUlDQU5PTl9TTEVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElDT05fQ09OVFJPTDo6fklDT05fQ09OVFJPTCh2b2lkKQ0KKz8/MUlDT05fQ09OVFJPTEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSVRFUl9ETF9TUElOX0lURU06On5JVEVSX0RMX1NQSU5fSVRFTSh2b2lkKQ0KKz8/MUlURVJfRExfU1BJTl9JVEVNQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBJVEVSX1NMX0FTU09DSENGSUxFOjp+SVRFUl9TTF9BU1NPQ0hDRklMRSh2b2lkKQ0KKz8/MUlURVJfU0xfQVNTT0NIQ0ZJTEVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElURVJfU0xfQ0xJRU5UREFUQTo6fklURVJfU0xfQ0xJRU5UREFUQSh2b2lkKQ0KKz8/MUlURVJfU0xfQ0xJRU5UREFUQUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSVRFUl9TTF9TVFJJTkdfQklUU0VUX1BBSVI6On5JVEVSX1NMX1NUUklOR19CSVRTRVRfUEFJUih2b2lkKQ0KKz8/MUlURVJfU0xfU1RSSU5HX0JJVFNFVF9QQUlSQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBJVEVSX1NMX1RJTUVSX0JBU0U6On5JVEVSX1NMX1RJTUVSX0JBU0Uodm9pZCkNCis/PzFJVEVSX1NMX1RJTUVSX0JBU0VAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIElURVJfU0xfVUlfRVhUOjp+SVRFUl9TTF9VSV9FWFQodm9pZCkNCis/PzFJVEVSX1NMX1VJX0VYVEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgSVRFUl9TTF9VU0VSX0JST1dTRVJfTEJJOjp+SVRFUl9TTF9VU0VSX0JST1dTRVJfTEJJKHZvaWQpDQorPz8xSVRFUl9TTF9VU0VSX0JST1dTRVJfTEJJQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMQVpZX0xJU1RCT1g6On5MQVpZX0xJU1RCT1godm9pZCkNCis/PzFMQVpZX0xJU1RCT1hAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgTEJJOjp+TEJJKHZvaWQpDQorPz8xTEJJQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMQklUUkVFOjp+TEJJVFJFRSh2b2lkKQ0KKz8/MUxCSVRSRUVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExCSV9IRUFQOjp+TEJJX0hFQVAodm9pZCkNCis/PzFMQklfSEVBUEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTEJfQ09MX1dJRFRIUzo6fkxCX0NPTF9XSURUSFModm9pZCkNCis/PzFMQl9DT0xfV0lEVEhTQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMSVNUQk9YOjp+TElTVEJPWCh2b2lkKQ0KKz8/MUxJU1RCT1hAQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIExJU1RfQ09OVFJPTDo6fkxJU1RfQ09OVFJPTCh2b2lkKQ0KKz8/MUxJU1RfQ09OVFJPTEBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTE1fRklMRV8yOjp+TE1fRklMRV8yKHZvaWQpDQorPz8xTE1fRklMRV8yQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMTV9NRVNTQUdFOjp+TE1fTUVTU0FHRSh2b2lkKQ0KKz8/MUxNX01FU1NBR0VAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExNX09MTEI6On5MTV9PTExCKHZvaWQpDQorPz8xTE1fT0xMQkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTE9DQUxfQVRPTTo6fkxPQ0FMX0FUT00odm9pZCkNCis/PzFMT0NBTF9BVE9NQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBMT0NfTE1fT0JKOjp+TE9DX0xNX09CSih2b2lkKQ0KKz8/MUxPQ19MTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6On5MT0dPTl9IT1VSU19DT05UUk9MKHZvaWQpDQorPz8xTE9HT05fSE9VUlNfQ09OVFJPTEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTUFHSUNfR1JPVVA6On5NQUdJQ19HUk9VUCh2b2lkKQ0KKz8/MU1BR0lDX0dST1VQQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNQVNLX01BUDo6fk1BU0tfTUFQKHZvaWQpDQorPz8xTUFTS19NQVBAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE1FTU9SWV9EQzo6fk1FTU9SWV9EQyh2b2lkKQ0KKz8/MU1FTU9SWV9EQ0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTUVOVV9CQVNFOjp+TUVOVV9CQVNFKHZvaWQpDQorPz8xTUVOVV9CQVNFQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNTEU6On5NTEUodm9pZCkNCis/PzFNTEVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE1MRV9GT05UOjp+TUxFX0ZPTlQodm9pZCkNCis/PzFNTEVfRk9OVEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTUxUOjp+TUxUKHZvaWQpDQorPz8xTUxUQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBNU0dQT1BVUF9ESUFMT0c6On5NU0dQT1BVUF9ESUFMT0codm9pZCkNCis/PzFNU0dQT1BVUF9ESUFMT0dAQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIE1TR19ESUFMT0dfQkFTRTo6fk1TR19ESUFMT0dfQkFTRSh2b2lkKQ0KKz8/MU1TR19ESUFMT0dfQkFTRUBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTlRfRklORF9BQ0NPVU5UX0RJQUxPRzo6fk5UX0ZJTkRfQUNDT1VOVF9ESUFMT0codm9pZCkNCis/PzFOVF9GSU5EX0FDQ09VTlRfRElBTE9HQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIE5UX0dMT0JBTEdST1VQX0JST1dTRVJfRElBTE9HOjp+TlRfR0xPQkFMR1JPVVBfQlJPV1NFUl9ESUFMT0codm9pZCkNCis/PzFOVF9HTE9CQUxHUk9VUF9CUk9XU0VSX0RJQUxPR0BAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBOVF9HUk9VUF9CUk9XU0VSX0RJQUxPRzo6fk5UX0dST1VQX0JST1dTRVJfRElBTE9HKHZvaWQpDQorPz8xTlRfR1JPVVBfQlJPV1NFUl9ESUFMT0dAQFVBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE5UX0dST1VQX0JST1dTRVJfTEI6On5OVF9HUk9VUF9CUk9XU0VSX0xCKHZvaWQpDQorPz8xTlRfR1JPVVBfQlJPV1NFUl9MQkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgTlRfR1JPVVBfRU5VTV9JVEVSOjp+TlRfR1JPVVBfRU5VTV9JVEVSKHZvaWQpDQorPz8xTlRfR1JPVVBfRU5VTV9JVEVSQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOVF9HUk9VUF9FTlVNX09CSjo6fk5UX0dST1VQX0VOVU1fT0JKKHZvaWQpDQorPz8xTlRfR1JPVVBfRU5VTV9PQkpAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgTlRfTE9DQUxHUk9VUF9CUk9XU0VSX0RJQUxPRzo6fk5UX0xPQ0FMR1JPVVBfQlJPV1NFUl9ESUFMT0codm9pZCkNCis/PzFOVF9MT0NBTEdST1VQX0JST1dTRVJfRElBTE9HQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjp+TlRfVVNFUl9CUk9XU0VSX0RJQUxPRyh2b2lkKQ0KKz8/MU5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgT0xMQl9FTlRSWTo6fk9MTEJfRU5UUlkodm9pZCkNCis/PzFPTExCX0VOVFJZQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBPUEVOX0RJQUxPR19CQVNFOjp+T1BFTl9ESUFMT0dfQkFTRSh2b2lkKQ0KKz8/MU9QRU5fRElBTE9HX0JBU0VAQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgT1BFTl9MQklfQkFTRTo6fk9QRU5fTEJJX0JBU0Uodm9pZCkNCis/PzFPUEVOX0xCSV9CQVNFQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBPUEVOX0xCT1hfQkFTRTo6fk9QRU5fTEJPWF9CQVNFKHZvaWQpDQorPz8xT1BFTl9MQk9YX0JBU0VAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIE9VVExJTkVfTElTVEJPWDo6fk9VVExJTkVfTElTVEJPWCh2b2lkKQ0KKz8/MU9VVExJTkVfTElTVEJPWEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgT1dORVJfV0lORE9XOjp+T1dORVJfV0lORE9XKHZvaWQpDQorPz8xT1dORVJfV0lORE9XQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQQUlOVF9ESVNQTEFZX0NPTlRFWFQ6On5QQUlOVF9ESVNQTEFZX0NPTlRFWFQodm9pZCkNCis/PzFQQUlOVF9ESVNQTEFZX0NPTlRFWFRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFBBU1NXT1JEX0NPTlRST0w6On5QQVNTV09SRF9DT05UUk9MKHZvaWQpDQorPz8xUEFTU1dPUkRfQ09OVFJPTEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUE9QVVA6On5QT1BVUCh2b2lkKQ0KKz8/MVBPUFVQQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQT1BVUF9NRU5VOjp+UE9QVVBfTUVOVSh2b2lkKQ0KKz8/MVBPUFVQX01FTlVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFBST0NfSU5TVEFOQ0U6On5QUk9DX0lOU1RBTkNFKHZvaWQpDQorPz8xUFJPQ19JTlNUQU5DRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUFJPR1JFU1NfQ09OVFJPTDo6flBST0dSRVNTX0NPTlRST0wodm9pZCkNCis/PzFQUk9HUkVTU19DT05UUk9MQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQUk9NUFRfQU5EX0NPTk5FQ1Q6On5QUk9NUFRfQU5EX0NPTk5FQ1Qodm9pZCkNCis/PzFQUk9NUFRfQU5EX0NPTk5FQ1RAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFBST01QVF9GT1JfQU5ZX0RDX0RMRzo6flBST01QVF9GT1JfQU5ZX0RDX0RMRyh2b2lkKQ0KKz8/MVBST01QVF9GT1JfQU5ZX0RDX0RMR0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUFVTSF9CVVRUT046On5QVVNIX0JVVFRPTih2b2lkKQ0KKz8/MVBVU0hfQlVUVE9OQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBSQURJT19CVVRUT046On5SQURJT19CVVRUT04odm9pZCkNCis/PzFSQURJT19CVVRUT05AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFJBRElPX0dST1VQOjp+UkFESU9fR1JPVVAodm9pZCkNCis/PzFSQURJT19HUk9VUEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUkVTT1VSQ0VfUEFTU1dPUkRfRElBTE9HOjp+UkVTT1VSQ0VfUEFTU1dPUkRfRElBTE9HKHZvaWQpDQorPz8xUkVTT1VSQ0VfUEFTU1dPUkRfRElBTE9HQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBSRVNPVVJDRV9TVFI6On5SRVNPVVJDRV9TVFIodm9pZCkNCis/PzFSRVNPVVJDRV9TVFJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFJJVEVSX0RMX1NQSU5fSVRFTTo6flJJVEVSX0RMX1NQSU5fSVRFTSh2b2lkKQ0KKz8/MVJJVEVSX0RMX1NQSU5fSVRFTUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0NSRUVOX0RDOjp+U0NSRUVOX0RDKHZvaWQpDQorPz8xU0NSRUVOX0RDQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTRVJWRVIxX0VOVU06On5TRVJWRVIxX0VOVU0odm9pZCkNCis/PzFTRVJWRVIxX0VOVU1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNFUlZFUjFfRU5VTV9JVEVSOjp+U0VSVkVSMV9FTlVNX0lURVIodm9pZCkNCis/PzFTRVJWRVIxX0VOVU1fSVRFUkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0VSVkVSMV9FTlVNX09CSjo6flNFUlZFUjFfRU5VTV9PQkoodm9pZCkNCis/PzFTRVJWRVIxX0VOVU1fT0JKQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTRVJWRVJfRU5VTTo6flNFUlZFUl9FTlVNKHZvaWQpDQorPz8xU0VSVkVSX0VOVU1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNFVF9DT05UUk9MOjp+U0VUX0NPTlRST0wodm9pZCkNCis/PzFTRVRfQ09OVFJPTEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0VUX09GX0FVRElUX0NBVEVHT1JJRVM6On5TRVRfT0ZfQVVESVRfQ0FURUdPUklFUyh2b2lkKQ0KKz8/MVNFVF9PRl9BVURJVF9DQVRFR09SSUVTQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTTEU6On5TTEUodm9pZCkNCis/PzFTTEVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNMRV9GT05UOjp+U0xFX0ZPTlQodm9pZCkNCis/PzFTTEVfRk9OVEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0xFX1NUUkxCX0dST1VQOjp+U0xFX1NUUkxCX0dST1VQKHZvaWQpDQorPz8xU0xFX1NUUkxCX0dST1VQQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTTElTVF9PRl9BU1NPQ0hDRklMRTo6flNMSVNUX09GX0FTU09DSENGSUxFKHZvaWQpDQorPz8xU0xJU1RfT0ZfQVNTT0NIQ0ZJTEVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNMSVNUX09GX0NMSUVOVERBVEE6On5TTElTVF9PRl9DTElFTlREQVRBKHZvaWQpDQorPz8xU0xJU1RfT0ZfQ0xJRU5UREFUQUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0xJU1RfT0ZfT1NfU0lEOjp+U0xJU1RfT0ZfT1NfU0lEKHZvaWQpDQorPz8xU0xJU1RfT0ZfT1NfU0lEQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTTElTVF9PRl9TVFJJTkdfQklUU0VUX1BBSVI6On5TTElTVF9PRl9TVFJJTkdfQklUU0VUX1BBSVIodm9pZCkNCis/PzFTTElTVF9PRl9TVFJJTkdfQklUU0VUX1BBSVJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNMSVNUX09GX1RJTUVSX0JBU0U6On5TTElTVF9PRl9USU1FUl9CQVNFKHZvaWQpDQorPz8xU0xJU1RfT0ZfVElNRVJfQkFTRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0xJU1RfT0ZfVUlfRVhUOjp+U0xJU1RfT0ZfVUlfRVhUKHZvaWQpDQorPz8xU0xJU1RfT0ZfVUlfRVhUQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTTElTVF9PRl9VTENfQVBJX0JVRkZFUjo6flNMSVNUX09GX1VMQ19BUElfQlVGRkVSKHZvaWQpDQorPz8xU0xJU1RfT0ZfVUxDX0FQSV9CVUZGRVJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNMSVNUX09GX1VTRVJfQlJPV1NFUl9MQkk6On5TTElTVF9PRl9VU0VSX0JST1dTRVJfTEJJKHZvaWQpDQorPz8xU0xJU1RfT0ZfVVNFUl9CUk9XU0VSX0xCSUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU0xUOjp+U0xUKHZvaWQpDQorPz8xU0xUQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTTFRfRUxMSVBTSVM6On5TTFRfRUxMSVBTSVModm9pZCkNCis/PzFTTFRfRUxMSVBTSVNAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNPTElEX0JSVVNIOjp+U09MSURfQlJVU0godm9pZCkNCis/PzFTT0xJRF9CUlVTSEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1BJTl9HUk9VUDo6flNQSU5fR1JPVVAodm9pZCkNCis/PzFTUElOX0dST1VQQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTUElOX0lURU06On5TUElOX0lURU0odm9pZCkNCis/PzFTUElOX0lURU1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNQSU5fU0xFX05VTTo6flNQSU5fU0xFX05VTSh2b2lkKQ0KKz8/MVNQSU5fU0xFX05VTUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1BJTl9TTEVfTlVNX1ZBTElEOjp+U1BJTl9TTEVfTlVNX1ZBTElEKHZvaWQpDQorPz8xU1BJTl9TTEVfTlVNX1ZBTElEQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTUElOX1NMRV9TVFI6On5TUElOX1NMRV9TVFIodm9pZCkNCis/PzFTUElOX1NMRV9TVFJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNQSU5fU0xFX1ZBTElEX1NFQ09ORDo6flNQSU5fU0xFX1ZBTElEX1NFQ09ORCh2b2lkKQ0KKz8/MVNQSU5fU0xFX1ZBTElEX1NFQ09OREBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1BJTl9TTFRfU0VQQVJBVE9SOjp+U1BJTl9TTFRfU0VQQVJBVE9SKHZvaWQpDQorPz8xU1BJTl9TTFRfU0VQQVJBVE9SQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTVEFURTJfQlVUVE9OX0NPTlRST0w6On5TVEFURTJfQlVUVE9OX0NPTlRST0wodm9pZCkNCis/PzFTVEFURTJfQlVUVE9OX0NPTlRST0xAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNUQVRFTEI6On5TVEFURUxCKHZvaWQpDQorPz8xU1RBVEVMQkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RBVEVMQkdSUDo6flNUQVRFTEJHUlAodm9pZCkNCis/PzFTVEFURUxCR1JQQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTVEFURV9CVVRUT05fQ09OVFJPTDo6flNUQVRFX0JVVFRPTl9DT05UUk9MKHZvaWQpDQorPz8xU1RBVEVfQlVUVE9OX0NPTlRST0xAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNUQVRJQ19TUElOX0lURU06On5TVEFUSUNfU1BJTl9JVEVNKHZvaWQpDQorPz8xU1RBVElDX1NQSU5fSVRFTUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RBVElDX1RFWFRfQ09OVFJPTDo6flNUQVRJQ19URVhUX0NPTlRST0wodm9pZCkNCis/PzFTVEFUSUNfVEVYVF9DT05UUk9MQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFNUTEJJVEVNOjp+U1RMQklURU0odm9pZCkNCis/PzFTVExCSVRFTUBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1RSSU5HX0JJVFNFVF9QQUlSOjp+U1RSSU5HX0JJVFNFVF9QQUlSKHZvaWQpDQorPz8xU1RSSU5HX0JJVFNFVF9QQUlSQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTVFJJTkdfTElTVF9DT05UUk9MOjp+U1RSSU5HX0xJU1RfQ09OVFJPTCh2b2lkKQ0KKz8/MVNUUklOR19MSVNUX0NPTlRST0xAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFNVQkpFQ1RfQklUTUFQX0JMT0NLOjp+U1VCSkVDVF9CSVRNQVBfQkxPQ0sodm9pZCkNCis/PzFTVUJKRUNUX0JJVE1BUF9CTE9DS0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1lTVEVNX01FTlU6On5TWVNURU1fTUVOVSh2b2lkKQ0KKz8/MVNZU1RFTV9NRU5VQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBURVhUX0NPTlRST0w6On5URVhUX0NPTlRST0wodm9pZCkNCis/PzFURVhUX0NPTlRST0xAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFRJTUVSX0JBU0U6On5USU1FUl9CQVNFKHZvaWQpDQorPz8xVElNRVJfQkFTRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVElNRVJfV0lORE9XOjp+VElNRVJfV0lORE9XKHZvaWQpDQorPz8xVElNRVJfV0lORE9XQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVSV9ET01BSU46On5VSV9ET01BSU4odm9pZCkNCis/PzFVSV9ET01BSU5AQFFBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgVUlfRVhUOjp+VUlfRVhUKHZvaWQpDQorPz8xVUlfRVhUQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVSV9FWFRfTUdSOjp+VUlfRVhUX01HUih2b2lkKQ0KKz8/MVVJX0VYVF9NR1JAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVJX0VYVF9NR1JfSUY6On5VSV9FWFRfTUdSX0lGKHZvaWQpDQorPz8xVUlfRVhUX01HUl9JRkBAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBVSV9NRU5VX0VYVDo6flVJX01FTlVfRVhUKHZvaWQpDQorPz8xVUlfTUVOVV9FWFRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgVUlfTUVOVV9FWFRfTUdSOjp+VUlfTUVOVV9FWFRfTUdSKHZvaWQpDQorPz8xVUlfTUVOVV9FWFRfTUdSQEBVQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBVTENfQVBJX0JVRkZFUjo6flVMQ19BUElfQlVGRkVSKHZvaWQpDQorPz8xVUxDX0FQSV9CVUZGRVJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQjo6flVTRVJfQlJPV1NFUl9MQih2b2lkKQ0KKz8/MVVTRVJfQlJPV1NFUl9MQkBAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEJJOjp+VVNFUl9CUk9XU0VSX0xCSSh2b2lkKQ0KKz8/MVVTRVJfQlJPV1NFUl9MQklAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgVVNFUl9CUk9XU0VSX0xCSV9DQUNIRTo6flVTRVJfQlJPV1NFUl9MQklfQ0FDSEUodm9pZCkNCis/PzFVU0VSX0JST1dTRVJfTEJJX0NBQ0hFQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFVTRVJfTEJJX0NBQ0hFOjp+VVNFUl9MQklfQ0FDSEUodm9pZCkNCis/PzFVU0VSX0xCSV9DQUNIRUBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgVVNSTEJfTlRfR1JPVVBfRU5VTTo6flVTUkxCX05UX0dST1VQX0VOVU0odm9pZCkNCis/PzFVU1JMQl9OVF9HUk9VUF9FTlVNQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXSU4zMl9FVkVOVDo6fldJTjMyX0VWRU5UKHZvaWQpDQorPz8xV0lOMzJfRVZFTlRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdJTjMyX0hBTkRMRTo6fldJTjMyX0hBTkRMRSh2b2lkKQ0KKz8/MVdJTjMyX0hBTkRMRUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV0lOMzJfTVVURVg6On5XSU4zMl9NVVRFWCh2b2lkKQ0KKz8/MVdJTjMyX01VVEVYQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXSU4zMl9TRU1BUEhPUkU6On5XSU4zMl9TRU1BUEhPUkUodm9pZCkNCis/PzFXSU4zMl9TRU1BUEhPUkVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdJTjMyX1NZTkNfQkFTRTo6fldJTjMyX1NZTkNfQkFTRSh2b2lkKQ0KKz8/MVdJTjMyX1NZTkNfQkFTRUBAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBXSU4zMl9USFJFQUQ6On5XSU4zMl9USFJFQUQodm9pZCkNCis/PzFXSU4zMl9USFJFQURAQFVBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdJTkRPVzo6fldJTkRPVyh2b2lkKQ0KKz8/MVdJTkRPV0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV0lOX0VMTElQU0lTOjp+V0lOX0VMTElQU0lTKHZvaWQpDQorPz8xV0lOX0VMTElQU0lTQEBRQUVAWFoNCis7IHB1YmxpYzogY2xhc3MgQVJSQVlfQ09OVFJPTFZBTF9DSURfUEFJUiAmIF9fdGhpc2NhbGwgQVJSQVlfQ09OVFJPTFZBTF9DSURfUEFJUjo6b3BlcmF0b3I9KGNsYXNzIEFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVIgJikNCis/PzRBUlJBWV9DT05UUk9MVkFMX0NJRF9QQUlSQEBRQUVBQVYwQEFBVjBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgR0xPQkFMX0FUT006Om9wZXJhdG9yPSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/NEdMT0JBTF9BVE9NQEBVQUVQQkdQQkdAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBMT0NBTF9BVE9NOjpvcGVyYXRvcj0odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzRMT0NBTF9BVE9NQEBVQUVQQkdQQkdAWg0KKzsgcHVibGljOiBjbGFzcyBYWVJFQ1QgJiBfX3RoaXNjYWxsIFhZUkVDVDo6b3BlcmF0b3I9KGNsYXNzIFhZUkVDVCBjb25zdCAmKQ0KKz8/NFhZUkVDVEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEFTU09DSFdORERJU1A6Om9wZXJhdG9yISh2b2lkKWNvbnN0IA0KKz8/N0FTU09DSFdORERJU1BAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBBU1NPQ0hXTkRQV05EOjpvcGVyYXRvciEodm9pZCljb25zdCANCis/PzdBU1NPQ0hXTkRQV05EQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQkFTRTo6b3BlcmF0b3IhKHZvaWQpY29uc3QgDQorPz83QkFTRUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENPTlRST0xfV0lORE9XOjpvcGVyYXRvciEodm9pZCljb25zdCANCis/PzdDT05UUk9MX1dJTkRPV0BAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFhZUkVDVDo6b3BlcmF0b3I9PShjbGFzcyBYWVJFQ1QgY29uc3QgJiljb25zdCANCis/PzhYWVJFQ1RAQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENPTlRST0xWQUxfQ0lEX1BBSVIgJiBfX3RoaXNjYWxsIEFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVI6Om9wZXJhdG9yW10odW5zaWduZWQgaW50KWNvbnN0IA0KKz8/QUFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVJAQFFCRUFBVkNPTlRST0xWQUxfQ0lEX1BBSVJAQElAWg0KKzsgcHVibGljOiBjbGFzcyBEVEUgKiAmIF9fdGhpc2NhbGwgRElTUExBWV9UQUJMRTo6b3BlcmF0b3JbXSh1bnNpZ25lZCBpbnQpDQorPz9BRElTUExBWV9UQUJMRUBAUUFFQUFQQVZEVEVAQElAWg0KKzsgcHVibGljOiBjbGFzcyBSQURJT19CVVRUT04gKiBfX3RoaXNjYWxsIFJBRElPX0dST1VQOjpvcGVyYXRvcltdKHVuc2lnbmVkIGludCkNCis/P0FSQURJT19HUk9VUEBAUUFFUEFWUkFESU9fQlVUVE9OQEBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBOTFNfU1RSOjpvcGVyYXRvciB1bnNpZ25lZCBzaG9ydCBjb25zdCAqKHZvaWQpY29uc3QgDQorPz9CTkxTX1NUUkBAUUJFUEJHWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBPU19TSUQ6Om9wZXJhdG9yIHZvaWQgKih2b2lkKWNvbnN0IA0KKz8/Qk9TX1NJREBAUUJFUEFYWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBYWVJFQ1Q6Om9wZXJhdG9yIHN0cnVjdCB0YWdSRUNUIGNvbnN0ICoodm9pZCljb25zdCANCis/P0JYWVJFQ1RAQFFCRVBCVXRhZ1JFQ1RAQFhaDQorOyBwdWJsaWM6IGNsYXNzIEZJTEUzX0VOVU1fT0JKIGNvbnN0ICogX190aGlzY2FsbCBGSUxFM19FTlVNX0lURVI6Om9wZXJhdG9yKCkobG9uZyAqLGludCkNCis/P1JGSUxFM19FTlVNX0lURVJAQFFBRVBCVkZJTEUzX0VOVU1fT0JKQEBQQUpIQFoNCis7IHB1YmxpYzogY2xhc3MgSElFUl9MQkkgKiBfX3RoaXNjYWxsIEhJRVJfTEJJX0lURVJBVE9SOjpvcGVyYXRvcigpKHZvaWQpDQorPz9SSElFUl9MQklfSVRFUkFUT1JAQFFBRVBBVkhJRVJfTEJJQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDT05UUk9MX1dJTkRPVyAqIF9fdGhpc2NhbGwgSVRFUl9DVFJMOjpvcGVyYXRvcigpKHZvaWQpDQorPz9SSVRFUl9DVFJMQEBRQUVQQVZDT05UUk9MX1dJTkRPV0BAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIElURVJfREVWSUNFOjpvcGVyYXRvcigpKHZvaWQpDQorPz9SSVRFUl9ERVZJQ0VAQFFBRVBCR1haDQorOyBwdWJsaWM6IGNsYXNzIE5MU19TVFIgKiBfX3RoaXNjYWxsIElURVJfU0xfTkxTX1NUUjo6b3BlcmF0b3IoKSh2b2lkKQ0KKz8/UklURVJfU0xfTkxTX1NUUkBAUUFFUEFWTkxTX1NUUkBAWFoNCis7IHB1YmxpYzogY2xhc3MgTlRfR1JPVVBfRU5VTV9PQkogY29uc3QgKiBfX3RoaXNjYWxsIE5UX0dST1VQX0VOVU1fSVRFUjo6b3BlcmF0b3IoKShsb25nICosaW50KQ0KKz8/Uk5UX0dST1VQX0VOVU1fSVRFUkBAUUFFUEJWTlRfR1JPVVBfRU5VTV9PQkpAQFBBSkhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6b3BlcmF0b3IrPSh1bnNpZ25lZCBsb25nKQ0KKz8/WUNIQU5HRUFCTEVfU1BJTl9JVEVNQEBVQUVYS0BaDQorOyBwdWJsaWM6IGNsYXNzIFhZUkVDVCAmIF9fdGhpc2NhbGwgWFlSRUNUOjpvcGVyYXRvcis9KGNsYXNzIFhZUkVDVCBjb25zdCAmKQ0KKz8/WVhZUkVDVEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpvcGVyYXRvci09KHVuc2lnbmVkIGxvbmcpDQorPz9aQ0hBTkdFQUJMRV9TUElOX0lURU1AQFVBRVhLQFoNCis7IHZvaWQgX19zdGRjYWxsIGB2ZWN0b3IgY29uc3RydWN0b3IgaXRlcmF0b3InKHZvaWQgKix1bnNpZ25lZCBpbnQsaW50LHZvaWQgKiAoX190aGlzY2FsbCopKHZvaWQgKikpDQorPz9fSEBZR1hQQVhJSFA2RVBBWDBAWkBaDQorOyB2b2lkIF9fc3RkY2FsbCBgdmVjdG9yIGRlc3RydWN0b3IgaXRlcmF0b3InKHZvaWQgKix1bnNpZ25lZCBpbnQsaW50LHZvaWQgKF9fdGhpc2NhbGwqKSh2b2lkICopKQ0KKz8/X0lAWUdYUEFYSUhQNkVYMEBaQFoNCis7IHZvaWQgX19zdGRjYWxsIGB2ZWN0b3IgdmJhc2UgY29uc3RydWN0b3IgaXRlcmF0b3InKHZvaWQgKix1bnNpZ25lZCBpbnQsaW50LHZvaWQgKiAoX190aGlzY2FsbCopKHZvaWQgKikpDQorPz9fSkBZR1hQQVhJSFA2RVBBWDBAWkBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgSElFUl9MQkk6OkFiYW5kb24odm9pZCkNCis/QWJhbmRvbkBISUVSX0xCSUBAQUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgSElFUl9MQkk6OkFiYW5kb25BbGxDaGlsZHJlbih2b2lkKQ0KKz9BYmFuZG9uQWxsQ2hpbGRyZW5ASElFUl9MQklAQEFBRVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIE1TR19ESUFMT0dfQkFTRTo6QWN0aW9uT25FcnJvcihsb25nKQ0KKz9BY3Rpb25PbkVycm9yQE1TR19ESUFMT0dfQkFTRUBATUFFSEpAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIE1BR0lDX0dST1VQOjpBY3RpdmF0ZUFzc29jQ29udHJvbHModW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxjbGFzcyBDT05UUk9MX1ZBTFVFICopDQorP0FjdGl2YXRlQXNzb2NDb250cm9sc0BNQUdJQ19HUk9VUEBAQUFFWElJUEFWQ09OVFJPTF9WQUxVRUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgVUlfRVhUX01HUjo6QWN0aXZhdGVFeHRlbnNpb24oc3RydWN0IEhXTkRfXyAqLHVuc2lnbmVkIGxvbmcpDQorP0FjdGl2YXRlRXh0ZW5zaW9uQFVJX0VYVF9NR1JAQFVBRVhQQVVIV05EX19AQEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBBUlJBWV9MSVNUX0NPTlRST0xWQUxfQ0lEX1BBSVI6OkFkZChjbGFzcyBDT05UUk9MVkFMX0NJRF9QQUlSIGNvbnN0ICYpDQorP0FkZEBBUlJBWV9MSVNUX0NPTlRST0xWQUxfQ0lEX1BBSVJAQFFBRUhBQlZDT05UUk9MVkFMX0NJRF9QQUlSQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgSFdORF9ETEdQVFJfQ0FDSEU6OkFkZChzdHJ1Y3QgSFdORF9fICosY2xhc3MgRElBTE9HX1dJTkRPVyAqKQ0KKz9BZGRASFdORF9ETEdQVFJfQ0FDSEVAQFNHWFBBVUhXTkRfX0BAUEFWRElBTE9HX1dJTkRPV0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE1BU0tfTUFQOjpBZGQoY2xhc3MgQklURklFTEQgY29uc3QgJixjbGFzcyBOTFNfU1RSIGNvbnN0ICYsaW50KQ0KKz9BZGRATUFTS19NQVBAQFFBRUpBQlZCSVRGSUVMREBAQUJWTkxTX1NUUkBASEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBNQVNLX01BUDo6QWRkKHN0cnVjdCBVU19JRFNfUEFJUlMgKiBjb25zdCx1bnNpZ25lZCBzaG9ydCkNCis/QWRkQE1BU0tfTUFQQEBRQUVKUUFVVVNfSURTX1BBSVJTQEBHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNMSVNUX09GX0FTU09DSENGSUxFOjpBZGQoY2xhc3MgQVNTT0NIQ0ZJTEUgY29uc3QgKikNCis/QWRkQFNMSVNUX09GX0FTU09DSENGSUxFQEBRQUVKUEJWQVNTT0NIQ0ZJTEVAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTTElTVF9PRl9DTElFTlREQVRBOjpBZGQoc3RydWN0IENMSUVOVERBVEEgY29uc3QgKikNCis/QWRkQFNMSVNUX09GX0NMSUVOVERBVEFAQFFBRUpQQlVDTElFTlREQVRBQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0xJU1RfT0ZfTkxTX1NUUjo6QWRkKGNsYXNzIE5MU19TVFIgY29uc3QgKikNCis/QWRkQFNMSVNUX09GX05MU19TVFJAQFFBRUpQQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0xJU1RfT0ZfT1NfU0lEOjpBZGQoY2xhc3MgT1NfU0lEIGNvbnN0ICopDQorP0FkZEBTTElTVF9PRl9PU19TSURAQFFBRUpQQlZPU19TSURAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTTElTVF9PRl9USU1FUl9CQVNFOjpBZGQoY2xhc3MgVElNRVJfQkFTRSBjb25zdCAqKQ0KKz9BZGRAU0xJU1RfT0ZfVElNRVJfQkFTRUBAUUFFSlBCVlRJTUVSX0JBU0VAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTTElTVF9PRl9VU0VSX0JST1dTRVJfTEJJOjpBZGQoY2xhc3MgVVNFUl9CUk9XU0VSX0xCSSBjb25zdCAqKQ0KKz9BZGRAU0xJU1RfT0ZfVVNFUl9CUk9XU0VSX0xCSUBAUUFFSlBCVlVTRVJfQlJPV1NFUl9MQklAQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFOjpBZGRBbGlhc2VzKGNsYXNzIEFETUlOX0FVVEhPUklUWSAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50ICopDQorP0FkZEFsaWFzZXNAVVNFUl9CUk9XU0VSX0xCSV9DQUNIRUBASUFFSlBBVkFETUlOX0FVVEhPUklUWUBAUEJHUEFIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6OkFkZEFsaWFzZXMoY2xhc3MgU0FNX0RPTUFJTiAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50ICopDQorP0FkZEFsaWFzZXNAVVNFUl9CUk9XU0VSX0xCSV9DQUNIRUBASUFFSlBBVlNBTV9ET01BSU5AQFBCR1BBSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBNQUdJQ19HUk9VUDo6QWRkQXNzb2NpYXRpb24odW5zaWduZWQgaW50LGNsYXNzIENPTlRST0xfVkFMVUUgKikNCis/QWRkQXNzb2NpYXRpb25ATUFHSUNfR1JPVVBAQFFBRUpJUEFWQ09OVFJPTF9WQUxVRUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNQSU5fR1JPVVA6OkFkZEFzc29jaWF0aW9uKGNsYXNzIFNQSU5fSVRFTSAqKQ0KKz9BZGRBc3NvY2lhdGlvbkBTUElOX0dST1VQQEBRQUVKUEFWU1BJTl9JVEVNQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBISUVSX0xJU1RCT1g6OkFkZENoaWxkcmVuKGNsYXNzIEhJRVJfTEJJICopDQorP0FkZENoaWxkcmVuQEhJRVJfTElTVEJPWEBATUFFSlBBVkhJRVJfTEJJQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQkxUSU1QOjpBZGRDbGllbnQoc3RydWN0IEhJTlNUQU5DRV9fICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz9BZGRDbGllbnRAQkxUSU1QQEBTR0pQQVVISU5TVEFOQ0VfX0BASUlJSUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENPTlRST0xfVEFCTEU6OkFkZENvbnRyb2woY2xhc3MgQ09OVFJPTF9XSU5ET1cgKikNCis/QWRkQ29udHJvbEBDT05UUk9MX1RBQkxFQEBRQUVIUEFWQ09OVFJPTF9XSU5ET1dAQEBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBPV05FUl9XSU5ET1c6OkFkZENvbnRyb2woY2xhc3MgQ09OVFJPTF9XSU5ET1cgKikNCis/QWRkQ29udHJvbEBPV05FUl9XSU5ET1dAQEFBRUhQQVZDT05UUk9MX1dJTkRPV0BAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT1VUTElORV9MSVNUQk9YOjpBZGREb21haW4odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/QWRkRG9tYWluQE9VVExJTkVfTElTVEJPWEBAUUFFSFBCRzBIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6OkFkZEdyb3VwcyhjbGFzcyBBRE1JTl9BVVRIT1JJVFkgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCAqKQ0KKz9BZGRHcm91cHNAVVNFUl9CUk9XU0VSX0xCSV9DQUNIRUBASUFFSlBBVkFETUlOX0FVVEhPUklUWUBAUEJHUEFIQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIEJMVElNUDo6QWRkSGVscEFzc29jKHN0cnVjdCBISU5TVEFOQ0VfXyAqLGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9BZGRIZWxwQXNzb2NAQkxUSU1QQEBTR0pQQVVISU5TVEFOQ0VfX0BASktLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQVJSQVlfTElTVF9DT05UUk9MVkFMX0NJRF9QQUlSOjpBZGRJZGVtcChjbGFzcyBDT05UUk9MVkFMX0NJRF9QQUlSIGNvbnN0ICYpDQorP0FkZElkZW1wQEFSUkFZX0xJU1RfQ09OVFJPTFZBTF9DSURfUEFJUkBAUUFFSEFCVkNPTlRST0xWQUxfQ0lEX1BBSVJAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEJMVF9MSVNUQk9YOjpBZGRJdGVtKGNsYXNzIExCSSAqKQ0KKz9BZGRJdGVtQEJMVF9MSVNUQk9YQEBRQUVIUEFWTEJJQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQlJPV1NFUl9ET01BSU5fQ0I6OkFkZEl0ZW0oY2xhc3MgQlJPV1NFUl9ET01BSU4gKikNCis/QWRkSXRlbUBCUk9XU0VSX0RPTUFJTl9DQkBAUUFFSlBBVkJST1dTRVJfRE9NQUlOQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBISUVSX0xJU1RCT1g6OkFkZEl0ZW0oY2xhc3MgSElFUl9MQkkgKixjbGFzcyBISUVSX0xCSSAqLGludCkNCis/QWRkSXRlbUBISUVSX0xJU1RCT1hAQFFBRUhQQVZISUVSX0xCSUBAMEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTEJJX0hFQVA6OkFkZEl0ZW0oY2xhc3MgTEJJICopDQorP0FkZEl0ZW1ATEJJX0hFQVBAQFFBRUpQQVZMQklAQEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIE9VVExJTkVfTElTVEJPWDo6QWRkSXRlbShlbnVtIE9VVExJTkVfTEJfTEVWRUwsaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9BZGRJdGVtQE9VVExJTkVfTElTVEJPWEBASUFFSFc0T1VUTElORV9MQl9MRVZFTEBASFBCRzExQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSSU5HX0xJU1RfQ09OVFJPTDo6QWRkSXRlbSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9BZGRJdGVtQFNUUklOR19MSVNUX0NPTlRST0xAQFFBRUhQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEI6OkFkZEl0ZW0oY2xhc3MgTEJJICopDQorP0FkZEl0ZW1AVVNFUl9CUk9XU0VSX0xCQEBRQUVIUEFWTEJJQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6OkFkZEl0ZW0oY2xhc3MgTEJJICopDQorP0FkZEl0ZW1AVVNFUl9CUk9XU0VSX0xCSV9DQUNIRUBAVUFFSFBBVkxCSUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBVU0VSX0xCSV9DQUNIRTo6QWRkSXRlbShjbGFzcyBMQkkgKikNCis/QWRkSXRlbUBVU0VSX0xCSV9DQUNIRUBAVUFFSFBBVkxCSUBAQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgTElTVF9DT05UUk9MOjpBZGRJdGVtRGF0YSh2b2lkICopDQorP0FkZEl0ZW1EYXRhQExJU1RfQ09OVFJPTEBASUFFSFBBWEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEJMVF9MSVNUQk9YOjpBZGRJdGVtSWRlbXAoY2xhc3MgTEJJICopDQorP0FkZEl0ZW1JZGVtcEBCTFRfTElTVEJPWEBAUUFFSFBBVkxCSUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSSU5HX0xJU1RfQ09OVFJPTDo6QWRkSXRlbUlkZW1wKGNsYXNzIE5MU19TVFIgY29uc3QgJikNCis/QWRkSXRlbUlkZW1wQFNUUklOR19MSVNUX0NPTlRST0xAQFFBRUhBQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJJTkdfTElTVF9DT05UUk9MOjpBZGRJdGVtSWRlbXAodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/QWRkSXRlbUlkZW1wQFNUUklOR19MSVNUX0NPTlRST0xAQFFBRUhQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBMQklUUkVFOjpBZGROb2RlKGNsYXNzIEhJRVJfTEJJICosY2xhc3MgSElFUl9MQkkgKixpbnQpDQorP0FkZE5vZGVATEJJVFJFRUBAUUFFSFBBVkhJRVJfTEJJQEAwSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpBZGRTZWxlY3RlZFVzZXJCcm93c2VyTEJJcyhjbGFzcyBVU0VSX0JST1dTRVJfTEIgKixpbnQsaW50KQ0KKz9BZGRTZWxlY3RlZFVzZXJCcm93c2VyTEJJc0BOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRQUVKUEFWVVNFUl9CUk9XU0VSX0xCQEBISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE9VVExJTkVfTElTVEJPWDo6QWRkU2VydmVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9BZGRTZXJ2ZXJAT1VUTElORV9MSVNUQk9YQEBRQUVIUEJHMDBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgSElFUl9MSVNUQk9YOjpBZGRTb3J0ZWRJdGVtcyhjbGFzcyBISUVSX0xCSSAqICosaW50LGNsYXNzIEhJRVJfTEJJICosaW50KQ0KKz9BZGRTb3J0ZWRJdGVtc0BISUVSX0xJU1RCT1hAQFFBRVhQQVBBVkhJRVJfTEJJQEBIUEFWMkBIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6OkFkZFVzZXJzKGNsYXNzIEFETUlOX0FVVEhPUklUWSAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50LGludCAqKQ0KKz9BZGRVc2Vyc0BVU0VSX0JST1dTRVJfTEJJX0NBQ0hFQEBRQUVKUEFWQURNSU5fQVVUSE9SSVRZQEBQQkdIUEFIQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6OkFkZFdlbGxLbm93blNpZHMoY2xhc3MgQURNSU5fQVVUSE9SSVRZICosdW5zaWduZWQgbG9uZyxpbnQgKikNCis/QWRkV2VsbEtub3duU2lkc0BVU0VSX0JST1dTRVJfTEJJX0NBQ0hFQEBJQUVKUEFWQURNSU5fQVVUSE9SSVRZQEBLUEFIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIExCSV9IRUFQOjpBZGp1c3Qodm9pZCkNCis/QWRqdXN0QExCSV9IRUFQQEBRQUVYWFoNCis7IHB1YmxpYzogY2xhc3MgWFlSRUNUICYgX190aGlzY2FsbCBYWVJFQ1Q6OkFkanVzdEJvdHRvbShpbnQpDQorP0FkanVzdEJvdHRvbUBYWVJFQ1RAQFFBRUFBVjFASEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgSElFUl9MQkk6OkFkanVzdERlc2NlbmRhbnRDb3VudChpbnQpDQorP0FkanVzdERlc2NlbmRhbnRDb3VudEBISUVSX0xCSUBAQUFFWEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExCSV9IRUFQOjpBZGp1c3REb3dud2FyZHMoaW50KQ0KKz9BZGp1c3REb3dud2FyZHNATEJJX0hFQVBAQEFBRVhIQFoNCis7IHB1YmxpYzogY2xhc3MgWFlSRUNUICYgX190aGlzY2FsbCBYWVJFQ1Q6OkFkanVzdExlZnQoaW50KQ0KKz9BZGp1c3RMZWZ0QFhZUkVDVEBAUUFFQUFWMUBIQFoNCis7IHB1YmxpYzogY2xhc3MgWFlSRUNUICYgX190aGlzY2FsbCBYWVJFQ1Q6OkFkanVzdFJpZ2h0KGludCkNCis/QWRqdXN0UmlnaHRAWFlSRUNUQEBRQUVBQVYxQEhAWg0KKzsgcHVibGljOiBjbGFzcyBYWVJFQ1QgJiBfX3RoaXNjYWxsIFhZUkVDVDo6QWRqdXN0VG9wKGludCkNCis/QWRqdXN0VG9wQFhZUkVDVEBAUUFFQUFWMUBIQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBMQklfSEVBUDo6QWRqdXN0VXB3YXJkcyhpbnQpDQorP0FkanVzdFVwd2FyZHNATEJJX0hFQVBAQEFBRVhIQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBISUVSX0xCSTo6QWRvcHQoY2xhc3MgSElFUl9MQkkgKixpbnQpDQorP0Fkb3B0QEhJRVJfTEJJQEBBQUVYUEFWMUBIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFBST0dSRVNTX0NPTlRST0w6OkFkdmFuY2UoaW50KQ0KKz9BZHZhbmNlQFBST0dSRVNTX0NPTlRST0xAQFFBRVhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQ09OVFJPTF9HUk9VUDo6QWZ0ZXJHcm91cEFjdGlvbnModm9pZCkNCis/QWZ0ZXJHcm91cEFjdGlvbnNAQ09OVFJPTF9HUk9VUEBATUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEJJOjpBbGlhc1VuaWNvZGVTdHJUb0Rpc3BsYXlOYW1lKHN0cnVjdCBfVU5JQ09ERV9TVFJJTkcgKikNCis/QWxpYXNVbmljb2RlU3RyVG9EaXNwbGF5TmFtZUBVU0VSX0JST1dTRVJfTEJJQEBRQUVYUEFVX1VOSUNPREVfU1RSSU5HQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgRExJU1RfT0ZfU1BJTl9JVEVNOjpBcHBlbmQoY2xhc3MgU1BJTl9JVEVNICogY29uc3QpDQorP0FwcGVuZEBETElTVF9PRl9TUElOX0lURU1AQFFBRUpRQVZTUElOX0lURU1AQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBNRU5VX0JBU0U6OkFwcGVuZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP0FwcGVuZEBNRU5VX0JBU0VAQFFCRUpQQkdJSUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBNRU5VX0JBU0U6OkFwcGVuZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHN0cnVjdCBITUVOVV9fICosdW5zaWduZWQgaW50KWNvbnN0IA0KKz9BcHBlbmRATUVOVV9CQVNFQEBRQkVKUEJHUEFVSE1FTlVfX0BASUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTTElTVF9PRl9OTFNfU1RSOjpBcHBlbmQoY2xhc3MgTkxTX1NUUiBjb25zdCAqKQ0KKz9BcHBlbmRAU0xJU1RfT0ZfTkxTX1NUUkBAUUFFSlBCVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTTElTVF9PRl9TVFJJTkdfQklUU0VUX1BBSVI6OkFwcGVuZChjbGFzcyBTVFJJTkdfQklUU0VUX1BBSVIgY29uc3QgKikNCis/QXBwZW5kQFNMSVNUX09GX1NUUklOR19CSVRTRVRfUEFJUkBAUUFFSlBCVlNUUklOR19CSVRTRVRfUEFJUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNMSVNUX09GX1VJX0VYVDo6QXBwZW5kKGNsYXNzIFVJX0VYVCBjb25zdCAqKQ0KKz9BcHBlbmRAU0xJU1RfT0ZfVUlfRVhUQEBRQUVKUEJWVUlfRVhUQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0xJU1RfT0ZfVUxDX0FQSV9CVUZGRVI6OkFwcGVuZChjbGFzcyBVTENfQVBJX0JVRkZFUiBjb25zdCAqKQ0KKz9BcHBlbmRAU0xJU1RfT0ZfVUxDX0FQSV9CVUZGRVJAQFFBRUpQQlZVTENfQVBJX0JVRkZFUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNMSVNUX09GX1VTRVJfQlJPV1NFUl9MQkk6OkFwcGVuZChjbGFzcyBVU0VSX0JST1dTRVJfTEJJIGNvbnN0ICopDQorP0FwcGVuZEBTTElTVF9PRl9VU0VSX0JST1dTRVJfTEJJQEBRQUVKUEJWVVNFUl9CUk9XU0VSX0xCSUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgRE1fRFRFOjpBcHBlbmREYXRhVG8oY2xhc3MgTkxTX1NUUiAqKWNvbnN0IA0KKz9BcHBlbmREYXRhVG9ARE1fRFRFQEBVQkVKUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgU1RSX0RURTo6QXBwZW5kRGF0YVRvKGNsYXNzIE5MU19TVFIgKiljb25zdCANCis/QXBwZW5kRGF0YVRvQFNUUl9EVEVAQFVCRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTUVOVV9CQVNFOjpBcHBlbmRTZXBhcmF0b3Iodm9pZCljb25zdCANCis/QXBwZW5kU2VwYXJhdG9yQE1FTlVfQkFTRUBAUUJFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTRVRfT0ZfQVVESVRfQ0FURUdPUklFUzo6QXBwbHlQZXJtaXNzaW9uc1RvQ2hlY2tCb3hlcyhjbGFzcyBCSVRGSUVMRCAqLGNsYXNzIEJJVEZJRUxEICopDQorP0FwcGx5UGVybWlzc2lvbnNUb0NoZWNrQm94ZXNAU0VUX09GX0FVRElUX0NBVEVHT1JJRVNAQFFBRUpQQVZCSVRGSUVMREBAMEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0c6OkFyZVVzZXJzU2hvd24odm9pZCljb25zdCANCis/QXJlVXNlcnNTaG93bkBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRQkVIWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIEFUT01fQkFTRTo6QXNzaWduQXV4KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0Fzc2lnbkF1eEBBVE9NX0JBU0VAQElBRVBCR1BCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBQT1BVUF9NRU5VOjpBdHRhY2goY2xhc3MgUFdORDJIV05EIGNvbnN0ICYpDQorP0F0dGFjaEBQT1BVUF9NRU5VQEBRQUVKQUJWUFdORDJIV05EQEBAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgQkxURG91YmxlQ2hhcihjbGFzcyBOTFNfU1RSICosdW5zaWduZWQgc2hvcnQpDQorP0JMVERvdWJsZUNoYXJAQFlHSlBBVk5MU19TVFJAQEdAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBTRVRfQ09OVFJPTDo6QkxUTW92ZUl0ZW1zKGNsYXNzIEJMVF9MSVNUQk9YICosY2xhc3MgQkxUX0xJU1RCT1ggKikNCis/QkxUTW92ZUl0ZW1zQFNFVF9DT05UUk9MQEBNQUVKUEFWQkxUX0xJU1RCT1hAQDBAWg0KKzsgaW50IF9fc3RkY2FsbCBCTFRQb2ludHMyTG9nVW5pdHMoaW50KQ0KKz9CTFRQb2ludHMyTG9nVW5pdHNAQFlHSEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6OkJlZXAodm9pZCljb25zdCANCis/QmVlcEBMT0dPTl9IT1VSU19DT05UUk9MQEBBQkVYWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIFVJX01FTlVfRVhUOjpCaWFzTWVudUlkcyh1bnNpZ25lZCBsb25nKQ0KKz9CaWFzTWVudUlkc0BVSV9NRU5VX0VYVEBASUFFSktAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBVU0VSX0xCSV9DQUNIRTo6QmluYXJ5U2VhcmNoKHN0cnVjdCBfRE9NQUlOX0RJU1BMQVlfVVNFUiAqKQ0KKz9CaW5hcnlTZWFyY2hAVVNFUl9MQklfQ0FDSEVAQFFBRUhQQVVfRE9NQUlOX0RJU1BMQVlfVVNFUkBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgVVNFUl9MQklfQ0FDSEU6OkJpbmFyeVNlYXJjaChjbGFzcyBMQkkgKikNCis/QmluYXJ5U2VhcmNoQFVTRVJfTEJJX0NBQ0hFQEBRQUVIUEFWTEJJQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBERVZJQ0VfQ09OVEVYVDo6Qml0Qmx0KGNsYXNzIFhZUE9JTlQgY29uc3QgJixjbGFzcyBYWURJTUVOU0lPTixjbGFzcyBERVZJQ0VfQ09OVEVYVCBjb25zdCAmLGNsYXNzIFhZUE9JTlQgY29uc3QgJix1bnNpZ25lZCBsb25nKQ0KKz9CaXRCbHRAREVWSUNFX0NPTlRFWFRAQFFBRUhBQlZYWVBPSU5UQEBWWFlESU1FTlNJT05AQEFCVjFAMEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBERVZJQ0VfQ09OVEVYVDo6Qml0Qmx0KGludCxpbnQsaW50LGludCxjbGFzcyBERVZJQ0VfQ09OVEVYVCBjb25zdCAmLGludCxpbnQsdW5zaWduZWQgbG9uZykNCis/Qml0Qmx0QERFVklDRV9DT05URVhUQEBRQUVISEhISEFCVjFASEhLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE1BU0tfTUFQOjpCaXRzVG9TdHJpbmcoY2xhc3MgQklURklFTEQgY29uc3QgJixjbGFzcyBOTFNfU1RSICosaW50LHVuc2lnbmVkIGludCAqKQ0KKz9CaXRzVG9TdHJpbmdATUFTS19NQVBAQFFBRUpBQlZCSVRGSUVMREBAUEFWTkxTX1NUUkBASFBBSUBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFOjpCdWlsZEFuZEFkZExCSSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdm9pZCAqIGNvbnN0LGVudW0gVUlfU3lzdGVtU2lkLGVudW0gX1NJRF9OQU1FX1VTRSx1bnNpZ25lZCBsb25nKQ0KKz9CdWlsZEFuZEFkZExCSUBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFQEBJQUVKUEJHMDAwMFFBWFc0VUlfU3lzdGVtU2lkQEBXNF9TSURfTkFNRV9VU0VAQEtAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQUNDT1VOVF9OQU1FU19NTEU6OkJ1aWxkTmFtZUxpc3RGcm9tU3RyTGlzdChjbGFzcyBOTFNfU1RSICosY2xhc3MgU1RSTElTVCAqKQ0KKz9CdWlsZE5hbWVMaXN0RnJvbVN0ckxpc3RAQUNDT1VOVF9OQU1FU19NTEVAQElBRUpQQVZOTFNfU1RSQEBQQVZTVFJMSVNUQEBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQkxUX0NPTUJPQk9YOjpDQlN1YmNsYXNzUHJvYyhzdHJ1Y3QgSFdORF9fICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxsb25nKQ0KKz9DQlN1YmNsYXNzUHJvY0BCTFRfQ09NQk9CT1hAQEtHSlBBVUhXTkRfX0BASUlKQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBCTFRfTElTVEJPWDo6Q0RfQ2hhcih1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCkNCis/Q0RfQ2hhckBCTFRfTElTVEJPWEBATUFFSEdHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBCTFRfTElTVEJPWF9IQVc6OkNEX0NoYXIodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQpDQorP0NEX0NoYXJAQkxUX0xJU1RCT1hfSEFXQEBNQUVIR0dAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENPTlRST0xfV0lORE9XOjpDRF9DaGFyKHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIHNob3J0KQ0KKz9DRF9DaGFyQENPTlRST0xfV0lORE9XQEBNQUVIR0dAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIExNX09MTEI6OkNEX0NoYXIodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQpDQorP0NEX0NoYXJATE1fT0xMQkBATUFFSEdHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBPVVRMSU5FX0xJU1RCT1g6OkNEX0NoYXIodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQpDQorP0NEX0NoYXJAT1VUTElORV9MSVNUQk9YQEBNQUVIR0dAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFNUQVRFTEI6OkNEX0NoYXIodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQpDQorP0NEX0NoYXJAU1RBVEVMQkBATUFFSEdHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEI6OkNEX0NoYXIodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQpDQorP0NEX0NoYXJAVVNFUl9CUk9XU0VSX0xCQEBNQUVIR0dAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBCTFRfTElTVEJPWDo6Q0RfQ2hhcl9IQVdmb3JIYXdhaWkodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQsY2xhc3MgSEFXX0ZPUl9IQVdBSUlfSU5GTyAqKQ0KKz9DRF9DaGFyX0hBV2Zvckhhd2FpaUBCTFRfTElTVEJPWEBASUFFSEdHUEFWSEFXX0ZPUl9IQVdBSUlfSU5GT0BAQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgVVNFUl9CUk9XU0VSX0xCOjpDRF9DaGFyX0hBV2Zvckhhd2FpaSh1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCxjbGFzcyBIQVdfRk9SX0hBV0FJSV9JTkZPICopDQorP0NEX0NoYXJfSEFXZm9ySGF3YWlpQFVTRVJfQlJPV1NFUl9MQkBASUFFSEdHUEFWSEFXX0ZPUl9IQVdBSUlfSU5GT0BAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDT05UUk9MX1dJTkRPVzo6Q0RfRHJhdyhzdHJ1Y3QgdGFnRFJBV0lURU1TVFJVQ1QgKikNCis/Q0RfRHJhd0BDT05UUk9MX1dJTkRPV0BATUFFSFBBVXRhZ0RSQVdJVEVNU1RSVUNUQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIEdSQVBISUNBTF9CVVRUT046OkNEX0RyYXcoc3RydWN0IHRhZ0RSQVdJVEVNU1RSVUNUICopDQorP0NEX0RyYXdAR1JBUEhJQ0FMX0JVVFRPTkBATUFFSFBBVXRhZ0RSQVdJVEVNU1RSVUNUQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIEdSQVBISUNBTF9CVVRUT05fV0lUSF9ESVNBQkxFOjpDRF9EcmF3KHN0cnVjdCB0YWdEUkFXSVRFTVNUUlVDVCAqKQ0KKz9DRF9EcmF3QEdSQVBISUNBTF9CVVRUT05fV0lUSF9ESVNBQkxFQEBNQUVIUEFVdGFnRFJBV0lURU1TVFJVQ1RAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgTElTVEJPWDo6Q0RfRHJhdyhzdHJ1Y3QgdGFnRFJBV0lURU1TVFJVQ1QgKikNCis/Q0RfRHJhd0BMSVNUQk9YQEBNQUVIUEFVdGFnRFJBV0lURU1TVFJVQ1RAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIEJMVF9MSVNUQk9YOjpDRF9HdWlsdHQoaW50LGNsYXNzIE5MU19TVFIgKikNCis/Q0RfR3VpbHR0QEJMVF9MSVNUQk9YQEBNQUVKSFBBVk5MU19TVFJAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENPTlRST0xfV0lORE9XOjpDRF9HdWlsdHQoaW50LGNsYXNzIE5MU19TVFIgKikNCis/Q0RfR3VpbHR0QENPTlRST0xfV0lORE9XQEBNQUVKSFBBVk5MU19TVFJAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIExBWllfTElTVEJPWDo6Q0RfR3VpbHR0KGludCxjbGFzcyBOTFNfU1RSICopDQorP0NEX0d1aWx0dEBMQVpZX0xJU1RCT1hAQE1BRUpIUEFWTkxTX1NUUkBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBCTFRfTElTVEJPWDo6Q0RfTWVhc3VyZShzdHJ1Y3QgdGFnTUVBU1VSRUlURU1TVFJVQ1QgKikNCis/Q0RfTWVhc3VyZUBCTFRfTElTVEJPWEBATUFFSFBBVXRhZ01FQVNVUkVJVEVNU1RSVUNUQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENPTlRST0xfV0lORE9XOjpDRF9NZWFzdXJlKHN0cnVjdCB0YWdNRUFTVVJFSVRFTVNUUlVDVCAqKQ0KKz9DRF9NZWFzdXJlQENPTlRST0xfV0lORE9XQEBNQUVIUEFVdGFnTUVBU1VSRUlURU1TVFJVQ1RAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ09OVFJPTF9XSU5ET1c6OkNEX1ZLZXkodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQpDQorP0NEX1ZLZXlAQ09OVFJPTF9XSU5ET1dAQE1BRUhHR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgTElTVEJPWDo6Q0RfVktleSh1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCkNCis/Q0RfVktleUBMSVNUQk9YQEBNQUVIR0dAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFNUQVRFTEI6OkNEX1ZLZXkodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQpDQorP0NEX1ZLZXlAU1RBVEVMQkBATUFFSEdHQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEI6OkNEX1ZLZXkodW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQpDQorP0NEX1ZLZXlAVVNFUl9CUk9XU0VSX0xCQEBNQUVIR0dAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ09OVFJPTF9HUk9VUDo6Q1ZSZXN0b3JlVmFsdWUoY2xhc3MgQ09OVFJPTF9WQUxVRSAqLGludCkNCis/Q1ZSZXN0b3JlVmFsdWVAQ09OVFJPTF9HUk9VUEBASUFFWFBBVkNPTlRST0xfVkFMVUVAQEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1VTVE9NX0NPTlRST0w6OkNWUmVzdG9yZVZhbHVlKGludCkNCis/Q1ZSZXN0b3JlVmFsdWVAQ1VTVE9NX0NPTlRST0xAQFFBRVhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENPTlRST0xfR1JPVVA6OkNWU2F2ZVZhbHVlKGNsYXNzIENPTlRST0xfVkFMVUUgKixpbnQpDQorP0NWU2F2ZVZhbHVlQENPTlRST0xfR1JPVVBAQElBRVhQQVZDT05UUk9MX1ZBTFVFQEBIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENVU1RPTV9DT05UUk9MOjpDVlNhdmVWYWx1ZShpbnQpDQorP0NWU2F2ZVZhbHVlQENVU1RPTV9DT05UUk9MQEBRQUVYSEBaDQorOyBwcml2YXRlOiBzdHJ1Y3QgSElDT05fXyAqIF9fdGhpc2NhbGwgU0VUX0NPTlRST0w6OkNhbGNBcHByb3ByaWF0ZUN1cnNvcihjbGFzcyBMSVNUQk9YICosY2xhc3MgTElTVEJPWCAqLGNsYXNzIFhZUE9JTlQgY29uc3QgJiljb25zdCANCis/Q2FsY0FwcHJvcHJpYXRlQ3Vyc29yQFNFVF9DT05UUk9MQEBBQkVQQVVISUNPTl9fQEBQQVZMSVNUQk9YQEAwQUJWWFlQT0lOVEBAQFoNCis7IHByaXZhdGU6IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19zdGRjYWxsIE1FVEFMTElDX1NUUl9EVEU6OkNhbGNCb3R0b21UZXh0TWFyZ2luKHZvaWQpDQorP0NhbGNCb3R0b21UZXh0TWFyZ2luQE1FVEFMTElDX1NUUl9EVEVAQENHSVhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpDYWxjQnV0dG9uRnJvbVBvaW50KGNsYXNzIFhZUE9JTlQpY29uc3QgDQorP0NhbGNCdXR0b25Gcm9tUG9pbnRATE9HT05fSE9VUlNfQ09OVFJPTEBAQUJFSFZYWVBPSU5UQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgRElTUExBWV9UQUJMRTo6Q2FsY0NvbHVtbldpZHRocyh1bnNpZ25lZCBpbnQgKix1bnNpZ25lZCBpbnQsY2xhc3MgT1dORVJfV0lORE9XICosdW5zaWduZWQgaW50LGludCkNCis/Q2FsY0NvbHVtbldpZHRoc0BESVNQTEFZX1RBQkxFQEBTR0pQQUlJUEFWT1dORVJfV0lORE9XQEBJSEBaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBQT1BVUDo6Q2FsY0RlZkJ1dHRvbih1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KQ0KKz9DYWxjRGVmQnV0dG9uQFBPUFVQQEBDR0hJSUBaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyBpbnQgX19zdGRjYWxsIE9XTkVSX1dJTkRPVzo6Q2FsY0ZpeGVkQ0RNZWFzdXJlKHN0cnVjdCBIV05EX18gKixzdHJ1Y3QgdGFnTUVBU1VSRUlURU1TVFJVQ1QgKikNCis/Q2FsY0ZpeGVkQ0RNZWFzdXJlQE9XTkVSX1dJTkRPV0BAS0dIUEFVSFdORF9fQEBQQVV0YWdNRUFTVVJFSVRFTVNUUlVDVEBAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX3N0ZGNhbGwgV0lORE9XOjpDYWxjRml4ZWRIZWlnaHQoc3RydWN0IEhXTkRfXyAqLHVuc2lnbmVkIGludCAqKQ0KKz9DYWxjRml4ZWRIZWlnaHRAV0lORE9XQEBLR0hQQVVIV05EX19AQFBBSUBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6Q2FsY0dyaWRSZWN0KGNsYXNzIFhZUkVDVCAqKWNvbnN0IA0KKz9DYWxjR3JpZFJlY3RATE9HT05fSE9VUlNfQ09OVFJPTEBAQUJFWFBBVlhZUkVDVEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBMQkk6OkNhbGNIZWlnaHQodW5zaWduZWQgaW50KQ0KKz9DYWxjSGVpZ2h0QExCSUBAVUFFSUlAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBYWVJFQ1Q6OkNhbGNIZWlnaHQodm9pZCljb25zdCANCis/Q2FsY0hlaWdodEBYWVJFQ1RAQFFCRUhYWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3N0ZGNhbGwgQkxUOjpDYWxjSGVscEZpbGVIQyh1bnNpZ25lZCBsb25nKQ0KKz9DYWxjSGVscEZpbGVIQ0BCTFRAQFNHUEJHS0BaDQorOyBwdWJsaWM6IHN0YXRpYyBzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3N0ZGNhbGwgQkxUOjpDYWxjSG1vZFJzcmMoY2xhc3MgSURSRVNPVVJDRSBjb25zdCAmKQ0KKz9DYWxjSG1vZFJzcmNAQkxUQEBTR1BBVUhJTlNUQU5DRV9fQEBBQlZJRFJFU09VUkNFQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IEhJTlNUQU5DRV9fICogX19zdGRjYWxsIEJMVDo6Q2FsY0htb2RTdHJpbmcobG9uZykNCis/Q2FsY0htb2RTdHJpbmdAQkxUQEBTR1BBVUhJTlNUQU5DRV9fQEBKQFoNCis7IHB1YmxpYzogY2xhc3MgWFlSRUNUICYgX190aGlzY2FsbCBYWVJFQ1Q6OkNhbGNJbnRlcnNlY3QoY2xhc3MgWFlSRUNUIGNvbnN0ICYsY2xhc3MgWFlSRUNUIGNvbnN0ICYpDQorP0NhbGNJbnRlcnNlY3RAWFlSRUNUQEBRQUVBQVYxQEFCVjFAMEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6Q2FsY1JlY3RGb3JDZWxsKGNsYXNzIFhZUkVDVCAqLGludCljb25zdCANCis/Q2FsY1JlY3RGb3JDZWxsQExPR09OX0hPVVJTX0NPTlRST0xAQEFCRVhQQVZYWVJFQ1RAQEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6OkNhbGNSZWN0Rm9yQ29ybmVyKGNsYXNzIFhZUkVDVCAqKWNvbnN0IA0KKz9DYWxjUmVjdEZvckNvcm5lckBMT0dPTl9IT1VSU19DT05UUk9MQEBBQkVYUEFWWFlSRUNUQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6OkNhbGNSZWN0Rm9yRGF5KGNsYXNzIFhZUkVDVCAqLGludCljb25zdCANCis/Q2FsY1JlY3RGb3JEYXlATE9HT05fSE9VUlNfQ09OVFJPTEBAQUJFWFBBVlhZUkVDVEBASEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6Q2FsY1JlY3RGb3JIb3VyKGNsYXNzIFhZUkVDVCAqLGludCljb25zdCANCis/Q2FsY1JlY3RGb3JIb3VyQExPR09OX0hPVVJTX0NPTlRST0xAQEFCRVhQQVZYWVJFQ1RAQEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQkxUX0xJU1RCT1g6OkNhbGNTaW5nbGVMaW5lSGVpZ2h0KHZvaWQpDQorP0NhbGNTaW5nbGVMaW5lSGVpZ2h0QEJMVF9MSVNUQk9YQEBRQUVKWFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpDYWxjU2l6ZXMoY2xhc3MgWFlESU1FTlNJT04pDQorP0NhbGNTaXplc0BMT0dPTl9IT1VSU19DT05UUk9MQEBBQUVKVlhZRElNRU5TSU9OQEBAWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGludCBfX3N0ZGNhbGwgTUVUQUxMSUNfU1RSX0RURTo6Q2FsY1RvcFRleHRNYXJnaW4odm9pZCkNCis/Q2FsY1RvcFRleHRNYXJnaW5ATUVUQUxMSUNfU1RSX0RURUBAQ0dJWFoNCis7IHB1YmxpYzogY2xhc3MgWFlSRUNUICYgX190aGlzY2FsbCBYWVJFQ1Q6OkNhbGNVbmlvbihjbGFzcyBYWVJFQ1QgY29uc3QgJixjbGFzcyBYWVJFQ1QgY29uc3QgJikNCis/Q2FsY1VuaW9uQFhZUkVDVEBAUUFFQUFWMUBBQlYxQDBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBYWVJFQ1Q6OkNhbGNXaWR0aCh2b2lkKWNvbnN0IA0KKz9DYWxjV2lkdGhAWFlSRUNUQEBRQkVIWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEFDQ09VTlRfTkFNRVNfTUxFOjpDYW5vbmljYWxpemVOYW1lcyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIFNUUkxJU1QgKikNCis/Q2Fub25pY2FsaXplTmFtZXNAQUNDT1VOVF9OQU1FU19NTEVAQFFBRUpQQkdQQVZTVFJMSVNUQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0xJRU5UX1dJTkRPVzo6Q2FwdHVyZU1vdXNlKHZvaWQpDQorP0NhcHR1cmVNb3VzZUBDTElFTlRfV0lORE9XQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIERJU1BBVENIRVI6OkNhcHR1cmVNb3VzZSh2b2lkKQ0KKz9DYXB0dXJlTW91c2VARElTUEFUQ0hFUkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBXSU5ET1c6OkNlbnRlcihzdHJ1Y3QgSFdORF9fICopDQorP0NlbnRlckBXSU5ET1dAQFFBRVhQQVVIV05EX19AQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNQSU5fR1JPVVA6OkNoYW5nZUZpZWxkVmFsdWUodW5zaWduZWQgc2hvcnQsaW50KQ0KKz9DaGFuZ2VGaWVsZFZhbHVlQFNQSU5fR1JPVVBAQFFBRUhHSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBBVURJVF9DSEVDS0JPWEVTOjpDaGVja0ZhaWxlZChpbnQpDQorP0NoZWNrRmFpbGVkQEFVRElUX0NIRUNLQk9YRVNAQFFBRVhIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTUVOVV9CQVNFOjpDaGVja0l0ZW0odW5zaWduZWQgaW50LGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP0NoZWNrSXRlbUBNRU5VX0JBU0VAQFFCRUlJSElAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQUNDT1VOVF9OQU1FU19NTEU6OkNoZWNrTG9va2VkVXBOYW1lcyh1bnNpZ25lZCBzaG9ydCAqICosY2xhc3MgTFNBX1RSQU5TTEFURURfU0lEX01FTSAqLGNsYXNzIFNUUkxJU1QgKixjbGFzcyBOTFNfU1RSICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nICopDQorP0NoZWNrTG9va2VkVXBOYW1lc0BBQ0NPVU5UX05BTUVTX01MRUBASUFFSlBBUEFHUEFWTFNBX1RSQU5TTEFURURfU0lEX01FTUBAUEFWU1RSTElTVEBAUEFWTkxTX1NUUkBAUEJHUEFKQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIEFDQ09VTlRfTkFNRVNfTUxFOjpDaGVja05hbWVUeXBlKGVudW0gX1NJRF9OQU1FX1VTRSx1bnNpZ25lZCBsb25nKQ0KKz9DaGVja05hbWVUeXBlQEFDQ09VTlRfTkFNRVNfTUxFQEBTR0pXNF9TSURfTkFNRV9VU0VAQEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6Q2hlY2tSYW5nZSh1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9DaGVja1JhbmdlQENIQU5HRUFCTEVfU1BJTl9JVEVNQEBRQkVIS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBBVURJVF9DSEVDS0JPWEVTOjpDaGVja1N1Y2Nlc3MoaW50KQ0KKz9DaGVja1N1Y2Nlc3NAQVVESVRfQ0hFQ0tCT1hFU0BAUUFFWEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpDaGVja1ZhbGlkKHZvaWQpDQorP0NoZWNrVmFsaWRAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFVBRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFNQSU5fU0xFX05VTV9WQUxJRDo6Q2hlY2tWYWxpZCh2b2lkKQ0KKz9DaGVja1ZhbGlkQFNQSU5fU0xFX05VTV9WQUxJREBAVUFFSFhaDQorOyBwdWJsaWM6IGNsYXNzIENPTlRST0xfV0lORE9XICogX190aGlzY2FsbCBDT05UUk9MX1RBQkxFOjpDaWRUb0N0cmxQdHIodW5zaWduZWQgaW50KWNvbnN0IA0KKz9DaWRUb0N0cmxQdHJAQ09OVFJPTF9UQUJMRUBAUUJFUEFWQ09OVFJPTF9XSU5ET1dAQElAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDT05UUk9MX1dJTkRPVyAqIF9fdGhpc2NhbGwgT1dORVJfV0lORE9XOjpDaWRUb0N0cmxQdHIodW5zaWduZWQgaW50KWNvbnN0IA0KKz9DaWRUb0N0cmxQdHJAT1dORVJfV0lORE9XQEBJQkVQQVZDT05UUk9MX1dJTkRPV0BASUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDT05UUk9MX1dJTkRPVzo6Q2xhaW1Gb2N1cyh2b2lkKQ0KKz9DbGFpbUZvY3VzQENPTlRST0xfV0lORE9XQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEFSUkFZX0xJU1RfQ09OVFJPTFZBTF9DSURfUEFJUjo6Q2xlYXIodm9pZCkNCis/Q2xlYXJAQVJSQVlfTElTVF9DT05UUk9MVkFMX0NJRF9QQUlSQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIERMSVNUX09GX1NQSU5fSVRFTTo6Q2xlYXIodm9pZCkNCis/Q2xlYXJARExJU1RfT0ZfU1BJTl9JVEVNQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNMSVNUX09GX0FTU09DSENGSUxFOjpDbGVhcih2b2lkKQ0KKz9DbGVhckBTTElTVF9PRl9BU1NPQ0hDRklMRUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBTTElTVF9PRl9DTElFTlREQVRBOjpDbGVhcih2b2lkKQ0KKz9DbGVhckBTTElTVF9PRl9DTElFTlREQVRBQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNMSVNUX09GX09TX1NJRDo6Q2xlYXIodm9pZCkNCis/Q2xlYXJAU0xJU1RfT0ZfT1NfU0lEQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNMSVNUX09GX1NUUklOR19CSVRTRVRfUEFJUjo6Q2xlYXIodm9pZCkNCis/Q2xlYXJAU0xJU1RfT0ZfU1RSSU5HX0JJVFNFVF9QQUlSQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNMSVNUX09GX1RJTUVSX0JBU0U6OkNsZWFyKHZvaWQpDQorP0NsZWFyQFNMSVNUX09GX1RJTUVSX0JBU0VAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU0xJU1RfT0ZfVUlfRVhUOjpDbGVhcih2b2lkKQ0KKz9DbGVhckBTTElTVF9PRl9VSV9FWFRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU0xJU1RfT0ZfVUxDX0FQSV9CVUZGRVI6OkNsZWFyKHZvaWQpDQorP0NsZWFyQFNMSVNUX09GX1VMQ19BUElfQlVGRkVSQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNMSVNUX09GX1VTRVJfQlJPV1NFUl9MQkk6OkNsZWFyKHZvaWQpDQorP0NsZWFyQFNMSVNUX09GX1VTRVJfQlJPV1NFUl9MQklAQFFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIEhfU1BMSVRURVJfQkFSOjpDbGVhckRyYWdCYXIodm9pZCkNCis/Q2xlYXJEcmFnQmFyQEhfU1BMSVRURVJfQkFSQEBBQUVYWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIEJMVF9NQVNURVJfVElNRVI6OkNsZWFyTWFzdGVyVGltZXJIb3RrZXkodm9pZCkNCis/Q2xlYXJNYXN0ZXJUaW1lckhvdGtleUBCTFRfTUFTVEVSX1RJTUVSQEBTR0tYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU0xUX0VMTElQU0lTOjpDbGVhclRleHQodm9pZCkNCis/Q2xlYXJUZXh0QFNMVF9FTExJUFNJU0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBXSU5ET1c6OkNsZWFyVGV4dCh2b2lkKQ0KKz9DbGVhclRleHRAV0lORE9XQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFhZUE9JTlQ6OkNsaWVudFRvU2NyZWVuKHN0cnVjdCBIV05EX18gKikNCis/Q2xpZW50VG9TY3JlZW5AWFlQT0lOVEBAUUFFWFBBVUhXTkRfX0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEFQUF9XSU5ET1c6OkNsb3NlKHZvaWQpDQorP0Nsb3NlQEFQUF9XSU5ET1dAQFFBRVhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgV0lOMzJfSEFORExFOjpDbG9zZSh2b2lkKQ0KKz9DbG9zZUBXSU4zMl9IQU5ETEVAQFFBRUpYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgT1BFTl9ESUFMT0dfQkFTRTo6Q2xvc2VGaWxlKGNsYXNzIE9QRU5fTEJJX0JBU0UgKikNCis/Q2xvc2VGaWxlQE9QRU5fRElBTE9HX0JBU0VAQElBRVhQQVZPUEVOX0xCSV9CQVNFQEBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBVU0VSX0xCSV9DQUNIRTo6Q21wVW5pU3RycyhzdHJ1Y3QgX1VOSUNPREVfU1RSSU5HIGNvbnN0ICosc3RydWN0IF9VTklDT0RFX1NUUklORyBjb25zdCAqKQ0KKz9DbXBVbmlTdHJzQFVTRVJfTEJJX0NBQ0hFQEBLR0hQQlVfVU5JQ09ERV9TVFJJTkdAQDBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTE1fT0xMQjo6Q29sbGFwc2VEb21haW4oaW50KQ0KKz9Db2xsYXBzZURvbWFpbkBMTV9PTExCQEBRQUVKSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMTV9PTExCOjpDb2xsYXBzZURvbWFpbih2b2lkKQ0KKz9Db2xsYXBzZURvbWFpbkBMTV9PTExCQEBRQUVKWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEhJRVJfTElTVEJPWDo6Q29sbGFwc2VJdGVtKGludCxpbnQpDQorP0NvbGxhcHNlSXRlbUBISUVSX0xJU1RCT1hAQFFBRVhISEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBISUVSX0xJU1RCT1g6OkNvbGxhcHNlSXRlbShjbGFzcyBISUVSX0xCSSAqLGludCkNCis/Q29sbGFwc2VJdGVtQEhJRVJfTElTVEJPWEBAUUFFWFBBVkhJRVJfTEJJQEBIQFoNCis7IGludCBfX3N0ZGNhbGwgQ29tbURsZ0hvb2tQcm9jKHN0cnVjdCBIV05EX18gKix1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBpbnQsbG9uZykNCis/Q29tbURsZ0hvb2tQcm9jQEBZR0hQQVVIV05EX19AQEdJSkBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBXSU5ET1c6OkNvbW1hbmQodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxsb25nKWNvbnN0IA0KKz9Db21tYW5kQFdJTkRPV0BAUUJFS0lJSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQlJPV1NFUl9ET01BSU5fTEJJOjpDb21wYXJlKGNsYXNzIExCSSBjb25zdCAqKWNvbnN0IA0KKz9Db21wYXJlQEJST1dTRVJfRE9NQUlOX0xCSUBAVUJFSFBCVkxCSUBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBCUk9XU0VSX0RPTUFJTl9MQklfUEI6OkNvbXBhcmUoY2xhc3MgTEJJIGNvbnN0ICopY29uc3QgDQorP0NvbXBhcmVAQlJPV1NFUl9ET01BSU5fTEJJX1BCQEBVQkVIUEJWTEJJQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDT05UUk9MVkFMX0NJRF9QQUlSOjpDb21wYXJlKGNsYXNzIENPTlRST0xWQUxfQ0lEX1BBSVIgY29uc3QgKiljb25zdCANCis/Q29tcGFyZUBDT05UUk9MVkFMX0NJRF9QQUlSQEBRQkVIUEJWMUBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIExCSTo6Q29tcGFyZShjbGFzcyBMQkkgY29uc3QgKiljb25zdCANCis/Q29tcGFyZUBMQklAQFVCRUhQQlYxQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgT0xMQl9FTlRSWTo6Q29tcGFyZShjbGFzcyBMQkkgY29uc3QgKiljb25zdCANCis/Q29tcGFyZUBPTExCX0VOVFJZQEBVQkVIUEJWTEJJQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFNUTEJJVEVNOjpDb21wYXJlKGNsYXNzIExCSSBjb25zdCAqKWNvbnN0IA0KKz9Db21wYXJlQFNUTEJJVEVNQEBNQkVIUEJWTEJJQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQkk6OkNvbXBhcmUoY2xhc3MgTEJJIGNvbnN0ICopY29uc3QgDQorP0NvbXBhcmVAVVNFUl9CUk9XU0VSX0xCSUBAVUJFSFBCVkxCSUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFOjpDb21wYXJlKGNsYXNzIExCSSBjb25zdCAqLGNsYXNzIExCSSBjb25zdCAqKWNvbnN0IA0KKz9Db21wYXJlQFVTRVJfQlJPV1NFUl9MQklfQ0FDSEVAQE1CRUhQQlZMQklAQDBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6OkNvbXBhcmUoY2xhc3MgTEJJIGNvbnN0ICosc3RydWN0IF9ET01BSU5fRElTUExBWV9VU0VSIGNvbnN0ICopY29uc3QgDQorP0NvbXBhcmVAVVNFUl9CUk9XU0VSX0xCSV9DQUNIRUBATUJFSFBCVkxCSUBAUEJVX0RPTUFJTl9ESVNQTEFZX1VTRVJAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQkk6OkNvbXBhcmVBdXgoY2xhc3MgTEJJIGNvbnN0ICopY29uc3QgDQorP0NvbXBhcmVBdXhAVVNFUl9CUk9XU0VSX0xCSUBAUUJFSFBCVkxCSUBAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX2NkZWNsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6OkNvbXBhcmVDYWNoZUxCSXMoc3RydWN0IF9VTENfRU5UUllfQkFTRSBjb25zdCAqLHN0cnVjdCBfVUxDX0VOVFJZX0JBU0UgY29uc3QgKikNCis/Q29tcGFyZUNhY2hlTEJJc0BVU0VSX0JST1dTRVJfTEJJX0NBQ0hFQEBLQUhQQlVfVUxDX0VOVFJZX0JBU0VAQDBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgaW50IF9fY2RlY2wgVVNFUl9MQklfQ0FDSEU6OkNvbXBhcmVMb2dvbk5hbWVzKHZvaWQgY29uc3QgKix2b2lkIGNvbnN0ICopDQorP0NvbXBhcmVMb2dvbk5hbWVzQFVTRVJfTEJJX0NBQ0hFQEBLQUhQQlgwQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBMQkk6OkNvbXBhcmVfSEFXZm9ySGF3YWlpKGNsYXNzIE5MU19TVFIgY29uc3QgJiljb25zdCANCis/Q29tcGFyZV9IQVdmb3JIYXdhaWlATEJJQEBVQkVIQUJWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEJJOjpDb21wYXJlX0hBV2Zvckhhd2FpaShjbGFzcyBOTFNfU1RSIGNvbnN0ICYpY29uc3QgDQorP0NvbXBhcmVfSEFXZm9ySGF3YWlpQFVTRVJfQlJPV1NFUl9MQklAQFVCRUhBQlZOTFNfU1RSQEBAWg0KKzsgaW50IF9fY2RlY2wgQ29tcGFyZXBMQklzKGNsYXNzIFVTRVJfQlJPV1NFUl9MQkkgKiBjb25zdCAqLGNsYXNzIFVTRVJfQlJPV1NFUl9MQkkgKiBjb25zdCAqKQ0KKz9Db21wYXJlcExCSXNAQFlBSFBCUUFWVVNFUl9CUk9XU0VSX0xCSUBAMEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBQUk9NUFRfQU5EX0NPTk5FQ1Q6OkNvbm5lY3Qodm9pZCkNCis/Q29ubmVjdEBQUk9NUFRfQU5EX0NPTk5FQ1RAQFFBRUpYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBYWVJFQ1Q6OkNvbnRhaW5zWFkoY2xhc3MgWFlQT0lOVCljb25zdCANCis/Q29udGFpbnNYWUBYWVJFQ1RAQFFCRUhWWFlQT0lOVEBAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIFNMVF9FTExJUFNJUzo6Q29udmVydEFuZFNldFN0cih2b2lkKQ0KKz9Db252ZXJ0QW5kU2V0U3RyQFNMVF9FTExJUFNJU0BASUFFSlhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBYWVJFQ1Q6OkNvbnZlcnRDbGllbnRUb1NjcmVlbihzdHJ1Y3QgSFdORF9fICopDQorP0NvbnZlcnRDbGllbnRUb1NjcmVlbkBYWVJFQ1RAQFFBRVhQQVVIV05EX19AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBYWVJFQ1Q6OkNvbnZlcnRTY3JlZW5Ub0NsaWVudChzdHJ1Y3QgSFdORF9fICopDQorP0NvbnZlcnRTY3JlZW5Ub0NsaWVudEBYWVJFQ1RAQFFBRVhQQVVIV05EX19AQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3MgTEJJICogX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFOjpDcmVhdGVMQkkoc3RydWN0IF9ET01BSU5fRElTUExBWV9VU0VSIGNvbnN0ICopDQorP0NyZWF0ZUxCSUBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFQEBNQUVQQVZMQklAQFBCVV9ET01BSU5fRElTUExBWV9VU0VSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQUNDT1VOVF9OQU1FU19NTEU6OkNyZWF0ZUxCSUxpc3RGcm9tTmFtZXModW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIFNMSVNUX09GX1VTRVJfQlJPV1NFUl9MQkkgKixjbGFzcyBTTElTVF9PRl9VU0VSX0JST1dTRVJfTEJJICosbG9uZyAqLGNsYXNzIE5MU19TVFIgKikNCis/Q3JlYXRlTEJJTGlzdEZyb21OYW1lc0BBQ0NPVU5UX05BTUVTX01MRUBAUUFFSlBCRzBQQVZTTElTVF9PRl9VU0VSX0JST1dTRVJfTEJJQEAxUEFKUEFWTkxTX1NUUkBAQFoNCis7IGxvbmcgX19zdGRjYWxsIENyZWF0ZUxCSXNGcm9tU2lkcyh2b2lkICogY29uc3QgKix1bnNpZ25lZCBsb25nLHZvaWQgKiBjb25zdCxjbGFzcyBMU0FfUE9MSUNZICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBVU0VSX0JST1dTRVJfTEIgKixjbGFzcyBTTElTVF9PRl9VU0VSX0JST1dTRVJfTEJJICopDQorP0NyZWF0ZUxCSXNGcm9tU2lkc0BAWUdKUEJRQVhLUUFYUEFWTFNBX1BPTElDWUBAUEJHUEFWVVNFUl9CUk9XU0VSX0xCQEBQQVZTTElTVF9PRl9VU0VSX0JST1dTRVJfTEJJQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIEdSQVBISUNBTF9CVVRUT046OkN0QXV4KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9DdEF1eEBHUkFQSElDQUxfQlVUVE9OQEBBQUVYUEJHMDBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIEhfU1BMSVRURVJfQkFSOjpDdEF1eCh2b2lkKQ0KKz9DdEF1eEBIX1NQTElUVEVSX0JBUkBAQUFFWFhaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgUE9QVVBfTUVOVTo6Q3RBdXgoc3RydWN0IEhNRU5VX18gKikNCis/Q3RBdXhAUE9QVVBfTUVOVUBAQUFFSlBBVUhNRU5VX19AQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgUFJPR1JFU1NfQ09OVFJPTDo6Q3RBdXgodm9pZCkNCis/Q3RBdXhAUFJPR1JFU1NfQ09OVFJPTEBAQUFFWFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBNRU5VX0JBU0U6OkRlbGV0ZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9EZWxldGVATUVOVV9CQVNFQEBRQkVKSUlAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgTElTVF9DT05UUk9MOjpEZWxldGVBbGxJdGVtcyh2b2lkKQ0KKz9EZWxldGVBbGxJdGVtc0BMSVNUX0NPTlRST0xAQFFBRVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgV0lOMzJfVEhSRUFEOjpEZWxldGVBbmRFeGl0KHVuc2lnbmVkIGludCkNCis/RGVsZXRlQW5kRXhpdEBXSU4zMl9USFJFQURAQElBRVhJQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEhJRVJfTElTVEJPWDo6RGVsZXRlQ2hpbGRyZW4oY2xhc3MgSElFUl9MQkkgKikNCis/RGVsZXRlQ2hpbGRyZW5ASElFUl9MSVNUQk9YQEBRQUVYUEFWSElFUl9MQklAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBERVZJQ0VfQ09NQk86OkRlbGV0ZUN1cnJlbnREZXZpY2VOYW1lKHZvaWQpDQorP0RlbGV0ZUN1cnJlbnREZXZpY2VOYW1lQERFVklDRV9DT01CT0BAUUFFWFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEhJRVJfTElTVEJPWDo6RGVsZXRlSXRlbShpbnQsaW50KQ0KKz9EZWxldGVJdGVtQEhJRVJfTElTVEJPWEBAUUFFSEhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTElTVF9DT05UUk9MOjpEZWxldGVJdGVtKGludCkNCis/RGVsZXRlSXRlbUBMSVNUX0NPTlRST0xAQFFBRUhIQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIEJMVDo6RGVyZWdpc3RlckhlbHBGaWxlKHN0cnVjdCBISU5TVEFOQ0VfXyAqLHVuc2lnbmVkIGxvbmcpDQorP0RlcmVnaXN0ZXJIZWxwRmlsZUBCTFRAQFNHWFBBVUhJTlNUQU5DRV9fQEBLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFBPUFVQX01FTlU6OkRlc3Ryb3kodm9pZCkNCis/RGVzdHJveUBQT1BVUF9NRU5VQEBRQUVKWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIERJQUxPR19XSU5ET1c6OkRpc21pc3ModW5zaWduZWQgaW50KQ0KKz9EaXNtaXNzQERJQUxPR19XSU5ET1dAQElBRVhJQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIERJQUxPR19XSU5ET1c6OkRpc21pc3NNc2cobG9uZyx1bnNpZ25lZCBpbnQpDQorP0Rpc21pc3NNc2dARElBTE9HX1dJTkRPV0BASUFFWEpJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBESVNQQVRDSEVSOjpEaXNwYXRjaChjbGFzcyBFVkVOVCBjb25zdCAmLHVuc2lnbmVkIGxvbmcgKikNCis/RGlzcGF0Y2hARElTUEFUQ0hFUkBATUFFSEFCVkVWRU5UQEBQQUtAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIEhfU1BMSVRURVJfQkFSOjpEaXNwYXRjaChjbGFzcyBFVkVOVCBjb25zdCAmLHVuc2lnbmVkIGxvbmcgKikNCis/RGlzcGF0Y2hASF9TUExJVFRFUl9CQVJAQE1BRUhBQlZFVkVOVEBAUEFLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBMQl9DT0xVTU5fSEVBREVSOjpEaXNwYXRjaChjbGFzcyBFVkVOVCBjb25zdCAmLHVuc2lnbmVkIGxvbmcgKikNCis/RGlzcGF0Y2hATEJfQ09MVU1OX0hFQURFUkBATUFFSEFCVkVWRU5UQEBQQUtAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBBUFBfV0lORE9XOjpEaXNwYXRjaE1lc3NhZ2VXKGNsYXNzIEVWRU5UIGNvbnN0ICYpDQorP0Rpc3BhdGNoTWVzc2FnZVdAQVBQX1dJTkRPV0BATUFFSkFCVkVWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDTElFTlRfV0lORE9XOjpEaXNwYXRjaE1lc3NhZ2VXKGNsYXNzIEVWRU5UIGNvbnN0ICYpDQorP0Rpc3BhdGNoTWVzc2FnZVdAQ0xJRU5UX1dJTkRPV0BATUFFSkFCVkVWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBQUk9DX1RJTUVSOjpEaXNwYXRjaFRpbWVyKHZvaWQpDQorP0Rpc3BhdGNoVGltZXJAUFJPQ19USU1FUkBATUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFRJTUVSOjpEaXNwYXRjaFRpbWVyKHZvaWQpDQorP0Rpc3BhdGNoVGltZXJAVElNRVJAQE1BRVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBUSU1FUl9CQVNFOjpEaXNwYXRjaFRpbWVyKHZvaWQpDQorP0Rpc3BhdGNoVGltZXJAVElNRVJfQkFTRUBATUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFdJTkRPV19USU1FUjo6RGlzcGF0Y2hUaW1lcih2b2lkKQ0KKz9EaXNwYXRjaFRpbWVyQFdJTkRPV19USU1FUkBATUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQVBQTElDQVRJT046OkRpc3BsYXlDdEVycm9yKGxvbmcpDQorP0Rpc3BsYXlDdEVycm9yQEFQUExJQ0FUSU9OQEBBQUVYSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFNQSU5fU0xFX05VTV9WQUxJRDo6RGlzcGxheUVycm9yTXNnKHZvaWQpDQorP0Rpc3BsYXlFcnJvck1zZ0BTUElOX1NMRV9OVU1fVkFMSURAQE1BRVhYWg0KKzsgdW5zaWduZWQgaW50IF9fc3RkY2FsbCBEaXNwbGF5R2VuZXJpY0Vycm9yKGNsYXNzIE9XTklOR1dORCBjb25zdCAmLGxvbmcsbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosZW51bSBNU0dfU0VWRVJJVFkpDQorP0Rpc3BsYXlHZW5lcmljRXJyb3JAQFlHSUFCVk9XTklOR1dOREBASkpQQkcxVzRNU0dfU0VWRVJJVFlAQEBaDQorOyB1bnNpZ25lZCBpbnQgX19zdGRjYWxsIERpc3BsYXlHZW5lcmljRXJyb3IoY2xhc3MgT1dOSU5HV05EIGNvbnN0ICYsbG9uZyxsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosZW51bSBNU0dfU0VWRVJJVFkpDQorP0Rpc3BsYXlHZW5lcmljRXJyb3JAQFlHSUFCVk9XTklOR1dOREBASkpQQkdXNE1TR19TRVZFUklUWUBAQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBTUElOX1NMRV9OVU06OkRpc3BsYXlOdW0odW5zaWduZWQgbG9uZykNCis/RGlzcGxheU51bUBTUElOX1NMRV9OVU1AQEFBRVhLQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgRElBTE9HX1dJTkRPVzo6RGxnUHJvYyhzdHJ1Y3QgSFdORF9fICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxsb25nKQ0KKz9EbGdQcm9jQERJQUxPR19XSU5ET1dAQFNHSFBBVUhXTkRfX0BASUlKQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgU0VUX0NPTlRST0w6OkRvQWRkKHZvaWQpDQorP0RvQWRkQFNFVF9DT05UUk9MQEBVQUVKWFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBTRVRfQ09OVFJPTDo6RG9BZGRPclJlbW92ZShjbGFzcyBMSVNUQk9YICosY2xhc3MgTElTVEJPWCAqKQ0KKz9Eb0FkZE9yUmVtb3ZlQFNFVF9DT05UUk9MQEBBQUVKUEFWTElTVEJPWEBAMEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNQSU5fR1JPVVA6OkRvQXJyb3dDb21tYW5kKHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCkNCis/RG9BcnJvd0NvbW1hbmRAU1BJTl9HUk9VUEBAUUFFSElHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6OkRvQmFuQnV0dG9uKHZvaWQpDQorP0RvQmFuQnV0dG9uQExPR09OX0hPVVJTX0NPTlRST0xAQFFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6OkRvQnV0dG9uQ2xpY2soaW50KQ0KKz9Eb0J1dHRvbkNsaWNrQExPR09OX0hPVVJTX0NPTlRST0xAQEFBRVhIQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpEb0J1dHRvbkRvd25WaXN1YWxzKHZvaWQpDQorP0RvQnV0dG9uRG93blZpc3VhbHNATE9HT05fSE9VUlNfQ09OVFJPTEBAQUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6RG9CdXR0b25VcFZpc3VhbHMoaW50KQ0KKz9Eb0J1dHRvblVwVmlzdWFsc0BMT0dPTl9IT1VSU19DT05UUk9MQEBBQUVYSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIERJU1BBVENIRVI6OkRvQ2hhcihjbGFzcyBDSEFSX0VWRU5UIGNvbnN0ICYpDQorP0RvQ2hhckBESVNQQVRDSEVSQEBRQUVIQUJWQ0hBUl9FVkVOVEBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1BJTl9HUk9VUDo6RG9DaGFyKGNsYXNzIENIQVJfRVZFTlQgY29uc3QgJikNCis/RG9DaGFyQFNQSU5fR1JPVVBAQFFBRUhBQlZDSEFSX0VWRU5UQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTUElOX0dST1VQOjpEb05ld0ZvY3VzKGNsYXNzIFNQSU5fSVRFTSAqKQ0KKz9Eb05ld0ZvY3VzQFNQSU5fR1JPVVBAQFFBRUhQQVZTUElOX0lURU1AQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENBTkNFTF9UQVNLX0RJQUxPRzo6RG9PbmVJdGVtKHVuc2lnbmVkIGxvbmcsaW50ICosaW50ICosbG9uZyAqKQ0KKz9Eb09uZUl0ZW1AQ0FOQ0VMX1RBU0tfRElBTE9HQEBNQUVKS1BBSDBQQUpAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6RG9QZXJtaXRCdXR0b24odm9pZCkNCis/RG9QZXJtaXRCdXR0b25ATE9HT05fSE9VUlNfQ09OVFJPTEBAUUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFNFVF9DT05UUk9MOjpEb1JlbW92ZSh2b2lkKQ0KKz9Eb1JlbW92ZUBTRVRfQ09OVFJPTEBAVUFFSlhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBOVF9GSU5EX0FDQ09VTlRfRElBTE9HOjpEb1NlYXJjaCh2b2lkKQ0KKz9Eb1NlYXJjaEBOVF9GSU5EX0FDQ09VTlRfRElBTE9HQEBJQUVKWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgRElTUEFUQ0hFUjo6RG9Vc2VyTWVzc2FnZShjbGFzcyBFVkVOVCBjb25zdCAmKQ0KKz9Eb1VzZXJNZXNzYWdlQERJU1BBVENIRVJAQFFBRUhBQlZFVkVOVEBAQFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6OkRyYXdBbGxCdXR0b25zKGNsYXNzIFBBSU5UX0RJU1BMQVlfQ09OVEVYVCAmKWNvbnN0IA0KKz9EcmF3QWxsQnV0dG9uc0BMT0dPTl9IT1VSU19DT05UUk9MQEBBQkVIQUFWUEFJTlRfRElTUExBWV9DT05URVhUQEBAWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6RHJhd0JhY2tncm91bmQoY2xhc3MgUEFJTlRfRElTUExBWV9DT05URVhUICYpY29uc3QgDQorP0RyYXdCYWNrZ3JvdW5kQExPR09OX0hPVVJTX0NPTlRST0xAQEFCRUhBQVZQQUlOVF9ESVNQTEFZX0NPTlRFWFRAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6RHJhd0N1cnJlbnRTZWxlY3Rpb24oY2xhc3MgRElTUExBWV9DT05URVhUIGNvbnN0ICYpY29uc3QgDQorP0RyYXdDdXJyZW50U2VsZWN0aW9uQExPR09OX0hPVVJTX0NPTlRST0xAQEFCRVhBQlZESVNQTEFZX0NPTlRFWFRAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6RHJhd0ZvY3VzT25DZWxsKGNsYXNzIERJU1BMQVlfQ09OVEVYVCBjb25zdCAmLGludCljb25zdCANCis/RHJhd0ZvY3VzT25DZWxsQExPR09OX0hPVVJTX0NPTlRST0xAQEFCRVhBQlZESVNQTEFZX0NPTlRFWFRAQEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6OkRyYXdGb2N1c09uQ29ybmVyQnV0dG9uKGNsYXNzIERJU1BMQVlfQ09OVEVYVCBjb25zdCAmKWNvbnN0IA0KKz9EcmF3Rm9jdXNPbkNvcm5lckJ1dHRvbkBMT0dPTl9IT1VSU19DT05UUk9MQEBBQkVYQUJWRElTUExBWV9DT05URVhUQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6OkRyYXdGb2N1c09uRGF5QnV0dG9uKGNsYXNzIERJU1BMQVlfQ09OVEVYVCBjb25zdCAmLGludCljb25zdCANCis/RHJhd0ZvY3VzT25EYXlCdXR0b25ATE9HT05fSE9VUlNfQ09OVFJPTEBAQUJFWEFCVkRJU1BMQVlfQ09OVEVYVEBASEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6RHJhd0ZvY3VzT25Ib3VyQnV0dG9uKGNsYXNzIERJU1BMQVlfQ09OVEVYVCBjb25zdCAmLGludCljb25zdCANCis/RHJhd0ZvY3VzT25Ib3VyQnV0dG9uQExPR09OX0hPVVJTX0NPTlRST0xAQEFCRVhBQlZESVNQTEFZX0NPTlRFWFRAQEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgREVWSUNFX0NPTlRFWFQ6OkRyYXdGb2N1c1JlY3Qoc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiljb25zdCANCis/RHJhd0ZvY3VzUmVjdEBERVZJQ0VfQ09OVEVYVEBAUUJFWFBCVXRhZ1JFQ1RAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBGT0NVU19DSEVDS0JPWDo6RHJhd0ZvY3VzUmVjdChjbGFzcyBERVZJQ0VfQ09OVEVYVCAqLHN0cnVjdCB0YWdSRUNUICosaW50KQ0KKz9EcmF3Rm9jdXNSZWN0QEZPQ1VTX0NIRUNLQk9YQEBJQUVYUEFWREVWSUNFX0NPTlRFWFRAQFBBVXRhZ1JFQ1RAQEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6OkRyYXdGb2N1c1NvbWV3aGVyZShjbGFzcyBESVNQTEFZX0NPTlRFWFQgY29uc3QgJixpbnQpY29uc3QgDQorP0RyYXdGb2N1c1NvbWV3aGVyZUBMT0dPTl9IT1VSU19DT05UUk9MQEBBQkVYQUJWRElTUExBWV9DT05URVhUQEBIQFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6OkRyYXdHcmlkU2V0dGluZyhjbGFzcyBQQUlOVF9ESVNQTEFZX0NPTlRFWFQgJiljb25zdCANCis/RHJhd0dyaWRTZXR0aW5nQExPR09OX0hPVVJTX0NPTlRST0xAQEFCRUhBQVZQQUlOVF9ESVNQTEFZX0NPTlRFWFRAQEBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpEcmF3R3JpZFdpcmVzKGNsYXNzIFBBSU5UX0RJU1BMQVlfQ09OVEVYVCAmKWNvbnN0IA0KKz9EcmF3R3JpZFdpcmVzQExPR09OX0hPVVJTX0NPTlRST0xAQEFCRUhBQVZQQUlOVF9ESVNQTEFZX0NPTlRFWFRAQEBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBBUFBfV0lORE9XOjpEcmF3SWNvbih2b2lkKQ0KKz9EcmF3SWNvbkBBUFBfV0lORE9XQEBBQUVIWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEFQUF9XSU5ET1c6OkRyYXdNZW51QmFyKHZvaWQpY29uc3QgDQorP0RyYXdNZW51QmFyQEFQUF9XSU5ET1dAQFFCRUpYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6OkRyYXdPbmVDb3JuZXJCdXR0b24oY2xhc3MgUEFJTlRfRElTUExBWV9DT05URVhUICYsY2xhc3MgWFlSRUNUIGNvbnN0ICYsaW50LHN0cnVjdCBIQlJVU0hfXyAqLHN0cnVjdCBIUEVOX18gKixzdHJ1Y3QgSFBFTl9fICopY29uc3QgDQorP0RyYXdPbmVDb3JuZXJCdXR0b25ATE9HT05fSE9VUlNfQ09OVFJPTEBAQUJFWEFBVlBBSU5UX0RJU1BMQVlfQ09OVEVYVEBAQUJWWFlSRUNUQEBIUEFVSEJSVVNIX19AQFBBVUhQRU5fX0BAM0BaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpEcmF3T25lRGF5QmFyKGNsYXNzIFBBSU5UX0RJU1BMQVlfQ09OVEVYVCAmLGludCxpbnQsaW50LHN0cnVjdCBIQlJVU0hfXyAqKWNvbnN0IA0KKz9EcmF3T25lRGF5QmFyQExPR09OX0hPVVJTX0NPTlRST0xAQEFCRUhBQVZQQUlOVF9ESVNQTEFZX0NPTlRFWFRAQEhISFBBVUhCUlVTSF9fQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6OkRyYXdPbmVGbGF0QnV0dG9uKGNsYXNzIFBBSU5UX0RJU1BMQVlfQ09OVEVYVCAmLGNsYXNzIFhZUkVDVCBjb25zdCAmLGludCxzdHJ1Y3QgSEJSVVNIX18gKixzdHJ1Y3QgSFBFTl9fICosc3RydWN0IEhQRU5fXyAqKWNvbnN0IA0KKz9EcmF3T25lRmxhdEJ1dHRvbkBMT0dPTl9IT1VSU19DT05UUk9MQEBBQkVYQUFWUEFJTlRfRElTUExBWV9DT05URVhUQEBBQlZYWVJFQ1RAQEhQQVVIQlJVU0hfX0BAUEFVSFBFTl9fQEAzQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIERFVklDRV9DT05URVhUOjpEcmF3UmVjdChzdHJ1Y3QgdGFnUkVDVCBjb25zdCAqKWNvbnN0IA0KKz9EcmF3UmVjdEBERVZJQ0VfQ09OVEVYVEBAUUJFWFBCVXRhZ1JFQ1RAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6RHJhd1NlbGVjdGlvbk9uQ2VsbChjbGFzcyBESVNQTEFZX0NPTlRFWFQgY29uc3QgJixpbnQpY29uc3QgDQorP0RyYXdTZWxlY3Rpb25PbkNlbGxATE9HT05fSE9VUlNfQ09OVFJPTEBAQUJFWEFCVkRJU1BMQVlfQ09OVEVYVEBASEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6RHJhd1NlbGVjdGlvbk9uQ2VsbHMoY2xhc3MgRElTUExBWV9DT05URVhUIGNvbnN0ICYsaW50LGludCljb25zdCANCis/RHJhd1NlbGVjdGlvbk9uQ2VsbHNATE9HT05fSE9VUlNfQ09OVFJPTEBAQUJFWEFCVkRJU1BMQVlfQ09OVEVYVEBASEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBERVZJQ0VfQ09OVEVYVDo6RHJhd1RleHRXKGNsYXNzIE5MU19TVFIgY29uc3QgJixzdHJ1Y3QgdGFnUkVDVCAqLHVuc2lnbmVkIGludCkNCis/RHJhd1RleHRXQERFVklDRV9DT05URVhUQEBRQUVIQUJWTkxTX1NUUkBAUEFVdGFnUkVDVEBASUBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBQT1BVUDo6RW1lcmdlbmN5KHZvaWQpY29uc3QgDQorP0VtZXJnZW5jeUBQT1BVUEBAQUJFSFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBBVURJVF9DSEVDS0JPWEVTOjpFbmFibGUoaW50LGludCkNCis/RW5hYmxlQEFVRElUX0NIRUNLQk9YRVNAQFFBRVhISEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBNQUdJQ19HUk9VUDo6RW5hYmxlKGludCkNCis/RW5hYmxlQE1BR0lDX0dST1VQQEBRQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBNRU5VSVRFTTo6RW5hYmxlKGludCkNCis/RW5hYmxlQE1FTlVJVEVNQEBRQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBSQURJT19HUk9VUDo6RW5hYmxlKGludCkNCis/RW5hYmxlQFJBRElPX0dST1VQQEBRQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBTRVRfT0ZfQVVESVRfQ0FURUdPUklFUzo6RW5hYmxlKGludCxpbnQpDQorP0VuYWJsZUBTRVRfT0ZfQVVESVRfQ0FURUdPUklFU0BAUUFFWEhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFRJTUVSX0JBU0U6OkVuYWJsZShpbnQpDQorP0VuYWJsZUBUSU1FUl9CQVNFQEBRQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBXSU5ET1c6OkVuYWJsZShpbnQpDQorP0VuYWJsZUBXSU5ET1dAQFFBRVhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0c6OkVuYWJsZUJyb3dzaW5nKGludCkNCis/RW5hYmxlQnJvd3NpbmdATlRfVVNFUl9CUk9XU0VSX0RJQUxPR0BASUFFWEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgU0VUX0NPTlRST0w6OkVuYWJsZUJ1dHRvbnModm9pZCkNCis/RW5hYmxlQnV0dG9uc0BTRVRfQ09OVFJPTEBASUFFWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIE1FTlVfQkFTRTo6RW5hYmxlSXRlbSh1bnNpZ25lZCBpbnQsaW50LHVuc2lnbmVkIGludCljb25zdCANCis/RW5hYmxlSXRlbUBNRU5VX0JBU0VAQFFCRUlJSElAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU0VUX0NPTlRST0w6OkVuYWJsZU1vdmVzKGludCkNCis/RW5hYmxlTW92ZXNAU0VUX0NPTlRST0xAQFFBRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFRSSVNUQVRFOjpFbmFibGVUaGlyZFN0YXRlKGludCkNCis/RW5hYmxlVGhpcmRTdGF0ZUBUUklTVEFURUBAUUFFWEhAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQkxUSU1QOjpFbnRlckJMVENyaXRTZWN0KHZvaWQpDQorP0VudGVyQkxUQ3JpdFNlY3RAQkxUSU1QQEBTR0pYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQkxUSU1QOjpFbnRlclJlc291cmNlQ3JpdFNlY3Qodm9pZCkNCis/RW50ZXJSZXNvdXJjZUNyaXRTZWN0QEJMVElNUEBAU0dKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE1BU0tfTUFQOjpFbnVtQml0cyhjbGFzcyBCSVRGSUVMRCAqLGludCAqLGludCAqLGludCkNCis/RW51bUJpdHNATUFTS19NQVBAQFFBRUpQQVZCSVRGSUVMREBAUEFIMUhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTUFTS19NQVA6OkVudW1TdHJpbmdzKGNsYXNzIE5MU19TVFIgKixpbnQgKixpbnQgKixpbnQpDQorP0VudW1TdHJpbmdzQE1BU0tfTUFQQEBRQUVKUEFWTkxTX1NUUkBAUEFIMUhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgRk9DVVNfQ0hFQ0tCT1g6OkVyYXNlRm9jdXNSZWN0KGNsYXNzIERFVklDRV9DT05URVhUICosc3RydWN0IHRhZ1JFQ1QgKikNCis/RXJhc2VGb2N1c1JlY3RARk9DVVNfQ0hFQ0tCT1hAQElBRVhQQVZERVZJQ0VfQ09OVEVYVEBAUEFVdGFnUkVDVEBAQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpFcmFzZVNlbGVjdGlvbihjbGFzcyBESVNQTEFZX0NPTlRFWFQgY29uc3QgJikNCis/RXJhc2VTZWxlY3Rpb25ATE9HT05fSE9VUlNfQ09OVFJPTEBAQUFFWEFCVkRJU1BMQVlfQ09OVEVYVEBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIFdJTjMyX1RIUkVBRDo6RXhpdCh1bnNpZ25lZCBpbnQpDQorP0V4aXRAV0lOMzJfVEhSRUFEQEBJQUVYSUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBET01BSU5fRklMTF9USFJFQUQ6OkV4aXRUaHJlYWQodm9pZCkNCis/RXhpdFRocmVhZEBET01BSU5fRklMTF9USFJFQURAQFFBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgRk9DVVNETEdfREFUQV9USFJFQUQ6OkV4aXRUaHJlYWQodm9pZCkNCis/RXhpdFRocmVhZEBGT0NVU0RMR19EQVRBX1RIUkVBREBAUUFFSlhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBISUVSX0xJU1RCT1g6OkV4cGFuZENoaWxkcmVuKGludCxjbGFzcyBISUVSX0xCSSAqKQ0KKz9FeHBhbmRDaGlsZHJlbkBISUVSX0xJU1RCT1hAQEFBRUhIUEFWSElFUl9MQklAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMTV9PTExCOjpFeHBhbmREb21haW4oaW50KQ0KKz9FeHBhbmREb21haW5ATE1fT0xMQkBAUUFFSkhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTE1fT0xMQjo6RXhwYW5kRG9tYWluKHZvaWQpDQorP0V4cGFuZERvbWFpbkBMTV9PTExCQEBRQUVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEhJRVJfTElTVEJPWDo6RXhwYW5kSXRlbShpbnQpDQorP0V4cGFuZEl0ZW1ASElFUl9MSVNUQk9YQEBRQUVKSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBISUVSX0xJU1RCT1g6OkV4cGFuZEl0ZW0oY2xhc3MgSElFUl9MQkkgKikNCis/RXhwYW5kSXRlbUBISUVSX0xJU1RCT1hAQFFBRUpQQVZISUVSX0xCSUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgREVWSUNFX0NPTlRFWFQ6OkV4dFRleHRPdXRXKGludCxpbnQsdW5zaWduZWQgaW50LHN0cnVjdCB0YWdSRUNUIGNvbnN0ICosY2xhc3MgTkxTX1NUUiBjb25zdCAmLGludCAqKQ0KKz9FeHRUZXh0T3V0V0BERVZJQ0VfQ09OVEVYVEBAUUFFSEhISVBCVXRhZ1JFQ1RAQEFCVk5MU19TVFJAQFBBSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIERFVklDRV9DT05URVhUOjpFeHRUZXh0T3V0VyhpbnQsaW50LHVuc2lnbmVkIGludCxzdHJ1Y3QgdGFnUkVDVCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50LGludCAqKQ0KKz9FeHRUZXh0T3V0V0BERVZJQ0VfQ09OVEVYVEBAUUFFSEhISVBCVXRhZ1JFQ1RAQFBCR0hQQUhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTlRfR1JPVVBfQlJPV1NFUl9MQjo6RmlsbCh2b2lkICogY29uc3QgKix1bnNpZ25lZCBsb25nLGNsYXNzIFNBTV9ET01BSU4gY29uc3QgKixjbGFzcyBMU0FfUE9MSUNZICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/RmlsbEBOVF9HUk9VUF9CUk9XU0VSX0xCQEBRQUVKUEJRQVhLUEJWU0FNX0RPTUFJTkBAUEFWTFNBX1BPTElDWUBAUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE9QRU5fTEJPWF9CQVNFOjpGaWxsKHZvaWQpDQorP0ZpbGxAT1BFTl9MQk9YX0JBU0VAQFFBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVVNFUl9CUk9XU0VSX0xCSV9DQUNIRTo6RmlsbChjbGFzcyBBRE1JTl9BVVRIT1JJVFkgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsaW50LGludCxpbnQgKikNCis/RmlsbEBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFQEBRQUVKUEFWQURNSU5fQVVUSE9SSVRZQEBQQkdLSEhQQUhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgTE1fT0xMQjo6RmlsbEFsbEluZm8oY2xhc3MgQlJPV1NFX0RPTUFJTl9FTlVNICosY2xhc3MgU0VSVkVSMV9FTlVNICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/RmlsbEFsbEluZm9ATE1fT0xMQkBAUUFFWFBBVkJST1dTRV9ET01BSU5fRU5VTUBAUEFWU0VSVkVSMV9FTlVNQEBQQkdAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIE1TR1BPUFVQX0RJQUxPRzo6RmlsbEJ1dHRvbkFycmF5KHVuc2lnbmVkIGludCxpbnQgKixpbnQgKikNCis/RmlsbEJ1dHRvbkFycmF5QE1TR1BPUFVQX0RJQUxPR0BAQUFFWElQQUgwQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBERVZJQ0VfQ09NQk86OkZpbGxEZXZpY2VzKHZvaWQpDQorP0ZpbGxEZXZpY2VzQERFVklDRV9DT01CT0BAQUFFSlhaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgTE1fT0xMQjo6RmlsbERvbWFpbnModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9GaWxsRG9tYWluc0BMTV9PTExCQEBBQUVKS1BCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBOVF9HUk9VUF9CUk9XU0VSX0xCOjpGaWxsR2xvYmFsR3JvdXBNZW1iZXJzKGNsYXNzIE9TX1NJRCBjb25zdCAqLGNsYXNzIFNBTV9ET01BSU4gY29uc3QgKixjbGFzcyBTQU1fRE9NQUlOIGNvbnN0ICosY2xhc3MgTFNBX1BPTElDWSAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0ZpbGxHbG9iYWxHcm91cE1lbWJlcnNATlRfR1JPVVBfQlJPV1NFUl9MQkBAUUFFSlBCVk9TX1NJREBAUEJWU0FNX0RPTUFJTkBAMVBBVkxTQV9QT0xJQ1lAQFBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBOVF9HUk9VUF9CUk9XU0VSX0xCOjpGaWxsTG9jYWxHcm91cE1lbWJlcnMoY2xhc3MgT1NfU0lEIGNvbnN0ICosY2xhc3MgU0FNX0RPTUFJTiBjb25zdCAqLGNsYXNzIFNBTV9ET01BSU4gY29uc3QgKixjbGFzcyBMU0FfUE9MSUNZICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/RmlsbExvY2FsR3JvdXBNZW1iZXJzQE5UX0dST1VQX0JST1dTRVJfTEJAQFFBRUpQQlZPU19TSURAQFBCVlNBTV9ET01BSU5AQDFQQVZMU0FfUE9MSUNZQEBQQkdAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIExNX09MTEI6OkZpbGxTZXJ2ZXJzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50ICopDQorP0ZpbGxTZXJ2ZXJzQExNX09MTEJAQEFBRUpQQkdQQUlAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIERJQUxPR19XSU5ET1c6OkZpbHRlck1lc3NhZ2Uoc3RydWN0IHRhZ01TRyAqKQ0KKz9GaWx0ZXJNZXNzYWdlQERJQUxPR19XSU5ET1dAQE1BRUhQQVV0YWdNU0dAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgSEFTX01FU1NBR0VfUFVNUDo6RmlsdGVyTWVzc2FnZShzdHJ1Y3QgdGFnTVNHICopDQorP0ZpbHRlck1lc3NhZ2VASEFTX01FU1NBR0VfUFVNUEBATUFFSFBBVXRhZ01TR0BAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQVJSQVlfTElTVF9DT05UUk9MVkFMX0NJRF9QQUlSOjpGaW5kKGNsYXNzIENPTlRST0xWQUxfQ0lEX1BBSVIgY29uc3QgJiljb25zdCANCis/RmluZEBBUlJBWV9MSVNUX0NPTlRST0xWQUxfQ0lEX1BBSVJAQFFCRUhBQlZDT05UUk9MVkFMX0NJRF9QQUlSQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgRElBTE9HX1dJTkRPVyAqIF9fc3RkY2FsbCBIV05EX0RMR1BUUl9DQUNIRTo6RmluZChzdHJ1Y3QgSFdORF9fICopDQorP0ZpbmRASFdORF9ETEdQVFJfQ0FDSEVAQFNHUEFWRElBTE9HX1dJTkRPV0BAUEFVSFdORF9fQEBAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTUFHSUNfR1JPVVA6OkZpbmRBc3NvY1JhZGlvQnV0dG9uKGNsYXNzIENPTlRST0xfVkFMVUUgKikNCis/RmluZEFzc29jUmFkaW9CdXR0b25ATUFHSUNfR1JPVVBAQEFBRUlQQVZDT05UUk9MX1ZBTFVFQEBAWg0KKzsgcHVibGljOiBjbGFzcyBCUk9XU0VSX0RPTUFJTiAqIF9fdGhpc2NhbGwgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6RmluZERvbWFpbihjbGFzcyBPU19TSUQgY29uc3QgKikNCis/RmluZERvbWFpbkBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRQUVQQVZCUk9XU0VSX0RPTUFJTkBAUEJWT1NfU0lEQEBAWg0KKzsgcHVibGljOiBjbGFzcyBVSV9FWFQgKiBfX3RoaXNjYWxsIFVJX0VYVF9NR1I6OkZpbmRFeHRlbnNpb25CeURlbHRhKHVuc2lnbmVkIGxvbmcpDQorP0ZpbmRFeHRlbnNpb25CeURlbHRhQFVJX0VYVF9NR1JAQFFBRVBBVlVJX0VYVEBAS0BaDQorOyBwdWJsaWM6IGNsYXNzIFVJX0VYVCAqIF9fdGhpc2NhbGwgVUlfRVhUX01HUjo6RmluZEV4dGVuc2lvbkJ5TmFtZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9GaW5kRXh0ZW5zaW9uQnlOYW1lQFVJX0VYVF9NR1JAQFFBRVBBVlVJX0VYVEBAUEJHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQkxUX0xJU1RCT1g6OkZpbmRJdGVtKGNsYXNzIExCSSBjb25zdCAmKWNvbnN0IA0KKz9GaW5kSXRlbUBCTFRfTElTVEJPWEBAUUJFSEFCVkxCSUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT1VUTElORV9MSVNUQk9YOjpGaW5kSXRlbSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP0ZpbmRJdGVtQE9VVExJTkVfTElTVEJPWEBAUUJFSFBCRzBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJJTkdfTElTVF9DT05UUk9MOjpGaW5kSXRlbSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9GaW5kSXRlbUBTVFJJTkdfTElTVF9DT05UUk9MQEBRQkVIUEJHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSSU5HX0xJU1RfQ09OVFJPTDo6RmluZEl0ZW0odW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpY29uc3QgDQorP0ZpbmRJdGVtQFNUUklOR19MSVNUX0NPTlRST0xAQFFCRUhQQkdIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSSU5HX0xJU1RfQ09OVFJPTDo6RmluZEl0ZW1FeGFjdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9GaW5kSXRlbUV4YWN0QFNUUklOR19MSVNUX0NPTlRST0xAQFFCRUhQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJJTkdfTElTVF9DT05UUk9MOjpGaW5kSXRlbUV4YWN0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KWNvbnN0IA0KKz9GaW5kSXRlbUV4YWN0QFNUUklOR19MSVNUX0NPTlRST0xAQFFCRUhQQkdIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIERFVklDRV9DT05URVhUOjpGcmFtZVJlY3Qoc3RydWN0IHRhZ1JFQ1QgY29uc3QgKixzdHJ1Y3QgSEJSVVNIX18gKiljb25zdCANCis/RnJhbWVSZWN0QERFVklDRV9DT05URVhUQEBRQkVYUEJVdGFnUkVDVEBAUEFVSEJSVVNIX19AQEBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBTUElOX1NMRV9TVFI6OkdldEFjY0tleShjbGFzcyBOTFNfU1RSICopDQorP0dldEFjY0tleUBTUElOX1NMRV9TVFJAQEVBRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBTUElOX1NMVF9TRVBBUkFUT1I6OkdldEFjY0tleShjbGFzcyBOTFNfU1RSICopDQorP0dldEFjY0tleUBTUElOX1NMVF9TRVBBUkFUT1JAQE1BRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIE1TR19ESUFMT0dfQkFTRTo6R2V0QW5kU2VuZFRleHQodm9pZCkNCis/R2V0QW5kU2VuZFRleHRATVNHX0RJQUxPR19CQVNFQEBBQUVKWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIERFVklDRV9DT05URVhUOjpHZXRCa0NvbG9yKHZvaWQpY29uc3QgDQorP0dldEJrQ29sb3JAREVWSUNFX0NPTlRFWFRAQFFCRUtYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQlJPV1NFUl9ET01BSU46OkdldERvbWFpbkluZm8oY2xhc3MgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRyAqLGNsYXNzIEFETUlOX0FVVEhPUklUWSBjb25zdCAqKQ0KKz9HZXREb21haW5JbmZvQEJST1dTRVJfRE9NQUlOQEBRQUVKUEFWTlRfVVNFUl9CUk9XU0VSX0RJQUxPR0BAUEJWQURNSU5fQVVUSE9SSVRZQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVUlfRE9NQUlOOjpHZXRJbmZvKHZvaWQpDQorP0dldEluZm9AVUlfRE9NQUlOQEBRQUVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEFQUF9XSU5ET1c6OkdldFBsYWNlbWVudChzdHJ1Y3QgdGFnV0lORE9XUExBQ0VNRU5UICopY29uc3QgDQorP0dldFBsYWNlbWVudEBBUFBfV0lORE9XQEBRQkVKUEFVdGFnV0lORE9XUExBQ0VNRU5UQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQlJPV1NFUl9ET01BSU46OkdldFF1YWxpZmllZERvbWFpbk5hbWUoY2xhc3MgTkxTX1NUUiAqKQ0KKz9HZXRRdWFsaWZpZWREb21haW5OYW1lQEJST1dTRVJfRE9NQUlOQEBRQUVKUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEJST1dTRVJfRE9NQUlOX0xCSV9QQjo6R2V0UXVhbGlmaWVkRG9tYWluTmFtZShjbGFzcyBOTFNfU1RSICopDQorP0dldFF1YWxpZmllZERvbWFpbk5hbWVAQlJPV1NFUl9ET01BSU5fTEJJX1BCQEBRQUVKUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIERFVklDRV9DT05URVhUOjpHZXRUZXh0Q29sb3Iodm9pZCljb25zdCANCis/R2V0VGV4dENvbG9yQERFVklDRV9DT05URVhUQEBRQkVLWFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIERJU1BMQVlfTUFQOjpHZXRUcmFuc0NvbG9ySW5kZXgodW5zaWduZWQgbG9uZyAqLGludCljb25zdCANCis/R2V0VHJhbnNDb2xvckluZGV4QERJU1BMQVlfTUFQQEBBQkVIUEFLSEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpHZXRUcnVzdGVkRG9tYWluTGlzdCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIEJST1dTRVJfRE9NQUlOICogKixjbGFzcyBCUk9XU0VSX0RPTUFJTl9DQiAqLGNsYXNzIEFETUlOX0FVVEhPUklUWSBjb25zdCAqKQ0KKz9HZXRUcnVzdGVkRG9tYWluTGlzdEBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBJQUVKUEJHUEFQQVZCUk9XU0VSX0RPTUFJTkBAUEFWQlJPV1NFUl9ET01BSU5fQ0JAQFBCVkFETUlOX0FVVEhPUklUWUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU0VUX0NPTlRST0w6OkhhbmRsZU9uTE1vdXNlQnV0dG9uRG93bihjbGFzcyBMSVNUQk9YICosY2xhc3MgQ1VTVE9NX0NPTlRST0wgKixjbGFzcyBNT1VTRV9FVkVOVCBjb25zdCAmKQ0KKz9IYW5kbGVPbkxNb3VzZUJ1dHRvbkRvd25AU0VUX0NPTlRST0xAQFFBRUhQQVZMSVNUQk9YQEBQQVZDVVNUT01fQ09OVFJPTEBAQUJWTU9VU0VfRVZFTlRAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNFVF9DT05UUk9MOjpIYW5kbGVPbkxNb3VzZUJ1dHRvblVwKGNsYXNzIExJU1RCT1ggKixjbGFzcyBDVVNUT01fQ09OVFJPTCAqLGNsYXNzIE1PVVNFX0VWRU5UIGNvbnN0ICYpDQorP0hhbmRsZU9uTE1vdXNlQnV0dG9uVXBAU0VUX0NPTlRST0xAQFFBRUhQQVZMSVNUQk9YQEBQQVZDVVNUT01fQ09OVFJPTEBAQUJWTU9VU0VfRVZFTlRAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNFVF9DT05UUk9MOjpIYW5kbGVPbk1vdXNlTW92ZShjbGFzcyBMSVNUQk9YICosY2xhc3MgTU9VU0VfRVZFTlQgY29uc3QgJikNCis/SGFuZGxlT25Nb3VzZU1vdmVAU0VUX0NPTlRST0xAQFFBRUhQQVZMSVNUQk9YQEBBQlZNT1VTRV9FVkVOVEBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgSElFUl9MQkk6Okhhc0NoaWxkcmVuKHZvaWQpDQorP0hhc0NoaWxkcmVuQEhJRVJfTEJJQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV0lORE9XOjpIYXNGb2N1cyh2b2lkKWNvbnN0IA0KKz9IYXNGb2N1c0BXSU5ET1dAQFFCRUhYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgRElTUEFUQ0hFUiAqIF9fc3RkY2FsbCBBU1NPQ0hXTkRESVNQOjpId25kVG9QZGlzcGF0Y2goc3RydWN0IEhXTkRfXyAqKQ0KKz9Id25kVG9QZGlzcGF0Y2hAQVNTT0NIV05ERElTUEBAU0dQQVZESVNQQVRDSEVSQEBQQVVIV05EX19AQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBESUFMT0dfV0lORE9XICogX19zdGRjYWxsIEFTU09DSFdORFBETEc6Okh3bmRUb1BkbGcoc3RydWN0IEhXTkRfXyAqKQ0KKz9Id25kVG9QZGxnQEFTU09DSFdORFBETEdAQFNHUEFWRElBTE9HX1dJTkRPV0BAUEFVSFdORF9fQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgQ0xJRU5UX1dJTkRPVyAqIF9fc3RkY2FsbCBBU1NPQ0hXTkRQV05EOjpId25kVG9Qd25kKHN0cnVjdCBIV05EX18gKikNCis/SHduZFRvUHduZEBBU1NPQ0hXTkRQV05EQEBTR1BBVkNMSUVOVF9XSU5ET1dAQFBBVUhXTkRfX0BAQFoNCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDTElFTlRfV0lORE9XICogX19zdGRjYWxsIENMSUVOVF9XSU5ET1c6Okh3bmRUb1B3bmQoc3RydWN0IEhXTkRfXyAqKQ0KKz9Id25kVG9Qd25kQENMSUVOVF9XSU5ET1dAQENHUEFWMUBQQVVIV05EX19AQEBaDQorOyBwcml2YXRlOiBzdGF0aWMgY2xhc3MgRElBTE9HX1dJTkRPVyAqIF9fc3RkY2FsbCBESUFMT0dfV0lORE9XOjpId25kVG9Qd25kKHN0cnVjdCBIV05EX18gKikNCis/SHduZFRvUHduZEBESUFMT0dfV0lORE9XQEBDR1BBVjFAUEFVSFdORF9fQEBAWg0KKzsgcHJvdGVjdGVkOiBzdGF0aWMgY2xhc3MgRElTUEFUQ0hFUiAqIF9fc3RkY2FsbCBESVNQQVRDSEVSOjpId25kVG9Qd25kKHN0cnVjdCBIV05EX18gKikNCis/SHduZFRvUHduZEBESVNQQVRDSEVSQEBLR1BBVjFAUEFVSFdORF9fQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCAqIF9fc3RkY2FsbCBBU1NPQ0hXTkRUSElTOjpId25kVG9UaGlzKHN0cnVjdCBIV05EX18gKikNCis/SHduZFRvVGhpc0BBU1NPQ0hXTkRUSElTQEBTR1BBWFBBVUhXTkRfX0BAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQkFTRV9TRVRfRk9DVVNfRExHOjpJblJhc01vZGUodm9pZCljb25zdCANCis/SW5SYXNNb2RlQEJBU0VfU0VUX0ZPQ1VTX0RMR0BAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFhZUE9JTlQ6OkluUmVjdChjbGFzcyBYWVJFQ1QgY29uc3QgJiljb25zdCANCis/SW5SZWN0QFhZUE9JTlRAQFFCRUhBQlZYWVJFQ1RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENPTlRST0xfV0lORE9XOjpJbmRpY2F0ZUVycm9yKGxvbmcpDQorP0luZGljYXRlRXJyb3JAQ09OVFJPTF9XSU5ET1dAQFVBRVhKQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgU0xFOjpJbmRpY2F0ZUVycm9yKGxvbmcpDQorP0luZGljYXRlRXJyb3JAU0xFQEBVQUVYSkBaDQorOyBwdWJsaWM6IGNsYXNzIFhZUkVDVCAmIF9fdGhpc2NhbGwgWFlSRUNUOjpJbmZsYXRlKGludCxpbnQpDQorP0luZmxhdGVAWFlSRUNUQEBRQUVBQVYxQEhIQFoNCis7IHB1YmxpYzogY2xhc3MgWFlSRUNUICYgX190aGlzY2FsbCBYWVJFQ1Q6OkluZmxhdGUoY2xhc3MgWFlESU1FTlNJT04pDQorP0luZmxhdGVAWFlSRUNUQEBRQUVBQVYxQFZYWURJTUVOU0lPTkBAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIEJBU0VfRUxMSVBTSVM6OkluaXQodm9pZCkNCis/SW5pdEBCQVNFX0VMTElQU0lTQEBTR0pYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQkxUOjpJbml0KHN0cnVjdCBISU5TVEFOQ0VfXyAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/SW5pdEBCTFRAQFNHSlBBVUhJTlNUQU5DRV9fQEBJSUlJQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIEJMVElNUDo6SW5pdCh2b2lkKQ0KKz9Jbml0QEJMVElNUEBAU0dKWFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIEJMVF9NQVNURVJfVElNRVI6OkluaXQodm9pZCkNCis/SW5pdEBCTFRfTUFTVEVSX1RJTUVSQEBTR0pYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ0xJRU5UX1dJTkRPVzo6SW5pdCh2b2lkKQ0KKz9Jbml0QENMSUVOVF9XSU5ET1dAQFNHSlhaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBQT1BVUDo6SW5pdCh2b2lkKQ0KKz9Jbml0QFBPUFVQQEBTR0pYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0xFX1NUUkxCX0dST1VQOjpJbml0KGNsYXNzIFNUUkxJU1QgKikNCis/SW5pdEBTTEVfU1RSTEJfR1JPVVBAQFFBRUpQQVZTVFJMSVNUQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgV0lOMzJfRk9OVF9QSUNLRVI6OkluaXRDSE9PU0VGT05UKHN0cnVjdCB0YWdDSE9PU0VGT05UVyAqLHN0cnVjdCB0YWdMT0dGT05UVyAqLHN0cnVjdCBIV05EX18gKikNCis/SW5pdENIT09TRUZPTlRAV0lOMzJfRk9OVF9QSUNLRVJAQFNHWFBBVXRhZ0NIT09TRUZPTlRXQEBQQVV0YWdMT0dGT05UV0BAUEFVSFdORF9fQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQkxUOjpJbml0RExMKHZvaWQpDQorP0luaXRETExAQkxUQEBTR0pYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgR0VUX0ZOQU1FX0JBU0VfRExHOjpJbml0aWFsT0ZOKHZvaWQpDQorP0luaXRpYWxPRk5AR0VUX0ZOQU1FX0JBU0VfRExHQEBJQUVYWFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBTUElOX1NMRV9TVFI6OkluaXRpYWxpemUobG9uZyxjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQpDQorP0luaXRpYWxpemVAU1BJTl9TTEVfU1RSQEBBQUVKSlBBVk9XTkVSX1dJTkRPV0BASUBaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgU1BJTl9TTEVfU1RSOjpJbml0aWFsaXplKHVuc2lnbmVkIHNob3J0IGNvbnN0ICogKiBjb25zdCxjbGFzcyBPV05FUl9XSU5ET1cgKix1bnNpZ25lZCBpbnQpDQorP0luaXRpYWxpemVAU1BJTl9TTEVfU1RSQEBBQUVKUUFQQkdQQVZPV05FUl9XSU5ET1dAQElAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIFNQSU5fU0xUX1NFUEFSQVRPUjo6SW5pdGlhbGl6ZSh2b2lkKQ0KKz9Jbml0aWFsaXplQFNQSU5fU0xUX1NFUEFSQVRPUkBAQUFFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBNRU5VX0JBU0U6Okluc2VydCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9JbnNlcnRATUVOVV9CQVNFQEBRQkVKUEJHSUlJQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE1FTlVfQkFTRTo6SW5zZXJ0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50LHN0cnVjdCBITUVOVV9fICosdW5zaWduZWQgaW50KWNvbnN0IA0KKz9JbnNlcnRATUVOVV9CQVNFQEBRQkVKUEJHSVBBVUhNRU5VX19AQElAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBCTFRfTElTVEJPWDo6SW5zZXJ0SXRlbShpbnQsY2xhc3MgTEJJICopDQorP0luc2VydEl0ZW1AQkxUX0xJU1RCT1hAQFFBRUhIUEFWTEJJQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJJTkdfTElTVF9DT05UUk9MOjpJbnNlcnRJdGVtKGludCxjbGFzcyBOTFNfU1RSIGNvbnN0ICYpDQorP0luc2VydEl0ZW1AU1RSSU5HX0xJU1RfQ09OVFJPTEBAUUFFSEhBQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVFJJTkdfTElTVF9DT05UUk9MOjpJbnNlcnRJdGVtKGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9JbnNlcnRJdGVtQFNUUklOR19MSVNUX0NPTlRST0xAQFFBRUhIUEJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgTElTVF9DT05UUk9MOjpJbnNlcnRJdGVtRGF0YShpbnQsdm9pZCAqKQ0KKz9JbnNlcnRJdGVtRGF0YUBMSVNUX0NPTlRST0xAQElBRUhIUEFYQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5MU19TVFI6Okluc2VydFBhcmFtcyhjbGFzcyBOTFNfU1RSIGNvbnN0ICYpDQorP0luc2VydFBhcmFtc0BOTFNfU1RSQEBRQUVKQUJWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTUVOVV9CQVNFOjpJbnNlcnRTZXBhcmF0b3IodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCANCis/SW5zZXJ0U2VwYXJhdG9yQE1FTlVfQkFTRUBAUUJFSklJQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEJMVF9NQVNURVJfVElNRVI6Okluc2VydFRpbWVyKGNsYXNzIFRJTUVSX0JBU0UgKikNCis/SW5zZXJ0VGltZXJAQkxUX01BU1RFUl9USU1FUkBAUUFFSlBBVlRJTUVSX0JBU0VAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBXSU5ET1c6OkludmFsaWRhdGUoY2xhc3MgWFlSRUNUIGNvbnN0ICYpDQorP0ludmFsaWRhdGVAV0lORE9XQEBRQUVYQUJWWFlSRUNUQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgV0lORE9XOjpJbnZhbGlkYXRlKGludCkNCis/SW52YWxpZGF0ZUBXSU5ET1dAQFFBRVhIQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpJbnZhbGlkYXRlQnV0dG9uKGludCkNCis/SW52YWxpZGF0ZUJ1dHRvbkBMT0dPTl9IT1VSU19DT05UUk9MQEBBQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBMSVNUQk9YOjpJbnZhbGlkYXRlSXRlbShpbnQsaW50KQ0KKz9JbnZhbGlkYXRlSXRlbUBMSVNUQk9YQEBRQUVYSEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIEhfU1BMSVRURVJfQkFSOjpJbnZlcnREcmFnQmFyKGNsYXNzIFhZUE9JTlQgY29uc3QgJikNCis/SW52ZXJ0RHJhZ0JhckBIX1NQTElUVEVSX0JBUkBAQUFFWEFCVlhZUE9JTlRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBERVZJQ0VfQ09OVEVYVDo6SW52ZXJ0UmVjdChzdHJ1Y3QgdGFnUkVDVCBjb25zdCAqKWNvbnN0IA0KKz9JbnZlcnRSZWN0QERFVklDRV9DT05URVhUQEBRQkVYUEJVdGFnUkVDVEBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgSU5UTF9QUk9GSUxFOjpJczI0SG91cih2b2lkKWNvbnN0IA0KKz9JczI0SG91ckBJTlRMX1BST0ZJTEVAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBBQ1RJVkFUSU9OX0VWRU5UOjpJc0FjdGl2YXRpbmcodm9pZCljb25zdCANCis/SXNBY3RpdmF0aW5nQEFDVElWQVRJT05fRVZFTlRAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTUElOX0dST1VQOjpJc0FjdGl2ZSh2b2lkKWNvbnN0IA0KKz9Jc0FjdGl2ZUBTUElOX0dST1VQQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQVNTT0NIQ0ZJTEU6OklzQXNzb2NpYXRlZEhDKHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP0lzQXNzb2NpYXRlZEhDQEFTU09DSENGSUxFQEBRQkVIS0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIEhFQVBfQkFTRTo6SXNBdXRvUmVhZGp1c3Rpbmcodm9pZCljb25zdCANCis/SXNBdXRvUmVhZGp1c3RpbmdASEVBUF9CQVNFQEBJQkVIWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6SXNCcm93c2luZ0VuYWJsZWQodm9pZCljb25zdCANCis/SXNCcm93c2luZ0VuYWJsZWRATlRfVVNFUl9CUk9XU0VSX0RJQUxPR0BASUJFSFhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpJc0J1dHRvbkFDZWxsKGludCljb25zdCANCis/SXNCdXR0b25BQ2VsbEBMT0dPTl9IT1VSU19DT05UUk9MQEBBQkVISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1FTlVJVEVNOjpJc0NoZWNrZWQodm9pZCljb25zdCANCis/SXNDaGVja2VkQE1FTlVJVEVNQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV0lORE9XOjpJc0NoaWxkKHZvaWQpY29uc3QgDQorP0lzQ2hpbGRAV0lORE9XQEBRQkVIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgV0lORE9XOjpJc0NsaWVudEdlbmVyYXRlZE1lc3NhZ2Uodm9pZCkNCis/SXNDbGllbnRHZW5lcmF0ZWRNZXNzYWdlQFdJTkRPV0BAU0dIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTElTVF9DT05UUk9MOjpJc0NvbWJvKHZvaWQpY29uc3QgDQorP0lzQ29tYm9ATElTVF9DT05UUk9MQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgUFJPTVBUX0FORF9DT05ORUNUOjpJc0Nvbm5lY3RlZCh2b2lkKQ0KKz9Jc0Nvbm5lY3RlZEBQUk9NUFRfQU5EX0NPTk5FQ1RAQFFBRUhYWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgQkxUX0RBVEVfU1BJTl9HUk9VUDo6SXNDb25zdHJ1Y3Rpb25GYWlsKGNsYXNzIENPTlRST0xfV0lORE9XICopDQorP0lzQ29uc3RydWN0aW9uRmFpbEBCTFRfREFURV9TUElOX0dST1VQQEBBQUVIUEFWQ09OVFJPTF9XSU5ET1dAQEBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBCTFRfVElNRV9TUElOX0dST1VQOjpJc0NvbnN0cnVjdGlvbkZhaWwoY2xhc3MgQ09OVFJPTF9XSU5ET1cgKikNCis/SXNDb25zdHJ1Y3Rpb25GYWlsQEJMVF9USU1FX1NQSU5fR1JPVVBAQEFBRUhQQVZDT05UUk9MX1dJTkRPV0BAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgSU5UTF9QUk9GSUxFOjpJc0RheUxaZXJvKHZvaWQpY29uc3QgDQorP0lzRGF5TFplcm9ASU5UTF9QUk9GSUxFQEBRQkVIWFoNCis7IHByaXZhdGU6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgSElFUl9MQkk6OklzRGVzdHJveWFibGUodm9pZCkNCis/SXNEZXN0cm95YWJsZUBISUVSX0xCSUBARUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgTEJJOjpJc0Rlc3Ryb3lhYmxlKHZvaWQpDQorP0lzRGVzdHJveWFibGVATEJJQEBNQUVIWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6SXNEb21haW5Db21ib0Ryb3BwZWQodm9pZCljb25zdCANCis/SXNEb21haW5Db21ib0Ryb3BwZWRATlRfVVNFUl9CUk9XU0VSX0RJQUxPR0BASUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENPTUJPQk9YOjpJc0Ryb3BEb3duKHZvaWQpY29uc3QgDQorP0lzRHJvcERvd25AQ09NQk9CT1hAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDT01CT0JPWDo6SXNEcm9wRG93bkxpc3Qodm9pZCljb25zdCANCis/SXNEcm9wRG93bkxpc3RAQ09NQk9CT1hAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBCTFRfQ09NQk9CT1g6OklzRHJvcHBlZCh2b2lkKWNvbnN0IA0KKz9Jc0Ryb3BwZWRAQkxUX0NPTUJPQk9YQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgWFlSRUNUOjpJc0VtcHR5KHZvaWQpY29uc3QgDQorP0lzRW1wdHlAWFlSRUNUQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTUVOVUlURU06OklzRW5hYmxlZCh2b2lkKWNvbnN0IA0KKz9Jc0VuYWJsZWRATUVOVUlURU1AQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBUSU1FUl9CQVNFOjpJc0VuYWJsZWQodm9pZCljb25zdCANCis/SXNFbmFibGVkQFRJTUVSX0JBU0VAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBXSU5ET1c6OklzRW5hYmxlZCh2b2lkKWNvbnN0IA0KKz9Jc0VuYWJsZWRAV0lORE9XQEBRQkVIWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgQkFTRV9TRVRfRk9DVVNfRExHOjpJc0V4cGFuZGVkKHZvaWQpY29uc3QgDQorP0lzRXhwYW5kZWRAQkFTRV9TRVRfRk9DVVNfRExHQEBJQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT0xMQl9FTlRSWTo6SXNFeHBhbmRlZCh2b2lkKWNvbnN0IA0KKz9Jc0V4cGFuZGVkQE9MTEJfRU5UUllAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBBVURJVF9DSEVDS0JPWEVTOjpJc0ZhaWxlZENoZWNrZWQodm9pZCkNCis/SXNGYWlsZWRDaGVja2VkQEFVRElUX0NIRUNLQk9YRVNAQFFBRUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDQU5DRUxfVEFTS19ESUFMT0c6OklzRmluaXNoZWQodm9pZCljb25zdCANCis/SXNGaW5pc2hlZEBDQU5DRUxfVEFTS19ESUFMT0dAQElCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBHRVRfRk5BTUVfQkFTRV9ETEc6OklzSGVscEFjdGl2ZSh2b2lkKQ0KKz9Jc0hlbHBBY3RpdmVAR0VUX0ZOQU1FX0JBU0VfRExHQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgSU5UTF9QUk9GSUxFOjpJc0hvdXJMWmVybyh2b2lkKWNvbnN0IA0KKz9Jc0hvdXJMWmVyb0BJTlRMX1BST0ZJTEVAQFFCRUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDQU5DRUxfVEFTS19ESUFMT0c6OklzSW5UaW1lcih2b2lkKWNvbnN0IA0KKz9Jc0luVGltZXJAQ0FOQ0VMX1RBU0tfRElBTE9HQEBJQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQlJPV1NFUl9ET01BSU46OklzSW5pdGlhbGl6ZWQodm9pZCljb25zdCANCis/SXNJbml0aWFsaXplZEBCUk9XU0VSX0RPTUFJTkBAUUJFSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgVVNFUl9MQklfQ0FDSEU6OklzSXRlbUF2YWlsYWJsZShpbnQpDQorP0lzSXRlbUF2YWlsYWJsZUBVU0VSX0xCSV9DQUNIRUBAVUFFSEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBMSVNUX0NPTlRST0w6OklzSXRlbVNlbGVjdGVkKHVuc2lnbmVkIGludCljb25zdCANCis/SXNJdGVtU2VsZWN0ZWRATElTVF9DT05UUk9MQEBRQkVISUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFJBRElPX0dST1VQOjpJc01lbWJlcih1bnNpZ25lZCBpbnQpDQorP0lzTWVtYmVyQFJBRElPX0dST1VQQEBRQUVISUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENMSUVOVF9XSU5ET1c6OklzTWluaW1pemVkKHZvaWQpY29uc3QgDQorP0lzTWluaW1pemVkQENMSUVOVF9XSU5ET1dAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTUElOX0dST1VQOjpJc01vZGlmaWVkKHZvaWQpY29uc3QgDQorP0lzTW9kaWZpZWRAU1BJTl9HUk9VUEBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIElOVExfUFJPRklMRTo6SXNNb250aExaZXJvKHZvaWQpY29uc3QgDQorP0lzTW9udGhMWmVyb0BJTlRMX1BST0ZJTEVAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBMSVNUX0NPTlRST0w6OklzTXVsdFNlbCh2b2lkKWNvbnN0IA0KKz9Jc011bHRTZWxATElTVF9DT05UUk9MQEBRQkVIWFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIFNFVF9DT05UUk9MOjpJc09uRHJhZ1N0YXJ0KGNsYXNzIExJU1RCT1ggKixjbGFzcyBMSVNUQk9YICosY2xhc3MgWFlQT0lOVCBjb25zdCAmKWNvbnN0IA0KKz9Jc09uRHJhZ1N0YXJ0QFNFVF9DT05UUk9MQEBBQkVIUEFWTElTVEJPWEBAMEFCVlhZUE9JTlRAQEBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBTRVRfQ09OVFJPTDo6SXNPblNlbGVjdGVkSXRlbShjbGFzcyBMSVNUQk9YICosY2xhc3MgTElTVEJPWCAqLGNsYXNzIFhZUE9JTlQgY29uc3QgJiljb25zdCANCis/SXNPblNlbGVjdGVkSXRlbUBTRVRfQ09OVFJPTEBAQUJFSFBBVkxJU1RCT1hAQDBBQlZYWVBPSU5UQEBAWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgU0VUX0NPTlRST0w6OklzT3ZlclRhcmdldChjbGFzcyBMSVNUQk9YICosY2xhc3MgTElTVEJPWCAqLGNsYXNzIFhZUE9JTlQgY29uc3QgJiljb25zdCANCis/SXNPdmVyVGFyZ2V0QFNFVF9DT05UUk9MQEBBQkVIUEFWTElTVEJPWEBAMEFCVlhZUE9JTlRAQEBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBISUVSX0xCSTo6SXNQYXJlbnQoY2xhc3MgSElFUl9MQkkgKikNCis/SXNQYXJlbnRASElFUl9MQklAQEFBRUhQQVYxQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1FTlVfQkFTRTo6SXNQb3B1cChpbnQpY29uc3QgDQorP0lzUG9wdXBATUVOVV9CQVNFQEBRQkVISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIE1BU0tfTUFQOjpJc1ByZXNlbnQoY2xhc3MgQklURklFTEQgKikNCis/SXNQcmVzZW50QE1BU0tfTUFQQEBRQUVIUEFWQklURklFTERAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgRElBTE9HX1dJTkRPVzo6SXNQdW1wRmluaXNoZWQodm9pZCkNCis/SXNQdW1wRmluaXNoZWRARElBTE9HX1dJTkRPV0BATUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgSEFTX01FU1NBR0VfUFVNUDo6SXNQdW1wRmluaXNoZWQodm9pZCkNCis/SXNQdW1wRmluaXNoZWRASEFTX01FU1NBR0VfUFVNUEBATUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIExJU1RCT1g6OklzUmVhZE9ubHkodm9pZCljb25zdCANCis/SXNSZWFkT25seUBMSVNUQk9YQEBRQkVIWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgSEVBUF9CQVNFOjpJc1Jvb3QoaW50KWNvbnN0IA0KKz9Jc1Jvb3RASEVBUF9CQVNFQEBJQkVISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFdJTjMyX1RIUkVBRDo6SXNSdW5uYWJsZSh2b2lkKWNvbnN0IA0KKz9Jc1J1bm5hYmxlQFdJTjMyX1RIUkVBREBAUUJFSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQjo6SXNTZWxlY3Rpb25FeHBhbmRhYmxlR3JvdXAoY2xhc3MgVVNFUl9CUk9XU0VSX0xCSSBjb25zdCAqLGludCljb25zdCANCis/SXNTZWxlY3Rpb25FeHBhbmRhYmxlR3JvdXBAVVNFUl9CUk9XU0VSX0xCQEBJQkVIUEJWVVNFUl9CUk9XU0VSX0xCSUBASEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQjo6SXNTZWxlY3Rpb25FeHBhbmRhYmxlR3JvdXAodm9pZCljb25zdCANCis/SXNTZWxlY3Rpb25FeHBhbmRhYmxlR3JvdXBAVVNFUl9CUk9XU0VSX0xCQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTUVOVV9CQVNFOjpJc1NlcGFyYXRvcihpbnQpY29uc3QgDQorP0lzU2VwYXJhdG9yQE1FTlVfQkFTRUBAUUJFSEhAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpJc1Nob3dVc2Vyc0J1dHRvblVzZWQodm9pZCljb25zdCANCis/SXNTaG93VXNlcnNCdXR0b25Vc2VkQE5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQElCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDT01CT0JPWDo6SXNTaW1wbGUodm9pZCljb25zdCANCis/SXNTaW1wbGVAQ09NQk9CT1hAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBBQ0NPVU5UX05BTUVTX01MRTo6SXNTaW5nbGVTZWxlY3Qodm9pZCljb25zdCANCis/SXNTaW5nbGVTZWxlY3RAQUNDT1VOVF9OQU1FU19NTEVAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpJc1NpbmdsZVNlbGVjdGlvbih2b2lkKWNvbnN0IA0KKz9Jc1NpbmdsZVNlbGVjdGlvbkBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRQkVIWFoNCis7IHB1YmxpYzogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6SXNTdGF0aWModm9pZCljb25zdCANCis/SXNTdGF0aWNAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFVCRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFNUQVRJQ19TUElOX0lURU06OklzU3RhdGljKHZvaWQpY29uc3QgDQorP0lzU3RhdGljQFNUQVRJQ19TUElOX0lURU1AQFVCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBBVURJVF9DSEVDS0JPWEVTOjpJc1N1Y2Nlc3NDaGVja2VkKHZvaWQpDQorP0lzU3VjY2Vzc0NoZWNrZWRAQVVESVRfQ0hFQ0tCT1hFU0BAUUFFSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIEFQUExJQ0FUSU9OOjpJc1N5c3RlbUluaXRpYWxpemVkKHZvaWQpDQorP0lzU3lzdGVtSW5pdGlhbGl6ZWRAQVBQTElDQVRJT05AQFNHSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEJST1dTRVJfRE9NQUlOOjpJc1RhcmdldERvbWFpbih2b2lkKWNvbnN0IA0KKz9Jc1RhcmdldERvbWFpbkBCUk9XU0VSX0RPTUFJTkBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEJST1dTRVJfRE9NQUlOX0xCSTo6SXNUYXJnZXREb21haW4odm9pZCljb25zdCANCis/SXNUYXJnZXREb21haW5AQlJPV1NFUl9ET01BSU5fTEJJQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQlJPV1NFUl9ET01BSU5fTEJJX1BCOjpJc1RhcmdldERvbWFpbih2b2lkKWNvbnN0IA0KKz9Jc1RhcmdldERvbWFpbkBCUk9XU0VSX0RPTUFJTl9MQklfUEJAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBJTlRMX1BST0ZJTEU6OklzVGltZVByZWZpeCh2b2lkKWNvbnN0IA0KKz9Jc1RpbWVQcmVmaXhASU5UTF9QUk9GSUxFQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ09NQk9CT1g6OklzVXNlckVkaXR0YWJsZSh2b2lkKWNvbnN0IA0KKz9Jc1VzZXJFZGl0dGFibGVAQ09NQk9CT1hAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBCTFRfREFURV9TUElOX0dST1VQOjpJc1ZhbGlkKHZvaWQpDQorP0lzVmFsaWRAQkxUX0RBVEVfU1BJTl9HUk9VUEBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEJMVF9USU1FX1NQSU5fR1JPVVA6OklzVmFsaWQodm9pZCkNCis/SXNWYWxpZEBCTFRfVElNRV9TUElOX0dST1VQQEBRQUVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBESUFMT0dfV0lORE9XOjpJc1ZhbGlkKHZvaWQpDQorP0lzVmFsaWRARElBTE9HX1dJTkRPV0BATUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgU1BJTl9TTEVfTlVNX1ZBTElEOjpJc1ZhbGlkKHZvaWQpDQorP0lzVmFsaWRAU1BJTl9TTEVfTlVNX1ZBTElEQEBNQUVIWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgU1BJTl9HUk9VUDo6SXNWYWxpZEZpZWxkKHZvaWQpDQorP0lzVmFsaWRGaWVsZEBTUElOX0dST1VQQEBJQUVIWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgQkFTRV9FTExJUFNJUzo6SXNWYWxpZFN0eWxlKGVudW0gRUxMSVBTSVNfU1RZTEUpY29uc3QgDQorP0lzVmFsaWRTdHlsZUBCQVNFX0VMTElQU0lTQEBJQkVIVzRFTExJUFNJU19TVFlMRUBAQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgQUNDT1VOVF9OQU1FU19NTEU6OklzV2VsbEtub3duQWNjb3VudChjbGFzcyBOTFNfU1RSIGNvbnN0ICYpDQorP0lzV2VsbEtub3duQWNjb3VudEBBQ0NPVU5UX05BTUVTX01MRUBASUFFSEFCVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEJST1dTRVJfRE9NQUlOOjpJc1dpbk5UTWFjaGluZSh2b2lkKWNvbnN0IA0KKz9Jc1dpbk5UTWFjaGluZUBCUk9XU0VSX0RPTUFJTkBAUUJFSFhaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIEhfU1BMSVRURVJfQkFSOjpJc1dpdGhpbkhpdFpvbmUoY2xhc3MgWFlQT0lOVCBjb25zdCAmKQ0KKz9Jc1dpdGhpbkhpdFpvbmVASF9TUExJVFRFUl9CQVJAQElBRUhBQlZYWVBPSU5UQEBAWg0KKzsgcHJpdmF0ZTogaW50IF9fdGhpc2NhbGwgU0VUX0NPTlRST0w6OklzV2l0aGluSGl0Wm9uZShjbGFzcyBMSVNUQk9YICosY2xhc3MgTElTVEJPWCAqLGNsYXNzIFhZUE9JTlQgY29uc3QgJiljb25zdCANCis/SXNXaXRoaW5IaXRab25lQFNFVF9DT05UUk9MQEBBQkVIUEFWTElTVEJPWEBAMEFCVlhZUE9JTlRAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIElOVExfUFJPRklMRTo6SXNZckNlbnR1cnkodm9pZCljb25zdCANCis/SXNZckNlbnR1cnlASU5UTF9QUk9GSUxFQEBRQkVIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgTUVOVUlURU06Okl0ZW1FeGlzdHMoc3RydWN0IEhNRU5VX18gKix1bnNpZ25lZCBpbnQpDQorP0l0ZW1FeGlzdHNATUVOVUlURU1AQFNHSFBBVUhNRU5VX19AQElAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBNRU5VSVRFTTo6SXRlbUV4aXN0cyhjbGFzcyBBUFBfV0lORE9XICosdW5zaWduZWQgaW50KQ0KKz9JdGVtRXhpc3RzQE1FTlVJVEVNQEBTR0hQQVZBUFBfV0lORE9XQEBJQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1BJTl9HUk9VUDo6SnVtcE5leHRGaWVsZCh2b2lkKQ0KKz9KdW1wTmV4dEZpZWxkQFNQSU5fR1JPVVBAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTUElOX0dST1VQOjpKdW1wUHJldkZpZWxkKHZvaWQpDQorP0p1bXBQcmV2RmllbGRAU1BJTl9HUk9VUEBAUUFFSFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgRElBTE9HX1dJTkRPVzo6TGF1bmNoSGVscCh2b2lkKQ0KKz9MYXVuY2hIZWxwQERJQUxPR19XSU5ET1dAQEFBRVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQkxUSU1QOjpMZWF2ZUJMVENyaXRTZWN0KHZvaWQpDQorP0xlYXZlQkxUQ3JpdFNlY3RAQkxUSU1QQEBTR1hYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQkxUSU1QOjpMZWF2ZVJlc291cmNlQ3JpdFNlY3Qodm9pZCkNCis/TGVhdmVSZXNvdXJjZUNyaXRTZWN0QEJMVElNUEBAU0dYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIERFVklDRV9DT05URVhUOjpMaW5lVG8oaW50LGludCljb25zdCANCis/TGluZVRvQERFVklDRV9DT05URVhUQEBRQkVYSEhAWg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IEhJQ09OX18gKiBfX3N0ZGNhbGwgQ1VSU09SOjpMb2FkKGNsYXNzIElEUkVTT1VSQ0UgY29uc3QgJikNCis/TG9hZEBDVVJTT1JAQFNHUEFVSElDT05fX0BAQUJWSURSRVNPVVJDRUBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5MU19TVFI6OkxvYWQobG9uZykNCis/TG9hZEBOTFNfU1RSQEBRQUVKSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgVUlfRVhUX01HUjo6TG9hZEV4dGVuc2lvbnModm9pZCkNCis/TG9hZEV4dGVuc2lvbnNAVUlfRVhUX01HUkBAVUFFSVhaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6TG9hZExhYmVscyhsb25nKQ0KKz9Mb2FkTGFiZWxzQExPR09OX0hPVVJTX0NPTlRST0xAQEFBRUpKQFoNCis7IHByaXZhdGU6IGNsYXNzIE5MU19TVFIgKiBfX3RoaXNjYWxsIFBPUFVQOjpMb2FkTWVzc2FnZShsb25nLGludCkNCis/TG9hZE1lc3NhZ2VAUE9QVVBAQEFBRVBBVk5MU19TVFJAQEpIQFoNCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBISUNPTl9fICogX19zdGRjYWxsIENVUlNPUjo6TG9hZFN5c3RlbShjbGFzcyBJRFJFU09VUkNFIGNvbnN0ICYpDQorP0xvYWRTeXN0ZW1AQ1VSU09SQEBTR1BBVUhJQ09OX19AQEFCVklEUkVTT1VSQ0VAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBOTFNfU1RSOjpMb2FkU3lzdGVtKGxvbmcpDQorP0xvYWRTeXN0ZW1ATkxTX1NUUkBAUUFFSkpAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBVU0VSX0xCSV9DQUNIRTo6TG9ja0NhY2hlKHZvaWQpDQorP0xvY2tDYWNoZUBVU0VSX0xCSV9DQUNIRUBATUFFWFhaDQorOyB2b2lkIF9fc3RkY2FsbCBNTFRleHRQYWludChzdHJ1Y3QgSERDX18gKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHN0cnVjdCB0YWdSRUNUIGNvbnN0ICopDQorP01MVGV4dFBhaW50QEBZR1hQQVVIRENfX0BAUEJHUEJVdGFnUkVDVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgRE9NQUlOX0ZJTExfVEhSRUFEOjpNYWluKHZvaWQpDQorP01haW5ARE9NQUlOX0ZJTExfVEhSRUFEQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgRk9DVVNETEdfREFUQV9USFJFQUQ6Ok1haW4odm9pZCkNCis/TWFpbkBGT0NVU0RMR19EQVRBX1RIUkVBREBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFdJTjMyX1RIUkVBRDo6TWFpbih2b2lkKQ0KKz9NYWluQFdJTjMyX1RIUkVBREBATUFFSlhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBQVVNIX0JVVFRPTjo6TWFrZURlZmF1bHQodm9pZCkNCis/TWFrZURlZmF1bHRAUFVTSF9CVVRUT05AQFFBRVhYWg0KKzsgcHJpdmF0ZTogc3RhdGljIGludCBfX3N0ZGNhbGwgUE9QVVA6Ok1hcEJ1dHRvbih1bnNpZ25lZCBpbnQpDQorP01hcEJ1dHRvbkBQT1BVUEBAQ0dISUBaDQorOyBwdWJsaWM6IHN0YXRpYyBsb25nIF9fc3RkY2FsbCBCTFQ6Ok1hcExhc3RFcnJvcihsb25nKQ0KKz9NYXBMYXN0RXJyb3JAQkxUQEBTR0pKQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIFBPUFVQOjpNYXBNZXNzYWdlKGxvbmcpDQorP01hcE1lc3NhZ2VAUE9QVVBAQFNHSkpAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIEFQUF9XSU5ET1c6Ok1heVJlc3RvcmUodm9pZCkNCis/TWF5UmVzdG9yZUBBUFBfV0lORE9XQEBNQUVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDQU5DRUxfVEFTS19ESUFMT0c6Ok1heVJ1bih2b2lkKQ0KKz9NYXlSdW5AQ0FOQ0VMX1RBU0tfRElBTE9HQEBNQUVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBESUFMT0dfV0lORE9XOjpNYXlSdW4odm9pZCkNCis/TWF5UnVuQERJQUxPR19XSU5ET1dAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIEFQUF9XSU5ET1c6Ok1heVNodXRkb3duKHZvaWQpDQorP01heVNodXRkb3duQEFQUF9XSU5ET1dAQE1BRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBVSV9NRU5VX0VYVF9NR1I6Ok1lbnVJbml0RXh0ZW5zaW9ucyh2b2lkKQ0KKz9NZW51SW5pdEV4dGVuc2lvbnNAVUlfTUVOVV9FWFRfTUdSQEBVQUVYWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE1FTlVfQkFTRTo6TW9kaWZ5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP01vZGlmeUBNRU5VX0JBU0VAQFFCRUpQQkdJSUlAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTUVOVV9CQVNFOjpNb2RpZnkodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQsc3RydWN0IEhNRU5VX18gKix1bnNpZ25lZCBpbnQpY29uc3QgDQorP01vZGlmeUBNRU5VX0JBU0VAQFFCRUpQQkdJUEFVSE1FTlVfX0BASUBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6TW92ZUZvY3VzRG93bih2b2lkKQ0KKz9Nb3ZlRm9jdXNEb3duQExPR09OX0hPVVJTX0NPTlRST0xAQEFBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6Ok1vdmVGb2N1c0xlZnQodm9pZCkNCis/TW92ZUZvY3VzTGVmdEBMT0dPTl9IT1VSU19DT05UUk9MQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpNb3ZlRm9jdXNSaWdodCh2b2lkKQ0KKz9Nb3ZlRm9jdXNSaWdodEBMT0dPTl9IT1VSU19DT05UUk9MQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpNb3ZlRm9jdXNUbyhpbnQpDQorP01vdmVGb2N1c1RvQExPR09OX0hPVVJTX0NPTlRST0xAQEFBRVhIQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpNb3ZlRm9jdXNVcCh2b2lkKQ0KKz9Nb3ZlRm9jdXNVcEBMT0dPTl9IT1VSU19DT05UUk9MQEBBQUVYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQkxUX1NFVF9DT05UUk9MOjpNb3ZlSXRlbXMoY2xhc3MgTElTVEJPWCAqLGNsYXNzIExJU1RCT1ggKikNCis/TW92ZUl0ZW1zQEJMVF9TRVRfQ09OVFJPTEBATUFFSlBBVkxJU1RCT1hAQDBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgREVWSUNFX0NPTlRFWFQ6Ok1vdmVUbyhpbnQsaW50KWNvbnN0IA0KKz9Nb3ZlVG9AREVWSUNFX0NPTlRFWFRAQFFCRVhISEBaDQorOyBwcml2YXRlOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBNU0dQT1BVUF9ESUFMT0c6Ok1zZzJIQyhsb25nLHVuc2lnbmVkIGxvbmcgKikNCis/TXNnMkhDQE1TR1BPUFVQX0RJQUxPR0BAQ0dISlBBS0BaDQorOyBpbnQgX19zdGRjYWxsIE1zZ1BvcHVwKGNsYXNzIE9XTklOR1dORCBjb25zdCAmLGxvbmcsbG9uZyxlbnVtIE1TR19TRVZFUklUWSx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGludCxjbGFzcyBOTFNfU1RSICogKiBjb25zdCx1bnNpZ25lZCBpbnQpDQorP01zZ1BvcHVwQEBZR0hBQlZPV05JTkdXTkRAQEpKVzRNU0dfU0VWRVJJVFlAQEtJUUFQQVZOTFNfU1RSQEBJQFoNCis7IGludCBfX3N0ZGNhbGwgTXNnUG9wdXAoY2xhc3MgT1dOSU5HV05EIGNvbnN0ICYsbG9uZyxlbnVtIE1TR19TRVZFUklUWSkNCis/TXNnUG9wdXBAQFlHSEFCVk9XTklOR1dOREBASlc0TVNHX1NFVkVSSVRZQEBAWg0KKzsgaW50IF9fc3RkY2FsbCBNc2dQb3B1cChjbGFzcyBPV05JTkdXTkQgY29uc3QgJixsb25nLGVudW0gTVNHX1NFVkVSSVRZLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpDQorP01zZ1BvcHVwQEBZR0hBQlZPV05JTkdXTkRAQEpXNE1TR19TRVZFUklUWUBASUlAWg0KKzsgaW50IF9fc3RkY2FsbCBNc2dQb3B1cChjbGFzcyBPV05JTkdXTkQgY29uc3QgJixsb25nLGVudW0gTVNHX1NFVkVSSVRZLHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9Nc2dQb3B1cEBAWUdIQUJWT1dOSU5HV05EQEBKVzRNU0dfU0VWRVJJVFlAQElQQkcySUBaDQorOyBpbnQgX19zdGRjYWxsIE1zZ1BvcHVwKGNsYXNzIE9XTklOR1dORCBjb25zdCAmLGxvbmcsZW51bSBNU0dfU0VWRVJJVFksdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz9Nc2dQb3B1cEBAWUdIQUJWT1dOSU5HV05EQEBKVzRNU0dfU0VWRVJJVFlAQElQQkdJQFoNCis7IGludCBfX3N0ZGNhbGwgTXNnUG9wdXAoY2xhc3MgT1dOSU5HV05EIGNvbnN0ICYsbG9uZyxlbnVtIE1TR19TRVZFUklUWSx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGludCxjbGFzcyBOTFNfU1RSICogKiBjb25zdCx1bnNpZ25lZCBpbnQpDQorP01zZ1BvcHVwQEBZR0hBQlZPV05JTkdXTkRAQEpXNE1TR19TRVZFUklUWUBAS0lRQVBBVk5MU19TVFJAQElAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQlJPV1NFUl9TVUJKRUNUX0lURVI6Ok5leHQoY2xhc3MgQlJPV1NFUl9TVUJKRUNUICogKikNCis/TmV4dEBCUk9XU0VSX1NVQkpFQ1RfSVRFUkBAUUFFSlBBUEFWQlJPV1NFUl9TVUJKRUNUQEBAWg0KKzsgcHVibGljOiBjbGFzcyBCUk9XU0VfRE9NQUlOX0lORk8gY29uc3QgKiBfX3RoaXNjYWxsIEJST1dTRV9ET01BSU5fRU5VTTo6TmV4dCh2b2lkKQ0KKz9OZXh0QEJST1dTRV9ET01BSU5fRU5VTUBAUUFFUEJWQlJPV1NFX0RPTUFJTl9JTkZPQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDT05UUk9MX1dJTkRPVyAqIF9fdGhpc2NhbGwgSVRFUl9DVFJMOjpOZXh0KHZvaWQpDQorP05leHRASVRFUl9DVFJMQEBRQUVQQVZDT05UUk9MX1dJTkRPV0BAWFoNCis7IHB1YmxpYzogY2xhc3MgU1BJTl9JVEVNICogX190aGlzY2FsbCBJVEVSX0RMX1NQSU5fSVRFTTo6TmV4dCh2b2lkKQ0KKz9OZXh0QElURVJfRExfU1BJTl9JVEVNQEBRQUVQQVZTUElOX0lURU1AQFhaDQorOyBwdWJsaWM6IGNsYXNzIEFTU09DSENGSUxFICogX190aGlzY2FsbCBJVEVSX1NMX0FTU09DSENGSUxFOjpOZXh0KHZvaWQpDQorP05leHRASVRFUl9TTF9BU1NPQ0hDRklMRUBAUUFFUEFWQVNTT0NIQ0ZJTEVAQFhaDQorOyBwdWJsaWM6IGNsYXNzIEJST1dTRV9ET01BSU5fSU5GTyAqIF9fdGhpc2NhbGwgSVRFUl9TTF9CUk9XU0VfRE9NQUlOX0lORk86Ok5leHQodm9pZCkNCis/TmV4dEBJVEVSX1NMX0JST1dTRV9ET01BSU5fSU5GT0BAUUFFUEFWQlJPV1NFX0RPTUFJTl9JTkZPQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgQ0xJRU5UREFUQSAqIF9fdGhpc2NhbGwgSVRFUl9TTF9DTElFTlREQVRBOjpOZXh0KHZvaWQpDQorP05leHRASVRFUl9TTF9DTElFTlREQVRBQEBRQUVQQVVDTElFTlREQVRBQEBYWg0KKzsgcHVibGljOiBjbGFzcyBOTFNfU1RSICogX190aGlzY2FsbCBJVEVSX1NMX05MU19TVFI6Ok5leHQodm9pZCkNCis/TmV4dEBJVEVSX1NMX05MU19TVFJAQFFBRVBBVk5MU19TVFJAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFNUUklOR19CSVRTRVRfUEFJUiAqIF9fdGhpc2NhbGwgSVRFUl9TTF9TVFJJTkdfQklUU0VUX1BBSVI6Ok5leHQodm9pZCkNCis/TmV4dEBJVEVSX1NMX1NUUklOR19CSVRTRVRfUEFJUkBAUUFFUEFWU1RSSU5HX0JJVFNFVF9QQUlSQEBYWg0KKzsgcHVibGljOiBjbGFzcyBUSU1FUl9CQVNFICogX190aGlzY2FsbCBJVEVSX1NMX1RJTUVSX0JBU0U6Ok5leHQodm9pZCkNCis/TmV4dEBJVEVSX1NMX1RJTUVSX0JBU0VAQFFBRVBBVlRJTUVSX0JBU0VAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFVJX0VYVCAqIF9fdGhpc2NhbGwgSVRFUl9TTF9VSV9FWFQ6Ok5leHQodm9pZCkNCis/TmV4dEBJVEVSX1NMX1VJX0VYVEBAUUFFUEFWVUlfRVhUQEBYWg0KKzsgcHVibGljOiBjbGFzcyBVU0VSX0JST1dTRVJfTEJJICogX190aGlzY2FsbCBJVEVSX1NMX1VTRVJfQlJPV1NFUl9MQkk6Ok5leHQodm9pZCkNCis/TmV4dEBJVEVSX1NMX1VTRVJfQlJPV1NFUl9MQklAQFFBRVBBVlVTRVJfQlJPV1NFUl9MQklAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFNQSU5fSVRFTSAqIF9fdGhpc2NhbGwgUklURVJfRExfU1BJTl9JVEVNOjpOZXh0KHZvaWQpDQorP05leHRAUklURVJfRExfU1BJTl9JVEVNQEBRQUVQQVZTUElOX0lURU1AQFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUTEJJVEVNOjpOZXh0U3RhdGUodm9pZCkNCis/TmV4dFN0YXRlQFNUTEJJVEVNQEBRQUVIWFoNCis7IHB1YmxpYzogY2xhc3MgVElNRVJfQkFTRSAqIF9fdGhpc2NhbGwgQkxUX01BU1RFUl9USU1FUjo6TmV4dFRpbWVyKHZvaWQpDQorP05leHRUaW1lckBCTFRfTUFTVEVSX1RJTUVSQEBRQUVQQVZUSU1FUl9CQVNFQEBYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ09OVFJPTF9XSU5ET1c6Ok5vdGlmeUdyb3VwcyhjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYpDQorP05vdGlmeUdyb3Vwc0BDT05UUk9MX1dJTkRPV0BAUUFFSkFCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwdWJsaWM6IGNsYXNzIFhZUkVDVCAmIF9fdGhpc2NhbGwgWFlSRUNUOjpPZmZzZXQoaW50LGludCkNCis/T2Zmc2V0QFhZUkVDVEBAUUFFQUFWMUBISEBaDQorOyBwdWJsaWM6IGNsYXNzIFhZUkVDVCAmIF9fdGhpc2NhbGwgWFlSRUNUOjpPZmZzZXQoY2xhc3MgWFlESU1FTlNJT04pDQorP09mZnNldEBYWVJFQ1RAQFFBRUFBVjFAVlhZRElNRU5TSU9OQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENMSUVOVF9XSU5ET1c6Ok9uQWN0aXZhdGlvbihjbGFzcyBBQ1RJVkFUSU9OX0VWRU5UIGNvbnN0ICYpDQorP09uQWN0aXZhdGlvbkBDTElFTlRfV0lORE9XQEBNQUVIQUJWQUNUSVZBVElPTl9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBESVNQQVRDSEVSOjpPbkFjdGl2YXRpb24oY2xhc3MgQUNUSVZBVElPTl9FVkVOVCBjb25zdCAmKQ0KKz9PbkFjdGl2YXRpb25ARElTUEFUQ0hFUkBATUFFSEFCVkFDVElWQVRJT05fRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpPbkFkZCh2b2lkKQ0KKz9PbkFkZEBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBJQUVKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIFNMRV9TVFJMQl9HUk9VUDo6T25BZGQodm9pZCkNCis/T25BZGRAU0xFX1NUUkxCX0dST1VQQEBJQUVKWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgT1dORVJfV0lORE9XOjpPbkNETWVzc2FnZXModW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxsb25nKQ0KKz9PbkNETWVzc2FnZXNAT1dORVJfV0lORE9XQEBJQUVISUlKQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBESUFMT0dfV0lORE9XOjpPbkNhbmNlbCh2b2lkKQ0KKz9PbkNhbmNlbEBESUFMT0dfV0lORE9XQEBNQUVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBNU0dQT1BVUF9ESUFMT0c6Ok9uQ2FuY2VsKHZvaWQpDQorP09uQ2FuY2VsQE1TR1BPUFVQX0RJQUxPR0BATUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0xJRU5UX1dJTkRPVzo6T25DaGFuZ2UoY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmKQ0KKz9PbkNoYW5nZUBDTElFTlRfV0lORE9XQEBNQUVIQUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDTElFTlRfV0lORE9XOjpPbkNoYXIoY2xhc3MgQ0hBUl9FVkVOVCBjb25zdCAmKQ0KKz9PbkNoYXJAQ0xJRU5UX1dJTkRPV0BATUFFSEFCVkNIQVJfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgRElTUEFUQ0hFUjo6T25DaGFyKGNsYXNzIENIQVJfRVZFTlQgY29uc3QgJikNCis/T25DaGFyQERJU1BBVENIRVJAQE1BRUhBQlZDSEFSX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFNQSU5fSVRFTTo6T25DaGFyKGNsYXNzIENIQVJfRVZFTlQgY29uc3QgJikNCis/T25DaGFyQFNQSU5fSVRFTUBATUFFSEFCVkNIQVJfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgU1BJTl9TTEVfTlVNOjpPbkNoYXIoY2xhc3MgQ0hBUl9FVkVOVCBjb25zdCAmKQ0KKz9PbkNoYXJAU1BJTl9TTEVfTlVNQEBNQUVIQUJWQ0hBUl9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBTUElOX1NMRV9TVFI6Ok9uQ2hhcihjbGFzcyBDSEFSX0VWRU5UIGNvbnN0ICYpDQorP09uQ2hhckBTUElOX1NMRV9TVFJAQE1BRUhBQlZDSEFSX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENMSUVOVF9XSU5ET1c6Ok9uQ2xpY2soY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmKQ0KKz9PbkNsaWNrQENMSUVOVF9XSU5ET1dAQE1BRUhBQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIEFQUF9XSU5ET1c6Ok9uQ2xvc2VSZXEodm9pZCkNCis/T25DbG9zZVJlcUBBUFBfV0lORE9XQEBNQUVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDTElFTlRfV0lORE9XOjpPbkNsb3NlUmVxKHZvaWQpDQorP09uQ2xvc2VSZXFAQ0xJRU5UX1dJTkRPV0BATUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgRElTUEFUQ0hFUjo6T25DbG9zZVJlcSh2b2lkKQ0KKz9PbkNsb3NlUmVxQERJU1BBVENIRVJAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIEJBU0VfU0VUX0ZPQ1VTX0RMRzo6T25Db21tYW5kKGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJikNCis/T25Db21tYW5kQEJBU0VfU0VUX0ZPQ1VTX0RMR0BATUFFSEFCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0xJRU5UX1dJTkRPVzo6T25Db21tYW5kKGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJikNCis/T25Db21tYW5kQENMSUVOVF9XSU5ET1dAQE1BRUhBQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIERJQUxPR19XSU5ET1c6Ok9uQ29tbWFuZChjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYpDQorP09uQ29tbWFuZEBESUFMT0dfV0lORE9XQEBNQUVIQUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBESVNQQVRDSEVSOjpPbkNvbW1hbmQoY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmKQ0KKz9PbkNvbW1hbmRARElTUEFUQ0hFUkBATUFFSEFCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgRVhQQU5EQUJMRV9ESUFMT0c6Ok9uQ29tbWFuZChjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYpDQorP09uQ29tbWFuZEBFWFBBTkRBQkxFX0RJQUxPR0BATUFFSEFCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgTVNHUE9QVVBfRElBTE9HOjpPbkNvbW1hbmQoY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmKQ0KKz9PbkNvbW1hbmRATVNHUE9QVVBfRElBTE9HQEBNQUVIQUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBOVF9GSU5EX0FDQ09VTlRfRElBTE9HOjpPbkNvbW1hbmQoY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmKQ0KKz9PbkNvbW1hbmRATlRfRklORF9BQ0NPVU5UX0RJQUxPR0BATUFFSEFCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgTlRfR1JPVVBfQlJPV1NFUl9ESUFMT0c6Ok9uQ29tbWFuZChjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYpDQorP09uQ29tbWFuZEBOVF9HUk9VUF9CUk9XU0VSX0RJQUxPR0BATUFFSEFCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgTlRfTE9DQUxHUk9VUF9CUk9XU0VSX0RJQUxPRzo6T25Db21tYW5kKGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJikNCis/T25Db21tYW5kQE5UX0xPQ0FMR1JPVVBfQlJPV1NFUl9ESUFMT0dAQE1BRUhBQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0c6Ok9uQ29tbWFuZChjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYpDQorP09uQ29tbWFuZEBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBNQUVIQUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBPUEVOX0RJQUxPR19CQVNFOjpPbkNvbW1hbmQoY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmKQ0KKz9PbkNvbW1hbmRAT1BFTl9ESUFMT0dfQkFTRUBATUFFSEFCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIExCSTo6T25Db21wYXJlSXRlbSh1bnNpZ25lZCBpbnQsbG9uZykNCis/T25Db21wYXJlSXRlbUBMQklAQFNHSElKQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgRElBTE9HX1dJTkRPVzo6T25Db250cm9sRXJyb3IodW5zaWduZWQgaW50LGxvbmcpDQorP09uQ29udHJvbEVycm9yQERJQUxPR19XSU5ET1dAQE1BRVhJSkBaDQorOyBwdWJsaWM6IHZpcnR1YWwgc3RydWN0IEhCUlVTSF9fICogX190aGlzY2FsbCBCTFRfQkFDS0dST1VORF9FRElUOjpPbkN0bENvbG9yKHN0cnVjdCBIRENfXyAqLHN0cnVjdCBIV05EX18gKix1bnNpZ25lZCBpbnQgKikNCis/T25DdGxDb2xvckBCTFRfQkFDS0dST1VORF9FRElUQEBVQUVQQVVIQlJVU0hfX0BAUEFVSERDX19AQFBBVUhXTkRfX0BAUEFJQFoNCis7IHB1YmxpYzogdmlydHVhbCBzdHJ1Y3QgSEJSVVNIX18gKiBfX3RoaXNjYWxsIENPTlRST0xfV0lORE9XOjpPbkN0bENvbG9yKHN0cnVjdCBIRENfXyAqLHN0cnVjdCBIV05EX18gKix1bnNpZ25lZCBpbnQgKikNCis/T25DdGxDb2xvckBDT05UUk9MX1dJTkRPV0BAVUFFUEFVSEJSVVNIX19AQFBBVUhEQ19fQEBQQVVIV05EX19AQFBBSUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgc3RydWN0IEhCUlVTSF9fICogX190aGlzY2FsbCBESUFMT0dfV0lORE9XOjpPbkN0bENvbG9yKHN0cnVjdCBIRENfXyAqLHN0cnVjdCBIV05EX18gKix1bnNpZ25lZCBpbnQgKikNCis/T25DdGxDb2xvckBESUFMT0dfV0lORE9XQEBNQUVQQVVIQlJVU0hfX0BAUEFVSERDX19AQFBBVUhXTkRfX0BAUEFJQFoNCis7IHB1YmxpYzogdmlydHVhbCBzdHJ1Y3QgSEJSVVNIX18gKiBfX3RoaXNjYWxsIFNQSU5fU0xUX1NFUEFSQVRPUjo6T25DdGxDb2xvcihzdHJ1Y3QgSERDX18gKixzdHJ1Y3QgSFdORF9fICosdW5zaWduZWQgaW50ICopDQorP09uQ3RsQ29sb3JAU1BJTl9TTFRfU0VQQVJBVE9SQEBVQUVQQVVIQlJVU0hfX0BAUEFVSERDX19AQFBBVUhXTkRfX0BAUEFJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDTElFTlRfV0lORE9XOjpPbkRibENsaWNrKGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJikNCis/T25EYmxDbGlja0BDTElFTlRfV0lORE9XQEBNQUVIQUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDTElFTlRfV0lORE9XOjpPbkRlYWN0aXZhdGlvbihjbGFzcyBBQ1RJVkFUSU9OX0VWRU5UIGNvbnN0ICYpDQorP09uRGVhY3RpdmF0aW9uQENMSUVOVF9XSU5ET1dAQE1BRUhBQlZBQ1RJVkFUSU9OX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIERJU1BBVENIRVI6Ok9uRGVhY3RpdmF0aW9uKGNsYXNzIEFDVElWQVRJT05fRVZFTlQgY29uc3QgJikNCis/T25EZWFjdGl2YXRpb25ARElTUEFUQ0hFUkBATUFFSEFCVkFDVElWQVRJT05fRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0xJRU5UX1dJTkRPVzo6T25EZWZvY3VzKGNsYXNzIEZPQ1VTX0VWRU5UIGNvbnN0ICYpDQorP09uRGVmb2N1c0BDTElFTlRfV0lORE9XQEBNQUVIQUJWRk9DVVNfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgRElTUEFUQ0hFUjo6T25EZWZvY3VzKGNsYXNzIEZPQ1VTX0VWRU5UIGNvbnN0ICYpDQorP09uRGVmb2N1c0BESVNQQVRDSEVSQEBNQUVIQUJWRk9DVVNfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgRk9DVVNfQ0hFQ0tCT1g6Ok9uRGVmb2N1cyhjbGFzcyBGT0NVU19FVkVOVCBjb25zdCAmKQ0KKz9PbkRlZm9jdXNARk9DVVNfQ0hFQ0tCT1hAQE1BRUhBQlZGT0NVU19FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpPbkRlZm9jdXMoY2xhc3MgRk9DVVNfRVZFTlQgY29uc3QgJikNCis/T25EZWZvY3VzQExPR09OX0hPVVJTX0NPTlRST0xAQE1BRUhBQlZGT0NVU19FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBTUElOX1NMRV9OVU06Ok9uRGVmb2N1cyhjbGFzcyBGT0NVU19FVkVOVCBjb25zdCAmKQ0KKz9PbkRlZm9jdXNAU1BJTl9TTEVfTlVNQEBNQUVIQUJWRk9DVVNfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgU1BJTl9TTEVfTlVNX1ZBTElEOjpPbkRlZm9jdXMoY2xhc3MgRk9DVVNfRVZFTlQgY29uc3QgJikNCis/T25EZWZvY3VzQFNQSU5fU0xFX05VTV9WQUxJREBATUFFSEFCVkZPQ1VTX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBMQVpZX0xJU1RCT1g6Ok9uRGVsZXRlSXRlbShjbGFzcyBMQkkgKikNCis/T25EZWxldGVJdGVtQExBWllfTElTVEJPWEBATUFFWFBBVkxCSUBAQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIExCSTo6T25EZWxldGVJdGVtKHVuc2lnbmVkIGludCxsb25nKQ0KKz9PbkRlbGV0ZUl0ZW1ATEJJQEBTR1hJSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQjo6T25EZWxldGVJdGVtKGNsYXNzIExCSSAqKQ0KKz9PbkRlbGV0ZUl0ZW1AVVNFUl9CUk9XU0VSX0xCQEBNQUVYUEFWTEJJQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENMSUVOVF9XSU5ET1c6Ok9uRGVzdHJveSh2b2lkKQ0KKz9PbkRlc3Ryb3lAQ0xJRU5UX1dJTkRPV0BATUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgRElTUEFUQ0hFUjo6T25EZXN0cm95KHZvaWQpDQorP09uRGVzdHJveUBESVNQQVRDSEVSQEBNQUVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBESUFMT0dfV0lORE9XOjpPbkRsZ0FjdGl2YXRpb24oY2xhc3MgQUNUSVZBVElPTl9FVkVOVCBjb25zdCAmKQ0KKz9PbkRsZ0FjdGl2YXRpb25ARElBTE9HX1dJTkRPV0BATUFFSEFCVkFDVElWQVRJT05fRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgRElBTE9HX1dJTkRPVzo6T25EbGdEZWFjdGl2YXRpb24oY2xhc3MgQUNUSVZBVElPTl9FVkVOVCBjb25zdCAmKQ0KKz9PbkRsZ0RlYWN0aXZhdGlvbkBESUFMT0dfV0lORE9XQEBNQUVIQUJWQUNUSVZBVElPTl9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpPbkRsZ0RlYWN0aXZhdGlvbihjbGFzcyBBQ1RJVkFUSU9OX0VWRU5UIGNvbnN0ICYpDQorP09uRGxnRGVhY3RpdmF0aW9uQE5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQE1BRUhBQlZBQ1RJVkFUSU9OX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6T25Eb21haW5DaGFuZ2UoY2xhc3MgQlJPV1NFUl9ET01BSU4gKixjbGFzcyBBRE1JTl9BVVRIT1JJVFkgY29uc3QgKikNCis/T25Eb21haW5DaGFuZ2VATlRfVVNFUl9CUk9XU0VSX0RJQUxPR0BASUFFSlBBVkJST1dTRVJfRE9NQUlOQEBQQlZBRE1JTl9BVVRIT1JJVFlAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQkFTRV9TRVRfRk9DVVNfRExHOjpPbkRvbWFpbkxCQ2hhbmdlKHZvaWQpDQorP09uRG9tYWluTEJDaGFuZ2VAQkFTRV9TRVRfRk9DVVNfRExHQEBBQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEhJRVJfTElTVEJPWDo6T25Eb3VibGVDbGljayhjbGFzcyBISUVSX0xCSSAqKQ0KKz9PbkRvdWJsZUNsaWNrQEhJRVJfTElTVEJPWEBAUUFFWFBBVkhJRVJfTEJJQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBIX1NQTElUVEVSX0JBUjo6T25EcmFnUmVsZWFzZShjbGFzcyBYWVBPSU5UIGNvbnN0ICYpDQorP09uRHJhZ1JlbGVhc2VASF9TUExJVFRFUl9CQVJAQE1BRVhBQlZYWVBPSU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENMSUVOVF9XSU5ET1c6Ok9uRHJvcERvd24oY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmKQ0KKz9PbkRyb3BEb3duQENMSUVOVF9XSU5ET1dAQE1BRUhBQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENMSUVOVF9XSU5ET1c6Ok9uRW50ZXIoY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmKQ0KKz9PbkVudGVyQENMSUVOVF9XSU5ET1dAQE1BRUhBQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFNQSU5fU0xFX05VTTo6T25FbnRlcihjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYpDQorP09uRW50ZXJAU1BJTl9TTEVfTlVNQEBNQUVIQUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBTUElOX1NMRV9OVU1fVkFMSUQ6Ok9uRW50ZXIoY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmKQ0KKz9PbkVudGVyQFNQSU5fU0xFX05VTV9WQUxJREBATUFFSEFCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIEVYUEFOREFCTEVfRElBTE9HOjpPbkV4cGFuZCh2b2lkKQ0KKz9PbkV4cGFuZEBFWFBBTkRBQkxFX0RJQUxPR0BATUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0xJRU5UX1dJTkRPVzo6T25Gb2N1cyhjbGFzcyBGT0NVU19FVkVOVCBjb25zdCAmKQ0KKz9PbkZvY3VzQENMSUVOVF9XSU5ET1dAQE1BRUhBQlZGT0NVU19FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBESVNQQVRDSEVSOjpPbkZvY3VzKGNsYXNzIEZPQ1VTX0VWRU5UIGNvbnN0ICYpDQorP09uRm9jdXNARElTUEFUQ0hFUkBATUFFSEFCVkZPQ1VTX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIEZPQ1VTX0NIRUNLQk9YOjpPbkZvY3VzKGNsYXNzIEZPQ1VTX0VWRU5UIGNvbnN0ICYpDQorP09uRm9jdXNARk9DVVNfQ0hFQ0tCT1hAQE1BRUhBQlZGT0NVU19FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpPbkZvY3VzKGNsYXNzIEZPQ1VTX0VWRU5UIGNvbnN0ICYpDQorP09uRm9jdXNATE9HT05fSE9VUlNfQ09OVFJPTEBATUFFSEFCVkZPQ1VTX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFNQSU5fSVRFTTo6T25Gb2N1cyhjbGFzcyBGT0NVU19FVkVOVCBjb25zdCAmKQ0KKz9PbkZvY3VzQFNQSU5fSVRFTUBATUFFSEFCVkZPQ1VTX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFNQSU5fU0xFX05VTTo6T25Gb2N1cyhjbGFzcyBGT0NVU19FVkVOVCBjb25zdCAmKQ0KKz9PbkZvY3VzQFNQSU5fU0xFX05VTUBATUFFSEFCVkZPQ1VTX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFNQSU5fU0xFX1NUUjo6T25Gb2N1cyhjbGFzcyBGT0NVU19FVkVOVCBjb25zdCAmKQ0KKz9PbkZvY3VzQFNQSU5fU0xFX1NUUkBATUFFSEFCVkZPQ1VTX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFNUQVRJQ19TUElOX0lURU06Ok9uRm9jdXMoY2xhc3MgRk9DVVNfRVZFTlQgY29uc3QgJikNCis/T25Gb2N1c0BTVEFUSUNfU1BJTl9JVEVNQEBNQUVIQUJWRk9DVVNfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENPTlRST0xfR1JPVVA6Ok9uR3JvdXBBY3Rpb24oY2xhc3MgQ09OVFJPTF9HUk9VUCAqKQ0KKz9Pbkdyb3VwQWN0aW9uQENPTlRST0xfR1JPVVBAQE1BRUpQQVYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIE1BR0lDX0dST1VQOjpPbkdyb3VwQWN0aW9uKGNsYXNzIENPTlRST0xfR1JPVVAgKikNCis/T25Hcm91cEFjdGlvbkBNQUdJQ19HUk9VUEBATUFFSlBBVkNPTlRST0xfR1JPVVBAQEBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBESUFMT0dfV0lORE9XOjpPbkhlbHAodm9pZCkNCis/T25IZWxwQERJQUxPR19XSU5ET1dAQEFBRUhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgR0VUX0ZOQU1FX0JBU0VfRExHOjpPbkhlbHAoc3RydWN0IEhXTkRfXyAqKQ0KKz9PbkhlbHBAR0VUX0ZOQU1FX0JBU0VfRExHQEBRQUVYUEFVSFdORF9fQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENMSUVOVF9XSU5ET1c6Ok9uS2V5RG93bihjbGFzcyBWS0VZX0VWRU5UIGNvbnN0ICYpDQorP09uS2V5RG93bkBDTElFTlRfV0lORE9XQEBNQUVIQUJWVktFWV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBESVNQQVRDSEVSOjpPbktleURvd24oY2xhc3MgVktFWV9FVkVOVCBjb25zdCAmKQ0KKz9PbktleURvd25ARElTUEFUQ0hFUkBATUFFSEFCVlZLRVlfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6T25LZXlEb3duKGNsYXNzIFZLRVlfRVZFTlQgY29uc3QgJikNCis/T25LZXlEb3duQExPR09OX0hPVVJTX0NPTlRST0xAQE1BRUhBQlZWS0VZX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFNQSU5fU0xFX05VTTo6T25LZXlEb3duKGNsYXNzIFZLRVlfRVZFTlQgY29uc3QgJikNCis/T25LZXlEb3duQFNQSU5fU0xFX05VTUBATUFFSEFCVlZLRVlfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgU1BJTl9TTEVfU1RSOjpPbktleURvd24oY2xhc3MgVktFWV9FVkVOVCBjb25zdCAmKQ0KKz9PbktleURvd25AU1BJTl9TTEVfU1RSQEBNQUVIQUJWVktFWV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDTElFTlRfV0lORE9XOjpPbktleVVwKGNsYXNzIFZLRVlfRVZFTlQgY29uc3QgJikNCis/T25LZXlVcEBDTElFTlRfV0lORE9XQEBNQUVIQUJWVktFWV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBESVNQQVRDSEVSOjpPbktleVVwKGNsYXNzIFZLRVlfRVZFTlQgY29uc3QgJikNCis/T25LZXlVcEBESVNQQVRDSEVSQEBNQUVIQUJWVktFWV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpPbktleVVwKGNsYXNzIFZLRVlfRVZFTlQgY29uc3QgJikNCis/T25LZXlVcEBMT0dPTl9IT1VSU19DT05UUk9MQEBNQUVIQUJWVktFWV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIGludCBfX3N0ZGNhbGwgT1dORVJfV0lORE9XOjpPbkxCSU1lc3NhZ2VzKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsbG9uZykNCis/T25MQklNZXNzYWdlc0BPV05FUl9XSU5ET1dAQEtHSElJSkBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQVJST1dfQlVUVE9OOjpPbkxNb3VzZUJ1dHRvbkRibENsaWNrKGNsYXNzIE1PVVNFX0VWRU5UIGNvbnN0ICYpDQorP09uTE1vdXNlQnV0dG9uRGJsQ2xpY2tAQVJST1dfQlVUVE9OQEBNQUVIQUJWTU9VU0VfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0xJRU5UX1dJTkRPVzo6T25MTW91c2VCdXR0b25EYmxDbGljayhjbGFzcyBNT1VTRV9FVkVOVCBjb25zdCAmKQ0KKz9PbkxNb3VzZUJ1dHRvbkRibENsaWNrQENMSUVOVF9XSU5ET1dAQE1BRUhBQlZNT1VTRV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBESVNQQVRDSEVSOjpPbkxNb3VzZUJ1dHRvbkRibENsaWNrKGNsYXNzIE1PVVNFX0VWRU5UIGNvbnN0ICYpDQorP09uTE1vdXNlQnV0dG9uRGJsQ2xpY2tARElTUEFUQ0hFUkBATUFFSEFCVk1PVVNFX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIEFSUk9XX0JVVFRPTjo6T25MTW91c2VCdXR0b25Eb3duKGNsYXNzIE1PVVNFX0VWRU5UIGNvbnN0ICYpDQorP09uTE1vdXNlQnV0dG9uRG93bkBBUlJPV19CVVRUT05AQE1BRUhBQlZNT1VTRV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDTElFTlRfV0lORE9XOjpPbkxNb3VzZUJ1dHRvbkRvd24oY2xhc3MgTU9VU0VfRVZFTlQgY29uc3QgJikNCis/T25MTW91c2VCdXR0b25Eb3duQENMSUVOVF9XSU5ET1dAQE1BRUhBQlZNT1VTRV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBESVNQQVRDSEVSOjpPbkxNb3VzZUJ1dHRvbkRvd24oY2xhc3MgTU9VU0VfRVZFTlQgY29uc3QgJikNCis/T25MTW91c2VCdXR0b25Eb3duQERJU1BBVENIRVJAQE1BRUhBQlZNT1VTRV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBIX1NQTElUVEVSX0JBUjo6T25MTW91c2VCdXR0b25Eb3duKGNsYXNzIE1PVVNFX0VWRU5UIGNvbnN0ICYpDQorP09uTE1vdXNlQnV0dG9uRG93bkBIX1NQTElUVEVSX0JBUkBATUFFSEFCVk1PVVNFX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6Ok9uTE1vdXNlQnV0dG9uRG93bihjbGFzcyBNT1VTRV9FVkVOVCBjb25zdCAmKQ0KKz9PbkxNb3VzZUJ1dHRvbkRvd25ATE9HT05fSE9VUlNfQ09OVFJPTEBATUFFSEFCVk1PVVNFX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIEFSUk9XX0JVVFRPTjo6T25MTW91c2VCdXR0b25VcChjbGFzcyBNT1VTRV9FVkVOVCBjb25zdCAmKQ0KKz9PbkxNb3VzZUJ1dHRvblVwQEFSUk9XX0JVVFRPTkBATUFFSEFCVk1PVVNFX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENMSUVOVF9XSU5ET1c6Ok9uTE1vdXNlQnV0dG9uVXAoY2xhc3MgTU9VU0VfRVZFTlQgY29uc3QgJikNCis/T25MTW91c2VCdXR0b25VcEBDTElFTlRfV0lORE9XQEBNQUVIQUJWTU9VU0VfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgRElTUEFUQ0hFUjo6T25MTW91c2VCdXR0b25VcChjbGFzcyBNT1VTRV9FVkVOVCBjb25zdCAmKQ0KKz9PbkxNb3VzZUJ1dHRvblVwQERJU1BBVENIRVJAQE1BRUhBQlZNT1VTRV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBIX1NQTElUVEVSX0JBUjo6T25MTW91c2VCdXR0b25VcChjbGFzcyBNT1VTRV9FVkVOVCBjb25zdCAmKQ0KKz9PbkxNb3VzZUJ1dHRvblVwQEhfU1BMSVRURVJfQkFSQEBNQUVIQUJWTU9VU0VfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6T25MTW91c2VCdXR0b25VcChjbGFzcyBNT1VTRV9FVkVOVCBjb25zdCAmKQ0KKz9PbkxNb3VzZUJ1dHRvblVwQExPR09OX0hPVVJTX0NPTlRST0xAQE1BRUhBQlZNT1VTRV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIE5UX0xPQ0FMR1JPVVBfQlJPV1NFUl9ESUFMT0c6Ok9uTWVtYmVycyh2b2lkKQ0KKz9Pbk1lbWJlcnNATlRfTE9DQUxHUk9VUF9CUk9XU0VSX0RJQUxPR0BASUFFSlhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpPbk1lbWJlcnModm9pZCkNCis/T25NZW1iZXJzQE5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQElBRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIEFQUF9XSU5ET1c6Ok9uTWVudUNvbW1hbmQodW5zaWduZWQgaW50KQ0KKz9Pbk1lbnVDb21tYW5kQEFQUF9XSU5ET1dAQE1BRUhJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBBUFBfV0lORE9XOjpPbk1lbnVJbml0KGNsYXNzIE1FTlVfRVZFTlQgY29uc3QgJikNCis/T25NZW51SW5pdEBBUFBfV0lORE9XQEBNQUVIQUJWTUVOVV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBBUFBfV0lORE9XOjpPbk1lbnVTZWxlY3QoY2xhc3MgTUVOVUlURU1fRVZFTlQgY29uc3QgJikNCis/T25NZW51U2VsZWN0QEFQUF9XSU5ET1dAQE1BRUhBQlZNRU5VSVRFTV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDTElFTlRfV0lORE9XOjpPbk1vdXNlTW92ZShjbGFzcyBNT1VTRV9FVkVOVCBjb25zdCAmKQ0KKz9Pbk1vdXNlTW92ZUBDTElFTlRfV0lORE9XQEBNQUVIQUJWTU9VU0VfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgRElTUEFUQ0hFUjo6T25Nb3VzZU1vdmUoY2xhc3MgTU9VU0VfRVZFTlQgY29uc3QgJikNCis/T25Nb3VzZU1vdmVARElTUEFUQ0hFUkBATUFFSEFCVk1PVVNFX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIEhfU1BMSVRURVJfQkFSOjpPbk1vdXNlTW92ZShjbGFzcyBNT1VTRV9FVkVOVCBjb25zdCAmKQ0KKz9Pbk1vdXNlTW92ZUBIX1NQTElUVEVSX0JBUkBATUFFSEFCVk1PVVNFX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6Ok9uTW91c2VNb3ZlKGNsYXNzIE1PVVNFX0VWRU5UIGNvbnN0ICYpDQorP09uTW91c2VNb3ZlQExPR09OX0hPVVJTX0NPTlRST0xAQE1BRUhBQlZNT1VTRV9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDTElFTlRfV0lORE9XOjpPbk1vdmUoY2xhc3MgTU9WRV9FVkVOVCBjb25zdCAmKQ0KKz9Pbk1vdmVAQ0xJRU5UX1dJTkRPV0BATUFFSEFCVk1PVkVfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgRElTUEFUQ0hFUjo6T25Nb3ZlKGNsYXNzIE1PVkVfRVZFTlQgY29uc3QgJikNCis/T25Nb3ZlQERJU1BBVENIRVJAQE1BRUhBQlZNT1ZFX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGNsYXNzIExCSSAqIF9fdGhpc2NhbGwgVVNFUl9CUk9XU0VSX0xCOjpPbk5ld0l0ZW0odW5zaWduZWQgaW50KQ0KKz9Pbk5ld0l0ZW1AVVNFUl9CUk9XU0VSX0xCQEBNQUVQQVZMQklAQElAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIEJBU0VfU0VUX0ZPQ1VTX0RMRzo6T25PSyh2b2lkKQ0KKz9Pbk9LQEJBU0VfU0VUX0ZPQ1VTX0RMR0BATUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgRElBTE9HX1dJTkRPVzo6T25PSyh2b2lkKQ0KKz9Pbk9LQERJQUxPR19XSU5ET1dAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIE1TR1BPUFVQX0RJQUxPRzo6T25PSyh2b2lkKQ0KKz9Pbk9LQE1TR1BPUFVQX0RJQUxPR0BATUFFSFhaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIE1TR19ESUFMT0dfQkFTRTo6T25PSyh2b2lkKQ0KKz9Pbk9LQE1TR19ESUFMT0dfQkFTRUBARUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgTlRfRklORF9BQ0NPVU5UX0RJQUxPRzo6T25PSyh2b2lkKQ0KKz9Pbk9LQE5UX0ZJTkRfQUNDT1VOVF9ESUFMT0dAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0c6Ok9uT0sodm9pZCkNCis/T25PS0BOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBNQUVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBQUk9NUFRfRk9SX0FOWV9EQ19ETEc6Ok9uT0sodm9pZCkNCis/T25PS0BQUk9NUFRfRk9SX0FOWV9EQ19ETEdAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENMSUVOVF9XSU5ET1c6Ok9uT3RoZXIoY2xhc3MgRVZFTlQgY29uc3QgJikNCis/T25PdGhlckBDTElFTlRfV0lORE9XQEBNQUVIQUJWRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQVBQX1dJTkRPVzo6T25QYWludFJlcSh2b2lkKQ0KKz9PblBhaW50UmVxQEFQUF9XSU5ET1dAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENMSUVOVF9XSU5ET1c6Ok9uUGFpbnRSZXEodm9pZCkNCis/T25QYWludFJlcUBDTElFTlRfV0lORE9XQEBNQUVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBESVNQQVRDSEVSOjpPblBhaW50UmVxKHZvaWQpDQorP09uUGFpbnRSZXFARElTUEFUQ0hFUkBATUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgRk9DVVNfQ0hFQ0tCT1g6Ok9uUGFpbnRSZXEodm9pZCkNCis/T25QYWludFJlcUBGT0NVU19DSEVDS0JPWEBATUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgSF9TUExJVFRFUl9CQVI6Ok9uUGFpbnRSZXEodm9pZCkNCis/T25QYWludFJlcUBIX1NQTElUVEVSX0JBUkBATUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6T25QYWludFJlcSh2b2lkKQ0KKz9PblBhaW50UmVxQExPR09OX0hPVVJTX0NPTlRST0xAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIE1FVEVSOjpPblBhaW50UmVxKHZvaWQpDQorP09uUGFpbnRSZXFATUVURVJAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBESVNQQVRDSEVSOjpPblFEbGdDb2RlKHZvaWQpDQorP09uUURsZ0NvZGVARElTUEFUQ0hFUkBATUFFS1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6Ok9uUURsZ0NvZGUodm9pZCkNCis/T25RRGxnQ29kZUBMT0dPTl9IT1VSU19DT05UUk9MQEBNQUVLWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgRElTUEFUQ0hFUjo6T25RSGl0VGVzdChjbGFzcyBYWVBPSU5UIGNvbnN0ICYpDQorP09uUUhpdFRlc3RARElTUEFUQ0hFUkBATUFFS0FCVlhZUE9JTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIEhfU1BMSVRURVJfQkFSOjpPblFIaXRUZXN0KGNsYXNzIFhZUE9JTlQgY29uc3QgJikNCis/T25RSGl0VGVzdEBIX1NQTElUVEVSX0JBUkBATUFFS0FCVlhZUE9JTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6Ok9uUUhpdFRlc3QoY2xhc3MgWFlQT0lOVCBjb25zdCAmKQ0KKz9PblFIaXRUZXN0QExPR09OX0hPVVJTX0NPTlRST0xAQE1BRUtBQlZYWVBPSU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIEFQUF9XSU5ET1c6Ok9uUU1pbk1heChjbGFzcyBRTUlOTUFYX0VWRU5UICYpDQorP09uUU1pbk1heEBBUFBfV0lORE9XQEBNQUVIQUFWUU1JTk1BWF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgRElTUEFUQ0hFUjo6T25RTW91c2VBY3RpdmF0ZShjbGFzcyBRTU9VU0VBQ1RfRVZFTlQgY29uc3QgJikNCis/T25RTW91c2VBY3RpdmF0ZUBESVNQQVRDSEVSQEBNQUVLQUJWUU1PVVNFQUNUX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpPblFNb3VzZUFjdGl2YXRlKGNsYXNzIFFNT1VTRUFDVF9FVkVOVCBjb25zdCAmKQ0KKz9PblFNb3VzZUFjdGl2YXRlQExPR09OX0hPVVJTX0NPTlRST0xAQE1BRUtBQlZRTU9VU0VBQ1RfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgRElTUEFUQ0hFUjo6T25RTW91c2VDdXJzb3IoY2xhc3MgUU1PVVNFQUNUX0VWRU5UIGNvbnN0ICYpDQorP09uUU1vdXNlQ3Vyc29yQERJU1BBVENIRVJAQE1BRUhBQlZRTU9VU0VBQ1RfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgSF9TUExJVFRFUl9CQVI6Ok9uUU1vdXNlQ3Vyc29yKGNsYXNzIFFNT1VTRUFDVF9FVkVOVCBjb25zdCAmKQ0KKz9PblFNb3VzZUN1cnNvckBIX1NQTElUVEVSX0JBUkBATUFFSEFCVlFNT1VTRUFDVF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpPblFNb3VzZUN1cnNvcihjbGFzcyBRTU9VU0VBQ1RfRVZFTlQgY29uc3QgJikNCis/T25RTW91c2VDdXJzb3JATE9HT05fSE9VUlNfQ09OVFJPTEBATUFFSEFCVlFNT1VTRUFDVF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIFNMRV9TVFJMQl9HUk9VUDo6T25SZW1vdmUodm9pZCkNCis/T25SZW1vdmVAU0xFX1NUUkxCX0dST1VQQEBJQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDTElFTlRfV0lORE9XOjpPblJlc2l6ZShjbGFzcyBTSVpFX0VWRU5UIGNvbnN0ICYpDQorP09uUmVzaXplQENMSUVOVF9XSU5ET1dAQE1BRUhBQlZTSVpFX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIERJU1BBVENIRVI6Ok9uUmVzaXplKGNsYXNzIFNJWkVfRVZFTlQgY29uc3QgJikNCis/T25SZXNpemVARElTUEFUQ0hFUkBATUFFSEFCVlNJWkVfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgSF9TUExJVFRFUl9CQVI6Ok9uUmVzaXplKGNsYXNzIFNJWkVfRVZFTlQgY29uc3QgJikNCis/T25SZXNpemVASF9TUExJVFRFUl9CQVJAQE1BRUhBQlZTSVpFX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIERJQUxPR19XSU5ET1c6Ok9uU2Nyb2xsQmFyKGNsYXNzIFNDUk9MTF9FVkVOVCBjb25zdCAmKQ0KKz9PblNjcm9sbEJhckBESUFMT0dfV0lORE9XQEBNQUVIQUJWU0NST0xMX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIERJQUxPR19XSU5ET1c6Ok9uU2Nyb2xsQmFyVGh1bWIoY2xhc3MgU0NST0xMX1RIVU1CX0VWRU5UIGNvbnN0ICYpDQorP09uU2Nyb2xsQmFyVGh1bWJARElBTE9HX1dJTkRPV0BATUFFSEFCVlNDUk9MTF9USFVNQl9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0c6Ok9uU2VhcmNoKHZvaWQpDQorP09uU2VhcmNoQE5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQElBRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIENMSUVOVF9XSU5ET1c6Ok9uU2VsZWN0KGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJikNCis/T25TZWxlY3RAQ0xJRU5UX1dJTkRPV0BATUFFSEFCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpPblNob3dVc2Vycyh2b2lkKQ0KKz9PblNob3dVc2Vyc0BOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBJQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQVBQX1dJTkRPVzo6T25TaHV0ZG93bih2b2lkKQ0KKz9PblNodXRkb3duQEFQUF9XSU5ET1dAQE1BRVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBESUFMT0dfV0lORE9XOjpPblN5c0NvbG9yQ2hhbmdlKHZvaWQpDQorP09uU3lzQ29sb3JDaGFuZ2VARElBTE9HX1dJTkRPV0BATUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQVBQX1dJTkRPVzo6T25TeXN0ZW1DaGFuZ2UoY2xhc3MgU1lTQ0hBTkdFX0VWRU5UIGNvbnN0ICYpDQorP09uU3lzdGVtQ2hhbmdlQEFQUF9XSU5ET1dAQE1BRUhBQlZTWVNDSEFOR0VfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQVJST1dfQlVUVE9OOjpPblRpbWVyKGNsYXNzIFRJTUVSX0VWRU5UIGNvbnN0ICYpDQorP09uVGltZXJAQVJST1dfQlVUVE9OQEBNQUVIQUJWVElNRVJfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0FOQ0VMX1RBU0tfRElBTE9HOjpPblRpbWVyKGNsYXNzIFRJTUVSX0VWRU5UIGNvbnN0ICYpDQorP09uVGltZXJAQ0FOQ0VMX1RBU0tfRElBTE9HQEBNQUVIQUJWVElNRVJfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ0xJRU5UX1dJTkRPVzo6T25UaW1lcihjbGFzcyBUSU1FUl9FVkVOVCBjb25zdCAmKQ0KKz9PblRpbWVyQENMSUVOVF9XSU5ET1dAQE1BRUhBQlZUSU1FUl9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBESUFMT0dfV0lORE9XOjpPblRpbWVyKGNsYXNzIFRJTUVSX0VWRU5UIGNvbnN0ICYpDQorP09uVGltZXJARElBTE9HX1dJTkRPV0BATUFFSEFCVlRJTUVSX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIERJU1BBVENIRVI6Ok9uVGltZXIoY2xhc3MgVElNRVJfRVZFTlQgY29uc3QgJikNCis/T25UaW1lckBESVNQQVRDSEVSQEBNQUVIQUJWVElNRVJfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgVElNRVJfV0lORE9XOjpPblRpbWVyKGNsYXNzIFRJTUVSX0VWRU5UIGNvbnN0ICYpDQorP09uVGltZXJAVElNRVJfV0lORE9XQEBNQUVIQUJWVElNRVJfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFRJTUVSX0NBTExPVVQ6Ok9uVGltZXJOb3RpZmljYXRpb24odW5zaWduZWQgaW50KQ0KKz9PblRpbWVyTm90aWZpY2F0aW9uQFRJTUVSX0NBTExPVVRAQE1BRVhJQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ09OVFJPTF9HUk9VUDo6T25Vc2VyQWN0aW9uKGNsYXNzIENPTlRST0xfV0lORE9XICosY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmKQ0KKz9PblVzZXJBY3Rpb25AQ09OVFJPTF9HUk9VUEBATUFFSlBBVkNPTlRST0xfV0lORE9XQEBBQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBDT05UUk9MX1dJTkRPVzo6T25Vc2VyQWN0aW9uKGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJikNCis/T25Vc2VyQWN0aW9uQENPTlRST0xfV0lORE9XQEBNQUVKQUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgTE1fT0xMQjo6T25Vc2VyQWN0aW9uKGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJikNCis/T25Vc2VyQWN0aW9uQExNX09MTEJAQE1BRUpBQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBNQUdJQ19HUk9VUDo6T25Vc2VyQWN0aW9uKGNsYXNzIENPTlRST0xfV0lORE9XICosY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmKQ0KKz9PblVzZXJBY3Rpb25ATUFHSUNfR1JPVVBAQE1BRUpQQVZDT05UUk9MX1dJTkRPV0BAQUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgT1JERVJfR1JPVVA6Ok9uVXNlckFjdGlvbihjbGFzcyBDT05UUk9MX1dJTkRPVyAqLGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJikNCis/T25Vc2VyQWN0aW9uQE9SREVSX0dST1VQQEBNQUVKUEFWQ09OVFJPTF9XSU5ET1dAQEFCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFJBRElPX0dST1VQOjpPblVzZXJBY3Rpb24oY2xhc3MgQ09OVFJPTF9XSU5ET1cgKixjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYpDQorP09uVXNlckFjdGlvbkBSQURJT19HUk9VUEBATUFFSlBBVkNPTlRST0xfV0lORE9XQEBBQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBTRVRfQ09OVFJPTDo6T25Vc2VyQWN0aW9uKGNsYXNzIENPTlRST0xfV0lORE9XICosY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmKQ0KKz9PblVzZXJBY3Rpb25AU0VUX0NPTlRST0xAQE1BRUpQQVZDT05UUk9MX1dJTkRPV0BAQUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgU0xFX1NUUkxCX0dST1VQOjpPblVzZXJBY3Rpb24oY2xhc3MgQ09OVFJPTF9XSU5ET1cgKixjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYpDQorP09uVXNlckFjdGlvbkBTTEVfU1RSTEJfR1JPVVBAQE1BRUpQQVZDT05UUk9MX1dJTkRPV0BAQUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgU1BJTl9HUk9VUDo6T25Vc2VyQWN0aW9uKGNsYXNzIENPTlRST0xfV0lORE9XICosY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmKQ0KKz9PblVzZXJBY3Rpb25AU1BJTl9HUk9VUEBATUFFSlBBVkNPTlRST0xfV0lORE9XQEBBQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBTVEFURUxCR1JQOjpPblVzZXJBY3Rpb24oY2xhc3MgQ09OVFJPTF9XSU5ET1cgKixjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYpDQorP09uVXNlckFjdGlvbkBTVEFURUxCR1JQQEBNQUVKUEFWQ09OVFJPTF9XSU5ET1dAQEFCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQkFTRV9TRVRfRk9DVVNfRExHOjpPblVzZXJNZXNzYWdlKGNsYXNzIEVWRU5UIGNvbnN0ICYpDQorP09uVXNlck1lc3NhZ2VAQkFTRV9TRVRfRk9DVVNfRExHQEBNQUVIQUJWRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgRElTUEFUQ0hFUjo6T25Vc2VyTWVzc2FnZShjbGFzcyBFVkVOVCBjb25zdCAmKQ0KKz9PblVzZXJNZXNzYWdlQERJU1BBVENIRVJAQE1BRUhBQlZFVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpPblVzZXJNZXNzYWdlKGNsYXNzIEVWRU5UIGNvbnN0ICYpDQorP09uVXNlck1lc3NhZ2VATlRfVVNFUl9CUk9XU0VSX0RJQUxPR0BATUFFSEFCVkVWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIE9XTkVSX1dJTkRPVzo6T25Vc2VyTWVzc2FnZShjbGFzcyBFVkVOVCBjb25zdCAmKQ0KKz9PblVzZXJNZXNzYWdlQE9XTkVSX1dJTkRPV0BATUFFSEFCVkVWRU5UQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBESUFMT0dfV0lORE9XOjpPblZhbGlkYXRpb25FcnJvcih1bnNpZ25lZCBpbnQsbG9uZykNCis/T25WYWxpZGF0aW9uRXJyb3JARElBTE9HX1dJTkRPV0BATUFFWElKQFoNCis7IHByaXZhdGU6IGNsYXNzIExJU1RCT1ggKiBfX3RoaXNjYWxsIFNFVF9DT05UUk9MOjpPdGhlckxpc3Rib3goY2xhc3MgTElTVEJPWCAqKWNvbnN0IA0KKz9PdGhlckxpc3Rib3hAU0VUX0NPTlRST0xAQEFCRVBBVkxJU1RCT1hAQFBBVjJAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQlJPV1NFUl9ET01BSU5fTEJJOjpQYWludChjbGFzcyBMSVNUQk9YICosc3RydWN0IEhEQ19fICosc3RydWN0IHRhZ1JFQ1QgY29uc3QgKixzdHJ1Y3QgR1VJTFRUX0lORk8gKiljb25zdCANCis/UGFpbnRAQlJPV1NFUl9ET01BSU5fTEJJQEBVQkVYUEFWTElTVEJPWEBAUEFVSERDX19AQFBCVXRhZ1JFQ1RAQFBBVUdVSUxUVF9JTkZPQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBCUk9XU0VSX0RPTUFJTl9MQklfUEI6OlBhaW50KGNsYXNzIExJU1RCT1ggKixzdHJ1Y3QgSERDX18gKixzdHJ1Y3QgdGFnUkVDVCBjb25zdCAqLHN0cnVjdCBHVUlMVFRfSU5GTyAqKWNvbnN0IA0KKz9QYWludEBCUk9XU0VSX0RPTUFJTl9MQklfUEJAQFVCRVhQQVZMSVNUQk9YQEBQQVVIRENfX0BAUEJVdGFnUkVDVEBAUEFVR1VJTFRUX0lORk9AQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENPVU5URURfU1RSX0RURTo6UGFpbnQoc3RydWN0IEhEQ19fICosc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiljb25zdCANCis/UGFpbnRAQ09VTlRFRF9TVFJfRFRFQEBVQkVYUEFVSERDX19AQFBCVXRhZ1JFQ1RAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIERJU1BMQVlfTUFQOjpQYWludChzdHJ1Y3QgSERDX18gKixpbnQsaW50KWNvbnN0IA0KKz9QYWludEBESVNQTEFZX01BUEBAUUJFSFBBVUhEQ19fQEBISEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBESVNQTEFZX1RBQkxFOjpQYWludChjbGFzcyBMSVNUQk9YICosc3RydWN0IEhEQ19fICosc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiljb25zdCANCis/UGFpbnRARElTUExBWV9UQUJMRUBAUUJFWFBBVkxJU1RCT1hAQFBBVUhEQ19fQEBQQlV0YWdSRUNUQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgRElTUExBWV9UQUJMRTo6UGFpbnQoY2xhc3MgTElTVEJPWCAqLHN0cnVjdCBIRENfXyAqLHN0cnVjdCB0YWdSRUNUIGNvbnN0ICosc3RydWN0IEdVSUxUVF9JTkZPICopY29uc3QgDQorP1BhaW50QERJU1BMQVlfVEFCTEVAQFFCRVhQQVZMSVNUQk9YQEBQQVVIRENfX0BAUEJVdGFnUkVDVEBAUEFVR1VJTFRUX0lORk9AQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIERNX0RURTo6UGFpbnQoc3RydWN0IEhEQ19fICosc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiljb25zdCANCis/UGFpbnRARE1fRFRFQEBVQkVYUEFVSERDX19AQFBCVXRhZ1JFQ1RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIExCSTo6UGFpbnQoY2xhc3MgTElTVEJPWCAqLHN0cnVjdCBIRENfXyAqLHN0cnVjdCB0YWdSRUNUIGNvbnN0ICosc3RydWN0IEdVSUxUVF9JTkZPICopY29uc3QgDQorP1BhaW50QExCSUBAVUJFWFBBVkxJU1RCT1hAQFBBVUhEQ19fQEBQQlV0YWdSRUNUQEBQQVVHVUlMVFRfSU5GT0BAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgTUVUQUxMSUNfU1RSX0RURTo6UGFpbnQoc3RydWN0IEhEQ19fICosc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiljb25zdCANCis/UGFpbnRATUVUQUxMSUNfU1RSX0RURUBAVUJFWFBBVUhEQ19fQEBQQlV0YWdSRUNUQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBNVUxUSUxJTkVfU1RSX0RURTo6UGFpbnQoc3RydWN0IEhEQ19fICosc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiljb25zdCANCis/UGFpbnRATVVMVElMSU5FX1NUUl9EVEVAQFVCRVhQQVVIRENfX0BAUEJVdGFnUkVDVEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgT0xMQl9FTlRSWTo6UGFpbnQoY2xhc3MgTElTVEJPWCAqLHN0cnVjdCBIRENfXyAqLHN0cnVjdCB0YWdSRUNUIGNvbnN0ICosc3RydWN0IEdVSUxUVF9JTkZPICopY29uc3QgDQorP1BhaW50QE9MTEJfRU5UUllAQFVCRVhQQVZMSVNUQk9YQEBQQVVIRENfX0BAUEJVdGFnUkVDVEBAUEFVR1VJTFRUX0lORk9AQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIE9XTkVSX0RSQVdfRE1JRF9EVEU6OlBhaW50KHN0cnVjdCBIRENfXyAqLHN0cnVjdCB0YWdSRUNUIGNvbnN0ICopY29uc3QgDQorP1BhaW50QE9XTkVSX0RSQVdfRE1JRF9EVEVAQFVCRVhQQVVIRENfX0BAUEJVdGFnUkVDVEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgT1dORVJfRFJBV19NVUxUSUxJTkVfU1RSX0RURTo6UGFpbnQoc3RydWN0IEhEQ19fICosc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiljb25zdCANCis/UGFpbnRAT1dORVJfRFJBV19NVUxUSUxJTkVfU1RSX0RURUBAVUJFWFBBVUhEQ19fQEBQQlV0YWdSRUNUQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBPV05FUl9EUkFXX1NUUl9EVEU6OlBhaW50KHN0cnVjdCBIRENfXyAqLHN0cnVjdCB0YWdSRUNUIGNvbnN0ICopY29uc3QgDQorP1BhaW50QE9XTkVSX0RSQVdfU1RSX0RURUBAVUJFWFBBVUhEQ19fQEBQQlV0YWdSRUNUQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBTVExCSVRFTTo6UGFpbnQoY2xhc3MgTElTVEJPWCAqLHN0cnVjdCBIRENfXyAqLHN0cnVjdCB0YWdSRUNUIGNvbnN0ICosc3RydWN0IEdVSUxUVF9JTkZPICopY29uc3QgDQorP1BhaW50QFNUTEJJVEVNQEBNQkVYUEFWTElTVEJPWEBAUEFVSERDX19AQFBCVXRhZ1JFQ1RAQFBBVUdVSUxUVF9JTkZPQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBTVFJfRFRFOjpQYWludChzdHJ1Y3QgSERDX18gKixzdHJ1Y3QgdGFnUkVDVCBjb25zdCAqKWNvbnN0IA0KKz9QYWludEBTVFJfRFRFQEBVQkVYUEFVSERDX19AQFBCVXRhZ1JFQ1RAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFNUUl9EVEVfRUxMSVBTSVM6OlBhaW50KHN0cnVjdCBIRENfXyAqLHN0cnVjdCB0YWdSRUNUIGNvbnN0ICopY29uc3QgDQorP1BhaW50QFNUUl9EVEVfRUxMSVBTSVNAQFVCRVhQQVVIRENfX0BAUEJVdGFnUkVDVEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgVVNFUl9CUk9XU0VSX0xCSTo6UGFpbnQoY2xhc3MgTElTVEJPWCAqLHN0cnVjdCBIRENfXyAqLHN0cnVjdCB0YWdSRUNUIGNvbnN0ICosc3RydWN0IEdVSUxUVF9JTkZPICopY29uc3QgDQorP1BhaW50QFVTRVJfQlJPV1NFUl9MQklAQFVCRVhQQVZMSVNUQk9YQEBQQVVIRENfX0BAUEJVdGFnUkVDVEBAUEFVR1VJTFRUX0lORk9AQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBBQ0NPVU5UX05BTUVTX01MRTo6UGFyc2VVc2VyTmFtZUxpc3QoY2xhc3MgU1RSTElTVCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1BhcnNlVXNlck5hbWVMaXN0QEFDQ09VTlRfTkFNRVNfTUxFQEBJQUVKUEFWU1RSTElTVEBAUEJHQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBNU0dQT1BVUF9ESUFMT0c6OlBsYWNlQnV0dG9ucyh2b2lkKQ0KKz9QbGFjZUJ1dHRvbnNATVNHUE9QVVBfRElBTE9HQEBBQUVYWFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBCTFRfREFURV9TUElOX0dST1VQOjpQbGFjZUNvbnRyb2woaW50LGNsYXNzIE9XTkVSX1dJTkRPVyAqLGNsYXNzIElOVExfUFJPRklMRSBjb25zdCAmLGNsYXNzIFhZUE9JTlQgY29uc3QgJixjbGFzcyBYWURJTUVOU0lPTiBjb25zdCAmLGNsYXNzIFhZUE9JTlQgY29uc3QgJixjbGFzcyBYWURJTUVOU0lPTiBjb25zdCAmLGNsYXNzIFhZUE9JTlQgY29uc3QgJixjbGFzcyBYWURJTUVOU0lPTiBjb25zdCAmKQ0KKz9QbGFjZUNvbnRyb2xAQkxUX0RBVEVfU1BJTl9HUk9VUEBAQUFFSkhQQVZPV05FUl9XSU5ET1dAQEFCVklOVExfUFJPRklMRUBAQUJWWFlQT0lOVEBAQUJWWFlESU1FTlNJT05AQDIzMjNAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBET01BSU5fRklMTF9USFJFQUQ6OlBvc3RNYWluKHZvaWQpDQorP1Bvc3RNYWluQERPTUFJTl9GSUxMX1RIUkVBREBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIEZPQ1VTRExHX0RBVEFfVEhSRUFEOjpQb3N0TWFpbih2b2lkKQ0KKz9Qb3N0TWFpbkBGT0NVU0RMR19EQVRBX1RIUkVBREBATUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFdJTjMyX1RIUkVBRDo6UG9zdE1haW4odm9pZCkNCis/UG9zdE1haW5AV0lOMzJfVEhSRUFEQEBNQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgV0lOMzJfVEhSRUFEOjpQcmVNYWluKHZvaWQpDQorP1ByZU1haW5AV0lOMzJfVEhSRUFEQEBNQUVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEJBU0VfU0VUX0ZPQ1VTX0RMRzo6UHJvY2VzcyhpbnQgKikNCis/UHJvY2Vzc0BCQVNFX1NFVF9GT0NVU19ETEdAQFFBRUpQQUhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQkFTRV9TRVRfRk9DVVNfRExHOjpQcm9jZXNzKHVuc2lnbmVkIGludCAqKQ0KKz9Qcm9jZXNzQEJBU0VfU0VUX0ZPQ1VTX0RMR0BAUUFFSlBBSUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBESUFMT0dfV0lORE9XOjpQcm9jZXNzKGludCAqKQ0KKz9Qcm9jZXNzQERJQUxPR19XSU5ET1dAQFFBRUpQQUhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgRElBTE9HX1dJTkRPVzo6UHJvY2Vzcyh1bnNpZ25lZCBpbnQgKikNCis/UHJvY2Vzc0BESUFMT0dfV0lORE9XQEBRQUVKUEFJQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEVYUEFOREFCTEVfRElBTE9HOjpQcm9jZXNzKGludCAqKQ0KKz9Qcm9jZXNzQEVYUEFOREFCTEVfRElBTE9HQEBRQUVKUEFIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEVYUEFOREFCTEVfRElBTE9HOjpQcm9jZXNzKHVuc2lnbmVkIGludCAqKQ0KKz9Qcm9jZXNzQEVYUEFOREFCTEVfRElBTE9HQEBRQUVKUEFJQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgR0VUX09QRU5fRklMRU5BTUVfRExHOjpQcm9jZXNzKGludCAqKQ0KKz9Qcm9jZXNzQEdFVF9PUEVOX0ZJTEVOQU1FX0RMR0BAVUFFSlBBSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIEdFVF9TQVZFX0ZJTEVOQU1FX0RMRzo6UHJvY2VzcyhpbnQgKikNCis/UHJvY2Vzc0BHRVRfU0FWRV9GSUxFTkFNRV9ETEdAQFVBRUpQQUhAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgV0lOMzJfRk9OVF9QSUNLRVI6OlByb2Nlc3MoY2xhc3MgT1dORVJfV0lORE9XICosaW50ICosY2xhc3MgRk9OVCAqLHN0cnVjdCB0YWdMT0dGT05UVyAqLHN0cnVjdCB0YWdDSE9PU0VGT05UVyAqKQ0KKz9Qcm9jZXNzQFdJTjMyX0ZPTlRfUElDS0VSQEBTR0pQQVZPV05FUl9XSU5ET1dAQFBBSFBBVkZPTlRAQFBBVXRhZ0xPR0ZPTlRXQEBQQVV0YWdDSE9PU0VGT05UV0BAQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBCQVNFX1NFVF9GT0NVU19ETEc6OlByb2Nlc3NOZXRQYXRoKGNsYXNzIE5MU19TVFIgKixsb25nICopDQorP1Byb2Nlc3NOZXRQYXRoQEJBU0VfU0VUX0ZPQ1VTX0RMR0BAQUFFSlBBVk5MU19TVFJAQFBBSkBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBXSU4zMl9FVkVOVDo6UHVsc2Uodm9pZCkNCis/UHVsc2VAV0lOMzJfRVZFTlRAQFFBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVVNFUl9CUk9XU0VSX0xCSTo6UXVhbGlmeURpc3BsYXlOYW1lKHZvaWQpDQorP1F1YWxpZnlEaXNwbGF5TmFtZUBVU0VSX0JST1dTRVJfTEJJQEBRQUVKWFoNCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBISUNPTl9fICogX19zdGRjYWxsIENVUlNPUjo6UXVlcnkodm9pZCkNCis/UXVlcnlAQ1VSU09SQEBTR1BBVUhJQ09OX19AQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFNQSU5fSVRFTTo6UXVlcnlBY2NDaGFyUG9zKHVuc2lnbmVkIHNob3J0KQ0KKz9RdWVyeUFjY0NoYXJQb3NAU1BJTl9JVEVNQEBVQUVKR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFNQSU5fU0xFX1NUUjo6UXVlcnlBY2NDaGFyUG9zKHVuc2lnbmVkIHNob3J0KQ0KKz9RdWVyeUFjY0NoYXJQb3NAU1BJTl9TTEVfU1RSQEBVQUVKR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTUElOX0lURU06OlF1ZXJ5QWNjS2V5KGNsYXNzIE5MU19TVFIgKikNCis/UXVlcnlBY2NLZXlAU1BJTl9JVEVNQEBRQUVKUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIE9QRU5fTEJJX0JBU0U6OlF1ZXJ5QWNjZXNzTmFtZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUFjY2Vzc05hbWVAT1BFTl9MQklfQkFTRUBAUUJFUEJHWFoNCis7IHB1YmxpYzogY2xhc3MgU0FNX0RPTUFJTiAqIF9fdGhpc2NhbGwgQlJPV1NFUl9ET01BSU46OlF1ZXJ5QWNjb3VudERvbWFpbih2b2lkKWNvbnN0IA0KKz9RdWVyeUFjY291bnREb21haW5AQlJPV1NFUl9ET01BSU5AQFFCRVBBVlNBTV9ET01BSU5AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBCUk9XU0VSX1NVQkpFQ1Q6OlF1ZXJ5QWNjb3VudE5hbWUodm9pZCljb25zdCANCis/UXVlcnlBY2NvdW50TmFtZUBCUk9XU0VSX1NVQkpFQ1RAQFFCRVBCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEJJOjpRdWVyeUFjY291bnROYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5QWNjb3VudE5hbWVAVVNFUl9CUk9XU0VSX0xCSUBAUUJFUEJHWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBIX1NQTElUVEVSX0JBUjo6UXVlcnlBY3RpdmVBcmVhKHZvaWQpDQorP1F1ZXJ5QWN0aXZlQXJlYUBIX1NQTElUVEVSX0JBUkBATUFFSFhaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIFBVU0hfQlVUVE9OICogX190aGlzY2FsbCBTTEVfU1RSTEJfR1JPVVA6OlF1ZXJ5QWRkQnV0dG9uKHZvaWQpY29uc3QgDQorP1F1ZXJ5QWRkQnV0dG9uQFNMRV9TVFJMQl9HUk9VUEBASUJFUEFWUFVTSF9CVVRUT05AQFhaDQorOyBwdWJsaWM6IGNsYXNzIEFETUlOX0FVVEhPUklUWSAqIF9fdGhpc2NhbGwgQlJPV1NFUl9ET01BSU46OlF1ZXJ5QWRtaW5BdXRob3JpdHkodm9pZCljb25zdCANCis/UXVlcnlBZG1pbkF1dGhvcml0eUBCUk9XU0VSX0RPTUFJTkBAUUJFUEFWQURNSU5fQVVUSE9SSVRZQEBYWg0KKzsgcHVibGljOiBjbGFzcyBBRE1JTl9BVVRIT1JJVFkgKiBfX3RoaXNjYWxsIERPTUFJTl9GSUxMX1RIUkVBRDo6UXVlcnlBZG1pbkF1dGhvcml0eSh2b2lkKWNvbnN0IA0KKz9RdWVyeUFkbWluQXV0aG9yaXR5QERPTUFJTl9GSUxMX1RIUkVBREBAUUJFUEFWQURNSU5fQVVUSE9SSVRZQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgVUlfRE9NQUlOOjpRdWVyeUFueURDKHZvaWQpY29uc3QgDQorP1F1ZXJ5QW55RENAVUlfRE9NQUlOQEBRQkVQQkdYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBPV05FUl9XSU5ET1c6OlF1ZXJ5QXR0cmlidXRlKHVuc2lnbmVkIGxvbmcpDQorP1F1ZXJ5QXR0cmlidXRlQE9XTkVSX1dJTkRPV0BAUUFFSEtAWg0KKzsgcHVibGljOiBjbGFzcyBBVURJVF9DSEVDS0JPWEVTICogX190aGlzY2FsbCBTRVRfT0ZfQVVESVRfQ0FURUdPUklFUzo6UXVlcnlBdWRpdENoZWNrQm94KGludCkNCis/UXVlcnlBdWRpdENoZWNrQm94QFNFVF9PRl9BVURJVF9DQVRFR09SSUVTQEBRQUVQQVZBVURJVF9DSEVDS0JPWEVTQEBIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgREVWSUNFX0NPTlRFWFQ6OlF1ZXJ5QXZlQ2hhcldpZHRoKHZvaWQpY29uc3QgDQorP1F1ZXJ5QXZlQ2hhcldpZHRoQERFVklDRV9DT05URVhUQEBRQkVIWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0hBTkdFQUJMRV9TUElOX0lURU06OlF1ZXJ5QmlnRGVjVmFsdWUodm9pZCljb25zdCANCis/UXVlcnlCaWdEZWNWYWx1ZUBDSEFOR0VBQkxFX1NQSU5fSVRFTUBAVUJFS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFNQSU5fU0xFX1ZBTElEX1NFQ09ORDo6UXVlcnlCaWdEZWNWYWx1ZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUJpZ0RlY1ZhbHVlQFNQSU5fU0xFX1ZBTElEX1NFQ09OREBAVUJFS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpRdWVyeUJpZ0luY1ZhbHVlKHZvaWQpY29uc3QgDQorP1F1ZXJ5QmlnSW5jVmFsdWVAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFVCRUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBTUElOX1NMRV9WQUxJRF9TRUNPTkQ6OlF1ZXJ5QmlnSW5jVmFsdWUodm9pZCljb25zdCANCis/UXVlcnlCaWdJbmNWYWx1ZUBTUElOX1NMRV9WQUxJRF9TRUNPTkRAQFVCRUtYWg0KKzsgcHVibGljOiBjbGFzcyBCSVRGSUVMRCAqIF9fdGhpc2NhbGwgU1RSSU5HX0JJVFNFVF9QQUlSOjpRdWVyeUJpdGZpZWxkKHZvaWQpDQorP1F1ZXJ5Qml0ZmllbGRAU1RSSU5HX0JJVFNFVF9QQUlSQEBRQUVQQVZCSVRGSUVMREBAWFoNCis7IHB1YmxpYzogc3RydWN0IEhCSVRNQVBfXyAqIF9fdGhpc2NhbGwgRElTUExBWV9NQVA6OlF1ZXJ5Qml0bWFwSGFuZGxlKHZvaWQpY29uc3QgDQorP1F1ZXJ5Qml0bWFwSGFuZGxlQERJU1BMQVlfTUFQQEBRQkVQQVVIQklUTUFQX19AQFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBNQVNLX01BUDo6UXVlcnlCaXRzKHVuc2lnbmVkIGludCxjbGFzcyBCSVRGSUVMRCAqLGNsYXNzIE5MU19TVFIgKixpbnQgKikNCis/UXVlcnlCaXRzQE1BU0tfTUFQQEBRQUVKSVBBVkJJVEZJRUxEQEBQQVZOTFNfU1RSQEBQQUhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBYWVJFQ1Q6OlF1ZXJ5Qm90dG9tKHZvaWQpY29uc3QgDQorP1F1ZXJ5Qm90dG9tQFhZUkVDVEBAUUJFSFhaDQorOyBwdWJsaWM6IGNsYXNzIEJST1dTRVJfRE9NQUlOICogX190aGlzY2FsbCBCUk9XU0VSX0RPTUFJTl9MQkk6OlF1ZXJ5QnJvd3NlckRvbWFpbih2b2lkKWNvbnN0IA0KKz9RdWVyeUJyb3dzZXJEb21haW5AQlJPV1NFUl9ET01BSU5fTEJJQEBRQkVQQVZCUk9XU0VSX0RPTUFJTkBAWFoNCis7IHB1YmxpYzogY2xhc3MgQlJPV1NFUl9ET01BSU4gKiBfX3RoaXNjYWxsIEJST1dTRVJfRE9NQUlOX0xCSV9QQjo6UXVlcnlCcm93c2VyRG9tYWluKHZvaWQpY29uc3QgDQorP1F1ZXJ5QnJvd3NlckRvbWFpbkBCUk9XU0VSX0RPTUFJTl9MQklfUEJAQFFCRVBBVkJST1dTRVJfRE9NQUlOQEBYWg0KKzsgcHJvdGVjdGVkOiB2b2lkICogX190aGlzY2FsbCBOVF9NRU1PUlk6OlF1ZXJ5QnVmZmVyKHZvaWQpY29uc3QgDQorP1F1ZXJ5QnVmZmVyQE5UX01FTU9SWUBASUJFUEFYWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgY2hhciBjb25zdCAqIF9fdGhpc2NhbGwgRU5VTV9PQkpfQkFTRTo6UXVlcnlCdWZmZXJQdHIodm9pZCljb25zdCANCis/UXVlcnlCdWZmZXJQdHJARU5VTV9PQkpfQkFTRUBASUJFUEJFWFoNCis7IHB1YmxpYzogc3RydWN0IF9ET01BSU5fRElTUExBWV9HUk9VUCBjb25zdCAqIF9fdGhpc2NhbGwgTlRfR1JPVVBfRU5VTV9PQko6OlF1ZXJ5QnVmZmVyUHRyKHZvaWQpY29uc3QgDQorP1F1ZXJ5QnVmZmVyUHRyQE5UX0dST1VQX0VOVU1fT0JKQEBRQkVQQlVfRE9NQUlOX0RJU1BMQVlfR1JPVVBAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfU0VSVkVSX0lORk9fMTAxIGNvbnN0ICogX190aGlzY2FsbCBTRVJWRVIxX0VOVU1fT0JKOjpRdWVyeUJ1ZmZlclB0cih2b2lkKWNvbnN0IA0KKz9RdWVyeUJ1ZmZlclB0ckBTRVJWRVIxX0VOVU1fT0JKQEBRQkVQQlVfU0VSVkVSX0lORk9fMTAxQEBYWg0KKzsgcHVibGljOiBjbGFzcyBTQU1fRE9NQUlOICogX190aGlzY2FsbCBCUk9XU0VSX0RPTUFJTjo6UXVlcnlCdWlsdGluRG9tYWluKHZvaWQpY29uc3QgDQorP1F1ZXJ5QnVpbHRpbkRvbWFpbkBCUk9XU0VSX0RPTUFJTkBAUUJFUEFWU0FNX0RPTUFJTkBAWFoNCis7IHByaXZhdGU6IGNsYXNzIFBVU0hfQlVUVE9OICogX190aGlzY2FsbCBNU0dQT1BVUF9ESUFMT0c6OlF1ZXJ5QnV0dG9uKHVuc2lnbmVkIGludCkNCis/UXVlcnlCdXR0b25ATVNHUE9QVVBfRElBTE9HQEBBQUVQQVZQVVNIX0JVVFRPTkBASUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIExJU1RfQ09OVFJPTDo6UXVlcnlDYXJldEluZGV4KHZvaWQpY29uc3QgDQorP1F1ZXJ5Q2FyZXRJbmRleEBMSVNUX0NPTlRST0xAQFFCRUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIENIQVJfRVZFTlQ6OlF1ZXJ5Q2hhcih2b2lkKWNvbnN0IA0KKz9RdWVyeUNoYXJAQ0hBUl9FVkVOVEBAUUJFR1haDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUQVRFMl9CVVRUT05fQ09OVFJPTDo6UXVlcnlDaGVjayh2b2lkKWNvbnN0IA0KKz9RdWVyeUNoZWNrQFNUQVRFMl9CVVRUT05fQ09OVFJPTEBAUUJFSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIENPTlRST0xfRU5UUlk6OlF1ZXJ5Q2lkKHZvaWQpY29uc3QgDQorP1F1ZXJ5Q2lkQENPTlRST0xfRU5UUllAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBDT05UUk9MX0VWRU5UOjpRdWVyeUNpZCh2b2lkKWNvbnN0IA0KKz9RdWVyeUNpZEBDT05UUk9MX0VWRU5UQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgQ09OVFJPTF9XSU5ET1c6OlF1ZXJ5Q2lkKHZvaWQpY29uc3QgDQorP1F1ZXJ5Q2lkQENPTlRST0xfV0lORE9XQEBRQkVJWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFdJTkRPVzo6UXVlcnlDbGllbnRSZWN0KHN0cnVjdCB0YWdSRUNUICopY29uc3QgDQorP1F1ZXJ5Q2xpZW50UmVjdEBXSU5ET1dAQFFCRVhQQVV0YWdSRUNUQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgV0lORE9XOjpRdWVyeUNsaWVudFJlY3QoY2xhc3MgWFlSRUNUICopY29uc3QgDQorP1F1ZXJ5Q2xpZW50UmVjdEBXSU5ET1dAQFFCRVhQQVZYWVJFQ1RAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIENPTlRST0xfRVZFTlQ6OlF1ZXJ5Q29kZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUNvZGVAQ09OVFJPTF9FVkVOVEBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBjb25zdCAqIF9fdGhpc2NhbGwgU1RBVEVMQjo6UXVlcnlDb2xEYXRhKHZvaWQpDQorP1F1ZXJ5Q29sRGF0YUBTVEFURUxCQEBRQUVQQklYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgY29uc3QgKiBfX3RoaXNjYWxsIEJST1dTRVJfRE9NQUlOX0NCOjpRdWVyeUNvbFdpZHRoQXJyYXkodm9pZCljb25zdCANCis/UXVlcnlDb2xXaWR0aEFycmF5QEJST1dTRVJfRE9NQUlOX0NCQEBRQkVQQklYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgY29uc3QgKiBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQjo6UXVlcnlDb2xXaWR0aEFycmF5KHZvaWQpY29uc3QgDQorP1F1ZXJ5Q29sV2lkdGhBcnJheUBVU0VSX0JST1dTRVJfTEJAQFFCRVBCSVhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDT05UUk9MX1dJTkRPVzo6UXVlcnlDb21ib2JveENsYXNzTmFtZSh2b2lkKQ0KKz9RdWVyeUNvbWJvYm94Q2xhc3NOYW1lQENPTlRST0xfV0lORE9XQEBLR1BCR1haDQorOyBwdWJsaWM6IGVudW0gU0NST0xMX0VWRU5UOjpTQ1JPTExfQ09NTUFORCAgX190aGlzY2FsbCBTQ1JPTExfRVZFTlQ6OlF1ZXJ5Q29tbWFuZCh2b2lkKWNvbnN0IA0KKz9RdWVyeUNvbW1hbmRAU0NST0xMX0VWRU5UQEBRQkU/QVc0U0NST0xMX0NPTU1BTkRAMUBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgQlJPV1NFUl9TVUJKRUNUOjpRdWVyeUNvbW1lbnQodm9pZCljb25zdCANCis/UXVlcnlDb21tZW50QEJST1dTRVJfU1VCSkVDVEBAUUJFUEJHWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE5UX0dST1VQX0VOVU1fT0JKOjpRdWVyeUNvbW1lbnQoY2xhc3MgTkxTX1NUUiAqKWNvbnN0IA0KKz9RdWVyeUNvbW1lbnRATlRfR1JPVVBfRU5VTV9PQkpAQFFCRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgU0VSVkVSMV9FTlVNX09CSjo6UXVlcnlDb21tZW50KHZvaWQpY29uc3QgDQorP1F1ZXJ5Q29tbWVudEBTRVJWRVIxX0VOVU1fT0JKQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgVVNFUl9CUk9XU0VSX0xCSTo6UXVlcnlDb21tZW50KHZvaWQpY29uc3QgDQorP1F1ZXJ5Q29tbWVudEBVU0VSX0JST1dTRVJfTEJJQEBRQkVQQkdYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCAoX19jZGVjbCpfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6OlF1ZXJ5Q29tcGFyZU1ldGhvZCh2b2lkKWNvbnN0ICkodm9pZCBjb25zdCAqLHZvaWQgY29uc3QgKikNCis/UXVlcnlDb21wYXJlTWV0aG9kQFVTRVJfQlJPV1NFUl9MQklfQ0FDSEVAQE1CRVA2QUhQQlgwQFpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCAoX19jZGVjbCpfX3RoaXNjYWxsIFVTRVJfTEJJX0NBQ0hFOjpRdWVyeUNvbXBhcmVNZXRob2Qodm9pZCljb25zdCApKHZvaWQgY29uc3QgKix2b2lkIGNvbnN0ICopDQorP1F1ZXJ5Q29tcGFyZU1ldGhvZEBVU0VSX0xCSV9DQUNIRUBATUJFUDZBSFBCWDBAWlhaDQorOyBwdWJsaWM6IGNsYXNzIENPTlRST0xfVkFMVUUgKiBfX3RoaXNjYWxsIENPTlRST0xWQUxfQ0lEX1BBSVI6OlF1ZXJ5Q29udFZhbCh2b2lkKWNvbnN0IA0KKz9RdWVyeUNvbnRWYWxAQ09OVFJPTFZBTF9DSURfUEFJUkBAUUJFUEFWQ09OVFJPTF9WQUxVRUBAWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNQSU5fU0xFX05VTTo6UXVlcnlDb250ZW50KHVuc2lnbmVkIGxvbmcgKiljb25zdCANCis/UXVlcnlDb250ZW50QFNQSU5fU0xFX05VTUBAUUJFWFBBS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBTUElOX1NMRV9OVU06OlF1ZXJ5Q29udGVudChjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5Q29udGVudEBTUElOX1NMRV9OVU1AQFFCRVhQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1BJTl9TTEVfU1RSOjpRdWVyeUNvbnRlbnQoY2xhc3MgTkxTX1NUUiAqKWNvbnN0IA0KKz9RdWVyeUNvbnRlbnRAU1BJTl9TTEVfU1RSQEBRQkVKUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ09OVFJPTF9XSU5ET1cgKiBfX3RoaXNjYWxsIENVU1RPTV9DT05UUk9MOjpRdWVyeUNvbnRyb2xXaW4odm9pZCljb25zdCANCis/UXVlcnlDb250cm9sV2luQENVU1RPTV9DT05UUk9MQEBRQkVQQVZDT05UUk9MX1dJTkRPV0BAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgQVJSQVlfQ09OVFJPTFZBTF9DSURfUEFJUjo6UXVlcnlDb3VudCh2b2lkKWNvbnN0IA0KKz9RdWVyeUNvdW50QEFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVJAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBCSVRGSUVMRDo6UXVlcnlDb3VudCh2b2lkKWNvbnN0IA0KKz9RdWVyeUNvdW50QEJJVEZJRUxEQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgQ09OVFJPTF9UQUJMRTo6UXVlcnlDb3VudCh2b2lkKWNvbnN0IA0KKz9RdWVyeUNvdW50QENPTlRST0xfVEFCTEVAQFFCRUlYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDT1VOVEVEX1NUUl9EVEU6OlF1ZXJ5Q291bnQodm9pZCljb25zdCANCis/UXVlcnlDb3VudEBDT1VOVEVEX1NUUl9EVEVAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBIRUFQX0JBU0U6OlF1ZXJ5Q291bnQodm9pZCljb25zdCANCis/UXVlcnlDb3VudEBIRUFQX0JBU0VAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBMSVNUX0NPTlRST0w6OlF1ZXJ5Q291bnQodm9pZCljb25zdCANCis/UXVlcnlDb3VudEBMSVNUX0NPTlRST0xAQFFCRUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBNQVNLX01BUDo6UXVlcnlDb3VudCh2b2lkKQ0KKz9RdWVyeUNvdW50QE1BU0tfTUFQQEBRQUVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIE5UX01FTU9SWTo6UXVlcnlDb3VudCh2b2lkKWNvbnN0IA0KKz9RdWVyeUNvdW50QE5UX01FTU9SWUBAUUJFS1haDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFJBRElPX0dST1VQOjpRdWVyeUNvdW50KHZvaWQpDQorP1F1ZXJ5Q291bnRAUkFESU9fR1JPVVBAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTRVRfT0ZfQVVESVRfQ0FURUdPUklFUzo6UXVlcnlDb3VudCh2b2lkKQ0KKz9RdWVyeUNvdW50QFNFVF9PRl9BVURJVF9DQVRFR09SSUVTQEBRQUVIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6OlF1ZXJ5Q291bnQodm9pZCljb25zdCANCis/UXVlcnlDb3VudEBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFQEBRQkVLWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgVVNFUl9MQklfQ0FDSEU6OlF1ZXJ5Q291bnQodm9pZCljb25zdCANCis/UXVlcnlDb3VudEBVU0VSX0xCSV9DQUNIRUBAUUJFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFVTUkxCX05UX0dST1VQX0VOVU06OlF1ZXJ5Q291bnRQcmVmZXJlbmNlcyh1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/UXVlcnlDb3VudFByZWZlcmVuY2VzQFVTUkxCX05UX0dST1VQX0VOVU1AQE1BRUpQQUswSUtLS0BaDQorOyBwdWJsaWM6IGNsYXNzIENPTlRST0xfV0lORE9XICogX190aGlzY2FsbCBDT05UUk9MX0VOVFJZOjpRdWVyeUN0cmxQdHIodm9pZCljb25zdCANCis/UXVlcnlDdHJsUHRyQENPTlRST0xfRU5UUllAQFFCRVBBVkNPTlRST0xfV0lORE9XQEBYWg0KKzsgcHVibGljOiBjbGFzcyBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFICogX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEI6OlF1ZXJ5Q3VycmVudENhY2hlKHZvaWQpY29uc3QgDQorP1F1ZXJ5Q3VycmVudENhY2hlQFVTRVJfQlJPV1NFUl9MQkBAUUJFUEFWVVNFUl9CUk9XU0VSX0xCSV9DQUNIRUBAWFoNCis7IHB1YmxpYzogY2xhc3MgQlJPV1NFUl9ET01BSU4gKiBfX3RoaXNjYWxsIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0c6OlF1ZXJ5Q3VycmVudERvbWFpbkZvY3VzKHZvaWQpY29uc3QgDQorP1F1ZXJ5Q3VycmVudERvbWFpbkZvY3VzQE5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQFFCRVBBVkJST1dTRVJfRE9NQUlOQEBYWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBTUElOX0lURU0gKiBfX3RoaXNjYWxsIFNQSU5fR1JPVVA6OlF1ZXJ5Q3VycmVudEZpZWxkKHZvaWQpY29uc3QgDQorP1F1ZXJ5Q3VycmVudEZpZWxkQFNQSU5fR1JPVVBAQElCRVBBVlNQSU5fSVRFTUBAWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTElTVF9DT05UUk9MOjpRdWVyeUN1cnJlbnRJdGVtKHZvaWQpY29uc3QgDQorP1F1ZXJ5Q3VycmVudEl0ZW1ATElTVF9DT05UUk9MQEBRQkVIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0c6OlF1ZXJ5RENvZlByaW1hcnlEb21haW4odm9pZCkNCis/UXVlcnlEQ29mUHJpbWFyeURvbWFpbkBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRQUVQQkdYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBCTFRfREFURV9TUElOX0dST1VQOjpRdWVyeURheSh2b2lkKWNvbnN0IA0KKz9RdWVyeURheUBCTFRfREFURV9TUElOX0dST1VQQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV0lOX1RJTUU6OlF1ZXJ5RGF5KHZvaWQpY29uc3QgDQorP1F1ZXJ5RGF5QFdJTl9USU1FQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgSU5UTF9QUk9GSUxFOjpRdWVyeURheVBvcyh2b2lkKWNvbnN0IA0KKz9RdWVyeURheVBvc0BJTlRMX1BST0ZJTEVAQFFCRUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgVUlfRVhUOjpRdWVyeURlbHRhKHZvaWQpY29uc3QgDQorP1F1ZXJ5RGVsdGFAVUlfRVhUQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFVJX0VYVF9NR1I6OlF1ZXJ5RGVsdGFEZWx0YSh2b2lkKWNvbnN0IA0KKz9RdWVyeURlbHRhRGVsdGFAVUlfRVhUX01HUkBAUUJFS1haDQorOyBwcml2YXRlOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBISUVSX0xCSTo6UXVlcnlEZXNjZW5kYW50cyh2b2lkKQ0KKz9RdWVyeURlc2NlbmRhbnRzQEhJRVJfTEJJQEBBQUVJWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgSF9TUExJVFRFUl9CQVI6OlF1ZXJ5RGVzaXJlZEhlaWdodCh2b2lkKQ0KKz9RdWVyeURlc2lyZWRIZWlnaHRASF9TUExJVFRFUl9CQVJAQFFBRUhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgREVWSUNFX0NPTUJPOjpRdWVyeURldmljZShjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5RGV2aWNlQERFVklDRV9DT01CT0BAUUJFSlBBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBIQklUTUFQX18gKiBfX3RoaXNjYWxsIEdSQVBISUNBTF9CVVRUT05fV0lUSF9ESVNBQkxFOjpRdWVyeURpc2FibGUodm9pZCljb25zdCANCis/UXVlcnlEaXNhYmxlQEdSQVBISUNBTF9CVVRUT05fV0lUSF9ESVNBQkxFQEBRQkVQQVVIQklUTUFQX19AQFhaDQorOyBwdWJsaWM6IGNsYXNzIERJU1BMQVlfTUFQICogX190aGlzY2FsbCBCUk9XU0VSX0RPTUFJTl9DQjo6UXVlcnlEaXNwbGF5TWFwKGNsYXNzIEJST1dTRVJfRE9NQUlOX0xCSSBjb25zdCAqKQ0KKz9RdWVyeURpc3BsYXlNYXBAQlJPV1NFUl9ET01BSU5fQ0JAQFFBRVBBVkRJU1BMQVlfTUFQQEBQQlZCUk9XU0VSX0RPTUFJTl9MQklAQEBaDQorOyBwdWJsaWM6IGNsYXNzIERJU1BMQVlfTUFQICogX190aGlzY2FsbCBETV9EVEU6OlF1ZXJ5RGlzcGxheU1hcCh2b2lkKWNvbnN0IA0KKz9RdWVyeURpc3BsYXlNYXBARE1fRFRFQEBRQkVQQVZESVNQTEFZX01BUEBAWFoNCis7IHB1YmxpYzogY2xhc3MgRElTUExBWV9NQVAgKiBfX3RoaXNjYWxsIFNVQkpFQ1RfQklUTUFQX0JMT0NLOjpRdWVyeURpc3BsYXlNYXAoaW50LGludCxpbnQpDQorP1F1ZXJ5RGlzcGxheU1hcEBTVUJKRUNUX0JJVE1BUF9CTE9DS0BAUUFFUEFWRElTUExBWV9NQVBAQEhISEBaDQorOyBwdWJsaWM6IGNsYXNzIERJU1BMQVlfTUFQICogX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEI6OlF1ZXJ5RGlzcGxheU1hcChjbGFzcyBVU0VSX0JST1dTRVJfTEJJIGNvbnN0ICopDQorP1F1ZXJ5RGlzcGxheU1hcEBVU0VSX0JST1dTRVJfTEJAQFFBRVBBVkRJU1BMQVlfTUFQQEBQQlZVU0VSX0JST1dTRVJfTEJJQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgQlJPV1NFUl9ET01BSU46OlF1ZXJ5RGlzcGxheU5hbWUodm9pZCljb25zdCANCis/UXVlcnlEaXNwbGF5TmFtZUBCUk9XU0VSX0RPTUFJTkBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIEJST1dTRVJfRE9NQUlOX0xCSTo6UXVlcnlEaXNwbGF5TmFtZSh2b2lkKWNvbnN0IA0KKz9RdWVyeURpc3BsYXlOYW1lQEJST1dTRVJfRE9NQUlOX0xCSUBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQkk6OlF1ZXJ5RGlzcGxheU5hbWUodm9pZCljb25zdCANCis/UXVlcnlEaXNwbGF5TmFtZUBVU0VSX0JST1dTRVJfTEJJQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBETV9EVEU6OlF1ZXJ5RGlzcGxheVdpZHRoKHZvaWQpY29uc3QgDQorP1F1ZXJ5RGlzcGxheVdpZHRoQERNX0RURUBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBVSV9FWFQ6OlF1ZXJ5RGxsTmFtZSh2b2lkKWNvbnN0IA0KKz9RdWVyeURsbE5hbWVAVUlfRVhUQEBRQkVQQkdYWg0KKzsgcHVibGljOiBjbGFzcyBETV9EVEUgKiBfX3RoaXNjYWxsIE9VVExJTkVfTElTVEJPWDo6UXVlcnlEbUR0ZShlbnVtIE9VVExJTkVfTEJfTEVWRUwsaW50KWNvbnN0IA0KKz9RdWVyeURtRHRlQE9VVExJTkVfTElTVEJPWEBAUUJFUEFWRE1fRFRFQEBXNE9VVExJTkVfTEJfTEVWRUxAQEhAWg0KKzsgcHVibGljOiBjbGFzcyBETUlEX0RURSAqIF9fdGhpc2NhbGwgU1VCSkVDVF9CSVRNQVBfQkxPQ0s6OlF1ZXJ5RG1EdGUoaW50LGludCxpbnQpDQorP1F1ZXJ5RG1EdGVAU1VCSkVDVF9CSVRNQVBfQkxPQ0tAQFFBRVBBVkRNSURfRFRFQEBISEhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgT0xMQl9FTlRSWTo6UXVlcnlEb21haW4odm9pZCljb25zdCANCis/UXVlcnlEb21haW5AT0xMQl9FTlRSWUBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgQlJPV1NFX0RPTUFJTl9FTlVNOjpRdWVyeURvbWFpbkNvdW50KHZvaWQpDQorP1F1ZXJ5RG9tYWluQ291bnRAQlJPV1NFX0RPTUFJTl9FTlVNQEBRQUVJWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExTQV9UUkFOU0xBVEVEX05BTUVfTUVNOjpRdWVyeURvbWFpbkluZGV4KHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP1F1ZXJ5RG9tYWluSW5kZXhATFNBX1RSQU5TTEFURURfTkFNRV9NRU1AQFFCRUpLQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExTQV9UUkFOU0xBVEVEX1NJRF9NRU06OlF1ZXJ5RG9tYWluSW5kZXgodW5zaWduZWQgbG9uZyljb25zdCANCis/UXVlcnlEb21haW5JbmRleEBMU0FfVFJBTlNMQVRFRF9TSURfTUVNQEBRQkVKS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBCUk9XU0VSX0RPTUFJTjo6UXVlcnlEb21haW5OYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5RG9tYWluTmFtZUBCUk9XU0VSX0RPTUFJTkBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIEJST1dTRVJfU1VCSkVDVDo6UXVlcnlEb21haW5OYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5RG9tYWluTmFtZUBCUk9XU0VSX1NVQkpFQ1RAQFFCRVBCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBCUk9XU0VfRE9NQUlOX0lORk86OlF1ZXJ5RG9tYWluTmFtZSh2b2lkKWNvbnN0IA0KKz9RdWVyeURvbWFpbk5hbWVAQlJPV1NFX0RPTUFJTl9JTkZPQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgVVNFUl9CUk9XU0VSX0xCSTo6UXVlcnlEb21haW5OYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5RG9tYWluTmFtZUBVU0VSX0JST1dTRVJfTEJJQEBRQkVQQkdYWg0KKzsgcHVibGljOiBjbGFzcyBPU19TSUQgY29uc3QgKiBfX3RoaXNjYWxsIEJST1dTRVJfRE9NQUlOOjpRdWVyeURvbWFpblNpZCh2b2lkKWNvbnN0IA0KKz9RdWVyeURvbWFpblNpZEBCUk9XU0VSX0RPTUFJTkBAUUJFUEJWT1NfU0lEQEBYWg0KKzsgcHVibGljOiBjbGFzcyBPU19TSUQgY29uc3QgKiBfX3RoaXNjYWxsIEJST1dTRVJfU1VCSkVDVDo6UXVlcnlEb21haW5TaWQodm9pZCljb25zdCANCis/UXVlcnlEb21haW5TaWRAQlJPV1NFUl9TVUJKRUNUQEBRQkVQQlZPU19TSURAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDT05UUk9MX1dJTkRPVzo6UXVlcnlFZGl0Q2xhc3NOYW1lKHZvaWQpDQorP1F1ZXJ5RWRpdENsYXNzTmFtZUBDT05UUk9MX1dJTkRPV0BAS0dQQkdYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1VMQ19FTlRSWV9CQVNFICogX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFOjpRdWVyeUVudHJ5UHRyKGludCkNCis/UXVlcnlFbnRyeVB0ckBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFQEBRQUVQQVVfVUxDX0VOVFJZX0JBU0VAQEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQVNTT0NIV05EUERMRzo6UXVlcnlFcnJvcih2b2lkKWNvbnN0IA0KKz9RdWVyeUVycm9yQEFTU09DSFdORFBETEdAQFFCRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQVNTT0NIV05EUFdORDo6UXVlcnlFcnJvcih2b2lkKWNvbnN0IA0KKz9RdWVyeUVycm9yQEFTU09DSFdORFBXTkRAQFFCRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQkFTRTo6UXVlcnlFcnJvcih2b2lkKWNvbnN0IA0KKz9RdWVyeUVycm9yQEJBU0VAQFFCRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ09OVFJPTF9XSU5ET1c6OlF1ZXJ5RXJyb3Iodm9pZCljb25zdCANCis/UXVlcnlFcnJvckBDT05UUk9MX1dJTkRPV0BAUUJFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBGT1JXQVJESU5HX0JBU0U6OlF1ZXJ5RXJyb3Iodm9pZCljb25zdCANCis/UXVlcnlFcnJvckBGT1JXQVJESU5HX0JBU0VAQFFCRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0xUX0VMTElQU0lTOjpRdWVyeUVycm9yKHZvaWQpY29uc3QgDQorP1F1ZXJ5RXJyb3JAU0xUX0VMTElQU0lTQEBRQkVKWFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIEdFVF9GTkFNRV9CQVNFX0RMRzo6UXVlcnlFcnJvckNvZGUodm9pZCljb25zdCANCis/UXVlcnlFcnJvckNvZGVAR0VUX0ZOQU1FX0JBU0VfRExHQEBJQkVKWFoNCis7IHB1YmxpYzogY2xhc3MgVVNFUl9CUk9XU0VSX0xCSSAqIF9fdGhpc2NhbGwgVVNFUl9CUk9XU0VSX0xCOjpRdWVyeUVycm9yTEJJKHZvaWQpY29uc3QgDQorP1F1ZXJ5RXJyb3JMQklAVVNFUl9CUk9XU0VSX0xCQEBRQkVQQVZVU0VSX0JST1dTRVJfTEJJQEBYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQlJPV1NFUl9ET01BSU46OlF1ZXJ5RXJyb3JMb2FkaW5nQXV0aG9yaXR5KHZvaWQpY29uc3QgDQorP1F1ZXJ5RXJyb3JMb2FkaW5nQXV0aG9yaXR5QEJST1dTRVJfRE9NQUlOQEBRQkVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIERPTUFJTl9GSUxMX1RIUkVBRDo6UXVlcnlFcnJvckxvYWRpbmdBdXRob3JpdHkodm9pZCljb25zdCANCis/UXVlcnlFcnJvckxvYWRpbmdBdXRob3JpdHlARE9NQUlOX0ZJTExfVEhSRUFEQEBRQkVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBBUlJPV19CVVRUT046OlF1ZXJ5RXZlbnRFZmZlY3RzKGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJikNCis/UXVlcnlFdmVudEVmZmVjdHNAQVJST1dfQlVUVE9OQEBNQUVJQUJWQ09OVFJPTF9FVkVOVEBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBCVVRUT05fQ09OVFJPTDo6UXVlcnlFdmVudEVmZmVjdHMoY2xhc3MgQ09OVFJPTF9FVkVOVCBjb25zdCAmKQ0KKz9RdWVyeUV2ZW50RWZmZWN0c0BCVVRUT05fQ09OVFJPTEBATUFFSUFCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgQ09NQk9CT1g6OlF1ZXJ5RXZlbnRFZmZlY3RzKGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJikNCis/UXVlcnlFdmVudEVmZmVjdHNAQ09NQk9CT1hAQE1BRUlBQlZDT05UUk9MX0VWRU5UQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIENPTlRST0xfVkFMVUU6OlF1ZXJ5RXZlbnRFZmZlY3RzKGNsYXNzIENPTlRST0xfRVZFTlQgY29uc3QgJikNCis/UXVlcnlFdmVudEVmZmVjdHNAQ09OVFJPTF9WQUxVRUBAVUFFSUFCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgRURJVF9DT05UUk9MOjpRdWVyeUV2ZW50RWZmZWN0cyhjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYpDQorP1F1ZXJ5RXZlbnRFZmZlY3RzQEVESVRfQ09OVFJPTEBATUFFSUFCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTElTVF9DT05UUk9MOjpRdWVyeUV2ZW50RWZmZWN0cyhjbGFzcyBDT05UUk9MX0VWRU5UIGNvbnN0ICYpDQorP1F1ZXJ5RXZlbnRFZmZlY3RzQExJU1RfQ09OVFJPTEBATUFFSUFCVkNPTlRST0xfRVZFTlRAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEhJRVJfTEJJOjpRdWVyeUV4cGFuZGVkKHZvaWQpY29uc3QgDQorP1F1ZXJ5RXhwYW5kZWRASElFUl9MQklAQFFCRUhYWg0KKzsgcHVibGljOiBjbGFzcyBTTElTVF9PRl9VSV9FWFQgKiBfX3RoaXNjYWxsIFVJX0VYVF9NR1I6OlF1ZXJ5RXh0ZW5zaW9ucyh2b2lkKQ0KKz9RdWVyeUV4dGVuc2lvbnNAVUlfRVhUX01HUkBAUUFFUEFWU0xJU1RfT0ZfVUlfRVhUQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBTRVRfT0ZfQVVESVRfQ0FURUdPUklFUzo6UXVlcnlGYWlsZWRCYXNlQ0lEKHZvaWQpDQorP1F1ZXJ5RmFpbGVkQmFzZUNJREBTRVRfT0ZfQVVESVRfQ0FURUdPUklFU0BAUUFFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBPUEVOX0xCSV9CQVNFOjpRdWVyeUZpbGVJRCh2b2lkKWNvbnN0IA0KKz9RdWVyeUZpbGVJREBPUEVOX0xCSV9CQVNFQEBRQkVLWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEdFVF9GTkFNRV9CQVNFX0RMRzo6UXVlcnlGaWxlVGl0bGUoY2xhc3MgTkxTX1NUUiAqKWNvbnN0IA0KKz9RdWVyeUZpbGVUaXRsZUBHRVRfRk5BTUVfQkFTRV9ETEdAQFFCRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgR0VUX0ZOQU1FX0JBU0VfRExHOjpRdWVyeUZpbGVuYW1lKGNsYXNzIE5MU19TVFIgKiljb25zdCANCis/UXVlcnlGaWxlbmFtZUBHRVRfRk5BTUVfQkFTRV9ETEdAQFFCRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBIRUFQX0JBU0U6OlF1ZXJ5Rmlyc3RMZWFmKHZvaWQpY29uc3QgDQorP1F1ZXJ5Rmlyc3RMZWFmQEhFQVBfQkFTRUBASUJFSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBBQ0NPVU5UX05BTUVTX01MRTo6UXVlcnlGbGFncyh2b2lkKWNvbnN0IA0KKz9RdWVyeUZsYWdzQEFDQ09VTlRfTkFNRVNfTUxFQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0c6OlF1ZXJ5RmxhZ3Modm9pZCljb25zdCANCis/UXVlcnlGbGFnc0BOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRQkVLWFoNCis7IHB1YmxpYzogc3RydWN0IEhGT05UX18gKiBfX3RoaXNjYWxsIENPTlRST0xfV0lORE9XOjpRdWVyeUZvbnQodm9pZCljb25zdCANCis/UXVlcnlGb250QENPTlRST0xfV0lORE9XQEBRQkVQQVVIRk9OVF9fQEBYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBERVZJQ0VfQ09OVEVYVDo6UXVlcnlGb250SGVpZ2h0KHZvaWQpY29uc3QgDQorP1F1ZXJ5Rm9udEhlaWdodEBERVZJQ0VfQ09OVEVYVEBAUUJFSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBCUk9XU0VSX1NVQkpFQ1Q6OlF1ZXJ5RnVsbE5hbWUodm9pZCljb25zdCANCis/UXVlcnlGdWxsTmFtZUBCUk9XU0VSX1NVQkpFQ1RAQFFCRVBCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEJJOjpRdWVyeUZ1bGxOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5RnVsbE5hbWVAVVNFUl9CUk9XU0VSX0xCSUBAUUJFUEJHWFoNCis7IHB1YmxpYzogY2xhc3MgQ09OVFJPTF9HUk9VUCAqIF9fdGhpc2NhbGwgQ09OVFJPTF9WQUxVRTo6UXVlcnlHcm91cCh2b2lkKWNvbnN0IA0KKz9RdWVyeUdyb3VwQENPTlRST0xfVkFMVUVAQFFCRVBBVkNPTlRST0xfR1JPVVBAQFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBOVF9HUk9VUF9FTlVNX09CSjo6UXVlcnlHcm91cChjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5R3JvdXBATlRfR1JPVVBfRU5VTV9PQkpAQFFCRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBjbGFzcyBDT05UUk9MX0dST1VQICogX190aGlzY2FsbCBTUElOX0lURU06OlF1ZXJ5R3JvdXAodm9pZCkNCis/UXVlcnlHcm91cEBTUElOX0lURU1AQFFBRVBBVkNPTlRST0xfR1JPVVBAQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBIQUNDRUxfXyAqIF9fdGhpc2NhbGwgQUNDRUxUQUJMRTo6UXVlcnlIYW5kbGUodm9pZCljb25zdCANCis/UXVlcnlIYW5kbGVAQUNDRUxUQUJMRUBAUUJFUEFVSEFDQ0VMX19AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgQVRPTV9CQVNFOjpRdWVyeUhhbmRsZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUhhbmRsZUBBVE9NX0JBU0VAQFFCRUdYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSEJJVE1BUF9fICogX190aGlzY2FsbCBCSVRfTUFQOjpRdWVyeUhhbmRsZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUhhbmRsZUBCSVRfTUFQQEBRQkVQQVVIQklUTUFQX19AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBIRk9OVF9fICogX190aGlzY2FsbCBGT05UOjpRdWVyeUhhbmRsZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUhhbmRsZUBGT05UQEBRQkVQQVVIRk9OVF9fQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSE1FTlVfXyAqIF9fdGhpc2NhbGwgTUVOVV9CQVNFOjpRdWVyeUhhbmRsZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUhhbmRsZUBNRU5VX0JBU0VAQFFCRVBBVUhNRU5VX19AQFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3RoaXNjYWxsIFNBTV9PQkpFQ1Q6OlF1ZXJ5SGFuZGxlKHZvaWQpY29uc3QgDQorP1F1ZXJ5SGFuZGxlQFNBTV9PQkpFQ1RAQFFCRVBBWFhaDQorOyBwdWJsaWM6IHN0cnVjdCBIQlJVU0hfXyAqIF9fdGhpc2NhbGwgU09MSURfQlJVU0g6OlF1ZXJ5SGFuZGxlKHZvaWQpY29uc3QgDQorP1F1ZXJ5SGFuZGxlQFNPTElEX0JSVVNIQEBRQkVQQVVIQlJVU0hfX0BAWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgV0lOMzJfSEFORExFOjpRdWVyeUhhbmRsZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUhhbmRsZUBXSU4zMl9IQU5ETEVAQFFCRVBBWFhaDQorOyBwdWJsaWM6IHN0cnVjdCBIRENfXyAqIF9fdGhpc2NhbGwgREVWSUNFX0NPTlRFWFQ6OlF1ZXJ5SGRjKHZvaWQpY29uc3QgDQorP1F1ZXJ5SGRjQERFVklDRV9DT05URVhUQEBRQkVQQVVIRENfX0BAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgQklUX01BUDo6UXVlcnlIZWlnaHQodm9pZCljb25zdCANCis/UXVlcnlIZWlnaHRAQklUX01BUEBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIERJU1BMQVlfTUFQOjpRdWVyeUhlaWdodCh2b2lkKWNvbnN0IA0KKz9RdWVyeUhlaWdodEBESVNQTEFZX01BUEBAUUJFSVhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIExCX0NPTFVNTl9IRUFERVI6OlF1ZXJ5SGVpZ2h0KHZvaWQpDQorP1F1ZXJ5SGVpZ2h0QExCX0NPTFVNTl9IRUFERVJAQFFBRUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBTSVpFX0VWRU5UOjpRdWVyeUhlaWdodCh2b2lkKWNvbnN0IA0KKz9RdWVyeUhlaWdodEBTSVpFX0VWRU5UQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgWFlESU1FTlNJT046OlF1ZXJ5SGVpZ2h0KHZvaWQpY29uc3QgDQorP1F1ZXJ5SGVpZ2h0QFhZRElNRU5TSU9OQEBRQkVJWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQkFTRV9QQVNTV09SRF9ESUFMT0c6OlF1ZXJ5SGVscENvbnRleHQodm9pZCkNCis/UXVlcnlIZWxwQ29udGV4dEBCQVNFX1BBU1NXT1JEX0RJQUxPR0BATUFFS1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIEJBU0VfU0VUX0ZPQ1VTX0RMRzo6UXVlcnlIZWxwQ29udGV4dCh2b2lkKQ0KKz9RdWVyeUhlbHBDb250ZXh0QEJBU0VfU0VUX0ZPQ1VTX0RMR0BATUFFS1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIERJQUxPR19XSU5ET1c6OlF1ZXJ5SGVscENvbnRleHQodm9pZCkNCis/UXVlcnlIZWxwQ29udGV4dEBESUFMT0dfV0lORE9XQEBNQUVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIEdFVF9GTkFNRV9CQVNFX0RMRzo6UXVlcnlIZWxwQ29udGV4dCh2b2lkKQ0KKz9RdWVyeUhlbHBDb250ZXh0QEdFVF9GTkFNRV9CQVNFX0RMR0BAUUFFS1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIE1TR1BPUFVQX0RJQUxPRzo6UXVlcnlIZWxwQ29udGV4dCh2b2lkKQ0KKz9RdWVyeUhlbHBDb250ZXh0QE1TR1BPUFVQX0RJQUxPR0BATUFFS1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIE5UX0ZJTkRfQUNDT1VOVF9ESUFMT0c6OlF1ZXJ5SGVscENvbnRleHQodm9pZCkNCis/UXVlcnlIZWxwQ29udGV4dEBOVF9GSU5EX0FDQ09VTlRfRElBTE9HQEBNQUVLWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgTlRfR0xPQkFMR1JPVVBfQlJPV1NFUl9ESUFMT0c6OlF1ZXJ5SGVscENvbnRleHQodm9pZCkNCis/UXVlcnlIZWxwQ29udGV4dEBOVF9HTE9CQUxHUk9VUF9CUk9XU0VSX0RJQUxPR0BATUFFS1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIE5UX0xPQ0FMR1JPVVBfQlJPV1NFUl9ESUFMT0c6OlF1ZXJ5SGVscENvbnRleHQodm9pZCkNCis/UXVlcnlIZWxwQ29udGV4dEBOVF9MT0NBTEdST1VQX0JST1dTRVJfRElBTE9HQEBNQUVLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6UXVlcnlIZWxwQ29udGV4dCh2b2lkKQ0KKz9RdWVyeUhlbHBDb250ZXh0QE5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQFVBRUtYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBPUEVOX0RJQUxPR19CQVNFOjpRdWVyeUhlbHBDb250ZXh0KHZvaWQpDQorP1F1ZXJ5SGVscENvbnRleHRAT1BFTl9ESUFMT0dfQkFTRUBATUFFS1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFBST01QVF9GT1JfQU5ZX0RDX0RMRzo6UXVlcnlIZWxwQ29udGV4dCh2b2lkKQ0KKz9RdWVyeUhlbHBDb250ZXh0QFBST01QVF9GT1JfQU5ZX0RDX0RMR0BATUFFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpRdWVyeUhlbHBDb250ZXh0R2xvYmFsTWVtYmVyc2hpcCh2b2lkKQ0KKz9RdWVyeUhlbHBDb250ZXh0R2xvYmFsTWVtYmVyc2hpcEBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRQUVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0c6OlF1ZXJ5SGVscENvbnRleHRMb2NhbE1lbWJlcnNoaXAodm9pZCkNCis/UXVlcnlIZWxwQ29udGV4dExvY2FsTWVtYmVyc2hpcEBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRQUVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0c6OlF1ZXJ5SGVscENvbnRleHRTZWFyY2godm9pZCkNCis/UXVlcnlIZWxwQ29udGV4dFNlYXJjaEBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRQUVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIEFTU09DSENGSUxFOjpRdWVyeUhlbHBGaWxlKHZvaWQpY29uc3QgDQorP1F1ZXJ5SGVscEZpbGVAQVNTT0NIQ0ZJTEVAQFFCRVBCR1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIEJBU0VfU0VUX0ZPQ1VTX0RMRzo6UXVlcnlIZWxwRmlsZSh1bnNpZ25lZCBsb25nKQ0KKz9RdWVyeUhlbHBGaWxlQEJBU0VfU0VUX0ZPQ1VTX0RMR0BATUFFUEJHS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIERJQUxPR19XSU5ET1c6OlF1ZXJ5SGVscEZpbGUodW5zaWduZWQgbG9uZykNCis/UXVlcnlIZWxwRmlsZUBESUFMT0dfV0lORE9XQEBNQUVQQkdLQFoNCis7IHB1YmxpYzogY2xhc3MgTkxTX1NUUiAqIF9fdGhpc2NhbGwgR0VUX0ZOQU1FX0JBU0VfRExHOjpRdWVyeUhlbHBGaWxlKHZvaWQpDQorP1F1ZXJ5SGVscEZpbGVAR0VUX0ZOQU1FX0JBU0VfRExHQEBRQUVQQVZOTFNfU1RSQEBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBOVF9GSU5EX0FDQ09VTlRfRElBTE9HOjpRdWVyeUhlbHBGaWxlKHVuc2lnbmVkIGxvbmcpDQorP1F1ZXJ5SGVscEZpbGVATlRfRklORF9BQ0NPVU5UX0RJQUxPR0BATUFFUEJHS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIE5UX0dST1VQX0JST1dTRVJfRElBTE9HOjpRdWVyeUhlbHBGaWxlKHVuc2lnbmVkIGxvbmcpDQorP1F1ZXJ5SGVscEZpbGVATlRfR1JPVVBfQlJPV1NFUl9ESUFMT0dAQE1BRVBCR0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpRdWVyeUhlbHBGaWxlKHVuc2lnbmVkIGxvbmcpDQorP1F1ZXJ5SGVscEZpbGVATlRfVVNFUl9CUk9XU0VSX0RJQUxPR0BAVUFFUEJHS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIFFNT1VTRUFDVF9FVkVOVDo6UXVlcnlIaXRUZXN0KHZvaWQpY29uc3QgDQorP1F1ZXJ5SGl0VGVzdEBRTU9VU0VBQ1RfRVZFTlRAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBMSVNUQk9YOjpRdWVyeUhvcml6b250YWxFeHRlbnQodm9pZCljb25zdCANCis/UXVlcnlIb3Jpem9udGFsRXh0ZW50QExJU1RCT1hAQFFCRUlYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBCTFRfVElNRV9TUElOX0dST1VQOjpRdWVyeUhvdXIodm9pZCljb25zdCANCis/UXVlcnlIb3VyQEJMVF9USU1FX1NQSU5fR1JPVVBAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBXSU5fVElNRTo6UXVlcnlIb3VyKHZvaWQpY29uc3QgDQorP1F1ZXJ5SG91ckBXSU5fVElNRUBAUUJFSFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpRdWVyeUhvdXJzKGNsYXNzIExPR09OX0hPVVJTX1NFVFRJTkcgKiljb25zdCANCis/UXVlcnlIb3Vyc0BMT0dPTl9IT1VSU19DT05UUk9MQEBRQkVKUEFWTE9HT05fSE9VUlNfU0VUVElOR0BAQFoNCis7IHB1YmxpYzogc3RydWN0IEhXTkRfXyAqIF9fdGhpc2NhbGwgQ09OVFJPTF9FVkVOVDo6UXVlcnlId25kKHZvaWQpY29uc3QgDQorP1F1ZXJ5SHduZEBDT05UUk9MX0VWRU5UQEBRQkVQQVVIV05EX19AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBIV05EX18gKiBfX3RoaXNjYWxsIERJU1BBVENIRVI6OlF1ZXJ5SHduZCh2b2lkKWNvbnN0IA0KKz9RdWVyeUh3bmRARElTUEFUQ0hFUkBAUUJFUEFVSFdORF9fQEBYWg0KKzsgcHJvdGVjdGVkOiBzdHJ1Y3QgSFdORF9fICogX190aGlzY2FsbCBESVNQTEFZX0NPTlRFWFQ6OlF1ZXJ5SHduZCh2b2lkKQ0KKz9RdWVyeUh3bmRARElTUExBWV9DT05URVhUQEBJQUVQQVVIV05EX19AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBIV05EX18gKiBfX3RoaXNjYWxsIERMR0xPQUQ6OlF1ZXJ5SHduZCh2b2lkKWNvbnN0IA0KKz9RdWVyeUh3bmRARExHTE9BREBAUUJFUEFVSFdORF9fQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSFdORF9fICogX190aGlzY2FsbCBPV05JTkdXTkQ6OlF1ZXJ5SHduZCh2b2lkKWNvbnN0IA0KKz9RdWVyeUh3bmRAT1dOSU5HV05EQEBRQkVQQVVIV05EX19AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBIV05EX18gKiBfX3RoaXNjYWxsIFBXTkQySFdORDo6UXVlcnlId25kKHZvaWQpY29uc3QgDQorP1F1ZXJ5SHduZEBQV05EMkhXTkRAQFFCRVBBVUhXTkRfX0BAWFoNCis7IHB1YmxpYzogc3RydWN0IEhXTkRfXyAqIF9fdGhpc2NhbGwgV0lORE9XOjpRdWVyeUh3bmQodm9pZCljb25zdCANCis/UXVlcnlId25kQFdJTkRPV0BAUUJFUEFVSFdORF9fQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBESVNQTEFZX01BUDo6UXVlcnlJRCh2b2lkKWNvbnN0IA0KKz9RdWVyeUlEQERJU1BMQVlfTUFQQEBRQkVJWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RSSU5HX0JJVFNFVF9QQUlSOjpRdWVyeUlEKHZvaWQpDQorP1F1ZXJ5SURAU1RSSU5HX0JJVFNFVF9QQUlSQEBRQUVIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgVElNRVJfQkFTRTo6UXVlcnlJRCh2b2lkKWNvbnN0IA0KKz9RdWVyeUlEQFRJTUVSX0JBU0VAQFFCRUlYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSElDT05fXyAqIF9fdGhpc2NhbGwgQVBQX1dJTkRPVzo6UXVlcnlJY29uKHZvaWQpY29uc3QgDQorP1F1ZXJ5SWNvbkBBUFBfV0lORE9XQEBRQkVQQVVISUNPTl9fQEBYWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIE1TR1BPUFVQX0RJQUxPRzo6UXVlcnlJY29uKGVudW0gTVNHX1NFVkVSSVRZKQ0KKz9RdWVyeUljb25ATVNHUE9QVVBfRElBTE9HQEBBQUVQQkdXNE1TR19TRVZFUklUWUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgSElFUl9MQkk6OlF1ZXJ5SW5kZW50TGV2ZWwodm9pZCkNCis/UXVlcnlJbmRlbnRMZXZlbEBISUVSX0xCSUBAUUFFSFhaDQorOyBwdWJsaWM6IGNsYXNzIFNMRSAqIF9fdGhpc2NhbGwgU0xFX1NUUkxCX0dST1VQOjpRdWVyeUlucHV0U0xFKHZvaWQpY29uc3QgDQorP1F1ZXJ5SW5wdXRTTEVAU0xFX1NUUkxCX0dST1VQQEBRQkVQQVZTTEVAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFhZUkVDVCBjb25zdCAmIF9fdGhpc2NhbGwgUEFJTlRfRElTUExBWV9DT05URVhUOjpRdWVyeUludmFsaWRSZWN0KHZvaWQpY29uc3QgDQorP1F1ZXJ5SW52YWxpZFJlY3RAUEFJTlRfRElTUExBWV9DT05URVhUQEBRQkVBQlZYWVJFQ1RAQFhaDQorOyBwdWJsaWM6IGNsYXNzIExCSSAqIF9fdGhpc2NhbGwgQkxUX0xJU1RCT1g6OlF1ZXJ5SXRlbShpbnQpY29uc3QgDQorP1F1ZXJ5SXRlbUBCTFRfTElTVEJPWEBAUUJFUEFWTEJJQEBIQFoNCis7IHB1YmxpYzogY2xhc3MgTEJJICogX190aGlzY2FsbCBCTFRfTElTVEJPWDo6UXVlcnlJdGVtKHZvaWQpY29uc3QgDQorP1F1ZXJ5SXRlbUBCTFRfTElTVEJPWEBAUUJFUEFWTEJJQEBYWg0KKzsgcHVibGljOiBjbGFzcyBDT05UUk9MX0VOVFJZICogX190aGlzY2FsbCBDT05UUk9MX1RBQkxFOjpRdWVyeUl0ZW0odW5zaWduZWQgaW50KWNvbnN0IA0KKz9RdWVyeUl0ZW1AQ09OVFJPTF9UQUJMRUBAUUJFUEFWQ09OVFJPTF9FTlRSWUBASUBaDQorOyBwdWJsaWM6IGNsYXNzIE9QRU5fTEJJX0JBU0UgKiBfX3RoaXNjYWxsIE9QRU5fTEJPWF9CQVNFOjpRdWVyeUl0ZW0oaW50KWNvbnN0IA0KKz9RdWVyeUl0ZW1AT1BFTl9MQk9YX0JBU0VAQFFCRVBBVk9QRU5fTEJJX0JBU0VAQEhAWg0KKzsgcHVibGljOiBjbGFzcyBPUEVOX0xCSV9CQVNFICogX190aGlzY2FsbCBPUEVOX0xCT1hfQkFTRTo6UXVlcnlJdGVtKHZvaWQpY29uc3QgDQorP1F1ZXJ5SXRlbUBPUEVOX0xCT1hfQkFTRUBAUUJFUEFWT1BFTl9MQklfQkFTRUBAWFoNCis7IHB1YmxpYzogY2xhc3MgT0xMQl9FTlRSWSAqIF9fdGhpc2NhbGwgT1VUTElORV9MSVNUQk9YOjpRdWVyeUl0ZW0oaW50KWNvbnN0IA0KKz9RdWVyeUl0ZW1AT1VUTElORV9MSVNUQk9YQEBRQkVQQVZPTExCX0VOVFJZQEBIQFoNCis7IHB1YmxpYzogY2xhc3MgT0xMQl9FTlRSWSAqIF9fdGhpc2NhbGwgT1VUTElORV9MSVNUQk9YOjpRdWVyeUl0ZW0odm9pZCljb25zdCANCis/UXVlcnlJdGVtQE9VVExJTkVfTElTVEJPWEBAUUJFUEFWT0xMQl9FTlRSWUBAWFoNCis7IHB1YmxpYzogY2xhc3MgU1RMQklURU0gKiBfX3RoaXNjYWxsIFNUQVRFTEI6OlF1ZXJ5SXRlbSh2b2lkKWNvbnN0IA0KKz9RdWVyeUl0ZW1AU1RBVEVMQkBAUUJFUEFWU1RMQklURU1AQFhaDQorOyBwdWJsaWM6IGNsYXNzIFVTRVJfQlJPV1NFUl9MQkkgKiBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQjo6UXVlcnlJdGVtKGludCljb25zdCANCis/UXVlcnlJdGVtQFVTRVJfQlJPV1NFUl9MQkBAUUJFUEFWVVNFUl9CUk9XU0VSX0xCSUBASEBaDQorOyBwdWJsaWM6IGNsYXNzIFVTRVJfQlJPV1NFUl9MQkkgKiBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQjo6UXVlcnlJdGVtKHZvaWQpY29uc3QgDQorP1F1ZXJ5SXRlbUBVU0VSX0JST1dTRVJfTEJAQFFCRVBBVlVTRVJfQlJPV1NFUl9MQklAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgTEJJICogX190aGlzY2FsbCBVU0VSX0xCSV9DQUNIRTo6UXVlcnlJdGVtKGludCkNCis/UXVlcnlJdGVtQFVTRVJfTEJJX0NBQ0hFQEBVQUVQQVZMQklAQEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBNRU5VX0JBU0U6OlF1ZXJ5SXRlbUNvdW50KHZvaWQpY29uc3QgDQorP1F1ZXJ5SXRlbUNvdW50QE1FTlVfQkFTRUBAUUJFSFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIExJU1RfQ09OVFJPTDo6UXVlcnlJdGVtSGVpZ2h0KHVuc2lnbmVkIGludCljb25zdCANCis/UXVlcnlJdGVtSGVpZ2h0QExJU1RfQ09OVFJPTEBAUUJFSUlAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBNRU5VX0JBU0U6OlF1ZXJ5SXRlbUlEKGludCljb25zdCANCis/UXVlcnlJdGVtSURATUVOVV9CQVNFQEBRQkVJSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUklOR19MSVNUX0NPTlRST0w6OlF1ZXJ5SXRlbUxlbmd0aChpbnQpY29uc3QgDQorP1F1ZXJ5SXRlbUxlbmd0aEBTVFJJTkdfTElTVF9DT05UUk9MQEBRQkVISEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUUklOR19MSVNUX0NPTlRST0w6OlF1ZXJ5SXRlbVNpemUoaW50KWNvbnN0IA0KKz9RdWVyeUl0ZW1TaXplQFNUUklOR19MSVNUX0NPTlRST0xAQFFCRUhIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTUVOVV9CQVNFOjpRdWVyeUl0ZW1TdGF0ZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9RdWVyeUl0ZW1TdGF0ZUBNRU5VX0JBU0VAQFFCRUlJSUBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBNRU5VX0JBU0U6OlF1ZXJ5SXRlbVRleHQodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCANCis/UXVlcnlJdGVtVGV4dEBNRU5VX0JBU0VAQFFCRUpQQUdJSUlAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTUVOVV9CQVNFOjpRdWVyeUl0ZW1UZXh0KGNsYXNzIE5MU19TVFIgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9RdWVyeUl0ZW1UZXh0QE1FTlVfQkFTRUBAUUJFSlBBVk5MU19TVFJAQElJQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUklOR19MSVNUX0NPTlRST0w6OlF1ZXJ5SXRlbVRleHQodW5zaWduZWQgc2hvcnQgKixpbnQsaW50KWNvbnN0IA0KKz9RdWVyeUl0ZW1UZXh0QFNUUklOR19MSVNUX0NPTlRST0xAQFFCRUpQQUdISEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTVFJJTkdfTElTVF9DT05UUk9MOjpRdWVyeUl0ZW1UZXh0KGNsYXNzIE5MU19TVFIgKiljb25zdCANCis/UXVlcnlJdGVtVGV4dEBTVFJJTkdfTElTVF9DT05UUk9MQEBRQkVKUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNUUklOR19MSVNUX0NPTlRST0w6OlF1ZXJ5SXRlbVRleHQoY2xhc3MgTkxTX1NUUiAqLGludCljb25zdCANCis/UXVlcnlJdGVtVGV4dEBTVFJJTkdfTElTVF9DT05UUk9MQEBRQkVKUEFWTkxTX1NUUkBASEBaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgU1RSSU5HX0xJU1RfQ09OVFJPTDo6UXVlcnlJdGVtVGV4dEF1eCh1bnNpZ25lZCBzaG9ydCAqLGludCljb25zdCANCis/UXVlcnlJdGVtVGV4dEF1eEBTVFJJTkdfTElTVF9DT05UUk9MQEBBQkVKUEFHSEBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBISUVSX0xCSTo6UXVlcnlMQkluZGV4KHZvaWQpDQorP1F1ZXJ5TEJJbmRleEBISUVSX0xCSUBAQUFFSFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBFVkVOVDo6UXVlcnlMUGFyYW0odm9pZCljb25zdCANCis/UXVlcnlMUGFyYW1ARVZFTlRAQFFCRUpYWg0KKzsgcHVibGljOiBjbGFzcyBMU0FfUE9MSUNZICogX190aGlzY2FsbCBCUk9XU0VSX0RPTUFJTjo6UXVlcnlMU0FQb2xpY3kodm9pZCljb25zdCANCis/UXVlcnlMU0FQb2xpY3lAQlJPV1NFUl9ET01BSU5AQFFCRVBBVkxTQV9QT0xJQ1lAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFNUQVRFTEIgKiBfX3RoaXNjYWxsIFNUQVRFTEJHUlA6OlF1ZXJ5TGIodm9pZCkNCis/UXVlcnlMYkBTVEFURUxCR1JQQEBRQUVQQVZTVEFURUxCQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgQlJPV1NFUl9ET01BSU5fTEJJOjpRdWVyeUxlYWRpbmdDaGFyKHZvaWQpY29uc3QgDQorP1F1ZXJ5TGVhZGluZ0NoYXJAQlJPV1NFUl9ET01BSU5fTEJJQEBVQkVHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBfX3RoaXNjYWxsIEJST1dTRVJfRE9NQUlOX0xCSV9QQjo6UXVlcnlMZWFkaW5nQ2hhcih2b2lkKWNvbnN0IA0KKz9RdWVyeUxlYWRpbmdDaGFyQEJST1dTRVJfRE9NQUlOX0xCSV9QQkBAVUJFR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBMQkk6OlF1ZXJ5TGVhZGluZ0NoYXIodm9pZCljb25zdCANCis/UXVlcnlMZWFkaW5nQ2hhckBMQklAQFVCRUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgT0xMQl9FTlRSWTo6UXVlcnlMZWFkaW5nQ2hhcih2b2lkKWNvbnN0IA0KKz9RdWVyeUxlYWRpbmdDaGFyQE9MTEJfRU5UUllAQFVCRUdYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgT1BFTl9MQklfQkFTRTo6UXVlcnlMZWFkaW5nQ2hhcih2b2lkKWNvbnN0IA0KKz9RdWVyeUxlYWRpbmdDaGFyQE9QRU5fTEJJX0JBU0VAQE1CRUdYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgU1RMQklURU06OlF1ZXJ5TGVhZGluZ0NoYXIodm9pZCljb25zdCANCis/UXVlcnlMZWFkaW5nQ2hhckBTVExCSVRFTUBATUJFR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEJJOjpRdWVyeUxlYWRpbmdDaGFyKHZvaWQpY29uc3QgDQorP1F1ZXJ5TGVhZGluZ0NoYXJAVVNFUl9CUk9XU0VSX0xCSUBAVUJFR1haDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFhZUkVDVDo6UXVlcnlMZWZ0KHZvaWQpY29uc3QgDQorP1F1ZXJ5TGVmdEBYWVJFQ1RAQFFCRUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBIRUFQX0JBU0U6OlF1ZXJ5TGVmdENoaWxkKGludCljb25zdCANCis/UXVlcnlMZWZ0Q2hpbGRASEVBUF9CQVNFQEBJQkVISEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgRFRFOjpRdWVyeUxlZnRNYXJnaW4odm9pZCljb25zdCANCis/UXVlcnlMZWZ0TWFyZ2luQERURUBAVUJFSVhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTUVUQUxMSUNfU1RSX0RURTo6UXVlcnlMZWZ0TWFyZ2luKHZvaWQpY29uc3QgDQorP1F1ZXJ5TGVmdE1hcmdpbkBNRVRBTExJQ19TVFJfRFRFQEBVQkVJWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgT0xMQl9FTlRSWTo6UXVlcnlMZXZlbCh2b2lkKWNvbnN0IA0KKz9RdWVyeUxldmVsQE9MTEJfRU5UUllAQFFCRUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0hBTkdFQUJMRV9TUElOX0lURU06OlF1ZXJ5TGltaXQodm9pZCljb25zdCANCis/UXVlcnlMaW1pdEBDSEFOR0VBQkxFX1NQSU5fSVRFTUBAUUJFS1haDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ09OU09MRV9FTExJUFNJUzo6UXVlcnlMaW1pdCh2b2lkKQ0KKz9RdWVyeUxpbWl0QENPTlNPTEVfRUxMSVBTSVNAQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFdJTl9FTExJUFNJUzo6UXVlcnlMaW1pdCh2b2lkKQ0KKz9RdWVyeUxpbWl0QFdJTl9FTExJUFNJU0BATUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDT05UUk9MX1dJTkRPVzo6UXVlcnlMaXN0Ym94Q2xhc3NOYW1lKHZvaWQpDQorP1F1ZXJ5TGlzdGJveENsYXNzTmFtZUBDT05UUk9MX1dJTkRPV0BAS0dQQkdYWg0KKzsgbG9uZyBfX3N0ZGNhbGwgUXVlcnlMb2dnZWRPbkRvbWFpbkluZm8oY2xhc3MgTkxTX1NUUiAqLGNsYXNzIE5MU19TVFIgKikNCis/UXVlcnlMb2dnZWRPbkRvbWFpbkluZm9AQFlHSlBBVk5MU19TVFJAQDBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgQlJPV1NFUl9ET01BSU46OlF1ZXJ5THNhTG9va3VwTmFtZSh2b2lkKWNvbnN0IA0KKz9RdWVyeUxzYUxvb2t1cE5hbWVAQlJPV1NFUl9ET01BSU5AQFFCRVBCR1haDQorOyBwdWJsaWM6IHN0cnVjdCBIQklUTUFQX18gKiBfX3RoaXNjYWxsIEdSQVBISUNBTF9CVVRUT05fV0lUSF9ESVNBQkxFOjpRdWVyeU1haW4odm9pZCljb25zdCANCis/UXVlcnlNYWluQEdSQVBISUNBTF9CVVRUT05fV0lUSF9ESVNBQkxFQEBRQkVQQVVIQklUTUFQX19AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBIQklUTUFQX18gKiBfX3RoaXNjYWxsIEdSQVBISUNBTF9CVVRUT05fV0lUSF9ESVNBQkxFOjpRdWVyeU1haW5JbnZlcnQodm9pZCljb25zdCANCis/UXVlcnlNYWluSW52ZXJ0QEdSQVBISUNBTF9CVVRUT05fV0lUSF9ESVNBQkxFQEBRQkVQQVVIQklUTUFQX19AQFhaDQorOyBwdWJsaWM6IGNsYXNzIERJU1BMQVlfTUFQICogY29uc3QgKiBfX3RoaXNjYWxsIFNUQVRFTEI6OlF1ZXJ5TWFwQXJyYXkodm9pZCljb25zdCANCis/UXVlcnlNYXBBcnJheUBTVEFURUxCQEBRQkVQQlFBVkRJU1BMQVlfTUFQQEBYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBTVEFURUxCOjpRdWVyeU1hcENvdW50KHZvaWQpY29uc3QgDQorP1F1ZXJ5TWFwQ291bnRAU1RBVEVMQkBAUUJFSFhaDQorOyBwdWJsaWM6IGNsYXNzIEJJVEZJRUxEICogX190aGlzY2FsbCBBVURJVF9DSEVDS0JPWEVTOjpRdWVyeU1hc2sodm9pZCkNCis/UXVlcnlNYXNrQEFVRElUX0NIRUNLQk9YRVNAQFFBRVBBVkJJVEZJRUxEQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSEJJVE1BUF9fICogX190aGlzY2FsbCBESVNQTEFZX01BUDo6UXVlcnlNYXNrSGFuZGxlKHZvaWQpY29uc3QgDQorP1F1ZXJ5TWFza0hhbmRsZUBESVNQTEFZX01BUEBAUUJFUEFVSEJJVE1BUF9fQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQkxUX01BU1RFUl9USU1FUjo6UXVlcnlNYXN0ZXJUaW1lcihjbGFzcyBCTFRfTUFTVEVSX1RJTUVSICogKikNCis/UXVlcnlNYXN0ZXJUaW1lckBCTFRfTUFTVEVSX1RJTUVSQEBTR0pQQVBBVjFAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpRdWVyeU1heCh2b2lkKWNvbnN0IA0KKz9RdWVyeU1heEBDSEFOR0VBQkxFX1NQSU5fSVRFTUBAUUJFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIFNDUk9MTEJBUjo6UXVlcnlNYXgodm9pZCljb25zdCANCis/UXVlcnlNYXhAU0NST0xMQkFSQEBRQkVJWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDT05TT0xFX0VMTElQU0lTOjpRdWVyeU1heENoYXJXaWR0aCh2b2lkKQ0KKz9RdWVyeU1heENoYXJXaWR0aEBDT05TT0xFX0VMTElQU0lTQEBNQUVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBXSU5fRUxMSVBTSVM6OlF1ZXJ5TWF4Q2hhcldpZHRoKHZvaWQpDQorP1F1ZXJ5TWF4Q2hhcldpZHRoQFdJTl9FTExJUFNJU0BATUFFSFhaDQorOyBwdWJsaWM6IHN0cnVjdCBITUVOVV9fICogX190aGlzY2FsbCBBUFBfV0lORE9XOjpRdWVyeU1lbnUodm9pZCljb25zdCANCis/UXVlcnlNZW51QEFQUF9XSU5ET1dAQFFCRVBBVUhNRU5VX19AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBITUVOVV9fICogX190aGlzY2FsbCBVSV9NRU5VX0VYVDo6UXVlcnlNZW51SGFuZGxlKHZvaWQpY29uc3QgDQorP1F1ZXJ5TWVudUhhbmRsZUBVSV9NRU5VX0VYVEBAUUJFUEFVSE1FTlVfX0BAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgRVZFTlQ6OlF1ZXJ5TWVzc2FnZSh2b2lkKWNvbnN0IA0KKz9RdWVyeU1lc3NhZ2VARVZFTlRAQFFCRUlYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBCTFRfVElNRV9TUElOX0dST1VQOjpRdWVyeU1pbih2b2lkKWNvbnN0IA0KKz9RdWVyeU1pbkBCTFRfVElNRV9TUElOX0dST1VQQEBRQkVIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpRdWVyeU1pbih2b2lkKWNvbnN0IA0KKz9RdWVyeU1pbkBDSEFOR0VBQkxFX1NQSU5fSVRFTUBAUUJFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIFNDUk9MTEJBUjo6UXVlcnlNaW4odm9pZCljb25zdCANCis/UXVlcnlNaW5AU0NST0xMQkFSQEBRQkVJWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV0lOX1RJTUU6OlF1ZXJ5TWludXRlKHZvaWQpY29uc3QgDQorP1F1ZXJ5TWludXRlQFdJTl9USU1FQEBRQkVIWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEVMQVBTRURfVElNRV9DT05UUk9MOjpRdWVyeU1pbnV0ZVZhbHVlKHZvaWQpY29uc3QgDQorP1F1ZXJ5TWludXRlVmFsdWVARUxBUFNFRF9USU1FX0NPTlRST0xAQFFCRUpYWg0KKzsgcHVibGljOiBzdHJ1Y3QgSElOU1RBTkNFX18gKiBfX3RoaXNjYWxsIEFTU09DSENGSUxFOjpRdWVyeU1vZHVsZSh2b2lkKWNvbnN0IA0KKz9RdWVyeU1vZHVsZUBBU1NPQ0hDRklMRUBAUUJFUEFVSElOU1RBTkNFX19AQFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEJMVF9EQVRFX1NQSU5fR1JPVVA6OlF1ZXJ5TW9udGgodm9pZCljb25zdCANCis/UXVlcnlNb250aEBCTFRfREFURV9TUElOX0dST1VQQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV0lOX1RJTUU6OlF1ZXJ5TW9udGgodm9pZCljb25zdCANCis/UXVlcnlNb250aEBXSU5fVElNRUBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIElOVExfUFJPRklMRTo6UXVlcnlNb250aFBvcyh2b2lkKWNvbnN0IA0KKz9RdWVyeU1vbnRoUG9zQElOVExfUFJPRklMRUBAUUJFSFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMU0FfUFJJTUFSWV9ET01fSU5GT19NRU06OlF1ZXJ5TmFtZShjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5TmFtZUBMU0FfUFJJTUFSWV9ET01fSU5GT19NRU1AQFFCRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTFNBX1JFRl9ET01BSU5fTUVNOjpRdWVyeU5hbWUodW5zaWduZWQgbG9uZyxjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5TmFtZUBMU0FfUkVGX0RPTUFJTl9NRU1AQFFCRUpLUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIExTQV9UUkFOU0xBVEVEX05BTUVfTUVNOjpRdWVyeU5hbWUodW5zaWduZWQgbG9uZyxjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5TmFtZUBMU0FfVFJBTlNMQVRFRF9OQU1FX01FTUBAUUJFSktQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTFNBX1RSVVNUX0lORk9fTUVNOjpRdWVyeU5hbWUodW5zaWduZWQgbG9uZyxjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5TmFtZUBMU0FfVFJVU1RfSU5GT19NRU1AQFFCRUpLUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNBTV9SSURfRU5VTUVSQVRJT05fTUVNOjpRdWVyeU5hbWUodW5zaWduZWQgbG9uZyxjbGFzcyBOTFNfU1RSICopY29uc3QgDQorP1F1ZXJ5TmFtZUBTQU1fUklEX0VOVU1FUkFUSU9OX01FTUBAUUJFSktQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgU0VSVkVSMV9FTlVNX09CSjo6UXVlcnlOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5TmFtZUBTRVJWRVIxX0VOVU1fT0JKQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgVUlfRE9NQUlOOjpRdWVyeU5hbWUodm9pZCljb25zdCANCis/UXVlcnlOYW1lQFVJX0RPTUFJTkBAUUJFUEJHWFoNCis7IHByb3RlY3RlZDogc3RydWN0IHRhZ09GTlcgKiBfX3RoaXNjYWxsIEdFVF9GTkFNRV9CQVNFX0RMRzo6UXVlcnlPRk4odm9pZCkNCis/UXVlcnlPRk5AR0VUX0ZOQU1FX0JBU0VfRExHQEBJQUVQQVV0YWdPRk5XQEBYWg0KKzsgcHVibGljOiBjbGFzcyBPU19TSUQgY29uc3QgKiBfX3RoaXNjYWxsIFNBTV9ET01BSU46OlF1ZXJ5T1NTSUQodm9pZCljb25zdCANCis/UXVlcnlPU1NJREBTQU1fRE9NQUlOQEBRQkVQQlZPU19TSURAQFhaDQorOyBwdWJsaWM6IGNsYXNzIE9TX1NJRCBjb25zdCAqIF9fdGhpc2NhbGwgVVNFUl9CUk9XU0VSX0xCSTo6UXVlcnlPU1NJRCh2b2lkKWNvbnN0IA0KKz9RdWVyeU9TU0lEQFVTRVJfQlJPV1NFUl9MQklAQFFCRVBCVk9TX1NJREBAWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ0FOQ0VMX1RBU0tfRElBTE9HOjpRdWVyeU9iamVjdE5hbWUoY2xhc3MgTkxTX1NUUiAqKQ0KKz9RdWVyeU9iamVjdE5hbWVAQ0FOQ0VMX1RBU0tfRElBTE9HQEBNQUVKUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogY2xhc3MgTkxTX1NUUiAgX190aGlzY2FsbCBCQVNFX0VMTElQU0lTOjpRdWVyeU9yaWdpbmFsU3RyKHZvaWQpY29uc3QgDQorP1F1ZXJ5T3JpZ2luYWxTdHJAQkFTRV9FTExJUFNJU0BAUUJFP0FWTkxTX1NUUkBAWFoNCis7IHB1YmxpYzogc3RydWN0IEhXTkRfXyAqIF9fdGhpc2NhbGwgV0lORE9XOjpRdWVyeU93bmVySHduZCh2b2lkKWNvbnN0IA0KKz9RdWVyeU93bmVySHduZEBXSU5ET1dAQFFCRVBBVUhXTkRfX0BAWFoNCis7IHB1YmxpYzogY2xhc3MgT1dORVJfV0lORE9XICogX190aGlzY2FsbCBTRVRfT0ZfQVVESVRfQ0FURUdPUklFUzo6UXVlcnlPd25lcldpbmRvdyh2b2lkKQ0KKz9RdWVyeU93bmVyV2luZG93QFNFVF9PRl9BVURJVF9DQVRFR09SSUVTQEBRQUVQQVZPV05FUl9XSU5ET1dAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBVSV9ET01BSU46OlF1ZXJ5UERDKHZvaWQpY29uc3QgDQorP1F1ZXJ5UERDQFVJX0RPTUFJTkBAUUJFUEJHWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgTFNBX0FDQ1RfRE9NX0lORk9fTUVNOjpRdWVyeVBTSUQodm9pZCljb25zdCANCis/UXVlcnlQU0lEQExTQV9BQ0NUX0RPTV9JTkZPX01FTUBAUUJFUEFYWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgTFNBX1BSSU1BUllfRE9NX0lORk9fTUVNOjpRdWVyeVBTSUQodm9pZCljb25zdCANCis/UXVlcnlQU0lEQExTQV9QUklNQVJZX0RPTV9JTkZPX01FTUBAUUJFUEFYWFoNCis7IHB1YmxpYzogdm9pZCAqIF9fdGhpc2NhbGwgTFNBX1JFRl9ET01BSU5fTUVNOjpRdWVyeVBTSUQodW5zaWduZWQgbG9uZyljb25zdCANCis/UXVlcnlQU0lEQExTQV9SRUZfRE9NQUlOX01FTUBAUUJFUEFYS0BaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3RoaXNjYWxsIExTQV9UUlVTVF9JTkZPX01FTTo6UXVlcnlQU0lEKHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP1F1ZXJ5UFNJREBMU0FfVFJVU1RfSU5GT19NRU1AQFFCRVBBWEtAWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBPU19TSUQ6OlF1ZXJ5UFNJRCh2b2lkKWNvbnN0IA0KKz9RdWVyeVBTSURAT1NfU0lEQEBRQkVQQVhYWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBTQU1fRE9NQUlOOjpRdWVyeVBTSUQodm9pZCljb25zdCANCis/UXVlcnlQU0lEQFNBTV9ET01BSU5AQFFCRVBBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQkk6OlF1ZXJ5UFNJRCh2b2lkKWNvbnN0IA0KKz9RdWVyeVBTSURAVVNFUl9CUk9XU0VSX0xCSUBAUUJFUUFYWFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgSEVBUF9CQVNFOjpRdWVyeVBhcmVudChpbnQpY29uc3QgDQorP1F1ZXJ5UGFyZW50QEhFQVBfQkFTRUBASUJFSEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQkFTRV9QQVNTV09SRF9ESUFMT0c6OlF1ZXJ5UGFzc3dvcmQoY2xhc3MgTkxTX1NUUiAqKQ0KKz9RdWVyeVBhc3N3b3JkQEJBU0VfUEFTU1dPUkRfRElBTE9HQEBRQUVKUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIE9QRU5fTEJJX0JBU0U6OlF1ZXJ5UGF0aCh2b2lkKWNvbnN0IA0KKz9RdWVyeVBhdGhAT1BFTl9MQklfQkFTRUBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIE5MU19TVFI6OlF1ZXJ5UGNoKHZvaWQpY29uc3QgDQorP1F1ZXJ5UGNoQE5MU19TVFJAQFFCRVBCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBTVFJfRFRFOjpRdWVyeVBjaCh2b2lkKWNvbnN0IA0KKz9RdWVyeVBjaEBTVFJfRFRFQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgT1BFTl9MQklfQkFTRTo6UXVlcnlQZXJtaXNzaW9ucyh2b2lkKWNvbnN0IA0KKz9RdWVyeVBlcm1pc3Npb25zQE9QRU5fTEJJX0JBU0VAQFFCRUtYWg0KKzsgcHVibGljOiBzdHJ1Y3QgdGFnUE9JTlQgIF9fdGhpc2NhbGwgWFlQT0lOVDo6UXVlcnlQb2ludCh2b2lkKWNvbnN0IA0KKz9RdWVyeVBvaW50QFhZUE9JTlRAQFFCRT9BVXRhZ1BPSU5UQEBYWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgWFlQT0lOVCAgX19zdGRjYWxsIENVUlNPUjo6UXVlcnlQb3Modm9pZCkNCis/UXVlcnlQb3NAQ1VSU09SQEBTRz9BVlhZUE9JTlRAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFhZUE9JTlQgIF9fdGhpc2NhbGwgTU9VU0VfRVZFTlQ6OlF1ZXJ5UG9zKHZvaWQpY29uc3QgDQorP1F1ZXJ5UG9zQE1PVVNFX0VWRU5UQEBRQkU/QVZYWVBPSU5UQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBTQ1JPTExCQVI6OlF1ZXJ5UG9zKHZvaWQpY29uc3QgDQorP1F1ZXJ5UG9zQFNDUk9MTEJBUkBAUUJFSVhaDQorOyBwdWJsaWM6IGNsYXNzIFhZUE9JTlQgIF9fdGhpc2NhbGwgU1BJTl9HUk9VUDo6UXVlcnlQb3Modm9pZCkNCis/UXVlcnlQb3NAU1BJTl9HUk9VUEBAUUFFP0FWWFlQT0lOVEBAWFoNCis7IHB1YmxpYzogY2xhc3MgWFlQT0lOVCAgX190aGlzY2FsbCBXSU5ET1c6OlF1ZXJ5UG9zKHZvaWQpY29uc3QgDQorP1F1ZXJ5UG9zQFdJTkRPV0BAUUJFP0FWWFlQT0lOVEBAWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV0lOMzJfVEhSRUFEOjpRdWVyeVByaW9yaXR5KHZvaWQpDQorP1F1ZXJ5UHJpb3JpdHlAV0lOMzJfVEhSRUFEQEBRQUVIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFBST0NfSU5TVEFOQ0U6OlF1ZXJ5UHJvYyh2b2lkKWNvbnN0IA0KKz9RdWVyeVByb2NAUFJPQ19JTlNUQU5DRUBAUUJFS1haDQorOyBwdWJsaWM6IGNsYXNzIE5MU19TVFIgKiBfX3RoaXNjYWxsIElURVJfU0xfTkxTX1NUUjo6UXVlcnlQcm9wKHZvaWQpDQorP1F1ZXJ5UHJvcEBJVEVSX1NMX05MU19TVFJAQFFBRVBBVk5MU19TVFJAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFVTRVJfQlJPV1NFUl9MQkkgKiBfX3RoaXNjYWxsIElURVJfU0xfVVNFUl9CUk9XU0VSX0xCSTo6UXVlcnlQcm9wKHZvaWQpDQorP1F1ZXJ5UHJvcEBJVEVSX1NMX1VTRVJfQlJPV1NFUl9MQklAQFFBRVBBVlVTRVJfQlJPV1NFUl9MQklAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBJRFJFU09VUkNFOjpRdWVyeVBzeih2b2lkKWNvbnN0IA0KKz9RdWVyeVBzekBJRFJFU09VUkNFQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBCTFRfU0NSQVRDSDo6UXVlcnlQdHIodm9pZCljb25zdCANCis/UXVlcnlQdHJAQkxUX1NDUkFUQ0hAQFFCRVBBRVhaDQorOyBwdWJsaWM6IHN0cnVjdCBfUE9MSUNZX0FDQ09VTlRfRE9NQUlOX0lORk8gY29uc3QgKiBfX3RoaXNjYWxsIExTQV9BQ0NUX0RPTV9JTkZPX01FTTo6UXVlcnlQdHIodm9pZCljb25zdCANCis/UXVlcnlQdHJATFNBX0FDQ1RfRE9NX0lORk9fTUVNQEBRQkVQQlVfUE9MSUNZX0FDQ09VTlRfRE9NQUlOX0lORk9AQFhaDQorOyBwdWJsaWM6IHN0cnVjdCBfUE9MSUNZX1BSSU1BUllfRE9NQUlOX0lORk8gY29uc3QgKiBfX3RoaXNjYWxsIExTQV9QUklNQVJZX0RPTV9JTkZPX01FTTo6UXVlcnlQdHIodm9pZCljb25zdCANCis/UXVlcnlQdHJATFNBX1BSSU1BUllfRE9NX0lORk9fTUVNQEBRQkVQQlVfUE9MSUNZX1BSSU1BUllfRE9NQUlOX0lORk9AQFhaDQorOyBwcml2YXRlOiBzdHJ1Y3QgX0xTQV9UUlVTVF9JTkZPUk1BVElPTiBjb25zdCAqIF9fdGhpc2NhbGwgTFNBX1JFRl9ET01BSU5fTUVNOjpRdWVyeVB0cih2b2lkKWNvbnN0IA0KKz9RdWVyeVB0ckBMU0FfUkVGX0RPTUFJTl9NRU1AQEFCRVBCVV9MU0FfVFJVU1RfSU5GT1JNQVRJT05AQFhaDQorOyBwcml2YXRlOiBzdHJ1Y3QgX0xTQV9UUkFOU0xBVEVEX05BTUUgY29uc3QgKiBfX3RoaXNjYWxsIExTQV9UUkFOU0xBVEVEX05BTUVfTUVNOjpRdWVyeVB0cih2b2lkKWNvbnN0IA0KKz9RdWVyeVB0ckBMU0FfVFJBTlNMQVRFRF9OQU1FX01FTUBAQUJFUEJVX0xTQV9UUkFOU0xBVEVEX05BTUVAQFhaDQorOyBwcml2YXRlOiBzdHJ1Y3QgX0xTQV9UUkFOU0xBVEVEX1NJRCBjb25zdCAqIF9fdGhpc2NhbGwgTFNBX1RSQU5TTEFURURfU0lEX01FTTo6UXVlcnlQdHIodm9pZCljb25zdCANCis/UXVlcnlQdHJATFNBX1RSQU5TTEFURURfU0lEX01FTUBAQUJFUEJVX0xTQV9UUkFOU0xBVEVEX1NJREBAWFoNCis7IHB1YmxpYzogc3RydWN0IF9MU0FfVFJVU1RfSU5GT1JNQVRJT04gY29uc3QgKiBfX3RoaXNjYWxsIExTQV9UUlVTVF9JTkZPX01FTTo6UXVlcnlQdHIodm9pZCljb25zdCANCis/UXVlcnlQdHJATFNBX1RSVVNUX0lORk9fTUVNQEBRQkVQQlVfTFNBX1RSVVNUX0lORk9STUFUSU9OQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1NBTV9SSURfRU5VTUVSQVRJT04gY29uc3QgKiBfX3RoaXNjYWxsIFNBTV9SSURfRU5VTUVSQVRJT05fTUVNOjpRdWVyeVB0cih2b2lkKWNvbnN0IA0KKz9RdWVyeVB0ckBTQU1fUklEX0VOVU1FUkFUSU9OX01FTUBAUUJFUEJVX1NBTV9SSURfRU5VTUVSQVRJT05AQFhaDQorOyBwcml2YXRlOiB1bnNpZ25lZCBsb25nIGNvbnN0ICogX190aGlzY2FsbCBTQU1fUklEX01FTTo6UXVlcnlQdHIodm9pZCljb25zdCANCis/UXVlcnlQdHJAU0FNX1JJRF9NRU1AQEFCRVBCS1haDQorOyBwdWJsaWM6IHZvaWQgKiAqIF9fdGhpc2NhbGwgU0FNX1NJRF9NRU06OlF1ZXJ5UHRyKHZvaWQpY29uc3QgDQorP1F1ZXJ5UHRyQFNBTV9TSURfTUVNQEBRQkVQQVBBWFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBCUk9XU0VSX1NVQkpFQ1Q6OlF1ZXJ5UXVhbGlmaWVkTmFtZShjbGFzcyBOTFNfU1RSICosY2xhc3MgTkxTX1NUUiBjb25zdCAqLGludCljb25zdCANCis/UXVlcnlRdWFsaWZpZWROYW1lQEJST1dTRVJfU1VCSkVDVEBAUUJFSlBBVk5MU19TVFJAQFBCVjJASEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIENPTlRST0xWQUxfQ0lEX1BBSVI6OlF1ZXJ5UkJDSUQodm9pZCljb25zdCANCis/UXVlcnlSQkNJREBDT05UUk9MVkFMX0NJRF9QQUlSQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIExTQV9UUkFOU0xBVEVEX1NJRF9NRU06OlF1ZXJ5UklEKHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP1F1ZXJ5UklEQExTQV9UUkFOU0xBVEVEX1NJRF9NRU1AQFFCRUtLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTlRfR1JPVVBfRU5VTV9PQko6OlF1ZXJ5UklEKHZvaWQpY29uc3QgDQorP1F1ZXJ5UklEQE5UX0dST1VQX0VOVU1fT0JKQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFNBTV9SSURfRU5VTUVSQVRJT05fTUVNOjpRdWVyeVJJRCh1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9RdWVyeVJJREBTQU1fUklEX0VOVU1FUkFUSU9OX01FTUBAUUJFS0tAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgU0FNX1JJRF9NRU06OlF1ZXJ5UklEKHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP1F1ZXJ5UklEQFNBTV9SSURfTUVNQEBRQkVLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6UXVlcnlSYW5nZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVJhbmdlQENIQU5HRUFCTEVfU1BJTl9JVEVNQEBRQkVLWFoNCis7IHByb3RlY3RlZDogY2xhc3MgUFVTSF9CVVRUT04gKiBfX3RoaXNjYWxsIFNMRV9TVFJMQl9HUk9VUDo6UXVlcnlSZW1vdmVCdXR0b24odm9pZCljb25zdCANCis/UXVlcnlSZW1vdmVCdXR0b25AU0xFX1NUUkxCX0dST1VQQEBJQkVQQVZQVVNIX0JVVFRPTkBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgS0VZX0VWRU5UOjpRdWVyeVJlcGVhdCh2b2lkKWNvbnN0IA0KKz9RdWVyeVJlcGVhdEBLRVlfRVZFTlRAQFFCRUlYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBYWVJFQ1Q6OlF1ZXJ5UmlnaHQodm9pZCljb25zdCANCis/UXVlcnlSaWdodEBYWVJFQ1RAQFFCRUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBIRUFQX0JBU0U6OlF1ZXJ5UmlnaHRTaWJsaW5nKGludCljb25zdCANCis/UXVlcnlSaWdodFNpYmxpbmdASEVBUF9CQVNFQEBJQkVISEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgc3RydWN0IEhXTkRfXyAqIF9fdGhpc2NhbGwgQ0xJRU5UX1dJTkRPVzo6UXVlcnlSb2J1c3RId25kKHZvaWQpY29uc3QgDQorP1F1ZXJ5Um9idXN0SHduZEBDTElFTlRfV0lORE9XQEBVQkVQQVVIV05EX19AQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgc3RydWN0IEhXTkRfXyAqIF9fdGhpc2NhbGwgRElBTE9HX1dJTkRPVzo6UXVlcnlSb2J1c3RId25kKHZvaWQpY29uc3QgDQorP1F1ZXJ5Um9idXN0SHduZEBESUFMT0dfV0lORE9XQEBVQkVQQVVIV05EX19AQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgc3RydWN0IEhXTkRfXyAqIF9fdGhpc2NhbGwgRElTUEFUQ0hFUjo6UXVlcnlSb2J1c3RId25kKHZvaWQpY29uc3QgDQorP1F1ZXJ5Um9idXN0SHduZEBESVNQQVRDSEVSQEBVQkVQQVVIV05EX19AQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIFNFVF9PRl9BVURJVF9DQVRFR09SSUVTOjpRdWVyeVNMVEJhc2VDSUQodm9pZCkNCis/UXVlcnlTTFRCYXNlQ0lEQFNFVF9PRl9BVURJVF9DQVRFR09SSUVTQEBRQUVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTElTVEJPWDo6UXVlcnlTY3JvbGxQb3Modm9pZCljb25zdCANCis/UXVlcnlTY3JvbGxQb3NATElTVEJPWEBAUUJFSVhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEJMVF9USU1FX1NQSU5fR1JPVVA6OlF1ZXJ5U2VjKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2VjQEJMVF9USU1FX1NQSU5fR1JPVVBAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBXSU5fVElNRTo6UXVlcnlTZWNvbmQodm9pZCljb25zdCANCis/UXVlcnlTZWNvbmRAV0lOX1RJTUVAQFFCRUhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgRUxBUFNFRF9USU1FX0NPTlRST0w6OlF1ZXJ5U2Vjb25kVmFsdWUodm9pZCljb25zdCANCis/UXVlcnlTZWNvbmRWYWx1ZUBFTEFQU0VEX1RJTUVfQ09OVFJPTEBAUUJFSlhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIExJU1RfQ09OVFJPTDo6UXVlcnlTZWxDb3VudCh2b2lkKWNvbnN0IA0KKz9RdWVyeVNlbENvdW50QExJU1RfQ09OVFJPTEBAUUJFSFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMSVNUX0NPTlRST0w6OlF1ZXJ5U2VsSXRlbXMoaW50ICosaW50KWNvbnN0IA0KKz9RdWVyeVNlbEl0ZW1zQExJU1RfQ09OVFJPTEBAUUJFSlBBSEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBHUkFQSElDQUxfQlVUVE9OX1dJVEhfRElTQUJMRTo6UXVlcnlTZWxlY3RlZCh2b2lkKWNvbnN0IA0KKz9RdWVyeVNlbGVjdGVkQEdSQVBISUNBTF9CVVRUT05fV0lUSF9ESVNBQkxFQEBRQkVIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTUFHSUNfR1JPVVA6OlF1ZXJ5U2VsZWN0aW9uKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2VsZWN0aW9uQE1BR0lDX0dST1VQQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgUkFESU9fR1JPVVA6OlF1ZXJ5U2VsZWN0aW9uKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2VsZWN0aW9uQFJBRElPX0dST1VQQEBRQkVJWFoNCis7IHB1YmxpYzogY2xhc3MgU0xJU1RfT0ZfVVNFUl9CUk9XU0VSX0xCSSAqIF9fdGhpc2NhbGwgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6UXVlcnlTZWxlY3Rpb25DYWNoZSh2b2lkKQ0KKz9RdWVyeVNlbGVjdGlvbkNhY2hlQE5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQFFBRVBBVlNMSVNUX09GX1VTRVJfQlJPV1NFUl9MQklAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFNMSVNUX09GX1VTRVJfQlJPV1NFUl9MQkkgKiBfX3RoaXNjYWxsIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0c6OlF1ZXJ5U2VsZWN0aW9uTGlzdCh2b2lkKQ0KKz9RdWVyeVNlbGVjdGlvbkxpc3RATlRfVVNFUl9CUk9XU0VSX0RJQUxPR0BAUUFFUEFWU0xJU1RfT0ZfVVNFUl9CUk9XU0VSX0xCSUBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIEFETUlOX0FVVEhPUklUWTo6UXVlcnlTZXJ2ZXIodm9pZCljb25zdCANCis/UXVlcnlTZXJ2ZXJAQURNSU5fQVVUSE9SSVRZQEBRQkVQQkdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgT0xMQl9FTlRSWTo6UXVlcnlTZXJ2ZXIodm9pZCljb25zdCANCis/UXVlcnlTZXJ2ZXJAT0xMQl9FTlRSWUBAUUJFUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIE9QRU5fRElBTE9HX0JBU0U6OlF1ZXJ5U2VydmVyKHZvaWQpY29uc3QgDQorP1F1ZXJ5U2VydmVyQE9QRU5fRElBTE9HX0JBU0VAQFFCRVBCR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBOVF9VU0VSX0JST1dTRVJfRElBTE9HOjpRdWVyeVNlcnZlclJlc291cmNlTGl2ZXNPbih2b2lkKWNvbnN0IA0KKz9RdWVyeVNlcnZlclJlc291cmNlTGl2ZXNPbkBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRQkVQQkdYWg0KKzsgcHVibGljOiBjbGFzcyBPU19TSUQgY29uc3QgKiBfX3RoaXNjYWxsIEJST1dTRVJfU1VCSkVDVDo6UXVlcnlTaWQodm9pZCljb25zdCANCis/UXVlcnlTaWRAQlJPV1NFUl9TVUJKRUNUQEBRQkVQQlZPU19TSURAQFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3RoaXNjYWxsIE9TX1NJRDo6UXVlcnlTaWQodm9pZCljb25zdCANCis/UXVlcnlTaWRAT1NfU0lEQEBRQkVQQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBCTFRfTElTVEJPWDo6UXVlcnlTaW5nbGVMaW5lSGVpZ2h0KHZvaWQpDQorP1F1ZXJ5U2luZ2xlTGluZUhlaWdodEBCTFRfTElTVEJPWEBAUUFFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIEJMVF9TQ1JBVENIOjpRdWVyeVNpemUodm9pZCljb25zdCANCis/UXVlcnlTaXplQEJMVF9TQ1JBVENIQEBRQkVJWFoNCis7IHB1YmxpYzogY2xhc3MgWFlESU1FTlNJT04gIF9fdGhpc2NhbGwgU1BJTl9HUk9VUDo6UXVlcnlTaXplKHZvaWQpDQorP1F1ZXJ5U2l6ZUBTUElOX0dST1VQQEBRQUU/QVZYWURJTUVOU0lPTkBAWFoNCis7IHB1YmxpYzogY2xhc3MgWFlESU1FTlNJT04gIF9fdGhpc2NhbGwgV0lORE9XOjpRdWVyeVNpemUodm9pZCljb25zdCANCis/UXVlcnlTaXplQFdJTkRPV0BAUUJFP0FWWFlESU1FTlNJT05AQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBXSU5ET1c6OlF1ZXJ5U2l6ZShpbnQgKixpbnQgKiljb25zdCANCis/UXVlcnlTaXplQFdJTkRPV0BAUUJFWFBBSDBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6UXVlcnlTbWFsbERlY1ZhbHVlKHZvaWQpY29uc3QgDQorP1F1ZXJ5U21hbGxEZWNWYWx1ZUBDSEFOR0VBQkxFX1NQSU5fSVRFTUBAVUJFS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFNQSU5fU0xFX1ZBTElEX1NFQ09ORDo6UXVlcnlTbWFsbERlY1ZhbHVlKHZvaWQpY29uc3QgDQorP1F1ZXJ5U21hbGxEZWNWYWx1ZUBTUElOX1NMRV9WQUxJRF9TRUNPTkRAQFVCRUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6UXVlcnlTbWFsbEluY1ZhbHVlKHZvaWQpY29uc3QgDQorP1F1ZXJ5U21hbGxJbmNWYWx1ZUBDSEFOR0VBQkxFX1NQSU5fSVRFTUBAVUJFS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFNQSU5fU0xFX1ZBTElEX1NFQ09ORDo6UXVlcnlTbWFsbEluY1ZhbHVlKHZvaWQpY29uc3QgDQorP1F1ZXJ5U21hbGxJbmNWYWx1ZUBTUElOX1NMRV9WQUxJRF9TRUNPTkRAQFVCRUtYWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBOVF9HUk9VUF9CUk9XU0VSX0RJQUxPRyAqIF9fdGhpc2NhbGwgTlRfR1JPVVBfQlJPV1NFUl9ESUFMT0c6OlF1ZXJ5U291cmNlRGlhbG9nKHZvaWQpDQorP1F1ZXJ5U291cmNlRGlhbG9nQE5UX0dST1VQX0JST1dTRVJfRElBTE9HQEBJQUVQQVYxQFhaDQorOyBwdWJsaWM6IGNsYXNzIFVTRVJfQlJPV1NFUl9MQiAqIF9fdGhpc2NhbGwgTlRfRklORF9BQ0NPVU5UX0RJQUxPRzo6UXVlcnlTb3VyY2VMaXN0Ym94KHZvaWQpDQorP1F1ZXJ5U291cmNlTGlzdGJveEBOVF9GSU5EX0FDQ09VTlRfRElBTE9HQEBRQUVQQVZVU0VSX0JST1dTRVJfTEJAQFhaDQorOyBwdWJsaWM6IGNsYXNzIFVTRVJfQlJPV1NFUl9MQiAqIF9fdGhpc2NhbGwgTlRfR1JPVVBfQlJPV1NFUl9ESUFMT0c6OlF1ZXJ5U291cmNlTGlzdGJveCh2b2lkKQ0KKz9RdWVyeVNvdXJjZUxpc3Rib3hATlRfR1JPVVBfQlJPV1NFUl9ESUFMT0dAQFFBRVBBVlVTRVJfQlJPV1NFUl9MQkBAWFoNCis7IHByb3RlY3RlZDogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgU1RBVEVfQlVUVE9OX0NPTlRST0w6OlF1ZXJ5U3RhdGUodm9pZCljb25zdCANCis/UXVlcnlTdGF0ZUBTVEFURV9CVVRUT05fQ09OVFJPTEBASUJFSVhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFNUTEJJVEVNOjpRdWVyeVN0YXRlKHZvaWQpY29uc3QgDQorP1F1ZXJ5U3RhdGVAU1RMQklURU1AQFFCRUhYWg0KKzsgcHJpdmF0ZTogZW51bSBfVEhSRUFEX1NUQVRFICBfX3RoaXNjYWxsIFdJTjMyX1RIUkVBRDo6UXVlcnlTdGF0ZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVN0YXRlQFdJTjMyX1RIUkVBREBAQUJFP0FXNF9USFJFQURfU1RBVEVAQFhaDQorOyBwcm90ZWN0ZWQ6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDT05UUk9MX1dJTkRPVzo6UXVlcnlTdGF0aWNDbGFzc05hbWUodm9pZCkNCis/UXVlcnlTdGF0aWNDbGFzc05hbWVAQ09OVFJPTF9XSU5ET1dAQEtHUEJHWFoNCis7IHB1YmxpYzogY2xhc3MgU1RSSU5HX0xJU1RCT1ggKiBfX3RoaXNjYWxsIFNMRV9TVFJMQl9HUk9VUDo6UXVlcnlTdHJMQih2b2lkKWNvbnN0IA0KKz9RdWVyeVN0ckxCQFNMRV9TVFJMQl9HUk9VUEBAUUJFUEFWU1RSSU5HX0xJU1RCT1hAQFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQ09OU09MRV9FTExJUFNJUzo6UXVlcnlTdHJMZW4odW5zaWduZWQgc2hvcnQgY29uc3QgKixpbnQpDQorP1F1ZXJ5U3RyTGVuQENPTlNPTEVfRUxMSVBTSVNAQE1BRUhQQkdIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBDT05TT0xFX0VMTElQU0lTOjpRdWVyeVN0ckxlbihjbGFzcyBOTFNfU1RSKQ0KKz9RdWVyeVN0ckxlbkBDT05TT0xFX0VMTElQU0lTQEBNQUVIVk5MU19TVFJAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgV0lOX0VMTElQU0lTOjpRdWVyeVN0ckxlbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/UXVlcnlTdHJMZW5AV0lOX0VMTElQU0lTQEBNQUVIUEJHSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgV0lOX0VMTElQU0lTOjpRdWVyeVN0ckxlbihjbGFzcyBOTFNfU1RSKQ0KKz9RdWVyeVN0ckxlbkBXSU5fRUxMSVBTSVNAQE1BRUhWTkxTX1NUUkBAQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBTUElOX1NMRV9TVFI6OlF1ZXJ5U3RyTnVtKGNsYXNzIE5MU19TVFIgY29uc3QgJixsb25nKQ0KKz9RdWVyeVN0ck51bUBTUElOX1NMRV9TVFJAQEFBRUpBQlZOTFNfU1RSQEBKQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEFUT01fQkFTRTo6UXVlcnlTdHJpbmcodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBpbnQpY29uc3QgDQorP1F1ZXJ5U3RyaW5nQEFUT01fQkFTRUBAUUJFSlBBR0lAWg0KKzsgcHVibGljOiBjbGFzcyBOTFNfU1RSICogX190aGlzY2FsbCBTVFJJTkdfQklUU0VUX1BBSVI6OlF1ZXJ5U3RyaW5nKHZvaWQpDQorP1F1ZXJ5U3RyaW5nQFNUUklOR19CSVRTRVRfUEFJUkBAUUFFUEFWTkxTX1NUUkBAWFoNCis7IHB1YmxpYzogZW51bSBFTExJUFNJU19TVFlMRSAgX190aGlzY2FsbCBCQVNFX0VMTElQU0lTOjpRdWVyeVN0eWxlKHZvaWQpY29uc3QgDQorP1F1ZXJ5U3R5bGVAQkFTRV9FTExJUFNJU0BAUUJFP0FXNEVMTElQU0lTX1NUWUxFQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgV0lORE9XOjpRdWVyeVN0eWxlKHZvaWQpY29uc3QgDQorP1F1ZXJ5U3R5bGVAV0lORE9XQEBRQkVLWFoNCis7IHB1YmxpYzogc3RydWN0IEhNRU5VX18gKiBfX3RoaXNjYWxsIE1FTlVfQkFTRTo6UXVlcnlTdWJNZW51KGludCljb25zdCANCis/UXVlcnlTdWJNZW51QE1FTlVfQkFTRUBAUUJFUEFVSE1FTlVfX0BASEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIFNFVF9PRl9BVURJVF9DQVRFR09SSUVTOjpRdWVyeVN1Y2Nlc3NCYXNlQ0lEKHZvaWQpDQorP1F1ZXJ5U3VjY2Vzc0Jhc2VDSURAU0VUX09GX0FVRElUX0NBVEVHT1JJRVNAQFFBRUlYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQkFTRV9TRVRfRk9DVVNfRExHOjpRdWVyeVN1cHBsaWVkSGVscENvbnRleHQodm9pZCkNCis/UXVlcnlTdXBwbGllZEhlbHBDb250ZXh0QEJBU0VfU0VUX0ZPQ1VTX0RMR0BASUFFS1haDQorOyBwcm90ZWN0ZWQ6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBCQVNFX1NFVF9GT0NVU19ETEc6OlF1ZXJ5U3VwcGxpZWRIZWxwRmlsZSh2b2lkKQ0KKz9RdWVyeVN1cHBsaWVkSGVscEZpbGVAQkFTRV9TRVRfRk9DVVNfRExHQEBJQUVQQkdYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQkFTRV9FTExJUFNJUzo6UXVlcnlUZXh0KHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgaW50KWNvbnN0IA0KKz9RdWVyeVRleHRAQkFTRV9FTExJUFNJU0BAUUJFSlBBR0lAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQkFTRV9FTExJUFNJUzo6UXVlcnlUZXh0KGNsYXNzIE5MU19TVFIgKiljb25zdCANCis/UXVlcnlUZXh0QEJBU0VfRUxMSVBTSVNAQFFCRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0xFX1NUUklQOjpRdWVyeVRleHQodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9RdWVyeVRleHRAU0xFX1NUUklQQEBRQkVKUEFHSVBCRzFAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0xFX1NUUklQOjpRdWVyeVRleHQoY2xhc3MgTkxTX1NUUiAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKiljb25zdCANCis/UXVlcnlUZXh0QFNMRV9TVFJJUEBAUUJFSlBBVk5MU19TVFJAQFBCRzFAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU0xUX0VMTElQU0lTOjpRdWVyeVRleHQodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBpbnQpY29uc3QgDQorP1F1ZXJ5VGV4dEBTTFRfRUxMSVBTSVNAQFFCRUpQQUdJQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNMVF9FTExJUFNJUzo6UXVlcnlUZXh0KGNsYXNzIE5MU19TVFIgKiljb25zdCANCis/UXVlcnlUZXh0QFNMVF9FTExJUFNJU0BAUUJFSlBBVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBXSU5ET1c6OlF1ZXJ5VGV4dCh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGludCljb25zdCANCis/UXVlcnlUZXh0QFdJTkRPV0BAUUJFSlBBR0lAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgV0lORE9XOjpRdWVyeVRleHQoY2xhc3MgTkxTX1NUUiAqKWNvbnN0IA0KKz9RdWVyeVRleHRAV0lORE9XQEBRQkVKUEFWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogY2xhc3MgWFlESU1FTlNJT04gIF9fdGhpc2NhbGwgREVWSUNFX0NPTlRFWFQ6OlF1ZXJ5VGV4dEV4dGVudChjbGFzcyBOTFNfU1RSIGNvbnN0ICYpY29uc3QgDQorP1F1ZXJ5VGV4dEV4dGVudEBERVZJQ0VfQ09OVEVYVEBAUUJFP0FWWFlESU1FTlNJT05AQEFCVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGNsYXNzIFhZRElNRU5TSU9OICBfX3RoaXNjYWxsIERFVklDRV9DT05URVhUOjpRdWVyeVRleHRFeHRlbnQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpY29uc3QgDQorP1F1ZXJ5VGV4dEV4dGVudEBERVZJQ0VfQ09OVEVYVEBAUUJFP0FWWFlESU1FTlNJT05AQFBCR0lAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBCQVNFX0VMTElQU0lTOjpRdWVyeVRleHRMZW5ndGgodm9pZCljb25zdCANCis/UXVlcnlUZXh0TGVuZ3RoQEJBU0VfRUxMSVBTSVNAQFFCRUhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBOTFNfU1RSOjpRdWVyeVRleHRMZW5ndGgodm9pZCljb25zdCANCis/UXVlcnlUZXh0TGVuZ3RoQE5MU19TVFJAQFFCRUlYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBXSU5ET1c6OlF1ZXJ5VGV4dExlbmd0aCh2b2lkKWNvbnN0IA0KKz9RdWVyeVRleHRMZW5ndGhAV0lORE9XQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgREVWSUNFX0NPTlRFWFQ6OlF1ZXJ5VGV4dE1ldHJpY3Moc3RydWN0IHRhZ1RFWFRNRVRSSUNXICopY29uc3QgDQorP1F1ZXJ5VGV4dE1ldHJpY3NAREVWSUNFX0NPTlRFWFRAQFFCRUhQQVV0YWdURVhUTUVUUklDV0BAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQkFTRV9FTExJUFNJUzo6UXVlcnlUZXh0U2l6ZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVRleHRTaXplQEJBU0VfRUxMSVBTSVNAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBXSU5ET1c6OlF1ZXJ5VGV4dFNpemUodm9pZCljb25zdCANCis/UXVlcnlUZXh0U2l6ZUBXSU5ET1dAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBESVNQTEFZX0NPTlRFWFQ6OlF1ZXJ5VGV4dFdpZHRoKGNsYXNzIE5MU19TVFIgY29uc3QgJiljb25zdCANCis/UXVlcnlUZXh0V2lkdGhARElTUExBWV9DT05URVhUQEBRQkVIQUJWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgRElTUExBWV9DT05URVhUOjpRdWVyeVRleHRXaWR0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCljb25zdCANCis/UXVlcnlUZXh0V2lkdGhARElTUExBWV9DT05URVhUQEBRQkVIUEJHSUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFhZUkVDVDo6UXVlcnlUb3Aodm9pZCljb25zdCANCis/UXVlcnlUb3BAWFlSRUNUQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTElTVF9DT05UUk9MOjpRdWVyeVRvcEluZGV4KHZvaWQpY29uc3QgDQorP1F1ZXJ5VG9wSW5kZXhATElTVF9DT05UUk9MQEBRQkVIWFoNCis7IHB1YmxpYzogZW51bSBfU0lEX05BTUVfVVNFICBfX3RoaXNjYWxsIEJST1dTRVJfU1VCSkVDVDo6UXVlcnlUeXBlKHZvaWQpY29uc3QgDQorP1F1ZXJ5VHlwZUBCUk9XU0VSX1NVQkpFQ1RAQFFCRT9BVzRfU0lEX05BTUVfVVNFQEBYWg0KKzsgcHVibGljOiBlbnVtIE9VVExJTkVfTEJfTEVWRUwgIF9fdGhpc2NhbGwgT0xMQl9FTlRSWTo6UXVlcnlUeXBlKHZvaWQpY29uc3QgDQorP1F1ZXJ5VHlwZUBPTExCX0VOVFJZQEBRQkU/QVc0T1VUTElORV9MQl9MRVZFTEBAWFoNCis7IHB1YmxpYzogZW51bSBfU0lEX05BTUVfVVNFICBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQkk6OlF1ZXJ5VHlwZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVR5cGVAVVNFUl9CUk9XU0VSX0xCSUBAUUJFP0FXNF9TSURfTkFNRV9VU0VAQFhaDQorOyBwdWJsaWM6IGVudW0gVUlfU3lzdGVtU2lkICBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQkk6OlF1ZXJ5VUlTeXNTaWQodm9pZCljb25zdCANCis/UXVlcnlVSVN5c1NpZEBVU0VSX0JST1dTRVJfTEJJQEBRQkU/QVc0VUlfU3lzdGVtU2lkQEBYWg0KKzsgcHJvdGVjdGVkOiBzdHJ1Y3QgX1VMQ19FTlRSWSAqIF9fdGhpc2NhbGwgVVNFUl9MQklfQ0FDSEU6OlF1ZXJ5VUxDRW50cnlQdHIoaW50KQ0KKz9RdWVyeVVMQ0VudHJ5UHRyQFVTRVJfTEJJX0NBQ0hFQEBJQUVQQVVfVUxDX0VOVFJZQEBIQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgVVNFUl9MQklfQ0FDSEU6OlF1ZXJ5VUxDRW50cnlTaXplKHZvaWQpDQorP1F1ZXJ5VUxDRW50cnlTaXplQFVTRVJfTEJJX0NBQ0hFQEBJQUVIWFoNCis7IHB1YmxpYzogc3RydWN0IF9VTklDT0RFX1NUUklORyBjb25zdCAqIF9fdGhpc2NhbGwgTlRfR1JPVVBfRU5VTV9PQko6OlF1ZXJ5VW5pY29kZUNvbW1lbnQodm9pZCljb25zdCANCis/UXVlcnlVbmljb2RlQ29tbWVudEBOVF9HUk9VUF9FTlVNX09CSkBAUUJFUEJVX1VOSUNPREVfU1RSSU5HQEBYWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1VOSUNPREVfU1RSSU5HIGNvbnN0ICogX190aGlzY2FsbCBOVF9HUk9VUF9FTlVNX09CSjo6UXVlcnlVbmljb2RlR3JvdXAodm9pZCljb25zdCANCis/UXVlcnlVbmljb2RlR3JvdXBATlRfR1JPVVBfRU5VTV9PQkpAQFFCRVBCVV9VTklDT0RFX1NUUklOR0BAWFoNCis7IHB1YmxpYzogc3RydWN0IF9VTklDT0RFX1NUUklORyBjb25zdCAqIF9fdGhpc2NhbGwgTFNBX1BSSU1BUllfRE9NX0lORk9fTUVNOjpRdWVyeVVuaWNvZGVOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5VW5pY29kZU5hbWVATFNBX1BSSU1BUllfRE9NX0lORk9fTUVNQEBRQkVQQlVfVU5JQ09ERV9TVFJJTkdAQFhaDQorOyBwcml2YXRlOiBzdHJ1Y3QgX1VOSUNPREVfU1RSSU5HIGNvbnN0ICogX190aGlzY2FsbCBMU0FfUkVGX0RPTUFJTl9NRU06OlF1ZXJ5VW5pY29kZU5hbWUodW5zaWduZWQgbG9uZyljb25zdCANCis/UXVlcnlVbmljb2RlTmFtZUBMU0FfUkVGX0RPTUFJTl9NRU1AQEFCRVBCVV9VTklDT0RFX1NUUklOR0BAS0BaDQorOyBwcml2YXRlOiBzdHJ1Y3QgX1VOSUNPREVfU1RSSU5HIGNvbnN0ICogX190aGlzY2FsbCBMU0FfVFJBTlNMQVRFRF9OQU1FX01FTTo6UXVlcnlVbmljb2RlTmFtZSh1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9RdWVyeVVuaWNvZGVOYW1lQExTQV9UUkFOU0xBVEVEX05BTUVfTUVNQEBBQkVQQlVfVU5JQ09ERV9TVFJJTkdAQEtAWg0KKzsgcHVibGljOiBzdHJ1Y3QgX1VOSUNPREVfU1RSSU5HIGNvbnN0ICogX190aGlzY2FsbCBMU0FfVFJVU1RfSU5GT19NRU06OlF1ZXJ5VW5pY29kZU5hbWUodW5zaWduZWQgbG9uZyljb25zdCANCis/UXVlcnlVbmljb2RlTmFtZUBMU0FfVFJVU1RfSU5GT19NRU1AQFFCRVBCVV9VTklDT0RFX1NUUklOR0BAS0BaDQorOyBwdWJsaWM6IHN0cnVjdCBfVU5JQ09ERV9TVFJJTkcgY29uc3QgKiBfX3RoaXNjYWxsIFNBTV9SSURfRU5VTUVSQVRJT05fTUVNOjpRdWVyeVVuaWNvZGVOYW1lKHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP1F1ZXJ5VW5pY29kZU5hbWVAU0FNX1JJRF9FTlVNRVJBVElPTl9NRU1AQFFCRVBCVV9VTklDT0RFX1NUUklOR0BAS0BaDQorOyBwdWJsaWM6IGVudW0gX1NJRF9OQU1FX1VTRSAgX190aGlzY2FsbCBMU0FfVFJBTlNMQVRFRF9OQU1FX01FTTo6UXVlcnlVc2UodW5zaWduZWQgbG9uZyljb25zdCANCis/UXVlcnlVc2VATFNBX1RSQU5TTEFURURfTkFNRV9NRU1AQFFCRT9BVzRfU0lEX05BTUVfVVNFQEBLQFoNCis7IHB1YmxpYzogZW51bSBfU0lEX05BTUVfVVNFICBfX3RoaXNjYWxsIExTQV9UUkFOU0xBVEVEX1NJRF9NRU06OlF1ZXJ5VXNlKHVuc2lnbmVkIGxvbmcpY29uc3QgDQorP1F1ZXJ5VXNlQExTQV9UUkFOU0xBVEVEX1NJRF9NRU1AQFFCRT9BVzRfU0lEX05BTUVfVVNFQEBLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQkk6OlF1ZXJ5VXNlckFjY291bnRGbGFncyh2b2lkKWNvbnN0IA0KKz9RdWVyeVVzZXJBY2NvdW50RmxhZ3NAVVNFUl9CUk9XU0VSX0xCSUBAUUJFS1haDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0cgKiBfX3RoaXNjYWxsIE5UX0dST1VQX0JST1dTRVJfRElBTE9HOjpRdWVyeVVzZXJCcm93c2VyRGlhbG9nKHZvaWQpDQorP1F1ZXJ5VXNlckJyb3dzZXJEaWFsb2dATlRfR1JPVVBfQlJPV1NFUl9ESUFMT0dAQElBRVBBVk5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBPUEVOX0xCSV9CQVNFOjpRdWVyeVVzZXJOYW1lKHZvaWQpY29uc3QgDQorP1F1ZXJ5VXNlck5hbWVAT1BFTl9MQklfQkFTRUBAUUJFUEJHWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNFVF9PRl9BVURJVF9DQVRFR09SSUVTOjpRdWVyeVVzZXJTZWxlY3RlZEJpdHMoY2xhc3MgQklURklFTEQgKixjbGFzcyBCSVRGSUVMRCAqKQ0KKz9RdWVyeVVzZXJTZWxlY3RlZEJpdHNAU0VUX09GX0FVRElUX0NBVEVHT1JJRVNAQFFBRUpQQVZCSVRGSUVMREBAMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIFZLRVlfRVZFTlQ6OlF1ZXJ5VktleSh2b2lkKWNvbnN0IA0KKz9RdWVyeVZLZXlAVktFWV9FVkVOVEBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6UXVlcnlWYWx1ZSh2b2lkKWNvbnN0IA0KKz9RdWVyeVZhbHVlQENIQU5HRUFCTEVfU1BJTl9JVEVNQEBRQkVLWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGludCBfX3N0ZGNhbGwgTUVUQUxMSUNfU1RSX0RURTo6UXVlcnlWZXJ0aWNhbE1hcmdpbnModm9pZCkNCis/UXVlcnlWZXJ0aWNhbE1hcmdpbnNATUVUQUxMSUNfU1RSX0RURUBAU0dJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgRVZFTlQ6OlF1ZXJ5V1BhcmFtKHZvaWQpY29uc3QgDQorP1F1ZXJ5V1BhcmFtQEVWRU5UQEBRQkVJWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19zdGRjYWxsIFNMRV9TVFJJUDo6UXVlcnlXaGl0ZVNwYWNlKHZvaWQpDQorP1F1ZXJ5V2hpdGVTcGFjZUBTTEVfU1RSSVBAQFNHUEJHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgQklUX01BUDo6UXVlcnlXaWR0aCh2b2lkKWNvbnN0IA0KKz9RdWVyeVdpZHRoQEJJVF9NQVBAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBESVNQTEFZX01BUDo6UXVlcnlXaWR0aCh2b2lkKWNvbnN0IA0KKz9RdWVyeVdpZHRoQERJU1BMQVlfTUFQQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgU0laRV9FVkVOVDo6UXVlcnlXaWR0aCh2b2lkKWNvbnN0IA0KKz9RdWVyeVdpZHRoQFNJWkVfRVZFTlRAQFFCRUlYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBYWURJTUVOU0lPTjo6UXVlcnlXaWR0aCh2b2lkKWNvbnN0IA0KKz9RdWVyeVdpZHRoQFhZRElNRU5TSU9OQEBRQkVJWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFdJTkRPVzo6UXVlcnlXaW5kb3dSZWN0KHN0cnVjdCB0YWdSRUNUICopY29uc3QgDQorP1F1ZXJ5V2luZG93UmVjdEBXSU5ET1dAQFFCRVhQQVV0YWdSRUNUQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgV0lORE9XOjpRdWVyeVdpbmRvd1JlY3QoY2xhc3MgWFlSRUNUICopY29uc3QgDQorP1F1ZXJ5V2luZG93UmVjdEBXSU5ET1dAQFFCRVhQQVZYWVJFQ1RAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpRdWVyeVdyYXAodm9pZCljb25zdCANCis/UXVlcnlXcmFwQENIQU5HRUFCTEVfU1BJTl9JVEVNQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgWFlQT0lOVDo6UXVlcnlYKHZvaWQpY29uc3QgDQorP1F1ZXJ5WEBYWVBPSU5UQEBRQkVIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6UXVlcnlYRm9yUm93KGludCkNCis/UXVlcnlYRm9yUm93QExPR09OX0hPVVJTX0NPTlRST0xAQFFBRUlIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgWFlQT0lOVDo6UXVlcnlZKHZvaWQpY29uc3QgDQorP1F1ZXJ5WUBYWVBPSU5UQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQkxUX0RBVEVfU1BJTl9HUk9VUDo6UXVlcnlZZWFyKHZvaWQpY29uc3QgDQorP1F1ZXJ5WWVhckBCTFRfREFURV9TUElOX0dST1VQQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV0lOX1RJTUU6OlF1ZXJ5WWVhcih2b2lkKWNvbnN0IA0KKz9RdWVyeVllYXJAV0lOX1RJTUVAQFFCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBJTlRMX1BST0ZJTEU6OlF1ZXJ5WWVhclBvcyh2b2lkKWNvbnN0IA0KKz9RdWVyeVllYXJQb3NASU5UTF9QUk9GSUxFQEBRQkVIWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBlbnVtIEZPQ1VTX0NBQ0hFX1NFVFRJTkcgIF9fdGhpc2NhbGwgQkFTRV9TRVRfRk9DVVNfRExHOjpSZWFkRm9jdXNDYWNoZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKWNvbnN0IA0KKz9SZWFkRm9jdXNDYWNoZUBCQVNFX1NFVF9GT0NVU19ETEdAQE1CRT9BVzRGT0NVU19DQUNIRV9TRVRUSU5HQEBQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgVVNFUl9MQklfQ0FDSEU6OlJlYWRVc2VycyhjbGFzcyBBRE1JTl9BVVRIT1JJVFkgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGludCxpbnQgKikNCis/UmVhZFVzZXJzQFVTRVJfTEJJX0NBQ0hFQEBRQUVKUEFWQURNSU5fQVVUSE9SSVRZQEBJSUhQQUhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgREVWSUNFX0NPTUJPOjpSZWZyZXNoKHZvaWQpDQorP1JlZnJlc2hAREVWSUNFX0NPTUJPQEBRQUVKWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIE9QRU5fRElBTE9HX0JBU0U6OlJlZnJlc2godm9pZCkNCis/UmVmcmVzaEBPUEVOX0RJQUxPR19CQVNFQEBJQUVYWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE9QRU5fTEJPWF9CQVNFOjpSZWZyZXNoKHZvaWQpDQorP1JlZnJlc2hAT1BFTl9MQk9YX0JBU0VAQFFBRUpYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBISUVSX0xJU1RCT1g6OlJlZnJlc2hDaGlsZHJlbihjbGFzcyBISUVSX0xCSSAqKQ0KKz9SZWZyZXNoQ2hpbGRyZW5ASElFUl9MSVNUQk9YQEBNQUVYUEFWSElFUl9MQklAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFVJX0VYVF9NR1I6OlJlZnJlc2hFeHRlbnNpb25zKHN0cnVjdCBIV05EX18gKikNCis/UmVmcmVzaEV4dGVuc2lvbnNAVUlfRVhUX01HUkBAVUFFWFBBVUhXTkRfX0BAQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIEJMVDo6UmVnaXN0ZXJIZWxwRmlsZShzdHJ1Y3QgSElOU1RBTkNFX18gKixsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/UmVnaXN0ZXJIZWxwRmlsZUBCTFRAQFNHSlBBVUhJTlNUQU5DRV9fQEBKS0tAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgV0lOMzJfTVVURVg6OlJlbGVhc2Uodm9pZCkNCis/UmVsZWFzZUBXSU4zMl9NVVRFWEBAUUFFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBXSU4zMl9TRU1BUEhPUkU6OlJlbGVhc2UobG9uZyxsb25nICopDQorP1JlbGVhc2VAV0lOMzJfU0VNQVBIT1JFQEBRQUVKSlBBSkBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBCTFRfTElTVEJPWDo6UmVsZWFzZUxCSShjbGFzcyBMQkkgKikNCis/UmVsZWFzZUxCSUBCTFRfTElTVEJPWEBARUFFWFBBVkxCSUBAQFoNCis7IHByaXZhdGU6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIExBWllfTElTVEJPWDo6UmVsZWFzZUxCSShjbGFzcyBMQkkgKikNCis/UmVsZWFzZUxCSUBMQVpZX0xJU1RCT1hAQEVBRVhQQVZMQklAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTElFTlRfV0lORE9XOjpSZWxlYXNlTW91c2Uodm9pZCkNCis/UmVsZWFzZU1vdXNlQENMSUVOVF9XSU5ET1dAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgRElTUEFUQ0hFUjo6UmVsZWFzZU1vdXNlKHZvaWQpDQorP1JlbGVhc2VNb3VzZUBESVNQQVRDSEVSQEBRQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgTEJfQ09MX1dJRFRIUzo6UmVsb2FkQ29sdW1uV2lkdGhzKHN0cnVjdCBIV05EX18gKixzdHJ1Y3QgSElOU1RBTkNFX18gKixjbGFzcyBJRFJFU09VUkNFIGNvbnN0ICYpDQorP1JlbG9hZENvbHVtbldpZHRoc0BMQl9DT0xfV0lEVEhTQEBVQUVKUEFVSFdORF9fQEBQQVVISU5TVEFOQ0VfX0BAQUJWSURSRVNPVVJDRUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQVJSQVlfTElTVF9DT05UUk9MVkFMX0NJRF9QQUlSOjpSZW1vdmUoY2xhc3MgQ09OVFJPTFZBTF9DSURfUEFJUiBjb25zdCAmKQ0KKz9SZW1vdmVAQVJSQVlfTElTVF9DT05UUk9MVkFMX0NJRF9QQUlSQEBRQUVIQUJWQ09OVFJPTFZBTF9DSURfUEFJUkBAQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIEhXTkRfRExHUFRSX0NBQ0hFOjpSZW1vdmUoc3RydWN0IEhXTkRfXyAqKQ0KKz9SZW1vdmVASFdORF9ETEdQVFJfQ0FDSEVAQFNHWFBBVUhXTkRfX0BAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE1FTlVfQkFTRTo6UmVtb3ZlKHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP1JlbW92ZUBNRU5VX0JBU0VAQFFCRUpJSUBaDQorOyBwdWJsaWM6IGNsYXNzIEFTU09DSENGSUxFICogX190aGlzY2FsbCBTTElTVF9PRl9BU1NPQ0hDRklMRTo6UmVtb3ZlKGNsYXNzIElURVJfU0xfQVNTT0NIQ0ZJTEUgJikNCis/UmVtb3ZlQFNMSVNUX09GX0FTU09DSENGSUxFQEBRQUVQQVZBU1NPQ0hDRklMRUBAQUFWSVRFUl9TTF9BU1NPQ0hDRklMRUBAQFoNCis7IHB1YmxpYzogc3RydWN0IENMSUVOVERBVEEgKiBfX3RoaXNjYWxsIFNMSVNUX09GX0NMSUVOVERBVEE6OlJlbW92ZShjbGFzcyBJVEVSX1NMX0NMSUVOVERBVEEgJikNCis/UmVtb3ZlQFNMSVNUX09GX0NMSUVOVERBVEFAQFFBRVBBVUNMSUVOVERBVEFAQEFBVklURVJfU0xfQ0xJRU5UREFUQUBAQFoNCis7IHB1YmxpYzogY2xhc3MgTkxTX1NUUiAqIF9fdGhpc2NhbGwgU0xJU1RfT0ZfTkxTX1NUUjo6UmVtb3ZlKGNsYXNzIElURVJfU0xfTkxTX1NUUiAmKQ0KKz9SZW1vdmVAU0xJU1RfT0ZfTkxTX1NUUkBAUUFFUEFWTkxTX1NUUkBAQUFWSVRFUl9TTF9OTFNfU1RSQEBAWg0KKzsgcHVibGljOiBjbGFzcyBUSU1FUl9CQVNFICogX190aGlzY2FsbCBTTElTVF9PRl9USU1FUl9CQVNFOjpSZW1vdmUoY2xhc3MgSVRFUl9TTF9USU1FUl9CQVNFICYpDQorP1JlbW92ZUBTTElTVF9PRl9USU1FUl9CQVNFQEBRQUVQQVZUSU1FUl9CQVNFQEBBQVZJVEVSX1NMX1RJTUVSX0JBU0VAQEBaDQorOyBwdWJsaWM6IGNsYXNzIFVTRVJfQlJPV1NFUl9MQkkgKiBfX3RoaXNjYWxsIFNMSVNUX09GX1VTRVJfQlJPV1NFUl9MQkk6OlJlbW92ZShjbGFzcyBJVEVSX1NMX1VTRVJfQlJPV1NFUl9MQkkgJikNCis/UmVtb3ZlQFNMSVNUX09GX1VTRVJfQlJPV1NFUl9MQklAQFFBRVBBVlVTRVJfQlJPV1NFUl9MQklAQEFBVklURVJfU0xfVVNFUl9CUk9XU0VSX0xCSUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEJMVF9MSVNUQk9YOjpSZW1vdmVBbGxJdGVtcyh2b2lkKQ0KKz9SZW1vdmVBbGxJdGVtc0BCTFRfTElTVEJPWEBAUUFFWFhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBCTFRJTVA6OlJlbW92ZUNsaWVudChzdHJ1Y3QgSElOU1RBTkNFX18gKikNCis/UmVtb3ZlQ2xpZW50QEJMVElNUEBAU0dYUEFVSElOU1RBTkNFX19AQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENPTlRST0xfVEFCTEU6OlJlbW92ZUNvbnRyb2woY2xhc3MgQ09OVFJPTF9XSU5ET1cgKikNCis/UmVtb3ZlQ29udHJvbEBDT05UUk9MX1RBQkxFQEBRQUVIUEFWQ09OVFJPTF9XSU5ET1dAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBBQ0NPVU5UX05BTUVTX01MRTo6UmVtb3ZlRHVwbGljYXRlQWNjb3VudE5hbWVzKGNsYXNzIFNUUkxJU1QgKikNCis/UmVtb3ZlRHVwbGljYXRlQWNjb3VudE5hbWVzQEFDQ09VTlRfTkFNRVNfTUxFQEBJQUVYUEFWU1RSTElTVEBAQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIEJMVElNUDo6UmVtb3ZlSGVscEFzc29jKHN0cnVjdCBISU5TVEFOQ0VfXyAqLHVuc2lnbmVkIGxvbmcpDQorP1JlbW92ZUhlbHBBc3NvY0BCTFRJTVBAQFNHWFBBVUhJTlNUQU5DRV9fQEBLQFoNCis7IHB1YmxpYzogY2xhc3MgTEJJICogX190aGlzY2FsbCBCTFRfTElTVEJPWDo6UmVtb3ZlSXRlbShpbnQpDQorP1JlbW92ZUl0ZW1AQkxUX0xJU1RCT1hAQFFBRVBBVkxCSUBASEBaDQorOyBwdWJsaWM6IGNsYXNzIExCSSAqIF9fdGhpc2NhbGwgVVNFUl9CUk9XU0VSX0xCOjpSZW1vdmVJdGVtKGludCkNCis/UmVtb3ZlSXRlbUBVU0VSX0JST1dTRVJfTEJAQFFBRVBBVkxCSUBASEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgTEJJICogX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFOjpSZW1vdmVJdGVtKGludCkNCis/UmVtb3ZlSXRlbUBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFQEBVQUVQQVZMQklAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIExCSSAqIF9fdGhpc2NhbGwgVVNFUl9MQklfQ0FDSEU6OlJlbW92ZUl0ZW0oaW50KQ0KKz9SZW1vdmVJdGVtQFVTRVJfTEJJX0NBQ0hFQEBVQUVQQVZMQklAQEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgTElTVF9DT05UUk9MOjpSZW1vdmVTZWxlY3Rpb24odm9pZCkNCis/UmVtb3ZlU2VsZWN0aW9uQExJU1RfQ09OVFJPTEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBCTFRfTUFTVEVSX1RJTUVSOjpSZW1vdmVUaW1lcihjbGFzcyBUSU1FUl9CQVNFICopDQorP1JlbW92ZVRpbWVyQEJMVF9NQVNURVJfVElNRVJAQFFBRVhQQVZUSU1FUl9CQVNFQEBAWg0KKzsgcHVibGljOiBjbGFzcyBMQkkgKiBfX3RoaXNjYWxsIExCSV9IRUFQOjpSZW1vdmVUb3BJdGVtKHZvaWQpDQorP1JlbW92ZVRvcEl0ZW1ATEJJX0hFQVBAQFFBRVBBVkxCSUBAWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFdJTkRPVzo6UmVwYWludE5vdyh2b2lkKQ0KKz9SZXBhaW50Tm93QFdJTkRPV0BAUUFFWFhaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBBQ0NPVU5UX05BTUVTX01MRTo6UmVwbGFjZURvbWFpbklmQnVpbHRJbihjbGFzcyBOTFNfU1RSICosaW50ICopDQorP1JlcGxhY2VEb21haW5JZkJ1aWx0SW5AQUNDT1VOVF9OQU1FU19NTEVAQElBRUpQQVZOTFNfU1RSQEBQQUhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQkxUX0xJU1RCT1g6OlJlcGxhY2VJdGVtKGludCxjbGFzcyBMQkkgKixjbGFzcyBMQkkgKiAqKQ0KKz9SZXBsYWNlSXRlbUBCTFRfTElTVEJPWEBAUUFFSkhQQVZMQklAQFBBUEFWMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQkFTRTo6UmVwb3J0RXJyb3IobG9uZykNCis/UmVwb3J0RXJyb3JAQkFTRUBASUFFWEpAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ09OVFJPTF9UQUJMRTo6UmVwb3J0RXJyb3Iodm9pZCkNCis/UmVwb3J0RXJyb3JAQ09OVFJPTF9UQUJMRUBASUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDT05UUk9MX1dJTkRPVzo6UmVwb3J0RXJyb3IobG9uZykNCis/UmVwb3J0RXJyb3JAQ09OVFJPTF9XSU5ET1dAQElBRVhKQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIEZPUldBUkRJTkdfQkFTRTo6UmVwb3J0RXJyb3IobG9uZykNCis/UmVwb3J0RXJyb3JARk9SV0FSRElOR19CQVNFQEBJQUVYSkBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBTTFRfRUxMSVBTSVM6OlJlcG9ydEVycm9yKGxvbmcpDQorP1JlcG9ydEVycm9yQFNMVF9FTExJUFNJU0BASUFFWEpAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQlJPV1NFUl9ET01BSU46OlJlcXVlc3RBY2NvdW50RGF0YSh2b2lkKQ0KKz9SZXF1ZXN0QWNjb3VudERhdGFAQlJPV1NFUl9ET01BSU5AQFFBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgRE9NQUlOX0ZJTExfVEhSRUFEOjpSZXF1ZXN0QWNjb3VudERhdGEodm9pZCkNCis/UmVxdWVzdEFjY291bnREYXRhQERPTUFJTl9GSUxMX1RIUkVBREBAUUFFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBCUk9XU0VSX0RPTUFJTjo6UmVxdWVzdEFuZFdhaXRGb3JVc2Vycyh2b2lkKQ0KKz9SZXF1ZXN0QW5kV2FpdEZvclVzZXJzQEJST1dTRVJfRE9NQUlOQEBRQUVKWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIERPTUFJTl9GSUxMX1RIUkVBRDo6UmVxdWVzdEFuZFdhaXRGb3JVc2Vycyh2b2lkKQ0KKz9SZXF1ZXN0QW5kV2FpdEZvclVzZXJzQERPTUFJTl9GSUxMX1RIUkVBREBAUUFFSlhaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGNsYXNzIExCSSAqIF9fdGhpc2NhbGwgQkxUX0xJU1RCT1g6OlJlcXVlc3RMQkkoc3RydWN0IHRhZ0RSQVdJVEVNU1RSVUNUIGNvbnN0ICopDQorP1JlcXVlc3RMQklAQkxUX0xJU1RCT1hAQEVBRVBBVkxCSUBAUEJVdGFnRFJBV0lURU1TVFJVQ1RAQEBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGNsYXNzIExCSSAqIF9fdGhpc2NhbGwgTEFaWV9MSVNUQk9YOjpSZXF1ZXN0TEJJKHN0cnVjdCB0YWdEUkFXSVRFTVNUUlVDVCBjb25zdCAqKQ0KKz9SZXF1ZXN0TEJJQExBWllfTElTVEJPWEBARUFFUEFWTEJJQEBQQlV0YWdEUkFXSVRFTVNUUlVDVEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEJST1dTRV9ET01BSU5fRU5VTTo6UmVzZXQodm9pZCkNCis/UmVzZXRAQlJPV1NFX0RPTUFJTl9FTlVNQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIElURVJfQ1RSTDo6UmVzZXQodm9pZCkNCis/UmVzZXRASVRFUl9DVFJMQEBRQUVYWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFdJTjMyX0VWRU5UOjpSZXNldCh2b2lkKQ0KKz9SZXNldEBXSU4zMl9FVkVOVEBAUUFFSlhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBQT1BVUDo6UmVzZXRDYXB0aW9uKHZvaWQpDQorP1Jlc2V0Q2FwdGlvbkBQT1BVUEBAU0dYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIFdJTkRPVzo6UmVzZXRDcmVhdG9yKHZvaWQpDQorP1Jlc2V0Q3JlYXRvckBXSU5ET1dAQElBRVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQkFTRTo6UmVzZXRFcnJvcih2b2lkKQ0KKz9SZXNldEVycm9yQEJBU0VAQElBRVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ09OVFJPTF9XSU5ET1c6OlJlc2V0RXJyb3Iodm9pZCkNCis/UmVzZXRFcnJvckBDT05UUk9MX1dJTkRPV0BASUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBGT1JXQVJESU5HX0JBU0U6OlJlc2V0RXJyb3Iodm9pZCkNCis/UmVzZXRFcnJvckBGT1JXQVJESU5HX0JBU0VAQElBRVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgU0xUX0VMTElQU0lTOjpSZXNldEVycm9yKHZvaWQpDQorP1Jlc2V0RXJyb3JAU0xUX0VMTElQU0lTQEBJQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEJMVF9NQVNURVJfVElNRVI6OlJlc2V0SXRlcmF0b3Iodm9pZCkNCis/UmVzZXRJdGVyYXRvckBCTFRfTUFTVEVSX1RJTUVSQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNMVF9FTExJUFNJUzo6UmVzZXRTdHlsZShlbnVtIEVMTElQU0lTX1NUWUxFKQ0KKz9SZXNldFN0eWxlQFNMVF9FTExJUFNJU0BAUUFFWFc0RUxMSVBTSVNfU1RZTEVAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVI6OlJlc2l6ZSh1bnNpZ25lZCBpbnQsaW50KQ0KKz9SZXNpemVAQVJSQVlfQ09OVFJPTFZBTF9DSURfUEFJUkBAUUFFSElIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEJMVF9MSVNUQk9YOjpSZXNvcnQodm9pZCkNCis/UmVzb3J0QEJMVF9MSVNUQk9YQEBRQUVKWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQkxUX0RBVEVfU1BJTl9HUk9VUDo6UmVzdG9yZVZhbHVlKGludCkNCis/UmVzdG9yZVZhbHVlQEJMVF9EQVRFX1NQSU5fR1JPVVBAQE1BRVhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQkxUX1RJTUVfU1BJTl9HUk9VUDo6UmVzdG9yZVZhbHVlKGludCkNCis/UmVzdG9yZVZhbHVlQEJMVF9USU1FX1NQSU5fR1JPVVBAQE1BRVhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQ09NQk9CT1g6OlJlc3RvcmVWYWx1ZShpbnQpDQorP1Jlc3RvcmVWYWx1ZUBDT01CT0JPWEBATUFFWEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDT05UUk9MX1ZBTFVFOjpSZXN0b3JlVmFsdWUoaW50KQ0KKz9SZXN0b3JlVmFsdWVAQ09OVFJPTF9WQUxVRUBATUFFWEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBFRElUX0NPTlRST0w6OlJlc3RvcmVWYWx1ZShpbnQpDQorP1Jlc3RvcmVWYWx1ZUBFRElUX0NPTlRST0xAQE1BRVhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgTElTVF9DT05UUk9MOjpSZXN0b3JlVmFsdWUoaW50KQ0KKz9SZXN0b3JlVmFsdWVATElTVF9DT05UUk9MQEBNQUVYSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIE1BR0lDX0dST1VQOjpSZXN0b3JlVmFsdWUoaW50KQ0KKz9SZXN0b3JlVmFsdWVATUFHSUNfR1JPVVBAQE1BRVhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgUkFESU9fR1JPVVA6OlJlc3RvcmVWYWx1ZShpbnQpDQorP1Jlc3RvcmVWYWx1ZUBSQURJT19HUk9VUEBATUFFWEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBTTFQ6OlJlc3RvcmVWYWx1ZShpbnQpDQorP1Jlc3RvcmVWYWx1ZUBTTFRAQE1BRVhIQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgU1BJTl9HUk9VUDo6UmVzdG9yZVZhbHVlKGludCkNCis/UmVzdG9yZVZhbHVlQFNQSU5fR1JPVVBAQFVBRVhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgU1RBVEVfQlVUVE9OX0NPTlRST0w6OlJlc3RvcmVWYWx1ZShpbnQpDQorP1Jlc3RvcmVWYWx1ZUBTVEFURV9CVVRUT05fQ09OVFJPTEBATUFFWEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgV0lOMzJfVEhSRUFEOjpSZXN1bWUodm9pZCkNCis/UmVzdW1lQFdJTjMyX1RIUkVBREBAUUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgQVBQTElDQVRJT046OlJ1bih2b2lkKQ0KKz9SdW5AQVBQTElDQVRJT05AQE1BRUhYWg0KKzsgcHJvdGVjdGVkOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBIQVNfTUVTU0FHRV9QVU1QOjpSdW5NZXNzYWdlUHVtcCh2b2lkKQ0KKz9SdW5NZXNzYWdlUHVtcEBIQVNfTUVTU0FHRV9QVU1QQEBJQUVJWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ0hBTkdFQUJMRV9TUElOX0lURU06OlNhdmVDdXJyZW50RGF0YSh2b2lkKQ0KKz9TYXZlQ3VycmVudERhdGFAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFVBRUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBTUElOX1NMRV9OVU06OlNhdmVDdXJyZW50RGF0YSh2b2lkKQ0KKz9TYXZlQ3VycmVudERhdGFAU1BJTl9TTEVfTlVNQEBVQUVKWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgU1BJTl9TTEVfU1RSOjpTYXZlQ3VycmVudERhdGEodm9pZCkNCis/U2F2ZUN1cnJlbnREYXRhQFNQSU5fU0xFX1NUUkBAVUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIEJMVF9EQVRFX1NQSU5fR1JPVVA6OlNhdmVWYWx1ZShpbnQpDQorP1NhdmVWYWx1ZUBCTFRfREFURV9TUElOX0dST1VQQEBNQUVYSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIEJMVF9USU1FX1NQSU5fR1JPVVA6OlNhdmVWYWx1ZShpbnQpDQorP1NhdmVWYWx1ZUBCTFRfVElNRV9TUElOX0dST1VQQEBNQUVYSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENPTUJPQk9YOjpTYXZlVmFsdWUoaW50KQ0KKz9TYXZlVmFsdWVAQ09NQk9CT1hAQE1BRVhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQ09OVFJPTF9WQUxVRTo6U2F2ZVZhbHVlKGludCkNCis/U2F2ZVZhbHVlQENPTlRST0xfVkFMVUVAQE1BRVhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgRURJVF9DT05UUk9MOjpTYXZlVmFsdWUoaW50KQ0KKz9TYXZlVmFsdWVARURJVF9DT05UUk9MQEBNQUVYSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIExJU1RfQ09OVFJPTDo6U2F2ZVZhbHVlKGludCkNCis/U2F2ZVZhbHVlQExJU1RfQ09OVFJPTEBATUFFWEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBNQUdJQ19HUk9VUDo6U2F2ZVZhbHVlKGludCkNCis/U2F2ZVZhbHVlQE1BR0lDX0dST1VQQEBNQUVYSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFJBRElPX0dST1VQOjpTYXZlVmFsdWUoaW50KQ0KKz9TYXZlVmFsdWVAUkFESU9fR1JPVVBAQE1BRVhIQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgU0xUOjpTYXZlVmFsdWUoaW50KQ0KKz9TYXZlVmFsdWVAU0xUQEBNQUVYSEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFNQSU5fR1JPVVA6OlNhdmVWYWx1ZShpbnQpDQorP1NhdmVWYWx1ZUBTUElOX0dST1VQQEBVQUVYSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFNUQVRFX0JVVFRPTl9DT05UUk9MOjpTYXZlVmFsdWUoaW50KQ0KKz9TYXZlVmFsdWVAU1RBVEVfQlVUVE9OX0NPTlRST0xAQE1BRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFhZUE9JTlQ6OlNjcmVlblRvQ2xpZW50KHN0cnVjdCBIV05EX18gKikNCis/U2NyZWVuVG9DbGllbnRAWFlQT0lOVEBAUUFFWFBBVUhXTkRfX0BAQFoNCis7IHB1YmxpYzogc3RydWN0IEhCSVRNQVBfXyAqIF9fdGhpc2NhbGwgREVWSUNFX0NPTlRFWFQ6OlNlbGVjdEJpdG1hcChzdHJ1Y3QgSEJJVE1BUF9fICopDQorP1NlbGVjdEJpdG1hcEBERVZJQ0VfQ09OVEVYVEBAUUFFUEFVSEJJVE1BUF9fQEBQQVUyQEBaDQorOyBwdWJsaWM6IHN0cnVjdCBIQlJVU0hfXyAqIF9fdGhpc2NhbGwgREVWSUNFX0NPTlRFWFQ6OlNlbGVjdEJydXNoKHN0cnVjdCBIQlJVU0hfXyAqKQ0KKz9TZWxlY3RCcnVzaEBERVZJQ0VfQ09OVEVYVEBAUUFFUEFVSEJSVVNIX19AQFBBVTJAQFoNCis7IHB1YmxpYzogc3RydWN0IEhGT05UX18gKiBfX3RoaXNjYWxsIERFVklDRV9DT05URVhUOjpTZWxlY3RGb250KHN0cnVjdCBIRk9OVF9fICopDQorP1NlbGVjdEZvbnRAREVWSUNFX0NPTlRFWFRAQFFBRVBBVUhGT05UX19AQFBBVTJAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEJST1dTRVJfRE9NQUlOX0NCOjpTZWxlY3RJdGVtKGNsYXNzIEJST1dTRVJfRE9NQUlOICopDQorP1NlbGVjdEl0ZW1AQlJPV1NFUl9ET01BSU5fQ0JAQFFBRVhQQVZCUk9XU0VSX0RPTUFJTkBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIExJU1RfQ09OVFJPTDo6U2VsZWN0SXRlbShpbnQsaW50KQ0KKz9TZWxlY3RJdGVtQExJU1RfQ09OVFJPTEBAUUFFWEhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIExJU1RfQ09OVFJPTDo6U2VsZWN0SXRlbXMoaW50ICosaW50LGludCkNCis/U2VsZWN0SXRlbXNATElTVF9DT05UUk9MQEBRQUVYUEFISEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIEJBU0VfU0VUX0ZPQ1VTX0RMRzo6U2VsZWN0TmV0UGF0aFN0cmluZyh2b2lkKQ0KKz9TZWxlY3ROZXRQYXRoU3RyaW5nQEJBU0VfU0VUX0ZPQ1VTX0RMR0BAQUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgKiBfX3RoaXNjYWxsIERFVklDRV9DT05URVhUOjpTZWxlY3RPYmplY3Qodm9pZCAqKQ0KKz9TZWxlY3RPYmplY3RAREVWSUNFX0NPTlRFWFRAQElBRVBBWFBBWEBaDQorOyBwdWJsaWM6IHN0cnVjdCBIUEVOX18gKiBfX3RoaXNjYWxsIERFVklDRV9DT05URVhUOjpTZWxlY3RQZW4oc3RydWN0IEhQRU5fXyAqKQ0KKz9TZWxlY3RQZW5AREVWSUNFX0NPTlRFWFRAQFFBRVBBVUhQRU5fX0BAUEFVMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ09NQk9CT1g6OlNlbGVjdFN0cmluZyh2b2lkKQ0KKz9TZWxlY3RTdHJpbmdAQ09NQk9CT1hAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgRURJVF9DT05UUk9MOjpTZWxlY3RTdHJpbmcodm9pZCkNCis/U2VsZWN0U3RyaW5nQEVESVRfQ09OVFJPTEBAUUFFWFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBFVkVOVDo6U2VuZFRvKHN0cnVjdCBIV05EX18gKiljb25zdCANCis/U2VuZFRvQEVWRU5UQEBRQkVKUEFVSFdORF9fQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgc3RydWN0IEhJQ09OX18gKiBfX3N0ZGNhbGwgQ1VSU09SOjpTZXQoc3RydWN0IEhJQ09OX18gKikNCis/U2V0QENVUlNPUkBAU0dQQVVISUNPTl9fQEBQQVUyQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBXSU4zMl9FVkVOVDo6U2V0KHZvaWQpDQorP1NldEBXSU4zMl9FVkVOVEBAUUFFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTUElOX0lURU06OlNldEFjY0tleShjbGFzcyBOTFNfU1RSIGNvbnN0ICYpDQorP1NldEFjY0tleUBTUElOX0lURU1AQFFBRUpBQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1BJTl9JVEVNOjpTZXRBY2NLZXkobG9uZykNCis/U2V0QWNjS2V5QFNQSU5fSVRFTUBAUUFFSkpAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6U2V0QW5kRmlsbEVycm9yVGV4dChsb25nLGludCkNCis/U2V0QW5kRmlsbEVycm9yVGV4dEBOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRQUVKSkhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgU1BJTl9HUk9VUDo6U2V0QXJyb3dCdXR0b25TdGF0dXModm9pZCkNCis/U2V0QXJyb3dCdXR0b25TdGF0dXNAU1BJTl9HUk9VUEBASUFFWFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBCUk9XU0VSX0RPTUFJTjo6U2V0QXNUYXJnZXREb21haW4odm9pZCkNCis/U2V0QXNUYXJnZXREb21haW5AQlJPV1NFUl9ET01BSU5AQFFBRUpYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgSEVBUF9CQVNFOjpTZXRBdXRvUmVhZGp1c3QoaW50KQ0KKz9TZXRBdXRvUmVhZGp1c3RASEVBUF9CQVNFQEBJQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6U2V0QmlnRGVjVmFsdWUodW5zaWduZWQgbG9uZykNCis/U2V0QmlnRGVjVmFsdWVAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFFBRVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpTZXRCaWdJbmNWYWx1ZSh1bnNpZ25lZCBsb25nKQ0KKz9TZXRCaWdJbmNWYWx1ZUBDSEFOR0VBQkxFX1NQSU5fSVRFTUBAUUFFWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQklUX01BUDo6U2V0Qml0bWFwKHN0cnVjdCBIQklUTUFQX18gKikNCis/U2V0Qml0bWFwQEJJVF9NQVBAQFFBRVhQQVVIQklUTUFQX19AQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgRElTUExBWV9NQVA6OlNldEJpdG1hcEJpdHModW5zaWduZWQgY2hhciAqLGludCxpbnQsdW5zaWduZWQgaW50KQ0KKz9TZXRCaXRtYXBCaXRzQERJU1BMQVlfTUFQQEBBQUVYUEFFSEhJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIERFVklDRV9DT05URVhUOjpTZXRCa0NvbG9yKHVuc2lnbmVkIGxvbmcpDQorP1NldEJrQ29sb3JAREVWSUNFX0NPTlRFWFRAQFFBRUtLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgREVWSUNFX0NPTlRFWFQ6OlNldEJrTW9kZShpbnQpDQorP1NldEJrTW9kZUBERVZJQ0VfQ09OVEVYVEBAUUFFSEhAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgR0VUX0ZOQU1FX0JBU0VfRExHOjpTZXRCdWZmZXIoY2xhc3MgQlVGRkVSICosY2xhc3MgU1RSTElTVCAmKQ0KKz9TZXRCdWZmZXJAR0VUX0ZOQU1FX0JBU0VfRExHQEBJQUVKUEFWQlVGRkVSQEBBQVZTVFJMSVNUQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgRU5VTV9PQkpfQkFTRTo6U2V0QnVmZmVyUHRyKHVuc2lnbmVkIGNoYXIgY29uc3QgKikNCis/U2V0QnVmZmVyUHRyQEVOVU1fT0JKX0JBU0VAQElBRVhQQkVAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgT1JERVJfR1JPVVA6OlNldEJ1dHRvbih2b2lkKQ0KKz9TZXRCdXR0b25AT1JERVJfR1JPVVBAQFFBRVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgUE9QVVA6OlNldENhcHRpb24obG9uZykNCis/U2V0Q2FwdGlvbkBQT1BVUEBAU0dYSkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBMSVNUX0NPTlRST0w6OlNldENhcmV0SW5kZXgoaW50LGludCkNCis/U2V0Q2FyZXRJbmRleEBMSVNUX0NPTlRST0xAQFFBRVhISEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBNRU5VSVRFTTo6U2V0Q2hlY2soaW50KQ0KKz9TZXRDaGVja0BNRU5VSVRFTUBAUUFFWEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIFJBRElPX0JVVFRPTjo6U2V0Q2hlY2soaW50KQ0KKz9TZXRDaGVja0BSQURJT19CVVRUT05AQEFBRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNUQVRFMl9CVVRUT05fQ09OVFJPTDo6U2V0Q2hlY2soaW50KQ0KKz9TZXRDaGVja0BTVEFURTJfQlVUVE9OX0NPTlRST0xAQFFBRVhIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNFVF9PRl9BVURJVF9DQVRFR09SSUVTOjpTZXRDaGVja0JveE5hbWVzKGNsYXNzIE1BU0tfTUFQICopDQorP1NldENoZWNrQm94TmFtZXNAU0VUX09GX0FVRElUX0NBVEVHT1JJRVNAQFFBRUpQQVZNQVNLX01BUEBAQFoNCis7IHByb3RlY3RlZDogc3RhdGljIHZvaWQgX19zdGRjYWxsIFdJTkRPVzo6U2V0Q2xpZW50R2VuZXJhdGVkTXNnRmxhZyhpbnQpDQorP1NldENsaWVudEdlbmVyYXRlZE1zZ0ZsYWdAV0lORE9XQEBLR1hIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIE1FVEVSOjpTZXRDb21wbGV0ZShpbnQpDQorP1NldENvbXBsZXRlQE1FVEVSQEBRQUVYSEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIEJMVF9EQVRFX1NQSU5fR1JPVVA6OlNldENvbnRyb2xWYWx1ZUZvY3VzKHZvaWQpDQorP1NldENvbnRyb2xWYWx1ZUZvY3VzQEJMVF9EQVRFX1NQSU5fR1JPVVBAQE1BRVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBCTFRfVElNRV9TUElOX0dST1VQOjpTZXRDb250cm9sVmFsdWVGb2N1cyh2b2lkKQ0KKz9TZXRDb250cm9sVmFsdWVGb2N1c0BCTFRfVElNRV9TUElOX0dST1VQQEBNQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQ09OVFJPTF9WQUxVRTo6U2V0Q29udHJvbFZhbHVlRm9jdXModm9pZCkNCis/U2V0Q29udHJvbFZhbHVlRm9jdXNAQ09OVFJPTF9WQUxVRUBAVUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENPTlRST0xfV0lORE9XOjpTZXRDb250cm9sVmFsdWVGb2N1cyh2b2lkKQ0KKz9TZXRDb250cm9sVmFsdWVGb2N1c0BDT05UUk9MX1dJTkRPV0BAVUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIEVESVRfQ09OVFJPTDo6U2V0Q29udHJvbFZhbHVlRm9jdXModm9pZCkNCis/U2V0Q29udHJvbFZhbHVlRm9jdXNARURJVF9DT05UUk9MQEBNQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgTUFHSUNfR1JPVVA6OlNldENvbnRyb2xWYWx1ZUZvY3VzKHZvaWQpDQorP1NldENvbnRyb2xWYWx1ZUZvY3VzQE1BR0lDX0dST1VQQEBVQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgUkFESU9fR1JPVVA6OlNldENvbnRyb2xWYWx1ZUZvY3VzKHZvaWQpDQorP1NldENvbnRyb2xWYWx1ZUZvY3VzQFJBRElPX0dST1VQQEBVQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgU1BJTl9HUk9VUDo6U2V0Q29udHJvbFZhbHVlRm9jdXModm9pZCkNCis/U2V0Q29udHJvbFZhbHVlRm9jdXNAU1BJTl9HUk9VUEBAVUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBMQVpZX0xJU1RCT1g6OlNldENvdW50KHVuc2lnbmVkIGludCkNCis/U2V0Q291bnRATEFaWV9MSVNUQk9YQEBRQUVYSUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBVU0VSX0JST1dTRVJfTEI6OlNldEN1cnJlbnRDYWNoZShjbGFzcyBVU0VSX0JST1dTRVJfTEJJX0NBQ0hFICopDQorP1NldEN1cnJlbnRDYWNoZUBVU0VSX0JST1dTRVJfTEJAQFFBRVhQQVZVU0VSX0JST1dTRVJfTEJJX0NBQ0hFQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQkxUX0RBVEVfU1BJTl9HUk9VUDo6U2V0Q3VycmVudERheSh2b2lkKQ0KKz9TZXRDdXJyZW50RGF5QEJMVF9EQVRFX1NQSU5fR1JPVVBAQFFBRUpYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6U2V0Q3VycmVudERvbWFpbkZvY3VzKGNsYXNzIEJST1dTRVJfRE9NQUlOICopDQorP1NldEN1cnJlbnREb21haW5Gb2N1c0BOVF9VU0VSX0JST1dTRVJfRElBTE9HQEBRQUVYUEFWQlJPV1NFUl9ET01BSU5AQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBTUElOX0dST1VQOjpTZXRDdXJyZW50RmllbGQoY2xhc3MgU1BJTl9JVEVNICopDQorP1NldEN1cnJlbnRGaWVsZEBTUElOX0dST1VQQEBJQUVYUEFWU1BJTl9JVEVNQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQkxUX1RJTUVfU1BJTl9HUk9VUDo6U2V0Q3VycmVudFRpbWUodm9pZCkNCis/U2V0Q3VycmVudFRpbWVAQkxUX1RJTUVfU1BJTl9HUk9VUEBAUUFFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBHRVRfRk5BTUVfQkFTRV9ETEc6OlNldEN1c3RvbUZpbHRlcihjbGFzcyBTVFJMSVNUICYsdW5zaWduZWQgbG9uZykNCis/U2V0Q3VzdG9tRmlsdGVyQEdFVF9GTkFNRV9CQVNFX0RMR0BAUUFFSkFBVlNUUkxJU1RAQEtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgRElTS19TUEFDRV9TVUJDTEFTUzo6U2V0RFNGaWVsZE5hbWUobG9uZykNCis/U2V0RFNGaWVsZE5hbWVARElTS19TUEFDRV9TVUJDTEFTU0BAUUFFWEpAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQkxUX0RBVEVfU1BJTl9HUk9VUDo6U2V0RGF5KGludCkNCis/U2V0RGF5QEJMVF9EQVRFX1NQSU5fR1JPVVBAQFFBRVhIQFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBISUVSX0xCSTo6U2V0RGVzdHJveWFibGUoaW50KQ0KKz9TZXREZXN0cm95YWJsZUBISUVSX0xCSUBAQ0dYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBPV05FUl9XSU5ET1c6OlNldERpYWxvZ0ZvY3VzKGNsYXNzIENPTlRST0xfV0lORE9XICYpDQorP1NldERpYWxvZ0ZvY3VzQE9XTkVSX1dJTkRPV0BAUUFFWEFBVkNPTlRST0xfV0lORE9XQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgTlRfVVNFUl9CUk9XU0VSX0RJQUxPRzo6U2V0RG9tYWluQ29tYm9Ecm9wRmxhZyhpbnQpDQorP1NldERvbWFpbkNvbWJvRHJvcEZsYWdATlRfVVNFUl9CUk9XU0VSX0RJQUxPR0BASUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgT1VUTElORV9MSVNUQk9YOjpTZXREb21haW5FeHBhbmRlZChpbnQsaW50KQ0KKz9TZXREb21haW5FeHBhbmRlZEBPVVRMSU5FX0xJU1RCT1hAQFFBRVhISEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBCQVNFX0VMTElQU0lTOjpTZXRFbGxpcHNpcyh1bnNpZ25lZCBzaG9ydCAqKQ0KKz9TZXRFbGxpcHNpc0BCQVNFX0VMTElQU0lTQEBRQUVKUEFHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEJBU0VfRUxMSVBTSVM6OlNldEVsbGlwc2lzKGNsYXNzIE5MU19TVFIgKikNCis/U2V0RWxsaXBzaXNAQkFTRV9FTExJUFNJU0BAUUFFSlBBVk5MU19TVFJAQEBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBCQVNFX0VMTElQU0lTOjpTZXRFbGxpcHNpc0NlbnRlcihjbGFzcyBOTFNfU1RSICopDQorP1NldEVsbGlwc2lzQ2VudGVyQEJBU0VfRUxMSVBTSVNAQElBRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQkFTRV9FTExJUFNJUzo6U2V0RWxsaXBzaXNMZWZ0KGNsYXNzIE5MU19TVFIgKikNCis/U2V0RWxsaXBzaXNMZWZ0QEJBU0VfRUxMSVBTSVNAQElBRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQkFTRV9FTExJUFNJUzo6U2V0RWxsaXBzaXNQYXRoKGNsYXNzIE5MU19TVFIgKikNCis/U2V0RWxsaXBzaXNQYXRoQEJBU0VfRUxMSVBTSVNAQElBRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQkFTRV9FTExJUFNJUzo6U2V0RWxsaXBzaXNSaWdodChjbGFzcyBOTFNfU1RSICopDQorP1NldEVsbGlwc2lzUmlnaHRAQkFTRV9FTExJUFNJU0BASUFFSlBBVk5MU19TVFJAQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBHRVRfRk5BTUVfQkFTRV9ETEc6OlNldEVuYWJsZUhvb2soaW50KQ0KKz9TZXRFbmFibGVIb29rQEdFVF9GTkFNRV9CQVNFX0RMR0BASUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgSElFUl9MQkk6OlNldEV4cGFuZGVkKGludCkNCis/U2V0RXhwYW5kZWRASElFUl9MQklAQFFBRVhIQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBPTExCX0VOVFJZOjpTZXRFeHBhbmRlZChpbnQpDQorP1NldEV4cGFuZGVkQE9MTEJfRU5UUllAQEFBRVhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1BJTl9HUk9VUDo6U2V0RmllbGRNaW5NYXgodW5zaWduZWQgc2hvcnQpDQorP1NldEZpZWxkTWluTWF4QFNQSU5fR1JPVVBAQFFBRUhHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFNQSU5fU0xFX05VTV9WQUxJRDo6U2V0RmllbGROYW1lKGxvbmcpDQorP1NldEZpZWxkTmFtZUBTUElOX1NMRV9OVU1fVkFMSURAQFFBRUpKQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEdFVF9GTkFNRV9CQVNFX0RMRzo6U2V0RmlsZUV4dGVuc2lvbihjbGFzcyBOTFNfU1RSIGNvbnN0ICYpDQorP1NldEZpbGVFeHRlbnNpb25AR0VUX0ZOQU1FX0JBU0VfRExHQEBRQUVKQUJWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEdFVF9GTkFNRV9CQVNFX0RMRzo6U2V0RmlsdGVyKGNsYXNzIFNUUkxJU1QgJix1bnNpZ25lZCBsb25nKQ0KKz9TZXRGaWx0ZXJAR0VUX0ZOQU1FX0JBU0VfRExHQEBRQUVKQUFWU1RSTElTVEBAS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBNTEU6OlNldEZtdExpbmVzKGludCkNCis/U2V0Rm10TGluZXNATUxFQEBRQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBPV05FUl9XSU5ET1c6OlNldEZvY3VzKHVuc2lnbmVkIGludCkNCis/U2V0Rm9jdXNAT1dORVJfV0lORE9XQEBRQUVYSUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDT05UUk9MX1dJTkRPVzo6U2V0Rm9udChzdHJ1Y3QgSEZPTlRfXyAqLGludCkNCis/U2V0Rm9udEBDT05UUk9MX1dJTkRPV0BAUUFFWFBBVUhGT05UX19AQEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgRk9OVDo6U2V0Rm9udChzdHJ1Y3QgdGFnTE9HRk9OVFcgY29uc3QgJikNCis/U2V0Rm9udEBGT05UQEBRQUVKQUJVdGFnTE9HRk9OVFdAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBGT05UOjpTZXRGb250KHN0cnVjdCBIRk9OVF9fICopDQorP1NldEZvbnRARk9OVEBAUUFFSlBBVUhGT05UX19AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDT05UUk9MX1ZBTFVFOjpTZXRHcm91cChjbGFzcyBDT05UUk9MX0dST1VQICopDQorP1NldEdyb3VwQENPTlRST0xfVkFMVUVAQFFBRVhQQVZDT05UUk9MX0dST1VQQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgTUVOVV9CQVNFOjpTZXRIYW5kbGUoc3RydWN0IEhNRU5VX18gKikNCis/U2V0SGFuZGxlQE1FTlVfQkFTRUBASUFFWFBBVUhNRU5VX19AQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBXSU4zMl9IQU5ETEU6OlNldEhhbmRsZSh2b2lkICopDQorP1NldEhhbmRsZUBXSU4zMl9IQU5ETEVAQElBRVhQQVhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgWFlESU1FTlNJT046OlNldEhlaWdodCh1bnNpZ25lZCBpbnQpDQorP1NldEhlaWdodEBYWURJTUVOU0lPTkBAUUFFWElAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgR0VUX0ZOQU1FX0JBU0VfRExHOjpTZXRIZWxwQWN0aXZlKGludCkNCis/U2V0SGVscEFjdGl2ZUBHRVRfRk5BTUVfQkFTRV9ETEdAQFFBRVhIQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIFBPUFVQOjpTZXRIZWxwQ29udGV4dEJhc2UodW5zaWduZWQgbG9uZykNCis/U2V0SGVscENvbnRleHRCYXNlQFBPUFVQQEBTR0tLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEdFVF9GTkFNRV9CQVNFX0RMRzo6U2V0SG9va1Byb2ModW5zaWduZWQgbG9uZykNCis/U2V0SG9va1Byb2NAR0VUX0ZOQU1FX0JBU0VfRExHQEBRQUVYS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBMSVNUQk9YOjpTZXRIb3Jpem9udGFsRXh0ZW50KHVuc2lnbmVkIGludCkNCis/U2V0SG9yaXpvbnRhbEV4dGVudEBMSVNUQk9YQEBRQUVYSUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBCTFRfVElNRV9TUElOX0dST1VQOjpTZXRIb3VyKGludCkNCis/U2V0SG91ckBCTFRfVElNRV9TUElOX0dST1VQQEBRQUVYSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpTZXRIb3VycyhjbGFzcyBMT0dPTl9IT1VSU19TRVRUSU5HIGNvbnN0ICopDQorP1NldEhvdXJzQExPR09OX0hPVVJTX0NPTlRST0xAQFFBRUpQQlZMT0dPTl9IT1VSU19TRVRUSU5HQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgV0lORE9XOjpTZXRId25kKHN0cnVjdCBIV05EX18gKikNCis/U2V0SHduZEBXSU5ET1dAQElBRVhQQVVIV05EX19AQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIEFQUF9XSU5ET1c6OlNldEljb24oY2xhc3MgSURSRVNPVVJDRSBjb25zdCAmKQ0KKz9TZXRJY29uQEFQUF9XSU5ET1dAQFFBRUhBQlZJRFJFU09VUkNFQEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgSUNPTl9DT05UUk9MOjpTZXRJY29uKGNsYXNzIElEUkVTT1VSQ0UgY29uc3QgJikNCis/U2V0SWNvbkBJQ09OX0NPTlRST0xAQFFBRUpBQlZJRFJFU09VUkNFQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgQ0FOQ0VMX1RBU0tfRElBTE9HOjpTZXRJblRpbWVyKGludCkNCis/U2V0SW5UaW1lckBDQU5DRUxfVEFTS19ESUFMT0dAQElBRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFVTRVJfQlJPV1NFUl9MQklfQ0FDSEU6OlNldEluY2x1ZGVVc2VycyhpbnQpDQorP1NldEluY2x1ZGVVc2Vyc0BVU0VSX0JST1dTRVJfTEJJX0NBQ0hFQEBRQUVYSEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgSElFUl9MQkk6OlNldEluZGVudExldmVsKHZvaWQpDQorP1NldEluZGVudExldmVsQEhJRVJfTEJJQEBBQUVYWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEdFVF9GTkFNRV9CQVNFX0RMRzo6U2V0SW5pdGlhbERpcihjbGFzcyBOTFNfU1RSIGNvbnN0ICYpDQorP1NldEluaXRpYWxEaXJAR0VUX0ZOQU1FX0JBU0VfRExHQEBRQUVKQUJWTkxTX1NUUkBAQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBCTFRfTElTVEJPWDo6U2V0SXRlbShpbnQsY2xhc3MgTEJJICopDQorP1NldEl0ZW1AQkxUX0xJU1RCT1hAQEFBRVhIUEFWTEJJQEBAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBMSVNUX0NPTlRST0w6OlNldEl0ZW1EYXRhKGludCx2b2lkICopDQorP1NldEl0ZW1EYXRhQExJU1RfQ09OVFJPTEBASUFFSEhQQVhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBERVZJQ0VfQ09OVEVYVDo6U2V0TWFwTW9kZShpbnQpDQorP1NldE1hcE1vZGVAREVWSUNFX0NPTlRFWFRAQFFBRUhIQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBESVNQTEFZX01BUDo6U2V0TWFza0JpdHModW5zaWduZWQgY2hhciAqLGludCxpbnQsdW5zaWduZWQgaW50KQ0KKz9TZXRNYXNrQml0c0BESVNQTEFZX01BUEBAQUFFWFBBRUhISUBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgU1BJTl9TTEVfTlVNOjpTZXRNYXhJbnB1dCh2b2lkKQ0KKz9TZXRNYXhJbnB1dEBTUElOX1NMRV9OVU1AQEFBRVhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDT01CT0JPWDo6U2V0TWF4TGVuZ3RoKHVuc2lnbmVkIGludCkNCis/U2V0TWF4TGVuZ3RoQENPTUJPQk9YQEBRQUVISUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBFRElUX0NPTlRST0w6OlNldE1heExlbmd0aCh1bnNpZ25lZCBpbnQpDQorP1NldE1heExlbmd0aEBFRElUX0NPTlRST0xAQFFBRVhJQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQVBQX1dJTkRPVzo6U2V0TWVudShjbGFzcyBJRFJFU09VUkNFIGNvbnN0ICYpDQorP1NldE1lbnVAQVBQX1dJTkRPV0BAUUFFSEFCVklEUkVTT1VSQ0VAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6U2V0TWluKHVuc2lnbmVkIGxvbmcpDQorP1NldE1pbkBDSEFOR0VBQkxFX1NQSU5fSVRFTUBAUUFFWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU1BJTl9TTEVfTlVNOjpTZXRNaW4odW5zaWduZWQgbG9uZykNCis/U2V0TWluQFNQSU5fU0xFX05VTUBAUUFFWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQkxUX1RJTUVfU1BJTl9HUk9VUDo6U2V0TWludXRlKGludCkNCis/U2V0TWludXRlQEJMVF9USU1FX1NQSU5fR1JPVVBAQFFBRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEVMQVBTRURfVElNRV9DT05UUk9MOjpTZXRNaW51dGVGaWVsZE5hbWUobG9uZykNCis/U2V0TWludXRlRmllbGROYW1lQEVMQVBTRURfVElNRV9DT05UUk9MQEBRQUVYSkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBFTEFQU0VEX1RJTUVfQ09OVFJPTDo6U2V0TWludXRlTWluKGxvbmcpDQorP1NldE1pbnV0ZU1pbkBFTEFQU0VEX1RJTUVfQ09OVFJPTEBAUUFFWEpAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgRUxBUFNFRF9USU1FX0NPTlRST0w6OlNldE1pbnV0ZVJhbmdlKGxvbmcpDQorP1NldE1pbnV0ZVJhbmdlQEVMQVBTRURfVElNRV9DT05UUk9MQEBRQUVYSkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBFTEFQU0VEX1RJTUVfQ09OVFJPTDo6U2V0TWludXRlVmFsdWUobG9uZykNCis/U2V0TWludXRlVmFsdWVARUxBUFNFRF9USU1FX0NPTlRST0xAQFFBRVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNQSU5fR1JPVVA6OlNldE1vZGlmaWVkKGludCkNCis/U2V0TW9kaWZpZWRAU1BJTl9HUk9VUEBAUUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQkxUX0RBVEVfU1BJTl9HUk9VUDo6U2V0TW9udGgoaW50KQ0KKz9TZXRNb250aEBCTFRfREFURV9TUElOX0dST1VQQEBRQUVYSEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBQT1BVUDo6U2V0TXNnTWFwVGFibGUoc3RydWN0IF9NU0dNQVBFTlRSWSAqKQ0KKz9TZXRNc2dNYXBUYWJsZUBQT1BVUEBAU0dYUEFVX01TR01BUEVOVFJZQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBCQVNFX1NFVF9GT0NVU19ETEc6OlNldE5ldHdvcmtGb2N1cyhzdHJ1Y3QgSFdORF9fICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixlbnVtIEZPQ1VTX0NBQ0hFX1NFVFRJTkcpDQorP1NldE5ldHdvcmtGb2N1c0BCQVNFX1NFVF9GT0NVU19ETEdAQE1BRUpQQVVIV05EX19AQFBCR1c0Rk9DVVNfQ0FDSEVfU0VUVElOR0BAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgU1RBTkRBTE9ORV9TRVRfRk9DVVNfRExHOjpTZXROZXR3b3JrRm9jdXMoc3RydWN0IEhXTkRfXyAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosZW51bSBGT0NVU19DQUNIRV9TRVRUSU5HKQ0KKz9TZXROZXR3b3JrRm9jdXNAU1RBTkRBTE9ORV9TRVRfRk9DVVNfRExHQEBNQUVKUEFVSFdORF9fQEBQQkdXNEZPQ1VTX0NBQ0hFX1NFVFRJTkdAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgVElNRVJfQkFTRTo6U2V0TmV3VGltZUR1ZSh2b2lkKQ0KKz9TZXROZXdUaW1lRHVlQFRJTUVSX0JBU0VAQEFBRVhYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQkFTRV9FTExJUFNJUzo6U2V0T3JpZ2luYWxTdHIodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0T3JpZ2luYWxTdHJAQkFTRV9FTExJUFNJU0BAUUFFSlBCR0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBETV9EVEU6OlNldFBkbShjbGFzcyBESVNQTEFZX01BUCAqKQ0KKz9TZXRQZG1ARE1fRFRFQEBJQUVYUEFWRElTUExBWV9NQVBAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIEhJRVJfTEJJOjpTZXRQZWxJbmRlbnQodW5zaWduZWQgaW50KQ0KKz9TZXRQZWxJbmRlbnRASElFUl9MQklAQFVBRVhJQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEFQUF9XSU5ET1c6OlNldFBsYWNlbWVudChzdHJ1Y3QgdGFnV0lORE9XUExBQ0VNRU5UIGNvbnN0ICopY29uc3QgDQorP1NldFBsYWNlbWVudEBBUFBfV0lORE9XQEBRQkVKUEJVdGFnV0lORE9XUExBQ0VNRU5UQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1VSU09SOjpTZXRQb3MoY2xhc3MgWFlQT0lOVCBjb25zdCAmKQ0KKz9TZXRQb3NAQ1VSU09SQEBTR1hBQlZYWVBPSU5UQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU0NST0xMQkFSOjpTZXRQb3ModW5zaWduZWQgaW50KQ0KKz9TZXRQb3NAU0NST0xMQkFSQEBRQUVYSUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBXSU5ET1c6OlNldFBvcyhjbGFzcyBYWVBPSU5ULGludCxjbGFzcyBXSU5ET1cgKikNCis/U2V0UG9zQFdJTkRPV0BAUUFFWFZYWVBPSU5UQEBIUEFWMUBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgSUNPTl9DT05UUk9MOjpTZXRQcmVkZWZpbmVkSWNvbihjbGFzcyBJRFJFU09VUkNFIGNvbnN0ICYpDQorP1NldFByZWRlZmluZWRJY29uQElDT05fQ09OVFJPTEBAUUFFSkFCVklEUkVTT1VSQ0VAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBXSU4zMl9USFJFQUQ6OlNldFByaW9yaXR5KGludCkNCis/U2V0UHJpb3JpdHlAV0lOMzJfVEhSRUFEQEBRQUVKSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6U2V0UmFuZ2UodW5zaWduZWQgbG9uZykNCis/U2V0UmFuZ2VAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFFBRVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNDUk9MTEJBUjo6U2V0UmFuZ2UodW5zaWduZWQgaW50LHVuc2lnbmVkIGludCkNCis/U2V0UmFuZ2VAU0NST0xMQkFSQEBRQUVYSUlAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU1BJTl9TTEVfTlVNOjpTZXRSYW5nZSh1bnNpZ25lZCBsb25nKQ0KKz9TZXRSYW5nZUBTUElOX1NMRV9OVU1AQFFBRVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFNQSU5fU0xFX1NUUjo6U2V0UmFuZ2UobG9uZykNCis/U2V0UmFuZ2VAU1BJTl9TTEVfU1RSQEBRQUVYSkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBXSU5ET1c6OlNldFJlZHJhdyhpbnQpDQorP1NldFJlZHJhd0BXSU5ET1dAQFFBRVhIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEVESVRfQ09OVFJPTDo6U2V0U2F2ZVZhbHVlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldFNhdmVWYWx1ZUBFRElUX0NPTlRST0xAQFFBRUpQQkdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgU1BJTl9TTEVfTlVNOjpTZXRTYXZlVmFsdWUodW5zaWduZWQgbG9uZykNCis/U2V0U2F2ZVZhbHVlQFNQSU5fU0xFX05VTUBAUUFFSktAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgTElTVEJPWDo6U2V0U2Nyb2xsUG9zKHVuc2lnbmVkIGludCkNCis/U2V0U2Nyb2xsUG9zQExJU1RCT1hAQFFBRVhJQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEJMVF9USU1FX1NQSU5fR1JPVVA6OlNldFNlY29uZChpbnQpDQorP1NldFNlY29uZEBCTFRfVElNRV9TUElOX0dST1VQQEBRQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBFTEFQU0VEX1RJTUVfQ09OVFJPTDo6U2V0U2Vjb25kRmllbGROYW1lKGxvbmcpDQorP1NldFNlY29uZEZpZWxkTmFtZUBFTEFQU0VEX1RJTUVfQ09OVFJPTEBAUUFFWEpAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgRUxBUFNFRF9USU1FX0NPTlRST0w6OlNldFNlY29uZE1pbihsb25nKQ0KKz9TZXRTZWNvbmRNaW5ARUxBUFNFRF9USU1FX0NPTlRST0xAQFFBRVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEVMQVBTRURfVElNRV9DT05UUk9MOjpTZXRTZWNvbmRSYW5nZShsb25nKQ0KKz9TZXRTZWNvbmRSYW5nZUBFTEFQU0VEX1RJTUVfQ09OVFJPTEBAUUFFWEpAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgRUxBUFNFRF9USU1FX0NPTlRST0w6OlNldFNlY29uZFZhbHVlKGxvbmcpDQorP1NldFNlY29uZFZhbHVlQEVMQVBTRURfVElNRV9DT05UUk9MQEBRQUVYSkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBHUkFQSElDQUxfQlVUVE9OX1dJVEhfRElTQUJMRTo6U2V0U2VsZWN0ZWQoaW50KQ0KKz9TZXRTZWxlY3RlZEBHUkFQSElDQUxfQlVUVE9OX1dJVEhfRElTQUJMRUBAUUFFWEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6OlNldFNlbGVjdGVkQ2VsbHMoaW50KQ0KKz9TZXRTZWxlY3RlZENlbGxzQExPR09OX0hPVVJTX0NPTlRST0xAQEFBRVhIQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBMT0dPTl9IT1VSU19DT05UUk9MOjpTZXRTZWxlY3Rpb24oaW50KQ0KKz9TZXRTZWxlY3Rpb25ATE9HT05fSE9VUlNfQ09OVFJPTEBAQUFFWEhAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIExPR09OX0hPVVJTX0NPTlRST0w6OlNldFNlbGVjdGlvbihpbnQsaW50KQ0KKz9TZXRTZWxlY3Rpb25ATE9HT05fSE9VUlNfQ09OVFJPTEBAQUFFWEhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIE1BR0lDX0dST1VQOjpTZXRTZWxlY3Rpb24odW5zaWduZWQgaW50KQ0KKz9TZXRTZWxlY3Rpb25ATUFHSUNfR1JPVVBAQFFBRVhJQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFJBRElPX0dST1VQOjpTZXRTZWxlY3Rpb24odW5zaWduZWQgaW50KQ0KKz9TZXRTZWxlY3Rpb25AUkFESU9fR1JPVVBAQFFBRVhJQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIFJBRElPX0dST1VQOjpTZXRTZWxlY3Rpb25Eb250Tm90aWZ5R3JvdXBzKHVuc2lnbmVkIGludCkNCis/U2V0U2VsZWN0aW9uRG9udE5vdGlmeUdyb3Vwc0BSQURJT19HUk9VUEBASUFFWElAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ09OU09MRV9FTExJUFNJUzo6U2V0U2l6ZShpbnQpDQorP1NldFNpemVAQ09OU09MRV9FTExJUFNJU0BAUUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgU0xUX0VMTElQU0lTOjpTZXRTaXplKGludCxpbnQsaW50KQ0KKz9TZXRTaXplQFNMVF9FTExJUFNJU0BAUUFFWEhISEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBXSU5ET1c6OlNldFNpemUoaW50LGludCxpbnQpDQorP1NldFNpemVAV0lORE9XQEBRQUVYSEhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFdJTkRPVzo6U2V0U2l6ZShjbGFzcyBYWURJTUVOU0lPTixpbnQpDQorP1NldFNpemVAV0lORE9XQEBRQUVYVlhZRElNRU5TSU9OQEBIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFdJTl9FTExJUFNJUzo6U2V0U2l6ZShpbnQsaW50KQ0KKz9TZXRTaXplQFdJTl9FTExJUFNJU0BAUUFFWEhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpTZXRTbWFsbERlY1ZhbHVlKHVuc2lnbmVkIGxvbmcpDQorP1NldFNtYWxsRGVjVmFsdWVAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFFBRVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENIQU5HRUFCTEVfU1BJTl9JVEVNOjpTZXRTbWFsbEluY1ZhbHVlKHVuc2lnbmVkIGxvbmcpDQorP1NldFNtYWxsSW5jVmFsdWVAQ0hBTkdFQUJMRV9TUElOX0lURU1AQFFBRVhLQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIE5UX0dST1VQX0JST1dTRVJfRElBTE9HOjpTZXRTb3VyY2VEaWFsb2coY2xhc3MgTlRfR1JPVVBfQlJPV1NFUl9ESUFMT0cgKikNCis/U2V0U291cmNlRGlhbG9nQE5UX0dST1VQX0JST1dTRVJfRElBTE9HQEBJQUVYUEFWMUBAWg0KKzsgcHJpdmF0ZTogbG9uZyBfX3RoaXNjYWxsIEVMQVBTRURfVElNRV9DT05UUk9MOjpTZXRTcGluSXRlbUFjY0tleShjbGFzcyBTUElOX0lURU0gKixjbGFzcyBTTFQgJixpbnQpDQorP1NldFNwaW5JdGVtQWNjS2V5QEVMQVBTRURfVElNRV9DT05UUk9MQEBBQUVKUEFWU1BJTl9JVEVNQEBBQVZTTFRAQEhAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgU0xFX1NUUkxCX0dST1VQOjpTZXRTdGF0ZSh2b2lkKWNvbnN0IA0KKz9TZXRTdGF0ZUBTTEVfU1RSTEJfR1JPVVBAQElCRVhYWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgU1RBVEVfQlVUVE9OX0NPTlRST0w6OlNldFN0YXRlKHVuc2lnbmVkIGludCkNCis/U2V0U3RhdGVAU1RBVEVfQlVUVE9OX0NPTlRST0xAQElBRVhJQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgU1RMQklURU06OlNldFN0YXRlKGludCkNCis/U2V0U3RhdGVAU1RMQklURU1AQFFBRUhIQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBXSU4zMl9USFJFQUQ6OlNldFN0YXRlKGVudW0gX1RIUkVBRF9TVEFURSkNCis/U2V0U3RhdGVAV0lOMzJfVEhSRUFEQEBBQUVYVzRfVEhSRUFEX1NUQVRFQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgR1JBUEhJQ0FMX0JVVFRPTjo6U2V0U3RhdHVzKHVuc2lnbmVkIGludCkNCis/U2V0U3RhdHVzQEdSQVBISUNBTF9CVVRUT05AQFFBRVhJQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEdSQVBISUNBTF9CVVRUT046OlNldFN0YXR1cyhzdHJ1Y3QgSEJJVE1BUF9fICopDQorP1NldFN0YXR1c0BHUkFQSElDQUxfQlVUVE9OQEBRQUVYUEFVSEJJVE1BUF9fQEBAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIFNQSU5fU0xFX1NUUjo6U2V0U3RyKGxvbmcpDQorP1NldFN0ckBTUElOX1NMRV9TVFJAQEFBRVhKQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBHRVRfRk5BTUVfQkFTRV9ETEc6OlNldFN0cmluZ0ZpZWxkKHVuc2lnbmVkIHNob3J0ICogKixjbGFzcyBOTFNfU1RSIGNvbnN0ICYpDQorP1NldFN0cmluZ0ZpZWxkQEdFVF9GTkFNRV9CQVNFX0RMR0BAQUFFSlBBUEFHQUJWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIEJBU0VfRUxMSVBTSVM6OlNldFN0eWxlKGVudW0gRUxMSVBTSVNfU1RZTEUpDQorP1NldFN0eWxlQEJBU0VfRUxMSVBTSVNAQFFBRVhXNEVMTElQU0lTX1NUWUxFQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgV0lORE9XOjpTZXRTdHlsZSh1bnNpZ25lZCBsb25nKQ0KKz9TZXRTdHlsZUBXSU5ET1dAQFFBRVhLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQ09OVFJPTF9WQUxVRTo6U2V0VGFiU3RvcChpbnQpDQorP1NldFRhYlN0b3BAQ09OVFJPTF9WQUxVRUBATUFFWEhAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDT05UUk9MX1dJTkRPVzo6U2V0VGFiU3RvcChpbnQpDQorP1NldFRhYlN0b3BAQ09OVFJPTF9XSU5ET1dAQE1BRVhIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEFDQ09VTlRfTkFNRVNfTUxFOjpTZXRUYXJnZXREb21haW4odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0VGFyZ2V0RG9tYWluQEFDQ09VTlRfTkFNRVNfTUxFQEBRQUVKUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEdFVF9GTkFNRV9CQVNFX0RMRzo6U2V0VGV4dChjbGFzcyBOTFNfU1RSIGNvbnN0ICYpDQorP1NldFRleHRAR0VUX0ZOQU1FX0JBU0VfRExHQEBRQUVKQUJWTkxTX1NUUkBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgTUVOVUlURU06OlNldFRleHQodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0VGV4dEBNRU5VSVRFTUBAUUFFSFBCR0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTTFRfRUxMSVBTSVM6OlNldFRleHQoY2xhc3MgTkxTX1NUUiBjb25zdCAmKQ0KKz9TZXRUZXh0QFNMVF9FTExJUFNJU0BAUUFFSkFCVk5MU19TVFJAQEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBTTFRfRUxMSVBTSVM6OlNldFRleHQodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0VGV4dEBTTFRfRUxMSVBTSVNAQFFBRUpQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgV0lORE9XOjpTZXRUZXh0KGNsYXNzIE5MU19TVFIgY29uc3QgJikNCis/U2V0VGV4dEBXSU5ET1dAQFFBRVhBQlZOTFNfU1RSQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgV0lORE9XOjpTZXRUZXh0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldFRleHRAV0lORE9XQEBRQUVYUEJHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgREVWSUNFX0NPTlRFWFQ6OlNldFRleHRBbGlnbih1bnNpZ25lZCBpbnQpDQorP1NldFRleHRBbGlnbkBERVZJQ0VfQ09OVEVYVEBAUUFFSUlAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgREVWSUNFX0NPTlRFWFQ6OlNldFRleHRDb2xvcih1bnNpZ25lZCBsb25nKQ0KKz9TZXRUZXh0Q29sb3JAREVWSUNFX0NPTlRFWFRAQFFBRUtLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIExJU1RfQ09OVFJPTDo6U2V0VG9wSW5kZXgoaW50KQ0KKz9TZXRUb3BJbmRleEBMSVNUX0NPTlRST0xAQFFBRVhIQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEJST1dTRVJfU1VCSkVDVDo6U2V0VXNlckJyb3dzZXJMQkkoY2xhc3MgVVNFUl9CUk9XU0VSX0xCSSAqKQ0KKz9TZXRVc2VyQnJvd3NlckxCSUBCUk9XU0VSX1NVQkpFQ1RAQFFBRUpQQVZVU0VSX0JST1dTRVJfTEJJQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0hBTkdFQUJMRV9TUElOX0lURU06OlNldFZhbHVlKHVuc2lnbmVkIGxvbmcpDQorP1NldFZhbHVlQENIQU5HRUFCTEVfU1BJTl9JVEVNQEBRQUVYS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBERUNfU0xUOjpTZXRWYWx1ZShsb25nKQ0KKz9TZXRWYWx1ZUBERUNfU0xUQEBRQUVYSkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBERUNfU0xUOjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nKQ0KKz9TZXRWYWx1ZUBERUNfU0xUQEBRQUVYS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBYWURJTUVOU0lPTjo6U2V0V2lkdGgodW5zaWduZWQgaW50KQ0KKz9TZXRXaWR0aEBYWURJTUVOU0lPTkBAUUFFWElAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgWFlQT0lOVDo6U2V0WChpbnQpDQorP1NldFhAWFlQT0lOVEBAUUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgWFlQT0lOVDo6U2V0WShpbnQpDQorP1NldFlAWFlQT0lOVEBAUUFFWEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQkxUX0RBVEVfU1BJTl9HUk9VUDo6U2V0WWVhcihpbnQpDQorP1NldFllYXJAQkxUX0RBVEVfU1BJTl9HUk9VUEBAUUFFWEhAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ1VSU09SOjpTaG93KGludCkNCis/U2hvd0BDVVJTT1JAQFNHWEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBQT1BVUDo6U2hvdyh2b2lkKQ0KKz9TaG93QFBPUFVQQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV0lORE9XOjpTaG93KGludCkNCis/U2hvd0BXSU5ET1dAQFFBRUhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIEJBU0VfU0VUX0ZPQ1VTX0RMRzo6U2hvd0FyZWEoaW50KQ0KKz9TaG93QXJlYUBCQVNFX1NFVF9GT0NVU19ETEdAQElBRVhIQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIEVYUEFOREFCTEVfRElBTE9HOjpTaG93QXJlYShpbnQpDQorP1Nob3dBcmVhQEVYUEFOREFCTEVfRElBTE9HQEBJQUVYSEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgSF9TUExJVFRFUl9CQVI6OlNob3dEcmFnQmFyKGNsYXNzIFhZUE9JTlQgY29uc3QgJikNCis/U2hvd0RyYWdCYXJASF9TUExJVFRFUl9CQVJAQEFBRVhBQlZYWVBPSU5UQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgV0lORE9XOjpTaG93Rmlyc3Qodm9pZCkNCis/U2hvd0ZpcnN0QFdJTkRPV0BAUUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgSF9TUExJVFRFUl9CQVI6OlNob3dTcGVjaWFsQ3Vyc29yKGludCkNCis/U2hvd1NwZWNpYWxDdXJzb3JASF9TUExJVFRFUl9CQVJAQEFBRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFdJTjMyX1RIUkVBRDo6U2xlZXAodW5zaWduZWQgaW50KQ0KKz9TbGVlcEBXSU4zMl9USFJFQURAQFFBRVhJQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFVTRVJfTEJJX0NBQ0hFOjpTb3J0KHZvaWQpDQorP1NvcnRAVVNFUl9MQklfQ0FDSEVAQFFBRVhYWg0KKzsgcHJpdmF0ZTogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIFdJTjMyX1RIUkVBRDo6U3RhcnRUaHJlYWQodm9pZCAqKQ0KKz9TdGFydFRocmVhZEBXSU4zMl9USFJFQURAQENHS1BBWEBaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgTEJfQ09MX1dJRFRIUzo6U3RyZXRjaEZvckZvbnRzKHN0cnVjdCBIV05EX18gKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TdHJldGNoRm9yRm9udHNATEJfQ09MX1dJRFRIU0BAQUFFSlBBVUhXTkRfX0BAUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIE1BU0tfTUFQOjpTdHJpbmdUb0JpdHMoY2xhc3MgTkxTX1NUUiBjb25zdCAmLGNsYXNzIEJJVEZJRUxEICosaW50LHVuc2lnbmVkIGludCAqKQ0KKz9TdHJpbmdUb0JpdHNATUFTS19NQVBAQFFBRUpBQlZOTFNfU1RSQEBQQVZCSVRGSUVMREBASFBBSUBaDQorOyBwcm90ZWN0ZWQ6IGxvbmcgX190aGlzY2FsbCBBQ0NPVU5UX05BTUVTX01MRTo6U3RyaXBEb21haW5JZldlbGxLbm93bihjbGFzcyBOTFNfU1RSICopDQorP1N0cmlwRG9tYWluSWZXZWxsS25vd25AQUNDT1VOVF9OQU1FU19NTEVAQElBRUpQQVZOTFNfU1RSQEBAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgQ1VTVE9NX0NPTlRST0w6OlN1YkNsYXNzV25kUHJvYyhjbGFzcyBFVkVOVCBjb25zdCAmKQ0KKz9TdWJDbGFzc1duZFByb2NAQ1VTVE9NX0NPTlRST0xAQElBRUpBQlZFVkVOVEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFdJTjMyX1RIUkVBRDo6U3VzcGVuZCh2b2lkKQ0KKz9TdXNwZW5kQFdJTjMyX1RIUkVBREBAUUFFSlhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBCQVNFX0VMTElQU0lTOjpUZXJtKHZvaWQpDQorP1Rlcm1AQkFTRV9FTExJUFNJU0BAU0dYWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIEJMVDo6VGVybShzdHJ1Y3QgSElOU1RBTkNFX18gKikNCis/VGVybUBCTFRAQFNHWFBBVUhJTlNUQU5DRV9fQEBAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQkxUSU1QOjpUZXJtKHZvaWQpDQorP1Rlcm1AQkxUSU1QQEBTR1hYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQkxUX01BU1RFUl9USU1FUjo6VGVybSh2b2lkKQ0KKz9UZXJtQEJMVF9NQVNURVJfVElNRVJAQFNHWFhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDTElFTlRfV0lORE9XOjpUZXJtKHZvaWQpDQorP1Rlcm1AQ0xJRU5UX1dJTkRPV0BAU0dYWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIFBPUFVQOjpUZXJtKHZvaWQpDQorP1Rlcm1AUE9QVVBAQFNHWFhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBCTFQ6OlRlcm1ETEwodm9pZCkNCis/VGVybURMTEBCTFRAQFNHWFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBXSU4zMl9USFJFQUQ6OlRlcm1pbmF0ZSh1bnNpZ25lZCBpbnQpDQorP1Rlcm1pbmF0ZUBXSU4zMl9USFJFQURAQFFBRUpJQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgREVWSUNFX0NPTlRFWFQ6OlRleHRPdXRXKGNsYXNzIE5MU19TVFIgY29uc3QgJixjbGFzcyBYWVBPSU5UKWNvbnN0IA0KKz9UZXh0T3V0V0BERVZJQ0VfQ09OVEVYVEBAUUJFSEFCVk5MU19TVFJAQFZYWVBPSU5UQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBERVZJQ0VfQ09OVEVYVDo6VGV4dE91dFcoY2xhc3MgTkxTX1NUUiBjb25zdCAmLGNsYXNzIFhZUE9JTlQsc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiljb25zdCANCis/VGV4dE91dFdAREVWSUNFX0NPTlRFWFRAQFFCRUhBQlZOTFNfU1RSQEBWWFlQT0lOVEBAUEJVdGFnUkVDVEBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgREVWSUNFX0NPTlRFWFQ6OlRleHRPdXRXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50LGludCxpbnQpY29uc3QgDQorP1RleHRPdXRXQERFVklDRV9DT05URVhUQEBRQkVIUEJHSEhIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgREVWSUNFX0NPTlRFWFQ6OlRleHRPdXRXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50LGludCxpbnQsc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiljb25zdCANCis/VGV4dE91dFdAREVWSUNFX0NPTlRFWFRAQFFCRUhQQkdISEhQQlV0YWdSRUNUQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDSEVDS0JPWDo6VG9nZ2xlKHZvaWQpDQorP1RvZ2dsZUBDSEVDS0JPWEBAUUFFSFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBMTV9PTExCOjpUb2dnbGVEb21haW4oaW50KQ0KKz9Ub2dnbGVEb21haW5ATE1fT0xMQkBAUUFFSkhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgUE9QVVBfTUVOVTo6VHJhY2soY2xhc3MgUFdORDJIV05EIGNvbnN0ICYsdW5zaWduZWQgaW50LGludCxpbnQsc3RydWN0IHRhZ1JFQ1QgY29uc3QgKiljb25zdCANCis/VHJhY2tAUE9QVVBfTUVOVUBAUUJFSkFCVlBXTkQySFdOREBASUhIUEJVdGFnUkVDVEBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQUNDRUxUQUJMRTo6VHJhbnNsYXRlKGNsYXNzIFdJTkRPVyBjb25zdCAqLHN0cnVjdCB0YWdNU0cgKiljb25zdCANCis/VHJhbnNsYXRlQEFDQ0VMVEFCTEVAQFFCRUhQQlZXSU5ET1dAQFBBVXRhZ01TR0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFRJTUVSX0JBU0U6OlRyaWdnZXJOb3codm9pZCkNCis/VHJpZ2dlck5vd0BUSU1FUl9CQVNFQEBRQUVYWFoNCis7IGxvbmcgX19zdGRjYWxsIFRyaW1MZWFkaW5nKGNsYXNzIE5MU19TVFIgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9UcmltTGVhZGluZ0BAWUdKUEFWTkxTX1NUUkBAUEJHQFoNCis7IGxvbmcgX19zdGRjYWxsIFRyaW1UcmFpbGluZyhjbGFzcyBOTFNfU1RSICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/VHJpbVRyYWlsaW5nQEBZR0pQQVZOTFNfU1RSQEBQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQVVUT19DVVJTT1I6OlR1cm5PZmYodm9pZCkNCis/VHVybk9mZkBBVVRPX0NVUlNPUkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBBVVRPX0NVUlNPUjo6VHVybk9uKHZvaWQpDQorP1R1cm5PbkBBVVRPX0NVUlNPUkBAUUFFWFhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBCUk9XU0VSX0RPTUFJTjo6VW5SZXF1ZXN0QWNjb3VudERhdGEodm9pZCkNCis/VW5SZXF1ZXN0QWNjb3VudERhdGFAQlJPV1NFUl9ET01BSU5AQFFBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgRE9NQUlOX0ZJTExfVEhSRUFEOjpVblJlcXVlc3RBY2NvdW50RGF0YSh2b2lkKQ0KKz9VblJlcXVlc3RBY2NvdW50RGF0YUBET01BSU5fRklMTF9USFJFQURAQFFBRUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBVSV9FWFRfTUdSOjpVbmxvYWRFeHRlbnNpb25zKHZvaWQpDQorP1VubG9hZEV4dGVuc2lvbnNAVUlfRVhUX01HUkBAVUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgTE9HT05fSE9VUlNfQ09OVFJPTDo6VW5sb2FkTGFiZWxzKHZvaWQpDQorP1VubG9hZExhYmVsc0BMT0dPTl9IT1VSU19DT05UUk9MQEBBQUVYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgVVNFUl9MQklfQ0FDSEU6OlVubG9ja0NhY2hlKHZvaWQpDQorP1VubG9ja0NhY2hlQFVTRVJfTEJJX0NBQ0hFQEBNQUVYWFoNCis7IHByaXZhdGU6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBCTFRJTVA6OlVud2luZChlbnVtIEJMVF9DVE9SX1NUQVRFKQ0KKz9VbndpbmRAQkxUSU1QQEBDR1hXNEJMVF9DVE9SX1NUQVRFQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDSEFOR0VBQkxFX1NQSU5fSVRFTTo6VXBkYXRlKHZvaWQpDQorP1VwZGF0ZUBDSEFOR0VBQkxFX1NQSU5fSVRFTUBAVUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFNQSU5fU0xFX05VTTo6VXBkYXRlKHZvaWQpDQorP1VwZGF0ZUBTUElOX1NMRV9OVU1AQFVBRVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBTUElOX1NMRV9TVFI6OlVwZGF0ZSh2b2lkKQ0KKz9VcGRhdGVAU1BJTl9TTEVfU1RSQEBVQUVYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIE5UX0ZJTkRfQUNDT1VOVF9ESUFMT0c6OlVwZGF0ZUJ1dHRvblN0YXRlKHZvaWQpDQorP1VwZGF0ZUJ1dHRvblN0YXRlQE5UX0ZJTkRfQUNDT1VOVF9ESUFMT0dAQElBRVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBOVF9HUk9VUF9CUk9XU0VSX0RJQUxPRzo6VXBkYXRlQnV0dG9uU3RhdGUodm9pZCkNCis/VXBkYXRlQnV0dG9uU3RhdGVATlRfR1JPVVBfQlJPV1NFUl9ESUFMT0dAQE1BRVhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBOVF9MT0NBTEdST1VQX0JST1dTRVJfRElBTE9HOjpVcGRhdGVCdXR0b25TdGF0ZSh2b2lkKQ0KKz9VcGRhdGVCdXR0b25TdGF0ZUBOVF9MT0NBTEdST1VQX0JST1dTRVJfRElBTE9HQEBNQUVYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIE5UX1VTRVJfQlJPV1NFUl9ESUFMT0c6OlVwZGF0ZUJ1dHRvblN0YXRlKHZvaWQpDQorP1VwZGF0ZUJ1dHRvblN0YXRlQE5UX1VTRVJfQlJPV1NFUl9ESUFMT0dAQElBRVhYWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIEJBU0VfU0VUX0ZPQ1VTX0RMRzo6VXBkYXRlUmFzTW9kZSh2b2lkKQ0KKz9VcGRhdGVSYXNNb2RlQEJBU0VfU0VUX0ZPQ1VTX0RMR0BAQUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENPTlRST0xfV0lORE9XOjpWYWxpZGF0ZSh2b2lkKQ0KKz9WYWxpZGF0ZUBDT05UUk9MX1dJTkRPV0BAVUFFSlhaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgRElBTE9HX1dJTkRPVzo6VmFsaWRhdGUodm9pZCkNCis/VmFsaWRhdGVARElBTE9HX1dJTkRPV0BAQUFFSlhaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIElDQU5PTl9TTEU6OlZhbGlkYXRlKHZvaWQpDQorP1ZhbGlkYXRlQElDQU5PTl9TTEVAQFVBRUpYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBTUElOX1NMRV9OVU06OlZhbGlkYXRlKHZvaWQpDQorP1ZhbGlkYXRlQFNQSU5fU0xFX05VTUBAVUFFSlhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIFNMRV9TVFJMQl9HUk9VUDo6V19BZGQodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/V19BZGRAU0xFX1NUUkxCX0dST1VQQEBNQUVKUEJHQFoNCis7IHByaXZhdGU6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBHTE9CQUxfQVRPTTo6V19BZGRBdG9tKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP1dfQWRkQXRvbUBHTE9CQUxfQVRPTUBARUJFR1BCR0BaDQorOyBwcml2YXRlOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgTE9DQUxfQVRPTTo6V19BZGRBdG9tKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopY29uc3QgDQorP1dfQWRkQXRvbUBMT0NBTF9BVE9NQEBFQkVHUEJHQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIE1FTlVfQkFTRTo6V19BcHBlbmQodm9pZCBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP1dfQXBwZW5kQE1FTlVfQkFTRUBASUJFSlBCWElJQFoNCis7IHByaXZhdGU6IGxvbmcgX190aGlzY2FsbCBVSV9NRU5VX0VYVDo6V19CaWFzTWVudUlkcyhzdHJ1Y3QgSE1FTlVfXyAqLHVuc2lnbmVkIGxvbmcpDQorP1dfQmlhc01lbnVJZHNAVUlfTUVOVV9FWFRAQEFBRUpQQVVITUVOVV9fQEBLQFoNCis7IHByaXZhdGU6IGNsYXNzIExCSSAqIF9fdGhpc2NhbGwgVVNFUl9MQklfQ0FDSEU6OldfR2V0TEJJKGludCkNCis/V19HZXRMQklAVVNFUl9MQklfQ0FDSEVAQEFBRVBBVkxCSUBASEBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBVU0VSX0xCSV9DQUNIRTo6V19Hcm93Q2FjaGUoaW50KQ0KKz9XX0dyb3dDYWNoZUBVU0VSX0xCSV9DQUNIRUBAQUFFSEhAWg0KKzsgcHJvdGVjdGVkOiBsb25nIF9fdGhpc2NhbGwgTUVOVV9CQVNFOjpXX0luc2VydCh2b2lkIGNvbnN0ICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQpY29uc3QgDQorP1dfSW5zZXJ0QE1FTlVfQkFTRUBASUJFSlBCWElJSUBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3MgVUlfRVhUICogX190aGlzY2FsbCBVSV9FWFRfTUdSOjpXX0xvYWRFeHRlbnNpb24odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9XX0xvYWRFeHRlbnNpb25AVUlfRVhUX01HUkBATUFFUEFWVUlfRVhUQEBQQkdLQFoNCis7IHByb3RlY3RlZDogbG9uZyBfX3RoaXNjYWxsIE1FTlVfQkFTRTo6V19Nb2RpZnkodm9pZCBjb25zdCAqLHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50KWNvbnN0IA0KKz9XX01vZGlmeUBNRU5VX0JBU0VAQElCRUpQQlhJSUlAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQlJPV1NFUl9ET01BSU5fTEJJOjpXX1BhaW50KGNsYXNzIEJST1dTRVJfRE9NQUlOX0NCICosY2xhc3MgTElTVEJPWCAqLHN0cnVjdCBIRENfXyAqLHN0cnVjdCB0YWdSRUNUIGNvbnN0ICosc3RydWN0IEdVSUxUVF9JTkZPICopY29uc3QgDQorP1dfUGFpbnRAQlJPV1NFUl9ET01BSU5fTEJJQEBRQkVYUEFWQlJPV1NFUl9ET01BSU5fQ0JAQFBBVkxJU1RCT1hAQFBBVUhEQ19fQEBQQlV0YWdSRUNUQEBQQVVHVUlMVFRfSU5GT0BAQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgTUVOVV9CQVNFOjpXX1F1ZXJ5SXRlbVRleHQodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCljb25zdCANCis/V19RdWVyeUl0ZW1UZXh0QE1FTlVfQkFTRUBASUJFSFBBR0lJSUBaDQorOyBwcml2YXRlOiB2aXJ0dWFsIGxvbmcgX190aGlzY2FsbCBHTE9CQUxfQVRPTTo6V19RdWVyeVN0cmluZyh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGludCljb25zdCANCis/V19RdWVyeVN0cmluZ0BHTE9CQUxfQVRPTUBARUJFSlBBR0lAWg0KKzsgcHJpdmF0ZTogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgTE9DQUxfQVRPTTo6V19RdWVyeVN0cmluZyh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGludCljb25zdCANCis/V19RdWVyeVN0cmluZ0BMT0NBTF9BVE9NQEBFQkVKUEFHSUBaDQorOyBwcml2YXRlOiBsb25nIF9fdGhpc2NhbGwgSUNPTl9DT05UUk9MOjpXX1NldEljb24oY2xhc3MgSURSRVNPVVJDRSBjb25zdCAmLGludCkNCis/V19TZXRJY29uQElDT05fQ09OVFJPTEBAQUFFSkFCVklEUkVTT1VSQ0VAQEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgV0lOMzJfU1lOQ19CQVNFOjpXYWl0KHVuc2lnbmVkIGludCkNCis/V2FpdEBXSU4zMl9TWU5DX0JBU0VAQFFBRUpJQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIEJST1dTRVJfRE9NQUlOOjpXYWl0Rm9yQWRtaW5BdXRob3JpdHkodW5zaWduZWQgbG9uZyxpbnQgKiljb25zdCANCis/V2FpdEZvckFkbWluQXV0aG9yaXR5QEJST1dTRVJfRE9NQUlOQEBRQkVKS1BBSEBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBET01BSU5fRklMTF9USFJFQUQ6OldhaXRGb3JBZG1pbkF1dGhvcml0eSh1bnNpZ25lZCBsb25nLGludCAqKWNvbnN0IA0KKz9XYWl0Rm9yQWRtaW5BdXRob3JpdHlARE9NQUlOX0ZJTExfVEhSRUFEQEBRQkVKS1BBSEBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBPUEVOX0RJQUxPR19CQVNFOjpXYXJuQ2xvc2VNdWx0aSh2b2lkKQ0KKz9XYXJuQ2xvc2VNdWx0aUBPUEVOX0RJQUxPR19CQVNFQEBBQUVIWFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIE9QRU5fRElBTE9HX0JBU0U6Oldhcm5DbG9zZVNpbmdsZShjbGFzcyBPUEVOX0xCSV9CQVNFICopDQorP1dhcm5DbG9zZVNpbmdsZUBPUEVOX0RJQUxPR19CQVNFQEBBQUVIUEFWT1BFTl9MQklfQkFTRUBAQFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIEFSUkFZX0NPTlRST0xWQUxfQ0lEX1BBSVI6OldpdGhpblJhbmdlKHVuc2lnbmVkIGludCljb25zdCANCis/V2l0aGluUmFuZ2VAQVJSQVlfQ09OVFJPTFZBTF9DSURfUEFJUkBAQUJFSElAWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ0xJRU5UX1dJTkRPVzo6V25kUHJvYyhzdHJ1Y3QgSFdORF9fICosdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxsb25nKQ0KKz9XbmRQcm9jQENMSUVOVF9XSU5ET1dAQFNHSlBBVUhXTkRfX0BASUlKQFoNCis7IHB1YmxpYzogc3RhdGljIGxvbmcgX19zdGRjYWxsIENVU1RPTV9DT05UUk9MOjpXbmRQcm9jKHN0cnVjdCBIV05EX18gKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LGxvbmcpDQorP1duZFByb2NAQ1VTVE9NX0NPTlRST0xAQFNHSlBBVUhXTkRfX0BASUlKQFoNCis7IGludCBfX3N0ZGNhbGwgbWF4KGludCxpbnQpDQorP21heEBAWUdISEhAWg0KKzsgaW50IF9fc3RkY2FsbCBtaW4oaW50LGludCkNCis/bWluQEBZR0hISEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgKF9fc3RkY2FsbCpfX3RoaXNjYWxsIEdFVF9GTkFNRV9CQVNFX0RMRzo6cGZFeHRlbmRlZEVycm9yKHZvaWQpY29uc3QgKSh2b2lkKQ0KKz9wZkV4dGVuZGVkRXJyb3JAR0VUX0ZOQU1FX0JBU0VfRExHQEBRQkVQNkdLWFpYWg0KKzsgcHVibGljOiBpbnQgKF9fc3RkY2FsbCpfX3RoaXNjYWxsIEdFVF9GTkFNRV9CQVNFX0RMRzo6cGZHZXRPcGVuRmlsZU5hbWUodm9pZCljb25zdCApKHN0cnVjdCB0YWdPRk5XICopDQorP3BmR2V0T3BlbkZpbGVOYW1lQEdFVF9GTkFNRV9CQVNFX0RMR0BAUUJFUDZHSFBBVXRhZ09GTldAQEBaWFoNCis7IHB1YmxpYzogaW50IChfX3N0ZGNhbGwqX190aGlzY2FsbCBHRVRfRk5BTUVfQkFTRV9ETEc6OnBmR2V0U2F2ZUZpbGVOYW1lKHZvaWQpY29uc3QgKShzdHJ1Y3QgdGFnT0ZOVyAqKQ0KKz9wZkdldFNhdmVGaWxlTmFtZUBHRVRfRk5BTUVfQkFTRV9ETEdAQFFCRVA2R0hQQVV0YWdPRk5XQEBAWlhaDQorQmx0Q0NXbmRQcm9jDQorQmx0RGxnUHJvYw0KK0JsdFduZFByb2MNCitDbG9zZVVzZXJCcm93c2VyDQorRW51bVVzZXJCcm93c2VyU2VsZWN0aW9uDQorT3BlblVzZXJCcm93c2VyDQorU2hlbGxEbGdQcm9jDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd25ld2Rldi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bmV3ZGV2LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMDQ1NmE1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd25ld2Rldi5kZWYKQEAgLTAsMCArMSwyMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBuZXdkZXYuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG5ld2Rldi5kbGwNCitFWFBPUlRTDQorQ2xpZW50U2lkZUluc3RhbGxXDQorRGV2SW5zdGFsbFcNCitJbnN0YWxsRGV2SW5zdA0KK0luc3RhbGxEZXZJbnN0RXgNCitJbnN0YWxsTmV3RGV2aWNlDQorSW5zdGFsbFNlbGVjdGVkRGV2aWNlDQorSW5zdGFsbFNlbGVjdGVkRHJpdmVyDQorSW5zdGFsbFdpbmRvd3NVcGRhdGVEcml2ZXINCitSb2xsYmFja0RyaXZlcg0KK1VwZGF0ZURyaXZlckZvclBsdWdBbmRQbGF5RGV2aWNlc0ENCitVcGRhdGVEcml2ZXJGb3JQbHVnQW5kUGxheURldmljZXNXDQorV2luZG93c1VwZGF0ZURyaXZlclNlYXJjaGluZ1BvbGljeVVpDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd25saHRtbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bmxodG1sLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNmZlNzMwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd25saHRtbC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBOTEhUTUwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5MSFRNTC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bm50cGFkbS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bm50cGFkbS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWNmMGNlNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dubnRwYWRtLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE5OVFBBRE0uRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5OVFBBRE0uRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd25udHBhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd25udHBhcGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMyNTNlMzAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bm50cGFwaS5kZWYKQEAgLTAsMCArMSwzNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBOTlRQQVBJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBOTlRQQVBJLmRsbA0KK0VYUE9SVFMNCitObnRwQWRkRXhwaXJlDQorTm50cEFkZEZlZWQNCitObnRwQ2FuY2VsTWVzc2FnZUlEDQorTm50cENsZWFyU3RhdGlzdGljcw0KK05udHBDcmVhdGVOZXdzZ3JvdXANCitObnRwRGVsZXRlRXhwaXJlDQorTm50cERlbGV0ZUZlZWQNCitObnRwRGVsZXRlTmV3c2dyb3VwDQorTm50cEVuYWJsZUZlZWQNCitObnRwRW51bWVyYXRlRXhwaXJlcw0KK05udHBFbnVtZXJhdGVGZWVkcw0KK05udHBFbnVtZXJhdGVTZXNzaW9ucw0KK05udHBGaW5kTmV3c2dyb3VwDQorTm50cEdldEFkbWluSW5mb3JtYXRpb24NCitObnRwR2V0QnVpbGRTdGF0dXMNCitObnRwR2V0RXhwaXJlSW5mb3JtYXRpb24NCitObnRwR2V0RmVlZEluZm9ybWF0aW9uDQorTm50cEdldE5ld3Nncm91cA0KK05udHBHZXRWUm9vdFdpbjMyRXJyb3INCitObnRwUXVlcnlTdGF0aXN0aWNzDQorTm50cFNldEFkbWluSW5mb3JtYXRpb24NCitObnRwU2V0RXhwaXJlSW5mb3JtYXRpb24NCitObnRwU2V0RmVlZEluZm9ybWF0aW9uDQorTm50cFNldE5ld3Nncm91cA0KK05udHBTdGFydFJlYnVpbGQNCitObnRwVGVybWluYXRlU2Vzc2lvbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dubnRwc25hcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bm50cHNuYXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNkYWU5NjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bm50cHNuYXAuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTk5UUFNOQVAuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5OVFBTTkFQLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3ducGRzcGxheS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bnBkc3BsYXkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc3MDJiNjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bnBkc3BsYXkuZGVmCkBAIC0wLDAgKzEsMzcxIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE5QRFNQbGF5LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBOUERTUGxheS5kbGwNCitFWFBPUlRTDQorTlBfR2V0RW50cnlQb2ludHMNCitOUF9Jbml0aWFsaXplDQorTlBfU2h1dGRvd24NCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0Fib3V0Qm94X3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0NhbmNlbF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9GYXN0Rm9yd2FyZF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9GYXN0UmV2ZXJzZV9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRBY3RpdmVNb3ZpZV9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRBbGxvd0NoYW5nZURpc3BsYXlTaXplX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldEFsbG93U2Nhbl9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRBbmltYXRpb25BdFN0YXJ0X3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldEF1ZGlvU3RyZWFtX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldEF1dG9SZXdpbmRfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0QXV0b1NpemVfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0QXV0b1N0YXJ0X3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldEJhbGFuY2Vfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0QmFuZHdpZHRoX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldEJhc2VVUkxfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0QnVmZmVyaW5nQ291bnRfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0QnVmZmVyaW5nUHJvZ3Jlc3Nfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0QnVmZmVyaW5nVGltZV9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRDYW5QcmV2aWV3X3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldENhblNjYW5fc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0Q2FuU2Vla1RvTWFya2Vyc19zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRDYW5TZWVrX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldENhcHRpb25pbmdJRF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRDaGFubmVsRGVzY3JpcHRpb25fc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0Q2hhbm5lbE5hbWVfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0Q2hhbm5lbFVSTF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRDbGlja1RvUGxheV9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRDbGllbnRJRF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRDb2RlY0NvdW50X3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldENvZGVjRGVzY3JpcHRpb25fc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0Q29kZWNJbnN0YWxsZWRfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0Q29kZWNVUkxfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0Q29ubmVjdGlvblNwZWVkX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldENvbnRhY3RBZGRyZXNzX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldENvbnRhY3RFbWFpbF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRDb250YWN0UGhvbmVfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0Q3JlYXRpb25EYXRlX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldEN1cnJlbnRNYXJrZXJfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0Q3VycmVudFBvc2l0aW9uX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldEN1cnNvclR5cGVfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0RGVmYXVsdEZyYW1lX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldERpc3BsYXlCYWNrQ29sb3Jfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0RGlzcGxheUZvcmVDb2xvcl9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXREaXNwbGF5TW9kZV9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXREaXNwbGF5U2l6ZV9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXREdXJhdGlvbl9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRFbmFibGVDb250ZXh0TWVudV9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRFbmFibGVGdWxsU2NyZWVuQ29udHJvbHNfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0RW5hYmxlUG9zaXRpb25Db250cm9sc19zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRFbmFibGVUcmFja2VyX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldEVuYWJsZWRfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0RXJyb3JDb2RlX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldEVycm9yQ29ycmVjdGlvbl9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRFcnJvckRlc2NyaXB0aW9uX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldEZpbGVOYW1lX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldEhhc0Vycm9yX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldEhhc011bHRpcGxlSXRlbXNfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0SW1hZ2VTb3VyY2VIZWlnaHRfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0SW1hZ2VTb3VyY2VXaWR0aF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRJbnZva2VVUkxzX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldElzQnJvYWRjYXN0X3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldElzRHVyYXRpb25WYWxpZF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRMYW5ndWFnZV9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRMb3N0UGFja2V0c19zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRNYXJrZXJDb3VudF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRNYXJrZXJOYW1lX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldE1hcmtlclRpbWVfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0TWVkaWFJbmZvU3RyaW5nX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldE1vcmVJbmZvVVJMX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldE11dGVfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0TlNQbGF5X3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldE9wZW5TdGF0ZV9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRQbGF5Q291bnRfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0UGxheVN0YXRlX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldFByZXZpZXdNb2RlX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldFJhdGVfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0UmVhZHlTdGF0ZV9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRSZWNlaXZlZFBhY2tldHNfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0UmVjZXB0aW9uUXVhbGl0eV9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRSZWNvdmVyZWRQYWNrZXRzX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldFNBTUlGaWxlTmFtZV9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRTQU1JTGFuZ19zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRTQU1JU3R5bGVfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0U2VsZWN0aW9uRW5kX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldFNlbGVjdGlvblN0YXJ0X3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldFNlbmRFcnJvckV2ZW50c19zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRTZW5kS2V5Ym9hcmRFdmVudHNfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0U2VuZE1vdXNlQ2xpY2tFdmVudHNfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0U2VuZE1vdXNlTW92ZUV2ZW50c19zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRTZW5kT3BlblN0YXRlQ2hhbmdlRXZlbnRzX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldFNlbmRQbGF5U3RhdGVDaGFuZ2VFdmVudHNfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0U2VuZFdhcm5pbmdFdmVudHNfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0U2hvd0F1ZGlvQ29udHJvbHNfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0U2hvd0NhcHRpb25pbmdfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0U2hvd0NvbnRyb2xzX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldFNob3dEaXNwbGF5X3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldFNob3dHb3RvQmFyX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldFNob3dQb3NpdGlvbkNvbnRyb2xzX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldFNob3dTdGF0dXNCYXJfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0U2hvd1RyYWNrZXJfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0U291cmNlTGlua19zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRTb3VyY2VQcm90b2NvbF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRTdHJlYW1Db3VudF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRTdHJlYW1Hcm91cF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRTdHJlYW1OYW1lX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldFN0cmVhbVNlbGVjdGVkX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldFRyYW5zcGFyZW50QXRTdGFydF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRWaWRlb0JvcmRlcjNEX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0dldFZpZGVvQm9yZGVyQ29sb3Jfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfR2V0VmlkZW9Cb3JkZXJXaWR0aF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9HZXRWb2x1bWVfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfSXNTb3VuZENhcmRFbmFibGVkX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX0xhdW5jaFVSTF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9OZXh0X3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX09wZW5fc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfUGF1c2Vfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfUGxheV9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9QcmV2aW91c19zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXRBbGxvd0NoYW5nZURpc3BsYXlTaXplX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldEFsbG93U2Nhbl9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXRBbmltYXRpb25BdFN0YXJ0X3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldEF1ZGlvU3RyZWFtX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldEF1dG9SZXdpbmRfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfU2V0QXV0b1NpemVfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfU2V0QXV0b1N0YXJ0X3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldEJhbGFuY2Vfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfU2V0QmFzZVVSTF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXRCdWZmZXJpbmdUaW1lX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldENhcHRpb25pbmdJRF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXRDbGlja1RvUGxheV9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXRDdXJyZW50TWFya2VyX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldEN1cnJlbnRQb3NpdGlvbl9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXRDdXJzb3JUeXBlX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldERlZmF1bHRGcmFtZV9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXREaXNwbGF5QmFja0NvbG9yX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldERpc3BsYXlGb3JlQ29sb3Jfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfU2V0RGlzcGxheU1vZGVfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfU2V0RGlzcGxheVNpemVfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfU2V0RW5hYmxlQ29udGV4dE1lbnVfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfU2V0RW5hYmxlRnVsbFNjcmVlbkNvbnRyb2xzX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldEVuYWJsZVBvc2l0aW9uQ29udHJvbHNfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfU2V0RW5hYmxlVHJhY2tlcl9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXRFbmFibGVkX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldEZpbGVOYW1lX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldEludm9rZVVSTHNfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfU2V0TGFuZ3VhZ2Vfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfU2V0TXV0ZV9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXRQbGF5Q291bnRfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfU2V0UHJldmlld01vZGVfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfU2V0UmF0ZV9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXRTQU1JRmlsZU5hbWVfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfU2V0U0FNSUxhbmdfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfU2V0U0FNSVN0eWxlX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldFNlbGVjdGlvbkVuZF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXRTZWxlY3Rpb25TdGFydF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXRTZW5kRXJyb3JFdmVudHNfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfU2V0U2VuZEtleWJvYXJkRXZlbnRzX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldFNlbmRNb3VzZUNsaWNrRXZlbnRzX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldFNlbmRNb3VzZU1vdmVFdmVudHNfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfU2V0U2VuZE9wZW5TdGF0ZUNoYW5nZUV2ZW50c19zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXRTZW5kUGxheVN0YXRlQ2hhbmdlRXZlbnRzX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldFNlbmRXYXJuaW5nRXZlbnRzX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldFNob3dBdWRpb0NvbnRyb2xzX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldFNob3dDYXB0aW9uaW5nX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldFNob3dDb250cm9sc19zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXRTaG93RGlzcGxheV9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXRTaG93R290b0Jhcl9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXRTaG93UG9zaXRpb25Db250cm9sc19zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXRTaG93U3RhdHVzQmFyX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldFNob3dUcmFja2VyX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldFRyYW5zcGFyZW50QXRTdGFydF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXRWaWRlb0JvcmRlcjNEX3N0dWINCitKYXZhX05QRFNfbnBEU0phdmFQZWVyX1NldFZpZGVvQm9yZGVyQ29sb3Jfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfU2V0VmlkZW9Cb3JkZXJXaWR0aF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TZXRWb2x1bWVfc3R1Yg0KK0phdmFfTlBEU19ucERTSmF2YVBlZXJfU3RvcF9zdHViDQorSmF2YV9OUERTX25wRFNKYXZhUGVlcl9TdHJlYW1TZWxlY3Rfc3R1Yg0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9BYm91dEJveA0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9DYW5jZWwNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfRmFzdEZvcndhcmQNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfRmFzdFJldmVyc2UNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0QWN0aXZlTW92aWUNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0QWxsb3dDaGFuZ2VEaXNwbGF5U2l6ZQ0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRBbGxvd1NjYW4NCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0QW5pbWF0aW9uQXRTdGFydA0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRBdWRpb1N0cmVhbQ0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRBdXRvUmV3aW5kDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldEF1dG9TaXplDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldEF1dG9TdGFydA0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRCYWxhbmNlDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldEJhbmR3aWR0aA0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRCYXNlVVJMDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldEJ1ZmZlcmluZ0NvdW50DQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldEJ1ZmZlcmluZ1Byb2dyZXNzDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldEJ1ZmZlcmluZ1RpbWUNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0Q2FuUHJldmlldw0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRDYW5TY2FuDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldENhblNlZWsNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0Q2FuU2Vla1RvTWFya2Vycw0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRDYXB0aW9uaW5nSUQNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0Q2hhbm5lbERlc2NyaXB0aW9uDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldENoYW5uZWxOYW1lDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldENoYW5uZWxVUkwNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0Q2xpY2tUb1BsYXkNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0Q2xpZW50SUQNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0Q29kZWNDb3VudA0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRDb2RlY0Rlc2NyaXB0aW9uDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldENvZGVjSW5zdGFsbGVkDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldENvZGVjVVJMDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldENvbm5lY3Rpb25TcGVlZA0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRDb250YWN0QWRkcmVzcw0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRDb250YWN0RW1haWwNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0Q29udGFjdFBob25lDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldENyZWF0aW9uRGF0ZQ0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRDdXJyZW50TWFya2VyDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldEN1cnJlbnRQb3NpdGlvbg0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRDdXJzb3JUeXBlDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldERlZmF1bHRGcmFtZQ0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXREaXNwbGF5QmFja0NvbG9yDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldERpc3BsYXlGb3JlQ29sb3INCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0RGlzcGxheU1vZGUNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0RGlzcGxheVNpemUNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0RHVyYXRpb24NCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0RW5hYmxlQ29udGV4dE1lbnUNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0RW5hYmxlRnVsbFNjcmVlbkNvbnRyb2xzDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldEVuYWJsZVBvc2l0aW9uQ29udHJvbHMNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0RW5hYmxlVHJhY2tlcg0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRFbmFibGVkDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldEVycm9yQ29kZQ0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRFcnJvckNvcnJlY3Rpb24NCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0RXJyb3JEZXNjcmlwdGlvbg0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRGaWxlTmFtZQ0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRIYXNFcnJvcg0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRIYXNNdWx0aXBsZUl0ZW1zDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldEltYWdlU291cmNlSGVpZ2h0DQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldEltYWdlU291cmNlV2lkdGgNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0SW52b2tlVVJMcw0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRJc0Jyb2FkY2FzdA0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRJc0R1cmF0aW9uVmFsaWQNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0TGFuZ3VhZ2UNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0TG9zdFBhY2tldHMNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0TWFya2VyQ291bnQNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0TWFya2VyTmFtZQ0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRNYXJrZXJUaW1lDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldE1lZGlhSW5mb1N0cmluZw0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRNb3JlSW5mb1VSTA0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRNdXRlDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldE5TUGxheQ0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRPcGVuU3RhdGUNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0UGxheUNvdW50DQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldFBsYXlTdGF0ZQ0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRQcmV2aWV3TW9kZQ0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRSYXRlDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldFJlYWR5U3RhdGUNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0UmVjZWl2ZWRQYWNrZXRzDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldFJlY2VwdGlvblF1YWxpdHkNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0UmVjb3ZlcmVkUGFja2V0cw0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRTQU1JRmlsZU5hbWUNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0U0FNSUxhbmcNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0U0FNSVN0eWxlDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldFNlbGVjdGlvbkVuZA0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRTZWxlY3Rpb25TdGFydA0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRTZW5kRXJyb3JFdmVudHMNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0U2VuZEtleWJvYXJkRXZlbnRzDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldFNlbmRNb3VzZUNsaWNrRXZlbnRzDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldFNlbmRNb3VzZU1vdmVFdmVudHMNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0U2VuZE9wZW5TdGF0ZUNoYW5nZUV2ZW50cw0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRTZW5kUGxheVN0YXRlQ2hhbmdlRXZlbnRzDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldFNlbmRXYXJuaW5nRXZlbnRzDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldFNob3dBdWRpb0NvbnRyb2xzDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldFNob3dDYXB0aW9uaW5nDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldFNob3dDb250cm9scw0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRTaG93RGlzcGxheQ0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRTaG93R290b0Jhcg0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRTaG93UG9zaXRpb25Db250cm9scw0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRTaG93U3RhdHVzQmFyDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldFNob3dUcmFja2VyDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldFNvdXJjZUxpbmsNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0U291cmNlUHJvdG9jb2wNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0U3RyZWFtQ291bnQNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0U3RyZWFtR3JvdXANCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0U3RyZWFtTmFtZQ0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRTdHJlYW1TZWxlY3RlZA0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRUcmFuc3BhcmVudEF0U3RhcnQNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0VmlkZW9Cb3JkZXIzRA0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9HZXRWaWRlb0JvcmRlckNvbG9yDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0dldFZpZGVvQm9yZGVyV2lkdGgNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfR2V0Vm9sdW1lDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX0lzU291bmRDYXJkRW5hYmxlZA0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9MYXVuY2hVUkwNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfTmV4dA0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9PcGVuDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1BhdXNlDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1BsYXkNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfUHJldmlvdXMNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0QWxsb3dDaGFuZ2VEaXNwbGF5U2l6ZQ0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRBbGxvd1NjYW4NCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0QW5pbWF0aW9uQXRTdGFydA0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRBdWRpb1N0cmVhbQ0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRBdXRvUmV3aW5kDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1NldEF1dG9TaXplDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1NldEF1dG9TdGFydA0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRCYWxhbmNlDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1NldEJhc2VVUkwNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0QnVmZmVyaW5nVGltZQ0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRDYXB0aW9uaW5nSUQNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0Q2xpY2tUb1BsYXkNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0Q3VycmVudE1hcmtlcg0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRDdXJyZW50UG9zaXRpb24NCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0Q3Vyc29yVHlwZQ0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXREZWZhdWx0RnJhbWUNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0RGlzcGxheUJhY2tDb2xvcg0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXREaXNwbGF5Rm9yZUNvbG9yDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1NldERpc3BsYXlNb2RlDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1NldERpc3BsYXlTaXplDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1NldEVuYWJsZUNvbnRleHRNZW51DQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1NldEVuYWJsZUZ1bGxTY3JlZW5Db250cm9scw0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRFbmFibGVQb3NpdGlvbkNvbnRyb2xzDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1NldEVuYWJsZVRyYWNrZXINCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0RW5hYmxlZA0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRGaWxlTmFtZQ0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRJbnZva2VVUkxzDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1NldExhbmd1YWdlDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1NldE11dGUNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0UGxheUNvdW50DQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1NldFByZXZpZXdNb2RlDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1NldFJhdGUNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0U0FNSUZpbGVOYW1lDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1NldFNBTUlMYW5nDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1NldFNBTUlTdHlsZQ0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRTZWxlY3Rpb25FbmQNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0U2VsZWN0aW9uU3RhcnQNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0U2VuZEVycm9yRXZlbnRzDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1NldFNlbmRLZXlib2FyZEV2ZW50cw0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRTZW5kTW91c2VDbGlja0V2ZW50cw0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRTZW5kTW91c2VNb3ZlRXZlbnRzDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1NldFNlbmRPcGVuU3RhdGVDaGFuZ2VFdmVudHMNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0U2VuZFBsYXlTdGF0ZUNoYW5nZUV2ZW50cw0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRTZW5kV2FybmluZ0V2ZW50cw0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRTaG93QXVkaW9Db250cm9scw0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRTaG93Q2FwdGlvbmluZw0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRTaG93Q29udHJvbHMNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0U2hvd0Rpc3BsYXkNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0U2hvd0dvdG9CYXINCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0U2hvd1Bvc2l0aW9uQ29udHJvbHMNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0U2hvd1N0YXR1c0Jhcg0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRTaG93VHJhY2tlcg0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRUcmFuc3BhcmVudEF0U3RhcnQNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0VmlkZW9Cb3JkZXIzRA0KK25hdGl2ZV9OUERTX25wRFNKYXZhUGVlcl9TZXRWaWRlb0JvcmRlckNvbG9yDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1NldFZpZGVvQm9yZGVyV2lkdGgNCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU2V0Vm9sdW1lDQorbmF0aXZlX05QRFNfbnBEU0phdmFQZWVyX1N0b3ANCituYXRpdmVfTlBEU19ucERTSmF2YVBlZXJfU3RyZWFtU2VsZWN0DQordW51c2VfTlBEU19ucERTRXZ0SW50ZXJmYWNlDQordW51c2VfTlBEU19ucERTSmF2YVBlZXINCit1bnVzZV9uZXRzY2FwZV9wbHVnaW5fUGx1Z2luDQordXNlX05QRFNfbnBEU0V2dEludGVyZmFjZQ0KK3VzZV9OUERTX25wRFNKYXZhUGVlcg0KK3VzZV9uZXRzY2FwZV9wbHVnaW5fUGx1Z2luDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd25wcHRvb2xzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3ducHB0b29scy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmIzZWM1MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3ducHB0b29scy5kZWYKQEAgLTAsMCArMSw3MyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBOUFBUb29scy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTlBQVG9vbHMuZGxsDQorRVhQT1JUUw0KK0NsZWFyRXZlbnREYXRhDQorUmVsZWFzZUV2ZW50U3lzdGVtDQorU2VuZEV2ZW50DQorQ29udmVydEhleFN0cmluZ1RvV1N0cmluZw0KK0NvbnZlcnRXU3RyaW5nVG9IZXhTdHJpbmcNCitDcmVhdGVCbG9iDQorQ3JlYXRlTlBQSW50ZXJmYWNlDQorRGVzdHJveUJsb2INCitEdXBsaWNhdGVCbG9iDQorRmlsdGVyTlBQQmxvYg0KK0ZpbmRPbmVPZg0KK0ZpbmRVbmtub3duQmxvYkNhdGVnb3JpZXMNCitGaW5kVW5rbm93bkJsb2JUYWdzDQorR2V0Qm9vbEZyb21CbG9iDQorR2V0Q2xhc3NJREZyb21CbG9iDQorR2V0RHdvcmRGcm9tQmxvYg0KK0dldE1hY0FkZHJlc3NGcm9tQmxvYg0KK0dldE5QUEFkZHJlc3MyRmlsdGVyRnJvbUJsb2INCitHZXROUFBBZGRyZXNzRmlsdGVyRnJvbUJsb2INCitHZXROUFBCbG9iRnJvbVVJDQorR2V0TlBQQmxvYlRhYmxlDQorR2V0TlBQRXR5cGVTYXBGaWx0ZXINCitHZXROUFBNYWNUeXBlQXNOdW1iZXINCitHZXROUFBQYXR0ZXJuRmlsdGVyRnJvbUJsb2INCitHZXROUFBUcmlnZ2VyRnJvbUJsb2INCitHZXROZXR3b3JrSW5mb0Zyb21CbG9iDQorR2V0U3RyaW5nRnJvbUJsb2INCitHZXRTdHJpbmdzRnJvbUJsb2INCitHZXRXU3RyaW5nRnJvbUJsb2INCitJc1JlbW90ZU5QUA0KK0xvY2tCbG9iDQorTWFyc2hhbEJsb2INCitNZXJnZUJsb2INCitObUFkZFVzZWRFbnRyeQ0KK05tSGVhcEFsbG9jYXRlDQorTm1IZWFwRnJlZQ0KK05tSGVhcFJlYWxsb2NhdGUNCitObUhlYXBTZXRNYXhTaXplDQorTm1IZWFwU2l6ZQ0KK05tUmVtb3ZlVXNlZEVudHJ5DQorUmFpc2VOTUV2ZW50DQorUmVhZEJsb2JGcm9tRmlsZQ0KK1JlZ0NyZWF0ZUJsb2JLZXkNCitSZWdPcGVuQmxvYktleQ0KK1JlbW92ZUZyb21CbG9iDQorU2VsZWN0TlBQQmxvYkZyb21UYWJsZQ0KK1NldEJvb2xJbkJsb2INCitTZXRDbGFzc0lESW5CbG9iDQorU2V0RHdvcmRJbkJsb2INCitTZXRNYWNBZGRyZXNzSW5CbG9iDQorU2V0TlBQQWRkcmVzczJGaWx0ZXJJbkJsb2INCitTZXROUFBBZGRyZXNzRmlsdGVySW5CbG9iDQorU2V0TlBQRXR5cGVTYXBGaWx0ZXINCitTZXROUFBQYXR0ZXJuRmlsdGVySW5CbG9iDQorU2V0TlBQVHJpZ2dlckluQmxvYg0KK1NldE5ldHdvcmtJbmZvSW5CbG9iDQorU2V0U3RyaW5nSW5CbG9iDQorU2V0V1N0cmluZ0luQmxvYg0KK1N1YmtleUV4aXN0cw0KK1VuTWFyc2hhbEJsb2INCitVbmxvY2tCbG9iDQorV3JpdGVCbG9iVG9GaWxlDQorV3JpdGVDcmFja2VkQmxvYlRvRmlsZQ0KK3JlY3Vyc2l2ZURlbGV0ZUtleQ0KK3NldEtleUFuZFZhbHVlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd25zaGlwc2VjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3duc2hpcHNlYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGYxOTViYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3duc2hpcHNlYy5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBOU0hJUFNFQy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTlNISVBTRUMuRExMDQorRVhQT1JUUw0KK0dldElwc2VjTGFzdEVycm9yDQorR2V0UmVzb3VyY2VTdHJpbmcNCitJbml0SGVscGVyRGxsDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd250ZGxsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dudGRsbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzhkZGEwMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dudGRsbC5kZWYKQEAgLTAsMCArMSwxNDIwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG50ZGxsLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBudGRsbC5kbGwNCitFWFBPUlRTDQorUHJvcGVydHlMZW5ndGhBc1ZhcmlhbnQNCitSdGxDb252ZXJ0UHJvcGVydHlUb1ZhcmlhbnQNCitSdGxDb252ZXJ0VmFyaWFudFRvUHJvcGVydHkNCitSdGxBY3RpdmF0ZUFjdGl2YXRpb25Db250ZXh0VW5zYWZlRmFzdA0KK1J0bERlYWN0aXZhdGVBY3RpdmF0aW9uQ29udGV4dFVuc2FmZUZhc3QNCitSdGxJbnRlcmxvY2tlZFB1c2hMaXN0U0xpc3QNCitSdGxVbG9uZ0J5dGVTd2FwDQorUnRsVWxvbmdsb25nQnl0ZVN3YXANCitSdGxVc2hvcnRCeXRlU3dhcA0KK0V4cEludGVybG9ja2VkUG9wRW50cnlTTGlzdEVuZA0KK0V4cEludGVybG9ja2VkUG9wRW50cnlTTGlzdEZhdWx0DQorRXhwSW50ZXJsb2NrZWRQb3BFbnRyeVNMaXN0UmVzdW1lDQorQ3NyQWxsb2NhdGVDYXB0dXJlQnVmZmVyDQorQ3NyQWxsb2NhdGVNZXNzYWdlUG9pbnRlcg0KK0NzckNhcHR1cmVNZXNzYWdlQnVmZmVyDQorQ3NyQ2FwdHVyZU1lc3NhZ2VNdWx0aVVuaWNvZGVTdHJpbmdzSW5QbGFjZQ0KK0NzckNhcHR1cmVNZXNzYWdlU3RyaW5nDQorQ3NyQ2FwdHVyZVRpbWVvdXQNCitDc3JDbGllbnRDYWxsU2VydmVyDQorQ3NyQ2xpZW50Q29ubmVjdFRvU2VydmVyDQorQ3NyRnJlZUNhcHR1cmVCdWZmZXINCitDc3JHZXRQcm9jZXNzSWQNCitDc3JJZGVudGlmeUFsZXJ0YWJsZVRocmVhZA0KK0Nzck5ld1RocmVhZA0KK0NzclByb2JlRm9yUmVhZA0KK0NzclByb2JlRm9yV3JpdGUNCitDc3JTZXRQcmlvcml0eUNsYXNzDQorRGJnQnJlYWtQb2ludA0KK0RiZ1ByaW50DQorRGJnUHJpbnRFeA0KK0RiZ1ByaW50UmV0dXJuQ29udHJvbEMNCitEYmdQcm9tcHQNCitEYmdRdWVyeURlYnVnRmlsdGVyU3RhdGUNCitEYmdTZXREZWJ1Z0ZpbHRlclN0YXRlDQorRGJnVWlDb25uZWN0VG9EYmcNCitEYmdVaUNvbnRpbnVlDQorRGJnVWlDb252ZXJ0U3RhdGVDaGFuZ2VTdHJ1Y3R1cmUNCitEYmdVaURlYnVnQWN0aXZlUHJvY2Vzcw0KK0RiZ1VpR2V0VGhyZWFkRGVidWdPYmplY3QNCitEYmdVaUlzc3VlUmVtb3RlQnJlYWtpbg0KK0RiZ1VpUmVtb3RlQnJlYWtpbg0KK0RiZ1VpU2V0VGhyZWFkRGVidWdPYmplY3QNCitEYmdVaVN0b3BEZWJ1Z2dpbmcNCitEYmdVaVdhaXRTdGF0ZUNoYW5nZQ0KK0RiZ1VzZXJCcmVha1BvaW50DQorRXR3Q29udHJvbFRyYWNlQQ0KK0V0d0NvbnRyb2xUcmFjZVcNCitFdHdDcmVhdGVUcmFjZUluc3RhbmNlSWQNCitFdHdFbmFibGVUcmFjZQ0KK0V0d0VudW1lcmF0ZVRyYWNlR3VpZHMNCitFdHdGbHVzaFRyYWNlQQ0KK0V0d0ZsdXNoVHJhY2VXDQorRXR3R2V0VHJhY2VFbmFibGVGbGFncw0KK0V0d0dldFRyYWNlRW5hYmxlTGV2ZWwNCitFdHdHZXRUcmFjZUxvZ2dlckhhbmRsZQ0KK0V0d05vdGlmaWNhdGlvblJlZ2lzdHJhdGlvbkENCitFdHdOb3RpZmljYXRpb25SZWdpc3RyYXRpb25XDQorRXR3UXVlcnlBbGxUcmFjZXNBDQorRXR3UXVlcnlBbGxUcmFjZXNXDQorRXR3UXVlcnlUcmFjZUENCitFdHdRdWVyeVRyYWNlVw0KK0V0d1JlY2VpdmVOb3RpZmljYXRpb25zQQ0KK0V0d1JlY2VpdmVOb3RpZmljYXRpb25zVw0KK0V0d1JlZ2lzdGVyVHJhY2VHdWlkc0ENCitFdHdSZWdpc3RlclRyYWNlR3VpZHNXDQorRXR3U3RhcnRUcmFjZUENCitFdHdTdGFydFRyYWNlVw0KK0V0d1N0b3BUcmFjZUENCitFdHdTdG9wVHJhY2VXDQorRXR3VHJhY2VFdmVudA0KK0V0d1RyYWNlRXZlbnRJbnN0YW5jZQ0KK0V0d1RyYWNlTWVzc2FnZQ0KK0V0d1RyYWNlTWVzc2FnZVZhDQorRXR3VW5yZWdpc3RlclRyYWNlR3VpZHMNCitFdHdVcGRhdGVUcmFjZUENCitFdHdVcGRhdGVUcmFjZVcNCitFdHdwR2V0VHJhY2VCdWZmZXINCitFdHdwU2V0SFdDb25maWdGdW5jdGlvbg0KK0tpRmFzdFN5c3RlbUNhbGwNCitLaUZhc3RTeXN0ZW1DYWxsUmV0DQorS2lJbnRTeXN0ZW1DYWxsDQorS2lSYWlzZVVzZXJFeGNlcHRpb25EaXNwYXRjaGVyDQorS2lVc2VyQXBjRGlzcGF0Y2hlcg0KK0tpVXNlckNhbGxiYWNrRGlzcGF0Y2hlcg0KK0tpVXNlckV4Y2VwdGlvbkRpc3BhdGNoZXINCitMZHJBY2Nlc3NPdXRPZlByb2Nlc3NSZXNvdXJjZQ0KK0xkckFjY2Vzc1Jlc291cmNlDQorTGRyQWRkUmVmRGxsDQorTGRyQWx0ZXJuYXRlUmVzb3VyY2VzRW5hYmxlZA0KK0xkckNyZWF0ZU91dE9mUHJvY2Vzc0ltYWdlDQorTGRyRGVzdHJveU91dE9mUHJvY2Vzc0ltYWdlDQorTGRyRGlzYWJsZVRocmVhZENhbGxvdXRzRm9yRGxsDQorTGRyRW51bVJlc291cmNlcw0KK0xkckVudW1lcmF0ZUxvYWRlZE1vZHVsZXMNCitMZHJGaW5kQ3JlYXRlUHJvY2Vzc01hbmlmZXN0DQorTGRyRmluZEVudHJ5Rm9yQWRkcmVzcw0KK0xkckZpbmRSZXNvdXJjZURpcmVjdG9yeV9VDQorTGRyRmluZFJlc291cmNlRXhfVQ0KK0xkckZpbmRSZXNvdXJjZV9VDQorTGRyRmx1c2hBbHRlcm5hdGVSZXNvdXJjZU1vZHVsZXMNCitMZHJHZXREbGxIYW5kbGUNCitMZHJHZXREbGxIYW5kbGVFeA0KK0xkckdldFByb2NlZHVyZUFkZHJlc3MNCitMZHJIb3RQYXRjaFJvdXRpbmUNCitMZHJJbml0U2hpbUVuZ2luZUR5bmFtaWMNCitMZHJJbml0aWFsaXplVGh1bmsNCitMZHJMb2FkQWx0ZXJuYXRlUmVzb3VyY2VNb2R1bGUNCitMZHJMb2FkRGxsDQorTGRyTG9ja0xvYWRlckxvY2sNCitMZHJPcGVuSW1hZ2VGaWxlT3B0aW9uc0tleQ0KK0xkclByb2Nlc3NSZWxvY2F0aW9uQmxvY2sNCitMZHJRdWVyeUltYWdlRmlsZUV4ZWN1dGlvbk9wdGlvbnMNCitMZHJRdWVyeUltYWdlRmlsZUV4ZWN1dGlvbk9wdGlvbnNFeA0KK0xkclF1ZXJ5SW1hZ2VGaWxlS2V5T3B0aW9uDQorTGRyUXVlcnlQcm9jZXNzTW9kdWxlSW5mb3JtYXRpb24NCitMZHJTZXRBcHBDb21wYXREbGxSZWRpcmVjdGlvbkNhbGxiYWNrDQorTGRyU2V0RGxsTWFuaWZlc3RQcm9iZXINCitMZHJTaHV0ZG93blByb2Nlc3MNCitMZHJTaHV0ZG93blRocmVhZA0KK0xkclVubG9hZEFsdGVybmF0ZVJlc291cmNlTW9kdWxlDQorTGRyVW5sb2FkRGxsDQorTGRyVW5sb2NrTG9hZGVyTG9jaw0KK0xkclZlcmlmeUltYWdlTWF0Y2hlc0NoZWNrc3VtDQorTmxzQW5zaUNvZGVQYWdlIERBVEENCitObHNNYkNvZGVQYWdlVGFnIERBVEENCitObHNNYk9lbUNvZGVQYWdlVGFnIERBVEENCitOdEFjY2VwdENvbm5lY3RQb3J0DQorTnRBY2Nlc3NDaGVjaw0KK050QWNjZXNzQ2hlY2tBbmRBdWRpdEFsYXJtDQorTnRBY2Nlc3NDaGVja0J5VHlwZQ0KK050QWNjZXNzQ2hlY2tCeVR5cGVBbmRBdWRpdEFsYXJtDQorTnRBY2Nlc3NDaGVja0J5VHlwZVJlc3VsdExpc3QNCitOdEFjY2Vzc0NoZWNrQnlUeXBlUmVzdWx0TGlzdEFuZEF1ZGl0QWxhcm0NCitOdEFjY2Vzc0NoZWNrQnlUeXBlUmVzdWx0TGlzdEFuZEF1ZGl0QWxhcm1CeUhhbmRsZQ0KK050QWRkQXRvbQ0KK050QWRkQm9vdEVudHJ5DQorTnRBZGREcml2ZXJFbnRyeQ0KK050QWRqdXN0R3JvdXBzVG9rZW4NCitOdEFkanVzdFByaXZpbGVnZXNUb2tlbg0KK050QWxlcnRSZXN1bWVUaHJlYWQNCitOdEFsZXJ0VGhyZWFkDQorTnRBbGxvY2F0ZUxvY2FsbHlVbmlxdWVJZA0KK050QWxsb2NhdGVVc2VyUGh5c2ljYWxQYWdlcw0KK050QWxsb2NhdGVVdWlkcw0KK050QWxsb2NhdGVWaXJ0dWFsTWVtb3J5DQorTnRBcHBoZWxwQ2FjaGVDb250cm9sDQorTnRBcmVNYXBwZWRGaWxlc1RoZVNhbWUNCitOdEFzc2lnblByb2Nlc3NUb0pvYk9iamVjdA0KK050Q2FsbGJhY2tSZXR1cm4NCitOdENhbmNlbERldmljZVdha2V1cFJlcXVlc3QNCitOdENhbmNlbElvRmlsZQ0KK050Q2FuY2VsVGltZXINCitOdENsZWFyRXZlbnQNCitOdENsb3NlDQorTnRDbG9zZU9iamVjdEF1ZGl0QWxhcm0NCitOdENvbXBhY3RLZXlzDQorTnRDb21wYXJlVG9rZW5zDQorTnRDb21wbGV0ZUNvbm5lY3RQb3J0DQorTnRDb21wcmVzc0tleQ0KK050Q29ubmVjdFBvcnQNCitOdENvbnRpbnVlDQorTnRDcmVhdGVEZWJ1Z09iamVjdA0KK050Q3JlYXRlRGlyZWN0b3J5T2JqZWN0DQorTnRDcmVhdGVFdmVudA0KK050Q3JlYXRlRXZlbnRQYWlyDQorTnRDcmVhdGVGaWxlDQorTnRDcmVhdGVJb0NvbXBsZXRpb24NCitOdENyZWF0ZUpvYk9iamVjdA0KK050Q3JlYXRlSm9iU2V0DQorTnRDcmVhdGVLZXkNCitOdENyZWF0ZUtleWVkRXZlbnQNCitOdENyZWF0ZU1haWxzbG90RmlsZQ0KK050Q3JlYXRlTXV0YW50DQorTnRDcmVhdGVOYW1lZFBpcGVGaWxlDQorTnRDcmVhdGVQYWdpbmdGaWxlDQorTnRDcmVhdGVQb3J0DQorTnRDcmVhdGVQcm9jZXNzDQorTnRDcmVhdGVQcm9jZXNzRXgNCitOdENyZWF0ZVByb2ZpbGUNCitOdENyZWF0ZVNlY3Rpb24NCitOdENyZWF0ZVNlbWFwaG9yZQ0KK050Q3JlYXRlU3ltYm9saWNMaW5rT2JqZWN0DQorTnRDcmVhdGVUaHJlYWQNCitOdENyZWF0ZVRpbWVyDQorTnRDcmVhdGVUb2tlbg0KK050Q3JlYXRlV2FpdGFibGVQb3J0DQorTnRDdXJyZW50VGViDQorTnREZWJ1Z0FjdGl2ZVByb2Nlc3MNCitOdERlYnVnQ29udGludWUNCitOdERlbGF5RXhlY3V0aW9uDQorTnREZWxldGVBdG9tDQorTnREZWxldGVCb290RW50cnkNCitOdERlbGV0ZURyaXZlckVudHJ5DQorTnREZWxldGVGaWxlDQorTnREZWxldGVLZXkNCitOdERlbGV0ZU9iamVjdEF1ZGl0QWxhcm0NCitOdERlbGV0ZVZhbHVlS2V5DQorTnREZXZpY2VJb0NvbnRyb2xGaWxlDQorTnREaXNwbGF5U3RyaW5nDQorTnREdXBsaWNhdGVPYmplY3QNCitOdER1cGxpY2F0ZVRva2VuDQorTnRFbnVtZXJhdGVCb290RW50cmllcw0KK050RW51bWVyYXRlRHJpdmVyRW50cmllcw0KK050RW51bWVyYXRlS2V5DQorTnRFbnVtZXJhdGVTeXN0ZW1FbnZpcm9ubWVudFZhbHVlc0V4DQorTnRFbnVtZXJhdGVWYWx1ZUtleQ0KK050RXh0ZW5kU2VjdGlvbg0KK050RmlsdGVyVG9rZW4NCitOdEZpbmRBdG9tDQorTnRGbHVzaEJ1ZmZlcnNGaWxlDQorTnRGbHVzaEluc3RydWN0aW9uQ2FjaGUNCitOdEZsdXNoS2V5DQorTnRGbHVzaFZpcnR1YWxNZW1vcnkNCitOdEZsdXNoV3JpdGVCdWZmZXINCitOdEZyZWVVc2VyUGh5c2ljYWxQYWdlcw0KK050RnJlZVZpcnR1YWxNZW1vcnkNCitOdEZzQ29udHJvbEZpbGUNCitOdEdldENvbnRleHRUaHJlYWQNCitOdEdldEN1cnJlbnRQcm9jZXNzb3JOdW1iZXINCitOdEdldERldmljZVBvd2VyU3RhdGUNCitOdEdldFBsdWdQbGF5RXZlbnQNCitOdEdldFRpY2tDb3VudA0KK050R2V0V3JpdGVXYXRjaA0KK050SW1wZXJzb25hdGVBbm9ueW1vdXNUb2tlbg0KK050SW1wZXJzb25hdGVDbGllbnRPZlBvcnQNCitOdEltcGVyc29uYXRlVGhyZWFkDQorTnRJbml0aWFsaXplUmVnaXN0cnkNCitOdEluaXRpYXRlUG93ZXJBY3Rpb24NCitOdElzUHJvY2Vzc0luSm9iDQorTnRJc1N5c3RlbVJlc3VtZUF1dG9tYXRpYw0KK050TGlzdGVuUG9ydA0KK050TG9hZERyaXZlcg0KK050TG9hZEtleTINCitOdExvYWRLZXkNCitOdExvYWRLZXlFeA0KK050TG9ja0ZpbGUNCitOdExvY2tQcm9kdWN0QWN0aXZhdGlvbktleXMNCitOdExvY2tSZWdpc3RyeUtleQ0KK050TG9ja1ZpcnR1YWxNZW1vcnkNCitOdE1ha2VQZXJtYW5lbnRPYmplY3QNCitOdE1ha2VUZW1wb3JhcnlPYmplY3QNCitOdE1hcFVzZXJQaHlzaWNhbFBhZ2VzDQorTnRNYXBVc2VyUGh5c2ljYWxQYWdlc1NjYXR0ZXINCitOdE1hcFZpZXdPZlNlY3Rpb24NCitOdE1vZGlmeUJvb3RFbnRyeQ0KK050TW9kaWZ5RHJpdmVyRW50cnkNCitOdE5vdGlmeUNoYW5nZURpcmVjdG9yeUZpbGUNCitOdE5vdGlmeUNoYW5nZUtleQ0KK050Tm90aWZ5Q2hhbmdlTXVsdGlwbGVLZXlzDQorTnRPcGVuRGlyZWN0b3J5T2JqZWN0DQorTnRPcGVuRXZlbnQNCitOdE9wZW5FdmVudFBhaXINCitOdE9wZW5GaWxlDQorTnRPcGVuSW9Db21wbGV0aW9uDQorTnRPcGVuSm9iT2JqZWN0DQorTnRPcGVuS2V5DQorTnRPcGVuS2V5ZWRFdmVudA0KK050T3Blbk11dGFudA0KK050T3Blbk9iamVjdEF1ZGl0QWxhcm0NCitOdE9wZW5Qcm9jZXNzDQorTnRPcGVuUHJvY2Vzc1Rva2VuDQorTnRPcGVuUHJvY2Vzc1Rva2VuRXgNCitOdE9wZW5TZWN0aW9uDQorTnRPcGVuU2VtYXBob3JlDQorTnRPcGVuU3ltYm9saWNMaW5rT2JqZWN0DQorTnRPcGVuVGhyZWFkDQorTnRPcGVuVGhyZWFkVG9rZW4NCitOdE9wZW5UaHJlYWRUb2tlbkV4DQorTnRPcGVuVGltZXINCitOdFBsdWdQbGF5Q29udHJvbA0KK050UG93ZXJJbmZvcm1hdGlvbg0KK050UHJpdmlsZWdlQ2hlY2sNCitOdFByaXZpbGVnZU9iamVjdEF1ZGl0QWxhcm0NCitOdFByaXZpbGVnZWRTZXJ2aWNlQXVkaXRBbGFybQ0KK050UHJvdGVjdFZpcnR1YWxNZW1vcnkNCitOdFB1bHNlRXZlbnQNCitOdFF1ZXJ5QXR0cmlidXRlc0ZpbGUNCitOdFF1ZXJ5Qm9vdEVudHJ5T3JkZXINCitOdFF1ZXJ5Qm9vdE9wdGlvbnMNCitOdFF1ZXJ5RGVidWdGaWx0ZXJTdGF0ZQ0KK050UXVlcnlEZWZhdWx0TG9jYWxlDQorTnRRdWVyeURlZmF1bHRVSUxhbmd1YWdlDQorTnRRdWVyeURpcmVjdG9yeUZpbGUNCitOdFF1ZXJ5RGlyZWN0b3J5T2JqZWN0DQorTnRRdWVyeURyaXZlckVudHJ5T3JkZXINCitOdFF1ZXJ5RWFGaWxlDQorTnRRdWVyeUV2ZW50DQorTnRRdWVyeUZ1bGxBdHRyaWJ1dGVzRmlsZQ0KK050UXVlcnlJbmZvcm1hdGlvbkF0b20NCitOdFF1ZXJ5SW5mb3JtYXRpb25GaWxlDQorTnRRdWVyeUluZm9ybWF0aW9uSm9iT2JqZWN0DQorTnRRdWVyeUluZm9ybWF0aW9uUG9ydA0KK050UXVlcnlJbmZvcm1hdGlvblByb2Nlc3MNCitOdFF1ZXJ5SW5mb3JtYXRpb25UaHJlYWQNCitOdFF1ZXJ5SW5mb3JtYXRpb25Ub2tlbg0KK050UXVlcnlJbnN0YWxsVUlMYW5ndWFnZQ0KK050UXVlcnlJbnRlcnZhbFByb2ZpbGUNCitOdFF1ZXJ5SW9Db21wbGV0aW9uDQorTnRRdWVyeUtleQ0KK050UXVlcnlNdWx0aXBsZVZhbHVlS2V5DQorTnRRdWVyeU11dGFudA0KK050UXVlcnlPYmplY3QNCitOdFF1ZXJ5T3BlblN1YktleXMNCitOdFF1ZXJ5T3BlblN1YktleXNFeA0KK050UXVlcnlQZXJmb3JtYW5jZUNvdW50ZXINCitOdFF1ZXJ5UG9ydEluZm9ybWF0aW9uUHJvY2Vzcw0KK050UXVlcnlRdW90YUluZm9ybWF0aW9uRmlsZQ0KK050UXVlcnlTZWN0aW9uDQorTnRRdWVyeVNlY3VyaXR5T2JqZWN0DQorTnRRdWVyeVNlbWFwaG9yZQ0KK050UXVlcnlTeW1ib2xpY0xpbmtPYmplY3QNCitOdFF1ZXJ5U3lzdGVtRW52aXJvbm1lbnRWYWx1ZQ0KK050UXVlcnlTeXN0ZW1FbnZpcm9ubWVudFZhbHVlRXgNCitOdFF1ZXJ5U3lzdGVtSW5mb3JtYXRpb24NCitOdFF1ZXJ5U3lzdGVtVGltZQ0KK050UXVlcnlUaW1lcg0KK050UXVlcnlUaW1lclJlc29sdXRpb24NCitOdFF1ZXJ5VmFsdWVLZXkNCitOdFF1ZXJ5VmlydHVhbE1lbW9yeQ0KK050UXVlcnlWb2x1bWVJbmZvcm1hdGlvbkZpbGUNCitOdFF1ZXVlQXBjVGhyZWFkDQorTnRSYWlzZUV4Y2VwdGlvbg0KK050UmFpc2VIYXJkRXJyb3INCitOdFJlYWRGaWxlDQorTnRSZWFkRmlsZVNjYXR0ZXINCitOdFJlYWRSZXF1ZXN0RGF0YQ0KK050UmVhZFZpcnR1YWxNZW1vcnkNCitOdFJlZ2lzdGVyVGhyZWFkVGVybWluYXRlUG9ydA0KK050UmVsZWFzZUtleWVkRXZlbnQNCitOdFJlbGVhc2VNdXRhbnQNCitOdFJlbGVhc2VTZW1hcGhvcmUNCitOdFJlbW92ZUlvQ29tcGxldGlvbg0KK050UmVtb3ZlUHJvY2Vzc0RlYnVnDQorTnRSZW5hbWVLZXkNCitOdFJlcGxhY2VLZXkNCitOdFJlcGx5UG9ydA0KK050UmVwbHlXYWl0UmVjZWl2ZVBvcnQNCitOdFJlcGx5V2FpdFJlY2VpdmVQb3J0RXgNCitOdFJlcGx5V2FpdFJlcGx5UG9ydA0KK050UmVxdWVzdERldmljZVdha2V1cA0KK050UmVxdWVzdFBvcnQNCitOdFJlcXVlc3RXYWl0UmVwbHlQb3J0DQorTnRSZXF1ZXN0V2FrZXVwTGF0ZW5jeQ0KK050UmVzZXRFdmVudA0KK050UmVzZXRXcml0ZVdhdGNoDQorTnRSZXN0b3JlS2V5DQorTnRSZXN1bWVQcm9jZXNzDQorTnRSZXN1bWVUaHJlYWQNCitOdFNhdmVLZXkNCitOdFNhdmVLZXlFeA0KK050U2F2ZU1lcmdlZEtleXMNCitOdFNlY3VyZUNvbm5lY3RQb3J0DQorTnRTZXRCb290RW50cnlPcmRlcg0KK050U2V0Qm9vdE9wdGlvbnMNCitOdFNldENvbnRleHRUaHJlYWQNCitOdFNldERlYnVnRmlsdGVyU3RhdGUNCitOdFNldERlZmF1bHRIYXJkRXJyb3JQb3J0DQorTnRTZXREZWZhdWx0TG9jYWxlDQorTnRTZXREZWZhdWx0VUlMYW5ndWFnZQ0KK050U2V0RHJpdmVyRW50cnlPcmRlcg0KK050U2V0RWFGaWxlDQorTnRTZXRFdmVudA0KK050U2V0RXZlbnRCb29zdFByaW9yaXR5DQorTnRTZXRIaWdoRXZlbnRQYWlyDQorTnRTZXRIaWdoV2FpdExvd0V2ZW50UGFpcg0KK050U2V0SW5mb3JtYXRpb25EZWJ1Z09iamVjdA0KK050U2V0SW5mb3JtYXRpb25GaWxlDQorTnRTZXRJbmZvcm1hdGlvbkpvYk9iamVjdA0KK050U2V0SW5mb3JtYXRpb25LZXkNCitOdFNldEluZm9ybWF0aW9uT2JqZWN0DQorTnRTZXRJbmZvcm1hdGlvblByb2Nlc3MNCitOdFNldEluZm9ybWF0aW9uVGhyZWFkDQorTnRTZXRJbmZvcm1hdGlvblRva2VuDQorTnRTZXRJbnRlcnZhbFByb2ZpbGUNCitOdFNldElvQ29tcGxldGlvbg0KK050U2V0TGR0RW50cmllcw0KK050U2V0TG93RXZlbnRQYWlyDQorTnRTZXRMb3dXYWl0SGlnaEV2ZW50UGFpcg0KK050U2V0UXVvdGFJbmZvcm1hdGlvbkZpbGUNCitOdFNldFNlY3VyaXR5T2JqZWN0DQorTnRTZXRTeXN0ZW1FbnZpcm9ubWVudFZhbHVlDQorTnRTZXRTeXN0ZW1FbnZpcm9ubWVudFZhbHVlRXgNCitOdFNldFN5c3RlbUluZm9ybWF0aW9uDQorTnRTZXRTeXN0ZW1Qb3dlclN0YXRlDQorTnRTZXRTeXN0ZW1UaW1lDQorTnRTZXRUaHJlYWRFeGVjdXRpb25TdGF0ZQ0KK050U2V0VGltZXINCitOdFNldFRpbWVyUmVzb2x1dGlvbg0KK050U2V0VXVpZFNlZWQNCitOdFNldFZhbHVlS2V5DQorTnRTZXRWb2x1bWVJbmZvcm1hdGlvbkZpbGUNCitOdFNodXRkb3duU3lzdGVtDQorTnRTaWduYWxBbmRXYWl0Rm9yU2luZ2xlT2JqZWN0DQorTnRTdGFydFByb2ZpbGUNCitOdFN0b3BQcm9maWxlDQorTnRTdXNwZW5kUHJvY2Vzcw0KK050U3VzcGVuZFRocmVhZA0KK050U3lzdGVtRGVidWdDb250cm9sDQorTnRUZXJtaW5hdGVKb2JPYmplY3QNCitOdFRlcm1pbmF0ZVByb2Nlc3MNCitOdFRlcm1pbmF0ZVRocmVhZA0KK050VGVzdEFsZXJ0DQorTnRUcmFjZUV2ZW50DQorTnRUcmFuc2xhdGVGaWxlUGF0aA0KK050VW5sb2FkRHJpdmVyDQorTnRVbmxvYWRLZXkyDQorTnRVbmxvYWRLZXkNCitOdFVubG9hZEtleUV4DQorTnRVbmxvY2tGaWxlDQorTnRVbmxvY2tWaXJ0dWFsTWVtb3J5DQorTnRVbm1hcFZpZXdPZlNlY3Rpb24NCitOdFZkbUNvbnRyb2wNCitOdFdhaXRGb3JEZWJ1Z0V2ZW50DQorTnRXYWl0Rm9yS2V5ZWRFdmVudA0KK050V2FpdEZvck11bHRpcGxlT2JqZWN0czMyDQorTnRXYWl0Rm9yTXVsdGlwbGVPYmplY3RzDQorTnRXYWl0Rm9yU2luZ2xlT2JqZWN0DQorTnRXYWl0SGlnaEV2ZW50UGFpcg0KK050V2FpdExvd0V2ZW50UGFpcg0KK050V293NjRDc3JBbGxvY2F0ZUNhcHR1cmVCdWZmZXINCitOdFdvdzY0Q3NyQWxsb2NhdGVNZXNzYWdlUG9pbnRlcg0KK050V293NjRDc3JDYXB0dXJlTWVzc2FnZUJ1ZmZlcg0KK050V293NjRDc3JDYXB0dXJlTWVzc2FnZVN0cmluZw0KK050V293NjRDc3JDbGllbnRDYWxsU2VydmVyDQorTnRXb3c2NENzckNsaWVudENvbm5lY3RUb1NlcnZlcg0KK050V293NjRDc3JGcmVlQ2FwdHVyZUJ1ZmZlcg0KK050V293NjRDc3JHZXRQcm9jZXNzSWQNCitOdFdvdzY0Q3NySWRlbnRpZnlBbGVydGFibGVUaHJlYWQNCitOdFdvdzY0Q3NyTmV3VGhyZWFkDQorTnRXb3c2NENzclNldFByaW9yaXR5Q2xhc3MNCitOdFdvdzY0RGVidWdnZXJDYWxsDQorTnRXb3c2NEdldE5hdGl2ZVN5c3RlbUluZm9ybWF0aW9uDQorTnRXb3c2NFF1ZXJ5SW5mb3JtYXRpb25Qcm9jZXNzNjQNCitOdFdvdzY0UXVlcnlWaXJ0dWFsTWVtb3J5NjQNCitOdFdvdzY0UmVhZFZpcnR1YWxNZW1vcnk2NA0KK050V3JpdGVGaWxlDQorTnRXcml0ZUZpbGVHYXRoZXINCitOdFdyaXRlUmVxdWVzdERhdGENCitOdFdyaXRlVmlydHVhbE1lbW9yeQ0KK050WWllbGRFeGVjdXRpb24NCitQZnhGaW5kUHJlZml4DQorUGZ4SW5pdGlhbGl6ZQ0KK1BmeEluc2VydFByZWZpeA0KK1BmeFJlbW92ZVByZWZpeA0KK1J0bEFib3J0UlhhY3QNCitSdGxBYnNvbHV0ZVRvU2VsZlJlbGF0aXZlU0QNCitSdGxBY3F1aXJlUGViTG9jaw0KK1J0bEFjcXVpcmVQcml2aWxlZ2UNCitSdGxBY3F1aXJlUmVzb3VyY2VFeGNsdXNpdmUNCitSdGxBY3F1aXJlUmVzb3VyY2VTaGFyZWQNCitSdGxBY3RpdmF0ZUFjdGl2YXRpb25Db250ZXh0DQorUnRsQWN0aXZhdGVBY3RpdmF0aW9uQ29udGV4dEV4DQorUnRsQWRkQWNjZXNzQWxsb3dlZEFjZQ0KK1J0bEFkZEFjY2Vzc0FsbG93ZWRBY2VFeA0KK1J0bEFkZEFjY2Vzc0FsbG93ZWRPYmplY3RBY2UNCitSdGxBZGRBY2Nlc3NEZW5pZWRBY2UNCitSdGxBZGRBY2Nlc3NEZW5pZWRBY2VFeA0KK1J0bEFkZEFjY2Vzc0RlbmllZE9iamVjdEFjZQ0KK1J0bEFkZEFjZQ0KK1J0bEFkZEFjdGlvblRvUlhhY3QNCitSdGxBZGRBdG9tVG9BdG9tVGFibGUNCitSdGxBZGRBdHRyaWJ1dGVBY3Rpb25Ub1JYYWN0DQorUnRsQWRkQXVkaXRBY2Nlc3NBY2UNCitSdGxBZGRBdWRpdEFjY2Vzc0FjZUV4DQorUnRsQWRkQXVkaXRBY2Nlc3NPYmplY3RBY2UNCitSdGxBZGRDb21wb3VuZEFjZQ0KK1J0bEFkZFJlZkFjdGl2YXRpb25Db250ZXh0DQorUnRsQWRkVmVjdG9yZWRDb250aW51ZUhhbmRsZXINCitSdGxBZGRWZWN0b3JlZEV4Y2VwdGlvbkhhbmRsZXINCitSdGxBZGRyZXNzSW5TZWN0aW9uVGFibGUNCitSdGxBZGp1c3RQcml2aWxlZ2UNCitSdGxBbGxvY2F0ZUFjdGl2YXRpb25Db250ZXh0U3RhY2sNCitSdGxBbGxvY2F0ZUFuZEluaXRpYWxpemVTaWQNCitSdGxBbGxvY2F0ZUhhbmRsZQ0KK1J0bEFsbG9jYXRlSGVhcA0KK1J0bEFuc2lDaGFyVG9Vbmljb2RlQ2hhcg0KK1J0bEFuc2lTdHJpbmdUb1VuaWNvZGVTaXplDQorUnRsQW5zaVN0cmluZ1RvVW5pY29kZVN0cmluZw0KK1J0bEFwcGVuZEFzY2lpelRvU3RyaW5nDQorUnRsQXBwZW5kUGF0aEVsZW1lbnQNCitSdGxBcHBlbmRTdHJpbmdUb1N0cmluZw0KK1J0bEFwcGVuZFVuaWNvZGVTdHJpbmdUb1N0cmluZw0KK1J0bEFwcGVuZFVuaWNvZGVUb1N0cmluZw0KK1J0bEFwcGxpY2F0aW9uVmVyaWZpZXJTdG9wDQorUnRsQXBwbHlSWGFjdA0KK1J0bEFwcGx5UlhhY3ROb0ZsdXNoDQorUnRsQXJlQWxsQWNjZXNzZXNHcmFudGVkDQorUnRsQXJlQW55QWNjZXNzZXNHcmFudGVkDQorUnRsQXJlQml0c0NsZWFyDQorUnRsQXJlQml0c1NldA0KK1J0bEFzc2VydA0KK1J0bENhbmNlbFRpbWVyDQorUnRsQ2FwdHVyZUNvbnRleHQNCitSdGxDYXB0dXJlU3RhY2tCYWNrVHJhY2UNCitSdGxDYXB0dXJlU3RhY2tDb250ZXh0DQorUnRsQ2hhclRvSW50ZWdlcg0KK1J0bENoZWNrRm9yT3JwaGFuZWRDcml0aWNhbFNlY3Rpb25zDQorUnRsQ2hlY2tQcm9jZXNzUGFyYW1ldGVycw0KK1J0bENoZWNrUmVnaXN0cnlLZXkNCitSdGxDbGVhckFsbEJpdHMNCitSdGxDbGVhckJpdHMNCitSdGxDb21wYWN0SGVhcA0KK1J0bENvbXBhcmVNZW1vcnkNCitSdGxDb21wYXJlTWVtb3J5VWxvbmcNCitSdGxDb21wYXJlU3RyaW5nDQorUnRsQ29tcGFyZVVuaWNvZGVTdHJpbmcNCitSdGxDb21wcmVzc0J1ZmZlcg0KK1J0bENvbXB1dGVDcmMzMg0KK1J0bENvbXB1dGVJbXBvcnRUYWJsZUhhc2gNCitSdGxDb21wdXRlUHJpdmF0aXplZERsbE5hbWVfVQ0KK1J0bENvbnNvbGVNdWx0aUJ5dGVUb1VuaWNvZGVODQorUnRsQ29udmVydEV4Y2x1c2l2ZVRvU2hhcmVkDQorUnRsQ29udmVydExvbmdUb0xhcmdlSW50ZWdlcg0KK1J0bENvbnZlcnRTaGFyZWRUb0V4Y2x1c2l2ZQ0KK1J0bENvbnZlcnRTaWRUb1VuaWNvZGVTdHJpbmcNCitSdGxDb252ZXJ0VG9BdXRvSW5oZXJpdFNlY3VyaXR5T2JqZWN0DQorUnRsQ29udmVydFVpTGlzdFRvQXBpTGlzdA0KK1J0bENvbnZlcnRVbG9uZ1RvTGFyZ2VJbnRlZ2VyDQorUnRsQ29weUx1aWQNCitSdGxDb3B5THVpZEFuZEF0dHJpYnV0ZXNBcnJheQ0KK1J0bENvcHlNYXBwZWRNZW1vcnkNCitSdGxDb3B5U2VjdXJpdHlEZXNjcmlwdG9yDQorUnRsQ29weVNpZA0KK1J0bENvcHlTaWRBbmRBdHRyaWJ1dGVzQXJyYXkNCitSdGxDb3B5U3RyaW5nDQorUnRsQ29weVVuaWNvZGVTdHJpbmcNCitSdGxDcmVhdGVBY2wNCitSdGxDcmVhdGVBY3RpdmF0aW9uQ29udGV4dA0KK1J0bENyZWF0ZUFuZFNldFNEDQorUnRsQ3JlYXRlQXRvbVRhYmxlDQorUnRsQ3JlYXRlQm9vdFN0YXR1c0RhdGFGaWxlDQorUnRsQ3JlYXRlRW52aXJvbm1lbnQNCitSdGxDcmVhdGVIZWFwDQorUnRsQ3JlYXRlUHJvY2Vzc1BhcmFtZXRlcnMNCitSdGxDcmVhdGVRdWVyeURlYnVnQnVmZmVyDQorUnRsQ3JlYXRlUmVnaXN0cnlLZXkNCitSdGxDcmVhdGVTZWN1cml0eURlc2NyaXB0b3INCitSdGxDcmVhdGVTeXN0ZW1Wb2x1bWVJbmZvcm1hdGlvbkZvbGRlcg0KK1J0bENyZWF0ZVRhZ0hlYXANCitSdGxDcmVhdGVUaW1lcg0KK1J0bENyZWF0ZVRpbWVyUXVldWUNCitSdGxDcmVhdGVVbmljb2RlU3RyaW5nDQorUnRsQ3JlYXRlVW5pY29kZVN0cmluZ0Zyb21Bc2NpaXoNCitSdGxDcmVhdGVVc2VyUHJvY2Vzcw0KK1J0bENyZWF0ZVVzZXJTZWN1cml0eU9iamVjdA0KK1J0bENyZWF0ZVVzZXJUaHJlYWQNCitSdGxDdXN0b21DUFRvVW5pY29kZU4NCitSdGxDdXRvdmVyVGltZVRvU3lzdGVtVGltZQ0KK1J0bERlTm9ybWFsaXplUHJvY2Vzc1BhcmFtcw0KK1J0bERlYWN0aXZhdGVBY3RpdmF0aW9uQ29udGV4dA0KK1J0bERlYnVnUHJpbnRUaW1lcw0KK1J0bERlY29kZVBvaW50ZXINCitSdGxEZWNvZGVTeXN0ZW1Qb2ludGVyDQorUnRsRGVjb21wcmVzc0J1ZmZlcg0KK1J0bERlY29tcHJlc3NGcmFnbWVudA0KK1J0bERlZmF1bHROcEFjbA0KK1J0bERlbGV0ZQ0KK1J0bERlbGV0ZUFjZQ0KK1J0bERlbGV0ZUF0b21Gcm9tQXRvbVRhYmxlDQorUnRsRGVsZXRlQ3JpdGljYWxTZWN0aW9uDQorUnRsRGVsZXRlRWxlbWVudEdlbmVyaWNUYWJsZQ0KK1J0bERlbGV0ZUVsZW1lbnRHZW5lcmljVGFibGVBdmwNCitSdGxEZWxldGVOb1NwbGF5DQorUnRsRGVsZXRlUmVnaXN0cnlWYWx1ZQ0KK1J0bERlbGV0ZVJlc291cmNlDQorUnRsRGVsZXRlU2VjdXJpdHlPYmplY3QNCitSdGxEZWxldGVUaW1lcg0KK1J0bERlbGV0ZVRpbWVyUXVldWUNCitSdGxEZWxldGVUaW1lclF1ZXVlRXgNCitSdGxEZXJlZ2lzdGVyV2FpdA0KK1J0bERlcmVnaXN0ZXJXYWl0RXgNCitSdGxEZXN0cm95QXRvbVRhYmxlDQorUnRsRGVzdHJveUVudmlyb25tZW50DQorUnRsRGVzdHJveUhhbmRsZVRhYmxlDQorUnRsRGVzdHJveUhlYXANCitSdGxEZXN0cm95UHJvY2Vzc1BhcmFtZXRlcnMNCitSdGxEZXN0cm95UXVlcnlEZWJ1Z0J1ZmZlcg0KK1J0bERldGVybWluZURvc1BhdGhOYW1lVHlwZV9VDQorUnRsRGxsU2h1dGRvd25JblByb2dyZXNzDQorUnRsRG5zSG9zdE5hbWVUb0NvbXB1dGVyTmFtZQ0KK1J0bERvZXNGaWxlRXhpc3RzX1UNCitSdGxEb3NBcHBseUZpbGVJc29sYXRpb25SZWRpcmVjdGlvbl9Vc3RyDQorUnRsRG9zUGF0aE5hbWVUb050UGF0aE5hbWVfVQ0KK1J0bERvc1BhdGhOYW1lVG9OdFBhdGhOYW1lX1VfV2l0aFN0YXR1cw0KK1J0bERvc1BhdGhOYW1lVG9SZWxhdGl2ZU50UGF0aE5hbWVfVQ0KK1J0bERvc1BhdGhOYW1lVG9SZWxhdGl2ZU50UGF0aE5hbWVfVV9XaXRoU3RhdHVzDQorUnRsRG9zU2VhcmNoUGF0aF9VDQorUnRsRG9zU2VhcmNoUGF0aF9Vc3RyDQorUnRsRG93bmNhc2VVbmljb2RlQ2hhcg0KK1J0bERvd25jYXNlVW5pY29kZVN0cmluZw0KK1J0bER1bXBSZXNvdXJjZQ0KK1J0bER1cGxpY2F0ZVVuaWNvZGVTdHJpbmcNCitSdGxFbXB0eUF0b21UYWJsZQ0KK1J0bEVuYWJsZUVhcmx5Q3JpdGljYWxTZWN0aW9uRXZlbnRDcmVhdGlvbg0KK1J0bEVuY29kZVBvaW50ZXINCitSdGxFbmNvZGVTeXN0ZW1Qb2ludGVyDQorUnRsRW5sYXJnZWRJbnRlZ2VyTXVsdGlwbHkNCitSdGxFbmxhcmdlZFVuc2lnbmVkRGl2aWRlDQorUnRsRW5sYXJnZWRVbnNpZ25lZE11bHRpcGx5DQorUnRsRW50ZXJDcml0aWNhbFNlY3Rpb24NCitSdGxFbnVtUHJvY2Vzc0hlYXBzDQorUnRsRW51bWVyYXRlR2VuZXJpY1RhYmxlDQorUnRsRW51bWVyYXRlR2VuZXJpY1RhYmxlQXZsDQorUnRsRW51bWVyYXRlR2VuZXJpY1RhYmxlTGlrZUFEaXJlY3RvcnkNCitSdGxFbnVtZXJhdGVHZW5lcmljVGFibGVXaXRob3V0U3BsYXlpbmcNCitSdGxFbnVtZXJhdGVHZW5lcmljVGFibGVXaXRob3V0U3BsYXlpbmdBdmwNCitSdGxFcXVhbENvbXB1dGVyTmFtZQ0KK1J0bEVxdWFsRG9tYWluTmFtZQ0KK1J0bEVxdWFsTHVpZA0KK1J0bEVxdWFsUHJlZml4U2lkDQorUnRsRXF1YWxTaWQNCitSdGxFcXVhbFN0cmluZw0KK1J0bEVxdWFsVW5pY29kZVN0cmluZw0KK1J0bEVyYXNlVW5pY29kZVN0cmluZw0KK1J0bEV4aXRVc2VyVGhyZWFkDQorUnRsRXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzX1UNCitSdGxFeHRlbmRIZWFwDQorUnRsRXh0ZW5kZWRJbnRlZ2VyTXVsdGlwbHkNCitSdGxFeHRlbmRlZExhcmdlSW50ZWdlckRpdmlkZQ0KK1J0bEV4dGVuZGVkTWFnaWNEaXZpZGUNCitSdGxGaWxsTWVtb3J5DQorUnRsRmlsbE1lbW9yeVVsb25nDQorUnRsRmluZEFjdGl2YXRpb25Db250ZXh0U2VjdGlvbkd1aWQNCitSdGxGaW5kQWN0aXZhdGlvbkNvbnRleHRTZWN0aW9uU3RyaW5nDQorUnRsRmluZENoYXJJblVuaWNvZGVTdHJpbmcNCitSdGxGaW5kQ2xlYXJCaXRzDQorUnRsRmluZENsZWFyQml0c0FuZFNldA0KK1J0bEZpbmRDbGVhclJ1bnMNCitSdGxGaW5kTGFzdEJhY2t3YXJkUnVuQ2xlYXINCitSdGxGaW5kTGVhc3RTaWduaWZpY2FudEJpdA0KK1J0bEZpbmRMb25nZXN0UnVuQ2xlYXINCitSdGxGaW5kTWVzc2FnZQ0KK1J0bEZpbmRNb3N0U2lnbmlmaWNhbnRCaXQNCitSdGxGaW5kTmV4dEZvcndhcmRSdW5DbGVhcg0KK1J0bEZpbmRTZXRCaXRzDQorUnRsRmluZFNldEJpdHNBbmRDbGVhcg0KK1J0bEZpcnN0RW50cnlTTGlzdA0KK1J0bEZpcnN0RnJlZUFjZQ0KK1J0bEZsdXNoU2VjdXJlTWVtb3J5Q2FjaGUNCitSdGxGb3JtYXRDdXJyZW50VXNlcktleVBhdGgNCitSdGxGb3JtYXRNZXNzYWdlDQorUnRsRm9ybWF0TWVzc2FnZUV4DQorUnRsRnJlZUFjdGl2YXRpb25Db250ZXh0U3RhY2sNCitSdGxGcmVlQW5zaVN0cmluZw0KK1J0bEZyZWVIYW5kbGUNCitSdGxGcmVlSGVhcA0KK1J0bEZyZWVPZW1TdHJpbmcNCitSdGxGcmVlU2lkDQorUnRsRnJlZVRocmVhZEFjdGl2YXRpb25Db250ZXh0U3RhY2sNCitSdGxGcmVlVW5pY29kZVN0cmluZw0KK1J0bEZyZWVVc2VyVGhyZWFkU3RhY2sNCitSdGxHVUlERnJvbVN0cmluZw0KK1J0bEdlbmVyYXRlOGRvdDNOYW1lDQorUnRsR2V0QWNlDQorUnRsR2V0QWN0aXZlQWN0aXZhdGlvbkNvbnRleHQNCitSdGxHZXRDYWxsZXJzQWRkcmVzcw0KK1J0bEdldENvbXByZXNzaW9uV29ya1NwYWNlU2l6ZQ0KK1J0bEdldENvbnRyb2xTZWN1cml0eURlc2NyaXB0b3INCitSdGxHZXRDcml0aWNhbFNlY3Rpb25SZWN1cnNpb25Db3VudA0KK1J0bEdldEN1cnJlbnREaXJlY3RvcnlfVQ0KK1J0bEdldEN1cnJlbnRQZWINCitSdGxHZXRDdXJyZW50UHJvY2Vzc29yTnVtYmVyDQorUnRsR2V0RGFjbFNlY3VyaXR5RGVzY3JpcHRvcg0KK1J0bEdldEVsZW1lbnRHZW5lcmljVGFibGUNCitSdGxHZXRFbGVtZW50R2VuZXJpY1RhYmxlQXZsDQorUnRsR2V0RnJhbWUNCitSdGxHZXRGdWxsUGF0aE5hbWVfVQ0KK1J0bEdldEZ1bGxQYXRoTmFtZV9Vc3RyRXgNCitSdGxHZXRHcm91cFNlY3VyaXR5RGVzY3JpcHRvcg0KK1J0bEdldExhc3ROdFN0YXR1cw0KK1J0bEdldExhc3RXaW4zMkVycm9yDQorUnRsR2V0TGVuZ3RoV2l0aG91dExhc3RGdWxsRG9zT3JOdFBhdGhFbGVtZW50DQorUnRsR2V0TGVuZ3RoV2l0aG91dFRyYWlsaW5nUGF0aFNlcGVyYXRvcnMNCitSdGxHZXRMb25nZXN0TnRQYXRoTGVuZ3RoDQorUnRsR2V0TmF0aXZlU3lzdGVtSW5mb3JtYXRpb24NCitSdGxHZXROdEdsb2JhbEZsYWdzDQorUnRsR2V0TnRQcm9kdWN0VHlwZQ0KK1J0bEdldE50VmVyc2lvbk51bWJlcnMNCitSdGxHZXRPd25lclNlY3VyaXR5RGVzY3JpcHRvcg0KK1J0bEdldFByb2Nlc3NIZWFwcw0KK1J0bEdldFNhY2xTZWN1cml0eURlc2NyaXB0b3INCitSdGxHZXRTZWN1cml0eURlc2NyaXB0b3JSTUNvbnRyb2wNCitSdGxHZXRTZXRCb290U3RhdHVzRGF0YQ0KK1J0bEdldFRocmVhZEVycm9yTW9kZQ0KK1J0bEdldFVubG9hZEV2ZW50VHJhY2UNCitSdGxHZXRVc2VySW5mb0hlYXANCitSdGxHZXRWZXJzaW9uDQorUnRsSGFzaFVuaWNvZGVTdHJpbmcNCitSdGxJZGVudGlmaWVyQXV0aG9yaXR5U2lkDQorUnRsSW1hZ2VEaXJlY3RvcnlFbnRyeVRvRGF0YQ0KK1J0bEltYWdlTnRIZWFkZXINCitSdGxJbWFnZU50SGVhZGVyRXgNCitSdGxJbWFnZVJ2YVRvU2VjdGlvbg0KK1J0bEltYWdlUnZhVG9WYQ0KK1J0bEltcGVyc29uYXRlU2VsZg0KK1J0bEluaXRBbnNpU3RyaW5nDQorUnRsSW5pdEFuc2lTdHJpbmdFeA0KK1J0bEluaXRDb2RlUGFnZVRhYmxlDQorUnRsSW5pdE5sc1RhYmxlcw0KK1J0bEluaXRTdHJpbmcNCitSdGxJbml0VW5pY29kZVN0cmluZw0KK1J0bEluaXRVbmljb2RlU3RyaW5nRXgNCitSdGxJbml0aWFsaXplQXRvbVBhY2thZ2UNCitSdGxJbml0aWFsaXplQml0TWFwDQorUnRsSW5pdGlhbGl6ZUNvbnRleHQNCitSdGxJbml0aWFsaXplQ3JpdGljYWxTZWN0aW9uDQorUnRsSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbkFuZFNwaW5Db3VudA0KK1J0bEluaXRpYWxpemVHZW5lcmljVGFibGUNCitSdGxJbml0aWFsaXplR2VuZXJpY1RhYmxlQXZsDQorUnRsSW5pdGlhbGl6ZUhhbmRsZVRhYmxlDQorUnRsSW5pdGlhbGl6ZVJYYWN0DQorUnRsSW5pdGlhbGl6ZVJlc291cmNlDQorUnRsSW5pdGlhbGl6ZVNMaXN0SGVhZA0KK1J0bEluaXRpYWxpemVTaWQNCitSdGxJbnNlcnRFbGVtZW50R2VuZXJpY1RhYmxlDQorUnRsSW5zZXJ0RWxlbWVudEdlbmVyaWNUYWJsZUF2bA0KK1J0bEluc2VydEVsZW1lbnRHZW5lcmljVGFibGVGdWxsDQorUnRsSW5zZXJ0RWxlbWVudEdlbmVyaWNUYWJsZUZ1bGxBdmwNCitSdGxJbnQ2NFRvVW5pY29kZVN0cmluZw0KK1J0bEludGVnZXJUb0NoYXINCitSdGxJbnRlZ2VyVG9Vbmljb2RlU3RyaW5nDQorUnRsSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2U2NA0KK1J0bEludGVybG9ja2VkRmx1c2hTTGlzdA0KK1J0bEludGVybG9ja2VkUG9wRW50cnlTTGlzdA0KK1J0bEludGVybG9ja2VkUHVzaEVudHJ5U0xpc3QNCitSdGxJcHY0QWRkcmVzc1RvU3RyaW5nQQ0KK1J0bElwdjRBZGRyZXNzVG9TdHJpbmdFeEENCitSdGxJcHY0QWRkcmVzc1RvU3RyaW5nRXhXDQorUnRsSXB2NEFkZHJlc3NUb1N0cmluZ1cNCitSdGxJcHY0U3RyaW5nVG9BZGRyZXNzQQ0KK1J0bElwdjRTdHJpbmdUb0FkZHJlc3NFeEENCitSdGxJcHY0U3RyaW5nVG9BZGRyZXNzRXhXDQorUnRsSXB2NFN0cmluZ1RvQWRkcmVzc1cNCitSdGxJcHY2QWRkcmVzc1RvU3RyaW5nQQ0KK1J0bElwdjZBZGRyZXNzVG9TdHJpbmdFeEENCitSdGxJcHY2QWRkcmVzc1RvU3RyaW5nRXhXDQorUnRsSXB2NkFkZHJlc3NUb1N0cmluZ1cNCitSdGxJcHY2U3RyaW5nVG9BZGRyZXNzQQ0KK1J0bElwdjZTdHJpbmdUb0FkZHJlc3NFeEENCitSdGxJcHY2U3RyaW5nVG9BZGRyZXNzRXhXDQorUnRsSXB2NlN0cmluZ1RvQWRkcmVzc1cNCitSdGxJc0FjdGl2YXRpb25Db250ZXh0QWN0aXZlDQorUnRsSXNDcml0aWNhbFNlY3Rpb25Mb2NrZWQNCitSdGxJc0NyaXRpY2FsU2VjdGlvbkxvY2tlZEJ5VGhyZWFkDQorUnRsSXNEb3NEZXZpY2VOYW1lX1UNCitSdGxJc0dlbmVyaWNUYWJsZUVtcHR5DQorUnRsSXNHZW5lcmljVGFibGVFbXB0eUF2bA0KK1J0bElzTmFtZUxlZ2FsRE9TOERvdDMNCitSdGxJc1RleHRVbmljb2RlDQorUnRsSXNUaHJlYWRXaXRoaW5Mb2FkZXJDYWxsb3V0DQorUnRsSXNWYWxpZEhhbmRsZQ0KK1J0bElzVmFsaWRJbmRleEhhbmRsZQ0KK1J0bExhcmdlSW50ZWdlckFkZA0KK1J0bExhcmdlSW50ZWdlckFyaXRobWV0aWNTaGlmdA0KK1J0bExhcmdlSW50ZWdlckRpdmlkZQ0KK1J0bExhcmdlSW50ZWdlck5lZ2F0ZQ0KK1J0bExhcmdlSW50ZWdlclNoaWZ0TGVmdA0KK1J0bExhcmdlSW50ZWdlclNoaWZ0UmlnaHQNCitSdGxMYXJnZUludGVnZXJTdWJ0cmFjdA0KK1J0bExhcmdlSW50ZWdlclRvQ2hhcg0KK1J0bExlYXZlQ3JpdGljYWxTZWN0aW9uDQorUnRsTGVuZ3RoUmVxdWlyZWRTaWQNCitSdGxMZW5ndGhTZWN1cml0eURlc2NyaXB0b3INCitSdGxMZW5ndGhTaWQNCitSdGxMb2NhbFRpbWVUb1N5c3RlbVRpbWUNCitSdGxMb2NrQm9vdFN0YXR1c0RhdGENCitSdGxMb2NrSGVhcA0KK1J0bExvZ1N0YWNrQmFja1RyYWNlDQorUnRsTG9va3VwQXRvbUluQXRvbVRhYmxlDQorUnRsTG9va3VwRWxlbWVudEdlbmVyaWNUYWJsZQ0KK1J0bExvb2t1cEVsZW1lbnRHZW5lcmljVGFibGVBdmwNCitSdGxMb29rdXBFbGVtZW50R2VuZXJpY1RhYmxlRnVsbA0KK1J0bExvb2t1cEVsZW1lbnRHZW5lcmljVGFibGVGdWxsQXZsDQorUnRsTWFrZVNlbGZSZWxhdGl2ZVNEDQorUnRsTWFwR2VuZXJpY01hc2sNCitSdGxNYXBTZWN1cml0eUVycm9yVG9OdFN0YXR1cw0KK1J0bE1vdmVNZW1vcnkNCitSdGxNdWx0aUFwcGVuZFVuaWNvZGVTdHJpbmdCdWZmZXINCitSdGxNdWx0aUJ5dGVUb1VuaWNvZGVODQorUnRsTXVsdGlCeXRlVG9Vbmljb2RlU2l6ZQ0KK1J0bE11bHRpcGxlQWxsb2NhdGVIZWFwDQorUnRsTXVsdGlwbGVGcmVlSGVhcA0KK1J0bE5ld0luc3RhbmNlU2VjdXJpdHlPYmplY3QNCitSdGxOZXdTZWN1cml0eUdyYW50ZWRBY2Nlc3MNCitSdGxOZXdTZWN1cml0eU9iamVjdA0KK1J0bE5ld1NlY3VyaXR5T2JqZWN0RXgNCitSdGxOZXdTZWN1cml0eU9iamVjdFdpdGhNdWx0aXBsZUluaGVyaXRhbmNlDQorUnRsTm9ybWFsaXplUHJvY2Vzc1BhcmFtcw0KK1J0bE50UGF0aE5hbWVUb0Rvc1BhdGhOYW1lDQorUnRsTnRTdGF0dXNUb0Rvc0Vycm9yDQorUnRsTnRTdGF0dXNUb0Rvc0Vycm9yTm9UZWINCitSdGxOdW1iZXJHZW5lcmljVGFibGVFbGVtZW50cw0KK1J0bE51bWJlckdlbmVyaWNUYWJsZUVsZW1lbnRzQXZsDQorUnRsTnVtYmVyT2ZDbGVhckJpdHMNCitSdGxOdW1iZXJPZlNldEJpdHMNCitSdGxPZW1TdHJpbmdUb1VuaWNvZGVTaXplDQorUnRsT2VtU3RyaW5nVG9Vbmljb2RlU3RyaW5nDQorUnRsT2VtVG9Vbmljb2RlTg0KK1J0bE9wZW5DdXJyZW50VXNlcg0KK1J0bFBjVG9GaWxlSGVhZGVyDQorUnRsUGluQXRvbUluQXRvbVRhYmxlDQorUnRsUG9wRnJhbWUNCitSdGxQcmVmaXhTdHJpbmcNCitSdGxQcmVmaXhVbmljb2RlU3RyaW5nDQorUnRsUHJvdGVjdEhlYXANCitSdGxQdXNoRnJhbWUNCitSdGxRdWVyeUF0b21JbkF0b21UYWJsZQ0KK1J0bFF1ZXJ5RGVwdGhTTGlzdA0KK1J0bFF1ZXJ5RW52aXJvbm1lbnRWYXJpYWJsZV9VDQorUnRsUXVlcnlIZWFwSW5mb3JtYXRpb24NCitSdGxRdWVyeUluZm9ybWF0aW9uQWNsDQorUnRsUXVlcnlJbmZvcm1hdGlvbkFjdGl2YXRpb25Db250ZXh0DQorUnRsUXVlcnlJbmZvcm1hdGlvbkFjdGl2ZUFjdGl2YXRpb25Db250ZXh0DQorUnRsUXVlcnlQcm9jZXNzQmFja1RyYWNlSW5mb3JtYXRpb24NCitSdGxRdWVyeVByb2Nlc3NEZWJ1Z0luZm9ybWF0aW9uDQorUnRsUXVlcnlQcm9jZXNzSGVhcEluZm9ybWF0aW9uDQorUnRsUXVlcnlQcm9jZXNzTG9ja0luZm9ybWF0aW9uDQorUnRsUXVlcnlSZWdpc3RyeVZhbHVlcw0KK1J0bFF1ZXJ5U2VjdXJpdHlPYmplY3QNCitSdGxRdWVyeVRhZ0hlYXANCitSdGxRdWVyeVRpbWVab25lSW5mb3JtYXRpb24NCitSdGxRdWV1ZUFwY1dvdzY0VGhyZWFkDQorUnRsUXVldWVXb3JrSXRlbQ0KK1J0bFJhaXNlRXhjZXB0aW9uDQorUnRsUmFpc2VTdGF0dXMNCitSdGxSYW5kb20NCitSdGxSYW5kb21FeA0KK1J0bFJlQWxsb2NhdGVIZWFwDQorUnRsUmVhbFByZWRlY2Vzc29yDQorUnRsUmVhbFN1Y2Nlc3Nvcg0KK1J0bFJlZ2lzdGVyU2VjdXJlTWVtb3J5Q2FjaGVDYWxsYmFjaw0KK1J0bFJlZ2lzdGVyV2FpdA0KK1J0bFJlbGVhc2VBY3RpdmF0aW9uQ29udGV4dA0KK1J0bFJlbGVhc2VQZWJMb2NrDQorUnRsUmVsZWFzZVByaXZpbGVnZQ0KK1J0bFJlbGVhc2VSZWxhdGl2ZU5hbWUNCitSdGxSZWxlYXNlUmVzb3VyY2UNCitSdGxSZW1vdGVDYWxsDQorUnRsUmVtb3ZlVmVjdG9yZWRDb250aW51ZUhhbmRsZXINCitSdGxSZW1vdmVWZWN0b3JlZEV4Y2VwdGlvbkhhbmRsZXINCitSdGxSZXNldFJ0bFRyYW5zbGF0aW9ucw0KK1J0bFJlc3RvcmVMYXN0V2luMzJFcnJvcg0KK1J0bFJ1bkRlY29kZVVuaWNvZGVTdHJpbmcNCitSdGxSdW5FbmNvZGVVbmljb2RlU3RyaW5nDQorUnRsU2Vjb25kc1NpbmNlMTk3MFRvVGltZQ0KK1J0bFNlY29uZHNTaW5jZTE5ODBUb1RpbWUNCitSdGxTZWxmUmVsYXRpdmVUb0Fic29sdXRlU0QyDQorUnRsU2VsZlJlbGF0aXZlVG9BYnNvbHV0ZVNEDQorUnRsU2V0QWxsQml0cw0KK1J0bFNldEF0dHJpYnV0ZXNTZWN1cml0eURlc2NyaXB0b3INCitSdGxTZXRCaXRzDQorUnRsU2V0Q29udHJvbFNlY3VyaXR5RGVzY3JpcHRvcg0KK1J0bFNldENyaXRpY2FsU2VjdGlvblNwaW5Db3VudA0KK1J0bFNldEN1cnJlbnREaXJlY3RvcnlfVQ0KK1J0bFNldEN1cnJlbnRFbnZpcm9ubWVudA0KK1J0bFNldERhY2xTZWN1cml0eURlc2NyaXB0b3INCitSdGxTZXRFbnZpcm9ubWVudFN0cmluZ3MNCitSdGxTZXRFbnZpcm9ubWVudFZhcmlhYmxlDQorUnRsU2V0R3JvdXBTZWN1cml0eURlc2NyaXB0b3INCitSdGxTZXRIZWFwSW5mb3JtYXRpb24NCitSdGxTZXRJbmZvcm1hdGlvbkFjbA0KK1J0bFNldElvQ29tcGxldGlvbkNhbGxiYWNrDQorUnRsU2V0TGFzdFdpbjMyRXJyb3INCitSdGxTZXRMYXN0V2luMzJFcnJvckFuZE50U3RhdHVzRnJvbU50U3RhdHVzDQorUnRsU2V0T3duZXJTZWN1cml0eURlc2NyaXB0b3INCitSdGxTZXRQcm9jZXNzSXNDcml0aWNhbA0KK1J0bFNldFNhY2xTZWN1cml0eURlc2NyaXB0b3INCitSdGxTZXRTZWN1cml0eURlc2NyaXB0b3JSTUNvbnRyb2wNCitSdGxTZXRTZWN1cml0eU9iamVjdA0KK1J0bFNldFNlY3VyaXR5T2JqZWN0RXgNCitSdGxTZXRUaHJlYWRFcnJvck1vZGUNCitSdGxTZXRUaHJlYWRJc0NyaXRpY2FsDQorUnRsU2V0VGhyZWFkUG9vbFN0YXJ0RnVuYw0KK1J0bFNldFRpbWVab25lSW5mb3JtYXRpb24NCitSdGxTZXRUaW1lcg0KK1J0bFNldFVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcg0KK1J0bFNldFVuaWNvZGVDYWxsb3V0cw0KK1J0bFNldFVzZXJGbGFnc0hlYXANCitSdGxTZXRVc2VyVmFsdWVIZWFwDQorUnRsU2l6ZUhlYXANCitSdGxTcGxheQ0KK1J0bFN0YXJ0UlhhY3QNCitSdGxTdHJpbmdGcm9tR1VJRA0KK1J0bFN1YkF1dGhvcml0eUNvdW50U2lkDQorUnRsU3ViQXV0aG9yaXR5U2lkDQorUnRsU3VidHJlZVByZWRlY2Vzc29yDQorUnRsU3VidHJlZVN1Y2Nlc3Nvcg0KK1J0bFN5c3RlbVRpbWVUb0xvY2FsVGltZQ0KK1J0bFRpbWVGaWVsZHNUb1RpbWUNCitSdGxUaW1lVG9FbGFwc2VkVGltZUZpZWxkcw0KK1J0bFRpbWVUb1NlY29uZHNTaW5jZTE5NzANCitSdGxUaW1lVG9TZWNvbmRzU2luY2UxOTgwDQorUnRsVGltZVRvVGltZUZpZWxkcw0KK1J0bFRyYWNlRGF0YWJhc2VBZGQNCitSdGxUcmFjZURhdGFiYXNlQ3JlYXRlDQorUnRsVHJhY2VEYXRhYmFzZURlc3Ryb3kNCitSdGxUcmFjZURhdGFiYXNlRW51bWVyYXRlDQorUnRsVHJhY2VEYXRhYmFzZUZpbmQNCitSdGxUcmFjZURhdGFiYXNlTG9jaw0KK1J0bFRyYWNlRGF0YWJhc2VVbmxvY2sNCitSdGxUcmFjZURhdGFiYXNlVmFsaWRhdGUNCitSdGxUcnlFbnRlckNyaXRpY2FsU2VjdGlvbg0KK1J0bFVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcjINCitSdGxVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXINCitSdGxVbmljb2RlU3RyaW5nVG9BbnNpU2l6ZQ0KK1J0bFVuaWNvZGVTdHJpbmdUb0Fuc2lTdHJpbmcNCitSdGxVbmljb2RlU3RyaW5nVG9Db3VudGVkT2VtU3RyaW5nDQorUnRsVW5pY29kZVN0cmluZ1RvSW50ZWdlcg0KK1J0bFVuaWNvZGVTdHJpbmdUb09lbVNpemUNCitSdGxVbmljb2RlU3RyaW5nVG9PZW1TdHJpbmcNCitSdGxVbmljb2RlVG9DdXN0b21DUE4NCitSdGxVbmljb2RlVG9NdWx0aUJ5dGVODQorUnRsVW5pY29kZVRvTXVsdGlCeXRlU2l6ZQ0KK1J0bFVuaWNvZGVUb09lbU4NCitSdGxVbmlmb3JtDQorUnRsVW5sb2NrQm9vdFN0YXR1c0RhdGENCitSdGxVbmxvY2tIZWFwDQorUnRsVW53aW5kDQorUnRsVXBjYXNlVW5pY29kZUNoYXINCitSdGxVcGNhc2VVbmljb2RlU3RyaW5nDQorUnRsVXBjYXNlVW5pY29kZVN0cmluZ1RvQW5zaVN0cmluZw0KK1J0bFVwY2FzZVVuaWNvZGVTdHJpbmdUb0NvdW50ZWRPZW1TdHJpbmcNCitSdGxVcGNhc2VVbmljb2RlU3RyaW5nVG9PZW1TdHJpbmcNCitSdGxVcGNhc2VVbmljb2RlVG9DdXN0b21DUE4NCitSdGxVcGNhc2VVbmljb2RlVG9NdWx0aUJ5dGVODQorUnRsVXBjYXNlVW5pY29kZVRvT2VtTg0KK1J0bFVwZGF0ZVRpbWVyDQorUnRsVXBwZXJDaGFyDQorUnRsVXBwZXJTdHJpbmcNCitSdGxVc2FnZUhlYXANCitSdGxWYWxpZEFjbA0KK1J0bFZhbGlkUmVsYXRpdmVTZWN1cml0eURlc2NyaXB0b3INCitSdGxWYWxpZFNlY3VyaXR5RGVzY3JpcHRvcg0KK1J0bFZhbGlkU2lkDQorUnRsVmFsaWRhdGVIZWFwDQorUnRsVmFsaWRhdGVQcm9jZXNzSGVhcHMNCitSdGxWYWxpZGF0ZVVuaWNvZGVTdHJpbmcNCitSdGxWZXJpZnlWZXJzaW9uSW5mbw0KK1J0bFdhbGtGcmFtZUNoYWluDQorUnRsV2Fsa0hlYXANCitSdGxXb3c2NEVuYWJsZUZzUmVkaXJlY3Rpb24NCitSdGxXb3c2NEVuYWJsZUZzUmVkaXJlY3Rpb25FeA0KK1J0bFdyaXRlUmVnaXN0cnlWYWx1ZQ0KK1J0bFplcm9IZWFwDQorUnRsWmVyb01lbW9yeQ0KK1J0bFpvbWJpZnlBY3RpdmF0aW9uQ29udGV4dA0KK1J0bHBBcHBseUxlbmd0aEZ1bmN0aW9uDQorUnRscEVuc3VyZUJ1ZmZlclNpemUNCitSdGxwTm90T3duZXJDcml0aWNhbFNlY3Rpb24NCitSdGxwTnRDcmVhdGVLZXkNCitSdGxwTnRFbnVtZXJhdGVTdWJLZXkNCitSdGxwTnRNYWtlVGVtcG9yYXJ5S2V5DQorUnRscE50T3BlbktleQ0KK1J0bHBOdFF1ZXJ5VmFsdWVLZXkNCitSdGxwTnRTZXRWYWx1ZUtleQ0KK1J0bHBVbldhaXRDcml0aWNhbFNlY3Rpb24NCitSdGxwV2FpdEZvckNyaXRpY2FsU2VjdGlvbg0KK1J0bHhBbnNpU3RyaW5nVG9Vbmljb2RlU2l6ZQ0KK1J0bHhPZW1TdHJpbmdUb1VuaWNvZGVTaXplDQorUnRseFVuaWNvZGVTdHJpbmdUb0Fuc2lTaXplDQorUnRseFVuaWNvZGVTdHJpbmdUb09lbVNpemUNCitWZXJTZXRDb25kaXRpb25NYXNrDQorWndBY2NlcHRDb25uZWN0UG9ydA0KK1p3QWNjZXNzQ2hlY2sNCitad0FjY2Vzc0NoZWNrQW5kQXVkaXRBbGFybQ0KK1p3QWNjZXNzQ2hlY2tCeVR5cGUNCitad0FjY2Vzc0NoZWNrQnlUeXBlQW5kQXVkaXRBbGFybQ0KK1p3QWNjZXNzQ2hlY2tCeVR5cGVSZXN1bHRMaXN0DQorWndBY2Nlc3NDaGVja0J5VHlwZVJlc3VsdExpc3RBbmRBdWRpdEFsYXJtDQorWndBY2Nlc3NDaGVja0J5VHlwZVJlc3VsdExpc3RBbmRBdWRpdEFsYXJtQnlIYW5kbGUNCitad0FkZEF0b20NCitad0FkZEJvb3RFbnRyeQ0KK1p3QWRkRHJpdmVyRW50cnkNCitad0FkanVzdEdyb3Vwc1Rva2VuDQorWndBZGp1c3RQcml2aWxlZ2VzVG9rZW4NCitad0FsZXJ0UmVzdW1lVGhyZWFkDQorWndBbGVydFRocmVhZA0KK1p3QWxsb2NhdGVMb2NhbGx5VW5pcXVlSWQNCitad0FsbG9jYXRlVXNlclBoeXNpY2FsUGFnZXMNCitad0FsbG9jYXRlVXVpZHMNCitad0FsbG9jYXRlVmlydHVhbE1lbW9yeQ0KK1p3QXBwaGVscENhY2hlQ29udHJvbA0KK1p3QXJlTWFwcGVkRmlsZXNUaGVTYW1lDQorWndBc3NpZ25Qcm9jZXNzVG9Kb2JPYmplY3QNCitad0NhbGxiYWNrUmV0dXJuDQorWndDYW5jZWxEZXZpY2VXYWtldXBSZXF1ZXN0DQorWndDYW5jZWxJb0ZpbGUNCitad0NhbmNlbFRpbWVyDQorWndDbGVhckV2ZW50DQorWndDbG9zZQ0KK1p3Q2xvc2VPYmplY3RBdWRpdEFsYXJtDQorWndDb21wYWN0S2V5cw0KK1p3Q29tcGFyZVRva2Vucw0KK1p3Q29tcGxldGVDb25uZWN0UG9ydA0KK1p3Q29tcHJlc3NLZXkNCitad0Nvbm5lY3RQb3J0DQorWndDb250aW51ZQ0KK1p3Q3JlYXRlRGVidWdPYmplY3QNCitad0NyZWF0ZURpcmVjdG9yeU9iamVjdA0KK1p3Q3JlYXRlRXZlbnQNCitad0NyZWF0ZUV2ZW50UGFpcg0KK1p3Q3JlYXRlRmlsZQ0KK1p3Q3JlYXRlSW9Db21wbGV0aW9uDQorWndDcmVhdGVKb2JPYmplY3QNCitad0NyZWF0ZUpvYlNldA0KK1p3Q3JlYXRlS2V5DQorWndDcmVhdGVLZXllZEV2ZW50DQorWndDcmVhdGVNYWlsc2xvdEZpbGUNCitad0NyZWF0ZU11dGFudA0KK1p3Q3JlYXRlTmFtZWRQaXBlRmlsZQ0KK1p3Q3JlYXRlUGFnaW5nRmlsZQ0KK1p3Q3JlYXRlUG9ydA0KK1p3Q3JlYXRlUHJvY2Vzcw0KK1p3Q3JlYXRlUHJvY2Vzc0V4DQorWndDcmVhdGVQcm9maWxlDQorWndDcmVhdGVTZWN0aW9uDQorWndDcmVhdGVTZW1hcGhvcmUNCitad0NyZWF0ZVN5bWJvbGljTGlua09iamVjdA0KK1p3Q3JlYXRlVGhyZWFkDQorWndDcmVhdGVUaW1lcg0KK1p3Q3JlYXRlVG9rZW4NCitad0NyZWF0ZVdhaXRhYmxlUG9ydA0KK1p3RGVidWdBY3RpdmVQcm9jZXNzDQorWndEZWJ1Z0NvbnRpbnVlDQorWndEZWxheUV4ZWN1dGlvbg0KK1p3RGVsZXRlQXRvbQ0KK1p3RGVsZXRlQm9vdEVudHJ5DQorWndEZWxldGVEcml2ZXJFbnRyeQ0KK1p3RGVsZXRlRmlsZQ0KK1p3RGVsZXRlS2V5DQorWndEZWxldGVPYmplY3RBdWRpdEFsYXJtDQorWndEZWxldGVWYWx1ZUtleQ0KK1p3RGV2aWNlSW9Db250cm9sRmlsZQ0KK1p3RGlzcGxheVN0cmluZw0KK1p3RHVwbGljYXRlT2JqZWN0DQorWndEdXBsaWNhdGVUb2tlbg0KK1p3RW51bWVyYXRlQm9vdEVudHJpZXMNCitad0VudW1lcmF0ZURyaXZlckVudHJpZXMNCitad0VudW1lcmF0ZUtleQ0KK1p3RW51bWVyYXRlU3lzdGVtRW52aXJvbm1lbnRWYWx1ZXNFeA0KK1p3RW51bWVyYXRlVmFsdWVLZXkNCitad0V4dGVuZFNlY3Rpb24NCitad0ZpbHRlclRva2VuDQorWndGaW5kQXRvbQ0KK1p3Rmx1c2hCdWZmZXJzRmlsZQ0KK1p3Rmx1c2hJbnN0cnVjdGlvbkNhY2hlDQorWndGbHVzaEtleQ0KK1p3Rmx1c2hWaXJ0dWFsTWVtb3J5DQorWndGbHVzaFdyaXRlQnVmZmVyDQorWndGcmVlVXNlclBoeXNpY2FsUGFnZXMNCitad0ZyZWVWaXJ0dWFsTWVtb3J5DQorWndGc0NvbnRyb2xGaWxlDQorWndHZXRDb250ZXh0VGhyZWFkDQorWndHZXRDdXJyZW50UHJvY2Vzc29yTnVtYmVyDQorWndHZXREZXZpY2VQb3dlclN0YXRlDQorWndHZXRQbHVnUGxheUV2ZW50DQorWndHZXRXcml0ZVdhdGNoDQorWndJbXBlcnNvbmF0ZUFub255bW91c1Rva2VuDQorWndJbXBlcnNvbmF0ZUNsaWVudE9mUG9ydA0KK1p3SW1wZXJzb25hdGVUaHJlYWQNCitad0luaXRpYWxpemVSZWdpc3RyeQ0KK1p3SW5pdGlhdGVQb3dlckFjdGlvbg0KK1p3SXNQcm9jZXNzSW5Kb2INCitad0lzU3lzdGVtUmVzdW1lQXV0b21hdGljDQorWndMaXN0ZW5Qb3J0DQorWndMb2FkRHJpdmVyDQorWndMb2FkS2V5Mg0KK1p3TG9hZEtleQ0KK1p3TG9hZEtleUV4DQorWndMb2NrRmlsZQ0KK1p3TG9ja1Byb2R1Y3RBY3RpdmF0aW9uS2V5cw0KK1p3TG9ja1JlZ2lzdHJ5S2V5DQorWndMb2NrVmlydHVhbE1lbW9yeQ0KK1p3TWFrZVBlcm1hbmVudE9iamVjdA0KK1p3TWFrZVRlbXBvcmFyeU9iamVjdA0KK1p3TWFwVXNlclBoeXNpY2FsUGFnZXMNCitad01hcFVzZXJQaHlzaWNhbFBhZ2VzU2NhdHRlcg0KK1p3TWFwVmlld09mU2VjdGlvbg0KK1p3TW9kaWZ5Qm9vdEVudHJ5DQorWndNb2RpZnlEcml2ZXJFbnRyeQ0KK1p3Tm90aWZ5Q2hhbmdlRGlyZWN0b3J5RmlsZQ0KK1p3Tm90aWZ5Q2hhbmdlS2V5DQorWndOb3RpZnlDaGFuZ2VNdWx0aXBsZUtleXMNCitad09wZW5EaXJlY3RvcnlPYmplY3QNCitad09wZW5FdmVudA0KK1p3T3BlbkV2ZW50UGFpcg0KK1p3T3BlbkZpbGUNCitad09wZW5Jb0NvbXBsZXRpb24NCitad09wZW5Kb2JPYmplY3QNCitad09wZW5LZXkNCitad09wZW5LZXllZEV2ZW50DQorWndPcGVuTXV0YW50DQorWndPcGVuT2JqZWN0QXVkaXRBbGFybQ0KK1p3T3BlblByb2Nlc3MNCitad09wZW5Qcm9jZXNzVG9rZW4NCitad09wZW5Qcm9jZXNzVG9rZW5FeA0KK1p3T3BlblNlY3Rpb24NCitad09wZW5TZW1hcGhvcmUNCitad09wZW5TeW1ib2xpY0xpbmtPYmplY3QNCitad09wZW5UaHJlYWQNCitad09wZW5UaHJlYWRUb2tlbg0KK1p3T3BlblRocmVhZFRva2VuRXgNCitad09wZW5UaW1lcg0KK1p3UGx1Z1BsYXlDb250cm9sDQorWndQb3dlckluZm9ybWF0aW9uDQorWndQcml2aWxlZ2VDaGVjaw0KK1p3UHJpdmlsZWdlT2JqZWN0QXVkaXRBbGFybQ0KK1p3UHJpdmlsZWdlZFNlcnZpY2VBdWRpdEFsYXJtDQorWndQcm90ZWN0VmlydHVhbE1lbW9yeQ0KK1p3UHVsc2VFdmVudA0KK1p3UXVlcnlBdHRyaWJ1dGVzRmlsZQ0KK1p3UXVlcnlCb290RW50cnlPcmRlcg0KK1p3UXVlcnlCb290T3B0aW9ucw0KK1p3UXVlcnlEZWJ1Z0ZpbHRlclN0YXRlDQorWndRdWVyeURlZmF1bHRMb2NhbGUNCitad1F1ZXJ5RGVmYXVsdFVJTGFuZ3VhZ2UNCitad1F1ZXJ5RGlyZWN0b3J5RmlsZQ0KK1p3UXVlcnlEaXJlY3RvcnlPYmplY3QNCitad1F1ZXJ5RHJpdmVyRW50cnlPcmRlcg0KK1p3UXVlcnlFYUZpbGUNCitad1F1ZXJ5RXZlbnQNCitad1F1ZXJ5RnVsbEF0dHJpYnV0ZXNGaWxlDQorWndRdWVyeUluZm9ybWF0aW9uQXRvbQ0KK1p3UXVlcnlJbmZvcm1hdGlvbkZpbGUNCitad1F1ZXJ5SW5mb3JtYXRpb25Kb2JPYmplY3QNCitad1F1ZXJ5SW5mb3JtYXRpb25Qb3J0DQorWndRdWVyeUluZm9ybWF0aW9uUHJvY2Vzcw0KK1p3UXVlcnlJbmZvcm1hdGlvblRocmVhZA0KK1p3UXVlcnlJbmZvcm1hdGlvblRva2VuDQorWndRdWVyeUluc3RhbGxVSUxhbmd1YWdlDQorWndRdWVyeUludGVydmFsUHJvZmlsZQ0KK1p3UXVlcnlJb0NvbXBsZXRpb24NCitad1F1ZXJ5S2V5DQorWndRdWVyeU11bHRpcGxlVmFsdWVLZXkNCitad1F1ZXJ5TXV0YW50DQorWndRdWVyeU9iamVjdA0KK1p3UXVlcnlPcGVuU3ViS2V5cw0KK1p3UXVlcnlPcGVuU3ViS2V5c0V4DQorWndRdWVyeVBlcmZvcm1hbmNlQ291bnRlcg0KK1p3UXVlcnlQb3J0SW5mb3JtYXRpb25Qcm9jZXNzDQorWndRdWVyeVF1b3RhSW5mb3JtYXRpb25GaWxlDQorWndRdWVyeVNlY3Rpb24NCitad1F1ZXJ5U2VjdXJpdHlPYmplY3QNCitad1F1ZXJ5U2VtYXBob3JlDQorWndRdWVyeVN5bWJvbGljTGlua09iamVjdA0KK1p3UXVlcnlTeXN0ZW1FbnZpcm9ubWVudFZhbHVlDQorWndRdWVyeVN5c3RlbUVudmlyb25tZW50VmFsdWVFeA0KK1p3UXVlcnlTeXN0ZW1JbmZvcm1hdGlvbg0KK1p3UXVlcnlTeXN0ZW1UaW1lDQorWndRdWVyeVRpbWVyDQorWndRdWVyeVRpbWVyUmVzb2x1dGlvbg0KK1p3UXVlcnlWYWx1ZUtleQ0KK1p3UXVlcnlWaXJ0dWFsTWVtb3J5DQorWndRdWVyeVZvbHVtZUluZm9ybWF0aW9uRmlsZQ0KK1p3UXVldWVBcGNUaHJlYWQNCitad1JhaXNlRXhjZXB0aW9uDQorWndSYWlzZUhhcmRFcnJvcg0KK1p3UmVhZEZpbGUNCitad1JlYWRGaWxlU2NhdHRlcg0KK1p3UmVhZFJlcXVlc3REYXRhDQorWndSZWFkVmlydHVhbE1lbW9yeQ0KK1p3UmVnaXN0ZXJUaHJlYWRUZXJtaW5hdGVQb3J0DQorWndSZWxlYXNlS2V5ZWRFdmVudA0KK1p3UmVsZWFzZU11dGFudA0KK1p3UmVsZWFzZVNlbWFwaG9yZQ0KK1p3UmVtb3ZlSW9Db21wbGV0aW9uDQorWndSZW1vdmVQcm9jZXNzRGVidWcNCitad1JlbmFtZUtleQ0KK1p3UmVwbGFjZUtleQ0KK1p3UmVwbHlQb3J0DQorWndSZXBseVdhaXRSZWNlaXZlUG9ydA0KK1p3UmVwbHlXYWl0UmVjZWl2ZVBvcnRFeA0KK1p3UmVwbHlXYWl0UmVwbHlQb3J0DQorWndSZXF1ZXN0RGV2aWNlV2FrZXVwDQorWndSZXF1ZXN0UG9ydA0KK1p3UmVxdWVzdFdhaXRSZXBseVBvcnQNCitad1JlcXVlc3RXYWtldXBMYXRlbmN5DQorWndSZXNldEV2ZW50DQorWndSZXNldFdyaXRlV2F0Y2gNCitad1Jlc3RvcmVLZXkNCitad1Jlc3VtZVByb2Nlc3MNCitad1Jlc3VtZVRocmVhZA0KK1p3U2F2ZUtleQ0KK1p3U2F2ZUtleUV4DQorWndTYXZlTWVyZ2VkS2V5cw0KK1p3U2VjdXJlQ29ubmVjdFBvcnQNCitad1NldEJvb3RFbnRyeU9yZGVyDQorWndTZXRCb290T3B0aW9ucw0KK1p3U2V0Q29udGV4dFRocmVhZA0KK1p3U2V0RGVidWdGaWx0ZXJTdGF0ZQ0KK1p3U2V0RGVmYXVsdEhhcmRFcnJvclBvcnQNCitad1NldERlZmF1bHRMb2NhbGUNCitad1NldERlZmF1bHRVSUxhbmd1YWdlDQorWndTZXREcml2ZXJFbnRyeU9yZGVyDQorWndTZXRFYUZpbGUNCitad1NldEV2ZW50DQorWndTZXRFdmVudEJvb3N0UHJpb3JpdHkNCitad1NldEhpZ2hFdmVudFBhaXINCitad1NldEhpZ2hXYWl0TG93RXZlbnRQYWlyDQorWndTZXRJbmZvcm1hdGlvbkRlYnVnT2JqZWN0DQorWndTZXRJbmZvcm1hdGlvbkZpbGUNCitad1NldEluZm9ybWF0aW9uSm9iT2JqZWN0DQorWndTZXRJbmZvcm1hdGlvbktleQ0KK1p3U2V0SW5mb3JtYXRpb25PYmplY3QNCitad1NldEluZm9ybWF0aW9uUHJvY2Vzcw0KK1p3U2V0SW5mb3JtYXRpb25UaHJlYWQNCitad1NldEluZm9ybWF0aW9uVG9rZW4NCitad1NldEludGVydmFsUHJvZmlsZQ0KK1p3U2V0SW9Db21wbGV0aW9uDQorWndTZXRMZHRFbnRyaWVzDQorWndTZXRMb3dFdmVudFBhaXINCitad1NldExvd1dhaXRIaWdoRXZlbnRQYWlyDQorWndTZXRRdW90YUluZm9ybWF0aW9uRmlsZQ0KK1p3U2V0U2VjdXJpdHlPYmplY3QNCitad1NldFN5c3RlbUVudmlyb25tZW50VmFsdWUNCitad1NldFN5c3RlbUVudmlyb25tZW50VmFsdWVFeA0KK1p3U2V0U3lzdGVtSW5mb3JtYXRpb24NCitad1NldFN5c3RlbVBvd2VyU3RhdGUNCitad1NldFN5c3RlbVRpbWUNCitad1NldFRocmVhZEV4ZWN1dGlvblN0YXRlDQorWndTZXRUaW1lcg0KK1p3U2V0VGltZXJSZXNvbHV0aW9uDQorWndTZXRVdWlkU2VlZA0KK1p3U2V0VmFsdWVLZXkNCitad1NldFZvbHVtZUluZm9ybWF0aW9uRmlsZQ0KK1p3U2h1dGRvd25TeXN0ZW0NCitad1NpZ25hbEFuZFdhaXRGb3JTaW5nbGVPYmplY3QNCitad1N0YXJ0UHJvZmlsZQ0KK1p3U3RvcFByb2ZpbGUNCitad1N1c3BlbmRQcm9jZXNzDQorWndTdXNwZW5kVGhyZWFkDQorWndTeXN0ZW1EZWJ1Z0NvbnRyb2wNCitad1Rlcm1pbmF0ZUpvYk9iamVjdA0KK1p3VGVybWluYXRlUHJvY2Vzcw0KK1p3VGVybWluYXRlVGhyZWFkDQorWndUZXN0QWxlcnQNCitad1RyYWNlRXZlbnQNCitad1RyYW5zbGF0ZUZpbGVQYXRoDQorWndVbmxvYWREcml2ZXINCitad1VubG9hZEtleTINCitad1VubG9hZEtleQ0KK1p3VW5sb2FkS2V5RXgNCitad1VubG9ja0ZpbGUNCitad1VubG9ja1ZpcnR1YWxNZW1vcnkNCitad1VubWFwVmlld09mU2VjdGlvbg0KK1p3VmRtQ29udHJvbA0KK1p3V2FpdEZvckRlYnVnRXZlbnQNCitad1dhaXRGb3JLZXllZEV2ZW50DQorWndXYWl0Rm9yTXVsdGlwbGVPYmplY3RzMzINCitad1dhaXRGb3JNdWx0aXBsZU9iamVjdHMNCitad1dhaXRGb3JTaW5nbGVPYmplY3QNCitad1dhaXRIaWdoRXZlbnRQYWlyDQorWndXYWl0TG93RXZlbnRQYWlyDQorWndXb3c2NENzckFsbG9jYXRlQ2FwdHVyZUJ1ZmZlcg0KK1p3V293NjRDc3JBbGxvY2F0ZU1lc3NhZ2VQb2ludGVyDQorWndXb3c2NENzckNhcHR1cmVNZXNzYWdlQnVmZmVyDQorWndXb3c2NENzckNhcHR1cmVNZXNzYWdlU3RyaW5nDQorWndXb3c2NENzckNsaWVudENhbGxTZXJ2ZXINCitad1dvdzY0Q3NyQ2xpZW50Q29ubmVjdFRvU2VydmVyDQorWndXb3c2NENzckZyZWVDYXB0dXJlQnVmZmVyDQorWndXb3c2NENzckdldFByb2Nlc3NJZA0KK1p3V293NjRDc3JJZGVudGlmeUFsZXJ0YWJsZVRocmVhZA0KK1p3V293NjRDc3JOZXdUaHJlYWQNCitad1dvdzY0Q3NyU2V0UHJpb3JpdHlDbGFzcw0KK1p3V293NjREZWJ1Z2dlckNhbGwNCitad1dvdzY0R2V0TmF0aXZlU3lzdGVtSW5mb3JtYXRpb24NCitad1dvdzY0UXVlcnlJbmZvcm1hdGlvblByb2Nlc3M2NA0KK1p3V293NjRRdWVyeVZpcnR1YWxNZW1vcnk2NA0KK1p3V293NjRSZWFkVmlydHVhbE1lbW9yeTY0DQorWndXcml0ZUZpbGUNCitad1dyaXRlRmlsZUdhdGhlcg0KK1p3V3JpdGVSZXF1ZXN0RGF0YQ0KK1p3V3JpdGVWaXJ0dWFsTWVtb3J5DQorWndZaWVsZEV4ZWN1dGlvbg0KK19DSWNvcw0KK19DSWxvZw0KK19DSXBvdw0KK19DSXNpbg0KK19DSXNxcnQNCitfX2lzYXNjaWkNCitfX2lzY3N5bQ0KK19faXNjc3ltZg0KK19fdG9hc2NpaQ0KK19hbGxkaXYNCitfYWxsZHZybQ0KK19hbGxtdWwNCitfYWxsb2NhX3Byb2JlDQorX2FsbHJlbQ0KK19hbGxzaGwNCitfYWxsc2hyDQorX2F0b2k2NA0KK19hdWxsZGl2DQorX2F1bGxkdnJtDQorX2F1bGxyZW0NCitfYXVsbHNocg0KK19jaGtzdGsNCitfZmx0dXNlZCBEQVRBDQorX2Z0b2wNCitfaTY0dG9hDQorX2k2NHRvdw0KK19pdG9hDQorX2l0b3cNCitfbGZpbmQNCitfbHRvYQ0KK19sdG93DQorX21lbWNjcHkNCitfbWVtaWNtcA0KK19zbnByaW50Zg0KK19zbndwcmludGYNCitfc3BsaXRwYXRoDQorX3N0cmNtcGkNCitfc3RyaWNtcA0KK19zdHJsd3INCitfc3RybmljbXANCitfc3RydXByDQorX3RvbG93ZXINCitfdG91cHBlcg0KK191aTY0dG9hDQorX3VpNjR0b3cNCitfdWx0b2ENCitfdWx0b3cNCitfdnNjd3ByaW50Zg0KK192c25wcmludGYNCitfdnNud3ByaW50Zg0KK193Y3NpY21wDQorX3djc2x3cg0KK193Y3NuaWNtcA0KK193Y3N0b3VpNjQNCitfd2NzdXByDQorX3d0b2kNCitfd3RvaTY0DQorX3d0b2wNCithYnMNCithdGFuDQorYXRvaQ0KK2F0b2wNCitic2VhcmNoDQorY2VpbA0KK2Nvcw0KK2ZhYnMNCitmbG9vcg0KK2lzYWxudW0NCitpc2FscGhhDQoraXNjbnRybA0KK2lzZGlnaXQNCitpc2dyYXBoDQoraXNsb3dlcg0KK2lzcHJpbnQNCitpc3B1bmN0DQoraXNzcGFjZQ0KK2lzdXBwZXINCitpc3dhbHBoYQ0KK2lzd2N0eXBlDQoraXN3ZGlnaXQNCitpc3dsb3dlcg0KK2lzd3NwYWNlDQoraXN3eGRpZ2l0DQoraXN4ZGlnaXQNCitsYWJzDQorbG9nDQorbWJzdG93Y3MNCittZW1jaHINCittZW1jbXANCittZW1jcHkNCittZW1tb3ZlDQorbWVtc2V0DQorcG93DQorcXNvcnQNCitzaW4NCitzcHJpbnRmDQorc3FydA0KK3NzY2FuZg0KK3N0cmNhdA0KK3N0cmNocg0KK3N0cmNtcA0KK3N0cmNweQ0KK3N0cmNzcG4NCitzdHJsZW4NCitzdHJuY2F0DQorc3RybmNtcA0KK3N0cm5jcHkNCitzdHJwYnJrDQorc3RycmNocg0KK3N0cnNwbg0KK3N0cnN0cg0KK3N0cnRvbA0KK3N0cnRvdWwNCitzd3ByaW50Zg0KK3Rhbg0KK3RvbG93ZXINCit0b3VwcGVyDQordG93bG93ZXINCit0b3d1cHBlcg0KK3ZEYmdQcmludEV4DQordkRiZ1ByaW50RXhXaXRoUHJlZml4DQordnNwcmludGYNCit3Y3NjYXQNCit3Y3NjaHINCit3Y3NjbXANCit3Y3NjcHkNCit3Y3Njc3BuDQord2NzbGVuDQord2NzbmNhdA0KK3djc25jbXANCit3Y3NuY3B5DQord2NzcGJyaw0KK3djc3JjaHINCit3Y3NzcG4NCit3Y3NzdHINCit3Y3N0b2wNCit3Y3N0b21icw0KK3djc3RvdWwNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bnRkc2FwaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bnRkc2FwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWNhNDM0NAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dudGRzYXBpLmRlZgpAQCAtMCwwICsxLDExMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBOVERTQVBJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBOVERTQVBJLmRsbA0KK0VYUE9SVFMNCitEc0FkZFNpZEhpc3RvcnlBDQorRHNBZGRTaWRIaXN0b3J5Vw0KK0RzQmluZEENCitEc0JpbmRUb0lTVEdBDQorRHNCaW5kVG9JU1RHVw0KK0RzQmluZFcNCitEc0JpbmRXaXRoQ3JlZEENCitEc0JpbmRXaXRoQ3JlZFcNCitEc0JpbmRXaXRoU3BuQQ0KK0RzQmluZFdpdGhTcG5FeEENCitEc0JpbmRXaXRoU3BuRXhXDQorRHNCaW5kV2l0aFNwblcNCitEc0JpbmRpbmdTZXRUaW1lb3V0DQorRHNDbGllbnRNYWtlU3BuRm9yVGFyZ2V0U2VydmVyQQ0KK0RzQ2xpZW50TWFrZVNwbkZvclRhcmdldFNlcnZlclcNCitEc0NyYWNrTmFtZXNBDQorRHNDcmFja05hbWVzVw0KK0RzQ3JhY2tTcG4yQQ0KK0RzQ3JhY2tTcG4yVw0KK0RzQ3JhY2tTcG4zVw0KK0RzQ3JhY2tTcG5BDQorRHNDcmFja1NwblcNCitEc0NyYWNrVW5xdW90ZWRNYW5nbGVkUmRuQQ0KK0RzQ3JhY2tVbnF1b3RlZE1hbmdsZWRSZG5XDQorRHNGcmVlRG9tYWluQ29udHJvbGxlckluZm9BDQorRHNGcmVlRG9tYWluQ29udHJvbGxlckluZm9XDQorRHNGcmVlTmFtZVJlc3VsdEENCitEc0ZyZWVOYW1lUmVzdWx0Vw0KK0RzRnJlZVBhc3N3b3JkQ3JlZGVudGlhbHMNCitEc0ZyZWVTY2hlbWFHdWlkTWFwQQ0KK0RzRnJlZVNjaGVtYUd1aWRNYXBXDQorRHNGcmVlU3BuQXJyYXlBDQorRHNGcmVlU3BuQXJyYXlXDQorRHNHZXREb21haW5Db250cm9sbGVySW5mb0ENCitEc0dldERvbWFpbkNvbnRyb2xsZXJJbmZvVw0KK0RzR2V0UmRuVw0KK0RzR2V0U3BuQQ0KK0RzR2V0U3BuVw0KK0RzSW5oZXJpdFNlY3VyaXR5SWRlbnRpdHlBDQorRHNJbmhlcml0U2VjdXJpdHlJZGVudGl0eVcNCitEc0lzTWFuZ2xlZERuQQ0KK0RzSXNNYW5nbGVkRG5XDQorRHNJc01hbmdsZWRSZG5WYWx1ZUENCitEc0lzTWFuZ2xlZFJkblZhbHVlVw0KK0RzTGlzdERvbWFpbnNJblNpdGVBDQorRHNMaXN0RG9tYWluc0luU2l0ZVcNCitEc0xpc3RJbmZvRm9yU2VydmVyQQ0KK0RzTGlzdEluZm9Gb3JTZXJ2ZXJXDQorRHNMaXN0Um9sZXNBDQorRHNMaXN0Um9sZXNXDQorRHNMaXN0U2VydmVyc0ZvckRvbWFpbkluU2l0ZUENCitEc0xpc3RTZXJ2ZXJzRm9yRG9tYWluSW5TaXRlVw0KK0RzTGlzdFNlcnZlcnNJblNpdGVBDQorRHNMaXN0U2VydmVyc0luU2l0ZVcNCitEc0xpc3RTaXRlc0ENCitEc0xpc3RTaXRlc1cNCitEc0xvZ0VudHJ5DQorRHNNYWtlUGFzc3dvcmRDcmVkZW50aWFsc0ENCitEc01ha2VQYXNzd29yZENyZWRlbnRpYWxzVw0KK0RzTWFrZVNwbkENCitEc01ha2VTcG5XDQorRHNNYXBTY2hlbWFHdWlkc0ENCitEc01hcFNjaGVtYUd1aWRzVw0KK0RzUXVlcnlTaXRlc0J5Q29zdEENCitEc1F1ZXJ5U2l0ZXNCeUNvc3RXDQorRHNRdWVyeVNpdGVzRnJlZQ0KK0RzUXVvdGVSZG5WYWx1ZUENCitEc1F1b3RlUmRuVmFsdWVXDQorRHNSZW1vdmVEc0RvbWFpbkENCitEc1JlbW92ZURzRG9tYWluVw0KK0RzUmVtb3ZlRHNTZXJ2ZXJBDQorRHNSZW1vdmVEc1NlcnZlclcNCitEc1JlcGxpY2FBZGRBDQorRHNSZXBsaWNhQWRkVw0KK0RzUmVwbGljYUNvbnNpc3RlbmN5Q2hlY2sNCitEc1JlcGxpY2FEZWxBDQorRHNSZXBsaWNhRGVsVw0KK0RzUmVwbGljYUZyZWVJbmZvDQorRHNSZXBsaWNhR2V0SW5mbzJXDQorRHNSZXBsaWNhR2V0SW5mb1cNCitEc1JlcGxpY2FNb2RpZnlBDQorRHNSZXBsaWNhTW9kaWZ5Vw0KK0RzUmVwbGljYVN5bmNBDQorRHNSZXBsaWNhU3luY0FsbEENCitEc1JlcGxpY2FTeW5jQWxsVw0KK0RzUmVwbGljYVN5bmNXDQorRHNSZXBsaWNhVXBkYXRlUmVmc0ENCitEc1JlcGxpY2FVcGRhdGVSZWZzVw0KK0RzUmVwbGljYVZlcmlmeU9iamVjdHNBDQorRHNSZXBsaWNhVmVyaWZ5T2JqZWN0c1cNCitEc1NlcnZlclJlZ2lzdGVyU3BuQQ0KK0RzU2VydmVyUmVnaXN0ZXJTcG5XDQorRHNVbkJpbmRBDQorRHNVbkJpbmRXDQorRHNVbnF1b3RlUmRuVmFsdWVBDQorRHNVbnF1b3RlUmRuVmFsdWVXDQorRHNXcml0ZUFjY291bnRTcG5BDQorRHNXcml0ZUFjY291bnRTcG5XDQorRHNhb3BCaW5kDQorRHNhb3BCaW5kV2l0aENyZWQNCitEc2FvcEJpbmRXaXRoU3BuDQorRHNhb3BFeGVjdXRlU2NyaXB0DQorRHNhb3BQcmVwYXJlU2NyaXB0DQorRHNhb3BVbkJpbmQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bnRkc2JjbGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd250ZHNiY2xpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MTEyYWZmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd250ZHNiY2xpLmRlZgpAQCAtMCwwICsxLDM2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG50ZHNiY2xpLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBudGRzYmNsaS5kbGwNCitFWFBPUlRTDQorRHNCYWNrdXBDbG9zZQ0KK0RzQmFja3VwRW5kDQorRHNCYWNrdXBGcmVlDQorRHNCYWNrdXBHZXRCYWNrdXBMb2dzQQ0KK0RzQmFja3VwR2V0QmFja3VwTG9nc1cNCitEc0JhY2t1cEdldERhdGFiYXNlTmFtZXNBDQorRHNCYWNrdXBHZXREYXRhYmFzZU5hbWVzVw0KK0RzQmFja3VwT3BlbkZpbGVBDQorRHNCYWNrdXBPcGVuRmlsZVcNCitEc0JhY2t1cFByZXBhcmVBDQorRHNCYWNrdXBQcmVwYXJlVw0KK0RzQmFja3VwUmVhZA0KK0RzQmFja3VwVHJ1bmNhdGVMb2dzDQorRHNJc05URFNPbmxpbmVBDQorRHNJc05URFNPbmxpbmVXDQorRHNSZXN0b3JlQ2hlY2tFeHBpcnlUb2tlbg0KK0RzUmVzdG9yZUVuZA0KK0RzUmVzdG9yZUdldERhdGFiYXNlTG9jYXRpb25zQQ0KK0RzUmVzdG9yZUdldERhdGFiYXNlTG9jYXRpb25zVw0KK0RzUmVzdG9yZVByZXBhcmVBDQorRHNSZXN0b3JlUHJlcGFyZVcNCitEc1Jlc3RvcmVSZWdpc3RlckENCitEc1Jlc3RvcmVSZWdpc3RlckNvbXBsZXRlDQorRHNSZXN0b3JlUmVnaXN0ZXJXDQorRHNTZXRBdXRoSWRlbnRpdHlBDQorRHNTZXRBdXRoSWRlbnRpdHlXDQorRHNTZXRDdXJyZW50QmFja3VwTG9nQQ0KK0RzU2V0Q3VycmVudEJhY2t1cExvZ1cNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bnRsYW5tYW4uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd250bGFubWFuLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYzUyM2VhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd250bGFubWFuLmRlZgpAQCAtMCwwICsxLDM5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE5UTEFOTUFOLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBOVExBTk1BTi5kbGwNCitFWFBPUlRTDQorTlBHZXRDb25uZWN0aW9uDQorTlBHZXRDYXBzDQorRGxsTWFpbg0KK0lfU3lzdGVtRm9jdXNEaWFsb2cNCitOUEdldFVzZXINCitOUEFkZENvbm5lY3Rpb24NCitOUENhbmNlbENvbm5lY3Rpb24NCitJc0Rmc1BhdGhFeA0KK05QQWRkQ29ubmVjdGlvbjNGb3JDU0NBZ2VudA0KK05QQ2FuY2VsQ29ubmVjdGlvbkZvckNTQ0FnZW50DQorU2VydmVyQnJvd3NlRGlhbG9nQTANCitTaGFyZUFzRGlhbG9nQTANCitTaGFyZUNyZWF0ZQ0KK1NoYXJlTWFuYWdlDQorU2hhcmVTdG9wDQorU3RvcFNoYXJlRGlhbG9nQTANCitOUFByb3BlcnR5RGlhbG9nDQorTlBHZXREaXJlY3RvcnlUeXBlDQorTlBEaXJlY3RvcnlOb3RpZnkNCitOUEdldFByb3BlcnR5VGV4dA0KK05QT3BlbkVudW0NCitOUEVudW1SZXNvdXJjZQ0KK05QQ2xvc2VFbnVtDQorTlBGb3JtYXROZXR3b3JrTmFtZQ0KK05QQWRkQ29ubmVjdGlvbjMNCitOUEdldFVuaXZlcnNhbE5hbWUNCitOUEdldFJlc291cmNlUGFyZW50DQorTlBHZXRDb25uZWN0aW9uUGVyZm9ybWFuY2UNCitOUEdldFJlc291cmNlSW5mb3JtYXRpb24NCitOUEdldFJlY29ubmVjdEZsYWdzDQorTlBHZXRDb25uZWN0aW9uMw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dudGxhbnVpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dudGxhbnVpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NTUxZTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd250bGFudWkuZGVmCkBAIC0wLDAgKzEsMTggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTlRMQU5VSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTlRMQU5VSS5kbGwNCitFWFBPUlRTDQorU2hhcmVBc0RpYWxvZ0EwDQorU3RvcFNoYXJlRGlhbG9nQTANCitEbGxNYWluDQorSV9TeXN0ZW1Gb2N1c0RpYWxvZw0KK05QR2V0UHJvcGVydHlUZXh0DQorTlBQcm9wZXJ0eURpYWxvZw0KK1NlcnZlckJyb3dzZURpYWxvZ0EwDQorU2hhcmVDcmVhdGUNCitTaGFyZU1hbmFnZQ0KK1NoYXJlU3RvcA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dudGxhbnVpMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bnRsYW51aTIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE1YjgxZTEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bnRsYW51aTIuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbmV0b2Jqcy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbmV0b2Jqcy5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bnRsc2FwaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bnRsc2FwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmNlMDRhOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dudGxzYXBpLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG50bHNhcGkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG50bHNhcGkuZGxsDQorRVhQT1JUUw0KK050TFNGcmVlSGFuZGxlDQorTnRMaWNlbnNlUmVxdWVzdEENCitOdExpY2Vuc2VSZXF1ZXN0Vw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dudG1hcnRhLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dudG1hcnRhLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYmZkOTRmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd250bWFydGEuZGVmCkBAIC0wLDAgKzEsNTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgTlRNQVJUQS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgTlRNQVJUQS5kbGwNCitFWFBPUlRTDQorQWNjRnJlZUluZGV4QXJyYXkNCitBY2NHZXRJbmhlcml0YW5jZVNvdXJjZQ0KK0FjY1Byb3ZIYW5kbGVHcmFudEFjY2Vzc1JpZ2h0cw0KK0FjY1Jld3JpdGVHZXRFeHBsaWNpdEVudHJpZXNGcm9tQWNsDQorQWNjUmV3cml0ZUdldEhhbmRsZVJpZ2h0cw0KK0FjY1Jld3JpdGVHZXROYW1lZFJpZ2h0cw0KK0FjY1Jld3JpdGVTZXRFbnRyaWVzSW5BY2wNCitBY2NSZXdyaXRlU2V0SGFuZGxlUmlnaHRzDQorQWNjUmV3cml0ZVNldE5hbWVkUmlnaHRzDQorQWNjVHJlZVJlc2V0TmFtZWRTZWN1cml0eUluZm8NCitBY2NDb252ZXJ0QWNjZXNzTWFza1RvQWN0cmxBY2Nlc3MNCitBY2NDb252ZXJ0QWNjZXNzVG9TRA0KK0FjY0NvbnZlcnRBY2Nlc3NUb1NlY3VyaXR5RGVzY3JpcHRvcg0KK0FjY0NvbnZlcnRBY2xUb0FjY2Vzcw0KK0FjY0NvbnZlcnRTRFRvQWNjZXNzDQorQWNjR2V0QWNjZXNzRm9yVHJ1c3RlZQ0KK0FjY0dldEV4cGxpY2l0RW50cmllcw0KK0FjY0xvb2t1cEFjY291bnROYW1lDQorQWNjTG9va3VwQWNjb3VudFNpZA0KK0FjY0xvb2t1cEFjY291bnRUcnVzdGVlDQorQWNjUHJvdkNhbmNlbE9wZXJhdGlvbg0KK0FjY1Byb3ZHZXRBY2Nlc3NJbmZvUGVyT2JqZWN0VHlwZQ0KK0FjY1Byb3ZHZXRBbGxSaWdodHMNCitBY2NQcm92R2V0Q2FwYWJpbGl0aWVzDQorQWNjUHJvdkdldE9wZXJhdGlvblJlc3VsdHMNCitBY2NQcm92R2V0VHJ1c3RlZXNBY2Nlc3MNCitBY2NQcm92R3JhbnRBY2Nlc3NSaWdodHMNCitBY2NQcm92SGFuZGxlR2V0QWNjZXNzSW5mb1Blck9iamVjdFR5cGUNCitBY2NQcm92SGFuZGxlR2V0QWxsUmlnaHRzDQorQWNjUHJvdkhhbmRsZUdldFRydXN0ZWVzQWNjZXNzDQorQWNjUHJvdkhhbmRsZUlzQWNjZXNzQXVkaXRlZA0KK0FjY1Byb3ZIYW5kbGVJc09iamVjdEFjY2Vzc2libGUNCitBY2NQcm92SGFuZGxlUmV2b2tlQWNjZXNzUmlnaHRzDQorQWNjUHJvdkhhbmRsZVJldm9rZUF1ZGl0UmlnaHRzDQorQWNjUHJvdkhhbmRsZVNldEFjY2Vzc1JpZ2h0cw0KK0FjY1Byb3ZJc0FjY2Vzc0F1ZGl0ZWQNCitBY2NQcm92SXNPYmplY3RBY2Nlc3NpYmxlDQorQWNjUHJvdlJldm9rZUFjY2Vzc1JpZ2h0cw0KK0FjY1Byb3ZSZXZva2VBdWRpdFJpZ2h0cw0KK0FjY1Byb3ZTZXRBY2Nlc3NSaWdodHMNCitBY2NTZXRFbnRyaWVzSW5BTGlzdA0KK0V2ZW50R3VpZFRvTmFtZQ0KK0V2ZW50TmFtZUZyZWUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93bnRtc2FwaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93bnRtc2FwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzFkM2ZmNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dudG1zYXBpLmRlZgpAQCAtMCwwICsxLDgzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE5UTVNBUEkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE5UTVNBUEkuZGxsDQorRVhQT1JUUw0KK0FjY2Vzc050bXNMaWJyYXJ5RG9vcg0KK0FkZE50bXNNZWRpYVR5cGUNCitBbGxvY2F0ZU50bXNNZWRpYQ0KK0JlZ2luTnRtc0RldmljZUNoYW5nZURldGVjdGlvbg0KK0NhbmNlbE50bXNMaWJyYXJ5UmVxdWVzdA0KK0NhbmNlbE50bXNPcGVyYXRvclJlcXVlc3QNCitDaGFuZ2VOdG1zTWVkaWFUeXBlDQorQ2xlYW5OdG1zRHJpdmUNCitDbG9zZU50bXNOb3RpZmljYXRpb24NCitDbG9zZU50bXNTZXNzaW9uDQorQ3JlYXRlTnRtc01lZGlhQQ0KK0NyZWF0ZU50bXNNZWRpYVBvb2xBDQorQ3JlYXRlTnRtc01lZGlhUG9vbFcNCitDcmVhdGVOdG1zTWVkaWFXDQorRGVhbGxvY2F0ZU50bXNNZWRpYQ0KK0RlY29tbWlzc2lvbk50bXNNZWRpYQ0KK0RlbGV0ZU50bXNEcml2ZQ0KK0RlbGV0ZU50bXNMaWJyYXJ5DQorRGVsZXRlTnRtc01lZGlhDQorRGVsZXRlTnRtc01lZGlhUG9vbA0KK0RlbGV0ZU50bXNNZWRpYVR5cGUNCitEZWxldGVOdG1zUmVxdWVzdHMNCitEaXNhYmxlTnRtc09iamVjdA0KK0Rpc21vdW50TnRtc0RyaXZlDQorRGlzbW91bnROdG1zTWVkaWENCitEb0VqZWN0RnJvbVNBRHJpdmVXDQorRWplY3REaXNrRnJvbVNBRHJpdmVBDQorRWplY3REaXNrRnJvbVNBRHJpdmVXDQorRWplY3ROdG1zQ2xlYW5lcg0KK0VqZWN0TnRtc01lZGlhDQorRW5hYmxlTnRtc09iamVjdA0KK0VuZE50bXNEZXZpY2VDaGFuZ2VEZXRlY3Rpb24NCitFbnVtZXJhdGVOdG1zT2JqZWN0DQorRXhwb3J0TnRtc0RhdGFiYXNlDQorR2V0TnRtc01lZGlhUG9vbE5hbWVBDQorR2V0TnRtc01lZGlhUG9vbE5hbWVXDQorR2V0TnRtc09iamVjdEF0dHJpYnV0ZUENCitHZXROdG1zT2JqZWN0QXR0cmlidXRlVw0KK0dldE50bXNPYmplY3RJbmZvcm1hdGlvbkENCitHZXROdG1zT2JqZWN0SW5mb3JtYXRpb25XDQorR2V0TnRtc09iamVjdFNlY3VyaXR5DQorR2V0TnRtc1JlcXVlc3RPcmRlcg0KK0dldE50bXNVSU9wdGlvbnNBDQorR2V0TnRtc1VJT3B0aW9uc1cNCitHZXRWb2x1bWVzRnJvbURyaXZlQQ0KK0dldFZvbHVtZXNGcm9tRHJpdmVXDQorSWRlbnRpZnlOdG1zU2xvdA0KK0ltcG9ydE50bXNEYXRhYmFzZQ0KK0luamVjdE50bXNDbGVhbmVyDQorSW5qZWN0TnRtc01lZGlhDQorSW52ZW50b3J5TnRtc0xpYnJhcnkNCitNb3VudE50bXNNZWRpYQ0KK01vdmVUb050bXNNZWRpYVBvb2wNCitPcGVuTnRtc05vdGlmaWNhdGlvbg0KK09wZW5OdG1zU2Vzc2lvbkENCitPcGVuTnRtc1Nlc3Npb25XDQorUmVsZWFzZU50bXNDbGVhbmVyU2xvdA0KK1Jlc2VydmVOdG1zQ2xlYW5lclNsb3QNCitTYXRpc2Z5TnRtc09wZXJhdG9yUmVxdWVzdA0KK1NldE50bXNEZXZpY2VDaGFuZ2VEZXRlY3Rpb24NCitTZXROdG1zTWVkaWFDb21wbGV0ZQ0KK1NldE50bXNPYmplY3RBdHRyaWJ1dGVBDQorU2V0TnRtc09iamVjdEF0dHJpYnV0ZVcNCitTZXROdG1zT2JqZWN0SW5mb3JtYXRpb25BDQorU2V0TnRtc09iamVjdEluZm9ybWF0aW9uVw0KK1NldE50bXNPYmplY3RTZWN1cml0eQ0KK1NldE50bXNSZXF1ZXN0T3JkZXINCitTZXROdG1zVUlPcHRpb25zQQ0KK1NldE50bXNVSU9wdGlvbnNXDQorU3VibWl0TnRtc09wZXJhdG9yUmVxdWVzdEENCitTdWJtaXROdG1zT3BlcmF0b3JSZXF1ZXN0Vw0KK1N3YXBOdG1zTWVkaWENCitVcGRhdGVOdG1zT21pZEluZm8NCitXYWl0Rm9yTnRtc05vdGlmaWNhdGlvbg0KK1dhaXRGb3JOdG1zT3BlcmF0b3JSZXF1ZXN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd250cHJpbnQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd250cHJpbnQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI5MTdhMTAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bnRwcmludC5kZWYKQEAgLTAsMCArMSw1MSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBOVFBSSU5ULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBOVFBSSU5ULmRsbA0KK0VYUE9SVFMNCitJcHBPY0VudHJ5DQorUFNldHVwVXBncmFkZUNsdXN0ZXJEcml2ZXJzVw0KK1NlcnZlckluc3RhbGxXDQorU2V0dXBJbmV0UHJpbnQNCitDbGFzc0luc3RhbGwzMg0KK1BTZXR1cEFzc29jaWF0ZUlDTVByb2ZpbGVzDQorUFNldHVwQnVpbGREcml2ZXJzRnJvbVBhdGgNCitQU2V0dXBDcmVhdGVEcnZTZXR1cFBhZ2UNCitQU2V0dXBDcmVhdGVNb25pdG9ySW5mbw0KK1BTZXR1cENyZWF0ZVByaW50ZXJEZXZpY2VJbmZvTGlzdA0KK1BTZXR1cERlc3Ryb3lEcml2ZXJJbmZvMw0KK1BTZXR1cERlc3Ryb3lNb25pdG9ySW5mbw0KK1BTZXR1cERlc3Ryb3lQcmludGVyRGV2aWNlSW5mb0xpc3QNCitQU2V0dXBEZXN0cm95U2VsZWN0ZWREcml2ZXJJbmZvDQorUFNldHVwRHJpdmVySW5mb0Zyb21OYW1lDQorUFNldHVwRW51bU1vbml0b3INCitQU2V0dXBGaW5kTWFwcGVkRHJpdmVyDQorUFNldHVwRnJlZURydkZpZWxkDQorUFNldHVwRnJlZU1lbQ0KK1BTZXR1cEdldEFjdHVhbEluc3RhbGxTZWN0aW9uDQorUFNldHVwR2V0RHJpdmVySW5mRm9yUHJpbnRlcg0KK1BTZXR1cEdldERyaXZlckluZkZvclByaW50ZXJFeA0KK1BTZXR1cEdldERyaXZlckluZm8zDQorUFNldHVwR2V0TG9jYWxEYXRhRmllbGQNCitQU2V0dXBHZXRQYXRoVG9TZWFyY2gNCitQU2V0dXBHZXRTZWxlY3RlZERyaXZlckluZm8NCitQU2V0dXBJbnN0YWxsSUNNUHJvZmlsZXMNCitQU2V0dXBJbnN0YWxsSW5ib3hEcml2ZXJTaWxlbnRseQ0KK1BTZXR1cEluc3RhbGxNb25pdG9yDQorUFNldHVwSW5zdGFsbFByaW50ZXJEcml2ZXINCitQU2V0dXBJbnN0YWxsUHJpbnRlckRyaXZlckZyb21UaGVXZWINCitQU2V0dXBJc0NvbXBhdGlibGVEcml2ZXINCitQU2V0dXBJc0RyaXZlckluc3RhbGxlZA0KK1BTZXR1cElzVGhlRHJpdmVyRm91bmRJbkluZkluc3RhbGxlZA0KK1BTZXR1cEtpbGxCYWRVc2VyQ29ubmVjdGlvbnMNCitQU2V0dXBQcmVTZWxlY3REcml2ZXINCitQU2V0dXBQcm9jZXNzUHJpbnRlckFkZGVkDQorUFNldHVwU2VsZWN0RGV2aWNlQnV0dG9ucw0KK1BTZXR1cFNlbGVjdERyaXZlcg0KK1BTZXR1cFNldERyaXZlclBsYXRmb3JtDQorUFNldHVwU2V0U2VsZWN0RGV2VGl0bGVBbmRJbnN0cnVjdGlvbnMNCitQU2V0dXBTaG93QmxvY2tlZERyaXZlclVJDQorUFNldHVwVGhpc1BsYXRmb3JtDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd250c2hydWkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd250c2hydWkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI1MWViZDgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93bnRzaHJ1aS5kZWYKQEAgLTAsMCArMSwyNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBudHNocnVpLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBudHNocnVpLmRsbA0KK0VYUE9SVFMNCitDYW5TaGFyZUZvbGRlclcNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0dldExvY2FsUGF0aEZyb21OZXRSZXNvdXJjZQ0KK0dldExvY2FsUGF0aEZyb21OZXRSZXNvdXJjZUENCitHZXRMb2NhbFBhdGhGcm9tTmV0UmVzb3VyY2VXDQorR2V0TmV0UmVzb3VyY2VGcm9tTG9jYWxQYXRoDQorR2V0TmV0UmVzb3VyY2VGcm9tTG9jYWxQYXRoQQ0KK0dldE5ldFJlc291cmNlRnJvbUxvY2FsUGF0aFcNCitJc0ZvbGRlclByaXZhdGVGb3JVc2VyDQorSXNQYXRoU2hhcmVkDQorSXNQYXRoU2hhcmVkQQ0KK0lzUGF0aFNoYXJlZFcNCitTZXRGb2xkZXJQZXJtaXNzaW9uc0ZvclNoYXJpbmcNCitTaGFyaW5nRGlhbG9nDQorU2hhcmluZ0RpYWxvZ0ENCitTaGFyaW5nRGlhbG9nVw0KK1Nob3dTaGFyZUZvbGRlclVJVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dudHZkbTY0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dudHZkbTY0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YjI1MzI2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd250dmRtNjQuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbnR2ZG02NC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgbnR2ZG02NC5kbGwNCitFWFBPUlRTDQorRGxsSW5zdGFsbA0KK050VmRtNjRDcmVhdGVQcm9jZXNzDQorTnRWZG02NFJhaXNlSW52YWxpZDE2Qml0RXJyb3INCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93b2FrbGV5LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dvYWtsZXkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU0NmUxMTUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93b2FrbGV5LmRlZgpAQCAtMCwwICsxLDI0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG9ha2xleS5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgb2FrbGV5LkRMTA0KK0VYUE9SVFMNCitJS0VRdWVyeVN0YXRpc3RpY3MNCitJS0VFbnVtTU1zDQorSUtFRGVsZXRlQXNzb2NpYXRpb24NCitJS0VJbml0aWF0ZUlLRU5lZ290aWF0aW9uDQorSUtFUXVlcnlTcGlDaGFuZ2UNCitJS0VSZWdpc3Rlck5vdGlmeUNsaWVudA0KK0lLRUluaXQNCitJS0VTaHV0ZG93bg0KK0lLRUludGVyZmFjZUNoYW5nZQ0KK0lLRUNsb3NlSUtFTm90aWZ5SGFuZGxlDQorSUtFUXVlcnlJS0VOZWdvdGlhdGlvblN0YXR1cw0KK0lLRUNsb3NlSUtFTmVnb3RpYXRpb25IYW5kbGUNCitJS0VOb3RpZnlQb2xpY3lDaGFuZ2UNCitJS0VBZGRTQXMNCitJS0VTZXRDb25maWd1cmF0aW9uVmFyaWFibGVzDQorSUtFR2V0Q29uZmlndXJhdGlvblZhcmlhYmxlcw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dvYmpzZWwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd29ianNlbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTM4MWY2YQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dvYmpzZWwuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgb2Jqc2VsLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBvYmpzZWwuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd29jY2FjaGUuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd29jY2FjaGUuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRkNTgyNTAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93b2NjYWNoZS5kZWYKQEAgLTAsMCArMSwyNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBPQ0NBQ0hFLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBPQ0NBQ0hFLmRsbA0KK0VYUE9SVFMNCitGaW5kQ29udHJvbENsb3NlDQorRmluZEZpcnN0Q29udHJvbA0KK0ZpbmROZXh0Q29udHJvbA0KK0dldENvbnRyb2xEZXBlbmRlbnRGaWxlDQorR2V0Q29udHJvbEluZm8NCitJc01vZHVsZVJlbW92YWJsZQ0KK1JlbGVhc2VDb250cm9sSGFuZGxlDQorUmVtb3ZlQ29udHJvbEJ5SGFuZGxlDQorUmVtb3ZlQ29udHJvbEJ5TmFtZQ0KK1JlbW92ZUV4cGlyZWRDb250cm9scw0KK1N3ZWVwQ29udHJvbHNCeUxhc3RBY2Nlc3NEYXRlDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxJbnN0YWxsDQorRGxsTWFpbg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dvY21hbmFnZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93b2NtYW5hZ2UuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFmMTFmMTAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93b2NtYW5hZ2UuZGVmCkBAIC0wLDAgKzEsMTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgT0NNQU5BR0UuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE9DTUFOQUdFLmRsbA0KK0VYUE9SVFMNCitPY0NvbXBvbmVudFN0YXRlDQorT2NDcmVhdGVPY1BhZ2UNCitPY0NyZWF0ZVNldHVwUGFnZQ0KK09jR2V0V2l6YXJkUGFnZXMNCitPY0luaXRpYWxpemUNCitPY1JlbWVtYmVyV2l6YXJkRGlhbG9nSGFuZGxlDQorT2NTdWJDb21wb25lbnRzUHJlc2VudA0KK09jVGVybWluYXRlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd29kYmMzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93b2RiYzMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41YjdhYjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd29kYmMzMi5kZWYKQEAgLTAsMCArMSwxOTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgT0RCQzMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBPREJDMzIuZGxsDQorRVhQT1JUUw0KK1NRTEFsbG9jQ29ubmVjdA0KK1NRTEFsbG9jRW52DQorU1FMQWxsb2NTdG10DQorU1FMQmluZENvbA0KK1NRTENhbmNlbA0KK1NRTENvbEF0dHJpYnV0ZXMNCitTUUxDb25uZWN0DQorU1FMRGVzY3JpYmVDb2wNCitTUUxEaXNjb25uZWN0DQorU1FMRXJyb3INCitTUUxFeGVjRGlyZWN0DQorU1FMRXhlY3V0ZQ0KK1NRTEZldGNoDQorU1FMRnJlZUNvbm5lY3QNCitTUUxGcmVlRW52DQorU1FMRnJlZVN0bXQNCitTUUxHZXRDdXJzb3JOYW1lDQorU1FMTnVtUmVzdWx0Q29scw0KK1NRTFByZXBhcmUNCitTUUxSb3dDb3VudA0KK1NRTFNldEN1cnNvck5hbWUNCitTUUxTZXRQYXJhbQ0KK1NRTFRyYW5zYWN0DQorU1FMQWxsb2NIYW5kbGUNCitTUUxCaW5kUGFyYW0NCitTUUxDbG9zZUN1cnNvcg0KK1NRTENvbEF0dHJpYnV0ZQ0KK1NRTENvcHlEZXNjDQorU1FMRW5kVHJhbg0KK1NRTEZldGNoU2Nyb2xsDQorU1FMRnJlZUhhbmRsZQ0KK1NRTEdldENvbm5lY3RBdHRyDQorU1FMR2V0RGVzY0ZpZWxkDQorU1FMR2V0RGVzY1JlYw0KK1NRTEdldERpYWdGaWVsZA0KK1NRTEdldERpYWdSZWMNCitTUUxHZXRFbnZBdHRyDQorU1FMR2V0U3RtdEF0dHINCitTUUxTZXRDb25uZWN0QXR0cg0KK1NRTENvbHVtbnMNCitTUUxEcml2ZXJDb25uZWN0DQorU1FMR2V0Q29ubmVjdE9wdGlvbg0KK1NRTEdldERhdGENCitTUUxHZXRGdW5jdGlvbnMNCitTUUxHZXRJbmZvDQorU1FMR2V0U3RtdE9wdGlvbg0KK1NRTEdldFR5cGVJbmZvDQorU1FMUGFyYW1EYXRhDQorU1FMUHV0RGF0YQ0KK1NRTFNldENvbm5lY3RPcHRpb24NCitTUUxTZXRTdG10T3B0aW9uDQorU1FMU3BlY2lhbENvbHVtbnMNCitTUUxTdGF0aXN0aWNzDQorU1FMVGFibGVzDQorU1FMQnJvd3NlQ29ubmVjdA0KK1NRTENvbHVtblByaXZpbGVnZXMNCitTUUxEYXRhU291cmNlcw0KK1NRTERlc2NyaWJlUGFyYW0NCitTUUxFeHRlbmRlZEZldGNoDQorU1FMRm9yZWlnbktleXMNCitTUUxNb3JlUmVzdWx0cw0KK1NRTE5hdGl2ZVNxbA0KK1NRTE51bVBhcmFtcw0KK1NRTFBhcmFtT3B0aW9ucw0KK1NRTFByaW1hcnlLZXlzDQorU1FMUHJvY2VkdXJlQ29sdW1ucw0KK1NRTFByb2NlZHVyZXMNCitTUUxTZXRQb3MNCitTUUxTZXRTY3JvbGxPcHRpb25zDQorU1FMVGFibGVQcml2aWxlZ2VzDQorU1FMRHJpdmVycw0KK1NRTEJpbmRQYXJhbWV0ZXINCitTUUxTZXREZXNjRmllbGQNCitTUUxTZXREZXNjUmVjDQorU1FMU2V0RW52QXR0cg0KK1NRTFNldFN0bXRBdHRyDQorU1FMQWxsb2NIYW5kbGVTdGQNCitTUUxCdWxrT3BlcmF0aW9ucw0KK0Nsb3NlT0RCQ1BlcmZEYXRhDQorQ29sbGVjdE9EQkNQZXJmRGF0YQ0KK0N1cnNvckxpYkxvY2tEYmMNCitDdXJzb3JMaWJMb2NrRGVzYw0KK0N1cnNvckxpYkxvY2tTdG10DQorT0RCQ0dldFRyeVdhaXRWYWx1ZQ0KK0N1cnNvckxpYlRyYW5zYWN0DQorT0RCQ1NldFRyeVdhaXRWYWx1ZQ0KK0RsbEJpZEVudHJ5UG9pbnQNCitHZXRPREJDU2hhcmVkRGF0YQ0KK0xvY2tIYW5kbGUNCitNcEhlYXBBbGxvYw0KK01wSGVhcENvbXBhY3QNCitNcEhlYXBDcmVhdGUNCitNcEhlYXBEZXN0cm95DQorTXBIZWFwRnJlZQ0KK01wSGVhcFJlQWxsb2MNCitNcEhlYXBTaXplDQorTXBIZWFwVmFsaWRhdGUNCitPREJDSW50ZXJuYWxDb25uZWN0Vw0KK09wZW5PREJDUGVyZkRhdGENCitQb3N0Q29tcG9uZW50RXJyb3INCitQb3N0T0RCQ0NvbXBvbmVudEVycm9yDQorUG9zdE9EQkNFcnJvcg0KK1NlYXJjaFN0YXR1c0NvZGUNCitWRnJlZUVycm9ycw0KK1ZSZXRyaWV2ZURyaXZlckVycm9yc1Jvd0NvbA0KK1NRTENvbEF0dHJpYnV0ZXNXDQorU1FMQ29ubmVjdFcNCitTUUxEZXNjcmliZUNvbFcNCitWYWxpZGF0ZUVycm9yUXVldWUNCitTUUxFcnJvclcNCitTUUxFeGVjRGlyZWN0Vw0KK2dfaEhlYXBNYWxsb2MgREFUQQ0KK1NRTEdldEN1cnNvck5hbWVXDQorU1FMUHJlcGFyZVcNCitTUUxTZXRDdXJzb3JOYW1lVw0KK1NRTENvbEF0dHJpYnV0ZVcNCitTUUxHZXRDb25uZWN0QXR0clcNCitTUUxHZXREZXNjRmllbGRXDQorU1FMR2V0RGVzY1JlY1cNCitTUUxHZXREaWFnRmllbGRXDQorU1FMR2V0RGlhZ1JlY1cNCitTUUxHZXRTdG10QXR0clcNCitTUUxTZXRDb25uZWN0QXR0clcNCitTUUxDb2x1bW5zVw0KK1NRTERyaXZlckNvbm5lY3RXDQorU1FMR2V0Q29ubmVjdE9wdGlvblcNCitTUUxHZXRJbmZvVw0KK1NRTEdldFR5cGVJbmZvVw0KK1NRTFNldENvbm5lY3RPcHRpb25XDQorU1FMU3BlY2lhbENvbHVtbnNXDQorU1FMU3RhdGlzdGljc1cNCitTUUxUYWJsZXNXDQorU1FMQnJvd3NlQ29ubmVjdFcNCitTUUxDb2x1bW5Qcml2aWxlZ2VzVw0KK1NRTERhdGFTb3VyY2VzVw0KK1NRTEZvcmVpZ25LZXlzVw0KK1NRTE5hdGl2ZVNxbFcNCitTUUxQcmltYXJ5S2V5c1cNCitTUUxQcm9jZWR1cmVDb2x1bW5zVw0KK1NRTFByb2NlZHVyZXNXDQorU1FMVGFibGVQcml2aWxlZ2VzVw0KK1NRTERyaXZlcnNXDQorU1FMU2V0RGVzY0ZpZWxkVw0KK1NRTFNldFN0bXRBdHRyVw0KK1NRTENvbEF0dHJpYnV0ZXNBDQorU1FMQ29ubmVjdEENCitTUUxEZXNjcmliZUNvbEENCitTUUxFcnJvckENCitTUUxFeGVjRGlyZWN0QQ0KK1NRTEdldEN1cnNvck5hbWVBDQorU1FMUHJlcGFyZUENCitTUUxTZXRDdXJzb3JOYW1lQQ0KK1NRTENvbEF0dHJpYnV0ZUENCitTUUxHZXRDb25uZWN0QXR0ckENCitTUUxHZXREZXNjRmllbGRBDQorU1FMR2V0RGVzY1JlY0ENCitTUUxHZXREaWFnRmllbGRBDQorU1FMR2V0RGlhZ1JlY0ENCitTUUxHZXRTdG10QXR0ckENCitTUUxTZXRDb25uZWN0QXR0ckENCitTUUxDb2x1bW5zQQ0KK1NRTERyaXZlckNvbm5lY3RBDQorU1FMR2V0Q29ubmVjdE9wdGlvbkENCitTUUxHZXRJbmZvQQ0KK1NRTEdldFR5cGVJbmZvQQ0KK1NRTFNldENvbm5lY3RPcHRpb25BDQorU1FMU3BlY2lhbENvbHVtbnNBDQorU1FMU3RhdGlzdGljc0ENCitTUUxUYWJsZXNBDQorU1FMQnJvd3NlQ29ubmVjdEENCitTUUxDb2x1bW5Qcml2aWxlZ2VzQQ0KK1NRTERhdGFTb3VyY2VzQQ0KK1NRTEZvcmVpZ25LZXlzQQ0KK1NRTE5hdGl2ZVNxbEENCitTUUxQcmltYXJ5S2V5c0ENCitTUUxQcm9jZWR1cmVDb2x1bW5zQQ0KK1NRTFByb2NlZHVyZXNBDQorU1FMVGFibGVQcml2aWxlZ2VzQQ0KK1NRTERyaXZlcnNBDQorU1FMU2V0RGVzY0ZpZWxkQQ0KK1NRTFNldFN0bXRBdHRyQQ0KK09EQkNRdWFsaWZ5RmlsZURTTlcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93b2RiYzMyZ3QuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd29kYmMzMmd0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNWZhN2ExCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd29kYmMzMmd0LmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE9EQkMzMkdULmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBPREJDMzJHVC5kbGwNCitFWFBPUlRTDQorRGlzcGF0Y2gNCitEaXNwYXRjaDINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93b2RiY2NvbmYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd29kYmNjb25mLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNjM1ZjdkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd29kYmNjb25mLmRlZgpAQCAtMCwwICsxLDEwNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBvZGJjY29uZi5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgb2RiY2NvbmYuRExMDQorRVhQT1JUUw0KK1NldFNpbGVudA0KK1NldEFjdGlvbkxvZ0ZpbGUNCitTZXRBY3Rpb25Mb2dNb2RlU3oNCitTZXRBY3Rpb25Mb2dNb2RlDQorRXhlY3V0ZUFjdGlvbg0KK1NldEFjdGlvbkVudW0NCitTZXRBY3Rpb25OYW1lDQorRXhwYW5kUGF0aA0KK0dldFBhdGhGcm9tSUQNCitBcHBseVcyS1hQYWsNCitBcHBseU1pbGxlbkNhdA0KK1VucmVnVzJLWFBhaw0KK0FwcFJlZ0VudW0NCitDbG9zZUFwcFJlZ0VudW0NCitPcGVuQXBwUmVnRW51bQ0KK1F1ZXJ5QXBwbGljYXRpb24NCitSZWZyZXNoQXBwUmVnRW51bQ0KK1JlZ2lzdGVyQXBwbGljYXRpb24NCitSdW5ETEwzMl9SZWdpc3RlckFwcGxpY2F0aW9uDQorUnVuRExMMzJfVW5yZWdpc3RlckFwcGxpY2F0aW9uDQorVW5yZWdpc3RlckFwcGxpY2F0aW9uDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK1NMTGlzdENyZWF0ZQ0KK1NMTGlzdERlc3Ryb3kNCitTTExpc3RBZGROb2RlDQorU0xMaXN0UmVtb3ZlTm9kZQ0KK1NMTGlzdEdldEhlYWQNCitTTExpc3RHZXROZXh0DQorU0xMaXN0R2V0RGF0YQ0KK1NMTGlzdFNldERhdGENCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorRExMaXN0Q3JlYXRlDQorRExMaXN0RGVzdHJveQ0KK0RMTGlzdEFkZE5vZGUNCitETExpc3RSZW1vdmVOb2RlDQorRExMaXN0R2V0SGVhZA0KK0RMTGlzdEdldE5leHQNCitETExpc3RHZXRQcmV2DQorRExMaXN0R2V0RGF0YQ0KK0RMTGlzdFNldERhdGENCitPcGVuUHJvY2Vzc0luZm8NCitDbG9zZVByb2Nlc3NJbmZvDQorSXNGaWxlTG9ja2VkDQorRW5hYmxlTlRQcml2aWxlZ2UNCitEaXNhYmxlTlRQcml2aWxlZ2UNCitFbmFibGVEZWJ1Z1ByaXZpbGVnZXMNCitEaXNhYmxlRGVidWdQcml2aWxlZ2VzDQorTG9va3VwQXBwRnJpZW5kbHlOYW1lDQorSXNNb2R1bGVMb2FkZWRCeVByb2Nlc3MNCitJc01vZHVsZUxvYWRlZEJ5UHJvY2Vzc0V4DQorU2h1dGRvd25Qcm9jZXNzDQorT3BlblByb2Nlc3NEaXNwbGF5TmFtZXMNCitDbG9zZVByb2Nlc3NEaXNwbGF5TmFtZXMNCitHZXRQcm9jZXNzTGlzdEZyb21GaWxlTGlzdA0KK09wZW5Qcm9jZXNzTGlzdA0KK0Nsb3NlUHJvY2Vzc0xpc3QNCitFbnVtZXJhdGVQcm9jZXNzZXMNCitBZGRJbmZUb0xpc3QNCitDcmVhdGVJbmZMaXN0DQorUG9wdWxhdGVJbmZGaWxlTGlzdA0KK0Rlc3Ryb3lJbmZMaXN0DQorT3BlbkRyaXZlU3BhY2VMaXN0DQorQ2xvc2VEcml2ZVNwYWNlTGlzdA0KK0NhbGN1bGF0ZVJlcXVpcmVkRHJpdmVTcGFjZQ0KK09wZW5Ecml2ZVNwYWNlTGlzdEZyb21JbmZMaXN0DQorUnVuRExMMzJfRmlsdGVyUnVuT25jZUV4UmVnaXN0cmF0aW9uDQorQWRkRmlsdGVyUnVuT25jZUV4UmVnaXN0cmF0aW9uVG9SZWdpc3RyeQ0KK1JlbW92ZUZpbHRlclJ1bk9uY2VFeFJlZ2lzdHJhdGlvbkZyb21SZWdpc3RyeQ0KK0ZpbHRlclJ1bk9uY2VFeFJlZ2lzdHJhdGlvbg0KK0JhY2t1cFJlZ0tleQ0KK1Jlc3RvcmVSZWdLZXkNCitSZWdWZXJzaW9uDQorUmVnVmVyc2lvbkV4DQorTG9hZFJlZ1ZlcnNpb24NCitMb2FkUmVnVmVyc2lvbkV4DQorR2V0UHJvZ3JhbUZpbGVzRGlyZWN0b3J5DQorR2V0UHJvZ3JhbUZpbGVzQ29tbW9uRmlsZXNEaXJlY3RvcnkNCitPcGVuUGVuZGluZ1JlbmFtZUxpc3QNCitDbG9zZVBlbmRpbmdSZW5hbWVMaXN0DQorUGFyc2VWZXJzaW9uRGF0YUZyb21TdHJpbmcNCitQYXJzZVZlcnNpb25EYXRhRnJvbVN0cmluZ0V4DQorQ29tcGFyZVZlcnNpb25EYXRhDQorQ29tcGFyZVZlcnNpb25EYXRhRXgNCitJc0V4Y2VwdGlvbkluZg0KK0lzRXhjZXB0aW9uSW5mRXgNCitDcmVhdGVSZWdLZXlCYWNrdXBMaXN0DQorRGVzdHJveVJlZ0tleUJhY2t1cExpc3QNCitSZWdLZXlCYWNrdXANCitSZWdLZXlSZXN0b3JlDQorU2F2ZVJlZ0tleUJhY2t1cFRvRmlsZQ0KK0xvYWRSZWdLZXlCYWNrdXBGcm9tRmlsZQ0KK0JhY2t1cENhdGFsb2cNCitSZXN0b3JlQ2F0YWxvZw0KK0RvZXNGaWxlRXhpc3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93b2RiY2NwMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd29kYmNjcDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMjI0YzM3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd29kYmNjcDMyLmRlZgpAQCAtMCwwICsxLDY1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE9EQkNDUDMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBPREJDQ1AzMi5kbGwNCitFWFBPUlRTDQorU1FMSW5zdGFsbERyaXZlcg0KK1NRTEluc3RhbGxEcml2ZXJNYW5hZ2VyDQorU1FMR2V0SW5zdGFsbGVkRHJpdmVycw0KK1NRTEdldEF2YWlsYWJsZURyaXZlcnMNCitTUUxDb25maWdEYXRhU291cmNlDQorU1FMUmVtb3ZlRGVmYXVsdERhdGFTb3VyY2UNCitTUUxXcml0ZURTTlRvSW5pDQorU1FMUmVtb3ZlRFNORnJvbUluaQ0KK1NRTEluc3RhbGxPREJDDQorU1FMTWFuYWdlRGF0YVNvdXJjZXMNCitTUUxDcmVhdGVEYXRhU291cmNlDQorU1FMR2V0VHJhbnNsYXRvcg0KK1NRTFdyaXRlUHJpdmF0ZVByb2ZpbGVTdHJpbmcNCitTUUxHZXRQcml2YXRlUHJvZmlsZVN0cmluZw0KK1NRTFZhbGlkRFNODQorU1FMUmVtb3ZlRHJpdmVyTWFuYWdlcg0KK1NRTEluc3RhbGxUcmFuc2xhdG9yDQorU1FMUmVtb3ZlVHJhbnNsYXRvcg0KK1NRTFJlbW92ZURyaXZlcg0KK1NRTENvbmZpZ0RyaXZlcg0KK1NRTEluc3RhbGxlckVycm9yDQorU1FMUG9zdEluc3RhbGxlckVycm9yDQorU1FMUmVhZEZpbGVEU04NCitTUUxXcml0ZUZpbGVEU04NCitTUUxJbnN0YWxsRHJpdmVyRXgNCitTUUxHZXRDb25maWdNb2RlDQorU1FMU2V0Q29uZmlnTW9kZQ0KK1NRTEluc3RhbGxUcmFuc2xhdG9yRXgNCitTUUxDcmVhdGVEYXRhU291cmNlRXgNCitPREJDQ1BsQXBwbGV0DQorU2VsZWN0VHJhbnNEbGcNCitTUUxJbnN0YWxsRHJpdmVyVw0KK1NRTEluc3RhbGxEcml2ZXJNYW5hZ2VyVw0KK1NRTEdldEluc3RhbGxlZERyaXZlcnNXDQorU1FMR2V0QXZhaWxhYmxlRHJpdmVyc1cNCitTUUxDb25maWdEYXRhU291cmNlVw0KK1NRTFdyaXRlRFNOVG9JbmlXDQorU1FMUmVtb3ZlRFNORnJvbUluaVcNCitTUUxJbnN0YWxsT0RCQ1cNCitTUUxDcmVhdGVEYXRhU291cmNlVw0KK1NRTEdldFRyYW5zbGF0b3JXDQorU1FMV3JpdGVQcml2YXRlUHJvZmlsZVN0cmluZ1cNCitTUUxHZXRQcml2YXRlUHJvZmlsZVN0cmluZ1cNCitTUUxWYWxpZERTTlcNCitTUUxJbnN0YWxsVHJhbnNsYXRvclcNCitTUUxSZW1vdmVUcmFuc2xhdG9yVw0KK1NRTFJlbW92ZURyaXZlclcNCitTUUxDb25maWdEcml2ZXJXDQorU1FMSW5zdGFsbGVyRXJyb3JXDQorU1FMUG9zdEluc3RhbGxlckVycm9yVw0KK1NRTFJlYWRGaWxlRFNOVw0KK1NRTFdyaXRlRmlsZURTTlcNCitTUUxJbnN0YWxsRHJpdmVyRXhXDQorU1FMSW5zdGFsbFRyYW5zbGF0b3JFeFcNCitTUUxDcmVhdGVEYXRhU291cmNlRXhXDQorU1FMTG9hZERyaXZlckxpc3RCb3gNCitTUUxMb2FkRGF0YVNvdXJjZXNMaXN0Qm94DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd29kYmNjcjMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dvZGJjY3IzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzk1NTc2ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dvZGJjY3IzMi5kZWYKQEAgLTAsMCArMSw0NSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBPREJDQ1IzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgT0RCQ0NSMzIuZGxsDQorRVhQT1JUUw0KK1NRTEJpbmRDb2wNCitTUUxDYW5jZWwNCitSZWxlYXNlQ0xTdG10UmVzb3VyY2VzDQorU1FMRXhlY0RpcmVjdA0KK1NRTEV4ZWN1dGUNCitTUUxGZXRjaA0KK1NRTEZyZWVTdG10DQorU1FMUHJlcGFyZQ0KK1NRTFJvd0NvdW50DQorU1FMVHJhbnNhY3QNCitTUUxDbG9zZUN1cnNvcg0KK1NRTEVuZFRyYW4NCitTUUxGZXRjaFNjcm9sbA0KK1NRTEZyZWVIYW5kbGUNCitTUUxHZXREZXNjRmllbGQNCitTUUxHZXREZXNjUmVjDQorU1FMR2V0U3RtdEF0dHINCitTUUxTZXRDb25uZWN0QXR0cg0KK1NRTEdldERhdGENCitTUUxHZXRJbmZvDQorU1FMR2V0U3RtdE9wdGlvbg0KK1NRTFBhcmFtRGF0YQ0KK1NRTFB1dERhdGENCitTUUxTZXRDb25uZWN0T3B0aW9uDQorU1FMU2V0U3RtdE9wdGlvbg0KK1NRTEV4dGVuZGVkRmV0Y2gNCitTUUxNb3JlUmVzdWx0cw0KK1NRTE5hdGl2ZVNxbA0KK1NRTE51bVBhcmFtcw0KK1NRTFBhcmFtT3B0aW9ucw0KK1NRTFNldFBvcw0KK1NRTFNldFNjcm9sbE9wdGlvbnMNCitTUUxCaW5kUGFyYW1ldGVyDQorU1FMU2V0RGVzY0ZpZWxkDQorU1FMU2V0RGVzY1JlYw0KK1NRTFNldFN0bXRBdHRyDQorU1FMQnVsa09wZXJhdGlvbnMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93b2RiY2N1MzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd29kYmNjdTMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43OTU1NzZkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd29kYmNjdTMyLmRlZgpAQCAtMCwwICsxLDQ1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE9EQkNDUjMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBPREJDQ1IzMi5kbGwNCitFWFBPUlRTDQorU1FMQmluZENvbA0KK1NRTENhbmNlbA0KK1JlbGVhc2VDTFN0bXRSZXNvdXJjZXMNCitTUUxFeGVjRGlyZWN0DQorU1FMRXhlY3V0ZQ0KK1NRTEZldGNoDQorU1FMRnJlZVN0bXQNCitTUUxQcmVwYXJlDQorU1FMUm93Q291bnQNCitTUUxUcmFuc2FjdA0KK1NRTENsb3NlQ3Vyc29yDQorU1FMRW5kVHJhbg0KK1NRTEZldGNoU2Nyb2xsDQorU1FMRnJlZUhhbmRsZQ0KK1NRTEdldERlc2NGaWVsZA0KK1NRTEdldERlc2NSZWMNCitTUUxHZXRTdG10QXR0cg0KK1NRTFNldENvbm5lY3RBdHRyDQorU1FMR2V0RGF0YQ0KK1NRTEdldEluZm8NCitTUUxHZXRTdG10T3B0aW9uDQorU1FMUGFyYW1EYXRhDQorU1FMUHV0RGF0YQ0KK1NRTFNldENvbm5lY3RPcHRpb24NCitTUUxTZXRTdG10T3B0aW9uDQorU1FMRXh0ZW5kZWRGZXRjaA0KK1NRTE1vcmVSZXN1bHRzDQorU1FMTmF0aXZlU3FsDQorU1FMTnVtUGFyYW1zDQorU1FMUGFyYW1PcHRpb25zDQorU1FMU2V0UG9zDQorU1FMU2V0U2Nyb2xsT3B0aW9ucw0KK1NRTEJpbmRQYXJhbWV0ZXINCitTUUxTZXREZXNjRmllbGQNCitTUUxTZXREZXNjUmVjDQorU1FMU2V0U3RtdEF0dHINCitTUUxCdWxrT3BlcmF0aW9ucw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dvZGJjamkzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93b2RiY2ppMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRlZjU4MjIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93b2RiY2ppMzIuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgb2RiY2ppMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG9kYmNqaTMyLmRsbA0KK0VYUE9SVFMNCitJbnRsTGliSGluc3QNCitMaWJNYWluDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd29kYmNqdDMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dvZGJjanQzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTU1MWE0OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dvZGJjanQzMi5kZWYKQEAgLTAsMCArMSw4NCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBvZGJjanQzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgb2RiY2p0MzIuZGxsDQorRVhQT1JUUw0KK1NRTEFsbG9jQ29ubmVjdA0KK1NRTEFsbG9jRW52DQorU1FMQWxsb2NTdG10DQorU1FMQmluZENvbA0KK1NRTENhbmNlbA0KK1NRTERpc2Nvbm5lY3QNCitTUUxFeGVjdXRlDQorU1FMRmV0Y2gNCitTUUxGcmVlQ29ubmVjdA0KK1NRTEZyZWVFbnYNCitTUUxGcmVlU3RtdA0KK1NRTE51bVJlc3VsdENvbHMNCitTUUxSb3dDb3VudA0KK1NRTEFsbG9jSGFuZGxlDQorU1FMQ2xvc2VDdXJzb3INCitTUUxDb3B5RGVzYw0KK1NRTEVuZFRyYW4NCitTUUxGZXRjaFNjcm9sbA0KK1NRTEZyZWVIYW5kbGUNCitTUUxHZXREYXRhDQorU1FMR2V0RnVuY3Rpb25zDQorU1FMUGFyYW1EYXRhDQorU1FMUHV0RGF0YQ0KK1NRTEV4dGVuZGVkRmV0Y2gNCitTUUxNb3JlUmVzdWx0cw0KK1NRTE51bVBhcmFtcw0KK1NRTFNldFBvcw0KK1NRTFNldFNjcm9sbE9wdGlvbnMNCitTUUxCaW5kUGFyYW1ldGVyDQorU1FMU2V0RGVzY1JlYw0KK1NRTFNldEVudkF0dHINCitTUUxCdWxrT3BlcmF0aW9ucw0KK1NRTENvbm5lY3RXDQorU1FMRGVzY3JpYmVDb2xXDQorU1FMRXhlY0RpcmVjdFcNCitTUUxHZXRDdXJzb3JOYW1lVw0KK1NRTFByZXBhcmVXDQorU1FMU2V0Q3Vyc29yTmFtZVcNCitTUUxDb2xBdHRyaWJ1dGVXDQorU1FMR2V0Q29ubmVjdEF0dHJXDQorU1FMR2V0RGVzY0ZpZWxkVw0KK1NRTEdldERlc2NSZWNXDQorU1FMR2V0RGlhZ0ZpZWxkVw0KK1NRTEdldERpYWdSZWNXDQorU1FMR2V0U3RtdEF0dHJXDQorU1FMU2V0Q29ubmVjdEF0dHJXDQorU1FMQ29sdW1uc1cNCitTUUxEcml2ZXJDb25uZWN0Vw0KK1NRTEdldEluZm9XDQorU1FMR2V0VHlwZUluZm9XDQorU1FMU3BlY2lhbENvbHVtbnNXDQorU1FMU3RhdGlzdGljc1cNCitTUUxUYWJsZXNXDQorU1FMTmF0aXZlU3FsVw0KK1NRTFByb2NlZHVyZUNvbHVtbnNXDQorU1FMUHJvY2VkdXJlc1cNCitTUUxTZXREZXNjRmllbGRXDQorU1FMU2V0U3RtdEF0dHJXDQorTG9hZEJ5T3JkaW5hbA0KK0xpYk1haW4NCitSZXBhaXJDb21wYWN0UHJvYw0KK0FkdmFuY2VkRGlhbG9nUHJvYw0KK09wZW5EaXJIb29rDQorSW52aXNpYmxlU2VsZWN0RGINCitJbml0RGlhbG9nQWdhaW4NCitMb2dpbkRpYWxvZ1Byb2MNCitJbml0aWFsaXplTG9naW5EaWFsb2cNCitTZWxlY3RVSWR4RGxnUHJvYw0KK0NvbmZpZ0RpYWxvZ1Byb2MNCitDb25maWdEU05FeFcNCitDb25maWdEU05XDQorU2VsZWN0SW5kZXhEbGdQcm9jDQorRGVmVHh0Rm10RGxnUHJvYw0KK0Fzc2VydFN6RmFpbA0KK0NvbmZpZ0RyaXZlclcNCitDb25maWdEU04NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93b2RiY3RyYWMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd29kYmN0cmFjLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZjNmYTAwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd29kYmN0cmFjLmRlZgpAQCAtMCwwICsxLDEzMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBPREJDVFJBQy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgT0RCQ1RSQUMuZGxsDQorRVhQT1JUUw0KK1RyYWNlU1FMQWxsb2NDb25uZWN0DQorVHJhY2VTUUxBbGxvY0Vudg0KK1RyYWNlU1FMQWxsb2NTdG10DQorVHJhY2VTUUxCaW5kQ29sDQorVHJhY2VTUUxDYW5jZWwNCitUcmFjZVNRTENvbEF0dHJpYnV0ZXMNCitUcmFjZVNRTENvbm5lY3QNCitUcmFjZVNRTERlc2NyaWJlQ29sDQorVHJhY2VTUUxEaXNjb25uZWN0DQorVHJhY2VTUUxFcnJvcg0KK1RyYWNlU1FMRXhlY0RpcmVjdA0KK1RyYWNlU1FMRXhlY3V0ZQ0KK1RyYWNlU1FMRmV0Y2gNCitUcmFjZVNRTEZyZWVDb25uZWN0DQorVHJhY2VTUUxGcmVlRW52DQorVHJhY2VTUUxGcmVlU3RtdA0KK1RyYWNlU1FMR2V0Q3Vyc29yTmFtZQ0KK1RyYWNlU1FMTnVtUmVzdWx0Q29scw0KK1RyYWNlU1FMUHJlcGFyZQ0KK1RyYWNlU1FMUm93Q291bnQNCitUcmFjZVNRTFNldEN1cnNvck5hbWUNCitUcmFjZVNRTFNldFBhcmFtDQorVHJhY2VTUUxUcmFuc2FjdA0KK1RyYWNlU1FMQWxsb2NIYW5kbGUNCitUcmFjZVNRTEJpbmRQYXJhbQ0KK1RyYWNlU1FMQ2xvc2VDdXJzb3INCitUcmFjZVNRTENvbEF0dHJpYnV0ZQ0KK1RyYWNlU1FMQ29weURlc2MNCitUcmFjZVNRTEVuZFRyYW4NCitUcmFjZVNRTEZldGNoU2Nyb2xsDQorVHJhY2VTUUxGcmVlSGFuZGxlDQorVHJhY2VTUUxHZXRDb25uZWN0QXR0cg0KK1RyYWNlU1FMR2V0RGVzY0ZpZWxkDQorVHJhY2VTUUxHZXREZXNjUmVjDQorVHJhY2VTUUxHZXREaWFnRmllbGQNCitUcmFjZVNRTEdldERpYWdSZWMNCitUcmFjZVNRTEdldEVudkF0dHINCitUcmFjZVNRTEdldFN0bXRBdHRyDQorVHJhY2VTUUxTZXRDb25uZWN0QXR0cg0KK1RyYWNlU1FMQ29sdW1ucw0KK1RyYWNlU1FMRHJpdmVyQ29ubmVjdA0KK1RyYWNlU1FMR2V0Q29ubmVjdE9wdGlvbg0KK1RyYWNlU1FMR2V0RGF0YQ0KK1RyYWNlU1FMR2V0RnVuY3Rpb25zDQorVHJhY2VTUUxHZXRJbmZvDQorVHJhY2VTUUxHZXRTdG10T3B0aW9uDQorVHJhY2VTUUxHZXRUeXBlSW5mbw0KK1RyYWNlU1FMUGFyYW1EYXRhDQorVHJhY2VTUUxQdXREYXRhDQorVHJhY2VTUUxTZXRDb25uZWN0T3B0aW9uDQorVHJhY2VTUUxTZXRTdG10T3B0aW9uDQorVHJhY2VTUUxTcGVjaWFsQ29sdW1ucw0KK1RyYWNlU1FMU3RhdGlzdGljcw0KK1RyYWNlU1FMVGFibGVzDQorVHJhY2VTUUxCcm93c2VDb25uZWN0DQorVHJhY2VTUUxDb2x1bW5Qcml2aWxlZ2VzDQorVHJhY2VTUUxEYXRhU291cmNlcw0KK1RyYWNlU1FMRGVzY3JpYmVQYXJhbQ0KK1RyYWNlU1FMRXh0ZW5kZWRGZXRjaA0KK1RyYWNlU1FMRm9yZWlnbktleXMNCitUcmFjZVNRTE1vcmVSZXN1bHRzDQorVHJhY2VTUUxOYXRpdmVTcWwNCitUcmFjZVNRTE51bVBhcmFtcw0KK1RyYWNlU1FMUGFyYW1PcHRpb25zDQorVHJhY2VTUUxQcmltYXJ5S2V5cw0KK1RyYWNlU1FMUHJvY2VkdXJlQ29sdW1ucw0KK1RyYWNlU1FMUHJvY2VkdXJlcw0KK1RyYWNlU1FMU2V0UG9zDQorVHJhY2VTUUxTZXRTY3JvbGxPcHRpb25zDQorVHJhY2VTUUxUYWJsZVByaXZpbGVnZXMNCitUcmFjZVNRTERyaXZlcnMNCitUcmFjZVNRTEJpbmRQYXJhbWV0ZXINCitUcmFjZVNRTFNldERlc2NGaWVsZA0KK1RyYWNlU1FMU2V0RGVzY1JlYw0KK1RyYWNlU1FMU2V0RW52QXR0cg0KK1RyYWNlU1FMU2V0U3RtdEF0dHINCitUcmFjZVNRTEFsbG9jSGFuZGxlU3RkDQorVHJhY2VTUUxCdWxrT3BlcmF0aW9ucw0KK0ZpcmVWU0RlYnVnRXZlbnQNCitUcmFjZVZTQ29udHJvbA0KK1RyYWNlU1FMQ29sQXR0cmlidXRlc1cNCitUcmFjZVNRTENvbm5lY3RXDQorVHJhY2VTUUxEZXNjcmliZUNvbFcNCitUcmFjZVNRTEVycm9yVw0KK1RyYWNlU1FMRXhlY0RpcmVjdFcNCitUcmFjZVNRTEdldEN1cnNvck5hbWVXDQorVHJhY2VTUUxQcmVwYXJlVw0KK1RyYWNlU1FMU2V0Q3Vyc29yTmFtZVcNCitUcmFjZVNRTENvbEF0dHJpYnV0ZVcNCitUcmFjZVNRTEdldENvbm5lY3RBdHRyVw0KK1RyYWNlU1FMR2V0RGVzY0ZpZWxkVw0KK1RyYWNlU1FMR2V0RGVzY1JlY1cNCitUcmFjZVNRTEdldERpYWdGaWVsZFcNCitUcmFjZVNRTEdldERpYWdSZWNXDQorVHJhY2VTUUxHZXRTdG10QXR0clcNCitUcmFjZVNRTFNldENvbm5lY3RBdHRyVw0KK1RyYWNlU1FMQ29sdW1uc1cNCitUcmFjZVNRTERyaXZlckNvbm5lY3RXDQorVHJhY2VTUUxHZXRDb25uZWN0T3B0aW9uVw0KK1RyYWNlU1FMR2V0SW5mb1cNCitUcmFjZVNRTEdldFR5cGVJbmZvVw0KK1RyYWNlU1FMU2V0Q29ubmVjdE9wdGlvblcNCitUcmFjZVNRTFNwZWNpYWxDb2x1bW5zVw0KK1RyYWNlU1FMU3RhdGlzdGljc1cNCitUcmFjZVNRTFRhYmxlc1cNCitUcmFjZVNRTEJyb3dzZUNvbm5lY3RXDQorVHJhY2VTUUxDb2x1bW5Qcml2aWxlZ2VzVw0KK1RyYWNlU1FMRGF0YVNvdXJjZXNXDQorVHJhY2VTUUxGb3JlaWduS2V5c1cNCitUcmFjZVNRTE5hdGl2ZVNxbFcNCitUcmFjZVNRTFByaW1hcnlLZXlzVw0KK1RyYWNlU1FMUHJvY2VkdXJlQ29sdW1uc1cNCitUcmFjZVNRTFByb2NlZHVyZXNXDQorVHJhY2VTUUxUYWJsZVByaXZpbGVnZXNXDQorVHJhY2VTUUxEcml2ZXJzVw0KK1RyYWNlU1FMU2V0RGVzY0ZpZWxkVw0KK1RyYWNlU1FMU2V0U3RtdEF0dHJXDQorVHJhY2VTUUxBbGxvY0hhbmRsZVN0ZFcNCitUcmFjZVJldHVybg0KK1RyYWNlT3BlbkxvZ0ZpbGUNCitUcmFjZUNsb3NlTG9nRmlsZQ0KK1RyYWNlVmVyc2lvbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dvZGRic2UzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93b2RkYnNlMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNiMWFlNmIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93b2RkYnNlMzIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBvZGRic2UzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgb2RkYnNlMzIuZGxsDQorRVhQT1JUUw0KK0NvbmZpZ0RTTlcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93b2RleGwzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93b2RleGwzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmYzZGFmYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dvZGV4bDMyLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgb2RleGwzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgb2RleGwzMi5kbGwNCitFWFBPUlRTDQorQ29uZmlnRFNOVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dvZGZveDMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dvZGZveDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NTQ4ODllCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd29kZm94MzIuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBvZGZveDMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBvZGZveDMyLmRsbA0KK0VYUE9SVFMNCitDb25maWdEU05XDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd29kcGR4MzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd29kcGR4MzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYyMjA0MzkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93b2RwZHgzMi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIG9kcGR4MzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG9kcGR4MzIuZGxsDQorRVhQT1JUUw0KK0NvbmZpZ0RTTlcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93b2R0ZXh0MzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd29kdGV4dDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZTViNTk4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd29kdGV4dDMyLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgb2R0ZXh0MzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG9kdGV4dDMyLmRsbA0KK0VYUE9SVFMNCitDb25maWdEU05XDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd29laW1wb3J0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dvZWltcG9ydC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmFmMjA5ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dvZWltcG9ydC5kZWYKQEAgLTAsMCArMSwxNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBPRUlNUE9SVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgT0VJTVBPUlQuZGxsDQorRVhQT1JUUw0KK1BlcmZvcm1JbXBvcnQNCitFeHBvcnRNZXNzYWdlcw0KK1BlcmZvcm1NaWdyYXRpb24NCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dvZW1pZ2xpYi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93b2VtaWdsaWIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgyZDQ4MDQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93b2VtaWdsaWIuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgT0VNSUdMSUIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE9FTUlHTElCLmRsbA0KK0VYUE9SVFMNCitPRTVTaW1wbGVDcmVhdGUNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dvZmZmaWx0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dvZmZmaWx0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45M2U0OGNlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd29mZmZpbHQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgT0ZGRklMVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgT0ZGRklMVC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93b2xlMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd29sZTMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ODQyMTZjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd29sZTMyLmRlZgpAQCAtMCwwICsxLDMzMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBvbGUzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgb2xlMzIuZGxsDQorRVhQT1JUUw0KK0NvVnJmQ2hlY2tUaHJlYWRTdGF0ZQ0KK0NvVnJmR2V0VGhyZWFkU3RhdGUNCitDb1ZyZlJlbGVhc2VUaHJlYWRTdGF0ZQ0KK1Byb3BWYXJpYW50Q2hhbmdlVHlwZQ0KK0JpbmRNb25pa2VyDQorQ0xJUEZPUk1BVF9Vc2VyRnJlZQ0KK0NMSVBGT1JNQVRfVXNlck1hcnNoYWwNCitDTElQRk9STUFUX1VzZXJTaXplDQorQ0xJUEZPUk1BVF9Vc2VyVW5tYXJzaGFsDQorQ0xTSURGcm9tT2xlMUNsYXNzDQorQ0xTSURGcm9tUHJvZ0lEDQorQ0xTSURGcm9tUHJvZ0lERXgNCitDTFNJREZyb21TdHJpbmcNCitDb0FkZFJlZlNlcnZlclByb2Nlc3MNCitDb0FsbG93U2V0Rm9yZWdyb3VuZFdpbmRvdw0KK0NvQnVpbGRWZXJzaW9uDQorQ29DYW5jZWxDYWxsDQorQ29Db3B5UHJveHkNCitDb0NyZWF0ZUZyZWVUaHJlYWRlZE1hcnNoYWxlcg0KK0NvQ3JlYXRlR3VpZA0KK0NvQ3JlYXRlSW5zdGFuY2UNCitDb0NyZWF0ZUluc3RhbmNlRXgNCitDb0NyZWF0ZU9iamVjdEluQ29udGV4dA0KK0NvRGVhY3RpdmF0ZU9iamVjdA0KK0NvRGlzYWJsZUNhbGxDYW5jZWxsYXRpb24NCitDb0Rpc2Nvbm5lY3RPYmplY3QNCitDb0Rvc0RhdGVUaW1lVG9GaWxlVGltZQ0KK0NvRW5hYmxlQ2FsbENhbmNlbGxhdGlvbg0KK0NvRmlsZVRpbWVOb3cNCitDb0ZpbGVUaW1lVG9Eb3NEYXRlVGltZQ0KK0NvRnJlZUFsbExpYnJhcmllcw0KK0NvRnJlZUxpYnJhcnkNCitDb0ZyZWVVbnVzZWRMaWJyYXJpZXMNCitDb0ZyZWVVbnVzZWRMaWJyYXJpZXNFeA0KK0NvR2V0QXBhcnRtZW50SUQNCitDb0dldENhbGxDb250ZXh0DQorQ29HZXRDYWxsZXJUSUQNCitDb0dldENhbmNlbE9iamVjdA0KK0NvR2V0Q2xhc3NPYmplY3QNCitDb0dldENsYXNzVmVyc2lvbg0KK0NvR2V0Q29tQ2F0YWxvZw0KK0NvR2V0Q29udGV4dFRva2VuDQorQ29HZXRDdXJyZW50TG9naWNhbFRocmVhZElkDQorQ29HZXRDdXJyZW50UHJvY2Vzcw0KK0NvR2V0RGVmYXVsdENvbnRleHQNCitDb0dldEluc3RhbmNlRnJvbUZpbGUNCitDb0dldEluc3RhbmNlRnJvbUlTdG9yYWdlDQorQ29HZXRJbnRlcmNlcHRvcg0KK0NvR2V0SW50ZXJjZXB0b3JGcm9tVHlwZUluZm8NCitDb0dldEludGVyZmFjZUFuZFJlbGVhc2VTdHJlYW0NCitDb0dldE1hbGxvYw0KK0NvR2V0TWFyc2hhbFNpemVNYXgNCitDb0dldE1vZHVsZVR5cGUNCitDb0dldE9iamVjdA0KK0NvR2V0T2JqZWN0Q29udGV4dA0KK0NvR2V0UFNDbHNpZA0KK0NvR2V0UHJvY2Vzc0lkZW50aWZpZXINCitDb0dldFN0YW5kYXJkTWFyc2hhbA0KK0NvR2V0U3RhdGUNCitDb0dldFN0ZE1hcnNoYWxFeA0KK0NvR2V0U3lzdGVtU2VjdXJpdHlQZXJtaXNzaW9ucw0KK0NvR2V0VHJlYXRBc0NsYXNzDQorQ29JbXBlcnNvbmF0ZUNsaWVudA0KK0NvSW5pdGlhbGl6ZQ0KK0NvSW5pdGlhbGl6ZUV4DQorQ29Jbml0aWFsaXplU2VjdXJpdHkNCitDb0luaXRpYWxpemVXT1cNCitDb0luc3RhbGwNCitDb0ludmFsaWRhdGVSZW1vdGVNYWNoaW5lQmluZGluZ3MNCitDb0lzSGFuZGxlckNvbm5lY3RlZA0KK0NvSXNPbGUxQ2xhc3MNCitDb0xvYWRMaWJyYXJ5DQorQ29Mb2NrT2JqZWN0RXh0ZXJuYWwNCitDb01hcnNoYWxIcmVzdWx0DQorQ29NYXJzaGFsSW50ZXJUaHJlYWRJbnRlcmZhY2VJblN0cmVhbQ0KK0NvTWFyc2hhbEludGVyZmFjZQ0KK0NvUG9wU2VydmljZURvbWFpbg0KK0NvUHVzaFNlcnZpY2VEb21haW4NCitDb1F1ZXJ5QXV0aGVudGljYXRpb25TZXJ2aWNlcw0KK0NvUXVlcnlDbGllbnRCbGFua2V0DQorQ29RdWVyeVByb3h5QmxhbmtldA0KK0NvUXVlcnlSZWxlYXNlT2JqZWN0DQorQ29SZWFjdGl2YXRlT2JqZWN0DQorQ29SZWdpc3RlckNoYW5uZWxIb29rDQorQ29SZWdpc3RlckNsYXNzT2JqZWN0DQorQ29SZWdpc3RlckluaXRpYWxpemVTcHkNCitDb1JlZ2lzdGVyTWFsbG9jU3B5DQorQ29SZWdpc3Rlck1lc3NhZ2VGaWx0ZXINCitDb1JlZ2lzdGVyUFNDbHNpZA0KK0NvUmVnaXN0ZXJTdXJyb2dhdGUNCitDb1JlZ2lzdGVyU3Vycm9nYXRlRXgNCitDb1JlbGVhc2VNYXJzaGFsRGF0YQ0KK0NvUmVsZWFzZVNlcnZlclByb2Nlc3MNCitDb1Jlc3VtZUNsYXNzT2JqZWN0cw0KK0NvUmV0aXJlU2VydmVyDQorQ29SZXZlcnRUb1NlbGYNCitDb1Jldm9rZUNsYXNzT2JqZWN0DQorQ29SZXZva2VJbml0aWFsaXplU3B5DQorQ29SZXZva2VNYWxsb2NTcHkNCitDb1NldENhbmNlbE9iamVjdA0KK0NvU2V0UHJveHlCbGFua2V0DQorQ29TZXRTdGF0ZQ0KK0NvU3VzcGVuZENsYXNzT2JqZWN0cw0KK0NvU3dpdGNoQ2FsbENvbnRleHQNCitDb1Rhc2tNZW1BbGxvYw0KK0NvVGFza01lbUZyZWUNCitDb1Rhc2tNZW1SZWFsbG9jDQorQ29UZXN0Q2FuY2VsDQorQ29UcmVhdEFzQ2xhc3MNCitDb1VuaW5pdGlhbGl6ZQ0KK0NvVW5sb2FkaW5nV09XDQorQ29Vbm1hcnNoYWxIcmVzdWx0DQorQ29Vbm1hcnNoYWxJbnRlcmZhY2UNCitDb1dhaXRGb3JNdWx0aXBsZUhhbmRsZXMNCitDb21Qc19OZHJEbGxDYW5VbmxvYWROb3cNCitDb21Qc19OZHJEbGxHZXRDbGFzc09iamVjdA0KK0NvbVBzX05kckRsbFJlZ2lzdGVyUHJveHkNCitDb21Qc19OZHJEbGxVbnJlZ2lzdGVyUHJveHkNCitDcmVhdGVBbnRpTW9uaWtlcg0KK0NyZWF0ZUJpbmRDdHgNCitDcmVhdGVDbGFzc01vbmlrZXINCitDcmVhdGVEYXRhQWR2aXNlSG9sZGVyDQorQ3JlYXRlRGF0YUNhY2hlDQorQ3JlYXRlRXJyb3JJbmZvDQorQ3JlYXRlRmlsZU1vbmlrZXINCitDcmVhdGVHZW5lcmljQ29tcG9zaXRlDQorQ3JlYXRlSUxvY2tCeXRlc09uSEdsb2JhbA0KK0NyZWF0ZUl0ZW1Nb25pa2VyDQorQ3JlYXRlT2JqcmVmTW9uaWtlcg0KK0NyZWF0ZU9sZUFkdmlzZUhvbGRlcg0KK0NyZWF0ZVBvaW50ZXJNb25pa2VyDQorQ3JlYXRlU3RkUHJvZ3Jlc3NJbmRpY2F0b3INCitDcmVhdGVTdHJlYW1PbkhHbG9iYWwNCitEY29tQ2hhbm5lbFNldEhSZXN1bHQNCitEbGxEZWJ1Z09iamVjdFJQQ0hvb2sNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbEdldENsYXNzT2JqZWN0V09XDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEb0RyYWdEcm9wDQorRW5hYmxlSG9va09iamVjdA0KK0ZtdElkVG9Qcm9wU3RnTmFtZQ0KK0ZyZWVQcm9wVmFyaWFudEFycmF5DQorR2V0Q2xhc3NGaWxlDQorR2V0Q29udmVydFN0Zw0KK0dldERvY3VtZW50Qml0U3RnDQorR2V0RXJyb3JJbmZvDQorR2V0SEdsb2JhbEZyb21JTG9ja0J5dGVzDQorR2V0SEdsb2JhbEZyb21TdHJlYW0NCitHZXRIb29rSW50ZXJmYWNlDQorR2V0UnVubmluZ09iamVjdFRhYmxlDQorSEFDQ0VMX1VzZXJGcmVlDQorSEFDQ0VMX1VzZXJNYXJzaGFsDQorSEFDQ0VMX1VzZXJTaXplDQorSEFDQ0VMX1VzZXJVbm1hcnNoYWwNCitIQklUTUFQX1VzZXJGcmVlDQorSEJJVE1BUF9Vc2VyTWFyc2hhbA0KK0hCSVRNQVBfVXNlclNpemUNCitIQklUTUFQX1VzZXJVbm1hcnNoYWwNCitIQlJVU0hfVXNlckZyZWUNCitIQlJVU0hfVXNlck1hcnNoYWwNCitIQlJVU0hfVXNlclNpemUNCitIQlJVU0hfVXNlclVubWFyc2hhbA0KK0hEQ19Vc2VyRnJlZQ0KK0hEQ19Vc2VyTWFyc2hhbA0KK0hEQ19Vc2VyU2l6ZQ0KK0hEQ19Vc2VyVW5tYXJzaGFsDQorSEVOSE1FVEFGSUxFX1VzZXJGcmVlDQorSEVOSE1FVEFGSUxFX1VzZXJNYXJzaGFsDQorSEVOSE1FVEFGSUxFX1VzZXJTaXplDQorSEVOSE1FVEFGSUxFX1VzZXJVbm1hcnNoYWwNCitIR0xPQkFMX1VzZXJGcmVlDQorSEdMT0JBTF9Vc2VyTWFyc2hhbA0KK0hHTE9CQUxfVXNlclNpemUNCitIR0xPQkFMX1VzZXJVbm1hcnNoYWwNCitISUNPTl9Vc2VyRnJlZQ0KK0hJQ09OX1VzZXJNYXJzaGFsDQorSElDT05fVXNlclNpemUNCitISUNPTl9Vc2VyVW5tYXJzaGFsDQorSE1FTlVfVXNlckZyZWUNCitITUVOVV9Vc2VyTWFyc2hhbA0KK0hNRU5VX1VzZXJTaXplDQorSE1FTlVfVXNlclVubWFyc2hhbA0KK0hNRVRBRklMRVBJQ1RfVXNlckZyZWUNCitITUVUQUZJTEVQSUNUX1VzZXJNYXJzaGFsDQorSE1FVEFGSUxFUElDVF9Vc2VyU2l6ZQ0KK0hNRVRBRklMRVBJQ1RfVXNlclVubWFyc2hhbA0KK0hNRVRBRklMRV9Vc2VyRnJlZQ0KK0hNRVRBRklMRV9Vc2VyTWFyc2hhbA0KK0hNRVRBRklMRV9Vc2VyU2l6ZQ0KK0hNRVRBRklMRV9Vc2VyVW5tYXJzaGFsDQorSFBBTEVUVEVfVXNlckZyZWUNCitIUEFMRVRURV9Vc2VyTWFyc2hhbA0KK0hQQUxFVFRFX1VzZXJTaXplDQorSFBBTEVUVEVfVXNlclVubWFyc2hhbA0KK0hXTkRfVXNlckZyZWUNCitIV05EX1VzZXJNYXJzaGFsDQorSFdORF9Vc2VyU2l6ZQ0KK0hXTkRfVXNlclVubWFyc2hhbA0KK0hrT2xlUmVnaXN0ZXJPYmplY3QNCitJSURGcm9tU3RyaW5nDQorSXNBY2NlbGVyYXRvcg0KK0lzRXF1YWxHVUlEDQorSXNWYWxpZElpZA0KK0lzVmFsaWRJbnRlcmZhY2UNCitJc1ZhbGlkUHRySW4NCitJc1ZhbGlkUHRyT3V0DQorTWtQYXJzZURpc3BsYXlOYW1lDQorTW9uaWtlckNvbW1vblByZWZpeFdpdGgNCitNb25pa2VyUmVsYXRpdmVQYXRoVG8NCitPbGVCdWlsZFZlcnNpb24NCitPbGVDb252ZXJ0SVN0b3JhZ2VUb09MRVNUUkVBTQ0KK09sZUNvbnZlcnRJU3RvcmFnZVRvT0xFU1RSRUFNRXgNCitPbGVDb252ZXJ0T0xFU1RSRUFNVG9JU3RvcmFnZQ0KK09sZUNvbnZlcnRPTEVTVFJFQU1Ub0lTdG9yYWdlRXgNCitPbGVDcmVhdGUNCitPbGVDcmVhdGVEZWZhdWx0SGFuZGxlcg0KK09sZUNyZWF0ZUVtYmVkZGluZ0hlbHBlcg0KK09sZUNyZWF0ZUV4DQorT2xlQ3JlYXRlRnJvbURhdGENCitPbGVDcmVhdGVGcm9tRGF0YUV4DQorT2xlQ3JlYXRlRnJvbUZpbGUNCitPbGVDcmVhdGVGcm9tRmlsZUV4DQorT2xlQ3JlYXRlTGluaw0KK09sZUNyZWF0ZUxpbmtFeA0KK09sZUNyZWF0ZUxpbmtGcm9tRGF0YQ0KK09sZUNyZWF0ZUxpbmtGcm9tRGF0YUV4DQorT2xlQ3JlYXRlTGlua1RvRmlsZQ0KK09sZUNyZWF0ZUxpbmtUb0ZpbGVFeA0KK09sZUNyZWF0ZU1lbnVEZXNjcmlwdG9yDQorT2xlQ3JlYXRlU3RhdGljRnJvbURhdGENCitPbGVEZXN0cm95TWVudURlc2NyaXB0b3INCitPbGVEb0F1dG9Db252ZXJ0DQorT2xlRHJhdw0KK09sZUR1cGxpY2F0ZURhdGENCitPbGVGbHVzaENsaXBib2FyZA0KK09sZUdldEF1dG9Db252ZXJ0DQorT2xlR2V0Q2xpcGJvYXJkDQorT2xlR2V0SWNvbk9mQ2xhc3MNCitPbGVHZXRJY29uT2ZGaWxlDQorT2xlSW5pdGlhbGl6ZQ0KK09sZUluaXRpYWxpemVXT1cNCitPbGVJc0N1cnJlbnRDbGlwYm9hcmQNCitPbGVJc1J1bm5pbmcNCitPbGVMb2FkDQorT2xlTG9hZEZyb21TdHJlYW0NCitPbGVMb2NrUnVubmluZw0KK09sZU1ldGFmaWxlUGljdEZyb21JY29uQW5kTGFiZWwNCitPbGVOb3RlT2JqZWN0VmlzaWJsZQ0KK09sZVF1ZXJ5Q3JlYXRlRnJvbURhdGENCitPbGVRdWVyeUxpbmtGcm9tRGF0YQ0KK09sZVJlZ0VudW1Gb3JtYXRFdGMNCitPbGVSZWdFbnVtVmVyYnMNCitPbGVSZWdHZXRNaXNjU3RhdHVzDQorT2xlUmVnR2V0VXNlclR5cGUNCitPbGVSdW4NCitPbGVTYXZlDQorT2xlU2F2ZVRvU3RyZWFtDQorT2xlU2V0QXV0b0NvbnZlcnQNCitPbGVTZXRDbGlwYm9hcmQNCitPbGVTZXRDb250YWluZWRPYmplY3QNCitPbGVTZXRNZW51RGVzY3JpcHRvcg0KK09sZVRyYW5zbGF0ZUFjY2VsZXJhdG9yDQorT2xlVW5pbml0aWFsaXplDQorT3Blbk9yQ3JlYXRlU3RyZWFtDQorUHJvZ0lERnJvbUNMU0lEDQorUHJvcFN0Z05hbWVUb0ZtdElkDQorUHJvcFN5c0FsbG9jU3RyaW5nDQorUHJvcFN5c0ZyZWVTdHJpbmcNCitQcm9wVmFyaWFudENsZWFyDQorUHJvcFZhcmlhbnRDb3B5DQorUmVhZENsYXNzU3RnDQorUmVhZENsYXNzU3RtDQorUmVhZEZtdFVzZXJUeXBlU3RnDQorUmVhZE9sZVN0Zw0KK1JlYWRTdHJpbmdTdHJlYW0NCitSZWdpc3RlckRyYWdEcm9wDQorUmVsZWFzZVN0Z01lZGl1bQ0KK1Jldm9rZURyYWdEcm9wDQorU05CX1VzZXJGcmVlDQorU05CX1VzZXJNYXJzaGFsDQorU05CX1VzZXJTaXplDQorU05CX1VzZXJVbm1hcnNoYWwNCitTVEdNRURJVU1fVXNlckZyZWUNCitTVEdNRURJVU1fVXNlck1hcnNoYWwNCitTVEdNRURJVU1fVXNlclNpemUNCitTVEdNRURJVU1fVXNlclVubWFyc2hhbA0KK1NldENvbnZlcnRTdGcNCitTZXREb2N1bWVudEJpdFN0Zw0KK1NldEVycm9ySW5mbw0KK1N0Z0NvbnZlcnRQcm9wZXJ0eVRvVmFyaWFudA0KK1N0Z0NvbnZlcnRWYXJpYW50VG9Qcm9wZXJ0eQ0KK1N0Z0NyZWF0ZURvY2ZpbGUNCitTdGdDcmVhdGVEb2NmaWxlT25JTG9ja0J5dGVzDQorU3RnQ3JlYXRlUHJvcFNldFN0Zw0KK1N0Z0NyZWF0ZVByb3BTdGcNCitTdGdDcmVhdGVTdG9yYWdlRXgNCitTdGdHZXRJRmlsbExvY2tCeXRlc09uRmlsZQ0KK1N0Z0dldElGaWxsTG9ja0J5dGVzT25JTG9ja0J5dGVzDQorU3RnSXNTdG9yYWdlRmlsZQ0KK1N0Z0lzU3RvcmFnZUlMb2NrQnl0ZXMNCitTdGdPcGVuQXN5bmNEb2NmaWxlT25JRmlsbExvY2tCeXRlcw0KK1N0Z09wZW5Qcm9wU3RnDQorU3RnT3BlblN0b3JhZ2UNCitTdGdPcGVuU3RvcmFnZUV4DQorU3RnT3BlblN0b3JhZ2VPbkhhbmRsZQ0KK1N0Z09wZW5TdG9yYWdlT25JTG9ja0J5dGVzDQorU3RnUHJvcGVydHlMZW5ndGhBc1ZhcmlhbnQNCitTdGdTZXRUaW1lcw0KK1N0cmluZ0Zyb21DTFNJRA0KK1N0cmluZ0Zyb21HVUlEMg0KK1N0cmluZ0Zyb21JSUQNCitVcGRhdGVEQ09NU2V0dGluZ3MNCitVdENvbnZlcnREdnRkMTZ0b0R2dGQzMg0KK1V0Q29udmVydER2dGQzMnRvRHZ0ZDE2DQorVXRHZXREdnRkMTZJbmZvDQorVXRHZXREdnRkMzJJbmZvDQorV2R0cEludGVyZmFjZVBvaW50ZXJfVXNlckZyZWUNCitXZHRwSW50ZXJmYWNlUG9pbnRlcl9Vc2VyTWFyc2hhbA0KK1dkdHBJbnRlcmZhY2VQb2ludGVyX1VzZXJTaXplDQorV2R0cEludGVyZmFjZVBvaW50ZXJfVXNlclVubWFyc2hhbA0KK1dyaXRlQ2xhc3NTdGcNCitXcml0ZUNsYXNzU3RtDQorV3JpdGVGbXRVc2VyVHlwZVN0Zw0KK1dyaXRlT2xlU3RnDQorV3JpdGVTdHJpbmdTdHJlYW0NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93b2xlYWNjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dvbGVhY2MuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQzYzRkYzEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93b2xlYWNjLmRlZgpAQCAtMCwwICsxLDMwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE9MRUFDQy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgT0xFQUNDLmRsbA0KK0VYUE9SVFMNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitBY2Nlc3NpYmxlQ2hpbGRyZW4NCitBY2Nlc3NpYmxlT2JqZWN0RnJvbUV2ZW50DQorQWNjZXNzaWJsZU9iamVjdEZyb21Qb2ludA0KK0FjY2Vzc2libGVPYmplY3RGcm9tV2luZG93DQorQ3JlYXRlU3RkQWNjZXNzaWJsZU9iamVjdA0KK0NyZWF0ZVN0ZEFjY2Vzc2libGVQcm94eUENCitDcmVhdGVTdGRBY2Nlc3NpYmxlUHJveHlXDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitHZXRPbGVhY2NWZXJzaW9uSW5mbw0KK0dldFJvbGVUZXh0QQ0KK0dldFJvbGVUZXh0Vw0KK0dldFN0YXRlVGV4dEENCitHZXRTdGF0ZVRleHRXDQorSUlEX0lBY2Nlc3NpYmxlDQorSUlEX0lBY2Nlc3NpYmxlSGFuZGxlcg0KK0xJQklEX0FjY2Vzc2liaWxpdHkNCitMcmVzdWx0RnJvbU9iamVjdA0KK09iamVjdEZyb21McmVzdWx0DQorV2luZG93RnJvbUFjY2Vzc2libGVPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93b2xlYXV0MzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd29sZWF1dDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMmQwM2U2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd29sZWF1dDMyLmRlZgpAQCAtMCwwICsxLDQwNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBPTEVBVVQzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgT0xFQVVUMzIuZGxsDQorRVhQT1JUUw0KK1N5c0FsbG9jU3RyaW5nDQorU3lzUmVBbGxvY1N0cmluZw0KK1N5c0FsbG9jU3RyaW5nTGVuDQorU3lzUmVBbGxvY1N0cmluZ0xlbg0KK1N5c0ZyZWVTdHJpbmcNCitTeXNTdHJpbmdMZW4NCitWYXJpYW50SW5pdA0KK1ZhcmlhbnRDbGVhcg0KK1ZhcmlhbnRDb3B5DQorVmFyaWFudENvcHlJbmQNCitWYXJpYW50Q2hhbmdlVHlwZQ0KK1ZhcmlhbnRUaW1lVG9Eb3NEYXRlVGltZQ0KK0Rvc0RhdGVUaW1lVG9WYXJpYW50VGltZQ0KK1NhZmVBcnJheUNyZWF0ZQ0KK1NhZmVBcnJheURlc3Ryb3kNCitTYWZlQXJyYXlHZXREaW0NCitTYWZlQXJyYXlHZXRFbGVtc2l6ZQ0KK1NhZmVBcnJheUdldFVCb3VuZA0KK1NhZmVBcnJheUdldExCb3VuZA0KK1NhZmVBcnJheUxvY2sNCitTYWZlQXJyYXlVbmxvY2sNCitTYWZlQXJyYXlBY2Nlc3NEYXRhDQorU2FmZUFycmF5VW5hY2Nlc3NEYXRhDQorU2FmZUFycmF5R2V0RWxlbWVudA0KK1NhZmVBcnJheVB1dEVsZW1lbnQNCitTYWZlQXJyYXlDb3B5DQorRGlzcEdldFBhcmFtDQorRGlzcEdldElEc09mTmFtZXMNCitEaXNwSW52b2tlDQorQ3JlYXRlRGlzcFR5cGVJbmZvDQorQ3JlYXRlU3RkRGlzcGF0Y2gNCitSZWdpc3RlckFjdGl2ZU9iamVjdA0KK1Jldm9rZUFjdGl2ZU9iamVjdA0KK0dldEFjdGl2ZU9iamVjdA0KK1NhZmVBcnJheUFsbG9jRGVzY3JpcHRvcg0KK1NhZmVBcnJheUFsbG9jRGF0YQ0KK1NhZmVBcnJheURlc3Ryb3lEZXNjcmlwdG9yDQorU2FmZUFycmF5RGVzdHJveURhdGENCitTYWZlQXJyYXlSZWRpbQ0KK1NhZmVBcnJheUFsbG9jRGVzY3JpcHRvckV4DQorU2FmZUFycmF5Q3JlYXRlRXgNCitTYWZlQXJyYXlDcmVhdGVWZWN0b3JFeA0KK1NhZmVBcnJheVNldFJlY29yZEluZm8NCitTYWZlQXJyYXlHZXRSZWNvcmRJbmZvDQorVmFyUGFyc2VOdW1Gcm9tU3RyDQorVmFyTnVtRnJvbVBhcnNlTnVtDQorVmFySTJGcm9tVUkxDQorVmFySTJGcm9tSTQNCitWYXJJMkZyb21SNA0KK1ZhckkyRnJvbVI4DQorVmFySTJGcm9tQ3kNCitWYXJJMkZyb21EYXRlDQorVmFySTJGcm9tU3RyDQorVmFySTJGcm9tRGlzcA0KK1ZhckkyRnJvbUJvb2wNCitTYWZlQXJyYXlTZXRJSUQNCitWYXJJNEZyb21VSTENCitWYXJJNEZyb21JMg0KK1Zhckk0RnJvbVI0DQorVmFySTRGcm9tUjgNCitWYXJJNEZyb21DeQ0KK1Zhckk0RnJvbURhdGUNCitWYXJJNEZyb21TdHINCitWYXJJNEZyb21EaXNwDQorVmFySTRGcm9tQm9vbA0KK1NhZmVBcnJheUdldElJRA0KK1ZhclI0RnJvbVVJMQ0KK1ZhclI0RnJvbUkyDQorVmFyUjRGcm9tSTQNCitWYXJSNEZyb21SOA0KK1ZhclI0RnJvbUN5DQorVmFyUjRGcm9tRGF0ZQ0KK1ZhclI0RnJvbVN0cg0KK1ZhclI0RnJvbURpc3ANCitWYXJSNEZyb21Cb29sDQorU2FmZUFycmF5R2V0VmFydHlwZQ0KK1ZhclI4RnJvbVVJMQ0KK1ZhclI4RnJvbUkyDQorVmFyUjhGcm9tSTQNCitWYXJSOEZyb21SNA0KK1ZhclI4RnJvbUN5DQorVmFyUjhGcm9tRGF0ZQ0KK1ZhclI4RnJvbVN0cg0KK1ZhclI4RnJvbURpc3ANCitWYXJSOEZyb21Cb29sDQorVmFyRm9ybWF0DQorVmFyRGF0ZUZyb21VSTENCitWYXJEYXRlRnJvbUkyDQorVmFyRGF0ZUZyb21JNA0KK1ZhckRhdGVGcm9tUjQNCitWYXJEYXRlRnJvbVI4DQorVmFyRGF0ZUZyb21DeQ0KK1ZhckRhdGVGcm9tU3RyDQorVmFyRGF0ZUZyb21EaXNwDQorVmFyRGF0ZUZyb21Cb29sDQorVmFyRm9ybWF0RGF0ZVRpbWUNCitWYXJDeUZyb21VSTENCitWYXJDeUZyb21JMg0KK1ZhckN5RnJvbUk0DQorVmFyQ3lGcm9tUjQNCitWYXJDeUZyb21SOA0KK1ZhckN5RnJvbURhdGUNCitWYXJDeUZyb21TdHINCitWYXJDeUZyb21EaXNwDQorVmFyQ3lGcm9tQm9vbA0KK1ZhckZvcm1hdE51bWJlcg0KK1ZhckJzdHJGcm9tVUkxDQorVmFyQnN0ckZyb21JMg0KK1ZhckJzdHJGcm9tSTQNCitWYXJCc3RyRnJvbVI0DQorVmFyQnN0ckZyb21SOA0KK1ZhckJzdHJGcm9tQ3kNCitWYXJCc3RyRnJvbURhdGUNCitWYXJCc3RyRnJvbURpc3ANCitWYXJCc3RyRnJvbUJvb2wNCitWYXJGb3JtYXRQZXJjZW50DQorVmFyQm9vbEZyb21VSTENCitWYXJCb29sRnJvbUkyDQorVmFyQm9vbEZyb21JNA0KK1ZhckJvb2xGcm9tUjQNCitWYXJCb29sRnJvbVI4DQorVmFyQm9vbEZyb21EYXRlDQorVmFyQm9vbEZyb21DeQ0KK1ZhckJvb2xGcm9tU3RyDQorVmFyQm9vbEZyb21EaXNwDQorVmFyRm9ybWF0Q3VycmVuY3kNCitWYXJXZWVrZGF5TmFtZQ0KK1Zhck1vbnRoTmFtZQ0KK1ZhclVJMUZyb21JMg0KK1ZhclVJMUZyb21JNA0KK1ZhclVJMUZyb21SNA0KK1ZhclVJMUZyb21SOA0KK1ZhclVJMUZyb21DeQ0KK1ZhclVJMUZyb21EYXRlDQorVmFyVUkxRnJvbVN0cg0KK1ZhclVJMUZyb21EaXNwDQorVmFyVUkxRnJvbUJvb2wNCitWYXJGb3JtYXRGcm9tVG9rZW5zDQorVmFyVG9rZW5pemVGb3JtYXRTdHJpbmcNCitWYXJBZGQNCitWYXJBbmQNCitWYXJEaXYNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0Rpc3BDYWxsRnVuYw0KK1ZhcmlhbnRDaGFuZ2VUeXBlRXgNCitTYWZlQXJyYXlQdHJPZkluZGV4DQorU3lzU3RyaW5nQnl0ZUxlbg0KK1N5c0FsbG9jU3RyaW5nQnl0ZUxlbg0KK0RsbFJlZ2lzdGVyU2VydmVyDQorVmFyRXF2DQorVmFySWRpdg0KK1ZhckltcA0KK1Zhck1vZA0KK1Zhck11bA0KK1Zhck9yDQorVmFyUG93DQorVmFyU3ViDQorQ3JlYXRlVHlwZUxpYg0KK0xvYWRUeXBlTGliDQorTG9hZFJlZ1R5cGVMaWINCitSZWdpc3RlclR5cGVMaWINCitRdWVyeVBhdGhPZlJlZ1R5cGVMaWINCitMSGFzaFZhbE9mTmFtZVN5cw0KK0xIYXNoVmFsT2ZOYW1lU3lzQQ0KK1Zhclhvcg0KK1ZhckFicw0KK1ZhckZpeA0KK09hQnVpbGRWZXJzaW9uDQorQ2xlYXJDdXN0RGF0YQ0KK1ZhckludA0KK1Zhck5lZw0KK1Zhck5vdA0KK1ZhclJvdW5kDQorVmFyQ21wDQorVmFyRGVjQWRkDQorVmFyRGVjRGl2DQorVmFyRGVjTXVsDQorQ3JlYXRlVHlwZUxpYjINCitWYXJEZWNTdWINCitWYXJEZWNBYnMNCitMb2FkVHlwZUxpYkV4DQorU3lzdGVtVGltZVRvVmFyaWFudFRpbWUNCitWYXJpYW50VGltZVRvU3lzdGVtVGltZQ0KK1VuUmVnaXN0ZXJUeXBlTGliDQorVmFyRGVjRml4DQorVmFyRGVjSW50DQorVmFyRGVjTmVnDQorVmFyRGVjRnJvbVVJMQ0KK1ZhckRlY0Zyb21JMg0KK1ZhckRlY0Zyb21JNA0KK1ZhckRlY0Zyb21SNA0KK1ZhckRlY0Zyb21SOA0KK1ZhckRlY0Zyb21EYXRlDQorVmFyRGVjRnJvbUN5DQorVmFyRGVjRnJvbVN0cg0KK1ZhckRlY0Zyb21EaXNwDQorVmFyRGVjRnJvbUJvb2wNCitHZXRFcnJvckluZm8NCitTZXRFcnJvckluZm8NCitDcmVhdGVFcnJvckluZm8NCitWYXJEZWNSb3VuZA0KK1ZhckRlY0NtcA0KK1ZhckkyRnJvbUkxDQorVmFySTJGcm9tVUkyDQorVmFySTJGcm9tVUk0DQorVmFySTJGcm9tRGVjDQorVmFySTRGcm9tSTENCitWYXJJNEZyb21VSTINCitWYXJJNEZyb21VSTQNCitWYXJJNEZyb21EZWMNCitWYXJSNEZyb21JMQ0KK1ZhclI0RnJvbVVJMg0KK1ZhclI0RnJvbVVJNA0KK1ZhclI0RnJvbURlYw0KK1ZhclI4RnJvbUkxDQorVmFyUjhGcm9tVUkyDQorVmFyUjhGcm9tVUk0DQorVmFyUjhGcm9tRGVjDQorVmFyRGF0ZUZyb21JMQ0KK1ZhckRhdGVGcm9tVUkyDQorVmFyRGF0ZUZyb21VSTQNCitWYXJEYXRlRnJvbURlYw0KK1ZhckN5RnJvbUkxDQorVmFyQ3lGcm9tVUkyDQorVmFyQ3lGcm9tVUk0DQorVmFyQ3lGcm9tRGVjDQorVmFyQnN0ckZyb21JMQ0KK1ZhckJzdHJGcm9tVUkyDQorVmFyQnN0ckZyb21VSTQNCitWYXJCc3RyRnJvbURlYw0KK1ZhckJvb2xGcm9tSTENCitWYXJCb29sRnJvbVVJMg0KK1ZhckJvb2xGcm9tVUk0DQorVmFyQm9vbEZyb21EZWMNCitWYXJVSTFGcm9tSTENCitWYXJVSTFGcm9tVUkyDQorVmFyVUkxRnJvbVVJNA0KK1ZhclVJMUZyb21EZWMNCitWYXJEZWNGcm9tSTENCitWYXJEZWNGcm9tVUkyDQorVmFyRGVjRnJvbVVJNA0KK1ZhckkxRnJvbVVJMQ0KK1ZhckkxRnJvbUkyDQorVmFySTFGcm9tSTQNCitWYXJJMUZyb21SNA0KK1ZhckkxRnJvbVI4DQorVmFySTFGcm9tRGF0ZQ0KK1ZhckkxRnJvbUN5DQorVmFySTFGcm9tU3RyDQorVmFySTFGcm9tRGlzcA0KK1ZhckkxRnJvbUJvb2wNCitWYXJJMUZyb21VSTINCitWYXJJMUZyb21VSTQNCitWYXJJMUZyb21EZWMNCitWYXJVSTJGcm9tVUkxDQorVmFyVUkyRnJvbUkyDQorVmFyVUkyRnJvbUk0DQorVmFyVUkyRnJvbVI0DQorVmFyVUkyRnJvbVI4DQorVmFyVUkyRnJvbURhdGUNCitWYXJVSTJGcm9tQ3kNCitWYXJVSTJGcm9tU3RyDQorVmFyVUkyRnJvbURpc3ANCitWYXJVSTJGcm9tQm9vbA0KK1ZhclVJMkZyb21JMQ0KK1ZhclVJMkZyb21VSTQNCitWYXJVSTJGcm9tRGVjDQorVmFyVUk0RnJvbVVJMQ0KK1ZhclVJNEZyb21JMg0KK1ZhclVJNEZyb21JNA0KK1ZhclVJNEZyb21SNA0KK1ZhclVJNEZyb21SOA0KK1ZhclVJNEZyb21EYXRlDQorVmFyVUk0RnJvbUN5DQorVmFyVUk0RnJvbVN0cg0KK1ZhclVJNEZyb21EaXNwDQorVmFyVUk0RnJvbUJvb2wNCitWYXJVSTRGcm9tSTENCitWYXJVSTRGcm9tVUkyDQorVmFyVUk0RnJvbURlYw0KK0JTVFJfVXNlclNpemUNCitCU1RSX1VzZXJNYXJzaGFsDQorQlNUUl9Vc2VyVW5tYXJzaGFsDQorQlNUUl9Vc2VyRnJlZQ0KK1ZBUklBTlRfVXNlclNpemUNCitWQVJJQU5UX1VzZXJNYXJzaGFsDQorVkFSSUFOVF9Vc2VyVW5tYXJzaGFsDQorVkFSSUFOVF9Vc2VyRnJlZQ0KK0xQU0FGRUFSUkFZX1VzZXJTaXplDQorTFBTQUZFQVJSQVlfVXNlck1hcnNoYWwNCitMUFNBRkVBUlJBWV9Vc2VyVW5tYXJzaGFsDQorTFBTQUZFQVJSQVlfVXNlckZyZWUNCitMUFNBRkVBUlJBWV9TaXplDQorTFBTQUZFQVJSQVlfTWFyc2hhbA0KK0xQU0FGRUFSUkFZX1VubWFyc2hhbA0KK1ZhckRlY0NtcFI4DQorVmFyQ3lBZGQNCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorT0FDcmVhdGVUeXBlTGliMg0KK1ZhckN5TXVsDQorVmFyQ3lNdWxJNA0KK1ZhckN5U3ViDQorVmFyQ3lBYnMNCitWYXJDeUZpeA0KK1ZhckN5SW50DQorVmFyQ3lOZWcNCitWYXJDeVJvdW5kDQorVmFyQ3lDbXANCitWYXJDeUNtcFI4DQorVmFyQnN0ckNhdA0KK1ZhckJzdHJDbXANCitWYXJSOFBvdw0KK1ZhclI0Q21wUjgNCitWYXJSOFJvdW5kDQorVmFyQ2F0DQorVmFyRGF0ZUZyb21VZGF0ZUV4DQorR2V0UmVjb3JkSW5mb0Zyb21HdWlkcw0KK0dldFJlY29yZEluZm9Gcm9tVHlwZUluZm8NCitTZXRWYXJDb252ZXJzaW9uTG9jYWxlU2V0dGluZw0KK0dldFZhckNvbnZlcnNpb25Mb2NhbGVTZXR0aW5nDQorU2V0T2FOb0NhY2hlDQorVmFyQ3lNdWxJOA0KK1ZhckRhdGVGcm9tVWRhdGUNCitWYXJVZGF0ZUZyb21EYXRlDQorR2V0QWx0TW9udGhOYW1lcw0KK1Zhckk4RnJvbVVJMQ0KK1Zhckk4RnJvbUkyDQorVmFySThGcm9tUjQNCitWYXJJOEZyb21SOA0KK1Zhckk4RnJvbUN5DQorVmFySThGcm9tRGF0ZQ0KK1Zhckk4RnJvbVN0cg0KK1Zhckk4RnJvbURpc3ANCitWYXJJOEZyb21Cb29sDQorVmFySThGcm9tSTENCitWYXJJOEZyb21VSTINCitWYXJJOEZyb21VSTQNCitWYXJJOEZyb21EZWMNCitWYXJJMkZyb21JOA0KK1ZhckkyRnJvbVVJOA0KK1Zhckk0RnJvbUk4DQorVmFySTRGcm9tVUk4DQorVmFyUjRGcm9tSTgNCitWYXJSNEZyb21VSTgNCitWYXJSOEZyb21JOA0KK1ZhclI4RnJvbVVJOA0KK1ZhckRhdGVGcm9tSTgNCitWYXJEYXRlRnJvbVVJOA0KK1ZhckN5RnJvbUk4DQorVmFyQ3lGcm9tVUk4DQorVmFyQnN0ckZyb21JOA0KK1ZhckJzdHJGcm9tVUk4DQorVmFyQm9vbEZyb21JOA0KK1ZhckJvb2xGcm9tVUk4DQorVmFyVUkxRnJvbUk4DQorVmFyVUkxRnJvbVVJOA0KK1ZhckRlY0Zyb21JOA0KK1ZhckRlY0Zyb21VSTgNCitWYXJJMUZyb21JOA0KK1ZhckkxRnJvbVVJOA0KK1ZhclVJMkZyb21JOA0KK1ZhclVJMkZyb21VSTgNCitPbGVMb2FkUGljdHVyZUV4DQorT2xlTG9hZFBpY3R1cmVGaWxlRXgNCitTYWZlQXJyYXlDcmVhdGVWZWN0b3INCitTYWZlQXJyYXlDb3B5RGF0YQ0KK1ZlY3RvckZyb21Cc3RyDQorQnN0ckZyb21WZWN0b3INCitPbGVJY29uVG9DdXJzb3INCitPbGVDcmVhdGVQcm9wZXJ0eUZyYW1lSW5kaXJlY3QNCitPbGVDcmVhdGVQcm9wZXJ0eUZyYW1lDQorT2xlTG9hZFBpY3R1cmUNCitPbGVDcmVhdGVQaWN0dXJlSW5kaXJlY3QNCitPbGVDcmVhdGVGb250SW5kaXJlY3QNCitPbGVUcmFuc2xhdGVDb2xvcg0KK09sZUxvYWRQaWN0dXJlRmlsZQ0KK09sZVNhdmVQaWN0dXJlRmlsZQ0KK09sZUxvYWRQaWN0dXJlUGF0aA0KK1ZhclVJNEZyb21JOA0KK1ZhclVJNEZyb21VSTgNCitWYXJJOEZyb21VSTgNCitWYXJVSThGcm9tSTgNCitWYXJVSThGcm9tVUkxDQorVmFyVUk4RnJvbUkyDQorVmFyVUk4RnJvbVI0DQorVmFyVUk4RnJvbVI4DQorVmFyVUk4RnJvbUN5DQorVmFyVUk4RnJvbURhdGUNCitWYXJVSThGcm9tU3RyDQorVmFyVUk4RnJvbURpc3ANCitWYXJVSThGcm9tQm9vbA0KK1ZhclVJOEZyb21JMQ0KK1ZhclVJOEZyb21VSTINCitWYXJVSThGcm9tVUk0DQorVmFyVUk4RnJvbURlYw0KK1JlZ2lzdGVyVHlwZUxpYkZvclVzZXINCitVblJlZ2lzdGVyVHlwZUxpYkZvclVzZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93b2xlY2xpMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd29sZWNsaTMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZWFkZTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd29sZWNsaTMyLmRlZgpAQCAtMCwwICsxLDE4NiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBPTEVDTEkzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgT0xFQ0xJMzIuZGxsDQorRVhQT1JUUw0KK1dFUA0KK09sZURlbGV0ZQ0KK09sZVNhdmVUb1N0cmVhbQ0KK09sZUxvYWRGcm9tU3RyZWFtDQorT2xlQ2xvbmUNCitPbGVDb3B5RnJvbUxpbmsNCitPbGVFcXVhbA0KK09sZVF1ZXJ5TGlua0Zyb21DbGlwDQorT2xlUXVlcnlDcmVhdGVGcm9tQ2xpcA0KK09sZUNyZWF0ZUxpbmtGcm9tQ2xpcA0KK09sZUNyZWF0ZUZyb21DbGlwDQorT2xlQ29weVRvQ2xpcGJvYXJkDQorT2xlUXVlcnlUeXBlDQorT2xlU2V0SG9zdE5hbWVzDQorT2xlU2V0VGFyZ2V0RGV2aWNlDQorT2xlU2V0Qm91bmRzDQorT2xlUXVlcnlCb3VuZHMNCitPbGVEcmF3DQorT2xlUXVlcnlPcGVuDQorT2xlQWN0aXZhdGUNCitPbGVVcGRhdGUNCitPbGVSZWNvbm5lY3QNCitPbGVHZXRMaW5rVXBkYXRlT3B0aW9ucw0KK09sZVNldExpbmtVcGRhdGVPcHRpb25zDQorT2xlRW51bUZvcm1hdHMNCitPbGVDbG9zZQ0KK09sZUdldERhdGENCitPbGVTZXREYXRhDQorT2xlUXVlcnlQcm90b2NvbA0KK09sZVF1ZXJ5T3V0T2ZEYXRlDQorT2xlT2JqZWN0Q29udmVydA0KK09sZUNyZWF0ZUZyb21UZW1wbGF0ZQ0KK09sZUNyZWF0ZQ0KK09sZVF1ZXJ5UmVsZWFzZVN0YXR1cw0KK09sZVF1ZXJ5UmVsZWFzZUVycm9yDQorT2xlUXVlcnlSZWxlYXNlTWV0aG9kDQorT2xlQ3JlYXRlRnJvbUZpbGUNCitPbGVDcmVhdGVMaW5rRnJvbUZpbGUNCitPbGVSZWxlYXNlDQorT2xlUmVnaXN0ZXJDbGllbnREb2MNCitPbGVSZXZva2VDbGllbnREb2MNCitPbGVSZW5hbWVDbGllbnREb2MNCitPbGVSZXZlcnRDbGllbnREb2MNCitPbGVTYXZlZENsaWVudERvYw0KK09sZVJlbmFtZQ0KK09sZUVudW1PYmplY3RzDQorT2xlUXVlcnlOYW1lDQorT2xlU2V0Q29sb3JTY2hlbWUNCitPbGVSZXF1ZXN0RGF0YQ0KK09sZUxvY2tTZXJ2ZXINCitPbGVVbmxvY2tTZXJ2ZXINCitPbGVRdWVyeVNpemUNCitPbGVFeGVjdXRlDQorT2xlQ3JlYXRlSW52aXNpYmxlDQorT2xlUXVlcnlDbGllbnRWZXJzaW9uDQorT2xlSXNEY01ldGENCitEb2NXbmRQcm9jDQorU3J2clduZFByb2MNCitNZkNhbGxiYWNrRnVuYw0KK0RlZkxvYWRGcm9tU3RyZWFtDQorRGVmQ3JlYXRlRnJvbUNsaXANCitEZWZDcmVhdGVMaW5rRnJvbUNsaXANCitEZWZDcmVhdGVGcm9tVGVtcGxhdGUNCitEZWZDcmVhdGUNCitEZWZDcmVhdGVGcm9tRmlsZQ0KK0RlZkNyZWF0ZUxpbmtGcm9tRmlsZQ0KK0RlZkNyZWF0ZUludmlzaWJsZQ0KK0xlUmVsZWFzZQ0KK0xlU2hvdw0KK0xlR2V0RGF0YQ0KK0xlU2V0RGF0YQ0KK0xlU2V0SG9zdE5hbWVzDQorTGVTZXRUYXJnZXREZXZpY2UNCitMZVNldEJvdW5kcw0KK0xlU2F2ZVRvU3RyZWFtDQorTGVDbG9uZQ0KK0xlQ29weUZyb21MaW5rDQorTGVFcXVhbA0KK0xlQ29weQ0KK0xlUXVlcnlUeXBlDQorTGVRdWVyeUJvdW5kcw0KK0xlRHJhdw0KK0xlUXVlcnlPcGVuDQorTGVBY3RpdmF0ZQ0KK0xlVXBkYXRlDQorTGVSZWNvbm5lY3QNCitMZUVudW1Gb3JtYXQNCitMZVF1ZXJ5UHJvdG9jb2wNCitMZVF1ZXJ5T3V0T2ZEYXRlDQorTGVPYmplY3RDb252ZXJ0DQorTGVDaGFuZ2VEYXRhDQorTGVDbG9zZQ0KK0xlR2V0VXBkYXRlT3B0aW9ucw0KK0xlU2V0VXBkYXRlT3B0aW9ucw0KK0xlRXhlY3V0ZQ0KK0xlT2JqZWN0TG9uZw0KK0xlQ3JlYXRlSW52aXNpYmxlDQorTWZSZWxlYXNlDQorTWZHZXREYXRhDQorTWZTYXZlVG9TdHJlYW0NCitNZkNsb25lDQorTWZFcXVhbA0KK01mQ29weQ0KK01mUXVlcnlCb3VuZHMNCitNZkRyYXcNCitNZkVudW1Gb3JtYXQNCitNZkNoYW5nZURhdGENCitCbVJlbGVhc2UNCitCbUdldERhdGENCitCbVNhdmVUb1N0cmVhbQ0KK0JtQ2xvbmUNCitCbUVxdWFsDQorQm1Db3B5DQorQm1RdWVyeUJvdW5kcw0KK0JtRHJhdw0KK0JtRW51bUZvcm1hdA0KK0JtQ2hhbmdlRGF0YQ0KK0RpYlJlbGVhc2UNCitEaWJHZXREYXRhDQorRGliU2F2ZVRvU3RyZWFtDQorRGliQ2xvbmUNCitEaWJFcXVhbA0KK0RpYkNvcHkNCitEaWJRdWVyeUJvdW5kcw0KK0RpYkRyYXcNCitEaWJFbnVtRm9ybWF0DQorRGliQ2hhbmdlRGF0YQ0KK0dlblJlbGVhc2UNCitHZW5HZXREYXRhDQorR2VuU2V0RGF0YQ0KK0dlblNhdmVUb1N0cmVhbQ0KK0dlbkNsb25lDQorR2VuRXF1YWwNCitHZW5Db3B5DQorR2VuUXVlcnlCb3VuZHMNCitHZW5EcmF3DQorR2VuRW51bUZvcm1hdA0KK0dlbkNoYW5nZURhdGENCitFcnJTaG93DQorRXJyU2V0RGF0YQ0KK0VyclNldEhvc3ROYW1lcw0KK0VyclNldFRhcmdldERldmljZQ0KK0VyclNldEJvdW5kcw0KK0VyckNvcHlGcm9tTGluaw0KK0VyclF1ZXJ5T3Blbg0KK0VyckFjdGl2YXRlDQorRXJyQ2xvc2UNCitFcnJVcGRhdGUNCitFcnJSZWNvbm5lY3QNCitFcnJRdWVyeVByb3RvY29sDQorRXJyUXVlcnlPdXRPZkRhdGUNCitFcnJPYmplY3RDb252ZXJ0DQorRXJyR2V0VXBkYXRlT3B0aW9ucw0KK0VyclNldFVwZGF0ZU9wdGlvbnMNCitFcnJFeGVjdXRlDQorRXJyT2JqZWN0TG9uZw0KK1BiTG9hZEZyb21TdHJlYW0NCitQYkNyZWF0ZUZyb21DbGlwDQorUGJDcmVhdGVMaW5rRnJvbUNsaXANCitQYkNyZWF0ZUZyb21UZW1wbGF0ZQ0KK1BiQ3JlYXRlDQorUGJEcmF3DQorUGJRdWVyeUJvdW5kcw0KK1BiQ29weVRvQ2xpcGJvYXJkDQorUGJDcmVhdGVGcm9tRmlsZQ0KK1BiQ3JlYXRlTGlua0Zyb21GaWxlDQorUGJFbnVtRm9ybWF0cw0KK1BiR2V0RGF0YQ0KK1BiQ3JlYXRlSW52aXNpYmxlDQorT2JqUXVlcnlOYW1lDQorT2JqUmVuYW1lDQorT2JqUXVlcnlUeXBlDQorT2JqUXVlcnlTaXplDQorQ29ubmVjdERsZ1Byb2MNCitTZXROZXROYW1lDQorQ2hlY2tOZXREcml2ZQ0KK1NldE5leHROZXREcml2ZQ0KK0dldFRhc2tWaXNpYmxlV2luZG93DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd29sZWNudjMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dvbGVjbnYzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjg1ZGNiZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dvbGVjbnYzMi5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE9MRUNOVjMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBPTEVDTlYzMi5kbGwNCitFWFBPUlRTDQorUUQyR0RJDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd29sZWRiMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd29sZWRiMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBiZjJmMzIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93b2xlZGIzMi5kZWYKQEAgLTAsMCArMSwxNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBPTEVEQjMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBPTEVEQjMyLmRsbA0KK0VYUE9SVFMNCitEbGxNYWluDQorT3BlbkRTTEZpbGUNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dvbGVkYjMyci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93b2xlZGIzMnIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFlOTQ4MzkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93b2xlZGIzMnIuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgT0xFREIzMlIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE9MRURCMzJSLmRsbA0KK0VYUE9SVFMNCitEbGxNYWluDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd29sZWRsZy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93b2xlZGxnLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNTdhYWJlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd29sZWRsZy5kZWYKQEAgLTAsMCArMSwzMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBvbGVkbGcuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG9sZWRsZy5kbGwNCitFWFBPUlRTDQorT2xlVUlBZGRWZXJiTWVudUENCitPbGVVSUNhbkNvbnZlcnRPckFjdGl2YXRlQXMNCitPbGVVSUluc2VydE9iamVjdEENCitPbGVVSVBhc3RlU3BlY2lhbEENCitPbGVVSUVkaXRMaW5rc0ENCitPbGVVSUNoYW5nZUljb25BDQorT2xlVUlDb252ZXJ0QQ0KK09sZVVJQnVzeUENCitPbGVVSVVwZGF0ZUxpbmtzQQ0KK09sZVVJUHJvbXB0VXNlckENCitPbGVVSU9iamVjdFByb3BlcnRpZXNBDQorT2xlVUlDaGFuZ2VTb3VyY2VBDQorT2xlVUlBZGRWZXJiTWVudVcNCitPbGVVSUJ1c3lXDQorT2xlVUlDaGFuZ2VJY29uVw0KK09sZVVJQ2hhbmdlU291cmNlVw0KK09sZVVJQ29udmVydFcNCitPbGVVSUVkaXRMaW5rc1cNCitPbGVVSUluc2VydE9iamVjdFcNCitPbGVVSU9iamVjdFByb3BlcnRpZXNXDQorT2xlVUlQYXN0ZVNwZWNpYWxXDQorT2xlVUlQcm9tcHRVc2VyVw0KK09sZVVJVXBkYXRlTGlua3NXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd29sZXBybi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93b2xlcHJuLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZTllZGY1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd29sZXBybi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBvbGVwcm4uRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIG9sZXBybi5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93b2xlcHJvMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd29sZXBybzMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42Y2M3MjA5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd29sZXBybzMyLmRlZgpAQCAtMCwwICsxLDE5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIE9MRVBSTzMyLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBPTEVQUk8zMi5ETEwNCitFWFBPUlRTDQorT2xlSWNvblRvQ3Vyc29yDQorT2xlQ3JlYXRlUHJvcGVydHlGcmFtZUluZGlyZWN0DQorT2xlQ3JlYXRlUHJvcGVydHlGcmFtZQ0KK09sZUxvYWRQaWN0dXJlDQorT2xlQ3JlYXRlUGljdHVyZUluZGlyZWN0DQorT2xlQ3JlYXRlRm9udEluZGlyZWN0DQorT2xlVHJhbnNsYXRlQ29sb3INCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dvbGVzdnIzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93b2xlc3ZyMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNmZjQ5MTMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93b2xlc3ZyMzIuZGVmCkBAIC0wLDAgKzEsMzEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgT0xFU1ZSMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE9MRVNWUjMyLmRsbA0KK0VYUE9SVFMNCitXRVANCitPbGVSZWdpc3RlclNlcnZlcg0KK09sZVJldm9rZVNlcnZlcg0KK09sZUJsb2NrU2VydmVyDQorT2xlVW5ibG9ja1NlcnZlcg0KK09sZVJlZ2lzdGVyU2VydmVyRG9jDQorT2xlUmV2b2tlU2VydmVyRG9jDQorT2xlUmVuYW1lU2VydmVyRG9jDQorT2xlUmV2ZXJ0U2VydmVyRG9jDQorT2xlU2F2ZWRTZXJ2ZXJEb2MNCitPbGVSZXZva2VPYmplY3QNCitPbGVRdWVyeVNlcnZlclZlcnNpb24NCitTcnZyV25kUHJvYw0KK0RvY1duZFByb2MNCitJdGVtV25kUHJvYw0KK1NlbmREYXRhTXNnDQorRmluZEl0ZW1XbmQNCitJdGVtQ2FsbEJhY2sNCitUZXJtaW5hdGVDbGllbnRzDQorVGVybWluYXRlRG9jQ2xpZW50cw0KK0RlbGV0ZUNsaWVudEluZm8NCitTZW5kUmVuYW1lTXNnDQorRW51bUZvclRlcm1pbmF0ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dvbGV0aGszMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93b2xldGhrMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIyYWU2OWMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93b2xldGhrMzIuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgT0xFVEhLMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIE9MRVRISzMyLmRsbA0KK0VYUE9SVFMNCitJbnZva2VPbjMyDQorSW50T3BJbml0aWFsaXplDQorQ2FsbGJhY2tQcm9jZXNzaW5nXzMyMTYNCitJVW5rbm93bk9iajMyDQorQ1NtMTZSZWxlYXNlSGFuZGxlcl9SZWxlYXNlMzINCitUaGtNZ3JJbml0aWFsaXplDQorVGhrTWdyVW5pbml0aWFsaXplDQorVHJhbnNmb3JtSFJFU1VMVF8xNjMyDQorVHJhbnNmb3JtSFJFU1VMVF8zMjE2DQorQ29udmVydE9iakRlc2NyaXB0b3INCitDb252ZXJ0SHIxNjMyVGh1bmsNCitDb252ZXJ0SHIzMjE2VGh1bmsNCitJbnRPcFVuaW5pdGlhbGl6ZQ0KK1Roa0FkZEFwcENvbXBhdEZsYWcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93b3BlbmdsMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd29wZW5nbDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNGM4OTgyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd29wZW5nbDMyLmRlZgpAQCAtMCwwICsxLDM3NiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBPUEVOR0wzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgT1BFTkdMMzIuZGxsDQorRVhQT1JUUw0KK0dsbWZCZWdpbkdsc0Jsb2NrDQorR2xtZkNsb3NlTWV0YUZpbGUNCitHbG1mRW5kR2xzQmxvY2sNCitHbG1mRW5kUGxheWJhY2sNCitHbG1mSW5pdFBsYXliYWNrDQorR2xtZlBsYXlHbHNSZWNvcmQNCitnbEFjY3VtDQorZ2xBbHBoYUZ1bmMNCitnbEFyZVRleHR1cmVzUmVzaWRlbnQNCitnbEFycmF5RWxlbWVudA0KK2dsQmVnaW4NCitnbEJpbmRUZXh0dXJlDQorZ2xCaXRtYXANCitnbEJsZW5kRnVuYw0KK2dsQ2FsbExpc3QNCitnbENhbGxMaXN0cw0KK2dsQ2xlYXINCitnbENsZWFyQWNjdW0NCitnbENsZWFyQ29sb3INCitnbENsZWFyRGVwdGgNCitnbENsZWFySW5kZXgNCitnbENsZWFyU3RlbmNpbA0KK2dsQ2xpcFBsYW5lDQorZ2xDb2xvcjNiDQorZ2xDb2xvcjNidg0KK2dsQ29sb3IzZA0KK2dsQ29sb3IzZHYNCitnbENvbG9yM2YNCitnbENvbG9yM2Z2DQorZ2xDb2xvcjNpDQorZ2xDb2xvcjNpdg0KK2dsQ29sb3Izcw0KK2dsQ29sb3Izc3YNCitnbENvbG9yM3ViDQorZ2xDb2xvcjN1YnYNCitnbENvbG9yM3VpDQorZ2xDb2xvcjN1aXYNCitnbENvbG9yM3VzDQorZ2xDb2xvcjN1c3YNCitnbENvbG9yNGINCitnbENvbG9yNGJ2DQorZ2xDb2xvcjRkDQorZ2xDb2xvcjRkdg0KK2dsQ29sb3I0Zg0KK2dsQ29sb3I0ZnYNCitnbENvbG9yNGkNCitnbENvbG9yNGl2DQorZ2xDb2xvcjRzDQorZ2xDb2xvcjRzdg0KK2dsQ29sb3I0dWINCitnbENvbG9yNHVidg0KK2dsQ29sb3I0dWkNCitnbENvbG9yNHVpdg0KK2dsQ29sb3I0dXMNCitnbENvbG9yNHVzdg0KK2dsQ29sb3JNYXNrDQorZ2xDb2xvck1hdGVyaWFsDQorZ2xDb2xvclBvaW50ZXINCitnbENvcHlQaXhlbHMNCitnbENvcHlUZXhJbWFnZTFEDQorZ2xDb3B5VGV4SW1hZ2UyRA0KK2dsQ29weVRleFN1YkltYWdlMUQNCitnbENvcHlUZXhTdWJJbWFnZTJEDQorZ2xDdWxsRmFjZQ0KK2dsRGVidWdFbnRyeQ0KK2dsRGVsZXRlTGlzdHMNCitnbERlbGV0ZVRleHR1cmVzDQorZ2xEZXB0aEZ1bmMNCitnbERlcHRoTWFzaw0KK2dsRGVwdGhSYW5nZQ0KK2dsRGlzYWJsZQ0KK2dsRGlzYWJsZUNsaWVudFN0YXRlDQorZ2xEcmF3QXJyYXlzDQorZ2xEcmF3QnVmZmVyDQorZ2xEcmF3RWxlbWVudHMNCitnbERyYXdQaXhlbHMNCitnbEVkZ2VGbGFnDQorZ2xFZGdlRmxhZ1BvaW50ZXINCitnbEVkZ2VGbGFndg0KK2dsRW5hYmxlDQorZ2xFbmFibGVDbGllbnRTdGF0ZQ0KK2dsRW5kDQorZ2xFbmRMaXN0DQorZ2xFdmFsQ29vcmQxZA0KK2dsRXZhbENvb3JkMWR2DQorZ2xFdmFsQ29vcmQxZg0KK2dsRXZhbENvb3JkMWZ2DQorZ2xFdmFsQ29vcmQyZA0KK2dsRXZhbENvb3JkMmR2DQorZ2xFdmFsQ29vcmQyZg0KK2dsRXZhbENvb3JkMmZ2DQorZ2xFdmFsTWVzaDENCitnbEV2YWxNZXNoMg0KK2dsRXZhbFBvaW50MQ0KK2dsRXZhbFBvaW50Mg0KK2dsRmVlZGJhY2tCdWZmZXINCitnbEZpbmlzaA0KK2dsRmx1c2gNCitnbEZvZ2YNCitnbEZvZ2Z2DQorZ2xGb2dpDQorZ2xGb2dpdg0KK2dsRnJvbnRGYWNlDQorZ2xGcnVzdHVtDQorZ2xHZW5MaXN0cw0KK2dsR2VuVGV4dHVyZXMNCitnbEdldEJvb2xlYW52DQorZ2xHZXRDbGlwUGxhbmUNCitnbEdldERvdWJsZXYNCitnbEdldEVycm9yDQorZ2xHZXRGbG9hdHYNCitnbEdldEludGVnZXJ2DQorZ2xHZXRMaWdodGZ2DQorZ2xHZXRMaWdodGl2DQorZ2xHZXRNYXBkdg0KK2dsR2V0TWFwZnYNCitnbEdldE1hcGl2DQorZ2xHZXRNYXRlcmlhbGZ2DQorZ2xHZXRNYXRlcmlhbGl2DQorZ2xHZXRQaXhlbE1hcGZ2DQorZ2xHZXRQaXhlbE1hcHVpdg0KK2dsR2V0UGl4ZWxNYXB1c3YNCitnbEdldFBvaW50ZXJ2DQorZ2xHZXRQb2x5Z29uU3RpcHBsZQ0KK2dsR2V0U3RyaW5nDQorZ2xHZXRUZXhFbnZmdg0KK2dsR2V0VGV4RW52aXYNCitnbEdldFRleEdlbmR2DQorZ2xHZXRUZXhHZW5mdg0KK2dsR2V0VGV4R2VuaXYNCitnbEdldFRleEltYWdlDQorZ2xHZXRUZXhMZXZlbFBhcmFtZXRlcmZ2DQorZ2xHZXRUZXhMZXZlbFBhcmFtZXRlcml2DQorZ2xHZXRUZXhQYXJhbWV0ZXJmdg0KK2dsR2V0VGV4UGFyYW1ldGVyaXYNCitnbEhpbnQNCitnbEluZGV4TWFzaw0KK2dsSW5kZXhQb2ludGVyDQorZ2xJbmRleGQNCitnbEluZGV4ZHYNCitnbEluZGV4Zg0KK2dsSW5kZXhmdg0KK2dsSW5kZXhpDQorZ2xJbmRleGl2DQorZ2xJbmRleHMNCitnbEluZGV4c3YNCitnbEluZGV4dWINCitnbEluZGV4dWJ2DQorZ2xJbml0TmFtZXMNCitnbEludGVybGVhdmVkQXJyYXlzDQorZ2xJc0VuYWJsZWQNCitnbElzTGlzdA0KK2dsSXNUZXh0dXJlDQorZ2xMaWdodE1vZGVsZg0KK2dsTGlnaHRNb2RlbGZ2DQorZ2xMaWdodE1vZGVsaQ0KK2dsTGlnaHRNb2RlbGl2DQorZ2xMaWdodGYNCitnbExpZ2h0ZnYNCitnbExpZ2h0aQ0KK2dsTGlnaHRpdg0KK2dsTGluZVN0aXBwbGUNCitnbExpbmVXaWR0aA0KK2dsTGlzdEJhc2UNCitnbExvYWRJZGVudGl0eQ0KK2dsTG9hZE1hdHJpeGQNCitnbExvYWRNYXRyaXhmDQorZ2xMb2FkTmFtZQ0KK2dsTG9naWNPcA0KK2dsTWFwMWQNCitnbE1hcDFmDQorZ2xNYXAyZA0KK2dsTWFwMmYNCitnbE1hcEdyaWQxZA0KK2dsTWFwR3JpZDFmDQorZ2xNYXBHcmlkMmQNCitnbE1hcEdyaWQyZg0KK2dsTWF0ZXJpYWxmDQorZ2xNYXRlcmlhbGZ2DQorZ2xNYXRlcmlhbGkNCitnbE1hdGVyaWFsaXYNCitnbE1hdHJpeE1vZGUNCitnbE11bHRNYXRyaXhkDQorZ2xNdWx0TWF0cml4Zg0KK2dsTmV3TGlzdA0KK2dsTm9ybWFsM2INCitnbE5vcm1hbDNidg0KK2dsTm9ybWFsM2QNCitnbE5vcm1hbDNkdg0KK2dsTm9ybWFsM2YNCitnbE5vcm1hbDNmdg0KK2dsTm9ybWFsM2kNCitnbE5vcm1hbDNpdg0KK2dsTm9ybWFsM3MNCitnbE5vcm1hbDNzdg0KK2dsTm9ybWFsUG9pbnRlcg0KK2dsT3J0aG8NCitnbFBhc3NUaHJvdWdoDQorZ2xQaXhlbE1hcGZ2DQorZ2xQaXhlbE1hcHVpdg0KK2dsUGl4ZWxNYXB1c3YNCitnbFBpeGVsU3RvcmVmDQorZ2xQaXhlbFN0b3JlaQ0KK2dsUGl4ZWxUcmFuc2ZlcmYNCitnbFBpeGVsVHJhbnNmZXJpDQorZ2xQaXhlbFpvb20NCitnbFBvaW50U2l6ZQ0KK2dsUG9seWdvbk1vZGUNCitnbFBvbHlnb25PZmZzZXQNCitnbFBvbHlnb25TdGlwcGxlDQorZ2xQb3BBdHRyaWINCitnbFBvcENsaWVudEF0dHJpYg0KK2dsUG9wTWF0cml4DQorZ2xQb3BOYW1lDQorZ2xQcmlvcml0aXplVGV4dHVyZXMNCitnbFB1c2hBdHRyaWINCitnbFB1c2hDbGllbnRBdHRyaWINCitnbFB1c2hNYXRyaXgNCitnbFB1c2hOYW1lDQorZ2xSYXN0ZXJQb3MyZA0KK2dsUmFzdGVyUG9zMmR2DQorZ2xSYXN0ZXJQb3MyZg0KK2dsUmFzdGVyUG9zMmZ2DQorZ2xSYXN0ZXJQb3MyaQ0KK2dsUmFzdGVyUG9zMml2DQorZ2xSYXN0ZXJQb3Mycw0KK2dsUmFzdGVyUG9zMnN2DQorZ2xSYXN0ZXJQb3MzZA0KK2dsUmFzdGVyUG9zM2R2DQorZ2xSYXN0ZXJQb3MzZg0KK2dsUmFzdGVyUG9zM2Z2DQorZ2xSYXN0ZXJQb3MzaQ0KK2dsUmFzdGVyUG9zM2l2DQorZ2xSYXN0ZXJQb3Mzcw0KK2dsUmFzdGVyUG9zM3N2DQorZ2xSYXN0ZXJQb3M0ZA0KK2dsUmFzdGVyUG9zNGR2DQorZ2xSYXN0ZXJQb3M0Zg0KK2dsUmFzdGVyUG9zNGZ2DQorZ2xSYXN0ZXJQb3M0aQ0KK2dsUmFzdGVyUG9zNGl2DQorZ2xSYXN0ZXJQb3M0cw0KK2dsUmFzdGVyUG9zNHN2DQorZ2xSZWFkQnVmZmVyDQorZ2xSZWFkUGl4ZWxzDQorZ2xSZWN0ZA0KK2dsUmVjdGR2DQorZ2xSZWN0Zg0KK2dsUmVjdGZ2DQorZ2xSZWN0aQ0KK2dsUmVjdGl2DQorZ2xSZWN0cw0KK2dsUmVjdHN2DQorZ2xSZW5kZXJNb2RlDQorZ2xSb3RhdGVkDQorZ2xSb3RhdGVmDQorZ2xTY2FsZWQNCitnbFNjYWxlZg0KK2dsU2Npc3Nvcg0KK2dsU2VsZWN0QnVmZmVyDQorZ2xTaGFkZU1vZGVsDQorZ2xTdGVuY2lsRnVuYw0KK2dsU3RlbmNpbE1hc2sNCitnbFN0ZW5jaWxPcA0KK2dsVGV4Q29vcmQxZA0KK2dsVGV4Q29vcmQxZHYNCitnbFRleENvb3JkMWYNCitnbFRleENvb3JkMWZ2DQorZ2xUZXhDb29yZDFpDQorZ2xUZXhDb29yZDFpdg0KK2dsVGV4Q29vcmQxcw0KK2dsVGV4Q29vcmQxc3YNCitnbFRleENvb3JkMmQNCitnbFRleENvb3JkMmR2DQorZ2xUZXhDb29yZDJmDQorZ2xUZXhDb29yZDJmdg0KK2dsVGV4Q29vcmQyaQ0KK2dsVGV4Q29vcmQyaXYNCitnbFRleENvb3JkMnMNCitnbFRleENvb3JkMnN2DQorZ2xUZXhDb29yZDNkDQorZ2xUZXhDb29yZDNkdg0KK2dsVGV4Q29vcmQzZg0KK2dsVGV4Q29vcmQzZnYNCitnbFRleENvb3JkM2kNCitnbFRleENvb3JkM2l2DQorZ2xUZXhDb29yZDNzDQorZ2xUZXhDb29yZDNzdg0KK2dsVGV4Q29vcmQ0ZA0KK2dsVGV4Q29vcmQ0ZHYNCitnbFRleENvb3JkNGYNCitnbFRleENvb3JkNGZ2DQorZ2xUZXhDb29yZDRpDQorZ2xUZXhDb29yZDRpdg0KK2dsVGV4Q29vcmQ0cw0KK2dsVGV4Q29vcmQ0c3YNCitnbFRleENvb3JkUG9pbnRlcg0KK2dsVGV4RW52Zg0KK2dsVGV4RW52ZnYNCitnbFRleEVudmkNCitnbFRleEVudml2DQorZ2xUZXhHZW5kDQorZ2xUZXhHZW5kdg0KK2dsVGV4R2VuZg0KK2dsVGV4R2VuZnYNCitnbFRleEdlbmkNCitnbFRleEdlbml2DQorZ2xUZXhJbWFnZTFEDQorZ2xUZXhJbWFnZTJEDQorZ2xUZXhQYXJhbWV0ZXJmDQorZ2xUZXhQYXJhbWV0ZXJmdg0KK2dsVGV4UGFyYW1ldGVyaQ0KK2dsVGV4UGFyYW1ldGVyaXYNCitnbFRleFN1YkltYWdlMUQNCitnbFRleFN1YkltYWdlMkQNCitnbFRyYW5zbGF0ZWQNCitnbFRyYW5zbGF0ZWYNCitnbFZlcnRleDJkDQorZ2xWZXJ0ZXgyZHYNCitnbFZlcnRleDJmDQorZ2xWZXJ0ZXgyZnYNCitnbFZlcnRleDJpDQorZ2xWZXJ0ZXgyaXYNCitnbFZlcnRleDJzDQorZ2xWZXJ0ZXgyc3YNCitnbFZlcnRleDNkDQorZ2xWZXJ0ZXgzZHYNCitnbFZlcnRleDNmDQorZ2xWZXJ0ZXgzZnYNCitnbFZlcnRleDNpDQorZ2xWZXJ0ZXgzaXYNCitnbFZlcnRleDNzDQorZ2xWZXJ0ZXgzc3YNCitnbFZlcnRleDRkDQorZ2xWZXJ0ZXg0ZHYNCitnbFZlcnRleDRmDQorZ2xWZXJ0ZXg0ZnYNCitnbFZlcnRleDRpDQorZ2xWZXJ0ZXg0aXYNCitnbFZlcnRleDRzDQorZ2xWZXJ0ZXg0c3YNCitnbFZlcnRleFBvaW50ZXINCitnbFZpZXdwb3J0DQord2dsQ2hvb3NlUGl4ZWxGb3JtYXQNCit3Z2xDb3B5Q29udGV4dA0KK3dnbENyZWF0ZUNvbnRleHQNCit3Z2xDcmVhdGVMYXllckNvbnRleHQNCit3Z2xEZWxldGVDb250ZXh0DQord2dsRGVzY3JpYmVMYXllclBsYW5lDQord2dsRGVzY3JpYmVQaXhlbEZvcm1hdA0KK3dnbEdldEN1cnJlbnRDb250ZXh0DQord2dsR2V0Q3VycmVudERDDQord2dsR2V0RGVmYXVsdFByb2NBZGRyZXNzDQord2dsR2V0TGF5ZXJQYWxldHRlRW50cmllcw0KK3dnbEdldFBpeGVsRm9ybWF0DQord2dsR2V0UHJvY0FkZHJlc3MNCit3Z2xNYWtlQ3VycmVudA0KK3dnbFJlYWxpemVMYXllclBhbGV0dGUNCit3Z2xTZXRMYXllclBhbGV0dGVFbnRyaWVzDQord2dsU2V0UGl4ZWxGb3JtYXQNCit3Z2xTaGFyZUxpc3RzDQord2dsU3dhcEJ1ZmZlcnMNCit3Z2xTd2FwTGF5ZXJCdWZmZXJzDQord2dsU3dhcE11bHRpcGxlQnVmZmVycw0KK3dnbFVzZUZvbnRCaXRtYXBzQQ0KK3dnbFVzZUZvbnRCaXRtYXBzVw0KK3dnbFVzZUZvbnRPdXRsaW5lc0ENCit3Z2xVc2VGb250T3V0bGluZXNXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd29zdW5pbnN0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dvc3VuaW5zdC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjA2M2FkYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dvc3VuaW5zdC5kZWYKQEAgLTAsMCArMSwxNyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBPU1VOSU5TVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgT1NVTklOU1QuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorRXhlY3V0ZVVuaW5zdGFsbA0KK0dldFVuaW5zdGFsbEltYWdlU2l6ZQ0KK0lzVW5pbnN0YWxsSW1hZ2VWYWxpZA0KK1Byb3ZpZGVVaUFsZXJ0cw0KK1JlbW92ZVVuaW5zdGFsbEltYWdlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd293NjQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd293NjQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJlODg0MjkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93b3c2NC5kZWYKQEAgLTAsMCArMSwzMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB3b3c2NC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgd293NjQuZGxsDQorRVhQT1JUUw0KK1dvdzY0QWxsb2NhdGVIZWFwDQorV293NjRBbGxvY2F0ZVRlbXANCitXb3c2NEFwY1JvdXRpbmUNCitXb3c2NEFzc2VydA0KK1dvdzY0Q2hlY2tJZk5YRW5hYmxlZA0KK1dvdzY0RW11bGF0ZUF0bFRodW5rDQorV293NjRFeGVjdXRlRmxhZ3MgREFUQQ0KK1dvdzY0RnJlZUhlYXANCitXb3c2NEdldFdvdzY0SW1hZ2VPcHRpb24NCitXb3c2NEtpVXNlckNhbGxiYWNrRGlzcGF0Y2hlcg0KK1dvdzY0TGRycEluaXRpYWxpemUNCitXb3c2NExvZ1ByaW50DQorV293NjRPcGVuQ29uZmlnS2V5DQorV293NjRQcmVwYXJlRm9yRGVidWdnZXJBdHRhY2gNCitXb3c2NFByZXBhcmVGb3JFeGNlcHRpb24NCitXb3c2NFJhaXNlRXhjZXB0aW9uDQorV293NjRTaGFsbG93VGh1bmtBbGxvY09iamVjdEF0dHJpYnV0ZXMzMlRPNjRfRk5DDQorV293NjRTaGFsbG93VGh1bmtBbGxvY1NlY3VyaXR5UXVhbGl0eU9mU2VydmljZTMyVE82NF9GTkMNCitXb3c2NFNoYWxsb3dUaHVua1NJWkVfVDMyVE82NA0KK1dvdzY0U2hhbGxvd1RodW5rU0laRV9UNjRUTzMyDQorV293NjRTdGFydHVwQ29udGV4dFRvQ29udGV4dFg4Ng0KK1dvdzY0U3lzdGVtU2VydmljZQ0KK1dvdzY0U3lzdGVtU2VydmljZUV4DQorcGZuV293NjRQZXJmTW9uaXRvckNhbGwgREFUQQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dvdzY0Y3B1LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dvdzY0Y3B1LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZWI0ZTU5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd293NjRjcHUuZGVmCkBAIC0wLDAgKzEsMjkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgd293NjRjcHUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHdvdzY0Y3B1LmRsbA0KK0VYUE9SVFMNCitDcHVGbHVzaEluc3RydWN0aW9uQ2FjaGUNCitDcHVHZXRDb250ZXh0DQorQ3B1R2V0U3RhY2tQb2ludGVyDQorQ3B1SW5pdGlhbGl6ZVN0YXJ0dXBDb250ZXh0DQorQ3B1Tm90aWZ5RGxsTG9hZA0KK0NwdU5vdGlmeURsbFVubG9hZA0KK0NwdVByZXBhcmVGb3JEZWJ1Z2dlckF0dGFjaA0KK0NwdVByb2Nlc3NEZWJ1Z0V2ZW50DQorQ3B1UHJvY2Vzc0luaXQNCitDcHVQcm9jZXNzVGVybQ0KK0NwdVJlc2V0RmxvYXRpbmdQb2ludA0KK0NwdVJlc2V0VG9Db25zaXN0ZW50U3RhdGUNCitDcHVTZXRDb250ZXh0DQorQ3B1U2V0SW5zdHJ1Y3Rpb25Qb2ludGVyDQorQ3B1U2V0U3RhY2tQb2ludGVyDQorQ3B1U2ltdWxhdGUNCitDcHVTdXNwZW5kVGhyZWFkDQorQ3B1VGhyZWFkSW5pdA0KK0NwdVRocmVhZFRlcm0NCitUdXJib0Rpc3BhdGNoSnVtcEFkZHJlc3NFbmQNCitUdXJib0Rpc3BhdGNoSnVtcEFkZHJlc3NTdGFydA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dvdzY0bWliLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dvdzY0bWliLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NGY3MDRmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd293NjRtaWIuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgd293NjRtaWIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHdvdzY0bWliLmRsbA0KK0VYUE9SVFMNCitTbm1wRXh0ZW5zaW9uQ2xvc2UNCitTbm1wRXh0ZW5zaW9uSW5pdA0KK1NubXBFeHRlbnNpb25Jbml0RXgNCitTbm1wRXh0ZW5zaW9uUXVlcnkNCitTbm1wRXh0ZW5zaW9uVHJhcA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dvdzY0d2luLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dvdzY0d2luLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42M2RkOGRjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd293NjR3aW4uZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgd293NjR3aW4uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHdvdzY0d2luLmRsbA0KK0VYUE9SVFMNCitXaW4zMmtDYWxsYmFja1RhYmxlDQorcHRjYmMgREFUQQ0KK3Nkd2hjb24gREFUQQ0KK3Nkd2h3aW4zMiBEQVRBDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3BhZHJzNDExLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dwYWRyczQxMS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzAzMzI4NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dwYWRyczQxMS5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSByZXNtYWluLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSByZXNtYWluLmRsbA0KK0VYUE9SVFMNCitQYWRIZWxwX0hhbmRsZUNvbnRleHRQb3B1cA0KK1BhZEhlbHBfSGFuZGxlSGVscA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dwYWRyczQxMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cGFkcnM0MTIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMwMzMyODUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cGFkcnM0MTIuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcmVzbWFpbi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcmVzbWFpbi5kbGwNCitFWFBPUlRTDQorUGFkSGVscF9IYW5kbGVDb250ZXh0UG9wdXANCitQYWRIZWxwX0hhbmRsZUhlbHANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cGFkcnM4MDQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3BhZHJzODA0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MTgwYjQxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3BhZHJzODA0LmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFJFU01BSU4uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFJFU01BSU4uZGxsDQorRVhQT1JUUw0KK1BhZEhlbHBfSGFuZGxlQ29udGV4dFBvcHVwDQorUGFkSGVscF9IYW5kbGVIZWxwDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3Bhbm1hcC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cGFubWFwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNGJkYjZlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3Bhbm1hcC5kZWYKQEAgLTAsMCArMSwxMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBwYW5tYXAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHBhbm1hcC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cGF1dG9lbnIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3BhdXRvZW5yLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lMjYyMWM1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3BhdXRvZW5yLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFBBVVRPRU5SLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBQQVVUT0VOUi5kbGwNCitFWFBPUlRTDQorQ2VydEF1dG9FbnJvbGxtZW50DQorQ2VydEF1dG9SZW1vdmUNCitQcm92QXV0b0Vucm9sbG1lbnQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cGRfY2kuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3BkX2NpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMDc5YzdkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3BkX2NpLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHdwZF9jaS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgd3BkX2NpLmRsbA0KK0VYUE9SVFMNCitEb0NtZA0KK01pZ3JhdGVNVFBEZXZpY2VzSW5zdGFsbGVkQXNNU0MNCitSZXNjYW5CdXMNCitXcGRDbGFzc0luc3RhbGxlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dwZGguZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3BkaC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjFiYzhlMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dwZGguZGVmCkBAIC0wLDAgKzEsMTY3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHBkaC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcGRoLmRsbA0KK0VYUE9SVFMNCitQZGhQbGFHZXRMb2dGaWxlTmFtZUENCitEbGxJbnN0YWxsDQorUGRoQWRkMDA5Q291bnRlckENCitQZGhBZGQwMDlDb3VudGVyVw0KK1BkaEFkZENvdW50ZXJBDQorUGRoQWRkQ291bnRlclcNCitQZGhCaW5kSW5wdXREYXRhU291cmNlQQ0KK1BkaEJpbmRJbnB1dERhdGFTb3VyY2VXDQorUGRoQnJvd3NlQ291bnRlcnNBDQorUGRoQnJvd3NlQ291bnRlcnNIQQ0KK1BkaEJyb3dzZUNvdW50ZXJzSFcNCitQZGhCcm93c2VDb3VudGVyc1cNCitQZGhDYWxjdWxhdGVDb3VudGVyRnJvbVJhd1ZhbHVlDQorUGRoQ2xvc2VMb2cNCitQZGhDbG9zZVF1ZXJ5DQorUGRoQ29sbGVjdFF1ZXJ5RGF0YQ0KK1BkaENvbGxlY3RRdWVyeURhdGFFeA0KK1BkaENvbXB1dGVDb3VudGVyU3RhdGlzdGljcw0KK1BkaENvbm5lY3RNYWNoaW5lQQ0KK1BkaENvbm5lY3RNYWNoaW5lVw0KK1BkaENyZWF0ZVNRTFRhYmxlc0ENCitQZGhDcmVhdGVTUUxUYWJsZXNXDQorUGRoRW51bUxvZ1NldE5hbWVzQQ0KK1BkaEVudW1Mb2dTZXROYW1lc1cNCitQZGhFbnVtTWFjaGluZXNBDQorUGRoRW51bU1hY2hpbmVzSEENCitQZGhFbnVtTWFjaGluZXNIVw0KK1BkaEVudW1NYWNoaW5lc1cNCitQZGhFbnVtT2JqZWN0SXRlbXNBDQorUGRoRW51bU9iamVjdEl0ZW1zSEENCitQZGhFbnVtT2JqZWN0SXRlbXNIVw0KK1BkaEVudW1PYmplY3RJdGVtc1cNCitQZGhFbnVtT2JqZWN0c0ENCitQZGhFbnVtT2JqZWN0c0hBDQorUGRoRW51bU9iamVjdHNIVw0KK1BkaEVudW1PYmplY3RzVw0KK1BkaEV4cGFuZENvdW50ZXJQYXRoQQ0KK1BkaEV4cGFuZENvdW50ZXJQYXRoVw0KK1BkaEV4cGFuZFdpbGRDYXJkUGF0aEENCitQZGhFeHBhbmRXaWxkQ2FyZFBhdGhIQQ0KK1BkaEV4cGFuZFdpbGRDYXJkUGF0aEhXDQorUGRoRXhwYW5kV2lsZENhcmRQYXRoVw0KK1BkaEZvcm1hdEZyb21SYXdWYWx1ZQ0KK1BkaEdldENvdW50ZXJJbmZvQQ0KK1BkaEdldENvdW50ZXJJbmZvVw0KK1BkaEdldENvdW50ZXJUaW1lQmFzZQ0KK1BkaEdldERhdGFTb3VyY2VUaW1lUmFuZ2VBDQorUGRoR2V0RGF0YVNvdXJjZVRpbWVSYW5nZUgNCitQZGhHZXREYXRhU291cmNlVGltZVJhbmdlVw0KK1BkaEdldERlZmF1bHRQZXJmQ291bnRlckENCitQZGhHZXREZWZhdWx0UGVyZkNvdW50ZXJIQQ0KK1BkaEdldERlZmF1bHRQZXJmQ291bnRlckhXDQorUGRoR2V0RGVmYXVsdFBlcmZDb3VudGVyVw0KK1BkaEdldERlZmF1bHRQZXJmT2JqZWN0QQ0KK1BkaEdldERlZmF1bHRQZXJmT2JqZWN0SEENCitQZGhHZXREZWZhdWx0UGVyZk9iamVjdEhXDQorUGRoR2V0RGVmYXVsdFBlcmZPYmplY3RXDQorUGRoR2V0RGxsVmVyc2lvbg0KK1BkaEdldEZvcm1hdHRlZENvdW50ZXJBcnJheUENCitQZGhHZXRGb3JtYXR0ZWRDb3VudGVyQXJyYXlXDQorUGRoR2V0Rm9ybWF0dGVkQ291bnRlclZhbHVlDQorUGRoR2V0TG9nRmlsZVNpemUNCitQZGhHZXRMb2dGaWxlVHlwZUENCitQZGhHZXRMb2dGaWxlVHlwZVcNCitQZGhHZXRMb2dTZXRHVUlEDQorUGRoR2V0UmF3Q291bnRlckFycmF5QQ0KK1BkaEdldFJhd0NvdW50ZXJBcnJheVcNCitQZGhHZXRSYXdDb3VudGVyVmFsdWUNCitQZGhJc1JlYWxUaW1lUXVlcnkNCitQZGhMaXN0TG9nRmlsZUhlYWRlckENCitQZGhMaXN0TG9nRmlsZUhlYWRlclcNCitQZGhMb29rdXBQZXJmSW5kZXhCeU5hbWVBDQorUGRoTG9va3VwUGVyZkluZGV4QnlOYW1lVw0KK1BkaExvb2t1cFBlcmZOYW1lQnlJbmRleEENCitQZGhMb29rdXBQZXJmTmFtZUJ5SW5kZXhXDQorUGRoTWFrZUNvdW50ZXJQYXRoQQ0KK1BkaE1ha2VDb3VudGVyUGF0aFcNCitQZGhPcGVuTG9nQQ0KK1BkaE9wZW5Mb2dXDQorUGRoT3BlblF1ZXJ5DQorUGRoT3BlblF1ZXJ5QQ0KK1BkaE9wZW5RdWVyeUgNCitQZGhPcGVuUXVlcnlXDQorUGRoUGFyc2VDb3VudGVyUGF0aEENCitQZGhQYXJzZUNvdW50ZXJQYXRoVw0KK1BkaFBhcnNlSW5zdGFuY2VOYW1lQQ0KK1BkaFBhcnNlSW5zdGFuY2VOYW1lVw0KK1BkaFBsYUFkZEl0ZW1BDQorUGRoUGxhQWRkSXRlbVcNCitQZGhQbGFDcmVhdGVBDQorUGRoUGxhQ3JlYXRlVw0KK1BkaFBsYURlbGV0ZUENCitQZGhQbGFEZWxldGVXDQorUGRoUGxhRG93bmdyYWRlVw0KK1BkaFBsYUVudW1Db2xsZWN0aW9uc0ENCitQZGhQbGFFbnVtQ29sbGVjdGlvbnNXDQorUGRoUGxhR2V0SW5mb0ENCitQZGhQbGFHZXRJbmZvVw0KK1BkaFBsYUdldExvZ0ZpbGVOYW1lVw0KK1BkaFBsYUdldFNjaGVkdWxlQQ0KK1BkaFBsYUdldFNjaGVkdWxlVw0KK1BkaFBsYVJlbW92ZUFsbEl0ZW1zQQ0KK1BkaFBsYVJlbW92ZUFsbEl0ZW1zVw0KK1BkaFBsYVNjaGVkdWxlQQ0KK1BkaFBsYVNjaGVkdWxlVw0KK1BkaFBsYVNldEluZm9BDQorUGRoUGxhU2V0SW5mb1cNCitQZGhQbGFTZXRJdGVtTGlzdEENCitQZGhQbGFTZXRJdGVtTGlzdFcNCitQZGhQbGFTZXRSdW5Bc0ENCitQZGhQbGFTZXRSdW5Bc1cNCitQZGhQbGFTdGFydEENCitQZGhQbGFTdGFydFcNCitQZGhQbGFTdG9wQQ0KK1BkaFBsYVN0b3BXDQorUGRoUGxhVXBncmFkZVcNCitQZGhQbGFWYWxpZGF0ZUluZm9BDQorUGRoUGxhVmFsaWRhdGVJbmZvVw0KK1BkaFJlYWRSYXdMb2dSZWNvcmQNCitQZGhSZWxvZ0ENCitQZGhSZWxvZ1cNCitQZGhSZW1vdmVDb3VudGVyDQorUGRoU2VsZWN0RGF0YVNvdXJjZUENCitQZGhTZWxlY3REYXRhU291cmNlVw0KK1BkaFNldENvdW50ZXJTY2FsZUZhY3Rvcg0KK1BkaFNldERlZmF1bHRSZWFsVGltZURhdGFTb3VyY2UNCitQZGhTZXRMb2dTZXRSdW5JRA0KK1BkaFNldFF1ZXJ5VGltZVJhbmdlDQorUGRoVHJhbnNsYXRlMDA5Q291bnRlckENCitQZGhUcmFuc2xhdGUwMDlDb3VudGVyVw0KK1BkaFRyYW5zbGF0ZUxvY2FsZUNvdW50ZXJBDQorUGRoVHJhbnNsYXRlTG9jYWxlQ291bnRlclcNCitQZGhVcGRhdGVMb2dBDQorUGRoVXBkYXRlTG9nRmlsZUNhdGFsb2cNCitQZGhVcGRhdGVMb2dXDQorUGRoVmFsaWRhdGVQYXRoQQ0KK1BkaFZhbGlkYXRlUGF0aFcNCitQZGhWYkFkZENvdW50ZXINCitQZGhWYkNyZWF0ZUNvdW50ZXJQYXRoTGlzdA0KK1BkaFZiR2V0Q291bnRlclBhdGhFbGVtZW50cw0KK1BkaFZiR2V0Q291bnRlclBhdGhGcm9tTGlzdA0KK1BkaFZiR2V0RG91YmxlQ291bnRlclZhbHVlDQorUGRoVmJHZXRMb2dGaWxlU2l6ZQ0KK1BkaFZiR2V0T25lQ291bnRlclBhdGgNCitQZGhWYklzR29vZFN0YXR1cw0KK1BkaFZiT3BlbkxvZw0KK1BkaFZiT3BlblF1ZXJ5DQorUGRoVmJVcGRhdGVMb2cNCitQZGhWZXJpZnlTUUxEQkENCitQZGhWZXJpZnlTUUxEQlcNCitQZGhpUGxhMjAwM1NQMUluc3RhbGxlZA0KK1BkaGlQbGFEb3duZ3JhZGUNCitQZGhpUGxhRm9ybWF0QmxhbmtzQQ0KK1BkaGlQbGFGb3JtYXRCbGFua3NXDQorUGRoaVBsYUdldFZlcnNpb24NCitQZGhpUGxhUnVuQXMNCitQZGhpUGxhU2V0UnVuQXMNCitQZGhpUGxhVXBncmFkZQ0KK1BsYVRpbWVJbmZvVG9NaWxsaVNlY29uZHMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cGVyZmN0cnMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3BlcmZjdHJzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNjdkYjk5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3BlcmZjdHJzLmRlZgpAQCAtMCwwICsxLDI2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHBlcmZjdHJzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBwZXJmY3Rycy5kbGwNCitFWFBPUlRTDQorT3Blbk5iZlBlcmZvcm1hbmNlRGF0YQ0KK0NvbGxlY3ROYmZQZXJmb3JtYW5jZURhdGENCitDbG9zZU5iZlBlcmZvcm1hbmNlRGF0YQ0KK09wZW5UY3BJcFBlcmZvcm1hbmNlRGF0YQ0KK0NvbGxlY3RUY3BJcFBlcmZvcm1hbmNlRGF0YQ0KK0Nsb3NlVGNwSXBQZXJmb3JtYW5jZURhdGENCitPcGVuSVBYUGVyZm9ybWFuY2VEYXRhDQorQ29sbGVjdElQWFBlcmZvcm1hbmNlRGF0YQ0KK0Nsb3NlSVBYUGVyZm9ybWFuY2VEYXRhDQorT3BlblNQWFBlcmZvcm1hbmNlRGF0YQ0KK0NvbGxlY3RTUFhQZXJmb3JtYW5jZURhdGENCitDbG9zZVNQWFBlcmZvcm1hbmNlRGF0YQ0KK09wZW5OV05CUGVyZm9ybWFuY2VEYXRhDQorQ29sbGVjdE5XTkJQZXJmb3JtYW5jZURhdGENCitDbG9zZU5XTkJQZXJmb3JtYW5jZURhdGENCitPcGVuRGhjcFBlcmZvcm1hbmNlRGF0YQ0KK0NvbGxlY3REaGNwUGVyZm9ybWFuY2VEYXRhDQorQ2xvc2VEaGNwUGVyZm9ybWFuY2VEYXRhDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3BlcmZkaXNrLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dwZXJmZGlzay5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzRiZDc5OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dwZXJmZGlzay5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBQZXJmRGlzay5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUGVyZkRpc2suZGxsDQorRVhQT1JUUw0KK0Nsb3NlRGlza09iamVjdA0KK0NvbGxlY3REaXNrT2JqZWN0RGF0YQ0KK09wZW5EaXNrT2JqZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3BlcmZuZXQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3BlcmZuZXQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI3MGM0ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cGVyZm5ldC5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBQZXJmTmV0LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBQZXJmTmV0LmRsbA0KK0VYUE9SVFMNCitDbG9zZU5ldFN2Y3NPYmplY3QNCitDb2xsZWN0TmV0U3Zjc09iamVjdERhdGENCitPcGVuTmV0U3Zjc09iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dwZXJmb3MuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3BlcmZvcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjg2Y2U1NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dwZXJmb3MuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUGVyZk9TLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBQZXJmT1MuZGxsDQorRVhQT1JUUw0KK0Nsb3NlT1NPYmplY3QNCitDb2xsZWN0T1NPYmplY3REYXRhDQorT3Blbk9TT2JqZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3BlcmZwcm9jLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dwZXJmcHJvYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2M5NGY4YQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dwZXJmcHJvYy5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBQZXJmUHJvYy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUGVyZlByb2MuZGxsDQorRVhQT1JUUw0KK0Nsb3NlU3lzUHJvY2Vzc09iamVjdA0KK0NvbGxlY3RTeXNQcm9jZXNzT2JqZWN0RGF0YQ0KK09wZW5TeXNQcm9jZXNzT2JqZWN0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3BlcmZ0cy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cGVyZnRzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNmJiYWY0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3BlcmZ0cy5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBQZXJmVFMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFBlcmZUUy5kbGwNCitFWFBPUlRTDQorQ2xvc2VUU09iamVjdA0KK0NvbGxlY3RUU09iamVjdERhdGENCitPcGVuVFNPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cGhvdG93aXouZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3Bob3Rvd2l6LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42M2EzNTNhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3Bob3Rvd2l6LmRlZgpAQCAtMCwwICsxLDE1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFBIT1RPV0laLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBQSE9UT1dJWi5kbGwNCitFWFBPUlRTDQorVXNlUFBXRm9yUHJpbnRUbw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsSW5zdGFsbA0KK0RsbE1haW4NCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cGlkLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dwaWQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM5NGEzYjUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cGlkLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHBpZC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcGlkLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dwaWRnZW4uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3BpZGdlbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTZlOTU3OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dwaWRnZW4uZGVmCkBAIC0wLDAgKzEsMjAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUElER2VuLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBQSURHZW4uZGxsDQorRVhQT1JUUw0KK1BJREdlbkENCitQSURHZW5XDQorUElER2VuU2ltcEENCitQSURHZW5TaW1wVw0KK1NldHVwUElER2VuQQ0KK1NldHVwUElER2VuVw0KK1BJREdlbkV4QQ0KK1BJREdlbkV4Vw0KK1NldHVwUElER2VuRXhBDQorU2V0dXBQSURHZW5FeFcNCitQSURHZW5FeDJBDQorUElER2VuRXgyVw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dwamxtb24uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3BqbG1vbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjBlODIwZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dwamxtb24uZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBQSkxNT04uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFBKTE1PTi5kbGwNCitFWFBPUlRTDQorSW5pdGlhbGl6ZVByaW50TW9uaXRvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dwbmdmaWx0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dwbmdmaWx0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYjhkMzY2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3BuZ2ZpbHQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUE5HRklMVEVSLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBQTkdGSUxURVIuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3BvbHN0b3JlLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dwb2xzdG9yZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmJjOGIwMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dwb2xzdG9yZS5kZWYKQEAgLTAsMCArMSw3MiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBQT0xTVE9SRS5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUE9MU1RPUkUuRExMDQorRVhQT1JUUw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0lQU2VjQWxsb2NQb2xNZW0NCitJUFNlY0FsbG9jUG9sU3RyDQorSVBTZWNBc3NpZ25Qb2xpY3kNCitJUFNlY0Nob29zZURyaXZlckJvb3RNb2RlDQorSVBTZWNDbGVhcldNSVN0b3JlDQorSVBTZWNDbG9zZVBvbGljeVN0b3JlDQorSVBTZWNDb3B5QXV0aE1ldGhvZA0KK0lQU2VjQ29weUZpbHRlckRhdGENCitJUFNlY0NvcHlGaWx0ZXJTcGVjDQorSVBTZWNDb3B5SVNBS01QRGF0YQ0KK0lQU2VjQ29weU5GQURhdGENCitJUFNlY0NvcHlOZWdQb2xEYXRhDQorSVBTZWNDb3B5UG9saWN5RGF0YQ0KK0lQU2VjQ3JlYXRlRmlsdGVyRGF0YQ0KK0lQU2VjQ3JlYXRlSVNBS01QRGF0YQ0KK0lQU2VjQ3JlYXRlTkZBRGF0YQ0KK0lQU2VjQ3JlYXRlTmVnUG9sRGF0YQ0KK0lQU2VjQ3JlYXRlUG9saWN5RGF0YQ0KK0lQU2VjRGVsZXRlRmlsdGVyRGF0YQ0KK0lQU2VjRGVsZXRlSVNBS01QRGF0YQ0KK0lQU2VjRGVsZXRlTkZBRGF0YQ0KK0lQU2VjRGVsZXRlTmVnUG9sRGF0YQ0KK0lQU2VjRGVsZXRlUG9saWN5RGF0YQ0KK0lQU2VjRW51bUZpbHRlckRhdGENCitJUFNlY0VudW1JU0FLTVBEYXRhDQorSVBTZWNFbnVtTkZBRGF0YQ0KK0lQU2VjRW51bU5lZ1BvbERhdGENCitJUFNlY0VudW1Qb2xpY3lEYXRhDQorSVBTZWNFeHBvcnRQb2xpY2llcw0KK0lQU2VjRnJlZUZpbHRlckRhdGENCitJUFNlY0ZyZWVGaWx0ZXJTcGVjDQorSVBTZWNGcmVlRmlsdGVyU3BlY3MNCitJUFNlY0ZyZWVJU0FLTVBEYXRhDQorSVBTZWNGcmVlTXVsRmlsdGVyRGF0YQ0KK0lQU2VjRnJlZU11bElTQUtNUERhdGENCitJUFNlY0ZyZWVNdWxORkFEYXRhDQorSVBTZWNGcmVlTXVsTmVnUG9sRGF0YQ0KK0lQU2VjRnJlZU11bFBvbGljeURhdGENCitJUFNlY0ZyZWVORkFEYXRhDQorSVBTZWNGcmVlTmVnUG9sRGF0YQ0KK0lQU2VjRnJlZVBvbE1lbQ0KK0lQU2VjRnJlZVBvbFN0cg0KK0lQU2VjRnJlZVBvbGljeURhdGENCitJUFNlY0dldEFzc2lnbmVkRG9tYWluUG9saWN5TmFtZQ0KK0lQU2VjR2V0QXNzaWduZWRQb2xpY3lEYXRhDQorSVBTZWNHZXRGaWx0ZXJEYXRhDQorSVBTZWNHZXRJU0FLTVBEYXRhDQorSVBTZWNHZXROZWdQb2xEYXRhDQorSVBTZWNJbXBvcnRQb2xpY2llcw0KK0lQU2VjSXNEb21haW5Qb2xpY3lBc3NpZ25lZA0KK0lQU2VjSXNMb2NhbFBvbGljeUFzc2lnbmVkDQorSVBTZWNPcGVuUG9saWN5U3RvcmUNCitJUFNlY1JlYWxsb2NhdGVQb2xNZW0NCitJUFNlY1JlYWxsb2NhdGVQb2xTdHINCitJUFNlY1Jlc3RvcmVEZWZhdWx0UG9saWNpZXMNCitJUFNlY1NldEZpbHRlckRhdGENCitJUFNlY1NldElTQUtNUERhdGENCitJUFNlY1NldE5GQURhdGENCitJUFNlY1NldE5lZ1BvbERhdGENCitJUFNlY1NldFBvbGljeURhdGENCitJUFNlY1VuYXNzaWduUG9saWN5DQorV3JpdGVEaXJlY3RvcnlQb2xpY3lUb1dNSQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dwb3dycHJvZi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cG93cnByb2YuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRjN2JjMDcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cG93cnByb2YuZGVmCkBAIC0wLDAgKzEsMzEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUE9XUlBST0YuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFBPV1JQUk9GLmRsbA0KK0VYUE9SVFMNCitDYWxsTnRQb3dlckluZm9ybWF0aW9uDQorQ2FuVXNlcldyaXRlUHdyU2NoZW1lDQorRGVsZXRlUHdyU2NoZW1lDQorRW51bVB3clNjaGVtZXMNCitHZXRBY3RpdmVQd3JTY2hlbWUNCitHZXRDdXJyZW50UG93ZXJQb2xpY2llcw0KK0dldFB3ckNhcGFiaWxpdGllcw0KK0dldFB3ckRpc2tTcGluZG93blJhbmdlDQorSXNBZG1pbk92ZXJyaWRlQWN0aXZlDQorSXNQd3JIaWJlcm5hdGVBbGxvd2VkDQorSXNQd3JTaHV0ZG93bkFsbG93ZWQNCitJc1B3clN1c3BlbmRBbGxvd2VkDQorTG9hZEN1cnJlbnRQd3JTY2hlbWUNCitNZXJnZUxlZ2FjeVB3clNjaGVtZQ0KK1JlYWRHbG9iYWxQd3JQb2xpY3kNCitSZWFkUHJvY2Vzc29yUHdyU2NoZW1lDQorUmVhZFB3clNjaGVtZQ0KK1NldEFjdGl2ZVB3clNjaGVtZQ0KK1NldFN1c3BlbmRTdGF0ZQ0KK1ZhbGlkYXRlUG93ZXJQb2xpY2llcw0KK1dyaXRlR2xvYmFsUHdyUG9saWN5DQorV3JpdGVQcm9jZXNzb3JQd3JTY2hlbWUNCitXcml0ZVB3clNjaGVtZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dwcmludHVpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dwcmludHVpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MjI4NDkyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3ByaW50dWkuZGVmCkBAIC0wLDAgKzEsMzMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUFJJTlRVSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUFJJTlRVSS5kbGwNCitFWFBPUlRTDQorQ29uc3RydWN0UHJpbnRlckZyaWVuZGx5TmFtZQ0KK0RvY3VtZW50UHJvcGVydGllc1dyYXANCitQblBJbnRlcmZhY2UNCitQcmludFVJRW50cnlXDQorUHJpbnRlclByb3BQYWdlUHJvdmlkZXINCitDb25uZWN0VG9QcmludGVyRGxnDQorQ29ubmVjdFRvUHJpbnRlclByb3BlcnR5UGFnZQ0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsTWFpbg0KK0dldExlZ2FjeVByaW50VUkNCitQcmludE5vdGlmeVRyYXlfRXhpdA0KK1ByaW50Tm90aWZ5VHJheV9Jbml0DQorUmVnaXN0ZXJQcmludE5vdGlmeQ0KK1Nob3dFcnJvck1lc3NhZ2VIUg0KK1Nob3dFcnJvck1lc3NhZ2VTQw0KK1VucmVnaXN0ZXJQcmludE5vdGlmeQ0KK2JGb2xkZXJFbnVtUHJpbnRlcnMNCitiRm9sZGVyR2V0UHJpbnRlcg0KK2JGb2xkZXJSZWZyZXNoDQorYlByaW50ZXJTZXR1cA0KK3ZEb2N1bWVudERlZmF1bHRzDQordlByaW50ZXJQcm9wUGFnZXMNCit2UXVldWVDcmVhdGUNCit2U2VydmVyUHJvcFBhZ2VzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3Byb2ZtYXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3Byb2ZtYXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBlZGY0NTgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cHJvZm1hcC5kZWYKQEAgLTAsMCArMSwxNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBQUk9GTUFQLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBQUk9GTUFQLmRsbA0KK0VYUE9SVFMNCitEbGxNYWluDQorSW5pdGlhbGl6ZVByb2ZpbGVNYXBwaW5nQXBpDQorUmVtYXBBbmRNb3ZlVXNlckENCitSZW1hcEFuZE1vdmVVc2VyVw0KK1JlbWFwVXNlclByb2ZpbGVBDQorUmVtYXBVc2VyUHJvZmlsZVcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cHJvdnRocmQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3Byb3Z0aHJkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNWM0MmViCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3Byb3Z0aHJkLmRlZgpAQCAtMCwwICsxLDE5NDIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUFJPVlRIUkQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFBST1ZUSFJELmRsbA0KK0VYUE9SVFMNCis7IFBBR1BBRzo6PyRDb21wYXJlRWxlbWVudHMoWUdIUEJRQUcwQFopDQorPz8kQ29tcGFyZUVsZW1lbnRzQFBBR1BBR0BAWUdIUEJRQUcwQFoNCis7IFBBRzo6PyRIYXNoS2V5KFlHSVBBR0BaKQ0KKz8/JEhhc2hLZXlAUEFHQEBZR0lQQUdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENCU3RyaW5nOjpDQlN0cmluZyhpbnQpDQorPz8wQ0JTdHJpbmdAQFFBRUBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQlN0cmluZzo6Q0JTdHJpbmcodW5zaWduZWQgc2hvcnQgKikNCis/PzBDQlN0cmluZ0BAUUFFQFBBR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0JTdHJpbmc6OkNCU3RyaW5nKHZvaWQpDQorPz8wQ0JTdHJpbmdAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENvbmp1bmN0aW9uczo6Q29uanVuY3Rpb25zKHVuc2lnbmVkIGxvbmcpDQorPz8wQ29uanVuY3Rpb25zQEBRQUVAS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgRGlzanVuY3Rpb25zOjpEaXNqdW5jdGlvbnModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz8/MERpc2p1bmN0aW9uc0BAUUFFQEtLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQYXJ0aXRpb25TZXQ6OlBhcnRpdGlvblNldChjbGFzcyBQYXJ0aXRpb25TZXQgY29uc3QgJikNCis/PzBQYXJ0aXRpb25TZXRAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUGFydGl0aW9uU2V0OjpQYXJ0aXRpb25TZXQodm9pZCkNCis/PzBQYXJ0aXRpb25TZXRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZBbmFseXNlcjo6UHJvdkFuYWx5c2VyKGNsYXNzIFByb3ZBbmFseXNlciBjb25zdCAmKQ0KKz8/MFByb3ZBbmFseXNlckBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92QW5hbHlzZXI6OlByb3ZBbmFseXNlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFByb3ZBbmFseXNlckBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkJpdFN0cmluZ1R5cGU6OlByb3ZCaXRTdHJpbmdUeXBlKGNsYXNzIFByb3ZCaXRTdHJpbmdUeXBlIGNvbnN0ICYpDQorPz8wUHJvdkJpdFN0cmluZ1R5cGVAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkJpdFN0cmluZ1R5cGU6OlByb3ZCaXRTdHJpbmdUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wUHJvdkJpdFN0cmluZ1R5cGVAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZCaXRTdHJpbmdUeXBlOjpQcm92Qml0U3RyaW5nVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIFByb3ZPY3RldFN0cmluZyBjb25zdCAmKQ0KKz8/MFByb3ZCaXRTdHJpbmdUeXBlQEBRQUVAUEJHQUJWUHJvdk9jdGV0U3RyaW5nQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZCaXRTdHJpbmdUeXBlOjpQcm92Qml0U3RyaW5nVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogKix1bnNpZ25lZCBsb25nIGNvbnN0ICYpDQorPz8wUHJvdkJpdFN0cmluZ1R5cGVAQFFBRUBQQkdQQVBCR0FCS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkNvdW50ZXI2NDo6UHJvdkNvdW50ZXI2NChjbGFzcyBQcm92Q291bnRlcjY0IGNvbnN0ICYpDQorPz8wUHJvdkNvdW50ZXI2NEBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92Q291bnRlcjY0OjpQcm92Q291bnRlcjY0KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/PzBQcm92Q291bnRlcjY0QEBRQUVAS0tAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZDb3VudGVyNjRUeXBlOjpQcm92Q291bnRlcjY0VHlwZShjbGFzcyBQcm92Q291bnRlcjY0VHlwZSBjb25zdCAmKQ0KKz8/MFByb3ZDb3VudGVyNjRUeXBlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZDb3VudGVyNjRUeXBlOjpQcm92Q291bnRlcjY0VHlwZShjbGFzcyBQcm92Q291bnRlcjY0IGNvbnN0ICYpDQorPz8wUHJvdkNvdW50ZXI2NFR5cGVAQFFBRUBBQlZQcm92Q291bnRlcjY0QEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZDb3VudGVyNjRUeXBlOjpQcm92Q291bnRlcjY0VHlwZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorPz8wUHJvdkNvdW50ZXI2NFR5cGVAQFFBRUBLS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkNvdW50ZXI2NFR5cGU6OlByb3ZDb3VudGVyNjRUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wUHJvdkNvdW50ZXI2NFR5cGVAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZDb3VudGVyNjRUeXBlOjpQcm92Q291bnRlcjY0VHlwZSh2b2lkKQ0KKz8/MFByb3ZDb3VudGVyNjRUeXBlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92Q291bnRlcjo6UHJvdkNvdW50ZXIoY2xhc3MgUHJvdkNvdW50ZXIgY29uc3QgJikNCis/PzBQcm92Q291bnRlckBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92Q291bnRlcjo6UHJvdkNvdW50ZXIodW5zaWduZWQgbG9uZykNCis/PzBQcm92Q291bnRlckBAUUFFQEtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZDb3VudGVyVHlwZTo6UHJvdkNvdW50ZXJUeXBlKGNsYXNzIFByb3ZDb3VudGVyVHlwZSBjb25zdCAmKQ0KKz8/MFByb3ZDb3VudGVyVHlwZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92Q291bnRlclR5cGU6OlByb3ZDb3VudGVyVHlwZShjbGFzcyBQcm92Q291bnRlciBjb25zdCAmKQ0KKz8/MFByb3ZDb3VudGVyVHlwZUBAUUFFQEFCVlByb3ZDb3VudGVyQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZDb3VudGVyVHlwZTo6UHJvdkNvdW50ZXJUeXBlKHVuc2lnbmVkIGxvbmcpDQorPz8wUHJvdkNvdW50ZXJUeXBlQEBRQUVAS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkNvdW50ZXJUeXBlOjpQcm92Q291bnRlclR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBQcm92Q291bnRlclR5cGVAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZDb3VudGVyVHlwZTo6UHJvdkNvdW50ZXJUeXBlKHZvaWQpDQorPz8wUHJvdkNvdW50ZXJUeXBlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92RGF0ZVRpbWVUeXBlOjpQcm92RGF0ZVRpbWVUeXBlKGNsYXNzIFByb3ZEYXRlVGltZVR5cGUgY29uc3QgJikNCis/PzBQcm92RGF0ZVRpbWVUeXBlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZEYXRlVGltZVR5cGU6OlByb3ZEYXRlVGltZVR5cGUoY2xhc3MgUHJvdk9jdGV0U3RyaW5nIGNvbnN0ICYpDQorPz8wUHJvdkRhdGVUaW1lVHlwZUBAUUFFQEFCVlByb3ZPY3RldFN0cmluZ0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92RGF0ZVRpbWVUeXBlOjpQcm92RGF0ZVRpbWVUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wUHJvdkRhdGVUaW1lVHlwZUBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkRhdGVUaW1lVHlwZTo6UHJvdkRhdGVUaW1lVHlwZSh2b2lkKQ0KKz8/MFByb3ZEYXRlVGltZVR5cGVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZEZWJ1Z0xvZzo6UHJvdkRlYnVnTG9nKGNoYXIpDQorPz8wUHJvdkRlYnVnTG9nQEBRQUVAREBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkRpc3BsYXlTdHJpbmdUeXBlOjpQcm92RGlzcGxheVN0cmluZ1R5cGUoY2xhc3MgUHJvdkRpc3BsYXlTdHJpbmdUeXBlIGNvbnN0ICYpDQorPz8wUHJvdkRpc3BsYXlTdHJpbmdUeXBlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZEaXNwbGF5U3RyaW5nVHlwZTo6UHJvdkRpc3BsYXlTdHJpbmdUeXBlKGNsYXNzIFByb3ZPY3RldFN0cmluZyBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wUHJvdkRpc3BsYXlTdHJpbmdUeXBlQEBRQUVAQUJWUHJvdk9jdGV0U3RyaW5nQEBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZEaXNwbGF5U3RyaW5nVHlwZTo6UHJvdkRpc3BsYXlTdHJpbmdUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBQcm92RGlzcGxheVN0cmluZ1R5cGVAQFFBRUBQQkcwQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92RGlzcGxheVN0cmluZ1R5cGU6OlByb3ZEaXNwbGF5U3RyaW5nVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFByb3ZEaXNwbGF5U3RyaW5nVHlwZUBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkVudW1lcmF0ZWRUeXBlOjpQcm92RW51bWVyYXRlZFR5cGUoY2xhc3MgUHJvdkVudW1lcmF0ZWRUeXBlIGNvbnN0ICYpDQorPz8wUHJvdkVudW1lcmF0ZWRUeXBlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZFbnVtZXJhdGVkVHlwZTo6UHJvdkVudW1lcmF0ZWRUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBQcm92RW51bWVyYXRlZFR5cGVAQFFBRUBQQkcwQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92RW51bWVyYXRlZFR5cGU6OlByb3ZFbnVtZXJhdGVkVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFByb3ZFbnVtZXJhdGVkVHlwZUBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkVudW1lcmF0ZWRUeXBlOjpQcm92RW51bWVyYXRlZFR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKixsb25nIGNvbnN0ICYpDQorPz8wUHJvdkVudW1lcmF0ZWRUeXBlQEBRQUVAUEJHQUJKQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92RW51bWVyYXRlZFR5cGU6OlByb3ZFbnVtZXJhdGVkVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIFByb3ZJbnRlZ2VyIGNvbnN0ICYpDQorPz8wUHJvdkVudW1lcmF0ZWRUeXBlQEBRQUVAUEJHQUJWUHJvdkludGVnZXJAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkV2ZW50T2JqZWN0OjpQcm92RXZlbnRPYmplY3QoY2xhc3MgUHJvdkV2ZW50T2JqZWN0IGNvbnN0ICYpDQorPz8wUHJvdkV2ZW50T2JqZWN0QEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZFdmVudE9iamVjdDo6UHJvdkV2ZW50T2JqZWN0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wUHJvdkV2ZW50T2JqZWN0QEBRQUVAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6UHJvdkZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmKQ0KKz8/MFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlQEBRQUVAQUJLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6UHJvdkZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmLGNsYXNzIFByb3ZPY3RldFN0cmluZyBjb25zdCAmKQ0KKz8/MFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlQEBRQUVAQUJLQUJWUHJvdk9jdGV0U3RyaW5nQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlOjpQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZSh1bnNpZ25lZCBsb25nIGNvbnN0ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZUBAUUFFQEFCS1BCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGU6OlByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlKGNsYXNzIFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlIGNvbnN0ICYpDQorPz8wUHJvdkZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGVAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlOjpQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmKQ0KKz8/MFByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZUBAUUFFQEFCS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlOjpQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmLGNsYXNzIFByb3ZPY3RldFN0cmluZyBjb25zdCAmKQ0KKz8/MFByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZUBAUUFFQEFCS0FCVlByb3ZPY3RldFN0cmluZ0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGU6OlByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZSh1bnNpZ25lZCBsb25nIGNvbnN0ICYsdW5zaWduZWQgY2hhciBjb25zdCAqKQ0KKz8/MFByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZUBAUUFFQEFCS1BCRUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlOjpQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wUHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlQEBRQUVAQUJLUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGU6OlByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZShjbGFzcyBQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGUgY29uc3QgJikNCis/PzBQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGVAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZTo6UHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZSh1bnNpZ25lZCBsb25nIGNvbnN0ICYpDQorPz8wUHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZUBAUUFFQEFCS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZTo6UHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZSh1bnNpZ25lZCBsb25nIGNvbnN0ICYsY2xhc3MgUHJvdk9wYXF1ZSBjb25zdCAmKQ0KKz8/MFByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGVAQFFBRUBBQktBQlZQcm92T3BhcXVlQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGU6OlByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmLHVuc2lnbmVkIGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz8/MFByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGVAQFFBRUBBQktQQkVLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92Rml4ZWRMZW5ndGhPcGFxdWVUeXBlOjpQcm92Rml4ZWRMZW5ndGhPcGFxdWVUeXBlKHVuc2lnbmVkIGxvbmcgY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGVAQFFBRUBBQktQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGU6OlByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGUoY2xhc3MgUHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZSBjb25zdCAmKQ0KKz8/MFByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGVAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlOjpQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmKQ0KKz8/MFByb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZUBAUUFFQEFCS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlOjpQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGUodW5zaWduZWQgbG9uZyBjb25zdCAmLGNsYXNzIFByb3ZPY3RldFN0cmluZyBjb25zdCAmKQ0KKz8/MFByb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZUBAUUFFQEFCS0FCVlByb3ZPY3RldFN0cmluZ0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGU6OlByb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZSh1bnNpZ25lZCBsb25nIGNvbnN0ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGVAQFFBRUBBQktQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZTo6UHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlKGNsYXNzIFByb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZSBjb25zdCAmKQ0KKz8/MFByb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92Rml4ZWRUeXBlOjpQcm92Rml4ZWRUeXBlKGNsYXNzIFByb3ZGaXhlZFR5cGUgY29uc3QgJikNCis/PzBQcm92Rml4ZWRUeXBlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZGaXhlZFR5cGU6OlByb3ZGaXhlZFR5cGUodW5zaWduZWQgbG9uZykNCis/PzBQcm92Rml4ZWRUeXBlQEBRQUVAS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkdhdWdlOjpQcm92R2F1Z2UoY2xhc3MgUHJvdkdhdWdlIGNvbnN0ICYpDQorPz8wUHJvdkdhdWdlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZHYXVnZTo6UHJvdkdhdWdlKGxvbmcpDQorPz8wUHJvdkdhdWdlQEBRQUVASkBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkdhdWdlVHlwZTo6UHJvdkdhdWdlVHlwZShjbGFzcyBQcm92R2F1Z2VUeXBlIGNvbnN0ICYpDQorPz8wUHJvdkdhdWdlVHlwZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92R2F1Z2VUeXBlOjpQcm92R2F1Z2VUeXBlKGNsYXNzIFByb3ZHYXVnZSBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wUHJvdkdhdWdlVHlwZUBAUUFFQEFCVlByb3ZHYXVnZUBAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92R2F1Z2VUeXBlOjpQcm92R2F1Z2VUeXBlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBQcm92R2F1Z2VUeXBlQEBRQUVAS1BCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkdhdWdlVHlwZTo6UHJvdkdhdWdlVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wUHJvdkdhdWdlVHlwZUBAUUFFQFBCRzBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZHYXVnZVR5cGU6OlByb3ZHYXVnZVR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBQcm92R2F1Z2VUeXBlQEBRQUVAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92SVBYQWRkcmVzc1R5cGU6OlByb3ZJUFhBZGRyZXNzVHlwZShjbGFzcyBQcm92SVBYQWRkcmVzc1R5cGUgY29uc3QgJikNCis/PzBQcm92SVBYQWRkcmVzc1R5cGVAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdklQWEFkZHJlc3NUeXBlOjpQcm92SVBYQWRkcmVzc1R5cGUoY2xhc3MgUHJvdk9jdGV0U3RyaW5nIGNvbnN0ICYpDQorPz8wUHJvdklQWEFkZHJlc3NUeXBlQEBRQUVAQUJWUHJvdk9jdGV0U3RyaW5nQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZJUFhBZGRyZXNzVHlwZTo6UHJvdklQWEFkZHJlc3NUeXBlKHVuc2lnbmVkIGNoYXIgY29uc3QgKikNCis/PzBQcm92SVBYQWRkcmVzc1R5cGVAQFFBRUBQQkVAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZJUFhBZGRyZXNzVHlwZTo6UHJvdklQWEFkZHJlc3NUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wUHJvdklQWEFkZHJlc3NUeXBlQEBRQUVAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92SVBYQWRkcmVzc1R5cGU6OlByb3ZJUFhBZGRyZXNzVHlwZSh2b2lkKQ0KKz8/MFByb3ZJUFhBZGRyZXNzVHlwZUBAUUFFQFhaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgUHJvdkluc3RhbmNlVHlwZTo6UHJvdkluc3RhbmNlVHlwZShjbGFzcyBQcm92SW5zdGFuY2VUeXBlIGNvbnN0ICYpDQorPz8wUHJvdkluc3RhbmNlVHlwZUBASUFFQEFCVjBAQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBQcm92SW5zdGFuY2VUeXBlOjpQcm92SW5zdGFuY2VUeXBlKGludCxpbnQpDQorPz8wUHJvdkluc3RhbmNlVHlwZUBASUFFQEhIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92SW50ZWdlcjo6UHJvdkludGVnZXIoY2xhc3MgUHJvdkludGVnZXIgY29uc3QgJikNCis/PzBQcm92SW50ZWdlckBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92SW50ZWdlcjo6UHJvdkludGVnZXIobG9uZykNCis/PzBQcm92SW50ZWdlckBAUUFFQEpAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZJbnRlZ2VyVHlwZTo6UHJvdkludGVnZXJUeXBlKGNsYXNzIFByb3ZJbnRlZ2VyVHlwZSBjb25zdCAmKQ0KKz8/MFByb3ZJbnRlZ2VyVHlwZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92SW50ZWdlclR5cGU6OlByb3ZJbnRlZ2VyVHlwZShjbGFzcyBQcm92SW50ZWdlciBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wUHJvdkludGVnZXJUeXBlQEBRQUVAQUJWUHJvdkludGVnZXJAQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkludGVnZXJUeXBlOjpQcm92SW50ZWdlclR5cGUobG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFByb3ZJbnRlZ2VyVHlwZUBAUUFFQEpQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZJbnRlZ2VyVHlwZTo6UHJvdkludGVnZXJUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBQcm92SW50ZWdlclR5cGVAQFFBRUBQQkcwQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92SW50ZWdlclR5cGU6OlByb3ZJbnRlZ2VyVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFByb3ZJbnRlZ2VyVHlwZUBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdklwQWRkcmVzczo6UHJvdklwQWRkcmVzcyhjbGFzcyBQcm92SXBBZGRyZXNzIGNvbnN0ICYpDQorPz8wUHJvdklwQWRkcmVzc0BAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92SXBBZGRyZXNzOjpQcm92SXBBZGRyZXNzKHVuc2lnbmVkIGxvbmcpDQorPz8wUHJvdklwQWRkcmVzc0BAUUFFQEtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZJcEFkZHJlc3M6OlByb3ZJcEFkZHJlc3MoY2hhciBjb25zdCAqKQ0KKz8/MFByb3ZJcEFkZHJlc3NAQFFBRUBQQkRAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZJcEFkZHJlc3NUeXBlOjpQcm92SXBBZGRyZXNzVHlwZShjbGFzcyBQcm92SXBBZGRyZXNzVHlwZSBjb25zdCAmKQ0KKz8/MFByb3ZJcEFkZHJlc3NUeXBlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZJcEFkZHJlc3NUeXBlOjpQcm92SXBBZGRyZXNzVHlwZShjbGFzcyBQcm92SXBBZGRyZXNzIGNvbnN0ICYpDQorPz8wUHJvdklwQWRkcmVzc1R5cGVAQFFBRUBBQlZQcm92SXBBZGRyZXNzQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZJcEFkZHJlc3NUeXBlOjpQcm92SXBBZGRyZXNzVHlwZSh1bnNpZ25lZCBsb25nKQ0KKz8/MFByb3ZJcEFkZHJlc3NUeXBlQEBRQUVAS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdklwQWRkcmVzc1R5cGU6OlByb3ZJcEFkZHJlc3NUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wUHJvdklwQWRkcmVzc1R5cGVAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZJcEFkZHJlc3NUeXBlOjpQcm92SXBBZGRyZXNzVHlwZSh2b2lkKQ0KKz8/MFByb3ZJcEFkZHJlc3NUeXBlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92TGV4aWNvbjo6UHJvdkxleGljb24odm9pZCkNCis/PzBQcm92TGV4aWNvbkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdk1hY0FkZHJlc3NUeXBlOjpQcm92TWFjQWRkcmVzc1R5cGUoY2xhc3MgUHJvdk1hY0FkZHJlc3NUeXBlIGNvbnN0ICYpDQorPz8wUHJvdk1hY0FkZHJlc3NUeXBlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZNYWNBZGRyZXNzVHlwZTo6UHJvdk1hY0FkZHJlc3NUeXBlKGNsYXNzIFByb3ZPY3RldFN0cmluZyBjb25zdCAmKQ0KKz8/MFByb3ZNYWNBZGRyZXNzVHlwZUBAUUFFQEFCVlByb3ZPY3RldFN0cmluZ0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92TWFjQWRkcmVzc1R5cGU6OlByb3ZNYWNBZGRyZXNzVHlwZSh1bnNpZ25lZCBjaGFyIGNvbnN0ICopDQorPz8wUHJvdk1hY0FkZHJlc3NUeXBlQEBRQUVAUEJFQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92TWFjQWRkcmVzc1R5cGU6OlByb3ZNYWNBZGRyZXNzVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFByb3ZNYWNBZGRyZXNzVHlwZUBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdk1hY0FkZHJlc3NUeXBlOjpQcm92TWFjQWRkcmVzc1R5cGUodm9pZCkNCis/PzBQcm92TWFjQWRkcmVzc1R5cGVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZOZWdhdGl2ZVJhbmdlVHlwZTo6UHJvdk5lZ2F0aXZlUmFuZ2VUeXBlKGNsYXNzIFByb3ZOZWdhdGl2ZVJhbmdlVHlwZSBjb25zdCAmKQ0KKz8/MFByb3ZOZWdhdGl2ZVJhbmdlVHlwZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92TmVnYXRpdmVSYW5nZVR5cGU6OlByb3ZOZWdhdGl2ZVJhbmdlVHlwZShsb25nLGxvbmcpDQorPz8wUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlQEBRQUVASkpAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZOZWdhdGl2ZVJhbmdlVHlwZTo6UHJvdk5lZ2F0aXZlUmFuZ2VUeXBlKHZvaWQpDQorPz8wUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92TmV0d29ya0FkZHJlc3NUeXBlOjpQcm92TmV0d29ya0FkZHJlc3NUeXBlKGNsYXNzIFByb3ZOZXR3b3JrQWRkcmVzc1R5cGUgY29uc3QgJikNCis/PzBQcm92TmV0d29ya0FkZHJlc3NUeXBlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZOZXR3b3JrQWRkcmVzc1R5cGU6OlByb3ZOZXR3b3JrQWRkcmVzc1R5cGUoY2xhc3MgUHJvdklwQWRkcmVzcyBjb25zdCAmKQ0KKz8/MFByb3ZOZXR3b3JrQWRkcmVzc1R5cGVAQFFBRUBBQlZQcm92SXBBZGRyZXNzQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZOZXR3b3JrQWRkcmVzc1R5cGU6OlByb3ZOZXR3b3JrQWRkcmVzc1R5cGUodW5zaWduZWQgbG9uZykNCis/PzBQcm92TmV0d29ya0FkZHJlc3NUeXBlQEBRQUVAS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdk5ldHdvcmtBZGRyZXNzVHlwZTo6UHJvdk5ldHdvcmtBZGRyZXNzVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFByb3ZOZXR3b3JrQWRkcmVzc1R5cGVAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZOZXR3b3JrQWRkcmVzc1R5cGU6OlByb3ZOZXR3b3JrQWRkcmVzc1R5cGUodm9pZCkNCis/PzBQcm92TmV0d29ya0FkZHJlc3NUeXBlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92TnVsbDo6UHJvdk51bGwodm9pZCkNCis/PzBQcm92TnVsbEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdk51bGxUeXBlOjpQcm92TnVsbFR5cGUoY2xhc3MgUHJvdk51bGxUeXBlIGNvbnN0ICYpDQorPz8wUHJvdk51bGxUeXBlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZOdWxsVHlwZTo6UHJvdk51bGxUeXBlKGNsYXNzIFByb3ZOdWxsIGNvbnN0ICYpDQorPz8wUHJvdk51bGxUeXBlQEBRQUVAQUJWUHJvdk51bGxAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdk51bGxUeXBlOjpQcm92TnVsbFR5cGUodm9pZCkNCis/PzBQcm92TnVsbFR5cGVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZPU0lBZGRyZXNzVHlwZTo6UHJvdk9TSUFkZHJlc3NUeXBlKGNsYXNzIFByb3ZPU0lBZGRyZXNzVHlwZSBjb25zdCAmKQ0KKz8/MFByb3ZPU0lBZGRyZXNzVHlwZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92T1NJQWRkcmVzc1R5cGU6OlByb3ZPU0lBZGRyZXNzVHlwZShjbGFzcyBQcm92T2N0ZXRTdHJpbmcgY29uc3QgJikNCis/PzBQcm92T1NJQWRkcmVzc1R5cGVAQFFBRUBBQlZQcm92T2N0ZXRTdHJpbmdAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdk9TSUFkZHJlc3NUeXBlOjpQcm92T1NJQWRkcmVzc1R5cGUodW5zaWduZWQgY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorPz8wUHJvdk9TSUFkZHJlc3NUeXBlQEBRQUVAUEJFS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdk9TSUFkZHJlc3NUeXBlOjpQcm92T1NJQWRkcmVzc1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBQcm92T1NJQWRkcmVzc1R5cGVAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZPU0lBZGRyZXNzVHlwZTo6UHJvdk9TSUFkZHJlc3NUeXBlKHZvaWQpDQorPz8wUHJvdk9TSUFkZHJlc3NUeXBlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6UHJvdk9iamVjdElkZW50aWZpZXIoY2xhc3MgUHJvdk9iamVjdElkZW50aWZpZXIgY29uc3QgJikNCis/PzBQcm92T2JqZWN0SWRlbnRpZmllckBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6UHJvdk9iamVjdElkZW50aWZpZXIoY2hhciBjb25zdCAqKQ0KKz8/MFByb3ZPYmplY3RJZGVudGlmaWVyQEBRQUVAUEJEQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6UHJvdk9iamVjdElkZW50aWZpZXIodW5zaWduZWQgbG9uZyBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorPz8wUHJvdk9iamVjdElkZW50aWZpZXJAQFFBRUBQQktLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllclR5cGU6OlByb3ZPYmplY3RJZGVudGlmaWVyVHlwZShjbGFzcyBQcm92T2JqZWN0SWRlbnRpZmllclR5cGUgY29uc3QgJikNCis/PzBQcm92T2JqZWN0SWRlbnRpZmllclR5cGVAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdk9iamVjdElkZW50aWZpZXJUeXBlOjpQcm92T2JqZWN0SWRlbnRpZmllclR5cGUoY2xhc3MgUHJvdk9iamVjdElkZW50aWZpZXIgY29uc3QgJikNCis/PzBQcm92T2JqZWN0SWRlbnRpZmllclR5cGVAQFFBRUBBQlZQcm92T2JqZWN0SWRlbnRpZmllckBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllclR5cGU6OlByb3ZPYmplY3RJZGVudGlmaWVyVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFByb3ZPYmplY3RJZGVudGlmaWVyVHlwZUBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdk9iamVjdElkZW50aWZpZXJUeXBlOjpQcm92T2JqZWN0SWRlbnRpZmllclR5cGUodW5zaWduZWQgbG9uZyBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorPz8wUHJvdk9iamVjdElkZW50aWZpZXJUeXBlQEBRQUVAUEJLS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdk9iamVjdElkZW50aWZpZXJUeXBlOjpQcm92T2JqZWN0SWRlbnRpZmllclR5cGUodm9pZCkNCis/PzBQcm92T2JqZWN0SWRlbnRpZmllclR5cGVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZPY3RldFN0cmluZzo6UHJvdk9jdGV0U3RyaW5nKGNsYXNzIFByb3ZPY3RldFN0cmluZyBjb25zdCAmKQ0KKz8/MFByb3ZPY3RldFN0cmluZ0BAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92T2N0ZXRTdHJpbmc6OlByb3ZPY3RldFN0cmluZyh1bnNpZ25lZCBjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/PzBQcm92T2N0ZXRTdHJpbmdAQFFBRUBQQkVLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92T2N0ZXRTdHJpbmdUeXBlOjpQcm92T2N0ZXRTdHJpbmdUeXBlKGNsYXNzIFByb3ZPY3RldFN0cmluZ1R5cGUgY29uc3QgJikNCis/PzBQcm92T2N0ZXRTdHJpbmdUeXBlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZPY3RldFN0cmluZ1R5cGU6OlByb3ZPY3RldFN0cmluZ1R5cGUoY2xhc3MgUHJvdk9jdGV0U3RyaW5nIGNvbnN0ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBQcm92T2N0ZXRTdHJpbmdUeXBlQEBRQUVAQUJWUHJvdk9jdGV0U3RyaW5nQEBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZPY3RldFN0cmluZ1R5cGU6OlByb3ZPY3RldFN0cmluZ1R5cGUodW5zaWduZWQgY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBQcm92T2N0ZXRTdHJpbmdUeXBlQEBRQUVAUEJFS1BCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdk9jdGV0U3RyaW5nVHlwZTo6UHJvdk9jdGV0U3RyaW5nVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wUHJvdk9jdGV0U3RyaW5nVHlwZUBAUUFFQFBCRzBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZPY3RldFN0cmluZ1R5cGU6OlByb3ZPY3RldFN0cmluZ1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBQcm92T2N0ZXRTdHJpbmdUeXBlQEBRQUVAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92T3BhcXVlOjpQcm92T3BhcXVlKGNsYXNzIFByb3ZPcGFxdWUgY29uc3QgJikNCis/PzBQcm92T3BhcXVlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZPcGFxdWU6OlByb3ZPcGFxdWUodW5zaWduZWQgY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorPz8wUHJvdk9wYXF1ZUBAUUFFQFBCRUtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZPcGFxdWVUeXBlOjpQcm92T3BhcXVlVHlwZShjbGFzcyBQcm92T3BhcXVlVHlwZSBjb25zdCAmKQ0KKz8/MFByb3ZPcGFxdWVUeXBlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZPcGFxdWVUeXBlOjpQcm92T3BhcXVlVHlwZShjbGFzcyBQcm92T3BhcXVlIGNvbnN0ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBQcm92T3BhcXVlVHlwZUBAUUFFQEFCVlByb3ZPcGFxdWVAQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdk9wYXF1ZVR5cGU6OlByb3ZPcGFxdWVUeXBlKHVuc2lnbmVkIGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wUHJvdk9wYXF1ZVR5cGVAQFFBRUBQQkVLUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92T3BhcXVlVHlwZTo6UHJvdk9wYXF1ZVR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFByb3ZPcGFxdWVUeXBlQEBRQUVAUEJHMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdk9wYXF1ZVR5cGU6OlByb3ZPcGFxdWVUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wUHJvdk9wYXF1ZVR5cGVAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZQaHlzQWRkcmVzc1R5cGU6OlByb3ZQaHlzQWRkcmVzc1R5cGUoY2xhc3MgUHJvdlBoeXNBZGRyZXNzVHlwZSBjb25zdCAmKQ0KKz8/MFByb3ZQaHlzQWRkcmVzc1R5cGVAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdlBoeXNBZGRyZXNzVHlwZTo6UHJvdlBoeXNBZGRyZXNzVHlwZShjbGFzcyBQcm92T2N0ZXRTdHJpbmcgY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFByb3ZQaHlzQWRkcmVzc1R5cGVAQFFBRUBBQlZQcm92T2N0ZXRTdHJpbmdAQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdlBoeXNBZGRyZXNzVHlwZTo6UHJvdlBoeXNBZGRyZXNzVHlwZSh1bnNpZ25lZCBjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFByb3ZQaHlzQWRkcmVzc1R5cGVAQFFBRUBQQkVLUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92UGh5c0FkZHJlc3NUeXBlOjpQcm92UGh5c0FkZHJlc3NUeXBlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBQcm92UGh5c0FkZHJlc3NUeXBlQEBRQUVAUEJHMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdlBoeXNBZGRyZXNzVHlwZTo6UHJvdlBoeXNBZGRyZXNzVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFByb3ZQaHlzQWRkcmVzc1R5cGVAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZQb3NpdGl2ZVJhbmdlVHlwZTo6UHJvdlBvc2l0aXZlUmFuZ2VUeXBlKGNsYXNzIFByb3ZQb3NpdGl2ZVJhbmdlVHlwZSBjb25zdCAmKQ0KKz8/MFByb3ZQb3NpdGl2ZVJhbmdlVHlwZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92UG9zaXRpdmVSYW5nZVR5cGU6OlByb3ZQb3NpdGl2ZVJhbmdlVHlwZSh1bnNpZ25lZCBsb25nLGxvbmcpDQorPz8wUHJvdlBvc2l0aXZlUmFuZ2VUeXBlQEBRQUVAS0pAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZQb3NpdGl2ZVJhbmdlVHlwZTo6UHJvdlBvc2l0aXZlUmFuZ2VUeXBlKHZvaWQpDQorPz8wUHJvdlBvc2l0aXZlUmFuZ2VUeXBlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92UG9zaXRpdmVSYW5nZWRUeXBlOjpQcm92UG9zaXRpdmVSYW5nZWRUeXBlKGNsYXNzIFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGUgY29uc3QgJikNCis/PzBQcm92UG9zaXRpdmVSYW5nZWRUeXBlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGU6OlByb3ZQb3NpdGl2ZVJhbmdlZFR5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBQcm92UG9zaXRpdmVSYW5nZWRUeXBlQEBRQUVAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92Um93U3RhdHVzVHlwZTo6UHJvdlJvd1N0YXR1c1R5cGUobG9uZyBjb25zdCAmKQ0KKz8/MFByb3ZSb3dTdGF0dXNUeXBlQEBRQUVAQUJKQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92Um93U3RhdHVzVHlwZTo6UHJvdlJvd1N0YXR1c1R5cGUoY2xhc3MgUHJvdlJvd1N0YXR1c1R5cGUgY29uc3QgJikNCis/PzBQcm92Um93U3RhdHVzVHlwZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92Um93U3RhdHVzVHlwZTo6UHJvdlJvd1N0YXR1c1R5cGUoY2xhc3MgUHJvdkludGVnZXIgY29uc3QgJikNCis/PzBQcm92Um93U3RhdHVzVHlwZUBAUUFFQEFCVlByb3ZJbnRlZ2VyQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZSb3dTdGF0dXNUeXBlOjpQcm92Um93U3RhdHVzVHlwZShlbnVtIFByb3ZSb3dTdGF0dXNUeXBlOjpQcm92Um93U3RhdHVzRW51bSBjb25zdCAmKQ0KKz8/MFByb3ZSb3dTdGF0dXNUeXBlQEBRQUVAQUJXNFByb3ZSb3dTdGF0dXNFbnVtQDBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92Um93U3RhdHVzVHlwZTo6UHJvdlJvd1N0YXR1c1R5cGUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBQcm92Um93U3RhdHVzVHlwZUBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdlJvd1N0YXR1c1R5cGU6OlByb3ZSb3dTdGF0dXNUeXBlKHZvaWQpDQorPz8wUHJvdlJvd1N0YXR1c1R5cGVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZUaW1lVGlja3M6OlByb3ZUaW1lVGlja3MoY2xhc3MgUHJvdlRpbWVUaWNrcyBjb25zdCAmKQ0KKz8/MFByb3ZUaW1lVGlja3NAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdlRpbWVUaWNrczo6UHJvdlRpbWVUaWNrcyh1bnNpZ25lZCBsb25nKQ0KKz8/MFByb3ZUaW1lVGlja3NAQFFBRUBLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92VGltZVRpY2tzVHlwZTo6UHJvdlRpbWVUaWNrc1R5cGUoY2xhc3MgUHJvdlRpbWVUaWNrc1R5cGUgY29uc3QgJikNCis/PzBQcm92VGltZVRpY2tzVHlwZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92VGltZVRpY2tzVHlwZTo6UHJvdlRpbWVUaWNrc1R5cGUoY2xhc3MgUHJvdlRpbWVUaWNrcyBjb25zdCAmKQ0KKz8/MFByb3ZUaW1lVGlja3NUeXBlQEBRQUVAQUJWUHJvdlRpbWVUaWNrc0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92VGltZVRpY2tzVHlwZTo6UHJvdlRpbWVUaWNrc1R5cGUodW5zaWduZWQgbG9uZykNCis/PzBQcm92VGltZVRpY2tzVHlwZUBAUUFFQEtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZUaW1lVGlja3NUeXBlOjpQcm92VGltZVRpY2tzVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFByb3ZUaW1lVGlja3NUeXBlQEBRQUVAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92VGltZVRpY2tzVHlwZTo6UHJvdlRpbWVUaWNrc1R5cGUodm9pZCkNCis/PzBQcm92VGltZVRpY2tzVHlwZUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdlVEUEFkZHJlc3NUeXBlOjpQcm92VURQQWRkcmVzc1R5cGUoY2xhc3MgUHJvdlVEUEFkZHJlc3NUeXBlIGNvbnN0ICYpDQorPz8wUHJvdlVEUEFkZHJlc3NUeXBlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZVRFBBZGRyZXNzVHlwZTo6UHJvdlVEUEFkZHJlc3NUeXBlKGNsYXNzIFByb3ZPY3RldFN0cmluZyBjb25zdCAmKQ0KKz8/MFByb3ZVRFBBZGRyZXNzVHlwZUBAUUFFQEFCVlByb3ZPY3RldFN0cmluZ0BAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92VURQQWRkcmVzc1R5cGU6OlByb3ZVRFBBZGRyZXNzVHlwZSh1bnNpZ25lZCBjaGFyIGNvbnN0ICopDQorPz8wUHJvdlVEUEFkZHJlc3NUeXBlQEBRQUVAUEJFQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBQcm92VURQQWRkcmVzc1R5cGU6OlByb3ZVRFBBZGRyZXNzVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MFByb3ZVRFBBZGRyZXNzVHlwZUBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdlVEUEFkZHJlc3NUeXBlOjpQcm92VURQQWRkcmVzc1R5cGUodm9pZCkNCis/PzBQcm92VURQQWRkcmVzc1R5cGVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZVSW50ZWdlcjMyOjpQcm92VUludGVnZXIzMihjbGFzcyBQcm92VUludGVnZXIzMiBjb25zdCAmKQ0KKz8/MFByb3ZVSW50ZWdlcjMyQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFByb3ZVSW50ZWdlcjMyOjpQcm92VUludGVnZXIzMihsb25nKQ0KKz8/MFByb3ZVSW50ZWdlcjMyQEBRQUVASkBaDQorOyBwcml2YXRlOiBfX3RoaXNjYWxsIFByb3ZWYWx1ZTo6UHJvdlZhbHVlKGNsYXNzIFByb3ZWYWx1ZSBjb25zdCAmKQ0KKz8/MFByb3ZWYWx1ZUBAQUFFQEFCVjBAQFoNCis7IHByb3RlY3RlZDogX190aGlzY2FsbCBQcm92VmFsdWU6OlByb3ZWYWx1ZSh2b2lkKQ0KKz8/MFByb3ZWYWx1ZUBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OlF1ZXJ5UHJlcHJvY2Vzc29yKGNsYXNzIFF1ZXJ5UHJlcHJvY2Vzc29yIGNvbnN0ICYpDQorPz8wUXVlcnlQcmVwcm9jZXNzb3JAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OlF1ZXJ5UHJlcHJvY2Vzc29yKHZvaWQpDQorPz8wUXVlcnlQcmVwcm9jZXNzb3JAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaUFuZE5vZGU6OldtaUFuZE5vZGUoY2xhc3MgV21pQW5kTm9kZSBjb25zdCAmKQ0KKz8/MFdtaUFuZE5vZGVAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV21pQW5kTm9kZTo6V21pQW5kTm9kZShjbGFzcyBXbWlUcmVlTm9kZSAqLGNsYXNzIFdtaVRyZWVOb2RlICosY2xhc3MgV21pVHJlZU5vZGUgKikNCis/PzBXbWlBbmROb2RlQEBRQUVAUEFWV21pVHJlZU5vZGVAQDAwQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXbWlOb3ROb2RlOjpXbWlOb3ROb2RlKGNsYXNzIFdtaU5vdE5vZGUgY29uc3QgJikNCis/PzBXbWlOb3ROb2RlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaU5vdE5vZGU6OldtaU5vdE5vZGUoY2xhc3MgV21pVHJlZU5vZGUgKixjbGFzcyBXbWlUcmVlTm9kZSAqKQ0KKz8/MFdtaU5vdE5vZGVAQFFBRUBQQVZXbWlUcmVlTm9kZUBAMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV21pTnVsbE5vZGU6OldtaU51bGxOb2RlKGNsYXNzIFdtaU51bGxOb2RlIGNvbnN0ICYpDQorPz8wV21pTnVsbE5vZGVAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV21pTnVsbE5vZGU6OldtaU51bGxOb2RlKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyxjbGFzcyBXbWlUcmVlTm9kZSAqKQ0KKz8/MFdtaU51bGxOb2RlQEBRQUVAUEFHS1BBVldtaVRyZWVOb2RlQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaU51bGxSYW5nZU5vZGU6OldtaU51bGxSYW5nZU5vZGUoY2xhc3MgV21pTnVsbFJhbmdlTm9kZSBjb25zdCAmKQ0KKz8/MFdtaU51bGxSYW5nZU5vZGVAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV21pTnVsbFJhbmdlTm9kZTo6V21pTnVsbFJhbmdlTm9kZSh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGxvbmcsY2xhc3MgV21pVHJlZU5vZGUgKixjbGFzcyBXbWlUcmVlTm9kZSAqKQ0KKz8/MFdtaU51bGxSYW5nZU5vZGVAQFFBRUBQQUdLUEFWV21pVHJlZU5vZGVAQDFAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yRXF1YWxOb2RlOjpXbWlPcGVyYXRvckVxdWFsTm9kZShjbGFzcyBXbWlPcGVyYXRvckVxdWFsTm9kZSBjb25zdCAmKQ0KKz8/MFdtaU9wZXJhdG9yRXF1YWxOb2RlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yRXF1YWxOb2RlOjpXbWlPcGVyYXRvckVxdWFsTm9kZShjbGFzcyBXbWlUcmVlTm9kZSAqLGNsYXNzIFdtaVRyZWVOb2RlICopDQorPz8wV21pT3BlcmF0b3JFcXVhbE5vZGVAQFFBRUBQQVZXbWlUcmVlTm9kZUBAMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGU6OldtaU9wZXJhdG9yRXF1YWxPckdyZWF0ZXJOb2RlKGNsYXNzIFdtaU9wZXJhdG9yRXF1YWxPckdyZWF0ZXJOb2RlIGNvbnN0ICYpDQorPz8wV21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGVAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGU6OldtaU9wZXJhdG9yRXF1YWxPckdyZWF0ZXJOb2RlKGNsYXNzIFdtaVRyZWVOb2RlICosY2xhc3MgV21pVHJlZU5vZGUgKikNCis/PzBXbWlPcGVyYXRvckVxdWFsT3JHcmVhdGVyTm9kZUBAUUFFQFBBVldtaVRyZWVOb2RlQEAwQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXbWlPcGVyYXRvckVxdWFsT3JMZXNzTm9kZTo6V21pT3BlcmF0b3JFcXVhbE9yTGVzc05vZGUoY2xhc3MgV21pT3BlcmF0b3JFcXVhbE9yTGVzc05vZGUgY29uc3QgJikNCis/PzBXbWlPcGVyYXRvckVxdWFsT3JMZXNzTm9kZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXbWlPcGVyYXRvckVxdWFsT3JMZXNzTm9kZTo6V21pT3BlcmF0b3JFcXVhbE9yTGVzc05vZGUoY2xhc3MgV21pVHJlZU5vZGUgKixjbGFzcyBXbWlUcmVlTm9kZSAqKQ0KKz8/MFdtaU9wZXJhdG9yRXF1YWxPckxlc3NOb2RlQEBRQUVAUEFWV21pVHJlZU5vZGVAQDBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yR3JlYXRlck5vZGU6OldtaU9wZXJhdG9yR3JlYXRlck5vZGUoY2xhc3MgV21pT3BlcmF0b3JHcmVhdGVyTm9kZSBjb25zdCAmKQ0KKz8/MFdtaU9wZXJhdG9yR3JlYXRlck5vZGVAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV21pT3BlcmF0b3JHcmVhdGVyTm9kZTo6V21pT3BlcmF0b3JHcmVhdGVyTm9kZShjbGFzcyBXbWlUcmVlTm9kZSAqLGNsYXNzIFdtaVRyZWVOb2RlICopDQorPz8wV21pT3BlcmF0b3JHcmVhdGVyTm9kZUBAUUFFQFBBVldtaVRyZWVOb2RlQEAwQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXbWlPcGVyYXRvcklzQU5vZGU6OldtaU9wZXJhdG9ySXNBTm9kZShjbGFzcyBXbWlPcGVyYXRvcklzQU5vZGUgY29uc3QgJikNCis/PzBXbWlPcGVyYXRvcklzQU5vZGVAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV21pT3BlcmF0b3JJc0FOb2RlOjpXbWlPcGVyYXRvcklzQU5vZGUoY2xhc3MgV21pVHJlZU5vZGUgKixjbGFzcyBXbWlUcmVlTm9kZSAqKQ0KKz8/MFdtaU9wZXJhdG9ySXNBTm9kZUBAUUFFQFBBVldtaVRyZWVOb2RlQEAwQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXbWlPcGVyYXRvckxlc3NOb2RlOjpXbWlPcGVyYXRvckxlc3NOb2RlKGNsYXNzIFdtaU9wZXJhdG9yTGVzc05vZGUgY29uc3QgJikNCis/PzBXbWlPcGVyYXRvckxlc3NOb2RlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yTGVzc05vZGU6OldtaU9wZXJhdG9yTGVzc05vZGUoY2xhc3MgV21pVHJlZU5vZGUgKixjbGFzcyBXbWlUcmVlTm9kZSAqKQ0KKz8/MFdtaU9wZXJhdG9yTGVzc05vZGVAQFFBRUBQQVZXbWlUcmVlTm9kZUBAMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV21pT3BlcmF0b3JMaWtlTm9kZTo6V21pT3BlcmF0b3JMaWtlTm9kZShjbGFzcyBXbWlPcGVyYXRvckxpa2VOb2RlIGNvbnN0ICYpDQorPz8wV21pT3BlcmF0b3JMaWtlTm9kZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXbWlPcGVyYXRvckxpa2VOb2RlOjpXbWlPcGVyYXRvckxpa2VOb2RlKGNsYXNzIFdtaVRyZWVOb2RlICosY2xhc3MgV21pVHJlZU5vZGUgKikNCis/PzBXbWlPcGVyYXRvckxpa2VOb2RlQEBRQUVAUEFWV21pVHJlZU5vZGVAQDBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yTm9kZTo6V21pT3BlcmF0b3JOb2RlKGNsYXNzIFdtaU9wZXJhdG9yTm9kZSBjb25zdCAmKQ0KKz8/MFdtaU9wZXJhdG9yTm9kZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXbWlPcGVyYXRvck5vZGU6OldtaU9wZXJhdG9yTm9kZSh1bnNpZ25lZCBsb25nLGNsYXNzIFdtaVRyZWVOb2RlICosY2xhc3MgV21pVHJlZU5vZGUgKikNCis/PzBXbWlPcGVyYXRvck5vZGVAQFFBRUBLUEFWV21pVHJlZU5vZGVAQDBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yTm90RXF1YWxOb2RlOjpXbWlPcGVyYXRvck5vdEVxdWFsTm9kZShjbGFzcyBXbWlPcGVyYXRvck5vdEVxdWFsTm9kZSBjb25zdCAmKQ0KKz8/MFdtaU9wZXJhdG9yTm90RXF1YWxOb2RlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yTm90RXF1YWxOb2RlOjpXbWlPcGVyYXRvck5vdEVxdWFsTm9kZShjbGFzcyBXbWlUcmVlTm9kZSAqLGNsYXNzIFdtaVRyZWVOb2RlICopDQorPz8wV21pT3BlcmF0b3JOb3RFcXVhbE5vZGVAQFFBRUBQQVZXbWlUcmVlTm9kZUBAMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV21pT3BlcmF0b3JOb3RJc0FOb2RlOjpXbWlPcGVyYXRvck5vdElzQU5vZGUoY2xhc3MgV21pT3BlcmF0b3JOb3RJc0FOb2RlIGNvbnN0ICYpDQorPz8wV21pT3BlcmF0b3JOb3RJc0FOb2RlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yTm90SXNBTm9kZTo6V21pT3BlcmF0b3JOb3RJc0FOb2RlKGNsYXNzIFdtaVRyZWVOb2RlICosY2xhc3MgV21pVHJlZU5vZGUgKikNCis/PzBXbWlPcGVyYXRvck5vdElzQU5vZGVAQFFBRUBQQVZXbWlUcmVlTm9kZUBAMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV21pT3BlcmF0b3JOb3RMaWtlTm9kZTo6V21pT3BlcmF0b3JOb3RMaWtlTm9kZShjbGFzcyBXbWlPcGVyYXRvck5vdExpa2VOb2RlIGNvbnN0ICYpDQorPz8wV21pT3BlcmF0b3JOb3RMaWtlTm9kZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXbWlPcGVyYXRvck5vdExpa2VOb2RlOjpXbWlPcGVyYXRvck5vdExpa2VOb2RlKGNsYXNzIFdtaVRyZWVOb2RlICosY2xhc3MgV21pVHJlZU5vZGUgKikNCis/PzBXbWlPcGVyYXRvck5vdExpa2VOb2RlQEBRQUVAUEFWV21pVHJlZU5vZGVAQDBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaU9yTm9kZTo6V21pT3JOb2RlKGNsYXNzIFdtaU9yTm9kZSBjb25zdCAmKQ0KKz8/MFdtaU9yTm9kZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXbWlPck5vZGU6OldtaU9yTm9kZShjbGFzcyBXbWlUcmVlTm9kZSAqLGNsYXNzIFdtaVRyZWVOb2RlICosY2xhc3MgV21pVHJlZU5vZGUgKikNCis/PzBXbWlPck5vZGVAQFFBRUBQQVZXbWlUcmVlTm9kZUBAMDBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaVJhbmdlTm9kZTo6V21pUmFuZ2VOb2RlKGNsYXNzIFdtaVJhbmdlTm9kZSBjb25zdCAmKQ0KKz8/MFdtaVJhbmdlTm9kZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXbWlSYW5nZU5vZGU6OldtaVJhbmdlTm9kZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyxpbnQsaW50LGludCxpbnQsY2xhc3MgV21pVHJlZU5vZGUgKixjbGFzcyBXbWlUcmVlTm9kZSAqKQ0KKz8/MFdtaVJhbmdlTm9kZUBAUUFFQEtQQUdLSEhISFBBVldtaVRyZWVOb2RlQEAxQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXbWlTaWduZWRJbnRlZ2VyTm9kZTo6V21pU2lnbmVkSW50ZWdlck5vZGUoY2xhc3MgV21pU2lnbmVkSW50ZWdlck5vZGUgY29uc3QgJikNCis/PzBXbWlTaWduZWRJbnRlZ2VyTm9kZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXbWlTaWduZWRJbnRlZ2VyTm9kZTo6V21pU2lnbmVkSW50ZWdlck5vZGUodW5zaWduZWQgc2hvcnQgKixsb25nLHVuc2lnbmVkIGxvbmcsY2xhc3MgV21pVHJlZU5vZGUgKikNCis/PzBXbWlTaWduZWRJbnRlZ2VyTm9kZUBAUUFFQFBBR0pLUEFWV21pVHJlZU5vZGVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZTo6V21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZShjbGFzcyBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlIGNvbnN0ICYpDQorPz8wV21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZUBAUUFFQEFCVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlOjpXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyxpbnQsaW50LGludCxpbnQsbG9uZyxsb25nLGNsYXNzIFdtaVRyZWVOb2RlICosY2xhc3MgV21pVHJlZU5vZGUgKikNCis/PzBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBRQUVAUEFHS0hISEhKSlBBVldtaVRyZWVOb2RlQEAxQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXbWlTdHJpbmdOb2RlOjpXbWlTdHJpbmdOb2RlKGNsYXNzIFdtaVN0cmluZ05vZGUgY29uc3QgJikNCis/PzBXbWlTdHJpbmdOb2RlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaVN0cmluZ05vZGU6OldtaVN0cmluZ05vZGUodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqLGVudW0gV21pVmFsdWVOb2RlOjpXbWlWYWx1ZUZ1bmN0aW9uLGVudW0gV21pVmFsdWVOb2RlOjpXbWlWYWx1ZUZ1bmN0aW9uLHVuc2lnbmVkIGxvbmcsY2xhc3MgV21pVHJlZU5vZGUgKikNCis/PzBXbWlTdHJpbmdOb2RlQEBRQUVAUEFHMFc0V21pVmFsdWVGdW5jdGlvbkBXbWlWYWx1ZU5vZGVAQDFLUEFWV21pVHJlZU5vZGVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV21pU3RyaW5nUmFuZ2VOb2RlOjpXbWlTdHJpbmdSYW5nZU5vZGUoY2xhc3MgV21pU3RyaW5nUmFuZ2VOb2RlIGNvbnN0ICYpDQorPz8wV21pU3RyaW5nUmFuZ2VOb2RlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaVN0cmluZ1JhbmdlTm9kZTo6V21pU3RyaW5nUmFuZ2VOb2RlKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyxpbnQsaW50LGludCxpbnQsdW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCAqLGNsYXNzIFdtaVRyZWVOb2RlICosY2xhc3MgV21pVHJlZU5vZGUgKikNCis/PzBXbWlTdHJpbmdSYW5nZU5vZGVAQFFBRUBQQUdLSEhISDAwUEFWV21pVHJlZU5vZGVAQDFAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaVRyZWVOb2RlOjpXbWlUcmVlTm9kZShjbGFzcyBXbWlUcmVlTm9kZSBjb25zdCAmKQ0KKz8/MFdtaVRyZWVOb2RlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaVRyZWVOb2RlOjpXbWlUcmVlTm9kZSh1bnNpZ25lZCBsb25nLHZvaWQgKixjbGFzcyBXbWlUcmVlTm9kZSAqLGNsYXNzIFdtaVRyZWVOb2RlICosY2xhc3MgV21pVHJlZU5vZGUgKikNCis/PzBXbWlUcmVlTm9kZUBAUUFFQEtQQVhQQVYwQDExQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXbWlUcmVlTm9kZTo6V21pVHJlZU5vZGUoY2xhc3MgV21pVHJlZU5vZGUgKikNCis/PzBXbWlUcmVlTm9kZUBAUUFFQFBBVjBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXbWlUcmVlTm9kZUl0ZXJhdG9yOjpXbWlUcmVlTm9kZUl0ZXJhdG9yKGNsYXNzIFdtaVRyZWVOb2RlSXRlcmF0b3IgY29uc3QgJikNCis/PzBXbWlUcmVlTm9kZUl0ZXJhdG9yQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaVRyZWVOb2RlSXRlcmF0b3I6OldtaVRyZWVOb2RlSXRlcmF0b3IoY2xhc3MgV21pVHJlZU5vZGVJdGVyYXRvciAqKQ0KKz8/MFdtaVRyZWVOb2RlSXRlcmF0b3JAQFFBRUBQQVYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV21pVHJlZU5vZGVJdGVyYXRvcjo6V21pVHJlZU5vZGVJdGVyYXRvcihjbGFzcyBXbWlUcmVlTm9kZSAqKQ0KKz8/MFdtaVRyZWVOb2RlSXRlcmF0b3JAQFFBRUBQQVZXbWlUcmVlTm9kZUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXbWlVbnNpZ25lZEludGVnZXJOb2RlOjpXbWlVbnNpZ25lZEludGVnZXJOb2RlKGNsYXNzIFdtaVVuc2lnbmVkSW50ZWdlck5vZGUgY29uc3QgJikNCis/PzBXbWlVbnNpZ25lZEludGVnZXJOb2RlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaVVuc2lnbmVkSW50ZWdlck5vZGU6OldtaVVuc2lnbmVkSW50ZWdlck5vZGUodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsY2xhc3MgV21pVHJlZU5vZGUgKikNCis/PzBXbWlVbnNpZ25lZEludGVnZXJOb2RlQEBRQUVAUEFHS0tQQVZXbWlUcmVlTm9kZUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGU6OldtaVVuc2lnbmVkSW50ZWdlclJhbmdlTm9kZShjbGFzcyBXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGUgY29uc3QgJikNCis/PzBXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGVAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlOjpXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGUodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBsb25nLGludCxpbnQsaW50LGludCx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsY2xhc3MgV21pVHJlZU5vZGUgKixjbGFzcyBXbWlUcmVlTm9kZSAqKQ0KKz8/MFdtaVVuc2lnbmVkSW50ZWdlclJhbmdlTm9kZUBAUUFFQFBBR0tISEhIS0tQQVZXbWlUcmVlTm9kZUBAMUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgV21pVmFsdWVOb2RlOjpXbWlWYWx1ZU5vZGUoY2xhc3MgV21pVmFsdWVOb2RlIGNvbnN0ICYpDQorPz8wV21pVmFsdWVOb2RlQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFdtaVZhbHVlTm9kZTo6V21pVmFsdWVOb2RlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKixlbnVtIFdtaVZhbHVlTm9kZTo6V21pVmFsdWVGdW5jdGlvbixlbnVtIFdtaVZhbHVlTm9kZTo6V21pVmFsdWVGdW5jdGlvbix1bnNpZ25lZCBsb25nLGNsYXNzIFdtaVRyZWVOb2RlICopDQorPz8wV21pVmFsdWVOb2RlQEBRQUVAS1BBR1c0V21pVmFsdWVGdW5jdGlvbkAwQDFLUEFWV21pVHJlZU5vZGVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0JTdHJpbmc6On5DQlN0cmluZyh2b2lkKQ0KKz8/MUNCU3RyaW5nQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDb25qdW5jdGlvbnM6On5Db25qdW5jdGlvbnModm9pZCkNCis/PzFDb25qdW5jdGlvbnNAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIERpc2p1bmN0aW9uczo6fkRpc2p1bmN0aW9ucyh2b2lkKQ0KKz8/MURpc2p1bmN0aW9uc0BAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBQYXJ0aXRpb25TZXQ6On5QYXJ0aXRpb25TZXQodm9pZCkNCis/PzFQYXJ0aXRpb25TZXRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgUHJvdkFuYWx5c2VyOjp+UHJvdkFuYWx5c2VyKHZvaWQpDQorPz8xUHJvdkFuYWx5c2VyQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFByb3ZCaXRTdHJpbmdUeXBlOjp+UHJvdkJpdFN0cmluZ1R5cGUodm9pZCkNCis/PzFQcm92Qml0U3RyaW5nVHlwZUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBQcm92Q291bnRlcjY0Ojp+UHJvdkNvdW50ZXI2NCh2b2lkKQ0KKz8/MVByb3ZDb3VudGVyNjRAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgUHJvdkNvdW50ZXI2NFR5cGU6On5Qcm92Q291bnRlcjY0VHlwZSh2b2lkKQ0KKz8/MVByb3ZDb3VudGVyNjRUeXBlQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFByb3ZDb3VudGVyOjp+UHJvdkNvdW50ZXIodm9pZCkNCis/PzFQcm92Q291bnRlckBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBQcm92Q291bnRlclR5cGU6On5Qcm92Q291bnRlclR5cGUodm9pZCkNCis/PzFQcm92Q291bnRlclR5cGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgUHJvdkRhdGVUaW1lVHlwZTo6flByb3ZEYXRlVGltZVR5cGUodm9pZCkNCis/PzFQcm92RGF0ZVRpbWVUeXBlQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFByb3ZEaXNwbGF5U3RyaW5nVHlwZTo6flByb3ZEaXNwbGF5U3RyaW5nVHlwZSh2b2lkKQ0KKz8/MVByb3ZEaXNwbGF5U3RyaW5nVHlwZUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBQcm92RW51bWVyYXRlZFR5cGU6On5Qcm92RW51bWVyYXRlZFR5cGUodm9pZCkNCis/PzFQcm92RW51bWVyYXRlZFR5cGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgUHJvdkV2ZW50T2JqZWN0Ojp+UHJvdkV2ZW50T2JqZWN0KHZvaWQpDQorPz8xUHJvdkV2ZW50T2JqZWN0QEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlOjp+UHJvdkZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGUodm9pZCkNCis/PzFQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGU6On5Qcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGUodm9pZCkNCis/PzFQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgUHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZTo6flByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGUodm9pZCkNCis/PzFQcm92Rml4ZWRMZW5ndGhPcGFxdWVUeXBlQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFByb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZTo6flByb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZSh2b2lkKQ0KKz8/MVByb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBQcm92Rml4ZWRUeXBlOjp+UHJvdkZpeGVkVHlwZSh2b2lkKQ0KKz8/MVByb3ZGaXhlZFR5cGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgUHJvdkdhdWdlOjp+UHJvdkdhdWdlKHZvaWQpDQorPz8xUHJvdkdhdWdlQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFByb3ZHYXVnZVR5cGU6On5Qcm92R2F1Z2VUeXBlKHZvaWQpDQorPz8xUHJvdkdhdWdlVHlwZUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBQcm92SVBYQWRkcmVzc1R5cGU6On5Qcm92SVBYQWRkcmVzc1R5cGUodm9pZCkNCis/PzFQcm92SVBYQWRkcmVzc1R5cGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgUHJvdkluc3RhbmNlVHlwZTo6flByb3ZJbnN0YW5jZVR5cGUodm9pZCkNCis/PzFQcm92SW5zdGFuY2VUeXBlQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFByb3ZJbnRlZ2VyOjp+UHJvdkludGVnZXIodm9pZCkNCis/PzFQcm92SW50ZWdlckBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBQcm92SW50ZWdlclR5cGU6On5Qcm92SW50ZWdlclR5cGUodm9pZCkNCis/PzFQcm92SW50ZWdlclR5cGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgUHJvdklwQWRkcmVzczo6flByb3ZJcEFkZHJlc3Modm9pZCkNCis/PzFQcm92SXBBZGRyZXNzQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFByb3ZJcEFkZHJlc3NUeXBlOjp+UHJvdklwQWRkcmVzc1R5cGUodm9pZCkNCis/PzFQcm92SXBBZGRyZXNzVHlwZUBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgUHJvdkxleGljb246On5Qcm92TGV4aWNvbih2b2lkKQ0KKz8/MVByb3ZMZXhpY29uQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFByb3ZNYWNBZGRyZXNzVHlwZTo6flByb3ZNYWNBZGRyZXNzVHlwZSh2b2lkKQ0KKz8/MVByb3ZNYWNBZGRyZXNzVHlwZUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBQcm92TmVnYXRpdmVSYW5nZVR5cGU6On5Qcm92TmVnYXRpdmVSYW5nZVR5cGUodm9pZCkNCis/PzFQcm92TmVnYXRpdmVSYW5nZVR5cGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgUHJvdk5ldHdvcmtBZGRyZXNzVHlwZTo6flByb3ZOZXR3b3JrQWRkcmVzc1R5cGUodm9pZCkNCis/PzFQcm92TmV0d29ya0FkZHJlc3NUeXBlQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFByb3ZOdWxsOjp+UHJvdk51bGwodm9pZCkNCis/PzFQcm92TnVsbEBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBQcm92TnVsbFR5cGU6On5Qcm92TnVsbFR5cGUodm9pZCkNCis/PzFQcm92TnVsbFR5cGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgUHJvdk9TSUFkZHJlc3NUeXBlOjp+UHJvdk9TSUFkZHJlc3NUeXBlKHZvaWQpDQorPz8xUHJvdk9TSUFkZHJlc3NUeXBlQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFByb3ZPYmplY3RJZGVudGlmaWVyOjp+UHJvdk9iamVjdElkZW50aWZpZXIodm9pZCkNCis/PzFQcm92T2JqZWN0SWRlbnRpZmllckBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllclR5cGU6On5Qcm92T2JqZWN0SWRlbnRpZmllclR5cGUodm9pZCkNCis/PzFQcm92T2JqZWN0SWRlbnRpZmllclR5cGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgUHJvdk9jdGV0U3RyaW5nOjp+UHJvdk9jdGV0U3RyaW5nKHZvaWQpDQorPz8xUHJvdk9jdGV0U3RyaW5nQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFByb3ZPY3RldFN0cmluZ1R5cGU6On5Qcm92T2N0ZXRTdHJpbmdUeXBlKHZvaWQpDQorPz8xUHJvdk9jdGV0U3RyaW5nVHlwZUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBQcm92T3BhcXVlOjp+UHJvdk9wYXF1ZSh2b2lkKQ0KKz8/MVByb3ZPcGFxdWVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgUHJvdk9wYXF1ZVR5cGU6On5Qcm92T3BhcXVlVHlwZSh2b2lkKQ0KKz8/MVByb3ZPcGFxdWVUeXBlQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFByb3ZQaHlzQWRkcmVzc1R5cGU6On5Qcm92UGh5c0FkZHJlc3NUeXBlKHZvaWQpDQorPz8xUHJvdlBoeXNBZGRyZXNzVHlwZUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBQcm92UG9zaXRpdmVSYW5nZVR5cGU6On5Qcm92UG9zaXRpdmVSYW5nZVR5cGUodm9pZCkNCis/PzFQcm92UG9zaXRpdmVSYW5nZVR5cGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZTo6flByb3ZQb3NpdGl2ZVJhbmdlZFR5cGUodm9pZCkNCis/PzFQcm92UG9zaXRpdmVSYW5nZWRUeXBlQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFByb3ZSb3dTdGF0dXNUeXBlOjp+UHJvdlJvd1N0YXR1c1R5cGUodm9pZCkNCis/PzFQcm92Um93U3RhdHVzVHlwZUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBQcm92VGltZVRpY2tzOjp+UHJvdlRpbWVUaWNrcyh2b2lkKQ0KKz8/MVByb3ZUaW1lVGlja3NAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgUHJvdlRpbWVUaWNrc1R5cGU6On5Qcm92VGltZVRpY2tzVHlwZSh2b2lkKQ0KKz8/MVByb3ZUaW1lVGlja3NUeXBlQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFByb3ZVRFBBZGRyZXNzVHlwZTo6flByb3ZVRFBBZGRyZXNzVHlwZSh2b2lkKQ0KKz8/MVByb3ZVRFBBZGRyZXNzVHlwZUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBQcm92VUludGVnZXIzMjo6flByb3ZVSW50ZWdlcjMyKHZvaWQpDQorPz8xUHJvdlVJbnRlZ2VyMzJAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgUHJvdlZhbHVlOjp+UHJvdlZhbHVlKHZvaWQpDQorPz8xUHJvdlZhbHVlQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjp+UXVlcnlQcmVwcm9jZXNzb3Iodm9pZCkNCis/PzFRdWVyeVByZXByb2Nlc3NvckBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBXbWlBbmROb2RlOjp+V21pQW5kTm9kZSh2b2lkKQ0KKz8/MVdtaUFuZE5vZGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgV21pTm90Tm9kZTo6fldtaU5vdE5vZGUodm9pZCkNCis/PzFXbWlOb3ROb2RlQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFdtaU51bGxOb2RlOjp+V21pTnVsbE5vZGUodm9pZCkNCis/PzFXbWlOdWxsTm9kZUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBXbWlOdWxsUmFuZ2VOb2RlOjp+V21pTnVsbFJhbmdlTm9kZSh2b2lkKQ0KKz8/MVdtaU51bGxSYW5nZU5vZGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgV21pT3BlcmF0b3JFcXVhbE5vZGU6On5XbWlPcGVyYXRvckVxdWFsTm9kZSh2b2lkKQ0KKz8/MVdtaU9wZXJhdG9yRXF1YWxOb2RlQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yRXF1YWxPckdyZWF0ZXJOb2RlOjp+V21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGUodm9pZCkNCis/PzFXbWlPcGVyYXRvckVxdWFsT3JHcmVhdGVyTm9kZUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBXbWlPcGVyYXRvckVxdWFsT3JMZXNzTm9kZTo6fldtaU9wZXJhdG9yRXF1YWxPckxlc3NOb2RlKHZvaWQpDQorPz8xV21pT3BlcmF0b3JFcXVhbE9yTGVzc05vZGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgV21pT3BlcmF0b3JHcmVhdGVyTm9kZTo6fldtaU9wZXJhdG9yR3JlYXRlck5vZGUodm9pZCkNCis/PzFXbWlPcGVyYXRvckdyZWF0ZXJOb2RlQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFdtaU9wZXJhdG9ySXNBTm9kZTo6fldtaU9wZXJhdG9ySXNBTm9kZSh2b2lkKQ0KKz8/MVdtaU9wZXJhdG9ySXNBTm9kZUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBXbWlPcGVyYXRvckxlc3NOb2RlOjp+V21pT3BlcmF0b3JMZXNzTm9kZSh2b2lkKQ0KKz8/MVdtaU9wZXJhdG9yTGVzc05vZGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgV21pT3BlcmF0b3JMaWtlTm9kZTo6fldtaU9wZXJhdG9yTGlrZU5vZGUodm9pZCkNCis/PzFXbWlPcGVyYXRvckxpa2VOb2RlQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yTm9kZTo6fldtaU9wZXJhdG9yTm9kZSh2b2lkKQ0KKz8/MVdtaU9wZXJhdG9yTm9kZUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBXbWlPcGVyYXRvck5vdEVxdWFsTm9kZTo6fldtaU9wZXJhdG9yTm90RXF1YWxOb2RlKHZvaWQpDQorPz8xV21pT3BlcmF0b3JOb3RFcXVhbE5vZGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgV21pT3BlcmF0b3JOb3RJc0FOb2RlOjp+V21pT3BlcmF0b3JOb3RJc0FOb2RlKHZvaWQpDQorPz8xV21pT3BlcmF0b3JOb3RJc0FOb2RlQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yTm90TGlrZU5vZGU6On5XbWlPcGVyYXRvck5vdExpa2VOb2RlKHZvaWQpDQorPz8xV21pT3BlcmF0b3JOb3RMaWtlTm9kZUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBXbWlPck5vZGU6On5XbWlPck5vZGUodm9pZCkNCis/PzFXbWlPck5vZGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgV21pUmFuZ2VOb2RlOjp+V21pUmFuZ2VOb2RlKHZvaWQpDQorPz8xV21pUmFuZ2VOb2RlQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFdtaVNpZ25lZEludGVnZXJOb2RlOjp+V21pU2lnbmVkSW50ZWdlck5vZGUodm9pZCkNCis/PzFXbWlTaWduZWRJbnRlZ2VyTm9kZUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlOjp+V21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZSh2b2lkKQ0KKz8/MVdtaVNpZ25lZEludGVnZXJSYW5nZU5vZGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgV21pU3RyaW5nTm9kZTo6fldtaVN0cmluZ05vZGUodm9pZCkNCis/PzFXbWlTdHJpbmdOb2RlQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFdtaVN0cmluZ1JhbmdlTm9kZTo6fldtaVN0cmluZ1JhbmdlTm9kZSh2b2lkKQ0KKz8/MVdtaVN0cmluZ1JhbmdlTm9kZUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBXbWlUcmVlTm9kZTo6fldtaVRyZWVOb2RlKHZvaWQpDQorPz8xV21pVHJlZU5vZGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgV21pVHJlZU5vZGVJdGVyYXRvcjo6fldtaVRyZWVOb2RlSXRlcmF0b3Iodm9pZCkNCis/PzFXbWlUcmVlTm9kZUl0ZXJhdG9yQEBVQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIFdtaVVuc2lnbmVkSW50ZWdlck5vZGU6On5XbWlVbnNpZ25lZEludGVnZXJOb2RlKHZvaWQpDQorPz8xV21pVW5zaWduZWRJbnRlZ2VyTm9kZUBAVUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGU6On5XbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGUodm9pZCkNCis/PzFXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGVAQFVBRUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgV21pVmFsdWVOb2RlOjp+V21pVmFsdWVOb2RlKHZvaWQpDQorPz8xV21pVmFsdWVOb2RlQEBVQUVAWFoNCis7IHB1YmxpYzogY2xhc3MgQ0JTdHJpbmcgJiBfX3RoaXNjYWxsIENCU3RyaW5nOjpvcGVyYXRvcj0oY2xhc3MgQ0JTdHJpbmcgY29uc3QgJikNCis/PzRDQlN0cmluZ0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENCU3RyaW5nIGNvbnN0ICYgX190aGlzY2FsbCBDQlN0cmluZzo6b3BlcmF0b3I9KHVuc2lnbmVkIHNob3J0ICopDQorPz80Q0JTdHJpbmdAQFFBRUFCVjBAUEFHQFoNCis7IHB1YmxpYzogY2xhc3MgQ29uanVuY3Rpb25zICYgX190aGlzY2FsbCBDb25qdW5jdGlvbnM6Om9wZXJhdG9yPShjbGFzcyBDb25qdW5jdGlvbnMgY29uc3QgJikNCis/PzRDb25qdW5jdGlvbnNAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBEaXNqdW5jdGlvbnMgJiBfX3RoaXNjYWxsIERpc2p1bmN0aW9uczo6b3BlcmF0b3I9KGNsYXNzIERpc2p1bmN0aW9ucyBjb25zdCAmKQ0KKz8/NERpc2p1bmN0aW9uc0BAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFBhcnRpdGlvblNldCAmIF9fdGhpc2NhbGwgUGFydGl0aW9uU2V0OjpvcGVyYXRvcj0oY2xhc3MgUGFydGl0aW9uU2V0IGNvbnN0ICYpDQorPz80UGFydGl0aW9uU2V0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdkFuYWx5c2VyICYgX190aGlzY2FsbCBQcm92QW5hbHlzZXI6Om9wZXJhdG9yPShjbGFzcyBQcm92QW5hbHlzZXIgY29uc3QgJikNCis/PzRQcm92QW5hbHlzZXJAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92Qml0U3RyaW5nVHlwZSAmIF9fdGhpc2NhbGwgUHJvdkJpdFN0cmluZ1R5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92Qml0U3RyaW5nVHlwZSBjb25zdCAmKQ0KKz8/NFByb3ZCaXRTdHJpbmdUeXBlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdlZhbHVlICYgX190aGlzY2FsbCBQcm92Q291bnRlcjY0OjpvcGVyYXRvcj0oY2xhc3MgUHJvdkNvdW50ZXI2NCBjb25zdCAmKQ0KKz8/NFByb3ZDb3VudGVyNjRAQFFBRUFBVlByb3ZWYWx1ZUBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92Q291bnRlcjY0VHlwZSAmIF9fdGhpc2NhbGwgUHJvdkNvdW50ZXI2NFR5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92Q291bnRlcjY0VHlwZSBjb25zdCAmKQ0KKz8/NFByb3ZDb3VudGVyNjRUeXBlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdlZhbHVlICYgX190aGlzY2FsbCBQcm92Q291bnRlcjo6b3BlcmF0b3I9KGNsYXNzIFByb3ZDb3VudGVyIGNvbnN0ICYpDQorPz80UHJvdkNvdW50ZXJAQFFBRUFBVlByb3ZWYWx1ZUBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92Q291bnRlclR5cGUgJiBfX3RoaXNjYWxsIFByb3ZDb3VudGVyVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZDb3VudGVyVHlwZSBjb25zdCAmKQ0KKz8/NFByb3ZDb3VudGVyVHlwZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZEYXRlVGltZVR5cGUgJiBfX3RoaXNjYWxsIFByb3ZEYXRlVGltZVR5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92RGF0ZVRpbWVUeXBlIGNvbnN0ICYpDQorPz80UHJvdkRhdGVUaW1lVHlwZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZEZWJ1Z0xvZyAmIF9fdGhpc2NhbGwgUHJvdkRlYnVnTG9nOjpvcGVyYXRvcj0oY2xhc3MgUHJvdkRlYnVnTG9nIGNvbnN0ICYpDQorPz80UHJvdkRlYnVnTG9nQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdkRpc3BsYXlTdHJpbmdUeXBlICYgX190aGlzY2FsbCBQcm92RGlzcGxheVN0cmluZ1R5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92RGlzcGxheVN0cmluZ1R5cGUgY29uc3QgJikNCis/PzRQcm92RGlzcGxheVN0cmluZ1R5cGVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92RW51bWVyYXRlZFR5cGUgJiBfX3RoaXNjYWxsIFByb3ZFbnVtZXJhdGVkVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZFbnVtZXJhdGVkVHlwZSBjb25zdCAmKQ0KKz8/NFByb3ZFbnVtZXJhdGVkVHlwZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZFdmVudE9iamVjdCAmIF9fdGhpc2NhbGwgUHJvdkV2ZW50T2JqZWN0OjpvcGVyYXRvcj0oY2xhc3MgUHJvdkV2ZW50T2JqZWN0IGNvbnN0ICYpDQorPz80UHJvdkV2ZW50T2JqZWN0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdkZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGUgJiBfX3RoaXNjYWxsIFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdkZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGUgY29uc3QgJikNCis/PzRQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZSAmIF9fdGhpc2NhbGwgUHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlIGNvbnN0ICYpDQorPz80UHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZSAmIF9fdGhpc2NhbGwgUHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGUgY29uc3QgJikNCis/PzRQcm92Rml4ZWRMZW5ndGhPcGFxdWVUeXBlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlICYgX190aGlzY2FsbCBQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGUgY29uc3QgJikNCis/PzRQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92Rml4ZWRUeXBlICYgX190aGlzY2FsbCBQcm92Rml4ZWRUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdkZpeGVkVHlwZSBjb25zdCAmKQ0KKz8/NFByb3ZGaXhlZFR5cGVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92VmFsdWUgJiBfX3RoaXNjYWxsIFByb3ZHYXVnZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZHYXVnZSBjb25zdCAmKQ0KKz8/NFByb3ZHYXVnZUBAUUFFQUFWUHJvdlZhbHVlQEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZHYXVnZVR5cGUgJiBfX3RoaXNjYWxsIFByb3ZHYXVnZVR5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92R2F1Z2VUeXBlIGNvbnN0ICYpDQorPz80UHJvdkdhdWdlVHlwZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZJUFhBZGRyZXNzVHlwZSAmIF9fdGhpc2NhbGwgUHJvdklQWEFkZHJlc3NUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdklQWEFkZHJlc3NUeXBlIGNvbnN0ICYpDQorPz80UHJvdklQWEFkZHJlc3NUeXBlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAmIF9fdGhpc2NhbGwgUHJvdkluc3RhbmNlVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgY29uc3QgJikNCis/PzRQcm92SW5zdGFuY2VUeXBlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdlZhbHVlICYgX190aGlzY2FsbCBQcm92SW50ZWdlcjo6b3BlcmF0b3I9KGNsYXNzIFByb3ZJbnRlZ2VyIGNvbnN0ICYpDQorPz80UHJvdkludGVnZXJAQFFBRUFBVlByb3ZWYWx1ZUBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92SW50ZWdlclR5cGUgJiBfX3RoaXNjYWxsIFByb3ZJbnRlZ2VyVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZJbnRlZ2VyVHlwZSBjb25zdCAmKQ0KKz8/NFByb3ZJbnRlZ2VyVHlwZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZWYWx1ZSAmIF9fdGhpc2NhbGwgUHJvdklwQWRkcmVzczo6b3BlcmF0b3I9KGNsYXNzIFByb3ZJcEFkZHJlc3MgY29uc3QgJikNCis/PzRQcm92SXBBZGRyZXNzQEBRQUVBQVZQcm92VmFsdWVAQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdklwQWRkcmVzc1R5cGUgJiBfX3RoaXNjYWxsIFByb3ZJcEFkZHJlc3NUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdklwQWRkcmVzc1R5cGUgY29uc3QgJikNCis/PzRQcm92SXBBZGRyZXNzVHlwZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZMZXhpY29uICYgX190aGlzY2FsbCBQcm92TGV4aWNvbjo6b3BlcmF0b3I9KGNsYXNzIFByb3ZMZXhpY29uIGNvbnN0ICYpDQorPz80UHJvdkxleGljb25AQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92TWFjQWRkcmVzc1R5cGUgJiBfX3RoaXNjYWxsIFByb3ZNYWNBZGRyZXNzVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZNYWNBZGRyZXNzVHlwZSBjb25zdCAmKQ0KKz8/NFByb3ZNYWNBZGRyZXNzVHlwZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZOZWdhdGl2ZVJhbmdlVHlwZSAmIF9fdGhpc2NhbGwgUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlIGNvbnN0ICYpDQorPz80UHJvdk5lZ2F0aXZlUmFuZ2VUeXBlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdk5ldHdvcmtBZGRyZXNzVHlwZSAmIF9fdGhpc2NhbGwgUHJvdk5ldHdvcmtBZGRyZXNzVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZOZXR3b3JrQWRkcmVzc1R5cGUgY29uc3QgJikNCis/PzRQcm92TmV0d29ya0FkZHJlc3NUeXBlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdlZhbHVlICYgX190aGlzY2FsbCBQcm92TnVsbDo6b3BlcmF0b3I9KGNsYXNzIFByb3ZOdWxsIGNvbnN0ICYpDQorPz80UHJvdk51bGxAQFFBRUFBVlByb3ZWYWx1ZUBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92TnVsbFR5cGUgJiBfX3RoaXNjYWxsIFByb3ZOdWxsVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZOdWxsVHlwZSBjb25zdCAmKQ0KKz8/NFByb3ZOdWxsVHlwZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZPU0lBZGRyZXNzVHlwZSAmIF9fdGhpc2NhbGwgUHJvdk9TSUFkZHJlc3NUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdk9TSUFkZHJlc3NUeXBlIGNvbnN0ICYpDQorPz80UHJvdk9TSUFkZHJlc3NUeXBlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdlZhbHVlICYgX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I9KGNsYXNzIFByb3ZPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYpDQorPz80UHJvdk9iamVjdElkZW50aWZpZXJAQFFBRUFBVlByb3ZWYWx1ZUBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92T2JqZWN0SWRlbnRpZmllclR5cGUgJiBfX3RoaXNjYWxsIFByb3ZPYmplY3RJZGVudGlmaWVyVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZPYmplY3RJZGVudGlmaWVyVHlwZSBjb25zdCAmKQ0KKz8/NFByb3ZPYmplY3RJZGVudGlmaWVyVHlwZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZWYWx1ZSAmIF9fdGhpc2NhbGwgUHJvdk9jdGV0U3RyaW5nOjpvcGVyYXRvcj0oY2xhc3MgUHJvdk9jdGV0U3RyaW5nIGNvbnN0ICYpDQorPz80UHJvdk9jdGV0U3RyaW5nQEBRQUVBQVZQcm92VmFsdWVAQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdk9jdGV0U3RyaW5nVHlwZSAmIF9fdGhpc2NhbGwgUHJvdk9jdGV0U3RyaW5nVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZPY3RldFN0cmluZ1R5cGUgY29uc3QgJikNCis/PzRQcm92T2N0ZXRTdHJpbmdUeXBlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdlZhbHVlICYgX190aGlzY2FsbCBQcm92T3BhcXVlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdk9wYXF1ZSBjb25zdCAmKQ0KKz8/NFByb3ZPcGFxdWVAQFFBRUFBVlByb3ZWYWx1ZUBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92T3BhcXVlVHlwZSAmIF9fdGhpc2NhbGwgUHJvdk9wYXF1ZVR5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92T3BhcXVlVHlwZSBjb25zdCAmKQ0KKz8/NFByb3ZPcGFxdWVUeXBlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdlBoeXNBZGRyZXNzVHlwZSAmIF9fdGhpc2NhbGwgUHJvdlBoeXNBZGRyZXNzVHlwZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZQaHlzQWRkcmVzc1R5cGUgY29uc3QgJikNCis/PzRQcm92UGh5c0FkZHJlc3NUeXBlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdlBvc2l0aXZlUmFuZ2VUeXBlICYgX190aGlzY2FsbCBQcm92UG9zaXRpdmVSYW5nZVR5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92UG9zaXRpdmVSYW5nZVR5cGUgY29uc3QgJikNCis/PzRQcm92UG9zaXRpdmVSYW5nZVR5cGVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92UG9zaXRpdmVSYW5nZWRUeXBlICYgX190aGlzY2FsbCBQcm92UG9zaXRpdmVSYW5nZWRUeXBlOjpvcGVyYXRvcj0oY2xhc3MgUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZSBjb25zdCAmKQ0KKz8/NFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92Um93U3RhdHVzVHlwZSAmIF9fdGhpc2NhbGwgUHJvdlJvd1N0YXR1c1R5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92Um93U3RhdHVzVHlwZSBjb25zdCAmKQ0KKz8/NFByb3ZSb3dTdGF0dXNUeXBlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdlZhbHVlICYgX190aGlzY2FsbCBQcm92VGltZVRpY2tzOjpvcGVyYXRvcj0oY2xhc3MgUHJvdlRpbWVUaWNrcyBjb25zdCAmKQ0KKz8/NFByb3ZUaW1lVGlja3NAQFFBRUFBVlByb3ZWYWx1ZUBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92VGltZVRpY2tzVHlwZSAmIF9fdGhpc2NhbGwgUHJvdlRpbWVUaWNrc1R5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92VGltZVRpY2tzVHlwZSBjb25zdCAmKQ0KKz8/NFByb3ZUaW1lVGlja3NUeXBlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdlVEUEFkZHJlc3NUeXBlICYgX190aGlzY2FsbCBQcm92VURQQWRkcmVzc1R5cGU6Om9wZXJhdG9yPShjbGFzcyBQcm92VURQQWRkcmVzc1R5cGUgY29uc3QgJikNCis/PzRQcm92VURQQWRkcmVzc1R5cGVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBQcm92VmFsdWUgJiBfX3RoaXNjYWxsIFByb3ZVSW50ZWdlcjMyOjpvcGVyYXRvcj0oY2xhc3MgUHJvdlVJbnRlZ2VyMzIgY29uc3QgJikNCis/PzRQcm92VUludGVnZXIzMkBAUUFFQUFWUHJvdlZhbHVlQEBBQlYwQEBaDQorOyBwcml2YXRlOiBjbGFzcyBQcm92VmFsdWUgJiBfX3RoaXNjYWxsIFByb3ZWYWx1ZTo6b3BlcmF0b3I9KGNsYXNzIFByb3ZWYWx1ZSBjb25zdCAmKQ0KKz8/NFByb3ZWYWx1ZUBAQUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFF1ZXJ5UHJlcHJvY2Vzc29yICYgX190aGlzY2FsbCBRdWVyeVByZXByb2Nlc3Nvcjo6b3BlcmF0b3I9KGNsYXNzIFF1ZXJ5UHJlcHJvY2Vzc29yIGNvbnN0ICYpDQorPz80UXVlcnlQcmVwcm9jZXNzb3JAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlBbmROb2RlICYgX190aGlzY2FsbCBXbWlBbmROb2RlOjpvcGVyYXRvcj0oY2xhc3MgV21pQW5kTm9kZSBjb25zdCAmKQ0KKz8/NFdtaUFuZE5vZGVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlOb3ROb2RlICYgX190aGlzY2FsbCBXbWlOb3ROb2RlOjpvcGVyYXRvcj0oY2xhc3MgV21pTm90Tm9kZSBjb25zdCAmKQ0KKz8/NFdtaU5vdE5vZGVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlOdWxsTm9kZSAmIF9fdGhpc2NhbGwgV21pTnVsbE5vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlOdWxsTm9kZSBjb25zdCAmKQ0KKz8/NFdtaU51bGxOb2RlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV21pTnVsbFJhbmdlTm9kZSAmIF9fdGhpc2NhbGwgV21pTnVsbFJhbmdlTm9kZTo6b3BlcmF0b3I9KGNsYXNzIFdtaU51bGxSYW5nZU5vZGUgY29uc3QgJikNCis/PzRXbWlOdWxsUmFuZ2VOb2RlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV21pT3BlcmF0b3JFcXVhbE5vZGUgJiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yRXF1YWxOb2RlOjpvcGVyYXRvcj0oY2xhc3MgV21pT3BlcmF0b3JFcXVhbE5vZGUgY29uc3QgJikNCis/PzRXbWlPcGVyYXRvckVxdWFsTm9kZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaU9wZXJhdG9yRXF1YWxPckdyZWF0ZXJOb2RlICYgX190aGlzY2FsbCBXbWlPcGVyYXRvckVxdWFsT3JHcmVhdGVyTm9kZTo6b3BlcmF0b3I9KGNsYXNzIFdtaU9wZXJhdG9yRXF1YWxPckdyZWF0ZXJOb2RlIGNvbnN0ICYpDQorPz80V21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlPcGVyYXRvckVxdWFsT3JMZXNzTm9kZSAmIF9fdGhpc2NhbGwgV21pT3BlcmF0b3JFcXVhbE9yTGVzc05vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlPcGVyYXRvckVxdWFsT3JMZXNzTm9kZSBjb25zdCAmKQ0KKz8/NFdtaU9wZXJhdG9yRXF1YWxPckxlc3NOb2RlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV21pT3BlcmF0b3JHcmVhdGVyTm9kZSAmIF9fdGhpc2NhbGwgV21pT3BlcmF0b3JHcmVhdGVyTm9kZTo6b3BlcmF0b3I9KGNsYXNzIFdtaU9wZXJhdG9yR3JlYXRlck5vZGUgY29uc3QgJikNCis/PzRXbWlPcGVyYXRvckdyZWF0ZXJOb2RlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV21pT3BlcmF0b3JJc0FOb2RlICYgX190aGlzY2FsbCBXbWlPcGVyYXRvcklzQU5vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlPcGVyYXRvcklzQU5vZGUgY29uc3QgJikNCis/PzRXbWlPcGVyYXRvcklzQU5vZGVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlPcGVyYXRvckxlc3NOb2RlICYgX190aGlzY2FsbCBXbWlPcGVyYXRvckxlc3NOb2RlOjpvcGVyYXRvcj0oY2xhc3MgV21pT3BlcmF0b3JMZXNzTm9kZSBjb25zdCAmKQ0KKz8/NFdtaU9wZXJhdG9yTGVzc05vZGVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlPcGVyYXRvckxpa2VOb2RlICYgX190aGlzY2FsbCBXbWlPcGVyYXRvckxpa2VOb2RlOjpvcGVyYXRvcj0oY2xhc3MgV21pT3BlcmF0b3JMaWtlTm9kZSBjb25zdCAmKQ0KKz8/NFdtaU9wZXJhdG9yTGlrZU5vZGVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlPcGVyYXRvck5vZGUgJiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yTm9kZTo6b3BlcmF0b3I9KGNsYXNzIFdtaU9wZXJhdG9yTm9kZSBjb25zdCAmKQ0KKz8/NFdtaU9wZXJhdG9yTm9kZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaU9wZXJhdG9yTm90RXF1YWxOb2RlICYgX190aGlzY2FsbCBXbWlPcGVyYXRvck5vdEVxdWFsTm9kZTo6b3BlcmF0b3I9KGNsYXNzIFdtaU9wZXJhdG9yTm90RXF1YWxOb2RlIGNvbnN0ICYpDQorPz80V21pT3BlcmF0b3JOb3RFcXVhbE5vZGVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlPcGVyYXRvck5vdElzQU5vZGUgJiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yTm90SXNBTm9kZTo6b3BlcmF0b3I9KGNsYXNzIFdtaU9wZXJhdG9yTm90SXNBTm9kZSBjb25zdCAmKQ0KKz8/NFdtaU9wZXJhdG9yTm90SXNBTm9kZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaU9wZXJhdG9yTm90TGlrZU5vZGUgJiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yTm90TGlrZU5vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlPcGVyYXRvck5vdExpa2VOb2RlIGNvbnN0ICYpDQorPz80V21pT3BlcmF0b3JOb3RMaWtlTm9kZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaU9yTm9kZSAmIF9fdGhpc2NhbGwgV21pT3JOb2RlOjpvcGVyYXRvcj0oY2xhc3MgV21pT3JOb2RlIGNvbnN0ICYpDQorPz80V21pT3JOb2RlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV21pUmFuZ2VOb2RlICYgX190aGlzY2FsbCBXbWlSYW5nZU5vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlSYW5nZU5vZGUgY29uc3QgJikNCis/PzRXbWlSYW5nZU5vZGVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlTaWduZWRJbnRlZ2VyTm9kZSAmIF9fdGhpc2NhbGwgV21pU2lnbmVkSW50ZWdlck5vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlTaWduZWRJbnRlZ2VyTm9kZSBjb25zdCAmKQ0KKz8/NFdtaVNpZ25lZEludGVnZXJOb2RlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZSAmIF9fdGhpc2NhbGwgV21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZTo6b3BlcmF0b3I9KGNsYXNzIFdtaVNpZ25lZEludGVnZXJSYW5nZU5vZGUgY29uc3QgJikNCis/PzRXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV21pU3RyaW5nTm9kZSAmIF9fdGhpc2NhbGwgV21pU3RyaW5nTm9kZTo6b3BlcmF0b3I9KGNsYXNzIFdtaVN0cmluZ05vZGUgY29uc3QgJikNCis/PzRXbWlTdHJpbmdOb2RlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV21pU3RyaW5nUmFuZ2VOb2RlICYgX190aGlzY2FsbCBXbWlTdHJpbmdSYW5nZU5vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlTdHJpbmdSYW5nZU5vZGUgY29uc3QgJikNCis/PzRXbWlTdHJpbmdSYW5nZU5vZGVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlUcmVlTm9kZSAmIF9fdGhpc2NhbGwgV21pVHJlZU5vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlUcmVlTm9kZSBjb25zdCAmKQ0KKz8/NFdtaVRyZWVOb2RlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV21pVHJlZU5vZGVJdGVyYXRvciAmIF9fdGhpc2NhbGwgV21pVHJlZU5vZGVJdGVyYXRvcjo6b3BlcmF0b3I9KGNsYXNzIFdtaVRyZWVOb2RlSXRlcmF0b3IgY29uc3QgJikNCis/PzRXbWlUcmVlTm9kZUl0ZXJhdG9yQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV21pVW5zaWduZWRJbnRlZ2VyTm9kZSAmIF9fdGhpc2NhbGwgV21pVW5zaWduZWRJbnRlZ2VyTm9kZTo6b3BlcmF0b3I9KGNsYXNzIFdtaVVuc2lnbmVkSW50ZWdlck5vZGUgY29uc3QgJikNCis/PzRXbWlVbnNpZ25lZEludGVnZXJOb2RlQEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlICYgX190aGlzY2FsbCBXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGU6Om9wZXJhdG9yPShjbGFzcyBXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGUgY29uc3QgJikNCis/PzRXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGVAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlWYWx1ZU5vZGUgJiBfX3RoaXNjYWxsIFdtaVZhbHVlTm9kZTo6b3BlcmF0b3I9KGNsYXNzIFdtaVZhbHVlTm9kZSBjb25zdCAmKQ0KKz8/NFdtaVZhbHVlTm9kZUBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFByb3ZJbnN0YW5jZVR5cGU6Om9wZXJhdG9yPT0oY2xhc3MgUHJvdkluc3RhbmNlVHlwZSBjb25zdCAmKWNvbnN0IA0KKz8/OFByb3ZJbnN0YW5jZVR5cGVAQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFByb3ZPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj09KGNsYXNzIFByb3ZPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYpY29uc3QgDQorPz84UHJvdk9iamVjdElkZW50aWZpZXJAQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFByb3ZWYWx1ZTo6b3BlcmF0b3I9PShjbGFzcyBQcm92VmFsdWUgY29uc3QgJiljb25zdCANCis/PzhQcm92VmFsdWVAQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFByb3ZJbnN0YW5jZVR5cGU6Om9wZXJhdG9yIT0oY2xhc3MgUHJvdkluc3RhbmNlVHlwZSBjb25zdCAmKWNvbnN0IA0KKz8/OVByb3ZJbnN0YW5jZVR5cGVAQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFByb3ZPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvciE9KGNsYXNzIFByb3ZPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYpY29uc3QgDQorPz85UHJvdk9iamVjdElkZW50aWZpZXJAQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFByb3ZWYWx1ZTo6b3BlcmF0b3IhPShjbGFzcyBQcm92VmFsdWUgY29uc3QgJiljb25zdCANCis/PzlQcm92VmFsdWVAQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgJiBfX3RoaXNjYWxsIFByb3ZPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcltdKHVuc2lnbmVkIGxvbmcpY29uc3QgDQorPz9BUHJvdk9iamVjdElkZW50aWZpZXJAQFFCRUFBS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgUHJvdkFuYWx5c2VyOjpvcGVyYXRvciB2b2lkICoodm9pZCkNCis/P0JQcm92QW5hbHlzZXJAQFVBRVBBWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBQcm92SW5zdGFuY2VUeXBlOjpvcGVyYXRvciB2b2lkICoodm9pZCkNCis/P0JQcm92SW5zdGFuY2VUeXBlQEBVQUVQQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fdGhpc2NhbGwgUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZTo6b3BlcmF0b3Igdm9pZCAqKHZvaWQpDQorPz9CUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAVUFFUEFYWFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdk9iamVjdElkZW50aWZpZXIgIF9fdGhpc2NhbGwgUHJvdk9iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yKyhjbGFzcyBQcm92T2JqZWN0SWRlbnRpZmllciBjb25zdCAmKWNvbnN0IA0KKz8/SFByb3ZPYmplY3RJZGVudGlmaWVyQEBRQkU/QVYwQEFCVjBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgUHJvdk9iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yPChjbGFzcyBQcm92T2JqZWN0SWRlbnRpZmllciBjb25zdCAmKWNvbnN0IA0KKz8/TVByb3ZPYmplY3RJZGVudGlmaWVyQEBRQkVIQUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I8PShjbGFzcyBQcm92T2JqZWN0SWRlbnRpZmllciBjb25zdCAmKWNvbnN0IA0KKz8/TlByb3ZPYmplY3RJZGVudGlmaWVyQEBRQkVIQUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I+KGNsYXNzIFByb3ZPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYpY29uc3QgDQorPz9PUHJvdk9iamVjdElkZW50aWZpZXJAQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFByb3ZPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj49KGNsYXNzIFByb3ZPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYpY29uc3QgDQorPz9QUHJvdk9iamVjdElkZW50aWZpZXJAQFFCRUhBQlYwQEBaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3RoaXNjYWxsIFByb3ZJcEFkZHJlc3M6Om9wZXJhdG9yKCkodm9pZCljb25zdCANCis/P1JQcm92SXBBZGRyZXNzQEBRQkVQQVhYWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3IoKSh2b2lkKWNvbnN0IA0KKz8/UlByb3ZPYmplY3RJZGVudGlmaWVyQEBRQkVQQVhYWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBQcm92T2N0ZXRTdHJpbmc6Om9wZXJhdG9yKCkodm9pZCljb25zdCANCis/P1JQcm92T2N0ZXRTdHJpbmdAQFFCRVBBWFhaDQorOyBwdWJsaWM6IHZvaWQgKiBfX3RoaXNjYWxsIFByb3ZPcGFxdWU6Om9wZXJhdG9yKCkodm9pZCljb25zdCANCis/P1JQcm92T3BhcXVlQEBRQkVQQVhYWg0KKzsgY29uc3QgIFBhcnRpdGlvblNldDo6YHZmdGFibGUnDQorPz9fN1BhcnRpdGlvblNldEBANkJADQorOyBjb25zdCAgUHJvdkFuYWx5c2VyOjpgdmZ0YWJsZScNCis/P183UHJvdkFuYWx5c2VyQEA2QkANCis7IGNvbnN0ICBQcm92Qml0U3RyaW5nVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdkluc3RhbmNlVHlwZSd9DQorPz9fN1Byb3ZCaXRTdHJpbmdUeXBlQEA2QlByb3ZJbnN0YW5jZVR5cGVAQEANCis7IGNvbnN0ICBQcm92Qml0U3RyaW5nVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1Byb3ZCaXRTdHJpbmdUeXBlQEA2QlByb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBQcm92Q291bnRlcjY0OjpgdmZ0YWJsZScNCis/P183UHJvdkNvdW50ZXI2NEBANkJADQorOyBjb25zdCAgUHJvdkNvdW50ZXI2NFR5cGU6OmB2ZnRhYmxlJw0KKz8/XzdQcm92Q291bnRlcjY0VHlwZUBANkJADQorOyBjb25zdCAgUHJvdkNvdW50ZXI6OmB2ZnRhYmxlJw0KKz8/XzdQcm92Q291bnRlckBANkJADQorOyBjb25zdCAgUHJvdkNvdW50ZXJUeXBlOjpgdmZ0YWJsZScNCis/P183UHJvdkNvdW50ZXJUeXBlQEA2QkANCis7IGNvbnN0ICBQcm92RGF0ZVRpbWVUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92SW5zdGFuY2VUeXBlJ30NCis/P183UHJvdkRhdGVUaW1lVHlwZUBANkJQcm92SW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgUHJvdkRhdGVUaW1lVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1Byb3ZEYXRlVGltZVR5cGVAQDZCUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZEaXNwbGF5U3RyaW5nVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdkluc3RhbmNlVHlwZSd9DQorPz9fN1Byb3ZEaXNwbGF5U3RyaW5nVHlwZUBANkJQcm92SW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgUHJvdkRpc3BsYXlTdHJpbmdUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92UG9zaXRpdmVSYW5nZWRUeXBlJ30NCis/P183UHJvdkRpc3BsYXlTdHJpbmdUeXBlQEA2QlByb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBQcm92RW51bWVyYXRlZFR5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZJbnN0YW5jZVR5cGUnfQ0KKz8/XzdQcm92RW51bWVyYXRlZFR5cGVAQDZCUHJvdkluc3RhbmNlVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZFbnVtZXJhdGVkVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdk5lZ2F0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1Byb3ZFbnVtZXJhdGVkVHlwZUBANkJQcm92TmVnYXRpdmVSYW5nZWRUeXBlQEBADQorOyBjb25zdCAgUHJvdkV2ZW50T2JqZWN0OjpgdmZ0YWJsZScNCis/P183UHJvdkV2ZW50T2JqZWN0QEA2QkANCis7IGNvbnN0ICBQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6YHZmdGFibGUnDQorPz9fN1Byb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlQEA2QkANCis7IGNvbnN0ICBQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdkluc3RhbmNlVHlwZSd9DQorPz9fN1Byb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlQEA2QlByb3ZJbnN0YW5jZVR5cGVAQEANCis7IGNvbnN0ICBQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1Byb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlQEA2QlByb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGU6OmB2ZnRhYmxlJw0KKz8/XzdQcm92Rml4ZWRMZW5ndGhPY3RldFN0cmluZ1R5cGVAQDZCQA0KKzsgY29uc3QgIFByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdkluc3RhbmNlVHlwZSd9DQorPz9fN1Byb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZUBANkJQcm92SW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgUHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92UG9zaXRpdmVSYW5nZWRUeXBlJ30NCis/P183UHJvdkZpeGVkTGVuZ3RoT2N0ZXRTdHJpbmdUeXBlQEA2QlByb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBQcm92Rml4ZWRMZW5ndGhPcGFxdWVUeXBlOjpgdmZ0YWJsZScNCis/P183UHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZUBANkJADQorOyBjb25zdCAgUHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdkluc3RhbmNlVHlwZSd9DQorPz9fN1Byb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGVAQDZCUHJvdkluc3RhbmNlVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZGaXhlZExlbmd0aE9wYXF1ZVR5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGUnfQ0KKz8/XzdQcm92Rml4ZWRMZW5ndGhPcGFxdWVUeXBlQEA2QlByb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGU6OmB2ZnRhYmxlJw0KKz8/XzdQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGVAQDZCQA0KKzsgY29uc3QgIFByb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdkluc3RhbmNlVHlwZSd9DQorPz9fN1Byb3ZGaXhlZExlbmd0aFBoeXNBZGRyZXNzVHlwZUBANkJQcm92SW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgUHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92UG9zaXRpdmVSYW5nZWRUeXBlJ30NCis/P183UHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlQEA2QlByb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBQcm92Rml4ZWRUeXBlOjpgdmZ0YWJsZScNCis/P183UHJvdkZpeGVkVHlwZUBANkJADQorOyBjb25zdCAgUHJvdkdhdWdlOjpgdmZ0YWJsZScNCis/P183UHJvdkdhdWdlQEA2QkANCis7IGNvbnN0ICBQcm92R2F1Z2VUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92SW5zdGFuY2VUeXBlJ30NCis/P183UHJvdkdhdWdlVHlwZUBANkJQcm92SW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgUHJvdkdhdWdlVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1Byb3ZHYXVnZVR5cGVAQDZCUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZJUFhBZGRyZXNzVHlwZTo6YHZmdGFibGUnDQorPz9fN1Byb3ZJUFhBZGRyZXNzVHlwZUBANkJADQorOyBjb25zdCAgUHJvdklQWEFkZHJlc3NUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92SW5zdGFuY2VUeXBlJ30NCis/P183UHJvdklQWEFkZHJlc3NUeXBlQEA2QlByb3ZJbnN0YW5jZVR5cGVAQEANCis7IGNvbnN0ICBQcm92SVBYQWRkcmVzc1R5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGUnfQ0KKz8/XzdQcm92SVBYQWRkcmVzc1R5cGVAQDZCUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZJbnN0YW5jZVR5cGU6OmB2ZnRhYmxlJw0KKz8/XzdQcm92SW5zdGFuY2VUeXBlQEA2QkANCis7IGNvbnN0ICBQcm92SW50ZWdlcjo6YHZmdGFibGUnDQorPz9fN1Byb3ZJbnRlZ2VyQEA2QkANCis7IGNvbnN0ICBQcm92SW50ZWdlclR5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZJbnN0YW5jZVR5cGUnfQ0KKz8/XzdQcm92SW50ZWdlclR5cGVAQDZCUHJvdkluc3RhbmNlVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZJbnRlZ2VyVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdk5lZ2F0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1Byb3ZJbnRlZ2VyVHlwZUBANkJQcm92TmVnYXRpdmVSYW5nZWRUeXBlQEBADQorOyBjb25zdCAgUHJvdklwQWRkcmVzczo6YHZmdGFibGUnDQorPz9fN1Byb3ZJcEFkZHJlc3NAQDZCQA0KKzsgY29uc3QgIFByb3ZJcEFkZHJlc3NUeXBlOjpgdmZ0YWJsZScNCis/P183UHJvdklwQWRkcmVzc1R5cGVAQDZCQA0KKzsgY29uc3QgIFByb3ZNYWNBZGRyZXNzVHlwZTo6YHZmdGFibGUnDQorPz9fN1Byb3ZNYWNBZGRyZXNzVHlwZUBANkJADQorOyBjb25zdCAgUHJvdk1hY0FkZHJlc3NUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92SW5zdGFuY2VUeXBlJ30NCis/P183UHJvdk1hY0FkZHJlc3NUeXBlQEA2QlByb3ZJbnN0YW5jZVR5cGVAQEANCis7IGNvbnN0ICBQcm92TWFjQWRkcmVzc1R5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGUnfQ0KKz8/XzdQcm92TWFjQWRkcmVzc1R5cGVAQDZCUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZOZWdhdGl2ZVJhbmdlVHlwZTo6YHZmdGFibGUnDQorPz9fN1Byb3ZOZWdhdGl2ZVJhbmdlVHlwZUBANkJADQorOyBjb25zdCAgUHJvdk5ldHdvcmtBZGRyZXNzVHlwZTo6YHZmdGFibGUnDQorPz9fN1Byb3ZOZXR3b3JrQWRkcmVzc1R5cGVAQDZCQA0KKzsgY29uc3QgIFByb3ZOdWxsOjpgdmZ0YWJsZScNCis/P183UHJvdk51bGxAQDZCQA0KKzsgY29uc3QgIFByb3ZOdWxsVHlwZTo6YHZmdGFibGUnDQorPz9fN1Byb3ZOdWxsVHlwZUBANkJADQorOyBjb25zdCAgUHJvdk9TSUFkZHJlc3NUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92SW5zdGFuY2VUeXBlJ30NCis/P183UHJvdk9TSUFkZHJlc3NUeXBlQEA2QlByb3ZJbnN0YW5jZVR5cGVAQEANCis7IGNvbnN0ICBQcm92T1NJQWRkcmVzc1R5cGU6OmB2ZnRhYmxlJ3tmb3IgYFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGUnfQ0KKz8/XzdQcm92T1NJQWRkcmVzc1R5cGVAQDZCUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZPYmplY3RJZGVudGlmaWVyOjpgdmZ0YWJsZScNCis/P183UHJvdk9iamVjdElkZW50aWZpZXJAQDZCQA0KKzsgY29uc3QgIFByb3ZPYmplY3RJZGVudGlmaWVyVHlwZTo6YHZmdGFibGUnDQorPz9fN1Byb3ZPYmplY3RJZGVudGlmaWVyVHlwZUBANkJADQorOyBjb25zdCAgUHJvdk9jdGV0U3RyaW5nOjpgdmZ0YWJsZScNCis/P183UHJvdk9jdGV0U3RyaW5nQEA2QkANCis7IGNvbnN0ICBQcm92T2N0ZXRTdHJpbmdUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92SW5zdGFuY2VUeXBlJ30NCis/P183UHJvdk9jdGV0U3RyaW5nVHlwZUBANkJQcm92SW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgUHJvdk9jdGV0U3RyaW5nVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1Byb3ZPY3RldFN0cmluZ1R5cGVAQDZCUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZPcGFxdWU6OmB2ZnRhYmxlJw0KKz8/XzdQcm92T3BhcXVlQEA2QkANCis7IGNvbnN0ICBQcm92T3BhcXVlVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdkluc3RhbmNlVHlwZSd9DQorPz9fN1Byb3ZPcGFxdWVUeXBlQEA2QlByb3ZJbnN0YW5jZVR5cGVAQEANCis7IGNvbnN0ICBQcm92T3BhcXVlVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1Byb3ZPcGFxdWVUeXBlQEA2QlByb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBQcm92UGh5c0FkZHJlc3NUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92SW5zdGFuY2VUeXBlJ30NCis/P183UHJvdlBoeXNBZGRyZXNzVHlwZUBANkJQcm92SW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgUHJvdlBoeXNBZGRyZXNzVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZSd9DQorPz9fN1Byb3ZQaHlzQWRkcmVzc1R5cGVAQDZCUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZQb3NpdGl2ZVJhbmdlVHlwZTo6YHZmdGFibGUnDQorPz9fN1Byb3ZQb3NpdGl2ZVJhbmdlVHlwZUBANkJADQorOyBjb25zdCAgUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZTo6YHZmdGFibGUnDQorPz9fN1Byb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQDZCQA0KKzsgY29uc3QgIFByb3ZSb3dTdGF0dXNUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92SW5zdGFuY2VUeXBlJ30NCis/P183UHJvdlJvd1N0YXR1c1R5cGVAQDZCUHJvdkluc3RhbmNlVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZSb3dTdGF0dXNUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92TmVnYXRpdmVSYW5nZWRUeXBlJ30NCis/P183UHJvdlJvd1N0YXR1c1R5cGVAQDZCUHJvdk5lZ2F0aXZlUmFuZ2VkVHlwZUBAQA0KKzsgY29uc3QgIFByb3ZUaW1lVGlja3M6OmB2ZnRhYmxlJw0KKz8/XzdQcm92VGltZVRpY2tzQEA2QkANCis7IGNvbnN0ICBQcm92VGltZVRpY2tzVHlwZTo6YHZmdGFibGUnDQorPz9fN1Byb3ZUaW1lVGlja3NUeXBlQEA2QkANCis7IGNvbnN0ICBQcm92VURQQWRkcmVzc1R5cGU6OmB2ZnRhYmxlJw0KKz8/XzdQcm92VURQQWRkcmVzc1R5cGVAQDZCQA0KKzsgY29uc3QgIFByb3ZVRFBBZGRyZXNzVHlwZTo6YHZmdGFibGUne2ZvciBgUHJvdkluc3RhbmNlVHlwZSd9DQorPz9fN1Byb3ZVRFBBZGRyZXNzVHlwZUBANkJQcm92SW5zdGFuY2VUeXBlQEBADQorOyBjb25zdCAgUHJvdlVEUEFkZHJlc3NUeXBlOjpgdmZ0YWJsZSd7Zm9yIGBQcm92UG9zaXRpdmVSYW5nZWRUeXBlJ30NCis/P183UHJvdlVEUEFkZHJlc3NUeXBlQEA2QlByb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQEANCis7IGNvbnN0ICBQcm92VUludGVnZXIzMjo6YHZmdGFibGUnDQorPz9fN1Byb3ZVSW50ZWdlcjMyQEA2QkANCis7IGNvbnN0ICBQcm92VmFsdWU6OmB2ZnRhYmxlJw0KKz8/XzdQcm92VmFsdWVAQDZCQA0KKzsgY29uc3QgIFF1ZXJ5UHJlcHJvY2Vzc29yOjpgdmZ0YWJsZScNCis/P183UXVlcnlQcmVwcm9jZXNzb3JAQDZCQA0KKzsgY29uc3QgIFdtaUFuZE5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlBbmROb2RlQEA2QkANCis7IGNvbnN0ICBXbWlOb3ROb2RlOjpgdmZ0YWJsZScNCis/P183V21pTm90Tm9kZUBANkJADQorOyBjb25zdCAgV21pTnVsbE5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlOdWxsTm9kZUBANkJADQorOyBjb25zdCAgV21pTnVsbFJhbmdlTm9kZTo6YHZmdGFibGUnDQorPz9fN1dtaU51bGxSYW5nZU5vZGVAQDZCQA0KKzsgY29uc3QgIFdtaU9wZXJhdG9yRXF1YWxOb2RlOjpgdmZ0YWJsZScNCis/P183V21pT3BlcmF0b3JFcXVhbE5vZGVAQDZCQA0KKzsgY29uc3QgIFdtaU9wZXJhdG9yRXF1YWxPckdyZWF0ZXJOb2RlOjpgdmZ0YWJsZScNCis/P183V21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGVAQDZCQA0KKzsgY29uc3QgIFdtaU9wZXJhdG9yRXF1YWxPckxlc3NOb2RlOjpgdmZ0YWJsZScNCis/P183V21pT3BlcmF0b3JFcXVhbE9yTGVzc05vZGVAQDZCQA0KKzsgY29uc3QgIFdtaU9wZXJhdG9yR3JlYXRlck5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlPcGVyYXRvckdyZWF0ZXJOb2RlQEA2QkANCis7IGNvbnN0ICBXbWlPcGVyYXRvcklzQU5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlPcGVyYXRvcklzQU5vZGVAQDZCQA0KKzsgY29uc3QgIFdtaU9wZXJhdG9yTGVzc05vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlPcGVyYXRvckxlc3NOb2RlQEA2QkANCis7IGNvbnN0ICBXbWlPcGVyYXRvckxpa2VOb2RlOjpgdmZ0YWJsZScNCis/P183V21pT3BlcmF0b3JMaWtlTm9kZUBANkJADQorOyBjb25zdCAgV21pT3BlcmF0b3JOb2RlOjpgdmZ0YWJsZScNCis/P183V21pT3BlcmF0b3JOb2RlQEA2QkANCis7IGNvbnN0ICBXbWlPcGVyYXRvck5vdEVxdWFsTm9kZTo6YHZmdGFibGUnDQorPz9fN1dtaU9wZXJhdG9yTm90RXF1YWxOb2RlQEA2QkANCis7IGNvbnN0ICBXbWlPcGVyYXRvck5vdElzQU5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlPcGVyYXRvck5vdElzQU5vZGVAQDZCQA0KKzsgY29uc3QgIFdtaU9wZXJhdG9yTm90TGlrZU5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlPcGVyYXRvck5vdExpa2VOb2RlQEA2QkANCis7IGNvbnN0ICBXbWlPck5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlPck5vZGVAQDZCQA0KKzsgY29uc3QgIFdtaVJhbmdlTm9kZTo6YHZmdGFibGUnDQorPz9fN1dtaVJhbmdlTm9kZUBANkJADQorOyBjb25zdCAgV21pU2lnbmVkSW50ZWdlck5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlTaWduZWRJbnRlZ2VyTm9kZUBANkJADQorOyBjb25zdCAgV21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZTo6YHZmdGFibGUnDQorPz9fN1dtaVNpZ25lZEludGVnZXJSYW5nZU5vZGVAQDZCQA0KKzsgY29uc3QgIFdtaVN0cmluZ05vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlTdHJpbmdOb2RlQEA2QkANCis7IGNvbnN0ICBXbWlTdHJpbmdSYW5nZU5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlTdHJpbmdSYW5nZU5vZGVAQDZCQA0KKzsgY29uc3QgIFdtaVRyZWVOb2RlOjpgdmZ0YWJsZScNCis/P183V21pVHJlZU5vZGVAQDZCQA0KKzsgY29uc3QgIFdtaVRyZWVOb2RlSXRlcmF0b3I6OmB2ZnRhYmxlJw0KKz8/XzdXbWlUcmVlTm9kZUl0ZXJhdG9yQEA2QkANCis7IGNvbnN0ICBXbWlVbnNpZ25lZEludGVnZXJOb2RlOjpgdmZ0YWJsZScNCis/P183V21pVW5zaWduZWRJbnRlZ2VyTm9kZUBANkJADQorOyBjb25zdCAgV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlOjpgdmZ0YWJsZScNCis/P183V21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEA2QkANCis7IGNvbnN0ICBXbWlWYWx1ZU5vZGU6OmB2ZnRhYmxlJw0KKz8/XzdXbWlWYWx1ZU5vZGVAQDZCQA0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgUHJvdkFuYWx5c2VyOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZQcm92QW5hbHlzZXJAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgUHJvdkRpc3BsYXlTdHJpbmdUeXBlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZQcm92RGlzcGxheVN0cmluZ1R5cGVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgUHJvdkV2ZW50T2JqZWN0OjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZQcm92RXZlbnRPYmplY3RAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgUHJvdkdhdWdlVHlwZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GUHJvdkdhdWdlVHlwZUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBQcm92SW5zdGFuY2VUeXBlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZQcm92SW5zdGFuY2VUeXBlQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFByb3ZJbnRlZ2VyVHlwZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GUHJvdkludGVnZXJUeXBlQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFByb3ZPY3RldFN0cmluZ1R5cGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRlByb3ZPY3RldFN0cmluZ1R5cGVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgUHJvdk9wYXF1ZVR5cGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRlByb3ZPcGFxdWVUeXBlQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFByb3ZQaHlzQWRkcmVzc1R5cGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRlByb3ZQaHlzQWRkcmVzc1R5cGVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBXbWlBbmROb2RlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZXbWlBbmROb2RlQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFdtaU5vdE5vZGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRldtaU5vdE5vZGVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgV21pT3BlcmF0b3JFcXVhbE5vZGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRldtaU9wZXJhdG9yRXF1YWxOb2RlQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yRXF1YWxPckdyZWF0ZXJOb2RlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZXbWlPcGVyYXRvckVxdWFsT3JHcmVhdGVyTm9kZUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBXbWlPcGVyYXRvckVxdWFsT3JMZXNzTm9kZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GV21pT3BlcmF0b3JFcXVhbE9yTGVzc05vZGVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgV21pT3BlcmF0b3JHcmVhdGVyTm9kZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GV21pT3BlcmF0b3JHcmVhdGVyTm9kZUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBXbWlPcGVyYXRvcklzQU5vZGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRldtaU9wZXJhdG9ySXNBTm9kZUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBXbWlPcGVyYXRvckxlc3NOb2RlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZXbWlPcGVyYXRvckxlc3NOb2RlQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yTGlrZU5vZGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRldtaU9wZXJhdG9yTGlrZU5vZGVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgV21pT3BlcmF0b3JOb3RFcXVhbE5vZGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRldtaU9wZXJhdG9yTm90RXF1YWxOb2RlQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yTm90SXNBTm9kZTo6YGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScodm9pZCkNCis/P19GV21pT3BlcmF0b3JOb3RJc0FOb2RlQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yTm90TGlrZU5vZGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRldtaU9wZXJhdG9yTm90TGlrZU5vZGVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgV21pT3JOb2RlOjpgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJyh2b2lkKQ0KKz8/X0ZXbWlPck5vZGVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgV21pVHJlZU5vZGU6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpDQorPz9fRldtaVRyZWVOb2RlQEBRQUVYWFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBjbGFzcyBXbWlSYW5nZU5vZGUgKiBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpBbGxvY0luZmluaXRlUmFuZ2VOb2RlKHZvaWQgKix1bnNpZ25lZCBzaG9ydCAqKQ0KKz9BbGxvY0luZmluaXRlUmFuZ2VOb2RlQFF1ZXJ5UHJlcHJvY2Vzc29yQEBNQUVQQVZXbWlSYW5nZU5vZGVAQFBBWFBBR0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3MgV21pVHJlZU5vZGUgKiBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpBbGxvY1R5cGVOb2RlKHZvaWQgKix1bnNpZ25lZCBzaG9ydCAqLHN0cnVjdCB0YWdWQVJJQU5UICYsZW51bSBXbWlWYWx1ZU5vZGU6OldtaVZhbHVlRnVuY3Rpb24sZW51bSBXbWlWYWx1ZU5vZGU6OldtaVZhbHVlRnVuY3Rpb24sY2xhc3MgV21pVHJlZU5vZGUgKikNCis/QWxsb2NUeXBlTm9kZUBRdWVyeVByZXByb2Nlc3NvckBATUFFUEFWV21pVHJlZU5vZGVAQFBBWFBBR0FBVXRhZ1ZBUklBTlRAQFc0V21pVmFsdWVGdW5jdGlvbkBXbWlWYWx1ZU5vZGVAQDNQQVYyQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgUHJvdkFuYWx5c2VyOjpBbmFseXNlKGNsYXNzIFByb3ZMZXhpY29uICosdW5zaWduZWQgbG9uZyAmLHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyAmLGludCxpbnQsaW50KQ0KKz9BbmFseXNlQFByb3ZBbmFseXNlckBATUFFSFBBVlByb3ZMZXhpY29uQEBBQUtHUEJHMUhISEBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBQcm92Qml0U3RyaW5nVHlwZTo6Qml0U3RyaW5nRGVmKHZvaWQpDQorP0JpdFN0cmluZ0RlZkBQcm92Qml0U3RyaW5nVHlwZUBAQUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGU6OkNoZWNrKHVuc2lnbmVkIGxvbmcgY29uc3QgJikNCis/Q2hlY2tAUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAUUFFSEFCS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBQcm92RXZlbnRPYmplY3Q6OkNsZWFyKHZvaWQpDQorP0NsZWFyQFByb3ZFdmVudE9iamVjdEBAUUFFWFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFdtaVJhbmdlTm9kZTo6Q2xvc2VkTG93ZXJCb3VuZCh2b2lkKQ0KKz9DbG9zZWRMb3dlckJvdW5kQFdtaVJhbmdlTm9kZUBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFdtaVJhbmdlTm9kZTo6Q2xvc2VkVXBwZXJCb3VuZCh2b2lkKQ0KKz9DbG9zZWRVcHBlckJvdW5kQFdtaVJhbmdlTm9kZUBAUUFFSFhaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBQcm92RGVidWdMb2c6OkNsb3NlZG93bih2b2lkKQ0KKz9DbG9zZWRvd25AUHJvdkRlYnVnTG9nQEBTR1hYWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFByb3ZPYmplY3RJZGVudGlmaWVyOjpDb21wYXJpc29uICBfX3RoaXNjYWxsIFByb3ZPYmplY3RJZGVudGlmaWVyOjpDb21wYXJlKGNsYXNzIFByb3ZPYmplY3RJZGVudGlmaWVyIGNvbnN0ICYsY2xhc3MgUHJvdk9iamVjdElkZW50aWZpZXIgY29uc3QgJiljb25zdCANCis/Q29tcGFyZUBQcm92T2JqZWN0SWRlbnRpZmllckBASUJFP0FXNENvbXBhcmlzb25AMUBBQlYxQDBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgV21pUmFuZ2VOb2RlOjpDb21wYXJlUHJvcGVydHlOYW1lKGNsYXNzIFdtaVJhbmdlTm9kZSAmKQ0KKz9Db21wYXJlUHJvcGVydHlOYW1lQFdtaVJhbmdlTm9kZUBAUUFFSkFBVjFAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFdtaVZhbHVlTm9kZTo6Q29tcGFyZVByb3BlcnR5TmFtZShjbGFzcyBXbWlWYWx1ZU5vZGUgJikNCis/Q29tcGFyZVByb3BlcnR5TmFtZUBXbWlWYWx1ZU5vZGVAQFFBRUpBQVYxQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFByb3ZFdmVudE9iamVjdDo6Q29tcGxldGUodm9pZCkNCis/Q29tcGxldGVAUHJvdkV2ZW50T2JqZWN0QEBVQUVYWFoNCis7IHByb3RlY3RlZDogZW51bSBXbWlUcmlTdGF0ZSAgX190aGlzY2FsbCBRdWVyeVByZXByb2Nlc3Nvcjo6Q29udmVydFRvUmFuZ2VzKGNsYXNzIFdtaVRyZWVOb2RlICogJikNCis/Q29udmVydFRvUmFuZ2VzQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUU/QVc0V21pVHJpU3RhdGVAQEFBUEFWV21pVHJlZU5vZGVAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAqIF9fdGhpc2NhbGwgUHJvdkJpdFN0cmluZ1R5cGU6OkNvcHkodm9pZCljb25zdCANCis/Q29weUBQcm92Qml0U3RyaW5nVHlwZUBAVUJFUEFWUHJvdkluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92VmFsdWUgKiBfX3RoaXNjYWxsIFByb3ZDb3VudGVyNjQ6OkNvcHkodm9pZCljb25zdCANCis/Q29weUBQcm92Q291bnRlcjY0QEBVQkVQQVZQcm92VmFsdWVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAqIF9fdGhpc2NhbGwgUHJvdkNvdW50ZXI2NFR5cGU6OkNvcHkodm9pZCljb25zdCANCis/Q29weUBQcm92Q291bnRlcjY0VHlwZUBAVUJFUEFWUHJvdkluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92VmFsdWUgKiBfX3RoaXNjYWxsIFByb3ZDb3VudGVyOjpDb3B5KHZvaWQpY29uc3QgDQorP0NvcHlAUHJvdkNvdW50ZXJAQFVCRVBBVlByb3ZWYWx1ZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92SW5zdGFuY2VUeXBlICogX190aGlzY2FsbCBQcm92Q291bnRlclR5cGU6OkNvcHkodm9pZCljb25zdCANCis/Q29weUBQcm92Q291bnRlclR5cGVAQFVCRVBBVlByb3ZJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAqIF9fdGhpc2NhbGwgUHJvdkRhdGVUaW1lVHlwZTo6Q29weSh2b2lkKWNvbnN0IA0KKz9Db3B5QFByb3ZEYXRlVGltZVR5cGVAQFVCRVBBVlByb3ZJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAqIF9fdGhpc2NhbGwgUHJvdkRpc3BsYXlTdHJpbmdUeXBlOjpDb3B5KHZvaWQpY29uc3QgDQorP0NvcHlAUHJvdkRpc3BsYXlTdHJpbmdUeXBlQEBVQkVQQVZQcm92SW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgKiBfX3RoaXNjYWxsIFByb3ZFbnVtZXJhdGVkVHlwZTo6Q29weSh2b2lkKWNvbnN0IA0KKz9Db3B5QFByb3ZFbnVtZXJhdGVkVHlwZUBAVUJFUEFWUHJvdkluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92SW5zdGFuY2VUeXBlICogX190aGlzY2FsbCBQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6Q29weSh2b2lkKWNvbnN0IA0KKz9Db3B5QFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlQEBVQkVQQVZQcm92SW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgKiBfX3RoaXNjYWxsIFByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZTo6Q29weSh2b2lkKWNvbnN0IA0KKz9Db3B5QFByb3ZGaXhlZExlbmd0aE9jdGV0U3RyaW5nVHlwZUBAVUJFUEFWUHJvdkluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92SW5zdGFuY2VUeXBlICogX190aGlzY2FsbCBQcm92Rml4ZWRMZW5ndGhPcGFxdWVUeXBlOjpDb3B5KHZvaWQpY29uc3QgDQorP0NvcHlAUHJvdkZpeGVkTGVuZ3RoT3BhcXVlVHlwZUBAVUJFUEFWUHJvdkluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92SW5zdGFuY2VUeXBlICogX190aGlzY2FsbCBQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGU6OkNvcHkodm9pZCljb25zdCANCis/Q29weUBQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGVAQFVCRVBBVlByb3ZJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdlZhbHVlICogX190aGlzY2FsbCBQcm92R2F1Z2U6OkNvcHkodm9pZCljb25zdCANCis/Q29weUBQcm92R2F1Z2VAQFVCRVBBVlByb3ZWYWx1ZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92SW5zdGFuY2VUeXBlICogX190aGlzY2FsbCBQcm92R2F1Z2VUeXBlOjpDb3B5KHZvaWQpY29uc3QgDQorP0NvcHlAUHJvdkdhdWdlVHlwZUBAVUJFUEFWUHJvdkluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92SW5zdGFuY2VUeXBlICogX190aGlzY2FsbCBQcm92SVBYQWRkcmVzc1R5cGU6OkNvcHkodm9pZCljb25zdCANCis/Q29weUBQcm92SVBYQWRkcmVzc1R5cGVAQFVCRVBBVlByb3ZJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdlZhbHVlICogX190aGlzY2FsbCBQcm92SW50ZWdlcjo6Q29weSh2b2lkKWNvbnN0IA0KKz9Db3B5QFByb3ZJbnRlZ2VyQEBVQkVQQVZQcm92VmFsdWVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAqIF9fdGhpc2NhbGwgUHJvdkludGVnZXJUeXBlOjpDb3B5KHZvaWQpY29uc3QgDQorP0NvcHlAUHJvdkludGVnZXJUeXBlQEBVQkVQQVZQcm92SW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZWYWx1ZSAqIF9fdGhpc2NhbGwgUHJvdklwQWRkcmVzczo6Q29weSh2b2lkKWNvbnN0IA0KKz9Db3B5QFByb3ZJcEFkZHJlc3NAQFVCRVBBVlByb3ZWYWx1ZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92SW5zdGFuY2VUeXBlICogX190aGlzY2FsbCBQcm92SXBBZGRyZXNzVHlwZTo6Q29weSh2b2lkKWNvbnN0IA0KKz9Db3B5QFByb3ZJcEFkZHJlc3NUeXBlQEBVQkVQQVZQcm92SW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgKiBfX3RoaXNjYWxsIFByb3ZNYWNBZGRyZXNzVHlwZTo6Q29weSh2b2lkKWNvbnN0IA0KKz9Db3B5QFByb3ZNYWNBZGRyZXNzVHlwZUBAVUJFUEFWUHJvdkluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92TmVnYXRpdmVSYW5nZVR5cGUgKiBfX3RoaXNjYWxsIFByb3ZOZWdhdGl2ZVJhbmdlVHlwZTo6Q29weSh2b2lkKQ0KKz9Db3B5QFByb3ZOZWdhdGl2ZVJhbmdlVHlwZUBAVUFFUEFWMUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgKiBfX3RoaXNjYWxsIFByb3ZOZXR3b3JrQWRkcmVzc1R5cGU6OkNvcHkodm9pZCljb25zdCANCis/Q29weUBQcm92TmV0d29ya0FkZHJlc3NUeXBlQEBVQkVQQVZQcm92SW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZWYWx1ZSAqIF9fdGhpc2NhbGwgUHJvdk51bGw6OkNvcHkodm9pZCljb25zdCANCis/Q29weUBQcm92TnVsbEBAVUJFUEFWUHJvdlZhbHVlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgKiBfX3RoaXNjYWxsIFByb3ZOdWxsVHlwZTo6Q29weSh2b2lkKWNvbnN0IA0KKz9Db3B5QFByb3ZOdWxsVHlwZUBAVUJFUEFWUHJvdkluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92SW5zdGFuY2VUeXBlICogX190aGlzY2FsbCBQcm92T1NJQWRkcmVzc1R5cGU6OkNvcHkodm9pZCljb25zdCANCis/Q29weUBQcm92T1NJQWRkcmVzc1R5cGVAQFVCRVBBVlByb3ZJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdlZhbHVlICogX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6Q29weSh2b2lkKWNvbnN0IA0KKz9Db3B5QFByb3ZPYmplY3RJZGVudGlmaWVyQEBVQkVQQVZQcm92VmFsdWVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAqIF9fdGhpc2NhbGwgUHJvdk9iamVjdElkZW50aWZpZXJUeXBlOjpDb3B5KHZvaWQpY29uc3QgDQorP0NvcHlAUHJvdk9iamVjdElkZW50aWZpZXJUeXBlQEBVQkVQQVZQcm92SW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZWYWx1ZSAqIF9fdGhpc2NhbGwgUHJvdk9jdGV0U3RyaW5nOjpDb3B5KHZvaWQpY29uc3QgDQorP0NvcHlAUHJvdk9jdGV0U3RyaW5nQEBVQkVQQVZQcm92VmFsdWVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAqIF9fdGhpc2NhbGwgUHJvdk9jdGV0U3RyaW5nVHlwZTo6Q29weSh2b2lkKWNvbnN0IA0KKz9Db3B5QFByb3ZPY3RldFN0cmluZ1R5cGVAQFVCRVBBVlByb3ZJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdlZhbHVlICogX190aGlzY2FsbCBQcm92T3BhcXVlOjpDb3B5KHZvaWQpY29uc3QgDQorP0NvcHlAUHJvdk9wYXF1ZUBAVUJFUEFWUHJvdlZhbHVlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgKiBfX3RoaXNjYWxsIFByb3ZPcGFxdWVUeXBlOjpDb3B5KHZvaWQpY29uc3QgDQorP0NvcHlAUHJvdk9wYXF1ZVR5cGVAQFVCRVBBVlByb3ZJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdkluc3RhbmNlVHlwZSAqIF9fdGhpc2NhbGwgUHJvdlBoeXNBZGRyZXNzVHlwZTo6Q29weSh2b2lkKWNvbnN0IA0KKz9Db3B5QFByb3ZQaHlzQWRkcmVzc1R5cGVAQFVCRVBBVlByb3ZJbnN0YW5jZVR5cGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgUHJvdlBvc2l0aXZlUmFuZ2VUeXBlICogX190aGlzY2FsbCBQcm92UG9zaXRpdmVSYW5nZVR5cGU6OkNvcHkodm9pZCkNCis/Q29weUBQcm92UG9zaXRpdmVSYW5nZVR5cGVAQFVBRVBBVjFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92SW5zdGFuY2VUeXBlICogX190aGlzY2FsbCBQcm92Um93U3RhdHVzVHlwZTo6Q29weSh2b2lkKWNvbnN0IA0KKz9Db3B5QFByb3ZSb3dTdGF0dXNUeXBlQEBVQkVQQVZQcm92SW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZWYWx1ZSAqIF9fdGhpc2NhbGwgUHJvdlRpbWVUaWNrczo6Q29weSh2b2lkKWNvbnN0IA0KKz9Db3B5QFByb3ZUaW1lVGlja3NAQFVCRVBBVlByb3ZWYWx1ZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92SW5zdGFuY2VUeXBlICogX190aGlzY2FsbCBQcm92VGltZVRpY2tzVHlwZTo6Q29weSh2b2lkKWNvbnN0IA0KKz9Db3B5QFByb3ZUaW1lVGlja3NUeXBlQEBVQkVQQVZQcm92SW5zdGFuY2VUeXBlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgKiBfX3RoaXNjYWxsIFByb3ZVRFBBZGRyZXNzVHlwZTo6Q29weSh2b2lkKWNvbnN0IA0KKz9Db3B5QFByb3ZVRFBBZGRyZXNzVHlwZUBAVUJFUEFWUHJvdkluc3RhbmNlVHlwZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBQcm92VmFsdWUgKiBfX3RoaXNjYWxsIFByb3ZVSW50ZWdlcjMyOjpDb3B5KHZvaWQpY29uc3QgDQorP0NvcHlAUHJvdlVJbnRlZ2VyMzJAQFVCRVBBVlByb3ZWYWx1ZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fdGhpc2NhbGwgV21pQW5kTm9kZTo6Q29weSh2b2lkKQ0KKz9Db3B5QFdtaUFuZE5vZGVAQFVBRVBBVldtaVRyZWVOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVRyZWVOb2RlICogX190aGlzY2FsbCBXbWlOb3ROb2RlOjpDb3B5KHZvaWQpDQorP0NvcHlAV21pTm90Tm9kZUBAVUFFUEFWV21pVHJlZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pVHJlZU5vZGUgKiBfX3RoaXNjYWxsIFdtaU51bGxOb2RlOjpDb3B5KHZvaWQpDQorP0NvcHlAV21pTnVsbE5vZGVAQFVBRVBBVldtaVRyZWVOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVRyZWVOb2RlICogX190aGlzY2FsbCBXbWlOdWxsUmFuZ2VOb2RlOjpDb3B5KHZvaWQpDQorP0NvcHlAV21pTnVsbFJhbmdlTm9kZUBAVUFFUEFWV21pVHJlZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pVHJlZU5vZGUgKiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yRXF1YWxOb2RlOjpDb3B5KHZvaWQpDQorP0NvcHlAV21pT3BlcmF0b3JFcXVhbE5vZGVAQFVBRVBBVldtaVRyZWVOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVRyZWVOb2RlICogX190aGlzY2FsbCBXbWlPcGVyYXRvckVxdWFsT3JHcmVhdGVyTm9kZTo6Q29weSh2b2lkKQ0KKz9Db3B5QFdtaU9wZXJhdG9yRXF1YWxPckdyZWF0ZXJOb2RlQEBVQUVQQVZXbWlUcmVlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fdGhpc2NhbGwgV21pT3BlcmF0b3JFcXVhbE9yTGVzc05vZGU6OkNvcHkodm9pZCkNCis/Q29weUBXbWlPcGVyYXRvckVxdWFsT3JMZXNzTm9kZUBAVUFFUEFWV21pVHJlZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pVHJlZU5vZGUgKiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yR3JlYXRlck5vZGU6OkNvcHkodm9pZCkNCis/Q29weUBXbWlPcGVyYXRvckdyZWF0ZXJOb2RlQEBVQUVQQVZXbWlUcmVlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fdGhpc2NhbGwgV21pT3BlcmF0b3JJc0FOb2RlOjpDb3B5KHZvaWQpDQorP0NvcHlAV21pT3BlcmF0b3JJc0FOb2RlQEBVQUVQQVZXbWlUcmVlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fdGhpc2NhbGwgV21pT3BlcmF0b3JMZXNzTm9kZTo6Q29weSh2b2lkKQ0KKz9Db3B5QFdtaU9wZXJhdG9yTGVzc05vZGVAQFVBRVBBVldtaVRyZWVOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVRyZWVOb2RlICogX190aGlzY2FsbCBXbWlPcGVyYXRvckxpa2VOb2RlOjpDb3B5KHZvaWQpDQorP0NvcHlAV21pT3BlcmF0b3JMaWtlTm9kZUBAVUFFUEFWV21pVHJlZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pVHJlZU5vZGUgKiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yTm90RXF1YWxOb2RlOjpDb3B5KHZvaWQpDQorP0NvcHlAV21pT3BlcmF0b3JOb3RFcXVhbE5vZGVAQFVBRVBBVldtaVRyZWVOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVRyZWVOb2RlICogX190aGlzY2FsbCBXbWlPcGVyYXRvck5vdElzQU5vZGU6OkNvcHkodm9pZCkNCis/Q29weUBXbWlPcGVyYXRvck5vdElzQU5vZGVAQFVBRVBBVldtaVRyZWVOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVRyZWVOb2RlICogX190aGlzY2FsbCBXbWlPcGVyYXRvck5vdExpa2VOb2RlOjpDb3B5KHZvaWQpDQorP0NvcHlAV21pT3BlcmF0b3JOb3RMaWtlTm9kZUBAVUFFUEFWV21pVHJlZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pVHJlZU5vZGUgKiBfX3RoaXNjYWxsIFdtaU9yTm9kZTo6Q29weSh2b2lkKQ0KKz9Db3B5QFdtaU9yTm9kZUBAVUFFUEFWV21pVHJlZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pVHJlZU5vZGUgKiBfX3RoaXNjYWxsIFdtaVNpZ25lZEludGVnZXJOb2RlOjpDb3B5KHZvaWQpDQorP0NvcHlAV21pU2lnbmVkSW50ZWdlck5vZGVAQFVBRVBBVldtaVRyZWVOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVRyZWVOb2RlICogX190aGlzY2FsbCBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlOjpDb3B5KHZvaWQpDQorP0NvcHlAV21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZUBAVUFFUEFWV21pVHJlZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pVHJlZU5vZGUgKiBfX3RoaXNjYWxsIFdtaVN0cmluZ05vZGU6OkNvcHkodm9pZCkNCis/Q29weUBXbWlTdHJpbmdOb2RlQEBVQUVQQVZXbWlUcmVlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fdGhpc2NhbGwgV21pU3RyaW5nUmFuZ2VOb2RlOjpDb3B5KHZvaWQpDQorP0NvcHlAV21pU3RyaW5nUmFuZ2VOb2RlQEBVQUVQQVZXbWlUcmVlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fdGhpc2NhbGwgV21pVHJlZU5vZGU6OkNvcHkodm9pZCkNCis/Q29weUBXbWlUcmVlTm9kZUBAVUFFUEFWMUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVRyZWVOb2RlSXRlcmF0b3IgKiBfX3RoaXNjYWxsIFdtaVRyZWVOb2RlSXRlcmF0b3I6OkNvcHkodm9pZCkNCis/Q29weUBXbWlUcmVlTm9kZUl0ZXJhdG9yQEBVQUVQQVYxQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pVHJlZU5vZGUgKiBfX3RoaXNjYWxsIFdtaVVuc2lnbmVkSW50ZWdlck5vZGU6OkNvcHkodm9pZCkNCis/Q29weUBXbWlVbnNpZ25lZEludGVnZXJOb2RlQEBVQUVQQVZXbWlUcmVlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fdGhpc2NhbGwgV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlOjpDb3B5KHZvaWQpDQorP0NvcHlAV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBVQUVQQVZXbWlUcmVlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fdGhpc2NhbGwgV21pVHJlZU5vZGU6OkNvcHlOb2RlKHZvaWQpDQorP0NvcHlOb2RlQFdtaVRyZWVOb2RlQEBVQUVQQVYxQFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBRdWVyeVByZXByb2Nlc3Nvcjo6Q291bnREaXNqdW5jdGlvbnMoY2xhc3MgV21pVHJlZU5vZGUgKix1bnNpZ25lZCBsb25nICYpDQorP0NvdW50RGlzanVuY3Rpb25zQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUVYUEFWV21pVHJlZU5vZGVAQEFBS0BaDQorOyBwcm90ZWN0ZWQ6IGVudW0gV21pVHJpU3RhdGUgIF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OkNyZWF0ZURpc2p1bmN0aW9uQ29udGFpbmVyKHZvaWQgKixjbGFzcyBXbWlUcmVlTm9kZSAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiAqLGNsYXNzIERpc2p1bmN0aW9ucyAqICYpDQorP0NyZWF0ZURpc2p1bmN0aW9uQ29udGFpbmVyQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUU/QVc0V21pVHJpU3RhdGVAQFBBWFBBVldtaVRyZWVOb2RlQEBLUEFQQUdBQVBBVkRpc2p1bmN0aW9uc0BAQFoNCis7IHByb3RlY3RlZDogZW51bSBXbWlUcmlTdGF0ZSAgX190aGlzY2FsbCBRdWVyeVByZXByb2Nlc3Nvcjo6Q3JlYXRlRGlzanVuY3Rpb25zKHZvaWQgKixjbGFzcyBXbWlUcmVlTm9kZSAqLGNsYXNzIERpc2p1bmN0aW9ucyAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiAqLHVuc2lnbmVkIGxvbmcgJikNCis/Q3JlYXRlRGlzanVuY3Rpb25zQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUU/QVc0V21pVHJpU3RhdGVAQFBBWFBBVldtaVRyZWVOb2RlQEBQQVZEaXNqdW5jdGlvbnNAQEtQQVBBR0FBS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgY2xhc3MgUHJvdkxleGljb24gKiBfX3RoaXNjYWxsIFByb3ZBbmFseXNlcjo6Q3JlYXRlTGV4aWNvbih2b2lkKQ0KKz9DcmVhdGVMZXhpY29uQFByb3ZBbmFseXNlckBATUFFUEFWUHJvdkxleGljb25AQFhaDQorOyBwcm90ZWN0ZWQ6IGVudW0gV21pVHJpU3RhdGUgIF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OkNyZWF0ZVBhcnRpdGlvblNldChjbGFzcyBEaXNqdW5jdGlvbnMgKixjbGFzcyBQYXJ0aXRpb25TZXQgKiAmKQ0KKz9DcmVhdGVQYXJ0aXRpb25TZXRAUXVlcnlQcmVwcm9jZXNzb3JAQElBRT9BVzRXbWlUcmlTdGF0ZUBAUEFWRGlzanVuY3Rpb25zQEBBQVBBVlBhcnRpdGlvblNldEBAQFoNCis7IHB1YmxpYzogY2xhc3MgUHJvdk9iamVjdElkZW50aWZpZXIgKiBfX3RoaXNjYWxsIFByb3ZPYmplY3RJZGVudGlmaWVyOjpDdXQoY2xhc3MgUHJvdk9iamVjdElkZW50aWZpZXIgJiljb25zdCANCis/Q3V0QFByb3ZPYmplY3RJZGVudGlmaWVyQEBRQkVQQVYxQEFBVjFAQFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIFByb3ZEYXRlVGltZVR5cGU6OkRhdGVUaW1lRGVmKHZvaWQpDQorP0RhdGVUaW1lRGVmQFByb3ZEYXRlVGltZVR5cGVAQEFBRUhYWg0KKzsgdW5zaWduZWQgc2hvcnQgKiBfX3N0ZGNhbGwgRGJjc1RvVW5pY29kZVN0cmluZyhjaGFyIGNvbnN0ICopDQorP0RiY3NUb1VuaWNvZGVTdHJpbmdAQFlHUEFHUEJEQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIFByb3ZBbmFseXNlcjo6RGVjQ2hhclRvRGVjSW50ZWdlcihjaGFyKQ0KKz9EZWNDaGFyVG9EZWNJbnRlZ2VyQFByb3ZBbmFseXNlckBAU0dLREBaDQorOyBwdWJsaWM6IHN0YXRpYyBjaGFyIF9fc3RkY2FsbCBQcm92QW5hbHlzZXI6OkRlY0ludGVnZXJUb0RlY0NoYXIodW5zaWduZWQgY2hhcikNCis/RGVjSW50ZWdlclRvRGVjQ2hhckBQcm92QW5hbHlzZXJAQFNHREVAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19zdGRjYWxsIFByb3ZBbmFseXNlcjo6RGVjSW50ZWdlclRvRGVjV0NoYXIodW5zaWduZWQgY2hhcikNCis/RGVjSW50ZWdlclRvRGVjV0NoYXJAUHJvdkFuYWx5c2VyQEBTR0dFQFoNCis7IHB1YmxpYzogc3RhdGljIGNoYXIgX19zdGRjYWxsIFByb3ZBbmFseXNlcjo6RGVjSW50ZWdlclRvSGV4Q2hhcih1bnNpZ25lZCBjaGFyKQ0KKz9EZWNJbnRlZ2VyVG9IZXhDaGFyQFByb3ZBbmFseXNlckBAU0dERUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX3N0ZGNhbGwgUHJvdkFuYWx5c2VyOjpEZWNJbnRlZ2VyVG9IZXhXQ2hhcih1bnNpZ25lZCBjaGFyKQ0KKz9EZWNJbnRlZ2VyVG9IZXhXQ2hhckBQcm92QW5hbHlzZXJAQFNHR0VAWg0KKzsgcHVibGljOiBzdGF0aWMgY2hhciBfX3N0ZGNhbGwgUHJvdkFuYWx5c2VyOjpEZWNJbnRlZ2VyVG9PY3RDaGFyKHVuc2lnbmVkIGNoYXIpDQorP0RlY0ludGVnZXJUb09jdENoYXJAUHJvdkFuYWx5c2VyQEBTR0RFQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0IF9fc3RkY2FsbCBQcm92QW5hbHlzZXI6OkRlY0ludGVnZXJUb09jdFdDaGFyKHVuc2lnbmVkIGNoYXIpDQorP0RlY0ludGVnZXJUb09jdFdDaGFyQFByb3ZBbmFseXNlckBAU0dHRUBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBQcm92QW5hbHlzZXI6OkRlY1dDaGFyVG9EZWNJbnRlZ2VyKHVuc2lnbmVkIHNob3J0KQ0KKz9EZWNXQ2hhclRvRGVjSW50ZWdlckBQcm92QW5hbHlzZXJAQFNHS0dAWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFF1ZXJ5UHJlcHJvY2Vzc29yOjpRdWFkU3RhdGUgIF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OkRpc2p1bmN0aXZlTm9ybWFsRm9ybShjbGFzcyBXbWlUcmVlTm9kZSAqICYpDQorP0Rpc2p1bmN0aXZlTm9ybWFsRm9ybUBRdWVyeVByZXByb2Nlc3NvckBASUFFP0FXNFF1YWRTdGF0ZUAxQEFBUEFWV21pVHJlZU5vZGVAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgUHJvdkRhdGVUaW1lVHlwZTo6RW5jb2RlKHVuc2lnbmVkIGxvbmcgY29uc3QgJix1bnNpZ25lZCBsb25nIGNvbnN0ICYsdW5zaWduZWQgbG9uZyBjb25zdCAmLHVuc2lnbmVkIGxvbmcgY29uc3QgJix1bnNpZ25lZCBsb25nIGNvbnN0ICYsdW5zaWduZWQgbG9uZyBjb25zdCAmLHVuc2lnbmVkIGxvbmcgY29uc3QgJix1bnNpZ25lZCBsb25nIGNvbnN0ICYsdW5zaWduZWQgbG9uZyBjb25zdCAmLHVuc2lnbmVkIGxvbmcgY29uc3QgJix1bnNpZ25lZCBsb25nIGNvbnN0ICYpDQorP0VuY29kZUBQcm92RGF0ZVRpbWVUeXBlQEBBQUVYQUJLMDAwMDAwMDAwMEBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBQcm92RW51bWVyYXRlZFR5cGU6OkVudW1lcmF0aW9uRGVmKHZvaWQpDQorP0VudW1lcmF0aW9uRGVmQFByb3ZFbnVtZXJhdGVkVHlwZUBAQUFFSFhaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgUHJvdkNvdW50ZXI2NDo6RXF1aXZhbGVudChjbGFzcyBQcm92VmFsdWUgY29uc3QgJiljb25zdCANCis/RXF1aXZhbGVudEBQcm92Q291bnRlcjY0QEBNQkVIQUJWUHJvdlZhbHVlQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBQcm92Q291bnRlcjY0OjpFcXVpdmFsZW50KGNsYXNzIFByb3ZDb3VudGVyNjQgY29uc3QgJiljb25zdCANCis/RXF1aXZhbGVudEBQcm92Q291bnRlcjY0QEBRQkVIQUJWMUBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFByb3ZDb3VudGVyNjRUeXBlOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgY29uc3QgJiljb25zdCANCis/RXF1aXZhbGVudEBQcm92Q291bnRlcjY0VHlwZUBATUJFSEFCVlByb3ZJbnN0YW5jZVR5cGVAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgUHJvdkNvdW50ZXI6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdlZhbHVlIGNvbnN0ICYpY29uc3QgDQorP0VxdWl2YWxlbnRAUHJvdkNvdW50ZXJAQE1CRUhBQlZQcm92VmFsdWVAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFByb3ZDb3VudGVyOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZDb3VudGVyIGNvbnN0ICYpY29uc3QgDQorP0VxdWl2YWxlbnRAUHJvdkNvdW50ZXJAQFFCRUhBQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgUHJvdkNvdW50ZXJUeXBlOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgY29uc3QgJiljb25zdCANCis/RXF1aXZhbGVudEBQcm92Q291bnRlclR5cGVAQE1CRUhBQlZQcm92SW5zdGFuY2VUeXBlQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFByb3ZHYXVnZTo6RXF1aXZhbGVudChjbGFzcyBQcm92VmFsdWUgY29uc3QgJiljb25zdCANCis/RXF1aXZhbGVudEBQcm92R2F1Z2VAQE1CRUhBQlZQcm92VmFsdWVAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFByb3ZHYXVnZTo6RXF1aXZhbGVudChjbGFzcyBQcm92R2F1Z2UgY29uc3QgJiljb25zdCANCis/RXF1aXZhbGVudEBQcm92R2F1Z2VAQFFCRUhBQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgUHJvdkdhdWdlVHlwZTo6RXF1aXZhbGVudChjbGFzcyBQcm92SW5zdGFuY2VUeXBlIGNvbnN0ICYpY29uc3QgDQorP0VxdWl2YWxlbnRAUHJvdkdhdWdlVHlwZUBATUJFSEFCVlByb3ZJbnN0YW5jZVR5cGVAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgUHJvdkludGVnZXI6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdlZhbHVlIGNvbnN0ICYpY29uc3QgDQorP0VxdWl2YWxlbnRAUHJvdkludGVnZXJAQE1CRUhBQlZQcm92VmFsdWVAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFByb3ZJbnRlZ2VyOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZJbnRlZ2VyIGNvbnN0ICYpY29uc3QgDQorP0VxdWl2YWxlbnRAUHJvdkludGVnZXJAQFFCRUhBQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgUHJvdkludGVnZXJUeXBlOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgY29uc3QgJiljb25zdCANCis/RXF1aXZhbGVudEBQcm92SW50ZWdlclR5cGVAQE1CRUhBQlZQcm92SW5zdGFuY2VUeXBlQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFByb3ZJcEFkZHJlc3M6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdlZhbHVlIGNvbnN0ICYpY29uc3QgDQorP0VxdWl2YWxlbnRAUHJvdklwQWRkcmVzc0BATUJFSEFCVlByb3ZWYWx1ZUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgUHJvdklwQWRkcmVzczo6RXF1aXZhbGVudChjbGFzcyBQcm92SXBBZGRyZXNzIGNvbnN0ICYpY29uc3QgDQorP0VxdWl2YWxlbnRAUHJvdklwQWRkcmVzc0BAUUJFSEFCVjFAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBQcm92SXBBZGRyZXNzVHlwZTo6RXF1aXZhbGVudChjbGFzcyBQcm92SW5zdGFuY2VUeXBlIGNvbnN0ICYpY29uc3QgDQorP0VxdWl2YWxlbnRAUHJvdklwQWRkcmVzc1R5cGVAQE1CRUhBQlZQcm92SW5zdGFuY2VUeXBlQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFByb3ZOZXR3b3JrQWRkcmVzc1R5cGU6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdkluc3RhbmNlVHlwZSBjb25zdCAmKWNvbnN0IA0KKz9FcXVpdmFsZW50QFByb3ZOZXR3b3JrQWRkcmVzc1R5cGVAQE1CRUhBQlZQcm92SW5zdGFuY2VUeXBlQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFByb3ZOdWxsOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZWYWx1ZSBjb25zdCAmKWNvbnN0IA0KKz9FcXVpdmFsZW50QFByb3ZOdWxsQEBNQkVIQUJWUHJvdlZhbHVlQEBAWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFByb3ZOdWxsVHlwZTo6RXF1aXZhbGVudChjbGFzcyBQcm92SW5zdGFuY2VUeXBlIGNvbnN0ICYpY29uc3QgDQorP0VxdWl2YWxlbnRAUHJvdk51bGxUeXBlQEBNQkVIQUJWUHJvdkluc3RhbmNlVHlwZUBAQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgUHJvdk9iamVjdElkZW50aWZpZXI6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdk9iamVjdElkZW50aWZpZXIgY29uc3QgJiljb25zdCANCis/RXF1aXZhbGVudEBQcm92T2JqZWN0SWRlbnRpZmllckBASUJFSEFCVjFAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6RXF1aXZhbGVudChjbGFzcyBQcm92VmFsdWUgY29uc3QgJiljb25zdCANCis/RXF1aXZhbGVudEBQcm92T2JqZWN0SWRlbnRpZmllckBATUJFSEFCVlByb3ZWYWx1ZUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgUHJvdk9iamVjdElkZW50aWZpZXI6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdk9iamVjdElkZW50aWZpZXIgY29uc3QgJix1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9FcXVpdmFsZW50QFByb3ZPYmplY3RJZGVudGlmaWVyQEBRQkVIQUJWMUBLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllclR5cGU6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdkluc3RhbmNlVHlwZSBjb25zdCAmKWNvbnN0IA0KKz9FcXVpdmFsZW50QFByb3ZPYmplY3RJZGVudGlmaWVyVHlwZUBATUJFSEFCVlByb3ZJbnN0YW5jZVR5cGVAQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgUHJvdk9jdGV0U3RyaW5nOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZWYWx1ZSBjb25zdCAmKWNvbnN0IA0KKz9FcXVpdmFsZW50QFByb3ZPY3RldFN0cmluZ0BATUJFSEFCVlByb3ZWYWx1ZUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgUHJvdk9jdGV0U3RyaW5nOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZPY3RldFN0cmluZyBjb25zdCAmKWNvbnN0IA0KKz9FcXVpdmFsZW50QFByb3ZPY3RldFN0cmluZ0BAUUJFSEFCVjFAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBQcm92T2N0ZXRTdHJpbmdUeXBlOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZJbnN0YW5jZVR5cGUgY29uc3QgJiljb25zdCANCis/RXF1aXZhbGVudEBQcm92T2N0ZXRTdHJpbmdUeXBlQEBNQkVIQUJWUHJvdkluc3RhbmNlVHlwZUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBQcm92T3BhcXVlOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZWYWx1ZSBjb25zdCAmKWNvbnN0IA0KKz9FcXVpdmFsZW50QFByb3ZPcGFxdWVAQE1CRUhBQlZQcm92VmFsdWVAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFByb3ZPcGFxdWU6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdk9wYXF1ZSBjb25zdCAmKWNvbnN0IA0KKz9FcXVpdmFsZW50QFByb3ZPcGFxdWVAQFFCRUhBQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgUHJvdk9wYXF1ZVR5cGU6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdkluc3RhbmNlVHlwZSBjb25zdCAmKWNvbnN0IA0KKz9FcXVpdmFsZW50QFByb3ZPcGFxdWVUeXBlQEBNQkVIQUJWUHJvdkluc3RhbmNlVHlwZUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBQcm92VGltZVRpY2tzOjpFcXVpdmFsZW50KGNsYXNzIFByb3ZWYWx1ZSBjb25zdCAmKWNvbnN0IA0KKz9FcXVpdmFsZW50QFByb3ZUaW1lVGlja3NAQE1CRUhBQlZQcm92VmFsdWVAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFByb3ZUaW1lVGlja3M6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdlRpbWVUaWNrcyBjb25zdCAmKWNvbnN0IA0KKz9FcXVpdmFsZW50QFByb3ZUaW1lVGlja3NAQFFCRUhBQlYxQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgUHJvdlRpbWVUaWNrc1R5cGU6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdkluc3RhbmNlVHlwZSBjb25zdCAmKWNvbnN0IA0KKz9FcXVpdmFsZW50QFByb3ZUaW1lVGlja3NUeXBlQEBNQkVIQUJWUHJvdkluc3RhbmNlVHlwZUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCBpbnQgX190aGlzY2FsbCBQcm92VUludGVnZXIzMjo6RXF1aXZhbGVudChjbGFzcyBQcm92VmFsdWUgY29uc3QgJiljb25zdCANCis/RXF1aXZhbGVudEBQcm92VUludGVnZXIzMkBATUJFSEFCVlByb3ZWYWx1ZUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgUHJvdlVJbnRlZ2VyMzI6OkVxdWl2YWxlbnQoY2xhc3MgUHJvdlVJbnRlZ2VyMzIgY29uc3QgJiljb25zdCANCis/RXF1aXZhbGVudEBQcm92VUludGVnZXIzMkBAUUJFSEFCVjFAQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OkV2YWx1YXRlKHZvaWQgKixzdHJ1Y3QgU1FMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT04gJixjbGFzcyBXbWlUcmVlTm9kZSAqICopDQorP0V2YWx1YXRlQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUVIUEFYQUFVU1FMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT05AQFBBUEFWV21pVHJlZU5vZGVAQEBaDQorOyBwcm90ZWN0ZWQ6IGVudW0gV21pVHJpU3RhdGUgIF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OkV2YWx1YXRlQW5kRXhwcmVzc2lvbihjbGFzcyBXbWlUcmVlTm9kZSAqICYpDQorP0V2YWx1YXRlQW5kRXhwcmVzc2lvbkBRdWVyeVByZXByb2Nlc3NvckBASUFFP0FXNFdtaVRyaVN0YXRlQEBBQVBBVldtaVRyZWVOb2RlQEBAWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFdtaVRyaVN0YXRlICBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpFdmFsdWF0ZU5vdEVxdWFsRXhwcmVzc2lvbihjbGFzcyBXbWlUcmVlTm9kZSAqICYpDQorP0V2YWx1YXRlTm90RXF1YWxFeHByZXNzaW9uQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUU/QVc0V21pVHJpU3RhdGVAQEFBUEFWV21pVHJlZU5vZGVAQEBaDQorOyBwcm90ZWN0ZWQ6IGVudW0gV21pVHJpU3RhdGUgIF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OkV2YWx1YXRlTm90RXhwcmVzc2lvbihjbGFzcyBXbWlUcmVlTm9kZSAqICYpDQorP0V2YWx1YXRlTm90RXhwcmVzc2lvbkBRdWVyeVByZXByb2Nlc3NvckBASUFFP0FXNFdtaVRyaVN0YXRlQEBBQVBBVldtaVRyZWVOb2RlQEBAWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFdtaVRyaVN0YXRlICBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpFdmFsdWF0ZU9yRXhwcmVzc2lvbihjbGFzcyBXbWlUcmVlTm9kZSAqICYpDQorP0V2YWx1YXRlT3JFeHByZXNzaW9uQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUU/QVc0V21pVHJpU3RhdGVAQEFBUEFWV21pVHJlZU5vZGVAQEBaDQorOyBwdWJsaWM6IGNsYXNzIFByb3ZMZXhpY29uICogX190aGlzY2FsbCBQcm92QW5hbHlzZXI6OkdldChpbnQsaW50LGludCkNCis/R2V0QFByb3ZBbmFseXNlckBAUUFFUEFWUHJvdkxleGljb25AQEhISEBaDQorOyBwcml2YXRlOiBjbGFzcyBQcm92TGV4aWNvbiAqIF9fdGhpc2NhbGwgUHJvdkJpdFN0cmluZ1R5cGU6OkdldCh2b2lkKQ0KKz9HZXRAUHJvdkJpdFN0cmluZ1R5cGVAQEFBRVBBVlByb3ZMZXhpY29uQEBYWg0KKzsgcHJpdmF0ZTogY2xhc3MgUHJvdkxleGljb24gKiBfX3RoaXNjYWxsIFByb3ZEYXRlVGltZVR5cGU6OkdldCh2b2lkKQ0KKz9HZXRAUHJvdkRhdGVUaW1lVHlwZUBAQUFFUEFWUHJvdkxleGljb25AQFhaDQorOyBwcml2YXRlOiBjbGFzcyBQcm92TGV4aWNvbiAqIF9fdGhpc2NhbGwgUHJvdkVudW1lcmF0ZWRUeXBlOjpHZXQodm9pZCkNCis/R2V0QFByb3ZFbnVtZXJhdGVkVHlwZUBAQUFFUEFWUHJvdkxleGljb25AQFhaDQorOyBwcm90ZWN0ZWQ6IGNsYXNzIFByb3ZMZXhpY29uICogX190aGlzY2FsbCBQcm92UG9zaXRpdmVSYW5nZWRUeXBlOjpHZXQodm9pZCkNCis/R2V0QFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQElBRVBBVlByb3ZMZXhpY29uQEBYWg0KKzsgcHVibGljOiBjaGFyICogX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6R2V0QWxsb2NhdGVkU3RyaW5nKHZvaWQpY29uc3QgDQorP0dldEFsbG9jYXRlZFN0cmluZ0BQcm92T2JqZWN0SWRlbnRpZmllckBAUUJFUEFEWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIERpc2p1bmN0aW9uczo6R2V0Q29uanVuY3Rpb25Db3VudCh2b2lkKQ0KKz9HZXRDb25qdW5jdGlvbkNvdW50QERpc2p1bmN0aW9uc0BAUUFFS1haDQorOyBwdWJsaWM6IGVudW0gV21pVmFsdWVOb2RlOjpXbWlWYWx1ZUZ1bmN0aW9uICBfX3RoaXNjYWxsIFdtaVZhbHVlTm9kZTo6R2V0Q29uc3RhbnRGdW5jdGlvbih2b2lkKQ0KKz9HZXRDb25zdGFudEZ1bmN0aW9uQFdtaVZhbHVlTm9kZUBAUUFFP0FXNFdtaVZhbHVlRnVuY3Rpb25AMUBYWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBXbWlUcmVlTm9kZTo6R2V0RGF0YSh2b2lkKQ0KKz9HZXREYXRhQFdtaVRyZWVOb2RlQEBRQUVQQVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgV21pVHJlZU5vZGU6OkdldERhdGEodm9pZCAqICopDQorP0dldERhdGFAV21pVHJlZU5vZGVAQFFBRVhQQVBBWEBaDQorOyBwdWJsaWM6IGNsYXNzIENvbmp1bmN0aW9ucyAqIF9fdGhpc2NhbGwgRGlzanVuY3Rpb25zOjpHZXREaXNqdW5jdGlvbih1bnNpZ25lZCBsb25nKQ0KKz9HZXREaXNqdW5jdGlvbkBEaXNqdW5jdGlvbnNAQFFBRVBBVkNvbmp1bmN0aW9uc0BAS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBEaXNqdW5jdGlvbnM6OkdldERpc2p1bmN0aW9uQ291bnQodm9pZCkNCis/R2V0RGlzanVuY3Rpb25Db3VudEBEaXNqdW5jdGlvbnNAQFFBRUtYWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBQcm92RXZlbnRPYmplY3Q6OkdldEhhbmRsZSh2b2lkKQ0KKz9HZXRIYW5kbGVAUHJvdkV2ZW50T2JqZWN0QEBRQUVQQVhYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgUHJvdkNvdW50ZXI2NDo6R2V0SGlnaFZhbHVlKHZvaWQpY29uc3QgDQorP0dldEhpZ2hWYWx1ZUBQcm92Q291bnRlcjY0QEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFdtaVJhbmdlTm9kZTo6R2V0SW5kZXgodm9pZCkNCis/R2V0SW5kZXhAV21pUmFuZ2VOb2RlQEBRQUVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFdtaVZhbHVlTm9kZTo6R2V0SW5kZXgodm9pZCkNCis/R2V0SW5kZXhAV21pVmFsdWVOb2RlQEBRQUVLWFoNCis7IHB1YmxpYzogZW51bSBXbWlUcmlTdGF0ZSAgX190aGlzY2FsbCBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlOjpHZXRJbnRlcnNlY3RpbmdSYW5nZShjbGFzcyBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlICYsY2xhc3MgV21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZSAqICYpDQorP0dldEludGVyc2VjdGluZ1JhbmdlQFdtaVNpZ25lZEludGVnZXJSYW5nZU5vZGVAQFFBRT9BVzRXbWlUcmlTdGF0ZUBAQUFWMUBBQVBBVjFAQFoNCis7IHB1YmxpYzogZW51bSBXbWlUcmlTdGF0ZSAgX190aGlzY2FsbCBXbWlTdHJpbmdSYW5nZU5vZGU6OkdldEludGVyc2VjdGluZ1JhbmdlKGNsYXNzIFdtaVN0cmluZ1JhbmdlTm9kZSAmLGNsYXNzIFdtaVN0cmluZ1JhbmdlTm9kZSAqICYpDQorP0dldEludGVyc2VjdGluZ1JhbmdlQFdtaVN0cmluZ1JhbmdlTm9kZUBAUUFFP0FXNFdtaVRyaVN0YXRlQEBBQVYxQEFBUEFWMUBAWg0KKzsgcHVibGljOiBlbnVtIFdtaVRyaVN0YXRlICBfX3RoaXNjYWxsIFdtaVVuc2lnbmVkSW50ZWdlclJhbmdlTm9kZTo6R2V0SW50ZXJzZWN0aW5nUmFuZ2UoY2xhc3MgV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlICYsY2xhc3MgV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlICogJikNCis/R2V0SW50ZXJzZWN0aW5nUmFuZ2VAV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBRQUU/QVc0V21pVHJpU3RhdGVAQEFBVjFAQUFQQVYxQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaVRyZWVOb2RlICogX190aGlzY2FsbCBXbWlUcmVlTm9kZUl0ZXJhdG9yOjpHZXRJdGVyYXRvcih2b2lkKQ0KKz9HZXRJdGVyYXRvckBXbWlUcmVlTm9kZUl0ZXJhdG9yQEBRQUVQQVZXbWlUcmVlTm9kZUBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFBhcnRpdGlvblNldDo6R2V0S2V5SW5kZXgodm9pZCkNCis/R2V0S2V5SW5kZXhAUGFydGl0aW9uU2V0QEBRQUVLWFoNCis7IHB1YmxpYzogY2xhc3MgV21pVHJlZU5vZGUgKiBfX3RoaXNjYWxsIFdtaVRyZWVOb2RlOjpHZXRMZWZ0KHZvaWQpDQorP0dldExlZnRAV21pVHJlZU5vZGVAQFFBRVBBVjFAWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFdtaVRyZWVOb2RlOjpHZXRMZWZ0KGNsYXNzIFdtaVRyZWVOb2RlICogKiAmKQ0KKz9HZXRMZWZ0QFdtaVRyZWVOb2RlQEBRQUVYQUFQQVBBVjFAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFByb3ZEZWJ1Z0xvZzo6R2V0TGV2ZWwodm9pZCkNCis/R2V0TGV2ZWxAUHJvdkRlYnVnTG9nQEBRQUVLWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgUHJvdkRlYnVnTG9nOjpHZXRMb2dnaW5nKHZvaWQpDQorP0dldExvZ2dpbmdAUHJvdkRlYnVnTG9nQEBRQUVIWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFByb3ZDb3VudGVyNjQ6OkdldExvd1ZhbHVlKHZvaWQpY29uc3QgDQorP0dldExvd1ZhbHVlQFByb3ZDb3VudGVyNjRAQFFCRUtYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlOjpHZXRMb3dlckJvdW5kKHZvaWQpDQorP0dldExvd2VyQm91bmRAUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlQEBRQUVKWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFByb3ZQb3NpdGl2ZVJhbmdlVHlwZTo6R2V0TG93ZXJCb3VuZCh2b2lkKQ0KKz9HZXRMb3dlckJvdW5kQFByb3ZQb3NpdGl2ZVJhbmdlVHlwZUBAUUFFS1haDQorOyBwdWJsaWM6IGVudW0gV21pVHJpU3RhdGUgIF9fdGhpc2NhbGwgV21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZTo6R2V0T3ZlcmxhcHBpbmdSYW5nZShjbGFzcyBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlICYsY2xhc3MgV21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZSAqICYpDQorP0dldE92ZXJsYXBwaW5nUmFuZ2VAV21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZUBAUUFFP0FXNFdtaVRyaVN0YXRlQEBBQVYxQEFBUEFWMUBAWg0KKzsgcHVibGljOiBlbnVtIFdtaVRyaVN0YXRlICBfX3RoaXNjYWxsIFdtaVN0cmluZ1JhbmdlTm9kZTo6R2V0T3ZlcmxhcHBpbmdSYW5nZShjbGFzcyBXbWlTdHJpbmdSYW5nZU5vZGUgJixjbGFzcyBXbWlTdHJpbmdSYW5nZU5vZGUgKiAmKQ0KKz9HZXRPdmVybGFwcGluZ1JhbmdlQFdtaVN0cmluZ1JhbmdlTm9kZUBAUUFFP0FXNFdtaVRyaVN0YXRlQEBBQVYxQEFBUEFWMUBAWg0KKzsgcHVibGljOiBlbnVtIFdtaVRyaVN0YXRlICBfX3RoaXNjYWxsIFdtaVVuc2lnbmVkSW50ZWdlclJhbmdlTm9kZTo6R2V0T3ZlcmxhcHBpbmdSYW5nZShjbGFzcyBXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGUgJixjbGFzcyBXbWlVbnNpZ25lZEludGVnZXJSYW5nZU5vZGUgKiAmKQ0KKz9HZXRPdmVybGFwcGluZ1JhbmdlQFdtaVVuc2lnbmVkSW50ZWdlclJhbmdlTm9kZUBAUUFFP0FXNFdtaVRyaVN0YXRlQEBBQVYxQEFBUEFWMUBAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fdGhpc2NhbGwgV21pVHJlZU5vZGU6OkdldFBhcmVudCh2b2lkKQ0KKz9HZXRQYXJlbnRAV21pVHJlZU5vZGVAQFFBRVBBVjFAWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFdtaVRyZWVOb2RlOjpHZXRQYXJlbnQoY2xhc3MgV21pVHJlZU5vZGUgKiAqICYpDQorP0dldFBhcmVudEBXbWlUcmVlTm9kZUBAUUFFWEFBUEFQQVYxQEBaDQorOyBwdWJsaWM6IGNsYXNzIFBhcnRpdGlvblNldCAqIF9fdGhpc2NhbGwgUGFydGl0aW9uU2V0OjpHZXRQYXJ0aXRpb24odW5zaWduZWQgbG9uZykNCis/R2V0UGFydGl0aW9uQFBhcnRpdGlvblNldEBAUUFFUEFWMUBLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFBhcnRpdGlvblNldDo6R2V0UGFydGl0aW9uQ291bnQodm9pZCkNCis/R2V0UGFydGl0aW9uQ291bnRAUGFydGl0aW9uU2V0QEBRQUVLWFoNCis7IHB1YmxpYzogZW51bSBXbWlWYWx1ZU5vZGU6OldtaVZhbHVlRnVuY3Rpb24gIF9fdGhpc2NhbGwgV21pVmFsdWVOb2RlOjpHZXRQcm9wZXJ0eUZ1bmN0aW9uKHZvaWQpDQorP0dldFByb3BlcnR5RnVuY3Rpb25AV21pVmFsdWVOb2RlQEBRQUU/QVc0V21pVmFsdWVGdW5jdGlvbkAxQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBXbWlSYW5nZU5vZGU6OkdldFByb3BlcnR5TmFtZSh2b2lkKQ0KKz9HZXRQcm9wZXJ0eU5hbWVAV21pUmFuZ2VOb2RlQEBRQUVQQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgV21pVmFsdWVOb2RlOjpHZXRQcm9wZXJ0eU5hbWUodm9pZCkNCis/R2V0UHJvcGVydHlOYW1lQFdtaVZhbHVlTm9kZUBAUUFFUEFHWFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIFByb3ZEZWJ1Z0xvZyAqIF9fc3RkY2FsbCBQcm92RGVidWdMb2c6OkdldFByb3ZEZWJ1Z0xvZyhjaGFyKQ0KKz9HZXRQcm92RGVidWdMb2dAUHJvdkRlYnVnTG9nQEBTR1BBVjFAREBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaVJhbmdlTm9kZSAqIF9fdGhpc2NhbGwgQ29uanVuY3Rpb25zOjpHZXRSYW5nZSh1bnNpZ25lZCBsb25nKQ0KKz9HZXRSYW5nZUBDb25qdW5jdGlvbnNAQFFBRVBBVldtaVJhbmdlTm9kZUBAS0BaDQorOyBwdWJsaWM6IGNsYXNzIFdtaVJhbmdlTm9kZSAqIF9fdGhpc2NhbGwgUGFydGl0aW9uU2V0OjpHZXRSYW5nZSh2b2lkKQ0KKz9HZXRSYW5nZUBQYXJ0aXRpb25TZXRAQFFBRVBBVldtaVJhbmdlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlSYW5nZU5vZGUgKiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yRXF1YWxOb2RlOjpHZXRSYW5nZSh2b2lkKQ0KKz9HZXRSYW5nZUBXbWlPcGVyYXRvckVxdWFsTm9kZUBAVUFFUEFWV21pUmFuZ2VOb2RlQEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIFdtaVJhbmdlTm9kZSAqIF9fdGhpc2NhbGwgV21pT3BlcmF0b3JFcXVhbE9yR3JlYXRlck5vZGU6OkdldFJhbmdlKHZvaWQpDQorP0dldFJhbmdlQFdtaU9wZXJhdG9yRXF1YWxPckdyZWF0ZXJOb2RlQEBVQUVQQVZXbWlSYW5nZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pUmFuZ2VOb2RlICogX190aGlzY2FsbCBXbWlPcGVyYXRvckVxdWFsT3JMZXNzTm9kZTo6R2V0UmFuZ2Uodm9pZCkNCis/R2V0UmFuZ2VAV21pT3BlcmF0b3JFcXVhbE9yTGVzc05vZGVAQFVBRVBBVldtaVJhbmdlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlSYW5nZU5vZGUgKiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yR3JlYXRlck5vZGU6OkdldFJhbmdlKHZvaWQpDQorP0dldFJhbmdlQFdtaU9wZXJhdG9yR3JlYXRlck5vZGVAQFVBRVBBVldtaVJhbmdlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlSYW5nZU5vZGUgKiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9ySXNBTm9kZTo6R2V0UmFuZ2Uodm9pZCkNCis/R2V0UmFuZ2VAV21pT3BlcmF0b3JJc0FOb2RlQEBVQUVQQVZXbWlSYW5nZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pUmFuZ2VOb2RlICogX190aGlzY2FsbCBXbWlPcGVyYXRvckxlc3NOb2RlOjpHZXRSYW5nZSh2b2lkKQ0KKz9HZXRSYW5nZUBXbWlPcGVyYXRvckxlc3NOb2RlQEBVQUVQQVZXbWlSYW5nZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pUmFuZ2VOb2RlICogX190aGlzY2FsbCBXbWlPcGVyYXRvckxpa2VOb2RlOjpHZXRSYW5nZSh2b2lkKQ0KKz9HZXRSYW5nZUBXbWlPcGVyYXRvckxpa2VOb2RlQEBVQUVQQVZXbWlSYW5nZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pUmFuZ2VOb2RlICogX190aGlzY2FsbCBXbWlPcGVyYXRvck5vdEVxdWFsTm9kZTo6R2V0UmFuZ2Uodm9pZCkNCis/R2V0UmFuZ2VAV21pT3BlcmF0b3JOb3RFcXVhbE5vZGVAQFVBRVBBVldtaVJhbmdlTm9kZUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBXbWlSYW5nZU5vZGUgKiBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yTm90SXNBTm9kZTo6R2V0UmFuZ2Uodm9pZCkNCis/R2V0UmFuZ2VAV21pT3BlcmF0b3JOb3RJc0FOb2RlQEBVQUVQQVZXbWlSYW5nZU5vZGVAQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgV21pUmFuZ2VOb2RlICogX190aGlzY2FsbCBXbWlPcGVyYXRvck5vdExpa2VOb2RlOjpHZXRSYW5nZSh2b2lkKQ0KKz9HZXRSYW5nZUBXbWlPcGVyYXRvck5vdExpa2VOb2RlQEBVQUVQQVZXbWlSYW5nZU5vZGVAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDb25qdW5jdGlvbnM6OkdldFJhbmdlQ291bnQodm9pZCkNCis/R2V0UmFuZ2VDb3VudEBDb25qdW5jdGlvbnNAQFFBRUtYWg0KKzsgcHVibGljOiBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fdGhpc2NhbGwgV21pVHJlZU5vZGU6OkdldFJpZ2h0KHZvaWQpDQorP0dldFJpZ2h0QFdtaVRyZWVOb2RlQEBRQUVQQVYxQFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBXbWlUcmVlTm9kZTo6R2V0UmlnaHQoY2xhc3MgV21pVHJlZU5vZGUgKiAqICYpDQorP0dldFJpZ2h0QFdtaVRyZWVOb2RlQEBRQUVYQUFQQVBBVjFAQFoNCis7IHB1YmxpYzogZW51bSBQcm92Um93U3RhdHVzVHlwZTo6UHJvdlJvd1N0YXR1c0VudW0gIF9fdGhpc2NhbGwgUHJvdlJvd1N0YXR1c1R5cGU6OkdldFJvd1N0YXR1cyh2b2lkKWNvbnN0IA0KKz9HZXRSb3dTdGF0dXNAUHJvdlJvd1N0YXR1c1R5cGVAQFFCRT9BVzRQcm92Um93U3RhdHVzRW51bUAxQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBDQlN0cmluZzo6R2V0U3RyaW5nKHZvaWQpDQorP0dldFN0cmluZ0BDQlN0cmluZ0BAUUFFUEFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgUHJvdkJpdFN0cmluZ1R5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgDQorP0dldFN0cmluZ1ZhbHVlQFByb3ZCaXRTdHJpbmdUeXBlQEBVQkVQQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBQcm92Q291bnRlcjY0VHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCANCis/R2V0U3RyaW5nVmFsdWVAUHJvdkNvdW50ZXI2NFR5cGVAQFVCRVBBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIFByb3ZDb3VudGVyVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCANCis/R2V0U3RyaW5nVmFsdWVAUHJvdkNvdW50ZXJUeXBlQEBVQkVQQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBQcm92RGF0ZVRpbWVUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0IA0KKz9HZXRTdHJpbmdWYWx1ZUBQcm92RGF0ZVRpbWVUeXBlQEBVQkVQQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBQcm92RGlzcGxheVN0cmluZ1R5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgDQorP0dldFN0cmluZ1ZhbHVlQFByb3ZEaXNwbGF5U3RyaW5nVHlwZUBAVUJFUEFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgUHJvdkVudW1lcmF0ZWRUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0IA0KKz9HZXRTdHJpbmdWYWx1ZUBQcm92RW51bWVyYXRlZFR5cGVAQFVCRVBBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIFByb3ZGaXhlZExlbmd0aERpc3BsYXlTdHJpbmdUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0IA0KKz9HZXRTdHJpbmdWYWx1ZUBQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZUBAVUJFUEFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgUHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0IA0KKz9HZXRTdHJpbmdWYWx1ZUBQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGVAQFVCRVBBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIFByb3ZHYXVnZVR5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgDQorP0dldFN0cmluZ1ZhbHVlQFByb3ZHYXVnZVR5cGVAQFVCRVBBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIFByb3ZJUFhBZGRyZXNzVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCANCis/R2V0U3RyaW5nVmFsdWVAUHJvdklQWEFkZHJlc3NUeXBlQEBVQkVQQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBQcm92SW50ZWdlclR5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgDQorP0dldFN0cmluZ1ZhbHVlQFByb3ZJbnRlZ2VyVHlwZUBAVUJFUEFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgUHJvdklwQWRkcmVzc1R5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgDQorP0dldFN0cmluZ1ZhbHVlQFByb3ZJcEFkZHJlc3NUeXBlQEBVQkVQQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBQcm92TWFjQWRkcmVzc1R5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgDQorP0dldFN0cmluZ1ZhbHVlQFByb3ZNYWNBZGRyZXNzVHlwZUBAVUJFUEFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgUHJvdk5ldHdvcmtBZGRyZXNzVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCANCis/R2V0U3RyaW5nVmFsdWVAUHJvdk5ldHdvcmtBZGRyZXNzVHlwZUBAVUJFUEFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgUHJvdk51bGxUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0IA0KKz9HZXRTdHJpbmdWYWx1ZUBQcm92TnVsbFR5cGVAQFVCRVBBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIFByb3ZPU0lBZGRyZXNzVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCANCis/R2V0U3RyaW5nVmFsdWVAUHJvdk9TSUFkZHJlc3NUeXBlQEBVQkVQQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllclR5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgDQorP0dldFN0cmluZ1ZhbHVlQFByb3ZPYmplY3RJZGVudGlmaWVyVHlwZUBAVUJFUEFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgUHJvdk9jdGV0U3RyaW5nVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCANCis/R2V0U3RyaW5nVmFsdWVAUHJvdk9jdGV0U3RyaW5nVHlwZUBAVUJFUEFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgUHJvdk9wYXF1ZVR5cGU6OkdldFN0cmluZ1ZhbHVlKHZvaWQpY29uc3QgDQorP0dldFN0cmluZ1ZhbHVlQFByb3ZPcGFxdWVUeXBlQEBVQkVQQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBQcm92UGh5c0FkZHJlc3NUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0IA0KKz9HZXRTdHJpbmdWYWx1ZUBQcm92UGh5c0FkZHJlc3NUeXBlQEBVQkVQQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBQcm92Um93U3RhdHVzVHlwZTo6R2V0U3RyaW5nVmFsdWUodm9pZCljb25zdCANCis/R2V0U3RyaW5nVmFsdWVAUHJvdlJvd1N0YXR1c1R5cGVAQFVCRVBBR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIFByb3ZUaW1lVGlja3NUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0IA0KKz9HZXRTdHJpbmdWYWx1ZUBQcm92VGltZVRpY2tzVHlwZUBAVUJFUEFHWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgUHJvdlVEUEFkZHJlc3NUeXBlOjpHZXRTdHJpbmdWYWx1ZSh2b2lkKWNvbnN0IA0KKz9HZXRTdHJpbmdWYWx1ZUBQcm92VURQQWRkcmVzc1R5cGVAQFVCRVBBR1haDQorOyBwcml2YXRlOiBjbGFzcyBQcm92TGV4aWNvbiAqIF9fdGhpc2NhbGwgUHJvdkFuYWx5c2VyOjpHZXRUb2tlbihpbnQsaW50LGludCkNCis/R2V0VG9rZW5AUHJvdkFuYWx5c2VyQEBBQUVQQVZQcm92TGV4aWNvbkBASEhIQFoNCis7IHB1YmxpYzogZW51bSBQcm92TGV4aWNvbjo6TGV4aWNvblRva2VuICBfX3RoaXNjYWxsIFByb3ZMZXhpY29uOjpHZXRUb2tlbih2b2lkKQ0KKz9HZXRUb2tlbkBQcm92TGV4aWNvbkBAUUFFP0FXNExleGljb25Ub2tlbkAxQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBXbWlUcmVlTm9kZTo6R2V0VHlwZSh2b2lkKQ0KKz9HZXRUeXBlQFdtaVRyZWVOb2RlQEBRQUVLWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFByb3ZOZWdhdGl2ZVJhbmdlVHlwZTo6R2V0VXBwZXJCb3VuZCh2b2lkKQ0KKz9HZXRVcHBlckJvdW5kQFByb3ZOZWdhdGl2ZVJhbmdlVHlwZUBAUUFFSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBQcm92UG9zaXRpdmVSYW5nZVR5cGU6OkdldFVwcGVyQm91bmQodm9pZCkNCis/R2V0VXBwZXJCb3VuZEBQcm92UG9zaXRpdmVSYW5nZVR5cGVAQFFBRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgUHJvdkJpdFN0cmluZ1R5cGU6OkdldFZhbHVlKHVuc2lnbmVkIHNob3J0ICogKiAmKWNvbnN0IA0KKz9HZXRWYWx1ZUBQcm92Qml0U3RyaW5nVHlwZUBAUUJFS0FBUEFQQUdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgUHJvdkNvdW50ZXI2NFR5cGU6OkdldFZhbHVlKHVuc2lnbmVkIGxvbmcgJix1bnNpZ25lZCBsb25nICYpY29uc3QgDQorP0dldFZhbHVlQFByb3ZDb3VudGVyNjRUeXBlQEBRQkVYQUFLMEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBQcm92Q291bnRlcjo6R2V0VmFsdWUodm9pZCljb25zdCANCis/R2V0VmFsdWVAUHJvdkNvdW50ZXJAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgUHJvdkNvdW50ZXJUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0IA0KKz9HZXRWYWx1ZUBQcm92Q291bnRlclR5cGVAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgUHJvdkRhdGVUaW1lVHlwZTo6R2V0VmFsdWUodm9pZCljb25zdCANCis/R2V0VmFsdWVAUHJvdkRhdGVUaW1lVHlwZUBAUUJFUEFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIFByb3ZEaXNwbGF5U3RyaW5nVHlwZTo6R2V0VmFsdWUodm9pZCljb25zdCANCis/R2V0VmFsdWVAUHJvdkRpc3BsYXlTdHJpbmdUeXBlQEBRQkVQQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgUHJvdkVudW1lcmF0ZWRUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0IA0KKz9HZXRWYWx1ZUBQcm92RW51bWVyYXRlZFR5cGVAQFFCRVBBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBQcm92Rml4ZWRMZW5ndGhEaXNwbGF5U3RyaW5nVHlwZTo6R2V0VmFsdWUodm9pZCljb25zdCANCis/R2V0VmFsdWVAUHJvdkZpeGVkTGVuZ3RoRGlzcGxheVN0cmluZ1R5cGVAQFFCRVBBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBQcm92R2F1Z2U6OkdldFZhbHVlKHZvaWQpY29uc3QgDQorP0dldFZhbHVlQFByb3ZHYXVnZUBAUUJFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBQcm92R2F1Z2VUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0IA0KKz9HZXRWYWx1ZUBQcm92R2F1Z2VUeXBlQEBRQkVLWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFByb3ZJbnRlZ2VyOjpHZXRWYWx1ZSh2b2lkKWNvbnN0IA0KKz9HZXRWYWx1ZUBQcm92SW50ZWdlckBAUUJFSlhaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBQcm92SW50ZWdlclR5cGU6OkdldFZhbHVlKHZvaWQpY29uc3QgDQorP0dldFZhbHVlQFByb3ZJbnRlZ2VyVHlwZUBAUUJFSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBQcm92SXBBZGRyZXNzOjpHZXRWYWx1ZSh2b2lkKWNvbnN0IA0KKz9HZXRWYWx1ZUBQcm92SXBBZGRyZXNzQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFByb3ZJcEFkZHJlc3NUeXBlOjpHZXRWYWx1ZSh2b2lkKWNvbnN0IA0KKz9HZXRWYWx1ZUBQcm92SXBBZGRyZXNzVHlwZUBAUUJFS1haDQorOyBwdWJsaWM6IHVuaW9uIFByb3ZMZXhpY29uVmFsdWUgKiBfX3RoaXNjYWxsIFByb3ZMZXhpY29uOjpHZXRWYWx1ZSh2b2lkKQ0KKz9HZXRWYWx1ZUBQcm92TGV4aWNvbkBAUUFFUEFUUHJvdkxleGljb25WYWx1ZUBAWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFByb3ZOZXR3b3JrQWRkcmVzc1R5cGU6OkdldFZhbHVlKHZvaWQpY29uc3QgDQorP0dldFZhbHVlQFByb3ZOZXR3b3JrQWRkcmVzc1R5cGVAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nICogX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6R2V0VmFsdWUodm9pZCljb25zdCANCis/R2V0VmFsdWVAUHJvdk9iamVjdElkZW50aWZpZXJAQFFCRVBBS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgKiBfX3RoaXNjYWxsIFByb3ZPYmplY3RJZGVudGlmaWVyVHlwZTo6R2V0VmFsdWUodm9pZCljb25zdCANCis/R2V0VmFsdWVAUHJvdk9iamVjdElkZW50aWZpZXJUeXBlQEBRQkVQQUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBQcm92T2N0ZXRTdHJpbmc6OkdldFZhbHVlKHZvaWQpY29uc3QgDQorP0dldFZhbHVlQFByb3ZPY3RldFN0cmluZ0BAUUJFUEFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgUHJvdk9jdGV0U3RyaW5nVHlwZTo6R2V0VmFsdWUodm9pZCljb25zdCANCis/R2V0VmFsdWVAUHJvdk9jdGV0U3RyaW5nVHlwZUBAUUJFUEFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgUHJvdk9wYXF1ZTo6R2V0VmFsdWUodm9pZCljb25zdCANCis/R2V0VmFsdWVAUHJvdk9wYXF1ZUBAUUJFUEFFWFoNCis7IHB1YmxpYzogdW5zaWduZWQgY2hhciAqIF9fdGhpc2NhbGwgUHJvdk9wYXF1ZVR5cGU6OkdldFZhbHVlKHZvaWQpY29uc3QgDQorP0dldFZhbHVlQFByb3ZPcGFxdWVUeXBlQEBRQkVQQUVYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgUHJvdlJvd1N0YXR1c1R5cGU6OkdldFZhbHVlKHZvaWQpY29uc3QgDQorP0dldFZhbHVlQFByb3ZSb3dTdGF0dXNUeXBlQEBRQkVQQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgUHJvdlRpbWVUaWNrczo6R2V0VmFsdWUodm9pZCljb25zdCANCis/R2V0VmFsdWVAUHJvdlRpbWVUaWNrc0BAUUJFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBQcm92VGltZVRpY2tzVHlwZTo6R2V0VmFsdWUodm9pZCljb25zdCANCis/R2V0VmFsdWVAUHJvdlRpbWVUaWNrc1R5cGVAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgUHJvdlVJbnRlZ2VyMzI6OkdldFZhbHVlKHZvaWQpY29uc3QgDQorP0dldFZhbHVlQFByb3ZVSW50ZWdlcjMyQEBRQkVLWFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFdtaVNpZ25lZEludGVnZXJOb2RlOjpHZXRWYWx1ZSh2b2lkKQ0KKz9HZXRWYWx1ZUBXbWlTaWduZWRJbnRlZ2VyTm9kZUBAUUFFSlhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBXbWlTdHJpbmdOb2RlOjpHZXRWYWx1ZSh2b2lkKQ0KKz9HZXRWYWx1ZUBXbWlTdHJpbmdOb2RlQEBRQUVQQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgV21pVW5zaWduZWRJbnRlZ2VyTm9kZTo6R2V0VmFsdWUodm9pZCkNCis/R2V0VmFsdWVAV21pVW5zaWduZWRJbnRlZ2VyTm9kZUBAUUFFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6R2V0VmFsdWVMZW5ndGgodm9pZCljb25zdCANCis/R2V0VmFsdWVMZW5ndGhAUHJvdk9iamVjdElkZW50aWZpZXJAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgUHJvdk9iamVjdElkZW50aWZpZXJUeXBlOjpHZXRWYWx1ZUxlbmd0aCh2b2lkKWNvbnN0IA0KKz9HZXRWYWx1ZUxlbmd0aEBQcm92T2JqZWN0SWRlbnRpZmllclR5cGVAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgUHJvdk9jdGV0U3RyaW5nOjpHZXRWYWx1ZUxlbmd0aCh2b2lkKWNvbnN0IA0KKz9HZXRWYWx1ZUxlbmd0aEBQcm92T2N0ZXRTdHJpbmdAQFFCRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgUHJvdk9jdGV0U3RyaW5nVHlwZTo6R2V0VmFsdWVMZW5ndGgodm9pZCljb25zdCANCis/R2V0VmFsdWVMZW5ndGhAUHJvdk9jdGV0U3RyaW5nVHlwZUBAUUJFS1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBQcm92T3BhcXVlOjpHZXRWYWx1ZUxlbmd0aCh2b2lkKWNvbnN0IA0KKz9HZXRWYWx1ZUxlbmd0aEBQcm92T3BhcXVlQEBRQkVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFByb3ZPcGFxdWVUeXBlOjpHZXRWYWx1ZUxlbmd0aCh2b2lkKWNvbnN0IA0KKz9HZXRWYWx1ZUxlbmd0aEBQcm92T3BhcXVlVHlwZUBAUUJFS1haDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBQcm92QW5hbHlzZXI6OkhleENoYXJUb0RlY0ludGVnZXIoY2hhcikNCis/SGV4Q2hhclRvRGVjSW50ZWdlckBQcm92QW5hbHlzZXJAQFNHS0RAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgUHJvdkFuYWx5c2VyOjpIZXhXQ2hhclRvRGVjSW50ZWdlcih1bnNpZ25lZCBzaG9ydCkNCis/SGV4V0NoYXJUb0RlY0ludGVnZXJAUHJvdkFuYWx5c2VyQEBTR0tHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV21pUmFuZ2VOb2RlOjpJbmZpbml0ZUxvd2VyQm91bmQodm9pZCkNCis/SW5maW5pdGVMb3dlckJvdW5kQFdtaVJhbmdlTm9kZUBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFdtaVJhbmdlTm9kZTo6SW5maW5pdGVVcHBlckJvdW5kKHZvaWQpDQorP0luZmluaXRlVXBwZXJCb3VuZEBXbWlSYW5nZU5vZGVAQFFBRUhYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBQcm92QW5hbHlzZXI6OkluaXRpYWxpc2Uodm9pZCkNCis/SW5pdGlhbGlzZUBQcm92QW5hbHlzZXJAQE1BRVhYWg0KKzsgcHVibGljOiBlbnVtIFdtaVRyaVN0YXRlICBfX3RoaXNjYWxsIENvbmp1bmN0aW9uczo6SW5pdGlhbGl6ZSh2b2lkKQ0KKz9Jbml0aWFsaXplQENvbmp1bmN0aW9uc0BAUUFFP0FXNFdtaVRyaVN0YXRlQEBYWg0KKzsgcHVibGljOiBlbnVtIFdtaVRyaVN0YXRlICBfX3RoaXNjYWxsIERpc2p1bmN0aW9uczo6SW5pdGlhbGl6ZSh2b2lkKQ0KKz9Jbml0aWFsaXplQERpc2p1bmN0aW9uc0BAUUFFP0FXNFdtaVRyaVN0YXRlQEBYWg0KKzsgcHVibGljOiBlbnVtIFdtaVRyaVN0YXRlICBfX3RoaXNjYWxsIFBhcnRpdGlvblNldDo6SW5pdGlhbGl6ZSh1bnNpZ25lZCBsb25nKQ0KKz9Jbml0aWFsaXplQFBhcnRpdGlvblNldEBAUUFFP0FXNFdtaVRyaVN0YXRlQEBLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgUHJvdk9iamVjdElkZW50aWZpZXI6OkluaXRpYWxpemUodW5zaWduZWQgbG9uZyBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0luaXRpYWxpemVAUHJvdk9iamVjdElkZW50aWZpZXJAQE1BRVhQQktLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgUHJvdk9jdGV0U3RyaW5nOjpJbml0aWFsaXplKHVuc2lnbmVkIGNoYXIgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9Jbml0aWFsaXplQFByb3ZPY3RldFN0cmluZ0BATUFFWFBCRUtAWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFdtaVRyaVN0YXRlICBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpJbnNlcnROb2RlKGNsYXNzIFdtaVRyZWVOb2RlICogJixjbGFzcyBXbWlUcmVlTm9kZSAqICYpDQorP0luc2VydE5vZGVAUXVlcnlQcmVwcm9jZXNzb3JAQElBRT9BVzRXbWlUcmlTdGF0ZUBAQUFQQVZXbWlUcmVlTm9kZUBAMEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgZW51bSBRdWVyeVByZXByb2Nlc3Nvcjo6UXVhZFN0YXRlICBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpJbnZhcmlhbnRFdmFsdWF0ZSh2b2lkICosY2xhc3MgV21pVHJlZU5vZGUgKixjbGFzcyBXbWlUcmVlTm9kZSAqKQ0KKz9JbnZhcmlhbnRFdmFsdWF0ZUBRdWVyeVByZXByb2Nlc3NvckBATUFFP0FXNFF1YWRTdGF0ZUAxQFBBWFBBVldtaVRyZWVOb2RlQEAxQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgUHJvdkFuYWx5c2VyOjpJc0FscGhhKHVuc2lnbmVkIHNob3J0KQ0KKz9Jc0FscGhhQFByb3ZBbmFseXNlckBAU0dIR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIFByb3ZBbmFseXNlcjo6SXNBbHBoYU51bWVyaWModW5zaWduZWQgc2hvcnQpDQorP0lzQWxwaGFOdW1lcmljQFByb3ZBbmFseXNlckBAU0dIR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIFByb3ZBbmFseXNlcjo6SXNEZWNpbWFsKHVuc2lnbmVkIHNob3J0KQ0KKz9Jc0RlY2ltYWxAUHJvdkFuYWx5c2VyQEBTR0hHQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgUHJvdkFuYWx5c2VyOjpJc0VvZih1bnNpZ25lZCBzaG9ydCkNCis/SXNFb2ZAUHJvdkFuYWx5c2VyQEBTR0hHQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgUHJvdkFuYWx5c2VyOjpJc0hleCh1bnNpZ25lZCBzaG9ydCkNCis/SXNIZXhAUHJvdkFuYWx5c2VyQEBTR0hHQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgUHJvdkFuYWx5c2VyOjpJc0xlYWRpbmdEZWNpbWFsKHVuc2lnbmVkIHNob3J0KQ0KKz9Jc0xlYWRpbmdEZWNpbWFsQFByb3ZBbmFseXNlckBAU0dIR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgUHJvdkluc3RhbmNlVHlwZTo6SXNOdWxsKHZvaWQpY29uc3QgDQorP0lzTnVsbEBQcm92SW5zdGFuY2VUeXBlQEBVQkVIWFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgUHJvdkFuYWx5c2VyOjpJc09jdGFsKHVuc2lnbmVkIHNob3J0KQ0KKz9Jc09jdGFsQFByb3ZBbmFseXNlckBAU0dIR0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgUHJvdkNvdW50ZXI2NFR5cGU6OklzUHJvdlYxVHlwZSh2b2lkKWNvbnN0IA0KKz9Jc1Byb3ZWMVR5cGVAUHJvdkNvdW50ZXI2NFR5cGVAQFVCRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFByb3ZJbnN0YW5jZVR5cGU6OklzUHJvdlYxVHlwZSh2b2lkKWNvbnN0IA0KKz9Jc1Byb3ZWMVR5cGVAUHJvdkluc3RhbmNlVHlwZUBAVUJFSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgUHJvdkluc3RhbmNlVHlwZTo6SXNQcm92VjJDVHlwZSh2b2lkKWNvbnN0IA0KKz9Jc1Byb3ZWMkNUeXBlQFByb3ZJbnN0YW5jZVR5cGVAQFVCRUhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGludCBfX3RoaXNjYWxsIFByb3ZOdWxsVHlwZTo6SXNQcm92VjJDVHlwZSh2b2lkKWNvbnN0IA0KKz9Jc1Byb3ZWMkNUeXBlQFByb3ZOdWxsVHlwZUBAVUJFSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgUHJvdkluc3RhbmNlVHlwZTo6SXNWYWxpZCh2b2lkKWNvbnN0IA0KKz9Jc1ZhbGlkQFByb3ZJbnN0YW5jZVR5cGVAQFVCRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBQcm92UG9zaXRpdmVSYW5nZWRUeXBlOjpJc1ZhbGlkKHZvaWQpDQorP0lzVmFsaWRAUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBAUUFFSFhaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIFByb3ZBbmFseXNlcjo6SXNXaGl0ZXNwYWNlKHVuc2lnbmVkIHNob3J0KQ0KKz9Jc1doaXRlc3BhY2VAUHJvdkFuYWx5c2VyQEBTR0hHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgUGFydGl0aW9uU2V0OjpMZWFmKHZvaWQpDQorP0xlYWZAUGFydGl0aW9uU2V0QEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV21pU2lnbmVkSW50ZWdlck5vZGU6OkxleGljb2dyYXBoaWNhbGx5QWZ0ZXIobG9uZyAmKQ0KKz9MZXhpY29ncmFwaGljYWxseUFmdGVyQFdtaVNpZ25lZEludGVnZXJOb2RlQEBRQUVIQUFKQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV21pU3RyaW5nTm9kZTo6TGV4aWNvZ3JhcGhpY2FsbHlBZnRlcih1bnNpZ25lZCBzaG9ydCAqICYpDQorP0xleGljb2dyYXBoaWNhbGx5QWZ0ZXJAV21pU3RyaW5nTm9kZUBAUUFFSEFBUEFHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV21pVW5zaWduZWRJbnRlZ2VyTm9kZTo6TGV4aWNvZ3JhcGhpY2FsbHlBZnRlcih1bnNpZ25lZCBsb25nICYpDQorP0xleGljb2dyYXBoaWNhbGx5QWZ0ZXJAV21pVW5zaWduZWRJbnRlZ2VyTm9kZUBAUUFFSEFBS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFdtaVNpZ25lZEludGVnZXJOb2RlOjpMZXhpY29ncmFwaGljYWxseUJlZm9yZShsb25nICYpDQorP0xleGljb2dyYXBoaWNhbGx5QmVmb3JlQFdtaVNpZ25lZEludGVnZXJOb2RlQEBRQUVIQUFKQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgV21pU3RyaW5nTm9kZTo6TGV4aWNvZ3JhcGhpY2FsbHlCZWZvcmUodW5zaWduZWQgc2hvcnQgKiAmKQ0KKz9MZXhpY29ncmFwaGljYWxseUJlZm9yZUBXbWlTdHJpbmdOb2RlQEBRQUVIQUFQQUdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBXbWlVbnNpZ25lZEludGVnZXJOb2RlOjpMZXhpY29ncmFwaGljYWxseUJlZm9yZSh1bnNpZ25lZCBsb25nICYpDQorP0xleGljb2dyYXBoaWNhbGx5QmVmb3JlQFdtaVVuc2lnbmVkSW50ZWdlck5vZGVAQFFBRUhBQUtAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgV21pU2lnbmVkSW50ZWdlclJhbmdlTm9kZTo6TG93ZXJCb3VuZCh2b2lkKQ0KKz9Mb3dlckJvdW5kQFdtaVNpZ25lZEludGVnZXJSYW5nZU5vZGVAQFFBRUpYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgV21pU3RyaW5nUmFuZ2VOb2RlOjpMb3dlckJvdW5kKHZvaWQpDQorP0xvd2VyQm91bmRAV21pU3RyaW5nUmFuZ2VOb2RlQEBRQUVQQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlOjpMb3dlckJvdW5kKHZvaWQpDQorP0xvd2VyQm91bmRAV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBRQUVLWFoNCis7IHByaXZhdGU6IGNsYXNzIFByb3ZMZXhpY29uICogX190aGlzY2FsbCBQcm92Qml0U3RyaW5nVHlwZTo6TWF0Y2goZW51bSBQcm92TGV4aWNvbjo6TGV4aWNvblRva2VuKQ0KKz9NYXRjaEBQcm92Qml0U3RyaW5nVHlwZUBAQUFFUEFWUHJvdkxleGljb25AQFc0TGV4aWNvblRva2VuQDJAQFoNCis7IHByaXZhdGU6IGNsYXNzIFByb3ZMZXhpY29uICogX190aGlzY2FsbCBQcm92RGF0ZVRpbWVUeXBlOjpNYXRjaChlbnVtIFByb3ZMZXhpY29uOjpMZXhpY29uVG9rZW4pDQorP01hdGNoQFByb3ZEYXRlVGltZVR5cGVAQEFBRVBBVlByb3ZMZXhpY29uQEBXNExleGljb25Ub2tlbkAyQEBaDQorOyBwcml2YXRlOiBjbGFzcyBQcm92TGV4aWNvbiAqIF9fdGhpc2NhbGwgUHJvdkVudW1lcmF0ZWRUeXBlOjpNYXRjaChlbnVtIFByb3ZMZXhpY29uOjpMZXhpY29uVG9rZW4pDQorP01hdGNoQFByb3ZFbnVtZXJhdGVkVHlwZUBAQUFFUEFWUHJvdkxleGljb25AQFc0TGV4aWNvblRva2VuQDJAQFoNCis7IHByb3RlY3RlZDogY2xhc3MgUHJvdkxleGljb24gKiBfX3RoaXNjYWxsIFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGU6Ok1hdGNoKGVudW0gUHJvdkxleGljb246OkxleGljb25Ub2tlbikNCis/TWF0Y2hAUHJvdlBvc2l0aXZlUmFuZ2VkVHlwZUBASUFFUEFWUHJvdkxleGljb25AQFc0TGV4aWNvblRva2VuQDJAQFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIFByb3ZBbmFseXNlcjo6T2N0Q2hhclRvRGVjSW50ZWdlcihjaGFyKQ0KKz9PY3RDaGFyVG9EZWNJbnRlZ2VyQFByb3ZBbmFseXNlckBAU0dLREBaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBQcm92QW5hbHlzZXI6Ok9jdFdDaGFyVG9EZWNJbnRlZ2VyKHVuc2lnbmVkIHNob3J0KQ0KKz9PY3RXQ2hhclRvRGVjSW50ZWdlckBQcm92QW5hbHlzZXJAQFNHS0dAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIFByb3ZPYmplY3RJZGVudGlmaWVyOjpPdmVyV3JpdGUodW5zaWduZWQgbG9uZyBjb25zdCAqKQ0KKz9PdmVyV3JpdGVAUHJvdk9iamVjdElkZW50aWZpZXJAQEFBRVhQQktAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIFByb3ZPY3RldFN0cmluZzo6T3ZlcldyaXRlKHVuc2lnbmVkIGNoYXIgY29uc3QgKikNCis/T3ZlcldyaXRlQFByb3ZPY3RldFN0cmluZ0BAQUFFWFBCRUBaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBQcm92Qml0U3RyaW5nVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/UGFyc2VAUHJvdkJpdFN0cmluZ1R5cGVAQEFBRUhQQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBQcm92Q291bnRlcjY0VHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/UGFyc2VAUHJvdkNvdW50ZXI2NFR5cGVAQElBRUhQQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBQcm92Q291bnRlclR5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1BhcnNlQFByb3ZDb3VudGVyVHlwZUBASUFFSFBCR0BaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBQcm92RGF0ZVRpbWVUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9QYXJzZUBQcm92RGF0ZVRpbWVUeXBlQEBBQUVIUEJHQFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIFByb3ZFbnVtZXJhdGVkVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/UGFyc2VAUHJvdkVudW1lcmF0ZWRUeXBlQEBBQUVIUEJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgUHJvdkZpeGVkTGVuZ3RoUGh5c0FkZHJlc3NUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9QYXJzZUBQcm92Rml4ZWRMZW5ndGhQaHlzQWRkcmVzc1R5cGVAQElBRUhQQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBQcm92R2F1Z2VUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9QYXJzZUBQcm92R2F1Z2VUeXBlQEBJQUVIUEJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgUHJvdklQWEFkZHJlc3NUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9QYXJzZUBQcm92SVBYQWRkcmVzc1R5cGVAQElBRUhQQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBQcm92SW50ZWdlclR5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1BhcnNlQFByb3ZJbnRlZ2VyVHlwZUBASUFFSFBCR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIFByb3ZJcEFkZHJlc3NUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9QYXJzZUBQcm92SXBBZGRyZXNzVHlwZUBASUFFSFBCR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIFByb3ZNYWNBZGRyZXNzVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/UGFyc2VAUHJvdk1hY0FkZHJlc3NUeXBlQEBJQUVIUEJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgUHJvdk5ldHdvcmtBZGRyZXNzVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/UGFyc2VAUHJvdk5ldHdvcmtBZGRyZXNzVHlwZUBASUFFSFBCR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIFByb3ZPU0lBZGRyZXNzVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/UGFyc2VAUHJvdk9TSUFkZHJlc3NUeXBlQEBJQUVIUEJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgUHJvdk9iamVjdElkZW50aWZpZXJUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9QYXJzZUBQcm92T2JqZWN0SWRlbnRpZmllclR5cGVAQElBRUhQQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBQcm92T2N0ZXRTdHJpbmdUeXBlOjpQYXJzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9QYXJzZUBQcm92T2N0ZXRTdHJpbmdUeXBlQEBJQUVIUEJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgUHJvdk9wYXF1ZVR5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1BhcnNlQFByb3ZPcGFxdWVUeXBlQEBJQUVIUEJHQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgUHJvdlBoeXNBZGRyZXNzVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/UGFyc2VAUHJvdlBoeXNBZGRyZXNzVHlwZUBASUFFSFBCR0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1BhcnNlQFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQElBRUhQQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBQcm92VGltZVRpY2tzVHlwZTo6UGFyc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/UGFyc2VAUHJvdlRpbWVUaWNrc1R5cGVAQElBRUhQQkdAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBQcm92VURQQWRkcmVzc1R5cGU6OlBhcnNlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1BhcnNlQFByb3ZVRFBBZGRyZXNzVHlwZUBASUFFSFBCR0BaDQorOyBwdWJsaWM6IGVudW0gUXVlcnlQcmVwcm9jZXNzb3I6OlF1YWRTdGF0ZSAgX190aGlzY2FsbCBRdWVyeVByZXByb2Nlc3Nvcjo6UHJlUHJvY2Vzcyh2b2lkICosc3RydWN0IFNRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OICosY2xhc3MgV21pVHJlZU5vZGUgKiAmKQ0KKz9QcmVQcm9jZXNzQFF1ZXJ5UHJlcHJvY2Vzc29yQEBRQUU/QVc0UXVhZFN0YXRlQDFAUEFYUEFVU1FMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT05AQEFBUEFWV21pVHJlZU5vZGVAQEBaDQorOyBwdWJsaWM6IGVudW0gUXVlcnlQcmVwcm9jZXNzb3I6OlF1YWRTdGF0ZSAgX190aGlzY2FsbCBRdWVyeVByZXByb2Nlc3Nvcjo6UHJlUHJvY2Vzcyh2b2lkICosc3RydWN0IFNRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OICosY2xhc3MgV21pVHJlZU5vZGUgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIHNob3J0ICogKixjbGFzcyBQYXJ0aXRpb25TZXQgKiAmKQ0KKz9QcmVQcm9jZXNzQFF1ZXJ5UHJlcHJvY2Vzc29yQEBRQUU/QVc0UXVhZFN0YXRlQDFAUEFYUEFVU1FMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT05AQFBBVldtaVRyZWVOb2RlQEBLUEFQQUdBQVBBVlBhcnRpdGlvblNldEBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgUHJvdk9iamVjdElkZW50aWZpZXI6OlByZWZpeCh1bnNpZ25lZCBsb25nLGNsYXNzIFByb3ZPYmplY3RJZGVudGlmaWVyICYpY29uc3QgDQorP1ByZWZpeEBQcm92T2JqZWN0SWRlbnRpZmllckBAUUJFSEtBQVYxQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFdtaUFuZE5vZGU6OlByaW50KHZvaWQpDQorP1ByaW50QFdtaUFuZE5vZGVAQFVBRVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBXbWlOb3ROb2RlOjpQcmludCh2b2lkKQ0KKz9QcmludEBXbWlOb3ROb2RlQEBVQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgV21pTnVsbE5vZGU6OlByaW50KHZvaWQpDQorP1ByaW50QFdtaU51bGxOb2RlQEBVQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgV21pTnVsbFJhbmdlTm9kZTo6UHJpbnQodm9pZCkNCis/UHJpbnRAV21pTnVsbFJhbmdlTm9kZUBAVUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yRXF1YWxOb2RlOjpQcmludCh2b2lkKQ0KKz9QcmludEBXbWlPcGVyYXRvckVxdWFsTm9kZUBAVUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yRXF1YWxPckdyZWF0ZXJOb2RlOjpQcmludCh2b2lkKQ0KKz9QcmludEBXbWlPcGVyYXRvckVxdWFsT3JHcmVhdGVyTm9kZUBAVUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yRXF1YWxPckxlc3NOb2RlOjpQcmludCh2b2lkKQ0KKz9QcmludEBXbWlPcGVyYXRvckVxdWFsT3JMZXNzTm9kZUBAVUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yR3JlYXRlck5vZGU6OlByaW50KHZvaWQpDQorP1ByaW50QFdtaU9wZXJhdG9yR3JlYXRlck5vZGVAQFVBRVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBXbWlPcGVyYXRvcklzQU5vZGU6OlByaW50KHZvaWQpDQorP1ByaW50QFdtaU9wZXJhdG9ySXNBTm9kZUBAVUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFdtaU9wZXJhdG9yTGVzc05vZGU6OlByaW50KHZvaWQpDQorP1ByaW50QFdtaU9wZXJhdG9yTGVzc05vZGVAQFVBRVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBXbWlPcGVyYXRvckxpa2VOb2RlOjpQcmludCh2b2lkKQ0KKz9QcmludEBXbWlPcGVyYXRvckxpa2VOb2RlQEBVQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgV21pT3BlcmF0b3JOb3RFcXVhbE5vZGU6OlByaW50KHZvaWQpDQorP1ByaW50QFdtaU9wZXJhdG9yTm90RXF1YWxOb2RlQEBVQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgV21pT3BlcmF0b3JOb3RJc0FOb2RlOjpQcmludCh2b2lkKQ0KKz9QcmludEBXbWlPcGVyYXRvck5vdElzQU5vZGVAQFVBRVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBXbWlPcGVyYXRvck5vdExpa2VOb2RlOjpQcmludCh2b2lkKQ0KKz9QcmludEBXbWlPcGVyYXRvck5vdExpa2VOb2RlQEBVQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgV21pT3JOb2RlOjpQcmludCh2b2lkKQ0KKz9QcmludEBXbWlPck5vZGVAQFVBRVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBXbWlTaWduZWRJbnRlZ2VyTm9kZTo6UHJpbnQodm9pZCkNCis/UHJpbnRAV21pU2lnbmVkSW50ZWdlck5vZGVAQFVBRVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlOjpQcmludCh2b2lkKQ0KKz9QcmludEBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBVQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgV21pU3RyaW5nTm9kZTo6UHJpbnQodm9pZCkNCis/UHJpbnRAV21pU3RyaW5nTm9kZUBAVUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFdtaVN0cmluZ1JhbmdlTm9kZTo6UHJpbnQodm9pZCkNCis/UHJpbnRAV21pU3RyaW5nUmFuZ2VOb2RlQEBVQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgV21pVHJlZU5vZGU6OlByaW50KHZvaWQpDQorP1ByaW50QFdtaVRyZWVOb2RlQEBVQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgV21pVW5zaWduZWRJbnRlZ2VyTm9kZTo6UHJpbnQodm9pZCkNCis/UHJpbnRAV21pVW5zaWduZWRJbnRlZ2VyTm9kZUBAVUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFdtaVVuc2lnbmVkSW50ZWdlclJhbmdlTm9kZTo6UHJpbnQodm9pZCkNCis/UHJpbnRAV21pVW5zaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBVQUVYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpQcmludFRyZWUoY2xhc3MgV21pVHJlZU5vZGUgKikNCis/UHJpbnRUcmVlQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUVYUEFWV21pVHJlZU5vZGVAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFByb3ZFdmVudE9iamVjdDo6UHJvY2Vzcyh2b2lkKQ0KKz9Qcm9jZXNzQFByb3ZFdmVudE9iamVjdEBAVUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgUHJvdkJpdFN0cmluZ1R5cGU6OlB1c2hCYWNrKHZvaWQpDQorP1B1c2hCYWNrQFByb3ZCaXRTdHJpbmdUeXBlQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBQcm92RGF0ZVRpbWVUeXBlOjpQdXNoQmFjayh2b2lkKQ0KKz9QdXNoQmFja0BQcm92RGF0ZVRpbWVUeXBlQEBBQUVYWFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBQcm92RW51bWVyYXRlZFR5cGU6OlB1c2hCYWNrKHZvaWQpDQorP1B1c2hCYWNrQFByb3ZFbnVtZXJhdGVkVHlwZUBAQUFFWFhaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBQcm92UG9zaXRpdmVSYW5nZWRUeXBlOjpQdXNoQmFjayh2b2lkKQ0KKz9QdXNoQmFja0BQcm92UG9zaXRpdmVSYW5nZWRUeXBlQEBJQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFByb3ZBbmFseXNlcjo6UHV0QmFjayhjbGFzcyBQcm92TGV4aWNvbiBjb25zdCAqKQ0KKz9QdXRCYWNrQFByb3ZBbmFseXNlckBAUUFFWFBCVlByb3ZMZXhpY29uQEBAWg0KKzsgcHVibGljOiBlbnVtIFF1ZXJ5UHJlcHJvY2Vzc29yOjpRdWFkU3RhdGUgIF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OlF1ZXJ5KHVuc2lnbmVkIHNob3J0ICosc3RydWN0IFNRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OICogJikNCis/UXVlcnlAUXVlcnlQcmVwcm9jZXNzb3JAQFFBRT9BVzRRdWFkU3RhdGVAMUBQQUdBQVBBVVNRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OlF1aWNrU29ydChjbGFzcyBXbWlSYW5nZU5vZGUgKiAqLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nKQ0KKz9RdWlja1NvcnRAUXVlcnlQcmVwcm9jZXNzb3JAQElBRVhQQVBBVldtaVJhbmdlTm9kZUBAUEFLS0BaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGU6OlJhbmdlRGVmKHZvaWQpDQorP1JhbmdlRGVmQFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQElBRUhYWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFdtaVRyaVN0YXRlICBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpSZWN1cnNpdmVDb252ZXJ0VG9SYW5nZXMoY2xhc3MgV21pVHJlZU5vZGUgKiAmKQ0KKz9SZWN1cnNpdmVDb252ZXJ0VG9SYW5nZXNAUXVlcnlQcmVwcm9jZXNzb3JAQElBRT9BVzRXbWlUcmlTdGF0ZUBAQUFQQVZXbWlUcmVlTm9kZUBAQFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIFByb3ZCaXRTdHJpbmdUeXBlOjpSZWN1cnNpdmVEZWYodm9pZCkNCis/UmVjdXJzaXZlRGVmQFByb3ZCaXRTdHJpbmdUeXBlQEBBQUVIWFoNCis7IHByaXZhdGU6IGludCBfX3RoaXNjYWxsIFByb3ZFbnVtZXJhdGVkVHlwZTo6UmVjdXJzaXZlRGVmKHZvaWQpDQorP1JlY3Vyc2l2ZURlZkBQcm92RW51bWVyYXRlZFR5cGVAQEFBRUhYWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBQcm92UG9zaXRpdmVSYW5nZWRUeXBlOjpSZWN1cnNpdmVEZWYodm9pZCkNCis/UmVjdXJzaXZlRGVmQFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQElBRUhYWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFF1ZXJ5UHJlcHJvY2Vzc29yOjpRdWFkU3RhdGUgIF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OlJlY3Vyc2l2ZURpc2p1bmN0aXZlTm9ybWFsRm9ybShjbGFzcyBXbWlUcmVlTm9kZSAqICYpDQorP1JlY3Vyc2l2ZURpc2p1bmN0aXZlTm9ybWFsRm9ybUBRdWVyeVByZXByb2Nlc3NvckBASUFFP0FXNFF1YWRTdGF0ZUAxQEFBUEFWV21pVHJlZU5vZGVAQEBaDQorOyBwcm90ZWN0ZWQ6IGludCBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpSZWN1cnNpdmVFdmFsdWF0ZSh2b2lkICosc3RydWN0IFNRTF9MRVZFTF8xX1JQTl9FWFBSRVNTSU9OICYsY2xhc3MgV21pVHJlZU5vZGUgKixjbGFzcyBXbWlUcmVlTm9kZSAqICosaW50ICYpDQorP1JlY3Vyc2l2ZUV2YWx1YXRlQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUVIUEFYQUFVU1FMX0xFVkVMXzFfUlBOX0VYUFJFU1NJT05AQFBBVldtaVRyZWVOb2RlQEBQQVBBVjNAQUFIQFoNCis7IHByb3RlY3RlZDogZW51bSBXbWlUcmlTdGF0ZSAgX190aGlzY2FsbCBRdWVyeVByZXByb2Nlc3Nvcjo6UmVjdXJzaXZlSW5zZXJ0Tm9kZShjbGFzcyBXbWlUcmVlTm9kZSAqICYsY2xhc3MgV21pVHJlZU5vZGUgKiAmKQ0KKz9SZWN1cnNpdmVJbnNlcnROb2RlQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUU/QVc0V21pVHJpU3RhdGVAQEFBUEFWV21pVHJlZU5vZGVAQDBAWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFdtaVRyaVN0YXRlICBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpSZWN1cnNpdmVQYXJ0aXRpb25TZXQoY2xhc3MgRGlzanVuY3Rpb25zICosY2xhc3MgUGFydGl0aW9uU2V0ICogJix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nKQ0KKz9SZWN1cnNpdmVQYXJ0aXRpb25TZXRAUXVlcnlQcmVwcm9jZXNzb3JAQElBRT9BVzRXbWlUcmlTdGF0ZUBAUEFWRGlzanVuY3Rpb25zQEBBQVBBVlBhcnRpdGlvblNldEBAS1BBS0tAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OlJlY3Vyc2l2ZVF1aWNrU29ydChjbGFzcyBXbWlSYW5nZU5vZGUgKiAqLHVuc2lnbmVkIGxvbmcgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP1JlY3Vyc2l2ZVF1aWNrU29ydEBRdWVyeVByZXByb2Nlc3NvckBASUFFWFBBUEFWV21pUmFuZ2VOb2RlQEBQQUtLS0BaDQorOyBwcm90ZWN0ZWQ6IGVudW0gUXVlcnlQcmVwcm9jZXNzb3I6OlF1YWRTdGF0ZSAgX190aGlzY2FsbCBRdWVyeVByZXByb2Nlc3Nvcjo6UmVjdXJzaXZlUmVtb3ZlSW52YXJpYW50cyh2b2lkICosY2xhc3MgV21pVHJlZU5vZGUgKiAmKQ0KKz9SZWN1cnNpdmVSZW1vdmVJbnZhcmlhbnRzQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUU/QVc0UXVhZFN0YXRlQDFAUEFYQUFQQVZXbWlUcmVlTm9kZUBAQFoNCis7IHByb3RlY3RlZDogZW51bSBRdWVyeVByZXByb2Nlc3Nvcjo6UXVhZFN0YXRlICBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpSZWN1cnNpdmVSZW1vdmVOb25PdmVybGFwcGluZ1JhbmdlcyhjbGFzcyBXbWlUcmVlTm9kZSAqICYsY2xhc3MgV21pVHJlZU5vZGUgKiAmKQ0KKz9SZWN1cnNpdmVSZW1vdmVOb25PdmVybGFwcGluZ1Jhbmdlc0BRdWVyeVByZXByb2Nlc3NvckBASUFFP0FXNFF1YWRTdGF0ZUAxQEFBUEFWV21pVHJlZU5vZGVAQDBAWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFdtaVRyaVN0YXRlICBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpSZWN1cnNpdmVTb3J0KGNsYXNzIFdtaVRyZWVOb2RlICogJikNCis/UmVjdXJzaXZlU29ydEBRdWVyeVByZXByb2Nlc3NvckBASUFFP0FXNFdtaVRyaVN0YXRlQEBBQVBBVldtaVRyZWVOb2RlQEBAWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFdtaVRyaVN0YXRlICBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpSZWN1cnNpdmVTb3J0Q29uZGl0aW9uYWxzKGNsYXNzIFdtaVRyZWVOb2RlICogJixjbGFzcyBXbWlUcmVlTm9kZSAqICYpDQorP1JlY3Vyc2l2ZVNvcnRDb25kaXRpb25hbHNAUXVlcnlQcmVwcm9jZXNzb3JAQElBRT9BVzRXbWlUcmlTdGF0ZUBAQUFQQVZXbWlUcmVlTm9kZUBAMEBaDQorOyBwcm90ZWN0ZWQ6IGVudW0gUXVlcnlQcmVwcm9jZXNzb3I6OlF1YWRTdGF0ZSAgX190aGlzY2FsbCBRdWVyeVByZXByb2Nlc3Nvcjo6UmVtb3ZlSW52YXJpYW50cyh2b2lkICosY2xhc3MgV21pVHJlZU5vZGUgKiAmKQ0KKz9SZW1vdmVJbnZhcmlhbnRzQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUU/QVc0UXVhZFN0YXRlQDFAUEFYQUFQQVZXbWlUcmVlTm9kZUBAQFoNCis7IHByb3RlY3RlZDogZW51bSBRdWVyeVByZXByb2Nlc3Nvcjo6UXVhZFN0YXRlICBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpSZW1vdmVOb25PdmVybGFwcGluZ1JhbmdlcyhjbGFzcyBXbWlUcmVlTm9kZSAqICYpDQorP1JlbW92ZU5vbk92ZXJsYXBwaW5nUmFuZ2VzQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUU/QVc0UXVhZFN0YXRlQDFAQUFQQVZXbWlUcmVlTm9kZUBAQFoNCis7IHByb3RlY3RlZDogZW51bSBXbWlUcmlTdGF0ZSAgX190aGlzY2FsbCBRdWVyeVByZXByb2Nlc3Nvcjo6UmVtb3ZlT3ZlcmxhcHModW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAqLHVuc2lnbmVkIGxvbmcgKixjbGFzcyBXbWlSYW5nZU5vZGUgKiAqKQ0KKz9SZW1vdmVPdmVybGFwc0BRdWVyeVByZXByb2Nlc3NvckBASUFFP0FXNFdtaVRyaVN0YXRlQEBQQUtLMDBQQVBBVldtaVJhbmdlTm9kZUBAQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBsb25nICogX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6UmVwbGljYXRlKHVuc2lnbmVkIGxvbmcgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgY29uc3QgKix1bnNpZ25lZCBsb25nKWNvbnN0IA0KKz9SZXBsaWNhdGVAUHJvdk9iamVjdElkZW50aWZpZXJAQE1CRVBBS1BCS0swS0BaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyAqIF9fdGhpc2NhbGwgUHJvdk9iamVjdElkZW50aWZpZXI6OlJlcGxpY2F0ZSh1bnNpZ25lZCBsb25nIGNvbnN0ICosdW5zaWduZWQgbG9uZyljb25zdCANCis/UmVwbGljYXRlQFByb3ZPYmplY3RJZGVudGlmaWVyQEBNQkVQQUtQQktLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBQcm92T2N0ZXRTdHJpbmc6OlJlcGxpY2F0ZSh1bnNpZ25lZCBjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/UmVwbGljYXRlQFByb3ZPY3RldFN0cmluZ0BATUFFUEFFUEJFS0BaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIFBhcnRpdGlvblNldDo6Um9vdCh2b2lkKQ0KKz9Sb290QFBhcnRpdGlvblNldEBAUUFFSFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBQcm92QW5hbHlzZXI6OlNldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRAUHJvdkFuYWx5c2VyQEBRQUVYUEJHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFByb3ZFdmVudE9iamVjdDo6U2V0KHZvaWQpDQorP1NldEBQcm92RXZlbnRPYmplY3RAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkICogX190aGlzY2FsbCBXbWlUcmVlTm9kZTo6U2V0RGF0YSh2b2lkICopDQorP1NldERhdGFAV21pVHJlZU5vZGVAQFFBRVBBWFBBWEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaVRyZWVOb2RlICogX190aGlzY2FsbCBXbWlUcmVlTm9kZUl0ZXJhdG9yOjpTZXRJdGVyYXRvcihjbGFzcyBXbWlUcmVlTm9kZSAqKQ0KKz9TZXRJdGVyYXRvckBXbWlUcmVlTm9kZUl0ZXJhdG9yQEBRQUVQQVZXbWlUcmVlTm9kZUBAUEFWMkBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgUGFydGl0aW9uU2V0OjpTZXRLZXlJbmRleCh1bnNpZ25lZCBsb25nKQ0KKz9TZXRLZXlJbmRleEBQYXJ0aXRpb25TZXRAQFFBRVhLQFoNCis7IHB1YmxpYzogY2xhc3MgV21pVHJlZU5vZGUgKiBfX3RoaXNjYWxsIFdtaVRyZWVOb2RlOjpTZXRMZWZ0KGNsYXNzIFdtaVRyZWVOb2RlICopDQorP1NldExlZnRAV21pVHJlZU5vZGVAQFFBRVBBVjFAUEFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgUHJvdk5lZ2F0aXZlUmFuZ2VUeXBlOjpTZXRMb3dlckJvdW5kKGxvbmcgY29uc3QgJikNCis/U2V0TG93ZXJCb3VuZEBQcm92TmVnYXRpdmVSYW5nZVR5cGVAQFFBRVhBQkpAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgUHJvdlBvc2l0aXZlUmFuZ2VUeXBlOjpTZXRMb3dlckJvdW5kKHVuc2lnbmVkIGxvbmcgY29uc3QgJikNCis/U2V0TG93ZXJCb3VuZEBQcm92UG9zaXRpdmVSYW5nZVR5cGVAQFFBRVhBQktAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgUHJvdkluc3RhbmNlVHlwZTo6U2V0TnVsbChpbnQpDQorP1NldE51bGxAUHJvdkluc3RhbmNlVHlwZUBAUUFFWEhAWg0KKzsgcHVibGljOiBjbGFzcyBXbWlUcmVlTm9kZSAqIF9fdGhpc2NhbGwgV21pVHJlZU5vZGU6OlNldFBhcmVudChjbGFzcyBXbWlUcmVlTm9kZSAqKQ0KKz9TZXRQYXJlbnRAV21pVHJlZU5vZGVAQFFBRVBBVjFAUEFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgUGFydGl0aW9uU2V0OjpTZXRQYXJ0aXRpb24odW5zaWduZWQgbG9uZyxjbGFzcyBQYXJ0aXRpb25TZXQgKikNCis/U2V0UGFydGl0aW9uQFBhcnRpdGlvblNldEBAUUFFWEtQQVYxQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDb25qdW5jdGlvbnM6OlNldFJhbmdlKHVuc2lnbmVkIGxvbmcsY2xhc3MgV21pUmFuZ2VOb2RlICopDQorP1NldFJhbmdlQENvbmp1bmN0aW9uc0BAUUFFWEtQQVZXbWlSYW5nZU5vZGVAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBQYXJ0aXRpb25TZXQ6OlNldFJhbmdlKGNsYXNzIFdtaVJhbmdlTm9kZSAqKQ0KKz9TZXRSYW5nZUBQYXJ0aXRpb25TZXRAQFFBRVhQQVZXbWlSYW5nZU5vZGVAQEBaDQorOyBwdWJsaWM6IGNsYXNzIFdtaVRyZWVOb2RlICogX190aGlzY2FsbCBXbWlUcmVlTm9kZTo6U2V0UmlnaHQoY2xhc3MgV21pVHJlZU5vZGUgKikNCis/U2V0UmlnaHRAV21pVHJlZU5vZGVAQFFBRVBBVjFAUEFWMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgUHJvdkluc3RhbmNlVHlwZTo6U2V0U3RhdHVzKGludCkNCis/U2V0U3RhdHVzQFByb3ZJbnN0YW5jZVR5cGVAQFFBRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGU6OlNldFN0YXR1cyhpbnQgY29uc3QgJikNCis/U2V0U3RhdHVzQFByb3ZQb3NpdGl2ZVJhbmdlZFR5cGVAQFFBRVhBQkhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgUHJvdkxleGljb246OlNldFRva2VuKGVudW0gUHJvdkxleGljb246OkxleGljb25Ub2tlbikNCis/U2V0VG9rZW5AUHJvdkxleGljb25AQFFBRVhXNExleGljb25Ub2tlbkAxQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBXbWlUcmVlTm9kZTo6U2V0VHlwZSh1bnNpZ25lZCBsb25nKQ0KKz9TZXRUeXBlQFdtaVRyZWVOb2RlQEBRQUVYS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBQcm92TmVnYXRpdmVSYW5nZVR5cGU6OlNldFVwcGVyQm91bmQobG9uZyBjb25zdCAmKQ0KKz9TZXRVcHBlckJvdW5kQFByb3ZOZWdhdGl2ZVJhbmdlVHlwZUBAUUFFWEFCSkBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBQcm92UG9zaXRpdmVSYW5nZVR5cGU6OlNldFVwcGVyQm91bmQodW5zaWduZWQgbG9uZyBjb25zdCAmKQ0KKz9TZXRVcHBlckJvdW5kQFByb3ZQb3NpdGl2ZVJhbmdlVHlwZUBAUUFFWEFCS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBQcm92Q291bnRlcjY0OjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP1NldFZhbHVlQFByb3ZDb3VudGVyNjRAQFFBRVhLS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBQcm92Q291bnRlcjo6U2V0VmFsdWUodW5zaWduZWQgbG9uZykNCis/U2V0VmFsdWVAUHJvdkNvdW50ZXJAQFFBRVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFByb3ZHYXVnZTo6U2V0VmFsdWUodW5zaWduZWQgbG9uZykNCis/U2V0VmFsdWVAUHJvdkdhdWdlQEBRQUVYS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBQcm92SW50ZWdlcjo6U2V0VmFsdWUobG9uZykNCis/U2V0VmFsdWVAUHJvdkludGVnZXJAQFFBRVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFByb3ZJcEFkZHJlc3M6OlNldFZhbHVlKHVuc2lnbmVkIGxvbmcpDQorP1NldFZhbHVlQFByb3ZJcEFkZHJlc3NAQFFBRVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFByb3ZPYmplY3RJZGVudGlmaWVyOjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nIGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/U2V0VmFsdWVAUHJvdk9iamVjdElkZW50aWZpZXJAQFFBRVhQQktLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFByb3ZPY3RldFN0cmluZzo6U2V0VmFsdWUodW5zaWduZWQgY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP1NldFZhbHVlQFByb3ZPY3RldFN0cmluZ0BAUUFFWFBCRUtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgUHJvdk9wYXF1ZTo6U2V0VmFsdWUodW5zaWduZWQgY2hhciBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP1NldFZhbHVlQFByb3ZPcGFxdWVAQFFBRVhQQkVLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFByb3ZUaW1lVGlja3M6OlNldFZhbHVlKHVuc2lnbmVkIGxvbmcpDQorP1NldFZhbHVlQFByb3ZUaW1lVGlja3NAQFFBRVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIFByb3ZVSW50ZWdlcjMyOjpTZXRWYWx1ZSh1bnNpZ25lZCBsb25nKQ0KKz9TZXRWYWx1ZUBQcm92VUludGVnZXIzMkBAUUFFWEtAWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFdtaVRyaVN0YXRlICBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpTb3J0KGNsYXNzIFdtaVRyZWVOb2RlICogJikNCis/U29ydEBRdWVyeVByZXByb2Nlc3NvckBASUFFP0FXNFdtaVRyaVN0YXRlQEBBQVBBVldtaVRyZWVOb2RlQEBAWg0KKzsgcHJvdGVjdGVkOiBlbnVtIFdtaVRyaVN0YXRlICBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpTb3J0Q29uZGl0aW9uYWxzKGNsYXNzIFdtaVRyZWVOb2RlICogJikNCis/U29ydENvbmRpdGlvbmFsc0BRdWVyeVByZXByb2Nlc3NvckBASUFFP0FXNFdtaVRyaVN0YXRlQEBBQVBBVldtaVRyZWVOb2RlQEBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OlNvcnRSYW5nZXModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICosY2xhc3MgV21pUmFuZ2VOb2RlICogKikNCis/U29ydFJhbmdlc0BRdWVyeVByZXByb2Nlc3NvckBASUFFWEtQQUtQQVBBVldtaVJhbmdlTm9kZUBAQFoNCis7IHB1YmxpYzogc3RhdGljIGludCBfX3N0ZGNhbGwgUHJvdkRlYnVnTG9nOjpTdGFydHVwKHZvaWQpDQorP1N0YXJ0dXBAUHJvdkRlYnVnTG9nQEBTR0hYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBQcm92T2JqZWN0SWRlbnRpZmllcjo6U3VmZml4KHVuc2lnbmVkIGxvbmcsY2xhc3MgUHJvdk9iamVjdElkZW50aWZpZXIgJiljb25zdCANCis/U3VmZml4QFByb3ZPYmplY3RJZGVudGlmaWVyQEBRQkVIS0FBVjFAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpUcmFuc2Zvcm1BbmRPckV4cHJlc3Npb24oY2xhc3MgV21pVHJlZU5vZGUgKiAmLGNsYXNzIFdtaVRyZWVOb2RlICosY2xhc3MgV21pVHJlZU5vZGUgKikNCis/VHJhbnNmb3JtQW5kT3JFeHByZXNzaW9uQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUVYQUFQQVZXbWlUcmVlTm9kZUBAUEFWMkAxQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpUcmFuc2Zvcm1BbmRUcnVlRXZhbHVhdGlvbihjbGFzcyBXbWlUcmVlTm9kZSAqICYsY2xhc3MgV21pVHJlZU5vZGUgKikNCis/VHJhbnNmb3JtQW5kVHJ1ZUV2YWx1YXRpb25AUXVlcnlQcmVwcm9jZXNzb3JAQElBRVhBQVBBVldtaVRyZWVOb2RlQEBQQVYyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBRdWVyeVByZXByb2Nlc3Nvcjo6VHJhbnNmb3JtSW50ZXJzZWN0aW5nUmFuZ2UoY2xhc3MgV21pVHJlZU5vZGUgKiAmLGNsYXNzIFdtaVRyZWVOb2RlICosY2xhc3MgV21pVHJlZU5vZGUgKikNCis/VHJhbnNmb3JtSW50ZXJzZWN0aW5nUmFuZ2VAUXVlcnlQcmVwcm9jZXNzb3JAQElBRVhBQVBBVldtaVRyZWVOb2RlQEBQQVYyQDFAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OlRyYW5zZm9ybU5vbkludGVyc2VjdGluZ1JhbmdlKGNsYXNzIFdtaVRyZWVOb2RlICogJixjbGFzcyBXbWlUcmVlTm9kZSAqKQ0KKz9UcmFuc2Zvcm1Ob25JbnRlcnNlY3RpbmdSYW5nZUBRdWVyeVByZXByb2Nlc3NvckBASUFFWEFBUEFWV21pVHJlZU5vZGVAQFBBVjJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpUcmFuc2Zvcm1Ob3RBbmRFeHByZXNzaW9uKGNsYXNzIFdtaVRyZWVOb2RlICogJixjbGFzcyBXbWlUcmVlTm9kZSAqKQ0KKz9UcmFuc2Zvcm1Ob3RBbmRFeHByZXNzaW9uQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUVYQUFQQVZXbWlUcmVlTm9kZUBAUEFWMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OlRyYW5zZm9ybU5vdEVxdWFsRXhwcmVzc2lvbihjbGFzcyBXbWlUcmVlTm9kZSAqICYsY2xhc3MgV21pVHJlZU5vZGUgKikNCis/VHJhbnNmb3JtTm90RXF1YWxFeHByZXNzaW9uQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUVYQUFQQVZXbWlUcmVlTm9kZUBAUEFWMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OlRyYW5zZm9ybU5vdE5vdEV4cHJlc3Npb24oY2xhc3MgV21pVHJlZU5vZGUgKiAmLGNsYXNzIFdtaVRyZWVOb2RlICopDQorP1RyYW5zZm9ybU5vdE5vdEV4cHJlc3Npb25AUXVlcnlQcmVwcm9jZXNzb3JAQElBRVhBQVBBVldtaVRyZWVOb2RlQEBQQVYyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBRdWVyeVByZXByb2Nlc3Nvcjo6VHJhbnNmb3JtTm90T3BlcmF0b3JFcXVhbEV4cHJlc3Npb24oY2xhc3MgV21pVHJlZU5vZGUgKiAmLGNsYXNzIFdtaVRyZWVOb2RlICopDQorP1RyYW5zZm9ybU5vdE9wZXJhdG9yRXF1YWxFeHByZXNzaW9uQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUVYQUFQQVZXbWlUcmVlTm9kZUBAUEFWMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OlRyYW5zZm9ybU5vdE9wZXJhdG9yRXF1YWxPckdyZWF0ZXJFeHByZXNzaW9uKGNsYXNzIFdtaVRyZWVOb2RlICogJixjbGFzcyBXbWlUcmVlTm9kZSAqKQ0KKz9UcmFuc2Zvcm1Ob3RPcGVyYXRvckVxdWFsT3JHcmVhdGVyRXhwcmVzc2lvbkBRdWVyeVByZXByb2Nlc3NvckBASUFFWEFBUEFWV21pVHJlZU5vZGVAQFBBVjJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpUcmFuc2Zvcm1Ob3RPcGVyYXRvckVxdWFsT3JMZXNzRXhwcmVzc2lvbihjbGFzcyBXbWlUcmVlTm9kZSAqICYsY2xhc3MgV21pVHJlZU5vZGUgKikNCis/VHJhbnNmb3JtTm90T3BlcmF0b3JFcXVhbE9yTGVzc0V4cHJlc3Npb25AUXVlcnlQcmVwcm9jZXNzb3JAQElBRVhBQVBBVldtaVRyZWVOb2RlQEBQQVYyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBRdWVyeVByZXByb2Nlc3Nvcjo6VHJhbnNmb3JtTm90T3BlcmF0b3JHcmVhdGVyRXhwcmVzc2lvbihjbGFzcyBXbWlUcmVlTm9kZSAqICYsY2xhc3MgV21pVHJlZU5vZGUgKikNCis/VHJhbnNmb3JtTm90T3BlcmF0b3JHcmVhdGVyRXhwcmVzc2lvbkBRdWVyeVByZXByb2Nlc3NvckBASUFFWEFBUEFWV21pVHJlZU5vZGVAQFBBVjJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpUcmFuc2Zvcm1Ob3RPcGVyYXRvcklzQUV4cHJlc3Npb24oY2xhc3MgV21pVHJlZU5vZGUgKiAmLGNsYXNzIFdtaVRyZWVOb2RlICopDQorP1RyYW5zZm9ybU5vdE9wZXJhdG9ySXNBRXhwcmVzc2lvbkBRdWVyeVByZXByb2Nlc3NvckBASUFFWEFBUEFWV21pVHJlZU5vZGVAQFBBVjJAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpUcmFuc2Zvcm1Ob3RPcGVyYXRvckxlc3NFeHByZXNzaW9uKGNsYXNzIFdtaVRyZWVOb2RlICogJixjbGFzcyBXbWlUcmVlTm9kZSAqKQ0KKz9UcmFuc2Zvcm1Ob3RPcGVyYXRvckxlc3NFeHByZXNzaW9uQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUVYQUFQQVZXbWlUcmVlTm9kZUBAUEFWMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OlRyYW5zZm9ybU5vdE9wZXJhdG9yTGlrZUV4cHJlc3Npb24oY2xhc3MgV21pVHJlZU5vZGUgKiAmLGNsYXNzIFdtaVRyZWVOb2RlICopDQorP1RyYW5zZm9ybU5vdE9wZXJhdG9yTGlrZUV4cHJlc3Npb25AUXVlcnlQcmVwcm9jZXNzb3JAQElBRVhBQVBBVldtaVRyZWVOb2RlQEBQQVYyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBRdWVyeVByZXByb2Nlc3Nvcjo6VHJhbnNmb3JtTm90T3BlcmF0b3JOb3RFcXVhbEV4cHJlc3Npb24oY2xhc3MgV21pVHJlZU5vZGUgKiAmLGNsYXNzIFdtaVRyZWVOb2RlICopDQorP1RyYW5zZm9ybU5vdE9wZXJhdG9yTm90RXF1YWxFeHByZXNzaW9uQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUVYQUFQQVZXbWlUcmVlTm9kZUBAUEFWMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OlRyYW5zZm9ybU5vdE9wZXJhdG9yTm90SXNBRXhwcmVzc2lvbihjbGFzcyBXbWlUcmVlTm9kZSAqICYsY2xhc3MgV21pVHJlZU5vZGUgKikNCis/VHJhbnNmb3JtTm90T3BlcmF0b3JOb3RJc0FFeHByZXNzaW9uQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUVYQUFQQVZXbWlUcmVlTm9kZUBAUEFWMkBAWg0KKzsgcHJvdGVjdGVkOiB2b2lkIF9fdGhpc2NhbGwgUXVlcnlQcmVwcm9jZXNzb3I6OlRyYW5zZm9ybU5vdE9wZXJhdG9yTm90TGlrZUV4cHJlc3Npb24oY2xhc3MgV21pVHJlZU5vZGUgKiAmLGNsYXNzIFdtaVRyZWVOb2RlICopDQorP1RyYW5zZm9ybU5vdE9wZXJhdG9yTm90TGlrZUV4cHJlc3Npb25AUXVlcnlQcmVwcm9jZXNzb3JAQElBRVhBQVBBVldtaVRyZWVOb2RlQEBQQVYyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBRdWVyeVByZXByb2Nlc3Nvcjo6VHJhbnNmb3JtTm90T3JFeHByZXNzaW9uKGNsYXNzIFdtaVRyZWVOb2RlICogJixjbGFzcyBXbWlUcmVlTm9kZSAqKQ0KKz9UcmFuc2Zvcm1Ob3RPckV4cHJlc3Npb25AUXVlcnlQcmVwcm9jZXNzb3JAQElBRVhBQVBBVldtaVRyZWVOb2RlQEBQQVYyQEBaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBRdWVyeVByZXByb2Nlc3Nvcjo6VHJhbnNmb3JtT3BlcmF0b3JUb1JhbmdlKGNsYXNzIFdtaVRyZWVOb2RlICogJikNCis/VHJhbnNmb3JtT3BlcmF0b3JUb1JhbmdlQFF1ZXJ5UHJlcHJvY2Vzc29yQEBJQUVYQUFQQVZXbWlUcmVlTm9kZUBAQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIFF1ZXJ5UHJlcHJvY2Vzc29yOjpUcmFuc2Zvcm1PckZhbHNlRXZhbHVhdGlvbihjbGFzcyBXbWlUcmVlTm9kZSAqICYsY2xhc3MgV21pVHJlZU5vZGUgKikNCis/VHJhbnNmb3JtT3JGYWxzZUV2YWx1YXRpb25AUXVlcnlQcmVwcm9jZXNzb3JAQElBRVhBQVBBVldtaVRyZWVOb2RlQEBQQVYyQEBaDQorOyBwcm90ZWN0ZWQ6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIFByb3ZPYmplY3RJZGVudGlmaWVyOjpVblJlcGxpY2F0ZSh1bnNpZ25lZCBsb25nICopDQorP1VuUmVwbGljYXRlQFByb3ZPYmplY3RJZGVudGlmaWVyQEBNQUVYUEFLQFoNCis7IHByb3RlY3RlZDogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgUHJvdk9jdGV0U3RyaW5nOjpVblJlcGxpY2F0ZSh1bnNpZ25lZCBjaGFyICopDQorP1VuUmVwbGljYXRlQFByb3ZPY3RldFN0cmluZ0BATUFFWFBBRUBaDQorOyB1bnNpZ25lZCBzaG9ydCAqIF9fc3RkY2FsbCBVbmljb2RlU3RyaW5nQXBwZW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/VW5pY29kZVN0cmluZ0FwcGVuZEBAWUdQQUdQQkcwQFoNCis7IHVuc2lnbmVkIHNob3J0ICogX19zdGRjYWxsIFVuaWNvZGVTdHJpbmdEdXBsaWNhdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/VW5pY29kZVN0cmluZ0R1cGxpY2F0ZUBAWUdQQUdQQkdAWg0KKzsgY2hhciAqIF9fc3RkY2FsbCBVbmljb2RlVG9EYmNzU3RyaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1VuaWNvZGVUb0RiY3NTdHJpbmdAQFlHUEFEUEJHQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIFdtaVNpZ25lZEludGVnZXJSYW5nZU5vZGU6OlVwcGVyQm91bmQodm9pZCkNCis/VXBwZXJCb3VuZEBXbWlTaWduZWRJbnRlZ2VyUmFuZ2VOb2RlQEBRQUVKWFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIFdtaVN0cmluZ1JhbmdlTm9kZTo6VXBwZXJCb3VuZCh2b2lkKQ0KKz9VcHBlckJvdW5kQFdtaVN0cmluZ1JhbmdlTm9kZUBAUUFFUEFHWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIFdtaVVuc2lnbmVkSW50ZWdlclJhbmdlTm9kZTo6VXBwZXJCb3VuZCh2b2lkKQ0KKz9VcHBlckJvdW5kQFdtaVVuc2lnbmVkSW50ZWdlclJhbmdlTm9kZUBAUUFFS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgaW50IF9fdGhpc2NhbGwgUHJvdkV2ZW50T2JqZWN0OjpXYWl0KHZvaWQpDQorP1dhaXRAUHJvdkV2ZW50T2JqZWN0QEBVQUVIWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFByb3ZEZWJ1Z0xvZzo6V3JpdGUodW5zaWduZWQgc2hvcnQgY29uc3QgKiwuLi4pDQorP1dyaXRlQFByb3ZEZWJ1Z0xvZ0BAUUFBWFBCR1paDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQcm92RGVidWdMb2c6OldyaXRlQShjaGFyIGNvbnN0ICosLi4uKQ0KKz9Xcml0ZUFAUHJvdkRlYnVnTG9nQEBRQUFYUEJEWloNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFByb3ZEZWJ1Z0xvZzo6V3JpdGVGaWxlQW5kTGluZShjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLC4uLikNCis/V3JpdGVGaWxlQW5kTGluZUBQcm92RGVidWdMb2dAQFFBQVhQQkRLUEJHWloNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIFByb3ZEZWJ1Z0xvZzo6V3JpdGVGaWxlQW5kTGluZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiwuLi4pDQorP1dyaXRlRmlsZUFuZExpbmVAUHJvdkRlYnVnTG9nQEBRQUFYUEJHSzBaWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUHJvdkRlYnVnTG9nOjpXcml0ZUZpbGVBbmRMaW5lQShjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZyxjaGFyIGNvbnN0ICosLi4uKQ0KKz9Xcml0ZUZpbGVBbmRMaW5lQUBQcm92RGVidWdMb2dAQFFBQVhQQkRLMFpaDQorOyBwdWJsaWM6IHZvaWQgX19jZGVjbCBQcm92RGVidWdMb2c6OldyaXRlRmlsZUFuZExpbmVXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLC4uLikNCis/V3JpdGVGaWxlQW5kTGluZVdAUHJvdkRlYnVnTG9nQEBRQUFYUEJHSzBaWg0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgUHJvdkRlYnVnTG9nOjpXcml0ZVcodW5zaWduZWQgc2hvcnQgY29uc3QgKiwuLi4pDQorP1dyaXRlV0BQcm92RGVidWdMb2dAQFFBQVhQQkdaWg0KKzsgcHVibGljOiBzdGF0aWMgY2xhc3MgUHJvdkRlYnVnTG9nICogIFByb3ZEZWJ1Z0xvZzo6c19Qcm92RGVidWdMb2cNCis/c19Qcm92RGVidWdMb2dAUHJvdkRlYnVnTG9nQEAyUEFWMUBBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGxvbmcgIFByb3ZEZWJ1Z0xvZzo6c19SZWZlcmVuY2VDb3VudA0KKz9zX1JlZmVyZW5jZUNvdW50QFByb3ZEZWJ1Z0xvZ0BAMkpBIERBVEENCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIFByb3ZEZWJ1Z0xvZyAqICBQcm92RGVidWdMb2c6OnNfYUxvZ3MNCis/c19hTG9nc0BQcm92RGVidWdMb2dAQDJQQVYxQEEgREFUQQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dwc2FwaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cHNhcGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRhMGU5YTEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cHNhcGkuZGVmCkBAIC0wLDAgKzEsMzMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUFNBUEkuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFBTQVBJLkRMTA0KK0VYUE9SVFMNCitFbXB0eVdvcmtpbmdTZXQNCitFbnVtRGV2aWNlRHJpdmVycw0KK0VudW1QYWdlRmlsZXNBDQorRW51bVBhZ2VGaWxlc1cNCitFbnVtUHJvY2Vzc01vZHVsZXMNCitFbnVtUHJvY2Vzc2VzDQorR2V0RGV2aWNlRHJpdmVyQmFzZU5hbWVBDQorR2V0RGV2aWNlRHJpdmVyQmFzZU5hbWVXDQorR2V0RGV2aWNlRHJpdmVyRmlsZU5hbWVBDQorR2V0RGV2aWNlRHJpdmVyRmlsZU5hbWVXDQorR2V0TWFwcGVkRmlsZU5hbWVBDQorR2V0TWFwcGVkRmlsZU5hbWVXDQorR2V0TW9kdWxlQmFzZU5hbWVBDQorR2V0TW9kdWxlQmFzZU5hbWVXDQorR2V0TW9kdWxlRmlsZU5hbWVFeEENCitHZXRNb2R1bGVGaWxlTmFtZUV4Vw0KK0dldE1vZHVsZUluZm9ybWF0aW9uDQorR2V0UGVyZm9ybWFuY2VJbmZvDQorR2V0UHJvY2Vzc0ltYWdlRmlsZU5hbWVBDQorR2V0UHJvY2Vzc0ltYWdlRmlsZU5hbWVXDQorR2V0UHJvY2Vzc01lbW9yeUluZm8NCitHZXRXc0NoYW5nZXMNCitJbml0aWFsaXplUHJvY2Vzc0ZvcldzV2F0Y2gNCitRdWVyeVdvcmtpbmdTZXQNCitRdWVyeVdvcmtpbmdTZXRFeA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dwc2Jhc2UuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3BzYmFzZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzdhMzA5NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dwc2Jhc2UuZGVmCkBAIC0wLDAgKzEsMjkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUFNCQVNFLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBQU0JBU0UuZGxsDQorRVhQT1JUUw0KK0ZQYXNzd29yZENoYW5nZU5vdGlmeQ0KK1NQQ2xvc2VJdGVtDQorU1BPcGVuSXRlbQ0KK1NQQWNxdWlyZUNvbnRleHQNCitTUENyZWF0ZVN1YnR5cGUNCitTUENyZWF0ZVR5cGUNCitTUERlbGV0ZUl0ZW0NCitTUERlbGV0ZVN1YnR5cGUNCitTUERlbGV0ZVR5cGUNCitTUEVudW1JdGVtcw0KK1NQRW51bVN1YnR5cGVzDQorU1BFbnVtVHlwZXMNCitTUEdldFByb3ZJbmZvDQorU1BHZXRQcm92UGFyYW0NCitTUEdldFN1YnR5cGVJbmZvDQorU1BHZXRUeXBlSW5mbw0KK1NQUHJvdmlkZXJJbml0aWFsaXplDQorU1BSZWFkSXRlbQ0KK1NQUmVsZWFzZUNvbnRleHQNCitTUFNldFByb3ZQYXJhbQ0KK1NQV3JpdGVJdGVtDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3BzY2hkcHJmLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dwc2NoZHByZi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2E2YmQ4MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dwc2NoZHByZi5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBQc2NoZFByZi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUHNjaGRQcmYuZGxsDQorRVhQT1JUUw0KK0Nsb3NlUHNjaGVkUGVyZm9ybWFuY2VEYXRhDQorQ29sbGVjdFBzY2hlZFBlcmZvcm1hbmNlRGF0YQ0KK09wZW5Qc2NoZWRQZXJmb3JtYW5jZURhdGENCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cHNucHBhZ24uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3BzbnBwYWduLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lOTE1ODNhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3BzbnBwYWduLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFBTTlBQQUdOLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBQU05QUEFHTi5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cHN0b3JlYy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cHN0b3JlYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWRiOWJiMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dwc3RvcmVjLmRlZgpAQCAtMCwwICsxLDE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFBTVE9SRUMuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFBTVE9SRUMuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorUFN0b3JlQ3JlYXRlSW5zdGFuY2UNCitQU3RvcmVFbnVtUHJvdmlkZXJzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3BzdG9yc3ZjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dwc3RvcnN2Yy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDkyYzk2ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dwc3RvcnN2Yy5kZWYKQEAgLTAsMCArMSwxMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBQU1RPUlNWQy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUFNUT1JTVkMuZGxsDQorRVhQT1JUUw0KK1BTVE9SRVNlcnZpY2VNYWluDQorU2VydmljZUVudHJ5DQorU3RhcnQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cWFzZi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cWFzZi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTFhMjIzMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dxYXNmLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFFBU0YuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFFBU0YuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3FjYXAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3FjYXAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZjY2Q5YzQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cWNhcC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBRQ2FwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBRQ2FwLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dxZHYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3Fkdi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGI3YzRhMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dxZHYuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUURWLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBRRFYuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3FkdmQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3FkdmQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIzNmI2MWYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cWR2ZC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBRZHZkLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBRZHZkLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dxZWRpdC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cWVkaXQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZiOWRiNTgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cWVkaXQuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUUVkaXQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFFFZGl0LmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dxbWdycHJ4eS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cW1ncnByeHkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE5MGY4MzQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cW1ncnByeHkuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcW1ncnByeHkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHFtZ3Jwcnh5LmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dxb3NuYW1lLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dxb3NuYW1lLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNjcyMDdjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3Fvc25hbWUuZGVmCkBAIC0wLDAgKzEsMTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcW9zbmFtZS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcW9zbmFtZS5kbGwNCitFWFBPUlRTDQorV1BVR2V0UU9TVGVtcGxhdGUNCitXU0NJbnN0YWxsUU9TVGVtcGxhdGUNCitXU0NSZW1vdmVRT1NUZW1wbGF0ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dxdWFydHouZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3F1YXJ0ei5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmFmNWU2ZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dxdWFydHouZGVmCkBAIC0wLDAgKzEsMTcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUVVBUlRaLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBRVUFSVFouZGxsDQorRVhQT1JUUw0KK0FNR2V0RXJyb3JUZXh0QQ0KK0FNR2V0RXJyb3JUZXh0Vw0KK0FtcEZhY3RvclRvREINCitEQlRvQW1wRmFjdG9yDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitHZXRQcm94eURsbEluZm8NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cXVlcnkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3F1ZXJ5LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42N2Q0MDZjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3F1ZXJ5LmRlZgpAQCAtMCwwICsxLDE1NTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcXVlcnkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHF1ZXJ5LmRsbA0KK0VYUE9SVFMNCis7IGNsYXNzIENDb1Rhc2tBbGxvY2F0b3IgIENvVGFza0FsbG9jYXRvcg0KKz9Db1Rhc2tBbGxvY2F0b3JAQDNWQ0NvVGFza0FsbG9jYXRvckBAQSBEQVRBDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0FsbG9jU3RvcmFnZVZhcmlhbnQ6OkNBbGxvY1N0b3JhZ2VWYXJpYW50KHN0cnVjdCB0YWdQUk9QVkFSSUFOVCAmLGNsYXNzIFBNZW1vcnlBbGxvY2F0b3IgJikNCis/PzBDQWxsb2NTdG9yYWdlVmFyaWFudEBAUUFFQEFBVXRhZ1BST1BWQVJJQU5UQEBBQVZQTWVtb3J5QWxsb2NhdG9yQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENBbGxvY1N0b3JhZ2VWYXJpYW50OjpDQWxsb2NTdG9yYWdlVmFyaWFudChjbGFzcyBQRGVTZXJTdHJlYW0gJixjbGFzcyBQTWVtb3J5QWxsb2NhdG9yICYpDQorPz8wQ0FsbG9jU3RvcmFnZVZhcmlhbnRAQFFBRUBBQVZQRGVTZXJTdHJlYW1AQEFBVlBNZW1vcnlBbGxvY2F0b3JAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0FsbG9jU3RvcmFnZVZhcmlhbnQ6OkNBbGxvY1N0b3JhZ2VWYXJpYW50KGNoYXIgY29uc3QgKixjbGFzcyBQTWVtb3J5QWxsb2NhdG9yICYpDQorPz8wQ0FsbG9jU3RvcmFnZVZhcmlhbnRAQFFBRUBQQkRBQVZQTWVtb3J5QWxsb2NhdG9yQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENBbGxvY1N0b3JhZ2VWYXJpYW50OjpDQWxsb2NTdG9yYWdlVmFyaWFudCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIFBNZW1vcnlBbGxvY2F0b3IgJikNCis/PzBDQWxsb2NTdG9yYWdlVmFyaWFudEBAUUFFQFBCR0FBVlBNZW1vcnlBbGxvY2F0b3JAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0FsbG9jU3RvcmFnZVZhcmlhbnQ6OkNBbGxvY1N0b3JhZ2VWYXJpYW50KHN0cnVjdCBfR1VJRCBjb25zdCAqLGNsYXNzIFBNZW1vcnlBbGxvY2F0b3IgJikNCis/PzBDQWxsb2NTdG9yYWdlVmFyaWFudEBAUUFFQFBCVV9HVUlEQEBBQVZQTWVtb3J5QWxsb2NhdG9yQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENBbGxvY1N0b3JhZ2VWYXJpYW50OjpDQWxsb2NTdG9yYWdlVmFyaWFudChlbnVtIFZBUkVOVU0sdW5zaWduZWQgbG9uZyxjbGFzcyBQTWVtb3J5QWxsb2NhdG9yICYpDQorPz8wQ0FsbG9jU3RvcmFnZVZhcmlhbnRAQFFBRUBXNFZBUkVOVU1AQEtBQVZQTWVtb3J5QWxsb2NhdG9yQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDYXRTdGF0ZTo6Q0NhdFN0YXRlKHZvaWQpDQorPz8wQ0NhdFN0YXRlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ2F0ZWdvcml6YXRpb25TZXQ6OkNDYXRlZ29yaXphdGlvblNldChjbGFzcyBDQ2F0ZWdvcml6YXRpb25TZXQgY29uc3QgJikNCis/PzBDQ2F0ZWdvcml6YXRpb25TZXRAQFFBRUBBQlYwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NhdGVnb3JpemF0aW9uU2V0OjpDQ2F0ZWdvcml6YXRpb25TZXQodW5zaWduZWQgaW50KQ0KKz8/MENDYXRlZ29yaXphdGlvblNldEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDaUFkbWluUGFyYW1zOjpDQ2lBZG1pblBhcmFtcyhjbGFzcyBDTGFuZ0xpc3QgKikNCis/PzBDQ2lBZG1pblBhcmFtc0BAUUFFQFBBVkNMYW5nTGlzdEBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ2lSZWdQYXJhbXM6OkNDaVJlZ1BhcmFtcyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MENDaVJlZ1BhcmFtc0BAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NvbHVtblNldDo6Q0NvbHVtblNldCh1bnNpZ25lZCBpbnQpDQorPz8wQ0NvbHVtblNldEBAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDb2x1bW5zOjpDQ29sdW1ucyhjbGFzcyBDQ29sdW1ucyBjb25zdCAmKQ0KKz8/MENDb2x1bW5zQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDb2x1bW5zOjpDQ29sdW1ucyh1bnNpZ25lZCBpbnQpDQorPz8wQ0NvbHVtbnNAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDREZBOjpDREZBKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1RpbWVMaW1pdCAmLHVuc2lnbmVkIGNoYXIpDQorPz8wQ0RGQUBAUUFFQFBCR0FBVkNUaW1lTGltaXRAQEVAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEYkNvbElkOjpDRGJDb2xJZChzdHJ1Y3QgX0dVSUQgY29uc3QgJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MENEYkNvbElkQEBRQUVAQUJVX0dVSURAQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0RiQ29sSWQ6OkNEYkNvbElkKHN0cnVjdCB0YWdEQklEIGNvbnN0ICYpDQorPz8wQ0RiQ29sSWRAQFFBRUBBQlV0YWdEQklEQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEYkNvbElkOjpDRGJDb2xJZChjbGFzcyBDRGJDb2xJZCBjb25zdCAmKQ0KKz8/MENEYkNvbElkQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEYkNvbElkOjpDRGJDb2xJZCh2b2lkKQ0KKz8/MENEYkNvbElkQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRGJDb2x1bW5Ob2RlOjpDRGJDb2x1bW5Ob2RlKHN0cnVjdCB0YWdEQklEIGNvbnN0ICYsaW50KQ0KKz8/MENEYkNvbHVtbk5vZGVAQFFBRUBBQlV0YWdEQklEQEBIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRGJDb2x1bW5zOjpDRGJDb2x1bW5zKHVuc2lnbmVkIGludCkNCis/PzBDRGJDb2x1bW5zQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0RiQ29udGVudFJlc3RyaWN0aW9uOjpDRGJDb250ZW50UmVzdHJpY3Rpb24odW5zaWduZWQgc2hvcnQgY29uc3QgKixzdHJ1Y3QgdGFnREJJRCBjb25zdCAmLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/PzBDRGJDb250ZW50UmVzdHJpY3Rpb25AQFFBRUBQQkdBQlV0YWdEQklEQEBLS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0RiQ29udGVudFJlc3RyaWN0aW9uOjpDRGJDb250ZW50UmVzdHJpY3Rpb24odW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDRGJDb2x1bW5Ob2RlIGNvbnN0ICYsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz8/MENEYkNvbnRlbnRSZXN0cmljdGlvbkBAUUFFQFBCR0FCVkNEYkNvbHVtbk5vZGVAQEtLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRGJOYXRMYW5nUmVzdHJpY3Rpb246OkNEYk5hdExhbmdSZXN0cmljdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHN0cnVjdCB0YWdEQklEIGNvbnN0ICYsdW5zaWduZWQgbG9uZykNCis/PzBDRGJOYXRMYW5nUmVzdHJpY3Rpb25AQFFBRUBQQkdBQlV0YWdEQklEQEBLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRGJOYXRMYW5nUmVzdHJpY3Rpb246OkNEYk5hdExhbmdSZXN0cmljdGlvbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENEYkNvbHVtbk5vZGUgY29uc3QgJix1bnNpZ25lZCBsb25nKQ0KKz8/MENEYk5hdExhbmdSZXN0cmljdGlvbkBAUUFFQFBCR0FCVkNEYkNvbHVtbk5vZGVAQEtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEYlByb3BJRFNldDo6Q0RiUHJvcElEU2V0KHZvaWQpDQorPz8wQ0RiUHJvcElEU2V0QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRGJRdWVyeVJlc3VsdHM6OkNEYlF1ZXJ5UmVzdWx0cyh2b2lkKQ0KKz8/MENEYlF1ZXJ5UmVzdWx0c0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0RiU2VsZWN0Tm9kZTo6Q0RiU2VsZWN0Tm9kZSh2b2lkKQ0KKz8/MENEYlNlbGVjdE5vZGVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEYlNvcnRTZXQ6OkNEYlNvcnRTZXQodW5zaWduZWQgaW50KQ0KKz8/MENEYlNvcnRTZXRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRGVmQ29sdW1uUmVnRW50cnk6OkNEZWZDb2x1bW5SZWdFbnRyeSh2b2lkKQ0KKz8/MENEZWZDb2x1bW5SZWdFbnRyeUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0RyaXZlSW5mbzo6Q0RyaXZlSW5mbyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorPz8wQ0RyaXZlSW5mb0BAUUFFQFBCR0tAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEeW5TdHJlYW06OkNEeW5TdHJlYW0oY2xhc3MgUE1tU3RyZWFtICopDQorPz8wQ0R5blN0cmVhbUBAUUFFQFBBVlBNbVN0cmVhbUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRXZlbnRJdGVtOjpDRXZlbnRJdGVtKHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyx2b2lkIGNvbnN0ICopDQorPz8wQ0V2ZW50SXRlbUBAUUFFQEdHS0dLUEJYQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRXZlbnRMb2c6OkNFdmVudExvZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wQ0V2ZW50TG9nQEBRQUVAUEJHMEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0V4Y2VwdGlvbjo6Q0V4Y2VwdGlvbih2b2lkKQ0KKz8/MENFeGNlcHRpb25AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENGaWxlQnVmZmVyOjpDRmlsZUJ1ZmZlcihjbGFzcyBDRmlsZU1hcFZpZXcgJix1bnNpZ25lZCBpbnQpDQorPz8wQ0ZpbGVCdWZmZXJAQFFBRUBBQVZDRmlsZU1hcFZpZXdAQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENGaWxlTWFwVmlldzo6Q0ZpbGVNYXBWaWV3KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wQ0ZpbGVNYXBWaWV3QEBRQUVAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRmlsdGVyRGFlbW9uOjpDRmlsdGVyRGFlbW9uKGNsYXNzIENpUHJveHkgJixjbGFzcyBDQ2lGcmFtZXdvcmtQYXJhbXMgJixjbGFzcyBDTGFuZ0xpc3QgJix1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZyxzdHJ1Y3QgSUNpQ0ZpbHRlckNsaWVudCAqKQ0KKz8/MENGaWx0ZXJEYWVtb25AQFFBRUBBQVZDaVByb3h5QEBBQVZDQ2lGcmFtZXdvcmtQYXJhbXNAQEFBVkNMYW5nTGlzdEBAUEFFS1BBVUlDaUNGaWx0ZXJDbGllbnRAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0Z1bGxQYXRoOjpDRnVsbFBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBDRnVsbFBhdGhAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENGdWxsUGF0aDo6Q0Z1bGxQYXRoKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgaW50KQ0KKz8/MENGdWxsUGF0aEBAUUFFQFBCR0lAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENGdWxsUHJvcFNwZWM6OkNGdWxsUHJvcFNwZWMoY2xhc3MgUERlU2VyU3RyZWFtICYpDQorPz8wQ0Z1bGxQcm9wU3BlY0BAUUFFQEFBVlBEZVNlclN0cmVhbUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRnVsbFByb3BTcGVjOjpDRnVsbFByb3BTcGVjKGNsYXNzIENGdWxsUHJvcFNwZWMgY29uc3QgJikNCis/PzBDRnVsbFByb3BTcGVjQEBRQUVAQUJWMEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENGd0FzeW5jV29ya0l0ZW06OkNGd0FzeW5jV29ya0l0ZW0oY2xhc3MgQ1dvcmtNYW5hZ2VyICYsY2xhc3MgQ1dvcmtRdWV1ZSAmKQ0KKz8/MENGd0FzeW5jV29ya0l0ZW1AQFFBRUBBQVZDV29ya01hbmFnZXJAQEFBVkNXb3JrUXVldWVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0Z3RXZlbnRJdGVtOjpDRndFdmVudEl0ZW0odW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBsb25nLHZvaWQgKikNCis/PzBDRndFdmVudEl0ZW1AQFFBRUBHS0dLUEFYQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDR2VuZXJpY0NpUHJveHk6OkNHZW5lcmljQ2lQcm94eShjbGFzcyBDU2hhcmVkTmFtZUdlbiAmLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/PzBDR2VuZXJpY0NpUHJveHlAQFFBRUBBQVZDU2hhcmVkTmFtZUdlbkBAS0tAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENHZXREYlByb3BzOjpDR2V0RGJQcm9wcyh2b2lkKQ0KKz8/MENHZXREYlByb3BzQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSW1wZXJzb25hdGVSZW1vdGVBY2Nlc3M6OkNJbXBlcnNvbmF0ZVJlbW90ZUFjY2VzcyhjbGFzcyBDSW1wZXJzb25hdGlvblRva2VuQ2FjaGUgKikNCis/PzBDSW1wZXJzb25hdGVSZW1vdGVBY2Nlc3NAQFFBRUBQQVZDSW1wZXJzb25hdGlvblRva2VuQ2FjaGVAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0ltcGVyc29uYXRpb25Ub2tlbkNhY2hlOjpDSW1wZXJzb25hdGlvblRva2VuQ2FjaGUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBDSW1wZXJzb25hdGlvblRva2VuQ2FjaGVAQFFBRUBQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbmRleFRhYmxlOjpDSW5kZXhUYWJsZShjbGFzcyBDaVN0b3JhZ2UgJixjbGFzcyBDVHJhbnNhY3Rpb24gJikNCis/PzBDSW5kZXhUYWJsZUBAUUFFQEFBVkNpU3RvcmFnZUBAQUFWQ1RyYW5zYWN0aW9uQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbnRlcm5hbFByb3BlcnR5UmVzdHJpY3Rpb246OkNJbnRlcm5hbFByb3BlcnR5UmVzdHJpY3Rpb24odW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIENTdG9yYWdlVmFyaWFudCBjb25zdCAmLGNsYXNzIENSZXN0cmljdGlvbiAqKQ0KKz8/MENJbnRlcm5hbFByb3BlcnR5UmVzdHJpY3Rpb25AQFFBRUBLS0FCVkNTdG9yYWdlVmFyaWFudEBAUEFWQ1Jlc3RyaWN0aW9uQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENLZXlBcnJheTo6Q0tleUFycmF5KGludCxpbnQpDQorPz8wQ0tleUFycmF5QEBRQUVASEhAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMYW5nTGlzdDo6Q0xhbmdMaXN0KHN0cnVjdCBJQ2lDTGFuZ1JlcyAqLHVuc2lnbmVkIGxvbmcpDQorPz8wQ0xhbmdMaXN0QEBRQUVAUEFVSUNpQ0xhbmdSZXNAQEtAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMb2NhbEdsb2JhbFByb3BlcnR5TGlzdDo6Q0xvY2FsR2xvYmFsUHJvcGVydHlMaXN0KHVuc2lnbmVkIGxvbmcpDQorPz8wQ0xvY2FsR2xvYmFsUHJvcGVydHlMaXN0QEBRQUVAS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0xvY2FsR2xvYmFsUHJvcGVydHlMaXN0OjpDTG9jYWxHbG9iYWxQcm9wZXJ0eUxpc3QoY2xhc3MgQ0VtcHR5UHJvcGVydHlMaXN0ICosaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/PzBDTG9jYWxHbG9iYWxQcm9wZXJ0eUxpc3RAQFFBRUBQQVZDRW1wdHlQcm9wZXJ0eUxpc3RAQEhQQkdLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWFjaGluZUFkbWluOjpDTWFjaGluZUFkbWluKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz8/MENNYWNoaW5lQWRtaW5AQFFBRUBQQkdIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTWVtU2VyU3RyZWFtOjpDTWVtU2VyU3RyZWFtKHVuc2lnbmVkIGludCkNCis/PzBDTWVtU2VyU3RyZWFtQEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ01lbVNlclN0cmVhbTo6Q01lbVNlclN0cmVhbSh1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgbG9uZykNCis/PzBDTWVtU2VyU3RyZWFtQEBRQUVAUEFFS0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ01ldGFEYXRhTWdyOjpDTWV0YURhdGFNZ3IoaW50LGVudW0gQ2lWUm9vdFR5cGVFbnVtLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/PzBDTWV0YURhdGFNZ3JAQFFBRUBIVzRDaVZSb290VHlwZUVudW1AQEtQQkdAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENNbVN0cmVhbTo6Q01tU3RyZWFtKHVuc2lnbmVkIGxvbmcsaW50KQ0KKz8/MENNbVN0cmVhbUBAUUFFQEtIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTW1TdHJlYW1Db25zZWNCdWY6OkNNbVN0cmVhbUNvbnNlY0J1Zih2b2lkKQ0KKz8/MENNbVN0cmVhbUNvbnNlY0J1ZkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ05hdExhbmd1YWdlUmVzdHJpY3Rpb246OkNOYXRMYW5ndWFnZVJlc3RyaWN0aW9uKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ0Z1bGxQcm9wU3BlYyBjb25zdCAmLHVuc2lnbmVkIGxvbmcpDQorPz8wQ05hdExhbmd1YWdlUmVzdHJpY3Rpb25AQFFBRUBQQkdBQlZDRnVsbFByb3BTcGVjQEBLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTm9kZVJlc3RyaWN0aW9uOjpDTm9kZVJlc3RyaWN0aW9uKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgaW50KQ0KKz8/MENOb2RlUmVzdHJpY3Rpb25AQFFBRUBLSUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ05vcm1hbGl6ZXI6OkNOb3JtYWxpemVyKGNsYXNzIFBOb2lzZUxpc3QgJikNCis/PzBDTm9ybWFsaXplckBAUUFFQEFBVlBOb2lzZUxpc3RAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1BhdGhQYXJzZXI6OkNQYXRoUGFyc2VyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/PzBDUGF0aFBhcnNlckBAUUFFQFBCR0tAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENQZXJmTW9uOjpDUGVyZk1vbih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MENQZXJmTW9uQEBRQUVAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUGVyc0RlQ29tcDo6Q1BlcnNEZUNvbXAoY2xhc3MgUERpcmVjdG9yeSAmLHVuc2lnbmVkIGxvbmcsY2xhc3MgQ1BoeXNJbmRleCAmLHVuc2lnbmVkIGxvbmcsaW50LGludCkNCis/PzBDUGVyc0RlQ29tcEBAUUFFQEFBVlBEaXJlY3RvcnlAQEtBQVZDUGh5c0luZGV4QEBLSEhAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIENQaHlzU3RvcmFnZTo6Q1BoeXNTdG9yYWdlKGNsYXNzIFBTdG9yYWdlICYsY2xhc3MgUFN0b3JhZ2VPYmplY3QgJix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGludCxjbGFzcyBQTW1TdHJlYW0gKixpbnQsdW5zaWduZWQgaW50LGludCkNCis/PzBDUGh5c1N0b3JhZ2VAQElBRUBBQVZQU3RvcmFnZUBAQUFWUFN0b3JhZ2VPYmplY3RAQEtJUEFWUE1tU3RyZWFtQEBISUhAWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIENQaHlzU3RvcmFnZTo6Q1BoeXNTdG9yYWdlKGNsYXNzIFBTdG9yYWdlICYsY2xhc3MgUFN0b3JhZ2VPYmplY3QgJix1bnNpZ25lZCBsb25nLGNsYXNzIFBNbVN0cmVhbSAqLGVudW0gQ1BoeXNTdG9yYWdlOjpFT3Blbk1vZGUsaW50LHVuc2lnbmVkIGludCxpbnQpDQorPz8wQ1BoeXNTdG9yYWdlQEBJQUVAQUFWUFN0b3JhZ2VAQEFBVlBTdG9yYWdlT2JqZWN0QEBLUEFWUE1tU3RyZWFtQEBXNEVPcGVuTW9kZUAxQEhJSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1BpZExvb2t1cFRhYmxlOjpDUGlkTG9va3VwVGFibGUodm9pZCkNCis/PzBDUGlkTG9va3VwVGFibGVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENQaWRSZW1hcHBlcjo6Q1BpZFJlbWFwcGVyKGNsYXNzIENQaWRNYXBwZXIgY29uc3QgJixjbGFzcyBYSW50ZXJmYWNlPHN0cnVjdCBJUHJvcGVydHlNYXBwZXI+ICYsY2xhc3MgQ1Jlc3RyaWN0aW9uICosY2xhc3MgQ0NvbHVtblNldCAqLGNsYXNzIENTb3J0U2V0ICopDQorPz8wQ1BpZFJlbWFwcGVyQEBRQUVAQUJWQ1BpZE1hcHBlckBAQUFWPyRYSW50ZXJmYWNlQFVJUHJvcGVydHlNYXBwZXJAQEBAUEFWQ1Jlc3RyaWN0aW9uQEBQQVZDQ29sdW1uU2V0QEBQQVZDU29ydFNldEBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUHJvcExpc3RGaWxlOjpDUHJvcExpc3RGaWxlKGNsYXNzIENFbXB0eVByb3BlcnR5TGlzdCAqLGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorPz8wQ1Byb3BMaXN0RmlsZUBAUUFFQFBBVkNFbXB0eVByb3BlcnR5TGlzdEBASFBCR0tAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENQcm9wTmFtZUFycmF5OjpDUHJvcE5hbWVBcnJheShjbGFzcyBQRGVTZXJTdHJlYW0gJikNCis/PzBDUHJvcE5hbWVBcnJheUBAUUFFQEFBVlBEZVNlclN0cmVhbUBAQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUHJvcE5hbWVBcnJheTo6Q1Byb3BOYW1lQXJyYXkodW5zaWduZWQgaW50KQ0KKz8/MENQcm9wTmFtZUFycmF5QEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1Byb3BTdG9yZU1hbmFnZXI6OkNQcm9wU3RvcmVNYW5hZ2VyKHVuc2lnbmVkIGxvbmcpDQorPz8wQ1Byb3BTdG9yZU1hbmFnZXJAQFFBRUBLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUHJvcGVydHlSZXN0cmljdGlvbjo6Q1Byb3BlcnR5UmVzdHJpY3Rpb24odW5zaWduZWQgbG9uZyxjbGFzcyBDRnVsbFByb3BTcGVjIGNvbnN0ICYsY2xhc3MgQ1N0b3JhZ2VWYXJpYW50IGNvbnN0ICYpDQorPz8wQ1Byb3BlcnR5UmVzdHJpY3Rpb25AQFFBRUBLQUJWQ0Z1bGxQcm9wU3BlY0BAQUJWQ1N0b3JhZ2VWYXJpYW50QEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjpDUHJvcGVydHlSZXN0cmljdGlvbih2b2lkKQ0KKz8/MENQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUHJvcGVydHlTdG9yZVdpZHM6OkNQcm9wZXJ0eVN0b3JlV2lkcyhjbGFzcyBDUHJvcFN0b3JlTWFuYWdlciAmKQ0KKz8/MENQcm9wZXJ0eVN0b3JlV2lkc0BAUUFFQEFBVkNQcm9wU3RvcmVNYW5hZ2VyQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENQcm9wZXJ0eVZhbHVlUGFyc2VyOjpDUHJvcGVydHlWYWx1ZVBhcnNlcihjbGFzcyBDUXVlcnlTY2FubmVyICYsdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgbG9uZykNCis/PzBDUHJvcGVydHlWYWx1ZVBhcnNlckBAUUFFQEFBVkNRdWVyeVNjYW5uZXJAQEdLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUXVlcnlTY2FubmVyOjpDUXVlcnlTY2FubmVyKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50LHVuc2lnbmVkIGxvbmcsaW50KQ0KKz8/MENRdWVyeVNjYW5uZXJAQFFBRUBQQkdIS0hAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENSYW5nZUtleVJlcG9zaXRvcnk6OkNSYW5nZUtleVJlcG9zaXRvcnkodm9pZCkNCis/PzBDUmFuZ2VLZXlSZXBvc2l0b3J5QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUmFuZ2VSZXN0cmljdGlvbjo6Q1JhbmdlUmVzdHJpY3Rpb24odm9pZCkNCis/PzBDUmFuZ2VSZXN0cmljdGlvbkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1Jjb3ZTdHJtQXBwZW5kVHJhbnM6OkNSY292U3RybUFwcGVuZFRyYW5zKGNsYXNzIFBSY292U3RvcmFnZU9iaiAmKQ0KKz8/MENSY292U3RybUFwcGVuZFRyYW5zQEBRQUVAQUFWUFJjb3ZTdG9yYWdlT2JqQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENSY292U3RybU1EVHJhbnM6OkNSY292U3RybU1EVHJhbnMoY2xhc3MgUFJjb3ZTdG9yYWdlT2JqICYsZW51bSBDUmNvdlN0cm1NRFRyYW5zOjpNRE9wLHVuc2lnbmVkIGxvbmcpDQorPz8wQ1Jjb3ZTdHJtTURUcmFuc0BAUUFFQEFBVlBSY292U3RvcmFnZU9iakBAVzRNRE9wQDBAS0BaDQorOyBwcm90ZWN0ZWQ6IF9fdGhpc2NhbGwgQ1Jjb3ZTdHJtVHJhbnM6OkNSY292U3RybVRyYW5zKGNsYXNzIFBSY292U3RvcmFnZU9iaiAmLGVudW0gUmNvdk9wVHlwZSkNCis/PzBDUmNvdlN0cm1UcmFuc0BASUFFQEFBVlBSY292U3RvcmFnZU9iakBAVzRSY292T3BUeXBlQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENSZWdBY2Nlc3M6OkNSZWdBY2Nlc3ModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MENSZWdBY2Nlc3NAQFFBRUBLUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUmVnQ2hhbmdlRXZlbnQ6OkNSZWdDaGFuZ2VFdmVudCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCkNCis/PzBDUmVnQ2hhbmdlRXZlbnRAQFFBRUBQQkdIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUmVnTm90aWZ5OjpDUmVnTm90aWZ5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorPz8wQ1JlZ05vdGlmeUBAUUFFQFBCR0BaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1JlcXVlc3RDbGllbnQ6OkNSZXF1ZXN0Q2xpZW50KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IElEQlByb3BlcnRpZXMgKikNCis/PzBDUmVxdWVzdENsaWVudEBAUUFFQFBCR1BBVUlEQlByb3BlcnRpZXNAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1JlcXVlc3RRdWV1ZTo6Q1JlcXVlc3RRdWV1ZSh1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxpbnQsdW5zaWduZWQgaW50LHVuc2lnbmVkIGludCxzdHJ1Y3QgX0dVSUQgY29uc3QgJikNCis/PzBDUmVxdWVzdFF1ZXVlQEBRQUVASUlJSElJQUJVX0dVSURAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1Njb3BlUmVzdHJpY3Rpb246OkNTY29wZVJlc3RyaWN0aW9uKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50LGludCkNCis/PzBDU2NvcGVSZXN0cmljdGlvbkBAUUFFQFBCR0hIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU2RpZExvb2t1cFRhYmxlOjpDU2RpZExvb2t1cFRhYmxlKHZvaWQpDQorPz8wQ1NkaWRMb29rdXBUYWJsZUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1NpemVTZXJTdHJlYW06OkNTaXplU2VyU3RyZWFtKHZvaWQpDQorPz8wQ1NpemVTZXJTdHJlYW1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTb3J0OjpDU29ydCh1bnNpZ25lZCBpbnQpDQorPz8wQ1NvcnRAQFFBRUBJQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU29ydFNldDo6Q1NvcnRTZXQodW5zaWduZWQgaW50KQ0KKz8/MENTb3J0U2V0QEBRQUVASUBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1N0YW5kYXJkUHJvcE1hcHBlcjo6Q1N0YW5kYXJkUHJvcE1hcHBlcih2b2lkKQ0KKz8/MENTdGFuZGFyZFByb3BNYXBwZXJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTdmNRdWVyeTo6Q1N2Y1F1ZXJ5KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IElEQlByb3BlcnRpZXMgKikNCis/PzBDU3ZjUXVlcnlAQFFBRUBQQkdQQVVJREJQcm9wZXJ0aWVzQEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTeW5SZXN0cmljdGlvbjo6Q1N5blJlc3RyaWN0aW9uKGNsYXNzIENLZXkgY29uc3QgJix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQpDQorPz8wQ1N5blJlc3RyaWN0aW9uQEBRQUVAQUJWQ0tleUBAS0tLSEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1RpbWVMaW1pdDo6Q1RpbWVMaW1pdCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorPz8wQ1RpbWVMaW1pdEBAUUFFQEtLQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDVHJhbnNhY3Rpb246OkNUcmFuc2FjdGlvbih2b2lkKQ0KKz8/MENUcmFuc2FjdGlvbkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1VuZmlsdGVyZWRSZXN0cmljdGlvbjo6Q1VuZmlsdGVyZWRSZXN0cmljdGlvbih2b2lkKQ0KKz8/MENVbmZpbHRlcmVkUmVzdHJpY3Rpb25AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENWYWx1ZU5vcm1hbGl6ZXI6OkNWYWx1ZU5vcm1hbGl6ZXIoY2xhc3MgUEtleVJlcG9zaXRvcnkgJikNCis/PzBDVmFsdWVOb3JtYWxpemVyQEBRQUVAQUFWUEtleVJlcG9zaXRvcnlAQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1ZpcnR1YWxTdHJpbmc6OkNWaXJ0dWFsU3RyaW5nKHVuc2lnbmVkIGludCkNCis/PzBDVmlydHVhbFN0cmluZ0BAUUFFQElAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXaW4zMlJlZ0FjY2Vzczo6Q1dpbjMyUmVnQWNjZXNzKHN0cnVjdCBIS0VZX18gKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz8/MENXaW4zMlJlZ0FjY2Vzc0BAUUFFQFBBVUhLRVlfX0BAUEJHQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV29yZFJlc3RyaWN0aW9uOjpDV29yZFJlc3RyaWN0aW9uKGNsYXNzIENLZXlCdWYgY29uc3QgJix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQpDQorPz8wQ1dvcmRSZXN0cmljdGlvbkBAUUFFQEFCVkNLZXlCdWZAQEtLS0hAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXb3JrUXVldWU6OkNXb3JrUXVldWUodW5zaWduZWQgaW50LGVudW0gQ1dvcmtRdWV1ZTo6V29ya1F1ZXVlVHlwZSkNCis/PzBDV29ya1F1ZXVlQEBRQUVASVc0V29ya1F1ZXVlVHlwZUAwQEBaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ2lTdG9yYWdlOjpDaVN0b3JhZ2UodW5zaWduZWQgc2hvcnQgY29uc3QgKixzdHJ1Y3QgSUNpQ0FkdmlzZVN0YXR1cyAmLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQpDQorPz8wQ2lTdG9yYWdlQEBRQUVAUEJHQUFVSUNpQ0FkdmlzZVN0YXR1c0BAS0tIQFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBTU3RvcmFnZU9iamVjdDo6U1N0b3JhZ2VPYmplY3QoY2xhc3MgUFN0b3JhZ2VPYmplY3QgKikNCis/PzBTU3RvcmFnZU9iamVjdEBAUUFFQFBBVlBTdG9yYWdlT2JqZWN0QEBAWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFhQdHI8Y2xhc3MgQ0RiQ21kVHJlZU5vZGU+Ojp+WFB0cjxjbGFzcyBDRGJDbWRUcmVlTm9kZT4odm9pZCkNCis/PzE/JFhQdHJAVkNEYkNtZFRyZWVOb2RlQEBAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFhQdHI8Y2xhc3MgQ0RiQ29sdW1uTm9kZT46On5YUHRyPGNsYXNzIENEYkNvbHVtbk5vZGU+KHZvaWQpDQorPz8xPyRYUHRyQFZDRGJDb2x1bW5Ob2RlQEBAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFhQdHI8Y2xhc3MgQ0RiUHJvamVjdExpc3RBbmNob3I+Ojp+WFB0cjxjbGFzcyBDRGJQcm9qZWN0TGlzdEFuY2hvcj4odm9pZCkNCis/PzE/JFhQdHJAVkNEYlByb2plY3RMaXN0QW5jaG9yQEBAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIFhQdHI8Y2xhc3MgQ0RiUHJvamVjdExpc3RFbGVtZW50Pjo6flhQdHI8Y2xhc3MgQ0RiUHJvamVjdExpc3RFbGVtZW50Pih2b2lkKQ0KKz8/MT8kWFB0ckBWQ0RiUHJvamVjdExpc3RFbGVtZW50QEBAQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiBfX3RoaXNjYWxsIENBbGxvY1N0b3JhZ2VWYXJpYW50Ojp+Q0FsbG9jU3RvcmFnZVZhcmlhbnQodm9pZCkNCis/PzFDQWxsb2NTdG9yYWdlVmFyaWFudEBASUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NhdFN0YXRlOjp+Q0NhdFN0YXRlKHZvaWQpDQorPz8xQ0NhdFN0YXRlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ2F0YWxvZ0FkbWluOjp+Q0NhdGFsb2dBZG1pbih2b2lkKQ0KKz8/MUNDYXRhbG9nQWRtaW5AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENDYXRhbG9nRW51bTo6fkNDYXRhbG9nRW51bSh2b2lkKQ0KKz8/MUNDYXRhbG9nRW51bUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NvbHVtbnM6On5DQ29sdW1ucyh2b2lkKQ0KKz8/MUNDb2x1bW5zQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ29udGVudFJlc3RyaWN0aW9uOjp+Q0NvbnRlbnRSZXN0cmljdGlvbih2b2lkKQ0KKz8/MUNDb250ZW50UmVzdHJpY3Rpb25AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENERkE6On5DREZBKHZvaWQpDQorPz8xQ0RGQUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0RiQ21kVHJlZU5vZGU6On5DRGJDbWRUcmVlTm9kZSh2b2lkKQ0KKz8/MUNEYkNtZFRyZWVOb2RlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRGJDb2x1bW5zOjp+Q0RiQ29sdW1ucyh2b2lkKQ0KKz8/MUNEYkNvbHVtbnNAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEYkNvbnRlbnRCYXNlUmVzdHJpY3Rpb246On5DRGJDb250ZW50QmFzZVJlc3RyaWN0aW9uKHZvaWQpDQorPz8xQ0RiQ29udGVudEJhc2VSZXN0cmljdGlvbkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0RiUHJvcDo6fkNEYlByb3Aodm9pZCkNCis/PzFDRGJQcm9wQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRGJQcm9wQmFzZVJlc3RyaWN0aW9uOjp+Q0RiUHJvcEJhc2VSZXN0cmljdGlvbih2b2lkKQ0KKz8/MUNEYlByb3BCYXNlUmVzdHJpY3Rpb25AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEYlByb3BJRFNldDo6fkNEYlByb3BJRFNldCh2b2lkKQ0KKz8/MUNEYlByb3BJRFNldEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0RiUHJvcFNldDo6fkNEYlByb3BTZXQodm9pZCkNCis/PzFDRGJQcm9wU2V0QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRGJRdWVyeVJlc3VsdHM6On5DRGJRdWVyeVJlc3VsdHModm9pZCkNCis/PzFDRGJRdWVyeVJlc3VsdHNAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENEYlNvcnRLZXk6On5DRGJTb3J0S2V5KHZvaWQpDQorPz8xQ0RiU29ydEtleUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0RiU29ydFNldDo6fkNEYlNvcnRTZXQodm9pZCkNCis/PzFDRGJTb3J0U2V0QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRHluU3RyZWFtOjp+Q0R5blN0cmVhbSh2b2lkKQ0KKz8/MUNEeW5TdHJlYW1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENFdmVudEl0ZW06On5DRXZlbnRJdGVtKHZvaWQpDQorPz8xQ0V2ZW50SXRlbUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0V2ZW50TG9nOjp+Q0V2ZW50TG9nKHZvaWQpDQorPz8xQ0V2ZW50TG9nQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDRmlsZU1hcFZpZXc6On5DRmlsZU1hcFZpZXcodm9pZCkNCis/PzFDRmlsZU1hcFZpZXdAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENGaWx0ZXJEYWVtb246On5DRmlsdGVyRGFlbW9uKHZvaWQpDQorPz8xQ0ZpbHRlckRhZW1vbkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0Z1bGxQcm9wU3BlYzo6fkNGdWxsUHJvcFNwZWModm9pZCkNCis/PzFDRnVsbFByb3BTcGVjQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENGd0FzeW5jV29ya0l0ZW06On5DRndBc3luY1dvcmtJdGVtKHZvaWQpDQorPz8xQ0Z3QXN5bmNXb3JrSXRlbUBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0Z3RXZlbnRJdGVtOjp+Q0Z3RXZlbnRJdGVtKHZvaWQpDQorPz8xQ0Z3RXZlbnRJdGVtQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENHZW5lcmljQ2lQcm94eTo6fkNHZW5lcmljQ2lQcm94eSh2b2lkKQ0KKz8/MUNHZW5lcmljQ2lQcm94eUBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0ltcGVyc29uYXRlQ2xpZW50Ojp+Q0ltcGVyc29uYXRlQ2xpZW50KHZvaWQpDQorPz8xQ0ltcGVyc29uYXRlQ2xpZW50QEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDSW1wZXJzb25hdGVTeXN0ZW06On5DSW1wZXJzb25hdGVTeXN0ZW0odm9pZCkNCis/PzFDSW1wZXJzb25hdGVTeXN0ZW1AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENJbXBlcnNvbmF0aW9uVG9rZW5DYWNoZTo6fkNJbXBlcnNvbmF0aW9uVG9rZW5DYWNoZSh2b2lkKQ0KKz8/MUNJbXBlcnNvbmF0aW9uVG9rZW5DYWNoZUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0ludGVybmFsUHJvcGVydHlSZXN0cmljdGlvbjo6fkNJbnRlcm5hbFByb3BlcnR5UmVzdHJpY3Rpb24odm9pZCkNCis/PzFDSW50ZXJuYWxQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDS2V5QXJyYXk6On5DS2V5QXJyYXkodm9pZCkNCis/PzFDS2V5QXJyYXlAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENMYW5nTGlzdDo6fkNMYW5nTGlzdCh2b2lkKQ0KKz8/MUNMYW5nTGlzdEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ01hY2hpbmVBZG1pbjo6fkNNYWNoaW5lQWRtaW4odm9pZCkNCis/PzFDTWFjaGluZUFkbWluQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENNZW1TZXJTdHJlYW06On5DTWVtU2VyU3RyZWFtKHZvaWQpDQorPz8xQ01lbVNlclN0cmVhbUBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ01ldGFEYXRhTWdyOjp+Q01ldGFEYXRhTWdyKHZvaWQpDQorPz8xQ01ldGFEYXRhTWdyQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENNbVN0cmVhbTo6fkNNbVN0cmVhbSh2b2lkKQ0KKz8/MUNNbVN0cmVhbUBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ05hdExhbmd1YWdlUmVzdHJpY3Rpb246On5DTmF0TGFuZ3VhZ2VSZXN0cmljdGlvbih2b2lkKQ0KKz8/MUNOYXRMYW5ndWFnZVJlc3RyaWN0aW9uQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDTm9kZVJlc3RyaWN0aW9uOjp+Q05vZGVSZXN0cmljdGlvbih2b2lkKQ0KKz8/MUNOb2RlUmVzdHJpY3Rpb25AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENOb3RSZXN0cmljdGlvbjo6fkNOb3RSZXN0cmljdGlvbih2b2lkKQ0KKz8/MUNOb3RSZXN0cmljdGlvbkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ09jY1Jlc3RyaWN0aW9uOjp+Q09jY1Jlc3RyaWN0aW9uKHZvaWQpDQorPz8xQ09jY1Jlc3RyaWN0aW9uQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUGFyc2VDb21tYW5kVHJlZTo6fkNQYXJzZUNvbW1hbmRUcmVlKHZvaWQpDQorPz8xQ1BhcnNlQ29tbWFuZFRyZWVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENQZXJmTW9uOjp+Q1BlcmZNb24odm9pZCkNCis/PzFDUGVyZk1vbkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1BocmFzZVJlc3RyaWN0aW9uOjp+Q1BocmFzZVJlc3RyaWN0aW9uKHZvaWQpDQorPz8xQ1BocmFzZVJlc3RyaWN0aW9uQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENQaHlzU3RvcmFnZTo6fkNQaHlzU3RvcmFnZSh2b2lkKQ0KKz8/MUNQaHlzU3RvcmFnZUBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1BpZExvb2t1cFRhYmxlOjp+Q1BpZExvb2t1cFRhYmxlKHZvaWQpDQorPz8xQ1BpZExvb2t1cFRhYmxlQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUGlkUmVtYXBwZXI6On5DUGlkUmVtYXBwZXIodm9pZCkNCis/PzFDUGlkUmVtYXBwZXJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENQcm9jZXNzOjp+Q1Byb2Nlc3Modm9pZCkNCis/PzFDUHJvY2Vzc0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1Byb3BTdG9yZU1hbmFnZXI6On5DUHJvcFN0b3JlTWFuYWdlcih2b2lkKQ0KKz8/MUNQcm9wU3RvcmVNYW5hZ2VyQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENQcm9wZXJ0eUxpc3Q6On5DUHJvcGVydHlMaXN0KHZvaWQpDQorPz8xQ1Byb3BlcnR5TGlzdEBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1Byb3BlcnR5UmVzdHJpY3Rpb246On5DUHJvcGVydHlSZXN0cmljdGlvbih2b2lkKQ0KKz8/MUNQcm9wZXJ0eVJlc3RyaWN0aW9uQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUHJvcGVydHlTdG9yZTo6fkNQcm9wZXJ0eVN0b3JlKHZvaWQpDQorPz8xQ1Byb3BlcnR5U3RvcmVAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENQcm9wZXJ0eVN0b3JlV2lkczo6fkNQcm9wZXJ0eVN0b3JlV2lkcyh2b2lkKQ0KKz8/MUNQcm9wZXJ0eVN0b3JlV2lkc0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1F1ZXJ5VW5rbm93bjo6fkNRdWVyeVVua25vd24odm9pZCkNCis/PzFDUXVlcnlVbmtub3duQEBRQUVAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX3RoaXNjYWxsIENSYW5nZUtleVJlcG9zaXRvcnk6On5DUmFuZ2VLZXlSZXBvc2l0b3J5KHZvaWQpDQorPz8xQ1JhbmdlS2V5UmVwb3NpdG9yeUBAVUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1JhbmdlUmVzdHJpY3Rpb246On5DUmFuZ2VSZXN0cmljdGlvbih2b2lkKQ0KKz8/MUNSYW5nZVJlc3RyaWN0aW9uQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUmVnQ2hhbmdlRXZlbnQ6On5DUmVnQ2hhbmdlRXZlbnQodm9pZCkNCis/PzFDUmVnQ2hhbmdlRXZlbnRAQFFBRUBYWg0KKzsgcHJvdGVjdGVkOiB2aXJ0dWFsIF9fdGhpc2NhbGwgQ1JlZ05vdGlmeTo6fkNSZWdOb3RpZnkodm9pZCkNCis/PzFDUmVnTm90aWZ5QEBNQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDUmVzdHJpY3Rpb246On5DUmVzdHJpY3Rpb24odm9pZCkNCis/PzFDUmVzdHJpY3Rpb25AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTY29wZUFkbWluOjp+Q1Njb3BlQWRtaW4odm9pZCkNCis/PzFDU2NvcGVBZG1pbkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1Njb3BlRW51bTo6fkNTY29wZUVudW0odm9pZCkNCis/PzFDU2NvcGVFbnVtQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU2NvcGVSZXN0cmljdGlvbjo6fkNTY29wZVJlc3RyaWN0aW9uKHZvaWQpDQorPz8xQ1Njb3BlUmVzdHJpY3Rpb25AQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTZGlkTG9va3VwVGFibGU6On5DU2RpZExvb2t1cFRhYmxlKHZvaWQpDQorPz8xQ1NkaWRMb29rdXBUYWJsZUBAUUFFQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX190aGlzY2FsbCBDU2l6ZVNlclN0cmVhbTo6fkNTaXplU2VyU3RyZWFtKHZvaWQpDQorPz8xQ1NpemVTZXJTdHJlYW1AQFVBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTb3J0Ojp+Q1NvcnQodm9pZCkNCis/PzFDU29ydEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1N5blJlc3RyaWN0aW9uOjp+Q1N5blJlc3RyaWN0aW9uKHZvaWQpDQorPz8xQ1N5blJlc3RyaWN0aW9uQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDVmlydHVhbFN0cmluZzo6fkNWaXJ0dWFsU3RyaW5nKHZvaWQpDQorPz8xQ1ZpcnR1YWxTdHJpbmdAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXaW4zMlJlZ0FjY2Vzczo6fkNXaW4zMlJlZ0FjY2Vzcyh2b2lkKQ0KKz8/MUNXaW4zMlJlZ0FjY2Vzc0BAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1dvcmRSZXN0cmljdGlvbjo6fkNXb3JkUmVzdHJpY3Rpb24odm9pZCkNCis/PzFDV29yZFJlc3RyaWN0aW9uQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDV29ya01hbmFnZXI6On5DV29ya01hbmFnZXIodm9pZCkNCis/PzFDV29ya01hbmFnZXJAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENXb3JrUXVldWU6On5DV29ya1F1ZXVlKHZvaWQpDQorPz8xQ1dvcmtRdWV1ZUBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgU1N0b3JhZ2VPYmplY3Q6On5TU3RvcmFnZU9iamVjdCh2b2lkKQ0KKz8/MVNTdG9yYWdlT2JqZWN0QEBRQUVAWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENEYkNtZFRyZWVOb2RlOjpvcGVyYXRvciBkZWxldGUodm9pZCAqKQ0KKz8/M0NEYkNtZFRyZWVOb2RlQEBTR1hQQVhAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ0RiQ29sSWQ6Om9wZXJhdG9yIGRlbGV0ZSh2b2lkICopDQorPz8zQ0RiQ29sSWRAQFNHWFBBWEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDRGJDb250ZW50OjpvcGVyYXRvciBkZWxldGUodm9pZCAqKQ0KKz8/M0NEYkNvbnRlbnRAQFNHWFBBWEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDRGJQYXJhbWV0ZXI6Om9wZXJhdG9yIGRlbGV0ZSh2b2lkICopDQorPz8zQ0RiUGFyYW1ldGVyQEBTR1hQQVhAWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ0RiUHJvcFNldDo6b3BlcmF0b3IgZGVsZXRlKHZvaWQgKikNCis/PzNDRGJQcm9wU2V0QEBTR1hQQVhAWg0KKzsgcHVibGljOiBjbGFzcyBDRGJCeUd1aWQgJiBfX3RoaXNjYWxsIENEYkJ5R3VpZDo6b3BlcmF0b3I9KGNsYXNzIENEYkJ5R3VpZCBjb25zdCAmKQ0KKz8/NENEYkJ5R3VpZEBAUUFFQUFWMEBBQlYwQEBaDQorOyBwdWJsaWM6IGNsYXNzIENEYkNvbElkICYgX190aGlzY2FsbCBDRGJDb2xJZDo6b3BlcmF0b3I9KGNsYXNzIENEYkNvbElkIGNvbnN0ICYpDQorPz80Q0RiQ29sSWRAQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRGJDb2xJZDo6b3BlcmF0b3I9PShjbGFzcyBDRGJDb2xJZCBjb25zdCAmKWNvbnN0IA0KKz8/OENEYkNvbElkQEBRQkVIQUJWMEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1dvcmtNYW5hZ2VyOjpBYm9ydFdvcmtJdGVtcyh2b2lkKQ0KKz9BYm9ydFdvcmtJdGVtc0BDV29ya01hbmFnZXJAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1F1ZXJ5U2Nhbm5lcjo6QWNjZXB0KHZvaWQpDQorP0FjY2VwdEBDUXVlcnlTY2FubmVyQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENRdWVyeVNjYW5uZXI6OkFjY2VwdENvbW1hbmQodm9pZCkNCis/QWNjZXB0Q29tbWFuZEBDUXVlcnlTY2FubmVyQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENRdWVyeVNjYW5uZXI6OkFjY2VwdFdvcmQodm9pZCkNCis/QWNjZXB0V29yZEBDUXVlcnlTY2FubmVyQEBRQUVYWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1NkaWRMb29rdXBUYWJsZTo6QWNjZXNzQ2hlY2sodW5zaWduZWQgbG9uZyx2b2lkICosdW5zaWduZWQgbG9uZyxpbnQgJikNCis/QWNjZXNzQ2hlY2tAQ1NkaWRMb29rdXBUYWJsZUBAUUFFSEtQQVhLQUFIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgKiBfX3RoaXNjYWxsIENRdWVyeVNjYW5uZXI6OkFjcUxpbmUoaW50KQ0KKz9BY3FMaW5lQENRdWVyeVNjYW5uZXJAQFFBRVBBR0hAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ1F1ZXJ5U2Nhbm5lcjo6QWNxUGF0aCh2b2lkKQ0KKz9BY3FQYXRoQENRdWVyeVNjYW5uZXJAQFFBRVBBR1haDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBDUXVlcnlTY2FubmVyOjpBY3FQaHJhc2Uodm9pZCkNCis/QWNxUGhyYXNlQENRdWVyeVNjYW5uZXJAQFFBRVBBR1haDQorOyBwdWJsaWM6IGNsYXNzIENSYW5nZVJlc3RyaWN0aW9uICogX190aGlzY2FsbCBDUmFuZ2VLZXlSZXBvc2l0b3J5OjpBY3FSc3Qodm9pZCkNCis/QWNxUnN0QENSYW5nZUtleVJlcG9zaXRvcnlAQFFBRVBBVkNSYW5nZVJlc3RyaWN0aW9uQEBYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ1F1ZXJ5U2Nhbm5lcjo6QWNxV29yZCh2b2lkKQ0KKz9BY3FXb3JkQENRdWVyeVNjYW5uZXJAQFFBRVBBR1haDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1Byb3BlcnR5U3RvcmU6OkFjcXVpcmVSZWFkKGNsYXNzIENSZWFkV3JpdGVMb2NrUmVjb3JkICYpDQorP0FjcXVpcmVSZWFkQENQcm9wZXJ0eVN0b3JlQEBBQUVYQUFWQ1JlYWRXcml0ZUxvY2tSZWNvcmRAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENEYkNvbHVtbnM6OkFkZChjbGFzcyBDRGJDb2xJZCBjb25zdCAmLHVuc2lnbmVkIGludCkNCis/QWRkQENEYkNvbHVtbnNAQFFBRUhBQlZDRGJDb2xJZEBASUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRGJRdWVyeVJlc3VsdHM6OkFkZCh1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGxvbmcpDQorP0FkZEBDRGJRdWVyeVJlc3VsdHNAQFFBRVhQQUdLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RiU29ydFNldDo6QWRkKGNsYXNzIENEYkNvbElkIGNvbnN0ICYsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBpbnQpDQorP0FkZEBDRGJTb3J0U2V0QEBRQUVIQUJWQ0RiQ29sSWRAQEtJQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RiU29ydFNldDo6QWRkKGNsYXNzIENEYlNvcnRLZXkgY29uc3QgJix1bnNpZ25lZCBpbnQpDQorP0FkZEBDRGJTb3J0U2V0QEBRQUVIQUJWQ0RiU29ydEtleUBASUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENLZXlBcnJheTo6QWRkKGludCxjbGFzcyBDS2V5IGNvbnN0ICYpDQorP0FkZEBDS2V5QXJyYXlAQFFBRUhIQUJWQ0tleUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0tleUFycmF5OjpBZGQoaW50LGNsYXNzIENLZXlCdWYgY29uc3QgJikNCis/QWRkQENLZXlBcnJheUBAUUFFSEhBQlZDS2V5QnVmQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1dvcmtRdWV1ZTo6QWRkKGNsYXNzIFBXb3JrSXRlbSAqKQ0KKz9BZGRAQ1dvcmtRdWV1ZUBAUUFFWFBBVlBXb3JrSXRlbUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENFdmVudEl0ZW06OkFkZEFyZyh1bnNpZ25lZCBsb25nKQ0KKz9BZGRBcmdAQ0V2ZW50SXRlbUBAUUFFWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0V2ZW50SXRlbTo6QWRkQXJnKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0FkZEFyZ0BDRXZlbnRJdGVtQEBRQUVYUEJHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGd0V2ZW50SXRlbTo6QWRkQXJnKHVuc2lnbmVkIGxvbmcpDQorP0FkZEFyZ0BDRndFdmVudEl0ZW1AQFFBRVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGd0V2ZW50SXRlbTo6QWRkQXJnKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0FkZEFyZ0BDRndFdmVudEl0ZW1AQFFBRVhQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NhdGFsb2dBZG1pbjo6QWRkQ2FjaGVkUHJvcGVydHkoY2xhc3MgQ0Z1bGxQcm9wU3BlYyBjb25zdCAmLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCkNCis/QWRkQ2FjaGVkUHJvcGVydHlAQ0NhdGFsb2dBZG1pbkBAUUFFWEFCVkNGdWxsUHJvcFNwZWNAQEtLS0hAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NhdFN0YXRlOjpBZGRDYXRhbG9nKGNsYXNzIFhQdHJTVDx1bnNpZ25lZCBzaG9ydD4gJikNCis/QWRkQ2F0YWxvZ0BDQ2F0U3RhdGVAQFFBRVhBQVY/JFhQdHJTVEBHQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ01hY2hpbmVBZG1pbjo6QWRkQ2F0YWxvZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0FkZENhdGFsb2dAQ01hY2hpbmVBZG1pbkBAUUFFWFBCRzBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ05vZGVSZXN0cmljdGlvbjo6QWRkQ2hpbGQoY2xhc3MgQ1Jlc3RyaWN0aW9uICosdW5zaWduZWQgaW50ICYpDQorP0FkZENoaWxkQENOb2RlUmVzdHJpY3Rpb25AQFFBRVhQQVZDUmVzdHJpY3Rpb25AQEFBSUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ2F0U3RhdGU6OkFkZERpcihjbGFzcyBYUHRyU1Q8dW5zaWduZWQgc2hvcnQ+ICYpDQorP0FkZERpckBDQ2F0U3RhdGVAQFFBRVhBQVY/JFhQdHJTVEBHQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDQ29tYmluZWRQcm9wZXJ0eUxpc3Q6OkFkZEVudHJ5KGNsYXNzIENQcm9wRW50cnkgKixpbnQpDQorP0FkZEVudHJ5QENDb21iaW5lZFByb3BlcnR5TGlzdEBAVUFFWFBBVkNQcm9wRW50cnlAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDUHJvcGVydHlMaXN0OjpBZGRFbnRyeShjbGFzcyBDUHJvcEVudHJ5ICosaW50KQ0KKz9BZGRFbnRyeUBDUHJvcGVydHlMaXN0QEBVQUVYUEFWQ1Byb3BFbnRyeUBASEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRXZlbnRJdGVtOjpBZGRFcnJvcih1bnNpZ25lZCBsb25nKQ0KKz9BZGRFcnJvckBDRXZlbnRJdGVtQEBRQUVYS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3luUmVzdHJpY3Rpb246OkFkZEtleShjbGFzcyBDS2V5QnVmIGNvbnN0ICYpDQorP0FkZEtleUBDU3luUmVzdHJpY3Rpb25AQFFBRVhBQlZDS2V5QnVmQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NhdFN0YXRlOjpBZGRNYWNoaW5lKGNsYXNzIFhQdHJTVDx1bnNpZ25lZCBzaG9ydD4gJikNCis/QWRkTWFjaGluZUBDQ2F0U3RhdGVAQFFBRVhBQVY/JFhQdHJTVEBHQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENEYlByb3BlcnRpZXM6OkFkZFJlZih2b2lkKQ0KKz9BZGRSZWZAQ0RiUHJvcGVydGllc0BAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0VtcHR5UHJvcGVydHlMaXN0OjpBZGRSZWYodm9pZCkNCis/QWRkUmVmQENFbXB0eVByb3BlcnR5TGlzdEBAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0VudW1TdHJpbmc6OkFkZFJlZih2b2lkKQ0KKz9BZGRSZWZAQ0VudW1TdHJpbmdAQFVBR0tYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENFbnVtV29ya2lkOjpBZGRSZWYodm9pZCkNCis/QWRkUmVmQENFbnVtV29ya2lkQEBVQUdLWFoNCis7IHB1YmxpYzogdmlydHVhbCB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBDRndQcm9wZXJ0eU1hcHBlcjo6QWRkUmVmKHZvaWQpDQorP0FkZFJlZkBDRndQcm9wZXJ0eU1hcHBlckBAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ1F1ZXJ5VW5rbm93bjo6QWRkUmVmKHZvaWQpDQorP0FkZFJlZkBDUXVlcnlVbmtub3duQEBVQUdLWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENXb3JrUXVldWU6OkFkZFJlZldvcmtUaHJlYWRzKHZvaWQpDQorP0FkZFJlZldvcmtUaHJlYWRzQENXb3JrUXVldWVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NhdGFsb2dBZG1pbjo6QWRkU2NvcGUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0FkZFNjb3BlQENDYXRhbG9nQWRtaW5AQFFBRVhQQkcwSDAwQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RiU29ydE5vZGU6OkFkZFNvcnRDb2x1bW4oc3RydWN0IHRhZ0RCSUQgY29uc3QgJixpbnQsdW5zaWduZWQgbG9uZykNCis/QWRkU29ydENvbHVtbkBDRGJTb3J0Tm9kZUBAUUFFSEFCVXRhZ0RCSURAQEhLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RiTmVzdGluZ05vZGU6OkFkZFRhYmxlKGNsYXNzIENEYkNtZFRyZWVOb2RlICopDQorP0FkZFRhYmxlQENEYk5lc3RpbmdOb2RlQEBRQUVIUEFWQ0RiQ21kVHJlZU5vZGVAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDV29ya01hbmFnZXI6OkFkZFRvV29ya0xpc3QoY2xhc3MgQ0Z3QXN5bmNXb3JrSXRlbSAqKQ0KKz9BZGRUb1dvcmtMaXN0QENXb3JrTWFuYWdlckBAUUFFWFBBVkNGd0FzeW5jV29ya0l0ZW1AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRndBc3luY1dvcmtJdGVtOjpBZGRUb1dvcmtRdWV1ZSh2b2lkKQ0KKz9BZGRUb1dvcmtRdWV1ZUBDRndBc3luY1dvcmtJdGVtQEBRQUVYWFoNCis7IHB1YmxpYzogc3RhdGljIHVuc2lnbmVkIHNob3J0ICogX19zdGRjYWxsIENEYkNtZFRyZWVOb2RlOjpBbGxvY0FuZENvcHlXU3RyaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0FsbG9jQW5kQ29weVdTdHJpbmdAQ0RiQ21kVHJlZU5vZGVAQFNHUEFHUEJHQFoNCis7IHVuc2lnbmVkIHNob3J0ICogX19zdGRjYWxsIEFsbG9jSGVhcEFuZENvcHkodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nICYpDQorP0FsbG9jSGVhcEFuZENvcHlAQFlHUEFHUEJHQUFLQFoNCis7IHVuc2lnbmVkIHNob3J0ICogX19zdGRjYWxsIEFsbG9jSGVhcEFuZEdldFdTdHJpbmcoY2xhc3MgUERlU2VyU3RyZWFtICYpDQorP0FsbG9jSGVhcEFuZEdldFdTdHJpbmdAQFlHUEFHQUFWUERlU2VyU3RyZWFtQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0VudW1TdHJpbmc6OkFwcGVuZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9BcHBlbmRAQ0VudW1TdHJpbmdAQFFBRVhQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0VudW1Xb3JraWQ6OkFwcGVuZCh1bnNpZ25lZCBsb25nKQ0KKz9BcHBlbmRAQ0VudW1Xb3JraWRAQFFBRVhLQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENEYkNtZFRyZWVOb2RlOjpBcHBlbmRDaGlsZChjbGFzcyBDRGJDbWRUcmVlTm9kZSAqKQ0KKz9BcHBlbmRDaGlsZEBDRGJDbWRUcmVlTm9kZUBASUFFWFBBVjFAQFoNCis7IHByb3RlY3RlZDogaW50IF9fdGhpc2NhbGwgQ0RiTGlzdEFuY2hvcjo6QXBwZW5kTGlzdEVsZW1lbnQodW5zaWduZWQgc2hvcnQsc3RydWN0IHRhZ0RCSUQgY29uc3QgJikNCis/QXBwZW5kTGlzdEVsZW1lbnRAQ0RiTGlzdEFuY2hvckBASUFFSEdBQlV0YWdEQklEQEBAWg0KKzsgcHJvdGVjdGVkOiBpbnQgX190aGlzY2FsbCBDRGJMaXN0QW5jaG9yOjpBcHBlbmRMaXN0RWxlbWVudChjbGFzcyBDRGJDbWRUcmVlTm9kZSAqKQ0KKz9BcHBlbmRMaXN0RWxlbWVudEBDRGJMaXN0QW5jaG9yQEBJQUVIUEFWQ0RiQ21kVHJlZU5vZGVAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENEYlByb2plY3RMaXN0QW5jaG9yOjpBcHBlbmRMaXN0RWxlbWVudChzdHJ1Y3QgdGFnREJJRCBjb25zdCAmLHVuc2lnbmVkIHNob3J0ICopDQorP0FwcGVuZExpc3RFbGVtZW50QENEYlByb2plY3RMaXN0QW5jaG9yQEBRQUVIQUJVdGFnREJJREBAUEFHQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENQcm9wU3RvcmVNYW5hZ2VyOjpCZWdpblRyYW5zYWN0aW9uKHZvaWQpDQorP0JlZ2luVHJhbnNhY3Rpb25AQ1Byb3BTdG9yZU1hbmFnZXJAQFFBRUtYWg0KKzsgcHVibGljOiBzdGF0aWMgbG9uZyBfX3N0ZGNhbGwgQ0NpT2xlOjpCaW5kSUZpbHRlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHN0cnVjdCBJVW5rbm93biAqLHN0cnVjdCBJRmlsdGVyICogKixpbnQpDQorP0JpbmRJRmlsdGVyQENDaU9sZUBAU0dKUEJHUEFVSVVua25vd25AQFBBUEFVSUZpbHRlckBASEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgKiBfX3RoaXNjYWxsIENQaHlzU3RvcmFnZTo6Qm9ycm93QnVmZmVyKHVuc2lnbmVkIGxvbmcsaW50LGludCkNCis/Qm9ycm93QnVmZmVyQENQaHlzU3RvcmFnZUBAUUFFUEFLS0hIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyAqIF9fdGhpc2NhbGwgQ1BoeXNTdG9yYWdlOjpCb3Jyb3dOZXdCdWZmZXIodW5zaWduZWQgbG9uZykNCis/Qm9ycm93TmV3QnVmZmVyQENQaHlzU3RvcmFnZUBAUUFFUEFLS0BaDQorOyB2b2lkIF9fc3RkY2FsbCBCdWlsZFJlZ2lzdHJ5UHJvcGVydGllc0tleShjbGFzcyBYQXJyYXk8dW5zaWduZWQgc2hvcnQ+ICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/QnVpbGRSZWdpc3RyeVByb3BlcnRpZXNLZXlAQFlHWEFBVj8kWEFycmF5QEdAQFBCR0BaDQorOyB2b2lkIF9fc3RkY2FsbCBCdWlsZFJlZ2lzdHJ5U2NvcGVzS2V5KGNsYXNzIFhBcnJheTx1bnNpZ25lZCBzaG9ydD4gJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9CdWlsZFJlZ2lzdHJ5U2NvcGVzS2V5QEBZR1hBQVY/JFhBcnJheUBHQEBQQkdAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgQ0lTaHV0ZG93bih2b2lkKQ0KKz9DSVNodXRkb3duQEBZR1hYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NhdFN0YXRlOjpDaGFuZ2VDdXJyZW50Q2F0YWxvZyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9DaGFuZ2VDdXJyZW50Q2F0YWxvZ0BDQ2F0U3RhdGVAQFFBRVhQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NhdFN0YXRlOjpDaGFuZ2VDdXJyZW50RGVwdGgoaW50KQ0KKz9DaGFuZ2VDdXJyZW50RGVwdGhAQ0NhdFN0YXRlQEBRQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ2F0U3RhdGU6OkNoYW5nZUN1cnJlbnRNYWNoaW5lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NoYW5nZUN1cnJlbnRNYWNoaW5lQENDYXRTdGF0ZUBAUUFFWFBCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ2F0U3RhdGU6OkNoYW5nZUN1cnJlbnRTY29wZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9DaGFuZ2VDdXJyZW50U2NvcGVAQ0NhdFN0YXRlQEBRQUVYUEJHQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDUHJvcFN0b3JlSW5mbzo6Q2hhbmdlRGlydHkoaW50KQ0KKz9DaGFuZ2VEaXJ0eUBDUHJvcFN0b3JlSW5mb0BAQUFFWEhAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0xvY2FsR2xvYmFsUHJvcGVydHlMaXN0OjpDaGVja0Vycm9yKHVuc2lnbmVkIGxvbmcgJix1bnNpZ25lZCBzaG9ydCAqICopDQorP0NoZWNrRXJyb3JAQ0xvY2FsR2xvYmFsUHJvcGVydHlMaXN0QEBRQUVKQUFLUEFQQUdAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1Byb3BMaXN0RmlsZTo6Q2hlY2tFcnJvcih1bnNpZ25lZCBsb25nICYsdW5zaWduZWQgc2hvcnQgKiAqKQ0KKz9DaGVja0Vycm9yQENQcm9wTGlzdEZpbGVAQFFBRUpBQUtQQVBBR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENpU3RvcmFnZTo6Q2hlY2tIYXNJbmRleFRhYmxlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NoZWNrSGFzSW5kZXhUYWJsZUBDaVN0b3JhZ2VAQFNHSFBCR0BaDQorQ2lDcmVhdGVTZWN1cml0eURlc2NyaXB0b3INCis7IGludCBfX3N0ZGNhbGwgQ2lHZXRQYXNzd29yZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgKikNCis/Q2lHZXRQYXNzd29yZEBAWUdIUEJHMFBBR0BaDQorOyB2b2lkICogX19zdGRjYWxsIENpTnRPcGVuKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0NpTnRPcGVuQEBZR1BBWFBCR0tLS0BaDQorOyBsb25nIF9fc3RkY2FsbCBDaU50T3Blbk5vVGhyb3codm9pZCAqICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/Q2lOdE9wZW5Ob1Rocm93QEBZR0pBQVBBWFBCR0tLS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRGJDb2xJZDo6Q2xlYW51cCh2b2lkKQ0KKz9DbGVhbnVwQENEYkNvbElkQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENEYlByb3A6OkNsZWFudXAodm9pZCkNCis/Q2xlYW51cEBDRGJQcm9wQEBRQUVYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENEYkNtZFRyZWVOb2RlOjpDbGVhbnVwRGF0YVZhbHVlKHZvaWQpDQorP0NsZWFudXBEYXRhVmFsdWVAQ0RiQ21kVHJlZU5vZGVAQElBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NvbWJpbmVkUHJvcGVydHlMaXN0OjpDbGVhckxpc3Qodm9pZCkNCis/Q2xlYXJMaXN0QENDb21iaW5lZFByb3BlcnR5TGlzdEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUHJvcGVydHlMaXN0OjpDbGVhckxpc3Qodm9pZCkNCis/Q2xlYXJMaXN0QENQcm9wZXJ0eUxpc3RAQFFBRVhYWg0KKzsgcHVibGljOiBjbGFzcyBDRGJDbWRUcmVlTm9kZSAqIF9fdGhpc2NhbGwgQ0RiQ21kVHJlZU5vZGU6OkNsb25lKGludCljb25zdCANCis/Q2xvbmVAQ0RiQ21kVHJlZU5vZGVAQFFCRVBBVjFASEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ0VudW1TdHJpbmc6OkNsb25lKHN0cnVjdCBJRW51bVN0cmluZyAqICopDQorP0Nsb25lQENFbnVtU3RyaW5nQEBVQUdKUEFQQVVJRW51bVN0cmluZ0BAQFoNCis7IHB1YmxpYzogY2xhc3MgQ05vZGVSZXN0cmljdGlvbiAqIF9fdGhpc2NhbGwgQ05vZGVSZXN0cmljdGlvbjo6Q2xvbmUodm9pZCljb25zdCANCis/Q2xvbmVAQ05vZGVSZXN0cmljdGlvbkBAUUJFUEFWMUBYWg0KKzsgcHVibGljOiBjbGFzcyBDT2NjUmVzdHJpY3Rpb24gKiBfX3RoaXNjYWxsIENPY2NSZXN0cmljdGlvbjo6Q2xvbmUodm9pZCljb25zdCANCis/Q2xvbmVAQ09jY1Jlc3RyaWN0aW9uQEBRQkVQQVYxQFhaDQorOyBwdWJsaWM6IGNsYXNzIENSZXN0cmljdGlvbiAqIF9fdGhpc2NhbGwgQ1Jlc3RyaWN0aW9uOjpDbG9uZSh2b2lkKWNvbnN0IA0KKz9DbG9uZUBDUmVzdHJpY3Rpb25AQFFCRVBBVjFAWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENQaHlzU3RvcmFnZTo6Q2xvc2Uodm9pZCkNCis/Q2xvc2VAQ1BoeXNTdG9yYWdlQEBRQUVYWFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENQaXBlQ2xpZW50OjpDbG9zZSh2b2lkKQ0KKz9DbG9zZUBDUGlwZUNsaWVudEBASUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDT0xFUHJvcE1hbmFnZXI6OkNQcm9wU2V0TWFwOjpDbG9zZSh2b2lkKQ0KKz9DbG9zZUBDUHJvcFNldE1hcEBDT0xFUHJvcE1hbmFnZXJAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Byb3BTdG9yZU1hbmFnZXI6OkNsb3NlUmVjb3JkKGNsYXNzIENDb21wb3NpdGVQcm9wUmVjb3JkICopDQorP0Nsb3NlUmVjb3JkQENQcm9wU3RvcmVNYW5hZ2VyQEBRQUVYUEFWQ0NvbXBvc2l0ZVByb3BSZWNvcmRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUHJvcFN0b3JlTWFuYWdlcjo6Q2xvc2VSZWNvcmQoY2xhc3MgQ0NvbXBvc2l0ZVByb3BSZWNvcmRGb3JXcml0ZXMgKikNCis/Q2xvc2VSZWNvcmRAQ1Byb3BTdG9yZU1hbmFnZXJAQFFBRVhQQVZDQ29tcG9zaXRlUHJvcFJlY29yZEZvcldyaXRlc0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSY292U3RybUFwcGVuZFRyYW5zOjpDb21taXQodm9pZCkNCis/Q29tbWl0QENSY292U3RybUFwcGVuZFRyYW5zQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSY292U3RybU1EVHJhbnM6OkNvbW1pdCh2b2lkKQ0KKz9Db21taXRAQ1Jjb3ZTdHJtTURUcmFuc0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmNvdlN0cm1Xcml0ZVRyYW5zOjpDb21taXQodm9pZCkNCis/Q29tbWl0QENSY292U3RybVdyaXRlVHJhbnNAQFFBRVhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDRHJpdmVJbmZvOjpDb250YWluc0RyaXZlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0NvbnRhaW5zRHJpdmVAQ0RyaXZlSW5mb0BAU0dIUEJHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RiUGFyYW1ldGVyOjpDb3B5KHN0cnVjdCB0YWdEQlBBUkFNRVRFUiBjb25zdCAmKQ0KKz9Db3B5QENEYlBhcmFtZXRlckBAUUFFSEFCVXRhZ0RCUEFSQU1FVEVSQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRGJQcm9wOjpDb3B5KHN0cnVjdCB0YWdEQlBST1AgY29uc3QgJikNCis/Q29weUBDRGJQcm9wQEBRQUVIQUJVdGFnREJQUk9QQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRGJQcm9wU2V0OjpDb3B5KHN0cnVjdCB0YWdEQlBST1BTRVQgY29uc3QgJikNCis/Q29weUBDRGJQcm9wU2V0QEBRQUVIQUJVdGFnREJQUk9QU0VUQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ01hY2hpbmVBZG1pbjo6Q3JlYXRlU3ViZGlycyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9DcmVhdGVTdWJkaXJzQENNYWNoaW5lQWRtaW5AQFFBRVhQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JlcXVlc3RDbGllbnQ6OkRhdGFXcml0ZVJlYWQodm9pZCAqLHVuc2lnbmVkIGxvbmcsdm9pZCAqLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAmKQ0KKz9EYXRhV3JpdGVSZWFkQENSZXF1ZXN0Q2xpZW50QEBRQUVYUEFYSzBLQUFLQFoNCis7IHZvaWQgX19zdGRjYWxsIERlY29kZUVzY2FwZXModW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBsb25nICYsdW5zaWduZWQgc2hvcnQgKikNCis/RGVjb2RlRXNjYXBlc0BAWUdYUEFHQUFLMEBaDQorOyB2b2lkIF9fc3RkY2FsbCBEZWNvZGVIdG1sTnVtZXJpYyh1bnNpZ25lZCBzaG9ydCAqKQ0KKz9EZWNvZGVIdG1sTnVtZXJpY0BAWUdYUEFHQFoNCis7IHZvaWQgX19zdGRjYWxsIERlY29kZVVSTEVzY2FwZXModW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcgJix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGxvbmcpDQorP0RlY29kZVVSTEVzY2FwZXNAQFlHWFBBRUFBS1BBR0tAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Byb3BTdG9yZU1hbmFnZXI6OkRlbGV0ZVJlY29yZCh1bnNpZ25lZCBsb25nKQ0KKz9EZWxldGVSZWNvcmRAQ1Byb3BTdG9yZU1hbmFnZXJAQFFBRVhLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDYXRhbG9nQWRtaW46OkRlbGV0ZVJlZ2lzdHJ5UGFyYW1Ob1Rocm93KHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0RlbGV0ZVJlZ2lzdHJ5UGFyYW1Ob1Rocm93QENDYXRhbG9nQWRtaW5AQFFBRVhQQkdAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fc3RkY2FsbCBDaVN0b3JhZ2U6OkRldGVybWluZURyaXZlVHlwZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9EZXRlcm1pbmVEcml2ZVR5cGVAQ2lTdG9yYWdlQEBTR0lQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDTWFjaGluZUFkbWluOjpEaXNhYmxlQ0kodm9pZCkNCis/RGlzYWJsZUNJQENNYWNoaW5lQWRtaW5AQFFBRUhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JlZ05vdGlmeTo6RGlzYWJsZU5vdGlmaWNhdGlvbih2b2lkKQ0KKz9EaXNhYmxlTm90aWZpY2F0aW9uQENSZWdOb3RpZnlAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ01ldGFEYXRhTWdyOjpEaXNhYmxlVlBhdGhOb3RpZnkodm9pZCkNCis/RGlzYWJsZVZQYXRoTm90aWZ5QENNZXRhRGF0YU1nckBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVxdWVzdENsaWVudDo6RGlzY29ubmVjdCh2b2lkKQ0KKz9EaXNjb25uZWN0QENSZXF1ZXN0Q2xpZW50QEBRQUVYWFoNCis7IHZvaWQgX19zdGRjYWxsIERvRmFpbFRlc3QobG9uZykNCis/RG9GYWlsVGVzdEBAWUdYSkBaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDQ29weVJjb3ZPYmplY3Q6OkRvSXQodm9pZCkNCis/RG9JdEBDQ29weVJjb3ZPYmplY3RAQFFBRUpYWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0ZpbHRlckRhZW1vbjo6RG9VcGRhdGVzKHZvaWQpDQorP0RvVXBkYXRlc0BDRmlsdGVyRGFlbW9uQEBRQUVKWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGd0FzeW5jV29ya0l0ZW06OkRvbmUodm9pZCkNCis/RG9uZUBDRndBc3luY1dvcmtJdGVtQEBRQUVYWFoNCis7IGxvbmcgX19zdGRjYWxsIER1bXBXb3JrSWQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgKix1bnNpZ25lZCBsb25nICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP0R1bXBXb3JrSWRAQFlHSlBCR0tQQUVBQUswMEtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1BpZExvb2t1cFRhYmxlOjpFbXB0eSh2b2lkKQ0KKz9FbXB0eUBDUGlkTG9va3VwVGFibGVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Byb3BTdG9yZU1hbmFnZXI6OkVtcHR5KHZvaWQpDQorP0VtcHR5QENQcm9wU3RvcmVNYW5hZ2VyQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSY292U3RybVdyaXRlVHJhbnM6OkVtcHR5KHZvaWQpDQorP0VtcHR5QENSY292U3RybVdyaXRlVHJhbnNAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NkaWRMb29rdXBUYWJsZTo6RW1wdHkodm9pZCkNCis/RW1wdHlAQ1NkaWRMb29rdXBUYWJsZUBAUUFFWFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENNYWNoaW5lQWRtaW46OkVuYWJsZUNJKHZvaWQpDQorP0VuYWJsZUNJQENNYWNoaW5lQWRtaW5AQFFBRUhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ01ldGFEYXRhTWdyOjpFbmFibGVWUGF0aE5vdGlmeShjbGFzcyBDTWV0YURhdGFWUGF0aENoYW5nZUNhbGxCYWNrICopDQorP0VuYWJsZVZQYXRoTm90aWZ5QENNZXRhRGF0YU1nckBAUUFFWFBBVkNNZXRhRGF0YVZQYXRoQ2hhbmdlQ2FsbEJhY2tAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUHJvcFN0b3JlTWFuYWdlcjo6RW5kVHJhbnNhY3Rpb24odW5zaWduZWQgbG9uZyxpbnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9FbmRUcmFuc2FjdGlvbkBDUHJvcFN0b3JlTWFuYWdlckBAUUFFWEtIS0tAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDV2luMzJSZWdBY2Nlc3M6OkVudW0odW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBsb25nKQ0KKz9FbnVtQENXaW4zMlJlZ0FjY2Vzc0BAUUFFSFBBR0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENFbXB0eVByb3BlcnR5TGlzdDo6RW51bVByb3BJbmZvKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgY29uc3QgKiAqLHN0cnVjdCB0YWdEQklEICogKix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGludCAqKQ0KKz9FbnVtUHJvcEluZm9AQ0VtcHR5UHJvcGVydHlMaXN0QEBVQUdKS1BBUEJHUEFQQVV0YWdEQklEQEBQQUdQQUlAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ01ldGFEYXRhTWdyOjpFbnVtVlBhdGhzKGNsYXNzIENNZXRhRGF0YUNhbGxCYWNrICYpDQorP0VudW1WUGF0aHNAQ01ldGFEYXRhTWdyQEBRQUVYQUFWQ01ldGFEYXRhQ2FsbEJhY2tAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTWV0YURhdGFNZ3I6OkVudW1WU2VydmVycyhjbGFzcyBDTWV0YURhdGFWaXJ0dWFsU2VydmVyQ2FsbEJhY2sgJikNCis/RW51bVZTZXJ2ZXJzQENNZXRhRGF0YU1nckBAUUFFWEFBVkNNZXRhRGF0YVZpcnR1YWxTZXJ2ZXJDYWxsQmFja0BAQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENpU3RvcmFnZTo6RW51bWVyYXRlRmlsZXNJbkRpcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENFbnVtU3RyaW5nICYpDQorP0VudW1lcmF0ZUZpbGVzSW5EaXJAQ2lTdG9yYWdlQEBTR1hQQkdBQVZDRW51bVN0cmluZ0BAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1BpZExvb2t1cFRhYmxlOjpFbnVtZXJhdGVQcm9wZXJ0eShjbGFzcyBDRnVsbFByb3BTcGVjICYsdW5zaWduZWQgaW50ICYpDQorP0VudW1lcmF0ZVByb3BlcnR5QENQaWRMb29rdXBUYWJsZUBAUUFFSEFBVkNGdWxsUHJvcFNwZWNAQEFBSUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVnQWNjZXNzOjpFbnVtZXJhdGVWYWx1ZXModW5zaWduZWQgc2hvcnQgKixjbGFzcyBDUmVnQ2FsbEJhY2sgJikNCis/RW51bWVyYXRlVmFsdWVzQENSZWdBY2Nlc3NAQFFBRVhQQUdBQVZDUmVnQ2FsbEJhY2tAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENNbVN0cmVhbUNvbnNlY0J1Zjo6RW9mKHZvaWQpDQorP0VvZkBDTW1TdHJlYW1Db25zZWNCdWZAQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDTWV0YURhdGFNZ3I6OkV4dGVuc2lvbkhhc1NjcmlwdE1hcCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9FeHRlbnNpb25IYXNTY3JpcHRNYXBAQ01ldGFEYXRhTWdyQEBRQUVIUEJHQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1BpZENvbnZlcnRlcjo6RlBTVG9QUk9QSUQoY2xhc3MgQ0Z1bGxQcm9wU3BlYyBjb25zdCAmLHVuc2lnbmVkIGxvbmcgJikNCis/RlBTVG9QUk9QSURAQ1BpZENvbnZlcnRlckBAVUFFSkFCVkNGdWxsUHJvcFNwZWNAQEFBS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUHJvcFN0b3JlTWFuYWdlcjo6RmFzdEluaXQoY2xhc3MgQ2lTdG9yYWdlICopDQorP0Zhc3RJbml0QENQcm9wU3RvcmVNYW5hZ2VyQEBRQUVYUEFWQ2lTdG9yYWdlQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ09MRVByb3BNYW5hZ2VyOjpGZXRjaFByb3BlcnR5KHN0cnVjdCBfR1VJRCBjb25zdCAmLHN0cnVjdCB0YWdQUk9QU1BFQyBjb25zdCAmLHN0cnVjdCB0YWdQUk9QVkFSSUFOVCAqLHVuc2lnbmVkIGludCAqKQ0KKz9GZXRjaFByb3BlcnR5QENPTEVQcm9wTWFuYWdlckBAUUFFWEFCVV9HVUlEQEBBQlV0YWdQUk9QU1BFQ0BAUEFVdGFnUFJPUFZBUklBTlRAQFBBSUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENLZXlBcnJheTo6RmlsbE1heChpbnQpDQorP0ZpbGxNYXhAQ0tleUFycmF5QEBRQUVISEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgQ1Byb3BFbnRyeSBjb25zdCAqIF9fdGhpc2NhbGwgQ0NvbWJpbmVkUHJvcGVydHlMaXN0OjpGaW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0ZpbmRAQ0NvbWJpbmVkUHJvcGVydHlMaXN0QEBVQUVQQlZDUHJvcEVudHJ5QEBQQkdAWg0KKzsgcHVibGljOiBjbGFzcyBDUHJvcEVudHJ5IGNvbnN0ICogX190aGlzY2FsbCBDRW1wdHlQcm9wZXJ0eUxpc3Q6OkZpbmQoY2xhc3MgQ0RiQ29sSWQgY29uc3QgJikNCis/RmluZEBDRW1wdHlQcm9wZXJ0eUxpc3RAQFFBRVBCVkNQcm9wRW50cnlAQEFCVkNEYkNvbElkQEBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIENQcm9wRW50cnkgY29uc3QgKiBfX3RoaXNjYWxsIENQcm9wZXJ0eUxpc3Q6OkZpbmQoY2xhc3MgQ0RiQ29sSWQgY29uc3QgJikNCis/RmluZEBDUHJvcGVydHlMaXN0QEBVQUVQQlZDUHJvcEVudHJ5QEBBQlZDRGJDb2xJZEBAQFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBDUHJvcEVudHJ5IGNvbnN0ICogX190aGlzY2FsbCBDUHJvcGVydHlMaXN0OjpGaW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0ZpbmRAQ1Byb3BlcnR5TGlzdEBAVUFFUEJWQ1Byb3BFbnRyeUBAUEJHQFoNCis7IHB1YmxpYzogdmlydHVhbCBjbGFzcyBDUHJvcEVudHJ5IGNvbnN0ICogX190aGlzY2FsbCBDU3RhdGljUHJvcGVydHlMaXN0OjpGaW5kKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0ZpbmRAQ1N0YXRpY1Byb3BlcnR5TGlzdEBAVUFFUEJWQ1Byb3BFbnRyeUBAUEJHQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1BpZExvb2t1cFRhYmxlOjpGaW5kUHJvcGlkKGNsYXNzIENGdWxsUHJvcFNwZWMgY29uc3QgJix1bnNpZ25lZCBsb25nICYsaW50KQ0KKz9GaW5kUHJvcGlkQENQaWRMb29rdXBUYWJsZUBAUUFFSEFCVkNGdWxsUHJvcFNwZWNAQEFBS0hAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0R5blN0cmVhbTo6Rmx1c2godm9pZCkNCis/Rmx1c2hAQ0R5blN0cmVhbUBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUGh5c1N0b3JhZ2U6OkZsdXNoKGludCkNCis/Rmx1c2hAQ1BoeXNTdG9yYWdlQEBRQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUHJvcFN0b3JlTWFuYWdlcjo6Rmx1c2godm9pZCkNCis/Rmx1c2hAQ1Byb3BTdG9yZU1hbmFnZXJAQFFBRVhYWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ0NpT2xlOjpGbHVzaElkbGUodm9pZCkNCis/Rmx1c2hJZGxlQENDaU9sZUBAU0dYWFoNCis7IHB1YmxpYzogc3RydWN0IHRhZ0RCQ09NTUFORFRSRUUgKiBfX3RoaXNjYWxsIENUZXh0VG9UcmVlOjpGb3JtRnVsbFRyZWUodm9pZCkNCis/Rm9ybUZ1bGxUcmVlQENUZXh0VG9UcmVlQEBRQUVQQVV0YWdEQkNPTU1BTkRUUkVFQEBYWg0KKzsgY2xhc3MgQ0RiQ21kVHJlZU5vZGUgKiBfX3N0ZGNhbGwgRm9ybVF1ZXJ5VHJlZShjbGFzcyBDRGJDbWRUcmVlTm9kZSAmLGNsYXNzIENDYXRTdGF0ZSAmLHN0cnVjdCBJQ29sdW1uTWFwcGVyICosaW50LGludCkNCis/Rm9ybVF1ZXJ5VHJlZUBAWUdQQVZDRGJDbWRUcmVlTm9kZUBAQUFWMUBBQVZDQ2F0U3RhdGVAQFBBVUlDb2x1bW5NYXBwZXJAQEhIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENSZWdBY2Nlc3M6OkdldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9HZXRAQ1JlZ0FjY2Vzc0BAUUFFS1BCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVnQWNjZXNzOjpHZXQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGludCkNCis/R2V0QENSZWdBY2Nlc3NAQFFBRVhQQkdQQUdJQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1dpbjMyUmVnQWNjZXNzOjpHZXQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nICYpDQorP0dldEBDV2luMzJSZWdBY2Nlc3NAQFFBRUhQQkdBQUtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDV2luMzJSZWdBY2Nlc3M6OkdldCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgaW50LGludCkNCis/R2V0QENXaW4zMlJlZ0FjY2Vzc0BAUUFFSFBCR1BBR0lIQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fdGhpc2NhbGwgQ1Byb3BlcnR5TGlzdDo6R2V0QWxsRW50cmllcyhjbGFzcyBDUHJvcEVudHJ5ICogKix1bnNpZ25lZCBsb25nKQ0KKz9HZXRBbGxFbnRyaWVzQENQcm9wZXJ0eUxpc3RAQFVBRUpQQVBBVkNQcm9wRW50cnlAQEtAWg0KKzsgcHVibGljOiBzaG9ydCBfX3RoaXNjYWxsIENBbGxvY1N0b3JhZ2VWYXJpYW50OjpHZXRCT09MKHVuc2lnbmVkIGludCljb25zdCANCis/R2V0Qk9PTEBDQWxsb2NTdG9yYWdlVmFyaWFudEBAUUJFRklAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1Byb3BTdG9yZU1hbmFnZXI6OkdldEJhY2t1cFNpemUodW5zaWduZWQgbG9uZykNCis/R2V0QmFja3VwU2l6ZUBDUHJvcFN0b3JlTWFuYWdlckBAUUFFS0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDTWVtRGVTZXJTdHJlYW06OkdldEJsb2IodW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcpDQorP0dldEJsb2JAQ01lbURlU2VyU3RyZWFtQEBVQUVYUEFFS0BaDQorOyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBHZXRCcm93c2VyQ29kZXBhZ2UoY2xhc3MgQ1dlYlNlcnZlciAmLHVuc2lnbmVkIGxvbmcpDQorP0dldEJyb3dzZXJDb2RlcGFnZUBAWUdLQUFWQ1dlYlNlcnZlckBAS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgY2hhciBfX3RoaXNjYWxsIENNZW1EZVNlclN0cmVhbTo6R2V0Qnl0ZSh2b2lkKQ0KKz9HZXRCeXRlQENNZW1EZVNlclN0cmVhbUBAVUFFRVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBDQ2F0U3RhdGU6OkdldENEKHZvaWQpDQorP0dldENEQENDYXRTdGF0ZUBAUUFFUEJHWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1dlYlNlcnZlcjo6R2V0Q0dJVmFyaWFibGUoY2hhciBjb25zdCAqLGNsYXNzIFhBcnJheTx1bnNpZ25lZCBzaG9ydD4gJix1bnNpZ25lZCBsb25nICYpDQorP0dldENHSVZhcmlhYmxlQENXZWJTZXJ2ZXJAQFFBRUhQQkRBQVY/JFhBcnJheUBHQEBBQUtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDV2ViU2VydmVyOjpHZXRDR0lWYXJpYWJsZVcodW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBYQXJyYXk8dW5zaWduZWQgc2hvcnQ+ICYsdW5zaWduZWQgbG9uZyAmKQ0KKz9HZXRDR0lWYXJpYWJsZVdAQ1dlYlNlcnZlckBAUUFFSFBCR0FBVj8kWEFycmF5QEdAQEFBS0BaDQorOyBwdWJsaWM6IHN0cnVjdCBfR1VJRCAgX190aGlzY2FsbCBDQWxsb2NTdG9yYWdlVmFyaWFudDo6R2V0Q0xTSUQodW5zaWduZWQgaW50KWNvbnN0IA0KKz9HZXRDTFNJREBDQWxsb2NTdG9yYWdlVmFyaWFudEBAUUJFP0FVX0dVSURAQElAWg0KKzsgcHVibGljOiB1bmlvbiB0YWdDWSAgX190aGlzY2FsbCBDQWxsb2NTdG9yYWdlVmFyaWFudDo6R2V0Q1kodW5zaWduZWQgaW50KWNvbnN0IA0KKz9HZXRDWUBDQWxsb2NTdG9yYWdlVmFyaWFudEBAUUJFP0FUdGFnQ1lAQElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fdGhpc2NhbGwgQ0NhdFN0YXRlOjpHZXRDYXRlZ29yeSh1bnNpZ25lZCBpbnQpY29uc3QgDQorP0dldENhdGVnb3J5QENDYXRTdGF0ZUBAUUJFUEJHSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENNZW1EZVNlclN0cmVhbTo6R2V0Q2hhcihjaGFyICosdW5zaWduZWQgbG9uZykNCis/R2V0Q2hhckBDTWVtRGVTZXJTdHJlYW1AQFVBRVhQQURLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIENDYXRTdGF0ZTo6R2V0Q29sdW1uKHVuc2lnbmVkIGludCljb25zdCANCis/R2V0Q29sdW1uQENDYXRTdGF0ZUBAUUJFUEJHSUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IF9fdGhpc2NhbGwgQ1F1ZXJ5U2Nhbm5lcjo6R2V0Q29tbWFuZENoYXIodm9pZCkNCis/R2V0Q29tbWFuZENoYXJAQ1F1ZXJ5U2Nhbm5lckBAUUFFR1haDQorOyBwdWJsaWM6IGRvdWJsZSBfX3RoaXNjYWxsIENBbGxvY1N0b3JhZ2VWYXJpYW50OjpHZXREQVRFKHVuc2lnbmVkIGludCljb25zdCANCis/R2V0REFURUBDQWxsb2NTdG9yYWdlVmFyaWFudEBAUUJFTklAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2F0YWxvZ0FkbWluOjpHZXREV09SRFBhcmFtKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyAmKQ0KKz9HZXREV09SRFBhcmFtQENDYXRhbG9nQWRtaW5AQFFBRUhQQkdBQUtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDTWFjaGluZUFkbWluOjpHZXREV09SRFBhcmFtKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyAmKQ0KKz9HZXREV09SRFBhcmFtQENNYWNoaW5lQWRtaW5AQFFBRUhQQkdBQUtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0RyaXZlSW5mbzo6R2V0RGlza1NwYWNlKF9faW50NjQgJixfX2ludDY0ICYpDQorP0dldERpc2tTcGFjZUBDRHJpdmVJbmZvQEBRQUVYQUFfSjBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGRvdWJsZSBfX3RoaXNjYWxsIENNZW1EZVNlclN0cmVhbTo6R2V0RG91YmxlKHZvaWQpDQorP0dldERvdWJsZUBDTWVtRGVTZXJTdHJlYW1AQFVBRU5YWg0KKzsgcHVibGljOiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgQ0RyaXZlSW5mbzo6R2V0RHJpdmUodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCAqKQ0KKz9HZXREcml2ZUBDRHJpdmVJbmZvQEBTR1hQQkdQQUdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyICogX190aGlzY2FsbCBDR2VuZXJpY0NpUHJveHk6OkdldEVudHJ5QnVmZmVyKHVuc2lnbmVkIGxvbmcgJikNCis/R2V0RW50cnlCdWZmZXJAQ0dlbmVyaWNDaVByb3h5QEBRQUVQQUVBQUtAWg0KKzsgcHVibGljOiBzdHJ1Y3QgX0ZJTEVUSU1FICBfX3RoaXNjYWxsIENBbGxvY1N0b3JhZ2VWYXJpYW50OjpHZXRGSUxFVElNRSh1bnNpZ25lZCBpbnQpY29uc3QgDQorP0dldEZJTEVUSU1FQENBbGxvY1N0b3JhZ2VWYXJpYW50QEBRQkU/QVVfRklMRVRJTUVAQElAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUGF0aFBhcnNlcjo6R2V0RmlsZU5hbWUodW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBsb25nICYpY29uc3QgDQorP0dldEZpbGVOYW1lQENQYXRoUGFyc2VyQEBRQkVIUEFHQUFLQFoNCis7IHB1YmxpYzogZW51bSBDRHJpdmVJbmZvOjplRmlsZVN5c3RlbSAgX190aGlzY2FsbCBDRHJpdmVJbmZvOjpHZXRGaWxlU3lzdGVtKGludCkNCis/R2V0RmlsZVN5c3RlbUBDRHJpdmVJbmZvQEBRQUU/QVc0ZUZpbGVTeXN0ZW1AMUBIQFoNCis7IHB1YmxpYzogdmlydHVhbCBmbG9hdCBfX3RoaXNjYWxsIENNZW1EZVNlclN0cmVhbTo6R2V0RmxvYXQodm9pZCkNCis/R2V0RmxvYXRAQ01lbURlU2VyU3RyZWFtQEBVQUVNWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQ01lbURlU2VyU3RyZWFtOjpHZXRHVUlEKHN0cnVjdCBfR1VJRCAmKQ0KKz9HZXRHVUlEQENNZW1EZVNlclN0cmVhbUBAVUFFWEFBVV9HVUlEQEBAWg0KKzsgY2xhc3MgQ1Byb3BMaXN0RmlsZSAqIF9fc3RkY2FsbCBHZXRHbG9iYWxQcm9wTGlzdEZpbGUodm9pZCkNCis/R2V0R2xvYmFsUHJvcExpc3RGaWxlQEBZR1BBVkNQcm9wTGlzdEZpbGVAQFhaDQorOyBjbGFzcyBDU3RhdGljUHJvcGVydHlMaXN0ICogX19zdGRjYWxsIEdldEdsb2JhbFN0YXRpY1Byb3BlcnR5TGlzdCh2b2lkKQ0KKz9HZXRHbG9iYWxTdGF0aWNQcm9wZXJ0eUxpc3RAQFlHUEFWQ1N0YXRpY1Byb3BlcnR5TGlzdEBAWFoNCis7IHB1YmxpYzogc2hvcnQgX190aGlzY2FsbCBDQWxsb2NTdG9yYWdlVmFyaWFudDo6R2V0STIodW5zaWduZWQgaW50KWNvbnN0IA0KKz9HZXRJMkBDQWxsb2NTdG9yYWdlVmFyaWFudEBAUUJFRklAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ0FsbG9jU3RvcmFnZVZhcmlhbnQ6OkdldEk0KHVuc2lnbmVkIGludCljb25zdCANCis/R2V0STRAQ0FsbG9jU3RvcmFnZVZhcmlhbnRAQFFCRUpJQFoNCis7IHB1YmxpYzogdW5pb24gX0xBUkdFX0lOVEVHRVIgIF9fdGhpc2NhbGwgQ0FsbG9jU3RvcmFnZVZhcmlhbnQ6OkdldEk4KHVuc2lnbmVkIGludCljb25zdCANCis/R2V0SThAQ0FsbG9jU3RvcmFnZVZhcmlhbnRAQFFCRT9BVF9MQVJHRV9JTlRFR0VSQEBJQFoNCis7IHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIEdldExDSURGcm9tU3RyaW5nKHVuc2lnbmVkIHNob3J0ICopDQorP0dldExDSURGcm9tU3RyaW5nQEBZR0tQQUdAWg0KKzsgcHVibGljOiBjaGFyICogX190aGlzY2FsbCBDQWxsb2NTdG9yYWdlVmFyaWFudDo6R2V0TFBTVFIodW5zaWduZWQgaW50KWNvbnN0IA0KKz9HZXRMUFNUUkBDQWxsb2NTdG9yYWdlVmFyaWFudEBAUUJFUEFESUBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBDQWxsb2NTdG9yYWdlVmFyaWFudDo6R2V0TFBXU1RSKHVuc2lnbmVkIGludCljb25zdCANCis/R2V0TFBXU1RSQENBbGxvY1N0b3JhZ2VWYXJpYW50QEBRQkVQQUdJQFoNCis7IHB1YmxpYzogdW5zaWduZWQgc2hvcnQgY29uc3QgKiBfX3RoaXNjYWxsIENDYXRhbG9nQWRtaW46OkdldExvY2F0aW9uKHZvaWQpDQorP0dldExvY2F0aW9uQENDYXRhbG9nQWRtaW5AQFFBRVBCR1haDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3RoaXNjYWxsIENNZW1EZVNlclN0cmVhbTo6R2V0TG9uZyh2b2lkKQ0KKz9HZXRMb25nQENNZW1EZVNlclN0cmVhbUBAVUFFSlhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENRdWVyeVNjYW5uZXI6OkdldE51bWJlcihsb25nICYsaW50ICYpDQorP0dldE51bWJlckBDUXVlcnlTY2FubmVyQEBRQUVIQUFKQUFIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1F1ZXJ5U2Nhbm5lcjo6R2V0TnVtYmVyKHVuc2lnbmVkIGxvbmcgJixpbnQgJikNCis/R2V0TnVtYmVyQENRdWVyeVNjYW5uZXJAQFFBRUhBQUtBQUhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUXVlcnlTY2FubmVyOjpHZXROdW1iZXIoX19pbnQ2NCAmLGludCAmKQ0KKz9HZXROdW1iZXJAQ1F1ZXJ5U2Nhbm5lckBAUUFFSEFBX0pBQUhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUXVlcnlTY2FubmVyOjpHZXROdW1iZXIodW5zaWduZWQgX19pbnQ2NCAmLGludCAmKQ0KKz9HZXROdW1iZXJAQ1F1ZXJ5U2Nhbm5lckBAUUFFSEFBX0tBQUhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0tleURlQ29tcDo6R2V0T2Zmc2V0KHN0cnVjdCBCaXRPZmZzZXQgJikNCis/R2V0T2Zmc2V0QENLZXlEZUNvbXBAQFFBRVhBQVVCaXRPZmZzZXRAQEBaDQorOyBsb25nIF9fc3RkY2FsbCBHZXRPbGVEQkVycm9ySW5mbyhzdHJ1Y3QgSVVua25vd24gKixzdHJ1Y3QgX0dVSUQgY29uc3QgJix1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGludCxzdHJ1Y3QgdGFnRVJST1JJTkZPICosc3RydWN0IElFcnJvckluZm8gKiAqKQ0KKz9HZXRPbGVEQkVycm9ySW5mb0BAWUdKUEFVSVVua25vd25AQEFCVV9HVUlEQEBLSVBBVXRhZ0VSUk9SSU5GT0BAUEFQQVVJRXJyb3JJbmZvQEBAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgR2V0T2xlRXJyb3IoY2xhc3MgQ0V4Y2VwdGlvbiAmKQ0KKz9HZXRPbGVFcnJvckBAWUdKQUFWQ0V4Y2VwdGlvbkBAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENXZWJTZXJ2ZXI6OkdldFBoeXNpY2FsUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9HZXRQaHlzaWNhbFBhdGhAQ1dlYlNlcnZlckBAUUFFS1BCR1BBR0tLQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0VtcHR5UHJvcGVydHlMaXN0OjpHZXRQcm9wSW5mbyhjbGFzcyBDRGJDb2xJZCBjb25zdCAmLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogKix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGludCAqKQ0KKz9HZXRQcm9wSW5mb0BDRW1wdHlQcm9wZXJ0eUxpc3RAQFFBRUhBQlZDRGJDb2xJZEBAUEFQQkdQQUdQQUlAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRW1wdHlQcm9wZXJ0eUxpc3Q6OkdldFByb3BJbmZvKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ0RiQ29sSWQgKiAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgaW50ICopDQorP0dldFByb3BJbmZvQENFbXB0eVByb3BlcnR5TGlzdEBAUUFFSFBCR1BBUEFWQ0RiQ29sSWRAQFBBR1BBSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ0VtcHR5UHJvcGVydHlMaXN0OjpHZXRQcm9wSW5mb0Zyb21JZChzdHJ1Y3QgdGFnREJJRCBjb25zdCAqLHVuc2lnbmVkIHNob3J0ICogKix1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGludCAqKQ0KKz9HZXRQcm9wSW5mb0Zyb21JZEBDRW1wdHlQcm9wZXJ0eUxpc3RAQFVBR0pQQlV0YWdEQklEQEBQQVBBR1BBR1BBSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ0VtcHR5UHJvcGVydHlMaXN0OjpHZXRQcm9wSW5mb0Zyb21OYW1lKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosc3RydWN0IHRhZ0RCSUQgKiAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgaW50ICopDQorP0dldFByb3BJbmZvRnJvbU5hbWVAQ0VtcHR5UHJvcGVydHlMaXN0QEBVQUdKUEJHUEFQQVV0YWdEQklEQEBQQUdQQUlAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgX19zdGRjYWxsIENFbXB0eVByb3BlcnR5TGlzdDo6R2V0UHJvcFR5cGUodW5zaWduZWQgaW50KQ0KKz9HZXRQcm9wVHlwZUBDRW1wdHlQcm9wZXJ0eUxpc3RAQFNHR0lAWg0KKzsgcHVibGljOiBzdGF0aWMgdW5zaWduZWQgaW50IF9fc3RkY2FsbCBDRW1wdHlQcm9wZXJ0eUxpc3Q6OkdldFByb3BUeXBlQ291bnQodm9pZCkNCis/R2V0UHJvcFR5cGVDb3VudEBDRW1wdHlQcm9wZXJ0eUxpc3RAQFNHSVhaDQorOyBwdWJsaWM6IHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCAqIF9fc3RkY2FsbCBDRW1wdHlQcm9wZXJ0eUxpc3Q6OkdldFByb3BUeXBlTmFtZSh1bnNpZ25lZCBpbnQpDQorP0dldFByb3BUeXBlTmFtZUBDRW1wdHlQcm9wZXJ0eUxpc3RAQFNHUEJHSUBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ0RiUHJvcGVydGllczo6R2V0UHJvcGVydGllcyh1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdEQlBST1BJRFNFVCBjb25zdCAqIGNvbnN0LHVuc2lnbmVkIGxvbmcgKixzdHJ1Y3QgdGFnREJQUk9QU0VUICogKikNCis/R2V0UHJvcGVydGllc0BDRGJQcm9wZXJ0aWVzQEBVQUdKS1FCVXRhZ0RCUFJPUElEU0VUQEBQQUtQQVBBVXRhZ0RCUFJPUFNFVEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENHZXREYlByb3BzOjpHZXRQcm9wZXJ0aWVzKHN0cnVjdCBJREJQcm9wZXJ0aWVzICosdW5zaWduZWQgbG9uZykNCis/R2V0UHJvcGVydGllc0BDR2V0RGJQcm9wc0BAUUFFWFBBVUlEQlByb3BlcnRpZXNAQEtAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENEYlByb3BlcnRpZXM6OkdldFByb3BlcnR5SW5mbyh1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdEQlBST1BJRFNFVCBjb25zdCAqIGNvbnN0LHVuc2lnbmVkIGxvbmcgKixzdHJ1Y3QgdGFnREJQUk9QSU5GT1NFVCAqICosdW5zaWduZWQgc2hvcnQgKiAqKQ0KKz9HZXRQcm9wZXJ0eUluZm9AQ0RiUHJvcGVydGllc0BAVUFHSktRQlV0YWdEQlBST1BJRFNFVEBAUEFLUEFQQVV0YWdEQlBST1BJTkZPU0VUQEBQQVBBR0BaDQorOyBwdWJsaWM6IGZsb2F0IF9fdGhpc2NhbGwgQ0FsbG9jU3RvcmFnZVZhcmlhbnQ6OkdldFI0KHVuc2lnbmVkIGludCljb25zdCANCis/R2V0UjRAQ0FsbG9jU3RvcmFnZVZhcmlhbnRAQFFCRU1JQFoNCis7IHB1YmxpYzogZG91YmxlIF9fdGhpc2NhbGwgQ0FsbG9jU3RvcmFnZVZhcmlhbnQ6OkdldFI4KHVuc2lnbmVkIGludCljb25zdCANCis/R2V0UjhAQ0FsbG9jU3RvcmFnZVZhcmlhbnRAQFFCRU5JQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ01hY2hpbmVBZG1pbjo6R2V0U1pQYXJhbSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgbG9uZykNCis/R2V0U1pQYXJhbUBDTWFjaGluZUFkbWluQEBRQUVIUEJHUEFHS0BaDQorOyBsb25nIF9fc3RkY2FsbCBHZXRTY29kZUVycm9yKGNsYXNzIENFeGNlcHRpb24gJikNCis/R2V0U2NvZGVFcnJvckBAWUdKQUFWQ0V4Y2VwdGlvbkBAQFoNCis7IGludCBfX3N0ZGNhbGwgR2V0U2VjcmV0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCAqICosdW5zaWduZWQgbG9uZyAqKQ0KKz9HZXRTZWNyZXRAQFlHSFBCRzBQQVBBR1BBS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDRHJpdmVJbmZvOjpHZXRTZWN0b3JTaXplKHZvaWQpDQorP0dldFNlY3RvclNpemVAQ0RyaXZlSW5mb0BAUUFFS1haDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ2F0U3RhdGU6OkdldFNvcnRQcm9wKHVuc2lnbmVkIGludCx1bnNpZ25lZCBzaG9ydCBjb25zdCAqICosZW51bSBTT1JURElSICopY29uc3QgDQorP0dldFNvcnRQcm9wQENDYXRTdGF0ZUBAUUJFWElQQVBCR1BBVzRTT1JURElSQEBAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgR2V0U3RhY2tUcmFjZShjaGFyICosdW5zaWduZWQgbG9uZykNCis/R2V0U3RhY2tUcmFjZUBAWUdYUEFES0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGNoYXIgY29uc3QgKiBfX3RoaXNjYWxsIENHZW5lcmljQ2lQcm94eTo6R2V0U3RhcnR1cERhdGEoc3RydWN0IF9HVUlEICYsdW5zaWduZWQgbG9uZyAmKQ0KKz9HZXRTdGFydHVwRGF0YUBDR2VuZXJpY0NpUHJveHlAQFFBRVBCRUFBVV9HVUlEQEBBQUtAWg0KKzsgcHVibGljOiBjbGFzcyBQU3RvcmFnZSAmIF9fdGhpc2NhbGwgQ1Byb3BTdG9yZU1hbmFnZXI6OkdldFN0b3JhZ2UodW5zaWduZWQgbG9uZykNCis/R2V0U3RvcmFnZUBDUHJvcFN0b3JlTWFuYWdlckBAUUFFQUFWUFN0b3JhZ2VAQEtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ0tleTo6R2V0U3RyKHZvaWQpY29uc3QgDQorP0dldFN0ckBDS2V5QEBRQkVQQUdYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBzaG9ydCAqIF9fdGhpc2NhbGwgQ0tleUJ1Zjo6R2V0U3RyKHZvaWQpY29uc3QgDQorP0dldFN0ckBDS2V5QnVmQEBRQkVQQUdYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNoYXIgKiBfX3RoaXNjYWxsIENNZW1EZVNlclN0cmVhbTo6R2V0U3RyaW5nKHZvaWQpDQorP0dldFN0cmluZ0BDTWVtRGVTZXJTdHJlYW1AQFVBRVBBRFhaDQorOyBjbGFzcyBDRGJSZXN0cmljdGlvbiAqIF9fc3RkY2FsbCBHZXRTdHJpbmdEYlJlc3RyaWN0aW9uKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyxzdHJ1Y3QgSUNvbHVtbk1hcHBlciAqLHVuc2lnbmVkIGxvbmcpDQorP0dldFN0cmluZ0RiUmVzdHJpY3Rpb25AQFlHUEFWQ0RiUmVzdHJpY3Rpb25AQFBCR0tQQVVJQ29sdW1uTWFwcGVyQEBLQFoNCis7IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX19zdGRjYWxsIEdldFN0cmluZ0Zyb21MQ0lEKHVuc2lnbmVkIGxvbmcpDQorP0dldFN0cmluZ0Zyb21MQ0lEQEBZR1BCR0tAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgR2V0U3RyaW5nRnJvbUxDSUQodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBzaG9ydCAqKQ0KKz9HZXRTdHJpbmdGcm9tTENJREBAWUdYS1BBR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDUHJvcFN0b3JlTWFuYWdlcjo6R2V0VG90YWxTaXplSW5LQih2b2lkKQ0KKz9HZXRUb3RhbFNpemVJbktCQENQcm9wU3RvcmVNYW5hZ2VyQEBRQUVLWFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENQcm9wZXJ0eVN0b3JlOjpHZXRUb3RhbFNpemVJbktCKHZvaWQpDQorP0dldFRvdGFsU2l6ZUluS0JAQ1Byb3BlcnR5U3RvcmVAQFFBRUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTWVtRGVTZXJTdHJlYW06OkdldFVMb25nKHZvaWQpDQorP0dldFVMb25nQENNZW1EZVNlclN0cmVhbUBAVUFFS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgX190aGlzY2FsbCBDTWVtRGVTZXJTdHJlYW06OkdldFVTaG9ydCh2b2lkKQ0KKz9HZXRVU2hvcnRAQ01lbURlU2VyU3RyZWFtQEBVQUVHWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENJbmRleFRhYmxlOjpHZXRVc2VySGRySW5mbyh1bnNpZ25lZCBpbnQgJixpbnQgJikNCis/R2V0VXNlckhkckluZm9AQ0luZGV4VGFibGVAQFFBRVhBQUlBQUhAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ01ldGFEYXRhTWdyOjpHZXRWUGF0aEFjY2Vzcyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9HZXRWUGF0aEFjY2Vzc0BDTWV0YURhdGFNZ3JAQFFBRUtQQkdAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ01ldGFEYXRhTWdyOjpHZXRWUGF0aEF1dGhvcml6YXRpb24odW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/R2V0VlBhdGhBdXRob3JpemF0aW9uQENNZXRhRGF0YU1nckBAUUFFS1BCR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDTWV0YURhdGFNZ3I6OkdldFZQYXRoU1NMQWNjZXNzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0dldFZQYXRoU1NMQWNjZXNzQENNZXRhRGF0YU1nckBAUUFFS1BCR0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0IGNvbnN0ICogX190aGlzY2FsbCBDRHJpdmVJbmZvOjpHZXRWb2x1bWVOYW1lKGludCkNCis/R2V0Vm9sdW1lTmFtZUBDRHJpdmVJbmZvQEBRQUVQQkdIQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQ01lbURlU2VyU3RyZWFtOjpHZXRXQ2hhcih1bnNpZ25lZCBzaG9ydCAqLHVuc2lnbmVkIGxvbmcpDQorP0dldFdDaGFyQENNZW1EZVNlclN0cmVhbUBAVUFFWFBBR0tAWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBDTWVtRGVTZXJTdHJlYW06OkdldFdTdHJpbmcodm9pZCkNCis/R2V0V1N0cmluZ0BDTWVtRGVTZXJTdHJlYW1AQFVBRVBBR1haDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDRGJDbWRUcmVlTm9kZTo6R2V0V2VpZ2h0KHZvaWQpY29uc3QgDQorP0dldFdlaWdodEBDRGJDbWRUcmVlTm9kZUBAUUJFSlhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRHluU3RyZWFtOjpHcm93KGNsYXNzIFBTdG9yYWdlICYsdW5zaWduZWQgbG9uZykNCis/R3Jvd0BDRHluU3RyZWFtQEBRQUVYQUFWUFN0b3JhZ2VAQEtAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENWaXJ0dWFsU3RyaW5nOjpHcm93QnVmZmVyKHVuc2lnbmVkIGxvbmcpDQorP0dyb3dCdWZmZXJAQ1ZpcnR1YWxTdHJpbmdAQEFBRVhLQFoNCis7IHZvaWQgX19zdGRjYWxsIEhUTUxFc2NhcGVXKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosY2xhc3MgQ1ZpcnR1YWxTdHJpbmcgJix1bnNpZ25lZCBsb25nKQ0KKz9IVE1MRXNjYXBlV0BAWUdYUEJHQUFWQ1ZpcnR1YWxTdHJpbmdAQEtAWg0KKzsgcHJpdmF0ZTogdm9pZCBfX3RoaXNjYWxsIENJbXBlcnNvbmF0ZUNsaWVudDo6SW1wZXJzb25hdGUodm9pZCkNCis/SW1wZXJzb25hdGVAQ0ltcGVyc29uYXRlQ2xpZW50QEBBQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGaWxlTWFwVmlldzo6SW5pdCh2b2lkKQ0KKz9Jbml0QENGaWxlTWFwVmlld0BAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTW1TdHJlYW1Db25zZWNCdWY6OkluaXQoY2xhc3MgUE1tU3RyZWFtICopDQorP0luaXRAQ01tU3RyZWFtQ29uc2VjQnVmQEBRQUVYUEFWUE1tU3RyZWFtQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUGlkTG9va3VwVGFibGU6OkluaXQoY2xhc3MgUFJjb3ZTdG9yYWdlT2JqICopDQorP0luaXRAQ1BpZExvb2t1cFRhYmxlQEBRQUVIUEFWUFJjb3ZTdG9yYWdlT2JqQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Jjb3ZTdG9yYWdlSGRyOjpJbml0KHVuc2lnbmVkIGxvbmcpDQorP0luaXRAQ1Jjb3ZTdG9yYWdlSGRyQEBRQUVYS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVnQ2hhbmdlRXZlbnQ6OkluaXQodm9pZCkNCis/SW5pdEBDUmVnQ2hhbmdlRXZlbnRAQFFBRVhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDU2RpZExvb2t1cFRhYmxlOjpJbml0KGNsYXNzIENpU3RvcmFnZSAqKQ0KKz9Jbml0QENTZGlkTG9va3VwVGFibGVAQFFBRUhQQVZDaVN0b3JhZ2VAQEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENDb21iaW5lZFByb3BlcnR5TGlzdDo6SW5pdEl0ZXJhdG9yKHZvaWQpDQorP0luaXRJdGVyYXRvckBDQ29tYmluZWRQcm9wZXJ0eUxpc3RAQFVBRVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDUHJvcGVydHlMaXN0OjpJbml0SXRlcmF0b3Iodm9pZCkNCis/SW5pdEl0ZXJhdG9yQENQcm9wZXJ0eUxpc3RAQFVBRVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDU3RhdGljUHJvcGVydHlMaXN0OjpJbml0SXRlcmF0b3Iodm9pZCkNCis/SW5pdEl0ZXJhdG9yQENTdGF0aWNQcm9wZXJ0eUxpc3RAQFVBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0ltcGVyc29uYXRpb25Ub2tlbkNhY2hlOjpJbml0aWFsaXplKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50LGludCxpbnQsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP0luaXRpYWxpemVAQ0ltcGVyc29uYXRpb25Ub2tlbkNhY2hlQEBRQUVYUEJHSEhIS0tLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENEeW5TdHJlYW06OkluaXRpYWxpemVGb3JSZWFkKHZvaWQpDQorP0luaXRpYWxpemVGb3JSZWFkQENEeW5TdHJlYW1AQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0R5blN0cmVhbTo6SW5pdGlhbGl6ZUZvcldyaXRlKHVuc2lnbmVkIGxvbmcpDQorP0luaXRpYWxpemVGb3JXcml0ZUBDRHluU3RyZWFtQEBRQUVYS0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDRGJDbWRUcmVlTm9kZTo6SW5zZXJ0Q2hpbGQoY2xhc3MgQ0RiQ21kVHJlZU5vZGUgKikNCis/SW5zZXJ0Q2hpbGRAQ0RiQ21kVHJlZU5vZGVAQElBRVhQQVYxQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENEYlByb3BlcnR5UmVzdHJpY3Rpb246OklzQ0lEaWFsZWN0KHZvaWQpDQorP0lzQ0lEaWFsZWN0QENEYlByb3BlcnR5UmVzdHJpY3Rpb25AQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDTWFjaGluZUFkbWluOjpJc0NJRW5hYmxlZCh2b2lkKQ0KKz9Jc0NJRW5hYmxlZEBDTWFjaGluZUFkbWluQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ01hY2hpbmVBZG1pbjo6SXNDSVBhdXNlZCh2b2lkKQ0KKz9Jc0NJUGF1c2VkQENNYWNoaW5lQWRtaW5AQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDTWFjaGluZUFkbWluOjpJc0NJU3RhcnRlZCh2b2lkKQ0KKz9Jc0NJU3RhcnRlZEBDTWFjaGluZUFkbWluQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ01hY2hpbmVBZG1pbjo6SXNDSVN0b3BwZWQodm9pZCkNCis/SXNDSVN0b3BwZWRAQ01hY2hpbmVBZG1pbkBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDYXRhbG9nQWRtaW46OklzQ2F0YWxvZ0luYWN0aXZlKHZvaWQpDQorP0lzQ2F0YWxvZ0luYWN0aXZlQENDYXRhbG9nQWRtaW5AQFFBRUhYWg0KKzsgaW50IF9fc3RkY2FsbCBJc0RpcmVjdG9yeVdyaXRhYmxlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP0lzRGlyZWN0b3J5V3JpdGFibGVAQFlHSFBCR0BaDQorOyBwdWJsaWM6IHN0YXRpYyBpbnQgX19zdGRjYWxsIENNZXRhRGF0YU1ncjo6SXNJSVNBZG1pblVwKGludCAmKQ0KKz9Jc0lJU0FkbWluVXBAQ01ldGFEYXRhTWdyQEBTR0hBQUhAWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDSW1wZXJzb25hdGVTeXN0ZW06OklzSW1wZXJzb25hdGVkKHZvaWQpDQorP0lzSW1wZXJzb25hdGVkQENJbXBlcnNvbmF0ZVN5c3RlbUBAU0dIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1Jlc3RyaWN0aW9uOjpJc0xlYWYodm9pZCljb25zdCANCis/SXNMZWFmQENSZXN0cmljdGlvbkBAUUJFSFhaDQorOyBpbnQgX19zdGRjYWxsIElzTnVsbFBvaW50ZXJWYXJpYW50KHN0cnVjdCB0YWdQUk9QVkFSSUFOVCAqKQ0KKz9Jc051bGxQb2ludGVyVmFyaWFudEBAWUdIUEFVdGFnUFJPUFZBUklBTlRAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDYXRhbG9nQWRtaW46OklzUGF1c2VkKHZvaWQpDQorP0lzUGF1c2VkQENDYXRhbG9nQWRtaW5AQFFBRUhYWg0KKzsgcHVibGljOiBzdGF0aWMgaW50IF9fc3RkY2FsbCBDSW1wZXJzb25hdGVTeXN0ZW06OklzUnVubmluZ0FzU3lzdGVtKHZvaWQpDQorP0lzUnVubmluZ0FzU3lzdGVtQENJbXBlcnNvbmF0ZVN5c3RlbUBAU0dIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RyaXZlSW5mbzo6SXNTYW1lRHJpdmUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/SXNTYW1lRHJpdmVAQ0RyaXZlSW5mb0BAUUFFSFBCR0BaDQorOyBsb25nIF9fc3RkY2FsbCBJc1Njb3BlVmFsaWQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQsaW50KQ0KKz9Jc1Njb3BlVmFsaWRAQFlHSlBCR0lIQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NhdGFsb2dBZG1pbjo6SXNTdGFydGVkKHZvaWQpDQorP0lzU3RhcnRlZEBDQ2F0YWxvZ0FkbWluQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0NhdGFsb2dBZG1pbjo6SXNTdG9wcGVkKHZvaWQpDQorP0lzU3RvcHBlZEBDQ2F0YWxvZ0FkbWluQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0FsbG9jU3RvcmFnZVZhcmlhbnQ6OklzVmFsaWQodm9pZCljb25zdCANCis/SXNWYWxpZEBDQWxsb2NTdG9yYWdlVmFyaWFudEBAUUJFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENOb2RlUmVzdHJpY3Rpb246OklzVmFsaWQodm9pZCljb25zdCANCis/SXNWYWxpZEBDTm9kZVJlc3RyaWN0aW9uQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ09jY1Jlc3RyaWN0aW9uOjpJc1ZhbGlkKHZvaWQpY29uc3QgDQorP0lzVmFsaWRAQ09jY1Jlc3RyaWN0aW9uQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1Jlc3RyaWN0aW9uOjpJc1ZhbGlkKHZvaWQpY29uc3QgDQorP0lzVmFsaWRAQ1Jlc3RyaWN0aW9uQEBRQkVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0ZpbHRlckRhZW1vbjo6SXNXYWl0aW5nRm9yRG9jdW1lbnQodm9pZCkNCis/SXNXYWl0aW5nRm9yRG9jdW1lbnRAQ0ZpbHRlckRhZW1vbkBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENEcml2ZUluZm86OklzV3JpdGVQcm90ZWN0ZWQodm9pZCkNCis/SXNXcml0ZVByb3RlY3RlZEBDRHJpdmVJbmZvQEBRQUVIWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENMb2NhbEdsb2JhbFByb3BlcnR5TGlzdDo6TG9hZCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqIGNvbnN0KQ0KKz9Mb2FkQENMb2NhbEdsb2JhbFByb3BlcnR5TGlzdEBAUUFFWFFCR0BaDQorOyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBMb2NhbGVUb0NvZGVwYWdlKHVuc2lnbmVkIGxvbmcpDQorP0xvY2FsZVRvQ29kZXBhZ2VAQFlHS0tAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENQcm9wZXJ0eVN0b3JlOjpMb2tOZXdXb3JrSWQodW5zaWduZWQgbG9uZyxpbnQsaW50KQ0KKz9Mb2tOZXdXb3JrSWRAQ1Byb3BlcnR5U3RvcmVAQEFBRUtLSEhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2F0U3RhdGVJbmZvOjpMb2tVcGRhdGUodm9pZCkNCis/TG9rVXBkYXRlQENDYXRTdGF0ZUluZm9AQFFBRUhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Byb3BTdG9yZU1hbmFnZXI6OkxvbmdJbml0KGludCAmLHVuc2lnbmVkIGxvbmcgJix2b2lkIChfX3N0ZGNhbGwqKSh1bnNpZ25lZCBsb25nLGludCx2b2lkIGNvbnN0ICopLHZvaWQgY29uc3QgKikNCis/TG9uZ0luaXRAQ1Byb3BTdG9yZU1hbmFnZXJAQFFBRVhBQUhBQUtQNkdYS0hQQlhAWjJAWg0KKzsgcHJpdmF0ZTogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgQ1Byb3BTdG9yZUluZm86Okxvb2t1cCh1bnNpZ25lZCBsb25nKQ0KKz9Mb29rdXBAQ1Byb3BTdG9yZUluZm9AQEFBRUlLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENTZGlkTG9va3VwVGFibGU6Okxvb2t1cFNESUQodm9pZCAqLHVuc2lnbmVkIGxvbmcpDQorP0xvb2t1cFNESURAQ1NkaWRMb29rdXBUYWJsZUBAUUFFS1BBWEtAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1BoeXNTdG9yYWdlOjpNYWtlQmFja3VwQ29weShjbGFzcyBDUGh5c1N0b3JhZ2UgJixjbGFzcyBQU2F2ZVByb2dyZXNzVHJhY2tlciAmKQ0KKz9NYWtlQmFja3VwQ29weUBDUGh5c1N0b3JhZ2VAQFFBRVhBQVYxQEFBVlBTYXZlUHJvZ3Jlc3NUcmFja2VyQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1BpZExvb2t1cFRhYmxlOjpNYWtlQmFja3VwQ29weShjbGFzcyBQUmNvdlN0b3JhZ2VPYmogJixjbGFzcyBQU2F2ZVByb2dyZXNzVHJhY2tlciAmKQ0KKz9NYWtlQmFja3VwQ29weUBDUGlkTG9va3VwVGFibGVAQFFBRVhBQVZQUmNvdlN0b3JhZ2VPYmpAQEFBVlBTYXZlUHJvZ3Jlc3NUcmFja2VyQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Byb3BTdG9yZU1hbmFnZXI6Ok1ha2VCYWNrdXBDb3B5KHN0cnVjdCBJUHJvZ3Jlc3NOb3RpZnkgKixpbnQgJixjbGFzcyBDaVN0b3JhZ2UgJixzdHJ1Y3QgSUNpRW51bVdvcmtpZHMgKixzdHJ1Y3QgSUVudW1TdHJpbmcgKiAqKQ0KKz9NYWtlQmFja3VwQ29weUBDUHJvcFN0b3JlTWFuYWdlckBAUUFFWFBBVUlQcm9ncmVzc05vdGlmeUBAQUFIQUFWQ2lTdG9yYWdlQEBQQVVJQ2lFbnVtV29ya2lkc0BAUEFQQVVJRW51bVN0cmluZ0BAQFoNCis7IGxvbmcgX19zdGRjYWxsIE1ha2VJQ29tbWFuZChzdHJ1Y3QgSVVua25vd24gKiAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixzdHJ1Y3QgSVVua25vd24gKikNCis/TWFrZUlDb21tYW5kQEBZR0pQQVBBVUlVbmtub3duQEBQQkcxUEFVMUBAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgTWFrZUlTZWFyY2goc3RydWN0IElTZWFyY2hRdWVyeUhpdHMgKiAqLGNsYXNzIENEYlJlc3RyaWN0aW9uICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/TWFrZUlTZWFyY2hAQFlHSlBBUEFVSVNlYXJjaFF1ZXJ5SGl0c0BAUEFWQ0RiUmVzdHJpY3Rpb25AQFBCR0BaDQorOyBsb25nIF9fc3RkY2FsbCBNYWtlTG9jYWxJQ29tbWFuZChzdHJ1Y3QgSVVua25vd24gKiAqLHN0cnVjdCBJQ2lDRG9jU3RvcmUgKixzdHJ1Y3QgSVVua25vd24gKikNCis/TWFrZUxvY2FsSUNvbW1hbmRAQFlHSlBBUEFVSVVua25vd25AQFBBVUlDaUNEb2NTdG9yZUBAUEFVMUBAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgTWFrZU1ldGFkYXRhSUNvbW1hbmQoc3RydWN0IElVbmtub3duICogKixlbnVtIENpTWV0YURhdGEsdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHN0cnVjdCBJVW5rbm93biAqKQ0KKz9NYWtlTWV0YWRhdGFJQ29tbWFuZEBAWUdKUEFQQVVJVW5rbm93bkBAVzRDaU1ldGFEYXRhQEBQQkcyUEFVMUBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Z1bGxQYXRoOjpNYWtlUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9NYWtlUGF0aEBDRnVsbFBhdGhAQFFBRVhQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Z1bGxQYXRoOjpNYWtlUGF0aCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/TWFrZVBhdGhAQ0Z1bGxQYXRoQEBRQUVYUEJHSUBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ0ltcGVyc29uYXRlU3lzdGVtOjpNYWtlUHJpdmlsZWdlZCh2b2lkKQ0KKz9NYWtlUHJpdmlsZWdlZEBDSW1wZXJzb25hdGVTeXN0ZW1AQEFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ01tU3RyZWFtQ29uc2VjQnVmOjpNYXAodW5zaWduZWQgbG9uZykNCis/TWFwQENNbVN0cmVhbUNvbnNlY0J1ZkBAUUFFWEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRHluU3RyZWFtOjpNYXJrRGlydHkodm9pZCkNCis/TWFya0RpcnR5QENEeW5TdHJlYW1AQFFBRUhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0Jhc2VTdG9yYWdlVmFyaWFudDo6TWFyc2hhbGwoY2xhc3MgUFNlclN0cmVhbSAmKWNvbnN0IA0KKz9NYXJzaGFsbEBDQmFzZVN0b3JhZ2VWYXJpYW50QEBRQkVYQUFWUFNlclN0cmVhbUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDb250ZW50UmVzdHJpY3Rpb246Ok1hcnNoYWxsKGNsYXNzIFBTZXJTdHJlYW0gJiljb25zdCANCis/TWFyc2hhbGxAQ0NvbnRlbnRSZXN0cmljdGlvbkBAUUJFWEFBVlBTZXJTdHJlYW1AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRGJCeUd1aWQ6Ok1hcnNoYWxsKGNsYXNzIFBTZXJTdHJlYW0gJiljb25zdCANCis/TWFyc2hhbGxAQ0RiQnlHdWlkQEBRQkVYQUFWUFNlclN0cmVhbUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENEYkNtZFRyZWVOb2RlOjpNYXJzaGFsbChjbGFzcyBQU2VyU3RyZWFtICYpY29uc3QgDQorP01hcnNoYWxsQENEYkNtZFRyZWVOb2RlQEBRQkVYQUFWUFNlclN0cmVhbUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENEYkNvbElkOjpNYXJzaGFsbChjbGFzcyBQU2VyU3RyZWFtICYpY29uc3QgDQorP01hcnNoYWxsQENEYkNvbElkQEBRQkVYQUFWUFNlclN0cmVhbUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENEYkNvbnRlbnRWZWN0b3I6Ok1hcnNoYWxsKGNsYXNzIFBTZXJTdHJlYW0gJiljb25zdCANCis/TWFyc2hhbGxAQ0RiQ29udGVudFZlY3RvckBAUUJFWEFBVlBTZXJTdHJlYW1AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRGJOdW1lcmljOjpNYXJzaGFsbChjbGFzcyBQU2VyU3RyZWFtICYpY29uc3QgDQorP01hcnNoYWxsQENEYk51bWVyaWNAQFFCRVhBQVZQU2VyU3RyZWFtQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0RiUGFyYW1ldGVyOjpNYXJzaGFsbChjbGFzcyBQU2VyU3RyZWFtICYpY29uc3QgDQorP01hcnNoYWxsQENEYlBhcmFtZXRlckBAUUJFWEFBVlBTZXJTdHJlYW1AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRGJQcm9wOjpNYXJzaGFsbChjbGFzcyBQU2VyU3RyZWFtICYpY29uc3QgDQorP01hcnNoYWxsQENEYlByb3BAQFFCRVhBQVZQU2VyU3RyZWFtQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0RiUHJvcFNldDo6TWFyc2hhbGwoY2xhc3MgUFNlclN0cmVhbSAmKWNvbnN0IA0KKz9NYXJzaGFsbEBDRGJQcm9wU2V0QEBRQkVYQUFWUFNlclN0cmVhbUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENGdWxsUHJvcFNwZWM6Ok1hcnNoYWxsKGNsYXNzIFBTZXJTdHJlYW0gJiljb25zdCANCis/TWFyc2hhbGxAQ0Z1bGxQcm9wU3BlY0BAUUJFWEFBVlBTZXJTdHJlYW1AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTmF0TGFuZ3VhZ2VSZXN0cmljdGlvbjo6TWFyc2hhbGwoY2xhc3MgUFNlclN0cmVhbSAmKWNvbnN0IA0KKz9NYXJzaGFsbEBDTmF0TGFuZ3VhZ2VSZXN0cmljdGlvbkBAUUJFWEFBVlBTZXJTdHJlYW1AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTm9kZVJlc3RyaWN0aW9uOjpNYXJzaGFsbChjbGFzcyBQU2VyU3RyZWFtICYpY29uc3QgDQorP01hcnNoYWxsQENOb2RlUmVzdHJpY3Rpb25AQFFCRVhBQVZQU2VyU3RyZWFtQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ05vdFJlc3RyaWN0aW9uOjpNYXJzaGFsbChjbGFzcyBQU2VyU3RyZWFtICYpY29uc3QgDQorP01hcnNoYWxsQENOb3RSZXN0cmljdGlvbkBAUUJFWEFBVlBTZXJTdHJlYW1AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUHJvcE5hbWVBcnJheTo6TWFyc2hhbGwoY2xhc3MgUFNlclN0cmVhbSAmKWNvbnN0IA0KKz9NYXJzaGFsbEBDUHJvcE5hbWVBcnJheUBAUUJFWEFBVlBTZXJTdHJlYW1AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUHJvcGVydHlSZXN0cmljdGlvbjo6TWFyc2hhbGwoY2xhc3MgUFNlclN0cmVhbSAmKWNvbnN0IA0KKz9NYXJzaGFsbEBDUHJvcGVydHlSZXN0cmljdGlvbkBAUUJFWEFBVlBTZXJTdHJlYW1AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVzdHJpY3Rpb246Ok1hcnNoYWxsKGNsYXNzIFBTZXJTdHJlYW0gJiljb25zdCANCis/TWFyc2hhbGxAQ1Jlc3RyaWN0aW9uQEBRQkVYQUFWUFNlclN0cmVhbUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENWZWN0b3JSZXN0cmljdGlvbjo6TWFyc2hhbGwoY2xhc3MgUFNlclN0cmVhbSAmKWNvbnN0IA0KKz9NYXJzaGFsbEBDVmVjdG9yUmVzdHJpY3Rpb25AQFFCRVhBQVZQU2VyU3RyZWFtQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQnVmZmVyQ2FjaGU6Ok1pblBhZ2VJblVzZSh1bnNpZ25lZCBsb25nICYpDQorP01pblBhZ2VJblVzZUBDQnVmZmVyQ2FjaGVAQFFBRUhBQUtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUGh5c1N0b3JhZ2U6Ok1pblBhZ2VJblVzZSh1bnNpZ25lZCBsb25nICYpDQorP01pblBhZ2VJblVzZUBDUGh5c1N0b3JhZ2VAQFFBRUhBQUtAWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgTXVsdGlCeXRlVG9YQXJyYXlXaWRlQ2hhcih1bnNpZ25lZCBjaGFyIGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBpbnQsY2xhc3MgWEFycmF5PHVuc2lnbmVkIHNob3J0PiAmKQ0KKz9NdWx0aUJ5dGVUb1hBcnJheVdpZGVDaGFyQEBZR0tQQkVLSUFBVj8kWEFycmF5QEdAQEBaDQorOyB1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgTXlfd2NzdG91aTY0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgKiAqLGludCkNCis/TXlfd2NzdG91aTY0QEBZQV9LUEJHUEFQQUdIQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENQaWRSZW1hcHBlcjo6TmFtZVRvUmVhbChjbGFzcyBDRnVsbFByb3BTcGVjIGNvbnN0ICopDQorP05hbWVUb1JlYWxAQ1BpZFJlbWFwcGVyQEBRQUVLUEJWQ0Z1bGxQcm9wU3BlY0BAQFoNCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBJU3RlbW1lciAqIF9fc3RkY2FsbCBDQ2lPbGU6Ok5ld1N0ZW1tZXIoc3RydWN0IF9HVUlEIGNvbnN0ICYpDQorP05ld1N0ZW1tZXJAQ0NpT2xlQEBTR1BBVUlTdGVtbWVyQEBBQlVfR1VJREBAQFoNCis7IHB1YmxpYzogc3RhdGljIHN0cnVjdCBJV29yZEJyZWFrZXIgKiBfX3N0ZGNhbGwgQ0NpT2xlOjpOZXdXb3JkQnJlYWtlcihzdHJ1Y3QgX0dVSUQgY29uc3QgJikNCis/TmV3V29yZEJyZWFrZXJAQ0NpT2xlQEBTR1BBVUlXb3JkQnJlYWtlckBAQUJVX0dVSURAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDYXRhbG9nRW51bTo6TmV4dCh2b2lkKQ0KKz9OZXh0QENDYXRhbG9nRW51bUBAUUFFSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgQ1Byb3BFbnRyeSBjb25zdCAqIF9fdGhpc2NhbGwgQ0NvbWJpbmVkUHJvcGVydHlMaXN0OjpOZXh0KHZvaWQpDQorP05leHRAQ0NvbWJpbmVkUHJvcGVydHlMaXN0QEBVQUVQQlZDUHJvcEVudHJ5QEBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENFbnVtU3RyaW5nOjpOZXh0KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgc2hvcnQgKiAqLHVuc2lnbmVkIGxvbmcgKikNCis/TmV4dEBDRW51bVN0cmluZ0BAVUFHSktQQVBBR1BBS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ0VudW1Xb3JraWQ6Ok5leHQodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICosdW5zaWduZWQgbG9uZyAqKQ0KKz9OZXh0QENFbnVtV29ya2lkQEBVQUdKS1BBSzBAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNsYXNzIENQcm9wRW50cnkgY29uc3QgKiBfX3RoaXNjYWxsIENQcm9wZXJ0eUxpc3Q6Ok5leHQodm9pZCkNCis/TmV4dEBDUHJvcGVydHlMaXN0QEBVQUVQQlZDUHJvcEVudHJ5QEBYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDU2NvcGVFbnVtOjpOZXh0KHZvaWQpDQorP05leHRAQ1Njb3BlRW51bUBAUUFFSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgY2xhc3MgQ1Byb3BFbnRyeSBjb25zdCAqIF9fdGhpc2NhbGwgQ1N0YXRpY1Byb3BlcnR5TGlzdDo6TmV4dCh2b2lkKQ0KKz9OZXh0QENTdGF0aWNQcm9wZXJ0eUxpc3RAQFVBRVBCVkNQcm9wRW50cnlAQFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDUHJvcGVydHlTdG9yZVdpZHM6Ok5leHRXb3JrSWQodm9pZCkNCis/TmV4dFdvcmtJZEBDUHJvcGVydHlTdG9yZVdpZHNAQFFBRUtYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUmVxdWVzdENsaWVudDo6Tm90aWZ5V3JpdGVSZWFkKHZvaWQgKix2b2lkICosdW5zaWduZWQgbG9uZyx2b2lkICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICYpDQorP05vdGlmeVdyaXRlUmVhZEBDUmVxdWVzdENsaWVudEBAUUFFSFBBWDBLMEtBQUtAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBpbnQgX190aGlzY2FsbCBDQ2F0U3RhdGU6Ok51bWJlck9mQ29sdW1ucyh2b2lkKWNvbnN0IA0KKz9OdW1iZXJPZkNvbHVtbnNAQ0NhdFN0YXRlQEBRQkVJWFoNCis7IHB1YmxpYzogdW5zaWduZWQgaW50IF9fdGhpc2NhbGwgQ0NhdFN0YXRlOjpOdW1iZXJPZlNvcnRQcm9wcyh2b2lkKWNvbnN0IA0KKz9OdW1iZXJPZlNvcnRQcm9wc0BDQ2F0U3RhdGVAQFFCRUlYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ01tU3RyZWFtOjpPcGVuKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxpbnQpDQorP09wZW5AQ01tU3RyZWFtQEBRQUVYUEJHS0tLS0hAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDT0xFUHJvcE1hbmFnZXI6Ok9wZW4oY2xhc3MgQ0Z1bm55UGF0aCBjb25zdCAmKQ0KKz9PcGVuQENPTEVQcm9wTWFuYWdlckBAUUFFSEFCVkNGdW5ueVBhdGhAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTW1TdHJlYW06Ok9wZW5FeGNsdXNpdmUodW5zaWduZWQgc2hvcnQgKixpbnQpDQorP09wZW5FeGNsdXNpdmVAQ01tU3RyZWFtQEBRQUVYUEFHSEBaDQorOyBzdHJ1Y3QgX2lvYnVmICogX19zdGRjYWxsIE9wZW5GaWxlRnJvbVBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/T3BlbkZpbGVGcm9tUGF0aEBAWUdQQVVfaW9idWZAQFBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENDb21wb3NpdGVQcm9wUmVjb3JkICogX190aGlzY2FsbCBDUHJvcFN0b3JlTWFuYWdlcjo6T3BlblJlY29yZCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGNoYXIgKikNCis/T3BlblJlY29yZEBDUHJvcFN0b3JlTWFuYWdlckBAUUFFUEFWQ0NvbXBvc2l0ZVByb3BSZWNvcmRAQEtQQUVAWg0KKzsgcHVibGljOiBjbGFzcyBDQ29tcG9zaXRlUHJvcFJlY29yZEZvcldyaXRlcyAqIF9fdGhpc2NhbGwgQ1Byb3BTdG9yZU1hbmFnZXI6Ok9wZW5SZWNvcmRGb3JXcml0ZXModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBjaGFyICopDQorP09wZW5SZWNvcmRGb3JXcml0ZXNAQ1Byb3BTdG9yZU1hbmFnZXJAQFFBRVBBVkNDb21wb3NpdGVQcm9wUmVjb3JkRm9yV3JpdGVzQEBLUEFFQFoNCis7IGxvbmcgX19zdGRjYWxsIFBhcnNlQ2F0YWxvZ1VSTCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIFhQdHJTVDx1bnNpZ25lZCBzaG9ydD4gJixjbGFzcyBYUHRyU1Q8dW5zaWduZWQgc2hvcnQ+ICYpDQorP1BhcnNlQ2F0YWxvZ1VSTEBAWUdKUEJHQUFWPyRYUHRyU1RAR0BAMUBaDQorOyBwdWJsaWM6IGNsYXNzIENSZXN0cmljdGlvbiAqIF9fdGhpc2NhbGwgQ1BhcnNlQ29tbWFuZFRyZWU6OlBhcnNlRXhwcmVzc2lvbihjbGFzcyBDRGJDbWRUcmVlTm9kZSAqKQ0KKz9QYXJzZUV4cHJlc3Npb25AQ1BhcnNlQ29tbWFuZFRyZWVAQFFBRVBBVkNSZXN0cmljdGlvbkBAUEFWQ0RiQ21kVHJlZU5vZGVAQEBaDQorOyBwdWJsaWM6IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCBDUHJvcGVydHlMaXN0OjpQYXJzZU9uZUxpbmUoY2xhc3MgQ1F1ZXJ5U2Nhbm5lciAmLGludCxjbGFzcyBYUHRyPGNsYXNzIENQcm9wRW50cnk+ICYpDQorP1BhcnNlT25lTGluZUBDUHJvcGVydHlMaXN0QEBTR1hBQVZDUXVlcnlTY2FubmVyQEBIQUFWPyRYUHRyQFZDUHJvcEVudHJ5QEBAQEBaDQorOyBwdWJsaWM6IGNsYXNzIENEYlJlc3RyaWN0aW9uICogX190aGlzY2FsbCBDUXVlcnlQYXJzZXI6OlBhcnNlUXVlcnlQaHJhc2Uodm9pZCkNCis/UGFyc2VRdWVyeVBocmFzZUBDUXVlcnlQYXJzZXJAQFFBRVBBVkNEYlJlc3RyaWN0aW9uQEBYWg0KKzsgY2xhc3MgQ0RiQ29sdW1ucyAqIF9fc3RkY2FsbCBQYXJzZVN0cmluZ0NvbHVtbnModW5zaWduZWQgc2hvcnQgY29uc3QgKixzdHJ1Y3QgSUNvbHVtbk1hcHBlciAqLHVuc2lnbmVkIGxvbmcsY2xhc3MgUFZhcmlhYmxlU2V0ICosY2xhc3MgQ0R5bkFycmF5PHVuc2lnbmVkIHNob3J0PiAqKQ0KKz9QYXJzZVN0cmluZ0NvbHVtbnNAQFlHUEFWQ0RiQ29sdW1uc0BAUEJHUEFVSUNvbHVtbk1hcHBlckBAS1BBVlBWYXJpYWJsZVNldEBAUEFWPyRDRHluQXJyYXlAR0BAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENQYXJzZUNvbW1hbmRUcmVlOjpQYXJzZVRyZWUoY2xhc3MgQ0RiQ21kVHJlZU5vZGUgKikNCis/UGFyc2VUcmVlQENQYXJzZUNvbW1hbmRUcmVlQEBRQUVYUEFWQ0RiQ21kVHJlZU5vZGVAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDYXRhbG9nQWRtaW46OlBhdXNlKHZvaWQpDQorP1BhdXNlQENDYXRhbG9nQWRtaW5AQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDTWFjaGluZUFkbWluOjpQYXVzZUNJKHZvaWQpDQorP1BhdXNlQ0lAQ01hY2hpbmVBZG1pbkBAUUFFSFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENNZW1EZVNlclN0cmVhbTo6UGVla1VMb25nKHZvaWQpDQorP1BlZWtVTG9uZ0BDTWVtRGVTZXJTdHJlYW1AQFVBRUtYWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ1BpZE1hcHBlcjo6UGlkVG9SZWFsUGlkKHVuc2lnbmVkIGxvbmcpDQorP1BpZFRvUmVhbFBpZEBDUGlkTWFwcGVyQEBRQUVLS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDU3RhbmRhcmRQcm9wTWFwcGVyOjpQcm9wZXJ0eVRvUHJvcElkKGNsYXNzIENGdWxsUHJvcFNwZWMgY29uc3QgJixpbnQpDQorP1Byb3BlcnR5VG9Qcm9wSWRAQ1N0YW5kYXJkUHJvcE1hcHBlckBAUUFFS0FCVkNGdWxsUHJvcFNwZWNAQEhAWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENGd1Byb3BlcnR5TWFwcGVyOjpQcm9wZXJ0eVRvUHJvcGlkKHN0cnVjdCB0YWdGVUxMUFJPUFNQRUMgY29uc3QgKixpbnQsdW5zaWduZWQgbG9uZyAqKQ0KKz9Qcm9wZXJ0eVRvUHJvcGlkQENGd1Byb3BlcnR5TWFwcGVyQEBVQUdKUEJVdGFnRlVMTFBST1BTUEVDQEBIUEFLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENWYWx1ZU5vcm1hbGl6ZXI6OlB1dE1heFZhbHVlKHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyAmLGVudW0gVkFSRU5VTSkNCis/UHV0TWF4VmFsdWVAQ1ZhbHVlTm9ybWFsaXplckBAUUFFWEtBQUtXNFZBUkVOVU1AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDVmFsdWVOb3JtYWxpemVyOjpQdXRNaW5WYWx1ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcgJixlbnVtIFZBUkVOVU0pDQorP1B1dE1pblZhbHVlQENWYWx1ZU5vcm1hbGl6ZXJAQFFBRVhLQUFLVzRWQVJFTlVNQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1ZhbHVlTm9ybWFsaXplcjo6UHV0VmFsdWUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nICYsY2xhc3MgQ1N0b3JhZ2VWYXJpYW50IGNvbnN0ICYpDQorP1B1dFZhbHVlQENWYWx1ZU5vcm1hbGl6ZXJAQFFBRVhLQUFLQUJWQ1N0b3JhZ2VWYXJpYW50QEBAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgUHV0V1N0cmluZyhjbGFzcyBQU2VyU3RyZWFtICYsdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/UHV0V1N0cmluZ0BAWUdYQUFWUFNlclN0cmVhbUBAUEJHQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENEYkNtZFRyZWVOb2RlOjpQdXRXU3RyaW5nKGNsYXNzIFBTZXJTdHJlYW0gJix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9QdXRXU3RyaW5nQENEYkNtZFRyZWVOb2RlQEBTR1hBQVZQU2VyU3RyZWFtQEBQQkdAWg0KKzsgcHJpdmF0ZTogY2xhc3MgQ0RiUmVzdHJpY3Rpb24gKiBfX3RoaXNjYWxsIENRdWVyeVBhcnNlcjo6UXVlcnkoY2xhc3MgQ0RiTm9kZVJlc3RyaWN0aW9uICopDQorP1F1ZXJ5QENRdWVyeVBhcnNlckBAQUFFUEFWQ0RiUmVzdHJpY3Rpb25AQFBBVkNEYk5vZGVSZXN0cmljdGlvbkBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ0NhdGFsb2dBZG1pbiAqIF9fdGhpc2NhbGwgQ0NhdGFsb2dFbnVtOjpRdWVyeUNhdGFsb2dBZG1pbih2b2lkKQ0KKz9RdWVyeUNhdGFsb2dBZG1pbkBDQ2F0YWxvZ0VudW1AQFFBRVBBVkNDYXRhbG9nQWRtaW5AQFhaDQorOyBwdWJsaWM6IGNsYXNzIENDYXRhbG9nQWRtaW4gKiBfX3RoaXNjYWxsIENNYWNoaW5lQWRtaW46OlF1ZXJ5Q2F0YWxvZ0FkbWluKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1F1ZXJ5Q2F0YWxvZ0FkbWluQENNYWNoaW5lQWRtaW5AQFFBRVBBVkNDYXRhbG9nQWRtaW5AQFBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENDYXRhbG9nRW51bSAqIF9fdGhpc2NhbGwgQ01hY2hpbmVBZG1pbjo6UXVlcnlDYXRhbG9nRW51bSh2b2lkKQ0KKz9RdWVyeUNhdGFsb2dFbnVtQENNYWNoaW5lQWRtaW5AQFFBRVBBVkNDYXRhbG9nRW51bUBAWFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDRGJQcm9wZXJ0aWVzOjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJix2b2lkICogKikNCis/UXVlcnlJbnRlcmZhY2VAQ0RiUHJvcGVydGllc0BAVUFHSkFCVV9HVUlEQEBQQVBBWEBaDQorOyBwdWJsaWM6IHZpcnR1YWwgbG9uZyBfX3N0ZGNhbGwgQ0VtcHR5UHJvcGVydHlMaXN0OjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJix2b2lkICogKikNCis/UXVlcnlJbnRlcmZhY2VAQ0VtcHR5UHJvcGVydHlMaXN0QEBVQUdKQUJVX0dVSURAQFBBUEFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDRW51bVN0cmluZzo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYsdm9pZCAqICopDQorP1F1ZXJ5SW50ZXJmYWNlQENFbnVtU3RyaW5nQEBVQUdKQUJVX0dVSURAQFBBUEFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDRW51bVdvcmtpZDo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYsdm9pZCAqICopDQorP1F1ZXJ5SW50ZXJmYWNlQENFbnVtV29ya2lkQEBVQUdKQUJVX0dVSURAQFBBUEFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDRndQcm9wZXJ0eU1hcHBlcjo6UXVlcnlJbnRlcmZhY2Uoc3RydWN0IF9HVUlEIGNvbnN0ICYsdm9pZCAqICopDQorP1F1ZXJ5SW50ZXJmYWNlQENGd1Byb3BlcnR5TWFwcGVyQEBVQUdKQUJVX0dVSURAQFBBUEFYQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDUXVlcnlVbmtub3duOjpRdWVyeUludGVyZmFjZShzdHJ1Y3QgX0dVSUQgY29uc3QgJix2b2lkICogKikNCis/UXVlcnlJbnRlcmZhY2VAQ1F1ZXJ5VW5rbm93bkBAVUFHSkFCVV9HVUlEQEBQQVBBWEBaDQorOyBwdWJsaWM6IGNsYXNzIFBSY292U3RvcmFnZU9iaiAqIF9fdGhpc2NhbGwgQ2lTdG9yYWdlOjpRdWVyeVBpZExvb2t1cFRhYmxlKHVuc2lnbmVkIGxvbmcpDQorP1F1ZXJ5UGlkTG9va3VwVGFibGVAQ2lTdG9yYWdlQEBRQUVQQVZQUmNvdlN0b3JhZ2VPYmpAQEtAWg0KKzsgcHVibGljOiBjbGFzcyBDU2NvcGVBZG1pbiAqIF9fdGhpc2NhbGwgQ0NhdGFsb2dBZG1pbjo6UXVlcnlTY29wZUFkbWluKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1F1ZXJ5U2NvcGVBZG1pbkBDQ2F0YWxvZ0FkbWluQEBRQUVQQVZDU2NvcGVBZG1pbkBAUEJHQFoNCis7IHB1YmxpYzogY2xhc3MgQ1Njb3BlQWRtaW4gKiBfX3RoaXNjYWxsIENTY29wZUVudW06OlF1ZXJ5U2NvcGVBZG1pbih2b2lkKQ0KKz9RdWVyeVNjb3BlQWRtaW5AQ1Njb3BlRW51bUBAUUFFUEFWQ1Njb3BlQWRtaW5AQFhaDQorOyBwdWJsaWM6IGNsYXNzIENTY29wZUVudW0gKiBfX3RoaXNjYWxsIENDYXRhbG9nQWRtaW46OlF1ZXJ5U2NvcGVFbnVtKHZvaWQpDQorP1F1ZXJ5U2NvcGVFbnVtQENDYXRhbG9nQWRtaW5AQFFBRVBBVkNTY29wZUVudW1AQFhaDQorOyBwdWJsaWM6IGNsYXNzIFBSY292U3RvcmFnZU9iaiAqIF9fdGhpc2NhbGwgQ2lTdG9yYWdlOjpRdWVyeVNjb3BlTGlzdCh1bnNpZ25lZCBsb25nKQ0KKz9RdWVyeVNjb3BlTGlzdEBDaVN0b3JhZ2VAQFFBRVBBVlBSY292U3RvcmFnZU9iakBAS0BaDQorOyBwdWJsaWM6IGNsYXNzIFBSY292U3RvcmFnZU9iaiAqIF9fdGhpc2NhbGwgQ2lTdG9yYWdlOjpRdWVyeVNkaWRMb29rdXBUYWJsZSh1bnNpZ25lZCBsb25nKQ0KKz9RdWVyeVNkaWRMb29rdXBUYWJsZUBDaVN0b3JhZ2VAQFFBRVBBVlBSY292U3RvcmFnZU9iakBAS0BaDQorOyBwdWJsaWM6IGNsYXNzIFBSY292U3RvcmFnZU9iaiAqIF9fdGhpc2NhbGwgQ2lTdG9yYWdlOjpRdWVyeVZpcnR1YWxTY29wZUxpc3QodW5zaWduZWQgbG9uZykNCis/UXVlcnlWaXJ0dWFsU2NvcGVMaXN0QENpU3RvcmFnZUBAUUFFUEFWUFJjb3ZTdG9yYWdlT2JqQEBLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENQaWRSZW1hcHBlcjo6UmVCdWlsZChjbGFzcyBDUGlkTWFwcGVyIGNvbnN0ICYpDQorP1JlQnVpbGRAQ1BpZFJlbWFwcGVyQEBRQUVYQUJWQ1BpZE1hcHBlckBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENRdWVyeVVua25vd246OlJlSW5pdCh1bnNpZ25lZCBsb25nLGNsYXNzIENSb3dzZXQgKiAqKQ0KKz9SZUluaXRAQ1F1ZXJ5VW5rbm93bkBAUUFFWEtQQVBBVkNSb3dzZXRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW1wZXJzb25hdGlvblRva2VuQ2FjaGU6OlJlSW5pdGlhbGl6ZUlJU1Njb3Blcyh2b2lkKQ0KKz9SZUluaXRpYWxpemVJSVNTY29wZXNAQ0ltcGVyc29uYXRpb25Ub2tlbkNhY2hlQEBRQUVYWFoNCis7IHByaXZhdGU6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENQaHlzSW5kZXg6OlJlT3BlblN0cmVhbSh2b2lkKQ0KKz9SZU9wZW5TdHJlYW1AQ1BoeXNJbmRleEBARUFFWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDRHluU3RyZWFtOjpSZWFkKHZvaWQgKix1bnNpZ25lZCBsb25nKQ0KKz9SZWFkQENEeW5TdHJlYW1AQFFBRUtQQVhLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENSY292U3RybVRyYW5zOjpSZWFkKHZvaWQgKix1bnNpZ25lZCBsb25nKQ0KKz9SZWFkQENSY292U3RybVRyYW5zQEBRQUVLUEFYS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDUmVnQWNjZXNzOjpSZWFkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/UmVhZEBDUmVnQWNjZXNzQEBRQUVLUEJHS0BaDQorOyBwdWJsaWM6IHVuc2lnbmVkIHNob3J0ICogX190aGlzY2FsbCBDUmVnQWNjZXNzOjpSZWFkKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/UmVhZEBDUmVnQWNjZXNzQEBRQUVQQUdQQkcwQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1Byb3BTdG9yZU1hbmFnZXI6OlJlYWRQcmltYXJ5UHJvcGVydHkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdQUk9QVkFSSUFOVCAmKQ0KKz9SZWFkUHJpbWFyeVByb3BlcnR5QENQcm9wU3RvcmVNYW5hZ2VyQEBRQUVIS0tBQVV0YWdQUk9QVkFSSUFOVEBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ09MRVByb3BNYW5hZ2VyOjpSZWFkUHJvcGVydHkoY2xhc3MgQ0Z1bGxQcm9wU3BlYyBjb25zdCAmLHN0cnVjdCB0YWdQUk9QVkFSSUFOVCAmKQ0KKz9SZWFkUHJvcGVydHlAQ09MRVByb3BNYW5hZ2VyQEBRQUVIQUJWQ0Z1bGxQcm9wU3BlY0BAQUFVdGFnUFJPUFZBUklBTlRAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENQcm9wU3RvcmVNYW5hZ2VyOjpSZWFkUHJvcGVydHkoY2xhc3MgQ0NvbXBvc2l0ZVByb3BSZWNvcmQgJix1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdQUk9QVkFSSUFOVCAmKQ0KKz9SZWFkUHJvcGVydHlAQ1Byb3BTdG9yZU1hbmFnZXJAQFFBRUhBQVZDQ29tcG9zaXRlUHJvcFJlY29yZEBAS0FBVXRhZ1BST1BWQVJJQU5UQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUHJvcFN0b3JlTWFuYWdlcjo6UmVhZFByb3BlcnR5KGNsYXNzIENDb21wb3NpdGVQcm9wUmVjb3JkICYsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgJix1bnNpZ25lZCBjaGFyICosdW5zaWduZWQgaW50ICopDQorP1JlYWRQcm9wZXJ0eUBDUHJvcFN0b3JlTWFuYWdlckBAUUFFSEFBVkNDb21wb3NpdGVQcm9wUmVjb3JkQEBLQUFVdGFnUFJPUFZBUklBTlRAQFBBRVBBSUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENQcm9wU3RvcmVNYW5hZ2VyOjpSZWFkUHJvcGVydHkoY2xhc3MgQ0NvbXBvc2l0ZVByb3BSZWNvcmQgJix1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdQUk9QVkFSSUFOVCAqLHVuc2lnbmVkIGludCAqKQ0KKz9SZWFkUHJvcGVydHlAQ1Byb3BTdG9yZU1hbmFnZXJAQFFBRUhBQVZDQ29tcG9zaXRlUHJvcFJlY29yZEBAS1BBVXRhZ1BST1BWQVJJQU5UQEBQQUlAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUHJvcFN0b3JlTWFuYWdlcjo6UmVhZFByb3BlcnR5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgJikNCis/UmVhZFByb3BlcnR5QENQcm9wU3RvcmVNYW5hZ2VyQEBRQUVIS0tBQVV0YWdQUk9QVkFSSUFOVEBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1Byb3BTdG9yZU1hbmFnZXI6OlJlYWRQcm9wZXJ0eSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1BST1BWQVJJQU5UICYsdW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGludCAqKQ0KKz9SZWFkUHJvcGVydHlAQ1Byb3BTdG9yZU1hbmFnZXJAQFFBRUhLS0FBVXRhZ1BST1BWQVJJQU5UQEBQQUVQQUlAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUHJvcFN0b3JlTWFuYWdlcjo6UmVhZFByb3BlcnR5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgKix1bnNpZ25lZCBpbnQgKikNCis/UmVhZFByb3BlcnR5QENQcm9wU3RvcmVNYW5hZ2VyQEBRQUVIS0tQQVV0YWdQUk9QVkFSSUFOVEBAUEFJQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1Byb3BlcnR5U3RvcmU6OlJlYWRQcm9wZXJ0eShjbGFzcyBDUHJvcFJlY29yZE5vTG9jayAmLHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ1BST1BWQVJJQU5UICosdW5zaWduZWQgaW50ICopDQorP1JlYWRQcm9wZXJ0eUBDUHJvcGVydHlTdG9yZUBAUUFFSEFBVkNQcm9wUmVjb3JkTm9Mb2NrQEBLUEFVdGFnUFJPUFZBUklBTlRAQFBBSUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENQcm9wZXJ0eVN0b3JlOjpSZWFkUHJvcGVydHkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLHN0cnVjdCB0YWdQUk9QVkFSSUFOVCAmKQ0KKz9SZWFkUHJvcGVydHlAQ1Byb3BlcnR5U3RvcmVAQFFBRUhLS0FBVXRhZ1BST1BWQVJJQU5UQEBAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBjaGFyIF9fdGhpc2NhbGwgQ0RGQTo6UmVjb2duaXplKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1JlY29nbml6ZUBDREZBQEBRQUVFUEJHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDaVJlZ1BhcmFtczo6UmVmcmVzaChzdHJ1Y3QgSUNpQWRtaW5QYXJhbXMgKixpbnQpDQorP1JlZnJlc2hAQ0NpUmVnUGFyYW1zQEBRQUVYUEFVSUNpQWRtaW5QYXJhbXNAQEhAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0RlZkNvbHVtblJlZ0VudHJ5OjpSZWZyZXNoKGludCkNCis/UmVmcmVzaEBDRGVmQ29sdW1uUmVnRW50cnlAQFFBRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENXb3JrUXVldWU6OlJlZnJlc2hQYXJhbXModW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9SZWZyZXNoUGFyYW1zQENXb3JrUXVldWVAQFFBRVhLS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0RiUHJvcGVydGllczo6UmVsZWFzZSh2b2lkKQ0KKz9SZWxlYXNlQENEYlByb3BlcnRpZXNAQFVBR0tYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENFbXB0eVByb3BlcnR5TGlzdDo6UmVsZWFzZSh2b2lkKQ0KKz9SZWxlYXNlQENFbXB0eVByb3BlcnR5TGlzdEBAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0VudW1TdHJpbmc6OlJlbGVhc2Uodm9pZCkNCis/UmVsZWFzZUBDRW51bVN0cmluZ0BAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0VudW1Xb3JraWQ6OlJlbGVhc2Uodm9pZCkNCis/UmVsZWFzZUBDRW51bVdvcmtpZEBAVUFHS1haDQorOyBwdWJsaWM6IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgQ0Z3UHJvcGVydHlNYXBwZXI6OlJlbGVhc2Uodm9pZCkNCis/UmVsZWFzZUBDRndQcm9wZXJ0eU1hcHBlckBAVUFHS1haDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDSW1wZXJzb25hdGVSZW1vdGVBY2Nlc3M6OlJlbGVhc2Uodm9pZCkNCis/UmVsZWFzZUBDSW1wZXJzb25hdGVSZW1vdGVBY2Nlc3NAQFFBRVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgX19zdGRjYWxsIENRdWVyeVVua25vd246OlJlbGVhc2Uodm9pZCkNCis/UmVsZWFzZUBDUXVlcnlVbmtub3duQEBVQUdLWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENXb3JrUXVldWU6OlJlbGVhc2UoY2xhc3MgQ1dvcmtUaHJlYWQgKikNCis/UmVsZWFzZUBDV29ya1F1ZXVlQEBRQUVYUEFWQ1dvcmtUaHJlYWRAQEBaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1Byb3BlcnR5U3RvcmU6OlJlbGVhc2VSZWFkKGNsYXNzIENSZWFkV3JpdGVMb2NrUmVjb3JkICYpDQorP1JlbGVhc2VSZWFkQENQcm9wZXJ0eVN0b3JlQEBBQUVYQUFWQ1JlYWRXcml0ZUxvY2tSZWNvcmRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDV29ya1F1ZXVlOjpSZWxlYXNlV29ya1RocmVhZHModm9pZCkNCis/UmVsZWFzZVdvcmtUaHJlYWRzQENXb3JrUXVldWVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NvbHVtbnM6OlJlbW92ZSh1bnNpZ25lZCBpbnQpDQorP1JlbW92ZUBDQ29sdW1uc0BAUUFFWElAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0RiU29ydFNldDo6UmVtb3ZlKHVuc2lnbmVkIGludCkNCis/UmVtb3ZlQENEYlNvcnRTZXRAQFFBRVhJQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTb3J0OjpSZW1vdmUodW5zaWduZWQgaW50KQ0KKz9SZW1vdmVAQ1NvcnRAQFFBRVhJQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENXb3JrUXVldWU6OlJlbW92ZShjbGFzcyBQV29ya0l0ZW0gKikNCis/UmVtb3ZlQENXb3JrUXVldWVAQFFBRVhQQVZQV29ya0l0ZW1AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTWFjaGluZUFkbWluOjpSZW1vdmVDYXRhbG9nKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz9SZW1vdmVDYXRhbG9nQENNYWNoaW5lQWRtaW5AQFFBRVhQQkdIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENNYWNoaW5lQWRtaW46OlJlbW92ZUNhdGFsb2dGaWxlcyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9SZW1vdmVDYXRhbG9nRmlsZXNAQ01hY2hpbmVBZG1pbkBAUUFFWFBCR0BaDQorOyBwdWJsaWM6IGNsYXNzIENSZXN0cmljdGlvbiAqIF9fdGhpc2NhbGwgQ05vZGVSZXN0cmljdGlvbjo6UmVtb3ZlQ2hpbGQodW5zaWduZWQgaW50KQ0KKz9SZW1vdmVDaGlsZEBDTm9kZVJlc3RyaWN0aW9uQEBRQUVQQVZDUmVzdHJpY3Rpb25AQElAWg0KKzsgcHJvdGVjdGVkOiBjbGFzcyBDRGJDbWRUcmVlTm9kZSAqIF9fdGhpc2NhbGwgQ0RiQ21kVHJlZU5vZGU6OlJlbW92ZUZpcnN0Q2hpbGQodm9pZCkNCis/UmVtb3ZlRmlyc3RDaGlsZEBDRGJDbWRUcmVlTm9kZUBASUFFUEFWMUBYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NhdGFsb2dBZG1pbjo6UmVtb3ZlU2NvcGUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/UmVtb3ZlU2NvcGVAQ0NhdGFsb2dBZG1pbkBAUUFFWFBCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUGh5c1N0b3JhZ2U6OlJlb3BlbihpbnQpDQorP1Jlb3BlbkBDUGh5c1N0b3JhZ2VAQFFBRVhIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENFdmVudExvZzo6UmVwb3J0RXZlbnRXKGNsYXNzIENFdmVudEl0ZW0gJikNCis/UmVwb3J0RXZlbnRXQENFdmVudExvZ0BAUUFFWEFBVkNFdmVudEl0ZW1AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRndFdmVudEl0ZW06OlJlcG9ydEV2ZW50VyhzdHJ1Y3QgSUNpQ0FkdmlzZVN0YXR1cyAmKQ0KKz9SZXBvcnRFdmVudFdAQ0Z3RXZlbnRJdGVtQEBRQUVYQUFVSUNpQ0FkdmlzZVN0YXR1c0BAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1BoeXNTdG9yYWdlOjpSZXF1aXJlc0ZsdXNoKHVuc2lnbmVkIGxvbmcpDQorP1JlcXVpcmVzRmx1c2hAQ1BoeXNTdG9yYWdlQEBRQUVIS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUmVnQ2hhbmdlRXZlbnQ6OlJlc2V0KHZvaWQpDQorP1Jlc2V0QENSZWdDaGFuZ2VFdmVudEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUXVlcnlTY2FubmVyOjpSZXNldEJ1ZmZlcih1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9SZXNldEJ1ZmZlckBDUXVlcnlTY2FubmVyQEBRQUVYUEJHQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENBbGxvY1N0b3JhZ2VWYXJpYW50OjpSZXNldFR5cGUoY2xhc3MgUE1lbW9yeUFsbG9jYXRvciAmKQ0KKz9SZXNldFR5cGVAQ0FsbG9jU3RvcmFnZVZhcmlhbnRAQElBRVhBQVZQTWVtb3J5QWxsb2NhdG9yQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Byb2Nlc3M6OlJlc3VtZSh2b2lkKQ0KKz9SZXN1bWVAQ1Byb2Nlc3NAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1BoeXNTdG9yYWdlOjpSZXR1cm5CdWZmZXIodW5zaWduZWQgbG9uZyxpbnQsaW50KQ0KKz9SZXR1cm5CdWZmZXJAQ1BoeXNTdG9yYWdlQEBRQUVYS0hIQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENNbVN0cmVhbUNvbnNlY0J1Zjo6UmV3aW5kKHZvaWQpDQorP1Jld2luZEBDTW1TdHJlYW1Db25zZWNCdWZAQFFBRVhYWg0KKzsgdW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgU2FDb21wdXRlU2l6ZSh1bnNpZ25lZCBzaG9ydCxzdHJ1Y3QgdGFnU0FGRUFSUkFZICYpDQorP1NhQ29tcHV0ZVNpemVAQFlHS0dBQVV0YWdTQUZFQVJSQVlAQEBaDQorOyBpbnQgX19zdGRjYWxsIFNhQ3JlYXRlQW5kQ29weShjbGFzcyBQTWVtb3J5QWxsb2NhdG9yICYsc3RydWN0IHRhZ1NBRkVBUlJBWSAqLHN0cnVjdCB0YWdTQUZFQVJSQVkgKiAqKQ0KKz9TYUNyZWF0ZUFuZENvcHlAQFlHSEFBVlBNZW1vcnlBbGxvY2F0b3JAQFBBVXRhZ1NBRkVBUlJBWUBAUEFQQVUyQEBaDQorOyBpbnQgX19zdGRjYWxsIFNhQ3JlYXRlRGF0YShjbGFzcyBQVmFyQWxsb2NhdG9yICYsdW5zaWduZWQgc2hvcnQsc3RydWN0IHRhZ1NBRkVBUlJBWSAmLHN0cnVjdCB0YWdTQUZFQVJSQVkgJixpbnQpDQorP1NhQ3JlYXRlRGF0YUBAWUdIQUFWUFZhckFsbG9jYXRvckBAR0FBVXRhZ1NBRkVBUlJBWUBAMUhAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDUmNvdlN0cm1UcmFuczo6U2Vlayh1bnNpZ25lZCBsb25nKQ0KKz9TZWVrQENSY292U3RybVRyYW5zQEBRQUVIS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRGJRdWVyeVJlc3VsdHM6OlNlcmlhbGl6ZShjbGFzcyBQU2VyU3RyZWFtICYpY29uc3QgDQorP1NlcmlhbGl6ZUBDRGJRdWVyeVJlc3VsdHNAQFFCRVhBQVZQU2VyU3RyZWFtQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1BpZFJlbWFwcGVyOjpTZXQoY2xhc3MgWEFycmF5PHVuc2lnbmVkIGxvbmc+ICYpDQorP1NldEBDUGlkUmVtYXBwZXJAQFFBRVhBQVY/JFhBcnJheUBLQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Njb3BlQWRtaW46OlNldEFsaWFzKHVuc2lnbmVkIHNob3J0IGNvbnN0ICopDQorP1NldEFsaWFzQENTY29wZUFkbWluQEBRQUVYUEJHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTdG9yYWdlVmFyaWFudDo6U2V0Qk9PTChzaG9ydCx1bnNpZ25lZCBpbnQpDQorP1NldEJPT0xAQ1N0b3JhZ2VWYXJpYW50QEBRQUVYRklAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0FsbG9jU3RvcmFnZVZhcmlhbnQ6OlNldEJTVFIodW5zaWduZWQgc2hvcnQgKixjbGFzcyBQTWVtb3J5QWxsb2NhdG9yICYpDQorP1NldEJTVFJAQ0FsbG9jU3RvcmFnZVZhcmlhbnRAQFFBRVhQQUdBQVZQTWVtb3J5QWxsb2NhdG9yQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1N0b3JhZ2VWYXJpYW50OjpTZXRCU1RSKHVuc2lnbmVkIHNob3J0ICosdW5zaWduZWQgaW50KQ0KKz9TZXRCU1RSQENTdG9yYWdlVmFyaWFudEBAUUFFWFBBR0lAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Byb3BTdG9yZU1hbmFnZXI6OlNldEJhY2t1cFNpemUodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nKQ0KKz9TZXRCYWNrdXBTaXplQENQcm9wU3RvcmVNYW5hZ2VyQEBRQUVYS0tAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NhdFN0YXRlOjpTZXRDRCh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRDREBDQ2F0U3RhdGVAQFFBRVhQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1N0b3JhZ2VWYXJpYW50OjpTZXRDTFNJRChzdHJ1Y3QgX0dVSUQsdW5zaWduZWQgaW50KQ0KKz9TZXRDTFNJREBDU3RvcmFnZVZhcmlhbnRAQFFBRVhVX0dVSURAQElAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1N0b3JhZ2VWYXJpYW50OjpTZXRDWSh1bmlvbiB0YWdDWSx1bnNpZ25lZCBpbnQpDQorP1NldENZQENTdG9yYWdlVmFyaWFudEBAUUFFWFR0YWdDWUBASUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ2F0U3RhdGU6OlNldENhdGFsb2codW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0Q2F0YWxvZ0BDQ2F0U3RhdGVAQFFBRVhQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NhdFN0YXRlOjpTZXRDb2x1bW4odW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBpbnQpDQorP1NldENvbHVtbkBDQ2F0U3RhdGVAQFFBRVhQQkdJQFoNCis7IHByaXZhdGU6IHZvaWQgX190aGlzY2FsbCBDUXVlcnlQYXJzZXI6OlNldEN1cnJlbnRQcm9wZXJ0eSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGVudW0gUHJvcGVydHlUeXBlKQ0KKz9TZXRDdXJyZW50UHJvcGVydHlAQ1F1ZXJ5UGFyc2VyQEBBQUVYUEJHVzRQcm9wZXJ0eVR5cGVAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RvcmFnZVZhcmlhbnQ6OlNldERBVEUoZG91YmxlLHVuc2lnbmVkIGludCkNCis/U2V0REFURUBDU3RvcmFnZVZhcmlhbnRAQFFBRVhOSUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ2F0YWxvZ0FkbWluOjpTZXREV09SRFBhcmFtKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/U2V0RFdPUkRQYXJhbUBDQ2F0YWxvZ0FkbWluQEBRQUVYUEJHS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTWFjaGluZUFkbWluOjpTZXREV09SRFBhcmFtKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZykNCis/U2V0RFdPUkRQYXJhbUBDTWFjaGluZUFkbWluQEBRQUVYUEJHS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ2F0U3RhdGU6OlNldERlZmF1bHRQcm9wZXJ0eSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXREZWZhdWx0UHJvcGVydHlAQ0NhdFN0YXRlQEBRQUVYUEJHQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENSYW5nZVJlc3RyaWN0aW9uOjpTZXRFbmRLZXkoY2xhc3MgQ0tleUJ1ZiBjb25zdCAmKQ0KKz9TZXRFbmRLZXlAQ1JhbmdlUmVzdHJpY3Rpb25AQFFBRVhBQlZDS2V5QnVmQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Njb3BlQWRtaW46OlNldEV4Y2x1ZGUoaW50KQ0KKz9TZXRFeGNsdWRlQENTY29wZUFkbWluQEBRQUVYSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RvcmFnZVZhcmlhbnQ6OlNldEZJTEVUSU1FKHN0cnVjdCBfRklMRVRJTUUsdW5zaWduZWQgaW50KQ0KKz9TZXRGSUxFVElNRUBDU3RvcmFnZVZhcmlhbnRAQFFBRVhVX0ZJTEVUSU1FQEBJQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTdG9yYWdlVmFyaWFudDo6U2V0STIoc2hvcnQsdW5zaWduZWQgaW50KQ0KKz9TZXRJMkBDU3RvcmFnZVZhcmlhbnRAQFFBRVhGSUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RvcmFnZVZhcmlhbnQ6OlNldEk0KGxvbmcsdW5zaWduZWQgaW50KQ0KKz9TZXRJNEBDU3RvcmFnZVZhcmlhbnRAQFFBRVhKSUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RvcmFnZVZhcmlhbnQ6OlNldEk4KHVuaW9uIF9MQVJHRV9JTlRFR0VSLHVuc2lnbmVkIGludCkNCis/U2V0SThAQ1N0b3JhZ2VWYXJpYW50QEBRQUVYVF9MQVJHRV9JTlRFR0VSQEBJQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTdG9yYWdlVmFyaWFudDo6U2V0TFBTVFIoY2hhciBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/U2V0TFBTVFJAQ1N0b3JhZ2VWYXJpYW50QEBRQUVYUEJESUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RvcmFnZVZhcmlhbnQ6OlNldExQV1NUUih1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGludCkNCis/U2V0TFBXU1RSQENTdG9yYWdlVmFyaWFudEBAUUFFWFBCR0lAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NhdFN0YXRlOjpTZXRMb2NhbGUodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0TG9jYWxlQENDYXRTdGF0ZUBAUUFFWFBCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU2NvcGVBZG1pbjo6U2V0TG9nb25JbmZvKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKixjbGFzcyBDQ2F0YWxvZ0FkbWluICYpDQorP1NldExvZ29uSW5mb0BDU2NvcGVBZG1pbkBAUUFFWFBCRzBBQVZDQ2F0YWxvZ0FkbWluQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Byb3BTdG9yZU1hbmFnZXI6OlNldE1hcHBlZENhY2hlU2l6ZSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP1NldE1hcHBlZENhY2hlU2l6ZUBDUHJvcFN0b3JlTWFuYWdlckBAUUFFWEtLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDYXRTdGF0ZTo6U2V0TnVtYmVyT2ZDb2x1bW5zKHVuc2lnbmVkIGludCkNCis/U2V0TnVtYmVyT2ZDb2x1bW5zQENDYXRTdGF0ZUBAUUFFWElAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NhdFN0YXRlOjpTZXROdW1iZXJPZlNvcnRQcm9wcyh1bnNpZ25lZCBpbnQpDQorP1NldE51bWJlck9mU29ydFByb3BzQENDYXRTdGF0ZUBAUUFFWElAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Njb3BlQWRtaW46OlNldFBhdGgodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0UGF0aEBDU2NvcGVBZG1pbkBAUUFFWFBCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDQ29udGVudFJlc3RyaWN0aW9uOjpTZXRQaHJhc2UodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0UGhyYXNlQENDb250ZW50UmVzdHJpY3Rpb25AQFFBRVhQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ05hdExhbmd1YWdlUmVzdHJpY3Rpb246OlNldFBocmFzZSh1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz9TZXRQaHJhc2VAQ05hdExhbmd1YWdlUmVzdHJpY3Rpb25AQFFBRVhQQkdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0dlbmVyaWNDaVByb3h5OjpTZXRQcmlvcml0eSh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcpDQorP1NldFByaW9yaXR5QENHZW5lcmljQ2lQcm94eUBAUUFFWEtLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDRGJQcm9wZXJ0aWVzOjpTZXRQcm9wZXJ0aWVzKHVuc2lnbmVkIGxvbmcsc3RydWN0IHRhZ0RCUFJPUFNFVCAqIGNvbnN0KQ0KKz9TZXRQcm9wZXJ0aWVzQENEYlByb3BlcnRpZXNAQFVBR0pLUUFVdGFnREJQUk9QU0VUQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRGJDb2xJZDo6U2V0UHJvcGVydHkodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0UHJvcGVydHlAQ0RiQ29sSWRAQFFBRUhQQkdAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRGJQcm9wQmFzZVJlc3RyaWN0aW9uOjpTZXRQcm9wZXJ0eShzdHJ1Y3QgdGFnREJJRCBjb25zdCAmKQ0KKz9TZXRQcm9wZXJ0eUBDRGJQcm9wQmFzZVJlc3RyaWN0aW9uQEBRQUVIQUJVdGFnREJJREBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RiUHJvcEJhc2VSZXN0cmljdGlvbjo6U2V0UHJvcGVydHkoY2xhc3MgQ0RiQ29sdW1uTm9kZSBjb25zdCAmKQ0KKz9TZXRQcm9wZXJ0eUBDRGJQcm9wQmFzZVJlc3RyaWN0aW9uQEBRQUVIQUJWQ0RiQ29sdW1uTm9kZUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0Z1bGxQcm9wU3BlYzo6U2V0UHJvcGVydHkodW5zaWduZWQgc2hvcnQgY29uc3QgKikNCis/U2V0UHJvcGVydHlAQ0Z1bGxQcm9wU3BlY0BAUUFFSFBCR0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRnVsbFByb3BTcGVjOjpTZXRQcm9wZXJ0eSh1bnNpZ25lZCBsb25nKQ0KKz9TZXRQcm9wZXJ0eUBDRnVsbFByb3BTcGVjQEBRQUVYS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RvcmFnZVZhcmlhbnQ6OlNldFI0KGZsb2F0LHVuc2lnbmVkIGludCkNCis/U2V0UjRAQ1N0b3JhZ2VWYXJpYW50QEBRQUVYTUlAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1N0b3JhZ2VWYXJpYW50OjpTZXRSOChkb3VibGUsdW5zaWduZWQgaW50KQ0KKz9TZXRSOEBDU3RvcmFnZVZhcmlhbnRAQFFBRVhOSUBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENEYlNlbGVjdE5vZGU6OlNldFJlc3RyaWN0aW9uKGNsYXNzIENEYkNtZFRyZWVOb2RlICopDQorP1NldFJlc3RyaWN0aW9uQENEYlNlbGVjdE5vZGVAQFFBRUhQQVZDRGJDbWRUcmVlTm9kZUBAQFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENJbXBlcnNvbmF0ZVN5c3RlbTo6U2V0UnVubmluZ0FzU3lzdGVtKHZvaWQpDQorP1NldFJ1bm5pbmdBc1N5c3RlbUBDSW1wZXJzb25hdGVTeXN0ZW1AQFNHWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDTWFjaGluZUFkbWluOjpTZXRTWlBhcmFtKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9TZXRTWlBhcmFtQENNYWNoaW5lQWRtaW5AQFFBRVhQQkcwS0BaDQorOyB2b2lkIF9fc3RkY2FsbCBTZXRTY29wZVByb3BlcnRpZXMoc3RydWN0IElDb21tYW5kICosdW5zaWduZWQgaW50LHVuc2lnbmVkIHNob3J0IGNvbnN0ICogY29uc3QgKix1bnNpZ25lZCBsb25nIGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKiBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICogY29uc3QgKikNCis/U2V0U2NvcGVQcm9wZXJ0aWVzQEBZR1hQQVVJQ29tbWFuZEBASVBCUUJHUEJLMTFAWg0KKzsgbG9uZyBfX3N0ZGNhbGwgU2V0U2NvcGVQcm9wZXJ0aWVzTm9UaHJvdyhzdHJ1Y3QgSUNvbW1hbmQgKix1bnNpZ25lZCBpbnQsdW5zaWduZWQgc2hvcnQgY29uc3QgKiBjb25zdCAqLHVuc2lnbmVkIGxvbmcgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqIGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKiBjb25zdCAqKQ0KKz9TZXRTY29wZVByb3BlcnRpZXNOb1Rocm93QEBZR0pQQVVJQ29tbWFuZEBASVBCUUJHUEJLMTFAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgU2V0U2VjcmV0KHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP1NldFNlY3JldEBAWUdYUEJHMDBLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDYXRTdGF0ZTo6U2V0U29ydFByb3AodW5zaWduZWQgc2hvcnQgY29uc3QgKixlbnVtIFNPUlRESVIsdW5zaWduZWQgaW50KQ0KKz9TZXRTb3J0UHJvcEBDQ2F0U3RhdGVAQFFBRVhQQkdXNFNPUlRESVJAQElAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1JhbmdlUmVzdHJpY3Rpb246OlNldFN0YXJ0S2V5KGNsYXNzIENLZXlCdWYgY29uc3QgJikNCis/U2V0U3RhcnRLZXlAQ1JhbmdlUmVzdHJpY3Rpb25AQFFBRVhBQlZDS2V5QnVmQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1N0b3JhZ2VWYXJpYW50OjpTZXRVSTEodW5zaWduZWQgY2hhcix1bnNpZ25lZCBpbnQpDQorP1NldFVJMUBDU3RvcmFnZVZhcmlhbnRAQFFBRVhFSUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RvcmFnZVZhcmlhbnQ6OlNldFVJMih1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBpbnQpDQorP1NldFVJMkBDU3RvcmFnZVZhcmlhbnRAQFFBRVhHSUBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU3RvcmFnZVZhcmlhbnQ6OlNldFVJNCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGludCkNCis/U2V0VUk0QENTdG9yYWdlVmFyaWFudEBAUUFFWEtJQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTdG9yYWdlVmFyaWFudDo6U2V0VUk4KHVuaW9uIF9VTEFSR0VfSU5URUdFUix1bnNpZ25lZCBpbnQpDQorP1NldFVJOEBDU3RvcmFnZVZhcmlhbnRAQFFBRVhUX1VMQVJHRV9JTlRFR0VSQEBJQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENQcm9wZXJ0eVJlc3RyaWN0aW9uOjpTZXRWYWx1ZShzdHJ1Y3QgdGFnQkxPQiAmKQ0KKz9TZXRWYWx1ZUBDUHJvcGVydHlSZXN0cmljdGlvbkBAUUFFWEFBVXRhZ0JMT0JAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDUHJvcGVydHlSZXN0cmljdGlvbjo6U2V0VmFsdWUodW5zaWduZWQgc2hvcnQgKikNCis/U2V0VmFsdWVAQ1Byb3BlcnR5UmVzdHJpY3Rpb25AQFFBRVhQQUdAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Byb3BlcnR5UmVzdHJpY3Rpb246OlNldFZhbHVlKHN0cnVjdCBfR1VJRCAqKQ0KKz9TZXRWYWx1ZUBDUHJvcGVydHlSZXN0cmljdGlvbkBAUUFFWFBBVV9HVUlEQEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0RiQ21kVHJlZU5vZGU6OlNldFdlaWdodChsb25nKQ0KKz9TZXRXZWlnaHRAQ0RiQ21kVHJlZU5vZGVAQFFBRVhKQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENQcm9wU3RvcmVNYW5hZ2VyOjpTZXR1cCh1bnNpZ25lZCBsb25nLHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGludCx1bnNpZ25lZCBsb25nKQ0KKz9TZXR1cEBDUHJvcFN0b3JlTWFuYWdlckBAUUFFWEtLS0tIS0BaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRHluU3RyZWFtOjpTaHJpbmsoY2xhc3MgUFN0b3JhZ2UgJix1bnNpZ25lZCBsb25nKQ0KKz9TaHJpbmtAQ0R5blN0cmVhbUBAUUFFWEFBVlBTdG9yYWdlQEBLQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENQaHlzU3RvcmFnZTo6U2hyaW5rRnJvbUZyb250KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZykNCis/U2hyaW5rRnJvbUZyb250QENQaHlzU3RvcmFnZUBAUUFFS0tLQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENQaHlzU3RvcmFnZTo6U2hyaW5rVG9GaXQodm9pZCkNCis/U2hyaW5rVG9GaXRAQ1BoeXNTdG9yYWdlQEBRQUVYWFoNCis7IHB1YmxpYzogc3RhdGljIHZvaWQgX19zdGRjYWxsIENDaU9sZTo6U2h1dGRvd24odm9pZCkNCis/U2h1dGRvd25AQ0NpT2xlQEBTR1hYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1Byb3BTdG9yZU1hbmFnZXI6OlNodXRkb3duKHZvaWQpDQorP1NodXRkb3duQENQcm9wU3RvcmVNYW5hZ2VyQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTaHRPbGU6OlNodXRkb3duKHZvaWQpDQorP1NodXRkb3duQENTaHRPbGVAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1dvcmtRdWV1ZTo6U2h1dGRvd24odm9pZCkNCis/U2h1dGRvd25AQ1dvcmtRdWV1ZUBAUUFFWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDRGJRdWVyeVJlc3VsdHM6OlNpemUodm9pZCkNCis/U2l6ZUBDRGJRdWVyeVJlc3VsdHNAQFFBRUtYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGxvbmcgX19zdGRjYWxsIENFbnVtU3RyaW5nOjpTa2lwKHVuc2lnbmVkIGxvbmcpDQorP1NraXBAQ0VudW1TdHJpbmdAQFVBR0pLQFoNCis7IHB1YmxpYzogdmlydHVhbCBsb25nIF9fc3RkY2FsbCBDRW51bVdvcmtpZDo6U2tpcCh1bnNpZ25lZCBsb25nKQ0KKz9Ta2lwQENFbnVtV29ya2lkQEBVQUdKS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENNZW1EZVNlclN0cmVhbTo6U2tpcEJsb2IodW5zaWduZWQgbG9uZykNCis/U2tpcEJsb2JAQ01lbURlU2VyU3RyZWFtQEBVQUVYS0BaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENNZW1EZVNlclN0cmVhbTo6U2tpcEJ5dGUodm9pZCkNCis/U2tpcEJ5dGVAQ01lbURlU2VyU3RyZWFtQEBVQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQ01lbURlU2VyU3RyZWFtOjpTa2lwQ2hhcih1bnNpZ25lZCBsb25nKQ0KKz9Ta2lwQ2hhckBDTWVtRGVTZXJTdHJlYW1AQFVBRVhLQFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQ01lbURlU2VyU3RyZWFtOjpTa2lwRG91YmxlKHZvaWQpDQorP1NraXBEb3VibGVAQ01lbURlU2VyU3RyZWFtQEBVQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQ01lbURlU2VyU3RyZWFtOjpTa2lwRmxvYXQodm9pZCkNCis/U2tpcEZsb2F0QENNZW1EZVNlclN0cmVhbUBAVUFFWFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgdm9pZCBfX3RoaXNjYWxsIENNZW1EZVNlclN0cmVhbTo6U2tpcEdVSUQodm9pZCkNCis/U2tpcEdVSURAQ01lbURlU2VyU3RyZWFtQEBVQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQ01lbURlU2VyU3RyZWFtOjpTa2lwTG9uZyh2b2lkKQ0KKz9Ta2lwTG9uZ0BDTWVtRGVTZXJTdHJlYW1AQFVBRVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIHZvaWQgX190aGlzY2FsbCBDTWVtRGVTZXJTdHJlYW06OlNraXBVTG9uZyh2b2lkKQ0KKz9Ta2lwVUxvbmdAQ01lbURlU2VyU3RyZWFtQEBVQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQ01lbURlU2VyU3RyZWFtOjpTa2lwVVNob3J0KHZvaWQpDQorP1NraXBVU2hvcnRAQ01lbURlU2VyU3RyZWFtQEBVQUVYWFoNCis7IHB1YmxpYzogdmlydHVhbCB2b2lkIF9fdGhpc2NhbGwgQ01lbURlU2VyU3RyZWFtOjpTa2lwV0NoYXIodW5zaWduZWQgbG9uZykNCis/U2tpcFdDaGFyQENNZW1EZVNlclN0cmVhbUBAVUFFWEtAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2F0YWxvZ0FkbWluOjpTdGFydCh2b2lkKQ0KKz9TdGFydEBDQ2F0YWxvZ0FkbWluQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ01hY2hpbmVBZG1pbjo6U3RhcnRDSSh2b2lkKQ0KKz9TdGFydENJQENNYWNoaW5lQWRtaW5AQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDQ2F0YWxvZ0FkbWluOjpTdG9wKHZvaWQpDQorP1N0b3BAQ0NhdGFsb2dBZG1pbkBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENNYWNoaW5lQWRtaW46OlN0b3BDSSh2b2lkKQ0KKz9TdG9wQ0lAQ01hY2hpbmVBZG1pbkBAUUFFSFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRmlsdGVyRGFlbW9uOjpTdG9wRmlsdGVyaW5nKHZvaWQpDQorP1N0b3BGaWx0ZXJpbmdAQ0ZpbHRlckRhZW1vbkBAUUFFWFhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIENLZXk6OlN0ckxlbih2b2lkKWNvbnN0IA0KKz9TdHJMZW5AQ0tleUBAUUJFSVhaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGludCBfX3RoaXNjYWxsIENLZXlCdWY6OlN0ckxlbih2b2lkKWNvbnN0IA0KKz9TdHJMZW5AQ0tleUJ1ZkBAUUJFSVhaDQorOyB2b2lkIF9fY2RlY2wgU3lzdGVtRXhjZXB0aW9uVHJhbnNsYXRvcih1bnNpZ25lZCBpbnQsc3RydWN0IF9FWENFUFRJT05fUE9JTlRFUlMgKikNCis/U3lzdGVtRXhjZXB0aW9uVHJhbnNsYXRvckBAWUFYSVBBVV9FWENFUFRJT05fUE9JTlRFUlNAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRGJDbWRUcmVlTm9kZTo6VHJhbnNmZXJOb2RlKGNsYXNzIENEYkNtZFRyZWVOb2RlICopDQorP1RyYW5zZmVyTm9kZUBDRGJDbWRUcmVlTm9kZUBAUUFFWFBBVjFAQFoNCis7IHB1YmxpYzogdW5zaWduZWQgbG9uZyBfX3RoaXNjYWxsIENSZXN0cmljdGlvbjo6VHJlZUNvdW50KHZvaWQpY29uc3QgDQorP1RyZWVDb3VudEBDUmVzdHJpY3Rpb25AQFFCRUtYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ01hY2hpbmVBZG1pbjo6VHVuZVBlcmZvcm1hbmNlKGludCx1bnNpZ25lZCBzaG9ydCx1bnNpZ25lZCBzaG9ydCkNCis/VHVuZVBlcmZvcm1hbmNlQENNYWNoaW5lQWRtaW5AQFFBRVhIR0dAWg0KKzsgdm9pZCBfX3N0ZGNhbGwgVVJMRXNjYXBlVyh1bnNpZ25lZCBzaG9ydCBjb25zdCAqLGNsYXNzIENWaXJ0dWFsU3RyaW5nICYsdW5zaWduZWQgbG9uZyxpbnQpDQorP1VSTEVzY2FwZVdAQFlHWFBCR0FBVkNWaXJ0dWFsU3RyaW5nQEBLSEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENEYkJ5R3VpZDo6VW5NYXJzaGFsbChjbGFzcyBQRGVTZXJTdHJlYW0gJikNCis/VW5NYXJzaGFsbEBDRGJCeUd1aWRAQFFBRUhBQVZQRGVTZXJTdHJlYW1AQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENEYkNtZFRyZWVOb2RlOjpVbk1hcnNoYWxsKGNsYXNzIFBEZVNlclN0cmVhbSAmKQ0KKz9Vbk1hcnNoYWxsQENEYkNtZFRyZWVOb2RlQEBRQUVIQUFWUERlU2VyU3RyZWFtQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRGJDb2xJZDo6VW5NYXJzaGFsbChjbGFzcyBQRGVTZXJTdHJlYW0gJikNCis/VW5NYXJzaGFsbEBDRGJDb2xJZEBAUUFFSEFBVlBEZVNlclN0cmVhbUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RiQ29udGVudFZlY3Rvcjo6VW5NYXJzaGFsbChjbGFzcyBQRGVTZXJTdHJlYW0gJikNCis/VW5NYXJzaGFsbEBDRGJDb250ZW50VmVjdG9yQEBRQUVIQUFWUERlU2VyU3RyZWFtQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRGJOdW1lcmljOjpVbk1hcnNoYWxsKGNsYXNzIFBEZVNlclN0cmVhbSAmKQ0KKz9Vbk1hcnNoYWxsQENEYk51bWVyaWNAQFFBRUhBQVZQRGVTZXJTdHJlYW1AQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENEYlBhcmFtZXRlcjo6VW5NYXJzaGFsbChjbGFzcyBQRGVTZXJTdHJlYW0gJikNCis/VW5NYXJzaGFsbEBDRGJQYXJhbWV0ZXJAQFFBRUhBQVZQRGVTZXJTdHJlYW1AQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENEYlByb3A6OlVuTWFyc2hhbGwoY2xhc3MgUERlU2VyU3RyZWFtICYpDQorP1VuTWFyc2hhbGxAQ0RiUHJvcEBAUUFFSEFBVlBEZVNlclN0cmVhbUBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ0RiUHJvcFNldDo6VW5NYXJzaGFsbChjbGFzcyBQRGVTZXJTdHJlYW0gJikNCis/VW5NYXJzaGFsbEBDRGJQcm9wU2V0QEBRQUVIQUFWUERlU2VyU3RyZWFtQEBAWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDRGJQcm9wZXJ0aWVzOjpVbk1hcnNoYWxsKGNsYXNzIFBEZVNlclN0cmVhbSAmKQ0KKz9Vbk1hcnNoYWxsQENEYlByb3BlcnRpZXNAQFFBRUhBQVZQRGVTZXJTdHJlYW1AQEBaDQorOyBwdWJsaWM6IHN0YXRpYyBjbGFzcyBDUmVzdHJpY3Rpb24gKiBfX3N0ZGNhbGwgQ1Jlc3RyaWN0aW9uOjpVbk1hcnNoYWxsKGNsYXNzIFBEZVNlclN0cmVhbSAmKQ0KKz9Vbk1hcnNoYWxsQENSZXN0cmljdGlvbkBAU0dQQVYxQEFBVlBEZVNlclN0cmVhbUBAQFoNCis7IHB1YmxpYzogc3RhdGljIGNsYXNzIENEYkNtZFRyZWVOb2RlICogX19zdGRjYWxsIENEYkNtZFRyZWVOb2RlOjpVbk1hcnNoYWxsVHJlZShjbGFzcyBQRGVTZXJTdHJlYW0gJikNCis/VW5NYXJzaGFsbFRyZWVAQ0RiQ21kVHJlZU5vZGVAQFNHUEFWMUBBQVZQRGVTZXJTdHJlYW1AQEBaDQorOyB2b2lkIF9fc3RkY2FsbCBVblBpY2tsZShpbnQsY2xhc3MgWFB0cjxjbGFzcyBDQ29sdW1uU2V0PiAmLGNsYXNzIFhQdHI8Y2xhc3MgQ1Jlc3RyaWN0aW9uPiAmLGNsYXNzIFhQdHI8Y2xhc3MgQ1NvcnRTZXQ+ICYsY2xhc3MgWFB0cjxjbGFzcyBDQ2F0ZWdvcml6YXRpb25TZXQ+ICYsY2xhc3MgQ1Jvd3NldFByb3BlcnRpZXMgJixjbGFzcyBYUHRyPGNsYXNzIENQaWRNYXBwZXI+ICYsdW5zaWduZWQgY2hhciAqLHVuc2lnbmVkIGxvbmcpDQorP1VuUGlja2xlQEBZR1hIQUFWPyRYUHRyQFZDQ29sdW1uU2V0QEBAQEFBVj8kWFB0ckBWQ1Jlc3RyaWN0aW9uQEBAQEFBVj8kWFB0ckBWQ1NvcnRTZXRAQEBAQUFWPyRYUHRyQFZDQ2F0ZWdvcml6YXRpb25TZXRAQEBAQUFWQ1Jvd3NldFByb3BlcnRpZXNAQEFBVj8kWFB0ckBWQ1BpZE1hcHBlckBAQEBQQUVLQFoNCis7IHByb3RlY3RlZDogdm9pZCBfX3RoaXNjYWxsIENSY292U3RybVRyYW5zOjpVbm1hcChlbnVtIENSY292U3RvcmFnZUhkcjo6RGF0YUNvcHlOdW0pDQorP1VubWFwQENSY292U3RybVRyYW5zQEBJQUVYVzREYXRhQ29weU51bUBDUmNvdlN0b3JhZ2VIZHJAQEBaDQorOyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBVcGRhdGVDb250ZW50SW5kZXgodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqLHVuc2lnbmVkIHNob3J0IGNvbnN0ICosaW50KQ0KKz9VcGRhdGVDb250ZW50SW5kZXhAQFlHS1BCRzAwSEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRGlza0ZyZWVTdGF0dXM6OlVwZGF0ZURpc2tMb3dJbmZvKHZvaWQpDQorP1VwZGF0ZURpc2tMb3dJbmZvQENEaXNrRnJlZVN0YXR1c0BAUUFFWFhaDQorOyBpbnQgX19zdGRjYWxsIFZUX1ZBUklBTlRfRVEoc3RydWN0IHRhZ1BST1BWQVJJQU5UIGNvbnN0ICYsc3RydWN0IHRhZ1BST1BWQVJJQU5UIGNvbnN0ICYpDQorP1ZUX1ZBUklBTlRfRVFAQFlHSEFCVXRhZ1BST1BWQVJJQU5UQEAwQFoNCis7IGludCBfX3N0ZGNhbGwgVlRfVkFSSUFOVF9HRShzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgY29uc3QgJixzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgY29uc3QgJikNCis/VlRfVkFSSUFOVF9HRUBAWUdIQUJVdGFnUFJPUFZBUklBTlRAQDBAWg0KKzsgaW50IF9fc3RkY2FsbCBWVF9WQVJJQU5UX0dUKHN0cnVjdCB0YWdQUk9QVkFSSUFOVCBjb25zdCAmLHN0cnVjdCB0YWdQUk9QVkFSSUFOVCBjb25zdCAmKQ0KKz9WVF9WQVJJQU5UX0dUQEBZR0hBQlV0YWdQUk9QVkFSSUFOVEBAMEBaDQorOyBpbnQgX19zdGRjYWxsIFZUX1ZBUklBTlRfTEUoc3RydWN0IHRhZ1BST1BWQVJJQU5UIGNvbnN0ICYsc3RydWN0IHRhZ1BST1BWQVJJQU5UIGNvbnN0ICYpDQorP1ZUX1ZBUklBTlRfTEVAQFlHSEFCVXRhZ1BST1BWQVJJQU5UQEAwQFoNCis7IGludCBfX3N0ZGNhbGwgVlRfVkFSSUFOVF9MVChzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgY29uc3QgJixzdHJ1Y3QgdGFnUFJPUFZBUklBTlQgY29uc3QgJikNCis/VlRfVkFSSUFOVF9MVEBAWUdIQUJVdGFnUFJPUFZBUklBTlRAQDBAWg0KKzsgaW50IF9fc3RkY2FsbCBWVF9WQVJJQU5UX05FKHN0cnVjdCB0YWdQUk9QVkFSSUFOVCBjb25zdCAmLHN0cnVjdCB0YWdQUk9QVkFSSUFOVCBjb25zdCAmKQ0KKz9WVF9WQVJJQU5UX05FQEBZR0hBQlV0YWdQUk9QVkFSSUFOVEBAMEBaDQorOyBpbnQgX19zdGRjYWxsIFZhbGlkYXRlU2NvcGVSZXN0cmljdGlvbihjbGFzcyBDUmVzdHJpY3Rpb24gKikNCis/VmFsaWRhdGVTY29wZVJlc3RyaWN0aW9uQEBZR0hQQVZDUmVzdHJpY3Rpb25AQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDRGJTY2FsYXJWYWx1ZTo6VmFsdWUoY2xhc3MgQ1N0b3JhZ2VWYXJpYW50ICYpDQorP1ZhbHVlQENEYlNjYWxhclZhbHVlQEBRQUVYQUFWQ1N0b3JhZ2VWYXJpYW50QEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgUFJjb3ZTdG9yYWdlT2JqOjpWZXJpZnlDb25zaXN0ZW5jeSh2b2lkKQ0KKz9WZXJpZnlDb25zaXN0ZW5jeUBQUmNvdlN0b3JhZ2VPYmpAQFFBRVhYWg0KKzsgdm9pZCBfX3N0ZGNhbGwgVmVyaWZ5VGhyZWFkSGFzQWRtaW5Qcml2aWxlZ2Uodm9pZCkNCis/VmVyaWZ5VGhyZWFkSGFzQWRtaW5Qcml2aWxlZ2VAQFlHWFhaDQorOyB1bnNpZ25lZCBsb25nIF9fc3RkY2FsbCBXaWRlQ2hhclRvWEFycmF5TXVsdGlCeXRlKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgbG9uZyx1bnNpZ25lZCBpbnQsY2xhc3MgWEFycmF5PHVuc2lnbmVkIGNoYXI+ICYpDQorP1dpZGVDaGFyVG9YQXJyYXlNdWx0aUJ5dGVAQFlHS1BCR0tJQUFWPyRYQXJyYXlARUBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENEeW5TdHJlYW06OldyaXRlKHZvaWQgKix1bnNpZ25lZCBsb25nKQ0KKz9Xcml0ZUBDRHluU3RyZWFtQEBRQUVYUEFYS0BaDQorOyBwcm90ZWN0ZWQ6IHZvaWQgX190aGlzY2FsbCBDUmNvdlN0cm1UcmFuczo6V3JpdGUodm9pZCBjb25zdCAqLHVuc2lnbmVkIGxvbmcpDQorP1dyaXRlQENSY292U3RybVRyYW5zQEBJQUVYUEJYS0BaDQorOyBwdWJsaWM6IGxvbmcgX190aGlzY2FsbCBDUHJvcFN0b3JlTWFuYWdlcjo6V3JpdGVQcmltYXJ5UHJvcGVydHkoY2xhc3MgQ0NvbXBvc2l0ZVByb3BSZWNvcmRGb3JXcml0ZXMgJix1bnNpZ25lZCBsb25nLGNsYXNzIENTdG9yYWdlVmFyaWFudCBjb25zdCAmKQ0KKz9Xcml0ZVByaW1hcnlQcm9wZXJ0eUBDUHJvcFN0b3JlTWFuYWdlckBAUUFFSkFBVkNDb21wb3NpdGVQcm9wUmVjb3JkRm9yV3JpdGVzQEBLQUJWQ1N0b3JhZ2VWYXJpYW50QEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1Byb3BTdG9yZU1hbmFnZXI6OldyaXRlUHJpbWFyeVByb3BlcnR5KHVuc2lnbmVkIGxvbmcsdW5zaWduZWQgbG9uZyxjbGFzcyBDU3RvcmFnZVZhcmlhbnQgY29uc3QgJikNCis/V3JpdGVQcmltYXJ5UHJvcGVydHlAQ1Byb3BTdG9yZU1hbmFnZXJAQFFBRUpLS0FCVkNTdG9yYWdlVmFyaWFudEBAQFoNCis7IHB1YmxpYzogbG9uZyBfX3RoaXNjYWxsIENQcm9wU3RvcmVNYW5hZ2VyOjpXcml0ZVByb3BlcnR5KGNsYXNzIENDb21wb3NpdGVQcm9wUmVjb3JkRm9yV3JpdGVzICYsdW5zaWduZWQgbG9uZyxjbGFzcyBDU3RvcmFnZVZhcmlhbnQgY29uc3QgJikNCis/V3JpdGVQcm9wZXJ0eUBDUHJvcFN0b3JlTWFuYWdlckBAUUFFSkFBVkNDb21wb3NpdGVQcm9wUmVjb3JkRm9yV3JpdGVzQEBLQUJWQ1N0b3JhZ2VWYXJpYW50QEBAWg0KKzsgcHVibGljOiBsb25nIF9fdGhpc2NhbGwgQ1Byb3BTdG9yZU1hbmFnZXI6OldyaXRlUHJvcGVydHkodW5zaWduZWQgbG9uZyx1bnNpZ25lZCBsb25nLGNsYXNzIENTdG9yYWdlVmFyaWFudCBjb25zdCAmKQ0KKz9Xcml0ZVByb3BlcnR5QENQcm9wU3RvcmVNYW5hZ2VyQEBRQUVKS0tBQlZDU3RvcmFnZVZhcmlhbnRAQEBaDQorOyBwdWJsaWM6IHVuc2lnbmVkIGxvbmcgX190aGlzY2FsbCBDUHJvcFN0b3JlTWFuYWdlcjo6V3JpdGVQcm9wZXJ0eUluTmV3UmVjb3JkKHVuc2lnbmVkIGxvbmcsY2xhc3MgQ1N0b3JhZ2VWYXJpYW50IGNvbnN0ICYpDQorP1dyaXRlUHJvcGVydHlJbk5ld1JlY29yZEBDUHJvcFN0b3JlTWFuYWdlckBAUUFFS0tBQlZDU3RvcmFnZVZhcmlhbnRAQEBaDQorOyBwcml2YXRlOiBjbGFzcyBDRGJQcm9qZWN0TGlzdEFuY2hvciAqIF9fdGhpc2NhbGwgQ0RiTmVzdGluZ05vZGU6Ol9GaW5kR3JvdXBMaXN0QW5jaG9yKHZvaWQpDQorP19GaW5kR3JvdXBMaXN0QW5jaG9yQENEYk5lc3RpbmdOb2RlQEBBQUVQQVZDRGJQcm9qZWN0TGlzdEFuY2hvckBAWFoNCis7IHByaXZhdGU6IGNsYXNzIENEYlByb2plY3RMaXN0QW5jaG9yICogX190aGlzY2FsbCBDRGJQcm9qZWN0Tm9kZTo6X0ZpbmRPckFkZEFuY2hvcih2b2lkKQ0KKz9fRmluZE9yQWRkQW5jaG9yQENEYlByb2plY3ROb2RlQEBBQUVQQVZDRGJQcm9qZWN0TGlzdEFuY2hvckBAWFoNCis7IHByaXZhdGU6IGNsYXNzIENEYlNvcnRMaXN0QW5jaG9yICogX190aGlzY2FsbCBDRGJTb3J0Tm9kZTo6X0ZpbmRPckFkZEFuY2hvcih2b2lkKQ0KKz9fRmluZE9yQWRkQW5jaG9yQENEYlNvcnROb2RlQEBBQUVQQVZDRGJTb3J0TGlzdEFuY2hvckBAWFoNCis7IHByaXZhdGU6IGNsYXNzIENEYlNjYWxhclZhbHVlICogX190aGlzY2FsbCBDRGJQcm9wZXJ0eVJlc3RyaWN0aW9uOjpfRmluZE9yQWRkVmFsdWVOb2RlKHZvaWQpDQorP19GaW5kT3JBZGRWYWx1ZU5vZGVAQ0RiUHJvcGVydHlSZXN0cmljdGlvbkBAQUFFUEFWQ0RiU2NhbGFyVmFsdWVAQFhaDQorOyBwcml2YXRlOiBpbnQgX190aGlzY2FsbCBDSW1wZXJzb25hdGVSZW1vdGVBY2Nlc3M6Ol9JbXBlcnNvbmF0ZUlmKHVuc2lnbmVkIHNob3J0IGNvbnN0ICosdW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBsb25nKQ0KKz9fSW1wZXJzb25hdGVJZkBDSW1wZXJzb25hdGVSZW1vdGVBY2Nlc3NAQEFBRUhQQkcwS0BaDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgbG9uZyAgQ0dsb2JhbFByb3BGaWxlUmVmcmVzaGVyOjpfZHdMYXN0Q2hlY2tNb21lbnQNCis/X2R3TGFzdENoZWNrTW9tZW50QENHbG9iYWxQcm9wRmlsZVJlZnJlc2hlckBAMEtBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBzdHJ1Y3QgX0ZJTEVUSU1FICBDR2xvYmFsUHJvcEZpbGVSZWZyZXNoZXI6Ol9mdEZpbGUNCis/X2Z0RmlsZUBDR2xvYmFsUHJvcEZpbGVSZWZyZXNoZXJAQDBVX0ZJTEVUSU1FQEBBIERBVEENCis7IHByaXZhdGU6IHN0YXRpYyBjbGFzcyBDUHJvcExpc3RGaWxlICogIENMb2NhbEdsb2JhbFByb3BlcnR5TGlzdDo6X3BHbG9iYWxQcm9wTGlzdEZpbGUNCis/X3BHbG9iYWxQcm9wTGlzdEZpbGVAQ0xvY2FsR2xvYmFsUHJvcGVydHlMaXN0QEAwUEFWQ1Byb3BMaXN0RmlsZUBAQSBEQVRBDQorOyBwcml2YXRlOiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgKiAgQ0dsb2JhbFByb3BGaWxlUmVmcmVzaGVyOjpfd2NzRmlsZU5hbWUNCis/X3djc0ZpbGVOYW1lQENHbG9iYWxQcm9wRmlsZVJlZnJlc2hlckBAMFBBR0EgREFUQQ0KKzsgdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIF93Y3N0b3VpNjQodW5zaWduZWQgc2hvcnQgY29uc3QgKix1bnNpZ25lZCBzaG9ydCAqICosaW50KQ0KKz9fd2NzdG91aTY0QEBZQV9LUEJHUEFQQUdIQFoNCis7IHZvaWQgX19zdGRjYWxsIGNpRGVsZXRlKHZvaWQgKikNCis/Y2lEZWxldGVAQFlHWFBBWEBaDQorOyBpbnQgX19zdGRjYWxsIGNpSXNWYWxpZFBvaW50ZXIodm9pZCBjb25zdCAqKQ0KKz9jaUlzVmFsaWRQb2ludGVyQEBZR0hQQlhAWg0KKzsgdm9pZCAqIF9fc3RkY2FsbCBjaU5ldyh1bnNpZ25lZCBpbnQpDQorP2NpTmV3QEBZR1BBWElAWg0KKzsgcHVibGljOiB1bnNpZ25lZCBsb25nIF9fdGhpc2NhbGwgQ0ZpbGVCdWZmZXI6OmZnZXRzdyhjbGFzcyBYR3Jvd2FibGU8dW5zaWduZWQgc2hvcnQsMjYwPiAmKQ0KKz9mZ2V0c3dAQ0ZpbGVCdWZmZXJAQFFBRUtBQVY/JFhHcm93YWJsZUBHJDBCQUVAQEBAWg0KKzsgdW5zaWduZWQgc2hvcnQgKiBfX3N0ZGNhbGwgd2NzaXBhdHRlcm4odW5zaWduZWQgc2hvcnQgKix1bnNpZ25lZCBzaG9ydCBjb25zdCAqKQ0KKz93Y3NpcGF0dGVybkBAWUdQQUdQQUdQQkdAWg0KK0ZzQ2lTaHV0ZG93bg0KK19BYm9ydE1lcmdlc0AxNg0KK0JlZ2luQ2FjaGVUcmFuc2FjdGlvbg0KK0JpbmRJRmlsdGVyRnJvbVN0b3JhZ2UNCitCaW5kSUZpbHRlckZyb21TdHJlYW0NCitDSUJ1aWxkUXVlcnlOb2RlDQorQ0lCdWlsZFF1ZXJ5VHJlZQ0KK0NJQ3JlYXRlQ29tbWFuZA0KK0NJR2V0R2xvYmFsUHJvcGVydHlMaXN0DQorQ0lNYWtlSUNvbW1hbmQNCitDSVJlc3RyaWN0aW9uVG9GdWxsVHJlZQ0KK0NJU3RhdGUNCitDSVRleHRUb0Z1bGxUcmVlDQorQ0lUZXh0VG9GdWxsVHJlZUV4DQorQ0lUZXh0VG9TZWxlY3RUcmVlDQorQ0lUZXh0VG9TZWxlY3RUcmVlRXgNCitDaVN2Y01haW4NCitDb2xsZWN0Q0lJU0FQSVBlcmZvcm1hbmNlRGF0YQ0KK0NvbGxlY3RDSVBlcmZvcm1hbmNlRGF0YQ0KK0NvbGxlY3RGSUxURVJQZXJmb3JtYW5jZURhdGENCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK0RvbmVDSUlTQVBJUGVyZm9ybWFuY2VEYXRhDQorRG9uZUNJUGVyZm9ybWFuY2VEYXRhDQorRG9uZUZJTFRFUlBlcmZvcm1hbmNlRGF0YQ0KK0VuZENhY2hlVHJhbnNhY3Rpb24NCitfRm9yY2VNYXN0ZXJNZXJnZUAxNg0KK0luaXRpYWxpemVDSUlTQVBJUGVyZm9ybWFuY2VEYXRhDQorSW5pdGlhbGl6ZUNJUGVyZm9ybWFuY2VEYXRhDQorSW5pdGlhbGl6ZUZJTFRFUlBlcmZvcm1hbmNlRGF0YQ0KK19Mb2FkQkhJRmlsdGVyQDE2DQorTG9hZEJpbmFyeUZpbHRlcg0KK0xvYWRJRmlsdGVyDQorTG9hZElGaWx0ZXJFeA0KK0xvYWRUZXh0RmlsdGVyDQorTG9jYXRlQ2F0YWxvZ3MNCitMb2NhdGVDYXRhbG9nc0ENCitMb2NhdGVDYXRhbG9nc1cNCitTZXRDYXRhbG9nU3RhdGUNCitTZXR1cENhY2hlDQorU2V0dXBDYWNoZUV4DQorX1N0YXJ0RldDaVN2Y1dvcmtAMTINCitfU3RvcEZXQ2lTdmNXb3JrQDE2DQorU3ZjRW50cnlfQ2lTdmMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cmFzYWRobHAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3Jhc2FkaGxwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lODUxOTdkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3Jhc2FkaGxwLmRlZgpAQCAtMCwwICsxLDE0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHJhc2FkaGxwLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSByYXNhZGhscC5kbGwNCitFWFBPUlRTDQorQWNzSGxwQXR0ZW1wdENvbm5lY3Rpb24NCitBY3NIbHBOYkNvbm5lY3Rpb24NCitBY3NIbHBOb3RlTmV3Q29ubmVjdGlvbg0KK1dTQXR0ZW1wdEF1dG9kaWFsQWRkcg0KK1dTQXR0ZW1wdEF1dG9kaWFsTmFtZQ0KK1dTTm90ZVN1Y2Nlc3NmdWxIb3N0ZW50TG9va3VwDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3Jhc2FwaTMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dyYXNhcGkzMi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTEwNjE5NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dyYXNhcGkzMi5kZWYKQEAgLTAsMCArMSwxNTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUkFTQVBJMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFJBU0FQSTMyLmRsbA0KK0VYUE9SVFMNCitERE1GcmVlUGhvbmVib29rQ29udGV4dA0KK0RETUdldFBob25lYm9va0luZm8NCitEd0Nsb25lRW50cnkNCitEd0RlbGV0ZVN1YkVudHJ5DQorRHdFbnVtRW50cmllc0ZvckFsbFVzZXJzDQorRHdFbnVtRW50cnlEZXRhaWxzDQorRHdSYXNVbmluaXRpYWxpemUNCitSYXNBdXRvRGlhbFNoYXJlZENvbm5lY3Rpb24NCitSYXNBdXRvZGlhbEFkZHJlc3NUb05ldHdvcmsNCitSYXNBdXRvZGlhbEVudHJ5VG9OZXR3b3JrDQorUmFzQ2xlYXJDb25uZWN0aW9uU3RhdGlzdGljcw0KK1Jhc0NsZWFyTGlua1N0YXRpc3RpY3MNCitSYXNDb25uZWN0aW9uTm90aWZpY2F0aW9uQQ0KK1Jhc0Nvbm5lY3Rpb25Ob3RpZmljYXRpb25XDQorUmFzQ3JlYXRlUGhvbmVib29rRW50cnlBDQorUmFzQ3JlYXRlUGhvbmVib29rRW50cnlXDQorUmFzRGVsZXRlRW50cnlBDQorUmFzRGVsZXRlRW50cnlXDQorUmFzRGVsZXRlU3ViRW50cnlBDQorUmFzRGVsZXRlU3ViRW50cnlXDQorUmFzRGlhbEENCitSYXNEaWFsVw0KK1Jhc0RpYWxXb3cNCitSYXNFZGl0UGhvbmVib29rRW50cnlBDQorUmFzRWRpdFBob25lYm9va0VudHJ5Vw0KK1Jhc0VudW1BdXRvZGlhbEFkZHJlc3Nlc0ENCitSYXNFbnVtQXV0b2RpYWxBZGRyZXNzZXNXDQorUmFzRW51bUNvbm5lY3Rpb25zQQ0KK1Jhc0VudW1Db25uZWN0aW9uc1cNCitSYXNFbnVtQ29ubmVjdGlvbnNXb3cNCitSYXNFbnVtRGV2aWNlc0ENCitSYXNFbnVtRGV2aWNlc1cNCitSYXNFbnVtRW50cmllc0ENCitSYXNFbnVtRW50cmllc1cNCitSYXNFbnVtRW50cmllc1dvdw0KK1Jhc0ZyZWVFYXBVc2VySWRlbnRpdHlBDQorUmFzRnJlZUVhcFVzZXJJZGVudGl0eVcNCitSYXNHZXRBdXRvZGlhbEFkZHJlc3NBDQorUmFzR2V0QXV0b2RpYWxBZGRyZXNzVw0KK1Jhc0dldEF1dG9kaWFsRW5hYmxlQQ0KK1Jhc0dldEF1dG9kaWFsRW5hYmxlVw0KK1Jhc0dldEF1dG9kaWFsUGFyYW1BDQorUmFzR2V0QXV0b2RpYWxQYXJhbVcNCitSYXNHZXRDb25uZWN0UmVzcG9uc2UNCitSYXNHZXRDb25uZWN0U3RhdHVzQQ0KK1Jhc0dldENvbm5lY3RTdGF0dXNXDQorUmFzR2V0Q29ubmVjdFN0YXR1c1dvdw0KK1Jhc0dldENvbm5lY3Rpb25TdGF0aXN0aWNzDQorUmFzR2V0Q291bnRyeUluZm9BDQorUmFzR2V0Q291bnRyeUluZm9XDQorUmFzR2V0Q3JlZGVudGlhbHNBDQorUmFzR2V0Q3JlZGVudGlhbHNXDQorUmFzR2V0Q3VzdG9tQXV0aERhdGFBDQorUmFzR2V0Q3VzdG9tQXV0aERhdGFXDQorUmFzR2V0RWFwVXNlckRhdGFBDQorUmFzR2V0RWFwVXNlckRhdGFXDQorUmFzR2V0RWFwVXNlcklkZW50aXR5QQ0KK1Jhc0dldEVhcFVzZXJJZGVudGl0eVcNCitSYXNHZXRFbnRyeURpYWxQYXJhbXNBDQorUmFzR2V0RW50cnlEaWFsUGFyYW1zVw0KK1Jhc0dldEVudHJ5SHJhc2Nvbm5BDQorUmFzR2V0RW50cnlIcmFzY29ublcNCitSYXNHZXRFbnRyeVByb3BlcnRpZXNBDQorUmFzR2V0RW50cnlQcm9wZXJ0aWVzVw0KK1Jhc0dldEVycm9yU3RyaW5nQQ0KK1Jhc0dldEVycm9yU3RyaW5nVw0KK1Jhc0dldEVycm9yU3RyaW5nV293DQorUmFzR2V0SHBvcnQNCitSYXNHZXRMaW5rU3RhdGlzdGljcw0KK1Jhc0dldFByb2plY3Rpb25JbmZvQQ0KK1Jhc0dldFByb2plY3Rpb25JbmZvVw0KK1Jhc0dldFN1YkVudHJ5SGFuZGxlQQ0KK1Jhc0dldFN1YkVudHJ5SGFuZGxlVw0KK1Jhc0dldFN1YkVudHJ5UHJvcGVydGllc0ENCitSYXNHZXRTdWJFbnRyeVByb3BlcnRpZXNXDQorUmFzSGFuZ1VwQQ0KK1Jhc0hhbmdVcFcNCitSYXNIYW5nVXBXb3cNCitSYXNJbnZva2VFYXBVSQ0KK1Jhc0lzUm91dGVyQ29ubmVjdGlvbg0KK1Jhc0lzU2hhcmVkQ29ubmVjdGlvbg0KK1Jhc1F1ZXJ5UmVkaWFsT25MaW5rRmFpbHVyZQ0KK1Jhc1F1ZXJ5U2hhcmVkQXV0b0RpYWwNCitSYXNRdWVyeVNoYXJlZENvbm5lY3Rpb24NCitSYXNSZW5hbWVFbnRyeUENCitSYXNSZW5hbWVFbnRyeVcNCitSYXNTY3JpcHRFeGVjdXRlDQorUmFzU2NyaXB0R2V0RXZlbnRDb2RlDQorUmFzU2NyaXB0R2V0SXBBZGRyZXNzDQorUmFzU2NyaXB0SW5pdA0KK1Jhc1NjcmlwdFJlY2VpdmUNCitSYXNTY3JpcHRTZW5kDQorUmFzU2NyaXB0VGVybQ0KK1Jhc1NldEF1dG9kaWFsQWRkcmVzc0ENCitSYXNTZXRBdXRvZGlhbEFkZHJlc3NXDQorUmFzU2V0QXV0b2RpYWxFbmFibGVBDQorUmFzU2V0QXV0b2RpYWxFbmFibGVXDQorUmFzU2V0QXV0b2RpYWxQYXJhbUENCitSYXNTZXRBdXRvZGlhbFBhcmFtVw0KK1Jhc1NldENyZWRlbnRpYWxzQQ0KK1Jhc1NldENyZWRlbnRpYWxzVw0KK1Jhc1NldEN1c3RvbUF1dGhEYXRhQQ0KK1Jhc1NldEN1c3RvbUF1dGhEYXRhVw0KK1Jhc1NldEVhcFVzZXJEYXRhQQ0KK1Jhc1NldEVhcFVzZXJEYXRhVw0KK1Jhc1NldEVudHJ5RGlhbFBhcmFtc0ENCitSYXNTZXRFbnRyeURpYWxQYXJhbXNXDQorUmFzU2V0RW50cnlQcm9wZXJ0aWVzQQ0KK1Jhc1NldEVudHJ5UHJvcGVydGllc1cNCitSYXNTZXRPbGRQYXNzd29yZA0KK1Jhc1NldFNoYXJlZEF1dG9EaWFsDQorUmFzU2V0U3ViRW50cnlQcm9wZXJ0aWVzQQ0KK1Jhc1NldFN1YkVudHJ5UHJvcGVydGllc1cNCitSYXNWYWxpZGF0ZUVudHJ5TmFtZUENCitSYXNWYWxpZGF0ZUVudHJ5TmFtZVcNCitSYXNmaWxlQ2xvc2UNCitSYXNmaWxlRGVsZXRlTGluZQ0KK1Jhc2ZpbGVGaW5kRmlyc3RMaW5lDQorUmFzZmlsZUZpbmRMYXN0TGluZQ0KK1Jhc2ZpbGVGaW5kTWFya2VkTGluZQ0KK1Jhc2ZpbGVGaW5kTmV4dEtleUxpbmUNCitSYXNmaWxlRmluZE5leHRMaW5lDQorUmFzZmlsZUZpbmRQcmV2TGluZQ0KK1Jhc2ZpbGVGaW5kU2VjdGlvbkxpbmUNCitSYXNmaWxlR2V0S2V5VmFsdWVGaWVsZHMNCitSYXNmaWxlR2V0TGluZQ0KK1Jhc2ZpbGVHZXRMaW5lTWFyaw0KK1Jhc2ZpbGVHZXRMaW5lVGV4dA0KK1Jhc2ZpbGVHZXRMaW5lVHlwZQ0KK1Jhc2ZpbGVHZXRTZWN0aW9uTmFtZQ0KK1Jhc2ZpbGVJbnNlcnRMaW5lDQorUmFzZmlsZUxvYWQNCitSYXNmaWxlTG9hZEV4DQorUmFzZmlsZUxvYWRJbmZvDQorUmFzZmlsZVB1dEtleVZhbHVlRmllbGRzDQorUmFzZmlsZVB1dExpbmVNYXJrDQorUmFzZmlsZVB1dExpbmVUZXh0DQorUmFzZmlsZVB1dFNlY3Rpb25OYW1lDQorUmFzZmlsZVdyaXRlDQorU2hhcmVkQWNjZXNzUmVzcG9uc2VMaXN0VG9TdHJpbmcNCitTaGFyZWRBY2Nlc3NSZXNwb25zZVN0cmluZ1RvTGlzdA0KK1VuSW5pdGlhbGl6ZVJBUw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dyYXNhdXRvLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dyYXNhdXRvLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZDIxYThkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3Jhc2F1dG8uZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcmFzYXV0by5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcmFzYXV0by5kbGwNCitFWFBPUlRTDQorU2VydmljZU1haW4NCitTZXRBZGRyZXNzRGlzYWJsZWRFeA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dyYXNjaGFwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dyYXNjaGFwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40OTQ3NDdjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3Jhc2NoYXAuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUkFTQ0hBUC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUkFTQ0hBUC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitSYXNDcEVudW1Qcm90b2NvbElkcw0KK1Jhc0NwR2V0SW5mbw0KK1Jhc0VhcENyZWF0ZUNvbm5lY3Rpb25Qcm9wZXJ0aWVzDQorUmFzRWFwQ3JlYXRlVXNlclByb3BlcnRpZXMNCitSYXNFYXBGcmVlTWVtb3J5DQorUmFzRWFwR2V0Q3JlZGVudGlhbHMNCitSYXNFYXBHZXRJZGVudGl0eQ0KK1Jhc0VhcEdldEluZm8NCitSYXNFYXBJbnZva2VDb25maWdVSQ0KK1Jhc0VhcEludm9rZUludGVyYWN0aXZlVUkNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cmFzY3Rycy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cmFzY3Rycy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDM4M2IyNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dyYXNjdHJzLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHJhc2N0cnMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHJhc2N0cnMuZGxsDQorRVhQT1JUUw0KK09wZW5SYXNQZXJmb3JtYW5jZURhdGENCitDb2xsZWN0UmFzUGVyZm9ybWFuY2VEYXRhDQorQ2xvc2VSYXNQZXJmb3JtYW5jZURhdGENCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cmFzZGxnLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dyYXNkbGcuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU4OTJkNGQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cmFzZGxnLmRlZgpAQCAtMCwwICsxLDQ1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFJBU0RMRy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUkFTRExHLmRsbA0KK0VYUE9SVFMNCitEd1Rlcm1pbmFsRGxnDQorR2V0UmFzRGlhbE91dFByb3RvY29scw0KK1Jhc0F1dG9kaWFsRGlzYWJsZURsZ0ENCitSYXNBdXRvZGlhbERpc2FibGVEbGdXDQorUmFzQXV0b2RpYWxRdWVyeURsZ0ENCitSYXNBdXRvZGlhbFF1ZXJ5RGxnVw0KK1Jhc0RpYWxEbGdBDQorUmFzRGlhbERsZ1cNCitSYXNFbnRyeURsZ0ENCitSYXNFbnRyeURsZ1cNCitSYXNNb25pdG9yRGxnQQ0KK1Jhc01vbml0b3JEbGdXDQorUmFzUGhvbmVib29rRGxnQQ0KK1Jhc1Bob25lYm9va0RsZ1cNCitSYXNTcnZBZGRQcm9wUGFnZXMNCitSYXNTcnZBZGRXaXpQYWdlcw0KK1Jhc1NydkFsbG93Q29ubmVjdGlvbnNDb25maWcNCitSYXNTcnZDbGVhbnVwU2VydmljZQ0KK1Jhc1NydkVudW1Db25uZWN0aW9ucw0KK1Jhc1Nydkhhbmd1cENvbm5lY3Rpb24NCitSYXNTcnZJbml0aWFsaXplU2VydmljZQ0KK1Jhc1NydklzQ29ubmVjdGlvbkNvbm5lY3RlZA0KK1Jhc1NydklzSUNDb25maWd1cmVkDQorUmFzU3J2SXNTZXJ2aWNlUnVubmluZw0KK1Jhc1NydlF1ZXJ5U2hvd0ljb24NCitSYXNVc2VyRW5hYmxlTWFudWFsRGlhbA0KK1Jhc1VzZXJHZXRNYW51YWxEaWFsDQorUmFzVXNlclByZWZzRGxnDQorUmFzV2l6Q3JlYXRlTmV3RW50cnkNCitSYXNXaXpHZXROQ0NGbGFncw0KK1Jhc1dpekdldFN1Z2dlc3RlZEVudHJ5TmFtZQ0KK1Jhc1dpekdldFVzZXJJbnB1dENvbm5lY3Rpb25OYW1lDQorUmFzV2l6SXNFbnRyeVJlbmFtYWJsZQ0KK1Jhc1dpelF1ZXJ5TWF4UGFnZUNvdW50DQorUmFzV2l6U2V0RW50cnlOYW1lDQorUm91dGVyRW50cnlEbGdBDQorUm91dGVyRW50cnlEbGdXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3Jhc21hbi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cmFzbWFuLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYjUyOWY2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3Jhc21hbi5kZWYKQEAgLTAsMCArMSwxNzAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcmFzbWFuLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSByYXNtYW4uZGxsDQorRVhQT1JUUw0KK0R3UmFzR2V0SG9zdEJ5TmFtZQ0KK0lzUmFzbWFuUHJvY2Vzcw0KK1Jhc0FjdGl2YXRlUm91dGUNCitSYXNBY3RpdmF0ZVJvdXRlRXgNCitSYXNBZGRDb25uZWN0aW9uUG9ydA0KK1Jhc0FkZE5vdGlmaWNhdGlvbg0KK1Jhc0FsbG9jYXRlUm91dGUNCitSYXNCdW5kbGVDbGVhclN0YXRpc3RpY3MNCitSYXNCdW5kbGVDbGVhclN0YXRpc3RpY3NFeA0KK1Jhc0J1bmRsZUdldFBvcnQNCitSYXNCdW5kbGVHZXRTdGF0aXN0aWNzDQorUmFzQnVuZGxlR2V0U3RhdGlzdGljc0V4DQorUmFzQ29tcHJlc3Npb25HZXRJbmZvDQorUmFzQ29tcHJlc3Npb25TZXRJbmZvDQorUmFzQ29ubmVjdGlvbkVudW0NCitSYXNDb25uZWN0aW9uR2V0U3RhdGlzdGljcw0KK1Jhc0NyZWF0ZUNvbm5lY3Rpb24NCitSYXNEZUFsbG9jYXRlUm91dGUNCitSYXNEZXN0cm95Q29ubmVjdGlvbg0KK1Jhc0RldmljZUNvbm5lY3QNCitSYXNEZXZpY2VFbnVtDQorUmFzRGV2aWNlR2V0SW5mbw0KK1Jhc0RldmljZVNldEluZm8NCitSYXNEb0lrZQ0KK1Jhc0VuYWJsZUlwU2VjDQorUmFzRW51bUNvbm5lY3Rpb25Qb3J0cw0KK1Jhc0VudW1MYW5OZXRzDQorUmFzRmluZFByZXJlcXVpc2l0ZUVudHJ5DQorUmFzRnJlZUJ1ZmZlcg0KK1Jhc0dldEJhbmR3aWR0aFV0aWxpemF0aW9uDQorUmFzR2V0QmVzdEludGVyZmFjZQ0KK1Jhc0dldEJ1ZmZlcg0KK1Jhc0dldENhbGxlZElkSW5mbw0KK1Jhc0dldENvbm5lY3RJbmZvDQorUmFzR2V0Q29ubmVjdGlvblBhcmFtcw0KK1Jhc0dldENvbm5lY3Rpb25Vc2VyRGF0YQ0KK1Jhc0dldEN1c3RvbVNjcmlwdERsbA0KK1Jhc0dldERldkNvbmZpZw0KK1Jhc0dldERldkNvbmZpZ0V4DQorUmFzR2V0RGV2aWNlQ29uZmlnSW5mbw0KK1Jhc0dldERldmljZU5hbWUNCitSYXNHZXREZXZpY2VOYW1lVw0KK1Jhc0dldERpYWxQYXJhbXMNCitSYXNHZXRFYXBVc2VySW5mbw0KK1Jhc0dldEZyYW1pbmdDYXBhYmlsaXRpZXMNCitSYXNHZXRIQ29ubkZyb21FbnRyeQ0KK1Jhc0dldEhwb3J0RnJvbUNvbm5lY3Rpb24NCitSYXNHZXRJbmZvDQorUmFzR2V0SW5mb0V4DQorUmFzR2V0S2V5DQorUmFzR2V0TmRpc3dhbkRyaXZlckNhcHMNCitSYXNHZXROdW1Qb3J0T3Blbg0KK1Jhc0dldFBvcnRVc2VyRGF0YQ0KK1Jhc0dldFByb3RvY29sSW5mbw0KK1Jhc0dldFRpbWVTaW5jZUxhc3RBY3Rpdml0eQ0KK1Jhc0dldFVuaWNvZGVEZXZpY2VOYW1lDQorUmFzR2V0VXNlckNyZWRlbnRpYWxzDQorUmFzSW5pdGlhbGl6ZQ0KK1Jhc0luaXRpYWxpemVOb1dhaXQNCitSYXNJc0lwU2VjRW5hYmxlZA0KK1Jhc0lzUHVsc2VEaWFsDQorUmFzSXNUcnVzdGVkQ3VzdG9tRGxsDQorUmFzTGlua0dldFN0YXRpc3RpY3MNCitSYXNQblBDb250cm9sDQorUmFzUG9ydEJ1bmRsZQ0KK1Jhc1BvcnRDYW5jZWxSZWNlaXZlDQorUmFzUG9ydENsZWFyU3RhdGlzdGljcw0KK1Jhc1BvcnRDbG9zZQ0KK1Jhc1BvcnRDb25uZWN0Q29tcGxldGUNCitSYXNQb3J0RGlzY29ubmVjdA0KK1Jhc1BvcnRFbnVtDQorUmFzUG9ydEVudW1Qcm90b2NvbHMNCitSYXNQb3J0RnJlZQ0KK1Jhc1BvcnRHZXRCdW5kbGUNCitSYXNQb3J0R2V0QnVuZGxlZFBvcnQNCitSYXNQb3J0R2V0RnJhbWluZ0V4DQorUmFzUG9ydEdldEluZm8NCitSYXNQb3J0R2V0UHJvdG9jb2xDb21wcmVzc2lvbg0KK1Jhc1BvcnRHZXRTdGF0aXN0aWNzDQorUmFzUG9ydEdldFN0YXRpc3RpY3NFeA0KK1Jhc1BvcnRMaXN0ZW4NCitSYXNQb3J0T3Blbg0KK1Jhc1BvcnRPcGVuRXgNCitSYXNQb3J0UmVjZWl2ZQ0KK1Jhc1BvcnRSZWNlaXZlRXgNCitSYXNQb3J0UmVnaXN0ZXJTbGlwDQorUmFzUG9ydFJlc2VydmUNCitSYXNQb3J0UmV0cmlldmVVc2VyRGF0YQ0KK1Jhc1BvcnRTZW5kDQorUmFzUG9ydFNldEZyYW1pbmcNCitSYXNQb3J0U2V0RnJhbWluZ0V4DQorUmFzUG9ydFNldEluZm8NCitSYXNQb3J0U2V0UHJvdG9jb2xDb21wcmVzc2lvbg0KK1Jhc1BvcnRTdG9yZVVzZXJEYXRhDQorUmFzUHBwQ2FsbGJhY2sNCitSYXNQcHBDaGFuZ2VQYXNzd29yZA0KK1Jhc1BwcEdldEVhcEluZm8NCitSYXNQcHBHZXRJbmZvDQorUmFzUHBwUmV0cnkNCitSYXNQcHBTZXRFYXBJbmZvDQorUmFzUHBwU3RhcnQNCitSYXNQcHBTdGFydGVkDQorUmFzUHBwU3RvcA0KK1Jhc1Byb3RvY29sRW51bQ0KK1Jhc1JQQ0JpbmQNCitSYXNSZWZDb25uZWN0aW9uDQorUmFzUmVmZXJlbmNlQ3VzdG9tQ291bnQNCitSYXNSZWZlcmVuY2VSYXNtYW4NCitSYXNSZWdpc3RlclBuUEV2ZW50DQorUmFzUmVnaXN0ZXJQblBIYW5kbGVyDQorUmFzUmVnaXN0ZXJSZWRpYWxDYWxsYmFjaw0KK1Jhc1JlcXVlc3ROb3RpZmljYXRpb24NCitSYXNScGNDb25uZWN0DQorUmFzUnBjQ29ubmVjdFNlcnZlcg0KK1Jhc1JwY0RlbGV0ZUVudHJ5DQorUmFzUnBjRGV2aWNlRW51bQ0KK1Jhc1JwY0Rpc2Nvbm5lY3QNCitSYXNScGNEaXNjb25uZWN0U2VydmVyDQorUmFzUnBjRW51bUNvbm5lY3Rpb25zDQorUmFzUnBjR2V0Q291bnRyeUluZm8NCitSYXNScGNHZXREZXZDb25maWcNCitSYXNScGNHZXRFcnJvclN0cmluZw0KK1Jhc1JwY0dldEluc3RhbGxlZFByb3RvY29scw0KK1Jhc1JwY0dldEluc3RhbGxlZFByb3RvY29sc0V4DQorUmFzUnBjR2V0U3lzdGVtRGlyZWN0b3J5DQorUmFzUnBjR2V0VXNlclByZWZlcmVuY2VzDQorUmFzUnBjR2V0VmVyc2lvbg0KK1Jhc1JwY1BvcnRFbnVtDQorUmFzUnBjUG9ydEdldEluZm8NCitSYXNScGNSZW1vdGVHZXRTeXN0ZW1EaXJlY3RvcnkNCitSYXNScGNSZW1vdGVHZXRVc2VyUHJlZmVyZW5jZXMNCitSYXNScGNSZW1vdGVSYXNEZWxldGVFbnRyeQ0KK1Jhc1JwY1JlbW90ZVNldFVzZXJQcmVmZXJlbmNlcw0KK1Jhc1JwY1NldFVzZXJQcmVmZXJlbmNlcw0KK1Jhc1JwY1VubG9hZERsbA0KK1Jhc1NlY3VyaXR5RGlhbG9nR2V0SW5mbw0KK1Jhc1NlY3VyaXR5RGlhbG9nUmVjZWl2ZQ0KK1Jhc1NlY3VyaXR5RGlhbG9nU2VuZA0KK1Jhc1NlbmRDcmVkcw0KK1Jhc1NlbmROb3RpZmljYXRpb24NCitSYXNTZW5kUHBwTWVzc2FnZVRvUmFzbWFuDQorUmFzU2VydmVyUG9ydENsb3NlDQorUmFzU2V0QWRkcmVzc0Rpc2FibGUNCitSYXNTZXRCYXBQb2xpY3kNCitSYXNTZXRDYWNoZWRDcmVkZW50aWFscw0KK1Jhc1NldENhbGxlZElkSW5mbw0KK1Jhc1NldENvbW1TZXR0aW5ncw0KK1Jhc1NldENvbm5lY3Rpb25QYXJhbXMNCitSYXNTZXRDb25uZWN0aW9uVXNlckRhdGENCitSYXNTZXREZXZDb25maWcNCitSYXNTZXREZXZpY2VDb25maWdJbmZvDQorUmFzU2V0RGlhbFBhcmFtcw0KK1Jhc1NldEVhcExvZ29uSW5mbw0KK1Jhc1NldEVhcFVzZXJJbmZvDQorUmFzU2V0SW9Db21wbGV0aW9uUG9ydA0KK1Jhc1NldEtleQ0KK1Jhc1NldFBvcnRVc2VyRGF0YQ0KK1Jhc1NldFJhc2RpYWxJbmZvDQorUmFzU2V0Um91dGVyVXNhZ2UNCitSYXNTaWduYWxOZXdDb25uZWN0aW9uDQorUmFzU3RhcnRSYXNBdXRvSWZSZXF1aXJlZA0KK1Jhc21hblVuaW5pdGlhbGl6ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dyYXNtYW5zLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dyYXNtYW5zLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NGMwNTM3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3Jhc21hbnMuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcmFzbWFucy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcmFzbWFucy5kbGwNCitFWFBPUlRTDQorU2VydmljZU1haW4NCitTZXJ2aWNlUmVxdWVzdEluUHJvY2Vzcw0KK1NldEVudHJ5RGlhbFBhcmFtcw0KK19SYXNtYW5FbmdpbmUNCitfUmFzbWFuSW5pdA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dyYXNtb250ci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cmFzbW9udHIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhlYmFlNjIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cmFzbW9udHIuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUkFTTU9OVFIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFJBU01PTlRSLmRsbA0KK0VYUE9SVFMNCitHZXREaWFnbm9zdGljRnVuY3Rpb25zDQorSW5pdEhlbHBlckRsbA0KK1J1dGxBbGxvYw0KK1J1dGxBc3NpZ25tZW50RnJvbVRva2VuQW5kRHdvcmQNCitSdXRsQXNzaWdubWVudEZyb21Ub2tlbnMNCitSdXRsQ2xvc2VEdW1wRmlsZQ0KK1J1dGxDcmVhdGVEdW1wRmlsZQ0KK1J1dGxEd29yZER1cA0KK1J1dGxGcmVlDQorUnV0bEdldE9zVmVyc2lvbg0KK1J1dGxHZXRUYWdUb2tlbg0KK1J1dGxJc0hlbHBUb2tlbg0KK1J1dGxQYXJzZQ0KK1J1dGxTdHJEdXANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cmFzbXhzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dyYXNteHMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMyYmFkN2QKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cmFzbXhzLmRlZgpAQCAtMCwwICsxLDE1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHJhc214cy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcmFzbXhzLmRsbA0KK0VYUE9SVFMNCitEZXZpY2VDb25uZWN0DQorRGV2aWNlRG9uZQ0KK0RldmljZUVudW0NCitEZXZpY2VHZXRJbmZvDQorRGV2aWNlTGlzdGVuDQorRGV2aWNlU2V0SW5mbw0KK0RldmljZVdvcmsNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cmFzcHBwLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dyYXNwcHAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY3MGEyYTIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cmFzcHBwLmRlZgpAQCAtMCwwICsxLDM1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHJhc3BwcC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcmFzcHBwLmRsbA0KK0VYUE9SVFMNCitIZWxwZXJSZXNldERlZmF1bHRJbnRlcmZhY2VOZXQNCitIZWxwZXJSZXNldERlZmF1bHRJbnRlcmZhY2VOZXRFeA0KK0hlbHBlclNldERlZmF1bHRJbnRlcmZhY2VOZXQNCitIZWxwZXJTZXREZWZhdWx0SW50ZXJmYWNlTmV0RXgNCitJcHhDcEluaXQNCitJcHhjcEJpbmQNCitQcHBEZG1CYXBDYWxsYmFja1Jlc3VsdA0KK1BwcERkbUNhbGxiYWNrRG9uZQ0KK1BwcERkbUNoYW5nZU5vdGlmaWNhdGlvbg0KK1BwcERkbURlSW5pdA0KK1BwcERkbUluaXQNCitQcHBEZG1SZW1vdmVRdWFyYW50aW5lDQorUHBwRGRtU2VuZEludGVyZmFjZUluZm8NCitQcHBEZG1TdGFydA0KK1BwcERkbVN0b3ANCitQcHBTdG9wDQorUmFzQ3BFbnVtUHJvdG9jb2xJZHMNCitSYXNDcEdldEluZm8NCitSYXNTcnZyQWNxdWlyZUFkZHJlc3MNCitSYXNTcnZyQWN0aXZhdGVJcA0KK1Jhc1NydnJJbml0aWFsaXplDQorUmFzU3J2clF1ZXJ5U2VydmVyQWRkcmVzc2VzDQorUmFzU3J2clJlbGVhc2VBZGRyZXNzDQorUmFzU3J2clVuaW5pdGlhbGl6ZQ0KK1NlbmRQUFBNZXNzYWdlVG9FbmdpbmUNCitTdGFydFBQUA0KK1N0b3BQUFANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cmFzcmFkLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dyYXNyYWQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ4OTZmYjIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cmFzcmFkLmRlZgpAQCAtMCwwICsxLDIzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFJBU1JBRC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUkFTUkFELmRsbA0KK0VYUE9SVFMNCitPcGVuDQorQ29sbGVjdA0KK0Nsb3NlDQorUmFzQWNjdENvbmZpZ0NoYW5nZU5vdGlmaWNhdGlvbg0KK1Jhc0FjY3RQcm92aWRlckZyZWVBdHRyaWJ1dGVzDQorUmFzQWNjdFByb3ZpZGVySW5pdGlhbGl6ZQ0KK1Jhc0FjY3RQcm92aWRlckludGVyaW1BY2NvdW50aW5nDQorUmFzQWNjdFByb3ZpZGVyU3RhcnRBY2NvdW50aW5nDQorUmFzQWNjdFByb3ZpZGVyU3RvcEFjY291bnRpbmcNCitSYXNBY2N0UHJvdmlkZXJUZXJtaW5hdGUNCitSYXNBdXRoQ29uZmlnQ2hhbmdlTm90aWZpY2F0aW9uDQorUmFzQXV0aFByb3ZpZGVyQXV0aGVudGljYXRlVXNlcg0KK1Jhc0F1dGhQcm92aWRlckZyZWVBdHRyaWJ1dGVzDQorUmFzQXV0aFByb3ZpZGVySW5pdGlhbGl6ZQ0KK1Jhc0F1dGhQcm92aWRlclRlcm1pbmF0ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dyYXNzYXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dyYXNzYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNTRiNjNkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3Jhc3NhcGkuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUkFTU0FQSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUkFTU0FQSS5kbGwNCitFWFBPUlRTDQorUmFzQWRtaW5ETExJbml0DQorUmFzQWRtaW5Vc2VyU2V0SW5mbw0KK1Jhc0FkbWluVXNlckdldEluZm8NCitSYXNBZG1pbkdldFVzZXJBY2NvdW50U2VydmVyDQorUmFzQWRtaW5Qb3J0RW51bQ0KK1Jhc0FkbWluUG9ydEdldEluZm8NCitSYXNBZG1pblBvcnRDbGVhclN0YXRpc3RpY3MNCitSYXNBZG1pblNlcnZlckdldEluZm8NCitSYXNBZG1pblBvcnREaXNjb25uZWN0DQorUmFzQWRtaW5GcmVlQnVmZmVyDQorUmFzQWRtaW5TZXRVc2VyUGFybXMNCitSYXNBZG1pbkdldFVzZXJQYXJtcw0KK1Jhc0FkbWluQ29tcHJlc3NQaG9uZU51bWJlcg0KK1Jhc0FkbWluR2V0RXJyb3JTdHJpbmcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cmFzc2VyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dyYXNzZXIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjllN2IxOWQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cmFzc2VyLmRlZgpAQCAtMCwwICsxLDI3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHJhc3Nlci5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcmFzc2VyLmRsbA0KK0VYUE9SVFMNCitQb3J0Q2hhbmdlQ2FsbGJhY2sNCitQb3J0Q2xlYXJTdGF0aXN0aWNzDQorUG9ydENsb3NlDQorUG9ydENvbXByZXNzaW9uU2V0SW5mbw0KK1BvcnRDb25uZWN0DQorUG9ydERpc2Nvbm5lY3QNCitQb3J0RW51bQ0KK1BvcnRHZXRJbmZvDQorUG9ydEdldFBvcnRTdGF0ZQ0KK1BvcnRHZXRTdGF0aXN0aWNzDQorUG9ydEluaXQNCitQb3J0T3Blbg0KK1BvcnRSZWNlaXZlDQorUG9ydFJlY2VpdmVDb21wbGV0ZQ0KK1BvcnRTZW5kDQorUG9ydFNldEZyYW1pbmcNCitQb3J0U2V0SU5ldENmZw0KK1BvcnRTZXRJbmZvDQorUG9ydFRlc3RTaWduYWxTdGF0ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dyYXN0YXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dyYXN0YXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNGNkMDAyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3Jhc3RhcGkuZGVmCkBAIC0wLDAgKzEsNDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcmFzdGFwaS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcmFzdGFwaS5kbGwNCitFWFBPUlRTDQorQWRkUG9ydHMNCitEZXZpY2VDb25uZWN0DQorRGV2aWNlRG9uZQ0KK0RldmljZUVudW0NCitEZXZpY2VHZXREZXZDb25maWcNCitEZXZpY2VHZXREZXZDb25maWdFeA0KK0RldmljZUdldEluZm8NCitEZXZpY2VMaXN0ZW4NCitEZXZpY2VTZXREZXZDb25maWcNCitEZXZpY2VTZXRJbmZvDQorRGV2aWNlV29yaw0KK0VuYWJsZURldmljZUZvckRpYWxJbg0KK0dldENvbm5lY3RJbmZvDQorR2V0WmVyb0RldmljZUluZm8NCitQb3J0Q2hhbmdlQ2FsbGJhY2sNCitQb3J0Q2xlYXJTdGF0aXN0aWNzDQorUG9ydENsb3NlDQorUG9ydENvbXByZXNzaW9uU2V0SW5mbw0KK1BvcnRDb25uZWN0DQorUG9ydERpc2Nvbm5lY3QNCitQb3J0RW51bQ0KK1BvcnRHZXRJT0hhbmRsZQ0KK1BvcnRHZXRJbmZvDQorUG9ydEdldFBvcnRTdGF0ZQ0KK1BvcnRHZXRTdGF0aXN0aWNzDQorUG9ydEluaXQNCitQb3J0T3Blbg0KK1BvcnRPcGVuRXh0ZXJuYWwNCitQb3J0UmVjZWl2ZQ0KK1BvcnRSZWNlaXZlQ29tcGxldGUNCitQb3J0U2VuZA0KK1BvcnRTZXRGcmFtaW5nDQorUG9ydFNldEluZm8NCitQb3J0U2V0SW9Db21wbGV0aW9uUG9ydA0KK1BvcnRUZXN0U2lnbmFsU3RhdGUNCitSYXNUYXBpSXNQdWxzZURpYWwNCitSYXN0YXBpR2V0Q2FsbGVkSUQNCitSYXN0YXBpU2V0Q2FsbGVkSUQNCitSZW1vdmVQb3J0DQorU2V0Q29tbVNldHRpbmdzDQorVW5sb2FkUmFzdGFwaURsbA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dyYXN0bHMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3Jhc3Rscy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGI1MmQyNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dyYXN0bHMuZGVmCkBAIC0wLDAgKzEsMjIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcmFzdGxzLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSByYXN0bHMuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorUGVhcFVwZGF0ZVN0YXRlVG9UTFYNCitSYXNFYXBDcmVhdGVDb25uZWN0aW9uUHJvcGVydGllcw0KK1Jhc0VhcENyZWF0ZVVzZXJQcm9wZXJ0aWVzDQorUmFzRWFwRnJlZU1lbW9yeQ0KK1Jhc0VhcEdldENyZWRlbnRpYWxzDQorUmFzRWFwR2V0SWRlbnRpdHkNCitSYXNFYXBHZXRJbmZvDQorUmFzRWFwSW52b2tlQ29uZmlnVUkNCitSYXNFYXBJbnZva2VJbnRlcmFjdGl2ZVVJDQorUmFzRWFwVXBkYXRlU2VydmVyQ29uZmlnDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3JkcHNuZC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cmRwc25kLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMzEwZjYzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3JkcHNuZC5kZWYKQEAgLTAsMCArMSwxNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBSRFBTTkQuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFJEUFNORC5kbGwNCitFWFBPUlRTDQorRHJpdmVyUHJvYw0KK2F1eE1lc3NhZ2UNCittaWRNZXNzYWdlDQorbW9kTWVzc2FnZQ0KK214ZE1lc3NhZ2UNCit3aWRNZXNzYWdlDQord29kTWVzc2FnZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dyZWdhcGkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3JlZ2FwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWJkNGY1ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dyZWdhcGkuZGVmCkBAIC0wLDAgKzEsOTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUkVHQVBJLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBSRUdBUEkuZGxsDQorRVhQT1JUUw0KK0dldERvbWFpbk5hbWUNCitRdWVyeVVzZXJQcm9wZXJ0eQ0KK1JlZ0J1aWxkTnVtYmVyUXVlcnkNCitSZWdDZENyZWF0ZUENCitSZWdDZENyZWF0ZVcNCitSZWdDZERlbGV0ZUENCitSZWdDZERlbGV0ZVcNCitSZWdDZEVudW1lcmF0ZUENCitSZWdDZEVudW1lcmF0ZVcNCitSZWdDZFF1ZXJ5QQ0KK1JlZ0NkUXVlcnlXDQorUmVnQ2xvc2VTZXJ2ZXINCitSZWdDb25zb2xlU2hhZG93UXVlcnlBDQorUmVnQ29uc29sZVNoYWRvd1F1ZXJ5Vw0KK1JlZ0NyZWF0ZVVzZXJDb25maWdXDQorUmVnRGVmYXVsdFVzZXJDb25maWdRdWVyeUENCitSZWdEZWZhdWx0VXNlckNvbmZpZ1F1ZXJ5Vw0KK1JlZ0RlbnlUU0Nvbm5lY3Rpb25zUG9saWN5DQorUmVnRnJlZVV0aWxpdHlDb21tYW5kTGlzdA0KK1JlZ0dldExpY2Vuc2luZ01vZGVQb2xpY3kNCitSZWdHZXRNYWNoaW5lUG9saWN5DQorUmVnR2V0TWFjaGluZVBvbGljeUV4DQorUmVnR2V0TWFjaGluZVBvbGljeU5ldw0KK1JlZ0dldFRTZXJ2ZXJWZXJzaW9uDQorUmVnR2V0VXNlckNvbmZpZ0Zyb21Vc2VyUGFyYW1ldGVycw0KK1JlZ0dldFVzZXJQb2xpY3kNCitSZWdJc01hY2hpbmVJbkhlbHBNb2RlDQorUmVnSXNNYWNoaW5lUG9saWN5QWxsb3dIZWxwDQorUmVnSXNUU2VydmVyDQorUmVnSXNUaW1lWm9uZVJlZGlyZWN0aW9uRW5hYmxlZA0KK1JlZ01lcmdlVXNlckNvbmZpZ1dpdGhVc2VyUGFyYW1ldGVycw0KK1JlZ09wZW5TZXJ2ZXJBDQorUmVnT3BlblNlcnZlclcNCitSZWdQZENyZWF0ZUENCitSZWdQZENyZWF0ZVcNCitSZWdQZERlbGV0ZUENCitSZWdQZERlbGV0ZVcNCitSZWdQZEVudW1lcmF0ZUENCitSZWdQZEVudW1lcmF0ZVcNCitSZWdQZFF1ZXJ5QQ0KK1JlZ1BkUXVlcnlXDQorUmVnUXVlcnlPRU1JZA0KK1JlZ1F1ZXJ5VXRpbGl0eUNvbW1hbmRMaXN0DQorUmVnU0FNVXNlckNvbmZpZw0KK1JlZ1VzZXJDb25maWdEZWxldGUNCitSZWdVc2VyQ29uZmlnUXVlcnkNCitSZWdVc2VyQ29uZmlnUmVuYW1lDQorUmVnVXNlckNvbmZpZ1NldA0KK1JlZ1dkQ3JlYXRlQQ0KK1JlZ1dkQ3JlYXRlVw0KK1JlZ1dkRGVsZXRlQQ0KK1JlZ1dkRGVsZXRlVw0KK1JlZ1dkRW51bWVyYXRlQQ0KK1JlZ1dkRW51bWVyYXRlVw0KK1JlZ1dkUXVlcnlBDQorUmVnV2RRdWVyeVcNCitSZWdXaW5TdGF0aW9uQWNjZXNzQ2hlY2sNCitSZWdXaW5TdGF0aW9uQ3JlYXRlQQ0KK1JlZ1dpblN0YXRpb25DcmVhdGVXDQorUmVnV2luU3RhdGlvbkRlbGV0ZUENCitSZWdXaW5TdGF0aW9uRGVsZXRlVw0KK1JlZ1dpblN0YXRpb25FbnVtZXJhdGVBDQorUmVnV2luU3RhdGlvbkVudW1lcmF0ZVcNCitSZWdXaW5TdGF0aW9uUXVlcnlBDQorUmVnV2luU3RhdGlvblF1ZXJ5RGVmYXVsdFNlY3VyaXR5DQorUmVnV2luU3RhdGlvblF1ZXJ5RXgNCitSZWdXaW5TdGF0aW9uUXVlcnlFeE5ldw0KK1JlZ1dpblN0YXRpb25RdWVyeU51bVZhbHVlVw0KK1JlZ1dpblN0YXRpb25RdWVyeVNlY3VyaXR5QQ0KK1JlZ1dpblN0YXRpb25RdWVyeVNlY3VyaXR5Vw0KK1JlZ1dpblN0YXRpb25RdWVyeVZhbHVlVw0KK1JlZ1dpblN0YXRpb25RdWVyeVcNCitSZWdXaW5TdGF0aW9uU2V0TnVtVmFsdWVXDQorUmVnV2luU3RhdGlvblNldFNlY3VyaXR5QQ0KK1JlZ1dpblN0YXRpb25TZXRTZWN1cml0eVcNCitSZWdXaW5zdGF0aW9uUXVlcnlTZWN1cml0eUNvbmZpZ19NYWNoaW5lDQorUmVnV2luc3RhdGlvblF1ZXJ5U2VjdXJpdHlDb25maWdfTWVyZ2VkDQorUmVnV2luc3RhdGlvblNldFNlY3VyaXR5Q29uZmlnDQorU2V0VXNlclByb3BlcnR5DQorVXNyUHJvcEdldFN0cmluZw0KK1VzclByb3BHZXRWYWx1ZQ0KK1VzclByb3BTZXRTdHJpbmcNCitVc3JQcm9wU2V0VmFsdWUNCitXYWl0Rm9yVFNDb25uZWN0aW9uc1BvbGljeUNoYW5nZXMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cmVnc3ZjLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dyZWdzdmMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZjYTRlYjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cmVnc3ZjLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHJlZ3N2Yy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcmVnc3ZjLmRsbA0KK0VYUE9SVFMNCitTZXJ2aWNlTWFpbg0KK1N2Y2hvc3RQdXNoU2VydmljZUdsb2JhbHMNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cmVnd2l6Yy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cmVnd2l6Yy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzJhN2YyZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dyZWd3aXpjLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFJlZ1dpekN0cmwuRExMDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFJlZ1dpekN0cmwuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3JlbmQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3JlbmQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg5NmNhOGEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cmVuZC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSByZW5kLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSByZW5kLmRsbA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dyZXN1dGlscy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cmVzdXRpbHMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVhZjZjNTIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cmVzdXRpbHMuZGVmCkBAIC0wLDAgKzEsODAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUkVTVVRJTFMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFJFU1VUSUxTLmRsbA0KK0VYUE9SVFMNCitDbHVzV29ya2VyQ2hlY2tUZXJtaW5hdGUNCitDbHVzV29ya2VyQ3JlYXRlDQorQ2x1c1dvcmtlclN0YXJ0DQorQ2x1c1dvcmtlclRlcm1pbmF0ZQ0KK1Jlc1V0aWxBZGRVbmtub3duUHJvcGVydGllcw0KK1Jlc1V0aWxDcmVhdGVEaXJlY3RvcnlUcmVlDQorUmVzVXRpbER1cFBhcmFtZXRlckJsb2NrDQorUmVzVXRpbER1cFN0cmluZw0KK1Jlc1V0aWxFbnVtUHJpdmF0ZVByb3BlcnRpZXMNCitSZXNVdGlsRW51bVByb3BlcnRpZXMNCitSZXNVdGlsRW51bVJlc291cmNlcw0KK1Jlc1V0aWxFbnVtUmVzb3VyY2VzRXgNCitSZXNVdGlsRXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzDQorUmVzVXRpbEZpbmRCaW5hcnlQcm9wZXJ0eQ0KK1Jlc1V0aWxGaW5kRGVwZW5kZW50RGlza1Jlc291cmNlRHJpdmVMZXR0ZXINCitSZXNVdGlsRmluZER3b3JkUHJvcGVydHkNCitSZXNVdGlsRmluZEV4cGFuZFN6UHJvcGVydHkNCitSZXNVdGlsRmluZEV4cGFuZGVkU3pQcm9wZXJ0eQ0KK1Jlc1V0aWxGaW5kTG9uZ1Byb3BlcnR5DQorUmVzVXRpbEZpbmRNdWx0aVN6UHJvcGVydHkNCitSZXNVdGlsRmluZFN6UHJvcGVydHkNCitSZXNVdGlsRnJlZUVudmlyb25tZW50DQorUmVzVXRpbEZyZWVQYXJhbWV0ZXJCbG9jaw0KK1Jlc1V0aWxHZXRBbGxQcm9wZXJ0aWVzDQorUmVzVXRpbEdldEJpbmFyeVByb3BlcnR5DQorUmVzVXRpbEdldEJpbmFyeVZhbHVlDQorUmVzVXRpbEdldENvcmVDbHVzdGVyUmVzb3VyY2VzDQorUmVzVXRpbEdldER3b3JkUHJvcGVydHkNCitSZXNVdGlsR2V0RHdvcmRWYWx1ZQ0KK1Jlc1V0aWxHZXRFbnZpcm9ubWVudFdpdGhOZXROYW1lDQorUmVzVXRpbEdldE11bHRpU3pQcm9wZXJ0eQ0KK1Jlc1V0aWxHZXRQcml2YXRlUHJvcGVydGllcw0KK1Jlc1V0aWxHZXRQcm9wZXJ0aWVzDQorUmVzVXRpbEdldFByb3BlcnRpZXNUb1BhcmFtZXRlckJsb2NrDQorUmVzVXRpbEdldFByb3BlcnR5DQorUmVzVXRpbEdldFByb3BlcnR5Rm9ybWF0cw0KK1Jlc1V0aWxHZXRQcm9wZXJ0eVNpemUNCitSZXNVdGlsR2V0UmVzb3VyY2VEZXBlbmRlbmN5DQorUmVzVXRpbEdldFJlc291cmNlRGVwZW5kZW5jeUJ5Q2xhc3MNCitSZXNVdGlsR2V0UmVzb3VyY2VEZXBlbmRlbmN5QnlOYW1lDQorUmVzVXRpbEdldFJlc291cmNlRGVwZW5kZW50SVBBZGRyZXNzUHJvcHMNCitSZXNVdGlsR2V0UmVzb3VyY2VOYW1lDQorUmVzVXRpbEdldFJlc291cmNlTmFtZURlcGVuZGVuY3kNCitSZXNVdGlsR2V0U3pQcm9wZXJ0eQ0KK1Jlc1V0aWxHZXRTelZhbHVlDQorUmVzVXRpbElzUGF0aFZhbGlkDQorUmVzVXRpbElzUmVzb3VyY2VDbGFzc0VxdWFsDQorUmVzVXRpbFByb3BlcnR5TGlzdEZyb21QYXJhbWV0ZXJCbG9jaw0KK1Jlc1V0aWxSZW1vdmVSZXNvdXJjZVNlcnZpY2VFbnZpcm9ubWVudA0KK1Jlc1V0aWxSZXNvdXJjZVR5cGVzRXF1YWwNCitSZXNVdGlsUmVzb3VyY2VzRXF1YWwNCitSZXNVdGlsU2V0QmluYXJ5VmFsdWUNCitSZXNVdGlsU2V0RHdvcmRWYWx1ZQ0KK1Jlc1V0aWxTZXRFeHBhbmRTelZhbHVlDQorUmVzVXRpbFNldE11bHRpU3pWYWx1ZQ0KK1Jlc1V0aWxTZXRQcml2YXRlUHJvcGVydHlMaXN0DQorUmVzVXRpbFNldFByb3BlcnR5UGFyYW1ldGVyQmxvY2sNCitSZXNVdGlsU2V0UHJvcGVydHlQYXJhbWV0ZXJCbG9ja0V4DQorUmVzVXRpbFNldFByb3BlcnR5VGFibGUNCitSZXNVdGlsU2V0UHJvcGVydHlUYWJsZUV4DQorUmVzVXRpbFNldFJlc291cmNlU2VydmljZUVudmlyb25tZW50DQorUmVzVXRpbFNldFJlc291cmNlU2VydmljZVN0YXJ0UGFyYW1ldGVycw0KK1Jlc1V0aWxTZXRTelZhbHVlDQorUmVzVXRpbFNldFVua25vd25Qcm9wZXJ0aWVzDQorUmVzVXRpbFN0YXJ0UmVzb3VyY2VTZXJ2aWNlDQorUmVzVXRpbFN0b3BSZXNvdXJjZVNlcnZpY2UNCitSZXNVdGlsU3RvcFNlcnZpY2UNCitSZXNVdGlsVGVybWluYXRlU2VydmljZVByb2Nlc3NGcm9tUmVzRGxsDQorUmVzVXRpbFZlcmlmeVByaXZhdGVQcm9wZXJ0eUxpc3QNCitSZXNVdGlsVmVyaWZ5UHJvcGVydHlUYWJsZQ0KK1Jlc1V0aWxWZXJpZnlSZXNvdXJjZVNlcnZpY2UNCitSZXNVdGlsVmVyaWZ5U2VydmljZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dyaWNoZWQyMC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cmljaGVkMjAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVmMmIyOWQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cmljaGVkMjAuZGVmCkBAIC0wLDAgKzEsMTcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUklDSEVEMjAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFJJQ0hFRDIwLmRsbA0KK0VYUE9SVFMNCitJSURfSVJpY2hFZGl0T2xlDQorSUlEX0lSaWNoRWRpdE9sZUNhbGxiYWNrDQorQ3JlYXRlVGV4dFNlcnZpY2VzDQorSUlEX0lUZXh0U2VydmljZXMNCitJSURfSVRleHRIb3N0DQorSUlEX0lUZXh0SG9zdDINCitSRUV4dGVuZGVkUmVnaXN0ZXJDbGFzcw0KK1JpY2hFZGl0MTBBTlNJV25kUHJvYw0KK1JpY2hFZGl0QU5TSVduZFByb2MNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cm5yMjAuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3JucjIwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZGUyYmJmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3JucjIwLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUk5SMjAuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFJOUjIwLmRsbA0KK0VYUE9SVFMNCitOU1BTdGFydHVwDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3JvdXRldGFiLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dyb3V0ZXRhYi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzM5NWEzYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dyb3V0ZXRhYi5kZWYKQEAgLTAsMCArMSwxOCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBST1VURVRBQi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUk9VVEVUQUIuZGxsDQorRVhQT1JUUw0KK0FkZFJvdXRlDQorRGVsZXRlUm91dGUNCitGcmVlSVBBZGRyZXNzVGFibGUNCitGcmVlUm91dGVUYWJsZQ0KK0dldElQQWRkcmVzc1RhYmxlDQorR2V0SWZFbnRyeQ0KK0dldFJvdXRlVGFibGUNCitSZWZyZXNoQWRkcmVzc2VzDQorUmVsb2FkSVBBZGRyZXNzVGFibGUNCitTZXRBZGRyQ2hhbmdlTm90aWZ5RXZlbnQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cnBjbnM0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dycGNuczQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZkZTAyMzAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cnBjbnM0LmRlZgpAQCAtMCwwICsxLDcxIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFJQQ05TNC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUlBDTlM0LmRsbA0KK0VYUE9SVFMNCitJX0dldERlZmF1bHRFbnRyeVN5bnRheA0KK0lfUnBjTnNHZXRCdWZmZXINCitJX1JwY05zTmVnb3RpYXRlVHJhbnNmZXJTeW50YXgNCitJX1JwY05zUmFpc2VFeGNlcHRpb24NCitJX1JwY05zU2VuZFJlY2VpdmUNCitJX1JwY1JlQmluZEJ1ZmZlcg0KK1JwY0lmSWRWZWN0b3JGcmVlDQorUnBjTnNCaW5kaW5nRXhwb3J0QQ0KK1JwY05zQmluZGluZ0V4cG9ydFBuUEENCitScGNOc0JpbmRpbmdFeHBvcnRQblBXDQorUnBjTnNCaW5kaW5nRXhwb3J0Vw0KK1JwY05zQmluZGluZ0ltcG9ydEJlZ2luQQ0KK1JwY05zQmluZGluZ0ltcG9ydEJlZ2luVw0KK1JwY05zQmluZGluZ0ltcG9ydERvbmUNCitScGNOc0JpbmRpbmdJbXBvcnROZXh0DQorUnBjTnNCaW5kaW5nTG9va3VwQmVnaW5BDQorUnBjTnNCaW5kaW5nTG9va3VwQmVnaW5XDQorUnBjTnNCaW5kaW5nTG9va3VwRG9uZQ0KK1JwY05zQmluZGluZ0xvb2t1cE5leHQNCitScGNOc0JpbmRpbmdTZWxlY3QNCitScGNOc0JpbmRpbmdVbmV4cG9ydEENCitScGNOc0JpbmRpbmdVbmV4cG9ydFBuUEENCitScGNOc0JpbmRpbmdVbmV4cG9ydFBuUFcNCitScGNOc0JpbmRpbmdVbmV4cG9ydFcNCitScGNOc0VudHJ5RXhwYW5kTmFtZUENCitScGNOc0VudHJ5RXhwYW5kTmFtZVcNCitScGNOc0VudHJ5T2JqZWN0SW5xQmVnaW5BDQorUnBjTnNFbnRyeU9iamVjdElucUJlZ2luVw0KK1JwY05zRW50cnlPYmplY3RJbnFEb25lDQorUnBjTnNFbnRyeU9iamVjdElucU5leHQNCitScGNOc0dyb3VwRGVsZXRlQQ0KK1JwY05zR3JvdXBEZWxldGVXDQorUnBjTnNHcm91cE1ickFkZEENCitScGNOc0dyb3VwTWJyQWRkVw0KK1JwY05zR3JvdXBNYnJJbnFCZWdpbkENCitScGNOc0dyb3VwTWJySW5xQmVnaW5XDQorUnBjTnNHcm91cE1icklucURvbmUNCitScGNOc0dyb3VwTWJySW5xTmV4dEENCitScGNOc0dyb3VwTWJySW5xTmV4dFcNCitScGNOc0dyb3VwTWJyUmVtb3ZlQQ0KK1JwY05zR3JvdXBNYnJSZW1vdmVXDQorUnBjTnNNZ210QmluZGluZ1VuZXhwb3J0QQ0KK1JwY05zTWdtdEJpbmRpbmdVbmV4cG9ydFcNCitScGNOc01nbXRFbnRyeUNyZWF0ZUENCitScGNOc01nbXRFbnRyeUNyZWF0ZVcNCitScGNOc01nbXRFbnRyeURlbGV0ZUENCitScGNOc01nbXRFbnRyeURlbGV0ZVcNCitScGNOc01nbXRFbnRyeUlucUlmSWRzQQ0KK1JwY05zTWdtdEVudHJ5SW5xSWZJZHNXDQorUnBjTnNNZ210SGFuZGxlU2V0RXhwQWdlDQorUnBjTnNNZ210SW5xRXhwQWdlDQorUnBjTnNNZ210U2V0RXhwQWdlDQorUnBjTnNQcm9maWxlRGVsZXRlQQ0KK1JwY05zUHJvZmlsZURlbGV0ZVcNCitScGNOc1Byb2ZpbGVFbHRBZGRBDQorUnBjTnNQcm9maWxlRWx0QWRkVw0KK1JwY05zUHJvZmlsZUVsdElucUJlZ2luQQ0KK1JwY05zUHJvZmlsZUVsdElucUJlZ2luVw0KK1JwY05zUHJvZmlsZUVsdElucURvbmUNCitScGNOc1Byb2ZpbGVFbHRJbnFOZXh0QQ0KK1JwY05zUHJvZmlsZUVsdElucU5leHRXDQorUnBjTnNQcm9maWxlRWx0UmVtb3ZlQQ0KK1JwY05zUHJvZmlsZUVsdFJlbW92ZVcNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cnBjbnNoLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dycGNuc2guZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAyNWZlYjgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cnBjbnNoLmRlZgpAQCAtMCwwICsxLDkgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcnBjbnNoLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBycGNuc2guRExMDQorRVhQT1JUUw0KK0luaXRIZWxwZXJEbGwNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cnBjcmVmLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dycGNyZWYuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjliYzJmNmQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cnBjcmVmLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFJQQ1JFRi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgUlBDUkVGLmRsbA0KK0VYUE9SVFMNCitJbmV0aW5mb1N0YXJ0UnBjU2VydmVyTGlzdGVuDQorSW5ldGluZm9TdG9wUnBjU2VydmVyTGlzdGVuDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3JwY3J0NC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cnBjcnQ0LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hM2EzY2U3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3JwY3J0NC5kZWYKQEAgLTAsMCArMSw1MzAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgUlBDUlQ0LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBSUENSVDQuZGxsDQorRVhQT1JUUw0KK0NyZWF0ZVByb3h5RnJvbVR5cGVJbmZvDQorQ3JlYXRlU3R1YkZyb21UeXBlSW5mbw0KK0lfUnBjU2VydmVyVHVybk9uT2ZmS2VlcGFsaXZlcw0KK0NTdGRTdHViQnVmZmVyX0FkZFJlZg0KK0NTdGRTdHViQnVmZmVyX0Nvbm5lY3QNCitDU3RkU3R1YkJ1ZmZlcl9Db3VudFJlZnMNCitDU3RkU3R1YkJ1ZmZlcl9EZWJ1Z1NlcnZlclF1ZXJ5SW50ZXJmYWNlDQorQ1N0ZFN0dWJCdWZmZXJfRGVidWdTZXJ2ZXJSZWxlYXNlDQorQ1N0ZFN0dWJCdWZmZXJfRGlzY29ubmVjdA0KK0NTdGRTdHViQnVmZmVyX0ludm9rZQ0KK0NTdGRTdHViQnVmZmVyX0lzSUlEU3VwcG9ydGVkDQorQ1N0ZFN0dWJCdWZmZXJfUXVlcnlJbnRlcmZhY2UNCitEY2VFcnJvcklucVRleHRBDQorRGNlRXJyb3JJbnFUZXh0Vw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorR2xvYmFsTXV0ZXhDbGVhckV4dGVybmFsDQorR2xvYmFsTXV0ZXhSZXF1ZXN0RXh0ZXJuYWwNCitJVW5rbm93bl9BZGRSZWZfUHJveHkNCitJVW5rbm93bl9RdWVyeUludGVyZmFjZV9Qcm94eQ0KK0lVbmtub3duX1JlbGVhc2VfUHJveHkNCitJX1JwY0Fib3J0QXN5bmNDYWxsDQorSV9ScGNBbGxvY2F0ZQ0KK0lfUnBjQXN5bmNBYm9ydENhbGwNCitJX1JwY0FzeW5jU2V0SGFuZGxlDQorSV9ScGNCQ2FjaGVBbGxvY2F0ZQ0KK0lfUnBjQkNhY2hlRnJlZQ0KK0lfUnBjQmluZGluZ0NvcHkNCitJX1JwY0JpbmRpbmdIYW5kbGVUb0FzeW5jSGFuZGxlDQorSV9ScGNCaW5kaW5nSW5xQ29ubklkDQorSV9ScGNCaW5kaW5nSW5xRHluYW1pY0VuZHBvaW50DQorSV9ScGNCaW5kaW5nSW5xRHluYW1pY0VuZHBvaW50QQ0KK0lfUnBjQmluZGluZ0lucUR5bmFtaWNFbmRwb2ludFcNCitJX1JwY0JpbmRpbmdJbnFMb2NhbENsaWVudFBJRA0KK0lfUnBjQmluZGluZ0lucU1hcnNoYWxsZWRUYXJnZXRJbmZvDQorSV9ScGNCaW5kaW5nSW5xU2VjdXJpdHlDb250ZXh0DQorSV9ScGNCaW5kaW5nSW5xVHJhbnNwb3J0VHlwZQ0KK0lfUnBjQmluZGluZ0lucVdpcmVJZEZvclNuZWdvDQorSV9ScGNCaW5kaW5nSXNDbGllbnRMb2NhbA0KK0lfUnBjQmluZGluZ1RvU3RhdGljU3RyaW5nQmluZGluZ1cNCitJX1JwY0NsZWFyTXV0ZXgNCitJX1JwY0Nvbm5lY3Rpb25JbnFTb2NrQnVmZlNpemUNCitJX1JwY0Nvbm5lY3Rpb25TZXRTb2NrQnVmZlNpemUNCitJX1JwY0RlbGV0ZU11dGV4DQorSV9ScGNFbmFibGVXbWlUcmFjZQ0KK0lfUnBjRXhjZXB0aW9uRmlsdGVyDQorSV9ScGNGcmVlDQorSV9ScGNGcmVlQnVmZmVyDQorSV9ScGNGcmVlUGlwZUJ1ZmZlcg0KK0lfUnBjR2V0QnVmZmVyDQorSV9ScGNHZXRCdWZmZXJXaXRoT2JqZWN0DQorSV9ScGNHZXRDdXJyZW50Q2FsbEhhbmRsZQ0KK0lfUnBjR2V0RXh0ZW5kZWRFcnJvcg0KK0lfUnBjSWZJbnFUcmFuc2ZlclN5bnRheGVzDQorSV9ScGNMb2dFdmVudA0KK0lfUnBjTWFwV2luMzJTdGF0dXMNCitJX1JwY05EUkNHZXRXaXJlUmVwcmVzZW50YXRpb24NCitJX1JwY05EUlNDb250ZXh0RW1lcmdlbmN5Q2xlYW51cA0KK0lfUnBjTmVnb3RpYXRlVHJhbnNmZXJTeW50YXgNCitJX1JwY05zQmluZGluZ1NldEVudHJ5TmFtZQ0KK0lfUnBjTnNCaW5kaW5nU2V0RW50cnlOYW1lQQ0KK0lfUnBjTnNCaW5kaW5nU2V0RW50cnlOYW1lVw0KK0lfUnBjTnNJbnRlcmZhY2VFeHBvcnRlZA0KK0lfUnBjTnNJbnRlcmZhY2VVbmV4cG9ydGVkDQorSV9ScGNQYXJzZVNlY3VyaXR5DQorSV9ScGNQYXVzZUV4ZWN1dGlvbg0KK0lfUnBjUHJveHlOZXdDb25uZWN0aW9uDQorSV9ScGNSZWFsbG9jUGlwZUJ1ZmZlcg0KK0lfUnBjUmVjZWl2ZQ0KK0lfUnBjUmVjb3JkQ2FsbG91dEZhaWx1cmUNCitJX1JwY1JlcGx5VG9DbGllbnRXaXRoU3RhdHVzDQorSV9ScGNSZXF1ZXN0TXV0ZXgNCitJX1JwY1NOQ0hPcHRpb24NCitJX1JwY1NlbmQNCitJX1JwY1NlbmRSZWNlaXZlDQorSV9ScGNTZXJ2ZXJBbGxvY2F0ZUlwUG9ydA0KK0lfUnBjU2VydmVyQ2hlY2tDbGllbnRSZXN0cmljdGlvbg0KK0lfUnBjU2VydmVySW5xQWRkcmVzc0NoYW5nZUZuDQorSV9ScGNTZXJ2ZXJJbnFMb2NhbENvbm5BZGRyZXNzDQorSV9ScGNTZXJ2ZXJJbnFUcmFuc3BvcnRUeXBlDQorSV9ScGNTZXJ2ZXJJc0NsaWVudERpc2Nvbm5lY3RlZA0KK0lfUnBjU2VydmVyUmVnaXN0ZXJGb3J3YXJkRnVuY3Rpb24NCitJX1JwY1NlcnZlclNldEFkZHJlc3NDaGFuZ2VGbg0KK0lfUnBjU2VydmVyVXNlUHJvdHNlcTJBDQorSV9ScGNTZXJ2ZXJVc2VQcm90c2VxMlcNCitJX1JwY1NlcnZlclVzZVByb3RzZXFFcDJBDQorSV9ScGNTZXJ2ZXJVc2VQcm90c2VxRXAyVw0KK0lfUnBjU2Vzc2lvblN0cmljdENvbnRleHRIYW5kbGUNCitJX1JwY1NldEFzeW5jSGFuZGxlDQorSV9ScGNTc0RvbnRTZXJpYWxpemVDb250ZXh0DQorSV9ScGNTeXN0ZW1GdW5jdGlvbjAwMQ0KK0lfUnBjVHJhbnNDb25uZWN0aW9uQWxsb2NhdGVQYWNrZXQNCitJX1JwY1RyYW5zQ29ubmVjdGlvbkZyZWVQYWNrZXQNCitJX1JwY1RyYW5zQ29ubmVjdGlvblJlYWxsb2NQYWNrZXQNCitJX1JwY1RyYW5zRGF0YWdyYW1BbGxvY2F0ZTINCitJX1JwY1RyYW5zRGF0YWdyYW1BbGxvY2F0ZQ0KK0lfUnBjVHJhbnNEYXRhZ3JhbUZyZWUNCitJX1JwY1RyYW5zR2V0VGhyZWFkRXZlbnQNCitJX1JwY1RyYW5zSW9DYW5jZWxsZWQNCitJX1JwY1RyYW5zU2VydmVyTmV3Q29ubmVjdGlvbg0KK0lfUnBjVHVybk9uRUVJbmZvUHJvcGFnYXRpb24NCitJX1V1aWRDcmVhdGUNCitNSURMX3djaGFyX3N0cmNweQ0KK01JRExfd2NoYXJfc3RybGVuDQorTWVzQnVmZmVySGFuZGxlUmVzZXQNCitNZXNEZWNvZGVCdWZmZXJIYW5kbGVDcmVhdGUNCitNZXNEZWNvZGVJbmNyZW1lbnRhbEhhbmRsZUNyZWF0ZQ0KK01lc0VuY29kZUR5bkJ1ZmZlckhhbmRsZUNyZWF0ZQ0KK01lc0VuY29kZUZpeGVkQnVmZmVySGFuZGxlQ3JlYXRlDQorTWVzRW5jb2RlSW5jcmVtZW50YWxIYW5kbGVDcmVhdGUNCitNZXNIYW5kbGVGcmVlDQorTWVzSW5jcmVtZW50YWxIYW5kbGVSZXNldA0KK01lc0lucVByb2NFbmNvZGluZ0lkDQorTkRSQ0NvbnRleHRCaW5kaW5nDQorTkRSQ0NvbnRleHRNYXJzaGFsbA0KK05EUkNDb250ZXh0VW5tYXJzaGFsbA0KK05EUlNDb250ZXh0TWFyc2hhbGwyDQorTkRSU0NvbnRleHRNYXJzaGFsbA0KK05EUlNDb250ZXh0TWFyc2hhbGxFeA0KK05EUlNDb250ZXh0VW5tYXJzaGFsbDINCitORFJTQ29udGV4dFVubWFyc2hhbGwNCitORFJTQ29udGV4dFVubWFyc2hhbGxFeA0KK05EUmNvcHkNCitOZHJBbGxvY2F0ZQ0KK05kckFzeW5jQ2xpZW50Q2FsbA0KK05kckFzeW5jU2VydmVyQ2FsbA0KK05kckJ5dGVDb3VudFBvaW50ZXJCdWZmZXJTaXplDQorTmRyQnl0ZUNvdW50UG9pbnRlckZyZWUNCitOZHJCeXRlQ291bnRQb2ludGVyTWFyc2hhbGwNCitOZHJCeXRlQ291bnRQb2ludGVyVW5tYXJzaGFsbA0KK05kckNTdGRTdHViQnVmZmVyMl9SZWxlYXNlDQorTmRyQ1N0ZFN0dWJCdWZmZXJfUmVsZWFzZQ0KK05kckNsZWFyT3V0UGFyYW1ldGVycw0KK05kckNsaWVudENhbGwNCitOZHJDbGllbnRDYWxsMg0KK05kckNsaWVudENvbnRleHRNYXJzaGFsbA0KK05kckNsaWVudENvbnRleHRVbm1hcnNoYWxsDQorTmRyQ2xpZW50SW5pdGlhbGl6ZQ0KK05kckNsaWVudEluaXRpYWxpemVOZXcNCitOZHJDb21wbGV4QXJyYXlCdWZmZXJTaXplDQorTmRyQ29tcGxleEFycmF5RnJlZQ0KK05kckNvbXBsZXhBcnJheU1hcnNoYWxsDQorTmRyQ29tcGxleEFycmF5TWVtb3J5U2l6ZQ0KK05kckNvbXBsZXhBcnJheVVubWFyc2hhbGwNCitOZHJDb21wbGV4U3RydWN0QnVmZmVyU2l6ZQ0KK05kckNvbXBsZXhTdHJ1Y3RGcmVlDQorTmRyQ29tcGxleFN0cnVjdE1hcnNoYWxsDQorTmRyQ29tcGxleFN0cnVjdE1lbW9yeVNpemUNCitOZHJDb21wbGV4U3RydWN0VW5tYXJzaGFsbA0KK05kckNvbmZvcm1hbnRBcnJheUJ1ZmZlclNpemUNCitOZHJDb25mb3JtYW50QXJyYXlGcmVlDQorTmRyQ29uZm9ybWFudEFycmF5TWFyc2hhbGwNCitOZHJDb25mb3JtYW50QXJyYXlNZW1vcnlTaXplDQorTmRyQ29uZm9ybWFudEFycmF5VW5tYXJzaGFsbA0KK05kckNvbmZvcm1hbnRTdHJpbmdCdWZmZXJTaXplDQorTmRyQ29uZm9ybWFudFN0cmluZ01hcnNoYWxsDQorTmRyQ29uZm9ybWFudFN0cmluZ01lbW9yeVNpemUNCitOZHJDb25mb3JtYW50U3RyaW5nVW5tYXJzaGFsbA0KK05kckNvbmZvcm1hbnRTdHJ1Y3RCdWZmZXJTaXplDQorTmRyQ29uZm9ybWFudFN0cnVjdEZyZWUNCitOZHJDb25mb3JtYW50U3RydWN0TWFyc2hhbGwNCitOZHJDb25mb3JtYW50U3RydWN0TWVtb3J5U2l6ZQ0KK05kckNvbmZvcm1hbnRTdHJ1Y3RVbm1hcnNoYWxsDQorTmRyQ29uZm9ybWFudFZhcnlpbmdBcnJheUJ1ZmZlclNpemUNCitOZHJDb25mb3JtYW50VmFyeWluZ0FycmF5RnJlZQ0KK05kckNvbmZvcm1hbnRWYXJ5aW5nQXJyYXlNYXJzaGFsbA0KK05kckNvbmZvcm1hbnRWYXJ5aW5nQXJyYXlNZW1vcnlTaXplDQorTmRyQ29uZm9ybWFudFZhcnlpbmdBcnJheVVubWFyc2hhbGwNCitOZHJDb25mb3JtYW50VmFyeWluZ1N0cnVjdEJ1ZmZlclNpemUNCitOZHJDb25mb3JtYW50VmFyeWluZ1N0cnVjdEZyZWUNCitOZHJDb25mb3JtYW50VmFyeWluZ1N0cnVjdE1hcnNoYWxsDQorTmRyQ29uZm9ybWFudFZhcnlpbmdTdHJ1Y3RNZW1vcnlTaXplDQorTmRyQ29uZm9ybWFudFZhcnlpbmdTdHJ1Y3RVbm1hcnNoYWxsDQorTmRyQ29udGV4dEhhbmRsZUluaXRpYWxpemUNCitOZHJDb250ZXh0SGFuZGxlU2l6ZQ0KK05kckNvbnZlcnQyDQorTmRyQ29udmVydA0KK05kckNvcnJlbGF0aW9uRnJlZQ0KK05kckNvcnJlbGF0aW9uSW5pdGlhbGl6ZQ0KK05kckNvcnJlbGF0aW9uUGFzcw0KK05kckNyZWF0ZVNlcnZlckludGVyZmFjZUZyb21TdHViDQorTmRyRGNvbUFzeW5jQ2xpZW50Q2FsbA0KK05kckRjb21Bc3luY1N0dWJDYWxsDQorTmRyRGxsQ2FuVW5sb2FkTm93DQorTmRyRGxsR2V0Q2xhc3NPYmplY3QNCitOZHJEbGxSZWdpc3RlclByb3h5DQorTmRyRGxsVW5yZWdpc3RlclByb3h5DQorTmRyRW5jYXBzdWxhdGVkVW5pb25CdWZmZXJTaXplDQorTmRyRW5jYXBzdWxhdGVkVW5pb25GcmVlDQorTmRyRW5jYXBzdWxhdGVkVW5pb25NYXJzaGFsbA0KK05kckVuY2Fwc3VsYXRlZFVuaW9uTWVtb3J5U2l6ZQ0KK05kckVuY2Fwc3VsYXRlZFVuaW9uVW5tYXJzaGFsbA0KK05kckZpeGVkQXJyYXlCdWZmZXJTaXplDQorTmRyRml4ZWRBcnJheUZyZWUNCitOZHJGaXhlZEFycmF5TWFyc2hhbGwNCitOZHJGaXhlZEFycmF5TWVtb3J5U2l6ZQ0KK05kckZpeGVkQXJyYXlVbm1hcnNoYWxsDQorTmRyRnJlZUJ1ZmZlcg0KK05kckZ1bGxQb2ludGVyRnJlZQ0KK05kckZ1bGxQb2ludGVySW5zZXJ0UmVmSWQNCitOZHJGdWxsUG9pbnRlclF1ZXJ5UG9pbnRlcg0KK05kckZ1bGxQb2ludGVyUXVlcnlSZWZJZA0KK05kckZ1bGxQb2ludGVyWGxhdEZyZWUNCitOZHJGdWxsUG9pbnRlclhsYXRJbml0DQorTmRyR2V0QnVmZmVyDQorTmRyR2V0RGNvbVByb3RvY29sVmVyc2lvbg0KK05kckdldFNpbXBsZVR5cGVCdWZmZXJBbGlnbm1lbnQNCitOZHJHZXRTaW1wbGVUeXBlQnVmZmVyU2l6ZQ0KK05kckdldFNpbXBsZVR5cGVNZW1vcnlTaXplDQorTmRyR2V0VHlwZUZsYWdzDQorTmRyR2V0VXNlck1hcnNoYWxJbmZvDQorTmRySW50ZXJmYWNlUG9pbnRlckJ1ZmZlclNpemUNCitOZHJJbnRlcmZhY2VQb2ludGVyRnJlZQ0KK05kckludGVyZmFjZVBvaW50ZXJNYXJzaGFsbA0KK05kckludGVyZmFjZVBvaW50ZXJNZW1vcnlTaXplDQorTmRySW50ZXJmYWNlUG9pbnRlclVubWFyc2hhbGwNCitOZHJNYXBDb21tQW5kRmF1bHRTdGF0dXMNCitOZHJNZXNQcm9jRW5jb2RlRGVjb2RlDQorTmRyTWVzUHJvY0VuY29kZURlY29kZTINCitOZHJNZXNTaW1wbGVUeXBlQWxpZ25TaXplDQorTmRyTWVzU2ltcGxlVHlwZURlY29kZQ0KK05kck1lc1NpbXBsZVR5cGVFbmNvZGUNCitOZHJNZXNUeXBlQWxpZ25TaXplMg0KK05kck1lc1R5cGVBbGlnblNpemUNCitOZHJNZXNUeXBlRGVjb2RlMg0KK05kck1lc1R5cGVEZWNvZGUNCitOZHJNZXNUeXBlRW5jb2RlMg0KK05kck1lc1R5cGVFbmNvZGUNCitOZHJNZXNUeXBlRnJlZTINCitOZHJOb25Db25mb3JtYW50U3RyaW5nQnVmZmVyU2l6ZQ0KK05kck5vbkNvbmZvcm1hbnRTdHJpbmdNYXJzaGFsbA0KK05kck5vbkNvbmZvcm1hbnRTdHJpbmdNZW1vcnlTaXplDQorTmRyTm9uQ29uZm9ybWFudFN0cmluZ1VubWFyc2hhbGwNCitOZHJOb25FbmNhcHN1bGF0ZWRVbmlvbkJ1ZmZlclNpemUNCitOZHJOb25FbmNhcHN1bGF0ZWRVbmlvbkZyZWUNCitOZHJOb25FbmNhcHN1bGF0ZWRVbmlvbk1hcnNoYWxsDQorTmRyTm9uRW5jYXBzdWxhdGVkVW5pb25NZW1vcnlTaXplDQorTmRyTm9uRW5jYXBzdWxhdGVkVW5pb25Vbm1hcnNoYWxsDQorTmRyTnNHZXRCdWZmZXINCitOZHJOc1NlbmRSZWNlaXZlDQorTmRyT2xlQWxsb2NhdGUNCitOZHJPbGVGcmVlDQorTmRyT3V0SW5pdA0KK05kclBhcnRpYWxJZ25vcmVDbGllbnRCdWZmZXJTaXplDQorTmRyUGFydGlhbElnbm9yZUNsaWVudE1hcnNoYWxsDQorTmRyUGFydGlhbElnbm9yZVNlcnZlckluaXRpYWxpemUNCitOZHJQYXJ0aWFsSWdub3JlU2VydmVyVW5tYXJzaGFsbA0KK05kclBvaW50ZXJCdWZmZXJTaXplDQorTmRyUG9pbnRlckZyZWUNCitOZHJQb2ludGVyTWFyc2hhbGwNCitOZHJQb2ludGVyTWVtb3J5U2l6ZQ0KK05kclBvaW50ZXJVbm1hcnNoYWxsDQorTmRyUHJveHlFcnJvckhhbmRsZXINCitOZHJQcm94eUZyZWVCdWZmZXINCitOZHJQcm94eUdldEJ1ZmZlcg0KK05kclByb3h5SW5pdGlhbGl6ZQ0KK05kclByb3h5U2VuZFJlY2VpdmUNCitOZHJSYW5nZVVubWFyc2hhbGwNCitOZHJScGNTbUNsaWVudEFsbG9jYXRlDQorTmRyUnBjU21DbGllbnRGcmVlDQorTmRyUnBjU21TZXRDbGllbnRUb09zZg0KK05kclJwY1NzRGVmYXVsdEFsbG9jYXRlDQorTmRyUnBjU3NEZWZhdWx0RnJlZQ0KK05kclJwY1NzRGlzYWJsZUFsbG9jYXRlDQorTmRyUnBjU3NFbmFibGVBbGxvY2F0ZQ0KK05kclNlbmRSZWNlaXZlDQorTmRyU2VydmVyQ2FsbDINCitOZHJTZXJ2ZXJDYWxsDQorTmRyU2VydmVyQ29udGV4dE1hcnNoYWxsDQorTmRyU2VydmVyQ29udGV4dE5ld01hcnNoYWxsDQorTmRyU2VydmVyQ29udGV4dE5ld1VubWFyc2hhbGwNCitOZHJTZXJ2ZXJDb250ZXh0VW5tYXJzaGFsbA0KK05kclNlcnZlckluaXRpYWxpemUNCitOZHJTZXJ2ZXJJbml0aWFsaXplTWFyc2hhbGwNCitOZHJTZXJ2ZXJJbml0aWFsaXplTmV3DQorTmRyU2VydmVySW5pdGlhbGl6ZVBhcnRpYWwNCitOZHJTZXJ2ZXJJbml0aWFsaXplVW5tYXJzaGFsbA0KK05kclNlcnZlck1hcnNoYWxsDQorTmRyU2VydmVyVW5tYXJzaGFsbA0KK05kclNpbXBsZVN0cnVjdEJ1ZmZlclNpemUNCitOZHJTaW1wbGVTdHJ1Y3RGcmVlDQorTmRyU2ltcGxlU3RydWN0TWFyc2hhbGwNCitOZHJTaW1wbGVTdHJ1Y3RNZW1vcnlTaXplDQorTmRyU2ltcGxlU3RydWN0VW5tYXJzaGFsbA0KK05kclNpbXBsZVR5cGVNYXJzaGFsbA0KK05kclNpbXBsZVR5cGVVbm1hcnNoYWxsDQorTmRyU3R1YkNhbGwyDQorTmRyU3R1YkNhbGwNCitOZHJTdHViRm9yd2FyZGluZ0Z1bmN0aW9uDQorTmRyU3R1YkdldEJ1ZmZlcg0KK05kclN0dWJJbml0aWFsaXplDQorTmRyU3R1YkluaXRpYWxpemVNYXJzaGFsbA0KK05kclR5cGVGbGFncw0KK05kclR5cGVGcmVlDQorTmRyVHlwZU1hcnNoYWxsDQorTmRyVHlwZVNpemUNCitOZHJUeXBlVW5tYXJzaGFsbA0KK05kclVubWFyc2hhbGxCYXNldHlwZUlubGluZQ0KK05kclVzZXJNYXJzaGFsQnVmZmVyU2l6ZQ0KK05kclVzZXJNYXJzaGFsRnJlZQ0KK05kclVzZXJNYXJzaGFsTWFyc2hhbGwNCitOZHJVc2VyTWFyc2hhbE1lbW9yeVNpemUNCitOZHJVc2VyTWFyc2hhbFNpbXBsZVR5cGVDb252ZXJ0DQorTmRyVXNlck1hcnNoYWxVbm1hcnNoYWxsDQorTmRyVmFyeWluZ0FycmF5QnVmZmVyU2l6ZQ0KK05kclZhcnlpbmdBcnJheUZyZWUNCitOZHJWYXJ5aW5nQXJyYXlNYXJzaGFsbA0KK05kclZhcnlpbmdBcnJheU1lbW9yeVNpemUNCitOZHJWYXJ5aW5nQXJyYXlVbm1hcnNoYWxsDQorTmRyWG1pdE9yUmVwQXNCdWZmZXJTaXplDQorTmRyWG1pdE9yUmVwQXNGcmVlDQorTmRyWG1pdE9yUmVwQXNNYXJzaGFsbA0KK05kclhtaXRPclJlcEFzTWVtb3J5U2l6ZQ0KK05kclhtaXRPclJlcEFzVW5tYXJzaGFsbA0KK05kcnBDcmVhdGVQcm94eQ0KK05kcnBDcmVhdGVTdHViDQorTmRycEdldFByb2NGb3JtYXRTdHJpbmcNCitOZHJwR2V0VHlwZUZvcm1hdFN0cmluZw0KK05kcnBHZXRUeXBlR2VuQ29va2llDQorTmRycE1lbW9yeUluY3JlbWVudA0KK05kcnBSZWxlYXNlVHlwZUZvcm1hdFN0cmluZw0KK05kcnBSZWxlYXNlVHlwZUdlbkNvb2tpZQ0KK05kcnBTZXRScGNTc0RlZmF1bHRzDQorTmRycFZhclZ0T2ZUeXBlRGVzYw0KK1JwY0Fib3J0QXN5bmNDYWxsDQorUnBjQXN5bmNBYm9ydENhbGwNCitScGNBc3luY0NhbmNlbENhbGwNCitScGNBc3luY0NvbXBsZXRlQ2FsbA0KK1JwY0FzeW5jR2V0Q2FsbFN0YXR1cw0KK1JwY0FzeW5jSW5pdGlhbGl6ZUhhbmRsZQ0KK1JwY0FzeW5jUmVnaXN0ZXJJbmZvDQorUnBjQmluZGluZ0NvcHkNCitScGNCaW5kaW5nRnJlZQ0KK1JwY0JpbmRpbmdGcm9tU3RyaW5nQmluZGluZ0ENCitScGNCaW5kaW5nRnJvbVN0cmluZ0JpbmRpbmdXDQorUnBjQmluZGluZ0lucUF1dGhDbGllbnRBDQorUnBjQmluZGluZ0lucUF1dGhDbGllbnRFeEENCitScGNCaW5kaW5nSW5xQXV0aENsaWVudEV4Vw0KK1JwY0JpbmRpbmdJbnFBdXRoQ2xpZW50Vw0KK1JwY0JpbmRpbmdJbnFBdXRoSW5mb0ENCitScGNCaW5kaW5nSW5xQXV0aEluZm9FeEENCitScGNCaW5kaW5nSW5xQXV0aEluZm9FeFcNCitScGNCaW5kaW5nSW5xQXV0aEluZm9XDQorUnBjQmluZGluZ0lucU9iamVjdA0KK1JwY0JpbmRpbmdJbnFPcHRpb24NCitScGNCaW5kaW5nUmVzZXQNCitScGNCaW5kaW5nU2VydmVyRnJvbUNsaWVudA0KK1JwY0JpbmRpbmdTZXRBdXRoSW5mb0ENCitScGNCaW5kaW5nU2V0QXV0aEluZm9FeEENCitScGNCaW5kaW5nU2V0QXV0aEluZm9FeFcNCitScGNCaW5kaW5nU2V0QXV0aEluZm9XDQorUnBjQmluZGluZ1NldE9iamVjdA0KK1JwY0JpbmRpbmdTZXRPcHRpb24NCitScGNCaW5kaW5nVG9TdHJpbmdCaW5kaW5nQQ0KK1JwY0JpbmRpbmdUb1N0cmluZ0JpbmRpbmdXDQorUnBjQmluZGluZ1ZlY3RvckZyZWUNCitScGNDYW5jZWxBc3luY0NhbGwNCitScGNDYW5jZWxUaHJlYWQNCitScGNDYW5jZWxUaHJlYWRFeA0KK1JwY0NlcnRHZW5lcmF0ZVByaW5jaXBhbE5hbWVBDQorUnBjQ2VydEdlbmVyYXRlUHJpbmNpcGFsTmFtZVcNCitScGNDb21wbGV0ZUFzeW5jQ2FsbA0KK1JwY0VwUmVnaXN0ZXJBDQorUnBjRXBSZWdpc3Rlck5vUmVwbGFjZUENCitScGNFcFJlZ2lzdGVyTm9SZXBsYWNlVw0KK1JwY0VwUmVnaXN0ZXJXDQorUnBjRXBSZXNvbHZlQmluZGluZw0KK1JwY0VwVW5yZWdpc3Rlcg0KK1JwY0Vycm9yQWRkUmVjb3JkDQorUnBjRXJyb3JDbGVhckluZm9ybWF0aW9uDQorUnBjRXJyb3JFbmRFbnVtZXJhdGlvbg0KK1JwY0Vycm9yR2V0TmV4dFJlY29yZA0KK1JwY0Vycm9yR2V0TnVtYmVyT2ZSZWNvcmRzDQorUnBjRXJyb3JMb2FkRXJyb3JJbmZvDQorUnBjRXJyb3JSZXNldEVudW1lcmF0aW9uDQorUnBjRXJyb3JTYXZlRXJyb3JJbmZvDQorUnBjRXJyb3JTdGFydEVudW1lcmF0aW9uDQorUnBjRnJlZUF1dGhvcml6YXRpb25Db250ZXh0DQorUnBjR2V0QXN5bmNDYWxsU3RhdHVzDQorUnBjR2V0QXV0aG9yaXphdGlvbkNvbnRleHRGb3JDbGllbnQNCitScGNJZklkVmVjdG9yRnJlZQ0KK1JwY0lmSW5xSWQNCitScGNJbXBlcnNvbmF0ZUNsaWVudA0KK1JwY0luaXRpYWxpemVBc3luY0hhbmRsZQ0KK1JwY01nbXRFbmFibGVJZGxlQ2xlYW51cA0KK1JwY01nbXRFcEVsdElucUJlZ2luDQorUnBjTWdtdEVwRWx0SW5xRG9uZQ0KK1JwY01nbXRFcEVsdElucU5leHRBDQorUnBjTWdtdEVwRWx0SW5xTmV4dFcNCitScGNNZ210RXBVbnJlZ2lzdGVyDQorUnBjTWdtdElucUNvbVRpbWVvdXQNCitScGNNZ210SW5xRGVmYXVsdFByb3RlY3RMZXZlbA0KK1JwY01nbXRJbnFJZklkcw0KK1JwY01nbXRJbnFTZXJ2ZXJQcmluY05hbWVBDQorUnBjTWdtdElucVNlcnZlclByaW5jTmFtZVcNCitScGNNZ210SW5xU3RhdHMNCitScGNNZ210SXNTZXJ2ZXJMaXN0ZW5pbmcNCitScGNNZ210U2V0QXV0aG9yaXphdGlvbkZuDQorUnBjTWdtdFNldENhbmNlbFRpbWVvdXQNCitScGNNZ210U2V0Q29tVGltZW91dA0KK1JwY01nbXRTZXRTZXJ2ZXJTdGFja1NpemUNCitScGNNZ210U3RhdHNWZWN0b3JGcmVlDQorUnBjTWdtdFN0b3BTZXJ2ZXJMaXN0ZW5pbmcNCitScGNNZ210V2FpdFNlcnZlckxpc3Rlbg0KK1JwY05ldHdvcmtJbnFQcm90c2Vxc0ENCitScGNOZXR3b3JrSW5xUHJvdHNlcXNXDQorUnBjTmV0d29ya0lzUHJvdHNlcVZhbGlkQQ0KK1JwY05ldHdvcmtJc1Byb3RzZXFWYWxpZFcNCitScGNOc0JpbmRpbmdJbnFFbnRyeU5hbWVBDQorUnBjTnNCaW5kaW5nSW5xRW50cnlOYW1lVw0KK1JwY09iamVjdElucVR5cGUNCitScGNPYmplY3RTZXRJbnFGbg0KK1JwY09iamVjdFNldFR5cGUNCitScGNQcm90c2VxVmVjdG9yRnJlZUENCitScGNQcm90c2VxVmVjdG9yRnJlZVcNCitScGNSYWlzZUV4Y2VwdGlvbg0KK1JwY1JlZ2lzdGVyQXN5bmNJbmZvDQorUnBjUmV2ZXJ0VG9TZWxmDQorUnBjUmV2ZXJ0VG9TZWxmRXgNCitScGNTZXJ2ZXJJbnFCaW5kaW5ncw0KK1JwY1NlcnZlcklucUNhbGxBdHRyaWJ1dGVzQQ0KK1JwY1NlcnZlcklucUNhbGxBdHRyaWJ1dGVzVw0KK1JwY1NlcnZlcklucURlZmF1bHRQcmluY05hbWVBDQorUnBjU2VydmVySW5xRGVmYXVsdFByaW5jTmFtZVcNCitScGNTZXJ2ZXJJbnFJZg0KK1JwY1NlcnZlckxpc3Rlbg0KK1JwY1NlcnZlclJlZ2lzdGVyQXV0aEluZm9BDQorUnBjU2VydmVyUmVnaXN0ZXJBdXRoSW5mb1cNCitScGNTZXJ2ZXJSZWdpc3RlcklmMg0KK1JwY1NlcnZlclJlZ2lzdGVySWYNCitScGNTZXJ2ZXJSZWdpc3RlcklmRXgNCitScGNTZXJ2ZXJUZXN0Q2FuY2VsDQorUnBjU2VydmVyVW5yZWdpc3RlcklmDQorUnBjU2VydmVyVW5yZWdpc3RlcklmRXgNCitScGNTZXJ2ZXJVc2VBbGxQcm90c2Vxcw0KK1JwY1NlcnZlclVzZUFsbFByb3RzZXFzRXgNCitScGNTZXJ2ZXJVc2VBbGxQcm90c2Vxc0lmDQorUnBjU2VydmVyVXNlQWxsUHJvdHNlcXNJZkV4DQorUnBjU2VydmVyVXNlUHJvdHNlcUENCitScGNTZXJ2ZXJVc2VQcm90c2VxRXBBDQorUnBjU2VydmVyVXNlUHJvdHNlcUVwRXhBDQorUnBjU2VydmVyVXNlUHJvdHNlcUVwRXhXDQorUnBjU2VydmVyVXNlUHJvdHNlcUVwVw0KK1JwY1NlcnZlclVzZVByb3RzZXFFeEENCitScGNTZXJ2ZXJVc2VQcm90c2VxRXhXDQorUnBjU2VydmVyVXNlUHJvdHNlcUlmQQ0KK1JwY1NlcnZlclVzZVByb3RzZXFJZkV4QQ0KK1JwY1NlcnZlclVzZVByb3RzZXFJZkV4Vw0KK1JwY1NlcnZlclVzZVByb3RzZXFJZlcNCitScGNTZXJ2ZXJVc2VQcm90c2VxVw0KK1JwY1NlcnZlcllpZWxkDQorUnBjU21BbGxvY2F0ZQ0KK1JwY1NtQ2xpZW50RnJlZQ0KK1JwY1NtRGVzdHJveUNsaWVudENvbnRleHQNCitScGNTbURpc2FibGVBbGxvY2F0ZQ0KK1JwY1NtRW5hYmxlQWxsb2NhdGUNCitScGNTbUZyZWUNCitScGNTbUdldFRocmVhZEhhbmRsZQ0KK1JwY1NtU2V0Q2xpZW50QWxsb2NGcmVlDQorUnBjU21TZXRUaHJlYWRIYW5kbGUNCitScGNTbVN3YXBDbGllbnRBbGxvY0ZyZWUNCitScGNTc0FsbG9jYXRlDQorUnBjU3NDb250ZXh0TG9ja0V4Y2x1c2l2ZQ0KK1JwY1NzQ29udGV4dExvY2tTaGFyZWQNCitScGNTc0Rlc3Ryb3lDbGllbnRDb250ZXh0DQorUnBjU3NEaXNhYmxlQWxsb2NhdGUNCitScGNTc0RvbnRTZXJpYWxpemVDb250ZXh0DQorUnBjU3NFbmFibGVBbGxvY2F0ZQ0KK1JwY1NzRnJlZQ0KK1JwY1NzR2V0Q29udGV4dEJpbmRpbmcNCitScGNTc0dldFRocmVhZEhhbmRsZQ0KK1JwY1NzU2V0Q2xpZW50QWxsb2NGcmVlDQorUnBjU3NTZXRUaHJlYWRIYW5kbGUNCitScGNTc1N3YXBDbGllbnRBbGxvY0ZyZWUNCitScGNTdHJpbmdCaW5kaW5nQ29tcG9zZUENCitScGNTdHJpbmdCaW5kaW5nQ29tcG9zZVcNCitScGNTdHJpbmdCaW5kaW5nUGFyc2VBDQorUnBjU3RyaW5nQmluZGluZ1BhcnNlVw0KK1JwY1N0cmluZ0ZyZWVBDQorUnBjU3RyaW5nRnJlZVcNCitScGNUZXN0Q2FuY2VsDQorUnBjVXNlckZyZWUNCitTaW1wbGVUeXBlQWxpZ25tZW50DQorU2ltcGxlVHlwZUJ1ZmZlclNpemUNCitTaW1wbGVUeXBlTWVtb3J5U2l6ZQ0KK1Rvd2VyQ29uc3RydWN0DQorVG93ZXJFeHBsb2RlDQorVXVpZENvbXBhcmUNCitVdWlkQ3JlYXRlDQorVXVpZENyZWF0ZU5pbA0KK1V1aWRDcmVhdGVTZXF1ZW50aWFsDQorVXVpZEVxdWFsDQorVXVpZEZyb21TdHJpbmdBDQorVXVpZEZyb21TdHJpbmdXDQorVXVpZEhhc2gNCitVdWlkSXNOaWwNCitVdWlkVG9TdHJpbmdBDQorVXVpZFRvU3RyaW5nVw0KK2NoYXJfYXJyYXlfZnJvbV9uZHINCitjaGFyX2Zyb21fbmRyDQorZGF0YV9mcm9tX25kcg0KK2RhdGFfaW50b19uZHINCitkYXRhX3NpemVfbmRyDQorZG91YmxlX2FycmF5X2Zyb21fbmRyDQorZG91YmxlX2Zyb21fbmRyDQorZW51bV9mcm9tX25kcg0KK2Zsb2F0X2FycmF5X2Zyb21fbmRyDQorZmxvYXRfZnJvbV9uZHINCitsb25nX2FycmF5X2Zyb21fbmRyDQorbG9uZ19mcm9tX25kcg0KK2xvbmdfZnJvbV9uZHJfdGVtcA0KK3BmbkZyZWVSb3V0aW5lcyBEQVRBDQorcGZuTWFyc2hhbGxSb3V0aW5lcyBEQVRBDQorcGZuU2l6ZVJvdXRpbmVzIERBVEENCitwZm5Vbm1hcnNoYWxsUm91dGluZXMgREFUQQ0KK3Nob3J0X2FycmF5X2Zyb21fbmRyDQorc2hvcnRfZnJvbV9uZHINCitzaG9ydF9mcm9tX25kcl90ZW1wDQordHJlZV9pbnRvX25kcg0KK3RyZWVfcGVla19uZHINCit0cmVlX3NpemVfbmRyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3JzYWVuaC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cnNhZW5oLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MTVmOGE3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3JzYWVuaC5kZWYKQEAgLTAsMCArMSwzNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBSU0FFTkguZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFJTQUVOSC5kbGwNCitFWFBPUlRTDQorQ1BBY3F1aXJlQ29udGV4dA0KK0NQQ3JlYXRlSGFzaA0KK0NQRGVjcnlwdA0KK0NQRGVyaXZlS2V5DQorQ1BEZXN0cm95SGFzaA0KK0NQRGVzdHJveUtleQ0KK0NQRHVwbGljYXRlSGFzaA0KK0NQRHVwbGljYXRlS2V5DQorQ1BFbmNyeXB0DQorQ1BFeHBvcnRLZXkNCitDUEdlbktleQ0KK0NQR2VuUmFuZG9tDQorQ1BHZXRIYXNoUGFyYW0NCitDUEdldEtleVBhcmFtDQorQ1BHZXRQcm92UGFyYW0NCitDUEdldFVzZXJLZXkNCitDUEhhc2hEYXRhDQorQ1BIYXNoU2Vzc2lvbktleQ0KK0NQSW1wb3J0S2V5DQorQ1BSZWxlYXNlQ29udGV4dA0KK0NQU2V0SGFzaFBhcmFtDQorQ1BTZXRLZXlQYXJhbQ0KK0NQU2V0UHJvdlBhcmFtDQorQ1BTaWduSGFzaA0KK0NQVmVyaWZ5U2lnbmF0dXJlDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3JzaHgzMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cnNoeDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xY2I5YzE2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3JzaHgzMi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBSU0hYMzIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFJTSFgzMi5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cnRtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dydG0uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM5ZTIzMDAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cnRtLmRlZgpAQCAtMCwwICsxLDEyMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBydG0uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHJ0bS5kbGwNCitFWFBPUlRTDQorQmVzdE1hdGNoSW5UYWJsZQ0KK0NoZWNrVGFibGUNCitDcmVhdGVUYWJsZQ0KK0RlbGV0ZUZyb21UYWJsZQ0KK0Rlc3Ryb3lUYWJsZQ0KK0R1bXBUYWJsZQ0KK0VudW1PdmVyVGFibGUNCitJbnNlcnRJbnRvVGFibGUNCitNZ21BZGRHcm91cE1lbWJlcnNoaXBFbnRyeQ0KK01nbURlSW5pdGlhbGl6ZQ0KK01nbURlUmVnaXN0ZXJNUHJvdG9jb2wNCitNZ21EZWxldGVHcm91cE1lbWJlcnNoaXBFbnRyeQ0KK01nbUdldEZpcnN0TWZlDQorTWdtR2V0Rmlyc3RNZmVTdGF0cw0KK01nbUdldE1mZQ0KK01nbUdldE1mZVN0YXRzDQorTWdtR2V0TmV4dE1mZQ0KK01nbUdldE5leHRNZmVTdGF0cw0KK01nbUdldFByb3RvY29sT25JbnRlcmZhY2UNCitNZ21Hcm91cEVudW1lcmF0aW9uRW5kDQorTWdtR3JvdXBFbnVtZXJhdGlvbkdldE5leHQNCitNZ21Hcm91cEVudW1lcmF0aW9uU3RhcnQNCitNZ21Jbml0aWFsaXplDQorTWdtUmVnaXN0ZXJNUHJvdG9jb2wNCitNZ21SZWxlYXNlSW50ZXJmYWNlT3duZXJzaGlwDQorTWdtVGFrZUludGVyZmFjZU93bmVyc2hpcA0KK05leHRNYXRjaEluVGFibGUNCitSdG1BZGROZXh0SG9wDQorUnRtQWRkUm91dGUNCitSdG1BZGRSb3V0ZVRvRGVzdA0KK1J0bUJsb2NrQ29udmVydFJvdXRlc1RvU3RhdGljDQorUnRtQmxvY2tEZWxldGVSb3V0ZXMNCitSdG1CbG9ja01ldGhvZHMNCitSdG1CbG9ja1NldFJvdXRlRW5hYmxlDQorUnRtQ2xvc2VFbnVtZXJhdGlvbkhhbmRsZQ0KK1J0bUNyZWF0ZURlc3RFbnVtDQorUnRtQ3JlYXRlRW51bWVyYXRpb25IYW5kbGUNCitSdG1DcmVhdGVOZXh0SG9wRW51bQ0KK1J0bUNyZWF0ZVJvdXRlRW51bQ0KK1J0bUNyZWF0ZVJvdXRlTGlzdA0KK1J0bUNyZWF0ZVJvdXRlTGlzdEVudW0NCitSdG1DcmVhdGVSb3V0ZVRhYmxlDQorUnRtRGVsZXRlRW51bUhhbmRsZQ0KK1J0bURlbGV0ZU5leHRIb3ANCitSdG1EZWxldGVSb3V0ZQ0KK1J0bURlbGV0ZVJvdXRlTGlzdA0KK1J0bURlbGV0ZVJvdXRlVGFibGUNCitSdG1EZWxldGVSb3V0ZVRvRGVzdA0KK1J0bURlcXVldWVSb3V0ZUNoYW5nZU1lc3NhZ2UNCitSdG1EZXJlZmVyZW5jZUhhbmRsZXMNCitSdG1EZXJlZ2lzdGVyQ2xpZW50DQorUnRtRGVyZWdpc3RlckVudGl0eQ0KK1J0bURlcmVnaXN0ZXJGcm9tQ2hhbmdlTm90aWZpY2F0aW9uDQorUnRtRW51bWVyYXRlR2V0TmV4dFJvdXRlDQorUnRtRmluZE5leHRIb3ANCitSdG1HZXRBZGRyZXNzRmFtaWx5SW5mbw0KK1J0bUdldENoYW5nZVN0YXR1cw0KK1J0bUdldENoYW5nZWREZXN0cw0KK1J0bUdldERlc3RJbmZvDQorUnRtR2V0RW50aXR5SW5mbw0KK1J0bUdldEVudGl0eU1ldGhvZHMNCitSdG1HZXRFbnVtRGVzdHMNCitSdG1HZXRFbnVtTmV4dEhvcHMNCitSdG1HZXRFbnVtUm91dGVzDQorUnRtR2V0RXhhY3RNYXRjaERlc3RpbmF0aW9uDQorUnRtR2V0RXhhY3RNYXRjaFJvdXRlDQorUnRtR2V0Rmlyc3RSb3V0ZQ0KK1J0bUdldEluc3RhbmNlSW5mbw0KK1J0bUdldEluc3RhbmNlcw0KK1J0bUdldExlc3NTcGVjaWZpY0Rlc3RpbmF0aW9uDQorUnRtR2V0TGlzdEVudW1Sb3V0ZXMNCitSdG1HZXRNb3N0U3BlY2lmaWNEZXN0aW5hdGlvbg0KK1J0bUdldE5ldHdvcmtDb3VudA0KK1J0bUdldE5leHRIb3BJbmZvDQorUnRtR2V0TmV4dEhvcFBvaW50ZXINCitSdG1HZXROZXh0Um91dGUNCitSdG1HZXRPcGFxdWVJbmZvcm1hdGlvblBvaW50ZXINCitSdG1HZXRSZWdpc3RlcmVkRW50aXRpZXMNCitSdG1HZXRSb3V0ZUFnZQ0KK1J0bUdldFJvdXRlSW5mbw0KK1J0bUdldFJvdXRlUG9pbnRlcg0KK1J0bUhvbGREZXN0aW5hdGlvbg0KK1J0bUlnbm9yZUNoYW5nZWREZXN0cw0KK1J0bUluc2VydEluUm91dGVMaXN0DQorUnRtSW52b2tlTWV0aG9kDQorUnRtSXNCZXN0Um91dGUNCitSdG1Jc01hcmtlZEZvckNoYW5nZU5vdGlmaWNhdGlvbg0KK1J0bUlzUm91dGUNCitSdG1Mb2NrRGVzdGluYXRpb24NCitSdG1Mb2NrTmV4dEhvcA0KK1J0bUxvY2tSb3V0ZQ0KK1J0bUxvb2t1cElQRGVzdGluYXRpb24NCitSdG1NYXJrRGVzdEZvckNoYW5nZU5vdGlmaWNhdGlvbg0KK1J0bVJlYWRBZGRyZXNzRmFtaWx5Q29uZmlnDQorUnRtUmVhZEluc3RhbmNlQ29uZmlnDQorUnRtUmVmZXJlbmNlSGFuZGxlcw0KK1J0bVJlZ2lzdGVyQ2xpZW50DQorUnRtUmVnaXN0ZXJFbnRpdHkNCitSdG1SZWdpc3RlckZvckNoYW5nZU5vdGlmaWNhdGlvbg0KK1J0bVJlbGVhc2VDaGFuZ2VkRGVzdHMNCitSdG1SZWxlYXNlRGVzdEluZm8NCitSdG1SZWxlYXNlRGVzdHMNCitSdG1SZWxlYXNlRW50aXRpZXMNCitSdG1SZWxlYXNlRW50aXR5SW5mbw0KK1J0bVJlbGVhc2VOZXh0SG9wSW5mbw0KK1J0bVJlbGVhc2VOZXh0SG9wcw0KK1J0bVJlbGVhc2VSb3V0ZUluZm8NCitSdG1SZWxlYXNlUm91dGVzDQorUnRtVXBkYXRlQW5kVW5sb2NrUm91dGUNCitSdG1Xcml0ZUFkZHJlc3NGYW1pbHlDb25maWcNCitSdG1Xcml0ZUluc3RhbmNlQ29uZmlnDQorU2VhcmNoSW5UYWJsZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dydHV0aWxzLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dydHV0aWxzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MmY3YjY1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3J0dXRpbHMuZGVmCkBAIC0wLDAgKzEsNTEgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgcnR1dGlscy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgcnR1dGlscy5kbGwNCitFWFBPUlRTDQorTG9nRXJyb3JBDQorTG9nRXJyb3JXDQorTG9nRXZlbnRBDQorTG9nRXZlbnRXDQorTXByU2V0dXBQcm90b2NvbEVudW0NCitNcHJTZXR1cFByb3RvY29sRnJlZQ0KK1F1ZXVlV29ya0l0ZW0NCitSb3V0ZXJBc3NlcnQNCitSb3V0ZXJHZXRFcnJvclN0cmluZ0ENCitSb3V0ZXJHZXRFcnJvclN0cmluZ1cNCitSb3V0ZXJMb2dEZXJlZ2lzdGVyQQ0KK1JvdXRlckxvZ0RlcmVnaXN0ZXJXDQorUm91dGVyTG9nRXZlbnRBDQorUm91dGVyTG9nRXZlbnREYXRhQQ0KK1JvdXRlckxvZ0V2ZW50RGF0YVcNCitSb3V0ZXJMb2dFdmVudEV4QQ0KK1JvdXRlckxvZ0V2ZW50RXhXDQorUm91dGVyTG9nRXZlbnRTdHJpbmdBDQorUm91dGVyTG9nRXZlbnRTdHJpbmdXDQorUm91dGVyTG9nRXZlbnRWYWxpc3RFeEENCitSb3V0ZXJMb2dFdmVudFZhbGlzdEV4Vw0KK1JvdXRlckxvZ0V2ZW50Vw0KK1JvdXRlckxvZ1JlZ2lzdGVyQQ0KK1JvdXRlckxvZ1JlZ2lzdGVyVw0KK1NldElvQ29tcGxldGlvblByb2MNCitUcmFjZURlcmVnaXN0ZXJBDQorVHJhY2VEZXJlZ2lzdGVyRXhBDQorVHJhY2VEZXJlZ2lzdGVyRXhXDQorVHJhY2VEZXJlZ2lzdGVyVw0KK1RyYWNlRHVtcEV4QQ0KK1RyYWNlRHVtcEV4Vw0KK1RyYWNlR2V0Q29uc29sZUENCitUcmFjZUdldENvbnNvbGVXDQorVHJhY2VQcmludGZBDQorVHJhY2VQcmludGZFeEENCitUcmFjZVByaW50ZkV4Vw0KK1RyYWNlUHJpbnRmVw0KK1RyYWNlUHV0c0V4QQ0KK1RyYWNlUHV0c0V4Vw0KK1RyYWNlUmVnaXN0ZXJFeEENCitUcmFjZVJlZ2lzdGVyRXhXDQorVHJhY2VWcHJpbnRmRXhBDQorVHJhY2VWcHJpbnRmRXhXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3J2c2UuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3J2c2UuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBjYWNjZjQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93cnZzZS5kZWYKQEAgLTAsMCArMSwyMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBSZXZlcnNpLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBSZXZlcnNpLmRsbA0KK0VYUE9SVFMNCitab25lQ2xpZW50TWFpbg0KK1pvbmVDbGllbnRFeGl0DQorWm9uZUNsaWVudEdhbWVBZGRLaWJpdHplcg0KK1pvbmVDbGllbnRHYW1lRGVsZXRlDQorWm9uZUNsaWVudEdhbWVOZXcNCitab25lQ2xpZW50R2FtZVByb2Nlc3NNZXNzYWdlDQorWm9uZUNsaWVudEdhbWVSZW1vdmVLaWJpdHplcg0KK1pvbmVDbGllbnRJbnRlcm5hbE5hbWUNCitab25lQ2xpZW50TWVzc2FnZUhhbmRsZXINCitab25lQ2xpZW50TmFtZQ0KK1pvbmVDbGllbnRWZXJzaW9uDQorWm9uZUdhbWVEbGxEZWxldGUNCitab25lR2FtZURsbEluaXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93cnduaC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93cnduaC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTcwNTYxZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dyd25oLmRlZgpAQCAtMCwwICsxLDEwNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBSV05ILmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBSV05ILmRsbA0KK0VYUE9SVFMNCis7IHB1YmxpYzogX190aGlzY2FsbCBDQ3JpdFNlY3Rpb246OkNDcml0U2VjdGlvbih2b2lkKQ0KKz8/MENDcml0U2VjdGlvbkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1NoYXJlTG9ja0V4cG9ydDo6Q1NoYXJlTG9ja0V4cG9ydCh2b2lkKQ0KKz8/MENTaGFyZUxvY2tFeHBvcnRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTaGFyZUxvY2tOSDo6Q1NoYXJlTG9ja05IKHZvaWQpDQorPz8wQ1NoYXJlTG9ja05IQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU2ltcGxlQ3JpdFNlY3Rpb246OkNTaW1wbGVDcml0U2VjdGlvbih2b2lkKQ0KKz8/MENTaW1wbGVDcml0U2VjdGlvbkBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ0NyaXRTZWN0aW9uOjp+Q0NyaXRTZWN0aW9uKHZvaWQpDQorPz8xQ0NyaXRTZWN0aW9uQEBRQUVAWFoNCis7IHB1YmxpYzogX190aGlzY2FsbCBDU2hhcmVMb2NrRXhwb3J0Ojp+Q1NoYXJlTG9ja0V4cG9ydCh2b2lkKQ0KKz8/MUNTaGFyZUxvY2tFeHBvcnRAQFFBRUBYWg0KKzsgcHVibGljOiBfX3RoaXNjYWxsIENTaGFyZUxvY2tOSDo6fkNTaGFyZUxvY2tOSCh2b2lkKQ0KKz8/MUNTaGFyZUxvY2tOSEBAUUFFQFhaDQorOyBwdWJsaWM6IF9fdGhpc2NhbGwgQ1NpbXBsZUNyaXRTZWN0aW9uOjp+Q1NpbXBsZUNyaXRTZWN0aW9uKHZvaWQpDQorPz8xQ1NpbXBsZUNyaXRTZWN0aW9uQEBRQUVAWFoNCis7IHB1YmxpYzogY2xhc3MgQ1NoYXJlTG9ja0V4cG9ydCAmIF9fdGhpc2NhbGwgQ1NoYXJlTG9ja0V4cG9ydDo6b3BlcmF0b3I9KGNsYXNzIENTaGFyZUxvY2tFeHBvcnQgY29uc3QgJikNCis/PzRDU2hhcmVMb2NrRXhwb3J0QEBRQUVBQVYwQEFCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgQ1NpbXBsZUNyaXRTZWN0aW9uICYgX190aGlzY2FsbCBDU2ltcGxlQ3JpdFNlY3Rpb246Om9wZXJhdG9yPShjbGFzcyBDU2ltcGxlQ3JpdFNlY3Rpb24gY29uc3QgJikNCis/PzRDU2ltcGxlQ3JpdFNlY3Rpb25AQFFBRUFBVjBAQUJWMEBAWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ0NyaXRTZWN0aW9uOjpFbnRlcihjbGFzcyBDV2FpdGluZ1RocmVhZCAmKQ0KKz9FbnRlckBDQ3JpdFNlY3Rpb25AQFFBRVhBQVZDV2FpdGluZ1RocmVhZEBAQFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDcml0U2VjdGlvbjo6RW50ZXIodm9pZCkNCis/RW50ZXJAQ0NyaXRTZWN0aW9uQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTaW1wbGVDcml0U2VjdGlvbjo6RW50ZXIoY2xhc3MgQ1dhaXRpbmdUaHJlYWQgJikNCis/RW50ZXJAQ1NpbXBsZUNyaXRTZWN0aW9uQEBRQUVYQUFWQ1dhaXRpbmdUaHJlYWRAQEBaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU2ltcGxlQ3JpdFNlY3Rpb246OkVudGVyKHZvaWQpDQorP0VudGVyQENTaW1wbGVDcml0U2VjdGlvbkBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU2hhcmVMb2NrRXhwb3J0OjpFeGNsdXNpdmVMb2NrKHZvaWQpDQorP0V4Y2x1c2l2ZUxvY2tAQ1NoYXJlTG9ja0V4cG9ydEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU2hhcmVMb2NrTkg6OkV4Y2x1c2l2ZUxvY2sodm9pZCkNCis/RXhjbHVzaXZlTG9ja0BDU2hhcmVMb2NrTkhAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NoYXJlTG9ja05IOjpFeGNsdXNpdmVUb1BhcnRpYWwodm9pZCkNCis/RXhjbHVzaXZlVG9QYXJ0aWFsQENTaGFyZUxvY2tOSEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU2hhcmVMb2NrRXhwb3J0OjpFeGNsdXNpdmVUb1NoYXJlZCh2b2lkKQ0KKz9FeGNsdXNpdmVUb1NoYXJlZEBDU2hhcmVMb2NrRXhwb3J0QEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTaGFyZUxvY2tOSDo6RXhjbHVzaXZlVG9TaGFyZWQodm9pZCkNCis/RXhjbHVzaXZlVG9TaGFyZWRAQ1NoYXJlTG9ja05IQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTaGFyZUxvY2tFeHBvcnQ6OkV4Y2x1c2l2ZVVubG9jayh2b2lkKQ0KKz9FeGNsdXNpdmVVbmxvY2tAQ1NoYXJlTG9ja0V4cG9ydEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU2hhcmVMb2NrTkg6OkV4Y2x1c2l2ZVVubG9jayh2b2lkKQ0KKz9FeGNsdXNpdmVVbmxvY2tAQ1NoYXJlTG9ja05IQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTaGFyZUxvY2tOSDo6Rmlyc3RQYXJ0aWFsVG9FeGNsdXNpdmUodm9pZCkNCis/Rmlyc3RQYXJ0aWFsVG9FeGNsdXNpdmVAQ1NoYXJlTG9ja05IQEBRQUVYWFoNCis7IHZvaWQgKiBfX3N0ZGNhbGwgR2V0UGVyVGhyZWFkRXZlbnQodm9pZCkNCis/R2V0UGVyVGhyZWFkRXZlbnRAQFlHUEFYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENDcml0U2VjdGlvbjo6TGVhdmUodm9pZCkNCis/TGVhdmVAQ0NyaXRTZWN0aW9uQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTaW1wbGVDcml0U2VjdGlvbjo6TGVhdmUodm9pZCkNCis/TGVhdmVAQ1NpbXBsZUNyaXRTZWN0aW9uQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTaGFyZUxvY2tOSDo6UGFydGlhbExvY2sodm9pZCkNCis/UGFydGlhbExvY2tAQ1NoYXJlTG9ja05IQEBRQUVYWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1NoYXJlTG9ja05IOjpQYXJ0aWFsVG9FeGNsdXNpdmUodm9pZCkNCis/UGFydGlhbFRvRXhjbHVzaXZlQENTaGFyZUxvY2tOSEBAUUFFSFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU2hhcmVMb2NrTkg6OlBhcnRpYWxUb1NoYXJlZCh2b2lkKQ0KKz9QYXJ0aWFsVG9TaGFyZWRAQ1NoYXJlTG9ja05IQEBRQUVYWFoNCis7IHB1YmxpYzogdm9pZCBfX3RoaXNjYWxsIENTaGFyZUxvY2tOSDo6UGFydGlhbFVubG9jayh2b2lkKQ0KKz9QYXJ0aWFsVW5sb2NrQENTaGFyZUxvY2tOSEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU2hhcmVMb2NrRXhwb3J0OjpTaGFyZUxvY2sodm9pZCkNCis/U2hhcmVMb2NrQENTaGFyZUxvY2tFeHBvcnRAQFFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NoYXJlTG9ja05IOjpTaGFyZUxvY2sodm9pZCkNCis/U2hhcmVMb2NrQENTaGFyZUxvY2tOSEBAUUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1NoYXJlTG9ja05IOjpTaGFyZUxvY2tJbnRlcm5hbCh2b2lkKQ0KKz9TaGFyZUxvY2tJbnRlcm5hbEBDU2hhcmVMb2NrTkhAQEFBRVhYWg0KKzsgcHVibGljOiB2b2lkIF9fdGhpc2NhbGwgQ1NoYXJlTG9ja0V4cG9ydDo6U2hhcmVVbmxvY2sodm9pZCkNCis/U2hhcmVVbmxvY2tAQ1NoYXJlTG9ja0V4cG9ydEBAUUFFWFhaDQorOyBwdWJsaWM6IHZvaWQgX190aGlzY2FsbCBDU2hhcmVMb2NrTkg6OlNoYXJlVW5sb2NrKHZvaWQpDQorP1NoYXJlVW5sb2NrQENTaGFyZUxvY2tOSEBAUUFFWFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1NoYXJlTG9ja05IOjpTaGFyZVVubG9ja0ludGVybmFsKHZvaWQpDQorP1NoYXJlVW5sb2NrSW50ZXJuYWxAQ1NoYXJlTG9ja05IQEBBQUVYWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1NoYXJlTG9ja0V4cG9ydDo6U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkNCis/U2hhcmVkVG9FeGNsdXNpdmVAQ1NoYXJlTG9ja0V4cG9ydEBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTaGFyZUxvY2tOSDo6U2hhcmVkVG9FeGNsdXNpdmUodm9pZCkNCis/U2hhcmVkVG9FeGNsdXNpdmVAQ1NoYXJlTG9ja05IQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1NoYXJlTG9ja05IOjpTaGFyZWRUb1BhcnRpYWwodm9pZCkNCis/U2hhcmVkVG9QYXJ0aWFsQENTaGFyZUxvY2tOSEBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDcml0U2VjdGlvbjo6VHJ5RW50ZXIoY2xhc3MgQ1dhaXRpbmdUaHJlYWQgJikNCis/VHJ5RW50ZXJAQ0NyaXRTZWN0aW9uQEBRQUVIQUFWQ1dhaXRpbmdUaHJlYWRAQEBaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENDcml0U2VjdGlvbjo6VHJ5RW50ZXIodm9pZCkNCis/VHJ5RW50ZXJAQ0NyaXRTZWN0aW9uQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1NpbXBsZUNyaXRTZWN0aW9uOjpUcnlFbnRlcihjbGFzcyBDV2FpdGluZ1RocmVhZCAmKQ0KKz9UcnlFbnRlckBDU2ltcGxlQ3JpdFNlY3Rpb25AQFFBRUhBQVZDV2FpdGluZ1RocmVhZEBAQFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1NpbXBsZUNyaXRTZWN0aW9uOjpUcnlFbnRlcih2b2lkKQ0KKz9UcnlFbnRlckBDU2ltcGxlQ3JpdFNlY3Rpb25AQFFBRUhYWg0KKzsgcHVibGljOiBpbnQgX190aGlzY2FsbCBDU2hhcmVMb2NrRXhwb3J0OjpUcnlFeGNsdXNpdmVMb2NrKHZvaWQpDQorP1RyeUV4Y2x1c2l2ZUxvY2tAQ1NoYXJlTG9ja0V4cG9ydEBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTaGFyZUxvY2tOSDo6VHJ5RXhjbHVzaXZlTG9jayh2b2lkKQ0KKz9UcnlFeGNsdXNpdmVMb2NrQENTaGFyZUxvY2tOSEBAUUFFSFhaDQorOyBwdWJsaWM6IGludCBfX3RoaXNjYWxsIENTaGFyZUxvY2tOSDo6VHJ5UGFydGlhbExvY2sodm9pZCkNCis/VHJ5UGFydGlhbExvY2tAQ1NoYXJlTG9ja05IQEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1NoYXJlTG9ja0V4cG9ydDo6VHJ5U2hhcmVMb2NrKHZvaWQpDQorP1RyeVNoYXJlTG9ja0BDU2hhcmVMb2NrRXhwb3J0QEBRQUVIWFoNCis7IHB1YmxpYzogaW50IF9fdGhpc2NhbGwgQ1NoYXJlTG9ja05IOjpUcnlTaGFyZUxvY2sodm9pZCkNCis/VHJ5U2hhcmVMb2NrQENTaGFyZUxvY2tOSEBAUUFFSFhaDQorOyBwcml2YXRlOiB2b2lkIF9fdGhpc2NhbGwgQ1NoYXJlTG9ja05IOjpXYWtlUmVhZGVycyh2b2lkKQ0KKz9XYWtlUmVhZGVyc0BDU2hhcmVMb2NrTkhAQEFBRVhYWg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dzMl8zMi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93czJfMzIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhkNWIxNmMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93czJfMzIuZGVmCkBAIC0wLDAgKzEsMTM2IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdTMl8zMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgV1MyXzMyLmRsbA0KK0VYUE9SVFMNCithY2NlcHQNCitiaW5kDQorY2xvc2Vzb2NrZXQNCitjb25uZWN0DQorZ2V0cGVlcm5hbWUNCitnZXRzb2NrbmFtZQ0KK2dldHNvY2tvcHQNCitodG9ubA0KK2h0b25zDQoraW9jdGxzb2NrZXQNCitpbmV0X2FkZHINCitpbmV0X250b2ENCitsaXN0ZW4NCitudG9obA0KK250b2hzDQorcmVjdg0KK3JlY3Zmcm9tDQorc2VsZWN0DQorc2VuZA0KK3NlbmR0bw0KK3NldHNvY2tvcHQNCitzaHV0ZG93bg0KK3NvY2tldA0KK1dTQXBTZXRQb3N0Um91dGluZQ0KK0ZyZWVBZGRySW5mb1cNCitHZXRBZGRySW5mb1cNCitHZXROYW1lSW5mb1cNCitXUFVDb21wbGV0ZU92ZXJsYXBwZWRSZXF1ZXN0DQorV1NBQWNjZXB0DQorV1NBQWRkcmVzc1RvU3RyaW5nQQ0KK1dTQUFkZHJlc3NUb1N0cmluZ1cNCitXU0FDbG9zZUV2ZW50DQorV1NBQ29ubmVjdA0KK1dTQUNyZWF0ZUV2ZW50DQorV1NBRHVwbGljYXRlU29ja2V0QQ0KK1dTQUR1cGxpY2F0ZVNvY2tldFcNCitXU0FFbnVtTmFtZVNwYWNlUHJvdmlkZXJzQQ0KK1dTQUVudW1OYW1lU3BhY2VQcm92aWRlcnNXDQorV1NBRW51bU5ldHdvcmtFdmVudHMNCitXU0FFbnVtUHJvdG9jb2xzQQ0KK1dTQUVudW1Qcm90b2NvbHNXDQorV1NBRXZlbnRTZWxlY3QNCitXU0FHZXRPdmVybGFwcGVkUmVzdWx0DQorV1NBR2V0UU9TQnlOYW1lDQorV1NBR2V0U2VydmljZUNsYXNzSW5mb0ENCitXU0FHZXRTZXJ2aWNlQ2xhc3NJbmZvVw0KK1dTQUdldFNlcnZpY2VDbGFzc05hbWVCeUNsYXNzSWRBDQorV1NBR2V0U2VydmljZUNsYXNzTmFtZUJ5Q2xhc3NJZFcNCitXU0FIdG9ubA0KK1dTQUh0b25zDQorZ2V0aG9zdGJ5YWRkcg0KK2dldGhvc3RieW5hbWUNCitnZXRwcm90b2J5bmFtZQ0KK2dldHByb3RvYnludW1iZXINCitnZXRzZXJ2YnluYW1lDQorZ2V0c2VydmJ5cG9ydA0KK2dldGhvc3RuYW1lDQorV1NBSW5zdGFsbFNlcnZpY2VDbGFzc0ENCitXU0FJbnN0YWxsU2VydmljZUNsYXNzVw0KK1dTQUlvY3RsDQorV1NBSm9pbkxlYWYNCitXU0FMb29rdXBTZXJ2aWNlQmVnaW5BDQorV1NBTG9va3VwU2VydmljZUJlZ2luVw0KK1dTQUxvb2t1cFNlcnZpY2VFbmQNCitXU0FMb29rdXBTZXJ2aWNlTmV4dEENCitXU0FMb29rdXBTZXJ2aWNlTmV4dFcNCitXU0FOU1BJb2N0bA0KK1dTQU50b2hsDQorV1NBTnRvaHMNCitXU0FQcm92aWRlckNvbmZpZ0NoYW5nZQ0KK1dTQVJlY3YNCitXU0FSZWN2RGlzY29ubmVjdA0KK1dTQVJlY3ZGcm9tDQorV1NBUmVtb3ZlU2VydmljZUNsYXNzDQorV1NBUmVzZXRFdmVudA0KK1dTQVNlbmQNCitXU0FTZW5kRGlzY29ubmVjdA0KK1dTQVNlbmRUbw0KK1dTQVNldEV2ZW50DQorV1NBU2V0U2VydmljZUENCitXU0FTZXRTZXJ2aWNlVw0KK1dTQVNvY2tldEENCitXU0FTb2NrZXRXDQorV1NBU3RyaW5nVG9BZGRyZXNzQQ0KK1dTQVN0cmluZ1RvQWRkcmVzc1cNCitXU0FXYWl0Rm9yTXVsdGlwbGVFdmVudHMNCitXU0NEZWluc3RhbGxQcm92aWRlcg0KK1dTQ0RlaW5zdGFsbFByb3ZpZGVyMzINCitXU0NFbmFibGVOU1Byb3ZpZGVyDQorV1NDRW5hYmxlTlNQcm92aWRlcjMyDQorV1NDRW51bU5hbWVTcGFjZVByb3ZpZGVyczMyDQorV1NDRW51bVByb3RvY29scw0KK1dTQ0VudW1Qcm90b2NvbHMzMg0KK1dTQ0dldFByb3ZpZGVyUGF0aA0KK1dTQ0dldFByb3ZpZGVyUGF0aDMyDQorV1NDSW5zdGFsbE5hbWVTcGFjZQ0KK1dTQ0luc3RhbGxOYW1lU3BhY2UzMg0KK1dTQ0luc3RhbGxQcm92aWRlcg0KK1dTQ0luc3RhbGxQcm92aWRlcjY0XzMyDQorV1NDVW5JbnN0YWxsTmFtZVNwYWNlDQorV1NBQXN5bmNTZWxlY3QNCitXU0FBc3luY0dldEhvc3RCeUFkZHINCitXU0FBc3luY0dldEhvc3RCeU5hbWUNCitXU0FBc3luY0dldFByb3RvQnlOdW1iZXINCitXU0FBc3luY0dldFByb3RvQnlOYW1lDQorV1NBQXN5bmNHZXRTZXJ2QnlQb3J0DQorV1NBQXN5bmNHZXRTZXJ2QnlOYW1lDQorV1NBQ2FuY2VsQXN5bmNSZXF1ZXN0DQorV1NBU2V0QmxvY2tpbmdIb29rDQorV1NBVW5ob29rQmxvY2tpbmdIb29rDQorV1NBR2V0TGFzdEVycm9yDQorV1NBU2V0TGFzdEVycm9yDQorV1NBQ2FuY2VsQmxvY2tpbmdDYWxsDQorV1NBSXNCbG9ja2luZw0KK1dTQVN0YXJ0dXANCitXU0FDbGVhbnVwDQorV1NDVW5JbnN0YWxsTmFtZVNwYWNlMzINCitXU0NVcGRhdGVQcm92aWRlcg0KK1dTQ1VwZGF0ZVByb3ZpZGVyMzINCitXU0NXcml0ZU5hbWVTcGFjZU9yZGVyDQorV1NDV3JpdGVOYW1lU3BhY2VPcmRlcjMyDQorV1NDV3JpdGVQcm92aWRlck9yZGVyDQorV1NDV3JpdGVQcm92aWRlck9yZGVyMzINCitmcmVlYWRkcmluZm8NCitnZXRhZGRyaW5mbw0KK2dldG5hbWVpbmZvDQorX19XU0FGRElzU2V0DQorV0VQDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3MyaGVscC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93czJoZWxwLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NWYwM2EzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3MyaGVscC5kZWYKQEAgLTAsMCArMSwzMSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBXUzJIRUxQLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXUzJIRUxQLmRsbA0KK0VYUE9SVFMNCitXYWhDbG9zZUFwY0hlbHBlcg0KK1dhaENsb3NlSGFuZGxlSGVscGVyDQorV2FoQ2xvc2VOb3RpZmljYXRpb25IYW5kbGVIZWxwZXINCitXYWhDbG9zZVNvY2tldEhhbmRsZQ0KK1dhaENsb3NlVGhyZWFkDQorV2FoQ29tcGxldGVSZXF1ZXN0DQorV2FoQ3JlYXRlSGFuZGxlQ29udGV4dFRhYmxlDQorV2FoQ3JlYXRlTm90aWZpY2F0aW9uSGFuZGxlDQorV2FoQ3JlYXRlU29ja2V0SGFuZGxlDQorV2FoRGVzdHJveUhhbmRsZUNvbnRleHRUYWJsZQ0KK1dhaERpc2FibGVOb25JRlNIYW5kbGVTdXBwb3J0DQorV2FoRW5hYmxlTm9uSUZTSGFuZGxlU3VwcG9ydA0KK1dhaEVudW1lcmF0ZUhhbmRsZUNvbnRleHRzDQorV2FoSW5zZXJ0SGFuZGxlQ29udGV4dA0KK1dhaE5vdGlmeUFsbFByb2Nlc3Nlcw0KK1dhaE9wZW5BcGNIZWxwZXINCitXYWhPcGVuQ3VycmVudFRocmVhZA0KK1dhaE9wZW5IYW5kbGVIZWxwZXINCitXYWhPcGVuTm90aWZpY2F0aW9uSGFuZGxlSGVscGVyDQorV2FoUXVldWVVc2VyQXBjDQorV2FoUmVmZXJlbmNlQ29udGV4dEJ5SGFuZGxlDQorV2FoUmVtb3ZlSGFuZGxlQ29udGV4dA0KK1dhaFdhaXRGb3JOb3RpZmljYXRpb24NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93c2FtbGliLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dzYW1saWIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQyYzlmYWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93c2FtbGliLmRlZgpAQCAtMCwwICsxLDczIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNBTUxJQi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU0FNTElCLmRsbA0KK0VYUE9SVFMNCitTYW1BZGRNZW1iZXJUb0FsaWFzDQorU2FtQWRkTWVtYmVyVG9Hcm91cA0KK1NhbUFkZE11bHRpcGxlTWVtYmVyc1RvQWxpYXMNCitTYW1DaGFuZ2VQYXNzd29yZFVzZXIyDQorU2FtQ2hhbmdlUGFzc3dvcmRVc2VyMw0KK1NhbUNoYW5nZVBhc3N3b3JkVXNlcg0KK1NhbUNsb3NlSGFuZGxlDQorU2FtQ29ubmVjdA0KK1NhbUNvbm5lY3RXaXRoQ3JlZHMNCitTYW1DcmVhdGVBbGlhc0luRG9tYWluDQorU2FtQ3JlYXRlR3JvdXBJbkRvbWFpbg0KK1NhbUNyZWF0ZVVzZXIySW5Eb21haW4NCitTYW1DcmVhdGVVc2VySW5Eb21haW4NCitTYW1EZWxldGVBbGlhcw0KK1NhbURlbGV0ZUdyb3VwDQorU2FtRGVsZXRlVXNlcg0KK1NhbUVudW1lcmF0ZUFsaWFzZXNJbkRvbWFpbg0KK1NhbUVudW1lcmF0ZURvbWFpbnNJblNhbVNlcnZlcg0KK1NhbUVudW1lcmF0ZUdyb3Vwc0luRG9tYWluDQorU2FtRW51bWVyYXRlVXNlcnNJbkRvbWFpbg0KK1NhbUZyZWVNZW1vcnkNCitTYW1HZXRBbGlhc01lbWJlcnNoaXANCitTYW1HZXRDb21wYXRpYmlsaXR5TW9kZQ0KK1NhbUdldERpc3BsYXlFbnVtZXJhdGlvbkluZGV4DQorU2FtR2V0R3JvdXBzRm9yVXNlcg0KK1NhbUdldE1lbWJlcnNJbkFsaWFzDQorU2FtR2V0TWVtYmVyc0luR3JvdXANCitTYW1Mb29rdXBEb21haW5JblNhbVNlcnZlcg0KK1NhbUxvb2t1cElkc0luRG9tYWluDQorU2FtTG9va3VwTmFtZXNJbkRvbWFpbg0KK1NhbU9wZW5BbGlhcw0KK1NhbU9wZW5Eb21haW4NCitTYW1PcGVuR3JvdXANCitTYW1PcGVuVXNlcg0KK1NhbVF1ZXJ5RGlzcGxheUluZm9ybWF0aW9uDQorU2FtUXVlcnlJbmZvcm1hdGlvbkFsaWFzDQorU2FtUXVlcnlJbmZvcm1hdGlvbkRvbWFpbg0KK1NhbVF1ZXJ5SW5mb3JtYXRpb25Hcm91cA0KK1NhbVF1ZXJ5SW5mb3JtYXRpb25Vc2VyDQorU2FtUXVlcnlTZWN1cml0eU9iamVjdA0KK1NhbVJlbW92ZU1lbWJlckZyb21BbGlhcw0KK1NhbVJlbW92ZU1lbWJlckZyb21Gb3JlaWduRG9tYWluDQorU2FtUmVtb3ZlTWVtYmVyRnJvbUdyb3VwDQorU2FtUmVtb3ZlTXVsdGlwbGVNZW1iZXJzRnJvbUFsaWFzDQorU2FtUmlkVG9TaWQNCitTYW1TZXRJbmZvcm1hdGlvbkFsaWFzDQorU2FtU2V0SW5mb3JtYXRpb25Eb21haW4NCitTYW1TZXRJbmZvcm1hdGlvbkdyb3VwDQorU2FtU2V0SW5mb3JtYXRpb25Vc2VyDQorU2FtU2V0TWVtYmVyQXR0cmlidXRlc09mR3JvdXANCitTYW1TZXRTZWN1cml0eU9iamVjdA0KK1NhbVNodXRkb3duU2FtU2VydmVyDQorU2FtVGVzdFByaXZhdGVGdW5jdGlvbnNEb21haW4NCitTYW1UZXN0UHJpdmF0ZUZ1bmN0aW9uc1VzZXINCitTYW1WYWxpZGF0ZVBhc3N3b3JkDQorU2FtaUNoYW5nZUtleXMNCitTYW1pQ2hhbmdlUGFzc3dvcmRVc2VyMg0KK1NhbWlDaGFuZ2VQYXNzd29yZFVzZXINCitTYW1pRW5jcnlwdFBhc3N3b3Jkcw0KK1NhbWlHZXRCb290S2V5SW5mb3JtYXRpb24NCitTYW1pTG1DaGFuZ2VQYXNzd29yZFVzZXINCitTYW1pT2VtQ2hhbmdlUGFzc3dvcmRVc2VyMg0KK1NhbWlTZXRCb290S2V5SW5mb3JtYXRpb24NCitTYW1pU2V0RFNSTVBhc3N3b3JkDQorU2FtaVNldERTUk1QYXNzd29yZE9XRg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dzYXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dzYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZmUyMjk1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3NhcGkuZGVmCkBAIC0wLDAgKzEsMTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgc2FwaS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgc2FwaS5kbGwNCitFWFBPUlRTDQorUnVuU2FwaVNlcnZlcg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3NiZS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93c2JlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44OGYwZjNhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3NiZS5kZWYKQEAgLTAsMCArMSwxMyBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBzYmUuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHNiZS5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitHZXRQcm94eURsbEluZm8NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93c2JlaW8uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3NiZWlvLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ODVhOTY5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3NiZWlvLmRlZgpAQCAtMCwwICsxLDEwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHNiZWlvLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBzYmVpby5kbGwNCitFWFBPUlRTDQorRFZSQ3JlYXRlRFZSRmlsZVNpbmsNCitEVlJDcmVhdGVEVlJGaWxlU291cmNlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3NjYXJkZGxnLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dzY2FyZGRsZy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjE1ODZhZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dzY2FyZGRsZy5kZWYKQEAgLTAsMCArMSwxNSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTQ0FSRERMRy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU0NBUkRETEcuZGxsDQorRVhQT1JUUw0KK0dldE9wZW5DYXJkTmFtZUENCitHZXRPcGVuQ2FyZE5hbWVXDQorU0NhcmREbGdFeHRlbmRlZEVycm9yDQorU0NhcmRVSURsZ1NlbGVjdENhcmRBDQorU0NhcmRVSURsZ1NlbGVjdENhcmRXDQorU0NhcmRVSURsZ0dldFBJTkENCitTQ2FyZFVJRGxnQ2hhbmdlUElOQQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dzY2NiYXNlLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dzY2NiYXNlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MWMwY2VjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3NjY2Jhc2UuZGVmCkBAIC0wLDAgKzEsMzQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU0NDQkFTRS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU0NDQkFTRS5kbGwNCitFWFBPUlRTDQorQ1BBY3F1aXJlQ29udGV4dA0KK0NQQWNxdWlyZUNvbnRleHRXDQorQ1BDcmVhdGVIYXNoDQorQ1BEZWNyeXB0DQorQ1BEZXJpdmVLZXkNCitDUERlc3Ryb3lIYXNoDQorQ1BEZXN0cm95S2V5DQorQ1BFbmNyeXB0DQorQ1BFeHBvcnRLZXkNCitDUEdlbktleQ0KK0NQR2VuUmFuZG9tDQorQ1BHZXRIYXNoUGFyYW0NCitDUEdldEtleVBhcmFtDQorQ1BHZXRQcm92UGFyYW0NCitDUEdldFVzZXJLZXkNCitDUEhhc2hEYXRhDQorQ1BIYXNoU2Vzc2lvbktleQ0KK0NQSW1wb3J0S2V5DQorQ1BSZWxlYXNlQ29udGV4dA0KK0NQU2V0SGFzaFBhcmFtDQorQ1BTZXRLZXlQYXJhbQ0KK0NQU2V0UHJvdlBhcmFtDQorQ1BTaWduSGFzaA0KK0NQVmVyaWZ5U2lnbmF0dXJlDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3NjY3NjY3AuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3NjY3NjY3AuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEzMmYxNWEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93c2Njc2NjcC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTY2NTQ0NQLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTY2NTQ0NQLkRMTA0KK0VYUE9SVFMNCitTQ0NQRGxsQ2FuVW5sb2FkTm93DQorU0NDUERsbEdldENsYXNzT2JqZWN0DQorU0NDUERsbFJlZ2lzdGVyU2VydmVyDQorU0NDUERsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93c2NlY2xpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dzY2VjbGkuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjljYmIxZDAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93c2NlY2xpLmRlZgpAQCAtMCwwICsxLDgwIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNDRUNMSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU0NFQ0xJLmRsbA0KK0VYUE9SVFMNCitEZWx0YU5vdGlmeQ0KK0luaXRpYWxpemVDaGFuZ2VOb3RpZnkNCitTY2VDb25maWd1cmVDb252ZXJ0ZWRGaWxlU2VjdXJpdHkNCitTY2VHZW5lcmF0ZUdyb3VwUG9saWN5DQorU2NlTm90aWZ5UG9saWN5RGVsdGENCitTY2VPcGVuUG9saWN5DQorU2NlUHJvY2Vzc0VGU1JlY292ZXJ5R1BPDQorU2NlUHJvY2Vzc1NlY3VyaXR5UG9saWN5R1BPDQorU2NlUHJvY2Vzc1NlY3VyaXR5UG9saWN5R1BPRXgNCitTY2VTeXNQcmVwDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorU2NlQWRkVG9OYW1lTGlzdA0KK1NjZUFkZFRvTmFtZVN0YXR1c0xpc3QNCitTY2VBZGRUb09iamVjdExpc3QNCitTY2VBbmFseXplU3lzdGVtDQorU2NlQXBwZW5kU2VjdXJpdHlQcm9maWxlSW5mbw0KK1NjZUJyb3dzZURhdGFiYXNlVGFibGUNCitTY2VDbG9zZVByb2ZpbGUNCitTY2VDb21taXRUcmFuc2FjdGlvbg0KK1NjZUNvbXBhcmVOYW1lTGlzdA0KK1NjZUNvbXBhcmVTZWN1cml0eURlc2NyaXB0b3JzDQorU2NlQ29uZmlndXJlU3lzdGVtDQorU2NlQ29weUJhc2VQcm9maWxlDQorU2NlQ3JlYXRlRGlyZWN0b3J5DQorU2NlRGNQcm9tb0NyZWF0ZUdQT3NJblN5c3ZvbA0KK1NjZURjUHJvbW9DcmVhdGVHUE9zSW5TeXN2b2xFeA0KK1NjZURjUHJvbW90ZVNlY3VyaXR5DQorU2NlRGNQcm9tb3RlU2VjdXJpdHlFeA0KK1NjZUVuZm9yY2VTZWN1cml0eVBvbGljeVByb3BhZ2F0aW9uDQorU2NlRW51bWVyYXRlU2VydmljZXMNCitTY2VGcmVlTWVtb3J5DQorU2NlRnJlZVByb2ZpbGVNZW1vcnkNCitTY2VHZW5lcmF0ZVJvbGxiYWNrDQorU2NlR2V0QW5hbHlzaXNBcmVhU3VtbWFyeQ0KK1NjZUdldEFyZWFzDQorU2NlR2V0RGF0YWJhc2VTZXR0aW5nDQorU2NlR2V0RGJUaW1lDQorU2NlR2V0T2JqZWN0Q2hpbGRyZW4NCitTY2VHZXRPYmplY3RTZWN1cml0eQ0KK1NjZUdldFNjcFByb2ZpbGVEZXNjcmlwdGlvbg0KK1NjZUdldFNlY3VyaXR5UHJvZmlsZUluZm8NCitTY2VHZXRTZXJ2ZXJQcm9kdWN0VHlwZQ0KK1NjZUdldFRpbWVTdGFtcA0KK1NjZUlzU3lzdGVtRGF0YWJhc2UNCitTY2VMb29rdXBQcml2UmlnaHROYW1lDQorU2NlT3BlblByb2ZpbGUNCitTY2VSZWdpc3RlclJlZ1ZhbHVlcw0KK1NjZVJvbGxiYWNrVHJhbnNhY3Rpb24NCitTY2VTZXREYXRhYmFzZVNldHRpbmcNCitTY2VTZXR1cEJhY2t1cFNlY3VyaXR5DQorU2NlU2V0dXBDb25maWd1cmVTZXJ2aWNlcw0KK1NjZVNldHVwR2VuZXJhdGVUZW1wbGF0ZQ0KK1NjZVNldHVwTW92ZVNlY3VyaXR5RmlsZQ0KK1NjZVNldHVwUm9vdFNlY3VyaXR5DQorU2NlU2V0dXBTeXN0ZW1CeUluZk5hbWUNCitTY2VTZXR1cFVud2luZFNlY3VyaXR5RmlsZQ0KK1NjZVNldHVwVXBkYXRlU2VjdXJpdHlGaWxlDQorU2NlU2V0dXBVcGRhdGVTZWN1cml0eUtleQ0KK1NjZVNldHVwVXBkYXRlU2VjdXJpdHlTZXJ2aWNlDQorU2NlU3RhcnRUcmFuc2FjdGlvbg0KK1NjZVN2Y0NvbnZlcnRTRFRvVGV4dA0KK1NjZVN2Y0NvbnZlcnRUZXh0VG9TRA0KK1NjZVN2Y0ZyZWUNCitTY2VTdmNHZXRJbmZvcm1hdGlvblRlbXBsYXRlDQorU2NlU3ZjUXVlcnlJbmZvDQorU2NlU3ZjU2V0SW5mbw0KK1NjZVN2Y1NldEluZm9ybWF0aW9uVGVtcGxhdGUNCitTY2VTdmNVcGRhdGVJbmZvDQorU2NlVXBkYXRlT2JqZWN0SW5mbw0KK1NjZVVwZGF0ZVNlY3VyaXR5UHJvZmlsZQ0KK1NjZVdyaXRlU2VjdXJpdHlQcm9maWxlSW5mbw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dzY2hhbm5lbC5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93c2NoYW5uZWwuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE1YzY5OTYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93c2NoYW5uZWwuZGVmCkBAIC0wLDAgKzEsNDUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU0NIQU5ORUwuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNDSEFOTkVMLmRsbA0KK0VYUE9SVFMNCitBY2NlcHRTZWN1cml0eUNvbnRleHQNCitBY3F1aXJlQ3JlZGVudGlhbHNIYW5kbGVBDQorQWNxdWlyZUNyZWRlbnRpYWxzSGFuZGxlVw0KK0FwcGx5Q29udHJvbFRva2VuDQorQ2xvc2VTc2xQZXJmb3JtYW5jZURhdGENCitDb2xsZWN0U3NsUGVyZm9ybWFuY2VEYXRhDQorQ29tcGxldGVBdXRoVG9rZW4NCitEZWxldGVTZWN1cml0eUNvbnRleHQNCitFbnVtZXJhdGVTZWN1cml0eVBhY2thZ2VzQQ0KK0VudW1lcmF0ZVNlY3VyaXR5UGFja2FnZXNXDQorRnJlZUNvbnRleHRCdWZmZXINCitGcmVlQ3JlZGVudGlhbHNIYW5kbGUNCitJbXBlcnNvbmF0ZVNlY3VyaXR5Q29udGV4dA0KK0luaXRTZWN1cml0eUludGVyZmFjZUENCitJbml0U2VjdXJpdHlJbnRlcmZhY2VXDQorSW5pdGlhbGl6ZVNlY3VyaXR5Q29udGV4dEENCitJbml0aWFsaXplU2VjdXJpdHlDb250ZXh0Vw0KK01ha2VTaWduYXR1cmUNCitPcGVuU3NsUGVyZm9ybWFuY2VEYXRhDQorUXVlcnlDb250ZXh0QXR0cmlidXRlc0ENCitRdWVyeUNvbnRleHRBdHRyaWJ1dGVzVw0KK1F1ZXJ5U2VjdXJpdHlQYWNrYWdlSW5mb0ENCitRdWVyeVNlY3VyaXR5UGFja2FnZUluZm9XDQorUmV2ZXJ0U2VjdXJpdHlDb250ZXh0DQorU2VhbE1lc3NhZ2UNCitTcExzYU1vZGVJbml0aWFsaXplDQorU3BVc2VyTW9kZUluaXRpYWxpemUNCitTc2xDcmFja0NlcnRpZmljYXRlDQorU3NsRW1wdHlDYWNoZUENCitTc2xFbXB0eUNhY2hlVw0KK1NzbEZyZWVDZXJ0aWZpY2F0ZQ0KK1NzbEdlbmVyYXRlS2V5UGFpcg0KK1NzbEdlbmVyYXRlUmFuZG9tQml0cw0KK1NzbEdldE1heGltdW1LZXlTaXplDQorU3NsTG9hZENlcnRpZmljYXRlDQorVW5zZWFsTWVzc2FnZQ0KK1ZlcmlmeVNpZ25hdHVyZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dzY2hlZHN2Yy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93c2NoZWRzdmMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMwZWRjOWIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93c2NoZWRzdmMuZGVmCkBAIC0wLDAgKzEsMTUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgc2NoZWRzdmMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHNjaGVkc3ZjLmRsbA0KK0VYUE9SVFMNCitTUFVuaW5zdGFsbA0KK1NQVW5pbnN0YWxsQ2FsbGJhY2sNCitTY2hlZFNlcnZpY2VNYWluDQorU3lzUHJlcEJhY2t1cA0KK1N5c1ByZXBSZXN0b3JlDQorQ2xvc2VQcm9jDQorU3lzUHJlcENhbGxiYWNrDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3NjbGdudGZ5LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dzY2xnbnRmeS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjRlMWFjMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dzY2xnbnRmeS5kZWYKQEAgLTAsMCArMSwyMCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTQ0xHTlRGWS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU0NMR05URlkuZGxsDQorRVhQT1JUUw0KK1dMRXZlbnRMb2NrDQorV0xFdmVudExvZ29mZg0KK1dMRXZlbnRMb2dvbg0KK1dMRXZlbnRTaHV0ZG93bg0KK1dMRXZlbnRTdGFydFNjcmVlblNhdmVyDQorV0xFdmVudFN0YXJ0U2hlbGwNCitXTEV2ZW50U3RhcnR1cA0KK1dMRXZlbnRTdG9wU2NyZWVuU2F2ZXINCitXTEV2ZW50VW5sb2NrDQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorR2VuZXJhdGVEZWZhdWx0RUZTUmVjb3ZlcnlQb2xpY3kNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93c2NyZWRpci5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93c2NyZWRpci5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWRiMWVhZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dzY3JlZGlyLmRlZgpAQCAtMCwwICsxLDUyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHNjcmVkaXIuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHNjcmVkaXIuZGxsDQorRVhQT1JUUw0KK1NDYXJkUmVsZWFzZUJhZENvbnRleHQNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitTQ2FyZEFjY2Vzc1N0YXJ0ZWRFdmVudA0KK1NDYXJkQWRkUmVhZGVyVG9Hcm91cEENCitTQ2FyZEFkZFJlYWRlclRvR3JvdXBXDQorU0NhcmRCZWdpblRyYW5zYWN0aW9uDQorU0NhcmRDYW5jZWwNCitTQ2FyZENvbm5lY3RBDQorU0NhcmRDb25uZWN0Vw0KK1NDYXJkQ29udHJvbA0KK1NDYXJkRGlzY29ubmVjdA0KK1NDYXJkRW5kVHJhbnNhY3Rpb24NCitTQ2FyZEVzdGFibGlzaENvbnRleHQNCitTQ2FyZEZvcmdldFJlYWRlckENCitTQ2FyZEZvcmdldFJlYWRlckdyb3VwQQ0KK1NDYXJkRm9yZ2V0UmVhZGVyR3JvdXBXDQorU0NhcmRGb3JnZXRSZWFkZXJXDQorU0NhcmRHZXRBdHRyaWINCitTQ2FyZEdldFN0YXR1c0NoYW5nZUENCitTQ2FyZEdldFN0YXR1c0NoYW5nZVcNCitTQ2FyZEludHJvZHVjZVJlYWRlckENCitTQ2FyZEludHJvZHVjZVJlYWRlckdyb3VwQQ0KK1NDYXJkSW50cm9kdWNlUmVhZGVyR3JvdXBXDQorU0NhcmRJbnRyb2R1Y2VSZWFkZXJXDQorU0NhcmRJc1ZhbGlkQ29udGV4dA0KK1NDYXJkTGlzdFJlYWRlckdyb3Vwc0ENCitTQ2FyZExpc3RSZWFkZXJHcm91cHNXDQorU0NhcmRMaXN0UmVhZGVyc0ENCitTQ2FyZExpc3RSZWFkZXJzVw0KK1NDYXJkTG9jYXRlQ2FyZHNBDQorU0NhcmRMb2NhdGVDYXJkc0J5QVRSQQ0KK1NDYXJkTG9jYXRlQ2FyZHNCeUFUUlcNCitTQ2FyZExvY2F0ZUNhcmRzVw0KK1NDYXJkUmVjb25uZWN0DQorU0NhcmRSZWxlYXNlQ29udGV4dA0KK1NDYXJkUmVsZWFzZVN0YXJ0ZWRFdmVudA0KK1NDYXJkUmVtb3ZlUmVhZGVyRnJvbUdyb3VwQQ0KK1NDYXJkUmVtb3ZlUmVhZGVyRnJvbUdyb3VwVw0KK1NDYXJkU2V0QXR0cmliDQorU0NhcmRTdGF0ZQ0KK1NDYXJkU3RhdHVzQQ0KK1NDYXJkU3RhdHVzVw0KK1NDYXJkVHJhbnNtaXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93c2NyaXB0LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dzY3JpcHQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUzOWY1MDkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93c2NyaXB0LmRlZgpAQCAtMCwwICsxLDE1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNDUklQVC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU0NSSVBULmRsbA0KK0VYUE9SVFMNCitEZXN0aW5hdGlvbk1vZHVsZQ0KK0RsbE1haW4NCitNb2R1bGVJbml0aWFsaXplDQorTW9kdWxlVGVybWluYXRlDQorU291cmNlTW9kdWxlDQorVHlwZU1vZHVsZQ0KK1ZpcnR1YWxDb21wdXRlck1vZHVsZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dzY3JpcHRhLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dzY3JpcHRhLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZmNkZjM3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3NjcmlwdGEuZGVmCkBAIC0wLDAgKzEsMTUgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU0NSSVBUQS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU0NSSVBUQS5kbGwNCitFWFBPUlRTDQorRGVzdGluYXRpb25Nb2R1bGUNCitEbGxNYWluDQorTW9kdWxlSW5pdGlhbGl6ZQ0KK01vZHVsZVRlcm1pbmF0ZQ0KK1NvdXJjZU1vZHVsZQ0KK1R5cGVNb2R1bGUNCitWaXJ0dWFsQ29tcHV0ZXJNb2R1bGUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93c2NyaXB0by5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93c2NyaXB0by5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2MxN2EwNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dzY3JpcHRvLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHNjcmlwdG8uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHNjcmlwdG8uZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3NjcmlwdHB3LmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dzY3JpcHRwdy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzI5MDQ0OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dzY3JpcHRwdy5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTY3JpcHRQVy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU2NyaXB0UFcuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3Njcm9iai5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93c2Nyb2JqLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yZWNjYzk2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3Njcm9iai5kZWYKQEAgLTAsMCArMSwxOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTQ1JPQkouZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNDUk9CSi5kbGwNCitFWFBPUlRTDQorR2VuZXJhdGVUeXBlTGliDQorR2VuZXJhdGVUeXBlTGliVw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsSW5zdGFsbA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsUmVnaXN0ZXJTZXJ2ZXJFeA0KK0RsbFJlZ2lzdGVyU2VydmVyRXhBDQorRGxsUmVnaXN0ZXJTZXJ2ZXJFeFcNCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlckV4DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3NjcnB0dXRsLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dzY3JwdHV0bC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDY5ZjY5OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dzY3JwdHV0bC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTY3JwdFV0bC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU2NycHRVdGwuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3NjcnJ1bi5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93c2NycnVuLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZmVlNDk0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3NjcnJ1bi5kZWYKQEAgLTAsMCArMSwxNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTY3JSdW4uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNjclJ1bi5kbGwNCitFWFBPUlRTDQorRExMR2V0RG9jdW1lbnRhdGlvbg0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQorRG9PcGVuUGlwZVN0cmVhbQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dzY3N2Yy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93c2NzdmMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI2ZTU5ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93c2NzdmMuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgV1NDU1ZDLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBXU0NTVkMuZGxsDQorRVhQT1JUUw0KK1NlcnZpY2VNYWluDQorU3ZjaG9zdFB1c2hTZXJ2aWNlR2xvYmFscw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dzZHBibGIuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3NkcGJsYi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmIzYjE3YQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dzZHBibGIuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgc2RwYmxiLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBzZHBibGIuZGxsDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3NlY2VkaXQuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3NlY2VkaXQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEwMzRjYzQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93c2VjZWRpdC5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBXU0VDRURJVC5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgV1NFQ0VESVQuRExMDQorRVhQT1JUUw0KK0RsbENhblVubG9hZE5vdw0KK0RsbEdldENsYXNzT2JqZWN0DQorRGxsUmVnaXN0ZXJTZXJ2ZXINCitEbGxVbnJlZ2lzdGVyU2VydmVyDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3NlY2xvZ29uLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dzZWNsb2dvbi5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGQ1MWZjNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dzZWNsb2dvbi5kZWYKQEAgLTAsMCArMSwxMiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBzZWNsb2dvbi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgc2VjbG9nb24uZGxsDQorRVhQT1JUUw0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK1N2Y0VudHJ5X1NlY2xvZ29uDQorU3ZjaG9zdFB1c2hTZXJ2aWNlR2xvYmFscw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dzZWN1cjMyLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dzZWN1cjMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41Y2NhOTg4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3NlY3VyMzIuZGVmCkBAIC0wLDAgKzEsODggQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU2VjdXIzMi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU2VjdXIzMi5kbGwNCitFWFBPUlRTDQorU2VjRGVsZXRlVXNlck1vZGVDb250ZXh0DQorU2VjSW5pdFVzZXJNb2RlQ29udGV4dA0KK0FjY2VwdFNlY3VyaXR5Q29udGV4dA0KK0FjcXVpcmVDcmVkZW50aWFsc0hhbmRsZUENCitBY3F1aXJlQ3JlZGVudGlhbHNIYW5kbGVXDQorQWRkQ3JlZGVudGlhbHNBDQorQWRkQ3JlZGVudGlhbHNXDQorQWRkU2VjdXJpdHlQYWNrYWdlQQ0KK0FkZFNlY3VyaXR5UGFja2FnZVcNCitBcHBseUNvbnRyb2xUb2tlbg0KK0NvbXBsZXRlQXV0aFRva2VuDQorQ3JlZE1hcnNoYWxUYXJnZXRJbmZvDQorQ3JlZFVubWFyc2hhbFRhcmdldEluZm8NCitEZWNyeXB0TWVzc2FnZQ0KK0RlbGV0ZVNlY3VyaXR5Q29udGV4dA0KK0RlbGV0ZVNlY3VyaXR5UGFja2FnZUENCitEZWxldGVTZWN1cml0eVBhY2thZ2VXDQorRW5jcnlwdE1lc3NhZ2UNCitFbnVtZXJhdGVTZWN1cml0eVBhY2thZ2VzQQ0KK0VudW1lcmF0ZVNlY3VyaXR5UGFja2FnZXNXDQorRXhwb3J0U2VjdXJpdHlDb250ZXh0DQorRnJlZUNvbnRleHRCdWZmZXINCitGcmVlQ3JlZGVudGlhbHNIYW5kbGUNCitHZXRDb21wdXRlck9iamVjdE5hbWVBDQorR2V0Q29tcHV0ZXJPYmplY3ROYW1lVw0KK0dldFNlY3VyaXR5VXNlckluZm8NCitHZXRVc2VyTmFtZUV4QQ0KK0dldFVzZXJOYW1lRXhXDQorSW1wZXJzb25hdGVTZWN1cml0eUNvbnRleHQNCitJbXBvcnRTZWN1cml0eUNvbnRleHRBDQorSW1wb3J0U2VjdXJpdHlDb250ZXh0Vw0KK0luaXRTZWN1cml0eUludGVyZmFjZUENCitJbml0U2VjdXJpdHlJbnRlcmZhY2VXDQorSW5pdGlhbGl6ZVNlY3VyaXR5Q29udGV4dEENCitJbml0aWFsaXplU2VjdXJpdHlDb250ZXh0Vw0KK0xzYUNhbGxBdXRoZW50aWNhdGlvblBhY2thZ2UNCitMc2FDb25uZWN0VW50cnVzdGVkDQorTHNhRGVyZWdpc3RlckxvZ29uUHJvY2Vzcw0KK0xzYUVudW1lcmF0ZUxvZ29uU2Vzc2lvbnMNCitMc2FGcmVlUmV0dXJuQnVmZmVyDQorTHNhR2V0TG9nb25TZXNzaW9uRGF0YQ0KK0xzYUxvZ29uVXNlcg0KK0xzYUxvb2t1cEF1dGhlbnRpY2F0aW9uUGFja2FnZQ0KK0xzYVJlZ2lzdGVyTG9nb25Qcm9jZXNzDQorTHNhUmVnaXN0ZXJQb2xpY3lDaGFuZ2VOb3RpZmljYXRpb24NCitMc2FVbnJlZ2lzdGVyUG9saWN5Q2hhbmdlTm90aWZpY2F0aW9uDQorTWFrZVNpZ25hdHVyZQ0KK1F1ZXJ5Q29udGV4dEF0dHJpYnV0ZXNBDQorUXVlcnlDb250ZXh0QXR0cmlidXRlc1cNCitRdWVyeUNyZWRlbnRpYWxzQXR0cmlidXRlc0ENCitRdWVyeUNyZWRlbnRpYWxzQXR0cmlidXRlc1cNCitRdWVyeVNlY3VyaXR5Q29udGV4dFRva2VuDQorUXVlcnlTZWN1cml0eVBhY2thZ2VJbmZvQQ0KK1F1ZXJ5U2VjdXJpdHlQYWNrYWdlSW5mb1cNCitSZXZlcnRTZWN1cml0eUNvbnRleHQNCitTYXNsQWNjZXB0U2VjdXJpdHlDb250ZXh0DQorU2FzbEVudW1lcmF0ZVByb2ZpbGVzQQ0KK1Nhc2xFbnVtZXJhdGVQcm9maWxlc1cNCitTYXNsR2V0Q29udGV4dE9wdGlvbg0KK1Nhc2xHZXRQcm9maWxlUGFja2FnZUENCitTYXNsR2V0UHJvZmlsZVBhY2thZ2VXDQorU2FzbElkZW50aWZ5UGFja2FnZUENCitTYXNsSWRlbnRpZnlQYWNrYWdlVw0KK1Nhc2xJbml0aWFsaXplU2VjdXJpdHlDb250ZXh0QQ0KK1Nhc2xJbml0aWFsaXplU2VjdXJpdHlDb250ZXh0Vw0KK1Nhc2xTZXRDb250ZXh0T3B0aW9uDQorU2VhbE1lc3NhZ2UNCitTZWNDYWNoZVNzcGlQYWNrYWdlcw0KK1NlY3BGcmVlTWVtb3J5DQorU2VjcFNldElQQWRkcmVzcw0KK1NlY3BUcmFuc2xhdGVOYW1lDQorU2VjcFRyYW5zbGF0ZU5hbWVFeA0KK1NldENvbnRleHRBdHRyaWJ1dGVzQQ0KK1NldENvbnRleHRBdHRyaWJ1dGVzVw0KK1NldENyZWRlbnRpYWxzQXR0cmlidXRlc0ENCitTZXRDcmVkZW50aWFsc0F0dHJpYnV0ZXNXDQorVHJhbnNsYXRlTmFtZUENCitUcmFuc2xhdGVOYW1lVw0KK1Vuc2VhbE1lc3NhZ2UNCitWZXJpZnlTaWduYXR1cmUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93c2VjdXJpdHkuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3NlY3VyaXR5LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMDYzODJmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3NlY3VyaXR5LmRlZgpAQCAtMCwwICsxLDQ0IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNlY3VyaXR5LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTZWN1cml0eS5kbGwNCitFWFBPUlRTDQorQWNjZXB0U2VjdXJpdHlDb250ZXh0DQorQWNxdWlyZUNyZWRlbnRpYWxzSGFuZGxlQQ0KK0FjcXVpcmVDcmVkZW50aWFsc0hhbmRsZVcNCitBZGRTZWN1cml0eVBhY2thZ2VBDQorQWRkU2VjdXJpdHlQYWNrYWdlVw0KK0FwcGx5Q29udHJvbFRva2VuDQorQ29tcGxldGVBdXRoVG9rZW4NCitEZWNyeXB0TWVzc2FnZQ0KK0RlbGV0ZVNlY3VyaXR5Q29udGV4dA0KK0RlbGV0ZVNlY3VyaXR5UGFja2FnZUENCitEZWxldGVTZWN1cml0eVBhY2thZ2VXDQorRW5jcnlwdE1lc3NhZ2UNCitFbnVtZXJhdGVTZWN1cml0eVBhY2thZ2VzQQ0KK0VudW1lcmF0ZVNlY3VyaXR5UGFja2FnZXNXDQorRXhwb3J0U2VjdXJpdHlDb250ZXh0DQorRnJlZUNvbnRleHRCdWZmZXINCitGcmVlQ3JlZGVudGlhbHNIYW5kbGUNCitJbXBlcnNvbmF0ZVNlY3VyaXR5Q29udGV4dA0KK0ltcG9ydFNlY3VyaXR5Q29udGV4dEENCitJbXBvcnRTZWN1cml0eUNvbnRleHRXDQorSW5pdFNlY3VyaXR5SW50ZXJmYWNlQQ0KK0luaXRTZWN1cml0eUludGVyZmFjZVcNCitJbml0aWFsaXplU2VjdXJpdHlDb250ZXh0QQ0KK0luaXRpYWxpemVTZWN1cml0eUNvbnRleHRXDQorTWFrZVNpZ25hdHVyZQ0KK1F1ZXJ5Q29udGV4dEF0dHJpYnV0ZXNBDQorUXVlcnlDb250ZXh0QXR0cmlidXRlc1cNCitRdWVyeUNyZWRlbnRpYWxzQXR0cmlidXRlc0ENCitRdWVyeUNyZWRlbnRpYWxzQXR0cmlidXRlc1cNCitRdWVyeVNlY3VyaXR5Q29udGV4dFRva2VuDQorUXVlcnlTZWN1cml0eVBhY2thZ2VJbmZvQQ0KK1F1ZXJ5U2VjdXJpdHlQYWNrYWdlSW5mb1cNCitSZXZlcnRTZWN1cml0eUNvbnRleHQNCitTZWFsTWVzc2FnZQ0KK1Vuc2VhbE1lc3NhZ2UNCitWZXJpZnlTaWduYXR1cmUNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93c2VuZGNtc2cuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3NlbmRjbXNnLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNDUxZDZkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3NlbmRjbXNnLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNlbmRDTXNnLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTZW5kQ01zZy5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93c2VuZG1haWwuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3NlbmRtYWlsLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MmI1ODIwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3NlbmRtYWlsLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNlbmRNYWlsLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTZW5kTWFpbC5kbGwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93c2Vucy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93c2Vucy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODIwYzJiMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dzZW5zLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNlbnMuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNlbnMuZGxsDQorRVhQT1JUUw0KK1NlcnZpY2VNYWluDQorU2Vuc05vdGlmeU5ldGNvbkV2ZW50DQorU2Vuc05vdGlmeVJhc0V2ZW50DQorU2Vuc05vdGlmeVdpbmxvZ29uRXZlbnQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93c2Vuc2FwaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93c2Vuc2FwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzE2YzQ4ZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dzZW5zYXBpLmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNlbnNBcGkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNlbnNBcGkuZGxsDQorRVhQT1JUUw0KK0lzRGVzdGluYXRpb25SZWFjaGFibGVBDQorSXNEZXN0aW5hdGlvblJlYWNoYWJsZVcNCitJc05ldHdvcmtBbGl2ZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dzZW5zY2ZnLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dzZW5zY2ZnLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YzUyNzRmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3NlbnNjZmcuZGVmCkBAIC0wLDAgKzEsMTAgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU2Vuc0NmZy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU2Vuc0NmZy5kbGwNCitFWFBPUlRTDQorU2Vuc1JlZ2lzdGVyDQorU2Vuc1VucmVnaXN0ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93c2VvLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dzZW8uZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY5MWJkNzIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93c2VvLmRlZgpAQCAtMCwwICsxLDI3IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNFTy5ETEwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU0VPLkRMTA0KK0VYUE9SVFMNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0RsbFJlZ2lzdGVyU2VydmVyDQorRGxsVW5yZWdpc3RlclNlcnZlcg0KK01DSVNHZXRCaW5kaW5nSW5NZXRhYmFzZUENCitNQ0lTR2V0QmluZGluZ0luTWV0YWJhc2VXDQorTUNJU0luaXRTRU9BDQorTUNJU0luaXRTRU9XDQorU0VPQ2FuY2VsTGlzdGVuRm9yRXZlbnQNCitTRU9Db3B5RGljdGlvbmFyeQ0KK1NFT0NyZWF0ZURpY3Rpb25hcnlGcm9tSVN0cmVhbQ0KK1NFT0NyZWF0ZURpY3Rpb25hcnlGcm9tTXVsdGlTekENCitTRU9DcmVhdGVEaWN0aW9uYXJ5RnJvbU11bHRpU3pXDQorU0VPQ3JlYXRlSVN0cmVhbUZyb21GaWxlQQ0KK1NFT0NyZWF0ZUlTdHJlYW1Gcm9tRmlsZVcNCitTRU9DcmVhdGVNdWx0aVN6RnJvbURpY3Rpb25hcnlBDQorU0VPQ3JlYXRlTXVsdGlTekZyb21EaWN0aW9uYXJ5Vw0KK1NFT0xpc3RlbkZvckV2ZW50DQorU0VPV3JpdGVEaWN0aW9uYXJ5VG9JU3RyZWFtDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3NlcmlhbHVpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dzZXJpYWx1aS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTVkMjA4YQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dzZXJpYWx1aS5kZWYKQEAgLTAsMCArMSwxNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTRVJJQUxVSS5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgU0VSSUFMVUkuZGxsDQorRVhQT1JUUw0KK2RydkNvbW1Db25maWdEaWFsb2dXDQorZHJ2Q29tbUNvbmZpZ0RpYWxvZ0ENCitkcnZTZXREZWZhdWx0Q29tbUNvbmZpZ1cNCitkcnZTZXREZWZhdWx0Q29tbUNvbmZpZ0ENCitkcnZHZXREZWZhdWx0Q29tbUNvbmZpZ1cNCitkcnZHZXREZWZhdWx0Q29tbUNvbmZpZ0ENCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93c2VydmRlcHMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3NlcnZkZXBzLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMzUwM2I3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3NlcnZkZXBzLmRlZgpAQCAtMCwwICsxLDEyIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNlcnZEZXBzLkRMTA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTZXJ2RGVwcy5ETEwNCitFWFBPUlRTDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93c2Vyd3ZkcnYuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3Nlcnd2ZHJ2LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lM2QxZWZlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3Nlcnd2ZHJ2LmRlZgpAQCAtMCwwICsxLDExIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFNFUldWRFJWLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBTRVJXVkRSVi5kbGwNCitFWFBPUlRTDQorRHJpdmVyUHJvYw0KK3dpZE1lc3NhZ2UNCit3b2RNZXNzYWdlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3NldHVwYXBpLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dzZXR1cGFwaS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDg2YTc0ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dzZXR1cGFwaS5kZWYKQEAgLTAsMCArMSw2MTMgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgU0VUVVBBUEkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNFVFVQQVBJLmRsbA0KK0VYUE9SVFMNCitDTVBfR2V0QmxvY2tlZERyaXZlckluZm8NCitDTVBfR2V0U2VydmVyU2lkZURldmljZUluc3RhbGxGbGFncw0KK0NNUF9Jbml0X0RldGVjdGlvbg0KK0NNUF9SZWdpc3Rlck5vdGlmaWNhdGlvbg0KK0NNUF9SZXBvcnRfTG9nT24NCitDTVBfVW5yZWdpc3Rlck5vdGlmaWNhdGlvbg0KK0NNUF9XYWl0Tm9QZW5kaW5nSW5zdGFsbEV2ZW50cw0KK0NNUF9XYWl0U2VydmljZXNBdmFpbGFibGUNCitDTV9BZGRfRW1wdHlfTG9nX0NvbmYNCitDTV9BZGRfRW1wdHlfTG9nX0NvbmZfRXgNCitDTV9BZGRfSURBDQorQ01fQWRkX0lEVw0KK0NNX0FkZF9JRF9FeEENCitDTV9BZGRfSURfRXhXDQorQ01fQWRkX1JhbmdlDQorQ01fQWRkX1Jlc19EZXMNCitDTV9BZGRfUmVzX0Rlc19FeA0KK0NNX0Nvbm5lY3RfTWFjaGluZUENCitDTV9Db25uZWN0X01hY2hpbmVXDQorQ01fQ3JlYXRlX0Rldk5vZGVBDQorQ01fQ3JlYXRlX0Rldk5vZGVXDQorQ01fQ3JlYXRlX0Rldk5vZGVfRXhBDQorQ01fQ3JlYXRlX0Rldk5vZGVfRXhXDQorQ01fQ3JlYXRlX1JhbmdlX0xpc3QNCitDTV9EZWxldGVfQ2xhc3NfS2V5DQorQ01fRGVsZXRlX0NsYXNzX0tleV9FeA0KK0NNX0RlbGV0ZV9EZXZOb2RlX0tleQ0KK0NNX0RlbGV0ZV9EZXZOb2RlX0tleV9FeA0KK0NNX0RlbGV0ZV9SYW5nZQ0KK0NNX0RldGVjdF9SZXNvdXJjZV9Db25mbGljdA0KK0NNX0RldGVjdF9SZXNvdXJjZV9Db25mbGljdF9FeA0KK0NNX0Rpc2FibGVfRGV2Tm9kZQ0KK0NNX0Rpc2FibGVfRGV2Tm9kZV9FeA0KK0NNX0Rpc2Nvbm5lY3RfTWFjaGluZQ0KK0NNX0R1cF9SYW5nZV9MaXN0DQorQ01fRW5hYmxlX0Rldk5vZGUNCitDTV9FbmFibGVfRGV2Tm9kZV9FeA0KK0NNX0VudW1lcmF0ZV9DbGFzc2VzDQorQ01fRW51bWVyYXRlX0NsYXNzZXNfRXgNCitDTV9FbnVtZXJhdGVfRW51bWVyYXRvcnNBDQorQ01fRW51bWVyYXRlX0VudW1lcmF0b3JzVw0KK0NNX0VudW1lcmF0ZV9FbnVtZXJhdG9yc19FeEENCitDTV9FbnVtZXJhdGVfRW51bWVyYXRvcnNfRXhXDQorQ01fRmluZF9SYW5nZQ0KK0NNX0ZpcnN0X1JhbmdlDQorQ01fRnJlZV9Mb2dfQ29uZg0KK0NNX0ZyZWVfTG9nX0NvbmZfRXgNCitDTV9GcmVlX0xvZ19Db25mX0hhbmRsZQ0KK0NNX0ZyZWVfUmFuZ2VfTGlzdA0KK0NNX0ZyZWVfUmVzX0Rlcw0KK0NNX0ZyZWVfUmVzX0Rlc19FeA0KK0NNX0ZyZWVfUmVzX0Rlc19IYW5kbGUNCitDTV9GcmVlX1Jlc291cmNlX0NvbmZsaWN0X0hhbmRsZQ0KK0NNX0dldF9DaGlsZA0KK0NNX0dldF9DaGlsZF9FeA0KK0NNX0dldF9DbGFzc19LZXlfTmFtZUENCitDTV9HZXRfQ2xhc3NfS2V5X05hbWVXDQorQ01fR2V0X0NsYXNzX0tleV9OYW1lX0V4QQ0KK0NNX0dldF9DbGFzc19LZXlfTmFtZV9FeFcNCitDTV9HZXRfQ2xhc3NfTmFtZUENCitDTV9HZXRfQ2xhc3NfTmFtZVcNCitDTV9HZXRfQ2xhc3NfTmFtZV9FeEENCitDTV9HZXRfQ2xhc3NfTmFtZV9FeFcNCitDTV9HZXRfQ2xhc3NfUmVnaXN0cnlfUHJvcGVydHlBDQorQ01fR2V0X0NsYXNzX1JlZ2lzdHJ5X1Byb3BlcnR5Vw0KK0NNX0dldF9EZXB0aA0KK0NNX0dldF9EZXB0aF9FeA0KK0NNX0dldF9EZXZOb2RlX0N1c3RvbV9Qcm9wZXJ0eUENCitDTV9HZXRfRGV2Tm9kZV9DdXN0b21fUHJvcGVydHlXDQorQ01fR2V0X0Rldk5vZGVfQ3VzdG9tX1Byb3BlcnR5X0V4QQ0KK0NNX0dldF9EZXZOb2RlX0N1c3RvbV9Qcm9wZXJ0eV9FeFcNCitDTV9HZXRfRGV2Tm9kZV9SZWdpc3RyeV9Qcm9wZXJ0eUENCitDTV9HZXRfRGV2Tm9kZV9SZWdpc3RyeV9Qcm9wZXJ0eVcNCitDTV9HZXRfRGV2Tm9kZV9SZWdpc3RyeV9Qcm9wZXJ0eV9FeEENCitDTV9HZXRfRGV2Tm9kZV9SZWdpc3RyeV9Qcm9wZXJ0eV9FeFcNCitDTV9HZXRfRGV2Tm9kZV9TdGF0dXMNCitDTV9HZXRfRGV2Tm9kZV9TdGF0dXNfRXgNCitDTV9HZXRfRGV2aWNlX0lEQQ0KK0NNX0dldF9EZXZpY2VfSURXDQorQ01fR2V0X0RldmljZV9JRF9FeEENCitDTV9HZXRfRGV2aWNlX0lEX0V4Vw0KK0NNX0dldF9EZXZpY2VfSURfTGlzdEENCitDTV9HZXRfRGV2aWNlX0lEX0xpc3RXDQorQ01fR2V0X0RldmljZV9JRF9MaXN0X0V4QQ0KK0NNX0dldF9EZXZpY2VfSURfTGlzdF9FeFcNCitDTV9HZXRfRGV2aWNlX0lEX0xpc3RfU2l6ZUENCitDTV9HZXRfRGV2aWNlX0lEX0xpc3RfU2l6ZVcNCitDTV9HZXRfRGV2aWNlX0lEX0xpc3RfU2l6ZV9FeEENCitDTV9HZXRfRGV2aWNlX0lEX0xpc3RfU2l6ZV9FeFcNCitDTV9HZXRfRGV2aWNlX0lEX1NpemUNCitDTV9HZXRfRGV2aWNlX0lEX1NpemVfRXgNCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9BbGlhc0ENCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9BbGlhc1cNCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9BbGlhc19FeEENCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9BbGlhc19FeFcNCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9MaXN0QQ0KK0NNX0dldF9EZXZpY2VfSW50ZXJmYWNlX0xpc3RXDQorQ01fR2V0X0RldmljZV9JbnRlcmZhY2VfTGlzdF9FeEENCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9MaXN0X0V4Vw0KK0NNX0dldF9EZXZpY2VfSW50ZXJmYWNlX0xpc3RfU2l6ZUENCitDTV9HZXRfRGV2aWNlX0ludGVyZmFjZV9MaXN0X1NpemVXDQorQ01fR2V0X0RldmljZV9JbnRlcmZhY2VfTGlzdF9TaXplX0V4QQ0KK0NNX0dldF9EZXZpY2VfSW50ZXJmYWNlX0xpc3RfU2l6ZV9FeFcNCitDTV9HZXRfRmlyc3RfTG9nX0NvbmYNCitDTV9HZXRfRmlyc3RfTG9nX0NvbmZfRXgNCitDTV9HZXRfR2xvYmFsX1N0YXRlDQorQ01fR2V0X0dsb2JhbF9TdGF0ZV9FeA0KK0NNX0dldF9IV19Qcm9mX0ZsYWdzQQ0KK0NNX0dldF9IV19Qcm9mX0ZsYWdzVw0KK0NNX0dldF9IV19Qcm9mX0ZsYWdzX0V4QQ0KK0NNX0dldF9IV19Qcm9mX0ZsYWdzX0V4Vw0KK0NNX0dldF9IYXJkd2FyZV9Qcm9maWxlX0luZm9BDQorQ01fR2V0X0hhcmR3YXJlX1Byb2ZpbGVfSW5mb1cNCitDTV9HZXRfSGFyZHdhcmVfUHJvZmlsZV9JbmZvX0V4QQ0KK0NNX0dldF9IYXJkd2FyZV9Qcm9maWxlX0luZm9fRXhXDQorQ01fR2V0X0xvZ19Db25mX1ByaW9yaXR5DQorQ01fR2V0X0xvZ19Db25mX1ByaW9yaXR5X0V4DQorQ01fR2V0X05leHRfTG9nX0NvbmYNCitDTV9HZXRfTmV4dF9Mb2dfQ29uZl9FeA0KK0NNX0dldF9OZXh0X1Jlc19EZXMNCitDTV9HZXRfTmV4dF9SZXNfRGVzX0V4DQorQ01fR2V0X1BhcmVudA0KK0NNX0dldF9QYXJlbnRfRXgNCitDTV9HZXRfUmVzX0Rlc19EYXRhDQorQ01fR2V0X1Jlc19EZXNfRGF0YV9FeA0KK0NNX0dldF9SZXNfRGVzX0RhdGFfU2l6ZQ0KK0NNX0dldF9SZXNfRGVzX0RhdGFfU2l6ZV9FeA0KK0NNX0dldF9SZXNvdXJjZV9Db25mbGljdF9Db3VudA0KK0NNX0dldF9SZXNvdXJjZV9Db25mbGljdF9EZXRhaWxzQQ0KK0NNX0dldF9SZXNvdXJjZV9Db25mbGljdF9EZXRhaWxzVw0KK0NNX0dldF9TaWJsaW5nDQorQ01fR2V0X1NpYmxpbmdfRXgNCitDTV9HZXRfVmVyc2lvbg0KK0NNX0dldF9WZXJzaW9uX0V4DQorQ01fSW50ZXJzZWN0X1JhbmdlX0xpc3QNCitDTV9JbnZlcnRfUmFuZ2VfTGlzdA0KK0NNX0lzX0RvY2tfU3RhdGlvbl9QcmVzZW50DQorQ01fSXNfRG9ja19TdGF0aW9uX1ByZXNlbnRfRXgNCitDTV9Jc19WZXJzaW9uX0F2YWlsYWJsZQ0KK0NNX0lzX1ZlcnNpb25fQXZhaWxhYmxlX0V4DQorQ01fTG9jYXRlX0Rldk5vZGVBDQorQ01fTG9jYXRlX0Rldk5vZGVXDQorQ01fTG9jYXRlX0Rldk5vZGVfRXhBDQorQ01fTG9jYXRlX0Rldk5vZGVfRXhXDQorQ01fTWVyZ2VfUmFuZ2VfTGlzdA0KK0NNX01vZGlmeV9SZXNfRGVzDQorQ01fTW9kaWZ5X1Jlc19EZXNfRXgNCitDTV9Nb3ZlX0Rldk5vZGUNCitDTV9Nb3ZlX0Rldk5vZGVfRXgNCitDTV9OZXh0X1JhbmdlDQorQ01fT3Blbl9DbGFzc19LZXlBDQorQ01fT3Blbl9DbGFzc19LZXlXDQorQ01fT3Blbl9DbGFzc19LZXlfRXhBDQorQ01fT3Blbl9DbGFzc19LZXlfRXhXDQorQ01fT3Blbl9EZXZOb2RlX0tleQ0KK0NNX09wZW5fRGV2Tm9kZV9LZXlfRXgNCitDTV9RdWVyeV9BbmRfUmVtb3ZlX1N1YlRyZWVBDQorQ01fUXVlcnlfQW5kX1JlbW92ZV9TdWJUcmVlVw0KK0NNX1F1ZXJ5X0FuZF9SZW1vdmVfU3ViVHJlZV9FeEENCitDTV9RdWVyeV9BbmRfUmVtb3ZlX1N1YlRyZWVfRXhXDQorQ01fUXVlcnlfQXJiaXRyYXRvcl9GcmVlX0RhdGENCitDTV9RdWVyeV9BcmJpdHJhdG9yX0ZyZWVfRGF0YV9FeA0KK0NNX1F1ZXJ5X0FyYml0cmF0b3JfRnJlZV9TaXplDQorQ01fUXVlcnlfQXJiaXRyYXRvcl9GcmVlX1NpemVfRXgNCitDTV9RdWVyeV9SZW1vdmVfU3ViVHJlZQ0KK0NNX1F1ZXJ5X1JlbW92ZV9TdWJUcmVlX0V4DQorQ01fUXVlcnlfUmVzb3VyY2VfQ29uZmxpY3RfTGlzdA0KK0NNX1JlZW51bWVyYXRlX0Rldk5vZGUNCitDTV9SZWVudW1lcmF0ZV9EZXZOb2RlX0V4DQorQ01fUmVnaXN0ZXJfRGV2aWNlX0RyaXZlcg0KK0NNX1JlZ2lzdGVyX0RldmljZV9Ecml2ZXJfRXgNCitDTV9SZWdpc3Rlcl9EZXZpY2VfSW50ZXJmYWNlQQ0KK0NNX1JlZ2lzdGVyX0RldmljZV9JbnRlcmZhY2VXDQorQ01fUmVnaXN0ZXJfRGV2aWNlX0ludGVyZmFjZV9FeEENCitDTV9SZWdpc3Rlcl9EZXZpY2VfSW50ZXJmYWNlX0V4Vw0KK0NNX1JlbW92ZV9TdWJUcmVlDQorQ01fUmVtb3ZlX1N1YlRyZWVfRXgNCitDTV9SZXF1ZXN0X0RldmljZV9FamVjdEENCitDTV9SZXF1ZXN0X0RldmljZV9FamVjdFcNCitDTV9SZXF1ZXN0X0RldmljZV9FamVjdF9FeEENCitDTV9SZXF1ZXN0X0RldmljZV9FamVjdF9FeFcNCitDTV9SZXF1ZXN0X0VqZWN0X1BDDQorQ01fUmVxdWVzdF9FamVjdF9QQ19FeA0KK0NNX1J1bl9EZXRlY3Rpb24NCitDTV9SdW5fRGV0ZWN0aW9uX0V4DQorQ01fU2V0X0NsYXNzX1JlZ2lzdHJ5X1Byb3BlcnR5QQ0KK0NNX1NldF9DbGFzc19SZWdpc3RyeV9Qcm9wZXJ0eVcNCitDTV9TZXRfRGV2Tm9kZV9Qcm9ibGVtDQorQ01fU2V0X0Rldk5vZGVfUHJvYmxlbV9FeA0KK0NNX1NldF9EZXZOb2RlX1JlZ2lzdHJ5X1Byb3BlcnR5QQ0KK0NNX1NldF9EZXZOb2RlX1JlZ2lzdHJ5X1Byb3BlcnR5Vw0KK0NNX1NldF9EZXZOb2RlX1JlZ2lzdHJ5X1Byb3BlcnR5X0V4QQ0KK0NNX1NldF9EZXZOb2RlX1JlZ2lzdHJ5X1Byb3BlcnR5X0V4Vw0KK0NNX1NldF9IV19Qcm9mDQorQ01fU2V0X0hXX1Byb2ZfRXgNCitDTV9TZXRfSFdfUHJvZl9GbGFnc0ENCitDTV9TZXRfSFdfUHJvZl9GbGFnc1cNCitDTV9TZXRfSFdfUHJvZl9GbGFnc19FeEENCitDTV9TZXRfSFdfUHJvZl9GbGFnc19FeFcNCitDTV9TZXR1cF9EZXZOb2RlDQorQ01fU2V0dXBfRGV2Tm9kZV9FeA0KK0NNX1Rlc3RfUmFuZ2VfQXZhaWxhYmxlDQorQ01fVW5pbnN0YWxsX0Rldk5vZGUNCitDTV9Vbmluc3RhbGxfRGV2Tm9kZV9FeA0KK0NNX1VucmVnaXN0ZXJfRGV2aWNlX0ludGVyZmFjZUENCitDTV9VbnJlZ2lzdGVyX0RldmljZV9JbnRlcmZhY2VXDQorQ01fVW5yZWdpc3Rlcl9EZXZpY2VfSW50ZXJmYWNlX0V4QQ0KK0NNX1VucmVnaXN0ZXJfRGV2aWNlX0ludGVyZmFjZV9FeFcNCitEb2VzVXNlckhhdmVQcml2aWxlZ2UNCitFeHRlbnNpb25Qcm9wU2hlZXRQYWdlUHJvYw0KK0luc3RhbGxDYXRhbG9nDQorSW5zdGFsbEhpbmZTZWN0aW9uDQorSW5zdGFsbEhpbmZTZWN0aW9uQQ0KK0luc3RhbGxIaW5mU2VjdGlvblcNCitJc1VzZXJBZG1pbg0KK015RnJlZQ0KK015TWFsbG9jDQorTXlSZWFsbG9jDQorU2V0dXBBZGRJbnN0YWxsU2VjdGlvblRvRGlza1NwYWNlTGlzdEENCitTZXR1cEFkZEluc3RhbGxTZWN0aW9uVG9EaXNrU3BhY2VMaXN0Vw0KK1NldHVwQWRkU2VjdGlvblRvRGlza1NwYWNlTGlzdEENCitTZXR1cEFkZFNlY3Rpb25Ub0Rpc2tTcGFjZUxpc3RXDQorU2V0dXBBZGRUb0Rpc2tTcGFjZUxpc3RBDQorU2V0dXBBZGRUb0Rpc2tTcGFjZUxpc3RXDQorU2V0dXBBZGRUb1NvdXJjZUxpc3RBDQorU2V0dXBBZGRUb1NvdXJjZUxpc3RXDQorU2V0dXBBZGp1c3REaXNrU3BhY2VMaXN0QQ0KK1NldHVwQWRqdXN0RGlza1NwYWNlTGlzdFcNCitTZXR1cEJhY2t1cEVycm9yQQ0KK1NldHVwQmFja3VwRXJyb3JXDQorU2V0dXBDYW5jZWxUZW1wb3JhcnlTb3VyY2VMaXN0DQorU2V0dXBDbG9zZUZpbGVRdWV1ZQ0KK1NldHVwQ2xvc2VJbmZGaWxlDQorU2V0dXBDbG9zZUxvZw0KK1NldHVwQ29tbWl0RmlsZVF1ZXVlDQorU2V0dXBDb21taXRGaWxlUXVldWVBDQorU2V0dXBDb21taXRGaWxlUXVldWVXDQorU2V0dXBDb25maWd1cmVXbWlGcm9tSW5mU2VjdGlvbkENCitTZXR1cENvbmZpZ3VyZVdtaUZyb21JbmZTZWN0aW9uVw0KK1NldHVwQ29weUVycm9yQQ0KK1NldHVwQ29weUVycm9yVw0KK1NldHVwQ29weU9FTUluZkENCitTZXR1cENvcHlPRU1JbmZXDQorU2V0dXBDcmVhdGVEaXNrU3BhY2VMaXN0QQ0KK1NldHVwQ3JlYXRlRGlza1NwYWNlTGlzdFcNCitTZXR1cERlY29tcHJlc3NPckNvcHlGaWxlQQ0KK1NldHVwRGVjb21wcmVzc09yQ29weUZpbGVXDQorU2V0dXBEZWZhdWx0UXVldWVDYWxsYmFjaw0KK1NldHVwRGVmYXVsdFF1ZXVlQ2FsbGJhY2tBDQorU2V0dXBEZWZhdWx0UXVldWVDYWxsYmFja1cNCitTZXR1cERlbGV0ZUVycm9yQQ0KK1NldHVwRGVsZXRlRXJyb3JXDQorU2V0dXBEZXN0cm95RGlza1NwYWNlTGlzdA0KK1NldHVwRGlBc2tGb3JPRU1EaXNrDQorU2V0dXBEaUJ1aWxkQ2xhc3NJbmZvTGlzdA0KK1NldHVwRGlCdWlsZENsYXNzSW5mb0xpc3RFeEENCitTZXR1cERpQnVpbGRDbGFzc0luZm9MaXN0RXhXDQorU2V0dXBEaUJ1aWxkRHJpdmVySW5mb0xpc3QNCitTZXR1cERpQ2FsbENsYXNzSW5zdGFsbGVyDQorU2V0dXBEaUNhbmNlbERyaXZlckluZm9TZWFyY2gNCitTZXR1cERpQ2hhbmdlU3RhdGUNCitTZXR1cERpQ2xhc3NHdWlkc0Zyb21OYW1lQQ0KK1NldHVwRGlDbGFzc0d1aWRzRnJvbU5hbWVFeEENCitTZXR1cERpQ2xhc3NHdWlkc0Zyb21OYW1lRXhXDQorU2V0dXBEaUNsYXNzR3VpZHNGcm9tTmFtZVcNCitTZXR1cERpQ2xhc3NOYW1lRnJvbUd1aWRBDQorU2V0dXBEaUNsYXNzTmFtZUZyb21HdWlkRXhBDQorU2V0dXBEaUNsYXNzTmFtZUZyb21HdWlkRXhXDQorU2V0dXBEaUNsYXNzTmFtZUZyb21HdWlkVw0KK1NldHVwRGlDcmVhdGVEZXZSZWdLZXlBDQorU2V0dXBEaUNyZWF0ZURldlJlZ0tleVcNCitTZXR1cERpQ3JlYXRlRGV2aWNlSW5mb0ENCitTZXR1cERpQ3JlYXRlRGV2aWNlSW5mb0xpc3QNCitTZXR1cERpQ3JlYXRlRGV2aWNlSW5mb0xpc3RFeEENCitTZXR1cERpQ3JlYXRlRGV2aWNlSW5mb0xpc3RFeFcNCitTZXR1cERpQ3JlYXRlRGV2aWNlSW5mb1cNCitTZXR1cERpQ3JlYXRlRGV2aWNlSW50ZXJmYWNlQQ0KK1NldHVwRGlDcmVhdGVEZXZpY2VJbnRlcmZhY2VSZWdLZXlBDQorU2V0dXBEaUNyZWF0ZURldmljZUludGVyZmFjZVJlZ0tleVcNCitTZXR1cERpQ3JlYXRlRGV2aWNlSW50ZXJmYWNlVw0KK1NldHVwRGlEZWxldGVEZXZSZWdLZXkNCitTZXR1cERpRGVsZXRlRGV2aWNlSW5mbw0KK1NldHVwRGlEZWxldGVEZXZpY2VJbnRlcmZhY2VEYXRhDQorU2V0dXBEaURlbGV0ZURldmljZUludGVyZmFjZVJlZ0tleQ0KK1NldHVwRGlEZXN0cm95Q2xhc3NJbWFnZUxpc3QNCitTZXR1cERpRGVzdHJveURldmljZUluZm9MaXN0DQorU2V0dXBEaURlc3Ryb3lEcml2ZXJJbmZvTGlzdA0KK1NldHVwRGlEcmF3TWluaUljb24NCitTZXR1cERpRW51bURldmljZUluZm8NCitTZXR1cERpRW51bURldmljZUludGVyZmFjZXMNCitTZXR1cERpRW51bURyaXZlckluZm9BDQorU2V0dXBEaUVudW1Ecml2ZXJJbmZvVw0KK1NldHVwRGlHZXRBY3R1YWxNb2RlbHNTZWN0aW9uQQ0KK1NldHVwRGlHZXRBY3R1YWxNb2RlbHNTZWN0aW9uVw0KK1NldHVwRGlHZXRBY3R1YWxTZWN0aW9uVG9JbnN0YWxsQQ0KK1NldHVwRGlHZXRBY3R1YWxTZWN0aW9uVG9JbnN0YWxsRXhBDQorU2V0dXBEaUdldEFjdHVhbFNlY3Rpb25Ub0luc3RhbGxFeFcNCitTZXR1cERpR2V0QWN0dWFsU2VjdGlvblRvSW5zdGFsbFcNCitTZXR1cERpR2V0Q2xhc3NCaXRtYXBJbmRleA0KK1NldHVwRGlHZXRDbGFzc0Rlc2NyaXB0aW9uQQ0KK1NldHVwRGlHZXRDbGFzc0Rlc2NyaXB0aW9uRXhBDQorU2V0dXBEaUdldENsYXNzRGVzY3JpcHRpb25FeFcNCitTZXR1cERpR2V0Q2xhc3NEZXNjcmlwdGlvblcNCitTZXR1cERpR2V0Q2xhc3NEZXZQcm9wZXJ0eVNoZWV0c0ENCitTZXR1cERpR2V0Q2xhc3NEZXZQcm9wZXJ0eVNoZWV0c1cNCitTZXR1cERpR2V0Q2xhc3NEZXZzQQ0KK1NldHVwRGlHZXRDbGFzc0RldnNFeEENCitTZXR1cERpR2V0Q2xhc3NEZXZzRXhXDQorU2V0dXBEaUdldENsYXNzRGV2c1cNCitTZXR1cERpR2V0Q2xhc3NJbWFnZUluZGV4DQorU2V0dXBEaUdldENsYXNzSW1hZ2VMaXN0DQorU2V0dXBEaUdldENsYXNzSW1hZ2VMaXN0RXhBDQorU2V0dXBEaUdldENsYXNzSW1hZ2VMaXN0RXhXDQorU2V0dXBEaUdldENsYXNzSW5zdGFsbFBhcmFtc0ENCitTZXR1cERpR2V0Q2xhc3NJbnN0YWxsUGFyYW1zVw0KK1NldHVwRGlHZXRDbGFzc1JlZ2lzdHJ5UHJvcGVydHlBDQorU2V0dXBEaUdldENsYXNzUmVnaXN0cnlQcm9wZXJ0eVcNCitTZXR1cERpR2V0Q3VzdG9tRGV2aWNlUHJvcGVydHlBDQorU2V0dXBEaUdldEN1c3RvbURldmljZVByb3BlcnR5Vw0KK1NldHVwRGlHZXREZXZpY2VJbmZvTGlzdENsYXNzDQorU2V0dXBEaUdldERldmljZUluZm9MaXN0RGV0YWlsQQ0KK1NldHVwRGlHZXREZXZpY2VJbmZvTGlzdERldGFpbFcNCitTZXR1cERpR2V0RGV2aWNlSW5zdGFsbFBhcmFtc0ENCitTZXR1cERpR2V0RGV2aWNlSW5zdGFsbFBhcmFtc1cNCitTZXR1cERpR2V0RGV2aWNlSW5zdGFuY2VJZEENCitTZXR1cERpR2V0RGV2aWNlSW5zdGFuY2VJZFcNCitTZXR1cERpR2V0RGV2aWNlSW50ZXJmYWNlQWxpYXMNCitTZXR1cERpR2V0RGV2aWNlSW50ZXJmYWNlRGV0YWlsQQ0KK1NldHVwRGlHZXREZXZpY2VJbnRlcmZhY2VEZXRhaWxXDQorU2V0dXBEaUdldERldmljZVJlZ2lzdHJ5UHJvcGVydHlBDQorU2V0dXBEaUdldERldmljZVJlZ2lzdHJ5UHJvcGVydHlXDQorU2V0dXBEaUdldERyaXZlckluZm9EZXRhaWxBDQorU2V0dXBEaUdldERyaXZlckluZm9EZXRhaWxXDQorU2V0dXBEaUdldERyaXZlckluc3RhbGxQYXJhbXNBDQorU2V0dXBEaUdldERyaXZlckluc3RhbGxQYXJhbXNXDQorU2V0dXBEaUdldEh3UHJvZmlsZUZyaWVuZGx5TmFtZUENCitTZXR1cERpR2V0SHdQcm9maWxlRnJpZW5kbHlOYW1lRXhBDQorU2V0dXBEaUdldEh3UHJvZmlsZUZyaWVuZGx5TmFtZUV4Vw0KK1NldHVwRGlHZXRId1Byb2ZpbGVGcmllbmRseU5hbWVXDQorU2V0dXBEaUdldEh3UHJvZmlsZUxpc3QNCitTZXR1cERpR2V0SHdQcm9maWxlTGlzdEV4QQ0KK1NldHVwRGlHZXRId1Byb2ZpbGVMaXN0RXhXDQorU2V0dXBEaUdldElORkNsYXNzQQ0KK1NldHVwRGlHZXRJTkZDbGFzc1cNCitTZXR1cERpR2V0U2VsZWN0ZWREZXZpY2UNCitTZXR1cERpR2V0U2VsZWN0ZWREcml2ZXJBDQorU2V0dXBEaUdldFNlbGVjdGVkRHJpdmVyVw0KK1NldHVwRGlHZXRXaXphcmRQYWdlDQorU2V0dXBEaUluc3RhbGxDbGFzc0ENCitTZXR1cERpSW5zdGFsbENsYXNzRXhBDQorU2V0dXBEaUluc3RhbGxDbGFzc0V4Vw0KK1NldHVwRGlJbnN0YWxsQ2xhc3NXDQorU2V0dXBEaUluc3RhbGxEZXZpY2UNCitTZXR1cERpSW5zdGFsbERldmljZUludGVyZmFjZXMNCitTZXR1cERpSW5zdGFsbERyaXZlckZpbGVzDQorU2V0dXBEaUxvYWRDbGFzc0ljb24NCitTZXR1cERpTW92ZUR1cGxpY2F0ZURldmljZQ0KK1NldHVwRGlPcGVuQ2xhc3NSZWdLZXkNCitTZXR1cERpT3BlbkNsYXNzUmVnS2V5RXhBDQorU2V0dXBEaU9wZW5DbGFzc1JlZ0tleUV4Vw0KK1NldHVwRGlPcGVuRGV2UmVnS2V5DQorU2V0dXBEaU9wZW5EZXZpY2VJbmZvQQ0KK1NldHVwRGlPcGVuRGV2aWNlSW5mb1cNCitTZXR1cERpT3BlbkRldmljZUludGVyZmFjZUENCitTZXR1cERpT3BlbkRldmljZUludGVyZmFjZVJlZ0tleQ0KK1NldHVwRGlPcGVuRGV2aWNlSW50ZXJmYWNlVw0KK1NldHVwRGlSZWdpc3RlckNvRGV2aWNlSW5zdGFsbGVycw0KK1NldHVwRGlSZWdpc3RlckRldmljZUluZm8NCitTZXR1cERpUmVtb3ZlRGV2aWNlDQorU2V0dXBEaVJlbW92ZURldmljZUludGVyZmFjZQ0KK1NldHVwRGlSZXN0YXJ0RGV2aWNlcw0KK1NldHVwRGlTZWxlY3RCZXN0Q29tcGF0RHJ2DQorU2V0dXBEaVNlbGVjdERldmljZQ0KK1NldHVwRGlTZWxlY3RPRU1EcnYNCitTZXR1cERpU2V0Q2xhc3NJbnN0YWxsUGFyYW1zQQ0KK1NldHVwRGlTZXRDbGFzc0luc3RhbGxQYXJhbXNXDQorU2V0dXBEaVNldENsYXNzUmVnaXN0cnlQcm9wZXJ0eUENCitTZXR1cERpU2V0Q2xhc3NSZWdpc3RyeVByb3BlcnR5Vw0KK1NldHVwRGlTZXREZXZpY2VJbnN0YWxsUGFyYW1zQQ0KK1NldHVwRGlTZXREZXZpY2VJbnN0YWxsUGFyYW1zVw0KK1NldHVwRGlTZXREZXZpY2VJbnRlcmZhY2VEZWZhdWx0DQorU2V0dXBEaVNldERldmljZVJlZ2lzdHJ5UHJvcGVydHlBDQorU2V0dXBEaVNldERldmljZVJlZ2lzdHJ5UHJvcGVydHlXDQorU2V0dXBEaVNldERyaXZlckluc3RhbGxQYXJhbXNBDQorU2V0dXBEaVNldERyaXZlckluc3RhbGxQYXJhbXNXDQorU2V0dXBEaVNldFNlbGVjdGVkRGV2aWNlDQorU2V0dXBEaVNldFNlbGVjdGVkRHJpdmVyQQ0KK1NldHVwRGlTZXRTZWxlY3RlZERyaXZlclcNCitTZXR1cERpVW5yZW1vdmVEZXZpY2UNCitTZXR1cER1cGxpY2F0ZURpc2tTcGFjZUxpc3RBDQorU2V0dXBEdXBsaWNhdGVEaXNrU3BhY2VMaXN0Vw0KK1NldHVwRW51bUluZlNlY3Rpb25zQQ0KK1NldHVwRW51bUluZlNlY3Rpb25zVw0KK1NldHVwRmluZEZpcnN0TGluZUENCitTZXR1cEZpbmRGaXJzdExpbmVXDQorU2V0dXBGaW5kTmV4dExpbmUNCitTZXR1cEZpbmROZXh0TWF0Y2hMaW5lQQ0KK1NldHVwRmluZE5leHRNYXRjaExpbmVXDQorU2V0dXBGcmVlU291cmNlTGlzdEENCitTZXR1cEZyZWVTb3VyY2VMaXN0Vw0KK1NldHVwR2V0QmFja3VwSW5mb3JtYXRpb25BDQorU2V0dXBHZXRCYWNrdXBJbmZvcm1hdGlvblcNCitTZXR1cEdldEJpbmFyeUZpZWxkDQorU2V0dXBHZXRGaWVsZENvdW50DQorU2V0dXBHZXRGaWxlQ29tcHJlc3Npb25JbmZvQQ0KK1NldHVwR2V0RmlsZUNvbXByZXNzaW9uSW5mb0V4QQ0KK1NldHVwR2V0RmlsZUNvbXByZXNzaW9uSW5mb0V4Vw0KK1NldHVwR2V0RmlsZUNvbXByZXNzaW9uSW5mb1cNCitTZXR1cEdldEZpbGVRdWV1ZUNvdW50DQorU2V0dXBHZXRGaWxlUXVldWVGbGFncw0KK1NldHVwR2V0SW5mRmlsZUxpc3RBDQorU2V0dXBHZXRJbmZGaWxlTGlzdFcNCitTZXR1cEdldEluZkluZm9ybWF0aW9uQQ0KK1NldHVwR2V0SW5mSW5mb3JtYXRpb25XDQorU2V0dXBHZXRJbmZTZWN0aW9ucw0KK1NldHVwR2V0SW50RmllbGQNCitTZXR1cEdldExpbmVCeUluZGV4QQ0KK1NldHVwR2V0TGluZUJ5SW5kZXhXDQorU2V0dXBHZXRMaW5lQ291bnRBDQorU2V0dXBHZXRMaW5lQ291bnRXDQorU2V0dXBHZXRMaW5lVGV4dEENCitTZXR1cEdldExpbmVUZXh0Vw0KK1NldHVwR2V0TXVsdGlTekZpZWxkQQ0KK1NldHVwR2V0TXVsdGlTekZpZWxkVw0KK1NldHVwR2V0Tm9uSW50ZXJhY3RpdmVNb2RlDQorU2V0dXBHZXRTb3VyY2VGaWxlTG9jYXRpb25BDQorU2V0dXBHZXRTb3VyY2VGaWxlTG9jYXRpb25XDQorU2V0dXBHZXRTb3VyY2VGaWxlU2l6ZUENCitTZXR1cEdldFNvdXJjZUZpbGVTaXplVw0KK1NldHVwR2V0U291cmNlSW5mb0ENCitTZXR1cEdldFNvdXJjZUluZm9XDQorU2V0dXBHZXRTdHJpbmdGaWVsZEENCitTZXR1cEdldFN0cmluZ0ZpZWxkVw0KK1NldHVwR2V0VGFyZ2V0UGF0aEENCitTZXR1cEdldFRhcmdldFBhdGhXDQorU2V0dXBJbml0RGVmYXVsdFF1ZXVlQ2FsbGJhY2sNCitTZXR1cEluaXREZWZhdWx0UXVldWVDYWxsYmFja0V4DQorU2V0dXBJbml0aWFsaXplRmlsZUxvZ0ENCitTZXR1cEluaXRpYWxpemVGaWxlTG9nVw0KK1NldHVwSW5zdGFsbEZpbGVBDQorU2V0dXBJbnN0YWxsRmlsZUV4QQ0KK1NldHVwSW5zdGFsbEZpbGVFeFcNCitTZXR1cEluc3RhbGxGaWxlVw0KK1NldHVwSW5zdGFsbEZpbGVzRnJvbUluZlNlY3Rpb25BDQorU2V0dXBJbnN0YWxsRmlsZXNGcm9tSW5mU2VjdGlvblcNCitTZXR1cEluc3RhbGxGcm9tSW5mU2VjdGlvbkENCitTZXR1cEluc3RhbGxGcm9tSW5mU2VjdGlvblcNCitTZXR1cEluc3RhbGxTZXJ2aWNlc0Zyb21JbmZTZWN0aW9uQQ0KK1NldHVwSW5zdGFsbFNlcnZpY2VzRnJvbUluZlNlY3Rpb25FeEENCitTZXR1cEluc3RhbGxTZXJ2aWNlc0Zyb21JbmZTZWN0aW9uRXhXDQorU2V0dXBJbnN0YWxsU2VydmljZXNGcm9tSW5mU2VjdGlvblcNCitTZXR1cEl0ZXJhdGVDYWJpbmV0QQ0KK1NldHVwSXRlcmF0ZUNhYmluZXRXDQorU2V0dXBMb2dFcnJvckENCitTZXR1cExvZ0Vycm9yVw0KK1NldHVwTG9nRmlsZUENCitTZXR1cExvZ0ZpbGVXDQorU2V0dXBPcGVuQXBwZW5kSW5mRmlsZUENCitTZXR1cE9wZW5BcHBlbmRJbmZGaWxlVw0KK1NldHVwT3BlbkZpbGVRdWV1ZQ0KK1NldHVwT3BlbkluZkZpbGVBDQorU2V0dXBPcGVuSW5mRmlsZVcNCitTZXR1cE9wZW5Mb2cNCitTZXR1cE9wZW5NYXN0ZXJJbmYNCitTZXR1cFByZXBhcmVRdWV1ZUZvclJlc3RvcmVBDQorU2V0dXBQcmVwYXJlUXVldWVGb3JSZXN0b3JlVw0KK1NldHVwUHJvbXB0Rm9yRGlza0ENCitTZXR1cFByb21wdEZvckRpc2tXDQorU2V0dXBQcm9tcHRSZWJvb3QNCitTZXR1cFF1ZXJ5RHJpdmVzSW5EaXNrU3BhY2VMaXN0QQ0KK1NldHVwUXVlcnlEcml2ZXNJbkRpc2tTcGFjZUxpc3RXDQorU2V0dXBRdWVyeUZpbGVMb2dBDQorU2V0dXBRdWVyeUZpbGVMb2dXDQorU2V0dXBRdWVyeUluZkZpbGVJbmZvcm1hdGlvbkENCitTZXR1cFF1ZXJ5SW5mRmlsZUluZm9ybWF0aW9uVw0KK1NldHVwUXVlcnlJbmZPcmlnaW5hbEZpbGVJbmZvcm1hdGlvbkENCitTZXR1cFF1ZXJ5SW5mT3JpZ2luYWxGaWxlSW5mb3JtYXRpb25XDQorU2V0dXBRdWVyeUluZlZlcnNpb25JbmZvcm1hdGlvbkENCitTZXR1cFF1ZXJ5SW5mVmVyc2lvbkluZm9ybWF0aW9uVw0KK1NldHVwUXVlcnlTb3VyY2VMaXN0QQ0KK1NldHVwUXVlcnlTb3VyY2VMaXN0Vw0KK1NldHVwUXVlcnlTcGFjZVJlcXVpcmVkT25Ecml2ZUENCitTZXR1cFF1ZXJ5U3BhY2VSZXF1aXJlZE9uRHJpdmVXDQorU2V0dXBRdWV1ZUNvcHlBDQorU2V0dXBRdWV1ZUNvcHlJbmRpcmVjdEENCitTZXR1cFF1ZXVlQ29weUluZGlyZWN0Vw0KK1NldHVwUXVldWVDb3B5U2VjdGlvbkENCitTZXR1cFF1ZXVlQ29weVNlY3Rpb25XDQorU2V0dXBRdWV1ZUNvcHlXDQorU2V0dXBRdWV1ZURlZmF1bHRDb3B5QQ0KK1NldHVwUXVldWVEZWZhdWx0Q29weVcNCitTZXR1cFF1ZXVlRGVsZXRlQQ0KK1NldHVwUXVldWVEZWxldGVTZWN0aW9uQQ0KK1NldHVwUXVldWVEZWxldGVTZWN0aW9uVw0KK1NldHVwUXVldWVEZWxldGVXDQorU2V0dXBRdWV1ZVJlbmFtZUENCitTZXR1cFF1ZXVlUmVuYW1lU2VjdGlvbkENCitTZXR1cFF1ZXVlUmVuYW1lU2VjdGlvblcNCitTZXR1cFF1ZXVlUmVuYW1lVw0KK1NldHVwUmVtb3ZlRmlsZUxvZ0VudHJ5QQ0KK1NldHVwUmVtb3ZlRmlsZUxvZ0VudHJ5Vw0KK1NldHVwUmVtb3ZlRnJvbURpc2tTcGFjZUxpc3RBDQorU2V0dXBSZW1vdmVGcm9tRGlza1NwYWNlTGlzdFcNCitTZXR1cFJlbW92ZUZyb21Tb3VyY2VMaXN0QQ0KK1NldHVwUmVtb3ZlRnJvbVNvdXJjZUxpc3RXDQorU2V0dXBSZW1vdmVJbnN0YWxsU2VjdGlvbkZyb21EaXNrU3BhY2VMaXN0QQ0KK1NldHVwUmVtb3ZlSW5zdGFsbFNlY3Rpb25Gcm9tRGlza1NwYWNlTGlzdFcNCitTZXR1cFJlbW92ZVNlY3Rpb25Gcm9tRGlza1NwYWNlTGlzdEENCitTZXR1cFJlbW92ZVNlY3Rpb25Gcm9tRGlza1NwYWNlTGlzdFcNCitTZXR1cFJlbmFtZUVycm9yQQ0KK1NldHVwUmVuYW1lRXJyb3JXDQorU2V0dXBTY2FuRmlsZVF1ZXVlDQorU2V0dXBTY2FuRmlsZVF1ZXVlQQ0KK1NldHVwU2NhbkZpbGVRdWV1ZVcNCitTZXR1cFNldERpcmVjdG9yeUlkQQ0KK1NldHVwU2V0RGlyZWN0b3J5SWRFeEENCitTZXR1cFNldERpcmVjdG9yeUlkRXhXDQorU2V0dXBTZXREaXJlY3RvcnlJZFcNCitTZXR1cFNldEZpbGVRdWV1ZUFsdGVybmF0ZVBsYXRmb3JtQQ0KK1NldHVwU2V0RmlsZVF1ZXVlQWx0ZXJuYXRlUGxhdGZvcm1XDQorU2V0dXBTZXRGaWxlUXVldWVGbGFncw0KK1NldHVwU2V0Tm9uSW50ZXJhY3RpdmVNb2RlDQorU2V0dXBTZXRQbGF0Zm9ybVBhdGhPdmVycmlkZUENCitTZXR1cFNldFBsYXRmb3JtUGF0aE92ZXJyaWRlVw0KK1NldHVwU2V0U291cmNlTGlzdEENCitTZXR1cFNldFNvdXJjZUxpc3RXDQorU2V0dXBUZXJtRGVmYXVsdFF1ZXVlQ2FsbGJhY2sNCitTZXR1cFRlcm1pbmF0ZUZpbGVMb2cNCitTZXR1cFVuaW5zdGFsbE5ld2x5Q29waWVkSW5mcw0KK1NldHVwVW5pbnN0YWxsT0VNSW5mQQ0KK1NldHVwVW5pbnN0YWxsT0VNSW5mVw0KK1NldHVwVmVyaWZ5SW5mRmlsZUENCitTZXR1cFZlcmlmeUluZkZpbGVXDQorVW5pY29kZVRvTXVsdGlCeXRlDQorVmVyaWZ5Q2F0YWxvZ0ZpbGUNCitwU2V0dXBBY2Nlc3NSdW5PbmNlTm9kZUxpc3QNCitwU2V0dXBBY3F1aXJlU0NNTG9jaw0KK3BTZXR1cEFkZE1pbmlJY29uVG9MaXN0DQorcFNldHVwQWRkVGFnVG9Hcm91cE9yZGVyTGlzdEVudHJ5DQorcFNldHVwQXBwZW5kU3RyaW5nVG9NdWx0aVN6DQorcFNldHVwQ2FwdHVyZUFuZENvbnZlcnRBbnNpQXJnDQorcFNldHVwQ2VudGVyV2luZG93UmVsYXRpdmVUb1BhcmVudA0KK3BTZXR1cENvbmNhdGVuYXRlUGF0aHMNCitwU2V0dXBEZXN0cm95UnVuT25jZU5vZGVMaXN0DQorcFNldHVwRGlHZXREZXZpY2VJbmZvQ29udGV4dA0KK3BTZXR1cERpU2V0RGV2aWNlSW5mb0NvbnRleHQNCitwU2V0dXBEb2VzVXNlckhhdmVQcml2aWxlZ2UNCitwU2V0dXBEdXBsaWNhdGVTdHJpbmcNCitwU2V0dXBFbmFibGVQcml2aWxlZ2UNCitwU2V0dXBGcmVlDQorcFNldHVwRnJlZVN0cmluZ0FycmF5DQorcFNldHVwR2V0Q3VycmVudERyaXZlclNpZ25pbmdQb2xpY3kNCitwU2V0dXBHZXRGaWVsZA0KK3BTZXR1cEdldEZpbGVUaXRsZQ0KK3BTZXR1cEdldEdsb2JhbEZsYWdzDQorcFNldHVwR2V0SW5mU2VjdGlvbnMNCitwU2V0dXBHZXRRdWV1ZUZsYWdzDQorcFNldHVwR2V0UmVhbFN5c3RlbVRpbWUNCitwU2V0dXBHZXRWZXJzaW9uSW5mb0Zyb21JbWFnZQ0KK3BTZXR1cEd1aWRGcm9tU3RyaW5nDQorcFNldHVwSGFuZGxlRmFpbGVkVmVyaWZpY2F0aW9uDQorcFNldHVwSW5mQ2FjaGVCdWlsZA0KK3BTZXR1cEluZklzRnJvbU9lbUxvY2F0aW9uDQorcFNldHVwSW5zdGFsbENhdGFsb2cNCitwU2V0dXBJbnN0YWxsU3RvcEV4DQorcFNldHVwSXNHdWlkTnVsbA0KK3BTZXR1cElzTG9jYWxTeXN0ZW0NCitwU2V0dXBJc1VzZXJBZG1pbg0KK3BTZXR1cE1ha2VTdXJlUGF0aEV4aXN0cw0KK3BTZXR1cE1hbGxvYw0KK3BTZXR1cE1vZGlmeUdsb2JhbEZsYWdzDQorcFNldHVwTXVsdGlCeXRlVG9Vbmljb2RlDQorcFNldHVwT3BlbkFuZE1hcEZpbGVGb3JSZWFkDQorcFNldHVwT3V0T2ZNZW1vcnkNCitwU2V0dXBRdWVyeU11bHRpU3pWYWx1ZVRvQXJyYXkNCitwU2V0dXBSZWFsbG9jDQorcFNldHVwUmVnaXN0cnlEZWxub2RlDQorcFNldHVwUmV0cmlldmVTZXJ2aWNlQ29uZmlnDQorcFNldHVwU2V0QXJyYXlUb011bHRpU3pWYWx1ZQ0KK3BTZXR1cFNldEdsb2JhbEZsYWdzDQorcFNldHVwU2V0Tm9Ecml2ZXJQcm9tcHRzDQorcFNldHVwU2V0UXVldWVGbGFncw0KK3BTZXR1cFNldFN5c3RlbVNvdXJjZVBhdGgNCitwU2V0dXBTaG91bGREZXZpY2VCZUV4Y2x1ZGVkDQorcFNldHVwU3RyaW5nRnJvbUd1aWQNCitwU2V0dXBTdHJpbmdUYWJsZUFkZFN0cmluZw0KK3BTZXR1cFN0cmluZ1RhYmxlQWRkU3RyaW5nRXgNCitwU2V0dXBTdHJpbmdUYWJsZURlc3Ryb3kNCitwU2V0dXBTdHJpbmdUYWJsZUR1cGxpY2F0ZQ0KK3BTZXR1cFN0cmluZ1RhYmxlRW51bQ0KK3BTZXR1cFN0cmluZ1RhYmxlR2V0RXh0cmFEYXRhDQorcFNldHVwU3RyaW5nVGFibGVJbml0aWFsaXplDQorcFNldHVwU3RyaW5nVGFibGVJbml0aWFsaXplRXgNCitwU2V0dXBTdHJpbmdUYWJsZUxvb2tVcFN0cmluZw0KK3BTZXR1cFN0cmluZ1RhYmxlTG9va1VwU3RyaW5nRXgNCitwU2V0dXBTdHJpbmdUYWJsZVNldEV4dHJhRGF0YQ0KK3BTZXR1cFN0cmluZ1RhYmxlU3RyaW5nRnJvbUlkDQorcFNldHVwU3RyaW5nVGFibGVTdHJpbmdGcm9tSWRFeA0KK3BTZXR1cFVuaWNvZGVUb011bHRpQnl0ZQ0KK3BTZXR1cFVubWFwQW5kQ2xvc2VGaWxlDQorcFNldHVwVmVyaWZ5Q2F0YWxvZ0ZpbGUNCitwU2V0dXBWZXJpZnlGaWxlDQorcFNldHVwVmVyaWZ5UXVldWVkQ2F0YWxvZ3MNCitwU2V0dXBXcml0ZUxvZ0VudHJ5DQorcFNldHVwV3JpdGVMb2dFcnJvcg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dzZmMuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3NmYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTE2M2UzZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dzZmMuZGVmCkBAIC0wLDAgKzEsMTYgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgc2ZjLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBzZmMuZGxsDQorRVhQT1JUUw0KK1NSU2V0UmVzdG9yZVBvaW50DQorU1JTZXRSZXN0b3JlUG9pbnRBDQorU1JTZXRSZXN0b3JlUG9pbnRXDQorU2ZjR2V0TmV4dFByb3RlY3RlZEZpbGUNCitTZmNJc0ZpbGVQcm90ZWN0ZWQNCitTZmNXTEV2ZW50TG9nb2ZmDQorU2ZjV0xFdmVudExvZ29uDQorU2ZwVmVyaWZ5RmlsZQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dzZmNfb3MuZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3NmY19vcy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDM2ZWI3NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dzZmNfb3MuZGVmCkBAIC0wLDAgKzEsMTIgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgc2ZjX29zLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorTElCUkFSWSBzZmNfb3MuZGxsDQorRVhQT1JUUw0KK1NmY0dldE5leHRQcm90ZWN0ZWRGaWxlDQorU2ZjSXNGaWxlUHJvdGVjdGVkDQorU2ZjV0xFdmVudExvZ29mZg0KK1NmY1dMRXZlbnRMb2dvbg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbGliL3dzZmNmaWxlcy5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93c2ZjZmlsZXMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYxZDJlZDUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93c2ZjZmlsZXMuZGVmCkBAIC0wLDAgKzEsOSBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBzZmNmaWxlcy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgc2ZjZmlsZXMuZGxsDQorRVhQT1JUUw0KK1NmY0dldEZpbGVzDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3NmbWFwaS5kZWYgYi9taW5ndy13NjQtY3J0L2xpYi93c2ZtYXBpLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kODNjOTM1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3NmbWFwaS5kZWYKQEAgLTAsMCArMSw0MCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTRk1BUEkuZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFNGTUFQSS5kbGwNCitFWFBPUlRTDQorQWZwQWRtaW5CdWZmZXJGcmVlDQorQWZwQWRtaW5Db25uZWN0DQorQWZwQWRtaW5Db25uZWN0aW9uQ2xvc2UNCitBZnBBZG1pbkNvbm5lY3Rpb25FbnVtDQorQWZwQWRtaW5EaXJlY3RvcnlHZXRJbmZvDQorQWZwQWRtaW5EaXJlY3RvcnlTZXRJbmZvDQorQWZwQWRtaW5EaXNjb25uZWN0DQorQWZwQWRtaW5FVENNYXBBZGQNCitBZnBBZG1pbkVUQ01hcEFzc29jaWF0ZQ0KK0FmcEFkbWluRVRDTWFwRGVsZXRlDQorQWZwQWRtaW5FVENNYXBHZXRJbmZvDQorQWZwQWRtaW5FVENNYXBTZXRJbmZvDQorQWZwQWRtaW5GaWxlQ2xvc2UNCitBZnBBZG1pbkZpbGVFbnVtDQorQWZwQWRtaW5GaW5kZXJTZXRJbmZvDQorQWZwQWRtaW5JbnZhbGlkVm9sdW1lRGVsZXRlDQorQWZwQWRtaW5JbnZhbGlkVm9sdW1lRW51bQ0KK0FmcEFkbWluTWVzc2FnZVNlbmQNCitBZnBBZG1pblByb2ZpbGVDbGVhcg0KK0FmcEFkbWluUHJvZmlsZUdldA0KK0FmcEFkbWluU2VydmVyR2V0SW5mbw0KK0FmcEFkbWluU2VydmVyU2V0SW5mbw0KK0FmcEFkbWluU2Vzc2lvbkNsb3NlDQorQWZwQWRtaW5TZXNzaW9uRW51bQ0KK0FmcEFkbWluU3RhdGlzdGljc0NsZWFyDQorQWZwQWRtaW5TdGF0aXN0aWNzR2V0DQorQWZwQWRtaW5TdGF0aXN0aWNzR2V0RXgNCitBZnBBZG1pblZvbHVtZUFkZA0KK0FmcEFkbWluVm9sdW1lRGVsZXRlDQorQWZwQWRtaW5Wb2x1bWVFbnVtDQorQWZwQWRtaW5Wb2x1bWVHZXRJbmZvDQorQWZwQWRtaW5Wb2x1bWVTZXRJbmZvDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3NoYXRtLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3dzaGF0bS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGUyYjgwYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3dzaGF0bS5kZWYKQEAgLTAsMCArMSwyNCBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSB3c2hhdG0uZGxsDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIHdzaGF0bS5kbGwNCitFWFBPUlRTDQorV1NIQWRkcmVzc1RvU3RyaW5nDQorV1NIRW51bVByb3RvY29scw0KK1dTSEdldEJyb2FkY2FzdFNvY2thZGRyDQorV1NIR2V0UHJvdmlkZXJHdWlkDQorV1NIR2V0U29ja2FkZHJUeXBlDQorV1NIR2V0U29ja2V0SW5mb3JtYXRpb24NCitXU0hHZXRXU0FQcm90b2NvbEluZm8NCitXU0hHZXRXaWxkY2FyZFNvY2thZGRyDQorV1NIR2V0V2luc29ja01hcHBpbmcNCitXU0hJb2N0bA0KK1dTSEpvaW5MZWFmDQorV1NITm90aWZ5DQorV1NIT3BlblNvY2tldA0KK1dTSE9wZW5Tb2NrZXQyDQorV1NIU2V0U29ja2V0SW5mb3JtYXRpb24NCitXU0hTdHJpbmdUb0FkZHJlc3MNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93c2hidGguZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3NoYnRoLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZTc2OGY0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3NoYnRoLmRlZgpAQCAtMCwwICsxLDI1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIHdzaGJ0aC5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgd3NoYnRoLmRsbA0KK0VYUE9SVFMNCitOU1BTdGFydHVwDQorV1NIQWRkcmVzc1RvU3RyaW5nDQorV1NIRW51bVByb3RvY29scw0KK1dTSEdldEJyb2FkY2FzdFNvY2thZGRyDQorV1NIR2V0UHJvdmlkZXJHdWlkDQorV1NIR2V0U29ja2FkZHJUeXBlDQorV1NIR2V0U29ja2V0SW5mb3JtYXRpb24NCitXU0hHZXRXU0FQcm90b2NvbEluZm8NCitXU0hHZXRXaWxkY2FyZFNvY2thZGRyDQorV1NIR2V0V2luc29ja01hcHBpbmcNCitXU0hJb2N0bA0KK1dTSEpvaW5MZWFmDQorV1NITm90aWZ5DQorV1NIT3BlblNvY2tldA0KK1dTSE9wZW5Tb2NrZXQyDQorV1NIU2V0U29ja2V0SW5mb3JtYXRpb24NCitXU0hTdHJpbmdUb0FkZHJlc3MNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93c2hjb24uZGVmIGIvbWluZ3ctdzY0LWNydC9saWIvd3NoY29uLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMDEwYjdlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9saWIvd3NoY29uLmRlZgpAQCAtMCwwICsxLDEzIEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdTSENvbi5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgV1NIQ29uLmRsbA0KK0VYUE9SVFMNCitETExHZXREb2N1bWVudGF0aW9uDQorRGxsQ2FuVW5sb2FkTm93DQorRGxsR2V0Q2xhc3NPYmplY3QNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L2xpYi93d2RtYXVkLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3d3ZG1hdWQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJiOWM3NzYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L2xpYi93d2RtYXVkLmRlZgpAQCAtMCwwICsxLDE1IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFdETUFVRC5EUlYNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgV0RNQVVELkRSVg0KK0VYUE9SVFMNCitEcml2ZXJQcm9jDQorYXV4TWVzc2FnZQ0KK21pZE1lc3NhZ2UNCittb2RNZXNzYWdlDQorbXhkTWVzc2FnZQ0KK3dpZE1lc3NhZ2UNCit3b2RNZXNzYWdlDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvd3dpbnNwb29sLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3d3aW5zcG9vbC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGFkOTgwYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3d3aW5zcG9vbC5kZWYKQEAgLTAsMCArMSwxNzcgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgV0lOU1BPT0wuRFJWDQorOw0KKzsgQXV0b2dlbmVyYXRlZCBieSBnZW5fZXhwb3J0ZGVmDQorOyBXcml0dGVuIGJ5IEthaSBUaWV0eiwgMjAwNw0KKzsNCitMSUJSQVJZIFdJTlNQT09MLkRSVg0KK0VYUE9SVFMNCitQZXJmQ2xvc2UNCitQZXJmQ29sbGVjdA0KK1BlcmZPcGVuDQorQURWQU5DRURTRVRVUERJQUxPRw0KK0Fib3J0UHJpbnRlcg0KK0FkZEZvcm1BDQorQWRkRm9ybVcNCitBZGRKb2JBDQorQWRkSm9iVw0KK0FkZE1vbml0b3JBDQorQWRkTW9uaXRvclcNCitBZGRQb3J0QQ0KK0FkZFBvcnRFeEENCitBZGRQb3J0RXhXDQorQWRkUG9ydFcNCitBZGRQcmludFByb2Nlc3NvckENCitBZGRQcmludFByb2Nlc3NvclcNCitBZGRQcmludFByb3ZpZG9yQQ0KK0FkZFByaW50UHJvdmlkb3JXDQorQWRkUHJpbnRlckENCitBZGRQcmludGVyQ29ubmVjdGlvbkENCitBZGRQcmludGVyQ29ubmVjdGlvblcNCitBZGRQcmludGVyRHJpdmVyQQ0KK0FkZFByaW50ZXJEcml2ZXJFeEENCitBZGRQcmludGVyRHJpdmVyRXhXDQorQWRkUHJpbnRlckRyaXZlclcNCitBZGRQcmludGVyVw0KK0FkdmFuY2VkRG9jdW1lbnRQcm9wZXJ0aWVzQQ0KK0FkdmFuY2VkRG9jdW1lbnRQcm9wZXJ0aWVzVw0KK0FkdmFuY2VkU2V0dXBEaWFsb2cNCitDbG9zZVByaW50ZXINCitDbG9zZVNwb29sRmlsZUhhbmRsZQ0KK0NvbW1pdFNwb29sRGF0YQ0KK0NvbmZpZ3VyZVBvcnRBDQorQ29uZmlndXJlUG9ydFcNCitDb25uZWN0VG9QcmludGVyRGxnDQorQ29udmVydEFuc2lEZXZNb2RlVG9Vbmljb2RlRGV2bW9kZQ0KK0NvbnZlcnRVbmljb2RlRGV2TW9kZVRvQW5zaURldm1vZGUNCitDcmVhdGVQcmludGVySUMNCitERVZJQ0VDQVBBQklMSVRJRVMNCitERVZJQ0VNT0RFDQorRGVsZXRlRm9ybUENCitEZWxldGVGb3JtVw0KK0RlbGV0ZU1vbml0b3JBDQorRGVsZXRlTW9uaXRvclcNCitEZWxldGVQb3J0QQ0KK0RlbGV0ZVBvcnRXDQorRGVsZXRlUHJpbnRQcm9jZXNzb3JBDQorRGVsZXRlUHJpbnRQcm9jZXNzb3JXDQorRGVsZXRlUHJpbnRQcm92aWRvckENCitEZWxldGVQcmludFByb3ZpZG9yVw0KK0RlbGV0ZVByaW50ZXINCitEZWxldGVQcmludGVyQ29ubmVjdGlvbkENCitEZWxldGVQcmludGVyQ29ubmVjdGlvblcNCitEZWxldGVQcmludGVyRGF0YUENCitEZWxldGVQcmludGVyRGF0YUV4QQ0KK0RlbGV0ZVByaW50ZXJEYXRhRXhXDQorRGVsZXRlUHJpbnRlckRhdGFXDQorRGVsZXRlUHJpbnRlckRyaXZlckENCitEZWxldGVQcmludGVyRHJpdmVyRXhBDQorRGVsZXRlUHJpbnRlckRyaXZlckV4Vw0KK0RlbGV0ZVByaW50ZXJEcml2ZXJXDQorRGVsZXRlUHJpbnRlcklDDQorRGVsZXRlUHJpbnRlcktleUENCitEZWxldGVQcmludGVyS2V5Vw0KK0RldlF1ZXJ5UHJpbnQNCitEZXZRdWVyeVByaW50RXgNCitEZXZpY2VDYXBhYmlsaXRpZXMNCitEZXZpY2VDYXBhYmlsaXRpZXNBDQorRGV2aWNlQ2FwYWJpbGl0aWVzVw0KK0RldmljZU1vZGUNCitEZXZpY2VQcm9wZXJ0eVNoZWV0cw0KK0RvY3VtZW50RXZlbnQNCitEb2N1bWVudFByb3BlcnRpZXNBDQorRG9jdW1lbnRQcm9wZXJ0aWVzVw0KK0RvY3VtZW50UHJvcGVydHlTaGVldHMNCitFWFRERVZJQ0VNT0RFDQorRW5kRG9jUHJpbnRlcg0KK0VuZFBhZ2VQcmludGVyDQorRW51bUZvcm1zQQ0KK0VudW1Gb3Jtc1cNCitFbnVtSm9ic0ENCitFbnVtSm9ic1cNCitFbnVtTW9uaXRvcnNBDQorRW51bU1vbml0b3JzVw0KK0VudW1Qb3J0c0ENCitFbnVtUG9ydHNXDQorRW51bVByaW50UHJvY2Vzc29yRGF0YXR5cGVzQQ0KK0VudW1QcmludFByb2Nlc3NvckRhdGF0eXBlc1cNCitFbnVtUHJpbnRQcm9jZXNzb3JzQQ0KK0VudW1QcmludFByb2Nlc3NvcnNXDQorRW51bVByaW50ZXJEYXRhQQ0KK0VudW1QcmludGVyRGF0YUV4QQ0KK0VudW1QcmludGVyRGF0YUV4Vw0KK0VudW1QcmludGVyRGF0YVcNCitFbnVtUHJpbnRlckRyaXZlcnNBDQorRW51bVByaW50ZXJEcml2ZXJzVw0KK0dldERlZmF1bHRQcmludGVyQQ0KK1NldERlZmF1bHRQcmludGVyQQ0KK0dldERlZmF1bHRQcmludGVyVw0KK1NldERlZmF1bHRQcmludGVyVw0KK0VudW1QcmludGVyS2V5QQ0KK0VudW1QcmludGVyS2V5Vw0KK0VudW1QcmludGVyc0ENCitFbnVtUHJpbnRlcnNXDQorRXh0RGV2aWNlTW9kZQ0KK0ZpbmRDbG9zZVByaW50ZXJDaGFuZ2VOb3RpZmljYXRpb24NCitGaW5kRmlyc3RQcmludGVyQ2hhbmdlTm90aWZpY2F0aW9uDQorRmluZE5leHRQcmludGVyQ2hhbmdlTm90aWZpY2F0aW9uDQorRmx1c2hQcmludGVyDQorRnJlZVByaW50ZXJOb3RpZnlJbmZvDQorR2V0Rm9ybUENCitHZXRGb3JtVw0KK0dldEpvYkENCitHZXRKb2JXDQorR2V0UHJpbnRQcm9jZXNzb3JEaXJlY3RvcnlBDQorR2V0UHJpbnRQcm9jZXNzb3JEaXJlY3RvcnlXDQorR2V0UHJpbnRlckENCitHZXRQcmludGVyRGF0YUENCitHZXRQcmludGVyRGF0YUV4QQ0KK0dldFByaW50ZXJEYXRhRXhXDQorR2V0UHJpbnRlckRhdGFXDQorR2V0UHJpbnRlckRyaXZlckENCitHZXRQcmludGVyRHJpdmVyRGlyZWN0b3J5QQ0KK0dldFByaW50ZXJEcml2ZXJEaXJlY3RvcnlXDQorR2V0UHJpbnRlckRyaXZlclcNCitHZXRQcmludGVyVw0KK0dldFNwb29sRmlsZUhhbmRsZQ0KK0lzVmFsaWREZXZtb2RlQQ0KK0lzVmFsaWREZXZtb2RlVw0KK09wZW5QcmludGVyQQ0KK09wZW5QcmludGVyVw0KK1BsYXlHZGlTY3JpcHRPblByaW50ZXJJQw0KK1ByaW50ZXJNZXNzYWdlQm94QQ0KK1ByaW50ZXJNZXNzYWdlQm94Vw0KK1ByaW50ZXJQcm9wZXJ0aWVzDQorUXVlcnlDb2xvclByb2ZpbGUNCitRdWVyeVJlbW90ZUZvbnRzDQorUXVlcnlTcG9vbE1vZGUNCitSZWFkUHJpbnRlcg0KK1Jlc2V0UHJpbnRlckENCitSZXNldFByaW50ZXJXDQorU2NoZWR1bGVKb2INCitTZWVrUHJpbnRlcg0KK1NldEFsbG9jRmFpbENvdW50DQorU2V0Rm9ybUENCitTZXRGb3JtVw0KK1NldEpvYkENCitTZXRKb2JXDQorU2V0UG9ydEENCitTZXRQb3J0Vw0KK1NldFByaW50ZXJBDQorU2V0UHJpbnRlckRhdGFBDQorU2V0UHJpbnRlckRhdGFFeEENCitTZXRQcmludGVyRGF0YUV4Vw0KK1NldFByaW50ZXJEYXRhVw0KK1NldFByaW50ZXJXDQorU3BsRHJpdmVyVW5sb2FkQ29tcGxldGUNCitTcG9vbGVyRGV2UXVlcnlQcmludFcNCitTcG9vbGVySW5pdA0KK1Nwb29sZXJQcmludGVyRXZlbnQNCitTdGFydERvY0RsZ0ENCitTdGFydERvY0RsZ1cNCitTdGFydERvY1ByaW50ZXJBDQorU3RhcnREb2NQcmludGVyVw0KK1N0YXJ0UGFnZVByaW50ZXINCitXYWl0Rm9yUHJpbnRlckNoYW5nZQ0KK1dyaXRlUHJpbnRlcg0KK1hjdkRhdGFXDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9saWIvem9uZW9jLmRlZiBiL21pbmd3LXc2NC1jcnQvbGliL3pvbmVvYy5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2E3NzBhNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbGliL3pvbmVvYy5kZWYKQEAgLTAsMCArMSw5IEBACis7IA0KKzsgRXhwb3J0cyBvZiBmaWxlIFpvbmVPQy5kbGwNCis7DQorOyBBdXRvZ2VuZXJhdGVkIGJ5IGdlbl9leHBvcnRkZWYNCis7IFdyaXR0ZW4gYnkgS2FpIFRpZXR6LCAyMDA3DQorOw0KK0xJQlJBUlkgWm9uZU9DLmRsbA0KK0VYUE9SVFMNCitab25lU2V0dXBQcm9jDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2Fjb3NmLmMgYi9taW5ndy13NjQtY3J0L21hdGgvYWNvc2YuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZmUyZTRhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2Fjb3NmLmMKQEAgLTAsMCArMSwyMyBAQAorLyoNCisgKiBXcml0dGVuIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIFB1YmxpYyBkb21haW4uDQorICovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisNCitmbG9hdA0KK2Fjb3NmIChmbG9hdCB4KQ0KK3sNCisgIGZsb2F0IHJlczsNCisNCisgIC8qIGFjb3NsID0gYXRhbmwgKHNxcnRsKDEgLSB4XjIpIC8geCkgKi8NCisgIGFzbSAoCSJmbGQJJSVzdFxuXHQiDQorCSJmbXVsCSUlc3QoMClcblx0IgkJLyogeF4yICovDQorCSJmbGQxXG5cdCINCisJImZzdWJwXG5cdCIJCQkvKiAxIC0geF4yICovDQorCSJmc3FydFxuXHQiCQkJLyogc3FydGwgKDEgLSB4XjIpICovDQorCSJmeGNoCSUlc3QoMSlcblx0Ig0KKwkiZnBhdGFuIg0KKwk6ICI9dCIgKHJlcykgOiAiMCIgKHgpIDogInN0KDEpIik7DQorICByZXR1cm4gcmVzOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvYWNvc2guYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9hY29zaC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNmNjE3MTIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvYWNvc2guYwpAQCAtMCwwICsxLDI2IEBACisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxlcnJuby5oPg0KKyNpbmNsdWRlICJmYXN0bWF0aC5oIg0KKw0KKy8qIGFjb3NoKHgpID0gbG9nICh4ICsgc3FydCh4ICogeCAtIDEpKSAqLw0KK2RvdWJsZSBhY29zaCAoZG91YmxlIHgpDQorew0KKyAgaWYgKGlzbmFuICh4KSkgDQorICAgIHJldHVybiB4Ow0KKw0KKyAgaWYgKHggPCAxLjApDQorICAgIHsNCisgICAgICBlcnJubyA9IEVET007DQorICAgICAgcmV0dXJuIG5hbigiIik7DQorICAgIH0NCisNCisgIGlmICh4ID4gMHgxcDMyKQ0KKyAgICAvKiAgQXZvaWQgb3ZlcmZsb3cgKGFuZCB1bm5lY2Vzc2FyeSBjYWxjdWxhdGlvbiB3aGVuDQorICAgICAgICBzcXJ0ICh4ICogeCAtIDEpID09IHgpLiBHQ0Mgb3B0aW1pemVzIGJ5IHJlcGxhY2luZw0KKyAgICAgICAgdGhlIGxvbmcgZG91YmxlIE1fTE4yIGNvbnN0IHdpdGggYSBmbGRsbjIgaW5zbi4gICovIA0KKyAgICByZXR1cm4gX19mYXN0X2xvZyAoeCkgKyA2LjkzMTQ3MTgwNTU5OTQ1MzA5NDE3MjNFLTFMOw0KKw0KKyAgLyogU2luY2UgIHggPj0gMSwgdGhlIGFyZyB0byBsb2cgd2lsbCBhbHdheXMgYmUgZ3JlYXRlciB0aGFuDQorICAgICB0aGUgZnlsMnhwMSBsaW1pdCAoYXBwcm94IDAuMjkpIHNvIGp1c3QgdXNlIGxvZ2wuICovIA0KKyAgcmV0dXJuIF9fZmFzdF9sb2cgKHggKyBfX2Zhc3Rfc3FydCgoeCArIDEuMCkgKiAoeCAtIDEuMCkpKTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2Fjb3NoZi5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2Fjb3NoZi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQyYzBmMjIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvYWNvc2hmLmMKQEAgLTAsMCArMSwyNSBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8ZXJybm8uaD4NCisjaW5jbHVkZSAiZmFzdG1hdGguaCINCisNCisvKiBhY29zaCh4KSA9IGxvZyAoeCArIHNxcnQoeCAqIHggLSAxKSkgKi8NCitmbG9hdCBhY29zaGYgKGZsb2F0IHgpDQorew0KKyAgaWYgKGlzbmFuICh4KSkgDQorICAgIHJldHVybiB4Ow0KKyAgaWYgKHggPCAxLjBmKQ0KKyAgICB7DQorICAgICAgZXJybm8gPSBFRE9NOw0KKyAgICAgIHJldHVybiBuYW4oIiIpOw0KKyAgICB9DQorDQorIGlmICh4ID4gMHgxcDMyZikNCisgICAgLyogIEF2b2lkIG92ZXJmbG93IChhbmQgdW5uZWNlc3NhcnkgY2FsY3VsYXRpb24gd2hlbg0KKyAgICAgICAgc3FydCAoeCAqIHggLSAxKSA9PSB4KS4gR0NDIG9wdGltaXplcyBieSByZXBsYWNpbmcNCisgICAgICAgIHRoZSBsb25nIGRvdWJsZSBNX0xOMiBjb25zdCB3aXRoIGEgZmxkbG4yIGluc24uICAqLyANCisgICAgcmV0dXJuIF9fZmFzdF9sb2cgKHgpICsgNi45MzE0NzE4MDU1OTk0NTMwOTQxNzIzRS0xTDsNCisNCisgIC8qIFNpbmNlICB4ID49IDEsIHRoZSBhcmcgdG8gbG9nIHdpbGwgYWx3YXlzIGJlIGdyZWF0ZXIgdGhhbg0KKyAgICAgdGhlIGZ5bDJ4cDEgbGltaXQgKGFwcHJveCAwLjI5KSBzbyBqdXN0IHVzZSBsb2dsLiAqLyANCisgIHJldHVybiBfX2Zhc3RfbG9nICh4ICsgX19mYXN0X3NxcnQoKHggKyAxLjApICogKHggLSAxLjApKSk7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9hY29zaGwuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9hY29zaGwuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YTAwNWJlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2Fjb3NobC5jCkBAIC0wLDAgKzEsMjcgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGVycm5vLmg+DQorI2luY2x1ZGUgImZhc3RtYXRoLmgiDQorDQorLyogYWNvc2goeCkgPSBsb2cgKHggKyBzcXJ0KHggKiB4IC0gMSkpICovDQorbG9uZyBkb3VibGUgYWNvc2hsIChsb25nIGRvdWJsZSB4KQ0KK3sNCisgIGlmIChpc25hbiAoeCkpIA0KKyAgICByZXR1cm4geDsNCisNCisgIGlmICh4IDwgMS4wTCkNCisgICAgew0KKyAgICAgIGVycm5vID0gRURPTTsNCisgICAgICByZXR1cm4gbmFubCgiIik7DQorICAgIH0NCisgIGlmICh4ID4gMHgxcDMyTCkNCisgICAgLyogQXZvaWQgb3ZlcmZsb3cgKGFuZCB1bm5lY2Vzc2FyeSBjYWxjdWxhdGlvbiB3aGVuDQorICAgICAgIHNxcnQgKHggKiB4IC0gMSkgPT0geCkuDQorICAgICAgIFRoZSBNX0xOMiBkZWZpbmUgZG9lc24ndCBoYXZlIGVub3VnaCBwcmVjaXNvbiBmb3INCisgICAgICAgbG9uZyBkb3VibGUgc28gdXNlIHRoaXMgb25lLiBHQ0Mgb3B0aW1pemVzIGJ5IHJlcGxhY2luZw0KKyAgICAgICB0aGUgY29uc3Qgd2l0aCBhIGZsZGxuMiBpbnNuLiAqLw0KKyAgICByZXR1cm4gX19mYXN0X2xvZ2wgKHgpICsgNi45MzE0NzE4MDU1OTk0NTMwOTQxNzIzRS0xTDsNCisNCisgICAvKiBTaW5jZSAgeCA+PSAxLCB0aGUgYXJnIHRvIGxvZyB3aWxsIGFsd2F5cyBiZSBncmVhdGVyIHRoYW4NCisgICAgICB0aGUgZnlsMnhwMSBsaW1pdCAoYXBwcm94IDAuMjkpIHNvIGp1c3QgdXNlIGxvZ2wuICovIA0KKyAgIHJldHVybiBfX2Zhc3RfbG9nbCAoeCArIF9fZmFzdF9zcXJ0bCgoeCArIDEuMEwpICogKHggLSAxLjBMKSkpOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvYWNvc2wuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9hY29zbC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJhZTYzZjAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvYWNvc2wuYwpAQCAtMCwwICsxLDE1IEBACitsb25nIGRvdWJsZSBhY29zbCAobG9uZyBkb3VibGUgeCkNCit7DQorICBsb25nIGRvdWJsZSByZXM7DQorDQorICAvKiBhY29zbCA9IGF0YW5sIChzcXJ0bCgxIC0geF4yKSAvIHgpICovDQorICBhc20gKAkiZmxkCSUlc3Rcblx0Ig0KKwkiZm11bAklJXN0KDApXG5cdCIJCS8qIHheMiAqLw0KKwkiZmxkMVxuXHQiDQorCSJmc3VicFxuXHQiCQkJLyogMSAtIHheMiAqLw0KKwkiZnNxcnRcblx0IgkJCS8qIHNxcnRsICgxIC0geF4yKSAqLw0KKwkiZnhjaAklJXN0KDEpXG5cdCINCisJImZwYXRhbiINCisJOiAiPXQiIChyZXMpIDogIjAiICh4KSA6ICJzdCgxKSIpOw0KKyAgcmV0dXJuIHJlczsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2FzaW5mLmMgYi9taW5ndy13NjQtY3J0L21hdGgvYXNpbmYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZDRkYWJjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2FzaW5mLmMKQEAgLTAsMCArMSwyMCBAQAorLyoNCisgKiBXcml0dGVuIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIFB1YmxpYyBkb21haW4uDQorICovDQorDQorLyogYXNpbiA9IGF0YW4gKHggLyBzcXJ0KDEgLSB4XjIpKSAqLw0KKw0KK2Zsb2F0IGFzaW5mIChmbG9hdCB4KQ0KK3sNCisgIGZsb2F0IHJlczsNCisNCisgIGFzbSAoCSJmbGQJJSVzdFxuXHQiDQorCSJmbXVsCSUlc3QoMClcblx0IgkJCS8qIHheMiAqLw0KKwkiZmxkMVxuXHQiDQorCSJmc3VicFxuXHQiCQkJCS8qIDEgLSB4XjIgKi8NCisJImZzcXJ0XG5cdCIJCQkJLyogc3FydCAoMSAtIHheMikgKi8NCisJImZwYXRhbiINCisJOiAiPXQiIChyZXMpIDogIjAiICh4KSA6ICJzdCgxKSIpOw0KKyAgcmV0dXJuIHJlczsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2FzaW5oLmMgYi9taW5ndy13NjQtY3J0L21hdGgvYXNpbmguYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYmEwN2ViCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2FzaW5oLmMKQEAgLTAsMCArMSwyOCBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8ZXJybm8uaD4NCisjaW5jbHVkZSAiZmFzdG1hdGguaCINCisNCisgLyogYXNpbmgoeCkgPSBjb3B5c2lnbihsb2coZmFicyh4KSArIHNxcnQoeCAqIHggKyAxLjApKSwgeCkgKi8NCitkb3VibGUgYXNpbmgoZG91YmxlIHgpDQorew0KKyAgZG91YmxlIHo7DQorICBpZiAoIWlzZmluaXRlICh4KSkNCisgICAgcmV0dXJuIHg7DQorICB6ID0gZmFicyAoeCk7DQorDQorICAvKiBBdm9pZCBzZXR0aW5nIEZQVSB1bmRlcmZsb3cgZXhjZXB0aW9uIGZsYWcgaW4geCAqIHguICovDQorI2lmIDANCisgIGlmICggeiA8IDB4MXAtMzIpDQorICAgIHJldHVybiB4Ow0KKyNlbmRpZg0KKw0KKyAgLyogVXNlIGxvZzFwIHRvIGF2b2lkIGNhbmNlbGxhdGlvbiB3aXRoIHNtYWxsIHguIFB1dA0KKyAgICAgeCAqIHggaW4gZGVub20sIHNvIG92ZXJmbG93IGlzIGhhcm1sZXNzLiANCisgICAgIGFzaW5oKHgpID0gbG9nMXAgKHggKyBzcXJ0ICh4ICogeCArIDEuMCkgLSAxLjApDQorICAgICAgICAgICAgICA9IGxvZzFwICh4ICsgeCAqIHggLyAoc3FydCAoeCAqIHggKyAxLjApICsgMS4wKSkgICovDQorDQorICB6ID0gX19mYXN0X2xvZzFwICh6ICsgeiAqIHogLyAoX19mYXN0X3NxcnQgKHogKiB6ICsgMS4wKSArIDEuMCkpOw0KKw0KKyAgcmV0dXJuICggeCA+IDAuMCA/IHogOiAteik7DQorfQ0KKw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9hc2luaGYuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9hc2luaGYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41ZjY1Njc5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2FzaW5oZi5jCkBAIC0wLDAgKzEsMjggQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGVycm5vLmg+DQorI2luY2x1ZGUgImZhc3RtYXRoLmgiDQorDQorIC8qIGFzaW5oKHgpID0gY29weXNpZ24obG9nKGZhYnMoeCkgKyBzcXJ0KHggKiB4ICsgMS4wKSksIHgpICovDQorZmxvYXQgYXNpbmhmKGZsb2F0IHgpDQorew0KKyAgZmxvYXQgejsNCisgIGlmICghaXNmaW5pdGUgKHgpKQ0KKyAgICByZXR1cm4geDsNCisgIHogPSBmYWJzZiAoeCk7DQorDQorICAvKiBBdm9pZCBzZXR0aW5nIEZQVSB1bmRlcmZsb3cgZXhjZXB0aW9uIGZsYWcgaW4geCAqIHguICovDQorI2lmIDANCisgIGlmICggeiA8IDB4MXAtMzIpDQorICAgIHJldHVybiB4Ow0KKyNlbmRpZg0KKw0KKw0KKyAgLyogVXNlIGxvZzFwIHRvIGF2b2lkIGNhbmNlbGxhdGlvbiB3aXRoIHNtYWxsIHguIFB1dA0KKyAgICAgeCAqIHggaW4gZGVub20sIHNvIG92ZXJmbG93IGlzIGhhcm1sZXNzLiANCisgICAgIGFzaW5oKHgpID0gbG9nMXAgKHggKyBzcXJ0ICh4ICogeCArIDEuMCkgLSAxLjApDQorICAgICAgICAgICAgICA9IGxvZzFwICh4ICsgeCAqIHggLyAoc3FydCAoeCAqIHggKyAxLjApICsgMS4wKSkgICovDQorDQorICB6ID0gX19mYXN0X2xvZzFwICh6ICsgeiAqIHogLyAoX19mYXN0X3NxcnQgKHogKiB6ICsgMS4wKSArIDEuMCkpOw0KKw0KKyAgcmV0dXJuICggeCA+IDAuMCA/IHogOiAteik7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9hc2luaGwuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9hc2luaGwuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hZmYwNzZhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2FzaW5obC5jCkBAIC0wLDAgKzEsMjggQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGVycm5vLmg+DQorI2luY2x1ZGUgImZhc3RtYXRoLmgiDQorDQorIC8qIGFzaW5oKHgpID0gY29weXNpZ24obG9nKGZhYnMoeCkgKyBzcXJ0KHggKiB4ICsgMS4wKSksIHgpICovDQorbG9uZyBkb3VibGUgYXNpbmhsKGxvbmcgZG91YmxlIHgpDQorew0KKyAgbG9uZyBkb3VibGUgejsNCisgIGlmICghaXNmaW5pdGUgKHgpKQ0KKyAgICByZXR1cm4geDsNCisNCisgIHogPSBmYWJzbCAoeCk7DQorDQorICAvKiBBdm9pZCBzZXR0aW5nIEZQVSB1bmRlcmZsb3cgZXhjZXB0aW9uIGZsYWcgaW4geCAqIHguICovDQorI2lmIDANCisgIGlmICggeiA8IDB4MXAtMzIpDQorICAgIHJldHVybiB4Ow0KKyNlbmRpZg0KKw0KKyAgLyogVXNlIGxvZzFwIHRvIGF2b2lkIGNhbmNlbGxhdGlvbiB3aXRoIHNtYWxsIHguIFB1dA0KKyAgICAgeCAqIHggaW4gZGVub20sIHNvIG92ZXJmbG93IGlzIGhhcm1sZXNzLiANCisgICAgIGFzaW5oKHgpID0gbG9nMXAgKHggKyBzcXJ0ICh4ICogeCArIDEuMCkgLSAxLjApDQorICAgICAgICAgICAgICA9IGxvZzFwICh4ICsgeCAqIHggLyAoc3FydCAoeCAqIHggKyAxLjApICsgMS4wKSkgICovDQorDQorICB6ID0gX19mYXN0X2xvZzFwbCAoeiArIHogKiB6IC8gKF9fZmFzdF9zcXJ0bCAoeiAqIHogKyAxLjBMKSArIDEuMEwpKTsNCisNCisgIHJldHVybiAoIHggPiAwLjAgPyB6IDogLXopOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvYXNpbmwuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9hc2lubC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkxNmVmZTQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvYXNpbmwuYwpAQCAtMCwwICsxLDIxIEBACisvKg0KKyAqIFdyaXR0ZW4gYnkgSi5ULiBDb25rbGluIDxqdGNAbmV0YnNkLm9yZz4uDQorICogUHVibGljIGRvbWFpbi4NCisgKiBBZGFwdGVkIGZvciBsb25nIGRvdWJsZSB0eXBlIGJ5IERhbm55IFNtaXRoIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4uDQorICovDQorDQorLyogYXNpbiA9IGF0YW4gKHggLyBzcXJ0KDEgLSB4XjIpKSAqLw0KKw0KK2xvbmcgZG91YmxlIGFzaW5sIChsb25nIGRvdWJsZSB4KQ0KK3sNCisgIGxvbmcgZG91YmxlIHJlczsNCisNCisgIGFzbSAoCSJmbGQJJSVzdFxuXHQiDQorCSJmbXVsCSUlc3QoMClcblx0IgkJCS8qIHheMiAqLw0KKwkiZmxkMVxuXHQiDQorCSJmc3VicFxuXHQiCQkJCS8qIDEgLSB4XjIgKi8NCisJImZzcXJ0XG5cdCIJCQkJLyogc3FydCAoMSAtIHheMikgKi8NCisJImZwYXRhbiINCisJOiAiPXQiIChyZXMpIDogIjAiICh4KSA6ICJzdCgxKSIpOw0KKyAgcmV0dXJuIHJlczsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2F0YW4yZi5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2F0YW4yZi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMzMWY0M2IKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvYXRhbjJmLmMKQEAgLTAsMCArMSwxNSBAQAorLyoNCisgKiBXcml0dGVuIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIFB1YmxpYyBkb21haW4uDQorICoNCisgKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKw0KK2Zsb2F0DQorYXRhbjJmIChmbG9hdCB5LCBmbG9hdCB4KQ0KK3sNCisgIGZsb2F0IHJlczsNCisgIGFzbSAoImZwYXRhbiIgOiAiPXQiIChyZXMpIDogInUiICh5KSwgIjAiICh4KSA6ICJzdCgxKSIpOw0KKyAgcmV0dXJuIHJlczsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2F0YW4ybC5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2F0YW4ybC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk5NjdiZjUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvYXRhbjJsLmMKQEAgLTAsMCArMSw3IEBACitsb25nIGRvdWJsZQ0KK2F0YW4ybCAobG9uZyBkb3VibGUgeSwgbG9uZyBkb3VibGUgeCkNCit7DQorICBsb25nIGRvdWJsZSByZXM7DQorICBhc20gKCJmcGF0YW4iIDogIj10IiAocmVzKSA6ICJ1IiAoeSksICIwIiAoeCkgOiAic3QoMSkiKTsNCisgIHJldHVybiByZXM7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9hdGFuZi5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2F0YW5mLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTU0OTVmYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9hdGFuZi5jCkBAIC0wLDAgKzEsMTcgQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqDQorICovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisNCitmbG9hdA0KK2F0YW5mIChmbG9hdCB4KQ0KK3sNCisgIGZsb2F0IHJlczsNCisNCisgIGFzbSAoImZsZDFcblx0Ig0KKyAgICAgICAiZnBhdGFuIiA6ICI9dCIgKHJlcykgOiAiMCIgKHgpKTsNCisgIHJldHVybiByZXM7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9hdGFuaC5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2F0YW5oLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTdmODhlMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9hdGFuaC5jCkBAIC0wLDAgKzEsMzEgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGVycm5vLmg+DQorI2luY2x1ZGUgImZhc3RtYXRoLmgiDQorDQorLyogYXRhbmggKHgpID0gMC41ICogbG9nICgoMS4wICsgeCkvKDEuMCAtIHgpKSAqLw0KKw0KK2RvdWJsZSBhdGFuaChkb3VibGUgeCkNCit7DQorICBkb3VibGUgejsNCisgIGlmIChpc25hbiAoeCkpDQorICAgIHJldHVybiB4Ow0KKyAgeiA9IGZhYnMgKHgpOw0KKyAgaWYgKHogPT0gMS4wKQ0KKyAgICB7DQorICAgICAgZXJybm8gID0gRVJBTkdFOw0KKyAgICAgIHJldHVybiAoeCA+IDAgPyBJTkZJTklUWSA6IC1JTkZJTklUWSk7DQorICAgIH0NCisgIGlmICh6ID4gMS4wKQ0KKyAgICB7DQorICAgICAgZXJybm8gPSBFRE9NOw0KKyAgICAgIHJldHVybiBuYW4oIiIpOw0KKyAgICB9DQorICAvKiBSZWFycmFuZ2UgZm9ybXVsYSB0byBhdm9pZCBwcmVjaXNpb24gbG9zcyBmb3Igc21hbGwgeC4NCisNCisgIGF0YW5oKHgpID0gMC41ICogbG9nICgoMS4wICsgeCkvKDEuMCAtIHgpKQ0KKwkgICA9IDAuNSAqIGxvZzFwICgoMS4wICsgeCkvKDEuMCAtIHgpIC0gMS4wKQ0KKyAgICAgICAgICAgPSAwLjUgKiBsb2cxcCAoKDEuMCArIHggLSAxLjAgKyB4KSAvKDEuMCAtIHgpKSANCisgICAgICAgICAgID0gMC41ICogbG9nMXAgKCgyLjAgKiB4ICkgLyAoMS4wIC0geCkpICAqLw0KKyAgeiA9IDAuNSAqIF9fZmFzdF9sb2cxcCAoKHogKyB6KSAvICgxLjAgLSB6KSk7DQorICByZXR1cm4geCA+PSAwID8geiA6IC16Ow0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvYXRhbmhmLmMgYi9taW5ndy13NjQtY3J0L21hdGgvYXRhbmhmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmEzNDYxZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9hdGFuaGYuYwpAQCAtMCwwICsxLDMwIEBACisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxlcnJuby5oPg0KKyNpbmNsdWRlICJmYXN0bWF0aC5oIg0KKw0KKy8qIGF0YW5oICh4KSA9IDAuNSAqIGxvZyAoKDEuMCArIHgpLygxLjAgLSB4KSkgKi8NCitmbG9hdCBhdGFuaGYgKGZsb2F0IHgpDQorew0KKyAgZmxvYXQgejsNCisgIGlmIChpc25hbiAoeCkpDQorICAgIHJldHVybiB4Ow0KKyAgeiA9IGZhYnNmICh4KTsNCisgIGlmICh6ID09IDEuMCkNCisgICAgew0KKyAgICAgIGVycm5vICA9IEVSQU5HRTsNCisgICAgICByZXR1cm4gKHggPiAwID8gSU5GSU5JVFkgOiAtSU5GSU5JVFkpOw0KKyAgICB9DQorICBpZiAoIHogPiAxLjApDQorICAgIHsNCisgICAgICBlcnJubyA9IEVET007DQorICAgICAgcmV0dXJuIG5hbmYoIiIpOw0KKyAgICB9DQorICAvKiBSZWFycmFuZ2UgZm9ybXVsYSB0byBhdm9pZCBwcmVjaXNpb24gbG9zcyBmb3Igc21hbGwgeC4NCisNCisgIGF0YW5oKHgpID0gMC41ICogbG9nICgoMS4wICsgeCkvKDEuMCAtIHgpKQ0KKwkgICA9IDAuNSAqIGxvZzFwICgoMS4wICsgeCkvKDEuMCAtIHgpIC0gMS4wKQ0KKyAgICAgICAgICAgPSAwLjUgKiBsb2cxcCAoKDEuMCArIHggLSAxLjAgKyB4KSAvKDEuMCAtIHgpKSANCisgICAgICAgICAgID0gMC41ICogbG9nMXAgKCgyLjAgKiB4ICkgLyAoMS4wIC0geCkpICAqLw0KKyAgeiA9IDAuNSAqIF9fZmFzdF9sb2cxcCAoKHogKyB6KSAvICgxLjAgLSB6KSk7DQorICByZXR1cm4geCA+PSAwID8geiA6IC16Ow0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvYXRhbmhsLmMgYi9taW5ndy13NjQtY3J0L21hdGgvYXRhbmhsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTYzNTM3NAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9hdGFuaGwuYwpAQCAtMCwwICsxLDI5IEBACisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxlcnJuby5oPg0KKyNpbmNsdWRlICJmYXN0bWF0aC5oIg0KKw0KKy8qIGF0YW5oICh4KSA9IDAuNSAqIGxvZyAoKDEuMCArIHgpLygxLjAgLSB4KSkgKi8NCitsb25nIGRvdWJsZSBhdGFuaGwgKGxvbmcgZG91YmxlIHgpDQorew0KKyAgbG9uZyBkb3VibGUgejsNCisgIGlmIChpc25hbiAoeCkpDQorICAgIHJldHVybiB4Ow0KKyAgeiA9IGZhYnNsICh4KTsNCisgIGlmICh6ID09IDEuMEwpDQorICAgIHsNCisgICAgICBlcnJubyAgPSBFUkFOR0U7DQorICAgICAgcmV0dXJuICh4ID4gMCA/IElORklOSVRZIDogLUlORklOSVRZKTsNCisgICAgfQ0KKyAgaWYgKCB6ID4gMS4wTCkNCisgICAgew0KKyAgICAgIGVycm5vID0gRURPTTsNCisgICAgICByZXR1cm4gbmFubCgiIik7DQorICAgIH0NCisgIC8qIFJlYXJyYW5nZSBmb3JtdWxhIHRvIGF2b2lkIHByZWNpc2lvbiBsb3NzIGZvciBzbWFsbCB4Lg0KKyAgYXRhbmgoeCkgPSAwLjUgKiBsb2cgKCgxLjAgKyB4KS8oMS4wIC0geCkpDQorIAkgICA9IDAuNSAqIGxvZzFwICgoMS4wICsgeCkvKDEuMCAtIHgpIC0gMS4wKQ0KKyAgICAgICAgICAgPSAwLjUgKiBsb2cxcCAoKDEuMCArIHggLSAxLjAgKyB4KSAvKDEuMCAtIHgpKSANCisgICAgICAgICAgID0gMC41ICogbG9nMXAgKCgyLjAgKiB4ICkgLyAoMS4wIC0geCkpICAqLw0KKyAgeiA9IDAuNUwgKiBfX2Zhc3RfbG9nMXBsICgoeiArIHopIC8gKDEuMEwgLSB6KSk7DQorICByZXR1cm4geCA+PSAwID8geiA6IC16Ow0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvYXRhbmwuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9hdGFubC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRlNWQwYWQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvYXRhbmwuYwpAQCAtMCwwICsxLDEwIEBACitsb25nIGRvdWJsZQ0KK2F0YW5sIChsb25nIGRvdWJsZSB4KQ0KK3sNCisgIGxvbmcgZG91YmxlIHJlczsNCisNCisgIGFzbSAoImZsZDFcblx0Ig0KKyAgICAgICAiZnBhdGFuIg0KKyAgICAgICA6ICI9dCIgKHJlcykgOiAiMCIgKHgpKTsNCisgIHJldHVybiByZXM7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9jYnJ0LmMgYi9taW5ndy13NjQtY3J0L21hdGgvY2JydC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRlODA4YjMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvY2JydC5jCkBAIC0wLDAgKzEsMTEwIEBACisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlICJjZXBoZXNfbWNvbmYuaCINCisNCitzdGF0aWMgY29uc3QgZG91YmxlIENCUlQyICA9IDEuMjU5OTIxMDQ5ODk0ODczMTY0NzY3MjsNCitzdGF0aWMgY29uc3QgZG91YmxlIENCUlQ0ICA9IDEuNTg3NDAxMDUxOTY4MTk5NDc0NzUxNzsNCitzdGF0aWMgY29uc3QgZG91YmxlIENCUlQySSA9IDAuNzkzNzAwNTI1OTg0MDk5NzM3Mzc1ODU7DQorc3RhdGljIGNvbnN0IGRvdWJsZSBDQlJUNEkgPSAwLjYyOTk2MDUyNDk0NzQzNjU4MjM4MzYxOw0KKw0KKyNpZm5kZWYgX19NSU5HVzMyX18NCisjaWZkZWYgQU5TSVBST1QNCitleHRlcm4gZG91YmxlIGZyZXhwICggZG91YmxlLCBpbnQgKiApOw0KK2V4dGVybiBkb3VibGUgbGRleHAgKCBkb3VibGUsIGludCApOw0KK2V4dGVybiBpbnQgaXNuYW4gKCBkb3VibGUgKTsNCitleHRlcm4gaW50IGlzZmluaXRlICggZG91YmxlICk7DQorI2Vsc2UNCitkb3VibGUgZnJleHAoKSwgbGRleHAoKTsNCitpbnQgaXNuYW4oKSwgaXNmaW5pdGUoKTsNCisjZW5kaWYNCisjZW5kaWYNCisNCitkb3VibGUgY2JydCh4KQ0KK2RvdWJsZSB4Ow0KK3sNCitpbnQgZSwgcmVtLCBzaWduOw0KK2RvdWJsZSB6Ow0KKw0KKyNpZmRlZiBfX01JTkdXMzJfXw0KK2lmICghaXNmaW5pdGUgKHgpIHx8IHggPT0gMCApDQorICByZXR1cm4geDsNCisjZWxzZQ0KKw0KKyNpZmRlZiBOQU5TDQoraWYoIGlzbmFuKHgpICkNCisgIHJldHVybiB4Ow0KKyNlbmRpZg0KKyNpZmRlZiBJTkZJTklUSUVTDQoraWYoICFpc2Zpbml0ZSh4KSApDQorICByZXR1cm4geDsNCisjZW5kaWYNCitpZiggeCA9PSAwICkNCisJcmV0dXJuKCB4ICk7DQorDQorI2VuZGlmIC8qIF9fTUlOR1czMl9fICovDQorDQoraWYoIHggPiAwICkNCisJc2lnbiA9IDE7DQorZWxzZQ0KKwl7DQorCXNpZ24gPSAtMTsNCisJeCA9IC14Ow0KKwl9DQorDQoreiA9IHg7DQorLyogZXh0cmFjdCBwb3dlciBvZiAyLCBsZWF2aW5nDQorICogbWFudGlzc2EgYmV0d2VlbiAwLjUgYW5kIDENCisgKi8NCit4ID0gZnJleHAoIHgsICZlICk7DQorDQorLyogQXBwcm94aW1hdGUgY3ViZSByb290IG9mIG51bWJlciBiZXR3ZWVuIC41IGFuZCAxLA0KKyAqIHBlYWsgcmVsYXRpdmUgZXJyb3IgPSA5LjJlLTYNCisgKi8NCit4ID0gKCgoLTEuMzQ2NjExMDQ3MzM1OTUyMDY1NTA1M2UtMSAgKiB4DQorICAgICAgKyA1LjQ2NjQ2MDEzNjYzOTU1MjQ1MDM0NDBlLTEpICogeA0KKyAgICAgIC0gOS41NDM4MjI0NzcxNTA5NDQ2NTI1MDQzZS0xKSAqIHgNCisgICAgICArIDEuMTM5OTk4MzM1NDcxNzI5MzI3MzczOGUwICkgKiB4DQorICAgICAgKyA0LjAyMzg5Nzk1NjQ1NDQ3NTIxMjY5MjRlLTE7DQorDQorLyogZXhwb25lbnQgZGl2aWRlZCBieSAzICovDQoraWYoIGUgPj0gMCApDQorCXsNCisJcmVtID0gZTsNCisJZSAvPSAzOw0KKwlyZW0gLT0gMyplOw0KKwlpZiggcmVtID09IDEgKQ0KKwkJeCAqPSBDQlJUMjsNCisJZWxzZSBpZiggcmVtID09IDIgKQ0KKwkJeCAqPSBDQlJUNDsNCisJfQ0KKw0KKw0KKy8qIGFyZ3VtZW50IGxlc3MgdGhhbiAxICovDQorDQorZWxzZQ0KKwl7DQorCWUgPSAtZTsNCisJcmVtID0gZTsNCisJZSAvPSAzOw0KKwlyZW0gLT0gMyplOw0KKwlpZiggcmVtID09IDEgKQ0KKwkJeCAqPSBDQlJUMkk7DQorCWVsc2UgaWYoIHJlbSA9PSAyICkNCisJCXggKj0gQ0JSVDRJOw0KKwllID0gLWU7DQorCX0NCisNCisvKiBtdWx0aXBseSBieSBwb3dlciBvZiAyICovDQoreCA9IGxkZXhwKCB4LCBlICk7DQorDQorLyogTmV3dG9uIGl0ZXJhdGlvbiAqLw0KK3ggLT0gKCB4IC0gKHovKHgqeCkpICkqMC4zMzMzMzMzMzMzMzMzMzMzMzMzMzsNCisjaWZkZWYgREVDDQoreCAtPSAoIHggLSAoei8oeCp4KSkgKS8zLjA7DQorI2Vsc2UNCit4IC09ICggeCAtICh6Lyh4KngpKSApKjAuMzMzMzMzMzMzMzMzMzMzMzMzMzM7DQorI2VuZGlmDQorDQoraWYoIHNpZ24gPCAwICkNCisJeCA9IC14Ow0KK3JldHVybih4KTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2NicnRmLmMgYi9taW5ndy13NjQtY3J0L21hdGgvY2JydGYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NTQwODllCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2NicnRmLmMKQEAgLTAsMCArMSw3MyBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSAiY2VwaGVzX21jb25mLmgiDQorDQorc3RhdGljIGNvbnN0IGZsb2F0IENCUlQyID0gMS4yNTk5MjEwNDk4OTQ4NzMxNjQ3NzsNCitzdGF0aWMgY29uc3QgZmxvYXQgQ0JSVDQgPSAxLjU4NzQwMTA1MTk2ODE5OTQ3NDc1Ow0KKw0KK2Zsb2F0IGNicnRmIChmbG9hdCB4KQ0KK3sNCitpbnQgZSwgcmVtLCBzaWduOw0KK2Zsb2F0IHo7DQoraWYgKCFpc2Zpbml0ZSAoeCkgfHwgeCA9PSAwLjBGICkNCisgIHJldHVybiB4Ow0KK2lmKCB4ID4gMCApDQorCXNpZ24gPSAxOw0KK2Vsc2UNCisJew0KKwlzaWduID0gLTE7DQorCXggPSAteDsNCisJfQ0KKw0KK3ogPSB4Ow0KKy8qIGV4dHJhY3QgcG93ZXIgb2YgMiwgbGVhdmluZw0KKyAqIG1hbnRpc3NhIGJldHdlZW4gMC41IGFuZCAxDQorICovDQoreCA9IGZyZXhwZiggeCwgJmUgKTsNCisNCisvKiBBcHByb3hpbWF0ZSBjdWJlIHJvb3Qgb2YgbnVtYmVyIGJldHdlZW4gLjUgYW5kIDEsDQorICogcGVhayByZWxhdGl2ZSBlcnJvciA9IDkuMmUtNg0KKyAqLw0KK3ggPSAoKCgtMC4xMzQ2NjExMDQ3MzM1OTUyMDY1NTA1MyAgKiB4DQorICAgICAgKyAwLjU0NjY0NjAxMzY2Mzk1NTI0NTAzNDQwICkgKiB4DQorICAgICAgLSAwLjk1NDM4MjI0NzcxNTA5NDQ2NTI1MDQzICkgKiB4DQorICAgICAgKyAxLjEzOTk5ODMzNTQ3MTcyOTMyNzM3MzggICkgKiB4DQorICAgICAgKyAwLjQwMjM4OTc5NTY0NTQ0NzUyMTI2OTI0Ow0KKw0KKy8qIGV4cG9uZW50IGRpdmlkZWQgYnkgMyAqLw0KK2lmKCBlID49IDAgKQ0KKwl7DQorCXJlbSA9IGU7DQorCWUgLz0gMzsNCisJcmVtIC09IDMqZTsNCisJaWYoIHJlbSA9PSAxICkNCisJCXggKj0gQ0JSVDI7DQorCWVsc2UgaWYoIHJlbSA9PSAyICkNCisJCXggKj0gQ0JSVDQ7DQorCX0NCisNCisNCisvKiBhcmd1bWVudCBsZXNzIHRoYW4gMSAqLw0KKw0KK2Vsc2UNCisJew0KKwllID0gLWU7DQorCXJlbSA9IGU7DQorCWUgLz0gMzsNCisJcmVtIC09IDMqZTsNCisJaWYoIHJlbSA9PSAxICkNCisJCXggLz0gQ0JSVDI7DQorCWVsc2UgaWYoIHJlbSA9PSAyICkNCisJCXggLz0gQ0JSVDQ7DQorCWUgPSAtZTsNCisJfQ0KKw0KKy8qIG11bHRpcGx5IGJ5IHBvd2VyIG9mIDIgKi8NCit4ID0gbGRleHBmKCB4LCBlICk7DQorDQorLyogTmV3dG9uIGl0ZXJhdGlvbiAqLw0KK3ggLT0gKCB4IC0gKHovKHgqeCkpICkgKiAwLjMzMzMzMzMzMzMzMzsNCisNCitpZiggc2lnbiA8IDAgKQ0KKwl4ID0gLXg7DQorcmV0dXJuKHgpOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvY2JydGwuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9jYnJ0bC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM3NzdlYzgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvY2JydGwuYwpAQCAtMCwwICsxLDc2IEBACisjaW5jbHVkZSAiY2VwaGVzX21jb25mLmgiDQorDQorc3RhdGljIGNvbnN0IGxvbmcgZG91YmxlIENCUlQyICA9IDEuMjU5OTIxMDQ5ODk0ODczMTY0NzY3Mkw7DQorc3RhdGljIGNvbnN0IGxvbmcgZG91YmxlIENCUlQ0ICA9IDEuNTg3NDAxMDUxOTY4MTk5NDc0NzUxN0w7DQorc3RhdGljIGNvbnN0IGxvbmcgZG91YmxlIENCUlQySSA9IDAuNzkzNzAwNTI1OTg0MDk5NzM3Mzc1ODVMOw0KK3N0YXRpYyBjb25zdCBsb25nIGRvdWJsZSBDQlJUNEkgPSAwLjYyOTk2MDUyNDk0NzQzNjU4MjM4MzYxTDsNCisNCitsb25nIGRvdWJsZSBjYnJ0bCh4KQ0KK2xvbmcgZG91YmxlIHg7DQorew0KK2ludCBlLCByZW0sIHNpZ247DQorbG9uZyBkb3VibGUgejsNCisNCitpZiAoIWlzZmluaXRlICh4KSB8fCB4ID09IDAuMEwpDQorCXJldHVybih4KTsNCisNCitpZiggeCA+IDAgKQ0KKwlzaWduID0gMTsNCitlbHNlDQorCXsNCisJc2lnbiA9IC0xOw0KKwl4ID0gLXg7DQorCX0NCisNCit6ID0geDsNCisvKiBleHRyYWN0IHBvd2VyIG9mIDIsIGxlYXZpbmcNCisgKiBtYW50aXNzYSBiZXR3ZWVuIDAuNSBhbmQgMQ0KKyAqLw0KK3ggPSBmcmV4cGwoIHgsICZlICk7DQorDQorLyogQXBwcm94aW1hdGUgY3ViZSByb290IG9mIG51bWJlciBiZXR3ZWVuIC41IGFuZCAxLA0KKyAqIHBlYWsgcmVsYXRpdmUgZXJyb3IgPSAxLjJlLTYNCisgKi8NCit4ID0gKCgoKCAxLjM1ODQ0NjQzNDA5MjA5MDA1Mjk3MzRlLTFMICogeA0KKyAgICAgICAtIDYuMzk4NjkxNzIyMDQ1NzUzODQwMjMxOGUtMUwpICogeA0KKyAgICAgICArIDEuMjg3NTU1MTY3MDMxODc1MTUzODA1NWUwTCkgKiB4DQorICAgICAgIC0gMS40ODk3MDgzMzkxMzU3Mjg0OTU3ODkxZTBMKSAqIHgNCisgICAgICAgKyAxLjMzMDQ5NjEyMzYwMTM2NDcwOTI1MjFlMEwpICogeA0KKyAgICAgICArIDMuNzU2ODI4MDgyNTk1ODkxMjM5MTI0M2UtMUw7DQorDQorLyogZXhwb25lbnQgZGl2aWRlZCBieSAzICovDQoraWYoIGUgPj0gMCApDQorCXsNCisJcmVtID0gZTsNCisJZSAvPSAzOw0KKwlyZW0gLT0gMyplOw0KKwlpZiggcmVtID09IDEgKQ0KKwkJeCAqPSBDQlJUMjsNCisJZWxzZSBpZiggcmVtID09IDIgKQ0KKwkJeCAqPSBDQlJUNDsNCisJfQ0KK2Vsc2UNCisJeyAvKiBhcmd1bWVudCBsZXNzIHRoYW4gMSAqLw0KKwllID0gLWU7DQorCXJlbSA9IGU7DQorCWUgLz0gMzsNCisJcmVtIC09IDMqZTsNCisJaWYoIHJlbSA9PSAxICkNCisJCXggKj0gQ0JSVDJJOw0KKwllbHNlIGlmKCByZW0gPT0gMiApDQorCQl4ICo9IENCUlQ0STsNCisJZSA9IC1lOw0KKwl9DQorDQorLyogbXVsdGlwbHkgYnkgcG93ZXIgb2YgMiAqLw0KK3ggPSBsZGV4cGwoIHgsIGUgKTsNCisNCisvKiBOZXd0b24gaXRlcmF0aW9uICovDQorDQoreCAtPSAoIHggLSAoei8oeCp4KSkgKSowLjMzMzMzMzMzMzMzMzMzMzMzMzMzMzNMOw0KK3ggLT0gKCB4IC0gKHovKHgqeCkpICkqMC4zMzMzMzMzMzMzMzMzMzMzMzMzMzMzTDsNCisNCitpZiggc2lnbiA8IDAgKQ0KKwl4ID0gLXg7DQorcmV0dXJuKHgpOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvY2VpbGYuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9jZWlsZi5TCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE0NTU5ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvY2VpbGYuUwpAQCAtMCwwICsxLDI4IEBACisJLmZpbGUJImNlaWxmLlMiDQorCS5jb2RlNjQNCisJLnRleHQNCisJLmFsaWduIDQNCisuZ2xvYmwgX2NlaWxmDQorCS5kZWYJX2NlaWxmOwkuc2NsCTI7CS50eXBlCTMyOwkuZW5kZWYNCitfY2VpbGY6DQorCW1vdnEgJXhtbTAsOCglcnNwKQ0KKwlmbGRzCTgoJXJzcCkNCisJc3VicQkkMTYsJXJzcA0KKw0KKwlmc3Rjdwk4KCVyc3ApCQkJLyogc3RvcmUgZnB1IGNvbnRyb2wgd29yZCAqLw0KKw0KKwkvKiBXZSB1c2UgaGVyZSAlZWR4IGFsdGhvdWdoIG9ubHkgdGhlIGxvdyAxIGJpdHMgYXJlIGRlZmluZWQuDQorCSAgIEJ1dCBub25lIG9mIHRoZSBvcGVyYXRpb25zIHNob3VsZCBjYXJlIGFuZCB0aGV5IGFyZSBmYXN0ZXINCisJICAgdGhhbiB0aGUgMTYgYml0IG9wZXJhdGlvbnMuICAqLw0KKwltb3ZxCSQweDA4MDAsJXJkeAkJLyogcm91bmQgdG93YXJkcyArb28gKi8NCisJb3JxCTgoJXJzcCksJXJkeA0KKwlhbmRxCSQweGZiZmYsJXJkeA0KKwltb3ZxCSVyZHgsKCVyc3ApDQorCWZsZGN3CSglcnNwKQkJCS8qIGxvYWQgbW9kaWZpZWQgY29udHJvbCB3b3JkICovDQorDQorCWZybmRpbnQJCQkJLyogcm91bmQgKi8NCisNCisJZmxkY3cJOCglcnNwKQkJCS8qIHJlc3RvcmUgb3JpZ2luYWwgY29udHJvbCB3b3JkICovDQorDQorCWFkZHEJJDE2LCVyc3ANCisJcmV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2NlaWxsLlMgYi9taW5ndy13NjQtY3J0L21hdGgvY2VpbGwuUwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NTZmMGViCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2NlaWxsLlMKQEAgLTAsMCArMSwyNyBAQAorCS5maWxlCSJjZWlsbC5TIg0KKwkuY29kZTY0DQorCS50ZXh0DQorCS5hbGlnbiA0DQorLmdsb2JsIF9jZWlsbA0KKwkuZGVmCV9jZWlsbDsJLnNjbAkyOwkudHlwZQkzMjsJLmVuZGVmDQorX2NlaWxsOg0KKwlmbGR0CTgoJXJzcCkNCisJc3VicQkkMTYsJXJzcA0KKw0KKwlmc3Rjdwk4KCVyc3ApCQkJLyogc3RvcmUgZnB1IGNvbnRyb2wgd29yZCAqLw0KKw0KKwkvKiBXZSB1c2UgaGVyZSAlcmR4IGFsdGhvdWdoIG9ubHkgdGhlIGxvdyAxIGJpdHMgYXJlIGRlZmluZWQuDQorCSAgIEJ1dCBub25lIG9mIHRoZSBvcGVyYXRpb25zIHNob3VsZCBjYXJlIGFuZCB0aGV5IGFyZSBmYXN0ZXINCisJICAgdGhhbiB0aGUgMTYgYml0IG9wZXJhdGlvbnMuICAqLw0KKwltb3ZxCSQweDA4MDAsJXJkeAkJLyogcm91bmQgdG93YXJkcyArb28gKi8NCisJb3JxCTgoJXJzcCksJXJkeA0KKwlhbmRxCSQweGZiZmYsJXJkeA0KKwltb3ZxCSVyZHgsKCVyc3ApDQorCWZsZGN3CSglcnNwKQkJCS8qIGxvYWQgbW9kaWZpZWQgY29udHJvbCB3b3JkICovDQorDQorCWZybmRpbnQJCQkJLyogcm91bmQgKi8NCisNCisJZmxkY3cJOCglcnNwKQkJCS8qIHJlc3RvcmUgb3JpZ2luYWwgY29udHJvbCB3b3JkICovDQorDQorCWFkZHEJJDE2LCVyc3ANCisJcmV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2NlcGhlc19lbWF0aC5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2NlcGhlc19lbWF0aC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg0NzhiZDkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvY2VwaGVzX2VtYXRoLmMKQEAgLTAsMCArMSwxMjkwIEBACisjaW5jbHVkZSAiY2VwaGVzX2VtYXRoLmgiDQorDQorLyoNCisgKiBUaGUgY29uc3RhbnRzIGFyZSBmb3IgNjQgYml0IHByZWNpc2lvbi4NCisgKi8NCisNCisNCisvKiBNb3ZlIGluIGV4dGVybmFsIGZvcm1hdCBudW1iZXIsDQorICogY29udmVydGluZyBpdCB0byBpbnRlcm5hbCBmb3JtYXQuDQorICovDQordm9pZCBfX2Vtb3ZpKGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqIF9fcmVzdHJpY3RfXyBhLA0KKwkJICBzaG9ydCB1bnNpZ25lZCBpbnQgKiBfX3Jlc3RyaWN0X18gYikNCit7DQorcmVnaXN0ZXIgY29uc3QgdW5zaWduZWQgc2hvcnQgKnA7DQorcmVnaXN0ZXIgdW5zaWduZWQgc2hvcnQgKnE7DQoraW50IGk7DQorDQorcSA9IGI7DQorcCA9IGEgKyAoTkUtMSk7CS8qIHBvaW50IHRvIGxhc3Qgd29yZCBvZiBleHRlcm5hbCBudW1iZXIgKi8NCisvKiBnZXQgdGhlIHNpZ24gYml0ICovDQoraWYoICpwICYgMHg4MDAwICkNCisJKnErKyA9IDB4ZmZmZjsNCitlbHNlDQorCSpxKysgPSAwOw0KKy8qIGdldCB0aGUgZXhwb25lbnQgKi8NCisqcSA9ICpwLS07DQorKnErKyAmPSAweDdmZmY7CS8qIGRlbGV0ZSB0aGUgc2lnbiBiaXQgKi8NCisjaWZkZWYgSU5GSU5JVFkNCitpZiggKCoocS0xKSAmIDB4N2ZmZikgPT0gMHg3ZmZmICkNCisJew0KKyNpZmRlZiBOQU5TDQorCWlmKCBfX2Vpc25hbihhKSApDQorCQl7DQorCQkqcSsrID0gMDsNCisJCWZvciggaT0zOyBpPE5JOyBpKysgKQ0KKwkJCSpxKysgPSAqcC0tOw0KKwkJcmV0dXJuOw0KKwkJfQ0KKyNlbmRpZg0KKwlmb3IoIGk9MjsgaTxOSTsgaSsrICkNCisJCSpxKysgPSAwOw0KKwlyZXR1cm47DQorCX0NCisjZW5kaWYNCisvKiBjbGVhciBoaWdoIGd1YXJkIHdvcmQgKi8NCisqcSsrID0gMDsNCisvKiBtb3ZlIGluIHRoZSBzaWduaWZpY2FuZCAqLw0KK2ZvciggaT0wOyBpPE5FLTE7IGkrKyApDQorCSpxKysgPSAqcC0tOw0KKy8qIGNsZWFyIGxvdyBndWFyZCB3b3JkICovDQorKnEgPSAwOw0KK30NCisNCisNCisvKg0KKzsJQWRkIHNpZ25pZmljYW5kcw0KKzsJeCArIHkgcmVwbGFjZXMgeQ0KKyovDQorDQordm9pZCBfX2VhZGRtKGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqIF9fcmVzdHJpY3RfXyB4LA0KKwkJICBzaG9ydCB1bnNpZ25lZCBpbnQgKiBfX3Jlc3RyaWN0X18geSkNCit7DQorcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyBhOw0KK2ludCBpOw0KK3Vuc2lnbmVkIGludCBjYXJyeTsNCisNCit4ICs9IE5JLTE7DQoreSArPSBOSS0xOw0KK2NhcnJ5ID0gMDsNCitmb3IoIGk9TTsgaTxOSTsgaSsrICkNCisJew0KKwlhID0gKHVuc2lnbmVkIGxvbmcgKSgqeCkgKyAodW5zaWduZWQgbG9uZyApKCp5KSArIGNhcnJ5Ow0KKwlpZiggYSAmIDB4MTAwMDAgKQ0KKwkJY2FycnkgPSAxOw0KKwllbHNlDQorCQljYXJyeSA9IDA7DQorCSp5ID0gKHVuc2lnbmVkIHNob3J0IClhOw0KKwktLXg7DQorCS0teTsNCisJfQ0KK30NCisNCisvKg0KKzsJU3VidHJhY3Qgc2lnbmlmaWNhbmRzDQorOwl5IC0geCByZXBsYWNlcyB5DQorKi8NCisNCit2b2lkIF9fZXN1Ym0oY29uc3Qgc2hvcnQgdW5zaWduZWQgaW50ICogX19yZXN0cmljdF9fIHgsDQorCQkgIHNob3J0IHVuc2lnbmVkIGludCAqIF9fcmVzdHJpY3RfXyB5KQ0KK3sNCit1bnNpZ25lZCBsb25nIGE7DQoraW50IGk7DQordW5zaWduZWQgaW50IGNhcnJ5Ow0KKw0KK3ggKz0gTkktMTsNCit5ICs9IE5JLTE7DQorY2FycnkgPSAwOw0KK2ZvciggaT1NOyBpPE5JOyBpKysgKQ0KKwl7DQorCWEgPSAodW5zaWduZWQgbG9uZyApKCp5KSAtICh1bnNpZ25lZCBsb25nICkoKngpIC0gY2Fycnk7DQorCWlmKCBhICYgMHgxMDAwMCApDQorCQljYXJyeSA9IDE7DQorCWVsc2UNCisJCWNhcnJ5ID0gMDsNCisJKnkgPSAodW5zaWduZWQgc2hvcnQgKWE7DQorCS0teDsNCisJLS15Ow0KKwl9DQorfQ0KKw0KKw0KKy8qIE11bHRpcGx5IHNpZ25pZmljYW5kIG9mIGUtdHlwZSBudW1iZXIgYg0KK2J5IDE2LWJpdCBxdWFudGl0eSBhLCBlLXR5cGUgcmVzdWx0IHRvIGMuICovDQorDQorc3RhdGljIHZvaWQgX19tMTZtKHNob3J0IHVuc2lnbmVkIGludCBhLA0KKwkJIHNob3J0IHVuc2lnbmVkIGludCAqICBfX3Jlc3RyaWN0X18gYiwNCisJCSBzaG9ydCB1bnNpZ25lZCBpbnQgKiAgX19yZXN0cmljdF9fIGMpDQorew0KK3JlZ2lzdGVyIHVuc2lnbmVkIHNob3J0ICpwcDsNCityZWdpc3RlciB1bnNpZ25lZCBsb25nIGNhcnJ5Ow0KK3Vuc2lnbmVkIHNob3J0ICpwczsNCit1bnNpZ25lZCBzaG9ydCBwW05JXTsNCit1bnNpZ25lZCBsb25nIGFhLCBtOw0KK2ludCBpOw0KKw0KK2FhID0gYTsNCitwcCA9ICZwW05JLTJdOw0KKypwcCsrID0gMDsNCisqcHAgPSAwOw0KK3BzID0gJmJbTkktMV07DQorDQorZm9yKCBpPU0rMTsgaTxOSTsgaSsrICkNCisJew0KKwlpZiggKnBzID09IDAgKQ0KKwkJew0KKwkJLS1wczsNCisJCS0tcHA7DQorCQkqKHBwLTEpID0gMDsNCisJCX0NCisJZWxzZQ0KKwkJew0KKwkJbSA9ICh1bnNpZ25lZCBsb25nKSBhYSAqICpwcy0tOw0KKwkJY2FycnkgPSAobSAmIDB4ZmZmZikgKyAqcHA7DQorCQkqcHAtLSA9ICh1bnNpZ25lZCBzaG9ydCApY2Fycnk7DQorCQljYXJyeSA9IChjYXJyeSA+PiAxNikgKyAobSA+PiAxNikgKyAqcHA7DQorCQkqcHAgPSAodW5zaWduZWQgc2hvcnQgKWNhcnJ5Ow0KKwkJKihwcC0xKSA9IGNhcnJ5ID4+IDE2Ow0KKwkJfQ0KKwl9DQorZm9yKCBpPU07IGk8Tkk7IGkrKyApDQorCWNbaV0gPSBwW2ldOw0KK30NCisNCisNCisvKiBEaXZpZGUgc2lnbmlmaWNhbmRzLiBOZWl0aGVyIHRoZSBudW1lcmF0b3Igbm9yIHRoZSBkZW5vbWluYXRvcg0KK2lzIHBlcm1pdHRlZCB0byBoYXZlIGl0cyBoaWdoIGd1YXJkIHdvcmQgbm9uemVyby4gICovDQorDQorDQoraW50IF9fZWRpdm0oc2hvcnQgdW5zaWduZWQgaW50ICogX19yZXN0cmljdF9fIGRlbiwNCisJCSBzaG9ydCB1bnNpZ25lZCBpbnQgKiBfX3Jlc3RyaWN0X18gbnVtKQ0KK3sNCitpbnQgaTsNCityZWdpc3RlciB1bnNpZ25lZCBzaG9ydCAqcDsNCit1bnNpZ25lZCBsb25nIHRudW07DQordW5zaWduZWQgc2hvcnQgaiwgdGRlbm0sIHRxdW90Ow0KK3Vuc2lnbmVkIHNob3J0IHRwcm9kW05JKzFdOw0KK3Vuc2lnbmVkIHNob3J0IGVxdW90W05JXTsNCisNCitwID0gJmVxdW90WzBdOw0KKypwKysgPSBudW1bMF07DQorKnArKyA9IG51bVsxXTsNCisNCitmb3IoIGk9TTsgaTxOSTsgaSsrICkNCisJew0KKwkqcCsrID0gMDsNCisJfQ0KK19fZXNoZG4xKCBudW0gKTsNCit0ZGVubSA9IGRlbltNKzFdOw0KK2ZvciggaT1NOyBpPE5JOyBpKysgKQ0KKwl7DQorCS8qIEZpbmQgdHJpYWwgcXVvdGllbnQgZGlnaXQgKHRoZSByYWRpeCBpcyA2NTUzNikuICovDQorCXRudW0gPSAoKCh1bnNpZ25lZCBsb25nKSBudW1bTV0pIDw8IDE2KSArIG51bVtNKzFdOw0KKw0KKwkvKiBEbyBub3QgZXhlY3V0ZSB0aGUgZGl2aWRlIGluc3RydWN0aW9uIGlmIGl0IHdpbGwgb3ZlcmZsb3cuICovDQorICAgICAgICBpZiggKHRkZW5tICogMHhmZmZmVUwpIDwgdG51bSApDQorCQl0cXVvdCA9IDB4ZmZmZjsNCisJZWxzZQ0KKwkJdHF1b3QgPSB0bnVtIC8gdGRlbm07DQorDQorCQkvKiBQcm92ZSB0aGF0IHRoZSBkaXZpZGUgd29ya2VkLiAqLw0KKy8qDQorCXRjaGVjayA9ICh1bnNpZ25lZCBsb25nICl0cXVvdCAqIHRkZW5tOw0KKwlpZiggdG51bSAtIHRjaGVjayA+IHRkZW5tICkNCisJCXRxdW90ID0gMHhmZmZmOw0KKyovDQorCS8qIE11bHRpcGx5IGRlbm9taW5hdG9yIGJ5IHRyaWFsIHF1b3RpZW50IGRpZ2l0LiAqLw0KKwlfX20xNm0oIHRxdW90LCBkZW4sIHRwcm9kICk7DQorCS8qIFRoZSBxdW90aWVudCBkaWdpdCBtYXkgaGF2ZSBiZWVuIG92ZXJlc3RpbWF0ZWQuICovDQorCWlmKCBfX2VjbXBtKCB0cHJvZCwgbnVtICkgPiAwICkNCisJCXsNCisJCXRxdW90IC09IDE7DQorCQlfX2VzdWJtKCBkZW4sIHRwcm9kICk7DQorCQlpZiggX19lY21wbSggdHByb2QsIG51bSApID4gMCApDQorCQkJew0KKwkJCXRxdW90IC09IDE7DQorCQkJX19lc3VibSggZGVuLCB0cHJvZCApOw0KKwkJCX0NCisJCX0NCisJX19lc3VibSggdHByb2QsIG51bSApOw0KKwllcXVvdFtpXSA9IHRxdW90Ow0KKwlfX2VzaHVwNihudW0pOw0KKwl9DQorLyogdGVzdCBmb3Igbm9uemVybyByZW1haW5kZXIgYWZ0ZXIgcm91bmRvZmYgYml0ICovDQorcCA9ICZudW1bTV07DQoraiA9IDA7DQorZm9yKCBpPU07IGk8Tkk7IGkrKyApDQorCXsNCisJaiB8PSAqcCsrOw0KKwl9DQoraWYoIGogKQ0KKwlqID0gMTsNCisNCitmb3IoIGk9MDsgaTxOSTsgaSsrICkNCisJbnVtW2ldID0gZXF1b3RbaV07DQorDQorcmV0dXJuKCAoaW50IClqICk7DQorfQ0KKw0KKw0KKw0KKy8qIE11bHRpcGx5IHNpZ25pZmljYW5kcyAqLw0KK2ludCBfX2VtdWxtKGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqIF9fcmVzdHJpY3RfXyBhLA0KKwkJIHNob3J0IHVuc2lnbmVkIGludCAqIF9fcmVzdHJpY3RfXyBiKQ0KK3sNCitjb25zdCB1bnNpZ25lZCBzaG9ydCAqcDsNCit1bnNpZ25lZCBzaG9ydCAqcTsNCit1bnNpZ25lZCBzaG9ydCBwcHJvZFtOSV07DQordW5zaWduZWQgc2hvcnQgZXF1b3RbTkldOw0KK3Vuc2lnbmVkIHNob3J0IGo7DQoraW50IGk7DQorDQorZXF1b3RbMF0gPSBiWzBdOw0KK2VxdW90WzFdID0gYlsxXTsNCitmb3IoIGk9TTsgaTxOSTsgaSsrICkNCisJZXF1b3RbaV0gPSAwOw0KKw0KK2ogPSAwOw0KK3AgPSAmYVtOSS0xXTsNCitxID0gJmVxdW90W05JLTFdOw0KK2ZvciggaT1NKzE7IGk8Tkk7IGkrKyApDQorCXsNCisJaWYoICpwID09IDAgKQ0KKwkJew0KKwkJLS1wOw0KKwkJfQ0KKwllbHNlDQorCQl7DQorCQlfX20xNm0oICpwLS0sIGIsIHBwcm9kICk7DQorCQlfX2VhZGRtKHBwcm9kLCBlcXVvdCk7DQorCQl9DQorCWogfD0gKnE7DQorCV9fZXNoZG42KGVxdW90KTsNCisJfQ0KKw0KK2ZvciggaT0wOyBpPE5JOyBpKysgKQ0KKwliW2ldID0gZXF1b3RbaV07DQorDQorLyogcmV0dXJuIGZsYWcgZm9yIGxvc3Qgbm9uemVybyBiaXRzICovDQorcmV0dXJuKCAoaW50KWogKTsNCit9DQorDQorDQorDQorLyoNCisgKiBOb3JtYWxpemUgYW5kIHJvdW5kIG9mZi4NCisgKg0KKyAqIFRoZSBpbnRlcm5hbCBmb3JtYXQgbnVtYmVyIHRvIGJlIHJvdW5kZWQgaXMgInMiLg0KKyAqIElucHV0ICJsb3N0IiBpbmRpY2F0ZXMgd2hldGhlciB0aGUgbnVtYmVyIGlzIGV4YWN0Lg0KKyAqIFRoaXMgaXMgdGhlIHNvLWNhbGxlZCBzdGlja3kgYml0Lg0KKyAqDQorICogSW5wdXQgInN1YmZsZyIgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIG51bWJlciB3YXMgb2J0YWluZWQNCisgKiBieSBhIHN1YnRyYWN0aW9uIG9wZXJhdGlvbi4gIEluIHRoYXQgY2FzZSBpZiBsb3N0IGlzIG5vbnplcm8NCisgKiB0aGVuIHRoZSBudW1iZXIgaXMgc2xpZ2h0bHkgc21hbGxlciB0aGFuIGluZGljYXRlZC4NCisgKg0KKyAqIElucHV0ICJleHAiIGlzIHRoZSBiaWFzZWQgZXhwb25lbnQsIHdoaWNoIG1heSBiZSBuZWdhdGl2ZS4NCisgKiB0aGUgZXhwb25lbnQgZmllbGQgb2YgInMiIGlzIGlnbm9yZWQgYnV0IGlzIHJlcGxhY2VkIGJ5DQorICogImV4cCIgYXMgYWRqdXN0ZWQgYnkgbm9ybWFsaXphdGlvbiBhbmQgcm91bmRpbmcuDQorICoNCisgKiBJbnB1dCAicmNudHJsIiBpcyB0aGUgcm91bmRpbmcgY29udHJvbC4NCisgKg0KKyAqIElucHV0ICJybnByYyIgaXMgcHJlY2lzb24gY29udHJvbCAoNjQgb3IgTkJJVFMpLg0KKyAqLw0KKw0KK3ZvaWQgX19lbWRub3JtKHNob3J0IHVuc2lnbmVkIGludCAqcywgaW50IGxvc3QsIGludCBzdWJmbGcsIGludCBleHAsIGludCByY250cmwsIGludCBybmRwcmMpDQorew0KK2ludCBpLCBqOw0KK3Vuc2lnbmVkIHNob3J0IHI7DQoraW50IHJ3ID0gTkktMTsgLyogbG93IGd1YXJkIHdvcmQgKi8NCitpbnQgcmUgPSBOSS0yOw0KK2NvbnN0IHVuc2lnbmVkIHNob3J0IHJtc2sgPSAweGZmZmY7DQorY29uc3QgdW5zaWduZWQgc2hvcnQgcm1iaXQgPSAweDgwMDA7DQorI2lmIE5FID09IDYNCit1bnNpZ25lZCBzaG9ydCByYml0W05JXSA9IHswLDAsMCwwLDAsMCwwLDEsMH07DQorI2Vsc2UNCit1bnNpZ25lZCBzaG9ydCByYml0W05JXSA9IHswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwfTsNCisjZW5kaWYNCisNCisvKiBOb3JtYWxpemUgKi8NCitqID0gX19lbm9ybWx6KCBzICk7DQorDQorLyogYSBibGFuayBzaWduaWZpY2FuZCBjb3VsZCBtZWFuIGVpdGhlciB6ZXJvIG9yIGluZmluaXR5LiAqLw0KKyNpZm5kZWYgSU5GSU5JVFkNCitpZiggaiA+IE5CSVRTICkNCisJew0KKwlfX2VjbGVhenMoIHMgKTsNCisJcmV0dXJuOw0KKwl9DQorI2VuZGlmDQorZXhwIC09IGo7DQorI2lmbmRlZiBJTkZJTklUWQ0KK2lmKCBleHAgPj0gMzI3NjdMICkNCisJZ290byBvdmVyZjsNCisjZWxzZQ0KK2lmKCAoaiA+IE5CSVRTKSAmJiAoZXhwIDwgMzI3NjdMKSApDQorCXsNCisJX19lY2xlYXpzKCBzICk7DQorCXJldHVybjsNCisJfQ0KKyNlbmRpZg0KK2lmKCBleHAgPCAwTCApDQorCXsNCisJaWYoIGV4cCA+IChsb25nICkoLU5CSVRTLTEpICkNCisJCXsNCisJCWogPSAoaW50IClleHA7DQorCQlpID0gX19lc2hpZnQoIHMsIGogKTsNCisJCWlmKCBpICkNCisJCQlsb3N0ID0gMTsNCisJCX0NCisJZWxzZQ0KKwkJew0KKwkJX19lY2xlYXpzKCBzICk7DQorCQlyZXR1cm47DQorCQl9DQorCX0NCisvKiBSb3VuZCBvZmYsIHVubGVzcyB0b2xkIG5vdCB0byBieSByY250cmwuICovDQoraWYoIHJjbnRybCA9PSAwICkNCisJZ290byBtZGZpbjsNCitpZiAocm5kcHJjID09IDY0KQ0KKyAgew0KKyAgICBydyA9IDc7DQorICAgIHJlID0gNjsNCisgICAgcmJpdFtOSS0yXSA9IDA7DQorICAgIHJiaXRbNl0gPSAxOw0KKyAgfQ0KKw0KKy8qIFNoaWZ0IGRvd24gMSB0ZW1wb3JhcmlseSBpZiB0aGUgZGF0YSBzdHJ1Y3R1cmUgaGFzIGFuIGltcGxpZWQNCisgKiBtb3N0IHNpZ25pZmljYW50IGJpdCBhbmQgdGhlIG51bWJlciBpcyBkZW5vcm1hbC4NCisgKiBGb3Igcm5kcHJjID0gNjQgb3IgTkJJVFMsIHRoZXJlIGlzIG5vIGltcGxpZWQgYml0Lg0KKyAqIEJ1dCBJbnRlbCBsb25nIGRvdWJsZSBkZW5vcm1hbHMgbG9zZSBvbmUgYml0IG9mIHNpZ25pZmljYW5jZSBldmVuIHNvLg0KKyAqLw0KKyNpZiBJQk1QQw0KK2lmKCAoZXhwIDw9IDApICYmIChybmRwcmMgIT0gTkJJVFMpICkNCisjZWxzZQ0KK2lmKCAoZXhwIDw9IDApICYmIChybmRwcmMgIT0gNjQpICYmIChybmRwcmMgIT0gTkJJVFMpICkNCisjZW5kaWYNCisJew0KKwlsb3N0IHw9IHNbTkktMV0gJiAxOw0KKwlfX2VzaGRuMShzKTsNCisJfQ0KKy8qIENsZWFyIG91dCBhbGwgYml0cyBiZWxvdyB0aGUgcm91bmRpbmcgYml0LA0KKyAqIHJlbWVtYmVyaW5nIGluIHIgaWYgYW55IHdlcmUgbm9uemVyby4NCisgKi8NCityID0gc1tyd10gJiBybXNrOw0KK2lmKCBybmRwcmMgPCBOQklUUyApDQorCXsNCisJaSA9IHJ3ICsgMTsNCisJd2hpbGUoIGkgPCBOSSApDQorCQl7DQorCQlpZiggc1tpXSApDQorCQkJciB8PSAxOw0KKwkJc1tpXSA9IDA7DQorCQkrK2k7DQorCQl9DQorCX0NCitzW3J3XSAmPSB+cm1zazsNCitpZiggKHIgJiBybWJpdCkgIT0gMCApDQorCXsNCisJaWYoIHIgPT0gcm1iaXQgKQ0KKwkJew0KKwkJaWYoIGxvc3QgPT0gMCApDQorCQkJeyAvKiByb3VuZCB0byBldmVuICovDQorCQkJaWYoIChzW3JlXSAmIDEpID09IDAgKQ0KKwkJCQlnb3RvIG1kZG9uZTsNCisJCQl9DQorCQllbHNlDQorCQkJew0KKwkJCWlmKCBzdWJmbGcgIT0gMCApDQorCQkJCWdvdG8gbWRkb25lOw0KKwkJCX0NCisJCX0NCisJX19lYWRkbSggcmJpdCwgcyApOw0KKwl9DQorbWRkb25lOg0KKyNpZiBJQk1QQw0KK2lmKCAoZXhwIDw9IDApICYmIChybmRwcmMgIT0gTkJJVFMpICkNCisjZWxzZQ0KK2lmKCAoZXhwIDw9IDApICYmIChybmRwcmMgIT0gNjQpICYmIChybmRwcmMgIT0gTkJJVFMpICkNCisjZW5kaWYNCisJew0KKwlfX2VzaHVwMShzKTsNCisJfQ0KK2lmKCBzWzJdICE9IDAgKQ0KKwl7IC8qIG92ZXJmbG93IG9uIHJvdW5kb2ZmICovDQorCV9fZXNoZG4xKHMpOw0KKwlleHAgKz0gMTsNCisJfQ0KK21kZmluOg0KK3NbTkktMV0gPSAwOw0KK2lmKCBleHAgPj0gMzI3NjdMICkNCisJew0KKyNpZm5kZWYgSU5GSU5JVFkNCitvdmVyZjoNCisjZW5kaWYNCisjaWZkZWYgSU5GSU5JVFkNCisJc1sxXSA9IDMyNzY3Ow0KKwlmb3IoIGk9MjsgaTxOSS0xOyBpKysgKQ0KKwkJc1tpXSA9IDA7DQorI2Vsc2UNCisJc1sxXSA9IDMyNzY2Ow0KKwlzWzJdID0gMDsNCisJZm9yKCBpPU0rMTsgaTxOSS0xOyBpKysgKQ0KKwkJc1tpXSA9IDB4ZmZmZjsNCisJc1tOSS0xXSA9IDA7DQorCWlmKCAocm5kcHJjIDwgNjQpIHx8IChybmRwcmMgPT0gMTEzKSApDQorCQlzW3J3XSAmPSB+cm1zazsNCisjZW5kaWYNCisJcmV0dXJuOw0KKwl9DQoraWYoIGV4cCA8IDAgKQ0KKwlzWzFdID0gMDsNCitlbHNlDQorCXNbMV0gPSAodW5zaWduZWQgc2hvcnQgKWV4cDsNCit9DQorDQorDQorLyoNCis7CU11bHRpcGx5Lg0KKzsNCis7CXVuc2lnbmVkIHNob3J0IGFbTkVdLCBiW05FXSwgY1tORV07DQorOwllbXVsKCBhLCBiLCBjICk7CWMgPSBiICogYQ0KKyovDQordm9pZCBfX2VtdWwoY29uc3Qgc2hvcnQgdW5zaWduZWQgaW50ICphLA0KKwkJIGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqYiwNCisJCSBzaG9ydCB1bnNpZ25lZCBpbnQgKmMpDQorew0KK3Vuc2lnbmVkIHNob3J0IGFpW05JXSwgYmlbTkldOw0KK2ludCBpLCBqOw0KK2xvbmcgbHQsIGx0YSwgbHRiOw0KKw0KKyNpZmRlZiBOQU5TDQorLyogTmFOIHRpbWVzIGFueXRoaW5nIGlzIHRoZSBzYW1lIE5hTi4gKi8NCitpZiggX19laXNuYW4oYSkgKQ0KKwl7DQorCV9fZW1vdihhLGMpOw0KKwlyZXR1cm47DQorCX0NCitpZiggX19laXNuYW4oYikgKQ0KKwl7DQorCV9fZW1vdihiLGMpOw0KKwlyZXR1cm47DQorCX0NCisvKiBaZXJvIHRpbWVzIGluZmluaXR5IGlzIGEgTmFOLiAqLw0KK2lmKCAoX19laXNpbmYoYSkgJiYgX19laWlzemVybyhiKSkNCisJfHwgKF9fZWlzaW5mKGIpICYmIF9fZWlpc3plcm8oYSkpICkNCisJew0KKwltdGhlcnIoICJlbXVsIiwgRE9NQUlOICk7DQorCV9fZW5hbl9OQklUUyggYyApOw0KKwlyZXR1cm47DQorCX0NCisjZW5kaWYNCisvKiBJbmZpbml0eSB0aW1lcyBhbnl0aGluZyBlbHNlIGlzIGluZmluaXR5LiAqLw0KKyNpZmRlZiBJTkZJTklUWQ0KK2lmKCBfX2Vpc2luZihhKSB8fCBfX2Vpc2luZihiKSApDQorCXsNCisJaWYoIF9fZWlzbmVnKGEpIF4gX19laXNuZWcoYikgKQ0KKwkJKihjKyhORS0xKSkgPSAweDgwMDA7DQorCWVsc2UNCisJCSooYysoTkUtMSkpID0gMDsNCisJX19laW5maW4oYyk7DQorCXJldHVybjsNCisJfQ0KKyNlbmRpZg0KK19fZW1vdmkoIGEsIGFpICk7DQorX19lbW92aSggYiwgYmkgKTsNCitsdGEgPSBhaVtFXTsNCitsdGIgPSBiaVtFXTsNCitpZiggYWlbRV0gPT0gMCApDQorCXsNCisJZm9yKCBpPTE7IGk8TkktMTsgaSsrICkNCisJCXsNCisJCWlmKCBhaVtpXSAhPSAwICkNCisJCQl7DQorCQkJbHRhIC09IF9fZW5vcm1seiggYWkgKTsNCisJCQlnb3RvIG1uemVyMTsNCisJCQl9DQorCQl9DQorCV9fZWNsZWFyKGMpOw0KKwlyZXR1cm47DQorCX0NCittbnplcjE6DQorDQoraWYoIGJpW0VdID09IDAgKQ0KKwl7DQorCWZvciggaT0xOyBpPE5JLTE7IGkrKyApDQorCQl7DQorCQlpZiggYmlbaV0gIT0gMCApDQorCQkJew0KKwkJCWx0YiAtPSBfX2Vub3JtbHooIGJpICk7DQorCQkJZ290byBtbnplcjI7DQorCQkJfQ0KKwkJfQ0KKwlfX2VjbGVhcihjKTsNCisJcmV0dXJuOw0KKwl9DQorbW56ZXIyOg0KKw0KKy8qIE11bHRpcGx5IHNpZ25pZmljYW5kcyAqLw0KK2ogPSBfX2VtdWxtKCBhaSwgYmkgKTsNCisvKiBjYWxjdWxhdGUgZXhwb25lbnQgKi8NCitsdCA9IGx0YSArIGx0YiAtIChFWE9ORSAtIDEpOw0KK19fZW1kbm9ybSggYmksIGosIDAsIGx0LCA2NCwgTkJJVFMgKTsNCisvKiBjYWxjdWxhdGUgc2lnbiBvZiBwcm9kdWN0ICovDQoraWYoIGFpWzBdID09IGJpWzBdICkNCisJYmlbMF0gPSAwOw0KK2Vsc2UNCisJYmlbMF0gPSAweGZmZmY7DQorX19lbW92byggYmksIGMgKTsNCit9DQorDQorDQorLyogbW92ZSBvdXQgaW50ZXJuYWwgZm9ybWF0IHRvIGllZWUgbG9uZyBkb3VibGUgKi8NCit2b2lkIF9fdG9lNjQoc2hvcnQgdW5zaWduZWQgaW50ICphLCBzaG9ydCB1bnNpZ25lZCBpbnQgKmIpDQorew0KK3JlZ2lzdGVyIHVuc2lnbmVkIHNob3J0ICpwLCAqcTsNCit1bnNpZ25lZCBzaG9ydCBpOw0KKw0KKyNpZmRlZiBOQU5TDQoraWYoIF9fZWlpc25hbihhKSApDQorCXsNCisJX19lbmFuXzY0KCBiICk7DQorCXJldHVybjsNCisJfQ0KKyNlbmRpZg0KKyNpZmRlZiBJQk1QQw0KKy8qIFNoaWZ0IEludGVsIGRlbm9ybWFsIHNpZ25pZmljYW5kIGRvd24gMS4gICovDQoraWYoIGFbRV0gPT0gMCApDQorICBfX2VzaGRuMShhKTsNCisjZW5kaWYNCitwID0gYTsNCisjaWZkZWYgTUlFRUUNCitxID0gYjsNCisjZWxzZQ0KK3EgPSBiICsgNDsgLyogcG9pbnQgdG8gb3V0cHV0IGV4cG9uZW50ICovDQorI2lmIDENCisvKiBOT1RFOiBpZiBkYXRhIHR5cGUgaXMgOTYgYml0cyB3aWRlLCBjbGVhciB0aGUgbGFzdCB3b3JkIGhlcmUuICovDQorKihxKzEpPSAwOw0KKyNlbmRpZg0KKyNlbmRpZg0KKw0KKy8qIGNvbWJpbmUgc2lnbiBhbmQgZXhwb25lbnQgKi8NCitpID0gKnArKzsNCisjaWZkZWYgTUlFRUUNCitpZiggaSApDQorCSpxKysgPSAqcCsrIHwgMHg4MDAwOw0KK2Vsc2UNCisJKnErKyA9ICpwKys7DQorKnErKyA9IDA7DQorI2Vsc2UNCitpZiggaSApDQorCSpxLS0gPSAqcCsrIHwgMHg4MDAwOw0KK2Vsc2UNCisJKnEtLSA9ICpwKys7DQorI2VuZGlmDQorLyogc2tpcCBvdmVyIGd1YXJkIHdvcmQgKi8NCisrK3A7DQorLyogbW92ZSB0aGUgc2lnbmlmaWNhbmQgKi8NCisjaWZkZWYgTUlFRUUNCitmb3IoIGk9MDsgaTw0OyBpKysgKQ0KKwkqcSsrID0gKnArKzsNCisjZWxzZQ0KKyNpZmRlZiBJTkZJTklUWQ0KK2lmIChfX2VpaXNpbmYgKGEpKQ0KKyAgICAgICAgew0KKwkvKiBJbnRlbCBsb25nIGRvdWJsZSBpbmZpbml0eS4gICovDQorCSpxLS0gPSAweDgwMDA7DQorCSpxLS0gPSAwOw0KKwkqcS0tID0gMDsNCisJKnEgPSAwOw0KKwlyZXR1cm47DQorCX0NCisjZW5kaWYNCitmb3IoIGk9MDsgaTw0OyBpKysgKQ0KKwkqcS0tID0gKnArKzsNCisjZW5kaWYNCit9DQorDQorDQorLyogQ29tcGFyZSB0d28gZSB0eXBlIG51bWJlcnMuDQorICoNCisgKiB1bnNpZ25lZCBzaG9ydCBhW05FXSwgYltORV07DQorICogZWNtcCggYSwgYiApOw0KKyAqDQorICogIHJldHVybnMgKzEgaWYgYSA+IGINCisgKiAgICAgICAgICAgMCBpZiBhID09IGINCisgKiAgICAgICAgICAtMSBpZiBhIDwgYg0KKyAqICAgICAgICAgIC0yIGlmIGVpdGhlciBhIG9yIGIgaXMgYSBOYU4uDQorICovDQoraW50IF9fZWNtcChjb25zdCBzaG9ydCB1bnNpZ25lZCBpbnQgKiBfX3Jlc3RyaWN0X18gYSwNCisJCWNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqICBfX3Jlc3RyaWN0X18gYikNCit7DQordW5zaWduZWQgc2hvcnQgYWlbTkldLCBiaVtOSV07DQorcmVnaXN0ZXIgdW5zaWduZWQgc2hvcnQgKnAsICpxOw0KK3JlZ2lzdGVyIGludCBpOw0KK2ludCBtc2lnbjsNCisNCisjaWZkZWYgTkFOUw0KK2lmIChfX2Vpc25hbiAoYSkgIHx8IF9fZWlzbmFuIChiKSkNCisJcmV0dXJuKCAtMiApOw0KKyNlbmRpZg0KK19fZW1vdmkoIGEsIGFpICk7DQorcCA9IGFpOw0KK19fZW1vdmkoIGIsIGJpICk7DQorcSA9IGJpOw0KKw0KK2lmKCAqcCAhPSAqcSApDQorCXsgLyogdGhlIHNpZ25zIGFyZSBkaWZmZXJlbnQgKi8NCisvKiAtMCBlcXVhbHMgKyAwICovDQorCWZvciggaT0xOyBpPE5JLTE7IGkrKyApDQorCQl7DQorCQlpZiggYWlbaV0gIT0gMCApDQorCQkJZ290byBuenJvOw0KKwkJaWYoIGJpW2ldICE9IDAgKQ0KKwkJCWdvdG8gbnpybzsNCisJCX0NCisJcmV0dXJuKDApOw0KK256cm86DQorCWlmKCAqcCA9PSAwICkNCisJCXJldHVybiggMSApOw0KKwllbHNlDQorCQlyZXR1cm4oIC0xICk7DQorCX0NCisvKiBib3RoIGFyZSB0aGUgc2FtZSBzaWduICovDQoraWYoICpwID09IDAgKQ0KKwltc2lnbiA9IDE7DQorZWxzZQ0KKwltc2lnbiA9IC0xOw0KK2kgPSBOSS0xOw0KK2RvDQorCXsNCisJaWYoICpwKysgIT0gKnErKyApDQorCQl7DQorCQlnb3RvIGRpZmY7DQorCQl9DQorCX0NCit3aGlsZSggLS1pID4gMCApOw0KKw0KK3JldHVybigwKTsJLyogZXF1YWxpdHkgKi8NCisNCisNCisNCitkaWZmOg0KKw0KK2lmKCAqKC0tcCkgPiAqKC0tcSkgKQ0KKwlyZXR1cm4oIG1zaWduICk7CQkvKiBwIGlzIGJpZ2dlciAqLw0KK2Vsc2UNCisJcmV0dXJuKCAtbXNpZ24gKTsJLyogcCBpcyBsaXR0bGVyICovDQorfQ0KKw0KKy8qDQorOwlTaGlmdCBzaWduaWZpY2FuZA0KKzsNCis7CVNoaWZ0cyBzaWduaWZpY2FuZCBhcmVhIHVwIG9yIGRvd24gYnkgdGhlIG51bWJlciBvZiBiaXRzDQorOwlnaXZlbiBieSB0aGUgdmFyaWFibGUgc2MuDQorKi8NCitpbnQgX19lc2hpZnQoc2hvcnQgdW5zaWduZWQgaW50ICp4LCBpbnQgc2MpDQorew0KK3Vuc2lnbmVkIHNob3J0IGxvc3Q7DQordW5zaWduZWQgc2hvcnQgKnA7DQorDQoraWYoIHNjID09IDAgKQ0KKwlyZXR1cm4oIDAgKTsNCisNCitsb3N0ID0gMDsNCitwID0geCArIE5JLTE7DQorDQoraWYoIHNjIDwgMCApDQorCXsNCisJc2MgPSAtc2M7DQorCXdoaWxlKCBzYyA+PSAxNiApDQorCQl7DQorCQlsb3N0IHw9ICpwOwkvKiByZW1lbWJlciBsb3N0IGJpdHMgKi8NCisJCV9fZXNoZG42KHgpOw0KKwkJc2MgLT0gMTY7DQorCQl9DQorDQorCXdoaWxlKCBzYyA+PSA4ICkNCisJCXsNCisJCWxvc3QgfD0gKnAgJiAweGZmOw0KKwkJX19lc2hkbjgoeCk7DQorCQlzYyAtPSA4Ow0KKwkJfQ0KKw0KKwl3aGlsZSggc2MgPiAwICkNCisJCXsNCisJCWxvc3QgfD0gKnAgJiAxOw0KKwkJX19lc2hkbjEoeCk7DQorCQlzYyAtPSAxOw0KKwkJfQ0KKwl9DQorZWxzZQ0KKwl7DQorCXdoaWxlKCBzYyA+PSAxNiApDQorCQl7DQorCQlfX2VzaHVwNih4KTsNCisJCXNjIC09IDE2Ow0KKwkJfQ0KKw0KKwl3aGlsZSggc2MgPj0gOCApDQorCQl7DQorCQlfX2VzaHVwOCh4KTsNCisJCXNjIC09IDg7DQorCQl9DQorDQorCXdoaWxlKCBzYyA+IDAgKQ0KKwkJew0KKwkJX19lc2h1cDEoeCk7DQorCQlzYyAtPSAxOw0KKwkJfQ0KKwl9DQoraWYoIGxvc3QgKQ0KKwlsb3N0ID0gMTsNCityZXR1cm4oIChpbnQgKWxvc3QgKTsNCit9DQorDQorDQorDQorLyoNCis7CW5vcm1hbGl6ZQ0KKzsNCis7IFNoaWZ0IG5vcm1hbGl6ZXMgdGhlIHNpZ25pZmljYW5kIGFyZWEgcG9pbnRlZCB0byBieSBhcmd1bWVudA0KKzsgc2hpZnQgY291bnQgKHVwID0gcG9zaXRpdmUpIGlzIHJldHVybmVkLg0KKyovDQoraW50IF9fZW5vcm1seihzaG9ydCB1bnNpZ25lZCBpbnQgKngpDQorew0KK3JlZ2lzdGVyIHVuc2lnbmVkIHNob3J0ICpwOw0KK2ludCBzYzsNCisNCitzYyA9IDA7DQorcCA9ICZ4W01dOw0KK2lmKCAqcCAhPSAwICkNCisJZ290byBub3JtZG47DQorKytwOw0KK2lmKCAqcCAmIDB4ODAwMCApDQorCXJldHVybiggMCApOwkvKiBhbHJlYWR5IG5vcm1hbGl6ZWQgKi8NCit3aGlsZSggKnAgPT0gMCApDQorCXsNCisJX19lc2h1cDYoeCk7DQorCXNjICs9IDE2Ow0KKy8qIFdpdGggZ3VhcmQgd29yZCwgdGhlcmUgYXJlIE5CSVRTKzE2IGJpdHMgYXZhaWxhYmxlLg0KKyAqIHJldHVybiB0cnVlIGlmIGFsbCBhcmUgemVyby4NCisgKi8NCisJaWYoIHNjID4gTkJJVFMgKQ0KKwkJcmV0dXJuKCBzYyApOw0KKwl9DQorLyogc2VlIGlmIGhpZ2ggYnl0ZSBpcyB6ZXJvICovDQord2hpbGUoICgqcCAmIDB4ZmYwMCkgPT0gMCApDQorCXsNCisJX19lc2h1cDgoeCk7DQorCXNjICs9IDg7DQorCX0NCisvKiBub3cgc2hpZnQgMSBiaXQgYXQgYSB0aW1lICovDQord2hpbGUoICgqcCAgJiAweDgwMDApID09IDApDQorCXsNCisJX19lc2h1cDEoeCk7DQorCXNjICs9IDE7DQorCWlmKCBzYyA+IChOQklUUysxNikgKQ0KKwkJew0KKwkJbXRoZXJyKCAiZW5vcm1seiIsIFVOREVSRkxPVyApOw0KKwkJcmV0dXJuKCBzYyApOw0KKwkJfQ0KKwl9DQorcmV0dXJuKCBzYyApOw0KKw0KKy8qIE5vcm1hbGl6ZSBieSBzaGlmdGluZyBkb3duIG91dCBvZiB0aGUgaGlnaCBndWFyZCB3b3JkDQorICAgb2YgdGhlIHNpZ25pZmljYW5kICovDQorbm9ybWRuOg0KKw0KK2lmKCAqcCAmIDB4ZmYwMCApDQorCXsNCisJX19lc2hkbjgoeCk7DQorCXNjIC09IDg7DQorCX0NCit3aGlsZSggKnAgIT0gMCApDQorCXsNCisJX19lc2hkbjEoeCk7DQorCXNjIC09IDE7DQorDQorCWlmKCBzYyA8IC1OQklUUyApDQorCQl7DQorCQltdGhlcnIoICJlbm9ybWx6IiwgT1ZFUkZMT1cgKTsNCisJCXJldHVybiggc2MgKTsNCisJCX0NCisJfQ0KK3JldHVybiggc2MgKTsNCit9DQorDQorDQorLyogTW92ZSBpbnRlcm5hbCBmb3JtYXQgbnVtYmVyIG91dCwNCisgKiBjb252ZXJ0aW5nIGl0IHRvIGV4dGVybmFsIGZvcm1hdC4NCisgKi8NCit2b2lkIF9fZW1vdm8oY29uc3Qgc2hvcnQgdW5zaWduZWQgaW50ICogX19yZXN0cmljdF9fIGEsDQorCQkgIHNob3J0IHVuc2lnbmVkIGludCAqIF9fcmVzdHJpY3RfXyBiKQ0KK3sNCityZWdpc3RlciBjb25zdCB1bnNpZ25lZCBzaG9ydCAqcDsNCityZWdpc3RlciB1bnNpZ25lZCBzaG9ydCAqcTsNCit1bnNpZ25lZCBzaG9ydCBpOw0KKw0KK3AgPSBhOw0KK3EgPSBiICsgKE5FLTEpOyAvKiBwb2ludCB0byBvdXRwdXQgZXhwb25lbnQgKi8NCisvKiBjb21iaW5lIHNpZ24gYW5kIGV4cG9uZW50ICovDQoraSA9ICpwKys7DQoraWYoIGkgKQ0KKwkqcS0tID0gKnArKyB8IDB4ODAwMDsNCitlbHNlDQorCSpxLS0gPSAqcCsrOw0KKyNpZmRlZiBJTkZJTklUWQ0KK2lmKCAqKHAtMSkgPT0gMHg3ZmZmICkNCisJew0KKyNpZmRlZiBOQU5TDQorCWlmKCBfX2VpaXNuYW4oYSkgKQ0KKwkJew0KKwkJX19lbmFuX05CSVRTKCBiICk7DQorCQlyZXR1cm47DQorCQl9DQorI2VuZGlmDQorCV9fZWluZmluKGIpOw0KKwlyZXR1cm47DQorCX0NCisjZW5kaWYNCisvKiBza2lwIG92ZXIgZ3VhcmQgd29yZCAqLw0KKysrcDsNCisvKiBtb3ZlIHRoZSBzaWduaWZpY2FuZCAqLw0KK2ZvciggaT0wOyBpPE5FLTE7IGkrKyApDQorCSpxLS0gPSAqcCsrOw0KK30NCisNCisNCisjaWYgVVNFX0xEVE9BDQorDQorDQordm9pZCBfX2VpcmVtYWluKHNob3J0IHVuc2lnbmVkIGludCAqZGVuLCBzaG9ydCB1bnNpZ25lZCBpbnQgKm51bSwNCisJIHNob3J0IHVuc2lnbmVkIGludCAqZXF1b3QgKQ0KK3sNCitsb25nIGxkLCBsbjsNCit1bnNpZ25lZCBzaG9ydCBqOw0KKw0KK2xkID0gZGVuW0VdOw0KK2xkIC09IF9fZW5vcm1seiggZGVuICk7DQorbG4gPSBudW1bRV07DQorbG4gLT0gX19lbm9ybWx6KCBudW0gKTsNCitfX2VjbGVheiggZXF1b3QgKTsNCit3aGlsZSggbG4gPj0gbGQgKQ0KKwl7DQorCWlmKCBfX2VjbXBtKGRlbixudW0pIDw9IDAgKQ0KKwkJew0KKwkJX19lc3VibShkZW4sIG51bSk7DQorCQlqID0gMTsNCisJCX0NCisJZWxzZQ0KKwkJew0KKwkJaiA9IDA7DQorCQl9DQorCV9fZXNodXAxKGVxdW90KTsNCisJZXF1b3RbTkktMV0gfD0gajsNCisJX19lc2h1cDEobnVtKTsNCisJbG4gLT0gMTsNCisJfQ0KK19fZW1kbm9ybSggbnVtLCAwLCAwLCBsbiwgMCwgTkJJVFMgKTsNCit9DQorDQorDQordm9pZCBfX2VhZGQxKGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqICBfX3Jlc3RyaWN0X18gYSwNCisJCSAgY29uc3Qgc2hvcnQgdW5zaWduZWQgaW50ICogIF9fcmVzdHJpY3RfXyBiLA0KKwkJICBzaG9ydCB1bnNpZ25lZCBpbnQgKiAgX19yZXN0cmljdF9fIGMsDQorCQkgIGludCBzdWJmbGcpDQorew0KK3Vuc2lnbmVkIHNob3J0IGFpW05JXSwgYmlbTkldLCBjaVtOSV07DQoraW50IGksIGxvc3QsIGosIGs7DQorbG9uZyBsdCwgbHRhLCBsdGI7DQorDQorI2lmZGVmIElORklOSVRZDQoraWYoIF9fZWlzaW5mKGEpICkNCisJew0KKwlfX2Vtb3YoYSxjKTsNCisJaWYoIHN1YmZsZyApDQorCQlfX2VuZWcoYyk7DQorCXJldHVybjsNCisJfQ0KK2lmKCBfX2Vpc2luZihiKSApDQorCXsNCisJX19lbW92KGIsYyk7DQorCXJldHVybjsNCisJfQ0KKyNlbmRpZg0KK19fZW1vdmkoIGEsIGFpICk7DQorX19lbW92aSggYiwgYmkgKTsNCitpZiggc3ViICkNCisJYWlbMF0gPSB+YWlbMF07DQorDQorLyogY29tcGFyZSBleHBvbmVudHMgKi8NCitsdGEgPSBhaVtFXTsNCitsdGIgPSBiaVtFXTsNCitsdCA9IGx0YSAtIGx0YjsNCitpZiggbHQgPiAwTCApDQorCXsJLyogcHV0IHRoZSBsYXJnZXIgbnVtYmVyIGluIGJpICovDQorCV9fZW1vdnooIGJpLCBjaSApOw0KKwlfX2Vtb3Z6KCBhaSwgYmkgKTsNCisJX19lbW92eiggY2ksIGFpICk7DQorCWx0YiA9IGJpW0VdOw0KKwlsdCA9IC1sdDsNCisJfQ0KK2xvc3QgPSAwOw0KK2lmKCBsdCAhPSAwTCApDQorCXsNCisJaWYoIGx0IDwgKGxvbmcgKSgtTkJJVFMtMSkgKQ0KKwkJZ290byBkb25lOwkvKiBhbnN3ZXIgc2FtZSBhcyBsYXJnZXIgYWRkZW5kICovDQorCWsgPSAoaW50IClsdDsNCisJbG9zdCA9IF9fZXNoaWZ0KCBhaSwgayApOyAvKiBzaGlmdCB0aGUgc21hbGxlciBudW1iZXIgZG93biAqLw0KKwl9DQorZWxzZQ0KKwl7DQorLyogZXhwb25lbnRzIHdlcmUgdGhlIHNhbWUsIHNvIG11c3QgY29tcGFyZSBzaWduaWZpY2FuZHMgKi8NCisJaSA9IF9fZWNtcG0oIGFpLCBiaSApOw0KKwlpZiggaSA9PSAwICkNCisJCXsgLyogdGhlIG51bWJlcnMgYXJlIGlkZW50aWNhbCBpbiBtYWduaXR1ZGUgKi8NCisJCS8qIGlmIGRpZmZlcmVudCBzaWducywgcmVzdWx0IGlzIHplcm8gKi8NCisJCWlmKCBhaVswXSAhPSBiaVswXSApDQorCQkJew0KKwkJCV9fZWNsZWFyKGMpOw0KKwkJCXJldHVybjsNCisJCQl9DQorCQkvKiBpZiBzYW1lIHNpZ24sIHJlc3VsdCBpcyBkb3VibGUgKi8NCisJCS8qIGRvdWJsZSBkZW5vbWFsaXplZCB0aW55IG51bWJlciAqLw0KKwkJaWYoIChiaVtFXSA9PSAwKSAmJiAoKGJpWzNdICYgMHg4MDAwKSA9PSAwKSApDQorCQkJew0KKwkJCV9fZXNodXAxKCBiaSApOw0KKwkJCWdvdG8gZG9uZTsNCisJCQl9DQorCQkvKiBhZGQgMSB0byBleHBvbmVudCB1bmxlc3MgYm90aCBhcmUgemVybyEgKi8NCisJCWZvciggaj0xOyBqPE5JLTE7IGorKyApDQorCQkJew0KKwkJCWlmKCBiaVtqXSAhPSAwICkNCisJCQkJew0KKy8qIFRoaXMgY291bGQgb3ZlcmZsb3csIGJ1dCBsZXQgZW1vdm8gdGFrZSBjYXJlIG9mIHRoYXQuICovDQorCQkJCWx0YiArPSAxOw0KKwkJCQlicmVhazsNCisJCQkJfQ0KKwkJCX0NCisJCWJpW0VdID0gKHVuc2lnbmVkIHNob3J0IClsdGI7DQorCQlnb3RvIGRvbmU7DQorCQl9DQorCWlmKCBpID4gMCApDQorCQl7CS8qIHB1dCB0aGUgbGFyZ2VyIG51bWJlciBpbiBiaSAqLw0KKwkJX19lbW92eiggYmksIGNpICk7DQorCQlfX2Vtb3Z6KCBhaSwgYmkgKTsNCisJCV9fZW1vdnooIGNpLCBhaSApOw0KKwkJfQ0KKwl9DQoraWYoIGFpWzBdID09IGJpWzBdICkNCisJew0KKwlfX2VhZGRtKCBhaSwgYmkgKTsNCisJc3ViZmxnID0gMDsNCisJfQ0KK2Vsc2UNCisJew0KKwlfX2VzdWJtKCBhaSwgYmkgKTsNCisJc3ViZmxnID0gMTsNCisJfQ0KK19fZW1kbm9ybSggYmksIGxvc3QsIHN1YmZsZywgbHRiLCA2NCwgTkJJVFMpOw0KKw0KK2RvbmU6DQorX19lbW92byggYmksIGMgKTsNCit9DQorDQorDQorLyogeSA9IGxhcmdlc3QgaW50ZWdlciBub3QgZ3JlYXRlciB0aGFuIHgNCisgKiAodHJ1bmNhdGVkIHRvd2FyZCBtaW51cyBpbmZpbml0eSkNCisgKg0KKyAqIHVuc2lnbmVkIHNob3J0IHhbTkVdLCB5W05FXQ0KKyAqDQorICogZWZsb29yKCB4LCB5ICk7DQorICovDQorDQorDQordm9pZCBfX2VmbG9vcihzaG9ydCB1bnNpZ25lZCBpbnQgKngsIHNob3J0IHVuc2lnbmVkIGludCAqeSkNCit7DQorcmVnaXN0ZXIgdW5zaWduZWQgc2hvcnQgKnA7DQoraW50IGUsIGV4cG9uLCBpOw0KK3Vuc2lnbmVkIHNob3J0IGZbTkVdOw0KK2NvbnN0IHVuc2lnbmVkIHNob3J0IGJtYXNrW10gPSB7DQorMHhmZmZmLA0KKzB4ZmZmZSwNCisweGZmZmMsDQorMHhmZmY4LA0KKzB4ZmZmMCwNCisweGZmZTAsDQorMHhmZmMwLA0KKzB4ZmY4MCwNCisweGZmMDAsDQorMHhmZTAwLA0KKzB4ZmMwMCwNCisweGY4MDAsDQorMHhmMDAwLA0KKzB4ZTAwMCwNCisweGMwMDAsDQorMHg4MDAwLA0KKzB4MDAwMCwNCit9Ow0KKw0KK19fZW1vdiggeCwgZiApOyAvKiBsZWF2ZSBpbiBleHRlcm5hbCBmb3JtYXQgKi8NCitleHBvbiA9IChpbnQgKWZbTkUtMV07DQorZSA9IChleHBvbiAmIDB4N2ZmZikgLSAoRVhPTkUgLSAxKTsNCitpZiggZSA8PSAwICkNCisJew0KKwlfX2VjbGVhcih5KTsNCisJZ290byBpc2l0bmVnOw0KKwl9DQorLyogbnVtYmVyIG9mIGJpdHMgdG8gY2xlYXIgb3V0ICovDQorZSA9IE5CSVRTIC0gZTsNCitfX2Vtb3YoIGYsIHkgKTsNCitpZiggZSA8PSAwICkNCisJcmV0dXJuOw0KKw0KK3AgPSAmeVswXTsNCit3aGlsZSggZSA+PSAxNiApDQorCXsNCisJKnArKyA9IDA7DQorCWUgLT0gMTY7DQorCX0NCisvKiBjbGVhciB0aGUgcmVtYWluaW5nIGJpdHMgKi8NCisqcCAmPSBibWFza1tlXTsNCisvKiB0cnVuY2F0ZSBuZWdhdGl2ZXMgdG93YXJkIG1pbnVzIGluZmluaXR5ICovDQoraXNpdG5lZzoNCisNCitpZiggKHVuc2lnbmVkIHNob3J0IClleHBvbiAmICh1bnNpZ25lZCBzaG9ydCApMHg4MDAwICkNCisJew0KKwlmb3IoIGk9MDsgaTxORS0xOyBpKysgKQ0KKwkJew0KKwkJaWYoIGZbaV0gIT0geVtpXSApDQorCQkJew0KKwkJCV9fZXN1YiggX19lb25lLCB5LCB5ICk7DQorCQkJYnJlYWs7DQorCQkJfQ0KKwkJfQ0KKwl9DQorfQ0KKw0KKy8qDQorOwlTdWJ0cmFjdCBleHRlcm5hbCBmb3JtYXQgbnVtYmVycy4NCis7DQorOwl1bnNpZ25lZCBzaG9ydCBhW05FXSwgYltORV0sIGNbTkVdOw0KKzsJZXN1YiggYSwgYiwgYyApOwkgYyA9IGIgLSBhDQorKi8NCisNCisNCit2b2lkIF9fZXN1Yihjb25zdCBzaG9ydCB1bnNpZ25lZCBpbnQgKiAgYSwNCisJCSBjb25zdCBzaG9ydCB1bnNpZ25lZCBpbnQgKiAgYiwNCisJCSBzaG9ydCB1bnNpZ25lZCBpbnQgKiAgYykNCit7DQorDQorI2lmZGVmIE5BTlMNCitpZiggX19laXNuYW4oYSkgKQ0KKwl7DQorCV9fZW1vdiAoYSwgYyk7DQorCXJldHVybjsNCisJfQ0KK2lmKCBfX2Vpc25hbihiKSApDQorCXsNCisJX19lbW92KGIsYyk7DQorCXJldHVybjsNCisJfQ0KKy8qIEluZmluaXR5IG1pbnVzIGluZmluaXR5IGlzIGEgTmFOLg0KKyAqIFRlc3QgZm9yIHN1YnRyYWN0aW5nIGluZmluaXRpZXMgb2YgdGhlIHNhbWUgc2lnbi4NCisgKi8NCitpZiggX19laXNpbmYoYSkgJiYgX19laXNpbmYoYikgJiYgKChfX2Vpc25lZyAoYSkgXiBfX2Vpc25lZyAoYikpID09IDApKQ0KKwl7DQorCW10aGVyciggImVzdWIiLCBET01BSU4gKTsNCisJX19lbmFuX05CSVRTKCBjICk7DQorCXJldHVybjsNCisJfQ0KKyNlbmRpZg0KK19fZWFkZDEoIGEsIGIsIGMsIDEgKTsNCit9DQorDQorDQorDQorLyoNCis7CURpdmlkZS4NCis7DQorOwl1bnNpZ25lZCBzaG9ydCBhW05JXSwgYltOSV0sIGNbTkldOw0KKzsJZWRpdiggYSwgYiwgYyApOwljID0gYiAvIGENCisqLw0KKw0KK3ZvaWQgX19lZGl2KGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqYSwNCisJCSBjb25zdCBzaG9ydCB1bnNpZ25lZCBpbnQgKmIsDQorCQkgc2hvcnQgdW5zaWduZWQgaW50ICpjKQ0KK3sNCit1bnNpZ25lZCBzaG9ydCBhaVtOSV0sIGJpW05JXTsNCitpbnQgaTsNCitsb25nIGx0LCBsdGEsIGx0YjsNCisNCisjaWZkZWYgTkFOUw0KKy8qIFJldHVybiBhbnkgTmFOIGlucHV0LiAqLw0KK2lmKCBfX2Vpc25hbihhKSApDQorCXsNCisJX19lbW92KGEsYyk7DQorCXJldHVybjsNCisJfQ0KK2lmKCBfX2Vpc25hbihiKSApDQorCXsNCisJX19lbW92KGIsYyk7DQorCXJldHVybjsNCisJfQ0KKy8qIFplcm8gb3ZlciB6ZXJvLCBvciBpbmZpbml0eSBvdmVyIGluZmluaXR5LCBpcyBhIE5hTi4gKi8NCitpZiggKF9fZWlzemVybyhhKSAmJiBfX2Vpc3plcm8oYikpDQorCXx8IChfX2Vpc2luZiAoYSkgJiYgX19laXNpbmYgKGIpKSApDQorCXsNCisJbXRoZXJyKCAiZWRpdiIsIERPTUFJTiApOw0KKwlfX2VuYW5fTkJJVFMoIGMgKTsNCisJcmV0dXJuOw0KKwl9DQorI2VuZGlmDQorLyogSW5maW5pdHkgb3ZlciBhbnl0aGluZyBlbHNlIGlzIGluZmluaXR5LiAqLw0KKyNpZmRlZiBJTkZJTklUWQ0KK2lmKCBfX2Vpc2luZihiKSApDQorCXsNCisJaWYoIF9fZWlzbmVnKGEpIF4gX19laXNuZWcoYikgKQ0KKwkJKihjKyhORS0xKSkgPSAweDgwMDA7DQorCWVsc2UNCisJCSooYysoTkUtMSkpID0gMDsNCisJX19laW5maW4oYyk7DQorCXJldHVybjsNCisJfQ0KK2lmKCBfX2Vpc2luZihhKSApDQorCXsNCisJX19lY2xlYXIoYyk7DQorCXJldHVybjsNCisJfQ0KKyNlbmRpZg0KK19fZW1vdmkoIGEsIGFpICk7DQorX19lbW92aSggYiwgYmkgKTsNCitsdGEgPSBhaVtFXTsNCitsdGIgPSBiaVtFXTsNCitpZiggYmlbRV0gPT0gMCApDQorCXsgLyogU2VlIGlmIG51bWVyYXRvciBpcyB6ZXJvLiAqLw0KKwlmb3IoIGk9MTsgaTxOSS0xOyBpKysgKQ0KKwkJew0KKwkJaWYoIGJpW2ldICE9IDAgKQ0KKwkJCXsNCisJCQlsdGIgLT0gX19lbm9ybWx6KCBiaSApOw0KKwkJCWdvdG8gZG56cm8xOw0KKwkJCX0NCisJCX0NCisJX19lY2xlYXIoYyk7DQorCXJldHVybjsNCisJfQ0KK2RuenJvMToNCisNCitpZiggYWlbRV0gPT0gMCApDQorCXsJLyogcG9zc2libGUgZGl2aWRlIGJ5IHplcm8gKi8NCisJZm9yKCBpPTE7IGk8TkktMTsgaSsrICkNCisJCXsNCisJCWlmKCBhaVtpXSAhPSAwICkNCisJCQl7DQorCQkJbHRhIC09IF9fZW5vcm1seiggYWkgKTsNCisJCQlnb3RvIGRuenJvMjsNCisJCQl9DQorCQl9DQorCWlmKCBhaVswXSA9PSBiaVswXSApDQorCQkqKGMrKE5FLTEpKSA9IDA7DQorCWVsc2UNCisJCSooYysoTkUtMSkpID0gMHg4MDAwOw0KKwlfX2VpbmZpbihjKTsNCisJbXRoZXJyKCAiZWRpdiIsIFNJTkcgKTsNCisJcmV0dXJuOw0KKwl9DQorZG56cm8yOg0KKw0KK2kgPSBfX2VkaXZtKCBhaSwgYmkgKTsNCisvKiBjYWxjdWxhdGUgZXhwb25lbnQgKi8NCitsdCA9IGx0YiAtIGx0YSArIEVYT05FOw0KK19fZW1kbm9ybSggYmksIGksIDAsIGx0LCA2NCwgTkJJVFMgKTsNCisvKiBzZXQgdGhlIHNpZ24gKi8NCitpZiggYWlbMF0gPT0gYmlbMF0gKQ0KKwliaVswXSA9IDA7DQorZWxzZQ0KKwliaVswXSA9IDBYZmZmZjsNCitfX2Vtb3ZvKCBiaSwgYyApOw0KK30NCisNCit2b2lkIF9fZTY0dG9lKHNob3J0IHVuc2lnbmVkIGludCAqcGUsIHNob3J0IHVuc2lnbmVkIGludCAqeSkNCit7DQordW5zaWduZWQgc2hvcnQgeXlbTkldOw0KK3Vuc2lnbmVkIHNob3J0ICpwLCAqcSwgKmU7DQoraW50IGk7DQorDQorZSA9IHBlOw0KK3AgPSB5eTsNCitmb3IoIGk9MDsgaTxORS01OyBpKysgKQ0KKwkqcCsrID0gMDsNCisjaWZkZWYgSUJNUEMNCitmb3IoIGk9MDsgaTw1OyBpKysgKQ0KKwkqcCsrID0gKmUrKzsNCisjZW5kaWYNCisjaWZkZWYgREVDDQorZm9yKCBpPTA7IGk8NTsgaSsrICkNCisJKnArKyA9ICplKys7DQorI2VuZGlmDQorI2lmZGVmIE1JRUVFDQorcCA9ICZ5eVswXSArIChORS0xKTsNCisqcC0tID0gKmUrKzsNCisrK2U7DQorZm9yKCBpPTA7IGk8NDsgaSsrICkNCisJKnAtLSA9ICplKys7DQorI2VuZGlmDQorDQorI2lmZGVmIElCTVBDDQorLyogRm9yIEludGVsIGxvbmcgZG91YmxlLCBzaGlmdCBkZW5vcm1hbCBzaWduaWZpY2FuZCB1cCAxDQorICAgLS0gYnV0IG9ubHkgaWYgdGhlIHRvcCBzaWduaWZpY2FuZCBiaXQgaXMgemVyby4gICovDQoraWYoKHl5W05FLTFdICYgMHg3ZmZmKSA9PSAwICYmICh5eVtORS0yXSAmIDB4ODAwMCkgPT0gMCkNCisgIHsNCisgICAgdW5zaWduZWQgc2hvcnQgdGVtcFtOSSsxXTsNCisgICAgX19lbW92aSh5eSwgdGVtcCk7DQorICAgIF9fZXNodXAxKHRlbXApOw0KKyAgICBfX2Vtb3ZvKHRlbXAseSk7DQorICAgIHJldHVybjsNCisgIH0NCisjZW5kaWYNCisjaWZkZWYgSU5GSU5JVFkNCisvKiBQb2ludCB0byB0aGUgZXhwb25lbnQgZmllbGQuICAqLw0KK3AgPSAmeXlbTkUtMV07DQoraWYoICpwID09IDB4N2ZmZiApDQorCXsNCisjaWZkZWYgTkFOUw0KKyNpZmRlZiBJQk1QQw0KKwlmb3IoIGk9MDsgaTw0OyBpKysgKQ0KKwkJew0KKwkJaWYoKGkgIT0gMyAmJiBwZVtpXSAhPSAwKQ0KKwkJICAgLyogQ2hlY2sgZm9yIEludGVsIGxvbmcgZG91YmxlIGluZmluaXR5IHBhdHRlcm4uICAqLw0KKwkJICAgfHwgKGkgPT0gMyAmJiBwZVtpXSAhPSAweDgwMDApKQ0KKwkJCXsNCisJCQlfX2VuYW5fTkJJVFMoIHkgKTsNCisJCQlyZXR1cm47DQorCQkJfQ0KKwkJfQ0KKyNlbHNlDQorCWZvciggaT0xOyBpPD00OyBpKysgKQ0KKwkJew0KKwkJaWYoIHBlW2ldICE9IDAgKQ0KKwkJCXsNCisJCQlfX2VuYW5fTkJJVFMoIHkgKTsNCisJCQlyZXR1cm47DQorCQkJfQ0KKwkJfQ0KKyNlbmRpZg0KKyNlbmRpZiAvKiBOQU5TICovDQorCV9fZWNsZWFyKCB5ICk7DQorCV9fZWluZmluKCB5ICk7DQorCWlmKCAqcCAmIDB4ODAwMCApDQorCQlfX2VuZWcoeSk7DQorCXJldHVybjsNCisJfQ0KKyNlbmRpZg0KK3AgPSB5eTsNCitxID0geTsNCitmb3IoIGk9MDsgaTxORTsgaSsrICkNCisJKnErKyA9ICpwKys7DQorfQ0KKw0KKyNlbmRpZiAvKiBVU0VfTERUT0EgKi8gDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2NlcGhlc19lbWF0aC5oIGIvbWluZ3ctdzY0LWNydC9tYXRoL2NlcGhlc19lbWF0aC5oCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdiNzVkOTQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvY2VwaGVzX2VtYXRoLmgKQEAgLTAsMCArMSw3MTMgQEAKKyNpZm5kZWYgX0NFUEhFU19FTUFUSF9IDQorI2RlZmluZSBfQ0VQSEVTX0VNQVRIX0gNCisNCisvKiBUaGlzIGZpbGUgaXMgZXh0cmFjdGVkIGZyb20gUyBMIE1vc2hpZXIncyAgaW9sZG91YmwuYywNCisgKiBtb2RpZmllZCBmb3IgdXNlIGluIE1pbkdXIA0KKyAqDQorICogRXh0ZW5kZWQgcHJlY2lzaW9uIGFyaXRobWV0aWMgZnVuY3Rpb25zIGZvciBsb25nIGRvdWJsZSBJL08uDQorICogVGhpcyBwcm9ncmFtIGhhcyBiZWVuIHBsYWNlZCBpbiB0aGUgcHVibGljIGRvbWFpbi4NCisgKi8NCisNCisgICANCisNCisvKg0KKyAqIFJldmlzaW9uIGhpc3Rvcnk6DQorICoNCisgKiAgNSBKYW4gODQJUERQLTExIGFzc2VtYmx5IGxhbmd1YWdlIHZlcnNpb24NCisgKiAgNiBEZWMgODYJQyBsYW5ndWFnZSB2ZXJzaW9uDQorICogMzAgQXVnIDg4CTEwMCBkaWdpdCB2ZXJzaW9uLCBpbXByb3ZlZCByb3VuZGluZw0KKyAqIDE1IE1heSA5MiAgICA4MC1iaXQgbG9uZyBkb3VibGUgc3VwcG9ydA0KKyAqDQorICogQXV0aG9yOiAgUy4gTC4gTW9zaGllci4NCisgKg0KKyAqIDYgT2N0IDAyCU1vZGlmaWVkIGZvciBNaW5HVyBieSBpbmxpbmluZyB1dGlsaXR5IHJvdXRpbmVzLA0KKyAqIAkJcmVtb3ZpbmcgZ2xvYmFsIHZhcmlhYmxlcywgYW5kIHNwbGl0dGluZyBvdXQgc3RydG9sZA0KKyAqCQlmcm9tIF9JT19sZHRvYSBhbmQgX0lPX2xkdG9zdHIuDQorICogIA0KKyAqCQlEYW5ueSBTbWl0aCA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+DQorICogDQorICovDQorDQorICANCisNCisvKgkJCQkJCQlpZWVlLmMNCisgKg0KKyAqICAgIEV4dGVuZGVkIHByZWNpc2lvbiBJRUVFIGJpbmFyeSBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljIHJvdXRpbmVzDQorICoNCisgKiBOdW1iZXJzIGFyZSBzdG9yZWQgaW4gQyBsYW5ndWFnZSBhcyBhcnJheXMgb2YgMTYtYml0IHVuc2lnbmVkDQorICogc2hvcnQgaW50ZWdlcnMuICBUaGUgYXJndW1lbnRzIG9mIHRoZSByb3V0aW5lcyBhcmUgcG9pbnRlcnMgdG8NCisgKiB0aGUgYXJyYXlzLg0KKyAqDQorICoNCisgKiBFeHRlcm5hbCBlIHR5cGUgZGF0YSBzdHJ1Y3R1cmUsIHNpbXVsYXRlcyBJbnRlbCA4MDg3IGNoaXANCisgKiB0ZW1wb3JhcnkgcmVhbCBmb3JtYXQgYnV0IHBvc3NpYmx5IHdpdGggYSBsYXJnZXIgc2lnbmlmaWNhbmQ6DQorICoNCisgKglORS0xIHNpZ25pZmljYW5kIHdvcmRzCShsZWFzdCBzaWduaWZpY2FudCB3b3JkIGZpcnN0LA0KKyAqCQkJCSBtb3N0IHNpZ25pZmljYW50IGJpdCBpcyBub3JtYWxseSBzZXQpDQorICoJZXhwb25lbnQJCSh2YWx1ZSA9IEVYT05FIGZvciAxLjAsDQorICoJCQkJdG9wIGJpdCBpcyB0aGUgc2lnbikNCisgKg0KKyAqDQorICogSW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmUgb2YgYSBudW1iZXIgKGEgIndvcmQiIGlzIDE2IGJpdHMpOg0KKyAqDQorICogZWlbMF0Jc2lnbiB3b3JkCSgwIGZvciBwb3NpdGl2ZSwgMHhmZmZmIGZvciBuZWdhdGl2ZSkNCisgKiBlaVsxXQliaWFzZWQgX19leHBvbmVudAkodmFsdWUgPSBFWE9ORSBmb3IgdGhlIG51bWJlciAxLjApDQorICogZWlbMl0JaGlnaCBndWFyZCB3b3JkCShhbHdheXMgemVybyBhZnRlciBub3JtYWxpemF0aW9uKQ0KKyAqIGVpWzNdDQorICogdG8gZWlbTkktMl0Jc2lnbmlmaWNhbmQJKE5JLTQgc2lnbmlmaWNhbmQgd29yZHMsDQorICoJCQkJIG1vc3Qgc2lnbmlmaWNhbnQgd29yZCBmaXJzdCwNCisgKgkJCQkgbW9zdCBzaWduaWZpY2FudCBiaXQgaXMgc2V0KQ0KKyAqIGVpW05JLTFdCWxvdyBndWFyZCB3b3JkCSgweDgwMDAgYml0IGlzIHJvdW5kaW5nIHBsYWNlKQ0KKyAqDQorICoNCisgKg0KKyAqCQlSb3V0aW5lcyBmb3IgZXh0ZXJuYWwgZm9ybWF0IG51bWJlcnMNCisgKg0KKyAqCV9fYXNjdG9lNjQoIHN0cmluZywgJmQgKQlBU0NJSSBzdHJpbmcgdG8gbG9uZyBkb3VibGUNCisgKglfX2FzY3RvZWcoIHN0cmluZywgZSwgcHJlYyApCUFTQ0lJIHN0cmluZyB0byBzcGVjaWZpZWQgcHJlY2lzaW9uDQorICoJX19lNjR0b2UoICZkLCBlICkJCUlFRUUgbG9uZyBkb3VibGUgcHJlY2lzaW9uIHRvIGUgdHlwZQ0KKyAqCV9fZWFkZCggYSwgYiwgYyApCQljID0gYiArIGENCisgKglfX2VjbGVhcihlKQkJCWUgPSAwDQorICoJX19lY21wIChhLCBiKQkJCVJldHVybnMgMSBpZiBhID4gYiwgMCBpZiBhID09IGIsDQorICoJCQkJCS0xIGlmIGEgPCBiLCAtMiBpZiBlaXRoZXIgYSBvciBiIGlzIGEgTmFOLg0KKyAqCV9fZWRpdiggYSwgYiwgYyApCQljID0gYiAvIGENCisgKglfX2VmbG9vciggYSwgYiApCQl0cnVuY2F0ZSB0byBpbnRlZ2VyLCB0b3dhcmQgLWluZmluaXR5DQorICoJX19lZnJleHAoIGEsIGV4cCwgcyApCQlleHRyYWN0IGV4cG9uZW50IGFuZCBzaWduaWZpY2FuZA0KKyAqCV9fZWlmcmFjKCBlLCAmbCwgZnJhYyApICAgCWUgdG8gbG9uZyBpbnRlZ2VyIGFuZCBlIHR5cGUgZnJhY3Rpb24NCisgKglfX2V1aWZyYWMoIGUsICZsLCBmcmFjICkgIAllIHRvIHVuc2lnbmVkIGxvbmcgaW50ZWdlciBhbmQgZSB0eXBlIGZyYWN0aW9uDQorICoJX19laW5maW4oIGUgKQkJCXNldCBlIHRvIGluZmluaXR5LCBsZWF2aW5nIGl0cyBzaWduIGFsb25lDQorICoJX19lbGRleHAoIGEsIG4sIGIgKQkJbXVsdGlwbHkgYnkgMioqbg0KKyAqCV9fZW1vdiggYSwgYiApCQkJYiA9IGENCisgKglfX2VtdWwoIGEsIGIsIGMgKQkJYyA9IGIgKiBhDQorICoJX19lbmVnKGUpCQkJZSA9IC1lDQorICoJX19lcm91bmQoIGEsIGIgKQkJYiA9IG5lYXJlc3QgaW50ZWdlciB2YWx1ZSB0byBhDQorICoJX19lc3ViKCBhLCBiLCBjICkJCWMgPSBiIC0gYQ0KKyAqCV9fZTI0dG9hc2MoICZmLCBzdHIsIG4gKQlzaW5nbGUgdG8gQVNDSUkgc3RyaW5nLCBuIGRpZ2l0cyBhZnRlciBkZWNpbWFsDQorICoJX19lNTN0b2FzYyggJmQsIHN0ciwgbiApCWRvdWJsZSB0byBBU0NJSSBzdHJpbmcsIG4gZGlnaXRzIGFmdGVyIGRlY2ltYWwNCisgKglfX2U2NHRvYXNjKCAmZCwgc3RyLCBuICkJbG9uZyBkb3VibGUgdG8gQVNDSUkgc3RyaW5nDQorICoJX19ldG9hc2MoIGUsIHN0ciwgbiApCQllIHRvIEFTQ0lJIHN0cmluZywgbiBkaWdpdHMgYWZ0ZXIgZGVjaW1hbA0KKyAqCV9fZXRvZTI0KCBlLCAmZiApCQljb252ZXJ0IGUgdHlwZSB0byBJRUVFIHNpbmdsZSBwcmVjaXNpb24NCisgKglfX2V0b2U1MyggZSwgJmQgKQkJY29udmVydCBlIHR5cGUgdG8gSUVFRSBkb3VibGUgcHJlY2lzaW9uDQorICoJX19ldG9lNjQoIGUsICZkICkJCWNvbnZlcnQgZSB0eXBlIHRvIElFRUUgbG9uZyBkb3VibGUgcHJlY2lzaW9uDQorICoJX19laXNuZWcoIGUgKSAgICAgICAgICAgICAJMSBpZiBzaWduIGJpdCBvZiBlICE9IDAsIGVsc2UgMA0KKyAqCV9fZWlzaW5mKCBlICkgICAgICAgICAgICAgCTEgaWYgZSBoYXMgbWF4aW11bSBleHBvbmVudCAobm9uLUlFRUUpDQorICoJCQkJCW9yIGlzIGluZmluaXRlIChJRUVFKQ0KKyAqCV9fZWlzbmFuKCBlICkgICAgICAgICAgICAgCTEgaWYgZSBpcyBhIE5hTg0KKyAqCV9fZXNxcnQoIGEsIGIgKQkJCWIgPSBzcXVhcmUgcm9vdCBvZiBhDQorICoNCisgKg0KKyAqCQlSb3V0aW5lcyBmb3IgaW50ZXJuYWwgZm9ybWF0IG51bWJlcnMNCisgKg0KKyAqCV9fZWFkZG0oIGFpLCBiaSApCQlhZGQgc2lnbmlmaWNhbmRzLCBiaSA9IGJpICsgYWkNCisgKglfX2VjbGVheihlaSkJCWVpID0gMA0KKyAqCV9fZWNsZWF6cyhlaSkJCXNldCBlaSA9IDAgYnV0IGxlYXZlIGl0cyBzaWduIGFsb25lDQorICoJX19lY21wbSggYWksIGJpICkJCWNvbXBhcmUgc2lnbmlmaWNhbmRzLCByZXR1cm4gMSwgMCwgb3IgLTENCisgKglfX2VkaXZtKCBhaSwgYmkgKQkJZGl2aWRlICBzaWduaWZpY2FuZHMsIGJpID0gYmkgLyBhaQ0KKyAqCV9fZW1kbm9ybShhaSxsLHMsZXhwKQlub3JtYWxpemUgYW5kIHJvdW5kIG9mZg0KKyAqCV9fZW1vdmkoIGEsIGFpICkJCWNvbnZlcnQgZXh0ZXJuYWwgYSB0byBpbnRlcm5hbCBhaQ0KKyAqCV9fZW1vdm8oIGFpLCBhICkJCWNvbnZlcnQgaW50ZXJuYWwgYWkgdG8gZXh0ZXJuYWwgYQ0KKyAqCV9fZW1vdnooIGFpLCBiaSApCQliaSA9IGFpLCBsb3cgZ3VhcmQgd29yZCBvZiBiaSA9IDANCisgKglfX2VtdWxtKCBhaSwgYmkgKQkJbXVsdGlwbHkgc2lnbmlmaWNhbmRzLCBiaSA9IGJpICogYWkNCisgKglfX2Vub3JtbHooZWkpCQlsZWZ0LWp1c3RpZnkgdGhlIHNpZ25pZmljYW5kDQorICoJX19lc2hkbjEoIGFpICkJCXNoaWZ0IHNpZ25pZmljYW5kIGFuZCBndWFyZHMgZG93biAxIGJpdA0KKyAqCV9fZXNoZG44KCBhaSApCQlzaGlmdCBkb3duIDggYml0cw0KKyAqCV9fZXNoZG42KCBhaSApCQlzaGlmdCBkb3duIDE2IGJpdHMNCisgKglfX2VzaGlmdCggYWksIG4gKQkJc2hpZnQgYWkgbiBiaXRzIHVwIChvciBkb3duIGlmIG4gPCAwKQ0KKyAqCV9fZXNodXAxKCBhaSApCQlzaGlmdCBzaWduaWZpY2FuZCBhbmQgZ3VhcmRzIHVwIDEgYml0DQorICoJX19lc2h1cDgoIGFpICkJCXNoaWZ0IHVwIDggYml0cw0KKyAqCV9fZXNodXA2KCBhaSApCQlzaGlmdCB1cCAxNiBiaXRzDQorICoJX19lc3VibSggYWksIGJpICkJCXN1YnRyYWN0IHNpZ25pZmljYW5kcywgYmkgPSBiaSAtIGFpDQorICoNCisgKg0KKyAqIFRoZSByZXN1bHQgaXMgYWx3YXlzIG5vcm1hbGl6ZWQgYW5kIHJvdW5kZWQgdG8gTkktNCB3b3JkIHByZWNpc2lvbg0KKyAqIGFmdGVyIGVhY2ggYXJpdGhtZXRpYyBvcGVyYXRpb24uDQorICoNCisgKiBFeGNlcHRpb24gZmxhZ3MgYXJlIE5PVCBmdWxseSBzdXBwb3J0ZWQuDQorICoNCisgKiBEZWZpbmUgSU5GSU5JVFkgaW4gbWNvbmYuaCBmb3Igc3VwcG9ydCBvZiBpbmZpbml0eTsgb3RoZXJ3aXNlIGENCisgKiBzYXR1cmF0aW9uIGFyaXRobWV0aWMgaXMgaW1wbGVtZW50ZWQuDQorICoNCisgKiBEZWZpbmUgTkFOUyBmb3Igc3VwcG9ydCBvZiBOb3QtYS1OdW1iZXIgaXRlbXM7IG90aGVyd2lzZSB0aGUNCisgKiBhcml0aG1ldGljIHdpbGwgbmV2ZXIgcHJvZHVjZSBhIE5hTiBvdXRwdXQsIGFuZCBtaWdodCBiZSBjb25mdXNlZA0KKyAqIGJ5IGEgTmFOIGlucHV0Lg0KKyAqIElmIE5hTidzIGFyZSBzdXBwb3J0ZWQsIHRoZSBvdXRwdXQgb2YgZWNtcChhLGIpIGlzIC0yIGlmDQorICogZWl0aGVyIGEgb3IgYiBpcyBhIE5hTi4gVGhpcyBtZWFucyBhc2tpbmcgaWYoZWNtcChhLGIpIDwgMCkNCisgKiBtYXkgbm90IGJlIGxlZ2l0aW1hdGUuIFVzZSBpZihlY21wKGEsYikgPT0gLTEpIGZvciBsZXNzLXRoYW4NCisgKiBpZiBpbiBkb3VidC4NCisgKiBTaWduYWxpbmcgTmFOJ3MgYXJlIE5PVCBzdXBwb3J0ZWQ7IHRoZXkgYXJlIHRyZWF0ZWQgdGhlIHNhbWUNCisgKiBhcyBxdWlldCBOYU4ncy4NCisgKg0KKyAqIERlbm9ybWFscyBhcmUgYWx3YXlzIHN1cHBvcnRlZCBoZXJlIHdoZXJlIGFwcHJvcHJpYXRlIChlLmcuLCBub3QNCisgKiBmb3IgY29udmVyc2lvbiB0byBERUMgbnVtYmVycykuDQorICovDQorDQorI2luY2x1ZGUgPHN0ZGlvLmg+DQorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KKyNpbmNsdWRlIDxzdHJpbmcuaD4NCisjaW5jbHVkZSA8ZXJybm8uaD4NCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxsb2NhbGUuaD4NCisjaW5jbHVkZSA8Y3R5cGUuaD4NCisNCisjZGVmaW5lIGFsbG9jYSBfX2J1aWx0aW5fYWxsb2NhDQorDQorLyogRG9uJ3QgYnVpbGQgbm9uLUFOU0kgX0lPX2xkdG9hLiAgSXQgaXMgbm90IHRocmVhZCBzYWZlLiAqLyANCisjaWZuZGVmIFVTRV9MRFRPQQ0KKyNkZWZpbmUgVVNFX0xEVE9BIDANCisjZW5kaWYNCisNCisNCisgLyogTnVtYmVyIG9mIDE2IGJpdCB3b3JkcyBpbiBleHRlcm5hbCB4IHR5cGUgZm9ybWF0ICovDQorI2RlZmluZSBORSA2DQorDQorIC8qIE51bWJlciBvZiAxNiBiaXQgd29yZHMgaW4gaW50ZXJuYWwgZm9ybWF0ICovDQorI2RlZmluZSBOSSAoTkUrMykNCisNCisgLyogQXJyYXkgb2Zmc2V0IHRvIGV4cG9uZW50ICovDQorI2RlZmluZSBFIDENCisNCisgLyogQXJyYXkgb2Zmc2V0IHRvIGhpZ2ggZ3VhcmQgd29yZCAqLw0KKyNkZWZpbmUgTSAyDQorDQorIC8qIE51bWJlciBvZiBiaXRzIG9mIHByZWNpc2lvbiAqLw0KKyNkZWZpbmUgTkJJVFMgKChOSS00KSoxNikNCisNCisgLyogTWF4aW11bSBudW1iZXIgb2YgZGVjaW1hbCBkaWdpdHMgaW4gQVNDSUkgY29udmVyc2lvbg0KKyAgKiA9IE5CSVRTKmxvZzEwKDIpDQorICAqLw0KKyNkZWZpbmUgTkRFQyAoTkJJVFMqOC8yNykNCisNCisgLyogVGhlIGV4cG9uZW50IG9mIDEuMCAqLw0KKyNkZWZpbmUgRVhPTkUgKDB4M2ZmZikNCisNCisNCisjZGVmaW5lICBtdGhlcnIoeCx5KSANCisNCisNCitleHRlcm4gbG9uZyBkb3VibGUgc3RydG9sZCAoY29uc3QgY2hhciAqIF9fcmVzdHJpY3RfXyBzLCBjaGFyICoqIF9fcmVzdHJpY3RfXyBzZSk7DQorZXh0ZXJuIGludCBfX2FzY3RvZTY0KGNvbnN0IGNoYXIgKiBfX3Jlc3RyaWN0X18gc3MsDQorCSAgICAgICBzaG9ydCB1bnNpZ25lZCBpbnQgKiBfX3Jlc3RyaWN0X18geSk7DQorZXh0ZXJuIHZvaWQgX19lbXVsKGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqICBhLA0KKwkJIGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqICBiLA0KKwkJIHNob3J0IHVuc2lnbmVkIGludCAqIGMpOw0KK2V4dGVybiBpbnQgX19lY21wKGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqIF9fcmVzdHJpY3RfXyBhLA0KKwkJY29uc3Qgc2hvcnQgdW5zaWduZWQgaW50ICogIF9fcmVzdHJpY3RfXyBiKTsNCitleHRlcm4gaW50IF9fZW5vcm1seihzaG9ydCB1bnNpZ25lZCBpbnQgKngpOw0KK2V4dGVybiBpbnQgX19lc2hpZnQoc2hvcnQgdW5zaWduZWQgaW50ICp4LCBpbnQgc2MpOw0KK2V4dGVybiB2b2lkIF9fZWFkZG0oY29uc3Qgc2hvcnQgdW5zaWduZWQgaW50ICAqICBfX3Jlc3RyaWN0X18gIHgsDQorCSAgICAgICAgICBzaG9ydCB1bnNpZ25lZCBpbnQgKiAgX19yZXN0cmljdF9fICB5KTsNCitleHRlcm4gdm9pZCBfX2VzdWJtKGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqIF9fcmVzdHJpY3RfXyAgeCwNCisJCSAgc2hvcnQgdW5zaWduZWQgaW50ICogIF9fcmVzdHJpY3RfXyB5KTsNCitleHRlcm4gdm9pZCBfX2VtZG5vcm0oc2hvcnQgdW5zaWduZWQgaW50ICpzLCBpbnQgbG9zdCwgaW50IHN1YmZsZywNCisJCSAgICAgIGludCBleHAsIGludCByY250cmwsIGNvbnN0IGludCBybmRwcmMpOw0KK2V4dGVybiB2b2lkIF9fdG9lNjQoc2hvcnQgdW5zaWduZWQgaW50ICogIF9fcmVzdHJpY3RfXyAgYSwNCisJCSAgc2hvcnQgdW5zaWduZWQgaW50ICogIF9fcmVzdHJpY3RfXyAgYik7DQorZXh0ZXJuIGludCBfX2VkaXZtKHNob3J0IHVuc2lnbmVkIGludCAqICBfX3Jlc3RyaWN0X18gIGRlbiwNCisJCSBzaG9ydCB1bnNpZ25lZCBpbnQgKiBfX3Jlc3RyaWN0X18gIG51bSk7DQorZXh0ZXJuIGludCBfX2VtdWxtKGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqICBfX3Jlc3RyaWN0X18gYSwNCisJCSBzaG9ydCB1bnNpZ25lZCBpbnQgKiAgX19yZXN0cmljdF9fIGIpOw0KK2V4dGVybiB2b2lkIF9fZW1vdmkoY29uc3Qgc2hvcnQgdW5zaWduZWQgaW50ICogX19yZXN0cmljdF9fIGEsDQorCQkgIHNob3J0IHVuc2lnbmVkIGludCAqIF9fcmVzdHJpY3RfXyBiKTsNCitleHRlcm4gdm9pZCBfX2Vtb3ZvKGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqIF9fcmVzdHJpY3RfXyBhLA0KKwkJICBzaG9ydCB1bnNpZ25lZCBpbnQgKiBfX3Jlc3RyaWN0X18gYik7DQorDQorI2lmIFVTRV9MRFRPQQ0KKw0KK2V4dGVybiBjaGFyICogX0lPX2xkdG9hKGxvbmcgZG91YmxlLCBpbnQsIGludCwgaW50ICosIGludCAqLCBjaGFyICoqKTsNCitleHRlcm4gdm9pZCBfSU9fbGR0b3N0cihsb25nIGRvdWJsZSAqeCwgY2hhciAqc3RyaW5nLCBpbnQgbmRpZ3MsDQorCQkJaW50IGZsYWdzLCBjaGFyIGZtdCk7DQorDQorZXh0ZXJuIHZvaWQgX19laXJlbWFpbihzaG9ydCB1bnNpZ25lZCBpbnQgKiBfX3Jlc3RyaWN0X18gZGVuLA0KKwkJICAgICAgIHNob3J0IHVuc2lnbmVkIGludCAqX19yZXN0cmljdF9fIG51bSwNCisJCSAgICAgICBzaG9ydCB1bnNpZ25lZCBpbnQgKl9fcmVzdHJpY3RfXyBlcXVvdCk7DQorZXh0ZXJuIHZvaWQgX19lZmxvb3Ioc2hvcnQgdW5zaWduZWQgaW50ICp4LCBzaG9ydCB1bnNpZ25lZCBpbnQgKnkpOw0KK2V4dGVybiB2b2lkIF9fZWFkZDEoY29uc3Qgc2hvcnQgdW5zaWduZWQgaW50ICogX19yZXN0cmljdF9fIGEsDQorCQkgIGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqIF9fcmVzdHJpY3RfXyBiLA0KKwkJICBzaG9ydCB1bnNpZ25lZCBpbnQgKiBfX3Jlc3RyaWN0X18gYywNCisJCSAgaW50IHN1YmZsZyk7DQorZXh0ZXJuIHZvaWQgX19lc3ViKGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqYSwgY29uc3Qgc2hvcnQgdW5zaWduZWQgaW50ICpiLA0KKwkJICAgc2hvcnQgdW5zaWduZWQgaW50ICpjKTsNCitleHRlcm4gdm9pZCBfX2VkaXYoY29uc3Qgc2hvcnQgdW5zaWduZWQgaW50ICphLCBjb25zdCBzaG9ydCB1bnNpZ25lZCBpbnQgKmIsDQorCQkgICBzaG9ydCB1bnNpZ25lZCBpbnQgKmMpOw0KK2V4dGVybiB2b2lkIF9fZTY0dG9lKHNob3J0IHVuc2lnbmVkIGludCAqcGUsIHNob3J0IHVuc2lnbmVkIGludCAqeSk7DQorDQorDQorI2VuZGlmDQorDQorc3RhdGljICBfX2lubGluZV9fIGludCBfX2Vpc25lZyhjb25zdCBzaG9ydCB1bnNpZ25lZCBpbnQgKngpOw0KK3N0YXRpYyAgX19pbmxpbmVfXyBpbnQgX19laXNpbmYoY29uc3Qgc2hvcnQgdW5zaWduZWQgaW50ICp4KTsNCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19laXNuYW4oY29uc3Qgc2hvcnQgdW5zaWduZWQgaW50ICp4KTsNCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19laXN6ZXJvKGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqYSk7DQorc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2Vtb3Z6KHJlZ2lzdGVyIGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqIF9fcmVzdHJpY3RfXyBhLA0KKwkJCSAgICAgICByZWdpc3RlciBzaG9ydCB1bnNpZ25lZCBpbnQgKiBfX3Jlc3RyaWN0X18gYik7DQorc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2VjbGVhcihyZWdpc3RlciBzaG9ydCB1bnNpZ25lZCBpbnQgKngpOw0KK3N0YXRpYyBfX2lubGluZV9fIHZvaWQgX19lY2xlYXoocmVnaXN0ZXIgc2hvcnQgdW5zaWduZWQgaW50ICp4aSk7DQorc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2VjbGVhenMocmVnaXN0ZXIgc2hvcnQgdW5zaWduZWQgaW50ICp4aSk7DQorc3RhdGljICBfX2lubGluZV9fIGludCBfX2VpaXNpbmYoY29uc3Qgc2hvcnQgdW5zaWduZWQgaW50ICp4KTsNCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19laWlzbmFuKGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqeCk7DQorc3RhdGljIF9faW5saW5lX18gaW50IF9fZWlpc3plcm8oY29uc3Qgc2hvcnQgdW5zaWduZWQgaW50ICp4KTsNCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fZW5hbl82NChzaG9ydCB1bnNpZ25lZCBpbnQgKm5hbik7DQorc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2VuYW5fTkJJVFMgKHNob3J0IHVuc2lnbmVkIGludCAqbmFuKTsNCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fZW5hbl9OSTE2IChzaG9ydCB1bnNpZ25lZCBpbnQgKm5hbik7DQorc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2VpbmZpbihyZWdpc3RlciBzaG9ydCB1bnNpZ25lZCBpbnQgKngpOw0KK3N0YXRpYyBfX2lubGluZV9fIHZvaWQgX19lbmVnKHNob3J0IHVuc2lnbmVkIGludCAqeCk7DQorc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2VzaHVwMShyZWdpc3RlciBzaG9ydCB1bnNpZ25lZCBpbnQgKngpOw0KK3N0YXRpYyBfX2lubGluZV9fIHZvaWQgX19lc2h1cDgocmVnaXN0ZXIgc2hvcnQgdW5zaWduZWQgaW50ICp4KTsNCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fZXNodXA2KHJlZ2lzdGVyIHNob3J0IHVuc2lnbmVkIGludCAqeCk7DQorc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2VzaGRuMShyZWdpc3RlciBzaG9ydCB1bnNpZ25lZCBpbnQgKngpOw0KK3N0YXRpYyBfX2lubGluZV9fIHZvaWQgX19lc2hkbjgocmVnaXN0ZXIgc2hvcnQgdW5zaWduZWQgaW50ICp4KTsNCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fZXNoZG42KHJlZ2lzdGVyIHNob3J0IHVuc2lnbmVkIGludCAqeCk7DQorDQorDQorDQorLyogSW50ZWwgSUVFRSwgbG93IG9yZGVyIHdvcmRzIGNvbWUgZmlyc3Q6DQorICovDQorI2RlZmluZSBJQk1QQyAxDQorDQorLyogRGVmaW5lIDEgZm9yIEFOU0kgQyBhdGFuMigpIGZ1bmN0aW9uDQorICogU2VlIGF0YW4uYyBhbmQgY2xvZy5jLg0KKyAqLw0KKyNkZWZpbmUgQU5TSUMgMQ0KKw0KKy8qZGVmaW5lIFZPTEFUSUxFIHZvbGF0aWxlKi8NCisjZGVmaW5lIFZPTEFUSUxFIA0KKw0KKy8qIEZvciAxMi1ieXRlIGxvbmcgZG91YmxlcyBvbiBhbiBpMzg2LCBwYWQgYSAxNi1iaXQgc2hvcnQgMA0KKyAqIHRvIHRoZSBlbmQgb2YgcmVhbCBjb25zdGFudHMgaW5pdGlhbGl6ZWQgYnkgaW50ZWdlciBhcnJheXMuDQorICoNCisgKiAjZGVmaW5lIFhQRCAwLA0KKyAqDQorICogT3RoZXJ3aXNlLCB0aGUgdHlwZSBpcyAxMCBieXRlcyBsb25nIGFuZCBYUEQgc2hvdWxkIGJlDQorICogZGVmaW5lZCBibGFuay4NCisgKg0KKyAqICNkZWZpbmUgWFBEDQorICovDQorI2RlZmluZSBYUEQgMCwNCisvKiAjZGVmaW5lIFhQRCAqLw0KKyNkZWZpbmUgTkFOUw0KKw0KKy8qIE5hTidzIHJlcXVpcmUgaW5maW5pdHkgc3VwcG9ydC4gKi8NCisjaWZkZWYgTkFOUw0KKyNpZm5kZWYgSU5GSU5JVFkNCisjZGVmaW5lIElORklOSVRZDQorI2VuZGlmDQorI2VuZGlmDQorDQorLyogVGhpcyBoYW5kbGVzIDY0LWJpdCBsb25nIGludHMuICovDQorI2RlZmluZSBMT05HQklUUyAoOCAqIHNpemVvZihsb25nKSkNCisNCisNCisjZGVmaW5lIE5URU4gMTINCisjZGVmaW5lIE1BWFAgNDA5Ng0KKw0KKy8qDQorOyBDbGVhciBvdXQgZW50aXJlIGV4dGVybmFsIGZvcm1hdCBudW1iZXIuDQorOw0KKzsgdW5zaWduZWQgc2hvcnQgeFtdOw0KKzsgZWNsZWFyKCB4ICk7DQorKi8NCisNCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fZWNsZWFyKHJlZ2lzdGVyIHNob3J0IHVuc2lnbmVkIGludCAqeCkNCit7DQorICBtZW1zZXQoeCwgMCwgTkUgKiBzaXplb2YodW5zaWduZWQgc2hvcnQpKTsNCit9DQorDQorDQorLyogTW92ZSBleHRlcm5hbCBmb3JtYXQgbnVtYmVyIGZyb20gYSB0byBiLg0KKyAqDQorICogZW1vdiggYSwgYiApOw0KKyAqLw0KKw0KK3N0YXRpYyBfX2lubGluZV9fIHZvaWQgX19lbW92KHJlZ2lzdGVyIGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqIF9fcmVzdHJpY3RfXyBhLA0KKwkJCSAgICByZWdpc3RlciBzaG9ydCB1bnNpZ25lZCBpbnQgKiBfX3Jlc3RyaWN0X18gYikNCit7DQorICBtZW1jcHkoYiwgYSwgTkUgKiBzaXplb2YodW5zaWduZWQgc2hvcnQpKTsNCit9DQorDQorDQorLyoNCis7CU5lZ2F0ZSBleHRlcm5hbCBmb3JtYXQgbnVtYmVyDQorOw0KKzsJdW5zaWduZWQgc2hvcnQgeFtORV07DQorOwllbmVnKCB4ICk7DQorKi8NCisNCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fZW5lZyhzaG9ydCB1bnNpZ25lZCBpbnQgKngpDQorew0KKw0KKyNpZmRlZiBOQU5TDQoraWYoIF9fZWlzbmFuKHgpICkNCisJcmV0dXJuOw0KKyNlbmRpZg0KK3hbTkUtMV0gXj0gMHg4MDAwOyAvKiBUb2dnbGUgdGhlIHNpZ24gYml0ICovDQorfQ0KKw0KKw0KKy8qIFJldHVybiAxIGlmIGV4dGVybmFsIGZvcm1hdCBudW1iZXIgaXMgbmVnYXRpdmUsDQorICogZWxzZSByZXR1cm4gemVyby4NCisgKi8NCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19laXNuZWcoY29uc3Qgc2hvcnQgdW5zaWduZWQgaW50ICp4KQ0KK3sNCisNCisjaWZkZWYgTkFOUw0KK2lmKCBfX2Vpc25hbih4KSApDQorCXJldHVybiggMCApOw0KKyNlbmRpZg0KK2lmKCB4W05FLTFdICYgMHg4MDAwICkNCisJcmV0dXJuKCAxICk7DQorZWxzZQ0KKwlyZXR1cm4oIDAgKTsNCit9DQorDQorDQorLyogUmV0dXJuIDEgaWYgZXh0ZXJuYWwgZm9ybWF0IG51bWJlciBoYXMgbWF4aW11bSBwb3NzaWJsZSBleHBvbmVudCwNCisgKiBlbHNlIHJldHVybiB6ZXJvLg0KKyAqLw0KK3N0YXRpYyBfX2lubGluZV9fIGludCBfX2Vpc2luZihjb25zdCBzaG9ydCB1bnNpZ25lZCBpbnQgKngpDQorew0KKw0KK2lmKCAoeFtORS0xXSAmIDB4N2ZmZikgPT0gMHg3ZmZmICkNCisJew0KKyNpZmRlZiBOQU5TDQorCWlmKCBfX2Vpc25hbih4KSApDQorCQlyZXR1cm4oIDAgKTsNCisjZW5kaWYNCisJcmV0dXJuKCAxICk7DQorCX0NCitlbHNlDQorCXJldHVybiggMCApOw0KK30NCisNCisvKiBDaGVjayBpZiBlLXR5cGUgbnVtYmVyIGlzIG5vdCBhIG51bWJlci4NCisgKi8NCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19laXNuYW4oY29uc3Qgc2hvcnQgdW5zaWduZWQgaW50ICp4KQ0KK3sNCisjaWZkZWYgTkFOUw0KK2ludCBpOw0KKy8qIE5hTiBoYXMgbWF4aW11bSBfX2V4cG9uZW50ICovDQoraWYoICh4W05FLTFdICYgMHg3ZmZmKSA9PSAweDdmZmYgKQ0KKy8qIC4uLiBhbmQgbm9uLXplcm8gc2lnbmlmaWNhbmQgZmllbGQuICovDQorICAgIGZvciggaT0wOyBpPE5FLTE7IGkrKyApDQorCXsNCisJaWYoICp4KysgIT0gMCApDQorCQlyZXR1cm4gKDEpOw0KKwl9DQorI2VuZGlmDQorcmV0dXJuICgwKTsNCit9DQorDQorLyoNCis7IEZpbGwgX19lbnRpcmUgbnVtYmVyLCBpbmNsdWRpbmcgX19leHBvbmVudCBhbmQgc2lnbmlmaWNhbmQsIHdpdGgNCis7IGxhcmdlc3QgcG9zc2libGUgbnVtYmVyLiAgVGhlc2UgcHJvZ3JhbXMgaW1wbGVtZW50IGEgc2F0dXJhdGlvbg0KKzsgdmFsdWUgdGhhdCBpcyBhbiBvcmRpbmFyeSwgbGVnYWwgbnVtYmVyLiAgQSBzcGVjaWFsIHZhbHVlDQorOyAiaW5maW5pdHkiIG1heSBhbHNvIGJlIGltcGxlbWVudGVkOyB0aGlzIHdvdWxkIHJlcXVpcmUgdGVzdHMNCis7IGZvciB0aGF0IHZhbHVlIGFuZCBpbXBsZW1lbnRhdGlvbiBvZiBzcGVjaWFsIHJ1bGVzIGZvciBhcml0aG1ldGljDQorOyBvcGVyYXRpb25zIGludm9sdmluZyBpbmlmaW5pdHkuDQorKi8NCisNCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fZWluZmluKHJlZ2lzdGVyIHNob3J0IHVuc2lnbmVkIGludCAqeCkNCit7DQorcmVnaXN0ZXIgaW50IGk7DQorDQorI2lmZGVmIElORklOSVRZDQorZm9yKCBpPTA7IGk8TkUtMTsgaSsrICkNCisJKngrKyA9IDA7DQorKnggfD0gMzI3Njc7DQorI2Vsc2UNCitmb3IoIGk9MDsgaTxORS0xOyBpKysgKQ0KKwkqeCsrID0gMHhmZmZmOw0KKyp4IHw9IDMyNzY2Ow0KKyooeC01KSA9IDA7DQorI2VuZGlmDQorfQ0KKw0KKy8qIENsZWFyIG91dCBpbnRlcm5hbCBmb3JtYXQgbnVtYmVyLg0KKyAqLw0KKw0KK3N0YXRpYyBfX2lubGluZV9fIHZvaWQgX19lY2xlYXoocmVnaXN0ZXIgc2hvcnQgdW5zaWduZWQgaW50ICp4aSkNCit7DQorICBtZW1zZXQoeGksIDAsIE5JICogc2l6ZW9mKHVuc2lnbmVkIHNob3J0KSk7DQorfQ0KKw0KKy8qIHNhbWUsIGJ1dCBkb24ndCB0b3VjaCB0aGUgc2lnbi4gKi8NCisNCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fZWNsZWF6cyhyZWdpc3RlciBzaG9ydCB1bnNpZ25lZCBpbnQgKnhpKQ0KK3sNCisgICsreGk7DQorICBtZW1zZXQoeGksIDAsIChOSS0xKSAqIHNpemVvZih1bnNpZ25lZCBzaG9ydCkpOw0KK30NCisNCisNCisNCisvKiBNb3ZlIGludGVybmFsIGZvcm1hdCBudW1iZXIgZnJvbSBhIHRvIGIuDQorICovDQorc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2Vtb3Z6KHJlZ2lzdGVyIGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqIF9fcmVzdHJpY3RfXyBhLA0KKwkJCSAgICAgcmVnaXN0ZXIgc2hvcnQgdW5zaWduZWQgaW50ICogX19yZXN0cmljdF9fIGIpDQorew0KKyAgbWVtY3B5KGIsIGEsIChOSS0xKSAqIHNpemVvZih1bnNpZ25lZCBzaG9ydCkpOw0KKyAgYltOSS0xXT0wOw0KK30NCisNCisvKiBSZXR1cm4gbm9uemVybyBpZiBpbnRlcm5hbCBmb3JtYXQgbnVtYmVyIGlzIGEgTmFOLg0KKyAqLw0KKw0KK3N0YXRpYyBfX2lubGluZV9fIGludCBfX2VpaXNuYW4gKGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqeCkNCit7DQoraW50IGk7DQorDQoraWYoICh4W0VdICYgMHg3ZmZmKSA9PSAweDdmZmYgKQ0KKwl7DQorCWZvciggaT1NKzE7IGk8Tkk7IGkrKyApDQorCQl7DQorCQlpZiggeFtpXSAhPSAwICkNCisJCQlyZXR1cm4oMSk7DQorCQl9DQorCX0NCityZXR1cm4oMCk7DQorfQ0KKw0KKy8qIFJldHVybiBub256ZXJvIGlmIGV4dGVybmFsIGZvcm1hdCBudW1iZXIgaXMgemVyby4gKi8NCisNCitzdGF0aWMgX19pbmxpbmVfXyBpbnQNCitfX2Vpc3plcm8oY29uc3Qgc2hvcnQgdW5zaWduZWQgaW50ICogYSkNCit7DQoraWYgKCooKGxvbmcgZG91YmxlKikgYSkgPT0gMCkNCisJcmV0dXJuICgxKTsNCityZXR1cm4gKDApOw0KK30NCisNCisvKiBSZXR1cm4gbm9uemVybyBpZiBpbnRlcm5hbCBmb3JtYXQgbnVtYmVyIGlzIHplcm8uICovDQorDQorc3RhdGljIF9faW5saW5lX18gaW50DQorX19laWlzemVybyhjb25zdCBzaG9ydCB1bnNpZ25lZCBpbnQgKiBhaSkNCit7DQorICBpbnQgaTsNCisgIC8qIHNraXAgdGhlIHNpZ24gd29yZCAqLw0KKyAgZm9yKCBpPTE7IGk8TkktMTsgaSsrICkNCisgICAgew0KKyAgICAgIGlmKCBhaVtpXSAhPSAwICkNCisgICAgICAgIHJldHVybiAoMCk7DQorICAgIH0NCisgIHJldHVybiAoMSk7DQorfQ0KKw0KKw0KKy8qIFJldHVybiBub256ZXJvIGlmIGludGVybmFsIGZvcm1hdCBudW1iZXIgaXMgaW5maW5pdGUuICovDQorDQorc3RhdGljIF9faW5saW5lX18gaW50IA0KK19fZWlpc2luZiAoY29uc3QgdW5zaWduZWQgc2hvcnQgKngpDQorew0KKw0KKyNpZmRlZiBOQU5TDQorICBpZiAoX19laWlzbmFuICh4KSkNCisgICAgcmV0dXJuICgwKTsNCisjZW5kaWYNCisgIGlmICgoeFtFXSAmIDB4N2ZmZikgPT0gMHg3ZmZmKQ0KKyAgICByZXR1cm4gKDEpOw0KKyAgcmV0dXJuICgwKTsNCit9DQorDQorLyoNCis7CUNvbXBhcmUgc2lnbmlmaWNhbmRzIG9mIG51bWJlcnMgaW4gaW50ZXJuYWwgZm9ybWF0Lg0KKzsJR3VhcmQgd29yZHMgYXJlIGluY2x1ZGVkIGluIHRoZSBjb21wYXJpc29uLg0KKzsNCis7CXVuc2lnbmVkIHNob3J0IGFbTkldLCBiW05JXTsNCis7CWNtcG0oIGEsIGIgKTsNCis7DQorOwlmb3IgdGhlIHNpZ25pZmljYW5kczoNCis7CXJldHVybnMJKzEgaWYgYSA+IGINCis7CQkgMCBpZiBhID09IGINCis7CQktMSBpZiBhIDwgYg0KKyovDQorc3RhdGljIF9faW5saW5lX18gaW50IF9fZWNtcG0ocmVnaXN0ZXIgY29uc3Qgc2hvcnQgdW5zaWduZWQgaW50ICogX19yZXN0cmljdF9fIGEsDQorCQkJICAgIHJlZ2lzdGVyIGNvbnN0IHNob3J0IHVuc2lnbmVkIGludCAqICBfX3Jlc3RyaWN0X18gYikNCit7DQoraW50IGk7DQorDQorYSArPSBNOyAvKiBza2lwIHVwIHRvIHNpZ25pZmljYW5kIGFyZWEgKi8NCitiICs9IE07DQorZm9yKCBpPU07IGk8Tkk7IGkrKyApDQorCXsNCisJaWYoICphKysgIT0gKmIrKyApDQorCQlnb3RvIGRpZnJudDsNCisJfQ0KK3JldHVybigwKTsNCisNCitkaWZybnQ6DQoraWYoICooLS1hKSA+ICooLS1iKSApDQorCXJldHVybigxKTsNCitlbHNlDQorCXJldHVybigtMSk7DQorfQ0KKw0KKw0KKy8qDQorOwlTaGlmdCBzaWduaWZpY2FuZCBkb3duIGJ5IDEgYml0DQorKi8NCisNCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fZXNoZG4xKHJlZ2lzdGVyIHNob3J0IHVuc2lnbmVkIGludCAqeCkNCit7DQorcmVnaXN0ZXIgdW5zaWduZWQgc2hvcnQgYml0czsNCitpbnQgaTsNCisNCit4ICs9IE07CS8qIHBvaW50IHRvIHNpZ25pZmljYW5kIGFyZWEgKi8NCisNCitiaXRzID0gMDsNCitmb3IoIGk9TTsgaTxOSTsgaSsrICkNCisJew0KKwlpZiggKnggJiAxICkNCisJCWJpdHMgfD0gMTsNCisJKnggPj49IDE7DQorCWlmKCBiaXRzICYgMiApDQorCQkqeCB8PSAweDgwMDA7DQorCWJpdHMgPDw9IDE7DQorCSsreDsNCisJfQkNCit9DQorDQorLyoNCis7CVNoaWZ0IHNpZ25pZmljYW5kIHVwIGJ5IDEgYml0DQorKi8NCisNCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fZXNodXAxKHJlZ2lzdGVyIHNob3J0IHVuc2lnbmVkIGludCAqeCkNCit7DQorcmVnaXN0ZXIgdW5zaWduZWQgc2hvcnQgYml0czsNCitpbnQgaTsNCisNCit4ICs9IE5JLTE7DQorYml0cyA9IDA7DQorDQorZm9yKCBpPU07IGk8Tkk7IGkrKyApDQorCXsNCisJaWYoICp4ICYgMHg4MDAwICkNCisJCWJpdHMgfD0gMTsNCisJKnggPDw9IDE7DQorCWlmKCBiaXRzICYgMiApDQorCQkqeCB8PSAxOw0KKwliaXRzIDw8PSAxOw0KKwktLXg7DQorCX0NCit9DQorDQorDQorDQorLyoNCis7CVNoaWZ0IHNpZ25pZmljYW5kIGRvd24gYnkgOCBiaXRzDQorKi8NCisNCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fZXNoZG44KHJlZ2lzdGVyIHNob3J0IHVuc2lnbmVkIGludCAqeCkNCit7DQorcmVnaXN0ZXIgdW5zaWduZWQgc2hvcnQgbmV3Ynl0LCBvbGRieXQ7DQoraW50IGk7DQorDQoreCArPSBNOw0KK29sZGJ5dCA9IDA7DQorZm9yKCBpPU07IGk8Tkk7IGkrKyApDQorCXsNCisJbmV3Ynl0ID0gKnggPDwgODsNCisJKnggPj49IDg7DQorCSp4IHw9IG9sZGJ5dDsNCisJb2xkYnl0ID0gbmV3Ynl0Ow0KKwkrK3g7DQorCX0NCit9DQorDQorLyoNCis7CVNoaWZ0IHNpZ25pZmljYW5kIHVwIGJ5IDggYml0cw0KKyovDQorDQorc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2VzaHVwOChyZWdpc3RlciBzaG9ydCB1bnNpZ25lZCBpbnQgKngpDQorew0KK2ludCBpOw0KK3JlZ2lzdGVyIHVuc2lnbmVkIHNob3J0IG5ld2J5dCwgb2xkYnl0Ow0KKw0KK3ggKz0gTkktMTsNCitvbGRieXQgPSAwOw0KKw0KK2ZvciggaT1NOyBpPE5JOyBpKysgKQ0KKwl7DQorCW5ld2J5dCA9ICp4ID4+IDg7DQorCSp4IDw8PSA4Ow0KKwkqeCB8PSBvbGRieXQ7DQorCW9sZGJ5dCA9IG5ld2J5dDsNCisJLS14Ow0KKwl9DQorfQ0KKw0KKy8qDQorOwlTaGlmdCBzaWduaWZpY2FuZCB1cCBieSAxNiBiaXRzDQorKi8NCisNCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fZXNodXA2KHJlZ2lzdGVyIHNob3J0IHVuc2lnbmVkIGludCAqeCkNCit7DQoraW50IGk7DQorcmVnaXN0ZXIgdW5zaWduZWQgc2hvcnQgKnA7DQorDQorcCA9IHggKyBNOw0KK3ggKz0gTSArIDE7DQorDQorZm9yKCBpPU07IGk8TkktMTsgaSsrICkNCisJKnArKyA9ICp4Kys7DQorDQorKnAgPSAwOw0KK30NCisNCisvKg0KKzsJU2hpZnQgc2lnbmlmaWNhbmQgZG93biBieSAxNiBiaXRzDQorKi8NCisNCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fZXNoZG42KHJlZ2lzdGVyIHNob3J0IHVuc2lnbmVkIGludCAqeCkNCit7DQoraW50IGk7DQorcmVnaXN0ZXIgdW5zaWduZWQgc2hvcnQgKnA7DQorDQoreCArPSBOSS0xOw0KK3AgPSB4ICsgMTsNCisNCitmb3IoIGk9TTsgaTxOSS0xOyBpKysgKQ0KKwkqKC0tcCkgPSAqKC0teCk7DQorDQorKigtLXApID0gMDsNCit9DQorDQorLyoNCis7CUFkZCBzaWduaWZpY2FuZHMNCis7CXggKyB5IHJlcGxhY2VzIHkNCisqLw0KKw0KK3N0YXRpYyBfX2lubGluZV9fIHZvaWQgX19lbmFuXzY0KHVuc2lnbmVkIHNob3J0KiBuYW4pDQorew0KKw0KKyAgaW50IGk7DQorICBmb3IoIGk9MDsgaTwzOyBpKysgKQ0KKyAgICAqbmFuKysgPSAwOw0KKyAgKm5hbisrID0gMHhjMDAwOw0KKyAgKm5hbisrID0gMHg3ZmZmOw0KKyAgKm5hbiA9IDA7DQorICByZXR1cm47DQorfQ0KKw0KK3N0YXRpYyBfX2lubGluZV9fIHZvaWQgX19lbmFuX05CSVRTKHVuc2lnbmVkIHNob3J0KiBuYW4pDQorew0KKyAgaW50IGk7IA0KKyAgZm9yKCBpPTA7IGk8TkUtMjsgaSsrICkNCisgICAgKm5hbisrID0gMDsNCisgICpuYW4rKyA9IDB4YzAwMDsNCisgICpuYW4gPSAweDdmZmY7DQorICByZXR1cm47DQorfQ0KKw0KK3N0YXRpYyBfX2lubGluZV9fIHZvaWQgX19lbmFuX05JMTYodW5zaWduZWQgc2hvcnQqIG5hbikNCit7DQorICBpbnQgaTsgDQorICAqbmFuKysgPSAwOw0KKyAgKm5hbisrID0gMHg3ZmZmOw0KKyAgKm5hbisrID0gMDsNCisgICpuYW4rKyA9IDB4YzAwMDsNCisgIGZvciggaT00OyBpPE5JOyBpKysgKQ0KKyAgICAqbmFuKysgPSAwOw0KKyAgcmV0dXJuOw0KK30NCisNCisjZW5kaWYgLyogX0NFUEhFU19FTUFUSF9IICovDQorDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2NlcGhlc19tY29uZi5oIGIvbWluZ3ctdzY0LWNydC9tYXRoL2NlcGhlc19tY29uZi5oCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE3NTVlNTkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvY2VwaGVzX21jb25mLmgKQEAgLTAsMCArMSwzOTUgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorI2luY2x1ZGUgPGVycm5vLmg+DQorDQorDQorI2RlZmluZSBJQk1QQyAxDQorI2RlZmluZSBBTlNJUFJPVCAxDQorI2RlZmluZSBNSU5VU1pFUk8gMQ0KKyNkZWZpbmUgSU5GSU5JVElFUyAxDQorI2RlZmluZSBOQU5TIDENCisjZGVmaW5lIERFTk9STUFMIDENCisjZGVmaW5lIFZPTEFUSUxFDQorI2RlZmluZSBtdGhlcnIoZm5hbWUsIGNvZGUpIA0KKyNkZWZpbmUgWFBEIDAsDQorDQorI2RlZmluZSBfQ0VQSEVTX1VTRV9FUlJOTw0KKw0KKyNpZmRlZiBfQ0VQSEVTX1VTRV9FUlJOTw0KKyNkZWZpbmUgX1NFVF9FUlJOTyh4KSBlcnJubyA9ICh4KQ0KKyNlbHNlDQorI2RlZmluZSBfU0VUX0VSUk5PKHgpDQorI2VuZGlmDQorDQorLyogY29uc3RhbnRzIHVzZWQgYnkgY2VwaGVzIGZ1bmN0aW9ucyAqLw0KKw0KKy8qIGRvdWJsZSAqLw0KKyNkZWZpbmUgTUFYTlVNCTEuNzk3NjkzMTM0ODYyMzE1OEUzMDgNCisjZGVmaW5lIE1BWExPRwk3LjA5NzgyNzEyODkzMzgzOTk2ODQzRTINCisjZGVmaW5lIE1JTkxPRwktNy4wODM5NjQxODUzMjI2NDEwNjIyNEUyDQorI2RlZmluZSBMT0dFMgk2LjkzMTQ3MTgwNTU5OTQ1MzA5NDE3RS0xDQorI2RlZmluZSBMT0cyRQkxLjQ0MjY5NTA0MDg4ODk2MzQwNzM2DQorI2RlZmluZSBQSQkzLjE0MTU5MjY1MzU4OTc5MzIzODQ2DQorI2RlZmluZSBQSU8yCTEuNTcwNzk2MzI2Nzk0ODk2NjE5MjMNCisjZGVmaW5lIFBJTzQJNy44NTM5ODE2MzM5NzQ0ODMwOTYxNkUtMQ0KKw0KKyNkZWZpbmUgTkVHWkVSTyAoLTAuMCkNCisjdW5kZWYgTkFODQorI3VuZGVmIElORklOSVRZDQorI2lmIChfX0dOVUNfXyA+IDMgfHwgKF9fR05VQ19fID09IDMgJiYgX19HTlVDX01JTk9SX18gPiAyKSkNCisjZGVmaW5lIElORklOSVRZIF9fYnVpbHRpbl9odWdlX3ZhbCgpDQorI2RlZmluZSBOQU4gX19idWlsdGluX25hbigiIikNCisjZWxzZQ0KK2V4dGVybiBkb3VibGUgX19JTkY7DQorI2RlZmluZSBJTkZJTklUWSAoX19JTkYpDQorZXh0ZXJuIGRvdWJsZSBfX1FOQU47DQorI2RlZmluZSBOQU4gKF9fUU5BTikNCisjZW5kaWYNCisNCisvKmxvbmcgZG91YmxlKi8NCisjZGVmaW5lIE1BWE5VTUwgMS4xODk3MzE0OTUzNTcyMzE3NjUwMjEyNjM4NTNFNDkzMkwNCisjZGVmaW5lIE1BWExPR0wJMS4xMzU2NTIzNDA2Mjk0MTQzOTQ5NDkyRTRMDQorI2RlZmluZSBNSU5MT0dMCS0xLjEzOTk0OTg1MzE0ODg4NjA1NTg2NzU4RTRMDQorI2RlZmluZSBMT0dFMkwJNi45MzE0NzE4MDU1OTk0NTMwOTQxNzIzRS0xTA0KKyNkZWZpbmUgTE9HMkVMCTEuNDQyNjk1MDQwODg4OTYzNDA3MzU5OUUwTA0KKyNkZWZpbmUgUElMCTMuMTQxNTkyNjUzNTg5NzkzMjM4NDYyNkwNCisjZGVmaW5lIFBJTzJMCTEuNTcwNzk2MzI2Nzk0ODk2NjE5MjMxM0wNCisjZGVmaW5lIFBJTzRMCTcuODUzOTgxNjMzOTc0NDgzMDk2MTU2NkUtMUwNCisNCisjZGVmaW5lIGlzZmluaXRlbCBpc2Zpbml0ZQ0KKyNkZWZpbmUgaXNpbmZsIGlzaW5mDQorI2RlZmluZSBpc25hbmwgaXNuYW4NCisjZGVmaW5lIHNpZ25iaXRsIHNpZ25iaXQNCisNCisjZGVmaW5lIE5FR1pFUk9MICgtMC4wTCkNCisNCisjdW5kZWYgTkFOTA0KKyN1bmRlZiBJTkZJTklUWUwNCisjaWYgKF9fR05VQ19fID4gMyB8fCAoX19HTlVDX18gPT0gMyAmJiBfX0dOVUNfTUlOT1JfXyA+IDIpKQ0KKyNkZWZpbmUgSU5GSU5JVFlMIF9fYnVpbHRpbl9odWdlX3ZhbGwoKQ0KKyNkZWZpbmUgTkFOTCBfX2J1aWx0aW5fbmFubCgiIikNCisjZWxzZQ0KK2V4dGVybiBsb25nIGRvdWJsZSBfX0lORkw7DQorI2RlZmluZSBJTkZJTklUWUwgKF9fSU5GTCkNCitleHRlcm4gbG9uZyBkb3VibGUgX19RTkFOTDsNCisjZGVmaW5lIE5BTkwgKF9fUU5BTkwpDQorI2VuZGlmDQorDQorLyogZmxvYXQgKi8NCisNCisjZGVmaW5lIE1BWE5VTUYJMy40MDI4MjM0NjYzODUyODg1OTgxMTcwNDE4MzQ4NDUxNjkyNTQ0ZTM4Rg0KKyNkZWZpbmUgTUFYTE9HRgk4OC43MjI4MzkwNTIwNjgzNUYNCisjZGVmaW5lIE1JTkxPR0YJLTEwMy4yNzg5Mjk5MDM0MzE4NTExMDNGIC8qIGxvZygyXi0xNDkpICovDQorI2RlZmluZSBMT0cyRUYJMS40NDI2OTUwNDA4ODg5NjM0MUYNCisjZGVmaW5lIExPR0UyRgkwLjY5MzE0NzE4MDU1OTk0NTMwOUYNCisjZGVmaW5lIFBJRgkzLjE0MTU5MjY1MzU4OTc5MzIzOEYNCisjZGVmaW5lIFBJTzJGCTEuNTcwNzk2MzI2Nzk0ODk2NjE5MkYNCisjZGVmaW5lIFBJTzRGCTAuNzg1Mzk4MTYzMzk3NDQ4MzA5NkYNCisNCisjZGVmaW5lIGlzZmluaXRlZiBpc2Zpbml0ZQ0KKyNkZWZpbmUgaXNpbmZmIGlzaW5mDQorI2RlZmluZSBpc25hbmYgaXNuYW4NCisjZGVmaW5lIHNpZ25iaXRmIHNpZ25iaXQNCisNCisjZGVmaW5lIE5FR1pFUk9GICgtMC4wRikNCisNCisjdW5kZWYgTkFORg0KKyN1bmRlZiBJTkZJTklUWUYNCisjaWYgKF9fR05VQ19fID4gMyB8fCAoX19HTlVDX18gPT0gMyAmJiBfX0dOVUNfTUlOT1JfXyA+IDIpKQ0KKyNkZWZpbmUgSU5GSU5JVFlGIF9fYnVpbHRpbl9odWdlX3ZhbGYoKQ0KKyNkZWZpbmUgTkFORiBfX2J1aWx0aW5fbmFuZigiIikNCisjZWxzZQ0KK2V4dGVybiBmbG9hdCBfX0lORkY7DQorI2RlZmluZSBJTkZJTklUWUYgKF9fSU5GRikNCitleHRlcm4gZmxvYXQgX19RTkFORjsNCisjZGVmaW5lIE5BTkYgKF9fUU5BTkYpDQorI2VuZGlmDQorDQorDQorLyogZG91YmxlICovDQorDQorLyoNCitDZXBoZXMgTWF0aCBMaWJyYXJ5IFJlbGVhc2UgMi4yOiAgSnVseSwgMTk5Mg0KK0NvcHlyaWdodCAxOTg0LCAxOTg3LCAxOTg4LCAxOTkyIGJ5IFN0ZXBoZW4gTC4gTW9zaGllcg0KK0RpcmVjdCBpbnF1aXJpZXMgdG8gMzAgRnJvc3QgU3RyZWV0LCBDYW1icmlkZ2UsIE1BIDAyMTQwDQorKi8NCisNCisNCisvKgkJCQkJCQlwb2xldmwuYw0KKyAqCQkJCQkJCXAxZXZsLmMNCisgKg0KKyAqCUV2YWx1YXRlIHBvbHlub21pYWwNCisgKg0KKyAqDQorICoNCisgKiBTWU5PUFNJUzoNCisgKg0KKyAqIGludCBOOw0KKyAqIGRvdWJsZSB4LCB5LCBjb2VmW04rMV0sIHBvbGV2bFtdOw0KKyAqDQorICogeSA9IHBvbGV2bCggeCwgY29lZiwgTiApOw0KKyAqDQorICoNCisgKg0KKyAqIERFU0NSSVBUSU9OOg0KKyAqDQorICogRXZhbHVhdGVzIHBvbHlub21pYWwgb2YgZGVncmVlIE46DQorICoNCisgKiAgICAgICAgICAgICAgICAgICAgIDIgICAgICAgICAgTg0KKyAqIHkgID0gIEMgICsgQyB4ICsgQyB4ICArLi4uKyBDIHgNCisgKiAgICAgICAgMCAgICAxICAgICAyICAgICAgICAgIE4NCisgKg0KKyAqIENvZWZmaWNpZW50cyBhcmUgc3RvcmVkIGluIHJldmVyc2Ugb3JkZXI6DQorICoNCisgKiBjb2VmWzBdID0gQyAgLCAuLi4sIGNvZWZbTl0gPSBDICAuDQorICogICAgICAgICAgICBOICAgICAgICAgICAgICAgICAgIDANCisgKg0KKyAqICBUaGUgZnVuY3Rpb24gcDFldmwoKSBhc3N1bWVzIHRoYXQgY29lZltOXSA9IDEuMCBhbmQgaXMNCisgKiBvbWl0dGVkIGZyb20gdGhlIGFycmF5LiAgSXRzIGNhbGxpbmcgYXJndW1lbnRzIGFyZQ0KKyAqIG90aGVyd2lzZSB0aGUgc2FtZSBhcyBwb2xldmwoKS4NCisgKg0KKyAqDQorICogU1BFRUQ6DQorICoNCisgKiBJbiB0aGUgaW50ZXJlc3Qgb2Ygc3BlZWQsIHRoZXJlIGFyZSBubyBjaGVja3MgZm9yIG91dA0KKyAqIG9mIGJvdW5kcyBhcml0aG1ldGljLiAgVGhpcyByb3V0aW5lIGlzIHVzZWQgYnkgbW9zdCBvZg0KKyAqIHRoZSBmdW5jdGlvbnMgaW4gdGhlIGxpYnJhcnkuICBEZXBlbmRpbmcgb24gYXZhaWxhYmxlDQorICogZXF1aXBtZW50IGZlYXR1cmVzLCB0aGUgdXNlciBtYXkgd2lzaCB0byByZXdyaXRlIHRoZQ0KKyAqIHByb2dyYW0gaW4gbWljcm9jb2RlIG9yIGFzc2VtYmx5IGxhbmd1YWdlLg0KKyAqDQorICovDQorDQorLyogUG9seW5vbWlhbCBldmFsdWF0b3I6DQorICogIFBbMF0geF5uICArICBQWzFdIHheKG4tMSkgICsgIC4uLiAgKyAgUFtuXQ0KKyAqLw0KK3N0YXRpYyAgX19pbmxpbmVfXyBkb3VibGUgcG9sZXZsKCB4LCBwLCBuICkNCitkb3VibGUgeDsNCitjb25zdCB2b2lkICpwOw0KK2ludCBuOw0KK3sNCityZWdpc3RlciBkb3VibGUgeTsNCityZWdpc3RlciBkb3VibGUgKlAgPSAoZG91YmxlICopcDsNCisNCit5ID0gKlArKzsNCitkbw0KKwl7DQorCXkgPSB5ICogeCArICpQKys7DQorCX0NCit3aGlsZSggLS1uICk7DQorcmV0dXJuKHkpOw0KK30NCisNCisNCisNCisvKiBQb2x5bm9taWFsIGV2YWx1YXRvcjoNCisgKiAgeF5uICArICBQWzBdIHheKG4tMSkgICsgIFBbMV0geF4obi0yKSAgKyAgLi4uICArICBQW25dDQorICovDQorc3RhdGljIF9faW5saW5lX18gIGRvdWJsZSBwMWV2bCggeCwgcCwgbiApDQorZG91YmxlIHg7DQorY29uc3Qgdm9pZCAqcDsNCitpbnQgbjsNCit7DQorcmVnaXN0ZXIgZG91YmxlIHk7DQorcmVnaXN0ZXIgZG91YmxlICpQID0gKGRvdWJsZSAqKXA7DQorDQorbiAtPSAxOw0KK3kgPSB4ICsgKlArKzsNCitkbw0KKwl7DQorCXkgPSB5ICogeCArICpQKys7DQorCX0NCit3aGlsZSggLS1uICk7DQorcmV0dXJuKCB5ICk7DQorfQ0KKw0KKw0KKy8qIGxvbmcgZG91YmxlICovDQorLyoNCitDZXBoZXMgTWF0aCBMaWJyYXJ5IFJlbGVhc2UgMi4yOiAgSnVseSwgMTk5Mg0KK0NvcHlyaWdodCAxOTg0LCAxOTg3LCAxOTg4LCAxOTkyIGJ5IFN0ZXBoZW4gTC4gTW9zaGllcg0KK0RpcmVjdCBpbnF1aXJpZXMgdG8gMzAgRnJvc3QgU3RyZWV0LCBDYW1icmlkZ2UsIE1BIDAyMTQwDQorKi8NCisNCisNCisvKgkJCQkJCQlwb2xldmxsLmMNCisgKgkJCQkJCQlwMWV2bGwuYw0KKyAqDQorICoJRXZhbHVhdGUgcG9seW5vbWlhbA0KKyAqDQorICoNCisgKg0KKyAqIFNZTk9QU0lTOg0KKyAqDQorICogaW50IE47DQorICogbG9uZyBkb3VibGUgeCwgeSwgY29lZltOKzFdLCBwb2xldmxbXTsNCisgKg0KKyAqIHkgPSBwb2xldmxsKCB4LCBjb2VmLCBOICk7DQorICoNCisgKg0KKyAqDQorICogREVTQ1JJUFRJT046DQorICoNCisgKiBFdmFsdWF0ZXMgcG9seW5vbWlhbCBvZiBkZWdyZWUgTjoNCisgKg0KKyAqICAgICAgICAgICAgICAgICAgICAgMiAgICAgICAgICBODQorICogeSAgPSAgQyAgKyBDIHggKyBDIHggICsuLi4rIEMgeA0KKyAqICAgICAgICAwICAgIDEgICAgIDIgICAgICAgICAgTg0KKyAqDQorICogQ29lZmZpY2llbnRzIGFyZSBzdG9yZWQgaW4gcmV2ZXJzZSBvcmRlcjoNCisgKg0KKyAqIGNvZWZbMF0gPSBDICAsIC4uLiwgY29lZltOXSA9IEMgIC4NCisgKiAgICAgICAgICAgIE4gICAgICAgICAgICAgICAgICAgMA0KKyAqDQorICogIFRoZSBmdW5jdGlvbiBwMWV2bGwoKSBhc3N1bWVzIHRoYXQgY29lZltOXSA9IDEuMCBhbmQgaXMNCisgKiBvbWl0dGVkIGZyb20gdGhlIGFycmF5LiAgSXRzIGNhbGxpbmcgYXJndW1lbnRzIGFyZQ0KKyAqIG90aGVyd2lzZSB0aGUgc2FtZSBhcyBwb2xldmxsKCkuDQorICoNCisgKg0KKyAqIFNQRUVEOg0KKyAqDQorICogSW4gdGhlIGludGVyZXN0IG9mIHNwZWVkLCB0aGVyZSBhcmUgbm8gY2hlY2tzIGZvciBvdXQNCisgKiBvZiBib3VuZHMgYXJpdGhtZXRpYy4gIFRoaXMgcm91dGluZSBpcyB1c2VkIGJ5IG1vc3Qgb2YNCisgKiB0aGUgZnVuY3Rpb25zIGluIHRoZSBsaWJyYXJ5LiAgRGVwZW5kaW5nIG9uIGF2YWlsYWJsZQ0KKyAqIGVxdWlwbWVudCBmZWF0dXJlcywgdGhlIHVzZXIgbWF5IHdpc2ggdG8gcmV3cml0ZSB0aGUNCisgKiBwcm9ncmFtIGluIG1pY3JvY29kZSBvciBhc3NlbWJseSBsYW5ndWFnZS4NCisgKg0KKyAqLw0KKw0KKy8qIFBvbHlub21pYWwgZXZhbHVhdG9yOg0KKyAqICBQWzBdIHhebiAgKyAgUFsxXSB4XihuLTEpICArICAuLi4gICsgIFBbbl0NCisgKi8NCitzdGF0aWMgIF9faW5saW5lX18gbG9uZyBkb3VibGUgcG9sZXZsbCggeCwgcCwgbiApDQorbG9uZyBkb3VibGUgeDsNCitjb25zdCB2b2lkICpwOw0KK2ludCBuOw0KK3sNCityZWdpc3RlciBsb25nIGRvdWJsZSB5Ow0KK3JlZ2lzdGVyIGxvbmcgZG91YmxlICpQID0gKGxvbmcgZG91YmxlICopcDsNCisNCit5ID0gKlArKzsNCitkbw0KKwl7DQorCXkgPSB5ICogeCArICpQKys7DQorCX0NCit3aGlsZSggLS1uICk7DQorcmV0dXJuKHkpOw0KK30NCisNCisNCisNCisvKiBQb2x5bm9taWFsIGV2YWx1YXRvcjoNCisgKiAgeF5uICArICBQWzBdIHheKG4tMSkgICsgIFBbMV0geF4obi0yKSAgKyAgLi4uICArICBQW25dDQorICovDQorc3RhdGljIF9faW5saW5lX18gbG9uZyBkb3VibGUgcDFldmxsKCB4LCBwLCBuICkNCitsb25nIGRvdWJsZSB4Ow0KK2NvbnN0IHZvaWQgKnA7DQoraW50IG47DQorew0KK3JlZ2lzdGVyIGxvbmcgZG91YmxlIHk7DQorcmVnaXN0ZXIgbG9uZyBkb3VibGUgKlAgPSAobG9uZyBkb3VibGUgKilwOw0KKw0KK24gLT0gMTsNCit5ID0geCArICpQKys7DQorZG8NCisJew0KKwl5ID0geSAqIHggKyAqUCsrOw0KKwl9DQord2hpbGUoIC0tbiApOw0KK3JldHVybiggeSApOw0KK30NCisNCisvKiBGbG9hdCB2ZXJzaW9uICovDQorDQorLyoJCQkJCQkJcG9sZXZsZi5jDQorICoJCQkJCQkJcDFldmxmLmMNCisgKg0KKyAqCUV2YWx1YXRlIHBvbHlub21pYWwNCisgKg0KKyAqDQorICoNCisgKiBTWU5PUFNJUzoNCisgKg0KKyAqIGludCBOOw0KKyAqIGZsb2F0IHgsIHksIGNvZWZbTisxXSwgcG9sZXZsZltdOw0KKyAqDQorICogeSA9IHBvbGV2bGYoIHgsIGNvZWYsIE4gKTsNCisgKg0KKyAqDQorICoNCisgKiBERVNDUklQVElPTjoNCisgKg0KKyAqIEV2YWx1YXRlcyBwb2x5bm9taWFsIG9mIGRlZ3JlZSBOOg0KKyAqDQorICogICAgICAgICAgICAgICAgICAgICAyICAgICAgICAgIE4NCisgKiB5ICA9ICBDICArIEMgeCArIEMgeCAgKy4uLisgQyB4DQorICogICAgICAgIDAgICAgMSAgICAgMiAgICAgICAgICBODQorICoNCisgKiBDb2VmZmljaWVudHMgYXJlIHN0b3JlZCBpbiByZXZlcnNlIG9yZGVyOg0KKyAqDQorICogY29lZlswXSA9IEMgICwgLi4uLCBjb2VmW05dID0gQyAgLg0KKyAqICAgICAgICAgICAgTiAgICAgICAgICAgICAgICAgICAwDQorICoNCisgKiAgVGhlIGZ1bmN0aW9uIHAxZXZsKCkgYXNzdW1lcyB0aGF0IGNvZWZbTl0gPSAxLjAgYW5kIGlzDQorICogb21pdHRlZCBmcm9tIHRoZSBhcnJheS4gIEl0cyBjYWxsaW5nIGFyZ3VtZW50cyBhcmUNCisgKiBvdGhlcndpc2UgdGhlIHNhbWUgYXMgcG9sZXZsKCkuDQorICoNCisgKg0KKyAqIFNQRUVEOg0KKyAqDQorICogSW4gdGhlIGludGVyZXN0IG9mIHNwZWVkLCB0aGVyZSBhcmUgbm8gY2hlY2tzIGZvciBvdXQNCisgKiBvZiBib3VuZHMgYXJpdGhtZXRpYy4gIFRoaXMgcm91dGluZSBpcyB1c2VkIGJ5IG1vc3Qgb2YNCisgKiB0aGUgZnVuY3Rpb25zIGluIHRoZSBsaWJyYXJ5LiAgRGVwZW5kaW5nIG9uIGF2YWlsYWJsZQ0KKyAqIGVxdWlwbWVudCBmZWF0dXJlcywgdGhlIHVzZXIgbWF5IHdpc2ggdG8gcmV3cml0ZSB0aGUNCisgKiBwcm9ncmFtIGluIG1pY3JvY29kZSBvciBhc3NlbWJseSBsYW5ndWFnZS4NCisgKg0KKyAqLw0KKw0KKy8qDQorQ2VwaGVzIE1hdGggTGlicmFyeSBSZWxlYXNlIDIuMTogIERlY2VtYmVyLCAxOTg4DQorQ29weXJpZ2h0IDE5ODQsIDE5ODcsIDE5ODggYnkgU3RlcGhlbiBMLiBNb3NoaWVyDQorRGlyZWN0IGlucXVpcmllcyB0byAzMCBGcm9zdCBTdHJlZXQsIENhbWJyaWRnZSwgTUEgMDIxNDANCisqLw0KKw0KK3N0YXRpYyBfX2lubGluZV9fIGZsb2F0IHBvbGV2bGYoZmxvYXQgeCwgY29uc3QgZmxvYXQqIGNvZWYsIGludCBOICkNCit7DQorZmxvYXQgYW5zOw0KK2Zsb2F0ICpwOw0KK2ludCBpOw0KKw0KK3AgPSAoZmxvYXQqKWNvZWY7DQorYW5zID0gKnArKzsNCisNCisvKg0KK2ZvciggaT0wOyBpPE47IGkrKyApDQorCWFucyA9IGFucyAqIHggICsgICpwKys7DQorKi8NCisNCitpID0gTjsNCitkbw0KKwlhbnMgPSBhbnMgKiB4ICArICAqcCsrOw0KK3doaWxlKCAtLWkgKTsNCisNCityZXR1cm4oIGFucyApOw0KK30NCisNCisvKgkJCQkJCQlwMWV2bCgpCSovDQorLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBODQorICogRXZhbHVhdGUgcG9seW5vbWlhbCB3aGVuIGNvZWZmaWNpZW50IG9mIHggIGlzIDEuMC4NCisgKiBPdGhlcndpc2Ugc2FtZSBhcyBwb2xldmwuDQorICovDQorDQorc3RhdGljIF9faW5saW5lX18gZmxvYXQgcDFldmxmKCBmbG9hdCB4LCBjb25zdCBmbG9hdCAqY29lZiwgaW50IE4gKQ0KK3sNCitmbG9hdCBhbnM7DQorZmxvYXQgKnA7DQoraW50IGk7DQorDQorcCA9IChmbG9hdCopY29lZjsNCithbnMgPSB4ICsgKnArKzsNCitpID0gTi0xOw0KKw0KK2RvDQorCWFucyA9IGFucyAqIHggICsgKnArKzsNCit3aGlsZSggLS1pICk7DQorDQorcmV0dXJuKCBhbnMgKTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2NvcHlzaWduLlMgYi9taW5ndy13NjQtY3J0L21hdGgvY29weXNpZ24uUwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMDQwMTNlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2NvcHlzaWduLlMKQEAgLTAsMCArMSwxOSBAQAorLyoNCisgKiBXcml0dGVuIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIFB1YmxpYyBkb21haW4uDQorICovDQorDQorCS5maWxlCSJjb3B5c2lnbi5TIg0KKwkudGV4dA0KKwkuYWxpZ24gNA0KKy5nbG9ibCBfY29weXNpZ24NCisJLmRlZglfY29weXNpZ247CS5zY2wJMjsJLnR5cGUJMzI7CS5lbmRlZg0KK19jb3B5c2lnbjoNCisJbW92bAkxNiglZXNwKSwlZWR4DQorCW1vdmwJOCglZXNwKSwlZWF4DQorCWFuZGwJJDB4ODAwMDAwMDAsJWVkeA0KKwlhbmRsCSQweDdmZmZmZmZmLCVlYXgNCisJb3JsCSVlZHgsJWVheA0KKwltb3ZsCSVlYXgsOCglZXNwKQ0KKwlmbGRsCTQoJWVzcCkNCisJcmV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2NvcHlzaWduZi5TIGIvbWluZ3ctdzY0LWNydC9tYXRoL2NvcHlzaWduZi5TCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBlNTRlNTQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvY29weXNpZ25mLlMKQEAgLTAsMCArMSwxOSBAQAorLyoNCisgKiBXcml0dGVuIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIFB1YmxpYyBkb21haW4uDQorICovDQorDQorCS5maWxlCSJjb3B5c2lnbmYuUyINCisJLnRleHQNCisJLmFsaWduIDQNCisuZ2xvYmwgX2NvcHlzaWduZg0KKwkuZGVmCV9jb3B5c2lnbmY7CS5zY2wJMjsJLnR5cGUJMzI7CS5lbmRlZg0KK19jb3B5c2lnbmY6DQorCW1vdmwJOCglZXNwKSwlZWR4DQorCW1vdmwJNCglZXNwKSwlZWF4DQorCWFuZGwJJDB4ODAwMDAwMDAsJWVkeA0KKwlhbmRsCSQweDdmZmZmZmZmLCVlYXgNCisJb3JsCSVlZHgsJWVheA0KKwltb3ZsCSVlYXgsNCglZXNwKQ0KKwlmbGRzCTQoJWVzcCkNCisJcmV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2NvcHlzaWdubC5TIGIvbWluZ3ctdzY0LWNydC9tYXRoL2NvcHlzaWdubC5TCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdjODIyNzQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvY29weXNpZ25sLlMKQEAgLTAsMCArMSwyMCBAQAorLyoNCisgKiBXcml0dGVuIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIENoYW5nZXMgZm9yIGxvbmcgZG91YmxlIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQGN5Z251cy5jb20+DQorICogUHVibGljIGRvbWFpbi4NCisgKi8NCisNCisJLmZpbGUJImNvcHlzaWdubC5TIg0KKwkudGV4dA0KKwkuYWxpZ24gNA0KKy5nbG9ibCBfY29weXNpZ25sDQorCS5kZWYJX2NvcHlzaWdubDsJLnNjbAkyOwkudHlwZQkzMjsJLmVuZGVmDQorX2NvcHlzaWdubDoNCisJbW92bAkyNCglZXNwKSwlZWR4DQorCW1vdmwJMTIoJWVzcCksJWVheA0KKwlhbmRsCSQweDgwMDAsJWVkeA0KKwlhbmRsCSQweDdmZmYsJWVheA0KKwlvcmwJJWVkeCwlZWF4DQorCW1vdmwJJWVheCwxMiglZXNwKQ0KKwlmbGR0CTQoJWVzcCkNCisJcmV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2Nvc2YuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9jb3NmLlMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjE2MTZhMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9jb3NmLlMKQEAgLTAsMCArMSwyOSBAQAorLyoNCisgKiBXcml0dGVuIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIFB1YmxpYyBkb21haW4uDQorICoNCisgKiBSZW1vdmVkIGdsaWJjIGhlYWRlciBkZXBlbmRhbmN5IGJ5IERhbm55IFNtaXRoDQorICogIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4NCisgKi8NCisJLmZpbGUJImNvc2YuUyINCisJLnRleHQNCisJLmFsaWduIDQNCisuZ2xvYmwgX2Nvc2wNCisJLmRlZglfY29zZjsJLnNjbAkyOwkudHlwZQkzMjsJLmVuZGVmDQorX2Nvc2Y6DQorCWZsZHMJNCglZXNwKQ0KKwlmY29zDQorCWZuc3RzdwklYXgNCisJdGVzdGwJJDB4NDAwLCVlYXgNCisJam56CTFmDQorCXJldA0KKzE6CWZsZHBpDQorCWZhZGQJJXN0KDApDQorCWZ4Y2gJJXN0KDEpDQorMjoJZnByZW0xDQorCWZuc3RzdwklYXgNCisJdGVzdGwJJDB4NDAwLCVlYXgNCisJam56CTJiDQorCWZzdHAJJXN0KDEpDQorCWZjb3MNCisJcmV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2Nvc2hmLmMgYi9taW5ndy13NjQtY3J0L21hdGgvY29zaGYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYmQxMzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2Nvc2hmLmMKQEAgLTAsMCArMSwzIEBACisjaW5jbHVkZSA8bWF0aC5oPg0KK2Zsb2F0IGNvc2hmIChmbG9hdCB4KQ0KKyAge3JldHVybiAoZmxvYXQpIGNvc2ggKHgpO30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvY29zaGwuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9jb3NobC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJmMDk3NTUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvY29zaGwuYwpAQCAtMCwwICsxLDQwIEBACisjaW5jbHVkZSAiY2VwaGVzX21jb25mLmgiDQorDQorI2lmbmRlZiBfU0VUX0VSUk5PDQorI2RlZmluZSBfU0VUX0VSUk5PKHgpDQorI2VuZGlmDQorDQorbG9uZyBkb3VibGUgY29zaGwoeCkNCitsb25nIGRvdWJsZSB4Ow0KK3sNCitsb25nIGRvdWJsZSB5Ow0KKw0KKyNpZmRlZiBOQU5TDQoraWYoIGlzbmFubCh4KSApDQorCXsNCisJX1NFVF9FUlJOTyhFRE9NKTsNCisJcmV0dXJuKHgpOw0KKyAgCX0NCisjZW5kaWYNCitpZiggeCA8IDAgKQ0KKwl4ID0gLXg7DQoraWYoIHggPiAoTUFYTE9HTCArIExPR0UyTCkgKQ0KKwl7DQorCW10aGVyciggImNvc2hsIiwgT1ZFUkZMT1cgKTsNCisJX1NFVF9FUlJOTyhFUkFOR0UpOw0KKyNpZmRlZiBJTkZJTklUSUVTDQorCXJldHVybiggSU5GSU5JVFlMICk7DQorI2Vsc2UNCisJcmV0dXJuKCBNQVhOVU1MICk7DQorI2VuZGlmDQorCX0JDQoraWYoIHggPj0gKE1BWExPR0wgLSBMT0dFMkwpICkNCisJew0KKwl5ID0gZXhwbCgwLjVMICogeCk7DQorCXkgPSAoMC41TCAqIHkpICogeTsNCisJcmV0dXJuKHkpOw0KKwl9DQoreSA9IGV4cGwoeCk7DQoreSA9IDAuNUwgKiAoeSArIDEuMEwgLyB5KTsNCityZXR1cm4oIHkgKTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2Nvc2wuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9jb3NsLlMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjdiMmQ5NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9jb3NsLlMKQEAgLTAsMCArMSwzMCBAQAorLyoNCisgKiBXcml0dGVuIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIFB1YmxpYyBkb21haW4uDQorICoNCisgKiBBZGFwdGVkIGZvciBgbG9uZyBkb3VibGUnIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQGN5Z251cy5jb20+Lg0KKyAqIFJlbW92ZWQgZ2xpYmMgaGVhZGVyIGRlcGVuZGFuY3kgYnkgRGFubnkgU21pdGgNCisgKiAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0Pg0KKyAqLw0KKwkuZmlsZQkiY29zbC5TIg0KKwkudGV4dA0KKwkuYWxpZ24gNA0KKy5nbG9ibCBfY29zbA0KKwkuZGVmCV9jb3NsOwkuc2NsCTI7CS50eXBlCTMyOwkuZW5kZWYNCitfY29zbDoNCisJZmxkdAk0KCVlc3ApDQorCWZjb3MNCisJZm5zdHN3CSVheA0KKwl0ZXN0bAkkMHg0MDAsJWVheA0KKwlqbnoJMWYNCisJcmV0DQorMToJZmxkcGkNCisJZmFkZAklc3QoMCkNCisJZnhjaAklc3QoMSkNCisyOglmcHJlbTENCisJZm5zdHN3CSVheA0KKwl0ZXN0bAkkMHg0MDAsJWVheA0KKwlqbnoJMmINCisJZnN0cAklc3QoMSkNCisJZmNvcw0KKwlyZXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvZXJmbC5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2VyZmwuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kY2FhMTFmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2VyZmwuYwpAQCAtMCwwICsxLDI5OSBAQAorLyoJCQkJCQkJZXJmbC5jDQorICoNCisgKglFcnJvciBmdW5jdGlvbg0KKyAqDQorICoNCisgKg0KKyAqIFNZTk9QU0lTOg0KKyAqDQorICogbG9uZyBkb3VibGUgeCwgeSwgZXJmbCgpOw0KKyAqDQorICogeSA9IGVyZmwoIHggKTsNCisgKg0KKyAqDQorICoNCisgKiBERVNDUklQVElPTjoNCisgKg0KKyAqIFRoZSBpbnRlZ3JhbCBpcw0KKyAqDQorICogICAgICAgICAgICAgICAgICAgICAgICAgICB4IA0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0NCisgKiAgICAgICAgICAgICAgICAgMiAgICAgICAgIHwgfCAgICAgICAgICAyDQorICogICBlcmYoeCkgID0gIC0tLS0tLS0tICAgICB8ICAgIGV4cCggLSB0ICApIGR0Lg0KKyAqICAgICAgICAgICAgICBzcXJ0KHBpKSAgIHwgfA0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAtDQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAwDQorICoNCisgKiBUaGUgbWFnbml0dWRlIG9mIHggaXMgbGltaXRlZCB0byBhYm91dCAxMDYuNTYgZm9yIElFRUUNCisgKiBhcml0aG1ldGljOyAxIG9yIC0xIGlzIHJldHVybmVkIG91dHNpZGUgdGhpcyByYW5nZS4NCisgKg0KKyAqIEZvciAwIDw9IHx4fCA8IDEsIGVyZih4KSA9IHggKiBQNih4XjIpL1E2KHheMik7DQorICogT3RoZXJ3aXNlOiBlcmYoeCkgPSAxIC0gZXJmYyh4KS4NCisgKg0KKyAqDQorICoNCisgKiBBQ0NVUkFDWToNCisgKg0KKyAqICAgICAgICAgICAgICAgICAgICAgIFJlbGF0aXZlIGVycm9yOg0KKyAqIGFyaXRobWV0aWMgICBkb21haW4gICAgICMgdHJpYWxzICAgICAgcGVhayAgICAgICAgIHJtcw0KKyAqICAgIElFRUUgICAgICAwLDEgICAgICAgICA1MDAwMCAgICAgICAyLjBlLTE5ICAgICA1LjdlLTIwDQorICoNCisgKi8NCisMDQorLyoJCQkJCQkJZXJmY2wuYw0KKyAqDQorICoJQ29tcGxlbWVudGFyeSBlcnJvciBmdW5jdGlvbg0KKyAqDQorICoNCisgKg0KKyAqIFNZTk9QU0lTOg0KKyAqDQorICogbG9uZyBkb3VibGUgeCwgeSwgZXJmY2woKTsNCisgKg0KKyAqIHkgPSBlcmZjbCggeCApOw0KKyAqDQorICoNCisgKg0KKyAqIERFU0NSSVBUSU9OOg0KKyAqDQorICoNCisgKiAgMSAtIGVyZih4KSA9DQorICoNCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZi4gDQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0NCisgKiAgICAgICAgICAgICAgICAgIDIgICAgICAgICB8IHwgICAgICAgICAgMg0KKyAqICAgZXJmYyh4KSAgPSAgLS0tLS0tLS0gICAgIHwgICAgZXhwKCAtIHQgICkgZHQNCisgKiAgICAgICAgICAgICAgIHNxcnQocGkpICAgfCB8DQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAtDQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgeA0KKyAqDQorICoNCisgKiBGb3Igc21hbGwgeCwgZXJmYyh4KSA9IDEgLSBlcmYoeCk7IG90aGVyd2lzZSByYXRpb25hbA0KKyAqIGFwcHJveGltYXRpb25zIGFyZSBjb21wdXRlZC4NCisgKg0KKyAqIEEgc3BlY2lhbCBmdW5jdGlvbiBleHB4MmwuYyBpcyB1c2VkIHRvIHN1cHByZXNzIGVycm9yIGFtcGxpZmljYXRpb24NCisgKiBpbiBjb21wdXRpbmcgZXhwKC14XjIpLg0KKyAqDQorICoNCisgKiBBQ0NVUkFDWToNCisgKg0KKyAqICAgICAgICAgICAgICAgICAgICAgIFJlbGF0aXZlIGVycm9yOg0KKyAqIGFyaXRobWV0aWMgICBkb21haW4gICAgICMgdHJpYWxzICAgICAgcGVhayAgICAgICAgIHJtcw0KKyAqICAgIElFRUUgICAgICAwLDEzICAgICAgICA1MDAwMCAgICAgIDguNGUtMTkgICAgICA5LjdlLTIwDQorICogICAgSUVFRSAgICAgIDYsMTA2LjU2ICAgIDIwMDAwICAgICAgMi45ZS0xOSAgICAgIDcuMWUtMjANCisgKg0KKyAqDQorICogRVJST1IgTUVTU0FHRVM6DQorICoNCisgKiAgIG1lc3NhZ2UgICAgICAgICAgY29uZGl0aW9uICAgICAgICAgICAgICB2YWx1ZSByZXR1cm5lZA0KKyAqIGVyZmNsIHVuZGVyZmxvdyAgICB4XjIgPiBNQVhMT0dMICAgICAgICAgICAgICAwLjANCisgKg0KKyAqDQorICovDQorDA0KKw0KKy8qDQorTW9kaWZpZWQgZnJvbSBmaWxlIG5kdHJsLmMNCitDZXBoZXMgTWF0aCBMaWJyYXJ5IFJlbGVhc2UgMi4zOiAgSmFudWFyeSwgMTk5NQ0KK0NvcHlyaWdodCAxOTg0LCAxOTk1IGJ5IFN0ZXBoZW4gTC4gTW9zaGllcg0KKyovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSAiY2VwaGVzX21jb25mLmgiDQorDQorLyogZXJmYyh4KSA9IGV4cCgteF4yKSBQKDEveCkvUSgxL3gpDQorICAgMS84IDw9IDEveCA8PSAxDQorICAgUGVhayByZWxhdGl2ZSBlcnJvciA1LjhlLTIxICAqLw0KKw0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBQW10gPSB7DQorMHg0YmYwLDB4OWFkOCwweDdhMDMsMHg4NmM3LDB4NDAxZCwgWFBEDQorMHhkZjIzLDB4ZDg0MywweDQwMzIsMHg4ODgxLDB4NDAxZSwgWFBEDQorMHhkMDI1LDB4Y2ZkNSwweDg0OTQsMHg4OGQzLDB4NDAxZSwgWFBEDQorMHhiNmQwLDB4YzkyYiwweDU0MTcsMHhhY2IxLDB4NDAxZCwgWFBEDQorMHhhZGE4LDB4MzU2YSwweDQ5ODIsMHg5NGE2LDB4NDAxYywgWFBEDQorMHg0ZTEzLDB4Y2FlZSwweDllMzEsMHhiMjU4LDB4NDAxYSwgWFBEDQorMHg1ODQwLDB4NTU0ZCwweDM3YTMsMHg5MjM5LDB4NDAxOCwgWFBEDQorMHgzYjU4LDB4M2RhMiwweGFmMDIsMHg5NzgwLDB4NDAxNSwgWFBEDQorMHgwMTQ0LDB4NDg5ZSwweGJlNjgsMHg5YzMxLDB4NDAxMSwgWFBEDQorMHgzMzNiLDB4ZDllNiwweGQ0MDQsMHg5ODZmLDB4YmZlZSwgWFBEDQorfTsNCitzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgUVtdID0gew0KKy8qIDB4MDAwMCwweDAwMDAsMHgwMDAwLDB4ODAwMCwweDNmZmYsIFhQRCAqLw0KKzB4MGU0MywweDMwMmQsMHg3OWVkLDB4ODZjNywweDQwMWQsIFhQRA0KKzB4ZjgxNywweDkxMjgsMHhjMGY4LDB4ZDQ4YiwweDQwMWUsIFhQRA0KKzB4OGVhZSwweDhkYWQsMHg2ZWI0LDB4OWFhMiwweDQwMWYsIFhQRA0KKzB4MDBlNywweDc1OTUsMHhjZDA2LDB4ODhiYiwweDQwMWYsIFhQRA0KKzB4NDk5MSwweGNmZGEsMHg1MmYxLDB4YTJhOSwweDQwMWUsIFhQRA0KKzB4YzM5ZCwweGU0MTUsMHhjNDNkLDB4ODdjMCwweDQwMWQsIFhQRA0KKzB4YTc1ZCwweDQzNmYsMHgzMGRkLDB4YTAyNywweDQwMWIsIFhQRA0KKzB4YzRjYiwweDMwNWEsMHhiZjc4LDB4ODIyMCwweDQwMTksIFhQRA0KKzB4MzcwOCwweDMzYjEsMHgwN2ZhLDB4ODY0NCwweDQwMTYsIFhQRA0KKzB4MjRmYSwweDk2ZjYsMHg3MTUzLDB4OGE2YywweDQwMTIsIFhQRA0KK307DQorDQorLyogZXJmYyh4KSA9IGV4cCgteF4yKSAxL3ggUigxL3heMikgLyBTKDEveF4yKQ0KKyAgIDEvMTI4IDw9IDEveCA8IDEvOA0KKyAgIFBlYWsgcmVsYXRpdmUgZXJyb3IgMS45ZS0yMSAgKi8NCisNCitzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgUltdID0gew0KKzB4MjYwYSwweGFiOTUsMHgyZmM3LDB4ZTdjNCwweDQwMDAsIFhQRA0KKzB4NDc2MSwweDYxM2UsMHhkZjZkLDB4ZTU4ZSwweDQwMDEsIFhQRA0KKzB4MDYxNSwweDRiMDAsMHg1NzVmLDB4ZGM3YiwweDQwMDAsIFhQRA0KKzB4NTIxZCwweDg1MjcsMHgzNDM1LDB4OGRjMiwweDNmZmUsIFhQRA0KKzB4MjJjZiwweGM3MTEsMHg2YzViLDB4ZGNmYiwweDNmZjksIFhQRA0KK307DQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNbXSA9IHsNCisvKiAweDAwMDAsMHgwMDAwLDB4MDAwMCwweDgwMDAsMHgzZmZmLCBYUEQgKi8NCisweDVkZTYsMHgxN2Q3LDB4NTRkNiwweGFiYTksMHg0MDAyLCBYUEQNCisweDU1ZDUsMHhkMzAwLDB4ZTcxZSwweGY1NjQsMHg0MDAyLCBYUEQNCisweGI2MTEsMHg4Zjc2LDB4ZjAyMCwweGQyNTUsMHg0MDAxLCBYUEQNCisweDM2ODQsMHgzNzk4LDB4Yjc5MywweDgwYjAsMHgzZmZmLCBYUEQNCisweGY1YWYsMHgyZmIyLDB4MWU1NywweGMzZDcsMHgzZmZhLCBYUEQNCit9Ow0KKw0KKy8qIGVyZih4KSAgPSB4IFQoeF4yKS9VKHheMikNCisgICAwIDw9IHggPD0gMQ0KKyAgIFBlYWsgcmVsYXRpdmUgZXJyb3IgNy42ZS0yMyAgKi8NCisNCitzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgVFtdID0gew0KKzB4ZmQ3YSwweDNhMWEsMHg3MDViLDB4ZTBjNCwweDNmZmIsIFhQRA0KKzB4MzEyOCwweGMzMzcsMHgzNzE2LDB4YWNlNSwweDQwMDEsIFhQRA0KKzB4OTUxNywweDRlOTMsMHg1NDBlLDB4OGY5NywweDQwMDcsIFhQRA0KKzB4NjExOCwweDYwNTksMHg5MDkzLDB4YTc1NywweDQwMGEsIFhQRA0KKzB4Yjk1NCwweGE5ODcsMHhjNjBjLDB4YmM4MywweDQwMGUsIFhQRA0KKzB4N2E1NiwweGU0NWEsMHhhNGJkLDB4OTc1YiwweDQwMTAsIFhQRA0KKzB4YzQ0NiwweDZiYWIsMHgwYjJhLDB4ODZkMCwweDQwMTMsIFhQRA0KK307DQorDQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFVbXSA9IHsNCisvKiAweDAwMDAsMHgwMDAwLDB4MDAwMCwweDgwMDAsMHgzZmZmLCBYUEQgKi8NCisweDM0NTMsMHgxZjhlLDB4ZjY4OCwweGI1MDcsMHg0MDA0LCBYUEQNCisweDcxYWMsMHhiMTJmLDB4MjFjYSwweGYyZTIsMHg0MDA4LCBYUEQNCisweGZmZTgsMHg5Y2FjLDB4M2I4NCwweGMyYWMsMHg0MDBjLCBYUEQNCisweDQ4MWQsMHg0NDViLDB4YzgwNywweGMyMzIsMHg0MDBmLCBYUEQNCisweDlhZDUsMHgxYWVmLDB4NDViMSwweGUyNWUsMHg0MDExLCBYUEQNCisweDcxYTcsMHgxY2FkLDB4MDEyZSwweGVlZjMsMHg0MDEyLCBYUEQNCit9Ow0KKw0KKy8qCQkJCQkJCWV4cHgybC5jDQorICoNCisgKglFeHBvbmVudGlhbCBvZiBzcXVhcmVkIGFyZ3VtZW50DQorICoNCisgKg0KKyAqDQorICogU1lOT1BTSVM6DQorICoNCisgKiBsb25nIGRvdWJsZSB4LCB5LCBleHBteDJsKCk7DQorICogaW50IHNpZ247DQorICoNCisgKiB5ID0gZXhweDJsKCB4ICk7DQorICoNCisgKg0KKyAqDQorICogREVTQ1JJUFRJT046DQorICoNCisgKiBDb21wdXRlcyB5ID0gZXhwKHgqeCkgd2hpbGUgc3VwcHJlc3NpbmcgZXJyb3IgYW1wbGlmaWNhdGlvbg0KKyAqIHRoYXQgd291bGQgb3JkaW5hcmlseSBhcmlzZSBmcm9tIHRoZSBpbmV4YWN0bmVzcyBvZiB0aGUNCisgKiBleHBvbmVudGlhbCBhcmd1bWVudCB4KnguDQorICoNCisgKg0KKyAqDQorICogQUNDVVJBQ1k6DQorICoNCisgKiAgICAgICAgICAgICAgICAgICAgICBSZWxhdGl2ZSBlcnJvcjoNCisgKiBhcml0aG1ldGljICAgICAgZG9tYWluICAgICAgICAjIHRyaWFscyAgICAgIHBlYWsgICAgICAgICBybXMNCisgKiAgIElFRUUgICAgIC0xMDYuNTY2LCAxMDYuNTY2ICAgIDEwXjUgICAgICAgMS42ZS0xOSAgICAgNC40ZS0yMA0KKyAqDQorICovDQorDQorI2RlZmluZSBNIDMyNzY4LjBMDQorI2RlZmluZSBNSU5WIDMuMDUxNzU3ODEyNWUtNUwNCisNCitzdGF0aWMgbG9uZyBkb3VibGUgZXhweDJsIChsb25nIGRvdWJsZSB4KQ0KK3sNCisgIGxvbmcgZG91YmxlIHUsIHUxLCBtLCBmOw0KKw0KKyAgeCA9IGZhYnNsICh4KTsNCisgIC8qIFJlcHJlc2VudCB4IGFzIGFuIGV4YWN0IG11bHRpcGxlIG9mIE0gcGx1cyBhIHJlc2lkdWFsLg0KKyAgICAgTSBpcyBhIHBvd2VyIG9mIDIgY2hvc2VuIHNvIHRoYXQgZXhwKG0gKiBtKSBkb2VzIG5vdCBvdmVyZmxvdw0KKyAgICAgb3IgdW5kZXJmbG93IGFuZCBzbyB0aGF0IHx4IC0gbXwgaXMgc21hbGwuICAqLw0KKyAgbSA9IE1JTlYgKiBmbG9vcmwoTSAqIHggKyAwLjVMKTsNCisgIGYgPSB4IC0gbTsNCisNCisgIC8qIHheMiA9IG1eMiArIDJtZiArIGZeMiAqLw0KKyAgdSA9IG0gKiBtOw0KKyAgdTEgPSAyICogbSAqIGYgICsgIGYgKiBmOw0KKw0KKyAgaWYgKCh1K3UxKSA+IE1BWExPR0wpDQorICAgIHJldHVybiAoSU5GSU5JVFlMKTsNCisNCisgIC8qIHUgaXMgZXhhY3QsIHUxIGlzIHNtYWxsLiAgKi8NCisgIHUgPSBleHBsKHUpICogZXhwbCh1MSk7DQorICByZXR1cm4odSk7DQorfQ0KKw0KK2xvbmcgZG91YmxlIGVyZmNsKGxvbmcgZG91YmxlIGEpDQorew0KK2xvbmcgZG91YmxlIHAscSx4LHksejsNCisNCitpZiAoaXNpbmYgKGEpKQ0KKwlyZXR1cm4gKHNpZ25iaXQgKGEpID8gMi4wIDogMC4wKTsNCisNCit4ID0gZmFic2wgKGEpOw0KKw0KK2lmICh4IDwgMS4wTCkNCisJcmV0dXJuICgxLjBMIC0gZXJmbChhKSk7DQorDQoreiA9IGEgKiBhOw0KKw0KK2lmKCB6ICA+IE1BWExPR0wgKQ0KKwl7DQordW5kZXI6DQorCW10aGVyciggImVyZmNsIiwgVU5ERVJGTE9XICk7DQorICAgICAgICBlcnJubyA9IEVSQU5HRTsNCisJcmV0dXJuIChzaWduYml0IChhKSA/IDIuMCA6IDAuMCk7DQorCX0NCisNCisvKiBDb21wdXRlIHogPSBleHBsKGEgKiBhKS4gICovDQoreiA9IGV4cHgybCAoYSk7DQoreSA9IDEuMEwveDsNCisNCitpZiAoeCA8IDguMEwpDQorCXsNCisJcCA9IHBvbGV2bGwgKHksIFAsIDkpOw0KKwlxID0gcDFldmxsICh5LCBRLCAxMCk7DQorCX0NCitlbHNlDQorCXsNCisJcSA9IHkgKiB5Ow0KKwlwID0geSAqIHBvbGV2bGwgKHEsIFIsIDQpOw0KKwlxID0gcDFldmxsIChxLCBTLCA1KTsNCisJfQ0KK3kgPSBwLyhxICogeik7DQorDQoraWYgKGEgPCAwLjBMKQ0KKwl5ID0gMi4wTCAtIHk7DQorDQoraWYgKHkgPT0gMC4wTCkNCisJZ290byB1bmRlcjsNCisNCityZXR1cm4gKHkpOw0KK30NCisNCitsb25nIGRvdWJsZSBlcmZsKGxvbmcgZG91YmxlIHgpDQorew0KK2xvbmcgZG91YmxlIHksIHo7DQorDQoraWYoIHggPT0gMC4wTCApDQorCXJldHVybiAoeCk7DQorDQoraWYgKGlzaW5mICh4KSkNCisJcmV0dXJuIChzaWduYml0ICh4KSA/ICAtMS4wTCA6IDEuMEwpOw0KKw0KK2lmIChmYWJzbCh4KSA+IDEuMEwpDQorCXJldHVybiAoMS4wTCAtIGVyZmNsICh4KSk7DQorDQoreiA9IHggKiB4Ow0KK3kgPSB4ICogcG9sZXZsbCggeiwgVCwgNiApIC8gcDFldmxsKCB6LCBVLCA2ICk7DQorcmV0dXJuKCB5ICk7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9leHAyLlMgYi9taW5ndy13NjQtY3J0L21hdGgvZXhwMi5TCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ1ZDgxYTkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvZXhwMi5TCkBAIC0wLDAgKzEsMzkgQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBBZGFwdGVkIGZvciBleHAyIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQGN5Z251cy5jb20+Lg0KKyAqIFB1YmxpYyBkb21haW4uDQorICovDQorDQorCS5maWxlCSJleHAyLlMiDQorCS50ZXh0DQorCS5hbGlnbiA0DQorLmdsb2JsIF9leHAyDQorCS5kZWYJX2V4cDI7CS5zY2wJMjsJLnR5cGUJMzI7CS5lbmRlZg0KK19leHAyOg0KKwlmbGRsCTQoJWVzcCkNCisvKiBJIGFkZGVkIHRoZSBmb2xsb3dpbmcgdWdseSBjb25zdHJ1Y3QgYmVjYXVzZSBleHAoKy1JbmYpIHJlc3VsdGVkDQorICAgaW4gTmFOLiAgVGhlIHVnbGluZXNzIHJlc3VsdHMgZnJvbSB0aGUgYnJpZ2h0IG1pbmRzIGF0IEludGVsLg0KKyAgIEZvciB0aGUgaTY4NiB0aGUgY29kZSBjYW4gYmUgd3JpdHRlbiBiZXR0ZXIuDQorICAgLS0gZHJlcHBlckBjeWdudXMuY29tLiAgKi8NCisJZnhhbQkJCQkvKiBJcyBOYU4gb3IgKy1JbmY/ICAqLw0KKwlmc3RzdwklYXgNCisJbW92YgkkMHg0NSwgJWRoDQorCWFuZGIJJWFoLCAlZGgNCisJY21wYgkkMHgwNSwgJWRoDQorCWplCTFmCQkJLyogSXMgKy1JbmYsIGp1bXAuICAqLw0KKwlmbGQJJXN0DQorCWZybmRpbnQJCQkJLyogaW50KHgpICovDQorCWZzdWJyCSVzdCwlc3QoMSkJCS8qIGZyYWN0KHgpICovDQorCWZ4Y2gNCisJZjJ4bTEJCQkJLyogMl4oZnJhY3QoeCkpIC0gMSAqLw0KKwlmbGQxDQorCWZhZGRwCQkJCS8qIDJeKGZyYWN0KHgpKSAqLw0KKwlmc2NhbGUJCQkJLyogZV54ICovDQorCWZzdHAJJXN0KDEpDQorCXJldA0KKw0KKzE6CXRlc3RsCSQweDIwMCwgJWVheAkJLyogVGVzdCBzaWduLiAgKi8NCisJanoJMmYJCQkvKiBJZiBwb3NpdGl2ZSwganVtcC4gICovDQorCWZzdHAJJXN0DQorCWZsZHoJCQkJLyogU2V0IHJlc3VsdCB0byAwLiAgKi8NCisyOglyZXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvZXhwMmYuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9leHAyZi5TCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE4ZTFiZjkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvZXhwMmYuUwpAQCAtMCwwICsxLDM5IEBACisvKg0KKyAqIFdyaXR0ZW4gYnkgSi5ULiBDb25rbGluIDxqdGNAbmV0YnNkLm9yZz4uDQorICogQWRhcHRlZCBmb3IgZXhwMiBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBjeWdudXMuY29tPi4NCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqLw0KKw0KKwkuZmlsZQkiZXhwMmYuUyINCisJLnRleHQNCisJLmFsaWduIDQNCisuZ2xvYmwgX2V4cDJmDQorCS5kZWYJX2V4cDJmOwkuc2NsCTI7CS50eXBlCTMyOwkuZW5kZWYNCitfZXhwMmY6DQorCWZsZHMJNCglZXNwKQ0KKy8qIEkgYWRkZWQgdGhlIGZvbGxvd2luZyB1Z2x5IGNvbnN0cnVjdCBiZWNhdXNlIGV4cCgrLUluZikgcmVzdWx0ZWQNCisgICBpbiBOYU4uICBUaGUgdWdsaW5lc3MgcmVzdWx0cyBmcm9tIHRoZSBicmlnaHQgbWluZHMgYXQgSW50ZWwuDQorICAgRm9yIHRoZSBpNjg2IHRoZSBjb2RlIGNhbiBiZSB3cml0dGVuIGJldHRlci4NCisgICAtLSBkcmVwcGVyQGN5Z251cy5jb20uICAqLw0KKwlmeGFtCQkJCS8qIElzIE5hTiBvciArLUluZj8gICovDQorCWZzdHN3CSVheA0KKwltb3ZiCSQweDQ1LCAlZGgNCisJYW5kYgklYWgsICVkaA0KKwljbXBiCSQweDA1LCAlZGgNCisJamUJMWYJCQkvKiBJcyArLUluZiwganVtcC4gICovDQorCWZsZAklc3QNCisJZnJuZGludAkJCQkvKiBpbnQoeCkgKi8NCisJZnN1YnIJJXN0LCVzdCgxKQkJLyogZnJhY3QoeCkgKi8NCisJZnhjaA0KKwlmMnhtMQkJCQkvKiAyXihmcmFjdCh4KSkgLSAxICovDQorCWZsZDENCisJZmFkZHAJCQkJLyogMl4oZnJhY3QoeCkpICovDQorCWZzY2FsZQkJCQkvKiBlXnggKi8NCisJZnN0cAklc3QoMSkNCisJcmV0DQorDQorMToJdGVzdGwJJDB4MjAwLCAlZWF4CQkvKiBUZXN0IHNpZ24uICAqLw0KKwlqegkyZgkJCS8qIElmIHBvc2l0aXZlLCBqdW1wLiAgKi8NCisJZnN0cAklc3QNCisJZmxkegkJCQkvKiBTZXQgcmVzdWx0IHRvIDAuICAqLw0KKzI6CXJldA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9leHAybC5TIGIvbWluZ3ctdzY0LWNydC9tYXRoL2V4cDJsLlMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTMyY2VlNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9leHAybC5TCkBAIC0wLDAgKzEsMzkgQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBBZGFwdGVkIGZvciBleHAyIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQGN5Z251cy5jb20+Lg0KKyAqIFB1YmxpYyBkb21haW4uDQorICovDQorDQorCS5maWxlCSJleHAybC5TIg0KKwkudGV4dA0KKwkuYWxpZ24gNA0KKy5nbG9ibCBfZXhwMmwNCisJLmRlZglfZXhwMmw7CS5zY2wJMjsJLnR5cGUJMzI7CS5lbmRlZg0KK19leHAybDoNCisJZmxkdAk0KCVlc3ApDQorLyogSSBhZGRlZCB0aGUgZm9sbG93aW5nIHVnbHkgY29uc3RydWN0IGJlY2F1c2UgZXhwKCstSW5mKSByZXN1bHRlZA0KKyAgIGluIE5hTi4gIFRoZSB1Z2xpbmVzcyByZXN1bHRzIGZyb20gdGhlIGJyaWdodCBtaW5kcyBhdCBJbnRlbC4NCisgICBGb3IgdGhlIGk2ODYgdGhlIGNvZGUgY2FuIGJlIHdyaXR0ZW4gYmV0dGVyLg0KKyAgIC0tIGRyZXBwZXJAY3lnbnVzLmNvbS4gICovDQorCWZ4YW0JCQkJLyogSXMgTmFOIG9yICstSW5mPyAgKi8NCisJZnN0c3cJJWF4DQorCW1vdmIJJDB4NDUsICVkaA0KKwlhbmRiCSVhaCwgJWRoDQorCWNtcGIJJDB4MDUsICVkaA0KKwlqZQkxZgkJCS8qIElzICstSW5mLCBqdW1wLiAgKi8NCisJZmxkCSVzdA0KKwlmcm5kaW50CQkJCS8qIGludCh4KSAqLw0KKwlmc3Vicgklc3QsJXN0KDEpCQkvKiBmcmFjdCh4KSAqLw0KKwlmeGNoDQorCWYyeG0xCQkJCS8qIDJeKGZyYWN0KHgpKSAtIDEgKi8NCisJZmxkMQ0KKwlmYWRkcAkJCQkvKiAyXihmcmFjdCh4KSkgKi8NCisJZnNjYWxlCQkJCS8qIGVeeCAqLw0KKwlmc3RwCSVzdCgxKQ0KKwlyZXQNCisNCisxOgl0ZXN0bAkkMHgyMDAsICVlYXgJCS8qIFRlc3Qgc2lnbi4gICovDQorCWp6CTJmCQkJLyogSWYgcG9zaXRpdmUsIGp1bXAuICAqLw0KKwlmc3RwCSVzdA0KKwlmbGR6CQkJCS8qIFNldCByZXN1bHQgdG8gMC4gICovDQorMjoJcmV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2V4cGYuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9leHBmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTk2ODRhMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9leHBmLmMKQEAgLTAsMCArMSwzIEBACisjaW5jbHVkZSA8bWF0aC5oPg0KK2Zsb2F0IGV4cGYgKGZsb2F0IHgpDQorICB7cmV0dXJuIChmbG9hdCkgZXhwICh4KTt9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2V4cGwuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9leHBsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTUxODQzNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9leHBsLmMKQEAgLTAsMCArMSw0NyBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSAiY2VwaGVzX21jb25mLmgiICAvKiBmb3IgbWF4IGFuZCBtaW4gbG9nIHRocmVzaG9sZHMgKi8NCisNCitzdGF0aWMgbG9uZyBkb3VibGUgYzAgPSAxLjQ0MjY4Nzk4ODI4MTI1TDsNCitzdGF0aWMgbG9uZyBkb3VibGUgYzEgPSA3LjA1MjYwNzcxMzQwNzM1OTkyNDY4ZS02TDsNCisNCitzdGF0aWMgbG9uZyBkb3VibGUNCitfX2V4cGwgKGxvbmcgZG91YmxlIHgpDQorew0KKyAgbG9uZyBkb3VibGUgcmVzOw0KKyAgYXNtICgiZmxkbDJlXG5cdCIgICAgICAgICAgICAgLyogMSAgbG9nMihlKSAgICAgICAgICovDQorICAgICAgICJmbXVsICUlc3QoMSksJSVzdFxuXHQiICAvKiAxICB4IGxvZzIoZSkgICAgICAgKi8NCisgICAgICAgImZybmRpbnRcblx0IiAgICAgICAgICAgIC8qIDEgIGkgICAgICAgICAgICAgICAqLw0KKyAgICAgICAiZmxkICUlc3QoMSlcblx0IiAgICAgICAgLyogMiAgeCAgICAgICAgICAgICAgICovDQorICAgICAgICJmcm5kaW50XG5cdCIgICAgICAgICAgICAvKiAyICB4aSAgICAgICAgICAgICAgKi8NCisgICAgICAgImZsZCAlJXN0KDEpXG5cdCIgICAgICAgIC8qIDMgIGkgICAgICAgICAgICAgICAqLw0KKyAgICAgICAiZmxkdCAlMlxuXHQiICAgICAgICAgICAgLyogNCAgYzAgICAgICAgICAgICAgICovDQorICAgICAgICJmbGQgJSVzdCgyKVxuXHQiICAgICAgICAvKiA1ICB4aSAgICAgICAgICAgICAgKi8NCisgICAgICAgImZtdWwgJSVzdCgxKSwlJXN0XG5cdCIgIC8qIDUgIGMwIHhpICAgICAgICAgICAqLw0KKyAgICAgICAiZnN1YnAgJSVzdCwlJXN0KDIpXG5cdCIgLyogNCAgZiA9IGMwIHhpICAtIGkgICovDQorICAgICAgICJmbGQgJSVzdCg0KVxuXHQiICAgICAgICAvKiA1ICB4ICAgICAgICAgICAgICAgKi8NCisgICAgICAgImZzdWIgJSVzdCgzKSwlJXN0XG5cdCIgIC8qIDUgIHhmID0geCAtIHhpICAgICAqLw0KKyAgICAgICAiZm11bHAgJSVzdCwlJXN0KDEpXG5cdCIgLyogNCAgYzAgeGYgICAgICAgICAgICovDQorICAgICAgICJmYWRkcCAlJXN0LCUlc3QoMSlcblx0IiAvKiAzICBmID0gZiArIGMwIHhmICAgKi8NCisgICAgICAgImZsZHQgJTNcblx0IiAgICAgICAgICAgIC8qIDQgICAgICAgICAgICAgICAgICAqLw0KKyAgICAgICAiZm11bCAlJXN0KDQpLCUlc3Rcblx0IiAgLyogNCAgYzEgKiB4ICAgICAgICAgICovDQorICAgICAgICJmYWRkcCAlJXN0LCUlc3QoMSlcblx0IiAvKiAzICBmID0gZiArIGMxICogeCAgKi8NCisgICAgICAgImYyeG0xXG5cdCIJCS8qIDMgMl4oZnJhY3QoeCAqIGxvZzIoZSkpKSAtIDEgKi8NCisgICAgICAgImZsZDFcblx0IiAgICAgICAgICAgICAgIC8qIDQgMS4wICAgICAgICAgICAgICAqLw0KKyAgICAgICAiZmFkZHBcblx0IgkJLyogMyAyXihmcmFjdCh4ICogbG9nMihlKSkpICovDQorICAgICAgICJmc3RwCSUlc3QoMSlcblx0IiAgICAvKiAyICAqLw0KKyAgICAgICAiZnNjYWxlXG5cdCIJICAgICAgICAvKiAyIHNjYWxlIGZhY3RvciBpcyBzdCgxKTsgZV54ICovDQorICAgICAgICJmc3RwCSUlc3QoMSlcblx0IiAgICAvKiAxICAqLw0KKyAgICAgICAiZnN0cAklJXN0KDEpXG5cdCIgICAgLyogMCAgKi8NCisgICAgICAgOiAiPXQiIChyZXMpIDogIjAiICh4KSwgIm0iIChjMCksICJtIiAoYzEpIDogImF4IiwgImR4Iik7DQorICByZXR1cm4gcmVzOw0KK30NCisNCitsb25nIGRvdWJsZSBleHBsIChsb25nIGRvdWJsZSB4KQ0KK3sNCisgIGlmICh4ID4gTUFYTE9HTCkNCisgICAgcmV0dXJuIElORklOSVRZOw0KKyAgZWxzZSBpZiAoeCA8IE1JTkxPR0wpDQorICAgIHJldHVybiAwLjBMOw0KKyAgZWxzZQ0KKyAgICByZXR1cm4gX19leHBsICh4KTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2V4cG0xLmMgYi9taW5ndy13NjQtY3J0L21hdGgvZXhwbTEuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMDVmYzE2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2V4cG0xLmMKQEAgLTAsMCArMSwyOCBAQAorLyoNCisgKiBXcml0dGVuIDIwMDUgYnkgR3JlZ29yeSBXLiBDaGljYXJlcyA8Y2hpY2FyZXNAY294Lm5ldD4uDQorICogQWRhcHRlZCB0byBkb3VibGUgYnkgRGFubnkgU21pdGggPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0Pi4gDQorICogUHVibGljIGRvbWFpbi4NCisgKg0KKyAqIEYyWE0xJ3MgaW5wdXQgaXMgY29uc3RyYWluZWQgdG8gKC0xLCArMSksIHNvIHRoZSBkb21haW4gb2YNCisgKiAneCAqIExPRzJFTCcgaXMgKC1MT0dFMkwsICtMT0dFMkwpLiBPdXRzaWRlIHRoYXQgZG9tYWluLA0KKyAqIGRlbGVnYXRpbmcgdG8gZXhwKCkgaGFuZGxlcyBDOTkgNy4xMi42LjMvMiByYW5nZSBlcnJvcnMuDQorICoNCisgKiBDb25zdGFudHMgZnJvbSBtb3NoaWVyLm5ldCwgZmlsZSBjZXBoZXMvbGRvdWJsZS9jb25zdGwuYywNCisgKiBhcmUgdXNlZCBpbnN0ZWFkIG9mIE1fTE4yIGFuZCBNX0xPRzJFLCB3aGljaCB3b3VsZCBub3QgYmUNCisgKiB2aXNpYmxlIHdpdGggJ2djYyBzdGQ9Yzk5Jy4gIFRoZSB1c2Ugb2YgdGhlc2UgZXh0ZW5kZWQgcHJlY2lzaW9uDQorICogY29uc3RhbnRzIGFsc28gYWxsb3dzIGdjYyB0byByZXBsYWNlIHRoZW0gd2l0aCB4ODcgb3Bjb2Rlcy4NCisgKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPiAvKiBleHBsKCkgKi8NCisjaW5jbHVkZSAiY2VwaGVzX21jb25mLmgiDQorZG91YmxlIGV4cG0xIChkb3VibGUgeCkNCit7DQorICBpZiAoZmFicyh4KSA8IExPR0UyTCkNCisgICAgew0KKyAgICAgIHggKj0gTE9HMkVMOw0KKyAgICAgIF9fYXNtX18oImYyeG0xIiA6ICI9dCIgKHgpIDogIjAiICh4KSk7DQorICAgICAgcmV0dXJuIHg7DQorICAgIH0NCisgIGVsc2UNCisgICAgcmV0dXJuIGV4cCh4KSAtIDEuMDsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2V4cG0xZi5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2V4cG0xZi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU4NDU5Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvZXhwbTFmLmMKQEAgLTAsMCArMSwyOSBAQAorLyoNCisgKiBXcml0dGVuIDIwMDUgYnkgR3JlZ29yeSBXLiBDaGljYXJlcyA8Y2hpY2FyZXNAY294Lm5ldD4uDQorICogQWRhcHRlZCB0byBmbG9hdCBieSBEYW5ueSBTbWl0aCA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+LiANCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqDQorICogRjJYTTEncyBpbnB1dCBpcyBjb25zdHJhaW5lZCB0byAoLTEsICsxKSwgc28gdGhlIGRvbWFpbiBvZg0KKyAqICd4ICogTE9HMkVMJyBpcyAoLUxPR0UyTCwgK0xPR0UyTCkuIE91dHNpZGUgdGhhdCBkb21haW4sDQorICogZGVsZWdhdGluZyB0byBleHAoKSBoYW5kbGVzIEM5OSA3LjEyLjYuMy8yIHJhbmdlIGVycm9ycy4NCisgKg0KKyAqIENvbnN0YW50cyBmcm9tIG1vc2hpZXIubmV0LCBmaWxlIGNlcGhlcy9sZG91YmxlL2NvbnN0bC5jLA0KKyAqIGFyZSB1c2VkIGluc3RlYWQgb2YgTV9MTjIgYW5kIE1fTE9HMkUsIHdoaWNoIHdvdWxkIG5vdCBiZQ0KKyAqIHZpc2libGUgd2l0aCAnZ2NjIHN0ZD1jOTknLiBUaGUgdXNlIG9mIHRoZXNlIGV4dGVuZGVkIHByZWNpc2lvbg0KKyAqIGNvbnN0YW50cyBhbHNvIGFsbG93cyBnY2MgdG8gcmVwbGFjZSB0aGVtIHdpdGggeDg3IG9wY29kZXMuDQorICovDQorDQorI2luY2x1ZGUgPG1hdGguaD4gLyogZXhwbCgpICovDQorI2luY2x1ZGUgImNlcGhlc19tY29uZi5oIg0KKw0KK2Zsb2F0IGV4cG0xZiAoZmxvYXQgeCkNCit7DQorICBpZiAoZmFic2YoeCkgPCBMT0dFMkwpDQorICAgIHsNCisgICAgICB4ICo9IExPRzJFTDsNCisgICAgICBfX2FzbV9fKCJmMnhtMSIgOiAiPXQiICh4KSA6ICIwIiAoeCkpOw0KKyAgICAgIHJldHVybiB4Ow0KKyAgICB9DQorICBlbHNlDQorICAgIHJldHVybiBleHBmKHgpIC0gMS4wRjsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2V4cG0xbC5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2V4cG0xbC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVlM2RhMTkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvZXhwbTFsLmMKQEAgLTAsMCArMSwyOSBAQAorLyoNCisgKiBXcml0dGVuIDIwMDUgYnkgR3JlZ29yeSBXLiBDaGljYXJlcyA8Y2hpY2FyZXNAY294Lm5ldD4gd2l0aA0KKyAqIGhlbHAgZnJvbSBEYW5ueSBTbWl0aC4gZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Lg0KKyAqIFB1YmxpYyBkb21haW4uDQorICoNCisgKiBGMlhNMSdzIGlucHV0IGlzIGNvbnN0cmFpbmVkIHRvICgtMSwgKzEpLCBzbyB0aGUgZG9tYWluIG9mDQorICogJ3ggKiBMT0cyRUwnIGlzICgtTE9HRTJMLCArTE9HRTJMKS4gT3V0c2lkZSB0aGF0IGRvbWFpbiwNCisgKiBkZWxlZ2F0aW5nIHRvIGV4cGwoKSBoYW5kbGVzIEM5OSA3LjEyLjYuMy8yIHJhbmdlIGVycm9ycy4NCisgKg0KKyAqIENvbnN0YW50cyBmcm9tIG1vc2hpZXIubmV0LCBmaWxlIGNlcGhlcy9sZG91YmxlL2NvbnN0bC5jLA0KKyAqIGFyZSB1c2VkIGluc3RlYWQgb2YgTV9MTjIgYW5kIE1fTE9HMkUsIHdoaWNoIHdvdWxkIG5vdCBiZQ0KKyAqIHZpc2libGUgd2l0aCAnZ2NjIHN0ZD1jOTknLiAgVGhlIHVzZSBvZiB0aGVzZSBleHRlbmRlZCBwcmVjaXNpb24NCisgKiBjb25zdGFudHMgYWxzbyBhbGxvd3MgZ2NjIHRvIHJlcGxhY2UgdGhlbSB3aXRoIHg4NyBvcGNvZGVzLg0KKyAqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+IC8qIGV4cGwoKSAqLw0KKyNpbmNsdWRlICJjZXBoZXNfbWNvbmYuaCINCisNCitsb25nIGRvdWJsZSBleHBtMWwgKGxvbmcgZG91YmxlIHgpDQorew0KKyAgaWYgKGZhYnNsKHgpIDwgTE9HRTJMKQ0KKyAgICB7DQorICAgICAgeCAqPSBMT0cyRUw7DQorICAgICAgX19hc21fXygiZjJ4bTEiIDogIj10IiAoeCkgOiAiMCIgKHgpKTsNCisgICAgICByZXR1cm4geDsNCisgICAgfQ0KKyAgZWxzZQ0KKyAgICByZXR1cm4gZXhwbCh4KSAtIDEuMEw7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9mYWJzLmMgYi9taW5ndy13NjQtY3J0L21hdGgvZmFicy5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmEwNWNjNGEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvZmFicy5jCkBAIC0wLDAgKzEsMTAgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorDQorZG91YmxlDQorZmFicyAoZG91YmxlIHgpDQorew0KKyAgZG91YmxlIHJlczsNCisNCisgIGFzbSAoImZhYnM7IiA6ICI9dCIgKHJlcykgOiAiMCIgKHgpKTsNCisgIHJldHVybiByZXM7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9mYWJzZi5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2ZhYnNmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGU1ZjFkNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mYWJzZi5jCkBAIC0wLDAgKzEsNyBAQAorZmxvYXQNCitmYWJzZiAoZmxvYXQgeCkNCit7DQorICBmbG9hdCByZXM7DQorICBhc20gKCJmYWJzOyIgOiAiPXQiIChyZXMpIDogIjAiICh4KSk7DQorICByZXR1cm4gcmVzOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvZmFic2wuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mYWJzbC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM0YzVjZjkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvZmFic2wuYwpAQCAtMCwwICsxLDcgQEAKK2xvbmcgZG91YmxlDQorZmFic2wgKGxvbmcgZG91YmxlIHgpDQorew0KKyAgbG9uZyBkb3VibGUgcmVzOw0KKyAgYXNtICgiZmFiczsiIDogIj10IiAocmVzKSA6ICIwIiAoeCkpOw0KKyAgcmV0dXJuIHJlczsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2Zhc3RtYXRoLmggYi9taW5ndy13NjQtY3J0L21hdGgvZmFzdG1hdGguaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNWI3M2E2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2Zhc3RtYXRoLmgKQEAgLTAsMCArMSwxMTUgQEAKKyNpZm5kZWYgX01JTkdXRVhfRkFTVE1BVEhfSF8NCisjZGVmaW5lIF9NSU5HV0VYX0ZBU1RNQVRIX0hfDQorDQorLyogRmFzdCBtYXRoIGlubGluZXMNCisgICBObyByYW5nZSBvciBkb21haW4gY2hlY2tzLiBObyBzZXR0aW5nIG9mIGVycm5vLiAgTm8gdHdlYWtzIHRvDQorICAgcHJvdGVjdCBwcmVjaXNpb24gbmVhciByYW5nZSBsaW1pdHMuICovDQorDQorLyogRm9yIG5vdyB0aGlzIGlzIGFuIGludGVybmFsIGhlYWRlciB3aXRoIGp1c3QgdGhlIGZ1bmN0aW9ucyB0aGF0DQorICAgYXJlIGN1cnJlbnRseSB1c2VkIGluIGJ1aWxkaW5nIGxpYm1pbmd3ZXguYSBtYXRoIGNvbXBvbmVudHMgKi8NCisNCisvKiBGSVhNRTogV2UgcmVhbGx5IHNob3VsZCBnZXQgcmlkIG9mIHRoZSBjb2RlIGR1cGxpY2F0aW9uIHVzaW5nIGV1dGhlcg0KKyAgIEMrKyB0ZW1wbGF0ZXMgb3IgdGdtYXRoLXR5cGUgbWFjcm9zLiAgKi8gIA0KKw0KK3N0YXRpYyBfX2lubGluZV9fIGRvdWJsZSBfX2Zhc3Rfc3FydCAoZG91YmxlIHgpDQorew0KKyAgZG91YmxlIHJlczsNCisgIGFzbSBfX3ZvbGF0aWxlX18gKCJmc3FydCIgOiAiPXQiIChyZXMpIDogIjAiICh4KSk7DQorICByZXR1cm4gcmVzOw0KK30NCisNCitzdGF0aWMgX19pbmxpbmVfXyBsb25nIGRvdWJsZSBfX2Zhc3Rfc3FydGwgKGxvbmcgZG91YmxlIHgpDQorew0KKyAgbG9uZyBkb3VibGUgcmVzOw0KKyAgYXNtIF9fdm9sYXRpbGVfXyAoImZzcXJ0IiA6ICI9dCIgKHJlcykgOiAiMCIgKHgpKTsNCisgIHJldHVybiByZXM7DQorfQ0KKw0KK3N0YXRpYyBfX2lubGluZV9fIGZsb2F0IF9fZmFzdF9zcXJ0ZiAoZmxvYXQgeCkNCit7DQorICBmbG9hdCByZXM7DQorICBhc20gX192b2xhdGlsZV9fICgiZnNxcnQiIDogIj10IiAocmVzKSA6ICIwIiAoeCkpOw0KKyAgcmV0dXJuIHJlczsNCit9DQorDQorDQorc3RhdGljIF9faW5saW5lX18gZG91YmxlIF9fZmFzdF9sb2cgKGRvdWJsZSB4KQ0KK3sNCisgICBkb3VibGUgcmVzOw0KKyAgIGFzbSBfX3ZvbGF0aWxlX18NCisgICAgICgiZmxkbG4yXG5cdCINCisgICAgICAiZnhjaFxuXHQiDQorICAgICAgImZ5bDJ4Ig0KKyAgICAgICA6ICI9dCIgKHJlcykgOiAiMCIgKHgpIDogInN0KDEpIik7DQorICAgcmV0dXJuIHJlczsNCit9DQorDQorc3RhdGljIF9faW5saW5lX18gbG9uZyBkb3VibGUgX19mYXN0X2xvZ2wgKGxvbmcgZG91YmxlIHgpDQorew0KKyAgbG9uZyBkb3VibGUgcmVzOw0KKyAgIGFzbSBfX3ZvbGF0aWxlX18NCisgICAgICgiZmxkbG4yXG5cdCINCisgICAgICAiZnhjaFxuXHQiDQorICAgICAgImZ5bDJ4Ig0KKyAgICAgICA6ICI9dCIgKHJlcykgOiAiMCIgKHgpIDogInN0KDEpIik7DQorICAgcmV0dXJuIHJlczsNCit9DQorDQorDQorc3RhdGljIF9faW5saW5lX18gZmxvYXQgX19mYXN0X2xvZ2YgKGZsb2F0IHgpDQorew0KKyAgIGZsb2F0IHJlczsNCisgICBhc20gX192b2xhdGlsZV9fDQorICAgICAoImZsZGxuMlxuXHQiDQorICAgICAgImZ4Y2hcblx0Ig0KKyAgICAgICJmeWwyeCINCisgICAgICAgOiAiPXQiIChyZXMpIDogIjAiICh4KSA6ICJzdCgxKSIpOw0KKyAgIHJldHVybiByZXM7DQorfQ0KKw0KK3N0YXRpYyBfX2lubGluZV9fIGRvdWJsZSBfX2Zhc3RfbG9nMXAgKGRvdWJsZSB4KQ0KK3sNCisgIGRvdWJsZSByZXM7DQorICAvKiBmeWwyeHAxIGFjY3VyYXRlIG9ubHkgZm9yIHx4fCA8PSAxLjAgLSAwLjUgKiBzcXJ0ICgyLjApICovDQorICBpZiAoZmFicyAoeCkgPj0gMS4wIC0gMC41ICogMS40MTQyMTM1NjIzNzMwOTUwNDg4MCkNCisgICAgcmVzID0gX19mYXN0X2xvZyAoMS4wICsgeCk7DQorICBlbHNlDQorICAgIGFzbSBfX3ZvbGF0aWxlX18NCisgICAgICAoImZsZGxuMlxuXHQiDQorICAgICAgICJmeGNoXG5cdCINCisgICAgICAgImZ5bDJ4cDEiDQorICAgICAgIDogIj10IiAocmVzKSA6ICIwIiAoeCkgOiAic3QoMSkiKTsNCisgICByZXR1cm4gcmVzOw0KK30NCisNCitzdGF0aWMgX19pbmxpbmVfXyBsb25nIGRvdWJsZSBfX2Zhc3RfbG9nMXBsIChsb25nIGRvdWJsZSB4KQ0KK3sNCisgIGxvbmcgZG91YmxlIHJlczsNCisgIC8qIGZ5bDJ4cDEgYWNjdXJhdGUgb25seSBmb3IgfHh8IDw9IDEuMCAtIDAuNSAqIHNxcnQgKDIuMCkgKi8NCisgIGlmIChmYWJzbCAoeCkgPj0gMS4wTCAtIDAuNUwgKiAxLjQxNDIxMzU2MjM3MzA5NTA0ODgwTCkNCisgICAgcmVzID0gX19mYXN0X2xvZ2wgKDEuMEwgKyB4KTsNCisgIGVsc2UNCisgICAgYXNtIF9fdm9sYXRpbGVfXw0KKyAgICAgICgiZmxkbG4yXG5cdCINCisgICAgICAgImZ4Y2hcblx0Ig0KKyAgICAgICAiZnlsMnhwMSINCisgICAgICAgOiAiPXQiIChyZXMpIDogIjAiICh4KSA6ICJzdCgxKSIpOw0KKyAgIHJldHVybiByZXM7DQorfQ0KKw0KK3N0YXRpYyBfX2lubGluZV9fIGZsb2F0IF9fZmFzdF9sb2cxcGYgKGZsb2F0IHgpDQorew0KKyAgZmxvYXQgcmVzOw0KKyAgLyogZnlsMnhwMSBhY2N1cmF0ZSBvbmx5IGZvciB8eHwgPD0gMS4wIC0gMC41ICogc3FydCAoMi4wKSAqLw0KKyAgaWYgKGZhYnNmICh4KSA+PSAxLjAgLSAwLjUgKiAxLjQxNDIxMzU2MjM3MzA5NTA0ODgwKQ0KKyAgICByZXMgPSBfX2Zhc3RfbG9nZiAoMS4wICsgeCk7DQorICBlbHNlDQorICAgIGFzbSBfX3ZvbGF0aWxlX18NCisgICAgICAoImZsZGxuMlxuXHQiDQorICAgICAgICJmeGNoXG5cdCINCisgICAgICAgImZ5bDJ4cDEiDQorICAgICAgIDogIj10IiAocmVzKSA6ICIwIiAoeCkgOiAic3QoMSkiKTsNCisgICByZXR1cm4gcmVzOw0KK30NCisNCisjZW5kaWYNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvZmRpbS5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2ZkaW0uYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lMWQ1Y2I5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2ZkaW0uYwpAQCAtMCwwICsxLDcgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorDQorZG91YmxlDQorZmRpbSAoZG91YmxlIHgsIGRvdWJsZSB5KQ0KK3sNCisgIHJldHVybiAgKGlzZ3JlYXRlcih4LCB5KSA/ICh4IC0geSkgOiAwLjApOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvZmRpbWYuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mZGltZi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY2Y2YxOGIKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvZmRpbWYuYwpAQCAtMCwwICsxLDcgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorDQorZmxvYXQNCitmZGltZiAoZmxvYXQgeCwgZmxvYXQgeSkNCit7DQorICByZXR1cm4gIChpc2dyZWF0ZXIoeCwgeSkgPyAoeCAtIHkpIDogMC4wRik7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9mZGltbC5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2ZkaW1sLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjY5N2FjMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mZGltbC5jCkBAIC0wLDAgKzEsNyBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisNCitsb25nIGRvdWJsZQ0KK2ZkaW1sIChsb25nIGRvdWJsZSB4LCBsb25nIGRvdWJsZSB5KQ0KK3sNCisgICByZXR1cm4gIChpc2dyZWF0ZXIoeCwgeSkgPyAoeCAtIHkpIDogMC4wTCk7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9mbG9vcmYuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mbG9vcmYuUwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wODliZjA1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2Zsb29yZi5TCkBAIC0wLDAgKzEsMzUgQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqDQorICogQ2hhbmdlcyBmb3IgbG9uZyBkb3VibGUgYnkgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAY3lnbnVzLmNvbT4NCisgKiANCisgKiBSZW1vdmVkIGhlYWRlciBmaWxlIGRlcGVuZGVuY3kgZm9yIHVzZSBpbiBsaWJtaW5nd2V4LmEgYnkNCisgKiAgIERhbm55IFNtaXRoIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4NCisgKi8NCisJLmZpbGUJImZsb29yZi5TIg0KKwkudGV4dA0KKwkuYWxpZ24gNA0KKy5nbG9ibCBfZmxvb3JmDQorCS5kZWYJX2Zsb29yZjsJLnNjbAkyOwkudHlwZQkzMjsJLmVuZGVmDQorX2Zsb29yZjoNCisJZmxkcwk0KCVlc3ApDQorCXN1YmwJJDgsJWVzcA0KKw0KKwlmc3Rjdwk0KCVlc3ApCQkJLyogc3RvcmUgZnB1IGNvbnRyb2wgd29yZCAqLw0KKw0KKwkvKiBXZSB1c2UgaGVyZSAlZWR4IGFsdGhvdWdoIG9ubHkgdGhlIGxvdyAxIGJpdHMgYXJlIGRlZmluZWQuDQorCSAgIEJ1dCBub25lIG9mIHRoZSBvcGVyYXRpb25zIHNob3VsZCBjYXJlIGFuZCB0aGV5IGFyZSBmYXN0ZXINCisJICAgdGhhbiB0aGUgMTYgYml0IG9wZXJhdGlvbnMuICAqLw0KKwltb3ZsCSQweDQwMCwlZWR4CQkvKiByb3VuZCB0b3dhcmRzIC1vbyAqLw0KKwlvcmwJNCglZXNwKSwlZWR4DQorCWFuZGwJJDB4ZjdmZiwlZWR4DQorCW1vdmwJJWVkeCwoJWVzcCkNCisJZmxkY3cJKCVlc3ApCQkJLyogbG9hZCBtb2RpZmllZCBjb250cm9sIHdvcmQgKi8NCisNCisJZnJuZGludAkJCQkvKiByb3VuZCAqLw0KKw0KKwlmbGRjdwk0KCVlc3ApCQkJLyogcmVzdG9yZSBvcmlnaW5hbCBjb250cm9sIHdvcmQgKi8NCisNCisJYWRkbAkkOCwlZXNwDQorCXJldA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9mbG9vcmwuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mbG9vcmwuUwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xYmRmYzViCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2Zsb29ybC5TCkBAIC0wLDAgKzEsMzMgQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqDQorICogQ2hhbmdlcyBmb3IgbG9uZyBkb3VibGUgYnkgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAY3lnbnVzLmNvbT4NCisgKiANCisgKi8NCisJLmZpbGUJImZsb29ybC5TIg0KKwkudGV4dA0KKwkuYWxpZ24gNA0KKy5nbG9ibCBfZmxvb3JsDQorCS5kZWYJX2Zsb29ybDsJLnNjbAkyOwkudHlwZQkzMjsJLmVuZGVmDQorX2Zsb29ybDoNCisJZmxkdAk0KCVlc3ApDQorCXN1YmwJJDgsJWVzcA0KKw0KKwlmc3Rjdwk0KCVlc3ApCQkJLyogc3RvcmUgZnB1IGNvbnRyb2wgd29yZCAqLw0KKw0KKwkvKiBXZSB1c2UgaGVyZSAlZWR4IGFsdGhvdWdoIG9ubHkgdGhlIGxvdyAxIGJpdHMgYXJlIGRlZmluZWQuDQorCSAgIEJ1dCBub25lIG9mIHRoZSBvcGVyYXRpb25zIHNob3VsZCBjYXJlIGFuZCB0aGV5IGFyZSBmYXN0ZXINCisJICAgdGhhbiB0aGUgMTYgYml0IG9wZXJhdGlvbnMuICAqLw0KKwltb3ZsCSQweDQwMCwlZWR4CQkvKiByb3VuZCB0b3dhcmRzIC1vbyAqLw0KKwlvcmwJNCglZXNwKSwlZWR4DQorCWFuZGwJJDB4ZjdmZiwlZWR4DQorCW1vdmwJJWVkeCwoJWVzcCkNCisJZmxkY3cJKCVlc3ApCQkJLyogbG9hZCBtb2RpZmllZCBjb250cm9sIHdvcmQgKi8NCisNCisJZnJuZGludAkJCQkvKiByb3VuZCAqLw0KKw0KKwlmbGRjdwk0KCVlc3ApCQkJLyogcmVzdG9yZSBvcmlnaW5hbCBjb250cm9sIHdvcmQgKi8NCisNCisJYWRkbAkkOCwlZXNwDQorCXJldA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9mbWEuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mbWEuUwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMTYxNjZmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2ZtYS5TCkBAIC0wLDAgKzEsMTIgQEAKKwkuZmlsZQkiZm1hLlMiDQorCS50ZXh0DQorCS5hbGlnbiAyDQorCS5wMmFsaWduIDQsLDE1DQorLmdsb2JsIF9mbWENCisJLmRlZglfZm1hOwkuc2NsCTI7CS50eXBlCTMyOwkuZW5kZWYNCitfZm1hOg0KKwlmbGRsCTQoJWVzcCkNCisJZm11bGwJMTIoJWVzcCkNCisJZmxkbAkyMCglZXNwKQ0KKwlmYWRkcA0KKwlyZXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvZm1hZi5TIGIvbWluZ3ctdzY0LWNydC9tYXRoL2ZtYWYuUwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lMjMwMmJjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2ZtYWYuUwpAQCAtMCwwICsxLDEyIEBACisJLmZpbGUJImZtYWYuUyINCisJLnRleHQNCisJLmFsaWduIDINCisJLnAyYWxpZ24gNCwsMTUNCisuZ2xvYmwgX2ZtYWYNCisJLmRlZglfZm1hZjsJLnNjbAkyOwkudHlwZQkzMjsJLmVuZGVmDQorX2ZtYWY6DQorCWZsZHMJNCglZXNwKQ0KKwlmbXVscwk4KCVlc3ApDQorCWZsZHMJMTIoJWVzcCkNCisJZmFkZHANCisJcmV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2ZtYWwuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mbWFsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmRlMTdjYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mbWFsLmMKQEAgLTAsMCArMSw1IEBACitsb25nIGRvdWJsZQ0KK2ZtYWwgKCBsb25nIGRvdWJsZSBfeCwgIGxvbmcgZG91YmxlIF95LCAgbG9uZyBkb3VibGUgX3opDQorew0KKyAgcmV0dXJuICgoX3ggKiBfeSkgKyBfeik7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9mbWF4LmMgYi9taW5ndy13NjQtY3J0L21hdGgvZm1heC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJjNjlhNTEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvZm1heC5jCkBAIC0wLDAgKzEsNyBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisNCitkb3VibGUNCitmbWF4IChkb3VibGUgX3gsIGRvdWJsZSBfeSkNCit7DQorICAgcmV0dXJuICggaXNncmVhdGVyZXF1YWwgKF94LCBfeSl8fCBfX2lzbmFuIChfeSkgPyAgX3ggOiBfeSApOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvZm1heGYuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mbWF4Zi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM1MWUxNmQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvZm1heGYuYwpAQCAtMCwwICsxLDcgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorDQorZmxvYXQNCitmbWF4ZiAoZmxvYXQgX3gsIGZsb2F0IF95KQ0KK3sNCisgIHJldHVybiAoKCBpc2dyZWF0ZXJlcXVhbChfeCwgX3kpIHx8IF9faXNuYW5mIChfeSkpID8gIF94IDogX3kgKTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2ZtYXhsLmMgYi9taW5ndy13NjQtY3J0L21hdGgvZm1heGwuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ODNmNDg3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2ZtYXhsLmMKQEAgLTAsMCArMSw3IEBACisjaW5jbHVkZSA8bWF0aC5oPg0KKw0KK2xvbmcgZG91YmxlDQorZm1heGwgKGxvbmcgZG91YmxlIF94LCBsb25nIGRvdWJsZSAgX3kpDQorew0KKyAgcmV0dXJuICgoIGlzZ3JlYXRlcmVxdWFsKF94LCBfeSkgfHwgX19pc25hbmwgKF95KSkgPyAgX3ggOiBfeSApOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvZm1pbi5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2ZtaW4uYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lMTM1YzZlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2ZtaW4uYwpAQCAtMCwwICsxLDcgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorDQorZG91YmxlDQorZm1pbiAoZG91YmxlIF94LCBkb3VibGUgX3kpDQorew0KKyAgcmV0dXJuICgoaXNsZXNzZXF1YWwoX3gsIF95KSB8fCBfX2lzbmFuIChfeSkpID8gX3ggOiBfeSApOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvZm1pbmYuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mbWluZi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJkMmViZDMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvZm1pbmYuYwpAQCAtMCwwICsxLDcgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorDQorZmxvYXQNCitmbWluZiAoZmxvYXQgX3gsIGZsb2F0IF95KQ0KK3sNCisgIHJldHVybiAoKGlzbGVzc2VxdWFsKF94LCBfeSkgfHwgX2lzbmFuIChfeSkpID8gX3ggOiBfeSApOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvZm1pbmwuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mbWlubC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYzMmE0M2UKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvZm1pbmwuYwpAQCAtMCwwICsxLDcgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorDQorbG9uZyBkb3VibGUNCitmbWlubCAobG9uZyBkb3VibGUgX3gsIGxvbmcgZG91YmxlIF95KQ0KK3sNCisgIHJldHVybiAoKGlzbGVzc2VxdWFsKF94LCBfeSkgfHwgX19pc25hbmwgKF95KSkgPyBfeCA6IF95ICk7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9mbW9kZi5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2Ztb2RmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmE5NGQ3YQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mbW9kZi5jCkBAIC0wLDAgKzEsMjMgQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqDQorICogQWRhcHRlZCBmb3IgZmxvYXQgdHlwZSBieSBEYW5ueSBTbWl0aA0KKyAqICA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Lg0KKyAqLw0KKw0KKyNpbmNsdWRlIDxtYXRoLmg+DQorDQorZmxvYXQNCitmbW9kZiAoZmxvYXQgeCwgZmxvYXQgeSkNCit7DQorICBmbG9hdCByZXM7DQorDQorICBhc20gKCIxOlx0ZnByZW1cblx0Ig0KKyAgICAgICAiZnN0c3cgICAlJWF4XG5cdCINCisgICAgICAgInNhaGZcblx0Ig0KKyAgICAgICAianAgICAgICAxYlxuXHQiDQorICAgICAgICJmc3RwICAgICUlc3QoMSkiDQorICAgICAgIDogIj10IiAocmVzKSA6ICIwIiAoeCksICJ1IiAoeSkgOiAiYXgiLCAic3QoMSkiKTsNCisgIHJldHVybiByZXM7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9mbW9kbC5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2Ztb2RsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTA0NGYwZQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mbW9kbC5jCkBAIC0wLDAgKzEsMTMgQEAKK2xvbmcgZG91YmxlDQorZm1vZGwgKGxvbmcgZG91YmxlIHgsIGxvbmcgZG91YmxlIHkpDQorew0KKyAgbG9uZyBkb3VibGUgcmVzOw0KKw0KKyAgYXNtICgiMTpcdGZwcmVtXG5cdCINCisgICAgICAgImZzdHN3ICAgJSVheFxuXHQiDQorICAgICAgICJzYWhmXG5cdCINCisgICAgICAgImpwICAgICAgMWJcblx0Ig0KKyAgICAgICAiZnN0cCAgICAlJXN0KDEpIg0KKyAgICAgICA6ICI9dCIgKHJlcykgOiAiMCIgKHgpLCAidSIgKHkpIDogImF4IiwgInN0KDEpIik7DQorICByZXR1cm4gcmVzOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvZnBfY29uc3RzLmMgYi9taW5ndy13NjQtY3J0L21hdGgvZnBfY29uc3RzLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjEyNTEzOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mcF9jb25zdHMuYwpAQCAtMCwwICsxLDE0IEBACisNCisjaW5jbHVkZSAiZnBfY29uc3RzLmgiDQorY29uc3QgdW5pb24gX2llZWVfcmVwIF9fUU5BTiA9IHsgX19ET1VCTEVfUU5BTl9SRVAgfTsNCitjb25zdCB1bmlvbiBfaWVlZV9yZXAgX19TTkFOID0geyBfX0RPVUJMRV9TTkFOX1JFUCB9Ow0KK2NvbnN0IHVuaW9uIF9pZWVlX3JlcCBfX0lORiA9IHsgX19ET1VCTEVfSU5GX1JFUCB9Ow0KK2NvbnN0IHVuaW9uIF9pZWVlX3JlcCBfX0RFTk9STSA9IHsgX19ET1VCTEVfREVOT1JNX1JFUCB9Ow0KKw0KKy8qIElTTyBDOTkgKi8NCisjdW5kZWYgbmFuDQorLyogRklYTUUgKi8NCitkb3VibGUgbmFuIChjb25zdCBjaGFyICogdGFncCBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSApDQorCXsgcmV0dXJuIF9fUU5BTi5kb3VibGVfdmFsOyB9IA0KKw0KKw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9mcF9jb25zdHMuaCBiL21pbmd3LXc2NC1jcnQvbWF0aC9mcF9jb25zdHMuaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NjNkMGZmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2ZwX2NvbnN0cy5oCkBAIC0wLDAgKzEsNDggQEAKKyNpZm5kZWYgX0ZQX0NPTlNUU19IDQorI2RlZmluZSBfRlBfQ09OU1RTX0gNCisNCisvKg0KK0FjY29yZGluZyB0byBJRUVFIDc1NCBhIFFOYU4gaGFzIGV4cG9uZW50IGJpdHMgb2YgYWxsIDEgdmFsdWVzIGFuZA0KK2luaXRpYWwgc2lnbmlmaWNhbmQgYml0IG9mIDEuICBBIFNOYU4gaGFzIGhhcyBhbiBleHBvbmVudCBvZiBhbGwgMQ0KK3ZhbHVlcyBhbmQgaW5pdGlhbCBzaWduaWZpY2FuZCBiaXQgb2YgMCAod2l0aCBvbmUgb3IgbW9yZSBvdGhlcg0KK3NpZ25pZmljYW5kIGJpdHMgb2YgMSkuIEFuIEluZiBoYXMgc2lnbmlmaWNhbmQgb2YgMCBhbmQNCitleHBvbmVudCBvZiBhbGwgMSB2YWx1ZXMuIEEgZGVub3JtYWwgdmFsdWUgaGFzIGFsbCBleHBvbmVudCBiaXRzIG9mIDAuDQorDQorVGhlIGZvbGxvd2luZyBkb2VzIF9ub3RfIGZvbGxvdyB0aG9zZSBydWxlcywgYnV0IHVzZXMgdmFsdWVzDQorZXF1YWwgdG8gdGhvc2UgZXhwb3J0ZWQgZnJvbSBNUyBDKysgcnVudGltZSBsaWIsIG1zdmNwcnQuZGxsDQorZm9yIGZsb2F0IGFuZCBkb3VibGUuIE1TVkMgaG93ZXZlciwgZG9lcyBub3QgaGF2ZSBsb25nIGRvdWJsZXMuDQorKi8NCisNCisNCisjZGVmaW5lIF9fRE9VQkxFX0lORl9SRVAgeyAwLCAwLCAwLCAweDdmZjAgfQ0KKyNkZWZpbmUgX19ET1VCTEVfUU5BTl9SRVAgeyAwLCAwLCAwLCAweGZmZjggfSAgLyogeyAwLCAwLCAwLCAweDdmZjggfSAgKi8NCisjZGVmaW5lIF9fRE9VQkxFX1NOQU5fUkVQIHsgMCwgMCwgMCwgMHhmZmYwIH0gIC8qIHsgMSwgMCwgMCwgMHg3ZmYwIH0gICovDQorI2RlZmluZSBfX0RPVUJMRV9ERU5PUk1fUkVQIHsxLCAwLCAwLCAwfQ0KKw0KKyNkZWZpbmUgRF9OQU5fTUFTSyAweDdmZjAwMDAwMDAwMDAwMDBMTCAvKiB0aGlzIHdpbGwgbWFzayBOYU4ncyBhbmQgSW5mJ3MgKi8NCisNCisjZGVmaW5lIF9fRkxPQVRfSU5GX1JFUCB7IDAsIDB4N2Y4MCB9DQorI2RlZmluZSBfX0ZMT0FUX1FOQU5fUkVQIHsgMCwgMHhmZmMwIH0gIC8qIHsgMCwgMHg3ZmMwIH0gICovDQorI2RlZmluZSBfX0ZMT0FUX1NOQU5fUkVQIHsgMCwgMHhmZjgwIH0gIC8qIHsgMSwgMHg3ZjgwIH0gICovDQorI2RlZmluZSBfX0ZMT0FUX0RFTk9STV9SRVAgezEsMH0NCisNCisjZGVmaW5lIEZfTkFOX01BU0sgMHg3ZjgwMDAwMA0KKw0KKy8qDQorICAgVGhpcyBhc3N1bWVzIG5vIGltcGxpY2l0IChoaWRkZW4pIGJpdCBpbiBleHRlbmRlZCBtb2RlLg0KKyAgIFBhZGRlZCB0byA5NiBiaXRzDQorICovDQorI2RlZmluZSBfX0xPTkdfRE9VQkxFX0lORl9SRVAgeyAwLCAwLCAwLCAweDgwMDAsIDB4N2ZmZiwgMCB9DQorI2RlZmluZSBfX0xPTkdfRE9VQkxFX1FOQU5fUkVQIHsgMCwgMCwgMCwgMHhjMDAwLCAweGZmZmYsIDAgfSANCisjZGVmaW5lIF9fTE9OR19ET1VCTEVfU05BTl9SRVAgeyAwLCAwLCAwLCAweDgwMDAsIDB4ZmZmZiwgMCB9DQorI2RlZmluZSBfX0xPTkdfRE9VQkxFX0RFTk9STV9SRVAgezEsIDAsIDAsIDAsIDAsIDB9DQorDQordW5pb24gX2llZWVfcmVwDQorew0KKyAgdW5zaWduZWQgc2hvcnQgcmVwWzZdOw0KKyAgZmxvYXQgZmxvYXRfdmFsOw0KKyAgZG91YmxlIGRvdWJsZV92YWw7DQorICBsb25nIGRvdWJsZSBsZG91YmxlX3ZhbDsNCit9IDsNCisNCisjZW5kaWYNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvZnBfY29uc3RzZi5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2ZwX2NvbnN0c2YuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hODVkZGU3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2ZwX2NvbnN0c2YuYwpAQCAtMCwwICsxLDEyIEBACisjaW5jbHVkZSAiZnBfY29uc3RzLmgiDQorDQorY29uc3QgdW5pb24gX2llZWVfcmVwIF9fUU5BTkYgPSB7IF9fRkxPQVRfUU5BTl9SRVAgfTsgICANCitjb25zdCB1bmlvbiBfaWVlZV9yZXAgX19TTkFORiA9IHsgX19GTE9BVF9TTkFOX1JFUCB9OyAgIA0KK2NvbnN0IHVuaW9uIF9pZWVlX3JlcCBfX0lORkYgPSB7IF9fRkxPQVRfSU5GX1JFUCB9OyAgIA0KK2NvbnN0IHVuaW9uIF9pZWVlX3JlcCBfX0RFTk9STUYgPSB7IF9fRkxPQVRfREVOT1JNX1JFUCB9OyAgIA0KKw0KKy8qIElTTyBDOTkgKi8NCisjdW5kZWYgbmFuZg0KKy8qIEZJWE1FICovDQorZmxvYXQgbmFuZihjb25zdCBjaGFyICogdGFncCBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSApDQorICB7IHJldHVybiBfX1FOQU5GLmZsb2F0X3ZhbDt9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2ZwX2NvbnN0c2wuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mcF9jb25zdHNsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjI0MGJlZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mcF9jb25zdHNsLmMKQEAgLTAsMCArMSwxMiBAQAorI2luY2x1ZGUgImZwX2NvbnN0cy5oIg0KKw0KK2NvbnN0IHVuaW9uIF9pZWVlX3JlcCBfX1FOQU5MID0geyBfX0xPTkdfRE9VQkxFX1FOQU5fUkVQIH07DQorY29uc3QgdW5pb24gX2llZWVfcmVwIF9fU05BTkwgID0geyBfX0xPTkdfRE9VQkxFX1NOQU5fUkVQIH07DQorY29uc3QgdW5pb24gX2llZWVfcmVwIF9fSU5GTCA9IHsgX19MT05HX0RPVUJMRV9JTkZfUkVQIH07DQorY29uc3QgdW5pb24gX2llZWVfcmVwIF9fREVOT1JNTCA9IHsgX19MT05HX0RPVUJMRV9ERU5PUk1fUkVQIH07DQorDQorDQorI3VuZGVmIG5hbmwNCisvKiBGSVhNRSAqLw0KK2xvbmcgZG91YmxlIG5hbmwgKGNvbnN0IGNoYXIgKiB0YWdwIF9fYXR0cmlidXRlX18oKHVudXNlZCkpICkNCisgIHsgcmV0dXJuIF9fUU5BTkwubGRvdWJsZV92YWw7IH0gDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2ZwY2xhc3NpZnkuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mcGNsYXNzaWZ5LmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTAzNDNjOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mcGNsYXNzaWZ5LmMKQEAgLTAsMCArMSwyMCBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisNCisvKiAnZnhhbScgc2V0cyBGUFUgZmxhZ3MgQzMsQzIsQzAgICAnZnN0c3cnIHN0b3JlczogDQorIEZQX05BTgkJCTAwMQkJMHgwMTAwDQorIEZQX05PUk1BTAkJMDEwCQkweDA0MDANCisgRlBfSU5GSU5JVEUJCTAxMQkJMHgwNTAwDQorIEZQX1pFUk8JCTEwMAkJMHg0MDAwDQorIEZQX1NVQk5PUk1BTAkJMTEwCQkweDQ0MDANCisNCithbmQgc2V0cyBDMSBmbGFnIChzaWduYml0KSBpZiBuZWcgKi8NCisNCitpbnQgX19mcGNsYXNzaWZ5IChkb3VibGUgX3gpew0KKyAgdW5zaWduZWQgc2hvcnQgc3c7DQorICBfX2FzbV9fICgNCisJImZ4YW07IGZzdHN3ICUlYXg7Ig0KKwk6ICI9YSIgKHN3KQ0KKwk6ICJ0IiAoX3gpDQorCSk7DQorICByZXR1cm4gc3cgJiAoRlBfTkFOIHwgRlBfTk9STUFMIHwgRlBfWkVSTyApOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvZnBjbGFzc2lmeWYuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mcGNsYXNzaWZ5Zi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk0MDNmODQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvZnBjbGFzc2lmeWYuYwpAQCAtMCwwICsxLDEwIEBACisjaW5jbHVkZSA8bWF0aC5oPg0KK2ludCBfX2ZwY2xhc3NpZnlmIChmbG9hdCBfeCl7DQorICB1bnNpZ25lZCBzaG9ydCBzdzsNCisgIF9fYXNtX18gKA0KKwkiZnhhbTsgZnN0c3cgJSVheDsiDQorCTogIj1hIiAoc3cpDQorCTogInQiIChfeCkNCisJKTsNCisgIHJldHVybiBzdyAmIChGUF9OQU4gfCBGUF9OT1JNQUwgfCBGUF9aRVJPICk7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9mcGNsYXNzaWZ5bC5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2ZwY2xhc3NpZnlsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmIyZGU4NQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mcGNsYXNzaWZ5bC5jCkBAIC0wLDAgKzEsMTAgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQoraW50IF9fZnBjbGFzc2lmeWwgKGxvbmcgZG91YmxlIF94KXsNCisgIHVuc2lnbmVkIHNob3J0IHN3Ow0KKyAgX19hc21fXyAoDQorCSJmeGFtOyBmc3RzdyAlJWF4OyINCisJOiAiPWEiIChzdykNCisJOiAidCIgKF94KQ0KKwkpOw0KKyAgcmV0dXJuIHN3ICYgKEZQX05BTiB8IEZQX05PUk1BTCB8IEZQX1pFUk8gKTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2ZyZXhwZi5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2ZyZXhwZi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY4YzY2NDAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvZnJleHBmLmMKQEAgLTAsMCArMSw0IEBACitleHRlcm4gZG91YmxlIF9fY2RlY2wgZnJleHAoZG91YmxlIF9YLGludCAqX1kpOw0KKw0KK2Zsb2F0IGZyZXhwZiAoZmxvYXQgeCwgaW50KiBleHBuKQ0KKyAge3JldHVybiAoZmxvYXQpZnJleHAoeCwgZXhwbik7fQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9mcmV4cGwuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9mcmV4cGwuUwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42M2Q1ZjQxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2ZyZXhwbC5TCkBAIC0wLDAgKzEsNzEgQEAKKy8qDQorICBDZXBoZXMgTWF0aCBMaWJyYXJ5IFJlbGVhc2UgMi43OiAgTWF5LCAxOTk4DQorICBDb3B5cmlnaHQgMTk4NCwgMTk4NywgMTk4OCwgMTk5MiwgMTk5OCBieSBTdGVwaGVuIEwuIE1vc2hpZXINCisNCisgIEV4dHJhY3RlZCBmcm9tIGZsb29ybC4zODcgZm9yIHVzZSBpbiBsaWJtaW5nd2V4LmEgYnkNCisgIERhbm55IFNtaXRoIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4NCisgIDIwMDItMDYtMjANCisqLw0KKw0KKy8qDQorICogZnJleHBsKGxvbmcgZG91YmxlIHgsIGludCogZXhwbnQpIGV4dHJhY3RzIHRoZSBleHBvbmVudCBmcm9tIHguDQorICogSXQgcmV0dXJucyBhbiBpbnRlZ2VyIHBvd2VyIG9mIHR3byB0byBleHBudCBhbmQgdGhlIHNpZ25pZmljYW5kDQorICogYmV0d2VlbiAwLjUgYW5kIDEgdG8geS4gIFRodXMgIHggPSB5ICogMioqZXhwbi4NCisgKi8gDQorCS5hbGlnbiAyDQorLmdsb2JsIF9mcmV4cGwNCitfZnJleHBsOg0KKwlwdXNocSAlcmJwDQorCW1vdnEgJXJzcCwlcmJwDQorCXN1YnEgJDI0LCVyc3ANCisJcHVzaHEgJXJzaQ0KKwlwdXNocSAlcmJ4DQorCWZsZHQgMTYoJXJicCkNCisJbW92cSA0MCglcmJwKSwlcmJ4DQorCWZsZCAlc3QoMCkNCisJZnN0cHQgLTI0KCVyYnApDQorCWxlYXEgLTgoJXJicCksJXJjeA0KKwltb3Z3IC04KCVyYnApLCVkeA0KKwlhbmRxICQzMjc2NywlcmR4DQorCWpuZSBMMjUNCisJZmxkeg0KKwlmdWNvbXBwDQorCWZuc3RzdyAlYXgNCisJYW5kYiAkNjgsJWFoDQorCXhvcmIgJDY0LCVhaA0KKwlqbmUgTDIxDQorCW1vdnEgJDAsKCVyYngpDQorCWZsZHoNCisJam1wIEwyNA0KKwkuYWxpZ24gMiwweDkwDQorCS5hbGlnbiAyLDB4OTANCitMMjE6DQorCWZsZHQgLTI0KCVyYnApDQorCWZhZGQgJXN0KDApLCVzdA0KKwlmc3RwdCAtMjQoJXJicCkNCisJZGVjcSAlcmR4DQorCW1vdncgKCVyY3gpLCVzaQ0KKwlhbmRxICQzMjc2NywlcnNpDQorCWpuZSBMMjINCisJY21wcSAkLTY2LCVyZHgNCisJamcgTDIxDQorTDIyOg0KKwlhZGRxICVyc2ksJXJkeA0KKwlqbXAgTDE5DQorCS5hbGlnbiAyLDB4OTANCitMMjU6DQorCWZzdHAgJXN0KDApDQorTDE5Og0KKwlhZGRxICQtMTYzODIsJXJkeA0KKwltb3ZxICVyZHgsKCVyYngpDQorCW1vdncgKCVyY3gpLCVheA0KKwlhbmRxICQtMzI3NjgsJXJheA0KKwlvcnEgJDE2MzgyLCVyYXgNCisJbW92dyAlYXgsKCVyY3gpDQorCWZsZHQgLTI0KCVyYnApDQorTDI0Og0KKwlsZWFxIC00MCglcmJwKSwlcnNwDQorCXBvcHEgJXJieA0KKwlwb3BxICVyc2kNCisJbGVhdmUNCisJcmV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2Z1Y29tLmMgYi9taW5ndy13NjQtY3J0L21hdGgvZnVjb20uYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NzRjMWNiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2Z1Y29tLmMKQEAgLTAsMCArMSwxMSBAQAoraW50IA0KK19fZnBfdW5vcmRlcmVkX2NvbXBhcmUgKGxvbmcgZG91YmxlIHgsICBsb25nIGRvdWJsZSB5KXsNCisgIHVuc2lnbmVkIHNob3J0IHJldHZhbDsNCisgIF9fYXNtX18gKA0KKwkiZnVjb20gJSVzdCgxKTsiDQorCSJmbnN0c3c7Ig0KKwk6ICI9YSIgKHJldHZhbCkNCisJOiAidCIgKHgpLCAidSIgKHkpDQorCSk7DQorICByZXR1cm4gcmV0dmFsOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvaHlwb3RmLmMgYi9taW5ndy13NjQtY3J0L21hdGgvaHlwb3RmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzYwODlmOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9oeXBvdGYuYwpAQCAtMCwwICsxLDQgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorDQorZmxvYXQgaHlwb3RmIChmbG9hdCB4LCBmbG9hdCB5KQ0KKyAgeyByZXR1cm4gKGZsb2F0KSBfaHlwb3QgKHgsIHkpO30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvaHlwb3RsLmMgYi9taW5ndy13NjQtY3J0L21hdGgvaHlwb3RsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjE3MzgyNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9oeXBvdGwuYwpAQCAtMCwwICsxLDczIEBACisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxmbG9hdC5oPg0KKyNpbmNsdWRlIDxlcnJuby5oPg0KKw0KKy8qDQorVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBiYXNlZCBsYXJnZWx5IG9uIENlcGhlcyBsaWJyYXJ5DQorZnVuY3Rpb24gY2Fic2wgKGNtcGx4bC5jKSwgd2hpY2ggYmVhcnMgdGhlIGZvbGxvd2luZyBub3RpY2U6DQorDQorQ2VwaGVzIE1hdGggTGlicmFyeSBSZWxlYXNlIDIuMTogIEphbnVhcnksIDE5ODkNCitDb3B5cmlnaHQgMTk4NCwgMTk4NywgMTk4OSBieSBTdGVwaGVuIEwuIE1vc2hpZXINCitEaXJlY3QgaW5xdWlyaWVzIHRvIDMwIEZyb3N0IFN0cmVldCwgQ2FtYnJpZGdlLCBNQSAwMjE0MA0KKyovDQorDQorLyoNCisgICBNb2RpZmllZCBmb3IgdXNlIGluIGxpYm1pbmd3ZXguYQ0KKyAgIDAyIFNlcHQgMjAwMiAgRGFubnkgU21pdGggIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmVnZS5uZXQ+DQorICAgQ2FsbHMgdG8gbGRleHBsIHJlcGxhY2VkIGJ5IGxvZ2JsIGFuZCBjYWxscyB0byBmcmV4cGwgcmVwbGFjZWQNCisgICBieSBzY2FsYm5sIHRvIGF2b2lkIGR1cGxpY2F0ZWQgcmFuZ2UgY2hlY2tzLg0KKyovDQorDQorZXh0ZXJuIGxvbmcgZG91YmxlIF9fSU5GTDsNCisjZGVmaW5lIFBSRUNMIDMyDQorDQorbG9uZyBkb3VibGUNCitoeXBvdGwgKGxvbmcgZG91YmxlIHgsIGxvbmcgZG91YmxlIHkpDQorew0KKyAgaW50IGV4eDsNCisgIGludCBleXk7DQorICBpbnQgIHNjYWxlOw0KKyAgbG9uZyBkb3VibGUgeHggPWZhYnNsKHgpOw0KKyAgbG9uZyBkb3VibGUgeXkgPWZhYnNsKHkpOw0KKyAgaWYgKCFpc2Zpbml0ZSh4eCkgfHwgIWlzZmluaXRlKHl5KSkNCisgICAgcmV0dXJuICB4eCArIHl5OyAvKiBSZXR1cm4gSU5GIG9yIE5BTi4gKi8NCisNCisgIGlmICh4eCA9PSAwLjBMKQ0KKyAgICAgcmV0dXJuIHl5Ow0KKyAgaWYgKHl5ID09IDAuMEwpDQorICAgICByZXR1cm4geHg7DQorDQorICAvKiBHZXQgZXhwb25lbnRzICovDQorICBleHggPSAgbG9nYmwgKHh4KTsNCisgIGV5eSA9ICBsb2dibCAoeXkpOw0KKw0KKyAgLyogQ2hlY2sgaWYgbGFyZ2UgZGlmZmVyZW5jZXMgaW4gc2NhbGUgKi8NCisgIHNjYWxlID0gZXh4IC0gZXl5Ow0KKyAgaWYgKCBzY2FsZSA+IFBSRUNMKQ0KKyAgICAgcmV0dXJuIHh4Ow0KKyAgaWYgKCBzY2FsZSA8IC1QUkVDTCkNCisgICAgIHJldHVybiB5eTsNCisNCisgIC8qIEV4cG9uZW50IG9mIGFwcHJveGltYXRlIGdlb21ldHJpYyBtZWFuICh4IDIpICovDQorICBzY2FsZSA9IChleHggKyBleXkpID4+IDE7DQorDQorICAvKiAgUmVzY2FsZTogR2VvbWV0cmljIG1lYW4gaXMgbm93IGFib3V0IDIgKi8gIA0KKyAgeCA9IHNjYWxibmwoeHgsIC1zY2FsZSk7DQorICB5ID0gc2NhbGJubCh5eSwgLXNjYWxlKTsNCisNCisgIHh4ID0gc3FydGwoeCAqIHggICsgeSAqIHkpOw0KKw0KKyAgLyogQ2hlY2sgZm9yIG92ZXJmbG93IGFuZCB1bmRlcmZsb3cgKi8NCisgIGV4eCA9IGxvZ2JsKHh4KTsgICANCisgIGV4eCArPSBzY2FsZTsNCisgICAgaWYgKGV4eCA+IExEQkxfTUFYX0VYUCkNCisgICAgew0KKyAgICAgIGVycm5vID0gRVJBTkdFOyANCisgICAgICByZXR1cm4gX19JTkZMOw0KKyAgICB9DQorICBpZiAoZXh4IDwgTERCTF9NSU5fRVhQKQ0KKyAgICByZXR1cm4gMC4wTDsNCisNCisgIC8qIFVuZG8gc2NhbGluZyAqLw0KKyAgcmV0dXJuIChzY2FsYm5sICh4eCwgc2NhbGUpKTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2lsb2diLlMgYi9taW5ndy13NjQtY3J0L21hdGgvaWxvZ2IuUwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNmFjNGY3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2lsb2diLlMKQEAgLTAsMCArMSwzNyBAQAorLyoNCisgKiBXcml0dGVuIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIFB1YmxpYyBkb21haW4uDQorICovDQorDQorDQorCS5maWxlCSJpbG9nYi5TIg0KKwkudGV4dA0KKwkuYWxpZ24gNA0KKy5nbG9ibCBfaWxvZ2INCisJLmRlZglfaWxvZ2I7CS5zY2wJMjsJLnR5cGUJMzI7CS5lbmRlZg0KK19pbG9nYjoNCisNCisJZmxkbAk0KCVlc3ApDQorLyogSSBhZGRlZCB0aGUgZm9sbG93aW5nIHVnbHkgY29uc3RydWN0IGJlY2F1c2UgaWxvZ2IoKy1JbmYpIGlzDQorICAgcmVxdWlyZWQgdG8gcmV0dXJuIElOVF9NQVggaW4gSVNPIEM5OS4NCisgICAtLSBqYWt1YkByZWRoYXQuY29tLiAgKi8NCisJZnhhbQkJCS8qIElzIE5hTiBvciArLUluZj8gICovDQorCWZzdHN3ICAgJWF4DQorCW1vdmIgICAgJDB4NDUsICVkaA0KKwlhbmRiICAgICVhaCwgJWRoDQorCWNtcGIgICAgJDB4MDUsICVkaA0KKwlqZSAgICAgIDFmCQkvKiBJcyArLUluZiwganVtcC4gICovDQorDQorCWZ4dHJhY3QNCisJcHVzaHEJJXJheA0KKwlmc3RwCSVzdA0KKw0KKwlmaXN0cGwJKCVyc3ApDQorCWZ3YWl0DQorCXBvcHEJJXJheA0KKw0KKwlyZXQNCisNCisxOglmc3RwCSVzdA0KKwltb3ZsCSQweDdmZmZmZmZmLCAlZWF4DQorCXJldA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9pbG9nYmYuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9pbG9nYmYuUwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wYmM3MmI3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2lsb2diZi5TCkBAIC0wLDAgKzEsMzUgQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqLw0KKw0KKwkuZmlsZQkiaWxvZ2JmLlMiDQorCS50ZXh0DQorCS5hbGlnbiA0DQorLmdsb2JsIF9pbG9nYmYNCisJLmRlZglfaWxvZ2JmOwkuc2NsCTI7CS50eXBlCTMyOwkuZW5kZWYNCitfaWxvZ2JmOg0KKwlmbGRzCTQoJWVzcCkNCisvKiBJIGFkZGVkIHRoZSBmb2xsb3dpbmcgdWdseSBjb25zdHJ1Y3QgYmVjYXVzZSBpbG9nYigrLUluZikgaXMNCisgICByZXF1aXJlZCB0byByZXR1cm4gSU5UX01BWCBpbiBJU08gQzk5Lg0KKyAgIC0tIGpha3ViQHJlZGhhdC5jb20uICAqLw0KKwlmeGFtCQkJLyogSXMgTmFOIG9yICstSW5mPyAgKi8NCisJZnN0c3cgICAlYXgNCisJbW92YiAgICAkMHg0NSwgJWRoDQorCWFuZGIgICAgJWFoLCAlZGgNCisJY21wYiAgICAkMHgwNSwgJWRoDQorCWplICAgICAgMWYJCS8qIElzICstSW5mLCBqdW1wLiAgKi8NCisNCisJZnh0cmFjdA0KKwlwdXNocQklcmF4DQorCWZzdHAJJXN0DQorDQorCWZpc3RwbAkoJWVzcCkNCisJZndhaXQNCisJcG9wcQklcmF4DQorDQorCXJldA0KKw0KKzE6CWZzdHAJJXN0DQorCW1vdmwJJDB4N2ZmZmZmZmYsICVlYXgNCisJcmV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2lsb2dibC5TIGIvbWluZ3ctdzY0LWNydC9tYXRoL2lsb2dibC5TCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmExMjk1YzgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvaWxvZ2JsLlMKQEAgLTAsMCArMSwzNiBAQAorLyoNCisgKiBXcml0dGVuIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIENoYW5nZXMgZm9yIGxvbmcgZG91YmxlIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQGN5Z251cy5jb20+DQorICogUHVibGljIGRvbWFpbi4NCisgKi8NCisNCisJLmZpbGUJImlsb2dibC5TIg0KKwkudGV4dA0KKwkuYWxpZ24gNA0KKy5nbG9ibCBfaWxvZ2JsDQorCS5kZWYJX2lsb2dibDsJLnNjbAkyOwkudHlwZQkzMjsJLmVuZGVmDQorX2lsb2dibDoNCisJZmxkdAk0KCVlc3ApDQorLyogSSBhZGRlZCB0aGUgZm9sbG93aW5nIHVnbHkgY29uc3RydWN0IGJlY2F1c2UgaWxvZ2IoKy1JbmYpIGlzDQorICAgcmVxdWlyZWQgdG8gcmV0dXJuIElOVF9NQVggaW4gSVNPIEM5OS4NCisgICAtLSBqYWt1YkByZWRoYXQuY29tLiAgKi8NCisJZnhhbQkJCS8qIElzIE5hTiBvciArLUluZj8gICovDQorCWZzdHN3ICAgJWF4DQorCW1vdmIgICAgJDB4NDUsICVkaA0KKwlhbmRiICAgICVhaCwgJWRoDQorCWNtcGIgICAgJDB4MDUsICVkaA0KKwlqZSAgICAgIDFmCQkvKiBJcyArLUluZiwganVtcC4gICovDQorDQorCWZ4dHJhY3QNCisJcHVzaHEJJXJheA0KKwlmc3RwCSVzdA0KKw0KKwlmaXN0cGwJKCVyc3ApDQorCWZ3YWl0DQorCXBvcHEJJXJheA0KKw0KKwlyZXQNCisNCisxOglmc3RwCSVzdA0KKwltb3ZsCSQweDdmZmZmZmZmLCAlZWF4DQorCXJldA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9pc25hbi5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2lzbmFuLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDNmM2EzNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9pc25hbi5jCkBAIC0wLDAgKzEsMTQgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorDQoraW50DQorX19pc25hbiAoZG91YmxlIF94KQ0KK3sNCisgIHVuc2lnbmVkIHNob3J0IF9zdzsNCisgIF9fYXNtX18gKCJmeGFtOyINCisJICAgImZzdHN3ICUlYXgiOiAiPWEiIChfc3cpIDogInQiIChfeCkpOw0KKyAgcmV0dXJuIChfc3cgJiAoRlBfTkFOIHwgRlBfTk9STUFMIHwgRlBfSU5GSU5JVEUgfCBGUF9aRVJPIHwgRlBfU1VCTk9STUFMKSkNCisgICAgPT0gRlBfTkFOOw0KK30NCisNCisjdW5kZWYgaXNuYW4NCitpbnQgX19hdHRyaWJ1dGVfXyAoKGFsaWFzICgiX19pc25hbiIpKSkgaXNuYW4gKGRvdWJsZSk7DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2lzbmFuZi5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2lzbmFuZi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYzZDYxMTcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvaXNuYW5mLmMKQEAgLTAsMCArMSwxMiBAQAorI2luY2x1ZGUgPG1hdGguaD4NCitpbnQNCitfX2lzbmFuZiAoZmxvYXQgX3gpDQorew0KKyAgdW5zaWduZWQgc2hvcnQgX3N3Ow0KKyAgX19hc21fXyAoImZ4YW07Ig0KKwkgICAiZnN0c3cgJSVheCI6ICI9YSIgKF9zdykgOiAidCIgKF94KSApOw0KKyAgcmV0dXJuIChfc3cgJiAoRlBfTkFOIHwgRlBfTk9STUFMIHwgRlBfSU5GSU5JVEUgfCBGUF9aRVJPIHwgRlBfU1VCTk9STUFMKSkNCisgICAgPT0gRlBfTkFOOw0KK30NCisNCitpbnQgX19hdHRyaWJ1dGVfXyAoKGFsaWFzICgiX19pc25hbmYiKSkpIGlzbmFuZiAoZmxvYXQpOw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9pc25hbmwuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9pc25hbmwuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40YWFkZmM1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2lzbmFubC5jCkBAIC0wLDAgKzEsMTMgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorDQoraW50DQorX19pc25hbmwgKGxvbmcgZG91YmxlIF94KQ0KK3sNCisgIHVuc2lnbmVkIHNob3J0IF9zdzsNCisgIF9fYXNtX18gKCJmeGFtOyINCisJICAgImZzdHN3ICUlYXgiOiAiPWEiIChfc3cpIDogInQiIChfeCkpOw0KKyAgcmV0dXJuIChfc3cgJiAoRlBfTkFOIHwgRlBfTk9STUFMIHwgRlBfSU5GSU5JVEUgfCBGUF9aRVJPIHwgRlBfU1VCTk9STUFMKSkNCisgICAgPT0gRlBfTkFOOw0KK30NCisNCitpbnQgX19hdHRyaWJ1dGVfXyAoKGFsaWFzICgiX19pc25hbmwiKSkpIGlzbmFubCAobG9uZyBkb3VibGUpOw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9sZGV4cGYuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9sZGV4cGYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNDFhMzM1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xkZXhwZi5jCkBAIC0wLDAgKzEsMyBAQAorZXh0ZXJuIGRvdWJsZSBfX2NkZWNsIGxkZXhwKGRvdWJsZSBfWCxpbnQgX1kpOw0KK2Zsb2F0IGxkZXhwZiAoZmxvYXQgeCwgaW50IGV4cG4pDQorICB7cmV0dXJuIChmbG9hdCkgbGRleHAgKHgsIGV4cG4pO30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvbGRleHBsLmMgYi9taW5ndy13NjQtY3J0L21hdGgvbGRleHBsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjdhYWUzZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9sZGV4cGwuYwpAQCAtMCwwICsxLDE4IEBACisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxlcnJuby5oPg0KKw0KK2xvbmcgZG91YmxlIGxkZXhwbChsb25nIGRvdWJsZSB4LCBpbnQgZXhwbikNCit7DQorICBsb25nIGRvdWJsZSByZXM7DQorICBpZiAoIWlzZmluaXRlICh4KSB8fCB4ID09IDAuMEwpDQorICAgIHJldHVybiB4Ow0KKw0KKyAgX19hc21fXyAoImZzY2FsZSINCisgIAkgICAgOiAiPXQiIChyZXMpDQorCSAgICA6ICIwIiAoeCksICJ1IiAoKGxvbmcgZG91YmxlKSBleHBuKSk7DQorDQorICBpZiAoIWlzZmluaXRlIChyZXMpIHx8IHJlcyA9PSAwLjBMKQ0KKyAgICBlcnJubyA9IEVSQU5HRTsNCisNCisgIHJldHVybiByZXM7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9sZ2FtbWEuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9sZ2FtbWEuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYWE1YzU2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xnYW1tYS5jCkBAIC0wLDAgKzEsMjY2IEBACisjaW5jbHVkZSAiY2VwaGVzX21jb25mLmgiDQorDQorLyogQVtdOiBTdGlybGluZydzIGZvcm11bGEgZXhwYW5zaW9uIG9mIGxvZyBnYW1tYQ0KKyAqIEJbXSwgQ1tdOiBsb2cgZ2FtbWEgZnVuY3Rpb24gYmV0d2VlbiAyIGFuZCAzDQorICovDQorI2lmZGVmIFVOSw0KK3N0YXRpYyBkb3VibGUgQVtdID0gew0KKyA4LjExNjE0MTY3NDcwNTA4NDUwMzAwRS00LA0KKy01Ljk1MDYxOTA0Mjg0MzAxNDM4MzI0RS00LA0KKyA3LjkzNjUwMzQwNDU3NzE2OTQzOTQ1RS00LA0KKy0yLjc3Nzc3Nzc3NzMwMDk5Njg3MjA1RS0zLA0KKyA4LjMzMzMzMzMzMzMzMzMxOTI3NzIyRS0yDQorfTsNCitzdGF0aWMgZG91YmxlIEJbXSA9IHsNCistMS4zNzgyNTE1MjU2OTEyMDg1OTEwMEUzLA0KKy0zLjg4MDE2MzE1MTM0NjM3ODQwOTI0RTQsDQorLTMuMzE2MTI5OTI3Mzg4NzExODQ3NDRFNSwNCistMS4xNjIzNzA5NzQ5Mjc2MjMwNzM4M0U2LA0KKy0xLjcyMTczNzAwODIwODM5NjYyMTQ2RTYsDQorLTguNTM1NTU2NjQyNDU3NjU0NjU2MjdFNQ0KK307DQorc3RhdGljIGRvdWJsZSBDW10gPSB7DQorLyogMS4wMDAwMDAwMDAwMDAwMDAwMDAwMEUwLCAqLw0KKy0zLjUxODE1NzAxNDM2NTIzNDcwNTQ5RTIsDQorLTEuNzA2NDIxMDY2NTE4ODExNTkyMjNFNCwNCistMi4yMDUyODU5MDU1Mzg1NDQ1NDgzOUU1LA0KKy0xLjEzOTMzNDQ0MzY3OTgyNTA3MjA3RTYsDQorLTIuNTMyNTIzMDcxNzc1ODI5NTEyODVFNiwNCistMi4wMTg4OTE0MTQzMzUzMjc3MzIzMUU2DQorfTsNCisvKiBsb2coIHNxcnQoIDIqcGkgKSApICovDQorc3RhdGljIGRvdWJsZSBMUzJQSSAgPSAgMC45MTg5Mzg1MzMyMDQ2NzI3NDE3ODsNCisjZGVmaW5lIE1BWExHTSAyLjU1NjM0OGUzMDUNCitzdGF0aWMgZG91YmxlIExPR1BJID0gMS4xNDQ3Mjk4ODU4NDk0MDAxNzQxNDsNCisjZW5kaWYNCisNCisjaWZkZWYgREVDDQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IEFbXSA9IHsNCiswMDM1NTI0LDAxNDEyMDEsMDAzNDYzMywwMDMxNDA1LA0KKzAxMzU0MzMsMDE3Njc1NSwwMTI2MDA3LDAwNDUwMzAsDQorMDAzNTUyMCwwMDA2MzcxLDAwMDMzNDIsMDE3MjczMCwNCiswMTM2MDY2LDAwMDU1NDAsMDEzMjYwNSwwMDI2NDA3LA0KKzAwMzcyNTIsMDEyNTI1MiwwMTI1MjUyLDAxMjUxMzINCit9Ow0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBCW10gPSB7DQorMDE0MjY1NCwwMDQ0MDE0LDAwNzc2MzMsMDAzNTQxMCwNCiswMTQ0MDI3LDAxMTA2NDEsMDEyNTMzNSwwMTQ0NzYwLA0KKzAxNDQ2NDEsMDE2NTYzNywwMTQyMjA0LDAwNDc0NDcsDQorMDE0NTIxNSwwMTYyMDI3LDAxNDYyNDYsMDE1NTIxMSwNCiswMTQ1MzIyLDAwMjYxMTAsMDAxMDMxNywwMTEwMTMwLA0KKzAxNDUxMjAsMDA2MTQ3MiwwMTIwMzAwLDAwMjUzNjMNCit9Ow0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBDW10gPSB7DQorLyowMDQwMjAwLDAwMDAwMDAsMDAwMDAwMCwwMDAwMDAwKi8NCiswMTQyMjU3LDAxNjQxNTAsMDE2MzYzMCwwMTEyNjIyLA0KKzAxNDM2MDUsMDA1MDE1MywwMTU2MTE2LDAxMzUyNzIsDQorMDE0NDUyNywwMDU2MDQ1LDAxNDU2NDIsMDA2MjMzMiwNCiswMTQ1MjEzLDAwMTIwNjMsMDEwNjI1MCwwMDAxMDI1LA0KKzAxNDU0MzIsMDExMTI1NCwwMDQ0NTc3LDAxMTUxNDIsDQorMDE0NTM2NiwwMDcxMTMzLDAwNTAyMTcsMDAwNTEyMg0KK307DQorLyogbG9nKCBzcXJ0KCAyKnBpICkgKSAqLw0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBMUzJQW10gPSB7MDQwMTUzLDAzNzYxNiwwNDE0NDUsMDE3MjY0NSx9Ow0KKyNkZWZpbmUgTFMyUEkgKihkb3VibGUgKilMUzJQDQorI2RlZmluZSBNQVhMR00gMi4wMzUwOTNlMzYNCitzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgTFBJWzRdID0gew0KKzAwNDAyMjIsMDEwMzIwMiwwMDQzNDc1LDAwMDY3NTAsDQorfTsNCisjZGVmaW5lIExPR1BJICooZG91YmxlICopTFBJDQorDQorI2VuZGlmDQorDQorI2lmZGVmIElCTVBDDQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IEFbXSA9IHsNCisweDY2NjEsMHgyNzMzLDB4OTg1MCwweDNmNGEsDQorMHhlOTQzLDB4YjU4MCwweDdmYmQsMHhiZjQzLA0KKzB4NWViYiwweDIwZGMsMHgwMTlmLDB4M2Y0YSwNCisweGE1YTEsMHgxNmIwLDB4YzE2YywweGJmNjYsDQorMHg1NTRiLDB4NTU1NSwweDU1NTUsMHgzZmI1DQorfTsNCitzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgQltdID0gew0KKzB4Njc2MSwweDhmZjMsMHg4OTAxLDB4YzA5NSwNCisweGI5M2UsMHgzNTViLDB4ZjIzNCwweGMwZTIsDQorMHg4OWU1LDB4Zjg5MCwweDNkNzMsMHhjMTE0LA0KKzB4ZGI1MSwweGY5OTQsMHhiYzgyLDB4YzEzMSwNCisweGYyMGIsMHgwMjE5LDB4NDU4OSwweGMxM2EsDQorMHgwNTVlLDB4NTQxOCwweDBjNjcsMHhjMTJhDQorfTsNCitzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1tdID0gew0KKy8qMHgwMDAwLDB4MDAwMCwweDAwMDAsMHgzZmYwLCovDQorMHgxMmIyLDB4MWNmMywweGZkMGQsMHhjMDc1LA0KKzB4ZDc1NywweDdiODksMHhhYTBkLDB4YzBkMCwNCisweDRjOWIsMHhiOTc0LDB4ZWI4NCwweGMxMGEsDQorMHgwMDQzLDB4NzE5NSwweDYyODYsMHhjMTMxLA0KKzB4ZjM0YywweDg5MmYsMHg1MjU1LDB4YzE0MywNCisweGUxNGEsMHg2YTExLDB4Y2U0YiwweGMxM2UNCit9Ow0KKy8qIGxvZyggc3FydCggMipwaSApICkgKi8NCitzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgTFMyUFtdID0gew0KKzB4YmViNSwweGM4NjQsMHg2N2YxLDB4M2ZlZA0KK307DQorI2RlZmluZSBMUzJQSSAqKGRvdWJsZSAqKUxTMlANCisjZGVmaW5lIE1BWExHTSAyLjU1NjM0OGUzMDUNCitzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgTFBJWzRdID0gew0KKzB4YTFiZCwweDQ4ZTcsMHg1MGQwLDB4M2ZmMiwNCit9Ow0KKyNkZWZpbmUgTE9HUEkgKihkb3VibGUgKilMUEkNCisjZW5kaWYNCisNCisjaWZkZWYgTUlFRUUNCitzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgQVtdID0gew0KKzB4M2Y0YSwweDk4NTAsMHgyNzMzLDB4NjY2MSwNCisweGJmNDMsMHg3ZmJkLDB4YjU4MCwweGU5NDMsDQorMHgzZjRhLDB4MDE5ZiwweDIwZGMsMHg1ZWJiLA0KKzB4YmY2NiwweGMxNmMsMHgxNmIwLDB4YTVhMSwNCisweDNmYjUsMHg1NTU1LDB4NTU1NSwweDU1NGINCit9Ow0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBCW10gPSB7DQorMHhjMDk1LDB4ODkwMSwweDhmZjMsMHg2NzYxLA0KKzB4YzBlMiwweGYyMzQsMHgzNTViLDB4YjkzZSwNCisweGMxMTQsMHgzZDczLDB4Zjg5MCwweDg5ZTUsDQorMHhjMTMxLDB4YmM4MiwweGY5OTQsMHhkYjUxLA0KKzB4YzEzYSwweDQ1ODksMHgwMjE5LDB4ZjIwYiwNCisweGMxMmEsMHgwYzY3LDB4NTQxOCwweDA1NWUNCit9Ow0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBDW10gPSB7DQorMHhjMDc1LDB4ZmQwZCwweDFjZjMsMHgxMmIyLA0KKzB4YzBkMCwweGFhMGQsMHg3Yjg5LDB4ZDc1NywNCisweGMxMGEsMHhlYjg0LDB4Yjk3NCwweDRjOWIsDQorMHhjMTMxLDB4NjI4NiwweDcxOTUsMHgwMDQzLA0KKzB4YzE0MywweDUyNTUsMHg4OTJmLDB4ZjM0YywNCisweGMxM2UsMHhjZTRiLDB4NmExMSwweGUxNGENCit9Ow0KKy8qIGxvZyggc3FydCggMipwaSApICkgKi8NCitzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgTFMyUFtdID0gew0KKzB4M2ZlZCwweDY3ZjEsMHhjODY0LDB4YmViNQ0KK307DQorI2RlZmluZSBMUzJQSSAqKGRvdWJsZSAqKUxTMlANCisjZGVmaW5lIE1BWExHTSAyLjU1NjM0OGUzMDUNCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgTFBJWzRdID0gew0KKzB4M2ZmMiwweDUwZDAsMHg0OGU3LDB4YTFiZCwNCit9Ow0KKyNkZWZpbmUgTE9HUEkgKihkb3VibGUgKilMUEkNCisjZW5kaWYNCisNCisNCisvKiBMb2dhcml0aG0gb2YgZ2FtbWEgZnVuY3Rpb24gKi8NCisvKiBSZWVudHJhbnQgdmVyc2lvbiAqLyANCisNCitkb3VibGUgX19sZ2FtbWFfcihkb3VibGUgeCwgaW50KiBzZ25nYW0pDQorew0KK2RvdWJsZSBwLCBxLCB1LCB3LCB6Ow0KK2ludCBpOw0KKw0KKypzZ25nYW0gPSAxOw0KKyNpZmRlZiBOQU5TDQoraWYoIGlzbmFuKHgpICkNCisJcmV0dXJuKHgpOw0KKyNlbmRpZg0KKw0KKyNpZmRlZiBJTkZJTklUSUVTDQoraWYoICFpc2Zpbml0ZSh4KSApDQorCXJldHVybihJTkZJTklUWSk7DQorI2VuZGlmDQorDQoraWYoIHggPCAtMzQuMCApDQorCXsNCisJcSA9IC14Ow0KKwl3ID0gX19sZ2FtbWFfcihxLCBzZ25nYW0pOyAvKiBub3RlIHRoaXMgbW9kaWZpZXMgc2duZ2FtISAqLw0KKwlwID0gZmxvb3IocSk7DQorCWlmKCBwID09IHEgKQ0KKwkJew0KK2xnc2luZzoNCisJCV9TRVRfRVJSTk8oRURPTSk7DQorCQltdGhlcnIoICJsZ2FtIiwgU0lORyApOw0KKyNpZmRlZiBJTkZJTklUSUVTDQorCQlyZXR1cm4gKElORklOSVRZKTsNCisjZWxzZQ0KKwkJcmV0dXJuIChNQVhOVU0pOw0KKyNlbmRpZg0KKwkJfQ0KKwlpID0gcDsNCisJaWYoIChpICYgMSkgPT0gMCApDQorCQkqc2duZ2FtID0gLTE7DQorCWVsc2UNCisJCSpzZ25nYW0gPSAxOw0KKwl6ID0gcSAtIHA7DQorCWlmKCB6ID4gMC41ICkNCisJCXsNCisJCXAgKz0gMS4wOw0KKwkJeiA9IHAgLSBxOw0KKwkJfQ0KKwl6ID0gcSAqIHNpbiggUEkgKiB6ICk7DQorCWlmKCB6ID09IDAuMCApDQorCQlnb3RvIGxnc2luZzsNCisvKgl6ID0gbG9nKFBJKSAtIGxvZyggeiApIC0gdzsqLw0KKwl6ID0gTE9HUEkgLSBsb2coIHogKSAtIHc7DQorCXJldHVybiggeiApOw0KKwl9DQorDQoraWYoIHggPCAxMy4wICkNCisJew0KKwl6ID0gMS4wOw0KKwlwID0gMC4wOw0KKwl1ID0geDsNCisJd2hpbGUoIHUgPj0gMy4wICkNCisJCXsNCisJCXAgLT0gMS4wOw0KKwkJdSA9IHggKyBwOw0KKwkJeiAqPSB1Ow0KKwkJfQ0KKwl3aGlsZSggdSA8IDIuMCApDQorCQl7DQorCQlpZiggdSA9PSAwLjAgKQ0KKwkJCWdvdG8gbGdzaW5nOw0KKwkJeiAvPSB1Ow0KKwkJcCArPSAxLjA7DQorCQl1ID0geCArIHA7DQorCQl9DQorCWlmKCB6IDwgMC4wICkNCisJCXsNCisJCSpzZ25nYW0gPSAtMTsNCisJCXogPSAtejsNCisJCX0NCisJZWxzZQ0KKwkJKnNnbmdhbSA9IDE7DQorCWlmKCB1ID09IDIuMCApDQorCQlyZXR1cm4oIGxvZyh6KSApOw0KKwlwIC09IDIuMDsNCisJeCA9IHggKyBwOw0KKwlwID0geCAqIHBvbGV2bCggeCwgQiwgNSApIC8gcDFldmwoIHgsIEMsIDYpOw0KKwlyZXR1cm4oIGxvZyh6KSArIHAgKTsNCisJfQ0KKw0KK2lmKCB4ID4gTUFYTEdNICkNCisJew0KKwlfU0VUX0VSUk5PKEVSQU5HRSk7DQorCW10aGVyciggImxnYW1tYSIsIE9WRVJGTE9XICk7DQorI2lmZGVmIElORklOSVRJRVMNCisJcmV0dXJuKCAqc2duZ2FtICogSU5GSU5JVFkgKTsNCisjZWxzZQ0KKwlyZXR1cm4oICpzZ25nYW0gKiBNQVhOVU0gKTsNCisjZW5kaWYNCisJfQ0KKw0KK3EgPSAoIHggLSAwLjUgKSAqIGxvZyh4KSAtIHggKyBMUzJQSTsNCitpZiggeCA+IDEuMGU4ICkNCisJcmV0dXJuKCBxICk7DQorDQorcCA9IDEuMC8oeCp4KTsNCitpZiggeCA+PSAxMDAwLjAgKQ0KKwlxICs9ICgoICAgNy45MzY1MDc5MzY1MDc5MzY1MDc5MzY1ZS00ICogcA0KKwkJLSAyLjc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzhlLTMpICpwDQorCQkrIDAuMDgzMzMzMzMzMzMzMzMzMzMzMzMzMykgLyB4Ow0KK2Vsc2UNCisJcSArPSBwb2xldmwoIHAsIEEsIDQgKSAvIHg7DQorcmV0dXJuKCBxICk7DQorfQ0KKw0KKy8qIFRoaXMgaXMgdGhlIEM5OSB2ZXJzaW9uICovDQorDQorZG91YmxlIGxnYW1tYShkb3VibGUgeCkNCit7DQorICBpbnQgbG9jYWxfc2duZ2FtPTA7DQorICByZXR1cm4gKF9fbGdhbW1hX3IoeCwgJmxvY2FsX3NnbmdhbSkpOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvbGdhbW1hZi5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xnYW1tYWYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MDY3YTYxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xnYW1tYWYuYwpAQCAtMCwwICsxLDE4MyBAQAorLyogbG9nIGdhbW1hKHgrMiksIC0uNSA8IHggPCAuNSAqLw0KK3N0YXRpYyBjb25zdCBmbG9hdCBCW10gPSB7DQorIDYuMDU1MTcyNzMyNjQ5MjM3RS0wMDQsDQorLTEuMzExNjIwODE1NTQ1NzQzRS0wMDMsDQorIDIuODYzNDM3NTU2NDY4NjYxRS0wMDMsDQorLTcuMzY2Nzc1MTA4NjU0OTYyRS0wMDMsDQorIDIuMDU4MzU1NDc0ODIxNTEyRS0wMDIsDQorLTYuNzM1MzIzMjU5MzcxMDM0RS0wMDIsDQorIDMuMjI0NjY5NTc3MzI1NjYxRS0wMDEsDQorIDQuMjI3ODQzNDIxODU5MDM4RS0wMDENCit9Ow0KKw0KKy8qIGxvZyBnYW1tYSh4KzEpLCAtLjI1IDwgeCA8IC4yNSAqLw0KK3N0YXRpYyBjb25zdCBmbG9hdCBDW10gPSB7DQorIDEuMzY5NDg4MTI3MzI1ODMyRS0wMDEsDQorLTEuNTkwMDg2MzI3NjU3MzQ3RS0wMDEsDQorIDEuNjkyNDE1OTIzNTA0NjM3RS0wMDEsDQorLTIuMDY3ODgyODE1NjIxOTY1RS0wMDEsDQorIDIuNzA1ODA2MjA4Mjc1OTE1RS0wMDEsDQorLTQuMDA2OTMxNjUwNTYzMzcyRS0wMDEsDQorIDguMjI0NjcwNzQ5MDgyOTc2RS0wMDEsDQorLTUuNzcyMTU2NTAxNzE5MTAxRS0wMDENCit9Ow0KKw0KKy8qIGxvZyggc3FydCggMipwaSApICkgKi8NCitzdGF0aWMgY29uc3QgZmxvYXQgTFMyUEkgID0gIDAuOTE4OTM4NTMzMjA0NjcyNzQxNzg7DQorI2RlZmluZSBNQVhMR00gMi4wMzUwOTNlMzYNCitzdGF0aWMgY29uc3QgZmxvYXQgUElJTlYgPSAgMC4zMTgzMDk4ODYxODM3OTA2NzE1Mzg7DQorDQorI2luY2x1ZGUgImNlcGhlc19tY29uZi5oIg0KKw0KKy8qIFJlZW50cmFudCB2ZXJzaW9uICovIA0KKy8qIExvZ2FyaXRobSBvZiBnYW1tYSBmdW5jdGlvbiAqLw0KKw0KK2Zsb2F0IF9fbGdhbW1hZl9yKCBmbG9hdCB4LCBpbnQqIHNnbmdhbWYgKQ0KK3sNCitmbG9hdCBwLCBxLCB3LCB6Ow0KK2Zsb2F0IG54LCB0eDsNCitpbnQgaSwgZGlyZWN0aW9uOw0KKw0KKypzZ25nYW1mID0gMTsNCisjaWZkZWYgTkFOUw0KK2lmKCBpc25hbih4KSApDQorCXJldHVybih4KTsNCisjZW5kaWYNCisNCisjaWZkZWYgSU5GSU5JVElFUw0KK2lmKCAhaXNmaW5pdGUoeCkgKQ0KKwlyZXR1cm4oeCk7DQorI2VuZGlmDQorDQorDQoraWYoIHggPCAwLjAgKQ0KKwl7DQorCXEgPSAteDsNCisJdyA9IF9fbGdhbW1hZl9yKHEsIHNnbmdhbWYpOyAvKiBub3RlIHRoaXMgbW9kaWZpZXMgc2duZ2FtISAqLw0KKwlwID0gZmxvb3JmKHEpOw0KKwlpZiggcCA9PSBxICkNCisJCXsNCitsZ3Npbmc6DQorCQlfU0VUX0VSUk5PKEVET00pOw0KKwkJbXRoZXJyKCAibGdhbWYiLCBTSU5HICk7DQorI2lmZGVmIElORklOSVRJRVMNCisJCXJldHVybiAoSU5GSU5JVFlGKTsNCisjZWxzZQ0KKwlyZXR1cm4oICpzZ25nYW1mICogTUFYTlVNRiApOw0KKyNlbmRpZg0KKwkJfQ0KKwlpID0gcDsNCisJaWYoIChpICYgMSkgPT0gMCApDQorCQkqc2duZ2FtZiA9IC0xOw0KKwllbHNlDQorCQkqc2duZ2FtZiA9IDE7DQorCXogPSBxIC0gcDsNCisJaWYoIHogPiAwLjUgKQ0KKwkJew0KKwkJcCArPSAxLjA7DQorCQl6ID0gcCAtIHE7DQorCQl9DQorCXogPSBxICogc2luZiggUElGICogeiApOw0KKwlpZiggeiA9PSAwLjAgKQ0KKwkJZ290byBsZ3Npbmc7DQorCXogPSAtbG9nZiggUElJTlYqeiApIC0gdzsNCisJcmV0dXJuKCB6ICk7DQorCX0NCisNCitpZiggeCA8IDYuNSApDQorCXsNCisJZGlyZWN0aW9uID0gMDsNCisJeiA9IDEuMDsNCisJdHggPSB4Ow0KKwlueCA9IDAuMDsNCisJaWYoIHggPj0gMS41ICkNCisJCXsNCisJCXdoaWxlKCB0eCA+IDIuNSApDQorCQkJew0KKwkJCW54IC09IDEuMDsNCisJCQl0eCA9IHggKyBueDsNCisJCQl6ICo9dHg7DQorCQkJfQ0KKwkJeCArPSBueCAtIDIuMDsNCitpdjFyNToNCisJCXAgPSB4ICogcG9sZXZsZiggeCwgQiwgNyApOw0KKwkJZ290byBjb250Ow0KKwkJfQ0KKwlpZiggeCA+PSAxLjI1ICkNCisJCXsNCisJCXogKj0geDsNCisJCXggLT0gMS4wOyAvKiB4ICsgMSAtIDIgKi8NCisJCWRpcmVjdGlvbiA9IDE7DQorCQlnb3RvIGl2MXI1Ow0KKwkJfQ0KKwlpZiggeCA+PSAwLjc1ICkNCisJCXsNCisJCXggLT0gMS4wOw0KKwkJcCA9IHggKiBwb2xldmxmKCB4LCBDLCA3ICk7DQorCQlxID0gMC4wOw0KKwkJZ290byBjb250ejsNCisJCX0NCisJd2hpbGUoIHR4IDwgMS41ICkNCisJCXsNCisJCWlmKCB0eCA9PSAwLjAgKQ0KKwkJCWdvdG8gbGdzaW5nOw0KKwkJeiAqPXR4Ow0KKwkJbnggKz0gMS4wOw0KKwkJdHggPSB4ICsgbng7DQorCQl9DQorCWRpcmVjdGlvbiA9IDE7DQorCXggKz0gbnggLSAyLjA7DQorCXAgPSB4ICogcG9sZXZsZiggeCwgQiwgNyApOw0KKw0KK2NvbnQ6DQorCWlmKCB6IDwgMC4wICkNCisJCXsNCisJCSpzZ25nYW1mID0gLTE7DQorCQl6ID0gLXo7DQorCQl9DQorCWVsc2UNCisJCXsNCisJCSpzZ25nYW1mID0gMTsNCisJCX0NCisJcSA9IGxvZ2Yoeik7DQorCWlmKCBkaXJlY3Rpb24gKQ0KKwkJcSA9IC1xOw0KK2NvbnR6Og0KKwlyZXR1cm4oIHAgKyBxICk7DQorCX0NCisNCitpZiggeCA+IE1BWExHTSApDQorCXsNCisJX1NFVF9FUlJOTyhFUkFOR0UpOw0KKwltdGhlcnIoICJsZ2FtZiIsIE9WRVJGTE9XICk7DQorI2lmZGVmIElORklOSVRJRVMNCisJcmV0dXJuKCAqc2duZ2FtZiAqIElORklOSVRZRiApOw0KKyNlbHNlDQorCXJldHVybiggKnNnbmdhbWYgKiBNQVhOVU1GICk7DQorI2VuZGlmDQorDQorCX0NCisNCisvKiBOb3RlLCB0aG91Z2ggYW4gYXN5bXB0b3RpYyBmb3JtdWxhIGNvdWxkIGJlIHVzZWQgZm9yIHggPj0gMywNCisgKiB0aGVyZSBpcyBjYW5jZWxsYXRpb24gZXJyb3IgaW4gdGhlIGZvbGxvd2luZyBpZiB4IDwgNi41LiAgKi8NCitxID0gTFMyUEkgLSB4Ow0KK3EgKz0gKCB4IC0gMC41ICkgKiBsb2dmKHgpOw0KKw0KK2lmKCB4IDw9IDEuMGU0ICkNCisJew0KKwl6ID0gMS4wL3g7DQorCXAgPSB6ICogejsNCisJcSArPSAoKCAgICA2Ljc4OTc3NDk0NTAyODIxNkUtMDA0ICogcA0KKwkJIC0gMi43Njk4ODc2NTIxMzk4NjhFLTAwMyApICogcA0KKwkJKyAgOC4zMzMzMTYyMjk4MDczNTVFLTAwMiApICogejsNCisJfQ0KK3JldHVybiggcSApOw0KK30NCisNCisvKiBUaGlzIGlzIHRoZSBDOTkgdmVyc2lvbiAqLw0KKw0KK2Zsb2F0IGxnYW1tYWYoZmxvYXQgeCkNCit7DQorICBpbnQgbG9jYWxfc2duZ2FtZj0wOw0KKyAgcmV0dXJuIChfX2xnYW1tYWZfcih4LCAmbG9jYWxfc2duZ2FtZikpOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvbGdhbW1hbC5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xnYW1tYWwuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xOGM5MTBiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xnYW1tYWwuYwpAQCAtMCwwICsxLDMzMyBAQAorI2luY2x1ZGUgImNlcGhlc19tY29uZi5oIg0KKw0KKyNpZiBVTksNCitzdGF0aWMgbG9uZyBkb3VibGUgU1s5XSA9IHsNCistMS4xOTM5NDUwNTEzODE1MTAwOTU2MTRFLTNMLA0KKyA3LjIyMDU5OTQ3ODAzNjkwOTY3MjMzMUUtM0wsDQorLTkuNjIyMDIzMzYwNDA2MjcxNjQ1NzQ0RS0zTCwNCistNC4yMTk3NzMzNjA3MDU5MTU0NzAwODlFLTJMLA0KKyAxLjY2NTM4NjExMzcyMDgwNTIwNjc1OEUtMUwsDQorLTQuMjAwMjYzNTAzNDAzMzQ0MDU0NDczRS0yTCwNCistNi41NTg3ODA3MTUyMDI1NDA2ODQ2NjhFLTFMLA0KKyA1Ljc3MjE1NjY0OTAxNTMyODYwODI1M0UtMUwsDQorIDEuMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTBMLA0KK307DQorI2VuZGlmDQorI2lmIElCTVBDDQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNbXSA9IHsNCisweGJhZWIsMHhkNmQzLDB4MjVlNSwweDljN2UsMHhiZmY1LCBYUEQNCisweGZlOWEsMHhjZWI0LDB4Yzc0ZSwweGVjOWEsMHgzZmY3LCBYUEQNCisweDkyMjUsMHhkZmVmLDB4YjBlOSwweDlkYTUsMHhiZmY4LCBYUEQNCisweDEwYjAsMHhlYzE3LDB4ODdkYywweGFjZDcsMHhiZmZhLCBYUEQNCisweDZiOGQsMHg3NTE1LDB4MTkwNSwweGFhODksMHgzZmZjLCBYUEQNCisweGYxODMsMHgxMjZiLDB4ZjQ3ZCwweGFjMGEsMHhiZmZhLCBYUEQNCisweDdiZjYsMHg1N2QxLDB4YTAxMywweGE3ZTcsMHhiZmZlLCBYUEQNCisweGM3YTksMHg3ZGIwLDB4NjdlMywweDkzYzQsMHgzZmZlLCBYUEQNCisweDAwMDAsMHgwMDAwLDB4MDAwMCwweDgwMDAsMHgzZmZmLCBYUEQNCit9Ow0KKyNlbmRpZg0KKyNpZiBNSUVFRQ0KK3N0YXRpYyBsb25nIFNbMjddID0gew0KKzB4YmZmNTAwMDAsMHg5YzdlMjVlNSwweGQ2ZDNiYWViLA0KKzB4M2ZmNzAwMDAsMHhlYzlhYzc0ZSwweGNlYjRmZTlhLA0KKzB4YmZmODAwMDAsMHg5ZGE1YjBlOSwweGRmZWY5MjI1LA0KKzB4YmZmYTAwMDAsMHhhY2Q3ODdkYywweGVjMTcxMGIwLA0KKzB4M2ZmYzAwMDAsMHhhYTg5MTkwNSwweDc1MTU2YjhkLA0KKzB4YmZmYTAwMDAsMHhhYzBhZjQ3ZCwweDEyNmJmMTgzLA0KKzB4YmZmZTAwMDAsMHhhN2U3YTAxMywweDU3ZDE3YmY2LA0KKzB4M2ZmZTAwMDAsMHg5M2M0NjdlMywweDdkYjBjN2E5LA0KKzB4M2ZmZjAwMDAsMHg4MDAwMDAwMCwweDAwMDAwMDAwLA0KK307DQorI2VuZGlmDQorDQorI2lmIFVOSw0KK3N0YXRpYyBsb25nIGRvdWJsZSBTTls5XSA9IHsNCisgMS4xMzMzNzQxNjcyNDM4OTQzODIwMTBFLTNMLA0KKyA3LjIyMDgzNzI2MTg5MzE3MDMyNTcwNEUtM0wsDQorIDkuNjIxOTExMTU1MDM1OTc2NzMzNzA2RS0zTCwNCistNC4yMTk3NzMzNDM3MzExOTE3MjE2NjRFLTJMLA0KKy0xLjY2NTM4NjExMzk0NDQxMzUxOTMzNUUtMUwsDQorLTQuMjAwMjYzNTAzNDAyMTEyOTEwNTA0RS0yTCwNCisgNi41NTg3ODA3MTUyMDI1MzY1NDcxMTZFLTFMLA0KKyA1Ljc3MjE1NjY0OTAxNTMyODYwODcyN0UtMUwsDQorLTEuMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTBMLA0KK307DQorI2VuZGlmDQorI2lmIElCTVBDDQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIFNOW10gPSB7DQorMHg1ZGQxLDB4MDJkZSwweGI5ZjcsMHg5NDhkLDB4M2ZmNSwgWFBEDQorMHg5ODliLDB4ZGQ2OCwweGM1ZjEsMHhlYzljLDB4M2ZmNywgWFBEDQorMHgyY2ExLDB4MThmMCwweDM4NmYsMHg5ZGE1LDB4M2ZmOCwgWFBEDQorMHg3ODNmLDB4NDFkZCwweDg3ZDEsMHhhY2Q3LDB4YmZmYSwgWFBEDQorMHg3YTViLDB4ZDc2ZCwweDE5MDUsMHhhYTg5LDB4YmZmYywgWFBEDQorMHg3ZjY0LDB4MTIzNCwweGY0N2QsMHhhYzBhLDB4YmZmYSwgWFBEDQorMHg1ZTI2LDB4NTdkMSwweGEwMTMsMHhhN2U3LDB4M2ZmZSwgWFBEDQorMHhjN2FhLDB4N2RiMCwweDY3ZTMsMHg5M2M0LDB4M2ZmZSwgWFBEDQorMHgwMDAwLDB4MDAwMCwweDAwMDAsMHg4MDAwLDB4YmZmZiwgWFBEDQorfTsNCisjZW5kaWYNCisjaWYgTUlFRUUNCitzdGF0aWMgbG9uZyBTTlsyN10gPSB7DQorMHgzZmY1MDAwMCwweDk0OGRiOWY3LDB4MDJkZTVkZDEsDQorMHgzZmY3MDAwMCwweGVjOWNjNWYxLDB4ZGQ2ODk4OWIsDQorMHgzZmY4MDAwMCwweDlkYTUzODZmLDB4MThmMDJjYTEsDQorMHhiZmZhMDAwMCwweGFjZDc4N2QxLDB4NDFkZDc4M2YsDQorMHhiZmZjMDAwMCwweGFhODkxOTA1LDB4ZDc2ZDdhNWIsDQorMHhiZmZhMDAwMCwweGFjMGFmNDdkLDB4MTIzNDdmNjQsDQorMHgzZmZlMDAwMCwweGE3ZTdhMDEzLDB4NTdkMTVlMjYsDQorMHgzZmZlMDAwMCwweDkzYzQ2N2UzLDB4N2RiMGM3YWEsDQorMHhiZmZmMDAwMCwweDgwMDAwMDAwLDB4MDAwMDAwMDAsDQorfTsNCisjZW5kaWYNCisNCisNCisvKiBBW106IFN0aXJsaW5nJ3MgZm9ybXVsYSBleHBhbnNpb24gb2YgbG9nIGdhbW1hDQorICogQltdLCBDW106IGxvZyBnYW1tYSBmdW5jdGlvbiBiZXR3ZWVuIDIgYW5kIDMNCisgKi8NCisNCisNCisvKiBsb2cgZ2FtbWEoeCkgPSAoIHggLSAwLjUgKSAqIGxvZyh4KSAtIHggKyBMUzJQSSArIDEveCBBKDEveF4yKQ0KKyAqIHggPj0gOA0KKyAqIFBlYWsgcmVsYXRpdmUgZXJyb3IgMS41MWUtMjENCisgKiBSZWxhdGl2ZSBzcHJlYWQgb2YgZXJyb3IgcGVha3MgNS42N2UtMjENCisgKi8NCisjaWYgVU5LDQorc3RhdGljIGxvbmcgZG91YmxlIEFbN10gPSB7DQorIDQuODg1MDI2MTQyNDMyMjcwNzgxMTY1RS0zTCwNCistMS44ODA4MDE5MzgxMTkzNzY5MDcxNzlFLTNMLA0KKyA4LjQxMjcyMzI5NzMyMjQ5ODA4MDYzMkUtNEwsDQorLTUuOTUyMzQ1ODUxNzY1Njg4NTE0NjEzRS00TCwNCisgNy45MzY1MDc3OTU4NTUwNzA3NTU2NzFFLTRMLA0KKy0yLjc3Nzc3Nzc3Nzc1MDM0OTYwMzQ0MEUtM0wsDQorIDguMzMzMzMzMzMzMzMzMzMxNDQ3NTA1RS0yTCwNCit9Ow0KKyNlbmRpZg0KKyNpZiBJQk1QQw0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBBW10gPSB7DQorMHhkOTg0LDB4Y2MwOCwweDkxYzIsMHhhMDEyLDB4M2ZmNywgWFBEDQorMHgzZDkxLDB4MDMwNCwweDNkYTEsMHhmNjg1LDB4YmZmNSwgWFBEDQorMHgzYmRjLDB4YWFkMSwweGQ0OTIsMHhkYzg4LDB4M2ZmNCwgWFBEDQorMHg4YjIwLDB4OWZjZSwweDg0NGUsMHg5YzA5LDB4YmZmNCwgWFBEDQorMHhmOGYyLDB4MzBlNSwweDAwOTIsMHhkMDBkLDB4M2ZmNCwgWFBEDQorMHg0ZDg4LDB4MDNhOCwweDYwYjYsMHhiNjBiLDB4YmZmNiwgWFBEDQorMHg5ZmNjLDB4YWFhYSwweGFhYWEsMHhhYWFhLDB4M2ZmYiwgWFBEDQorfTsNCisjZW5kaWYNCisjaWYgTUlFRUUNCitzdGF0aWMgbG9uZyBBWzIxXSA9IHsNCisweDNmZjcwMDAwLDB4YTAxMjkxYzIsMHhjYzA4ZDk4NCwNCisweGJmZjUwMDAwLDB4ZjY4NTNkYTEsMHgwMzA0M2Q5MSwNCisweDNmZjQwMDAwLDB4ZGM4OGQ0OTIsMHhhYWQxM2JkYywNCisweGJmZjQwMDAwLDB4OWMwOTg0NGUsMHg5ZmNlOGIyMCwNCisweDNmZjQwMDAwLDB4ZDAwZDAwOTIsMHgzMGU1ZjhmMiwNCisweGJmZjYwMDAwLDB4YjYwYjYwYjYsMHgwM2E4NGQ4OCwNCisweDNmZmIwMDAwLDB4YWFhYWFhYWEsMHhhYWFhOWZjYywNCit9Ow0KKyNlbmRpZg0KKw0KKy8qIGxvZyBnYW1tYSh4KzIpID0geCBCKHgpL0MoeCkNCisgKiAwIDw9IHggPD0gMQ0KKyAqIFBlYWsgcmVsYXRpdmUgZXJyb3IgNy4xNmUtMjINCisgKiBSZWxhdGl2ZSBzcHJlYWQgb2YgZXJyb3IgcGVha3MgNC43OGUtMjANCisgKi8NCisjaWYgVU5LDQorc3RhdGljIGxvbmcgZG91YmxlIEJbN10gPSB7DQorLTIuMTYzNjkwODI3NjQzODEyODU3NjQwRTNMLA0KKy04LjcyMzg3MTUyMjg0MzUxMTQ1OTc5MEU0TCwNCistMS4xMDQzMjY4MTQ2OTE0NjQyNjExOTdFNkwsDQorLTYuMTExMjI1MDEyMDA1MjE0Mjk5OTk2RTZMLA0KKy0xLjYyNTU2ODA2MjU0MzcwMDU5MTAxNEU3TCwNCistMi4wMDM5Mzc0MTgxMDM4MTUxNzU0NzVFN0wsDQorLTguODc1NjY2NzgzNjUwNzAzODAyMTU5RTZMLA0KK307DQorc3RhdGljIGxvbmcgZG91YmxlIENbN10gPSB7DQorLyogMS4wMDAwMDAwMDAwMDAwMDAwMDAwMDBFMEwsKi8NCistNS4xMzk0ODE0ODQ0MzUzNzAxNDM2MTdFMkwsDQorLTMuNDAzNTcwODQwNTM0MzA0NjcwNTM3RTRMLA0KKy02LjIyNzQ0MTE2NDA2NjIxOTUwMTY5N0U1TCwNCistNC44MTQ5NDAzNzk0MTE4ODIxODY2MzBFNkwsDQorLTEuNzg1NDMzMjg3MDQ1MDc4MTU2OTU5RTdMLA0KKy0zLjEzODY0NjQwNzY1NjE4MjY2MjA4OEU3TCwNCistMi4wOTkzMzY3MTc3NTc4OTU4NzYxNDJFN0wsDQorfTsNCisjZW5kaWYNCisjaWYgSUJNUEMNCitzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgQltdID0gew0KKzB4OTU1NywweDQ5OTUsMHgwZGExLDB4ODczYiwweGMwMGEsIFhQRA0KKzB4ZmU0NCwweDlhZjgsMHg1YjhjLDB4YWE2MywweGMwMGYsIFhQRA0KKzB4NWFhOCwweDdjZjUsMHgzNjg0LDB4ODZjZSwweGMwMTMsIFhQRA0KKzB4MjU5YSwweDI1OGMsMHhmMjA2LDB4YmE3ZiwweGMwMTUsIFhQRA0KKzB4YmUxOCwweDFjYTMsMHhjMGEwLDB4ZjgwYSwweGMwMTYsIFhQRA0KKzB4MTY4ZiwweDJjNDIsMHg2NzE3LDB4OThlMywweGMwMTcsIFhQRA0KKzB4MjA1MSwweDlkNTUsMHg5MmM4LDB4ODc2ZSwweGMwMTYsIFhQRA0KK307DQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IENbXSA9IHsNCisvKjB4MDAwMCwweDAwMDAsMHgwMDAwLDB4ODAwMCwweDNmZmYsIFhQRCovDQorMHhhYTc3LDB4Y2YyZiwweGFlNzYsMHg4MDdjLDB4YzAwOCwgWFBEDQorMHhiMjgwLDB4MGQ3NCwweGI1NWEsMHg4NGYzLDB4YzAwZSwgWFBEDQorMHhhNTA1LDB4Y2QzMCwweDgxZGMsMHg5ODA5LDB4YzAxMiwgWFBEDQorMHgzMzY5LDB4NDI0NiwweGI4YzIsMHg5MmYwLDB4YzAxNSwgWFBEDQorMHg2M2NmLDB4NmFlZSwweGJlNmYsMHg4ODM3LDB4YzAxNywgWFBEDQorMHgyNmJiLDB4Y2NjNywweGIwMDksMHhlZjc1LDB4YzAxNywgWFBEDQorMHg0NjJiLDB4YmFlOCwweGFiOTYsMHhhMDJhLDB4YzAxNywgWFBEDQorfTsNCisjZW5kaWYNCisjaWYgTUlFRUUNCitzdGF0aWMgbG9uZyBCWzIxXSA9IHsNCisweGMwMGEwMDAwLDB4ODczYjBkYTEsMHg0OTk1OTU1NywNCisweGMwMGYwMDAwLDB4YWE2MzViOGMsMHg5YWY4ZmU0NCwNCisweGMwMTMwMDAwLDB4ODZjZTM2ODQsMHg3Y2Y1NWFhOCwNCisweGMwMTUwMDAwLDB4YmE3ZmYyMDYsMHgyNThjMjU5YSwNCisweGMwMTYwMDAwLDB4ZjgwYWMwYTAsMHgxY2EzYmUxOCwNCisweGMwMTcwMDAwLDB4OThlMzY3MTcsMHgyYzQyMTY4ZiwNCisweGMwMTYwMDAwLDB4ODc2ZTkyYzgsMHg5ZDU1MjA1MSwNCit9Ow0KK3N0YXRpYyBsb25nIENbMjFdID0gew0KKy8qMHgzZmZmMDAwMCwweDgwMDAwMDAwLDB4MDAwMDAwMDAsKi8NCisweGMwMDgwMDAwLDB4ODA3Y2FlNzYsMHhjZjJmYWE3NywNCisweGMwMGUwMDAwLDB4ODRmM2I1NWEsMHgwZDc0YjI4MCwNCisweGMwMTIwMDAwLDB4OTgwOTgxZGMsMHhjZDMwYTUwNSwNCisweGMwMTUwMDAwLDB4OTJmMGI4YzIsMHg0MjQ2MzM2OSwNCisweGMwMTcwMDAwLDB4ODgzN2JlNmYsMHg2YWVlNjNjZiwNCisweGMwMTcwMDAwLDB4ZWY3NWIwMDksMHhjY2M3MjZiYiwNCisweGMwMTcwMDAwLDB4YTAyYWFiOTYsMHhiYWU4NDYyYiwNCit9Ow0KKyNlbmRpZg0KKw0KKy8qIGxvZyggc3FydCggMipwaSApICkgKi8NCitzdGF0aWMgY29uc3QgbG9uZyBkb3VibGUgTFMyUEkgID0gIDAuOTE4OTM4NTMzMjA0NjcyNzQxNzhMOw0KKyNkZWZpbmUgTUFYTEdNIDEuMDQ4NDgxNDY4MzkwMTk1MjExMTZlKzQ5MjhMDQorDQorDQorLyogTG9nYXJpdGhtIG9mIGdhbW1hIGZ1bmN0aW9uICovDQorLyogUmVlbnRyYW50IHZlcnNpb24gKi8gDQorDQorbG9uZyBkb3VibGUgX19sZ2FtbWFsX3IobG9uZyBkb3VibGUgeCwgaW50KiBzZ25nYW1sKQ0KK3sNCitsb25nIGRvdWJsZSBwLCBxLCB3LCB6LCBmLCBueDsNCitpbnQgaTsNCisNCisqc2duZ2FtbCA9IDE7DQorI2lmZGVmIE5BTlMNCitpZiggaXNuYW5sKHgpICkNCisJcmV0dXJuKE5BTkwpOw0KKyNlbmRpZg0KKyNpZmRlZiBJTkZJTklUSUVTDQoraWYoICFpc2Zpbml0ZWwoeCkgKQ0KKwlyZXR1cm4oSU5GSU5JVFlMKTsNCisjZW5kaWYNCitpZiggeCA8IC0zNC4wTCApDQorCXsNCisJcSA9IC14Ow0KKwl3ID0gX19sZ2FtbWFsX3IocSwgc2duZ2FtbCk7IC8qIG5vdGUgdGhpcyBtb2RpZmllcyBzZ25nYW0hICovDQorCXAgPSBmbG9vcmwocSk7DQorCWlmKCBwID09IHEgKQ0KKwkJew0KK2xnc2luZzoNCisJCV9TRVRfRVJSTk8oRURPTSk7DQorCQltdGhlcnIoICJsZ2FtbWFsIiwgU0lORyApOw0KKyNpZmRlZiBJTkZJTklUSUVTDQorCQlyZXR1cm4gKElORklOSVRZTCk7DQorI2Vsc2UNCisJCXJldHVybiAoTUFYTlVNTCk7DQorI2VuZGlmDQorCQl9DQorCWkgPSBwOw0KKwlpZiggKGkgJiAxKSA9PSAwICkNCisJCSpzZ25nYW1sID0gLTE7DQorCWVsc2UNCisJCSpzZ25nYW1sID0gMTsNCisJeiA9IHEgLSBwOw0KKwlpZiggeiA+IDAuNUwgKQ0KKwkJew0KKwkJcCArPSAxLjBMOw0KKwkJeiA9IHAgLSBxOw0KKwkJfQ0KKwl6ID0gcSAqIHNpbmwoIFBJTCAqIHogKTsNCisJaWYoIHogPT0gMC4wTCApDQorCQlnb3RvIGxnc2luZzsNCisvKgl6ID0gTE9HUEkgLSBsb2dsKCB6ICkgLSB3OyAqLw0KKwl6ID0gbG9nbCggUElML3ogKSAtIHc7DQorCXJldHVybiggeiApOw0KKwl9DQorDQoraWYoIHggPCAxMy4wTCApDQorCXsNCisJeiA9IDEuMEw7DQorCW54ID0gZmxvb3JsKCB4ICsgIDAuNUwgKTsNCisJZiA9IHggLSBueDsNCisJd2hpbGUoIHggPj0gMy4wTCApDQorCQl7DQorCQlueCAtPSAxLjBMOw0KKwkJeCA9IG54ICsgZjsNCisJCXogKj0geDsNCisJCX0NCisJd2hpbGUoIHggPCAyLjBMICkNCisJCXsNCisJCWlmKCBmYWJzbCh4KSA8PSAwLjAzMTI1ICkNCisJCQlnb3RvIGxzbWFsbDsNCisJCXogLz0gbnggKyAgZjsNCisJCW54ICs9IDEuMEw7DQorCQl4ID0gbnggKyBmOw0KKwkJfQ0KKwlpZiggeiA8IDAuMEwgKQ0KKwkJew0KKwkJKnNnbmdhbWwgPSAtMTsNCisJCXogPSAtejsNCisJCX0NCisJZWxzZQ0KKwkJKnNnbmdhbWwgPSAxOw0KKwlpZiggeCA9PSAyLjBMICkNCisJCXJldHVybiggbG9nbCh6KSApOw0KKwl4ID0gKG54IC0gMi4wTCkgKyBmOw0KKwlwID0geCAqIHBvbGV2bGwoIHgsIEIsIDYgKSAvIHAxZXZsbCggeCwgQywgNyk7DQorCXJldHVybiggbG9nbCh6KSArIHAgKTsNCisJfQ0KKw0KK2lmKCB4ID4gTUFYTEdNICkNCisJew0KKwlfU0VUX0VSUk5PKEVSQU5HRSk7DQorCW10aGVyciggImxnYW1tYWwiLCBPVkVSRkxPVyApOw0KKyNpZmRlZiBJTkZJTklUSUVTDQorCXJldHVybiggKnNnbmdhbWwgKiBJTkZJTklUWUwgKTsNCisjZWxzZQ0KKwlyZXR1cm4oICpzZ25nYW1sICogTUFYTlVNTCApOw0KKyNlbmRpZg0KKwl9DQorDQorcSA9ICggeCAtIDAuNUwgKSAqIGxvZ2woeCkgLSB4ICsgTFMyUEk7DQoraWYoIHggPiAxLjBlMTBMICkNCisJcmV0dXJuKHEpOw0KK3AgPSAxLjBMLyh4KngpOw0KK3EgKz0gcG9sZXZsbCggcCwgQSwgNiApIC8geDsNCityZXR1cm4oIHEgKTsNCisNCisNCitsc21hbGw6DQoraWYoIHggPT0gMC4wTCApDQorCWdvdG8gbGdzaW5nOw0KK2lmKCB4IDwgMC4wTCApDQorCXsNCisJeCA9IC14Ow0KKwlxID0geiAvICh4ICogcG9sZXZsbCggeCwgU04sIDggKSk7DQorCX0NCitlbHNlDQorCXEgPSB6IC8gKHggKiBwb2xldmxsKCB4LCBTLCA4ICkpOw0KK2lmKCBxIDwgMC4wTCApDQorCXsNCisJKnNnbmdhbWwgPSAtMTsNCisJcSA9IC1xOw0KKwl9DQorZWxzZQ0KKwkqc2duZ2FtbCA9IDE7DQorcSA9IGxvZ2woIHEgKTsNCityZXR1cm4ocSk7DQorfQ0KKw0KKy8qIFRoaXMgaXMgdGhlIEM5OSB2ZXJzaW9uICovDQorDQorbG9uZyBkb3VibGUgbGdhbW1hbChsb25nIGRvdWJsZSB4KQ0KK3sNCisgIGludCBsb2NhbF9zZ25nYW1sPTA7DQorICByZXR1cm4gKF9fbGdhbW1hbF9yKHgsICZsb2NhbF9zZ25nYW1sKSk7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9sbHJpbnQuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9sbHJpbnQuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NDg4NjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xscmludC5jCkBAIC0wLDAgKzEsMTAgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorDQorbG9uZyBsb25nIGxscmludCAoZG91YmxlIHgpIA0KK3sNCisgIGxvbmcgbG9uZyByZXR2YWw7DQorICBfX2FzbV9fIF9fdm9sYXRpbGVfXwkJCQkJCQkgICAgICBcDQorICAgICgiZmlzdHBsbCAlMCIgIDogIj1tIiAocmV0dmFsKSA6ICJ0IiAoeCkgOiAic3QiKTsJCQkJICAgICAgXA0KKyAgcmV0dXJuIHJldHZhbDsNCit9DQorDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2xscmludGYuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9sbHJpbnRmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTRhOTc1OQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9sbHJpbnRmLmMKQEAgLTAsMCArMSw5IEBACisjaW5jbHVkZSA8bWF0aC5oPg0KKw0KK2xvbmcgbG9uZyBsbHJpbnRmIChmbG9hdCB4KSANCit7DQorICBsb25nIGxvbmcgcmV0dmFsOw0KKyAgX19hc21fXyBfX3ZvbGF0aWxlX18JCQkJCQkJICAgICAgXA0KKyAgICAoImZpc3RwbGwgJTAiICA6ICI9bSIgKHJldHZhbCkgOiAidCIgKHgpIDogInN0Iik7CQkJCSAgICAgIFwNCisgIHJldHVybiByZXR2YWw7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9sbHJpbnRsLmMgYi9taW5ndy13NjQtY3J0L21hdGgvbGxyaW50bC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg1NDAxODUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvbGxyaW50bC5jCkBAIC0wLDAgKzEsMTAgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorDQorbG9uZyBsb25nIGxscmludGwgKGxvbmcgZG91YmxlIHgpIA0KK3sNCisgIGxvbmcgbG9uZyByZXR2YWw7DQorICBfX2FzbV9fIF9fdm9sYXRpbGVfXwkJCQkJCQkgICAgICBcDQorICAgICgiZmlzdHBsbCAlMCIgIDogIj1tIiAocmV0dmFsKSA6ICJ0IiAoeCkgOiAic3QiKTsJCQkJICAgICAgXA0KKyAgcmV0dXJuIHJldHZhbDsNCit9DQorDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2xscm91bmQuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9sbHJvdW5kLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmZlYzQyNwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9sbHJvdW5kLmMKQEAgLTAsMCArMSwxOSBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8bGltaXRzLmg+DQorI2luY2x1ZGUgPGVycm5vLmg+DQorDQorbG9uZyBsb25nDQorbGxyb3VuZCAoZG91YmxlIHgpDQorew0KKyAgLyogQWRkICsvLSAwLjUsIHRoZW4gcm91bmQgdG93YXJkcyB6ZXJvLiAgKi8NCisgIGRvdWJsZSB0bXAgPSB0cnVuYyAoeCArICh4ID49IDAuMCA/ICAwLjUgOiAtMC41KSk7DQorICBpZiAoIWlzZmluaXRlICh0bXApIA0KKyAgICAgIHx8IHRtcCA+IChkb3VibGUpTE9OR19MT05HX01BWA0KKyAgICAgIHx8IHRtcCA8IChkb3VibGUpTE9OR19MT05HX01JTikNCisgICAgeyANCisgICAgICBlcnJubyA9IEVSQU5HRTsNCisgICAgICAvKiBVbmRlZmluZWQgYmVoYXZpb3VyLCBzbyB3ZSBjb3VsZCByZXR1cm4gYW55dGhpbmcuICAqLw0KKyAgICAgIC8qIHJldHVybiB0bXAgPiAwLjAgPyBMT05HX0xPTkdfTUFYIDogTE9OR19MT05HX01JTjsgICovDQorICAgIH0NCisgIHJldHVybiAobG9uZyBsb25nKXRtcDsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2xscm91bmRmLmMgYi9taW5ndy13NjQtY3J0L21hdGgvbGxyb3VuZGYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YTRiYmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xscm91bmRmLmMKQEAgLTAsMCArMSwxOSBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8bGltaXRzLmg+DQorI2luY2x1ZGUgPGVycm5vLmg+DQorDQorbG9uZyBsb25nDQorbGxyb3VuZGYgKGZsb2F0IHgpDQorew0KKyAgLyogQWRkICsvLSAwLjUsIHRoZW4gcm91bmQgdG93YXJkcyB6ZXJvLiAgKi8NCisgIGZsb2F0IHRtcCA9IHRydW5jZiAoeCArICh4ID49IDAuMEYgPyAgMC41RiA6IC0wLjVGKSk7DQorICBpZiAoIWlzZmluaXRlICh0bXApIA0KKyAgICAgIHx8IHRtcCA+IChmbG9hdClMT05HX0xPTkdfTUFYDQorICAgICAgfHwgdG1wIDwgKGZsb2F0KUxPTkdfTE9OR19NSU4pDQorICAgIHsgDQorICAgICAgZXJybm8gPSBFUkFOR0U7DQorICAgICAgLyogVW5kZWZpbmVkIGJlaGF2aW91ciwgc28gd2UgY291bGQgcmV0dXJuIGFueXRoaW5nLiAgKi8NCisgICAgICAvKiByZXR1cm4gdG1wID4gMC4wRiA/IExPTkdfTE9OR19NQVggOiBMT05HX0xPTkdfTUlOOyAqLw0KKyAgICB9DQorICByZXR1cm4gKGxvbmcgbG9uZyl0bXA7DQorfSAgDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2xscm91bmRsLmMgYi9taW5ndy13NjQtY3J0L21hdGgvbGxyb3VuZGwuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NTc5YTJhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xscm91bmRsLmMKQEAgLTAsMCArMSwxOSBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8bGltaXRzLmg+DQorI2luY2x1ZGUgPGVycm5vLmg+DQorDQorbG9uZyBsb25nDQorbGxyb3VuZGwgKGxvbmcgZG91YmxlIHgpDQorew0KKyAgLyogQWRkICsvLSAwLjUsIHRoZW4gcm91bmQgdG93YXJkcyB6ZXJvLiAgKi8NCisgIGxvbmcgZG91YmxlIHRtcCA9IHRydW5jbCAoeCArICh4ID49IDAuMEwgPyAgMC41TCA6IC0wLjVMKSk7DQorICBpZiAoIWlzZmluaXRlICh0bXApIA0KKyAgICAgIHx8IHRtcCA+IChsb25nIGRvdWJsZSlMT05HX0xPTkdfTUFYDQorICAgICAgfHwgdG1wIDwgKGxvbmcgZG91YmxlKUxPTkdfTE9OR19NSU4pDQorICAgIHsgDQorICAgICAgZXJybm8gPSBFUkFOR0U7DQorICAgICAgLyogVW5kZWZpbmVkIGJlaGF2aW91ciwgc28gd2UgY291bGQgcmV0dXJuIGFueXRoaW5nLiAgKi8NCisgICAgICAvKiByZXR1cm4gdG1wID4gMC4wTCA/IExPTkdfTE9OR19NQVggOiBMT05HX0xPTkdfTUlOOyAqLw0KKyAgICB9DQorICByZXR1cm4gKGxvbmcgbG9uZyl0bXA7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9sb2cxMGYuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9sb2cxMGYuUwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41YjNiOTgyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xvZzEwZi5TCkBAIC0wLDAgKzEsNDggQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqIEFkYXB0ZWQgZm9yIGZsb2F0IHR5cGUgYnkgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAY3lnbnVzLmNvbT4uDQorICoNCisgKiBDaGFuZ2VkIHRvIHVzZSBmeWwyeHAxIGZvciB2YWx1ZXMgbmVhciAxLCA8ZHJlcHBlckBjeWdudXMuY29tPi4NCisgKi8NCisNCisJLmZpbGUJImxvZzEwZi5TIg0KKwkudGV4dA0KKwkuYWxpZ24gNA0KK29uZToJLmRvdWJsZSAxLjANCisJLyogSXQgaXMgbm90IGltcG9ydGFudCB0aGF0IHRoaXMgY29uc3RhbnQgaXMgcHJlY2lzZS4gIEl0IGlzIG9ubHkNCisJICAgYSB2YWx1ZSB3aGljaCBpcyBrbm93biB0byBiZSBvbiB0aGUgc2FmZSBzaWRlIGZvciB1c2luZyB0aGUNCisJICAgZnlsMnhwMSBpbnN0cnVjdGlvbi4gICovDQorbGltaXQ6CS5kb3VibGUgMC4yOQ0KKw0KKwkudGV4dA0KKwkuYWxpZ24gNA0KKy5nbG9ibCBfbG9nMTBmDQorCS5kZWYJX2xvZzEwZjsJLnNjbAkyOwkudHlwZQkzMjsJLmVuZGVmDQorX2xvZzEwZjoNCisJZmxkbGcyCQkJLy8gbG9nMTAoMikNCisJZmxkcwk0KCVlc3ApCQkvLyB4IDogbG9nMTAoMikNCisJZnhhbQ0KKwlmbnN0c3cNCisJZmxkCSVzdAkJLy8geCA6IHggOiBsb2cxMCgyKQ0KKwlzYWhmDQorCWpjCTNmCQkvLyBpbiBjYXNlIHggaXMgTmFOIG9yILFJbmYNCis0Oglmc3VibAlvbmUJCS8vIHgtMSA6IHggOiBsb2cxMCgyKQ0KKwlmbGQJJXN0CQkvLyB4LTEgOiB4LTEgOiB4IDogbG9nMTAoMikNCisJZmFicwkJCS8vIHx4LTF8IDogeC0xIDogeCA6IGxvZzEwKDIpDQorCWZjb21wbAlsaW1pdAkJLy8geC0xIDogeCA6IGxvZzEwKDIpDQorCWZuc3RzdwkJCS8vIHgtMSA6IHggOiBsb2cxMCgyKQ0KKwlhbmRiCSQweDQ1LCAlYWgNCisJanoJMmYNCisJZnN0cAklc3QoMSkJCS8vIHgtMSA6IGxvZzEwKDIpDQorCWZ5bDJ4cDEJCQkvLyBsb2cxMCh4KQ0KKwlyZXQNCisNCisyOglmc3RwCSVzdCgwKQkJLy8geCA6IGxvZzEwKDIpDQorCWZ5bDJ4CQkJLy8gbG9nMTAoeCkNCisJcmV0DQorDQorMzoJanAJNGIJCS8vIGluIGNhc2UgeCBpcyCxSW5mDQorCWZzdHAJJXN0KDEpDQorCWZzdHAJJXN0KDEpDQorCXJldA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9sb2cxMGwuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9sb2cxMGwuUwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZGFlNjMyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xvZzEwbC5TCkBAIC0wLDAgKzEsNTIgQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqDQorICogQWRhcHRlZCBmb3IgYGxvbmcgZG91YmxlJyBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBjeWdudXMuY29tPi4NCisgKg0KKyAqIENoYW5nZWQgdG8gdXNlIGZ5bDJ4cDEgZm9yIHZhbHVlcyBuZWFyIDEsIDxkcmVwcGVyQGN5Z251cy5jb20+Lg0KKyAqDQorICogUmVtb3ZlZCBoZWFkZXIgZmlsZSBkZXBlbmRlbmN5IGZvciB1c2UgaW4gbGlibWluZ3dleC5hIGJ5DQorICogICBEYW5ueSBTbWl0aCA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+DQorICovDQorDQorCS5maWxlCSJsb2cxMGwuUyINCisJLnRleHQNCisJLmFsaWduIDQNCitvbmU6CS5kb3VibGUgMS4wDQorCS8qIEl0IGlzIG5vdCBpbXBvcnRhbnQgdGhhdCB0aGlzIGNvbnN0YW50IGlzIHByZWNpc2UuICBJdCBpcyBvbmx5DQorCSAgIGEgdmFsdWUgd2hpY2ggaXMga25vd24gdG8gYmUgb24gdGhlIHNhZmUgc2lkZSBmb3IgdXNpbmcgdGhlDQorCSAgIGZ5bDJ4cDEgaW5zdHJ1Y3Rpb24uICAqLw0KK2xpbWl0OgkuZG91YmxlIDAuMjkNCisNCisJLnRleHQNCisJLmFsaWduIDQNCisuZ2xvYmwgX2xvZzEwbA0KKwkuZGVmCV9sb2cxMGw7CS5zY2wJMjsJLnR5cGUJMzI7CS5lbmRlZg0KK19sb2cxMGw6DQorCWZsZGxnMgkJCS8vIGxvZzEwKDIpDQorCWZsZHQJNCglZXNwKQkJLy8geCA6IGxvZzEwKDIpDQorCWZ4YW0NCisJZm5zdHN3DQorCWZsZAklc3QJCS8vIHggOiB4IDogbG9nMTAoMikNCisJc2FoZg0KKwlqYwkzZgkJLy8gaW4gY2FzZSB4IGlzIE5hTiBvciCxSW5mDQorNDoJZnN1YmwJb25lCQkvLyB4LTEgOiB4IDogbG9nMTAoMikNCisJZmxkCSVzdAkJLy8geC0xIDogeC0xIDogeCA6IGxvZzEwKDIpDQorCWZhYnMJCQkvLyB8eC0xfCA6IHgtMSA6IHggOiBsb2cxMCgyKQ0KKwlmY29tcGwJbGltaXQJCS8vIHgtMSA6IHggOiBsb2cxMCgyKQ0KKwlmbnN0c3cJCQkvLyB4LTEgOiB4IDogbG9nMTAoMikNCisJYW5kYgkkMHg0NSwgJWFoDQorCWp6CTJmDQorCWZzdHAJJXN0KDEpCQkvLyB4LTEgOiBsb2cxMCgyKQ0KKwlmeWwyeHAxCQkJLy8gbG9nMTAoeCkNCisJcmV0DQorDQorMjoJZnN0cAklc3QoMCkJCS8vIHggOiBsb2cxMCgyKQ0KKwlmeWwyeAkJCS8vIGxvZzEwKHgpDQorCXJldA0KKw0KKzM6CWpwCTRiCQkvLyBpbiBjYXNlIHggaXMgsUluZg0KKwlmc3RwCSVzdCgxKQ0KKwlmc3RwCSVzdCgxKQ0KKwlyZXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvbG9nMXAuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9sb2cxcC5TCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE4YzMwYjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvbG9nMXAuUwpAQCAtMCwwICsxLDQ3IEBACisvKg0KKyAqIFdyaXR0ZW4gYnkgSi5ULiBDb25rbGluIDxqdGNAbmV0YnNkLm9yZz4uDQorICogUHVibGljIGRvbWFpbi4NCisgKiBSZW1vdmVkIGhlYWRlciBmaWxlIGRlcGVuZGVuY3kgZm9yIHVzZSBpbiBsaWJtaW5nd2V4LmEgYnkNCisgKiAgIERhbm55IFNtaXRoIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4NCisgKi8NCisNCisJLmZpbGUJImxvZzFwLlMiDQorCS50ZXh0DQorCS5hbGlnbiA0DQorCS8qIFRoZSBmeWwyeHAxIGNhbiBvbmx5IGJlIHVzZWQgZm9yIHZhbHVlcyBpbg0KKwkgICAtMSArIHNxcnQoMikgLyAyIDw9IHggPD0gMSAtIHNxcnQoMikgLyAyDQorCSAgIDAuMjkgaXMgYSBzYWZlIHZhbHVlLg0KKwkgKi8NCitsaW1pdDoJLmRvdWJsZSAwLjI5DQorb25lOgkuZG91YmxlIDEuMA0KKy8qDQorICogVXNlIHRoZSBmeWwyeHAxIGZ1bmN0aW9uIHdoZW4gdGhlIGFyZ3VtZW50IGlzIGluIHRoZSByYW5nZSAtMC4yOSB0byAwLjI5LA0KKyAqIG90aGVyd2lzZSBmeWwyeCB3aXRoIHRoZSBuZWVkZWQgZXh0cmEgY29tcHV0YXRpb24uDQorICovDQorLmdsb2JsIF9sb2cxcDsgDQorCS5kZWYJX2xvZzFwOwkuc2NsCTI7CS50eXBlCTMyOwkuZW5kZWYNCitfbG9nMXA6DQorCWZsZGxuMg0KKwlmbGRsCTQoJWVzcCkNCisJZnhhbQ0KKwlmbnN0c3cNCisJZmxkCSVzdA0KKwlzYWhmDQorCWpjCTNmCS8vIGluIGNhc2UgeCBpcyBOYU4gb3IgsUluZg0KKw0KKzQ6CWZhYnMNCisJZmNvbXBsCWxpbWl0DQorCWZuc3Rzdw0KKwlzYWhmDQorCWpjCTJmDQorCWZhZGRsCW9uZQ0KKwlmeWwyeA0KKwlyZXQNCisNCisyOglmeWwyeHAxDQorCXJldA0KKw0KKzM6CWpwCTRiCS8vIGluIGNhc2UgeCBpcyCxSW5mDQorCWZzdHAJJXN0KDEpDQorCWZzdHAJJXN0KDEpDQorCXJldA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9sb2cxcGYuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9sb2cxcGYuUwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NWExNDFiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xvZzFwZi5TCkBAIC0wLDAgKzEsNDcgQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqIFJlbW92ZWQgaGVhZGVyIGZpbGUgZGVwZW5kZW5jeSBmb3IgdXNlIGluIGxpYm1pbmd3ZXguYSBieQ0KKyAqICAgRGFubnkgU21pdGggPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0Pg0KKyAqLw0KKw0KKwkuZmlsZQkibG9nMXBmLlMiDQorCS50ZXh0DQorCS5hbGlnbiA0DQorCS8qIFRoZSBmeWwyeHAxIGNhbiBvbmx5IGJlIHVzZWQgZm9yIHZhbHVlcyBpbg0KKwkgICAtMSArIHNxcnQoMikgLyAyIDw9IHggPD0gMSAtIHNxcnQoMikgLyAyDQorCSAgIDAuMjkgaXMgYSBzYWZlIHZhbHVlLg0KKwkgKi8NCitsaW1pdDoJLmZsb2F0IDAuMjkNCitvbmU6CS5mbG9hdCAxLjANCisvKg0KKyAqIFVzZSB0aGUgZnlsMnhwMSBmdW5jdGlvbiB3aGVuIHRoZSBhcmd1bWVudCBpcyBpbiB0aGUgcmFuZ2UgLTAuMjkgdG8gMC4yOSwNCisgKiBvdGhlcndpc2UgZnlsMnggd2l0aCB0aGUgbmVlZGVkIGV4dHJhIGNvbXB1dGF0aW9uLg0KKyAqLw0KKy5nbG9ibCBfbG9nMXBmOyANCisJLmRlZglfbG9nMXBmOwkuc2NsCTI7CS50eXBlCTMyOwkuZW5kZWYNCitfbG9nMXBmOg0KKwlmbGRsbjINCisJZmxkcwk0KCVlc3ApDQorCWZ4YW0NCisJZm5zdHN3DQorCWZsZAklc3QNCisJc2FoZg0KKwlqYwkzZgkJLy8gaW4gY2FzZSB4IGlzIE5hTiBvciCxSW5mDQorDQorNDoJZmFicw0KKwlmY29tcHMJbGltaXQNCisJZm5zdHN3DQorCXNhaGYNCisJamMJMmYNCisJZmFkZHMJb25lDQorCWZ5bDJ4DQorCXJldA0KKw0KKzI6CWZ5bDJ4cDENCisJcmV0DQorDQorMzoJanAJNGIJCS8vIGluIGNhc2UgeCBpcyCxSW5mDQorCWZzdHAJJXN0KDEpDQorCWZzdHAJJXN0KDEpDQorCXJldA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9sb2cxcGwuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9sb2cxcGwuUwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lYzZlNTY2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xvZzFwbC5TCkBAIC0wLDAgKzEsNTQgQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqDQorICogQWRhcHRlZCBmb3IgYGxvbmcgZG91YmxlJyBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBjeWdudXMuY29tPi4NCisqIFJlbW92ZWQgaGVhZGVyIGZpbGUgZGVwZW5kZW5jeSBmb3IgdXNlIGluIGxpYm1pbmd3ZXguYSBieQ0KKyAqICAgRGFubnkgU21pdGggPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0Pg0KKyAqLw0KKw0KKwkuZmlsZQkibG9nMXBsLlMiDQorCS50ZXh0DQorCS5hbGlnbiA0DQorCS8qIFRoZSBmeWwyeHAxIGNhbiBvbmx5IGJlIHVzZWQgZm9yIHZhbHVlcyBpbg0KKwkgICAtMSArIHNxcnQoMikgLyAyIDw9IHggPD0gMSAtIHNxcnQoMikgLyAyDQorCSAgIDAuMjkgaXMgYSBzYWZlIHZhbHVlLg0KKwkgKi8NCitsaW1pdDoJLnRmbG9hdCAwLjI5DQorCS8qIFBsZWFzZSBub3RlOgkgd2UgdXNlIGEgZG91YmxlIHZhbHVlIGhlcmUuICBTaW5jZSAxLjAgaGFzDQorCSAgIGFuIGV4YWN0IHJlcHJlc2VudGF0aW9uIHRoaXMgZG9lcyBub3QgZWZmZWN0IHRoZSBhY2N1cmFjeQ0KKwkgICBidXQgaXQgaGVscHMgdG8gb3B0aW1pemUgdGhlIGNvZGUuICAqLw0KK29uZToJLmRvdWJsZSAxLjANCisNCisvKg0KKyAqIFVzZSB0aGUgZnlsMnhwMSBmdW5jdGlvbiB3aGVuIHRoZSBhcmd1bWVudCBpcyBpbiB0aGUgcmFuZ2UgLTAuMjkgdG8gMC4yOSwNCisgKiBvdGhlcndpc2UgZnlsMnggd2l0aCB0aGUgbmVlZGVkIGV4dHJhIGNvbXB1dGF0aW9uLg0KKyAqLw0KKy5nbG9ibCBfbG9nMXBsOyANCisJLmRlZglfbG9nMXBsOwkuc2NsCTI7CS50eXBlCTMyOwkuZW5kZWYNCitfbG9nMXBsOg0KKwlmbGRsbjINCisJZmxkdAk0KCVlc3ApDQorCWZ4YW0NCisJZm5zdHN3DQorCWZsZAklc3QNCisJc2FoZg0KKwlqYwkzZgkJLy8gaW4gY2FzZSB4IGlzIE5hTiBvciCxSW5mDQorNDoNCisJZmFicw0KKwlmbGR0CWxpbWl0DQorCWZjb21wcA0KKwlmbnN0c3cNCisJc2FoZg0KKwlqbmMJMmYNCisJZmFkZGwJb25lDQorCWZ5bDJ4DQorCXJldA0KKw0KKzI6CWZ5bDJ4cDENCisJcmV0DQorDQorMzoJanAJNGIJCS8vIGluIGNhc2UgeCBpcyCxSW5mDQorCWZzdHAJJXN0KDEpDQorCWZzdHAJJXN0KDEpDQorCXJldA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9sb2cyLlMgYi9taW5ndy13NjQtY3J0L21hdGgvbG9nMi5TCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc2MWJmNmYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvbG9nMi5TCkBAIC0wLDAgKzEsNTEgQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBBZGFwdGVkIGZvciB1c2UgYXMgbG9nMiBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBjeWdudXMuY29tPi4NCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqDQorICogQ2hhbmdlZCB0byB1c2UgZnlsMnhwMSBmb3IgdmFsdWVzIG5lYXIgMSwgPGRyZXBwZXJAY3lnbnVzLmNvbT4uDQorICoNCisgKiBSZW1vdmVkIGhlYWRlciBmaWxlIGRlcGVuZGVuY3kgZm9yIHVzZSBpbiBsaWJtaW5nd2V4LmEgYnkNCisgKiAgIERhbm55IFNtaXRoIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4NCisgKi8NCisNCisJLmZpbGUJImxvZzIuUyINCisJLnRleHQNCisJLmFsaWduIDQNCitvbmU6CS5kb3VibGUgMS4wDQorCS8qIEl0IGlzIG5vdCBpbXBvcnRhbnQgdGhhdCB0aGlzIGNvbnN0YW50IGlzIHByZWNpc2UuICBJdCBpcyBvbmx5DQorCSAgIGEgdmFsdWUgd2hpY2ggaXMga25vd24gdG8gYmUgb24gdGhlIHNhZmUgc2lkZSBmb3IgdXNpbmcgdGhlDQorCSAgIGZ5bDJ4cDEgaW5zdHJ1Y3Rpb24uICAqLw0KK2xpbWl0OgkuZG91YmxlIDAuMjkNCisNCisJLnRleHQNCisJLmFsaWduIDQNCisuZ2xvYmwgX2xvZzINCisJLmRlZglfbG9nMjsJLnNjbAkyOwkudHlwZQkzMjsJLmVuZGVmDQorX2xvZzI6DQorCWZsZGwJb25lDQorCWZsZGwJNCglZXNwKQkJLy8geCA6IDENCisJZnhhbQ0KKwlmbnN0c3cNCisJZmxkCSVzdAkJLy8geCA6IHggOiAxDQorCXNhaGYNCisJamMJM2YJCS8vIGluIGNhc2UgeCBpcyBOYU4gb3IgsUluZg0KKzQ6CWZzdWIJJXN0KDIpLCAlc3QJLy8geC0xIDogeCA6IDENCisJZmxkCSVzdAkJLy8geC0xIDogeC0xIDogeCA6IDENCisJZmFicwkJCS8vIHx4LTF8IDogeC0xIDogeCA6IDENCisJZmNvbXBsCWxpbWl0CQkvLyB4LTEgOiB4IDogMQ0KKwlmbnN0c3cJCQkvLyB4LTEgOiB4IDogMQ0KKwlhbmRiCSQweDQ1LCAlYWgNCisJanoJMmYNCisJZnN0cAklc3QoMSkJCS8vIHgtMSA6IDENCisJZnlsMnhwMQkJCS8vIGxvZyh4KQ0KKwlyZXQNCisNCisyOglmc3RwCSVzdCgwKQkJLy8geCA6IDENCisJZnlsMngJCQkvLyBsb2coeCkNCisJcmV0DQorDQorMzoJanAJNGIJCS8vIGluIGNhc2UgeCBpcyCxSW5mDQorCWZzdHAJJXN0KDEpDQorCWZzdHAJJXN0KDEpDQorCXJldA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9sb2cyZi5TIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xvZzJmLlMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGM5YzViMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9sb2cyZi5TCkBAIC0wLDAgKzEsNTEgQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBBZGFwdGVkIGZvciB1c2UgYXMgbG9nMiBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBjeWdudXMuY29tPi4NCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqDQorICogQ2hhbmdlZCB0byB1c2UgZnlsMnhwMSBmb3IgdmFsdWVzIG5lYXIgMSwgPGRyZXBwZXJAY3lnbnVzLmNvbT4uDQorICoNCisgKiBSZW1vdmVkIGhlYWRlciBmaWxlIGRlcGVuZGVuY3kgZm9yIHVzZSBpbiBsaWJtaW5nd2V4LmEgYnkNCisgKiAgIERhbm55IFNtaXRoIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4NCisgKi8NCisNCisJLmZpbGUJImxvZzJmLlMiDQorCS50ZXh0DQorCS5hbGlnbiA0DQorb25lOgkuZG91YmxlIDEuMA0KKwkvKiBJdCBpcyBub3QgaW1wb3J0YW50IHRoYXQgdGhpcyBjb25zdGFudCBpcyBwcmVjaXNlLiAgSXQgaXMgb25seQ0KKwkgICBhIHZhbHVlIHdoaWNoIGlzIGtub3duIHRvIGJlIG9uIHRoZSBzYWZlIHNpZGUgZm9yIHVzaW5nIHRoZQ0KKwkgICBmeWwyeHAxIGluc3RydWN0aW9uLiAgKi8NCitsaW1pdDoJLmRvdWJsZSAwLjI5DQorDQorCS50ZXh0DQorCS5hbGlnbiA0DQorLmdsb2JsIF9sb2cyZg0KKwkuZGVmCV9sb2cyZjsJLnNjbAkyOwkudHlwZQkzMjsJLmVuZGVmDQorX2xvZzJmOg0KKwlmbGRsCW9uZQ0KKwlmbGRzCTQoJWVzcCkJCS8vIHggOiAxDQorCWZ4YW0NCisJZm5zdHN3DQorCWZsZAklc3QJCS8vIHggOiB4IDogMQ0KKwlzYWhmDQorCWpjCTNmCQkvLyBpbiBjYXNlIHggaXMgTmFOIG9yILFJbmYNCis0Oglmc3ViCSVzdCgyKSwgJXN0CS8vIHgtMSA6IHggOiAxDQorCWZsZAklc3QJCS8vIHgtMSA6IHgtMSA6IHggOiAxDQorCWZhYnMJCQkvLyB8eC0xfCA6IHgtMSA6IHggOiAxDQorCWZjb21wbAlsaW1pdAkJLy8geC0xIDogeCA6IDENCisJZm5zdHN3CQkJLy8geC0xIDogeCA6IDENCisJYW5kYgkkMHg0NSwgJWFoDQorCWp6CTJmDQorCWZzdHAJJXN0KDEpCQkvLyB4LTEgOiAxDQorCWZ5bDJ4cDEJCQkvLyBsb2coeCkNCisJcmV0DQorDQorMjoJZnN0cAklc3QoMCkJCS8vIHggOiAxDQorCWZ5bDJ4CQkJLy8gbG9nKHgpDQorCXJldA0KKw0KKzM6CWpwCTRiCQkvLyBpbiBjYXNlIHggaXMgsUluZg0KKwlmc3RwCSVzdCgxKQ0KKwlmc3RwCSVzdCgxKQ0KKwlyZXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvbG9nMmwuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9sb2cybC5TCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdlMWE5MWEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvbG9nMmwuUwpAQCAtMCwwICsxLDQ4IEBACisvKg0KKyAqIFdyaXR0ZW4gYnkgSi5ULiBDb25rbGluIDxqdGNAbmV0YnNkLm9yZz4uDQorICogQWRhcHRlZCBmb3IgdXNlIGFzIGxvZzIgYnkgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAY3lnbnVzLmNvbT4uDQorICogUHVibGljIGRvbWFpbi4NCisgKg0KKyAqIENoYW5nZWQgdG8gdXNlIGZ5bDJ4cDEgZm9yIHZhbHVlcyBuZWFyIDEsIDxkcmVwcGVyQGN5Z251cy5jb20+Lg0KKyAqLw0KKw0KKwkuZmlsZQkibG9nMmwuUyINCisJLnRleHQNCisJLmFsaWduIDQNCitvbmU6CS5kb3VibGUgMS4wDQorCS8qIEl0IGlzIG5vdCBpbXBvcnRhbnQgdGhhdCB0aGlzIGNvbnN0YW50IGlzIHByZWNpc2UuICBJdCBpcyBvbmx5DQorCSAgIGEgdmFsdWUgd2hpY2ggaXMga25vd24gdG8gYmUgb24gdGhlIHNhZmUgc2lkZSBmb3IgdXNpbmcgdGhlDQorCSAgIGZ5bDJ4cDEgaW5zdHJ1Y3Rpb24uICAqLw0KK2xpbWl0OgkuZG91YmxlIDAuMjkNCisNCisJLnRleHQNCisJLmFsaWduIDQNCisuZ2xvYmwgX2xvZzJsDQorCS5kZWYJX2xvZzJsOwkuc2NsCTI7CS50eXBlCTMyOwkuZW5kZWYNCitfbG9nMmw6DQorCWZsZGwJb25lDQorCWZsZHQJNCglZXNwKQkJLy8geCA6IDENCisJZnhhbQ0KKwlmbnN0c3cNCisJZmxkCSVzdAkJLy8geCA6IHggOiAxDQorCXNhaGYNCisJamMJM2YJCS8vIGluIGNhc2UgeCBpcyBOYU4gb3IgsUluZg0KKzQ6CWZzdWIJJXN0KDIpLCAlc3QJLy8geC0xIDogeCA6IDENCisJZmxkCSVzdAkJLy8geC0xIDogeC0xIDogeCA6IDENCisJZmFicwkJCS8vIHx4LTF8IDogeC0xIDogeCA6IDENCisJZmNvbXBsCWxpbWl0CQkvLyB4LTEgOiB4IDogMQ0KKwlmbnN0c3cJCQkvLyB4LTEgOiB4IDogMQ0KKwlhbmRiCSQweDQ1LCAlYWgNCisJanoJMmYNCisJZnN0cAklc3QoMSkJCS8vIHgtMSA6IDENCisJZnlsMnhwMQkJCS8vIGxvZyh4KQ0KKwlyZXQNCisNCisyOglmc3RwCSVzdCgwKQkJLy8geCA6IDENCisJZnlsMngJCQkvLyBsb2coeCkNCisJcmV0DQorDQorMzoJanAJNGIJCS8vIGluIGNhc2UgeCBpcyCxSW5mDQorCWZzdHAJJXN0KDEpDQorCWZzdHAJJXN0KDEpDQorCXJldA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9sb2diLmMgYi9taW5ndy13NjQtY3J0L21hdGgvbG9nYi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI2OTE0ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvbG9nYi5jCkBAIC0wLDAgKzEsMTYgQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBDaGFuZ2VzIGZvciBsb25nIGRvdWJsZSBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBjeWdudXMuY29tPg0KKyAqIFB1YmxpYyBkb21haW4uDQorICovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisNCitkb3VibGUNCitsb2diIChkb3VibGUgeCkNCit7DQorICBkb3VibGUgcmVzOw0KKyAgYXNtICgiZnh0cmFjdFxuXHQiDQorICAgICAgICJmc3RwCSUlc3QiIDogIj10IiAocmVzKSA6ICIwIiAoeCkpOw0KKyAgcmV0dXJuIHJlczsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2xvZ2JmLmMgYi9taW5ndy13NjQtY3J0L21hdGgvbG9nYmYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNzVmOWU1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xvZ2JmLmMKQEAgLTAsMCArMSwxNiBAQAorLyoNCisgKiBXcml0dGVuIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIENoYW5nZXMgZm9yIGxvbmcgZG91YmxlIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQGN5Z251cy5jb20+DQorICogUHVibGljIGRvbWFpbi4NCisgKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKw0KK2Zsb2F0DQorbG9nYmYgKGZsb2F0IHgpDQorew0KKyAgZmxvYXQgcmVzOw0KKyAgYXNtICgiZnh0cmFjdFxuXHQiDQorICAgICAgICJmc3RwCSUlc3QiIDogIj10IiAocmVzKSA6ICIwIiAoeCkpOw0KKyAgcmV0dXJuIHJlczsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2xvZ2JsLmMgYi9taW5ndy13NjQtY3J0L21hdGgvbG9nYmwuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZTE3Nzk0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xvZ2JsLmMKQEAgLTAsMCArMSwxNyBAQAorLyoNCisgKiBXcml0dGVuIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIENoYW5nZXMgZm9yIGxvbmcgZG91YmxlIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQGN5Z251cy5jb20+DQorICogUHVibGljIGRvbWFpbi4NCisgKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKw0KK2xvbmcgZG91YmxlDQorbG9nYmwgKGxvbmcgZG91YmxlIHgpDQorew0KKyAgbG9uZyBkb3VibGUgcmVzOw0KKw0KKyAgYXNtICgiZnh0cmFjdFxuXHQiDQorICAgICAgICJmc3RwCSUlc3QiIDogIj10IiAocmVzKSA6ICIwIiAoeCkpOw0KKyAgcmV0dXJuIHJlczsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2xvZ2YuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9sb2dmLlMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTU4MzYzZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9sb2dmLlMKQEAgLTAsMCArMSwzOSBAQAorLyoNCisgKiBXcml0dGVuIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIFB1YmxpYyBkb21haW4uDQorICogQWRhcHRlZCBmb3IgZmxvYXQgYnkgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAY3lnbnVzLmNvbT4uDQorICoNCisgKiBDaGFuZ2VkIHRvIHVzZSBmeWwyeHAxIGZvciB2YWx1ZXMgbmVhciAxLCA8ZHJlcHBlckBjeWdudXMuY29tPi4NCisgKi8NCisNCisJLmZpbGUJImxvZ2YuUyINCisJLnRleHQNCisJLmFsaWduIDQNCitvbmU6CS5kb3VibGUgMS4wDQorCS8qIEl0IGlzIG5vdCBpbXBvcnRhbnQgdGhhdCB0aGlzIGNvbnN0YW50IGlzIHByZWNpc2UuICBJdCBpcyBvbmx5DQorCSAgIGEgdmFsdWUgd2hpY2ggaXMga25vd24gdG8gYmUgb24gdGhlIHNhZmUgc2lkZSBmb3IgdXNpbmcgdGhlDQorCSAgIGZ5bDJ4cDEgaW5zdHJ1Y3Rpb24uICAqLw0KK2xpbWl0OgkuZG91YmxlIDAuMjkNCisNCisJLnRleHQNCisJLmFsaWduIDQNCisuZ2xvYmwgX2xvZ2YNCisJLmRlZglfbG9nZjsJLnNjbAkyOwkudHlwZQkzMjsJLmVuZGVmDQorX2xvZ2Y6DQorCWZsZGxuMgkJCS8vIGxvZygyKQ0KKwlmbGRzCTQoJWVzcCkJCS8vIHggOiBsb2coMikNCisJZmxkCSVzdAkJLy8geCA6IHggOiBsb2coMikNCisJZnN1YmwJb25lCQkvLyB4LTEgOiB4IDogbG9nKDIpDQorCWZsZAklc3QJCS8vIHgtMSA6IHgtMSA6IHggOiBsb2coMikNCisJZmFicwkJCS8vIHx4LTF8IDogeC0xIDogeCA6IGxvZygyKQ0KKwlmY29tcGwJbGltaXQJCS8vIHgtMSA6IHggOiBsb2coMikNCisJZm5zdHN3CQkJLy8geC0xIDogeCA6IGxvZygyKQ0KKwlhbmRiCSQweDQ1LCAlYWgNCisJanoJMmYNCisJZnN0cAklc3QoMSkJCS8vIHgtMSA6IGxvZygyKQ0KKwlmeWwyeHAxCQkJLy8gbG9nKHgpDQorCXJldA0KKw0KKzI6CWZzdHAJJXN0KDApCQkvLyB4IDogbG9nKDIpDQorCWZ5bDJ4CQkJLy8gbG9nKHgpDQorCXJldA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9sb2dsLlMgYi9taW5ndy13NjQtY3J0L21hdGgvbG9nbC5TCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc3MjY2YzcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvbG9nbC5TCkBAIC0wLDAgKzEsNDAgQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqDQorICogQWRhcHRlZCBmb3IgYGxvbmcgZG91YmxlJyBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBjeWdudXMuY29tPi4NCisgKg0KKyAqIFJlbW92ZWQgaGVhZGVyIGZpbGUgZGVwZW5kZW5jeSBmb3IgdXNlIGluIGxpYm1pbmd3ZXguYSBieQ0KKyAqICAgRGFubnkgU21pdGggPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0Pg0KKyAqLw0KKwkuZmlsZQkibG9nbC5TIg0KKwkudGV4dA0KKwkuYWxpZ24gNA0KK29uZToJLmRvdWJsZSAxLjANCisJLyogSXQgaXMgbm90IGltcG9ydGFudCB0aGF0IHRoaXMgY29uc3RhbnQgaXMgcHJlY2lzZS4gIEl0IGlzIG9ubHkNCisJICAgYSB2YWx1ZSB3aGljaCBpcyBrbm93biB0byBiZSBvbiB0aGUgc2FmZSBzaWRlIGZvciB1c2luZyB0aGUNCisJICAgZnlsMnhwMSBpbnN0cnVjdGlvbi4gICovDQorbGltaXQ6CS5kb3VibGUgMC4yOQ0KKw0KKwkudGV4dA0KKwkuYWxpZ24gNA0KKy5nbG9ibCBfbG9nbA0KKwkuZGVmCV9sb2dsOwkuc2NsCTI7CS50eXBlCTMyOwkuZW5kZWYNCitfbG9nbDoNCisJZmxkbG4yCQkJLy8gbG9nKDIpDQorCWZsZHQJNCglZXNwKQkJLy8geCA6IGxvZygyKQ0KKwlmbGQJJXN0CQkvLyB4IDogeCA6IGxvZygyKQ0KKwlmc3VibAlvbmUJCS8vIHgtMSA6IHggOiBsb2coMikNCisJZmxkCSVzdAkJLy8geC0xIDogeC0xIDogeCA6IGxvZygyKQ0KKwlmYWJzCQkJLy8gfHgtMXwgOiB4LTEgOiB4IDogbG9nKDIpDQorCWZjb21wbAlsaW1pdAkJLy8geC0xIDogeCA6IGxvZygyKQ0KKwlmbnN0c3cJCQkvLyB4LTEgOiB4IDogbG9nKDIpDQorCWFuZGIJJDB4NDUsICVhaA0KKwlqegkyZg0KKwlmc3RwCSVzdCgxKQkJLy8geC0xIDogbG9nKDIpDQorCWZ5bDJ4cDEJCQkvLyBsb2coeCkNCisJcmV0DQorDQorMjoJZnN0cAklc3QoMCkJCS8vIHggOiBsb2coMikNCisJZnlsMngJCQkvLyBsb2coeCkNCisJcmV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2xyaW50LmMgYi9taW5ndy13NjQtY3J0L21hdGgvbHJpbnQuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZjJmOTRjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xyaW50LmMKQEAgLTAsMCArMSw5IEBACisjaW5jbHVkZSA8bWF0aC5oPg0KKw0KK2xvbmcgbHJpbnQgKGRvdWJsZSB4KSANCit7DQorICBsb25nIHJldHZhbDsgIA0KKyAgX19hc21fXyBfX3ZvbGF0aWxlX18JCQkJCQkJICAgICAgXA0KKyAgICAoImZpc3RwbCAlMCIgIDogIj1tIiAocmV0dmFsKSA6ICJ0IiAoeCkgOiAic3QiKTsJCQkJICAgICAgXA0KKyAgcmV0dXJuIHJldHZhbDsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2xyaW50Zi5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xyaW50Zi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJiNzAwYmQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvbHJpbnRmLmMKQEAgLTAsMCArMSw5IEBACisjaW5jbHVkZSA8bWF0aC5oPg0KKw0KK2xvbmcgbHJpbnRmIChmbG9hdCB4KSANCit7DQorICBsb25nIHJldHZhbDsNCisgIF9fYXNtX18gX192b2xhdGlsZV9fCQkJCQkJCSAgICAgIFwNCisgICAgKCJmaXN0cGwgJTAiICA6ICI9bSIgKHJldHZhbCkgOiAidCIgKHgpIDogInN0Iik7CQkJCSAgICAgIFwNCisgIHJldHVybiByZXR2YWw7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9scmludGwuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9scmludGwuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNjU1MWFjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xyaW50bC5jCkBAIC0wLDAgKzEsMTAgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorDQorbG9uZyBscmludGwgKGxvbmcgZG91YmxlIHgpIA0KK3sNCisgIGxvbmcgcmV0dmFsOw0KKyAgX19hc21fXyBfX3ZvbGF0aWxlX18JCQkJCQkJICAgICAgXA0KKyAgICAoImZpc3RwbCAlMCIgIDogIj1tIiAocmV0dmFsKSA6ICJ0IiAoeCkgOiAic3QiKTsJCQkJICAgICAgXA0KKyAgcmV0dXJuIHJldHZhbDsNCit9DQorDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2xyb3VuZC5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL2xyb3VuZC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE1YTQ0ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvbHJvdW5kLmMKQEAgLTAsMCArMSwxOSBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8bGltaXRzLmg+DQorI2luY2x1ZGUgPGVycm5vLmg+DQorDQorbG9uZw0KK2xyb3VuZCAoZG91YmxlIHgpDQorew0KKyAgLyogQWRkICsvLSAwLjUgdGhlbiB0aGVuIHJvdW5kIHRvd2FyZHMgemVyby4gICovDQorICBkb3VibGUgdG1wID0gdHJ1bmMgKHggKyAoeCA+PSAwLjAgPyAgMC41IDogLTAuNSkpOw0KKyAgaWYgKCFpc2Zpbml0ZSAodG1wKSANCisgICAgICB8fCB0bXAgPiAoZG91YmxlKUxPTkdfTUFYDQorICAgICAgfHwgdG1wIDwgKGRvdWJsZSlMT05HX01JTikNCisgICAgeyANCisgICAgICBlcnJubyA9IEVSQU5HRTsNCisgICAgICAvKiBVbmRlZmluZWQgYmVoYXZpb3VyLCBzbyB3ZSBjb3VsZCByZXR1cm4gYW55dGhpbmcuICAqLw0KKyAgICAgIC8qIHJldHVybiB0bXAgPiAwLjAgPyBMT05HX01BWCA6IExPTkdfTUlOOyAgKi8NCisgICAgfQ0KKyAgcmV0dXJuIChsb25nKXRtcDsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2xyb3VuZGYuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9scm91bmRmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDcwNjMwMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9scm91bmRmLmMKQEAgLTAsMCArMSwxOSBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8bGltaXRzLmg+DQorI2luY2x1ZGUgPGVycm5vLmg+DQorDQorbG9uZw0KK2xyb3VuZGYgKGZsb2F0IHgpDQorew0KKyAgLyogQWRkICsvLSAwLjUsIHRoZW4gcm91bmQgdG93YXJkcyB6ZXJvLiAgKi8NCisgIGZsb2F0IHRtcCA9IHRydW5jZiAoeCArICh4ID49IDAuMEYgPyAgMC41RiA6IC0wLjVGKSk7DQorICBpZiAoIWlzZmluaXRlICh0bXApIA0KKyAgICAgIHx8IHRtcCA+IChmbG9hdClMT05HX01BWA0KKyAgICAgIHx8IHRtcCA8IChmbG9hdClMT05HX01JTikNCisgICAgeyANCisgICAgICBlcnJubyA9IEVSQU5HRTsNCisgICAgICAvKiBVbmRlZmluZWQgYmVoYXZpb3VyLCBzbyB3ZSBjb3VsZCByZXR1cm4gYW55dGhpbmcuICAqLw0KKyAgICAgIC8qIHJldHVybiB0bXAgPiAwLjBGID8gTE9OR19NQVggOiBMT05HX01JTjsgICovDQorICAgIH0NCisgIHJldHVybiAobG9uZyl0bXA7DQorfSAgDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL2xyb3VuZGwuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9scm91bmRsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWFhYTI0NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9scm91bmRsLmMKQEAgLTAsMCArMSwxOSBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8bGltaXRzLmg+DQorI2luY2x1ZGUgPGVycm5vLmg+DQorDQorbG9uZw0KK2xyb3VuZGwgKGxvbmcgZG91YmxlIHgpDQorew0KKyAgLyogQWRkICsvLSAwLjUsIHRoZW4gcm91bmQgdG93YXJkcyB6ZXJvLiAgKi8NCisgIGxvbmcgZG91YmxlIHRtcCA9IHRydW5jbCAoeCArICh4ID49IDAuMEwgPyAgMC41TCA6IC0wLjVMKSk7DQorICBpZiAoIWlzZmluaXRlICh0bXApIA0KKyAgICAgIHx8IHRtcCA+IChsb25nIGRvdWJsZSlMT05HX01BWA0KKyAgICAgIHx8IHRtcCA8IChsb25nIGRvdWJsZSlMT05HX01JTikNCisgICAgeyANCisgICAgICBlcnJubyA9IEVSQU5HRTsNCisgICAgICAvKiBVbmRlZmluZWQgYmVoYXZpb3VyLCBzbyB3ZSBjb3VsZCByZXR1cm4gYW55dGhpbmcuICAqLw0KKyAgICAgIC8qIHJldHVybiB0bXAgPiAwLjBMID8gTE9OR19NQVggOiBMT05HX01JTjsgICovDQorICAgIH0NCisgIHJldHVybiAobG9uZyl0bXA7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9tb2RmZi5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL21vZGZmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWI4MDljZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9tb2RmZi5jCkBAIC0wLDAgKzEsMjIgQEAKKyNpbmNsdWRlIDxmZW52Lmg+DQorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8ZXJybm8uaD4NCisjZGVmaW5lIEZFX1JPVU5ESU5HX01BU0sgXA0KKyAgKEZFX1RPTkVBUkVTVCB8IEZFX0RPV05XQVJEIHwgRkVfVVBXQVJEIHwgRkVfVE9XQVJEWkVSTykNCisNCitmbG9hdA0KK21vZGZmIChmbG9hdCB2YWx1ZSwgZmxvYXQqIGlwdHIpDQorew0KKyAgZmxvYXQgaW50X3BhcnQ7DQorICB1bnNpZ25lZCBzaG9ydCBzYXZlZF9jdzsNCisgIHVuc2lnbmVkIHNob3J0IHRtcF9jdzsNCisgIC8qIHRydW5jYXRlICovIA0KKyAgYXNtICgiZm5zdGN3ICUwOyIgOiAiPW0iIChzYXZlZF9jdykpOyAvKiBzYXZlIGNvbnRyb2wgd29yZCAqLw0KKyAgdG1wX2N3ID0gKHNhdmVkX2N3ICYgfkZFX1JPVU5ESU5HX01BU0spIHwgRkVfVE9XQVJEWkVSTzsNCisgIGFzbSAoImZsZGN3ICUwOyIgOiA6ICJtIiAodG1wX2N3KSk7DQorICBhc20gKCJmcm5kaW50OyIgOiAiPXQiIChpbnRfcGFydCkgOiAiMCIgKHZhbHVlKSk7IC8qIHJvdW5kICovDQorICBhc20gKCJmbGRjdyAlMDsiIDogOiAibSIgKHNhdmVkX2N3KSk7IC8qIHJlc3RvcmUgc2F2ZWQgY3cgKi8NCisgIGlmIChpcHRyKQ0KKyAgICAqaXB0ciA9IGludF9wYXJ0Ow0KKyAgcmV0dXJuIChpc2luZiAodmFsdWUpID8gIDAuMEYgOiB2YWx1ZSAtIGludF9wYXJ0KTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL21vZGZsLmMgYi9taW5ndy13NjQtY3J0L21hdGgvbW9kZmwuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NmQ4OGVmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL21vZGZsLmMKQEAgLTAsMCArMSwyMiBAQAorI2luY2x1ZGUgPGZlbnYuaD4NCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxlcnJuby5oPg0KKyNkZWZpbmUgRkVfUk9VTkRJTkdfTUFTSyBcDQorICAoRkVfVE9ORUFSRVNUIHwgRkVfRE9XTldBUkQgfCBGRV9VUFdBUkQgfCBGRV9UT1dBUkRaRVJPKQ0KKw0KK2xvbmcgZG91YmxlDQorbW9kZmwgKGxvbmcgZG91YmxlIHZhbHVlLCBsb25nIGRvdWJsZSogaXB0cikNCit7DQorICBsb25nIGRvdWJsZSBpbnRfcGFydDsNCisgIHVuc2lnbmVkIHNob3J0IHNhdmVkX2N3Ow0KKyAgdW5zaWduZWQgc2hvcnQgdG1wX2N3Ow0KKyAgLyogdHJ1bmNhdGUgKi8gDQorICBhc20gKCJmbnN0Y3cgJTA7IiA6ICI9bSIgKHNhdmVkX2N3KSk7IC8qIHNhdmUgY29udHJvbCB3b3JkICovDQorICB0bXBfY3cgPSAoc2F2ZWRfY3cgJiB+RkVfUk9VTkRJTkdfTUFTSykgfCBGRV9UT1dBUkRaRVJPOw0KKyAgYXNtICgiZmxkY3cgJTA7IiA6IDogIm0iICh0bXBfY3cpKTsNCisgIGFzbSAoImZybmRpbnQ7IiA6ICI9dCIgKGludF9wYXJ0KSA6ICIwIiAodmFsdWUpKTsgLyogcm91bmQgKi8NCisgIGFzbSAoImZsZGN3ICUwOyIgOiA6ICJtIiAoc2F2ZWRfY3cpKTsgLyogcmVzdG9yZSBzYXZlZCBjdyAqLw0KKyAgaWYgKGlwdHIpDQorICAgICppcHRyID0gaW50X3BhcnQ7DQorICByZXR1cm4gKGlzaW5mICh2YWx1ZSkgPyAgMC4wTCA6IHZhbHVlIC0gaW50X3BhcnQpOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvbmVhcmJ5aW50LlMgYi9taW5ndy13NjQtY3J0L21hdGgvbmVhcmJ5aW50LlMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWRhNDIxMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9uZWFyYnlpbnQuUwpAQCAtMCwwICsxLDMwIEBACisvKg0KKyAqIFdyaXR0ZW4gYnkgSi5ULiBDb25rbGluIDxqdGNAbmV0YnNkLm9yZz4uDQorICogUHVibGljIGRvbWFpbi4NCisgKg0KKyAqIEFkYXB0ZWQgZm9yIHVzZSBhcyBuZWFyYnlpbnQgYnkgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAY3lnbnVzLmNvbT4uDQorICoNCisgKiBSZW1vdmVkIGhlYWRlciBmaWxlIGRlcGVuZGVuY3kgZm9yIHVzZSBpbiBsaWJtaW5nd2V4LmEgYnkNCisgKiAgIERhbm55IFNtaXRoIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4NCisgKi8NCisNCisJLmZpbGUJIm5lYXJieWludC5TIg0KKwkudGV4dA0KKwkuYWxpZ24gNA0KKy5nbG9ibCBfbmVhcmJ5aW50DQorCS5kZWYJX25lYXJieWludDsJLnNjbAkyOwkudHlwZQkzMjsJLmVuZGVmDQorX25lYXJieWludDoNCisJZmxkbAk4KCVyc3ApDQorCXB1c2hxCSVyYXgNCisJcHVzaHEJJXJjeA0KKwlmbnN0Y3cJKCVyc3ApDQorCW1vdnEJKCVyc3ApLCAlcmF4DQorCW9ycQkkMHgyMCwgJXJheA0KKwltb3ZxCSVyYXgsIDgoJXJzcCkNCisJZmxkY3cJOCglcnNwKQ0KKwlmcm5kaW50DQorCWZjbGV4DQorCWZsZGN3CSglcnNwKQ0KKwlwb3BxCSVyY3gNCisJcG9wcQklcmF4DQorCXJldA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9uZWFyYnlpbnRmLlMgYi9taW5ndy13NjQtY3J0L21hdGgvbmVhcmJ5aW50Zi5TCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE4YTI2ODkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvbmVhcmJ5aW50Zi5TCkBAIC0wLDAgKzEsMjkgQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqIEFkYXB0ZWQgZm9yIHVzZSBhcyBuZWFyYnlpbnQgYnkgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAY3lnbnVzLmNvbT4uDQorICogDQorICogUmVtb3ZlZCBoZWFkZXIgZmlsZSBkZXBlbmRlbmN5IGZvciB1c2UgaW4gbGlibWluZ3dleC5hIGJ5DQorICogICBEYW5ueSBTbWl0aCA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+DQorICovDQorDQorCS5maWxlCSJuZWFyYnlpbnRmLlMiDQorCS50ZXh0DQorCS5hbGlnbiA0DQorLmdsb2JsIF9uZWFyYnlpbnRmDQorCS5kZWYJX25lYXJieWludGY7CS5zY2wJMjsJLnR5cGUJMzI7CS5lbmRlZg0KK19uZWFyYnlpbnRmOg0KKwlmbGRzCTgoJXJzcCkNCisJcHVzaHEJJXJheA0KKwlwdXNocQklcmN4DQorCWZuc3RjdwkoJXJzcCkNCisJbW92cQkoJXJzcCksICVyYXgNCisJb3JxCSQweDIwLCAlcmF4DQorCW1vdnEJJXJheCwgOCglcnNwKQ0KKwlmbGRjdwk4KCVyc3ApDQorCWZybmRpbnQNCisJZmNsZXgNCisJZmxkY3cJKCVyc3ApDQorCXBvcHEJJXJjeA0KKwlwb3BxCSVyYXgNCisJcmV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL25lYXJieWludGwuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9uZWFyYnlpbnRsLlMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmEwM2VmNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9uZWFyYnlpbnRsLlMKQEAgLTAsMCArMSwzMCBAQAorLyoNCisgKiBXcml0dGVuIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIFB1YmxpYyBkb21haW4uDQorICoNCisgKiBBZGFwdGVkZm9yIHVzZSBhcyBuZWFyYnlpbnQgYnkgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAY3lnbnVzLmNvbT4uDQorICoNCisgKiBSZW1vdmVkIGhlYWRlciBmaWxlIGRlcGVuZGVuY3kgZm9yIHVzZSBpbiBsaWJtaW5nd2V4LmEgYnkNCisgKiAgIERhbm55IFNtaXRoIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4NCisgKi8NCisNCisJLmZpbGUJIm5lYXJieWludGwuUyINCisJLnRleHQNCisJLmFsaWduIDQNCisuZ2xvYmwgX25lYXJieWludGwNCisJLmRlZglfbmVhcmJ5aW50bDsJLnNjbAkyOwkudHlwZQkzMjsJLmVuZGVmDQorX25lYXJieWludGw6DQorCWZsZHQJNCglcnNwKQ0KKwlwdXNocQklcmF4DQorCXB1c2hxCSVyY3gNCisJZm5zdGN3CSglcnNwKQ0KKwltb3ZxCSglcnNwKSwgJXJheA0KKwlvcnEJJDB4MjAsICVyYXgNCisJbW92cQklcmF4LCA4KCVyc3ApDQorCWZsZGN3CTgoJXJzcCkNCisJZnJuZGludA0KKwlmY2xleA0KKwlmbGRjdwkoJWVzcCkNCisJcG9wcQklcmN4DQorCXBvcHEJJXJheA0KKwlyZXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvbmV4dGFmdGVyZi5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL25leHRhZnRlcmYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43OGE1YTJmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL25leHRhZnRlcmYuYwpAQCAtMCwwICsxLDI3IEBACisjaW5jbHVkZSA8bWF0aC5oPg0KKw0KK2Zsb2F0DQorbmV4dGFmdGVyZiAoZmxvYXQgeCwgZmxvYXQgeSkNCit7DQorICB1bmlvbg0KKyAgew0KKyAgICBmbG9hdCBmOw0KKyAgICB1bnNpZ25lZCBpbnQgaTsNCisgIH0gdTsNCisgIGlmIChpc25hbiAoeSkgfHwgaXNuYW4gKHgpKQ0KKyAgICByZXR1cm4geCArIHk7DQorICBpZiAoeCA9PSB5ICkNCisgICAgIC8qIG5leHRhZnRlciAoMC4wLCAtTy4wKSBzaG91bGQgcmV0dXJuIC0wLjAuICAqLw0KKyAgICAgcmV0dXJuIHk7DQorICB1LmYgPSB4OyANCisgIGlmICh4ID09IDAuMEYpDQorICAgIHsNCisgICAgICB1LmkgPSAxOw0KKyAgICAgIHJldHVybiB5ID4gMC4wRiA/IHUuZiA6IC11LmY7DQorICAgIH0NCisgIGlmICgoKHggPiAwLjBGKSBeICh5ID4geCkpID09IDApDQorICAgIHUuaSsrOw0KKyAgZWxzZQ0KKyAgICB1LmktLTsNCisgIHJldHVybiB1LmY7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9uZXh0YWZ0ZXJsLmMgYi9taW5ndy13NjQtY3J0L21hdGgvbmV4dGFmdGVybC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAyMTUxMWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvbmV4dGFmdGVybC5jCkBAIC0wLDAgKzEsNjUgQEAKKy8qDQorICAgbmV4dGFmdGVybC5jDQorICAgQ29udHJpYnV0ZWQgYnkgRGFubnkgU21pdGggPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0Pg0KKyAgIE5vIGNvcHlyaWdodCBjbGFpbWVkLCBhYnNvbHV0ZWx5IG5vIHdhcnJhbnRpZXMuDQorDQorICAgMjAwNS0wNS0wOQ0KKyovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisNCitsb25nIGRvdWJsZQ0KK25leHRhZnRlcmwgKGxvbmcgZG91YmxlIHgsIGxvbmcgZG91YmxlIHkpDQorew0KKyAgdW5pb24gew0KKyAgICAgIGxvbmcgZG91YmxlIGxkOw0KKyAgICAgIHN0cnVjdCB7DQorICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgbWFudGlzc2E7DQorICAgICAgICB1bnNpZ25lZCBzaG9ydCBleHBuOw0KKyAgICAgICAgdW5zaWduZWQgc2hvcnQgcGFkOw0KKyAgICAgIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIHBhcnRzOyANCisgIH0gdTsNCisNCisgIC8qIFRoZSBub3JtYWwgYml0IGlzIGV4cGxpY2l0IGZvciBsb25nIGRvdWJsZXMsIHVubGlrZQ0KKyAgICAgZmxvYXQgYW5kIGRvdWJsZS4gICovDQorICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nIG5vcm1hbF9iaXQgPSAweDgwMDAwMDAwMDAwMDAwMDB1bGw7DQorDQorICBpZiAoaXNuYW4gKHkpIHx8IGlzbmFuICh4KSkNCisgICAgcmV0dXJuIHggKyB5Ow0KKw0KKyAgaWYgKHggPT0geSApDQorICAgICAvKiBuZXh0YWZ0ZXIgKDAuMCwgLU8uMCkgc2hvdWxkIHJldHVybiAtMC4wLiAgKi8NCisgICAgIHJldHVybiB5Ow0KKw0KKyAgdS5sZCA9IHg7DQorICBpZiAoeCA9PSAwLjBMKQ0KKyAgICB7DQorICAgICAgdS5wYXJ0cy5tYW50aXNzYSA9IDF1bGw7DQorICAgICAgcmV0dXJuIHkgPiAwLjBMID8gdS5sZCA6IC11LmxkOw0KKyAgICB9DQorDQorICBpZiAoKCh4ID4gMC4wTCkgXiAoeSA+IHgpKSA9PSAwKQ0KKyAgICB7DQorICAgICAgdS5wYXJ0cy5tYW50aXNzYSsrOw0KKyAgICAgIGlmICgodS5wYXJ0cy5tYW50aXNzYSAmIH5ub3JtYWxfYml0KSA9PSAwdWxsKQ0KKwl1LnBhcnRzLmV4cG4rKzsNCisgICAgfQ0KKyAgZWxzZQ0KKyAgICB7DQorICAgICAgaWYgKCh1LnBhcnRzLm1hbnRpc3NhICYgfm5vcm1hbF9iaXQpID09IDB1bGwpDQorCXUucGFydHMuZXhwbi0tOw0KKyAgICAgIHUucGFydHMubWFudGlzc2EtLTsNCisgICAgfQ0KKw0KKyAgLyogSWYgd2UgaGF2ZSB1cGRhdGVkIHRoZSBleHBuIG9mIGEgbm9ybWFsIG51bWJlciwNCisgICAgIG9yIG1vdmVkIGZyb20gZGVub3JtYWwgdG8gbm9ybWFsLCBbcmVdc2V0IHRoZSBub3JtYWwgYml0LiAgKi8gDQorICAgICANCisgIGlmICh1LnBhcnRzLmV4cG4gJiAweDdmZmYpDQorICAgIHUucGFydHMubWFudGlzc2EgfD0gIG5vcm1hbF9iaXQ7DQorDQorICByZXR1cm4gdS5sZDsNCit9DQorDQorLyogbmV4dHRvd2FyZGwgaXMgdGhlIHNhbWUgZnVuY3Rpb24gd2l0aCBhIGRpZmZlcmVudCBuYW1lLiAgKi8NCitsb25nIGRvdWJsZQ0KK25leHR0b3dhcmRsIChsb25nIGRvdWJsZSwgbG9uZyBkb3VibGUpIF9fYXR0cmlidXRlX18gKChhbGlhcygibmV4dGFmdGVybCIpKSk7DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL25leHR0b3dhcmQuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9uZXh0dG93YXJkLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjU5YjE0MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9uZXh0dG93YXJkLmMKQEAgLTAsMCArMSw0MiBAQAorLyoNCisgICBuZXh0dG93YXJkLmMNCisgICBDb250cmlidXRlZCBieSBEYW5ueSBTbWl0aCA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+DQorICAgTm8gY29weXJpZ2h0IGNsYWltZWQsIGFic29sdXRlbHkgbm8gd2FycmFudGllcy4NCisNCisgICAyMDA1LTA1LTEwDQorKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKw0KK2RvdWJsZQ0KK25leHR0b3dhcmQgKGRvdWJsZSB4LCBsb25nIGRvdWJsZSB5KQ0KK3sNCisgIHVuaW9uDQorICB7DQorICAgIGRvdWJsZSBkOw0KKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgbGw7DQorICB9IHU7DQorDQorICBsb25nIGRvdWJsZSB4eCA9IHg7DQorDQorICBpZiAoaXNuYW4gKHkpIHx8IGlzbmFuICh4KSkNCisgICAgcmV0dXJuIHggKyB5Ow0KKw0KKyAgaWYgKHh4ID09IHkpDQorICAgICAvKiBuZXh0YWZ0ZXIgKDAuMCwgLU8uMCkgc2hvdWxkIHJldHVybiAtMC4wLiAgKi8NCisgICAgIHJldHVybiB5Ow0KKyAgdS5kID0geDsgDQorICBpZiAoeCA9PSAwLjApDQorICAgIHsNCisgICAgICB1LmxsID0gMTsNCisgICAgICByZXR1cm4geSA+IDAuMEwgPyB1LmQgOiAtdS5kOw0KKyAgICB9DQorDQorICAvKiBOb24tZXh0ZW5kZWQgZW5jb2RpbmdzIGFyZSBsZXhpY29ncmFwaGljYWxseSBvcmRlcmVkLA0KKyAgICAgd2l0aCBpbXBsaWNpdCAibm9ybWFsIiBiaXQuICAqLyANCisgIGlmICgoKHggPiAwLjApIF4gKHkgPiB4eCkpID09IDApDQorICAgIHUubGwrKzsNCisgIGVsc2UNCisgICAgdS5sbC0tOw0KKyAgcmV0dXJuIHUuZDsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL25leHR0b3dhcmRmLmMgYi9taW5ndy13NjQtY3J0L21hdGgvbmV4dHRvd2FyZGYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41ZDc2YTU5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL25leHR0b3dhcmRmLmMKQEAgLTAsMCArMSwzOCBAQAorLyoNCisgICBuZXh0dG93YXJkZi5jDQorICAgQ29udHJpYnV0ZWQgYnkgRGFubnkgU21pdGggPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0Pg0KKyAgIE5vIGNvcHlyaWdodCBjbGFpbWVkLCBhYnNvbHV0ZWx5IG5vIHdhcnJhbnRpZXMuDQorDQorICAgMjAwNS0wNS0xMA0KKyovDQorDQorI2luY2x1ZGUgPG1hdGguaD4NCisNCitmbG9hdA0KK25leHR0b3dhcmRmIChmbG9hdCB4LCBsb25nIGRvdWJsZSB5KQ0KK3sNCisgIHVuaW9uDQorICB7DQorICAgIGZsb2F0IGY7DQorICAgIHVuc2lnbmVkIGludCBpOw0KKyAgfSB1Ow0KKw0KKyAgbG9uZyBkb3VibGUgeHggPSB4Ow0KKw0KKyAgaWYgKGlzbmFuICh5KSB8fCBpc25hbiAoeCkpDQorICAgIHJldHVybiB4ICsgeTsNCisgIGlmICh4eCA9PSB5ICkNCisgICAgIC8qIG5leHRhZnRlciAoMC4wLCAtTy4wKSBzaG91bGQgcmV0dXJuIC0wLjAuICAqLw0KKyAgICAgcmV0dXJuIHk7DQorICB1LmYgPSB4OyANCisgIGlmICh4ID09IDAuMEYpDQorICAgIHsNCisgICAgICB1LmkgPSAxOw0KKyAgICAgIHJldHVybiB5ID4gMC4wTCA/IHUuZiA6IC11LmY7DQorICAgIH0NCisgIGlmICgoKHggPiAwLjBGKSBeICh5ID4geHgpKSA9PSAwKQ0KKyAgICB1LmkrKzsNCisgIGVsc2UNCisgICAgdS5pLS07DQorICByZXR1cm4gdS5mOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvcG93Zi5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL3Bvd2YuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YmNiNTY5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL3Bvd2YuYwpAQCAtMCwwICsxLDMgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorZmxvYXQgcG93ZiAoZmxvYXQgeCwgZmxvYXQgeSkNCisgIHtyZXR1cm4gKGZsb2F0KSBwb3cgKHgsIHkpO30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvcG93aS5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL3Bvd2kuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMzQzZGY2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL3Bvd2kuYwpAQCAtMCwwICsxLDEzNyBAQAorI2luY2x1ZGUgImNlcGhlc19tY29uZi5oIg0KKw0KKyNpZm5kZWYgX1NFVF9FUlJOTw0KKyNkZWZpbmUgX1NFVF9FUlJOTyh4KQ0KKyNlbmRpZg0KKw0KK2RvdWJsZSBfX3Bvd2koIHgsIG5uICkNCitkb3VibGUgeDsNCitpbnQgbm47DQorew0KK2ludCBuLCBlLCBzaWduLCBhc2lnbiwgbHg7DQorZG91YmxlIHcsIHksIHM7DQorDQorLyogU2VlIHBvdy5jIGZvciB0aGVzZSB0ZXN0cy4gICovDQoraWYoIHggPT0gMC4wICkNCisJew0KKwlpZiggbm4gPT0gMCApDQorCQlyZXR1cm4oIDEuMCApOw0KKwllbHNlIGlmKCBubiA8IDAgKQ0KKwkgICAgcmV0dXJuKCBJTkZJTklUWSApOw0KKwllbHNlDQorCSAgew0KKwkgICAgaWYoIG5uICYgMSApDQorCSAgICAgIHJldHVybiggeCApOw0KKwkgICAgZWxzZQ0KKwkgICAgICByZXR1cm4oIDAuMCApOw0KKwkgIH0NCisJfQ0KKw0KK2lmKCBubiA9PSAwICkNCisJcmV0dXJuKCAxLjAgKTsNCisNCitpZiggbm4gPT0gLTEgKQ0KKwlyZXR1cm4oIDEuMC94ICk7DQorDQoraWYoIHggPCAwLjAgKQ0KKwl7DQorCWFzaWduID0gLTE7DQorCXggPSAteDsNCisJfQ0KK2Vsc2UNCisJYXNpZ24gPSAwOw0KKw0KKw0KK2lmKCBubiA8IDAgKQ0KKwl7DQorCXNpZ24gPSAtMTsNCisJbiA9IC1ubjsNCisJfQ0KK2Vsc2UNCisJew0KKwlzaWduID0gMTsNCisJbiA9IG5uOw0KKwl9DQorDQorLyogRXZlbiBwb3dlciB3aWxsIGJlIHBvc2l0aXZlLiAqLw0KK2lmKCAobiAmIDEpID09IDAgKQ0KKwlhc2lnbiA9IDA7DQorDQorLyogT3ZlcmZsb3cgZGV0ZWN0aW9uICovDQorDQorLyogQ2FsY3VsYXRlIGFwcHJveGltYXRlIGxvZ2FyaXRobSBvZiBhbnN3ZXIgKi8NCitzID0gZnJleHAoIHgsICZseCApOw0KK2UgPSAobHggLSAxKSpuOw0KK2lmKCAoZSA9PSAwKSB8fCAoZSA+IDY0KSB8fCAoZSA8IC02NCkgKQ0KKwl7DQorCXMgPSAocyAtIDcuMDcxMDY3ODExODY1NDc1MmUtMSkgLyAocyArICA3LjA3MTA2NzgxMTg2NTQ3NTJlLTEpOw0KKwlzID0gKDIuOTE0MjEzNTYyMzczMDk1MCAqIHMgLSAwLjUgKyBseCkgKiBubiAqIExPR0UyOw0KKwl9DQorZWxzZQ0KKwl7DQorCXMgPSBMT0dFMiAqIGU7DQorCX0NCisNCitpZiggcyA+IE1BWExPRyApDQorCXsNCisJbXRoZXJyKCAicG93aSIsIE9WRVJGTE9XICk7DQorCV9TRVRfRVJSTk8oRVJBTkdFKTsNCisJeSA9IElORklOSVRZOw0KKwlnb3RvIGRvbmU7DQorCX0NCisNCisjaWYgREVOT1JNQUwNCitpZiggcyA8IE1JTkxPRyApDQorCXsNCisJeSA9IDAuMDsNCisJZ290byBkb25lOw0KKwl9DQorDQorLyogSGFuZGxlIHRpbnkgZGVub3JtYWwgYW5zd2VyLCBidXQgd2l0aCBsZXNzIGFjY3VyYWN5DQorICogc2luY2Ugcm91bmRvZmYgZXJyb3IgaW4gMS4wL3ggd2lsbCBiZSBhbXBsaWZpZWQuDQorICogVGhlIHByZWNpc2UgZGVtYXJjYXRpb24gc2hvdWxkIGJlIHRoZSBncmFkdWFsIHVuZGVyZmxvdyB0aHJlc2hvbGQuDQorICovDQoraWYoIChzIDwgKC1NQVhMT0crMi4wKSkgJiYgKHNpZ24gPCAwKSApDQorCXsNCisJeCA9IDEuMC94Ow0KKwlzaWduID0gLXNpZ247DQorCX0NCisjZWxzZQ0KKy8qIGRvIG5vdCBwcm9kdWNlIGRlbm9ybWFsIGFuc3dlciAqLw0KK2lmKCBzIDwgLU1BWExPRyApDQorCXJldHVybigwLjApOw0KKyNlbmRpZg0KKw0KKw0KKy8qIEZpcnN0IGJpdCBvZiB0aGUgcG93ZXIgKi8NCitpZiggbiAmIDEgKQ0KKwl5ID0geDsNCisJCQ0KK2Vsc2UNCisJeSA9IDEuMDsNCisNCit3ID0geDsNCituID4+PSAxOw0KK3doaWxlKCBuICkNCisJew0KKwl3ID0gdyAqIHc7CS8qIGFyZyB0byB0aGUgMi10by10aGUta3RoIHBvd2VyICovDQorCWlmKCBuICYgMSApCS8qIGlmIHRoYXQgYml0IGlzIHNldCwgdGhlbiBpbmNsdWRlIGluIHByb2R1Y3QgKi8NCisJCXkgKj0gdzsNCisJbiA+Pj0gMTsNCisJfQ0KKw0KK2lmKCBzaWduIDwgMCApDQorCXkgPSAxLjAveTsNCisNCitkb25lOg0KKw0KK2lmKCBhc2lnbiApDQorCXsNCisJLyogb2RkIHBvd2VyIG9mIG5lZ2F0aXZlIG51bWJlciAqLw0KKwlpZiggeSA9PSAwLjAgKQ0KKwkJeSA9IE5FR1pFUk87DQorCWVsc2UNCisJCXkgPSAteTsNCisJfQ0KK3JldHVybih5KTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL3Bvd2lmLmMgYi9taW5ndy13NjQtY3J0L21hdGgvcG93aWYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNGI0MzhmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL3Bvd2lmLmMKQEAgLTAsMCArMSwxMzUgQEAKKyNpbmNsdWRlICJjZXBoZXNfbWNvbmYuaCINCisNCisjaWZuZGVmIF9TRVRfRVJSTk8NCisjZGVmaW5lIF9TRVRfRVJSTk8oeCkNCisjZW5kaWYNCisNCitmbG9hdCBfX3Bvd2lmKCBmbG9hdCB4LCBpbnQgbm4gKQ0KK3sNCitpbnQgbiwgZSwgc2lnbiwgYXNpZ24sIGx4Ow0KK2Zsb2F0IHcsIHksIHM7DQorDQorLyogU2VlIHBvdy5jIGZvciB0aGVzZSB0ZXN0cy4gICovDQoraWYoIHggPT0gMC4wRiApDQorCXsNCisJaWYoIG5uID09IDAgKQ0KKwkJcmV0dXJuKCAxLjBGICk7DQorCWVsc2UgaWYoIG5uIDwgMCApDQorCSAgICByZXR1cm4oIElORklOSVRZRiApOw0KKwllbHNlDQorCSAgew0KKwkgICAgaWYoIG5uICYgMSApDQorCSAgICAgIHJldHVybiggeCApOw0KKwkgICAgZWxzZQ0KKwkgICAgICByZXR1cm4oIDAuMCApOw0KKwkgIH0NCisJfQ0KKw0KK2lmKCBubiA9PSAwICkNCisJcmV0dXJuKCAxLjAgKTsNCisNCitpZiggbm4gPT0gLTEgKQ0KKwlyZXR1cm4oIDEuMC94ICk7DQorDQoraWYoIHggPCAwLjAgKQ0KKwl7DQorCWFzaWduID0gLTE7DQorCXggPSAteDsNCisJfQ0KK2Vsc2UNCisJYXNpZ24gPSAwOw0KKw0KKw0KK2lmKCBubiA8IDAgKQ0KKwl7DQorCXNpZ24gPSAtMTsNCisJbiA9IC1ubjsNCisJfQ0KK2Vsc2UNCisJew0KKwlzaWduID0gMTsNCisJbiA9IG5uOw0KKwl9DQorDQorLyogRXZlbiBwb3dlciB3aWxsIGJlIHBvc2l0aXZlLiAqLw0KK2lmKCAobiAmIDEpID09IDAgKQ0KKwlhc2lnbiA9IDA7DQorDQorLyogT3ZlcmZsb3cgZGV0ZWN0aW9uICovDQorDQorLyogQ2FsY3VsYXRlIGFwcHJveGltYXRlIGxvZ2FyaXRobSBvZiBhbnN3ZXIgKi8NCitzID0gZnJleHBmKCB4LCAmbHggKTsNCitlID0gKGx4IC0gMSkqbjsNCitpZiggKGUgPT0gMCkgfHwgKGUgPiA2NCkgfHwgKGUgPCAtNjQpICkNCisJew0KKwlzID0gKHMgLSA3LjA3MTA2NzgxMTg2NTQ3NTJlLTEpIC8gKHMgKyAgNy4wNzEwNjc4MTE4NjU0NzUyZS0xKTsNCisJcyA9ICgyLjkxNDIxMzU2MjM3MzA5NTAgKiBzIC0gMC41ICsgbHgpICogbm4gKiBMT0dFMkY7DQorCX0NCitlbHNlDQorCXsNCisJcyA9IExPR0UyRiAqIGU7DQorCX0NCisNCitpZiggcyA+IE1BWExPR0YgKQ0KKwl7DQorCW10aGVyciggIl9fcG93aWYiLCBPVkVSRkxPVyApOw0KKwlfU0VUX0VSUk5PKEVSQU5HRSk7DQorCXkgPSBJTkZJTklUWUY7DQorCWdvdG8gZG9uZTsNCisJfQ0KKw0KKyNpZiBERU5PUk1BTA0KK2lmKCBzIDwgTUlOTE9HRiApDQorCXsNCisJeSA9IDAuMDsNCisJZ290byBkb25lOw0KKwl9DQorDQorLyogSGFuZGxlIHRpbnkgZGVub3JtYWwgYW5zd2VyLCBidXQgd2l0aCBsZXNzIGFjY3VyYWN5DQorICogc2luY2Ugcm91bmRvZmYgZXJyb3IgaW4gMS4wL3ggd2lsbCBiZSBhbXBsaWZpZWQuDQorICogVGhlIHByZWNpc2UgZGVtYXJjYXRpb24gc2hvdWxkIGJlIHRoZSBncmFkdWFsIHVuZGVyZmxvdyB0aHJlc2hvbGQuDQorICovDQoraWYoIChzIDwgKC1NQVhMT0dGKzIuMCkpICYmIChzaWduIDwgMCkgKQ0KKwl7DQorCXggPSAxLjAveDsNCisJc2lnbiA9IC1zaWduOw0KKwl9DQorI2Vsc2UNCisvKiBkbyBub3QgcHJvZHVjZSBkZW5vcm1hbCBhbnN3ZXIgKi8NCitpZiggcyA8IC1NQVhMT0dGICkNCisJcmV0dXJuKDAuMCk7DQorI2VuZGlmDQorDQorDQorLyogRmlyc3QgYml0IG9mIHRoZSBwb3dlciAqLw0KK2lmKCBuICYgMSApDQorCXkgPSB4Ow0KKwkJDQorZWxzZQ0KKwl5ID0gMS4wOw0KKw0KK3cgPSB4Ow0KK24gPj49IDE7DQord2hpbGUoIG4gKQ0KKwl7DQorCXcgPSB3ICogdzsJLyogYXJnIHRvIHRoZSAyLXRvLXRoZS1rdGggcG93ZXIgKi8NCisJaWYoIG4gJiAxICkJLyogaWYgdGhhdCBiaXQgaXMgc2V0LCB0aGVuIGluY2x1ZGUgaW4gcHJvZHVjdCAqLw0KKwkJeSAqPSB3Ow0KKwluID4+PSAxOw0KKwl9DQorDQoraWYoIHNpZ24gPCAwICkNCisJeSA9IDEuMC95Ow0KKw0KK2RvbmU6DQorDQoraWYoIGFzaWduICkNCisJew0KKwkvKiBvZGQgcG93ZXIgb2YgbmVnYXRpdmUgbnVtYmVyICovDQorCWlmKCB5ID09IDAuMCApDQorCQl5ID0gTkVHWkVST0Y7DQorCWVsc2UNCisJCXkgPSAteTsNCisJfQ0KK3JldHVybih5KTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL3Bvd2lsLmMgYi9taW5ndy13NjQtY3J0L21hdGgvcG93aWwuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZmY5OWMwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL3Bvd2lsLmMKQEAgLTAsMCArMSwxMTcgQEAKKyNpbmNsdWRlICJjZXBoZXNfbWNvbmYuaCINCisNCisjaWZuZGVmIF9TRVRfRVJSTk8NCisjZGVmaW5lIF9TRVRfRVJSTk8oeCkNCisjZW5kaWYNCisNCitsb25nIGRvdWJsZSBfX3Bvd2lsKCB4LCBubiApDQorbG9uZyBkb3VibGUgeDsNCitpbnQgbm47DQorew0KK2xvbmcgZG91YmxlIHcsIHk7DQorbG9uZyBkb3VibGUgczsNCitpbnQgbiwgZSwgc2lnbiwgYXNpZ24sIGx4Ow0KKw0KK2lmKCB4ID09IDAuMEwgKQ0KKwl7DQorCWlmKCBubiA9PSAwICkNCisJCXJldHVybiggMS4wTCApOw0KKwllbHNlIGlmKCBubiA8IDAgKQ0KKwkJcmV0dXJuKCBJTkZJTklUWUwgKTsNCisJZWxzZQ0KKwkJcmV0dXJuKCAwLjBMICk7DQorCX0NCisNCitpZiggbm4gPT0gMCApDQorCXJldHVybiggMS4wTCApOw0KKw0KKw0KK2lmKCB4IDwgMC4wTCApDQorCXsNCisJYXNpZ24gPSAtMTsNCisJeCA9IC14Ow0KKwl9DQorZWxzZQ0KKwlhc2lnbiA9IDA7DQorDQorDQoraWYoIG5uIDwgMCApDQorCXsNCisJc2lnbiA9IC0xOw0KKwluID0gLW5uOw0KKwl9DQorZWxzZQ0KKwl7DQorCXNpZ24gPSAxOw0KKwluID0gbm47DQorCX0NCisNCisvKiBPdmVyZmxvdyBkZXRlY3Rpb24gKi8NCisNCisvKiBDYWxjdWxhdGUgYXBwcm94aW1hdGUgbG9nYXJpdGhtIG9mIGFuc3dlciAqLw0KK3MgPSB4Ow0KK3MgPSBmcmV4cGwoIHMsICZseCApOw0KK2UgPSAobHggLSAxKSpuOw0KK2lmKCAoZSA9PSAwKSB8fCAoZSA+IDY0KSB8fCAoZSA8IC02NCkgKQ0KKwl7DQorCXMgPSAocyAtIDcuMDcxMDY3ODExODY1NDc1MmUtMUwpIC8gKHMgKyAgNy4wNzEwNjc4MTE4NjU0NzUyZS0xTCk7DQorCXMgPSAoMi45MTQyMTM1NjIzNzMwOTUwTCAqIHMgLSAwLjVMICsgbHgpICogbm4gKiBMT0dFMkw7DQorCX0NCitlbHNlDQorCXsNCisJcyA9IExPR0UyTCAqIGU7DQorCX0NCisNCitpZiggcyA+IE1BWExPR0wgKQ0KKwl7DQorCW10aGVyciggIl9fcG93aWwiLCBPVkVSRkxPVyApOw0KKwlfU0VUX0VSUk5PKEVSQU5HRSk7DQorCXkgPSBJTkZJTklUWUw7DQorCWdvdG8gZG9uZTsNCisJfQ0KKw0KK2lmKCBzIDwgTUlOTE9HTCApDQorCXsNCisJbXRoZXJyKCAiX19wb3dpbCIsIFVOREVSRkxPVyApOw0KKwlfU0VUX0VSUk5PKEVSQU5HRSk7DQorCXJldHVybigwLjBMKTsNCisJfQ0KKy8qIEhhbmRsZSB0aW55IGRlbm9ybWFsIGFuc3dlciwgYnV0IHdpdGggbGVzcyBhY2N1cmFjeQ0KKyAqIHNpbmNlIHJvdW5kb2ZmIGVycm9yIGluIDEuMC94IHdpbGwgYmUgYW1wbGlmaWVkLg0KKyAqIFRoZSBwcmVjaXNlIGRlbWFyY2F0aW9uIHNob3VsZCBiZSB0aGUgZ3JhZHVhbCB1bmRlcmZsb3cgdGhyZXNob2xkLg0KKyAqLw0KK2lmKCBzIDwgKC1NQVhMT0dMKzIuMEwpICkNCisJew0KKwl4ID0gMS4wTC94Ow0KKwlzaWduID0gLXNpZ247DQorCX0NCisNCisvKiBGaXJzdCBiaXQgb2YgdGhlIHBvd2VyICovDQoraWYoIG4gJiAxICkNCisJeSA9IHg7DQorCQkNCitlbHNlDQorCXsNCisJeSA9IDEuMEw7DQorCWFzaWduID0gMDsNCisJfQ0KKw0KK3cgPSB4Ow0KK24gPj49IDE7DQord2hpbGUoIG4gKQ0KKwl7DQorCXcgPSB3ICogdzsJLyogYXJnIHRvIHRoZSAyLXRvLXRoZS1rdGggcG93ZXIgKi8NCisJaWYoIG4gJiAxICkJLyogaWYgdGhhdCBiaXQgaXMgc2V0LCB0aGVuIGluY2x1ZGUgaW4gcHJvZHVjdCAqLw0KKwkJeSAqPSB3Ow0KKwluID4+PSAxOw0KKwl9DQorDQorDQorZG9uZToNCisNCitpZiggYXNpZ24gKQ0KKwl5ID0gLXk7IC8qIG9kZCBwb3dlciBvZiBuZWdhdGl2ZSBudW1iZXIgKi8NCitpZiggc2lnbiA8IDAgKQ0KKwl5ID0gMS4wTC95Ow0KK3JldHVybih5KTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL3Bvd2wuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9wb3dsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTI0NzAwYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9wb3dsLmMKQEAgLTAsMCArMSw2ODcgQEAKKyNpbmNsdWRlICJjZXBoZXNfbWNvbmYuaCINCisjaWZuZGVmIF9TRVRfRVJSTk8NCisjZGVmaW5lIF9TRVRfRVJSTk8oeCkNCisjZW5kaWYNCisNCisNCisvKiBUYWJsZSBzaXplICovDQorI2RlZmluZSBOWFQgMzINCisvKiBsb2cyKFRhYmxlIHNpemUpICovDQorI2RlZmluZSBMTlhUIDUNCisNCisjaWZkZWYgVU5LDQorLyogbG9nKDEreCkgPSAgeCAtIC41eF4yICsgeF4zICogIFAoeikvUSh6KQ0KKyAqIG9uIHRoZSBkb21haW4gIDJeKC0xLzMyKSAtIDEgIDw9ICB4ICA8PSAgMl4oMS8zMikgLSAxDQorICovDQorc3RhdGljIGxvbmcgZG91YmxlIFBbXSA9IHsNCisgOC4zMzE5NTEwNzczODY4NjkwMzQ2MjI2RS00TCwNCisgNC45MDAwMDUwODgxOTc4MDI4NTk5NjI3RS0xTCwNCisgMS43NTAwMTIzNzIyNTUwMzAyNjcxOTE5RTBMLA0KKyAxLjQwMDAxMDA4Mzk5NzE1ODAyNzkzMzVFMEwsDQorfTsNCitzdGF0aWMgbG9uZyBkb3VibGUgUVtdID0gew0KKy8qIDEuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUwTCwqLw0KKyA1LjI1MDAyODIyOTU4MzQ4ODkxNzU0MzFFMEwsDQorIDguNDAwMDU5ODA1NzU4NzAwOTgzNDY2NkUwTCwNCisgNC4yMDAwMzAyNTE5OTE0NzQwODM0NzI4RTBMLA0KK307DQorLyogQVtpXSA9IDJeKC1pLzMyKSwgcm91bmRlZCB0byBJRUVFIGxvbmcgZG91YmxlIHByZWNpc2lvbi4NCisgKiBJZiBpIGlzIGV2ZW4sIEFbaV0gKyBCW2kvMl0gZ2l2ZXMgYWRkaXRpb25hbCBhY2N1cmFjeS4NCisgKi8NCitzdGF0aWMgbG9uZyBkb3VibGUgQVszM10gPSB7DQorIDEuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUwTCwNCisgOS43ODU3MjA2MjA4NzcwMDEzNDQ4Mjg3RS0xTCwNCisgOS41NzYwMzI4MDY5ODU3MzY0NjkxMDEzRS0xTCwNCisgOS4zNzA4MzgxNzA1NTE0OTk1MDY1MDExRS0xTCwNCisgOS4xNzAwNDA0MzIwNDY3MTIzMTc1MzY3RS0xTCwNCisgOC45NzM1NDUzNzUwMTU1MzU5MzIwNzQyRS0xTCwNCisgOC43ODEyNjA4MDE4NjY0OTc0MTU1NDc0RS0xTCwNCisgOC41OTMwOTY0OTA2MTIzODk1NzgwMTY1RS0xTCwNCisgOC40MDg5NjQxNTI1MzcxNDU0MzAxODkyRS0xTCwNCisgOC4yMjg3NzczOTA3Njk4MjQyMjI1NTU0RS0xTCwNCisgOC4wNTI0NTE2NTk3NDYyNzE1NDA5NjA3RS0xTCwNCisgNy44Nzk5MDQyMjU1Mzk0MzI0MzI1NDU1RS0xTCwNCisgNy43MTEwNTQxMjcwMzk3MDQxMTc5Mjk4RS0xTCwNCisgNy41NDU4MjIxMzc5NjcxMTM2OTg1NjY5RS0xTCwNCisgNy4zODQxMzA3Mjk2OTc0OTY1NTcxMTk4RS0xTCwNCisgNy4yMjU5MDQwMzQ4ODUyMzMxMDAxMjY3RS0xTCwNCisgNy4wNzEwNjc4MTE4NjU0NzUyNDM4MTg5RS0xTCwNCisgNi45MTk1NDk0MDk4MTkxNTk3NzQ2MTc4RS0xTCwNCisgNi43NzEyNzc3MzQ2ODQ0NjM2NDEzMzQ0RS0xTCwNCisgNi42MjYxODMyMTU3OTg3MDY0NzI5Njk2RS0xTCwNCisgNi40ODQxOTc3NzMyNTUwNDgzMjk2MDc5RS0xTCwNCisgNi4zNDUyNTQ3ODU5NTg2NjYxMTI5ODUwRS0xTCwNCisgNi4yMDkyODkwNjAzNjc0MjAyNDMxNzA1RS0xTCwNCisgNi4wNzYyMzY3OTk5MDIzNDQzOTA3ODAzRS0xTCwNCisgNS45NDYwMzU1NzUwMTM2MDUzMzM0Mzc4RS0xTCwNCisgNS44MTg2MjQyOTM4ODc4ODc1Njg5NjkzRS0xTCwNCisgNS42OTM5NDMxNzM3ODM0NTgyNjg0ODU2RS0xTCwNCisgNS41NzE5MzM3MTI5Nzk0NjI2ODE0NDcyRS0xTCwNCisgNS40NTI1Mzg2NjMzMjYyODgyOTYwNDM4RS0xTCwNCisgNS4zMzU3MDIwMDMzODQxMTgwOTA2NDg2RS0xTCwNCisgNS4yMjEzNjg5MTIxMzcwNjkyMDE3MzMxRS0xTCwNCisgNS4xMDk0ODU3NDMyNzA1ODMzOTEwNDA4RS0xTCwNCisgNS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwRS0xTCwNCit9Ow0KK3N0YXRpYyBsb25nIGRvdWJsZSBCWzE3XSA9IHsNCisgMC4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTBMLA0KKyAyLjYxNzYxNzA4MDk5MDI1NDkzMzg3MTFFLTIwTCwNCistMS4wMTI2NzkxOTI3MjU2NDc4ODk3MDg2RS0yMEwsDQorIDEuMzQzODIyODE3MjMxNjI3NjkzNzY1NUUtMjFMLA0KKyAxLjIyMDc5ODI5NTU0MTc1NDY5MTIxMDFFLTIwTCwNCistNi4zMDg0ODE0MzU4MDYwODY3MjAwMTMzRS0yMUwsDQorIDEuMzE2NDQyNjg5NDM2NjMxNjQzNDIzMEUtMjBMLA0KKy0xLjg1Mjc5MTYwNzE2MzI4NzM3MTY3ODZFLTIwTCwNCisgMS44OTUwMzI1NTg4OTMyNTcwNzk2NTUxRS0yMEwsDQorIDEuNTU2NDc3NTc3OTUzODc4MDQ3ODE1NUUtMjBMLA0KKyA2LjA4NTk3OTM2Mzc1NTY4NjA5NzQzODBFLTIxTCwNCistMi4wMjA4NzQ5MjUzNjYyNTMyMjI4OTQ5RS0yMEwsDQorIDEuNDk2NjI5MjIxOTIyNDc2MTg0NDU1MkUtMjBMLA0KKyAzLjM1NDA5MDk3MjgwNTY0NzY4NzU2MzlFLTIxTCwNCistOC42OTg3NTY0MTAxNzQyODQ5NTQwNzQzRS0yMkwsDQorLTEuMjMyNzE3Njg2MzMyNzYyNjEzNTU0MkUtMjBMLA0KKyAwLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMEwsDQorfTsNCisNCisvKiAyXnggPSAxICsgeCBQKHgpLA0KKyAqIG9uIHRoZSBpbnRlcnZhbCAtMS8zMiA8PSB4IDw9IDANCisgKi8NCitzdGF0aWMgbG9uZyBkb3VibGUgUltdID0gew0KKyAxLjUwODk5NzA1NzkxMjc2NTk5MDExNTdFLTVMLA0KKyAxLjU0MDI3MTUzMjg5MjcwMTMwNzYxMjVFLTRMLA0KKyAxLjMzMzM1NTYwMjg5MTU2NzEwOTEzOTBFLTNMLA0KKyA5LjYxODEyOTEwNDYwMzY3NjIwMzE3ODZFLTNMLA0KKyA1LjU1MDQxMDg2NjQ3OTg0NjMwNDQwMTVFLTJMLA0KKyAyLjQwMjI2NTA2OTU5MTAwNjI4NTQzNTJFLTFMLA0KKyA2LjkzMTQ3MTgwNTU5OTQ1MzA5MzE0NDdFLTFMLA0KK307DQorDQorI2RlZmluZSBkb3ViYShrKSBBW2tdDQorI2RlZmluZSBkb3ViYihrKSBCW2tdDQorI2RlZmluZSBNRVhQIChOWFQqMTYzODQuMEwpDQorLyogVGhlIGZvbGxvd2luZyBpZiBkZW5vcm1hbCBudW1iZXJzIGFyZSBzdXBwb3J0ZWQsIGVsc2UgLU1FWFA6ICovDQorI2lmZGVmIERFTk9STUFMDQorI2RlZmluZSBNTkVYUCAoLU5YVCooMTYzODQuMEwrNjQuMEwpKQ0KKyNlbHNlDQorI2RlZmluZSBNTkVYUCAoLU5YVCoxNjM4NC4wTCkNCisjZW5kaWYNCisvKiBsb2cyKGUpIC0gMSAqLw0KKyNkZWZpbmUgTE9HMkVBIDAuNDQyNjk1MDQwODg4OTYzNDA3MzU5OTJMDQorI2VuZGlmDQorDQorDQorI2lmZGVmIElCTVBDDQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFBbXSA9IHsNCisweGI4MDQsMHhhOGI3LDB4YzZmNCwweGRhNmEsMHgzZmY0LCBYUEQNCisweDdkZTksMHhjZjAyLDB4NThjMCwweGZhZTEsMHgzZmZkLCBYUEQNCisweDQwNWEsMHgzNzIyLDB4NjdjOSwweGUwMDAsMHgzZmZmLCBYUEQNCisweGNkOTksMHg2YjQzLDB4ODdjYSwweGIzMzMsMHgzZmZmLCBYUEQNCit9Ow0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBRW10gPSB7DQorLyogMHgwMDAwLDB4MDAwMCwweDAwMDAsMHg4MDAwLDB4M2ZmZiwgKi8NCisweDYzMDcsMHhhNDY5LDB4M2IzMywweGE4MDAsMHg0MDAxLCBYUEQNCisweGZlYzIsMHg2MmQ3LDB4YTUxYywweDg2NjYsMHg0MDAyLCBYUEQNCisweGRhMzIsMHhkMDcyLDB4YTVkNywweDg2NjYsMHg0MDAxLCBYUEQNCit9Ow0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBBW10gPSB7DQorMHgwMDAwLDB4MDAwMCwweDAwMDAsMHg4MDAwLDB4M2ZmZiwgWFBEDQorMHgwMzNhLDB4NzIyYSwweGIyZGIsMHhmYTgzLDB4M2ZmZSwgWFBEDQorMHhjYzJjLDB4MjQ4NiwweDdkMTUsMHhmNTI1LDB4M2ZmZSwgWFBEDQorMHhmNWNiLDB4ZGNkYSwweGI5OWIsMHhlZmU0LDB4M2ZmZSwgWFBEDQorMHgzOTJmLDB4ZGQyNCwweGM2ZTcsMHhlYWMwLDB4M2ZmZSwgWFBEDQorMHg0OGE4LDB4N2M4MywweDA2ZTcsMHhlNWI5LDB4M2ZmZSwgWFBEDQorMHhlMTExLDB4MmE5NCwweGRlZWMsMHhlMGNjLDB4M2ZmZSwgWFBEDQorMHgzNzU1LDB4ZGFmMiwweGI3OTcsMHhkYmZiLDB4M2ZmZSwgWFBEDQorMHg2YWY0LDB4ZDY5ZCwweGZjY2EsMHhkNzQ0LDB4M2ZmZSwgWFBEDQorMHhlNDVhLDB4ZjEyYSwweDFkOTEsMHhkMmE4LDB4M2ZmZSwgWFBEDQorMHg4MGU0LDB4MWY4NCwweDhjMTUsMHhjZTI0LDB4M2ZmZSwgWFBEDQorMHgyN2EzLDB4NmUyZiwweGJkODYsMHhjOWI5LDB4M2ZmZSwgWFBEDQorMHhkYWRkLDB4NTUwNiwweDJhMTEsMHhjNTY3LDB4M2ZmZSwgWFBEDQorMHg5NDU2LDB4NjY3MCwweDRjY2EsMHhjMTJjLDB4M2ZmZSwgWFBEDQorMHgzNmJmLDB4NTgwYywweGEzOWYsMHhiZDA4LDB4M2ZmZSwgWFBEDQorMHg5ZWU5LDB4NjJmYiwweGFmNDcsMHhiOGZiLDB4M2ZmZSwgWFBEDQorMHg2NDg0LDB4ZjlkZSwweGYzMzMsMHhiNTA0LDB4M2ZmZSwgWFBEDQorMHgyNTkwLDB4ZDJhYywweGY1ODEsMHhiMTIzLDB4M2ZmZSwgWFBEDQorMHg0YWM2LDB4NDJhMSwweDNlZWEsMHhhZDU4LDB4M2ZmZSwgWFBEDQorMHgwZWY4LDB4ZWE3YywweDVhYjQsMHhhOWExLDB4M2ZmZSwgWFBEDQorMHgzOGVhLDB4YjE1MSwweGQ2YTksMHhhNWZlLDB4M2ZmZSwgWFBEDQorMHg2ODE5LDB4MGM0OSwweDQzMDMsMHhhMjcwLDB4M2ZmZSwgWFBEDQorMHgxMWFlLDB4OTFhMSwweDMyNjAsMHg5ZWY1LDB4M2ZmZSwgWFBEDQorMHg1NTM5LDB4ZDU0ZSwweDM5YjksMHg5YjhkLDB4M2ZmZSwgWFBEDQorMHhhOTZmLDB4OGRiOCwweGYwNTEsMHg5ODM3LDB4M2ZmZSwgWFBEDQorMHgwOTYxLDB4ZmVmNywweGVmYTgsMHg5NGY0LDB4M2ZmZSwgWFBEDQorMHhjMzM2LDB4YWIxMSwweGQzNzMsMHg5MWMzLDB4M2ZmZSwgWFBEDQorMHg1M2MwLDB4NDVjZCwweDM5OGIsMHg4ZWE0LDB4M2ZmZSwgWFBEDQorMHhkNmU3LDB4ZWE4YiwweGMxZTMsMHg4Yjk1LDB4M2ZmZSwgWFBEDQorMHg4NTI3LDB4OTJkYSwweDBlODAsMHg4ODk4LDB4M2ZmZSwgWFBEDQorMHg3YjE1LDB4Y2M0OCwweGMzNjcsMHg4NWFhLDB4M2ZmZSwgWFBEDQorMHhhMWQ3LDB4YWMyYiwweDg2OTgsMHg4MmNkLDB4M2ZmZSwgWFBEDQorMHgwMDAwLDB4MDAwMCwweDAwMDAsMHg4MDAwLDB4M2ZmZSwgWFBEDQorfTsNCitzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgQltdID0gew0KKzB4MDAwMCwweDAwMDAsMHgwMDAwLDB4MDAwMCwweDAwMDAsIFhQRA0KKzB4MWY4NywweGRiMzAsMHgxOGY1LDB4ZjczYSwweDNmYmQsIFhQRA0KKzB4YWMxNSwweDNlNDYsMHgyOTMyLDB4YmY0YSwweGJmYmMsIFhQRA0KKzB4Nzk0NCwweGJhNjYsMHhhMDkxLDB4Y2IxMiwweDNmYjksIFhQRA0KKzB4ZmY3OCwweDQwYjQsMHgyZWU2LDB4ZTY5YSwweDNmYmMsIFhQRA0KKzB4Yzg5NSwweDUwNjksMHhlMzgzLDB4ZWU1MywweGJmYmIsIFhQRA0KKzB4N2NkZSwweDkzNzYsMHg0MzI1LDB4ZjhhYiwweDNmYmMsIFhQRA0KKzB4YTEwYywweDI1ZTAsMHhjMDkzLDB4YWVmZCwweGJmYmQsIFhQRA0KKzB4N2QzZSwweGVhOTUsMHgxMzY2LDB4YjJmYiwweDNmYmQsIFhQRA0KKzB4NWQ4OSwweGViMzQsMHg1MTkxLDB4OTMwMSwweDNmYmQsIFhQRA0KKzB4ODBkOSwweGI4ODMsMHhmYjEwLDB4ZTVlYiwweDNmYmIsIFhQRA0KKzB4MDQ1ZCwweDI4OGMsMHhjMWVjLDB4YmVkZCwweGJmYmQsIFhQRA0KKzB4ZWRlZCwweDVjODUsMHg0NjMwLDB4OGQ1YSwweDNmYmQsIFhQRA0KKzB4OWQ4MiwweGU1YWMsMHg4ZTBhLDB4ZmQ2ZCwweDNmYmEsIFhQRA0KKzB4NmRmZCwweGViNTgsMHhhZjE0LDB4ODM3MywweGJmYjksIFhQRA0KKzB4ZjkzOCwweDdhYWMsMHg5MWNmLDB4ZThkYSwweGJmYmMsIFhQRA0KKzB4MDAwMCwweDAwMDAsMHgwMDAwLDB4MDAwMCwweDAwMDAsIFhQRA0KK307DQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFJbXSA9IHsNCisweGE2OWIsMHg1MzBlLDB4ZWUxZCwweGZkMmEsMHgzZmVlLCBYUEQNCisweGM3NDYsMHg4ZTdlLDB4NTk2MCwweGExODIsMHgzZmYyLCBYUEQNCisweDYzYjYsMHhhZGRhLDB4ZmQ2YSwweGFlYzMsMHgzZmY1LCBYUEQNCisweGMxMDQsMHhmZDk5LDB4NWI3YywweDlkOTUsMHgzZmY4LCBYUEQNCisweGUwNWUsMHgyNDlkLDB4NDZiOCwweGUzNTgsMHgzZmZhLCBYUEQNCisweDVkMWQsMHgxNjJjLDB4ZWZmYywweGY1ZmQsMHgzZmZjLCBYUEQNCisweDc5YWEsMHhkMWNmLDB4MTdmNywweGIxNzIsMHgzZmZlLCBYUEQNCit9Ow0KKw0KKy8qIDEwIGJ5dGUgc2l6ZXMgdmVyc3VzIDEyIGJ5dGUgKi8NCisjZGVmaW5lIGRvdWJhKGspICgqKGxvbmcgZG91YmxlICopKCZBWyhzaXplb2YoIGxvbmcgZG91YmxlICkvMikqKGspXSkpDQorI2RlZmluZSBkb3ViYihrKSAoKihsb25nIGRvdWJsZSAqKSgmQlsoc2l6ZW9mKCBsb25nIGRvdWJsZSApLzIpKihrKV0pKQ0KKyNkZWZpbmUgTUVYUCAoTlhUKjE2Mzg0LjBMKQ0KKyNpZmRlZiBERU5PUk1BTA0KKyNkZWZpbmUgTU5FWFAgKC1OWFQqKDE2Mzg0LjBMKzY0LjBMKSkNCisjZWxzZQ0KKyNkZWZpbmUgTU5FWFAgKC1OWFQqMTYzODQuMEwpDQorI2VuZGlmDQorc3RhdGljIGNvbnN0DQordW5pb24NCit7DQorICB1bnNpZ25lZCBzaG9ydCBMWzZdOw0KKyAgbG9uZyBkb3VibGUgbGQ7DQorfSBsb2cyZWEgPSB7ezB4YzJlZiwweDcwNWYsMHhlY2E1LDB4ZTJhOCwweDNmZmQsIFhQRH19Ow0KKw0KKyNkZWZpbmUgTE9HMkVBIChsb2cyZWEubGQpDQorLyoNCisjZGVmaW5lIExPRzJFQSAwLjQ0MjY5NTA0MDg4ODk2MzQwNzM1OTkyTA0KKyovDQorI2VuZGlmDQorDQorI2lmZGVmIE1JRUVFDQorc3RhdGljIGxvbmcgUFtdID0gew0KKzB4M2ZmNDAwMDAsMHhkYTZhYzZmNCwweGE4YjdiODA0LA0KKzB4M2ZmZDAwMDAsMHhmYWUxNThjMCwweGNmMDI3ZGU5LA0KKzB4M2ZmZjAwMDAsMHhlMDAwNjdjOSwweDM3MjI0MDVhLA0KKzB4M2ZmZjAwMDAsMHhiMzMzODdjYSwweDZiNDNjZDk5LA0KK307DQorc3RhdGljIGxvbmcgUVtdID0gew0KKy8qIDB4M2ZmZjAwMDAsMHg4MDAwMDAwMCwweDAwMDAwMDAwLCAqLw0KKzB4NDAwMTAwMDAsMHhhODAwM2IzMywweGE0Njk2MzA3LA0KKzB4NDAwMjAwMDAsMHg4NjY2YTUxYywweDYyZDdmZWMyLA0KKzB4NDAwMTAwMDAsMHg4NjY2YTVkNywweGQwNzJkYTMyLA0KK307DQorc3RhdGljIGxvbmcgQVtdID0gew0KKzB4M2ZmZjAwMDAsMHg4MDAwMDAwMCwweDAwMDAwMDAwLA0KKzB4M2ZmZTAwMDAsMHhmYTgzYjJkYiwweDcyMmEwMzNhLA0KKzB4M2ZmZTAwMDAsMHhmNTI1N2QxNSwweDI0ODZjYzJjLA0KKzB4M2ZmZTAwMDAsMHhlZmU0Yjk5YiwweGRjZGFmNWNiLA0KKzB4M2ZmZTAwMDAsMHhlYWMwYzZlNywweGRkMjQzOTJmLA0KKzB4M2ZmZTAwMDAsMHhlNWI5MDZlNywweDdjODM0OGE4LA0KKzB4M2ZmZTAwMDAsMHhlMGNjZGVlYywweDJhOTRlMTExLA0KKzB4M2ZmZTAwMDAsMHhkYmZiYjc5NywweGRhZjIzNzU1LA0KKzB4M2ZmZTAwMDAsMHhkNzQ0ZmNjYSwweGQ2OWQ2YWY0LA0KKzB4M2ZmZTAwMDAsMHhkMmE4MWQ5MSwweGYxMmFlNDVhLA0KKzB4M2ZmZTAwMDAsMHhjZTI0OGMxNSwweDFmODQ4MGU0LA0KKzB4M2ZmZTAwMDAsMHhjOWI5YmQ4NiwweDZlMmYyN2EzLA0KKzB4M2ZmZTAwMDAsMHhjNTY3MmExMSwweDU1MDZkYWRkLA0KKzB4M2ZmZTAwMDAsMHhjMTJjNGNjYSwweDY2NzA5NDU2LA0KKzB4M2ZmZTAwMDAsMHhiZDA4YTM5ZiwweDU4MGMzNmJmLA0KKzB4M2ZmZTAwMDAsMHhiOGZiYWY0NywweDYyZmI5ZWU5LA0KKzB4M2ZmZTAwMDAsMHhiNTA0ZjMzMywweGY5ZGU2NDg0LA0KKzB4M2ZmZTAwMDAsMHhiMTIzZjU4MSwweGQyYWMyNTkwLA0KKzB4M2ZmZTAwMDAsMHhhZDU4M2VlYSwweDQyYTE0YWM2LA0KKzB4M2ZmZTAwMDAsMHhhOWExNWFiNCwweGVhN2MwZWY4LA0KKzB4M2ZmZTAwMDAsMHhhNWZlZDZhOSwweGIxNTEzOGVhLA0KKzB4M2ZmZTAwMDAsMHhhMjcwNDMwMywweDBjNDk2ODE5LA0KKzB4M2ZmZTAwMDAsMHg5ZWY1MzI2MCwweDkxYTExMWFlLA0KKzB4M2ZmZTAwMDAsMHg5YjhkMzliOSwweGQ1NGU1NTM5LA0KKzB4M2ZmZTAwMDAsMHg5ODM3ZjA1MSwweDhkYjhhOTZmLA0KKzB4M2ZmZTAwMDAsMHg5NGY0ZWZhOCwweGZlZjcwOTYxLA0KKzB4M2ZmZTAwMDAsMHg5MWMzZDM3MywweGFiMTFjMzM2LA0KKzB4M2ZmZTAwMDAsMHg4ZWE0Mzk4YiwweDQ1Y2Q1M2MwLA0KKzB4M2ZmZTAwMDAsMHg4Yjk1YzFlMywweGVhOGJkNmU3LA0KKzB4M2ZmZTAwMDAsMHg4ODk4MGU4MCwweDkyZGE4NTI3LA0KKzB4M2ZmZTAwMDAsMHg4NWFhYzM2NywweGNjNDg3YjE1LA0KKzB4M2ZmZTAwMDAsMHg4MmNkODY5OCwweGFjMmJhMWQ3LA0KKzB4M2ZmZTAwMDAsMHg4MDAwMDAwMCwweDAwMDAwMDAwLA0KK307DQorc3RhdGljIGxvbmcgQls1MV0gPSB7DQorMHgwMDAwMDAwMCwweDAwMDAwMDAwLDB4MDAwMDAwMDAsDQorMHgzZmJkMDAwMCwweGY3M2ExOGY1LDB4ZGIzMDFmODcsDQorMHhiZmJjMDAwMCwweGJmNGEyOTMyLDB4M2U0NmFjMTUsDQorMHgzZmI5MDAwMCwweGNiMTJhMDkxLDB4YmE2Njc5NDQsDQorMHgzZmJjMDAwMCwweGU2OWEyZWU2LDB4NDBiNGZmNzgsDQorMHhiZmJiMDAwMCwweGVlNTNlMzgzLDB4NTA2OWM4OTUsDQorMHgzZmJjMDAwMCwweGY4YWI0MzI1LDB4OTM3NjdjZGUsDQorMHhiZmJkMDAwMCwweGFlZmRjMDkzLDB4MjVlMGExMGMsDQorMHgzZmJkMDAwMCwweGIyZmIxMzY2LDB4ZWE5NTdkM2UsDQorMHgzZmJkMDAwMCwweDkzMDE1MTkxLDB4ZWIzNDVkODksDQorMHgzZmJiMDAwMCwweGU1ZWJmYjEwLDB4Yjg4MzgwZDksDQorMHhiZmJkMDAwMCwweGJlZGRjMWVjLDB4Mjg4YzA0NWQsDQorMHgzZmJkMDAwMCwweDhkNWE0NjMwLDB4NWM4NWVkZWQsDQorMHgzZmJhMDAwMCwweGZkNmQ4ZTBhLDB4ZTVhYzlkODIsDQorMHhiZmI5MDAwMCwweDgzNzNhZjE0LDB4ZWI1ODZkZmQsDQorMHhiZmJjMDAwMCwweGU4ZGE5MWNmLDB4N2FhY2Y5MzgsDQorMHgwMDAwMDAwMCwweDAwMDAwMDAwLDB4MDAwMDAwMDAsDQorfTsNCitzdGF0aWMgbG9uZyBSW10gPSB7DQorMHgzZmVlMDAwMCwweGZkMmFlZTFkLDB4NTMwZWE2OWIsDQorMHgzZmYyMDAwMCwweGExODI1OTYwLDB4OGU3ZWM3NDYsDQorMHgzZmY1MDAwMCwweGFlYzNmZDZhLDB4YWRkYTYzYjYsDQorMHgzZmY4MDAwMCwweDlkOTU1YjdjLDB4ZmQ5OWMxMDQsDQorMHgzZmZhMDAwMCwweGUzNTg0NmI4LDB4MjQ5ZGUwNWUsDQorMHgzZmZjMDAwMCwweGY1ZmRlZmZjLDB4MTYyYzVkMWQsDQorMHgzZmZlMDAwMCwweGIxNzIxN2Y3LDB4ZDFjZjc5YWEsDQorfTsNCisNCisjZGVmaW5lIGRvdWJhKGspICgqKGxvbmcgZG91YmxlICopJkFbMyooayldKQ0KKyNkZWZpbmUgZG91YmIoaykgKCoobG9uZyBkb3VibGUgKikmQlszKihrKV0pDQorI2RlZmluZSBNRVhQIChOWFQqMTYzODQuMEwpDQorI2lmZGVmIERFTk9STUFMDQorI2RlZmluZSBNTkVYUCAoLU5YVCooMTYzODQuMEwrNjQuMEwpKQ0KKyNlbHNlDQorI2RlZmluZSBNTkVYUCAoLU5YVCoxNjM4Mi4wTCkNCisjZW5kaWYNCitzdGF0aWMgbG9uZyBMWzNdID0gezB4M2ZmZDAwMDAsMHhlMmE4ZWNhNSwweDcwNWZjMmVmfTsNCisjZGVmaW5lIExPRzJFQSAoKihsb25nIGRvdWJsZSAqKSgmTFswXSkpDQorI2VuZGlmDQorDQorDQorI2RlZmluZSBGIFcNCisjZGVmaW5lIEZhIFdhDQorI2RlZmluZSBGYiBXYg0KKyNkZWZpbmUgRyBXDQorI2RlZmluZSBHYSBXYQ0KKyNkZWZpbmUgR2IgdQ0KKyNkZWZpbmUgSCBXDQorI2RlZmluZSBIYSBXYg0KKyNkZWZpbmUgSGIgV2INCisNCitzdGF0aWMgVk9MQVRJTEUgbG9uZyBkb3VibGUgejsNCitzdGF0aWMgbG9uZyBkb3VibGUgdywgVywgV2EsIFdiLCB5YSwgeWIsIHU7DQorDQorc3RhdGljIF9faW5saW5lX18gbG9uZyBkb3VibGUgcmVkdWNsKCBsb25nIGRvdWJsZSApOw0KK2V4dGVybiBsb25nIGRvdWJsZSBfX3Bvd2lsICggbG9uZyBkb3VibGUsIGludCApOw0KK2V4dGVybiBsb25nIGRvdWJsZSBwb3dsICggbG9uZyBkb3VibGUgeCwgbG9uZyBkb3VibGUgeSk7DQorDQorLyogTm8gZXJyb3IgY2hlY2tpbmcuIFdlIGhhbmRsZSBJbmZzIGFuZCB6ZXJvcyBvdXJzZWx2ZXMuICAqLw0KK3N0YXRpYyBfX2lubGluZV9fIGxvbmcgZG91YmxlDQorX19mYXN0X2xkZXhwbCAobG9uZyBkb3VibGUgeCwgaW50IGV4cG4pDQorew0KKyAgbG9uZyBkb3VibGUgcmVzOw0KKyAgX19hc21fXyAoImZzY2FsZSINCisgIAkgICAgOiAiPXQiIChyZXMpDQorCSAgICA6ICIwIiAoeCksICJ1IiAoKGxvbmcgZG91YmxlKSBleHBuKSk7DQorICByZXR1cm4gcmVzOw0KK30NCisNCisjZGVmaW5lIGxkZXhwbCAgX19mYXN0X2xkZXhwbA0KKw0KK2xvbmcgZG91YmxlIHBvd2woIHgsIHkgKQ0KK2xvbmcgZG91YmxlIHgsIHk7DQorew0KKy8qIGRvdWJsZSBGLCBGYSwgRmIsIEcsIEdhLCBHYiwgSCwgSGEsIEhiICovDQoraW50IGksIG5mbGcsIGl5ZmxnLCB5b2RkaW50Ow0KK2xvbmcgZTsNCisNCitpZiggeSA9PSAwLjBMICkNCisJcmV0dXJuKCAxLjBMICk7DQorDQorI2lmZGVmIE5BTlMNCitpZiggaXNuYW5sKHgpICkNCisJew0KKwlfU0VUX0VSUk5PIChFRE9NKTsNCisJcmV0dXJuKCB4ICk7DQorCX0NCitpZiggaXNuYW5sKHkpICkNCisJew0KKwlfU0VUX0VSUk5PIChFRE9NKTsNCisJcmV0dXJuKCB5ICk7DQorCX0NCisjZW5kaWYNCisNCitpZiggeSA9PSAxLjBMICkNCisJcmV0dXJuKCB4ICk7DQorDQoraWYoIGlzaW5mbCh5KSAmJiAoeCA9PSAtMS4wTCB8fCB4ID09IDEuMEwpICkNCisJcmV0dXJuKCB5ICk7DQorDQoraWYoIHggPT0gMS4wTCApDQorCXJldHVybiggMS4wTCApOw0KKw0KK2lmKCB5ID49IE1BWE5VTUwgKQ0KKwl7DQorCV9TRVRfRVJSTk8gKEVSQU5HRSk7DQorI2lmZGVmIElORklOSVRJRVMNCisJaWYoIHggPiAxLjBMICkNCisJCXJldHVybiggSU5GSU5JVFlMICk7DQorI2Vsc2UNCisJaWYoIHggPiAxLjBMICkNCisJCXJldHVybiggTUFYTlVNTCApOw0KKyNlbmRpZg0KKwlpZiggeCA+IDAuMEwgJiYgeCA8IDEuMEwgKQ0KKwkJcmV0dXJuKCAwLjBMICk7DQorI2lmZGVmIElORklOSVRJRVMNCisJaWYoIHggPCAtMS4wTCApDQorCQlyZXR1cm4oIElORklOSVRZTCApOw0KKyNlbHNlDQorCWlmKCB4IDwgLTEuMEwgKQ0KKwkJcmV0dXJuKCBNQVhOVU1MICk7DQorI2VuZGlmDQorCWlmKCB4ID4gLTEuMEwgJiYgeCA8IDAuMEwgKQ0KKwkJcmV0dXJuKCAwLjBMICk7DQorCX0NCitpZiggeSA8PSAtTUFYTlVNTCApDQorCXsNCisJX1NFVF9FUlJOTyAoRVJBTkdFKTsNCisJaWYoIHggPiAxLjBMICkNCisJCXJldHVybiggMC4wTCApOw0KKyNpZmRlZiBJTkZJTklUSUVTDQorCWlmKCB4ID4gMC4wTCAmJiB4IDwgMS4wTCApDQorCQlyZXR1cm4oIElORklOSVRZTCApOw0KKyNlbHNlDQorCWlmKCB4ID4gMC4wTCAmJiB4IDwgMS4wTCApDQorCQlyZXR1cm4oIE1BWE5VTUwgKTsNCisjZW5kaWYNCisJaWYoIHggPCAtMS4wTCApDQorCQlyZXR1cm4oIDAuMEwgKTsNCisjaWZkZWYgSU5GSU5JVElFUw0KKwlpZiggeCA+IC0xLjBMICYmIHggPCAwLjBMICkNCisJCXJldHVybiggSU5GSU5JVFlMICk7DQorI2Vsc2UNCisJaWYoIHggPiAtMS4wTCAmJiB4IDwgMC4wTCApDQorCQlyZXR1cm4oIE1BWE5VTUwgKTsNCisjZW5kaWYNCisJfQ0KK2lmKCB4ID49IE1BWE5VTUwgKQ0KKwl7DQorI2lmIElORklOSVRJRVMNCisJaWYoIHkgPiAwLjBMICkNCisJCXJldHVybiggSU5GSU5JVFlMICk7DQorI2Vsc2UNCisJaWYoIHkgPiAwLjBMICkNCisJCXJldHVybiggTUFYTlVNTCApOw0KKyNlbmRpZg0KKwlyZXR1cm4oIDAuMEwgKTsNCisJfQ0KKw0KK3cgPSBmbG9vcmwoeSk7DQorLyogU2V0IGl5ZmxnIHRvIDEgaWYgeSBpcyBhbiBpbnRlZ2VyLiAgKi8NCitpeWZsZyA9IDA7DQoraWYoIHcgPT0geSApDQorCWl5ZmxnID0gMTsNCisNCisvKiBUZXN0IGZvciBvZGQgaW50ZWdlciB5LiAgKi8NCit5b2RkaW50ID0gMDsNCitpZiggaXlmbGcgKQ0KKwl7DQorCXlhID0gZmFic2woeSk7DQorCXlhID0gZmxvb3JsKDAuNUwgKiB5YSk7DQorCXliID0gMC41TCAqIGZhYnNsKHcpOw0KKwlpZiggeWEgIT0geWIgKQ0KKwkJeW9kZGludCA9IDE7DQorCX0NCisNCitpZiggeCA8PSAtTUFYTlVNTCApDQorCXsNCisJaWYoIHkgPiAwLjBMICkNCisJCXsNCisjaWZkZWYgSU5GSU5JVElFUw0KKwkJaWYoIHlvZGRpbnQgKQ0KKwkJCXJldHVybiggLUlORklOSVRZTCApOw0KKwkJcmV0dXJuKCBJTkZJTklUWUwgKTsNCisjZWxzZQ0KKwkJaWYoIHlvZGRpbnQgKQ0KKwkJCXJldHVybiggLU1BWE5VTUwgKTsNCisJCXJldHVybiggTUFYTlVNTCApOw0KKyNlbmRpZg0KKwkJfQ0KKwlpZiggeSA8IDAuMEwgKQ0KKwkJew0KKyNpZmRlZiBNSU5VU1pFUk8NCisJCWlmKCB5b2RkaW50ICkNCisJCQlyZXR1cm4oIE5FR1pFUk9MICk7DQorI2VuZGlmDQorCQlyZXR1cm4oIDAuMCApOw0KKwkJfQ0KKyAJfQ0KKw0KKw0KK25mbGcgPSAwOwkvKiBmbGFnID0gMSBpZiB4PDAgcmFpc2VkIHRvIGludGVnZXIgcG93ZXIgKi8NCitpZiggeCA8PSAwLjBMICkNCisJew0KKwlpZiggeCA9PSAwLjBMICkNCisJCXsNCisJCWlmKCB5IDwgMC4wICkNCisJCQl7DQorI2lmZGVmIE1JTlVTWkVSTw0KKwkJCWlmKCBzaWduYml0bCh4KSAmJiB5b2RkaW50ICkNCisJCQkJcmV0dXJuKCAtSU5GSU5JVFlMICk7DQorI2VuZGlmDQorI2lmZGVmIElORklOSVRJRVMNCisJCQlyZXR1cm4oIElORklOSVRZTCApOw0KKyNlbHNlDQorCQkJcmV0dXJuKCBNQVhOVU1MICk7DQorI2VuZGlmDQorCQkJfQ0KKwkJaWYoIHkgPiAwLjAgKQ0KKwkJCXsNCisjaWZkZWYgTUlOVVNaRVJPDQorCQkJaWYoIHNpZ25iaXRsKHgpICYmIHlvZGRpbnQgKQ0KKwkJCQlyZXR1cm4oIE5FR1pFUk9MICk7DQorI2VuZGlmDQorCQkJcmV0dXJuKCAwLjAgKTsNCisJCQl9DQorCQlpZiggeSA9PSAwLjBMICkNCisJCQlyZXR1cm4oIDEuMEwgKTsgIC8qICAgMCoqMCAgICovDQorCQllbHNlICANCisJCQlyZXR1cm4oIDAuMEwgKTsgIC8qICAgMCoqeSAgICovDQorCQl9DQorCWVsc2UNCisJCXsNCisJCWlmKCBpeWZsZyA9PSAwICkNCisJCQl7IC8qIG5vbmludGVnZXIgcG93ZXIgb2YgbmVnYXRpdmUgbnVtYmVyICovDQorCQkJbXRoZXJyKCBmbmFtZSwgRE9NQUlOICk7DQorCQkJX1NFVF9FUlJOTyAoRURPTSk7DQorI2lmZGVmIE5BTlMNCisJCQlyZXR1cm4oTkFOTCk7DQorI2Vsc2UNCisJCQlyZXR1cm4oMC4wTCk7DQorI2VuZGlmDQorCQkJfQ0KKwkJbmZsZyA9IDE7DQorCQl9DQorCX0NCisNCisvKiBJbnRlZ2VyIHBvd2VyIG9mIGFuIGludGVnZXIuICAqLw0KKw0KK2lmKCBpeWZsZyApDQorCXsNCisJaSA9IHc7DQorCXcgPSBmbG9vcmwoeCk7DQorCWlmKCAodyA9PSB4KSAmJiAoZmFic2woeSkgPCAzMjc2OC4wKSApDQorCQl7DQorCQl3ID0gX19wb3dpbCggeCwgKGludCkgeSApOw0KKwkJcmV0dXJuKCB3ICk7DQorCQl9DQorCX0NCisNCisNCitpZiggbmZsZyApDQorCXggPSBmYWJzbCh4KTsNCisNCisvKiBzZXBhcmF0ZSBzaWduaWZpY2FuZCBmcm9tIGV4cG9uZW50ICovDQoreCA9IGZyZXhwbCggeCwgJmkgKTsNCitlID0gaTsNCisNCisvKiBmaW5kIHNpZ25pZmljYW5kIGluIGFudGlsb2cgdGFibGUgQVtdICovDQoraSA9IDE7DQoraWYoIHggPD0gZG91YmEoMTcpICkNCisJaSA9IDE3Ow0KK2lmKCB4IDw9IGRvdWJhKGkrOCkgKQ0KKwlpICs9IDg7DQoraWYoIHggPD0gZG91YmEoaSs0KSApDQorCWkgKz0gNDsNCitpZiggeCA8PSBkb3ViYShpKzIpICkNCisJaSArPSAyOw0KK2lmKCB4ID49IGRvdWJhKDEpICkNCisJaSA9IC0xOw0KK2kgKz0gMTsNCisNCisNCisvKiBGaW5kICh4IC0gQVtpXSkvQVtpXQ0KKyAqIGluIG9yZGVyIHRvIGNvbXB1dGUgbG9nKHgvQVtpXSk6DQorICoNCisgKiBsb2coeCkgPSBsb2coIGEgeC9hICkgPSBsb2coYSkgKyBsb2coeC9hKQ0KKyAqDQorICogbG9nKHgvYSkgPSBsb2coMSt2KSwgIHYgPSB4L2EgLSAxID0gKHgtYSkvYQ0KKyAqLw0KK3ggLT0gZG91YmEoaSk7DQoreCAtPSBkb3ViYihpLzIpOw0KK3ggLz0gZG91YmEoaSk7DQorDQorDQorLyogcmF0aW9uYWwgYXBwcm94aW1hdGlvbiBmb3IgbG9nKDErdik6DQorICoNCisgKiBsb2coMSt2KSAgPSAgdiAgLSAgdioqMi8yICArICB2KiozIFAodikgLyBRKHYpDQorICovDQoreiA9IHgqeDsNCit3ID0geCAqICggeiAqIHBvbGV2bGwoIHgsIFAsIDMgKSAvIHAxZXZsbCggeCwgUSwgMyApICk7DQordyA9IHcgLSBsZGV4cGwoIHosIC0xICk7ICAgLyogIHcgLSAwLjUgKiB6ICAqLw0KKw0KKy8qIENvbnZlcnQgdG8gYmFzZSAyIGxvZ2FyaXRobToNCisgKiBtdWx0aXBseSBieSBsb2cyKGUpID0gMSArIExPRzJFQQ0KKyAqLw0KK3ogPSBMT0cyRUEgKiB3Ow0KK3ogKz0gdzsNCit6ICs9IExPRzJFQSAqIHg7DQoreiArPSB4Ow0KKw0KKy8qIENvbXB1dGUgZXhwb25lbnQgdGVybSBvZiB0aGUgYmFzZSAyIGxvZ2FyaXRobS4gKi8NCit3ID0gLWk7DQordyA9IGxkZXhwbCggdywgLUxOWFQgKTsJLyogZGl2aWRlIGJ5IE5YVCAqLw0KK3cgKz0gZTsNCisvKiBOb3cgYmFzZSAyIGxvZyBvZiB4IGlzIHcgKyB6LiAqLw0KKw0KKy8qIE11bHRpcGx5IGJhc2UgMiBsb2cgYnkgeSwgaW4gZXh0ZW5kZWQgcHJlY2lzaW9uLiAqLw0KKw0KKy8qIHNlcGFyYXRlIHkgaW50byBsYXJnZSBwYXJ0IHlhDQorICogYW5kIHNtYWxsIHBhcnQgeWIgbGVzcyB0aGFuIDEvTlhUDQorICovDQoreWEgPSByZWR1Y2woeSk7DQoreWIgPSB5IC0geWE7DQorDQorLyogKHcreikoeWEreWIpDQorICogPSB3KnlhICsgdyp5YiArIHoqeQ0KKyAqLw0KK0YgPSB6ICogeSAgKyAgdyAqIHliOw0KK0ZhID0gcmVkdWNsKEYpOw0KK0ZiID0gRiAtIEZhOw0KKw0KK0cgPSBGYSArIHcgKiB5YTsNCitHYSA9IHJlZHVjbChHKTsNCitHYiA9IEcgLSBHYTsNCisNCitIID0gRmIgKyBHYjsNCitIYSA9IHJlZHVjbChIKTsNCit3ID0gbGRleHBsKCBHYSArIEhhLCBMTlhUICk7DQorDQorLyogVGVzdCB0aGUgcG93ZXIgb2YgMiBmb3Igb3ZlcmZsb3cgKi8NCitpZiggdyA+IE1FWFAgKQ0KKwl7DQorCV9TRVRfRVJSTk8gKEVSQU5HRSk7DQorCW10aGVyciggZm5hbWUsIE9WRVJGTE9XICk7DQorCXJldHVybiggTUFYTlVNTCApOw0KKwl9DQorDQoraWYoIHcgPCBNTkVYUCApDQorCXsNCisJX1NFVF9FUlJOTyAoRVJBTkdFKTsNCisJbXRoZXJyKCBmbmFtZSwgVU5ERVJGTE9XICk7DQorCXJldHVybiggMC4wTCApOw0KKwl9DQorDQorZSA9IHc7DQorSGIgPSBIIC0gSGE7DQorDQoraWYoIEhiID4gMC4wTCApDQorCXsNCisJZSArPSAxOw0KKwlIYiAtPSAoMS4wTC9OWFQpOyAgLyowLjA2MjVMOyovDQorCX0NCisNCisvKiBOb3cgdGhlIHByb2R1Y3QgeSAqIGxvZzIoeCkgID0gIEhiICsgZS9OWFQuDQorICoNCisgKiBDb21wdXRlIGJhc2UgMiBleHBvbmVudGlhbCBvZiBIYiwNCisgKiB3aGVyZSAtMC4wNjI1IDw9IEhiIDw9IDAuDQorICovDQoreiA9IEhiICogcG9sZXZsbCggSGIsIFIsIDYgKTsgIC8qICAgIHogID0gIDIqKkhiIC0gMSAgICAqLw0KKw0KKy8qIEV4cHJlc3MgZS9OWFQgYXMgYW4gaW50ZWdlciBwbHVzIGEgbmVnYXRpdmUgbnVtYmVyIG9mICgxL05YVCl0aHMuDQorICogRmluZCBsb29rdXAgdGFibGUgZW50cnkgZm9yIHRoZSBmcmFjdGlvbmFsIHBvd2VyIG9mIDIuDQorICovDQoraWYoIGUgPCAwICkNCisJaSA9IDA7DQorZWxzZQ0KKwlpID0gMTsNCitpID0gZS9OWFQgKyBpOw0KK2UgPSBOWFQqaSAtIGU7DQordyA9IGRvdWJhKCBlICk7DQoreiA9IHcgKiB6OyAgICAgIC8qICAgIDIqKi1lICogKCAxICsgKDIqKkhiLTEpICkgICAgKi8NCit6ID0geiArIHc7DQoreiA9IGxkZXhwbCggeiwgaSApOyAgLyogbXVsdGlwbHkgYnkgaW50ZWdlciBwb3dlciBvZiAyICovDQorDQoraWYoIG5mbGcgKQ0KKwl7DQorLyogRm9yIG5lZ2F0aXZlIHgsDQorICogZmluZCBvdXQgaWYgdGhlIGludGVnZXIgZXhwb25lbnQNCisgKiBpcyBvZGQgb3IgZXZlbi4NCisgKi8NCisJdyA9IGxkZXhwbCggeSwgLTEgKTsNCisJdyA9IGZsb29ybCh3KTsNCisJdyA9IGxkZXhwbCggdywgMSApOw0KKwlpZiggdyAhPSB5ICkNCisJCXogPSAtejsgLyogb2RkIGV4cG9uZW50ICovDQorCX0NCisNCityZXR1cm4oIHogKTsNCit9DQorDQorc3RhdGljIF9faW5saW5lX18gbG9uZyBkb3VibGUgDQorX19jb252ZXJ0X2luZl90b19tYXhudW0obG9uZyBkb3VibGUgeCkNCit7DQorICBpZiAoaXNpbmYoeCkpDQorICAgIHJldHVybiAoeCA+IDAuMEwgPyBNQVhOVU1MIDogLU1BWE5VTUwpOw0KKyAgZWxzZQ0KKyAgICByZXR1cm4geDsNCit9DQorDQorDQorLyogRmluZCBhIG11bHRpcGxlIG9mIDEvTlhUIHRoYXQgaXMgd2l0aGluIDEvTlhUIG9mIHguICovDQorc3RhdGljIF9faW5saW5lX18gbG9uZyBkb3VibGUgcmVkdWNsKHgpDQorbG9uZyBkb3VibGUgeDsNCit7DQorbG9uZyBkb3VibGUgdDsNCisNCisvKiBJZiB0aGUgY2FsbCB0byBsZGV4cGwgb3ZlcmZsb3dzLCBzZXQgaXQgdG8gTUFYTlVNTC4NCisgICBUaGlzIGF2b2lkcyBJbmYgLSBJbmYgPSBOYW4gcmVzdWx0IHdoZW4gY2FsY3VsYXRpbmcgdGhlICdzbWFsbCcNCisgICBwYXJ0IG9mIGEgcmVkdWN0aW9uLiAgSW5zdGVhZCwgdGhlIHNtYWxsIHBhcnQgYmVjb21lcyBJbmYsDQorICAgY2F1c2luZyB1bmRlci9vdmVyZmxvdyB3aGVuIGFkZGluZyBpdCB0byB0aGUgJ2xhcmdlJyBwYXJ0Lg0KKyAgIFRoZXJlIG11c3QgYmUgYSBjbGVhbmVyIHdheSBvZiBkb2luZyB0aGlzLiAqLw0KK3QgPSAgX19jb252ZXJ0X2luZl90b19tYXhudW0gKGxkZXhwbCggeCwgTE5YVCApKTsNCit0ID0gZmxvb3JsKCB0ICk7DQordCA9IGxkZXhwbCggdCwgLUxOWFQgKTsNCityZXR1cm4odCk7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9yZW1haW5kZXIuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9yZW1haW5kZXIuUwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZmE0N2U5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL3JlbWFpbmRlci5TCkBAIC0wLDAgKzEsMTkgQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqLw0KKw0KKwkuZmlsZQkicmVtYWluZGVyLlMiDQorCS50ZXh0DQorCS5hbGlnbiA0DQorLmdsb2JsIF9yZW1haW5kZXINCisJLmRlZglfcmVtYWluZGVyOwkuc2NsCTI7CS50eXBlCTMyOwkuZW5kZWYNCitfcmVtYWluZGVyOg0KKwlmbGRsCTEyKCVlc3ApDQorCWZsZGwJNCglZXNwKQ0KKzE6CWZwcmVtMQ0KKwlmc3RzdwklYXgNCisJc2FoZg0KKwlqcAkxYg0KKwlmc3RwCSVzdCgxKQ0KKwlyZXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvcmVtYWluZGVyZi5TIGIvbWluZ3ctdzY0LWNydC9tYXRoL3JlbWFpbmRlcmYuUwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZTc2Yjc4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL3JlbWFpbmRlcmYuUwpAQCAtMCwwICsxLDE5IEBACisvKg0KKyAqIFdyaXR0ZW4gYnkgSi5ULiBDb25rbGluIDxqdGNAbmV0YnNkLm9yZz4uDQorICogUHVibGljIGRvbWFpbi4NCisgKi8NCisNCisJLmZpbGUJInJlbWFpbmRlcmYuUyINCisJLnRleHQNCisJLmFsaWduIDQNCisuZ2xvYmwgX3JlbWFpbmRlcg0KKwkuZGVmCV9yZW1haW5kZXJmOwkuc2NsCTI7CS50eXBlCTMyOwkuZW5kZWYNCitfcmVtYWluZGVyZjoNCisJZmxkcwk4KCVlc3ApDQorCWZsZHMJNCglZXNwKQ0KKzE6CWZwcmVtMQ0KKwlmc3RzdwklYXgNCisJc2FoZg0KKwlqcAkxYg0KKwlmc3RwCSVzdCgxKQ0KKwlyZXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvcmVtYWluZGVybC5TIGIvbWluZ3ctdzY0LWNydC9tYXRoL3JlbWFpbmRlcmwuUwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMGY2NDgxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL3JlbWFpbmRlcmwuUwpAQCAtMCwwICsxLDIyIEBACisvKg0KKyAqIFdyaXR0ZW4gYnkgSi5ULiBDb25rbGluIDxqdGNAbmV0YnNkLm9yZz4uDQorICogUHVibGljIGRvbWFpbi4NCisgKiBBZGFwdGVkIGZvciBgbG9uZyBkb3VibGUnIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQGN5Z251cy5jb20+Lg0KKyAqIFJlbW92ZWQgaGVhZGVyIGZpbGUgZGVwZW5kZW5jeSBmb3IgdXNlIGluIGxpYm1pbmd3ZXguYSBieQ0KKyAqICAgRGFubnkgU21pdGggPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0Pg0KKyAqLw0KKw0KKwkuZmlsZQkicmVtYWluZGVybC5TIg0KKwkudGV4dA0KKwkuYWxpZ24gNA0KKy5nbG9ibCBfcmVtYWluZGVybA0KKwkuZGVmCV9yZW1haW5kZXJsOwkuc2NsCTI7CS50eXBlCTMyOwkuZW5kZWYNCitfcmVtYWluZGVybDoNCisJZmxkdAkxNiglZXNwKQ0KKwlmbGR0CTQoJWVzcCkNCisxOglmcHJlbTENCisJZnN0c3cJJWF4DQorCXNhaGYNCisJanAJMWINCisJZnN0cAklc3QoMSkNCisJcmV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL3JlbXF1by5TIGIvbWluZ3ctdzY0LWNydC9tYXRoL3JlbXF1by5TCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJlZmM5NWYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvcmVtcXVvLlMKQEAgLTAsMCArMSwzOCBAQAorLyoNCisgKiBXcml0dGVuIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQGN5Z251cy5jb20+Lg0KKyAqIEJhc2VkIG9uIGVfcmVtYWluZGVyIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIFJlbW92ZWQgaGVhZGVyIGZpbGUgZGVwZW5kZW5jeSBmb3IgdXNlIGluIGxpYm1pbmd3ZXguYSBieQ0KKyAqICAgRGFubnkgU21pdGggPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmUNCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqLw0KKw0KKwkuZmlsZQkicmVtcXVvLlMiDQorICAgICAgICAudGV4dA0KKwkuYWxpZ24gNDsNCisuZ2xvYmwgX3JlbXF1bzsNCitfcmVtcXVvOiAgICAgDQorCWZsZGwgNCArOCglZXNwKQ0KKwlmbGRsIDQoJWVzcCkNCisxOglmcHJlbTENCisJZnN0c3cgJWF4DQorCXNhaGYNCisJanAgMWINCisJZnN0cCAlc3QoMSkNCisJbW92bCAlZWF4LCAlZWN4DQorCXNocmwgJDgsICVlYXgNCisJc2hybCAkMTIsICVlY3gNCisJYW5kbCAkNCwgJWVjeA0KKwlhbmRsICQzLCAlZWF4DQorCW9ybCAlZWF4LCAlZWN4DQorCW1vdmwgJDB4ZWYyOTYwLCAlZWF4DQorCXNocmwgJWNsLCAlZWF4DQorCWFuZGwgJDMsICVlYXgNCisJbW92bCA0ICs4ICs4KCVlc3ApLCAlZWN4ICAgICAgDQorCW1vdmwgNCArNCglZXNwKSwgJWVkeA0KKwl4b3JsIDQgKzggKzQoJWVzcCksICVlZHgNCisJdGVzdGwgJDB4ODAwMDAwMDAsICVlZHgNCisJanogMWYNCisJbmVnbCAlZWF4DQorMToJbW92bCAlZWF4LCAoJWVjeCkNCisNCisJcmV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL3JlbXF1b2YuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9yZW1xdW9mLlMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWZkMDNkMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9yZW1xdW9mLlMKQEAgLTAsMCArMSwzOCBAQAorLyoNCisgKiBXcml0dGVuIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQGN5Z251cy5jb20+Lg0KKyAqIEJhc2VkIG9uIGVfcmVtYWluZGVyIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIFJlbW92ZWQgaGVhZGVyIGZpbGUgZGVwZW5kZW5jeSBmb3IgdXNlIGluIGxpYm1pbmd3ZXguYSBieQ0KKyAqICAgRGFubnkgU21pdGggPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmUNCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqLw0KKw0KKwkuZmlsZQkicmVtcXVvLlMiDQorCS50ZXh0DQorCS5hbGlnbiA0Ow0KKy5nbG9ibCBfcmVtcXVvZjsNCitfcmVtcXVvZjogICAgIA0KKwlmbGRzIDQgKzQoJWVzcCkNCisJZmxkcyA0KCVlc3ApDQorMToJZnByZW0xDQorCWZzdHN3ICVheA0KKwlzYWhmDQorCWpwIDFiDQorCWZzdHAgJXN0KDEpDQorCW1vdmwgJWVheCwgJWVjeA0KKwlzaHJsICQ4LCAlZWF4DQorCXNocmwgJDEyLCAlZWN4DQorCWFuZGwgJDQsICVlY3gNCisJYW5kbCAkMywgJWVheA0KKwlvcmwgJWVheCwgJWVjeA0KKwltb3ZsICQweGVmMjk2MCwgJWVheA0KKwlzaHJsICVjbCwgJWVheA0KKwlhbmRsICQzLCAlZWF4DQorCW1vdmwgNCArNCArNCglZXNwKSwgJWVjeA0KKwltb3ZsIDQoJWVzcCksICVlZHgNCisJeG9ybCA0ICs0KCVlc3ApLCAlZWR4DQorCXRlc3RsICQweDgwMDAwMDAwLCAlZWR4DQorCWp6IDFmDQorCW5lZ2wgJWVheA0KKzE6CW1vdmwgJWVheCwgKCVlY3gpDQorDQorCXJldA0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9yZW1xdW9sLlMgYi9taW5ndy13NjQtY3J0L21hdGgvcmVtcXVvbC5TCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAyODI0MzEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvcmVtcXVvbC5TCkBAIC0wLDAgKzEsMzYgQEAKKy8qDQorICogV3JpdHRlbiBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBjeWdudXMuY29tPi4NCisgKiBCYXNlZCBvbiBlX3JlbWFpbmRlciBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBSZW1vdmVkIGhlYWRlciBmaWxlIGRlcGVuZGVuY3kgZm9yIHVzZSBpbiBsaWJtaW5nd2V4LmEgYnkNCisgKiAgIERhbm55IFNtaXRoIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4NCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqLw0KKyAgICAgICAgLnRleHQNCisJLmFsaWduIDQ7DQorLmdsb2JsIF9yZW1xdW9sOw0KKyBfcmVtcXVvbDoNCisgICAgICAgIGZsZHQgNCArMTIoJWVzcCkNCisgICAgICAgIGZsZHQgNCglZXNwKQ0KKzE6CWZwcmVtMQ0KKyAgICAgICAgZnN0c3cgJWF4DQorICAgICAgICBzYWhmDQorICAgICAgICBqcCAxYg0KKyAgICAgICAgZnN0cCAlc3QoMSkNCisgICAgICAgIG1vdmwgJWVheCwgJWVjeA0KKyAgICAgICAgc2hybCAkOCwgJWVheA0KKyAgICAgICAgc2hybCAkMTIsICVlY3gNCisgICAgICAgIGFuZGwgJDQsICVlY3gNCisgICAgICAgIGFuZGwgJDMsICVlYXgNCisgICAgICAgIG9ybCAlZWF4LCAlZWN4DQorICAgICAgICBtb3ZsICQweGVmMjk2MCwgJWVheA0KKyAgICAgICAgc2hybCAlY2wsICVlYXgNCisgICAgICAgIGFuZGwgJDMsICVlYXgNCisgICAgICAgIG1vdmwgNCArMTIgKzEyKCVlc3ApLCAlZWN4ICAgICAgDQorICAgICAgICBtb3ZsIDQgKzgoJWVzcCksICVlZHgNCisgICAgICAgIHhvcmwgNCArMTIgKzgoJWVzcCksICVlZHgNCisgICAgICAgIHRlc3RsICQweDgwMDAsICVlZHgNCisgICAgICAgIGp6IDFmDQorICAgICAgICBuZWdsICVlYXgNCisxOgltb3ZsICVlYXgsICglZWN4KQ0KKyAgICAgIA0KKyAgICAgICAgcmV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL3JpbnQuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9yaW50LmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmQ5NjZjYQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9yaW50LmMKQEAgLTAsMCArMSw2IEBACisjaW5jbHVkZSA8bWF0aC5oPg0KK2RvdWJsZSByaW50IChkb3VibGUgeCl7DQorICBkb3VibGUgcmV0dmFsOw0KKyAgX19hc21fXyAoImZybmRpbnQ7IiA6ICI9dCIgKHJldHZhbCkgOiAiMCIgKHgpKTsNCisgIHJldHVybiByZXR2YWw7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9yaW50Zi5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL3JpbnRmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWJjYmY5NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9yaW50Zi5jCkBAIC0wLDAgKzEsNyBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisNCitmbG9hdCByaW50ZiAoZmxvYXQgeCl7DQorICBmbG9hdCByZXR2YWw7DQorICBfX2FzbV9fICgiZnJuZGludDsiOiAiPXQiIChyZXR2YWwpIDogIjAiICh4KSk7DQorICByZXR1cm4gcmV0dmFsOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvcmludGwuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9yaW50bC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZlYzQ4MmQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvcmludGwuYwpAQCAtMCwwICsxLDcgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorDQorbG9uZyBkb3VibGUgcmludGwgKGxvbmcgZG91YmxlIHgpew0KKyAgbG9uZyBkb3VibGUgcmV0dmFsOw0KKyAgX19hc21fXyAoImZybmRpbnQ7IjogIj10IiAocmV0dmFsKSA6ICIwIiAoeCkpOw0KKyAgcmV0dXJuIHJldHZhbDsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL3JvdW5kLmMgYi9taW5ndy13NjQtY3J0L21hdGgvcm91bmQuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYzM4YWNkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL3JvdW5kLmMKQEAgLTAsMCArMSw4IEBACisjaW5jbHVkZSA8bWF0aC5oPg0KKw0KK2RvdWJsZQ0KK3JvdW5kIChkb3VibGUgeCkNCit7DQorICAvKiBBZGQgKy8tIDAuNSB0aGVuIHRoZW4gcm91bmQgdG93YXJkcyB6ZXJvLiAgKi8NCisgIHJldHVybiB0cnVuYyAoIHggKyAoeCA+PSAwLjAgPyAgMC41IDogLTAuNSkpOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvcm91bmRmLmMgYi9taW5ndy13NjQtY3J0L21hdGgvcm91bmRmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjc4MjVmYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9yb3VuZGYuYwpAQCAtMCwwICsxLDggQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorDQorZmxvYXQNCityb3VuZGYgKGZsb2F0IHgpDQorew0KKyAgLyogQWRkICsvLSAwLjUgdGhlbiB0aGVuIHJvdW5kIHRvd2FyZHMgemVyby4gICovDQorICByZXR1cm4gdHJ1bmNmICggeCArICh4ID49IDAuMEYgPyAgMC41RiA6IC0wLjVGKSk7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9yb3VuZGwuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9yb3VuZGwuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xOGVhNDU1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL3JvdW5kbC5jCkBAIC0wLDAgKzEsOCBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisNCitsb25nIGRvdWJsZQ0KK3JvdW5kbCAobG9uZyBkb3VibGUgeCkNCit7DQorICAvKiBBZGQgKy8tIDAuNSB0aGVuIHRoZW4gcm91bmQgdG93YXJkcyB6ZXJvLiAgKi8NCisgIHJldHVybiB0cnVuY2wgKCB4ICsgKHggPj0gMC4wTCA/ICAwLjVMIDogLTAuNUwpKTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL3NfZXJmLmMgYi9taW5ndy13NjQtY3J0L21hdGgvc19lcmYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MWM2YmEyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL3NfZXJmLmMKQEAgLTAsMCArMSwzNDUgQEAKKw0KKy8qIEAoIylzX2VyZi5jIDEuMyA5NS8wMS8xOCAqLw0KKy8qDQorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAqIENvcHlyaWdodCAoQykgMTk5MyBieSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQorICoNCisgKiBEZXZlbG9wZWQgYXQgU3VuU29mdCwgYSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuIGJ1c2luZXNzLg0KKyAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMNCisgKiBzb2Z0d2FyZSBpcyBmcmVlbHkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGlzIG5vdGljZSANCisgKiBpcyBwcmVzZXJ2ZWQuDQorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAqLw0KKw0KKy8qIGRvdWJsZSBlcmYoZG91YmxlIHgpDQorICogZG91YmxlIGVyZmMoZG91YmxlIHgpDQorICoJCQkgICAgIHgNCisgKgkJICAgICAgMiAgICAgIHxcDQorICogICAgIGVyZih4KSAgPSAgLS0tLS0tLS0tICB8IGV4cCgtdCp0KWR0DQorICoJIAkgICBzcXJ0KHBpKSBcfCANCisgKgkJCSAgICAgMA0KKyAqDQorICogICAgIGVyZmMoeCkgPSAgMS1lcmYoeCkNCisgKiAgTm90ZSB0aGF0IA0KKyAqCQllcmYoLXgpID0gLWVyZih4KQ0KKyAqCQllcmZjKC14KSA9IDIgLSBlcmZjKHgpDQorICoNCisgKiBNZXRob2Q6DQorICoJMS4gRm9yIHx4fCBpbiBbMCwgMC44NDM3NV0NCisgKgkgICAgZXJmKHgpICA9IHggKyB4KlIoeF4yKQ0KKyAqICAgICAgICAgIGVyZmMoeCkgPSAxIC0gZXJmKHgpICAgICAgICAgICBpZiB4IGluIFstLjg0Mzc1LDAuMjVdDQorICogICAgICAgICAgICAgICAgICA9IDAuNSArICgoMC41LXgpLXgqUikgIGlmIHggaW4gWzAuMjUsMC44NDM3NV0NCisgKgkgICB3aGVyZSBSID0gUC9RIHdoZXJlIFAgaXMgYW4gb2RkIHBvbHkgb2YgZGVncmVlIDggYW5kDQorICoJICAgUSBpcyBhbiBvZGQgcG9seSBvZiBkZWdyZWUgMTAuDQorICoJCQkJCQkgLTU3LjkwDQorICoJCQl8IFIgLSAoZXJmKHgpLXgpL3ggfCA8PSAyDQorICoJDQorICoNCisgKgkgICBSZW1hcmsuIFRoZSBmb3JtdWxhIGlzIGRlcml2ZWQgYnkgbm90aW5nDQorICogICAgICAgICAgZXJmKHgpID0gKDIvc3FydChwaSkpKih4IC0geF4zLzMgKyB4XjUvMTAgLSB4XjcvNDIgKyAuLi4uKQ0KKyAqCSAgIGFuZCB0aGF0DQorICogICAgICAgICAgMi9zcXJ0KHBpKSA9IDEuMTI4Mzc5MTY3MDk1NTEyNTczODk2MTU4OTAzMTIxNTQ1MTcxNjg4DQorICoJICAgaXMgY2xvc2UgdG8gb25lLiBUaGUgaW50ZXJ2YWwgaXMgY2hvc2VuIGJlY2F1c2UgdGhlIGZpeA0KKyAqCSAgIHBvaW50IG9mIGVyZih4KSBpcyBuZWFyIDAuNjE3NCAoaS5lLiwgZXJmKHgpPXggd2hlbiB4IGlzDQorICoJICAgbmVhciAwLjYxNzQpLCBhbmQgYnkgc29tZSBleHBlcmltZW50LCAwLjg0Mzc1IGlzIGNob3NlbiB0bw0KKyAqIAkgICBndWFyYW50ZWUgdGhlIGVycm9yIGlzIGxlc3MgdGhhbiBvbmUgdWxwIGZvciBlcmYuDQorICoNCisgKiAgICAgIDIuIEZvciB8eHwgaW4gWzAuODQzNzUsMS4yNV0sIGxldCBzID0gfHh8IC0gMSwgYW5kDQorICogICAgICAgICBjID0gMC44NDUwNjI5MTE1MSByb3VuZGVkIHRvIHNpbmdsZSAoMjQgYml0cykNCisgKiAgICAgICAgIAllcmYoeCkgID0gc2lnbih4KSAqIChjICArIFAxKHMpL1ExKHMpKQ0KKyAqICAgICAgICAgCWVyZmMoeCkgPSAoMS1jKSAgLSBQMShzKS9RMShzKSBpZiB4ID4gMA0KKyAqCQkJICAxKyhjK1AxKHMpL1ExKHMpKSAgICBpZiB4IDwgMA0KKyAqICAgICAgICAgCXxQMS9RMSAtIChlcmYofHh8KS1jKXwgPD0gMioqLTU5LjA2DQorICoJICAgUmVtYXJrOiBoZXJlIHdlIHVzZSB0aGUgdGF5bG9yIHNlcmllcyBleHBhbnNpb24gYXQgeD0xLg0KKyAqCQllcmYoMStzKSA9IGVyZigxKSArIHMqUG9seShzKQ0KKyAqCQkJID0gMC44NDUuLiArIFAxKHMpL1ExKHMpDQorICoJICAgVGhhdCBpcywgd2UgdXNlIHJhdGlvbmFsIGFwcHJveGltYXRpb24gdG8gYXBwcm94aW1hdGUNCisgKgkJCWVyZigxK3MpIC0gKGMgPSAoc2luZ2xlKTAuODQ1MDYyOTExNTEpDQorICoJICAgTm90ZSB0aGF0IHxQMS9RMXw8IDAuMDc4IGZvciB4IGluIFswLjg0Mzc1LDEuMjVdDQorICoJICAgd2hlcmUgDQorICoJCVAxKHMpID0gZGVncmVlIDYgcG9seSBpbiBzDQorICoJCVExKHMpID0gZGVncmVlIDYgcG9seSBpbiBzDQorICoNCisgKiAgICAgIDMuIEZvciB4IGluIFsxLjI1LDEvMC4zNSh+Mi44NTcxNDMpXSwgDQorICogICAgICAgICAJZXJmYyh4KSA9ICgxL3gpKmV4cCgteCp4LTAuNTYyNStSMS9TMSkNCisgKiAgICAgICAgIAllcmYoeCkgID0gMSAtIGVyZmMoeCkNCisgKgkgICB3aGVyZSANCisgKgkJUjEoeikgPSBkZWdyZWUgNyBwb2x5IGluIHosICh6PTEveF4yKQ0KKyAqCQlTMSh6KSA9IGRlZ3JlZSA4IHBvbHkgaW4geg0KKyAqDQorICogICAgICA0LiBGb3IgeCBpbiBbMS8wLjM1LDI4XQ0KKyAqICAgICAgICAgCWVyZmMoeCkgPSAoMS94KSpleHAoLXgqeC0wLjU2MjUrUjIvUzIpIGlmIHggPiAwDQorICoJCQk9IDIuMCAtICgxL3gpKmV4cCgteCp4LTAuNTYyNStSMi9TMikgaWYgLTY8eDwwDQorICoJCQk9IDIuMCAtIHRpbnkJCShpZiB4IDw9IC02KQ0KKyAqICAgICAgICAgCWVyZih4KSAgPSBzaWduKHgpKigxLjAgLSBlcmZjKHgpKSBpZiB4IDwgNiwgZWxzZQ0KKyAqICAgICAgICAgCWVyZih4KSAgPSBzaWduKHgpKigxLjAgLSB0aW55KQ0KKyAqCSAgIHdoZXJlDQorICoJCVIyKHopID0gZGVncmVlIDYgcG9seSBpbiB6LCAoej0xL3heMikNCisgKgkJUzIoeikgPSBkZWdyZWUgNyBwb2x5IGluIHoNCisgKg0KKyAqICAgICAgTm90ZTE6DQorICoJICAgVG8gY29tcHV0ZSBleHAoLXgqeC0wLjU2MjUrUi9TKSwgbGV0IHMgYmUgYSBzaW5nbGUNCisgKgkgICBwcmVjaXNpb24gbnVtYmVyIGFuZCBzIDo9IHg7IHRoZW4NCisgKgkJLXgqeCA9IC1zKnMgKyAocy14KSoocyt4KQ0KKyAqCSAgICAgICAgZXhwKC14KngtMC41NjI2K1IvUykgPSANCisgKgkJCWV4cCgtcypzLTAuNTYyNSkqZXhwKChzLXgpKihzK3gpK1IvUyk7DQorICogICAgICBOb3RlMjoNCisgKgkgICBIZXJlIDQgYW5kIDUgbWFrZSB1c2Ugb2YgdGhlIGFzeW1wdG90aWMgc2VyaWVzDQorICoJCQkgIGV4cCgteCp4KQ0KKyAqCQllcmZjKHgpIH4gLS0tLS0tLS0tLSAqICggMSArIFBvbHkoMS94XjIpICkNCisgKgkJCSAgeCpzcXJ0KHBpKQ0KKyAqCSAgIFdlIHVzZSByYXRpb25hbCBhcHByb3hpbWF0aW9uIHRvIGFwcHJveGltYXRlDQorICogICAgICAJZyhzKT1mKDEveF4yKSA9IGxvZyhlcmZjKHgpKngpIC0geCp4ICsgMC41NjI1DQorICoJICAgSGVyZSBpcyB0aGUgZXJyb3IgYm91bmQgZm9yIFIxL1MxIGFuZCBSMi9TMg0KKyAqICAgICAgCXxSMS9TMSAtIGYoeCl8ICA8IDIqKigtNjIuNTcpDQorICogICAgICAJfFIyL1MyIC0gZih4KXwgIDwgMioqKC02MS41MikNCisgKg0KKyAqICAgICAgNS4gRm9yIGluZiA+IHggPj0gMjgNCisgKiAgICAgICAgIAllcmYoeCkgID0gc2lnbih4KSAqKDEgLSB0aW55KSAgKHJhaXNlIGluZXhhY3QpDQorICogICAgICAgICAJZXJmYyh4KSA9IHRpbnkqdGlueSAocmFpc2UgdW5kZXJmbG93KSBpZiB4ID4gMA0KKyAqCQkJPSAyIC0gdGlueSBpZiB4PDANCisgKg0KKyAqICAgICAgNy4gU3BlY2lhbCBjYXNlOg0KKyAqICAgICAgICAgCWVyZigwKSAgPSAwLCBlcmYoaW5mKSAgPSAxLCBlcmYoLWluZikgPSAtMSwNCisgKiAgICAgICAgIAllcmZjKDApID0gMSwgZXJmYyhpbmYpID0gMCwgZXJmYygtaW5mKSA9IDIsIA0KKyAqCSAgIAllcmZjL2VyZihOYU4pIGlzIE5hTg0KKyAqLw0KKw0KKw0KKy8qICNpbmNsdWRlICJmZGxpYm0uaCIgKi8NCisNCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxzdGRpbnQuaD4NCisjaW5jbHVkZSA8ZXJybm8uaD4NCisNCisjZGVmaW5lIF9faWVlZTc1NF9leHAgZXhwDQorDQordHlwZWRlZiB1bmlvbiANCit7DQorICBkb3VibGUgdmFsdWU7DQorICBzdHJ1Y3QgDQorICB7DQorICAgIHVpbnQzMl90IGxzdzsNCisgICAgdWludDMyX3QgbXN3Ow0KKyAgfSBwYXJ0czsNCit9IGllZWVfZG91YmxlX3NoYXBlX3R5cGU7DQorDQorDQorc3RhdGljIGlubGluZSBpbnQgX19nZXRfaGlfd29yZChjb25zdCBkb3VibGUgeCkNCit7DQorICBpZWVlX2RvdWJsZV9zaGFwZV90eXBlIHU7DQorICB1LnZhbHVlID0geDsNCisgIHJldHVybiB1LnBhcnRzLm1zdzsNCit9DQorDQorc3RhdGljIGlubGluZSB2b2lkIF9fdHJ1bmNfbG9fd29yZChkb3VibGUgKngpDQorew0KKyAgaWVlZV9kb3VibGVfc2hhcGVfdHlwZSB1Ow0KKyAgdS52YWx1ZSA9ICp4Ow0KKyAgdS5wYXJ0cy5sc3cgPSAwOw0KKyAgKnggPSB1LnZhbHVlOw0KK30NCisNCisNCisjaWZkZWYgX19TVERDX18NCitzdGF0aWMgY29uc3QgZG91YmxlDQorI2Vsc2UNCitzdGF0aWMgZG91YmxlDQorI2VuZGlmDQordGlueQkgICAgPSAxZS0zMDAsDQoraGFsZj0gIDUuMDAwMDAwMDAwMDAwMDAwMDAwMDBlLTAxLCAvKiAweDNGRTAwMDAwLCAweDAwMDAwMDAwICovDQorb25lID0gIDEuMDAwMDAwMDAwMDAwMDAwMDAwMDBlKzAwLCAvKiAweDNGRjAwMDAwLCAweDAwMDAwMDAwICovDQordHdvID0gIDIuMDAwMDAwMDAwMDAwMDAwMDAwMDBlKzAwLCAvKiAweDQwMDAwMDAwLCAweDAwMDAwMDAwICovDQorCS8qIGMgPSAoZmxvYXQpMC44NDUwNjI5MTE1MSAqLw0KK2VyeCA9ICA4LjQ1MDYyOTExNTEwNDY3NTI5Mjk3ZS0wMSwgLyogMHgzRkVCMEFDMSwgMHg2MDAwMDAwMCAqLw0KKy8qDQorICogQ29lZmZpY2llbnRzIGZvciBhcHByb3hpbWF0aW9uIHRvICBlcmYgb24gWzAsMC44NDM3NV0NCisgKi8NCitlZnggPSAgMS4yODM3OTE2NzA5NTUxMjU4NjMxNmUtMDEsIC8qIDB4M0ZDMDZFQkEsIDB4ODIxNERCNjkgKi8NCitlZng4PSAgMS4wMjcwMzMzMzY3NjQxMDA2OTA1M2UrMDAsIC8qIDB4M0ZGMDZFQkEsIDB4ODIxNERCNjkgKi8NCitwcDAgID0gIDEuMjgzNzkxNjcwOTU1MTI1NTg1NjFlLTAxLCAvKiAweDNGQzA2RUJBLCAweDgyMTREQjY4ICovDQorcHAxICA9IC0zLjI1MDQyMTA3MjQ3MDAxNDk5MzcwZS0wMSwgLyogMHhCRkQ0Q0Q3RCwgMHg2OTFDQjkxMyAqLw0KK3BwMiAgPSAtMi44NDgxNzQ5NTc1NTk4NTEwNDc2NmUtMDIsIC8qIDB4QkY5RDJBNTEsIDB4REJENzE5NEYgKi8NCitwcDMgID0gLTUuNzcwMjcwMjk2NDg5NDQxNTkxNTdlLTAzLCAvKiAweEJGNzdBMjkxLCAweDIzNjY2OEU0ICovDQorcHA0ICA9IC0yLjM3NjMwMTY2NTY2NTAxNjI2MDg0ZS0wNSwgLyogMHhCRUY4RUFENiwgMHgxMjAwMTZBQyAqLw0KK3FxMSAgPSAgMy45NzkxNzIyMzk1OTE1NTM1MjgxOWUtMDEsIC8qIDB4M0ZEOTc3NzksIDB4Q0REQURDMDkgKi8NCitxcTIgID0gIDYuNTAyMjI0OTk4ODc2NzI5NDQ0ODVlLTAyLCAvKiAweDNGQjBBNTRDLCAweDU1MzZDRUJBICovDQorcXEzICA9ICA1LjA4MTMwNjI4MTg3NTc2NTYyNzc2ZS0wMywgLyogMHgzRjc0RDAyMiwgMHhDNEQzNkIwRiAqLw0KK3FxNCAgPSAgMS4zMjQ5NDczODAwNDMyMTY0NDUyNmUtMDQsIC8qIDB4M0YyMTVEQzksIDB4MjIxQzFBMTAgKi8NCitxcTUgID0gLTMuOTYwMjI4Mjc4Nzc1MzY4MTIzMjBlLTA2LCAvKiAweEJFRDA5QzQzLCAweDQyQTI2MTIwICovDQorLyoNCisgKiBDb2VmZmljaWVudHMgZm9yIGFwcHJveGltYXRpb24gdG8gIGVyZiAgaW4gWzAuODQzNzUsMS4yNV0gDQorICovDQorcGEwICA9IC0yLjM2MjExODU2MDc1MjY1OTQ0MDc3ZS0wMywgLyogMHhCRjYzNTlCOCwgMHhCRUY3NzUzOCAqLw0KK3BhMSAgPSAgNC4xNDg1NjExODY4Mzc0ODMzMTY2NmUtMDEsIC8qIDB4M0ZEQThEMDAsIDB4QUQ5MkIzNEQgKi8NCitwYTIgID0gLTMuNzIyMDc4NzYwMzU3MDEzMjM4NDdlLTAxLCAvKiAweEJGRDdEMjQwLCAweEZCQjhDM0YxICovDQorcGEzICA9ICAzLjE4MzQ2NjE5OTAxMTYxNzUzNjc0ZS0wMSwgLyogMHgzRkQ0NUZDQSwgMHg4MDUxMjBFNCAqLw0KK3BhNCAgPSAtMS4xMDg5NDY5NDI4MjM5NjY3NzQ3NmUtMDEsIC8qIDB4QkZCQzYzOTgsIDB4M0QzRTI4RUMgKi8NCitwYTUgID0gIDMuNTQ3ODMwNDMyNTYxODIzNTkzNzFlLTAyLCAvKiAweDNGQTIyQTM2LCAweDU5OTc5NUVCICovDQorcGE2ICA9IC0yLjE2NjM3NTU5NDg2ODc5MDg0MzAwZS0wMywgLyogMHhCRjYxQkYzOCwgMHgwQTk2MDczRiAqLw0KK3FhMSAgPSAgMS4wNjQyMDg4MDQwMDg0NDIyODI4NmUtMDEsIC8qIDB4M0ZCQjNFNjYsIDB4MThFRUUzMjMgKi8NCitxYTIgID0gIDUuNDAzOTc5MTc3MDIxNzEwNDg5MzdlLTAxLCAvKiAweDNGRTE0QUYwLCAweDkyRUI2RjMzICovDQorcWEzICA9ICA3LjE4Mjg2NTQ0MTQxOTYyNjYyODY4ZS0wMiwgLyogMHgzRkIyNjM1QywgMHhEOTlGRTlBNyAqLw0KK3FhNCAgPSAgMS4yNjE3MTIxOTgwODc2MTY0MjExMmUtMDEsIC8qIDB4M0ZDMDI2NjAsIDB4RTc2MzM1MUYgKi8NCitxYTUgID0gIDEuMzYzNzA4MzkxMjAyOTA1MDczNjJlLTAyLCAvKiAweDNGOEJFREMyLCAweDZCNTFERDFDICovDQorcWE2ICA9ICAxLjE5ODQ0OTk4NDY3OTkxMDc0MTcwZS0wMiwgLyogMHgzRjg4OEI1NCwgMHg1NzM1MTUxRCAqLw0KKy8qDQorICogQ29lZmZpY2llbnRzIGZvciBhcHByb3hpbWF0aW9uIHRvICBlcmZjIGluIFsxLjI1LDEvMC4zNV0NCisgKi8NCityYTAgID0gLTkuODY0OTQ0MDM0ODQ3MTQ4MjI3MDVlLTAzLCAvKiAweEJGODQzNDEyLCAweDYwMEQ2NDM1ICovDQorcmExICA9IC02LjkzODU4NTcyNzA3MTgxNzY0MzcyZS0wMSwgLyogMHhCRkU2MzQxNiwgMHhFNEJBNzM2MCAqLw0KK3JhMiAgPSAtMS4wNTU4NjI2MjI1MzIzMjkwOTgxNGUrMDEsIC8qIDB4QzAyNTFFMDQsIDB4NDFCMEU3MjYgKi8NCityYTMgID0gLTYuMjM3NTMzMjQ1MDMyNjAwNjAzOTZlKzAxLCAvKiAweEMwNEYzMDBBLCAweEU0Q0JBMzhEICovDQorcmE0ICA9IC0xLjYyMzk2NjY5NDYyNTczNDcwMzU1ZSswMiwgLyogMHhDMDY0NENCMSwgMHg4NDI4MjI2NiAqLw0KK3JhNSAgPSAtMS44NDYwNTA5MjkwNjcxMTAzNTk5NGUrMDIsIC8qIDB4QzA2NzEzNUMsIDB4RUJDQ0FCQjIgKi8NCityYTYgID0gLTguMTI4NzQzNTUwNjMwNjU5MzQyNDZlKzAxLCAvKiAweEMwNTQ1MjY1LCAweDU3RTREMkYyICovDQorcmE3ICA9IC05LjgxNDMyOTM0NDE2OTE0NTQ4NTkyZSswMCwgLyogMHhDMDIzQTBFRiwgMHhDNjlBQzI1QyAqLw0KK3NhMSAgPSAgMS45NjUxMjcxNjY3NDM5MjU3MTI5MmUrMDEsIC8qIDB4NDAzM0E2QjksIDB4QkQ3MDc2ODcgKi8NCitzYTIgID0gIDEuMzc2NTc3NTQxNDM1MTkwNDI2MDBlKzAyLCAvKiAweDQwNjEzNTBDLCAweDUyNkFFNzIxICovDQorc2EzICA9ICA0LjM0NTY1ODc3NDc1MjI5MjI4ODIxZSswMiwgLyogMHg0MDdCMjkwRCwgMHhENThBMUE3MSAqLw0KK3NhNCAgPSAgNi40NTM4NzI3MTczMzI2Nzg4MDMzNmUrMDIsIC8qIDB4NDA4NDJCMTksIDB4MjFFQzI4NjggKi8NCitzYTUgID0gIDQuMjkwMDgxNDAwMjc1Njc4MzMzODZlKzAyLCAvKiAweDQwN0FEMDIxLCAweDU3NzAwMzE0ICovDQorc2E2ICA9ICAxLjA4NjM1MDA1NTQxNzc5NDM1MTM0ZSswMiwgLyogMHg0MDVCMjhBMywgMHhFRTQ4QUUyQyAqLw0KK3NhNyAgPSAgNi41NzAyNDk3NzAzMTkyODE3MDEzNWUrMDAsIC8qIDB4NDAxQTQ3RUYsIDB4OEU0ODRBOTMgKi8NCitzYTggID0gLTYuMDQyNDQxNTIxNDg1ODA5ODc0MzhlLTAyLCAvKiAweEJGQUVFRkYyLCAweEVFNzQ5QTYyICovDQorLyoNCisgKiBDb2VmZmljaWVudHMgZm9yIGFwcHJveGltYXRpb24gdG8gIGVyZmMgaW4gWzEvLjM1LDI4XQ0KKyAqLw0KK3JiMCAgPSAtOS44NjQ5NDI5MjQ3MDAwOTkyODU5N2UtMDMsIC8qIDB4QkY4NDM0MTIsIDB4MzlFODZGNEEgKi8NCityYjEgID0gLTcuOTkyODMyMzc2ODA1MjMwMDY1NzRlLTAxLCAvKiAweEJGRTk5M0JBLCAweDcwQzI4NURFICovDQorcmIyICA9IC0xLjc3NTc5NTQ5MTc3NTQ3NTE5ODg5ZSswMSwgLyogMHhDMDMxQzIwOSwgMHg1NTVGOTk1QSAqLw0KK3JiMyAgPSAtMS42MDYzNjM4NDg1NTgyMTkxNjA2MmUrMDIsIC8qIDB4QzA2NDE0NUQsIDB4NDNDNUVEOTggKi8NCityYjQgID0gLTYuMzc1NjY0NDMzNjgzODk2Mjc3MjJlKzAyLCAvKiAweEMwODNFQzg4LCAweDEzNzVGMjI4ICovDQorcmI1ICA9IC0xLjAyNTA5NTEzMTYxMTA3NzI0OTU0ZSswMywgLyogMHhDMDkwMDQ2MSwgMHg2QTJFNTk5MiAqLw0KK3JiNiAgPSAtNC44MzUxOTE5MTYwODY1MTM5NzAxOWUrMDIsIC8qIDB4QzA3RTM4NEUsIDB4OUJEQzM4M0YgKi8NCitzYjEgID0gIDMuMDMzODA2MDc0MzQ4MjQ1ODI5MjRlKzAxLCAvKiAweDQwM0U1NjhCLCAweDI2MUQ1MTkwICovDQorc2IyICA9ICAzLjI1NzkyNTEyOTk2NTczOTE4ODI2ZSswMiwgLyogMHg0MDc0NUNBRSwgMHgyMjFCOUYwQSAqLw0KK3NiMyAgPSAgMS41MzY3Mjk1ODYwODQ0MzY5NTk5NGUrMDMsIC8qIDB4NDA5ODAyRUIsIDB4MTg5RDUxMTggKi8NCitzYjQgID0gIDMuMTk5ODU4MjE5NTA4NTk1NTM5MDhlKzAzLCAvKiAweDQwQThGRkI3LCAweDY4OEMyNDZBICovDQorc2I1ICA9ICAyLjU1MzA1MDQwNjQzMzE2NDQyNTgzZSswMywgLyogMHg0MEEzRjIxOSwgMHhDRURGM0JFNiAqLw0KK3NiNiAgPSAgNC43NDUyODU0MTIwNjk1NTM2NzIxNWUrMDIsIC8qIDB4NDA3REE4NzQsIDB4RTc5RkU3NjMgKi8NCitzYjcgID0gLTIuMjQ0MDk1MjQ0NjU4NTgxODMzNjJlKzAxOyAvKiAweEMwMzY3MEUyLCAweDQyNzEyRDYyICovDQorDQorI2lmZGVmIF9fU1REQ19fDQorCWRvdWJsZSBlcmYoZG91YmxlIHgpIA0KKyNlbHNlDQorCWRvdWJsZSBlcmYoeCkgDQorCWRvdWJsZSB4Ow0KKyNlbmRpZg0KK3sNCisJaW50IGh4LGl4LGk7DQorCWRvdWJsZSBSLFMsUCxRLHMseSx6LHI7DQorCWh4ID0gX19nZXRfaGlfd29yZCh4KTsNCisJaXggPSBoeCYweDdmZmZmZmZmOw0KKwlpZihpeD49MHg3ZmYwMDAwMCkgewkJLyogZXJmKG5hbik9bmFuICovDQorCSAgICBpID0gKCh1bnNpZ25lZCloeD4+MzEpPDwxOw0KKwkgICAgcmV0dXJuIChkb3VibGUpKDEtaSkrb25lL3g7CS8qIGVyZigrLWluZik9Ky0xICovDQorCX0NCisNCisJaWYoaXggPCAweDNmZWIwMDAwKSB7CQkvKiB8eHw8MC44NDM3NSAqLw0KKwkgICAgaWYoaXggPCAweDNlMzAwMDAwKSB7IAkvKiB8eHw8MioqLTI4ICovDQorCSAgICAgICAgaWYgKGl4IDwgMHgwMDgwMDAwMCkgDQorCQkgICAgcmV0dXJuIDAuMTI1Kig4LjAqeCtlZng4KngpOyAgLyphdm9pZCB1bmRlcmZsb3cgKi8NCisJCXJldHVybiB4ICsgZWZ4Kng7DQorCSAgICB9DQorCSAgICB6ID0geCp4Ow0KKwkgICAgciA9IHBwMCt6KihwcDEreioocHAyK3oqKHBwMyt6KnBwNCkpKTsNCisJICAgIHMgPSBvbmUreioocXExK3oqKHFxMit6KihxcTMreioocXE0K3oqcXE1KSkpKTsNCisJICAgIHkgPSByL3M7DQorCSAgICByZXR1cm4geCArIHgqeTsNCisJfQ0KKwlpZihpeCA8IDB4M2ZmNDAwMDApIHsJCS8qIDAuODQzNzUgPD0gfHh8IDwgMS4yNSAqLw0KKwkgICAgcyA9IGZhYnMoeCktb25lOw0KKwkgICAgUCA9IHBhMCtzKihwYTErcyoocGEyK3MqKHBhMytzKihwYTQrcyoocGE1K3MqcGE2KSkpKSk7DQorCSAgICBRID0gb25lK3MqKHFhMStzKihxYTIrcyoocWEzK3MqKHFhNCtzKihxYTUrcypxYTYpKSkpKTsNCisJICAgIGlmKGh4Pj0wKSByZXR1cm4gZXJ4ICsgUC9ROyBlbHNlIHJldHVybiAtZXJ4IC0gUC9ROw0KKwl9DQorCWlmIChpeCA+PSAweDQwMTgwMDAwKSB7CQkvKiBpbmY+fHh8Pj02ICovDQorCSAgICBpZihoeD49MCkgcmV0dXJuIG9uZS10aW55OyBlbHNlIHJldHVybiB0aW55LW9uZTsNCisJfQ0KKwl4ID0gZmFicyh4KTsNCisgCXMgPSBvbmUvKHgqeCk7DQorCWlmKGl4PCAweDQwMDZEQjZFKSB7CS8qIHx4fCA8IDEvMC4zNSAqLw0KKwkgICAgUj1yYTArcyoocmExK3MqKHJhMitzKihyYTMrcyoocmE0K3MqKA0KKwkJCQlyYTUrcyoocmE2K3MqcmE3KSkpKSkpOw0KKwkgICAgUz1vbmUrcyooc2ExK3MqKHNhMitzKihzYTMrcyooc2E0K3MqKA0KKwkJCQlzYTUrcyooc2E2K3MqKHNhNytzKnNhOCkpKSkpKSk7DQorCX0gZWxzZSB7CS8qIHx4fCA+PSAxLzAuMzUgKi8NCisJICAgIFI9cmIwK3MqKHJiMStzKihyYjIrcyoocmIzK3MqKHJiNCtzKigNCisJCQkJcmI1K3MqcmI2KSkpKSk7DQorCSAgICBTPW9uZStzKihzYjErcyooc2IyK3MqKHNiMytzKihzYjQrcyooDQorCQkJCXNiNStzKihzYjYrcypzYjcpKSkpKSk7DQorCX0NCisJeiAgPSB4OyAgDQorCV9fdHJ1bmNfbG9fd29yZCgmeik7DQorCXIgID0gIF9faWVlZTc1NF9leHAoLXoqei0wLjU2MjUpKl9faWVlZTc1NF9leHAoKHoteCkqKHoreCkrUi9TKTsNCisJaWYoaHg+PTApIHJldHVybiBvbmUtci94OyBlbHNlIHJldHVybiAgci94LW9uZTsNCit9DQorDQorI2lmZGVmIF9fU1REQ19fDQorCWRvdWJsZSBlcmZjKGRvdWJsZSB4KSANCisjZWxzZQ0KKwlkb3VibGUgZXJmYyh4KSANCisJZG91YmxlIHg7DQorI2VuZGlmDQorew0KKwlpbnQgaHgsaXg7DQorCWRvdWJsZSBSLFMsUCxRLHMseSx6LHI7DQorCWh4ID0gX19nZXRfaGlfd29yZCh4KTsNCisJaXggPSBoeCYweDdmZmZmZmZmOw0KKwlpZihpeD49MHg3ZmYwMDAwMCkgewkJCS8qIGVyZmMobmFuKT1uYW4gKi8NCisJCQkJCQkvKiBlcmZjKCstaW5mKT0wLDIgKi8NCisJICAgIHJldHVybiAoZG91YmxlKSgoKHVuc2lnbmVkKWh4Pj4zMSk8PDEpK29uZS94Ow0KKwl9DQorDQorCWlmKGl4IDwgMHgzZmViMDAwMCkgewkJLyogfHh8PDAuODQzNzUgKi8NCisJICAgIGlmKGl4IDwgMHgzYzcwMDAwMCkgIAkvKiB8eHw8MioqLTU2ICovDQorCQlyZXR1cm4gb25lLXg7DQorCSAgICB6ID0geCp4Ow0KKwkgICAgciA9IHBwMCt6KihwcDEreioocHAyK3oqKHBwMyt6KnBwNCkpKTsNCisJICAgIHMgPSBvbmUreioocXExK3oqKHFxMit6KihxcTMreioocXE0K3oqcXE1KSkpKTsNCisJICAgIHkgPSByL3M7DQorCSAgICBpZihoeCA8IDB4M2ZkMDAwMDApIHsgIAkvKiB4PDEvNCAqLw0KKwkJcmV0dXJuIG9uZS0oeCt4KnkpOw0KKwkgICAgfSBlbHNlIHsNCisJCXIgPSB4Knk7DQorCQlyICs9ICh4LWhhbGYpOw0KKwkgICAgICAgIHJldHVybiBoYWxmIC0gciA7DQorCSAgICB9DQorCX0NCisJaWYoaXggPCAweDNmZjQwMDAwKSB7CQkvKiAwLjg0Mzc1IDw9IHx4fCA8IDEuMjUgKi8NCisJICAgIHMgPSBmYWJzKHgpLW9uZTsNCisJICAgIFAgPSBwYTArcyoocGExK3MqKHBhMitzKihwYTMrcyoocGE0K3MqKHBhNStzKnBhNikpKSkpOw0KKwkgICAgUSA9IG9uZStzKihxYTErcyoocWEyK3MqKHFhMytzKihxYTQrcyoocWE1K3MqcWE2KSkpKSk7DQorCSAgICBpZihoeD49MCkgew0KKwkgICAgICAgIHogID0gb25lLWVyeDsgcmV0dXJuIHogLSBQL1E7IA0KKwkgICAgfSBlbHNlIHsNCisJCXogPSBlcngrUC9ROyByZXR1cm4gb25lK3o7DQorCSAgICB9DQorCX0NCisJaWYgKGl4IDwgMHg0MDNjMDAwMCkgewkJLyogfHh8PDI4ICovDQorCSAgICB4ID0gZmFicyh4KTsNCisgCSAgICBzID0gb25lLyh4KngpOw0KKwkgICAgaWYoaXg8IDB4NDAwNkRCNkQpIHsJLyogfHh8IDwgMS8uMzUgfiAyLjg1NzE0MyovDQorCSAgICAgICAgUj1yYTArcyoocmExK3MqKHJhMitzKihyYTMrcyoocmE0K3MqKA0KKwkJCQlyYTUrcyoocmE2K3MqcmE3KSkpKSkpOw0KKwkgICAgICAgIFM9b25lK3MqKHNhMStzKihzYTIrcyooc2EzK3MqKHNhNCtzKigNCisJCQkJc2E1K3MqKHNhNitzKihzYTcrcypzYTgpKSkpKSkpOw0KKwkgICAgfSBlbHNlIHsJCQkvKiB8eHwgPj0gMS8uMzUgfiAyLjg1NzE0MyAqLw0KKwkJaWYoaHg8MCYmaXg+PTB4NDAxODAwMDApIHJldHVybiB0d28tdGlueTsvKiB4IDwgLTYgKi8NCisJICAgICAgICBSPXJiMCtzKihyYjErcyoocmIyK3MqKHJiMytzKihyYjQrcyooDQorCQkJCXJiNStzKnJiNikpKSkpOw0KKwkgICAgICAgIFM9b25lK3MqKHNiMStzKihzYjIrcyooc2IzK3MqKHNiNCtzKigNCisJCQkJc2I1K3MqKHNiNitzKnNiNykpKSkpKTsNCisJICAgIH0NCisJICAgIHogID0geDsNCisJICAgIF9fdHJ1bmNfbG9fd29yZCgmeik7DQorCSAgICByICA9ICBfX2llZWU3NTRfZXhwKC16KnotMC41NjI1KSoNCisJCQlfX2llZWU3NTRfZXhwKCh6LXgpKih6K3gpK1IvUyk7DQorCSAgICBpZihoeD4wKSByZXR1cm4gci94OyBlbHNlIHJldHVybiB0d28tci94Ow0KKwl9IGVsc2Ugew0KKwkgICAgLyogc2V0IHJhbmdlIGVycm9yICovDQorICAgICAgICAgICAgZXJybm8gPSBFUkFOR0U7DQorCSAgICBpZihoeD4wKSByZXR1cm4gdGlueSp0aW55OyBlbHNlIHJldHVybiB0d28tdGlueTsNCisJfQ0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvc2NhbGJuLlMgYi9taW5ndy13NjQtY3J0L21hdGgvc2NhbGJuLlMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODk0OGNlMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9zY2FsYm4uUwpAQCAtMCwwICsxLDE5IEBACisvKg0KKyAqIFdyaXR0ZW4gYnkgSi5ULiBDb25rbGluIDxqdGNAbmV0YnNkLm9yZz4uDQorICogUHVibGljIGRvbWFpbi4NCisgKi8NCisNCisJLmZpbGUJInNjYWxibi5TIg0KKwkudGV4dA0KKwkuYWxpZ24gNA0KKy5nbG9ibCBfc2NhbGJuDQorCS5kZWYJX3NjYWxibjsJLnNjbAkyOwkudHlwZQkzMjsJLmVuZGVmDQorX3NjYWxibjoNCisJZmlsZGwJMTIoJWVzcCkNCisJZmxkbAk0KCVlc3ApDQorCWZzY2FsZQ0KKwlmc3RwCSVzdCgxKQ0KKwlyZXQNCisNCisuZ2xvYmwgX3NjYWxibG4NCisJLnNldAlfc2NhbGJsbixfc2NhbGJuDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL3NjYWxibmYuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9zY2FsYm5mLlMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDAxMmMzNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9zY2FsYm5mLlMKQEAgLTAsMCArMSwxOSBAQAorLyoNCisgKiBXcml0dGVuIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIFB1YmxpYyBkb21haW4uDQorICovDQorDQorCS5maWxlCSJzY2FsYm5mLlMiDQorCS50ZXh0DQorCS5hbGlnbiA0DQorLmdsb2JsIF9zY2FsYm5mDQorCS5kZWYJX3NjYWxibmY7CS5zY2wJMjsJLnR5cGUJMzI7CS5lbmRlZg0KK19zY2FsYm5mOg0KKwlmaWxkbAk4KCVlc3ApDQorCWZsZHMJNCglZXNwKQ0KKwlmc2NhbGUNCisJZnN0cAklc3QoMSkNCisJcmV0DQorDQorLmdsb2JsIF9zY2FsYmxuZg0KKwkuc2V0CV9zY2FsYmxuZixfc2NhbGJuZg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9zY2FsYm5sLlMgYi9taW5ndy13NjQtY3J0L21hdGgvc2NhbGJubC5TCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcxODMxZmMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvc2NhbGJubC5TCkBAIC0wLDAgKzEsMjAgQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBDaGFuZ2VzIGZvciBsb25nIGRvdWJsZSBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBjeWdudXMuY29tPg0KKyAqIFB1YmxpYyBkb21haW4uDQorICovDQorDQorCS5maWxlCSJzY2FsYm5sLlMiDQorCS50ZXh0DQorCS5hbGlnbiA0DQorLmdsb2JsIF9zY2FsYm5sDQorCS5kZWYJX3NjYWxibmw7CS5zY2wJMjsJLnR5cGUJMzI7CS5lbmRlZg0KK19zY2FsYm5sOg0KKwlmaWxkbAkxNiglZXNwKQ0KKwlmbGR0CTQoJWVzcCkNCisJZnNjYWxlDQorCWZzdHAJJXN0KDEpDQorCXJldA0KKw0KKy5nbG9ibCBfc2NhbGJsbmwNCisJLnNldAlfc2NhbGJsbmwsX3NjYWxibmwNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvc2ZfZXJmLmMgYi9taW5ndy13NjQtY3J0L21hdGgvc2ZfZXJmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjI5N2NkOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9zZl9lcmYuYwpAQCAtMCwwICsxLDI2NCBAQAorLyogc2ZfZXJmLmMgLS0gZmxvYXQgdmVyc2lvbiBvZiBzX2VyZi5jLg0KKyAqIENvbnZlcnNpb24gdG8gZmxvYXQgYnkgSWFuIExhbmNlIFRheWxvciwgQ3lnbnVzIFN1cHBvcnQsIGlhbkBjeWdudXMuY29tLg0KKyAqLw0KKw0KKy8qDQorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAqIENvcHlyaWdodCAoQykgMTk5MyBieSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQorICoNCisgKiBEZXZlbG9wZWQgYXQgU3VuUHJvLCBhIFN1biBNaWNyb3N5c3RlbXMsIEluYy4gYnVzaW5lc3MuDQorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcw0KKyAqIHNvZnR3YXJlIGlzIGZyZWVseSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoaXMgbm90aWNlIA0KKyAqIGlzIHByZXNlcnZlZC4NCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICovDQorDQorLyoNCisjaW5jbHVkZSAiZmRsaWJtLmgiDQorKi8NCisjaW5jbHVkZSA8bWF0aC5oPg0KKyNpbmNsdWRlIDxzdGRpbnQuaD4NCisjaW5jbHVkZSA8ZXJybm8uaD4NCisNCisjZGVmaW5lIF9faWVlZTc1NF9leHBmIGV4cGYNCisNCisNCisNCit0eXBlZGVmIHVuaW9uDQorew0KKyAgZmxvYXQgdmFsdWU7DQorICB1aW50MzJfdCB3b3JkOw0KK30gaWVlZV9mbG9hdF9zaGFwZV90eXBlOw0KKw0KKy8qIEdldCBhIDMyIGJpdCBpbnQgZnJvbSBhIGZsb2F0LiAgKi8NCisNCitzdGF0aWMgaW5saW5lIGludA0KK19fZ2V0X2Zsb2F0X3dvcmQoZmxvYXQgZCkNCit7DQorICBpZWVlX2Zsb2F0X3NoYXBlX3R5cGUgdTsNCisgIHUudmFsdWUgPSBkOw0KKyAgcmV0dXJuIHUud29yZDsNCit9DQorDQorLyogU2V0IGEgZmxvYXQgZnJvbSBhIDMyIGJpdCBpbnQuICAqLw0KKw0KKyNkZWZpbmUgU0VUX0ZMT0FUX1dPUkQoZCxpKQkJCQkJXA0KK2RvIHsJCQkJCQkJCVwNCisgIGllZWVfZmxvYXRfc2hhcGVfdHlwZSBzZl91OwkJCQkJXA0KKyAgc2ZfdS53b3JkID0gKGkpOwkJCQkJCVwNCisgIChkKSA9IHNmX3UudmFsdWU7CQkJCQkJXA0KK30gd2hpbGUgKDApDQorDQorc3RhdGljIGlubGluZSB2b2lkIF9fdHJ1bmNfZmxvYXRfd29yZChmbG9hdCAqIHgpDQorew0KKyAgaWVlZV9mbG9hdF9zaGFwZV90eXBlIHU7DQorICB1LnZhbHVlID0gKiB4OwkgIA0KKyAgdS53b3JkICY9IDB4ZmZmZmYwMDA7DQorfQ0KKw0KKyNpZmRlZiBfX3Y4MTBfXw0KKyNkZWZpbmUgY29uc3QNCisjZW5kaWYNCisNCisjaWZkZWYgX19TVERDX18NCitzdGF0aWMgY29uc3QgZmxvYXQNCisjZWxzZQ0KK3N0YXRpYyBmbG9hdA0KKyNlbmRpZg0KK3RpbnkJICAgID0gMWUtMzAsDQoraGFsZj0gIDUuMDAwMDAwMDAwMGUtMDEsIC8qIDB4M0YwMDAwMDAgKi8NCitvbmUgPSAgMS4wMDAwMDAwMDAwZSswMCwgLyogMHgzRjgwMDAwMCAqLw0KK3R3byA9ICAyLjAwMDAwMDAwMDBlKzAwLCAvKiAweDQwMDAwMDAwICovDQorCS8qIGMgPSAoc3ViZmxvYXQpMC44NDUwNjI5MTE1MSAqLw0KK2VyeCA9ICA4LjQ1MDYyOTExNTFlLTAxLCAvKiAweDNmNTg1NjBiICovDQorLyoNCisgKiBDb2VmZmljaWVudHMgZm9yIGFwcHJveGltYXRpb24gdG8gIGVyZiBvbiBbMCwwLjg0Mzc1XQ0KKyAqLw0KK2VmeCA9ICAxLjI4Mzc5MTY2MTNlLTAxLCAvKiAweDNlMDM3NWQ0ICovDQorZWZ4OD0gIDEuMDI3MDMzMzI5MGUrMDAsIC8qIDB4M2Y4Mzc1ZDQgKi8NCitwcDAgID0gIDEuMjgzNzkxNjYxM2UtMDEsIC8qIDB4M2UwMzc1ZDQgKi8NCitwcDEgID0gLTMuMjUwNDIwOTg3NmUtMDEsIC8qIDB4YmVhNjZiZWIgKi8NCitwcDIgID0gLTIuODQ4MTc0OTgxOGUtMDIsIC8qIDB4YmNlOTUyOGYgKi8NCitwcDMgID0gLTUuNzcwMjcwMjQ3MGUtMDMsIC8qIDB4YmJiZDE0ODkgKi8NCitwcDQgID0gLTIuMzc2MzAxNzQ1MmUtMDUsIC8qIDB4YjdjNzU2YjEgKi8NCitxcTEgID0gIDMuOTc5MTcyMTEwNmUtMDEsIC8qIDB4M2VjYmJiY2UgKi8NCitxcTIgID0gIDYuNTAyMjI1MjUwMGUtMDIsIC8qIDB4M2Q4NTJhNjMgKi8NCitxcTMgID0gIDUuMDgxMzA2MjExN2UtMDMsIC8qIDB4M2JhNjgxMTYgKi8NCitxcTQgID0gIDEuMzI0OTQ3MzcwNGUtMDQsIC8qIDB4MzkwYWVlNDkgKi8NCitxcTUgID0gLTMuOTYwMjI4MjQxM2UtMDYsIC8qIDB4YjY4NGUyMWEgKi8NCisvKg0KKyAqIENvZWZmaWNpZW50cyBmb3IgYXBwcm94aW1hdGlvbiB0byAgZXJmICBpbiBbMC44NDM3NSwxLjI1XSANCisgKi8NCitwYTAgID0gLTIuMzYyMTE4NTY4M2UtMDMsIC8qIDB4YmIxYWNkYzYgKi8NCitwYTEgID0gIDQuMTQ4NTYxMDYwNGUtMDEsIC8qIDB4M2VkNDY4MDUgKi8NCitwYTIgID0gLTMuNzIyMDc4ODAwMmUtMDEsIC8qIDB4YmViZTkyMDggKi8NCitwYTMgID0gIDMuMTgzNDY2MTk2MWUtMDEsIC8qIDB4M2VhMmZlNTQgKi8NCitwYTQgID0gLTEuMTA4OTQ2OTQ5MmUtMDEsIC8qIDB4YmRlMzFjYzIgKi8NCitwYTUgID0gIDMuNTQ3ODMwNTA3MmUtMDIsIC8qIDB4M2QxMTUxYjMgKi8NCitwYTYgID0gLTIuMTY2Mzc1NTE3OGUtMDMsIC8qIDB4YmIwZGY5YzAgKi8NCitxYTEgID0gIDEuMDY0MjA4ODIwNWUtMDEsIC8qIDB4M2RkOWYzMzEgKi8NCitxYTIgID0gIDUuNDAzOTc5NDIwN2UtMDEsIC8qIDB4M2YwYTU3ODUgKi8NCitxYTMgID0gIDcuMTgyODY1NTg5OWUtMDIsIC8qIDB4M2Q5MzFhZTcgKi8NCitxYTQgID0gIDEuMjYxNzEyMTYzN2UtMDEsIC8qIDB4M2UwMTMzMDcgKi8NCitxYTUgID0gIDEuMzYzNzA4MzU4M2UtMDIsIC8qIDB4M2M1ZjZlMTMgKi8NCitxYTYgID0gIDEuMTk4NDUwMDEwM2UtMDIsIC8qIDB4M2M0NDVhYTMgKi8NCisvKg0KKyAqIENvZWZmaWNpZW50cyBmb3IgYXBwcm94aW1hdGlvbiB0byAgZXJmYyBpbiBbMS4yNSwxLzAuMzVdDQorICovDQorcmEwICA9IC05Ljg2NDk0NDAzMzNlLTAzLCAvKiAweGJjMjFhMDkzICovDQorcmExICA9IC02LjkzODU4NTYzOTBlLTAxLCAvKiAweGJmMzFhMGI3ICovDQorcmEyICA9IC0xLjA1NTg2MjYxNzVlKzAxLCAvKiAweGMxMjhmMDIyICovDQorcmEzICA9IC02LjIzNzUzMzE4NzllKzAxLCAvKiAweGMyNzk4MDU3ICovDQorcmE0ICA9IC0xLjYyMzk2NjY3NDhlKzAyLCAvKiAweGMzMjI2NThjICovDQorcmE1ICA9IC0xLjg0NjA1MDg3MjhlKzAyLCAvKiAweGMzMzg5YWU3ICovDQorcmE2ICA9IC04LjEyODc0Mzc0MzllKzAxLCAvKiAweGMyYTI5MzJiICovDQorcmE3ICA9IC05LjgxNDMyOTE0NzNlKzAwLCAvKiAweGMxMWQwNzdlICovDQorc2ExICA9ICAxLjk2NTEyNzE4MjBlKzAxLCAvKiAweDQxOWQzNWNlICovDQorc2EyICA9ICAxLjM3NjU3NzYwNjJlKzAyLCAvKiAweDQzMDlhODYzICovDQorc2EzICA9ICA0LjM0NTY1ODg3NDVlKzAyLCAvKiAweDQzZDk0ODZmICovDQorc2E0ICA9ICA2LjQ1Mzg3MjY4MDdlKzAyLCAvKiAweDQ0MjE1OGM5ICovDQorc2E1ICA9ICA0LjI5MDA4MTQ4MTllKzAyLCAvKiAweDQzZDY4MTBiICovDQorc2E2ICA9ICAxLjA4NjM1MDAyMTRlKzAyLCAvKiAweDQyZDk0NTFmICovDQorc2E3ICA9ICA2LjU3MDI0OTU1NzVlKzAwLCAvKiAweDQwZDIzZjdjICovDQorc2E4ICA9IC02LjA0MjQ0MTM1MzJlLTAyLCAvKiAweGJkNzc3Zjk3ICovDQorLyoNCisgKiBDb2VmZmljaWVudHMgZm9yIGFwcHJveGltYXRpb24gdG8gIGVyZmMgaW4gWzEvLjM1LDI4XQ0KKyAqLw0KK3JiMCAgPSAtOS44NjQ5NDMxMDIwZS0wMywgLyogMHhiYzIxYTA5MiAqLw0KK3JiMSAgPSAtNy45OTI4MzI2NjA3ZS0wMSwgLyogMHhiZjRjOWRkNCAqLw0KK3JiMiAgPSAtMS43NzU3OTU1NTUxZSswMSwgLyogMHhjMThlMTA0YiAqLw0KK3JiMyAgPSAtMS42MDYzNjM4MzA2ZSswMiwgLyogMHhjMzIwYTJlYSAqLw0KK3JiNCAgPSAtNi4zNzU2NjQ2NzI5ZSswMiwgLyogMHhjNDFmNjQ0MSAqLw0KK3JiNSAgPSAtMS4wMjUwOTUwOTI4ZSswMywgLyogMHhjNDgwMjMwYiAqLw0KK3JiNiAgPSAtNC44MzUxOTE5NTU2ZSswMiwgLyogMHhjM2YxYzI3NSAqLw0KK3NiMSAgPSAgMy4wMzM4MDYwMzc5ZSswMSwgLyogMHg0MWYyYjQ1OSAqLw0KK3NiMiAgPSAgMy4yNTc5MjUxMDk5ZSswMiwgLyogMHg0M2EyZTU3MSAqLw0KK3NiMyAgPSAgMS41MzY3Mjk2MTQzZSswMywgLyogMHg0NGMwMTc1OSAqLw0KK3NiNCAgPSAgMy4xOTk4NTgxNTQzZSswMywgLyogMHg0NTQ3ZmRiYiAqLw0KK3NiNSAgPSAgMi41NTMwNTAyOTMwZSswMywgLyogMHg0NTFmOTBjZSAqLw0KK3NiNiAgPSAgNC43NDUyODUzMzk0ZSswMiwgLyogMHg0M2VkNDNhNyAqLw0KK3NiNyAgPSAtMi4yNDQwOTUyMzAxZSswMTsgLyogMHhjMWIzODcxMiAqLw0KKw0KKyNpZmRlZiBfX1NURENfXw0KKwlmbG9hdCBlcmZmKGZsb2F0IHgpIA0KKyNlbHNlDQorCWZsb2F0IGVyZmYoeCkgDQorCWZsb2F0IHg7DQorI2VuZGlmDQorew0KKwlpbnQzMl90IGh4LGl4LGk7DQorCWZsb2F0IFIsUyxQLFEscyx5LHoscjsNCisJaHggPSBfX2dldF9mbG9hdF93b3JkKHgpOw0KKwlpeCA9IGh4JjB4N2ZmZmZmZmY7DQorCWlmKCEoaXg8MHg3ZjgwMDAwMEwpKSB7CQkvKiBlcmYobmFuKT1uYW4gKi8NCisJICAgIGkgPSAoKHVpbnQzMl90KWh4Pj4zMSk8PDE7DQorCSAgICByZXR1cm4gKGZsb2F0KSgxLWkpK29uZS94OwkvKiBlcmYoKy1pbmYpPSstMSAqLw0KKwl9DQorDQorCWlmKGl4IDwgMHgzZjU4MDAwMCkgewkJLyogfHh8PDAuODQzNzUgKi8NCisJICAgIGlmKGl4IDwgMHgzMTgwMDAwMCkgeyAJLyogfHh8PDIqKi0yOCAqLw0KKwkgICAgICAgIGlmIChpeCA8IDB4MDQwMDAwMDApIA0KKwkJICAgIC8qYXZvaWQgdW5kZXJmbG93ICovDQorCQkgICAgcmV0dXJuIChmbG9hdCkwLjEyNSooKGZsb2F0KTguMCp4K2VmeDgqeCk7DQorCQlyZXR1cm4geCArIGVmeCp4Ow0KKwkgICAgfQ0KKwkgICAgeiA9IHgqeDsNCisJICAgIHIgPSBwcDAreioocHAxK3oqKHBwMit6KihwcDMreipwcDQpKSk7DQorCSAgICBzID0gb25lK3oqKHFxMSt6KihxcTIreioocXEzK3oqKHFxNCt6KnFxNSkpKSk7DQorCSAgICB5ID0gci9zOw0KKwkgICAgcmV0dXJuIHggKyB4Knk7DQorCX0NCisJaWYoaXggPCAweDNmYTAwMDAwKSB7CQkvKiAwLjg0Mzc1IDw9IHx4fCA8IDEuMjUgKi8NCisJICAgIHMgPSBmYWJzZih4KS1vbmU7DQorCSAgICBQID0gcGEwK3MqKHBhMStzKihwYTIrcyoocGEzK3MqKHBhNCtzKihwYTUrcypwYTYpKSkpKTsNCisJICAgIFEgPSBvbmUrcyoocWExK3MqKHFhMitzKihxYTMrcyoocWE0K3MqKHFhNStzKnFhNikpKSkpOw0KKwkgICAgaWYoaHg+PTApIHJldHVybiBlcnggKyBQL1E7IGVsc2UgcmV0dXJuIC1lcnggLSBQL1E7DQorCX0NCisJaWYgKGl4ID49IDB4NDBjMDAwMDApIHsJCS8qIGluZj58eHw+PTYgKi8NCisJICAgIGlmKGh4Pj0wKSByZXR1cm4gb25lLXRpbnk7IGVsc2UgcmV0dXJuIHRpbnktb25lOw0KKwl9DQorCXggPSBmYWJzZih4KTsNCisgCXMgPSBvbmUvKHgqeCk7DQorCWlmKGl4PCAweDQwMzZEQjZFKSB7CS8qIHx4fCA8IDEvMC4zNSAqLw0KKwkgICAgUj1yYTArcyoocmExK3MqKHJhMitzKihyYTMrcyoocmE0K3MqKA0KKwkJCQlyYTUrcyoocmE2K3MqcmE3KSkpKSkpOw0KKwkgICAgUz1vbmUrcyooc2ExK3MqKHNhMitzKihzYTMrcyooc2E0K3MqKA0KKwkJCQlzYTUrcyooc2E2K3MqKHNhNytzKnNhOCkpKSkpKSk7DQorCX0gZWxzZSB7CS8qIHx4fCA+PSAxLzAuMzUgKi8NCisJICAgIFI9cmIwK3MqKHJiMStzKihyYjIrcyoocmIzK3MqKHJiNCtzKigNCisJCQkJcmI1K3MqcmI2KSkpKSk7DQorCSAgICBTPW9uZStzKihzYjErcyooc2IyK3MqKHNiMytzKihzYjQrcyooDQorCQkJCXNiNStzKihzYjYrcypzYjcpKSkpKSk7DQorCX0NCisJX190cnVuY19mbG9hdF93b3JkICgmeik7DQorCXIgID0gIF9faWVlZTc1NF9leHBmKC16KnotKGZsb2F0KTAuNTYyNSkqX19pZWVlNzU0X2V4cGYoKHoteCkqKHoreCkrUi9TKTsNCisJaWYoaHg+PTApIHJldHVybiBvbmUtci94OyBlbHNlIHJldHVybiAgci94LW9uZTsNCit9DQorDQorI2lmZGVmIF9fU1REQ19fDQorCWZsb2F0IGVyZmNmKGZsb2F0IHgpIA0KKyNlbHNlDQorCWZsb2F0IGVyZmNmKHgpIA0KKwlmbG9hdCB4Ow0KKyNlbmRpZg0KK3sNCisJaW50MzJfdCBoeCxpeDsNCisJZmxvYXQgUixTLFAsUSxzLHkseixyOw0KKwloeCA9IF9fZ2V0X2Zsb2F0X3dvcmQoeCk7DQorCWl4ID0gaHgmMHg3ZmZmZmZmZjsNCisJaWYoIShpeDwweDdmODAwMDAwTCkpIHsJCQkvKiBlcmZjKG5hbik9bmFuICovDQorCQkJCQkJLyogZXJmYygrLWluZik9MCwyICovDQorCSAgICByZXR1cm4gKGZsb2F0KSgoKHVpbnQzMl90KWh4Pj4zMSk8PDEpK29uZS94Ow0KKwl9DQorDQorCWlmKGl4IDwgMHgzZjU4MDAwMCkgewkJLyogfHh8PDAuODQzNzUgKi8NCisJICAgIGlmKGl4IDwgMHgyMzgwMDAwMCkgIAkvKiB8eHw8MioqLTU2ICovDQorCQlyZXR1cm4gb25lLXg7DQorCSAgICB6ID0geCp4Ow0KKwkgICAgciA9IHBwMCt6KihwcDEreioocHAyK3oqKHBwMyt6KnBwNCkpKTsNCisJICAgIHMgPSBvbmUreioocXExK3oqKHFxMit6KihxcTMreioocXE0K3oqcXE1KSkpKTsNCisJICAgIHkgPSByL3M7DQorCSAgICBpZihoeCA8IDB4M2U4MDAwMDApIHsgIAkvKiB4PDEvNCAqLw0KKwkJcmV0dXJuIG9uZS0oeCt4KnkpOw0KKwkgICAgfSBlbHNlIHsNCisJCXIgPSB4Knk7DQorCQlyICs9ICh4LWhhbGYpOw0KKwkgICAgICAgIHJldHVybiBoYWxmIC0gciA7DQorCSAgICB9DQorCX0NCisJaWYoaXggPCAweDNmYTAwMDAwKSB7CQkvKiAwLjg0Mzc1IDw9IHx4fCA8IDEuMjUgKi8NCisJICAgIHMgPSBmYWJzZih4KS1vbmU7DQorCSAgICBQID0gcGEwK3MqKHBhMStzKihwYTIrcyoocGEzK3MqKHBhNCtzKihwYTUrcypwYTYpKSkpKTsNCisJICAgIFEgPSBvbmUrcyoocWExK3MqKHFhMitzKihxYTMrcyoocWE0K3MqKHFhNStzKnFhNikpKSkpOw0KKwkgICAgaWYoaHg+PTApIHsNCisJICAgICAgICB6ICA9IG9uZS1lcng7IHJldHVybiB6IC0gUC9ROyANCisJICAgIH0gZWxzZSB7DQorCQl6ID0gZXJ4K1AvUTsgcmV0dXJuIG9uZSt6Ow0KKwkgICAgfQ0KKwl9DQorDQorCWlmIChpeCA8IDB4NDFlMDAwMDApIHsJCS8qIHx4fDwyOCAqLw0KKwkgICAgeCA9IGZhYnNmKHgpOw0KKyAJICAgIHMgPSBvbmUvKHgqeCk7DQorCSAgICBpZihpeDwgMHg0MDM2REI2RCkgewkvKiB8eHwgPCAxLy4zNSB+IDIuODU3MTQzKi8NCisJICAgICAgICBSPXJhMCtzKihyYTErcyoocmEyK3MqKHJhMytzKihyYTQrcyooDQorCQkJCXJhNStzKihyYTYrcypyYTcpKSkpKSk7DQorCSAgICAgICAgUz1vbmUrcyooc2ExK3MqKHNhMitzKihzYTMrcyooc2E0K3MqKA0KKwkJCQlzYTUrcyooc2E2K3MqKHNhNytzKnNhOCkpKSkpKSk7DQorCSAgICB9IGVsc2UgewkJCS8qIHx4fCA+PSAxLy4zNSB+IDIuODU3MTQzICovDQorCQlpZihoeDwwJiZpeD49MHg0MGMwMDAwMCkgcmV0dXJuIHR3by10aW55Oy8qIHggPCAtNiAqLw0KKwkgICAgICAgIFI9cmIwK3MqKHJiMStzKihyYjIrcyoocmIzK3MqKHJiNCtzKigNCisJCQkJcmI1K3MqcmI2KSkpKSk7DQorCSAgICAgICAgUz1vbmUrcyooc2IxK3MqKHNiMitzKihzYjMrcyooc2I0K3MqKA0KKwkJCQlzYjUrcyooc2I2K3Mqc2I3KSkpKSkpOw0KKwkgICAgfQ0KKwkgICAgX190cnVuY19mbG9hdF93b3JkICgmeik7DQorCSAgICByICA9ICBfX2llZWU3NTRfZXhwZigteip6LShmbG9hdCkwLjU2MjUpKg0KKwkJCV9faWVlZTc1NF9leHBmKCh6LXgpKih6K3gpK1IvUyk7DQorCSAgICBpZihoeD4wKSByZXR1cm4gci94OyBlbHNlIHJldHVybiB0d28tci94Ow0KKwl9IGVsc2Ugew0KKwkgICAgLyogc2V0IHJhbmdlIGVycm9yICovDQorICAgICAgICAgICAgZXJybm8gPSBFUkFOR0U7DQorCSAgICBpZihoeD4wKSByZXR1cm4gdGlueSp0aW55OyBlbHNlIHJldHVybiB0d28tdGlueTsNCisJfQ0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvc2lnbmJpdC5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL3NpZ25iaXQuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lYmY3ZmM2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL3NpZ25iaXQuYwpAQCAtMCwwICsxLDEzIEBACisjZGVmaW5lIF9fRlBfU0lHTkJJVCAgMHgwMjAwDQorDQoraW50IF9fc2lnbmJpdCAoZG91YmxlIHgpIHsNCisgIHVuc2lnbmVkIHNob3J0IHN3Ow0KKyAgX19hc21fXyAoImZ4YW07IGZzdHN3ICUlYXg7Ig0KKwkgICA6ICI9YSIgKHN3KQ0KKwkgICA6ICJ0IiAoeCkgKTsNCisgIHJldHVybiAoc3cgJiBfX0ZQX1NJR05CSVQpICE9IDA7DQorfQ0KKw0KKyN1bmRlZiBzaWduYml0DQoraW50IF9fYXR0cmlidXRlX18gKChhbGlhcyAoIl9fc2lnbmJpdCIpKSkgc2lnbmJpdCAoZG91YmxlKTsNCisNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvc2lnbmJpdGYuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9zaWduYml0Zi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIyYTcwNTgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvc2lnbmJpdGYuYwpAQCAtMCwwICsxLDEwIEBACisjZGVmaW5lIF9fRlBfU0lHTkJJVCAgMHgwMjAwDQorDQoraW50IF9fc2lnbmJpdGYgKGZsb2F0IHgpIHsNCisgIHVuc2lnbmVkIHNob3J0IHN3Ow0KKyAgX19hc21fXyAoImZ4YW07IGZzdHN3ICUlYXg7Ig0KKwkgICA6ICI9YSIgKHN3KQ0KKwkgICA6ICJ0IiAoeCkgKTsNCisgIHJldHVybiAoc3cgJiBfX0ZQX1NJR05CSVQpICE9IDA7DQorfQ0KK2ludCBfX2F0dHJpYnV0ZV9fICgoYWxpYXMgKCJfX3NpZ25iaXRmIikpKSBzaWduYml0ZiAoZmxvYXQpOw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9zaWduYml0bC5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL3NpZ25iaXRsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWU3NTQyMAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9zaWduYml0bC5jCkBAIC0wLDAgKzEsMTEgQEAKKyNkZWZpbmUgX19GUF9TSUdOQklUICAweDAyMDANCisNCitpbnQgX19zaWduYml0bCAobG9uZyBkb3VibGUgeCkgew0KKyAgdW5zaWduZWQgc2hvcnQgc3c7DQorICBfX2FzbV9fICgiZnhhbTsgZnN0c3cgJSVheDsiDQorCSAgIDogIj1hIiAoc3cpDQorCSAgIDogInQiICh4KSApOw0KKyAgcmV0dXJuIChzdyAmIF9fRlBfU0lHTkJJVCkgIT0gMDsNCit9DQorDQoraW50IF9fYXR0cmlidXRlX18gKChhbGlhcyAoIl9fc2lnbmJpdGwiKSkpIHNpZ25iaXRsIChsb25nIGRvdWJsZSk7DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL3NpbmYuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC9zaW5mLlMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWE0MGMzNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9zaW5mLlMKQEAgLTAsMCArMSwzMiBAQAorLyoNCisgKiBXcml0dGVuIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIFB1YmxpYyBkb21haW4uDQorICoNCisgKiBBZGFwdGVkIGZvciBgbG9uZyBkb3VibGUnIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQGN5Z251cy5jb20+Lg0KKyAqIA0KKyAqIFJlbW92ZWQgaGVhZGVyIGZpbGUgZGVwZW5kZW5jeSBmb3IgdXNlIGluIGxpYm1pbmd3ZXguYSBieQ0KKyAqICAgRGFubnkgU21pdGggPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0Pg0KKyAqLw0KKw0KKwkuZmlsZQkic2luZi5TIg0KKwkudGV4dA0KKwkuYWxpZ24gNA0KKy5nbG9ibCBfc2luZg0KKwkuZGVmCV9zaW5mOwkuc2NsCTI7CS50eXBlCTMyOwkuZW5kZWYNCitfc2luZjoNCisJZmxkcwk0KCVlc3ApDQorCWZzaW4NCisJZm5zdHN3CSVheA0KKwl0ZXN0bAkkMHg0MDAsJWVheA0KKwlqbnoJMWYNCisJcmV0DQorMToJZmxkcGkNCisJZmFkZAklc3QoMCkNCisJZnhjaAklc3QoMSkNCisyOglmcHJlbTENCisJZm5zdHN3CSVheA0KKwl0ZXN0bAkkMHg0MDAsJWVheA0KKwlqbnoJMmINCisJZnN0cAklc3QoMSkNCisJZnNpbg0KKwlyZXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvc2luaGYuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC9zaW5oZi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU3NzBjYjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvc2luaGYuYwpAQCAtMCwwICsxLDMgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorZmxvYXQgc2luaGYgKGZsb2F0IHgpDQorICB7cmV0dXJuIChmbG9hdCkgc2luaCAoeCk7fQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9zaW5obC5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL3NpbmhsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDRiZGI3MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC9zaW5obC5jCkBAIC0wLDAgKzEsMTA2IEBACisjaW5jbHVkZSAiY2VwaGVzX21jb25mLmgiDQorDQorI2lmbmRlZiBfU0VUX0VSUk5PDQorI2RlZmluZSBfU0VUX0VSUk5PKHgpDQorI2VuZGlmDQorDQorI2lmZGVmIFVOSw0KK3N0YXRpYyBsb25nIGRvdWJsZSBQW10gPSB7DQorIDEuNzU1MDc2OTAzMjk3NTM3NzAzMjY4MUUtNkwsDQorIDQuMTY4MDcwMjE3NTg3NDI2ODcxNDUzOUUtNEwsDQorIDMuMDk5MzUzMjUyMDQyNTQxOTAwMjQwOUUtMkwsDQorIDkuOTk5OTk5OTk5OTk5OTk5OTk5ODAwMkUtMUwsDQorfTsNCitzdGF0aWMgbG9uZyBkb3VibGUgUVtdID0gew0KKyAxLjc0NTM5NjU0NDg2MjAxNTE0ODQ2NjBFLThMLA0KKy01LjkxMTY2NzM2ODI2NTE5NTI0MTk1NzFFLTZMLA0KKyAxLjA1OTkyNTIzMTU2NzczODkzMzk1MzBFLTNMLA0KKy0xLjE0MDM4ODA0ODc3NDQ3NDkwNTY2NzVFLTFMLA0KKyA2LjAwMDAwMDAwMDAwMDAwMDAwMDAyMDBFMEwsDQorfTsNCisjZW5kaWYNCisNCisjaWZkZWYgSUJNUEMNCitzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgUFtdID0gew0KKzB4ZWM2YSwweGQ5NDIsMHhmYmIzLDB4ZWI4ZiwweDNmZWIsIFhQRA0KKzB4MzY1ZSwweGIzMGEsMHhlNDM3LDB4ZGE4NiwweDNmZjMsIFhQRA0KKzB4ODg5MCwweDAxZjYsMHgyNjEyLDB4ZmRlNiwweDNmZjksIFhQRA0KKzB4MDAwMCwweDAwMDAsMHgwMDAwLDB4ODAwMCwweDNmZmYsIFhQRA0KK307DQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFFbXSA9IHsNCisweDRlZGQsMHg0YzIxLDB4YWQwOSwweDk1ZWQsMHgzZmU1LCBYUEQNCisweDQzNzYsMHg5YjcwLDB4ZDYwNSwweGM2NWMsMHhiZmVkLCBYUEQNCisweGM4YWQsMHg1ZDIxLDB4MzA2OSwweDhhZWQsMHgzZmY1LCBYUEQNCisweDljMzIsMHg2Mzc0LDB4MmQ0YiwweGU5OGQsMHhiZmZiLCBYUEQNCisweDAwMDAsMHgwMDAwLDB4MDAwMCwweGMwMDAsMHg0MDAxLCBYUEQNCit9Ow0KKyNlbmRpZg0KKw0KKyNpZmRlZiBNSUVFRQ0KK3N0YXRpYyBsb25nIFBbXSA9IHsNCisweDNmZWIwMDAwLDB4ZWI4ZmZiYjMsMHhkOTQyZWM2YSwNCisweDNmZjMwMDAwLDB4ZGE4NmU0MzcsMHhiMzBhMzY1ZSwNCisweDNmZjkwMDAwLDB4ZmRlNjI2MTIsMHgwMWY2ODg5MCwNCisweDNmZmYwMDAwLDB4ODAwMDAwMDAsMHgwMDAwMDAwMCwNCit9Ow0KK3N0YXRpYyBsb25nIFFbXSA9IHsNCisweDNmZTUwMDAwLDB4OTVlZGFkMDksMHg0YzIxNGVkZCwNCisweGJmZWQwMDAwLDB4YzY1Y2Q2MDUsMHg5YjcwNDM3NiwNCisweDNmZjUwMDAwLDB4OGFlZDMwNjksMHg1ZDIxYzhhZCwNCisweGJmZmIwMDAwLDB4ZTk4ZDJkNGIsMHg2Mzc0OWMzMiwNCisweDQwMDEwMDAwLDB4YzAwMDAwMDAsMHgwMDAwMDAwMCwNCit9Ow0KKyNlbmRpZg0KKw0KK2xvbmcgZG91YmxlIHNpbmhsKHgpDQorbG9uZyBkb3VibGUgeDsNCit7DQorbG9uZyBkb3VibGUgYTsNCisNCisjaWZkZWYgTUlOVVNaRVJPDQoraWYoIHggPT0gMC4wICkNCisJcmV0dXJuKHgpOw0KKyNlbmRpZg0KKyNpZmRlZiBOQU5TDQoraWYgKGlzbmFubCh4KSkNCisJew0KKwlfU0VUX0VSUk5PKEVET00pOw0KKwl9DQorI2VuZGlmDQorYSA9IGZhYnNsKHgpOw0KK2lmKCAoeCA+IChNQVhMT0dMICsgTE9HRTJMKSkgfHwgKHggPiAtKE1JTkxPR0wtTE9HRTJMKSApICkNCisJew0KKwltdGhlcnIoICJzaW5obCIsIERPTUFJTiApOw0KKwlfU0VUX0VSUk5PKEVSQU5HRSk7DQorI2lmZGVmIElORklOSVRJRVMNCisJaWYoIHggPiAwLjBMICkNCisJCXJldHVybiggSU5GSU5JVFlMICk7DQorCWVsc2UNCisJCXJldHVybiggLUlORklOSVRZTCApOw0KKyNlbHNlDQorCWlmKCB4ID4gMC4wTCApDQorCQlyZXR1cm4oIE1BWE5VTUwgKTsNCisJZWxzZQ0KKwkJcmV0dXJuKCAtTUFYTlVNTCApOw0KKyNlbmRpZg0KKwl9DQoraWYoIGEgPiAxLjBMICkNCisJew0KKwlpZiggYSA+PSAoTUFYTE9HTCAtIExPR0UyTCkgKQ0KKwkJew0KKwkJYSA9IGV4cGwoMC41TCphKTsNCisJCWEgPSAoMC41TCAqIGEpICogYTsNCisJCWlmKCB4IDwgMC4wTCApDQorCQkJYSA9IC1hOw0KKwkJcmV0dXJuKGEpOw0KKwkJfQ0KKwlhID0gZXhwbChhKTsNCisJYSA9IDAuNUwqYSAtICgwLjVML2EpOw0KKwlpZiggeCA8IDAuMEwgKQ0KKwkJYSA9IC1hOw0KKwlyZXR1cm4oYSk7DQorCX0NCisNCithICo9IGE7DQorcmV0dXJuKCB4ICsgeCAqIGEgKiAocG9sZXZsbChhLFAsMykvcG9sZXZsbChhLFEsNCkpICk7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC9zaW5sLlMgYi9taW5ndy13NjQtY3J0L21hdGgvc2lubC5TCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdhMWFkZWYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvc2lubC5TCkBAIC0wLDAgKzEsMzIgQEAKKy8qDQorICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4NCisgKiBQdWJsaWMgZG9tYWluLg0KKyAqDQorICogQWRhcHRlZCBmb3IgYGxvbmcgZG91YmxlJyBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBjeWdudXMuY29tPi4NCisgKiANCisgKiBSZW1vdmVkIGhlYWRlciBmaWxlIGRlcGVuZGVuY3kgZm9yIHVzZSBpbiBsaWJtaW5nd2V4LmEgYnkNCisgKiAgIERhbm55IFNtaXRoIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4NCisgKi8NCisNCisJLmZpbGUJInNpbmwuUyINCisJLnRleHQNCisJLmFsaWduIDQNCisuZ2xvYmwgX3NpbmwNCisJLmRlZglfc2lubDsJLnNjbAkyOwkudHlwZQkzMjsJLmVuZGVmDQorX3Npbmw6DQorCWZsZHQJNCglZXNwKQ0KKwlmc2luDQorCWZuc3RzdwklYXgNCisJdGVzdGwJJDB4NDAwLCVlYXgNCisJam56CTFmDQorCXJldA0KKzE6CWZsZHBpDQorCWZhZGQJJXN0KDApDQorCWZ4Y2gJJXN0KDEpDQorMjoJZnByZW0xDQorCWZuc3RzdwklYXgNCisJdGVzdGwJJDB4NDAwLCVlYXgNCisJam56CTJiDQorCWZzdHAJJXN0KDEpDQorCWZzaW4NCisJcmV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL3NxcnRmLmMgYi9taW5ndy13NjQtY3J0L21hdGgvc3FydGYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MjVhNjFkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL3NxcnRmLmMKQEAgLTAsMCArMSwyMCBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8ZXJybm8uaD4NCisNCitleHRlcm4gZmxvYXQgIF9fUU5BTkY7DQorDQorZmxvYXQNCitzcXJ0ZiAoZmxvYXQgeCkNCit7DQorICBpZiAoeCA8IDAuMEYgKQ0KKyAgICB7DQorICAgICAgZXJybm8gPSBFRE9NOw0KKyAgICAgIHJldHVybiBfX1FOQU5GOw0KKyAgICB9DQorICBlbHNlDQorICAgIHsNCisgICAgICBmbG9hdCByZXM7DQorICAgICAgYXNtICgiZnNxcnQiIDogIj10IiAocmVzKSA6ICIwIiAoeCkpOw0KKyAgICAgIHJldHVybiByZXM7DQorICAgIH0NCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL3NxcnRsLmMgYi9taW5ndy13NjQtY3J0L21hdGgvc3FydGwuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMGM4MjNjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL3NxcnRsLmMKQEAgLTAsMCArMSwyMCBAQAorI2luY2x1ZGUgPG1hdGguaD4NCisjaW5jbHVkZSA8ZXJybm8uaD4NCisNCitleHRlcm4gbG9uZyBkb3VibGUgIF9fUU5BTkw7DQorDQorbG9uZyBkb3VibGUNCitzcXJ0bCAobG9uZyBkb3VibGUgeCkNCit7DQorICBpZiAoeCA8IDAuMEwgKQ0KKyAgICB7DQorICAgICAgZXJybm8gPSBFRE9NOw0KKyAgICAgIHJldHVybiBfX1FOQU5MOw0KKyAgICB9DQorICBlbHNlDQorICAgIHsNCisgICAgICBsb25nIGRvdWJsZSByZXM7DQorICAgICAgYXNtICgiZnNxcnQiIDogIj10IiAocmVzKSA6ICIwIiAoeCkpOw0KKyAgICAgIHJldHVybiByZXM7DQorICAgIH0NCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL3RhbmYuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC90YW5mLlMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWU3NjAzYgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC90YW5mLlMKQEAgLTAsMCArMSwzMSBAQAorLyoNCisgKiBXcml0dGVuIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIFB1YmxpYyBkb21haW4uDQorICogDQorICogUmVtb3ZlZCBoZWFkZXIgZmlsZSBkZXBlbmRlbmN5IGZvciB1c2UgaW4gbGlibWluZ3dleC5hIGJ5DQorICogICBEYW5ueSBTbWl0aCA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+DQorICovDQorCS5maWxlCSJ0YW5mLlMiDQorCS50ZXh0DQorCS5hbGlnbiA0DQorLmdsb2JsIF90YW5mDQorCS5kZWYJX3RhbmY7CS5zY2wJMjsJLnR5cGUJMzI7CS5lbmRlZg0KK190YW5mOg0KKwlmbGRzCTQoJWVzcCkNCisJZnB0YW4NCisJZm5zdHN3CSVheA0KKwl0ZXN0bAkkMHg0MDAsJWVheA0KKwlqbnoJMWYNCisJZnN0cAklc3QoMCkNCisJcmV0DQorMToJZmxkcGkNCisJZmFkZAklc3QoMCkNCisJZnhjaAklc3QoMSkNCisyOglmcHJlbTENCisJZnN0c3cJJWF4DQorCXRlc3RsCSQweDQwMCwlZWF4DQorCWpuegkyYg0KKwlmc3RwCSVzdCgxKQ0KKwlmcHRhbg0KKwlmc3RwCSVzdCgwKQ0KKwlyZXQNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvdGFuaGYuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC90YW5oZi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBmMWI1YTgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvdGFuaGYuYwpAQCAtMCwwICsxLDMgQEAKKyNpbmNsdWRlIDxtYXRoLmg+DQorZmxvYXQgdGFuaGYgKGZsb2F0IHgpDQorICB7cmV0dXJuIChmbG9hdCkgdGFuaCAoeCk7fQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC90YW5obC5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL3RhbmhsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzNkZjFiMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC90YW5obC5jCkBAIC0wLDAgKzEsOTAgQEAKKyNpbmNsdWRlICJjZXBoZXNfbWNvbmYuaCINCisjaWZuZGVmIF9TRVRfRVJSTk8NCisjZGVmaW5lIF9TRVRfRVJSTk8oeCkNCisjZW5kaWYNCisNCisjaWZkZWYgVU5LDQorc3RhdGljIGxvbmcgZG91YmxlIFBbXSA9IHsNCistNi44NDczNzM5MzkyNjc3MTAwODcyODY5RS01TCwNCistOS41NjU4MjgzMTExNzk0NjQxNTg5MDExRS0xTCwNCistOC40MDUzNTY4NTk5NjcyMjg0NDg4NDY1RTFMLA0KKy0xLjMwODA0MjU3MDQ3MTI4MjU5NDU1NTNFM0wsDQorfTsNCitzdGF0aWMgbG9uZyBkb3VibGUgUVtdID0gew0KKy8qIDEuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUwTCwqLw0KKyA5LjYyNTk1MDE4Mzg4NDAzMzY5NDY4NzJFMUwsDQorIDEuODIxODExNzkwMzY0NTU1OTA2MDIzMkUzTCwNCisgMy45MjQxMjc3MTE0MTM4NDc3ODQ1NzgwRTNMLA0KK307DQorI2VuZGlmDQorDQorI2lmZGVmIElCTVBDDQorc3RhdGljIHVuc2lnbmVkIHNob3J0IFBbXSA9IHsNCisweGQyYTQsMHgxYjBjLDB4OGYxNSwweDhmOTksMHhiZmYxLCBYUEQNCisweDU5NTksMHg5MTExLDB4OWNjNywweGY0ZTIsMHhiZmZlLCBYUEQNCisweGI1NzYsMHhlZjVlLDB4NmQ1NywweGE4MWIsMHhjMDA1LCBYUEQNCisweGUzYmUsMHhiZmJkLDB4NWNiYywweGEzODEsMHhjMDA5LCBYUEQNCit9Ow0KK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBRW10gPSB7DQorLyoweDAwMDAsMHgwMDAwLDB4MDAwMCwweDgwMDAsMHgzZmZmLCovDQorMHg2ODdmLDB4Y2UyNCwweGRkNmMsMHhjMDg0LDB4NDAwNSwgWFBEDQorMHgzNzkzLDB4Yzk1ZiwweGZhMmYsMHhlM2I5LDB4NDAwOSwgWFBEDQorMHhkNWEyLDB4MWY5YywweDBiMWIsMHhmNTQyLDB4NDAwYSwgWFBEDQorfTsNCisjZW5kaWYNCisNCisjaWZkZWYgTUlFRUUNCitzdGF0aWMgbG9uZyBQW10gPSB7DQorMHhiZmYxMDAwMCwweDhmOTk4ZjE1LDB4MWIwY2QyYTQsDQorMHhiZmZlMDAwMCwweGY0ZTI5Y2M3LDB4OTExMTU5NTksDQorMHhjMDA1MDAwMCwweGE4MWI2ZDU3LDB4ZWY1ZWI1NzYsDQorMHhjMDA5MDAwMCwweGEzODE1Y2JjLDB4YmZiZGUzYmUsDQorfTsNCitzdGF0aWMgbG9uZyBRW10gPSB7DQorLyoweDNmZmYwMDAwLDB4ODAwMDAwMDAsMHgwMDAwMDAwMCwqLw0KKzB4NDAwNTAwMDAsMHhjMDg0ZGQ2YywweGNlMjQ2ODdmLA0KKzB4NDAwOTAwMDAsMHhlM2I5ZmEyZiwweGM5NWYzNzkzLA0KKzB4NDAwYTAwMDAsMHhmNTQyMGIxYiwweDFmOWNkNWEyLA0KK307DQorI2VuZGlmDQorDQorbG9uZyBkb3VibGUgdGFuaGwoeCkNCitsb25nIGRvdWJsZSB4Ow0KK3sNCitsb25nIGRvdWJsZSBzLCB6Ow0KKw0KKyNpZmRlZiBNSU5VU1pFUk8NCitpZiggeCA9PSAwLjBMICkNCisJcmV0dXJuKHgpOw0KKyNlbmRpZg0KK2lmIChpc25hbmwoeCkpDQorCXsNCisJX1NFVF9FUlJOTyAoRURPTSk7DQorCXJldHVybiB4Ow0KKwl9DQorDQoreiA9IGZhYnNsKHgpOw0KK2lmKCB6ID4gMC41TCAqIE1BWExPR0wgKQ0KKwl7DQorCV9TRVRfRVJSTk8gKEVSQU5HRSk7DQorCWlmKCB4ID4gMCApDQorCQlyZXR1cm4oIDEuMEwgKTsNCisJZWxzZQ0KKwkJcmV0dXJuKCAtMS4wTCApOw0KKwl9DQoraWYoIHogPj0gMC42MjVMICkNCisJew0KKwlzID0gZXhwbCgyLjAqeik7DQorCXogPSAgMS4wTCAgLSAyLjAvKHMgKyAxLjBMKTsNCisJaWYoIHggPCAwICkNCisJCXogPSAtejsNCisJfQ0KK2Vsc2UNCisJew0KKwlzID0geCAqIHg7DQorCXogPSBwb2xldmxsKCBzLCBQLCAzICkvcDFldmxsKHMsIFEsIDMpOw0KKwl6ID0geCAqIHMgKiB6Ow0KKwl6ID0geCArIHo7DQorCX0NCityZXR1cm4oIHogKTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL3RhbmwuUyBiL21pbmd3LXc2NC1jcnQvbWF0aC90YW5sLlMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDViYmU0ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC90YW5sLlMKQEAgLTAsMCArMSwzMyBAQAorLyoNCisgKiBXcml0dGVuIGJ5IEouVC4gQ29ua2xpbiA8anRjQG5ldGJzZC5vcmc+Lg0KKyAqIFB1YmxpYyBkb21haW4uDQorICoNCisgKiBBZGFwdGVkIGZvciBgbG9uZyBkb3VibGUnIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQGN5Z251cy5jb20+Lg0KKyAqIA0KKyAqIFJlbW92ZWQgaGVhZGVyIGZpbGUgZGVwZW5kZW5jeSBmb3IgdXNlIGluIGxpYm1pbmd3ZXguYSBieQ0KKyAqICAgRGFubnkgU21pdGggPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0Pg0KKyAqLw0KKwkuZmlsZQkidGFubC5TIg0KKwkudGV4dA0KKwkuYWxpZ24gNA0KKy5nbG9ibCBfdGFubA0KKwkuZGVmCV90YW5sOwkuc2NsCTI7CS50eXBlCTMyOwkuZW5kZWYNCitfdGFubDoNCisJZmxkdAk0KCVlc3ApDQorCWZwdGFuDQorCWZuc3RzdwklYXgNCisJdGVzdGwJJDB4NDAwLCVlYXgNCisJam56CTFmDQorCWZzdHAJJXN0KDApDQorCXJldA0KKzE6CWZsZHBpDQorCWZhZGQJJXN0KDApDQorCWZ4Y2gJJXN0KDEpDQorMjoJZnByZW0xDQorCWZzdHN3CSVheA0KKwl0ZXN0bAkkMHg0MDAsJWVheA0KKwlqbnoJMmINCisJZnN0cAklc3QoMSkNCisJZnB0YW4NCisJZnN0cAklc3QoMCkNCisJcmV0DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL3RnYW1tYS5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL3RnYW1tYS5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdkMDU5ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvdGdhbW1hLmMKQEAgLTAsMCArMSwyOTQgQEAKKyNpbmNsdWRlICJjZXBoZXNfbWNvbmYuaCINCisNCisjaWZkZWYgVU5LDQorc3RhdGljIGNvbnN0IGRvdWJsZSBQW10gPSB7DQorICAxLjYwMTE5NTIyNDc2NzUxODYxNDA3RS00LA0KKyAgMS4xOTEzNTE0NzAwNjU4NjM4NDkxM0UtMywNCisgIDEuMDQyMTM3OTc1NjE3NjE1Njk5MzVFLTIsDQorICA0Ljc2MzY3ODAwNDU3MTM3MjMxNDY0RS0yLA0KKyAgMi4wNzQ0ODIyNzY0ODQzNTk3NTE1MEUtMSwNCisgIDQuOTQyMTQ4MjY4MDE0OTcxMDA3NTNFLTEsDQorICA5Ljk5OTk5OTk5OTk5OTk5OTk2Nzk2RS0xDQorfTsNCitzdGF0aWMgY29uc3QgZG91YmxlIFFbXSA9IHsNCistMi4zMTU4MTg3MzMyNDEyMDEyOTgxOUUtNSwNCisgNS4zOTYwNTU4MDQ5MzMwMzM5Nzg0MkUtNCwNCistNC40NTY0MTkxMzg1MTc5NzI0MDQ5NEUtMywNCisgMS4xODEzOTc4NTIyMjA2MDQzNTU1MkUtMiwNCisgMy41ODIzNjM5ODYwNTQ5ODY1MzM3M0UtMiwNCistMi4zNDU5MTc5NTcxODI0MzM0ODU2OEUtMSwNCisgNy4xNDMwNDkxNzAzMDI3MzA3NDA4NUUtMiwNCisgMS4wMDAwMDAwMDAwMDAwMDAwMDMyMEUwDQorfTsNCisjZGVmaW5lIE1BWEdBTSAxNzEuNjI0Mzc2OTU2MzAyNzI1DQorc3RhdGljIGNvbnN0IGRvdWJsZSBMT0dQSSA9IDEuMTQ0NzI5ODg1ODQ5NDAwMTc0MTQ7DQorI2VuZGlmDQorDQorI2lmZGVmIERFQw0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBQW10gPSB7DQorMDAzNTA0NywwMTYyNzAxLDAxNDYzMDEsMDAwNTIzNCwNCiswMDM1NjM0LDAwMjM0MzcsMDAzMjA2NSwwMTc2NTMwLA0KKzAwMzY0NTIsMDEzNzE1NywwMDQ3MzMwLDAxMjI1NzQsDQorMDAzNzEwMywwMDE3MzEwLDAxNDMwNDEsMDAxNzIzMiwNCiswMDM3NTI0LDAwNjY1MTYsMDE2MjU2MywwMTY0NjA1LA0KKzAwMzc3NzUsMDAwNDY3MSwwMTQ2MjM3LDAwMTQyMjIsDQorMDA0MDIwMCwwMDAwMDAwLDAwMDAwMDAsMDAwMDAwMA0KK307DQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFFbXSA9IHsNCiswMTM0MzAyLDAwNDE3MjQsMDAyMDAwNiwwMTE2NTY1LA0KKzAwMzU0MTUsMDA3MjEyMSwwMDQ0MjUxLDAwMjU2MzQsDQorMDEzNjIyMiwwMDAzNDQ3LDAwMzUyMDUsMDEyMTExNCwNCiswMDM2NTAxLDAxMDc1NTIsMDE1NDMzNSwwMTA0MjcxLA0KKzAwMzcwMjIsMDEzNTcxNywwMDE0Nzc2LDAxNzE0NzEsDQorMDEzNzU2MCwwMDM0MzI0LDAxNjUwMjQsMDAzNzAyMSwNCiswMDM3MjIyLDAwNDUwNDYsMDA0NzE1MSwwMTYxMjEzLA0KKzAwNDAyMDAsMDAwMDAwMCwwMDAwMDAwLDAwMDAwMDANCit9Ow0KKyNkZWZpbmUgTUFYR0FNIDM0Ljg0NDI1NjI3Mjc3MTc2MTc0DQorI2VuZGlmDQorDQorI2lmZGVmIElCTVBDDQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFBbXSA9IHsNCisweDIxNTMsMHgzOTk4LDB4ZmNiOCwweDNmMjQsDQorMHhiZmFiLDB4ZTY4NiwweDg0ZTMsMHgzZjUzLA0KKzB4MTRiMCwweGU5ZGIsMHg1N2NkLDB4M2Y4NSwNCisweDIzZDMsMHgxOGM0LDB4NjNkOSwweDNmYTgsDQorMHg3ZDMxLDB4ZGNhZSwweDhkYTksMHgzZmNhLA0KKzB4ZTMxMiwweDM5OTMsMHhhMTM3LDB4M2ZkZiwNCisweDAwMDAsMHgwMDAwLDB4MDAwMCwweDNmZjANCit9Ow0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBRW10gPSB7DQorMHhkM2FmLDB4ODQwMCwweDQ4N2EsMHhiZWY4LA0KKzB4MjU3MywweDI5MTUsMHhhZThhLDB4M2Y0MSwNCisweGI0NGEsMHhlNzUwLDB4NDBlNCwweGJmNzIsDQorMHhiMTE3LDB4NWIxYiwweDMxZWQsMHgzZjg4LA0KKzB4ZGU2NywweGUzM2YsMHg1Nzc5LDB4M2ZhMiwNCisweDg3YzIsMHg5ZDQyLDB4MDcxYSwweGJmY2UsDQorMHgzYzUxLDB4YzljZCwweDQ5NDQsMHgzZmIyLA0KKzB4MDAwMCwweDAwMDAsMHgwMDAwLDB4M2ZmMA0KK307DQorI2RlZmluZSBNQVhHQU0gMTcxLjYyNDM3Njk1NjMwMjcyNQ0KKyNlbmRpZiANCisNCisjaWZkZWYgTUlFRUUNCitzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgUFtdID0gew0KKzB4M2YyNCwweGZjYjgsMHgzOTk4LDB4MjE1MywNCisweDNmNTMsMHg4NGUzLDB4ZTY4NiwweGJmYWIsDQorMHgzZjg1LDB4NTdjZCwweGU5ZGIsMHgxNGIwLA0KKzB4M2ZhOCwweDYzZDksMHgxOGM0LDB4MjNkMywNCisweDNmY2EsMHg4ZGE5LDB4ZGNhZSwweDdkMzEsDQorMHgzZmRmLDB4YTEzNywweDM5OTMsMHhlMzEyLA0KKzB4M2ZmMCwweDAwMDAsMHgwMDAwLDB4MDAwMA0KK307DQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFFbXSA9IHsNCisweGJlZjgsMHg0ODdhLDB4ODQwMCwweGQzYWYsDQorMHgzZjQxLDB4YWU4YSwweDI5MTUsMHgyNTczLA0KKzB4YmY3MiwweDQwZTQsMHhlNzUwLDB4YjQ0YSwNCisweDNmODgsMHgzMWVkLDB4NWIxYiwweGIxMTcsDQorMHgzZmEyLDB4NTc3OSwweGUzM2YsMHhkZTY3LA0KKzB4YmZjZSwweDA3MWEsMHg5ZDQyLDB4ODdjMiwNCisweDNmYjIsMHg0OTQ0LDB4YzljZCwweDNjNTEsDQorMHgzZmYwLDB4MDAwMCwweDAwMDAsMHgwMDAwDQorfTsNCisjZGVmaW5lIE1BWEdBTSAxNzEuNjI0Mzc2OTU2MzAyNzI1DQorI2VuZGlmIA0KKw0KKy8qIFN0aXJsaW5nJ3MgZm9ybXVsYSBmb3IgdGhlIGdhbW1hIGZ1bmN0aW9uICovDQorI2lmIFVOSw0KK3N0YXRpYyBjb25zdCBkb3VibGUgU1RJUls1XSA9IHsNCisgNy44NzMxMTM5NTc5MzA5MzYyODM5N0UtNCwNCistMi4yOTU0OTk2MTYxMzM3ODEyNjM4MEUtNCwNCistMi42ODEzMjYxNzgwNTc4MTIzMjgyNUUtMywNCisgMy40NzIyMjIyMTYwNTQ1ODY2NzMxMEUtMywNCisgOC4zMzMzMzMzMzMzMzQ4MjI1NzEyNkUtMiwNCit9Ow0KKyNkZWZpbmUgTUFYU1RJUiAxNDMuMDE2MDgNCitzdGF0aWMgY29uc3QgZG91YmxlIFNRVFBJID0gMi41MDY2MjgyNzQ2MzEwMDA1MDI0MkUwOw0KKyNlbmRpZg0KKyNpZiBERUMNCitzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgU1RJUlsyMF0gPSB7DQorMDAzNTUxNiwwMDYxNjIyLDAxNDQ1NTMsMDExMjIyNCwNCiswMTM1MTYwLDAxMzE1MzEsMDAzNzQ2MCwwMTY1NzQwLA0KKzAxMzYwNTcsMDEzNDQ2MCwwMDM3MjQyLDAwNzcyNzAsDQorMDAzNjE0MywwMTA3MDcwLDAxNTYzMDYsMDAyNzc1MSwNCiswMDM3MjUyLDAxMjUyNTIsMDEyNTI1MiwwMTQ2MDY0LA0KK307DQorI2RlZmluZSBNQVhTVElSIDI2Ljc3DQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNRVFs0XSA9IHsNCiswMDQwNDQwLDAwNjYyMzAsMDE3NzY2MSwwMDM0MDU1LA0KK307DQorI2RlZmluZSBTUVRQSSAqKGRvdWJsZSAqKVNRVA0KKyNlbmRpZg0KKyNpZiBJQk1QQw0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVElSWzIwXSA9IHsNCisweDcyOTMsMHg1OTJkLDB4Y2M3MiwweDNmNDksDQorMHgxZDdjLDB4MjdlNiwweDE2NmIsMHhiZjJlLA0KKzB4NGZkNywweDA3ZDQsMHhmNzI2LDB4YmY2NSwNCisweGM1ZmQsMHgxYjk4LDB4NzFjNywweDNmNmMsDQorMHg1OTg2LDB4NTU1NSwweDU1NTUsMHgzZmI1LA0KK307DQorI2RlZmluZSBNQVhTVElSIDE0My4wMTYwOA0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBTUVRbNF0gPSB7DQorMHgyNzA2LDB4MWZmNiwweDBkOTMsMHg0MDA0LA0KK307DQorI2RlZmluZSBTUVRQSSAqKGRvdWJsZSAqKVNRVA0KKyNlbmRpZg0KKyNpZiBNSUVFRQ0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVElSWzIwXSA9IHsNCisweDNmNDksMHhjYzcyLDB4NTkyZCwweDcyOTMsDQorMHhiZjJlLDB4MTY2YiwweDI3ZTYsMHgxZDdjLA0KKzB4YmY2NSwweGY3MjYsMHgwN2Q0LDB4NGZkNywNCisweDNmNmMsMHg3MWM3LDB4MWI5OCwweGM1ZmQsDQorMHgzZmI1LDB4NTU1NSwweDU1NTUsMHg1OTg2LA0KK307DQorI2RlZmluZSBNQVhTVElSIDE0My4wMTYwOA0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBTUVRbNF0gPSB7DQorMHg0MDA0LDB4MGQ5MywweDFmZjYsMHgyNzA2LA0KK307DQorI2RlZmluZSBTUVRQSSAqKGRvdWJsZSAqKVNRVA0KKyNlbmRpZg0KKw0KK3N0YXRpYyBkb3VibGUgc3RpcmYgKCBkb3VibGUgKTsNCisNCisvKiBHYW1tYSBmdW5jdGlvbiBjb21wdXRlZCBieSBTdGlybGluZydzIGZvcm11bGEuDQorICogVGhlIHBvbHlub21pYWwgU1RJUiBpcyB2YWxpZCBmb3IgMzMgPD0geCA8PSAxNzIuDQorICovDQorc3RhdGljIGRvdWJsZSBzdGlyZih4KQ0KK2RvdWJsZSB4Ow0KK3sNCitkb3VibGUgeSwgdywgdjsNCisNCit3ID0gMS4wL3g7DQordyA9IDEuMCArIHcgKiBwb2xldmwoIHcsIFNUSVIsIDQgKTsNCit5ID0gZXhwKHgpOw0KK2lmKCB4ID4gTUFYU1RJUiApDQorCXsgLyogQXZvaWQgb3ZlcmZsb3cgaW4gcG93KCkgKi8NCisJdiA9IHBvdyggeCwgMC41ICogeCAtIDAuMjUgKTsNCisJeSA9IHYgKiAodiAvIHkpOw0KKwl9DQorZWxzZQ0KKwl7DQorCXkgPSBwb3coIHgsIHggLSAwLjUgKSAvIHk7DQorCX0NCit5ID0gU1FUUEkgKiB5ICogdzsNCityZXR1cm4oIHkgKTsNCit9DQorDQorDQorDQorZG91YmxlIF9fdGdhbW1hX3IoZG91YmxlIHgsIGludCogc2duZ2FtKQ0KK3sNCitkb3VibGUgcCwgcSwgejsNCitpbnQgaTsNCisNCisqc2duZ2FtID0gMTsNCisjaWZkZWYgTkFOUw0KK2lmKCBpc25hbih4KSApDQorCXJldHVybih4KTsNCisjZW5kaWYNCisjaWZkZWYgSU5GSU5JVElFUw0KKyNpZmRlZiBOQU5TDQoraWYoIHggPT0gSU5GSU5JVFkgKQ0KKwlyZXR1cm4oeCk7DQoraWYoIHggPT0gLUlORklOSVRZICkNCisJcmV0dXJuKE5BTik7DQorI2Vsc2UNCitpZiggIWlzZmluaXRlKHgpICkNCisJcmV0dXJuKHgpOw0KKyNlbmRpZg0KKyNlbmRpZg0KK3EgPSBmYWJzKHgpOw0KKw0KK2lmKCBxID4gMzMuMCApDQorCXsNCisJaWYoIHggPCAwLjAgKQ0KKwkJew0KKwkJcCA9IGZsb29yKHEpOw0KKwkJaWYoIHAgPT0gcSApDQorCQkJew0KK2dzaW5nOg0KKwkJCV9TRVRfRVJSTk8oRURPTSk7DQorCQkJbXRoZXJyKCAidGdhbW1hIiwgU0lORyApOw0KKyNpZmRlZiBJTkZJTklUSUVTDQorCQkJcmV0dXJuIChJTkZJTklUWSk7DQorI2Vsc2UNCisJCQlyZXR1cm4gKE1BWE5VTSk7DQorI2VuZGlmDQorCQkJfQ0KKwkJaSA9IHA7DQorCQlpZiggKGkgJiAxKSA9PSAwICkNCisJCQkqc2duZ2FtID0gLTE7DQorCQl6ID0gcSAtIHA7DQorCQlpZiggeiA+IDAuNSApDQorCQkJew0KKwkJCXAgKz0gMS4wOw0KKwkJCXogPSBxIC0gcDsNCisJCQl9DQorCQl6ID0gcSAqIHNpbiggUEkgKiB6ICk7DQorCQlpZiggeiA9PSAwLjAgKQ0KKwkJCXsNCisJCQlfU0VUX0VSUk5PKEVSQU5HRSk7DQorCQkJbXRoZXJyKCAidGdhbW1hIiwgT1ZFUkZMT1cgKTsNCisjaWZkZWYgSU5GSU5JVElFUw0KKwkJCXJldHVybiggKnNnbmdhbSAqIElORklOSVRZKTsNCisjZWxzZQ0KKwkJCXJldHVybiggKnNnbmdhbSAqIE1BWE5VTSk7DQorI2VuZGlmDQorCQkJfQ0KKwkJeiA9IGZhYnMoeik7DQorCQl6ID0gUEkvKHogKiBzdGlyZihxKSApOw0KKwkJfQ0KKwllbHNlDQorCQl7DQorCQl6ID0gc3RpcmYoeCk7DQorCQl9DQorCXJldHVybiggKnNnbmdhbSAqIHogKTsNCisJfQ0KKw0KK3ogPSAxLjA7DQord2hpbGUoIHggPj0gMy4wICkNCisJew0KKwl4IC09IDEuMDsNCisJeiAqPSB4Ow0KKwl9DQorDQord2hpbGUoIHggPCAwLjAgKQ0KKwl7DQorCWlmKCB4ID4gLTEuRS05ICkNCisJCWdvdG8gU21hbGw7DQorCXogLz0geDsNCisJeCArPSAxLjA7DQorCX0NCisNCit3aGlsZSggeCA8IDIuMCApDQorCXsNCisJaWYoIHggPCAxLmUtOSApDQorCQlnb3RvIFNtYWxsOw0KKwl6IC89IHg7DQorCXggKz0gMS4wOw0KKwl9DQorDQoraWYoIHggPT0gMi4wICkNCisJcmV0dXJuKHopOw0KKw0KK3ggLT0gMi4wOw0KK3AgPSBwb2xldmwoIHgsIFAsIDYgKTsNCitxID0gcG9sZXZsKCB4LCBRLCA3ICk7DQorcmV0dXJuKCB6ICogcCAvIHEgKTsNCisNCitTbWFsbDoNCitpZiggeCA9PSAwLjAgKQ0KKwl7DQorCWdvdG8gZ3Npbmc7DQorCX0NCitlbHNlDQorCXJldHVybiggei8oKDEuMCArIDAuNTc3MjE1NjY0OTAxNTMyOSAqIHgpICogeCkgKTsNCit9DQorDQorLyogVGhpcyBpcyB0aGUgQzk5IHZlcnNpb24gKi8NCisNCitkb3VibGUgdGdhbW1hKGRvdWJsZSB4KQ0KK3sNCisgIGludCBsb2NhbF9zZ25nYW09MDsNCisgIHJldHVybiAoX190Z2FtbWFfcih4LCAmbG9jYWxfc2duZ2FtKSk7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC90Z2FtbWFmLmMgYi9taW5ndy13NjQtY3J0L21hdGgvdGdhbW1hZi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMwZWZiYTYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21hdGgvdGdhbW1hZi5jCkBAIC0wLDAgKzEsMTg4IEBACisjaW5jbHVkZSAiY2VwaGVzX21jb25mLmgiDQorDQorLyogZGVmaW5lIE1BWEdBTSAzNC44NDQyNTYyNzI3NzE3NjE3NCAqLw0KKw0KKy8qIFN0aXJsaW5nJ3MgZm9ybXVsYSBmb3IgdGhlIGdhbW1hIGZ1bmN0aW9uDQorICogZ2FtbWEoeCkgPSBzcXJ0KDIgcGkpIHheKHgtLjUpIGV4cCgteCkgKCAxICsgMS94IFAoMS94KSApDQorICogLjAyOCA8IDEveCA8IC4xDQorICogcmVsYXRpdmUgZXJyb3IgPCAxLjllLTExDQorICovDQorc3RhdGljIGNvbnN0IGZsb2F0IFNUSVJbXSA9IHsNCistMi43MDUxOTQ5ODY2NzQxNzZFLTAwMywNCisgMy40NzMyNTU3ODYxNTQ5MTBFLTAwMywNCisgOC4zMzMzMzE3ODgzNDA5MDdFLTAwMiwNCit9Ow0KK3N0YXRpYyBjb25zdCBmbG9hdCBNQVhTVElSID0gMjYuNzc7DQorc3RhdGljIGNvbnN0IGZsb2F0IFNRVFBJRiA9IDIuNTA2NjI4Mjc0NjMxMDAwNTAyNDI7IC8qIHNxcnQoIDIgcGkgKSAqLw0KKw0KK3N0YXRpYyBmbG9hdCBzdGlyZihmbG9hdCk7DQorDQorLyogR2FtbWEgZnVuY3Rpb24gY29tcHV0ZWQgYnkgU3RpcmxpbmcncyBmb3JtdWxhLA0KKyAqIHNxcnQoMiBwaSkgeF4oeC0uNSkgZXhwKC14KSAoMSArIDEveCBQKDEveCkpDQorICogVGhlIHBvbHlub21pYWwgU1RJUiBpcyB2YWxpZCBmb3IgMzMgPD0geCA8PSAxNzIuDQorICovDQorc3RhdGljIGZsb2F0IHN0aXJmKCBmbG9hdCB4ICkNCit7DQorZmxvYXQgIHksIHcsIHY7DQorDQordyA9IDEuMC94Ow0KK3cgPSAxLjAgKyB3ICogcG9sZXZsZiggdywgU1RJUiwgMiApOw0KK3kgPSBleHBmKCAteCApOw0KK2lmKCB4ID4gTUFYU1RJUiApDQorCXsgLyogQXZvaWQgb3ZlcmZsb3cgaW4gcG93KCkgKi8NCisJdiA9IHBvd2YoIHgsIDAuNSAqIHggLSAwLjI1ICk7DQorCXkgKj0gdjsNCisJeSAqPSB2Ow0KKwl9DQorZWxzZQ0KKwl7DQorCXkgPSBwb3dmKCB4LCB4IC0gMC41ICkgKiB5Ow0KKwl9DQoreSA9IFNRVFBJRiAqIHkgKiB3Ow0KK3JldHVybiggeSApOw0KK30NCisNCisNCisvKiBnYW1tYSh4KzIpLCAwIDwgeCA8IDEgKi8NCitzdGF0aWMgY29uc3QgZmxvYXQgUFtdID0gew0KKyAxLjUzNjgzMDQ1MDYwMTkwNkUtMDAzLA0KKyA1LjM5NzU4MTU5Mjk1MDk5M0UtMDAzLA0KKyA0LjEzMDM3MDIwMTg1OTk3NkUtMDAzLA0KKyA3LjIzMjMwNzk4NTUxNjUxOUUtMDAyLA0KKyA4LjIwMzk2MDA5MTYxOTE5M0UtMDAyLA0KKyA0LjExNzg1NzQ0NzY0NTc5NkUtMDAxLA0KKyA0LjIyNzg2Nzc0NTEzMTU4NEUtMDAxLA0KKyA5Ljk5OTk5OTgyMjk0NTA3M0UtMDAxLA0KK307DQorDQorZmxvYXQgX190Z2FtbWFmX3IoIGZsb2F0IHgsIGludCogc2duZ2FtZikNCit7DQorZmxvYXQgcCwgcSwgeiwgbno7DQoraW50IGksIGRpcmVjdGlvbiwgbmVnYXRpdmU7DQorDQorI2lmZGVmIE5BTlMNCitpZiggaXNuYW4oeCkgKQ0KKwlyZXR1cm4oeCk7DQorI2VuZGlmDQorI2lmZGVmIElORklOSVRJRVMNCisjaWZkZWYgTkFOUw0KK2lmKCB4ID09IElORklOSVRZRiApDQorCXJldHVybih4KTsNCitpZiggeCA9PSAtSU5GSU5JVFlGICkNCisJcmV0dXJuKE5BTkYpOw0KKyNlbHNlDQoraWYoICFpc2Zpbml0ZSh4KSApDQorCXJldHVybih4KTsNCisjZW5kaWYNCisjZW5kaWYNCisNCisqc2duZ2FtZiA9IDE7DQorbmVnYXRpdmUgPSAwOw0KK256ID0gMC4wOw0KK2lmKCB4IDwgMC4wICkNCisJew0KKwluZWdhdGl2ZSA9IDE7DQorCXEgPSAteDsNCisJcCA9IGZsb29yZihxKTsNCisJaWYoIHAgPT0gcSApDQorCQl7DQorZ3Npbmc6DQorCQlfU0VUX0VSUk5PKEVET00pOw0KKwkJbXRoZXJyKCAidGdhbW1hZiIsIFNJTkcgKTsNCisjaWZkZWYgSU5GSU5JVElFUw0KKwkJcmV0dXJuIChJTkZJTklUWUYpOw0KKyNlbHNlDQorCQlyZXR1cm4gKE1BWE5VTUYpOw0KKyNlbmRpZg0KKwkJCX0NCisJaSA9IHA7DQorCWlmKCAoaSAmIDEpID09IDAgKQ0KKwkJKnNnbmdhbWYgPSAtMTsNCisJbnogPSBxIC0gcDsNCisJaWYoIG56ID4gMC41ICkNCisJCXsNCisJCXAgKz0gMS4wOw0KKwkJbnogPSBxIC0gcDsNCisJCX0NCisJbnogPSBxICogc2luZiggUElGICogbnogKTsNCisJaWYoIG56ID09IDAuMCApDQorCQl7DQorCQlfU0VUX0VSUk5PKEVSQU5HRSk7DQorCQltdGhlcnIoICJ0Z2FtbWEiLCBPVkVSRkxPVyApOw0KKyNpZmRlZiBJTkZJTklUSUVTDQorCQlyZXR1cm4oICpzZ25nYW1mICogSU5GSU5JVFlGKTsNCisjZWxzZQ0KKwkJcmV0dXJuKCAqc2duZ2FtZiAqIE1BWE5VTUYpOw0KKyNlbmRpZg0KKwkJfQ0KKwlpZiggbnogPCAwICkNCisJCW56ID0gLW56Ow0KKwl4ID0gcTsNCisJfQ0KK2lmKCB4ID49IDEwLjAgKQ0KKwl7DQorCXogPSBzdGlyZih4KTsNCisJfQ0KK2lmKCB4IDwgMi4wICkNCisJZGlyZWN0aW9uID0gMTsNCitlbHNlDQorCWRpcmVjdGlvbiA9IDA7DQoreiA9IDEuMDsNCit3aGlsZSggeCA+PSAzLjAgKQ0KKwl7DQorCXggLT0gMS4wOw0KKwl6ICo9IHg7DQorCX0NCisvKg0KK3doaWxlKCB4IDwgMC4wICkNCisJew0KKwlpZiggeCA+IC0xLkUtNCApDQorCQlnb3RvIFNtYWxsOw0KKwl6ICo9eDsNCisJeCArPSAxLjA7DQorCX0NCisqLw0KK3doaWxlKCB4IDwgMi4wICkNCisJew0KKwlpZiggeCA8IDEuZS00ICkNCisJCWdvdG8gU21hbGw7DQorCXogKj14Ow0KKwl4ICs9IDEuMDsNCisJfQ0KKw0KK2lmKCBkaXJlY3Rpb24gKQ0KKwl6ID0gMS4wL3o7DQorDQoraWYoIHggPT0gMi4wICkNCisJcmV0dXJuKHopOw0KKw0KK3ggLT0gMi4wOw0KK3AgPSB6ICogcG9sZXZsZiggeCwgUCwgNyApOw0KKw0KK2dkb25lOg0KKw0KK2lmKCBuZWdhdGl2ZSApDQorCXsNCisJcCA9ICpzZ25nYW1mICogUElGLyhueiAqIHAgKTsNCisJfQ0KK3JldHVybihwKTsNCisNCitTbWFsbDoNCitpZiggeCA9PSAwLjAgKQ0KKwl7DQorCWdvdG8gZ3Npbmc7DQorCX0NCitlbHNlDQorCXsNCisJcCA9IHogLyAoKDEuMCArIDAuNTc3MjE1NjY0OTAxNTMyOSAqIHgpICogeCk7DQorCWdvdG8gZ2RvbmU7DQorCX0NCit9DQorDQorLyogVGhpcyBpcyB0aGUgQzk5IHZlcnNpb24gKi8NCisNCitmbG9hdCB0Z2FtbWFmKGZsb2F0IHgpDQorew0KKyAgaW50IGxvY2FsX3NnbmdhbWY9MDsNCisgIHJldHVybiAoX190Z2FtbWFmX3IoeCwgJmxvY2FsX3NnbmdhbWYpKTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tYXRoL3RnYW1tYWwuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC90Z2FtbWFsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGZhM2JkNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC90Z2FtbWFsLmMKQEAgLTAsMCArMSw0MTIgQEAKKyNpbmNsdWRlICJjZXBoZXNfbWNvbmYuaCINCisNCisvKg0KK2dhbW1hKHgrMikgID0gZ2FtbWEoeCsyKSBQKHgpL1EoeCkNCiswIDw9IHggPD0gMQ0KK1JlbGF0aXZlIGVycm9yDQorbj03LCBkPTgNCitQZWFrIGVycm9yID0gIDEuODNlLTIwDQorUmVsYXRpdmUgZXJyb3Igc3ByZWFkID0gIDguNGUtMjMNCisqLw0KKw0KKyNpZiBVTksNCitzdGF0aWMgY29uc3QgbG9uZyBkb3VibGUgUFs4XSA9IHsNCisgNC4yMTI3NjA0ODc0NzE2MjIwMTMwOTNFLTVMLA0KKyA0LjU0MjkzMTk2MDYwODAwOTE1NTYwMEUtNEwsDQorIDQuMDkyNjY2ODI4Mzk0MDM1NTAwOTQ5RS0zTCwNCisgMi4zODUzNjMyNDM0NjExMDgyNTI1NTRFLTJMLA0KKyAxLjExMzA2MjgxNjAxOTM2MTU1OTAxM0UtMUwsDQorIDMuNjI5NTE1NDM2NjQwMjM5MTY4OTM5RS0xTCwNCisgOC4zNzgwMDQzMDE1NzMxMjY3Mjg4MjZFLTFMLA0KKyAxLjAwMDAwMDAwMDAwMDAwMDAwMDAwOUUwTCwNCit9Ow0KK3N0YXRpYyBjb25zdCBsb25nIGRvdWJsZSBRWzldID0gew0KKy0xLjM5NzE0ODUxNzQ3NjE3MDQ0MDkxN0UtNUwsDQorIDIuMzQ2NTg0MDU5MTYwNjM1MjQ0MjgyRS00TCwNCistMS4yMzc3OTkyNDY2NTMxNTIyMzExODhFLTNMLA0KKy03Ljk1NTkzMzY4MjQ5NDczODMyMDU4NkUtNEwsDQorIDIuNzczNzA2NTY1ODQwMDcyOTc5MTY1RS0yTCwNCistNC42MzM4ODc2NzEyNDQ1MzQyMTM4MzFFLTJMLA0KKy0yLjI0MzUxMDkwNTY3MDMyOTE2NDU2MkUtMUwsDQorIDQuMTUwMTYwOTUwNTg4NDU1NDM0NTgzRS0xTCwNCisgOS45OTk5OTk5OTk5OTk5OTk5OTk5MDhFLTFMLA0KK307DQorI2VuZGlmDQorI2lmIElCTVBDDQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFBbXSA9IHsNCisweDQzNGEsMHgzZjIyLDB4MmJkYSwweGIwYjIsMHgzZmYwLCBYUEQNCisweGY1YWEsMHhlODJmLDB4MzM1YiwweGVlMmUsMHgzZmYzLCBYUEQNCisweGJlNmMsMHgzNzU3LDB4YzcxNywweDg2MWIsMHgzZmY3LCBYUEQNCisweDdmNDMsMHg1MTk2LDB4YjE2NiwweGMzNjgsMHgzZmY5LCBYUEQNCisweDk1NDksMHg4ZWI1LDB4OGMzYSwweGUzZjQsMHgzZmZiLCBYUEQNCisweDhkNzUsMHgyM2FmLDB4YzhlNCwweGI5ZDQsMHgzZmZkLCBYUEQNCisweDI5Y2YsMHgxOWIzLDB4MTZjOCwweGQ2N2EsMHgzZmZlLCBYUEQNCisweDAwMDAsMHgwMDAwLDB4MDAwMCwweDgwMDAsMHgzZmZmLCBYUEQNCit9Ow0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBRW10gPSB7DQorMHg1NDczLDB4MmRlOCwweDEyNjgsMHhlYTY3LDB4YmZlZSwgWFBEDQorMHgzMzRiLDB4YzJmMCwweGEyZGQsMHhmNjBlLDB4M2ZmMiwgWFBEDQorMHhiZWVkLDB4MTg1MywweGE2OTEsMHhhMjNkLDB4YmZmNSwgWFBEDQorMHgyOTZlLDB4N2NiMSwweDVkZmQsMHhkMDhmLDB4YmZmNCwgWFBEDQorMHgwNDE3LDB4Nzk4OSwweGQ3YmMsMHhlMzM4LDB4M2ZmOSwgWFBEDQorMHgzMjk1LDB4MzY5OCwweGQ1ODAsMHhiZGNkLDB4YmZmYSwgWFBEDQorMHg3NWVmLDB4M2FiNywweDRhZDMsMHhlNWJjLDB4YmZmYywgWFBEDQorMHhlNDU4LDB4MmVjNywweGZkNTcsMHhkNDdjLDB4M2ZmZCwgWFBEDQorMHgwMDAwLDB4MDAwMCwweDAwMDAsMHg4MDAwLDB4M2ZmZiwgWFBEDQorfTsNCisjZW5kaWYNCisjaWYgTUlFRUUNCitzdGF0aWMgY29uc3QgbG9uZyBQWzI0XSA9IHsNCisweDNmZjAwMDAwLDB4YjBiMjJiZGEsMHgzZjIyNDM0YSwNCisweDNmZjMwMDAwLDB4ZWUyZTMzNWIsMHhlODJmZjVhYSwNCisweDNmZjcwMDAwLDB4ODYxYmM3MTcsMHgzNzU3YmU2YywNCisweDNmZjkwMDAwLDB4YzM2OGIxNjYsMHg1MTk2N2Y0MywNCisweDNmZmIwMDAwLDB4ZTNmNDhjM2EsMHg4ZWI1OTU0OSwNCisweDNmZmQwMDAwLDB4YjlkNGM4ZTQsMHgyM2FmOGQ3NSwNCisweDNmZmUwMDAwLDB4ZDY3YTE2YzgsMHgxOWIzMjljZiwNCisweDNmZmYwMDAwLDB4ODAwMDAwMDAsMHgwMDAwMDAwMCwNCit9Ow0KK3N0YXRpYyBjb25zdCBsb25nIFFbMjddID0gew0KKzB4YmZlZTAwMDAsMHhlYTY3MTI2OCwweDJkZTg1NDczLA0KKzB4M2ZmMjAwMDAsMHhmNjBlYTJkZCwweGMyZjAzMzRiLA0KKzB4YmZmNTAwMDAsMHhhMjNkYTY5MSwweDE4NTNiZWVkLA0KKzB4YmZmNDAwMDAsMHhkMDhmNWRmZCwweDdjYjEyOTZlLA0KKzB4M2ZmOTAwMDAsMHhlMzM4ZDdiYywweDc5ODkwNDE3LA0KKzB4YmZmYTAwMDAsMHhiZGNkZDU4MCwweDM2OTgzMjk1LA0KKzB4YmZmYzAwMDAsMHhlNWJjNGFkMywweDNhYjc3NWVmLA0KKzB4M2ZmZDAwMDAsMHhkNDdjZmQ1NywweDJlYzdlNDU4LA0KKzB4M2ZmZjAwMDAsMHg4MDAwMDAwMCwweDAwMDAwMDAwLA0KK307DQorI2VuZGlmDQorLyoNCitzdGF0aWMgY29uc3QgbG9uZyBkb3VibGUgUFtdID0gew0KKy0zLjAxNTI1NjAyNjY2ODk1NzM1NzA5ZTBMLA0KKy0zLjI1MTU3NDExOTU2MDYyMzM5ODkzZTFMLA0KKy0yLjkyOTI5OTc2ODIwNzI0MDMwMzUzZTJMLA0KKy0xLjcwNzMwODI4ODAwNTEwMjk3NjY2ZTNMLA0KKy03Ljk2NjY3NDk5NjIyNzQxOTk5NzcwZTNMLA0KKy0yLjU5NzgwMjE2MDA3MTQ2NDAxOTU3ZTRMLA0KKy01Ljk5NjUwMjMwMjIwODU1NTgxNjQyZTRMLA0KKy03LjE1NzQzNTIxNTMwODQ5NjAyNDI1ZTRMDQorfTsNCitzdGF0aWMgY29uc3QgbG9uZyBkb3VibGUgUVtdID0gew0KKyAxLjAwMDAwMDAwMDAwMDAwMDAwMDAwZTBMLA0KKy0xLjY3OTU1MjMzODA3MTc4ODU4OTE5ZTFMLA0KKyA4Ljg1OTQ2NzkxNzQ3NzU5ODgxNjU5ZTFMLA0KKyA1LjY5NDQwNzk5MDk3NDY4NDMwMTc3ZTFMLA0KKy0xLjk4NTI2MjUwNTEyNzYxMzE4NDcxZTNMLA0KKyAzLjMxNjY3NTA4MDE5NDk1MDc5ODE0ZTNMLA0KKyAxLjYwNTc3ODM5NjIxNzM0NzEzMzc3ZTRMLA0KKy0yLjk3MDQ1MDgxMzY5Mzk5OTQwNTI5ZTRMLA0KKy03LjE1NzQzNTIxNTMwODQ5NjAyNDEyZTRMDQorfTsNCisqLw0KKyNkZWZpbmUgTUFYR0FNTCAxNzU1LjQ1NUwNCisvKnN0YXRpYyBjb25zdCBsb25nIGRvdWJsZSBMT0dQSSA9IDEuMTQ0NzI5ODg1ODQ5NDAwMTc0MTRMOyovDQorDQorLyogU3RpcmxpbmcncyBmb3JtdWxhIGZvciB0aGUgZ2FtbWEgZnVuY3Rpb24NCitnYW1tYSh4KSA9IHNxcnQoMiBwaSkgeF4oeC0uNSkgZXhwKC14KSAoMSArIDEveCBQKDEveCkpDQoreih4KSA9IHgNCisxMyA8PSB4IDw9IDEwMjQNCitSZWxhdGl2ZSBlcnJvcg0KK249OCwgZD0wDQorUGVhayBlcnJvciA9ICA5LjQ0ZS0yMQ0KK1JlbGF0aXZlIGVycm9yIHNwcmVhZCA9ICA4LjhlLTQNCisqLw0KKyNpZiBVTksNCitzdGF0aWMgY29uc3QgbG9uZyBkb3VibGUgU1RJUls5XSA9IHsNCisgNy4xNDczOTEzNzgxNDM2MTA3ODkyNzNFLTRMLA0KKy0yLjM2Mzg0ODgwOTUwMTc1OTA2MTcyN0UtNUwsDQorLTUuOTUwMjM3NTU0MDU2MzMwMTU2MDE4RS00TCwNCisgNi45ODkzMzIyNjA2MjMxOTMxNzE4NzBFLTVMLA0KKyA3Ljg0MDMzNDg0Mjc0NDc1MzAwMzg2MkUtNEwsDQorLTIuMjk0NzE5NzQ3ODczMTg1NDA1Njk5RS00TCwNCistMi42ODEzMjcxNjE4NzYzMDQ0MTgyODhFLTNMLA0KKyAzLjQ3MjIyMjIyMjIzMDA3NTMyNzg1NEUtM0wsDQorIDguMzMzMzMzMzMzMzMzMzMxODAwNTA0RS0yTCwNCit9Ow0KKyNlbmRpZg0KKyNpZiBJQk1QQw0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVElSW10gPSB7DQorMHg2ZWRlLDB4NjlmNywweDU0ZTMsMHhiYjVkLDB4M2ZmNCwgWFBEDQorMHhjMzk1LDB4MDI5NSwweDQ0NDMsMHhjNjRiLDB4YmZlZiwgWFBEDQorMHhiYTZmLDB4N2M1OSwweDVlNDcsMHg5YmZiLDB4YmZmNCwgWFBEDQorMHg1NzA0LDB4MWEzOSwweGIxMWQsMHg5MjkzLDB4M2ZmMSwgWFBEDQorMHgzMGI3LDB4MWEyMSwweDk4YjIsMHhjZDg3LDB4M2ZmNCwgWFBEDQorMHhiZWYzLDB4NzAyMywweDZhMDgsMHhmMDllLDB4YmZmMiwgWFBEDQorMHgzYTFjLDB4NWFjOCwweDM0NzgsMHhhZmI5LDB4YmZmNiwgWFBEDQorMHhjM2M5LDB4OTA2ZSwweDM4ZTMsMHhlMzhlLDB4M2ZmNiwgWFBEDQorMHhhMWQ1LDB4YWFhYSwweGFhYWEsMHhhYWFhLDB4M2ZmYiwgWFBEDQorfTsNCisjZW5kaWYNCisjaWYgTUlFRUUNCitzdGF0aWMgY29uc3QgbG9uZyBTVElSWzI3XSA9IHsNCisweDNmZjQwMDAwLDB4YmI1ZDU0ZTMsMHg2OWY3NmVkZSwNCisweGJmZWYwMDAwLDB4YzY0YjQ0NDMsMHgwMjk1YzM5NSwNCisweGJmZjQwMDAwLDB4OWJmYjVlNDcsMHg3YzU5YmE2ZiwNCisweDNmZjEwMDAwLDB4OTI5M2IxMWQsMHgxYTM5NTcwNCwNCisweDNmZjQwMDAwLDB4Y2Q4Nzk4YjIsMHgxYTIxMzBiNywNCisweGJmZjIwMDAwLDB4ZjA5ZTZhMDgsMHg3MDIzYmVmMywNCisweGJmZjYwMDAwLDB4YWZiOTM0NzgsMHg1YWM4M2ExYywNCisweDNmZjYwMDAwLDB4ZTM4ZTM4ZTMsMHg5MDZlYzNjOSwNCisweDNmZmIwMDAwLDB4YWFhYWFhYWEsMHhhYWFhYTFkNSwNCit9Ow0KKyNlbmRpZg0KKyNkZWZpbmUgTUFYU1RJUiAxMDI0LjBMDQorc3RhdGljIGNvbnN0IGxvbmcgZG91YmxlIFNRVFBJID0gMi41MDY2MjgyNzQ2MzEwMDA1MDI0MkUwTDsNCisNCisvKiAxL2dhbW1hKHgpID0geiBQKHopDQorICogeih4KSA9IDEveA0KKyAqIDAgPCB4IDwgMC4wMzEyNQ0KKyAqIFBlYWsgcmVsYXRpdmUgZXJyb3IgNC4yZS0yMw0KKyAqLw0KKyNpZiBVTksNCitzdGF0aWMgY29uc3QgbG9uZyBkb3VibGUgU1s5XSA9IHsNCistMS4xOTM5NDUwNTEzODE1MTAwOTU2MTRFLTNMLA0KKyA3LjIyMDU5OTQ3ODAzNjkwOTY3MjMzMUUtM0wsDQorLTkuNjIyMDIzMzYwNDA2MjcxNjQ1NzQ0RS0zTCwNCistNC4yMTk3NzMzNjA3MDU5MTU0NzAwODlFLTJMLA0KKyAxLjY2NTM4NjExMzcyMDgwNTIwNjc1OEUtMUwsDQorLTQuMjAwMjYzNTAzNDAzMzQ0MDU0NDczRS0yTCwNCistNi41NTg3ODA3MTUyMDI1NDA2ODQ2NjhFLTFMLA0KKyA1Ljc3MjE1NjY0OTAxNTMyODYwODI1M0UtMUwsDQorIDEuMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTBMLA0KK307DQorI2VuZGlmDQorI2lmIElCTVBDDQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNbXSA9IHsNCisweGJhZWIsMHhkNmQzLDB4MjVlNSwweDljN2UsMHhiZmY1LCBYUEQNCisweGZlOWEsMHhjZWI0LDB4Yzc0ZSwweGVjOWEsMHgzZmY3LCBYUEQNCisweDkyMjUsMHhkZmVmLDB4YjBlOSwweDlkYTUsMHhiZmY4LCBYUEQNCisweDEwYjAsMHhlYzE3LDB4ODdkYywweGFjZDcsMHhiZmZhLCBYUEQNCisweDZiOGQsMHg3NTE1LDB4MTkwNSwweGFhODksMHgzZmZjLCBYUEQNCisweGYxODMsMHgxMjZiLDB4ZjQ3ZCwweGFjMGEsMHhiZmZhLCBYUEQNCisweDdiZjYsMHg1N2QxLDB4YTAxMywweGE3ZTcsMHhiZmZlLCBYUEQNCisweGM3YTksMHg3ZGIwLDB4NjdlMywweDkzYzQsMHgzZmZlLCBYUEQNCisweDAwMDAsMHgwMDAwLDB4MDAwMCwweDgwMDAsMHgzZmZmLCBYUEQNCit9Ow0KKyNlbmRpZg0KKyNpZiBNSUVFRQ0KK3N0YXRpYyBjb25zdCBsb25nIFNbMjddID0gew0KKzB4YmZmNTAwMDAsMHg5YzdlMjVlNSwweGQ2ZDNiYWViLA0KKzB4M2ZmNzAwMDAsMHhlYzlhYzc0ZSwweGNlYjRmZTlhLA0KKzB4YmZmODAwMDAsMHg5ZGE1YjBlOSwweGRmZWY5MjI1LA0KKzB4YmZmYTAwMDAsMHhhY2Q3ODdkYywweGVjMTcxMGIwLA0KKzB4M2ZmYzAwMDAsMHhhYTg5MTkwNSwweDc1MTU2YjhkLA0KKzB4YmZmYTAwMDAsMHhhYzBhZjQ3ZCwweDEyNmJmMTgzLA0KKzB4YmZmZTAwMDAsMHhhN2U3YTAxMywweDU3ZDE3YmY2LA0KKzB4M2ZmZTAwMDAsMHg5M2M0NjdlMywweDdkYjBjN2E5LA0KKzB4M2ZmZjAwMDAsMHg4MDAwMDAwMCwweDAwMDAwMDAwLA0KK307DQorI2VuZGlmDQorLyogMS9nYW1tYSgteCkgPSB6IFAoeikNCisgKiB6KHgpID0gMS94DQorICogMCA8IHggPCAwLjAzMTI1DQorICogUGVhayByZWxhdGl2ZSBlcnJvciA1LjE2ZS0yMw0KKyAqIFJlbGF0aXZlIGVycm9yIHNwcmVhZCA9ICAyLjVlLTI0DQorICovDQorI2lmIFVOSw0KK3N0YXRpYyBjb25zdCBsb25nIGRvdWJsZSBTTls5XSA9IHsNCisgMS4xMzMzNzQxNjcyNDM4OTQzODIwMTBFLTNMLA0KKyA3LjIyMDgzNzI2MTg5MzE3MDMyNTcwNEUtM0wsDQorIDkuNjIxOTExMTU1MDM1OTc2NzMzNzA2RS0zTCwNCistNC4yMTk3NzMzNDM3MzExOTE3MjE2NjRFLTJMLA0KKy0xLjY2NTM4NjExMzk0NDQxMzUxOTMzNUUtMUwsDQorLTQuMjAwMjYzNTAzNDAyMTEyOTEwNTA0RS0yTCwNCisgNi41NTg3ODA3MTUyMDI1MzY1NDcxMTZFLTFMLA0KKyA1Ljc3MjE1NjY0OTAxNTMyODYwODcyN0UtMUwsDQorLTEuMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTBMLA0KK307DQorI2VuZGlmDQorI2lmIElCTVBDDQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNOW10gPSB7DQorMHg1ZGQxLDB4MDJkZSwweGI5ZjcsMHg5NDhkLDB4M2ZmNSwgWFBEDQorMHg5ODliLDB4ZGQ2OCwweGM1ZjEsMHhlYzljLDB4M2ZmNywgWFBEDQorMHgyY2ExLDB4MThmMCwweDM4NmYsMHg5ZGE1LDB4M2ZmOCwgWFBEDQorMHg3ODNmLDB4NDFkZCwweDg3ZDEsMHhhY2Q3LDB4YmZmYSwgWFBEDQorMHg3YTViLDB4ZDc2ZCwweDE5MDUsMHhhYTg5LDB4YmZmYywgWFBEDQorMHg3ZjY0LDB4MTIzNCwweGY0N2QsMHhhYzBhLDB4YmZmYSwgWFBEDQorMHg1ZTI2LDB4NTdkMSwweGEwMTMsMHhhN2U3LDB4M2ZmZSwgWFBEDQorMHhjN2FhLDB4N2RiMCwweDY3ZTMsMHg5M2M0LDB4M2ZmZSwgWFBEDQorMHgwMDAwLDB4MDAwMCwweDAwMDAsMHg4MDAwLDB4YmZmZiwgWFBEDQorfTsNCisjZW5kaWYNCisjaWYgTUlFRUUNCitzdGF0aWMgY29uc3QgbG9uZyBTTlsyN10gPSB7DQorMHgzZmY1MDAwMCwweDk0OGRiOWY3LDB4MDJkZTVkZDEsDQorMHgzZmY3MDAwMCwweGVjOWNjNWYxLDB4ZGQ2ODk4OWIsDQorMHgzZmY4MDAwMCwweDlkYTUzODZmLDB4MThmMDJjYTEsDQorMHhiZmZhMDAwMCwweGFjZDc4N2QxLDB4NDFkZDc4M2YsDQorMHhiZmZjMDAwMCwweGFhODkxOTA1LDB4ZDc2ZDdhNWIsDQorMHhiZmZhMDAwMCwweGFjMGFmNDdkLDB4MTIzNDdmNjQsDQorMHgzZmZlMDAwMCwweGE3ZTdhMDEzLDB4NTdkMTVlMjYsDQorMHgzZmZlMDAwMCwweDkzYzQ2N2UzLDB4N2RiMGM3YWEsDQorMHhiZmZmMDAwMCwweDgwMDAwMDAwLDB4MDAwMDAwMDAsDQorfTsNCisjZW5kaWYNCisNCitzdGF0aWMgbG9uZyBkb3VibGUgc3RpcmYgKCBsb25nIGRvdWJsZSApOw0KKw0KKy8qIEdhbW1hIGZ1bmN0aW9uIGNvbXB1dGVkIGJ5IFN0aXJsaW5nJ3MgZm9ybXVsYS4gICovDQorDQorc3RhdGljIGxvbmcgZG91YmxlIHN0aXJmKHgpDQorbG9uZyBkb3VibGUgeDsNCit7DQorbG9uZyBkb3VibGUgeSwgdywgdjsNCisNCit3ID0gMS4wTC94Ow0KKy8qIEZvciBsYXJnZSB4LCB1c2UgcmF0aW9uYWwgY29lZmZpY2llbnRzIGZyb20gdGhlIGFuYWx5dGljYWwgZXhwYW5zaW9uLiAgKi8NCitpZiggeCA+IDEwMjQuMEwgKQ0KKwl3ID0gKCgoKCg2Ljk3MjgxMzc1ODM2NTg1Nzc3NDI5RS01TCAqIHcNCisJCSsgNy44NDAzOTIyMTcyMDA2NjYyNzQ3NEUtNEwpICogdw0KKwkJLSAyLjI5NDcyMDkzNjIxMzk5MTc2OTU1RS00TCkgKiB3DQorCQktIDIuNjgxMzI3MTYwNDkzODI3MTYwNDlFLTNMKSAqIHcNCisJCSsgMy40NzIyMjIyMjIyMjIyMjIyMjIyMkUtM0wpICogdw0KKwkJKyA4LjMzMzMzMzMzMzMzMzMzMzMzMzMzRS0yTCkgKiB3DQorCQkrIDEuMEw7DQorZWxzZQ0KKwl3ID0gMS4wTCArIHcgKiBwb2xldmxsKCB3LCBTVElSLCA4ICk7DQoreSA9IGV4cGwoeCk7DQoraWYoIHggPiBNQVhTVElSICkNCisJeyAvKiBBdm9pZCBvdmVyZmxvdyBpbiBwb3coKSAqLw0KKwl2ID0gcG93bCggeCwgMC41TCAqIHggLSAwLjI1TCApOw0KKwl5ID0gdiAqICh2IC8geSk7DQorCX0NCitlbHNlDQorCXsNCisJeSA9IHBvd2woIHgsIHggLSAwLjVMICkgLyB5Ow0KKwl9DQoreSA9IFNRVFBJICogeSAqIHc7DQorcmV0dXJuKCB5ICk7DQorfQ0KKw0KKw0KK2xvbmcgZG91YmxlIF9fdGdhbW1hbF9yKGxvbmcgZG91YmxlIHgsIGludCogc2duZ2FtbCkNCit7DQorbG9uZyBkb3VibGUgcCwgcSwgejsNCitpbnQgaTsNCisNCisqc2duZ2FtbCA9IDE7DQorI2lmZGVmIE5BTlMNCitpZiggaXNuYW5sKHgpICkNCisJcmV0dXJuKE5BTkwpOw0KKyNlbmRpZg0KKyNpZmRlZiBJTkZJTklUSUVTDQorI2lmZGVmIE5BTlMNCitpZiggeCA9PSBJTkZJTklUWUwgKQ0KKwlyZXR1cm4oeCk7DQoraWYoIHggPT0gLUlORklOSVRZTCApDQorCXJldHVybihOQU5MKTsNCisjZWxzZQ0KK2lmKCAhaXNmaW5pdGUoeCkgKQ0KKwlyZXR1cm4oeCk7DQorI2VuZGlmDQorI2VuZGlmDQorcSA9IGZhYnNsKHgpOw0KKw0KK2lmKCBxID4gMTMuMEwgKQ0KKwl7DQorCWlmKCBxID4gTUFYR0FNTCApDQorCQlnb3RvIGdvdmVyZjsNCisJaWYoIHggPCAwLjBMICkNCisJCXsNCisJCXAgPSBmbG9vcmwocSk7DQorCQlpZiggcCA9PSBxICkNCisJCQl7DQorZ3Npbmc6DQorCQkJX1NFVF9FUlJOTyhFRE9NKTsNCisJCQltdGhlcnIoICJ0Z2FtbWFsIiwgU0lORyApOw0KKyNpZmRlZiBJTkZJTklUSUVTDQorCQkJcmV0dXJuIChJTkZJTklUWUwpOw0KKyNlbHNlDQorCQkJcmV0dXJuKCAqc2duZ2FtbCAqIE1BWE5VTUwpOw0KKyNlbmRpZg0KKwkJCX0NCisJCWkgPSBwOw0KKwkJaWYoIChpICYgMSkgPT0gMCApDQorCQkJKnNnbmdhbWwgPSAtMTsNCisJCXogPSBxIC0gcDsNCisJCWlmKCB6ID4gMC41TCApDQorCQkJew0KKwkJCXAgKz0gMS4wTDsNCisJCQl6ID0gcSAtIHA7DQorCQkJfQ0KKwkJeiA9IHEgKiBzaW5sKCBQSUwgKiB6ICk7DQorCQl6ID0gZmFic2woeikgKiBzdGlyZihxKTsNCisJCWlmKCB6IDw9IFBJTC9NQVhOVU1MICkNCisJCQl7DQorZ292ZXJmOg0KKwkJCV9TRVRfRVJSTk8oRVJBTkdFKTsNCisJCQltdGhlcnIoICJ0Z2FtbWFsIiwgT1ZFUkZMT1cgKTsNCisjaWZkZWYgSU5GSU5JVElFUw0KKwkJCXJldHVybiggKnNnbmdhbWwgKiBJTkZJTklUWUwpOw0KKyNlbHNlDQorCQkJcmV0dXJuKCAqc2duZ2FtbCAqIE1BWE5VTUwpOw0KKyNlbmRpZg0KKwkJCX0NCisJCXogPSBQSUwvejsNCisJCX0NCisJZWxzZQ0KKwkJew0KKwkJeiA9IHN0aXJmKHgpOw0KKwkJfQ0KKwlyZXR1cm4oICpzZ25nYW1sICogeiApOw0KKwl9DQorDQoreiA9IDEuMEw7DQord2hpbGUoIHggPj0gMy4wTCApDQorCXsNCisJeCAtPSAxLjBMOw0KKwl6ICo9IHg7DQorCX0NCisNCit3aGlsZSggeCA8IC0wLjAzMTI1TCApDQorCXsNCisJeiAvPSB4Ow0KKwl4ICs9IDEuMEw7DQorCX0NCisNCitpZiggeCA8PSAwLjAzMTI1TCApDQorCWdvdG8gU21hbGw7DQorDQord2hpbGUoIHggPCAyLjBMICkNCisJew0KKwl6IC89IHg7DQorCXggKz0gMS4wTDsNCisJfQ0KKw0KK2lmKCB4ID09IDIuMEwgKQ0KKwlyZXR1cm4oeik7DQorDQoreCAtPSAyLjBMOw0KK3AgPSBwb2xldmxsKCB4LCBQLCA3ICk7DQorcSA9IHBvbGV2bGwoIHgsIFEsIDggKTsNCityZXR1cm4oIHogKiBwIC8gcSApOw0KKw0KK1NtYWxsOg0KK2lmKCB4ID09IDAuMEwgKQ0KKwl7DQorCWdvdG8gZ3Npbmc7DQorCX0NCitlbHNlDQorCXsNCisJaWYoIHggPCAwLjBMICkNCisJCXsNCisJCXggPSAteDsNCisJCXEgPSB6IC8gKHggKiBwb2xldmxsKCB4LCBTTiwgOCApKTsNCisJCX0NCisJZWxzZQ0KKwkJcSA9IHogLyAoeCAqIHBvbGV2bGwoIHgsIFMsIDggKSk7DQorCX0NCityZXR1cm4gcTsNCit9DQorDQorDQorLyogVGhpcyBpcyB0aGUgQzk5IHZlcnNpb24uICovDQorDQorbG9uZyBkb3VibGUgdGdhbW1hbChsb25nIGRvdWJsZSB4KQ0KK3sNCisgIGludCBsb2NhbF9zZ25nYW1sPTA7DQorICByZXR1cm4gKF9fdGdhbW1hbF9yKHgsICZsb2NhbF9zZ25nYW1sKSk7DQorfQ0KKw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC90cnVuYy5jIGIvbWluZ3ctdzY0LWNydC9tYXRoL3RydW5jLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2MzYTVkNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC90cnVuYy5jCkBAIC0wLDAgKzEsMTYgQEAKKyNpbmNsdWRlIDxmZW52Lmg+DQorI2luY2x1ZGUgPG1hdGguaD4NCisNCitkb3VibGUNCit0cnVuYyAoZG91YmxlIF94KXsNCisgIGRvdWJsZSByZXR2YWw7DQorICB1bnNpZ25lZCBzaG9ydCBzYXZlZF9jdzsNCisgIHVuc2lnbmVkIHNob3J0IHRtcF9jdzsNCisgIF9fYXNtX18gKCJmbnN0Y3cgJTA7IiA6ICI9bSIgKHNhdmVkX2N3KSk7IC8qIHNhdmUgRlBVIGNvbnRyb2wgd29yZCAqLw0KKyAgdG1wX2N3ID0gKHNhdmVkX2N3ICYgfihGRV9UT05FQVJFU1QgfCBGRV9ET1dOV0FSRCB8IEZFX1VQV0FSRCB8IEZFX1RPV0FSRFpFUk8pKQ0KKwkgICAgfCBGRV9UT1dBUkRaRVJPOw0KKyAgX19hc21fXyAoImZsZGN3ICUwOyIgOiA6ICJtIiAodG1wX2N3KSk7DQorICBfX2FzbV9fICgiZnJuZGludDsiIDogIj10IiAocmV0dmFsKSAgOiAiMCIgKF94KSk7IC8qIHJvdW5kIHRvd2FyZHMgemVybyAqLw0KKyAgX19hc21fXyAoImZsZGN3ICUwOyIgOiA6ICJtIiAoc2F2ZWRfY3cpICk7IC8qIHJlc3RvcmUgc2F2ZWQgY29udHJvbCB3b3JkICovDQorICByZXR1cm4gcmV0dmFsOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21hdGgvdHJ1bmNmLmMgYi9taW5ndy13NjQtY3J0L21hdGgvdHJ1bmNmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmM2ZDM2OAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWF0aC90cnVuY2YuYwpAQCAtMCwwICsxLDE3IEBACisjaW5jbHVkZSA8ZmVudi5oPg0KKyNpbmNsdWRlIDxtYXRoLmg+DQorDQorZmxvYXQNCit0cnVuY2YgKGZsb2F0IF94KQ0KK3sNCisgIGZsb2F0IHJldHZhbDsNCisgIHVuc2lnbmVkIHNob3J0IHNhdmVkX2N3Ow0KKyAgdW5zaWduZWQgc2hvcnQgdG1wX2N3Ow0KKyAgX19hc21fXyAoImZuc3RjdyAlMDsiIDogIj1tIiAoc2F2ZWRfY3cpKTsgLyogc2F2ZSBGUFUgY29udHJvbCB3b3JkICovDQorICB0bXBfY3cgPSAoc2F2ZWRfY3cgJiB+KEZFX1RPTkVBUkVTVCB8IEZFX0RPV05XQVJEIHwgRkVfVVBXQVJEIHwgRkVfVE9XQVJEWkVSTykpDQorCSAgICB8IEZFX1RPV0FSRFpFUk87DQorICBfX2FzbV9fICgiZmxkY3cgJTA7IiA6IDogIm0iICh0bXBfY3cpKTsNCisgIF9fYXNtX18gKCJmcm5kaW50OyIgOiAiPXQiIChyZXR2YWwpICA6ICIwIiAoX3gpKTsgLyogcm91bmQgdG93YXJkcyB6ZXJvICovDQorICBfX2FzbV9fICgiZmxkY3cgJTA7IiA6IDogIm0iIChzYXZlZF9jdykgKTsgLyogcmVzdG9yZSBzYXZlZCBjb250cm9sIHdvcmQgKi8NCisgIHJldHVybiByZXR2YWw7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWF0aC90cnVuY2wuYyBiL21pbmd3LXc2NC1jcnQvbWF0aC90cnVuY2wuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNzEzMDg1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tYXRoL3RydW5jbC5jCkBAIC0wLDAgKzEsMTYgQEAKKyNpbmNsdWRlIDxmZW52Lmg+DQorI2luY2x1ZGUgPG1hdGguaD4NCisNCitsb25nIGRvdWJsZQ0KK3RydW5jbCAobG9uZyBkb3VibGUgX3gpew0KKyAgbG9uZyBkb3VibGUgcmV0dmFsOw0KKyAgdW5zaWduZWQgc2hvcnQgc2F2ZWRfY3c7DQorICB1bnNpZ25lZCBzaG9ydCB0bXBfY3c7DQorICBfX2FzbV9fICgiZm5zdGN3ICUwOyIgOiAiPW0iIChzYXZlZF9jdykpOyAvKiBzYXZlIEZQVSBjb250cm9sIHdvcmQgKi8NCisgIHRtcF9jdyA9IChzYXZlZF9jdyAmIH4oRkVfVE9ORUFSRVNUIHwgRkVfRE9XTldBUkQgfCBGRV9VUFdBUkQgfCBGRV9UT1dBUkRaRVJPKSkNCisJICAgIHwgRkVfVE9XQVJEWkVSTzsNCisgIF9fYXNtX18gKCJmbGRjdyAlMDsiIDogOiAibSIgKHRtcF9jdykpOw0KKyAgX19hc21fXyAoImZybmRpbnQ7IiA6ICI9dCIgKHJldHZhbCkgIDogIjAiIChfeCkpOyAvKiByb3VuZCB0b3dhcmRzIHplcm8gKi8NCisgIF9fYXNtX18gKCJmbGRjdyAlMDsiIDogOiAibSIgKHNhdmVkX2N3KSApOyAvKiByZXN0b3JlIHNhdmVkIGNvbnRyb2wgd29yZCAqLw0KKyAgcmV0dXJuIHJldHZhbDsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tZXJyLmMgYi9taW5ndy13NjQtY3J0L21lcnIuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNDViMDE2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9tZXJyLmMKQEAgLTAsMCArMSwxMiBAQAorI2luY2x1ZGUgPGludGVybmFsLmg+CisjaW5jbHVkZSA8bWF0aC5oPgorCitpbnQgX19kZWZhdWx0bWF0aGVyciA9IDE7CisKK2ludCBfX0NSVERFQ0wKK19tYXRoZXJyIChzdHJ1Y3QgX2V4Y2VwdGlvbiAqcGV4Y2VwdCkKK3sKKyAgLyogTWFrZSBjb21waWxlciBoYXBweS4gICovCisgIHBleGNlcHQgPSBwZXhjZXB0OworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWluZ3cvYS5kbGwgYi9taW5ndy13NjQtY3J0L21pbmd3L2EuZGxsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg5NTNkNjAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21pbmd3L2EuZGxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWluZ3cvbWluZ3d0aHJkLmRlZiBiL21pbmd3LXc2NC1jcnQvbWluZ3cvbWluZ3d0aHJkLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNDA5NzY5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taW5ndy9taW5nd3RocmQuZGVmCkBAIC0wLDAgKzEsNCBAQAorOyAvdXNyL2xvY2FsL2Jpbi94ODZfNjQtcGMtbWluZ3c2NC1kbGx0b29sIC0tYXMgL3Vzci9sb2NhbC9iaW4veDg2XzY0LXBjLW1pbmd3NjQtYXMuZXhlIC0tb3V0cHV0LWRlZiBtaW5nd3RocmQuZGVmIG10aHIubyBtdGhyX2luaXQubworRVhQT1JUUworCV9fbWluZ3d0aHJfa2V5X2R0b3IgQCAxCisJX19taW5nd3Rocl9yZW1vdmVfa2V5X2R0b3IgQCAyCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21pbmd3L210aHJfc3R1Yi5jIGIvbWluZ3ctdzY0LWNydC9taW5ndy9tdGhyX3N0dWIuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NmY2YTU4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taW5ndy9tdGhyX3N0dWIuYwpAQCAtMCwwICsxLDQ0IEBACisvKg0KKyAqIG10aHJfc3R1Yi5jDQorICoNCisgKiBJbXBsZW1lbnQgTWluZ3cgdGhyZWFkLXN1cHBvcnQgc3R1YnMgZm9yIHNpbmdsZS10aHJlYWRlZCBDKysgYXBwcy4NCisgKg0KKyAqIFRoaXMgZmlsZSBpcyB1c2VkIGJ5IGlmIGdjYyBpcyBidWlsdCB3aXRoIC0tZW5hYmxlLXRocmVhZHM9d2luMzIgYW5kDQorICogaWZmIGdjYyBkb2VzICpOT1QqIHVzZSAtbXRocmVhZHMgb3B0aW9uLiANCisgKg0KKyAqIFRoZSAtbXRocmVhZHMgaW1wbGVtZW50YXRpb24gaXMgaW4gbXRoci5jLg0KKyAqDQorICogQ3JlYXRlZCBieSBNdW1pdCBLaGFuICA8a2hhbkBuYW5vdGVjaC53aXNjLmVkdT4NCisgKg0KKyAqLw0KKw0KKyNkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTg0KKyNpbmNsdWRlIDx3aW5kb3dzLmg+DQorI3VuZGVmIFdJTjMyX0xFQU5fQU5EX01FQU4NCisNCisvKg0KKyAqIF9fbWluZ3d0aHJfcmVnaXN0ZXJfa2V5X2R0b3IgKERXT1JEIGtleSwgdm9pZCAoKmR0b3IpICh2b2lkICopKQ0KKyAqDQorICogUHVibGljIGludGVyZmFjZSBjYWxsZWQgYnkgQysrIGV4Y2VwdGlvbiBoYW5kbGluZyBtZWNoYW5pc20gaW4NCisgKiBsaWJnY2MgKGNmOiBfX2d0aHJlYWRfa2V5X2NyZWF0ZSkuDQorICogTm8tb3AgdmVyc2lvbnMuDQorICovDQorDQoraW50DQorX19taW5nd3Rocl9rZXlfZHRvciAoRFdPUkQga2V5LCB2b2lkICgqZHRvcikgKHZvaWQgKikpDQorew0KKyNpZmRlZiBERUJVRw0KKyAgcHJpbnRmICgiJXM6IGlnbm9yaW5nIGtleTogKCVsZCkgLyBkdG9yOiAoJXgpXG4iLCANCisgICAgICAgICAgX19GVU5DVElPTl9fLCBrZXksIGR0b3IpOw0KKyNlbmRpZg0KKyAgcmV0dXJuIDA7DQorfQ0KKw0KK2ludA0KK19fbWluZ3d0aHJfcmVtb3ZlX2tleV9kdG9yIChEV09SRCBrZXkpDQorew0KKyNpZmRlZiBERUJVRw0KKyAgcHJpbnRmICgiJXM6IGlnbm9yaW5nIGtleTogKCVsZClcbiIsIF9fRlVOQ1RJT05fXywga2V5ICk7DQorI2VuZGlmDQorICByZXR1cm4gMDsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9taW5nd19oZWxwZXJzLmMgYi9taW5ndy13NjQtY3J0L21pbmd3X2hlbHBlcnMuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yM2JmMmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taW5nd19oZWxwZXJzLmMKQEAgLTAsMCArMSwyNSBAQAorI2luY2x1ZGUgPG9zY2FsbHMuaD4KKyNpbmNsdWRlIDxpbnRlcm5hbC5oPgorI2luY2x1ZGUgPHByb2Nlc3MuaD4KKyNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dGNoYXIuaD4KKyNpbmNsdWRlIDxzZWN0X2F0dHJpYnMuaD4KKyNpbmNsdWRlIDxsb2NhbGUuaD4KKworY29uc3QgUElNQUdFX1RMU19DQUxMQkFDSyBfX2R5bl90bHNfaW5pdF9jYWxsYmFjazsKKwordm9pZCAqIF9fY2RlY2wKK19kZWNvZGVfcG9pbnRlciAodm9pZCAqY29kZWRwdHIpCit7CisgIHJldHVybiAodm9pZCAqKSBjb2RlZHB0cjsKK30KKwordm9pZCAqIF9fY2RlY2wKK19lbmNvZGVfcG9pbnRlciAodm9pZCAqcHRyKQoreworICByZXR1cm4gcHRyOworfQorCisvKiAwOmNvbnNvbGUsIDE6d2luZG93cy4gICovCitpbnQgbWluZ3dfYXBwX3R5cGUgPSAwOwpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9taXNjL2FsYXJtLmMgYi9taW5ndy13NjQtY3J0L21pc2MvYWxhcm0uYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lN2JiODc0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taXNjL2FsYXJtLmMKQEAgLTAsMCArMSw0IEBACit1bnNpZ25lZCBpbnQgYWxhcm0odW5zaWduZWQgaW50IHNlY29uZHMpDQorew0KKyAgcmV0dXJuIDA7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWlzYy9idG93Yy5jIGIvbWluZ3ctdzY0LWNydC9taXNjL2J0b3djLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTI4MDI4YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWlzYy9idG93Yy5jCkBAIC0wLDAgKzEsMTkgQEAKKyNpbmNsdWRlICJtYl93Y19jb21tb24uaCINCisjaW5jbHVkZSA8d2NoYXIuaD4NCisjaW5jbHVkZSA8c3RkaW8uaD4NCisjZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4NCisjaW5jbHVkZSA8d2luZG93cy5oPg0KKw0KK3dpbnRfdCBidG93YyAoaW50IGMpDQorew0KKyAgaWYgKGMgPT0gRU9GKQ0KKyAgICByZXR1cm4gKFdFT0YpOw0KKyAgZWxzZQ0KKyAgICB7DQorICAgICAgdW5zaWduZWQgY2hhciBjaCA9IGM7DQorICAgICAgd2NoYXJfdCB3YyA9IFdFT0Y7DQorICAgICAgTXVsdGlCeXRlVG9XaWRlQ2hhciAoZ2V0X2NwX2Zyb21fbG9jYWxlKCksIE1CX0VSUl9JTlZBTElEX0NIQVJTLA0KKwkJCSAgIChjaGFyKikmY2gsIDEsICZ3YywgMSk7DQorICAgICAgcmV0dXJuIHdjOw0KKyAgICB9DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWlzYy9mZWNsZWFyZXhjZXB0LmMgYi9taW5ndy13NjQtY3J0L21pc2MvZmVjbGVhcmV4Y2VwdC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIwNTQ3NWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21pc2MvZmVjbGVhcmV4Y2VwdC5jCkBAIC0wLDAgKzEsMTUgQEAKKyNpbmNsdWRlIDxmZW52Lmg+DQorDQorLyogNy42LjIuMQ0KKyAgIFRoZSBmZWNsZWFyZXhjZXB0IGZ1bmN0aW9uIGNsZWFycyB0aGUgc3VwcG9ydGVkIGV4Y2VwdGlvbnMNCisgICByZXByZXNlbnRlZCBieSBpdHMgYXJndW1lbnQuICAqLw0KKw0KK2ludCBmZWNsZWFyZXhjZXB0IChpbnQgZXhjZXB0cykNCit7DQorICBmZW52X3QgX2VudjsNCisgIF9fYXNtX18gdm9sYXRpbGUgKCJmbnN0ZW52ICUwOyIgOiAiPW0iIChfZW52KSk7IC8qIGdldCB0aGUgZW52ICovDQorICBfZW52Ll9fc3RhdHVzX3dvcmQgJj0gfihleGNlcHRzICYgRkVfQUxMX0VYQ0VQVCk7IC8qIGNsZWFyIHRoZSBleGNlcHQgKi8NCisgIF9fYXNtX18gdm9sYXRpbGUgKCJmbGRlbnYgJTA7IiA6OiAibSIgKF9lbnYpKTsgLypzZXQgdGhlIGVudiAqLw0KKw0KKyAgcmV0dXJuIDA7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWlzYy9mZWdldGVudi5jIGIvbWluZ3ctdzY0LWNydC9taXNjL2ZlZ2V0ZW52LmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDI1ZmQyMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWlzYy9mZWdldGVudi5jCkBAIC0wLDAgKzEsMTQgQEAKKyNpbmNsdWRlIDxmZW52Lmg+DQorDQorLyogNy42LjQuMQ0KKyAgIFRoZSBmZWdldGVudiBmdW5jdGlvbiBzdG9yZXMgdGhlIGN1cnJlbnQgZmxvYXRpbmctcG9pbnQgZW52aXJvbm1lbnQNCisgICBpbiB0aGUgb2JqZWN0IHBvaW50ZWQgdG8gYnkgZW52cC4gICovDQorDQoraW50IGZlZ2V0ZW52IChmZW52X3QgKiBlbnZwKQ0KK3sNCisgIF9fYXNtX18gKCJmbnN0ZW52ICUwOyI6ICI9bSIgKCplbnZwKSk7DQorIC8qIGZuc3RlbnYgc2V0cyBjb250cm9sIHdvcmQgdG8gbm9uLXN0b3AgZm9yIGFsbCBleGNlcHRpb25zLCBzbyB3ZQ0KKyAgICBuZWVkIHRvIHJlbG9hZCBvdXIgZW52IHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIG1hc2suICAqLw0KKyAgX19hc21fXyAoImZsZGVudiAlMCIgOiA6ICJtIiAoKmVudnApKTsNCisgIHJldHVybiAwOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21pc2MvZmVnZXRleGNlcHRmbGFnLmMgYi9taW5ndy13NjQtY3J0L21pc2MvZmVnZXRleGNlcHRmbGFnLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjJjNDY3MwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWlzYy9mZWdldGV4Y2VwdGZsYWcuYwpAQCAtMCwwICsxLDE1IEBACisjaW5jbHVkZSA8ZmVudi5oPg0KKw0KKw0KKy8qIDcuNi4yLjIgIA0KKyAgIFRoZSBmZWdldGV4Y2VwdGZsYWcgZnVuY3Rpb24gc3RvcmVzIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQNCisgICByZXByZXNlbnRhdGlvbiBvZiB0aGUgZXhjZXB0aW9uIGZsYWdzIGluZGljYXRlZCBieSB0aGUgYXJndW1lbnQNCisgICBleGNlcHRzIGluIHRoZSBvYmplY3QgcG9pbnRlZCB0byBieSB0aGUgYXJndW1lbnQgZmxhZ3AuICAqLw0KKw0KK2ludCBmZWdldGV4Y2VwdGZsYWcgKGZleGNlcHRfdCAqIGZsYWdwLCBpbnQgZXhjZXB0cykNCit7DQorICB1bnNpZ25lZCBzaG9ydCBfc3c7DQorICBfX2FzbV9fICgiZm5zdHN3ICUlYXg7IjogIj1hIiAoX3N3KSk7DQorICAqZmxhZ3AgPSBfc3cgICYgZXhjZXB0cyAmIEZFX0FMTF9FWENFUFQ7DQorICByZXR1cm4gMDsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9taXNjL2ZlZ2V0cm91bmQuYyBiL21pbmd3LXc2NC1jcnQvbWlzYy9mZWdldHJvdW5kLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2NjM2MzZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWlzYy9mZWdldHJvdW5kLmMKQEAgLTAsMCArMSwxNCBAQAorI2luY2x1ZGUgPGZlbnYuaD4NCisNCisvKiA3LjYuMy4xDQorICAgVGhlIGZlZ2V0cm91bmQgZnVuY3Rpb24gcmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIHJvdW5kaW5nIGRpcmVjdGlvbg0KKyAgIG1hY3JvIHJlcHJlc2VudGluZyB0aGUgY3VycmVudCByb3VuZGluZyBkaXJlY3Rpb24uICAqLw0KKw0KK2ludA0KK2ZlZ2V0cm91bmQgKHZvaWQpDQorew0KKyAgdW5zaWduZWQgc2hvcnQgX2N3Ow0KKyAgX19hc21fXyAoImZuc3RjdyAlMDsiCTogIj1tIiAoX2N3KSk7DQorICByZXR1cm4gX2N3DQorICAgICAgICAgICYgKEZFX1RPTkVBUkVTVCB8IEZFX0RPV05XQVJEIHwgRkVfVVBXQVJEIHwgRkVfVE9XQVJEWkVSTyk7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWlzYy9mZWhvbGRleGNlcHQuYyBiL21pbmd3LXc2NC1jcnQvbWlzYy9mZWhvbGRleGNlcHQuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNGI2MDVmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taXNjL2ZlaG9sZGV4Y2VwdC5jCkBAIC0wLDAgKzEsMTYgQEAKKyNpbmNsdWRlIDxmZW52Lmg+DQorDQorLyogNy42LjQuMg0KKyAgIFRoZSBmZWhvbGRleGNlcHQgZnVuY3Rpb24gc2F2ZXMgdGhlIGN1cnJlbnQgZmxvYXRpbmctcG9pbnQNCisgICBlbnZpcm9ubWVudCBpbiB0aGUgb2JqZWN0IHBvaW50ZWQgdG8gYnkgZW52cCwgY2xlYXJzIHRoZSBleGNlcHRpb24NCisgICBmbGFncywgYW5kIHRoZW4gaW5zdGFsbHMgYSBub24tc3RvcCAoY29udGludWUgb24gZXhjZXB0aW9ucykgbW9kZSwNCisgICBpZiBhdmFpbGFibGUsIGZvciBhbGwgZXhjZXB0aW9ucy4gICovDQorDQoraW50IGZlaG9sZGV4Y2VwdCAoZmVudl90ICogZW52cCkNCit7DQorICBfX2FzbV9fICgiZm5zdGVudiAlMDsiIDogIj1tIiAoKiBlbnZwKSk7IC8qIHNhdmUgY3VycmVudCBpbnRvIGVudnAgKi8NCisgLyogZm5zdGVudiBzZXRzIGNvbnRyb2wgd29yZCB0byBub24tc3RvcCBmb3IgYWxsIGV4Y2VwdGlvbnMsIHNvIGFsbCB3ZQ0KKyAgICBuZWVkIHRvIGRvIGlzIGNsZWFyIHRoZSBleGNlcHRpb24gZmxhZ3MuICAqLw0KKyAgX19hc21fXyAoImZuY2xleCIpOw0KKyAgcmV0dXJuIDA7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWlzYy9mZXJhaXNlZXhjZXB0LmMgYi9taW5ndy13NjQtY3J0L21pc2MvZmVyYWlzZWV4Y2VwdC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU5YzcyZWMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21pc2MvZmVyYWlzZWV4Y2VwdC5jCkBAIC0wLDAgKzEsMTkgQEAKKyNpbmNsdWRlIDxmZW52Lmg+IA0KKw0KKy8qIDcuNi4yLjMNCisgICBUaGUgZmVyYWlzZWV4Y2VwdCBmdW5jdGlvbiByYWlzZXMgdGhlIHN1cHBvcnRlZCBleGNlcHRpb25zDQorICAgcmVwcmVzZW50ZWQgYnkgaXRzIGFyZ3VtZW50IFRoZSBvcmRlciBpbiB3aGljaCB0aGVzZSBleGNlcHRpb25zDQorICAgYXJlIHJhaXNlZCBpcyB1bnNwZWNpZmllZCwgZXhjZXB0IGFzIHN0YXRlZCBpbiBGLjcuNi4NCisgICBXaGV0aGVyIHRoZSBmZXJhaXNlZXhjZXB0IGZ1bmN0aW9uIGFkZGl0aW9uYWxseSByYWlzZXMNCisgICB0aGUgaW5leGFjdCBleGNlcHRpb24gd2hlbmV2ZXIgaXQgcmFpc2VzIHRoZSBvdmVyZmxvdw0KKyAgIG9yIHVuZGVyZmxvdyBleGNlcHRpb24gaXMgaW1wbGVtZW50YXRpb24tZGVmaW5lZC4gKi8NCisNCitpbnQgZmVyYWlzZWV4Y2VwdCAoaW50IGV4Y2VwdHMpDQorew0KKyAgZmVudl90IF9lbnY7DQorICBfX2FzbV9fIHZvbGF0aWxlICgiZm5zdGVudiAlMDsiIDogIj1tIiAoX2VudikpOw0KKyAgX2Vudi5fX3N0YXR1c193b3JkIHw9IGV4Y2VwdHMgJiBGRV9BTExfRVhDRVBUOw0KKyAgX19hc21fXyB2b2xhdGlsZSAoImZsZGVudiAlMDsiDQorCQkgICAgImZ3YWl0OyIgOiA6ICJtIiAoX2VudikpOw0KKyAgcmV0dXJuIDA7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWlzYy9mZXNldGVudi5jIGIvbWluZ3ctdzY0LWNydC9taXNjL2Zlc2V0ZW52LmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGFhMGU2YwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWlzYy9mZXNldGVudi5jCkBAIC0wLDAgKzEsNDMgQEAKKyNpbmNsdWRlIDxmZW52Lmg+DQorI2luY2x1ZGUgPGZsb2F0Lmg+DQorDQorLyogNy42LjQuMw0KKyAgIFRoZSBmZXNldGVudiBmdW5jdGlvbiBlc3RhYmxpc2hlcyB0aGUgZmxvYXRpbmctcG9pbnQgZW52aXJvbm1lbnQNCisgICByZXByZXNlbnRlZCBieSB0aGUgb2JqZWN0IHBvaW50ZWQgdG8gYnkgZW52cC4gVGhlIGFyZ3VtZW50IGVudnANCisgICBwb2ludHMgdG8gYW4gb2JqZWN0IHNldCBieSBhIGNhbGwgdG8gZmVnZXRlbnYgb3IgZmVob2xkZXhjZXB0LCBvcg0KKyAgIGVxdWFsIHRoZSBtYWNybyBGRV9ERkxfRU5WIG9yIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgZW52aXJvbm1lbnQNCisgICBtYWNyby4gTm90ZSB0aGF0IGZlc2V0ZW52IG1lcmVseSBpbnN0YWxscyB0aGUgc3RhdGUgb2YgdGhlIGV4Y2VwdGlvbg0KKyAgIGZsYWdzIHJlcHJlc2VudGVkIHRocm91Z2ggaXRzIGFyZ3VtZW50LCBhbmQgZG9lcyBub3QgcmFpc2UgdGhlc2UNCisgICBleGNlcHRpb25zLg0KKyAqLw0KKw0KK2V4dGVybiB2b2lkICgqX2ltcF9fX2ZwcmVzZXQpKCB2b2lkICkgOw0KKw0KK2ludCBmZXNldGVudiAoY29uc3QgZmVudl90ICogZW52cCkNCit7DQorICBpZiAoZW52cCA9PSBGRV9QQzY0X0VOVikNCisgICAvKg0KKyAgICAqICBmbmluaXQgaW5pdGlhbGl6ZXMgdGhlIGNvbnRyb2wgcmVnaXN0ZXIgdG8gMHgzN2YsDQorICAgICogIHRoZSBzdGF0dXMgcmVnaXN0ZXIgdG8gemVybyBhbmQgdGhlIHRhZyB3b3JkIHRvIDBGRkZGaC4NCisgICAgKiAgVGhlIG90aGVyIHJlZ2lzdGVycyBhcmUgdW5hZmZlY3RlZC4NCisgICAgKi8NCisgICAgX19hc21fXyAoImZuaW5pdCIpOw0KKw0KKyAgZWxzZSBpZiAoZW52cCA9PSBGRV9QQzUzX0VOVikNCisgICAvKg0KKyAgICAqIE1TIF9mcHJlc2V0KCkgZG9lcyBzYW1lICpleGNlcHQqIGl0IHNldHMgY29udHJvbCB3b3JkDQorICAgICogdG8gMHgyN2YgKDUzLWJpdCBwcmVjaXNvbikuDQorICAgICogV2UgZm9yY2UgY2FsbGluZyBfZnByZXNldCBpbiBtc3ZjcnQuZGxsDQorICAgICovDQorDQorICAgKCpfaW1wX19fZnByZXNldCkoKTsNCisNCisgIGVsc2UgaWYgKGVudnAgPT0gRkVfREZMX0VOVikNCisgICAgLyogVXNlIHRoZSBjaG9pY2UgbWFkZSBhdCBhcHAgc3RhcnR1cCAqLyANCisgICAgX2ZwcmVzZXQoKTsNCisNCisgIGVsc2UNCisgICAgX19hc21fXyAoImZsZGVudiAlMDsiIDogOiAibSIgKCplbnZwKSk7DQorDQorICByZXR1cm4gMDsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9taXNjL2Zlc2V0ZXhjZXB0ZmxhZy5jIGIvbWluZ3ctdzY0LWNydC9taXNjL2Zlc2V0ZXhjZXB0ZmxhZy5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA5NDJjODkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21pc2MvZmVzZXRleGNlcHRmbGFnLmMKQEAgLTAsMCArMSwyMiBAQAorI2luY2x1ZGUgPGZlbnYuaD4gDQorDQorLyogNy42LjIuNA0KKyAgIFRoZSBmZXNldGV4Y2VwdGZsYWcgZnVuY3Rpb24gc2V0cyB0aGUgY29tcGxldGUgc3RhdHVzIGZvciB0aG9zZQ0KKyAgIGV4Y2VwdGlvbiBmbGFncyBpbmRpY2F0ZWQgYnkgdGhlIGFyZ3VtZW50IGV4Y2VwdHMsIGFjY29yZGluZyB0byB0aGUNCisgICByZXByZXNlbnRhdGlvbiBpbiB0aGUgb2JqZWN0IHBvaW50ZWQgdG8gYnkgZmxhZ3AuIFRoZSB2YWx1ZSBvZg0KKyAgICpmbGFncCBzaGFsbCBoYXZlIGJlZW4gc2V0IGJ5IGEgcHJldmlvdXMgY2FsbCB0byBmZWdldGV4Y2VwdGZsYWcNCisgICB3aG9zZSBzZWNvbmQgYXJndW1lbnQgcmVwcmVzZW50ZWQgYXQgbGVhc3QgdGhvc2UgZXhjZXB0aW9ucw0KKyAgIHJlcHJlc2VudGVkIGJ5IHRoZSBhcmd1bWVudCBleGNlcHRzLiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IHJhaXNlDQorICAgZXhjZXB0aW9ucywgYnV0IG9ubHkgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIGZsYWdzLiAqLyANCisNCitpbnQgZmVzZXRleGNlcHRmbGFnIChjb25zdCBmZXhjZXB0X3QgKiBmbGFncCwgaW50IGV4Y2VwdHMpIA0KK3sgDQorICBmZW52X3QgX2VudjsNCisNCisgIGV4Y2VwdHMgJj0gRkVfQUxMX0VYQ0VQVDsNCisgIF9fYXNtX18gdm9sYXRpbGUgKCJmbnN0ZW52ICUwOyIgOiAiPW0iIChfZW52KSk7DQorICBfZW52Ll9fc3RhdHVzX3dvcmQgJj0gfmV4Y2VwdHM7DQorICBfZW52Ll9fc3RhdHVzX3dvcmQgfD0gKCpmbGFncCAmIGV4Y2VwdHMpOw0KKyAgX19hc21fXyB2b2xhdGlsZSAoImZsZGVudiAlMDsiIDogOiAibSIgKF9lbnYpKTsNCisgIHJldHVybiAwOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21pc2MvZmVzZXRyb3VuZC5jIGIvbWluZ3ctdzY0LWNydC9taXNjL2Zlc2V0cm91bmQuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNTkzOWNiCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taXNjL2Zlc2V0cm91bmQuYwpAQCAtMCwwICsxLDE5IEBACisjaW5jbHVkZSA8ZmVudi5oPg0KKyAvKiA3LjYuMy4yDQorICAgIFRoZSBmZXNldHJvdW5kIGZ1bmN0aW9uIGVzdGFibGlzaGVzIHRoZSByb3VuZGluZyBkaXJlY3Rpb24NCisgICAgcmVwcmVzZW50ZWQgYnkgaXRzIGFyZ3VtZW50IHJvdW5kLiBJZiB0aGUgYXJndW1lbnQgaXMgbm90IGVxdWFsDQorICAgIHRvIHRoZSB2YWx1ZSBvZiBhIHJvdW5kaW5nIGRpcmVjdGlvbiBtYWNybywgdGhlIHJvdW5kaW5nIGRpcmVjdGlvbg0KKyAgICBpcyBub3QgY2hhbmdlZC4gICovDQorDQoraW50IGZlc2V0cm91bmQgKGludCBtb2RlKQ0KK3sNCisgIHVuc2lnbmVkIHNob3J0IF9jdzsNCisgIGlmICgobW9kZSAmIH4oRkVfVE9ORUFSRVNUIHwgRkVfRE9XTldBUkQgfCBGRV9VUFdBUkQgfCBGRV9UT1dBUkRaRVJPKSkNCisgICAgICAhPSAwKQ0KKyAgICByZXR1cm4gLTE7DQorICBfX2FzbV9fIHZvbGF0aWxlICgiZm5zdGN3ICUwOyI6ICI9bSIgKF9jdykpOw0KKyAgX2N3ICY9IH4oRkVfVE9ORUFSRVNUIHwgRkVfRE9XTldBUkQgfCBGRV9VUFdBUkQgfCBGRV9UT1dBUkRaRVJPKTsNCisgIF9jdyB8PSBtb2RlOw0KKyAgX19hc21fXyB2b2xhdGlsZSAoImZsZGN3ICUwOyIgOiA6ICJtIiAoX2N3KSk7DQorICByZXR1cm4gMDsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9taXNjL2ZldGVzdGV4Y2VwdC5jIGIvbWluZ3ctdzY0LWNydC9taXNjL2ZldGVzdGV4Y2VwdC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJmNTVkNzEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21pc2MvZmV0ZXN0ZXhjZXB0LmMKQEAgLTAsMCArMSwxNSBAQAorI2luY2x1ZGUgPGZlbnYuaD4gDQorLyogNy42LjIuNSANCisgICBUaGUgZmV0ZXN0ZXhjZXB0IGZ1bmN0aW9uIGRldGVybWluZXMgd2hpY2ggb2YgYSBzcGVjaWZpZWQgc3Vic2V0IG9mDQorICAgdGhlIGV4Y2VwdGlvbiBmbGFncyBhcmUgY3VycmVudGx5IHNldC4gVGhlIGV4Y2VwdHMgYXJndW1lbnQNCisgICBzcGVjaWZpZXMgdGhlIGV4Y2VwdGlvbiBmbGFncyB0byBiZSBxdWVyaWVkLg0KKyAgIFRoZSBmZXRlc3RleGNlcHQgZnVuY3Rpb24gcmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIGJpdHdpc2UgT1Igb2YgdGhlDQorICAgZXhjZXB0aW9uIG1hY3JvcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBjdXJyZW50bHkgc2V0IGV4Y2VwdGlvbnMNCisgICBpbmNsdWRlZCBpbiBleGNlcHRzLiAqLw0KKw0KK2ludCBmZXRlc3RleGNlcHQgKGludCBleGNlcHRzKQ0KK3sNCisgIHVuc2lnbmVkIHNob3J0IF9zdzsNCisgIF9fYXNtX18gKCJmbnN0c3cgJSVheCIgOiAiPWEiIChfc3cpKTsNCisgIHJldHVybiBfc3cgJiBleGNlcHRzICYgRkVfQUxMX0VYQ0VQVDsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9taXNjL2ZldXBkYXRlZW52LmMgYi9taW5ndy13NjQtY3J0L21pc2MvZmV1cGRhdGVlbnYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNjYyNWM2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taXNjL2ZldXBkYXRlZW52LmMKQEAgLTAsMCArMSwyMCBAQAorI2luY2x1ZGUgPGZlbnYuaD4NCisNCisvKiA3LjYuNC40DQorICAgVGhlIGZldXBkYXRlZW52IGZ1bmN0aW9uIHNhdmVzIHRoZSBjdXJyZW50bHkgcmFpc2VkIGV4Y2VwdGlvbnMgaW4NCisgICBpdHMgYXV0b21hdGljIHN0b3JhZ2UsIGluc3RhbGxzIHRoZSBmbG9hdGluZy1wb2ludCBlbnZpcm9ubWVudA0KKyAgIHJlcHJlc2VudGVkIGJ5IHRoZSBvYmplY3QgcG9pbnRlZCB0byBieSBlbnZwLCBhbmQgdGhlbiByYWlzZXMgdGhlDQorICAgc2F2ZWQgZXhjZXB0aW9ucy4gVGhlIGFyZ3VtZW50IGVudnAgc2hhbGwgcG9pbnQgdG8gYW4gb2JqZWN0DQorICAgc2V0IGJ5IGEgY2FsbCB0byBmZWhvbGRleGNlcHQgb3IgZmVnZXRlbnYsIG9yIGVxdWFsIHRoZSBtYWNybw0KKyAgIEZFX0RGTF9FTlYgb3IgYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCBlbnZpcm9ubWVudCBtYWNyby4gKi8NCisNCisvKiBGSVhNRTogdGhpcyB3b3JrcyBidXQgc3VyZWx5IHRoZXJlIG11c3QgYmUgYSBiZXR0ZXIgd2F5LiAgKi8NCisNCitpbnQgZmV1cGRhdGVlbnYgKGNvbnN0IGZlbnZfdCAqIGVudnApDQorew0KKyAgdW5zaWduZWQgaW50IF9mZXhjZXB0ID0gZmV0ZXN0ZXhjZXB0IChGRV9BTExfRVhDRVBUKTsgLypzYXZlIGV4Y2VwdHMgKi8NCisgIGZlc2V0ZW52IChlbnZwKTsgLyogaW5zdGFsbCB0aGUgZW52ICAqLw0KKyAgZmVyYWlzZWV4Y2VwdCAoX2ZleGNlcHQpOyAvKiByYWlzZSB0aGUgZXhlY2VwdCAqLw0KKyAgcmV0dXJuIDA7DQorfQ0KKw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWlzYy9md2lkZS5jIGIvbWluZ3ctdzY0LWNydC9taXNjL2Z3aWRlLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmVhZWE3MQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWlzYy9md2lkZS5jCkBAIC0wLDAgKzEsMTAgQEAKKyNpbmNsdWRlCTx3Y2hhci5oPg0KKyNpbmNsdWRlCTxzdGRpby5oPg0KKw0KKyNpZiAwDQoraW50IGZ3aWRlKEZJTEUgKnN0cmVhbSxpbnQgbW9kZSkNCit7DQorCXJldHVybiAtMTsJCQkvKiBsaW1pdGVkIHRvIGJ5dGUgb3JpZW50YXRpb24gKi8NCit9DQorDQorI2VuZGlmDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9taXNjL2dldGxvZ2luLmMgYi9taW5ndy13NjQtY3J0L21pc2MvZ2V0bG9naW4uYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZGRlZTUxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taXNjL2dldGxvZ2luLmMKQEAgLTAsMCArMSwxNSBAQAorI2luY2x1ZGUgPHN0ZGRlZi5oPg0KKyNpbmNsdWRlIDxlcnJuby5oPg0KKyNpbmNsdWRlIDx1bmlzdGQuaD4NCisjaW5jbHVkZSA8d2luZG93cy5oPg0KKw0KK2NoYXIgKmdldGxvZ2luKHZvaWQpDQorew0KKyAgc3RhdGljIGNoYXIgdXNlcl9uYW1lW01BWF9QQVRIXTsNCisgIERXT1JEICBsZW5ndGggPSBzaXplb2YgKHVzZXJfbmFtZSk7DQorDQorICBpZiAoR2V0VXNlck5hbWUgKHVzZXJfbmFtZSwgJmxlbmd0aCkpDQorICAgIHJldHVybiB1c2VyX25hbWU7DQorICByZXR1cm4gTlVMTDsNCit9DQorDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9taXNjL2dldHRpbWVvZmRheS5jIGIvbWluZ3ctdzY0LWNydC9taXNjL2dldHRpbWVvZmRheS5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjczZjI0ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21pc2MvZ2V0dGltZW9mZGF5LmMKQEAgLTAsMCArMSw1NyBAQAorI2luY2x1ZGUgPHRpbWUuaD4NCisjaW5jbHVkZSA8c3lzL3RpbWUuaD4NCisjaW5jbHVkZSA8c3lzL3RpbWViLmg+DQorI2luY2x1ZGUgPGVycm5vLmg+DQorI2luY2x1ZGUgPHdpbmRvd3MuaD4NCisNCisjZGVmaW5lIEZJTEVUSU1FXzE5NzAgMTE2NDQ0NzM2MDB1bGwgLyogc2Vjb25kcyBiZXR3ZWVuIDEvMS8xNjAxIGFuZCAxLzEvMTk3MCAqLw0KKyNkZWZpbmUgSEVDVE9OQU5PU0VDX1BFUl9TRUMgMTAwMDAwMDB1bGwNCisNCitpbnQgZ2V0bnRwdGltZW9mZGF5IChzdHJ1Y3QgdGltZXNwZWMgKnRwLCBzdHJ1Y3QgdGltZXpvbmUgKnopDQorew0KKyAgaW50IHJlcyA9IDA7DQorICAvLwlzdHJ1Y3QgX3RpbWViIHRpbWVidWZmZXI7DQorICBVTEFSR0VfSU5URUdFUiBmdGk7DQorICBUSU1FX1pPTkVfSU5GT1JNQVRJT04gIFRpbWVab25lSW5mb3JtYXRpb247DQorICBEV09SRCB0emk7DQorDQorICBpZiAoeiAhPSBOVUxMKQ0KKyAgICB7DQorICAgICAgaWYgKCh0emkgPSBHZXRUaW1lWm9uZUluZm9ybWF0aW9uKCZUaW1lWm9uZUluZm9ybWF0aW9uKSkgIT0gVElNRV9aT05FX0lEX0lOVkFMSUQpIHsNCisJei0+dHpfbWludXRlc3dlc3QgPSBUaW1lWm9uZUluZm9ybWF0aW9uLkJpYXM7DQorCWlmICh0emkgPT0gVElNRV9aT05FX0lEX0RBWUxJR0hUKQ0KKwkgIHotPnR6X2RzdHRpbWUgPSAxOw0KKwllbHNlDQorCSAgei0+dHpfZHN0dGltZSA9IDA7DQorICAgICAgfQ0KKyAgICBlbHNlDQorICAgICAgew0KKwl6LT50el9taW51dGVzd2VzdCA9IDA7DQorCXotPnR6X2RzdHRpbWUgPSAwOw0KKyAgICAgIH0NCisgICAgfQ0KKw0KKyAgaWYgKHRwICE9IE5VTEwpIHsNCisgICAgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUgKChMUEZJTEVUSU1FKSAmZnRpKTsJIC8qIDEwMC1uYW5vc2Vjb25kcyBzaW5jZSAxLTEtMTYwMSAqLw0KKyAgICAvKiBUaGUgYWN0dWFsIGFjY3VyYWN5IG9uIFhQIHNlZW1zIHRvIGJlIDEyNSwwMDAgbmFub3NlY29uZHMgPSAxMjUgbWljcm9zZWNvbmRzID0gMC4xMjUgbWlsbGlzZWNvbmRzICovDQorICAgIGZ0aS5RdWFkUGFydCAtPSBGSUxFVElNRV8xOTcwOwkvKiAxMDAgbmFuby1zZWNvbmRzIHNpbmNlIDEtMS0xOTcwICovDQorICAgIHRwLT50dl9zZWMgPSBmdGkuUXVhZFBhcnQgLyBIRUNUT05BTk9TRUNfUEVSX1NFQzsJLyogc2Vjb25kcyBzaW5jZSAxLTEtMTk3MCAqLw0KKyAgICB0cC0+dHZfbnNlYyA9IChsb25nKSAoZnRpLlF1YWRQYXJ0ICUgSEVDVE9OQU5PU0VDX1BFUl9TRUMpICogMTAwOyAvKiBuYW5vc2Vjb25kcyAqLw0KKyAgfQ0KKyAgcmV0dXJuIHJlczsNCit9DQorDQorI2lmIDANCisNCitpbnQgX19jZGVjbCBnZXR0aW1lb2ZkYXkgKHN0cnVjdCB0aW1ldmFsICpwLCBzdHJ1Y3QgdGltZXpvbmUgKnopDQorew0KKyAgc3RydWN0IHRpbWVzcGVjIHRwOw0KKw0KKyAgaWYgKGdldG50cHRpbWVvZmRheSAoJnRwLCB6KSkNCisgICAgcmV0dXJuIC0xOw0KKyAgcC0+dHZfc2VjPXRwLnR2X3NlYzsNCisgIHAtPnR2X3VzZWM9KHRwLnR2X25zZWMvMTAwMCk7DQorICByZXR1cm4gMDsNCit9DQorDQorI2VuZGlmDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9taXNjL2ltYXhhYnMuYyBiL21pbmd3LXc2NC1jcnQvbWlzYy9pbWF4YWJzLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjk4MDQwMgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWlzYy9pbWF4YWJzLmMKQEAgLTAsMCArMSwxNyBAQAorLyoNCisgICAgVGhpcyBzb3VyY2UgY29kZSB3YXMgZXh0cmFjdGVkIGZyb20gdGhlIFE4IHBhY2thZ2UgY3JlYXRlZCBhbmQNCisgICAgcGxhY2VkIGluIHRoZSBQVUJMSUMgRE9NQUlOIGJ5IERvdWcgR3d5biA8Z3d5bkBhcmwubWlsPg0KKyAgICBsYXN0IGVkaXQ6CTE5OTkvMTEvMDUJZ3d5bkBhcmwubWlsDQorDQorCUltcGxlbWVudHMgc3ViY2xhdXNlIDcuOC4yIG9mIElTTy9JRUMgOTg5OToxOTk5IChFKS4NCisNCisJVGhpcyBwYXJ0aWN1bGFyIGltcGxlbWVudGF0aW9uIHJlcXVpcmVzIHRoZSBtYXRjaGluZyA8aW50dHlwZXMuaD4uDQorKi8NCisNCisjaW5jbHVkZSA8aW50dHlwZXMuaD4NCisNCitpbnRtYXhfdA0KK2ltYXhhYnMgKGludG1heF90IF9qKQ0KKyAgeyByZXR1cm4JX2ogPj0gMCA/IF9qIDogLV9qOyB9DQorDQorbG9uZyBsb25nIF9fYXR0cmlidXRlX18gKChhbGlhcyAoImltYXhhYnMiKSkpCWxsYWJzIChsb25nIGxvbmcpOyANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21pc2MvaW1heGRpdi5jIGIvbWluZ3ctdzY0LWNydC9taXNjL2ltYXhkaXYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZGY3NzE3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taXNjL2ltYXhkaXYuYwpAQCAtMCwwICsxLDI1IEBACisvKg0KKyAgICBUaGlzIHNvdXJjZSBjb2RlIHdhcyBleHRyYWN0ZWQgZnJvbSB0aGUgUTggcGFja2FnZSBjcmVhdGVkIGFuZA0KKyAgICBwbGFjZWQgaW4gdGhlIFBVQkxJQyBET01BSU4gYnkgRG91ZyBHd3luIDxnd3luQGFybC5taWw+DQorICAgIGxhc3QgZWRpdDoJMTk5OS8xMS8wNQlnd3luQGFybC5taWwNCisNCisNCisJbGFzdCBlZGl0OgkxOTk5LzExLzA1CWd3eW5AYXJsLm1pbA0KKw0KKwlJbXBsZW1lbnRzIHN1YmNsYXVzZSA3LjguMiBvZiBJU08vSUVDIDk4OTk6MTk5OSAoRSkuDQorDQorKi8NCisNCisjaW5jbHVkZQk8aW50dHlwZXMuaD4NCisNCitpbWF4ZGl2X3QNCitpbWF4ZGl2KGludG1heF90IG51bWVyLCBpbnRtYXhfdCBkZW5vbSkNCit7DQorICBpbWF4ZGl2X3QJcmVzdWx0Ow0KKyAgcmVzdWx0LnF1b3QgPSBudW1lciAvIGRlbm9tOw0KKyAgcmVzdWx0LnJlbSA9IG51bWVyICUgZGVub207DQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCitsb25nIGxvbmcgX19hdHRyaWJ1dGVfXyAoKGFsaWFzICgiaW1heGRpdiIpKSkNCitsbGRpdiAobG9uZyBsb25nLCBsb25nIGxvbmcpOyANCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21pc2MvbWJfd2NfY29tbW9uLmggYi9taW5ndy13NjQtY3J0L21pc2MvbWJfd2NfY29tbW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmRkNDgwOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWlzYy9tYl93Y19jb21tb24uaApAQCAtMCwwICsxLDE4IEBACisjaW5jbHVkZSA8bG9jYWxlLmg+DQorI2luY2x1ZGUgPHN0cmluZy5oPg0KKyNpbmNsdWRlIDxzdGRsaWIuaD4NCisNCitzdGF0aWMgaW5saW5lDQordW5zaWduZWQgaW50IGdldF9jcF9mcm9tX2xvY2FsZSAodm9pZCkNCit7DQorICBjaGFyKiBjcF9zdHJpbmc7DQorICAvKg0KKyAgICBsb2NhbGUgOjogImxhbmdbX2NvdW50cnlbLmNvZGVfcGFnZV1dIiANCisgICAgICAgICAgICAgICB8ICIuY29kZV9wYWdlIg0KKw0KKyAgKi8NCisNCisgIGlmICgoY3Bfc3RyaW5nID0gc3RyY2hyKHNldGxvY2FsZShMQ19DVFlQRSwgTlVMTCksICcuJykpKQ0KKyAgICByZXR1cm4gICgodW5zaWduZWQpIGF0b2kgKGNwX3N0cmluZyArIDEpKTsNCisgIHJldHVybiAwOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21pc2MvbWJydG93Yy5jIGIvbWluZ3ctdzY0LWNydC9taXNjL21icnRvd2MuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xYWUxZDE4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taXNjL21icnRvd2MuYwpAQCAtMCwwICsxLDE1NCBAQAorI2luY2x1ZGUgIm1iX3djX2NvbW1vbi5oIg0KKyNpbmNsdWRlIDx3Y2hhci5oPg0KKyNpbmNsdWRlIDxzdGRsaWIuaD4NCisjaW5jbHVkZSA8ZXJybm8uaD4NCisjZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4NCisjaW5jbHVkZSA8d2luZG93cy5oPg0KKw0KK3N0YXRpYyBpbnQgDQorX19tYnJ0b3djX2NwICh3Y2hhcl90ICogX19yZXN0cmljdF9fIHB3YywgY29uc3QgY2hhciAqIF9fcmVzdHJpY3RfXyBzLA0KKwkgICAgICBzaXplX3QgbiwgbWJzdGF0ZV90KiBfX3Jlc3RyaWN0X18gcHMsDQorCSAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBjcCwgY29uc3QgdW5zaWduZWQgaW50IG1iX21heCkgDQorew0KKyAgdW5pb24gew0KKyAgICBtYnN0YXRlX3QgdmFsOw0KKyAgICBjaGFyIG1iY3NbNF07DQorICB9ICBzaGlmdF9zdGF0ZTsNCisNCisNCisgIC8qIERvIHRoZSBwcmVsaW0gY2hlY2tzICovDQorICBpZiAocyA9PSBOVUxMKQ0KKyAgICByZXR1cm4gMDsNCisNCisgIGlmIChuID09IDApDQorICAgIC8qIFRoZSBzdGFuZGFyZCBkb2Vzbid0IG1lbnRpb24gdGhpcyBjYXNlIGV4cGxpY2l0bHkuIFRlbGwNCisgICAgICAgY2FsbGVyIHRoYXQgdGhlIGNvbnZlcnNpb24gZnJvbSBhIG5vbi1udWxsIHMgaXMgaW5jb21wbGV0ZS4gKi8NCisgICAgcmV0dXJuIC0yOw0KKw0KKyAgLyogU2F2ZSB0aGUgY3VycmVudCBzaGlmdCBzdGF0ZSwgaW4gY2FzZSB3ZSBuZWVkIGl0IGluIERCQ1MgY2FzZS4gICovDQorICBzaGlmdF9zdGF0ZS52YWwgPSAqcHM7DQorICAqcHMgPSAwOw0KKw0KKyAgaWYgKCEqcykNCisgICAgew0KKyAgICAgICpwd2MgPSAwOw0KKyAgICAgIHJldHVybiAwOw0KKyAgICB9DQorIA0KKyAgaWYgKG1iX21heCA+IDEpDQorICAgIHsNCisgICAgICBpZiAoc2hpZnRfc3RhdGUubWJjc1swXSAhPSAwKQ0KKwl7DQorCSAgLyogQ29tcGxldGUgdGhlIG1iIGNoYXIgd2l0aCB0aGUgdHJhaWxpbmcgYnl0ZS4gICovDQorICAgICAgICAgIHNoaWZ0X3N0YXRlLm1iY3NbMV0gPSAqczsgIC8qIHRoZSBzZWNvbmQgYnl0ZSAqLw0KKyAgICAgICAgICBpZiAoTXVsdGlCeXRlVG9XaWRlQ2hhcihjcCwgTUJfRVJSX0lOVkFMSURfQ0hBUlMsDQorCQkJCSAgc2hpZnRfc3RhdGUubWJjcywgMiwgcHdjLCAxKQ0KKwkJID09IDApDQorCSAgICB7DQorCSAgICAgIC8qIEFuIGludmFsaWQgdHJhaWxpbmcgYnl0ZSAqLwkgDQorCSAgICAgIGVycm5vID0gRUlMU0VROw0KKwkgICAgICByZXR1cm4gLTE7DQorCSAgICB9DQorICAgICAgICAgIHJldHVybiAyOw0KKyAgICAgICAgfQ0KKyAgICAgIGVsc2UgaWYgKElzREJDU0xlYWRCeXRlRXggKGNwLCAqcykpDQorICAgICAgICB7DQorICAgICAgICAgIC8qIElmIHRvbGQgdG8gdHJhbnNsYXRlIG9uZSBieXRlLCBqdXN0IHNhdmUgdGhlIGxlYWRieXRlDQorICAgICAgICAgICAgIGluICpwcy4gICovDQorCSAgaWYgKG4gPCAyKQ0KKwkgICAgew0KKwkgICAgICAoKGNoYXIqKSBwcylbMF0gPSAqczsgDQorCSAgICAgIHJldHVybiAtMjsNCisJICAgIH0NCisgICAgICAgICAgLyogRWxzZSB0cmFuc2xhdGUgdGhlIGZpcnN0IHR3byBieXRlcyAgKi8gIA0KKyAgICAgICAgICBlbHNlIGlmIChNdWx0aUJ5dGVUb1dpZGVDaGFyIChjcCwgTUJfRVJSX0lOVkFMSURfQ0hBUlMsDQorCQkJCQlzLCAyLCBwd2MsIDEpDQorCQkgICAgPT0gMCkNCisJICAgIHsNCisJICAgICAgZXJybm8gPSBFSUxTRVE7DQorCSAgICAgIHJldHVybiAtMTsNCisJICAgIH0NCisgICAgICAgICAgcmV0dXJuIDI7DQorICAgICAgICB9DQorICAgIH0NCisNCisgIC8qIEZhbGwgdGhyb3VnaCB0byBzaW5nbGUgYnl0ZSBjaGFyICAqLyANCisgIGlmIChjcCA9PSAwKQ0KKyAgICAgICpwd2MgPSAod2NoYXJfdCkodW5zaWduZWQgY2hhcikqczsNCisgDQorICBlbHNlIGlmIChNdWx0aUJ5dGVUb1dpZGVDaGFyIChjcCwgTUJfRVJSX0lOVkFMSURfQ0hBUlMsIHMsIDEsIHB3YywgMSkNCisJICAgID09IDApDQorICAgIHsNCisgICAgICBlcnJubyA9IEVJTFNFUTsNCisgICAgICByZXR1cm4gIC0xOw0KKyAgICB9DQorICByZXR1cm4gMTsNCit9DQorDQorc2l6ZV90DQorbWJydG93YyAod2NoYXJfdCAqIF9fcmVzdHJpY3RfXyBwd2MsIGNvbnN0IGNoYXIgKiBfX3Jlc3RyaWN0X18gcywNCisJIHNpemVfdCBuLCBtYnN0YXRlX3QqIF9fcmVzdHJpY3RfXyBwcykNCit7DQorICBzdGF0aWMgbWJzdGF0ZV90IGludGVybmFsX21ic3RhdGUgPSAwOw0KKyAgd2NoYXJfdCAgYnl0ZV9idWNrZXQgPSAwOw0KKyAgd2NoYXJfdCogZHN0ID0gcHdjID8gcHdjIDogJmJ5dGVfYnVja2V0Ow0KKw0KKyAgcmV0dXJuIChzaXplX3QpIF9fbWJydG93Y19jcCAoZHN0LCBzLCBuLCBwcyA/IHBzIDogJmludGVybmFsX21ic3RhdGUsDQorCQkJCWdldF9jcF9mcm9tX2xvY2FsZSgpLCBNQl9DVVJfTUFYKTsNCit9DQorDQorDQorc2l6ZV90DQorbWJzcnRvd2NzICh3Y2hhcl90KiBfX3Jlc3RyaWN0X18gZHN0LCAgY29uc3QgY2hhciAqKiBfX3Jlc3RyaWN0X18gc3JjLA0KKwkgICBzaXplX3QgbGVuLCBtYnN0YXRlX3QqIF9fcmVzdHJpY3RfXyBwcykNCit7DQorICBpbnQgcmV0ID0wIDsNCisgIHNpemVfdCBuID0gMDsNCisgIHN0YXRpYyBtYnN0YXRlX3QgaW50ZXJuYWxfbWJzdGF0ZSA9IDA7DQorICBtYnN0YXRlX3QqIGludGVybmFsX3BzID0gcHMgPyBwcyA6ICZpbnRlcm5hbF9tYnN0YXRlOw0KKyAgY29uc3QgdW5zaWduZWQgaW50IGNwID0gZ2V0X2NwX2Zyb21fbG9jYWxlKCk7Ow0KKyAgY29uc3QgdW5zaWduZWQgaW50IG1iX21heCA9IE1CX0NVUl9NQVg7DQorDQorICBpZiAoIHNyYyA9PSBOVUxMIHx8ICpzcmMgPT0gTlVMTCApCS8qIHVuZGVmaW5lZCBiZWhhdmlvciAqLw0KKyAgICByZXR1cm4gMDsNCisNCisgIGlmIChkc3QgIT0gTlVMTCkNCisgICAgew0KKyAgICAgIHdoaWxlIChuIDwgbGVuDQorCSAgICAgJiYgKHJldCA9IF9fbWJydG93Y19jcChkc3QsICpzcmMsIGxlbiAtIG4sDQorCQkJCSAgICBpbnRlcm5hbF9wcywgY3AsIG1iX21heCkpDQorCQkgID4gMCkNCisJew0KKwkgICsrZHN0Ow0KKyAgIAkgICpzcmMgKz0gcmV0Ow0KKyAgICAgICAgICBuICs9IHJldDsNCisgICAgICAgIH0NCisNCisgICAgICBpZiAobiA8IGxlbiAmJiByZXQgPT0gMCkNCisgICAgICAgICpzcmMgPSAoY2hhciAqKU5VTEw7DQorICAgIH0NCisgIA0KKyAgZWxzZQ0KKyAgICB7DQorICAgICAgd2NoYXJfdCBieXRlX2J1Y2tldCA9IDA7DQorICAgICAgd2hpbGUgKG4gPCBsZW4NCisJICAgICAmJiAocmV0ID0gX19tYnJ0b3djX2NwICgmYnl0ZV9idWNrZXQsICpzcmMsIG1iX21heCwNCisJCQkJICAgICBpbnRlcm5hbF9wcywgY3AsIG1iX21heCkpDQorCQkgID4gMCkNCisJew0KKyAgICAgICAgICAqc3JjICs9IHJldDsNCisgICAgICAgICAgbiArPSByZXQ7DQorICAgICAgICB9DQorICAgIH0NCisgIHJldHVybiBuOw0KK30NCisNCitzaXplX3QNCittYnJsZW4gKGNvbnN0IGNoYXIgKiBfX3Jlc3RyaWN0X18gcywgc2l6ZV90IG4sDQorCW1ic3RhdGVfdCAqIF9fcmVzdHJpY3RfXyBwcykNCit7DQorICBzdGF0aWMgbWJzdGF0ZV90IHNfbWJzdGF0ZSA9IDA7DQorICB3Y2hhcl90IGJ5dGVfYnVja2V0ID0gMDsNCisgIHJldHVybiBfX21icnRvd2NfY3AgKCZieXRlX2J1Y2tldCwgcywgbiwgKHBzKSA/IHBzIDogJnNfbWJzdGF0ZSwNCisJCSAgICAgICBnZXRfY3BfZnJvbV9sb2NhbGUoKSwgTUJfQ1VSX01BWCk7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWlzYy9tYnNpbml0LmMgYi9taW5ndy13NjQtY3J0L21pc2MvbWJzaW5pdC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM4ZTY0OWEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21pc2MvbWJzaW5pdC5jCkBAIC0wLDAgKzEsMjAgQEAKKy8qCVRoaXMgc291cmNlIGNvZGUgd2FzIGV4dHJhY3RlZCBmcm9tIHRoZSBROCBwYWNrYWdlIGNyZWF0ZWQgYW5kIHBsYWNlZA0KKyAgICBpbiB0aGUgUFVCTElDIERPTUFJTiBieSBEb3VnIEd3eW4gPGd3eW5AYXJsLm1pbD4NCisgICAgbGFzdCBlZGl0OgkxOTk5LzExLzA1CWd3eW5AYXJsLm1pbA0KKw0KKyAgICBJbXBsZW1lbnRzIHN1YmNsYXVzZSA3LjI0IG9mIElTTy9JRUMgOTg5OToxOTk5IChFKS4NCisNCisJSXQgc3VwcG9ydHMgYW4gZW5jb2Rpbmcgd2hlcmUgYWxsIGNoYXIgY29kZXMgYXJlIG1hcHBlZA0KKwl0byB0aGUgKnNhbWUqIGNvZGUgdmFsdWVzIHdpdGhpbiBhIHdjaGFyX3Qgb3Igd2ludF90LA0KKwlzbyBsb25nIGFzIG5vIG90aGVyIHdjaGFyX3QgY29kZXMgYXJlIHVzZWQgYnkgdGhlIHByb2dyYW0uDQorDQorKi8NCisNCisjaW5jbHVkZQk8d2NoYXIuaD4NCisjaWYgMA0KK2ludCBtYnNpbml0KGNvbnN0IG1ic3RhdGVfdCAqcHMpDQorCXsNCisJcmV0dXJuIDE7CQkJLyogZG9uJ3QgaGF2ZSBzaGlmdCBzdGF0ZXMgKi8NCisJfQ0KKw0KKyNlbmRpZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWlzYy9taW5ndy1hbGlnbmVkLW1hbGxvYy5jIGIvbWluZ3ctdzY0LWNydC9taXNjL21pbmd3LWFsaWduZWQtbWFsbG9jLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWExY2M5NAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWlzYy9taW5ndy1hbGlnbmVkLW1hbGxvYy5jCkBAIC0wLDAgKzEsMTIwIEBACisvKg0KKyAgX19taW5nd19hbGlnbmVkX21hbGxvYyBhbmQgZnJpZW5kcywgaW1wbGVtZW50ZWQgdXNpbmcgTWljcm9zb2Z0J3MgcHVibGljDQorICBpbnRlcmZhY2VzIGFuZCB3aXRoIHRoZSBoZWxwIG9mIHRoZSBhbGdvcml0aG0gZGVzY3JpcHRpb24gcHJvdmlkZWQNCisgIGJ5IFd1IFlvbmd3ZWk6IGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvbWFpbGFyY2hpdmUvbWVzc2FnZS5waHA/bXNnX2lkPTM4NDcwNzUNCisNCisgIEkgaGVyZWJ5IHBsYWNlIHRoaXMgaW1wbGVtZW50YXRpb24gaW4gdGhlIHB1YmxpYyBkb21haW4uDQorICAgICAgICAgICAgICAgLS0gU3RldmVuIEcuIEpvaG5zb24gKHN0ZXZlbmpAYWx1bS5taXQuZWR1KQ0KKyovDQorDQorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KKyNpbmNsdWRlIDxlcnJuby5oPg0KKyNpbmNsdWRlIDxzdGRkZWYuaD4JCS8qIHB0cmRpZmZfdCAqLw0KKyNpbmNsdWRlIDxzdHJpbmcuaD4JCS8qIG1lbW1vdmUgKi8NCisNCisjaWZkZWYgSEFWRV9TVERJTlRfSA0KKyMgIGluY2x1ZGUgPHN0ZGludC5oPgkJLyogdWludHB0cl90ICovDQorI2Vsc2UNCisjICBkZWZpbmUgdWludHB0cl90IHNpemVfdA0KKyNlbmRpZg0KKw0KKyNkZWZpbmUgTk9UX1BPV0VSX09GX1RXTyhuKSAoKChuKSAmICgobikgLSAxKSkpDQorI2RlZmluZSBVSShwKSAoKHVpbnRwdHJfdCkgKHApKQ0KKyNkZWZpbmUgQ1AocCkgKChjaGFyICopIHApDQorDQorI2RlZmluZSBQVFJfQUxJR04ocDAsIGFsaWdubWVudCwgb2Zmc2V0KQkJCQlcDQorICAgICAgICAgICAgKCh2b2lkICopICgoKFVJKHAwKSArIChhbGlnbm1lbnQgKyBzaXplb2Yodm9pZCopKSArIG9mZnNldCkJXA0KKwkJCSYgKH5VSShhbGlnbm1lbnQgLSAxKSkpCQkJCVwNCisJCSAgICAgICAtIG9mZnNldCkpDQorDQorLyogUG9pbnRlciBtdXN0IHNvbWV0aW1lcyBiZSBhbGlnbmVkOyBhc3N1bWUgc2l6ZW9mKHZvaWQqKSBpcyBhIHBvd2VyIG9mIHR3by4gKi8NCisjZGVmaW5lIE9SSUdfUFRSKHApICgqKCgodm9pZCAqKikgKFVJKHApICYgKH5VSShzaXplb2Yodm9pZCopIC0gMSkpKSkgLSAxKSkNCisNCit2b2lkICoNCitfX21pbmd3X2FsaWduZWRfb2Zmc2V0X21hbGxvYyAoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBvZmZzZXQpDQorew0KKyAgdm9pZCAqcDAsICpwOw0KKw0KKyAgaWYgKE5PVF9QT1dFUl9PRl9UV08gKGFsaWdubWVudCkpDQorICAgIHsNCisgICAgICBlcnJubyA9IEVJTlZBTDsNCisgICAgICByZXR1cm4gKCh2b2lkICopIDApOw0KKyAgICB9DQorICBpZiAoc2l6ZSA9PSAwKQ0KKyAgICByZXR1cm4gKCh2b2lkICopIDApOw0KKyAgaWYgKGFsaWdubWVudCA8IHNpemVvZiAodm9pZCAqKSkNCisgICAgYWxpZ25tZW50ID0gc2l6ZW9mICh2b2lkICopOw0KKw0KKyAgLyogSW5jbHVkaW5nIHRoZSBleHRyYSBzaXplb2Yodm9pZCopIGlzIG92ZXJraWxsIG9uIGEgMzItYml0DQorICAgICBtYWNoaW5lLCBzaW5jZSBtYWxsb2MgaXMgYWxyZWFkeSA4LWJ5dGUgYWxpZ25lZCwgYXMgbG9uZw0KKyAgICAgYXMgd2UgZW5mb3JjZSBhbGlnbm1lbnQgPj0gOCAuLi5idXQgb2ggd2VsbC4gICovDQorDQorICBwMCA9IG1hbGxvYyAoc2l6ZSArIChhbGlnbm1lbnQgKyBzaXplb2YgKHZvaWQgKikpKTsNCisgIGlmICghcDApDQorICAgIHJldHVybiAoKHZvaWQgKikgMCk7DQorICBwID0gUFRSX0FMSUdOIChwMCwgYWxpZ25tZW50LCBvZmZzZXQpOw0KKyAgT1JJR19QVFIgKHApID0gcDA7DQorICByZXR1cm4gcDsNCit9DQorDQordm9pZCAqDQorX19taW5nd19hbGlnbmVkX21hbGxvYyAoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpDQorew0KKyAgcmV0dXJuIF9fbWluZ3dfYWxpZ25lZF9vZmZzZXRfbWFsbG9jIChzaXplLCBhbGlnbm1lbnQsIDApOw0KK30NCisNCit2b2lkDQorX19taW5nd19hbGlnbmVkX2ZyZWUgKHZvaWQgKm1lbWJsb2NrKQ0KK3sNCisgIGlmIChtZW1ibG9jaykNCisgICAgZnJlZSAoT1JJR19QVFIgKG1lbWJsb2NrKSk7DQorfQ0KKw0KK3ZvaWQgKg0KK19fbWluZ3dfYWxpZ25lZF9vZmZzZXRfcmVhbGxvYyAodm9pZCAqbWVtYmxvY2ssIHNpemVfdCBzaXplLA0KKwkJCQlzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgb2Zmc2V0KQ0KK3sNCisgIHZvaWQgKnAwLCAqcDsNCisgIHB0cmRpZmZfdCBzaGlmdDsNCisNCisgIGlmICghbWVtYmxvY2spDQorICAgIHJldHVybiBfX21pbmd3X2FsaWduZWRfb2Zmc2V0X21hbGxvYyAoc2l6ZSwgYWxpZ25tZW50LCBvZmZzZXQpOw0KKyAgaWYgKE5PVF9QT1dFUl9PRl9UV08gKGFsaWdubWVudCkpDQorICAgIGdvdG8gYmFkOw0KKyAgaWYgKHNpemUgPT0gMCkNCisgICAgew0KKyAgICAgIF9fbWluZ3dfYWxpZ25lZF9mcmVlIChtZW1ibG9jayk7DQorICAgICAgcmV0dXJuICgodm9pZCAqKSAwKTsNCisgICAgfQ0KKyAgaWYgKGFsaWdubWVudCA8IHNpemVvZiAodm9pZCAqKSkNCisgICAgYWxpZ25tZW50ID0gc2l6ZW9mICh2b2lkICopOw0KKw0KKyAgcDAgPSBPUklHX1BUUiAobWVtYmxvY2spOw0KKyAgLyogSXQgaXMgYW4gZXJyb3IgZm9yIHRoZSBhbGlnbm1lbnQgdG8gY2hhbmdlLiAqLw0KKyAgaWYgKG1lbWJsb2NrICE9IFBUUl9BTElHTiAocDAsIGFsaWdubWVudCwgb2Zmc2V0KSkNCisgICAgZ290byBiYWQ7DQorICBzaGlmdCA9IENQIChtZW1ibG9jaykgLSBDUCAocDApOw0KKw0KKyAgcDAgPSByZWFsbG9jIChwMCwgc2l6ZSArIChhbGlnbm1lbnQgKyBzaXplb2YgKHZvaWQgKikpKTsNCisgIGlmICghcDApDQorICAgIHJldHVybiAoKHZvaWQgKikgMCk7DQorICBwID0gUFRSX0FMSUdOIChwMCwgYWxpZ25tZW50LCBvZmZzZXQpOw0KKw0KKyAgLyogUmVsYXRpdmUgc2hpZnQgb2YgYWN0dWFsIGRhdGEgbWF5IGJlIGRpZmZlcmVudCBmcm9tIGJlZm9yZSwgdWdoLiAgKi8NCisgIGlmIChzaGlmdCAhPSBDUCAocCkgLSBDUCAocDApKQ0KKyAgICAvKiB1Z2gsIG1vdmVzIG1vcmUgdGhhbiBuZWNlc3NhcnkgaWYgc2l6ZSBpcyBpbmNyZWFzZWQuICAqLw0KKyAgICBtZW1tb3ZlIChDUCAocCksIENQIChwMCkgKyBzaGlmdCwgc2l6ZSk7DQorDQorICBPUklHX1BUUiAocCkgPSBwMDsNCisgIHJldHVybiBwOw0KKw0KK2JhZDoNCisgIGVycm5vID0gRUlOVkFMOw0KKyAgcmV0dXJuICgodm9pZCAqKSAwKTsNCit9DQorDQordm9pZCAqDQorX19taW5nd19hbGlnbmVkX3JlYWxsb2MgKHZvaWQgKm1lbWJsb2NrLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkNCit7DQorICByZXR1cm4gX19taW5nd19hbGlnbmVkX29mZnNldF9yZWFsbG9jIChtZW1ibG9jaywgc2l6ZSwgYWxpZ25tZW50LCAwKTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9taXNjL21pbmd3LWZzZWVrLmMgYi9taW5ndy13NjQtY3J0L21pc2MvbWluZ3ctZnNlZWsuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYjJhYmM2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taXNjL21pbmd3LWZzZWVrLmMKQEAgLTAsMCArMSw5MSBAQAorI2luY2x1ZGUgPHdpbmRvd3MuaD4NCisjaW5jbHVkZSA8c3RkaW8uaD4NCisjaW5jbHVkZSA8aW8uaD4NCisjaW5jbHVkZSA8c3RkbGliLmg+DQorDQorI2RlZmluZSBaRVJPQkxPQ0tTSVpFIDUxMg0KK3N0YXRpYyBpbnQgX19taW5nd19mc2Vla19jYWxsZWQ7DQorDQoraW50DQorX19taW5nd19mc2VlayAoRklMRSAqZnAsIGludCBvZmZzZXQsIGludCB3aGVuY2UpDQorew0KKyMgdW5kZWYgZnNlZWsgDQorICBfX21pbmd3X2ZzZWVrX2NhbGxlZCA9IDE7DQorICByZXR1cm4gZnNlZWsgKGZwLCBvZmZzZXQsIHdoZW5jZSk7DQorfQ0KKw0KK2ludA0KK19fbWluZ3dfZnNlZWtvNjQgKEZJTEUgKmZwLCBsb25nIG9mZnNldCwgaW50IHdoZW5jZSkNCit7DQorIyB1bmRlZiBmc2Vla282NA0KKyAgX19taW5nd19mc2Vla19jYWxsZWQgPSAxOw0KKyAgcmV0dXJuIGZzZWVrbzY0IChmcCwgb2Zmc2V0LCB3aGVuY2UpOw0KK30NCisNCitzaXplX3QNCitfX21pbmd3X2Z3cml0ZSAoY29uc3Qgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGNvdW50LCBGSUxFICpmcCkNCit7DQorIyB1bmRlZiBmd3JpdGUgDQorICBpZiAoKF9vc3ZlciAmIDB4ODAwMCkgJiYgIF9fbWluZ3dfZnNlZWtfY2FsbGVkKQ0KKyAgICB7DQorICAgICAgVUxBUkdFX0lOVEVHRVIgYWN0dWFsX2xlbmd0aDsNCisgICAgICBMQVJHRV9JTlRFR0VSIGN1cnJlbnRfcG9zaXRpb24gPSB7ezBMTH19Ow0KKyAgICAgIF9fbWluZ3dfZnNlZWtfY2FsbGVkID0gMDsNCisgICAgICBmZmx1c2ggKGZwKTsNCisgICAgICBhY3R1YWxfbGVuZ3RoLkxvd1BhcnQgPSBHZXRGaWxlU2l6ZSAoKEhBTkRMRSkgX2dldF9vc2ZoYW5kbGUgKGZpbGVubyAoZnApKSwgDQorCQkJCQkgICAmYWN0dWFsX2xlbmd0aC5IaWdoUGFydCk7DQorICAgICAgaWYgKGFjdHVhbF9sZW5ndGguTG93UGFydCA9PSAweEZGRkZGRkZGIA0KKyAgICAgICAgICAmJiBHZXRMYXN0RXJyb3IoKSAhPSBOT19FUlJPUiApDQorICAgICAgICByZXR1cm4gLTE7DQorICAgICAgY3VycmVudF9wb3NpdGlvbi5Mb3dQYXJ0ID0gU2V0RmlsZVBvaW50ZXIgKChIQU5ETEUpIF9nZXRfb3NmaGFuZGxlIChmaWxlbm8gKGZwKSksDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJIGN1cnJlbnRfcG9zaXRpb24uTG93UGFydCwNCisJCQkJCSAJICZjdXJyZW50X3Bvc2l0aW9uLkhpZ2hQYXJ0LA0KKwkJCQkJCSBGSUxFX0NVUlJFTlQpOw0KKyAgICAgIGlmIChjdXJyZW50X3Bvc2l0aW9uLkxvd1BhcnQgPT0gMHhGRkZGRkZGRiANCisgICAgICAgICAgJiYgR2V0TGFzdEVycm9yKCkgIT0gTk9fRVJST1IgKQ0KKyAgICAgICAgcmV0dXJuIC0xOw0KKw0KKyNpZmRlZiBERUJVRw0KKyAgICAgIHByaW50ZiAoIl9fbWluZ3dfZndyaXRlOiBjdXJyZW50ICVJNjR1LCBhY3R1YWwgJUk2NHVcbiIsIA0KKwkgICAgICBjdXJyZW50X3Bvc2l0aW9uLlF1YWRQYXJ0LCBhY3R1YWxfbGVuZ3RoLlF1YWRQYXJ0KTsNCisjZW5kaWYgLyogREVCVUcgKi8NCisgICAgICBpZiAoY3VycmVudF9wb3NpdGlvbi5RdWFkUGFydCA+IGFjdHVhbF9sZW5ndGguUXVhZFBhcnQpDQorCXsNCisJICBzdGF0aWMgY2hhciBfX21pbmd3X3plcm9zW1pFUk9CTE9DS1NJWkVdOw0KKwkgIGxvbmcgbG9uZyBudW1sZWZ0Ow0KKw0KKwkgIFNldEZpbGVQb2ludGVyICgoSEFORExFKSBfZ2V0X29zZmhhbmRsZSAoZmlsZW5vIChmcCkpLCANCisJICAgICAgICAgICAgICAgICAgMCwgMCwgRklMRV9FTkQpOw0KKwkgIG51bWxlZnQgPSBjdXJyZW50X3Bvc2l0aW9uLlF1YWRQYXJ0IC0gYWN0dWFsX2xlbmd0aC5RdWFkUGFydDsNCisNCisjaWZkZWYgREVCVUcNCisJICBwcmludGYgKCJfX21pbmd3X2Z3cml0ZTogU2Vla2luZyAlSTY0ZCBieXRlcyBwYXN0IGVuZFxuIiwgbnVtbGVmdCk7DQorI2VuZGlmIC8qIERFQlVHICovDQorCSAgd2hpbGUgKG51bWxlZnQgPiAwTEwpDQorCSAgICB7DQorCSAgICAgIERXT1JEIG56ZXJvcyA9IChudW1sZWZ0ID4gWkVST0JMT0NLU0laRSkNCisJICAgICAgICAgICAgICAgICAgICAgPyBaRVJPQkxPQ0tTSVpFIDogbnVtbGVmdDsNCisJICAgICAgRFdPUkQgd3JpdHRlbjsNCisJICAgICAgaWYgKCEgV3JpdGVGaWxlICgoSEFORExFKSBfZ2V0X29zZmhhbmRsZSAoZmlsZW5vIChmcCkpLA0KKwkgICAgICAgICAgICAgICAgICAgICAgIF9fbWluZ3dfemVyb3MsIG56ZXJvcywgJndyaXR0ZW4sIE5VTEwpKQ0KKwkgICAgICAgIHsNCisJCSAgLyogQmVzdCB3ZSBjYW4gaG9wZSBmb3IsIG9yIGF0IGxlYXN0IERKIHNheXMgc28uICovDQorCSAgICAgICAgICBTZXRGaWxlUG9pbnRlciAoKEhBTkRMRSkgX2dldF9vc2ZoYW5kbGUgKGZpbGVubyAoZnApKSwgDQorCSAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgRklMRV9CRUdJTik7DQorCQkgIHJldHVybiAtMTsNCisJCX0NCisJICAgICAgaWYgKHdyaXR0ZW4gPCBuemVyb3MpDQorCSAgICAgICAgew0KKwkJICAvKiBMaWtld2lzZS4gKi8NCisJICAgICAgICAgIFNldEZpbGVQb2ludGVyICgoSEFORExFKSBfZ2V0X29zZmhhbmRsZSAoZmlsZW5vIChmcCkpLCANCisJICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCBGSUxFX0JFR0lOKTsNCisJCSAgcmV0dXJuIC0xOw0KKwkJfQ0KKw0KKwkgICAgICBudW1sZWZ0IC09IHdyaXR0ZW47DQorCSAgICB9DQorCSAgICBGbHVzaEZpbGVCdWZmZXJzICgoSEFORExFKSBfZ2V0X29zZmhhbmRsZSAoZmlsZW5vIChmcCkpKTsNCisJfQ0KKyAgICB9DQorICByZXR1cm4gZndyaXRlIChidWZmZXIsIHNpemUsIGNvdW50LCBmcCk7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWlzYy9zZXRlcnJuby5jIGIvbWluZ3ctdzY0LWNydC9taXNjL3NldGVycm5vLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGJkMWU1MgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWlzYy9zZXRlcnJuby5jCkBAIC0wLDAgKzEsMTIgQEAKKyNpbmNsdWRlIDxlcnJuby5oPgorCitlcnJub190IF9fY2RlY2wgX3NldF9lcnJubyAoaW50IF9WYWx1ZSkKK3sKKyAgZXJybm8gPSBfVmFsdWU7Cit9CisKK2Vycm5vX3QgX19jZGVjbCBfZ2V0X2Vycm5vIChpbnQgKl9WYWx1ZSkKK3sKKyAgaWYoX1ZhbHVlKSAqX1ZhbHVlPWVycm5vOworICByZXR1cm4gZXJybm87Cit9CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21pc2Mvc2xlZXAuYyBiL21pbmd3LXc2NC1jcnQvbWlzYy9zbGVlcC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdmZWM2NjYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21pc2Mvc2xlZXAuYwpAQCAtMCwwICsxLDExIEBACisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8d2luZG93cy5oPgorCit1bnNpZ25lZCBpbnQgc2xlZXAgKHVuc2lnbmVkIGludCBzZWNvbmRzKQoreworICBTbGVlcCAoc2Vjb25kcyAqIDEwMDApOworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWlzYy9zdHJ0b2ltYXguYyBiL21pbmd3LXc2NC1jcnQvbWlzYy9zdHJ0b2ltYXguYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43Y2M3OTlhCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taXNjL3N0cnRvaW1heC5jCkBAIC0wLDAgKzEsMTEyIEBACisvKg0KKyAgICBUaGlzIHNvdXJjZSBjb2RlIHdhcyBleHRyYWN0ZWQgZnJvbSB0aGUgUTggcGFja2FnZSBjcmVhdGVkIGFuZA0KKyAgICBwbGFjZWQgaW4gdGhlIFBVQkxJQyBET01BSU4gYnkgRG91ZyBHd3luIDxnd3luQGFybC5taWw+DQorICAgIGxhc3QgZWRpdDoJMTk5OS8xMS8wNQlnd3luQGFybC5taWwNCisNCisJSW1wbGVtZW50cyBzdWJjbGF1c2UgNy44LjIgb2YgSVNPL0lFQyA5ODk5OjE5OTkgKEUpLg0KKw0KKwlUaGlzIHBhcnRpY3VsYXIgaW1wbGVtZW50YXRpb24gcmVxdWlyZXMgdGhlIG1hdGNoaW5nIDxpbnR0eXBlcy5oPi4NCisJSXQgYWxzbyBhc3N1bWVzIHRoYXQgY2hhcmFjdGVyIGNvZGVzIGZvciBBLi5aIGFuZCBhLi56IGFyZSBpbg0KKwljb250aWd1b3VzIGFzY2VuZGluZyBvcmRlcjsgdGhpcyBpcyB0cnVlIGZvciBBU0NJSSBidXQgbm90IEVCQ0RJQy4NCisqLw0KKyNpbmNsdWRlIDxzdGRsaWIuaD4NCisjaW5jbHVkZSA8ZXJybm8uaD4NCisjaW5jbHVkZSA8Y3R5cGUuaD4NCisjaW5jbHVkZSA8aW50dHlwZXMuaD4NCisNCisvKiBIZWxwZXIgbWFjcm9zICovDQorDQorLyogY29udmVydCBkaWdpdCBjaGFyYWN0ZXIgdG8gbnVtYmVyLCBpbiBhbnkgYmFzZSAqLw0KKyNkZWZpbmUgVG9OdW1iZXIoYykJKGlzZGlnaXQoYykgPyAoYykgLSAnMCcgOiBcDQorCQkJIGlzdXBwZXIoYykgPyAoYykgLSAnQScgKyAxMCA6IFwNCisJCQkgaXNsb3dlcihjKSA/IChjKSAtICdhJyArIDEwIDogXA0KKwkJCSAtMQkJLyogImludmFsaWQiIGZsYWcgKi8gXA0KKwkJCSkNCisvKiB2YWxpZGF0ZSBjb252ZXJ0ZWQgZGlnaXQgY2hhcmFjdGVyIGZvciBzcGVjaWZpYyBiYXNlICovDQorI2RlZmluZSB2YWxpZChuLCBiKQkoKG4pID49IDAgJiYgKG4pIDwgKGIpKQ0KKw0KK2ludG1heF90DQorc3RydG9pbWF4KG5wdHIsIGVuZHB0ciwgYmFzZSkNCisJcmVnaXN0ZXIgY29uc3QgY2hhciAqIF9fcmVzdHJpY3RfXwlucHRyOw0KKwljaGFyICoqIF9fcmVzdHJpY3RfXwkJCWVuZHB0cjsNCisJcmVnaXN0ZXIgaW50CQkJCWJhc2U7DQorCXsNCisJcmVnaXN0ZXIgdWludG1heF90CWFjY3VtOwkvKiBhY2N1bXVsYXRlcyBjb252ZXJ0ZWQgdmFsdWUgKi8NCisJcmVnaXN0ZXIgaW50CQluOwkvKiBudW1lcmFsIGZyb20gZGlnaXQgY2hhcmFjdGVyICovDQorCWludAkJCW1pbnVzOwkvKiBzZXQgaWZmIG1pbnVzIHNpZ24gc2VlbiAqLw0KKwlpbnQJCQl0b29iaWc7CS8qIHNldCBpZmYgdmFsdWUgb3ZlcmZsb3dzICovDQorDQorCWlmICggZW5kcHRyICE9IE5VTEwgKQ0KKwkJKmVuZHB0ciA9IChjaGFyICopbnB0cjsJLyogaW4gY2FzZSBubyBjb252ZXJzaW9uJ3MgcGVyZm9ybWVkICovDQorDQorCWlmICggYmFzZSA8IDAgfHwgYmFzZSA9PSAxIHx8IGJhc2UgPiAzNiApDQorCQl7DQorCQllcnJubyA9IEVET007DQorCQlyZXR1cm4gMDsJCS8qIHVuc3BlY2lmaWVkIGJlaGF2aW9yICovDQorCQl9DQorDQorCS8qIHNraXAgaW5pdGlhbCwgcG9zc2libHkgZW1wdHkgc2VxdWVuY2Ugb2Ygd2hpdGUtc3BhY2UgY2hhcmFjdGVycyAqLw0KKw0KKwl3aGlsZSAoIGlzc3BhY2UoKm5wdHIpICkNCisJCSsrbnB0cjsNCisNCisJLyogcHJvY2VzcyBzdWJqZWN0IHNlcXVlbmNlOiAqLw0KKw0KKwkvKiBvcHRpb25hbCBzaWduICovDQorCWlmICggKG1pbnVzID0gKm5wdHIgPT0gJy0nKSB8fCAqbnB0ciA9PSAnKycgKQ0KKwkJKytucHRyOw0KKw0KKwlpZiAoIGJhc2UgPT0gMCApIHsNCisJCWlmICggKm5wdHIgPT0gJzAnICkgew0KKwkJCWlmICggbnB0clsxXSA9PSAnWCcgfHwgbnB0clsxXSA9PSAneCcgKQ0KKwkJCQliYXNlID0gMTY7DQorCQkJZWxzZQ0KKwkJCQliYXNlID0gODsNCisJCX0NCisJCWVsc2UNCisJCQkJYmFzZSA9IDEwOw0KKwl9DQorCS8qIG9wdGlvbmFsICIweCIgb3IgIjBYIiBmb3IgYmFzZSAxNiAqLw0KKw0KKwlpZiAoIGJhc2UgPT0gMTYgJiYgKm5wdHIgPT0gJzAnICYmIChucHRyWzFdID09ICdYJyB8fCBucHRyWzFdID09ICd4JykgKQ0KKwkJbnB0ciArPSAyOwkJLyogc2tpcCBwYXN0IHRoaXMgcHJlZml4ICovDQorDQorCS8qIGNoZWNrIHdoZXRoZXIgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHZhbGlkIGRpZ2l0ICovDQorDQorCW4gPSBUb051bWJlcigqbnB0cik7DQorCSsrbnB0cjsNCisNCisJaWYgKCAhdmFsaWQobiwgYmFzZSkgKQ0KKwkJcmV0dXJuIDA7CQkvKiBzdWJqZWN0IHNlcS4gbm90IG9mIGV4cGVjdGVkIGZvcm0gKi8NCisNCisJYWNjdW0gPSBuOw0KKw0KKwlmb3IgKCB0b29iaWcgPSAwOyBuID0gVG9OdW1iZXIoKm5wdHIpLCB2YWxpZChuLCBiYXNlKTsgKytucHRyICkNCisJCWlmICggYWNjdW0gPiAodWludG1heF90KShJTlRNQVhfTUFYIC8gYmFzZSArIDIpICkgLyogbWFqb3Igd3JhcC1hcm91bmQgKi8NCisJCQl0b29iaWcgPSAxOwkvKiBidXQga2VlcCBzY2FubmluZyAqLw0KKwkJZWxzZQ0KKwkJCWFjY3VtID0gYmFzZSAqIGFjY3VtICsgbjsNCisNCisJaWYgKCBlbmRwdHIgIT0gTlVMTCApDQorCQkqZW5kcHRyID0gKGNoYXIgKilucHRyOwkvKiBwb2ludHMgdG8gZmlyc3Qgbm90LXZhbGlkLWRpZ2l0ICovDQorDQorCWlmICggbWludXMgKQ0KKwkJew0KKwkJaWYgKCBhY2N1bSA+ICh1aW50bWF4X3QpSU5UTUFYX01BWCArIDEgKQ0KKwkJCXRvb2JpZyA9IDE7DQorCQl9DQorCWVsc2UNCisJaWYgKCBhY2N1bSA+ICh1aW50bWF4X3QpSU5UTUFYX01BWCApDQorCQl0b29iaWcgPSAxOw0KKw0KKwlpZiAoIHRvb2JpZyApDQorCQl7DQorCQllcnJubyA9IEVSQU5HRTsNCisJCXJldHVybiBtaW51cyA/IElOVE1BWF9NSU4gOiBJTlRNQVhfTUFYOw0KKwkJfQ0KKwllbHNlDQorCQlyZXR1cm4gKGludG1heF90KShtaW51cyA/IC1hY2N1bSA6IGFjY3VtKTsNCisJfQ0KKw0KK2xvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fICgoYWxpYXMgKCJzdHJ0b2ltYXgiKSkpDQorc3RydG9sbCAoY29uc3QgY2hhciogX19yZXN0cmljdF9fIG5wdHIsIGNoYXIgKiogX19yZXN0cmljdF9fIGVuZHB0ciwgaW50IGJhc2UpOw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWlzYy9zdHJ0b2xkLmMgYi9taW5ndy13NjQtY3J0L21pc2Mvc3RydG9sZC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY3YzIyMDcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21pc2Mvc3RydG9sZC5jCkBAIC0wLDAgKzEsMzkyIEBACisjaW5jbHVkZSAibWF0aC9jZXBoZXNfZW1hdGguaCINCisjaWYgTkUgPT0gMTANCisNCisvKiAxLjBFMCAqLw0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBfX2VvbmVbTkVdID0NCisgezB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwNCisgIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHg4MDAwLCAweDNmZmYsfTsNCisjZWxzZQ0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBfX2VvbmVbTkVdID0gew0KKzAsIDAwMDAwMDAsMDAwMDAwMCwwMDAwMDAwLDAxMDAwMDAsMHgzZmZmLH07DQorI2VuZGlmDQorDQorI2lmIE5FID09IDEwDQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IF9fZXRlbnNbTlRFTiArIDFdW05FXSA9DQorew0KKyAgezB4NjU3NiwgMHg0YTkyLCAweDgwNGEsIDB4MTUzZiwNCisgICAweGM5NGMsIDB4OTc5YSwgMHg4YTIwLCAweDUyMDIsIDB4YzQ2MCwgMHg3NTI1LH0sCS8qIDEwKio0MDk2ICovDQorICB7MHg2YTMyLCAweGNlNTIsIDB4MzI5YSwgMHgyOGNlLA0KKyAgIDB4YTc0ZCwgMHg1ZGU0LCAweGM1M2QsIDB4M2I1ZCwgMHg5ZThiLCAweDVhOTIsfSwJLyogMTAqKjIwNDggKi8NCisgIHsweDUyNmMsIDB4NTBjZSwgMHhmMThiLCAweDNkMjgsDQorICAgMHg2NTBkLCAweDBjMTcsIDB4ODE3NSwgMHg3NTg2LCAweGM5NzYsIDB4NGQ0OCx9LA0KKyAgezB4OWM2NiwgMHg1OGY4LCAweGJjNTAsIDB4NWM1NCwNCisgICAweGNjNjUsIDB4OTFjNiwgMHhhNjBlLCAweGEwYWUsIDB4ZTMxOSwgMHg0NmEzLH0sDQorICB7MHg4NTFlLCAweGVhYjcsIDB4OThmZSwgMHg5MDFiLA0KKyAgIDB4ZGRiYiwgMHhkZThkLCAweDlkZjksIDB4ZWJmYiwgMHhhYTdlLCAweDQzNTEsfSwNCisgIHsweDAyMzUsIDB4MDEzNywgMHgzNmIxLCAweDMzNmMsDQorICAgMHhjNjZmLCAweDhjZGYsIDB4ODBlOSwgMHg0N2M5LCAweDkzYmEsIDB4NDFhOCx9LA0KKyAgezB4NTBmOCwgMHgyNWZiLCAweGM3NmIsIDB4NmI3MSwNCisgICAweDNjYmYsIDB4YTZkNSwgMHhmZmNmLCAweDFmNDksIDB4YzI3OCwgMHg0MGQzLH0sDQorICB7MHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLA0KKyAgIDB4ZjAyMCwgMHhiNTlkLCAweDJiNzAsIDB4YWRhOCwgMHg5ZGM1LCAweDQwNjksfSwNCisgIHsweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsDQorICAgMHgwMDAwLCAweDAwMDAsIDB4MDQwMCwgMHhjOWJmLCAweDhlMWIsIDB4NDAzNCx9LA0KKyAgezB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwNCisgICAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDIwMDAsIDB4YmViYywgMHg0MDE5LH0sDQorICB7MHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLA0KKyAgIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHg5YzQwLCAweDQwMGMsfSwNCisgIHsweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsDQorICAgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweGM4MDAsIDB4NDAwNSx9LA0KKyAgezB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwNCisgICAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4YTAwMCwgMHg0MDAyLH0sCS8qIDEwKioxICovDQorfTsNCisjZWxzZQ0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBfX2V0ZW5zW05URU4rMV1bTkVdID0gew0KK3sweGM5NGMsMHg5NzlhLDB4OGEyMCwweDUyMDIsMHhjNDYwLDB4NzUyNSx9LC8qIDEwKio0MDk2ICovDQorezB4YTc0ZCwweDVkZTQsMHhjNTNkLDB4M2I1ZCwweDllOGIsMHg1YTkyLH0sLyogMTAqKjIwNDggKi8NCit7MHg2NTBkLDB4MGMxNywweDgxNzUsMHg3NTg2LDB4Yzk3NiwweDRkNDgsfSwNCit7MHhjYzY1LDB4OTFjNiwweGE2MGUsMHhhMGFlLDB4ZTMxOSwweDQ2YTMsfSwNCit7MHhkZGJjLDB4ZGU4ZCwweDlkZjksMHhlYmZiLDB4YWE3ZSwweDQzNTEsfSwNCit7MHhjNjZmLDB4OGNkZiwweDgwZTksMHg0N2M5LDB4OTNiYSwweDQxYTgsfSwNCit7MHgzY2JmLDB4YTZkNSwweGZmY2YsMHgxZjQ5LDB4YzI3OCwweDQwZDMsfSwNCit7MHhmMDIwLDB4YjU5ZCwweDJiNzAsMHhhZGE4LDB4OWRjNSwweDQwNjksfSwNCit7MHgwMDAwLDB4MDAwMCwweDA0MDAsMHhjOWJmLDB4OGUxYiwweDQwMzQsfSwNCit7MHgwMDAwLDB4MDAwMCwweDAwMDAsMHgyMDAwLDB4YmViYywweDQwMTksfSwNCit7MHgwMDAwLDB4MDAwMCwweDAwMDAsMHgwMDAwLDB4OWM0MCwweDQwMGMsfSwNCit7MHgwMDAwLDB4MDAwMCwweDAwMDAsMHgwMDAwLDB4YzgwMCwweDQwMDUsfSwNCit7MHgwMDAwLDB4MDAwMCwweDAwMDAsMHgwMDAwLDB4YTAwMCwweDQwMDIsfSwgLyogMTAqKjEgKi8NCit9Ow0KKyNlbmRpZg0KKw0KK2ludCBfX2FzY3RvZTY0KGNvbnN0IGNoYXIgKiBfX3Jlc3RyaWN0X18gc3MsIHNob3J0IHVuc2lnbmVkIGludCAqIF9fcmVzdHJpY3RfXyB5KQ0KK3sNCit1bnNpZ25lZCBzaG9ydCB5eVtOSV0sIHh0W05JXSwgdHRbTkldOw0KK2ludCBlc2lnbiwgZGVjZmxnLCBuZXhwLCBleHAsIGxvc3Q7DQoraW50IGssIGM7DQoraW50IHZhbGlkX2xlYWRfc3RyaW5nID0gMDsNCitpbnQgaGF2ZV9ub25femVyb19tYW50ID0gMDsNCitpbnQgcHJlYyA9IDA7DQorLyogaW50IHRyYWlsID0gMDsgKi8NCitpbnQgbGV4cDsNCit1bnNpZ25lZCBzaG9ydCBuc2lnbiA9IDA7DQorY29uc3QgdW5zaWduZWQgc2hvcnQgKnA7DQorY2hhciAqc3AsICAqbHN0cjsNCitjaGFyICpzOw0KKw0KK2NvbnN0IGNoYXIgZGVjX3N5bSA9ICoobG9jYWxlY29udiAoKS0+ZGVjaW1hbF9wb2ludCk7IA0KKw0KK2ludCBsZW5sZHN0ciA9IDA7DQorDQorLyogQ29weSB0aGUgaW5wdXQgc3RyaW5nLiAqLw0KK2MgPSBzdHJsZW4gKHNzKSArIDI7DQorbHN0ciA9IChjaGFyICopIG1hbGxvYyAoYyk7DQorcyA9IChjaGFyICopIHNzOw0KK3doaWxlKCBpc3NwYWNlICgoaW50KSh1bnNpZ25lZCBjaGFyKSpzKSkgLyogc2tpcCBsZWFkaW5nIHNwYWNlcyAqLw0KKyAgew0KKyAgICArK3M7DQorICAgICsrbGVubGRzdHI7DQorICB9DQorc3AgPSBsc3RyOw0KK2Zvciggaz0wOyBrPGM7IGsrKyApDQorCXsNCisJaWYoICgqc3ArKyA9ICpzKyspID09ICdcMCcgKQ0KKwkJYnJlYWs7DQorCX0NCisqc3AgPSAnXDAnOw0KK3MgPSBsc3RyOw0KKw0KK2lmICgqcyA9PSAnLScpDQorICB7DQorICAgIG5zaWduID0gMHhmZmZmOw0KKyAgICArK3M7DQorICB9DQorZWxzZSBpZiAoKnMgPT0gJysnKQ0KKyAgew0KKyAgICsrczsNCisgIH0NCisNCitpZiAoX3N0cm5pY21wKCJJTkYiLCBzICwgMykgPT0gMCkNCisgew0KKyAgICB2YWxpZF9sZWFkX3N0cmluZyA9IDE7DQorICAgIHMgKz0gMzsNCisgICAgaWYgKCBfc3RybmljbXAgKCJJTklUWSIsIHMsIDUpID09IDApDQorICAgICAgIHMgKz0gNTsNCisgICAgX19lY2xlYXooeXkpOw0KKyAgICB5eVtFXSA9IDB4N2ZmZjsgIC8qIGluZmluaXR5ICovDQorICAgIGdvdG8gYWV4aXQ7DQorIH0NCitlbHNlIGlmKF9zdHJuaWNtcCAoIk5BTiIsIHMsIDMpID09IDApDQorIHsNCisgICB2YWxpZF9sZWFkX3N0cmluZyA9IDE7DQorICAgcyArPSAzOw0KKyAgIF9fZW5hbl9OSTE2KCB5eSApOw0KKyAgIGdvdG8gYWV4aXQ7DQorIH0NCisNCisvKiBGSVhNRTogSGFuZGxlIGNhc2Ugb2Ygc3RydG9sZCAoIk5BTihuX2NoYXJfc2VxKSIsZW5kcHRyKSAgKi8gDQorDQorLyogIE5vdyBnZXQgc29tZSBkaWdpdHMuICAqLw0KK2xvc3QgPSAwOw0KK2RlY2ZsZyA9IDA7DQorbmV4cCA9IDA7DQorZXhwID0gMDsNCitfX2VjbGVheiggeXkgKTsNCisNCisvKiBJZ25vcmUgbGVhZGluZyB6ZXJvcyAqLw0KK3doaWxlICgqcyA9PSAnMCcpDQorICB7DQorICAgIHZhbGlkX2xlYWRfc3RyaW5nID0gMTsNCisgICAgcysrOw0KKyAgfQ0KKw0KK254dGNvbToNCisNCitrID0gKnMgLSAnMCc7DQoraWYoIChrID49IDApICYmIChrIDw9IDkpICkNCisJew0KKyNpZiAwDQorLyogVGhlIHVzZSBvZiBhIHNwZWNpYWwgY2hhciBhcyBhIGZsYWcgZm9yIHRyYWlsaW5nIHplcm9lcyBjYXVzZXMgcHJvYmxlbXMgd2hlbiBpbnB1dA0KKyAgIGFjdHVhbGx5IGNvbnRhaW5zIHRoZSBjaGFyICAqLw0KKy8qIElkZW50aWZ5IGFuZCBzdHJpcCB0cmFpbGluZyB6ZXJvcyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludC4gKi8NCisJaWYoICh0cmFpbCA9PSAwKSAmJiAoZGVjZmxnICE9IDApICkNCisJCXsNCisJCXNwID0gczsNCisJCXdoaWxlKCAoKnNwID49ICcwJykgJiYgKCpzcCA8PSAnOScpICkNCisJCQkrK3NwOw0KKwkJLS1zcDsNCisJCXdoaWxlKCAqc3AgPT0gJzAnICkNCisJCSAgIHsJDQorCQkgICAgICpzcC0tID0gKGNoYXIpLTE7DQorCQkgICAgIHRyYWlsKys7DQorCQkgICB9DQorCQlpZiggKnMgPT0gKGNoYXIpLTEgKQ0KKwkJCWdvdG8gZG9uY2hyOw0KKwkJfQ0KKyNlbmRpZg0KKw0KKy8qIElmIGVub3VnaCBkaWdpdHMgd2VyZSBnaXZlbiB0byBtb3JlIHRoYW4gZmlsbCB1cCB0aGUgeXkgcmVnaXN0ZXIsDQorICogY29udGludWluZyB1bnRpbCBvdmVyZmxvdyBpbnRvIHRoZSBoaWdoIGd1YXJkIHdvcmQgeXlbMl0NCisgKiBndWFyYW50ZWVzIHRoYXQgdGhlcmUgd2lsbCBiZSBhIHJvdW5kb2ZmIGJpdCBhdCB0aGUgdG9wDQorICogb2YgdGhlIGxvdyBndWFyZCB3b3JkIGFmdGVyIG5vcm1hbGl6YXRpb24uDQorICovDQorCWlmKCB5eVsyXSA9PSAwICkNCisJCXsNCisJCWlmKCBkZWNmbGcgKQ0KKwkJCW5leHAgKz0gMTsgLyogY291bnQgZGlnaXRzIGFmdGVyIGRlY2ltYWwgcG9pbnQgKi8NCisJCV9fZXNodXAxKCB5eSApOwkvKiBtdWx0aXBseSBjdXJyZW50IG51bWJlciBieSAxMCAqLw0KKwkJX19lbW92eiggeXksIHh0ICk7DQorCQlfX2VzaHVwMSggeHQgKTsNCisJCV9fZXNodXAxKCB4dCApOw0KKwkJX19lYWRkbSggeHQsIHl5ICk7DQorCQlfX2VjbGVheiggeHQgKTsNCisJCXh0W05JLTJdID0gKHVuc2lnbmVkIHNob3J0IClrOw0KKwkJX19lYWRkbSggeHQsIHl5ICk7DQorCQl9DQorCWVsc2UNCisJCXsNCisJCS8qIE1hcmsgYW55IGxvc3Qgbm9uLXplcm8gZGlnaXQuICAqLw0KKwkJbG9zdCB8PSBrOw0KKwkJLyogQ291bnQgbG9zdCBkaWdpdHMgYmVmb3JlIHRoZSBkZWNpbWFsIHBvaW50LiAgKi8NCisJCWlmIChkZWNmbGcgPT0gMCkNCisJCSAgICAgICAgbmV4cCAtPSAxOw0KKwkJfQ0KKwloYXZlX25vbl96ZXJvX21hbnQgfD0gazsNCisJcHJlYyArKzsNCisJLyogZ290byBkb25jaHI7ICovDQorCX0NCitlbHNlIGlmICgqcyA9PSBkZWNfc3ltKQ0KKyAgew0KKyAgICBpZiggZGVjZmxnICkNCisgICAgICBnb3RvIGRhbGRvbmU7DQorICAgICsrZGVjZmxnOw0KKyAgfQ0KK2Vsc2UgaWYgKCgqcyA9PSAnRScpIHx8ICgqcyA9PSAnZScpICkNCisgIHsNCisgICAgaWYgKHByZWMgfHwgdmFsaWRfbGVhZF9zdHJpbmcpDQorCWdvdG8gZXhwbnQ7DQorICAgICBlbHNlCQ0KKwlnb3RvIGRhbGRvbmU7DQorICB9DQorDQorI2lmIDANCitlbHNlIGlmICgqcyA9PSAoY2hhciktMSkNCisgIGdvdG8gZG9uY2hyOw0KKyNlbmRpZg0KKw0KK2Vsc2UgIC8qIGFuIGludmFsaWQgY2hhciAqLw0KKyAgICBnb3RvIGRhbGRvbmU7DQorDQorLyogZG9uY2hyOiAqLw0KKysrczsNCitnb3RvIG54dGNvbTsNCisNCisNCisvKiBFeHBvbmVudCBpbnRlcnByZXRhdGlvbiAqLw0KK2V4cG50Og0KKw0KK2VzaWduID0gMTsNCitleHAgPSAwOw0KKy8qIFNhdmUgcG9zaXRpb24gaW4gY2FzZSB3ZSBuZWVkIHRvIGZhbGwgYmFjay4gICovDQorc3AgPSBzOw0KKysrczsNCisvKiBjaGVjayBmb3IgKyBvciAtICovDQoraWYoICpzID09ICctJyApDQorCXsNCisJZXNpZ24gPSAtMTsNCisJKytzOw0KKwl9DQoraWYoICpzID09ICcrJyApDQorCSsrczsNCisNCisvKiBDaGVjayBmb3IgdmFsaWQgZXhwb25lbnQuICAqLw0KK2lmICghKCpzID49ICcwJyAmJiAqcyA8PSAnOScpKQ0KKyAgew0KKyAgICBzID0gc3A7DQorICAgIGdvdG8gZGFsZG9uZTsNCisgIH0NCisNCit3aGlsZSggKCpzID49ICcwJykgJiYgKCpzIDw9ICc5JykgKQ0KK3sNCisgIC8qIFN0b3AgbW9kaWZ5aW5nIGV4cCBpZiB3ZSBhcmUgZ29pbmcgdG8gb3ZlcmZsb3cgYW55d2F5LA0KKyAgICAgYnV0IGtlZXAgcGFyc2luZyB0aGUgc3RyaW5nLiAqLwkNCisgIGlmIChleHAgPCA0OTc4KQ0KKyAgICB7DQorICAgICAgZXhwICo9IDEwOw0KKyAgICAgIGV4cCArPSAqcyAtICcwJzsNCisgICAgfQ0KKyAgcysrOw0KK30NCisNCitpZiggZXNpZ24gPCAwICkNCisJZXhwID0gLWV4cDsNCisNCitpZiAoZXhwID4gNDk3NykgLyogbWF5YmUgb3ZlcmZsb3cgKi8NCisJew0KKwlfX2VjbGVheih5eSk7DQorCWlmIChoYXZlX25vbl96ZXJvX21hbnQpDQorCSAgeXlbRV0gPSAweDdmZmY7DQorCWdvdG8gYWV4aXQ7DQorCX0NCitlbHNlIGlmIChleHAgPCAtNDk3NykgLyogdW5kZXJmbG93ICovDQorCXsNCisJX19lY2xlYXooeXkpOw0KKwlnb3RvIGFleGl0Ow0KKyAgCX0NCisNCitkYWxkb25lOg0KKw0KK25leHAgPSBleHAgLSBuZXhwOw0KKw0KKy8qIFBhZCB0cmFpbGluZyB6ZXJvcyB0byBtaW5pbWl6ZSBwb3dlciBvZiAxMCwgcGVyIElFRUUgc3BlYy4gKi8NCit3aGlsZSggKG5leHAgPiAwKSAmJiAoeXlbMl0gPT0gMCkgKQ0KKwl7DQorCV9fZW1vdnooIHl5LCB4dCApOw0KKwlfX2VzaHVwMSggeHQgKTsNCisJX19lc2h1cDEoIHh0ICk7DQorCV9fZWFkZG0oIHl5LCB4dCApOw0KKwlfX2VzaHVwMSggeHQgKTsNCisJaWYoIHh0WzJdICE9IDAgKQ0KKwkJYnJlYWs7DQorCW5leHAgLT0gMTsNCisJX19lbW92eiggeHQsIHl5ICk7DQorCX0NCitpZiggKGsgPSBfX2Vub3JtbHooeXkpKSA+IE5CSVRTICkNCisJew0KKwlfX2VjbGVheih5eSk7DQorCWdvdG8gYWV4aXQ7DQorCX0NCitsZXhwID0gKEVYT05FIC0gMSArIE5CSVRTKSAtIGs7DQorX19lbWRub3JtKCB5eSwgbG9zdCwgMCwgbGV4cCwgNjQsIE5CSVRTICk7DQorLyogY29udmVydCB0byBleHRlcm5hbCBmb3JtYXQgKi8NCisNCisNCisvKiBNdWx0aXBseSBieSAxMCoqbmV4cC4gIElmIHByZWNpc2lvbiBpcyA2NCBiaXRzLA0KKyAqIHRoZSBtYXhpbXVtIHJlbGF0aXZlIGVycm9yIGluY3VycmVkIGluIGZvcm1pbmcgMTAqKm4NCisgKiBmb3IgMCA8PSBuIDw9IDMyNCBpcyA4LjJlLTIwLCBhdCAxMCoqMTgwLg0KKyAqIEZvciAwIDw9IG4gPD0gOTk5LCB0aGUgcGVhayByZWxhdGl2ZSBlcnJvciBpcyAxLjRlLTE5IGF0IDEwKio5NDcuDQorICogRm9yIDAgPj0gbiA+PSAtOTk5LCBpdCBpcyAtMS41NWUtMTkgYXQgMTAqKi00MzUuDQorICovDQorbGV4cCA9IHl5W0VdOw0KK2lmKCBuZXhwID09IDAgKQ0KKwl7DQorCWsgPSAwOw0KKwlnb3RvIGV4cGRvbjsNCisJfQ0KK2VzaWduID0gMTsNCitpZiggbmV4cCA8IDAgKQ0KKwl7DQorCW5leHAgPSAtbmV4cDsNCisJZXNpZ24gPSAtMTsNCisJaWYoIG5leHAgPiA0MDk2ICkNCisJCXsgLyogUHVudC4gIENhbid0IGhhbmRsZSB0aGlzIHdpdGhvdXQgMiBkaXZpZGVzLiAqLw0KKwkJX19lbW92aSggX19ldGVuc1swXSwgdHQgKTsNCisJCWxleHAgLT0gdHRbRV07DQorCQlrID0gX19lZGl2bSggdHQsIHl5ICk7DQorCQlsZXhwICs9IEVYT05FOw0KKwkJbmV4cCAtPSA0MDk2Ow0KKwkJfQ0KKwl9DQorcCA9ICZfX2V0ZW5zW05URU5dWzBdOw0KK19fZW1vdiggX19lb25lLCB4dCApOw0KK2V4cCA9IDE7DQorZG8NCisJew0KKwlpZiggZXhwICYgbmV4cCApDQorCQlfX2VtdWwoIHAsIHh0LCB4dCApOw0KKwlwIC09IE5FOw0KKwlleHAgPSBleHAgKyBleHA7DQorCX0NCit3aGlsZSggZXhwIDw9IE1BWFAgKTsNCisNCitfX2Vtb3ZpKCB4dCwgdHQgKTsNCitpZiggZXNpZ24gPCAwICkNCisJew0KKwlsZXhwIC09IHR0W0VdOw0KKwlrID0gX19lZGl2bSggdHQsIHl5ICk7DQorCWxleHAgKz0gRVhPTkU7DQorCX0NCitlbHNlDQorCXsNCisJbGV4cCArPSB0dFtFXTsNCisJayA9IF9fZW11bG0oIHR0LCB5eSApOw0KKwlsZXhwIC09IEVYT05FIC0gMTsNCisJfQ0KKw0KK2V4cGRvbjoNCisNCisvKiBSb3VuZCBhbmQgY29udmVydCBkaXJlY3RseSB0byB0aGUgZGVzdGluYXRpb24gdHlwZSAqLw0KKw0KK19fZW1kbm9ybSggeXksIGssIDAsIGxleHAsIDY0LCA2NCApOw0KKw0KK2FleGl0Og0KKw0KK3l5WzBdID0gbnNpZ247DQorDQorX190b2U2NCggeXksIHkgKTsNCisNCisvKiBDaGVjayBmb3Igb3ZlcmZsb3csIHVuZGVmbG93ICAqLw0KK2lmIChoYXZlX25vbl96ZXJvX21hbnQgJiYNCisgICAgKCooKGxvbmcgZG91YmxlKikgeSkgPT0gMC4wTCB8fCBpc2luZiAoKigobG9uZyBkb3VibGUqKSB5KSkpKSANCisgIGVycm5vID0gRVJBTkdFOw0KKw0KK2lmIChwcmVjIHx8IHZhbGlkX2xlYWRfc3RyaW5nKQ0KKyAgcmV0dXJuIChsZW5sZHN0ciArIChzIC0gbHN0cikpOw0KK3JldHVybiAwOw0KK30NCisNCisNCitsb25nIGRvdWJsZSBzdHJ0b2xkIChjb25zdCBjaGFyICogX19yZXN0cmljdF9fIHMsIGNoYXIgKiogX19yZXN0cmljdF9fIHNlKQ0KK3sNCisgIGludCBsZW5sZHN0cjsNCisgIHVuaW9uDQorICB7DQorICAgIHVuc2lnbmVkIHNob3J0IGludCB1c1s2XTsNCisgICAgbG9uZyBkb3VibGUgbGQ7DQorICB9IHh4ID0ge3swfX07DQorIA0KKyAgbGVubGRzdHIgPSAgX19hc2N0b2U2NCggcywgeHgudXMpOw0KKyAgaWYgKHNlKQ0KKyAgICAqc2UgPSAoY2hhciopcyArIGxlbmxkc3RyOw0KKw0KKyAgcmV0dXJuIHh4LmxkOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21pc2Mvc3RydG91bWF4LmMgYi9taW5ndy13NjQtY3J0L21pc2Mvc3RydG91bWF4LmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTNmZDFlNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWlzYy9zdHJ0b3VtYXguYwpAQCAtMCwwICsxLDExMCBAQAorLyoNCisgICAgVGhpcyBzb3VyY2UgY29kZSB3YXMgZXh0cmFjdGVkIGZyb20gdGhlIFE4IHBhY2thZ2UgY3JlYXRlZCBhbmQNCisgICAgcGxhY2VkIGluIHRoZSBQVUJMSUMgRE9NQUlOIGJ5IERvdWcgR3d5biA8Z3d5bkBhcmwubWlsPg0KKyAgICBsYXN0IGVkaXQ6CTE5OTkvMTEvMDUJZ3d5bkBhcmwubWlsDQorDQorCUltcGxlbWVudHMgc3ViY2xhdXNlIDcuOC4yIG9mIElTTy9JRUMgOTg5OToxOTk5IChFKS4NCisNCisJVGhpcyBwYXJ0aWN1bGFyIGltcGxlbWVudGF0aW9uIHJlcXVpcmVzIHRoZSBtYXRjaGluZyA8aW50dHlwZXMuaD4uDQorCUl0IGFsc28gYXNzdW1lcyB0aGF0IGNoYXJhY3RlciBjb2RlcyBmb3IgQS4uWiBhbmQgYS4ueiBhcmUgaW4NCisJY29udGlndW91cyBhc2NlbmRpbmcgb3JkZXI7IHRoaXMgaXMgdHJ1ZSBmb3IgQVNDSUkgYnV0IG5vdCBFQkNESUMuDQorKi8NCisjaW5jbHVkZSA8c3RkbGliLmg+DQorI2luY2x1ZGUgPGVycm5vLmg+DQorI2luY2x1ZGUgPGN0eXBlLmg+DQorI2luY2x1ZGUgPGludHR5cGVzLmg+DQorDQorLyogSGVscGVyIG1hY3JvcyAqLw0KKw0KKy8qIGNvbnZlcnQgZGlnaXQgY2hhcmFjdGVyIHRvIG51bWJlciwgaW4gYW55IGJhc2UgKi8NCisjZGVmaW5lIFRvTnVtYmVyKGMpCShpc2RpZ2l0KGMpID8gKGMpIC0gJzAnIDogXA0KKwkJCSBpc3VwcGVyKGMpID8gKGMpIC0gJ0EnICsgMTAgOiBcDQorCQkJIGlzbG93ZXIoYykgPyAoYykgLSAnYScgKyAxMCA6IFwNCisJCQkgLTEJCS8qICJpbnZhbGlkIiBmbGFnICovIFwNCisJCQkpDQorLyogdmFsaWRhdGUgY29udmVydGVkIGRpZ2l0IGNoYXJhY3RlciBmb3Igc3BlY2lmaWMgYmFzZSAqLw0KKyNkZWZpbmUgdmFsaWQobiwgYikJKChuKSA+PSAwICYmIChuKSA8IChiKSkNCisNCit1aW50bWF4X3QNCitzdHJ0b3VtYXgobnB0ciwgZW5kcHRyLCBiYXNlKQ0KKwlyZWdpc3RlciBjb25zdCBjaGFyICogX19yZXN0cmljdF9fCW5wdHI7DQorCWNoYXIgKiogX19yZXN0cmljdF9fCQkJZW5kcHRyOw0KKwlyZWdpc3RlciBpbnQJCQkJYmFzZTsNCisJew0KKwlyZWdpc3RlciB1aW50bWF4X3QJYWNjdW07CS8qIGFjY3VtdWxhdGVzIGNvbnZlcnRlZCB2YWx1ZSAqLw0KKwlyZWdpc3RlciB1aW50bWF4X3QJbmV4dDsJLyogZm9yIGNvbXB1dGluZyBuZXh0IHZhbHVlIG9mIGFjY3VtICovDQorCXJlZ2lzdGVyIGludAkJbjsJLyogbnVtZXJhbCBmcm9tIGRpZ2l0IGNoYXJhY3RlciAqLw0KKwlpbnQJCQltaW51czsJLyogc2V0IGlmZiBtaW51cyBzaWduIHNlZW4gKHllcyEpICovDQorCWludAkJCXRvb2JpZzsJLyogc2V0IGlmZiB2YWx1ZSBvdmVyZmxvd3MgKi8NCisNCisJaWYgKCBlbmRwdHIgIT0gTlVMTCApDQorCQkqZW5kcHRyID0gKGNoYXIgKilucHRyOwkvKiBpbiBjYXNlIG5vIGNvbnZlcnNpb24ncyBwZXJmb3JtZWQgKi8NCisNCisJaWYgKCBiYXNlIDwgMCB8fCBiYXNlID09IDEgfHwgYmFzZSA+IDM2ICkNCisJCXsNCisJCWVycm5vID0gRURPTTsNCisJCXJldHVybiAwOwkJLyogdW5zcGVjaWZpZWQgYmVoYXZpb3IgKi8NCisJCX0NCisNCisJLyogc2tpcCBpbml0aWFsLCBwb3NzaWJseSBlbXB0eSBzZXF1ZW5jZSBvZiB3aGl0ZS1zcGFjZSBjaGFyYWN0ZXJzICovDQorDQorCXdoaWxlICggaXNzcGFjZSgqbnB0cikgKQ0KKwkJKytucHRyOw0KKw0KKwkvKiBwcm9jZXNzIHN1YmplY3Qgc2VxdWVuY2U6ICovDQorDQorCS8qIG9wdGlvbmFsIHNpZ24gKHllcyEpICovDQorDQorCWlmICggKG1pbnVzID0gKm5wdHIgPT0gJy0nKSB8fCAqbnB0ciA9PSAnKycgKQ0KKwkJKytucHRyOw0KKw0KKwlpZiAoIGJhc2UgPT0gMCApDQorICAgICAgICB7DQorCQlpZiAoICpucHRyID09ICcwJyApDQorICAgICAgICAgICAgew0KKwkJCWlmICggbnB0clsxXSA9PSAnWCcgfHwgbnB0clsxXSA9PSAneCcgKQ0KKwkJCQliYXNlID0gMTY7DQorCQkJZWxzZQ0KKwkJCQliYXNlID0gODsNCisJCSAgICB9DQorCQllbHNlDQorCQkJCWJhc2UgPSAxMDsNCisJCX0NCisNCisgICAgLyogb3B0aW9uYWwgIjB4IiBvciAiMFgiIGZvciBiYXNlIDE2ICovDQorICAgIA0KKwlpZiAoIGJhc2UgPT0gMTYgJiYgKm5wdHIgPT0gJzAnICYmIChucHRyWzFdID09ICdYJyB8fCBucHRyWzFdID09ICd4JykgKQ0KKwkJbnB0ciArPSAyOwkJLyogc2tpcCBwYXN0IHRoaXMgcHJlZml4ICovDQorDQorCS8qIGNoZWNrIHdoZXRoZXIgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHZhbGlkIGRpZ2l0ICovDQorDQorCW4gPSBUb051bWJlcigqbnB0cik7DQorCSsrbnB0cjsNCisNCisJaWYgKCAhdmFsaWQobiwgYmFzZSkgKQ0KKwkJcmV0dXJuIDA7CQkvKiBzdWJqZWN0IHNlcS4gbm90IG9mIGV4cGVjdGVkIGZvcm0gKi8NCisNCisJYWNjdW0gPSBuOw0KKw0KKwlmb3IgKCB0b29iaWcgPSAwOyBuID0gVG9OdW1iZXIoKm5wdHIpLCB2YWxpZChuLCBiYXNlKTsgKytucHRyICkNCisJCWlmICggYWNjdW0gPiBVSU5UTUFYX01BWCAvIGJhc2UgKyAxCS8qIG1ham9yIHdyYXAtYXJvdW5kICovDQorCQkgIHx8IChuZXh0ID0gYmFzZSAqIGFjY3VtICsgbikgPCBhY2N1bQkvKiBtaW5vciB3cmFwLWFyb3VuZCAqLw0KKwkJICAgKQ0KKwkJCXRvb2JpZyA9IDE7CS8qIGJ1dCBrZWVwIHNjYW5uaW5nICovDQorCQllbHNlDQorCQkJYWNjdW0gPSBuZXh0Ow0KKw0KKwlpZiAoIGVuZHB0ciAhPSBOVUxMICkNCisJCSplbmRwdHIgPSAoY2hhciAqKW5wdHI7CS8qIHBvaW50cyB0byBmaXJzdCBub3QtdmFsaWQtZGlnaXQgKi8NCisNCisJaWYgKCB0b29iaWcgKQ0KKwkJew0KKwkJZXJybm8gPSBFUkFOR0U7DQorCQlyZXR1cm4gVUlOVE1BWF9NQVg7DQorCQl9DQorCWVsc2UNCisJCXJldHVybiBtaW51cyA/IC1hY2N1bSA6IGFjY3VtOwkvKiAoeWVzISkgKi8NCisJfQ0KKw0KK3Vuc2lnbmVkIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fICgoYWxpYXMgKCJzdHJ0b3VtYXgiKSkpDQorc3RydG91bGwgKGNvbnN0IGNoYXIqIF9fcmVzdHJpY3RfXyBucHRyLCBjaGFyICoqIF9fcmVzdHJpY3RfXyBlbmRwdHIsIGludCBiYXNlKTsNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21pc2Mvd2Fzc2VydC5jIGIvbWluZ3ctdzY0LWNydC9taXNjL3dhc3NlcnQuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNGI4ZDc5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taXNjL3dhc3NlcnQuYwpAQCAtMCwwICsxLDU3IEBACisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dGNoYXIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKworZXh0ZXJuIGludCBtaW5nd19hcHBfdHlwZTsKKworc3RhdGljIGNweV93c3RyIChjaGFyICpidWYsIGNvbnN0IHdjaGFyX3QgKnNyYywgc2l6ZV90IG1heCkKK3sKKyAgaWYgKHNyYykKKyAgICB7CisgICAgICB3aGlsZSAobWF4ID4gMCAmJiAqc3JjICE9IDApCisgICAgICAgeworICAgICAgICAgKmJ1ZisrID0gKGNoYXIpIHNyY1swXTsKKyAgICAgICAgIC0tbWF4OyBzcmMrKzsKKyAgICAgICB9CisgICAgfQorICAqYnVmID0gMDsKK30KKwordm9pZCBfX2NkZWNsCitfd2Fzc2VydChjb25zdCB3Y2hhcl90ICpfTWVzc2FnZSxjb25zdCB3Y2hhcl90ICpfRmlsZSx1bnNpZ25lZCBfTGluZSkKK3sKKyAgY2hhciAqbXNnYnVmID0gKGNoYXIgKikgbWFsbG9jICg4MTkyKTsKKyAgY2hhciBmbltNQVhfUEFUSCArIDFdLCBtc2dbTUFYX1BBVEggKyAxXSwgaUZpbGVbTUFYX1BBVEggKyAxXTsKKyAgRFdPUkQgbkNvZGU7CisKKyAgY3B5X3dzdHIgKG1zZywgX01lc3NhZ2UsIE1BWF9QQVRIKTsKKyAgY3B5X3dzdHIgKGlGaWxlLCBfRmlsZSwgTUFYX1BBVEgpOworICBpZiAoaUZpbGVbMF0gPT0gMCkKKyAgICBzdHJjcHkgKGlGaWxlLCAiPHVua25vd24+Iik7CisgIGlmIChtc2dbMF0gPT0gMCkKKyAgICBzdHJjcHkgKG1zZywgIj8iKTsKKyAgZm5bTUFYX1BBVEhdID0gMDsKKyAgaWYgKCEgR2V0TW9kdWxlRmlsZU5hbWUgKE5VTEwsIGZuLCBNQVhfUEFUSCkpCisgICAgc3RyY3B5IChmbiwgIjx1bmtub3duPiIpOworICBzcHJpbnRmIChtc2didWYsICJBc3NlcnRhdGlvbiBmYWlsZWQhXG5cblByb2dyYW06ICVzXG5GaWxlOiAlcywgTGluZSAldVxuXG5FeHByZXNzaW9uOiAlcyIsCisgICAgICAJICAgZm4sIGlGaWxlLF9MaW5lLG1zZyk7CisgIGlmIChtaW5nd19hcHBfdHlwZSA9PSAwKQorICAgIHsKKyAgICAgIGZwcmludGYgKHN0ZGVyciwgIiVzXG4iLCBtc2didWYpOworICAgICAgYWJvcnQgKCk7CisgICAgfQorICBuQ29kZSA9IE1lc3NhZ2VCb3hBIChOVUxMLCBtc2didWYsICJNaW5HVyBSdW50aW1lIEFzc2VydGF0aW9uIiwgTUJfQUJPUlRSRVRSWUlHTk9SRXwKKyAgICBNQl9JQ09OSEFORHxNQl9TRVRGT1JFR1JPVU5EfE1CX1RBU0tNT0RBTCk7CisgIGlmIChuQ29kZSA9PSBJREFCT1JUKQorICAgIHsKKyAgICAgIHJhaXNlIChTSUdBQlJUKTsKKyAgICAgIF9leGl0ICgzKTsKKyAgICAgIGFib3J0ICgpOworICAgIH0KKyAgaWYgKG5Db2RlID09IElESUdOT1JFKQorICAgIHJldHVybjsKKyAgYWJvcnQgKCk7Cit9CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21pc2Mvd2NydG9tYi5jIGIvbWluZ3ctdzY0LWNydC9taXNjL3djcnRvbWIuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNzhmYTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taXNjL3djcnRvbWIuYwpAQCAtMCwwICsxLDk0IEBACisjaW5jbHVkZSAibWJfd2NfY29tbW9uLmgiDQorI2luY2x1ZGUgPHdjaGFyLmg+DQorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KKyNpbmNsdWRlIDxlcnJuby5oPg0KKyNpbmNsdWRlIDxsaW1pdHMuaD4NCisjZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4NCisjaW5jbHVkZSA8d2luZG93cy5oPg0KKw0KKw0KK3N0YXRpYyBpbnQgLypfX01JTkdXX0FUVFJJQl9OT05OVUxMKDEpKi8NCisgX193Y3J0b21iX2NwIChjaGFyICpkc3QsIHdjaGFyX3Qgd2MsIGNvbnN0IHVuc2lnbmVkIGludCBjcCwNCisJICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBtYl9tYXgpDQoreyAgICAgICANCisgaWYgKHdjID4gMjU1KQ0KKyAgICB7DQorICAgICAgZXJybm8gPSBFSUxTRVE7DQorICAgICAgcmV0dXJuIC0xOw0KKyAgICB9DQorDQorICBpZiAoY3AgPT0gMCkNCisgICAgew0KKyAgICAgICpkc3QgPSAoY2hhcikgd2M7DQorICAgICAgcmV0dXJuIDE7DQorICAgIH0NCisgIGVsc2UNCisgICAgew0KKyAgICAgIGludCBpbnZhbGlkX2NoYXIgPSAwOw0KKyAgIA0KKyAgICAgIGludCBzaXplID0gV2lkZUNoYXJUb011bHRpQnl0ZShnZXRfY3BfZnJvbV9sb2NhbGUoKSwNCisJCQkJICAgICAwIC8qIElzIHRoaXMgY29ycmVjdCBmbGFnPyAqLywNCisJCQkJICAgICAmd2MsIDEsIGRzdCwgbWJfbWF4LA0KKwkJCQkgICAgIE5VTEwsICZpbnZhbGlkX2NoYXIpOw0KKyAgICAgIGlmIChzaXplID09IDAgfHwgaW52YWxpZF9jaGFyKSAgDQorICAgICAgICB7DQorICAgICAgICAgIGVycm5vID0gRUlMU0VROw0KKyAgICAgICAgICByZXR1cm4gLTE7DQorICAgICAgICB9DQorICAgICAgcmV0dXJuIHNpemU7DQorICAgIH0NCit9DQorDQorc2l6ZV90DQord2NydG9tYiAoY2hhciAqZHN0LCB3Y2hhcl90IHdjLCBtYnN0YXRlX3QgKiBwcyBfX2F0dHJpYnV0ZV9fICgoX191bnVzZWRfXykpKQ0KK3sNCisgIGNoYXIgYnl0ZV9idWNrZXQgW01CX0xFTl9NQVhdOw0KKyAgY2hhciogdG1wX2RzdCA9IGRzdCA/IGRzdCA6IGJ5dGVfYnVja2V0OyAgICAgIA0KKyAgcmV0dXJuIChzaXplX3QpX193Y3J0b21iX2NwICh0bXBfZHN0LCB3YywgZ2V0X2NwX2Zyb21fbG9jYWxlICgpLA0KKwkJCSAgICAgICBNQl9DVVJfTUFYKTsNCit9DQorDQorc2l6ZV90IHdjc3J0b21icyAoY2hhciAqZHN0LCBjb25zdCB3Y2hhcl90ICoqc3JjLCBzaXplX3QgbGVuLA0KKwkJICBtYnN0YXRlX3QgKiBwcyBfX2F0dHJpYnV0ZV9fICgoX191bnVzZWRfXykpKQ0KK3sNCisgIGludCByZXQgPSAwOw0KKyAgc2l6ZV90IG4gPSAwOw0KKyAgY29uc3QgdW5zaWduZWQgaW50IGNwID0gZ2V0X2NwX2Zyb21fbG9jYWxlKCk7DQorICBjb25zdCB1bnNpZ25lZCBpbnQgbWJfbWF4ID0gTUJfQ1VSX01BWDsNCisNCisgIGlmIChzcmMgPT0gTlVMTCB8fCAqc3JjID09IE5VTEwpIC8qIHVuZGVmaW5lZCBiZWhhdmlvciAqLw0KKyAgICAgcmV0dXJuIDA7DQorDQorICBpZiAoZHN0ICE9IE5VTEwpDQorICAgIHsNCisgICAgICBjb25zdCB3Y2hhcl90ICoqIHNhdmVkX3NyYyA9IHNyYzsNCisgICAgICB3aGlsZSAobiA8IGxlbikNCisgICAgICAgIHsNCisgICAgICAgICAgaWYgKChyZXQgPSBfX3djcnRvbWJfY3AgKGRzdCwgKipzcmMsIGNwLCBtYl9tYXgpKSA8PSAwKQ0KKwkgICAgIHJldHVybiAoc2l6ZV90KSAtMTsNCisgIAkgIG4gKz0gcmV0Ow0KKyAgIAkgIGRzdCArPSByZXQ7DQorICAgICAgICAgIGlmICgqKGRzdCAtIDEpID09ICdcMCcpDQorCSAgICB7DQorCSAgICAgICpzYXZlZF9zcmMgPSAod2NoYXJfdCkgMDsNCisJICAgICAgcmV0dXJuIChuICAtIDEpOw0KKwkgICAgfQ0KKwkgICpzcmMrKzsNCisgICAgICAgIH0NCisgICAgfQ0KKyAgZWxzZQ0KKyAgICB7DQorICAgICAgY2hhciBieXRlX2J1Y2tldCBbTUJfTEVOX01BWF07DQorICAgICAgd2hpbGUgKG4gPCBsZW4pDQorICAgICAgICB7DQorCSAgaWYgKChyZXQgPSBfX3djcnRvbWJfY3AgKGJ5dGVfYnVja2V0LCAqKnNyYywgY3AsIG1iX21heCkpDQorCQkgPD0gMCkNCisgCSAgICByZXR1cm4gKHNpemVfdCkgLTE7ICAgIA0KKwkgIG4gKz0gcmV0Ow0KKwkgIGlmIChieXRlX2J1Y2tldCBbcmV0IC0gMV0gPT0gJ1wwJykNCisJICAgIHJldHVybiAobiAtIDEpOw0KKyAgICAgICAgICAqc3JjKys7DQorICAgICAgICB9DQorICAgIH0NCisgIHJldHVybiBuOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21pc2Mvd2NzdG9pbWF4LmMgYi9taW5ndy13NjQtY3J0L21pc2Mvd2NzdG9pbWF4LmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmVlM2EzNgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWlzYy93Y3N0b2ltYXguYwpAQCAtMCwwICsxLDExOSBAQAorLyoNCisgICAgVGhpcyBzb3VyY2UgY29kZSB3YXMgZXh0cmFjdGVkIGZyb20gdGhlIFE4IHBhY2thZ2UgY3JlYXRlZCBhbmQNCisgICAgcGxhY2VkIGluIHRoZSBQVUJMSUMgRE9NQUlOIGJ5IERvdWcgR3d5biA8Z3d5bkBhcmwubWlsPg0KKw0KKyAgICBsYXN0IGVkaXQ6CTE5OTkvMTEvMDUJZ3d5bkBhcmwubWlsDQorDQorCUltcGxlbWVudHMgc3ViY2xhdXNlIDcuOC4yIG9mIElTTy9JRUMgOTg5OToxOTk5IChFKS4NCisNCisJVGhpcyBwYXJ0aWN1bGFyIGltcGxlbWVudGF0aW9uIHJlcXVpcmVzIHRoZSBtYXRjaGluZyA8aW50dHlwZXMuaD4uDQorCUl0IGFsc28gYXNzdW1lcyB0aGF0IGNoYXJhY3RlciBjb2RlcyBmb3IgQS4uWiBhbmQgYS4ueiBhcmUgaW4NCisJY29udGlndW91cyBhc2NlbmRpbmcgb3JkZXI7IHRoaXMgaXMgdHJ1ZSBmb3IgQVNDSUkgYnV0IG5vdCBFQkNESUMuDQorKi8NCisNCisjaW5jbHVkZSA8d2NoYXIuaD4NCisjaW5jbHVkZSA8ZXJybm8uaD4NCisjaW5jbHVkZSA8Y3R5cGUuaD4NCisjaW5jbHVkZSA8aW50dHlwZXMuaD4NCisNCisvKiBjb252ZXJ0IGRpZ2l0IHdpZGUgY2hhcmFjdGVyIHRvIG51bWJlciwgaW4gYW55IGJhc2UgKi8NCisNCisjZGVmaW5lIFRvV051bWJlcihjKQkoaXN3ZGlnaXQoYykgPyAoYykgLSBMJzAnIDogXA0KKwkJCSBpc3d1cHBlcihjKSA/IChjKSAtIEwnQScgKyAxMCA6IFwNCisJCQkgaXN3bG93ZXIoYykgPyAoYykgLSBMJ2EnICsgMTAgOiBcDQorCQkJIC0xCQkvKiAiaW52YWxpZCIgZmxhZyAqLyBcDQorCQkJKQ0KKw0KKy8qIHZhbGlkYXRlIGNvbnZlcnRlZCBkaWdpdCBjaGFyYWN0ZXIgZm9yIHNwZWNpZmljIGJhc2UgKi8NCisjZGVmaW5lIHZhbGlkKG4sIGIpCSgobikgPj0gMCAmJiAobikgPCAoYikpDQorDQoraW50bWF4X3QNCit3Y3N0b2ltYXgobnB0ciwgZW5kcHRyLCBiYXNlKQ0KKwlyZWdpc3RlciBjb25zdCB3Y2hhcl90ICogX19yZXN0cmljdF9fCW5wdHI7DQorCXdjaGFyX3QgKiogX19yZXN0cmljdF9fCQkJCWVuZHB0cjsNCisJcmVnaXN0ZXIgaW50CQkJCQliYXNlOw0KKwl7DQorCXJlZ2lzdGVyIHVpbnRtYXhfdAlhY2N1bTsJLyogYWNjdW11bGF0ZXMgY29udmVydGVkIHZhbHVlICovDQorCXJlZ2lzdGVyIGludAkJbjsJLyogbnVtZXJhbCBmcm9tIGRpZ2l0IGNoYXJhY3RlciAqLw0KKwlpbnQJCQltaW51czsJLyogc2V0IGlmZiBtaW51cyBzaWduIHNlZW4gKi8NCisJaW50CQkJdG9vYmlnOwkvKiBzZXQgaWZmIHZhbHVlIG92ZXJmbG93cyAqLw0KKw0KKwlpZiAoIGVuZHB0ciAhPSBOVUxMICkNCisJCSplbmRwdHIgPSAod2NoYXJfdCAqKW5wdHI7CS8qIGluIGNhc2Ugbm8gY29udiBwZXJmb3JtZWQgKi8NCisNCisJaWYgKCBiYXNlIDwgMCB8fCBiYXNlID09IDEgfHwgYmFzZSA+IDM2ICkNCisJCXsNCisJCWVycm5vID0gRURPTTsNCisJCXJldHVybiAwOwkJLyogdW5zcGVjaWZpZWQgYmVoYXZpb3IgKi8NCisJCX0NCisNCisJLyogc2tpcCBpbml0aWFsLCBwb3NzaWJseSBlbXB0eSBzZXF1ZW5jZSBvZiB3aGl0ZS1zcGFjZSB3LmNoYXJhY3RlcnMgKi8NCisNCisJd2hpbGUgKCBpc3dzcGFjZSgqbnB0cikgKQ0KKwkJKytucHRyOw0KKw0KKwkvKiBwcm9jZXNzIHN1YmplY3Qgc2VxdWVuY2U6ICovDQorDQorCS8qIG9wdGlvbmFsIHNpZ24gKi8NCisNCisJaWYgKCAobWludXMgPSAqbnB0ciA9PSBMJy0nKSB8fCAqbnB0ciA9PSBMJysnICkNCisJCSsrbnB0cjsNCisNCisJaWYgKCBiYXNlID09IDAgKQ0KKyAgICAgICAgew0KKwkJaWYgKCAqbnB0ciA9PSBMJzAnICkNCisgICAgICAgICAgICB7DQorCQkJaWYgKCBucHRyWzFdID09IEwnWCcgfHwgbnB0clsxXSA9PSBMJ3gnICkNCisJCQkJYmFzZSA9IDE2Ow0KKwkJCWVsc2UNCisJCQkJYmFzZSA9IDg7DQorICAgICAgICAgICAgfQ0KKwkJZWxzZQ0KKwkJCQliYXNlID0gMTA7DQorICAgICAgICB9DQorCS8qIG9wdGlvbmFsICIweCIgb3IgIjBYIiBmb3IgYmFzZSAxNiAqLw0KKw0KKwlpZiAoIGJhc2UgPT0gMTYgJiYgKm5wdHIgPT0gTCcwJw0KKwkgICYmIChucHRyWzFdID09IEwnWCcgfHwgbnB0clsxXSA9PSBMJ3gnKQ0KKwkgICApDQorCQlucHRyICs9IDI7CQkvKiBza2lwIHBhc3QgdGhpcyBwcmVmaXggKi8NCisNCisJLyogY2hlY2sgd2hldGhlciB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgdmFsaWQgZGlnaXQgKi8NCisNCisJbiA9IFRvV051bWJlcigqbnB0cik7DQorCSsrbnB0cjsNCisNCisJaWYgKCAhdmFsaWQobiwgYmFzZSkgKQ0KKwkJcmV0dXJuIDA7CQkvKiBzdWJqZWN0IHNlcS4gbm90IG9mIGV4cGVjdGVkIGZvcm0gKi8NCisNCisJYWNjdW0gPSBuOw0KKw0KKwlmb3IgKCB0b29iaWcgPSAwOyBuID0gVG9XTnVtYmVyKCpucHRyKSwgdmFsaWQobiwgYmFzZSk7ICsrbnB0ciApDQorCQlpZiAoIGFjY3VtID4gKHVpbnRtYXhfdCkoSU5UTUFYX01BWCAvIGJhc2UgKyAyKSApIC8qIG1ham9yIHdyYXAtYXJvdW5kICovDQorCQkJdG9vYmlnID0gMTsJLyogYnV0IGtlZXAgc2Nhbm5pbmcgKi8NCisJCWVsc2UNCisJCQlhY2N1bSA9IGJhc2UgKiBhY2N1bSArIG47DQorDQorCWlmICggZW5kcHRyICE9IE5VTEwgKQ0KKwkJKmVuZHB0ciA9ICh3Y2hhcl90ICopbnB0cjsJLyogLT4gZmlyc3Qgbm90LXZhbGlkLWRpZ2l0ICovDQorDQorCWlmICggbWludXMgKQ0KKwkJew0KKwkJaWYgKCBhY2N1bSA+ICh1aW50bWF4X3QpSU5UTUFYX01BWCArIDEgKQ0KKwkJCXRvb2JpZyA9IDE7DQorCQl9DQorCWVsc2UNCisJaWYgKCBhY2N1bSA+ICh1aW50bWF4X3QpSU5UTUFYX01BWCApDQorCQl0b29iaWcgPSAxOw0KKw0KKwlpZiAoIHRvb2JpZyApDQorCQl7DQorCQllcnJubyA9IEVSQU5HRTsNCisJCXJldHVybiBtaW51cyA/IElOVE1BWF9NSU4gOiBJTlRNQVhfTUFYOw0KKwkJfQ0KKwllbHNlDQorCQlyZXR1cm4gKGludG1heF90KShtaW51cyA/IC1hY2N1bSA6IGFjY3VtKTsNCisJfQ0KKw0KK2xvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fICgoYWxpYXMgKCJ3Y3N0b2ltYXgiKSkpDQord2NzdG9sbCAoY29uc3Qgd2NoYXJfdCogX19yZXN0cmljdF9fIG5wdHIsIHdjaGFyX3QgKiogX19yZXN0cmljdF9fIGVuZHB0ciwgaW50IGJhc2UpOw0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWlzYy93Y3N0b2xkLmMgYi9taW5ndy13NjQtY3J0L21pc2Mvd2NzdG9sZC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIxNjBhYWYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21pc2Mvd2NzdG9sZC5jCkBAIC0wLDAgKzEsNzYgQEAKKy8qICBXaWRlIGNoYXIgd3JhcHBlciBmb3Igc3RydG9sZA0KKyAqICBSZXZpc2lvbiBoaXN0b3J5Og0KKyAqICA2IE5vdiAyMDAyCUluaXRpYWwgdmVyc2lvbi4NCisgKg0KKyAqICBDb250cmlidXRvcjogICBEYW5ueSBTbWl0aCA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JlZ2UubmV0Pg0KKyAqLw0KKw0KKyAvKiBUaGlzIHJvdXRpbmUgaGFzIGJlZW4gcGxhY2VkIGluIHRoZSBwdWJsaWMgZG9tYWluLiovDQorDQorI2RlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFODQorI2luY2x1ZGUgPHdpbmRvd3MuaD4NCisjaW5jbHVkZSA8bG9jYWxlLmg+DQorI2luY2x1ZGUgPHdjaGFyLmg+DQorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KKyNpbmNsdWRlIDxzdHJpbmcuaD4NCisNCitleHRlcm4gaW50IF9fYXNjdG9lNjQoY29uc3QgY2hhciAqIF9fcmVzdHJpY3RfXyBzcywNCisJICAgICAgIHNob3J0IHVuc2lnbmVkIGludCAqIF9fcmVzdHJpY3RfXyB5KTsNCisNCisNCitzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgZ2V0X2NvZGVwYWdlICh2b2lkKQ0KK3sNCisgIGNoYXIqIGNwOw0KKw0KKyAgLyoNCisgICAgbG9jYWxlIDo6ICJsYW5nW19jb3VudHJ5Wy5jb2RlX3BhZ2VdXSIgDQorICAgICAgICAgICAgICAgfCAiLmNvZGVfcGFnZSINCisgICovDQorICBpZiAoKGNwID0gc3RyY2hyKHNldGxvY2FsZShMQ19DVFlQRSwgTlVMTCksICcuJykpKQ0KKyAgICByZXR1cm4gYXRvaSggY3AgKyAxKTsNCisgIGVsc2UNCisgICAgcmV0dXJuIDA7DQorfQ0KKw0KK2xvbmcgZG91YmxlIHdjc3RvbGQgKGNvbnN0IHdjaGFyX3QgKiBfX3Jlc3RyaWN0X18gd2NzLCB3Y2hhcl90ICoqIF9fcmVzdHJpY3RfXyB3Y3NlKQ0KK3sNCisgIGNoYXIgKiBjczsNCisgIGludCBpOw0KKyAgaW50IGxlbmxkc3RyOw0KKyAgdW5pb24NCisgIHsNCisgICAgdW5zaWduZWQgc2hvcnQgaW50IHVzWzZdOw0KKyAgICBsb25nIGRvdWJsZSBsZDsNCisgIH0geHg7DQorDQorICB1bnNpZ25lZCBpbnQgY3AgPSBnZXRfY29kZXBhZ2UgKCk7ICAgDQorICANCisgIC8qIEFsbG9jYXRlIGVub3VnaCByb29tIGZvciAocG9zc2libHkpIG1iIGNoYXJzICovDQorICBjcyA9IChjaGFyICopIG1hbGxvYyAoKHdjc2xlbih3Y3MpKzEpICogTUJfQ1VSX01BWCk7DQorDQorICBpZiAoY3AgPT0gMCkgLyogQyBsb2NhbGUgKi8NCisgICAgew0KKyAgICAgIGZvciAoaSA9IDA7ICh3Y3NbaV0gIT0gMCkgJiYgd2NzW2ldIDw9IDI1NTsgaSsrKQ0KKyAgICAgICAgY3NbaV0gPSAoY2hhcikgd2NzW2ldOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKyAgICAgIGNzW2ldICA9ICdcMCc7DQorICAgIH0NCisgIGVsc2UNCisgICAgew0KKyAgICAgIGludCBuYnl0ZXMgPSAtMTsNCisgICAgICBpbnQgbWJfbGVuID0gMDsNCisgICAgICAvKiBsb29wIHRocm91Z2ggdGlsbCB3ZSBoaXQgbnVsbCBvciBpbnZhbGlkIGNoYXJhY3RlciAqLw0KKyAgICAgIGZvciAoaSA9IDA7ICh3Y3NbaV0gIT0gMCkgJiYgKG5ieXRlcyAhPSAwKTsgaSsrKQ0KKwl7DQorICAgICAJICBuYnl0ZXMgPSBXaWRlQ2hhclRvTXVsdGlCeXRlKGNwLCBXQ19DT01QT1NJVEVDSEVDSyB8IFdDX1NFUENIQVJTLA0KKwkJCQkgICAgICAgd2NzICsgaSwgMSwgY3MgKyBtYl9sZW4sIE1CX0NVUl9NQVgsDQorCQkJCSAgICAgICBOVUxMLCBOVUxMKTsNCisJICBtYl9sZW4gKz0gbmJ5dGVzOw0KKwl9DQorICAgICAgY3NbbWJfbGVuXSA9ICdcMCc7DQorICAgIH0NCisgIGxlbmxkc3RyID0gIF9fYXNjdG9lNjQoIGNzLCB4eC51cyk7DQorICBmcmVlIChjcyk7DQorICBpZiAod2NzZSkNCisgICAgKndjc2UgPSAod2NoYXJfdCopIHdjcyArIGxlbmxkc3RyOw0KKyAgcmV0dXJuIHh4LmxkOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21pc2Mvd2NzdG91bWF4LmMgYi9taW5ndy13NjQtY3J0L21pc2Mvd2NzdG91bWF4LmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmJhNjZmYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWlzYy93Y3N0b3VtYXguYwpAQCAtMCwwICsxLDExMyBAQAorLyoNCisgICAgVGhpcyBzb3VyY2UgY29kZSB3YXMgZXh0cmFjdGVkIGZyb20gdGhlIFE4IHBhY2thZ2UgY3JlYXRlZCBhbmQNCisgICAgcGxhY2VkIGluIHRoZSBQVUJMSUMgRE9NQUlOIGJ5IERvdWcgR3d5biA8Z3d5bkBhcmwubWlsPg0KKw0KKyAgICBsYXN0IGVkaXQ6CTE5OTkvMTEvMDUJZ3d5bkBhcmwubWlsDQorDQorCUltcGxlbWVudHMgc3ViY2xhdXNlIDcuOC4yIG9mIElTTy9JRUMgOTg5OToxOTk5IChFKS4NCisNCisJVGhpcyBwYXJ0aWN1bGFyIGltcGxlbWVudGF0aW9uIHJlcXVpcmVzIHRoZSBtYXRjaGluZyA8aW50dHlwZXMuaD4uDQorCUl0IGFsc28gYXNzdW1lcyB0aGF0IGNoYXJhY3RlciBjb2RlcyBmb3IgQS4uWiBhbmQgYS4ueiBhcmUgaW4NCisJY29udGlndW91cyBhc2NlbmRpbmcgb3JkZXI7IHRoaXMgaXMgdHJ1ZSBmb3IgQVNDSUkgYnV0IG5vdCBFQkNESUMuDQorKi8NCisNCisjaW5jbHVkZSA8d2NoYXIuaD4NCisjaW5jbHVkZSA8ZXJybm8uaD4NCisjaW5jbHVkZSA8Y3R5cGUuaD4NCisjaW5jbHVkZSA8aW50dHlwZXMuaD4NCisNCisvKiBjb252ZXJ0IGRpZ2l0IHdpZGUgY2hhcmFjdGVyIHRvIG51bWJlciwgaW4gYW55IGJhc2UgKi8NCisNCisjZGVmaW5lIFRvV051bWJlcihjKQkoaXN3ZGlnaXQoYykgPyAoYykgLSBMJzAnIDogXA0KKwkJCSBpc3d1cHBlcihjKSA/IChjKSAtIEwnQScgKyAxMCA6IFwNCisJCQkgaXN3bG93ZXIoYykgPyAoYykgLSBMJ2EnICsgMTAgOiBcDQorCQkJIC0xCQkvKiAiaW52YWxpZCIgZmxhZyAqLyBcDQorCQkJKQ0KKw0KKy8qIHZhbGlkYXRlIGNvbnZlcnRlZCBkaWdpdCBjaGFyYWN0ZXIgZm9yIHNwZWNpZmljIGJhc2UgKi8NCisjZGVmaW5lIHZhbGlkKG4sIGIpCSgobikgPj0gMCAmJiAobikgPCAoYikpDQorDQordWludG1heF90DQord2NzdG91bWF4KG5wdHIsIGVuZHB0ciwgYmFzZSkNCisJcmVnaXN0ZXIgY29uc3Qgd2NoYXJfdCAqIF9fcmVzdHJpY3RfXwlucHRyOw0KKwl3Y2hhcl90ICoqIF9fcmVzdHJpY3RfXwkJCQllbmRwdHI7DQorCXJlZ2lzdGVyIGludAkJCQkJYmFzZTsNCisJew0KKwlyZWdpc3RlciB1aW50bWF4X3QJYWNjdW07CS8qIGFjY3VtdWxhdGVzIGNvbnZlcnRlZCB2YWx1ZSAqLw0KKwlyZWdpc3RlciB1aW50bWF4X3QJbmV4dDsJLyogZm9yIGNvbXB1dGluZyBuZXh0IHZhbHVlIG9mIGFjY3VtICovDQorCXJlZ2lzdGVyIGludAkJbjsJLyogbnVtZXJhbCBmcm9tIGRpZ2l0IGNoYXJhY3RlciAqLw0KKwlpbnQJCQltaW51czsJLyogc2V0IGlmZiBtaW51cyBzaWduIHNlZW4gKHllcyEpICovDQorCWludAkJCXRvb2JpZzsJLyogc2V0IGlmZiB2YWx1ZSBvdmVyZmxvd3MgKi8NCisNCisJaWYgKCBlbmRwdHIgIT0gTlVMTCApDQorCQkqZW5kcHRyID0gKHdjaGFyX3QgKilucHRyOwkvKiBpbiBjYXNlIG5vIGNvbnYgcGVyZm9ybWVkICovDQorDQorCWlmICggYmFzZSA8IDAgfHwgYmFzZSA9PSAxIHx8IGJhc2UgPiAzNiApDQorCQl7DQorCQllcnJubyA9IEVET007DQorCQlyZXR1cm4gMDsJCS8qIHVuc3BlY2lmaWVkIGJlaGF2aW9yICovDQorCQl9DQorDQorCS8qIHNraXAgaW5pdGlhbCwgcG9zc2libHkgZW1wdHkgc2VxdWVuY2Ugb2Ygd2hpdGUtc3BhY2Ugdy5jaGFyYWN0ZXJzICovDQorDQorCXdoaWxlICggaXN3c3BhY2UoKm5wdHIpICkNCisJCSsrbnB0cjsNCisNCisJLyogcHJvY2VzcyBzdWJqZWN0IHNlcXVlbmNlOiAqLw0KKw0KKwkvKiBvcHRpb25hbCBzaWduICovDQorDQorCWlmICggKG1pbnVzID0gKm5wdHIgPT0gTCctJykgfHwgKm5wdHIgPT0gTCcrJyApDQorCQkrK25wdHI7DQorDQorCWlmICggYmFzZSA9PSAwICkNCisgICAgICAgIHsNCisJCWlmICggKm5wdHIgPT0gTCcwJyApDQorICAgICAgICAgICAgew0KKwkJCWlmICggbnB0clsxXSA9PSBMJ1gnIHx8IG5wdHJbMV0gPT0gTCd4JyApDQorCQkJCWJhc2UgPSAxNjsNCisJCQllbHNlDQorCQkJCWJhc2UgPSA4Ow0KKyAgICAgICAgICAgIH0NCisJCWVsc2UNCisJCQkJYmFzZSA9IDEwOw0KKyAgICAgICAgfQ0KKwkvKiBvcHRpb25hbCAiMHgiIG9yICIwWCIgZm9yIGJhc2UgMTYgKi8NCisNCisJaWYgKCBiYXNlID09IDE2ICYmICpucHRyID09IEwnMCcNCisJICAmJiAobnB0clsxXSA9PSBMJ1gnIHx8IG5wdHJbMV0gPT0gTCd4JykNCisJICAgKQ0KKwkJbnB0ciArPSAyOwkJLyogc2tpcCBwYXN0IHRoaXMgcHJlZml4ICovDQorDQorCS8qIGNoZWNrIHdoZXRoZXIgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHZhbGlkIGRpZ2l0ICovDQorDQorCW4gPSBUb1dOdW1iZXIoKm5wdHIpOw0KKwkrK25wdHI7DQorDQorCWlmICggIXZhbGlkKG4sIGJhc2UpICkNCisJCXJldHVybiAwOwkJLyogc3ViamVjdCBzZXEuIG5vdCBvZiBleHBlY3RlZCBmb3JtICovDQorDQorCWFjY3VtID0gbjsNCisNCisJZm9yICggdG9vYmlnID0gMDsgbiA9IFRvV051bWJlcigqbnB0ciksIHZhbGlkKG4sIGJhc2UpOyArK25wdHIgKQ0KKwkJaWYgKCBhY2N1bSA+IFVJTlRNQVhfTUFYIC8gYmFzZSArIDEJLyogbWFqb3Igd3JhcC1hcm91bmQgKi8NCisJCSAgfHwgKG5leHQgPSBiYXNlICogYWNjdW0gKyBuKSA8IGFjY3VtCS8qIG1pbm9yIHdyYXAtYXJvdW5kICovDQorCQkgICApDQorCQkJdG9vYmlnID0gMTsJLyogYnV0IGtlZXAgc2Nhbm5pbmcgKi8NCisJCWVsc2UNCisJCQlhY2N1bSA9IG5leHQ7DQorDQorCWlmICggZW5kcHRyICE9IE5VTEwgKQ0KKwkJKmVuZHB0ciA9ICh3Y2hhcl90ICopbnB0cjsJLyogLT4gZmlyc3Qgbm90LXZhbGlkLWRpZ2l0ICovDQorDQorCWlmICggdG9vYmlnICkNCisJCXsNCisJCWVycm5vID0gRVJBTkdFOw0KKwkJcmV0dXJuIFVJTlRNQVhfTUFYOw0KKwkJfQ0KKwllbHNlDQorCQlyZXR1cm4gbWludXMgPyAtYWNjdW0gOiBhY2N1bTsJLyogKHllcyEpICovDQorCX0NCisNCit1bnNpZ25lZCBsb25nIGxvbmcgX19hdHRyaWJ1dGVfXyAoKGFsaWFzICgid2NzdG91bWF4IikpKQ0KK3djc3RvdWxsIChjb25zdCB3Y2hhcl90KiBfX3Jlc3RyaWN0X18gbnB0ciwgd2NoYXJfdCAqKiBfX3Jlc3RyaWN0X18gZW5kcHRyLCBpbnQgYmFzZSk7DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9taXNjL3djdG9iLmMgYi9taW5ndy13NjQtY3J0L21pc2Mvd2N0b2IuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNmRjNWM3Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taXNjL3djdG9iLmMKQEAgLTAsMCArMSwyMSBAQAorI2luY2x1ZGUgIm1iX3djX2NvbW1vbi5oIg0KKyNpbmNsdWRlIDx3Y2hhci5oPg0KKyNpbmNsdWRlIDxzdGRpby5oPg0KKyNpbmNsdWRlIDxzdGRsaWIuaD4NCisjaW5jbHVkZSA8ZXJybm8uaD4NCisjZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4NCisjaW5jbHVkZSA8d2luZG93cy5oPg0KKw0KKy8qIFJldHVybiBqdXN0IHRoZSBmaXJzdCBieXRlIGFmdGVyIHRyYW5zbGF0aW5nIHRvIG11bHRpYnl0ZS4gICovDQoraW50IHdjdG9iICh3aW50X3Qgd2MgKQ0KK3sNCisgICAgd2NoYXJfdCB3ID0gd2M7DQorICAgIGNoYXIgYzsNCisgICAgaW50IGludmFsaWRfY2hhciA9IDA7DQorICAgIGlmICghV2lkZUNoYXJUb011bHRpQnl0ZSAoZ2V0X2NwX2Zyb21fbG9jYWxlKCksIA0KKwkJCSAgICAgIDAgLyogSXMgdGhpcyBjb3JyZWN0IGZsYWc/ICovLA0KKwkJCSAgICAgICZ3LCAxLCAmYywgMSwgTlVMTCwgJmludmFsaWRfY2hhcikNCisgICAgICAgICB8fCBpbnZhbGlkX2NoYXIpDQorICAgICAgcmV0dXJuIEVPRjsNCisgICAgcmV0dXJuIChpbnQpIGM7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWlzYy93Y3RyYW5zLmMgYi9taW5ndy13NjQtY3J0L21pc2Mvd2N0cmFucy5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEyZTMzZjEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21pc2Mvd2N0cmFucy5jCkBAIC0wLDAgKzEsNjAgQEAKKy8qDQorICAgd2N0cmFucy5jIA0KKyAgIDcuMjUuMy4yIEV4dGVuc2libGUgd2lkZS1jaGFyYWN0ZXIgY2FzZSBtYXBwaW5nIGZ1bmN0aW9ucw0KKw0KKyAgIENvbnRyaWJ1dGVkIGJ5OiBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlc3Iuc291cmNlZm9nZS5uZXQ+DQorICAgCQkgICAyMDA1LTAyLTI0DQorICAgDQorICBUaGlzIHNvdXJjZSBjb2RlIGlzIHBsYWNlZCBpbiB0aGUgUFVCTElDIERPTUFJTi4gSXQgaXMgbW9kaWZpZWQNCisgIGZyb20gdGhlIFE4IHBhY2thZ2UgY3JlYXRlZCBieSBEb3VnIEd3eW4gPGd3eW5AYXJsLm1pbD4gIA0KKw0KKyAqLw0KKw0KKyNpbmNsdWRlIDxzdHJpbmcuaD4NCisjaW5jbHVkZSA8d2N0eXBlLmg+DQorDQorLyoNCisgICBUaGlzIGRpZmZlcnMgZnJvbSB0aGUgTVMgaW1wbGVtZW50YXRpb24gb2Ygd2N0cmFucyB3aGljaA0KKyAgIHJldHVybnMgMCBmb3IgdG9sb3dlciBhbmQgMSBmb3IgdG91cHBlci4gIEFjY29yZGluZyB0bw0KKyAgIEM5OSwgYSAwIHJldHVybiB2YWx1ZSBpbmRpY2F0ZXMgaW52YWxpZCBpbnB1dC4NCisNCisgICBUaGVzZSB0d28gZnVuY3Rpb24gZ28gaW4gdGhlIHNhbWUgdHJhbnNsYXRpb24gdW5pdCBzbyB0aGF0IHdlDQorICAgY2FuIGVuc3VyZSB0aGF0DQorICAgICB0b3djdHJhbnMod2MsIHdjdHJhbnMoInRvbG93ZXIiKSkgPT0gdG93bG93ZXIod2MpIA0KKyAgICAgdG93Y3RyYW5zKHdjLCB3Y3RyYW5zKCJ0b3VwcGVyIikpID09IHRvd3VwcGVyKHdjKQ0KKyAgIEl0IGFsc28gZW5zdXJlcyB0aGF0DQorICAgICB0b3djdHJhbnMod2MsIHdjdHJhbnMoIiIpKSA9PSB3Yw0KKyAgIHdoaWNoIGlzIG5vdCByZXF1aXJlZCBieSBzdGFuZGFyZC4NCisqLw0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgew0KKyAgY29uc3QgY2hhciAqbmFtZTsNCisgIHdjdHJhbnNfdCB2YWw7IH0gdG1hcFtdID0gew0KKyAgICB7InRvbG93ZXIiLCBfTE9XRVJ9LA0KKyAgICB7InRvdXBwZXIiLCBfVVBQRVJ9DQorIH07DQorDQorI2RlZmluZQlOVE1BUAkoc2l6ZW9mIHRtYXAgLyBzaXplb2YgdG1hcFswXSkNCisNCit3Y3RyYW5zX3QNCit3Y3RyYW5zIChjb25zdCBjaGFyKiBwcm9wZXJ0eSkNCit7DQorICBpbnQgaTsNCisgIGZvciAoIGkgPSAwOyBpIDwgTlRNQVA7ICsraSApDQorICAgIGlmIChzdHJjbXAgKHByb3BlcnR5LCB0bWFwW2ldLm5hbWUpID09IDApDQorICAgICAgcmV0dXJuIHRtYXBbaV0udmFsOw0KKyAgIHJldHVybiAwOw0KK30NCisNCit3aW50X3QgdG93Y3RyYW5zICh3aW50X3Qgd2MsIHdjdHJhbnNfdCBkZXNjKQ0KK3sNCisgIHN3aXRjaCAoZGVzYykNCisgICAgew0KKyAgICBjYXNlIF9MT1dFUjoNCisgICAgICByZXR1cm4gdG93bG93ZXIgKHdjKTsNCisgICAgY2FzZSBfVVBQRVI6DQorICAgICAgcmV0dXJuIHRvd3VwcGVyICh3Yyk7DQorICAgIGRlZmF1bHQ6DQorICAgICAgcmV0dXJuIHdjOw0KKyAgIH0NCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9taXNjL3djdHlwZS5jIGIvbWluZ3ctdzY0LWNydC9taXNjL3djdHlwZS5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIwYmZmNjAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21pc2Mvd2N0eXBlLmMKQEAgLTAsMCArMSw2MCBAQAorLyoNCisgIHdjdHlwZS5jDQorICA3LjI1LjIuMi4yIFRoZSB3Y3R5cGUgZnVuY3Rpb24NCisNCisgIENvbnRyaWJ1dGVkIGJ5OiBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlc3Iuc291cmNlZm9nZS5uZXQ+DQorCQkgIDIwMDUtMDItMjQNCisgICANCisgIFRoaXMgc291cmNlIGNvZGUgaXMgcGxhY2VkIGluIHRoZSBQVUJMSUMgRE9NQUlOLiBJdCBpcyBtb2RpZmllZA0KKyAgZnJvbSB0aGUgUTggcGFja2FnZSBjcmVhdGVkIGJ5IERvdWcgR3d5biA8Z3d5bkBhcmwubWlsPiAgDQorDQorICBUaGUgd2N0eXBlIGZ1bmN0aW9uIGNvbnN0cnVjdHMgYSB2YWx1ZSB3aXRoIHR5cGUgd2N0eXBlX3QgdGhhdA0KKyAgZGVzY3JpYmVzIGEgY2xhc3Mgb2Ygd2lkZSBjaGFyYWN0ZXJzIGlkZW50aWZpZWQgYnkgdGhlIHN0cmluZw0KKyAgYXJndW1lbnQgcHJvcGVydHkuDQorDQorICBJbiBwYXJ0aWN1bGFyLCB3ZSBtYXAgdGhlIHByb3BlcnR5IHN0cmluZ3Mgc28gdGhhdDoNCisNCisgIGlzd2N0eXBlKHdjLCB3Y3R5cGUoImFsbnVtIikpID09IGlzd2FsbnVtKHdjKSANCisgIGlzd2N0eXBlKHdjLCB3Y3R5cGUoImFscGhhIikpID09IGlzd2FscGhhKHdjKQ0KKyAgaXN3Y3R5cGUod2MsIHdjdHlwZSgiY250cmwiKSkgPT0gaXN3Y250cmwod2MpDQorICBpc3djdHlwZSh3Yywgd2N0eXBlKCJkaWdpdCIpKSA9PSBpc3dkaWdpdCh3YykNCisgIGlzd2N0eXBlKHdjLCB3Y3R5cGUoImdyYXBoIikpID09IGlzd2dyYXBoKHdjKQ0KKyAgaXN3Y3R5cGUod2MsIHdjdHlwZSgibG93ZXIiKSkgPT0gaXN3bG93ZXIod2MpDQorICBpc3djdHlwZSh3Yywgd2N0eXBlKCJwcmludCIpKSA9PSBpc3dwcmludCh3YykNCisgIGlzd2N0eXBlKHdjLCB3Y3R5cGUoInB1bmN0IikpID09IGlzd3B1bmN0KHdjKQ0KKyAgaXN3Y3R5cGUod2MsIHdjdHlwZSgic3BhY2UiKSkgPT0gaXN3c3BhY2Uod2MpDQorICBpc3djdHlwZSh3Yywgd2N0eXBlKCJ1cHBlciIpKSA9PSBpc3d1cHBlcih3YykNCisgIGlzd2N0eXBlKHdjLCB3Y3R5cGUoInhkaWdpdCIpKSA9PSBpc3d4ZGlnaXQod2MpDQorDQorKi8NCisNCisjaW5jbHVkZQk8c3RyaW5nLmg+DQorI2luY2x1ZGUJPHdjdHlwZS5oPg0KKw0KKy8qIFVzaW5nIHRoZSBiaXQtT1InZCBjdHlwZSBjaGFyYWN0ZXIgY2xhc3NpZmljYXRpb24gZmxhZ3MgYXMgcmV0dXJuDQorICAgdmFsdWVzIGFjaGlldmVzIGNvbXBhdGliaWxpdHkgd2l0aCBNUyBpc3djdHlwZSgpLiAgKi8NCitzdGF0aWMgY29uc3Qgc3RydWN0IHsNCisgIGNvbnN0IGNoYXIgKm5hbWU7DQorICB3Y3R5cGVfdCBmbGFnczt9IGNtYXBbXSA9IHsNCisgICAgeyJhbG51bSIsIF9BTFBIQXxfRElHSVR9LA0KKyAgICB7ImFscGhhIiwgX0FMUEhBfSwNCisgICAgeyJjbnRybCIsIF9DT05UUk9MfSwNCisgICAgeyJkaWdpdCIsIF9ESUdJVH0sDQorICAgIHsiZ3JhcGgiLCBfUFVOQ1R8X0FMUEhBfF9ESUdJVH0sDQorICAgIHsibG93ZXIiLCBfTE9XRVJ9LA0KKyAgICB7InByaW50IiwgX0JMQU5LfF9QVU5DVHxfQUxQSEF8X0RJR0lUfSwNCisgICAgeyJwdW5jdCIsIF9QVU5DVH0sDQorICAgIHsic3BhY2UiLCBfU1BBQ0V9LA0KKyAgICB7InVwcGVyIiwgX1VQUEVSfSwNCisgICAgeyJ4ZGlnaXQiLCBfSEVYfQ0KKyAgfTsNCisNCisjZGVmaW5lIE5DTUFQCShzaXplb2YgY21hcCAvIHNpemVvZiBjbWFwWzBdKQ0KK3djdHlwZV90IHdjdHlwZSAoY29uc3QgY2hhciAqcHJvcGVydHkpDQorew0KKyAgaW50IGk7DQorICBmb3IgKGkgPSAwOyBpIDwgTkNNQVA7ICsraSkNCisgICAgaWYgKHN0cmNtcCAocHJvcGVydHksIGNtYXBbaV0ubmFtZSkgPT0gMCkNCisgICAgICByZXR1cm4gY21hcFtpXS5mbGFnczsNCisgIHJldHVybiAwOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21pc2Mvd21lbWNoci5jIGIvbWluZ3ctdzY0LWNydC9taXNjL3dtZW1jaHIuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NTc2N2E5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taXNjL3dtZW1jaHIuYwpAQCAtMCwwICsxLDE3IEBACisjaW5jbHVkZQk8d2NoYXIuaD4NCisNCisjaWYgMA0KK3djaGFyX3QgKndtZW1jaHIocywgYywgbikNCisJcmVnaXN0ZXIgY29uc3Qgd2NoYXJfdAkqczsNCisJcmVnaXN0ZXIgd2NoYXJfdAkJYzsNCisJcmVnaXN0ZXIgc2l6ZV90CQkJbjsNCisJew0KKwlpZiAoIHMgIT0gTlVMTCApDQorCQlmb3IgKCA7IG4gPiAwOyArK3MsIC0tbiApDQorCQkJaWYgKCAqcyA9PSBjICkNCisJCQkJcmV0dXJuICh3Y2hhcl90ICopczsNCisNCisJcmV0dXJuIE5VTEw7DQorCX0NCisNCisjZW5kaWYNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21pc2Mvd21lbWNtcC5jIGIvbWluZ3ctdzY0LWNydC9taXNjL3dtZW1jbXAuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MzNkODEzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taXNjL3dtZW1jbXAuYwpAQCAtMCwwICsxLDM0IEBACisvKglUaGlzIHNvdXJjZSBjb2RlIHdhcyBleHRyYWN0ZWQgZnJvbSB0aGUgUTggcGFja2FnZSBjcmVhdGVkIGFuZCBwbGFjZWQNCisgICAgaW4gdGhlIFBVQkxJQyBET01BSU4gYnkgRG91ZyBHd3luIDxnd3luQGFybC5taWw+DQorICAgIGxhc3QgZWRpdDoJMTk5OS8xMS8wNQlnd3luQGFybC5taWwNCisNCisgICAgSW1wbGVtZW50cyBzdWJjbGF1c2UgNy4yNCBvZiBJU08vSUVDIDk4OTk6MTk5OSAoRSkuDQorDQorCUl0IHN1cHBvcnRzIGFuIGVuY29kaW5nIHdoZXJlIGFsbCBjaGFyIGNvZGVzIGFyZSBtYXBwZWQNCisJdG8gdGhlICpzYW1lKiBjb2RlIHZhbHVlcyB3aXRoaW4gYSB3Y2hhcl90IG9yIHdpbnRfdCwNCisJc28gbG9uZyBhcyBubyBvdGhlciB3Y2hhcl90IGNvZGVzIGFyZSB1c2VkIGJ5IHRoZSBwcm9ncmFtLg0KKw0KKyovDQorDQorI2luY2x1ZGUJPHdjaGFyLmg+DQorDQorI2lmIDANCitpbnQNCit3bWVtY21wKHMxLCBzMiwgbikNCisJcmVnaXN0ZXIgY29uc3Qgd2NoYXJfdAkqczE7DQorCXJlZ2lzdGVyIGNvbnN0IHdjaGFyX3QJKnMyOw0KKwlzaXplX3QJCQkJbjsNCisJew0KKwlpZiAoIG4gPT0gMCB8fCBzMSA9PSBzMiApDQorCQlyZXR1cm4gMDsJCS8qIGV2ZW4gZm9yIE5VTEwgcG9pbnRlcnMgKi8NCisNCisJaWYgKCAoczEgIT0gTlVMTCkgIT0gKHMyICE9IE5VTEwpICkNCisJCXJldHVybiBzMiA9PSBOVUxMID8gMSA6IC0xOwkvKiByb2J1c3QgKi8NCisNCisJZm9yICggOyBuID4gMDsgKytzMSwgKytzMiwgLS1uICkNCisJCWlmICggKnMxICE9ICpzMiApDQorCQkJcmV0dXJuICpzMSAtICpzMjsNCisNCisJcmV0dXJuIDA7DQorCX0NCisjZW5kaWYNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21pc2Mvd21lbWNweS5jIGIvbWluZ3ctdzY0LWNydC9taXNjL3dtZW1jcHkuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMjdlODc4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taXNjL3dtZW1jcHkuYwpAQCAtMCwwICsxLDIyIEBACisjaW5jbHVkZQk8d2NoYXIuaD4NCisNCisNCisjaWYgMA0KK3djaGFyX3QgKg0KK3dtZW1jcHkoczEsIHMyLCBuKQ0KKwlyZWdpc3RlciB3Y2hhcl90ICogX19yZXN0cmljdF9fCQlzMTsNCisJcmVnaXN0ZXIgY29uc3Qgd2NoYXJfdCAqIF9fcmVzdHJpY3RfXwlzMjsNCisJcmVnaXN0ZXIgc2l6ZV90CQkJCQluOw0KKwl7DQorCXdjaGFyX3QJCQkJCQkqb3JpZ19zMSA9IHMxOw0KKw0KKwlpZiAoIHMxID09IE5VTEwgfHwgczIgPT0gTlVMTCB8fCBuID09IDAgKQ0KKwkJcmV0dXJuIG9yaWdfczE7CQkvKiByb2J1c3QgKi8NCisNCisJZm9yICggOyBuID4gMDsgLS1uICkNCisJCSpzMSsrID0gKnMyKys7DQorDQorCXJldHVybiBvcmlnX3MxOw0KKwl9DQorDQorI2VuZGlmDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9taXNjL3dtZW1tb3ZlLmMgYi9taW5ndy13NjQtY3J0L21pc2Mvd21lbW1vdmUuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NDYxODAyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9taXNjL3dtZW1tb3ZlLmMKQEAgLTAsMCArMSwzMyBAQAorI2luY2x1ZGUJPGVycm5vLmg+DQorI2luY2x1ZGUJPHN0ZGlvLmg+DQorI2luY2x1ZGUJPHN0ZGxpYi5oPg0KKyNpbmNsdWRlCTx3Y2hhci5oPg0KKw0KKyNpZiAwDQord2NoYXJfdCAqDQord21lbW1vdmUoczEsIHMyLCBuKQ0KKwlyZWdpc3RlciB3Y2hhcl90CQkqczE7DQorCXJlZ2lzdGVyIGNvbnN0IHdjaGFyX3QJKnMyOw0KKwlyZWdpc3RlciBzaXplX3QJCQluOw0KKwl7DQorCXdjaGFyX3QJCQkJKm9yaWdfczEgPSBzMTsNCisNCisJaWYgKCBzMSA9PSBOVUxMIHx8IHMyID09IE5VTEwgfHwgbiA9PSAwICkNCisJCXJldHVybiBvcmlnX3MxOwkJLyogcm9idXN0ICovDQorDQorCS8qIFhYWCAtLSBUaGUgZm9sbG93aW5nIHRlc3Qgd29ya3Mgb25seSB3aXRoaW4gYSBmbGF0IGFkZHJlc3Mgc3BhY2UhICovDQorCWlmICggczIgPj0gczEgKQ0KKwkJZm9yICggOyBuID4gMDsgLS1uICkNCisJCQkqczErKyA9ICpzMisrOw0KKwllbHNlCXsNCisJCXMxICs9IG47DQorCQlzMiArPSBuOw0KKw0KKwkJZm9yICggOyBuID4gMDsgLS1uICkNCisJCQkqLS1zMSA9ICotLXMyOw0KKwkJfQ0KKw0KKwlyZXR1cm4gb3JpZ19zMTsNCisJfQ0KKw0KKyNlbmRpZg0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvbWlzYy93bWVtc2V0LmMgYi9taW5ndy13NjQtY3J0L21pc2Mvd21lbXNldC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJmYTY5N2YKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21pc2Mvd21lbXNldC5jCkBAIC0wLDAgKzEsMTkgQEAKKyNpbmNsdWRlCTx3Y2hhci5oPg0KKw0KKyNpZiAwDQord2NoYXJfdCAqDQord21lbXNldChzLCBjLCBuKQ0KKwlyZWdpc3RlciB3Y2hhcl90CSpzOw0KKwlyZWdpc3RlciB3Y2hhcl90CWM7DQorCXJlZ2lzdGVyIHNpemVfdAkJbjsNCisJew0KKwl3Y2hhcl90CQkJKm9yaWdfcyA9IHM7DQorDQorCWlmICggcyAhPSBOVUxMICkNCisJCWZvciAoIDsgbiA+IDA7IC0tbiApDQorCQkJKnMrKyA9IGM7DQorDQorCXJldHVybiBvcmlnX3M7DQorCX0NCisNCisjZW5kaWYNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L21rbGlicy9DaGFuZ2VMb2cgYi9taW5ndy13NjQtY3J0L21rbGlicy9DaGFuZ2VMb2cKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzc0ZjQ1ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbWtsaWJzL0NoYW5nZUxvZwpAQCAtMCwwICsxLDE0IEBACisyMDA3LTA3LTI1ICBOaWdodFN0cmlrZSAgPG5pZ2h0c3RyaWtlQGdtYWlsLmNvbT4KKworCSogTWFrZWZpbGU6IFJlcGxhY2UgRVhFIGJ5IEVYRUVYVCBhcyBhdXRvY29uZiBkZWZpbmVzIGl0LgorCVJlcGxhY2UgIi91c3IvbG9jYWwiIGJ5ICQocHJlZml4KS4KKwlDb3JyZWN0IEVYVEFfSU5DTFVERS4KKworMjAwNy0wNy0xNSAgS2FpIFRpZXR6ICA8a2FpLnRpZXR6QG9uZXZpc2lvbi5jb20+CisKKwkqIENvbnRyaWJ1dGVkIGluaXRpYWwgY3J0IHNldC4KKworDAorTG9jYWwgVmFyaWFibGVzOgordmVyc2lvbi1jb250cm9sOiBuZXZlcgorRW5kOgpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9ta2xpYnMvTWFrZWZpbGUgYi9taW5ndy13NjQtY3J0L21rbGlicy9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iN2Q0NzA5Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9ta2xpYnMvTWFrZWZpbGUKQEAgLTAsMCArMSwyNTAgQEAKKyMgc3RhcnQgY29uZmlnIHNlY3Rpb24KKworU0hFTEwgPSAvYmluL2Jhc2gKKworc3JjZGlyID0gLi4vbGliCitWUEFUSCA9IC4uL2xpYgorCitTVUJESVJTIDo9IAorc3ViZGlycyA6PSAKKworaG9zdF9hbGlhcyA9IGk2ODYtcGMtY3lnd2luCitidWlsZF9hbGlhcyA9IGk2ODYtcGMtY3lnd2luCit0YXJnZXRfYWxpYXMgPSB4ODZfNjQtcGMtbWluZ3czMgorIyBwcmVmaXggPSAvdm9sL20KK3ByZWZpeCA9IC91c3IvbG9jYWwKK2luY2x1ZGVkaXI6PSR7cHJlZml4fS8ke3RhcmdldF9hbGlhc30vaW5jbHVkZQorRVhFRVhUID0uZXhlCisKK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBzLHgseCwKK2V4ZWNfcHJlZml4ID0gJHtwcmVmaXh9CitsaWJkaXI6PSR7ZXhlY19wcmVmaXh9L2xpYgorYmluZGlyID0gJHtleGVjX3ByZWZpeH0vYmluCitkYXRhZGlyID0gJHtwcmVmaXh9L3NoYXJlCitpbmZvZGlyID0gJHtwcmVmaXh9L2luZm8KK2luc3RfaW5jbHVkZWRpcjo9JChpbmNsdWRlZGlyKQoraW5zdF9saWJkaXI6PSQobGliZGlyKQorCitJTlNUQUxMID0gL3Vzci9iaW4vaW5zdGFsbCAtYworSU5TVEFMTF9EQVRBID0gJHtJTlNUQUxMfSAtbSA2NDQKK0lOU1RBTExfUFJPR1JBTSA9ICR7SU5TVEFMTH0KK21raW5zdGFsbGRpcnMgPSBta2RpciAtcAorCitDQyA9ICQocHJlZml4KS9iaW4veDg2XzY0LXBjLW1pbmd3MzItZ2NjJChFWEVFWFQpCitDQ19GT1JfVEFSR0VUID0gJChDQykKKworRExMVE9PTCA9ICQocHJlZml4KS9iaW4veDg2XzY0LXBjLW1pbmd3MzItZGxsdG9vbCQoRVhFRVhUKQorRExMVE9PTF9GTEFHUyA9IC0tYXM9JChBUykgLWsKK0FTID0gJChwcmVmaXgpL2Jpbi94ODZfNjQtcGMtbWluZ3czMi1hcyQoRVhFRVhUKQorQVNfRk9SX1RBUkdFVCA9ICQoQVNfRk9SX1RBUkdFVCkKK1dJTkRSRVMgPSAkKHByZWZpeCkvYmluL3g4Nl82NC1wYy1taW5ndzMyLXdpbmRyZXMkKEVYRUVYVCkKKworIyBEZXBlbmRpbmcgb24gaWYgd2UgYnVpbGQgYXMgcGFydCBvZiB3aW5zdXAgb3IgbWluZ3cgd2UgbmVlZCB0bworIyBhZGQgYWRkaXRpb25hbCBpbmNsdWRlIHBhdGhzIGluIG9yZGVyIHRvIGdldCB0aGUgY29ycmVjdCBoZWFkZXJzCisjIGZyb20gdGhlIEMgbGlicmFyeS4KK0JVSUxERU5WID0gCisKK2lmZXEgKCQoQlVJTERFTlYpLCBjeWd3aW4pCisjIHdpbnN1cC9pbmNsdWRlCisjIHdpbnN1cC8uLi9uZXdsaWIvbGliYy9pbmNsdWRlCisjIHdpbnN1cC8uLi9uZXdsaWIvbGliYy9zeXMvY3lnd2luCisjRVhUUkFfSU5DTFVERVMgPSAtSSQoc3JjZGlyKS8uLi8uLi9pbmNsdWRlIC1JJChzcmNkaXIpLy4uLy4uLy4uL25ld2xpYi9saWJjL2luY2x1ZGUgLUkkKHNyY2RpcikvLi4vLi4vLi4vbmV3bGliL2xpYmMvc3lzL2N5Z3dpbgorZW5kaWYKKyNpZmVxICgkKEJVSUxERU5WKSwgbWluZ3cpCitFWFRSQV9JTkNMVURFUyA9IC1JJChwcmVmaXgpL3g4Nl82NC1wYy1taW5ndzMyL2luY2x1ZGUKKyMgLUkkKHNyY2RpcikvLi4vLi4vbWluZ3cvaW5jbHVkZQorI2VuZGlmCisKK0lOQ0xVREVTID0gLUkkKHNyY2RpcikvLi4vaW5jbHVkZSAkKEVYVFJBX0lOQ0xVREVTKQorCitDRkxBR1MgPSAtTzIgLWcKK0FMTF9DRkxBR1MgPSAkKENGTEFHUykgJChJTkNMVURFUykKKworUkFOTElCID0gJChwcmVmaXgpL2Jpbi94ODZfNjQtcGMtbWluZ3czMi1yYW5saWIkKEVYRUVYVCkKK0FSID0gJChwcmVmaXgpL2Jpbi94ODZfNjQtcGMtbWluZ3czMi1hciQoRVhFRVhUKQorTEQgPSAkKHByZWZpeCkvYmluL3g4Nl82NC1wYy1taW5ndzMyLWxkJChFWEVFWFQpCisKK0ZMQUdTX1RPX1BBU1MgPSBcCisJQVM9IiQoQVMpIiBcCisJQ0M9IiQoQ0MpIiBcCisJQ1BQRkxBR1M9IiQoQ1BQRkxBR1MpIiBcCisJQ0ZMQUdTPSIkKENGTEFHUykiIFwKKwlDWFhGTEFHUz0iJChDWFhGTEFHUykiIFwKKwlBUj0iJChBUikiIFwKKwlSQU5MSUI9IiQoUkFOTElCKSIgXAorCUxEPSIkKExEKSIgXAorCURMTFRPT0w9IiQoRExMVE9PTCkiIFwKKwlUQVI9IiQoVEFSKSIgXAorCVRBUkZMQUdTPSIkKFRBUkZMQUdTKSIgXAorCVRBUkZJTEVFWFQ9IiQoVEFSRklMRUVYVCkiIFwKKwlXSU5EUkVTPSIkKFdJTkRSRVMpIgorCisjIGVuZCBjb25maWcgc2VjdGlvbgorCisjIGhlYWRlcnMKKworSEVBREVSUyA9ICQobm90ZGlyICQod2lsZGNhcmQgJChzcmNkaXIpLy4uL2luY2x1ZGUvKi5oKSkKK0dMX0hFQURFUlMgPSAkKG5vdGRpciAkKHdpbGRjYXJkICQoc3JjZGlyKS8uLi9pbmNsdWRlL0dMLyouaCkpCisKKyMgbGlicmFyaWVzCisKK0RFRl9GSUxFUyA9ICQobm90ZGlyICQod2lsZGNhcmQgJChzcmNkaXIpLyouZGVmKSkKK0lNUExJQlMgPSAkKGFkZHByZWZpeCBsaWIsJChzdWJzdCAuZGVmLC5hLCQoREVGX0ZJTEVTKSkpCitFWFRSQV9MSUJTPWxpYnV1aWQuYSBsaWJzY3Juc2F2ZS5hIGxpYnNjcm5zYXZ3LmEgbGlibGFyZ2VpbnQuYQorTElCUyA9ICQoSU1QTElCUykgJChFWFRSQV9MSUJTKQorVVVJRF9PQkpTID0gdXVpZC5vIG1zaHRtbC11dWlkLm8KK0VYVFJBX09CSlMgPSBzaGVsbDMyLm8gc2NybnNhdmUubyBzY3Juc2F2dy5vIGxhcmdlaW50Lm8gXAorCSQoVVVJRF9PQkpTKSBrZXJuZWwzMi5vCitVVUlEX1NPVVJDRVMgPSB1dWlkLmMgbXNodG1sLXV1aWQuYworU09VUkNFUyA9IHNjcm5zYXZlLmMgc2hlbGwzMi5jICBsYXJnZWludC5jICQoVVVJRF9TT1VSQ0VTKVwKK3Jlcy5yYyB0ZXN0LmMga2VybmVsMzIuYworCitESVNURklMRVMgPSAkKERFRl9GSUxFUykgJChTT1VSQ0VTKQorCisuTk9UUEFSQUxMRUw6CisKKyMgdGFyZ2V0cworYWxsOiAkKExJQlMpICQoRVhUUkFfT0JKUykKKworJS1zdWJkaXJzOgorCWZvciBpIGluICQoU1VCRElSUyk7IGRvIFwKKwkgICQoTUFLRSkgJChGTEFHU19UT19QQVNTKSAtQyAkJGkgJCo7IFwKKwlkb25lCisKK2RkazoKKwkkKE1BS0UpICQoRkxBR1NfVE9fUEFTUykgLUMgJEAKKworZGlyZWN0eDoKKwkkKE1BS0UpICQoRkxBR1NfVE9fUEFTUykgLUMgJEAKKworVEVTVF9PUFRJT05TID0gJChBTExfQ0ZMQUdTKSAtRFdJTlZFUj0weDA2NjYgIFwKKwktV2FsbCAtcGVkYW50aWMgLVdzeXN0ZW0taGVhZGVycyAtYyAkKHNyY2RpcikvdGVzdC5jIC1vIHRlc3QubworLlBIT05ZOiB0ZXN0IGRkayBkaXJlY3R4Cit0ZXN0OgorCUBlY2hvICJUZXN0aW5nIHczMmFwaS4uLiIKKwlAZm9yIGxhbmcgaW4gYyBjKysgb2JqZWN0aXZlLWMgOyBkbyBcCisJCWVjaG8gIiQkbGFuZy4uLiI7IFwKKwkJJChDQykgLXgkJGxhbmcgJChURVNUX09QVElPTlMpIDsgXAorCQllY2hvICIkJGxhbmcgVU5JQ09ERS4uLiI7IFwKKwkJJChDQykgLXgkJGxhbmcgLURVTklDT0RFICQoVEVTVF9PUFRJT05TKSA7IFwKKwlkb25lCisJQGVjaG8gIndpbmRyZXMuLi4iCisJQCQoV0lORFJFUykgLS1pbmNsdWRlLWRpciAkKElOQ0RJUikgLWkgJChzcmNkaXIpL3Jlcy5yYyAtbyB0ZXN0Lm8KKwlAZWNobyAid2luZHJlcyBVTklDT0RFLi4uIgorCUAkKFdJTkRSRVMpIC0tZGVmaW5lIFVOSUNPREUgLS1pbmNsdWRlLWRpciAkKElOQ0RJUikgLWkgJChzcmNkaXIpL3Jlcy5yYyAtbyB0ZXN0Lm8KKwlAcm0gLWYgdGVzdC5vCisKK3Njcm5zYXZ3Lm86IHNjcm5zYXZlLmMKKwkkKENDKSAtYyAkKEFMTF9DRkxBR1MpIC1EVU5JQ09ERSAtbyAkQCAkPAorCisjIG1ha2UgcnVsZXMKKworLlNVRkZJWEVTOiAuYyAubyAuZGVmIC5hCisKKy5jLm86CisJJChDQykgLWMgJChBTExfQ0ZMQUdTKSAtbyAkQCAkPAorCitsaWJ1dWlkLmEgOiAkKFVVSURfT0JKUykKKwkkKEFSKSByYyAkQCAkKFVVSURfT0JKUykKKwkkKFJBTkxJQikgJEAKKworIyBsaWJ2ZnczMi5hIGNvbnRhaW5zIGltcG9ydCBzdHVicyBmb3IgMyBkbGwncy4gIFVzaW5nIGFuIE1SSSBzY3JpcHQKKyMgc2VlbXMgdG8gYmUgdGhlIHNpbXBsZXN0IHdheSB0byBjb21iaW5lIHRoZW0gaW50byBvbmUgYXJjaGl2ZS4KKyMgTkI6IFdpdGggb2xkZXIgZGxsdG9vbCwgdGhlIG9iamVjdCBmaWxlIG1lbWJlcnMgd2lsbCBub3QgaGF2ZSB1bmlxdWUKKyMgbmFtZXMuCitsaWJ2ZnczMi5hIDogdmZ3MzIubXJpIGxpYm1zdmZ3MzIuYSBsaWJhdmlmaWwzMi5hIGxpYmF2aWNhcDMyLmEKKwlybSAtZiAkQAorCSQoQVIpIC1NIDwgJHt3b3JkIDEsJF59CisJJChSQU5MSUIpICRACisKK2xpYiUuYSA6ICUuZGVmICUubworCSQoRExMVE9PTCkgJChETExUT09MX0ZMQUdTKSAtLW91dHB1dC1saWIgJEAgLS1kZWYgJChzcmNkaXIpLyQqLmRlZgorCSQoQVIpIHIgJEAgJCoubworCSQoUkFOTElCKSAkQAorCitsaWIlLmE6ICUuZGVmCisJJChETExUT09MKSAkKERMTFRPT0xfRkxBR1MpIC0tb3V0cHV0LWxpYiAkQCAtLWRlZiAkPAorCitsaWIlLmE6ICUubworCSQoQVIpIHJjICRAICQqLm8KKwkkKFJBTkxJQikgJEAKKworLlBIT05ZOiBpbnN0YWxsIGluc3RhbGwtbGlicmFyaWVzIGluc3RhbGwtaGVhZGVycyBpbnN0YWxsLWRkaworIyBpbnN0YWxsIGhlYWRlcnMgYW5kIGxpYnJhcmllcyBpbiBhIHRhcmdldCBzcGVjaWZpZWQgZGlyZWN0b3J5LgoraW5zdGFsbDogaW5zdGFsbC1saWJyYXJpZXMgaW5zdGFsbC1oZWFkZXJzIGluc3RhbGwtZGRrIGluc3RhbGwtZGlyZWN0eAorCitpbnN0YWxsLWxpYnJhcmllczogYWxsCisJJChta2luc3RhbGxkaXJzKSAkKGluc3RfbGliZGlyKQorCWZvciBpIGluICQoTElCUyk7IGRvIFwKKwkJJChJTlNUQUxMX0RBVEEpICQkaSAkKGluc3RfbGliZGlyKS8kJGkgOyBcCisJZG9uZQorCitpbnN0YWxsLWhlYWRlcnM6CisJJChta2luc3RhbGxkaXJzKSAkKGluc3RfaW5jbHVkZWRpcikKKwlmb3IgaSBpbiAkKEhFQURFUlMpOyBkbyBcCisJCSQoSU5TVEFMTF9EQVRBKSAkKHNyY2RpcikvLi4vaW5jbHVkZS8kJGkgJChpbnN0X2luY2x1ZGVkaXIpLyQkaSA7IFwKKwlkb25lCisJJChta2luc3RhbGxkaXJzKSAkKGluc3RfaW5jbHVkZWRpcikvR0wKKwlmb3IgaSBpbiAkKEdMX0hFQURFUlMpOyBkbyBcCisJCSQoSU5TVEFMTF9EQVRBKSAkKHNyY2RpcikvLi4vaW5jbHVkZS9HTC8kJGkgJChpbnN0X2luY2x1ZGVkaXIpL0dMLyQkaSA7IFwKKwlkb25lCisKK2luc3RhbGwtZGRrOiBpbnN0YWxsLWxpYnJhcmllcyBpbnN0YWxsLWhlYWRlcnMKKwljZCBkZGsgJiYgJChNQUtFKSBpbnN0YWxsICQoRkxBR1NfVE9fUEFTUykKKworaW5zdGFsbC1kaXJlY3R4OiBpbnN0YWxsLWxpYnJhcmllcyBpbnN0YWxsLWhlYWRlcnMKKwljZCBkaXJlY3R4ICYmICQoTUFLRSkgaW5zdGFsbCAkKEZMQUdTX1RPX1BBU1MpCisKKyMgdW5pbnN0YWxsIGhlYWRlcnMgYW5kIGxpYnJhcmllcyBmcm9tIGEgdGFyZ2V0IHNwZWNpZmllZCBkaXJlY3RvcnkKK3VuaW5zdGFsbDogdW5pbnN0YWxsLWRkayB1bmluc3RhbGwtZGlyZWN0eCB1bmluc3RhbGwtbGlicmFyaWVzIHVuaW5zdGFsbC1oZWFkZXJzCisKK3VuaW5zdGFsbC1saWJyYXJpZXM6CisJQGZvciBpIGluICQoTElCUyk7IGRvIFwKKwkJcm0gLWYgJChpbnN0X2xpYmRpcikvJCRpIDsgXAorCWRvbmUKKwlybWRpciAkKGluc3RfbGliZGlyKQorCit1bmluc3RhbGwtaGVhZGVyczoKKwlAZm9yIGkgaW4gJChIRUFERVJTKTsgZG8gXAorCQlybSAtciAkKGluc3RfaW5jbHVkZWRpcikvJCRpIDsgXAorCWRvbmUKKwlybWRpciAkKGluc3RfaW5jbHVkZWRpcikKKwordW5pbnN0YWxsLWRkazoKKwljZCBkZGsgJiYgJChNQUtFKSAtQyB1bmluc3RhbGwgJChGTEFHU19UT19QQVNTKQorCit1bmluc3RhbGwtZGlyZWN0eDoKKwljZCBkaXJlY3R4ICYmICQoTUFLRSkgLUMgdW5pbnN0YWxsICQoRkxBR1NfVE9fUEFTUykKKworZGlzdDoKKwlta2RpciAkKGRpc3RkaXIpL2luY2x1ZGUKKwljaG1vZCA3NTUgJChkaXN0ZGlyKS9pbmNsdWRlCisJQGZvciBpIGluICQoSEVBREVSUyk7IGRvIFwKKwkJY3AgLXAgJChzcmNkaXIpLy4uL2luY2x1ZGUvJCRpICQoZGlzdGRpcikvaW5jbHVkZS8kJGkgOyBcCisJZG9uZQorCW1rZGlyICQoZGlzdGRpcikvaW5jbHVkZS9HTAorCUBmb3IgaSBpbiAkKEdMX0hFQURFUlMpOyBkbyBcCisJCWNwIC1wICQoc3JjZGlyKS8uLi9pbmNsdWRlL0dMLyQkaSAkKGRpc3RkaXIpL2luY2x1ZGUvR0wvJCRpIDsgXAorCWRvbmUKKwlta2RpciAkKGRpc3RkaXIpL2xpYgorCWNobW9kIDc1NSAkKGRpc3RkaXIpL2xpYgorCUBmb3IgaSBpbiAkKERJU1RGSUxFUyk7IGRvIFwKKwkJY3AgLXAgJChzcmNkaXIpLyQkaSAkKGRpc3RkaXIpL2xpYi8kJGkgOyBcCisJZG9uZQorCWZvciBpIGluICQoU1VCRElSUyk7IGRvIFwKKwkJKGNkICQkaTsgJChNQUtFKSBkaXN0ZGlyPS4uLyQoZGlzdGRpcikgZGlzdCk7IFwKKwlkb25lCisKKyMgY2xlYW4KKworbW9zdGx5Y2xlYW46CisJcm0gLWYgKn4gKi5vICoucworCitjbGVhbjoKKwlybSAtZiAqLm8gKi5hICoucyAqfgorCitkaXN0Y2xlYW46IGNsZWFuCisJcm0gLWYgY29uZmlnLmNhY2hlIGNvbmZpZy5zdGF0dXMgY29uZmlnLmxvZyBNYWtlZmlsZQorCittYWludGFpbmVyLWNsZWFuOiBkaXN0Y2xlYW4KKwpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tb2xkbmFtZS1tc3ZjcnQuZGVmIGIvbWluZ3ctdzY0LWNydC9tb2xkbmFtZS1tc3ZjcnQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZkMGI4OTgKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21vbGRuYW1lLW1zdmNydC5kZWYKQEAgLTAsMCArMSwxNTQgQEAKKworCis7Cis7IG1vbGRuYW1lLW1zdmNydC5kZWYKKzsKKzsgRXhwb3J0cyBmcm9tIHRoZSBydW50aW1lIGV4Y2VwdCB0aGF0IHRoZXNlIGV4cG9ydHMgYXJlIGFjdHVhbGx5IHByZWNlZWRlZAorOyBieSBhIHVuZGVyc2NvcmUgaW4gdGhlIGFjdHVhbCBETEwuIFRoZXNlIGNvcnJlc3BvbmQgdG8gZnVuY3Rpb25zIHdoaWNoCis7IGFyZSBub24tQU5TSSBhbmQgd2VyZSBwcmVmaXhlZCB3aXRoIGFuIHVuZGVyc2NvcmUgdG8gYXZvaWQgbmFtZSBzcGFjZQorOyBjbHV0dGVyLiBIb3dldmVyIG1hbnksIGluIGZhY3QgbW9zdCBwcm9ncmFtcyBzdGlsbCB1c2UgYSBmZXcgb2YgdGhlc2UKKzsgZnVuY3Rpb25zIHdpdGhvdXQgdGhlIHVuZGVyc2NvcmUuIFRoaXMgLmRlZiBmaWxlIGlzIHNwZWNpYWxseSBwcm9jZXNzZWQKKzsgdG8gbWFrZSB0aG9zZSBub24tdW5kZXJzY29yZWQgbmFtZSBmdW5jdGlvbiBjYWxscyBjYWxsIHRoZSBlcXVpdmFsZW50Cis7IHVuZGVyc2NvcmVkIGZ1bmN0aW9ucy4KKzsKKzsgQ29udHJpYnV0b3JzOgorOyBDcmVhdGVkIGJ5IENvbGluIFBldGVycyA8Y29saW5AYmlyZC5mdS5pcy5zYWdhLXUuYWMuanA+Cis7IE1haW50YWluZWQgYnkgTXVtaXQgS2hhbiA8a2hhbkB4cmF5bGl0aC53aXNjLmVkdT4KKzsKKzsgVEhJUyBTT0ZUV0FSRSBJUyBOT1QgQ09QWVJJR0hURUQKKzsKKzsgVGhpcyBzb3VyY2UgY29kZSBpcyBvZmZlcmVkIGZvciB1c2UgaW4gdGhlIHB1YmxpYyBkb21haW4uIFlvdSBtYXkKKzsgdXNlLCBtb2RpZnkgb3IgZGlzdHJpYnV0ZSBpdCBmcmVlbHkuCis7Cis7IFRoaXMgY29kZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsIGJ1dAorOyBXSVRIT1VUIEFOWSBXQVJSQU5UWS4gQUxMIFdBUlJFTlRJRVMsIEVYUFJFU1MgT1IgSU1QTElFRCBBUkUgSEVSRUJZCis7IERJU0NMQU1FRC4gVGhpcyBpbmNsdWRlcyBidXQgaXMgbm90IGxpbWl0ZWQgdG8gd2FycmVudGllcyBvZgorOyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCis7CitFWFBPUlRTCithY2Nlc3MKK2NoZGlyCitjaG1vZAorY2hzaXplCitjbG9zZQorY3JlYXQKK2N3YWl0CisKK2RheWxpZ2h0IERBVEEKKworZHVwCitkdXAyCitlY3Z0Citlb2YKK2V4ZWNsCitleGVjbGUKK2V4ZWNscAorZXhlY2xwZQorZXhlY3YKK2V4ZWN2ZQorZXhlY3ZwCitleGVjdnBlCitmY3Z0CitmZG9wZW4KK2ZnZXRjaGFyCitmZ2V0d2NoYXIKK2ZpbGVsZW5ndGgKK2ZpbGVubworOyBBbGlhcyBmcHJlc2V0IGlzIHNldCBpbiBDUlRfZnAxMCxjIGFuZCBDUlRfZnA4LmMuCis7IGZwcmVzZXQKK2ZwdXRjaGFyCitmcHV0d2NoYXIKK2ZzdGF0CitmdGltZQorZ2N2dAorZ2V0Y2gKK2dldGNoZQorZ2V0Y3dkCitnZXRwaWQKK2dldHcKK2hlYXB3YWxrCitpc2F0dHkKK2l0b2EKK2tiaGl0CitsZmluZAorbHNlYXJjaAorbHNlZWsKK2x0b2EKK21lbWNjcHkKK21lbWljbXAKK21rZGlyCitta3RlbXAKK29wZW4KK3BjbG9zZQorcG9wZW4KK3B1dGNoCitwdXRlbnYKK3B1dHcKK3JlYWQKK3JtZGlyCitybXRtcAorc2VhcmNoZW52CitzZXRtb2RlCitzb3Blbgorc3Bhd25sCitzcGF3bmxlCitzcGF3bmxwCitzcGF3bmxwZQorc3Bhd252CitzcGF3bnZlCitzcGF3bnZwCitzcGF3bnZwZQorc3RhdAorc3RyY21waQorc3RyZHVwCitzdHJpY21wCitzdHJpY29sbAorc3RybHdyCitzdHJuaWNtcAorc3RybnNldAorc3RycmV2CitzdHJzZXQKK3N0cnVwcgorc3dhYgordGVsbAordGVtcG5hbQordnNucHJpbnRmCisKK3RpbWV6b25lIERBVEEKKworOyBleHBvcnQgdHpuYW1lIGZvciBib3RoLiBTZWUgPHRpbWUuaD4KK3R6bmFtZSBEQVRBCit0enNldAordW1hc2sKK3VuZ2V0Y2gKK3VubGluawordXRpbWUKK3djc2R1cAord2NzaWNtcAord2NzaWNvbGwKK3djc2x3cgord2NzbmljbXAKK3djc25zZXQKK3djc3Jldgord2Nzc2V0Cit3Y3N1cHIKKword3BvcGVuCisKK3dyaXRlCis7IG5vbi1BTlNJIGZ1bmN0aW9ucyBkZWNsYXJlZCBpbiBtYXRoLmgKK2owCitqMQoram4KK3kwCit5MQoreW4KK2NoZ3NpZ24KK3NjYWxiCitmaW5pdGUKK2ZwY2xhc3MKKzsgQzk5IGZ1bmN0aW9ucworY2FicworaHlwb3QKK2xvZ2IKK25leHRhZnRlcgpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tc3ZjcjgwLmRlZiBiL21pbmd3LXc2NC1jcnQvbXN2Y3I4MC5kZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWZlYmRkZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvbXN2Y3I4MC5kZWYKQEAgLTAsMCArMSw4NDQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXN2Y3J0LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorRVhQT1JUUw0KKyRJMTBfT1VUUFVUDQorOyBwdWJsaWM6IF9fY2RlY2wgX19ub25fcnR0aV9vYmplY3Q6Ol9fbm9uX3J0dGlfb2JqZWN0KGNsYXNzIF9fbm9uX3J0dGlfb2JqZWN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKzsgR0NDID0gX19aTjE3X19ub25fcnR0aV9vYmplY3RDMkVSS1NfDQorPz8wX19ub25fcnR0aV9vYmplY3RAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBfX25vbl9ydHRpX29iamVjdDo6X19ub25fcnR0aV9vYmplY3QoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis7IEdDQyA9IF9fWk4xN19fbm9uX3J0dGlfb2JqZWN0QzFFUktTXw0KKz8/MF9fbm9uX3J0dGlfb2JqZWN0QEBRRUFBQFBFQkRAWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBiYWRfY2FzdDo6YmFkX2Nhc3QoY2hhciBjb25zdCAqIF9fcHRyNjQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wYmFkX2Nhc3RAQEFFQUFAUEVCUUVCREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgYmFkX2Nhc3Q6OmJhZF9jYXN0KGNoYXIgY29uc3QgKiBfX3B0cjY0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MGJhZF9jYXN0QEBRRUFBQEFFQlFFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIGJhZF9jYXN0OjpiYWRfY2FzdChjbGFzcyBiYWRfY2FzdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBiYWRfY2FzdEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIGJhZF9jYXN0OjpiYWRfY2FzdChjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MGJhZF9jYXN0QEBRRUFBQFBFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIGJhZF90eXBlaWQ6OmJhZF90eXBlaWQoY2xhc3MgYmFkX3R5cGVpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBiYWRfdHlwZWlkQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgYmFkX3R5cGVpZDo6YmFkX3R5cGVpZChjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MGJhZF90eXBlaWRAQFFFQUFAUEVCREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgZXhjZXB0aW9uOjpleGNlcHRpb24oY2hhciBjb25zdCAqIF9fcHRyNjQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wZXhjZXB0aW9uQEBRRUFBQEFFQlFFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIGV4Y2VwdGlvbjo6ZXhjZXB0aW9uKGNoYXIgY29uc3QgKiBfX3B0cjY0IGNvbnN0ICYgX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBleGNlcHRpb25AQFFFQUFAQUVCUUVCREhAWg0KKzsgcHVibGljOiBfX2NkZWNsIGV4Y2VwdGlvbjo6ZXhjZXB0aW9uKGNsYXNzIGV4Y2VwdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBleGNlcHRpb25AQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBleGNlcHRpb246OmV4Y2VwdGlvbih2b2lkKSBfX3B0cjY0DQorPz8wZXhjZXB0aW9uQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBfX25vbl9ydHRpX29iamVjdDo6fl9fbm9uX3J0dGlfb2JqZWN0KHZvaWQpIF9fcHRyNjQNCis/PzFfX25vbl9ydHRpX29iamVjdEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgYmFkX2Nhc3Q6On5iYWRfY2FzdCh2b2lkKSBfX3B0cjY0DQorPz8xYmFkX2Nhc3RAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIGJhZF90eXBlaWQ6On5iYWRfdHlwZWlkKHZvaWQpIF9fcHRyNjQNCis/PzFiYWRfdHlwZWlkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBleGNlcHRpb246On5leGNlcHRpb24odm9pZCkgX19wdHI2NA0KKz8/MWV4Y2VwdGlvbkBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgdHlwZV9pbmZvOjp+dHlwZV9pbmZvKHZvaWQpIF9fcHRyNjQNCis/PzF0eXBlX2luZm9AQFVFQUFAWFoNCis7IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgb3BlcmF0b3IgbmV3KHVuc2lnbmVkIF9faW50NjQpDQorOyBHQ0MgPSBfX1pud3kNCis/PzJAWUFQRUFYX0tAWg0KKzsgdm9pZCBfX2NkZWNsIG9wZXJhdG9yIGRlbGV0ZSh2b2lkICogX19wdHI2NCkNCis7IEdDQyA9IF9fWmRsUHYNCis/PzNAWUFYUEVBWEBaDQorOyBwdWJsaWM6IGNsYXNzIF9fbm9uX3J0dGlfb2JqZWN0ICYgX19wdHI2NCBfX2NkZWNsIF9fbm9uX3J0dGlfb2JqZWN0OjpvcGVyYXRvcj0oY2xhc3MgX19ub25fcnR0aV9vYmplY3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80X19ub25fcnR0aV9vYmplY3RAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBiYWRfY2FzdCAmIF9fcHRyNjQgX19jZGVjbCBiYWRfY2FzdDo6b3BlcmF0b3I9KGNsYXNzIGJhZF9jYXN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NGJhZF9jYXN0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgYmFkX3R5cGVpZCAmIF9fcHRyNjQgX19jZGVjbCBiYWRfdHlwZWlkOjpvcGVyYXRvcj0oY2xhc3MgYmFkX3R5cGVpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRiYWRfdHlwZWlkQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgZXhjZXB0aW9uICYgX19wdHI2NCBfX2NkZWNsIGV4Y2VwdGlvbjo6b3BlcmF0b3I9KGNsYXNzIGV4Y2VwdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRleGNlcHRpb25AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCB0eXBlX2luZm86Om9wZXJhdG9yPT0oY2xhc3MgdHlwZV9pbmZvIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OHR5cGVfaW5mb0BAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCB0eXBlX2luZm86Om9wZXJhdG9yIT0oY2xhc3MgdHlwZV9pbmZvIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OXR5cGVfaW5mb0BAUUVCQUhBRUJWMEBAWg0KKzsgY29uc3QgIF9fbm9uX3J0dGlfb2JqZWN0OjpgdmZ0YWJsZScNCis/P183X19ub25fcnR0aV9vYmplY3RAQDZCQA0KKzsgY29uc3QgIGJhZF9jYXN0OjpgdmZ0YWJsZScNCis/P183YmFkX2Nhc3RAQDZCQA0KKzsgY29uc3QgIGJhZF90eXBlaWQ6OmB2ZnRhYmxlJw0KKz8/XzdiYWRfdHlwZWlkQEA2QkANCis7IGNvbnN0ICBleGNlcHRpb246OmB2ZnRhYmxlJw0KKz8/XzdleGNlcHRpb25AQDZCQA0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgYmFkX2Nhc3Q6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GYmFkX2Nhc3RAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGJhZF90eXBlaWQ6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GYmFkX3R5cGVpZEBAUUVBQVhYWg0KKzsgdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBvcGVyYXRvciBuZXdbXSh1bnNpZ25lZCBfX2ludDY0KQ0KKzsgR05VID0gX19abmF5DQorPz9fVUBZQVBFQVhfS0BaDQorOyB2b2lkIF9fY2RlY2wgb3BlcmF0b3IgZGVsZXRlW10odm9pZCAqIF9fcHRyNjQpDQorOyBHTlUgPSBfX1pkYVB2DQorPz9fVkBZQVhQRUFYQFoNCitfX3VuY2F1Z2h0X2V4Y2VwdGlvbg0KKzsgaW50IChfX2NkZWNsKl9fY2RlY2wgX3F1ZXJ5X25ld19oYW5kbGVyKHZvaWQpKSh1bnNpZ25lZCBfX2ludDY0KQ0KKzsgR05VID0gX19aMThfcXVlcnlfbmV3X2hhbmRsZXJ2DQorP19xdWVyeV9uZXdfaGFuZGxlckBAWUFQNkFIX0tAWlhaDQorOyBpbnQgX19jZGVjbCBfcXVlcnlfbmV3X21vZGUodm9pZCkNCis7IEdOVSA9IF9fWjE1X3F1ZXJ5X25ld19tb2Rldg0KKz9fcXVlcnlfbmV3X21vZGVAQFlBSFhaDQorOyBpbnQgKF9fY2RlY2wqX19jZGVjbCBfc2V0X25ld19oYW5kbGVyKGludCAoX19jZGVjbCopKHVuc2lnbmVkIF9faW50NjQpKSkodW5zaWduZWQgX19pbnQ2NCkNCis7IEdOVSA9IF9fWjE2X3NldF9uZXdfaGFuZGxlclBGaXlFDQorP19zZXRfbmV3X2hhbmRsZXJAQFlBUDZBSF9LQFpQNkFIMEBaQFoNCis7IGludCBfX2NkZWNsIF9zZXRfbmV3X21vZGUoaW50KQ0KKzsgR05VID0gX19aMTNfc2V0X25ld19tb2RlaQ0KKz9fc2V0X25ld19tb2RlQEBZQUhIQFoNCis7IHZvaWQgKF9fY2RlY2wqX19jZGVjbCBfc2V0X3NlX3RyYW5zbGF0b3Iodm9pZCAoX19jZGVjbCopKHVuc2lnbmVkIGludCxzdHJ1Y3QgX0VYQ0VQVElPTl9QT0lOVEVSUyAqIF9fcHRyNjQpKSkodW5zaWduZWQgaW50LHN0cnVjdCBfRVhDRVBUSU9OX1BPSU5URVJTICogX19wdHI2NCkNCis7IEdOVSA9IF9fWjE4X3NldF9zZV90cmFuc2xhdG9yUEZ2alAxOV9FWENFUFRJT05fUE9JTlRFUlNFDQorP19zZXRfc2VfdHJhbnNsYXRvckBAWUFQNkFYSVBFQVVfRVhDRVBUSU9OX1BPSU5URVJTQEBAWlA2QVhJMEBaQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgdHlwZV9pbmZvOjpiZWZvcmUoY2xhc3MgdHlwZV9pbmZvIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9iZWZvcmVAdHlwZV9pbmZvQEBRRUJBSEFFQlYxQEBaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgdHlwZV9pbmZvOjpuYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/bmFtZUB0eXBlX2luZm9AQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCB0eXBlX2luZm86OnJhd19uYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmF3X25hbWVAdHlwZV9pbmZvQEBRRUJBUEVCRFhaDQorOyB2b2lkIChfX2NkZWNsKl9fY2RlY2wgc2V0X25ld19oYW5kbGVyKHZvaWQgKF9fY2RlY2wqKSh2b2lkKSkpKHZvaWQpDQorOyBHTlUgPSBfX1oxNXNldF9uZXdfaGFuZGxlclBGdnZFDQorP3NldF9uZXdfaGFuZGxlckBAWUFQNkFYWFpQNkFYWFpAWg0KKzsgdm9pZCAoX19jZGVjbCpfX2NkZWNsIHNldF90ZXJtaW5hdGUodm9pZCAoX19jZGVjbCopKHZvaWQpKSkodm9pZCkNCis7IEdOVSA9IF9fWjEzc2V0X3Rlcm1pbmF0ZVBGdnZFDQorP3NldF90ZXJtaW5hdGVAQFlBUDZBWFhaUDZBWFhaQFoNCis7IHZvaWQgKF9fY2RlY2wqX19jZGVjbCBzZXRfdW5leHBlY3RlZCh2b2lkIChfX2NkZWNsKikodm9pZCkpKSh2b2lkKQ0KKzsgR05VID0gX19aMTRzZXRfdW5leHBlY3RlZFBGdnZFDQorP3NldF91bmV4cGVjdGVkQEBZQVA2QVhYWlA2QVhYWkBaDQorOyB2b2lkIF9fY2RlY2wgdGVybWluYXRlKHZvaWQpDQorOyBHTlUgPSBfX1o5dGVybWluYXRldg0KKz90ZXJtaW5hdGVAQFlBWFhaDQorOyB2b2lkIF9fY2RlY2wgdW5leHBlY3RlZCh2b2lkKQ0KKzsgR05VID0gX19aMTB1bmV4cGVjdGVkdg0KKz91bmV4cGVjdGVkQEBZQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgZXhjZXB0aW9uOjp3aGF0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/d2hhdEBleGNlcHRpb25AQFVFQkFQRUJEWFoNCitfQ3h4VGhyb3dFeGNlcHRpb24NCitfR2V0ZGF5cw0KK19HZXRtb250aHMNCitfR2V0dG5hbWVzDQorX0hVR0UgREFUQQ0KK19TdHJmdGltZQ0KK19YY3B0RmlsdGVyDQorX19DX3NwZWNpZmljX2hhbmRsZXINCitfX0NwcFhjcHRGaWx0ZXINCitfX0N4eEZyYW1lSGFuZGxlcg0KK19fRGVzdHJ1Y3RFeGNlcHRpb25PYmplY3QNCitfX1JUQ2FzdFRvVm9pZA0KK19fUlREeW5hbWljQ2FzdA0KK19fUlR0eXBlaWQNCitfX1NUUklOR1RPTEQNCitfX19sY19jb2RlcGFnZV9mdW5jDQorX19fbGNfY29sbGF0ZV9jcF9mdW5jDQorX19fbGNfaGFuZGxlX2Z1bmMNCitfX19tYl9jdXJfbWF4X2Z1bmMNCitfX19zZXRsY19hY3RpdmVfZnVuYw0KK19fX3VuZ3VhcmRlZF9yZWFkbGNfYWN0aXZlX2FkZF9mdW5jDQorX19hcmdjIERBVEENCitfX2FyZ3YgREFUQQ0KK19fYmFkaW9pbmZvIERBVEENCitfX2NydENvbXBhcmVTdHJpbmdBDQorX19jcnRDb21wYXJlU3RyaW5nVw0KK19fY3J0R2V0TG9jYWxlSW5mb1cNCitfX2NydEdldFN0cmluZ1R5cGVXDQorX19jcnRMQ01hcFN0cmluZ0ENCitfX2NydExDTWFwU3RyaW5nVw0KK19fZGxsb25leGl0DQorX19kb3NlcnJubw0KK19fZnBlY29kZQ0KK19fZ2V0bWFpbmFyZ3MNCitfX2luaXRlbnYgREFUQQ0KK19faW9iX2Z1bmMNCitfX2lzYXNjaWkNCitfX2lzY3N5bQ0KK19faXNjc3ltZg0KK19fbGNfY29kZXBhZ2UgREFUQQ0KK19fbGNfY29sbGF0ZV9jcCBEQVRBDQorX19sY19oYW5kbGUgREFUQQ0KK19fbGNvbnZfaW5pdA0KK19fbWJfY3VyX21heCBEQVRBDQorX19wY3R5cGVfZnVuYw0KK19fcGlvaW5mbyBEQVRBDQorX19wd2N0eXBlX2Z1bmMNCitfX3B4Y3B0aW5mb3B0cnMNCitfX3NldF9hcHBfdHlwZQ0KK19fc2V0bGNfYWN0aXZlIERBVEENCitfX3NldHVzZXJtYXRoZXJyDQorX190aHJlYWRoYW5kbGUNCitfX3RocmVhZGlkDQorX190b2FzY2lpDQorX191bkROYW1lDQorX191bkROYW1lRXgNCitfX3VuZ3VhcmRlZF9yZWFkbGNfYWN0aXZlIERBVEENCitfX3dhcmd2IERBVEENCitfX3djc2Vycm9yDQorX193Z2V0bWFpbmFyZ3MNCitfX3dpbml0ZW52IERBVEENCitfYWJzNjQNCitfYWNjZXNzDQorX2FjbWRsbiBEQVRBDQorX2FleGl0X3J0biBEQVRBDQorX2FsaWduZWRfZnJlZQ0KK19hbGlnbmVkX21hbGxvYw0KK19hbGlnbmVkX29mZnNldF9tYWxsb2MNCitfYWxpZ25lZF9vZmZzZXRfcmVhbGxvYw0KK19hbGlnbmVkX3JlYWxsb2MNCitfYW1zZ19leGl0DQorX2Fzc2VydA0KK19hdG9kYmwNCitfYXRvaTY0DQorX2F0b2xkYmwNCitfYmVlcA0KK19iZWdpbnRocmVhZA0KK19iZWdpbnRocmVhZGV4DQorX2NfZXhpdA0KK19jYWJzDQorX2NhbGxuZXdoDQorX2NleGl0DQorX2NnZXRzDQorX2NnZXR3cw0KK19jaGRpcg0KK19jaGRyaXZlDQorX2NoZ3NpZ24NCitfY2hnc2lnbmYNCitfY2htb2QNCitfY2hzaXplDQorX2NsZWFyZnANCitfY2xvc2UNCitfY29tbWl0DQorX2NvbW1vZGUgREFUQQ0KK19jb250cm9sODcNCitfY29udHJvbGZwDQorX2NvcHlzaWduDQorX2NvcHlzaWduZg0KK19jcHJpbnRmDQorX2NwdXRzDQorX2NwdXR3cw0KK19jcmVhdA0KK19jc2NhbmYNCitfY3RpbWU2NA0KK19jdHlwZQ0KK19jd2FpdA0KK19jd3ByaW50Zg0KK19jd3NjYW5mDQorX2RheWxpZ2h0IERBVEENCitfZHN0YmlhcyBEQVRBDQorX2R1cA0KK19kdXAyDQorX2VjdnQNCitfZW5kdGhyZWFkDQorX2VuZHRocmVhZGV4DQorX2Vudmlyb24gREFUQQ0KK19lb2YNCitfZXJybm8NCitfZXhlY2wNCitfZXhlY2xlDQorX2V4ZWNscA0KK19leGVjbHBlDQorX2V4ZWN2DQorX2V4ZWN2ZQ0KK19leGVjdnANCitfZXhlY3ZwZQ0KK19leGl0DQorX2V4cGFuZA0KK19mY2xvc2VhbGwNCitfZmN2dA0KK19mZG9wZW4NCitfZmdldGNoYXINCitfZmdldHdjaGFyDQorX2ZpbGJ1Zg0KK19maWxlaW5mbyBEQVRBDQorX2ZpbGVsZW5ndGgNCitfZmlsZWxlbmd0aGk2NA0KK19maWxlbm8NCitfZmluZGNsb3NlDQorX2ZpbmRmaXJzdA0KK19maW5kZmlyc3Q2NA0KK19maW5kZmlyc3RpNjQNCitfZmluZG5leHQNCitfZmluZG5leHQ2NA0KK19maW5kbmV4dGk2NA0KK19maW5pdGUNCitfZmluaXRlZg0KK19mbHNidWYNCitfZmx1c2hhbGwNCitfZm1vZGUgREFUQQ0KK19mcGNsYXNzDQorX2ZwY2xhc3NmDQorX2ZwcmVzZXQNCitfZnB1dGNoYXINCitfZnB1dHdjaGFyDQorX2Zzb3Blbg0KK19mc3RhdA0KK19mc3RhdDY0DQorX2ZzdGF0aTY0DQorX2Z0aW1lDQorX2Z0aW1lNjQNCitfZnVsbHBhdGgNCitfZnV0aW1lDQorX2Z1dGltZTY0DQorX2djdnQNCitfZ2V0X2hlYXBfaGFuZGxlDQorX2dldF9vc2ZoYW5kbGUNCitfZ2V0X3NiaF90aHJlc2hvbGQNCitfZ2V0Y2gNCitfZ2V0Y2hlDQorX2dldGN3ZA0KK19nZXRkY3dkDQorX2dldGRpc2tmcmVlDQorX2dldGRsbHByb2NhZGRyDQorX2dldGRyaXZlDQorX2dldGRyaXZlcw0KK19nZXRtYXhzdGRpbw0KK19nZXRtYmNwDQorX2dldHBpZA0KK19nZXRzeXN0aW1lDQorX2dldHcNCitfZ2V0d2NoDQorX2dldHdjaGUNCitfZ2V0d3MNCitfZ210aW1lNjQNCitfaGVhcGFkZA0KK19oZWFwY2hrDQorX2hlYXBtaW4NCitfaGVhcHNldA0KK19oZWFwdXNlZA0KK19oZWFwd2Fsaw0KK19oeXBvdA0KK19oeXBvdGYNCitfaTY0dG9hDQorX2k2NHRvdw0KK19pbml0dGVybQ0KK19pb2IgREFUQQ0KK19pc2F0dHkNCitfaXNjdHlwZQ0KK19pc21iYmFsbnVtDQorX2lzbWJiYWxwaGENCitfaXNtYmJncmFwaA0KK19pc21iYmthbG51bQ0KK19pc21iYmthbmENCitfaXNtYmJrcHJpbnQNCitfaXNtYmJrcHVuY3QNCitfaXNtYmJsZWFkDQorX2lzbWJicHJpbnQNCitfaXNtYmJwdW5jdA0KK19pc21iYnRyYWlsDQorX2lzbWJjYWxudW0NCitfaXNtYmNhbHBoYQ0KK19pc21iY2RpZ2l0DQorX2lzbWJjZ3JhcGgNCitfaXNtYmNoaXJhDQorX2lzbWJja2F0YQ0KK19pc21iY2wwDQorX2lzbWJjbDENCitfaXNtYmNsMg0KK19pc21iY2xlZ2FsDQorX2lzbWJjbG93ZXINCitfaXNtYmNwcmludA0KK19pc21iY3B1bmN0DQorX2lzbWJjc3BhY2UNCitfaXNtYmNzeW1ib2wNCitfaXNtYmN1cHBlcg0KK19pc21ic2xlYWQNCitfaXNtYnN0cmFpbA0KK19pc25hbg0KK19pc25hbmYNCitfaXRvYQ0KK19pdG93DQorX2owDQorX2oxDQorX2puDQorX2tiaGl0DQorX2xmaW5kDQorX2xvYWRkbGwNCitfbG9jYWxfdW53aW5kDQorX2xvY2FsdGltZTY0DQorX2xvY2sNCitfbG9ja2luZw0KK19sb2diDQorX2xvZ2JmDQorX2xyb3RsDQorX2xyb3RyDQorX2xzZWFyY2gNCitfbHNlZWsNCitfbHNlZWtpNjQNCitfbHRvYQ0KK19sdG93DQorX21ha2VwYXRoDQorX21iYnRvbWJjDQorX21iYnR5cGUNCitfbWJjYXNlbWFwIERBVEENCitfbWJjY3B5DQorX21iY2ppc3Rvam1zDQorX21iY2ptc3RvamlzDQorX21iY2xlbg0KK19tYmN0b2hpcmENCitfbWJjdG9rYXRhDQorX21iY3RvbG93ZXINCitfbWJjdG9tYmINCitfbWJjdG91cHBlcg0KK19tYmN0eXBlIERBVEENCitfbWJzYnR5cGUNCitfbWJzY2F0DQorX21ic2Nocg0KK19tYnNjbXANCitfbWJzY29sbA0KK19tYnNjcHkNCitfbWJzY3Nwbg0KK19tYnNkZWMNCitfbWJzZHVwDQorX21ic2ljbXANCitfbWJzaWNvbGwNCitfbWJzaW5jDQorX21ic2xlbg0KK19tYnNsd3INCitfbWJzbmJjYXQNCitfbWJzbmJjbXANCitfbWJzbmJjbnQNCitfbWJzbmJjb2xsDQorX21ic25iY3B5DQorX21ic25iaWNtcA0KK19tYnNuYmljb2xsDQorX21ic25ic2V0DQorX21ic25jYXQNCitfbWJzbmNjbnQNCitfbWJzbmNtcA0KK19tYnNuY29sbA0KK19tYnNuY3B5DQorX21ic25leHRjDQorX21ic25pY21wDQorX21ic25pY29sbA0KK19tYnNuaW5jDQorX21ic25zZXQNCitfbWJzcGJyaw0KK19tYnNyY2hyDQorX21ic3Jldg0KK19tYnNzZXQNCitfbWJzc3BuDQorX21ic3NwbnANCitfbWJzc3RyDQorX21ic3Rvaw0KK19tYnN0cmxlbg0KK19tYnN1cHINCitfbWVtY2NweQ0KK19tZW1pY21wDQorX21rZGlyDQorX21rZ210aW1lDQorX21rZ210aW1lNjQNCitfbWt0ZW1wDQorX21rdGltZTY0DQorX21zaXplDQorX25leHRhZnRlcg0KK19uZXh0YWZ0ZXJmDQorX29uZXhpdA0KK19vcGVuDQorX29wZW5fb3NmaGFuZGxlDQorX29zcGxhdGZvcm0gREFUQQ0KK19vc3ZlciBEQVRBDQorX3BjbG9zZQ0KK19wY3R5cGUgREFUQQ0KK19wZ21wdHIgREFUQQ0KK19waXBlDQorX3BvcGVuDQorX3B1cmVjYWxsDQorX3B1dGNoDQorX3B1dGVudg0KK19wdXR3DQorX3B1dHdjaA0KK19wdXR3cw0KK19wd2N0eXBlIERBVEENCitfcmVhZA0KK19yZXNldHN0a29mbHcNCitfcm1kaXINCitfcm10bXANCitfcm90bA0KK19yb3RsNjQNCitfcm90cg0KK19yb3RyNjQNCitfc2NhbGINCitfc2NhbGJmDQorX3NjcHJpbnRmDQorX3Njd3ByaW50Zg0KK19zZWFyY2hlbnYNCitfc2V0X2Vycm9yX21vZGUNCitfc2V0X3NiaF90aHJlc2hvbGQNCitfc2V0ZXJyb3Jtb2RlDQorX3NldGptcA0KK19zZXRqbXBleA0KK19zZXRtYXhzdGRpbw0KK19zZXRtYmNwDQorX3NldG1vZGUNCitfc2V0c3lzdGltZQ0KK19zbGVlcA0KK19zbnByaW50Zg0KK19zbnNjYW5mDQorX3Nud3ByaW50Zg0KK19zbndzY2FuZg0KK19zb3Blbg0KK19zcGF3bmwNCitfc3Bhd25sZQ0KK19zcGF3bmxwDQorX3NwYXdubHBlDQorX3NwYXdudg0KK19zcGF3bnZlDQorX3NwYXdudnANCitfc3Bhd252cGUNCitfc3BsaXRwYXRoDQorX3N0YXQNCitfc3RhdDY0DQorX3N0YXRpNjQNCitfc3RhdHVzZnANCitfc3RyY21waQ0KK19zdHJkYXRlDQorX3N0cmR1cA0KK19zdHJlcnJvcg0KK19zdHJpY21wDQorX3N0cmljb2xsDQorX3N0cmx3cg0KK19zdHJuY29sbA0KK19zdHJuaWNtcA0KK19zdHJuaWNvbGwNCitfc3RybnNldA0KK19zdHJyZXYNCitfc3Ryc2V0DQorX3N0cnRpbWUNCitfc3RydG9pNjQNCitfc3RydG91aTY0DQorX3N0cnVwcg0KK19zd2FiDQorX3N5c19lcnJsaXN0IERBVEENCitfc3lzX25lcnIgREFUQQ0KK190ZWxsDQorX3RlbGxpNjQNCitfdGVtcG5hbQ0KK190aW1lNjQNCitfdGltZXpvbmUgREFUQQ0KK190b2xvd2VyDQorX3RvdXBwZXINCitfdHpuYW1lIERBVEENCitfdHpzZXQNCitfdWk2NHRvYQ0KK191aTY0dG93DQorX3VsdG9hDQorX3VsdG93DQorX3VtYXNrDQorX3VuZ2V0Y2gNCitfdW5nZXR3Y2gNCitfdW5saW5rDQorX3VubG9hZGRsbA0KK191bmxvY2sNCitfdXRpbWUNCitfdXRpbWU2NA0KK192c2NwcmludGYNCitfdnNjd3ByaW50Zg0KK192c25wcmludGYNCitfdnNud3ByaW50Zg0KK193YWNjZXNzDQorX3dhc2N0aW1lDQorX3djaGRpcg0KK193Y2htb2QNCitfd2NtZGxuIERBVEENCitfd2NyZWF0DQorX3djc2R1cA0KK193Y3NlcnJvcg0KK193Y3NpY21wDQorX3djc2ljb2xsDQorX3djc2x3cg0KK193Y3NuY29sbA0KK193Y3NuaWNtcA0KK193Y3NuaWNvbGwNCitfd2NzbnNldA0KK193Y3NyZXYNCitfd2Nzc2V0DQorX3djc3RvaTY0DQorX3djc3RvdWk2NA0KK193Y3N1cHINCitfd2N0aW1lDQorX3djdGltZTY0DQorX3djdHlwZQ0KK193ZW52aXJvbiBEQVRBDQorX3dleGVjbA0KK193ZXhlY2xlDQorX3dleGVjbHANCitfd2V4ZWNscGUNCitfd2V4ZWN2DQorX3dleGVjdmUNCitfd2V4ZWN2cA0KK193ZXhlY3ZwZQ0KK193ZmRvcGVuDQorX3dmaW5kZmlyc3QNCitfd2ZpbmRmaXJzdDY0DQorX3dmaW5kZmlyc3RpNjQNCitfd2ZpbmRuZXh0DQorX3dmaW5kbmV4dDY0DQorX3dmaW5kbmV4dGk2NA0KK193Zm9wZW4NCitfd2ZyZW9wZW4NCitfd2Zzb3Blbg0KK193ZnVsbHBhdGgNCitfd2dldGN3ZA0KK193Z2V0ZGN3ZA0KK193Z2V0ZW52DQorX3dpbm1ham9yIERBVEENCitfd2lubWlub3IgREFUQQ0KK193aW52ZXIgREFUQQ0KK193bWFrZXBhdGgNCitfd21rZGlyDQorX3dta3RlbXANCitfd29wZW4NCitfd3BlcnJvcg0KK193cGdtcHRyIERBVEENCitfd3BvcGVuDQorX3dwdXRlbnYNCitfd3JlbW92ZQ0KK193cmVuYW1lDQorX3dyaXRlDQorX3dybWRpcg0KK193c2VhcmNoZW52DQorX3dzZXRsb2NhbGUNCitfd3NvcGVuDQorX3dzcGF3bmwNCitfd3NwYXdubGUNCitfd3NwYXdubHANCitfd3NwYXdubHBlDQorX3dzcGF3bnYNCitfd3NwYXdudmUNCitfd3NwYXdudnANCitfd3NwYXdudnBlDQorX3dzcGxpdHBhdGgNCitfd3N0YXQNCitfd3N0YXQ2NA0KK193c3RhdGk2NA0KK193c3RyZGF0ZQ0KK193c3RydGltZQ0KK193c3lzdGVtDQorX3d0ZW1wbmFtDQorX3d0bXBuYW0NCitfd3RvZg0KK193dG9pDQorX3d0b2k2NA0KK193dG9sDQorX3d1bmxpbmsNCitfd3V0aW1lDQorX3d1dGltZTY0DQorX3kwDQorX3kxDQorX3luDQorYWJvcnQNCithYnMNCithY29zDQorYWNvc2YNCithc2N0aW1lDQorYXNpbg0KK2FzaW5mDQorYXRhbg0KK2F0YW4yDQorYXRhbjJmDQorYXRhbmYNCithdGV4aXQNCithdG9mDQorYXRvaQ0KK2F0b2wNCitic2VhcmNoDQorY2FsbG9jDQorY2VpbA0KK2NlaWxmDQorY2xlYXJlcnINCitjbG9jaw0KK2Nvcw0KK2Nvc2YNCitjb3NoDQorY29zaGYNCitjdGltZQ0KK2RpZmZ0aW1lDQorZGl2DQorZXhpdA0KK2V4cA0KK2V4cGYNCitmYWJzDQorZmNsb3NlDQorZmVvZg0KK2ZlcnJvcg0KK2ZmbHVzaA0KK2ZnZXRjDQorZmdldHBvcw0KK2ZnZXRzDQorZmdldHdjDQorZmdldHdzDQorZmxvb3INCitmbG9vcmYNCitmbW9kDQorZm1vZGYNCitmb3Blbg0KK2ZwcmludGYNCitmcHV0Yw0KK2ZwdXRzDQorZnB1dHdjDQorZnB1dHdzDQorZnJlYWQNCitmcmVlDQorZnJlb3Blbg0KK2ZyZXhwDQorZnNjYW5mDQorZnNlZWsNCitmc2V0cG9zDQorZnRlbGwNCitmd3ByaW50Zg0KK2Z3cml0ZQ0KK2Z3c2NhbmYNCitnZXRjDQorZ2V0Y2hhcg0KK2dldGVudg0KK2dldHMNCitnZXR3Yw0KK2dldHdjaGFyDQorZ210aW1lDQoraXNfd2N0eXBlDQoraXNhbG51bQ0KK2lzYWxwaGENCitpc2NudHJsDQoraXNkaWdpdA0KK2lzZ3JhcGgNCitpc2xlYWRieXRlDQoraXNsb3dlcg0KK2lzcHJpbnQNCitpc3B1bmN0DQoraXNzcGFjZQ0KK2lzdXBwZXINCitpc3dhbG51bQ0KK2lzd2FscGhhDQoraXN3YXNjaWkNCitpc3djbnRybA0KK2lzd2N0eXBlDQoraXN3ZGlnaXQNCitpc3dncmFwaA0KK2lzd2xvd2VyDQoraXN3cHJpbnQNCitpc3dwdW5jdA0KK2lzd3NwYWNlDQoraXN3dXBwZXINCitpc3d4ZGlnaXQNCitpc3hkaWdpdA0KK2xhYnMNCitsZGV4cA0KK2xkaXYNCitsb2NhbGVjb252DQorbG9jYWx0aW1lDQorbG9nDQorbG9nMTANCitsb2cxMGYNCitsb2dmDQorbG9uZ2ptcA0KK21hbGxvYw0KK21ibGVuDQorbWJzdG93Y3MNCittYnRvd2MNCittZW1jaHINCittZW1jbXANCittZW1jcHkNCittZW1tb3ZlDQorbWVtc2V0DQorbWt0aW1lDQorbW9kZg0KK21vZGZmDQorcGVycm9yDQorcG93DQorcG93Zg0KK3ByaW50Zg0KK3B1dGMNCitwdXRjaGFyDQorcHV0cw0KK3B1dHdjDQorcHV0d2NoYXINCitxc29ydA0KK3JhaXNlDQorcmFuZA0KK3JlYWxsb2MNCityZW1vdmUNCityZW5hbWUNCityZXdpbmQNCitzY2FuZg0KK3NldGJ1Zg0KK3NldGptcA0KK3NldGxvY2FsZQ0KK3NldHZidWYNCitzaWduYWwNCitzaW4NCitzaW5mDQorc2luaA0KK3NpbmhmDQorc3ByaW50Zg0KK3NxcnQNCitzcXJ0Zg0KK3NyYW5kDQorc3NjYW5mDQorc3RyY2F0DQorc3RyY2hyDQorc3RyY21wDQorc3RyY29sbA0KK3N0cmNweQ0KK3N0cmNzcG4NCitzdHJlcnJvcg0KK3N0cmZ0aW1lDQorc3RybGVuDQorc3RybmNhdA0KK3N0cm5jbXANCitzdHJuY3B5DQorc3RycGJyaw0KK3N0cnJjaHINCitzdHJzcG4NCitzdHJzdHINCitzdHJ0b2QNCitzdHJ0b2sNCitzdHJ0b2wNCitzdHJ0b3VsDQorc3RyeGZybQ0KK3N3cHJpbnRmDQorc3dzY2FuZg0KK3N5c3RlbQ0KK3Rhbg0KK3RhbmYNCit0YW5oDQordGltZQ0KK3RtcGZpbGUNCit0bXBuYW0NCit0b2xvd2VyDQordG91cHBlcg0KK3Rvd2xvd2VyDQordG93dXBwZXINCit1bmdldGMNCit1bmdldHdjDQordmZwcmludGYNCit2ZndwcmludGYNCit2cHJpbnRmDQordnNwcmludGYNCit2c3dwcmludGYNCit2d3ByaW50Zg0KK3djc2NhdA0KK3djc2Nocg0KK3djc2NtcA0KK3djc2NvbGwNCit3Y3NjcHkNCit3Y3Njc3BuDQord2NzZnRpbWUNCit3Y3NsZW4NCit3Y3NuY2F0DQord2NzbmNtcA0KK3djc25jcHkNCit3Y3NwYnJrDQord2NzcmNocg0KK3djc3Nwbg0KK3djc3N0cg0KK3djc3RvZA0KK3djc3Rvaw0KK3djc3RvbA0KK3djc3RvbWJzDQord2NzdG91bA0KK3djc3hmcm0NCit3Y3RvbWINCit3cHJpbnRmDQord3NjYW5mDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9tc3ZjcnQuZGVmIGIvbWluZ3ctdzY0LWNydC9tc3ZjcnQuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVmZWJkZGQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L21zdmNydC5kZWYKQEAgLTAsMCArMSw4NDQgQEAKKzsgDQorOyBFeHBvcnRzIG9mIGZpbGUgbXN2Y3J0LmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorRVhQT1JUUw0KKyRJMTBfT1VUUFVUDQorOyBwdWJsaWM6IF9fY2RlY2wgX19ub25fcnR0aV9vYmplY3Q6Ol9fbm9uX3J0dGlfb2JqZWN0KGNsYXNzIF9fbm9uX3J0dGlfb2JqZWN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKzsgR0NDID0gX19aTjE3X19ub25fcnR0aV9vYmplY3RDMkVSS1NfDQorPz8wX19ub25fcnR0aV9vYmplY3RAQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBfX25vbl9ydHRpX29iamVjdDo6X19ub25fcnR0aV9vYmplY3QoY2hhciBjb25zdCAqIF9fcHRyNjQpIF9fcHRyNjQNCis7IEdDQyA9IF9fWk4xN19fbm9uX3J0dGlfb2JqZWN0QzFFUktTXw0KKz8/MF9fbm9uX3J0dGlfb2JqZWN0QEBRRUFBQFBFQkRAWg0KKzsgcHJpdmF0ZTogX19jZGVjbCBiYWRfY2FzdDo6YmFkX2Nhc3QoY2hhciBjb25zdCAqIF9fcHRyNjQgY29uc3QgKiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wYmFkX2Nhc3RAQEFFQUFAUEVCUUVCREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgYmFkX2Nhc3Q6OmJhZF9jYXN0KGNoYXIgY29uc3QgKiBfX3B0cjY0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/MGJhZF9jYXN0QEBRRUFBQEFFQlFFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIGJhZF9jYXN0OjpiYWRfY2FzdChjbGFzcyBiYWRfY2FzdCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBiYWRfY2FzdEBAUUVBQUBBRUJWMEBAWg0KKzsgcHVibGljOiBfX2NkZWNsIGJhZF9jYXN0OjpiYWRfY2FzdChjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MGJhZF9jYXN0QEBRRUFBQFBFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIGJhZF90eXBlaWQ6OmJhZF90eXBlaWQoY2xhc3MgYmFkX3R5cGVpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBiYWRfdHlwZWlkQEBRRUFBQEFFQlYwQEBaDQorOyBwdWJsaWM6IF9fY2RlY2wgYmFkX3R5cGVpZDo6YmFkX3R5cGVpZChjaGFyIGNvbnN0ICogX19wdHI2NCkgX19wdHI2NA0KKz8/MGJhZF90eXBlaWRAQFFFQUFAUEVCREBaDQorOyBwdWJsaWM6IF9fY2RlY2wgZXhjZXB0aW9uOjpleGNlcHRpb24oY2hhciBjb25zdCAqIF9fcHRyNjQgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz8wZXhjZXB0aW9uQEBRRUFBQEFFQlFFQkRAWg0KKzsgcHVibGljOiBfX2NkZWNsIGV4Y2VwdGlvbjo6ZXhjZXB0aW9uKGNoYXIgY29uc3QgKiBfX3B0cjY0IGNvbnN0ICYgX19wdHI2NCxpbnQpIF9fcHRyNjQNCis/PzBleGNlcHRpb25AQFFFQUFAQUVCUUVCREhAWg0KKzsgcHVibGljOiBfX2NkZWNsIGV4Y2VwdGlvbjo6ZXhjZXB0aW9uKGNsYXNzIGV4Y2VwdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzBleGNlcHRpb25AQFFFQUFAQUVCVjBAQFoNCis7IHB1YmxpYzogX19jZGVjbCBleGNlcHRpb246OmV4Y2VwdGlvbih2b2lkKSBfX3B0cjY0DQorPz8wZXhjZXB0aW9uQEBRRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBfX25vbl9ydHRpX29iamVjdDo6fl9fbm9uX3J0dGlfb2JqZWN0KHZvaWQpIF9fcHRyNjQNCis/PzFfX25vbl9ydHRpX29iamVjdEBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgYmFkX2Nhc3Q6On5iYWRfY2FzdCh2b2lkKSBfX3B0cjY0DQorPz8xYmFkX2Nhc3RAQFVFQUFAWFoNCis7IHB1YmxpYzogdmlydHVhbCBfX2NkZWNsIGJhZF90eXBlaWQ6On5iYWRfdHlwZWlkKHZvaWQpIF9fcHRyNjQNCis/PzFiYWRfdHlwZWlkQEBVRUFBQFhaDQorOyBwdWJsaWM6IHZpcnR1YWwgX19jZGVjbCBleGNlcHRpb246On5leGNlcHRpb24odm9pZCkgX19wdHI2NA0KKz8/MWV4Y2VwdGlvbkBAVUVBQUBYWg0KKzsgcHVibGljOiB2aXJ0dWFsIF9fY2RlY2wgdHlwZV9pbmZvOjp+dHlwZV9pbmZvKHZvaWQpIF9fcHRyNjQNCis/PzF0eXBlX2luZm9AQFVFQUFAWFoNCis7IHZvaWQgKiBfX3B0cjY0IF9fY2RlY2wgb3BlcmF0b3IgbmV3KHVuc2lnbmVkIF9faW50NjQpDQorOyBHQ0MgPSBfX1pud3kNCis/PzJAWUFQRUFYX0tAWg0KKzsgdm9pZCBfX2NkZWNsIG9wZXJhdG9yIGRlbGV0ZSh2b2lkICogX19wdHI2NCkNCis7IEdDQyA9IF9fWmRsUHYNCis/PzNAWUFYUEVBWEBaDQorOyBwdWJsaWM6IGNsYXNzIF9fbm9uX3J0dGlfb2JqZWN0ICYgX19wdHI2NCBfX2NkZWNsIF9fbm9uX3J0dGlfb2JqZWN0OjpvcGVyYXRvcj0oY2xhc3MgX19ub25fcnR0aV9vYmplY3QgY29uc3QgJiBfX3B0cjY0KSBfX3B0cjY0DQorPz80X19ub25fcnR0aV9vYmplY3RAQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBjbGFzcyBiYWRfY2FzdCAmIF9fcHRyNjQgX19jZGVjbCBiYWRfY2FzdDo6b3BlcmF0b3I9KGNsYXNzIGJhZF9jYXN0IGNvbnN0ICYgX19wdHI2NCkgX19wdHI2NA0KKz8/NGJhZF9jYXN0QEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgYmFkX3R5cGVpZCAmIF9fcHRyNjQgX19jZGVjbCBiYWRfdHlwZWlkOjpvcGVyYXRvcj0oY2xhc3MgYmFkX3R5cGVpZCBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRiYWRfdHlwZWlkQEBRRUFBQUVBVjBAQUVCVjBAQFoNCis7IHB1YmxpYzogY2xhc3MgZXhjZXB0aW9uICYgX19wdHI2NCBfX2NkZWNsIGV4Y2VwdGlvbjo6b3BlcmF0b3I9KGNsYXNzIGV4Y2VwdGlvbiBjb25zdCAmIF9fcHRyNjQpIF9fcHRyNjQNCis/PzRleGNlcHRpb25AQFFFQUFBRUFWMEBBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCB0eXBlX2luZm86Om9wZXJhdG9yPT0oY2xhc3MgdHlwZV9pbmZvIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OHR5cGVfaW5mb0BAUUVCQUhBRUJWMEBAWg0KKzsgcHVibGljOiBpbnQgX19jZGVjbCB0eXBlX2luZm86Om9wZXJhdG9yIT0oY2xhc3MgdHlwZV9pbmZvIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz8/OXR5cGVfaW5mb0BAUUVCQUhBRUJWMEBAWg0KKzsgY29uc3QgIF9fbm9uX3J0dGlfb2JqZWN0OjpgdmZ0YWJsZScNCis/P183X19ub25fcnR0aV9vYmplY3RAQDZCQA0KKzsgY29uc3QgIGJhZF9jYXN0OjpgdmZ0YWJsZScNCis/P183YmFkX2Nhc3RAQDZCQA0KKzsgY29uc3QgIGJhZF90eXBlaWQ6OmB2ZnRhYmxlJw0KKz8/XzdiYWRfdHlwZWlkQEA2QkANCis7IGNvbnN0ICBleGNlcHRpb246OmB2ZnRhYmxlJw0KKz8/XzdleGNlcHRpb25AQDZCQA0KKzsgcHVibGljOiB2b2lkIF9fY2RlY2wgYmFkX2Nhc3Q6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GYmFkX2Nhc3RAQFFFQUFYWFoNCis7IHB1YmxpYzogdm9pZCBfX2NkZWNsIGJhZF90eXBlaWQ6OmBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnKHZvaWQpIF9fcHRyNjQNCis/P19GYmFkX3R5cGVpZEBAUUVBQVhYWg0KKzsgdm9pZCAqIF9fcHRyNjQgX19jZGVjbCBvcGVyYXRvciBuZXdbXSh1bnNpZ25lZCBfX2ludDY0KQ0KKzsgR05VID0gX19abmF5DQorPz9fVUBZQVBFQVhfS0BaDQorOyB2b2lkIF9fY2RlY2wgb3BlcmF0b3IgZGVsZXRlW10odm9pZCAqIF9fcHRyNjQpDQorOyBHTlUgPSBfX1pkYVB2DQorPz9fVkBZQVhQRUFYQFoNCitfX3VuY2F1Z2h0X2V4Y2VwdGlvbg0KKzsgaW50IChfX2NkZWNsKl9fY2RlY2wgX3F1ZXJ5X25ld19oYW5kbGVyKHZvaWQpKSh1bnNpZ25lZCBfX2ludDY0KQ0KKzsgR05VID0gX19aMThfcXVlcnlfbmV3X2hhbmRsZXJ2DQorP19xdWVyeV9uZXdfaGFuZGxlckBAWUFQNkFIX0tAWlhaDQorOyBpbnQgX19jZGVjbCBfcXVlcnlfbmV3X21vZGUodm9pZCkNCis7IEdOVSA9IF9fWjE1X3F1ZXJ5X25ld19tb2Rldg0KKz9fcXVlcnlfbmV3X21vZGVAQFlBSFhaDQorOyBpbnQgKF9fY2RlY2wqX19jZGVjbCBfc2V0X25ld19oYW5kbGVyKGludCAoX19jZGVjbCopKHVuc2lnbmVkIF9faW50NjQpKSkodW5zaWduZWQgX19pbnQ2NCkNCis7IEdOVSA9IF9fWjE2X3NldF9uZXdfaGFuZGxlclBGaXlFDQorP19zZXRfbmV3X2hhbmRsZXJAQFlBUDZBSF9LQFpQNkFIMEBaQFoNCis7IGludCBfX2NkZWNsIF9zZXRfbmV3X21vZGUoaW50KQ0KKzsgR05VID0gX19aMTNfc2V0X25ld19tb2RlaQ0KKz9fc2V0X25ld19tb2RlQEBZQUhIQFoNCis7IHZvaWQgKF9fY2RlY2wqX19jZGVjbCBfc2V0X3NlX3RyYW5zbGF0b3Iodm9pZCAoX19jZGVjbCopKHVuc2lnbmVkIGludCxzdHJ1Y3QgX0VYQ0VQVElPTl9QT0lOVEVSUyAqIF9fcHRyNjQpKSkodW5zaWduZWQgaW50LHN0cnVjdCBfRVhDRVBUSU9OX1BPSU5URVJTICogX19wdHI2NCkNCis7IEdOVSA9IF9fWjE4X3NldF9zZV90cmFuc2xhdG9yUEZ2alAxOV9FWENFUFRJT05fUE9JTlRFUlNFDQorP19zZXRfc2VfdHJhbnNsYXRvckBAWUFQNkFYSVBFQVVfRVhDRVBUSU9OX1BPSU5URVJTQEBAWlA2QVhJMEBaQFoNCis7IHB1YmxpYzogaW50IF9fY2RlY2wgdHlwZV9pbmZvOjpiZWZvcmUoY2xhc3MgdHlwZV9pbmZvIGNvbnN0ICYgX19wdHI2NCljb25zdCAgX19wdHI2NA0KKz9iZWZvcmVAdHlwZV9pbmZvQEBRRUJBSEFFQlYxQEBaDQorOyBwdWJsaWM6IGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgdHlwZV9pbmZvOjpuYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/bmFtZUB0eXBlX2luZm9AQFFFQkFQRUJEWFoNCis7IHB1YmxpYzogY2hhciBjb25zdCAqIF9fcHRyNjQgX19jZGVjbCB0eXBlX2luZm86OnJhd19uYW1lKHZvaWQpY29uc3QgIF9fcHRyNjQNCis/cmF3X25hbWVAdHlwZV9pbmZvQEBRRUJBUEVCRFhaDQorOyB2b2lkIChfX2NkZWNsKl9fY2RlY2wgc2V0X25ld19oYW5kbGVyKHZvaWQgKF9fY2RlY2wqKSh2b2lkKSkpKHZvaWQpDQorOyBHTlUgPSBfX1oxNXNldF9uZXdfaGFuZGxlclBGdnZFDQorP3NldF9uZXdfaGFuZGxlckBAWUFQNkFYWFpQNkFYWFpAWg0KKzsgdm9pZCAoX19jZGVjbCpfX2NkZWNsIHNldF90ZXJtaW5hdGUodm9pZCAoX19jZGVjbCopKHZvaWQpKSkodm9pZCkNCis7IEdOVSA9IF9fWjEzc2V0X3Rlcm1pbmF0ZVBGdnZFDQorP3NldF90ZXJtaW5hdGVAQFlBUDZBWFhaUDZBWFhaQFoNCis7IHZvaWQgKF9fY2RlY2wqX19jZGVjbCBzZXRfdW5leHBlY3RlZCh2b2lkIChfX2NkZWNsKikodm9pZCkpKSh2b2lkKQ0KKzsgR05VID0gX19aMTRzZXRfdW5leHBlY3RlZFBGdnZFDQorP3NldF91bmV4cGVjdGVkQEBZQVA2QVhYWlA2QVhYWkBaDQorOyB2b2lkIF9fY2RlY2wgdGVybWluYXRlKHZvaWQpDQorOyBHTlUgPSBfX1o5dGVybWluYXRldg0KKz90ZXJtaW5hdGVAQFlBWFhaDQorOyB2b2lkIF9fY2RlY2wgdW5leHBlY3RlZCh2b2lkKQ0KKzsgR05VID0gX19aMTB1bmV4cGVjdGVkdg0KKz91bmV4cGVjdGVkQEBZQVhYWg0KKzsgcHVibGljOiB2aXJ0dWFsIGNoYXIgY29uc3QgKiBfX3B0cjY0IF9fY2RlY2wgZXhjZXB0aW9uOjp3aGF0KHZvaWQpY29uc3QgIF9fcHRyNjQNCis/d2hhdEBleGNlcHRpb25AQFVFQkFQRUJEWFoNCitfQ3h4VGhyb3dFeGNlcHRpb24NCitfR2V0ZGF5cw0KK19HZXRtb250aHMNCitfR2V0dG5hbWVzDQorX0hVR0UgREFUQQ0KK19TdHJmdGltZQ0KK19YY3B0RmlsdGVyDQorX19DX3NwZWNpZmljX2hhbmRsZXINCitfX0NwcFhjcHRGaWx0ZXINCitfX0N4eEZyYW1lSGFuZGxlcg0KK19fRGVzdHJ1Y3RFeGNlcHRpb25PYmplY3QNCitfX1JUQ2FzdFRvVm9pZA0KK19fUlREeW5hbWljQ2FzdA0KK19fUlR0eXBlaWQNCitfX1NUUklOR1RPTEQNCitfX19sY19jb2RlcGFnZV9mdW5jDQorX19fbGNfY29sbGF0ZV9jcF9mdW5jDQorX19fbGNfaGFuZGxlX2Z1bmMNCitfX19tYl9jdXJfbWF4X2Z1bmMNCitfX19zZXRsY19hY3RpdmVfZnVuYw0KK19fX3VuZ3VhcmRlZF9yZWFkbGNfYWN0aXZlX2FkZF9mdW5jDQorX19hcmdjIERBVEENCitfX2FyZ3YgREFUQQ0KK19fYmFkaW9pbmZvIERBVEENCitfX2NydENvbXBhcmVTdHJpbmdBDQorX19jcnRDb21wYXJlU3RyaW5nVw0KK19fY3J0R2V0TG9jYWxlSW5mb1cNCitfX2NydEdldFN0cmluZ1R5cGVXDQorX19jcnRMQ01hcFN0cmluZ0ENCitfX2NydExDTWFwU3RyaW5nVw0KK19fZGxsb25leGl0DQorX19kb3NlcnJubw0KK19fZnBlY29kZQ0KK19fZ2V0bWFpbmFyZ3MNCitfX2luaXRlbnYgREFUQQ0KK19faW9iX2Z1bmMNCitfX2lzYXNjaWkNCitfX2lzY3N5bQ0KK19faXNjc3ltZg0KK19fbGNfY29kZXBhZ2UgREFUQQ0KK19fbGNfY29sbGF0ZV9jcCBEQVRBDQorX19sY19oYW5kbGUgREFUQQ0KK19fbGNvbnZfaW5pdA0KK19fbWJfY3VyX21heCBEQVRBDQorX19wY3R5cGVfZnVuYw0KK19fcGlvaW5mbyBEQVRBDQorX19wd2N0eXBlX2Z1bmMNCitfX3B4Y3B0aW5mb3B0cnMNCitfX3NldF9hcHBfdHlwZQ0KK19fc2V0bGNfYWN0aXZlIERBVEENCitfX3NldHVzZXJtYXRoZXJyDQorX190aHJlYWRoYW5kbGUNCitfX3RocmVhZGlkDQorX190b2FzY2lpDQorX191bkROYW1lDQorX191bkROYW1lRXgNCitfX3VuZ3VhcmRlZF9yZWFkbGNfYWN0aXZlIERBVEENCitfX3dhcmd2IERBVEENCitfX3djc2Vycm9yDQorX193Z2V0bWFpbmFyZ3MNCitfX3dpbml0ZW52IERBVEENCitfYWJzNjQNCitfYWNjZXNzDQorX2FjbWRsbiBEQVRBDQorX2FleGl0X3J0biBEQVRBDQorX2FsaWduZWRfZnJlZQ0KK19hbGlnbmVkX21hbGxvYw0KK19hbGlnbmVkX29mZnNldF9tYWxsb2MNCitfYWxpZ25lZF9vZmZzZXRfcmVhbGxvYw0KK19hbGlnbmVkX3JlYWxsb2MNCitfYW1zZ19leGl0DQorX2Fzc2VydA0KK19hdG9kYmwNCitfYXRvaTY0DQorX2F0b2xkYmwNCitfYmVlcA0KK19iZWdpbnRocmVhZA0KK19iZWdpbnRocmVhZGV4DQorX2NfZXhpdA0KK19jYWJzDQorX2NhbGxuZXdoDQorX2NleGl0DQorX2NnZXRzDQorX2NnZXR3cw0KK19jaGRpcg0KK19jaGRyaXZlDQorX2NoZ3NpZ24NCitfY2hnc2lnbmYNCitfY2htb2QNCitfY2hzaXplDQorX2NsZWFyZnANCitfY2xvc2UNCitfY29tbWl0DQorX2NvbW1vZGUgREFUQQ0KK19jb250cm9sODcNCitfY29udHJvbGZwDQorX2NvcHlzaWduDQorX2NvcHlzaWduZg0KK19jcHJpbnRmDQorX2NwdXRzDQorX2NwdXR3cw0KK19jcmVhdA0KK19jc2NhbmYNCitfY3RpbWU2NA0KK19jdHlwZQ0KK19jd2FpdA0KK19jd3ByaW50Zg0KK19jd3NjYW5mDQorX2RheWxpZ2h0IERBVEENCitfZHN0YmlhcyBEQVRBDQorX2R1cA0KK19kdXAyDQorX2VjdnQNCitfZW5kdGhyZWFkDQorX2VuZHRocmVhZGV4DQorX2Vudmlyb24gREFUQQ0KK19lb2YNCitfZXJybm8NCitfZXhlY2wNCitfZXhlY2xlDQorX2V4ZWNscA0KK19leGVjbHBlDQorX2V4ZWN2DQorX2V4ZWN2ZQ0KK19leGVjdnANCitfZXhlY3ZwZQ0KK19leGl0DQorX2V4cGFuZA0KK19mY2xvc2VhbGwNCitfZmN2dA0KK19mZG9wZW4NCitfZmdldGNoYXINCitfZmdldHdjaGFyDQorX2ZpbGJ1Zg0KK19maWxlaW5mbyBEQVRBDQorX2ZpbGVsZW5ndGgNCitfZmlsZWxlbmd0aGk2NA0KK19maWxlbm8NCitfZmluZGNsb3NlDQorX2ZpbmRmaXJzdA0KK19maW5kZmlyc3Q2NA0KK19maW5kZmlyc3RpNjQNCitfZmluZG5leHQNCitfZmluZG5leHQ2NA0KK19maW5kbmV4dGk2NA0KK19maW5pdGUNCitfZmluaXRlZg0KK19mbHNidWYNCitfZmx1c2hhbGwNCitfZm1vZGUgREFUQQ0KK19mcGNsYXNzDQorX2ZwY2xhc3NmDQorX2ZwcmVzZXQNCitfZnB1dGNoYXINCitfZnB1dHdjaGFyDQorX2Zzb3Blbg0KK19mc3RhdA0KK19mc3RhdDY0DQorX2ZzdGF0aTY0DQorX2Z0aW1lDQorX2Z0aW1lNjQNCitfZnVsbHBhdGgNCitfZnV0aW1lDQorX2Z1dGltZTY0DQorX2djdnQNCitfZ2V0X2hlYXBfaGFuZGxlDQorX2dldF9vc2ZoYW5kbGUNCitfZ2V0X3NiaF90aHJlc2hvbGQNCitfZ2V0Y2gNCitfZ2V0Y2hlDQorX2dldGN3ZA0KK19nZXRkY3dkDQorX2dldGRpc2tmcmVlDQorX2dldGRsbHByb2NhZGRyDQorX2dldGRyaXZlDQorX2dldGRyaXZlcw0KK19nZXRtYXhzdGRpbw0KK19nZXRtYmNwDQorX2dldHBpZA0KK19nZXRzeXN0aW1lDQorX2dldHcNCitfZ2V0d2NoDQorX2dldHdjaGUNCitfZ2V0d3MNCitfZ210aW1lNjQNCitfaGVhcGFkZA0KK19oZWFwY2hrDQorX2hlYXBtaW4NCitfaGVhcHNldA0KK19oZWFwdXNlZA0KK19oZWFwd2Fsaw0KK19oeXBvdA0KK19oeXBvdGYNCitfaTY0dG9hDQorX2k2NHRvdw0KK19pbml0dGVybQ0KK19pb2IgREFUQQ0KK19pc2F0dHkNCitfaXNjdHlwZQ0KK19pc21iYmFsbnVtDQorX2lzbWJiYWxwaGENCitfaXNtYmJncmFwaA0KK19pc21iYmthbG51bQ0KK19pc21iYmthbmENCitfaXNtYmJrcHJpbnQNCitfaXNtYmJrcHVuY3QNCitfaXNtYmJsZWFkDQorX2lzbWJicHJpbnQNCitfaXNtYmJwdW5jdA0KK19pc21iYnRyYWlsDQorX2lzbWJjYWxudW0NCitfaXNtYmNhbHBoYQ0KK19pc21iY2RpZ2l0DQorX2lzbWJjZ3JhcGgNCitfaXNtYmNoaXJhDQorX2lzbWJja2F0YQ0KK19pc21iY2wwDQorX2lzbWJjbDENCitfaXNtYmNsMg0KK19pc21iY2xlZ2FsDQorX2lzbWJjbG93ZXINCitfaXNtYmNwcmludA0KK19pc21iY3B1bmN0DQorX2lzbWJjc3BhY2UNCitfaXNtYmNzeW1ib2wNCitfaXNtYmN1cHBlcg0KK19pc21ic2xlYWQNCitfaXNtYnN0cmFpbA0KK19pc25hbg0KK19pc25hbmYNCitfaXRvYQ0KK19pdG93DQorX2owDQorX2oxDQorX2puDQorX2tiaGl0DQorX2xmaW5kDQorX2xvYWRkbGwNCitfbG9jYWxfdW53aW5kDQorX2xvY2FsdGltZTY0DQorX2xvY2sNCitfbG9ja2luZw0KK19sb2diDQorX2xvZ2JmDQorX2xyb3RsDQorX2xyb3RyDQorX2xzZWFyY2gNCitfbHNlZWsNCitfbHNlZWtpNjQNCitfbHRvYQ0KK19sdG93DQorX21ha2VwYXRoDQorX21iYnRvbWJjDQorX21iYnR5cGUNCitfbWJjYXNlbWFwIERBVEENCitfbWJjY3B5DQorX21iY2ppc3Rvam1zDQorX21iY2ptc3RvamlzDQorX21iY2xlbg0KK19tYmN0b2hpcmENCitfbWJjdG9rYXRhDQorX21iY3RvbG93ZXINCitfbWJjdG9tYmINCitfbWJjdG91cHBlcg0KK19tYmN0eXBlIERBVEENCitfbWJzYnR5cGUNCitfbWJzY2F0DQorX21ic2Nocg0KK19tYnNjbXANCitfbWJzY29sbA0KK19tYnNjcHkNCitfbWJzY3Nwbg0KK19tYnNkZWMNCitfbWJzZHVwDQorX21ic2ljbXANCitfbWJzaWNvbGwNCitfbWJzaW5jDQorX21ic2xlbg0KK19tYnNsd3INCitfbWJzbmJjYXQNCitfbWJzbmJjbXANCitfbWJzbmJjbnQNCitfbWJzbmJjb2xsDQorX21ic25iY3B5DQorX21ic25iaWNtcA0KK19tYnNuYmljb2xsDQorX21ic25ic2V0DQorX21ic25jYXQNCitfbWJzbmNjbnQNCitfbWJzbmNtcA0KK19tYnNuY29sbA0KK19tYnNuY3B5DQorX21ic25leHRjDQorX21ic25pY21wDQorX21ic25pY29sbA0KK19tYnNuaW5jDQorX21ic25zZXQNCitfbWJzcGJyaw0KK19tYnNyY2hyDQorX21ic3Jldg0KK19tYnNzZXQNCitfbWJzc3BuDQorX21ic3NwbnANCitfbWJzc3RyDQorX21ic3Rvaw0KK19tYnN0cmxlbg0KK19tYnN1cHINCitfbWVtY2NweQ0KK19tZW1pY21wDQorX21rZGlyDQorX21rZ210aW1lDQorX21rZ210aW1lNjQNCitfbWt0ZW1wDQorX21rdGltZTY0DQorX21zaXplDQorX25leHRhZnRlcg0KK19uZXh0YWZ0ZXJmDQorX29uZXhpdA0KK19vcGVuDQorX29wZW5fb3NmaGFuZGxlDQorX29zcGxhdGZvcm0gREFUQQ0KK19vc3ZlciBEQVRBDQorX3BjbG9zZQ0KK19wY3R5cGUgREFUQQ0KK19wZ21wdHIgREFUQQ0KK19waXBlDQorX3BvcGVuDQorX3B1cmVjYWxsDQorX3B1dGNoDQorX3B1dGVudg0KK19wdXR3DQorX3B1dHdjaA0KK19wdXR3cw0KK19wd2N0eXBlIERBVEENCitfcmVhZA0KK19yZXNldHN0a29mbHcNCitfcm1kaXINCitfcm10bXANCitfcm90bA0KK19yb3RsNjQNCitfcm90cg0KK19yb3RyNjQNCitfc2NhbGINCitfc2NhbGJmDQorX3NjcHJpbnRmDQorX3Njd3ByaW50Zg0KK19zZWFyY2hlbnYNCitfc2V0X2Vycm9yX21vZGUNCitfc2V0X3NiaF90aHJlc2hvbGQNCitfc2V0ZXJyb3Jtb2RlDQorX3NldGptcA0KK19zZXRqbXBleA0KK19zZXRtYXhzdGRpbw0KK19zZXRtYmNwDQorX3NldG1vZGUNCitfc2V0c3lzdGltZQ0KK19zbGVlcA0KK19zbnByaW50Zg0KK19zbnNjYW5mDQorX3Nud3ByaW50Zg0KK19zbndzY2FuZg0KK19zb3Blbg0KK19zcGF3bmwNCitfc3Bhd25sZQ0KK19zcGF3bmxwDQorX3NwYXdubHBlDQorX3NwYXdudg0KK19zcGF3bnZlDQorX3NwYXdudnANCitfc3Bhd252cGUNCitfc3BsaXRwYXRoDQorX3N0YXQNCitfc3RhdDY0DQorX3N0YXRpNjQNCitfc3RhdHVzZnANCitfc3RyY21waQ0KK19zdHJkYXRlDQorX3N0cmR1cA0KK19zdHJlcnJvcg0KK19zdHJpY21wDQorX3N0cmljb2xsDQorX3N0cmx3cg0KK19zdHJuY29sbA0KK19zdHJuaWNtcA0KK19zdHJuaWNvbGwNCitfc3RybnNldA0KK19zdHJyZXYNCitfc3Ryc2V0DQorX3N0cnRpbWUNCitfc3RydG9pNjQNCitfc3RydG91aTY0DQorX3N0cnVwcg0KK19zd2FiDQorX3N5c19lcnJsaXN0IERBVEENCitfc3lzX25lcnIgREFUQQ0KK190ZWxsDQorX3RlbGxpNjQNCitfdGVtcG5hbQ0KK190aW1lNjQNCitfdGltZXpvbmUgREFUQQ0KK190b2xvd2VyDQorX3RvdXBwZXINCitfdHpuYW1lIERBVEENCitfdHpzZXQNCitfdWk2NHRvYQ0KK191aTY0dG93DQorX3VsdG9hDQorX3VsdG93DQorX3VtYXNrDQorX3VuZ2V0Y2gNCitfdW5nZXR3Y2gNCitfdW5saW5rDQorX3VubG9hZGRsbA0KK191bmxvY2sNCitfdXRpbWUNCitfdXRpbWU2NA0KK192c2NwcmludGYNCitfdnNjd3ByaW50Zg0KK192c25wcmludGYNCitfdnNud3ByaW50Zg0KK193YWNjZXNzDQorX3dhc2N0aW1lDQorX3djaGRpcg0KK193Y2htb2QNCitfd2NtZGxuIERBVEENCitfd2NyZWF0DQorX3djc2R1cA0KK193Y3NlcnJvcg0KK193Y3NpY21wDQorX3djc2ljb2xsDQorX3djc2x3cg0KK193Y3NuY29sbA0KK193Y3NuaWNtcA0KK193Y3NuaWNvbGwNCitfd2NzbnNldA0KK193Y3NyZXYNCitfd2Nzc2V0DQorX3djc3RvaTY0DQorX3djc3RvdWk2NA0KK193Y3N1cHINCitfd2N0aW1lDQorX3djdGltZTY0DQorX3djdHlwZQ0KK193ZW52aXJvbiBEQVRBDQorX3dleGVjbA0KK193ZXhlY2xlDQorX3dleGVjbHANCitfd2V4ZWNscGUNCitfd2V4ZWN2DQorX3dleGVjdmUNCitfd2V4ZWN2cA0KK193ZXhlY3ZwZQ0KK193ZmRvcGVuDQorX3dmaW5kZmlyc3QNCitfd2ZpbmRmaXJzdDY0DQorX3dmaW5kZmlyc3RpNjQNCitfd2ZpbmRuZXh0DQorX3dmaW5kbmV4dDY0DQorX3dmaW5kbmV4dGk2NA0KK193Zm9wZW4NCitfd2ZyZW9wZW4NCitfd2Zzb3Blbg0KK193ZnVsbHBhdGgNCitfd2dldGN3ZA0KK193Z2V0ZGN3ZA0KK193Z2V0ZW52DQorX3dpbm1ham9yIERBVEENCitfd2lubWlub3IgREFUQQ0KK193aW52ZXIgREFUQQ0KK193bWFrZXBhdGgNCitfd21rZGlyDQorX3dta3RlbXANCitfd29wZW4NCitfd3BlcnJvcg0KK193cGdtcHRyIERBVEENCitfd3BvcGVuDQorX3dwdXRlbnYNCitfd3JlbW92ZQ0KK193cmVuYW1lDQorX3dyaXRlDQorX3dybWRpcg0KK193c2VhcmNoZW52DQorX3dzZXRsb2NhbGUNCitfd3NvcGVuDQorX3dzcGF3bmwNCitfd3NwYXdubGUNCitfd3NwYXdubHANCitfd3NwYXdubHBlDQorX3dzcGF3bnYNCitfd3NwYXdudmUNCitfd3NwYXdudnANCitfd3NwYXdudnBlDQorX3dzcGxpdHBhdGgNCitfd3N0YXQNCitfd3N0YXQ2NA0KK193c3RhdGk2NA0KK193c3RyZGF0ZQ0KK193c3RydGltZQ0KK193c3lzdGVtDQorX3d0ZW1wbmFtDQorX3d0bXBuYW0NCitfd3RvZg0KK193dG9pDQorX3d0b2k2NA0KK193dG9sDQorX3d1bmxpbmsNCitfd3V0aW1lDQorX3d1dGltZTY0DQorX3kwDQorX3kxDQorX3luDQorYWJvcnQNCithYnMNCithY29zDQorYWNvc2YNCithc2N0aW1lDQorYXNpbg0KK2FzaW5mDQorYXRhbg0KK2F0YW4yDQorYXRhbjJmDQorYXRhbmYNCithdGV4aXQNCithdG9mDQorYXRvaQ0KK2F0b2wNCitic2VhcmNoDQorY2FsbG9jDQorY2VpbA0KK2NlaWxmDQorY2xlYXJlcnINCitjbG9jaw0KK2Nvcw0KK2Nvc2YNCitjb3NoDQorY29zaGYNCitjdGltZQ0KK2RpZmZ0aW1lDQorZGl2DQorZXhpdA0KK2V4cA0KK2V4cGYNCitmYWJzDQorZmNsb3NlDQorZmVvZg0KK2ZlcnJvcg0KK2ZmbHVzaA0KK2ZnZXRjDQorZmdldHBvcw0KK2ZnZXRzDQorZmdldHdjDQorZmdldHdzDQorZmxvb3INCitmbG9vcmYNCitmbW9kDQorZm1vZGYNCitmb3Blbg0KK2ZwcmludGYNCitmcHV0Yw0KK2ZwdXRzDQorZnB1dHdjDQorZnB1dHdzDQorZnJlYWQNCitmcmVlDQorZnJlb3Blbg0KK2ZyZXhwDQorZnNjYW5mDQorZnNlZWsNCitmc2V0cG9zDQorZnRlbGwNCitmd3ByaW50Zg0KK2Z3cml0ZQ0KK2Z3c2NhbmYNCitnZXRjDQorZ2V0Y2hhcg0KK2dldGVudg0KK2dldHMNCitnZXR3Yw0KK2dldHdjaGFyDQorZ210aW1lDQoraXNfd2N0eXBlDQoraXNhbG51bQ0KK2lzYWxwaGENCitpc2NudHJsDQoraXNkaWdpdA0KK2lzZ3JhcGgNCitpc2xlYWRieXRlDQoraXNsb3dlcg0KK2lzcHJpbnQNCitpc3B1bmN0DQoraXNzcGFjZQ0KK2lzdXBwZXINCitpc3dhbG51bQ0KK2lzd2FscGhhDQoraXN3YXNjaWkNCitpc3djbnRybA0KK2lzd2N0eXBlDQoraXN3ZGlnaXQNCitpc3dncmFwaA0KK2lzd2xvd2VyDQoraXN3cHJpbnQNCitpc3dwdW5jdA0KK2lzd3NwYWNlDQoraXN3dXBwZXINCitpc3d4ZGlnaXQNCitpc3hkaWdpdA0KK2xhYnMNCitsZGV4cA0KK2xkaXYNCitsb2NhbGVjb252DQorbG9jYWx0aW1lDQorbG9nDQorbG9nMTANCitsb2cxMGYNCitsb2dmDQorbG9uZ2ptcA0KK21hbGxvYw0KK21ibGVuDQorbWJzdG93Y3MNCittYnRvd2MNCittZW1jaHINCittZW1jbXANCittZW1jcHkNCittZW1tb3ZlDQorbWVtc2V0DQorbWt0aW1lDQorbW9kZg0KK21vZGZmDQorcGVycm9yDQorcG93DQorcG93Zg0KK3ByaW50Zg0KK3B1dGMNCitwdXRjaGFyDQorcHV0cw0KK3B1dHdjDQorcHV0d2NoYXINCitxc29ydA0KK3JhaXNlDQorcmFuZA0KK3JlYWxsb2MNCityZW1vdmUNCityZW5hbWUNCityZXdpbmQNCitzY2FuZg0KK3NldGJ1Zg0KK3NldGptcA0KK3NldGxvY2FsZQ0KK3NldHZidWYNCitzaWduYWwNCitzaW4NCitzaW5mDQorc2luaA0KK3NpbmhmDQorc3ByaW50Zg0KK3NxcnQNCitzcXJ0Zg0KK3NyYW5kDQorc3NjYW5mDQorc3RyY2F0DQorc3RyY2hyDQorc3RyY21wDQorc3RyY29sbA0KK3N0cmNweQ0KK3N0cmNzcG4NCitzdHJlcnJvcg0KK3N0cmZ0aW1lDQorc3RybGVuDQorc3RybmNhdA0KK3N0cm5jbXANCitzdHJuY3B5DQorc3RycGJyaw0KK3N0cnJjaHINCitzdHJzcG4NCitzdHJzdHINCitzdHJ0b2QNCitzdHJ0b2sNCitzdHJ0b2wNCitzdHJ0b3VsDQorc3RyeGZybQ0KK3N3cHJpbnRmDQorc3dzY2FuZg0KK3N5c3RlbQ0KK3Rhbg0KK3RhbmYNCit0YW5oDQordGltZQ0KK3RtcGZpbGUNCit0bXBuYW0NCit0b2xvd2VyDQordG91cHBlcg0KK3Rvd2xvd2VyDQordG93dXBwZXINCit1bmdldGMNCit1bmdldHdjDQordmZwcmludGYNCit2ZndwcmludGYNCit2cHJpbnRmDQordnNwcmludGYNCit2c3dwcmludGYNCit2d3ByaW50Zg0KK3djc2NhdA0KK3djc2Nocg0KK3djc2NtcA0KK3djc2NvbGwNCit3Y3NjcHkNCit3Y3Njc3BuDQord2NzZnRpbWUNCit3Y3NsZW4NCit3Y3NuY2F0DQord2NzbmNtcA0KK3djc25jcHkNCit3Y3NwYnJrDQord2NzcmNocg0KK3djc3Nwbg0KK3djc3N0cg0KK3djc3RvZA0KK3djc3Rvaw0KK3djc3RvbA0KK3djc3RvbWJzDQord2NzdG91bA0KK3djc3hmcm0NCit3Y3RvbWINCit3cHJpbnRmDQord3NjYW5mDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9uYXRzdGFydC5jIGIvbWluZ3ctdzY0LWNydC9uYXRzdGFydC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIwODI3YzkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L25hdHN0YXJ0LmMKQEAgLTAsMCArMSw4IEBACisjaW5jbHVkZSA8Y3J0ZGVmcy5oPgorI2luY2x1ZGUgPGludGVybmFsLmg+CisKK19QR0xPQkFMCit2b2xhdGlsZSB1bnNpZ25lZCBpbnQgX19uYXRpdmVfZGxsbWFpbl9yZWFzb24gPSBVSU5UX01BWDsKK3ZvbGF0aWxlIHVuc2lnbmVkIGludCBfX25hdGl2ZV92Y2Nscml0X3JlYXNvbiA9IFVJTlRfTUFYOwordm9sYXRpbGUgX19lbmF0aXZlX3N0YXJ0dXBfc3RhdGUgX19uYXRpdmVfc3RhcnR1cF9zdGF0ZTsKK3ZvbGF0aWxlIHZvaWQgKl9fbmF0aXZlX3N0YXJ0dXBfbG9jazsKZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvb3NjYWxscy5oIGIvbWluZ3ctdzY0LWNydC9vc2NhbGxzLmgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODZkMzBhOQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvb3NjYWxscy5oCkBAIC0wLDAgKzEsNDUgQEAKKyNpZm5kZWYgX0lOQ19PU0NBTExTCisjZGVmaW5lIF9JTkNfT1NDQUxMUworCisjaWZuZGVmIF9DUlRCTEQKKyNlcnJvciBFUlJPUjogVXNlIG9mIEMgcnVudGltZSBsaWJyYXJ5IGludGVybmFsIGhlYWRlciBmaWxlLgorI2VuZGlmCisKKyNpbmNsdWRlIDxjcnRkZWZzLmg+CisKKyNpZmRlZiBOVUxMCisjdW5kZWYgTlVMTAorI2VuZGlmCisKKyNkZWZpbmUgTk9NSU5NQVgKKworI2RlZmluZSBfV0lOMzJfRlVTSU9OIDB4MDEwMAorI2luY2x1ZGUgPHdpbmRvd3MuaD4KKworI2lmbmRlZiBOVUxMCisjaWZkZWYgX19jcGx1c3BsdXMKKyNkZWZpbmUgTlVMTCAwCisjZWxzZQorI2RlZmluZSBOVUxMICgodm9pZCAqKTApCisjZW5kaWYKKyNlbmRpZgorCit0eXBlZGVmIHN0cnVjdCBfRlRJTUUKK3sKKyAgdW5zaWduZWQgc2hvcnQgdHdvc2VjcyA6IDU7CisgIHVuc2lnbmVkIHNob3J0IG1pbnV0ZXMgOiA2OworICB1bnNpZ25lZCBzaG9ydCBob3VycyA6IDU7Cit9IEZUSU1FOworCit0eXBlZGVmIEZUSU1FICpQRlRJTUU7CisKK3R5cGVkZWYgc3RydWN0IF9GREFURQoreworICB1bnNpZ25lZCBzaG9ydCBkYXkgOiA1OworICB1bnNpZ25lZCBzaG9ydCBtb250aCA6IDQ7CisgIHVuc2lnbmVkIHNob3J0IHllYXIgOiA3OworfSBGREFURTsKKwordHlwZWRlZiBGREFURSAqUEZEQVRFOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvcGVzZWN0LmMgYi9taW5ndy13NjQtY3J0L3Blc2VjdC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI4ODMzMmUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L3Blc2VjdC5jCkBAIC0wLDAgKzEsNjQgQEAKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisKKyNpZiBkZWZpbmVkIChfV0lONjQpICYmIGRlZmluZWQgKF9faWE2NF9fKQorI2Vycm9yIEZJWE1FOiBVbnN1cHBvcnRlZCBfSW1hZ2VCYXNlIGltcGxlbWVudGF0aW9uLgorI2Vsc2UKKy8qIFRoaXMgc3ltYm9sIGlzIGRlZmluZWQgYnkgdGhlIGxpbmtlci4gICovCitleHRlcm4gSU1BR0VfRE9TX0hFQURFUiBfSW1hZ2VCYXNlOworI2VuZGlmCisKK0JPT0wKK19WYWxpZGF0ZUltYWdlQmFzZSAoUEJZVEUgcEltYWdlQmFzZSkKK3sKKyAgUElNQUdFX0RPU19IRUFERVIgcERPU0hlYWRlcjsKKyAgUElNQUdFX05UX0hFQURFUlMgcE5USGVhZGVyOworICBQSU1BR0VfT1BUSU9OQUxfSEVBREVSIHBPcHRIZWFkZXI7CisKKyAgcERPU0hlYWRlciA9IChQSU1BR0VfRE9TX0hFQURFUikgcEltYWdlQmFzZTsKKyAgaWYgKHBET1NIZWFkZXItPmVfbWFnaWMgIT0gSU1BR0VfRE9TX1NJR05BVFVSRSkKKyAgICByZXR1cm4gRkFMU0U7CisgIHBOVEhlYWRlciA9IChQSU1BR0VfTlRfSEVBREVSUykgKChQQllURSkgcERPU0hlYWRlciArIHBET1NIZWFkZXItPmVfbGZhbmV3KTsKKyAgaWYgKHBOVEhlYWRlci0+U2lnbmF0dXJlICE9IElNQUdFX05UX1NJR05BVFVSRSkKKyAgICByZXR1cm4gRkFMU0U7CisgIHBPcHRIZWFkZXIgPSAoUElNQUdFX09QVElPTkFMX0hFQURFUikgJnBOVEhlYWRlci0+T3B0aW9uYWxIZWFkZXI7CisgIGlmIChwT3B0SGVhZGVyLT5NYWdpYyAhPSBJTUFHRV9OVF9PUFRJT05BTF9IRFJfTUFHSUMpCisgICAgcmV0dXJuIEZBTFNFOworICByZXR1cm4gVFJVRTsKK30KKworUElNQUdFX1NFQ1RJT05fSEVBREVSCitfRmluZFBFU2VjdGlvbiAoUEJZVEUgcEltYWdlQmFzZSwgRFdPUkRfUFRSIHJ2YSkKK3sKKyAgUElNQUdFX05UX0hFQURFUlMgcE5USGVhZGVyOworICBQSU1BR0VfU0VDVElPTl9IRUFERVIgcFNlY3Rpb247CisgIHVuc2lnbmVkIGludCBpU2VjdGlvbjsKKworICBwTlRIZWFkZXIgPSAoUElNQUdFX05UX0hFQURFUlMpIChwSW1hZ2VCYXNlICsgKChQSU1BR0VfRE9TX0hFQURFUikgcEltYWdlQmFzZSktPmVfbGZhbmV3KTsKKworICBmb3IgKGlTZWN0aW9uID0gMCwgcFNlY3Rpb24gPSBJTUFHRV9GSVJTVF9TRUNUSU9OIChwTlRIZWFkZXIpOworICAgIGlTZWN0aW9uIDwgcE5USGVhZGVyLT5GaWxlSGVhZGVyLk51bWJlck9mU2VjdGlvbnM7CisgICAgKytpU2VjdGlvbiwrK3BTZWN0aW9uKQorICAgIHsKKyAgICAgIGlmIChydmEgPj0gcFNlY3Rpb24tPlZpcnR1YWxBZGRyZXNzCisJICAmJiBydmEgPCBwU2VjdGlvbi0+VmlydHVhbEFkZHJlc3MgKyBwU2VjdGlvbi0+TWlzYy5WaXJ0dWFsU2l6ZSkKKwlyZXR1cm4gcFNlY3Rpb247CisgICAgfQorICByZXR1cm4gTlVMTDsKK30KKworQk9PTAorX0lzTm9ud3JpdGFibGVJbkN1cnJlbnRJbWFnZSAoUEJZVEUgcFRhcmdldCkKK3sKKyAgUEJZVEUgcEltYWdlQmFzZTsKKyAgRFdPUkRfUFRSIHJ2YVRhcmdldDsKKyAgUElNQUdFX1NFQ1RJT05fSEVBREVSIHBTZWN0aW9uOworCisgIHBJbWFnZUJhc2UgPSAoUEJZVEUpICZfSW1hZ2VCYXNlOworICBpZiAoISBfVmFsaWRhdGVJbWFnZUJhc2UgKHBJbWFnZUJhc2UpKQorICAgIHJldHVybiBGQUxTRTsKKyAgcnZhVGFyZ2V0ID0gcFRhcmdldCAtIHBJbWFnZUJhc2U7CisgIHBTZWN0aW9uID0gX0ZpbmRQRVNlY3Rpb24gKHBJbWFnZUJhc2UsIHJ2YVRhcmdldCk7CisgIGlmIChwU2VjdGlvbiA9PSBOVUxMKQorICAgIHJldHVybiBGQUxTRTsKKyAgcmV0dXJuIChwU2VjdGlvbi0+Q2hhcmFjdGVyaXN0aWNzICYgSU1BR0VfU0NOX01FTV9XUklURSkgPT0gMDsKK30KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvcHNldWRvLXJlbG9jLWxpc3QuYyBiL21pbmd3LXc2NC1jcnQvcHNldWRvLXJlbG9jLWxpc3QuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYmIyYjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9wc2V1ZG8tcmVsb2MtbGlzdC5jCkBAIC0wLDAgKzEsMiBAQAorY2hhciBfX1JVTlRJTUVfUFNFVURPX1JFTE9DX0xJU1RfRU5EX18gPSAwOworY2hhciBfX1JVTlRJTUVfUFNFVURPX1JFTE9DX0xJU1RfXyA9IDA7CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3BzZXVkby1yZWxvYy5jIGIvbWluZ3ctdzY0LWNydC9wc2V1ZG8tcmVsb2MuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNDMzNzgzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9wc2V1ZG8tcmVsb2MuYwpAQCAtMCwwICsxLDI5IEBACisjaW5jbHVkZSA8d2luZG93cy5oPgorCitleHRlcm4gY2hhciBfX1JVTlRJTUVfUFNFVURPX1JFTE9DX0xJU1RfXzsKK2V4dGVybiBjaGFyIF9fUlVOVElNRV9QU0VVRE9fUkVMT0NfTElTVF9FTkRfXzsKK2V4dGVybiBjaGFyIF9pbWFnZV9iYXNlX187CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgRFdPUkQgYWRkZW5kOworICBEV09SRCB0YXJnZXQ7Cit9IHJ1bnRpbWVfcHNldWRvX3JlbG9jOworCitzdGF0aWMgdm9pZAorZG9fcHNldWRvX3JlbG9jICh2b2lkKiBzdGFydCx2b2lkICplbmQsdm9pZCAqYmFzZSkKK3sKKyAgcHRyZGlmZl90IHJlbG9jX3RhcmdldDsKKyAgcnVudGltZV9wc2V1ZG9fcmVsb2MgKnI7CisgIAorICBmb3IgKHIgPSAocnVudGltZV9wc2V1ZG9fcmVsb2MqKSBzdGFydDsgciA8IChydW50aW1lX3BzZXVkb19yZWxvYyopIGVuZDsgcisrKQorICAgIHsKKyAgICAgIHJlbG9jX3RhcmdldCA9IChwdHJkaWZmX3QpIGJhc2UgKyByLT50YXJnZXQ7CisgICAgICAqKChwdHJkaWZmX3QqKSByZWxvY190YXJnZXQpICs9IHItPmFkZGVuZDsKKyAgICB9Cit9CisKK3ZvaWQKK19wZWkzODZfcnVudGltZV9yZWxvY2F0b3IgKCkKK3sKKyAgZG9fcHNldWRvX3JlbG9jICgmX19SVU5USU1FX1BTRVVET19SRUxPQ19MSVNUX18sJl9fUlVOVElNRV9QU0VVRE9fUkVMT0NfTElTVF9FTkRfXywmX2ltYWdlX2Jhc2VfXyk7Cit9CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3NlY3RfYXR0cmlicy5oIGIvbWluZ3ctdzY0LWNydC9zZWN0X2F0dHJpYnMuaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NzYxZTVjCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9zZWN0X2F0dHJpYnMuaApAQCAtMCwwICsxLDUxIEBACisjaWYgZGVmaW5lZCAoX19pYTY0X18pIHx8IGRlZmluZWQgKF9feDg2XzY0KQorI2RlZmluZSBfQVRUUklCVVRFUworI2Vsc2UKKyNkZWZpbmUgX0FUVFJJQlVURVMgc2hhcmVkCisjZW5kaWYKKworI3ByYWdtYSBzZWN0aW9uKCIuQ1JUTVAkWENBIixsb25nLF9BVFRSSUJVVEVTKQorI3ByYWdtYSBzZWN0aW9uKCIuQ1JUTVAkWENaIixsb25nLF9BVFRSSUJVVEVTKQorI3ByYWdtYSBzZWN0aW9uKCIuQ1JUTVAkWElBIixsb25nLF9BVFRSSUJVVEVTKQorI3ByYWdtYSBzZWN0aW9uKCIuQ1JUTVAkWElaIixsb25nLF9BVFRSSUJVVEVTKQorCisjcHJhZ21hIHNlY3Rpb24oIi5DUlRNQSRYQ0EiLGxvbmcsX0FUVFJJQlVURVMpCisjcHJhZ21hIHNlY3Rpb24oIi5DUlRNQSRYQ1oiLGxvbmcsX0FUVFJJQlVURVMpCisjcHJhZ21hIHNlY3Rpb24oIi5DUlRNQSRYSUEiLGxvbmcsX0FUVFJJQlVURVMpCisjcHJhZ21hIHNlY3Rpb24oIi5DUlRNQSRYSVoiLGxvbmcsX0FUVFJJQlVURVMpCisKKyNwcmFnbWEgc2VjdGlvbigiLkNSVFZUJFhDQSIsbG9uZyxfQVRUUklCVVRFUykKKyNwcmFnbWEgc2VjdGlvbigiLkNSVFZUJFhDWiIsbG9uZyxfQVRUUklCVVRFUykKKworI3ByYWdtYSBzZWN0aW9uKCIuQ1JUJFhDQSIsbG9uZyxfQVRUUklCVVRFUykKKyNwcmFnbWEgc2VjdGlvbigiLkNSVCRYQ0FBIixsb25nLF9BVFRSSUJVVEVTKQorI3ByYWdtYSBzZWN0aW9uKCIuQ1JUJFhDQyIsbG9uZyxfQVRUUklCVVRFUykKKyNwcmFnbWEgc2VjdGlvbigiLkNSVCRYQ1oiLGxvbmcsX0FUVFJJQlVURVMpCisjcHJhZ21hIHNlY3Rpb24oIi5DUlQkWERBIixsb25nLF9BVFRSSUJVVEVTKQorI3ByYWdtYSBzZWN0aW9uKCIuQ1JUJFhEQyIsbG9uZyxfQVRUUklCVVRFUykKKyNwcmFnbWEgc2VjdGlvbigiLkNSVCRYRFoiLGxvbmcsX0FUVFJJQlVURVMpCisjcHJhZ21hIHNlY3Rpb24oIi5DUlQkWElBIixsb25nLF9BVFRSSUJVVEVTKQorI3ByYWdtYSBzZWN0aW9uKCIuQ1JUJFhJQUEiLGxvbmcsX0FUVFJJQlVURVMpCisjcHJhZ21hIHNlY3Rpb24oIi5DUlQkWElDIixsb25nLF9BVFRSSUJVVEVTKQorI3ByYWdtYSBzZWN0aW9uKCIuQ1JUJFhJRCIsbG9uZyxfQVRUUklCVVRFUykKKyNwcmFnbWEgc2VjdGlvbigiLkNSVCRYSVkiLGxvbmcsX0FUVFJJQlVURVMpCisjcHJhZ21hIHNlY3Rpb24oIi5DUlQkWElaIixsb25nLF9BVFRSSUJVVEVTKQorI3ByYWdtYSBzZWN0aW9uKCIuQ1JUJFhMQSIsbG9uZyxfQVRUUklCVVRFUykKKyNwcmFnbWEgc2VjdGlvbigiLkNSVCRYTEMiLGxvbmcsX0FUVFJJQlVURVMpCisjcHJhZ21hIHNlY3Rpb24oIi5DUlQkWExEIixsb25nLF9BVFRSSUJVVEVTKQorI3ByYWdtYSBzZWN0aW9uKCIuQ1JUJFhMWiIsbG9uZyxfQVRUUklCVVRFUykKKyNwcmFnbWEgc2VjdGlvbigiLkNSVCRYUEEiLGxvbmcsX0FUVFJJQlVURVMpCisjcHJhZ21hIHNlY3Rpb24oIi5DUlQkWFBYIixsb25nLF9BVFRSSUJVVEVTKQorI3ByYWdtYSBzZWN0aW9uKCIuQ1JUJFhQWEEiLGxvbmcsX0FUVFJJQlVURVMpCisjcHJhZ21hIHNlY3Rpb24oIi5DUlQkWFBaIixsb25nLF9BVFRSSUJVVEVTKQorI3ByYWdtYSBzZWN0aW9uKCIuQ1JUJFhUQSIsbG9uZyxfQVRUUklCVVRFUykKKyNwcmFnbWEgc2VjdGlvbigiLkNSVCRYVEIiLGxvbmcsX0FUVFJJQlVURVMpCisjcHJhZ21hIHNlY3Rpb24oIi5DUlQkWFRYIixsb25nLF9BVFRSSUJVVEVTKQorI3ByYWdtYSBzZWN0aW9uKCIuQ1JUJFhUWiIsbG9uZyxfQVRUUklCVVRFUykKKyNwcmFnbWEgc2VjdGlvbigiLnJkYXRhJFQiLGxvbmcscmVhZCkKKyNwcmFnbWEgc2VjdGlvbigiLnJ0YyRJQUEiLGxvbmcscmVhZCkKKyNwcmFnbWEgc2VjdGlvbigiLnJ0YyRJWloiLGxvbmcscmVhZCkKKyNwcmFnbWEgc2VjdGlvbigiLnJ0YyRUQUEiLGxvbmcscmVhZCkKKyNwcmFnbWEgc2VjdGlvbigiLnJ0YyRUWloiLGxvbmcscmVhZCkKKworI2RlZmluZSBfQ1JUQUxMT0MoeCkgX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24gKHgpICkpCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3NoZWxsMzIuZGVmIGIvbWluZ3ctdzY0LWNydC9zaGVsbDMyLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45OWM3OWM4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9zaGVsbDMyLmRlZgpAQCAtMCwwICsxLDMxNiBAQAorOyANCis7IEV4cG9ydHMgb2YgZmlsZSBTSEVMTDMyLmRsbA0KKzsNCis7IEF1dG9nZW5lcmF0ZWQgYnkgZ2VuX2V4cG9ydGRlZg0KKzsgV3JpdHRlbiBieSBLYWkgVGlldHosIDIwMDcNCis7DQorRVhQT1JUUw0KK1NIQ2hhbmdlTm90aWZ5UmVnaXN0ZXINCitTSERlZkV4dHJhY3RJY29uQQ0KK1NIQ2hhbmdlTm90aWZ5RGVyZWdpc3Rlcg0KK1NIRGVmRXh0cmFjdEljb25XDQorUGlmTWdyX09wZW5Qcm9wZXJ0aWVzDQorUGlmTWdyX0dldFByb3BlcnRpZXMNCitQaWZNZ3JfU2V0UHJvcGVydGllcw0KK1BpZk1ncl9DbG9zZVByb3BlcnRpZXMNCitTSFN0YXJ0TmV0Q29ubmVjdGlvbkRpYWxvZ1cNCitJTEZpbmRMYXN0SUQNCitJTFJlbW92ZUxhc3RJRA0KK0lMQ2xvbmUNCitJTENsb25lRmlyc3QNCitJTElzRXF1YWwNCitEQURfRHJhZ0VudGVyRXgyDQorSUxJc1BhcmVudA0KK0lMRmluZENoaWxkDQorSUxDb21iaW5lDQorSUxMb2FkRnJvbVN0cmVhbQ0KK0lMU2F2ZVRvU3RyZWFtDQorU0hJTENyZWF0ZUZyb21QYXRoDQorSXNMRk5Ecml2ZUENCitJc0xGTkRyaXZlVw0KK1BhdGhJc0V4ZQ0KK1BhdGhNYWtlVW5pcXVlTmFtZQ0KK1BhdGhRdWFsaWZ5DQorUGF0aFJlc29sdmUNCitSZXN0YXJ0RGlhbG9nDQorUGlja0ljb25EbGcNCitHZXRGaWxlTmFtZUZyb21Ccm93c2UNCitEcml2ZVR5cGUNCitJc05ldERyaXZlDQorU2hlbGxfTWVyZ2VNZW51cw0KK1NIR2V0U2V0U2V0dGluZ3MNCitTaGVsbF9HZXRJbWFnZUxpc3RzDQorU2hlbGxfR2V0Q2FjaGVkSW1hZ2VJbmRleA0KK1NIU2hlbGxGb2xkZXJWaWV3X01lc3NhZ2UNCitTSENyZWF0ZVN0ZEVudW1GbXRFdGMNCitQYXRoWWV0QW5vdGhlck1ha2VVbmlxdWVOYW1lDQorU0hNYXBQSURMVG9TeXN0ZW1JbWFnZUxpc3RJbmRleA0KK1NIT3BlblByb3BTaGVldFcNCitPcGVuQXNfUnVuRExMDQorT3BlblJlZ1N0cmVhbQ0KK1NIRG9EcmFnRHJvcA0KK1NIQ2xvbmVTcGVjaWFsSURMaXN0DQorU0hGaW5kRmlsZXMNCitQYXRoR2V0U2hvcnRQYXRoDQorU0hHZXRSZWFsSURMDQorU0hSZXN0cmljdGVkDQorT3BlbkFzX1J1bkRMTEENCitTSENvQ3JlYXRlSW5zdGFuY2UNCitTaWduYWxGaWxlT3Blbg0KK09wZW5Bc19SdW5ETExXDQorQWN0aXZhdGVfUnVuRExMDQorQXBwQ29tcGF0X1J1bkRMTFcNCitDaGVja0VzY2FwZXNBDQorQ2hlY2tFc2NhcGVzVw0KK0NvbW1hbmRMaW5lVG9Bcmd2Vw0KK0NvbnRyb2xfRmlsbENhY2hlX1J1bkRMTA0KK0NvbnRyb2xfRmlsbENhY2hlX1J1bkRMTEENCitDb250cm9sX0ZpbGxDYWNoZV9SdW5ETExXDQorQ29udHJvbF9SdW5ETEwNCitDb250cm9sX1J1bkRMTEENCitDb250cm9sX1J1bkRMTEFzVXNlclcNCitDb250cm9sX1J1bkRMTFcNCitEbGxDYW5VbmxvYWROb3cNCitEbGxHZXRDbGFzc09iamVjdA0KK0lzTEZORHJpdmUNCitEbGxHZXRWZXJzaW9uDQorU0hGbHVzaENsaXBib2FyZA0KK0RsbEluc3RhbGwNCitEbGxSZWdpc3RlclNlcnZlcg0KK0RBRF9BdXRvU2Nyb2xsDQorREFEX0RyYWdFbnRlckV4DQorREFEX0RyYWdMZWF2ZQ0KK0RsbFVucmVnaXN0ZXJTZXJ2ZXINCitEQURfRHJhZ01vdmUNCitEb0Vudmlyb25tZW50U3Vic3RBDQorREFEX1NldERyYWdJbWFnZQ0KK0RBRF9TaG93RHJhZ0ltYWdlDQorRG9FbnZpcm9ubWVudFN1YnN0Vw0KK0RyYWdBY2NlcHRGaWxlcw0KK0RyYWdGaW5pc2gNCitEcmFnUXVlcnlGaWxlDQorRHJhZ1F1ZXJ5RmlsZUENCitEcmFnUXVlcnlGaWxlQW9yVw0KK0RyYWdRdWVyeUZpbGVXDQorU0hDTFNJREZyb21TdHJpbmcNCitTSE1hcElETGlzdFRvSW1hZ2VMaXN0SW5kZXhBc3luYw0KK1NIRmluZF9Jbml0TWVudVBvcHVwDQorRHJhZ1F1ZXJ5UG9pbnQNCitTSExvYWRPTEUNCitJTEdldFNpemUNCitJTEdldE5leHQNCitJTEFwcGVuZElEDQorSUxGcmVlDQorSUxDcmVhdGVGcm9tUGF0aA0KK1NIUnVuQ29udHJvbFBhbmVsDQorU0hTaW1wbGVJRExpc3RGcm9tUGF0aA0KK1dpbjMyRGVsZXRlRmlsZQ0KK1NIQ3JlYXRlRGlyZWN0b3J5DQorQ2FsbENQTEVudHJ5MTYNCitTSEFkZEZyb21Qcm9wU2hlZXRFeHRBcnJheQ0KK1NIQ3JlYXRlUHJvcFNoZWV0RXh0QXJyYXkNCitTSERlc3Ryb3lQcm9wU2hlZXRFeHRBcnJheQ0KK1NIUmVwbGFjZUZyb21Qcm9wU2hlZXRFeHRBcnJheQ0KK1BhdGhDbGVhbnVwU3BlYw0KK1NIVmFsaWRhdGVVTkMNCitTSENyZWF0ZVNoZWxsRm9sZGVyVmlld0V4DQorU0hTZXRJbnN0YW5jZUV4cGxvcmVyDQorU0hPYmplY3RQcm9wZXJ0aWVzDQorU0hHZXROZXdMaW5rSW5mb0ENCitTSEdldE5ld0xpbmtJbmZvVw0KK1NoZWxsTWVzc2FnZUJveFcNCitTaGVsbE1lc3NhZ2VCb3hBDQorSUxDcmVhdGVGcm9tUGF0aEENCitJTENyZWF0ZUZyb21QYXRoVw0KK1NIVXBkYXRlSW1hZ2VBDQorU0hVcGRhdGVJbWFnZVcNCitTSEhhbmRsZVVwZGF0ZUltYWdlDQorU0hGcmVlDQorU0hBbGxvYw0KK0R1cGxpY2F0ZUljb24NCitFeHRyYWN0QXNzb2NpYXRlZEljb25BDQorRXh0cmFjdEFzc29jaWF0ZWRJY29uRXhBDQorRXh0cmFjdEFzc29jaWF0ZWRJY29uRXhXDQorRXh0cmFjdEFzc29jaWF0ZWRJY29uVw0KK0V4dHJhY3RJY29uQQ0KK0V4dHJhY3RJY29uRXgNCitFeHRyYWN0SWNvbkV4QQ0KK0V4dHJhY3RJY29uRXhXDQorRXh0cmFjdEljb25SZXNJbmZvQQ0KK0V4dHJhY3RJY29uUmVzSW5mb1cNCitFeHRyYWN0SWNvblcNCitFeHRyYWN0VmVyc2lvblJlc291cmNlMTZXDQorRmluZEV4ZURsZ1Byb2MNCitGaW5kRXhlY3V0YWJsZUENCitGaW5kRXhlY3V0YWJsZVcNCitGcmVlSWNvbkxpc3QNCitJbnRlcm5hbEV4dHJhY3RJY29uTGlzdEENCitJbnRlcm5hbEV4dHJhY3RJY29uTGlzdFcNCitQYXRoSXNTbG93Vw0KK1BhdGhJc1Nsb3dBDQorU0hUZXN0VG9rZW5NZW1iZXJzaGlwDQorT3B0aW9uc19SdW5ETEwNCitTSENyZWF0ZVNoZWxsRm9sZGVyVmlldw0KK09wdGlvbnNfUnVuRExMQQ0KK09wdGlvbnNfUnVuRExMVw0KK1ByaW50ZXJzR2V0Q29tbWFuZF9SdW5ETEwNCitQcmludGVyc0dldENvbW1hbmRfUnVuRExMQQ0KK1ByaW50ZXJzR2V0Q29tbWFuZF9SdW5ETExXDQorUmVhbFNoZWxsRXhlY3V0ZUENCitSZWFsU2hlbGxFeGVjdXRlRXhBDQorUmVhbFNoZWxsRXhlY3V0ZUV4Vw0KK1JlYWxTaGVsbEV4ZWN1dGVXDQorUmVnZW5lcmF0ZVVzZXJFbnZpcm9ubWVudA0KK1NIQWRkVG9SZWNlbnREb2NzDQorU0hBcHBCYXJNZXNzYWdlDQorU0hCaW5kVG9QYXJlbnQNCitTSEJyb3dzZUZvckZvbGRlcg0KK1NIQnJvd3NlRm9yRm9sZGVyQQ0KK1NIQnJvd3NlRm9yRm9sZGVyVw0KK1NIQ2hhbmdlTm90aWZ5DQorU0hDaGFuZ2VOb3RpZnlTdXNwZW5kUmVzdW1lDQorU0hDcmVhdGVEaXJlY3RvcnlFeEENCitTSENyZWF0ZURpcmVjdG9yeUV4Vw0KK1NIQ3JlYXRlTG9jYWxTZXJ2ZXJSdW5EbGwNCitTSENyZWF0ZVByb2Nlc3NBc1VzZXJXDQorU0hDcmVhdGVRdWVyeUNhbmNlbEF1dG9QbGF5TW9uaWtlcg0KK1NIQ3JlYXRlU2hlbGxJdGVtDQorU0hFbXB0eVJlY3ljbGVCaW5BDQorU0hFbXB0eVJlY3ljbGVCaW5XDQorU0hFbmFibGVTZXJ2aWNlT2JqZWN0DQorU0hFbnVtZXJhdGVVbnJlYWRNYWlsQWNjb3VudHNXDQorU0hFeHRyYWN0SWNvbnNXDQorU0hGaWxlT3BlcmF0aW9uDQorU0hGaWxlT3BlcmF0aW9uQQ0KK1NIRmlsZU9wZXJhdGlvblcNCitTSEZvcm1hdERyaXZlDQorU0hGcmVlTmFtZU1hcHBpbmdzDQorU0hHZXREYXRhRnJvbUlETGlzdEENCitTSEdldERhdGFGcm9tSURMaXN0Vw0KK1NIR2V0RGVza3RvcEZvbGRlcg0KK1NIR2V0RGlza0ZyZWVTcGFjZUENCitTSEdldERpc2tGcmVlU3BhY2VFeEENCitTSEdldERpc2tGcmVlU3BhY2VFeFcNCitTSEdldEZpbGVJbmZvDQorU0hHZXRGaWxlSW5mb0ENCitTSEdldEZpbGVJbmZvVw0KK1NIR2V0Rm9sZGVyTG9jYXRpb24NCitTSEdldEZvbGRlclBhdGhBDQorU0hHZXRGb2xkZXJQYXRoQW5kU3ViRGlyQQ0KK1NIR2V0Rm9sZGVyUGF0aEFuZFN1YkRpclcNCitTSEdldEZvbGRlclBhdGhXDQorU0hHZXRJY29uT3ZlcmxheUluZGV4QQ0KK1NIR2V0SWNvbk92ZXJsYXlJbmRleFcNCitTSEdldEluc3RhbmNlRXhwbG9yZXINCitTSEdldE1hbGxvYw0KK1NIR2V0TmV3TGlua0luZm8NCitTSEdldFBhdGhGcm9tSURMaXN0DQorU0hHZXRQYXRoRnJvbUlETGlzdEENCitTSEdldFBhdGhGcm9tSURMaXN0Vw0KK1NIR2V0U2V0dGluZ3MNCitTSEdldFNwZWNpYWxGb2xkZXJMb2NhdGlvbg0KK1NIR2V0U3BlY2lhbEZvbGRlclBhdGhBDQorU0hHZXRTcGVjaWFsRm9sZGVyUGF0aFcNCitTSEdldFVucmVhZE1haWxDb3VudFcNCitTSEhlbHBTaG9ydGN1dHNfUnVuRExMDQorU0hIZWxwU2hvcnRjdXRzX1J1bkRMTEENCitTSEhlbHBTaG9ydGN1dHNfUnVuRExMVw0KK1NISW52b2tlUHJpbnRlckNvbW1hbmRBDQorU0hJbnZva2VQcmludGVyQ29tbWFuZFcNCitTSElzRmlsZUF2YWlsYWJsZU9mZmxpbmUNCitTSExvYWRJblByb2MNCitTSExvYWROb25sb2FkZWRJY29uT3ZlcmxheUlkZW50aWZpZXJzDQorU0hPcGVuRm9sZGVyQW5kU2VsZWN0SXRlbXMNCitTSFBhcnNlRGlzcGxheU5hbWUNCitTSFBhdGhQcmVwYXJlRm9yV3JpdGVBDQorU0hQYXRoUHJlcGFyZUZvcldyaXRlVw0KK1NIUXVlcnlSZWN5Y2xlQmluQQ0KK1NIUXVlcnlSZWN5Y2xlQmluVw0KK1NIU2V0TG9jYWxpemVkTmFtZQ0KK1NIU2V0VW5yZWFkTWFpbENvdW50Vw0KK1NIVXBkYXRlUmVjeWNsZUJpbkljb24NCitTaGVDaGFuZ2VEaXJBDQorU2hlQ2hhbmdlRGlyRXhBDQorU2hlQ2hhbmdlRGlyRXhXDQorU2hlQ2hhbmdlRGlyVw0KK1NoZUNvbnZlcnRQYXRoVw0KK1NoZUZ1bGxQYXRoQQ0KK1NoZUZ1bGxQYXRoVw0KK1NoZUdldEN1ckRyaXZlDQorU2hlR2V0RGlyQQ0KK1NoZUdldERpckV4Vw0KK1NoZUdldERpclcNCitTaGVHZXRQYXRoT2Zmc2V0Vw0KK1NoZVJlbW92ZVF1b3Rlc0ENCitTaGVSZW1vdmVRdW90ZXNXDQorU2hlU2V0Q3VyRHJpdmUNCitTaGVTaG9ydGVuUGF0aEENCitTaGVTaG9ydGVuUGF0aFcNCitTaGVsbEFib3V0QQ0KK1NoZWxsQWJvdXRXDQorU2hlbGxFeGVjX1J1bkRMTA0KK1NoZWxsRXhlY19SdW5ETExBDQorU2hlbGxFeGVjX1J1bkRMTFcNCitTaGVsbEV4ZWN1dGVBDQorU2hlbGxFeGVjdXRlRXgNCitTaGVsbEV4ZWN1dGVFeEENCitTaGVsbEV4ZWN1dGVFeFcNCitTaGVsbEV4ZWN1dGVXDQorU2hlbGxIb29rUHJvYw0KK1NoZWxsX05vdGlmeUljb24NCitTaGVsbF9Ob3RpZnlJY29uQQ0KK1NoZWxsX05vdGlmeUljb25XDQorU3RyQ2hyQQ0KK1N0ckNocklBDQorU3RyQ2hySVcNCitTdHJDaHJXDQorU3RyQ21wTkENCitTdHJDbXBOSUENCitTdHJDbXBOSVcNCitTdHJDbXBOVw0KK1N0ckNweU5BDQorU3RyQ3B5TlcNCitTdHJOQ21wQQ0KK1N0ck5DbXBJQQ0KK1N0ck5DbXBJVw0KK1N0ck5DbXBXDQorU3RyTkNweUENCitTdHJOQ3B5Vw0KK1N0clJDaHJBDQorU3RyUkNocklBDQorU3RyUkNocklXDQorU3RyUkNoclcNCitTdHJSU3RyQQ0KK1N0clJTdHJJQQ0KK1N0clJTdHJJVw0KK1N0clJTdHJXDQorU3RyU3RyQQ0KK1N0clN0cklBDQorU3RyU3RySVcNCitTdHJTdHJXDQorV09XU2hlbGxFeGVjdXRlDQorU0hBbGxvY1NoYXJlZA0KK1NITG9ja1NoYXJlZA0KK1NIVW5sb2NrU2hhcmVkDQorU0hGcmVlU2hhcmVkDQorUmVhbERyaXZlVHlwZQ0KK1NIRmx1c2hTRkNhY2hlDQorU0hDaGFuZ2VOb3RpZmljYXRpb25fTG9jaw0KK1NIQ2hhbmdlTm90aWZpY2F0aW9uX1VubG9jaw0KK1dyaXRlQ2FiaW5ldFN0YXRlDQorUGF0aFByb2Nlc3NDb21tYW5kDQorUmVhZENhYmluZXRTdGF0ZQ0KK0lzVXNlckFuQWRtaW4NCitTSFByb3BTdGdDcmVhdGUNCitTSFByb3BTdGdSZWFkTXVsdGlwbGUNCitTSFByb3BTdGdXcml0ZU11bHRpcGxlDQorQ0RlZkZvbGRlck1lbnVfQ3JlYXRlDQorQ0RlZkZvbGRlck1lbnVfQ3JlYXRlMg0KK1NIR2V0U2V0Rm9sZGVyQ3VzdG9tU2V0dGluZ3NXDQorU0hNdWx0aUZpbGVQcm9wZXJ0aWVzDQorU0hHZXRJbWFnZUxpc3QNCitSZXN0YXJ0RGlhbG9nRXgNCitTSENyZWF0ZUZpbGVFeHRyYWN0SWNvblcNCitTSExpbWl0SW5wdXRFZGl0DQorU0hHZXRTaGVsbFN0eWxlSEluc3RhbmNlDQorU0hHZXRBdHRyaWJ1dGVzRnJvbURhdGFPYmplY3QNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3N0ZGlvL19FeGl0LmMgYi9taW5ndy13NjQtY3J0L3N0ZGlvL19FeGl0LmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTgyNDdmNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvc3RkaW8vX0V4aXQuYwpAQCAtMCwwICsxLDMgQEAKKyNpbmNsdWRlIDxzdGRsaWIuaD4NCit2b2lkIF9FeGl0KGludCBzdGF0dXMpDQorCXsgIF9leGl0KHN0YXR1cyk7IH0NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3N0ZGlvL2F0b2xsLmMgYi9taW5ndy13NjQtY3J0L3N0ZGlvL2F0b2xsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzdmNDVlNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvc3RkaW8vYXRvbGwuYwpAQCAtMCwwICsxLDMgQEAKKyNpbmNsdWRlIDxzdGRsaWIuaD4NCitsb25nIGxvbmcgYXRvbGwgKGNvbnN0IGNoYXIgKiBfYykNCisJeyByZXR1cm4gX2F0b2k2NCAoX2MpOyB9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9zdGRpby9mb3BlbjY0LmMgYi9taW5ndy13NjQtY3J0L3N0ZGlvL2ZvcGVuNjQuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYmE3MmVmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9zdGRpby9mb3BlbjY0LmMKQEAgLTAsMCArMSw2IEBACisjaW5jbHVkZSA8c3RkaW8uaD4NCisNCitGSUxFKiBmb3BlbjY0IChjb25zdCBjaGFyKiBmaWxlbmFtZSwgY29uc3QgY2hhciogbW9kZSkNCit7DQorICByZXR1cm4gZm9wZW4gKGZpbGVuYW1lLCBtb2RlKTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9zdGRpby9mc2Vla282NC5jIGIvbWluZ3ctdzY0LWNydC9zdGRpby9mc2Vla282NC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBkZDI4OGMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L3N0ZGlvL2ZzZWVrbzY0LmMKQEAgLTAsMCArMSwyNDMgQEAKKyNpbmNsdWRlIDxzdGRpby5oPg0KKyNpbmNsdWRlIDxpby5oPg0KKyNpbmNsdWRlIDxlcnJuby5oPg0KKyNpbmNsdWRlIDx3aW5kb3dzLmg+DQorI2luY2x1ZGUgPGludGVybmFsLmg+DQorDQordHlwZWRlZiB1bmlvbiBkb3VibGVpbnQgew0KKyAgX19pbnQ2NCBiaWdpbnQ7DQorICBzdHJ1Y3Qgew0KKyAgICB1bnNpZ25lZCBsb25nIGxvd2VyaGFsZjsNCisgICAgbG9uZyB1cHBlcmhhbGY7DQorICB9IHR3b2ludHM7DQorfSBESU5UOw0KKw0KKyNkZWZpbmUgX0lPWU9VUkJVRiAgICAgIDB4MDEwMA0KKyNkZWZpbmUgX0lPU0VUVkJVRiAgICAgIDB4MDQwMA0KKyNkZWZpbmUgX0lPRkVPRiAgICAgICAgIDB4MDgwMA0KKyNkZWZpbmUgX0lPRkxSVE4gICAgICAgIDB4MTAwMA0KKyNkZWZpbmUgX0lPQ1RSTFogICAgICAgIDB4MjAwMA0KKyNkZWZpbmUgX0lPQ09NTUlUICAgICAgIDB4NDAwMA0KKw0KKy8qIEdlbmVyYWwgdXNlIG1hY3JvcyAqLw0KKw0KKyNkZWZpbmUgaW51c2UocykgICAgICAgICgocyktPl9mbGFnICYgKF9JT1JFQUR8X0lPV1JUfF9JT1JXKSkNCisjZGVmaW5lIG1idWYocykgICAgICAgICAoKHMpLT5fZmxhZyAmIF9JT01ZQlVGKQ0KKyNkZWZpbmUgbmJ1ZihzKSAgICAgICAgICgocyktPl9mbGFnICYgX0lPTkJGKQ0KKyNkZWZpbmUgeWJ1ZihzKSAgICAgICAgICgocyktPl9mbGFnICYgX0lPWU9VUkJVRikNCisjZGVmaW5lIGJpZ2J1ZihzKSAgICAgICAoKHMpLT5fZmxhZyAmIChfSU9NWUJVRnxfSU9ZT1VSQlVGKSkNCisjZGVmaW5lIGFueWJ1ZihzKSAgICAgICAoKHMpLT5fZmxhZyAmIChfSU9NWUJVRnxfSU9OQkZ8X0lPWU9VUkJVRikpDQorDQorI2RlZmluZSBfSU5URVJOQUxfQlVGU0laICAgIDQwOTYNCisjZGVmaW5lIF9TTUFMTF9CVUZTSVogICAgICAgNTEyDQorDQorI2RlZmluZSBGT1BFTiAgICAgICAgICAgMHgwMSAgICAvKiBmaWxlIGhhbmRsZSBvcGVuICovDQorI2RlZmluZSBGRU9GTEFHICAgICAgICAgMHgwMiAgICAvKiBlbmQgb2YgZmlsZSBoYXMgYmVlbiBlbmNvdW50ZXJlZCAqLw0KKyNkZWZpbmUgRkNSTEYgICAgICAgICAgIDB4MDQgICAgLyogQ1ItTEYgYWNyb3NzIHJlYWQgYnVmZmVyIChpbiB0ZXh0IG1vZGUpICovDQorI2RlZmluZSBGUElQRSAgICAgICAgICAgMHgwOCAgICAvKiBmaWxlIGhhbmRsZSByZWZlcnMgdG8gYSBwaXBlICovDQorI2RlZmluZSBGTk9JTkhFUklUICAgICAgMHgxMCAgICAvKiBmaWxlIGhhbmRsZSBvcGVuZWQgX09fTk9JTkhFUklUICovDQorI2RlZmluZSBGQVBQRU5EICAgICAgICAgMHgyMCAgICAvKiBmaWxlIGhhbmRsZSBvcGVuZWQgT19BUFBFTkQgKi8NCisjZGVmaW5lIEZERVYgICAgICAgICAgICAweDQwICAgIC8qIGZpbGUgaGFuZGxlIHJlZmVycyB0byBkZXZpY2UgKi8NCisjZGVmaW5lIEZURVhUICAgICAgICAgICAweDgwICAgIC8qIGZpbGUgaGFuZGxlIGlzIGluIHRleHQgbW9kZSAqLw0KKw0KK19faW50NjQgX19jZGVjbCBfbHNlZWtpNjQoaW50IGZoLF9faW50NjQgcG9zLGludCBtdGhkKTsNCitfX2ludDY0IF9fY2RlY2wgX2Z0ZWxsaTY0KEZJTEUgKnN0cik7DQorDQoraW50IGZzZWVrbzY0IChGSUxFKiBzdHJlYW0sIF9vZmY2NF90IG9mZnNldCwgaW50IHdoZW5jZSkNCit7DQorICByZXR1cm4gX2ZzZWVraTY0KHN0cmVhbSxvZmZzZXQsd2hlbmNlKTsNCit9DQorDQoraW50IF9fY2RlY2wgX2ZzZWVraTY0KEZJTEUgKnN0cixfX2ludDY0IG9mZnNldCxpbnQgd2hlbmNlKQ0KK3sNCisgICAgICAgIEZJTEUgKnN0cmVhbTsNCisgICAgICAgIC8qIEluaXQgc3RyZWFtIHBvaW50ZXIgKi8NCisgICAgICAgIHN0cmVhbSA9IHN0cjsNCisgICAgICAgIGlmKCFzdHJlYW0gfHwgKCh3aGVuY2UgIT0gU0VFS19TRVQpICYmICh3aGVuY2UgIT0gU0VFS19DVVIpICYmICh3aGVuY2UgIT0gU0VFS19FTkQpKSkNCisJew0KKwkgIGVycm5vPUVJTlZBTDsNCisJICByZXR1cm4oLTEpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgLyogQ2xlYXIgRU9GIGZsYWcgKi8NCisgICAgICAgIHN0cmVhbS0+X2ZsYWcgJj0gfl9JT0VPRjsNCisNCisgICAgICAgIGlmICh3aGVuY2UgPT0gU0VFS19DVVIpIHsNCisJICBvZmZzZXQgKz0gX2Z0ZWxsaTY0KHN0cmVhbSk7DQorCSAgd2hlbmNlID0gU0VFS19TRVQ7DQorCX0NCisgICAgICAgIC8qIEZsdXNoIGJ1ZmZlciBhcyBuZWNlc3NhcnkgKi8NCisgICAgICAgIGZmbHVzaChzdHJlYW0pOw0KKw0KKyAgICAgICAgLyogSWYgZmlsZSBvcGVuZWQgZm9yIHJlYWQvd3JpdGUsIGNsZWFyIGZsYWdzIHNpbmNlIHdlIGRvbid0IGtub3cNCisgICAgICAgICAgIHdoYXQgdGhlIHVzZXIgaXMgZ29pbmcgdG8gZG8gbmV4dC4gSWYgdGhlIGZpbGUgd2FzIG9wZW5lZCBmb3INCisgICAgICAgICAgIHJlYWQgYWNjZXNzIG9ubHksIGRlY3JlYXNlIF9idWZzaXogc28gdGhhdCB0aGUgbmV4dCBfZmlsYnVmDQorICAgICAgICAgICB3b24ndCBjb3N0IHF1aXRlIHNvIG11Y2ggKi8NCisNCisgICAgICAgIGlmIChzdHJlYW0tPl9mbGFnICYgX0lPUlcpDQorICAgICAgICAgICAgICAgIHN0cmVhbS0+X2ZsYWcgJj0gfihfSU9XUlR8X0lPUkVBRCk7DQorICAgICAgICBlbHNlIGlmICggKHN0cmVhbS0+X2ZsYWcgJiBfSU9SRUFEKSAmJiAoc3RyZWFtLT5fZmxhZyAmIF9JT01ZQlVGKSAmJg0KKyAgICAgICAgICAgICAgICAgICEoc3RyZWFtLT5fZmxhZyAmIF9JT1NFVFZCVUYpICkNCisgICAgICAgICAgICAgICAgc3RyZWFtLT5fYnVmc2l6ID0gX1NNQUxMX0JVRlNJWjsNCisNCisgICAgICAgIC8qIFNlZWsgdG8gdGhlIGRlc2lyZWQgbG9jYWxlIGFuZCByZXR1cm4uICovDQorDQorICAgICAgICByZXR1cm4oX2xzZWVraTY0KF9maWxlbm8oc3RyZWFtKSwgb2Zmc2V0LCB3aGVuY2UpID09IC0xbGwgPyAtMSA6IDApOw0KK30NCisNCitfX2ludDY0IF9fY2RlY2wgX2xzZWVraTY0KGludCBmaCxfX2ludDY0IHBvcyxpbnQgbXRoZCkNCit7DQorICBESU5UIG5ld3BvczsgICAgICAgICAgICAgICAgICAgIC8qIG5ldyBmaWxlIHBvc2l0aW9uICovDQorICB1bnNpZ25lZCBsb25nIGVycjsgICAgICAgICAgLyogZXJyb3IgY29kZSBmcm9tIEFQSSBjYWxsICovDQorICBIQU5ETEUgb3NIYW5kbGU7ICAgICAgICAvKiBvLnMuIGhhbmRsZSB2YWx1ZSAqLw0KKw0KKyAgDQorICBuZXdwb3MuYmlnaW50ID0gcG9zOw0KKyAgLyogdGVsbCBPUyB0byBzZWVrICovDQorDQorI2lmIFNFRUtfU0VUICE9IEZJTEVfQkVHSU4gfHwgU0VFS19DVVIgIT0gRklMRV9DVVJSRU5UIHx8IFNFRUtfRU5EICE9IEZJTEVfRU5EDQorI2Vycm9yIFhlbml4IGFuZCBXaW4zMiBzZWVrIGNvbnN0YW50cyBub3QgY29tcGF0aWJsZQ0KKyNlbmRpZg0KKyAgaWYgKChvc0hhbmRsZSA9IChIQU5ETEUpX2dldF9vc2ZoYW5kbGUoZmgpKSA9PSAoSEFORExFKS0xKQ0KKyAgICB7DQorICAgICAgZXJybm8gPSBFQkFERjsNCisgICAgICBfQVNTRVJURSgoIkludmFsaWQgZmlsZSBkZXNjcmlwdG9yLiBGaWxlIHBvc3NpYmx5IGNsb3NlZCBieSBhIGRpZmZlcmVudCB0aHJlYWQiLDApKTsNCisgICAgICByZXR1cm4gKC0xbGwpOw0KKyAgfQ0KKw0KKyAgaWYgKCAoKG5ld3Bvcy50d29pbnRzLmxvd2VyaGFsZiA9IFNldEZpbGVQb2ludGVyKG9zSGFuZGxlLG5ld3Bvcy50d29pbnRzLmxvd2VyaGFsZiwmKG5ld3Bvcy50d29pbnRzLnVwcGVyaGFsZiksbXRoZCkpPT0tMUwpICYmDQorICAgICgoZXJyID0gR2V0TGFzdEVycm9yKCkpICE9IE5PX0VSUk9SKSkNCisgIHsNCisgICAgICByZXR1cm4oIC0xbGwgKTsNCisgIH0NCisNCisgIF9vc2ZpbGUoZmgpICY9IH5GRU9GTEFHOyAgICAgICAgLyogY2xlYXIgdGhlIGN0cmwteiBmbGFnIG9uIHRoZSBmaWxlICovDQorICByZXR1cm4oIG5ld3Bvcy5iaWdpbnQgKTsgICAgICAgIC8qIHJldHVybiAqLw0KK30NCisNCitfX2ludDY0IF9fY2RlY2wgX2Z0ZWxsaTY0KEZJTEUgKnN0cikNCit7DQorICAgICAgICByZWdpc3RlciBGSUxFICpzdHJlYW07DQorICAgICAgICBzaXplX3Qgb2Zmc2V0Ow0KKyAgICAgICAgX19pbnQ2NCBmaWxlcG9zOw0KKyAgICAgICAgcmVnaXN0ZXIgY2hhciAqcDsNCisgICAgICAgIGNoYXIgKm1heDsNCisgICAgICAgIGludCBmZDsNCisgICAgICAgIHNpemVfdCByZGNudDsNCisNCisgICAgICAgIHN0cmVhbSA9IHN0cjsNCisgICAgICAgIGZkID0gX2ZpbGVubyhzdHJlYW0pOw0KKyAgICAgICAgaWYgKHN0cmVhbS0+X2NudCA8IDApIHN0cmVhbS0+X2NudCA9IDA7DQorICAgICAgICBpZiAoKGZpbGVwb3MgPSBfbHNlZWtpNjQoZmQsIDBsbCwgU0VFS19DVVIpKSA8IDBMKQ0KKyAgICAgICAgICAgICAgICByZXR1cm4oLTFsbCk7DQorDQorICAgICAgICBpZiAoIWJpZ2J1ZihzdHJlYW0pKSAgICAgICAgICAgIC8qIF9JT05CRiBvciBubyBidWZmZXJpbmcgZGVzaWduYXRlZCAqLw0KKyAgICAgICAgICAgICAgICByZXR1cm4oZmlsZXBvcyAtIHN0cmVhbS0+X2NudCk7DQorDQorICAgICAgICBvZmZzZXQgPSAoc2l6ZV90KShzdHJlYW0tPl9wdHIgLSBzdHJlYW0tPl9iYXNlKTsNCisNCisgICAgICAgIGlmIChzdHJlYW0tPl9mbGFnICYgKF9JT1dSVHxfSU9SRUFEKSkgew0KKyAgICAgICAgICAgICAgICBpZiAoX29zZmlsZShmZCkgJiBGVEVYVCkNCisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHAgPSBzdHJlYW0tPl9iYXNlOyBwIDwgc3RyZWFtLT5fcHRyOyBwKyspDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKnAgPT0gJ1xuJykgIC8qIGFkanVzdCBmb3IgJ1xyJyAqLw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQrKzsNCisgICAgICAgIH0NCisgICAgICAgIGVsc2UgaWYgKCEoc3RyZWFtLT5fZmxhZyAmIF9JT1JXKSkgew0KKyAgICAgICAgICAgICAgICBlcnJubz1FSU5WQUw7DQorICAgICAgICAgICAgICAgIHJldHVybigtMWxsKTsNCisgICAgICAgIH0NCisNCisgICAgICAgIGlmIChmaWxlcG9zID09IDBsbCkNCisgICAgICAgICAgICAgICAgcmV0dXJuKChfX2ludDY0KW9mZnNldCk7DQorDQorICAgICAgICBpZiAoc3RyZWFtLT5fZmxhZyAmIF9JT1JFQUQpICAgIC8qIGdvIHRvIHByZWNlZGluZyBzZWN0b3IgKi8NCisNCisgICAgICAgICAgICAgICAgaWYgKHN0cmVhbS0+X2NudCA9PSAwKSAgLyogZmlsZXBvcyBob2xkcyBjb3JyZWN0IGxvY2F0aW9uICovDQorICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gMDsNCisNCisgICAgICAgICAgICAgICAgZWxzZSB7DQorDQorICAgICAgICAgICAgICAgICAgICAgICAgLyogU3VidHJhY3Qgb3V0IHRoZSBudW1iZXIgb2YgdW5yZWFkIGJ5dGVzIGxlZnQgaW4gdGhlDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLiBbV2UgY2FuJ3Qgc2ltcGx5IHVzZSBfaW9iW10uX2J1ZnNpeiBiZWNhdXNlDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGxhc3QgcmVhZCBtYXkgaGF2ZSBoaXQgRU9GIGFuZCwgdGh1cywgdGhlIGJ1ZmZlcg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcyBub3QgY29tcGxldGVseSBmaWxsZWQuXSAqLw0KKw0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJkY250ID0gc3RyZWFtLT5fY250ICsgKHNpemVfdCkoc3RyZWFtLT5fcHRyIC0gc3RyZWFtLT5fYmFzZSk7DQorDQorICAgICAgICAgICAgICAgICAgICAgICAgLyogSWYgdGV4dCBtb2RlLCBhZGp1c3QgZm9yIHRoZSBjci9sZiBzdWJzdGl0dXRpb24uIElmDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5IG1vZGUsIHdlJ3JlIG91dHRhIGhlcmUuICovDQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9vc2ZpbGUoZmQpICYgRlRFWFQpIHsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICgxKSBJZiB3ZSdyZSBub3QgYXQgZW9mLCBzaW1wbHkgY29weSBfYnVmc2l6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbnRvIHJkY250IHRvIGdldCB0aGUgIyBvZiB1bnRyYW5zbGF0ZWQNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJzIHJlYWQuICgyKSBJZiB3ZSdyZSBhdCBlb2YsIHdlIG11c3QNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb2sgdGhyb3VnaCB0aGUgYnVmZmVyIGV4cGFuZGluZyB0aGUgJ1xuJw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcnMgb25lIGF0IGEgdGltZS4gKi8NCisNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFtOT1RFOiBQZXJmb3JtYW5jZSBpc3N1ZSAtLSBpdCBpcyBmYXN0ZXIgdG8NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvIHRoZSB0d28gX2xzZWVrKCkgY2FsbHMgdGhhbiB0byBibGluZGx5IGdvDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdWdoIGFuZCBleHBhbmQgdGhlICdcbicgY2hhcnMgcmVnYXJkbGVzcw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Ygd2hldGhlciB3ZSdyZSBhdCBlb2Ygb3Igbm90Ll0gKi8NCisNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfbHNlZWtpNjQoZmQsIDBsbCwgU0VFS19FTkQpID09IGZpbGVwb3MpIHsNCisNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4ID0gc3RyZWFtLT5fYmFzZSArIHJkY250Ow0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHAgPSBzdHJlYW0tPl9iYXNlOyBwIDwgbWF4OyBwKyspDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCpwID09ICdcbicpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBhZGp1c3QgZm9yICdccicgKi8NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJkY250Kys7DQorDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElmIGxhc3QgYnl0ZSB3YXMgXlosIHRoZSBsb3dpbyByZWFkDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZG4ndCB0ZWxsIHVzIGFib3V0IGl0LiAgQ2hlY2sgZmxhZw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgYnVtcCBjb3VudCwgaWYgbmVjZXNzYXJ5LiAqLw0KKw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyZWFtLT5fZmxhZyAmIF9JT0NUUkxaKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrcmRjbnQ7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQorDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCisNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9sc2Vla2k2NChmZCwgZmlsZXBvcywgU0VFS19TRVQpIDwgMCkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoLTEpOw0KKw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBXZSB3YW50IHRvIHNldCByZGNudCB0byB0aGUgbnVtYmVyDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIGJ5dGVzIG9yaWdpbmFsbHkgcmVhZCBpbnRvIHRoZQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0gYnVmZmVyIChiZWZvcmUgY3JsZi0+bGYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb24pLiBJbiBtb3N0IGNhc2VzLCB0aGlzDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGwganVzdCBiZSBfYnVmc2l6LiBIb3dldmVyLCB0aGUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyIHNpemUgbWF5IGhhdmUgYmVlbiBjaGFuZ2VkLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdWUgdG8gZnNlZWsgb3B0aW1pemF0aW9uLCBhdCB0aGUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU5EIG9mIHRoZSBsYXN0IF9maWxidWYgY2FsbC4gKi8NCisNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAocmRjbnQgPD0gX1NNQUxMX0JVRlNJWikgJiYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyZWFtLT5fZmxhZyAmIF9JT01ZQlVGKSAmJg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEoc3RyZWFtLT5fZmxhZyAmIF9JT1NFVFZCVUYpICkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRoZSB0cmFuc2xhdGVkIGNvbnRlbnRzIG9mDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBzbWFsbCBhbmQgd2UNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgbm90IGF0IGVvZi4gVGhlIGJ1ZmZlcg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgbXVzdCBoYXZlIGJlZW4gc2V0IHRvDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1NNQUxMX0JVRlNJWiBkdXJpbmcgdGhlDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBfZmlsYnVmIGNhbGwuICovDQorDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmRjbnQgPSBfU01BTExfQlVGU0laOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZGNudCA9IHN0cmVhbS0+X2J1ZnNpejsNCisNCisNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSWYgZmlyc3QgYnl0ZSBpbiB1bnRyYW5zbGF0ZWQgYnVmZmVyDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcyBhICdcbicsIGFzc3VtZSBpdCB3YXMgcHJlY2VlZGVkDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5IGEgJ1xyJyB3aGljaCB3YXMgZGlzY2FyZGVkIGJ5IHRoZQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91cyByZWFkIG9wZXJhdGlvbiBhbmQgY291bnQNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlICdcbicuICovDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICAoX29zZmlsZShmZCkgJiBGQ1JMRikNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3JkY250Ow0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KKw0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gLyogZW5kIGlmIEZURVhUICovDQorDQorICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXBvcyAtPSAoX19pbnQ2NClyZGNudDsNCisNCisgICAgICAgICAgICAgICAgfSAvKiBlbmQgZWxzZSBzdHJlYW0tPl9jbnQgIT0gMCAqLw0KKw0KKyAgICAgICAgcmV0dXJuKGZpbGVwb3MgKyAoX19pbnQ2NClvZmZzZXQpOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3N0ZGlvL2Z0ZWxsbzY0LmMgYi9taW5ndy13NjQtY3J0L3N0ZGlvL2Z0ZWxsbzY0LmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDMwNjU3NgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvc3RkaW8vZnRlbGxvNjQuYwpAQCAtMCwwICsxLDcgQEAKKyNpbmNsdWRlIDxzdGRpby5oPg0KKw0KK19vZmY2NF90DQorZnRlbGxvNjQgKEZJTEUgKiBzdHJlYW0pDQorew0KKyAgcmV0dXJuIChfb2ZmNjRfdCkgX2Z0ZWxsaTY0KHN0cmVhbSk7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvc3RkaW8vbGx0b2EuYyBiL21pbmd3LXc2NC1jcnQvc3RkaW8vbGx0b2EuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZGNkMzAzCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9zdGRpby9sbHRvYS5jCkBAIC0wLDAgKzEsMyBAQAorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KK2NoYXIqIGxsdG9hKGxvbmcgbG9uZyBfbiwgY2hhciAqIF9jLCBpbnQgX2kpDQorCXsgcmV0dXJuIF9pNjR0b2EgKF9uLCBfYywgX2kpOyB9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9zdGRpby9sbHRvdy5jIGIvbWluZ3ctdzY0LWNydC9zdGRpby9sbHRvdy5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBjMzFjNGEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L3N0ZGlvL2xsdG93LmMKQEAgLTAsMCArMSwzIEBACisjaW5jbHVkZSA8c3RkbGliLmg+DQord2NoYXJfdCogbGx0b3cobG9uZyBsb25nIF9uLCB3Y2hhcl90ICogX3csIGludCBfaSkNCisJeyByZXR1cm4gX2k2NHRvdyAoX24sIF93LCBfaSk7IH0gDQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9zdGRpby9sc2VlazY0LmMgYi9taW5ndy13NjQtY3J0L3N0ZGlvL2xzZWVrNjQuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41ZWFiNmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9zdGRpby9sc2VlazY0LmMKQEAgLTAsMCArMSw3IEBACisjaW5jbHVkZSA8aW8uaD4NCisNCitfb2ZmNjRfdCBsc2VlazY0KGludCBmZCxfb2ZmNjRfdCBvZmZzZXQsIGludCB3aGVuY2UpIA0KK3sNCisgIHJldHVybiBfbHNlZWtpNjQoZmQsIChfb2ZmNjRfdCkgb2Zmc2V0LCB3aGVuY2UpOw0KK30NCisNCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3N0ZGlvL3NucHJpbnRmLmMgYi9taW5ndy13NjQtY3J0L3N0ZGlvL3NucHJpbnRmLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2FhY2FhZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvc3RkaW8vc25wcmludGYuYwpAQCAtMCwwICsxLDEzIEBACisjaW5jbHVkZSA8c3RkYXJnLmg+DQorI2luY2x1ZGUgPHN0ZGlvLmg+DQorDQoraW50IHNucHJpbnRmKGNoYXIqIGJ1ZmZlciwgc2l6ZV90IG4sIGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKQ0KK3sNCisgIGludCByZXR2YWw7DQorICB2YV9saXN0IGFyZ3B0cjsNCisgICAgICAgICANCisgIHZhX3N0YXJ0KCBhcmdwdHIsIGZvcm1hdCApOw0KKyAgcmV0dmFsID0gX3ZzbnByaW50ZiggYnVmZmVyLCBuLCBmb3JtYXQsIGFyZ3B0ciApOw0KKyAgdmFfZW5kKCBhcmdwdHIgKTsNCisgIHJldHVybiByZXR2YWw7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvc3RkaW8vc253cHJpbnRmLmMgYi9taW5ndy13NjQtY3J0L3N0ZGlvL3Nud3ByaW50Zi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZhMzYxYjMKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L3N0ZGlvL3Nud3ByaW50Zi5jCkBAIC0wLDAgKzEsMTMgQEAKKyNpbmNsdWRlIDxzdGRhcmcuaD4NCisjaW5jbHVkZSA8d2NoYXIuaD4NCisNCitpbnQgIHNud3ByaW50Zih3Y2hhcl90KiBidWZmZXIsIHNpemVfdCBuLCBjb25zdCB3Y2hhcl90KiBmb3JtYXQsIC4uLikNCit7DQorICAgIGludCByZXR2YWw7DQorICAgIHZhX2xpc3QgYXJncHRyOw0KKyAgICAgICAgICANCisgICAgdmFfc3RhcnQoIGFyZ3B0ciwgZm9ybWF0ICk7DQorICAgIHJldHZhbCA9IF92c253cHJpbnRmKCBidWZmZXIsIG4sIGZvcm1hdCwgYXJncHRyICk7DQorICAgIHZhX2VuZCggYXJncHRyICk7DQorICAgIHJldHVybiByZXR2YWw7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvc3RkaW8vc3RydG9mLmMgYi9taW5ndy13NjQtY3J0L3N0ZGlvL3N0cnRvZi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdlZDgzNzUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L3N0ZGlvL3N0cnRvZi5jCkBAIC0wLDAgKzEsNiBAQAorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KKw0KK2Zsb2F0IHN0cnRvZiggY29uc3QgY2hhciAqbnB0ciwgY2hhciAqKmVuZHB0cikNCit7DQorICByZXR1cm4gKHN0cnRvZChucHRyLCBlbmRwdHIpKTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9zdGRpby91bGx0b2EuYyBiL21pbmd3LXc2NC1jcnQvc3RkaW8vdWxsdG9hLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjAyYTc2NwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvc3RkaW8vdWxsdG9hLmMKQEAgLTAsMCArMSwzIEBACisjaW5jbHVkZSA8c3RkbGliLmg+DQorY2hhciogdWxsdG9hKHVuc2lnbmVkIGxvbmcgbG9uZyBfbiwgY2hhciAqIF9jLCBpbnQgX2kpDQorCXsgcmV0dXJuIF91aTY0dG9hIChfbiwgX2MsIF9pKTsgfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvc3RkaW8vdWxsdG93LmMgYi9taW5ndy13NjQtY3J0L3N0ZGlvL3VsbHRvdy5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUwYzdmNDkKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L3N0ZGlvL3VsbHRvdy5jCkBAIC0wLDAgKzEsMyBAQAorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KK3djaGFyX3QqIHVsbHRvdyh1bnNpZ25lZCBsb25nIGxvbmcgX24sIHdjaGFyX3QgKiBfdywgaW50IF9pKQ0KKwl7IHJldHVybiBfdWk2NHRvdyAoX24sIF93LCBfaSk7IH0NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3N0ZGlvL3Zmc2NhbmYuYyBiL21pbmd3LXc2NC1jcnQvc3RkaW8vdmZzY2FuZi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmEyYTI2MzEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L3N0ZGlvL3Zmc2NhbmYuYwpAQCAtMCwwICsxLDQwIEBACisvLyAgQnkgYWFyb253bCAyMDAzLTAxLTI4IGZvciBtaW5ndy1tc3ZjcnQNCisvLyAgUHVibGljIGRvbWFpbjogYWxsIGNvcHlyaWdodHMgZGlzY2xhaW1lZCwgYWJzb2x1dGVseSBubyB3YXJyYW50aWVzICovDQorDQorI2luY2x1ZGUgPHN0ZGFyZy5oPg0KKyNpbmNsdWRlIDxzdGRpby5oPg0KKw0KK2ludCB2ZnNjYW5mKEZJTEUgKiBfX3Jlc3RyaWN0X18gc3RyZWFtLCBjb25zdCBjaGFyICogX19yZXN0cmljdF9fIGZvcm1hdCwgdmFfbGlzdCBhcmcpIHsNCisgIGludCByZXQ7DQorDQorICBfX2FzbV9fKA0KKw0KKyAgICAvKiBhbGxvY2F0ZSBzdGFjayAoZXNwICs9IGZyYW1lIC0gYXJnMyAtICg4W2FyZzEsMl0gKyAxMikpICovDQorICAgICJtb3ZxCSUlcnNwLCAlJXIxMFxuXHQiDQorICAgICJsZWEJMHhGRkZGRkZEOCglJXJzcCwgJTYpLCAlJXJzcFxuXHQiDQorICAgICJzdWJxCSU1LCAlJXJzcFxuXHQiDQorDQorICAgIC8vIHNldCB1cCBzdGFjaw0KKyAgICAibW92cQklMSwgMHgxOCglJXJzcClcblx0IiAgLy8gc3RyZWFtDQorICAgICJtb3ZxCSUyLCAweDIwKCUlcnNwKVxuXHQiICAvLyBmb3JtYXQNCisgICAgImxlYQkweDI4KCUlcnNwKSwgJSVyZGlcblx0Ig0KKyAgICAibW92cQklJXJkaSwgKCUlcnNwKVxuXHQiICAvLyBtZW1jcHkgZGVzdA0KKyAgICAibW92cQklNSwgMHg4KCUlcnNwKVxuXHQiICAvLyBtZW1jcHkgc3JjDQorICAgICJtb3ZxCSU1LCAweDEwKCUlcnNwKVxuXHQiDQorICAgICJzdWJxCSU2LCAweDEwKCUlcnNwKVxuXHQiICAvLyBtZW1jcHkgbGVuDQorICAgICJjYWxsCV9tZW1jcHlcblx0Ig0KKyAgICAiYWRkcQkkMjQsICUlcnNwXG5cdCINCisNCisgICAgLy8gY2FsbCBmc2NhbmYNCisgICAgImNhbGwJX2ZzY2FuZlxuXHQiDQorDQorICAgIC8vIHJlc3RvcmUgc3RhY2sNCisgICAgIm1vdnEJJSVyMTAsICUlcnNwXG5cdCINCisNCisgICAgOiAiPWEiKHJldCksICI9YyIoc3RyZWFtKSwgIj1kIihmb3JtYXQpDQorICAgIDogIjEiKHN0cmVhbSksICIyIihmb3JtYXQpLCAiUyIoYXJnKSwNCisgICAgICAiYSIoJnJldCkNCisgICAgOiAicjEwIiwgInJkaSIpOw0KKw0KKyAgcmV0dXJuIHJldDsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9zdGRpby92ZndzY2FuZi5jIGIvbWluZ3ctdzY0LWNydC9zdGRpby92ZndzY2FuZi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE3MDMzZDcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L3N0ZGlvL3Zmd3NjYW5mLmMKQEAgLTAsMCArMSw0MiBAQAorLy8gIEJ5IGFhcm9ud2wgMjAwMy0wMS0yOCBmb3IgbWluZ3ctbXN2Y3J0Lg0KKy8vICBQdWJsaWMgZG9tYWluOiBhbGwgY29weXJpZ2h0cyBkaXNjbGFpbWVkLCBhYnNvbHV0ZWx5IG5vIHdhcnJhbnRpZXMuDQorDQorI2luY2x1ZGUgPHN0ZGFyZy5oPg0KKyNpbmNsdWRlIDx3Y2hhci5oPg0KKw0KK2ludCB2ZndzY2FuZihGSUxFICogX19yZXN0cmljdF9fIHN0cmVhbSwgY29uc3Qgd2NoYXJfdCAqIF9fcmVzdHJpY3RfXyBmb3JtYXQsDQorICB2YV9saXN0IGFyZykgew0KKw0KKyAgaW50IHJldDsNCisNCisgIF9fYXNtX18oDQorDQorICAgIC8vIGFsbG9jYXRlIHN0YWNrIChlc3AgKz0gZnJhbWUgLSBhcmczIC0gKDhbYXJnMSwyXSArIDEyKSkNCisgICAgIm1vdnEJJSVyc3AsICUlcjEwXG5cdCINCisgICAgImxlYQkweEZGRkZGRkQ4KCUlcnNwLCAlNiksICUlcnNwXG5cdCINCisgICAgInN1YnEJJTUsICUlcnNwXG5cdCINCisNCisgICAgLy8gc2V0IHVwIHN0YWNrDQorICAgICJtb3ZxCSUxLCAweDE4KCUlcnNwKVxuXHQiICAvLyBzdHJlYW0NCisgICAgIm1vdnEJJTIsIDB4MjAoJSVyc3ApXG5cdCIgIC8vIGZvcm1hdA0KKyAgICAibGVhCTB4MjgoJSVyc3ApLCAlJWVkaVxuXHQiDQorICAgICJtb3ZxCSUlcmRpLCAoJSVyc3ApXG5cdCIgIC8vIG1lbWNweSBkZXN0DQorICAgICJtb3ZxCSU1LCAweDgoJSVyc3ApXG5cdCIgIC8vIG1lbWNweSBzcmMNCisgICAgIm1vdnEJJTUsIDB4MTAoJSVyc3ApXG5cdCINCisgICAgInN1YnEJJTYsIDB4MTAoJSVyc3ApXG5cdCIgIC8vIG1lbWNweSBsZW4NCisgICAgImNhbGwJX21lbWNweVxuXHQiDQorICAgICJhZGRxCSQyNCwgJSVyc3Bcblx0Ig0KKw0KKyAgICAvLyBjYWxsIGZzY2FuZg0KKyAgICAiY2FsbAlfZndzY2FuZlxuXHQiDQorDQorICAgIC8vIHJlc3RvcmUgc3RhY2sNCisgICAgIm1vdnEJJSVyMTAsICUlcnNwXG5cdCINCisNCisgICAgOiAiPWEiKHJldCksICI9YyIoc3RyZWFtKSwgIj1kIihmb3JtYXQpDQorICAgIDogIjEiKHN0cmVhbSksICIyIihmb3JtYXQpLCAiUyIoYXJnKSwNCisgICAgICAiYSIoJnJldCkNCisgICAgOiAicjEwIiwgInJkaSIpOw0KKw0KKyAgcmV0dXJuIHJldDsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9zdGRpby92c2NhbmYuYyBiL21pbmd3LXc2NC1jcnQvc3RkaW8vdnNjYW5mLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTkwMjkzMQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvc3RkaW8vdnNjYW5mLmMKQEAgLTAsMCArMSw5IEBACisvLyAgQnkgYWFyb253bCAyMDAzLTAxLTI4IGZvciBtaW5ndy1tc3ZjcnQNCisvLyAgUHVibGljIGRvbWFpbjogYWxsIGNvcHlyaWdodHMgZGlzY2xhaW1lZCwgYWJzb2x1dGVseSBubyB3YXJyYW50aWVzDQorDQorI2luY2x1ZGUgPHN0ZGFyZy5oPg0KKyNpbmNsdWRlIDxzdGRpby5oPg0KKw0KK2ludCB2c2NhbmYoY29uc3QgY2hhciAqIF9fcmVzdHJpY3RfXyBmb3JtYXQsIHZhX2xpc3QgYXJnKSB7DQorICByZXR1cm4gdmZzY2FuZihzdGRpbiwgZm9ybWF0LCBhcmcpOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3N0ZGlvL3ZzbnByaW50Zi5jIGIvbWluZ3ctdzY0LWNydC9zdGRpby92c25wcmludGYuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NjZlMDY0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9zdGRpby92c25wcmludGYuYwpAQCAtMCwwICsxLDUgQEAKKyNpbmNsdWRlIDxzdGRhcmcuaD4NCisjaW5jbHVkZSA8c3RkaW8uaD4NCisNCitpbnQgdnNucHJpbnRmIChjaGFyKiBzLCBzaXplX3QgbiwgY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZykNCisgIHsgcmV0dXJuIF92c25wcmludGYgKCBzLCBuLCBmb3JtYXQsIGFyZyk7IH0NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3N0ZGlvL3ZzbndwcmludGYuYyBiL21pbmd3LXc2NC1jcnQvc3RkaW8vdnNud3ByaW50Zi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQyNGEzNWUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L3N0ZGlvL3ZzbndwcmludGYuYwpAQCAtMCwwICsxLDYgQEAKKyNpbmNsdWRlIDxfbWluZ3cuaD4NCisjaW5jbHVkZSA8c3RkYXJnLmg+DQorI2luY2x1ZGUgPHdjaGFyLmg+DQorDQoraW50ICB2c253cHJpbnRmKHdjaGFyX3QgKmJ1ZmZlciwgIHNpemVfdCBuLCBjb25zdCB3Y2hhcl90ICogZm9ybWF0LCB2YV9saXN0IGFyZ3B0cikNCisgIHsgcmV0dXJuIF92c253cHJpbnRmKCBidWZmZXIsIG4sIGZvcm1hdCwgYXJncHRyICk7fQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvc3RkaW8vdnNzY2FuZi5jIGIvbWluZ3ctdzY0LWNydC9zdGRpby92c3NjYW5mLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGJjNDVlNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvc3RkaW8vdnNzY2FuZi5jCkBAIC0wLDAgKzEsNDEgQEAKKy8vICBCeSBhYXJvbndsIDIwMDMtMDEtMjggZm9yIG1pbmd3LW1zdmNydC4NCisvLyAgUHVibGljIGRvbWFpbjogYWxsIGNvcHlyaWdodHMgZGlzY2xhaW1lZCwgYWJzb2x1dGVseSBubyB3YXJyYW50aWVzLg0KKw0KKyNpbmNsdWRlIDxzdGRhcmcuaD4NCisjaW5jbHVkZSA8c3RkaW8uaD4NCisNCisNCitpbnQgdnNzY2FuZihjb25zdCBjaGFyICogX19yZXN0cmljdF9fIHMsIGNvbnN0IGNoYXIgKiBfX3Jlc3RyaWN0X18gZm9ybWF0LCB2YV9saXN0IGFyZykgew0KKyAgaW50IHJldDsNCisNCisgIF9fYXNtX18oDQorDQorICAgIC8vIGFsbG9jYXRlIHN0YWNrIChlc3AgKz0gZnJhbWUgLSBhcmczIC0gKDhbYXJnMSwyXSArIDEyKSkNCisgICAgIm1vdnEJJSVyc3AsICUlcjEwXG5cdCINCisgICAgImxlYQkweEZGRkZGRkQ4KCUlcnNwLCAlNiksICUlcnNwXG5cdCINCisgICAgInN1YnEJJTUsICUlcnNwXG5cdCINCisNCisgICAgLy8gc2V0IHVwIHN0YWNrDQorICAgICJtb3ZxCSUxLCAweDE4KCUlcnNwKVxuXHQiICAvLyBzDQorICAgICJtb3ZxCSUyLCAweDIwKCUlcnNwKVxuXHQiICAvLyBmb3JtYXQNCisgICAgImxlYQkweDE0KCUlZXNwKSwgJSVlZGlcblx0Ig0KKyAgICAibW92cQklJXJkaSwgKCUlcnNwKVxuXHQiICAvLyBtZW1jcHkgZGVzdA0KKyAgICAibW92cQklNSwgMHg4KCUlcnNwKVxuXHQiICAvLyBtZW1jcHkgc3JjDQorICAgICJtb3ZxCSU1LCAweDEwKCUlcnNwKVxuXHQiDQorICAgICJzdWJxCSU2LCAweDEwKCUlcnNwKVxuXHQiICAvLyBtZW1jcHkgbGVuDQorICAgICJjYWxsCV9tZW1jcHlcblx0Ig0KKyAgICAiYWRkcQkkMjQsICUlcnNwXG5cdCINCisNCisgICAgLy8gY2FsbCBzc2NhbmYNCisgICAgImNhbGwJX3NzY2FuZlxuXHQiDQorDQorICAgIC8vIHJlc3RvcmUgc3RhY2sNCisgICAgIm1vdnEJJSVyMTAsICUlcnNwXG5cdCINCisNCisgICAgOiAiPWEiKHJldCksICI9YyIocyksICI9ZCIoZm9ybWF0KQ0KKyAgICA6ICIxIihzKSwgIjIiKGZvcm1hdCksICJTIihhcmcpLA0KKyAgICAgICJhIigmcmV0KQ0KKyAgICA6ICJyMTAiLCAicmRpIik7DQorDQorICByZXR1cm4gcmV0Ow0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3N0ZGlvL3Zzd3NjYW5mLmMgYi9taW5ndy13NjQtY3J0L3N0ZGlvL3Zzd3NjYW5mLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2ZhYjkzNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvc3RkaW8vdnN3c2NhbmYuYwpAQCAtMCwwICsxLDQzIEBACisvLyAgQnkgYWFyb253bCAyMDAzLTAxLTI4IGZvciBtaW5ndy1tc3ZjcnQNCisvLyAgUHVibGljIGRvbWFpbjogYWxsIGNvcHlyaWdodHMgZGlzY2xhaW1lZCwgYWJzb2x1dGVseSBubyB3YXJyYW50aWVzICovDQorDQorI2luY2x1ZGUgPHN0ZGFyZy5oPg0KKyNpbmNsdWRlIDx3Y2hhci5oPg0KKw0KKw0KK2ludCB2c3dzY2FuZihjb25zdCB3Y2hhcl90ICogX19yZXN0cmljdF9fIHMsIGNvbnN0IHdjaGFyX3QgKiBfX3Jlc3RyaWN0X18gZm9ybWF0LA0KKyAgdmFfbGlzdCBhcmcpIHsNCisNCisgIGludCByZXQ7DQorDQorICBfX2FzbV9fKA0KKw0KKyAgICAvLyBhbGxvY2F0ZSBzdGFjayAoZXNwICs9IGZyYW1lIC0gYXJnMyAtICg4W2FyZzEsMl0gKyAxMikpDQorICAgICJtb3ZxCSUlcnNwLCAlJXIxMFxuXHQiDQorICAgICJsZWEJMHhGRkZGRkZEOCglJXJzcCwgJTYpLCAlJXJzcFxuXHQiDQorICAgICJzdWJxCSU1LCAlJXJzcFxuXHQiDQorDQorICAgIC8vIHNldCB1cCBzdGFjaw0KKyAgICAibW92cQklMSwgMHgxOCglJXJzcClcblx0IiAgLy8gcw0KKyAgICAibW92cQklMiwgMHgyMCglJXJzcClcblx0IiAgLy8gZm9ybWF0DQorICAgICJsZWEJMHgyOCglJXJzcCksICUlcmRpXG5cdCINCisgICAgIm1vdnEJJSVyZGksICglJXJzcClcblx0IiAgLy8gbWVtY3B5IGRlc3QNCisgICAgIm1vdnEJJTUsIDB4OCglJXJzcClcblx0IiAgLy8gbWVtY3B5IHNyYw0KKyAgICAibW92cQklNSwgMHgxMCglJXJzcClcblx0Ig0KKyAgICAic3VicQklNiwgMHgxMCglJXJzcClcblx0IiAgLy8gbWVtY3B5IGxlbg0KKyAgICAiY2FsbAlfbWVtY3B5XG5cdCINCisgICAgImFkZHEJJDI0LCAlJXJzcFxuXHQiDQorDQorICAgIC8vIGNhbGwgc3NjYW5mDQorICAgICJjYWxsCV9zd3NjYW5mXG5cdCINCisNCisgICAgLy8gcmVzdG9yZSBzdGFjaw0KKyAgICAibW92cQklJXIxMCwgJSVyc3Bcblx0Ig0KKw0KKyAgICA6ICI9YSIocmV0KSwgIj1jIihzKSwgIj1kIihmb3JtYXQpDQorICAgIDogIjEiKHMpLCAiMiIoZm9ybWF0KSwgIlMiKGFyZyksDQorICAgICAgImEiKCZyZXQpDQorICAgIDogInIxMCIsICJyZGkiKTsNCisNCisgIHJldHVybiByZXQ7DQorfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvc3RkaW8vdndzY2FuZi5jIGIvbWluZ3ctdzY0LWNydC9zdGRpby92d3NjYW5mLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzUwN2EyOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvc3RkaW8vdndzY2FuZi5jCkBAIC0wLDAgKzEsMTAgQEAKKy8vICBCeSBhYXJvbndsIDIwMDMtMDEtMjggZm9yIG1pbmd3LW1zdmNydC4NCisvLyAgUHVibGljIGRvbWFpbjogYWxsIGNvcHlyaWdodHMgZGlzY2xhaW1lZCwgYWJzb2x1dGVseSBubyB3YXJyYW50aWVzLg0KKw0KKyNpbmNsdWRlIDxzdGRhcmcuaD4NCisjaW5jbHVkZSA8d2NoYXIuaD4NCisjaW5jbHVkZSA8c3RkaW8uaD4NCisNCitpbnQgdndzY2FuZihjb25zdCB3Y2hhcl90ICogX19yZXN0cmljdF9fIGZvcm1hdCwgdmFfbGlzdCBhcmcpIHsNCisgIHJldHVybiB2ZndzY2FuZihzdGRpbiwgZm9ybWF0LCBhcmcpOw0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3N0ZGlvL3djc3RvZi5jIGIvbWluZ3ctdzY0LWNydC9zdGRpby93Y3N0b2YuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMDY4NDM1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC9zdGRpby93Y3N0b2YuYwpAQCAtMCwwICsxLDYgQEAKKyNpbmNsdWRlIDx3Y2hhci5oPg0KKw0KK2Zsb2F0IHdjc3RvZiggY29uc3Qgd2NoYXJfdCAqbnB0ciwgd2NoYXJfdCAqKmVuZHB0cikNCit7DQorICByZXR1cm4gKHdjc3RvZChucHRyLCBlbmRwdHIpKTsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC9zdGRpby93dG9sbC5jIGIvbWluZ3ctdzY0LWNydC9zdGRpby93dG9sbC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY4ZDNkYjQKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L3N0ZGlvL3d0b2xsLmMKQEAgLTAsMCArMSwzIEBACisjaW5jbHVkZSA8c3RkbGliLmg+DQorbG9uZyBsb25nIHd0b2xsKGNvbnN0IHdjaGFyX3QgKiBfdykNCisgCXsgcmV0dXJuIF93dG9pNjQgKF93KTsgfQ0KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvc3RyY2FzZWNtcC5jIGIvbWluZ3ctdzY0LWNydC9zdHJjYXNlY21wLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWVlZDBhOAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvc3RyY2FzZWNtcC5jCkBAIC0wLDAgKzEsNyBAQAorI2luY2x1ZGUgPHN0cmluZy5oPgorCitpbnQKK3N0cmNhc2VjbXAgKGNvbnN0IGNoYXIgKnN6MSxjb25zdCBjaGFyICpzejIpCit7CisgIHJldHVybiBfc3RyaWNtcCAoc3oxLHN6Mik7Cit9CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3N0cm5jYXNlY21wLmMgYi9taW5ndy13NjQtY3J0L3N0cm5jYXNlY21wLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWI3YjAwMwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvc3RybmNhc2VjbXAuYwpAQCAtMCwwICsxLDcgQEAKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworaW50CitzdHJuY2FzZWNtcCAoY29uc3QgY2hhciAqc3oxLGNvbnN0IGNoYXIgKnN6MixzaXplX3Qgc2l6ZU1heENvbXBhcmUpCit7CisgIHJldHVybiBfc3RybmljbXAgKHN6MSxzejIsc2l6ZU1heENvbXBhcmUpOworfQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC90ZXJtaW9zL2NmbWFrZXJhdy5jIGIvbWluZ3ctdzY0LWNydC90ZXJtaW9zL2NmbWFrZXJhdy5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNhMWJmNzYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L3Rlcm1pb3MvY2ZtYWtlcmF3LmMKQEAgLTAsMCArMSwzMyBAQAorLyogQ29weXJpZ2h0IChDKSAxOTkyLCAxOTk2LCAxOTk3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlCisgICBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNyBVU0EuICAqLworCisjaW5jbHVkZSA8dGVybWlvcy5oPgorCisvKiBTZXQgKlQgdG8gaW5kaWNhdGUgcmF3IG1vZGUuICAqLwordm9pZAorY2ZtYWtlcmF3ICh0KQorICAgICBzdHJ1Y3QgdGVybWlvcyAqdDsKK3sKKyAgdC0+Y19pZmxhZyAmPSB+KElHTkJSS3xCUktJTlR8UEFSTVJLfElTVFJJUHxJTkxDUnxJR05DUnxJQ1JOTHxJWE9OKTsKKyAgdC0+Y19vZmxhZyAmPSB+T1BPU1Q7CisgIHQtPmNfbGZsYWcgJj0gfihFQ0hPfEVDSE9OTHxJQ0FOT058SVNJR3xJRVhURU4pOworICB0LT5jX2NmbGFnICY9IH4oQ1NJWkV8UEFSRU5CKTsKKyAgdC0+Y19jZmxhZyB8PSBDUzg7CisgIHQtPmNfY2NbVk1JTl0gPSAxOwkJLyogcmVhZCByZXR1cm5zIHdoZW4gb25lIGNoYXIgaXMgYXZhaWxhYmxlLiAgKi8KKyAgdC0+Y19jY1tWVElNRV0gPSAwOworfQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC90ZXJtaW9zL2Nmc2V0c3BlZWQuYyBiL21pbmd3LXc2NC1jcnQvdGVybWlvcy9jZnNldHNwZWVkLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWFiMGJiYwotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvdGVybWlvcy9jZnNldHNwZWVkLmMKQEAgLTAsMCArMSwxNjIgQEAKKy8qIENvcHlyaWdodCAoQykgMTk5Miw5Myw5Niw5Nyw5OCwyMDAxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlCisgICBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNyBVU0EuICAqLworCisjaW5jbHVkZSA8dGVybWlvcy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3RkZGVmLmg+CisKK3N0cnVjdCBzcGVlZF9zdHJ1Y3QKK3sKKyAgc3BlZWRfdCB2YWx1ZTsKKyAgc3BlZWRfdCBpbnRlcm5hbDsKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BlZWRfc3RydWN0IHNwZWVkc1tdID0KKyAgeworI2lmZGVmIEIwCisgICAgeyAwLCBCMCB9LAorI2VuZGlmCisjaWZkZWYgQjUwCisgICAgeyA1MCwgQjUwIH0sCisjZW5kaWYKKyNpZmRlZiBCNzUKKyAgICB7IDc1LCBCNzUgfSwKKyNlbmRpZgorI2lmZGVmIEIxMTAKKyAgICB7IDExMCwgQjExMCB9LAorI2VuZGlmCisjaWZkZWYgQjEzNAorICAgIHsgMTM0LCBCMTM0IH0sCisjZW5kaWYKKyNpZmRlZiBCMTUwCisgICAgeyAxNTAsIEIxNTAgfSwKKyNlbmRpZgorI2lmZGVmIEIyMDAKKyAgICB7IDIwMCwgQjIwMCB9LAorI2VuZGlmCisjaWZkZWYgQjMwMAorICAgIHsgMzAwLCBCMzAwIH0sCisjZW5kaWYKKyNpZmRlZiBCNjAwCisgICAgeyA2MDAsIEI2MDAgfSwKKyNlbmRpZgorI2lmZGVmIEIxMjAwCisgICAgeyAxMjAwLCBCMTIwMCB9LAorI2VuZGlmCisjaWZkZWYgQjEyMDAKKyAgICB7IDEyMDAsIEIxMjAwIH0sCisjZW5kaWYKKyNpZmRlZiBCMTgwMAorICAgIHsgMTgwMCwgQjE4MDAgfSwKKyNlbmRpZgorI2lmZGVmIEIyNDAwCisgICAgeyAyNDAwLCBCMjQwMCB9LAorI2VuZGlmCisjaWZkZWYgQjQ4MDAKKyAgICB7IDQ4MDAsIEI0ODAwIH0sCisjZW5kaWYKKyNpZmRlZiBCOTYwMAorICAgIHsgOTYwMCwgQjk2MDAgfSwKKyNlbmRpZgorI2lmZGVmIEIxOTIwMAorICAgIHsgMTkyMDAsIEIxOTIwMCB9LAorI2VuZGlmCisjaWZkZWYgQjM4NDAwCisgICAgeyAzODQwMCwgQjM4NDAwIH0sCisjZW5kaWYKKyNpZmRlZiBCNTc2MDAKKyAgICB7IDU3NjAwLCBCNTc2MDAgfSwKKyNlbmRpZgorI2lmZGVmIEI3NjgwMAorICAgIHsgNzY4MDAsIEI3NjgwMCB9LAorI2VuZGlmCisjaWZkZWYgQjExNTIwMAorICAgIHsgMTE1MjAwLCBCMTE1MjAwIH0sCisjZW5kaWYKKyNpZmRlZiBCMTUzNjAwCisgICAgeyAxNTM2MDAsIEIxNTM2MDAgfSwKKyNlbmRpZgorI2lmZGVmIEIyMzA0MDAKKyAgICB7IDIzMDQwMCwgQjIzMDQwMCB9LAorI2VuZGlmCisjaWZkZWYgQjMwNzIwMAorICAgIHsgMzA3MjAwLCBCMzA3MjAwIH0sCisjZW5kaWYKKyNpZmRlZiBCNDYwODAwCisgICAgeyA0NjA4MDAsIEI0NjA4MDAgfSwKKyNlbmRpZgorI2lmZGVmIEI1MDAwMDAKKyAgICB7IDUwMDAwMCwgQjUwMDAwMCB9LAorI2VuZGlmCisjaWZkZWYgQjU3NjAwMAorICAgIHsgNTc2MDAwLCBCNTc2MDAwIH0sCisjZW5kaWYKKyNpZmRlZiBCOTIxNjAwCisgICAgeyA5MjE2MDAsIEI5MjE2MDAgfSwKKyNlbmRpZgorI2lmZGVmIEIxMDAwMDAwCisgICAgeyAxMDAwMDAwLCBCMTAwMDAwMCB9LAorI2VuZGlmCisjaWZkZWYgQjExNTIwMDAKKyAgICB7IDExNTIwMDAsIEIxMTUyMDAwIH0sCisjZW5kaWYKKyNpZmRlZiBCMTUwMDAwMAorICAgIHsgMTUwMDAwMCwgQjE1MDAwMDAgfSwKKyNlbmRpZgorI2lmZGVmIEIyMDAwMDAwCisgICAgeyAyMDAwMDAwLCBCMjAwMDAwMCB9LAorI2VuZGlmCisjaWZkZWYgQjI1MDAwMDAKKyAgICB7IDI1MDAwMDAsIEIyNTAwMDAwIH0sCisjZW5kaWYKKyNpZmRlZiBCMzAwMDAwMAorICAgIHsgMzAwMDAwMCwgQjMwMDAwMDAgfSwKKyNlbmRpZgorI2lmZGVmIEIzNTAwMDAwCisgICAgeyAzNTAwMDAwLCBCMzUwMDAwMCB9LAorI2VuZGlmCisjaWZkZWYgQjQwMDAwMDAKKyAgICB7IDQwMDAwMDAsIEI0MDAwMDAwIH0sCisjZW5kaWYKKyAgfTsKKworCisvKiBTZXQgYm90aCB0aGUgaW5wdXQgYW5kIG91dHB1dCBiYXVkIHJhdGVzIHN0b3JlZCBpbiAqVEVSTUlPU19QIHRvIFNQRUVELiAgKi8KK2ludAorY2ZzZXRzcGVlZCAoc3RydWN0IHRlcm1pb3MgKnRlcm1pb3NfcCwgc3BlZWRfdCBzcGVlZCkKK3sKKyAgc2l6ZV90IGNudDsKKworICBmb3IgKGNudCA9IDA7IGNudCA8IHNpemVvZiAoc3BlZWRzKSAvIHNpemVvZiAoc3BlZWRzWzBdKTsgKytjbnQpCisgICAgaWYgKHNwZWVkID09IHNwZWVkc1tjbnRdLmludGVybmFsKQorICAgICAgeworCWNmc2V0aXNwZWVkICh0ZXJtaW9zX3AsIHNwZWVkKTsKKwljZnNldG9zcGVlZCAodGVybWlvc19wLCBzcGVlZCk7CisJcmV0dXJuIDA7CisgICAgICB9CisgICAgZWxzZSBpZiAoc3BlZWQgPT0gc3BlZWRzW2NudF0udmFsdWUpCisgICAgICB7CisJY2ZzZXRpc3BlZWQgKHRlcm1pb3NfcCwgc3BlZWRzW2NudF0uaW50ZXJuYWwpOworCWNmc2V0b3NwZWVkICh0ZXJtaW9zX3AsIHNwZWVkc1tjbnRdLmludGVybmFsKTsKKwlyZXR1cm4gMDsKKyAgICAgIH0KKworICBfc2V0X2Vycm5vIChFSU5WQUwpOworCisgIHJldHVybiAtMTsKK30KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvdGVybWlvcy9pb2N0bC5jIGIvbWluZ3ctdzY0LWNydC90ZXJtaW9zL2lvY3RsLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGJlMzY0NAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvdGVybWlvcy9pb2N0bC5jCkBAIC0wLDAgKzEsMjcgQEAKKyNpbmNsdWRlIDxzdGRhcmcuaD4NCisjaW5jbHVkZSA8ZXJybm8uaD4NCisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+DQorDQorI3VuZGVmIGlvY3RsDQorLyogUGVyZm9ybSB0aGUgSS9PIGNvbnRyb2wgb3BlcmF0aW9uIHNwZWNpZmllZCBieSBSRVFVRVNUIG9uIEZELg0KKyAgIFRoZSBhY3R1YWwgdHlwZSBhbmQgdXNlIG9mIEFSRyBhbmQgdGhlIHJldHVybiB2YWx1ZSBkZXBlbmQgb24gUkVRVUVTVC4gICovDQoraW50DQoraW9jdGwgKGludCBmZCwgaW50IHJlcXVlc3QsIC4uLikNCit7DQorICB2b2lkICphcmc7DQorICB2YV9saXN0IGFwOw0KKyAgaW50IHJlc3VsdDsNCisNCisgIHZhX3N0YXJ0IChhcCwgcmVxdWVzdCk7DQorICBhcmcgPSB2YV9hcmcgKGFwLCB2b2lkICopOw0KKw0KKyAgc3dpdGNoIChyZXF1ZXN0KQ0KKyAgICB7DQorICAgIGRlZmF1bHQ6DQorCSAgX3NldF9lcnJubyAoRU5PU1lTKTsNCisJICByZXN1bHQgPSAtMTsNCisgICAgICBicmVhazsNCisgICAgfQ0KKyAgdmFfZW5kIChhcCk7DQorICByZXR1cm4gcmVzdWx0Ow0KK30NCmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3Rlcm1pb3Mvc3BlZWQuYyBiL21pbmd3LXc2NC1jcnQvdGVybWlvcy9zcGVlZC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVmM2YwODAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L3Rlcm1pb3Mvc3BlZWQuYwpAQCAtMCwwICsxLDU1IEBACisjaW5jbHVkZSA8c3RkZGVmLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDx0ZXJtaW9zLmg+CisKKyN1bmRlZiBjZmdldG9zcGVlZAorLyogUmV0dXJuIHRoZSBvdXRwdXQgYmF1ZCByYXRlIHN0b3JlZCBpbiAqVEVSTUlPU19QLiAgKi8KK3NwZWVkX3QKK2NmZ2V0b3NwZWVkICh0ZXJtaW9zX3ApCisgICAgIGNvbnN0IHN0cnVjdCB0ZXJtaW9zICp0ZXJtaW9zX3A7Cit7CisgIHJldHVybiB0ZXJtaW9zX3AtPmNfb3NwZWVkOworfQorCisjdW5kZWYgY2ZnZXRpc3BlZWQKKy8qIFJldHVybiB0aGUgaW5wdXQgYmF1ZCByYXRlIHN0b3JlZCBpbiAqVEVSTUlPU19QLiAgKi8KK3NwZWVkX3QKK2NmZ2V0aXNwZWVkICh0ZXJtaW9zX3ApCisgICAgIGNvbnN0IHN0cnVjdCB0ZXJtaW9zICp0ZXJtaW9zX3A7Cit7CisgIHJldHVybiB0ZXJtaW9zX3AtPmNfaXNwZWVkOworfQorCisjdW5kZWYgY2ZzZXRvc3BlZWQKKy8qIFNldCB0aGUgb3V0cHV0IGJhdWQgcmF0ZSBzdG9yZWQgaW4gKlRFUk1JT1NfUCB0byBTUEVFRC4gICovCitpbnQKK2Nmc2V0b3NwZWVkICh0ZXJtaW9zX3AsIHNwZWVkKQorICAgICBzdHJ1Y3QgdGVybWlvcyAqdGVybWlvc19wOworICAgICBzcGVlZF90IHNwZWVkOworeworICBpZiAodGVybWlvc19wID09IE5VTEwpCisgICAgeworICAgICAgX3NldF9lcnJubyAoRUlOVkFMKTsKKyAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgdGVybWlvc19wLT5jX29zcGVlZCA9IHNwZWVkOworICByZXR1cm4gMDsKK30KKworI3VuZGVmIGNmc2V0aXNwZWVkCisvKiBTZXQgdGhlIGlucHV0IGJhdWQgcmF0ZSBzdG9yZWQgaW4gKlRFUk1JT1NfUCB0byBTUEVFRC4gICovCitpbnQKK2Nmc2V0aXNwZWVkICh0ZXJtaW9zX3AsIHNwZWVkKQorICAgICBzdHJ1Y3QgdGVybWlvcyAqdGVybWlvc19wOworICAgICBzcGVlZF90IHNwZWVkOworeworICBpZiAodGVybWlvc19wID09IE5VTEwpCisgICAgeworICAgICAgX3NldF9lcnJubyAoRUlOVkFMKTsKKyAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgdGVybWlvc19wLT5jX2lzcGVlZCA9IHNwZWVkOworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvdGVybWlvcy90Y2RyYWluLmMgYi9taW5ndy13NjQtY3J0L3Rlcm1pb3MvdGNkcmFpbi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI5OWE5YTYKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L3Rlcm1pb3MvdGNkcmFpbi5jCkBAIC0wLDAgKzEsMTYgQEAKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHRlcm1pb3MuaD4KKworLyogV2FpdCBmb3IgcGVuZGluZyBvdXRwdXQgdG8gYmUgd3JpdHRlbiBvbiBGRC4gICovCitpbnQKK19fbGliY190Y2RyYWluIChpbnQgZmQpCit7CisgIGlmIChmZCA8IDApCisgICAgeworICAgICAgX3NldF9lcnJubyAoRUJBREYpOworICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICBfc2V0X2Vycm5vIChFTk9TWVMpOworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvdGVybWlvcy90Y2Zsb3cuYyBiL21pbmd3LXc2NC1jcnQvdGVybWlvcy90Y2Zsb3cuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iODE1NmFmCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC90ZXJtaW9zL3RjZmxvdy5jCkBAIC0wLDAgKzEsMzEgQEAKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHRlcm1pb3MuaD4KKworLyogU3VzcGVuZCBvciByZXN0YXJ0IHRyYW5zbWlzc2lvbiBvbiBGRC4gICovCitpbnQKK3RjZmxvdyAoZmQsIGFjdGlvbikKKyAgICAgaW50IGZkOworICAgICBpbnQgYWN0aW9uOworeworICBpZiAoZmQgPCAwKQorICAgIHsKKyAgICAgIF9zZXRfZXJybm8gKEVCQURGKTsKKyAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgc3dpdGNoIChhY3Rpb24pCisgICAgeworICAgIGNhc2UgVENPT0ZGOgorICAgIGNhc2UgVENPT046CisgICAgY2FzZSBUQ0lPRkY6CisgICAgY2FzZSBUQ0lPTjoKKyAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgIF9zZXRfZXJybm8gKEVJTlZBTCk7CisgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgX3NldF9lcnJubyAoRU5PU1lTKTsKKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3Rlcm1pb3MvdGNmbHVzaC5jIGIvbWluZ3ctdzY0LWNydC90ZXJtaW9zL3RjZmx1c2guYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMDk2MzE1Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC90ZXJtaW9zL3RjZmx1c2guYwpAQCAtMCwwICsxLDI0IEBACisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDx0ZXJtaW9zLmg+CisKKy8qIEZsdXNoIHBlbmRpbmcgZGF0YSBvbiBGRC4gICovCitpbnQKK3RjZmx1c2ggKGZkLCBxdWV1ZV9zZWxlY3RvcikKKyAgICAgaW50IGZkOworICAgICBpbnQgcXVldWVfc2VsZWN0b3I7Cit7CisgIHN3aXRjaCAocXVldWVfc2VsZWN0b3IpCisgICAgeworICAgIGNhc2UgVENJRkxVU0g6CisgICAgY2FzZSBUQ09GTFVTSDoKKyAgICBjYXNlIFRDSU9GTFVTSDoKKyAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgIF9zZXRfZXJybm8gKEVJTlZBTCk7CisgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgX3NldF9lcnJubyAoRU5PU1lTKTsKKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3Rlcm1pb3MvdGNnZXRhdHRyLmMgYi9taW5ndy13NjQtY3J0L3Rlcm1pb3MvdGNnZXRhdHRyLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTY2NzY2YgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvdGVybWlvcy90Y2dldGF0dHIuYwpAQCAtMCwwICsxLDI0IEBACisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdGRkZWYuaD4KKyNpbmNsdWRlIDx0ZXJtaW9zLmg+CisKKy8qIFB1dCB0aGUgc3RhdGUgb2YgRkQgaW50byAqVEVSTUlPU19QLiAgKi8KK2ludAorX190Y2dldGF0dHIgKGZkLCB0ZXJtaW9zX3ApCisgICAgIGludCBmZDsKKyAgICAgc3RydWN0IHRlcm1pb3MgKnRlcm1pb3NfcDsKK3sKKyAgaWYgKGZkIDwgMCkKKyAgICB7CisgICAgICBfc2V0X2Vycm5vIChFQkFERik7CisgICAgICByZXR1cm4gLTE7CisgICAgfQorICBpZiAodGVybWlvc19wID09IE5VTEwpCisgICAgeworICAgICAgX3NldF9lcnJubyAoRUlOVkFMKTsKKyAgICAgIHJldHVybiAwOworICAgIH0KKworICBfc2V0X2Vycm5vIChFTk9TWVMpOworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvdGVybWlvcy90Y2dldHBncnAuYyBiL21pbmd3LXc2NC1jcnQvdGVybWlvcy90Y2dldHBncnAuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNTJjYzU2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC90ZXJtaW9zL3RjZ2V0cGdycC5jCkBAIC0wLDAgKzEsMTggQEAKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorCisvKiBSZXR1cm4gdGhlIGZvcmVncm91bmQgcHJvY2VzcyBncm91cCBJRCBvZiBGRC4gICovCitwaWRfdAordGNnZXRwZ3JwIChmZCkKKyAgICAgaW50IGZkOworeworICBpZiAoZmQgPCAwKQorICAgIHsKKyAgICAgIF9zZXRfZXJybm8gKEVCQURGKTsKKyAgICAgIHJldHVybiAocGlkX3QpIC0xOworICAgIH0KKworICBfc2V0X2Vycm5vIChFTk9TWVMpOworICByZXR1cm4gKHBpZF90KSAwOworfQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC90ZXJtaW9zL3RjZ2V0c2lkLmMgYi9taW5ndy13NjQtY3J0L3Rlcm1pb3MvdGNnZXRzaWQuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lY2ZlOTIwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC90ZXJtaW9zL3RjZ2V0c2lkLmMKQEAgLTAsMCArMSw0NiBAQAorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8dGVybWlvcy5oPgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisvKiBSZXR1cm4gdGhlIHNlc3Npb24gSUQgb2YgRkQuICAqLworcGlkX3QKK3RjZ2V0c2lkIChmZCkKKyAgICAgaW50IGZkOworeworICBwaWRfdCBwZ3JwOworICBwaWRfdCBzaWQ7CisjaWZkZWYgVElPQ0dTSUQKKyAgc3RhdGljIGludCB0aW9jZ3NpZF9kb2VzX25vdF93b3JrOworCisgIGlmICghIHRpb2Nnc2lkX2RvZXNfbm90X3dvcmspCisgICAgeworICAgICAgaW50IHNlcnJubyA9IGVycm5vOworICAgICAgaW50IHNpZDsKKworICAgICAgaWYgKF9faW9jdGwgKGZkLCBUSU9DR1NJRCwgJnNpZCkgPCAwKQorCXsKKwkgIGlmIChlcnJubyA9PSBFSU5WQUwpCisJICAgIHsKKwkgICAgICB0aW9jZ3NpZF9kb2VzX25vdF93b3JrID0gMTsKKwkgICAgICBfc2V0X2Vycm5vIChzZXJybm8pOworCSAgICB9CisJICBlbHNlCisJICAgIHJldHVybiAocGlkX3QpIC0xOworCX0KKyAgICAgIGVsc2UKKwlyZXR1cm4gKHBpZF90KSBzaWQ7CisgICAgfQorI2VuZGlmCisKKyAgcGdycCA9IHRjZ2V0cGdycCAoZmQpOworICBpZiAocGdycCA9PSAtMSkKKyAgICByZXR1cm4gKHBpZF90KSAtMTsKKworICBzaWQgPSBnZXRzaWQgKHBncnApOworICBpZiAoc2lkID09IC0xICYmIGVycm5vID09IEVTUkNIKQorICAgIF9zZXRfZXJybm8gKEVOT1RUWSk7CisKKyAgcmV0dXJuIHNpZDsKK30KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvdGVybWlvcy90Y3NlbmRicmsuYyBiL21pbmd3LXc2NC1jcnQvdGVybWlvcy90Y3NlbmRicmsuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYmUwNmIwCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC90ZXJtaW9zL3Rjc2VuZGJyay5jCkBAIC0wLDAgKzEsMTggQEAKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHRlcm1pb3MuaD4KKworLyogU2VuZCB6ZXJvIGJpdHMgb24gRkQuICAqLworaW50Cit0Y3NlbmRicmVhayAoZmQsIGR1cmF0aW9uKQorICAgICBpbnQgZmQ7CisgICAgIGludCBkdXJhdGlvbjsKK3sKKyAgaWYgKGZkIDwgMCkKKyAgICB7CisgICAgICBfc2V0X2Vycm5vIChFQkFERik7CisgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgIF9zZXRfZXJybm8gKEVOT1NZUyk7CisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC90ZXJtaW9zL3Rjc2V0YXR0ci5jIGIvbWluZ3ctdzY0LWNydC90ZXJtaW9zL3Rjc2V0YXR0ci5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRhOWYwNDUKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L3Rlcm1pb3MvdGNzZXRhdHRyLmMKQEAgLTAsMCArMSw5MCBAQAorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3RkZGVmLmg+CisjaW5jbHVkZSA8dGVybWlvcy5oPgorCitzdGF0aWMgaW50IGJhZF9zcGVlZCAoc3BlZWRfdCBzcGVlZCk7CisKKy8qIFNldCB0aGUgc3RhdGUgb2YgRkQgdG8gKlRFUk1JT1NfUC4gICovCitpbnQKK3Rjc2V0YXR0ciAoaW50IGZkLCBpbnQgb3B0aW9uYWxfYWN0aW9ucywgY29uc3Qgc3RydWN0IHRlcm1pb3MgKnRlcm1pb3NfcCkKK3sKKyAgaWYgKGZkIDwgMCkKKyAgICB7CisgICAgICBfc2V0X2Vycm5vIChFQkFERik7CisgICAgICByZXR1cm4gLTE7CisgICAgfQorICBpZiAodGVybWlvc19wID09IE5VTEwpCisgICAgeworICAgICAgX3NldF9lcnJubyAoRUlOVkFMKTsKKyAgICAgIHJldHVybiAtMTsKKyAgICB9CisgIHN3aXRjaCAob3B0aW9uYWxfYWN0aW9ucykKKyAgICB7CisgICAgY2FzZSBUQ1NBTk9XOgorICAgIGNhc2UgVENTQURSQUlOOgorICAgIGNhc2UgVENTQUZMVVNIOgorICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgIF9zZXRfZXJybm8gKEVJTlZBTCk7CisgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgaWYgKGJhZF9zcGVlZCh0ZXJtaW9zX3AtPmNfb3NwZWVkKSB8fAorICAgICAgYmFkX3NwZWVkKHRlcm1pb3NfcC0+Y19pc3BlZWQgPT0gMCA/CisJCXRlcm1pb3NfcC0+Y19vc3BlZWQgOiB0ZXJtaW9zX3AtPmNfaXNwZWVkKSkKKyAgICB7CisgICAgICBfc2V0X2Vycm5vIChFSU5WQUwpOworICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICBfc2V0X2Vycm5vIChFTk9TWVMpOworICByZXR1cm4gMDsKK30KKworCisvKiBTdHJ5Y2huaW5lIGNoZWNraW5nLiAgKi8KK3N0YXRpYyBpbnQKK2JhZF9zcGVlZCAoc3BlZWRfdCBzcGVlZCkKK3sKKyNpZiAwCisgIHN3aXRjaCAoc3BlZWQpCisgICAgeworICAgIGNhc2UgQjA6CisgICAgY2FzZSBCNTA6CisgICAgY2FzZSBCNzU6CisgICAgY2FzZSBCMTEwOgorICAgIGNhc2UgQjEzNDoKKyAgICBjYXNlIEIxNTA6CisgICAgY2FzZSBCMjAwOgorICAgIGNhc2UgQjMwMDoKKyAgICBjYXNlIEI2MDA6CisgICAgY2FzZSBCMTIwMDoKKyAgICBjYXNlIEIxODAwOgorICAgIGNhc2UgQjI0MDA6CisgICAgY2FzZSBCNDgwMDoKKyAgICBjYXNlIEI5NjAwOgorICAgIGNhc2UgQjE5MjAwOgorICAgIGNhc2UgQjM4NDAwOgorICAgIGNhc2UgQjU3NjAwOgorICAgIGNhc2UgQjExNTIwMDoKKyAgICBjYXNlIEIyMzA0MDA6CisgICAgY2FzZSBCNDYwODAwOgorICAgIGNhc2UgQjUwMDAwMDoKKyAgICBjYXNlIEI1NzYwMDA6CisgICAgY2FzZSBCOTIxNjAwOgorICAgIGNhc2UgQjEwMDAwMDA6CisgICAgY2FzZSBCMTE1MjAwMDoKKyAgICBjYXNlIEIxNTAwMDAwOgorICAgIGNhc2UgQjIwMDAwMDA6CisgICAgY2FzZSBCMjUwMDAwMDoKKyAgICBjYXNlIEIzMDAwMDAwOgorICAgIGNhc2UgQjM1MDAwMDA6CisgICAgY2FzZSBCNDAwMDAwMDoKKyAgICAgIHJldHVybiAwOworICAgIGRlZmF1bHQ6CisgICAgICByZXR1cm4gMTsKKyAgICB9CisjZWxzZQorICByZXR1cm4gMDsKKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC90ZXJtaW9zL3Rjc2V0cGdycC5jIGIvbWluZ3ctdzY0LWNydC90ZXJtaW9zL3Rjc2V0cGdycC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc4ZmU1ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L3Rlcm1pb3MvdGNzZXRwZ3JwLmMKQEAgLTAsMCArMSwxOSBAQAorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisKKy8qIFNldCB0aGUgZm9yZWdyb3VuZCBwcm9jZXNzIGdyb3VwIElEIG9mIEZEIHNldCBQR1JQX0lELiAgKi8KK2ludAordGNzZXRwZ3JwIChmZCwgcGdycF9pZCkKKyAgICAgaW50IGZkOworICAgICBwaWRfdCBwZ3JwX2lkOworeworICBpZiAoZmQgPCAwKQorICAgIHsKKyAgICAgIF9zZXRfZXJybm8gKEVCQURGKTsKKyAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgX3NldF9lcnJubyAoRU5PU1lTKTsKKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3Rlcm1pb3MvdHR5bmFtZS5jIGIvbWluZ3ctdzY0LWNydC90ZXJtaW9zL3R0eW5hbWUuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMDBkMTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC90ZXJtaW9zL3R0eW5hbWUuYwpAQCAtMCwwICsxLDQgQEAKK2NoYXIgKnR0eW5hbWUoaW50IGZkKQ0KK3sNCisgIHJldHVybiAiQ09OIjsNCit9DQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC90bHNzdXAuYyBiL21pbmd3LXc2NC1jcnQvdGxzc3VwLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2M4ZWQzZgotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvdGxzc3VwLmMKQEAgLTAsMCArMSwxMjQgQEAKKyNpZmRlZiBDUlRETEwKKyN1bmRlZiBDUlRETEwKKyNlbmRpZgorCisjaW5jbHVkZSA8aW50ZXJuYWwuaD4KKyNpbmNsdWRlIDxzZWN0X2F0dHJpYnMuaD4KKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8bWFsbG9jLmg+CisjaW5jbHVkZSA8Y3J0ZGJnLmg+CisKKyNkZWZpbmUgRlVOQ1NfUEVSX05PREUgMzAKKwordHlwZWRlZiBzdHJ1Y3QgVGxzRHRvck5vZGUgeworICBpbnQgY291bnQ7CisgIHN0cnVjdCBUbHNEdG9yTm9kZSAqbmV4dDsKKyAgX1BWRlYgZnVuY3NbRlVOQ1NfUEVSX05PREVdOworfSBUbHNEdG9yTm9kZTsKKworVUxPTkcgX3Rsc19pbmRleCA9IDA7CisKK19DUlRBTExPQygiLnRscyIpIGNoYXIgX3Rsc19zdGFydCA9IDA7CitfQ1JUQUxMT0MoIi50bHMkWlpaIikgY2hhciBfdGxzX2VuZCA9IDA7CisKK19DUlRBTExPQygiLkNSVCRYTEEiKSBQSU1BR0VfVExTX0NBTExCQUNLIF9feGxfYSA9IDA7CitfQ1JUQUxMT0MoIi5DUlQkWExaIikgUElNQUdFX1RMU19DQUxMQkFDSyBfX3hsX3ogPSAwOworCisjaWZkZWYgX1dJTjY0CitfQ1JUQUxMT0MoIi5yZGF0YSRUIikgY29uc3QgSU1BR0VfVExTX0RJUkVDVE9SWTY0IF90bHNfdXNlZCA9IHsKKyAgKFVMT05HTE9ORykgJl90bHNfc3RhcnQsIChVTE9OR0xPTkcpICZfdGxzX2VuZCwgKFVMT05HTE9ORykgJl90bHNfaW5kZXgsCisgIChVTE9OR0xPTkcpICgmX194bF9hKzEpLCAoVUxPTkcpIDAsIChVTE9ORykgMAorfTsKKyNlbHNlCitfQ1JUQUxMT0MoIi5yZGF0YSRUIikgY29uc3QgSU1BR0VfVExTX0RJUkVDVE9SWSBfdGxzX3VzZWQgPSB7CisgIChVTE9ORykoVUxPTkdfUFRSKSAmX3Rsc19zdGFydCwgKFVMT05HKShVTE9OR19QVFIpICZfdGxzX2VuZCwKKyAgKFVMT05HKShVTE9OR19QVFIpICZfdGxzX2luZGV4LCAoVUxPTkcpKFVMT05HX1BUUikgKCZfX3hsX2ErMSksCisgIChVTE9ORykgMCwgKFVMT05HKSAwCit9OworI2VuZGlmCisKKyNpZm5kZWYgX19DUlRfVEhSRUFECisjaWZkZWYgSEFWRV9BVFRSSUJVVEVfVEhSRUFECisjZGVmaW5lIF9fQ1JUX1RIUkVBRAlfX2RlY2xzcGVjKHRocmVhZCkKKyNlbHNlCisjZGVmaW5lIF9fQ1JUX1RIUkVBRAorI2VuZGlmCisjZW5kaWYKKworc3RhdGljIF9DUlRBTExPQygiLkNSVCRYREEiKSBfUFZGViBfX3hkX2EgPSAwOworc3RhdGljIF9DUlRBTExPQygiLkNSVCRYRFoiKSBfUFZGViBfX3hkX3ogPSAwOworc3RhdGljIF9fQ1JUX1RIUkVBRCBUbHNEdG9yTm9kZSAqZHRvcl9saXN0Oworc3RhdGljIF9fQ1JUX1RIUkVBRCBUbHNEdG9yTm9kZSBkdG9yX2xpc3RfaGVhZDsKKworQk9PTCBXSU5BUEkKK19fZHluX3Rsc19pbml0IChIQU5ETEUgaERsbEhhbmRsZSwgRFdPUkQgZHdSZWFzb24sIExQVk9JRCBscHJlc2VydmVkKQoreworICBfUFZGViAqcGZ1bmM7CisKKyAgaWYgKGR3UmVhc29uICE9IERMTF9USFJFQURfQVRUQUNIKQorICAgIHJldHVybiBUUlVFOworCisgIGZvciAocGZ1bmMgPSAmX194ZF9hICsgMTsgcGZ1bmMgIT0gJl9feGRfejsgKytwZnVuYykKKyAgICB7CisgICAgICBpZiAoKnBmdW5jICE9IE5VTEwpCisJKCpwZnVuYykoKTsKKyAgICB9CisKKyAgcmV0dXJuIFRSVUU7Cit9CisKK2NvbnN0IFBJTUFHRV9UTFNfQ0FMTEJBQ0sgX19keW5fdGxzX2luaXRfY2FsbGJhY2sgPSBfX2R5bl90bHNfaW5pdDsKK19DUlRBTExPQygiLkNSVCRYTEMiKSBQSU1BR0VfVExTX0NBTExCQUNLIF9feGxfYyA9IF9fZHluX3Rsc19pbml0OworCitpbnQgX19jZGVjbAorX190bHJlZ2R0b3IgKF9QVkZWIGZ1bmMpCit7CisgIGlmIChkdG9yX2xpc3QgPT0gTlVMTCkKKyAgICB7CisgICAgICBkdG9yX2xpc3QgPSAmZHRvcl9saXN0X2hlYWQ7CisgICAgICBkdG9yX2xpc3RfaGVhZC5jb3VudCA9IDA7CisgICAgfQorICAgIGVsc2UgaWYgKGR0b3JfbGlzdC0+Y291bnQgPT0gRlVOQ1NfUEVSX05PREUpCisgICAgeworICAgICAgVGxzRHRvck5vZGUgKnBub2RlID0gKFRsc0R0b3JOb2RlICopIG1hbGxvYyAoc2l6ZW9mIChUbHNEdG9yTm9kZSkpOworICAgICAgaWYgKHBub2RlID09IE5VTEwpCisJcmV0dXJuIC0xOworICAgICAgcG5vZGUtPmNvdW50ID0gMDsKKyAgICAgIHBub2RlLT5uZXh0ID0gZHRvcl9saXN0OworICAgICAgZHRvcl9saXN0ID0gcG5vZGU7CisKKyAgICAgIGR0b3JfbGlzdC0+Y291bnQgPSAwOworICAgIH0KKyAgZHRvcl9saXN0LT5mdW5jc1tkdG9yX2xpc3QtPmNvdW50KytdID0gZnVuYzsKKyAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBCT09MIFdJTkFQSQorX19keW5fdGxzX2R0b3IgKEhBTkRMRSBoRGxsSGFuZGxlLCBEV09SRCBkd1JlYXNvbiwgTFBWT0lEIGxwcmVzZXJ2ZWQpCit7CisgIFRsc0R0b3JOb2RlICpwbm9kZSwgKnBuZXh0OworICBpbnQgaTsKKworICBpZiAoZHdSZWFzb24gIT0gRExMX1RIUkVBRF9ERVRBQ0ggJiYgZHdSZWFzb24gIT0gRExMX1BST0NFU1NfREVUQUNIKQorICAgIHJldHVybiBUUlVFOworCisgIGZvciAocG5vZGUgPSBkdG9yX2xpc3Q7IHBub2RlICE9IE5VTEw7IHBub2RlID0gcG5leHQpCisgICAgeworICAgICAgZm9yIChpID0gcG5vZGUtPmNvdW50IC0gMTsgaSA+PSAwOyAtLWkpCisJeworCSAgaWYgKHBub2RlLT5mdW5jc1tpXSAhPSBOVUxMKQorCSAgICAoKnBub2RlLT5mdW5jc1tpXSkoKTsKKwl9CisgICAgICBwbmV4dCA9IHBub2RlLT5uZXh0OworICAgICAgaWYgKHBuZXh0ICE9IE5VTEwpCisJZnJlZSAoKHZvaWQgKikgcG5vZGUpOworICAgIH0KKyAgcmV0dXJuIFRSVUU7Cit9CisKK19DUlRBTExPQygiLkNSVCRYTEQiKSBQSU1BR0VfVExTX0NBTExCQUNLIF9feGxfZCA9IF9fZHluX3Rsc19kdG9yOworCisKK2ludCBtaW5nd19pbml0bHRzZHJvdF9mb3JjZSA9IDA7CitpbnQgbWluZ3dfaW5pdGx0c2R5bl9mb3JjZT0wOworaW50IG1pbmd3X2luaXRsdHNzdW9fZm9yY2UgPSAwOwpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC90b2FzY2lpLmMgYi9taW5ndy13NjQtY3J0L3RvYXNjaWkuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lYTZlYjVlCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC90b2FzY2lpLmMKQEAgLTAsMCArMSw4IEBACisjaW5jbHVkZSA8Y3R5cGUuaD4KKworI3VuZGVmIHRvYXNjaWkKK2ludAordG9hc2NpaSAoaW50IGMpCit7CisJcmV0dXJuIF9fdG9hc2NpaShjKTsKK30KZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvdHN0bWFpbi5jIGIvbWluZ3ctdzY0LWNydC90c3RtYWluLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzJjYjc4ZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvdHN0bWFpbi5jCkBAIC0wLDAgKzEsOCBAQAorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKyAgcHJpbnRmICgiSGFsbG8gd29ybGQhXG4iKTsKKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3RzdG1haW4uY3BwIGIvbWluZ3ctdzY0LWNydC90c3RtYWluLmNwcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MmNiNzhkCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC90c3RtYWluLmNwcApAQCAtMCwwICsxLDggQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisgIHByaW50ZiAoIkhhbGxvIHdvcmxkIVxuIik7CisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC90c3R3YXNzZXJ0LmMgYi9taW5ndy13NjQtY3J0L3RzdHdhc3NlcnQuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZDA4MDMyCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC90c3R3YXNzZXJ0LmMKQEAgLTAsMCArMSwxMSBAQAorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKyAgcHJpbnRmICgiSXMgYXJnYyAoJWQpIDwgMyA/XG4iLCBhcmdjKTsKKyAgYXNzZXJ0IChhcmdjIDwgMyk7CisgIHByaW50ZiAoIk5vIGFzc2VydCAhXG4iKTsKKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3RzdHdhc3NlcnRfd2luLmMgYi9taW5ndy13NjQtY3J0L3RzdHdhc3NlcnRfd2luLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTYyODlhZAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvdHN0d2Fzc2VydF93aW4uYwpAQCAtMCwwICsxLDExIEBACisjZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4KKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisKK2ludCBXSU5BUEkgV2luTWFpbihISU5TVEFOQ0UgaFRoaXNJbnN0YW5jZSxISU5TVEFOQ0UgaFByZXZJbnN0YW5jZSxMUFNUUiBscENtZExpbmUsaW50IG5DbWRTaG93KQoreworICBpbnQgYXJnYyA9IHN0cmxlbiAobHBDbWRMaW5lKTsgIAorICBhc3NlcnQgKGFyZ2MgJiAxKTsKKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3RzdHdpbm1haW4uYyBiL21pbmd3LXc2NC1jcnQvdHN0d2lubWFpbi5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY0YzcyMjcKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L3RzdHdpbm1haW4uYwpAQCAtMCwwICsxLDgyIEBACisjZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4KKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisKKyNkZWZpbmUgVElUTEUgIldpbk1haW4iCisjZGVmaW5lIFdJRFRIIDI1MAorI2RlZmluZSBIRUlHSFQgMjUwCisKK3ZvaWQgRHJhdyhIREMgaGRjKTsKKworTFJFU1VMVCBDQUxMQkFDSyBXaW5kb3dQcm9jKEhXTkQgaFduZCxVSU5UIE1zZyxXUEFSQU0gd1BhcmFtLExQQVJBTSBsUGFyYW0pCit7CisgIFBBSU5UU1RSVUNUIHBzOworICBzd2l0Y2ggKE1zZykKKyAgeworICBjYXNlIFdNX1BBSU5UOgorICAgIEJlZ2luUGFpbnQoaFduZCwmcHMpOworICAgIERyYXcocHMuaGRjKTsKKyAgICBFbmRQYWludChoV25kLCZwcyk7CisgICAgYnJlYWs7CisgIGNhc2UgV01fREVTVFJPWToKKyAgICBQb3N0UXVpdE1lc3NhZ2UoMCk7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgcmV0dXJuIERlZldpbmRvd1Byb2MoaFduZCxNc2csd1BhcmFtLGxQYXJhbSk7CisgIH0KKyAgcmV0dXJuIDA7Cit9CisKK2NoYXIgc3pDbGFzc05hbWVbXSA9ICJXaW5NYWluIjsKKworaW50IFdJTkFQSSBXaW5NYWluKEhJTlNUQU5DRSBoVGhpc0luc3RhbmNlLEhJTlNUQU5DRSBoUHJldkluc3RhbmNlLExQU1RSIGxwQ21kTGluZSxpbnQgbkNtZFNob3cpCit7CisgIEhXTkQgaHduZDsKKyAgTVNHIG1lc3NhZ2VzOworICBXTkRDTEFTU0VYIHdpbmNsOworCisgIHdpbmNsLmhJbnN0YW5jZSA9IGhUaGlzSW5zdGFuY2U7CisgIHdpbmNsLmxwc3pDbGFzc05hbWUgPSBzekNsYXNzTmFtZTsKKyAgd2luY2wubHBmblduZFByb2MgPSBXaW5kb3dQcm9jOworICB3aW5jbC5zdHlsZSA9IENTX09XTkRDIHwgQ1NfVlJFRFJBVyB8IENTX0hSRURSQVcgfCBDU19EQkxDTEtTOworICB3aW5jbC5jYlNpemUgPSBzaXplb2YoV05EQ0xBU1NFWCk7CisKKyAgd2luY2wuaEljb24gPSBMb2FkSWNvbihOVUxMLElESV9BUFBMSUNBVElPTik7CisgIHdpbmNsLmhJY29uU20gPSBMb2FkSWNvbihOVUxMLElESV9BUFBMSUNBVElPTik7CisgIHdpbmNsLmhDdXJzb3IgPSBMb2FkQ3Vyc29yKE5VTEwsSURDX0FSUk9XKTsKKyAgd2luY2wubHBzek1lbnVOYW1lID0gTlVMTDsKKyAgd2luY2wuY2JDbHNFeHRyYSA9IDA7CisgIHdpbmNsLmNiV25kRXh0cmEgPSAwOworICB3aW5jbC5oYnJCYWNrZ3JvdW5kID0gKEhCUlVTSClHZXRTdG9ja09iamVjdChXSElURV9CUlVTSCk7OworCisgIGlmICghUmVnaXN0ZXJDbGFzc0V4KCZ3aW5jbCkpIHJldHVybiAwOworCisgIGh3bmQgPSBDcmVhdGVXaW5kb3dFeCgwLCBzekNsYXNzTmFtZSwgVElUTEUsIFdTX09WRVJMQVBQRURXSU5ET1csIENXX1VTRURFRkFVTFQsIENXX1VTRURFRkFVTFQsIFdJRFRILCBIRUlHSFQsCisJCQlIV05EX0RFU0tUT1AsIE5VTEwsIGhUaGlzSW5zdGFuY2UsIE5VTEwpOworCisgIFNob3dXaW5kb3coaHduZCxuQ21kU2hvdyk7CisKKyAgd2hpbGUgKEdldE1lc3NhZ2UoJm1lc3NhZ2VzLE5VTEwsMCwwKSkKKyAgeworICAgIFRyYW5zbGF0ZU1lc3NhZ2UoJm1lc3NhZ2VzKTsKKyAgICBEaXNwYXRjaE1lc3NhZ2UoJm1lc3NhZ2VzKTsKKyAgfQorICByZXR1cm4gKGludCltZXNzYWdlcy53UGFyYW07Cit9CisKK3ZvaWQgRHJhdyhIREMgaGRjKQoreworICBIQlJVU0ggcGluc2VsOworICBwaW5zZWwgPSBDcmVhdGVTb2xpZEJydXNoKFJHQigyNTUsMjU1LDApKTsKKyAgUmVjdGFuZ2xlKGhkYywxMCwxMCwxMTAsMTEwKTsKKyAgVGV4dE91dChoZGMsMTUsNDUsIkhlbGxvLCBXb3JsZCEiLDEzKTsKKworICBTZWxlY3RPYmplY3QoaGRjLHBpbnNlbCk7CisgIEVsbGlwc2UoaGRjLDEwMCwxMDAsMjAwLDIwMCk7CisgIEFyYyhoZGMsMTIwLDEyMCwxODAsMTgwLDEwMCwyMDAsMjAwLDIwMCk7CisgIFNldFBpeGVsKGhkYywxMzAsMTQwLDApOworICBTZXRQaXhlbChoZGMsMTcwLDE0MCwwKTsKKyAgTW92ZVRvRXgoaGRjLDE1MCwxMDAsMCk7CisgIExpbmVUbyhoZGMsMTQ1LDkwKTsKKyAgTGluZVRvKGhkYywxNTUsODApOworICBMaW5lVG8oaGRjLDE1MCw3NSk7Cit9CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3R4dG1vZGUuYyBiL21pbmd3LXc2NC1jcnQvdHh0bW9kZS5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNjYzI5NzEKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L3R4dG1vZGUuYwpAQCAtMCwwICsxIEBACitpbnQgX2Ztb2RlID0gMDsKZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvd2NzY21waS5jIGIvbWluZ3ctdzY0LWNydC93Y3NjbXBpLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTU4ODAyNQotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQvd2NzY21waS5jCkBAIC0wLDAgKzEsOCBAQAorI2luY2x1ZGUgPHN0cmluZy5oPgorI3VuZGVmIHdjc2NtcGkKKworaW50Cit3Y3NjbXBpIChjb25zdCB3Y2hhcl90ICogd3MxLGNvbnN0IHdjaGFyX3QgKiB3czIpCit7CisgIHJldHVybiBfd2NzaWNtcCAod3MxLHdzMik7Cit9CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3dkaXJlbnQuYyBiL21pbmd3LXc2NC1jcnQvd2RpcmVudC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRiOGNjNTAKLS0tIC9kZXYvbnVsbAorKysgYi9taW5ndy13NjQtY3J0L3dkaXJlbnQuYwpAQCAtMCwwICsxLDMgQEAKKyNkZWZpbmUgX1VOSUNPREUgMQorI2RlZmluZSBVTklDT0RFIDEKKyNpbmNsdWRlICJkaXJlbnQuYyIKZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQvd2lsZGNhcmQuYyBiL21pbmd3LXc2NC1jcnQvd2lsZGNhcmQuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMGVjYTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC93aWxkY2FyZC5jCkBAIC0wLDAgKzEgQEAKK2ludCBfZG93aWxkY2FyZCA9IDA7CmRpZmYgLS1naXQgYS9taW5ndy13NjQtY3J0L3huY29tbW9kLmMgYi9taW5ndy13NjQtY3J0L3huY29tbW9kLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGQyYTBhNAotLS0gL2Rldi9udWxsCisrKyBiL21pbmd3LXc2NC1jcnQveG5jb21tb2QuYwpAQCAtMCwwICsxIEBACitpbnQgX2NvbW1vZGUgPSAwOwpkaWZmIC0tZ2l0IGEvbWluZ3ctdzY0LWNydC94dGhkbG9jLmMgYi9taW5ndy13NjQtY3J0L3h0aGRsb2MuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xOWY0YmI0Ci0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC94dGhkbG9jLmMKQEAgLTAsMCArMSBAQAoraW50IF9fZ2xvYmFsbG9jYWxlc3RhdHVzID0gfjB4MTsKZGlmZiAtLWdpdCBhL21pbmd3LXc2NC1jcnQveHR4dG1vZGUuYyBiL21pbmd3LXc2NC1jcnQveHR4dG1vZGUuYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zY2MyOTcxCi0tLSAvZGV2L251bGwKKysrIGIvbWluZ3ctdzY0LWNydC94dHh0bW9kZS5jCkBAIC0wLDAgKzEgQEAKK2ludCBfZm1vZGUgPSAwOwo=